diff --git a/.github/workflows/libtiledb-ci.yml b/.github/workflows/libtiledb-ci.yml index fa8f2d619d..9bbfa562fc 100644 --- a/.github/workflows/libtiledb-ci.yml +++ b/.github/workflows/libtiledb-ci.yml @@ -19,7 +19,7 @@ jobs: - name: Checkout TileDB-SOMA uses: actions/checkout@v4 - name: Build libTileDB-SOMA - run: TILEDBSOMA_COVERAGE="--coverage" ./scripts/bld --no-tiledb-deprecated=true + run: TILEDBSOMA_COVERAGE="--coverage" ./scripts/bld --no-tiledb-deprecated=true --werror=true - name: Run libTileDB-SOMA unittests run: ctest --test-dir build/libtiledbsoma -C Release --verbose --rerun-failed --output-on-failure - name: Upload coverage to Codecov diff --git a/.github/workflows/python-ci-full.yml b/.github/workflows/python-ci-full.yml index c3442799b8..59a3920955 100644 --- a/.github/workflows/python-ci-full.yml +++ b/.github/workflows/python-ci-full.yml @@ -21,16 +21,16 @@ jobs: fail-fast: false matrix: # TODO: decide on Windows CI coverage - os: [ubuntu-22.04, macos-12] - # os: [ubuntu-22.04, macos-12, windows-2019] + os: [ubuntu-latest, macos-latest] + # os: [ubuntu-latest, macos-latest, windows-2019] # TODO: add 3.12 # https://github.com/single-cell-data/TileDB-SOMA/issues/1849 - python-version: ['3.9', '3.10', '3.11'] + python-version: ['3.9', '3.10', '3.11', '3.12'] include: - - runs-on: ubuntu-22.04 + - runs-on: ubuntu-latest cc: gcc-11 cxx: g++-11 - - runs-on: macos-12 + - runs-on: macos-latest cc: clang cxx: clang++ uses: ./.github/workflows/python-ci-single.yml @@ -39,6 +39,6 @@ jobs: python_version: ${{ matrix.python-version }} cc: ${{ matrix.cc }} cxx: ${{ matrix.cxx }} - report_codecov: ${{ matrix.os == 'ubuntu-22.04' && matrix.python-version == '3.11' }} - run_lint: ${{ matrix.os == 'ubuntu-22.04' && matrix.python-version == '3.11' }} + report_codecov: ${{ matrix.os == 'ubuntu-latest' && matrix.python-version == '3.11' }} + run_lint: ${{ matrix.os == 'ubuntu-latest' && matrix.python-version == '3.11' }} secrets: inherit diff --git a/.github/workflows/python-ci-minimal.yml b/.github/workflows/python-ci-minimal.yml index 5052d64fe2..ab1b8c644b 100644 --- a/.github/workflows/python-ci-minimal.yml +++ b/.github/workflows/python-ci-minimal.yml @@ -28,13 +28,13 @@ jobs: fail-fast: true matrix: - os: [ubuntu-22.04, macos-12] - python-version: ['3.9', '3.11'] + os: [ubuntu-latest, macos-latest] + python-version: ['3.9', '3.12'] include: - - os: ubuntu-22.04 + - os: ubuntu-latest cc: gcc-11 cxx: g++-11 - - os: macos-12 + - os: macos-latest cc: clang cxx: clang++ uses: ./.github/workflows/python-ci-single.yml @@ -43,6 +43,6 @@ jobs: python_version: ${{ matrix.python-version }} cc: ${{ matrix.cc }} cxx: ${{ matrix.cxx }} - report_codecov: ${{ matrix.python-version == '3.11' }} - run_lint: ${{ matrix.python-version == '3.11' }} + report_codecov: ${{ matrix.python-version == '3.12' }} + run_lint: ${{ matrix.python-version == '3.12' }} secrets: inherit diff --git a/.github/workflows/python-ci-packaging.yml b/.github/workflows/python-ci-packaging.yml index c470117b00..7a9dba4fd0 100644 --- a/.github/workflows/python-ci-packaging.yml +++ b/.github/workflows/python-ci-packaging.yml @@ -50,7 +50,7 @@ jobs: - TILEDB_EXISTS: "no" TILEDBSOMA_EXISTS: "yes" container: - image: ubuntu:22.04 + image: ubuntu:latest defaults: run: shell: bash @@ -92,8 +92,9 @@ jobs: -D OVERRIDE_INSTALL_PREFIX=OFF \ -D DOWNLOAD_TILEDB_PREBUILT=OFF \ -D TILEDB_REMOVE_DEPRECATIONS=ON \ + -D TILEDBSOMA_ENABLE_WERROR=ON \ -D FORCE_BUILD_TILEDB=OFF - cmake --build build-libtiledbsoma -j $(nproc) + cmake --build build-libtiledbsoma -j $(nproc) --verbose cmake --build build-libtiledbsoma --target install-libtiledbsoma ls external/lib/ echo "TILEDBSOMA_PATH=$(pwd)/external" >> $GITHUB_ENV @@ -101,7 +102,7 @@ jobs: run: | python --version python -m venv ./venv-soma - ./venv-soma/bin/pip install --prefer-binary pybind11-global typeguard sparse 'setuptools>=70.1' wheel + ./venv-soma/bin/pip install --prefer-binary pybind11-global typeguard sparse wheel 'setuptools>=70.1' ./venv-soma/bin/pip list - name: Build wheel run: | @@ -172,8 +173,13 @@ jobs: run: | mkdir -p external # Please do not edit manually -- let scripts/update-tiledb-version.py update this - wget --quiet https://github.com/TileDB-Inc/TileDB/releases/download/2.26.2/tiledb-macos-x86_64-2.26.2-30fc114.tar.gz - tar -C external -xzf tiledb-macos-x86_64-*.tar.gz + if [ `uname -m` == "arm64" ]; then + wget --quiet https://github.com/TileDB-Inc/TileDB/releases/download/2.26.2/tiledb-macos-arm64-2.26.2-30fc114.tar.gz + tar -C external -xzf tiledb-macos-arm64-*.tar.gz + else + wget --quiet https://github.com/TileDB-Inc/TileDB/releases/download/2.26.2/tiledb-macos-x86_64-2.26.2-30fc114.tar.gz + tar -C external -xzf tiledb-macos-x86_64-*.tar.gz + fi ls external/lib/ echo "DYLD_LIBRARY_PATH=$(pwd)/external/lib" >> $GITHUB_ENV echo "PKG_CONFIG_PATH=$(pwd)/external/lib/pkgconfig" >> $GITHUB_ENV @@ -253,7 +259,7 @@ jobs: strategy: fail-fast: false matrix: - os: ["ubuntu-22.04", "macos-12"] + os: ["ubuntu-latest", "macos-latest"] steps: - uses: actions/checkout@v4 with: @@ -261,10 +267,14 @@ jobs: - name: Install pre-built libtiledb run: | mkdir -p external - if [ `uname -s` == "Darwin" ]; - then - # Please do not edit manually -- let scripts/update-tiledb-version.py update this - wget --quiet https://github.com/TileDB-Inc/TileDB/releases/download/2.26.2/tiledb-macos-x86_64-2.26.2-30fc114.tar.gz + if [ `uname -s` == "Darwin" ]; then + if [ `uname -m` == "arm64" ]; then + # Please do not edit manually -- let scripts/update-tiledb-version.py update this + wget --quiet https://github.com/TileDB-Inc/TileDB/releases/download/2.26.2/tiledb-macos-arm64-2.26.2-30fc114.tar.gz + else + # Please do not edit manually -- let scripts/update-tiledb-version.py update this + wget --quiet https://github.com/TileDB-Inc/TileDB/releases/download/2.26.2/tiledb-macos-x86_64-2.26.2-30fc114.tar.gz + fi else # Please do not edit manually -- let scripts/update-tiledb-version.py update this wget --quiet https://github.com/TileDB-Inc/TileDB/releases/download/2.26.2/tiledb-linux-x86_64-2.26.2-30fc114.tar.gz @@ -323,7 +333,9 @@ jobs: otool -L ./venv-soma/lib/python*/site-packages/tiledbsoma/pytiledbsoma.*.so otool -l ./venv-soma/lib/python*/site-packages/tiledbsoma/pytiledbsoma.*.so - name: Install runtime dependencies - run: ./venv-soma/bin/pip install --prefer-binary `grep -v '^\[' apis/python/src/tiledbsoma.egg-info/requires.txt` + run: | + grep -v '^\[' apis/python/src/tiledbsoma.egg-info/requires.txt > runtime-reqs.txt + ./venv-soma/bin/pip install --prefer-binary -r runtime-reqs.txt - name: Runtime test run: ./venv-soma/bin/python -c "import tiledbsoma; print(tiledbsoma.pytiledbsoma.version())" @@ -352,7 +364,7 @@ jobs: strategy: fail-fast: false matrix: - os: ["ubuntu-22.04", "macos-12"] + os: ["ubuntu-latest", "macos-latest"] steps: - uses: actions/checkout@v4 with: diff --git a/.github/workflows/python-ci-single.yml b/.github/workflows/python-ci-single.yml index dea638e795..408ed20e8e 100644 --- a/.github/workflows/python-ci-single.yml +++ b/.github/workflows/python-ci-single.yml @@ -70,18 +70,17 @@ jobs: run: echo "inputs.os:" ${{ inputs.os }} - name: Linux CPU info - if: ${{ inputs.os == 'ubuntu-22.04' }} + if: ${{ inputs.os == 'ubuntu-latest' }} run: cat /proc/cpuinfo - name: MacOS CPU info - if: ${{ inputs.os == 'macos-12' }} + if: ${{ inputs.os == 'macos-latest' }} run: sysctl -a | grep cpu - name: Select XCode version if: startsWith(inputs.os, 'macos') uses: maxim-lobanov/setup-xcode@v1 with: - # Pending https://github.com/actions/runner-images/issues/6350 - xcode-version: '13.4' + xcode-version: '15.4' - name: Checkout TileDB-SOMA uses: actions/checkout@v4 @@ -134,14 +133,14 @@ jobs: # Setting PYTHONPATH ensures the tests load the in-tree source code under apis/python/src # instead of the copy we `pip install`ed to site-packages above. That's needed for the code # coverage analysis to work. - run: PYTHONPATH=$(pwd)/apis/python/src python -m pytest --cov=apis/python/src --cov-report=xml apis/python/tests -v --durations=20 --maxfail=50 + run: export SOMA_PY_NEW_SHAPE=false; PYTHONPATH=$(pwd)/apis/python/src python -m pytest --cov=apis/python/src --cov-report=xml apis/python/tests -v --durations=20 --maxfail=50 - name: Run pytests for Python with new shape shell: bash # Setting PYTHONPATH ensures the tests load the in-tree source code under apis/python/src # instead of the copy we `pip install`ed to site-packages above. That's needed for the code # coverage analysis to work. - run: export SOMA_PY_NEW_SHAPE=true; PYTHONPATH=$(pwd)/apis/python/src python -m pytest --cov=apis/python/src --cov-report=xml apis/python/tests -v --durations=20 --maxfail=50 + run: PYTHONPATH=$(pwd)/apis/python/src python -m pytest --cov=apis/python/src --cov-report=xml apis/python/tests -v --durations=20 --maxfail=50 - name: Report coverage to Codecov if: inputs.report_codecov diff --git a/.github/workflows/python-packaging.yml b/.github/workflows/python-packaging.yml index 0c91796974..7646d55fef 100644 --- a/.github/workflows/python-packaging.yml +++ b/.github/workflows/python-packaging.yml @@ -21,7 +21,7 @@ on: jobs: sdist: name: Build source distribution - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - name: Checkout TileDB-SOMA uses: actions/checkout@v4 @@ -50,14 +50,14 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - python-version: [ '39', '310', '311' ] + python-version: [ '39', '310', '311', '312' ] cibw_build: [ manylinux_x86_64, macosx_x86_64, macosx_arm64 ] include: - cibw_build: manylinux_x86_64 - os: ubuntu-20.04 + os: ubuntu-latest wheel-name: manylinux2014 - cibw_build: macosx_x86_64 - os: macos-12 + os: macos-latest cibw_archs_macos: x86_64 wheel-name: macos-x86_64 - cibw_build: macosx_arm64 @@ -119,18 +119,20 @@ jobs: dotted-version: '3.10' - undotted-version: '311' dotted-version: '3.11' + - undotted-version: '312' + dotted-version: '3.12' wheel-name: - manylinux2014 - macos-x86_64 - macos-arm64 include: - wheel-name: manylinux2014 - os: ubuntu-20.04 + os: ubuntu-latest arch: x86_64 cc: gcc-11 cxx: g++-11 - wheel-name: macos-x86_64 - os: macos-12 + os: macos-13 arch: x86_64 cc: clang cxx: clang++ @@ -164,7 +166,7 @@ jobs: run: python -c 'import tiledbsoma; print(tiledbsoma.pytiledbsoma.__file__); tiledbsoma.show_package_versions()' # TODO: more thorough local smoke test - name: Smoke test in docker - if: ${{ matrix.os == 'ubuntu-20.04' }} + if: ${{ matrix.os == 'ubuntu-latest' }} run: | docker run -v $(pwd):/mnt python:${{ matrix.python.dotted-version }} bash -ec " apt-get -qq update && apt-get install -y python3-pip python3-wheel @@ -176,7 +178,7 @@ jobs: publish-to-test-pypi: name: Publish package to TestPyPI needs: smoke-test - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest if: github.event_name == 'workflow_dispatch' steps: - name: Download artifacts @@ -200,7 +202,7 @@ jobs: publish-to-pypi: name: Publish package to PyPI needs: smoke-test - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest if: github.event_name == 'release' steps: - name: Download artifacts diff --git a/.github/workflows/r-ci.yml b/.github/workflows/r-ci.yml index 5a50f47065..b5e71f61b8 100644 --- a/.github/workflows/r-ci.yml +++ b/.github/workflows/r-ci.yml @@ -150,12 +150,12 @@ jobs: - name: Test without new shape if: ${{ matrix.covr == 'no' }} - run: cd apis/r/tests && Rscript testthat.R + run: export SOMA_R_NEW_SHAPE=false && cd apis/r/tests && Rscript testthat.R # https://github.com/single-cell-data/TileDB-SOMA/issues/2407 - name: Test with new shape if: ${{ matrix.covr == 'no' }} - run: export SOMA_R_NEW_SHAPE=true && cd apis/r/tests && Rscript testthat.R + run: cd apis/r/tests && Rscript testthat.R - name: Coverage if: ${{ matrix.os == 'ubuntu-latest' && matrix.covr == 'yes' && github.event_name == 'workflow_dispatch' }} diff --git a/.github/workflows/r-python-interop-testing.yml b/.github/workflows/r-python-interop-testing.yml index 3cb006f4c7..2b48ee1c1f 100644 --- a/.github/workflows/r-python-interop-testing.yml +++ b/.github/workflows/r-python-interop-testing.yml @@ -80,7 +80,7 @@ jobs: # run: cd apis/r && Rscript -e "options(bspm.version.check=TRUE); install.packages('tiledb', repos = c('https://eddelbuettel.r-universe.dev/bin/linux/jammy/4.3/', 'https://cloud.r-project.org'))" - name: Build and install libtiledbsoma - run: sudo scripts/bld --prefix=/usr/local --no-tiledb-deprecated=true && sudo ldconfig + run: sudo scripts/bld --prefix=/usr/local --no-tiledb-deprecated=true --werror=true && sudo ldconfig - name: Install R-tiledbsoma run: | @@ -100,7 +100,7 @@ jobs: cache-dependency-path: ./apis/python/setup.py - name: Install tiledbsoma - run: pip -v install -e apis/python[dev] -C "--build-option=--no-tiledb-deprecated" + run: pip -v install -e apis/python[dev] -C "--build-option=--no-tiledb-deprecated " - name: Show Python package versions run: | @@ -110,7 +110,14 @@ jobs: - name: Update Packages run: Rscript -e 'update.packages(ask=FALSE)' - - name: Interop Tests + - name: Interop tests with new-shape feature flag off run: python -m pytest apis/system/tests/ env: TILEDB_SOMA_INIT_BUFFER_BYTES: 33554432 # accommodate tiny runners + + - name: Interop tests with new-shape feature flag on + run: python -m pytest apis/system/tests/ + env: + TILEDB_SOMA_INIT_BUFFER_BYTES: 33554432 # accommodate tiny runners + SOMA_PY_NEW_SHAPE: true + SOMA_R_NEW_SHAPE: true diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e98d8af768..28b99a8791 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -18,7 +18,7 @@ repos: # Pandas 2.x types (e.g. `pd.Series[Any]`). See `_types.py` or https://github.com/single-cell-data/TileDB-SOMA/issues/2839 # for more info. - "pandas-stubs>=2" - - "somacore==1.0.20" + - "somacore==1.0.21" - types-setuptools args: ["--config-file=apis/python/pyproject.toml", "apis/python/src", "apis/python/devtools"] pass_filenames: false diff --git a/Makefile b/Makefile index e8b8e4f061..91663933a7 100644 --- a/Makefile +++ b/Makefile @@ -46,13 +46,7 @@ ctest_update: .PHONY: data data: - rm -rvf test/soco - ./apis/python/devtools/ingestor \ - --soco \ - -o test/soco \ - -n \ - data/pbmc3k_processed.h5ad \ - data/10x-pbmc-multiome-v1.0/subset_100_100.h5ad + cd test && rm -rf soco && tar zxf soco.tgz && cd .. # format # ------------------------------------------------------------------- diff --git a/apis/python/MANIFEST.in b/apis/python/MANIFEST.in index e8b8779dd8..7ac78bb5cf 100644 --- a/apis/python/MANIFEST.in +++ b/apis/python/MANIFEST.in @@ -3,4 +3,4 @@ include src/tiledbsoma/*.cc include src/tiledbsoma/*.h graft dist_links prune dist_links/libtiledbsoma/test/__pycache__ -include requirements_dev.txt +include requirements_*.txt diff --git a/apis/python/README.md b/apis/python/README.md index 704ed54fd5..8f624bdd49 100644 --- a/apis/python/README.md +++ b/apis/python/README.md @@ -52,6 +52,7 @@ If this comes up empty for your system, you'll definitely need to build from sou ``` * In either case: ```shell + make data python -m pytest tests ``` diff --git a/apis/python/notebooks/tutorial_spatial.ipynb b/apis/python/notebooks/tutorial_spatial.ipynb index c4c9f70862..600639392f 100644 --- a/apis/python/notebooks/tutorial_spatial.ipynb +++ b/apis/python/notebooks/tutorial_spatial.ipynb @@ -185,7 +185,7 @@ "output_type": "stream", "text": [ "Ingesting data/CytAssist_FFPE_Protein_Expression_Human_Glioblastoma/10x to data/CytAssist_FFPE_Protein_Expression_Human_Glioblastoma/soma\n", - "/tmp/ipykernel_70620/2080821725.py:3: UserWarning: Support for spatial types is experimental. Changes to both the API and data storage may not be backwards compatible.\n", + "/tmp/ipykernel_21706/2080821725.py:3: UserWarning: Support for spatial types is experimental. Changes to both the API and data storage may not be backwards compatible.\n", " from_visium(\n" ] } @@ -227,8 +227,8 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 8, @@ -259,7 +259,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/julia/.pyenv/versions/3.11.8/envs/soma/lib/python3.11/site-packages/anndata/_core/anndata.py:430: FutureWarning: The dtype argument is deprecated and will be removed in late 2024.\n", + "/home/jules/.pyenv/versions/3.11.9/envs/soma/lib/python3.11/site-packages/anndata/_core/anndata.py:402: FutureWarning: The dtype argument is deprecated and will be removed in late 2024.\n", " warnings.warn(\n" ] }, @@ -301,7 +301,7 @@ "outputs": [ { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -333,10 +333,10 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 11, @@ -410,7 +410,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 13, @@ -432,7 +432,7 @@ { "data": { "text/plain": [ - "CoordinateSpace(axes=(Axis(name='x', unit=None), Axis(name='y', unit=None)))" + "CoordinateSpace(axes=(Axis(name='x', unit='pixels'), Axis(name='y', unit='pixels')))" ] }, "execution_count": 14, @@ -490,7 +490,7 @@ { "data": { "text/plain": [ - "ImageProperties(name='reference_level', image_type='YXC', shape=(2000, 1744, 3), width=1744, height=2000, depth=None, nchannels=3)" + "ImageProperties(name='reference_level', image_type='CYX', shape=(3, 2000, 1744), width=1744, height=2000, depth=None, nchannels=3)" ] }, "execution_count": 16, @@ -520,8 +520,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "Level 0: ImageProperties(name='hires', image_type='YXC', shape=(2000, 1744, 3), width=1744, height=2000, depth=None, nchannels=3)\n", - "Level 1: ImageProperties(name='lowres', image_type='YXC', shape=(600, 523, 3), width=523, height=600, depth=None, nchannels=3)\n" + "Level 0: ImageProperties(name='hires', image_type='CYX', shape=(3, 2000, 1744), width=1744, height=2000, depth=None, nchannels=3)\n", + "Level 1: ImageProperties(name='lowres', image_type='CYX', shape=(3, 600, 523), width=523, height=600, depth=None, nchannels=3)\n" ] } ], @@ -547,7 +547,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 18, @@ -579,7 +579,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 20, @@ -588,7 +588,7 @@ }, { "data": { - "image/png": "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aTt9+nTzfqaf/dAP/ZA98cQT9j//5/+0o0eP3tWUu5/92Z+1z33uc/bMM8/YV77yFfvZn/1Zc87Zr//6r5vZwRzz5WSadWN2MMf90z/90/abv/mb9swzz9jv/M7v2COPPGJHjhyxc+fOmdnej3nfKXozs3/37/6d3X///dbpdOz7v//77fOf//ydvqSXLb/xG79hYG/kXT/vf//7zYwUy3/yT/6JHT9+3Lrdrr3jHe+wp556atc5Ll68aO9973ttbm7OFhYW7G/8jb9hm5ubd2A01yeXGy8A+6Vf+qXmmMFgYH/n7/wdW15etpmZGfvLf/kv24svvrjrPN/+9rftXe96l/X7fTty5Ij99E//tFVVtcejuX75m3/zb9oDDzxgnU7Hjh49au94xzsaJW92MMd8OblU0R/Ecf/Ij/yInTx50jqdjr3iFa+wH/mRH7Gnn366eX+vx9zWo2+llVZaOeCyrzD6VlpppZVWblxaRd9KK620csClVfSttNJKKwdcWkXfSiuttHLApVX0rbTSSisHXFpF30orrbRywKVV9K200korB1xaRd9KK620csClVfSttNJKKwdcWkXfSiuttHLApVX0rbTSSisHXP5/5+utiM+lHK0AAAAASUVORK5CYII=", + "image/png": "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aTt9+nTzfqaf/dAP/ZA98cQT9j//5/+0o0eP3tWUu5/92Z+1z33uc/bMM8/YV77yFfvZn/1Zc87Zr//6r5vZwRzz5WSadWN2MMf90z/90/abv/mb9swzz9jv/M7v2COPPGJHjhyxc+fOmdnej3nfKXozs3/37/6d3X///dbpdOz7v//77fOf//ydvqSXLb/xG79hYG/kXT/vf//7zYwUy3/yT/6JHT9+3Lrdrr3jHe+wp556atc5Ll68aO9973ttbm7OFhYW7G/8jb9hm5ubd2A01yeXGy8A+6Vf+qXmmMFgYH/n7/wdW15etpmZGfvLf/kv24svvrjrPN/+9rftXe96l/X7fTty5Ij99E//tFVVtcejuX75m3/zb9oDDzxgnU7Hjh49au94xzsaJW92MMd8OblU0R/Ecf/Ij/yInTx50jqdjr3iFa+wH/mRH7Gnn366eX+vx9zWo2+llVZaOeCyrzD6VlpppZVWblxaRd9KK620csClVfSttNJKKwdcWkXfSiuttHLApVX0rbTSSisHXFpF30orrbRywKVV9K200korB1xaRd9KK620csClVfSttNJKKwdcWkXfSiuttHLApVX0rbTSSisHXP5/5+utiM+lHK0AAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -598,6 +598,7 @@ } ], "source": [ + "im = np.moveaxis(im, 0, -1).astype(np.uint8) # Move channel axis to final axis for viewing.\n", "plt.imshow(im)" ] }, @@ -668,9 +669,9 @@ " \n", " \n", " \n", - " soma_joinid\n", " x\n", " y\n", + " soma_joinid\n", " in_tissue\n", " array_row\n", " array_col\n", @@ -680,52 +681,52 @@ " \n", " \n", " 0\n", - " 106\n", - " 1874\n", - " 1174\n", + " -87\n", + " 3078\n", + " 5436\n", " 1\n", - " 19\n", - " 169\n", + " 26\n", + " 182\n", " 184.593855\n", " \n", " \n", " 1\n", - " 111\n", - " 1703\n", - " 379\n", + " 17\n", + " 680\n", + " 1735\n", " 1\n", - " 16\n", - " 170\n", + " 17\n", + " 181\n", " 184.593855\n", " \n", " \n", " 2\n", - " 137\n", - " 176\n", - " 943\n", + " 28\n", + " 1212\n", + " 1410\n", " 1\n", - " 18\n", - " 180\n", + " 19\n", + " 181\n", " 184.593855\n", " \n", " \n", " 3\n", - " 166\n", - " 165\n", - " 411\n", + " 39\n", + " 1745\n", + " 1337\n", " 1\n", - " 16\n", - " 180\n", + " 21\n", + " 181\n", " 184.593855\n", " \n", " \n", " 4\n", - " 397\n", - " 654\n", - " 1732\n", + " 165\n", + " 411\n", + " 166\n", " 1\n", - " 21\n", - " 177\n", + " 16\n", + " 180\n", " 184.593855\n", " \n", " \n", @@ -740,51 +741,51 @@ " \n", " \n", " 5751\n", - " 4115\n", - " 22616\n", - " 22038\n", + " 23072\n", + " 21763\n", + " 2116\n", " 1\n", - " 99\n", - " 37\n", + " 98\n", + " 34\n", " 184.593855\n", " \n", " \n", " 5752\n", - " 5016\n", - " 23231\n", - " 22026\n", + " 23220\n", + " 21493\n", + " 2181\n", " 1\n", - " 99\n", + " 97\n", " 33\n", " 184.593855\n", " \n", " \n", " 5753\n", - " 5220\n", - " 22913\n", - " 21500\n", + " 23231\n", + " 22026\n", + " 5016\n", " 1\n", - " 97\n", - " 35\n", + " 99\n", + " 33\n", " 184.593855\n", " \n", " \n", " 5754\n", - " 5437\n", - " 22594\n", - " 20974\n", + " 22627\n", + " 22570\n", + " 4910\n", " 1\n", - " 95\n", + " 101\n", " 37\n", " 184.593855\n", " \n", " \n", " 5755\n", - " 4910\n", - " 22627\n", - " 22570\n", + " 22638\n", + " 23103\n", + " 2766\n", " 1\n", - " 101\n", + " 103\n", " 37\n", " 184.593855\n", " \n", @@ -794,18 +795,18 @@ "" ], "text/plain": [ - " soma_joinid x y in_tissue array_row array_col \\\n", - "0 106 1874 1174 1 19 169 \n", - "1 111 1703 379 1 16 170 \n", - "2 137 176 943 1 18 180 \n", - "3 166 165 411 1 16 180 \n", - "4 397 654 1732 1 21 177 \n", - "... ... ... ... ... ... ... \n", - "5751 4115 22616 22038 1 99 37 \n", - "5752 5016 23231 22026 1 99 33 \n", - "5753 5220 22913 21500 1 97 35 \n", - "5754 5437 22594 20974 1 95 37 \n", - "5755 4910 22627 22570 1 101 37 \n", + " x y soma_joinid in_tissue array_row array_col \\\n", + "0 -87 3078 5436 1 26 182 \n", + "1 17 680 1735 1 17 181 \n", + "2 28 1212 1410 1 19 181 \n", + "3 39 1745 1337 1 21 181 \n", + "4 165 411 166 1 16 180 \n", + "... ... ... ... ... ... ... \n", + "5751 23072 21763 2116 1 98 34 \n", + "5752 23220 21493 2181 1 97 33 \n", + "5753 23231 22026 5016 1 99 33 \n", + "5754 22627 22570 4910 1 101 37 \n", + "5755 22638 23103 2766 1 103 37 \n", "\n", " spot_diameter_fullres \n", "0 184.593855 \n", @@ -1007,7 +1008,7 @@ "outputs": [ { "data": { - "image/png": "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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjkAAAGiCAYAAAAFotdwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOydZWBbV7q1H7GMMjPFdtgQZk4abAopM1PKOE3b6ZSmNFOYMjdlbppCmgYaZo4dx3bMDDLIAovP9+NI21LTuXN77/3uzPRq/XJOa0mWtM9+93rXu5ZCkiSJEEIIIYQQQgghhN8ZlP/sFxBCCCGEEEIIIYTw/wOhIieEEEIIIYQQQvhdIlTkhBBCCCGEEEIIv0uEipwQQgghhBBCCOF3iVCRE0IIIYQQQggh/C4RKnJCCCGEEEIIIYTfJUJFTgghhBBCCCGE8LtEqMgJIYQQQgghhBB+lwgVOSGEEEIIIYQQwu8SoSInhBBCCCGEEEL4XeLfvsh5+eWXycnJQa/XM3HiRPbu3fvPfkkhhBBCCCGEEMK/AP6ti5zPPvuMO+64gz/96U8cPHiQ4uJiFixYQEdHxz/7pYUQQgghhBBCCP9kKP6dAzonTpzI+PHjeemllwDwer1kZmZy8803c++99/6TX10IIYQQQgghhPDPhPqf/QL+q3A6nRw4cIAVK1aIa0qlknnz5rFr165f/R2Hw4HD4RD/9nq9dHd3Ex8fj0Kh+P/+mkMIIYQQQgghhP8+JEnCbDaTlpaGUvn3m1L/tkWO0WjE4/GQnJwcdD05OZny8vJf/Z0nnniChx9++H/j5YUQQgghhBBCCP+f0djYSEZGxt/97/+2Rc5/BStWrOCOO+4Q/zaZTGRlZdHY2Eh0dDQAs/+yiU6LE4Ap+fG8cck4AG7+5CCbyjsBiNar2bliLgBvb6/hufUnxGP+eOt0MuPC2VvTzZXv7RPXX7xgNLOHJf3//QNDCCGEEEII4f8A+vr6yMzMJCoq6j/8//5ti5yEhARUKhXt7e1B19vb20lJSfnV39HpdOh0upOuR0dHiyLnLxdN4oNd9eg1Km6cnS+uP3bOBN7aVoPV6eG88Zni+vL5hRiiDTT39jN9cAIjc+RCZt6oaD4Mj+BoUy/DUqKZOzwp1BILIYQQQgghhP9B/KN99d9eeDxhwgRefPFFQNbYZGVlcdNNN/2nhMd9fX0YDAZMJhP9aFErFcRHBhdBdUYrVqebYSnRqJQDb2Z5Wx/NPf2MyowJ+p3ytj5KmkwMSY6iODNGXK/qsLCpvIPEKB1LilLRqJTi8b840IhGpeSCCVkkR+v/O29JCCGEEEIIIfzuEbh/+0mHX8O/LZMDcMcdd3DZZZcxbtw4JkyYwPPPP4/VauWKK674TY9z71dHWVNhAuD2eUO4dd5gAP624QTPbagEYGx2LF/dMAWArw40cecXRwC5dbXhzpkkRek50tjLma/swOsrG1deMZ5ZQ5Mw210seWEbDrcXgBMdZu5eMAyAK1fuo8ZoBWBvbTcfXzPpv/GOhBBCCCGEEEIIfvxbFznnnXcenZ2dPPjgg7S1tTFq1CjWrl17khj5H6Gjb2DiqsNsFz+rVQPMjVY1oN5ONeiJ0qsx291kx0cQplGJ6wXpBo42mRicFMmghAgAIrRqzh6bwZqSVhKjdMwJ0ObcPDefN7fWolEruWZ67m97A/4PQJIkPF4Jterf2tIphBBCCCGEfwL+rdtV/1346a6u7h5qTF60aiWF6YagHl9Lbz82p5vchEiUAe0qh9uD1eEhJkwTdB3A65VOuvZLeHx0j+oX/5/F4cbu8pDwi7ZZj9VJu9lOTnwEel9RBdBpdlDe1kdOfASZceG/7Q34b8DjlXhney1767rJTYjglrmDidDJNfMHu+v57nALsREa7l4wlPwkWRj2w9FWXt5UBcCNs/NZUpQKwLYTnfzxm1J6bC6WjUnnT0tHAnLr79r3D9DQbWN0VgzvXDae2Ajt/9rfGEIIIYQQwr8m/k+0q/6n0GayMy5HFivXd1l5ZVM1ZoeLc8ZmiomoDrOdJ38sp6lbFhgvn51PXIQKi8PNg6tLOdzQy+DkSB47o5DEKB0er8QD35SytlRmb55YVsjY7DgAnl1XwSubq1EqFdyzYChX+xicD3fX8/B3x3B5JE4Zkcybl8qTXVsqO7nm/f043V7SDHpW3zSNxCgd1Z0Wlr64HZvTg0qpYOUV45k+OPF/5T072tTLn9ccF//OjAvn4knZONweHlxdir90jo/U8fiZhQC8sbWastY+AF7fWi2KnI3HO6jrsgHw5f4m7l88HLVKSU2nlYZu+Xpps4kuqyNU5IQQQgghhPCfRqjIAR5cfYwvb5WLnKd/quCHo60A/FzewfFHFqJQKPj6YDNfH2wGYG9dN4uLUslLjOR4a5+4XmO0srgwldNHpWNzuvn6YBMOt5cem4tN5Z2iyNlR3YXbK4FXYk9ttyhymnr6cXnk6qDWaEWSJBQKBV6vhJ9wcwf8HKFVkxCpo6HbRrReTUzY/14BUJQRw/2Lh7Ontpu8xAjOHJ0OgE6t4sOrJvLdkRbiIrTibwN49eKxfLavEYDzxmeK6ysWD6M400CP1cUpI5JFa2pxYSqrlk+h1mhlVGYMuYmR/2t/XwghhBBCCP/+CLWrDAY2HK5lbnEOADWdFl7aVIXZ7ubccZmcMkLW99icbt7cWktTj41pgxM4fVS6eJyfjrVxqKGXIcmRnDEqXbSqqjosbK6QJ6oWFw5MVNmcbjZXdKJUKJg9LBGdWm4/SZLEkSYTZruL8TlxQW2pDrOdNpOd/KRIwrUDtanb46XT4iA2XBv0//8W+IupQLg9XiwON9F6zUltuuaefpKi9UTq1EHXjzaZiA3XiPYUgMvjZUeVEUmCqfkJaNVK8fgbyzvosTqZNTSJFINevJY1JW1UdVgYnxPLlPwE8VhrS1vZXdPNoIQILpyYJd7PTeUdrDrUTHSYmuWz8kmLCQNgT00Xb2ytwStJXD09l6kBjxVCCCGEEMK/L/6z7apQkeN7k+wKLTaHh+z48JM0Oc29/QxLiSJKrxHXG7psHGsxkZ8UyeDkgU29ubefrZWdxEdomTs8WWhuOsx2Vh9qQaGAZWMyiPO1XbqtTt7fVYep38Xpo9IZ5Rs7tzndvLq5mrouG5Nz47lgQiYKhQKXx8uLP1dxsL6H/KRI7pw/hCi9BkmSeG1LDd8eaSEuQsN9i4czMs0AwOf7GnnJp4W5eU4+54yTWZR1x9pY8XUJpn5ZC/PUWUUoFApKmkxcsXIvRouToclRfHTNRBIidbSa+ln2yk5aTXYidWpWXjGecTlxeLwSpzy3hZpOeUrs3kXDuH5mHgBXv7efDcdlL6PpgxP44KqJADyx5jivb60BwBCmYd/989Cqlaw61MTtnx0R7+e3N02lKCOGYy0mlrywXVx/9IwCLpmUjdcrMeSBH2VmDFg2Op1nzxsFwGkvbedokzw1NzQ5ip9un/Ff+JaEEEIIIYTwr4aQJuc3YOWOWp7b2uRjG+L56Gp5jHvdsTau//AAXgniI7T8eOt0kqL1lLX0cfrL23F5JBQKeO+KCcwYkojN6WbBc1uxONyAXFDcOX8oII+KlzbLepT1Ze18dt1kAB77voyvD8ntrk/2Noj22Gf7GnnxZ7kw+e5IC0UZBgrSDRxq6OWFjbLD8vYqIyNSozl3fCYOt5e/rqsQgubP9jXyyOlykfPx3gahbfl0X6MocvbUdtNlld2dNxzv8E0xKWg19WP0uT43dNsw290kROpweyRsTg8gMzd2lzwSr0B+f2o6raiUCgxhA8VgYbqBTRUdSJJEUYZBXJ+UF883h5tFi0rjm2SbMCieafkJVHdaGJsdK1pU+UmRXDl1ELtruhiUEMECH8OmVCp4/vxRfHWgCUOYhpvm5Ivn+MvZxazcWYskwaWTc377F+PfDA63B0niJEavz+7CZHORFhN2ktA9hBBCCOH3jBCTYzDw+KoDvL5b1uEUZRhYfeNUFAoF208Yueb9/fS7ZIZn1fKpxEVoaTPZufjtPVR1WEiPCWPlFeMZnByF1ytx5xdH+KGklcRIHU+fXSRaJJ/sbeCVzVWoFApumzeEM3walqNNvTy9tgJTv4tzx2VwiW8z7rU5+eu6Cuq7bEzKjef6mXmolLI+54Pd9RzwMTnXzsgVm9rBhh7WHG0lLlLLJZOyBfNktDj4xldInTk6XZgXuj1eNlV00mtzMnNoIklRA0aEJ9rN1HXZKEw3iFYSgKnfxYl2M5lx4UHGhZIk0dTTT6ROfZI42O6SN98w7W9vp0mSRL/Lg16tCmqbSZJEW5+dcI0aQ7gm6HpluwWPV2J4alQQK1fabKLT7GBsTizRAazcgfoeqjssFGUaGJYycCI40tjLrpouMmPDWVSQIp6/os3MN4ebidSpuWhiFjHh8t9b3Wnh3R21uD0SF03MptBX1LWZ7Dy3vpIOs52FBSmcO05m5Uw2F4/+UMaJdjOjMmO4d9FwwrQqHG4PD317jC0VnWTEhvP4skLyk+Ri7/E1x/l4TwMROhUPnzaShQWyePutbTU8tbYct1fissk5PHSaPKG2trSVWz49jNPtZXhqNF/fMOW/9DmEEEIIIfwrIdSu+k8g8E3qsCuxONwUpEUHebKY7S6MFifpMWFCTwLyZmpxuInQqv/huPivweOVcHu9Qo/jh83ppsviJMWgF5oTkEfLqzssZMSGBTksWxxu9tV2ExuhpThjYPzd5nSz8XgHCgXMHZYsNjaH28N3R1rptTmZNzyZHJ+Xj9vj5fP9TdR1WZmQE8c8H1MiSRJfHGhiT003uYkRXDVtkCiq1pS08vXBZgxhGm6Zm092vPxYm8o7eHVLNUhw7Yxc8ViHG3t56NtjdFkdLC1K4+4FQ1EoFNR0Wrjp40NUd1oYnxPHyxeOwRCuwWRzcek7ezjSZCIpSsebl46jODMGSZK47N19bK3sRKVU8NDSEaI4/MOXR/lsvyxuXlyYwisXjQXgza01YhosKUrHlrtnE6ZVsb6snWve3w+AUgHf3jSNgnQD9V1WZv91szB2fOT0kVw6OUdmpB5eh9kus3WnFafxwgWjATj3tV3sresGIDs+nC13zwbgzz+U8ea2WvGZHfrjKcRGaFl9uJlbPz0srn989USm5CfQ2G1jxl82iQm1B5YM5+rpuUiSxMTHN9Jhln2dzhuXyVNnFwFw26eH+OZwCwDFmTGsvnEqILcq7/nqKAAp0XrW3zEjqO0awj8XLo8XtVJxkibOaHGgUihC04QhhPB3EGpX/Qbsrelm3qgcQGYqnlt/nPouK1PyErhq2iCiEjTYXR4e+a6MAw09DE6K5IElw4kJ1yJJEk+tLee7Iy3ER+p4aOkIRmfFAvLp+qVNMntz5/yhXDgxC5DbTyu+LsHicLO0OI0Xzh+FQqFgf103V7y7D7PDTVZcOF/eMJmkKD2N3TZOf3kH3VYnWrWS966YwOS8eNweL/Of3UKLSTYwDHRrvnLlPnbXyBtusBamnJU76wB4bn0lh/80H41KyWf7G7l/VSkAb2yt4YdbpjEyzUBpcx/3fHlUvFfRejWXTM7B45W4+ZNDoj0mIfHsuaPkx91QKbQwZodbFDmrDzdzuLHX997Ucsvcweg1Kspa+8Ro+c5qIy2mfgzhGvrsLirazQB0mB3Ud9tEVEabqR+Qi8VO84CZYyBLEaYZ+HpnxIYRplHR7/IwKCFCGD3mJUYwOCmSqk4Lo7NiSfWxVsnRepYWp7H9hJGMuHCm5MUDck7KnacM4ZO9jUTq1Vw8KVs8xx8WDeWVTdW4vBJXTM0R16+bmYfLI7/OBQUpYuM6tSgNU7+LijaZyZnse47MuHC+vH4y2090kR4bxhmj0sRzf3/zNNYfbydSp2ZhwUBG21/PKWbZmAycbi/TBg8IrM8dn8n4QXF09NkpSDcIL6P/n5AkCZdHCjoUgLyhd1mcxEVog/6b0+2lutNCfKQ2iE10ur3sr+9Gr1ExOjNGFAJuj5dtJ4xYnW5mDEkUrJzXK7H2WBstvf1MzU9geGq0eD0/HWuXc+RSo1lalCoea1N5B+vK2kmO1slr3fdYO6uNfLi7Ho1KyXUz8hiR9vdvov8ReqxObvn0kLCYeOGC0WTEhuPyeLnhwwNsON5BXISW588bxYwhsv3Diq9L+GRvAwC3zMnnDl/LO4QQQvjtCBU5wPUfHeBEcTYKhYIvDzSJImBTRSdT8xMYkRbN0SYT7+yQT+NHGnuZnBvPWWMzcLi9vL2tFqfHS1NPP98eaRFFzndHW+m1uQD4sbRVFDmlzSah29lb24VXApUCzHY3NpeseemxOXH4NC9KpUJoKVSKgZ+VCgX5yVG0mOzo1Eqy4wfMAGcMSeRQQy8KhVzk+DF/RDLbTnTSY3Nxxqh01L7Hmjssmc0jOqkzWpmYG0eeTwszLDWKW+bks6e2m5z4CE4tkjdclVLB6xeP9U01abhxdp54jhcvGM2Hu+uRJMTfDHDPgmHkJkRgtDhZMDJFMEKnFqURG66lxldo+DenzLhwNt45i8MNvWTHh1OQLrd/FAoF3908jUMNvUTrNUEb0EOnjeTq6YPweiEr4P1YVJjK7GFJ2JweYsM1YpPLTYxk/R0zT5ow02tU/O380UHfE49XQqmAy6cO4vKpg8T1PrsLr1dibHYcb18eJ66399npsjgZnBwp2kcgi9lrOq0MSY4M0go19/azr7abtJgwxufECsuB9j47Px1rI1yr5tSiVC6aKBdWPVYn7+6ow+HycubodLFJ9tldvLq5mg6znXnDk5k7PJlBCRE43B6eW1/J8dY+CtINXD8zD61aidcr8ca2Gn4+3kGyQc+9i4aR7ptQe39XHe/vqidMo+LuBUPFc/xY0spjPxzH7vJw2ZQcbpkrF9e7qru4+ZODGC1Opg9O4M1Lx6HXqKg1Wrnwzd20muwkR+v46OpJ5CdFYnW4WfridmqMsp7r2XOLxeTihW/uZn99j/zzxCzht/TH1cdEETAoIYJNd80C4J0dtTz2g8zWaVQKtt0zhxSDnl3VXVz/4QHxPmtVShYWpGC0OLhi5T5x3en2cs9COW7l7i+O0tzbL97/T6+dzH8FtV1Wtp0wAnCwoZeylj4yYsOxuzzsrZUPId1WJ6UtJvHeNvXYxO83+V5DCCGE8F9DqF1lMPDh1jIumj4ckNs/L/1cRUO3lcm58Vw8SS5+JEni64PNgsm5ZFK2aGsdb+3jp2NtxEfqOGdshti8TTYXa0pbUSkVLC5MFSPXXq/Erpouem0upubHC00HyDe4xm55miuQqu53emjotpFi0AcJeyVJotfmIkyrOklw6v9o/1FKq8crnSRI9XgluiwOosM0QY/r8UpUd1qI1muCtDper8TBhh68kpzz5X88SZL/1i6Lk8l58UFOzttPGKnqMDMqK1ZMlQHsrDKyo9pIdlwEy8aki/f5QH23XFTpNVw5bZB4rNJmE29tq8Hl06NMGCQXB7VGK0+vLcdocbCkMJXLpuSgUCgwWhw8sKqUynYzo7JieOT0AiJ1auwuD3d+cYStlZ1kxobzzLnFouBa8fVRPt3XSIRWzWNnFAhN1Us/n+DZ9ZV4JbhgQhZPLJM34i/2N/KHr47ilWS26IdbpqPXqNhf180Fb+7G5ZHQa5R8fcNURqRF02G2M+svm4Ww+7EzCgRLNPmJjbT62LrA6bGrVu5jY3kHIDNV2/8wB4Cn1pbz6uZq8X7uf2AeCZE61pa2cv2HB8X1ty4dx7wRybSZ7Ex6YqO4HsgeTHx8A+2+2JMFI5N5/RLZoPKmjw/yvc9PKvC5V+6o5aHvygCI1KnZes9s4iK0HG3q5ezXduF0e9GoFHx23WTGZMVidbhZ8sI26rpsKBXwzLnFnDk6A4A7Pz/CVwebUCrg7gXDuGGWXEh/vr+RP60+ht3t4cIJWfzZV/yUNpu464sjtJrszBqayNNnF6FTq+izu3hgVSlHm3oZmhLF42cWEh+pE8XdumNtpBj03LtwuCiMd9d08cHuenQqJdfOzA3Sav1WHKjv5nCjiaHJUUEsW0efnV01XSRG6ZicGx/EVB1s6EWtUjAqI+a/1A4PIYTfO0Ltqt+ApcXpdFudtJns5CZGcO+iYeK/dVkclLeZyY4P56yxGZw1Vr4Bd1ud7KruIj5Sy8RBcWIzNNlcfH2wGaUCFhelcsEEmcmwOtys3FFLj83FosIUIUh2uD28vqWaui4rk3LjOa04jYzYcLxeibe317K3totBCZHcPCefoSnyqPonexv45lAzcRFa7pw/VIhSfzjaKkbFl8/KY2mxzLrsqu7igW9K6LY6Oa04jYdOG4lCoaCy3cy17++nrsvG2OxY3rp0HLERWrosDs57YzdVHRYMYRrevmwc43Li8Hollr2ygyNNJhQKePDUEVzhYzRu/eww3x2RNSFzhiXxzuXjAXjp5yqeWS+HnMaGa9h571zCtCp+ONrKjR/LG65CAd/5tDA1nRYufGuPeP+tTjdXTB2EJElc+OYeEXLaarLznG+zf+jbY+LEf6zZxGafFua9nXX8WNoGwL66Hs4Zl0mETs2u6i7WHpOv1xitnDcuk4m58RgtDn4qbcPtlShr7WNPTRfDU6ORJImtlbLXj8Xh5kB9jyhy6rpsQrdT3Wn51e9X4CkiSq/BEKbBaHESG64lQicXkFE6DWOyYtleZSQxSic+a4Czx2bwwe56IrRq5o8cyGW7aFIWrSY7drdHfA4AF07IoqHLRlufnfkjkon3FcuzhyVxy5x8ynxMjp85SDHoee3isfxc3k6KIYxrpg881ifXTOKbwy2EaVScH2Dg+PTZRUwfnEC/08OiwlRx/bIpOYxIM9Bq6mfioHhhlVCUEcOWu2dxot1CflKk8DKK0Kn56fYZnGi3kBilCxKzP3NuMSsWD0OjUgYV9ueOy+TsMRl4JClIt1aQbmDtbcE2AV6vRLReI3RT4D8YOAnTqrh+Zp6wO5AkicZuGyqlgkm58UzKjRfXj7f2YXW4KcqICWq1lTabaOy2MTorNqjoP9rUy+HGXvKTIpmSlyBYubKWPtaXtZMQpeWsMRmCtarptPDpvkaUCgUXTcwShXpjt41Xt1Rjtrs5a0w6s4bKDuzdVidPry2nztdWXz4rL5TvFkIIv4JQkQPsqDJy69cVON1eUg16Vt80laQoPbVGK0tf3I7F4Q6KTbC7PMx7dgvdvvHrO04ZIuj6K1bu5WBDLwDfHG4WNPfja47z0R6ZYn9tSzWlDy9Ao1Ly+b5GnvixHIBP9jaSlxgph3w2m3j0+zLfK2wnPTaMSyZl43R7uW9ViRClxoRrBXvwxrYajvu0LW9srRFFzsbj7VT7PGy+ONDEisXD0WtUVHVYRJzCkcZejBY5NqHf5aHdxxz0+YTXfvgdmSVpIH8L5NO8H5kBP49Ii8YQpsHU72JsdpzYIArSoynKMFDVIY+K+38/PTaMCydmsaPKSFZcOHOHyZu6QqHg4dNG8sWBJqL1aq6aNrARP3TaSN7cVoPbI3HZlBxx/bZ5g4nUqTFaHCwqTBV6lCWFqbg8XirbLYzKjGGibzPLiA1n9U1T2V3TTXpMGPNHDDz3mlums7mygyi9mhkB0RlPn1XEeeMzcbq9jM8ZaFWdMy6T6YMT6bI6GJwUJf7uoSlR7Lh3Dl0WJwmROnE9TKviw6snCqYjkH27c/5QYUXghyRJzBmWzJxhA0WPy+PF5vSQERvGyxeNEddtTjctvf2kGsKC9B1Wh5sjTb0kR+lZWJAiND42p5t1x9rQa1RMyYvnjlOGAPKU3OrDzfQ7PcwfmcJ54+UC3u3x8tWBJlp6+5kxJFFs0JIk8cX+RkqaTQxLieb88ZmkGuTPefXhZjYc7yA5SseNs/NFK3JTeQfv7apDq1KyfHa+YPj21HTxl58qsDo9XDwpi4smZqNELtTv+fIoTT39zBySyOPLCtCpVXSY7Vz7/gEON8omnW9eOo7seLlld+nbe9lT202EVsXz548Whp+3f3ZYiLevm5HLisUyu/vXdRW8vElmxkamRfP9zdNQKBRBnk7hWhUb7phJWkwYJU0mTn95h1ijr108loUFKVgcbmE9AbI9w4pF8nNc/+EBKtvlInlfXTdf3TAFgL/8VMG3vsPDT8faqHhUtpj45lAzn/rcw3fXdHPKiGRx0AohhBAGECpyAK80EJXg8Uri6K3XKImN0GBxuInUqYXAUaNSMiYrlg3H24nSqxkWcOo+rTiN+i4bCgVCvwKwbEw6pS199FidnDk6XZxAFxWmcqihV55qGhTPEJ+xYGG6gRWLhrGvTtbC+GMTtGol7185ge+OtBAboeXagNiE1y4ew+f7mgA4Z1yGuH7PwmGMTI+myyJPVPnbT4sLU/l6+RRqOuXYBD8jlBEbzqa7Z3GspY/M2DDhVaNUKvj2pqmUt5kxhGmCAkH/sHAY107PxStJQdNfc4cnc+iPp+D6xSRZdnwE39407aTPQqdWCe2FH312F1qVkvMnZHH+hAGNT5vJjsvjpSDdEKSfqem0YLQ4KUw3cNeCgU29qsNCVYeZ4anRLBuTEXR9b203mXFhTMtPECaK9V1Wvj/aSoRWxVljB07dbSY7H+6ux+H2cM64TFHcdFudvPRjFR1mO/NHpnBacRopBj02p5unvi/neGsfhekGbj9lCGkxYbg9Xp78sZzNFR1kxIbx4KkjRbvklc1VvL+znjCtivsWDxcb8ZcHmnj0+zL6XR6umJojNsktlZ3c9PFBzHY343Ni+eCqieg1KirbzZz3+i56bC5iwjV8du1khqZEYbK5mP/8Ftr7HCgU8GxAm+ic13ZxrEUuls8em8FfzymWv0dfHhUb7htba/jZp4V5c1stT62VC/XnNlSy4945pBrC2HbCyN0BovXYcA2LClPpMNuDpso0aiV/8Glh7l9VIoT0Foebj6+RPave3VEn2Lpn11UKXdLWyk4hZl91qInbTxlMRmw4rb12jjbJ1yvbLdQYrWTHR+DySIJxszo9NHYP6F/8OjmQBfN+xEXoUCrAK8mTef4CNCsugvgILV1WJ0OSo4jUy7fTjNgwJufGc7BBtnkYniqv6XCNisun5LCmpI2EKB2LCwYYsDtOGcIbW2tQKRXcOHvA6+nWeYNRKRX09bs4e2yGeO4LJmTRZ3fR0GVjcl580D0ohBBCGEBIk+Pr6TmVOtpMdvISI4MmdFweLx1mB/ERJ8cm2F0eNCrlPzRY+3uxCVanh2i9Oui/OdweGrv7SYrWBXm5ON1eSppNxIRrhCjY/zi7amTx8uTc+KDYhA3HO+ixOZk1NFGcoCVJYm1pG9WdFsZknRybsKu6i5yECC6elC0KsS2Vnaw62ER0mIbrZ+aJVsOB+h5e21KNxytx5dRBQm9wvLWPP/9wHKPFwdLiNJbPykOhkE0G7/riCJXtFkZnxvCXc4oxhMlF5PKPDrKzykhWfDgvXTBGiIlv/PggPxxtRatW8ujpIwV7EKg7OWNUGs/7ipwPdtfzx2/kKbH0mDA23DGTMK2KnVVGLn57D15JFqWuWj6VgnQDTT025vx1C06P3Ab785kFYgMd99h6wWIFjopf+s5etlZ2iufYca+sRwl0cQY48MA84iN1/FjSyg0fDWhh3rl8HHOGJdPYbWP605vE9bsXDBUb3JQnNorNfklRKi9fKDMzt356iNU+tiEvMYKNd86S/+5ddfxx9TEAYsI1bL5rFjHhWo61mDjntV3YnB7CtSo+v24yBekGLA43Z768gxMdFnRqJS9eMJr5I2Um54/flPLB7nq0KiX3Lxku2LFVh5r48w/H6XfK7TF/AVnRZmbF10dp6bUze1gSj5w+Eo1KidXh5rEfjlPS3MvwlGgeOHUEhjDZnfvDPQ2sL2snJVrHHacMFa2eQw09fLSnAa1aydXTBokCu8vi4KM9DVidbpaNzhDtPI9X4vujLTT39jM1L0FM3/m/hyXNJoYkRwVpvkw2F/vru0mK0gsvI5BbW2WtfahVCoYmB3ssdVud9Ls8pBn0Qdc9XtnHKUKr+ofat1+D3eVBoeAkK4lemxOr8+Tn6+iz09Tbz+CkyCArgDaTnWMtJnISIoLuDyGE8HtFSJPzG/Dl/kaumD3C5+rr5W8bTrC3TnbWvXv+wKTJ61uqfbEJWlYsGi424s/3N/Liz7IL8c1zBnOuz1F4Q1k7K1aV0Gtzsmx0Bk+eVYhCoaC02cQVK/fRaXYwLCWKD6+WYxM6+uyc+cpOmnv7CdOoeOfy8UzOi8fjlVj8wjaqOuQTaGBswvKPDrKu7OTYhL+sq+D1LfKGG6VXs/+BeejUKr490hJ0ivbHJpS19AWJUtVKBZdMzsHrlbj6vX2CYjfb3UIL8/ia4xzwna7rjFZxsv98fyPbq+SJksr2Cq6YmkO4Vs3B+l52VHUBsK6snet9hVaXxcGuaiNur0RNp5XSFhMj0mQtTJmPUXC6vZxoH9C89PW7xM+9AT9H69VoVUqcHi+xERqUPplCUrSeVEMYzb39ZMaFC61IXISWaYMT2HZCNt4rzogRj3XVtFw+2lNPpE4ttFgA18/Ixe7y4HB7uXzKwAj5FVMH0WNz0t7nYMHIFPEcp4xI5r7FwyhrkbUwM4fIuorMuHDeu3ICWyo6SY8N46KASbQvbpjCmqOthGlVQv8DshZm/ogU+l0e5g1PEtcvmZzDqMxYWk39jM2OFWL2kWkGdvxhDrVdVnLiI8RritSp+fHW6TT39hMTrg3SvDx6RgH3LxmOUqEI0p+cOTpDsD2BGJoSxdfLp4p/S5JEv6+o8rdSQS4IGrttRIdpuGRSNpf4hNX+z1mjUjAqM0ZMJ0qSxL66biwON5MGxYuWsCRJ7KruorHHxoScuKAcuV3VXRzxCYxnD00SLZz9dd38dKyNxCgdF03MZu5wmRk71mLiw931qJQKLp8ySLTNqjrMvLCxCrPdxTnjMlns0x2199l55Lsy6rutTM1L4M75Q4nUqTHbXaz4uoRDDbIO5+mzi0iO1uP1Stzz1VG+O9JCQqSOp84qEoeBJ38s542t1SgVCu6YP4Tls+QC98Pd9fzp22N4vBJT8uL56OqJKBQKtlR2ctXKfbi9EnERWr6/eRppMWFUdVg49cVt2F1eFAp45/LxzB468N0IIYT/ywgVOcBD35UxYWgGBekGSppNPLdBFsruqOpiWEo0F0/KxuH28PRPA7EJ2fH1PHaGfAP/dG8Djd394md/kbO7pkt4uKwra+PPZxagVilo6e0X12uNVvr6XXKB5TsVgswgOdzyzwoQm5BKqSBKP/CxjUiLZsPxdiQQbRaQWZ1vD7fQZXWycGQKWh8rMy4njil58VR1WBiXE8sgnxlgXpJs9LentovsuAgW+E71SqWCZ84diE0IpNKfXFbI29tr8XglLpk8sNnfOX8oydF6jGYHiwpTRKDo4sIU3rhkLCc6ZC3MGN9mlh0fwY+3TmdvbQ9ZceFMzR/wpPnhlmnsqu4iSq9hfE6seA7/9JHL46Ug4O8+fVQ6s4YkYep3kREbJiZT8pMi2XbPbCxON5EBBo7hWrUQSf8SN8zKExM9/s/EK0lMyU8IYsAsDjemfhep0XqePrtYXO+2OqnvsjIoIYJrZww8To/VyeHGXlIMemYOSWSmTwBs6nfxk08LM3toEtfMkFuRZruLD3fXY3d5OLUojSVF8obrcHtYuaOWVpOdmUMTmZKXQGGGAbfHy1vbaihr6WNEWjSXT8lhTFaszKDsrmfj8XZSDHpunzdEGDh+d6SFlTvr0KmV3DJ3sBDdbqro4Kkfy7E63Vw6KUe8ppImE7d9dojmXlkL87fzR6PXqGju7efSt/dQ3WklJz6clVdMICchArvLw1mv7uRYSx9atZLnzxslCodr3j8g8s0unZzNI6cXAPDI92W8u6MOgMFJ8qg/yEX0H74qAeT27c93ziQjNlxMrvnxxiVjmT8yhT67i3Nf3yUE4p1mB/cvGQHAzZ8cEplrx1vNQgvzt41VQki/s7qLRQUp8vfxaCs/lMhTZaXNfZw1NoMhyVFUtlvEtFlzbz97ars5rTgNp8fL2tI2HG4vzb397Kw2iiLnkG8a0StJHG00BX1v/PeZDrMDSZLF+VqVEo1KidvrQa9WCvuHaL2a9JgwqjutxEfoSAxoF4cQwv91hNpVBgNPrT7IHUuKUauUSJLEx3sb2FvbTW5CJNfNHIhNOFDfww9HW4mP1HLJ5GzRTuqyOIRg8YxRaUGxCRvLO+i1OZk9NImkgMmRijYztUYrRRkG0f4BeUOrbJedjQMnTbxeicYeG1F6jTiN+2FzupEk/ktGb5Ik4XB70amVQbS4JEm0muyEa1VBI+6SJFHVYcEjSSdR+sdaTBgtTsZkxQRR6Ucae6lsN1OQbggSR5Y0mdhVYyQzNpwFIwdiE8rb+vjmUAuROhUXTcwWo/S1Rivv7qjF5ZG4aGKWOHW399l5fkMlHT4G5Zxxsnahz+7ise/LON5qpjDDwP2LhxOhU+N0e3n4u2NsqewkPSaMP585EJvw1Npy3t9ZR5hWzYNLR3CaT7z9zvZanvyxHJfXy+VTcvjTUtn3Zt2xNm7+5BAOt5cRqdF85YtNONrUy3mv76bf5SFSp+arG6YwNCWKbquTOc9sFv5JT59VxLm+qaVTnt3CCR9bd+bodMGYXf/BATENlhkXxrZ75PbYCxvl8XU/dq+YS4pBz7pjbVz7wYAvzJuXjuOUEcl09NmZ8PjAqPjyWXnCF2bqkz8LX5hARnD5RwdYUyI/d3K0jj33zQPg3R21POwbFdeqlGy5ZxaphjAONfRw9mu78HjlXLePr57E5Lx4rA43pwQYVz5+ZqHwUAocR792Ri73+QS/H+6u55HvynB6vEHtwpImE8s/PkBTTz/T8hN47eKxROjU9Fid3PH5YY40mRiSHMnz540mxaBHkiRe2FjFmpJWEqN0/PHUEaLdtbmig3d21KFSwA2z8oVouqnHxmu+qaazx2Yw3Sc2d7g9fLCrnsZuWQuzMEBXs7mig0M+078lhQOGg829/Wyu6CA+Qse84UliCsru8rD9hBGVSsG0/ISgSbGKNjO9NiejsmKCWlmmfhedZgcZsWEnWTv02pxEh2mCHieEEH6vCMU6/CcQ+CYptPJJKCM2LMjLxepws7++h9hwDYXpA7EJdpeHn8s78ErSr8Ym9FidzBuRLJgSj1fiq4NNVHdYGJcTJ4Skfv+dPbWyFubKqb+MTZC1MLfMGSwiGLZUdvLq5iq8kjwF4qfeDzX08NB3ZXRZHJxalMYfFsqxCQ1dNm765CAn2i2MyY7hpQvGEBuhxdTv4op35Wmw5Gg5NqEo4+TYhAdPHSF0GfetKuFj35TYksJUMcXz1rYaYcQWGJuwuaKDy9+VDdeUCli1fCrFmTE0dNmY/cxmcWL1xyYAFD+8DpOvBXVqUSov+fQo572+iz0+A7WsuHC23iOPij++5jhvBGhhDv7xFOIitCdpYVZeMZ5ZQ5NOik24b/EwwbRMf/pnwcoFFhqBsQlFGQYhmv5sX4NgFZKidGy4cybReg3HWkxc8MZu+uxuYsM1fHH9FGF+d+GbuznSZCJKp+bli8aIUe4//yAzFzq1kgeXjhD6o7WlrTzxYzl2l6yF8bcqazotPPRdGa29/cwelsQ9C4aiVinpd3r467oKjrWYGJlm4K75Q8X3c9WhJjaUdZBi0HPT7HxRQJa39fHZvka0aiWXTc4RhXef3cWX+5uwOd2cVpwuhNGSJLGpooPmnn4m58WTnzQgfK3qsHC8tY+hKVFCSA9yMV7SZCIpWi/Whf+x6rtsqFUKMmIHxOwg+0M5Pd6gdpofXq/0Dz1kfm1aDWS2RKkgqIAH2ajRbHeTnxQZpLWr6bTQ1NNPQboh6JBR02nhaJOJ/KRIUXSDPPq98Xg7cZE6FhWkiMKjpbefL/bL3j/njs8UB5kui4N3fBYTpxWnCSbtP/q7nllfwb7abnITI7lv8fCTDj8hhPB7RkiT8xvQ1G3jovd302NzoVUrWXn5eKbkJ8ixCc9tFSfcwNiEaz84IMSnk3LjxKj4kz+WC4r9uQ2VHH5wPlq1klWHmkU8wutba/jmxqmMyozhWEsfd35xRLyWSJ2aS31amFs+OYTbz7FLCBO4Z9dVcMQXm9DX7xJFzvdHWznimzR5Z3stt84dTJhWjk3wxyzs9GkZYiO09PW7xBRNe5/DxyzFyP/2nbj9poB+aANOif7kcJAFuHqNErvLS078QGzCoIQIhiRHUtluoSDdQGqMfFNPitaxuDCV7T4tTOBN/c75Q/h4T4N4L/y4e8FQXt5UhdsrcXnAqPg103Nxur2098kBmP6b/YKRKTx+ZqGYavK3hTLjwvniuslsPWEkIyaMZWMGNB2rlk9l3bF2InQq0bIDOTbh9NHpON3eoBHy88ZnMS4njvY+O0UZMcLwcWSagZ0r5tLa2096bJho2UXo1Hxz41S6rU4idOqg0/j9S0awYtFwFIpgA8eFBalBjIEkSXi8ErmJkbx/5QRxXRbJ24kN1/LHU0eI6063l7KWPhIitUG6GpfHy56aLnQaFcUZBsFOebwSmys6sDk9TBucwJW+cX1Jklhf1i5YjMDx9fVl7RxplLUwpxalCmZsc0WHrIWJ1HHV9Fwxrr+npov3feLma2fkCobvWIuJ59afwGx3cd74TJaNySAMFXVGK39cXSqLtQcn8sdTR6BVK+m1Obn108McauhhSHIUz58/iozYcDxeiRs+PMC6snYMYRqePbdYrJMHvinhw90NKBRw8+wB48PAfLNRmTGsWj5Ftg8oaWW5r1iO0qtZd/sMUg1hVLSZWfLCNrFG/YyZw+1h4fNbsfqMHa+ZPki0x65+b7+IMNlS2cmXvvbYU2vL+Xy/PBn5+b5Gyh9d+B/63pS19gnN3cGGXsZkxQa5i4fw+4fXx5b+VwTv/5cQKnKQdS7+k5ZKoRA3F5VSQV5SJM29/WjVSjLjBtpKU/Pi2VPThSTBtAB9xvwRKWw7YaTH6uT0UemiEJgxOIH5I5Kp7rQwLjuOIcnyJjA0JYqbZufLTE5AbIJSqeCNS8fylS8Ac3mANuRv54/mA19swkWTBm5sdy8YSk5CBF0WB/NHpIjT+8KCFD6+eqLQwvgLmcy4cDbcMZPDjb1kxYWLyRR/bMLhxl6i9OqgFtNDp43kqmmDcHslcn4RmzBraBIWh5uESK1YeNnxEay7feZJp269RsWLAQZtMLBoL52cE1TcmPpdeLwS43LiePeKgU290+ygy+ogL/Hk2ITqTgtDkqOCbvytpn721fWQZtAzNjuWcb7R744+Oz+VtROhVbG4MFX8TrcvNsHu8rBsTLoQc1odbl7ceILWPjtzhiYxb0QyeYmRON1eXtx4gmMtfRSkR3PdzDyRTv/almo2lMlamHsXDROMxYe763l/Vx1hGhV3LRgq2iJrSlrlSSaXh0snZ3PbPNmr5kB9N8s/Okh7n4Np+XJsQphWLgIuemsPzb39pETr+fDqieQnRWJzujn1hYHYhGfOKRZC5ove2iOiBQJjEx5cXSo8nQJjEz7YXc+DvgkutVLBprtmkRkXzs5qowg5Bbn4XViQiqnfJVg8AJvTwwO+4uvOL47Q1NMvPq/PrpMPCa9urhb6nKNNJs4cnY5CoWDD8XYRj1DXVc/V0weRHR9BrdHKFt9hY399D6XNJpEN5Q9LNfW7KG3uE0VOvc8bSpJkrxrx/QsgtQN/jo/QEqVXY7a7SYnWo/e1j+IjtQxPjaak2URWXLiIVdGqlJw5Jp3Vh1qIi9QKAz+Q23Gvbq5GqVSI4hFkkXu31UmPzRXk8v33UJxh4JlzitlXJwfnnj32ZEF4CP9aaOy28fRPFXT02VkwMoUrpsoO7L02J39cfYxy32HsodNHEq3X4HB7WPF1CVt9bfWnzy4WbdaHvzvGB764lYdOGxk0GBFCMELtKh/dpQ2LoKHbRnL0ybEJ3VbZHdV/GvfD6zvB/SPK/NdiE7xeiS6rk+gwdVDP3euVqOq0EKlTB2l1vF6Jw029eL0So7OCYxP21HZjtDiYnBsf5FGz7UQnVb7Cxj+xAvIEyq5qI5lx4Zw5euCGeqSxl68PNhGpV3PZlBwRlni8tY83t/pjE7JFcdDYbeOpteV0mB0sDFi0RouD+1eVCLO9R04fSZReDjm958ujbKnsJCM2jL+eMxCb8MA3JXyyt5FwrYrHzigQEzMvb6rimXUVeCU4f3wmT54lp25/e6SF2z877GM0IvjupmlE6NQcqO/m/Dfk2ASdWsnXy6cwMs1Ap9nBrL9sEqfrwNiEwHHtwNiEq9/bx4bjcmxC4Kj4c+sr+dvGEwPv5wrZF2ZtaVtQRpL/ZN/eZ2digBbm5jn5wtwvMDbhlBHJvHmpHJtw8yeHhPA18Lk/3F3PA74R+TCNii13zyIpWi/HJry6C6cv1fqz6yYzNjsWm9PNkhe2U2u0nhSbcMdnh/n6UDMKBdx5yhBumiOzlP7YhH6XhwsmZPLEsiLxPbjj8yM0dduYPiSBZ88dhV6jwtTv4v5VJRxtMjE0JYonlhWSEKlDkmTX7h9L20iK0vGHhcNEy3VXdRcf7K5D42Ny/KL59j47b2+vxWx3sWxMhvAgcnm8fHmgiaYeG1PzgoXf++u6OdzYy+DkKMHWgZzkvaPKSGKkjsl5wbEJ++t70KgUjM6MDVq/jd02zHY3Q1Oigtas3eWh1+YiMUp30lp2uD1oVcr/8ET9n41Y+VeFJEl8tKeBndVGsuMjuHF2vmAtvz7YxFcH5cGEO04ZEtS6DGEAv7SY8LfVf3nfeP/KCcwYkkhzbz8znt4kWvoPLBnO1T5ftNl/3UytURbMnzM2g7+cU8z/NYTaVb8Bz6+v5K6lo4R+4LN9DXztY1DunD9UVM8/lrTy8uYqJEmevPGzLntquvjj6lK6LE6WFqfxp6UjTopNGJ0Vw9uXjScuQkuP1cn5b+ymot1MTLgcmzA2Ow5Jkjj7tZ3CMTlQK3LH5wNurIGxCa9sruYvP1UAstnajnvnEK5Vn6RH8Y+K1xqtQRMoFsdAbMJFb+0Rhmh1XTbhzfLg6lL21cmj4kebetnii034YHe9EIzure3mzNHpxEZo2V3TxU/H5NN4rdHK+eMHYhN+KGnF45Uw9bvYHRCbsKm8E49Xwmx3s7e2WxQ59V1WMRVT41vUAB6vV2wcbo8kohPk2AQtRovsbeS/EUfq1BRnxrCzuouESG2QVuTMMem8v0uOTfAnpgNcNClbjk1weYICOc8em8GJDjOtJjtzhyWR7CsGZw1N5OY5+TKTkxbNjCHyRpwcreeNS8byc7mshQl0a/74mkl8c6gZvUYlIkBAFiSL2ISAtPGLJmYxOCmSFlM/43PihJi9KCOGzXfPoqLdzOCkSMEUhWvV/HTbDE50mEmIDI5NePa8UaxYPByNShGkTTl3XCZnjcnA/QsDx+Gp0fx463QCIUkShjCN0E35r5n6XYRpVFw9PVfcmCVJoqHLhkqlYHJevEhdBzjRbqbP7qIwPUYIj0FuXzV29zM6Kybo/SltNnGosZfBSZFMyo0XhXd5Wx8bytqJj9SxbEy6+B5Vd1r4dG8DSoWCiydli/Zoq6mfVzdX02tzcebodGYPk1mXHquTv6yroM5oZUpePDfMyifFoMfu8vDg6jKZQUmI5JHTR5IULYubH/2+jO98FhOPnlEgCrTXtlTz/IZKFCi4/ZTBQZN2/y4obzOL4hpkduvq6bnyiPyXR0XLTq9R8ey5o/5Jr/JfG8tn5aNWKU6ymFgwMplnzy2W2+oZMSJQOT0mjG+WT2V7lZH02DCWBMSnfLN8Kj9XtBOuVTNnWMgu4D9CqMgB3tpeS05aApdOzsHjlbh/ValYtFF6Dc+cK1fJr2+tobRZ7qe/tqVaFDnry9qFJfun+xq4d9Ew9BoVNZ0DsQklTSaMFgdxEVqsTrfQ+fTaXGKcHMATwKv5/OkASDEMsDppMQMb1bCUKKL1avrsbsZkxQrNTEG6geLMGKrazYzJjiXL506cFqPnggmZbPfFJvhbMAqFLDD+ZJ+shQl0Uv7T0pG8vrUGt8cbFJtw46x8NCoFHX0OFhakCBHrksJU3OdJVLSbT4pN+Pamqeyq7iI9JkxoXvyj4psrOonUqZk1dOA0/uQyOTbB8YvYhDNHZzA5NwGjxcHg5EixGQ9JjmLHvbPptsqxCf42ZJhWxcfXTPrVU/fdC4Zx94KBvDI/Zg9NCvIbcbq92JxuMmLDeOWiseJ6v9NDi6mfNENYUPyCzSkXbElROuaPTBFme/1ODxvK2tFrVEzOixe/43B7+P5oCzaHh7nDk4QVgdvj5Yv9jbT02pkxJEG8n7JovYmjTSaGpURx7rhMwf79cLSVdWVtJEfrWT4rTzAlm8o7WLlTZlBunJ0nGL4D9d08vbYCi8PN+ROyuGRSNiql7Jh895dHae6xMWNwIo8vK0SvUdFpdnDdB/t9sQlRvH7JWLLjI3C6vVz2zl521XQRqVPz/HmjROF4x+dHWHWoGQjWqfxtwwlh2zAsJYofb52OQqFg9eFm4ekUGJtQ2mxi6UvbA2ITxrCwIBWrw81pL+4Qxo51RquIZrjhF7EJfl+fv/5UyVcHZS3MDyWtVD62CJVSwapDzUJgv7O6i9nDkhiZZqCizSxaeZXtFmYPS+S88Vk43F4+2lOP3SWbh64tbRPf1y0Vndhd8mvaWmn8tyxyhiZHcd/iYeys7iI7LpxzxsrfTaVSwXtXTmDVIflQeO2M3H/wSP/+sDrcqFWKkwwcO8x23B4piIEHebrO74kWeJ+p77JS0WZmWEqwA3tDl43dNV2kxuiZlp8gDCtbTf38cLQVvUb2zvIzsh1mOx/tbsDu9nD2mAwG+w5wfXYXr2+pprXXzpzhSUEO/P+XEGpXGQzc++luVpw+RoyE76ruYvXhZgzhGq6elktilNwCaunt57N9jUjAeeMzhUmg0+3luyMtdFkdzBueLFxaQZ54qum0UhwQmwCynqS0xURmbHjQdY9XoqLNTJReHRSbAPIEhldCvJ7A33F5vCc5Mv8Sv+a8DDKbo/mVRdtq6sftkciIDQv6vfouK0aLg5FphqDnrOm0cKLDwojU6KDXXtNpYVeNXNjMHJIoHqux2ybHJuhULBuTIViXjj5/bIKXs8cOLNoeq5NXNlfR3udg/shksWj7nR6eXV/B8VYzI9OjuX3eEPQaFR6vxLPrK9h4XGZQ/rR0pJjqeX1LNe/trEOvVbFi0UBswqpDTTzynT82YZCIG9ha2cmNvtiEsdmxfHjVRMK0Kqo6zJz7+m66rU5iwzV86otNMNtdzH9uq0gPf+qsQjEttfTF7ZQ0y0LwwNiEu744wpcH5A03MNn7tS3VPOnLN1MqYPsf5pAWE8a2E51c8vZe8T6/ctEYFhem0ml2MP7PG8T162fmidDZwFHxybnxfHKtHJsQ2B6L0qk5+tB8FAoF72yv5RFfhppKqWCzT4dzpLGXM1/ZIVg2v4uzxeFm5tOb6PLlugVS7Ne8v5/1PuPKwMT2lTvk5/BKBJnfHajv5tr3D9BldVKUYeCDqyZiCNPQY3Wy/KODHGjoIT8xklcuGkNOQgSSJPHnH46zpqSVhCgdD582UhRxa0vbeHNbDSqFguWz84ROptZo5W8bKuntl5kcP/PT7/Tw2pZq6rusTM6L59xxmeJ7u7a0jf118lTTeeMzRfuqqsPC+rJ24iO0nD46Tawnm9PNhuMdKIB5w5ODHNX/VeD1Sth+xbnZ5fHSZrITF6ENsqhweWQxe5ReHXS/83gl9tR24fZITApwYP+94O4vjvDFgSa0aiV/WjpCuKM/s66CF3+Ww5EDHdi/OtDEXV8eQZLkNb32thlE+trq576+G49XQq1U8MX1kxmdFUuH2c6MpzeJovihpSMEixy4dhcXpoiD1hXv7mVThaxLSzPo2bliLiAPqLzge00w0Fb/vSDUrvoNWLFoOHq1ikMNPcSEa4OodJfHy5bKTrySxNS8BG73hRV6vBIbytrpsjqYPjhRCL8kSeLHklZO+IInp+YniBvthrJ2tlcZyY4P56KJ2YIl2H7CKEbFr5uZK5yUD9T38OrmajxeL1dMHSRGjSvazPx5zXGMZgdLilJZPisPvUZFm8nO3V8eobLdzOjMWJ46uwhDmAab082NHx1k6wkjmbFhvHjBGHE68McE6NRKHj29QHi2BMYmLC1OEyLhj/bUc/8qmbbOiA1j/e1ybMLumi4ufHO3iE34+oapFGYY5Imnv23D6UsP/9PSgeTyZa/uFCzW/roe4YNyt0+3A7JJnX/Rvra1mje31QKyJmdSbjwJkTq2VHaI69urjEzIiWPu8GSMFocIVixvMzMqs1kIeN/bWSd0OKsONYkiZ0tFJz0+D5u1pW2iyGnskbUaILc+7C4PYVoVDrcXu8/Asd/lEQaOaqWSmHAtrSY7WrUyKKKjOFM2ndSoFIxMG1icM4Yksqm8A4vDHdSimjMsifVl7bT29jNzaJKwOBiTFcsFEzI50igzOVPzZJo7IVLLo6ePZF1ZO8nRei4LcGV++aIxfLynHq1ayZUBLbiHTxvJ4KRIzHYXZ/jEvgCXT8khIUpHc08/U/PjRfFanBnD9zdP52iTrIUZmy1/xyN1ajbeOVNmsKL1FAfEJrx+8VjKWvvQqJRCeA9w+dRBLC1OE+Gi/ucemx3HnvvmYnN5iNINxJ/ERmhFcRYIhULBA6eOEOJmQHzvAgNIQS6YrU43OfHhYkMC+VTc0msnPylSrHWQC/7S5j4GJUQEPVaH2c7WSiOx4RpmDU0S5pE9Vief7m1EkiROG5Uu/Jb67C7e3VxLr83FksJUIfZ3uD28ta2W6k4L43PiOH+8XFR5vBJvbK1hr89i4vZThojv0ns768R94w8Lh4kR9u+OtPD8hkokSS5w/Wt6a2UnK74uEXErfzm7CIVCQUWbmSve3UuLyc7Q5Cg+uHoCSVF6jBYHZ7+6k7ouG5E6NW9dNo5JufFIksQZL+8Qk5l3zR/Qc93x+WEROxI4dfp7gT8nzen2ijBkQIQ1A6LAB9BpZNNGl0dCr1Hhl3PFR+hIidbT3NtPaoye+Ah5TUfrNUzNS2BTRQephjAKAxzYL56UzcqdtYRpVJxWPDARes30XMx2N3a3h8sCBjYunJhNU28/rb125g5PIiWgVf1/CaEiB/kUs/TF7VS0m4Hg2ISbPj4o9CXT8hP48GrZJO1vGypFlRylU7P3/nmEaU+OTVh9o+wLU9Vh5uqACRSvBFdNk7UwV67cJyj2HptThE0+sea4CCWsNVrZ7NPCfLqvQYyvl7f1cfmUHJ/otkdMoKw91sY1MwYxNjuOXpuLHdVdeLwSdV02jjT1UphhQJIkMVrucHspbzOL12exB4QV2gdiEyJ1ajQqedFG6wdiExIidSI2IT0mjNgI+UZsCNMwc0giWyo6SYvRC5djgCum5vDR7gbCtSrODBjjvm5GLjanG7vLGzQqfvmUHLotTtr65ADMeF97bO7wZO5dJMcmBI6KJ0fr+ejqiWzyaWH8QmOQYxO+P9JCmFYlwk8Bnjq7iLnDk+l3eThleIA+Z2I2xRkxtJnsjMmOFa25kWkGtv9hDrVGCznxEUL4HaZV8f3N02ju6ccQrgkSsz92RiH3LZZjEwKZsNOK08RmGIghyVHCiRfkQtrqcPtiE4rEda9Xorm3n2i9mksm53CJ74YnSRLHWkxoVEqKMwyMyiwW1w/Ud2NxeJg4KC4oNmFPTReNPf2Mz4kNek17aro42CBrYeYOTwoqyNcdayMhUsdFk7JEa+54a5+ITbhsSo7YiKs7Lby48YQw21tUmEo8Mov36A/Hqe+yMiUvgTvny5u6xeHmvq9LBIPy1NlFpMeE4fVK3Pv1Ub4/2kpchJYnlw3EJjy3vpKXNlWhAG6dO5ibfX/fR3vkKTGPV2JSbhyfXDMJhULBthOdXLVyP06Pl/gILd/ePI30X4tNuGw8s4cl4fJ4WfDcVlEUXzczVwSmXvvBfqFjW32khVW+9tiTP5aLNti7O2ope2QhGpWSrw82C23d1webGZoSxZisWEqbTSL8lIpOchMiuMTXVv/zD8fFfSMluk6ITz/YXU+1z8V55c46UeTsqukSTMBPpW08dkYBeo2Klt5+UfDXGq30WF0kRelxur3ib7M53aLIhwHjUYUCwgIGMgYnRYow02Epv79U9NU3TWVHVRcRWlWQ7cVjZxRwwYQsnB5vUDTMqUVpTMlLoNvqIDs+QrTPcxIi2HrPbMx2F1F6jWAD9RoVb18+/ldZ9186sHu8spXELx3YbU7ZgT05Sh+kj+qzu2jstpEZFx506DL1uzjcKHul/R4/s1CR44M/QVipgIgAOnlkmoENx2XTv0Czr/GD4kg1yKedOcOT0Plo2fE5cUzLT6DKx+TkJsrtkez4CK6ZPojtVV1kxYWJk7pCoeAv5xTx5QH5RHbznIDYhLMKeXt7HW6PNyg24Y5ThpAYpcNodrKwIEXccBYXpvDaxWM50W5mVFYMY7NlTUBaTBg/3jqdfbXdpMeGiZF3hULB9zfLsQmRejUTAjQvj5w+kosnZeN0e4PYhtNHpTNzSCK9NheZceFiceYnRbL1ntlY7G6i9AOxCXqNSkwM/RLLZ+WLvB6QtSdeiZMWrdnuotfmIi0mLGiKwGRzUefLZPIXpSCHGx5u7CXVEMbU/ASm+h7L1O9ibWkbeo2SOcOSuc73O1aHm4/3NNDv8rCkMJWlvk3d7vLwri82YdaQRKbkJ1CQbsDrlXhvZx1Hm0wMT43i8ik5Qjj+yd4GNpS1k2zQc9u8wcI8zx+boFEpuGXuYKb4WJctlZ08+WM5NqebSyZli9bOsRYTt392mKYeOTbhufNGCbbukrf3cKLDQmZcGO9ePoH8pEjsLg/nvr6Lo02m/zA24eJJWSKO5M8/HOet7TIDNjgpknW3z0ChUPDF/ibu+Ur2dAqMTTjc2Mt5bwyI1l+6cDSnFqVh9sUmDEQR2IXe5qaPD4oNt7TZJLQwf9twQiSab6systAfm1DSKtpmR5tMnDE6jWEp0dR2WsX/32Kys6emi2VjMnB6vKwpacPm9GBz9rMjIDbhQH2PeE0HG3rE6+4JiE0wWpwiNkGtVMpFuwc0qoDYhDA1GbHhVHVY5NgEX7tYrVQwe1gSqw+3EBOmYXz2wPo5e2wGLb12JEkS+hWAC8ZnUdtppcfm5IzR6WLTW1yQSkmzieoOmckp9N1rCtMNPHzaSGEx4WeMVUoFn1w7ie+OtBATrgk6wb9y0Ri+OtCER5JYFpA1ducpQyjOiKHL6mDW0CRRYM8elsRPt82gutNCQZpBfGfTYsLYevdsjrf1kR4TJlg8hULBp9dMoq7LSqReLaYwAW6aM5grpg7CI0lBG+lvwd8zcPyfwvHWPirbzYxMiw6aBCtv62P7CSMZsWHMHzHgwF5rtPLNoWbCtCrOH58pWN/Gbhvv7qjD4fZw/vgswY4bLQ5e2HiCVpOdeT5tXVyEFovDzSPflVHmGxW/Z+FQYsK1uD1eHvnuOBvL20k16Hn09ALRon95UxVvb69Fp1ayYvFwceD4eE8Dj3x/DIfby6WTsnnYF4WypbKTGz48gM3pYXhqNF9cP5lInZqKNjNnv7YTs91NlE7Np9dNYmSagT67i7nPbMHo80ILnDr9vSBU5CCL5764bjL13TItG6h5uWXuYK6dkYtXkoJGyKcPTmTXirknVdxpMWGC7YGBsEKdWilu/P7rbSY7YRoVp49KDwoZrOm04PJIDEmODAo4LG020WlxMDY7Nqg4KG02UdEmxyYEUuklTSZ2+kbFF45MEenEle1mvjnUTIROzUUTs4QwtLHbxjs7anG4vVwQsGjb++w8t76SDrOD+SOSOW98JjHhWsx2F4+vOU5Zq5nC9GhWLBqOIVyDy+PlodXH2Fwh+zs8dmaBeO5n1lWwcmcd4VoVDywZIQqKj/YMWPgHLtrA2IThqdF8dcNkwrVqylr6OPf1XVgcbiK0Kj7zpWv3WJ3MfXaLoI8DtTDnvLZTiE9PH5UmGLO7vzwiogtW7qwVsQlvbq3hGV9swhtba0RPe+uJTv707THx/qcawlhSlEqnxcGKr0vEdYOvjQDyCd5/itaoqkWR8/m+RkF7v761RhQ5+2q7xWvdcLydLquT9JgwjBaHGB1t6umn1dRPflIkHq8kWn9OtzeIMg8PKNoDv8M5CRGClRuSMhDRMSw1ivQYmZUbFxD2OSghgnnDkznU0ENeUqRow0bq1Nw0O58fS1tJiNQFiSj/eOoI3t5ei1KhCDqF3r1gKFE+wfxZYwbaYxdOzMLtkajvlpkc/8myMMPAR1dPZF9dN3mJkZzqy+/Sa1SsvW06myo6iY/QMj9gOu6ty8ax7YQRBTB9yEDRfNOcwcwfmYKp30VRhkFsZpPz4tlz3zw6+uxkxoWLIiApSs+622Zg6ncRpVcLywWFQsGz547ir2cXn2Qjcd74LPG9A3m9eyX57whstTncHnqsLhIitcKnCGRN0In2PlIMei6bkiME//4oCEOYhjFZMaJN6HB7+OlYG5IkMXNIkijg3R6fXtDiYPawJHFvkCSJbw41U+kbDpg/MkVMkX5/tIUdVfJ948qpgwZyzMo7+OJAI5E6NTfOzhdanF3VXT6TTi9XTcsVRUBZSx8PfXcMo9nBgoIU7p4/FKVSQWO3jVs/PURlu4XRWTG8cP5oYiO0WB1urnpvH7trukmO1vHqxWODmN//CWw/YeTit/cAcqH49Q1TKM6UGdqlL24XQcSBWrLz39glbB4ONfTw+iXyoe2+VSWCOd94vIPd98lt9ZU76nh/Vz0gD6XMHJJEikHP9hNGPtgtXz9Q38OMIQnMGZZMt9XJyp21eCXZw+nH0jZR5Hx5oEncy34saRVFzqGGHqHb2V3TLf6+LosDm88mo6PPjsMXK/P3oFUpyYiV7yvhWlXQ9OXvBaEiB7jv6xLuXjpKiFK3nzDy0qYTeLwSV03LFTeGI429PPTdMbosTk4tSuXuBXJsQmO3jZs/OcSJdjOjs2J58YLRIjbh8nf3cqihl6QoHW9cOo5RmTGiRbWpQo5N+NPSEcL87uHvjgnH5PkjknnDx4K8vb2WR30C0MQoHVvunkW4Vs3Wyk4ufUcWnwbGJjR22zjjlR3ixPrwaSPFjfK813cJGrqstU+Migcu2k3lHezyaWHe2V7Lp/saAfi5vINTRiQTH6ljR5WRT/Y2ivdm7vBkZg9Nor3PLswKG7ptrC9rJ2+mfEP85nAzZrtMfW843i6KnEMNvTh8+gl/dAPICeP+610Wh7gJqZQKwSKplArhsKzTyIu22+okUqcOWrSzhyZRa7SiU6uYEjC+vLQojdLmPvpd8onMj1OL09hf30OrqZ/ZQ5NE8OGk3HiunjaIo80mRqRGi2mwpCg9z55bzHqfFubqgFHxdy4fL2ITLg1g5R5fVsjorBhsTk9QW+iyKTlkxIbT3NvPpNx4IXIvSDew4Y6ZHGvpY3BypBiFj9Cp2XDHTI42mUiM0gWJ2f92/ijunD8EtUopHgfkHv+yMbKLc+AIeVFGDDvunXOSv5MhTMNblwWzcm6PF5VSwe2nDAnSsPTanCgUCmYNTQoyw2vu7cdsdzE4KYo/B2zqDV02GrptjEiLFiGgIE9IHW02kZsQEcTKNXbb2HC8nbgILYsKUkWieaupny/3N6FUKjhnbIbYcLutTl76uYoem5PTitNFRpXV4ebZ9cep6bQycVAcV04dhCE5Cqfby19+KmdvbTeDEiK4d9FAbMJLP5+QLSbCNTywZIQoND7aU8/fNsj+SbfMHSxOxBvK2rn7yyP09ss6nBcvGI1CoaC02cSl7+yl2+okKy6cz66bRKohjPY+O6e9tJ32PgdatZJ3LhvPtMEJeL0Si1/YJgJFA/2Wln94kI3lsqfTxEFxwlzx2fWVvOLT1j39UwX7H5hHuFbN90dbue2zw+J9/uL6yYzPiaOy3cxNHx8S17UqJVdPz0WSJJZ/dFAECFsdHhHp8uz6CtGa6+hziPd89ZFmYTb5xtYarp+ZhyFMQ1lrn7DJ2HbCSF2XVXZgt7s44gsqbe9zcKLd/D9e5GTEhjEoQTaRHJwUKe4PsREaFhWksrmig7SYsCB7gxtn5/PezjrCtWohNAa4bd4QVEoFdlewFuaKqTmY7S7ZYmJ4EsnR8n3jlBHJPHzaSMp8ZqGzhsjrIilaz+fXTWZzRSepMfog5u/z6ybzY2krerVKBPMCPLGskMWFqfS7PEKrCbBsTAZFvrZ6YYZBtMmHpkSx4945NHTJ7Sr/db1GxarlU+i0OIjSaf4lRfH/XYSKHGQRqyYsQuQU/W1jpVi0XdZyUeR8e6SFQ77F+ea2Gm6ak0+4Vs2xlj4hSNteZaSheyA2wX9K7zA7qO+yMsonNGzpHYhNaO+zi9eiDGCFAjeY9Bg9YRoV/S4Pg+IjUPvEMFlx8nRWVYeF4anRpBrkRZsYpePUolS2+cTGgYv2tnlybEKETiU2B/n6YFRKBQ5X8Kj4tTNycbjlyIAFI1OE7uSUESk8ekbBQGyCz603Izacz66dzLYTMpMT6Mb59Q1TWVfWRrhWxaKAqIInlxWypCgVuzN40Z47LpPxvtiEgnSDOJX4F21zjxyb4L8erlXzzfKpdFmdROmDYxNWLB7OHxYOO8kKfVFhKosCPCj8n8ughAje+0VsQnufHJsQKG51ebxUtJmJi9CybEyGYDLcHi/767pR+7QwDy4dIR57c0UHVoeH6UMSgnxkNh6XYxMm5cUHefasO9bGkaZehqZEs7QoVZjqbTvRyY+lcmzCldMGic/5QH0P7+2sQ61UcNX0QWKEXI5NqKTP7ubccZmcPTaDcK0cSPnAN6U0dNmYkh/PH08dgU6twmRzcfvnhznY0MPgpEieO0+OTfB6JW765CBrStqICZdjE/wxD39aXcp7u+rl2IQ5g7nDV/wE5psVZ8bwjS82YUNZO9d8sB9JkvVta26dTmZcOJXtcmyCv7D1mys63V4W/W2b8HQqmWYSn8fV7+0XgtifyzuElunpteWiUP9krxyboFEp+eZws4hHWF/WzpjsWMZkxXK8tU+I1vfV9VCUEcPFk7Jxe7y8+HOVKLy/PNAkipxvDjXT4WPTvjnULIqcw4294lCxo8qI0yP7D/XYnPTa5FN6p9mB1eHxfQ8QU2tIA+7LCgVkx4VT02lFo1IEjSpPGBTHthNGvJIUpBWZMSSRH0vbMFocnFqUKtyaJ+XGM39EsjykkBUrTDlzEyK4eU6+YHL8hbdCoeDFC0bz+f5GovQabpw9wMr99Zxi3ttZj9vrDXIYv33eEFKj9XSY5cLHv7EuGJnCh1dNpLLdTHGAUWmqIYz1d8zgQH0P6TFhwvvofxI5CRH8fOdM8Rn4oVOrxOCDH/7B4186sPc7Pbi8XsZmx7IywIG92+oU2hs/Ew3yZ1vdaSEvMTLovtphtrOvtocUgy7Igb3L4mBdWTt6jZJFBaniufvsLt7dUYvN6WFpUZrwdOp3enh1czUtvf3MHpbInGHJ5CdF4vZ4eW1LNSU+i4nrZuZRkC5rMd/fVcdan0nnXQuGCl+tLw808c72WrRqJbefMkToGzeVd/DoD2VY7G4unJglBjj+HRAaITcYuP2DHdy+eJToOTd223h/Vx0eL1w4MVP0be0uD1/sb6TT4mT+iOQgjc6OKqNYtIGnj+befg7W95AdHy7iFECmlw/Wy7EJI9Oigzbdhi4bTo+XvMSIoOt2lweLw018hPakfvWvuSr/Eh6vhPJXsk7Mdjk24ZdhhV0WB91Wp6+tMTAK2mayU91pYXBSZFCyenufnX113aQawhiTFSOep9PsYO2xNvRqJacWpYnTQq/Nyef7G7G7vJwxaiD80eZ08+6OOlpN/cwZliQ2T6dbXrT+4MnrZ+ahVcvJ8W9uq2HD8Q5SovX8YdEwwVh8vr+Rd7bXotOouCNg0a4tbePPa8rod3q4dHKOEN0ebOjhpo8O0mKyM31wAm9cMhCbcOGbu2kx2UmO1vHR1RPJT4qi3+nh1Be3Ud0pxyb89Zwi4V9xydt7BDN27rgMnj5b1hPdv6pEeK3kxIcLQfkHu+r446/EJuyu6eL8AC2Mf1S8z+6i6KF14vpV0waJzKo5f90szBPHZMUILUzgqHiYRkXZIwtQKBS8t7MuqAW34Y4Z5CdFcbixlzNe3nHSc9tdHiY9sVGkqd86d7BgcgL/7sD08MBsqOIMA9/cOFWMil/x7j767G5yEyL4/PrJJETqMFocXPbOXo61yJqQdy4fz9CUKCRJ4sHVx1h9uJm4CC1/PrNQMDyrDjXx6uZqFCi4eW6+sBkob+vjL2sr6LY5WTY6XYiyLb6IjupOKxMGxXLVtFxUSgWSJPHVwWb21nYxKCGSK6fliE3xeGsfa0paMYRpOH9CliiwTTYX3x1tQQKWFqWK9eT1SmyrMtJtdTAtPzGoHd7YbaPWaGVYalSQtsXmdFPTaSXVoA9yMZckiU6Lg3Ct+qQ2hMcrIUnSP4yE+DVRq9cr0dvvIlKnDhr7liR5WCFCpwp6fZIkUdrch9PjZVRmTJAD+8GGXjrNdsbnxAW99v113ZS3mSnKMATdC+WBCflAFOjAXtps4uuDzUToVFw6Oeck64z/LEw2F3/6tpTjrXJL/6HTRhCl1+B0e7l/VQk/l3eQGqPnqbOKxGHgse/LeH9XPXqNkj8tHYhNeGd7LY+vOY7bK3HeuEyeOlsW/v9wtJXbPjuEyxPswF7SZOKc13did3nRqZV8ef0UCjMMmGwupj/9M30+MfeDp44QMR9zntks2LolRamCab/x44P84DNfTYrSsff+eUCwzxTAzntli4lNFR1cERCr4tfQ9VidjH50vbh+7YxcYcAZGFA8fXACH1wlSy/87uggT2/uf+CU/9Jn8T+J0Aj5b8BDpxUQFRXG4cZePF6JUZkxQj8jSRK7a7roNDuYnBcvbo4g96Ir2+VFG0il763tFiehM0aliZbMYV9sQoROzRVTc8Spu7ytjze31uL2erl0crYQDDd223hybTmdPl+Yq6YNQq/R0WN18sDqUo639lGUbuCRMwqI9sUmrPi6hC2+rJO/nFMkNA0PfXuMD3YPZJ34s25e2VzFX386OTbh+6Mt3PbpYdwnxSb0cMEbu30noYHYBKPFwdxntojTdaCA7ZzXdgpTxM0VnYLmvuuLo0IQ+9m+RhFd8MbWGp730f4f7m4QWphNFR0869PI/HSsnWEpUcwfmUKn2cHja8rF55IVF85dC2Qa/4WNJ0RG0jvba0WR80NJq1jMn+1rFEVOWUufmDTZV9dNn91FmFaF2e7G6OuNd1udIiVdQhItQTk4c+B75WfVgKDxzdFZsXx9sJl+lyeIYRuXE8ewlCgau21MG5wgRsVHpEVzWnGazOQkR4lWS5ROzQNLhvNDSStJUTouCjhFP7GskJU761AqFVwX0P7545LhpBn0J2lhLpqYhVatpKHbxuTcgVTxUZkxfH7dZA439jA4KUq05vQaFetvn8mOKiPxkVoxvg7w7uXj2VvXjVqpZFz2QMF/zYxcFhWmYLa7GZI8oAEamx3H3vvn0WNzkhipE5tcQqSO72+ehsMtf9f8/79CoeDRMwp49IyB07L/rBYYQAryYcLu8jIsJZq3fS7hIJ+KO/rsZMSGC8NAkMXpFW1mMmLDOHtshlgnZruLrZVGovVqJgyKE8yHxeHmywNNeCWJhQUp4jtvd3n4ZG8DXRYHp4xIEd87t8fLezvrqO6UBxNOK04jMy5ciNa3VxnJjgvnxtn54hC1+nCzGEy4fd5g8dlsPN7OCz9X4fF6uWZ6rk/Xp+BQQw/3ryql0+JgUUEKDy0diVKpoM5o5foPD3Ciw8LozBhev2Qs8ZE6TP0uLnprN6XNfRjCNLxxyVgm+kbFL3xzD7tqulAo4P7FAzqV+1aViFZ14Gb49vZawdbFhGvYes9sovUaNpV3cMXKgQ336+VTGJMVS1OPjbNf2ymMHXtsTmGWeOGbu0URUNNpFfeN34rdtV3CLb6i3cxpo9J8wxNOVh1qxu2L2NlaaRRFzsbyDpweL06Plx3VRlHknOgwC6PYY60m8RxOj0fcBxwur2DfwrRKInVq7C6ZWQ7Tyt9tnUZJYYaBHVVdxIRrGBxgqXBqURrvbK9Fr1Exb/hAq/fssRlUtVuwOt1BLe9lY9I53tpHi6+t7m/BTcmL5+Y5+bJZaGoUc32HxdgILa9dPJZ1x9pIjNZxQ8DQxntXTOCrg01oVSoumDjQNnvszALG5cRhcbiCGPh/B4SKHB/u/PyIqFTnDksSN8TA2ISYcA07fbEJG4+3c9V7AyPh/kVbZ7Ry3hu7xKLt63eJCv2St/Zg9hUBDV02sWgf/OaYCBM82NAjhK8f7q4Xlfveum6WjckgLkLL3rpucb2m08pZYzOYPjiRLquTb4+04PHKeVs7qrpEkbO1Uo5NsDjc7K3tEjfvOuNAbEJVh0X8PS7PwEIN/DlKryY6TI3R4iQmXEOEP11bq6YgPZrdNd3ERWiDNCFnjs7gXZ+/w4JfRBQ09/bjcHm4fGqOuH7WmAwq2sy0mOzMHpoYFJtwiy82YWRaNDP9WphoPa9fMpYNZfJ0wtUBm/r7V8qLVqcOjk146qxCpuXHY3N6ghbtRROzyE+KpLmnnwmD4sQNozDDwJa7Z1HZbiE/KVIwReFaNT/dPoMT7RbiI7VBZltPn13MXQuGolYqhZ4D5JvVmaPT8XiloFPz8NRo1t42g18iWq8JotIlScJkc6HXKoNiE0BuO6mVSibmxgtnZP9nK8cmGII2dTk2wcaozNig96espY9DjbLZ3sTceFFYVbSZWXesjdgILWePzRBhn3VGK5/sbUChUHDRxCwhrG4z2XltSzW9Nienjx4IOe2xOnn6Jzk2YXJePMtn5ZFqCMPu8vDwd6UiePKh00YKBuHpteV8fbCZmHAND502UrRl3txaI06yt88bIjQ93x9t4e4vjtLv8jB7aCJvXzYepVLB3tpuLn93Lzanh1SDnq+XTxH2B0te2EavzYVKqeCtS8cxe1gSXq/Ewue3CeF44Kj4dR/sZ0dVFyAXy/722DPrKoR30ws/V3H4wVMI16r5+lCzYMze31VPRmw4Y7NjqWg3B4nW4wJiE+764oho2elUSpGt9vqWGo742uQv/VwlhhfWl7WLpPNP9zX6RN4aqjoswibiYEMPLb124iN19Ds91BvlQ4ip3yUMLAFxaJEkRDsNEAU4EMTw5CdFCgf2gjSDmDrNT4qkMF12jC7KMJDpa48kRek5f3wWWytli4nAiIL7lwz3tdXVQWGmvxXzRyTz13OKRVt9hm/6Lilaz+qbprL9hJHUmODYhFXLp7DxeAcROpVgkgH+fEYhp49Klw8oAevrzNEZTBwUT4fP2djfJs9PimL7H+bQ0ecgKVonrus1Kj66ehL9Tg9atTKIhb/jlCGixRuIXzqwe7wSdpfsLfXaJQMO7HaXh6YeO0lR+iAHdrvLw+HGXhIitUEDKg63h80VHWhUSiblxgtXZpfHy9rSNsx2F3OGJYlWpNcr8f3RFhq7+5mSFy+8nv5VEWpX+eiuV3a08NoWuQcf6Ma6qbyD2z47jKnfxdxhSbx+yVjUKiVNPTZu+vgQFW3ydMJLF44mPlKHw+3hT6uPsc03ivjkWUVC0PzF/kY+3ddIhE4tj3P6vhwlTSZe21otYhP8G4Sp38Vb22po96XW+lOUJUni2yMtYhRxSWGqOOWWNpvY4cs6WVyQKqY+TP0uNld0EK6VYxP87SevV2J/fQ9Ot5cJg+KCNt0Wnx350IBFC/KiMFrkU/cvHU3tLjk24R+Flv4aZe7yeLE5PUTr1Se16dpMdpKj9UHCuH6nh2MtstA2Oz4i6P/fVd2FTi1v9v4biMPtYd2xdqwON/NGJIsbtUcsWhtT8hNEu9H/Ph9u7GV4SjRnj80Qf9ePJa2yFiZKx/JZeYKW31zRwXu+2ITls/OFButAfTdPra3AbHdzwYRM0Wev6jBzz5dHaezpZ/rgBB4/U45NMFoc3PDhAQ41yGZ7r108huz4CNweL5e/u4/tVUbCtSqeOadY6Inu/PyIiCgIpKBf+vkEf133j2MT1t8xk/SYMMpa+jj1xW2i+PXHJjjcHooeWif0KJdPyRHp7wuf3yo20NFZMcIXJtDFWaVUUPHoQtQqJe/uqOXh78rEZ/bDLdMYmWbgaFMvp7000B57clkh50/Iwu3xUvjQOiF8vWRStmByzn9jl5gwmZIXz8fXyNNLgTR+crSObffMQatWsv2EkStW7sXlkYgN1/DtTdPIjAunw2znrFd30tjdT4RWxTuXjxeMxo0fy/ojvUbJ42cWCt3V+7vqeHZ9JR6vxC1zBosC62BDD39afYwui2zYed/i4SgUCrosDh79voyqTgvjsuNEBIzHK/HWthp2VMsWE3fNHyraXYFmodfPzCPFxxC2mvr5ZE8DHkni3HGZYg043V6+PdJCh9nO3GHJYmoK5JbRiQ4LxRkxwuMI5Jby0aZe0mPDgrxS3B4vpT5n47wAZ2OQR6XdHkm8nsDfcbi9hP/CPfm/iy6LA6fH+9927W3slmMT0mLCmBIQ3NrS64tN0Ko4Y1QaUb4R+C6Lg4/2NGBzelg2Jl2I/fvsLl7dXE2byc7sYUlCv+Rwe3hxYxVHm2WLCb8Du9cr8dKmKjYclwcTHlgyXHxmK3fU8vaOWnRqFXfNHyoKkB+OtvLQd8ewOtxcPClbrOm9td3c8KHsBj4+R9YGRejU1HdZOee1XXSYHcSEa/jo6omMTDNgc7pZ8PxWGrv7USjgqbOKRGzMua/tEofswKnTB74p4cPdcls9OVrH7hVzUSgUrNxRy0O+tatUwOa7Zgupwf8mQu2q34h7Fw3j6umD8HqlIJ3J7GFJHPrjKTh/EZuQERvONzdOPelxdGqVaPn4Yba70KiUnDMuk3PGDVCAHX12nB4vBenRou8K8iLsMDsYmRYdVInXdFqobJdjEwLHzuuMVl/WSRgzBicImrux28aaklbCdeogy/oO3/ST3eXhnHGZ4pRu6nfx7PpK2kz9zBmezGnFaaTFhNHv9PDnH2R/h4I0A7efMoT0mDA5NmFdBeuPd5Bq0PPHU0eIgu7NrTWs3FlHmFbFvQuHCRHtqkNNPPydrIW5fEqOYBV2VhtZ/tFBem0uxmTF8MFVE4nQqanqsHD+G7swWoJjEywONwue2ypO10+fVSRMz857Y7c44QbGJjywqpQvfBtu+s9Voj22cmedmFxTrq9ky92zyYwLZ0dVV5CxY4ROzZKiVEw2V1D4KSC0MA98UyraY312l3B8fX9XvZg0eXptBZdMykahULC10igmTb451Mzt84aQGRdOS28/++t7kCRZA3Ki3SIXOV5JmFbanB5quwZCS/0tNJAZRD8idWph0BZoSpgZF05CpBajxUl+UqTQeKQa9IzPieNgQw95iQMTXFqVkiumDhIhlEuLB06+t80bwutbq1EpFNw4e8DeYPmsPJ+pnJNlYwb0FuePz8LU76K+y8ak3DhG+No/RRkxvHbxGPbW9pCbGCEYR7VKyfe3TGNtaRux4VqWBZhHvn3ZeBEXcUqAWPuWuflMG5xAt9XJxNyBAn7a4AR23DuHpp5+H/MgvydJUXo23jGLVlM/8ZE68X4oFApeuWjsr8af/FKU6seYrFi+u3ma+LckSdicbuIitEEOyy6Pl4YuG3GRWq6bmRc0+l3SZCJKr2ba4ATh/ePxykaNbq/E+Jw47vDdH7xeiU0VHXSaHUwfnCDeNzn8toOKdjPFGTFMzhsIM91a2cnWyk7SY8O4cGKWOETtre3mi/2NROrVXDM9VxTqpc0mXttSLXuzTM5mum/QoLrTwuM/HKfD7GDByGRunJ1PhE6N0eLgD18epbzNTGG6gSfPKiQmXIvd5eG2Tw/LbfXYMJ4/b1SQvvHX8PKmKv66rgJJglOLUoMCYX8LOsx25j+3VRTLgbEJ576+S6zdHSeMgh25b1WJMIT98kCj0KO8ta1WuMKvOtTMuOxY0mLC2FFl5KVNVeI9Ls6IYXFhKkaLQ7TbwcTwlCjx+a3cWSfa55/vbxRFzmbfZwqy15a/yKk1WoRNxPFWM1anmwidGrvLi9XHvtmcHuHGrkBBmG//UikUgmEDuR2+t64blVIRVOBOzk1gTYnM5MwfkSKKwan5CRRnxtDcY2NafgJJ0f81rdT/FkJFDnDjRwe4dl6BWLRVHRYeX3OcDrOdhSNTuHF2PnqNivY+O3d9cUSwN385uxhDuIZ+p4ebPznIlspOMmLDeeH80cJj5pZPDvHtkRa0aiWPnDaS830tgb/+VCEWQqA488sDTdztyzpJjwlj7W3TidJrgmIT1EoFXy+fQlFGDB19dhY8v1WcrgNjE856daeY9thb2y2iGf7w1VGRdfL90VYxKv72thrBZn1zuEUs2i2VnYJ631HVxbicOE4ZkUyXxSFcn4+39lGQbhA067s7aoW25csDTaLI2VZpFGLVn461iSKnqbtfXD/RYcHm9BChU+NwewRNHrhoVQoFUT4DR61KGZSrU5AWzZHGXtRKBcMCTrEzhiSyyTfVtLhwoG02c0giP2bH0thjY/rgRLFoR2XFcN64TI409cqxCfkyPR0dpuaJZYWsKWklKUofRKW/eMFoPtrTgEalDEobf2jpSPITI7E43Jw2Kk3cMC6bkkN8pJamHpn69YvfizJi+O6maRxtMjEkOVJsTHqNHFS5r7abhChdUGzCG5eM5VhLHyqlguGpA3/35VMHcWpxGlaHm6y4cPHcY7Ji2XPfPKxO90mxCf4R5EAoFAruXTRM5GABIsbil7EJpn4XFoebQQkRQa02o8VBS28/uYmRQRMaHX12SltMZMVFsLAglYW+FmKn2cG2E53EhmuZMSRRFFBybEIDEvL68bfNzL5Qwm6bkyWFqUE+Mq9urqa608K47FjOG59JUpQer1fija3V7KjqIic+nDtOGSpO1x/sruerA00YwjTcvWDoSbEJHq/E9TPzxJrefsLIvV8fpdsqW0w8dZYcm3Ci3czl7+6jubefYSlRvH/lBJKi9fRYnZz16k5qjFbCtSreuGQc0wYnIEkSy17dKdzIA2MT7vpiIOQ0MHvshZ9PCB1blE7N7vvmEqFTs66snes+OCDe5y+vn8y4nDgau23CegLA7vIKH6MrV+4Tbar2PrvISHp8zXF2VsutudJmk7hvfLG/SYyvlzSbuGhiNrERWg419Irrzb39XDo5myn5ctG5sbwdl0eiqsPC/rruf1jkdJodQgIQOI36WxGt1zApN47NlZ2kRuvFfRpkdvDdHfLB7IwAF/TLpwzCaHFic3q4eNJAS/eiiVm09PYLiwm/Bm/G4ETuXTSMEp/FxDxf8ZgUree9Kyew8Xg7KQZ9kJv7R9dMYvXhZnRqFWcH+Ew9dmYB04ckyuxzgAP7eeOzGJoSTUtvP2OyYkXLcGhKFFvvmU1Vh4VBCRHiwB6mVbHmlunUddmIi9AGtc8fOm0kdy0YikqhCGLKlxSlsqQo9STWfXByFKt/5YD/r4pQkQNsqTTSYClli2/K5Yv9jfzsW5zHWvq4eFI2MeFaDjUMxCasK2vn2g4z43Li6LHJojWXR6LWaOVwY4+ITShtkW9UTrdXmLtB8Km7xzZg3BamUYmskwidSrRaEqMGYhMy48LFlzQ6TMP0wYlsrpAnBEYF9Ecvm5LDB7vqCdfJ9Ksf18zIxerwnJR1ctGkbFpMdtpMduYMG1i084YnsWLRMMHkzA7Qwnx41UR5OuEXsQmfXz+Z7460EqZRsixghPyJswqZOzwZmzN40Z47PpMRadE0+xatf5JCjk2YTXWnlUEJEeJ6mFbFD7dMp7HbRmy4FkP4AEPx5zMLWbF4OGplcGzC0uIBEXgg8pMi+fIXsQl2X1ihf3oC5NNyU4+N6DANF0zIEhoWSZI43tqHRqVgVMBIrCRJHG7spa/fxficOBEr4I9NaOi2MT4nLsgIcl9dNwfrexicHMnsoUni5n+ooYd1Ze0kROq4YEKmKBrLWvr4cE89SoV8M/bftOu7rLywsQqTL3hySVEqCZE6OvrsPPJ9GfVdNibnxXPX/KFE6zVYHW4e+KaUvbWyFuaps4pIiwlDkiTuW1Uq2Jsnlg1MMvljE0CervKLtz/f38j9q0pweSQm5MTx6bWTUCoV7KgycsXKfTjdXhIitay+SY5NaOiysfBvW4WJ2euXjGXByBQ5NuH5rcIMLVgLc0BQ7N8cbhE33Sd/LBeTa+9sr+XYwwvRqpWsOtgs4hG+PNAk8rYq2s1CtL4Fmd3ya2Ee9ZlTgqxBeeZcmRH8aM9AbMJ7u+oHipwqo2AC1pS08cjpcmxCU2+/YByrO+UTeFK0HpfHS6/vPtDv8gTFp/i/twoFQd/h3IQIwcoF6t7GZseSFCVPpM0Ymih+pyjDwKTcOCrbLRRnGMTvpBr0XDsjly0VMpsSqEd5Ylkhn+5r8Jk8DhbXHz5tJG9srcHp8Qat9Zvm5BOlV9Phi1vxR57MG57EaxePlQckMgzCxTwtJow1t0wXob2BOpy/hz8tHcHZYzOwuzxB97jfCr1GxbtXTMDrlU5qqQcyaSCvd68kMTkvPihWxe7yYOp3kRipEywxyAV2fZeNzNjwIAf2QMwckihE6DanmzUlrWhUSmYOSRQGr/1OD5/vb8TmcLOwIFW0wVweL5/sbaCpx8a0/EQm58UzKjMGr1fiw931HPVZTFw2OVvo8VYdamJNidxWv23uYPH5byhr5+3ttahVCpbPyhcDELuqu3jix+NY7G7On5DJtTPyUCgUVLabuf2zwzR02Zian8Cz5xUHGYv+KyOkyTEYuPHd7Vw9d6RYPBaHm/d21tHpc/j1L05Jklhf1i5Gxf3MD8jsz15fbMKMwQmi8rU53XJsgk6eyvBflzdGM06Pl8J0Q5DwrNfmFAZhgeOgfuFwlE590gL9ewnjgXB7vHgk6aS0catDzjpJidYHPa6p30VDl42suPCgIsLU7+JgQw/JUfqgvn6f3cWm8g50ahVzhiWJ9kC/08N3R1qwOt0sLEgRPXWH28Onextp6e1n5tBEoUXyeiU+2tvA0cZehqXKi1atkkfFP93X6DPb03H7vCHipPLD0VZW7qxFo1Jyy9zBQpS6s9rIE2vKsTjcnD8+U9zEjrWYuO3TgdiE588fJdi6y97ZS3mbmcy4MFZeMYG8xJNjE549t1iMJ1/3wX5BZwfGJjy9tlwYseUmRLDxzpkoFAo+39/IPV8OxCZsvGOmSPY+PWBc2z/yaXG4KX54nZjeuHraIOELc8qzWzjhE4yPyowRLdRAfY5KqaDysUWolMH9dIC1t01nWEo0JU0mlr60XVz/6znFYlMZ99gGcbK/bkauYN8CR8VnDU0UniGvbq4WBUV2fDgb75iJWqVkV3UXV6zci93lJSlKx+qbppJqCKPL4uCCN3dT2W4hLkLL25eNY3RWLJIkccfnR1h9uBlDmIanzioSmVif728Uxns3zs4XosiSJhOP/VBGj83J6aPSBfNjsrl4cu1xqjusjMuJ5bZ5Q4T9wEd7GthV3UVWfDg3+VotIOuovj3cgiFMw+VTB4mDRZfFwVcHm/B44czR6UKT4vZ4WV/WjtHqZNaQRMHKgcx0+mMT/B5H/rVU3tpHWkBsgn8N1BitROnVJ7nQmu0uvF6C1qQf/9n7gEp5cmxCp9mBTqM8KY5BtrTwkJcYGfQ7VR0WOvpk07mogN8pb+ujvNXM8NToID1QZbuZ7SeMpMWEMX9EsrjX1HRa+OZwC2EaOTbBXyQ19/azckctdpeX88ZnioK/2+r0xSb0M3dYMueMy0ChUGBzunnyx3JKm00MT41mxeLhROrUeLwST/54nI3HO0iO1vPI6SOFo/Arm6t4Z3sdOrWSexcNE4egz/Y18NC3ZeIg6Neeba3sZPlHB7E43IxMi+bTaycJUfdZr+7E1O8iXKvik2sm/UNB7ukv7xBt9cBR8cBx7eRoHXvuk0fFA32mALbcPYvs+IggQ1iQ2eSlxWmYbC6KH/nHFhPjc2L54nq5iLv9s8OCKYzWqznyp/koFIqgYGaVUsHGO2YGfY//GQhpcn4DHl9WSHR0NMdb++g0OxidFROkKyhpMlHRbqYgPZr5I1PEjbaspU+IfBeOTBFVclWHmdWHWwjXqrlgQqbodTd223h7ey0Ot4cLJmQJr4gOs53nN5yQT0IjUjhnXAYx4XLWyePfHpNbQWkG7l00DEOYRs46+bbMl3USxmNnFAjdxHPrK2UtjEbFA6cOFxvxh7vrefT7Mhxub9BGvKGsnZs+OYjd5WVEajRf+mITytv6OOfVXZgdbiJ1aj4LyjrZjNEin64fPaNAGAqe+9ouIT4NFLCt+PqoGOGU4xFkmvutbbVicu31rTXsuHcO6TFhbKsy8sdvSsX7nxyt49SiNIwW5y9iE7SidfLEj8fFKVqhQBQ5n+9rpKRZZtNe2VzNtTNyfd4sPaI42Fg+EJvQaXaIKbPG7n6ae/rJS4zEK0kYA2IT/OZuANqAolGrGvg5My5cxCb4M8wAhqdEkxkXRmO3HIDpv6nnJEQwb3gSB+p7yE+KFEV3hFbFjbPz+eFoCwmRuqAw0wdOHcFb22pQKRVBp8fbTxmMTqPEZJNTxf1F9IUTs3F7JRq6bUzKjQ+KTfjgqgnsq+shLzGCpb7vjV6j4sdbp7OpooO4CC0LRg60pN66bBzbTxhRKGBa/kDBf8OsPOYMS6LH5mRUZowo1CfnxbN7xVza+xxkxYULajw+UsfaW2fQY3MSpdeI4lihUPDceaN45pzikwwczx2XKYST4B/flyjMMAS12pxuL702p4+FGmDl7C4P5W19JEfJDGTg6PfOaiPReg1jsmKFnYPT7WVDWTtur8TMIYlizNntkUW+RrMcm+AXgftF65W+1va8Ecli7HxNSSvbq4xkxYVz+ZQccereVN7B5/sHYhP895M9NV28vFkeTLhy6qAgFu+h747RaXawYGQK9yyQYxPaTHZu+fQQ5a19FGXE8LfzRxEfqcPmdHPN+/I0WKpBz8sXjREi+xs/OsgPJa2olAruXzxctGD//EOZaFUHOrB/vKeB+1bJazEpSsfGO2cSpdewp6aL89/cjSTJotTPr5PbY+199iBjx8DYhAvf3EObrwV1qKFHPMd9PjsMkCfGBmITalm5sw6QrSSmDU4gLSaM3TVdIk7hYEMv0wcnsrAghS6Lg7e21yJJUGO0sqakjVt998sv9jeJ3Kbvj7aIImd/XY/Q7WyvMorvjdHiEAV/S28/DrcXfxnn/3oqAn7+jzApN46Spl7UqmCrhQUFKeyt68bqcHNewHd83vBkNld00uRrq/sPixN8Tt0ykzNg82AI1/DcecX8WNJGUrQuyErilYvH8NHuBtQqRRCb//DpIxmZFk2f3c1pxQMDLRdOyCIpSk9Dt42Jg+L+6QXOb0GoyPEhcNojKUrH5r8Tm/DVDVMYnRVLm0m2Xvd7JgQu2nNf3y0o9tJmkxgVD45N6BSL9u3ttSKZeMPxDuYMTyLBF5vgv36ooVe4WXZbnby/qw6vJG/EP5W2iSLn60NNmPpdmPpd/HSsXRQ5R5sGYhP21w2EFXbbnCIDpdPiwOWWQCsL1cSiVcj/Bln/khUXjtHiJEKrIi1gsmLGkESqOixo1cog19VFhakcaOjB6vAEbUyLC1PZXdMlAjCTfa0ov71+SXMvw1KiRSxAYpSO588bxbqyNpKj9VwzfUDz8tZl4/h0byM6tTIozPSRMwooSDdgtrtZWjyghblkUrbIZ/plbMK622dQ2tLH4KRIsTGFa9VsuHMgNiFw0uSF80dxxylDUCsVQafxCyZkcVpxGnaXJ8gUrTDDwLZ75pxEmcuxCQNeLjBg4PjLsdJemxMFiiD6G+SJG7PdTV5iZFAWUmO3jcZuG8NTo4NGzuuMVo409ZKXGMn0wYmCnWzqsfFzeQcx4VoWFaQIcW1Hn50vDzYhSbKo21/Ad1udvLOxlh6bk6XFaeLztzndPL22nJpOmUG5cuogYsK1ON1enl5bzh5fbMJ9i4eL9+jVzdV8dVDWwty/ZLjYiL/Y38hz6yvxSBI3zs4Xr2lDWTt3fXmEXttAbIJSKccmXP7uXowWJ9nx4Xx6rRyb0NFn5/SXd9BqsqNTK3nbF5sgSRKnvrhdFLmBsQm3fnqIH0vlfLOx2bGiffHchkrhjPwXX2xChE7NDyWt3PLJQDzC59dNZsKgOKo6zCwPEK2rlQoRm3DjxwdFy87qdAstzDPrKkVrrqW3XxQ53x1tEWL2N7fVcMPMPAzhGo639onr26uMcrBopI6+fjcH6nt83xM75a0DsQl1PgG7xyuJwwIEOC//4uf4SC16jRK7y0tytF5Ma6bFhJGXKDuw5ydFCpYrJlzDgpEpbPFFFwTeH26cncd7u2QPr8A22C1z85GQC89AX5hLp+TQY3PJTM7wZNFWnzUkicfOKKC02cSItGghQvfHJmzytdX9AwoAn103iTVHW9FpVEGt7MeXFbKoMAWb0xO0vuTYBAMtvXaKMgxiAi4/KZLtf5BjE9Jjw4IE/n8PKxYN5+75cjRQIJO/YGRK0GEC5KI5JyEiKBfR45Xo8Tm7+93UQS68qzrMxIRrg3yjPF6JQw09qJVKCtKjxXSi1yuxq7qLPruLKXnxQfcHPxQKRZCo/98JoXaVj+7a2WDlts8OY3fJdt2fXDMJrVpJfZeVa97fT2W7hYL0aN6+bDzJ0Xocbg9/+PIomys7STPIxnt+I6l3d9Tykc/f4Q8Lh4o2zMGGHl76uQqH28Mlk3KEUNNocfDSz1W0meycMiJZGE95vBIf76mXtTDpBi4YnyU2xQP1PWyp6CA1JoyzxmSI02+H2c5Px9oJ06hYUpgqTstuj5ftVUbsLg/TBycGCXWrOy20m06mnc12F009/WTEhgVdlyTZPCtSFxyb4H/Nv+aqHAh/WOEvHZrdHpkhiQnXBDksuz1eao1yvk2gP4fb4+WQT2A8KnPAYdnjldhRZcTqcDN1cIKg3yVJYnNFJ409NiYOig+i0jeVd3CwQWZQTgsohnZUGUXw5JXTBonH8scmKBVw9fRcQaUfb+3j2fWVmO0uzhmbKT7L5t5+HvymlLouK1PzE7h/yXB0ahV9dhd3fHZYMCjPnzearHg5NuHmTw+xpqSV2HAtfz2nSPh1PPp9GW/70sOvn5kn2KzAfLPA2ISfy9u5+r39eCXZ52jNLXJswol2M4sDTtdvXDKW+SNTcLq9jH10vfB0CqS5l72yQ0yDFWUY+PYmeYJoxddHhTmcSqkQsQmBJ36QDwljs2NPGhX3m0d6vBIjHlwrCvJAg8oL39wthK+F6QYxvfTMugpe9AngY8M17L5vLjq1im0nOrnsnb14JdBrlHx/8zTyk6J8rMJ2jBYHGpWCNy8dx6yhSUiSxBUr97G5ohO1UsFDp40Um+5b22p4em0FHkni2hm5Inh1T00XK1aVYDTLo+J/PqMQpVJBp1kOa/UHYP75zAKi9DIL+/yGE2z3mYU+sGS4aEdtPN4eEJuQLyYV64xWVu6sk2MTJmSLFrHd5eGzfY10mO3MG54stGAgi6DL22SLiUC/pMZuG/vqusmIDWd8Tqz4njvcHg7U9RCuU1OcYQhav7VGK063lyHJwe2qv9fmBpn5+qW9xC/x91prNqcbl0c6qVDotTlFwRp4f/CH1g5KiAi6PxgtDvbVdpNs0DM64P7QY3WyrqwNvUbFgpEp4h7WZ3fx5f4mbE75QOQXoNtdHj7YVU9Tj40ZQxJFYe/2eHl3Rx1HmnoZnhrNNdNzRQv0/V31rPVZTNy9YGjQ4efXsKm8g0e/L8PscHPBhCxxoCltNrH8o4M09tiYmpfAa5eMJVKnpqW3n4ve2kOt0UpKtJ73r5rAEF/m2ukv7+B4qzyA8OSyQjHRe/m7e9nsGzgJdGB/fM1x3tgqR5tkxIax7Z7Z/98S4P8nEWpX/UYsLEjl4JBELA43iZE68SFnx0ew7vaZJ8Um6NSqoFFQkCtihQKumDpITDiBfDNweyXGZMXyToDrqtHioMviZFBChOj5glyoVHVYyE+MDHJYbjP5YxP0jM2OFZMjRouDn461oVerWFw4EFZosrn4aI88Kn76qHTBiNicbl7eVCVnnQxNYt6IZPISI3F5vLyyucqXdRLN9bNyGZ4ajSTJHh4bjreTEq3n7oW/EpugVnLbKUOEWdW6Y238ec1xrA75FBYYm3DjRwdpNdmZlp/AG5eOJVyrpqnHxgVv7qaxu5+kKB0fXDWRoSlR2F0elr64nRMdFlRKBc+cUywmH65YuU8wY4Gj4n53Z/nzCxeC8o/3Noi+cmBswoH6niA3VoDTR6Vjtru4+O09AcaObnFiuvvLI8J6vb7bJnxhXt1cLcaZDzX0ssznKrzxeLuYNKnutHLxpGyGJEfR0GVjw/EO33vTy6HGHrLiw3F6vGw/YUSSZJbkcEOvKHLqA8bGA3/2Bhy13R4vkiSzcNF6DRE6NWa7PMKs08gbRFyEluGp0RxtMpERGyZu6hqVgtNHp7H6UAuxEVpBf4MsZjfbq5CQgwj9uHzKIDrNcgzImaPTxSZ02qg0ao0Wqn1Mjr8FV5hu4Nlzi9lb2012fATnjJOLQZVvcnBNSSsxYVrOnzBw6n71orF8e7QFr1cKOnXfPm8IEwbF0WVxMm1wgtCcTR+cyOa7ZlNjlG0X/Pqt5Gg9W+6eRU2nlRSDXojZFQoF714+ng6zgzCtKkibcvX0XC6fkoMEQRvsxNx4fr5zVtB3R5IkEqN0QWGmfgPHcJ2KuxYMFY7ckiQPK4RrVcwdnhzkhVXabMLl8VKUESPuD34xe5vJzoRBcUFZSPt8sQmF6YagsXP/wER6TBinj0oTHj/HW/v4+mCTzKD4Jp9APvS8ubUGh1vOohrvm+xrM9n5y08VtPXJWpgrpuYQoVNjsrl48NtS0VZ/6PSRROs1uDxe/vhNKRt9DMoTywrFQfAvP5Xz1jbZ1ff+JcMFwxsYmxC4ptcda+Omjw/h9HjJTYjgm5umEq3XcKzFxNmv7qLf5UGvUfL5dZMpyoiRfc2e2SIGPAJjE855fZdg6wK1MCu+LhEmq+/tqmefLzZh5c46nvyxXFz3a2G2VxlFTMn3R1vJiguXtTD9rqCIlORonXDQ/3v4/mir0Mh8tLue2+cNRqFQUNbSR0O3bNS4t7abHt/h0tTvotnHuHWY7XSaHQxJjsIrSTh8bTaPVxKHBUAEDEOwmePQ5CjBygUeFn8vCBU5wOXv7GXJuDyunJpDuFZNr83Jg6uPCYdM/6K1uzzc+5XM3qTHhPHXc4pFO+OR78p4f5eshflTQGzC29trecK3aM8Zm8FffIs2KDYhIYJvb55GpE7N0aZeznltl7Cy/+J6edF2WRzMe3YgNuHR00eKAujc13aJBfJzeYdoj9395RHW+Tbcj/c0sNOnhXlza60wSftoT4PIOtleZeTptbJG5sfSNvKSIji1KI1OiyNI8JYWE8Y9vpPsSz9XiUX47o46UeR8f7SVel+Uwyd7G0SRc7y1Tziq7q/vpq/fTbhW3oDb++TeeJfVKdp9koSYcPFKkvgZCErUDmybFWUYRJjpxEEDIX9jsmIZkhxJY3c/U/MTiI+UqeahKVGcPirNF0IZJaj0SJ2aFYuGsaakjYRIXVD44JPLili5sxalQsG1Ab3u+5cMJ8Wgp8831RTY01YpFTR0yeGb/vZiQbqBr26YwsH6HvKSIsT7p9eoWH/HDLafMBIXoWVGgMj99UvGsa+uG6VCIQpdkKfmFhak0Gd3MTQ5Spyux+XEsfe+eXTbnCRF6cQmHR+p49ubpuFwywaOgbEJj51RKHRbgQj0ZwJfbILTy9CUqKBWm8Xhpr3PTnpMWNANvs/uorLNTHpsWFCYqdnuYnNFJ4YwDRMHxYnN0Opws+pQE14vzB+ZLAp4h9vDZ/saMFqcnDIiWbTZ3B4vH+yup7rDwpjsWJYWpZIVL8cmfLavgR1VXWTFhXPDrDwxifbtkRY+39dIlF7NrfMGC53SpooOXth4Ao9X4urpuWLK5UhjL/d/U0Kn2cGiglQePHVEUGyCn71549JxJETq6LO7uOStPRxpMhETruGNS8YJb6pL39krCvW7FwwVWsD7vykVrerA2ISVO+tEWz0oNuEXOUVf3TCZsdlxtPT2c9arO0WryWhxCPH9JW/vFXqUslazKMoe+vaYeE07q41C+Prh7nohZt9R1cXiwlRSDHr21Hax2qe5q2y3cNqoNGYNlTVZXx5owu2V6DQ72FzRKT7Xdcfacbhl08CtlZ2iyKnqtAgJQHlbX8D3zIvbK699m9MjCnqdWkW4Vl7r4Vp1gKOwkpFp0eys7sIQpiEvYBJtcUEKb/vy7OYEOAifOy6T6g45NiEwuHhpcRqHG3pp+n/s/WdgFFe67Q+vzq1Wt1o554wEiAwi5+gIBowNzsbGEbDHOecZj8HZxjljMA5gg8kZAUISkpCEcs5qdc6h6v2wq3dXIXtmzrlz/ve9c9hfDqdGVkut3lXPfp611s9ox/SsKHrfKcyIwL2zMlDZSYTOfrdoqEqOj9aMxd7qXkRrlLh7xtDxz6XrpWuGY3xqGMn/yg9k0iwfl4ikcBU6DHaMSwmjHaFhcSE4/PAMXOyxICMqGOnc+Fwpk+D39dNQ20OAwfwO0uvLC/DQ/BxIxCIBB2zZ2ERcWRAPL8P8P+OY+q+s/7zf6L+xStoMKOutwTWj4hGhVuBsix67OIhhQ78VV49OwIzsKOhtbvxW2QMvw8Jo9+BUo44WOUfr+uFlWFhcxE3lL3KaeJvWH+IGkCqbYhMYhrJ3VHIpNEoZXFYXNEoZ/dAFK6QoSCKsk4hgOXUHAOS0/OlJgk2Ynx+Ym14/IQntejscHp8gk2HZ2ATU9ZnRbXQKWCdTMiLxwJwsXOgkriaa76BR4sPVY3Cgph+xWgUVXQIBbIJcIqZWWgB4bdkIFGZEwObyYjHPnnrDhGRkRqnRZXRgfGo4ndkPiwvBsb/MRG2PBRlRapqgGSSXYP+G6ajrtSBSrRCQl19bNpJuWn7uw/JxSQSbcImTbFhcCPZvmCH427MsC7VCSkXS/msWpwcKqQRrp2cIft9uowMSsQgT0sLpgwogYnOTw4sRCVoa2AUQDELroA0FiaG4cWLgxlndbcL5diMyo9WYlB5Bi5XGfgv2VffRwDt/EdA2aMPW4g6IRUTr4y/E/NgEg92Na0YlUDKxyeHB3/fVoFlnxYRUcjNOCCXYhJd3V+MsZxV/9so8ATbhx7JOhAbJ8dxV+dRW+smJAEts/dwsOrPnYxNmZEfh81sINqGs3YCbPy2GxeVFTIgCP66bjMQwEnC45O0TMPwzbALPwXX3N6X0gTu2OKCF2bS/Hlu4FvtbhxooNuGX8m4qWv+iqBUJoUqMTSEW6kd/5IvWZbhzOtHCPLqjkopMxWIRPdl/cLQJ57nR3FsH62mRs7+mF1Vd5AH83dl2bJyfjRClDE0DAWxCeYcR3UYHIjlsgr/rZ7R70Gmw08+OX4MDgGZAAUA4D5bLP3WnRgZDoySHgtxYDQ11y4pWY2SiFrW9FhQkapEcHkz/25Xjk3C0bgDxl9i1H1mYg284nh1f3/bowlyEKJvg9PgE+rY7p6fDx7I0YsK/d+flxWDTigLUdJsxIlFLNSzRGiV+uXcKjjcMIE6rpGJ2ANhx92QcuEhI2/woiZeuHo6rC+Lh8PgEup0rC+IxJiUMfWYncmM19L6YGa3Gqcdmo8fkRCwvEV0hleDbOybC7vZBKZMIsQnzc2gIH39dqm/zMSwcHh/itUoBNsHl9aFHb+dGUYHMKKfHh/PtBkSqFQKDipsr5KQSESamBRLYvT4GR+oGYHZ4MDMnit4/GYbFrxXd6DDYMTkjEoUZESgESd7+/UIPStsMyI7R4LqxiZQefqSuH7srexChlmPttHTq7Cpq0uHzU2SsfteMDKrBquoy4a97a2F2enHdGAKsleMfjxf/X12XNTlaLe774iSuGp9JhVUsy+Ln81004I6v0ajuNqGokUSCLxoeG8Am2D04UtePILkEs3IC9mk/NsHfVeBrWHpNpM2YFaMWXHd6fBiwuBClUQzRvPyr2IQ/Wl4fA4fHB7ViKDah2+hAnDZIEAbl9PhQ02NGlFohOBH4HSgyiRiF6RHUPeP2Egutze3FnNxoKiT1MSwHxLRjckaEIEdmZznBJuTGarBiXBL9vfZV9+L3Cz2I0iiwbmYmLWKKGnX47FQLJGKRYNOWtRvw+t46WFwerByXRLtcLTobHt1RiTa9DVMyIvHKUoJNGLS6cNfXpTjfYURWtBofrh6L1Mhg+BiiyzheP4BguQRvrCigwXSP7KjA9hJykuU/iPnYhJwYgk0Qi0XYW9WDu78hItMgmQR7109DSkTwEGyCn+zt8vpQ8Px+KgT/M2wC3yrO/5nEIqDupUWQScQCyydAWDyjk8OGWMVfuXYEbphIsAkjn99PH7p8B96qj87gdDPRwkxKD6cpzu8casAbB4ZiE043DeLmz4rh9jEIUUqx676pSI0MRr/FiaXvF6HT4IBKLsGnN49HYQa5ed+39TyJ1L8Em/BlUStNur1/dibtQpS1G/D0L1XQWV24YmQ8nloSwCY8/2sNGvutGJcahicWD6PYhI+ON6OoSYfEMBX+siCHfqZONw3ix7JOqBVSrJ2eTgvpbqMDW4vb4fGxWDk+iWpk3F4Gv5R3YcDiwuzcaHrQ8f9cDX0WjEgQYhP6LU6UtxuRGKYSXPcxLKq7TQhWDMUm9Fuc8PhYQccSIHkpzj/Yx//qcnp8kIhFgrEbQLo8bi+DOK1S8H3/DO/SabCjvs+CrGiN4P7QabCjqGkQsSFKTOPFafSanPitshtKGQnb8ydK621ufHe2DXa3D9eOTqAHOIvTg4+ON6PL6MDs3GhqonB5fXjvsB+bEIIH52RBKZOAZVm8d6QR+6r7EK1R4Iklw+h7+vXpVnx6sgVyqRgPzc+hwt69VT14blcNrC4vbpyYTPd0cYsed39TCr3NjbEpYfjqNoJNaB+0Y/mWIvSZXQhTyfANh01wenxY8OZx2r3mA4pXbjmNsy1DsQnP7KyibjA+NuHLolY67hKLgCMPk/FYSase1314mr7Pm1cW4NrRiXC4fRj2zF56nY884RPN/wy3IpeIcfHFhUM0kv//vi5rcv4L6+VriYW8RWdDQx/Jd1jKS51sH7Rz2AQlpmZG0pZrl9GB3yq6aUKmXyvSb3Hi2zPtcHp9uG5MogCbsPlgPT0JXT2KZGw4PT68+vtF1HSbkRcfQqP9GYbF5gP1OFRLtDBPLcmj1r3PTraQlqtUjEcW5tAH8c7yLrzwaw3sbh9unpxKRalnmwex7tuyIZu2acCKlVsC2IStaychNzYENhdhnfidFnxswupPzqKEc2nw05qf/qUK20qI+DQhNIhiE746HWix81knRU2DWL+tnL7PaqUUV4yMh9npEaS0ehkWz15JHvZP/VJFR3MDFhd+4jbtl0Wt9EHcMlCL1Rw24WTDAHWm/FzehXtnZyIjSo0ekxNl7QYwLFDba0FDvxWpkcHw+BjUdJNTus3to6FvAKC3eXj/DgQ4hgTJaEBbqEpGXWlx2iBEqklAGzmBE41HfKgSE9MiUNpG0AX+VGa5RIybJ6diV3k3wlRyLBnJxyZk4cNjzRCJgHtn8rEJmXB7GejtHizlaWGWjUmEzuJGs86K8anhAS1Mohbv3ziGhv6tGMfDJtw/Ffuq+xCqkuFaXuLrJzePw/6aXrAs6OkUICFwU7Iiobe6MYGHTSjMiMDJR2ehw2BHZpSG5rlEa5Q4/NBMdBkdiFTL6fshEpHuyd+WeSGTiAWC1Zsnpwp0J/41JjkMux+YRv9/hglgE/gJy14fgw49SXldNzODpvr6GKJ50Sil5KTMda18DIszzYPw+BhMTIug7iqWZXGiYQD9ZhcmZ0bQ8Yofm1Dba0FBkhaTMwLss5MNOhxvIKPt6yck0feupFWPHaWdUMmluGNaGo2SqOoy4YOjBJuwpjCFdhXaB+14aXcN+sxEYHzvrExolDIMWl147KcLdKz+6lKCTXB5fdi4rQKHavsQrw3CppWj6N//iZ8v4Luz7VBIxXj2ynw6gn33MClYWRZYPCKWOrt+Pt+JjdtJAntiWBB+f5AksJ9vN2DFltPw+FhIxSJsv7sQY5LDYLC5MX9zINjxicW5tBO6YstpOto+ycMmPPnzBepc214SwCZ8erKFCsp/KuvC6OQwJIQGoahxkCatH60bwPB4LcGtODz0sAEAmTFqGh756ckWtHIFyPfF7bTIOXSxn9rXfynvokVOq85G93hdrwU2F4dN8Ppg4cjoNpeP/p4iEWh3SSoWQSUXdpDPthBsQjavAz8hLRy7KrphcXoxOzeGh02IwOjkUHToHZiaGUE77XnxIbh+fBIdq/tHtEFyCV6+djh+rehGBGeQ8K/NK0bhy9OtkIhEuJ3XrXti8TDEhwbB7PDgqlHx/88VOP+VdbnI4VZxix6rPj4DH8NCJhHhx3UcNsHixPw3j9HTNR+bsOLD07TFXtQ4SDft4z9eoCLTnee7BVbxLcdIi31neTfGpYYjgcMm+K+faNBhbHIY5ufHQmd14a1DZExQ1WVGXlwIbbN+faaNvvYPJZ20yDlWN0CZJnsu9NAip23QLty0HOvE5WHoRrW7fXBxv6dYJKInLZlEGPc9IlGLkjYDpGKR4FQ6NSsSBy720bmyf03LisTo5FB0GhyYxmOdjEoKxaoJSSjvMCE3VoOpnPBRo5Di5WuH43cuqfM2noh788pR+Op0GyRi4PapgVn3s1fmIz1SDYuT5ML4bxg3TkxBSJAMHXo7JqZH0JPdcM6dU9lpQla0EJtwaOMMnG0ZRIRagTHJofQ1PlozFhe6TJCIRcjn/d43FaZiyYg42Fw+JIUH0dcuSArFmcdnw3YJdDRUJadx/PwlEonw+KJh9MYMkFM7AAHqACDaFpvLi5QIlUAAr7O6SLZPtBoPzg2k1Q5YXKjqNiElXIXFI+LoCHHQ6qJamJk5UbQIMNrd+KGkAwxLRgV+G6rd7cUnJ5oxaHNjYX4sfaC7vD68f7SRhu1dPz4J0SEEm/DJiWacatQhJSIYG+Zm047Id2fbsaO0A9ogGR5ekEMPD7srewTYBH9xfbZ5EI/+WIkBiwsLh8fhb9eNhEQsxCbkxGjw1e0TEBOihNHuxnUfEpHppdiEZR8UoZwLYuNrYf7yQwUNYpuYFk4zdz481kwDDtUKKU49NhvaIBkO1PRhLa8g/+HuQoznsAmrPz1Lr9vdPvre3vr5Oepc6zE58MFqct947fdamslS1WWi940fSjuotq6i00SQFCFKnG83UpF7p8GBGyemYGpWJEwODw5c7IPby6BZZ0NJq54WOee4joLLy+BClxEAKXIGbW4qsPezkgCS++RPYFdIxRDzPsPRGiW6jMQoEMaN14IVUkzJjMQhDkJZwBVwAHDDxGR8drIFQXIJruYlsK8pTEGv2Qm7y4fVvPHY9eOT0a63o5vr5MRxD/tpWZF4dGEujZjwd+BDVXJ8e8dE7K/uRXSIUlAcf3PHROws74ZcIqYid4BgE6ZmRcLi9GI+zyK9YnwScuM06DI4MCYljIrWs2MINqGhj2AT/CM7hVSC3+6fitZBG8JUQ7EJD83PhlgkErharxgZjyUj4kimEK/IyIzW0I6Lf7m9DIJkQi4iy7LotzgRLJfixokpdBzOsiwa+y0QiUQYmajFphWjcOkKD5b/Ien8P3FdHldx7a4Blxg3fVqMLqMDKREqfHP7RCSFq+D0+HDvt2U4UtePOG0Q3l41muonPjrehC9OtULJQSj9J7WiRh02HaiH0+vDTYWp9NTXb3bi7/vr0GMiWphbp6RCJBLB42Pw6ckWVHebkR8fgjumptER0PH6ARyu7UesVombClPoaaHH5MCu8m4opGJcOyaR2i39pG2H24c5w6IF+SwXOk3oMtoJ64SXoqq3udE8QDoZl1q02zlsQhhv0wLkYScWiYaM04B/LXX1UrGr/7/rMTmhUUqHWNb97ip+S59iE5xejE8NE4jmzrXq0T5ox9iUMEFwVWmbHufbjciIVmNmdhR9/cpOI/Zc6EV4sAw3TEyhBV5drwVfn2mFWCTCzZNT6eu3Ddrw1qEGGrbnd/v0W5x4efdFtOpsmJQRgYfm5UAuFcPuJtiEc616pEeq8erSERSb8PTOKvxc1oVQlRwvXzucuuDeOtiAdw6TIvfBOVkUC7GjtBNP/HQBbh8hx39/Jw+b8Pk5uH0MIoLl2HU/wSZ06O1Y9NYJWF1eiETAltXEKs4wLCa8coiKT2+dkko7ZvwWe0FSKMUmPP9rNT4/1QqAnFgrn5sPlVyK7ec68MiPlfR99jOSanvNWPjmCXrdnyfFMCxyn95LheRLxyTQmzGfKp4bq8He9dMBAJsO1ONtrugPkklQ/OQcaJQyHKsnVnGAFOQ7752KvPgQwp578wT0NjdEIuDdVWMoi2fFltM4x+VFPb4ol47B3jvSiDf214FhhW3/okYd1m8rx4DVhbnDYvD+jWMgk4jRa3Ji4/Zy1PWSFPRNKwoQqpLD42Pw199rcayeaGFeuDqfutd2lnfh++IOBCukWD83i8YPNPZb8PFxEhZ646QU6mqyubz4oqiVdICHRVNxOsuy2FvVS8fq/C5b04AVRU2DiNcqMSsnmj5ErS4vTjYMQCUnxYj/BM+yLGp6zHB6fChIDBUkrQ9aiWsuNTJ4SLSD0eFBaJBM8PX+7/fP7gF/FiXhcBNsQrRGIXj4W13eP8yhsbq8qOwwIjpEgczoQKfE7vbSOICZPAmB0+PDngs9pLDJj6Ghel4fg5/KuohdOzOSaoJYlsUPJZ2kgxKjwU2FKfR92FnehT3cWP2B2Vn0vnqwpg+fnGyGVCzGPTMzqHPtbPMgXv29FhanB9ePT6bU+sZ+CzZur0CrjkRMvLGCYBMGrS7c+sU5VHaakByuwic3j0N2jAZeH4MbPjmL4hY9FFIxXl9eQDVj678/T8NXV01IEoRg/iety+Oq/+LKiFLj+COzYHF6oFHK6MZTyiT49Jbxf7hpLxWl+hiSujo5M5J+qAGyaY0ON6I1SppNAICjMNuQEh4sSKs1Oz043zSImBAFpmdHYTrXtra6vPitshsKqQQzsqPojdnhJk4Tm8uHhcNj6QPX42Pw7dk22kGZnBmJEYlaMAyLr0+3oqKTdFBumZyKcanhYFkWO0o7sbeKbNoH52RT1f7eqh58dqoVcokY983OFGATXtlzERanF9ePT8a6mRnU+rhxezk69CRbYvNKgk3oNztxy+fnUNNjRkqECp/dMp7a11duOY2ydiPkEjFeXz6Sunju/a4Mey6Qdjb/wfP6vjqKTUiNUOHwQzMhFouwo7QTD/9QAUCITbjQacKyDwIzbT82weX1Yen7RVQg3mlw4IWryWvcv7WMMscqOk30Yf/O4Ub8VEZO/Efq+rFoeCykEjF+v9BLnSYVnSZcXZCAvPgQNA/Y6Nd36B042ajDinFJ8DEsdpV3w+b2weZ24Fj9AC1yStr09Gc61xYIcBywuGhx0GNywMeyEIMEionFAHzkweF/PqjkEsRplWjot0IbJEMk56wQi0WYkxuNHWWdCFFKMSE1IKReNiYRHXo7GC70j3+9ptuMQRsBYPrJxgvyY1HeaSRamJQwOoLJidHgxavzUcRhE1ZyXRmxWIStayfi5/ME2cDv1r17wxjsKO2Ej2EFtPEHZmdiWKwG/RYXZuZE0UJ4RnYU9q2fjsZ+kmXlLyaiNUoceXgmarrNSAgNomJ2kUiEbWsL0TRghVoppQ85gCAibp6cCh8jzGmZnBmJ4ifnDglwjNUq8d2dwq6cx8dAKhbhqSvy8BTv+qDVBblUPMSh1mmww+lhkBGlFrDSGvst6DW5UJCkFSSw1/dZcLGHdHYXjYijKcsBbIIS8/NiaUHeqrPhl/IuBMkkWDEuiXYEe01OfF7UAofbh+Vjk6jbTG9z462D9ejhxuorxychghNQv7KnGhc4N9Gji3IRqVbAx7B49feLOFhDwJPPX5VPi40PjjbhkxPNUEjFeHRRLv29fyrrxDM7q2F3e3HDxID+63j9ANZ9Uwqb24dhcSHYfhfBJjQNEGyC0e5BsFyCrWsnYWRiKKwuL+a8cZQ6M/lamBs+Pku7dfwR3HO7qvH9OTJWf/tQA0qemguRSIQvilqpi/Sdw43UKn6mWS8o4MODZbh2dCJMDg8e/L6cXpdJxPSQ8MrvF6kWxunx0efB9+c66M/09qEG3DEtDSKRCGdb9BTIuq+6F4+Yc5EWKYXO6sbFHjI+b9fb0aqzITtGAx/LopMb/bm8DHpNgQBHMe859Z9mB//vrMtFDm9JxCKEquTw+hi8+NtFmgvzIg+b8PahBnx+ijiZnlySR3UTW4vb8fyv1WSePimFPiSP1Q/gHm7T5sZq8MPdhdAoZQJsQrBcgm13FXLJvB7M/vsxerrmYxOWf3iafuD5ArYnfr5AeSNbjjdRy+cXp1ppjsMHR5sE+Q5P7+TnOChxZUE8zA4vLQ4AMmP2h8C9vOciOvRkI/kYFpPWkiLnh5JO6jT54Ggj7p5BsAklbXoqlD1Q0wed1YXEMBX6LS7Ucy6ztkGSwpsRpYaPYemNyu1jKDaC/F3EvH8HNm1KhApyiRhuH4PMaA3VwuTEaGia8ZjkUIRympDkCBVm50ajpFWPzGg1baXLJWI8OCcLuzgI5fKxgWyWJxYPwycnWiAWi3A3zyq+cV42lDIxDHYPrh2VQE+y109IgtvLoHXQhknpEXScNzxBiy9vm4CSVqKFubqA3OylEjF+Xz8dhy/2IewPsAnH6gYgEokwPTtQNK+bmYFZuVHQW90YnRxGT5WT0iNw9vG56DU7kRKhol22CLUCe9dPh97mRkiQVOA4++t1I/Hq0hFDsQnjkwTJsP5T9/AEITbB4wtgE/gJy06PDxd7zIgJUWJNYSoVgru8PpxpHkSIUoaxKeFDsAkeH4MZOVG06Pf6GOyu7IHO6sKM7CgBNuG3SoJNKEgKxZxhMTTccW9VD47V65AYFoTbpqRRvc2x+gFsP0ewCetmZlCBa2mbAe8dISGdNxem0o5Iba8Zz+2qRr/FhYX5sXh4PsEm9JmdePD78zST5s2VAWzCHV+WUNHtezeOoV3f+7eex68V3UOwCX/fV0chp3Nyo/Epl6P1fXE7HuMQJlEaBQ5unAFtkAzFLXqs/Og0xSZsu4uMx/ovwSY8uXgY7RKs+vgML7bBgI85bMLTO6vouOu3yh6UPU20MF8UteJLThC7v6YP07KJbfpM8yDt4pW0GTA5IwKLRsRh0ObCR8ebwbIkA+rXih5smMdhE0o76Ph8d2UPLXLOtRpoHMbx+gA2YdDmgo0bn/eaAtgElgUdp7EI/FsqFiE2RIk+swtKmRiR6kDHuTAjAhe6TJCKRbQrBhA8wokGHSxOD67juFf+64dr+9FpcGBqViQdRY1ODsXtU9NwntPCzM4hYy1tkAybVhRQAOZdvAPvBzeOxXdn2yAWiwTO1ueuykdurAYWpxdXjQoYWm6YkIwotYLDJkTQkW5OrAb71k9HZacJGVFqWogqpBIc2DgDZe0GRAQrBLKBN1YU4N7ZmRCLRPT7/G9el4ucP1h6uxufn2oBw5IH8e8XAtiEH0o7YLB7YIAHe6p6aJFzvt1AdTunuVRWANDzNm2/hbgXAFJt+0+EYrGIVt8yiRhJ4UHQWV0IkkkQyxsrTc2MQH2fBTKJcNMuGh6L0jYDYZ2MD9i45+fH4HjDALoMDkzLihSwTu6YmobKThNyYjXUdqxVyfDW9aMCrBNevsNHa8bh++J2yDhxrH+9cHU+hidoYXV6cQWPdbJmUgqhphtILozf6jg8QYt9G6ajqotsWn+r3p8LU95hRJRaIbDIv339KKyfmwWpWERP6QCwcnwyriyIh9PDCGbgIxK1OPXY7CEBjtogmSCMEQgEON7PGwcBAUr8zJxo2lkByMjR7PQgLVItyJHp0NvRzmET7uQVQx16O8o7jEiNCBZYVLuMDhyu7UcYF3e/hodN+IFzPSwbk0gfuEa7G+8daYLBRrAJAQsywSY09hOB8W1T05CjIu3szQfqUdREtDCPLcql2RhbjgWwCY8vDmATtvuxCQyLe2Zm4Bauu3K4tg8P/1AJg92NxSPi8M71BJtQ023GTZ+RrJXUCBW+X1uIWK0Sg1YXrnr3FLqMDsglYmxZMxazckmi8JXvnKSdsT/DJvBdIG8ebKBFQJBMQrEJe6tIOJx/bVs7CRPTI9A2aKOONv/yd0H8hw2AdEv9WphNB+pwqpHs2Vadnb7nO8u76dhsy/FmrJ2ejlCVHDXdZnr9RIMODRw2weL0Ust5r9mJul4LLXKaB8jv7OO4Yf7lYQK5T/wMqAi1gmY9xYYoIecK2TitEumRwWgaIAm//vuDViXD4hFxOFzbj3htEC3sAFIU+3l2N/KyntbNzIDT44PD7cONkwLXby5MgcnuRjfXyfFnUM3IjsKLV+fjAudq8r9P0Roltq0txGEu9G8lH5uwthB7LvRAIRULAhxfvDofc4dFw+ryYmZ2YH9dOzoRIxJC0WNyYGRCKBWtE2zCLLQN2pEYFkRxCkqZBD/fMwV9FicNvfSvRxfm4qF52YJ7LQDMzYuhaAz/8mMT+F05H8OSg4EycNjzX28eIF1RftYTw7Co7DRCLCKaveevDmATipp0MDu8mJwZQTvwLMviZIMOrYM2jE8NF4wbTzQMoKSVJLBfMTKOdtTPteqxu7IH4cFy3Dw5lYqPq7pMlOd165RUqm+7vC5rcv50plfapsfRugHEapW4bmwiPf32W5zYW0Uiwa8YGUd1IF4fgxONOjjcPkzPjqKaDoDMx3uMToxI0ArIwVaXF50GOxJCh2ITBqwuaBQygeDX/zqXbto/Wpe21QGyOY12N0KChmITmnVEMMcPifIxLMo7COtkJC/qneEcKGanB5Mzh2IT2vV2TEwPp6FqADlFl7YZkMVt2kuxCRHBxBXgHxGcb/djE4grwL9pG/os2HSgHiYubM8fWd5ldOBpDpswOSMCTy3Jg1ImgcXpwUPbK4gWJkqNzStGUWzC+m3l+K2SdG9ev66AFnv+mHORiGAT/BH+X59pwzM7q8CyJLH3l3unQCIW4UhtP27/8hzBJiik2PMgwSa06GxY8OZxWtj6reIeH4MxLx6gLo0/wybw0QWP/3QBW4tJOJxELMLFFxZCLhVja3G7AFrqD4G7VAvz9BV5uH1qGhiGxTAeNoEf737jJ2fow57/2pv211E3izZIhrNPzIFSJsQmKKTEnZUVoyG27rdPotfshFQswoerx2JuXgxYlsUtn5/DsfoBSMQiPHdlHi3uPj3Zgr/urYWPGYpNeOwnEry3eEQsXls6EmKxCP0WJx7/8QLq+kgn59WlIxCilMHHsHj7UAN1NT25ZBgt7g/W9GFbSQc0Cil12QFEX/X5qVaS8DshmZ6WnR4fvi9uR5+F6HD4wYsnGgY4V1OooKDoNASwCeNShNiEcy0GqBQSAWIAIDEHDq7Ty9+zdrcXZod3iDaFZVkaFvrP8CnA0JGF0+ODx8cI7jkAKewHrS4OLCvU5DT2W5EWFUwzlQAy1ipu0SNWqxSgIIx2N/ZV90ImEWPR8ABaxuL04MfSTtjcPlwxMo4eWFxePzbBgenZkTTZ2+tj8NmpFlR0mjAsVoO10zMoNuGbs+1krK5W4OEFOfQQ9VtlNz4+ToC1D8zJogeUo3UEm2B1kbH6Bk50W91twn3fnUc7F2/xweqh2AR+Arvby+Da90+huptgE/66bCQd5979dSn2VpNCfenoBGxaOQqAEJuQEEqwCWKxCD+WduIhrnMuFYuwf8N0pEepUd5hxDXvBZAnb10/ClePSoDT40PeM3tp9AQ/5mHRWydolz8vLgR7Hgw4D/9T12VNzv/h4rfS9TY3firrglJGNq0fDGhyePDJiWbY3T5cWRBPBYEOtw8fHG1Ct9GBmTmEdZIRpYbXx2DLsSZUclqYu2ZkIDc2gE04UEMcCY8sDGzaHaWd+OxkC2RSMTbMDWzaw7V9eOFXsmlXTUimJ+LyDiPu/bYMXUbSvdmyhmATuowO3PDxGbQN2v8hNuH160bSk8ltX5yjFGB+WvOrv1+kZOKE0CCcfJSwTrYWd1BOkVQswuGHZiI5QoXz7QYqDAVIcvHVoxJgdXmF2ASnh860H/6hgtq3m3Q2qoXZcryZnviLW/RYOiYRErEIhy/24TDnaGsesOGmwlSCTdDbqTOltM2AsvYANuFY/QAYFtBZ3ShtM9Aix3/qZlmgiYt/BwCPl6E/q9vrD3AUISRIBrVCCrPTiwh1AJsQGiTDsFgNKjpNiA1RIpnLEpGKRbiqIB4/n+9CmEpONVcAcMuUNFhdDWBZ4LapqfT6zZNT0Gd2Qm9z45pR8VREeVVBPFp1NjQNWDE2JRyjksiDOCdGg80rC1DUOIiUCBU9wYvFxDm4+0IPtEEyQYrz+zeOxa8V3WBYlmaSAMD6udkYmxqOQasLU7Mi6RhsWlYUDj80Ey06G4bFhdD2fqRagSMPz0TTgBUxIUJswhe3jkev2QmVTCoo+G+fmoZbJqeCYdkh2IQjD8/EpStao6SjHfK3YmF2eqCSSbBhXjZ9iLEsi7ZBG4JkEsEJnmVZXOwxw+1lSKo5D5twvt2APrMT41PDaTcLIIV3TY8Z+fFaAcy0osOIEw1EYHwVz4l2sceMH0s7ESSXYM2kFIpZaNHZ8PGJZjg9PtwwIZk6+3pNTvxtXy2NmLh9ahqXBu7B87/WEPBkXAievTIfWhXBJjyzswqHuYiJV5eOpGOL1/fV4uMTJGLiqSXDaIf3y6JWvLS7Bh6fMIH90MU+3PNtGVxeBulRwfj5ninQBslQ12vBte+fgt3tI0X1nZMwNiUMZqcHs984CqN9KDbh+o/O0FH171W9dDz25M9VNGT181OtKHkqMFZ/lcMmfFHUiqMPz0RqZDBONQ3ilT3k+u7KHiRHBOMqbqzuD3z0f96e4g4Jmw/U0/vG+0eb6P3y14oeev2r061Yz2ETqrvMaOEiKc4266G3urm97KHuVZ3VBZ3VhRxowIKlblQfw8Lh9tKfIyxYxvt3oLM8LE5Du3Kjk0NpwToiUYusaDXaOLK3f59kRqtxZUE8l4Kupl1bpUyCJxYPw85ycjDjw0yfuzIPn5xsgQj4Q8Dm/+Z1ucj5F9byD4voBjlY0y+givtZJ1+dbqOb9uMTzdjEhaR9faYNpx6bTYqBRh3dzLsv9CA1MhhXFsRDZ3ULsAkJYUH0JPv2oQba3v70ZAvdtLsre2nuw9bidmycl00Fv/7Nea5VD5PDA5VcCrPDQ+fyhJnlAqABy4KKWxmWhdcXaOzxR2V+2zdA8hr8m3Ys77Q6JiUUOTEa6k6I1AQIvVcVxKO0jbRfJ6aRk2+wXIInFw/D7gsEgMlPBH516Uh8dpKE/vHHP48syEGYSgYj52ryj6NWTUiGVCJG26Adk9LD6XgxP16LH9cVoqTVgPQoNeYO42ETNkzH8QYdIoKFhcaHq8eimMMm8MeCt01Nw7y8GBjtHuTGaagOZ2xKGIqfnAu9jWAT/NfDguX45d4pQ07dIpEIL187Ai/zNCz+U/dVBfHUJQGQYsrp9SE3NkQwarO7CQYjPlRJsz0AUijW9VqQEBokIBBbXV4crOlDSJAM41PD6JjQ4fZhV0U3vD4Gc/Ni6I3T5SVdjEGbG3OGRdMxG8Ow+L64HXUcuuCqgnikRgZTbMLJxkEkhwdh3cxM+hq7K3toB+WBOVlUO3OsfgDvHGqAh2Fxx9Q0XFkQDwlEFJvQb3Zh4fBYPHtlPiRiETr0dqz7thS1PRaMSNRiy5qxiNYoSbH8CRGZhqlk2MLDJtz2xTkc4aCEjyzMwT1cxtAzOwN8s+nZUfjqtgkAhNgEbRDBJmiDZChq1OGGTwKW8O/XTsKk9Aj0mBxY+kERfNwe6re4qJ7ops+KqR37Yo+ZYi+e2VlFU5xPNuhQzDGSvj3bRsXpRU2DuGJkPGK1SpS2GWhwW22vBQuHkzRdo92DH0o64OX0bIdr+2iRc7CmH24vA7eXwYkGHS1y6vosVLdT3R3AJtjdPjouszq99PdRSMUIVkhhd/sQLJdQoblCKsaw2BCcbh6ERilFWlRgjLxkRBy6DA7IpGLM46UZLx2TgLpeC/l78R7QS0bGobTNQAwS2ZFICOOwCekRuH92JjVI+L+XViXDljVjsbeqF9EaBR3/AMAnN4/H9+faIROLBQX8i9fkY2xKGCxODxaPCHSSl49LRGJYENr1doxLDafi9NzYEBzlROsZ0WqqbVFISahnTbcZEcEK+vUAuWfdPzsLYpGIFvwAGcFdMTIeHp8Qm5Ado8GBjcIEdoBEFLzDy3oifx+SIXXHtHRBEdNvdgIichi4FMTqv09dGvr4v21dHlf9C+2uzQfqCYRSJsaTS4bRB8fx+gG89nst7G6yaf0fvg69HS/vvohukwMzc6Lx4JwsSMQiuL0M3jncQDo5cRqsn5NNW7n7qntxoIacyO6cnk7HNi06G3aUdkAukWDVhCRqUXS4ffi1ohsWlxcLh8fSVFSWZXGmWY8uowMTeJsWIMmlF3vMyIhSC2zVLq8P9b1WRKjlAmwCQDaRRCwSWNEB0kr2+Ngh47R/ddlcXsil4iEbsNvogEgEgeMFICM/s8OD4QlawX/T0GdB66AdIxO1NDQLIA+V8g4jMqLUAvxC04AV+6v7EKaS4ZrRCbQr0aG347vidrAsEQH637d+sxMfHGuC0U5Cs/zdOrPTg03769E0QLQw98zMgFQihtPjw2u/1+JM8yDSo4Lx3JX59G/2xv46/FjaiZAgGZ69MoBN+OJUC97YXw8fy+K+2Zn0QbznQg8e/qECdrcPM3Oi8NnNBJtQ3mHEmk/PwuL0IjZEiR3rCpEYpkKPyYHFbwWwCR+tGYs5w8iYaMbrR2mxzE9rvuPLcxQQWpCoxU6OKv7qnosUmyCXiHH+mXkIVkixs7xL4CjZeuckFGYQrdj8zcfpdX8IHMuyyH92Hz398l0ufJt6emQwDnMdG74YVy4R49xTc6ENElrFRSKCBhjLRf3PeSPAdfv78gI6QuCP/+6ZmUGZa/zX4AdaHqsfwP3flcHs9KIwPQJf3DYeCqkEPSYH7v66lHZyPlw9FrFaJdxeAqE8Wk8iJv66bCQt4naUduLr061QyiTYOC+bPoSqukx470gjxSb4xzMmhwdbjjVRq7i/m8ayLH4p78KFThIWumxMIAeqqsuEY/UDiA1R4upR8bTANtk9OHixD0qZBHOGRdPPOcOwKG7Vw+H2oTAjYkiCMcEmhAi0LU6PD31mJ6I1SsF+Z1kWVpcXSpnkv/UgZRgWTq8PQTKJYKTm9jLotzgRqRYmvru8vj9kMnl8DIq5sL3xqeECbMLh2n6YnV7Myomi9zC/9d7fQeHT2/dW9eJ8O+mgXDcmkXZdjtT147cKDpswPZ1GbZxtHqQJ7HdOS6ffq6bbjL/tq4XJ4cHSMYnUPNKht+OxnyrRqiNoj5evHQ6VnEBO79tahnOtemREqfHOqtFIj1KDZVnc9XUp9tf0QSWX4G/XjaSfi2d3VlGB+G1T0ig8+LOTLXjhN1Ko58RosPuBqUMs/v8J6//auOq5557D888/L7iWk5OD2lrSwXA6nXjooYfw/fffw+VyYcGCBXj//fcRExOo+Nvb27Fu3TocOXIEarUaN998M1599VVIpYEf9+jRo9i4cSOqq6uRlJSEp556Crfccsu/+9cBAEH7m7/49m6AbCq7x4fEsCAB68Tp8aHTQG4SD/GYKU6PD6VtekSplViQH0udNS6vD0fr+iGTiDEpPYLyUTw+BnuremB1+TA7N5q6X3wMi53lXeg0OATprSzLYneln3WixvJxSbSIOVDTR7EJd80IwApPNerw+akWiEQi3D0jnY7syjuMeH1fLSxOL5aPS8KaSSmQSkgR9siOCrQNkpn2q0tHIkgugdHuxrpvylDSRjbtezeOoS6qO74kp+tLsQn+NFZAiDR4/2gjBYfmxmqw5wGCTdhX3UuTkfnYhNpeM6545yQ9jfq1MG4vgyvePkk5RbW9Fvoa931XhgrOwnmiYYCm6b6xv56mOP9S3oV6DpvwW0UPFfqdaNBhSmYkxqaEobHfSq/X9lowJTMSN05MgY9h8enJFtjdPnSbnPi1spv+nY7UDdBwuIM1fbTIaeq30uKgutsMD8NAIZbA4fZRzpHN5aWaH6lYDLVSCoPdA4VULDg1jkjQol1vh0IqFoi6Z+RE42yzHh6GoQRsAFg4PBZFTYPQWV1YPCKOJrhOy4rC1aPiUddrwejkUBQkkc9NZpQajy/KxclGHZLDVbiOc6iJRCJ8cvM47CjphEYpFXTlNq8chW/PtsHrYwVOrgfmZCElgjjxZudG04J/RnYUflw3GXWcq8n/mY0JUeLwQzNQ1m5EYlgQ7SABwPa7ClHVbUawXCL4vR9ekIM1hSlwexkkhgUK6hnZUSh7eh6cXgbB8sDDN04bRAtA/pJLxQLbN0Ae0mIRsd7z7fd6mxtuL4PhCVoqegaAPrMTfWYnsmM0tAgDyAOxvs+C7BgN15Uj17uNDurgmpIZQX/ffrMTv1X2QCmT4KpR8VjGvbbe5sYnJ5ph47AJ/vgHm8uLNw/Wc1qYKFxVEI/EMBVcXh827a8jHRTuMJYSQbp17x9txL6qXkRplHhicS4VxH57tg2fniDYhI3zsqmIdm9VD57dVQ2rk1jF/bDWsnYD7vq6FAMWF8Ykh+KL2yYgRElCO1duOY1ukxPhwXJ8ffsE5Mdr4fL6sOjNEzTt/OVrh9PO782fFaOIM3tcMyqehmO++FsNLQKiNQqcfYJgE74/10F1bCIRcGDDDGRGq1HaRlAO/iWTiHDt6EQ4PT4B/NTu9lItzBM/X6Bd/m6jk+JWPj/VgqNcB7Gqy0QBvUVNOqp7+/l8F9ZOT8ewuBB0mxw41agDw5K9Xt1tRnqUGl6GpZZzu9uHul4LruA+bv280MZ+izPwc0vFNIFd/k90W/8b1v/IuCo/Px8HDx4MvAivONmwYQN2796NH374gXCj7rsPS5cuxalTRGjl8/mwZMkSxMbGoqioCD09Pbjpppsgk8nwyiuvAABaWlqwZMkS3H333fj2229x6NAh3HHHHYiLi8OCBQv+Lb/Dl0Wt+ORkMxRSCR6en4OFw8mm3VXRjRd+rYHD7cVNk1PpWOlM8yDWfVMKg92D0cmh+Pr2iVBzrJPrPixCv8WFUJUM39w+EcMTtLC7vZi/OYBNeG3pCApoW/NpMYq5Ey7/lPnMzipsLR6KTfj6dCue41rsIhFwlGOdlLYZcO93AaeJQibGtaMTYXF6cOdXJfS628dQLczTO6tovoPO6qIuly9OtdDN2dBnxeqJyRCJyKb1h6rtrOjGfbOzkBlNsAlnWwYpNsEP3vT4GFzoCmATGvqsWEhMCDDZA9gEv7sJAILlUrppNUoptYrHhigRESzHoM2N5HAVFXvHhigxLiUMJW0GZEQF05O1TCLCTYUp+KWcaGEWDecjCrLwwdFGsIAgs+jumRlweHwUgOk/sS4dk4BesxPNA1ZMSAvHaC5RdniCFh+uHoPiFgNSI1VYyQmjJWIRfr1/KvZW9SJUJcPS0YGH3werx+BATR98DEvTW8nPlInJmZEYtLowMT2Cit8JNmE22vV2ZEWrqdMkSqPAoY0z0W10IOJSbMKNY/Ca0wO5VCywkK+ZlILVXFuffzMcnRxGhccAKZgdbh/CVDIBzNTHsOg2OhCqkuGuGRl0dODHJgQrpJicEYnJGUSPwjAsilv08PgYjE8NpwU8y7I41ahDv8WJwvRIKigHSHeltseMkYlE5OsXABc16XCsfgCJoUFYOT6Z7tHSNgO2n+tAkFyC26em0bTfmm4zPjjWBBfXQfFrajr0dryy5yJ6TE7MHRaNe2ZmQq0gQWyP/niBC9sLwV+XjUSoSg63l8FDP1Tg8EWSC/PGigA24flfq/FFEcmTeuqKPHqCf/9oI17fRxhcS0bGUQjo7soePPD9efgYwqja88A0aFUylHcYsfzDIopN2HZXIcamhMFod2PepmPUJXYpNsE/wj5W348ta/xaGB424VwHSnlWcT94dUdpJ0YmaJEaGYzTTQFswrF6gk24siAeJoeHHjYAE9KjgimM9pMTLVTb8u3ZdlrkHKkdoNEQuyq68cRiwhhrG7TxRnkWWJxehChl3F4je9/i9MDKifNFEEHBdXUkYhF1mwFkHF7UNAixCLToAsgIx49NmJsXwCaQ7k0o2geJ8zM+NAAJXjEukTNIaDA1k3w+lDIJXl06Ar9yERP8pPU3VowKGCR4OIXHFw9DnFYJo8ODqwoC2ITlY5OglEnQorNhQlo45Z4NiwvBrvumoqzdgPRINdVvySRiHNg4A6ebdAhTyQVd6fduGIOKTiNJNuYV9msmpWBBXgxMDg/So9T/0ciGf2X9jxQ5UqkUsbGxQ66bTCZ8+umn+O677zB7NnlAf/755xg2bBjOnDmDSZMmYf/+/aipqcHBgwcRExODUaNG4cUXX8Sjjz6K5557DnK5HB9++CHS0tLwxhtvAACGDRuGkydPYvPmzf+wyHG5XHC5AtWv2Wz+06/9oqiV5sJsO9dOb6BHa/tphs2vFd20yGnX2+nmbOyzwu7yQq2QwuX1wcad0u2uwAn8UmyCitcezosLoe3X3LjA6bMwIxJ7q3phdXkFD8OpWVEYmxKGDr0dU7Mi6dgmP16LVROScb6daGGmczd1tUKKl64ZTpM6+UFsb/qxCSKRgIHyzJX5SI0MhtnhxTWjA/kOq8YnQ8OdwCamhSMzmtxkhsWF4Lf7p+F8hwEZUWp6elTKJDi4cTrONOsRoZZjHM+x8u4No3F3VwZEIgiwCTdPTsWSkXGwOr1IDlcJsQlPzIHNRW6Q/tZyqEqObXcVDglwFIlEeHzxMIGGxcvpEOblxQjeUzN3g02NUAlYSHqbG10GB9KiggWx6DqrC9XdZiSHqwQIBr3NjeP1AwgJkmJGdjS1M5scHvx4phMsy2LJyHiaH2JzEWyCzurGgvyAo8ftJaL1xn4rxqaEYeX4JMRw2ITPTragqEmHpHAV1s/NpqPIbefa8f25DmiUMjw8P5sG9O2t6sHmAw3wMgzumpFBE7nPNg/iEYpNiMXr1xVAIhahsd+KW78oRofegdxYDb66bQKiQ5Qw2T1YvqUI9X1WBMsl2MJhEwCSWuwvfh+Yk0Xfq7/sqMSPZURfMiEtHNu5zJ2PjjdTvZpGIcXJR2dDq5LhYE0f7uAV5NvvKsSEtHB0Guy44eOARsbi8tIO2NqvSmg2S4feTgXKr/5+kWphKjqNNE/qh5IOWgSUdxixfBx5b8s7jDh4kYjWu4wOrJ5kwrSsKJgcHuyr7oXby6BpwIazzYO0yDnTrAfLkoC2820GWuT0m11UtN5rCpy6/aGNPgBSiQjgPq6hQTIBNsEfkaCSS1GYEYlDtX2IUiswIiGUfq8V45Pw2clWKGVCu/bNk1PRb3HB5vLiRp4WZvnYRDQNWNFpcGBGdhQdAU3NjMRji3JxgdPC+DvMoSo5vrl9IvZVEy3MLVNS6ff6+vYJ+LmsC3KpWFCgvnBNPqZkRcLi9GDesEChce3oRGREqdGhd2B0cijtMAewCRakRgbT63LOvdeisyJUJRcks79w9XA8NC8HYjEEjjE/vuTS+0B6lHoINsHL6WX4Ya0sy0JndUEll2DVhGSs4g6hLMuiacAKEQiaZhTnogLImNxgd2NMcpiAdF7eYUSrzobRyaGCIMjKTiNKWg1IiwrGzOwo2pW72GPG71W9CFfJsGJ8IMCxacCKr7nu1OpJyXQ81mNy4J3DjdBbScTEkpFxglT7/83r367Jee655/D6669Dq9VCqVSisLAQr776KpKTk3H48GHMmTMHBoMBoaGh9L9JSUnB+vXrsWHDBjzzzDPYtWsXysvL6f/e0tKC9PR0lJWVYfTo0Zg+fTrGjBmDN998k37N559/jvXr18NkMv3Dn+3SURqAP5zpdRsdhHUiFeO6MYnUCeL0+LCvuhd2tw/z8mIEm62qy4ROAwmg43/AqAUzMlhw3Z+ZEaaS0dO4f1ldXkhEoj/UvPyzyPQ/s5gS1okLwQqpwOLOsizq+iyQctgE/3/DsiwudJlgcngwLiVc8LOcbzegddCG0UlDsQl+gfGsnGiBdmDPBZLvsGpCMp35N/RZ8PWZNohFpMviP4l16O14+1ADCdsbnUDziPQ2N17aXYPmARsmpoVj4/xsKKQSik0obtEjLTIYry0biQQOm/D8rzX4sbQTWpUML187gopo3z3cgLcOEScTH5vwY2knHvupEh4fiwmp4di6dhIkYhGKW/RY8+lZuLwMwlQy7Lx3KpIjVOjQ27H4rROw/AE2YdKrh2hbmY9N4JO9+diEF3+rwacniXNNIhah8tn5CFZIsb2kA4/sCKSu+hlJdb0WLHgzoIXxh8BdqoW5siCeihn5r50do8b+DUT8uPlAPWWl8bEJR+v6cQvXrpeKRdh53xTkx2vRb3FiwebjtLh/Z9Vo+nBd/clZymHis6H42IQbJibTAMGiRh0e+P48dFY35uRG44PVYyGXEmzC+m3nUddrwcjEUGxeOQrhwQSb8NrvtTha189hE4ZTcejvF3rwzdk2BMmkeGBOJi3uGvos+Oh4M5xeBqsnJlONjM3lxeenWtBjcmLOsGiqkWFZFvuq+1DDATD5RXBjvxWnGnWI1Soxb1gMLbBtLi+O1w9AKZNgWlYk1UKwLIvqbjMcHh9GJYUOsWjrrG6kRqoEXTavj4HJ4YH2D7AJl2ZA/dFiGBYMyw75b50eH8wODyLVQmu6zeVFh8GO+NAgGgvhv17eYUSkWkG7ogDRBR6rJ2P1aVlR1PHn8vqwt6oXZocH8/JiqQjX62PwY1knOvQOTM6MoN09lmXxY1kXHauTUTj5Xr9WdHMxDwo8MCeTavWO1Pbjk5PNEItEuGdmJh39lrYZ8MqeizA7PFg2NpF2ZRv7LdiwrQKtgzZMyYjEppUEm6C3uXHbF+dQ3mFESoQKH99EsAk+hsXqT87idPMgFFIx/r68gH62N24vpwJxPjbhvSOkWweQoNJDG2cQ8G1lN810kkvE2Lt+GtKj1KjvI3vX/wTetKIAS8ckkpHmc/voGPqmwkC47BXvnKDhq3yr+JM/X8C33KgfAGpfXPiHyJ3/pPV/TZMzceJEfPHFF8jJyUFPTw+ef/55TJs2DVVVVejt7YVcLhcUOAAQExOD3l5ykurt7RXoc/z/u/9/+0dfYzab4XA4EBQkFK361+OPP46NGzfS/99sNiMpKekPvzY+NIgC9RxuH7aXdMDu8mLB8FhaiXt8DL4vbqduoskZkRieQLAJ355tQ0WHETmxIbi5MIXeUH8+30kTMh+ck0VvzPure/HJyRZIRCJCd+ZiwM80D+JVDpuwcnwS7ppBsAkNfRZs2F6ONp0dkzMjsHnlKKjkUvSbnbj583O42GNGUngQPr9lAjKjiX191cdncK7VALlUjNevC2AT7vvuPHZfIC6xGycmU9fPpgP1lALMxybsqujGA1sDm3bfhulIiwxGVZcQm/D2qtG4qoBgE659/xR1dbQN2ima4b7vzqOOS0A+32GkD/u3DzXQULzDtX1YkL8IUokY+6p76Q2mvMOIRSPiMCopFC26ADah0+DAqQYdVown2ISfyjphcXlhcXlxpLafFjlnW/T0Z/KTygHSlfFf7zE7wLAsJCAnbn9oo0QsomMzlVyC6BAFLAOkoxTBpa6KxSLMyI7CjrJOaBRSjEsJtJqvGR2PFp0NDMtiGQ9dsHRMAqq7TRi0urFkZEALsyAvFucnGLhOTjhGcnqU7Bg1Xrg6H6cadUgKU2HlhIAW5ts7JuKX811QK6W4ZXKgK/f2qtHYUdoJr4/BUp5m5IE5WRgWR7AJM7ID2ISZOdH4/cFpHDZBSz+z0Roljj48C1XdJiSEBgmK3a9vn4CmARtUcolAzH7vrEysKUwBw7CCwn5yZiTOPTkXPkb4UI7VKvH92kDCMkAe8FKxCE9fkScIaTPa3SSbhYc6AEjB7PL6kBmtppZpgJyK+8wkv+q+2YEgyMZ+K2p7zciN1WDh8FjaxW0asOJEPcnOmpcXS7uW7YN2/FJOIiZWjEuir91rcuLzU0SHtXxcIi22DDY33j7cgB4jsYovH5dIsQkv/lZDOihxRJ8ToVaAYVj8dW8t7aCQ1FxyU99yrAmfnGyBXEKwCX5n3k9lnXj6lyrYPT6smhAoJk816nD316WwuLzIiwvBNg6b0DxgxXUfnobeRizU3905ESMTQ+H0+DB30zHqzORbxW/45AwNPxRiE2poptObBwPYhC9Pt+FFThD77pFGahU/12oQJK2HKGVYNjYRDrcP928NBD5KxKBamJd211AtjM3lxU9cZ2bbuXaUcgiUNw/WY+20dIjFIpxrNeBCFzkA76/pRa8pB+lRauisLlRx19sG7WgeINgEL0NSywHSlfPLCoBA2jIA8LIcEaVRQCYhMNM4rZLeK9Ij1TSBfXhCCO3KxWmVmJ0TjeIWPVIjg2k3UC4VY92MDDpWv2Z04P7wyIJcbDneBJYF1vL0bffMyoSPYTHIhYX+pxc4/5X1by9yFi1aRP89cuRITJw4ESkpKdi+ffufFh//Xy2FQgGFQvHPv/CS9eQvF+gD9P2jTdTy+SWPdfLekSZevoMOT/4cyHGI0ihwFTfT3rAtsJkV0gDr5K97a+mm9fgYWuRsP9dBBbHvHm7E2ukEm3Cu1UAr+oMX+9FndiEtUooBqwsNXNHQoXegw2BHZrQaPpZFt5HcqNxeBv3mwNhOKgmc5vgnzMSwIIpNSIsMpg/1jKhgumlHJGoRzj2skiNUmDssmtPCqKlORS4R4/7ZWfilvAsRwXKBGPOxxbk0vIsfi75+XjZkUjEMNjeuGR3AJiwbkwiby4umARsmpIWhgHvY58dr8fXtE3CuRY+0P8AmHLrYB22QDIt4JO+PbxqHY/UDYFlgZk5AQH7XjAzMzInGoM2F0UkBbMK41HCceXwOuk0E4uoX9kaoFdi/YQYGrS6EBMkEN5jXlxfgtWUjIb4Em7ByfLIgnRogJ+/8eK3goe72MjA6XIgIVghAey4vESFGaxS4qTCVZje5vD6cbiK23lFJobSd7fExOFzbB7eXxYzsAG3cxxCnyYDFiWlZUbQt7scm1PVaUJAYirl5MVQ/sL+6F8fqB5AQFoRbJ6fRz+qJhgFsL+lEsFyCdTMzaBFQ2mbAO4cb4PYyuKkwlRYNjf1WPLerGr1mJ+YOi8FfFuRAKhFTbMLFHg6bcP0oRKoVcHp8uPubUhytG0BMiALv3jCGWvz9UEKpWIQnlwzDrdwI9o39dbRQn5UThc9vJVZxPlCUj00oadVjxZbTYC7BJgxaXVj01gl6uuZ3p1Z9fIbGNhS3GPDJzUQL88zOKprR9FtlN84/Mx8AGYX78Qh7q3sxOZMkgp9pGaRdvOJWPSalR2DxiDiYncR1xbAkA2pXeTdyF5K/xfaSDqpt2VXeRYuc0jYD1e2caBign5t+i5OK3LuMDjg9DDRKonfzj279DD6AFPNxWiV6TE4opGJBlMTEtAhUdBghFYtpajYAzM6NxvH6AZi5wM4ANiEaR2r76aEwjtPCjEzU4rYpaQSAGa3GHC7mIUguwdurRuO3im5EqOUCftd7N47Bt2faIRGLBAnsT12Rh4woNUwOD64YGU87VdePT0KkWoG2QRsmpkXQjnF2jAb7NkxHRYcR6VFqWmj4sQmlbQZEBMsFYvZNKwpw7yxy2EznFfaECxYLu8uHmBAF/b3z4kNw8tFZ8PhY2u0CyGjt00sS2P1d+kvNLlaXFyzLDjG76KwumBwepEUECwjll1dg/Y/n5ISGhiI7OxuNjY2YN28e3G43jEajoJvT19dHNTyxsbEoLi4WfI++vj76v/n/r/8a/2tCQkL+RwqphfmxKG7Rc9iEQOdnXl4MjtYNoNNAtDD+E+v41HDcPjWN6+RoMIt7gGqDZHhz5SiqhVnHE7h+uHosvj3bDqlYRB9YAPDc1fnIiw+B2enFVTxswqoJSYjWKKgN0n+6zo/XYv+G6bjQZUJmtJomBZNNOx3n242IUMsFacRvrhyF9XOzIRGJBJbzleOTccXIeDg8PkQEy+lr58drcfLRWfAywuC2EKWMZoH4lx+b8MCcLDzAwyZYnGTEMSsnQFUGiNPE5PAgI0otYCF1GjhsQmyIICei02BHRYcJKREqQUBbl9GBwxf7EKqSY+HwWPqeDlhc+LGsk+ugJFK9gcnhwUfHm8nDbEQcpyHSwOH24e/76riwvTDcNiUNw1Qh8PoYvHWwAaeadEiNUOHRhbl0FLnlWBN2lAawCX5dzY+lndh0oB5ehsE9MzPpzflEwwA2bq/AoJVoYd6+fjSkErEAm5ASocLWOychPjQIepsbV717Ep0GB+RSMbasDmATrnrnFO2M3Tsrgwp7139fTrt1fGzC+0ca8QaX6aSUiXH28bnQqmRDsAl+q3iH3o61XwccKCwbwCas+6aM2riNdg91GL55sJ5qYVp1Nlrk/FrRTUdaTQNW3DY1FdEaJWp6AtiEk406NPRZEalWwOryUkF+n9mF6i4TLXIauNBGL8OilRPA+v//P/p3WLAcSpkYTg+DaO4EDhCnVmpEMJp1NqRGBLAJIUEyLB4ei4MX+xETosBkXsrx2unp+KKIWMVvmBi4P6ybmQGXl4Hd7RVkQN1UmAK9zY0eLmLCH/8wIysKL1ydT8NC53PjsVCVHD/cPRkHL/YhRqOgBgUA2Lp2EnZX9kAuFQvylZ6/Kh9zhkXD6vJhRlbgoUiwCVp0GZ0YmaCloXWZ0WqcfGw2WnU2JIWp6HWZRIwf101Gn9kFtVI45n5sUS4emp8NESDovl2qbwPIwzslIhjf3DGRXmO4BHa1Qkrtz/7rrTobQoJkgtwohmFR0UGwCcMTQmg3mGVZnG0ehMnhQWGGEJtQ1KRDq86Ocalhgp+pqElHtDCRwbhiZBxNvy5t0+O3yh5EBMuxpjCVdn2ruky0ML11SiotepoHrNh0oB5Gbqy+bGwiQpQy9FuceG5XNZoHiMD4icXDoJSRsfojOypxpnkQqRHBeH15AdK4nKlHf6zkgLVyvLp0BP15SUe9gXZv/GLvrcXteOqXKvgYFiMTtfj5nin/60XGf7T+x4scq9WKpqYmrFmzBmPHjoVMJsOhQ4ewbNkyAEBdXR3a29tRWEhOr4WFhXj55ZfR39+P6Gjy8Dtw4ABCQkKQl5dHv2bPnj2C1zlw4AD9Hv/uNT8/VsAVAf540/oYIlTTBsmGsE4a+y3QBpHWo7/96GNIuqpULMbwhBBqZ2YY4jQxOwg2wf9QJ9iEfnTo7ZiQFiHgrxyrH0Bpqx4ZXPCe/6RytnkQuy/0IEwlx21TAqfuig4jvixqhYhzBfhDxBr6LHhjfz2MDjeWjk7EivFJCOZizp/ZWY3WQRsK0yPw5JJhFJvwyI5KFLcQ8OSmFaOQFK4Cy7J4aHsFfiknlOnXlo2kBcVrv9diy3FCD183I5Bd8s2ZNjzNYRPy44nbQCIW4WhdP27/sgQ+hoVGKcWeBwg2oZXDJvgRBe/dMAZLRsbB62Ow6M3jMHPODL4WZt03pSjh2tl7LvTgt/vJTHvT/jpqN/3qTBtqnl+IILkEO8u7aJ7K71W9GJUUinGp4WgasGHzQVIcFLfokR2jwR3T0sEwLDYfrKccs++L22mR8/P5Lnri317SQYuc8+1Geho/0aCD08tALRHDYHdDbyPXe01OWkAwLAsPd+pmmMC/ASA+VIm6PgskHLjQv0Ynh+JATR+8DCOgjRdmRCDtfDD6zE7Mz4tBsIJ0ocalhmPusBjU9ZlRkBiK/IQQ7vsH4YE5WaSTE6oUtNI3rxyFbefaEayQ4v7ZgVP3y9eMwOdFLXB5Gazida/WzcxAqEqGXrMTs3OiKTJgVk40vrl9Iudq0lK9RaRagf0bpqO4RY84bRAmpQd+jx/XTUZxix7BComgq/DowlysHJcEh8eHHJ6FfF5eDEqemgeTw4O4ECU98SeFq3DooRlweIT5LTKJmFqT/ct/6r55cqqgm+Dy+uD1sRidHIYvuZBBgLgHdTYXksNV9AENkPFV04AVKRHBggOOH5sQHaLAmORQ+jky2T34taIbMokYC/JjadfK7vbi6zNtsDg9WDIijmqLXF4fPjnRTML2siIxZ1gMMqOJ7uTzUy0oazciO1qNtTPSMTIxFCzL4ruz7fi9ihzGNs7Lpgnsv1Z04+MTpPN6/+xM+hrH6wfw0u4aWJwEm/DgXHKgqe424d5vy9Cmt2NKRiQ+XEOwCf1mJ2785Cwa+q2I1ijwxa0TkBcfAo+PwbIPilDZScCar/GwCfd8W0axCXyr+Gt7a7Hl2FBswi/lXbRzLhWLsG/DdGREqVHdbRKI1h0eH1aMS4LL68OKLWdoF6vH5KSj+0d2VKKGwybU9JjxO6eF+eBoE37jAmGLmnQ0q+jQxX7suUB+1tpeC6W8dxkc2H2hByyXtH62eRBpkcHwMSwO1PTB4yPPkLPNg7TIqe+10BGZP0kaIDIK/89q4zo9VLl+edH1by9yHn74YVx55ZVISUlBd3c3nn32WUgkEqxatQparRa33347Nm7ciPDwcISEhOD+++9HYWEhJk0iYLT58+cjLy8Pa9aswd/+9jf09vbiqaeewr333ktHTXfffTfeffddPPLII7jttttw+PBhbN++Hbt37/53/zpDVmWnEfd+V8bdMKLw4eoxUMlJEbCKwyZEaRT4+vYJyI0NgdvL4Or3TuFiD2GdvLp0BHWz3PlVCUUR/Bk2IV6rxMlHZ0MsFmHbuQ5KJpaKRTj00AykRAQPwSawLHDNaMI6WfXxGco6GbS56Ez74R8q6Om3sd9CM0A+Ot5MbyTnWg1YOiaB27R91GnS2G/FjZOSkRsbgna9nTpTBm1unGvVIylcBR/DUmyCwe5BWZuBFjmN/YFN64c1AqRd7r/u8QWwCRqlFCq5BBanF6EqGRRcy1cbJENOrAaVnSbEhCgoNkEiFuHqUQn4+XwXQlUyehoDgJsmp8Lo8IBhWYFO5cZJKegwODBodWHJyDgoOTTDFQXxaBqworHfinGp4bSdnR2jxhvLC1DU5McmkJM6xSZUEmzCKl7q6ns3jMGuii74GBZX8E7d983KREFSKPrNZGTkPy1PyYzEkYdnollnw7DYodiExn4rYkOUtIMkEonw2S3j0Wd2IUguofkyAIl6v3lyKlguO8O/xqWG/yE2IUqjoGMXgDzQSXo2CbbbyMMmdOjtUMokghO8H5vg9PgwMjGUFpkA2UO9JifGpYbTBzRACm8StheCqVmR1KnlxybEaYNw9ah4ih2p67Xgx7JOKGUSrJ6UTNv4HXo7PjpOcCvXT0ii3Z4+sxOv76tDr8mJWbnRuG1KKtQKgk148bcaXOgyY1ichmATgmTw+hg8vbMKhzir+CvXjqAn+E376/DRCRIx8eTiYTTnZ2txO57dVQ23lxHwiwTYhMhg/HwvwSbU91lw7XunYPsn2AQ/ewwgWhh/WvG8vBiKTXhmZzVNRt5yrBnlz8wjWpiiVopH+KKoFUcenom0yGCcbRmk6c4AKWCXjU2E2emleBYACA2S007L24ca6H3jw6PNtMjZVdFN9/Jnp1rwwJxMmsDut7UXtwixCf5wygGrC30WJ/IQAoZlYebiI7wMS52pABDOI4yHBwfGZjkxGtqVK0jS0rF6XpwWmdFqOqLyYxNSOTyE/2BWyOklFVIJHluYi1/KuxAeLBd0356/Oh8fc+GY/KynvyzIQUiQDAabG1fzxurLxybCy4E8J6aF00ynrBgNdtxdiLMteqRGBNMYC6lEjH3rp+No3QBCVTLMzg10t9+9YTSKW/TwsSx1qQIkgX3OsGjobW7kx2v/IwP//h3r317kdHZ2YtWqVRgcHERUVBSmTp2KM2fOICqK3IA2b94MsViMZcuWCcIA/UsikeC3337DunXrUFhYiODgYNx888144YUX6NekpaVh9+7d2LBhA9566y0kJibik08++bdl5PyjVdVlptbyM82DMNo5bILTQ62hg1YX9FZiYWXBwuUJsE78M30AiORt2kgeGDM/XguVXAK724fxaeH0lFmQFIqsaDWZaWdEUmdXVowGV48KYBP4du0nl+RhV0U3ab9OSqWv8eI1wyk2gT/++cvCHIQFy2HkcmH8G2fVhGSIxSKKTfCPu/Ljtfjhbj82IZi22KWcIPlY3QDC/wCbcLZFDxEgyH24ZUoa5nLYhJxYPjYhHMVPzIXO6kKsVklHZGHBcuy8dwocHh+UUgl9n0QiEV68ZrjgtOxfl2ITPD4SfZ8doxFgE2wuL/rMTsSHBtEAM4DMxus6jYjTkgeCP3DN7vbicG0fQpQyjE0Jo2NCh9uHneVd8PhIBo4fSOn2Mthe0gGd1YU5uTG0EPMxLLYWt6Oul2ATrh4VT4PYfiztxPGGASSGBeHuGRkCS/i2cx0I5rAJfqTFyQYd3jxYD7ePwa1TUmlS94VOkwCb8PQVeZCIRegyOrDumwA24YMbxyA6RIhNCFXJ8OHqsfQzdudXJTh4sR8iERFF+rU+L/xWQ9v7k9LDqc7oy6JWPLurGgAQqpLh2MOzoFXJcLppEKs+PkPfZz82odfkHIJN8L/Gmk/PUudadZeJ6hue/7Wapjgfru2jWphvz7bTIuBko44mhZe2GbC9hFy/2GPG/DwiNjY6AtiEfosLR2r7aZGzr7oPTg8Dp4cw0PxFTi3HwwKITd2/nB6Gdtxs7gA2QS4RQ6WQwuYmnSN/ca2QipEfH4JTjYMIUUqRzsMmLMiPRavOBplULHgYXlUQj8pOI+2m+LtQS0bGo6zNiA6DHdOyomj44biUcDwwOxPnO4zIjFZjAffA1QbJ8OHqMfi9qhdRagV9vwGiY9tW0gGJSCTAJrxwdT4KkkJpF8n/2teNTURiGHEgjkkJo+PwzGgNjjw8E1VdJG8nM1rD/d4S7F0/HdXdZkQEywVi9leuHYEHZmdBLILApbp0DMEmuH2MYJyWE6vBwT/AJgQrpIJYCPL38UHKIWT4RYzOSqz/41PDBYiX9kE7DHY38uJDBF37Fp0NLTor8uO1ND4AIGOtsnYj0iJVAi5i26AN+6v7EBIkxdWjEujnqNvowLZzHWBZEpQ5mevAD1pd+Og4iZi4YmQcZuVGU9Dp5fXH6zLW4V+woPEXy7I43TSITg6bwN+EPSaCTUiPFGIT3F4GF3vMQ+LIATKGEIshoPsCpKvhZdj/tkre6vJCLhELTu3+1xOJIEAgAEQrYXJ4kBcfItDZ1PdZ0KqzYWRiqIDH0tBnQVm7AakRwQJmSmO/FftrehGmkuNaHjah02DHVg6bcP14HjbB4sRHx5qht7txVUE8ZXP5sQmkgxKGe2dlQiYRw+1l8Pq+WpxqHERqpArPXplPf5fNB+qpFuaZK/Pog/jr0634GxfEdu+sTHrT3lvVg4e2V8Dm9mFWThQ+/QNsQkyIAjvunoykcBX6LU4sfuskdFYXJGIR3r9xDBbkx4JlWcz6+1F6YhViE0poB4xP9n7t91p8eIyM7ORSMcqenge1QipwrgHAd3dOxOSMSLTqbJj596P0+sPzs6kjKP+ZvVRkumh4LE3TXfPpWaqFSQwLwslHSTYVH2kgk4hQ8uQ8aFUyHK8fwE28jqDfpt5vcWLO349Rwerr142kWSh8bMJdM9Lx+CLye791sIGO8/jOm6N1/bh/63lYnF5MSAvHV7dNgFImQbfRgbsoNiEEW9aMRZw2iEIoj9QOIC5UiVeXjqAF9g8lHfjqdBuCOCinf6xV3W3CO4caYecAmH4NkMnhwYfHmtBjdGBWbjR1F7Isi5/KunCBA2BeNzYQ5+/HJsRplbiqQIhN2F/TC4VMgvl5MQJswllOvzc5M0KQOt1ldKDX5ERurGYINqHb6ECsVin4epZlYXP7oJSK/1undH+UxKX3ELeXQZ/ZiSiNEJvg9jKo77MgLFhOdUJAAJsgEhGxMR+bcLRuAGanBzOyhdiE/TV9aBu0YUJaBO1+AgSbUNqmR2a0GsvHJtH3+Vj9AH6r6Ea4Wo6109Lp9ypt0+Ozk60ASOfCP7Kr7jbhb3vrYHR4sGxMAh3zdRkdeOzHShK2lxqOly7BJpDujRrv3jAaGRw24Z5vy/B7VS+C5RL87boCGlfBp4ffXJiC5zkbNx+bkBWtxu8PToNUIsaRun7c9sU5sCzRt/12/zRkRqvRPGDFgjePU8em33XKMCwKXtgPCzdW50cq8PcV3yr+zM4qfMWN1QHg4gsL/9tonf/X12UK+f/QEolEtKoGSCZHaZsBWTFk0/pzHPzYhAi1HHfPyEABt9FPN3GsE5EIa2ekU/3AhU4T/rq3lmphbpuaBqmEVPqP7Kik2ISXrx2BILkEJrsH935XhuJWPdIjg/8Um/D35QXU0vr0L1UUSsjHJmw51kSD2P4RNuH3B6chNTIYjf1WLHrrBBVyvnX9KFw9KgEeH4Mr3+FhE3rM9MZw33fnaTz50boBumk37a/H9+dIivPP57tQ9+IiyKVi7K4MYBNONuowLSsSY1PCOYIzGeXV9JgxgSNF+xgWH3NE+C6jAzvLu2iRc/BiP72R7KvupUVOQ5+VFgcXugLYBJfHBxenqbG7fPQELhWLqaVbJhFRWKFIJEJefAhaB+2QS8VUxAgAs3KjUNwyCO8lacbz82NwomEAAxYOm+Ane2dG4trRCajlOjn+B0RyuApPLM7F8XodEriEX//66KZx+KGkA2qlVOBQ+/vyAnxzpg1uL4Pl44RW8WSuaJuVG00zoKZnR+HHdYXU1eT/zEZrlDj08AycbzciIXQoNqGyy4RguVSQofLg3CysmpgEl0eITZiZE42yp+fB7vYhRCmlJ/740CD8ev/UIRlQMolY4CoDiMZEIhJh+bgkQfCc0U6wCfnxWgFWpdcUwCY8ysMmdBsdqOuzIDNKLejK9ZgcOM1hEwozeNgEixO/VfRAJhXj6lHx9LUNNjeH7PDimlEJtNiyu714+1ADOrkOypUF8UgIDYLby2DzgXpUdhqRGxeCB+dkUU7RlmNNpIOiUeDxRQFswvfF7fiIcyFumJeNxdye3lfdi+c4bMKqiclUlFreYcRdX5egz+zC2JQwfH7r+CHYhDCVDF9zCewurw+L3zpBHZ58bMLtX5bgeD1xaPGL6Jd2X6R7NFqjwJnH50AsFmF7SQce/ZGMu8QiYP+G6ciM1qC0zXAJNkGMpWMINoE/brc6vVQL89Qv1bjIaWFadDZ63/iyqBXHuJ+ppptgE6QSMU416Ghh32nowu3T0pAfr0WPOYBNuNhDsAn++6Xfcm5z+1DTY6JFTg8vtLGb92+FLIBNUPJ0W1FqBSKC5dBZ3YjXBiFEybkvgxUYnRSG4lY9ksNVyOJch2KxCKsnpeCHkk5og6SCBPa10zPw3pFGMCwrSGC/bUoaDHYPHav/by1w/ivrcpHzf7BK2/RY920Am+DftFaXV4BN8PhYWlA89UuAddJrDrBOvj7TSp0m9b21uHlyKiRiEU426ijE8KfzXbhnVgYyozXoMTtQ1KSj2IQabtN6GQZV3TxsQr8VflO/nkuBvfTfSpmEblqVXEJn2nFaJSLVCuru0XCbNkqjwPjUcJxtIQ4B/8laytk5f+G0MIt5WSX3zMzA+0ebCDaB1w5eOz0dVpcXBrsbV49KoJ2na0cnoN/sQtMA6eSMTiLFYE6sBlvWjMXppkEkh6twA3cjlohF2HXfVPx+oQehKhl9YAEEm7Cvuhc+hhQX/nXf7ExMyojAoNWNSenhNIhtYnoETj46C+16Yr/357mEB8txcOMMdBrsiFArBJqX928cC5ODMKP4p+MbJ6bgxokpQx7eY5LDKB8L8J+6fQhVybCZl6DqY1h0GuwIU8mxdnoGjfBnGBY13WYEKySYkhlJBeUMw6K0TQ+Xl2AT/Kw0Pzah1+REYUaEgBVV1KhDdbcZ+QkhmJwRSVvpRY0EmxAfGoTrJyRRTdX5djLeCZJJcNvUVFqo1/aa8cHRJrg8DFZPSqGaGj+wtsfsxJzcaNw3KxPaIBmMdjee+PkC7aC8unQkwoMJNuEvOypw+GI/YrRKvLG8gBZcfmyCTCLGU0uG0RP8lmNN+OveWjD/AJsQr1Viz4PTEKqSo7rbhGvfL4Lby0AiFuG7OyZiYnoETHYP5m06TkXefGzCjR+fpXqUI7X9dLz51C9V1Lm2tbgDZRw24cuiNmzinGvbSzqRHx+C9Cg1TjcP0tDFI3UDGBYXgqsK4mF2eOlhAyDZVP5R6WenWii36ZszbXRvHb7YTx/GP5V14fFFuRCJRGjRWSlOobrbBLPDgxClDE6PD0ZO82J1eanmRQQR7eCKRYBMHOgcZUercbx+AGIRBPyvCWnh+Pl8FyxOD2blRNOuzLjUcBQkhaJ90IZJ6RH04DcsToPrxyfRsbr/86GUSfDKtSOws7wLEWq5AI/w2tIR+PwUOdTwE9gfXzQMsdogmOxuXMUDk143NhFyqRjNA1aMTwunY+PcWGJkON9uQHqUmu4XqUSMAxtm4FSTDqEqGSalBbrSb60chVunEB3baF436saJKZiXFwOzw4u0yGDa2RqeoMXpx+fA5PAgTCWn17UqGbbfXfiHAY6PLswVFN4Mw4IFBPlMABl7W11epESohhDKL69/vC6Pq/6L4yr+sru9eOHXGpRx2ITnrxqOKI0CLMtia3EH9lzoQaRajofm59AxVUWHEV+ebqXYBH/2iNHuxlen2yjt2n+CZxgWv1Z2c1qYCIGGpbrbhLJ2IzIigwXdJZPdgzMtg4gIlmNsShh9uDIMSTD2WzD5D91+ixMWpxdpEcGCFFSvj4HN5YNGKRVcB/558rL/v2eBIZRiq8sLKzcO4n8Po92NToMDaZHBgpa+P7QrOVwl4NMYbG4cbxhASJAM07Oi6E3E7PRgV3k3fAyLJSPjqH7J7vZia3EHBq0uzM+Ppe+z18fgy9NtqO+1YFRyKK4fnwSRSASGYfFFUSsJ2wtXYcPcbNr5+KGkA9vOkQ7KQ/NyqLhwX3Uv3jzYAB/D4M5p6fTEf65Vj0d2EGzCgvxY/O26kZCIRWjV2XDbF+fQrLMhJ0aDL24bjzhtEEx2D677sAgN/Vao5BJsWTOWWuT5BG8+NuGRHRVUXzIxLRzbKDahiYpP1QopTnHYBD7ZGwC+u2MiJmdGosvowJTXDtPr/FyYcS8dgI7TnM3OjaYPe/54LFqjoHlSmw7U423uoQ4AZ5+Yg5gQ5ZDx2Kc3j8OcYTHQWV2Y/Nphqm15dGFA67Pk7RNUdMsX9j63q5p2FUYlhdLDw/5qYoV3+xikRKiw676p0AaRjsaqj8+g00CwCd/eMRFZMRq4vQzWfVOKQ7X9iFQr8Pb1o+je+uREMz4+0QyZRIy/LMih467TTYP4275agk2YmEKdVv1mJ179vZZ2cu6dlQmJWASvj8HHJ1pQ2UkiJtbNzKAF9vH6AS70T4lbp6bS5OFuowM/n++CVCzCdWMT6TiHpgs7vZifFyMYQ5d3GNGut2NMcih1RwFkL9X3WZAWGUwLEIDsgWadDaEq2ZDxudnpgQhCbAJA7gEsiyH3hkvXHz3gCTbBDZVcItjrLMuibdAOkQhD9CY13WYY7W6MTg4TdDEqO41o0ZEEdn4MRlWXCSWtJGxvRnYUvdfU9pqxp7IHIUEyXD8hmWp5WnQ2fH26DSxY3DgxhWY99ZqceO9IIwZtLlw5Mp52x412N17ZcxHNAzaMSw3HxnnZkEvFcHp8eGl3DTEmcG46/9/g1d8vYtu5DoQoZXj+qnzM4nRVn5xo5sbqLO6dlYn1c8me3nOhBxu3l8PpYTAhLRzf3jHxv0V9/09bl8dV/x8slVwqCGAi2AQnguVS3DAxmQrzWJZYyAERRiZqsWnFKHq9isMmjE0JE+TIlLUbONZJmIB1UtZuQFmbARnRaszMjqInlepuEwd/lOP68Uk8J5MVX59uBQsCbvOfiDsNdrxzqBEGuxvXjk7AohFxiNYQYdvLey6SsL3UMDy8IAdalQwOtw/P7KxCcSvBJrx87Qg6t3/h1xr8WEa0MC9eM5yKaD881kQj/O+dmUFZLj+f78SjOy7A7SObduudBJtQ0qrH6k/PwulhEB4sxy/3TEFyhAqdBjsWvXmCakI+XD0WC4cTLcyit06g10xOsnyr+H3fnact9q3F7di7fjoAMh77hAtc23K8GRXPzodaIcVvlT00jXVbSQdSIlSYnBGJxgErnb8DxKK9dnoGWJbFc7uq6bgrWCGl3YMvi1ppi33L8WZa5Jxs0FGI4e4L3Xj2qjyEKGXoMjrQwqWrNg6QE3icNghuH0MZTHa3jzptAGGAo5T38EgOV9GuXBpPFzY8QYsojQIDFhcmpQcQHcNiNShMj0ANB6H0n9RjNArcOS0NR+pIJ4fflXv+quH45kwbguQSwWf26Svy8OGxJri8DG7kiVLvmp4OhVSMHpMDs3Oj6YN4WlYkPlw9FtXdpJPjF9FGqhXY88BUnGjQIU6rxPy8wIn2h7sLcbx+AAqZBNN4hf2zV+Zh2ZhE2N1ejOHx0Obnx+LME3Ogs7qQGhFMO4VJ4SocfXgm9HY3wlRy+tCQS8X49Jbx8PoYLtU68N7eMS1dINJnWRYMS2z4fBaSy+uD2eFFpFoh6MrZXF606+2CNHXyt/WiqEmHKLVCEPbmR8jIJCJaJPm//y/nu2B2ejAvL4beH3wMix2lnbSDMjkzEqOSiCX8h5IO7jCmwU2FKRSpsOdCDwVP3j87IFo/WtePT0+2QCwS4e4ZGUOwCSaHB0vHJOCemZkQiYimb/22crQOEi3MppWjoFZIYbC5ccdXJShtI5k0H60Zi6wYDRiGxc2fF+NEgw5yqRivLR1BXXOP7KikaeerJiTj1aVkdMXHJiSFB+HIQzMhlYix50IP7uE66nKpGHsfJNiEhj4Lrnr3JHWX+rEJPobFNe+dojEPjf1Weh9/8PvzqOTCV88066lV/N0jDfjmTDv3nvVSLczeql56qChpM2BeHuHNtevt9OubB2w4XNuPmwpTwbIstp/rgNHugZHTdfmLnNNNg7SwP9Woo0VONxfaCBD5gtfH4nKg8b++Lhc5/6blY1is+vgMilv0Q7AJG7dX4OfzJDF55bgk/PU6sqHePNhA29ZpkcE4tHEGxGIRfq3opnHmcokYv6+fRvMdln1QRG3Wfi2M28vg2veK4Oa0I606G3UWrd92niYjn2s10E379qEGujkPXOxD/UuLCPG2po+mO1d0GLF4RBxGJ4ehRWejN562QTtO1A/g+gnJ8DEsfijtgMXphcnhweGLfbTIKWkNYBP8XQeAwAr9P2uXwSE45Yn+IOdBJZciVquEpd8KbZAMURoyPhKJRJiWFYkdZZ1Qy6WCfJRrRsWjqd8Kj4+hln2AWOsvdJmgs7qwZEQcgrmH/azcaKyakIz6PqKF8X+vrGg1XrxmOE416JAcoaJBbCKRCF/fMRE/lXVCo5ThVh6s8K3rR2N7SQe8PhbLxgYK1AfmZCEnVoN+sxMzcqLpKX1KZiT2PDAN9X0W5MeHUKdJlIZYxau7TYjXXoJNuG0imgasUCmkApHofbOzsKYwFT6GpfHxADA5IxLFT8wBw0Jwoo4OUWLr2kmC95vh0ApPLsnDk0sC1w02N6QSEZaMjKO6BcCfnOtDVrSaFvAAuSF3G50YnhAiSKtt7LegpseCYZdgE1p0NpxoGEBMCOFB+d+HtkEbfjnfTbEJ/lTmPrMTXxS1wu7yYtnYADbB5PDgvSN16DTYMT0rCivHJyE8WE6xCZWdRuTGhuDRRbmI1hDI6d/31WEvh0149sp8qi/yd2/kUjH+siCATdhZ3oWnfqmCzeXF9TxswtnmQaz9uhQmhwe5sRpsW1sIrUqGFp0NS98/BYPdg2C5BN/eOQmjkgg2Yd6m4zQ/6dkr86itfvUnZ2mm0z/CJpRy2ITvitvx9C8kaf3tw404sGE6smI0KGkz4C887pk2SIbrxhItzD28cTsAqoV5afdFNHKjObPTQ4u4H0o6qIblrYMNuGt6BjmgtBmo5u7AxT50GRzIidVgwOpCBXe9RWdDY7+VFDksSwt+t5dBFw+bIAhw5GVAxYQoaQJ7YqiKYhNSIlSI1yrRbXJiWFwIwrjxcqxWiRnZUShu0SMlIph+PkjGTxY1KfAT2B+an4MPjzYN0cLcPSMDbi+DQQ6A6T8kLB2TCJPDw43VwzEmmbxGdowGX942Aae5iInl3GuIRCL89sA07K/uRYhSJthH7904Bkfr+uFjiJbPv+6Ylo7CjAjorG6MSQ69rMP5L67LRc6/aXkZBp1c7oPbywhIw/yJDm/UjTitkrJOksJV9Osyo9VIDAtCp8GBkYlaRHKZEIlhKszKica5Vj0yeBHkcqkY987KxM7yLoQFy7GUx0J6dGEuPjreDJYV5js8MCcLErEIehvp5PhPssvGEk1RM+dO8L9GXnwIvryNwyZEBuNaLgROIhbh9wen4WANSRdeNCJw6n7vxjE4Xq+Dj2GHYBNm5ERh0Epovf7T9bjUcJx+fDa6jA6kRgTGVeHBcuxdPx2DNhK0yIcYvr68AK8uHTHk1L10TCI9GQKBtvrwBC0d4QDEOWJykNO8/8To/xs29lsQqVZgzaQUagd1e4nTRCWXYDSvGPL4GByp64fHywhO3QSb0IM+swvTs6NoR4RlWey50MMJjLWYnRvAJhy62IejdQSbcMvkVHrqLmrU4bvidqjkEtw9I4N2Xc63G/Du4Ua4vAxuKkyhwZV+bEKPyYG5w2LwyMJcSMQi9JudWL+tnIbtbV4ZwCbc820ZjtT1IzZEibdXjaa22b/8UIEfSjshEYvwyIIcmirLH0XxR1e/nO/C+m3lAEhn5sCG6QgLlqO0TY/lHwawCd+vJVRxg82NhbxgR/547IaPz9Ii4FyrnqZqP7OzCvuqiXNtZ0U3yjmr+Ddn2qgrZs+FXkxMj6C5MH5swrlWAyalR2DJyDhYnF68f7QRDEves5/Pd+GxRUQnsbW4nWpbdp4PYBOKW/RUzH6sboCObvstJGYfIMWfw+ODFjLa9QFIl41hA9iE6BAFuowkvZpfmI5NDUNZuwESsYhq0gBgjh+b4PRgKQ+bMDM7ClMzI9GmJ4Gd/hH5iAQtbp9KsAmZUWrM5bAJSpkEb10/Cr9WkITfe3iF6DurRuObM22QXJLA/uSSYciIUsPocGPJiHhaMC8bkwBtkAytOhvGpYbRIjE7RoO966ehvINYxf37RSoRY/+G6ShpNSA8WI78+MC4YdOKAqybmQERQMdFANHbLMiPgd3tQ7QmMObOj9fi1GOzhzjJNEoZxXhcuu6dlSkovO1uL1gWmJEdJcjVMtjcMDk8SApXCQjlvSYn2gYJ5+ouXjHUZ3bifLsBiWEqwffqtzhxpLYfIUoZ5ubF0EJWb3PjmzNt8DIsrhmVQAt4i9OD9440Qmd1YWF+rMDBenn919ZlTc7/gSbn0mVzeVHW7t+0AQcKy7Jo1tkgFokEIwSAfJgdHh+i1Ioh+havj/mn1tE/08WYOWxCyCUz9AGLCyaHG2mRasGJvsfkQNugHTkxGhrpDpCxVnmHEakRwQJXTa/JiUNcLsyC/FhaqOisLvxU1gmGJeJh/2jC5PDgi1OtGLSRbBb/g9vp8eH9o01o6ifYhFsmp0LM6RbeO9KEU42kg/LYolyqq/n8VAvRwiikeHRRLn0Q/3y+E2/sr4ePYbFuZga9OZ9oGMCGbRUYtLmwIC8W795AsAm1vWbc9Gkx+i0upEao8B2HTTDY3Lj6vVNo19sF2AQAuPKdkxT0x7dM37/1PH6t6AYgxCa8e7gBf99PxKcKqRhnn5iDUJUce6t6BU4TPjZh2t+O0Ov8h/3oF/ZT4vefaWFiQ5Q488QcAASn8OZBUoCIREQLE61RCqjiQMCmrrO6MO2vR6g7jg9jvPb9UxTGyCcv863wUzIj8O0dpCt0pLYf674thdPDICdGgx3rCqHh3D23fF6MpgEb0iOD8eVtE5AUroLHx+DhHypwoKYPsSFKvL68gNqFvz5NWE8KmQSPLMihf4uydgM2H6inWhi/2Fxvc2PTgTp0GRyYnh2FWyanUn3Vt2fbCDYhjoBz/furpFWPAxf7EK1R4oYJyfS03G924lcOm3D1qHi6n7w+ko9jcXoxMydKABtt7Legw+DAiAQt/cwCZK+36uxIDAsS7DGGYdFrdkKjlA7RvLi8PohFon+qwfij+wDDsLC4vFArpIK97mNYtOvtCFFKqbbH/z2quswQiUjiuP/7sSyLsnYDDDYPJqaH05/RH6fRMmjDuJRwgbvubPMgzrXqkRapxuIRsfR7lbQSbEJ4sBw3F6ZSfVtNtxlfFLWAZYGbJwewCe2Ddmw6UIdBG4mY8I9++diEcalheGpJHpQyCRxuHx77qRJFTYNIiwjG364biVQOm/DEz1X4sawToUEyvHLtCJoY/9bBBrx1qB4sgLXTAvEPP5V14pEdlfAyLIYnhOCndVMgl4pR1KTDzZ8Vw+NjoVFIsfO+KUiPUqPL6MC8Tcdg50bY/k47y7IY//Ih6KykWOZTxVd/cpYaTnI4jhZAJACfcYJrsQiofG6BIAPo8rqsyfm/soIVUioMregw4ouiVohEwO1T02jR09hvxeYD9TDYCXhyxbgkaJQy9JudeGZnNVp0NoxPC2xaq8uLh7dXUC3MphUFNBzuLzsI6yQ0SIZXl46gJ/i/7g08eO6ankFPpd+dbcdTv1wAwwLDE0Kw816CTShq1OGmz4rhZYSbtm3QhvmbA6frd28YjStGknyHxW+foA6tNZNS6Hjsnm/KKNH7t8puik3YfKCeCkO/PtOGqucWIFghxa7ybtoJ2H2hB8MTtJiQFo5mHQ+b0KpHbizBJrAsizf211P3y7dn2miR82NpF6UFby3uoEVORYeR3mBONQWwCYNWN73ebXLC7PQgHkHwsSyc/ADHS1rmRLxNLKP+VZCoxd6qHngZFmN5Y7PCjAikR3LYhPxYeqMamxKGObnRqO21oCBJS7Ea8aFBeGB2Jo7WDyCeS/j1r00rR+G7s6STwz+FvnTNcHx+qpUkXPO4RnfPyECYSo4eE6Fd+8WkM3Oi8fXtE1DTbcaIBC0tOP3YhDPNg4jTBmFKZuD0+P3aSTjXYoBSJoQxPrYoFyvGJcLh8WEYj4c2KzcaJU/Ng8HmRnxoEH3IJoWrcHDjDLi8DBRSsQCb8NYl2AT/WlOYSkMUAVIYe3wMxiSH4evbA1gVs9ODQasbiWFBNNkbIOLQpgEbUiJUgu9jtBNsQqRGgbEpYRjHfY7MTg/2lBKr+Py8GOr2sbm8+Pp0K8xOLxaPiMOcYQFswmcnW9BhsGNqZgCbwDAsvjrdirI2A7JiNLhjWhoVp287104f9g/Ny6Fi2T0XeqhV/L7ZmZTrVtSow3O/VsPk8OC6sYmUSVbTbcZ9W8toxMQHqwk2YcDiwupPzqKuz4KYEAU+u2U88uO18PgYLH2/CBe6TEMS2O/77jx1iV07OoHqiTYfbKB7NE6rxIlHZkEqEQ/BJuxdPx2Z0Wpc7DFj5UeBYMe/XTcSK8Ylwe1lsPKjADah1+ykY76/7KiggvILXSaqodtyvAm/lJPDw4kGHSVsH60dGIJNKEgKRZfRjp3c1w9YXChqGkRqZDAYluRiub0M+rnr/iLnYo+Zdtn86Ab/39s/OrM4vbT7FiyXQimTwOPzQq2UQsF1j9QKKbKi1ajoNCEiWE6FxiKRCIuGx2JbCREb+/cbAFw/IQk9Jge8DIubJqcIrjcNWMlYfWRgrH55/dfX5SLnf2j9ZUcFjTlv7LdiF8UmNNEbydkWPZZyUeCHa/spTqGuz4KV45IxIlGLDr2dXtfb3ChpNSAlgrBODtf2w8ewGOQYN/4ip6HPSnU7/rk6QG7G/s3s9ASwCSoFwSaYnV5oeJtWGyRDbqwGFRw2ISWcdKHEYhGuKojH9pIOaIOE2IQbJyVDZyMpoTfxEpZvnJiMDr0dOpsbV4yIo3kzi0fGoa7PQkL/UsLoTDsrWo3NKwtwqpFYxf2ZHSKRCD/cXYid5d3QKKUCget7N4zBzgqSLsxPNb5nZiZGJoai3+LC1MxIATbh8EMz0ayzYlhcCHWaRKoVOPqXmajrtSBOGyQIQfz4prHoNTuhlEoEp/E7pqXjpsJUMKwwwHFsSjgO/wk2gU8gZlkWFqcHQTIJNs7PoSJtPzZBIRMPgZnW91ngcPswPEFLIwoA4ijpNTkxNiVMwFQq7zCiptuMvPgQAcy0utuEo3UDiA1R4ipe/ktDnwU7yjqhlEoElvD2QTs+OtEEu9uHleOSaCu93+LEG/vq0c0JjG+ZnAq1QkWxCZWdJgyLC8FzV+ZDq5LBx7B4YRcZOUWHKPDyNSNoEfDmwXp8fJxoYR5fPIw+iPnYBD6/6EhtP+7+ppRgE6KC8fO6KdCqZGjos2Dp+0WwuLxQSMX4jsMm2N1ezN10jLrEHl+US8cON358lnbr5g6LoXiLZ3fxsQlNqHh2PkQiEb4qasPLey4CAD4/1YrDD81AepQaZ1v0eGZnNX3/Y0OUWDY2EQ63j+bIAIBGKaVF2eYD9dSm/t7hRvr3/rWyh95Pvixqw0PzciAWi1DdbUIzF0lxpnkQg1YX1AopTA4PFbP3mV3oNTmRH68Fy4IeEHwMCzsPm+DvqgAQxCNkRAUjSCaBw+NDXlwILVjz47XIilajbdCOCWnhlFCeHK7ClQXxKOYiJvzYBLlUjMcX5WJneTfCguVYzcMmPHtlPj4+Qcbqd0wLWMUfnJsFhVQCvc2FK0bG0721dEwC3D6GA2CGUUNFZnQAm5ASocJibvwjEYuwb/10HK7tR6hKhrnDAlES794wGmeaCTahkDcWWlOYimlZURi0uZEfH0JfuyApFGefmIMBC0lg94/PtUEy/HLvFFhdXgTJJIIu/J8lsF8xMh5XjAzcq/yp+H5Nz+X1f74uj6v+jeMq/ipu0ePTk80Um+A//fZbnPj4eDP0Ng+uGR1PHzReH4NtJR2UWruABwQtbdPjHEfMnZ8XQ0+//RYnjtUNIEwlx6zcaEESqb+bMiE1XLDZOvR26G1uDIsLEaQh291e6CxuxGqVgussy8LpIafuf2YT/YiwPQABAABJREFU/aPl8TFwenxQK6SCdrrd7UW/2YW4UKVAY2NzeVHfN7S4sLm8ONM8CI1ShvGpAVu80+PjwHYM5ubF0HGCx8fg14pu9FtcmJkTRbN8GM6B4u+gXFUQT7/XzvIuHK0j2IS7ZmTQYmhvVQ+2FhOr+AOzs2hbvqhRhzcPNcDlZXDr5FQKq7zYY8YTP19An8mJuXkxeOaKPEglYopN8Gthtqwei+gQJRxuEoZW3KpHqEqG928YQ23Ld3x5jiIK+KOrl3fX0FDEwvQIKh7++kwbFZ+GqmQ4+vBMhKrkQ7AJ/BHVpFcO0RPrxnnZ1DE16ZVD1Lk2JzeaFmX8FGdtkAwVzxItzOYD9VRIDwAnH52FxDDVEJv6h6vHYOHwOBjtbox/+SAVpz8wO5MWdws2H6c09YX5sTTcj28VT48KxuGHZgIgXcP7t54Hy5ICcu+D0xChVqBVZ8N1H56GzuqCRinF1jsnYXgC6Wjc+vk5nGzUQa2QYtOKAnpIeOtgAz481gSpRITHFuXSAvtkgw4v7a6B2eHBSh6EssvowPO7qtFhcGBqZgQeWZhL07nfPtSAsnYDsqLVeHhBDh31HKzpw+4LpJNz94wMylVqHrBSbMKNk1KoqNzh9uGX8i4Y7R4sHB5Lx97+kVGb3o7xqWFUrA2QUXNVlxnpUcHUNQWQw051txnhKiE2wf+7iEUQWMv9/43LywwZf/+ry+X1QSoWD7GRD1hcYMEOsax3GuwU78If1bUN2tCssyE/LkSAdmgesFIH1zgefqFDb8e+6l5KNPcXKr0mJ7YWt8PHsFg+LpFa1fU2Nz463oxBqwuLR8bRItPu9uKtQw1o6LNidFIo7p6ZAZlEDI+PwRv761HURCImnrkij47oPzjahO/PtUOjlOKJxcNoB+eHkg78bV8dPD4Ga6en456ZZE8fru3D+u/LYeZGoB/fNO6yVfwfrMvjqv9Lq99CHgoT0sIFmTatOhsMdgJS47OQGvutaNXZMCJRKwDCNfE27fjUAOukecCK/TV9CFPJcPWoBHrq7jI6sK24HQwLrByfRDeUzurClmNNGLS6sWQkabEnhZPT9au/E6v4uJQw3DMzA8kRRBvx6p6LKGoaRHKEcNP6sQkhQTI8fUVg0357tg2v76uDjyH5Dn5XwoGaPmzYVg6ry4tpWZH47JbxkEnEqOw0YvUnZ2F2ehEbosQPdxciKVxF0n/fPoEBy1BswpK3T1Bswp3T0uh7+MDW89hfMxSb8M7hRtpi37S/HsVPEi3M71W9eOTHgNMkSq3A5MxItA3a8OD35fS6Qiqm2ISHf6gMnH59LH3gfnCsCcWca+z1fXW0yDlQ00f1K9+ebcf9s7MQpVGgecBK7ann241o09sRHaKE3e3FxV7SJjfayQncX+TwbeN+nRUAqBWBh40/pBEAksKCoFFIYXF5kRmlpjf11EgVChK1JPQvPoQ+JEODZFgxPgkHawiEks9C2jgvG1+ebkWQTCIIaCNZICLYXD4Bv+i2KWlwen3oMToxKzeKtuunZ0Vi88oC2snxW8JDVXL8cu8UHKntR3SIEtfwohK23TUJ+6v7IJeKBaFoz1yRh4XDY2FzeamtGSAn4lFJoQSbEBdCC9TUyGCceGQWuowOxGmVVMwuk4jx9e0TYHF5oZRKBIX9g3OzKGCSv6ZmRdIxCkAKZpeXQbxWiY9uCsBMPT4GXUYHIoLleHhBjuB6dbcJYSo55ubF0HGJ18egqEkHsUiE8anhVOflY1gcqe2HyeHB9OwoOopkWRb7qnvRqrNhfFo4JmdGYjL3Gocu9tEU9OvGJtG/wckGHX6rJB2UO6am0UNXaZsen3DF8h3T0uh95mKPGa/vq4PB7sbSMYlYMykFCqmEYhP8h7GXOWyC1eXFA1vP4zQ3Hnr7+lHIitGAZVnct/U8dlf2QK2Q4q/LRv4hNoE/8ubzzbJj1NjzAMEmHKsfwK2fF4NhSQL7r/dPRWa0Gi06mwCb8ObKUbhmdAIYhtw3zJxA/Hy7kZoLHvj+PN27e6t7KePqrYP1+JLDJvxQ2omaFxZAJZdib1UvJZ0fru3H2JQwTM4kuBW/NKCy04TRSaF0rP7B0Ub62jtKOun9cm9VLwY45tqu8m5a5NT1WunXV3QY4fYyl4ucf8O6XOT8Gxf/lMnPbPn0ZAvNYMmMVmMvxzo5UNNHk5H52ISmASsW8jYtH5twxTsnqbCtuttMBWz3fVdGH6yHavupVfytgw0U5fDT+S66aXdX9lCA4vH6AUzOiMC4VIJN2MLdeC50mTA2OQy3TU0Dw7D49GQLrC4vuowO7Crvppt2f3UffRj/fqGHFjlNA1ZaHNR0m+HxkU3rcPto7oPV5aWaF4lYRAGFUrGI0sZFIhHyE7QUm5DFO61Oz45CUdMgPD5G8ICekxuNQxf70Gd2YUF+DD1BT86IwNWj4lHXa0FBYihtcyeFqfD4olwcqx9AQmiQIBH4o5vGYkdJJ4IVUqzlOdRev64AX59phcvDCL7+7hkZiA1RotfsxMycKHpKn5YVhR/XTUZtrxnD4wPYhAi1AocfmonSNgPiQ5XU6goQLUxVtxkquURwGn9wbhZWTUiC08MgKVyITSh9eh7sbi+0QTL6oI7TBmHnfUOxCVKJGK9cO4JqIwDyMBaLRFgxPknwexntbjg9DIbFaaidGSDi3D6zC1kxavqABshpua7PgoyoYFw7OpECQv3YhGiNElMyI6heTWd1YXdlD6QSMg71v7bJ4cGXRa2wOL24alQ8xXX4sQkdejumZUfhqoJ4JIapONF6I9XCPDgnC5nRAWzCHg48+fjiXIrg2F7SgS3HmiAVi7F+bhYNeztQ04fndlXD4vRg1YRkKkot7zBi7Vcl6Le4MDo5FF/cOgHaIBl6TA6s2HIaHXoHQlUyfHXbBIxMDIXby2DJ2yfQ0G+FSAS8fM0IWiDe+VUJjtQNxSa8vPsiFZ/ysQk/lHTSQl0kAvavJ1bxqi4Tbv8ykLQOACvHJ8Pl9WHNZ2fpCNvk8NC/99O/VFMdSuugnd43vjjVisO1pIN4odOEVeOTCDahMYBN+Pl8F26fmobhCVr0mpw4Vj8AH0Po8+UdRs4qDpzjigmry4sLXQFsQp854EDt5f1bIhbRrCf+Qz4iWI4wlRyDNjdiQhS0uA8PlmN0chiKWwg2wb9PxGIRbpiYgh+4sTq/WL5rejpcHh+8DCvY07dOSYPO5uawCfEU3bJ4RBxadTbU91kxOjmUjmizYjT44MYxONWkQ0p4MNYUBsbqP987Bb9V9ECjlAqwKm+vGo3dF3rg8TFYNDxgIb97RjrGpYah30yyrIIvC43/LevyuOrfOK6659tSKobjR8vzBb8FiVr8dM8USMQiVHYacdsX56CzupEVrcbWtZMQqVbA5PBg7VclKG7VIyVchQ/XjKXjlld/v4ify7oQppLjuavy6Wl2f3UvxzohD1n/jaR90I43DtRhkKPW+nNenB4fPjjahMYBooW5uTCVjqP2VvWQTk64CmsKU+g4qWnAir1VpPW7bEwChQnaXF7sreqFj2WxID+WzvNZlsX5DiMGLC5MTAsXOFD6zE60DdqRFa0WaFvcXgbtehui1EqBRgAgnQy5RDwEOOj/CP+j9GU/rJAvdgXIabnf4kRokFyQP8EwLE0a5kNV/U4Tp4dgE/wdAJZlcaZZjz6zExPTwwXt/tNNg6juNmF4gpY+oAGioThWP4B4rRIrxyfT71XZacS2cx0Ikklw69Q0OrKo77Pg/SONsLt9WDUxmbbSOw12vLqnFt0mB+bkRuOemZkQi0Uw2T144pcLqOoyYVhsCF5ZOkKATTh0sR8xIQr8fXkBRnMn+5d+I64OmUSMJ3nYhE9PtuDl3TVgWGBeXgw+5joXe6t6cN935+FlWCSEBuG3+6ciLFiOmm4zrn3/FFxeBlKxCN/6sQkOD6a8dpgWv48tyqVF8fzNx6juhO8e27CtnOZMaRRSVD5HtDAfHmvCazwMwqGHZiAjSo2iJh1u+Pgsvf7G8gIsG0vyTAqe30+v3zE1DU9xBGn+eIxPTX/sx0rKVosIlqOEy6ThW+SVMoIGSApXoXnAiivfOQmb2weJWIQvb52AqVmRcHsJ162uzwKxiBC1/Xvxpd9q8MnJFohEBH/iFxXvruzB4z9VwuLyYtmYRPx9ObEwt+hs2Li9HG2DdkxMC8fflxcgWCGFw+3DC79V42yLHumRarx0zXA68v3mTBt2lZPQv4cX5FBrdmWnkR52bp2SSgtsvc2Nz0+1wGB346qCBNqV9iewNw/YMD41nOq0AKLtIppBlSBd2Gh342SjDmEqOQrTI+h9hmFYVHaZ4GNYjE4KFYzD+81OGB0eZEQJXaBuLwOjw42IYMWQ0RfDsP90pP5nCc12txdWl3eIy9Xs9KDb6EBSmEpQdJgcHlR3m5AYqhIkLP/Zsrm82H2hB14fi0XDY+k9z+nx4YeSDvRbXJidG0334eX1z9e/+vy+XOT8G4schmFR0WmESCTCyAStYCPprC6YHR6kXoJN8PgYWJxehAbJhmy8f2XT+hgWLMsOsZrbXF7Y3EM3rcHmJjk0kcECS6LB5saFLhMSw4L+EJugUUoxIzug+7E4Pfi1ogdehsGSEXHUiupw+7DtXDt0Vjfm58fQm6bXx+CLolYubC8M148nBGKWZfHNmTYcq9chMSwI6+dm0WLop7JOfM9ZxTfMzaai1IM1fXjjQD3cXh9un5pOT8SlbQSb0G8h2RKvLQtgE2794hxadDZkx6jxxa0TEB8aBLPTgxUfnkZtrwXBcgk+5GETbvj4DIqaBgEAD87JwgYOm/DEzxfw3VkSxMa3in9yohkv7SbiU7VCipOPzkKoSo6TDTqs/jTwwP32jomYkhmJHpMDk187TE/XfKr4uJcOUtcX/2F/+xfncIg7XYepZDj/zB9rYU4/Phtx2iCcaBjAmk8DWpiPbxqHeXkxGLS6UPgvYBOuHhVPHU+v7rlIO3z58SGUu7W/uhf3flfGZT0F4df7piJUJUeH3o7rPzqDLqMDURoFvrl9InJiCTbh3u/KcKCmD1EaBd5aGcAmfHy8GR+daIZcIsbDC7Jp5+ds8yBe/b0WFqcH149PpnlP/WYnXttbi069A9OyInEPD5vwyckWnG83ICtag/tmZ9LC+GSDDnurexClHopN+KmsE2KxCCvGJVHrt9Pjw54LPbA4vZifHyMoXis4bMLoP8Am1PVakBKhElz3+hg0DlgRppIL8AsAQbGIxEMjH/z5Opc+0C9df4ZN0NvcCJJLBHRzgIzPGZZFWmSw4P5Q22uG3kbyq/iHiZpuM5oGrChIDB2CTTjHYRNm8gqb+j4L9lzoQYiSjEP995q2QRu+OdMGhiXUbX8nrdfkxDuHG6C3uXHFyHh6SDM5PPjr3lo09lkxOiUUG+dlQyGVwOX14YVfOWxChAovXj2cHkb+trcW2851QKOU4tkrA9iEz0624G/7asEwwD2zMv4QmzAuJQxb106iY/UbPj4Lq8uLMJUMP66bjPQoNfrNTix48zgMdg9EImJ44CeC/9Hi791hcSG0Y/b6vlq8d4SMuyRiEUqfmis4DF5ef74ua3L+P1pNA1Z8zc1wV09KppV4l9GBdw83wmBz45rR8Vg4nPCTDDY3Xt5zkQDkUsOxcX42woPlcHp8eGFnDYoadUiJCMbL1wZYJ8//Wo0fSzuhVcnw4tXDMZM7wX90vAl/31cPhmVxDw+bsLO8C3/ZUQm3l8HEtHB89wfYhDAVcQKkRASj10Q2rT/E7L0bxmDJyDiwLLGK+wGAfHL5/VvP4yjXYv/ubACbsPlgPZ2zf3isCeUcNmH3hR5aBGwv6URKhApTMiPROmjH0zwHSqRaTh/2z+yspif+IJkE791IOmNfn2njYROaaJFzvF5H4ae7Krrx1BV50AbJ0G10oJVzmjQN2NBvcSE+NAguD0Nb5ja3TwAt/bOVEq6CRCyCj2GRHhkoBvPiQxCpJgTi8akBrk52jBoT08JR00O0MFkx5L+JUitw25Q0HKnrR7w2iI5HAOC5q/Lw9WmCTbh/dsAq/sSSYYhQy2Fz+7CKRyFfOz0dMokI3SYnZuVE0wfx1MxIfLh6DC50ES2MPwQuQq3Angem4WTDAGK1QZjPo6Nvv6sQx+oHoJCKKV4AIB2XKwviYXN5BafN+fmxOPP4HAxYXUiLDKZdv6RwFY7+ZSb0NhK06O9SyaVifHzTOPgYFmKRsPt25/R0QWCl/9Q9MT2CsqgAUniYnR5EqhWChGW724sOvQNxoUpBWq3D7cPZ5kFEqOWYmhVJuw9Ojw/7q3shFokwLTuSfu7cXgY7y7tgdnoxb1gMDZVkGBY/n+9Eq45w5AozIlDAYRN+Kuuk4Mk1k1IoAHJvVS/FJtw7K5N2ZE80DNB9ctf0DPoznW8n2ASj3YOlYxKxbmYGJCJSHGzcXoEWLqTz7ysKKDbh9i/PoazdiJQIFT5aMw45sUQLc/Pn53C8fmAINoFfqC8bk4g3VpAOEb8zlhyuwqGHZtAUdP9YXS4R47cHpiI7RoPGfiE24e/LC3Dd2EQwHDbBP1av67XQlPcHvi+nCcinGnX0vvHekUZ8y/1Mv1f1YlYuGasfrOmjP2txqx6zcqIxKT0C7YN2+vUtOoJNuHkywSZ8f64DepsbgzY39lYFsAmnGnV0TH6iIYBN6DE56fUOg51iE3wMS+3uPiYQ5iiXihGhVsBg90AlkwicaH+2Fg6PRWWXCR4fI4iFuGJkPM61GkjhlB/73xZ2X15/vi4XOf+Ha8O2ch7rZJBu2ncONdA2997qXtS/tAhyqRj7qnupDbWs3YgFw2MxJjkMHXo73cytg3Ycqe2n8fw/lnbC7PTC7PTicG0/LXKKWwxUz3KmOYBN6DU56Sm9Q2+Hl2EgEUsgEokoNoH/b6VMjJgQMibTKKQ0dVUkEmF6VhS2l3YQbAKPCXTlSKJr8fhYQSz6VQXxON9ugM7qxuIRsQJswo0Tk1HXS7AJ/qC31AgVXrpmOI7Xk4TfNTzb+Ze3TcCPZZ3QKKQCAvGmFQXYXtIJt5cRpDvfPzsTWTFq9JtdmJETRW8+kzMjsffB6ajrsyAvLoS26qM0Chx9eBYudJkQH6oUdLC+uX3iH46r7pqRgRsmJsPjG4pNOPfkXHgZVqAjiA5RChKWgcCp++kr8vD0FQERusnugVQiGmIr7TERdk16ZLAgdbVVZ0O3yYHhCVr6gAbITb+m24zsGDUWDo+jKarNA1acaNAhJkSBeXmx9H3oMjrwc1kn5FIxlo9NoqfSfosTXxa1wuby4bqxiTSgzeTw4PV9teg0ODAtKwqrJiQhgktMfmXPRZR3GDEsVoO/LMxFTAjBJmw6UI+9VT2I1ijx9BV51KH2+akW4mQSi/HQ/Gz6IN5V0Y2nf6mC1eXFqglJ1GJd3KLHHV+eg9npRW6sBt+vnYRQlRytOhuWfVCEQZsbaoUU39wxMYBN2HyM5ifxsQm3fF5M983cYdE0SfmF36opd2jzgXqUPDkXYrEIW8+148mfiXPtrUMN2L9hOrJjNChtM2Dj9gr6/qsVUiwflwSnxycIfPSxLNXCvLqnlmphDHY3fssiJ/vtJR0410qwCZsP1uPOaWmQSsQ412qgOIV9Nb1Yb8hCbmwIdFYXtbu3Df7/2PvLwDiuNPsfP82tbnWLmckCMzNjDIlDDpPtMDM6mSSTZJKZcBxGJ04MSRxDzMyyZFnMzGq1Ws3cVf8Xt+p2lZXZmZ3d+f53f+u7LzbTidWy1Lfuc5/nnPNxornfjtx4HQIMiybOiu71M+gwBbEJgUCweR9gghlQUVolTWCPD1NDJuGzjUKQFB6CLrML2bGh9HMfp1djbm4stWvz6ehSqQT3zs7CzxzP7mrB8+HRBTn4+GgTwEKkhblnDodNcHixYnQC7TxdPiYRRrsHDQZOC8ONzXLidNiwehLONBMA5jUCbMKOB6ZjX1UfdGq5KEpi/U3jaOyGUL+3ZkYGpmZGod/uEWETxqZG4PQz89Ax6ER6tJYWIOEaJfY+PBO9VjcitcohXbI/WtdOSKEmEeHKT9Bjy0XPh0vrv3ddGlf9F8dVJxr68emxJopN4HUSHSYnPjrcCJPTi5Vjkmj71etn8N3pVso6uXpcMJb9REM/ZZ1cPS6ZjqC6zC4crO5DWIgCl42Mp7dljz+Ao3X9YBgWc3JjRZqSqm4LbTuLZslOH7rMLqRFiWfMAYaF0U6wCRdrXv7o1v1H649SV/3cOE4fohC10z3+ANoGnIgJVYk0Ob4Ag7IOMzRKOfITdPTr+QIMTjYa4fUzmJUTQ/+uDMPiYE0f+qxuzMyJoZZYlmVxsMaAqm4LRiaF0eA2gDhQjtQZkBgegjumZdCvdaZpAJuK2hGikOGuWZm06CnrMOPDw43w+AO4dWo6FnKdj6Z+gk3otbgxLz8WTy0m2ASj3YPHt5ShssuCgkQ93l41GrE6NcUmHK4lWpgPbxhHtQ5P/1xOrMNSCZ5ekou7ZpFOxPsHG2gootDGLcYmKLH/0dmI1CpR3mnGVR+fhp9hIZEAG9cQqrjZ6cXk1w/RYEfheGze346imeMIzRoWgw1cPsc935+nGU3hGgXFJghBiQBoLszFVPEPbxiLFaMTYXH5MPaV/fQmfPesYKrsZe+foF25mTnRNNzv+W0V9KaeGKbGqWfmQSKR4PfyHtz/I+Et6VRy7H9sFhLCQtDcb8eVH5+GxeWDWiHFxrWTMT4tEr4Ag2s/PYPSDjOUMineumYUdcG9s78O6482QSoBHl04jLpcDlb34cXtlbC6/bh2QjI1EHSYnHj6l3K0DZBOzmtXjoBaIYPbF8Cbe2spOHfdsgL6mf7tQhd2cJ2ch+fn0IK5oc+GDWfaIJGQBFze+m11+/BTYTvMLh+WjUyghSXLsthf3cdhEyLpJYH/HJa2m5EhwCYAZGRd1GpCpFaJkUlhogTjpn6SpZUdGzpEg+LwENej8HU+SkKtkP5D7dsf/XuXNwAW7JCCwOTwwuz0Ii1KK3o+GKxutJmIZk84vjHY3ChtNyMlUkMxKACxoh+u7YNWJceigmACu9npxa8lXfAzDK4YE0xgd3j8+OFsGww2DxYWxFGtnMcfwBfHm1HXZ8eYlHDcPi0dMqmEGi+O1ZOIiScW59KR5vdn2/BTYTtC1XI8tThXZGG/tP5969K46t+87B4/WJYVhaoBQe1NWpSWtmgBchtvNTqRG68TteS7zS6UdpBWs/BrGaxuHOJYJwsL4mio24Ddg+9KWuFnWFw5Nonm6VjdPnx5qBkDDi+WjIinm9btC3ABY6SDsmZGJgoS9QgwLD463ICTjUakRmrwFHfrBoANZ1rx07kO6FRyPLUkuGl/u9CFv+2vgz/A4p7ZmbiduxGfajTi0c2lMNo9WDw8Hh/eQLAJjQY7bv2qEN0WN9KiNPhhzWSkRGqGYBM+vXkc5uWRwuGaT8/QdrYQm/D4ljLs4LAJo1PCsZ0bX3xyrIkeuGqFFGeemY8IrRJH6/ppix0Avl8zCTNzYtA56BQ5UAIBFg9yuTAP/FhCqd99Vjfl3vxtfx11lNT32WiRs7Osm77e2G/H6ukZiNOrUddrwzGOgH6iwYjqbitic9U064d8fXID54ucegMRvZIbuIN+fzxiAQAcXnFwGx/QFqVVQcFRyaNDVUiP1qLRYEdKhIYKT7UqOZaOTMD+ql7EhalF9us1MzPw5YkWKGVSUbjiXbMzYfcQQabQKn7jpFT0Wd3oHHRhVk40taPPyI7GK1cMR1mHBXnxOlzGuVnCQhTYfPdUHKjuQ6xOJfpa36+ZhJ1l3ZDLpKJb98uXD8ec3FjY3D7MzY2lB+eyUQnIjZ+NzkEnRiaFUS1YZkwoTjw9Fy39DqREami3QSGT4td7p6Hb4oJOrRCNFh5blIsH5uVAIhG7eIT2buFKiSToD34xDAuL0wetSkYLIf71tgEHdGoFVo5NokUVy7Ko6rZAAgnyE3TUMs2yLIpbTRh0EmyCkIV0tnkALUYHxqdFiLKzilpNONdCrOJLRsRTbUtZhxk7y7qhD1Hg1qlptOtb22vFt6daKTaBT9jmjQkmhxcrRhFHm16tQL/Ngz/trOIExhF4bmk+QpQEm/D8tgoaMfHW1aPoxWLdb5XYXNQBfYgcf145gnYQPzrcgHcPNoBhiZOJ39NCbEJBgh6/3U+wCWebB3DrV+fgDTCiBPZuDpvg+ANswooPT1KH1vUTUyhV/MGfLtA9+vP5Tux/lFjFPzjcQC3hX59qwYV1C0nEREUvxbDsLOtGbpwOM3Ki0WZy0sBH/rNw/9xssCyLt/bWUo7Zt6dbLxU5/8PWpSLnX1jvHqjHh4cbwLDizJbNRe14blslAgyLkUlh2HbfNMhlhHVy61cEmxDKbdqsmFC0Dzix6L1jdB7MYxNYlsVl75+gB64wQ+KhTRdwqpEclL9d6KKb9r0DDdRu+t2ZVlRwrJM9lT1UlLq7ohfDE8MwPTsazf12upnPNpuQE0uKL5Zl8de9dbBxWpgNZ9ropv2lpJO2/TcVddAi50L7IAxc7sOJBiNcvgB0MikG7B70ca93m10EdAcCJ/T4BdgEf7CZGBPKj8pI+5xfo1PCsbeyFz6GwUTBLXZyRiTSozTos5IbWShnKx2VHIYF+bGo7rZieFIYRnA25YSwEDw8PwdHuU7OlYJx19+uHY2NhW1QK4ZiE7480QKPfyg2ISxEgV6LG3NyY2mROD07Gt+vmYTKLpIuzCdCR3HYhMJmExIuKjQ23TUFhc0mqBUyTBD8/Z65LA/XcCm5BQKI4dzcWBS/sACDTi8SwoLYhMTwEBx4dBac3gA0SpkIm8DH9F+8bpqcJspo8voZik34YW0Qm2D3+GGye5EQrqbRBQCPTbAjNVJL3Fhc993i9KGotR/ROhUmpEVQ/IbF5cPP5zuhkEmwqCCejo+cXj82FrbB6vLjshHxtJj0BRh8f6YVrRy6gGATQsEwLL473YrzbSRs767ZmdSWv7W4AzvLexCtVeKRBcOoWHZvZRCbcP/cbFoEnGkawMs7q2B1ES0Mn2/TaLDhvo0laDWSVN/1N41DWIhChE2I1RFswoikMDAMi2s/O4PzbQSs+eeVI+hn5sGfLmBX+X+MTYjXq3Hi6blQyKTYXtpFs5sINmEmsmN1qO214tpPz9CfP49NCHDvLRxV/5VzZD2xtQyVXaRjVtZppmP1z080UQwCj00IUcpwpNaA37nvtabHiivHJmFsagS6zE78yjndeq1unGw0UjbU3qpeeAMMjHYvTjUO0CKnsstKtS0V3GgfIDo4PoTS4Q1iE9QKGVQKQhvXqGS0ANWq5MiMCUVFlwURGgV1HUokEiwblYCNhW0IVSlEl85VE1LQOeiCL8BQyC4AXDs+GTU9Nhisblw2IoGOohZyGI/6PhIxwV9C0qM0ePva0TjeQCImbhVYxTffNRW/lXYhVCXHzYL3uLT+Z6xLRc6/sOr7bLT1Xttro687vQG6mR1eP/ijO1SATRCOg/QhcuTE6lDRZUGMToUUAetk+agEyjqZKbBp3jQ5DQarB36GpYcDQKCJrQMOGO0eLB0ZZJ0sHh6Pu2fZUNdnw9iUCLpps2ND8c6q0TjZaERKhAY3TUml77357qnYXtrFYROCm/ajG8dhRynBJqy4CJswIimMYhP4TJrJmVE49NhsNBjsyIvX0VZ9VKgKR56Yg4Y+O+LD1CKnyRe3TkC3xY0QhUykeVkzIwO3Tk0Dw7KihOQJ6ZE4+uTcIb+jqFAV1VgA5Lbs9Pqhksvw6MJh1C3Fsiw6B0lHaW5eLBUpAuSAc3kZFCTqRZHslV0W9FjcGJsaLvodVHRaUNVNRL7CrlxNj5VgE8JUWDEqkWoUGvps+Pl8J1QKGW6ekkqFvh0mJ7480QyHN4BVE1Lo72zA7sE7B+pJB2VYDO6Ylg5thAZ2jx+v/V5NOigJOry0nGATGIbFK7uqsK+yFzF6NV5bOYKOP97jBOIKmRTPLc3DdZyQeXNRO17cXgWPnxEdxCcbjLjr+2I4vQFkRGvx673TEKFVotFgw8r1p2H3+KGUS/HTnWRM5PIGMP+dY9QlJrSK3/ylEJsQ1ML8aUcVthQTvdonRxspNuHHwnYaDvfVyRaqhSlqNdHXASAuTI1VnBbmyZ+DgY8hShle47Qw7xyopzb1Dw830iJnR1k33cvfnGrBowuHQSaVoKrbSv/7M80DMFjdCAtRwOr2UTG7weZBn9VNihyWhdlJLicBhqA6+CWEbwoDHHNiQ2lXbkSSHnKuYM1P0CMrRkuxCTFcKnBKhAbLRiXgXIsJ6VEaTMkgxbJMKsEzS/LwC6eF4TNbAGDdsgJ8caIZzMXYhPnDOGwCiZjgR7dXjUuCJ8CgyUAMErzYPDtWhy13T0VhM+nkrOC0YxKJBLsfmklI2yFy0Xj4wxvH4kzTAAIsi2mCwv6WKWmYlRONAYcXBQlBbMKYlHCcfXY+DDYPEsLU9PWwEAV2PDAdVpcfWpUYm3Cxvo1fK0Ynip5VDMeiy47V0bEsQDre/WYPYvUq0ddx+wIo7zQjjkNy8HvX7QvgZIMRGpUMY1PCUZBIulMefwB7Knrg8TOYlx8rArr+XtFD9YLCzKtL69+7Lmly/gVNjj/A4FwLYZ1MyYwaEjtucnhRkKgXHcYubwBGuwdx+qHYBKc3gBCF7F/CJvgDDDx+ZkhwFP9+sXrVEGxCba8NieFqkR3W7QvgTPMAtEr5EGzCoRoDfAEG8/Nj6YPaF2Cwo7QbfTbi6OHn4wzD4peSThK2lxKO5aMS6Nf67UIXjtYZkBQRgntmZ4ki7n861w61UoYH5mbTr3W2eQDvHayHx8/g9mnpuGKMGJvQa3Fjfn4s/rRiOOQyKbrNLty7sQQ1PQQ8+clN4yg24fZvzqGwZSg24f6NJZQlJkQaCC3TQmzCpnPteOZXwh3Sq+U4/MQcRIeqUNg8IIIS8tiEAbsHU944RIMdhe8x9Y1D1Lk2NzeGjsfu3FCMA9VDsQkXa2GOPDEHGdHaIVqYT24ah8tGJsDi9GHCawfoe98/N5jBsuS94/RQXzw8Dp/dQnJvhIGWGdFaHH58NiQSCfZW9uK+jefBsCR8be/DMxGrV6NtgGAT+m0e6NVy/MhhE/wBBrd9cw6nGgegVcrw9qoxNIztw0MN+ORYE+RSCZ4WYBNONPTj1V3VsLr8WDUxBY8t5N0vLry0vQrtJqKFeXZpHlRyGbx+Bh8dbkBJuxnZsaF4fNEw+pk6UN2HnWXdiApV4t45WRQb0Nxvx6aiDkglEtw0OZUW3i5vAL9e6KTYBH78IyRtj0+LoO4ogGjlKrssyIzWIucibEJllwXhGiX9OvzqHHRCIpHQLgS/vH4GHn9gCIWc/x7+kR7O7QtAIRuKTRiwe8BwqAvh6rG4MGD3/jE2od+BgkS96PLRNuBAcesgUqM0tCMHCLAJagUuHxPEJvRZ3dhc1AF/gME141NoJ83s9OKLE80w2ry4bGQ8LTKdXj/eP9iA+j4bxqZG4F4Om+APEDTGsQYSMfHCsnz63Pr8eBPBrajkeHZpHg0n/fl8J/6ypxZefwB3z86iXdmjdQY8vKkUFpcPc3Nj8DmHTajtteLGLwph4kIGN981FenRWpidXiz74CS6zC7IpBJ8eMNYKsoXaslWT8/AiyuCCez8WF1IFf/gUAPeOUA650qZFGefmy+6xF1a//l1SZPzb1xymZQekgN2Dz4/3gyj3Ytlo+IxLy8OaVFa2D1+/HVvNQ3bu2d2FlIig9iEk41GpEVp8OLy4VQ3sf5II2GdqBR4flk+taH+dK4df91XB3+Awf1zs+nM/lBNHx7ZXAqbW4xNqOyy4OavCmF2+pAQpsaWuwk2wWj34LL3g9iE9TeOowfP5R+dpDdWoVX8kU2lVHwqxCZ8dLiRjsHePVCPc88tQIRWib1VvaJbdKRWienZ0WgfcFKhLACo5TKqhXny5zIMconJbm+Aims/PtpE3S99llpa5BwUYBN+OteBh+cP47AJDqrnOd82iBajgxQ5vgB1spidPjQZg9iEAYeHfk9CC7lQxK1VBf85JVIDvVoOq9uP7NhQChpNjdJgVHIYFRuncyycsBAFrhmfggPVfYgPU4kAm48vysW3p1uglstw58ygTuuRBTmQSkhn8EbBeOyWqWmwunzoNLswOycG6dzBMTMnGm9fOxoVXUQLw2s3wjQKbLtvOg7XGhCrU4lGc5vvmor91b1QyqUirceLywuwaHgc7G4/pmdH08N1yYh4HH9qLroGXchP1NMbalpUEJsQrw9iE+QyKX5YMxlWlx9qpVRUaD84P4f+7oVrZk4MHb8C5HD3BhgkhIWIsAn+AIMeiwsRGiWNTQBI4V3ZZUGEVomFBXF03OUPMDjbPACpRILxaURfAgSxCYNOL2YNi6HFFsuyOMCJfCk2gfu8HKkz4FyLCRnRWlw9LpkWKycbjNhR1oUIrRJ3zcykeISS9kF8dZKMkVdPz6CC4UaDDW/uJVqYy0cn4rZp6VDKSaH+7K8VaDbaMTEtEn/msAkOjx8PbyrFmSYyHnr/+jHIjhVjE7RKGf5y9SjaufjLnlqKHBCOvH8sbMfzv1VQ4fHvD82ASi7D8fp+3M5hE9QKKXY+MAM5cTp0mJxY+O5xOgb76zWjcO2EFLAsi+UfnqTRExc6BvHGVUQL8/CmC3Tv7q4MYhPeO9hAi+jNxR2ofJmM1fdV9dJLxZG6foxPi8D07Gh0DrrwweFGAERvNCIxDPfOyQLLsvjocBCbsKWoQ4RN4DuIO8u6aZFT22uj32tJuxkeDpvg8Phh576O1eWnOjgJJJBzWjepRJxVlBWjRU2PFXKpBKmCxPFpWVE4VNMHb4DBnLzg2Gz2sBjsruhBn9WNRQXx0KsvHb3/r9aln/R/cX1wqIGyTn4p6RRgE7rxJfdwO1rXj8mZUZiYHolWATahqtuK8WmRWDMjAyzL4vPjzdwmdOGXkk5R1gZ/AP9e0UOLnAaDnQreqrqtlHXi8Pjh8PCb1kf1LzKJhB7KcqkEKkXwBpefoEd9nx0KmQRZscHb54ycaJxo6IcvwGJubnDTzs+PxaFagk1YVBBH2+9TM6OwYnQi6nqtGCXAJiRHhOD5pfk4Wk9yYa6bFLRTfnLzeGw6144QpRx3C0TZb149Et+faYPbx2DVxKAN9Z45WYgPU6PX4sZsATZhRk40frl3Kqp7bBiRqKct9kitEocen43i1kHEh6kxlvueAGDj2iko6zRDLZchPyF4G39kwTBcPzEVbl8AaYLws+nZ0QSb4AlAHxKEjiaEhWDH38EmvHHVSMrMAcjhKgFwzfhkkf3e4iS/q4IEPe2sAMQ50md1Izs2lLqSABIVUNtrRVZMqKiVbrC6cbppANGhKkzPjqIjqgG7B1sqOqCQSbFsVAK1tFpcPnx7uhU2tw+Xj06ih4XLG8BHhxvQYXJhRk40VnDYBF8g2EHJiQvFw/NzkBVDsAlfn2zBrvJuRGpVeOayXOoa+uV8Jz473gSpRIJHFuRQvcaRWgNe+K0SVpcP1wicTOWdZty14Tx6rYSm/vXtE6n+6brPz6BtwIkIjQLf/QE2ASA6Kl4fcff352kQ29KR8RRJ8da+Wio+jdIqUfjcfMhlUmw9TwSxwFBswh3fFNGfP8OwuH5SKrx+Brd+XUhH2FaXjx72636rpOGKTQY71cJ8e7qVdutK2gdx3cQUqBUynGw0UtF6h6kLq3lsgtWNw7V9YFiy10vazMiOJdiEYg7G6/AS8CZf5PRYgrbxbnPwn2VSQAKABTm8+SiJqFAlIrUk6ykhLIR2lcI1CoxLDcfZZhOSwkNoN0vCdcO2cGP1JQJEwdoZmXB4AhRCya/bpqXDYHPDaCMsPX6sftmIBLQYnWjoIwYJ3jiRHq3FpzePx4kGEjFxx/R0+t6/3jcdO8u6oVPLRfiRD24Yg90VvfD6mSEoh7Ep4TDYPJiSGUUDCsenReL4U3PRbLQjJ1ZHnydhGgUOPDobLUYHYnQqUefloxvH4ZUrvFDKpaJQ1esnpeK6iSlDUpVHp4SLuGfAHwc4MgwLo8MDvXqoy/XS+tfWpXHVf9FC3jbgwN/213OskwR6G3T7Avj4SCMa++0YnxaJO6YFsQn7qnpxupFQa4XYhOZ+O34vJ6yTayYEU0IdHj/2VPbCHyCblrdU8ogBg9WDyZlRok3Ya3HThF/egQJwmRmDTkRrVUOwCRYXwSYIuxj8+wD/GJvgC7CiURzAbVq7Bzq1Ygg2od5gQ4hCRgnA/Ncp7TDD5QtgQpoYm3CuxYReqxuTM6JEhPLTTcTBVJCopwc0QBKQD9caEK9XY9XEFPpzLuswY3NxB9RyGVbPSKehi40GGz4+0gSnN4DrJ6XQVnqX2YU3dtegx+LGvLxY3Ds7S4RNqOi0ID9Bh9evHImoUBX8AQbP/FqBfVW9iNWp8NY1o+kN/vXdNfjqZAsUMgmeX5qPWzhswjenWvDn32sQYFgsKoijnYt9Vb24f2PJEGxCTY8VK9cTbIKMwyZMyYwi4Mo3DtEbrtAqLhxRCcdjj20upWLSUJUcFRw24bNjTXjjD7AJFxPN+RA4lzeAgpf20hTnW6emUYGy8L0nZUTSbJB1v1VStlpYiAIX1i2EVCrGJqjkUhx8LIhN4PltUgnw7R2TMGtYDHwBgk2o7SXYhNeuHEkFv6/uqqbdlHvnZOHpJXn0Z/vML+Uwu3y4YnQi3r1uDCQSCZr77Xh0SxnaBkjw3jvXjUGoSg63L4A/7agiWphoEtjJj05+LGzH9tIuRGqVeHyRGJsg7OTwRf+gw4uvT7VgwOHF8pEJtFPEMCy2l3VRbIIwkJGmC0dpMSc3mC5scfpwqsmI8BAFplyETSjtNINhWIxNjRAdqH1WNwadXmTHhIq0LV4/A4vLh0itcsgB/EeH8sWL4Sq9i0fvbl8Ado8fUVql6Dlic/vQY3EjOSJEZC+3OAk2ISkiRPR8sLl9nBZGjhnZ0fT7cXr92FXeQwsb3t7t8QewtbiTYhP4LB+GYfFTUTuqu60YlRyGa8cHE9g3FXWQsXq4Bg/Nz6bP29/Le7CxsA0hChkemp9Df5enGo342/46uLwB3DYtnX7uKjotePLnMvRa3ZifF4e/XD0SCpkUXWYX1n5XjJoeK/LidfjytglIjtDA4fHjhi/OorzTAq1Sho9uGifq/F5a4nVpXPVvXg7OWpsaqcGHN4ylr1ucPnSanUiP0opa6RanD5XdFiSFh2Dx8Hg6IjA7vTS4alZODG3j2z1+bC5qhy/AYunIBHrjd/sC+O50K/qsbszPj6NtcX+AwTenWqgW5vqJKYgPU4NlWfxY2I6jdQYkR5BNy+sEfi3pxE/n2gk2YeEwimA4UmvA2wfq4PExWD0jg27aC+2DePLncvRxWpi/XjsaCpkU7QNO3PHtOTT1O5Abp8M3d0xEYngIHB4/rvv8DCq7rNAqSWIxXzjc/FUhxSY8NC+b/qxe3F5FDz0hNuHrU60UcqpTyXHi72ATflgzGTNyotFv8+DaT8/Q27XR7qVi47UbiikFuNlox7fcYf+XPbU4WENu/GeaB6gWZmtxB3XFnG8bxMqxSUgKD0FFl4U6UNpNTlw9LhmLhsfD4QlgZ1k3PH6SEXSywUiLnFONRpqkeq51kBY5vRY3Fa13DAZv3X/vSAlVyRGjU6Fz0IVIDlwIkIJgSmYU9lf3IVKrpF0cgKTbfnqsCQqZVBQ2eMPkVLQOOGB1+3H9xBR6CF05Ngk1PVZ0DpJODj+Cm5QRieeW5qGkjXRylnMZUCFKGX5YMxm7K3oQpVWKAhy/un0ifjnfCZlUIoIVrltegAnpEbC4fFiQH0cPx5Vjk5AerUXbgAPjUiOodiYzJhTHnpyL2l4r0qO09HWFTIpdD85AU78D4RqFSE+ybnkBHpibDalEIirsFw+Px6KCuCHYhMyYUBpRwC+GYaFWyKg1mV9mpxdqhQw3Tk4VWePbB5xgWOKy5NEYABGbmxxejE4Jx+OC50NVtwVN/Q6MSgqjOAv+9eLWQaRHazErJ5r+PhsNdg6bQIIHea1Ih8mJDWdIxMSNk1Jpbo7B6sZHRxoxYCcdlKUjExCnV3PYhCo0cFqYxxaS0a/HH8DLO2twiouYeHVlMIH97f11+OlcB/RqOdatKKAH8YYzrXhjdy18AQZ3z86k+q+9lb14dHMpXL4AJqVH4oe1k6GUk7H6DZ+fhc3jR6RWiZ/vmUqwCTY3Fr8bxCZ8cP1Y2p264qNTNNPp5impNCTy0c2l2FdFOmPfnGrBocfnACBj9Q+5cdf6I40ofp6M1fdX99Fgx42FQKxOjbl5segwkXEhv8I1CqqhW7e9knbUJRJQwfw3p1rp+Py9g/X0eXm8oZ8W9jvLuvHs0jxEh6rQNehCbS/p7tX12dA56EJyhAZeP4Mubu87vAH0W4Oj9EvrX1+Xipx/Yf1eTlgnHj+D8WkR+OnOKVDKpTjfNohbviqE0xtApFaJbfdNQ1qUFgarG4veO05J3UKrOC9sA8RamId+ukApwD+cbaOtzg8ONZDEUJAY9hIu3+H3ih68vJMUAZuKOpAaSbAJ7SYnntsW3LQRGgUtpF7aXkWt4iFKGW3jf3emldpNPznaRDft6aYBNHLjgN2VvVi3vABRoSp0mp30wdNgsKHH4kZieAi8fgbd5iA2gbeZA4BUcJsT3uySIkIogThNkDScH69DlJYQiMemCbAJ8aGYmhmFqm4LhieGYVg8KeAitUqsmZGBgxyEkg9jBEgGy4YzrQhRyETakGcuy0dYiBJOr19kFb9zZiakEgl6LC7MyY2lOozp2VH49ObxBICZoKcakDCNArsfnoljdf2I06tFLfPNd0/F0ToDlDIpLfjIe+dh+ahE2D1+jEsLp68vGh6Ps8/Nh8HqQWaMlrawUyI1OPoEwSaEC7AJcpkUn986Af4A6fD8M9iEiemR+PW+4KHu9TMUm/Ce4IB2+wJo7nciLkxNwwoBMtY62zyAKE5/xY9Z3b4ADlb3QSoFZmTH0MPC62ewq7ybFja81orHJrQYnZiSGYlpWdEYw2ETdpR1o4jTwtwyNY061/ZW9tCwvfvnZtMk5VONRjoWvntWJv2eyjrMAmxCEu6eHcQmPLq5FM0cNuHtVaOhUysoLJdP9f305vHIT9CDZVms/rYIR+oIAuMNATbhhd8qaGKyEJvw+fEmvL6bdMbSojQ4+BjBJhys7sNaLtNJIZNg14MzkRuvQ6PBjss/OkWLXyE24YqPTtK8mJqeIDbhsS2lNDH5WH0/DvOH/ZFGbODG6r9X9NCx+qGaIDahqHUQc3NjMTUrCh0mF/3vm/odOFDdhzumk7H6xsJ2mBxeGO0e7C7voUXOmaYBqmc50WDEk4vJ56PL7KKvtww44GcYKCGFn2GphdwXYOjfUyWTEQQOh02IEIQBTkyPRLPRAbVCilFJ4fT1y0YkoLTDTF2BwtfPNA2gz+bG4oJ46GkKehSun5iCmh4rRiSFUQdjSmQIXr1iOAHnhoeILOFf3TYBW4o7EKKQY43Aofbm1SPxY2EYXL4A/QwAJGIiLUqDXgsJKuW7S5MyIrHrwRmo6bEhL15HC9cIrRKHH5+D0k4zEsLUlxxY/03rUpHzL6w+q5smx3YNuujmBFjaqucPEABQyWWICVXB7PQhVCVHpCaITZieHYUtxZ0IVckxNjWcvsfSkQmo6rbAF2BFm/byMYl0RLVIwDqZmxeLGyaloq7XitECbAJ/CztWR5I6hZv2uzWT8Mv5ToSq5VgtsEK/fe1obCrqgMfP4GqBWPWe2VnIitGih9u0/BhsWlY0dj80E3W9NhQk6unmjNAqceTxOSjjNq3QgbJh9SQ09duhVoixCffMzsINk1LhCzD0oQAQNEPxCwuGjMRidWrqfOIXy5K2+vPLCmiGEUBa3TKpBEtHJoiAej0WF5zeALJitPRAAshtvNviwvBEPT2gAYJTqOmxIicuFEtGxNMiptXowImGfsTq1ViQH4esGaTg6ja78FtpFxRSKa4Zn0y7KP02D77jtDAruRwSgAQ7vnOgnoInr5tIgJEefwBv7a1FSfsgcuN0eGJxLmL1pFv3zoF67KnoQYxOhRdXFFDdxIYzrfjkaBNkUgkeXxSEXu4o68YL2yrg8AZw3cQUihsobjVh7YZimJ0+ETahc9CJqz4+DYPNA61Shg1rJmN8WgQ8fjE2Yd3yAqzhOjhrviuimU5Cq/iff6+mB+jb+4PYhE1FHbQg/+AQsO+RWciN16G804KHfrpAf/4hShlumJQKjz+Ae34ooa8HGFDt0+u7a6gWxmjzYDcHRNxU1I7CFhN97zUzCDbhfNsgSrjb+IGaPnQOupCfoMCA3YOSdlI0tA04Ud9nQ34CCdPkhfoeP4PWASf9PnyC3CceuwIAEZogNiEmVEUL/ZRIDcUm5MTqEBXKYxNUmJUTjcIWE1IjNRiTQg5DqVSCu2dnYev5DoSFKESC8kcWDMNHhxsRYFjRQXz37Cy4fQEY7cQqzo+GVoxOxIDdS11NUzKDERPfrZ6E041GpEZpcB2n35JIJNh+/3Tsq+rlsAnB937v+jG4orYfvgAjimJYMyMDUzIjYbB5MD4tgr73mJRwnHpmHtpNTmREaWmXLUyjwN5HZqHX6kaERiEaY715zSi8snI4ZBKJaMwmDF3kF8uyKEjU4+d7pwk+IyzF1wi7cv4Ag7YBB8I1StwyNZ12WAMMGZ+rFVKMSQmne5RhWJxuMsLtC2BaVjS9LLEsEbP3WNyYmhUl6pgeqTXQy9jcvFgM57K7TjcacbDGgIQwNW6ekkZztc63DWJjYRtUcinWzswc4tS7tP65dUmT8y9qcup6bei3eTAmNVwkPDM7vegcHEr5DjAs+qxuRGiUQzQvvgADmUTyDy3kfw+bwOfvCFvuXj+DdhPBJghb9L4Ag9IOMzRKGQoS9PTr+QMMTjcNwO0LYEZONH2wMAyLI3UG9FrdmJ4VLcImHKjuQ1U3uQktyA+m0h6pNeBonQEJ4SG4fVo67T4UNg9gU1EH1Bw2gU/Kreyy4P1DDXB5A7hpciqFVbYYHXh5ZxV6zASb8MSiXMikEgzYPXiUwybkJ+jw7qoxiNWr4fEHcP/GCzhU24d4vRrvXz+W3tB4KKFcKsHTS/JoR0Noy56RHU3D77aXEk0Iy5IU4f2PzkKkVonKLgtWrj81BJtgcfow+Y2DNNhRqIWZ//ZRCg4VYhOEdlONUoaqlxdDIpHgk6NNeHNvUAtz8LHZyI4NxekmI278Ijiae2fVaFw1LhlWtw9jXv7H2ATh30+ohfl72IRQlRz7Hp2FpPAQtA04cPlHp4huSy7FhtWTMCUzCr4Ag+s+O4OS9qHYhLf31+Hjo02QgGATeJfLweo+vPBbJSwuH1ZNSMbLnG6nw+TEs79WoHXAgSmZUXj1ihEIUcq44q6OJPzGaLFueQEtgLeXdmFHKenkPCTAJtT32fAd5+K5bVo6Lbytbh82nm0n9uBRCXREy7IsDtUY0GwkGrqLsQklbWRkJLRP2z1+FHGxBGNSwkXYhEaDHQGWRW6cTrRnLU4fbB4fksJDhmATPH4GKvl/jE34e8vNdUouFquanV6YnT6kcGBZfhntHrQNOJEVoxVjE6xulLSbkRIZQg9hgIjWD9UaEKqSY0F+HL1oWJw+bLvQCT/D4vLRiYjlxoROrx8bzrTBYPVgQUEs1cr5Agy+OtlCYx7umJ5BsQlfnmzGsXoStvfk4jwqAN5c1I4fzrYjRCnDE4ty6Z7eW9mDv+6rg8fPYO2MDBpOWtRqwiObStFndWNBfhw+uGEslHIpmvvtuPXrc+T5HKXB91wCu83tw1Ufn0aDwQ6VXIqPbhxHu7LXf36GusTWzMigGTrP/FJO2YQjkvTY9SApor880UxBxCq5FCefnocYnQrH6vtxmyDm4bvVkzB7WAz6bR5MfO0gfV04uhdGTEzPjsLGteLL3P/1dUmT829eufE65Mbr4PEH8MGhBi5sj4TDjUhSgmFYfHqsCcc51smTi/OQyI05NpxpxY+F7dCp5XhqSR59cO4q78Zf99XB62ewdmYmvRGfbjLi8S1lMNg8WDI8Hu9fP4ZiE275qhA9FjdSIkPw49opSInUwOz0YuX6U2gd+I+xCXfNyqR22md+raDg0OGJevz+ENm0nx1vpgfuxdiEu74Pwgf5TdtlduGOb4MOFK+foV2Q+38sgdFOZto9FhfVwrx3sJ5qYap7rLTI2VHaTUnndX023DY1HfFhatT12XCcc6CcahxAVY8VsXo1HJ4ATjcZwbKELFzeaaYPRP6g9zMs6vuCAY58Rw4QIxT0agVUcikltvNW0kitEmlRGjT1O5AUHoI4TgCtUcmweHg89lf1IU6vou4QALhjega+PEGC924QuEDWzszAoNML20VamOsmpqDL7CRamOxoZHLF4JSMKLx6xXBcaDcjJ05Hb4l6tQJb75mK/VV9iLkIm7BhNcEmyKQSrBwTvOm+tKIAs4fFwObxYc4wMTZhWNwsdAw6MTIpnB40aVFanHh6LpoMdiRHaOjrCpkUv9w7Dd0WN3RquYii/PiiXDwwLxsSSETdt/8ImyBMWGZZFla3D1qlXBTQxrIsOkxOhKrkuGJMEh13sSyLSi5kcHiingYAsiyL822DGHR4MTkzEvfOCY7ailtNaOq3Y2xqBPc9ke+LxyakR2mxdGQwN6e804xd5UQLc8uUdNqx4LEJDMvi1qnpdATRYXLinQP1RGA8KgGrJqQgTKOAyeHFKzur0GCwY1xqEJvg9gXw7K8VONVoRDqHhuEvA3/aUUUiJtQKvHrFcOpmWn+kEe8eqEfgImzCbxe68OTPZfAFWAxP1OPX+6ZBJZfhfNsgbvziLDx+BqEqObbdNw05cTr0WFxY8HYQm/DudaNp5+/yj07Rsfp1E1LoeOzBTRfoXtxS3BHEJhxqpPb1b063oOSFhUQLU9VHSefbS7uRFRNKtDCDTjrKA0gHmr8kvLW3jqa/f3mime7pLcWd9PLw7elWWuSUtA3S7/VYfT/sHj8i5Ur02zzUZdY56ILJ4UVKpAYBhnzOANJ5452pABAeEiwAhUgQki9EunIjBbq3cWkRSIvSoMfsxpzcGOhDyBE7IlGPubkxqOq2YniiHiO49PIorRIPzsvGwRoD4vUqUTfq9auIu1Qpk+K+ucHP7KX1n1uXipz/4tpT0UtDnn4v70FevJ6yTv4icKakRWkp6+Rv++qo+2XDmTZa5Gwr6UIb1/beWNhGi5yStkFa0R+tM8DpC0Avk8Lk8FKdS6/Fzd3YSNfIyT2o/AEGHl/wII/jDifpRdiEkUlh2FHaDS8X58+viekRSI3UEIdAfhzNQRmdEo4F+XGo6SGbdhS30eP1ajw0LxtH6vqREKYWjdrevHoUNhYSAKZw0760YjiSIzRwev24TlAE3D07Ezq1nGpheEfVtKxobFw7GRVdFhQk6KkDJVKrxL5HZuFM8wASwtSYkR10Wm26awrONA1AJZdRkjFAwvmuHJsEh8cvAv7NzYtF0fMLaNYQ3xon2ITZcHj90CrltPumkElFAlPhunlKmmhMyOsPRiWHUyAlQMZpA3YvkiJCqKASILflJqMdqZEarpXOve7y4WRjP6JDVRiXGkFF6HaPH79d6IJEAiwqiKcCYJc3gJ/OtcPqIoF3CwTYhA1nWtFqdGJqVhQWFsQhJ04HhmHx/dk2lLQNIjs2FGtnZtB2/a8lnVQL8+iCYbSDsr+qlx5u983Jpu9R2DyAl3dWw+Ly4epxSfS22tBnw/0/lqDF6MCkjEh8fNN4hIUoYLQTbEJtrw1xehW+ui2ITbju8zMoah2KTXhoUyl2cp2xK8Yk0t/HB4caKeRUiE3YU9GDezeSrpVMKsGuB2cgP0GPul6bCJvw5tUjcd3EVIJs+PQMLYzbBoLYhKd+Lkc5hywo67DQELjPjzdjG+dcO17fjxWjCDbhWL0Bv3E4Bd72PSkjEp2DZLTJsiRJ+VSjERkcNuH3ih64fQzcPg+ONxhpkVPRaaHaFv4CAwA2j58GQVrdPsH4XAqVXAqPnwA3hdiE7NhQlHVaEKlV0gR2AFg0PA4bC9uhU8kxQ5DAfu34ZLQPOOALsKJ09GvGJ6Ou14o+K+HZ8QXC3LwYrJ2RgZpe0gHm0SapkRq8e91oHKsjVnGe1QcAP6ydjF/Od0KjkovQDO+uGoNfSjrhDTAi7tmdMzMxLF6HPosb07Kiqet0cmYUDj42G/V9duQn6KhrK1xDtDDVPVbE69Wi8fknN49D56ALKoWUBkoC5OJyw6RUiurh17jUCBz7OwnsvJuRX25fAEqZFI8vyhWJ0A02N5QyKebmxorcVa1GB+zcc+ofudwureC6NK76L1rInV4/3jvYgNpeku/wwNxsKOVSsCyL30q7cLzeiKTwENwzJ4tuhpoeK34r7YJORbAJPLHY4vJhe2kXvH4GK0YnUocIw7A4Vt8Pg82N6dnR1OUAEMFkQ58duQJsAv991fbakBAmTjZmWRY9FjfUF2ETANJ1YVj2X8pn4JObVXKpaFYOkK6NUiYVWdkBcsC5fAEMTwwTbdrqbiu6zS6MTQ0X/Znqbisquy3IjdNR+yb/+tF6A+J0alw+JpE+tJv77dh6vpOCJ/lWepfZhS+ON8Pp9WPVhBTK5hqwe/A2j03Iicbq6RmQSiVwePx4fXcNyjrNyIvXY93yAoSF8NiEauyr6kWMToU/rxxBxx8fH23EJ0eaIJdJ8OTiPNpd2VrcgXXbK+H2MbhqbBLe+QNsQnqUBr/eNx2RWiWa+u1Yuf4UbG4/VHJC156QHgm3L4BZbx2hRe6zl+XR/KSrPzmN821ERzJ7WAy+48Zjwha7Xi2n2IQNZ1rx4vYgHmHPwzORn6DHuRYTVn02lJHk9gWQt24vff3GyalU07PsgxNUCzMqOQw7HiDhkfy4ECCjufKXFkF+EZ9JJpVg78MzkROnQ1O/HUvfP0ELii9unYCFBXEIMCwWvnsMzdwN/uklebQzIySXC+3rO8q68fTP5XD5ApiTG4Ovb5sIqVSCRoMd9/xwHk1cYOfnt0xAhJYIz5/+pQKFzQNIj9Lir9eOogfiVydb8PP5ToSFyPHMZfnUklzUasJnx5rBskQLw49nDDY3PjnaBJPDi2UjE7CIc1UGGBY/nmtHI6eFuWJMIu2mFbeacLZ5AKlRWiwfmUALaYPNjcM1Bug4aC/fHfMFGOram5ETLQpebDUS1MuIpDDRvnZ4/OixuJEUHiIan7MsC5vHD41CNmQf/zPJyzw24eJniNsXwIDDi5hQlair5/YF0GiwI1anovuTf/1ciwlalQzjUoMJ7F4/gyN1Brh9AczLCyawBxgWeyt70WNxYWZODBWg86J1nmG3QpDAvq+qF4dq+hAfFoI7Z2bQr3WkzoAfBZcxXt92vm0Q7x2sJ2P1Kam0y9XUb8cL2yrRZXZhTm4M1i0vgEImhcHmxgMbL6CCG6uvv2kcEsKIIWPthmIcr+9HuEaBD64fSy9qfJyDRAI8vjA48n73QD0NX52YHoGt9wR1Rv9X16Vx1b95ubwBGGxuxOnVdOQDkOKiuoPcCK4cm0w3gtsXwLH6fmiVMoxPi6AtZbcvgN/Le+ANBDA/P44ADkE6ML9d6EKvlbQ9+bY4y7LYXtpFtTArRiXQB/COsm4crSXgybtnZ9KOzJFaA+mgKGW4X7BpzzSJsQl8q7S214rnt1VSbMKLywsgl0lhsLpx/48ltIPy8U3jER+mhtsXwG1fB7EJ628cR90sD/50ATvLuiGRAI8uEGAT9tTQILbJGZHYzOWmbCnqwFO/kCA2ITahpH0QV39ymt5Geaq4yeHFFetP0htrx6ATjywgVvE7vi2inbHzbYN0FPLKzipqN91b2YvyPxEbyKaiDnoQH6/vx7y8WGTGhKKkfZAenpVdVszLi8XSkQmweQhQ0hcghePeyl5a5Oyp6KXOtYM1fbTIqeq2Ut3O+fZBenA4vH6qq7C6/fBzglW5VAKVXAYb/FDKgrduuVSC7NhQGGwehChkSBUUuPM5MKlUAswRBDguG5WA4rZBWF0+rJoQHI8tKojHqUYj2gYINiEzhnye+KL9PNfJ4QXWaoUMn98yHjvKuhGlVeI+Acz045vG4cdz7ZBAIkprXresAPkJelicXiwZkUAP0CvGJCFWp0aL0YFxaeFUnJ4VE4pDj89GZZcFGdGh9NCSSSXY8/BMlHcSSCMfNgiQbJz75mZDAtDRMABcPjoRiwri4PEzopFDdmwoDj42e8jhrVHKRbEQADlc5VIJ1szIoB1WgOTdMCyLiemRIr1Ot5mMQ4bF6USE8vYBJ5qNdhQk6EVdiQ6TE+fbBpESGYIJ6ZG08O42u7C3shehKjlWjE7E9dzP1GBzY0tRB3wBFteMT6ZOPYvThw8PNRIb9vB4zM+PQ3q0Fi5vAG/urUU9dxm7Z04WsmNDEWBYvHewHsfq+5EcocFzS/PopeizY00kYkItx3OX5dMsn19LCDbBFyBjdV5rdbLBiAd+KoHZ6cPMnGh8edsEqOQy1PXacNOXZ2G0exGvV2PTXVOQHq2FxenD0g9O/CE24aqPT9OUcqHr9Kmfy2gHTIhN+OJEM+2cK2S1OPXMPMTq1Dhca6BFNECYYXNzY9FndeNuwbidZVnaTXlyaxkdq1vdPjpW/+RoEyWatxgd9Nm+v6oPZ5qJwP77s224e3YWksJD0NzvwDkuqLGk3YxGgx0JYSFw+wMo5cTsZqcPdb02WuR0cuM0lgW6ue49AFFheHEW2aX1H69LRc6/sGp6rLjxi7MYdPoQq1Nhy92EdTJg92DpByfQZx2KTVi5/hTNTBBu2kc3l2JPJcEmCLUw64800Rb7O/vrKevkUI140+rVcszJjUWHySlyoCjlUlpQPL61jOY7ODx+fM1hEz473kSdJm/uraVFzoGqPtoJ2FjYjgfmZSNWp0az0UHtqfymjQ9Tw+kNUM2L2elDc7+dFjkGK9moLAsatQ4AWoFjQggrTIoIodiEjBgCLgSApPAQjEwKQ3knQRfwmS16tRyrJqRgfzURG8/PC2o9Hp6fg69OtkApl4qs0w/OywHDYohV/NapabC5/egcdGLWsBiqhZiRHY2/XTsa5Z1m5MbrsITHJoQosP3+GThU04dYvUqUb/LD2snYV9kLuUwispC/uLwACwviYHP7MT07ih6ui4fH48TT89BtdiE3XvcH2AQn4sNCaDdQLiNdHbPThxClTHRzvm9ONu7lujrCw3tmTgyN1ye/E2LhjQ9TixKWfQEG3WaSv8PTuAFSeFd3WxGuUWDR8HjalfAHGJxpGoBEQiy+fAHPdyDNTi9mZEfTQ51lWRyu7aOBd1OzoujY4kitAYUtJmREa3DN+BTatTzbPIDtpd0IC1FgzYwMWlCUdZjx5ckWYumekUEL+0aDDX/ZUweTw4MVoxNxx/QMqBUy9FrceG5bBde9icSrK4cLsAkXcLppAGlRWnxw/RhacD22pRS/lnRBq5Th9atGUg3QW3traZyDsHP007l2PLeNYBMyY7TY/dBMkmbcYKTJyCEKGXY+OB3ZsTp0Djqx4J1jtGslxCZc/tFJeuCeazXhb9x47JFNpTRnald5N82FWX+0EZ9z1vktxZ24sI5oYfZV9eIT7ns9VGvA2NQIzMiJRofJifcOkg7BhXYz8hN0uG8OGat/fLSJYhC2FHfQImdPZS/tIP52oYsWOXV9NhqTUdZhhtvLQCWXwe7xweoiBb/Z5YXDy2leBKgECcgInV/ZsaGo5rAJ6YLE8clcBpTHz2DWsODYbHpWNPLideixuDE/L5ZqacanRWDF6ERUc66mcSnk8xETqsKzl+XhUI0B8WFqWjwCwAc3jMVP5zoQopDS7ihAUrSzY0Ph8vppWjhAtHURGgW6zKSLxEdMTMmMwi/3TkVllxX5CXqqJdKrFTj4+GwUNpsQp1djYnpQHrBx7WSUtA1CpZBhdHJQ63P/3GxcNS4JDg9xgV5a//y6NK76F8ZV59sGccMXZ+H1M9AoZfj1vmnIi9dj0OHFFetPod1EBL+f3TyedmB4J41CJsG65QW0Y7OxsA1v7K6FN8DgnlmZVKtQ3mnGM79UwGBzY2FBHF69YgTkMinMTi9e3F6F6h4rRiTq8fIVI+jo5MuTzThSS/IdnlqSS8ddZ5oG8NM50n69e3YmMjkRZa/Fje/PthJswoQUelv2BRhsK+lCD4dNGCMYDZ1vM6Gqm2xa4c213+ZBcauJYBMEmh5/gEFZpxkquQzDE/WiQ7fP6obbF0BqpEb0utdPxH/hGsWQ9jjDsP/QheYPMJBIJEPm1ja3D24fMwRWyGMTsmJCRa37Pqsbdb02ZERrRaPAfpsHp5uMiAlVYWpWsFAZsHvwe0UP5FIpVoxOoO1vq9uHzec6YHX7sGJ0InX6uH0BfHu6FW0DDkzNiqa6An+AwecnmjktjA4Pzc+mbrfvTrdS8OSTi/Nosu7P5zvx2TGCTXh4QQ69ER+tM+DF7VWcFiaZggQruyy4+/vz6DK7MCEtAl9x2IQ+qxvXfnoG7SYnwjUKfHvHJIxJCUeAIZwivpj904oCKvRc+10RFY4vGR6PT28heUtv7q2lB2uUVomzz82HQibFz+c78cTWMgDkYNv7CKGKV3dbsfSDE/Tn/PqVI3Hj5FQEGBZ56/bQbt0145PpYb/8wxM00ykvXkfzpITuMYkEqHllCdQKmei9AWDHA9MxKjkczf12LHz3OI2DeOvqUVg1kRQa0/9ymN6q/x6MUZggvaW4A8/8Ug6GJd2GHQ9Oh0ouQ2WXBbd9fQ4DDi/SojTYdNcUJISFwOb2Ye13JIsnXq/GZ7eMp+PYt/fX4cdC0k15cXkBpXsfqO7Dewfr4Q+wuHNWJg0L7TA58ebeWmpSuGN6OiQSCU1gr+uzYUxKBO6cmUG7aXsre3CsngAwV0/PoHugqd+OnWXdCFURbAJfeDs8fvxeQdKFLxsRT0fKvMC71+rGpIxIkYalx+JCc78DObGhorGUxx9Acz/BJkRfNM4edBBswsXwYZZlhwQ4/tH6o4RmlmUx4PAiVCUXXQxYlkWL0QGVQiaCpxIxuxUOrx/jUiNECewl7WZ0m12YmB4pSmC/0D6Iii4yVp8sMCCUdphxuKYPcWFqXDM+mY4Va3ut2FzUAaVMilumptHCvtXowMdHG2H3kKKK1+cYrG78ZU8tOgdJxMR9c7P/T2p0/tnz+1KR8y9qcgxWgk3Ijh2KTWgbIJtWaM0EiJ1TIfvjTQv8x9gEgBx+F8/JGYaFweaBPkQuypPgbawX59CwLIvyTgtcvgDGp0XQ8QfLsihqHUSPhWxaYbu/sHkAlZwrQOgaOt9mojehVRNS6EOjssuCTUXtUMtluGNGBn1oNPXb8cnRJk5gnErzIHosLry+uxZdXAflwXk5kEklsLh8WPdbJco5LcxrV45AVKgKAYbFc79WYC+HTfjL1aOo5feN3TX48mQL5FIJnl+WT4vJDWda8crOavgZVkTdPlzbh7u/Pw9fgEW8Xo1dD81AdKgKtb0Em+D2kTHFDxw2wen1Y9pfDtMbq9AqLrRrC7Uwj28pwy8lxLkmxCZ8c6qFBjgCwN5HZiIvXo+zzQO4XkA052/2bl8A+S8GsQlC6KIIm5AeiS33kPHfi9sraSaNXi3HhRcXQXYRNkEpl+Lgo7ORGqVBq9GBZR+cgIPDJnxzB3HNBRgWKz48ieoeKyQS4E8rhlNx6Gu/V+OLEy2QSEjOkRCb8NTP5bC4fLh8dCLevz6ITXhkcylajQ5MyojCe9cHsQkv76winZwoLf4swCZsLmrHL+e7oA9R4InFw+jItayDYBOYizo5ZqcXX58k2IRlF2ETfivtIp2c9EiRsLOq24KiFhPS/gCbcKKxH3q1AtMFKAGGYXGhYxABhnQMhAeNwerGoNOHrBjtEGyC2elFpFY5ZC/7AuSz9o/wKRdzkQBSMDu9AURcdDGwuX3oNhNsgvC5Y3P7UNllRUKYmsZC8K+faDBCo5RhZk4M/Tu5vAHsruiB2x/AkuHBwsbjD+DXki70WQnyhB/XMpzmqJqzil83IYhN+LWki4t5CMGD87KpJnFvZQ9+ONsOtUKGh+fnYCTXyTjVaMRf9xFswq3T0qjAubLLgqd+LuewCbF4/SqCTeg2u7CGwybkxhFsQkqkBm5fADd+cRYl7SRC48MbxtKi8c4NxZQl9sDcbNrB5D/bgBhQvLGwjSYmh6rkOPLEHMToVChuNeEagWj9mzsmYm5uLAbsHkx6/RAtoh+an4PHuAT2mW8dRoeJjKmmZUXhxzuJVfz+jSX4vYIkqocoZKh+hURMfHy0EW/traPvceSJObTr/H9pXdLk/JtXrF5Ng9g2FrbhaB3Jd3h4fg5tc+8s66ask4cXDKMdkaN1BrxzoB4eH4M7pqfTVml5pxlPbi0nVs78OLx5zSgoZFJ0mJxY/W0RGgx25MXr8PXtQ7EJGqUM628cRztHfBorANw3JwtPcQfPn3ZUUaCoEJvww9k2rOPEpxqlDMeenIsYnQqnG4248ctgNguvhTHah2IT+E27+tsi2s5u7BdjE/gHyckGI9XC/FrSRV0xJe1mXDk2CWlRWlR2WehNuXXAiSvHJWHx8HjYPX5s4wTaFpcPx+v7aZFzumkgiE1oMdEip2vQRR0orUYn1WHw/wewona5VilHlFaFLrML4RoF1XIoZVJMTI/Egeo+hGsUoiyRq8cl4dNjHihkEpHb47qJKWjqt8Pq9uE6gRZm+ahElHda0MblwvA25QlpEXjmsjzqauKt4mqFDN+vnozfK7oRpVWJtCFfc9gE6UXYhOeX5WNcagTMTi8WFMTRQ2vl2CSkRmnQPuDE2NRwpHIjgfRoLY49NRe1PTakRWlogSyTSrDjgeloMNgRrlGIxOzPLyvAA3NzAInYZstjEwIMKzrQM2NCqSCZXywneOfBlvxrJocXIQoZrpuYiusmBkcKHSYnWJa4/D4Q6Gca+mww2r0YnRImwqrU9lrRaLBjVFK4KJW2rteGcy0DSInUYPawGPr7bDTY8Ht5L/QhBJvA/w46TE78UNgGf4DFDZNSqKPNYHPj4yNNMNo9WDYyAZeNTECsXg2b24c3d1ahvs+OsanheHTBMMTq1fAFGLy6qxrH6/uREqnBy5cPpz9rgk0guJUXVxTQ+Ifvz7bhL7tr4AsQqzh/EO+rItgEpzeASRmR+GHNUGxChEaBn++dhqyYUJgcXix69zgdH7933Rg6qhZiE4SC8se3lmJ3BRmrf30yiE1Yf6QJH3CC2A8PN6Lo+QWI1CpxoIZkIfErTq/CvLw49FrdeFzQSdOqZFQL8/y2SmoVZ1kWX3Fj9e9Ot6KUc429f7CBFjnH6vupbue30i48uSQXsTo1us1BbEK9gWATUiI18AZIdhgAOL0BkeZFGCXBA43J962mCeyJ4cFuTXZMKE1gH56oh1ZFLnhpUVpMyoikFzO+axuuUeL2aek4UE0iJi4TjLCfWZKPb06RsfqD84Kho48vGgaVQgq72y/S0N0+LR0+P4vOQSdmCsbql9Yfr0tFzn9xdZhctKIHQEPJAOClHVVUCyOTSmji67enW6nd9KMjjbTIOdloRB2X4bKrvAfPLctHdCjhE/F05fo+G3osLiSGh8AXYNDLbVSnN4B+geZF2J5jBP8jITyITRBaRHPj9YjRqdBv82BcagTVfmTHhWJyRiSqu63IF6YZa5S4c2Ymt2nVlF8EEEv4d2daoVbI8OC8oCj16SV50KnkcHj9ohk4n7bcOejE7GExVEg9LSsKn948juhwEvRYxGMTQhTY/dBMHK0zIFavxlLBA2PTXVNwtK4fSrmUdooAgk1YOjIBdo8f49OCbo25ebE48+w8GGweZERfhE14cg4G7F5EaBW0tSyXSfHFrRM44rv41r12ZibWzhRjEwAS4/6bgIXkCxCmVZRWiXc5dxVAbsstRhvi9GrcI9AC8E6TSK0SM3KiqYXX4w/gcG0fSc4WpK76AgSbMOj0YX5eLD3AGIaI1nm79rSsaNr5+L28B+daBpARrcVNU9Loe+yv6sX2sm5Eagg2gbfZn24y4gtO+3HnzEzaKanssuDVXdUYdHqxYlQiHpiXDTnHN3t8ayma+x2YkB6Bv11LsAlWtw/3fH8eZ5uJFubjm8YNwSYo5VK8ceVISln/044qfMsF/QlHV1+fbMErHN8sKTwEhx6fDbVChsO1fVj97VBsQvuAE8s+OEGL3zeuIlBPlmWxcv1p2DnheHW3lVrFH99SRsWkR+oMFJuw/nAjvTzsKu9B1cuLoVXJcajGQBEP51pMmJ0Tg2nZ0eg2uyi4s8Fgx+SMSNw9O4uy5gYcXhjtXuyu6KVFzulGI82wOVpvoEVO56CLRkY09zvgCzBQyqUICLAJfoal8EyFTIIorRJGOxGtCwvTyZlBbMIYrisDEHF6UesgPL6AKOV4yXAiWu+1uLFoeBz9WtOyonDDpFQ6Vp+cQTrA8Xo1/rxyBAHnhqnpJQQAPr91ArYUdSBEKRMV8G9cNRKjU8Lh9PpFure7Z2UiJVKDXs5RxY/HJqRHYvdDM1HdbUVego4Wrnq1Aocen4OS9kHE6dQoSAze/r+9fSJqeq1QyWV0BAyQPX3t+BS4/QERD21yZhSKnl8wxEkWw2k0hYtPYF+3vECU9+T0+iGVSLBsVIIIO2O0e+DyBpARrcU7q8bQ17vMLnSbXciL1+HhBcFiqHPQiapuK7JitCIhfrfZhRMNJGJibm7sPxzz/391XRpX/Rct5CxL2rLCTg7ffi3tMGNLcQc0ChlWz8igIyCj3YPNRR1wc6wTvhIPMCz2VfVy2IRoEbukutuK2l5C2uZb9QCxnZdz2AThB5xlSey8WiEVUXwB0n73BAKimTn/Z/6IJP5Hf+c/aqlbXD7IpZIh4ziD1Q0HZ40W/rkOkxM9FjcKEvWirIlWowPVPVbkxIaKUBAdJieOc5t2QX6wK9FtdmHbhS4oZBJcMz6FWuMH7ASbYHX7ceXYJKpzsLl9+PhoEzpMTszMiaa3JI8/gPcPNuB82yCGxenw5JJc6NUKsCyL9Ucasau8B5FaJV5YVkAfkD+cbaPYhMcWDqMFxd7KHjy3jaT6XjMumYannW8zYe13xRh0+lCQoMePd04egk3QKGX4fs0kjE+LhMcfwIJ3jtF2thCbcMtXhdTtIcQmvLKzGl+fIgeoXi3H+XULoZBJselcO54RwAf58VhFpwUrPjpJX+e1MF4/g2Ev7KGv3zAphXZahFqY/AQ99nDYBOF4TC6VoPLlxVArZPi1pBOPbQne4Hc/NBMFiXq0GB1Y9O4xqrfhU5wDDIvZfz1CcRHCJNinfi7DlmIy/ls2MgHrbxoHgKQfP7m1HN4Ag7Gp4dhy91QoZFLU9dqw+tsidHEHxPdrJiNGp4LD48dDP13AqSYjUiI0+OCGsbSI++hwA7YUd0IfIscLywromPZkgxEfHm6An2GxdkYGDa7sHCQCXr6TwwtTfQEGX59sQX2fHWNSw3HTpFR62Byv78fJRqKFuX5iKt13XWYX9lT0QK9WYMXoRKqR8fgDOFxjgDfAiOzTACkuDTY3xqdFioqWQYcX7SYn0qO1otcDDItuswsRWqVo7/HvI5dK/yWdB8OwQzKkADJq7xwk73fx91HVbYFaIUNObCh9PgQYFoXNhIU1LSua/gxYlsXxBiN6zC5MyYwSjdqO1/dTu/bc3GDA5elGIw7UEGPCLVPT6Fj/AueaVMqlWDsjg2oVa3ut+PBwI5weYkzgBfYdJide3lmNLrMLs4ZF48lFuZDLpLC4fHj653Jc6CDPjb9dOxpxejX8AQYPby7FvkoyVn971RgqsOf3qEwqwROLcmkMwpcnmvHa7hqwrDgdfV9VL+794TwYFogOVWL3QzMRq1ejrteGFR+dhNfPQCIBvuXGyw6PH1NeP0Qdno8syKGu0/+vrEvjqn/z8gcYdAy6EKlR4qbJwTmxP8DgfJsJGqUco5PD6IgqwLA41WiEyxvA9Oxo6khgGBYHq/vQY3VjRnY0FYySmPk+VHZZMSJJj/n5cfRgPdlgxMGaPiSEqUWwwsJmIjDmsQm8kLiyy4IPDzfAyWETSIiYAm0DDry8sxrdZhfm5cXi8UW5UMpJyODjW0q5B4Yeb187mrbYH950Afuq+hCrU+Edwablc1BkUgmeWpxLXQmfHmui1s6ZOdE0/G5XeTce/OkCxSbse2QmokJVQ7AJP6yZjOnZ0bB7/Fjy3nF6k314fg6lit/yVSFNPj3RYKTv8equamo33VzUQWfaGwvbqSB2V3kPxqdFIDtWhwvtZuqWKWwxYUxKOK4enwy3j8G7BxvoPH1LcQd1x/1Y2E7TVbcUd9Aip7DFRLt4h2r7qGC61+LBIKfnaRsg4V7hGiUYJsg58jMsvBz/SCaRIEqrQofJBYVMgggBomN0cjhONRohkUioFgIAZg6Lxr6qXtJNGZ0IOXfYTM+OxrSsKLQNODEpIxJpkeSAGBYfijump6OolST88pH2SrkU718/BttLuxGhUeK+OcGu3NvXjqHdlNumBa3QTy3JQ3JECAYcXiwdkUBvuVeOTYJWJaedHP6znBGtxZ6HZ6GkbRCpURpaTMikEux7ZBaKWk0I1yhFTpM3rx6FNTMyEWBY5CcEi+ArxiRhbl4sbG4/EsPU9JDLjdfhxFNz4fYHEKKQ0de1KjkdiVy8HpiXQ7VWAOmmsSxEnTSAXBgsLh+SI0JoRwkg4vS2AQeyYkJFDp1+mwelHWYkR4Rg1rAYah02Obw4XGZAqEqG+flxtCNocfmw+VQ7vAEGy0cl0qLK6fXj8+NNHDYhjvu5hcEfYPDF8WaqhbltWjpGp4QTY8KJIDbh8UW5dDy2tbgDPxS2I0RBgul4Q8GB6j78ZU8N3D4SMcE7FM+3mfDo5jL0WtxYUBCL964j2IQOkxO3fFWI1gEn0qI02LB6EtKitLB7/Lhy/Sk0GOxQyqX46IaxtHC45atC6hITYhOe31ZBM52ErtNvT7dSHZtKLsWJp+YiVq/GmaYB3CrAJnx56wQsKIhDv80jGrfb3H7aAbt/YwkdWbUaHVQL8/b+ejpWL2k30+91V3kPDtaQ12t6rLhpUhpSozSo77NhbxUZ5fVZPShpG8RlIxPg9AVwtNYAP8Oi2+LG+TYTfV7yydx8kUc/T65gaOOgw0svlBqlDEougT1UJafj33CNAqmRGpo1FKcnWim1Qoa5ebHYXdGD6FAVJqQFTSL/19alIudfWDa3DyvXn0JTv2PIpl3FcXwAMTbh2V/L6e3zP8ImnH6GWMWPNxix5rti+p7f3jERc3JjYbC5cfNXwU1r9/jpTPv+Hy/QOXuPxU2Fr0JsQmWXhSal/nahm5LOa3ttuGVqGhLCQlDba6V6nhMNRlR2WzBPT6zix+r6EWBILkxJ+yDdtLXcbDzAsHS0BgBOQUS6XfDPWpWcYhP0IcFNGxWqRHq0Fo0GO5LCQ6hrIUQhw6Lh8djNQSgnZwY37eoZGfjyBBEbC7NZ7piegQGHl+TCCLAJqyakoN1EsAkzs6ORGU1ucJPSI/HnlSNQ0j6InFgdVnC6mhClDFvunop9Vb2I1CpF6cXfrp6IHaUEmyBMd35+aT6mZUXD4vJhTm4MvdUuG5WAnLhZaB9wYlRKGO2mpUZpcOKpuWjqdyA5IoQ6TeQyKX69dxq6zC7o1QoRh+yJxQSbQD47wZb53NxYnHpmHi5eKZEa+iAHSCFt54LfhFkuLMuifcCJUPVQbEJNjxUMy6IgQU9hmCxLIIaDDi8mpEeICOXFrSY0GkgXY/Hw4FjxfJuJCoyXjIinI4LyTjN2lnVDr1bglqlpNP+l0WDDVydbwTAsbpmaRrEJnYNOvHugAQMOD5aPSsQ145OhVwexCbwW5oVlBdAoibj5+W2VON1kREqkBm9dPYp2A17ZWc1hE+R4+fIR1Pr/+fEmvLW3DgGWxR3Tgu4qYedoZFIYfr536h9iE369bxqGxenQa3Fj4TvH6O1ajE04SbtWQmzC41tK6d79sbAdR7k03Y8ON9KC/KtTLTj/wkJEapU4WNOH13YTdtK2C11Ij9ZgXl4cOgddlKkEkBwhfqz+5t5aalP//HgzLXJ+OS/GJvBFTnHrINW2HK41UGyCweZBB/d36DA50W/zIC1Ki0CAhY1LePcFmKCFHOL4CGFHKU+ATRglKHDHpIQjJTIEPWYCCeap4nnxOszLi0V5J+nk8H8mSqvEw/NzcKC6D/FhalwlgJm+duVIfHemlcMmBAv4F5blI0angtPjF+nA7pieDqVcSiMmeB3bxPRIbFg9CWUdZgyL19Gxul6twL5HZ+FkgxGxehXmDAuK3L9fOwmnGwcgl0kwVWDmeHxRLlaMToTN7ceo5DD6zJqZE4Nzzy+AiUtE5w0jcXo19j8yCza3H6FqOe2+yaQSfHDDWCr2/7+8Lo2r/oVxlcXpw+L3jqPX6oZEQoR7/EHAq/QlEuCpxcE01m9PteB1ziouFPSdbzPh8S1lFJvw7qoxUMqlGLB78PQv5ZR18ubVoxAVqgLDsHj/UAMOcu3XF5YX0HHXkVoDfjjbBrVShvvnZNPbcofJiS9ONMPhCeD6SSn0Ieb2BfDD2Tb0WEjgIN8RAoATDf20kyN0oHQOOnGq0YhYvRqzc4KHt8cfQGGzCUq5FJPSI0Wt6qZ+O+xuP4Yn6kUCVKvbh0GHF0nhIaLXWZaFwxuARiH7l+bIXj8DP8OI3GYAsb4O2L1ICFfThwT/fTRfVFwA5FZ1vs2EKK1K9MBxePw4WNMHqUSCBflxtJXu8gaw7UIXrG4flgyPp4enP8BgU1EHWo1EYMyjDliWxeaiDpxrNSEzWou1MzNpsfJrSSe2l5KwvUcWDKMP1EM1fbQLde+cLOoOKWo14ZWdRAtz1bhkKgJvNNjxwI8laDY6MCk9EutvGoewEAUGHV7c+vU5VHRZEKsj2ISRyUOxCa9eMYIGGT6xtYzyzYRjog8PNeBtDm2SEKbGsSfnQimXYm9lD6WEy6QS7HxgBgoS9ajvs2Hxe8fpjVWITSh4aS8NS7x6XDKlwgtTnDOjtTj8xBwA4vEYAFS/shgapVzkHgOAzXdNweTMKDT12zH/7WP09VevGI5bpqaDZVlMev0Q+jnBvHA0J7SKj0+LwC8c1fr7s21Yx4lrk8JDcPCx2QhREqv4TV8WwuLyITpUhZ/vITlaVrcPN39ZiPJOC8I1Cnx+ywSanfKnHVXYWNgGrUqOly8fTp8neyt78NZeAqFcLQgibDTY8MquGhisbiwaHo9H5udAKpXA6fXjb/vqCQAzOQyPLRwGtUJGXU3H6knExH1zs6glvLrbil9KOqFRynDL1DRaeFvdPmwr6YLLF8DyUQnU2sznH/VY3JiWJR4ZNffbUddrQ268jo5/+D1T02NF3EXYBMIhI9gEoeYFIM+nAMMOGX/zf+4fHd5/pJsDiEhcLpUOSXxvH3DC7vEjN14nGtU19BHx8qjkMJGTtq7XhsouC3LjdbToBsjz7kitATE6FZaOTKDPmg6TE1uLOyCVSnDDpFT69+2zuvHliWbY3H5cNS6ZfiYsLh/eP9iAdpMD07Kicfu0dEilJA7gL3tqcaF9EDlxOrywLB/hGiVYlsXb++uxs5w8N15aMZyO6D8/3oSPjzZBJpHgicW5onyw/63rkoX8n1j/FU2O00s2baxu6KbtMrsQopANwRh4/GTTXnz4/jOLZVm4fURQePGs3GB1Qy4bummb+u1wegIoSBSzTup6begyOzEmJUL0Z6q6Ldym1Yuycep6bThSZ0CcXoXlo4LYhFajAz+f7yTgyUkpNP+i2+zCF9ymvXpcMu32mBxevHugHh2DTszMicEd3KZ1eQN4bXc1LrSbMSxOhxeXFyBCSyCnr++uwZ7KXkTrVPjzFSOorfSzY01Yf6QRcpkUTwo2rRCbsHJMIt7j+EWnm4y487tiODhB3y/3TkOkVom2AQeuWH8KZqeYrn0xNkGID1j16RkqPhVaxZ/9tRw/nSMtdp1ajrIXF0EqlYgOQyCITSjtMGPl+lP09deuHIGbJqfB4w8g94UgNuGGSam0ayLUwgjpx0KkgVohReWfFv8hNmH3Q0R02zbgwOL3jtOCYv2N47BsVAICDItF7x6jN3jh31so+F01IRlvXUMKkB1l3Xjq5zK4fQxm5kTjuzsmQSqVoKnfjnt/OI9Ggx3jL8ImPPlzOQqbTUiL0uDta0fTg/KbUy3YWtyJsBAFnr4sj34Oi1tN+PRYE/wMi9XTM+iYR+hqWj4qkXZfAgyLTUXtaOA6OZePDmITzrWYcKZpAGlRGlw+OjGITbC6caCmDzq1AkuGx1ONjD/A4EzzAHwBBtOyokVds+Z+O4x2L0YmhYkylpxeP3otbiSGhwzJY7G4fNCq5KJCm/93/ww2wccwInQDQJ4tJocXUdqh2ISGPjti9SpREeH1MyhuNUGlkGFcapCg7gswOFrXDzeHwBBiE/ZU9qDXQtAyvHaJZ2rxl7FlI8XYhINcB+XOWZm0qDrVaCTgSbkU987Jol/rQvsg3jvYAKfXj5unpNFCr6nfjue3VaDL7MLsYTF4cflwKOVS9Ns8ePCnElR0ksvYhzeOpdiEu78vxpG6fkRqlXj/+jH0AifUcwlt3O8fbKDhq8IIhh1l3TRkVaeW48CjsxEfpkZZhxlXfnyKmjp4QLHd48f4Vw9Qt5bQjr7o3WOo7yNd7kkZkVSgLCyi1Qopal5ZAolEIiKaA8HnRmHzAK4TREzwOjaXN4BRL++j+jZhptPlH52kZheh1ud/87qkyfk3rN/Le3CkzoDEMDXump1F7aMEm9AGtUKG+wQdlOJWE949WA+nN4BbpqRR62p9nw0vbKtEt8WF+XmxWCfAJty3sYR2UD65mbBO3L4AVn9bhNNNA0OwCY9suoDfSgk24bEFw6jD5p39dfjgcCMA8e1TGIYWFqLAocdnIzpUhQvtg7hKgE3gx2NmpxcrPjxJ9SKtRifVwtz+zTm0ctiEolYTxSa8vrsGu8p76M+M18JsKmqnAW1H6/oxJzcGWTGhKO80UwdKVbcVs4fFYOXYJNi9fnx3phW+ACkcd1f20CLn94oeCjndV9VLi5zqniA2oaTdTA8Ou9tPKeNmpxde7iEklUhEqAQFRxuXSyUYFqej2IQ0Qerq7NwYlHeZIYEEMwX6jGUjE3G+bRAWlw/Xjk+hh+fC/DicqO/nsAmRFJswPFGPh+Zlo7DFhMyYUCzj9BYquQxf3DqBYhOE1OyPbiDYBACi0dzzy/KRG6/DoMOHy0bGi7AJMaEqNBkdGJ8aQXVaaVFaHHp8Dso6zEiL0lAHikwqwe6HZ6Ki04JwjVLkNPnT5cOxdmYGWBaiwp7HJri8AVGAY1ZMKPY/+sfYhPU3joNw+QIMZBIJ7piegTumB501Jg6bMCE9El8Kwid7LW4MODwYFqej+iiAiHab++3IjdOJgJEdJieKWk1IidRgUkYkvS33WFzYV9kLLYdN4P+MwebG5nMd8DEsrhmXTA9Ji8uHj480wmDzYNHwOMzLi0NmDCkm3tlfh+oeG0Ylh+HeOVnIjAliE47W9SM5IgTPLc2nBoRvTrXg+7Nt0ChleHpJHn2P7aVd+MueWnj9DNbMzKBaqNONRjzw0wWYHF4RNqGhz4YbvyxEv82DhDCCTUiL0sLi8mHp+0FswvvXj6FW+FWfnaG27Jsmp1Ji+9M/l+NXDij697EJEpx6eh5i9WocqTPggR+DSeva2+WYmxcLw0XYBIZl8eRiEmPxxNYyChwecHiwcS0ZoX58tAnHOKJ5U7+DFjkHqvtwtplcKjYWtuOe2VlIjtCgud9OXy9uG0Rdr41iE4q5rp/J4UV1t5X+bHsEtvEeTksHAMJ6Uyr451idiiawJ0doaCGbEEbcWZVdVmTHhiKN2w8ahQxXjUumY3UhVuW+Odn47Hgz5FIJ7hS4MO+ZnQWXLzAEt7JqYgr6rG60m5yYxiU6A6RA+tu1o0knJzaUxlWEKGXYdt907K/qRVSoCqsEqczfr56MPZU9kEolVPf5f2VdKnL+ydU56MT9P5bQ/y2TSqmN78mfg6wTu8dPc2E+PdaMU41EVNc+4KRFzv6qXtoJ+P5sG+6bm404PeH38JuztCPIOnF5A6jghGpmpw+NhiA2gd+0LAv0WoMbWCW4PWoEN8yEMDV0ajlsbj9SIzX0lpkUEYJRyeEEXRCnozqVUJUcV49PxoHqXsTq1JiXFxxdPTgvB1+ebIFSJhFZPh+Ylw1/gIXNI960N09Jg8Xpo0mdmdztfVJGJN67bgxtv/JaGL1agW33TcehGgNi9SrRPP371ZOxt6oHUol4065bJsQmRAf5TMPjcezJuegyu5CfoKcOj5RIDY4/ORcdg07Eh6npbVMuk+L7NZNgcfmgVoixCffPzcZ9c4ZiE2bkRGP/o2JsgjfAID5Mjc9vDWIT/Jz1P0KrEGW5BBgWtb1WhIUQACMvAOYzfwBSsPI6L4ZhcbLBCJPTi+lZUdSOy7IsjtQa0NRvx7i0CEzLjqYW72P1/QQ8Ga3F1eOSkcT97M61mLC9lITtrZmRQdlJpcKwvekZNI+oqd+ON/fUwuTwYvmoBNw2LR1qhQwGqxvP/lqBBoMd41LD8ecrRyJUJYfT68cjm0pxpmkAqVEavHddEJvw5NYy/FzSCa1SjteuHEEPt7/uq8X6I03cZyeVktm3FHXg6V/LwbJAVowWv3PYhMLmAdz0ZSH8DAu1Qorf7p+OvHg9uswuETaBB40CJBeG79adbTbR8dijm0vp3t1V1k3HYx8facRnnHV+U1EHxSYcqjHQS8XBmj6MTArD3LxYdA26KDahtMOM/AQ9NR18fLSJjsd+LGynB/Gu8h66r38530mLnJpeGxWzl7ab4fIGoJLLYHX7YHaS1wccXqp/kUgAOVe0SyVExM6vzGgtSjvMkEklogJ+Qnok9lT2wuMP0GcMQNAm+Ql69FhcmJcbS4NOx6VGYNmoBFR3E+fn2NRwAMRK/fzSfOpqEo5H3r1uDH442waVnCSw8+vVK0YgM1oLBwfO5deaGRw2YdCFmcNi6NhscmYUtt4zFZVdFuTF62nHWK9W4NBjs3GmeQBxejUmZwSL429un4gLHWYoZFKRmP2BeTm4clwyHB4/sgVjtimZUSh6YQFsbj8iNUp6cYnVq7HrwZlDUpWlUgneuGok7bwCwSiJlWOTqDEBIN0+t49BQaIeXwieD2anF31WD9KiNHh+WdBybrR7UNdL8quuGZ9MU64HHV6cbhpAhFaBqZlRdHRmcfmwo6gLEokEl42Ip7EdDo8f35xqgdnpw9KRCfTi4/Uz2HCmFS1GB6ZmRdGC+H/7ujSu+ifHVQzD4vMTzTjCATCfXpJHRbFnm4PYhLtmBbEJfVY3vjvdCqc3gGsnJNPbsi/A4NeSTnSbCTZhnACDUNI+iCqukzNBcHM12NwoahlEfJha1F72Bxhc6DBDJZdiZFKY6NDttbjh9PqREa0Vve7xB2B3+xEh2LT8+mda5gGGJayZi/6s1e2D2zfUmj5g96CXwyYIiwWDzY36XjsyYrSiKHWDzY0zTQOIDlVhmgCbYHZ6sau8BzIpyZbgCxKb24ctxZ2wuHxYPipBhE345hSPTYiiI4sA5zThwZMPzsuhN7TvTrdiR1k3IrVKPL0kl9ryd5R14+Mj5BB7YF42fQAcr+/Hi9srYeawCbw7pKbHirXfFaPL7MKYlHB8c/tERGiVMFjdWPXZGbQOOBGhUeAbATbhivUnUdk1NFFYmMYqxCYIi4DoUCVOPzMfSrlU1GIHgF0PzsCIpDDU9Fhx2ftDsQkMwyJXgE0QamFWfHiSFtjCm71QCyORAFUvEy2McDwGAL/cOxXj0yLRYnRgwTvHqEPtL1eNxPVcJo0QmyDkuvFdSoCARvnLw5aiDjzzK8Em5MSGYueDM6BWyFDba8XNXxbCaCc6r013TUFKpAZ2jx9rvyvC2WYTEsLU+PTmIDbhb/vqqBbmxeUF1EBwqKYP7x1soBBK/kBpH+CxCQSAuWZGBo0fWH+kiWhhkkgnh+8Q7q3sxfEG4moSYhOa++34rbQbWqUM109MpaJyh8ePnWXd8AYYLB2ZQHVifCp5r9WNyRmRovFTt9mFpn47hsXphoylWowORIcqh4zPB+weKORSuo/4xTAsGJYdksh88fojxArLshh0+qC5iKfGsiyajQ6o5FJapPCvV/dY4fAEMDY1XDTCK+80o3PQhXGpESJsQkn7ICo6iRZGmMBe2WXBwZo+xOhUuHpcMn3/2l4rNp3rgEImwa1T02kXssPkxMdHG2F1+3GtAHJqsLnx1t46dJiIwPie2VmQSSWwe/x4aXsVsYrH6vDqyhGI0anAsixe2lGF38t7EBWqxGtXjqS6x/cPNmD90UbIpRI8vSSP7unNRe1Y91sVvAEGC/Jj8cWtEyCRSHC8vh93biiGx88gKTwE2x+YjuhQFZr77Vjx4Uk4vAHIpBJ8d8ckzMiJhtfPYNpfDtFLtnAEd+XHp3CBM8HMyI6mnXbeCQuIR9sbzrTiRS4QFgB+f2iGKOz0f9q6NK76b1oMw8Lo8ECnUuCe2Vk0pI3HJqjkUkzJjKKbjXeauLwEm8AnDbMsi+JWE7rMLkzKiBSp9s+3mbhNS24jfNFT0j6IwzUGxIWpsWpCMg2MqumxYtM5ku9w69R0uqGa+u34+AiPTUihm7bP6sYbu2u4DkoMHpiXjahQFaxuH17aXoWyDjPyEnT488qRiNQqKTZhT2UPYvVqvHn1SDqae3t/Hc2FeXpJHlZzHRwhNmFhQRy9mRypM+DuDefhDTBICFNj54MEm1DXa8PK9afg8gVE2ASXN4BF7x6n2ITHFgbJ5bd9U4QyrsW+q7ybtrlf3llNBbFfnWhG5ctkPPbTuXbqXNtU1IFhcTrkJ+hxvm0Qb3Ct9/3VfUiP0mLVRIJN+NPOKjqyi9OraPfgyxPNFJvw5YkWWuQcrOmjI7stxR14bmk+ZFIJWowOai2v7rZiwOHl9CgBenu3uHwY5G7gAMBNBMGyoMUAANoKByC6dY9MCqet9MkZUXTUNiY5HGNTw9FkIOgC/qGeEa3FdRNScK6VaGFmc610qVSCV64YgV/OEy3M2pnBrtxrV47gOjnA6unp9PXHFg6DXq2g2AReZ8a3zhv67BiXFk4/NxnRWmy/fzrOtZiQGqnB/Hzy2ZRIJNjz8Cwca+iHTi3HLIH4/Z1VY3DL1HQwLCu6CKyamILZuTEYsHuRExdKD8a8eD1OPTMPJocX0aEq+nqoSo5Nd02FP8BAdhE24YnFuSIIKX/nm58fR0XdACmYHR4/UiJDqOAaIJ3bHrMLSREh9HDhX7/Qbka8Xo0lI+KpVsju8WNvZQ80SjmmZ0fTP+P2BbDtQifcPgaLhwdv3V4/g03n2ilHjh+zMQyLn861o6rbghGJYVg1IYWOwbZd6MTBGgMS9GrcPzeb3tT3VPTgBy6B/cF5ObTQO91kxN/21cHlY3DLlDTcODkVUkhQ22vF0z+Xc1qYWLx+1Qio5DL0WFxY+10xqrqtyIvX4Ytbg9iEW74qRFHrILRKGT4QYBPu/v489nOFujCB/S97a/HZsWbu8xzEJmwt7sCTP5cDIJ3ow4/PQXyYGufbTLj6EwE24faJmJsXCyvneOXDDztMLjxzGXmPuzacp26wyi4rfrprCn3v37mx+qGaPqqF+eV8F32eFLaYcNmIeGTGhKKmx0rxLM39Dlw2Mh5XjEmCyxfAluIOuH0MBhxeHKzpo8/ko/UGeP0MvCBmDr7IaTc5qQSg0WAHy5LLgp9h6N73Bhgw3OcxRClDhFYJh9cFnVoOfQgH6pVKMD4tAvuq+qBTyVGQEDzsl41MQHO/AzKpBIsFgalXj0tCVbcVZqcXV41NpsXskhHxKG4dRJvJiSkZkcgR5K79b16Xipz/YDm9flz/+VmUd1qgVcrwkQCbcOeGYmrtFG7al3dWU3Hm6JRwbOeSbjcWttOYc61ShiNPzkGsTo2iVhOu/XToph2we3DNJ6epsK3f6qajjbu+L6bhcFXdVmoLfnNPLX2QnGw0ooLDJvxS0klvxMVtg7h8TCIyorWo6LRgGzd/bzY6cPnoRCwZkQCH14/fSrvg8TOwuu04Vm+kh9XJRiP8XJLq2eYBWuR0m930AdM+EMQmgAVYLn+ZZUELCI1ShkitklijQxT0NqmUSzE5IxL7qvoQoVFgpMC1cMXoRHQNOiGVSLBC0Eq9dnwyGvpssFxkFV8xOhEVnRayaTMjqb5kXGo4nlqSi5K2QWTFhmL5aFI8qhUybFwzGbsqehClVdIkZgD47Jbx2FrcCQkgIhA/vywfY1LCYXb6sFCATVg6MgHb75+O1gEHRieHU2FterQWR5+ci5oeK9KjtNQ1RdxH01HXZ0O4RinqbL2wvICOOCIEQvElIwg2wc+IAxxTozQU18EvhiHYBN6azC+L0weVQoobJqWKRgpdZhcYhsWo5HC8f30Qm9DUb4fR5sGo5HBRcVDfZ0OTwY4RSWF03AQQ0Xohh02YMyyGttJbjA78Xt4NrUqOa8Yn0+Koy+zCD2fb4A8wuG5iCh2PGe0erOe0MIuHx+Py0YmI06th9/jx513VFDz5yIIcJISRNPBXdlbjeAPRwrx8+XAaivnugXqKTVi3vIDu6R8L2/HG7hp4AgzunpVJoxkO1/bhwR8vwMFdXDaunQy1Qoaqbguu//wsGWVoldh6z1RkxYRi0OHFoveO02JWjE04SUXdYmxCGT1wvzjRTJOUPz/ehL/tJ4LYDw834Myz8xGnV+NgTR+eFQQ7xvLYBIsbj24Ohi6qFTL6e1q3vZLe+AMMS4Gi355qpbEX7xyop266E/VGlHFi1d9Ku/D4omFIDA9B16CL4hRqe23oGHRSbEIz93dzeAPUEg8EM6AAUD0cQGjgfAK7sAOVEa1FdKgSRrsXefE6hHJW87QoLaZkRqKsg3RyhnEFXKhSjjump2N3RS9i9SqqbwOAZy/LwzenWqGQSwh+hFuPLRwGpUwKm9uHawVj9VunpsHtI9//rGHRtDM/MT0Sn948nnZy+GeQRinHrgdn4nBtH6JDVaIxz/drJuNQTR/kUikt7AHgiUW5WFgQD4vLJ3KjzsuLw+ln56HH7EZ2bCh1liWEheDIE3NgsHkQpVXSLpVUKsFnt0yA2xeAQiY2pVycwM6v8WmR9FwCyDTA4Q0gJlQlQqR4/QxajQ5E61RDAiP/N63/vd/5/4Pl9TPo4jaqwxuAwRbUvPCtfQD0cAcI34TftKmCG/iwOB3dtKNTwqFTkUM9I5ps2vJOC/LidfTWFa5RYs2MDByo7iPoAkHs93OX5eObU61QyqU0JwUAnr4sDzq1Ag6PH9dPCh7Et09LRyDAkk7OsGhqOZ+WFYVPbhqHMu69+RwTvVqB3Q/PxNG6fsTqxJyVH9ZMxpE6A+RSKebmBW/dTy/JxbKRCbC5fRiffjE2YT76rG5kRgcp3zw2od/mQaRg08q4TftHsMLVMzJoUcUvlmUxOTMK2wUsJK+fgc3tQ6RGiXcE2AS3L4C2ARti9WpRsJ3HH0AxFzon1K94/AEcqiFxADOyY2hHyR9gsKeiB4NOH+bmxVCtFcOw2FnWjVajAxMzIjElM4relneVd+NcCwnbu2VqGnUHHak14LfSLoSFKHDvnCzaHj7dZMTnx5vBsgSbwAfQVXVb8NrvNTA5SNDffXOyaBDbE1vL0NTvwMT0CPz12tEIVclhdftw94bzONsygNRIDT65aTwKEgk24d4fSrC3qhdKuRR/vmIEVk0kn5mXd1bhm1OtAEgBySMNvj3Vgj9xQWzJEcQyrVbIcKTOgDu+KQJA2F47HiRamA6TGJvAj8dYlsVVH5+ioYjlnRaKt3hscykKOf3RoRoD1cJ8dqyJfk+/l/dgZnY0p4XpoziFs80mzMyJxvTsaPSY3TT1udFgx97KXopN+OFsGwYcXhhsHuws76ZFzomGfpphc6jGQIucLrObhlC2Gh3w+EmUvz/Aws89B3x+hv6znAtt7Ld5oFZIRVkwE9Mj0dRPxjajBAX8gvxYFDYPwO1jRIfkouHx1K49Py8WUVyROzUrCtdPTEF1D3E1TeKwCXF6FV5dOQKHuLDQW6cGxddf3DoBm4s6oFYMxSaMTAqD0xfAVQLNyOoZGYjVq9BtJkGlfKdoQnokdj04g6BeEvS0cCXYhNkoaR9ErE4tslV/fdtE1PbaoFJIKaMNIAfx1eOS4fYHEC8ociakR6LwuQVw+wLQKIMBjtGhKmy6S4xNAMhh//yyApGGxc0ZDS7jWGL8Mto9cHj8yIzWirAqPRaCTciN11NzBUBGgVXdVmTGaEVduS6zCyfqOWxCXizNh+q3ebC9tAtSCcnO4ot+i9OHz483w+z0YcXoBIzlupNOrx/vHKgnY/XMKFw3MQWxOpKY/OGhBpxrNSErJhSPLRqGpPAQsCyLT481YUdpN6JClXj2snxqdtla3IGPjjRCAqKZ5FEoR+sMePbXCpgcXqwck4S/XD0SEokEFZ0WrP6uCP02D/Liddi4djKiQlUwWN246pPT6Bx0QauU4Zs7JtEu4v+2dUmT8w9mehanD6UcNkGIWWAYFnV9NqgVsiGANIvLB6+fQYxOPAPnhagX2z8vXn9PF2P3+CGTSERWVYBsKqeXCIkvxiZ0m13IT9SL5u7tA05U91iQHRsqQkF0mV04zm3aeXmx9FbQY3HhtwvdUMgkuHpcMu0mmBxebDjTCqvLj5VjE2nqrsPjx/ojjWgzOTE1Mwo3TU6FRCKB18/gg0MEm5ATF4onF+dCx2ETPjnWhJ1lPYi+aNPy2ASpFHh0wTBaUOyr6sVzv1bA6iZamL9czWMTBrH2uyIMOn3Ii9fhpzunIILrGF318Sn0WT3QKmXYwGET/AEGi947Tm+gz16WRxNqhdiEeXmx+JpLxxWSiYXYhM1F7Xj6l6HYhMouC5Z/GMQm/HnlCNw8JQ0BhsWwF/bQ9vRV45Ioq0aohcmL12HvI0QL89L2Snqoy6QSVP0dbAKvw2k1OrDwD7AJLMti7t+O0lHb3bMz8exlRND85NYybOXa9UINkDD8bnRyGLbeMw1KOcEm3PHNOXRb3MiN0+H7NZMQq1fD6eWwCY0DSIkMwfvXB7EJHx9t5LopCjy3NOgsOtHQjw8PNcLHMFg7I5OOaHstbrx7oB4GmxtLRsRTQbvXz+DrUy2o77VhTGo4bp6cRm/FJxuMONHQj6SLsAmdg07sqejlwg4T6ajN7QvgUI0B3kAA8/PjRHumqtsCg5Vw3YSBjCaHF20DDmRGh4pe9wcYdJvdCNcqhmhe3NyI9h9pXv5oMQwLu9eP0IuwCQGGRdegC2ECmCz/31f3WKFWSEV7nWFYnGs1wen1Y2qmGJtwstGIbg6bIETC8NiE3Dgd5ucHsQlnmgZobtfNU9Lo1yrrMOPHwnYo5BKsmZFJn5P1fTZ8cKgBdo8f101IEaExXt1VzXVQYvD4wmEEm+D04alfynCh3YzceB3+es1oxIeRIuCxLWXYW9mLGJ0Kb68aTWUDr++uwRcnmiGTSPC4AJvw7SnCN2NYYGpmFH68czIkEgkOVPfhnh/OI8CwImxCfZ8NKz48Cc9F2ASn14/JrwWxCUItjDDmYXJGJDZzVnGhfV0pk6Lm1SWQSSUi5hoQ1MKUtA/iqo9P09f5iAm3L4DhL+2jz41bpqTh1ZUjAABXrD9FR/pCV+3ru2vwOSeY16vlKH5hIZRyKfZV9VIXnFohxZ6HZyEjWovOQSeWf3gSZqeP4y5OEOWl/U9YlzQ5/00rTKOgoMfiVhN+LGyHihMY8w/smh4rPjzcAIcngBsmpdJKv8PkxJ92VHGskxg8uTgXKrkMgw4vnthahvIu0kF5e9VoxOrE2ISYUBXeuW40pmWRG/wLv1Xgh7PtnBYml94avjjejNf3ENaJEJuwt7IH920sAcOS1M89D5NNW9VNsAm+AMEmfL96MmbkRMPh8WPxu8dpKrEQm3DrV+doivGx+n4RNoEfd/10rl1gFe+gaay/l/dgXCqJ8S9pH8RHnHj3TPMARiWH45rxyfD4Gby9v55u2szodrx8Bdm0m4qC2IStxZ20yDnbPECJxQeq+/DalcTl0Gd10w5Bh8kJh9ePCK0SgQBL3TU+wT9LJRJEaJQAyOxaeECMTQliE4S5QdOyo/F7eQ9MTi+Wjkyg2IRpWdGYkhmJVqMTkzMjaScvJy4Ua2ZkkE5OtBaLhhOdgkwqwbvXjcGvJZ0ID1GICMRvrxqN7063ggVEt/Enl+QhITwEJocXS0bEi7AJGqUcTf12TEiLoLfo9Ggt9j4yC+fbBpEWqcFk7hCQSIhVvLDZBH2IXKR5eeuaUVg9IwMBhsVwAcTwijFJmJMbC6vLh6TwEHrI5sbrcPLpeXB4/QhVyenhp1HKKU/r4nXfnGxRN83rJ/qDmTniUEqL0wezy4vkCI1o1DZg96DN5ERmtFYEMx2wE2xCYniICMFgcnhxqLQPWpUcC/LjaHqv1e3D92da4fYxWDE6kRZVLm8AX55ohsHmwfy8WEzOjMLwRFK8fH68CdXdVoxICsMd0zMwNjUCLMvi+zOtRAsTpsZji4IBjluLO0hIp0KGxxYOo7+DQzV9eHNvLVy+AG6bmk5HCyXtg3hscyl6LG4syI/DO9eNhkouE2ETUiMJNiE9WguXN4CrPjmNmh4rQXFcN4YWDrd9c44W6mtnZOAFThj/8s4qWiwPiwulrsANZ9rw0g4iPlUrpDj+JMEmnG0WYxO+uHUCFhbEwWj34MYvz9IxtMXlo+Ox+zaW0L3bZHBQLcz7BxvwewUZzRU2m7BkRDwkEgl2lfdgXxUZt1d1W3H9xBSkRWnRYLDR1w02Dy60B7EJB2v64A0w6DK7cK7FRIuc0nYzWBbwsyxFKJDft59KAIR6OLVCCoVMQnPM+AteWIgCyREhaOp3ICZUhRhOvK2SyzAvP4hNmCQwidwwKRUfHyG6xesmBjvqt0xJR7fZDbPLiyvHJtP3uHJsEhr77WjnIiZ4NuGY5HC8csVwnOMiJq7mnn1qhQxb7p6C38t7ERWqxC2C58OXt07Abxe6IJFA5OR6anEuxqWGw+QgCex8wb94eDz2PTILrQMOjEwKo9265AgNjj05F/V9NiRHhCAhLDg+/9+2LhU5/4l178YSOmfvMrtooNI7B4Ksk9IOMy1yfq/owSEBNuHmyYR1Uttro6/32zwo77BgQYEaLl8Ax+uNCDAseq1uXGg30yKnujuITeAFsABxFgkfMHwXKFRFyNkuXwD6EAUVYUZqlUiN1KCp34HEsBDEhwVZJwvyY7G7ohfRoUpRa/L26en4nMt3uF4gmL5tWjoMNjesLj9WTUimh9s145LRNuBA24ATU7Oi6AhuUnokXr1iOErazciODcUKgRZmy91TsLuC27QCbMI3t0/CjrJuyC7atM8vzceUzCiKTRBqYQ48OgvtJidGJouxCcefmotGgx3JESH0dalUgq13T0XnIBH0CTUvjy3KxX1zsyGRQNR9m5sbi9PPzh/y+UiJ1Iha6SzLwub2QaOUi+jDJOXVCZ1ajstHJ1I9CsuyqOu1gWFZ5MXraHYJy7Io6zDDaPdgQnqk6FAvaR9EY58do1PC6ecOILfoM80DSIvUYPHweDoiqOyyEGxCiAI3T06jo5qmfju+OdWCAMPipslibMI7B+oxYCcC41UTU2hi8qu7qlFvsGFsCrG169QKePwB/GlHFY7XE/Dk61eNpO/9ys5q0r1Ry/HK5cPpQfzlCYI28TNDsQlPbC2DL0CKrV/vmwaVXIbSDjOu//wM5fjw2ASj3YN5fztK85OEVnEhNkEYZPj4ljK6dzcWtgWxCUcaqHPtixPNImzC67uJaP230m5kRGsxPz8OvVY31gmcKTE6FR13vbm3juJWvjjRQoucrcWdNBzu65MttMgpbjXRDtvBmj7Y3H6oQmXotwexCZ2DTvTbPUiP1sLPMNRC7vUzsLp99PsIETichB3g7DgdlDIpvAEGIwQOmpHJYUgKD0GPxYVpWdEUm5Abp8OC/Fg62ubt15EaJR6cm4391X2I06tFe/TVlcPx7ek2DpsQ/Mw+uzQPkVol7B4/rhkffG7cPi0dMokEXWYSMcF3kSakR+KHNZNR2kEiJkTYhEdm4USDEbE6lSjeYsOaSTjVaIRcJsX0rKAD66H5OVg6Mh5Wt1/kRuWxCf02D1IiNLQIiNOrceDR2bC4fNCpg/gZkjs0Fu9dNxSbIGQZAqRr5mdYjEwOow4ngBTSJqcXcToV1WYBpGPf0u9AUkQIbp2aTqMhnF4/TjYYEa5RYHxaJNVJun0B7K7oAcuSjjNfwHv8Afxa0olBpw8L8+MozifAsNhS1EEuROmRWFgQh9x4HViWxc/nO1HYPICMGC3WzMigAuq9lT34tYSM1R+anyPKyfqfvi6Nq/4TiceHa/vw/RlyI7t/bjY9CDpMTnx2vAlOTwDXTUyhDzGPP4AfC9tp+5XvCAHB1i/PXOE3SpfZhVMNRsToVUOwCaebBqCSSTE5M0okMGs02GDjNq2wBW73+GH6A4wB3/LWCm4s/5nlDzBcFol4bOb0ctiEMPUQfEOTwY7kCI1ohGdz+1DcNogorVL0wOGxCRKJBAvyY0XjhB1l3TA7vVhYEE/b3/4Agy3FnWgdcGBKZiTm5V2ETWgxISNaiztnBbEJ20u78NuFLkRolXh0wTC6aY/UGvDJMXK43TM7k36t822D+NOOKpgcXlw+JhFPLc6FRCJBc78dD/x4Ac1GOyamR+KjGwk2wez04pavCDYhRqfCl7dOwOiUcLAsi+s/P4vCFtMQbMLTP5djczFJTF42KoEG5gkhpzE6FU48NRdqhUzUahZiE1qMDsx/+yi9sb66cgRumZIGlmVR8OI+GoooHI9d++lpFLWSjKaMaC2OcFoY4XgMIFZxrWqoVXzTXVMwJTOK2G7/eoQW3i8sy8famZlEO/X6IZpJ8/ewCWNTw6loemNhG57fNhSbUNVtwQ2fn4XV7UcUJ/jNjAmF3ePHTV+cRVmnBTq1HJ/ePJ5mvby6qxrfn2mDViXDnwTYhD0VPXhzby3BJkzPoAdEo8GGl3dWo8/qxqKCeDy2cBhN5357fx2qe0gnh8cmAMTVdIjr5Nw/N5tmydT0WPHL+U6EXIRNsLh8+OV8J1y+AC4fnUg/gwzD4kidAT1curBwHN5idKCu14phcWJsgtPrR2WXFbE6lQizwLIs2gacUMql9JbOL7cvAF+AEdHMhX/uH0VJePwBKKTSITZyo90DuVRC//784oG0efH6i55fdnQOOjEqOVyUwN5osKOiy4zsGB0NAQWC2IToUBWWjQpiEzoHndha3Ek7KLyQ2WBz46uTLbC5/bhybBI9uC0uH947WI927jK2enoGpFISB/D2/noUtZqQGR2K55flI1JLsAl/21+HnWXEKv7SiuG0w/vtqRZ8eLgREgnwyIJhlG+3q7wbz/xSAbvHj5VjEvEuVxSdbzPh9m+KYHP7kR6lwZZ7piJWp0aHyYmV609hwOGFSi7Fd1wCuz/AYM7fjtJC/YlFwyhAVjhWn5oZRTtmQm1dqEqOCy+SsfqW4g48xTnXAGDHA9NpRtrlHwUT2Pnnxn80Vv//57o0rvpvXL0WNxQyCeblxdFDDyAiRLvHj/wEPbUaAySXoWuQ5KMI01treqyo7LJgWJxORCBuNARZJ8tGJVABaKvRga3nOyCXSnHj5FQ6E+21uDlsAtGj8EWV2cljE1yYkU1YJ6FRGri8Afx5VyVK2s3IiQvFumVBbMIbu2vwO5fO+crlQWzCpzw2QUpYJ/zNZHtpF579tQJOL+HZfHjDWEgkEpxtHsDa74ph5wR9W++ZiqhQFdoHnLh8/UmKTfjujkmYmkWwCQvfOU4DDIX4gDu+KaJhicIR3Bu7a+iB+97BBpS9tAgKmRSbijqoc+3z483Y/dBMFCTqUd5pwTMCB0oEB9f0+AOiA1oll9ID950D9VQLY3f76e97Z1k3ff2rky14eH4O1AoZKros1GlyqtGIHosLYSEKWF1+NBhIx63f5kHnoIvQoFnQW32AYUUtc5UiWBiqBZ2jtEgNNEoZnN4AhsWF0vEY0VSFoqnfjjEp4TRLJF6vxrJRiTjVSCCUUwUjqicX52JLcQfp5Ag6Zk8tycMnR5vgCzAicfcD83Igk0phtHuwdGQ8dXssH5UIq9uPhj4bxqSE08C1lEgNtt49FScbjUiO0GDlmET63rsemoFDNQbo1HIsKgh2nd5ZNRpXj0+G18+IEqRvmpyG6VnR6Ld7MCIxiE0YnhiG08/OR6/FhaTwYAptqEqO3+6fjkGnD1qVTNR9W7e8AC8syx9ycF8sSmVZcuvOjtXRzx1AOiRGqxtRoUo68gFIoVDVbUFMqApXjk2mwE2vn8GZpgGoFVKMSQmnf8YXYHCgug8uDpvA/6wZhsWeih50W4jIl7desyyLvZW9qOgyIy9ej+WjEmjRc6C6Dwer+xAXpsadMzNo9/V0kxE/nCUdlLtni7EJ7x5sgNPjx42TU3EVlyXTYnTghd8qyGUsJwbrlhdAKZfC5PDi4U0XUMppYd6/YSySwolz7a4NBJsQrlHg/evH0gscjzaRSIjwldepfHCoAe9wfLPxaRH4+Z6p3IiqmyYm69Vy7OewCdXdVlz+0UkqWv/qtgmYnx8Hu8ePpe+foOPmBoONJimv/a6YdrlPNhgpmuG132uwnXOX/nK+E7WvEqv4z+c7aRFwqNaAaVnRKEjUo6rbSvUrF9rNmJQRgesmpsLtY/DF8RZ4AwzaTU7sKO2mRc7O8h46Pt9Z1k33VnmnhUoATjcNgGEBmYQUWA7u9QGHFx4upV0iCQaMSiRknA6Q/58WpUHnoAtKmVQ0PpqeHU3F+jME+2dBfhyO1fXD5CRiY/65MXtYDBYVxKGpn1zMeKt4foIeD8zNxrkWEjHBO9RkUgk+uWkctl3oQrhGIRoz/29Yl4qcf7Ae3VyKbdyM85H5w2jK8XsH62mS6YS0CPz8B9gEvVqOQ4/PQYxONYR1wmMTbG4fln3wx5v2jm+L0GIkgtiiVhO1ir+2uwY7uZvvjrJumu+wqaiDFgGHaw2YNSwa2bE6lHea6esVXRbMzInGlWOT4fD68fWpFvg459Wuim5a5Oyp6KHJqfur+miRU91thZNzmpxvG6T5DhaXj9KFBxxeahmVSonIDiCZDko52WgKmRSZMVr0Wt1QK6RIiQxu2rl5sajoskAiAc36AYDFI+JxumkAg04frhqXRG9w8/NjcbQuDm0DDkwWYBMKEvV4eH4O1cIsHxXEJnx+y3ga+ifctB/cMBYbOfTETYIi4JnL8pAdGwqTw4vFw4NamCvGJCFKq0Kz0Y5xqRF0np4apcFhDpuQ+gfYhPJOC8JDFDT1FwBeuWIE7pyZCYZlRYLPy0YmYF5+LFzeAMJCxNiEg4/NHhLKFqKU4UOBFRQIYhMudqhZnD74GQYT0yMx8fbgiLLP6obJ4UV2bCgdHwHkttzU70BevE40VuwcdOJ82yCSIzSYkB5Jgyx7LC7s5bEJoxKpTX3A7sGmog54/QyuGpdED0mr24dPjjYRbEJBHObmxSI9Wgu3j3RQargOyn1zspEdq0OAYfHBoQYcrTMgKUKD55bm0QNgw5lWfH+GYBOeXJxHD4Bd5d147fcauHwB3DEtg+7p001GPPRTKYx2D2YPi8Fnt4yHWiFDU78dN3x+FgabB7E6FX68cwqyY0Nh5fZuh2koNuGGL85SoKgwrfnpX8rxawnRsQm1MF+ebKZjMCE24XTTAO75IYhHUMqlWDw8Hv02D+7cUExf9wcYGmPxxJYyGq5osHnoc+OTo004TrEJdqpvO1DdS9OdfzC14a5ZmUiJ1KDF6KAdguI2ElKaFE4wM/zfzez0obbHSn9/fLQFy4I6UwGIOjdCaGZ0qIomsCeGh9DxWoxOhfwEPSq6LEiL0tD9oFHIcM34ZKqFEYph756dic+ONUMmlYg+43fNyoTD44fV5cc1grH6qgnJMFjddKyen0D24tiUcLx97WgUtxFXE/9zClHKsO3+adhX1YfoUCWuHR/U23x920TsruyBBBA5YZ9ZkocZ2dGwuHyYmRNNfw7z8uJw7Mm56DA5kZ+gp2Py5AgNjj81B20DTiSGhVAxu1QqwQ9rJqPf7oFWKRdBS++ZnYW7uFGn8DkwPTuauhP5xTAs4vTiBPYAw8JgcyMsRCGKhWAYFo0GG3RqBRYNj6dBmfz4nGFZjE4O/5cgyv8v1396XHX8+HH89a9/xfnz59HT04Nt27Zh5cqV9N+zLIuXXnoJX3zxBcxmM6ZPn45PPvkEOTlBUaXJZMKDDz6InTt3QiqV4uqrr8b777+P0NBg+7W8vBz3338/ioqKEBMTgwcffBBPPfWU6HvZunUr1q1bh9bWVuTk5ODNN9/E0qVL/+m/yz/T7rrh87M400weAELGy/ojjfjrvjoAxIrNP0hONxpxzw/nYXX7MSo5DD/eOQWhKjkMVjfWbihGeacFw+JC8cWtE5AWpQXDsFi3vZKyTt64Khi8t+1CJ7480QK5TIpH5udQ/URNjxXvHawnWpiJwduj1e3Dh4ca0DnowoycaNw4ibiaWJbFtgtduMB1cm6clErHSZVdFhyoJimh14wPpoRaXD7sq+yFVEoiwflNxXD5OBaXD9Oyo0VC3Q6TEx2DTgxPCBM5Tdy+ADpMTsQJsAnA309H5f8dgP+wZc6yLALM0GTWAMNiwO5BmEYhus0HGBb1fTaEhShErXuGYXGhYxAMS2Lq+QcRw7A41WSEyeHFjOxomhjLsiyONxgpeFIoSj7ZYMRZDptw5dgk+rXOtZjwW2kX9GqCTeDHdpVdFnxxohkBhsXt09JpcdDcb8df99VhwO7F8tEJuGVKGiQSCQw2N57fVomGPhvGpkbg1ZUjKDbh8S1lONVoRGqUBu+uEmMTtp7vhFYpw2tXjqS6ifcPNuC9Q/VgWfH4aGtxB57+ZWii8LkWE2784iz8DAuVnGAT8hP06Da7MO/to5QZJtTCTH79IPqspHN11dgkaum/45tzOFJHDtyUyBCceGoeAOAve2rxKTcuBICSdUQLs7uCCOn59fXtEzAvLw4dJidmvnWEvi5s40987SDV0C0eHofPbiEP9vt/LKGZNGlRRGAJkA7dq5zLJVQlx4mn5iJCq0R5pxnXfHoGXj8B5G65eyrGpITD6vZh+Qcn0W5yQs5pNHjhMn85kkqAJxcHu5SbzrXjlV3V8PgZ3DY1nRaQlV0WPLG1DN1mF+bmxeKta0ZBJZfB4vLh+W0VhGcXr8drV45AVChJ2f38eDMO1hAtzNNL8ui460zTAOnkyKW4e3YmLbz7rMRW7/SQBHbeDekLMPj5fCe6uOeGMEW4uNWEsk7iqBJ2CQw2N842mxCrU2FyRqQogf182yDkMinGpogPwG6zCw6PH1kxoaLX3b4ArG4forWqIQemL8AMAZlevBiGFXVA+OXyBuDxB4aMzYTYBOFzx+TworbXirQocQK72enFmaYBRGiVor+rxeXDngqClrlsZDwd+zm9fvx8vpNy5HhXri/A4IezbWjud2BSRiSWjyIwU4Zh8d2ZVjpWf2BeNh3RbynuwLYS0kF5fNEw6pDbXdGD9ZyJ47452fRzd7Z5AC/8VolBLmLipRUFkEgILPeuDcVo6ndgXGo4vrxtIiK1SpgcXlz/+RnU99kRrlHgq9smYnwaEdJf++kZFLcNQiIhGkheMyZMIhcGv/6/Xv+2cZXD4cDo0aOxevVqXHXVVUP+/VtvvYUPPvgA3333HTIyMrBu3TosXrwY1dXVUKtJO/2mm25CT08PDhw4AJ/PhzvuuAN33XUXfvzxR/rNL1q0CAsWLMCnn36KiooKrF69GuHh4bjrrrsAAKdPn8YNN9yAN954A8uXL8ePP/6IlStXoqSkBCNGjPjP/rX+7vp+zSSUdZqhlMkwIin4g7x/bjauGpdENy2/pmVHo+iFBXB4AggPUYhYJzsemDHk1i2VSvDalSNp8QQEN62w/Q0QjY3bF0B+gp4+sP9/7L11fFTXvv7/jFuSibu7B3d3L1SpUEq91N3deyqnclrqtNQFKaXFnSQQIAHi7slYknHf+/fH2rNmb+iRe+85935fr1/XP4fuA8lkMmutjzyf5w0QdsmgxYWMaI3AJ8JgdaNxkJjOXTwmmWYkRpsbFW0mRIXIhawTh5cezItLgm0zq8uLT460w+L0YmlposBH5qPDbegwkkxoeWkCUiLV8DMsPj7cjuMdQ8iK0eCuuTn0wt1U2YVfavoQqZHjwYVBbMKvZ/vxPif0vH12cNMGsAmB6s3Ty4nlf+OgBTd9SUwRR6eG47O1BJtgsrlxxUeVaNULNy3DwyYAwNPLC2kr8a7vqilQdF5BLJ0IenNPM50Gi9TIUfkowSbsODdAS+wiEbD9DjKu3ThowTWfHqfvv9vnx9UT08AwLK755DitbumtLtrTfvqXOpoV1/VbqBbmi/JO/F47CAA40TmES8cmQy2XorJ9iAplO00OXD0xFePSI6GzuLGrbhAMS1xdqzqJSJNlWZS3kSDd7vET8jkX5PQMO6h2ptPooK+bZYFA5uPn5UBalQzhajmMNjeiQ4IGYWEqGcqSw3G8YwhxYQrk8KCeV4xLwVfHu6FRSATC6Gsnp8Ngc8PtFbbHrpyQgi6THToLwSZEcMHy3IJY3D03h2ITAhNYKZFqbLhmDA41G5CoVQm+1nc3T8K26j6o5FKs5k25/OXSUszKjYHL6xc4wV4/NR3FiWEYtLgwISOSZtelyeE4/CARrWfHhtC2YJhShj33zUCb3o7oULkAZ/LWFaPw2JICyCViQcC/ekIqrhifQtoWvHOgOElLbQKCvwcWWpUM7/FgpixLAniNQopbZmZRuwOivbFDKhFjclYU5TgBZK/Y3T6UJodTmwCAiNN7hh0YmxYhMIKs6RnBud4R5MaFYmJmFA286/rN2NdA2uoXj0migvlWvQ3fniCTn2smpdH2ec+QAx8caoPVRQTGgWqP0ebGq783omvIgSlZUbhjdjZiQ5Wwu314dnsdTcaeu6gY0VxA99yv9dRi4oWVxfQ1BbAJEpEIDy3Ko3v6x5M9eHxrLTw+ITahvNWI67+ogsvLID5Mia23T0W8lnADl797FDa3D1KxCBt52IT5bwWNHfmj4us+P0FNFLfW9NFE96XfGihw+INDrTj3zELIJGL8dKoXz3I+U5squ5AaqUZZSjjO9pnpcwBICFdhzaQ0+PwMHt18jmphQhRS6ln14aE21HHDKBsOtdHzcm+9Dq3cJOz3VT14ZHE+lDIJWvU2akJ5pteMQbMLkRo57G4f+kdI1W/E4aU/JwDaXWBZoZljLM/PKPY8m5T/F9d/OchZvHgxFi9e/If/H8uy+Otf/4onnngCF110EQDgyy+/RFxcHLZu3YrVq1ejoaEBO3fuRFVVFcaNIxf1u+++iyVLluD1119HYmIivv76a3g8Hnz22WeQy+UoKipCTU0N3nzzTRrkvP3221i0aBEefPBBAMDzzz+PPXv24L333sOGDRv+W2/GHy2pREwrK10mO94/0Aarm1CmA5UVvcWFV3Y2oneITAWsn52NSI0ENrcPT22tRXXPCHJiQ/DiqhLEhCrgZ1g8sbUWv9cOICZEgVd42IS39jRTX5iHF+XTTftVZRee3V4Hr1+ITTjYpMfNm07B42OQqFVi2x3TEBOqQBvHOnFwrJON68Zjek4Mp4U5RMeshdiEE5RM/MuZIDbhue311Dflk6MdqH1mIcRiEb6v6qEl9m9PdCMrRoOiRC3O9o7gxd8aAAB7G8hFFNDCPLWtll6s0SEKGtx9dLidals+OhzctPsb9XTS5KeTvXh8SQGkEjHaDXZaGq/tM8Nkd1NswiBXqjc7vTDZgpuWX7Pk/zkpIpi18bk6pclaaFUymJ1eTM4KYhNKk8JRlhKOdr0NY9MjaAadHqXB5eOScZxDFwQOdbFYhOdXFuEnDpvAJxA/u6IIHx0mlZyA5TtAxIshSimMVg+WlAaxCctLE8BwFanRqRH0sM+I1uCXO6ahsp2Y/gXgniKRCL/dNR2HOWwCfzz7tUtKceWEVHj9DHUWBgg2YXpuNEw2D3LjQumkSV58KMofmYNhhweRGrkAm/D9LZPh8TGCVgRAJtT4ENJAhW52fizdPwAJCB1uPzEsvGYsfW53+zBgdiEpXCUwaLO5fTjVNYwErRKLihPo5IjD48Oeeh2UMjGmZEXT7+3ykkkTgk2Io67VXj+DH6p6MGB2YUZuNL2gGW4Cpa7fjKJELS4dm0yDmy3Vvdhbr0dcmBJ3zsmmnk5763X4oqITCqkYt8/OpmZvle0mvLG7CQ6PH9dMSsOVE1IhEZHg46GfzqJv2ImZuTF4+ZISKKQSDJpduHnTSW4wIQwfXzsWyRFqEjR/fBwnu4ahlkvw9urR9Pd813c1tIV984xMCnF9bWcjtXPgYxP4bXW1XIJ9989EglZ1gTdLoGJm5bAJAb+lLpODYhNu2XSSXqCnu4Zp6/7VnY00edhdN0i1MNtq+ul5cqKDjJDnx4ehfsBCfWRa9DYsKIzHytFJcHkZfHO8G24fA6PNjd31Ovq5P8RhEwBSRQ2cl50mO33erAtiE/wsC4a7r30MQ93YlTIxtCoZbG4fNAopdViWiol9xJ56HUIUUkoCB4gurcNoJwBMnq5r5agknO01Y9hBRsUD+2R+YRwq201oN9gxPj0S+Vx7rCRJi0cW51Oz0ICOTSoR48vrJ2Arp4UJiOIB4INrxuL7KjKkcDkvgH9wUR4KEsIwZPdgbkEsrVQtLIrH5vVT0Kq3oSw5nE68pkSqceCBWajtNyM1Uk0TdpFIhC3rp6BhwIowlVTQPn9sSQFunJ4B9jyX6v9X179Vk9PR0YHBwUHMmzePPtNqtZg4cSIqKiqwevVqVFRUIDw8nAY4ADBv3jyIxWIcP34cq1atQkVFBWbMmAG5PFhmXLhwIV599VUMDw8jIiICFRUVuO+++wTff+HChdi6devffX1utxtud/DSs1gs/6Wf77VdTbTMvb9RH2SdnO6jffYTnUNYWppAWSebOR+ZDqMdS0sTcNGoJDg8Pmw+3Qu3j8GIw4uDTQYa5BxpMZCo2Q8cazXRTdsz7KAHTIfRTqcfCCqBPPcxLN20GrkU0SEKdA85EKaUIlxF3kuZRIxx6ZHYU6+DViUT+KAsL0tEl4n4xfDJ3peNS0GL3gaL04tLxyXTStTi4gSc7iKsk4kZUbQsW5ocjseXFOBE5xAyY0jbBiBamK9umIjtnBaGbzm+4Zqx+IGbLOITiB9dko+yFC2G7QSbEGhNLSlJwJb1U9BhtGNUSjidNAk4Kdf2kU0beC4Wi7Dt9qlo1tmgVcsE5ehHFxfglhnEDZcPMVxQFI/5HDaBXzJPjVILbNEB8jtQyiR0NDmwLC4v5BIxrhifKuCVBbAJxUlagZV6h9EOo82NkiQt1WYBxECtRWdDUWKYYEy3RWfF8Y4hpESqMSMnmlblukx2/Hp2gFLkA2T33mEHvqrsvgCbYLK58T6nhVlYFIdlpYlI0Krg8Pjw6q+NpIKSrMW983IRF0Y8nV76rQEHm/RIjlDjmeVF1BfmbwdaqRbmsSUFmMddxN8c78ZLvzXA42Nw04wM+vMdaNLjrm+qYXX7MC4tAl9x2IT6fguu/LgSZqcXURo5fvg72IS3riijFc9LP6igwbJgVJyHTfjkSDvVKnx0uJ22nd/e10yxCfsb9Xjo5+AESlSIHHML4qCzCLEJKrmY/hxPbaulWhiXl6Hjwp8f66CTa2/sbqJVk6MtRpzlsAnbzvTjgYV5SAxXoXfYgXN9ZrAsaU13mRxIjlDD62fRaSLBhMPjR99wsPrm5PRw5M9++ucItZw6sEeHBM/TjGg1okMUMNqI022gKpcaqcaEjEjCs4sPpaJUjVyKtZPTSVs9TIklJcEK2IML8/HJEaKF4Tuw3zMvF1KxiAIwA8Hv1RNTYXf70M1VcvK4c2NcWgQ+uHoMTneTKmSgUqSSS7DjrunY26BDlEaOFaPOwyY06iERiS7AJswtiIPZ6cXEjCA2YXpODI49MgcDZieyYi7EJugsLkSHKKiYXSwW4eNrx8Hp8UMmERo4/pEDO0BG3n/hObD7GRYOD5kE5CNSAvDUmFCFgIvo8TE43T2McJUMU7Oj6YSgz8/gaIsRDMticlYUDfr9DIu99TqY7G5Mz4mhLscB0XqbgbTVJ2UGuYj7G3U41mpCWpQaV04IDrUcaTFgy+k+hKkIqzGg0TzdPYwPD7XBz7BYNzWDvqYWnRUv7GiAwerG4uJ43DEn+59O5f1vr39rkDM4SMrrcXFxgudxcXH0/xscHERsrNA5USqVIjIyUvB3MjIyLvgagf8vIiICg4OD//D7/NF6+eWX8eyzz/43fjKy7p+fC4VUDKvLRx1XAWDtlDR4fAx6hx2YnhsjYJ18tGYsqntGkBsXQlknoUoZdtw1HQebSOmXH1AENq1MLBJkuo8syseS4gRYXT6MOw+bUP7IXAyaXciK1dCMP16rxL77Z8JocyNCLcQmfHztuD8c/7xhWobA7j2wJmREYut5rBObm2zav/I2rdvnR5vBhrgwJW6akSnwa6jqHEKEWrhpPT4GB5r0EIEY6d0zL5d+/V11gxi2ezAzL4ZeYCzL4tez/WjT2zEuPQJTs6NptryzdgCV7UNIj1Lj6klpVLB8oFGPzdV90KqkWD8rmHUfbzfho8PtYFgWN07PpK+pYcCCl35rgNHmwfKyBNw2k9Ck+0ecuO+HGrTqbRidGoHXLyuDViWD1eXFbV+dRnmbEWlRGvztqjH0e9z+9WnsODdAsAkri2nw9tz2eooc4BO/N1V24UluSoyPTTjaYsSaz46DZUlmufX2qShO0qJnyIEl7xyhwW/AERUAVr1fjiFu2qO6e5j+nh748Qwq28kkxt4GHfWF+fBwOz49Sl7T9jP9mJIVjUiNHAcaDfR5eZsJkzKiMDs/FoNmF51AadaRKY2A7mRTRRedmtta00eDnGNtRjppsr/RQIOD3mEndY5tM9jg9hJsgtfPwO0jF3Zg3Bkg2IRItZxiE/g6r9Gp4agfsEAuEQuwAvML4nCiYwguj58GfADJrg80knHt2fkxdIR5YmYkLh+XjLr+ADaBJCGxoQq8uKoYe+t1iNcqBdW3968Zi2+Pd0MhEwu4Zy+uKkFhghYOrw8X89rP66ZmIC5Mib4R5wXYhO13EGxCXnwoRYOEKMggw+muYcSGKQSE6I/WjEPDIPm5s3ntwptmZOLiMQQiyQ/sx6ZF4sRjczlEhVggBP7hlj/GJjyxrFAwWeb0+CESQYA6AIi2hbTxNYLzQWdxoX/Eidy4UFo9BohWp7bPjMyYEMG0m87iwqFmAyLVcszOj6VBAMEmdEHEYRMCwZDZ6cWnRzsw4vBgWWkivdCdHj/e3tuCTg6bcNm4ZMSEKuDzEwf2qk6ihbl/QR6tyn52tINOEz28KJ9+ln4+1Uu1MHfMyaYSgINNejzy8zkMOTy4qCwRr11aCpFIhNo+M67fWAW91Y2ChDB8dcMEgk2wurDqb+XoGyHYhE+vG49JmVHwMyyWvnOEmq/yHdhv/+Y0NUWckRtDfdr+urcZ7+4nrylUIcWJx+dBJZfglzP9ginSwKh4i86K6zcGReuBwIVhWFy/sYqeJ2anl2IvXtzRQNvq7QY7TRJ+ONmDQ5yYvWHQgrVT0y9w+P6/Xv+/mq569NFHBdUfi8WClJSUf/AvhCszJkTgD9A3Qlgn+fGhdEIDIL3o+gELsmNDBKr03mEHDjcbEc1lhdmxJAjQW13YWk1YJxePCcIKh+wefHCwjRB2RyXRw87h8eGN3U3oNBFswpUTUhATqoDXz+DNPc043TWM7NgQ3L8gFwlawjp5/2ArZZ08tqSAHpA/VPXg3QMtEEGEO+dk0zL+3nodHt1yDmaHF5eMTaKi1LO9I7h+YxWMNg/y4kLxzU2EdTJgduLi98sxYHYhRCHFxnXjMS49En6GxeK3j1BswiOL8+lhddOXJ+kG4WMT/rKrCR9yF6hWJUPV4/Mgl4qxtaZPkEUHNm1dvxm3fhUUpUokYqyZRLQwN315ko6hOtx+Knx9YUcDHQkfMLuoHuL7qh46UdKss2LdlAyo5BJUd4/Q4GBPvQ7tBhLsDNk9ON5BRkM7jHbUD1goG6q2n3x9j49Biy5o4BgYHT3/z2FKKWQSEbx+lsvAycUTr1UiKVyF3mEnMqI1iOIy8qgQOWbkxOBIqxEpESqBAPqGaRn45jiBUK4aE7xY75idA5ZtgdfP4IZpwUrauqnpGOZ4TnwtzIKiODy6OJ9ONQVsD1Ii1dh0wwQcbjYgKVyFKycGq1Q/r5+CX8/0Q62Q0ioeQEbFl5YkwONjMIeXda+ZlIbRKeHQWVwCbEJZSjiOPTwHnSbibBzQyIRybLX+ESfC1TKBz8uLq0rwxNJCSMQiAbR05egkQQUssHLjQml7BSCBtM1NPKT4VTmGIQaOWrVMYPbGMMRRVy4VoyxZi1EppfTrVHUOweb2YXJmFD0fWJbFsVYjeoYcmJARKQi4jrUacaaXVFBm58XSi7Wqk+iwYkIUuHpSKk1+zvSM4KvKLsikYtwwLYPu6Va9Fe/sa4XV5cUV41NoK69/xIkXdtSjh2ur3zc/Fyo5ETc/8vNZVHePIDc+FH+5tBRxYUowDIsHfzqLHef6EaVR4LVLS2ky8OKOenxytANikQj3zc+lANkvKzrxzC91F2AT9jXocMumU/AxLKJDFPjtrmmIDVOiVW/F0neC2ITPrhuP2XmxcPv8WPDWYZidpK1+26wsPMxNj12/sYru3V11gzQoe/m3BnzHtXC+KO9C/XMLIZWI8V1VN97aS8bXt1T3oSgpDEWJWpzrM9Ox9iMtRuTGheIaTgvz8u8N9LJPCu+i2JhNlV1o5yZeN1V20SCnos1EA/tddYN4YRUhtvePOKk3VLvBRqqSIQr4/KS6AxDtS8C7SgRQ1plYBMEUVV58GPbU68ACKOC1zcanRyI+TAmT3Y15hXFQcJ97Ur0hrLRxaRHUeiAtSoN1U9NR3krAuQFmoVgswuuXldG2euB3ChDu3KdH2+FnhA7sd8/LRaRGAQNXAf5/LcAB/s1BTnw8ebN0Oh0SEoLVCZ1Oh1GjRtG/o9frBf/O5/NhaGiI/vv4+HjodDrB3wn89z/7O4H//4+WQqGAQvHvEUrtrhvErV+dugCbUN9vwcq/HYPHzwiwCQ6PD4v+eoRmsnfNyaZ6ges3VlFB7J56HWWdvPBrPW13fXuiOzgqfqKHRu7bz/SjLEVLWCddw3hnHxlrP9pqRGFiGC4fl3IBNuH7qh48dxE5EL850U21Ld9V9dAgp7zNRNsBO2sH8cLKEkjEIgyaXZRk3D3kgNXl421aslHdPj+dtBGBvD/tBjsxCONNY5Uma3GkhQQ5fNr4pMwobK3pw7DdiwWFcVQLMzEjCtOyo2n5NVAxy44Nwbqp6bSnvZCrHIjFIvx19Sj8fKoX4Wo57uRlj69fVoaN5Z1gWZY6igLA/QtyERumgMnmwZKSeFq2XlISj4+vHYcWzuE3UEFKi9Lg97tn4FTXEFIjCWwVCGphKttNCFXKMD49qHl55ZISrJuWDj/DojDhPGxCbixGnB6kRKhplS07NgSHH5wN53mwQrVcik+v+2Nswu2zswWHlNdPsAl81AFA2mlmhxeJ4SoqagRIgN095EBGlIZmkgBpa1V3E2wCH8Ew4vBgx9kBqOVSzMmPpf/G5vbhq8ouuLykghKoWrq8fnx6tAODZidm58ViSjZptfn8DD450k6xCWunpGMsJz79MoBNCFPi/gVBA8fNp3vxZUUXVDIJ7p2fS6suBxr1FJuwZlIabY+e6RnBPd/XoG/EiVm5MXjnytFQygg2Ye1nJ9ButCMtSo0v1k2g4+uXfFCOun6CTXhn9SgaOPCxCddPDbo1P7u9HhvLOwEQt+Bd95Ig+psT3dTgUC4V48ADs5AUrsLxdhOu/iQoWg9gE8xOL674sIJaTxhtbjzK6W1u/+Y0NYdrN9io2/Zbe1toa66i3YSGIoJN+OVMP347Ryrd5/rMuGxcCjKiNWjVW6nIfdDiwsnOYSwtTYDbRyqqLi/BJpS3GWmQc7aXtNP8LIs6LpgnnwMvfa2BSmLgZ5WIRXQyL/DZDlPKkBKpRqvehpgQBeI48bZcIsac/Fhq88DHJlw1MRXvH2yFWCQSCMqvmpiK7iEHhh1eXDImibaWVo5KQrPOii4TaasH2mNlyeF4/qIinOgcRma0BpdybR6pRIzvbp6M7Wf6EaGW4zpete6ja8diCydNuJiXPDy4MA+jUyMw7PBgVl4MnepcUBSP3++ejk6jHaUp4bSalhiuwqGHZqN50IrkCDXVe4nFIvx06xR0cY7o0bz2+X3zc3HLjEywgIAKPiM3BpWPzb3AwDE5Qn0BzNTt80MuEdMBDoAE3oNmF1QyCS4aFQSKAuRz5fWzyI0LEQT9DQMWGKxujEmLoBVcADjXa0azzoriJC3V/fxfr39rkJORkYH4+Hjs27ePBjUWiwXHjx/HbbfdBgCYPHkyRkZGcOrUKYwdSwSG+/fvB8MwmDhxIv07jz/+OLxeL2Qycinu2bMHeXl5iIiIoH9n3759uOeee+j337NnDyZPvrDU+p9YarmUYhNCeHbfERoZkiNVaDfYER+mRFwYh02QSjC/MI4Y74UoqMARIKZnHxwkrBP+lAPBJrhhcXkFPe2LxySh3WhDl8mBSZlRdER0fHoknl1RhFNcJecirnetlEnw462T8fu5AURqFLhmUvB7fLI2wDoRUcEbADy2JB8TMiJhdnowKy8I61xQFI89985Ap8mBkiQt3ZwpkQFsghUpEWqqwBeLRfiBh03gj3PevyCPXsT8Uc7Z+bE4/lhQ1xVYieEqgS06y7Kwu31QySQXbNr+ESc0cimWlSZS75IANsHPsChICMXLFwcn2s71mmG0uTE2PULgm1PTM8KJ9bSYXxhHhZ41PSOoaCMi38XF8bRF0DhowbaafoQopLh6Yio1dWsz2PDZ0Q74/CyumZRGe90DZif+uqcFeiuZJrpifAq0ahnMDi+e31GPZs5s79HFBdAopHD7/Hh6Wx0ONxuQHKHGSxeX0O/90m8N+IabZHp2RRG9iD872oFXfm+ElyGuvgHExM7aAdz1XQ08PgYFCWHYfNsUqOQSnOkZweqPKuH0+hGqkOJnDptgsrkx541DNLt+9ZISqjNa8d4xdA8RjQifXH7/DzW0xL6psouOa394qJ1m1x8f6UDlo3NJi7VRjxd2ENH65uo+pEaqMa8wDjqLG0+dh00IeHq8/HsjDcg1h9tokPPDyR5qDvfJkQ4BGyrgP3Ww2YARhxfxWgmMHA8LINVYvTWATWBhsgWxCQHRPiC8bDSK4Gc4K0ZDq3L8w740KZyauk3OjKIVs9y4UMzNj8WZXmK8V8p9PsKUUtw5Jwe/1w4gNlQpuFifX1mML8o7IZOIBRfNI4vyEc6JaM/HJohFpD04jeekPDYtEl9ePwE1XFs9kNmr5BLsvGc6DjYRaG/gsw/wsAliMaach01YXBwPs9OL0uRwITbhsXnQW11IjVLTICA2TInd98yAxeVFiCJ4jopEhOv25uVlF2g8rpyQKjgnA9iE0uRwOuEEkEB62OFBTIiCVqIBUglv0lmRoFVhzeR0rOFhEw43GxChlmNMajjVq7m8fuysJdiE2bwA3u3z4+dTvRh2eDCvII627BiG4BFa9TaMT4/A3II4FCSQ6u62mj6Ut5qQGqXGDdMyqID693MD2FxNLCbumptNfzfHWo14/2ArfH7SVg/8Ds72juC57fUw2T1YXpqAe+fnQiQSoWfIgTu+rUarzooxaRF4Z/VoRGjksLq8uGHjSZzoJBOQG64ZS5lr131ehUPNBkjEIjyzvJC+H8/8UkcDdb4FA99qIT5MiQMPzIJKLsGhZgPWcnwzsQjYsn4q7T78X67/cpBjs9nQ2tpK/7ujowM1NTWIjIxEamoq7rnnHrzwwgvIycmhI+SJiYnUS6egoACLFi3CTTfdhA0bNsDr9eKOO+7A6tWrkZhILqOrrroKzz77LG644QY8/PDDqK2txdtvv4233nqLft+7774bM2fOxBtvvIGlS5fiu+++w8mTJ/HRRx/9D9+Sf21Ny4nGicfnwmTzIDFcRUvjCVoV9t47E1aXDyHKIDZBzMEYAz1O/jp/0/oZFj6GQVlKuOBSD2AT4rVKgcOy1eVFO8c6WTslneoE7G4fKttJT3t0SjjtUTs8Pmw/0w+RCJibH0cPf7fPj59O9WLkvE3r85Pphg6jDRMzojCvMI6OJ/9Q1YPjHUPIiFbjxumZVEC94+wAtlQHWCfZVJ1/oFGPDw62gQWLW2ZkUb1GdfcwntlejyG7G8tLE/EgD5tw+zfVaOfcOf921RgaBFz72XGc6TUjNlSBj3nYhGs/I9n1+Zv2kZ/PUWzCkpJ4vH81CbI/OtxGp8RiQxU4zGET9tTrqOEaH5vQZbLjYp6x43MXFeHayenUWyJgotg0aKWi4kd/PkddnI93mKgW5tMjHfQ1HWgykFaRRo6DzXr8xE2gnO01Y1FRPKZkR0NvceP7kz1gWaDf7MLBJj2yY0PoAWpz+2Bz+3Cg0UCDnJqeEToCepLrqwOAxemjEyjDdg98DANAAqlEBKlEBHgBGZeBAyQQzYjWoKZnBGFKKZLCg5No8wrisKmyEyqZBFOyg5feRaOS0DBghcvrF3zGV4xKxOnuYQyaXZhTEEt9g6bnROP6qRmoHzCjOFFLKwfxWiXeXj2KAjBvnB7UvHx5/QT8eLIXKrkYa3lVuVcuKcW49Eg4PT6sKAtmp9dNSUd6tAZ9w05Mzoqigfro1AjsuXcGGgetyI0LpcEj0cLMxLk+8lnj4xTev3oMuoccUEgl9OsAwJrJ6bh0bAo8PkYwQl6SrMWhB2dfkHVHaOQXVOW8fgZSsQj3zs8VTJYN2T2QiESYnRcrMMPrHSaV1dy4UIElRYfRjt5hB4oTtRTsC5DR77O9hCPHd2BvN9hwoMmA6BA5lpQkUPfevhEnfj7VC7GIDAcE3MANVjc+OUosJlaUJdHxdYvLi9d2NpK2elYU1k1Jh1YdCrfPjxd31KOqcxiZMRo8sbSQYhPe3N1EqzdPLy+il+Smik68vS+ATcih7UI+NmF5WSLeWR3AJgzj+o1VMDu9yIjW4PtbJiE2VIkBsxMr3jsGg9UNuVSMz68bj6nZ0fD5GSx46zCtjPGnTm/ZdIq21fnYhFd+b6SOyW/taUb1Uwsgl4rx8+lePMhhEzYcArbdTi77Jp1VoJFRySS4fhrRwtz5bTVtq7MsS9vqb+5pploYk91Dg5wt1X10L39wqA3rZ2dDKSPIkwCF/EiLEd1DDkRo5LC4fDjbR57rLG60Gey0Gj1gJj8zMQUMDuaIeZ9PqTjY+o0PU0IpE8PlZZAcoSJnBYgze1aMBm0GO4oStUjg7Yf/y/VfDnJOnjyJ2bNn0/8OaFzWrl2LjRs34qGHHoLdbsfNN9+MkZERTJs2DTt37qQeOQDw9ddf44477sDcuXOpGeA777xD/3+tVovdu3fj9ttvx9ixYxEdHY2nnnqKjo8DwJQpU/DNN9/giSeewGOPPYacnBxs3br13+qR889WqJLoAVxeP57dXkfAkzEheHJZAcLVZNO+urMR28/0I0ojxzMriugH6+PD7dTf4f4FeZRftP1MPx75+SzsnEAysGn52ISMaA1+4rAJPUMOrHjvKIbPwyZ4uU0boADfPz+Xtmuu31hF9SVCbEIjjdzf2tOMGg6b8P3JHlpi//hIB3bcNY32tPkTKFq1nLJO7vqumrbHWLBUy/TW3mY6UWJ3N9Mg55cz/XRzfnKkA3dx2IS6fgsauGmZ8jYjBixOEuQ4vWjidC56K8nAAweijuuN+xkWBluwZM4HFKpkwY9+SoQaKhmpymXGaKj9eUa0BpkxGrQbCKE3UJWLC1NiWWkiytsIuiCQyYpEItw/PxffVfUgRCEVYBMeXpzHYRNYXDc1nT6/dVYW/Cw5XBZxAQ7AYRO4n3FUSgS9OFIi1fjp1sk42mJCUoRKgE3Yfuc0OurKF4K+cXkZVo1JgsfHYAZvhPzy8SkYnxEJvcWF4iQt7f8XJWpR8ehc9I84kRyhomJ2jUKKLeunYMThhUYhFWhenlpeiCeXFdDXElhLShIEwvqAgWNGtAZfcMJJgFRIDFY3IjVygcOyx8egYcCCqBC5oJTu8TEobzNCKZNgdEo4/Tc+P4MDjXrYPT7MyI2hQnqGIZMm/SPE8C4QHJAJlAGc7TUjPyEMy7nJSIBMoOzhwJM3TMugJnnlbUZsquDM9mZkUaF5LafxsLl8uGJ8Ci4ZmwyVXIJOox1PbqvlsAnReHypEJtQ3U0qKO9cOZqbomJw21ensLdBjwgOmxAIQJ7Yeg5fVXZDJALumpNDgx8+36wsJRxb108hLVOeieI/wiZ8cu04zCuMg93tw5J3jtB2c9OglTop3/jFSboXDzUb8OOtwVHxQED+48leNL2wGBKxCD+d7MUnnGh9b4MOkzIjUZSoRX2/BR8fIc9rekYwIT0Sqyekwu1j8MGhNm6KzIEt1X10T2+t6ac4lG01/TTIOcfDJhxv52MTPLByoFKD1Q2XJ+jz8kdLLBIhPUpDsAlSsUCkPSkzChVtJrBgBVWr+QVxONxswLDDixVlibStPiM3BvMK4tDOtdVz4ri2ekwI7pyTTSvAAT2WWCzCB9eMxZZqooXhV5LfvLwMX5R3gWFZekcApD2WGqmGyebBouKgA/ui4gR8dcNEtOhJBTjw/gXYb6e6hpESqaYJb+DcqO4eQahSKhCzP7W8ENdNSYfHzyArJjhCvrQ0AbPzY2Bz+RATqqD7PT1ag333z4KfYf9bTMT/1PoT0PlfAHT+vXWiYwiXf1hB//uNywiLx+X1o/SZ3TSL5vfsL3rvKM5wl/35fKaA6DY+TIljj8yBRCzCnnodbtl0EgwLhKtl+O2u6XTcdNX75TBY3VDJJPjyhgkYnx4JhiEVjaOtRsilYrx6SQmdUnr/YCve3tsCkYhkLIHsrrzViCe31WLE4cXK0UmU9TNoduHJbbXoMhGnzieWFtLpl3f3tXCVHA0eXpRPL+k99Tpsre6DVi3D+llZ1H+my2TH18e7wbIsrpqYRsuyTo8fP53qgcnuwYLCeHpxBF5XGyf05U/M9I04UdM9grQoteC52+dHTfcIwlQyyu0JrN5hBxgGdNw5sFxePxwePyLUsgvK4//KpvX5GUjEogv+rcXlhd/PCujmAAnETDYPcuJCBOPp/SNOtBvsyI0LEZhuDZidqOocRlK4CmNSg20AncWFnbWDUMslWF6WSA+7YbsH35/sgcvrx8Wjk+nPa3F58emRDgKeLAqy2Nw+P94/0IZ6zmzv1plZkEvFYBgWHx5ux/5GHRK0Kjy8OJ9eAF9WdFItzIML8+hF/Nu5Aby4owEurx9rp6TTjPh4uwl3flsNvdWNWXkx2HDNWMpOuvKjSgxaXIgLU+DrGwk2we72Yfm7R9FuJLYGb15eRoOcSz4opxnuVRNTKcU5wE4ChKDRT4600zaYTCLCkYfmIF6rRHmrEVfxtDAbrhmLRcXxhPj+wl76fP2sLHrZT31lP00e+Jk930lZI5eg9tmFEIlEgkohABx+cDZSo9QXeNJ8tGYsFhTFw+ryYuor+ylNnc91u+aT4zjaSjRAq0Yn0crwh4fa8DIX5IxODcfm20iQU9Fmws1fnoTV7UNuXAh+uGUyNXS8YWMVzvSakR6lxidrxyM7NgQMw+LxrbUcNkGOly8upe2/zad7seFQG8QiEe6em0OnoJoGrXhjdxNGnF5cPDoJq7mKndXlxTv7Wmhb/bop6RCLiQP71po+nOgYRlaMBmunpNM9UNtnxq66QURp5Lh8fAoNsM0OL3491w8RRFhamkCd1hmGmF2OOIkrOb8d3m1yoHvIgYKEUIE1hMPjQ4fRjgStSgAEZVkWRpsHarlEIPgFQBO2f3YOnG/2Gng27PAgVCkTJAYMQywBQhRSwV5nWRZne83wMQxGpQQd2ImYfRhGmxuTMqMEr728zYjmQSvKUsJpIg2QPVfOBVUreQ7sZ3tHsPl0H0KVUqydkk61Pw0DFnxypAM+hsG1k9NoZb5nyIG/7GqC3urCoqJ4rJ2SDpFIhBGHB09tq0PDgAWlyeF4ZkUhTfwf+fksDnFt9dcvK/u3a3T+1fv7zyDn3xDksCyLzaf7cKp7GDmxIVgzKY32lhsGLNhdp0NkiByX8bEJDi9+rx2AmPOkCfT2A5vW7PRiWna0oNTdM+RA77AThQlhgudOjx/dQw7Ea5UCzALLsjDZyaYNHBb8/w/4x9gE4I8veD/DwmhzQ6uSCbQ0foZFq96GMJVUAJBjGBY1vSNgWfaCTVvRboLJ5sHkrCiByO5oi5GIfFOF2ITyViOOtRmRGqnGJWOS6ft8sjOITbh+Wgb9WvX9FnxypB0+hsXaKcFN226w4bWdTTDZ3VhakkA3rcHqxhNbz6FFZ8Oo1HA8dxHBJri8ftz/wxkcbiGb9q0ryqgW6tHNZ/FdVQ80cileWFlMp3je20+ghAxLWpIBDRAfm5AVo8GOu6ZDKZOgqpNgE7x+Is7csn4qChPDoLe6MPsvB2HnhN38UfHJL+/DAOfNwscmXL+xCvsbicA/OUKFow//MTbh1BPzEBWiwM7aAcGEWiCzHzS7MOnlffQ5XzDPRzb8PWwCH9nA7+Vr5BIceXgOIgPYhA8q4PETM8Hvb5mMMakRsLt9WPrOEXSaHBCLuIoUF6jf90MNNp++EJvw48kePP1LHZxeP66eGGRG1faZcd8PNRgYcWFmXgzeuLwMCqkEFpcXT2ypxdleAsAMYBMYhsVHR9q5So4CjywqoIFiZbsJmyq7oJCIcTMPm6C3uPDpsQ7YXD5cPCaZajq8fgY/nOyh2IQpWUHh96muYZzpIe7CAmyCxYWKdhNiQhWYnBklwCZUdQ5DJhFhTGqE4ELtG3HC6vIiJzZUsGddXj9GHF7EhCou2Ms+P3MBFuX89ffOCpfXD7ePEZw5ABk91ltcSIkUYhOG7R406axIi1ILzocRhwflbSZEqOWYlBnEJlhdXuysHQQLMqYemNxxevz46XQvRuykipFzHjYhAJ5cUZZIsQlfHe/C8XaSjK2fnXUBNkGrItiEwNfaU6/Du/tb4GdY3DIzi068nugYwpNba2Gye7CiLBFPLiOJYKvehps3nUS7gfh2fbp2HKJCFBiye3DVx5VoHLQiQi3DJzxswhUfVuJE59AF2IQAhgUgMM1AxZOPEorUyHHs4TlQyYVtdQDYsn4KRqdGoMNox+zXD9LnzywvxHVTM8CyLEqe2U0rYMtKE6ir9mUbyqmnEx958uKOelp9A4Cap+YjXC2/4NzYdMMETM+JQe+wAzP/cpAGh08tK/xDT6H/yfqTQv6/sIw2N5oGyaa9ZGwyNWEashPWSaSGbNpANcHs8NKDeUlpAs147G4fNh7rwLCDsE4Ch53HRyZNOox2TMqMwjIOm8AwLD492oETHSZkRJMSaCBK/uZ4N7Zx2IT7F+RRXcGvZ/vxHjeRdfvsbFoqrWgz4fGt5zDMbdpnVhRBJBKhadCKmzedRJeJ2L5/cu24C7AJWpUMn103DmPTSOVo1fvHcLaXgDWfWhbEJtz7Qw2lAPOxCe/ub6UjnBFqGcofmUuMv84O4PZvyMbhYxPaDDZB1u30+HEd5+9w1SfHqb5kwOyiGe5T22pp7/ps7wjVwnxZ0YWddWSipKpzGJeNS4FGIUVFu4kKZduNdqwen4oJGZEwWAk2wcewaBiw4Hj7EPLjiZjwcLMRLBt04Q0EOZ0mB9XttBtsf/gZ4mcYYUoZtCoZjDbiKBwIfEMUUpQka1HZPoToEDk1aAOAS8cmY1NlFzRyKbUqAAgUctDsgttH3qPAumpCKnqGHNBZXJhfGEezwdn5sbhrbg431RRGqzLxWiU2XDOWVnL4rqvf3TwZW6r7oJZLLsAmzMiJhtPjF7Sqrp+ajsKEMAxanJiYEcxES5PDceihWWjREWxCwC9Go5Bi170z0KKzISZUIXBXffPyUdT9mn/JXjYuBZeMSYafFRo4FidpKQwzsBiGRZhSJjBjZFkWw3YPVHKJwKCNZckIuUQswqTMKNq6YlnyebC5fSg7D5tQ22dGz5ADo1MjaFAaeF7DuaBPzIyiwVBdvxl76/WIDpXjkjHJtGrVZrDhuxPdEItFuGZiGm1dBrAJFqcXl45N5ryhVBiyezhsgh1TsqKxflYW4rVKODw+PP9rPU53jSA7LgTPriii2IRnt9fj17NkVPz5lcW0evPBwTa8va8ZIohw/4JcehH/fKoXj205B7ePwfzCOHy0ZiytHF2/sQpOrx8JWoJNiAtTotNox/L3jsLqEmITvH4hNuHOOdm4nwuib/7yFOUG/niyh7bHXv69AV9ywOG/HQxiE37mYRO+quxGaqQao1MjcK7PLBCtx4UpsGYymW58bPM52rLTKKTUs+rDQ220rf63/a00yNldN0jb5N+c6MJDi/JoNTJgk3GuzwydxY2oEAXsbh96ODH7sIMEf4Hl8Pq4zxAJGAMrNiyY7MXzPvO5caEUZlqWrKXtsfz4UIxKCadDCgH9Y2K4EleMS8HRVpIUBrzDRCIRnlhagO+qehCqlApMWZ9aVoQNh9vg8zO4bkrw3Lh9djakEjH0FjcWFcfTitmCwni8cVkZGgctKEkOxzROQ5ccQQxTy9uMSAonwxn/V+vPIOe/uTqMdix75wjsf4BNmPfmITo+yRewXbfxBKo51sm2mn5a5n7ptwZ8fZywTjYcakPts2TTfl/VTUvsXx/vRka0BsVJWpztM9OMGNAhKYKwTtw+Px7feo4iC8LVclo9+PhIB500+fhIOw1y9jXo6Ob88VQvHl1SQMnLXRxO4WzvCDEV5LAJOq5yYHF56Tg5APj8AeFcsLwLCDcqP4MrSgyj2IRx6ZG0lFucFIayZC1a9TaMSYtAModdSI5Q4aqJqShvNSIlUk1bLWKxCM+tKMKPp3oRppQKRKlPLy/Ch4fb4DtPC3PPvByEKKQw2d1YXJxAy9PLShLg8zNo1tkwKiWcHvYpkWr8csc0VLSbkByhwvwCITbhYLMeYUoZpvOy8dcuKcXq8UR8Oj4jOAJ72bgUzMiNgdHmRk6sEJtw7JE5MNk8iA5R0OdquRTf3TwZLq8fCqlYkFHfvyCPXgrkvSfv+5z8YCsKIAGz0+NHSqQKf7s6yEJyeHzoH3EiQauiTB6ABN5nekcQF6oUmL05PX7sa9BBKZNgUmYU/Tcurx/bavrg9PixoCieTl35OPjjwIgT03Nj6AXNsix+PNmDs71mFCSEYfX4FPrZ2FbThz31OsSHKXH77GzaijzQqMcXFZ2QS8RYPzubVvgq2014fVcT7B4/rpmUiqsnpkEMEZp1Vjz001n0ctiEly4m3iV6qws3fXmKq6AEYblunx9rPj2BEx1D0HDYhIBm7N7vayiU8JYZmXSM+y+7mig2oTgpDL/eOR0AQT8EPJ3Ucgn23jcTieEq1PaZsfy9o3SPfrhmLBYWxcPm9gmwCd1DDhow3brpFDWHO9UZxCa8tquJohx21+vQxGETtlb3UTF7ZfsQ5heS6Z76fgtt5TXprJhXEItVo5Ph9jH4rqobLi8Do82DPfWD9HN/sElP9TmHmg30Qmw32ijbqL7fQrUwPobhBOzkMxcIIBScaaPV5YNKLoGam0STikUYkxqOXXVES8ZvLy8qjkfDoAUsCyqiB4gz++nuYQzbvVg5OlGATTjeMYQ2gw3j0oLJZXGSFg8tyqMWExdxSYhELCLYhJo+hKvlgnPj3atG47sTPWBYVuDA/uCiPOTFh1IRcKBSNb8wDlsC2ISUcOr+nhKpxgGeA3uA1ScSibB1/VTU9VsQppLRtj1AKpPXT82An2EFbaz5hXGoeWoBPD5GoC9MiVQLzFoDSyGV4NVLSwXPHB4fJGIRVk9IpUk2QHRLPoZBSbIWf+Ox0gJThkWJYdSnCAA6jXa06G3Ijw+lyT1A7sXKdhMSw1UCB/a+ESfxzpJLsHJ0ksDb6j+9/mxX/TfbVQNmJy7bUIHeYWJI9sW6CShLCSflzU2nsLdBh1ClFG9ePooq4j8/1oH39rdCJBLh3vnBCYFTXUN47tcGjDg8WDU6iTr/GqxuvLCjHp0mByZlROL+BXmQS8XwMyw+PdpON+0983Np1n+kxUD8HTRy3Dw9k/aiB8xO/HiyFywLXDYumWbLHh+DHef6YbKRiap03mY73T1My698F1WTzY3afgtSI9WCzenzM2jSWan3BX8ZbW6wLOgUTWAxDAsvwwho4f+VFcAmnE8xHzS74PUT9T8/KGg32GC0eVCSpBUcFK16G1r1VhQkhAk4La16G050DCElUoVp2dH0awWwCRq5BJeMTaabdtDswqbKTnh8DC4bl0IPu2G7B+8fbIXe6saCwnjK5nJ4fHh9VzPFJtw3PxdKmQQ+P4O/7G7CoSZitvf0ediELys6oZZL8ejifFrB+elUL57bXgeXj4yKB9hCh5oNuOOb07C6fBifHoFNNxBsQrPOiis+rMCww4twtQzf3zwZefGhMDu8WPDXQ7QVxccmLHv3CPV04mMT7vy2ml64mdEa6oj6/sFWvLaTlNglYhGOPUy0MPxxUwD44OoxWFySAL3VhQkvBttjfBO4KS/vo9iEqdlRlK1266ZTtCoXpZHj1JPzAQh1OBKxCIcenIXkCDXO9IxgFW867vN1xIDO5vZh5msHYOISFH6J/cYvqrC3gbT/rp6YSqeXPjnSjpd+awDDCg0tT3UN45ZNJ2G0eTAqJRxf3jABYUoZhuwe3PbVKVR3k6mmD64Zg7QoDRiGxSs7G7Hj7ACiQxV4bkVwsmhn7QA+OtwOqViM9bOzaEbeZrDhvf2tsDi9uGxcMg0EnB4/Pjrcjq4h4vAbGCNnWRa/nRsk2ITYEFw+LoW2u9oMNuyt1yEqRIHlZQl0P9rdPuxt0EEkEmFeQSxt87Asi9PdwzA7vZiQESUYpddbXegfcSErRiO4zDw+BoNmF6JD5Re0z11eP2QS8X9LsOpnWNg9PoQqpIK97vExGDA7EcWDyQLknPqj4MLnZ1DBiZcnZ0bRJMPPsDjUrIfR5sH0nGgajLMsiz31Okr25tuC7G/U4WiLCamRKlw1MY1+rYo2E3461YtQpRQ3z8ik5/Dp7mFsOBjEJgSq+a16K17c0QCDjSRj62dlQSQSQWdx4aGfznIMu3C8ckkpwpQyODw+3PFNNY5wbfV3rxxNA40HfjyDn071Qi4V49kVRXTa8Y3dTdR3jd/y/oFrq7MsES7vuncGQhRSVLabcNXHlWBYom/bsp44sOssLsx47QANfp9dUUQnffl7lz/Z+j9Zf7ar/sMrwDrRW92I0gixCZ+sHfeHm3bd1AzawgkslmUxNi1SwELy+RnYPX5EhwhZJ26fH616G2LDFLh5RhYVDHt8DE51DSFcLRcYtPn8DA43G8CwLKZkRdOKks/PYGftIIbsHszOF2ITfj83gFYOPDklK5qq8HfVDaKy3YSMaA2unJBK4ZOHmg3YcrqXsk4C6vxTXcPYwLFOrudt2oYBC17c0QCjzY3lZYlYPysLCqkEA2YnHvjxDJp1NoxJDcdrl5ZRYN76r0+jnCu5vvd3sAnPX1REqwev7mzEB1x2fdGoRPoe8rEJgWkDlVyC8lYjrv70QmxC77ADS94+QoXjL60qoRMOF79fTi/D6p4R+j0e+vksDnPjpr+dG8SxR4geZcOhNtrT3lbTj0mZRAtzsMlAEQ8V7SZMziTYhAGzCx8eIgL0xkGrwL/n68ouLgBxY9uZfhrkHGkxULHqnvpBGuQETBsBAj50ef08bEIw6w5gEyQSEbQqGXQWNxRSMUIUfAPHcNT2WSCTiARZ95z8GFS0GS9oUc3Nj8Peeh0GzC7Myoulbs3j0iJw1cRUnOs1Iz8+lJLtY0JIu2QvV8nhG7H97eox+OZ4N+RSsaDE/uKqYhQmhsHuuRCbEBOqQN+IE1Ozoqn4vSwlHDvumo5zfWbkxoXSilCIQor998/Cya4hxIYqqZcRQLAJ9QMWSCUiaiYHADdOz8QlY5Lh8PqRyBuZHZsWgeOPzYPT64eGZ+AYqZFTs0/+EotFeGxJAQVrAuTiJ9iEBEElY8Thgd3jR2a0RmBJobe40DviRE5siMCBfdDs4rAJGiwtTaABtt7qwuFmIyI1MszMDfq/GG1ufFXTDbGIGOkF2mYWlxcfHGzDiMODpaUJVN/m8vrxzr4WYvOQEYmrJqQiNlQJn5/B3w604njHEDKjNbhvQS4N1L8o78Tm073QquV4eFEePTd+PtWL9w4E2+oBg77DzQY88vNZDDlIW/3VSwg2oWHAgnWfV2HQ4kJuXAi+unEiYkOVMFjduOSDcnQPOQTYBJZlcdHfjlGC94MLg15dd3xTTYNl/jDI2/taqMlqqFKKE48RbML2swO469tq+j4HHNhb9UJsAsMSzhXLsrSVBwAGm5tWTV7a0UDb6m0GG22r/3CyFweayHlS12/BNZPSoFXJcLJzmI61D5wbxA3TMjA2LRLDDi+Othjh9bPoMNpR0zNCg5wAfNnjY1DfH+Q28qvxBh7QWC2XQComXk8hCikkFP0hR1yYEgNmFxLDVQjn9KFalQzTc2JwsEmPpAiVwCPn2inp+KK8Eyq5hN43/1vrzyDnf7BkkuCo4YeH2rCNwyY8uriAXsQ/nerFe/vJBrljTg7dtAFswojDg4tHJ+OVS0oo62TdxioYrASc99WNExEdooDe4sKq9wnrRC2X4NO14zE5i7BOlrxzBK1cOZuPTVj/9Wnsrif6Ev6m5WMTwpRSVD0xDwqpBNtq+nHP9zX05wts2vp+C27ZdIo+F4lEFJtw4xdB1onV5aOH7ku/BVknnUYh6yQwHdKib8a6qelQy6U43TWCY62k/76rTodbZtowJjUCJpsbFW1G+BgW7UY7avvNFJsQADF6fAz9+QHA4vT+4Z/DlFLIJWJ4/AwiNXIErB9iw5RI1KrQN+JEapSaakUiNXJMy4nGkRYDUiLU1KANIJfb18e7EKKQCgzabp2ZSQWZ63gX9Nop6TDaPNBbXVhQFE+/x4LCODy2JB8NA9YLsAlfXE+wCYnhKlzNGx/98bYp+O3sAFRc6TewXru0FAuL4uH0+DGvINiqWjMpDaOSwzFocWFsWgTtpxclanHs4TnoMNmRHqWhrylEIcVvd01H34gT4Wq5QPPy0qoSPL6kABKxSFA9WzU6+Q8Pr7z4UGxeHwzgWZbY2avlEjoRBZBsuWfIgTCVDGsmpWHNpCA2oa7fDLlEjFG8yRGWZXGiYwh2tw+TMqNoAM+yLMrbjOgdcmJ8RqTAvbW8jQAx8zhsQiBIq+ocwu66QcSEKnD1xDRq4FjbZ8bXx7sgFomwbmoGvSwCFRSry4tLx6ZgUXE8IkCCied/radamAcX5iFEIYXV5cUjm8+hhqvevHYeNuHXs/2IDlHg1UtKaTLwyu+N+PBwGyQiEe5bkEsD3K8qu/D0L3XwMyymZkfhqxsINuFQswE3bKyCj2ERqZHj1zunITFchVa9DcveJSPhfGyCx0csJkYcF2ITAlNXAPB7LR+b0IhvT5C2+ufHOlH3HKeFOd1LtXVba/pRmBCG0akRqO23UKHs4WYDsrihDJ+fwQs76um5kRCmpG2Vr453UaPGryq76Hl5rM1IKwG/nxvE8yuLKbE9gFPoNDkw4vAiNpQAZC3cCLnLx1CEAkAub4Do/VS8z3B+Qih21xOhM9+JfFxaBGJDFTDZPZidF0uxCWNSSTu7TU9GxQNV8NRIDW6YloFjXFs90OoViUR49dJS/HiSWEzcyYOZvnRxCT472gGvnxVgE+6amwOtSsZhE+LpXlxSEo8Prh5D2uqp4TTgTApX4be7p+NExxCSI1SC9vm226fiWKsRIQop1ZQBwEurinH1xFR4/AzKksPp82WliZiWHY0huwepkWoqUM+ODcWRh2bD6vIhTCUT+Gh9snbcBR5QAAT6NoDsd+Y83dx/av0Z5Pwbltvnx2u7mqgOJS2qi051fFXZhU5O2/L18eCmrWgPYhN21w/ixVXFkEpE6B9x0uedJjssTi+iQxTwMSzNADy+ILhQBFBUgkQsotwTAChMDMPeBsI64Y9YT86Kwi9n+mHiphPk3AdtfEYkpmRF0Z52oJSbFavBdVPScbyDADAX8LAJb1xOsAlalUxAIH7l4hJ8erQDfobFGt6mvX9BHuLClDDZiIAtULZeUhKPD9eMJQBMnnEhwSZMx4mOYaRFCT1pdtw1jWITxqUFxyZfWFmMNZPT4PWxAsp6AJtgdnqRHKESYBOOPDQbNo8PIXIpfa6WS2n74fx126wsgcusx8fQihl/esbq8sLs9CJBq6KiRoCI07tMdmREawQGbcN2D2p6RhCvVWJmbgytmJmdXuyqG4RCKsGc/FgqALa6vNhU2QW3149lpUJswufHOjBoJtNEU7KiUQIt/AyLz491UPDktZPTMYZzPv2qsgt7G3RI0Cpx77xc2rbbfqYfG8uJFubueTn0gDzQqMcrvzfC4fXh2knp9DWd6zXjnu+r0TdCtDBvrybYhN5hgk1oM9iRHqXGxr+DTfjrFaPoz3HzppO0TXTt5DQ8dxHxweJjE3JiQ7DnPiIq/q6qB49uPgdAiE0gk2sXYhMsLiE2wWB14/GlxObhru+qqV6tcdCKnzktzFt7mvErNz12pMWIRk4L89u5Aew4R57X9llw2dhk5MSFollno9NmfSNOnOgYwvKyRHg4EK3bR7AJFe1GGuRUdw+DZQEfy+JsTxCbMGT30HNGbyEtYJGIYBBkEjF8jB8qmYR6PRHTRhXaDHZEaRSI4drXMokIs3Jj8AuHLuDvnyvGp8JoI8Z7fD3KlRNS0GG0YcThxarRSfSCWlaSiIYBC9oNdoxPj6RnTWmSFs9dVITjHUPIitbg0jF8bMIkbD8zAK1KJsQmrBmHLdVksogfND+4IA+jU8JhshMH9kA7bXZ+LHbfOwPtBhuKErW0TZ4YrsKhB2ejadCKpAgVTUZFIhG+v3kyOkx2hJ43un3PvFzcPCMTLCtkRs3IjcGJx+f9ITbhfJhpQDf3JA9kyrIs9BYXlHIJVpQlUhEzQBJAr59BTmwI5WMBpOKtt7oxOjVcgGep7TOjRW9FcaKWg5mS542DFhxrNSEpXIUFhXFUXtCis2JbTT80CimunJBCq749Qw58fqwTHr8fq8en0t+ZwerGX/c2Q2dxYW5BHFaPT0G4mjgmv/xLHer7LShN1uKRxcQuxOdn8Nz2BjqY8PzKIqo7enN3EzaWk7b6k8sKaQXx6+NdeP7Xerh9DNZOTsczK4Ju9f+J9acm598wQg4QXc2Os4OICpFjzeQ0Ou5osLqxleNPrRqTREebfX4G+xr1GHGQ7IC/2ZoGregw2lGarKU9W4BcaC16G5LCVYJJE4Zh0TPsQKhSJvBOAEh/ngV7QQ/8X1ksy8LtYy4Qu7Isi36zC2qZROD/wrJkhNzPssiLCxX8m7p+MwxWN8amRQj69Gd6RtCks6I0WUtHcQFyUVa0G5ESQQBygcCjYSCATZDg6olp9Pu3G2zYWN4Jr5/F1RODm1ZnceGve5uht5BM6LJxRJ9gdnrxwq/1aBy0oiRZi8eXEGyCx8fg2e11ONhkQHKECi+uCmITXt/VhC8qOqGWS/DUsiK6afnYhOumpFPExK66Qdz1bTXcPgZFiWH46dYLsQkhCil+vm0K8uJDMWT3YM4bB2l2/dolpbicm1qa/+YhKj7l+6Pw9Sj8ce139rXQ7BoAxSbsrhvEzbyqXOCy11lcmPhSUAtz++wsSgnn+8LwK4Lrvz5FWUhxYQqK4vj8WAedcpFLxDj00CwkaFWo7h7GpRsq4GdYiETAtzdNwqTMKNjdPsx/8xDN1F++uITqBe745jQNKG6ekUnbOV9VduG57fXw+BlBS/Js7whlOk3LjsaGa8ZCo5Bi2O7BfT/U4EyvGXlxoXjrilGI1yrBsize2deK32sHEBOqwBNLC+mk4qFmQmCXikW4bVYWxqcHPUPeP9jGVXKSqUbG7fNjU0UXeoYcmJwVLTBkPNik50z/QrGkJJ7ujQC0NypEjnkFcTQrdnn9ONZqhFgswrTsaEHG2zRohdnpRVmKVqBls7i80FvcSIlUCZ4zDIsRpxehSukFmfMf+bqcvxiGvWBaLfAazU4vojRywRi6w+NDu8GOBK1S4E/j9PhxunsY4WqZwHTO7fPjYJMBLMtiVl4srRB6/Qx+OzcAk82D2fmxNOliGOKzQ7AJkRRYyrIsfjnTj2OtRqRFkWpK4GvtqhvE5tO9CFPKcOecHNo2K28z4oODbRw2IUNQxXt2ex0MVjcWFSfgoYV5EIsJNuHu76rRorNhdFoE3lk9CuFqOWxuH67/vAonOocQE6rAh2vG0kTtho1V2Neoh1QswtM8B/bnttfTVvWionhsWEN0KpsqOvEkNw0WHaLAgQdmIlQpw+FmA679A2xC/4gTM147QEXefC3ZqOd20/OEPyq+5tPjlLmWqFWi/NG5AIC/7GrE3w4ELSaOPzYXcWHKC0bFAzq2QbMLk1/ZR4X0DyzIxR1zSFV12qv7qYM0f4/e/8MZ/HyaBLJ8rtt/df2pyflfWHa3D1WdQxzrJIKWDJ0eP3acHYBIBEHW7fb58ePJHgw7PJhfGE8ZMX6G4BHaDDaMS4/E/MI45MUTbMJPp3pxvN2E9GiyaQMbh2ATejnWSQ4tlR5qNuD9A61gQaZAApv2TM8Int1ex7FOEnH/AsI66TY5cMe3p9Gis2FMWjjeu3IMIjRymJ1eXPc5mQaLC1PgozVBbMLaz6twmGOdPLWskIrLHttSS8vZS0sS6BQPXwAaF6bAwQdmQyWX4GCTHtd9XgVAuGm7TQ5c9LejF2ATAOCKDyuo7qRx0Eo37SObz+FEB3FxLm8zUn+HT4920ImSfY16zOPGpstbjdSL4lyfGQuL4jEzNwY6iwvfnOgGy5Kse3+jjgY5W6r7YHX5YHURMWYgyDnbG8QmnOZhE0YcHqp5MVjd8DIMVBw2QSYRwekNggsBQCEVIy1KgxHHCEIVUiSEBwPZWXkx6DDaoZRJMJlXal45OhGNgxbOFyZYMVtWmoCTXcMYGHFiTn4sojktzLScaFw3JR31/YSWPpVDMMSFKfHWFWXY26BHfJgSN/II5Z9eNw7fV/VAIZUISumvXFKKcWmRcHr9WF4azE6vm5KOtCg1xSYEhJqjUyOw+94ZaBiwIC8ulHqSaBRS7L1/Js71mhEbphSIQd+9cjQeWJAHqURENTUAcM2kNFw6NvkCn5bS5HAceWjOH2ITPl8XdFgGggaOd8/LEWhYhuweiEUQVNIA8nmwuXzIjg0RcM/aDTb0DDtRkqQVaIXaDTac7TUjKyYEs/JiaTDUM+TAvgYdIjQEmxDQefWNOPHTSQ6bMD6F7l2TzY1Pj3ZgxEmcdQOVNKvLizd3N6PDaMfkrCisnZyOsFgZPD5C0a7qGEJGdAgeX1pAk5/39rdgc3UfItRyPL60gJ4nBJtA2up3z8ul7cJddYN48MczsLh8WFqSgPeuGg2RSITq7mGs21iFEYcXmdEafMdhEwbNLix/7yjFJny2djym5UTDz7BY+NfDlG/Gd2C/ddMpqjvhmyu+vruJ6tL+sqsJp5+cD5Vcgq01fbjvhzPcu9yGrbdP5UaobQJsgoLTbjEMi9u/Pk2DAB/D0iThjd1BbILe6qLv+faz/dQv5pMj7Vg/OwthShnq+s04zU3IHm42oNPkwCi1HBanl5LRDVY32vQ2WiHtGXbQ7xvwtPpHKy5MSR3YUyJVNLhMjVRTB/b8+DCKEYnUyLGoOB6HmsmQwsTM4CTn3XNzOJ6dVHA+3D03B2KRCG6fX4BCuX5qBuxuPwbNLswrjEMsNygyvzAez19UhPoBK0qStJiZE7SY+OGWyTjUZEBCuBKXjQ1W/javn4JddTqoZRJ6VgKEebe0NB5OD4OZecH99Z9afwY5/80VYJ0EMtx75+XSg/KGL6pQ3kb0JX8Pm/DXvS2o4Vgnm0/3UjzCh4fbKeukrt+CB348Q79nqFKKayeng2FY3P1dkHUCIMg62d1E++kWp5du2q01fXRzfni4DXfMIayT+gEL9YMobzOhZ5hjnTi9VJyms7jRabJTIZmeh00w8YRqCp6bJ9/ZMzFcRVknaVEayjrJiNYgNy4EzTobSpK09FKPDVNgaWkijrYYkBKpFlzqDyzMwzfHuxGikAro4Q8tzMP7B9vg9TNYxxsVv2l6Jjw+BjqLC4uKg1qYhUXxeHFVMRoHSCVnBtcmSIlU48dbJuNIixFJ4SpcPCao6dhyO9m0GrlEIK59/bIyrBxNsAnTediEK8anYnx6JHQWN0qStXTCoyhRi/JH52JgxImk87AJW9dPwZDdA41CKtC8PL60EI8uLoBIJDRlO1+UyrIEVpgZE4IvedgEr5+B3uJCBIcXCayACDE6RC7Q1Xj9DI63myCXEi1MoDrlZ1gcbNLD7vZjem40zRgZhsXuukH0DDsxJStKML6+p16HMz0EPLmsNAFZHDbhcLMBuzgtzPXTMuh0yvF2E76s7IJcIsbNMzKpdqau34y39jTD4vJh9fgUXDyGmGt2Gu14YmsteocdmJ4TgyeXEWzCsN2Du7+vQXX3MPLiQvH2laORFK6Cn2Fxxzen8XvtICI1crxxWRmtBvCxCXfODhoffny4HS/+RgL1USnh2PIH2IRQpRS7752BBK0KjYMWLHvnQmyC2+fHor8epsaOtX1m2h676YuTVGd2qNlAR8Vf+b2RBuQ/VPWg8flFkErE+OlUL9XW7a7X0VZR/YCFBgenu0cwlhN5+/wM3tnfyvlJ2fHTqV4a5Pxypp8KULfX9NMg52zvCE0qKttN8PpZyKUiDDs8FNSqs7jg9AR9XkS8/w18VMUiUmnsHnJALhELOF8TMqJwtJV4TfEv6Nl5sdhTr4PJ5sGy0gQoZeRMmZodjbn5sWgz2DA2LRI5XBKSFaPBXXNzUNFGtDABPVYAm/BHbfU3LivDxvLOC7AJ987LRVK4CgarG/ML42hlflFxAr68fgJa9MRiIiBaTwxXYe/9BJuQHKESYBN+uWMaTncNI1QpQ3FSsOLw1PJCXDs5DV4/I5heXVAUj9NPzofV7UVMiBCbsP/+WfD6GUFVTSmT0GQvsBiuWnr+sIvd7YOPYTEuPVKAVRmyezBkdyM9SiM4H/QWF1oNNmTHhNAKVOD5ya5hxGuVGJcWQaucJpsbe+p1UMklWFgUTz9HZqcXX1V2wenxY8WoRMH58J9ef7ar/pvtKn5FQyEV4xUeNuFvBwg2ARw2ISC4qmgz4alttRh2eHDRqCA2QW9x4YmttVQL88yKIqjkZPrl7b0tONExhLQoNR5dEszI9jXosLm6D+EqGdbPzqY9506jHV9VdoFhgasnpdILxenx44eTPTDZ3FhQFC/Q6JS3Gumm5Svie4YcqOkZQWqkWvDc42MIpFElFbSYAv/Gz7BIi1ILLmOnxw+b24foEPkForR/tWR+/gUPkM3j58SW/GWwumGyu5EZHSIIuAbNLrQbbMiOC0FsqBCbcKJjCEnhKoxNi6DfR29xYVd9MLAJBB5Ddg++ryLYhFWjk2glze724bOjHRiwuDAnL5b6rHh8DDYcaqNme7fMzIJMEsQm7GvQIV6rxCOL82nF4qvKLnxZQaCXDyzMowHUztoBvPhbA5weBmsnp9GM+GTnEG7/5jR0FjemZUfj42vHUXbSVR9Xot/sQnyYEl/dOBHZsSFweHxY+s5RdBjtFzgKX76hggJF+diEx7eco55OfGzClxWd1HBNKhbhwAOzkBKpRnmbUaCF2XDNGCwqToDZ4UXZc7vp85umZ9DLnt8em5gRSaeR+K0rtVyCOg6bwK8UAsChB2chLUqD6u5hrOJhEwLIBqfHj0kv76OX9D3zcqhtA7+M//ewCWXJWmy9fSpEIhGOt5tw45cnOTCmEJuw7vMqnOP8UT5dO45CbZ/YWotfOJ7di6tKKIR0a3UfNhxqg0gkwl1zsik2oXHQgtd3NROLiTFJNCO3uLx4e28LukzELPT6qRkUm7D5dB+qOoeQGaPBdVMy6B6o6zfjt3MDiFDLsXpCKg28zQ4vdpwj1eclJUJswrE2I4bsBJvAbz91mezoNDlQmBAmsIZwevwcNkF5QTvbYHVDrZAKRroBEjyzLPsvuS+ffwawLIsRhxch57XjGIZFB4dNiDsPm1DXb6FC2/OxCQarG5MyIwU/6/F2E5p1VpQkhwsc2E91DeNoi5Fy5AKvP4BN0CgkuG5KBn1/WvVWfHS4HR4fg2smpVEKee+wA6/vaoKeExhfOzkNIpEIw3YPnvolgE3Q4pkVRQhTyuD2+fHoz+c4bIIKr10axCY880sdvqokuJVnVhRRH5tPjrTj5d8b4WdYgf3DjrMDuOf7anj9LLJjQ7Dt9qnQKKQ42zuCyzZUUMnCT7dOQUmyFkabG7P/chBWzjH5hZXFlNM3+/WDVDi+vCwR73JGm/zWdmyoAicen/cPf8//yvqzXfUfXiKRCF+sG48huwdquVTguXL77GzcxgU2/Mt7clYUFUgGVsDw6aNrxwme6a0uaFUyPLAwaPTGMCxa9VaEKGSYWxBHqzQMQzwrGIbF6NQIPMGJ3liWRWW7CUabG5Mzo2hbCSDjxi06G0anhmNKdjQd4a1oM6Gcy4QuHp2ElEjShqjpGcGW070IUUpx3ZQMahYWwCZ4GRZrJwc3bbfJgdd2NVLw5Lqp6VDJFTDa3HhqWy2aBgmy4ZkVRRSb8OBPZPw6OUKF1y8roxn841vO4dsTpOT6wspimqHxsQlXjEuhExrbuHK2n2GRGa3Br3dNg1ouxamuYVz5USU8fgZKmRibbyPYBIPVjXlvHKLZNX/TrvzbMaoVOdpipBWzB388g30cNuGnU710VPyjw+207P/N8W5UPDoHCVoV9jfqqUZmZ90g8uLDML8wDgabG6/uDHKNyKgt+Z2/u7+FetV8WdFFg5xfzw6gZ4gEAd9V9dAgp3HQSv/+6e5hWF1eqOQSgWmjye6ml/s/WskRKpzoJJk4H1ZYlhKOzaf74PT6MYmXdY9Pj0R+fCj6RpyYnhNND/XiJC2WlyXSSk7g8xGmkuKxJfn47dwgYkMVAkL565eVYVNlJ2QSAsAMrCeXFSIxXAWry4dLxiTRy27tlHRoFFL0DjswNTuaCqZHp0bgp1sno4bDJgQm11RyCfbcNwPHWo2IDlFgKk8o/vl143Gyi2ATRqcExbi3zMzCkpIEWF0+5MUH9WYTM6NQ9fg8mLkBgcCFGR2iwPY7p8HjI6iKwN8XiUR4cVWJgBIeyDNXjk4STMu5vH64vQzy48Pwydrg+RDQ3iRHqAQC1xGHB42DVqRECh3YzU4v9jfqEK6WY2JGJNXD2Nw+/HyqFywIliNQyXB6/NhU0YlhhxeLiuMFlhRfVnSiVU/a6stLE5AWpQHLsvj2RDeOtRqRHqXBbbOC0NKfT/ViM9dWv29+EJuwr0GHd/e3gmFZ3DQ9kzMnFeFExxCe2HoOQ3YPlpUm4unlhRCJRGg32HDLplNoNZDBhI+vJdgEs9OLqz+pRG2fBRFqGT66dhzGp0eCZVms/rgSJzouxCY88vM5apbIxya8f7CNToNFqGU49sgcqOVS7GvQ4YYvgiPhm9dPwZjUCPQOO3DphnKqRxm2e6g04eqPj9MgoNPooK37p7bV0Sr/iY4hqoX5oryTmk2Wt5mwoiwRERo5jncMUf+pVr0Nq0YnYXpODIw2D7ad6SfVdLsHR1oMNMg52KSHj2FhdftQ2W6in4M2g42K1ps4Y1iAyCgCFUenxw+G+4HUcglClTK4bW6EKmX0jtPIpShMDMPxjiFEqGU0kQZIm/yzox1QySWYy1VHASJg7zA64PT4BODi/431Z5DzP1gikYhG+7+fG8B7B1rBssD62VlYxmkUjreb8MTWWgzZPVheFty0zTorbvqSYBNGp4bj07XjEamRY8juweqPKtCssyFcLcOnawk2gWVZXPFRBao6hy/YtHxswtz8WHzKTQT97UArXt99ITaBX2IHCDahJFmLdoMNV35cSZ/b3T6s41gn13xynLJOOk0O6u/w9C+1tHd9tneEamE2VXbSrPtExxAuHpOEcLUcFW0mGtG3Gey4bGwyJmZGwWhz47dzA/AzLMxOLyrbTShIIKPiB5sMYFgyon6iY4gGOd1DQWxCh8lOXzfDsvTi8LMsPYRCFFKEKqUw2T3QqmR0lDREIUVZSjjK20yIDlFQAz8AuHhMMr6s6IRGIaWmjgBwzeQ0DFpccHn9gnLwpWOT0aK3YsDswtz8WMRx1aJZeTG4Y3Y26gcsKE4Mw4xccrHGhSnx0Zqx2N+oR7xWSanZAPDNTZOwtboPSplEEAS8ekkppmVHw3GeJ83VE1ORGxeKvhEHxqdHUjF7aXI4Dj44C806K7JjQ2ilSC2XYtc9M9CityI65DxswhWj8OiSAsgkIgH08PIANoFhBRWygoQw7LxHKCBkWYJNePc8bILZ4YVSLhZ4PbEsi26TAxKJCJOzoqgzMkAmRCwuL0qSwgU+MnX9ZvQMOTE6NVzw/tT2mVHdM4LsmBBMzoqigVXjoIUa3l08JolWrdoMNnx7vBsSsQjXTEqjmpf+ESc2HGqj00SBltaw3YPXdjWhy2THlKwo3DozC3FhSri8fjy5rR4nO4eQGR2C5y4qQmwYETc//2s9rd48v7KYlvc/OtxGqr4A7p3/x9iEeQWx+PjacbRytG5jFRwegk3Ysn4q4rVK9Aw5sPSdI7C4iKPtJ9eOw+z8WHj9DBa8FTR25GMTbtl0kto2fF8V8cfYhAMEm0Da6n20WvdlRRdSIlQYnRqBxkErnWgDCEA4oIV5+Oez9AJVySV48/JRAIhvVMC35d39LdSBfU/9IJp1RGD/XVU3Hlmczzmw26nwvqZnBANmF6JCFCrUAiEAAQAASURBVHB6/OgyBrEJ/VwFEABtoZ2PTYgODX6e+RWo/PhQhCmlsLh8GJUSTqdOc+NCUZasReMgwSakchNcsaFKrB6fgkNNxHhvdn6wVf3kskJ8W0Xa6nwUymNLCvDBwTa4fYxA33b77GxIxGLoLS4sLI6nFbCFRXF48/IyMiCRpKXYhKRwFbasn4LyNjJRxT8Htt0+DfubdFDLpZjDCzReXEm6DecnKBePIWdwwLYkUK3Ojg3F0Ydnw2B1IzZMQcXsKrkE3908CU6vHwqpROAFd74De2DxNWkACZgDgxf/jJ/4P11/Bjn/pvXh4XZqMLXhUBsNcvY26Ojm/L6qh27adh424VyvGUabG5EaOWezTyoHIw4vHScHQO3VWRZU0AoIUQn8aayChDC6acekRlDWSXGiFmUp4WjTk0pOSiT5N0kRKlw5IQXHWk1IiVTRDSISEYHxd1XdCFHKcDNPXEmwCe3w+RlBpeiO2TnUQn9hUZB1srQkAR4fQzkrgYpQcoQav9wxFRXcpg2IsgOj4gebDAhRSDGLJ1R75eJSXDE+BW4fQy8NgIyeTs6MJtiEuBC6OQPYBKPNjZhQ4ab95qZJcPv8kEuEk2QPLMwTVNMCa3ZeLGbzNq2H8+JIjlAJ3DydHj/6zU4kaJWCr+P0+HGKM51bUBRPRzudHj/21hNswuSsKHpguH1+/Hq2Hw63H3MLYqklu8/P4MeTPegfcWFGbjT3fpKg+OdTvTjXR8z2Lh+XQj8bv57t58CTSqyfFTRw3N+ow8ZyooW5fXYW9aQ51TWE13Y2web2YfWEVKyZlAaJWIRWfRCbMCM3Bi+uIt4lBqsbt2w6SSsoH64Zi7QoDTw+Bms/O4GKdhNCFFL89YpRf4hN4Leu3t7bgrf2kkA9Pz4Uv989HSKRCNtq+qjIVCOXYM/fwSYE2mN2tw8r3j1GBeKdRjtFM9z21Sl6sVZ1DlFfnzd2N9MpkB3nBtD8wmJIxCJsqe6jAvvyNhPm5MehMDEMTYNWfMO18pp1NszJj8Xl3Ofzq8ouuH0MDFY3dtYO0s/rvgY9rSAeaNLTIKfTZKd7vHHQSrEJHn/QtNHl9VOEgkImRrhaDovLB7VMQq0kpGIRypLDsZtrufJJ0PML4nCu18xVcoKTYCvKElHTM4IhuwcrRyXRYHZOQSwuGpV4ATYhNy4UDy/KR3mbEWlRamqTIRaL8MX1E7ClmgAwb+Fd9m+vHo1vT3TDz7C4gsc9e3BhPvLiwzBkd2NugRCb8PNtU9Cmt6E0JTiJGa9VYt8DM3G2x4zkSBV9LhKJsGX9FDQMWBGqlAqc3B9cmI/rpmTAxzCCs3NuQRyq/w42Ydsd03D+kkvFePliITbB5SWYn8vHp9DJSICImn1+FsVJWgFWpW/ECb3FhYKEMGreCZDPZ7POivz4MIEPV5cpiE2Ylh2NUs7XZsDsxK9ngt5ZgQBeb3Xhq8puuL1+XDo2mZ63ZidpdQ6aXZhTEItlpYlIClfB7fPjL7saUdtnQUFCGO6Zl4OUSDX8DIs39zRjH2cx8cTSQvqebjzWgc+OdUIhFePBhXn0LNta3Yfnfq2H0+PH2inp9OeraDNh/denMOzwYlxaBL64fsIF1Pd/5/pTk/NvGiHvH3Hih5M9YFkyGREo8bt9fvx6ZgBDdg/mFsQik1faq+awCWXnYROMNjft5fNLgT4/g8ZBsmn56AGACL6YP8Am+BkWXj9zAfbg/PVHvW6ATHDI/gCboLe44GVYQSsDIJvTaHOjOEkr+DftBhta9DYUJoQJkA/tBhsquE07KzeGvoaeIQe2n+2HRi7FJWOTaQ9fb3HRC+OyccnUkyGATdBZiFAwkBk6PX68uaeJVFCStLh3HsEm+BkWb+xuohWUp5cX0ameDYfa8GV5J5RyCR5dXEArOJtP9+L5X+vh9Ppx3ZQ/xiaMTYvAVzdMhEouQaveiss/rMSQ3YMItQzfcdgEm9uHhTzR+muXllI/kuXvHqVTGpeOTcbrl5G+OX/skk8V/+BgG213iUXAsUdIe+xIiwFrPg1iE96/egyWlCTAYHVj/It76fNbZ2bRn4OvhZmSFYVvbiJTLnxkQ6hCirPPLIBIJBJQxcUi4NCDs5ESqcbZ3hGs/FsQm/DZdeMwJz/uAmzCE0uD1cibvjyJPZxxJV8D9EV5J57dXgeGJa/p6xuJ+d2priHc/OUpmOwelCVr8eUNE6FVyTBs92D916dxqnsY2TEheP/qMUiPJtiEl35rwG/nOGzCRcVUW7GrbhAfH26HWCzC7bOz6URVh9GOt/c2Y8TpxcVjkqm/idPjx4ZDbegecmBSZiQuH5dCP7e76gZR1TGEzJgQXDE+hWa5rXob9tTrEBUix0WjEgXYhD31OohE5CLnYxOqe0ZgdngxISNScAkEnI2zY0OoIBYgYvFBswtRIRdiExweH+QS8T/VvPzRYhgWjvOcm/nfL1IjF7w+bwCboJQKzjs/w+J4hwk+P4tJPGwCw7A41GKAyUZ0PwFRMsuy2NegR5POitEp4bSlDpCAMOCCvnpCKtXi8LEJN83IpOdTTc8IPjzUBq+fxbqp6VQH1Waw4eXfGqgWJoBN0FsJNqFxgNhbvHZpKcLVcjg9ftz1XTXVwryzOohNePins/j+ZA8UUjGe+TvYhJWjEvFXbpT6p1O9ePCnM2BZsqd33kOwCae6hnD5h5XwMyykYhF+uHUyxqRGQG9xYToPmxCgigPCvcvHJqz7/ASdXOOPivNfExC0mDi/NUdxKxYXJvAsJu6am0O5dTNeO0Cn5vgA5nu+q6aJS3qUmro4f1/VjYd/JpW/UIUU+x+YdcG99a+sPzU5/8srMVxFxYt+hsXeeh1Mdjem58TQnijLsthZO4g2AxkvnJwVRbPlvfU6Sou9ZlIarRIcbTESfweVDLfMzKQb6lTXED442A4/w2Dd1AyqN2gcJNgEk41Yr6+flQWljDiDPvjTGcI6SYnAq5eWQqsirJP1X5/GkRYjkiNUeO/KMdTO/q5vq/HLmf4LsAl8LwX+pv36eBce30KwCckRKuy5l2ATKtpMuPqTP2adLHr7CKWHP708SC5f9X45jNzk1qmuYUqKfvCns9TO/NezA0FswuEgNuGXM/2YnBWF6BAFDjbp6fNjrSZMSI/E3II4GG1uClYkZeg++vv7sryT6nC2VPfSIOdwswHDnOfE7rogNqGHh01oM9jg9vmhkkvg9jG0TO7yMvTnlIhENGiTS8TQ8C6kshQtzvURh1++keHMPGKXbvf4hNiEgljsa9Chf8SJWfmx1IdpTGoErpyQgjM9ZuQnhFLdSXSIHM9dVEQrOWunBEvmBJvQBblUjOt5LbhnVxQhJzYENrcPF41KpBfddVPSEaWRo2+ETFQFgtfS5HD8eud0nOsbQU5cKJ00CVFIse/+majqHEZsqEIgZv/wmrGoH7BAJhEjNy54Ma6dko7lZYmwu30CDtnYtEgcf2wuHF6/gFkUoZHTEWT+EotFeGJZIdWrASQBEUGEhUXxgkrGsN0Du8eH9Cg1/WwDQSZTdmwI7uXBTHUWF+r6zciIDhF8Lb3VhUNNBkRq5JiVF0vNI4ftHnx3ogcsy2LFqKAOx+Ly4v2DrRhxeLGkJIG+by6vH3870Io2PcEmrB6fgtgwJfwMiw8OtuF4B8Gt3Ds/l/4ONh7rwJbqPoSpZHh4UT49N34504+39xId220zs2i14WiLEY9sPoshO8EmvHwxcWBvGrRi3ecn0G92IS8uFJtunIDYUCWMNjcu/aAcnSYHQhRSfLp2HCZy2ISVPGwC3zfl3u9r8AsXLE/KjMR3NxNB+Tv7W/DXvUFswvHH5pJWat2gwJvl59smY2xaJFr1NqzjrCcAwONncQOHTbjhC9LKA8jwQaBq8uKOetpWb9FbaVv9+6oeajZ5tteMayamQauWoaZ7BAe54GCw3oV1A1ZMzorCkMODQ00GePwM2g12VHcPB8/k7mHuc8Wgtk9o4BhYJt6fFVIxxSaoZBIEuj5RGgUStEr0DjuRGK5CtIbs6TCVDNOyo3GgSY/EcBVKefvnmklpFJvAd/m+aXomrC4fXOeNil89MQ19I05SycmPRRxHPp+ZG4OHF+Wjto84ywcqrbFhSnx5/QTsb9QjQasUTLZ+c9NE/HKmHwqphBo+AsCrl5ZibkEccWDntfqvGJ+KgoQw9I84MSYt4r8V4PxX1p9Bzn9gvb23Ge9wUXKoQooTjxPWyS9n+gU+DoFR8Va9FTd+GYyeWQA3TMsAw7BYt/EEtT8fcXjoofvyb42UddJhtPOi5B46HdI4aMF1nCjzVNcwfb6zbhA3zQiyTsrbTPAzLLpMDpztG0FJshYsy9KKgsfHoGkwiE0ImEsBwBDvzyEKKWQSsmm1KhnFJsSEKpDAYROSI9S036xVyTArNwYHmwxI4o1dAsD109LxdWU3NAoJVvHGuG+ekQmHx0fdMgPruinpGLJ5MGgh2IQo7nvMK4zDo4vzOS2MlmbpcWFKfH3jRBzgKjl8MdyPt00REHMDi25ar59SyAFywIxKCceg2YUx52ETjj48Bx1GG9KjNFS/pZJLsOOuaegZdiJSLYdWHczGX1hZgsc4bALf0O18p9TAyo0LpaPGAAmk7W4fVDKJoJTOMCx6hwk24drJ6fSQYlkWjYMWSMViwUgsy7I41TUEq+tCbMLxdhN6hp0Ynx4heH8q202o7h5BTmwI5hbEUvHpqa4h7K7TISZUgasmptKgsWHAgq8qCTbhuqnpAmzCu/taYHH5cNnYZCwuSUCkRg69xYXnfq1H95ADk7Oi8MCCPI5sTbAJp7uGkRMXitcuKUW8lmATHtl8FtvPDCAqRI5XLg5iE97c04y/HWiFCGS6KnAR87EJkzIj8e1NkyASiXCkxYDrNxKESZRGjl/unMY5Cduw7J2jcHKcqb+HTbhlZialit+86SS9cLed6ccWrj32yu+NtN31+bEO1D+3CDKJGFuq+6ggdnN1H/LiSeBY22emVbyDTQZkRmuwZnI6/AyLF39rCGITtJ10kuaryi60cS7OG8s7aZBzpNVAjdt+PTuAZ1YUQSmToN/spAF/h9GOYTvBJnh8DEY4AbvD46NBPhB0CxaJABUvgM+NC4FYRFhO/KnM0ankojPZ3JiRG0M/92Up4ZiaHYWmQTL5mR1DqrapkWqsm5qOY1xSuLAojvt+Irx2aSm+r+pBqFKKO+cGR8VfXFWCT460w+cXOrDfNTcHYUopreQE9uL8wjh8tGYsNQsNaMQINmEaKtuHkBRBqs+Bte32qTjSQrAJfE3ZCyuLcdXEVHh8DG0vAWT6aCqHTUiPCmIT0qM1OPTgbFhdXoQqhdiET68b/4dV9/Md2BkOm8AfKgn8rsxOL+JClVQfBZAAu9vkQGqUWvB1zE4vanpMiAtTYEZuDE2mrS4vtp8hbfVZeTEUO+L0EC84h8ePRcXxtKLu9ZOWbe+wEzNyyGsqTQ4Hw7D4+ngXznLJ2LWT0/9bkNZ/tP5sV/2b2lX8daTFgAd/PAuT3Y2lJQl48/JREItF6Btx4oEfzqDVYMPY1Ai8dhkhx3p8DP6yq5FqYZ5eXkT1E9tq+vDTKVLJuXdeDm3PtOqt+PRoJ/wMgzWT0mn1JWDzb7R6sLgknvb+WZbFrjodWnRWjEoNF/i5tBtsHOtEjanZUXQD2d0+VLSZEKqUYkJGJH0e4EZ5/SxKk7SCCbIRhwcjDi9SItWCD6ufYWFz+RCqlP7TcfE/Wj4/Az/LXkArt7q8GHF4kRiuEnw/s8OLTpMdaVFqgXB2xEGwCQlalUCfYHZ6caBRD6VMjDn5cbSUbnP78EtNP5xeP5aVJlBxrtvnx/dVRAszMzeGHmp+huARzvaaUZAQiuumpEMqEYNlWXxX1UMrKPfOz6Ej7L+c6cfGYx2QS8W4e24u/VoHmwg2wen1Y82kNNraqe0z474fatA7TLAJb10xilbr1nx6HC16G5IjVNi4bgKyY0Pg8vpx2YYKUiE6D5twy6aT2FVH2kRrJ6fhWQ6b8Pyv9fj0KKmA8bEJ/FKzXCrG/vtnIjlCjZoe0qIKrPeuGo1lpYmwurwY9dweOtXB19vMfeMgvXDHpIZTLQy/PaaQiik2ge+kDAA775mO/PgwnO4exsW8UfF3rhyNFWWJcHn9GPfCXiqY5/OZrvnkOGWo8enh7+1voWL9nNgQ7LpnBsRiESraTBSumKBVYuvtUxEXpoTe4sLqjyvRbrAjOkSOjesmoDiJJAn3/3AG2870I0Itw6uXlNJpyB+qevD2vhawLIs75+bQtsa5XjNe+q0Bww4PVo1OosBMs8OLV3c1EgBmeiTumptD7Qc2VXZRi4k75mTTNtXp7mH8UtOPcLUMayen08TCaHNj8+le+Bng4jFJ9PPs8zPYXa+DyebG7PxYgfFi06AVbQYbihO11Ck48LoaBi1IClcJWtAsy6LT5IBGIRHYNADkTGFYVuB6Hlj/ipXE+dNqgWW0EfPBsPO+bgcPm8D/N02DVuitLoxKCRe8loYBC5p1VhQlhtGzNvD8WKuR6gUDr7PdYMPWGpIQBRAIQBCb4PYRbELgfDba3EQLYyGDCVeMJ61Om9uHV35vIAy7xDA8vDgfarkUPj+DF39rIG31MCVeWFlMJ9Te29+CT492QCmT4NElBTQJ+u5EN57dXk+M/ngO7Aeb9Fj/9Wk4PH4UJIThx1snI0QhReOgBZdtqIDVRUju398yGYWJYbC4vJjz+kE6mcmfOl3018No5Ca0+NV8fouK3x7jWzAAwJGHSGv7ULMBaz8LttX/dtUYgXHgP1p/tqv+D9f0nBhUPjb3gog7KVwlKKUHYIVKqYQe/IHng2YXVDJSeuSXH9sNNnj9LHLjhK6rtX1mGGwEmxCIqgFycDbrCPxxUXE8tZqv7TOjst2E5AjCogr0zpt1Vmyt7uMcMlNpmbFnyIFPj3bA42dwJW/T6iwuvLWnGXqrGwsK43AFt9EtLi9e/q0B9f0WlCRr8ejiAmjVJKB7/pc6HGzWIymcYBMCuqPXdzXRkuuTywppFvBVJWGdePwMrp0UvIh31w3iTg6bUJAQhp9vmwy1XIr6fgsu/7ACNrcPGrkEP9w6GUWJWgxz2IThP8AmXLahnIpP+RbkD/10hk6DbSzvoNiEjw+308vww8NtKOe0MIdbDHj6lzr6/idykw8Gq/uCCZTAhfvq7420ny6TtNIg58eTvfQg+fBwOw1yTnYO0de6t0GHIbsHieEqGG1u6lHRN+LEgJnoNvwMS1t/Hh8jKJ/zNRr8P2dEa2hVLpcXDBYkhCEpnFTlxqdHIII71DOiNZhXEIfq7mFkx4bQNmyIQoo7Zmfjt3MEm8AXUT65rBCfHu2AWCQSZI8PLcyjgnn+qDgxtGNpJSdQDRiTGoEvr59AqkhxIVjMfcaVMgl23jMdB5oMiNbIBdNxn6wdh6MtRohEoNUdgEB0FxTFw+z0ojQ5GMBPzopC5aNzobe6kBKppnqz2DAl9tw7E8MOD8KUMhoci0QivHnFKLxxedkFF/L5olSWZeFnWJQkawXng9vnx7Ddi+gQuQBm6vT40aKzIEGrxNop6VTw7/L6Ud5mhFYlE/DfXF4/dtYOUmxCYKLN52ew/Uw/DWwCgS/DENF6q8GGcWkRmFsQRxOC7Rw2ITVKjeunZgg4Zj+cJBWU22dnU31beZsR7x9og49hcMO0TPo7qO+34JntdTBaCcPugQV5NBG857tqajHxNg+bcOMXVahsH0JcmAIfXBPEJgQ8WCRiEZ5YWkBb3nxswoLCOGrT8VVlF57YStrqMaEK7L+fYBOOthhxzafE00kiFmHzbVNQlhKOAbMTy98NGjvytWRXflxJJ9equ4fx4RryPR7bco5Wzvc16FH5GLnsNx7rxKZKMrm2p16HWXmxiNcqcbTFgK8qSRXvVNcwZuXFYnZ+LEx2D74o7wTDAl0mB3bWDtIg5+fTfdxZ5sXv5wZokFPVOUw5h0e51wAAJpuHtvL0Fhdpn/+DTpFcIkZyhBpGmwdquQTxvOnLadnRaNZZoZBKMD4jOPSxqDgeVZ3DsHt8VIAOEGH70VYj+kacmJETQ3VXE9Ijcd2UdDogEZg6/XeuP4Oc/+ASiQjr5M5vq9Gis2JMWgTeWT2aYhPWfnYCNT0jiA1V4KNrx2EUh01Yt7EKB5sINuHp5YW0tfDML3XUMZm/aflmaDGhChx6cBbUcukFrJPN64n9ec+QAxf97RjNrvnYhMs/rKAl9oYBC3XS5G/aA416VHAR+mdHO/BdFfGc2N+ox/zCOESFKFDeaqQ4hTO9ZswtiMPsvFii9j/eBZYFeoac2FuvQ9ZMEuRsO9MHq9sHq9uHfQ06GuTU9IxQsd1xDt0AACNOL30+ZHfT8rxELKJVHakkiE2QS8VIjVRj2GEmBmE819XZebHoMNqhkEooBBQAlpcmoraPYBNWjw+OKS8pScDxjiH0jzgxOy+Wgg8nZ0bhxmkZONtnRmFCGG2PxYYp8eblZdjbQCo5N/JGxT+7bjy+r+qBXCoWjJW+dHEJRqeGw+Hx46JRwVbV2inpSI5Qo2+EYBMCVb/iJC323jcTdf0W5MSF0FF4jUKKvffNxNleM2LDFAIx+3tXjsb983Mhk4gF2fg1k9Jw8Rji4syvhJUmh+PYI3PgZ1hB5Uyrkgm8XABSopaKRbh3fq5AwzJs90AsFl0wVjpodsHq8iIrJkTgI9NtcqB7yIHCxDDBOG6n0Y4zvSPIigkRlNK7TQ7sa9QhUiPH4uIE6ro6YOawCWIRLhubTAP4IbsH7+1vxbDDgxVlSXQCxe724c09DWg32DEhPRLXT8uAVh0Kj4/BazsbcaJjCBnRGjy6pIBqod7b34LNp/ugVcvwxNJCjOXAl19VduEdzj/pzrk59DXtrdfhgZ/OYMThxbLSBLx7JcEmnOs149rPjmPY4UVqpBrf3zIJCVoVdBYXVrx3FDqLEJvAMCyWvnOEVsb4wtD1X5/Gfs7Tia+FeXNPM9WlvbarCSefmAe1XIqtNX24n+e0HvCFadZZcee31fS5XEKwCSzL4ravT9HpT7vHTy0m3trTTFtzem4oACB7PYBh+fBwO26ZmQWtSoZzvWb69w81G9BhtGN0KgFEnuFApTqLG606Gw1yOrgRcj/D0pYbAPCLQmJeoBkTqqAO7InhQWxCcoQKGdEadBjtyIkNoVWuCDXBbxxs0iMpQi1oRd0+OxtfcBBKPjbhnnm5kIhFcHsZge5t3dR0WF1eDJhdmFcQR7Uw8wvj8eyKImIWmixsq/9wy2QcajYgXivEJnx/yyTsrB2EUirBsrJg9eOVS0qwuDgeTq9fMI16ydhkjEoNx8CICyXJWmr4mB8fhmOPzEHPkAMpkWpaDVPKJNiyfgoMNjdCFTLBxNkTywrxyOJ8iEUiQfXtfAd2gATx6dEa6vwf+F0ZbW5oVbL/OKDzzyDnP7zq+i3UD+JIixHdQ0FsQuMgEefprW50mexUDzEwEsQm6CxB1omU92EKoBEAsjkDrJOMaA2k4iDrJDs2BK16GwoTw5DIXeoxoQosLo7HkRYjUiJVmJgR3LT3zsvlWCcSgU7lnnm5kIpFnL9DOn1+04xMePwM9BY3FhTFUd3JgsJ4vLCyGA0DFgHrJDlCje9vnoyjLQYkhquoKBsANt82FbvrB6GWS7CYt1FeubgEy0oT4PL6BW22y8elcNgEF4qTgtiEwKh43zDBJgSeaxRSbFk/FSa7B6FKITbh0SUFeHhR/gWuyoT0K8QmMCyQGRMi2LReP0FHRKjlAnGr18+gcdCCSI0cF49JppUMn59BVecQZBIxypK1eGp5If2dH2jSw+72YUZuDM0YWZaI2XuGHZiUGSUQ8u1rCGATwrCkJJ6Odh5uNmBn3SBiQgg2IXA4V3UO4cuKLsgkItw8I5NWROr6zXhzdzOsLh8uH5+CS8cmQy0nVbwnt9Wi20QqKE8tL4RCKsGIw4N7v69BdQ/R4fx1NcEmMAyL2zlsQrhahjcvL6M27k9vq8UXFV0EmzAneBF/coRgE1gWGJ0ajs23EWzC3nodbtp0EixL9G2/3T0dKZFqNOusWPrOERrYBkCjHh+DxW8HsQnnppnp7+PGL05SQez+Rj2lir/6eyM1h/vuRBCbsLWmj+IR9tTrMDY9AmNSI9AwYKHBwcmuYZSlhOOaSWnw+Rm8u7+VBt4/neqlQc62mj7oOTuIbdV9NMip6RmhScWxViM8foa8t04PxSkYbW7Y3UHPF0pzYQEW5D9EIiApQo02gx1SsYhengAwISMSR1uMYFiWVl4AQtf+vXYQRpubYBO4VvC07GjMK4ijAxJ5XLCcGa3BXXOy6YDECi7wFolEeO/KMfjxVA9CFDLcPjtYlXv9sjJ8Ud4FH8MIgoB75+UiIUwJg82NeQVx9MJdVByPL66fgBadFWUp4bQimKBVYc99Myg2IcAJBICtt0/Byc5haBRSlCUHndyfWFaINRw2gR/YLwxgE1w+xIQo6CVNsAkz6e8gsJQyCR18CKyAyoOvbwNIlc3LMBibFoGNPFbakN0Dk82N9GgNrUQDHOfKYENmjEZgwWG0uXGycwhxYUqMTYugXk8mmxu763VQysRYXJxAv7fF5cVnRzsoRy5wPjg8Prx/sBUDIy7Mzo/BnPw4ZMWEwOcnDuznekkF5ZaZxEqCZVl8Ud6JXXXEpPOBhXm0dfnjyR58dqwTcqkY983PpYHY/kYdXvi1ATa3D1dPTKN4o5qeEdz57Wn0cRYTH1w9Fiq5BL3DDlz9yXF0mRyIC1Ng0w0TBd5k/+71pybnP6DJOX8dbTGiRU82LV9c2zfiRHX3MNIiNbT9A5AydXX3CEKVUhQmhAku3W6TAx4/g6wYjeC5y0uwCVGaC7EJ52fdf7T8DAvxH2ATrC6CTeBn8wDZbCa7h2trBNscA2Yn2g0kE+KT1XUWF6o6h5CgVWJMahCbYLS5sbuObFo+NmHEEcAmMFg1OolqARweHz4/1okBMwFPBi5Pj4/BBwfbUNdvRnGSFrfOzIJcSnQLnxxtx956IjB+aFFw0/5Q1YPPjnVAIRXjvgV5dNPurB3ACzsa4PT4ce3kdLppT3UN445vTmPA7ML0nGh8tOZCbEJsqALf3DQR2bGhcHh8WP7uUbQZ7JCIRXiDY1wBQnwA32Kdj01Ii1IHzRV5ZGI+NqGy3YTVHwUNHAO+MBaXF6XPBLEJN0zLoO6401/bTx2TJ2RE4gcOm8DXwqhkEtQ/R7AJG4914BmeFmbvfTOQHRt6ATYhMG7q8hJsQuDyvntuDq3k8H/uFWWJ9PLYcKgNr3A9++KkMGy/YxpEIhFOdg7h+o1VsLh8yIzW4IdbJyM6hDhnX/f5CdT2WZAcocKna8dTqO3Tv9Rha3UfokIUeGFlMR0X3lLdi/cPtEEiFuGOOdnUy6px0IK/7GzCkMODi0cnUUaP3e3DO/ta0GawY0JGBG6YlgkJh034+XQfTnSYkBEdguunpdNLsWHAgt/ODSBcLccV41ME2ITtZ8l7u6w0ge4nhmFxtJVgE6ZmRwsmTXqGHOgw2pGfECrQtvw9yjfLstBZ3FDJJQJoKQBatf1n58AfiVoDFPMQhVRgAPn3tDd8zV5JklaATTjdPULGkTOE2ISqziE0DZJxbb44lwxMEPDkqtFJtKVa22fGz6d7KcMu8L61GWz4mMMmXD0plQZD/SNO/GVXEwbNLswtiMUN0zIgEolgdnjx9C+1qB+woCQpHM+sKEQop5N8bMs5Opjw2qWl1E/qhV/r8QWHW3lmRRFNXD492oGXf2uA7x9gE7JiNPjljmnQKKQ412vGZR+Ww+Ul2IQfb52M0uRwjDg8mPmXg9SZ/NkVRTQAmvP6QbRzLemlpQm0Ynb7N6exgzNf5WMT+D5TAFD+yBwkhqtwoFGPdRuDE2oBLcyw3YPRz++hz2+ekUkNOPnnxozcGMrGu+/7Gmyu7gNApjdPPjEfALCpsgtPcm1BhVSMQw/ORrxWifp+C1a+fwweHwOxCPj6xkmC6ti/uv7U5Pw/tKblRNO+/4mOIRxrJdiEVaOT6EFb0zOCzad7oVFIsW5qOs24Ggct+PhwB3wMgzU81knPkAN/2dVEzfaum5IOpUyBYbsHT2ytRcOgBaVJWjy3shhhShlcXj8e+fks5++gxl8uK6UZ/DO/1GFTZReUnL/DZZxny/sHW/H6riYwLHDlhBQ6rfPr2X7c810NB4LUYDu3aU91DWP1RxXw+lkopGJsXj8FRYmEdTL3jUNUAPr8ymKayQbGUAHgQJOBuuM+8ONZ7G0ggtgfTvYIsAmBcdOvKoPYhANNerqZd9frkB8figVF8TDa3Hjpt6DgLTVSTU353tnfQsvbnx3toEHOjnOD9PkPJ3tokNMwYKEU4ZOdw7Bw2ASb2wcjp3PhgwuB4OUS0F0EVgKvVRbPMyQbnRqBLdUEmzCFhxsYx2ETeoedmJodRdsjBQlhWFqagDM9I8iPD6WHeqhCiieWFmDHuQHEhipwNQ8++OolpfiyvAsyqVhg0Pbk0gIkapUXaGGumZQGhUxCtDCZUVSQOTo1Aj/eOhnV3WSqKTBpopRJsOfemShvMyJKoxC0/z6/bjyqOochEYswLi0Y8N86MwtLSxJgdnqRz8MmjEuPxInH52HY4UFMiIJectEhCvx653S4vH4opEEDR5FIhOcuKsZzvGw5kMfxAaQASSZcHDYh4BIOBLAJLiRHqKlhIEDE6U2DViRHqHDp2GSqObC4vDjUZECERo5xaRHUJM/m9uGnU71gWBaLiuNpZdTl9ePbE90w2dyYVxhH22w+P4NNlV1o09swLj0CS0sSkBKpBsuy+OZ4N461GZEWqcbts7PpJNrW6j78fPrCwYR9DTq8s68Ffg6bEND1ne4exhNbamGwubG4OB7PLC+CWCxCp9GOW786hWadFWNSI7BhzVhEc9iEqz6uRF2/BVqVDB+tGUtHxa/8uBKV7RdiEx7bUkvNEmflxdCKxqdHO2hbPVwtw+GHZiNMKRNcuCIR8PNtf4xNGLJ7qBj7qo8raaWr3WCno+JPb6ujgvKKdhNtq39zvBtbuIu4op1gE2LDlKjsMFGhbLPOhhWjEjEzNwYjDg+2VvfBx2ETDjcbaZCzt0EHr5+F1+/DsVYTDXJa9Vaq22kYCGITPH4/3ftuH0OxCSq5mEPakMpywIFdKZOgICEUle1D0KpkVN8EAMvKEvH50Q4oZBLBhOelY5PRprfB7vHRsxUg4nJybjkxOz+WtuCmZEfhzjnZ3IBEGOYWkLZxhEaODdeMxe66QcSGKXHrzOD58MW6Cfj5dC/kEgmunBhsm72wqhjj0iNhd/uwuCRoxXDNxFRkRmvQN+zEhIxIqsMpTAzDwQdmoXHQgqyYkAs83/7d688g539xdRrtuPzDCvrfFqeXUpzXfBJknXSbeKyTrXUUlFjdPYLDDwWwCV3Uc6KyfQgrRyUhQiPHic4h7DhHIvp2gx2XjE3G9JwYmOwebD9LsAnDDjOOtZpokHOo2QA/w8Lu8aOqc4gGOR0GOy2Nt+qDI+Ref3Cj8v8cqpRCqyJwwgi1nPq/aORSlCRpUdFuQqRGTqnBALBiVBI+P9YBlUyCeQVBfcbVE1PRP+KEy+vHdTyq+CVjktE0aEW/mQAw+diEu+YQbEJhohYz84JamA/XjCUAzDAlbuRd6ptumIifT/VCIRVTB2EAePWSEkzLjoLD4xe0za6emIrs2BC6aQMHRnGSFocenIVmnQ3ZsSHUgEwtl2LXvTPQorMhOkQhIC+/dmkZHliQB6lELICLXjo2GRePToLvX8QmaFUyms0FngWwCTdOz6QXD0ACY6lEhClZ0YIAqlVv47AJWsGlXtdvRrfJgdGpEQJsQl2/GTUcNmFiZhSd4GvVW7GrjmhhVo0OCuY7jHZ8d6IbIpEIV09MpVnboNnFYRM8WDk6CbPyYpGCIDah02jH5KworJ+VhQStCi6vH89ur0VVJ9HCPHtREa0gvLqzEVtO9yFcTXr8gSTho8NteGtPC0Qi0iIJaHq2n+nHQz+dpbqFz9aOh1gsxCbEh5EpqnitEn0jTix95whGHF4BNsHnZ7DgzcMY5NrKd8zOpkG0EJvQQ9tjr+9qwifc5No7+1tx5qkFUMkl2FzdRzPfjeWdSFxPbBWadFY8tiUoWo/UyCk24cGfztCWnUIipmy1Dw+140wv0bC8t7+V/i721uso6fy7qh48uDAPoUoZWvU2KnI/3T2MgREXojlsQjeXhJidXvpzAhC00AKCVoAgZOhr5VWAiXkhEZQXJ2qh4D7f2bEhKEnSomnQirIULVIigtiEKyek4lATqeTM5Z0Pjy8twDcnehCikOCG6UF928OL8hF2qBVuLyMYFb9pRiZYsBgwuzC/II5WmRcUxuGNy8pIWz1ZixlcMhobpsS2O6biaIsRCeEqLOW1rLfePhX7G/VQyyUCmvaLK0tw0agkOL1+TOa1BVeNTsbEDIJNyLsAmzAHegvBJgSeK2USfHvTJNg9fiilQgPH++bn0hYvf53vwO5nWLi8fiRHqLBhTdCB3eX1o2fIhbgwpQC/4PL6Ud09jOgQhWBAxeNjcKTFAKlYjAkZkXhwIRmW8PoZ7KwdhNXlxez8WMo9YxgWv57tR88Q8c4KVFFZlsX2M/2o7h5BblyIwIF9d90gdtYOIiZUgVtmZl0AW/6frj/bVf8L7arAcvv8eHpbHdXCvHxxKY3SfzzZg++qeqBRSHH//FxqlHau14wPD7fBy2ETApeT2eHFh4fboLO4sbAojlppsyyLbTX9XCUnHEtK4mmWW9tnRnmbEUnhaiwuDo5Bmp1eHGzSQyOXYmZeDG0/MQyLU93D8HDYBP6lO2B2wmB1IzcuVKBtcfv8MNpI1s3/+wDZSHKJ+J+Oif5RydzrZ+Dw+BGmlF7Qphvg6Np8YZzT40ddvxkxoQpBpuDy+lHRZoJcKsakzChaSnf7/NhVp4PD7cO8wjhaKfEzZHP2DDkwNSeathsD7/OZ3hEUxIfh0rHJ9Of67dwA3bTrZ2XRsvzBJj2+KCfgyfWzs6kG63T3MP6yswlWtxerx6fSjL9Vb8WDHDZhek40XlpVAqVMAqPNjVs3nUI1h03YcM0YpEVp4PMzuO7zKhxtNUItl+DNy8uoCPC+H2qw+TTJZPkl6Hf3teCNPf8Ym6DmsAlJ4SrU9Zux/N2jNPgNtMdcXj/Knt1N9SjrpgZHV/njpqNTw6kvzAM/nsFPp4iLs0QsQhOnhTl/VHzHXdNQlKjF2d4RrHgvOKb+6iUluGJ8Knx+BiXP7KYTJWsmpeH5laSSc+VHlahoJ4EG38WZX8aPC1Pg6MNzIJOIcbTFSL2pItQybL9zGpIj1NBbXbjkg3L0DDkvML+7edMp7KnXQSWT4JVLSmhA8WVFJ97Y3QyWZXHX3BwacJ7uHsbT2+pgsrmxrCwRjy7Oh0gkgtHmxrPb6wkAMy0Cjy8tgFImAcOw+PhIO8rbTEiNVOP+Bbm03XWkxcDDJmTRQHrA7MS3J3rgZxhcPi6F7gGPj8EvZ/phsLoxtyBWoIU41TWEFp0Npcnh1OMIILqRs70jSI5QC2wXfH4Gtf0WhCqlAs0L8Pcd0X1+Bm4fA/V57sn/6nJ6CDbh/LPFZHPD4xdiGgBC99Zb3ShMCBOcU90mB5p1VuTFhwoE9z1DDopNmJIVtNPoH3Fix9kBKGVirBydRMfOTTY3vj7eDYfHj4vHJNH30+ry4sND7RjgzPYCY9Eurx/v7m/BuT4LChJCqQM7w7B4d38r9jboEK9V4omlBfR3tvFYBz491gG5RIyHFuVTs8kdZwfwzPY62N0EehnY08fbTbjt69MYsnswPp1ogzQKKU2y9VY3wtUyfH3jRBQlamF3+7Do7cPoGXJCJCKV3oAD++UfVlCB+KrRSXiLC6Kf2HqOToPFhSlQ+ejcC1rbYhFw8IHZSI1S40THkCDBf3v1KFw0Kglmpxdlz/5xW/2frT/bVf8PLoVUglcuEbJOHB4fpGIxLhuXQisoANGweP0MSpK1dMIJIJswsGkfWhRknbQZbGjR2VCQEEpoxiAHbafRTrEJM3KiaZm7Z8iB384NQK2QCrJuvcWFTZVdxFuFE/YCJBB6c08zBs1OzCmIw4qyRJpdv/w7GRUvTtLi7rk5SApXUWzC3gbikPnkskIa0H18uB0buVHxRxblU5Hc5tO9eO7Xejg8fqybkk6rCuVtRqz/+jRGHF6MSQ3HphsmQqOQolVvw+qPKmC0eRCpkePbmyZRbMKCNw9RE7PAZQgAV3xYQTNcPjbh8S219MJN2t9K22MbyzspuuCtvc0UXXCs1YR7vq+h73+IUoolJQkwO7wC+CkAumkf31JLR8UtLi+dctl4rJNexC8bGnD1xFSIRCIcbjaiunsEAGlL3DuPONr2jzhxqnsYLEtaaC06GwlyGBZNOiv3ufLTqRMAArM2qyvYTgtVSqlBG1/HkRKpRnSIHEabBzmxIVRbkqhVYXx6JE53DyMrJgR5XDVQIRVj7ZR0/FLTj0iNXODKfM+8XHx4uA0SEcEmBNb6WVnUVO5int5i9fhUmJ3EnGxiZiQKufZPaXI4NlwzBic6hpEZo8ElXJtAKhHj17umYWftIK0iBdYna8fRtid/hPyuudmYlhONYbsHEzIjaWA/LScaxx6Zg95hITYhNlSJfffNwoDZiegQBc/wToSPrx0Hm5tgE/iX7/mi1MAakxqB7XcGWUgMw8LpJXo6PszU62fQbXIgMkSOW2Zm0VaNz8/gXK8ZoUoppufEUDG+n2FR2U6wCRMzI2nGz3BidoPVjek50bTNxrIsDjQSbEJZcjgmZ0XRdufRFiOOtBB0wRXjU6nHz/F2gk3QKKS4eUYmDdRr+8z44FAbPBx4MvCa2gw2vLQjgE2Iw+2zs6FRSGG0ufHwT2fRMGBBaXI4XrmkBOFqOVxeP+6m2AQ1/nrFqAuwCXKpGM8sL6LVg/f2k0CdZYneKXBe8rEJSeEq7LxnOkKVMpzuHsblGyrgOw+bYLC6seCtwzRY5mMTLttQQffusVYTrY48uvkcdnM4kp9O9eLkE0QL88mRDrx3gBjC/ny6F6NTiRamvM1I3eIPNxtQlhyOJSUJMNrcNOg+12dGQXwo7uMqLZ+Xd1ItzA9VPTTIOcj9TgHg1zP9NMjpNNmpTUTDgBV2jw8ahRRuHwM71y1wePzUjV0sEkHFBYASkUgQDObFheJExxAkYpEAPTQ5Mxq/nSOVnAWFwUR6anY0RqWEo3fYgek5MYjlBPDFSWG4ckIqbW0HPh9hSimeX1mM37m2+nU88fW/a/0Z5Pwfrnu/r8GW6j4opGI8f1Ex9c54fVcT3SB8ceaPJ3vw0M9n6abddS9hnfCxCVIxwSaUJGsJ0favh2l2zccmXPJBOZ32ONExRA/Xh34+S+3Mfz07QHvanxxpx4ZDZHNurenH+PQIJGhVONhkoBMoR1qMGJMagfmFcTDZ3JSN0sBxowKH7ufHOmgA8vPpXhrkHGkxUrHq7nodDXJ6h5z0eYveBofHz21aPy2ZOzw+umklIhHCVDL0m12QS8QIUQQv7+IkLc70miH9/9h778CoqrXt+9rTM5PJpPdeSEJIAoTem1JViiIK2MWGvffj8dh7xY4VFEWK0nsNBBJIIb33MjPJ9L7398fas2Zv8bzPc75Pz3Oe73X9lTMnJiGZtde97vu6rp+EQY7gVjqdT162ubyiMKrpw6KwMyUMXYMOTMmKpJt2ZHIorh6TRDo5cSFUdxISJMNLS/OxqyrgavKvD1aOxren2iCXSnCLoMX+7GXDkR6lgdXpxeJRAS3M9ZNSERGs4HU4kb/BJkxBRacJWdHBVKelkkux/4HpONtqRESwUuQ0+XhVES50myGTiv/dN0xOwyIem5Acrqbfe3RyGE4/MQd2t1dECg7TKPADL1QWLoZh8MSCXBEl3OUlfw9h+xsgXUib24u0SI3ItaK3utA95EBGVDBFbACk8K7qNiE5XCOyqA5YXDhaP4AwjRzTh0XTAmrI7saPZzvAgUQA+At4i9ODj440YdDuxsL8OOp8cnl9WHe4CY39VoxNDcPVY5MQrSXYhI+PNOFkkwEpEWo8eEk2vV1/U9yKzWUEm/DI3Gx6EO+o6MHb++vBchxum55Bb8THG/R4dDPBJlxWGIdXlhWAYRjU91lw4/oz6BpyICdWi69vJtiEQZsby9adRLPeBrVCik9Wj8GUrEhwHIel606igi/UhdiEBzcFIKcT0yNo5o4Im6CU4dQTs6FRyrDnQh9u/7aU/p792IQOo53mxQDEEn47X2Dd/NVZqq3rtzgpI+nFnTU42UQK9QtdJhoCt+lsBw7w9vWqbhNWTUhBqFqBc+1D9PVuUy+um5iCSXz676Fagk1o7LeitC2ATSjjsQluL4uq7gA2QW91U91OvzkANA6SSyk2Qa0I0LLD1ArEhJARZEyIio7UtCoZJqSH43D9AOJCVCIzyHUTU8jFTC5OYL9xchqMNjdsbp9IC7NiXBI6jHZ08wYJf8bMtKwoPDY/B5V8xMQlAmzCVzeNw8GaPsToVKLDfsOtE7D9fDeUMgkt7AGihZk6LAo2lxdzBPqcq8cmIzuWYBOKUsLoSDc7Votjj85CY78VqRFqOrILUkix856paDXYEa5RiMZFzy8egYfmZkMmYUR8soUFcVhYEHdR1z0rRoutd02GcHl8LJ/AHoiF8GfBBatkWD0hRfS7+6PXX0XO/9DiOI5ay11els7JAYiEq0OCj4MUgU2rUQZYJ9EhAWxCUrga4cHkTRoSJMfULMI8ig8NorcugByg355qg1ohxZJRgQyWNdPSYXf5LmKdrJqQgh6Tk7JO/Jt2dm40HpmXTTs5MwVamG9vHk9ZJ0I7+qbbJ+KX8h4EySVYKrCQv7wsH3NyY2B3izft8rFJGB4fgq4hB0YnB1gnBJswE816G9IiNXTERLAJU9FhtCPsN9iEF5bk4/EFuZBJxDeWywrjaS6PcGVGB1Mthf/v5nATWOErV4qxCT0mB7QqOa4Zl0w1LBzHoabHDLmUQWGiDiP5zpH/7292eDA2NZwe6hxHbuPtRjvGpoaLgiBLWoz8TSgYM7OjqRDyXPsg9lb3IUKjwLXjA7fu6m4zvjnVBqkEuGFSGn1otxlsePdAI0wON5aMSsTCgjhEBivRb3HihR01aDXYMSkjAg9cMgxalRw2lxdPbqnEmVbSQXllWQHiQ4PAcRye2FKJX8p7EKaR4+WlBXQG78cmAMRd5cdCbCxpx9Nbq+BlOUxMj8CGWwlw83iDHjd9eQZuHyvCJrQZbJj/zjGq+fhkdREuzYuFx8di7ttH6Y1VjE0opS32n8u66EP35V211Ln2xfEWXHhuHhQyCbaUdVE8wuayTmTFaFGUEoa6XosopTUlQoObp6TBx3J4/tcaSjSP1ippR/Dr4lY08Pq1L4630CLnRJOedgJ2Vvbi71eMgEouRdegg77eNGCF0eZGtFYFjy+ATSDOycBzwG/1ZhiI3sMZUQFsQpaA/0UOOuJIm5YdRf+bwiQdJqZHoK7PgpFJoXTkFKtT4abJaTjKu5rmCwrUl5bm44czHXzIYxZ9/bnL8/DJ0Wa4faxor989KwshKjkGLCQjxz9mm5MbjY9WFaG214yCRB1FD8SHBmHHPVNwqtmAhLAgkc5k612TcbxRD41CjE149rLhuLIoEU6PT/SMW1gQh0k8byolPIBNSIvU4MjDM2B2eqELEmMT1t847neTl4WdNCCATZiYESHCqjg9vgA2gR/tAAFsQlKYmhaM/tdPNRsQE6LC9GFR1Pxgd3uxs7IHcqkE04dF0bBMh9uHTWc7iMh3RBwNAPT4WGwsaUfnoB1TMkkC+8gkgk3YWNKOis4h5MSGYNWEFJoD9XNZJ7mMaZW4d3YW7dTsr+7D58dbIJMyuHNGJv1dFzcZ8NKuGlicXlwzLglrpmXQQv2+78+TkX5mJN68uhBqhQz9FiduXH8GF7rNSIvU4LPrxyAjKhgeH4trPjmFs22DUMgkeP2qwt9F1vxR6y9Nzr9Rk/PbZXV5cbJRj2CVDBPSIujGIjwhC9xeFvm/g00w2txIFmxagMcmuEgs92836D8jjAuXj9+0Qju4/2c0OTyIC1GJvq5/nJAcrhYVESa7B2Udg4jRqkRzfbPTj02QYmZ2NG3rO9w+/FLeDZvbi3kjYulM3eX14fuSDnQPOTA9O4pqkSjrpNOEnLgQXD8xhWITNp3twL7qfsSEKHHvnAA2YUdFD9bz2IR7ZmdRUerJRj1e2lULqyuwaQHSer//B4JNmDYsEu+sGAWVXIo+sxPXf1GC2l4LksPV+OKGsciMDobL68Pyj0+hvGMISpkEb/0TbMKqCcn4x2Jym3l1dy3NWkmP1ODAg9PBMAw2ne3AIz9VACDhhQcemI6kcDXKO4Zwxe9gE6wuLwqf20vdG7dMSaO5MHPePEIF40ItjJBoLpUwqP/HfEglF1vFd907FblxIajsNOGy94/T11+/qpAeKkXP76OZNMJCQ2gVn5kdhfW8w0aoAUqP0mDf/dMh5bEJN35ZAqeHRUyIElvvmow4HUlxvvbTU6jvsyJco8AXN4yloZkPbCrHtvNdCFUr8MqyAnor/r6knccmAHfNyqS3xIrOIbywg2ATFo9KoMngJrsHL++uRROf8HvfnGFQyMh76rvT7ShuJlqYtfyoBSDW5u3niRbmhslp9PY7YHFRR9XS0Qn0/ez1sdhX3QeDzY0Z2VEibEJNj5liE1IFThqz04OabjPif4NNYFkOLQYbCbQUxDQApFvFshDtSf/67zwHvD4WUsnF2IQBiwtK+cXYhDaDjebQCP+bxn4L+swuFCTqRNiE2l4zanssyI0LEel76notONGoR3xoEC4dHkOfNa16G7ad70aQQoLlYwLYhM5BO7480Qonj03wd3uMNjfePdCAHpMDs3NicNWYRDAMA7vbi5d31dIOyuMLchGsJNiEl3fV4gCPTfj7FXk0UfjDw4344ngLlDIpHpufQy9BfmyC0+sTJbAfrR/AHd+Wwub2YXhcCDbx2ITGfguWfngSZqcXagURFRcmhcLi9GDWG0foyEmITbji/eN0rC60ivu7/wAQG6KiScrCQFgAOPLwDKREaHCsYQCrPw9gE/zPDZPdg8K//74WZubrh2ly+rjUcGy6nXRuhciGEJUM5c9eCoZhRGBmqYTBgQemIzVSg6oukyh0dv2NhOvm9Pgw6/XDtJsvTJD+V9Zfmpz/BStYKaOC4XaDHV+caIHLy2LF2CQqPO43O/HW/gYMWJy4dHgsrhqTiFA1SQB9afsFgk1I0OGx+TnQBcnh9bH4+/ZqHKjtQ1xIEP6xZAQVw725r55gE+RSPLUol9rXN5xux99/vUChl/4Eyv3VfVi7sQxOD4vhcSH4iccm1PSYsfyjYlhcZJTxw20TkBevI6yTNw5T0q7QKr78o2IqPhViEx77uQLb+I3zydFmwXishUIJPz7aTPMdjjXqaV4MQERviwriobe6KVMJALQqOaWEv7SrhlrCGQa0yPnhbAeFkH54uAm3Tk0HwzAobRukt/GDtf0UmzBgcdGiod1oR/dQAJvQx29Yl5eFwRpomQtDxYQfJ4eroZBK4PaxFKkBALmxIUgKD0InD8D0M4dSIzWYnRONMh6b4L+xahRS3MVjEyKDFaJWuh+bIGUguoU+cOkwKOUSmOweLBmVQG+y14xPhtvHos1AAgf9Vuj8RB2+uXkczrQOIiNKg8v49w3BJkzDobp+RGiUuDTvn2ATMgMBjnfPzsIleTHkIZsUSr+3H5vQZ3YhJSKATYgMVmL3vdMINiFITotwhmHw1tUj8cZVhRcFOK4Ylyxyy3EcBy/LoSAxVDRqc3l9MNk9CNcoRK10p8eH2l4zYrSkAym0fp9s1CMkSI7RyaF03OX2sthf3Qcvy2L6sABt3OMjIl+9hWAT/KGSRLTehYY+Ap6cMzyG/q53VvbQsL0bJqVi/G+wCcFKgk3wd11ONRvw4eEmeH0sbpqcRke/tb1m/G37BQzw2IQHLyHYhB6TA/duPI+aXjMKE0PxzoqRiAhWwubyYg3vBosNUWHdqtE0iE+ITXhiQS5u5kewL+yoxqfHiEtsbl4MRRpsON1O3WDRWiUO8NiEU80GXPPpKXAcEaX+eDsZj/WanFj0XiDYUXjorfjkFHV0lbYJsQlVOFpPxur7qwPYhPUnWmgq/J4LfZg6LBJxuiCcajbg62KCUzjXPoSpWVGYNyIWRrsbX5xoAcsRF+DOyl7cyz8vfzrbSblNv1Z00yKntC2ATfCP6ABSCPoL/h6TAy6Pj9eyBVKBJQxD05flUgl9rgTJpYgWZCRNyIhAZZcJMqkEYwVRCwSbYITd7cPyMYEu+JzcGByuG6BaGH9xPSaFYBPKO4d4bALZizq1HG9fPRI7K3sQHaIURUmsWzUaG063QyphRGOzvy8egREJOlicXlxWGBfArYxLRrRWhQ4j0dD5C/URCTrsuW8qKrtMyIrW0kJUJZdi/4PTca59CJHBSlGx+2esv4qc/5D15FYxNsG/aT8/0UIzJ/bX9GNWbjQig5U40WigxOLzHUOYlUNYJ0abG18XE9ZJh9GBPVW9tMjZcq4TJocHJocHey/00SKnrH2QRrKfbAqwTox2N319wOqCx8sBCrJR/WcKwwQi0xVSCVIi1DDY3NAopDRhGSDhUY39Vih5V5N/LciPQ1n7IOwuH23t+18PYBOi6ANgfFo4bp6SRtuvfixAZLACr19ViH3VvcQqLtC8fHb9GHxf0gGlTILrBJv2+cUjkJ+gg9XlxaKCeLppr5uYQguNCelibMLe+6dRbILfgq9WyLD/wemo6BhCdIhSBPZ7Z8VI3H8JSYsW3sZXjEvGZTxEUhiKlp+ow7FHZl3UMtcFyUVZLkAgwPG3tlKTwwOGgaj9DZAHr8XpRUZUsIiF1GG0o8NoR25cCO1mAeShX9E5hPTIYJHAtcNox8HafoRpFJg/IpaKa/vNTvxU1gmOI6Ju/9jMaHPjiwMtGLS7cVlhPP37291evMp3UMamhuOmyWkIVSvg8bF4Y28dTjcTq/hj83Po7+jDw40EmxAkxxMLcmmhselsB97aR7Qwd83MpD/T/uo+PPhjOUwODxbkx+L9a0ZDImFQ1WXC9V+UwGBzIyVCje/XEGxCv9mJKz44gR6TE0qZBJ/z2ASOE2MT7p6VSS2492w8h90XCN+sKCWMjjffEmATXuOxCRqlDDsqe6hzDQA23TYR49LC0dhvEYnWZRKGYhPu/K6MHqw2t5dqYd7cW08jJrqHHLTI2XquG6eayevrDjdhzdQM6NRy1PSY6ecfb9SjacCGiGAlzE4PStuI5qXX7KTsKIAwk/zvt+6hADZBEPsk+jgiWEGxCTEhKlqYJoQGISOKJLBnRgfTfKgwjRzzRsThcC0ZqwufD7dPT8fXxW1QyaWiGIN7ZpEunMvjE4m7r5+UiiE7wSbMzg2M1WcMi8Y/Fo/Ahe7faGG0Kvxw20QcrutHrC5IVDh8f9sE7KzogUouFY2yX1qaj/n5sbC7faL9tawoEYVJOnQPOVGQqKNdp8zoYBx/dBbaDXYkhAVRgb9KLsWWO3hsgkpG4aoA8Pj8XDx8aTYYhhEFOM7Ni6XCY//yYxO+vUWMTRjkk92F2ASvj0VDnwWhagUxqPAifR/Loax9EHKJBCMSQmjOFMtyKG4ywOz0YFJGhCiB/Uj9ANoMNoxNDReJ+o81DKC0bRBZ0VosyI+lz8MzrUbsqOhBhEaB6yal0tH2+Y4hfH2yFQzD4OYpaaIJwB+x/hpX/Q+Oq4SrrH0Q7x9shMtLNq3/jay3uvDegQb08dgEf/CUj+Ww4XQbqnssRLk+NpkeiqVtgzhSP4A4nQrLRifS0VC/xYk9F/qglkuxsCCQLuz1sTjaMACHm8X07CjqpAGITqDP7ER+grjtbHF60DnoQGJYkOh1jiPhWcFKMTYBIBvmt7fu31u/NxP3+lgY7W6EqRWikZrHx6JFb0OYWiFKi/X6WJzrGIJMwmBkUij9nj6Ww4lGPawuL6ZkRdL2O8dxOFw3gI5BO8anRYhuF4dq+2kH5fLCQDF0vEGP3Rd6EBWswo1TUunXKm0z4suTbZAywC1T0+kNpqbHjDf31cPs8GD5mCSKtOgctOOZbRfQZrBhUkYknlqUC6VMCpPdg/t+OIfStkEMi9HiratHIilcDZblcPf357CzsgdhagXeuKoQM3NIsffizhp8crQZDEPcS/5cC2E7uzApFFvvJNiEg7V9uOWrs2A5Irzcec/vYxP8Whi3l0XR8/toppNwPLbkwxPUDVaYqMO2tcRB9NjmCso3k0oY1D4/D3KpRHTjB0gIXFFK2EVWcX9H0MdyGP7MbiqkXzE2iboVr/30FL1VFyTqsJ3/3m/urcO7vAA+TC3HqSdmQymT4lgDoR+zHBGo/nL3ZGRGa9FndmLRe8cxYHFBLmXw2fVjMX1YlIgpJ5MweO6KPIop+OxYM17dXQcfx2HNtHQKXj3dbMDjWyqht7iwsCAOLyzOh0TCUFhrPa+FeWHJCGhVpAv79v4G2sl5cmEuHUcdqOnDj2c7EfwbAGar3oYvT7ZSbIK/I+Rwk8DBfl4LUyToBpxo1FNX0zgBXLHDaMfZNiMSQtUYmxpIJXd5fSjlsQkFiTrR/v1nlG+bywuzk2hTfruX3V72Igv4b9c/G63Z3V54fNxFic5Ddjf0VlKwCp8PeqsLzQM2pEcFNHv+18+0GBGjU2GU4PlgtLmxr7oXKrkUc/Ni6TPM7PTgp7OdJMW8MJ4K0J0eH74ubiWj7awoWmR6fSzWn2ilxoRbp6bTEejXxW3YXdWL6BAlHro0m15+Npd2Yv3JFsilEtw3J4BNOFzXj3/sqIHV6cU145JpOGllpwl3bShDx6AdkzMi8fHqImiUMnQPObDys9No0dsQG6LC1zePw7AYwly7/P3jqO21QCph8PLSfOrovWF9CTWcCNOahd26xLAgHHtk5kVjdamEwb77pyE9KviiFHS/Vdzp8WH4M7tpMXzdxBRaSM1+4zC9PIxMCr1IuPzP1l/jqv9la3RyGL4Q3NT1VhcMVjcfehZIb+03O9E4YEVmVDCNn/e/frZtELE6laiVrre6sOcCgbgtyA/ACk12D7491QaH24fFoxJoqJXd7cX7BxvQY3JiZnY05gyPoWKxDw838qyTENw+Ix25cSHgOA6fHWvGvuo+HpuQQ7Mx/NgEhUyC+y8ZRkWEey/04oWdNbC5fLh+Ygru5kWp59oHsXbDOXSbHJiaFYWPVwVYJ9d8egodRgeitYR1kh2rhdPjw2XvHUdDv/UibMKNX56hnTGhVdyf7gwAqRFqHOaxCd+dbqdkYiE2obRtUBR/DgBXjEyAxenB6i9OU1eHyeGh/KmHf6pAM79p24x2qoVZd7gJ+3i7aXnnEJbyqcIHavopQLFpwIbrJqYgK0aLVoMNh/gHz9m2QVR2mZAUrobbx+J4gx4cRx7K59oHaZHjH6dxHNDUb6M/Myu4y/hYFhxHunC6IDk0ShksTmJhVsrJARGhUSAnNgSVXSYkhgXRh7pcyuCKUfHYdq4bYRoFDV0EgBsmpcLqbAQHiAIcb5ycBr3VhUG7B4tHJdBD6PKR8WjRW9E8YMOY1HA6gstP0OHVKwtwpsWI1EgNvV1LeefgjspuhAYpsGJcoPO3bmURtld0g2U50a37vjnDMDYtnGIT/CPDqVlROPTQDLTobRgeF0KdJjEhKhx5eAaa+m2I1alo4cwwDNbfMBYDFhdUCqlIm3LL1HTcMCkVHCA6YMenR+DggzNE7x2O4xClVYpgphzHYcjuhkYpw0Nzs2mYIMdxaDfYoVJIMDs3hnbGOI5DVZcJHh+LgsRQelPnOA7n2gfRZ3ZhXFq4yNlX0mJEXZ8F+Qk6TM6MpLfoc+2DONagR0JoEK4YGU8ToWt6zNhc2gm1QopVvPMJCGATXF4W145PphETvSYnXt1Tiz6zE7NzYnDj5FRolDKYHB48t/0CqnmH5bOXEWyCx8fiqS1VOMAbE15elk+F9K/ursXnxwlu5alFw2mH94vjLXiRxyYI9/TeC71Yu+EcGf1GarB17WSEqOSo6jLhqo+K4fD4oJJLsOk2gk0w2T2Y/cYRavAQuk6v+ugkPXCFWpjHf66k2ISvittwhscmrD/RSkXrXxe3BbQwjXq8sJNcKn6t6EFKhJpoYRwePLs9MG6P1irx5ELy3HjnQAPajaRr9tmxZlrkbD/fTff1V8WtuGd2JhiGQXWPiX5+SasRRpub/s67+PF8v8VJ88w4cIQ8DnLZ8wvnAVDAMABRMZgTG0K7cqMEOJ6RSaHIjtGizWjDxPQIun8yo4OxsCAO59oGkREdTLmISpkEj83PwS/lPQjnDRL+9cKSfHxxvAVSCWHp/dHrryLnP3CJsAmRGmy/ewqClTJUdA7hqo+K4fKKWScGHptg+R1swlUfFVMR2cHafpqk/PBP5TTfYWNJO7V8fnq0heY1fHe6nWphjjfo8epuopHZVdVL38wDFpdI8JYYFkS7B+8faqSbcP2JVlrk/FrRQ1vgG0raaZFzodtMnSYlLQaYHASbYHF60cdbQw02NwbtZE7OcoGNKvwYAC20GAZ03ASQW74fZiq8xRalhGFYTDA6jMQq7t/o2bFaXDEyHmXtpP3qTzINVsrw+Pwc7KgkVvGVE8TYhPUnWiCVSLBGIKh7cmEuYnUqmB1EC+N/YKwcnwyZlEG7kWhh/MLHwqRQ/HT7RJIuHB1MH3oquRT7HpiG4w16RAQrMTUzkF78yeoilLQYwTCM6N+3ZloG5vNMq+wYLb1dF6WEo+SJOTDa3YjWKukhHRGsxC93T4HLSwIchdiEfyzOpwJqIIBNuGJkgsgN5vaycHl9yI7V4rPrAwW81eVFn9mJhNAg+oAHyG25vteChLAgLB+TRA83i9ODw3UDCFHJMSE9HMPjyfvL5vLi57JOsBzRhPjf8y6vDz+caYfe6sac3Bg6ZvP6WHxT3IrGfiuKUsNxWUEcUiI04DgOP5xpx/FGA1LC1bhjRgZ1om0v78amMx3QqmS4d04WHVEequ3Huwcb4GM53DI1nbpDyjuG8OTWSgxYXJg/Ig7PLBpOsQm3fVOK+n4LRiWF4pPrxiCSHxOt/uw0yjtNCFXL8cnqMfTvdsP6MzhSPwCGIUm+flfOk1ur6KhayBBaf6IVf+cznUTYhLp+3Lg+UKj7reJdQw4sW3eS3q71VhfVbq3+vAR6XltW02vBp9eRouxv2y/Qy8PJJj1OP0EO+29PtdGwyRONBizIj0OsToVTzQbKNarttWBhQRxmZkdj0ObG5rJOeHka9ZH6AVrk7Kvug8tLQgOPNejp+6BxwEqxCX64Mfl7s/CyZO/b3T6w/Oeo5BKoFWSvqxWBzrJSLkFefAhONhmgC5KLggwX5sfhs+MtUMmlmCVwdi0fk4QmPr5CaHe+fGQ8yjuG0DVEAjv9z51JGRG4a2ZGAJvAXyJD1Qp8sroIey70XaSFWX/jWPxU2gmFVCLCsDy/eASKUsNgcXqxMD+ghVk+JgnJ4Rp0DBInpr8jlBsXgoMPTUdNjwWZ0cG066eUSbHrvqmo67UgXKMQid9fu6oQD16aDamEEXXElxUl4rLCeHhZVjROGxajxZ77xQnsANFCChPYAdJVJDDgDNE4vMfkAAMGE9IjRCPKP3r9Na76DxlXCde28124/4fzYDkgKTwIO++ZSqPXV3xyCnqrC5HBSny/ZgIyo4PhcPtww/oSnG4xIkwtxwcrR1M30tv76/EFv2mfXJhLD6GDtX14dXcdnB4frp+USm8ynYN2vLizBt1DxCp+18xMSCUM3F4W7x9qRCXffr1ndhZ9aOyu6iVJnSEq3DotnbaSW/Q2/FxGNu2Kccl089jdXmw7300zafwiOY7jUNxsoNgEYVJxj8mB2l4LMqOCRdoWl9eHul4LIoOVomIGIEJAmYSh4l3/8rEcvKyYNPx76/da5hzHweLyQiWTXtRy7xpyQMowInwDQJwmJocX+Qk60X9T12tBq8GGwsRQ0X9T22vGuXZS2PhvygDQ0GfB3uo+hKkVWDo6gf7+2ww2bCzpgIQBrhmXTH8/fmzCoN2NxSMTaLfH5PDg9T11aNYTLczamZmQSSVwenx4eVctTrcYkR6pwbOXDxdhE34u60RokAJ/uzyP2ko/OxZgid03J5Dqu6OiBw//VA6724dZOdH47LoxkEgYlLUP4rrPS2B1eRETosTmOyYhMYwEHC589xgGf4NNYFkOU189RIvf26al0/wkoYNLqIXxj+wA4lA7/8wlUCtk+Km0Ew/9WE5/n/7Dvq7XgrlvH6WvP7kgl2AAOA7Dn9lDtTDCoDlhEmxmdDD2PzAdAPDanloa9qaQSnD26TkIUclxoKYPN391FgAR3W67awryE3XoMzsxR3BBeXN5IR1JL/7gBI2ZuGtmYPQozNFaOiqBWpUP1fXjno3nYHF6MTE9Al/eNBZKGemE3vldGWp7LRiZGIoPVo5GlFYJt5fFs9urcLhuAPGhQXh5aT4tsDed7cC3p9oQJJfiwUuzaeFV1WXCusNNcHl9WDUhhWriTA6SQeQHYPr1fizLYXNZJw/A1ImK+6ouE4416BGnU2FRQRx1i5rsHuyrIdDeObkx9H3OshzOtBrh8PgwIT1CNA7vHnKg1+xETqxWdBg7PT70mpyI1alEn89xHOxuH1RyKf4raOnvLR/LweEhURLCZ4TL60OfSYxp8L/+e8WF28viVLMBMimD8WmBBHavj8XB2n5YnF7MyI6imjSW5bCjsgcdg4QjN0qQwL6rqhdlbSRi4qqiJHqROVTXT7Uwa6al0691skmPL463QiohxgR/mntVlwmv7K6F2eHBsqJEqnlqM9jw+M+VaOMjJp5fTGIQhuxu3PldGc62kYDQD64dhfQoYshY8/VZHKjtR7BShjeWF1IZhhBELExH/1fWX+Oq/8XripEJlHWSFRMsYJ0E48RjM9FvdiFKG9hEQQopvl8zAQ6PD0qZeNPeN2eYKFjNv2blxIi4K14fC4fHh4TQICpqBEgV3mNyIFanEolbnR4fStsGEa0Vs05cXh8O1/VDIZVgfHoEFWe6vSx2VPTA5vJidm40FRH6WOI06RwkrBN/ccZxHLae68L5jiFkx2px9ZgkWgztrurF7qoeRGmVuH16BqUWH60foNiEO2ZkUIdaWfsgXt1dC4vTixVjk7B6YiqkEila9DY8+lMF2ow2TM6IxItLL8YmZEUH46NVRUiN1MDHEl3G0foBaBRSvCHAJjz8Yzl+5BOThdiE9w824PW9pDOWHUOwCRIJg12VPbiDF5kGyaXYc980JEeoUd1txqL3jl2ETXB5fbjs/eNUCF7fZ6Fjitu+KaXOtZNNBjrTfmNvHf2ZfinvRv0/5kMmleCX8m46sjvRaMD0YVEYlRyGhj4rdabU9JgxOTMS144n2ISvTrbC7vahz+zCjspuWuQcqOmn4XD7a/pokdPI33oB8tD0shwUEgYuD0tb5g63D15e8yOTkrCxQbsHSpmEIjoYhgQvdg05oJJLRFqpObkxKO8YAssRBpF/zc2LxYlGPQxWNxYWxNE015nZUbhiZDzp5KSE0c5BZnQwHp2Xg5NNBJzrTwRmGAZf3DCW0q6FrfR3VozEhtPt8Pg4XD02MDa7d/YwpERoMGBxYVZONB1rzc6NweY7JqGx34L8hAA2ISZEhQMPTUd5hwkJoUEi0eVPt09EZZcJwUoZLT4A4KG52bhuUgq8Pk5U2M/MjkbZ05fAybt6/IdvYpiaapSESyGTUOiufzk9BJsg7KQBhCfm9rEYkaCj3WCAFBf9FhdyYrVUiwQQfU9DvwVZ0VpRknuH0Y7iZuLgmipIYO81OfFrRTdUcimuGBlP/wZGmxufHWuG3e3DklEJ1G1mcXrw/sFGGra3qCAe8aFBcHl9eHNvHSq6yFj9vjlZSI0k3boPDzeSDopWiScW5NIOx9fFrfj8OMEmPDQ3mx7Euyr92AQfVo5PpsW1EJtQlBKGr28i2IR2gx1XfXwSfWYXwtRyfMtjE5weH+a/cwwtehsYBnhxST59/q3+/DRO88Wy0HX691+rqRtMiE34urhVhE049BAZj51tGxSJ1pUyKRaPSoDD7RN18exuH0WePLW1io7V+y0uOlb/8mQrvTzU9FqwanwKJBIGR+sHqO7tx9JO3DY9A5nRwegxOXGq2QCWT2Cv6bEgnZc4lHcOASDd27peC/3d+vOtfvvxn7H+KnL+Q1esTnVRRwAgb16/+PStffXYX9OHOJ0KTy0cTq17nx9v4fMdJHhkXjY9iLed78Jzv1TD7vbi+kmpNNPkVLMBd3xbikG7R7RpmwasWP5RMQw2N8LUcmxcMwE5sSGwubyY+/ZRast+dVkBTWte/VkJdW8sHhmPt/lN+9TWSmw6y2MTQoMoNuHr4lbKKRKyTk42ibEJWpWMzrSFKa0+FlQL8+TWShp/Pmh3U7vwVydbqdPk5V21WDUhhQ+gG6A/65bzXbhrFrHm9gw5UdY+CJYjLfbGfitSIzXw+FhUd5M2uc3to7N78v0CYW2Dgk0bEiSnAW2hajl1pcWHBiEymAS0pUVqoFWRrRinU2FMajhK24hd2++MU0gluGFSGrad70K4RiFKZb53dhY+OtoMKQMRNuGumZnw+FgM8lZx/035yqJEGKxu2smhWphEHdatHE06OVEBLYxMKsGvd0/Bngt9CFPLqe4JIM61vdXEWXTp8IDr457ZmZicGQGDzY0J6RG0gzUxIwLHH5uJDqMdmVFamucSrVXhwIPT0T3kRGSwgorZGYbBB9eOxmtXEvyJsBN2/aRUXP87MfBFKWHYcc9U+r85jsAKwzUKeogApLDvMJKU1ztmZFDrt48lmpcQlRwTMyJoQefjnSZelsX4tEABz3EcjjUMoM/swqSMCFFxcKR+AHW9ROQ7IT2CauWON+hp2N6KcUnUnXK21UgFxrdMTaM39UAHhYAn/aPLNoMNL+yoIVqY3BisnZkJrUoOg9WFx36uJODJBB1eWkqwCS6vD/f/cJ4P6QzCW1ePpH//x3+uxMaSdihlEjwrwCZ8cKgRr++tuwibsOVcJx7YdDE24Vz7IJZ/XAyPj4NcyuCH2wg2YdDmxty3j9Li94kFOXR8cdXHJ+nePd6gp9iEJ7dUYlcVeX9tOtuBs09dAoA84/zdrJ/LujAqOQwJoUE42WigQvPDdQPIT9BhYUEchuweOm4HSEaT//n3xfEWOj7/vqSdHsQHa/vpmHzb+W5a5LQZ7PRgruu1wOYi2ASHx0fxKTaXj/47GQYURiphGJFuKzcuBKd5bIKQIzYuLRzby7thcXoxOzeGFqxTsqIwKjkUHUYyHvML0/PiQ7BibBIdq0/hQaNBCileWDICv5b3IDxYIdJpvbV8JL4qboVMwohef3JBLhJCg2ByeHD5yHjaEbp2fAo0ShmNmPCHB+bGhWD72ik41zGEjCgNvaiq5FLsu386TjUbEBGsxNjUgPj9g2tHo6rbBAYMRiT8uVOUv4qc/6VLb3PhnQNkTHCh24zhcSGUdfJNcStt7/9U2kmLnCN1A3Rz7q7qpZu83WCnh3R9r4B14mFpq97h8cHFdxEkDEMdWHIpIwJj5sZpUdJKNq2fawQQoaf/1i+M+J+aFYnRyaHo/C02ISkU14xLwvkOE3JitZjC605CVDK8sGQEdlX2IlqrxE1TUunXemfFKHx7qg2Ki7AJeUiPDIbF6RFhE1aOT0FIkBwdvBbGP5vPT9Th17unoqJzCFkxwZTno5JLceCB6TjdYkCkVolRgnTVT1YXobLLBKmEQZ7gNn7dxFQszI+DzeVDUngQ/d6FSaE49fgs2H4DHQ3TKLDptokXjcoYhsFj83No9g9AnGUAMD8/jmawAETbYnN5kRKhpkUmQMZ33UMOZEQHU4eG//WqbhNSwtWir2WwunCsQY9QNUnO9hcBQ3Y3Np3tAMtyuHxkAhWr2lxefHasGQabG3PzYiluwuX14cPDjTw2IRwreGwCyxLR+olGPVIiNLh/zjB6u95wuh0/lXZAFyTHQ3OzaddlR0UP3tpfD5blcPv0DFpcn2424NHNFUQLk0+wCVIJg8Z+C2788gw6jA7kxoXgq5vGIlqrwpCdYBOaBn4fm1DOj4kenptNC8eHfiynQWzj08JpEb3uSBM9QIOVMpx4bBZ0QXLsq+7DrV+fpb/nH2+fiLGpF2MT7G4f/d3euP4MHV11DzmwbhU57F/aVUOJ5he6TTRP6qfSTqqtK+80kd9tiArn2oeoyL1z0IGV41MwJSsSJocH+2v64fYSV+LZViMtcs7yBb/Ly6KyawhAMn1/+EUNvaYAhVwhDSSwq+QSGiURqlYgKliJbpMT0VoVwngrtVopxZTMSOyv6UNMiAojkwKH3rXjUrD+RAuCFKST41+rJ6agz+yE3e3DSiE2YWwy2o129Aw5MTMnCnH8YT81KxKPzstBZRcB5/qLxzCNAl/fNA57q3sRo1WJhPHf3ToBW3m8zpWCBPbnF4/AlKxIWF1ekUV6+dgk5MRp0TXowOiUMCq6zY7V4tgjM9HQb0VapIYWIEqZFL/ePQUtehv53Qg0L3+7PA8PXDoMUkaMTVhUEI+F+XEkU0jQmc+MDqYdF/9ye1keDhvoynEch36zExqlDCvHp1AnIMdxaB6wQsIwKEwKxZtJI+nrlZ0mmJ3konu/oGt/vmMIbQYbRiaF0lGq//WzreRCNDM7mnblqrpM2F3VizCNAivGJtHnSdOAFd/w3anVE1NoB77DaMd7BxswxF/GhM+yP2L9pcn5D9Tk/HfXsYYBHKjpR6xOhesmptBZdI/JQVknS0YnUo2My+vD3gt9cLh9mDM8RsQoqegcQjePTYgWpKgabW40D5BOhlB17/WxaOexCb/VvFicRFchnI37138ndfW3Ylf/f9fDs05CfmNZr++zXgSQ4zgOlV0mmB1ejEkNE83Hz7Qa0WawY2xqmEj3U9pmRFkb0cLMyI6i37+8Ywi7qnoRrpHj2vEptMCr7TXj21NtkDAMrp+USoukDqMd7x5ooOBJ/6bttzjxj19r0GawYUJGBB68JBsKmQR2txdPba3CmVYj0iOD8dLSfIpNeHpbFbaUkVTfF5aMoBqId/Y34L2DpMi9R4BN+Km0E4//XAGPj8O4tHB8f+sESCQMTjTqceN6gk0I1yiwfe1kJIap0WG0Y97bR2mImd8q7vWxGP/iARrsKEwzvvrjYtpiL0wKxTZ+PPbcLxew/kQrAOJQq/zbXAQppPjhTLsoqNGvhanpMWP+O8fo6/4QOJblkPP0biokXzo6AW8uHwkAWPFJMe3K5cRqsfs+In4UWsWD5FKceWoOgpUykehWJmGwfe0UDI8PQb/FiXlvH4PR5gbDkJvlgnzC4ln+cTHOtJLMmMfn51Ax7geHGvHG3jqwnNgCe7JRj/t+OI8BqwuX5Mbgg5WjIZdK0GNy4L7vz1MA5ttXj0SYhuQAvbKrFkfqB5AQFoTnLs+j78Pt5d34vqQdGqUM983JosVdY7/f1UQOe79Wy+by4suTrVQL439/cByH3VW9pJOTGCo6pJsGrDjZZEC8ToWZ2dH0ELW6vDjeQAj2kzMj6dibuLnMcHh8GJUcKupEGG1uGG0upERoRK97eSxFaJBclMzu/3r/1TOA4ziwHC7Syzg9PpidHkRqlKLD3+ryos1gQ2KYWmQvt7q8KO8YQrRWKRr52VxeHK4bgFzKYIYggd3p8WFnZQ8sTi8uzYsRJVb/XNZF7NqZkVQoy3EcfjzbSTooMVpcNzGF/h62ne/CzkoyVr9nVhZ9ru6r7sPnx5shlTC4a0Ymda6dbjbgxV21sDg9uGZsMm6d5h/9WnD/D+VoM9gwOTMSbywn2AS91YWbvjyDik4TksKD8Pn1YzEsRguvj8W1n55GSasRSpkErwmwCQ9sOk8F4teOT6Z5WcL9kx6pwf4HpkMiYfBLeTfu3ngOABlv7r1vGlIjNajpMWPBu8do8fvW1YVYMioRLq8P+c/upXtXuE8WvXcMVV2kE54XH0K7rcJRv4QBHav/V+svTc7/BUsY0CZccbog+mB2uH34vqQdNrcP80fEUnut28vim1Nt6Bp0YPowwjopSAwNYBM6TMiJ02L1hBSMSQ0Hx3H4qbSTamHunT2MJvXururBFydaoZBKsHZWZgCb0KTHizv9rJNk3D6dsE6qu808NoGkc769YiRUcin6zU5cv/4ManrMSIkg2AS/ff3qj4tR1j4EhVSC164qoALquzaUYWclaWevnpBC581v7K2n7WzhphWKT4XYhMpOE5atK6a/Q3/8udPjw7J1J6mro2vQQS3992w8h/o+Yu2s6DRRLcw7Bxoo0fxATR/dtLsqe7G9nKQ7l3eacEVhAobHh6B5wEYfPB1GB0406nHVmCR4WQ7bz3fD5vbB5nbgaL2eHmJn24z0Z/KHuAHk1u3Ptuk1OeHjOEhAAsWkEgbwke6b//AIUkgRHxqEhn4rwtRyRPK3TKmEwdSsSGwr70aISo5Rglv3stGJ6DDawQG4SnDzXTY6EdXdZhhsbiwqiIOKt6PPGxGH8k4TmvqtGJMahvyEUACkSHl+8QgU81oYv7ZFImGw4dbx2Ha+G7ogOW4U3Lrfv3Y0NpcSV85SQbrzPbOzkBsXggGrC9OHBbKeZmZHY+c9U9E4YMWI+BD6no3WqnDooRmo7jYjITQIyRFEDMowDH5YMxFNA1YEq2T0kAPI+O+GSanwsuKclkmZkSh5cs5F+U5xuqCLYKYeHwuZhMFTi4bjKcHrBqsLCpkElxfGizg+nYN2OD0sMqI0IlZaQx+PTUjSiUaU9X0W1PSQzq6wK9fYb8GJRgPidCrMyY2hBXmr3oat57ugkktx9Zgk2mXtNTmx/mQLHG4fripKom4zg9XFYxOIMeHqsUkI1yhgd3vxwo4aVHURN9Gj83MQGayEj+Xw0s4aYkzQqfDc5Xk0HO7Dw434/BiJmHhsfg7d0z+XdeKZbRdgd3tx7fgACuV4gx53fFsKi8uLvPgQfL9mArQqOZoGrFi27iSG7B5oFFJsXDMBBYmhsLq8mP3GYTpyEmITrv30VACbkB9HdUZ/236BZjq9e6ABZ5+aA4Zh8OXJVuoife9gI7WKn2o24pHNFfT3H66RY8moRJgcHlHgo0IqpWP1l3bVUC2My8PSIueHMx20g/jugQbcMjUNDMOgpGWQJrPvudCLR8w5SIuUwWB1o4ZnHnYYHWgz2EmRw3LoGCTjN5eXpWnsAKjz7Lcfx4UGQS4lXbnkCDUdq6dFahCvU6Hb5ERefAjtyiWGBWF2TgxKWgxIiwqmzweFVII7Z2Zg+3kSMSHs/Dx0aTaFOd82PaBvu3dOFmRSBoM20mn/7xQ4/8r6q8j5//l6/OcKyhv55GgTtXx+eqyZYhM+OtKEE4/NQkJoEI436imHBACitASbYHZ4Rc4UtUJGWScv7Kyh83SW42iR8+PZTlq5rzvchNumEWzC2TaS2QEQsare6kJimBr9Fhca+NfbDCSFN4NX6fsfVG4fS6PWgUDaMiC+9SWEBTZtaqSGbtrsGC0SQgnMtCg5DKG8JiQ5Qo1ZOdEobSOhf4V8K1Upk+De2VnYXt6NcI1CJKJ8YkEuPjvWAomEwe2CTXvfnCzIpQxtv/o37YpxSXB7WbQZbZiQHkFFpiMSdPj6pnGkkxOlwRWF5GEvl0qw+75pOFDbjzC1XJR0+ul1Y6g4cNqwgIX8jhkZmJkTBaPNjVFJYfRWOSGdYBN6zc6LsQn3TYPR5kZIkIw6zhiGwdsrRuH1qwovYhktH5tEx0RA4NY9IkEnOtTdXhYmhxvhGoUoYdnp8aGmx4yYEJWIQOzy+nCq2QCtSoailDA67vL4WBys7YPHx2H6sChawHt9LH6t+H1swq8V3ajvtaAwKRSzc2Po73p3VQ+O1OuRGBaEmyanUb3N4bp+/Hi2ExqlFHfOyKS3/tI2I94/2Ai3jyBP/BgWPzah3+LC3LxYPHwpwSb0mpy474dzqOmxoCBRh7evJtgEu9uLW746i5NNBsSEKPHhyiKqz1m7oQy/VvRAKmHw5IJcqo8QOrVm50TTxOuNJe14/GfSGYvisQkhKjlKWoy4+pNiik344TYyHus3O7HgneP0di3EJlzz6Sn0mALYBL9V/KmtVdhfQ8ZdOyp6UPo00cJ8dbIVX/Ejh73VfZg2LArxoUE43WykovWzbYOYlBGB+flxMNhc+ORYM8ltGrDhl/Ie3H8Jj00o7aSdwh0VPbTIOdM6SMXsR+sDCez9Ficd5XUNOeD0sNCqSCaUv6PAIfCxTMIgNkSFPrMLKrlE1ImelBmJqm4zZBJGpBWZkxuDYw16WJweXMlzr/yvH6rrp1oYv15yVHIobp6SRsC50VrMyiYdM12QHG8uL8TOShL6JzzU160swobTbZBKJLh+UmAE9+zleciJ0/LYhEDo6DXjkhARrCDYhLQIOtLNjtViz33TUNFpQkZUMC1EVXIp9j8wHWXtg4gMVtKASAB46+qRuGsmydnJiAp0sa8Zl4xFBXFweHyIClbS7z0iQYcTj82C2yd2o2pVclHWExDo0P3W7OL/W87IDnQaARJZYHZ4kBqhuUgA/0euv8ZV/4vHVf+dFQje82Ll+BQ6a20esOLZ7RfQNeTAjGHReGJBDmRSCRxuH17dU4uKThOyY7V4fH4OFYFuO9+F3Ty1du2sTGovrukx4/uSdsilElw/KZVamC1ODzad7YTV6cWiwjh6e+Q4Dgdq+tE5aMeEjAiaPQKQVnpVlwmZ0cG0VQ8Q23l5hwmRwQpR25njODTrbZBJGNHoCSCby+H2ITJYcVF73Mdy/6V19J8lNJvsHoAP0hOuPrMTFqcH6ZHBoht9h9GOdh6bIBwRdhjtON8xhNQIDX1AAeQBflBQ2PgLlX6zk7Z1l41OpA/aQZsb60+0YNDuwaKCOOpAcbh9+OBQI8Um3DApFRIJA6+PxbsHG1HcpEdyuAaPL8ihB8DHR5qwuawTuiA5Hl+QS22lm8524M299fBxHO6akYEb+MiBg7V9eOjHCgza3ViQH4f3VoyCREK6ddd9QbJWUiPU2MhjE/RWFy5/7zi6TU4opBJ8vLoIM3OiwXEc5r59lHbGhNgEPzsJEFvFhVbqILmUYhN2VvaInCZ+bEKbwYbprx2mrwv1NnnP7KYju/kjYqkWZuVnp6gWRiiYf2V3LdbxyAaphEHpU3MQqlbgYG0fbvoyoMP5Yc0EjE+PQK/JiZmvH6Yat5eWBhw2C989hgu8oP2GSQF23Eu7aujNV5iHs6+6D/dsPAeHx4eCRB023TYRKrkUHUY7blhfgqYBGzKiNPjyxnFIClfD5fXhgU3lOFzbj7jQILy5vJDqIb4ubiU8O4UUD12aTQ+hsvZBvL2/AXaXF6smpFCxub+T021yYjbfyWEYhnaA/QBM4mAke6CkxcgLnVW4emwSLbAHLC7squqBUibBooJ4qknx+lgcqR+A1eXFjGHRIthoQ58FXUMOFCaGisbkFqcHbTzlW/j5LMuhz+JEiEou0rz4v4+EYS5KZP7t+u+M1/zLx3JoNdgQGiQX4VpYlozPJQwR2vq/HstyONVigNnhxaTMCFEC+4lGA1p5bILQVXiiUc9jE4Ixb0Qs/Vp+bEKYWoEbJqfS51NVl4kWoDdOThWMQC14c189vYz5L3B9Ziee3XYBLXobxqWF48mFuVDJpbC6vHjkp3KUtAwiPUqDN64qRFK4GhzH4aEfK7D1fBdCg+R4WQDLfXV3LdYdIfvkrhmZNOhyYwkJX/WxHAqTQvHzHZP+ZSv/X+OqvxYA4NK8WHr79C+W5ZAeFYxvbhazTvRWF3RBclFmgcfHoq7XgjCNXBT25mM5lLYZIZNIUJCooyMcluVwslFPWCeZkRTmx3EcDtb2od1gx/j0CBp/DpBbdFk7sWsvKggUQyeb9Nhd1YvIYCVumJxKb93n2gfx5clWSBkGN09No5u2oS+waZeOJps2WClD15ADT2+tQqvBhkkZEXhq4XCo5FJYnB48sKmcF88F463lI5EcQZxr9/1wHr9WkO7Na1dejE0ASNfEb5v98kQLnvu1GhxHRNNbeGzCodp+3PzVGYJNUMqw816CTWjR2zD37aPUTv3hSqIJ8fhYzHv7KHVpCOnAt39bijIem7C7qhe/3E1swa/uqaN8sw0l7aj5+zwoZBJsPd9Fi4BdVb0oTNKhKCUcDf1WvMuL1s+0DiIvPgQ3TUmDj+Xw5r56ik34oaSDFjnbzndRUOLmsi5a5JxvH6Ji9hONerh9LFQSKQw2F4w20n3rMTlhdXoBHblls/TWzYmSmON0Qajvs0ImYUSwwlFJYdhX3Qcfy2GMAE8wNSsSOyp7oLe4sCA/YBUfkxqGObnRJBcmKRQ5ceSASAxT4745WThSP4DEMLVo3PXOilEEgMljE/zrxSX5WH+ilST8CthJ987OQoxWiX6LC7NzYyinaFZODL65eRxqeywYkaCjBWesToV9D0zD2dZBJIQFif4dP985CWdaBqFWSkVi9sfn52LF2GQ43D7kCA65S4bHoPTpOTA7vIjWBrQpSeFq7H9gOg0L9R9+Spn0ooA2/932uompIvaT0+ODx8didHIYLaoAkoNjsLqQFK4WJbAbrARamxapESWwG6wunGkdREwIcdX4c3ZMDg9+Ke+GQibB3LwA98zi9ODLEy2wuX1YVBBH052dHh8+O9ZMsAnDIjErJwZZvO7kk6NNKO80ISdGi9umZ2BEgg4cx+Gb4lbsvkBCOh8UYBN+Ke/GZ8eIFubu2Vk0nPRwXT+e/7WajtX9F8EL3Sbc9V0Z2o1Eh7NuVZEIefPb5fayWPLhCVzoNl+ETbjju1LsuUA6Y0KN2Uu7aig2ISGUYBMkEgaby7po51wmYbCXxyaUdwxh5WcB0boQm3D1x8WiYEf/6P7hnyroWKumx0y1MB8faaaXh9MtRtp1PljbT1lsdX0WXD02CSMSdGgz2Ojn660ulLQYkRSuhpclz3YfS5A+Z1qNtMip7bXQzpowwNHm8lI6udXp4d+P/3pe0X9n/VXk/F+0/NgEfzrnx6uLoFaQIuDaT0+hzWD/P2ITXruygM5Yb/qSpLECRJfxGh+x/sLOGnx+PLBpjz9KWCcbStrpGEwmYXDwwRlIjlDjXPsgbhDkOLAchytGJsDq8mLlZwFswpA9gE146Mdyat9u1tuoFuajI83Ubnqm1YiloxMhlTA4WNNHsQnNAzZcNzEVw2K0aDfaqQOltG0QZe2DSI4g2IQj9QNgOUBvdaO0LYBNaOLj1cnXCnzs9rH0Z3V7A9iEkCA5gpUymJ1eRAQHsAmhQXLkxmpR3mlCnE6FZP5BLJMwuLwwHlvPEbHxNAEA8IbJabC6GsBxELnKrp9EHChGmxtLRiVQEeVlhSQTpnnAijGp4XQElxOrxVtXF6K4yYDkcDW1CkslDH6+cxJ+reiBLkguil7/cGURfq3oho/laNAbQHKYilLDYbC6MCUrkt7Sp2ZF4eCDBJuQGxdCu05RWiUOPTQDTQNWxISIsQlf3jgWfWYXghRSUZfs1mnpuGFyKliOE7XMx6dH4NBDMyBcHMchWqsSJSxzHAeTg+g1hK10juPQZrAhSC7FnOExtPDmOA7V3WZ4+FwYITahrH0Q/WYn6YxNDjj4ytoHUdNjRl68TqSVK+8YwrEGErZ3eWE87YjU9JjxE49NWD0hhVp+mwes+PRYC1weH64dn0xHdn1mJ17fU4deM9HC3DApFWqFDGanB89tr8aFbqKF+dvledAFEWzCM9uqcICPmHhpaQEd2b26uxaf8RETTy8cTkePX55owQs7a+DxcaI9vb+6D3duKIPbyyI9SoOtdxFsQm2vGUs/PAm72weFTIKNt05AUUoYTA4PZr95BEO8Y/OZRcPpCO6aT06hmj9wheTyJ7ZU4Rder7b+RCvOPkXG6l+ebMXLu2rpx34tzIkmA17cSV7fgR6kRGpweSEZqz+9LYBNiAxWUrbaW/vrqRZm3eEmWuT8Ut5DnyffnGrDfXOywDAMLnSZ0cpby083G2G0uv+PRQ4HjtrGfSwHpzeQwC7s4IarAx8Pjw+hCeyjU8JowVqQqENWdDDaeOenf5+kR2mwMD+OjtX9AnSVXIonFuTSsbowgf25y/Pw6bFmMAAVMwOkk6kLkmPI4cHikYGx+lVFiWA5Dq160kXyu6by4knX8EyrERlRGjo+l0sl2HP/NBypG0C4RiEaSX28ugineaPAhPRAsOktU9MxJzcGg3Y38uJ1f7gOR7j+KnL+L1rVPQFswplWI0wOD3lQOjx0Lk+YWS4AWnBcwKbMchwVugKgdF8A1CoJENW8f9OOEUD+ilLCkBOrRYfRjkmZkYjUko2eFaPFZYXxKOM3rZ91olFI8di8HOys7EFksBLXjg9oQF5cko8vT7ZCImFwqwCb8Oj8bIRr5LT96m9/XjMuGTKphM93CKd5FHnxOmy+YyLOtpKkztm5ZHOSfIdpONqgR4RGISINf7y6CGdaB8EwEKURr5mWgXl5BJuQEyvEJoSh5Mk5MNoINsG/mcM0CmxbOwVOj09062YYBi8syccLAg2Lf/1WlOry+uDyssiJDRFxz2wuL/otLsTpVLQLBJBbdF3vEBLDgrBkVCK1fltdXuyr7kOISoZxaeG0M+Zw+7DtfBd8LIc5w2OoDdXlJWJ2vdWFOcNj6O/Hx3LYWNJOwZOXF8bTILYfz3bgBA+e9N+6AaLF+OFsB7RKGe6ZnUXb8kfqB/DegQZ4WA63Tk2jhVV5xxCe2EKwCfNGxOLZy/IglTDoMNpxx3elVAvz8aoiRIeoCGPs8xKc7xhCmFqOjwXYBD9wEwAemZeNO2eQDs4z2wJ8M+GY6MuTgUwnXRDBJuiC5DjRqBfdrv0jqh6TA0vXnaQ31gFLAJtw3RclGLDw2IQeMy3KnhVgE4436lHyZACb4B9VHmvQY96IWMTpglDaNojNZeT12l4LFuTH4ZLh5PD48WwHvCyHfosLB2v7aJFzgLeQu70EzOsvcur7rVS07h+fAYCd7+7431s+/nNUMik0ShnsbpL86++kqeQS5MRqcarZiBCVDOkC7cfcvFi06G1QyCS0yACAZaMTaHyF/30GkFyesrZBvpMTRbEJE9MjcPesTJR3mpAbq8UlfOdHp5bj49VFBIDJh4X61+fXj8X3Z9ohl0hEBfzzi/NQlBIGq8uD+SMC2ISrxiQiMSwIHYN2FKWEU3H6P1tKmRS775uK6m4zIjRK0ee/tLQA98zOgoRhRM/LJaMSsaggHh7fxdiEfXyKtnBpVXJRGKP/b6KQSXDL1HSqtQLIeBsMydwRIl7aDXYMOdzIjQuhBSBAxletejvyE3Wiv0FjvxVl7YNIi9SIvla7wY49F3qhC5Lj8pHxtGvVNeTA9yXt4Djg6rFJtIA3WF345GgzNSbMyI5GKjSwOD14cWcNmgasGJcajjtmZPyhRc9fmpz/n2tyhIvjOJxqNqJryIFxqeJN2z3kQG2vGRlRwSJti8vrQ32vFRHBiouwCf1mJ6QSRjR7Bsis2+PjRPk5/8qyurxQyiQiSypANo+EgcjxAhAdj9nhQV68GJvQ0GdBq8GOgkSd6MFS00OwCRlRGjpOAMhm3lvdi3C1AotHBbAJHUY7NvCb9ppxSfT30292Yt2RJgzZSWiW/6Ftdnrw5t56qoW5k9+0fmzCqWYD0qM0+NtledRW+vqeOvxc1okQflzoH819XdyK1/eQILa1szLpISnEJszIjsIX14+FRMLgfMcQVn9+GhanF7EhKvx0x0QkhqnRY3JgwTsBbMKn1xVhVk4MOI7DtNcOUeG4EJtwy1dnsL+GdMCEVPGXdtbgYz82QSrBuWcugUYpw7bzXSJHycZbJ2BiRgTq+yy49K3/GpsgdLkIberpURoKuhTqcBRSCc48NQe6IDmO1BOqOEA6aD/dTojmfWYnZr9xhIofX7+qkGahLFt3kjrT/hk24fLCeLx7DckaOlI/gLs3lMH8G2xC95ADd3xbimq+k/Px6iLEhKjg9pJuyqG6fh6bUECLuJ9KO/FNMdHCPHCJGJvwwaFGuLwsVk1IpqnkJrsHHx5pRC/vavKPjTmOw9bzXajqIo4qP/TV/7WO1A8gTqfC5YXxImzCgdo+KGVSzM6NFmETTrcY4fT4MDFDjE3oHLSjz+xETmyISNvi9PjQZyZ5OML9znEcrC4vguTS/1cHFstycHp9CJKLsQluL4t+ixORwRdjE2p6LIjQKETYF7eXRUmLETIpg7Gp4SJswpH6AZidHkwfFk07LX7rfSt/IfKHMf6f1qHafvxa0YOIYIJN8OvbTjUbsP5ECyQMAU/6v9aFbhNe21MHk8ODpaMTqfC+zWDDY5sr0WawYWJGJF5YQrAJJrsHazeW8R2UYLx/7Wik8ZeH274pxd7qPqgVUrx6ZQG9DDyzrYomJt80OY12wT8/3oLneb5ZdowWO++dCqmEwd4LvVjzDQlZDZJLseveqUiN1KCx34p5bx+lF9x3rxmFywvj4WM5jHxuLxWCr5oQcMFd8cEJ6hITWsWf3lpFLw8AUPP3eQhSSEVCeiAQMfFfrb80Of9hy+tjYff4oBXErQMBtkpMiOr/dVHw310Mw9DD0+9AKWsjgXfLxyTRImZfdR928fkOt00PwApPNOrxxfGAm8j/RjzfMUSxCcvHJmH1hBTIpMSe+ujmCrQb7ZiYEYEXlxBsgsHqwh3fleFc+yAyo7VYt3I0xSbc8tUZHKq7GJvwxJZKCiUUijM/ONRIXWI5sVrsvIdgE3ZX9dJk5CA5uWGlRJB8h4XvBrAJfi2M28ti0XvHKDahtjeATbhrQxkqeLvpsYYBumlf31tHU5y3ne9C3T/mQy6V4NfyHir0O9agx+TMSBSlhKGxP4BNqO21YEpmFK4dnwwfy+GLEy2wu33o5uPt/X+nfdV9MPP6nD0XemmR0zwQwCZUd5vhYVkoJVI43D44+aLB5vJSzY9MIkGwimATVDIJguSBrV+QQBJUlTKJSNQ9PTsap5uJVX1ObkBDNW9ELE42GaC3Ei2MWhEYUV0xMh51vRaMSg5DYRJ532REBeORedm0k+PXwjAMg89vGIOfSjuhVcpErfS3rh6J7063wfsbbMI9s0lMf7+FHPb+sdb0YVH4+c5JqOu1YES8jr5nY0JUOPjgdJzrGEJCaBDtIAGk41LVbYZGIb0YmzAxBW4fK+IMTR8WRbAJXlbELIoPDaIFoHApZBJRQBtADl0JQ1KnhcFzRpsbbi8Zj/lFzwAZU/WZnRgWo6U5RQApvOv7LBgWo+W7cuT1riEHipsINmFyZgT99/aZndhR0QOVXIrLR8bTsbMfm2DjsQn+953N5cVb++rROejA9OwoXF4Yj8QwNdxeFm/vr0dFJwnpvGd2FoWcfni4EXuqehGlVeGJBTnUrv/tqTZ8cbwFcqkED146jGoEd1X24NntF2BzEau4H9Za1j6INV+XQm91YVRyKL66aRxCVCS0c/nHxegxORGuUeDbm8djeHyICJsAAC8sGUE7Edd/UYLiZiIcFyaw/2NHDd2LQmzCxpIOPLGFHLgMA+x/YLoI4Pnb5fT4cOOXQmyClx72T26ppGOwHpOTjtXXn2ilHcQLXWZcOy4ZUgmDow16+rNuLuvEHTPSkRmtRbeJxEqwHOmwVXWZkBapgZflKNvM7iZsrEX8283fJQSAAWvgY4VMQhPY/aNz8jtQIUKjgMHmRnK4GsF8AntUsBKjU8JwptWI1AgNsvl9IpUwuHZCMjaXEpPCvLxAgN+dMzLw4aFGcICok3bTlDQY7W4YrW5cVhhPz7sloxLQY3Kimb8UCuMq/oj1V5Hzb1hCbMKo5FB8c/N4BCtlaDPYcNVHxei3uBCqluPbm8eLHsJ/5jrbRvQ5/hUkJ6wTs9MjSml1+1gqRH56W4B1orcKWCcnWijTpGnAilXjk8EwDI416ult/OeyLtw5IxOZ0cHoHnLiTKsRHM86qe+zUGxCZVcAm9DQZ8U8XuNoEmATTI7Ax1qVjG5arUpGreJxOhUigxXQW91IiVBTh1icToWxFJsQTG/WcimD6yemYuv5LoSpFZgvSGW+Z1YWPjx88aa9Y0YmnB6WAjD9naeloxPQZ3aiWW/D2NQwKiYdkaDDR6tGo6RlEGmRaopNkEoY/HL3FOyu6kWoWo6lowKH30erirDnQi98LIe5gp9p7SwSIma0uTEuLZxqVSZmROD4o7PQbrQjKzqYCmKjtEoceGAGuocciNQqqbaAYRh8sHI0XnZ6oJBJRJoXv737t+6SUclhVPQMkILZ4fYhTC0XYRN8LIeuIQfC1HLcOSOTjoP82ASNUoZJGZE0Bp5lOZS0GOHxsRibGk47K8Rpokef2YlJGZGi4uBwXT/qei0oSAzFxIwIKpQ+2aQnAuPQIFw9NpnqB861D2LTWaKFuWlKGk37re42Y92RJrg8PqyemEI1NR1GAqztMTkxJzcad87IRLBSBoPVhUc3B7AJLy8LYBMe3FRO3URvLA9gE/62/QK+KiZ5Uk8tGk5v8B8eJoU6x4m7WTsqenDP9+fgYzkkhBJQr04tx/mOIVz10Ul4fBxkEoJNKEoJw5DdjUvfPEJdYkJswvKPiym64Gj9wO9iE34404Ey3ir+5clWmqi+uawTBQk6pEZqcKJJT4GsB2v7MTw+hOJWAtgEEzKiNLQj+PnxFlqAfHe6nRY5h+sG0M8fxtvLu/HEglwwDCG2+wnotT0WWJxehKjksLt9VOdjcXpod07CMBSbIJUwovdwVkwwipsNkDAQFStjUsPwc1knrC4vZmZH0/c36d6Eot1AnJ9xv4PWES6VXIqXlubjF14Lc8uUQKH+xvKR+OpkKyQMI0pgf2JBLuJ1Kgw5PLi8MJ52l1aOS4aWxyaMTw+neUJ+bEJZO3lmTeZzdeRSCfY9MB3FTQaEqeWikdQH145GeecQJAyDfMGZsnpCCubmxcDs8CAtMph+78KkUJx6YjasTi90QXI6btep5dh028SLMqAAIowXFt4+liMuybxYUdyFzeWFzeVFaoRaJIA32T3oGnIgJUIt4iL+0euvcdW/YVy16WwHHvmJBEZplTIceHA6okNUqO+zYMkHJ2Bzk4TfDbeOp0LDP3vZ3V48/2sN300JxnOX5yEiWAmO4/Dd6Xaa1PmQwJ1Q0TmEr4vbKOvEr20x2tz4urgVZocXi0fFU3sqy3LYXt6NdqMd49PCRaOhqi4TyjuHkBWtFW1Ok92D4mYDorQKjE4OaHo4jqM6gbz4ENGhq7e6YHV6kRyuFm1Ej4+FzUUekP+VTfT3lpfXIfy23W52emB1ehGnU4l+DqPNja5BB9KiNCKBot7qwoVuM5LD1TTjwv/5R+r7EaKSY0Z2NH3gmOwebK/oBsdxuKwgnlplbS4vNpa0Q291Y25eDG1/u70svjjRgsZ+K8akhIlsvV+ebCUdlAg17pszjHY+fjjTju/PdECrkuOhS4fRv9muyh68vb8BXpbFbdMC2ISSFiMe47EJ80bE4uXfwSbkxGrx1U3jEBOigsnuwZUfnURDvxUahRQf89gEALjqo5M0Ufie2Vn0ASdMYxViEz4+0oSXePGpVinD8UdnQaeWY391H24RFOR+q3jnoB1TXjlEXxfqbUY/v4+6webkRlMtzKrPTuN4I9HCxIQoaZ6UMAkWAE4/MZtANQVUcQD45uZxmJoVhQGLC5NfOUg7aMJCY/47x6jLReiwESZFCy3yu6t6cffGMnh8HFIiCGRTFyRHq96GlZ+dRteQA/E6Fb67dQLSIjVweX2467tzOFBLIJTvrBhFM6vWHW7C58dboJJL8Pj8XMo+O9VswGt76mDjreL+sLx+sxMv765FF6+FuX16BqQSBh4fi0+ONqOyk4SF3jEjgxYVxxv02HOBaGFumJxKLxadg3ZsPdcFhUyCK4uS6GjI5fVhz4U+WJ1ezBkeTSMpAPKs6TA6MCo5VDQmH+CztNKiNKKxtY/leGyCXJSHA5BLkVTCXCQa5jjuImzCn7mqu80YsrsxOkWcwH6+YwiteoJNSBU8Hyo6h3C2dRBpURrMGBZIYK/uNmN3VQ/CNApcPTaJanka+634lh8HrZqQTIuk7iEH3jvYiEEb6aD4//aDNjde3lWLZj0xJtw/ZxgUMjJWf+6XCyhuMiAlQoMXloygHc3nf63G5rJOhAbJ8fziEfQy8PGRJryxtx4sx+GumZnUofZLeTce+rEcLi+Lsalh2HDrBMilEpS2GbHqsxI4PD5EaBTYcufk/1Lz9Nv117jqP2gtH5OE4XEh6Bx0YHRKKN3Mw2K0OPboLAKAjFCLcAp/9lIrZHhp6cXiVoZhRA87juPQ0GeBVMKgIDEUr18VSl8v7xiC2enBmJRwUfhTWfsg2gw2jEoKE8EcS9uM1BUgZJ1Udpqwq6oH4RoFrhmXTFNX6/ssFJuwemIK/fx2gx3vClgnCwviEBmshMHqwgs7SZrouLRwPHjpMISqFXC4fXhmWxVKWo1Ii9TgpaX5iNMRbMLftl/Az2VdCNXI8fwVAWzC+wcb6E32nllZuPt3sAljU8Pw/ZqJkEoYnG424LovSuDysghTy7HtrilIjiDYhPnvHIPV5QXDkM7M3LxYsCyHeW8fpTfZGyen0o7Zbd+epeiCzWVdFJvwxt56fHGCONc+PdaMyr9dCrVChq3nuqgD5afSTmRGB2NMKrGK/52fvwNAvC6IamEIqJXc+HVBcrzH606+Km6lQY2fH2+hRc7xhgE087fxXyq68cxlw6FVydE15KR6nsZ+K/RWF2JCVHD5fPQ2bnP7MGgPBDgKb9pKgYYqPVJDu3JCREd+go7CTMenh9M294gEHSakh6OOD/3L4v+bmBAVbp6ShsO8Fmb+iEAr/e9X5OHbU21QK2S4e1aA3/XsZcPxydFmuLwsVgpEqbdNz4BCJkEPj03wa7tm5UTjo1VFtJPjf9hHaZXYec9UnGjU03Rh//rp9ok4Wj8AlVyKqVmBAMdnFg3HstGJcHh8tOsDkLHg6SfmYMBCIK5+vVlqpAZHHp4Bk8MDnQCboJRJ8dn1Y3731i0EkAKBA35CegQtqgAem+DwIDJYSYswgBTY7UY7EsKCRBZ7m8uLMy16RGmVmJIVSQtZu9uL3VU9kEkkmDYsCmv537XL68PWc12wOD24ZHgsFdJ7fSx+ONOODqMDkzMjaQK7X7Tuj5i4bmIKTQj+pbybXsbWzsqk75mDtX347FgLpBIGd8zIoJ3C0rZBvLizBiaHB1cWJfIJ7ERwe98P59FmsGNSRgTeunrk7yJp/r8s4Vg9JUKNAw9Mh0wqEWMTeJdSWqQGdb0WXPHBCerYfHN5IZaOToTby2LxhydoEd08YKNW8ft+OEfDV0tajNh5Lxmrv3+okUZM7L7Qi9m586CSS7Grqhc/nCXpzmdaB3HpcHJxajfasbGEvN5qsONQ3QBWT0iBj+Ww6UwHLC4vhuwe7Kvuo+/7khYjDZs8xY/cADIm9UdSdA464GM5yKVkj3Mg/ziW4+jHf8b6q8j5N60RCTqMSNCBZTl8e6oNFZ1DyI4NwfUTU2gnY8u5Tuys7OWxCVkisez/1Lp74zn8WtEDQMwheXNfPd7jb7ipEWocfHAGJBIG28u7cc/vbNrfYhP8AjaX14el605QV0e70U6/x90bztED91zHED3s3zsYwCYcrO3D3DyCTdhzoY92As53DGFhfhwKk0LRNGClzpQ2gx3H6vVYPjYJPpbDz+e6YHF5YeFZNv4i53SLkf5MflI5QBwCFJtgdoLlOEh5bII/fZkkBJPPVyukiNWp0NhvRYhKjshgcouVSBjMyI4iehSVHGMEQrsloxLQZrDDx3JYJshyWVaUgOoeEwxWNxYWBHJh5ubF4lzHEJr6rRidEkb1KMNigvH3K/KoFubqcaRgYRgGG26dgC1lhHZ9w6RAK/39a0fjx7Od8PpYLBWMhYjziTCfZmRH01v69GFR2HXvVDT2WzEiQUc7VdFaFQ4/NBMXuk2IDw0S3VC/uXkcmvUEjCm8ja+dlYXrJ6XCx3J0zAaQdNozT86Gj+VEXbVYnQrfrxFjE7w8NuHpRcNFzrJBmxtyPnROaIHvMNrh8vqQGR1MLdMAGbv2mZzIT9TRAxogB2JNjwW5cVrMGxFLC/LGfiuONwwgVqfCJcNj6YHbbrDz2AQJlo8JwAp7TU6sP9ECm9uLq4qSUMgXN4M2N9492ICeIaI5umpMIsI1pFB//tdqVHaakBunxcPzchARrATLcnhldy3toPzt8jwarvnxkSZ8eoxYxR+dn0MLiq3nuvD0tirY3T5cOy6ZHpLHG/S4/dtSWF1eDI8LwQ+3EWxCM49NGLR7EKyUYcOt41GQGEoYeG8eoc7MZy8bjht5W/3Kz07jHJ/ptCA/Fh+uJOOxv22/QA/Qt/cHsAlfFbdRQez7hxpx+KEZSI3UoKTFiId/CmATQtVyLB2dCLPTQ4sDgOw5/yXhhR01VAtjc3nx851+bEI7FZq/vb8ea6amQyJhcKZ1kBYH+6r70GtyUj3RH7WitEqawB6vC6LPivQoDU1gH5EQgjA+yDA+VIVZ2dEoaTEiLUpDi1+FTII7pmdg2/kuhGkUWCJ4PjwyNwcfH20CxwFrBPq2u2ZmguUzbC4vjKddpGVFCTA5PEQLkxZOv8ewGC2+vmkcTrcYkBKuwbKiwFh9571Tsa+6D6FqOe0IAcCHq0bjSN0AWI7D9GEB19wtU9MxOTMSeqsLo5MDHayxqeEofmw2uoYcSI3U/B+t+f9f119Fzr95nWjS46mtYmzC5YVkpn3/DwFsgkoWYJ38J67EsCAopBK4fSzSo4LpoZ4h2LT5iTqaCZEcocac3Gic5bUwfp2KQirB3bOysO18F8I1CiwTsE4eW5CDT4+S8C6hFua+S4ZBLpNgiNfC+A++K4sSYXd70TRgw7i0MBTwh/2IBB2+vHEszrQakRYZjKV8d0kmlWDXvVNxoKYfoWq56Mb/6XVjaA6Q0EJ+2/QMzMiOhtHmxsikAKxwTGo4Tj0+G90mMmP23wQjgpXYc980GKwuhATJRW3qV68sxMtLCy5KVb56bDKuHhvoJvhv3XnxOtGh7vayGHK4EK5WiLpyLi8RIUZrlaKwN5fXh5IWI7QqGUYmhdKHmsfH4kBNAJvgv/H7WOI06bc4MS0rij7UOI7DL+XdqOfBk3OGx9Do+L0Xeil48sZJafTWfbR+AJvOdkCrkuH26RlUH1HaNoj3DjbA7WVx3cRUQdFgwd+2V6PXTDooj8wlidz9Zifu33QeNXzY3lvLCxERrITT48Nt35TiSP0AYkKUeP/a0dTif9/357D1fDdkEgZPLsylB7HQRTUzOwrrbyRWcSFQVIhNONtqxHI+cE2ITTBYXVjw7jF6uxYmKV/z6SlBbEMAm/D0tiqa0bSjogfnnrkUANHC+EdXuy/0YlJmBBLD1DjVYqD5UyWtRoxPj8CC/DiYHB58fKQJLEdu9dvPdyNnHvlb/HC2g3bTfinvpkXO6RYjDZs8VNdP3zcDVifVuXSbAtgElgO1wftYjn4slTCI06nQY3JCKZOI6Nrj0yJQ3jEEmUQicsrMyonB0Xo9zA6PyAk2Jzcah2r70TFox5TMSMSFkgteYVIobpqcRgCY0cGYxedVhajkeP2qQmqQEB7qH6wcje9OtUMqIeBc/3pq0XBkRgdjyO7BooJ42u1aMTYJkcFKtBvtGJca/ocXOADp5s8fEQuby4eYkAA2IS9eh+OPzoTHx4mcoVqVnGI8/Muvjbv/kmEiSrjdTf5m04ZFiXK1BiwumJ0EmyAUwPeanGg32jEsJljU3esacqC8YwgpEWrR1+ozO3Ggph+6IDkuzYuhmUdGmxvfFLfBx3JYPCqBaq3MTg8+O0Cs4vNGxNKRqdPjwzv7G9DQT4wJN0xKvQju/GesvzQ5/2YLudPjw2t76lDeMYTsWC0eE2ATtp4j1NroEDG19n9ycRyHpgEbpBJGpCcByC3JP1P9LTHcy3IXWcB/u3wsB8nvYBPMTg8YgP5e/Kvf4oTZ4UVapEYUAd45yGMTYkNEm6Zz0I7yDhNSItQiQXfXkAMHavoQyguMKTbB4sTm0i6wHIcrixJpJ83k8ODLE60w2lyYnx9HN60fm9DIgydvnJwGKY9N+OBQE0406ZESrsZj83Oozf6jI03YXEqs4k8syKX8op9KO/HWvnp4WRZ3zsikD+djDQN4YFM59FYX5o+IxbsrRkEmlYiwCSkRanzPYxMMVhcuf/8EuoYcUMgk+HhVAJsw/51jqO0lnTEhNuGu78qwo5J060Ylh1JB+bsHGvDmvnoAJPvk9BPErv1bbII/F6bDaMfUVwNaGOFhP+LZPfQAnZcXS4WvQi1MvE6Fk4/PBkA6hf5UZoYBSp6YQ4IEa/tFbpYNt47HpAxyU5z26iE6gvvbZcNpWJ8Qm3D9xBSa2Pvyrlp8xEfOT82KpAngey/04p7vz8HpYZEXH4Kfbp+EIAXBJlz/RQma9TakR2rw1U0Em+DxsXjkpwrsq+5DTIgSr19VSPVSX51sxZcnW6GSS/HI3GwaKnnOj03gc2GE2IS39zegx+TAjOxorORF/CzL4dvTbajoJKF/109MocV9adsgDtQQHc6Kccm0kO63OLGzogcKGXFU+W/LHh+Lw3UDsLm8mJEdJeqaNfZb0DXkREGCTrSXzE4P2vR2JIYFiV7nOMKV06pkF2ETPDw24V+N6weIns/sJJ0jYffOx3JoN9qhC5KLAvZYlkNFlwkShow3hVq+0y1GmB0eTMyIoM8UjuNQ3GRAq8GOMalhVF8IENH6GR5dsDA/7t+m2bG7vXj4pwqcbjYgNUKD168qpDlTj26uwJZzXdAFkQuNP1H47f1kn3AAbpuWgcfmE7H+xpJ2PLmlEixHggW33DkZUgmDk416XL++BB4fB61Khu1rpyAtUoM2A0lg97tLP7h2NBYWxIFlOYx9YT9ljAm7+dd+eooaTnJitdh93zQApFvnd64xDHDhublQK2TYXNqJBwX8Q//e/X+7/tLk/IculVwqaqN7fSwa+y3QBZFsFv/DzseSdFWZhBFtWpblUNxsgMnhweTMyIv4SX/0YhiGtt4b+ix4fW8dhuweLBudiOVjk6BRytA95MAz26rQarBjYnoEZZ1YnB48/GMFBU++uXwkZZ08uKkcW893QRckxyvLCugt4OVdtfj4KDl47piegUd4bMJ3p9vw9Naqizbtobp+3PzlGequ2nH3VCRHqNHKYxNc/wU2QZghcee3ZTjLt7N3VfXg17vJTPvNvXUUSvj1qTZUP0fyHbYJsAm7L/RiZFIoxqSGo3HAirf2k+KgpMWInLgQ3DwlDSzL4e399fRB8sOZdlrkbD3XRW/8m8520CLnXPsQtYMea9DD5WUhk0owaHdTbAJhZnkRpyOAQi/LBziy4gDH6BAVanuJvkoozhyVHIp91X3wsqxIBD4xIwJp5zToMzsxNy8WGkWg1TwnNwZ1fWYUJoYilw+Ziw8Nwj2zs6iraYlAj/XW1SPxw5l2BCtlWDsroOl4aWk+vjjRApeXxTWC7tWdMzIQrpajx+zErOxo2iWYmRONr24aR7Uw/odkZLASe++fhpIWI+J0QaJ01c13TMKZViPUCil1XwHAY/NzsGJsEpxeH4ZFBw65S/NicfapS2B2eBAbohJhEw48OB1ODwuVPBDgKJdK8NbVIyFc/lv39ZNSRd0Ep8cHL8thVHIYvhJiE+we6G0uJIer6fgIILflpgErUiM0IvzCIB+fH6tToSgljL6PTHYPtpd3QyEl2AR/oWd1efF1cStsLh8W8oGB/p/ns2PNpEDNisKc4THIjNaSWIPjLTjXMYRh0cFYMz0d+YkEm7DhdDt2VfUgKliJBy4dRkWpv5R349NjzZAwDO6dnUULuqP1A/jHDoJNWDE2GffOIeO/6m4z1m4sQ7uBBIR+uHI0gpUy9JuduPaz02jstyJaq8SXN47D8PgQeHwsln54EpVdJsgkDF5eVkCddnd+V0ZRBEtGJdC/x8u7ayn/S4hN2HKuCw9sCmAT9tw/DRlRwbjQbcK1nwaCHZ0enwjK+2eurkEHdlb2gOOT1k+3GGi0xr5q0mnVW1043Wygf7/qbjONw7jQbaJfy+H20ddtLi/FJgQppFDJpfD4vAhWyqgmLkQlR1a0FpVdJkRrlTSBXSJhsLAgDpvOdkAXJKcaHICErPaanPCynOi9ee34ZLQZbDDY3FgowK3MGxGLat5NOyo5TDSi/zPXX0XO/+Bye1lc8cEJ1PQQ1slLS/OxnN9Q/rwYQIxNeHFnDT4TYBP8m/bfsT452kz5K2fbBrF0NBkVHajpo6Fxjf1WrJyQjJzYELQb7fTB42ea+Fknh3lswqDdg9K2QVrkNPYHWCcNAoSCy8PSTetw++imDeFvkBanF2FqBVR89oMuSI7sWC0qOk2ICVGKsAmLRyZgy7kuhKrlmJ4d2LSrJ6ZgyEE4KkKdysoJKegYdMBgdWFRQTz9HpcVxqNpwIqmARuKUsLo+Cc7Ros3ripEcTOPTeCZRxIJg5/vmIxfK7qhC5LjGoHA9YNrR2N7OUkXvkyQarx2ZiYKk0IxYHFhSmYkvS1PzozEoYdmoFlvQ25sAJsQGUywCY39VsSGqGg3kGEYfHXjWHSbnNAopKLb+y1T03HDpFSwHEQt87Gp4RdhEwAywhESiDmOg8nugVopxQOXDKNuKY7j0GG0QyWX4pLhMfTBzHEc6vsscHp8yIvXiVhp5R1D6P0dbML5jiHU9JDAu+nDougI0Y9NiNMF4QpB/ktdrwU/lXYgSC7FKoElvN1gx6fHmmF3+7BiXBIdafWZnXhtTx0BaeZE46bJqQhWymBxeogWpsuM3Dgtnr2MYBO8PhZ/+6UKB2r6EROiwotL8mmi8Bt76/DpsWYoZVI8uSCXirc3nG7H3365ALeXFbmrRNiESA223DUZuiC52H0pwCaYnR7MeuMwBnk7tVALc82nAWzCJcNj6HjsyS2V2HaeYBM+P95CsQlfF7dSPMJXxW049NAMpEVqcLrFIBathwZhWVEizE4vzZEBgFC1gl4S3jnQgEZ+z6470kSLnG3nuyl4df3JFtwzm1Cwq7pMNJKiuEkPg9XFI1A86DASu/uA1YU+ixPDEQKW42Bxkn+zl+Vg4zuDABAeLMAmCDo82TFaqOQSOD0sRiaF0rF6XrwOmdHBaDPYRNiE1AgNrhgZT7QwkRqaG/TvWFkxWvx0+0SUtAwiJUJNYyxkUgn23DcNh+sGEKqW05EdQC5vxc0G+FhO1BW5aUoaZudGY9DuwfC4ENoNG5UchlOPz8aAxYW4UBU1AYRpFNi+djLsbhLAKDxT/n7FCNq9Ea7LCuNFzyofy8HjYzEsRktHvwB5Xg9YXIjRKUUXfLvbi+oOM+J0qj9Vf/ovFzlHjx7Fa6+9htLSUvT09GDLli1YvHgx/f9vuOEGfPXVV6L/Zu7cudi9ezf930ajEXfffTd++eUXSCQSLFu2DO+88w6CgwOz0IqKCtx11104c+YMoqKicPfdd+ORRx4Rfd0ff/wRTz/9NFpbW5GVlYVXXnkFCxYs+Ff/Sf9jiwMHlyfAOnELWCfC+Xak4OMRCTqoFVLY3QSb8O8qcADg4XnZCNcoMGT34IqRgQTVa8YlQyJhePhmOBU+5sXr8NPtE3GmlbR+L+UPOblUgr33T8PR+gGE/YbP9NGqIpTw2TrCrsJNU9Io6yRXsGmLUsJR8sQcGGzE1eMfPYVpFNh212Q4PD6oZIFNyzAMnl88QnRb9i8hgBQg7XaXl2xaITbB7vZiwOJCrE5FA8wAcluu6xxCnI4cCH7Bns3lxcHaPl5gHIbh8aQ75ccmeHwcLhkeQwGHLq8Pm850YMDqwpzcADaB5d0NdX3ETXRZQRwNYttc2omjDQNICA3CHTMyRJbwH852QKOU4d7ZWbQtf6xhAO/sb4Dbx+LGyakU8VDROYSntlah30ys4k8vGg6phEHnoB13fleGmh4zChJDsW7VaERrxdiEULUcH60qouO8W746iwO1/WAYMrry27j/sSPAN5uUEYENt04AQEY7z24n3KFQtRxHHpoJnVqOk0160e1aSPYWYhP6LS6qMVj9+WnqXLvQbab6hud+uYADPMfsYG0f1cJ8d6qNitmPN+oxf0Qs4kMJNsEf+FjTY8alw4nYeNDuwcaSDvhYDj0mJ/bXBLAJey/0welh4fSQVF1/kVPXa6Z73J8ICwBOr4/GFdjcXrD8v0chlSBIIYONP3j8xbVSJsGwGC1OtxihVcqQKkgonzciFm0GG+QyCWYLDsPFoxJQ3W2GzeXFyglCbEI8ytqG0Dlkx5TMKCSFESH4mJRw3DMrE+c6SMyDP6NJF0T+xruqei7CJnx23Rj8cLYDMglDCesAwSaMSg6FxenFgvwANfuqMYmIDw0iWpi0MJoknhmtxaGHZqCqy4T0qGDaSSbYhGm40G1GZLBClMz+4pJ83DMrCxIGojH/0tEBbIJwnJYdq8X+38EmaJQyUdYTQLo5Mgnzp/GVmgesKGsfQmqEGmNSw6mGqc1go9iEK0Ym0PdR95AD35/pAMdxWD4miRbwBqsLHx9t5o0JsZiVE4OUCPL8eW1PLRr6rRiVFIY7Z2bQXLKXd9XiZJMeKREaPL0wl/7u3j/YQCMmnl6YS7V1G0634/W9dfD6WNw1M5DAfrC2D/d9fx5mpxczs6Pw6XVjIJNKcKHbhFWfncag3YOYECV+vG0SkiPUGLC4sPDdY+i3uCCTMFi3qohegv7o9S8XOTabDYWFhbjpppuwdOnS3/2cefPmYf369fR/K5Xi3IKVK1eip6cH+/btg8fjwY033og1a9Zgw4YNAMis7dJLL8WcOXPw0UcfobKyEjfddBNCQ0OxZs0aAMDJkydxzTXX4KWXXsKiRYuwYcMGLF68GGVlZRgx4uID7D9x+Tdtba8ZYWpxHPmrVxbigUuyIZFAlB+xeFQCFhXEwctyIhHrv2NFa1U04Eu4ZFKJiHXS0GdBWfsgUiMINsGf/dM8YMW+6j6EqRWi1NUOox3fnyHYhBVjk+mG6rc48fGRZgzaiStgRnY0kiPUMDs9eGFHNZoGbBiTGoa7ZmbSNNZ//FqNk00GpESo8exlebTD8ea+eprO+cxlw+lB/E1xK17dUweW5bB2VhY9JHdX9eDBTeWwuX2YmR2Fz64fC6mEQTmPTTDzOTk/3k6wCf0WJxa8cwx6qxsSBljHW8U5jsOCd4/RIDYhNuHujWW0A5afoKMBe2/ta6BakXcONKDs6UsQrJRhR2UPHtkccJpEBSsxMSMCrQa7aNatURKSNsdxeOjHchoOx3Ecdbl8crSZjube3FdPi5y9F/pouvN3p9tw/5xh0KnlaBqw0ddL2wbRbrAjWquCw+2j0NIhuwedgw76c/ht4xwHmB2BW7fwsNGqAh+T0EbSlRsWo6WJrKkRGuQn6FDdY8aI+BB6uEUEK7B8TCIO1Q4gLlQluuE+PDcb35xqg0ouFfF8HriUZIHY3D6RVfzmqenwsBx6hhyYlRtDs1mmD4vCG1cVorLLhOHxIbRQj9IqsfXOyThc149YnUoUlbDptonYV9MHpUwienA/e1ke5o2Ig83lxaTMQIdgUUE8RieHocfkRG6clorWUyM1OP7oTPSYnIgJUdLXlTIpvl8zAWYnwSYIu2/3zM7CPbMDbjD/mpkdLWJFcRwHl5dFfGgQ1UcBpLvcYbQjSqvEA7xmy/96ZacJ4cEKkavM62NR3ETC9sakhuNRfrzs9bHYX93HYxOiRJEUey70os1gw7i0CGo5B8ie80dMXFkUSGA/Uj+AX/mwvTXT0ulorrTNSIvlW6am01HkhW4TXt1dhyGHB8tGJ+C6ialQyCToHLTj8Z8r0aInERP/WDwCaoUMJocH92w8R8fq710TwCbc+V0ZdlX1QqOQ4hUBNuGPWs0DVsx9+yh1bPqp4izLYdG7xyk2obzThBd5nt1dG8qoc+1ATT+1ir9zoIGiHDaXdVJswq6qXko6P1w3gHFp4ZiYEYHmARt9zlR0mjAqKRQ3TUkDx3H4+GgzP9J3YHNZF30m777QS3Omdlb20CKnpsdCk9nPdwzB7SNjdYfbB5uLPH8sTi+cXvKxVMLQ961EwkAm/fMu6/9ykTN//nzMnz////g5SqUSsbGxv/v/1dTUYPfu3Thz5gzGjCGt1Pfeew8LFizA66+/jvj4eHz33Xdwu9344osvoFAokJeXh/Pnz+PNN9+kRc4777yDefPm4eGHHwYAPP/889i3bx/ef/99fPTRR7/7vV0uF1yuQMS12Wz+3c/7dy6FTEJv3Seb9PjieCukEuLi8W/aqi4TXt1TB5PdjaWjE3H9pFQRNsGf7/Di0vx/e+Hz29XYb8X8d45RLYh/03p8LBa9dzyAIugxU2zC2g1lKOcP0CP1AWzCm3vr8f0ZYjfdcq4Ldc/Ph0ImwY6KHqqROd6ox9SsSBSlhKNFb6OjvOoeM8ankZGHj+XwGT+i6BpyYNv5blrk7K/pp/qcvdW9tMhp6LPS4qCyixCppRLSQfOzlixOL9X8yCQSaJQy6K1uKGQSOodmGAbD40LQZrBDIZMgQ5D/MjOHWES9LEcPTwC4NC8GxxoGeLFxHNT815qcGYnLCwk2YWRSKHWPpYSr8eSCXKKFCQuiGASGYfDpdWPwY2kngpUykQPl9asK8e2pNri9rEhzcM/sLCSHq3lsQgx06oBVfPMdk1Dba8aIeB21PEeHqHDgoek43z6EhLAgCvcEyGFf0WWCRiGjydIA8MAlw3DtuGS4vD46RgSAGdnRKHv6Ejh+gz+JDw3CL3dPuSh5WS6V4KWlYmyCy+uDhGFw1Zgk0b9ryE6wCXnxYmxCv8WJfrMLmdHB9IAGyG25rteCzOhgUVeux0SwCTEhKkzKiKB2/X6zE79W9EAhk+DykfFUKzJoc+Pz4y2wu71YPDKATbC7vXj3QAM6B4kW5rLCeMSHBsHtZfHWvnpUdA4hJy4E987OogfuR0easLuKREw8Pj+ATfi+pB2f8C7E+y8ZhgW8TX3PhV78bfsFWJwEm/AEX1yf7xjCmq/Pot/iQlFKGNbfOPYibEKYWo5v+AR2l5dgE5oHbGAY4B+LA9iEW74+SxEFCwviaKKtEJsQrVXi9BMEm7DpbAd1rjEMsO/+aciM1qK0bRC3fxsQs8skEiwrSoTT46NMMoB0S/3w2ie3VFEhfZvBTp8bX51spc7I6m4TruUBvScbDRR+2jnYhZunpCEvXocekwPHGsj4vKrLjIrOIaTxWhi/5dzm9qGmx/yHFzkRGiVGJYWhpNWI5HA17bRKJAxWTUzBj2c7EaqWY4HA+XnbtAx8cKgRHDgxNmFyGgbtHjpW9+dJLSqIQ4fRjoZ+C0Ynh9EOeXasFh+uHE06OeEaSi5nGAbb7pqMHRU9CAmS0/c+AKxbORo7K3vActxFKIcxKWEYsLowMT2CFuRjUsNx7NGZaNHbkBUdTA0Y4RoFDjw4He0GUlALx+d/9PpTNDmHDx9GdHQ0wsLCMGvWLPzjH/9ARATZ3MXFxQgNDaUFDgDMmTMHEokEp0+fxpIlS1BcXIxp06ZBoQj8w+fOnYtXXnkFg4ODCAsLQ3FxMR544AHR9507dy62bt36T3+ul156Cc8999wf+4/9A9fTW6tovkOf2UVZJ1+ebMVRftPW9FiwakIKpBIGx4XYhHNduHNmBk25/J9aUVolxqaGU9Gcf3Qlk5CQwS3nuhCmlotiv9fOyuI3LXDH9MBBvGZaOqwuL8Um+Cv/JaMS0G928QDMMMo6yY7V4uPVRShu4rUw/INYKmGwfe0U7K7qge63m3bVaOy90EcKjbwYwc+UiYkZEdBb3ZiYHoAVTsyIwLFHZqHNYMOwGC11moRrFNh3/3R0DtoREawUCcLXrSqCyeGBUiYRFaErx6eIOmD+NTo5jD6wAXL7dXoINsEPiwTIiLNz0I4wtQK3Tkun7CeW5VDdbYZGKcWkzEh6C2NZDqVtRj59NJy6qziOw/EGgk2YmBFB2+IA4ZVVd5uRlxCCSRmR9BZ9qtmAI/UDiA8NwtVjkqimimATOhAkl+GmKam0UK/tNWPd4SY4PT6snpBKb/AdRjv+saMavWYXZudEY+3MTISo5Biyu/H4z5Wo6jYhNzYELy8rQLhGAbeXxcM/leNADemgvHFVIS24/NgEuVSCpxbmUjHkx0ea8MruWrCc+CDeVdmDtRsvxiZUdZmwdN1JuL0spBIGG2+dgHFp4TDZPbjkzaPUJSZMM1752WmqITtY20/Hm09traLOtY0lYmyC37m26WwnzRg62aSnIZSH6gYwPC4ElxXGw+zw0sBHgGRT+UelX5xooUGN355qo0XOwZp+mmGz5VwXHp+fA4Zh0DxgFYzyTDA7PAhRyeH0+CgyxcpH8QMAAwYKflQjYRjIJYHOUVqkBofrBsAwQJpgfDQ2NRxb+NC/WTkBbMLY1HAUJoWindfC+HOScuO0WDE2iXZy/CNslVyKF5fkY3t5FyI0Stw8JaDTemVZAdafaAHDMLhJoN96fH4uYnVBMNnduFwwVr+yKBEKmQTNehvGpYbTgjwnNgRb75qMsrZBpEcF06BGmVSCffdPx4kmPcLUCpGY/Y9aOrUcm26fCB/LXeRCe3RejqjwZlkSmSfspAFk7G11eZESoaahngAp7LuGHEiN0Igs50N2N6q6zEgMC8KC/Dj6fjE7PThQ0w+NUoYpmZE0ANXq8uL7knZ4WA4L8+Po5cHp8eGb4lb0W8hY3Z9o7/Wx+Px4Cxr6yGXs6rFJiAlRgeNIRtzR+gEkhqlx7+wsETPuz1p/eJEzb948LF26FGlpaWhqasITTzyB+fPno7i4GFKpFL29vYiOjhb9NzKZDOHh4ejtJSLV3t5epKWliT4nJiaG/n9hYWHo7e2lrwk/x/81fm89/vjjosLIbDYjKenfo5z/76y3rh6JL0+2UmyCfz25IBcJoUEwOTy4TMA6uXZcMrQqGa+FifgfL3AAMrPfuGbCRbduhmHwxIJcepsEiOYFgEiUChAujc3lQ1qkBu8LWCeDNjcNj/I7NACCTajqMiE5XC3ipgza3NhVNYAQlVyUumpxerCxpB1eftP6Rw12txefH2+B3urC3LxYOmbz+Fh8dqwZDX1WjEwOxYqxSYjVqcCyHD4/3kLD9u6fM4zern8824EfznQgWCXDg5dk0xv/ngu9BJvgY7FmWjp9YJxpNeKRnwg2YW5eLF69kmATWvU23PjlGbTobciJ1WL9jWMRpwsSYRPUCik+Xl1EZ/MrPj1FdU1CbMKjmytoKKIQm/DpsWYqPg1WynCCxyYIyd4AsOGW8ZiUGYmuIQeu+fQUFYibHR5qFb/lq7PUbtpmsFEtzAs7augt+lz7EEqeJMLXH0s7qZi9vGOIPhDLO02UqdRhdGDFuEHMyomByeHBrspeuH0sGvutKG420CLHz0Nze1mcbx/CdXykUI/JSUXr3UOBcRrDMJAwgA+A4NyGLkiOaK0SnYMORAYraEBbkEKKCenh2F/Tj8hgpSiW4OqxSfjkaDMUMgmuGBm47a+akIJukwN2l4/elAHgytGJaOizonPQjmlZUbSjNSUzEo/OyyGdnNgQWnjr1HJ8c/M47K7qRbRWhRunpNKv9dVN4/BzWRfkUkaUM/X3xXmYlBkBi9OLS4bH0P24dHQi0qOC0WG0Y1RyKHVHZcVocfSRmWjosyItUkNHvQqZBL/ePQXNPDZBOD5/9rI83Ds7CwzDiAr7hQVxWJAfexE2IT0qmIZ6+peP5aBWyERZLhzHYcDiglohxbXjk3EtP1rkOIJvYEAydN4W6Gfqei0YtJP8KiELqaJzCC36ixPYq7pMONtqRGqkBtOHRdGOem2vGTv5LsaKccm0CPgzl/+Z/tLOGvzA50k9d3kepdB/erQZr+2tA8djE/wJ8zsre/DApvNweliMSw3Hd7eOvwibEK5RYMudk5ASwTsl3z6KIbsHDEMMDwvy48BxZDzWzgu+hVbxtRvKaLduw+l27OLHY+8eaMCHh8m468PDTSh76hLo1HLsqOyhwY7fn+lAcrgakzIj0WqwizLiIoIVovTsP2v94UXOihUr6Mf5+fkoKChARkYGDh8+jNmzZ//R3+5fWkql8iJ90H/SKkgMpY4LjiMQQ5PDg6KUMFElXtY+iFa9DaOSw0RC2f+k5X+gPvfLBWwu7USoWoHnF4+gItp1h5vw5r46sBxw14wMOv/fcq4Tj/5UCbePbNqNayZAKmFwttWIVZ+fhtPDIlyjwFaeddI5aMe8t4/R2/VHq4owb0QszYXpNZObrBCbcNeGc7QztvF0O51pv7G3ns74Pz3ajPJnL4VGKcOOih78Y0cNABKwlhKhxqSMSDQOWOlmBkhK6ZppGRQX4R93BStltFj78kQr5Rd9crSZFjnHG/QUYrijshvPXj4cISo5uoYc9PWGfiv6zC7E6YLg9rG0mHB4AuBCgMBG6ceCAyYlQk2xCcLMoxEJOkRplRiwuDBBgE3IjdViYnoE0cIkhNBbV7RWiRsnCbEJgVvl84tH4JviNqgVUpE25JlFw/HRkWa4vD5R9+q2aelQyiToMTkwOyeGuiymZUXi49VFqOoyYXhcCNWTRGmV2HnvFBxv0CNWFyQa8/14+0QcrddDKZdgamZA6/HsZcOxdHQCHG4fRqcELOTzRsSimHeapEdpqNMkKVyNww/NwKDdg1C1nIrZFTIJPrt+7O/mO90yNV2k/eE4DixHOn/+3CGAjNPMDi8ig5Ui27nN5UWbgWAThAFtdrcXJ5v0iApWYmpWFC1knR4f9lzohVzKYGpWFD0sXF4ftpzrpIWN//ngYzn8VNqJNoMNE9MjMCkzEiOTCDbh57JOlLaRsL1VE1LoSG1nZQ8FT949KyBaP1TXjy+Okw7KHdMz6Of7sQlDdjeWFSXizhmZPDbBigc3nUcrP1Z/Y3kh1AoZBm1u3PzVGZS1k/HQJ6uLkBWjBctyuO6LEhxv1BOS+9J8qt975KdAoX7NuGQagvnh4UYKCBViE3ZU9OCuDWX077f73qlIjwpGQ58Fl79/nBa/fmyCj+Ww+IMTNOahsd96EUn+z1ocx2HT2Q4M2T0Um+Avck41G6ho/WSjAfeROwK6hxz0Z20z2uD1EWwCgN9FJShlEkQFKzFk90CjkCGUL+AZhsGE9HC0G+0IkktpwQcQzVhNjxleH0eDVP2vn2k1ot/iwry8WKqvm5EdjWvGJfFj9TC651Ij1Hj+ijwcqdcjMSxIpIn7M9efbiFPT09HZGQkGhsbMXv2bMTGxqK/v1/0OV6vF0ajkep4YmNj0dfXJ/oc///+rz7nn2mB/rett/Y30DC0tEgNDjww/XexCbvvm/qnJHT+Ecv/YLU4vTA7vThY00eLnNK238cm9JtdlIHSbXKI2rgMLhanqRUyxOlUaOi3QhckR5SWjI8YhsHUrEj8VEb0KMJ8lMsK4lDfa4GXJVZe/1oyKgFVXSborS4szI+Dmj/sZ+ZE45pxySTfISmUfq2s6GA8v3gETjbqkRSuxopxgZn2N7eMx5ayLgSrZLhxcir9Hu9eMwqbznbA6+OwrCjwve+ZnYWcWC36LS5MHxaFED60bHJmJHbdOxX1fRZqewXIYX/ooRkEm6D7DTbhpvFoGrBCrZQhQQA3XDsrC6snEmyC0GY7KSMSZ56cc1HLPDpEhY1rJoh+3ywf8vjMZcNFidyDNjdkUkbU/gZI8KLTQ7AJbywPYBNa9Tb0mp3Iiw8R3eYa+iyo6bUgN1Yr6so1D1hxvFGPmBAVLsmNoV3LDqMd2853QSWX4sqiRNrG7zM78eXJVthdXiwrSqQPbZPDg/cP1qJz0IHpw6JwNZ9263D78PdfqlHZRTooj87PQZSWYBNe31OH3Tw24dnL8qi+6LNjzfj0WDPkUgkenZdD7bRbz3Xh6a1VsLm9uGZcMtWQnG42YM03pTA5PMiJ1eKHNROhU4uxCRqFFN/dOgEjk0Lh9Pgw540j6P4n2AS/XkSMTaimnKK39zeglMcmbChpx9P8Lfq9g43Y/wDRwpxpHaR5MQAJ4PRrYYSBjwDov+OFHTXUKm5xemgRt+lMB/2Z3j3QgNumEajnmVYj1dztudCLh0zZyIgKxoDVRcXsLXobGvutpMjhOLQaSGHv9rLoEojZhblPfkcaQKIT/NiEmBAVxSakRqoRr1Oh2+REblwIfd/H6lSYPiwKJS2kk+PvBkolDO6elUUDO4XE+z97MQyDX++Zir0XehGiEmMTPlg5Gofr+uFjgZk5ATfqLVPT6Vi9KCWMXlCKUkgCe+egGJsQqlZg933T0G9xIjRIQT8fIGaX5xePgEwiET0HrixKvOj3wHEchseH4MfbA9wzH0uiJLQqmUgr5+Gz4CI0SqyemEpdpF4fi9K2QWiUUipr+DPWn17kdHZ2wmAwIC6O/MEmTpyIoaEhlJaWoqiIbMyDBw+CZVmMHz+efs6TTz4Jj8cDuZw87Pft24fs7GyEhYXRzzlw4ADuu+8++r327duHiRPFLJv/rStep6KbNjlcTfMdMqOCkRQehA6jAwWJOkRo/nM7U1IJg133TsX+apIuLDz8Plg5Gsfq9fBx3EXYhOnZUTBa3RiVHEZ1OGNSw1H8+Cw6Y/Y7dMI1ZNMabC7oguQi+ONrVxXipaX5PEsqsGl/K0r137pHJOjoCAcgm9PkcCPsd7AJDX0WRGmVWD0hBat554jby6KkhYTOCYshj4/Fobp+eLys6NZNsAk96DO7MDUrknKNOI7Dzsoe1PZaUJiow+zcADZhf3UfxSbcMCmVZmOcaNRjY0k7guRS3D4jg3ZdzrUP4v2DjXB5WVw3MYVqZ5oGrHjul2r0mhyYnRuDhy7NhlTCoN/sxH0/nEc1H7b31tUjEcljE+78rgyH6voRG6LCu9eMohkzD24qx+ayTkglDB6Zm00dF0KC96ycaKpT2XKukyJMIoOV2Hf/NIRpFBdhE75fQ6jiRpsb8985RkXewiTlFZ8EsAmnmo00v+eZbVV0DLatvBvneav4t6faqNNkV1UvxqdH0FwYP/z0TOsgJqRHYGFBHMxODz483AiWI7f6ree7qE5iY0k7+sxE27L1XBctcs60Gqkr5nDdAB3d9ltcVPPSNeSAw+ODDnJwAO0osBzgD6GXMAxi+ANaIZNQ0SYAjEkNw7n2QUglDNWkAQSPcLR+AGYncRb53/czhkVhSmYk2oykk+MfURUk6nDDpFScax9EhgCboJJL8c6KkfilvAcRGgXuFBSi710zCt+eavsdbEIuwSY43FiYHxirrxibhAiNAu1GO8amhlOkx7AYLXbfNxXnO0xIj9LQ/SLjIyZK2wYRplaIxoJvLi/EHTMyIGFAvw5AsAlz82JhcxHXoxCbcOKxWXB5WZEeTquSi7JchOuumZn/ljHK762E0CBayBptbnx7qg0eH4cloxIwjxcfW5wefHCoEXor6aD4tTAurw/vH2xAfZ8Vo5JDcf3EVIxIUIBlOaw73IRjDcSY8PDcHKqF+uZUG74vISGdj8zLoZq7X8q78freOri9LG6Zmk61UCcb9XhgUzkG+O/9zoqRkEklaOy34vovSvjnsxrf3jIeiWFqmBweLP7gBFr0NiikEnywcjSVJlz5UTHO81EKd8zIEOmP/sj1Lxc5VqsVjY2N9H+3tLTg/PnzCA8PR3h4OJ577jksW7YMsbGxaGpqwiOPPILMzEzMnTsXAJCbm4t58+bh1ltvxUcffQSPx4O1a9dixYoViI8nD4lrr70Wzz33HG6++WY8+uijqKqqwjvvvIO33nqLft97770X06dPxxtvvIGFCxfi+++/x9mzZ/HJJ5/8f/2d/EesFeOSsbAgDg6PD1HBAdbJ8PgQHHtkFgER/km5DX/kSgxT01A3vdWFzaWdYDlg2egEzOHf7IS/0wyDjWSz+A9up8eHN/fWoXHAiqKUcNw4KRWh8Qr4WA7vH2zA8UbiCnhkXjbVCaw/0YLvS8hM+7H5OVRXs+VcJ97YWw8fy+GOGRlUlHqsYQD3/1AOg82FucNj8f61BJtQ00OwCQMWF1Ij1NjIYxMGbW5c8cEJtBvtImwCACxbR9JYAeC26el4fD7RH93/w3kKORViEz481Ig3BNiEU4/PRqhagT0X+kS36I23TsDEDIJNuOXrs/R1H8vRh/HaDWU0HM5oc1MtzJv76qkWpmnASouc7ee76ciuod+KGyelIjpEheoeM41qP9agR32fBZHBSlhdXpxqNoDjiMalstNEi5xmvZX+PK28VR4A3L7ArdvFW0cBonnxB7RFaBTUPhoTokJapAZNAzakRmoQx2tCtCoZ5o2Ixb7qPsSGqKgzDgBunZqG9SdboZJJcc24QOF6+/QM2N0+2H9jFfentHYNOTAtKxKpEeSwn5YVhecXj0BFB3E1zeW1MKFqBX68fSL2VvchWquiwY7+v4vQUeVfREsRDavLi+nDoujevawwHrlxWnQMOlCQoKNFS0ZUMI4/OhNtBoJN8DtNFDIJfr5jEnpMTmhVMhHm5PH5uXjwkmwwDET4lNm5MZidK9YqchyHpHBy8PgXy3IwOQg2we9y9P8NmwesNJvFP+5iWQ6VnSYwDJAXH0K7OhzH4WyrEYN2Dyakh1PxO8dxONmoR4uBBGVeKjAanG42UI7cgvxY2pUrax/EjooehGsUWC0IcKzuNmM9X4DeMDmVCobbDDa8ua8eRpsblxXGY/mYJOiC5Oi3OPG37RfQ1G/D2LQwPLVwOFRyKRxuHx7dXIHiZgNSI9R47coANuGJLZXYXNoFnVqOl5bk02fT/+S6e2MZTjSSvbj1XBf23E+wCW/uq6d8s69OtqLyb3OhUcqws7IHr+8lz5Pt5d3IjtHyWhgbXtktEK1HanDnDBIx8equWlqQf3WylRY5P5d10tiLjSXttMg52zZIJQBH6geIE1Iqgd7qQo+JXDa6hhwYtHmQGEbeBw5+bO9lWdFzwN9VYxgg9E9M7v+X2VWHDx/GzJkzL3r9+uuvx7p167B48WKcO3cOQ0NDiI+Px6WXXornn39eJBI2Go1Yu3atKAzw3Xff/adhgJGRkbj77rvx6KOPir7njz/+iKeeeoqGAb766qv/Uhjg/wS76v/mddVHJ3GmlbSzRySEUGzCP2OdCEGJANFcjE0NR12vBXPfPkpff2phLm6Zmg6O45D/t71Un7N4ZDwVJgoZSblxIVQ89/7BBvpg0KpkKH58NhHfNuqx+vPTYDkyx96+dgqyY7XQW11Y8A4JsZJKGHy4cjQdqdzy1Vnsr+mDhAGeWJBLNRqfHWvGK7tr4WU53Dw5DU/xqZ+lbUY8/GMF+sxOXJoXi9euLIBMKsGAxYXHNleglreKv7g0H7ogOXwsh3f21+Nw/QDidUF4alEuvZEfquvHxtPtUCukuHNmJtVPtBlsWH+iFS6vDyvGJtO2vNPjw4bT7eg1OzEzO1qU7HqsYQA1PcQqPkmgbekw2nGq2YD40CBMyoigh7e/g6WSS1CUEibqmjUPWOHw+JAbGyISoFpdXgza3IgPDRK1xv35LUqZRPR1/rvL6fHB42Mv4p6ZnR4YrG4khgWJioIhuxtNAzakRKhFqIshuxunW4yI0ioxKimU/ixmpwf7LvRBJmUwNy+Wdgfsbi/vJvJi/ohYmuXj8vrw3al2dAzaMTUrkmosWJbDN6faKHjy1mnpUMqkBJtQ0o5dlcQq/sAlw2h+1o6KHnxyrBkyCYO1szKpTulkkx5//6UaZocHV45JoqLb6m4z1m4oQ5uRaGHWrSoi2ASLE6s/K0FdnwUxIUqsvyGATVjy4QlUdV2cwH7nd6XYWXkxNkHYrYvTqXDskZmQSSWibp1UwmDPfdOQGR2M6m4zFrx7jP6eX7uyAFeNSYLby2L4M7vpOGrl+MCYT8geEzKSnthSiQ2n2+nXqn1+HlTy/4e9v4yO68zS9+GruMTMbMm2zMzsOHaYmZk5HU66w+nuMDOzg44TMzPIKFmymFkqqZjPeT+cqkdVUXqmZ/7dnczv9V5r1jjVtrDOOfvZ+77vSzPovvHTLbMYmx1PdaeV418cuG88feYYLpqWi1+SmfzkWnFICEW9/J718+G2AM9O5vq5hUJ8XdVp5ekVFcq9aEwGN84rRKVSYXf7eH5NVQCbEM+tC4ei16qRZZkfDrSytVrRwlw/r1Csr460mfnxQCsxRh2XTM8TjYfZ6WXZwVY8PonTxmWKkEBJktlc1U2X1cXsoSlh6/D6HjvVnVZGZMSGZb45PD4qO6ykxRpF9hEo13pLn5MIvSbs2vtn6599fh8DdB5rcv5jtexgK6+sr0aSlfFk8AZa02XlmRVH6bF7OGVMBtfMKUClUmFz+3hpbZUyyclN4Mb5hWg1ykX73f5WoYW5ft4QkctQ0W5h2cE2YoxaLpmWJ3JezA4vPx4cwCYEE6UlSWZbTQ/dVjezipKFowQU3Uhdj40RGbFivAuKSLQ6gE0I/fuyLNNhcWHUagbRdT0+CUn+3wU4yrKMza0Ev4VO72RZprXfiVEXfpOQZZnqLhtOj5/RWXFhTURZq5l2s4vJeQlhX+PB5n7K2yyMzIwVeIrg399c1U16rJHTxmeKBqG608q3+1swajVcMj1P/Dybeh28s7UWh9vP+VNyxCi9y+ri+dVVtJmdLCxO5YqZ+eJ3/NQv5QI8+cgpI0VD9/jyI6w+0klqrIGnzhgjHGovrq0KYBPUPHDSCPE++mJ3E4/+dASPXwprcDce7eKGz/bhDmITbppFXKSO6k4rZ76xA5vbh0Gr5osANsHh8THnbxuFsPuBE4vFCu6UV7dS1joYm3DPN4eEIDYuQsfBPx+v5BRtqeOpFRXi57nh7nkMSYlmZ20vF767S7z+3LnjOGdSNhaXl7GPrhGvhwrmj39hs7CpT8lPEHqIB74/zJd7lDypKL2G0keXoFar+KakmXu+VcIjdRoV6+6aR15SFDVdVk5+ZZtY/31wxWQWFqfh8UkseWmLELo/dtoosY4KbSiumJkvpj/LDrZy33eHcXklFo1I5d3LJqNSqajutHLT5/tpDKSgv37xRGKNOuxuH/d/X8qe+l4KkqN49pxx4oH4zpZafjygCJ0fOKlYTGz21Jt4d2sdsqxM7kLfU29tqsNkd3PquEwxwfL5Jb4uaaau286U/ASx5gEoaTCxu95EXlIkJ40egG92WlxsquwiLkLPohGpf8gpeTAVP1RHA0pj321VEt9DgyGDzUVGXETYfcrl9bO73kS0QWG5BRt4t8/PxqNduH0SC4pThS7Q65f4+XAbnRY384enCP2MLMv8eLCVinYro7PiOHVshvhYPx9uY1OlksB+3dwhQl6w4WgnX+xuIkKv5ZYFRWH5Wf/TOtbk/BN1rMn5fcvnl/D4JdGgBMvh8dFlUbAJoU2B3e2jstNK5q8uWntglRJj1DElf+CidXn9AbCdxKKRaWEX7fJDykW7oHjgopUkmW/2NVPZYWNcThynjcsUH+vHA62KFiY+ghvmD5yEVh/pUKziBi23LiwSWpgdNT28tK4at1/iqln5Yuxf3mbhoR9L6TS7OG5EGn85dSRajZLGeuNnCjZhTHYcb18yidRYIw6Pj8s/2MPehj7iI3W8cdFEMV259pMS1pZ3olLBvUuKhSvnyZ/LRSji9CGJfHWdojP6dGcDjywbjE349QM3lOw9/en14nR91/HDhGNq+tPrxdj6uOJUsR675uO9IsU5PlIntDChVHGA7fcvJCs+YpBN/a1LJnLC6Az6HR6mPLVOiNNvW1gkHHhLXtxCZacSAnfi6HQR7hc6ESxMiWL93fMB5YZ765cHkGVFsL3q9jkkRRto6LFzzls76LF5iDVq+eLa6YzOisPrl7jyw71sq+kh2qDlhfPGiXXLy+uUNGqtRsX9JxYLp9iWqm6e+Lkci8vLBVNyhRuytd/JYz8dobnPyZyhydyzZDg6jRqPT+LVDdWBSU4Mdy8eJqZPq490sLK0nZQANiG41qrvsfPV3iY0KhUXT88Tp2iHx8f3+1sxO72cODpdGBGCpO0mk0LaDo2YaO13UtpipjAlKiyrxO3zc6TNQlJUODYBFCePWqUKu/aC/8btk8T19T8tt88/SOwK0G11I8tyGKYBlIliv8NLcUZM2FSusddOXY+dkRmxYSyk2m4b+xv7yE+OEivW4MdZfaSD2Agdp43L/N2DVP+rCsUmzBuWwnuXT0YXWKtf/N5uTHYP6bFGll4/g9ykyP9y4hx6/YQ20bd+eYDlhxS+Wei0+8W1VSK7Sa9Rs+chZa2+5kgH1326T3yNH181lXnDUhTY6983itfvPn6YyNyZ8PgaMTELvW/8b+oYhfxY/aFrfUUnd3x9EGvgon3/coV1criln0veU7AJ6bEKNiEnUWGdnPTKVroDF+2bF09kcQCbcPIrW4UW5No5BSIk7dYvD7C2XBGfhmITXt1QIx64L66tYu9Di0S+Q+iYOyXGwMzCZBp77dzx9UHxulGnFpk7dy89JNZjHp8kIvLf3FwrXGN/X1Upmpy15Z0ikv2LPU3cvmgoydEG6nvsQs9zoKmfJpOD1FgFmxBMde13eKnvtYsmp8emiF5leQChAIStakKzS3ISB7AJQ1OjB7AJyZGMy47jSJuFUZmxwl4eH6HjvCk5rCvvJCMuHJtw1+JhfLyjgQidJiyg7a7jhyvYBLdfjNcBrp5VgNvnp73fxYLigTH33KHJPHvOWMpalUnO4pHKjTg+Us+ym2ezsbKLlBgDZ4REJXx9/XTWlCvYhNBQyT+fMpITRivi09D12yljMxmfE0+H2UVxRqxoUPOTo9h6ryJmz4gzitOmTqPm06unYg1Mz0IfpLcvGioAk6E1d1gKa0NYSJIUwCbEGXnnsoHgU69forXfSVKUXoQxBl8/0mYmIVIf5irz+SV21PSgUqmYWpAodF5+SWbD0U4sTh9zf4VNWFXWQUOvnWkFiUoYZOBzrK/oZE+9gi44Z1IOWaOV38G26h6WH2ojIUrPtXMKhAB4X6OJ97YGsQkFgqlU0W7h2dWV9Dk8nDUhi0tn5GPQamjrd/LA96XU9diYmp/EE2eMIlKvQE5v+/IAu+oUJ9OrF46nKDUGWZa55csD/HK4nWiDlr+dPVY4ip76pVwIxC+ZnsuTZyirq4+21/PociW2YVhaNCtum4NWo2ZzVTdXfrgHSYYInYblt86mKDWaum4bJ/wDbMLJr2wNQxEEsQl/xKrssImv9XBLPx6fhE6jxu72CWip2enF4VX+jkalEk1bKEIBYFh6DJWdVnQaFUNCXJkzhiSxvqITj08KM4MsLE5lbXknXVYXx49MF/eXqQWJnDpOsZePyYpjQm48oIin7z1huJjkhIaLvn7xRL7a00ykXiOmo//uOtbkHKvfpao6bQKnUNpqDmOdBHMfbG6fsJNr1CqBStCqVRhCsAmjsuJo6HVg0KoZGnJanTcshV21vXglieNGDDygjytOZX1FJ50WN0tGpREdyHeYXZTM6eMVbMK47HjGBWzHOQmRPHBisZjkhF60b10yiaUlSujfDXMHLtpnzxnHp7sa8PgksU4BuGlBIRnxRjrMLuYPTxFrpjlDU/j+ppkcbbcyOitWWJ6Tog1suHs++xr7yIw3huVXfHP9DA619BOp11IcMva9fdFQLpyag8srkZM4sGabPzyVfQ8fj9PjJzZiAJuQERfBsltmD/odaTVqnj5zTNjN3+uXUKG4WUK/L7PTi9vnZ2RmrLAzg4I76LS4GZoWLR7QAB1mF0c7LBSmRIe53drNTnbUKNiEWUVJAnrZbXXzy+E2dFo1pwVEpqBoZz7c3oDD4+P08ZlClOzw+Hh5XTXNfQ7mDkvhtHGZZCdE4vVLvLahmgNN/QxNi+H244ZSlBqNLCvojxWBCcr9J44Qzd7Skmbe3lyrYBMWDRMuuLXlnQFsgpcLp+YKJlkoNmFCbjwfXTmVuAgd7WYn5761k5Y+J/GROj65aipjs+Px+CROfmUr1V22/xKbEGoVf+qXCuEGS40xsOuB4wIrqhbBN1OpYM0dcxmaFkNpi5mrPx4QrQOcP0VBa1z6we6BYEeXV/y+H/7xiMh0auh1iJP9R9sb2BCAnJa2mLkwgE3YVt0jcArNphaunJXP6Kw4Oi1utlT34JdkKtotHGw2U5Qag1+S2RsIrbS5fZS1mUWTE0xkBoSDDUCnVYusp9DmMylKT0Kknl67h7RYg8hsSYo2MDE3QayoQrEJF03L45uSZuIidJww6o8dPXLDvCFMzk+g2+pmWkGiaMgn5yey9d6F1PXYGJoaI9bGCVF61t41l2aTg+TocGzCqxdO4InTR6HXqsOm6BdNy+XCqTmDAhzH5cSLLLFgef0S8ZH6sIRlSZLpsrqINeq4aX6RAPLKskxVpxWjVsPMwuQwWvp/oo6tq46tq36XkmWFC9NtdTNtSFJYbkunxUVjr4OhqdFhuhGPT6LJ5CAl2iC0NsGyuLzoNepBI+fg2/u/E7F6fFLYaQeU03KnxUV8pC7sZiBJMlVdViJ1WnKTBgR2siyzv6kPl1fBJgQ/nizL7KzrVbAJQ8J1PztqA9iEzLiw6YPAJsQZOW9KjrDGH2ru5+uSZiJ0Gq6aXSAmIlWdVl7fWIPT4+fCablClNrS5+DpFRW0m10sHJ7KzQuKUKtVmB1eHvyxVJmgpMfy9FljwrAJ68o7SY8z8ty545gQONk/8XM5H26vF9iEYN7Fh9vrefKXCvySzAmj0sU0KxSbkBlnZMXtc4iP1FPeZuHMN7bj9klo1So+v2Ya04YkYXZ6mfXXDWIydv+JxYLNs/jFzVR1KnqUUDv6zV/s55eAcy0hUieo4m9uqg1zlAS1ML8mmj9/7jjOnpSN2ell3GMDWphrZg8IxEM/94whSSI76L5vD/N1iaKFSY7Ws/chJZPmxwOtYvJn1ClogJzESOq6bZz66jbsHj8atYqPr5zK7KHJeHwSp766jcpOK2qVIogNZi498XM572+rR6WCm+cX8aclyvTnl8PtPPD9YaxuH+dMzObZc5UMovoeO3ctPUhjr4PpQxJ59pxxRBm0uLx+HlteHtDCRPPkGaPF+/Dz3Y0sO9hGYqSePy0ZLrKYSlvMopG6alaB0ESZ7B4+3F4fAOdmCRaSJCkajfoeO1PyEwWaARSB677GPnITI8McZ/0OD9tqFGzCjCFJ4uEqSTKHW81Issz47Piwh26XxUW/00thSnTYisvjk+h3ekiKMgxafUmSHPYxfqtkWR70gP89y+X1s7SkmS6Lm+NGpIrr0C/JfLG7kfJ2K2Oz4zh/cg5qtQpZlvlqbzObK5WIidsWDhX3yZ8OtfH5LiWk845Fw4QBYWNlFy+sqcLjk7hqdj7nT1Hed4db+rn3W8UUsWhEGk+fNQadRk1Tr4OrPt5LTZctLIHd7vZxwTu7KG01E23Q8vrFE8U06IoP94hG/eYFhdyz5F9jFT+2rjpWf+hSqVSDsAmVHVYm5CZwQQjr5NOdDSIhM3jqBvhuX4vAJty5aJi4Aa8r7+T5tVV4fH6unj1ErEz2NSrYhGA651/PVrAJjb12rvpoL7Xdv8ImOL2c99ZOKjutROk1vBWCTbjk/d3CZn37cUOF/uKhH8uEODPUKv7e1nohPo02aNl23wLiI/Vsre7m0vcHYxPa+p1c8M6ARsbi8gmr+NUfl4g1VX2PXTzs/7byKOsDp+u9DSbxsP+mpEW4Yg409XPO5Gwy4iI41NIvmoPGXgfnTMpm0cg0LC4vK8s68Pgkarvt7KoziZvrrrpeJBncPiXEK9jktPUroY2AiIUH5WERxCZoNCoR5hhj1JIcbaC130lClF6cMiN0GqYPSWJdRScpMQbGhuSjnDc5h7e31KHXKJOcYF08LZeWPid2ty/MKn72xCyqu6y09DmZU5Qs9CVT8xO5/8RiDjT1MSwtRkwO4iJ0fHxVEJtgCMOqfHTlVL7f34JGrebcyQOhaI+dPorphYlYXT4Wj0wXD+4zJmQxJCWKxl4HE/MSRCM6JCWazfcuoLLDSl5SpHDG6bVqfrltNjXdNhIi9WF6kkdOGcltxw1FpSJM8xLEJkgyYQ/0goCwOrT8kiJ4D816kmWZXpubCL1mEEOtKbD6HZMdF5bKfLTDgsnuYWJuQtiq7UibmbpuO2Oz40QyMSii9b0BbML8YSlCSFzVaeWXwwpH7rwpOQJ62dBj57NdjUgyXDw9VwjgO8wuXt1Qjcnu4eSxGZwyVnH7mJ1e/rbqKDWdNibkKSiH1Bgjbp+fx5ZXsL2mh/ykKB4/Y7T4Hfxt1VG+3qtETDx66igR//DBtnr+vvookqTk5IRiY36venVDNa9vVLAJb26uZd/Di4QWJqit+3KP4mqbPzyVxl6Fsh6shEidWKv/ZVmZ0MJoNWohmP9oe4NYk7+2sUY0OVuqusWafNnBNu4/sZikaAMtfQ4RBFnVaaXd7CIjLgK3T6KlT3nf2Nw+OgN6PYDQMcrvMVI51uQcq9+9VpQOYBO+2ddCXlIkswKsk+DFDIpG5uYFSr7Dn5eVCWxChF4joIuf7moUI/a3t9SKJmdrdY+Any4/3MbDARdPS59TvF7VaaUjcNF6fBJdVuVCtXv8mOwDmpfQoVDon/MSI9GoVfglmSHJA3EIo7JiSY420GNzM7VgAJswPC2GaQWJCjYhM46iNOXfpMYoIMKNlV1kxoVjEx49bSSf7WokQqfh1oUDgWUPnjyCpGg9Do+fC0OyXK6bOwSdRkVbYJITdInNGZrMW5dMpLTVzMiMOLHOS442sOK2OWyv6SE9TkkXDtbS62ewpapbwSYMHTilP3jSCE4dl4nN7RM5GwBLRqWz64Hj6La5KUgOxyZsvmc+JruH+Ei9mHgp2ITJvwkr/C1sgiwrac3Lbh4Yf3t8ElaXl+Rog0CkgLK+ajY5yYg3hpGbnR4/u+p6SY7WM29Yijh9BrEJGpUqjHvm9vlZdrAVi8vHohGpnDlBeaj7JZkfDrTQ0KO4iWYWJjM2W8EmfLevhX1NfRSlRHPpjDxmBTRVq8raWX5IyYW5ZWGREMBvqerm3a11gEKcDsJMDzQFsQlezpqYzY3zC9GoFMHtXUsPUR8ATz533jiiDQo24aqP93KgqZ+8pEjeuXQyw9MVLczlH+5lS1X3IGzC/d8d5qu9ynTqomm5YnUVOhnLTYxk/d3z0GnUrC3v5NpAdpNeo+bn22YzLC2Gmq5wbELQPSZJMqe/th2nV7l2qzqtAptw+1cHRDLyjtoeYRV/fWMNnwcODyvLOlhYnEqkXsu68k5xqNjTYGLB8FSmD0miqdfBJzsbAajttjO3vJPLZ+Yrk449TfQ5vJjsHlYf6RBNzvaaHrEm31Ld/Ydock4Zm8ne+j66rC6WjEoXTe7soclcODWXinYLY7PjxCQtLymSx08fJSY5F4U0rh9cMYVv9rUQpdeIsEGA588bx1d7mvD4pLAG9YZ5heQmRdFpdjFnWLIQv88sSmbFbXOo7LQwMiNOuKMSo/Rs/NN8DrWYyYgzirUgwEdXTqGq00aEThM2+f5P1bF11bF11e9eFpeXv608SlWAWnv34uEYdQOZIZsrB6i1wfHrvsY+vtvfQoxBy1WzC8Tpt9fmZmlJS+CizRL2VJ9fYtWRDroCNshQFEZ5m4WqTisjM2PDLk6zw0tZm3LRhv59SZIFGDM0DwKUNFKfXx5kIZdlGb8k/7fW1N/iIgW/Fo1GJUSzwWo3K+ya/KTIsH9T32On3exkdFZc2ASgtttGRbuF4vSYMLdNQ4+drTU9pMUYWDQiTYzsW/oc/HigFb1WzTmTcsRascvi4uOdDdjdfs6ZlC1SaRVsQjXNJidzh6Vw4dQcVCoVLq+f59dUcqjFzIj0GO45oZhogxZJknlpXRWrjii5MH8+ZQCb8MG2et7eUotWrebuxcPETXjZwSA2wc+FU3OEKHVvg4lrPymh3+FlREYsX107nbhIHQ09ds5+cwe9dg/RBi2fXzONcQFswnHPbxaJyaHYhAve2cmuOkUvsmhEKu9drkzMHvqhVDxwE6P0Apvw2a7GMPjg2jsVLUxJg4lz3topXg/mwri8foofWSVeD20oTnx5q2jUQ/OkQhsQg1ZN+eMnoFGr+G5fC3d/o2TSqFSw8vY5FKfHUt1p5aRXtgrR7ZsXT+TEMRn4/BLznt0kvu87Fw0TD/U7vjrAjwcVh81ZE7NEo/hNSTMP/lCK1y8ztSCRr66djlqt4miHhas/KqG138nIjFg+uXoqydEGrC4vd3x1kN31JvKTI3n5ggkiofi1DdV8s6+F+AgdD508UjykN1V28eamWmTgujlDRCBfW7+TV9ZX02PzcOq4DCHi9/olPthWT3WXjYm5CeK9FvxYO2t7yU2K5PzJOeK6a+lzsPpIJ7FGLaeGOKpcXj8bjnbhl2QWFqcKzcsfqfySrBDjI3RhhwCvX6LZ5CApKnyN7/NLlLaaiTJow+5rfklx3bm8fmYVJYtDlyzLbKrqpr3fxczCJIGKkWWZ9RVdHGlTGHahYZNbq7tZX9FFRpyRy2bki4+1t8EkEtivnTMkDDvzr6pjFvJ/oo41OX/Mcvv8NPYq2pvQZsHrlzjUrAhtR2TEiBuazy+xo1YB2M0emixuXJIks7aiky6LElxVEHLRri3vFOiC0It2XXknm6oU8OSVMwvERbujtke4Aq6bO0Q0PYea+3l1Qw1un5/LZuSLyPLabhuP/nSEDrOLhSNSuXdJMRq1ih6bm7uWHuJIwE30wvnjSI0xCmzChqNdpMUaePXCieLmH9R+aNQq7jthONcFBM4vr6vmxXVKkGGoTiVUE5IcrWfNnfOUB3JjH+e9vVM0UkFsQp/dw4y/rhcn2VBswsLnNlEXyE2ZOyyFT65SovBv+HQfq44oa7BQq/jrG2t4dnWl+HkGtTC/toq/dtEEThmbidnhZcITa8SJPzQpOvRhP2doMp9erST2hjYamXFGtt+/EJVKxfJDilUclLXg2rvmkhEXQW23jTNf347F5cOoU/P5NUoejtcvcW4gWl6vUfPsuWPFA/T5NZW8sakWtUpxjAXt+evKO/nzsjIsLh/nTc4RoXFNvQ7u//5wQAuTxFNnjsao0+Dy+vn7qkoxyXn45BHiPf3jgVYBwLx90VCxvqrutPLJzkZUKoUGHWxGLS4vX+5uot/p5eQxGaKxDL6f63vsTM5PDJum1XbbONjUz5CUKLF2BCV2YW+DicQoPWOy4sS1JMsylZ1WVKgYlhYd1jhbXF7sbsX1GPq6LMu4vBJG3X8d4BjEW/y6nB4/MvKgKIl+hwez00tOQuQgTU6jSdHshQpquywuDjT3k5MQKQTroIjW11d0Em3Usnhkupgc9tk9fH+gFZ9f4owJWWFrwt+r9jaYuPPrg3RaXBw/Mo2Xzp+AXqtgEy57fzdtZhd5SZF8dvU0chIjsbi8nPn6dmq77ei1al6/aACbcNYb29kfcHKGYhNCM51Cm+j3ttaJibpRp2brvQsVRl5lF1d+uFd8jZ9cNZW5w1LosriY+vR68fptxw0VQZSTn1xLj02Zfi8YnvIPERr/X+qYJudY/Z+sPruH017fRrPJiV6r5q1LJoqU2HPe3CHG2aEPw7u/OcSywOkzVAvz5uZa8cA16tTsvP84EqL0bKzsCst3+PTqqcwZmkJL36+wCX5Z5Dvc8sUBsbLqsrpFQ/HcmkqBTajqtIobzPJDbeL1mm4bV81Spk2VHVaBU9hWo4iOU4cbRdYPKG6SslazaHKqupTduBK5bxdfX3DkD8o6JlhxkToidBqcXr8AF4KyBstLiqSu205uYiTpgZt6tFHL8SPTWVveQXqskWkFA1kiV88p4L2t9eg16jDNy7Vzh2Bz+7B7fGGog4um5tJpcdEayIUJNpZzipJ5/PRRHGo2MyIjRrhZ4iJ1LL0+iE0whNnOP716Kj8fakOrUQsuFCghdfOHp2Jze5k/LDUMmzA8PYaWPgdjsuKF06QwJZpt9y+kvttOTmKkmEbpNAo2oc3sJDZCFzbxunvxcEULA2HTt0Uj034z8j83KZIvrh2AmcqyjNXlJVKvDUvPlSSZxl47MUYdZ0zI4owA1VmWZcpaFWzCyIxYnjhjtHi9pMGEye5hemFSmO12Z20vDb12JuaGYxP2NpjYU2+iIDmKE0eniwnKweZ+lh9qIy5Cx+Uz8pkfEKcf7bDw0fYGZBkun5kvGoRQbMIpYzM4f0ousUYd3VY3jy4/Qm2XjakFiTx40ggi9Ao24cEfStlR20NeUhR/P3usOME/8mMZX+9tJjZCy5NnjBYBfa+ur+al9dVIssx1c4YIh9oPB1q499vDeP0yY7Li+O7Gmei1anbV9XLZ+3vw+CViDFqW3TKLISnRtPU7Of6FzWKFHbSKy7LMqa9uE5lOF0zJEeuxW788IFLQv98/gE34PaukoY+WAJB049Fu7G4feq2eXpubzoDjrK3fSb/DS06i8n4KCvW9finsnhCMj1CpEG4zUNBAuoMKF3FciFtzQm4CuYmRtJsVeG1shPJvxmbFcVxxKuXtikEi2FwnRxu47bihrK9QIiZCCeV/PWssn+1W1uq3hKzVf4861uQcqz9USbKS6gnKQ90bwj9KiTECZtQqSA4Bk47JimNFaTs+SQ5L650+JJGC5Cg6zMqpKGgVH5cdz6IRqYqrKSuO0QFBZEacIm7eVKlMcs4MIZQ/f+44Pt/dSIRey80LBh40T54xmve31ePyhmthbphXSFyEjg6ziwXFqeKUOKsomc+unqZoYTJjhQYkKdrAmjvnsrvOREacMcxp9dV109lTb8Kg1TA55JR+/4nFnBMgRgcBngALhqdS8vAi+hweMuIGsAk5iZGsv2seTq+fCJ1GNAc6jTrMChpavxalun1+fH6ZSXkJYSwkq0vROWTGR/D46aPF6/0ODzVdNvKSohReWIB/anZ42dvQTXKMgUl5CUKEbnV5+eFAC1q1muNHpgnumcPj47NdjQKbEGwmvX6JT3Y20NjrYMaQJBaNTGNYWgySJPPxjgb2NSrYhOvmDRGOkm9Kmll+WAFPhmITVpa28+7WOtQqFTf/BjbB7PRyzqRsIbo92mHhli8O0NhrZ0ZhMm9cPJFog5Zuq5tL39/N0Q4r6bFGPrhiCiMzY5EkmXPe2sH+pn40ahVPnjFavGdu/fKA4JuFYhNeXFctMp3SY41svW8BOo2aZQdbuf2rg4ASqbAqgE042mHh3JD12N/PHst5U3LwSzLnvbVTRDI0mxzCkfWnbw6JFOdDLf1CC/POljpxeNha3cPp47Mw6jRsONopROtHO6ycNTGb8TnxtPY7+OFAK6A06ttrewQbatWRDjx+iR6bh+01vaLJOdJmEaL1sjZzyPvJJ679fqcHKbBwiNBpMOjUePwSUQatmMpEGbQMSYmmtNVMYpReCI1VKhUnj83g892NRBt0YY6v86fk0NbvxCtJXDJj4D3+e9b1c4dQnB5Dh8XF7KJkMfWbNiSJ9XfNozrgagq+Z+MjFS1MRbuFtFijmAaCosNpNjkx6tWC7Qdw5awCLpyaiySHT88m5SWw5d7ByKakaENYaJ8syzg8PgxaDXcdP0xMb0Bxxuo06kGHgYYeO3aPj+L02EF6u393HVtXHVtX/eHK4fFR3WkjPc4YNkKWZZk2s4sInSbMcg7Kw1eSGBR5/s+UctH6Meo0gzhKrf3KRCn0JgEKisLpkRiZGX7RlrdZ6LA4GZ+TEPY1Hm5RsAkjMmLFwxaUYLVNld2kxxk4dWymmBpUd1r5dl8LBp2GS6blitTXZpOD97bWYff4OW9yjpj29NrcPL+2itY+RQtz5cx81GoFm/Dkzwo2oTgjhr+cMoq4SAWb8OQv5awu6yAl1siTp48Owya8s6UOvVbNgycVC8fF13ub+POyI7h9UtiDeFt1D9d9WoLD46cgOYrvb5xJQpSemi4rZ7yuYBP0WjVfXjuNSXmJOD1+5vx9o3CJhWITTnttG4cD07pQbMK93x5iaYkyYo81ajn0l8WoVCo+3tHAX34aEKevuXMuw9Ji2FXXG+ZQ+0damNCguVCr+KS8BL67UYnRC0UaROk1HH50CZpfYRO0ahVr75pHQbKCTTjplW2iWX/vssksGpmGzy+x+KUtYhr34EnFYvX4wPelfLlH+RyXzcgTjeJPh9q479vDOL3+MGxCVQCb0NBjZ2pBIm9eMom4CAWbcO93h5VJTlIUz507Tog9P9hWz/cHWoiP0HPfCcXi9727rldgE66eUyByTLqtbt7aXCsmOaHYhC/3NlPXbWNKfiInjRnAJuypN7G7TtHCnDo2U6yZuq1uNh7tIjZCy3Ej0kTGTXDV7JdlZhYmCXE6KLqyXpub0Vlxg5LPu6xuMn6ViC7LMhaXjyi95n+FZZAkGY9f+o8nH/v8Er+UttNpcTF/eKrQz8iyzE+H2sRa/eQxA9iElaXtrD/aRXqskevmDRFTyCDDLkKv4ab5A9iEkgYTL6ytwun1c+n0PKFvq+yw8vCPpbSbFav4wyePQKtR02VxccsXByhrMzMyI5bXLppIepziXLv6oxK21fQQF6Hj1QsniMbxti8P8NOhNlQqJeU4KNYPTTufWpDI0utn/Et+bsfWVcfq/1T9dKiNTZVdZMdHcN28QtEIrCvv5Is9ykV7y4IiMbHYWdvLy+urcPskrpgZjk148IdSOi0ujhuRyqOnjkKrUdPW7+TGz/dT0aZgE968eKJIFL7iwz3srjeREKnj9RBswi1fHOCXUuXEGoo0eHpFBe9sUdwvobkpS/c2iyC2uAgdG+6eR1K0gd11vZwf8sANYhN6bW5Oe22bOLE2m5zic1z6/h4xYi9rNYv12OM/l4sU57XlnRz6i6KF+Wpvs3gQb67qZmFxKgXJUexv7BNi1fJ2C8ePSOPEMRnYXMpkxOtXGsfVRzrEQ2/1kQ6cXj9Or59Nld2iyalotwre0cHmfqGxsLl9uAJjcovTizcwLdBp1EToNdjcPoxatXiAaTUqhqdH01PjJkqvCRMlLixOpbLDik6jDjt1nzouk4PN/VicPs6fMiAwXTwqje01PTSZFC1MXuCBPjE3gdsWFrG/qZ+i1GhOCDjUjDoN7142mZ8PK1qYoNYGlGDHr/Y2o1apwlZzj5w8klGZsfQ7FGxCsKk9Z1I2mfERNPYq2ITgaq4oNYb1d82jrNVMQUqUcE1pNWpW3j6HslYz8ZF6sUYCeOasMdy8oBC1ShUGMTxtXCYnjErH7fOHJVkPS4th3V3zBulcogxa4TQMlsvrR6dRc9XsgjBrfK/NjYwyJZgWQnZv63disnsYnh7DI6cMrNoaeuzU99gZmRnLpdMHJh+NvXZKGvrITYpkakGiaLxb+hysOdJJbISOU8ZmiBDNTouLL/c04Zdkzp2UI37PfXYPL6+rptfm4cQx6cwfrryHHR4fz6yoCBgTErhpQSEFyVH4/BLPr6lkSwA8+fDJI4R78O3NtXwVwK08cFKxaNy+3dfCX1cexePzc/28QqE921jZxR1fHcTs9DJ/eArvXjY5LGzw31mvb6wV2rrnVlex+0Flrb6+oktM6wCir9Qyf3gq7WblXhYstQqBPLl76SGxVre6fOK+8dbmWhF70WxyiiZnzZEOAU3+ZGcDN80vJDXWSG23XSS2lzT2UdOlHDpdHonDLf2AYjKo7rKJ31/wfiXLvwpwDDkEBlfn/8k61uQcq9+9mk0ObgsIRkF5OAa1MPd8e0jkO7g8fjE2fXNzrXC/dFkGsAnrKjo52NwPwFd7mrn9uGGkxBio67ZzKPD6vsY+6nvsSpPj9VMeELf2ObzU9gxgE3rtAxdqKDYhMmRaFOrCyIyPENiE/OQocSLMTYpkbHYcZYEVVX4gsyUuQsc5k3JYW95JepxBrEcA/rRkOB/vaMCoU3NNyIPpjkVD0ahUg7Qwl87Iw+Ly0tKn7NPzAw/7OUOTef7ccZS2KlqYJSFamB9umsWGo12kxhjCVnNfXzeDNeUd6H8Dm7BkVDo2ty+MQn7C6HS23LuAtn4XxRkx4lSZlxTF1nsX0NbvJC02HJvw2dXTsDh9GPXqsNP7HYuGcXvgdx/68J4zNIU1dw5gE4K08oy4iDBsgs8v0W52khCpFzd+UNZaZa1mEqL0HD8yTay7fH6JXXW9qFUqJuUl8GBAExKkLfc7PMwuShYru6DIt6HHzpSCRGYVJTMrIDnYWNkltDBnT8wWK4Wt1d0Cm3DdnCECj7C/qY/3A+iCq2YXCMFwdaeVv62qDITtZXL5zHz0WrXAJtR225ian8iTZ44mUq/F5vZxx1cH2FnbS15SFK/8BjYhSq/hb+eMFZk0z6ys4O3NSqN+6fQ8oQH6YncTD/1YiixDUWo0v9w2G4NWw5aqbq4IYBOMOjU/3zqbotQYmk0Ojn9xi5haBSdmsixzyqvb6A9cu/sa+0ROz+1fHRDX7sqyDtYFcBgvr68W7LGvS5o58tgSogxaVpV18HbgULGxspsp+QnMLEqmpc/JqwEC+qHmfkZnxnHj/EJkWeb1jTUCg/BNSYtoclaVdYgJ4vJDbaLJOdpuxexUvtaDzf24A9iE/0TNH57CyrJ2uqxuFo9ME/qZyfkJnDI2Q0RMBIXjaTFGHjppBOsCWpgLQu4Dr104QTkU6jTcENLAP3XmGIalNeD0Km7IYF0/r5CUGAPtZhfzhqeIifGMwiS+vWFG4J41YFOPi9Sx/u757G0wkRZrEAgQUHK+DjT3Y9RqGJ01MFm59bihnDUpG6fHF9bY/6fq2Lrq2Lrqdy9Jknlna53Qwtx/QrG42HbV9fLVHoVae/3cAStiu9nJpzsbcfskzp2cLU7LXr/EjwdaA9iEVDGdACUQsKLdyqjM2DCnSZfVxb6GPjLiI8I0PX5J5lCLctGGurlACShzef3k/cq67fb5sbv9JETqBjlJ/pG7JLR8fgm1SjUoddXsULAJKTGGsI/RbXXTaXFRlBodNmbvMLuo6LBQlBIdZnPvsrjYXttDSrSCTQh+rF6bmxWl7Wg1ak4ZmyGmBmanly/3NGF1eTl1XKb4OTs9ft7fVkezycnsoclCGOzzS7yztY79jf0MS4vm1oVDidBrAtiEelaUtZMSbeD+E4uFQ+3bfS0Cm3DHoqFCr7HxaBcP/1iGxenlnMnZAiR4uKWf6z7ZR4fFxaS8BD64YorQP53/zk4aex0kRCrhfkFswkmvbBUhZk+eMVqwnq7+aK8IUQzFJvx15VHe2qwEsSVH69n1wHFoNWqWljRz77eDsQllrWZOeXWb+Dn/9SwltdjtU9ZjwbvshVNzxcP+5Fe2cqRNabCL02OEFubhH0v5bFeT+BwVj5+AUacJW48B/HzrbEZnxVHTZWPxi5uFQ+3v54zlvMmKDmfmX9eLU/UN8wq5/0TFYRNcLUC4Rf7rvU088H0pkqzkOC2/dTZ6rZqyVjNXfLiHHpuHguQovrpuOmmxRqwuL9d+UsKuOhNZ8RG8dckkcc09s7KCpXubiY3Q8ehpo0QTv668k1c2VOP1y1w3t0BkDdX32HludSXdNjcnj8ngshl5In7gzU21VHVamZAbz9Wzh4hp2qqyDrZWKxETV87KF9dATZeN5YfaiDFqOW9Kjmi8HR4fK0qVsMsTR6cLzYssy+ypN9FldTN9SJIQrf9e9VtZUZIk02NzExuhG7Smq+22YdCGR1ooYnYLTq+fCbnxomkLps239juZWpAopl+g3CMPtyjOz+kh072Dzf1sCKzHzpmULbRQ5W0Wvt7bhF6r5rIZ+YMiNf6ddcxC/k/UsSbn9y1Jkum2uYk16sK0NJKk2Fgj9ZowErIsyxxo7sfl9TM5LxybsKfeRIfFxbSCpN/EJozMjA1jpuxrNImLNhSbUNpiZmlJMxF6DVfMzBerg5ouK29srMXh8XPB1BzhTGntd/JMEJtQnMqN8woHsAk/lFLaaqY4PYZnzhpDUrQBn1/i/u9LWX1ESdb9+znjxAn+6RUVvL+tHp1GxUMn/TY2YfHINDG5WFXWwS1f7McnyWTFR/DLbbMFNuGMN7bj8UloAtiE6UOSFHDlM+vFCfdPiwf25ie8tEUknIZaPu/8+qAQk0YbtJQ+qmhh3t5cyzMrB7AJ6++eR2FK9CCieTAEzuLyMvbRAWzC1bMLxCoklIo8rSCRrwM7+0d+LOPTXUqoW3ykjv0PH49aHY5NMGjVrLvrt7EJH14xhbnDUvD6FWzC0Q4Fm/DUmWOE4DcUm3DjvELuDdhsV5W1c++3h7G4fJw2LpOXLxiPSqWirtvGnUsP0RgAYL5w3niiDFqcHj+PLT/Cnnol4fepM0eLh8cXu5tYdrCVxACUM5jafbilnw+21SOjYBOCK9o+u4cPttfTG9DCBN+3kqRoNOq6bUz+FTahrNVMSYOJvKQo5g8fwCaYHV621/YQH6Fj+q+wCQdb+pEkmQm5CWEP1C6LC5PDQ1FKdJi2xeOTMDu9JEbpBz2Af+uh/OuSAl3Yrxt4l9ePze0jKUof1sBbXV7a+l3kJEaECWSD+VVZ8RFhq06ry8u26h4iDVpmFyWLr8fh8bGyVBE+LxmVLrRybp+fb0pa6LK4WDgiLeyA83tVa7+Tqz/ay9EOK8XpMbx3+WSyEyLDsAlReg2vXTxRNI2hjXooNuHRn46IyVioxuzTnQ0iZDVKr2HzvQtIjjawp97EeW8PiNY/vHIKC4an0mNzM+3p9UIgHpryPuuvG0Te0uyi5DAzwr+7jmlyjtUfuuxuH+e9vZMjbRai9Bpev3iiaBxCsQm3LSwSa4dHlpWJE26oVfyD7Q088bNCJo4xaNn6D7AJn18zjVlFyXRb3Zz71k5x8u2xecRFe9XHe+kOWDWrO63iYf/XlUdZV6HcSHbV94pcmKV7m4UrZl9jH2dOyCIzPoLSVrPQ8zSZFGzC4lHp2N1+lh9qw+2TsLp8bKvuEU3O9hoFYuiXZPY2DGATOswucYMJ2ktBOeUHnwmhA6IYo5bUGAMtfU4SA+BCUBqCGYVJrD7SqeSjhNhHz5qYxTtb6tCq1WKlAUpIXWOvHasrXAtz5oQsjnZYaTY5mD00WazgpuQncO8JwxUAZmo0JwdEqbFGHZ9ePZWVZR2kRIdjEz64cgrf7WtBo1aFYRMeOWUkk/MTsDi9HBcSUHjGhCzyk6NoMjmYkBMvTo9BbEJFu4X8pCjxuk6jrFdqu+0kROrElDD4OW5dWIQKVViQ2gmjM1gyKn1QgOOQlGiW3RyOTZAkmQi9RliTg9Vn92DUabhoWm6YNb6p14EkK9boly4YcLVVdVox2T0iEDNYFe0WgU04I8Sme6TNTElDH3lJCg8qaO2t6bKyorSDWKOWcyfnCGGwkgTcgE+SuXharlg1dFlcvLaxhl6bJ4CLyCA11ojF5eXZ5eWBCUoCdx4/lJQYg8AmbKvpIS8xkifOGC1cPc+vqeTLPU3EGHX8+dSR4kH88Y4GnllZgc8vc/28IeJBvKqsnTu/PoTT62dqfiKfXTMNvVZNaYuZi97dhdXtIzFKz7c3zGBISjRdFhdLXtoiVtjBvCWA017bTn0g0ylUUH7X14dEptMH2+oFLf7V9TW8tlFZd72+qZaShxYNCvH8T1drn1M0/JWdCpYkOyESj08SzYTd46c7RPPilQbmFL6QP6fGGlCpFI1MRsjBb1hajEhgH58bT1SggSxIjmL6kERKW8wUZ8QK6G9CpJ7LZuSxrqKT9FgjJ44ZWGE/dPIIPtregF6rDktg/yPVsSbnWP0u5fFJdJgHsAndIdTh0BNh6MkuOyFSEIjzQyY8I9JjSI7W02PzMCEvYQCbkB7DjCFJHGkzMyozjqEBbEJilJ6rZxewrkKZ5AT5RaDoTj7d2YhRrxFTDoD7TxxBfKQeh8fHBVPCsQkatYp2s5P5w1PF5GdWURJvXzqJ0sDoN6gBiYvUseL2OWyp6iYt1himefn6+hlsrlSi9ueFnNLvP7GYU8Yq2ISJefHi9SWj0tn5wHF0WdwMSRnQAOUkRrLpT/MxOTwkROrFmFqrUfP2pZPx+ZUJT+jP9rq5hcLpAwNg0yn5iXwfwkJy+/xYXT6Sow1hXCOX109dt4O0OKOgD4Oy1tpZq2AT5gxNETgIl9fP2vJO1CpFbxMUXHt8EssPtWFxeTmuOE1orfySzPf7W2josTN9SBIzi5IZnxMvHCh76nsZkqxgE4KfY82RDn461EZSlJ6bFgw4TbZV9/COwCYMEZiFQ839Aptw5sQsbphXiFaj8M3u+PqgwCY8f944Yow6zE5lVbMnQLh+65JJjMiIRZZlrvpoLxsruzFo1fz17DFiJRO6ijpnUjbPBWzc72yp5ekVymQsLymSdXcp2IT1FZ2CHh6OTbBx2mvbRfP7a2xCMC+mot3K385Rmq+7vzkoRKZbqrvZcPd8QGEWBTEIv5S2U/74EoFNCE7SdtebmDcshRmFSTSbBrAJdd121pV3csWsAmRZ5rNdjfQ5vPTYPKw43C6anF11vSJscmt1D/csUd4frf0uke3S0GvHJ0noUeOTJPHA9volYSE3aDUkRxvoc3iJ0mtEAw8Kl6y+x45Rp2ZsSAO/eFQaJY19uH3+sLylk8ZksLu+l06LooWJjQiH/v4eNbUgkV9unUN5u4URGTGC95UQpWfj3fM51NJPRpyRoaHYhCumUNlpxajTCPE7wE3zi7hwSi4evxTmUp02JIm9Dx2Hxy+F6eFSYgx8dd1g55NGreIvp44S62JQ+FRqlfIzDHXX/RHr2Lrq2Lrqdyuzw8vhVuWiDUUMSJJMTbfCOvn1jtcccO8kR4fvzGVZydT5NUn81/WPaMQWlxeNSjUozr3d7MTh8TMkOSqsKWjqddBmdjIqMzbM9dLQY6e83cKwtOjB2ITqblJjjSwakSYaubZ+Jz8caEWvUXPOpGxxkuy2uvkkgE04a2KWOKVbXF5e31hDi0kJ2wtOV9w+Py+tqxbgyXuWDCfGqEOWZV5cW6VMUGIM/PnUkUJX8/GOBt4KaGHuXjxMPIh/PtzGIz+WYXX5uHBqrhClhmITitNj+Oq66cRH6mnpc3DmGzvotipuqU+unsakvIRB2IRHThnJ1YEJzkXv7hLTulBNSOiKKjFKT8lDi1CrVXyxu4kHfxiAD66+Yy7D02M41NzP6a9vF68/c5ayinL7/Ax/eMAqHqqFOenlrUJsPiozll9uUxJfH/j+MF/uUZxoeo2a8seXoNWo+X5/C3ctHcAmrLhtDiMyYqnrtrHkpS3CHRcMoPs1NiF0vB9qhT9tXCavBPKJQrEJk/MS+Pr6GWgC2IQrP9xLu9lFcXoMn149jZQYBZtw+1cH2VWniI1fDYiNAV5ZX803+5qJi9Dx8MkjhbZiW3UPr2+swS/LXD27QDTYrf1OXl5XJSY5QeeNxyfxwfZ6Mcm5eGquuHY2V3Wzo7aH3MRwbEKzycHqIx3EGLWcNi5LHDjcPj8bj3bj9UssKE4Nw5OUtZrptrmZlJcQFshosntoNjnIT44SwXagNLydFhfxkbpBKclunx+NSvXfWsh/Sx/nDwTrxRi0fxgS+faaHtZXdJEeZ+DS6QPYhH2NJj7f3YRBq+aaOUOEoLe8zcKrG6pxePxcNC1X/I6bTQ4e/7mc1j4n84ancPfxw9Bq1JjsHu755hCHAwnsz507ltQYI16/xB1fH2TNkQ5SY4w8f9448T4KrsGC943QQ81/so6tq47VH77iInXi1L27rpev9jZj1CnYhGBWRGmLmZfXV+Py+rl4Wi4nBk4N9T32MGzCnxYPR69V02tz86dvDlHaqpyEnj9vnCAT3/z5fpEt8fIFE4RjIJhRolWruDcEmxCKKAjdNy87qGhCZFlJ/Vxz51wSo/SUtpg5843t+CQZlUpZj80sTKbf4eGEl7eIk2yoFuaS93eL3JStNT0Cm/CXn8oEPfy7/S3CKv7ZrkbhivmltJ0pBYkUpkSzv7GfNzcpQtlddSbG58Rz1sRsrG4fr22sQZKhusvGD/tbeeAk5Ybw1d5m2gPTtO/2tYomZ2dtr1gHrC3v5PHTR6FSqei0uIRbprVPaf7iI4Ohjcr35g35s0atIjVWoY3rNWqSowdO3ZPyEthdb0IFYSLwucNSWFfRidnp5bRxAzkrc4YmM7somYZeZZKTG2h+izNiuHp2AXsbTAxJjhITM4NWw4vnj2PZQcUqflOI0+SlC8bzcUCrcPnMfPH6AyeNIDcxin6Hh1NCMovOnJBFjFFHfY+NSXmJIsZgSEo0q+6YKwCYUwKBhlqNmjV3zmVPvYn4SF2Y1uNvZ4/l2jlDkGQYljbgNDl3cg6LR6VjdXnJio8QD+Di9Fi237cQp9dPpH4gwDHGqBP24F/XbccNFZMxQNj7Zw9NFrBPUNZpZqeXnMRI/n7OOPF6j81NY6+dwpToMJhpl8XF/qZ+chIjwmCmvTY36492EW3QsmhEmgCpmh1evt7bhE+SFSt8wMZvd/t4c1MtXVYlpDOoOfL6Jd7aXEtFIBfmylkFJObEI0ky722tY3NVN9kJEdy9eLiYmH69t4nPdikRE39aPFxc06vK2vn76ko8PolrZheIUMm9DSbu+ErBJiwakcYrFyrYhLpuG5e+v4fWfif5SZF8GsAm/J7VZXVx8Xu7xX/bXD6xur/liwPi2m0yOfj8GiXG4oW1lWKtfrilXzQ5Px1qE9ET5e0WLpqaS05iJEfbLULP023tpqzVzMJiIw6Pn41Hu/D6laywfY19oskpD4jl/ZJMZUDH90euY03OsfpD1M1f7Beskw6zU2hhXl5fJS7a8naLaHJ+OtjG5gAeobLTyuUz8kmPM3K0w8rGSuX1rdVujrRaSC02YnP52FHbiyxDu9nF4ZZ+cUM82qFctD5JpjoQBgeITBgYeFAAxEboMGjVuLwSCZE6tIHsh6RoPXlJkdR228mKjxAj4iiDliWj0llzpJO0WEOYa+GqWQW8t7UOnUbNRVNzxOtXzx5Cv0NhBYXqOS6Ykkt7v4vmPgdzhqZQEFjbTStI5InTRylamLQYoVOINer45oYZrDnSSUqMISy9+JOrprL8UBtajYrTxw1oPR49bRRzh6VgdflYECJiPWVsJsXpMTSZwrEJeUlRbLl3AbVdNnISI8WUbQCb4CLGqB3JnxC+AAEAAElEQVSETbgloIUJnb6F2rtDKycxMkzUqAS/eYnSa8OyXGRZptnkINqg5cwJ2aJxC2ITQJnePBWAYQadJn12D1OHJIbl5pQ0mKjttjE+JyHwNSlf1556E3sbTOQnRXHSmAFswuGWAWzCpdPzBeG6qtPKRzsakGWZS6cPYBOaTQ5eWFslBMbnTc4hLkKHye7h8eVHBHjywZNGCHHzA98fZkdtL3lJSmMSXE88+tMRoYV58oxRwqH2+sYaXlxbhV+WuX7ugLvqxwOt3PPtIbx+mVGZsXx/00wMWg37Gvu46N1duH0S0QYtP9w0k6FpMbSbnSx6fgCb8OL548TP9tRXt9Fm/g1swlcHBMJkaUmziAB4dUONcK59tKOB/Q8fT0KUnjVHOvlrQMy+7GAbhSnRLChOpcnkEEwlgKz4CHFI+PuqSnoDuTDvb6sT1/TSkhZxePh4Z6NocvYHXEWgTKNsbh+JWj3dVjftZuX1lj4lJ+j3bnKSowzctrCItRVdpMcawvRYT581hk93NmLQqsMmKX8+ZRQZcRHYf7VWv3p2AQatWomYGJ4ivreZRcl8ctVUETERROjERehYfcdcttX0kBZrYP6wgXiLT6+Zys7aXvQadVi+0h+1jq2rjq2r/hC14WinciLTabh5QVHYg+D9bfU4PX7Om5IjRLour5/PdzfRYXayYHiqyLYB2FLVLbAJodkzzSYHu+p6yYiLCLNPu7x+dtebMGjVTM1PDBtV1/fYsbt9jMgITza2urz0O7xkxBnDRuOyLGP3+InUaf5XI2+vX8LnlwclN1tdXnptHrISIsLyO8wOL7U9NnJDmgtQ1nr7Gk0kRxvCAIw2t4+15R2oVSoWj0wXn8fp8fPjwVYsTi8njs4QKblev8SXe5qo77EzszBZNCCSJPP5nib2NZgYmhbDNXMKxH7/+/0t/BQAT965aACbsOZIB29trkWlUnHjvEIR+76rrldgE86emCVOqzVdVm754oCihSlI5PWLJxJr1NFjc3PJewo2IS3WwPuXT2F0VhySJHPe2zspaewbhE245Yv9QiB++vhMXg4Ifl9aV8VL6wZjE1aWtovANY1axc+3zmZERiyVHVaWvLRF/Jz/dvYYzp+SiyTJjPjzKtEYnzspW2ATTn11G6WBBivUKh66mgPFKh6h1/DDgRbu/PqQeH3p9QpItbbbxqIXNgs7etAKL8syU55aL/JfLp6WK5q4UJBqaHDlp7saeSRATc9JjGDtnfMw6jSUtSqCX0tAd/XtDTPIT47C4vJy6Xu7OdSiYBPeuXSSQHE8tvwIn+9uIsag5dHTRgndy/JDbTy/pjJgFR8ipmY1XTae/KWcLoubJaPSuXVhEWq1CofHxwtrqqjosDA6K447Fw3DqFPiB77b38rmqm6y4iO4aUGhaJgr2i18v7+FSL2WS6bnicbb7PDy3f4WPH6J08ZlismPJMlsru6m0+xiVlFyWCNT122jqtPGiIyYMFfn71Eurx+9Rj3oHtJldaFTqwcJpP/Rfaqmy0pzn5Nx2fFhCewV7Rbh/AzVL9V0WdlwtIuUGAOnjM0U95rGXjvf7mtBp1FzwdQckQDfbnby3tZ6rC4vZ0/M/o82Pccs5P9EHWtyfv9qC2ATfq2xqe224fT4GZkRG3ahl7dZaOt3MiE3nqSQf1PWahbYhNBsnPI2C5uqukiLMXLa+IGLtrbbxrf7WtBr1Fw0LVdMXVr6HLy3tR6Hx8e5k3PECqLX5ua5NVW09DmYNyyFq2YVoFarsLt9PLWigsMt/RSnx/LIKSOJi9AhSTJPrahgVUAL8+QZo4Wu5vWNNby1qRaNRsW9S4rFpGZpSTN/XlaGyytx1oQsXgjBJlz7SQnOQC7PDzfNIjFKT02XjTPf2I7V5cOgVfNFAJvg8vqZ+/eNdFkHYxPOfnMH+xoV8em8YSl8HFiP3f/dYZGM/F9hE1bdMYfi9NhBKc7/CJtw0bRcnj5zcC7M2Ow4frplNhCOTYjUaygNYBNCreIatYpVt89haFoMtd02Tnp5q2go3r1sMsePTMMvyRz/4mZxgr//xGKxbgkll/8jbMKC4Sl8cMUUVCoVNV02bvhsH3XdNiblJfDOpZNJiFKE5/d9V8ruul7yk6N47pwBbML72+r5dl8L8RE67j+xWFjCd9X18s6WOiRZ5to5A0LnbqubNzfV0mt3c8rYTNFA+iWZL/Y0UdNpZWJeAqeNyxRNakmDid31JnISIzllTIa4NrqsLjZUdBEboWPRiDQxHfP6JbbX9CDJMrOKksOEpg09dnrtbkZlDsYmdFhcZMVHDMpjsbp9ROoGYxP+mQyof6Sbc3n99NjcpMYYw/43l9dPTZeN1BhDmCPO5fWzp95ElEHDxNwE8Xk9PomNlV24vH4WFKeKRsgvyawq66Dd7GTO0BQhQBfYhADD7tSxA9iE1Uc6WF/RSXpcBNfOKQjT3f07y+3zc+0n+9hS1U18pIJNCK707/r6IN8faEWlgj8tHi6CDEOxCVPyE/jmBsUqHso3izVqWXfXPFJjjRxo6uOsN3eIZjlIFbe4vEx+cp0IdrxlQRF/WqIcOBY8t0k410JX96GHhwidhvLHl/y374N/VR3T5ByrP3zd+uUBlgcCyUKxCX9bdVToS2YWJgm6cyg2IdaoZcOf5v9mvkMQm2Cyezj99RBsQp+DOxYpAtArP9xLk8kBKMmzn16tXLRP/FzO6iPK7npVWQeHH1VsIF/tbRZsoa3VPSwsTmVISjT7m/rEA7qs1cLC4lROGpOB1e3j4x2KXbe138mK0nbR5Kwq68AaIAevq+gUTU55m0XodvY19YkHh93jw+1T1gQ2lw+fwCaoMGg1WPGh16gHXFRqFUWp0XRZ3UTqNUK/Ago2obzNgkatYv7wAQfXyWMzKGnsw+L0hlnFl4xKF7TrGYVJYj0yITeBWxcWsa+xj6LUaJaEYBPeuXSSAGCGamHeuHgiX+xpQsVgbMKIjFjMDg8njM4QJ9HTx2cqadU9diblJghHSWFKNBv+NJ/Sln4KkqPFQ0ujVrHy9jkcbjGTEKkLE34/deYYblpQhAoGYROWjErD5ZXCxK1FqdG/iU2I1GsHwUyDeURXzy4QwmpQNC+SLDN9SFLYijKITRiWFhNGKG/qdVDXY2NkRjg2odnkoKTRRG5iJJPzE8UEpbXfyaqyDmIMWk4dlymSb7usLr7e04xXkjl3UraIZjA7vLyyvpoui5sTRqdz3Ig08pOjcHr8/HXlUao7rYzPieeG+YUUpkTjlxTR+pZA2N6DJxWHYRO+3NNElEHLQyeNEJPU7/cHsAl+iWvnDBEP4u01Pdz65QFMdg/zhqXwzmWTMGg1VHZYufi9XfTYPKTHGvn6+unkJUVhdng56ZWttPY70ahVvHrhBOHiOfONHVQEhONXzMzn0dMU18893x4SQNHQidm7W+vEGkynOcr2+xeSGmNkw9FwbEKMUcuC4al0Wlxc/+k+8bosy2GW/n9nubwSB5uUQ0i/w0tlh1U0OcH4CFlGrNwA9CGohNAmMTXGKBLYsxIiMQamtlnxEYzJiuNwi5nhaTHCqRql13LOpGxWlSkZXsF1K8BN8wt5f1s9eq2aq2bni9dvXlCExydhc4dHTPyR6liTc6x+t+oKsE5AmZQESx9ySgw9SWYlRBBr1GJx+RiSEk2EsExHMDorlrJWCyMzYsWoOdao5bzJOawpV/Idjise0HrcsWiouGiDQkmAWxcORZYJYBMGHjSXzsjD6vLR2q+4moIP+9lFyTx37jgOt/QzPD2GE4LYhAgdP948i3UVnaTGGDl70sA+/bNrprH6SAc6jWoQNmHxyDSsbh+zipLDGo2t9y2krd/J8PTB2ITWfgfpcRHCsaLVqPn8mmn0O7xE6DVhP8ObFxSJxuPX2IRgvD4MnLrT44y8dekk8brXL9HW7xTBdsHy+SXK2yzER+pYPCqdxYHvyy8pQY0qlcKTeuDEAWzCpsou+h1e5gxNFg91WZbZcLSTum47U/KD2ATlAbrxaBe7600UJEdyzqQcsgK6k521vfx0qJW4CCUaIDh9O9jcz/vb6hVL9+wCkQsTxCaYAhOUq2Yrq7Z2s5MHvy+lNvC5nzhjFJF6LXa3jzu/PqhgE5Ijeen8ASfTXUsP8v3+VqL0Gp4+a4ywvP991VHeCDTqoZOjUGzCkJQoVt4+B4NWw9bqbi7/QMEmROg0LL91FkWpMbT0OVj0wmYxtQrFJpz+2jahY9vTYBJ29Nu/PMjOOsW59svhNtYLq3g17wYwEt/sa+Hgn48nPlLP6sAaEWD90S4m5CYwe2gyzSYHLwcmBAea+hmREcNN84uQZZk3N9cKEfrSkmbR5Kwo7RATxGUHW0WTU9FuEUyl/U19OD1+DFoNNrcXi1Np+PudHmyB5h/VQJSEWqX8X7CGpkZT0W5Bq1YJfAnA9CFJrC3vxO2TwoISZxUmU5weQ7vZxXHFqcRHKGubSXkJnDouk/I2M6Oz4sT7IyXawAMnFgdcTeHYhH93xUXoWHf3PHbXmUiLNTIlf0CU//m109jf2IdRp2FsyLT6loVDOWtiNg6Pn8KUgTXbjMIk9j60CKtLCVoMTv1SY438dMvsQU5TjVrF02eOEZNXUK5TlUoRxp87eUAz6PD4cHklRmTEhmFVTHYPnRYXBSFYm9+7jq2rjq2rfrfy+SUOtZgxaNWMyowNe+i29TtxeRWqdejrHp+E3e0j/jewCf/IHh5a3gA24dfprBaXF7dXGhTn3mtz0/mrHBpQIINHO6wUpkSJIDRQVhA7antIiTYwozAcm/BLaTtatZpTxw1gEywuL1/tacLq8nHK2EwxlXB5/Xy4vYEmk50ZhcmcNgib0EdRagy3HVdEpF6LLMt8srOR5QEtzL0nFItk3W/3tShWcZWK2xcNFSfiTZVdPLKsDLPDyzmTcsRUobTFzPWfltBmdjElP4H3Lh/AJpz39k6aTA7iIhRswvicePySwikKnq4fPXWkEHpe+0mJcHX8I2xCUpSeXQ8eh06j5tt9LfzpG0WPolbBqjsUqviRNjMnvzKATQhaxf2SzPCHV4pMlbMnZvP8ecrD/pRXt1LWOhibEKqF+a+wCctvmc2Y7Dhqu20c/8IANiGIbJBlmVl/3SBEt1fNKhA/w1BsQmiC9NK9zdz//eHfxCZc/sEeeu0e8pIi+eq66WTERWB1ebn6YyWLJyPOyFuXTBJrsOfXVPLF7iZijIr4OkgJX1veycvrq/D5Za6ZM0SwippNDv626ihdVjcnjk7nipn5ApvwxsYaKgMAzGvnFIh11KqydjZXKQDMq2YVCA1XbbeNnw+1E23Ucu7kbNF4290+filtF9iE4Eo5NJV8+pCksNyWDrOLum4bRWnRQusByuqmrttOSoxh0Dq7z+5Br1UPinyQZRlJ5p9KX/71vUKWZXpsHmKM2j/MA/poh4Wv9jRj0Kq5bGY+WYEpZFOvgzc312B1KWv1oNOty+LiryuP0tLnZO6wZG6cX4RGrUB0H/3piIiYeOKM0SRHG/BLMg/9UMqqI0pI51/PHit0jy+sreLNTTVo1CruP6FYXNNf723ikR+P4PFLHD8yjXcunYRKpWJjZRfXf7IPj18iM87IT7fOHvR7+1fWsXXVsfrDl1ajFhdUbbeNNzfVirC94Ems3ezk6RVHhRbm1oVDSYjSY3Z6efjHMkoDWpinzhxNUuCiffB75aJNjQm/aJ9eUSGcTA+eNEIIIT/eoSQm+ySZJaPSePtS5WSy8WgX1386+KI92mHh9Ne24/ZJaNUqPgtgExweH4te2CxAf6FW8YsDQlmANeUdfBR46D32Uznf7VdyUz7YVk/ZY8pO+4vdTfxtlTJi/3JPM8PSoilOj6WksY+/r1Js7esquihMiQpoYSQeXX5E7NnT44xievDe1jrBbfpoR4NocjYc7aLZpIy9v93XzEMnj0CjVlHbbRMP7kMtZswOL3EROpxevziN29w+LIHvEyD4uFCpwmP7c0IawNA/T8iNJy5CCdSbVZSMNvBvJubGMy47LiA2ThKrpcKUaC6cmsvu+l4KAugCUB5mT505mu/2tRIXqeO6uQNTuafOGKNMcoCrZuWL1+9ePIyESB29diUXJvhAO3tiNhq1irpuO5PzE4S2qzAlmp9umc3uehN5iZEcNyI18L2qWHn7XLbWdBNr1DE7RPz+0vnjuXxmHn4J8f4DOG9KDvOLU+izeylMiRLNxOisOHY+cBz9Dg+JUXrxeoxRx9LrZ+D1K++10Mb+7sXDw6Zpsiwjy4Mdai6vH4fHT3ZCBK+FEMqtLi+t/U5yEiLDYKYWl5eyBhOZcRGcMDpDOLVsbh+ryjqIMmiYWZjM7YuU97bT4+fbfS24fX5OGJXOeYETv9vn58s9TXSYXRw3IlWIUiVJCQ0sD1jFz5+cQ3qcEVmW+aakmY2VXaTHRnDrwiJh119Z2s7nu5sw6jTcdlyREMtuq+7h2TWVuDx+LpuZx8XT8tCoFI3evd8epsOiTG+ePmsMOo2adrOTaz4u4UhAv/fuZZPITojE5fVz0bu72N/UT6Rew6sXThBN4+9Z13xcItZUZW1mYRX/26qjIlF9fUWX0MJ8u7+F7wMYlj0NJk4em0lBchRHWs18u0+5z9R22zlpTAanjlMCRn840IrbJ9Hv8LK5qlu8X7dUdeP1KxPd7bW9oslp6HXgCazMqzsHLOSyLCOj3ID8gffiH6GONTnH6g9Rz6w4yroK5cS/vaZX5MJ8v79V6HYONPVz5oQs8pKiKGs1i9cbeh2cOTFLELJ/PKhctGanly0hF+3O2l4kWbGGlzT2iSanrd8pJgGNvQ6hw5BCLtqQtHSi9FqSo5X8l/hIPfEBHIBeo2ZqQSJryzuJj9QxKmtgpHzOpGze2lyHTqMSUxmA86fkUNttw+Lycv7kgZ32qeMyKW010xjQwgRtylPyE7n/xOLAJCdaWMUj9Bo+vWoav5QqWphQbcgHVwSwCRpVGIH4oZNHMDE3gX6Hh+NHpYvT7xkTsshNiqSp18HE3AQhrC1IjmLTPfM52m4lLylSOFM0ahU/3TKL6i4b8ZG6MODfn08dGbCKE+YIWTIqncUBsfAgbEJAkBwsWZYx6jQizC/4msnuIUKn4fwpuZwfYpdtNjmQZRiXEy/C9kBppHttHsZmx4U91CvaLdR22xiTFSeC8AAqO6zsqe8lJ3EwNuHnw+3EReg4d3KO+B00mxx8tqsRnyRz4dQcQRvvsrp4Y2MtPQHw5IljMkiNUbAJf19+hKpOGxNy4rnz+GGkxipBbI8vLw+AJyN4/PTR4mf94toqvtzTRHRgehN0D366q5FnVijYhOvmDhGC0dVHOrjz64M4PH6mFiTy2dWDsQkJkTq+vXEmhSnRmOweFr+4WazBXjp/vLAun/7aNmq7fwObsPQgK8sGsAnB9djrG2p4JUAJf21jDXsfWkRilJ61FZ08HHB2AaTFGlhYnEaHxRU2SYsyaEQT9/CPZcIqLssy7wcygj7e2cCh5n5ACUEMRiRsruoWgY8/Hmzl3hOKSQmgToKvV7RbaDI5FGyCXxIaPYfHL5r837seOHEEH25X1uq3LBjIPrrz+GHoNMqE5tyQ+8YVM/Px+mRa+hzMHZYi1upTCxJ58+KJHGxWIiaCuJW4CB2/3DaHTZWKo+rkkPTiz6+ZxvqjXejUqjB9zr1LhrN4ZBoWl4+p+Ynicy8sTmPH/cfRaXFRmBI9yCH6e9WxddWxddUfomq6rLyxqRaHOxyA6fT4+WB7vZLvMCxZnCplWWb1kQ5BzD0lxBlR02VjU2UXqbFGThqdLh6idrePzVXd6DVq5g5LCQN8lraasbl8TMxLCBtVBynfv75ovX4Jk13BJvzaLeLxSeg0qv9ShBc8df96ZB4U8cVH6ML+N5fXT0ufk7RYQ5jTw+X1c6i5n6Rog1hPgXKK3l7Tg0qlYlZhcpjbZvWRDvocXo4rTg2z1i4/3Cbs2qEw018Ot7OnvpeC5Cgunp4nBM5rjnSw7FAbiZF6bl5QJMCoO2p7eGeLElh43ZwhQq9R1mrmiZ/LFUH4+ExuXlCESqWiqdfBXUsPUhfAJjx77lhijDosLi/Xf7KPXfW95CdF8cbFEwU24cqP9rIpgMB45swxnB1o3v6yrIyPA8iBUGzCR9vreXS5wjcLtUxvONrJVR8p2ASdRsXPt85heHoMjb12jnt+s2h+gysqSZIZ+9gaoR05b3K2CNI7762d7GkwATAkOYoNf5o/6GsCOPLYEqIM2kFW8aBgvrHXzrxnN4nXHzypmOvmFiLLMpOeXCemaaGruRs/2ycajTFZcSy/VWkU399WL7huydEGNt8znyiDlkPN/Vzwzi6cXj8xRiUPpyg1RrECv7mDqk4lcfyNSwZAkMG0ZoNWzWOnjRJalR8OtPDMiqO4vH6umTNEGAjK2yw8sqyMTosS+vfwySPRqFVYXV6eXnGU8nYLozNjRQ6QLMt8vrtJAefGGblz0TCxPt7X2MfSvQo49+rZBaLp67W5+WpvM06PnzMmZIlrwOeXWFHWQUfAURWcCAXfh+Xtin5vdMhBxOz0cqCpj7RYY9jf/z3K7vahUasGrc16bG6cgalc6P2ltd9JW7+T4vSYsPtDS5+DI20WClOiw+4Pbf1OtlZ3kxxtYMHw1AGXnsXFjwdbUatUnDUxW9jO++wePt3ViMXp5YwJAwnswWDHhl47s4qSuSAgPvb4JF7bUM2+pj6GpsZw9+Jh/3KH2jEL+T9Rx5qcP241mxy0m12MzIwNi4Bv6LFzpE3BJoTyW5pNDjZXdZMSYwjDJnSYlYtWq1amGPEB1k2vzc3HOxqwuHycOSFL6BysLi9vbKql2eRgztBkzpscjk3Y39jH0LRo7j2hmNgANuHl9dWsLFWs4g+fMkJgEz7d1ahYxdUq7jx+qAhPW1XWzgPfl2Jx+ThnYrZgC+1rNHHNxyX0ObyMyIjly2unER+pp7XfyVlvbKfT4ibaoOXjq6YyKS8Bt8/Pohc2i5VTKDbhkvd2s62mBwjHJjy+vJwPtivi01ijln2PHI9Oo+bLPU088P0ANiFoFS9tMXPqawNamKfPHMNF034Lm5DDM2cp30eoVXxERiwrb1ewCX9eViaYR1q1irLHlmDUacKwCaBgE0ZmxlLfY2fxi5uFOy4YQOeXZOY9u1GM8W87bih3/QY24eQxGbx+sbKe+eFAC/d+exivX2ZcTjzf3jADnUZNZYeVqz7aS2vgARHEJtjdPm778gDba3vISYjk1YsmiN/raxuqWVrSQlyEjodOHhGGTXh1QzV+SeaaOQWiIW/pc/DSump6bW5OHpsppmlev8SH2+up7LAxITeei0KwCVuqutlWo2hhLpiSK5rUZpODlWXtxBh1nD4+U2AN3D4/Gyq68PglFhanhj1QylrNdFldTMpLDHOQ9dk9NPc5yEsajE1oNztJiNQP0ry4vArhXfcrC/k/U5IkY/f4iNKHYxN8fonmAEz2119HWasZo07DsLRo8VCXJJk9DSacXj8zhiSJRkCWZbZU99De72T6kKQwQnkwO2tERgwLhqeKj7W9pkeAJy+bkf+HmD4Er1GNWsWfFg8XAZXvbqnj6ZUVyHJ4/MOqsg5u+nwfkqzo21bePofUWCOVHVZOfXUbHr+ESgUfXTmVecNSsLt9TH96vXB4hmJHTnx5q9DWheYq3fn1QX4IrMEi9RqOBNbqoU00DFy7u+p6ueA3Iib+lXVMk3Os/s/W8kNt3PbVAYFNWH3HHJKiDZS1mjnj9QFswqdXTWP20GRsbh9LXtqCI5DGGnrRXvL+bqFH2VzVLazij/9cLuymS0uaxUX72a4mYV//+XA7k/ISKUqN5kDTADZhd72JCTkJnD1JwSa8sr4aSVaSl7/b18JDJyvi0y92Nwmr5zclLaLJ2V1vEtiE9Ue7hAiyw+wWrzf12pWJTqQen1/CGfjePD5J2Mk1KhXJ0QaaTU50GhUJIRTt8Tnx7KhVJjnjQsK+5g5LDkxyPJw6LlNoYWYXJTOzMInGXgfTChLJS1QeEMPSo7lqVgF7GpRpSig24eULxrPsYBsJkfqw1NUXzhvPxzsbkGW4fOaAQ+3eE4rJToig1+7hpNEDWpgzJ2QRbdBS12Nncl6CCIIsSI5i5e1z2d+okLaDmg6NWsXqO+ayt8FEfKSecSFOk7+dPZarZw/BL8mMyBhogs+ckM3C4WlYAtiE4EN2eHoM2+5bgNPrJ0I3gE2IMmjFSuTXdcvCoWHwVpfXjywPxiaYHV7MTi/ZCRFiogRKg91oclCYHB0GRe2yujjY1E92QiRzh6UIXZrJ7mHDoS6iDRqOG5Em/o3Z6eWj7fW4fRKnjc8UaeAOj493ttTSZXGzaGRaoAmLw+uXeGdLLRXtVkZnxXHFzHzGRoVjE7LiFWxCUEy/tKSZz3c1EqFXVkdB59qaIx38bdVRXF6JK2bmc21AC7Wv0cSdXx8SOpyXL1CwCU29Di79YDeNvQ7ykiL59Kpp5CZFYnV5OfONHdR02dBr1bx24QThzLv0/d2Cb3b17AKRbP3Qj6WCMRY6tfpwewOPBx64Bq2arfctIDXGyM7aXi77YI/4Ob932WQWjUyj2+oOwyZYXT6x5vs9K5jM7ZdksVoD5fcdHEn0OTzi9SiDBoNWI6Zywcl1fKSO3KRIarpspMUYSYtVpmJGnYYFxamsKG0nOdogfqcAl07PEzy7C0IS2C+bkUeH2YXF5RUHP4CzJ2ZR32OjsdfBzMJkYZyYmp/IY6eNYn9TH0NTozlt/MCK/j9dxyY5xyY5f7jaeLSLGz/fh8srUZgSxfc3zSIuQke72cml7++hpstGdkIEH181VeR5/OmbQ6wobSclxsCz54xjRqHyQPx0VyPvblG0MHcdP1wQxw819/PcmspALkyuyKox2T08v6aS5j4nc4qSuXq2EvoXTPg9EBi/Xj27QJyuSxpMrA6A7C6enitO111WFz8dbEOjVnHmhCwxRfL5JTZVdmN2epk3PCXMgVDVaaXZ5GBMdlyY08Ts9FLTZSMnMSLsdSmQwxMboQs7BcMAiuJ/4xQJJjdH6DRhThUFm+Ak2qgNS1CVZZmjHVYkWWZkxoBTTpZlDrWYMdndTMlPDJsw7G0wUdtlY3xuvJiSgPKg3F1voiApihNGp4uPVdZqZvnhNmKNOi6ZlkdcoKmr6bLy/rYG/JLEZTPyxSi9pc/Bi2urRdhecIJisnt4LKCFmZgbz8MnjyRCr8Hl9fPQD2Vsr+khNymSv509VmgaHl9ezld7FSfTY6eNFhymtzfX8uzqSnySzJWz8gWpednBVv70jYJNGJMVx7c3zsCg1bC/ScEmuLwSMQYt3wewCR1mF4te2CzWYKHYhFl/3SCa5VBswjUf7xXIk/ykSDbdswAIt6+rVLDv4eNJjNKzorSdmwIpzgAfXjGFBcWpg9Zjdx8/jFsDK6fJT64V+pzjR6bxbsAuHJqknBUfwfb7F4qfxzOBTBqjTs2O+48jMUrPvsY+znt7J35JRqNWsfT66UzKS8Ts8LLkpS10WFyoVPDieQMaoOs/LRGZVaEHlw+21fP0igp8khy2Ltzf1MftXx2gvd/F/OGpvHbRBIw6DX12D38KQCiL02N4/txxpMYakSSZl9ZXs668k/Q4Iw+fPIIhKQMrnd+r3D4/O2p70anVTB+SGKZZq+q0YnX5GJsdFzZNs7i8mH4jEV2SZKwuH9FG7SDH2T8T4Bjk0v36HuIKmBBSYwxhX5/V5aWu205WQsS/1VkFx9ZV/1Qda3L+uGVxeemze8iKjxiETXAEHr7/G2yCxyfhk6RB9GKb24fJ5iEj3jjo5lHXbSf7Vxet2emlpEHBJozNHsAm2N0+1lV0olKpOH5Emhh/u7x+lh1sxeL0sWRUehg24au9zTT2KODJIOpAlmW+3tvMnnoTQ1KiuGbOEHGj+W5fODYh+LHWlXcKW/YNIdiEPfUmnvi5nD6Hh7MmZovVTk2XjZs/3x+GTYiL0NFn93DpB7spa7WQGqNgE8ZkD8YmPHH6aNEc3r30kHCJnTw2g9cDLp5X11fz/NoqADLijGy+ZwF6rZpVZe3c8NkANmH5LbMZmRlLVaeCTQjelUKxCSP/skqEJYbqbUJTnEO1MKHrMYDyx5cQqdeGJSkDfH3ddKYNSRqETXji9FFcOiN/EDYhlGgeahWflJfAdzcqabOh2ITsBEUDFKFXsAkXvrtLZJd8e+NMCgLYhEve283hFjPxkTreuXSy4DA9tvwIn+1qJMqg5bHTRoksnpWl7Ty7uhK3T+KqkCDCmi4rT/xcQafFxZJR6dx+3FCBTXhudZUCwMyO467jB7AJ3wewCZm/wiaUt1n4bn8LUXoNl8zIEw22xeXlh/2tOL1+Th2XKazNkiSzuaqbdrOLWUVJYXiEum4blR1WhqfHhDUTDo+PinYLqTHGMMxCsKE26NRhlnNQtHpeSQrjoYX+u//u4f2PdHNdVhdatTqsgf9PVBCboFWruXDaADah0+Liva11WF0+zpqYLd4TZqeXl9dVi4iJK2fmo1YrcQB/XXmUA01KxMQjp4wgPlKPLMs8t6aSnwMhnY+eNko41N7ZUsvrG2vRqlX8aclwgUJZdrCVB78vxe7xh6FQShpMXPnRXqwuHwXJUSy9fgYpMQaaeh2c9vo2+h1e9Fo1n1w1NSwE819dx9ZVx+r/dMUadcQadTg9fp74uYwDzf0MDbloJUnmiZ/LWVXWQXKMgSdPHy0sv29truWNjTVoNWruCblol5Y088iPZbh9EmeMz+SlwEW7o0bBJtg9Si7PdzfOJDFKT2OvndNe247ZGX7RuryKFqY7EHp23wnFYm9+xYd72NswGJvw2PIjYsT+6oZqDv55MWq1iq/2NPHIMgWb8N62eqGFOdRi5v4QjUxClJ6Lp+Xh9vm5+5sB/Uqo6+il9VUiF+bl9dWiyfnxYKtgJ727pY7bFhah1ag50mamMmAB3VnXS6fFRVyEIvgNrvi6rG6a+5TJkszAmNwvKYDMYEUbBk560SENZF5yFEadAjMdmhYj1mND02IYlhZNTZeNSbkJZAREy9kJEZw0JoPddSbykyKZVqDcJNUBfcK3+1qIjdCFJSY/cGIxb22uxS/JXDlrwFV2y8Ii1CqVYhUfkyEa21PHZWL3+KjuVLQwwQdHYUo0S6+fwc7aXnITI4ULTqVSseK22ayr6CLGqA0LcHzhvHGcOzkbr18KE2tfOj2PWYVJ9Ng8jMmKE81u0CreYXaSFR8pXo816lh28ywsTh+RBk1Yo/2XU0fx51NGDnognxhwagVLkmS8kkRRaox434EyGTBZPSRFGcISll1eP6UtZlJjDZw9KVuItz0+BQVh1GmYmBsv1kRev8Ta8k5cXj/zh6cId6Jfkvn5cBvt/S7mDEsWThxZVl4va7UwOiuWk8dkiOZmbXkn6ys6SYs1cs2cAuFE21bdw2e7GtFr1dwwr1CsLg809fHiumqcHh8XT8vjjAlZRKChttvGQz+U0tLnZP7wFP58yij0WjXdVje3frmf0oAx4bWLJpIeZ8Tjk7j+0xI2VnaTEKnjlRBsQqieK1Tn9Z+oKz/cS10Am7CnoVdYxZ/8pUK4SJcdbBNW8W9KmoW2bl1FF7OKkpT7RnM/H+1oAJT4h1lFSZw1MRuXV+KdLXV4/TKNvQ6WHWwTTc7Ph9tF7MXKsg5xvyxrNQsg6556k1irm50KOBgUIXRwYqxWE5a6rv1fHEL/HXWsyTlWf+g62NwvnCmHW8zMGZrMGROysHl8fLKzAa8/gE0oaxdNzi+H27G4lItw9ZGBi7ai3SKSYw8094sTn9Xtwxm4UPsdHryBDAiNeoCQrVOr0AXi07VqFcPTYugOYBNCU1fnD0+ltNWMWqUKS109cXQGe+pNmJ0+zp2cLaZQi0amsbW6h8ZeB9OHJIr1yKjMWG5bWMSeBhNDUqKFtdOg1fDuZZNF6F8oNuH1iyYKPlNoE/DwySMoTo+hz+7lpDEDbrPTx2eREq1gEybmJjAsIOTOS4pi/d3zOdzcT25SJKMy48TPY8XtcyhtMRMfqQ9zazx2+mium1eIJMlhp/HTxmWyeGQaTo8/LMCxMCWaNXf+Njbh9ZAsF1AerhqVimvmDAlLpzYFsAmT8xN5L0RX0G4ewCYEI/9BWV/VddspTo8Jo7E39Q5gE6bkJwqNQrvZyeqyDqIC2ITg1Krb6mZpSTM+v8xZE7PEQ9Ls9PL6xhoFPDk6jYXFaQxJUZqJ59dUUtFuZWx2HDfOL6QoNUZgEzZXdZOVEMFDJ40QbrcPt9fz6a5GIvUa7juhWHyOHw+08rdVR3H7JK6ZUyC0UKHYhDlDk3nv8skYtBqqO61c+O5uemxuMuKMfHXdb2MTXr5gvLDCn/f2Tg4GbNmhVvH7vj0sMliGp8Ww+s7fwCasVrH9voWkxhrZWNnFLV8cED/nqCu0LChOpcvi4tpPSsTrUgg24Z5vD9EesG/32t3iYf/GplpBNK/ttouV1rryTnbVKY62z3c3ccO8QrITIqnttonXSxr7qOy0kh5nxOXzi6lfn8NLRbtF/GzbQ2zjHeYBbMJ/om5aUKQksGtUYfEPN84rxOX1D8KtnDclh06LiyZTQAsTuHanFiTy3LnjAmv1aNGoR+g1/HDTLNaUd5IcrefcSQN6m0+vmsbKsnbUapXI0ALFvj5/eCr9Di+zi5LFPeu4EWls+tMCmvscjMiIFVOv7IRIttyzgCaTg/Q446D1+e9Vx9ZVx9ZVf+gKjtIPNCtJnRdPyxO75bJWM+srukiNNXDWxCwBHzQ7vKwsa0erUXPi6HThEJEkmV31vdhcPmYWJYe5tppNDlr7nYzIiA27OJ0eP819ykUbOhqXZRmzU8EmhEIPg/8b8N9ayD1+adC/9fklemwe4iN1YXtwn1+ipttGXER4Do1fkilpMKFSqZiUlyB+NpIks722B5Pdw+yi5LDk2U2V3dR225iQmxAWVLe5qluAJ4PBeKCc4n482EpchI6rZxeItd3B5n7e21oXCNsrEB+rpsvG31cdxWT3cMrYDBEi1mV18dAPZdR0KROUx08fTbRBwSbcEcAm5CZG8vIF44Vz7p5vDvHNvhaiDVqeOnP0b2ITQh/EX+9t4v7vFWxCYUoUv9w2B6NOw+66Xi5+bzc+ScaoU/PDTbMYkRFLa7+Thc9tEs3v388ZK8Lspjy1TkzrQu3aF7+3i+01iiC2MCVK5MI8s6KCtwPWeYADjxxPQpSeXw63c/MXg7UwTb0O5j67Ubx+z5IB6OLkJ9eJ9VhoUnRognSQrwXhVvEYo5at9y4gPlLPvkYTF7yzC69fxqBV892NMxmdFYfZ6eW017bR2OtAp1HYUEE3WBAEqVGruO+E4ULo/MXuJp74uRy3z8+VswaEwMHgvXazkwXFqfz1rLHotWr6HR4e/rGM8jYLIzNjeeqMMcRFKvDad7bWsa68k7Q4I/efUCwa4111vXy2qxGDVsP184aIxrvD7OLDHfU43H7OnZwtphBev8T3+1to7XcxZ2hymIi2pMEUcFTFhq1Nuiwudtb1khZrZFrBQM6Lzy9xoLkfnUbNuJAV9L+z/tG9wu724fL6wyDEoDjiuqxu8pIiw+4PJruHyg4lvyqUzWaye9hZ20tClI4ZQwYS2M1OL6vK2lGplMYmeC+0u30sLWmmz+Hl5DEZQkjs9vn5ZEcjDb3KWj1ImpckmY93NrC3wURBchQ3LygaJAX4d9WxddWx+n+iVCpV2Ci9y+piZ20vSVEGZhUlCZFpn93DNyUtaNQqTh6bITI8rC4v722tw+LycerYDLFScHn9Sr5Dj52ZRUmcNi6TnMRI/JLM25trKWlUTkK3LhwqbrSf7mpk+UFlgnLPCcNFQN+yg63CeXXzgiJxA9hS1c2fl5Vhdno5a2K2eCiUt1m49pMSWvudjM+J58MrppAQpafT4uL8t3fS0OsgIVLHR1dOZVwAm3D669s50mZBpYJHTx0lVgU3fLZPPPROGJUuOFPPr63k9Y3K15QcrWfnAwo24adDbWFQwl9um82ozDgq2i1cHuJA8fllLpqmaGEufm+XsHF3WdziYf/Ij2ViDVbTaRMn+493NLAm8DXta+rj/Cm5ROg17KztFV9rfY+di6flMikvkS6rmw1Hu4SbZF9jH0PTYpBlme0BG7zN7eNAU79octpCAIWtfQN/VqFCBciAWqUi+OyIi9QRH6mjx6asbYI39bgIHRNy49lVZyIzzihOxADnT87h892KFiYoNAa4fEY+fXYv3gCEMlgXT8ujpc9Jl1XRwgRDIheNTOW2hUVUdFgZmxUnHFi5SZG8fekk4Wq6KmTVtvT66Sw72EaUQcP5kwemci+dP56fD7cp2ISQU/dVs/IZkxWnYBMKEoXIfVJeIpvvWUBtt41haTFC2xIXoWPtnfOo77GTHK0Pe5i+cP54Hj5lJDqNKkwoftG0XC6YkoMkhwc4js6KY0UgJiBYkiQTH6kPS1gOBjhG6jXcMK9QEOJlWaa224Zeow6DmcqyYiF3ePyMz4kX3DNQGuzWPieT8xPCgiD3N/VxuLmf4emxzChMEjDTslYz6yo6SYkxcPbEbPE+quq08tWeZnRaFZfNyBdNUhCbYHH5wiCn/8p6aV0Vb2xStDD3Lhn+m9iERSNSefeyyahUKjZXdXPdJyW4fRJZ8REsu2UWydEG6rptnPbadmxuH1q1ik+umsrMomQ8Piks2DF0BXfFh3s40NQPwE8H2wRV/MlfKgSI+J0ttZQ9ugStRs1Xe5p5akUFoEzMClOiGZkZy8GWfh5bPmAhz4iL4JIQuOwfoY41Ocfq/0w5PD6Of2GL2B+Hksuv+GivSD79+XCbGHM/trxcxJm/v7VOYBO+3DOATfi6pJlhaTGMyIilpMEk3CFryzvJT47ivMk5uLx+/rysTIhSk2P0Ynrw/rZ6gWx4f1u9aHLWVXTS0KukqC4taebBkxRsQkOvXbhlytssmBweEqL0ODx+MTkwO71hNtFg4rIsK+P9YOWFrIbyQtZmY7LiBcx02pAksR+fkJPAhNx4artsTMlPFCfoguQoLpiSo6ALkiIFNkGtVvH46aP5bl8L8ZE6rpkz8CB+6szRAQAmXPkrbEKwoTh5TIbQnZw6NhO/JFPdZWNiboLQYRQkR7Hs5lnsbVBWRguLw7EJm6u7iTVqxVoBFJv6pTPykWRZgBVBGePPG56Cye6hKDVaaASK02PZfv9C+uxekqL14vVog5avrpuBz6+QxENP1H9aMjzMUhw8dYcCSEFpmO1uHzmJESKXB5TGrK3fSXZCRFjCss3tY39jHxlxESwZlS40Pgo2oZ1IvZZZRcnCTRRaUQateKh7/RJLS5rpMLuYOyxFaIskSeaL3U2Ut5sZnRnHeZNzxOn+hwMtrKvoIiPWyM0LisRJfWVpO5/uaiRCp+G244aK3KgdNT08t6YSh8fPZTPyuWhaLmpUVLRbuO+7w7T1O5k3LJWnzxotIKdXf1RCebuF4vQY3r1sMjmJCjbhkvd2U9LYR5Rewysh2ITrPh1o1G+aX8i9JxQD8NdVR3l7szIZC7WKh2Y6RRu0bPjTPFJjjOxrNHH2mzvFzyo4MTM7vSJ6AhSa932Bz3HNxyUi6bi0xcwX1wawCauP8svhIDahk4rHT/iXT3Y2V3Xj8Ul4gG01PaLJaTINYBNqu+3IsuKS80sS/sD34PFL4j5g1GmIi9Bhc/uI1GvE5FqrVqa7q490EmPQMjIk4PDkMRnU99hRq1RhDfzZE7Mob7fQ7/Bw1oRs0cyeOCad/U19NATW6sFV9bjseO49YbhikEiO5vTf0Sr+j+rYuurYuur/TPklmZs+38fqI50kROp44bzxQuT4wbZ63thUg1ql4q7jh4lJzu66Xp5eUYHF5eO8yTlCINxjc/P0igoaex3MGJLE7YuGotOo8fkl3t1az74ANiEIwATYWt3NL4fbSYzSc82cIWIX3W528k1JCyoUWm8w+dft8/PL4Xb6HV6OH5kWplU51NxPQ6+d8TnxYQ6UbqubinYL+UlRwjUFyii9stNKfKReOFmC1Wf3oFIhTu/BkmUZnyT/t8Ft/whsag64JH4dkNba7xykvQFlTdVrczM2Oz7s31R2WKnttjE6My7sezraYWFPvYmcxEjmD0sRD5H6Hjs/H2oj2qjlnEnZYprQ2u/k052N+CWJ86fkihttj83Naxtq6La6OWF0umgyrS4vz66upCoAnrzz+KEYtBq8fom/rzrKlgB48tHTRonv5YUANiHGEMAmBN5fX+xu4ukVFXj8EtfPHSI0JOsrOrntywPYPX4m5sbzxbXTMeo0HGkzc8E7iosqMUrPNzfMoDAlmj67h8UvbaHb6h5kmT7u+U0Cm3DRtNwwGvRv1esba3h2tcIx06hV7Lxf0cKsOdLBdZ/uE3/v/csnc9yINDrMLqY/s168fsuCItHEhVrFFxan8kEgI+i6T0rEVC4lxsDehxYBioA9eLLXqFVsvXcBmfERlDSYOPftneIwEExxtri8LHh2k0AzPH76KC6bkQ/A5R/sYXNAb3PtnAKRM/Xe1jqeXlGBJMOiEWm8d7liX99d18uNn+/HZPcwNT+Rj66aQqReS4/NzS1f7Odwi5nh6TG8dtFEsuIjkCSZZ1ZWsLJMCex84vTRYgL88+E2PtzegE6j4raFQ0U6d223jdc2KADM8yZnhzW1/6qyuX2sr+hEq1Zz3IjUsFDDQy1mzE4vU/MTw66lLquL9n4XRanRYUGNHp9Ep8VFcrRh0PXq8vrRadT/LbT0t8rnl7B7/MQatYNAya39TlJiDGFrf7fPT1mrotkr/Dfb8Y9ZyP+JOtbk/N+s3zp1/1b9lpXU51ewCXER4RRzBZvgIDU2XHvj9vl/U2jr9vnZVt2DSgWziwYQET6/xJryTvocHhYWpwr9jCTJ/FzaTkPArh2qEfj5cBt76k3kJ0Vx6YwBbMLGo138cKCV+EgdN84vFB9rV10v725RtDDXzCkQK7iyVjNP/VIhgv5uml+ISqWi2eTg7m8OUddtZ0p+As+eO45og1ZgE3bW9ZKXFMmbF09iZKaCTbjxs/2sOtKBXqvmydNHc94URafy2PIjfLi9AYBzJ2Xz7G9gE7LiI1h/t4JN2FjZxZUf7gUUttfyW2czPD2Gpl4HC5/fJE7XwSRlWZaZ8MRa+gOhiGdOyOLF88cDcP7bO9ldPxib8OTP5by3rV78PA/++XjiI/WDrOJfXDONmUXJg7Qw959YzA3zFGzC5CfXiQfxP8ImjMyIFeuZT3c2CHdcUpSejffMJ9aoC8cmGLR8e+NMhqcr2ISz3thBdZcNo07NGxdPZGGxMtF44PvDfBkgTodiE/5RHe2w8OD3pXSYXSwckcpfTh2FTqPG6vLy1C8VlLdbGJUZx0MnjyA6gE34bHcT6ys6yQhgE1ID66sDTX0sLWnGqNNw1axwbMIXu5tweP2cPTGLolRl8uOXZH4pbae1z8mcoclheIQjbWbKAwDMMGyCw8u+JhOpMcaw1yVJprLTikGrHpRT02f34PL5SY81hl2vfknG7QsPcPyf1D/KkOqxubG7feQmRoZ93Hazgk0Ynh6ewP4/rW6rm2UBbMKZE7IEz83s9PLZrkbMTi+njM0QmiOHx8dbm2ppNCmHsaD42OeXeGNTLXsbTBSmRHPX4mEigf2tzXUsP9RGUrSeB04cIRxqS0uaeX1jDSrg1oVDhQRgfUUnD/5QKtbqweb6cEs/V39cQrfVTXF6DJ9fM42kaANdFhdnvrGD1n4nUXoNH145lakFifj8Ekte2iIa9QdOLOb6eYX8u+qYJudY/T9bwRFqEJugUimrqyBccfWRDh78Xrloz5mULcLT9jf1ce3HJfTaPYzKjOXzawZjE6L0Gj6+aiqT85WL9sSXtgprZ5AhBMqYe2u1ohcJPfn+deVR8cANxSZ8s6+Z+74bjE0oazWHOVAMOjUXT8tT0ACflIjxtN3tFw/cJ38pF1bxtn4nq+5QtDDflDSzs04RxFZ3VXH17AKMOg17G0zsCTQHK8s6uHlBEaOz4jDZPMJp0tjroLLTIm6IFR3Kx/f4JGp7bOLrC1pHARFcB4rFXa9R4/FLJMcYxKkxMy6CzDgjbWYXBclRJEQpDWRyjJ75w1PZXtNDTmIEE3LjAWVFdd3cIQqE0qDj7BBg5i0Li5A31ODzS1w9e0ALc/WcAqwuH11WFyeMThfC8ZPGZNBhcVHVYWV8brxoLHOTIvn4qqlsDbiagq4plUrFjzfPYvWRDqINWqHbAHjx/PGcMrYLj98fRqe+dEY+k/IS6bS4mJibIBrkcTnxbL9/IU0mBwVJUSK4MMaoY+Xtc2jrd5EQpQvTvDxz1lj+cuooxX77T2ATitNj+f6mWeK/pYCtP1qvFe95UBrvxl47CVF6Lp2ex6UBzYQksAlqJuQmMCGw9pMkmV11vTg8PmYMSRbBgLIss7W6m7YANiEUNLulqpvDLf2MyIhlYXGqcOTtqO1hfUUX6bFGLpmeJxq6Q839fL5bsYpfPXuIYEVVdVp5eX01NpeP86fkCLdPS5+DJ34up6XPydxhKdx9/DAi9VrMTi8PfH+YA039DEuL4e/njCUt1ojPL3Hn0kOsDkxvnjt3ICD0qV+UplijUnF3CDbhw+2KeFuSYfqQRL68djoqlYo1Rzq48fP9+CWZ5Gg9K26bI5rD/2ld8eEegTxZU97BV9fNAODpXyr4ukSJmPhoRwMVj5+ARq3iqz3NAnK67GAbY7LjGJUZx6EWMy8E8qe2VvcwLC0mgFuReG5NpbhvFCQ38fjpowFFS9MYWJ9/sadJNDnbanrotChr8pWl7Txx+mg0ahXtZpdYnzf02pVsp2gDHr+E3aNc+y6fhCPwZ7VKFZgm29GoVcT+QdxVx5qcY/V/tr7aM4BN+HZfi2hydtX1itP42vJOnjpTSVlt73eJ1+t7lIs2PlKP3y8Ld43XL4t9uEqlUk5aPcpFG+q6mpATLwCY4wP6BYBZQ5NZUdqOyeHh5LEZQgszszCZ6UMSBTYhN3BSHpoWzTWzC9hdbyI/OYrFI5WxuEat4sXzx/P9/hbiI3TcsnAAm/DcueP4eIeCTQiO/AHuOaGYjPgITHYPJ45OD8MmROq11HbbmJyXIE7R+clRrLxjTgCbECU0HYoWZg6760zERmjDNC9/O3ssV84qwC/JjMocOD2dPj6L+cNTsTh/C5uwEIfXT5R+4NQdqdeK9cOv66b5RWGYCLdPwSbMGZoSpssxO73i8wX5X6BMHxp6HRSmRAlxa/D1A039ZCVEMG9YCvNCsAk/HWwjyqBl0Yg0YVO3uLx8s7MZj0/ilLGZIi3b6fHz3tY6Oi0uFo1IY9qQJEZmxgpsQnmbhdFZcVw5qyDsvREsrUYdtrYLreDvbH1FJ39bdRSHx88VM/PDrPO/Vc0mB5e8r2ATchMj+eSqqeQnR2Fz+zj7jR1iUvJqCDbh8g/3iEb9mtkFPBwQxj+6/IgIUQy1in+8o0FM64w6NVvu/W1swruXTeb4kWn02BRsQnBXYHZ6xXrsps/3i2u3rtsutDAvr6vml1JFC7O3wcSJgcTrnw+3i/TjI20WLpiSQ15SFFWdVlaUKhO2drOLfY19nDQmA4fXz/qKTjx+Za2yt8EkmpxDzWZkGXyyTFmbWXzdVpdPaN/MzoEGPkKvQadR4ZdkIvWDk4P/J3XxtDze2FSDRq3i/CkDNu6LpuXSZHLQ7/Ry9sQs8TnOnJBFTbeNpl4HMwqTRDL4hJx4Hj99FHsb+hiSHMVZE7MCvxcNS6+fzorSDhKj9Fw6Y0AE/N5lk/nxQCsqFWJFCvDgSSOYmp9Iv9PLwuJU8bmXjEpnzZ1zqe+xMzY7TkySsxMi2XzPAqo7rWQlRIjX1WoV31w/g+Y+BzFG3X88UPEf1bF11bF11f/Z6ra6+elQG5rARRuKTdhwtIt+p5cFw1MFyRiUEX9Tr4NxOfFhKarBALzshMHYhJY+JzFGrRgtByvIkPq1DfyfKVmWcXr9GLXhyc2yPPD5QjU2sixT1WlDkmWK02MGYRN6bW4m54cDGPc19lHbZWNcTrwQmIJyit5Zp9i1TxiVLj5/WauZnw61ERcRjk2o7bbx4fZ6/JLMxdPyRJPUbHLw4roqegMC4+BKq8/u4Ymfy6nqsjI+J56HTlKwCW6fn78sO8LW6h6yEiL461ljxHri8eXlfLGnkRijjsdPGyWcQ+9treNvq47ik2SuCrEtLz/Uxt1LD+HxS4zNjuObGxRswoGmPi4MYBOiA9iEYWkx9NjcLHxuk8hPCrWKz/7bBgH7DMUEhNq1Q7EJz64+KpxrodiElaXt3BiCTfjgislicvE/rVBsQmackR0PHPdf/v39TX2c+9YANuGr66YzJV/BJix+aTOdFkUD9Nw548QJPhSbcNvCIiGO/nRXI08sL8fjlzhrYhYvnDdefI7bvjxAW7+TBcNTef3iiRh1GvodAWxCi5nijFieO3csqTEBbMK6KtYEsAmPnDJS6DQ2HO3kox2N6DVqblpQKBrplj4H72xREn7PnZQtNDIur5/PdjUGJjnJYT/XTZVdHGo2Mzw9miWjBjAgzSYHW6t7SI0xsLB4gLTt8vrZXtODVqNmVmFS2NSspsuGxeVlTFY4NsHs9NJrc5OdEClW0/+KkiRFN/frj+n0+Om1u0mLDU9gt7l91AewCaFNhMPjY19jHwmR+rBVoMvrZ31FFzIyxxUPJLAH9YJ9Di/Hj0gTTbdfkvl2XzN13XYm5ycKVp0sy3y7r0VZqydHcc2cAnHfW1nazvcHWomP0HHrwqH/sIH/V9exddWx+n++UmIMIjjL5fWzdG8zfQ5PmPvF55f4YncTDb12phUkctyINIrTFd3Jl3uaAq6AKK6dO0TcaH880Mqyg60k/AqbsPFol7CK3zB/iLjR7mvs49GfjmCyezhtfCb3LhmOSqWittvGLV8coK7bxtSCRF67SMEm9Ds8XP6h4gZLizXw7mWTGZutgBIveHcXe+pNg7AJ9313eICuHYJNeGtznXCJpcQY2HrvAow6DauPdHB9QHwaik2o77Fz5hvbxYn1yTNGc8n0PCRJ5py3dghsQl23XazH7v/usEhx3lVnYmNAC/Pe1jq+36+Ew22u6ubksRlEGbRsqe4WoXFlrRZOGZvJ9CFJdJrdfF3SjCwrIuINR7sYkhItknFdXgmX182W6m7R5BxuMQv7+v6mPvG773d6xcSt1+YR43mdRo1eoyQsG7Rq8YCI0GkoSI7iUIuZWKOW7BDx9pJR6Xy6s5Eog4ZZRQOpxWdNyKK604rbJ4XZYs+ckMXhFjNdFjfHj0wjPtBYzhuewjWzCyhvVyY5oQnI/9P6+7ljmTYkEYfHH7YW+kc1MTeB9XfN42iHhWFpA9iEuEgdG+6ez5E2C+mxxrAH0FuXTKKx14FBpw7LXrp0eh7nTlJSnEPXaRNzE9h238JBWrf4SL2g3AfL7fOjU6u5a/HwMGdZj82NRqViYXFaWKPSbHJg9/gYlhoj1iugNB0tfQ7GZseHTbNqumyUtvZTlBLD/OGpwuJd02VjU2UXydEGTh6bIa6fZpODb/e1iAlKcOXYZXXx/rZ6LE4fZ03MEhZys9PLS+sqAuDJJK6aVUBchA6X188TP5ezr7GPYWnRPHjSiEGC/1/Xh9vreW1DDSoV3L5omFgX/ny4jfu/K8Xm9nH6+ExeOn88KpUqDJuQnxTJ0htmkBpjpNnk4PTXt2OyezBo1XwcSGD3+iUWv7hFNOqheUvXfjKwVp9ZmCQmZs+sOCqSkV9YU8nBvyxGp1Hz3f4WsVZ/e0sdP90yi7HZ8ZS2mrnn28Pie4qN0HHpdGWtfsuXB8T1J8mI+8YfpY41Ocfq/4l6ZkWFSEZ+ZX01h/6yWMl32NvMwwGG0Dtb6lhx2xxGZirYhAd+hU24ZLqCTQgVqxq0ap45S1mFPL+2Umhh7Gt84ia9/FCbyIt5f1s9tx83FKNO4RRVBCjC22t6aDc7iYvQYXZ6ORp4vdPipsmk3MRllJUKKCeqUAt5RIhAMvTP+UmRROo1ODx+hqVFi/VYUWo0RanR1HbbGJ8TLxxf6bFGTh6byY6aHrITI4VORa1Wce+SYpaWNCuTnOkDotd7TyjmzU21gWlKvnj9loUKE6nX5hENDsApYzOxunxUdVqZkBvPtMAaLDcpkm+un8G2mh6yEyI5Y/wANuHn22azoaKLaKNWrOxAwSacPSkbr08KI3xfOj2PmYVJdFvdjM2OEw64IDah3ewiKz5CnFyjDFp+vHkW/Q4vUQZt2Mn5kVNG8vDJI/5bbIIsy3j9MkWpMYJmD4qVu9viJiFSL1Y+/18r1qgLQ1T8VsmyzOojnUILc8rYDPIDidlryztF2N61cwrEKnJHbQCboFFzw/xCsf442NzPS+uqcHj8XDwtl9PHZ2HUaajrtvHwj2W09juZOzSFR04ZiV6rxmT3cPtXBzjY1M+w9BheuXACWfERSnbQJyVsquwmPlLHyxdMEGvBoLBapYLbFg4AN0P5ZlPzE1l6g6JTWX6ojVu/PBD4eWhZe9c80mKNlLdZOPW1beLBGnSP2dw+Tn5lq1g9V3VahR39mo9LBMJkW3WP+BxP/lwh2GM/HGgRVvFv97UIgf2Go13MLExmZGYsh1vMvB/Q3B1s7mdaQZKYjP2jWn6oTazJfzncJpqcwy1moWvbVdeLJINGpUyVg9q3XrsHtze4Pld0L6D8/+BaSaNSkZcUSUufE71WLRApALOKktlTb0IO/DlYx49MY0tVN30OD2dMyBL3jXnDUjh+ZJo4mA0NCM1HZMRyy4KiwCQnklMC14VGreLNiycKg0Swufoj1bF11bF11f8TtaO2JzBNUXbaD5ykBIe1m5088uMRGnvtTBuSyMMnj8SoU2zEr22oYU+9iYKUKO5bUizWM2uOdAgA5k3zi0SDUN9j54vdjcgyXDw9TyAYXF4/3+5rwWT3sGRUulgNybLMjtpe6gLpwqFj5JY+Bweb+8lLjBI4ClBOwIdbzMRH6ETqb7CaTQ4kWQ6znAf/jcsjERuhHfSg/mdJw2rV4NRVs8OLT5IGpa52WlyDcmiCX19dj53haTHiZxb8Xksa+shJjBDZOMGPs/pIB1F6LSePzRB6lF6bm6/2NuP2SZw9MUt8vxaXl/e31tNldbN4ZJqwd7u8fl7fWENFYIJy0/wi9Fo1fknm9Y01bKrsIishkgdPKhYTi092NvDJTgWbcO+SYtFALT/UxtMrKnB6/Vw5s4DbFymi2x21Pdz25QF6bB7mDUvh7UsniSbgond302FxkRZr4Mtrp//HSNbbqnu45P3d4r/fuXQSi0el02V1MfWpAav4zQsKuWeJ8rCf+cx62gL4gtCTfehqLiFSx4E/LwbCqeIqFWy5ZwE5iZHsa+zj7Dd3iM8R1OFYXV5m/XWDWAuGOmwueW832wLhjqHOtdc2VPPcmsFNzs7aXq77tASry0dxegxfXzeDuEgd3VY3V320l9JWM/lJkbx3+RSKUqORJJlHlpWxorSdlBgDT585RoQB/nCghbc316FRq7h14VCRDXOkzcyLa6uwBHAr5wZWmFaXl9c21CiTnKIkLp2eh0qlEmub/U39DE2N5rIZef+tSNzs8LKirB0VcNLYDCFOlySZbTU9mJ1e5gxNDpsINZscCjYhPTZsTe7w+GjsdZAZFyHuV6Bc5902N1F6bZi1PPh5gP8WaPxbURJ+SabX7iYuQhe2lpckmboeG9EGXdi1/p+sYxbyf6KONTn//1d+SabX5iYuMvyi9fklqrsUbEJoLLokyRxo7kOSlXF9KDYhKHCeVZQs9uOyrFCYa7vtTMyNF44VUHJ2dtcpO+0zJ2SFYRN+ODCATQhqiMpazby7tQ6fJHPlzHxxw67rtvHs6kp6bR5OGZchxMddVhcPfl9GTZeVCbkJPHGGgk1weHzc9fUhttf2kJ8UxYvnjxNW4Pu/O8zSkmai9FqeDMEmvLyumpfWVyHLcOHUHDHN+qakmfu+O4wkK9Oin2+dPQibYNAq2ISRmbG09TtZ+PwmsQYL1cJMe3qdcHWEPvSu/HAPGyuV3JScxAi23rsQgGdWVohwOID9jyhamBWl7dz0G1qY/wqbEIpsCE2KvvmL/SIELi9JEVhCODYh2qBgExKi9Bxq7ufct3bi8UvoNWqW3jDjN8XG/44yO708/GMZpS39FKfH8vRZY0iMUojT72ypY10AgHlfCDZhZ22vAGBeP2+ImOS0m518sK0eu8fPeZNzxPfg9Ut8t6+FloBVfFpI9EFJg4lDLWaGp8WETdm6rC521ZlIizEw9VfYhP1N/Wg1KibkxIc11aHrqtAHrcvrx+LykhxlGPQA9vqlfyoDSvUbDbzT48fl9Q/S2ZmdXrqtLrITBmMTjnZYyEuKGpRT9VsVRMuoVSpOHJMu1n4Oj49vSlroc3g4cfQANsHrl/hsV6MS81CQyKljM1CpVEiSzEc7GpS1ekoUtywcyO1aWtLMD/uVCcrdi4eJa3pVWbtAntw4r1BMI3fV9fLwj2X02ZWIib+cqkBfa7psXP9pibhnvXvZZJKiDfTa3Fzwzi6qu2zER+p4//IpTMpLQJZlznlrJ/8/9s46MM4ye9vX+MTdpWnaJqml7i5QpEDxosWlFIdFFnZhcXZhcZdCcSnaUkrdUvfG3ZOJjfu83x/vzDMzbVkWvt39rfT8Q3kzmUwm87zPec65z33taehFoYDfnzb4F4Xx/4w4ock5ESfiqOjyL9rqoxatLwSbAPDHM4aIVsEtn+zje/+mN3dwqtAe/HVNJS/6RzuTo7Vsu3cOWrWSFYfaxEi4QgHfLZnKsKw4yttNXPZ2cALF6fFyyQRZC3PpWzuEvqTT7BBCzz98c5i9fuv1slaT8IVZuq1eeLbsrO/hvDHZRGrVbK/tYU2ZfBqv77ZxyYRcxuYl0mFysrq0HZ8Eh1qM7KzrZWCqjE3YVGnAJ4HZ78IbSHKaem1iKiYwdgoQeiQKPR/FR2qJj9TSZXGSHK0jRi/fWmIjNIzIjmdHXQ9psToGhXgNnTs6mw93NBKtUwuBI8gTYwaLE6fbx1UhsMKLx+fS1GOjw+Rk3tA0Evwn2TmDU7lt7iBKW00Mz4oTE1i5SZG8duloNlYayIyLCHNl/uS6iXyzr4UIrZqFIVMufz6vmJkFKTjcXuaFOMFeNSWPoZmxdJgcTOifJDbHETnxbLh7JlWdFgalRoclyP/MkCSJuAgNL140Kuxan81FhFbF9TMGiAqKJEnUd1nRqJVMGpAkpowkSaKszYTV6WFETrww4QNZnN7Ua2N0bkKYX8/+pj4ONcvj2hPyg9iEI60yRy4lRubIBXREApugUnDZpH6ibdbUY+PVjTVCYByA2XZZnDz1Q7mooCyZNZDUGD1Wp4eHvzvC3sY+CtKi+dNZw0iO1iFJEg9/V8r3B9tIjtby6IJh4jU9t6aSV9bXoFIquHteofgsfbZbbmG7POHYhG01XVy9dDd2t5fMOD1f3zSF1Fg9dV1Wznhxi8AmLL1yfFhSd7y4culOsXa/3t8iKmaPrSgTEN3XNgaxCV/saRZ4hGXbG+iXGMmInHgOthj50/ch2IT4CC6b2A+P18d9yw+Jll20Ti08q17ZUMPBZqP4dyDJ+am0g+pO2Q7i011N3HdaETq1THIPeNscaDbSYXKSFK3D5vIKaGmfzS1YahAcupAkhGbu3zVOJDkn4n8m7C4v7f5FG5iW+KXISghuWtkJQdHm0Mw4YvRqzA4P4/ISBaG8OCuekTkyNmFMXoI4QeclRXHB2Gw/NiFK6BSUSgWPLhjG53tkLUwoC+lPZw3jjU21eCWJK/ysKoDb5xYQo1fTbXFx2vAMcbKbPzwDn0+issPM6NwEcbPvnxzFt0umsr22m35JUcwdHMQmrLx1GhsrDcTo1UwPGc9++txiLhqfi9vrY2wIxPOCcTlMK0im2yJTvgPalsL0GLbdO5tem4vEqHBswqfXT8Ll8aFRhRs4/u6UIqGZgGDSNKsoVbSiQL6h2pxechMjBagSZM+egPbmtrlBBILZ4WZPQy/psXpOGZYhwJM2l4fVR9qJ0KqYPCBZCGIdbi/f7G/B4fZy8pB00bJwe318tquJVqOdGQUpQr/k80l8uquRI60mhmXGcd6Y7H9ZctNudHDdst0cajFSlB7Lm5ePITshEqfHy2Vv72RnXQ/ROjXPLxwpxLU3fxxM1K+bns/9/lbu0z9WCCF9KDbhiz3N3PX5AUDWf627awYZcRHHtKgC2ASzQ8YmBDa7hm4b954q/12vfX+3SJIPNPcJX5inVpWL17T6SDvlj8hamK/3tfC5H8Oys75HVDuOtJqE8L6608K8oemcNTILh9vHxzsbcXp8dFmcrC7tEJ/7TZUG+fDglduNgSSnoduKS+h2LAKb4PZKeHzydafHh1dgE5TER8rYhCidmmj9L2+b84szBTYhlOx99qgsDrUY6bW5ODsEm3DSkDS213b7DTsTKcqIEX+Xe08tktvqyVFCx6ZWKXn/qvF8vU8ekAjFrbxyyWg+3SV77oSOqf/ulEKGZMTSY3Uxd0iaqGTPG5rO8sWTqe6U9XsBVl9OYiTr75rJkVYjuYmRog2rUCj4evEUytvNxOo1/7Jpqt8aJ9pVJ9pV/1NhMDspbTORmxgpNDUgl9IrO+QKz9EbVq/VhU+SjtGm+HwSbt+xJPGj4+d0MSaHG61KeYzrarO/inI0NqHWYKHb6mJ4VlzY91R3WqjuNDM0My7se6o6zGyvk3lQ0wcli9fQ0G3l+4NtROvUnDsmWzi4Nvfa+GB7I26vj4XjcoQmqNvi5OX1NcJsb36xfKO1uTz85cdKyttNDM+O4/a5BULv9PSqcjZWGshOiOShM4aKG+HL66tZ5tfC3H/aYOb6KzgCm+Dxce30/kJDsr6ik5s/2ofF6WFMvwQ+vGYCeo2K0lYTF725HaPdTVKUls+Og00A+OuFIzh7lCwMPfX5zUIIHjoqvuSjvWLDzU+JYp2fKh6KTVAqoOS+OaTF6llT2sE17+8W73NA+PqviKOxCR9eM4EpA5MxO9zMDMEmhFYjr3lvF2vKOgG4fFI/Mb305qZanvhBxiaEGlruaejl+mV76LI4GdMvgaVXjiNGr6HL4mTxh3s50NRHUXoML18ymuyESHw+icdXytiE5Bgdj5w1VDj2rjzUxjtb6tColNw8e6AYCa/utPDiuiqBTQgkog63lzc31dLQY2PKwCQWjMwSWphVh9vZ19THwNRozhudLdpX1Z1m1pZ1khSt48wRmSLxtjo9rC3vRKVQHINN2N/UR5/dzYT+iWHU7E6Tg5Y+O4PSYsKcjf8WNuH/J7w+CavLQ4wuXE/n9vpo63OQFK09Bt9wuNVIQqT2mPvX9toefJLEpAFJ4pDh9UmsK++k2+JkekGKuLfJovV2f4sqQVT3QB7v31otu6BfND5XPNemSoNoq18/I1/o2/Y29vLahhp8ksSVU/qHCZz/mXGiXXUiTsRxIiVGx4wYuWKxsdLAV3ubiYvQcMPMAcLtd3ttN29sqkWSJK6dli9uzGVtJh5bUUa31cX84gwWzxyATq2ipc/OnZ/tp6rDwuh+Cfzl/BHERWgwO9zc+MFettV00S8pipcvHi1+xk0f7mXFoTZ0aiWPLBgmdCqh2IRQnUooPiA7IYI1d8jYhK3VsvhUkkCjUvDV4ikMy4qjqcfGaS9sFqfrADYB4OxXttHj3wz3Nfby3EK55XHnZwcENmFdeacYFX9tYw3vbJUnSr4/2MaUAckkRGlZX24Q17fVdDMxP4lZham0Gx28uVm+Xtkhg0ADrrLvl9QLHc7X+1tEkrO1uktMmqwvN4gkp7nXLq7XdVlxun0ikQqUzB1uL25/u0+tUpAYqcVgdqLXKMN8g0bnxlPWZkKrUoaJwGcXpVJS043d7eX0kFP33MFpbKjopLXPweyiVKG7mpCfyAVjs2VsQkacaMH8K2JsXiLfLZlKaauJwvQYAdKM0WtYe+cMdtf3kharDxOzv3HZWMra5d87FE1y7fR8zh2TLdozgRjTL4Gd98/B6fGh1yjF5pscreOz6ycd85qUSgUPzB8SNllmc3lEFSO0ktFjdWF1ehiQEsXzC4Ottnajg1ajnYK0GOGwDLLVwJEWI/kp0WHTbh0mBxsrDSRGaplVlMr1M+SEvMvi5Nv9rSj93lmBtpnR7uatzbX02dycMSJTaOXsLi/Pr6mivtvKpPwkzh+bTarfMfmFtVVCC3PnyYXHHDqOji/3NPPSermFffPsgcKcdH1FJ/d9eYgem4uzRmTy9HnFKBQKDrcYuWrpLjrNTgZnxPLB1eNlbILZwbmvbqOpx060Ts3bi8YyIT8Jr0/i9Bc2U+VvOYWKuhd/uFcwxqYXpPD+VeMB+OtPleI1xejU7HpgLnqNim/2t4ZNkX63ZCrDs+Oo6jBz1dJgAu/1yYmLzydx9Xu7xP3EaHcL3Mqj35eK1lytwSra6v8ucSLJORH/k+HzSVy9dJdgJ5kdHp71L9rHVpSJkfA2o0NgEz7d1SSmQyo7zFw1pT8RWtmAbnutnBz8VNpBXZcM3uy2uNhRJ4+G1nVZKW0zCTZUwGnV6fGJPjnIN91ABOzSQd7ENCoFbq9EQqRWjJKmxerIjIugpc9OTmKk2IiTorVMH5TCluouchIjw8SwV0/tz0d+Lcw5IdiEm2cPgnVVuI/CJlw1tT99NjedZifzhqYT79fCnDw0jXtPLaK8zcTw7HjR7srxO+5urjKQFR/BRROCmo7li6ew4mArkVp1mOvqsxeO4PTiDFweH7MHB1tVl03sx6iceIFNCEyUjMiJZ+s9s6nvtpGfHCU0MjF6DStvnUZrn534yHBswmNnD+fB+UNQKhRhI+TnjM4Oex8CUZgew+c3TD7meoxeI6pAIG8ETT024iI1Ydyzf2RsqeriQHMfgzNimFWYKpK0XfU9/FTaQUq0jksm5oqkcX9THx9ub0CjVnL11P4Cs1DdaeaFtdWYHW4uGJsjkobWPrvAJkwblMwdJxUQoVVhtLu590sZmzAoLZq/nD+CtFjZ6O/uLw6y4lArSVE6/nxesTgMBLAJSoWCO08uEO7V722r5+HvjuCTYFJ+Eh9dOwGFQsGa0g6u/2CPH5ugY+UtU0mN1VPVYeb0F7fg8vhQKOCdK8YxqzAVp8fLyX/dhNEu881unDlAUMWvWrpL6FF+ONzOp/6k7ImVZXzib+G8X9JA6Z/m+S0mGvnrGnmy66t9LQzNimVoZhwHW4LYhC3VXRSmx3DJhKBX0vFi2fYG6vwImGXbG4IO7DXdtJvkNvmPR9p57OzhaNUKWvrsdPorjrUGi1yVjNbh9kqY/I7LdrcXm/+eoAChdVMqCKvwFGXEsqasAwkYnBGcyhzfP5GMvXq6LE7mDklD66/KjM1LYGJ+IjUGK2P7JZCXLCdw/ZKiuHJKHiU13eQkRjLP7zemVCr4y/kj+GJPM/GR2rBR8SfOKeadLXV4fBKXT/rb79H/RZxoV51oV/3Pxjf7W/hyr+zUeevcQcKNtaLd7DfKkrhsYp6ovpgdbj7Y3ki3xcmpw9PFOLQkSawt66Sq08KoEEYSyGX5PQ095CZGMTE/OGlidXrYXttNbISGsf0SwhyMKzrMeH0SQzJiw0rYRpsbo91NdkJE2KSJzydhcXmI1qp/cUz0eOH2+vBJ0jFtN5PDjdHmJjM+IszKvsfqoqHbSn5ydNgYa7fFyd7GPjLj9WJTBbndt668kyiditlFaSLBMDvcfLO/FYfby/ziTDGK6nB7+XBHI219dmYXpYrN0+P1sXRbPaWtJoZmxXHF5DxUSrmV8aEfPJkeF8HtJw0SrtVf7mlm2fYGIjQqbj+pQFRd1pd3CmzC5ZP6/ebpEIfby7mvbuNIqwmtWsnzF44M89b5R8SO2m4ufGO7+P/AuLbR7mbUn1YLY8frp+cL64QpT64T2IRJ+Ul8fJ0sfA2dHtNrlMIX5rWNNTzpHxUHWH/XTPonR7GnoYdzXy0R11++eDSnF2dgc3kY9+garP4NOJRoHgpSPX14Bi9fIhtXvrC2SiQOhWkxrLptGgqFgs1VBq55bzdOj4/shAi+vmkKyX4Q5MVv7aC600JqjI6lV44Xh4Q7PzvAN36bh6fPLRYarg93NPDKeplnd9vcAs7ze9gcbO7jyR/K6bO5OWd0lvh791pdPP1jBQ3dVibmJ7F45gDUKiU+n8SHOxvZ5a/k3DBjwDFt5aOj0+zgq70yNuHsUdliStLj9bG2vJMeq4uZhSlhxovl7Sbqu6wMz44Pm9oy2tyUt5vITowMu+7zSTT02IjVq49pn1udHiQ4LkD077GScHq8aFXKsMcFRtP1GtUxCXyNwYLHK1GQFv2bIKn/v3FihPzviBNJzon4e+JQs1HWJ+QlhC30/U19VHXI6IJQT5v9TX2U1MjYhFOHBbEJZW0mvtnfSoxezSUTcoUvRq3BwtJt9Xh8EpdMyBUJQpvRzl9/qqTT7OSUoemCQNxnc/HoijIq/T/7vlMHh2ETNvm1MI+fM1y0Jx5bUSpXb/RqHj5zqNBAvLOljid/KMft83H1lCC/6IdDbdz66X5cHh+DM2JZfuNkIrQq9jf1cVEIXfvLn8EmPHXucC4cJ1dwpj+9nsYeWXwaqoW57v3dosQeOq793JpKnltTJd7PHffLWphQF2eQWTxzh6TRbnQw8YmgL0zohhs6Kh46HReKTUiP1bP9/r+NTfi5sDg9nPTsRjGF8sQ5w7noF+jhvzZ6rTI24UCzkaL0GJ65QK6mSJLEc2uqWOWHUD44f4gYSV5f0cl72+rRqJQsnjlAtGeaemy8trEGi9PDeWOyxSSaw+3l/ZJ6fyUnJWzabVOlgf1N8lRTKDahudfGxkoDSVE6ThqSJhJhp8fLtupuVEoFk4/CJlR1mDHa3RRnx4dV04w2NwaLk5zEiGP8WEwON9E69TF+NH+vB5TnOLo5h9tLr81FSrQu7HltLg+1BiuZ8RH/X+wll8fHykNt9NpczB2cJlpdPp/El3ubqTFYGZeXILRckiTx7YFWtlV3k5sUKeC6IK/FL/fKWphb5gwUvlFbqrp4ZUM1Xp/cVg9U8Q429/Hwd6X0WF2cUZzB7ScVoFAoaOy2cfMn+6juMDO6XwIvXjSK+EgtZoebq5fuZme9PAH52qVjGJUrj4pf/d5u1pV3olYqeOjMocL5+6FvjwjH5FALhn9lnNDknIgT8Q+INzbV8PhK+YSbGqNjkx+b8FNpB9f6xaeh2IT6LivnhGATHjlrKJdNykOSJC54vQSzPwmoaDfzgn/8994vD7GzXj75bqvuEoyktzfXiYmSDRUGThmWTnyklo2VBr7wT6AcbDZyyrB0Jg9IptMUxCa0Gh1sqOhkYGq0uIFaXV6sLi/ryw0iydnf1CfG13c1BLEJJodbTKD02Vz+qROVn5CtADdo1EqxsUVoVOSnRLO/qU/GJoRMos0dnMay7fVEatVhqIMFo7IobzfjcHu5OCQxOGtkFvub+mjrczBncCrJ/hPrtEHJXDWlP6VtRoZlxgmBY1qsjmfOH8G68k7S4/QC9QHw/lXj+Xx3MxFaJYtCYKZPnVfMuP6J2F0ezhwRbJv92ojWqVlzxwwOtRhJjdH9U4wAE6K0vH1FODbB7fWhViq4/aQC4RwMcpVNpVAwqzCVWYXBtl9Tjw2zw0NhegyPnT1cXK81WGjutTM8K47rpg8Iu36oxciAlGimF6SIEe9ag4X1FQaSo7WcNjxDtHBa+ux8sbsZlRIuGJsjKisGs5O3ttRisrs5c0SWELiaHG6eWiWPik8akMSVk/OIi9Tg8vh44ocydvvBk/efNpgEv/fPM6sr+M5fvfnjGUOFHmlZST3Pr632V28GidcUik04Y0QmLyyUsQl7Gnq58t2dmBwe+idH8en1E0mN0dNmtHPmS1sxmJ1o1UrevWLcbxbRPvlDudCrPbO6kr0PnoRWLWMTAniE1zbCNzdNYUROPOXtZm79ZL/4/kitSoBwb/54n2irS5Ik2up/XVPJHv+a7fZPTIHcdgtcf3VjDYtnDUSvUXGk1ciBpj5AbsE19tiIj9Ricng42CJf7zA5qTFYRVIcOJx4fBJtRrt4faGVXZXqX1/F+TXxq5KcJ554guXLl1NeXk5ERASTJ0/mqaeeorAwyCZxOBzceeedfPLJJzidTubNm8crr7xCWlrwZNDY2MiNN97I+vXriY6OZtGiRTzxxBOo1cGXs2HDBu644w6OHDlCTk4ODzzwAFdccUXY63n55Zf585//THt7OyNGjODFF19k/Pjxv/GtOBEn4tjISYgkQqPC7vYyICWITchPiSI/JYpag5XhWXGkxcobcXqcnjNGZLLVjy6Y5N/UFQoFd55UwCe7mojWqcPowHfNK+TVDdWy6V+Il8sNMwfglSRRyQlUfuYXZ2Kyu6noMDMyJ4FJ/vZYTmIkX9wwiS1V3WQnRHBWCDbhuyVT+amsgxi9hnlDg2vxmQtGcPboLFweX9gI+YXjcpnQP4kOk4NhWXGi/y+wCX12shIixGRKlE7NV4snY7S7idSGYxP+cMYQHpw/WLyWQBwtSpUkCa9Pon9yFEuvDK5jl8eHwewkMUrLH84IiludHi+lrSZSYnScOyZb2Ou7PD62VXeh06gYnRsvvkcGt3ZgdXqZUZgSlgz9/0SUTh3Wovw1Ud9l5cFvDsvgyUHJPDB/CBqVjE245eN9ooLywkWjyE6IxO31ccOyPawt7yQxSstzF44UCcjvvzrEhzsaj8EmhLaiRuTE8/XiySgUClYcbOOmj2QTxVi9mtW3zyA9Tk9Zm4kzXtwiNtbA9JjV6eG0FzYLY8eK9iA24eqluyhvl7EJmyqD2ISnVpWLhPzz3c1UPHoqKqWCL3Y3CzzCmrIOJuYnMjQzjsOtRmH4uKehlzH9ZJ8ep8fHaxtrcHsl6rttfLWvRSQ5X+9vFR4u3+xvFUnOoRBswo4QbILR7hLXu8xOgU04Ov5/tu7ZRamsr5BbVAtGZgqLiekFKcwdLGMTxvRLYFCanBQPSo3m5tkD5QpwUqSYYFQpFbx26RiW72smLkLLTbOCiegz549g2fYGPzg3eEi4e14huYmRwoE9UBE6dXgGH1w9gSo/ODcwAZcVLw8y7GnoJScxUjD8FAoF3988lb0NvcRGaBiaGayWPDh/CIsm5eH2+chPDndg/3eLX9WuOuWUU1i4cCHjxo3D4/Fw//33c/jwYUpLS4mKkn/RG2+8kRUrVrB06VLi4uJYsmQJSqWSrVu3AuD1ehk5ciTp6en8+c9/pq2tjcsvv5xrr72Wxx9/HIC6ujqGDRvGDTfcwDXXXMPatWu57bbbWLFiBfPmzQPg008/5fLLL+e1115jwoQJPPfcc3z++edUVFSQmpp6/F/gqDjRrjoRf084/OK/hEjNMeXxAPX5b4XH60OpUByjlzHa3fh80jGuqx0mB90WF4PSwrEJrX12agwWCtNiSA0hqLcZ7eyq7yUrXs/o3KC+p90oYxMitSrOGJEpbnY9Vhef7mrC5fFx9qgsMd5tdrh5Z0s9HWYHJw9JE9BDp8fLK+trKG2TzfZumDEArVrWLby+qZZ15bIW5t5Ti4R+4P2Set7bJldv7p5XKDbiFQfbBDbhisl53OKfpNle283NH+/DYHYyszCF1y49FpuQGqPj4+smMiAlGpPDzRkvbqGh24ZaqeD5haM4vVhOmM59dZs4yV48IZfH/ZWLADsJID856t9iCiQUmwCw+XcyNmFvYy/nvBL0pAkgG47GJtxzSpGYXAvFJpwzKkuc+EN/xujceL68UU5yttd2c+17uzE7PRSkRfPZ9ZOI90+mXfHuTo60ylYLby8ay6C0GHw+iQe+OcwKv/HeE+cUC43T8r0yNkGpVHDL7IFCl1TRbuaZ1RX02WXcSqCFaXa4eWFtlajkLJqUh9Kvr/pyb4vQwlw5pb9ImA+3GFl9pJ3EKC0XjMsRCbbR5ub7Q60oUHB6cYaYqPP5ZKxKn93F1IHh2ITGbhuNPTYGZ8SEaVtsLg/1XTbS4/T/X+2q48Xx7hU+n0SPzUWsXhN2MPD5JOq6rcTo1GFrXZIkDjYb8fh8jMwJOrBLksSu+l66LE4m5ieFvfYdtd1Udpgpzo4XiWHg+lZ/Wz3Ugf1gcx/L97YQo1ezaHKeqKSWtZl4c3MtXr/AOBTR8n8R/xJNjsFgIDU1lY0bNzJ9+nSMRiMpKSl89NFHnHfeeQCUl5czePBgSkpKmDhxIj/88APz58+ntbVVVHdee+017rnnHgwGA1qtlnvuuYcVK1Zw+PBh8bMWLlxIX18fq1atAmDChAmMGzeOl156CQCfz0dOTg4333wz995779/1+k8kOSfiHxEOt5e7vzjI5ioD2QkRPHP+SKGNuPfLg3zqxyY8FoJNeGmdLML0SXDR+FyeOEfeiEOxCQNSolhxyzT0GhW76nu4+M3tuL3h2IROs4NZf94gBKCho+ITH18rpjpCN72rlu5iXbnsm5KdEMGWe2RswlOryoU5HMCeB+aSFK3jh0Nt3BiCTQic7NuMdiY9sU5cv2XOIO7wVw9CkQ3zhqbx+mVjgXDhayiyIRSbEKVVsfme2SRGaTnY3Md5r5Xg8sjYhE+vn8io3ARMDjenv7CZph47KqWC5y4cyRn+ceE7PtvP8r0tKBVw97xgEvD57ib++O0R7G4ZQvnogmDb5v8q3F4fn+9uprnXxtRByWHtvD0NPRxoMlJwNDbB5KCktpuUGB2T8pPCsAm76nvRqBSMzk0IS6pb++yYHR4GpUYfg00w2t0kR+uO2YCPJ0Q9OgLbx9GPcbi9OD2+sBF+kBOSDrOD3MRwbEKv1UVFh5l+SZFhwtw+m4ttNd0kRGrDhPtmh1t2/ZbglOHpQitnd3n5Ym8zfVYXpwxLF1o5t9fHspIGartkS4MzR2QKbMKy7Q3CbG/xrAFhvjm/JnbW9fDg14fptro4Y0QGf5gfxCZct2w3tQYro3LjecuPTeixurj4ze2Ut5tJiNTwVgg24cLXt7OzvgeFAh44fYioOt71+QFRGZtRkMJ7/lHxUE+nxCgtW++ZTYRWFebppFDAV4unMDInnlqDhdnPbBSv/aEzhnDFlP5IksTwh1aLStf84gxeulgWjp//2jZ21cuHh1AN3f9V/Es0OUajPKqXmChndHv27MHtdjN37lzxmKKiInJzc0WSU1JSwvDhw8PaV/PmzePGG2/kyJEjjBo1ipKSkrDnCDzmtttuA8DlcrFnzx7uu+8+8XWlUsncuXMpKSnh58LpdOJ0Bl1uTSbTb//lT8SJ8IfB7GTloTa8Pok+m5uSGnnkVJIkNld1IUmyQHVPCDahvtsmdDu1BsvfeHY5YvUa4iJkbEJSlFZMUETr1BRnx1NS201ytFaUvwHOH5vNsu0NRGnVnDw0iCi4dGIu7UYHTo83jHS9cFwOdQarv5KTLk6DswencsscGZswLCtWiFUz4iJ4/bIxrCuTtTDXTg9OKH187US+3t9KpFZ1DDZhxqAU7G4vpx6FTRiSEUu7yc6E/sGTaHF2PBvvnklVh4WBIdiEWL2GNXfMoKpDnrwJPe0+e8FIfn/aYDRqZZhQ/PyxOZw7OhufJP0iVPHvEbX+I0KjUoqkFORqxf4mGf44IT9JnJaPtBpZU9pJcoyWc0dni89RjcHCJzsbUSoVXDqhn9C8NPfaeH1jLSaHO0xg3G1x8vSqChp6rEwekMzimQNIi9Vjc3l45PtS9jT0MigthofPHCqwCQ99e4TvD8pamEcXDBfVm1c2VPPC2ioUyKPigYmlL/Y08/uvDuH0+DhpSBpvXDYGhUJBSU03Vy3dhd3tJcOPTUiL1VPvxyaYj8ImuL0+Tvpr0Njx5tkDudPvUn3t+7uFbcMXe5pFe+zxlWUs294AwMsbqjn00Dw0KiVf7mkWeIQPtjeSmxjJqNwEDrUY+eO3R8T7nxar47IQ7davidVH2gXp/OOdjdxzShF6jYq6Liu1fmzCwRBsgtXpocmveem1ycysQNjccpIhSXLCGIj0kM95KG28IC1GOLCPyI4T7bHC9BiKs+OoaJdbVDl+B/fM+AguHJvD1pouchIiRdVWoVDwwOmD+WRXEzF6ddjU4R/mD+X1TTV4vBKLQhzY/93jNyc5Pp+P2267jSlTpjBsmOyg2d7ejlarJT4+PuyxaWlptLe3i8eEJjiBrwe+9rceYzKZsNvt9Pb24vV6j/uY8vJyfi6eeOIJHn744V//y56IE/E3Iicxkm9umkJJjayFCXhLKBQKVt4yjY1VBmJ0aqaFnMafPreYheNycHl9jMsLln3PH5vD9IKUY9pVhekxbL13Fj1WF8nROnE9Uqvm4+sm4nB70anDT913nlwoNgUInrpnF6Uxuyi4dlweH3aXjE0InZKwOj209tnJjI8QFZrA9f1NfaTH6pk3NF38vnaXl7VlHeg1KibmJ4nvCWAT7C4vJw1J4wJ/0uPx+vh8dxPtRgfTClLCmEqf7W7iULORoowYLhqXK0733+xv4afSDtJj9dw0a6Dwi1lX3sF722Tw5E2zBgpfoO213fz5xwpsLi+XTszlkgn9UKKQ9SRfHqSl1870gmSeOGc4OrWKTrOD65ft4UCTzGd647Kx/zLb+sMtRs54aYtwM379sjHMG5qOxekJwyY09ti471RZ43TDsj3CHG5PfS9f3Cj7+jy1ShbpAqw6HIJN2N/Kp7ub/O9NDycPTaMoPZbSVpNo5VV2WJg7OJWzR2Xj9Pj4ZFcjDrePLouLNWUdIsnZUGEQ+pyNlQaxIdZ1WXD6RetlbSaBTfD4fAKb4PL4BHdJp1ESG6HB7PQQoVURpZMrPGqlgjG5Caw60k60Ts2QjOBp/dRhGVS0m5FAEMUBzhyZyb6mXnqtbs4elSXWicAmdMnYhIAtxLCsOH53SiE763rIS4rirFG/XYR+9ymFFKbHCGxCoFJ10pA0vlo8mRqDlRHZcaK6lJMYyfq7Z3K4RcYmBACbAWxCaZuJWL2GvBDNy13zCrlySh5enxSW2J80JI39fzgZl8cX5sickxjJt0umHvNa9RoVT51XHHbN5vKgUipYOD43jFdmMDvx+HwMz44TVZ3/pPjNSc5NN93E4cOH2bJlyz/y9fxT47777uOOO+4Q/28ymcjJyfkb33EiTsTfF8Oy4sJcdAMRF6kRrquhoVQqBGOnx+ri1Q3VdJqdnDwkndOLM8Tp+omV5ZS1mSjOjuP2kwrIiIvA45UnUDZWyGZ7fwzBJry6oYZlJfVE+LEJgRHVT3Y28tjKMpweH9dNyxcj1hsrDSz5aK+fwZXAsqtlbEJlh5kLXi+hz+YmPlLDp9dNojA9hj6bi5P/ukmYmIViE85/fRuHW47FJtz9xUGx4b6+qVY4Kb+xuZanV8kl9ufWVrH1ntmkx+nZWGngd/4JFICkKC2nDMug0+QIm0DRqpVC+PrAV4dp9Y9x21wePrxG9oVZurVe6HOeXV0pRKmbqwxi0uSb/a3ceXIhWfERtPY52N/UhyRBebuZmi7LvyzJyYyPYHxeIvsaZXRBkb/lGamRJ21WHGwjJUYX5sp858kFvLm5DpVCwU2zgwZtt84ZiAJ5iun8MTki+b14fC4Wh0dUcgr9G+6Yfgm8cslo9jb0MigtmrP8E2d6jYoVt0xjbVkHiVG6sM/yu1eMY01ZBwqFgpNCsBZ3nVzI7KJUjHY3E/onifbYtEEpbL13Nm19DgakRotqZEZcBOvvmkm70UFyjFa0ixQKBa9dNgaH24tGpQxrpy2anHfcasK4vES+v3ma+H+fT8Lu9soi7RCHZZfHR32XleQYHYtnDmTxzL//7xQaXp/EhopOui0uphUkC+6ZJEmsPtJOtcHCmNwEJuQniYmltWXh2ITAgaOkppsv9jQTo1dz3fR8IQze39TH6xtr5MGEyXkhaAwzj64ow2B2cuqwdG6aNZAIrYoOk4O7vzhIVYeZUbnxPHluMbF6DTaXhyUf7fO31SN58aJR4p5152cH+HJvM1q1kofPHCpsEJ5ZXSFAxKEt7/+k+E1JzpIlS/j+++/ZtGkT2dlBp9D09HRcLhd9fX1h1ZyOjg7S09PFY3bu3Bn2fB0dHeJrgf8GroU+JjY2loiICFQqFSqV6riPCTzH8UKn06HT6X726yfiRPxfxOsbawQG4Zv9rUzMl7UwGyqC2ISSWj82oSiVNqNDTKCUt5sZk5cQ5iob0OEs39cikpzNVV1ifH1NWYdIchr9o8UAVZ0WHG6vwCYERshdHp/AJqiUCuIjNXSanejUSqJ1wXZQcXY8h1tMaFSKsFP3nKJUSmq6sLu8zC/OCLmexprSDtqMDmYVpZIULbeoxuUlcvGEXLmSkx4jbuopMToeWTCMNf5KTugm9/Ilo/loRyNatTKsxP7Y2cMYmhmL1eXlnNHBU/qVU/qTGquXtTADk4VgemROPN8tmcrhFiMF6TFi0uRfEYlRWuHQGxpKpYL7TxsswJogV8cUCsIApCBrWKwueRLwhRBCeYfJQXOvnYK0aG6dG8QmtBntHGkx0T8lKmzardPkYFNVF4lRGmYUpIrx8i6Lk28C2ISRWaJtZnK4eXdDHX02N/OLM0SbzeGWsQl1XRbG9U/k4vG5pMbI2ISX1lWx0z8qfsfJBSKZXLq1TmYkRWq555RC4Rv15Z5mXlwn+yctmT1IGP1trDRw35cH6bG5OHNEJk+dK2MTKtrNXPnuTlqNDorSY3j/6vGkxugxmJ2c8+pWmnrsRGlVvH3FuN88Hff8mkpe8CcBMXo1O++fS4RWxXcH27jl433icd8umUJxdjzVnWaufi8cm3DVVFkLE2jlBd7nQNUk0EYE2Vw0cEj4bHczGyoMAJS2mbhsUh5xERp21/eyqVK+3naonaun9mdMv0R6bW62VHXh9krUdVnZ39Qnkpz9TfLzuzw+wXeTX4dL/NvwdwCN/x3jVwmPJUni5ptv5quvvmLDhg0MGjQo7OsB4fHHH3/MueeeC0BFRQVFRUXHCI/b2trEFNQbb7zB3XffTWdnJzqdjnvuuYeVK1dy6NAh8dwXX3wxPT09YcLj8ePH8+KLLwJy+yw3N5clS5acEB6fiP+oaO2z8+xPlXSYHMwbms4lE3JRKBR4vD7e2VpHWZuZ4VlxLPI7/IJ8Y99UaSAzPoJLJ+YKs7PmXhvfH2wjUqvi7FFZAmvgcHtZW9aJ0+NlzuC0MEHooWYj7SYHY/olhE1l9Fpd1HdbyUuKCpsA83h9tPY5iI86FmNgdcol719yhz1eSJJ86o7QqMLabl6fRGufndgIzTFC1n9UbKvp4mCzkcK0GGYWpvzLHFxNDjf3LT/EPr8W5unzigU24d7lB/n+YBtJ0VqeOieITXjihzLe2FSLSqHgjhBswrLtDTz07RG8PokpA5P44GoZm7ChopNr3tuNxyeRGKXl+5unkhkfQXWnmfkvbsHhDscmuDw+xj++hj7bsdiEM1/aIrAJ4/snCpZV6OSaVqUU2IQPtjfwwNfBAZKvb5KFr/saezk7ZHrskQXDuGxiPzxeH4P/sEq05i4cmyPaKme/spV9fkbSyJx4vr5pivx+rCzj9U1y0h+jV7P7gbno1CrWlXcIDpNWpeS7m6dSmB5Da5+d017YTJ/NjUqp4M3Lx4S1b39NbKo0cPcXB+iyuDh9eAbPXTgSpVJBc6+NOz87QI3BwujcBP5ywQhi9bIP0FOrytla3UVuYiQPnTlU6My+PdDK57tli4nb5haI4YXydhNvbw5iEwIVIYvTw/sl9XSaZNxKaLt31eF2KjssjMyNZ0ZB0BqixmBhR20P2QkRTAuB9lqdHrbVdBOllVvNypCprSOtJlxeHyOy439xkvRfGf+U6arFixfz0Ucf8c0334R548TFxRERIf+hbrzxRlauXMnSpUuJjY3l5ptvBmDbNvkDHRghz8zM5Omnn6a9vZ3LLruMa6655pgR8ptuuomrrrqKdevWccsttxwzQr5o0SJef/11xo8fz3PPPcdnn31GeXn5MVqd/9836USciH+H6LG62N/US2Z8BEXpwc+r0e5mfXkneo2K2UWpYdiEr/e34nR7Ob04Q+haHG4vH+9spM3oYGZhipjo8fok3ttWzxG/wPjySeHYhDVlcgXljpMKhB7g2wOtvLetHq1Kya1zB4kT8fryTp78oRyb28PlE/OEKPlQs5FbP91HS6+dmYUpPL9wFHqNiuZeG4ve2UmNwUpeUiTvXTWefklRx2ATnrtwZJi3zj8idtX3cP5rwYGFwLj2vyKOxia8dPEo5hdnYnd5GfvoT2JqbvHMAaI1F4pNCHWbfX5NleAwDUqN5sfbpqNUhgt+s+Ij+GrxZFJj9XSaHFz05nZqDFaSo3W8d9U4hmbGIUkSd3x2gG/2t5AQqeXp84pFRfCjHY28vL4apRJunROOTXh8ZRl9NlkLEwBHGm1u/ry6nFqDlfH9E7lp1kA0fmzCBzsa2FHXw4DkKG6cOVBoSfY09PDdgTbiIzVcMTlPjH4bzE6+2idPFh2NTVhT1kG31cWswlSRNICcINR0yl5WoW1Ho91NZYeZrPiIsMf/1vh7hOoBA8ejsQmdZhmbcHQCX9dlxeP1MTA1HJtQ1mai0+xkVG582CHjcIuRyg75QBTqwF7WZmJbTTdZ8RGcPCRNJDBVHWa+2d9KlE7NxeNzBaKlqcfGu1vrcXm9LByXK6o9XRYnL6ytot3oYO7gNM4fm/1/gnMIxD8lyfm5X+jdd98VRn0BM8CPP/44zAwwtI3U0NDAjTfeyIYNG4iKimLRokU8+eSTx5gB3n777ZSWlpKdnc2DDz54jBngSy+9JMwAR44cyQsvvMCECRP+3l/nRJLzHxoHm4PYhHlDg9iEinYz3x5oEYs2FJvw7tZ6PD4fl0zod1ztzL97dFuczH5mo4ASPn1usRDwzn12o4B8nj0qS9CBr1+2mx+PyC3d3MRINv1OHvkMZQgBbL9vDulxelYfaee6EGxCgJHUYXIw4fEgNuGmWQMEJXzyE2uFFmbaoGSWXS2vv8Uf7mHlIXmQIC1Wx4775WnJpVvreOg7ecpFq1Ky8XczyYiLYF9jL+e9VoLXJ6FQyNNZE/OTsDg9nPzsRvEz/lnYhDs+288BfyXnrxeOFBytf0VsrDSwr7GXQakxnDY8iE1o6rGxodJAcpSWk4akiYkwh9vL1uoulEoFUwcmh3kpVbTL2IQROXFhKAOTw43B7CQ74VhsQp/dTYxeHfY8ga/9EgvN55PwStIx3xsYTU+K0h4Xm5ARpw/zp7G7vOxp6CU+UhO2Ph1uLxsrDUiSxMzCVFEhdHtlbEKXxcXsolT6+8W5Pp/EV/taqDFYGJuXICo0kiTxzf5WttV00S8pKgyb8GvjcIuRh749gsHi5NRhGdxzSiEKhYKmHhu3fLKPan8FJYBNsDg9XL10FzvqekiP1fPqpaNFNSZg56BWKvjjGUPEZNfD3x3h3a31QHgi+35JPX/4Rp4GS47WseHumUTr1GyqNHD5O7IMROkfFR+RE09rn53pT68Xxo4Pzg+Oo4/802pRrQsdFQ/1W8qKj2DrvbLNw59/LOfl9UGLiQBu5f8q/ikj5H9PPqTX63n55Zd5+eWXf/Yx/fr1Y+XKlX/zeWbOnMm+ffv+5mOWLFnCkiVLfvE1/a/FioNtLN/b7GedDBLq/A0Vnby6oQYJGeYXOJ0daOrjoe+O+Fknmdx5csH/aYb+t6Kh28qCl4PYhD+dNZTL/TeGC14vEUlAWZuZFwPYhOWH2Ok/+W6r6f4/93f4LaHXqMhLjuJAUx8xejUZ8cGby6zCFOq7rOg1KuF+DHLCU9FuFr4wgZhfnMGehl7ajHZmFaWS7NfCTB2UzBWT8yhtMzE0M5YpA+XnSovV89yFI/mprIOMWD3XhBDK37lyHJ/uakKnVoURiJ88t5hxeYnYXN4wseqiyXnkJkXS0udgUn6iqC6Nyk1g9e3TKWszUZgWI06i0To1a+6cweEW2dm4/z/BXTUhSsu7IQ7LIFcHVEedukFONmVd0v+fUVyNwcKhZhmbMKMgRbQUGrttrCvvICFKxiZcNjGITfh8dxNKhYILx+WItdtlcfL2FlkLc9bITFFJMzvcPLO6kvouqzDbi00JYhN21vWQnxzN708fLFqUL62rYvk+uXrz+9MHCz3SB9sbeGGtrIW5NQSb8OORdu7+/AAmh4fTh2fw0sWjUCgU7Gvs5cqlu+izuclPjuKTn8EmvLNoHFMHJePx+pj33CaBELjzpAJu9ptE3vjBHtb7dSehoNG/rK4QurS//FjB3gdPIkKr4qt9Ldz5+QHxPgewCZUdFm77dL+4rjtKu/Vr4rsDrez2a2Te2lzLTbMGEKPXcKTVKNppm6u6aOj2YxPsbg40y9fbTQ6qOiyCDdXcG8QmBLR0AIqf8VtOi9ULB/bcxAgxKp6bGCkc2AdnxIokPTFKyynD0tlYKQ8phN4fbp0ziI92NBKlU4cR1m+bOwiVUoHTIxt2BuLKKf0xOzy0GR2cNDiN1Jj/DH3rCUDnf1klx+uTKHzgB5G5hyriz3ppCwf8/fSi9BhW3TYdCD81aFQKDj007zefcv7ZETDek7EJETxz/gixIb67tY6PdzYSrVNzzylFTPAv6N31PbyyoQa318dVU/oLrs5/WkiSRI/VRbRefQxw0OevgPyScZvHd+yp2+310Wt1kRClDfua2+uj1mAlMUorWgOB63saetGplYzMiRc/0+uT2FRlwOb0Mq0gWZTSfT6J1aUdtPTZmTIwKazVtvpIOwea+yhKj2V+cYZ4rk2VBn48IoMnr5raXzzX9tpulpU0oFEpuH7GAAb7Bc6HW4w8t6YSk8PDwnE5nDM6OBBxvOi1urj10/3sa+ylIC2G5xeOJDshEq9PYslHe/nhcDsJkRqevXCkYECFYhNunjWQO0LG839NlLebmP9CEJsQAI063F7GPBJsUV03PV+IjU99frMQhI7tlyBGxe/+/ACf+83h1EoF5Y+cglql5N2tdTzsr5gBfH/zVIZlxR2jhQlUxtxeH0P/+KMQm4c6RZ/36jaxqY/LS+DzG+Sf/ZcfK3hpvSy6TYrSUnLfHLRqJevKO7j6vd1IkmzsuPLWafRLiqLd6ODMl7YI0fq7V4xj8sBkfD6Jy97ZwdbqbrQqJY+dPUxMKb26oYZnf6pAkuDm2YOEaHp7bTe//+oQXRYX84szeHTBMBQKBR0mB/cvP0SNwcKYfok8smAokVo1Hq+PF9ZVU1LTRU5iJPedOjjsM/1rwuH28tnuJgxmJycNSRNTUCBP7VV2WBiZE8+YfkHRelOPjT0NvWQnRIipysBz7W3sJVYvYxNC129DtxW318eAlPB2ld3lxex0kxKtO2a9u72+Y9b30fFzBo5WpwePVxJtq0D0WF30WJ30S4r6xef+V8YJCvnfEf+NSQ7II4pf7ZOptYtnDRSTI/VdVj7Y3oCEfBMb4IcJ2l3you22upg3NE1MM/ynhNcnoTzOBm+0u/H6xZahYTA76bY6yU+ODrNSbzc6qDVYGJgWTWpMsFLS2mdnV30PmfERjO0XxCZ0mgLYBDWnF2eIxLDX6uKz3U04/diEAIH4XxGrDrfx2Moy7C4viybliRPx7voeFn+4l06zk6kDk3nz8rFEaFXUd1m5+M3ttBodpMfq+eCaCQxMjcbm8jD/xS3UGqyolAqevWCEmKQJdT4N3Qzv/+oQH+1oBMKxCW9truXRFWWAnERv/p08Kr6tpouL39whXvtrl47mlGEZGG1uRvxptbh+7bT+/P50mT815cl1tPTJoMCJ+Yl8cp0sfF3y0V6+9zspR2pVHHl43t9M+I7e7F+7dAynDEvH7vIy8Ym1oiJ4+9wCsbFe9vYONlfJZfzQtuCvjS6Lk6uW7uJgszEMmyBJEg98fZhvD7SSFKXl8bOHC7Hx1/taeG1jDUqFgptDsAnl7Sb+8mMlRruLs0dlC2NBk8PN82tkbMLE/ESumtJfYBO+2tfCrnq5krNocp5YA6WtJlYekrUwC8fnihHvPpuL7w62oUCuAgaqWD6fxNaaLnqsMjYhtP3U0G2lvtvGkIzYsGTC7vJS320lPVYfJmaXJAmD2UmkTi1+biC8PgnpNxo4+nwSRrub6OO0435NSJLEngYZmzChf1LYa99R202FH5swMgSbsKehh81VMsNuwchM8foPNPXx1b4WonQqFk3OE/eaqg4zb26uxeXxcenEfiIZau618ZcfK+g0ywLjyyf1Q6FQ0Gt18eA3hylvN1OcFcfDZw0lRq/B6fFy35eH2FgpO7A/fd4IIWJ+5PtSlpU0EKFV8dCZQ4T9w5ubanlyVTlen8T5Y7L58/my/cP3B1u5/dP9uL0SA1Oj+XbJlN/sCP2PjhMU8v/S8Pokuq1O4iI0x/TWa7ssROs0zBmcJsrZPp+8OCVJYlRuAg/MlzcLSZLYXttNl8XJpPyksHHcbdVdVHVaGJUbH3ZKKanpZpv/JHTOqCyxaPc39bF8bzPROjVXTAku2tJWmXXi9vpYNDlPmN41dtt46sdyDCYnpwxL58opeSgUCrosTv7wzWG/O2cCD581lGidWlRvNvkX7TMXjBDVgPu/OsQnO+WS66MLjo9NWDguhyfPlSc0vtnfwh2fHcDrk8hPjuL7W6YSqVWzp6GHi97YgcvrQ69RsvzGIDbhpGc3itP1owuGcam/hbDg5a1CK7K1uktUzO76/ABr/diEz3Y3CWzCvyK+O9hGU4+cBHyyq0kkOWXtZuFts7exF7PTTYRWhcnhFmOi3Van2NwlCWHWFgBnBiInMZJd9b0oFYgEGuSJl6/2tmB3e0UVDWBifhJF6TG09NmZWZhKQpR8UhyaGccZIzI52NxHYVqMuKnHRqi5/7QifjjcTkq0jotDSunPXDBCVHJCqdkPzh9CZnwEZoeHc0dn/WK7dVRuAl/cMMkPwIwRbK0IrYqf7pjOtupukqK1TAnBLLx7xTj2NPSiVikYlfPbR8uTo3V8u2QqLo8PjSrYElMoFDx29vAwSnjgDLpgVBYLQozqHG4vDreXovRY3lo0Vlw3Odx0mmTtzYPzgzDTgNA2OyGCc0Zni0qX0eZmXXkH8ZFaJvQPmuRZnB6+3NOMhIzlCLTN7C4vy0rq6bG6OWVYunBS9nh9vLet3q+FSeSM4gz6JUUhSRIf7Wj0a2EiWTxzoKi+fbmnmS/9bfU7TioQFdk1pR28uL4an0/iuun5flyHgp11PTzw9SF6rC7mF2fyxzNkbEKtwcL1y/ZQbbAwKieeN/3YBKPdzSVvbedwi4n4SA1vXj42zHjz18SrG2uEp1NSlJbN98wiUqsOwyYAfLV4MqNyE2jqsXHeayXC2LHX6hLi+0vf2oHZj02o77Lx8iWyFuaP3x5hW003ICMitt03B5BtIb7eL/tMbavp5swRmSREadlR1y0S++pOC+eMzmbqoGQMZiffHGj17xUutlR3iSRnTVkHLq8Pl93H1upukeTUdlnEGq/sDDqwO90+UXF0uL34/gNLIieSnP+g6LG6WPhGCZUdFuIjNby9aCxj+iUiSRIXvF4iSsoPnD5Y9Jtv/2w/3/gXyJyiVN6+Yhwgs07+sloWnyZEath27xwitKowTpFCAd8tkcvctQYLF725XbwWm9MjWCeXvrVDsE4ae2xCwPbHbw+LE/+hFqPQwizbXi/4RTvrezhndBbxkVpKarqFWLXGYOWCsdlMyE+iyxLEJhjtbrbXdFOUHoskSWysMOCTwOzwsKu+RyQ5jT1BbEJdl1W8bp8kiY3DK0niJhSlUxMboabL4iI+QitcV2N0GkbkxLOtppvkaB0FIVML54zO5v2SeqJ0ak4aEpzou3hCLi19dlweXxhV/F8RT59bzLSBydhc3rAppEsn5FKYJo/Pjs1LEIlocXY8G+6eSWWHmUFpMSJpidKpWX37dCrbLSTHaMN4Qs9eMJL7Th2MVqUMK21f4McmeH1SWIVsWFacaI0GQpIk4iI0QjcVuGa0udFrlVw3fYBIYiRJoqHbilqlZGJ+UpinSWWHGZPdTXF2fJiPzOEWI829NkblJoSJIw81G9nf3MfAlGgmDUgKax0EIjVGLxKKui6rwCZcMiFXJG+tfXZe3VCD0S5PE/1SC9Tu8vLIilJ21fUwICWaP501lNRYPZIk8afvSvnuoFy9eWTBMLERv76xhufXVqEAbj8piE34ck8z9/uxCXMHp/Lm5WNRKBTsqO3myqW7sLm8ZMbp+cqPTWjutXH6C1sw2uWR6bcXjWVmYaofm7BRJL+h2ITr3t8tNtxPdwVbVE/8UMb7JTI24RU/NkGrVrJ8b4vAI7xf0kBOQgSjchMoazNz/1dBK5DEKB1XT+2P1ydxz5cHxQYaqVXzzAVy9eD1TTXCqPHFdVWCSfZTqTwWDfDJrkbuPVXGJtQYrML1+UCzkTajg6RonYBtAvTZ3LT6K4C/JQalxhCjU2N2ehiWFYc2xIl8RHYcFR1mRmTHk+uv2qbF6lk4LodNlV1kxUeEfT4enD+Ej3fJbfVQFMr9pw3m1Q01OD0+Fk0OJvY3zRqISqmk0yxbTASqSPOGpvPsBSMob5cnqgIauuyESL5ePIWtNfLPDjWP/HrxFNaWdxKlVYmDMMBjC4Zzzuhs7C4vE/KDa+LcMdlMHJCEweykKD3m31bG8LfiRJLzHxQ2l4fWPrly0GdzYzAHjZoCNuoALm/w36GbU+io5OCMWGL1akwOD2P6JQgB25DMWIZnxVHdaWFMvwSy/ayTrIQILhqfy9bqLnISg4tWoVDwh/lD+GRXI9F6DdeGiPn+eMZQ3thUi8fnY1EID2bJrEHCQv+UYemi/H368AxcHh+VHTJnJWAfn50QybdLgtiEk4cEsQkrbpnKhgoDMXp1mB/Ek+cUc+G4HJyecGzC2aOymZSfTJfFyaC0aFENK0qPZcs9s+myOEmJ0YnrEVoVH1078ZhTN8gW6wFTvUBIkhRWSQPZYMvm8hAXcSzF/B8dUTq1sGT3eH0s39tMa5+daYNSxPspSRJf7mnmYHMfgzNiuWBsjvhsfHegVcYmxOlZPHMAw7Pl1uXasg7eK2lAq1Jy06wBYjpkT0MPT62qwOLwcNH4HC7zj51XdZi558uDNPfamV6QwmNnD0OnVmEwO7lu2W72N8nVm9cvG0O/pChcHh+Xv7OD7bU9ROvUPHfhSOb6E8fbPg0m6qGtq+fWVPLcGlkQW5Qeww+3TpMt8fe1CJFplFbFT3fMIDM+gsMtRs58OYhNCLTH/lZcv2y32Fh31vXwpV8L85fVFSzf2wLAikNtVD566t/0EKnsMItWXlWnhdlFqVzg/3x+tLMBh9uHwezkx8Pt4vO6trwTm7+CuL6iUyQ59d1Wsd7L2834JFAp5HUfMG20u73i31qVkhi9GqPdjV6tFO0GtVLByJx4Vpd2EKVVidM+wMlD0jjcYvRXcoKTsWeNzGR/Ux89VhcLRmaJZHb24FTOGpkpV3L6JYpqTWF6DPecUkRJbTf9EiM512/IqFIqeO+q8Xy1r4X4CA3XhWz2zy8cxSc7G/H4JC4M4Z7dPa+IwvRYeqxO5gwOxyYsXzyZ6g4LxTlxosqbERfBurtmcLDJSHZiuO3Cr42ThqSx7w8n4fT4iAppp+UkRvLNcbAJWrWSJ84JxyY43F5USgUXjMsRk5Egt73dPolhWXGiqgNym8pgdjI4I5Z7Ty0S15t6bFR2mClIiwnTnjV0W9le201mfARTByaLtdvaZ2fFwTb0fu+swNh/p8nBB9sbcHp8nDcmW3zujHa51dludDB7cCrzizPJio/A4fby5x/LOdRiYkhGLLfNHfQfkfSc0OT8h2lyuixODrcYyUmMFJoakDe08nYzMXo1/ZLCJ1C6LU58EscI7Xw+yd+e+dsf1J/zgDA73GhUymO+v8PkwO31kZ0QrkWp77LSZXEyLCsu7HtqDBaqOiwMzYwN06/UGCyU1HSTlRDBzIKgQVtjt43vD7USpVVz7phs0cPv8C9al3/RBsrfPVYXr6yvpsPs5OQhaeJkaHd5efanCkrbTAzLiuP2uQXoNSq8Ponn1lSytqyTjDg9fzhjiHhPX9tYw3vbZGzCfacOFhWcL/c088iKUuwuGXoZuCmFYhPG9pOxCaFsmX9mvLaxhid/kFluKqVCYBNCx00BXr1kNKcOz8BgdjLusTXieqgJXKgWZvKAJD66Vp5yufnjfQLZEKNXc/CPJ6NQKMJ0OEoFbLx7FjmJkRxs7gubjnvnirHMLkrD4vQw4+n1dFvlxD20Gnnt+7v5qVQehb9kQq5o5yzdWsefvi/FJxFmfrenoYfr3t9Dt9XFiOw4ll0zgVi9hl6ri8Uf7mVPYy+DUqN5+eLRYVyg48UPh9p4Y7NsvHfTrIEiua/rsvLC2ir6bC7OHp19XHTH0fHjkXZ21/eQnxLNBWNzRFJU3WlhTVkHiVFazhqZKRJsq9PDT6UdKBTyJhtITiRJYl9TH0abm/H9E8M23U6Tg+Y+O4NSo4URJMiJdmufneQY3TGaF5vLg1al/EXNy/HC55OwujxE69Rh9wi310dbn4OkaG3Y6/N4fZS1mYmNCL9PeX0SO+q68XglJuYnieTJ55PYWGWgy+xk2qAUMTUkSRJryjqp7DAzKideaJdATgi3VnWR68cm/FYtTo3BwuMryjBYZC3M4pkDUCgUdJod/O6Lg5S3mRmeHcefzysmPlKL3eXl5o/3salKbqu/sDCITfjdFwf4bHczOrWSh34Gm7BgZKZAT3yxp5m7vziAJEF2QgSrbptOtE5uq1/4+nb/AIGCz2+YzMiceDpNDqY9vV4kvw+fOVRIEELX7mnD03nlEnkc/Yp3dwrH5Mw4vWiPhb4mCFpMHN2a+3sOCf/MOKHJ+S+N5GidIMaGhlqlFAtqb2Mvr2+sweuTuHJKf6b4bwDl7SYeW1FGt8XF6cUZLJ45AL1GRbvRwd1fHPDfMBJ46rxi4iJk1sniD/f6xXMRvHTRaHE6CGxuWrWSR84ayoXj5EUb6qUQumg/3NHA77+SnU+zEyL46fYZRGhVlNR0c8lb2/FJsij1q8VTGJYVR7vRwanPbxbTHg+dMYQr/MTsc17dKnQkexp6hX397744yEa/nfl3B1rFon19Uw1vbakT1ycNSJI9Jio6BU5ha3U34/MSmTM4DYPZKRZ5aZuJ4dlx3DZXhk2+t62eNr8O5+t9LSLJ2VxlEJ4Tq4+0iySnKQSbUG2w4PR4/2VJzqzCVH480k5rn51ZhalCgD2mXwIXjc/hYLORovRYsUEkR2t55KyhrA5gE0Kqb69cMpoPd8gAzKtDRsgfPnMog1KjsTg9nDUyU2x0V07pT0qMjuZeO1MGJovktTg7nu9vnsahlj4GpQWxCdE6NWvvnMGu+l5SY3SMCBFwvn7pGMraTWhUSgalBhP7K6b058yRWVidHrITIsTPHtMvkR33z8Hu9oZtvglRWjGC/PfGqcMzhMg3NPonR4UJjzvNDlr7HAwMYTKBnHgfaTWSlxQVBjPtNDnYWGkgMUrLzMJUbvCb5/VaXXy8oxEJOGtkUIdjdrh5fWMNvTY3pw/PEO+bw+3lpXVV1BqsjOufyMJxOaTG6vH6JF7ZUM3Ouh76J0dx+0kFIqFburWO5f7BhHtOKRL3jW8PtPL8GlnHduOMAaLasKWqi3uXH6THKmMTnjhnuMAmXPHuTtqMDgrTYlh2jYxN6LI4OffVbTR024jWqXl70Vgm5CchSRJnv7KNQy3yhOfd8wq5aZbs1nzbp/tFshwqKH9hXZWo1sXo1ey4fw6RWjWrDreLtjrAlzdOYky/RKo7LVz57i5x3e2VhC/Mr41PdzUJbd2hFiOXTuhHXKSG/Y19IjloL3VQ1mZm0oAkemwuNlUacPmnEvc19or3NoBlcHp8HPb//iAfwALRHfJvnVqJWqnA7ZWI0KgIFAkTIrWkxepp6bOTGqMnwd8ujo3QMHVgMhsqDWTE6SnODg6PXDqxnziYBdr5ANdNy8fi8PjbY3ni+iUT+tHSZ5crOUWppMXKh+MZhSncc0oRh1uNDMmIDatW/zvHiSTnvzAeW1EmFlWNwSpYJ5/sbBLTIeXtJq6YnEeUTs2ehl5xfdWRdq6dHmSdbKvpxuuTaOi2cbClj+HZsiPqIb/vg9xeCgrVAhs9QG/Iv6N1ajQqedHGRWhQ+g9XKTE6MuIiaOmzk5MQKfrN8ZEaZhaksMHv7zAqhCF01dT+fLi9kSidKoxHdP30fGwuedGG+jtcMTmPHotLVHKS/D9j7pA07ju1SK7kZMaJdld6nJ73rxrP+gq5knPZxOBzfXHjZL4/0EqkVhUmBH3qvGLmDknD7vIyN2TxXzqxHyNz4mk3OhjdL+H/21/l10RhegxfLZ4i/l+SJKxODxEaVVgp3eeT/TpiIzRcNilPGJJJkkR5uwm1UsmInHiReEiSxO76HixODxPzk7jFL26WJIkdtd009tgYl5cYdkPdVd8jDO9mFqYIgeuehh5WH+kgOVrHJRNzRdJY2mrigx0NqBQKrpiSJyb+qjstvLiuCrPDw/ljsjl1eAaJUVo6TA4e+b6Uxh4bkwYkcdfJhcToNZgdbn7/1WH2NPRSkBbNk+cGsQn3fCljExKjtDx1bjFTQyjxvyY2VRq4+r1duL0SSVFavvNjE2oMFk5/YfNxsQknP7dJrJXrZ+QLqvi17+8W2rpvD7SKv9/jK8v5eKfc7npnSx1H/jQPjUrJV/tahLZu+b4WCv28rcMtRiGU3VBhID85issmyfTqx1aWCWxCRly9AKl+UNJAjUHWr71XUi+SnM3VBpp75UrA9wfbeOjMoeg1KlqNdpHw13VZ6bW6SY3R4/L4xO9mc3lEkg/y5g2y3k8XotsqTItmhQJ8EqLVBTA6N4GUGB3dFifTC1JElWtUbgKTBySJce2BKXLVNjcxkiun5LGtupucxAjmDf3tG/HNswcSF6Gh049bCejPThqSxhuXjZGnmrLjBE4hKz6ClbdOZXttj6g+B+LbJVPZXNVFtE4tHg/yIMPFE3JxeXxhQx5njMhkysBkeqwu8pIiRZUtPyWajXfPxGh3ExehEdf1GpnBdbyq+40zB3DjzKBI3+eT8EkSkwcmh1XAbC4PRrv8N3z2gpHiusnhprHbRk5iZNjz/KfEiXbVf1i76u+Jyg5zGOsksDmZHW6WbW+g2+LilGHpogcrSRI/HunwU2sTwm72tQYLO+t6yE6IZMrApDDWyfbabqJ1asb3TxTXJUmirM2M2+tjeFZcmGNqn81Fn81NTmJkmH7B65OwOD3E6NS/6LB6vHB7ffgk6RjvGIvTg8nuJj1Wf8zraOi20S8pMizp6LO52NfUR2ZcRJg+wWiXJ1D0almsFyilW5wevt3fit3t5fThGaKU7vR4+WRnE21GBzMKUsRNzeuTWFZSz8EWI4PTY7lySh5qlRJJkvh4ZxNryjpIi9Vz+0mDhDB4xcE2lm6rQ6tWcsvsQUL4uqFCxibY3V4um9hPtHYOtxi5/dP9tPTZmVGQwl8vHIleo6LNaOfyt3dS1WkhOyGC964az4CUaBxuL+e/VsKhFuMx2ITr3t/Nan+b6PJJ/fjTWcMAeQz1bX9lbFBqND/dMQOAT3c1cs+XsshUq1ay7s4ZZCdEsr9JblEF4pVLRnPa8AzMDjcjHl4tWleheps5z2wQG+7o3HiW+zf70PaYTq2k/JFTUCgUvLNFbl0F4sfbplOYHnMMNuGFi0Zx5ohMHG4vYx9dIwTzoa25Xxuh2ISMOD1f+wW/nSYHC9/cTq3BSnK0lqVXjmdYlnxIuPOzA3xzoJWESA1PnRvEJny6q5EX1spVxCWzB4q2xoGmPh5bWUafzcWCUVmCV2W0uXnqx3JqDRbG5yVy85xBApuwbHsDO+t6yEuO5KZZA0W7a29jL9/ubz0Gm9BlcbJ8bzNeH5wzOksItj1eH6tLA9iElLA2dEW7mVqDhWFZcWGtZqPNTVm7ieyEiLDHy1OgVmL06mPccq1ODz5JCmuzhX7fL90bjqeb+0dGaauJqk4zQzNjGZgajk3YWi2LfEMd2GsNFr7e30qERsVF43PE+9zca+O9bfU4PT4uHJcjEvgui5Pn11TJZntDUrlgrEyPtzg9PPlDGaWtJoqz4/ndKYXC++fRFWWsr+gkPVbPowuGiRb9X3+q5P2SeiI0Kh6YP0Ss6U92NvLwd6U4PV4un5THQ2cOBeT7yeIP92JzeRmcEcvnN0wiWqemvN3E+a+VYHbI9+dPr58kDij/13GiXfU/HAVpMQJqB/LGZ7A4GdMvSKsGedKkws86OWVYOqcMSxePL6mRT0InD0kn36/9qWg3883+IDYhcGNu7LbxztY6XF4fF43LFS2tTpOD59ZW+QFyaZw3Jlt2AHW4eXxFGWX+VtB9pw4mLkJ2Y/3Tt4eFO+djZw8XuqM//1jO+9tkf4cH5w8RupqlW+t4/Idy3F4fV07uzx/OkDfJn0o7uPnjvTjcPoZlxfLZ9ZOI1KopbTVx/mvbsLq8RGlVfHbDJIZmxtFrdTH7mQ2i+hSKTTjv1W1ieiO0BXf35wf44bA8DbZ0Wx2bfyePir+5qVacrl/bWEPJfbPJiItgU5VBIA2ghayECE7za2FCJ1ASIjWCU/T4yjLRT1cqFCLJ+Xx3M+XtZgBe31Qrkpzd9T3ita4p66DH6iIzPoJui0tMmbX02WnrczAgJRqvT6LLTxd2eXz02oIlc03ISVsbomvonxwlqnKhyeDgjFiy4uWq3Li8BBL8N/X+SVHMLkplr18LEyilR+vU3DJnECsPtZESo+PcMUER5QPzh/DOljpUSgU3zgieHn83r1AI5s8bE2TnXDIxF58kVxwnDUgSr2tMv0TevXIc+xr7GJQaLSjoeo2KVbdNY0OFgSQ/NuG3xqQBSWy/fw6dJgc5iZFCb5Yaq+en22fQa3MRF6ER2hCFQsGzF47kmQtGHLMhXzguV7R+ITi+PyInXsAwQW5T9dpcpETrhE8RyDqzyg4jGXERLJqcJ9oQDreXbTVdxOo1jMqJD2t3rTrcLrAJgYk2t9fHtwda6bY4mVWYKjZJn0/i630t8mBCXgKzClPFe/3tgVa2VctamKum9BdTcOvKO/h8dzMxejU3zRrIQH/LcVtNF6+sr8Hj83H11HzxNzjSauThb0v92IR07jq5EKVSQUufnVs/3ie31XMTeH7hyGOwCWmxOl69dMw/nB6/paqLS9+WPZ1USgXLb5zMiJx42ox2zngxaOwYqiVb+MZ2Mbl2oKlPoBnuW35IVM5/Ku2gxN9WX7q1nmXb5cm1NWUdzChIJT1Oz5YqAx9sl6t4exv7mFGQwqyiVLqtLt4vqccnQUO3jVWH20WS8+XeZnptbnpxs+pwu/j77arvFaTzrX50A0C3xSVE7p0mhywT+M8wNP7FOJHk/JdHqAA0JUbHprtnEaFVsbHSwKIQ1snyxTIduKnHxlkvbxWeCaHYhAvfKBFl6LI2kxgVv/+rQ4J1sqG8U2hh3tpSJyZK1pR1MLsolaRoHduqu/hkl0wsPtBsZM7gNGYVptJpdvDhjkYkCZp67Kwp7WDADPmG+M3+VsxOD2anh3XlnSLJ2dfUJ3Q7u+p7xO/dY3XicMvXO0xOUZ5XKRX+Eq8XtUqJ2t8306qV5CZG0mszEq1TkxbCLppdlEp9txW9WiVglgBnjsjkSKsJu9sbxlM6bXgGO+p6aO2zM7solRS/Sdqk/CSundafg81GBmfEivZYaqyeZy8YISo5oXbzby0ay6e7mtCqlWF988fPGc7ofgnYnB7OHBmOTchOiKSlz86kAUliampYVhxr7pjBkVYTg9KixSh8lE7NmjtmcLDZSGqsLkzM/tJFo7jzpAI0KmXYKf3Sif04Z3QWbk+4O2pxdjxb7519zKk7LlLDO37rgkAEYIW3zS0QeieQNSlKpYJZhanCaRigzWjH4vAwICU6zEemodtKY49sOhf6vtV3WTnQ3MeAlOiw52rstrGmrIOkaC2nDssQnketfXa+3NOMUqng/DHZAkD6c2F1enhhbRW1XVbG5yVy9dT+xKXFCMr0Lr8W5r7TBpPs//u/sqGa5XvlaaLfnz5YtGA/2N7A8wFswpxB4jX9VNrB3V8coM/mZn5xBi9eJGMTDjUbufydHfTa3OQmRvLZ9ZNIj9PTYXJwxouyo3AoNsHnkzj9hc2iMnbLnEHccZL8nodiE0K1MM/+VMmrG2Rt3Z9/rGDPAzI24Wu/z1QgAlTxyg4zt3wcxPBoVTI2QZIkFn+4V6xFq8vLy/77xl9/qhQWE51+92CQk6Wd/rX8+qZabpg5gFi9hkPNRtHK21hpoK7LyqhcLWZHEJvQYXJS3WH5hyc52QkR9E+Ooq7LyqDUaFGFSozScnpxBhsqDGTGR4S1om6aNZBl2xuI1Kq4ZGLw/nCrv717dFv9yil5WJwe2ox25gxOE1qYk4ak8/CZQynzD0gE7htpsXo+v2ESGyoMpMfpOX9McGJr+Y2TWXWknQiNivnFwfvDk+cO59Rh6djdXmYWBttp547JZmSu3FYflhUnYKFF6bFsvXc2TT1yuyr2OFW2f/c40a76L2xXhcaqw23c/ukB7G4v4/sn8uE1E9ColDR0W7n6vd1Ud1oYnhXH24vGkhqrx+H2cufnB0KwCSPFSe29bfV+1okqDJuwp6GXl9ZVCQFbQFxpMDt5aV0VHSYn84alCeMpr0/i452NciUnK44LxuaITXFnXQ9bqgxk+U3LAqdfg9nJ6tJ2orRqThmWHgbq21LdhdPtY3pBcpgbZ3WnhU6Tg+HZcWElcIvTQ0uvnayEiDCRqM8n0WNzEa1THzMx9nNW6Ec/xidxzCixx+uj1+YmPlJzDDahxmAhMUob5rDs8frY19SHRqVkRHbcMdgEq9PD9IIUccORJIm1ZZ009dqYmJ8UpmlYU9ohm+2lx4bBHzdVGmSzvRjZtyRwU9tZ18Oy7Q1olAqum5Evxm5LW038dU0lZoebC8fliL9lU4+NB74+TGOPjSkDk3hw/hB0ahV9Nhe3f7qfvY19FKRF89cLj8UmxEdqePaCEQKi+IdvDvN+SYOMTZgd3IhDE/VRufEsv3EyCoWCn0o7uG6ZjA+I0alZees0chIjqWg3M//FzSKxDWATnB4vo/8UxCZcM7W/MMc8/YXNHGmVsQlj+iWIUfGfiw+2N/DA14fF/wdM4I5uzT129jAumdAPj9fHkBBswkXjc4QuKtRBOhTZEIpNSIzSst2PTdhcZeCKd3fh9UlEalV8d/NUBqRE0250cMZLWwQb6u1FY5k2KAVJkrj8nZ1srupCrVTw8FlDBavo9Y01PLO6Ep8ksWT2QJFwbq/t5v7lhzBYnMwvzuCxBcNRKhW0Gx3c/9UhYTHx6IJhROn82IS1VWyplgGY951WJD7Ta0o7+HxPE9E6DUtmDxT8sYZuK+9ta8Dr83HxhH7iPuNwe/l0V5NsxDkkPcxFeGOlgSq/xUSox1FzbxCbMKbfbzP8+6WQJHka9ei2+PEeB8feK2wuDx6fdEyi0G1xytqb5HBsQqfZQa3BSn5KVNj9ocviZHd9D2mx+jCsSrfFyY9HOtBrlJw2POjAbnK4+WJ3MzaXhzNHZAkau93l5f0SeZBiZmGKGGjxeH28ubmOQy19DMmI5brpA9Cq5bb6+yUN/HikndQYHXfNKxStyM92N/Hu1nq0aiV3nFQQZufxz4oTWIe/I/4XkhyQbxpWp4fEKO0xC8/rk/6mvwf8PBfJ5HDj9UphFucgL8Ieq8vf1ggu2jajnZpOKwVp0WEn5XajQ2ATRucGF22XxcmP/tNI6KINYBMcbh8LRmWKUVSby8O7W+tl8GRhqminuTw+Xt1Qw5FWI8Oy4rhhhrxofT6JNzfXsrask/Q4PfecWiTM8D7b1cQ7W+vQqZXcflKBuAGsOtzGoytkbMLlk/KE5f+ehl5u+nAv7SYH0wYl88ZlMjahodvKxW/uoKXPTkacnmVXHx+b8Mz5I4SQOZQCfOHYHNF6DLCTAPKSItkQMFcsqedBP5lYrVSw/q6Z5CRGUlLTHWbgKLAJdlkLE4jQzX7qU+uEyHRC/0Q+9bdIQrUweo2Ssj/JWphQqjjAmjumMzA15jjYBPlnO9wyNiFQEbxt7iCxsYZiE84amcnz/rbg6xtreMI/Cj88K45vl0wRo+JXvrsLk8NDfnIUn90wieRoHV0WJ1e8u5PDLbIm5J0rxlHgxyb88dsjfL2vhaRoHY8tGCaEl1/ta+bVDQFswiBOL/7bo7GBSk6NwcqE/olcNbU/Kj824cu9Leys6yY/JZorp+SJTfFwi5GVh9pIiNSycHyOSLyNNjffHZTf2zOKM0V1zOeT2FLtxyYMShYVIZCTy/puK0Xp4diEn6N8S5JEp9lJhFZ1zCYbqNr+0n3g57AJfXY30Tp1mAGkJEnUd9uI0qnCNmhJkjjSasLjkxieFSd+piRJ7G3spdPkZHz/xLDXvqu+h/J2MyOy48LEuXsaethUKR/Gzg5xYD/UbGT5PtmB/fJJeb/IqGrts/PnHytoM9qZOziNq6f2R6FQ0Gdz8cdvj/gPY/H88cwhxOrltvqDXx9mXUUnmXF6njy3WBwsHvm+VGhhHjpzqPCxeXtLHU+sLJO9f0LWdCg2IT8liu+WTCVKp+ZQs5HzXtuG0+NDp1by+Q2TKM6Op8/mYvrT6zH5xdyhU6ez/rJBtKRDqeI3fbiXFYdk89XUGB07fz8XgBfWyq7wgdh272wy4yNYX97JlUuDE2ovXzya04sz6LG6GP3IT+L69dPzuc9vwBl635hRkMJ7V4UDb/8ZcUKT8z8cTT02/vxjhXDIvGJyHnqNfPN/8OvDVHSYGZkdz58WDBPYhHu/POhnnUTy5/OLxQn+4e+OCNbJwyGL9uX11TyzugKfFH4q/e6AvGg9PnnRfn9zEJuw8I3tuL0SOrWS5YsnMzQzji6Lk7nPbhQC0EcWDBMW8ue9uo36btmxdF15p1i0d39xgDVlQWzC1ntlLczrG2tF2f+D7Y3C32F9RSd/XSMv5tWlHRSlx3Dy0HS6LE6xeYI8mREw93thXZVYtEu31YskZ8WhdnH9s91NIskpazMJivDu+l5MDhmbYLS7Mfj78gazk74QzYvvZ7AJGf5WmUJBWNtsZE48X+2TsQmTQtpmY/MSKUqPobnXztSBwc1wSGYspxdncKCpj6L0GHHCjdWreeD0wUILc8nEoLvq0+cV+7EJyjCDtt+fNpi0GJ2MTQjRwlw6sR86jYrGHhuTByQJQeao3AQ+v2ES+xv7GJgWLSZN9BoVP90+g201XSRF6ZgcUt5/94px7KrvRaVUMDYEbnj9jAGcNlxOzorSY8JGxXf+fi59NjfJ0VqxySVH6/j+5mk43F50amUYNuFPZw0TAurAew+ySWSgOgXywcDp8YkKVyDMDvnvmZUQIW7wICcq5e0mshMjOW9MtjBcMzncbKgwkBCpZVxeghgptjg9fLGnGZ8kccqwdNGicri9fLSjkW6Lk5OGpgnchMfrY9n2Bmo6LYzNS+D04RnkJEYiSRIf7mhgW41stnfTrIHiZ3y1r5nle1uI1Wu4/aRB4m+zvryTF9ZV4fNJXDs9X7Qz9jb28vuvDmMwOzlteDoPnTEUpVJBXZeVG5btoarTzOjcBF6/bIzAJlz85naOtJqIi9DwxmVjxKj4RW9uZ3ttDwqF/NkJtBLv/+qwmBKbWZjCUj/9/e0tdaJaFx+pYfPvZhGj17CuvIOrlu72//3kNsyo3ASae4/CJthcQk90yVvbRRJQa7CGGewdLz7c0cBX+2Rjx+21PZw5MpPUGD076nqECWVlh4UzR2YyoyCFXpuLL/Y24/XJvK31FZ0iyVlb1oHbK+H2ethW0y3ul9WdZqHbKfWDVkGu5gbWvssjD1AARGhlA0enxUWMXk2k33ZCr1ExNDOOktpu4iI0Qi8J8kTWu1vq0GtVYROe543NpsZgwerycHnIpOiCkVkcajGKQ2GgBTd5YBI3zx7IoRa5rT5nsHzvS4zS8vplY/yVHD03zAjeH5ZdPYEv9jShVam4aEKwbfbvECeSnP/CWLa9gW/9p+7ttT0sGJlFQpSW7bXdQihba7BywbgcJuYn0W2VAXxen0SvzcjW6m6R5Kwv78TjkzA7PJSELNr6LquYiqkOYZ14fMGFKk89ydejdRriIrR0WZwkRGpFmyhKq2Z4lrxok6K0YT4oZ47M4t2tdURoVGHC0Esm9KO1z4HD7Q3DJpw3JpvKDjOtRgdzilJJ9Z/gZhamcMvsgZS2mRiSGceMwqAW5rVLx7CuvIP0uAiunRb001h29QS+3CObdy0M0ds8de5wpg1MxuryhGETLpmQy8DUaFr77IzLSxQ3jOLseNbfPZPKdjMDU6OFtiVSq+bH26dT1WEhOVonJrMA/nz+CO4+pRC1UhkGFz0/gE2QwknigzNifxabENA/BK6ZHW50ahXXTMsP07A09dhQqxRMHpAcpjuq7jRjtHsozo4T1R6QqxJNPTI2IVSPdLjFyAE/NmFCfpKY4KvqMLO6VDa8O3tUlhgvr+uy8vFOmex96YR+QtPQbnTw6oZq+uxuFozKYlZhKjnIVbynfyynvksWGC+eOYD0OLnN+vB3h9lZ10N+ShQPnzVUVBCe/KGcr/e1EB+p4aEzhwpB7BubavjrT1UoFDKIM2Cx/+2BVu754qDQLbyzaBxKpYJd9T1c8c5OrC4vWfERLF88+bjYhLcuH8usolQ8Xh8nP7tJJL+h2ITrl+1ma3UAm9AUdFL+sUJ4Or24vpoDfziZCK2K5ftaeNDfHlu6rZ7MxRGMzk2gvN0s/KdA3oiumZaPzyfxuy8OipadTq0UbLVXNlSzr7EPgOfXVIkkZ01phyCdf7KribvnyWP41Z0WKjpkkfvexl6BTbC7vDT6DyFGu1v8ngBWp9f/mUMIWgHh6wKQGDLZOCA1WgjKh2XGierXoNQYhmfFiYNZYP2kxuhZOC6XTf4hhUDLE+D3pw/mo51NROtUXB2ypn8uAslRu9HJ3MGp4nNz8pA0njl/hBiQmO6fOk2L1fP14ilsrjaQGRchxOwga5TWlXcSqVWFvabHFgxnwcgs7G5vGJbk7FHZTOgvYxMKQ7AJA1Nj2HLPbDpNTlJjdeK6XqPio2snYHV50avDDRzvOKlAtHhD42h9m9cn4XB7yUmM4M3Lg9wzh9tLU4+DtFi9+JwGru9r7CU5Whfm9eTy+NhUaUCjUjK+fyJ3z/tt04n/7DjRrvovbFcZbW5e31QjqLWBBEGSJL7e30J5u+wSGupWebjFyLaaLrLiIzl1WHAMss/mYn1FJ5FaNbOLUsXm6vNJ7GnsxeXHJoSWqtuMdgxmJwVp4awTp8dLt8VFcrQu7PEgLyStSvmLY6LHK5m7vT5sTi+xEeGuqw63lzY/XTvUgM/u8nK41UhqjC7MdTUwgaJXq5iQnyRK6S6Pj59KO7C6PMwdnCYSD49/AqWl1860ghShHZAkiW/2t3KgWa6gnD8mqDlaeaiNHw7LPe3FMweIsvyGik6WbqtHq1KyeNZA8Vx7Gnr5y48VmJ1uLhyXK6pcVR1mfufHJkwblMzjZw9Hr1HRZXFyw7I97GuSp4kC2ASP18dV7+1mU6WBKK2KZy4YKabp7vh0P8v9J9nrpucLBtSLa6t4xl/ODsUmfLO/hVs/2Q/IxO+f7phBVnwER1qNnPHiFpHYhraoRjy8WrixXjUlOAU376+bxAYaOip+1+cH+GJPMyC3USoeOQW1Ssm7W+t4OKQ9tuKWqQzNjONgcx9nvhTUwjx17nAuHJeL2+uj+KHVYqIkdBR+4RslbK+VBa5TBibx4TWyUeDza6pE5S89Vs/me2ahUSnZVGngqqW78Pgk4iM1fLdkKjmJkXSaHZz76jaaeuxE69S8c8U4xveXmXLXLdvDT6UdRGhUPHVesXBGfr+kXgbI+iRumTNIJJx7G3v54zdH6LY4OWNEJveeWiTgtQ9/VyoqOfefNhi9RiVarttquslNjOTOkwvEqPKWqi6W75MBmNdPHyAS6ZY+Ox/vkLEJC8flCJNAl0f+PBvMTuYMTg3jtO1p6KGqw0JxdnzYCHGXxcmBpj6yEyLDJu08Xh9HWk3E6NVh1QaQp3c8PikMMxP4HqfHR6RW9ZvGwO0uGZtw9L3l56K1z35McgGyOL2yw0xhekyY4L6px0ZJbTdZ8RFMHhC002jts/P9QXlUfMGoLNGG7LY4+XBHIzaXl3NGZ4n30+Rw88bGWtr8ZnuB1qjD7eXFdVUcbDYyJDOW2+YUEKGV/8YvrKsSbfUHTh8s7lvvl9TzzpY6dGoVd80rFPf67w+28tC3pdhcHi6d2E+s6R213dz44V56rC7G5SXw3lXjidSqqe+ycv7rJRjMTuIjNXx4zQSGZsZhdXqY99wmmnvtKBTw1LnFXDBWrtRc8HoJO+vk9XP2qKwwc8x/RZxoV/0PRlOPjU6zkyEZsWIEGeSqS1WnhaL0mLCSfF2XlZKabjLj9cwoSBFl7qYeGysOtRGlVXH26GAZv8PkYFlJA06Pl/PH5oSxTp79qVJMBZw5IpOMuAjsLi9P+P0dhmXFceucQWTGR+D1SfzlxwrWlneSHqvjD2cMFWLENzbV8J5/VPzeU4oEv2j53mYe/q4Uu796EzBP21bdxY0f7sVodzM6N55lV08gSqemutPCwjdK6LK4SIjU8Ml1kyhMj8Hi9HDysxsFPTx0VPzC10s40Cy7kZ43Jpu/nC+bpP3+q0N87t9wsxMiBFX8rS11Apvw1zWVbL1XHhXfWt0t2EkgV7FOL87AaHOzOMSlFRCk6N9/dViMipscbjHlsnRbPSW13f6/YzmXTshFoVCwqapLnMa/3tfC7XMLyEmMpLXPzp7GXiRJ5hpVd1rkJMcnUdoq/25Wl5caQ7D6ZgoxazM7ggaOMXo1Sr9BW3zICTwnMZLkaC1dFheDQhx+M+MiGJeXyN7GXgakRFPorwbq/JNh3+5vJTFKy2nDgyyk208q4I1NNaiUijB7g8UzB+D2yqZyoXqLheNyMdplc7KJ+UkM8bcJirPjee3SMeyqlys55/orjhqVku9vmcqPR9pJiJSrSIF4e9E41pTJPkChlcJb5gxk6qBkeq0uxucnisR+ekEKW+6ZTUufjYGpMaKVlRqjZ+0dM2k3hmMMFAoFb14+FotTxiaEbr6XT8oTU4uhMTo3ge9uDrKQfD4Ju9tDUpQ2DGbq8fpo7rWRGKXl+hkDuN4/Zu/x+jjY3EeMXsPUQcnC88rrk9heK2MTxvdPFG1Zn09ifXknBouTaYOSRZtNkuTr5e2yyHfSgCTR7txS1cVm/3DAwnFBK4kdtd18saeZKJ2a66bnC3+uwy1GXt1YI/PJJvUT5PJag4Unfiin0+zklKHp3DAjnyidGoPZyT1fHqTcX0F56lwZm+Bwe7n1k32irf7chSPFPeueLw7y6W55CvGhM4Zy8YRgdfF4sXxvM3d9fgDfMdiEXi58vQSPT0KtVPD5DZMYlZsgi6D/ulFMiYVqYc5/rUSs3W013bx6aXBUPOAz9cWeZnY/IGth3tpcJwTlX+5tZnQ/+b6xraZLuMVvrupiRHY8pw3PoMviFK7Ph1qMDE6P4Q5/peWtzXU09sjVtI93NorP8YYKg7CG+P5Aq0hy6rqswmW5rM2MxekhUqvG6fFh9UsGbC6ZcA+ybUWgVaZWKsKSwcK0GHbW9aBSKoQtwL9jnEhy/kvis91N/O6Lg4DsvPnj7fKi3V7bzcVvHotN6DA5OOW5TeJ0HY5N2CZ0JLvqg9iEe748KOzMvz/YJvwd3tpcy2sb5cX5zf5WxuUlkBEXwcbKTl7fWAvIi3ZMbgJzh6TRZXGKRV7WBsXZLdzuL7Mu3VovEpAv9zaLJGdzVRdGu7wB/3SkQyQ5Tb02cb2q04Ld7SVKp8bp8YqSud3txemR/61SKIiN0NBqdKBVKcO4OsOy4jjQbESjUoRNKE0dlMza8k4sTk8YrHB2USqrj7TT2idPJyRFyVWZkbnxXDg2hwN+AGaADhwboeaJc4aLSk6o3fzLl4zmg+0BbELw+sNnDmVAShQWh4cFo7LE6fGKyXkkR2uPi034bslUDrUYKUiLFhuTXqNi7R0z2VHXTVK0jtG58eJnvHHZGI60mlCrFBSFnMavmNKfM0ZkYnF6yE2MFD97dG4CO+6fK7/XIafuhCitECqHhkKh4P7TBodRwgPwyFB/JpCrkFaXh/7JUUJ4DHLFoLXPzoCU6LCR806Tg0MtRvolRYU9l8HsZFOlgYQoDTMKUkUC1Wdz8fnuJiRgfnGmaJuZHW5e21hDr9XFacMzGOPXBDk9Xl7ZUE1Np5VxeQlcOC6H9DgZm/D6xhpZC5MUyZ0nFYqplWUl9XyxV8Ym/G5eodiIvz/YyvNrqvBKEjfMGCBOxFuqurjnSxmbcMaIDJ46txiFQkFlh5kr391FS5+dovQY3r9axib0Wl2c99o2agxWorQq3rx8LJMHJv9NbMKdn+3na7++ZFJ+ksBbhGETdGq23z+HKJ2aH490cMMHe8T7HMAmNHbbhF8MyNWT62cMQJIkrlq6S0yudZodgpH0+MoyQTQ/0mIUFhOf7moSTLIDTX3CMG9fYy/r/DiFVqODRZNNTB4gu/+uK+/E7ZWo7rSwNwSbsLdRnk5zeXwcbg1iE34uNColSoXCbyKqFNiExKggNiE9Ti+qtrF6DZMHJLO+opPMuAiGhwigL5vkxyZowl3Qr5zSnx6r7D9z2aSg7u2i8Tk099hoNdqZU5RGmr89Nn1QCvedWiS0MIGEJTVWz3tXjWddmdxWDyWUf3TtBL7Z34pOrRQJKshTfdMLUrA6PWH6nIXjcxmcEUtLn52x/RJEa64wPYbNv5tFjcFKXnKkuB6hVbHylmnUd8sJdWj7/JEFw7hrXiFqpSLsPvrvFifaVf8l7aoVB9u47dN9skFbWgxf3zSFCK2K6k4Ll7+9g1ajg35JkXx4zQSyEyJxuL0s+WgfGys7yYiL4IWLRokWycvrq/nA7+/w+9MHi97ytpounltThdPtZdHkPKHP6TA5+MuPFbQZHcwZnMoVk/NQKBS4vT7e2lznxybEcvXU/uJEvqWqi3XlfmzCpH7ihNDca+O7A21EaJScMyZbTII4PV7WlHZid3uZU5QaNtF1uMVIa5+dUX4L+EB0W5zUdlnpnxwVNpni9WMM4iO0YT4vIE/NqI46sQTi50CloV93uH3oNcqwx/l8Eu0mB7ERmrCR9YA7tEYln4RCXaP3N/VhcngYn5cY1mrbVd9DY7eNsXkJYa22nXUyNmFgajSzi1LFc+1t7PVjE7RcPCFXjNiXtppYtr0BlRKumNxfnMQauq08v7YKk93N2aOyRSm90+zg0e/LaOixMSk/iTtPlv1zrE4Pv//qELvqe8lPieKpc4vJjI9AkiTuW36I7w60khit5clzigVD7bk1lby4rhoF8nTVktmyePujHY384ZvDeHwSk/KT+OhaGbi5paqLq5buwuX1kRSl5dubp5IVH0FDt5VTn98sNB9vXDaGk4em4/b6mPD4WnFiDcUmXPBaifBgGZUbL7AJoZNrGpWCIw+fglat5JOdjdy7PGjU+OWNkxnTL4HSVhOnvbBZXH9w/hCuntofr0+i6MEfhBYmtCIYWt4fnBHLD7dOA+CpVeXCkyZap2b3A3PRa1Ssr+gUHCaNSsF3N0+lKD1WHFB6bW4UCnjlYhmwKkkSF76+nZ31xwp+X1wrt+B8UnjLbnOVgTs/O0C31cWpw9J5fuEoVEoFbUY7d3wq8+xG5MTz7AUjiI/U4vb6ePKHcn81JYI/nTlMJHffHWjl011NROvU3Dp3kDgoVHWYeWNTLS6vj8sm9hOj32aHm6Vb6+k0Ozl5aJqo8AQc2MvbTRRnx4VpW6o6zGyvlaG9swqDn3Or08PW6i6idGom5Sf9Xc7pPze67fH6MDk8xEVojpk4+3ucl71+bMLRYFC7y4vJ4SYlWhf2HGaHm6YeO9mJEWGTbyaHmwNNfaTF6sNah1anh41+LcyMghRRIbS7vHx3oBWry8Opw4IO7G6vjy/2NNPUY2PqoKDmzueT+HR3k2wxkRbDZZPyxO/75Z5mVh2RLSZunTNIaAx/Ku3g7S21aFRKFs8cKDR022u7efKHcswONxeNzw3T+/2z4sQI+d8R/01JDsin1B6ri9zEyDBBmtcnYbK7iT3Oov174ucWrcUps07SY/VhzxtoJ+QmRoYlEUabbNqVHhe+aE0ON+vLO9GpVcwuShWL1ubyyIvW6eW042ATWvvszChMCVu0H+5o4IDfbG/RpH4Cm/DZbvnUmBar59a5QWzC9wdbWer3d7h59iCxaLdVd/H4D2VYnV4WjssR7YDDLUZu+3Q/zb02ZhSk8PzCUQJyuuidnVR0mMlJjGDplTI2wenxcsHr2znQ1IfOj0049TjYhMsm9uORBfLGE7rp5SdHsfbOGSgUirBqnU6tZK0fm3CgqY+zQrxZXrp4FPOL5QrMiIdXi+mN0FHxuc9uFILx0M3+js/2s3yvrM9RKRVUPnoqKqXiGC3MqtumUZQey+EWI/Nf3CKu/+X8EZw3JvsYbEJoohE6Ih86YROqARqQEsVPt89AqVRQUtPNlUt34nD7SIvV8fVNU8iIi6DL4uSiN7ZT1Sl7Db1zxThG5sQjSRJ3fHaAb/a3EB8pc6kCp+JPdjby/NoqJEnGJgSmmg41G3lsZSm9VlnoHGD0GG1unlxVTo3Bwri8BG6dUyA8Qz7c0UhJbXCqKXCa3dPQy7f7W4iL1HLF5Dxx+jWYnXzpn8o5Z3QWGXGyJsXjlTVf3VYXM4/CJpS1magxyF5WoUmt0ebmSJuRrPiIsOs+n0Rdt5UYnfoYQ0OL04PXJx0zMQa/nMAHXqdKeSw2ocfqQqtWHkM3b+i24vL4whJ4kMXsHSYnxUf5V5W1mShvNzEkIy5M31PRbmZrdReZ8RGcPCRNJAj1XVa+3t9CpFbFBWNzfpEL121x8sLaKtpNDuYUpXH+WHlK0Or08NSqcg61yODJ+04bTLTf++fJH8r9bXU9jywYKibUXtlQzdub69BrVNx7apEwJw1gExweL5dP7MfD/mRyY6WBxR/sweryMiQjls/82ISKdjPnv7YN01HYBLPDzexnNoqK+qMLhonP6lkvbRFt9dOLM8Rwwe2f7hdTYumxerbfL1fM3txUy2Mry8T7sOnuWeQmRbKp0sDlfkNYCI6KG21uRvwpaDFx9dT+oq0eOqY+Pi+Rz26QK7e3frJPTKLF6tUc+OPJ/zS8RiBOaHL+ByM+Ukt8pOwA+vg3R4TZ3r2nFpEQpcXj9fHHb46wrqKTjNgIHj17mEg2nl1dwdJt9URq1Twwf7CYuPhoRyN/+v4ITo8vbNGGYhOGZMTyxY0yNqGsTWadWJyeY7AJc5/dKEi7oVqY818tEeLTUH+U+5YfEgvnzc21Ie2xOv78owwffH1TrfB32FRlEH4xIC/004szMFicgqkEMrE3wCl68odyMRKuUCCSnE93N3G4RZ40eXVjDddNz/d7s/SK5GBdeafAJnRZnELn0tRjF60Vj1eiw99+c3p8dIWShkOqRaGwwn6JkWhVSlxeHwNCNoii9BiBTRiVGy9u6nnJUcwdnMqeBhmAGajIRWlV3DRrICsPtZEcrRWVN5ArD29vqUOlQBCwQZ7QiNCo6LO7OXtklkheL54gi3gD2ITA9N2wrDiWXT2e3f5Kzhn+z41eo+KHW6exoaKTxChdGCjxrUVj2VRpQKFQML0gOMl185xBnDw0nT6bixE58WIzmzQgiR33zaXdJFcjA1W25GgdP942nT67mxi9Ogyb8NcLR/LM+SOO8XdaOD43bFpOkiTZsyU7Tuig5L+VF6PNTWKUlifOCTosO9xeytpMpMfquXRiv7DR723VXcRGaBidGy/aXS6PjzWlHXh8PmYUBGnjHq+PFQfb6LI4mVmYIhJfWbTeIqMLcuT2bqAisuJgG1uquwSEMpDcryvv4LNdzUT7sQkB1+rttd28vL4ar0/iqin9Reu3rM3Ew98dwWB2csqwdO48ScYmtBnt3PrxfsraTYzIjuf5hSNJitZhdXq49v3dbKvpJj1WzyuXjhaOwjd9tJcVB9tQKxU8cPpg0fJ+9PtSMSU2b2gar18mT/F8tKNRIExSY3SsvXMGMXoN22tlTydJkh3YP7t+EmPzEmk3OsKMHY/GJgQmuvY09Iqf8XOxdFs975XI2IQfj3QwrSCZjLgIdtR1877/+r7GPqYXpDBvaDo9Vhdvb61DkmQty8pD7dwyR75ffrG7WdzLvj/YKpKcPQ1BbEKgRQfQZXaKVl6b0Y7T7SVap0ZCEmPwEiAh/49GpSQzPgKD2UmERiUmRQEmDkjicKsJtVLBuBCrhVOGpbOrvgebyyvurSDrzTZVGcSQQuCwOC4vkSsm5/kHJGKZ5l+LcZEanrtwJD8cbiM1Rs/1IaPir146mo92NKJWKsPaZn86axhDMmKxOD2cMSLzn57g/Jo4keT8F8bW6m7hRbG/qY/ZRamCdbJsewM+PzZh9ZF2keQs39eCyeHB5PCw+khHmHdGQGwXEMCC7EsRuG6wOHF7JNDKQrVAUUepVKD0f9i1annRdltdRGlVpMQGF+2MwhRqDBZ0aiWTQsYrTxuewd7GXmxOLxeGLNqjsQmBG8CE/klcPbU/h5qNFGXEiFHxlGgdz5w/gp9KO0iP04dpXt5aNJZPdjahUyu5PMRi/ZEFwxieFXfMor18Uj9yEiNo6bUzIT8cm7D69ukCmxBIAqJ0atbeOYMDTX2kxurCwH4vLBzJnScVoFYpwk7vC8fncsaITJweX1gPPIBNONrAMS5Cw1uLwrEJXp+EUnHsWKnRLrc4ZhSkhLmSthntmOweBqaGYxOaemw09dgY7Hc+DURDt5WDzUbyU6KYNihFtBqaemysK+8kIUrLqcPSBdG80+QQ4u3zxmRzsl/b1GN18cLaKnptbs4ckSnGa20u+XRda7AwLi+Rq6b0Jy4yBrfXx19+rGCnH5tw76lF4j16eX01y/c2Ex+p5f7TBotE47NdTfx1TSVen8RNswYKPMZPpR3c9fkBjHY3pw1P56WLRqNUKjjcYmTROzvptrrolxTJJ9dNJCMugk6TgzNf2kq7yYFOreRtPzZBksKxCaGj4jd/vJcfj8jVulA342d/quQVf7UuUqti9wNzidSqWXGoTUyugbzZj++fSHWnmZs+CorWNSqFwCbc9OE+sbHaXV7hC/PM6grhpNxmdIgk55v9rWKq7LWNtVw3bQBxkRrK2kyilbeluovaLitJ0TpMDrfQvLSbHFS2m0WSU+v/nT0+iQa/ABYgtD0QYgFFUrQWvUaJw+0jPU4vEtOs+AgGpkRT1WlhUGoMGf51FR+p4ZRhGWwo7yQzPiJs/PrGmQNkLYxWxcUT+vFLsWhyHn02t/xeDE4l3V/pmlmQyqMLhnGkVa7kBDQsqbF6Prt+EhsqOkmPi+CCscFDwifXT+SHQ+3o1EqR4AA8cc5wTh2ejs3lDVtf547JZkROPK19dkZkx4sKd1F6LFsC2ISEYOVbr1Hx1Y2TMVicfp+c4FZ936mDufvkQhQKRdh9IHS8W7z3Pom85CiWXT1BXPP6JHqsLmL1agHoDFyvMViIj9CwYFRWmL4oEEXpsWE+U4GIi9CIave/W5xoV/0XtasC4fVJfLSjgdI2Gb65cFxwhHlPQy8bKw1kxOk5d3S2aA0ZzE5WHWknUqPi9OKgu7DH62NzVRd2t5fpBSlhJelag4V2k4PhWeFlZ7PDTXOvneyEiLDrPj8MMkavCdOZBL52PFflo+N4PXGP10ePzUV8hDZsgsXt9VHXZSUhUhum1fF4fext7EOjUoTZonv9DrNWp4epg5LDsAnrKzpp6rEzMT8prJS+vryTvX4tzJkhydCWqi5WHWkjOVrHVVP7i+fa29jL+9vqUSoVXDM1X4zjlraaePYnGZtwwdgcAats7rXxh2+O0NBtZfKAZB6YP1hgE277dD97G3oZlBbD8wtlbILPJ3Hzx/tYcaiNxCgtz5w/gllFskfGYytKeXNzHQqFPL0U8LUIxSaMyInn68UyNmFtWQfXvr8bnyRPWq28RcYmVHaYmf/CFlx+8XAAm+Dy+Bj9yE+iRRVa5j77la1iGmxEdhzfLJEniO798qDgmKmUCsofOQWNSsmHOxrC/F+WL57M6NyEY1pzAfNIr09iyB9WCSH9wnE5PHmubFB50RvbRYIe+rOfWV3Bi+uC2ISS+2ajU6vYXCVz3XwSRGhUfHfzFAamxtBhcjD/RT82QaXkzUVjmVEgYxOuXLqLDRWGY7AJb22u5elVFXglieun54upx5Kabu5bfpAui4vThqfz5DnFKJUKDGYn9y0/RFWnPNX06IJhxOg1eLw+nltTxdaaLnISInng9MGiHXV0JScwqVjfZeW9kno8XomLJ+SKipDd5eWTXY2CFxXKedpa3UVZm0y7Ht8/iEdo6rGxu6GHrPhIxuUliM+5w+1lV30PUTo1o0LWUuDnu7w+Bh3VrrI6PZgcbtJi9MesZZfH94sj4D/XWrO5PLi9x2/HHS+6LE5qDbJmL/T+0GVxsrNOxiaEOrD3WF38VNqOXqNi3tAgWsbscLN8bwtWl4czijPFEIDDLWMTmnvtTB+UIpJMj9fHO1vrBMPu2mn5ogX63rZ6VvnN9u6eVyie68s9zbyztQ6tWsntcwuESeT6ik4e/b4Uq9PLxRNyucXPxTrUbOSmj/bS1GtjyoBkXr9sDFE6NS19di59awd1XVbSY/W8f/V4CvzMtQUvb6W0Ta4QPXVucRgw998xTrSr/odDpVSIE/TRMaZfgjjhdlmcrDosL9rTh2cIDxajzc0H2xuwu7yyEZt/k7S75EmTdqNDNpgqSiU/JRq318fL66s55F+0N8zMZ3BGLJIk8dbmWlFB+d0pQWzCp7saBevk9pMKhFnVj0faeWxFGTaXl0WT+nGzf9Hua+xlyUf7aOmzM70ghdcuHU2kVk1zr42L3txOU4+dlBgdH1w9gcL0GOwuL2e8tIXqTssx2IQr3t0lNCGhwtCHvj0iKMD9kiLZ6McmfLijUXCKQrEJexp6wuzPFQoFZ47IxORwh02gmB0esdnf9fkBcfqt67IKLcxrG2vEOPOB5j7OGZ3lTzQ6xaRJjcHK5ZP6MSgthvpum5h029PQy6FmI9kJkbi8PrbWyL9bj9XFvqY+8fcLVBokCWo6reL1+ULOOT6fXD5XKOTTWZROjdkhjzAHbuqJUVoGpkZT2mYiKz6C7ET5b6pRKVgwKpNv9rWSEKUNAwBeMTkPi6MaCXnqJBBXTulPl8VFr83FglFZ4mR/1sgs6rus1BqsjOufyAj/NEtxdhx/Pq+YnXU95CVHidO1SilPDq441Ep8hIxNCMRrl43huwOt+CQpDFZ4+9wCxvdPpMfqYsrAZGFAN21QChvumkVtl4UhGbEimUiL1bPx7pnUdFrJiNcLMbtCoeDdK8ZhMDvRH4VNuGZaPldMzkOCME3bpAFJAssRCEmSSInR8daisWHX+mwuonRq7ppXyF0UiusN3VYi/KZzAXGuJEkcbjHi8voYkR3PH88YKq7va+ylw49NCP0b7GnooaJd1v1MGZgsBOJ7G3vZUtVFVnwEZ43MFFYSZW0mvtzTTIRWxWUhI+HVnRbe9AuML56QKywm2o0Onv6xnHajg7mD07hySh5ROjVGm5uHvztCqb+t/oczhhCj1+D2+njgq8Os9Q8mPHnucIZmylNUj68sY6l/kumPZww5LjYhdE3/XBxukbEJgUGBz66XsQlGm5vZf9kgbBX+eMYQ8V6d99o2sXZDtTD3LT/E9wdlbMK7W+vZ5ccmvLO1jqdXyW3190sa2Hj3TPolRbG5uovHV8rWE98fbKNfUiTzizPps7nDECnpcXoxkfjc2kqaeuS2+puba0WS893+VrGu39tWz82zB6JQKChtM4rR8p31PfRYXeI9b/G35zvNDrr8fmY+ScLmkn9nj08SlcH/hjiR5PwPx/mvlQgR2fqKTrFo7/rigBjt/GRXEJvwxqZaYZL2fkmD0MJsqeoSGplVR9oZmBota2HMTlEhANmPIlA9eGl9tVi0S7fWiyTn+4NtYnF+tLNRJDlHWk3Ci2JnXTcmu+zvYHZ46DTJ4rweq7xZgtzb9vgrDT5JEiPLgdcB8kaeFWJIVpwdR4RGJbuS9g+WxUfnJlCQFi3GtQObW2F6LGeNzGRvo6yFmeg/+cbo1Nx/WhErD8nTCaGeHY+fPZx3t9ahVh6FTTh9MOlxekx2N+eMDmITLpmQKwNVe6xMyk9ikL+9ODInni9umMT+pj4GpkaL0rheo2L17dPZWt1FYpSOaQODmpc3LhsjT96gCDulXzd9AKcOy8DkcFOUHitO12PzEtl5/1x6bC7SYnRh2IQVt0w9ZpJMoVDw6ILhPLog2O4KFIrPGhl0OQb5xO70eClMjwnb1C1OD+1GB9kJEfz+9KDDssnhpqLdTHZCBOePzeF8//h1AJsQq9cwMT+RIZny58vq9LB8bzM+CU4emia0M06Pl093NdJlcTF3cHCix+P1saykXgZP5iVyRnEGuUkyNuGTnY1s9WMTbpw5gOHZwZHwz3Y3E6NXc+ucQaL1G8AmeH0S10zLFwaA+5v6+P1Xh/zYhAz+MH9IGDahslM26Xzj8rEk+9tEl761g4PNRuIjNbx+6RgBxb3i3V1srDSgUMA9pxQJrU8oNmF6QQrv+xlC72yt55Hv5Q00PlLDpt/NIlavYUNFJ1f4J7gUCvjiBnl6rKXPznmvbhOtpi6LU7QjLnt7B10WeZ2Vt5uFa+5D3x4Rh4eSmm4hfP1ge4MQs2+r6RZDBNvruoUJZXm7mdOLM5hZmEqv1cWXe5vx+Cu/GysNIslZfaQdl8eHyyODeQNJTo3BIrAJFe1mfin0GiVRWjUOt4tIrZoIfwKv0ygZlhXHthoZmzAgxMhw/vAM3t4ii43nFAUdhM8dLTutW53ho+JnjcziYJPRfzBLFveayQOSWDJroLCYmONPUBOitLxx2Rh+PNJBaqyO60PuD0uvHM8Xe5rRqpRcEnI/efTsYYzJS8DikB3YA2vxgrE59EuKorHHxri8RFERGpIZy/q7Z1LWamJAarSo+uk1KlbdNp2yNhNJUToxMfffECfaVf+F7aq/N55bU8k7W+qI0Kq4/7TBYhNaV97B06sqcLi9XDE5T4gJm3psPLqilDZ/JeeWOYNQKRW4PD5eWl/N4RYjgzNiuHn2IHHqX3W4nTVlHaTH6rl2er4oJdd3Wflyr7xoL5qQKxIHm8vDt/tbsbq8nDY8XUygSJJESW23rIXpnxS2CNuMdsrbzQxMiQ5zKHV6vFS0m0mO1h3jrmowO1ErFcfARb0+CY/vl0nDxwtJkjA7PejVqmNK7i19dlQKRRi+AQLYBDfDs+LDvqe83UR9l40ROXHiPQD5FL2/qY8BKdFhiUoAm5AQqeWc0Vni/W/otvLxziaUClk8HND+dJgcvLaxBqPNzVmjskSSZLS5+fPqcuq6rIzLS2TJrIGoVUocbi9PrCxjZ30v+clR/PHMIWHYhOV7m0mI1PLQmUOFePutzbX81T8tdftJBUIwuuJgG3d/cQCby8vsolTeunwsSqUs6l70zk4sTg9psTqWL54ihNbzX9hMry0cm+DzSUx7er1IfkOBgaGwz1Cq+OMry3hjk+zdpFUr2f+Hk4jUqvl8dxN3+yfXIDgqXtFuZt5zm8T1gPBVkiQG/2GV0KWFAhFDR8UHpkaz5o4ZADy9qlzocLQqJXsenEuMXsOa0g6ueV/mMykV8O2SqcLLau4zGzH7239/vXCEqKYseHkr+5v6ALhpVrD1GEouP2dUlkA5rK/o5JaP92F2eJg8IIl3rxyHTq2iqcfGDR/soaJdHhV/9dLRpMbocXl8/PHbw2yokLEJT5wzXCTYn+1u4sPtsmHnHScVis/h4RYjr26owenxcunEfoL3ZrS7eX1jDe1GB3MGpwlbAp9P4su9zZS1mRmeHcuCkUEfqMMtRjZXdZERp2d+cYZIsPtsLtaUydiEOYNTxTr1+SR2+0W/E/onHtcC4uhwuL20Gx2kx+nDHi9JciVDp1b95mnUoz2kQL4fdRidpMTowtr1To+X8jYzSf+vvbMOj6Ne3/5nfePu2kiburvTQltci1Pcpbgc9Ah2Du4HDsWhRQvUKHV3S5M2jbsnK1nfnfeP2XyzS+Ac+L1IW+ZzXVykk8nu7M7Ofp955L7D9UG9eU6Pl63l7eg0Ksb26VFg93h9rD7UjMXhkfW5/N+dPp/E8oON1LTLwwHdZqaSJLGssNFf2g4PUmD/vqiJZYXyzdh1U3LE9+Hm0lbe3lSJRi17xwWWNI8WlBHyn8GfPcj5uXi8Puz+aYDAi9bu8tJgkkWzAhvjHG4vB+vNJEYYegUdW8ra0GvUP26b4PQwo3+iuGi9Polv99dT22FnQm4cw/0XmiRJfL2vnv21JvolR3DuiHRx0S4vbGR5oWw8ef3UHtuE9SUtvLu5Eq1GVtbtVmPdXd3B08sPYXF4uGB0hijzVbR2cc9n+6hqszEpL57Hz5ZtE9qsTm74cDd7qjvomxTBqxeP+AnbhKHCNiPQouCnbBP6Jcm2CWq1imUHGrjBr4wcotOwYv4UMuNCKao3c+pLG3rZJjg9XoY82mObcPmEbNFQOPv59Rzy39kGjorf/ek+0QisVkHJ3+eg1aj5YGuVKM0BfHmjbIj4Q9uEJ84ezIVjMvF4fQx57DuhVRM4Ch/YCzMuJ1ZMLz3/fYkQoEuMMLDx3hPQa9VsKWtj3tvbcXl9RBq1fH3zJLLjw2i2ODj71c3UdtgJ1Wt4+/LRjPMbQd788R6W7G8gRKfh8bMHiSDg3c2VwkD21hl5oml6V1UHDy8upM3q4pQhKTx4Sn9UKhVtVid//bZIzuRk9dgmeH0S/15fzuayVjJiQ7n7pH5iIdhU2spnu+RMznVTc8WdeoPJzkd+24TzRwXbJizeW0ez3zahuzm9+3N4pMnCkPToICHKZouDfTUm0mNCgrZ7vD4K682E6TUi+Aj8G4+3t22C2+vD8SPX8c/F4ZZtE34oJdHe5cLt9QktlW7q/LYJBT+wTahpt3Gk2UJ+YrBtQl2nna1lbSRHGYNsExpNDr7dX4/RL7bX3RfY3uXio21VdLm8nD08rdf78EOcHi8vry4Vtgm3zZBvxiRJ4rV1ZXIGJcLAAyf3FxmO97ZU8p+NFeg1au6a1U809i470MCj3xyky+nl4rGZIrgOtE0YmSXbJoQbtFS32Tjvjc00mZ3EhOr4wG+b4HB7mfPCBipau1Cp5ExvtxdcYLB85rBUnvdPnT70VaEoqydFGth6/wxUKhXvbq7kka/l6VK1CtbeJY+K76hs57zXt4j34fnzh3Hm8DTMDjdDHu0ZFQ+0WznhmbWiNBdot3I0ofTkKPwo72yq4O1NlRi0au6e1U9MuXy1p46/fit7ncyb0GObsKWsjRs/3EWHzc3IrBjeu3KMsE04/40ttHW5iA7V8cm14yhIjqTL6eGk59aLu+vAUfFL3tompj0CL9oHvzrAop3ygpsWHSLKY+9tqRTaLIEX7ZaytqAJlDC9VtZ3sLuDVFq9PsRF+8CXB8SoeKfNLZR5391cKSZNnlx2iEvGZfkF6FrEsX65t46bTpBHc+s67eyobEeS5BJaSVOPbUK3uaFsm9DT89Jpcwf83DNCHhWqE7YJMWE6uted1OgQYZvQJz6MCKN8maZEGRmVHcuuqg5yE8JEeUSvUXP5xB7bhEDDwPkz83l9XTlqFUL9FuTJFIfHR6fNFWSbcO7IdNqsLspbrYzpEyvG0YekR/PaxSPYVtFObkIY5/mbErUaNd/eMokVB5uICdUFTWS8NW8U3xXJhrAnDeiZ+rhtRj6T8mQF27E5cSKDNT43jo33Taem3U5eYniQbcLqO6dR12knPlwvmtlVKhWvXDSCf57rQasOtk2YNyFbTFEFMjIrhiW3Thb/lgUcvcSG6YMUlj1eHzXtssrrDdNyhW6O1yf3vEQYtUH9K16fxJayNjw+H2P7xInpKkmSWF/SQrPFyYTcOFFmA9mvrMQf2IzLiRN3yxuPtLKupJn0mFAuGJMhNH52VLbz2U7ZNuGaKX3EuTlYb+L1deW4PF4uHZctrBzKW6w8vvQQLRYHJw1M5sZpuUQYdbRandz3+QF/g3EUT549hKhQHU6Pl/mf7GXNYVkg9Lnzh4nnuP+L/Xzsn0J8JMA24ZU1pfzru8NIUnA264vdtdz56T4kSb6ml8+fTIRRx57qDua+sQW3V0KnUbHwuvGMyIyho8vFSc+uE2PWgaPi572xWZS2Nx5p5fVLR4pj6p5c+3Rnj23CT7G5tE00mq8raWFQahSnDEmh0+YWvTMAOQlh4vvv7Y0VVPlNSBfuqBFBzupDzTT5y+SL99aLIKeqzSZEKA83WrA5PYQbtNjdXiz+Pp8upxe7/3WqVD3yEWpVcADZP7nHNiEwgBubE8s3++uxOmQ14+5gcEJuHEPTo6jpsDMpL55E/wTrwNRILhidIcrq3Z+PCIOWv50xkCUHGkiIMHJ5wPXy3NxhvLdFFgu9atJvL+z3W6IEOX8yFmyuFD0vC3fUiCBnfUmLuDhXFDaKi7y6vYsO/yJd0mjB5pJtE9z+7A7Id3hOf9perVKJRVmnURFq6LmDG5ASyY7KDjRqlfA1ApiUn8CqYtk2IVDif3J+PCMyo6ntsDMpv+eiHZIRzdxR6eyrkTM5E/zlkUijlsfPGsyywgYSwg1cOSlbPNaLFw7nw63V6LWqoBHyR04bSE58OBaHO8g24eKxWUSG6ETqt7s2322bsK+2k/zECJGqN+o0fH/HVLZXtBMXrme4f3EAuRemsN6EWqViYIC54WXjszllcApdTtkRuPu5h2ZEs/X+GdjcXiIC7rpjwvQsum58r+kSlUrF/XP6i3MGctYAYPaglCAjVrPDTZdTtk0I9EJqsfhtExLDuW1mvtjebHFwsM5MZlwocwanCD2XVquTDUdaiA7VMyU/QQQBnTYXi3bW4PNJnD4sTWRWupwe3tpQTqvVxexByUL11uXx8ca6Mkqb5VHx80alkxhhlI0n/RmUrLgwbp/ZV9xdf7itis931RIZouPuWf1Ev8a3++t5/vsj+HwS103N4fzR8kK8tbyNez/fL3phnjpnCBq1itJmC1e8s4Oadjv9UyJ598rRJEYY6bS5OOc12TYh1G+bMNFvm3D2a5vZ5y8T/ZRtwtg+sSKIfm1dmVhAww1aNt13AlEhOr472Mi17/cE5J9dL+vC1LQH2ybYXF7x3l65YIcoXTWY7MIj6fGlxcLRfH+tSehJLdxZE9DMbuKiMZnEhOnZU90pttd12rlkXBYT8+Ix2d2sOtSMyyNPJe6sbBdBzk5/wO/0+DhQ1wnI722z2SF0XhpNPS7kBq0GrVqF2yth1KmFlER0qJ7ECNk2ITHCSIxf6ynUoGFcThyrDjWTFGkQdg0gX4sLNlX4bRN6GsfnTcimxeLE5vKKnqv/xuT8eO6dXSDK6t3BY0yYnvevGsN3/kzOFQHfDx9eM46v9tT1sk34+1mDmJQfj9XpCfI9mzs6g4KUCOo67IzMihFN6/2SI1h/z3RKm630iQ8TWS+DVsO3t0ySp0DD9EHK7I+dIdsmaNSqoEz5qUNSOWVwiqwpFFBOy0+KEJOD3Tg9XkJ0GjFpCHLg3Wx2EGbQcun4bJG9liR5hFytUjE0I5pnAr7DjmWUctWfrFxV12ln8d46DFoN545IF7oMTo+XlUVN2JxeZg5ICtJnOVBroq7TxogArxOQ08XlLVayf2Cb4PH6qG63EROq79XzYnV60KhUvUbIfw6SJOH0+DBoe9smNJgdRBi1QZMtkiRR0mRFq1EFNRBKksSBOhMmu5vR2cH1++0V7VS32xiVFSPKDCBPoOyukpt8p/VLEM+/r6aTpYUNxIXpuWhslkilH2o088HWKtQqFfMmZIvnr26z8eLqI3Ta3Jw9Io2TB//ANqGti3G5cdx5Yj/0WjU2l4cHvyxke2U7uQnhPHH2YGGb8OjXB/liTx0xoXr+fuYgMXERaJtw24x80bz92a5a7v9iP26/SeMn14xDrQ62TYgN0/P1zRNJjwmlus3GnBfWi7vrQNuEcY+vEmJoQbYJASn2oRnRLL5JTnM/9s1BFmyqBOQJtQOPziJEr2HhjuogocZuj6TiBjNzXuixTei+s/f5JAoeWi7G188Zkc4zc+VJmkBX8YLkCJbPnwLIQpcv+u/gQ/Uatv9lJuEGbZBtglat4uubJzEgNZJms4PZL2ygvcuFSiUrwZ78A9sEgAdOLhBlsFfWlIryWKBtwubSVuYv3EuL1cmJ/ZN45eIR6DRqGkx25n+yl8NNFoamR/P8+cOEYOeTyw6x/kgLqdHBtgmL99axcEcNYQYt82fmi+CupMnCG+vkqaZLxmaK5mSr08O7mytpMjs4ccAPbRMahcRE4CJd1mJlc1kbqVFGpvdLFItol9PDhiMthOrlDFZ3qVmSJA7Wm7G7vQzLiA7KRLR3uWjvcpIV19s2odPuJjpEF6TMDvTSgPoxJEnCJ/Gz+2UsDjfV7TbSY0KDxsutTo+sXxVhCMqUdDk9rD3cgk6jYlq/xJ/tav5jx7loZw17qjvJT4rgsvFZ4n34ak+dfDMWYeDWE/KD5AD+s7ECtUrFTdPzhC7Q1vI2nui2TRidyTX+puQjTRZuX7SX6jYbE/PieWbuUEL1WlqtTq5YsIMDdSYyY0N5a94o+iZF4PH6uOjNbWyvbMegVfPP84aKxvg7Fu4VjeAXj80M0ss6GlHKVQo/Slp0iDArtLk8fLK9WjT5do/Xujw+3t9aRV2Hnal9ExifG8fg9Chhm7Dfn0G5bLzsQyNJEp/urGF5YSOJkQZum9GXHP+ivuxAgxgVv/mEnot2S1kbTy4rxuLwcOGYnov2YL2JOxbuo7bDxuT8BJ6/YBhGnYZms4N5C3ZQ3GAmKy6U/8wbTV6iPL4+940t7KnuRK9R88/zhogG6hs/3M2yQrlcEtgr8sx3JaI5M9A2IbD5VK9Vs+qOqWTEhnKg1sQ5r/XUtLttExxuL+e8tllMddR12IUi9C0f7eGIXxl5f62Jr/yL/QurjvD5brk0t/pQk+iFWXagka/3yZmAfbUmzhiaxoDUSMpbusQXT22HnU2lrZw3KgOPT+KL3XVYnB4sDg9rDjeLIGdXVYewctjlF3EDOVvTrRzbaHLglSTUqNBp/KJiXrn01b14hBk0pEaHcKTZSkyoTmiJaNUqJufHs3hfPZFGXVBT4rkj0qlttyGBKGmBHIwU1Ztp63Jx2pBUjDr5y37WwGT2VHdS1mJlZFYsg9OiATlI+duZg9ji74XpVilWq1XClDAqRMcVE7MDzssIPt9Vi1eSgtzGb50h+yi1WJ1MDdB6mt4vkaW3TqbUb5vQnSlKjDSy5q5pFNWbSY8JEX0jKpWKT64dR3mrlXCDLqiJ/KbpeVw+IRuvJAUF2hPy4tn+l5m99J1SokJ6mZl6fRJajVpYb3TTZnWi16p7TajVtNtwemQdmu5AD+SFr8nsZGhGVFCJ8nCjhUONZvqnRAZl+I40Wdhc1kZKlJGZ/ZNEQF7R2sVXe+oI0Ws4f1SG2L/BZOedTZXY3V7OG5khps06uly8uPqILDFRkMh5I9OJDdNjc3n4x5JiYZtw75wC4sMNeH0Sjy8t5vviJlKijDx2eo9twitrSnl7o6wLc9+cAvG6P99Vy8OLC7G7ZV2YwEm+H6Osxco5r22m0+YmTK/h42vHMSQ9GqvTwwn/Wkvzj9gmXPTmVmGbcPLgZGE0+kvZWt4eFMDHhuk4a3g6Jrub+Qv3iu16jUaU1f/+bTHl/olXu8srxCMX7qgRGcQXVx/h6sl9UKlU7KjsEMrs3xU10WR20ideS5vVxaFGeXt1u42qNpsc5Ph9+0DOyjUFZN+8gVISx1HuQwly/sQ88MUBkWL/9/oytj0g17Tf3FAuRsJfX1fGpvtOIC06hA2lrUECbUl+2wSz3RM0mRKq1wpdmMeXFYt6uk+SRJCzcEe1+CJ5KeCi3VnZISweVh2S/XzSokNotjg54t9e1WajtsNGXmI4Xp8kRshdXh9t1p6el8C7RK2mZ4FJiwlBp5FT6YHZmoLkSDHNMzIzRmShMuNCOaFAtk3ISwwXmi0GrZr5M/NZ7O+FCey3+Msp/fnPxgpUKhXXB8ii335iPnqtGpPdxZnDenphLhiTgcvjo6q9i3E5cUIkcFBaFO9dOYadle3kJISLuy6dRs2y+ZNZVdxMdKiOOQElKdk2oRUVCKl2kPtwphck0N7lYkRmjLirHJsTx9YHZtBkdpAZ22ObEBduYPn8KXTYXEQadeKOVqVS8fwFw3lm7jDUPxBwnDs6I0hSvvuue1BaVNCi7vL4MNldxIbpg1Lp3bYJSZFGLh2XJbSbupvWI0O0jMyKEeUut9fH6kNNuL0SU/smiDFnj9fHt/vrabU4mdYvMcg24Zt99bJtQmY0JxQkifd6eWGD33gylCsn9hFTYmsON/t7YTTcOC1PLMS7qtp5eXUpLq+PeeOzRem3uMHMo1/LtgmzBiVz90mybUKjycFtn+zhUKOFIelRPH++bJtgc3m47v1dbDjSSmqUkVcuHiGa7G/+aDff7m9Ao1bxl5P7c6W/lPLPFYd4ZY08qTWjIJH/XC4rXgfaJsSHG1h911QijTq2V7Rz/r+39LJNaDI7OCVA2DGwF+aiN7fSYOqxTegeFX/oq4Oi3LVkfwO7HjoRgAWbKkS2bllhI5Py4kmNDmFreRvvbK4UjzMxL57Zg5Jp63Ly5oZyJElWTv52fwPzZ8rv7ee7e2wTluxvEEHOzqoOkVnsnp77b0gSwbYJ/p+1ahUpUUaaLU6MOnVQJnpCXrywTRiTHdv7QX8mwzOjuWpSHzGk0K1lFBWi49m5Q3ummgK+H165eAQfbqvy2yZki+2PnTGQ/ikRWByeINHRC8dkEB+up7rdxricOBGo90uOYMX8KRyoM5GbEC7Kf0adhpV3TGVPdSdx4fqgZvbnzx/GzdPzUKtV5AR8Lx7rKOWqP1m5KpDvDjbyj6XFdDk9XDIui/kzZfn/itYuHl5cSF2nnWl9E3ng5AK0GjV2l5enVxxif62JguQI7ptTIJpAF++tkzM5EQZuOiFPlLWKG8x8sr0avVbNZeOzxV2x2eFm4fYaLE4Ppw9NEQuHJEmsKm6mtsPG+Nz4IHXhshYrhXUm8hMjxMIEckZqX42J+HB9UNpZkiTKW7vQqdW9dB+sTg92l5f4cH2vSZOfkzL/KYVmk80NfiG9QJrMDiwONznx4UF39LUdNn9PSESQwWBNu409NZ30iQsTd8oglxtXFzcRE6Zn1sBkEah02yZIksS5IzNElqGjy8WCTRV02NycOiRFlDLsLi+vrCmlrMXKqOxYrpiQjVqtwuP18eKqI2wpbyMzNoz7Ty4QC8Ab68r4bFct0aE67j+5v8jgfLarludWdtsm5Ioa/+pDTdy5aB8dNjenDEnhpQuGo1arOFgv2ya0Wl1kx4Xysd82odXq5PSXNlJvcqDXqHnj0pFML0hEkiROem69yIwF2ibc+OEulh6Qs3WBo+KBo9QhOtk2IcygZcn+hiB7hG7bhMrWLqb9a63Yfs/sftw4LQ9Jkhj4yAoxPRZ4Z3/xW1tFL0xgw3ygwapGrWLXgzOJDtWz+lATV76zUzzHwmvHMTYnjgaTnen/WivG0R8/a7Bo7D3lxQ0crJfvyK+YmC3E/Z5YVswb6+RR+EA9nJVFTdz6sWzzMCQ9ikXXjceok0fFL1+wnbKWLvISw3nnitGkx4Ti9Hi5Y9E+1h5qJiU6hOfmDhOft/e2VArbhLtO6idGwndVdfDCqiPYXfL3RncA0mp18vz3JTR0OjihfyIXjclEpVLJGeDt1RTWyr0wgW7X2yva/Y3ORuaOyhABdovFybLCBgxaNacOSRXmpx6vj3UlLVidHqb1TQwyAP4pLA43VW3BtgkgX8NNFgeRRp14/G48Xp9sUfN/GCH/I9lU2ipuxuYMShbfT9vK21hW2EhMqJ7LJ2aL76fCOpMIQK+YmC1KoGUtVp5bWYLJ7uas4WlBvndHC8oI+c/gzx7k/Bg/tsB7fRIdNhdRIbpetfXKNtk2IS7gTsjrk9VVtRo1Q9OjxIXm88laNxaHmwl5vW0TqttsjM2JC7q7WHu4md3Vci/MaUN6xK42l7WyvLCR+HADl0/MDrJNeHdzJRqViqsm9xEX7ZEmC898J1+0Z49IE1mX2g4bD31VKIwnHzp1AEadBrPDzZ2L9rHD3wvz3NxhZMbJtgm3LdzLkv1y9uaf5/a2TQA5a9JtArpgUwV//bYISZJF/L702yasOdTM1e/txOuTgmwTyluszH5hg2gefvViuSfE7ZVtE7qnNH7KNmFIehRf+xsQu6diINg24ePt1dz/xf/uhXn41AFcOalPL9uE80dl8NS5vW0TBqdF8c0t8nMH9sJEh+rYev8MjLpg2wSjTs03N08iPymCVquTU1/cSKPZgU6j4vVLRjKjfxKSJAnxO61axSOnDxQZnjfXl/P0ikN4fRLXTOnpDdpW3sZ9Xxyg1d9s/MTZg1GrVTRbHDzwxQEON1kYlhHDP84aRKRRh9cn8dLqI6wvaSEtJpQHTi4Q+kSriptYuKOmlwFmVVsXCzZV4vT4uHhsprhbdri9fLJdtk2Y+QPbhA1HWjjUYGFQWpTIFIHcq7Wjsp20mBDG9okVn3Onx8vOyg5C9ZogCxKQb0Ycbi/9kiKCFmOby4PZ7iExwhC0/ad62n4udpcXj88XZNUCcmDf1uUkIzY06PuhxeKkvMVKn4SwoF6+NquTHZUdJEUagl6Tyebmu6JG9Fp1L9uEz3bVYnN5OW1Iqrhhcbi9fLC1SrZN6BsvMiVen8QCv21Cv+SIINuED7ZWsfxgIwnhBu48qcc24et99by1oRytWsUtM/KFOOmxxN6aTs4MsDx54YJhnDEsDYfby4CHlwvpicDSfaDExMDUSDF5eOeifaKsrlGrKPn7nP+TZtBvidKTo/CL2FPdwU0f7qbe5GByvux1EqqXvU4uenMrVW02EiMMvO+3TXC4vZzx8iYON1nQqlU8M3eouKO74p0drC+RLQfOG5nOP/0S6/9YWsx//M7EadEhbLx3OiqVio+2V4symFatYvWd08iMC2V3dYdQYwX5S/qMYWlYHG4ufmubSD132tyipn33p/vE+HZ5a5fohXl9XTnLD8p3/Dsq2zl7RDoatYrVh5pZ47dHKG/t4vIJ2eQnRVDTbhOqz7uqOthd3UFmnGybsL6kBZ8ErVYXu6o6RJDTrR4NUBEwQu72+sSxujw+YZsQYdQSqtNgcXqICdVj8PepxITq6Z8cwb5aEylRRrL8X+patWwb8dWeOmLC9EEGgFdM7IPNWYpPkh2nu5k3IZtms5N2m1we616EThuaSlmzVWRyuktwBckRPHf+ULaUtZEVFyYyChq1ii9unMC3+xuIDtFxYYDq6uuXjOTrfXV4fJIopwHMn9mXkdmxtHc5mZgXLxatyfkJrL5zGhWtXfRPiRRZp/hwA2vumkZZi5WkSKPoAVKpVLxzxWiazE5C9JqgLNk1U3K4fGI2kkRQg+jYnDjW3DWNQCRJIjHCGGRmKkkSJrvcrzF/Zl+RzRS2CToNM/onMaN/j21CUb0Zl9fH4LSoIIPDfTWdNJkdjMqOFQKaIAfexQ1mBqZGBZmZ7qvpZIO/wfj0oanCK6i4wcxnu2oJ0Wm4bHyWGFMvb7Hy5oZynG7ZNqG7ZNdkdvDPFYdpMjs4oSCRyydkE6rXYna4eezrIgrrZF2YR08bSFSobJvw8OJCVvl7YZ44e4jIjD7z3WHe3FCOUafhLyf3FzcD72yq4B9Li3F7paBr+vuiJm78aDcuj4+chDC+umkikUZdkG2CQSvbJgzNiMZkdzPj2XVCViHQNuGCN7cKGYZA5/IHvizkG3+/2oJNlWJU/J3NlTy57JD4WdgmHGnpUVrfB5mxoZw2NBWT3c1Diw+K8xIfbhD9T89/XyJ0YV5fW3ZMBjm5CWGcMjhFZHK6bTWMOlns9et98o3ZxeN6rt2/njGItzbIGcFrAhSW75ndj8gQ2QbizOFpR12A80tQghwFAIoazNT76+87Ktsx2d3yF6XdLeryrVYnbV1OQPY66R4h90qSGCEHSAkQBQsUCBuYGilsEwJN/kZmxVCQLAcWE/PiiY+Qyzb5ftPLXX6lzu5+nnCDlvtmF7D0gGyAedHYnh6Qx88azDt+A8xrJ/dctPfO7kdcuJ5O/2LffdFeNMZvm+DP5HSXuwamRvH5DePZVdVBTnw4M/rLX3pGnYaVt09h/ZFW4sL1TM3vCTRev2QkOyo7UKkQXzDQY5tgsrspSI4Itk34y0xarc4gR+aYMD2Lb56Ew+0NuutWqVT846zBPzr1cPrQ1KAAw+nx4vT4KEiOFP0aIE+ONFucpEQZgxpcLQ43JbWdpEWHctbwdDH6bXV6WFnURKRRy5g+sSIzZnd5Wby3Do9X4sSBSaJE5fTIWYxWq5zF6A7EvD6Jj7dXc7hR7oU5fWgq2fFhYgJlU2krmbGhXD81N2h8uBtVgFr02sPNvLS6FI9P4upJfYQL9P7aTh78qlDuhRmYLGwTulV9u3th3rhkJImRRiwON5f8Zzv7ajqJCdXxxqWjhCRAd+YIekpXAA8tLuSDrb1tE97ZVCF8h2JCday9ezpRITo2lbZy8Vs9I+GBJaqzX9ssGsRbLIG2Cdtptcp9ZocaLcL24pGvD4o+lE1lraKH7oOtVUJscsORVuYMkm0TdlV1iLvxw00WTh6cwokDkuiwufh0Zw0en0Szxcmaw80BfUmNONw+HG4fa0taRJBT0mwVTevd5TMAm9srLFO6nB68/n2MOg3hBh0Ot5Nwg1ZMUxq0avonR7KlvI1Io1b0kIAc2FS2dqHXqoOCjHNGpFHSaKHLXx7r5tQhKeyu6qCu087k/AQhxjg+N44bp+WKsnr3tRsdqueNS0eyorCRhEgD10/pcc3+z7zRLNxRg06jCrJhOZaIMOqEA/0PuXpyjui1CmRMn9gg5fRukiKNojR6rKOUq5RyFSDfoW6raKe2w86Y7NigHpb6TjuHGs3kJoSTFdfzpeRweznUaCH+B3LkIPeIaNSqoDIWyCUuj0/6WbLrP4bV6UGvUfca62w0OVCp6KW6WtZi9dsmRAWl0o80WahsszEkPSrob4obzOyp7iQ3IUz0r4Bsv/BdUROxoXrOHN5jm1DTbuOTHfKid8HoTJH+bjI7eG1tGZ02F2cMTxNf2maHm2dWHKbcb5tw47TcINuEbRXt5CSE8ehpA8VY6T9XHOKL3XVEheh45LQe24T3tlTyrxWyENvNJ+SJRTLQNmFq3wQWXD4atVrFnuoOLvvPdixOD8mRRj6/cQJp0SE0mOyc8uJG2rtcaNUq3vTbJkiSxJR/rhGN44G2CVe9s4NVfuPQQGfvINsEjZq9j8i2CYv31gUJOH58zTjG58ZR0mThpOd6bBMCx7J/isAx9ZyEMFbfOQ0Itk3QaVTsfPBEokJ0rCuRy2MQ7M/UZHYw45l1wjX9mfOGimzK2a9uYre//BdomxDY8HvGsFQhILjmcDO3frQHi9PD2D6xvHvlGIw6DfWddm74YBdFDWYGpUXx+iUjSYqUbRMeXlzImsPNpEaH8OTZQ0T/2We7anl/axUhOnUv24RX1pTi9Pi4dFyWyCCabG5eXVcqbBO6g11Jkvhqbx2FdWYGpEQK09fux1pX0kJKlJHTh6YG2SasLGrCoNNw0oAk8Tn3+SS2V7Zjd3kZnxsXdP3WdthoMjvonxLZS/m8yewgKbK3bYLV6SFEp+k1Qv5z8PkkHH79l8Cym8vjo8nsICHCEPR8To+X4gYLcWH6IIVll8fH9op2tBoVo7Njg2wT1h5uweJ0M7VvYpCchsLRg1KuUvif+HwSSw40UNNhY0JuvMiUdE+gyPoO4cwdlSEk4r872Cj3wvhtE7rFwjaVtvL2xgrUahXXT80VTud7azqFbcLc0RlcOi4LrUb2rrr38/1U+8X2Hj8r2DZB9lmJ4LWLR5AdH4bXJ3HVuztYe7i3bcKDXx0Qd9eB0uSvrCkVU2IFyREsvVW2TVhe2CiUkUN0GpbPn0xWXBjFDWZOebHHNuG1i0cwZ3AKLo+PU1/aKBpDDzVaRJni5o92iymxdSUtfHuLXNN+5rvDQsX56331HP77HHQaNd/sq+fdLbIk+4YjrUzKj2dEZgxHmqxi+6FGC5PyErhobKa/v6ASm8tLg1/evjvIWVnUJNySVxxsFEFOeYtVNMoWN5jx+CT0ahUOt0/01HS5PKLnR6NWCYNCnUYtymYg99jUtNsx6tRBTd3TChLZXtkuZ3ICdFbmDEpmS1kbrVYnpwxOEY87JT+BM4alUtJkZVhGNEMz5GxNbkI498zux+bSNjJiQzh3ZE9W7qd4/vxhfLStGrfPx/kBE223zcwnO062gTihIEmUtab2TeCLGydwuFHWhenOFCVFGll951T21HSSFh0SlEFadN14DtabCTNoRFM8wN2zCpg3PhuX1xcU2E/vl8juh0/E5vISaewRcEyNDukl0AZyaS1wqgzkRVetklWnA4Xn2rtcOD1eBqVFCQFAkAP7ZouDvkkRQUKQdZ12Spos5CeG+7NyPdu3lLWRFGlgUl68eL1NZgdL9jdg1Gk4fViqyN60d7l4c325bJswIk18P3Q5PTy3soTaDjtT+yVw+tBU0mNCcXl8PLeyhAN1cgbl1hn5ZMXJ2bpX1pSy4mCjsE3olpj4YGuVsE2486S+YkJteWEjj31zEKvTw0VjM8Xr21XVwXXv76LV6mREZjTvXDmGSKMs2jn3jS00mBy9bBNmP7+eSr9q8T/OGsTFY+Vs0Ly3t4teskAF9r99WySuxUDbBIVjEyXI+RPz/taqAK+Tw6y5S65p76js4JaP94j9QvyeMWaHO0il1eOVREDx0OJCUdNuszqF18k7myrYXCZ/kZS1WLlkrDxxsaG0lW3+u/Evdtf5R3PDqe90sLOyHZ8kL9AlTRay48Nwe31CD6LL5aXUP2kD0GrpGRuXy2kybs4usgAAUyhJREFU4QatsE2INPbYJqREGYVtQlZcqGikTIkyMqZPLDsrO8hNCBd31jqNinnjs/lqryy81y3gB3Dj9Dw5eyBJQpkW4IZpeTjcPjr8tgndWaRzRqTTbHZS3trFmOwYhvl7YQany3f52yva6ZMQxtxR8iKnUav45pZJLC9sJDpUx9nDexa/1y8ZyYqDjfgkOdXfzc0n5DHBb5swpk9skG3ChnunU91uIz8xXExzJUYYWX3XVGo77CREGEQTt0ql4tWLR2J1etBpVEGmpd3j3T9UXx6eGSMaj8FvdujyEh2qC7JN6Eajlr3EustBP4XPJ7Gjsh2PT2J0dix3zeqxTdhU2kqT2cH43Lig8fW1h5s51CiL7Y3P7bFN2FzayrojLaRHh3D+6Ewh1b+nuoNFO+VemKsm9xH+ZgfrZeNJl8fHJeOyhB5RTbuNfywppsHs4MT+idw4LY+oEB1tVif3fr6f4gYLg9IieeqcIUSH6sUk05pDzSRHGXlu7jDxHA9+dYAPt1Wj16h59PSBwr8o0DbhlMEpohyxZH8Dt36yB69PIi06hKW3TiYqVMfemk7Oe31zL9uETluwbUJgxmzuG1uEdcH6khZhm/CXLw8InalPd9aIUfF3NlfywirZe+zz3bUMSYsiOz6MTWWtYvvqQ3IJ7NQhci9M980GQG5iuAha3tpQLgKQj7ZXiyBnVXGTKJN/ubuO+2YXoFKpqGrrEqW84gYLFoeHSKMOu9uLyS73+VidHrqcPbYJIf7skkYd/BnumxTOlvI21CqCxEJH94nlyz11WJ0epvdLVAKcYxylXPUnLleVNlu469P9sm1CXhxPnjMEo06DzeXhb98Ws6dabmB77PSBxIUbkCSJD7dVC9uEwOmE/bWdvL+lCo1axZWT+ghfpfYuF+9tqcRs93DW8DQxnurzySab3foOgXXhg/Um9tWYyE8KD+ptMdncbK1oIz5cz4jMmKCprf11JtQqOfMQ+KXUanVidXjIigsN2u7x+rA65S/I32NMtL3LRW2HjZyEcCFG1318hXUmsuLCgvoT2rtcrCtpJtKoY1q/RJFKN9ncfL2/HkmSOHVIqkily8KONbR1OTlpQLJYPF0eH29vqqC02cqorBjOH50hxnoXbK5kc2krmXGhzJ/ZV2Q+PtlezcKdNUQYddx1Ul/hZrz0QAPPfy+Pil83JVcEFNsr2rnPb5swe1AyTwbYJly+YAe1HXYKkiN478oxogT3S7lj0V6+2C2LIgbaJry+rkw0n0YYtGz02yasLGrimvd6xrU/vX48o7Njqe2wMempNWJ7YL/NiL+tFNYmM/snigblS97axsZSuRcmOdLI1gdk24RnvjssvJAAtj8wg8RII6uKm7jq3Z7nfv+qMUzOT6DF4mTiU6tFBi0w0Djx2XViRD5wcu3Rrw+KEd9RWTFCHG55YSO3fLwbt1ciKy6Ur2+eRFSIjorWLi5+cyv1JgcpUUY+vHosOQnhOD1ebvpwD6sOydYFL1wwXGRmXl1byoJNlRh1au6b3V+4hG8tb+OfKw4LiYnufphms4Mnlx+irsPOlL4JXD81F41ahdvr49/ryzlQa6J/SiTXT8sRQcXGI618VyRnci6f2EdcA7UdNr7aU4deq+bckRni8+xwe1le2IjF6eGkAUlBJeX9tZ3UtNsZkRUtJuBAvpZKmiz0iQ8L2u71SVS0dhEdqgvSwwHZIV2jVgVdkyAHzz+0TVA4ulBGyH8Gf/Yg54f81IipJEk0mZ2EGTS9xkcV/jfbytu47O3tOD0+YkJ1LL5pEplxodS025jzwgasTg8qFbxxiWyb4PNJjHtilVBjDdRHCbQuCLRN+Os3Rby9SZ5c06pV7H/0JEL1WhbtqOGez3uEGrs9kg41mpn9fG/bhB/qwpw2NFV4XAU+d7+kCFbc3ts2IUSnYftfZhBh1LH2cLOYjgu0Tfi/8PLqIzy7sgSfFCw5v7m0lVs/2Ss3OvdP4tWLR6DXqmk0Obh9oWybMCQ9iufm9tgmPLHsEGsPN5MWE8pfTx8oBCG/3V/Ph1urCdVruHVGvggUS5tl24TuUfGxAWWbdzZX0mCyM6MgSfTIyLYJTRQ3mBmcFsXMgHJeabOVzWWtpESFMKOgxzbB6vSwoaSFEL2GSXnxolel2zbB4bdNCOxhae9y0Wp1kh0XFtSj5vbKGcSYUH0vx/AfKi//GD+1wDvcXsx2N/HhwaPpXU4P1e02UqNDgibfbC4Pe2s6SQgPtk2wuTysL2lBq1YzpW+COHanx8uyA41YHG5OHJAsGs09Xh+f7aqlpkMeTJiQGy+O89NdtXJZPTGcy8Zniffn6331LDsg2ybcPD1PBNerimXbBI1axQ3TcsVj7arq4PGlxZjsbs4dmc71/tJvabOF+Qv3UtVmY0JuHM+dPyyo70jhj0MJcn4GSpDTQ7PZwWVvb+dQo4WM2BAWXD6avETZ6+SCf29lZ1UHeq2af547JEhaXuF/s7Oyncve3o7N5SU+3MCXN04gIzaUNquT8/+9ldJmK1EhOt6+fLToZbrns318tquWCKOOJ84eLEpkC3dU8/z3R/D6JG45IU9MNRXWmfjrN0W0djk5dUgqt8/MR6VSYbK5eXL5IcqarYzIiuGOE/sKzZD3t1aJqaZbZ+SLAHZPdQdf7akjwqhj3oRsMcrdanXy6c5avD4fZ49IF31aHq+PFQebaLE4mNovMSgjVdxgprTZyqAA24T/KxaHG5+PXgJwv9TL6Id0dLnQadW97uZr2m043F7yEsODgv7SZivNZgeD06OCgv7SZgvFDRb6p0QE9fGUNlvZcERu8j1xQLI4zqq2LhbvrceoUzN3VIYoHzaZHbyzuRKb08N5ozJE70xHl4sXVnXbJiQwd5SclbO7vPxzxWEK60wUpERwz+wCwg1afD6Jp1cc5ruDst3Ko6cPpMBvjPvGujLe3FCBQavm3jkFoln5yz21PPzVQWxuLxeNyRR6KhuOtHDDB7uxOj0MSIlk4XXjiDDqKPfbJnTY3IQbtHx0zViGpEdjd3mZ8cxaMbH52OkDhYLvma9sYq/foiCwBBeo6RQfrmfHX2aiUqn4z8YK/vZtkXg/1941jez4MLaVt3H+v7eK7c/OHcrZI9IxO9wMefQ7sT3wJuGEZ9aKsnpgZuyez/aJHjqjTk3RY7NRq1VBelIatYqVt08R/UQKfyxK47HCL6LF6hR9LjXtdmo77HKQ45NEbdzl8dFicf63h1H4EUZlx7Llvhk0mO1kxoaKO8G4cAMr5k+hzeokMkQXNBHy9LlDefLsIb1Ulc8fnSnctaHnrntQWhSLrg+2Tei0O4kN1fPE2T0j506Pl8ONFhIjDFw2PpvLAka/t1e0E2HUMjwzRtgKuL0+VhX32CZ09x15fRLLCxtotjiZnJ8gShySJLH0QAOHGy0My4hmekGiEHdccbDRb5sQwhUT+oix4vUlLSzaWUO4QcsN03LFBN+uqnZeWl2K0+1j3oRs4VB/uNHCY98cpNniZNbAJO48UXZqbjLL2ZviBjOD06N5bu7QXtN9P+S2T/aweG89WrWKv5zSX2i2BE5RTe+XwIIr5FHxQEPRhAgDq+6UbRN2VLZz/htb8P3ANqHN6uTkF3uEHQOdyy/899YA2YYe24QHvyoUGk3f7G9gd7dtwuZKUbpafrCRSf6x6a0VbSKLt72ynXE5cZw8WJYs+Pf6MnySrAH19d56CmbL52LhzhrR2/LNvnoR5Gyv6BBO52tLmsX71Gp1iim0epMdp8dHBHK/W/cYvNcniZ81ahWJkUZZvVqrDppQGpcTx/7aTrRqNSOyeoQSTyhIYn1JK2aHm7NHpIvP/cz+iaw5JKugT8yLJyVazsoMzYjmyol92F3dQd+kcGb4xQAjjTqeOW8oS/2ZnGsD9F9evXgEH22rFsa53Tx46gDyEsMx2d2cMjhVZKouGJ1BfLiB6nYbY/vEKgHOMYgS5CgAsi7Md7dPobDeTF5CuCgryF4nU9hb3UlcuCHIZkHh5xMVqvtRCfruxeDH+F9lhfUlLdyxaB9tXU7mDErmxQuGo9Wog2wTsuJC+fiacaRGh9BmdXL6y5uo67Sj1/ptE/rJo+Knv7RJeIbdekIed/htE+Z/spclBxoA2YvnS39D+StrSnl2ZQkg3/luu38mUaE6lhc2cuOHPbYJ3bow1W02rgtoWpckxGJ/wwe7RENsp80tGl+fW3lE9MJUtXWJIGfx3jrRzF7eYuXqSTnEhOkpqjeL7etLWihpsjL+fwQ53YG9xydRGSDm6O2RfcIbkOuOCdVj1KlxuH0kRhjQqeXySHKkkez4MMpbusiODxM9JJEhOk4elMyq4maSooxMCFA5vm5qLu9ursSo03DRmJ7A9fqpuTjcXtEL08288Vl0dLlkG4iCRFL95Zyp+Qn89YyB7Pf3wpzkL4/FhOn59PoJrCpuIinSyPkBTdmfXDuOpfsbMOg0QmcI4G9nDOSEgkS6nB6m9evRgDpreDqD06Ko63QwND1KZJ3yEsPZeN8JVLXayIgNEdv1WjVf3DCBBrODSKM2KON135wC7jypL2qVKij7duKApKBJvW6y4sL44Oqx4t8+n0RHl4sIo1YMPsjnTO69iQrRcc7IdCEHIEkSB2pNqFSyVle3Q7wkSWwtb8NsdzM+N070R0mSxObSViraZJmHwGPaXNrKjsoOchLCODVAgV3h6EUJchQEOQnhP3qnEqrXMiEv/kf+QuGPZG9Np7gb33CkFafHh1ajptPmFg20TWaHuAOXAI9PXr19PglPwOqdFGXkcJMFjVpFfERPYDA8M5qVRU14fL6g5vDxuXH02RNGk9nB7IHJhBnkrMzI7BhOKEjkcKOFoRlRFPizOGkxIdw6I1+2TYgOCXIJf/6C4bJtgkHDzSf0TFk9ftZgFmyuwOXxiWkjgFtOyCc+3ECzxcmJAxKFker0gkTeu3KM6IUJtE34KT6/YQLbK9oJM2iC7Bfum1PABaMzcHi89A0oPZ00MJldD56Iye4mOdIoAtGM2FBW3TEVh9uHUdfT06bTqMVocjfdE2nzJmQHZRMcbi8en8TIrBjev6pnUTfZ3LRYnWTFhYryEcg9OWUtVrLiQkVGDuSy1o7KdpIijYzMihElUJPNzdf76tFrZNuEblVmq9PDe1sqsTo9nDYkVSzqTo+XtzdWUNNhY0p+AtMLEslLjMDrk3h7YwV7ajrpmxjOtVNzGJwe5R9MqGJ5oWybcMdJfcWY/df76nlzfTkatYrbZuSL/qX1JS387dsiLA4PF47J5LaZ+YA8fHDLR3uobrcxIS+eVy8eQbhBS7PZwUVvbaO02UpihIEFV4xmYGoUbq+Ps17dRGGdbKz55DlDxBj+jR/uFlNiZ49I49m5wwB4ctkh3vBrOqVFh7Dhnumo1Sq+3FPHHYv2AXIv2Yrbp5CbEM7BehMXBQg7OtzeIFNehaMTJchRUDhGuXl6HkMzommxOJmUFy9MBifmxbPmrmmUt3YxICVSZBXiww2svWs6R5otJEcZhZ+QSqXi3StG02ByEKrXBBmFXj05h8snZOP7gW3C6OzYXrYJII+jvx2gsCxJEiabm1CDhjtO7MsdJ/bYJtS02zDo1EF38JIkUdJkweH2MjA1Kkh1dV9NJ41mB6OzY4Ub9w+Z0jdBjHj/HIw6jdi/us3GvzeUYXf5uGBMhpjs67ZNaDDZOaEgiSsnZhNm0GJxuPnbt0Xsr5VtEx45bSBRITo8Xh+PfF3IqmJ5VPzxswaLzOi/VhzmrY3l6DVqHjxlgJhQ+3BbFY99XYTL6+Ps4Wk8e/4wINg2oU+8bJsQFaLjcKOFs1/dRJfLi16r5uNrxjEyKwazw80Jz6yl40dsEy58cytFftuEEwckifLYA18c4Gu/bcLbGwNsEzZV8oR/cm3BpsqeXpiKNv4a0COTGh3COSPTMTs8wp4F5ExSt7fai6uOiKzZa+vKRJCzeG+9mCpbsLmCW2fkoVKpOFhnptyfWdtS1kq71UW4QbaqqGmXR85brE6aLU4GAj5JwurXjPL4JGwujziOwGbowJ/7JUeIrJzsoSVvH5gaRV5iOFVtXYzLiRM9adlxYZw+NJUdlbJg588JohX+eJQgR0HhGEWtVgnbBJ9PYuGOag43WhmeGc2pQ1KEENuiHTVs9DcY3zAtV4yELzvQwMKdNYQZtNw2I1+M/W8qlfVOXB4fV0zMFo3m3bYJzWa5F+bh0waiUauo7bBxwwe7OdRoZkh6NK9dMoLEiGDbhOhQHa9fMlKMLV/17k5WH2pGpYJ7ZhWIXp+/L+nxN5uQG8dH14wD4N3NlULTKTpUx7q7pv8sB+pfwmPfHBQqzqsPNbHn4ZMA+DDANmFTaRtzBiWTGh3CzqoO0ax6qNHCrIHJzBqYTIfNzSc7avD6JBrNDlYVN4kgZ2VRk7BNWFfSIoKckkYLLn+NbH+dSRyTw+PF499uc3nw+Xte9Fo1IXotXS5Z+dfoF3A0aNX0S45ga3k7EQYt2QEK5bMHJVPV1oVOq2ZGQY9twlkj0ihuMGNzeYMsDU4ZksLOqg5qO+xMzo8nLUZuNB+VFcutJ+Sxp6aT/MQIZvnLiFEhOl6/ZATLCuVR8RsCtI/eumwUC3fWoFOrgnzP/nbmQIZnRmNxeDh5cI9r9nmj0kmLCaGqzcaYPjFCgT0vMYI1d03jYL2ZPvFh5CWG+1+3huXzp1DUYCYuTB+kzP7kOUO4ZUY+ahVBo+Vnj0jn1CGpuL2+IBfyfskRfH/H1F6fjzCDlhcv7K31pHB0owQ5CgrHAUsONIiGWDbJWZvxuXGUNluDRsgjQ7RcOyUXSZK489N9YlRckiRevVjuhXltbZmwTfjXd4dFkLOyqIn9fnXnj7ZXc8eJ/YgK1VHW0sUB/8K8q6qD6jYbiRFG7C4v5f679E6bm9oOuziOTpvL/7wIETcgaMIpMqCPQxZt1GJxeOiXFBGkyvxrcbt/8uyHi/1Vk3Nw+yQaOu2c0D9JTJVN65vAs3OHcqBO7oU50W/imRBh4KsbJ7KupJnkqBDOGNbT87LouvGsLG7CoFUH9Xo8ctpAZg9KocvpYUJeT4bg1CGpjMiModHsoCA5QjSt94kPY+O902kwOUiKNIjtBq2Gj68Zh9kh2yYEZt9unZHPrTPye73u6f0Sg7yiuqUk0mNCRbYH5PJVTbuN+HCD6NkCucn9QK2JmDAdswelCCVyj9fH5rJWNCoVo7JjuXd2gdi+sqgJs93NtH4Jou9IHr1vpLK1i7E5cUzMi2eiP0767mAju6o7yEsI55yAyb61h5tZsr+B2DA9107JESXHXVXt/GdjBSpUXDW5j9h+sN7EU8sPY7K5OGdkOpeNz0avVVPbYeP+Lw5Q3tLF2JxY/n7mIEL1Wkx2N7d8vIed/uzNSxeO+P+eElT4fVFGyJURcoXjgPYuF49+fZCSJnmq6aFTBxDmHyN+Y305m8taSY8J5e5Z/cSky+bSVj7dVUu4Qcu1U3KEsGODyc77W6pweXycPzpDaJy4PD6+2ltHi8XJ9H6JQZo3u6raOdRoYVBqlNCXAdl4ck91B2kxIcLcE+SF7kCdiTCDVmSQumkyO3C6fWTEhgQ1drq9PuxuLxEG7VHZ8Nlg6rZNkBuMu4+x2ezg2/0N6LRqzhiWKoK3ji4XH22vpsspC2V2v882l4c311dQ22Fjar8ETh0iB0kuj49X1pSyr7aTguRI5s/Mx6jTIEnyOV5e2EiC3zaheyFetKOGf28oR6tWMX9mvghAlhc28ujXPbYJD/g9yfZUy7YJzRYnI7NiWHDF6F62CdGhOj64aiyD0qJwerzMeWED5S1dqFTw9zODbRO6TU5PGZLCKxfJo+KBAoeJEQa2PSDbJnyyvZr7/OPaKhWsvH0qeYnh7Krq4JzXNov3+bnzh3LW8HQcbi8FDy0X2wP1k2Y/v55DjXIj/cDUSJbcKtut3P3pPj71Z+V0GhWH/jYHjVoVNDUHsPTWyQxIjexl9fLCBcMUCY2jBGWEXEHhT0RsmP5HU+lqv+hZoOVENxPy4n+0oTwlKoR7/Hfdgei1sp5LNxuPtFLcYGZgWiQTcuMZmSX3sGwpa2P9kRZSo0M4f1SGkOqXbRNqMOo0XDWpjxhTL24w8/q6MhxuL5eOy2ZSvnxMNe02nlhWLIwnb5iaG5TdOZow2dyc+Ox60eQdqGbc3SgLsOZQs+hZevCrQjG59smOGjEq/s7mSp77Xp5c+3RXLQNTZY2hzQG2CWsPtzAwNZLThsq2Cd2qzyBnebqDljc3lIvnfm9LlQhy1hxqptHst03YU8f9c2TbhIrWLiFCebDehNnuJtKowxFgm9Dl9IgMoAoVer8An1qlChIfzEkIY11JCyoV5ARkP0Znx/LV3josDg8z+vfYJozpE8uwjGiq2roYnxtHqn9UvH9KBOeNTBeZnIn+z6xRp+Hxswbz9b464sIMXBXQp/XUOUNYsKkClUrFlRN7tj9wcn9So0Mw2d2cNjRFTHedNzIDg1ZDhd84tzuA758SyeKbJrGrqp2chHAm5ysDGMcaSiZHyeQoKPxiAp29AT66eiwT8uKp67Qz8cnVYnugLszIv62kzT/1NaMgkf/4F/tL/7ONDUfkUfGkSAPbHpAbX59dWcKL/kUdYOv9M4QK7tGGy+Pjxg938X1xM/HhBl68cJhQ031rQzlvbihHr1Vz96we4b0tZW08veIQNqeXi8dligmpZrODJ5bJtgmT8+O5cXoeGrUKj9fHWxsr2F/bSb+kYNuEDUda/AaYRq6YmC1Gtus67XyxqxatRs15o9KFrYHT47dNcMi2CYEyBntrOqlptzE8MzrIhLTN6qSkyUqf+LCg8+Dx+vy2CXrRpNuNyeYGVXDDL/x82wSvT+ol8ihJEi1WJ2F6bVAvjSRJVLbZUIFQse7mUKOZji43wzOjg/So9td2UtHaxfCMnr4fkMU1d1a2kx0fxtS+CSIQK24ws+xAA5EhOi4Yk9lLQFLh90NRPP4ZKEGOgsL/jWazg9s+2UuRf1z7ufOHkRBhwO318cTSbtuEEB47faCQJViyv4EPt1URogu2TTjSZOH1deU4PV4uHpslpla6nB7+s7GCBpODGQWJQfYIRyten4T6BwKOP+SnFJqdHi9mu4e4MH3Q4m9zeahpt5MabQzSm7G5POyt7iQ+whBU8rO7vKw/0oJOo2JSXrBtwtIDDVgcHk4ckCSacL0+iS9211LdbmN8TpzI7kmSxJd76thV1UF+YjiXjOuxTViyv4Fv9tUTF67nlhPyRdCz5nAz/9lQIWcQp+aKc7m7uoMn/LYJ54xI5zphm2DljkU9tgnPzB1KqF5Le5eLq9/dwe7qTrLj5N6g/KQIfD6JS9/exqbSNvQaNU+eM5izR8ij4nd9uk80iF84JlOIYL66tpSnl8sGodlxoXx/x1S0GjVL9jdw00eyppNeq2b5bZPJSQinpMnC7OfXixJVt5Ky1ycx8JHlONxyI/gFozN6Ockr/H4o5SoFBYXfjMRIIx9fO67Xdp1GzcOnDQgSaevmlCEpQhk5kPykCJ6ZO7TX9jCD9kcbZY9mugOXN9f3ZG/umd2TvflqTx0PfVVIl0vWhenuIdlW3sY17+3E7PBQkBzBwmvHExUqG26e+9pm2rpcRBi0fOi3TXC4vcx8Zp1QTA4cFb/4ra3sru4E4OTByaKh/NGvi/h4ezUAz39/hF0PyrYJH22r4qHF8uTaS6tLWXn7FPKTIthR2SH0YgAijLLInt3lFcEB4O/FkV/H378tosxvm2B1uPnCLx65cHsNOyo7ADlDd/XkHDRqFTsq20Uz+4qDjdxl6kduQjgtFqfYXtlmo6ylSw5yJEk4pru8Puo7e5rZu9WWATGRBnITvk6jwu2VSIo0ovYHoNnxoaRFh1DXaWdASqToVUuJMjKtXyLbytvIjg8TwbhGreKWE/L5fFctUaE6zhuV/nM+Egp/MEqQo6CgoPAr88mOatHb8vXeOhHk7KhsF7YJ60pahDBgs8WJ2a/zUtdpx+72EoUOr08So+Vunw+PfyFXq1QkR/XYJgS6a4/uE8vemk40alWQwOHM/olsONKC2e7mnBFpIts0rV8ik/KaRCanuwF9SHoUl0/IZk91B7mJ4ZzgHzsP0Wt44YJhfLOvgfhwfdCo+MsXjeCDrVVo1SouCxA6/Mup/emTEEanzc2pQ3p6YS4YnUFcmJ7qdhtj+sSS68/69UuOYPn8Keyt6SQ3IUz0b2k1ar67fQq7qjqICdULXy+QMy43TstFpUI8DsDcURnMGphMl9NDSpRRvO6BqVFsvHc6Lq9PlP1ADuYCtZ4CuWl6nii/KhwbKOUqpVyloKDwK9M9UaXXqjk9YKLK45X1caxOD1P7JgQJL5Y2W6jpsDMkLSrIc8tkd1PZ2kVGbGiQB5QkyTo84YZg2wSQe4RUKnq5kP+Q7iArEJ9PwuLwEG7UBpXUfD6Jmg4bkUadUJnu3l5Yb0KtUjEwNVI8niRJ7KrqoMPmZmxOrHgPJEliS1kbFW1djMqKDbKK2Vrexo6KdvokhHHK4B7bhN3VHWJU/NLxWeKxDtabeGdTJQDzJmSLoKeqrYtnV5bQ3uXitKGpomG+2eLgsW+K5FHxPrHcN6cAo06DzeXhvs8PsKW8jey4UP557lCy42Wdqfu/OMAXu+uICtXxxFmDj4my6Z+B36Rc9cQTT/DFF19w6NAhQkJCmDBhAk899RT9+vVoJkybNo1169YF/d11113H66+/Lv5dXV3NDTfcwJo1awgPD2fevHk88cQTaLU9h7N27VruuOMODh48SEZGBg8++CCXX3550OO+8sor/POf/6SxsZGhQ4fy0ksvMWbMmF/ykhQUFBR+dRIjjUKV2eby8OG2KiwOD3MGJTOjf49twn82VlDTbmNyfjwz+ieRlyj3nby7udJvPBnB1ZP7MDQjGkmS+GBrlRgVv+PEviLrsmR/A//eUI5GJdtedCsKby5r5a/fFGG2uzl3VIZQnC6qN3PzR7upapd7YV67ZKRsm2BxcMlb2yhpspIUaWDB5WMYkBqJ2+vj3Nc2s6/W1Ms24eaPd7P0gGybcNbwNJ7zqzU/t7KEF1eXAnIJaMM909Fq1Hy1t47bF8plMI1axYr5U8hLDKeo3swFAa7i9nNl2wSnx8vc17eILFZ9p12U+e75bD8H62UV58J6M8tuk0fF31hfzuK9sorzhiOtnD40FaNOw+piWVcH5Cbis4anMTQjmroOO9/sr0eSZNmDLf5Sldcna/e4vD6xXQlyji1+UZCzbt06brrpJkaPHo3H4+GBBx7gpJNOoqioiLCwnm72a665hr/+9a/i36GhPV3rXq+XU045heTkZDZv3kxDQwOXXXYZOp2Oxx9/HICKigpOOeUUrr/+ej788ENWrVrF1VdfTUpKCrNmzQJg4cKF3HHHHbz++uuMHTuW559/nlmzZnH48GESE3uErRQUFBT+SB5efFA0xL6+row9D50oW2lsruTxpfLo9zubK1lz1zT6xIexraJdqDsDJEUaOXdkOhanhwe/6rFNiA7VCduL574vEaPir64tFUHON/vqhV7M2xsrmD8jH7VaxcF6k7BN2FreRpvVKdsm2N1U+ntemsxOGs12BqRG4pMkOv0j5B6fhMXhDjgOfcDPPRml3MRwQnQa7G4vA1MjRVZoUGoUfZPCqWy1MTYnlsRIOWuVFRfKaUNT2VHRTnZ8qFDHNmg13D2rH4v31hMbpg8SanzktIG8uUH2n7o6YIR8/sx8jFoN7V1OTh+WKiaqzh2Zjtvro6ylizF9YkW/TX5SBJ9eN55tFe1kxYVysn/UXqtRs2L+FNYcbiYqRM/M/sracqzx/1WuamlpITExkXXr1jFlyhRAzuQMGzaM559//kf/ZtmyZZx66qnU19eTlCRHxK+//jr33nsvLS0t6PV67r33XpYsWUJhYc8FfcEFF9DZ2cny5bL409ixYxk9ejQvv/wyAD6fj4yMDG655Rbuu+++H31up9OJ0+kU/zabzWRkZCjlKgUFhd+MQBPK80dncLs/m1LXaeexrw9S22FnUn48d8/qh06jxuXx8dLqI+yu7iA/MYK7ZvUTo8orDjaKTM71U3NF+aqitYtPdlSjVau4aGwWaX5FYJvLwxe76zDZ3cwZlCwm3bpLRtXtNkZlx5AXYEJa12mnsM5ETnyYECgE2ZCysM5EXLihl+pvfadd9AkF4vR4cXp8/2d9I4fbi06j7jWJ1mZ1IkFQLxLI2kqdNjcFKRFBpbrK1i4q2roYmBIZNC5f1mJld1UHfeLDGJUdG/Q4Kw42EmnUBQVJCkcPv8sIeWlpKfn5+Rw4cIBBg2R33GnTpnHw4EEkSSI5OZnTTjuNhx56SGRzHn74Yb7++mv27t0rHqeiooKcnBx2797N8OHDmTJlCiNGjAgKlBYsWMD8+fMxmUy4XC5CQ0P57LPPOPPMM8U+8+bNo7Ozk8WLF//o8T766KM89thjvbYrQY6CgsIfjdvro8nsID7cELSour0+DjdaiA3TCzsDkPt7tle0o1KpGNMnVgQCXp/EupJmzHYPU/omiEBIkiS+L26msjU4iwGyEWi38eS5IzPEY2040sK3+xqI8dsmdD/Wrqp23toge4xdPbmPEIIsbjDz9PJDdNrdnD08jUv92j/1nXbu++IAFa1WxmTH8bczBxKql01Ob/14D1vLZU2aly4cRl5iBJIkcfNHe1hyoIFwg5anzhkiJvOeWFos3MPnjc/isTPkteedTRU8+o1sHNo3KZylt05Gq1GzrqSFKxZsxydBiE7DN7dMIi8xnPIWK7OeX4/bKy+B3WrGPp/E0L9+h8XfCH7R2Ewe95fHFI4efvMRcp/Px/z585k4caIIcAAuuugisrKySE1NZf/+/dx7770cPnyYL774AoDGxkaRwemm+9+NjY3/dR+z2YzdbqejowOv1/uj+xw6dIif4v777+eOO+4Q/+7O5CgoKCj8kTSY7Jz3+hZqO+xEh+p494oxDM2IxuXxcfKLGyhttvayTbj6vZ2sPSzbJgSOiv99SREL/M24iREGtt4/A7Vaxac7a4WPmVoF3/ltEw7Umrj6vZ1Bx3P+6EycHi+Xvb2d7ttgs8MtFvsHvzpIsd/RvKrNxlJ/L8yCTRWs8R/TgVoTF47JRKtRs/FIK+v9Fg817bVcMVFuEm4yO1l/pBWvT6K4wczeGhN5iRF4fRI7KmX/NKvTQ2G9SQQ5dQFj43WdDvGzTqtGrQKfJOvedDctx4XpiQnV09blIjnKSIRRXvbiwg2MyIxhW0U72XGhQmtIrVZx8dgsPttVQ2SIjtl+xW6FY5P/c5Bz0003UVhYyMaNG4O2X3vtteLnwYMHk5KSwowZMygrKyM3t7e0/O+JwWDAYDD87x0VFBQUfkfsLi8dfjVoi8MjsggAGv9irQr4GSAvIZy1h1t6jUyPyorl8121WPwTXN3CgiOzYxiaHkVlm41xObGk+EtL+UnhXDgmg+0VsnXBNL9Zp0Gr4e9nDmLx3nriwvRBtglP+20TAKHPA3DfnP4kRxrpsLk5fViqEA88d2Q6Wo1K2CZ0T0HlJYbz9c0T2VXVQVZcGFP8tgndo+KbStuICdWJ/hyAFy8YzhUT+yBJkhgtB7h4bBYn9k/CZHeTkxDe0wOUFsWW+2fQaXcRF2YQ26NCdCy8bjw+n9RLefm+OQXcN6e3tYnCscf/Kci5+eab+fbbb1m/fj3p6f9dEGns2LGAXNrKzc0lOTmZ7du3B+3T1NQEQHJysvh/97bAfSIjIwkJCUGj0aDRaH50n+7HUFBQUDhWyEkIZ/090zncaCErPkz01Oi1apbcOonSFiuxofqgfpIHTx3ALTPyUamCHdtPGZLCyYOTe6kq5yaEs/jmSUHP6/H6MOo0PHF2j3KvJEm0WZ2E6DVcPDZLZI5AHs1WoWJwehTP+qeoQLZNaO9yMTwjJsih/GC9ifKWLoakRwll4u7tu6o6yI4LY3J+vDBvLWmysGR/A1EhOuaOzhDZm8rWLj7YWoWEbMQ5MksObhpNDl5afYQ2qzwqfsqQFBIjjZjsbp5afogjTRZGZMVwx4l9SYww4vR4efTrYjaXtZIVF8bfzhwk3uunlh9i4Y4aIoxaHj1toGjeVji2+UVBjiRJ3HLLLXz55ZesXbuWPn36/M+/6e69SUmRP6zjx4/nH//4B83NzWIKauXKlURGRjJgwACxz9KlS4MeZ+XKlYwfPx4AvV7PyJEjWbVqlejJ8fl8rFq1iptvvvmXvCQFBQWFo4K4cAMT8npnmrUaNQXJcs/BxiOtvLmhHJUKrp2cIywYdld38PgSv23CyHSun5qLRiUHB3cs2ktFaxdj+8Txr7lDCTfItglXvbuDPdWdZPltE/omyb0wl729nQ1HWtFr1Tx5do9twr2f7WfhzhoguE8l0DYhMzaU1XfKtgnfHWzk2vd3AaDXyMFaflIEpc0WTn95k1Ao7rZN8Pkkznh5E3a3bP5Z0mQRtgm3fbKHfX4F5E2lrSyfLw+6vLzmCB9uk1Wclx9s5ISC2YToNXxf1MRH/u07KjuY3i+RcTlxVLfZeH9rFQBlLV1MLWpi3oRsJEnik+3VdNjctHe5WHGwUQlyjhN+UZBz00038dFHH7F48WIiIiJED01UVBQhISGUlZXx0UcfcfLJJxMXF8f+/fu5/fbbmTJlCkOGyB/Wk046iQEDBnDppZfy9NNP09jYyIMPPshNN90kSknXX389L7/8Mvfccw9XXnklq1evZtGiRSxZskQcyx133MG8efMYNWoUY8aM4fnnn6erq4srrrji13pvFBQUFI4q/rG0WPTCtFqdfHuL3AuzaEcNO6tk24TnVpZwjd82YWdVh7B4WFHUyO0dfemXHEGr1ckBf9BQ1WajvMVK3yS5F6bcb8vg8vioae/pf3F6vD0/u3tsExICbBNSonpsEzLjemwT8pPChYBgUqSRyfnxbPM3Gw9Jl7M4arWKG6fl8vnuWqJCdEGZn9tP7Mtra8uQgOum5IjtN0zLw+OVaLW6OG1oCiF6uWH79GGptHU5OdJkZURWDGP7yI3R+UkRLLhiNFvL28iMDeV8v0igSqXi21sns7ywkUijltP8CtUKxwHSLwD40f8WLFggSZIkVVdXS1OmTJFiY2Mlg8Eg5eXlSXfffbdkMpmCHqeyslKaM2eOFBISIsXHx0t33nmn5Ha7g/ZZs2aNNGzYMEmv10s5OTniOQJ56aWXpMzMTEmv10tjxoyRtm7d+ktejmQymSSg1/EpKCgoHI0cajBL93+xX3rgi/3S4Uaz2G6yu6Q31pVKTy0rlgrrOsV2n88nrShskN5YVyrtrGwPeqzSZov0+a4aaU91R9B2q8MtrT3cLO2r6ZB8Pl/QYxU3mKTDjeag7d3PX99p67Xd5/NJNqen1/Yf8lO/tzk9UpfT3Wt7R5dTqmy1Sl5v8N81muzS9oo2qaPLGbS9yWSXlhc2SAfrft/veq/XJ72xrlS6+M2t0r2f7ZOazY7f9fmPZ37u+q3YOii2DgoKCscgkiSxs6qDji4X43LjgvpytpS1UdnWxcismCCH8h2V7WyvaKdPfBhzBiWLCaS9NZ18s6+eqBAd88ZnE+UX9StuMPPu5kokCS6bkCV6Z6rbbDz3fY9tQrf6cYvFyaPfHKSs2cro7Fj+ckp/jDoNdpeXB748IHphnj5nCNl+rZ0HvzrAoh21RBi1/OOsQcz2C/G9uOoIL6w6gk+SuHZyDvef3B+AL/fUcs9n+3F7JQanRfH5DRPQa9VsKWvjsre34fZKRBi0LL55IjkJ4dR32jnx2XV0ueRMVPeo+O9BRWsX0/+1Vvz77ln9FO+rXwnFhVxBQUHhOCbQNiE50siGe6ej06hZvLeO2z7ZC4BWrWK53zbhUKOZ817fIv7+6XOHMHdUBl6fxNzXtwgj0NoOG0+fK7vC3/3ZPgrr5PLYvtpO0QvzxvoyvtxTB8hGo6cOSZFtEw41CduEQ40WzhmZzrCMaOo6bWL/JrOTTWWtwhtqxcEmXF4fbV0uNpW2iSCnqN4s+nYK603iuC0Oj9C2Mdnd+Pz36SF6DUadBrfXQ5hBi14rT3aFGbTkJoazv9ZEbJie9JgeraHfmuy4UJ45byjrj7SQHhPCvADTUoXfByXIUVBQUDgGyUuKELYJg9Ii0fonqfqnRJKXGE5laxdjc2JJiJB7HTNiQjl1SArbKtrpExfGuD7yWLZGreK+OQV8saeW6BA9l47LFs/x0CkDeHNDOZIEV0/u6YW5bUY+Oo1aZHK6xQvPGZGO2ytR1iJncob5BQfzEiNYdN14tle0kRkXxqmD5UBGpVKx9NbJrDncTKRRx4wA24SXLxrOlvI2vD6JCbnxYvtl47OZnJ9Am9XJoLQo8dzDMqLZev8Mmi1OUqKMYntUiI7FN03E7PAQpteIsfZfA6fHS6vVRUK4QQRVIEsClDRZSIo0cs7IdM7xZ7ocbi8bjrQQqtcyIjO6lzmqwq+PUq5SylUKCgrHKC6PD6fH28uFHH7cYfzH/l6rVvXSiWmzOvFJiACpm/pOO+1dLvolB9smVLR2UdnaxYDUSJICxtyr2rrYUdlBVlwoo39gm/BdURNRITqRBQJoMjv4eHs1Xp/EeSMzyIyTlfI7uly8uaGcNquLOYOThZbPH8mhRjOXvLWNVquLlCgjC68dT2ZcKJ02F3Ne2ECDyYFGreKlC4dzsj+om/38euEldsXEbOE9pvDLUcpVCgoKCsc5eq0avVYtbBPKW6yMyY7l72cNIlSvxer0MP+TPWwpayMrLowXA2wTbv1kL9/sqyfCoOWpc4eIhTjQNuGy8Vn81W+b8NG2av7y1QEkSRbxW3LrJAxaDetKWrh8gayMbNSp+faWSeQlRlDTbuPE59bj8shlsH+dN5RzR8qj4qe+tBGT3/Bzd3WHGEe/7RPZ4gFgWWEj398xFYAXVh3hnc2VACzcWcPBx2YRZvhjly+rwyNeQ4fNRZdLFnBUoRJZHY1KJTJsgL9saEGrVpEdF9b7QRV+dZQgR0FBQeEYZ2Npj21CbUcdV07qw6C0KBpNDtYcbsHrkyhqMLO7ulPYJmwtbwPA4vSwr7ZTBDkNph6rhPoACwWNWlZdlpAXbxU9tglxYXp/RiNEZJWiQ3WMzIxhS3kbadEh9AuwTbhgTAaLdtQQFaLjpAE99jxXT8rB5vLi9kpcO6VHh23ehGyaLQ5arS5OHZJCqP6PN8wclR3L+numU97SRX5SOIkRcgYrKlTHytunUtnWRXy4Qfh9Abx80Qj+eoYLvVYtTFcVfluUcpVSrlJQUDjG8fkkvt5XT3mLlVHZsUzpmyB+V1hnYmdlO1lxYUzrlyBKWB1dLjaWthIdqmNibrwoWfl8EntrO5EkiWEZMUGqyc1mBx02N7kJYUG9LS6PD5PdTWyYvpdjuNcn9dr2Q7qXoR+W1+wuL10uD3Fh+qOif8Xrk/h4ezXFDWYGp0Uxd1QGarUKSZL4dGcta0uaSYsO4ebp+WJC7dv99Xy4tZpQvYbbZuYzJD36j30RxwlKuUpBQUHhT4JareLM4T1j0QfrTeys7CA7XvaD6vaKKm22sGR/I5EhWuaOyhCid9VtNt7bUonHJ3Hx2ExG+D2hmswOXllTSpvV5beLkG0TzA43T39zkJImKyMyY7j9xHwSIgzCNmFTWStZsaH87cxBpMfIfTX/WnGYT3ZUE2HU8fBpA5ju76t5f2sVTy4txu2VuH5qjrCFWF7YwO0L92F3exmTHcsHV48Nau79I1hZ1MiDXxWKfydFGZneL5HqdpswPwXZZuOWGfkAPLz4IO1+XzKVSsVb80b9vgf9J0cJchQUFBSOI0qbrZz20kb809dBvTBnvLxJ6MUcarDw1LmyEv0di/YKxeQNR1pYdec0AF5eXSpsEJYcaKDor7MI1Wv5vqiJD7bKtgnbK9qZ2jeB8blx1LT32CaUt3TxfVETl/vNND/cVkWHzU2r1cWyAw0iyNl4pEUc09qSFhHk1HU6hMVDZVsXHp8PPX9skDMxL54Lx2RQVG9mUFoUY/zN1JmxoTx62gDWlbSQGh3CRWMzxd+8NW8Un+6sJVSv4cpJ/9sKSeHXRSlXKeUqBQWF4wir08OtH+9ha3kb2QHNxgAvrTrCp7tk24QHT+nPWL+796bSVl5eXYpXkrh6Uh9OGigbHdd12nnh+xLarC5OHZrCWcPlUWiXx8fbmyo40mRleGY0F43JFOWudSUtbCmTbRPmjkoXZa3aDhvLCxuJMGo5Y1iamKhyuL2sPtSM2+vjhILEoEmxg/UmWixORmbF/OgE2e+F1ydhdXiIMGqDJtE8Xh+1HXZiwvREheiCth+oMxGi19AvKUKU2rw+iW3lbTg8Xibkxov3QOGX83PXbyXIUYIcBQWFPykOf6bkh4ttR5eLTrubzNjQoH6aFouT6vYuchPCiQ7taahttjjYV2MiIzZEmImCPIq+qriZcKOWmf2TRLnJZHPzxZ5aPF6J04elBo2dH22Ut1i59D/bqeu0kx0XyvtXjSUjNhSLw81Zr26mtNmKQavmlYtGMNPfRD33jS1sr5CnxK6a1IeHTpXNpwNNTgenRfHNLZN+/EkV/idKT46CgoKCAo8sLuSTHTVEGHX8/cyBQlH4lTWlPLuyBJ8kcd2UXO6bUwDItgl3f7ofj09iYGokX944Eb1Wza6qDi56cytOj49wg5Yvb5xAflIEDSY7Jz67HqtTHqEOtE047aWN1PuntS4YnSFcxW/+eDcbjrQC8OmuGr67ferv+p78ElosThpM8pRZbYedDpuLjNhQvD4Ji0MeIXd5fWKEHCA2IACMDsjwFKRECDPT7j4phd8WJchRUFBQOE6RJImlhY04PT6cVicbjrSKIOdArUnYJuyr6RR/Y3V68fi3WxweYZtg0KoxaNU4PT6MOo0QAwzVa8mOD6WwzkxMqI7U6B7bhNmDUvhgWxURBi2T8ntUi88blUFNuw23V+KScVm/6Xvw/8vYnDi+v2MqR5qt9E+OFAKF0aF6Vt85jeIGM0mRRjJiQ8XfvHbJCGo77Bh0ajFaDnDFxD5cOCYTr0/6w3V+/iwo5SqlXKWgoHAc02xxsLq4mcgQHScOSBLBidvrY1NpKz5JYmJePAZtT8mqqq2LVquTgalRQaWsLqeHRrODtOiQoO2SJGGyuwkzaIOUkLt/97/GvyVJwu2VfvfpKa9PYllhA40mB5Py40WpTZLkkfyiejMD06I4bUiKeA3LCxtZfaiJ5Egj10zJEb1C60ta+HBbFaF6LTdMyw0yRlX49VHKVQoKCgrHOTXtNnZWtZMZG8rIrGDbhBUHG4kM0XH60FQuGCNP+zRbHCzcXoPbJ3HeyHRhj2Cyu3lldSnNFiezBiYzvSCRrLgw7C4vTy47REmTheEZ0Vw/LZfchHC8PonnVpb4jSdDeeDkAlKi5AzO6+vK+Hh7NeEGLQ+c3J+JeXIG5/NdtTy1/BAur49rJucIN+5Npa3c8vEe2rtcTO2bwL8vGxkUcP2WvLG+jKeXHwZAp1Gx+b4ZJEQYWH2oWZicAkQYtUzvl0iT2cH1H+wS2yXgTv802O0L99LmHxXvtLlYcMWY3+U1KPx3lCBHQUFB4Rikpt3GzGfX4fyBbYIkBdsm7Knu4Imz5V6Y2z7eyxa/0vGS/fUBo+JHeHNDBQCf7Khh78MnEh2qZ/nBBl5fVwbA6kPNjMiKYWJePDXtNl5YdcT/+J30T4ngxml5SJLE6+vK6LTJz/3pzhoR5CwrbKTZ4gTg6731IsgpbjALHZnd1R04XL7fLciZnJfA18n1NJodnFCQKCakRmXFctrQVIrqTQxKixK6QQnhBu6fU8Cq4maSo4wieAR48cLhfLS9mhCdhuun5v4ux6/wv1HKVUq5SkFB4RjE4nBz9bs72VbRTkqUkTcuHSnUdJ9afohFO2qIDNHxyGkDRMZmZVETL6wqweOVuGZyjnDHrmrr4qnlh2g2O5k9KJmrJvVBpVLhcHt5dW0ZJY0WhmVGc/WkPmIkfHlhA+tKWkmPCeHKiX0I8VstlLVY+XZfA+FGLXNHpYtyTpfTw5IDDbg8Pk4enCLsDiRJYntFO41mB+Ny4v7wSSufT+plWOrzSbR1uYgwapWx76MEZYT8Z6AEOQoKCsc6bq/sJP7f+l4kSUKS6LV4O9xebC4vMaG6oL83O9zUd9rJiAkNapA1O9wU1plIjQohO77HYNLq9LDxSCthBg0TcuPF2LnN5WHpgUacHi+zByYTFy67mjs9Xj7fVUeT2cGM/okiOPP5JBburKGoXrZNOG9U+q9u51BYZ+Luz/bT5M/ePHH2YHQa2eT0mvd2crDeTP+USN6aN4q06BBsLg8X/nsr+2pNhBu0vHzR8KPCBf3PjtKTo6CgoPAnoLvR99mVJXy8vZoIo5aHTg22TXhiaTEer8S1U3K4a5bcQ7LiYCO3L9yLzeVlTJ9YPrhKtk04UGvioje3YnF6iAnV8dkNE8hNCKfN6mTW8+tptcqlpcBR8dNf3kh5SxcAl4zL5O9nyq7idy7ax7LCRgDe3lghymOvrC7lxdWlALy8ppQdf5lJbJie74qauP+LA+K1JUQaxOv4tVhX0kJxgxmAxXvruHd2AQkRBmo77BT5txc3mKlus5EWHYLL46OmQx4htzo9NAYYmCoc/ShBjoKCgsIxjiRJvL+lkg6bmxaLkyX7e2wTNpe2YvPbJqwraRFBTm2HXWwvb+nC7fWh16rxSZIYIff4JGGeqdOqiQsz0Gp1EaLTBCn8jsqKobylC4NWzeAA/ZeTBiaxq6oDp8cnAiKQR8s3lbXRZHZw0oBk8VgT8uI4f1QGRQ1mBqVFMjq7p5n61+L6qblkxIbSaLIzOT+BhAg5uzSmTyzf3DyJogYzA1IihY6NPCo+lb01naREhdAvWZmaOpZQylVKuUpBQeE4oKZdtk0IN2o5Y1gqoXr5Htbp8bK6uBnXj9gmFNbJtgkjsmKCgpaOLhc1HTay4sKCtnt9Eg0mOzGh+l46Lw63F41a1WuE/Ofg80lYXR7C9b1tE2o67MSG6oWrd/dxFNaZMOo09E0KFyUtn09ie2U7dreX8Tlxon9GkiTWlbTQYHIwPicuqNS2vqSFA3Um+qdEML1f4lHhdq7wv1F6cn4GSpCjoKBwLNPe5WJVcRPhBi0zAm0T7G6+2F2Ly+Pj9GGpYrzb5vLwwdYqmsxOThyQxDi/d5Xb62PBpgqKGywMSovi8gnZaNQqfD6JtzdVsK6khbToEO48qZ/IfCzaWcOHW6sI0Wu486R+Iuuy4mAj/1xxGJfHx1WT+jBvQjYAOyvbuX3RXppMTmb0T+SFC4aj16qpbrNx6dvbqGqzkRUXyvtXjiUzLtg2Qa9V8/KFw4Wn1oX/3iqmxAJtE+7/Yj8fb5dtEwalRfLtLZMB+M/GCv72bREgixpuuHc6iRFGNpe1ctGb28T7+Z95o5jRP+m3OVkKvypKT46CgoLCcc5pL22krlPuFwm0Tbhj4V5WHWoG4OPt1ay9ezogu4q/ulYeCX97UwW7HjyR2DA9K4uaeHzpIQC+3FNHTnwY0wsSqemw8fclxeL50qJDuGVGPgBPLTskdGHeXF8ugpyFO2oobbaK5+gOcnZVdVDTLh/rmsPNWJ0eYrV6WqxOajt6bBNarA4y40Lx+cDqkK0S3F6fKK0BRIb0LF0Rxp6f8xMj0KpVsiVFSk/ZbHhmNJmxoTSY7Ezpm0CkP5vVPzmSGQWJ7K8zUZAcweB0xWrheEPJ5CiZHAUFhWOUx745yIdbqwkzaHj09IGi72V5YQNPrziM0y1nU66c1AeA0mYrf/u2iCazg1kDk7ltRj5qtQqby8O/VpRQ3GBmSHoUt5/YF6NOgyRJfLmnjrWHW0iLCeGGabkiQCiqN/PF7lpC9RouGZ8l7As6bS4+312H0+PljGFppPltHny+npLRxLw4suJ6SkYVrV0cbjTTNymCnIRwsd3m8lDcYCYxItg2QZIkatpl24QfjpzbXV7cPp84zl+K0+NFp1b3mkRTOLpQylU/AyXIUVBQONb5ObYJPp+Ey+vrpfHi9Hhps7qIDzcEWSo43F7KWqwkRBiCvJecHi87Kzsw6jSMyIwWz+v2+lh7uAWH28u0fgmi78frk1h6oMc2oX9Kj23Ct/sbOFgvNxifMrjHNmFlUROriptIijRy9eQ+4rE2Hmnl/a2VGLSy2N6AVPmxdld38Pz3R7C7PFw8Noszh8uBXnmLlQe/KqSu0860vgk8eOoAdBo1zRYHt3y0h8I6E/1TInn5ohEkRxlxeXxc+/5O1h5uISZUx4sXDmdyfsL/+bwo/LYo5SoFBQWF45C3N1bwwdYqQg0a7p1dIBbir/bU8eSyHtuEG6bJqruBtgmT8+N5a94oDFoNJU0WLnpzG61WJylRRj6+ZhzZ8WGY7G5OeXEDtR12tGoVL144nJMHy6aec9/YKsw8A0fF7/lsP1/uqQOgIDmC5fOnAPDmhnKeXCaXwXQaFZvuPYHESCNrDjdzy8d7xGsKu1zL9IJEms0Ornlvp9jukyRhm3DXp/toNMvj2+1dLj64eiwAr64pY31JCwBlLV0iyPmuqInNZXLfzntbq7hmSg7pMaGUt3SxraIdgJ1VHRxuspAcZcTu9rKrqgOADpub4gazEuQcByhBjoKCgsIxxKtry2i1yvYIH2+vFgvxkgMNIgj4YnetCHIONVqEbcLemk5hm2BxeDDZ5e3tXS6sTo94jp9KDOXGh7GvphONWkVWbE+5aXR2LMsLZdG/bhsHgEl58QxIiaTBZGd6QSLRobLK8YjMGE4ZkkJxvZkBqZHCNiE+3MB9cwr4vqiJ5Cgj54/OEI/1/AXD+GBrFQathuum5ojtfz9zELmJss/WuX4FZ5AbkiONOuo77UzOjyc9Ri53jcuJ49Prx4tMTnfzdVSIjlV3TGVrRTtJEQbG9Pn1x9cVfn+UcpVSrlJQUDiGKG+xsnhvPWEGDeePyhSj1V1OD9/ur8fl8TFncArxfnVhSZLYWdVBo8nB2D6xJAb0sNR32ilv6SI/KTyot8Xh9lLe0kVChEFMU3XT3uVCp1EFjaKDXBLzSZKwffglSJJEe5eLMIO2l7t5VZsNvVZNqr+3p3v7wXozNpeXYRnRQaW2vTWd1HXYGZUdE/SadlV1cKC2k37JkYzPjRPbC+tMrCxqIiHCwLkj08XzlzRZ+GR7DTqtisvGZ4veIoWjA6Un52egBDkKCgrHI26vjy/31NHQ6WBqvwSGZUQDciDyyY4aihpMDEqNYu6oDNFg+8XuWlYdaiY50sjN0/OI8XtLLT3QwAdbqwjRabh1Rj5D/Y+1ubSVf353GLvLy2Xjs7lorGxWWdxg5t7P91PXYWdaP9k2ITAI+SEOt5dL3trGzqoOwvQaXrxwuBjjvu79naw42ATALSfkidLVE0uLeWN9OQCD06L45pZJAHy0rZoHvpQVk8MNWtbcNY2ECAM7K9s59/Ut4jkXXD6a6QWJmOxuRv5tpRA/vGFaLvfOLgBg8tOrxTTYxLw4Prx63P/1dCj8Big9OQoKCgp/Ut5YV8a/visB4MXVR9hy/wkkRhhZWdwkggCAxEgDJxQk0WhycMeifWJ7iE4jlJEfXlworBwk4O3LRwOwYHMle6o7AXj++xIR5Gw40sL+WhMg2ybcNauv0On5MVxeHxWtsiVEl8srRuKBoLHxwJ8TIgyoVeCTIDmqJ1uTkxBGbJie9i4XA1IiCTPIWZns+DDG5cSyv9ZEv+QI+vpViyMMWq6YmM2ywkYSIwyc4u89Arh3dgELNlWi06i4aVreT7/ZCkc1SiZHyeQoKCgcZxxqNPOXLwtp6LQzo38Sj5w2AK1GjcXh5h9LiilqMDMwNYq/nNKfcIMWSZL4YFs1q4qbSIkycvuJfcVU1Z7qDhbtrMGo03DVpD6it6XN6uTj7dXYXF7OHpFGXqIcOHh9EksONFDfaWdSXrywR/hvmGxudld3kBhpYGBqz/4+n0RRgxmjTi0ev5uOLhcOj5fkSGPQdJnXJ+H0eAnRaf5P6sV2lxeVil6TaO1dLrqcHtJjQhRV5KMApVz1M1CCHAUFBYWfT7dtgs3lYXxOPCH6HtuEjaWt1HfaGZcTrIHzS9lb08lH26rQa9VcNSmHPn4LhpImCy+sOoLV4eH80Rli4qu2w8ZfvymitsPO1H4J3HliX7QaNSa7m/s+38/emk76JkXw9LlDSIo04vH6uH3RPlYUNpIQYeBf5w0VPTp//7aI/2yqQKNScedJ/UTz9rubK3nsm4P4JLl09cFVY5VA5w9GKVcpKCgoKPyqPPrNQd7bUgVAv6QIVtwuj4q/u7mSR7+RbROMOjXr75kepK/zS7jpw92iZFXe0sVH18i9MM9/X8LSA7Kj+c7KduYMSkalUvHNvga+K5L7dooazFw4OpPMuFBKmizCAb3B5GBXVQcnD07B5vayqrgJl9dHXaedHZXtIsjZX2tCksAjSRTWm8Qxddhc+Nt2aPOX7hSODZQgR0FBQUHhZ5GfFIFeo8bl9TEwrefueUhGNOkxIbKacW78/1ltGOBvZw7knc1V6DVqbpqeK7Y/cHJ/4sMNWB0ezh2ZLjIpV0zMRqdRUdthZ0rfeDLj5HLa6OxY3r1yDHurO+mXHM4sv+9VpFHHivlT2FjaSmKEQbi1A7x31Rg2l7WiVauZEDCBNX9mX04enILZ7mZIerSSxTmG+FOXq0wmE9HR0dTU1CjlKgUFBYWfgcPtxe319Rohh5+nvvxHUdFqZeORVuLCDZw0IEmMute22/hqbz1atYqzR6QFjdgrHL2YzWYyMjLo7OwkKuqn+77+1JmctjZZDTMjI+N/7KmgoKCgcLxz7x99AAq/GIvFogQ5P0VsrKxoWV1d/V/fJIXfh+7IXMmsHT0o5+ToQzknRx/KOfn9kSQJi8VCamrqf93vTx3kqNVyujIqKkr5YB5FREZGKufjKEM5J0cfyjk5+lDOye/Lz0lO/HL9bQUFBQUFBQWFYwAlyFFQUFBQUFA4LvlTBzkGg4FHHnkEg8Hwv3dW+M1RzsfRh3JOjj6Uc3L0oZyTo5c/9Qi5goKCgoKCwvHLnzqTo6CgoKCgoHD8ogQ5CgoKCgoKCsclSpCjoKCgoKCgcFyiBDkKCgoKCgoKxyVKkKOgoKCgoKBwXPKnDXJeeeUVsrOzMRqNjB07lu3bt//Rh3Rc8Oijj6JSqYL+KygoEL93OBzcdNNNxMXFER4ezjnnnENTU1PQY1RXV3PKKacQGhpKYmIid999Nx6PJ2iftWvXMmLECAwGA3l5ebzzzju/x8s7Jli/fj2nnXYaqampqFQqvvrqq6DfS5LEww8/TEpKCiEhIcycOZMjR44E7dPe3s7FF19MZGQk0dHRXHXVVVit1qB99u/fz+TJkzEajWRkZPD000/3OpZPP/2UgoICjEYjgwcPZunSpb/66z0W+F/n5PLLL+913cyePTtoH+Wc/Ho88cQTjB49moiICBITEznzzDM5fPhw0D6/53eVsh79hkh/Qj755BNJr9dLb7/9tnTw4EHpmmuukaKjo6WmpqY/+tCOeR555BFp4MCBUkNDg/ivpaVF/P7666+XMjIypFWrVkk7d+6Uxo0bJ02YMEH83uPxSIMGDZJmzpwp7dmzR1q6dKkUHx8v3X///WKf8vJyKTQ0VLrjjjukoqIi6aWXXpI0Go20fPny3/W1Hq0sXbpU+stf/iJ98cUXEiB9+eWXQb9/8sknpaioKOmrr76S9u3bJ51++ulSnz59JLvdLvaZPXu2NHToUGnr1q3Shg0bpLy8POnCCy8UvzeZTFJSUpJ08cUXS4WFhdLHH38shYSESG+88YbYZ9OmTZJGo5GefvppqaioSHrwwQclnU4nHThw4Dd/D442/tc5mTdvnjR79uyg66a9vT1oH+Wc/HrMmjVLWrBggVRYWCjt3btXOvnkk6XMzEzJarWKfX6v7yplPfpt+VMGOWPGjJFuuukm8W+v1yulpqZKTzzxxB94VMcHjzzyiDR06NAf/V1nZ6ek0+mkTz/9VGwrLi6WAGnLli2SJMmLgVqtlhobG8U+r732mhQZGSk5nU5JkiTpnnvukQYOHBj02Oeff740a9asX/nVHPv8cEH1+XxScnKy9M9//lNs6+zslAwGg/Txxx9LkiRJRUVFEiDt2LFD7LNs2TJJpVJJdXV1kiRJ0quvvirFxMSIcyJJknTvvfdK/fr1E/+eO3eudMoppwQdz9ixY6XrrrvuV32Nxxo/FeScccYZP/k3yjn5bWlubpYAad26dZIk/b7fVcp69NvypytXuVwudu3axcyZM8U2tVrNzJkz2bJlyx94ZMcPR44cITU1lZycHC6++GKqq6sB2LVrF263O+i9LygoIDMzU7z3W7ZsYfDgwSQlJYl9Zs2ahdls5uDBg2KfwMfo3kc5f/+biooKGhsbg96/qKgoxo4dG3QOoqOjGTVqlNhn5syZqNVqtm3bJvaZMmUKer1e7DNr1iwOHz5MR0eH2Ec5Tz+ftWvXkpiYSL9+/bjhhhtoa2sTv1POyW+LyWQCIDY2Fvj9vquU9ei3508X5LS2tuL1eoM+mABJSUk0Njb+QUd1/DB27Fjeeecdli9fzmuvvUZFRQWTJ0/GYrHQ2NiIXq8nOjo66G8C3/vGxsYfPTfdv/tv+5jNZux2+2/0yo4Put/D//b5b2xsJDExMej3Wq2W2NjYX+U8KddZb2bPns17773HqlWreOqpp1i3bh1z5szB6/UCyjn5LfH5fMyfP5+JEycyaNAggN/tu0pZj357tH/0ASgcX8yZM0f8PGTIEMaOHUtWVhaLFi0iJCTkDzwyBYWjlwsuuED8PHjwYIYMGUJubi5r165lxowZf+CRHf/cdNNNFBYWsnHjxj/6UBR+A/50mZz4+Hg0Gk2vLvmmpiaSk5P/oKM6fomOjqZv376UlpaSnJyMy+Wis7MzaJ/A9z45OflHz0337/7bPpGRkUog9T/ofg//2+c/OTmZ5ubmoN97PB7a29t/lfOkXGf/m5ycHOLj4yktLQWUc/JbcfPNN/Ptt9+yZs0a0tPTxfbf67tKWY9+e/50QY5er2fkyJGsWrVKbPP5fKxatYrx48f/gUd2fGK1WikrKyMlJYWRI0ei0+mC3vvDhw9TXV0t3vvx48dz4MCBoC/0lStXEhkZyYABA8Q+gY/RvY9y/v43ffr0ITk5Oej9M5vNbNu2LegcdHZ2smvXLrHP6tWr8fl8jB07Vuyzfv163G632GflypX069ePmJgYsY9ynv5v1NbW0tbWRkpKCqCck18bSZK4+eab+fLLL1m9ejV9+vQJ+v3v9V2lrEe/A3905/MfwSeffCIZDAbpnXfekYqKiqRrr71Wio6ODuqSV/i/ceedd0pr166VKioqpE2bNkkzZ86U4uPjpebmZkmS5LHMzMxMafXq1dLOnTul8ePHS+PHjxd/3z2WedJJJ0l79+6Vli9fLiUkJPzoWObdd98tFRcXS6+88ooyQh6AxWKR9uzZI+3Zs0cCpGeffVbas2ePVFVVJUmSPEIeHR0tLV68WNq/f790xhln/OgI+fDhw6Vt27ZJGzdulPLz84PGlTs7O6WkpCTp0ksvlQoLC6VPPvlECg0N7TWurNVqpX/9619ScXGx9Mgjj/wpx5Ul6b+fE4vFIt11113Sli1bpIqKCun777+XRowYIeXn50sOh0M8hnJOfj1uuOEGKSoqSlq7dm3Q2L7NZhP7/F7fVcp69NvypwxyJEmSXnrpJSkzM1PS6/XSmDFjpK1bt/7Rh3RccP7550spKSmSXq+X0tLSpPPPP18qLS0Vv7fb7dKNN94oxcTESKGhodJZZ50lNTQ0BD1GZWWlNGfOHCkkJESKj4+X7rzzTsntdgfts2bNGmnYsGGSXq+XcnJypAULFvweL++YYM2aNRLQ67958+ZJkiSPkT/00ENSUlKSZDAYpBkzZkiHDx8Oeoy2tjbpwgsvlMLDw6XIyEjpiiuukCwWS9A++/btkyZNmiQZDAYpLS1NevLJJ3sdy6JFi6S+fftKer1eGjhwoLRkyZLf7HUfzfy3c2Kz2aSTTjpJSkhIkHQ6nZSVlSVdc801vRY55Zz8evzYuQCCvkd+z+8qZT367VBJkiT93tkjBQUFBQUFBYXfmj9dT46CgoKCgoLCnwMlyFFQUFBQUFA4LlGCHAUFBQUFBYXjEiXIUVBQUFBQUDguUYIcBQUFBQUFheMSJchRUFBQUFBQOC5RghwFBQUFBQWF4xIlyFFQUFBQUFA4LlGCHAUFBQUFBYXjEiXIUVBQUFBQUDguUYIcBQUFBQUFheOS/wfWJIYO68nATAAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -1053,7 +1054,10 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 28, @@ -1074,7 +1078,10 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 29, @@ -1095,7 +1102,9 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 30, @@ -1143,8 +1152,14 @@ "text/plain": [ "SpatialRead(data=\n", "type: uint8\n", - "shape: (753, 853, 3)\n", - "strides: (2559, 3, 1), data_coordinate_space=CoordinateSpace(axes=(Axis(name='x', unit=None), Axis(name='y', unit=None))), output_coordinate_space=CoordinateSpace(axes=(Axis(name='x', unit=None), Axis(name='y', unit=None))), coordinate_transform=)" + "shape: (3, 753, 853)\n", + "strides: (642309, 853, 1), data_coordinate_space=CoordinateSpace(axes=(Axis(name='x', unit='pixels'), Axis(name='y', unit='pixels'))), output_coordinate_space=CoordinateSpace(axes=(Axis(name='x', unit=None), Axis(name='y', unit=None))), coordinate_transform=)" ] }, "execution_count": 32, @@ -1197,7 +1212,9 @@ { "data": { "text/plain": [ - "SpatialRead(data=, data_coordinate_space=CoordinateSpace(axes=(Axis(name='x', unit='pixels'), Axis(name='y', unit='pixels'))), output_coordinate_space=CoordinateSpace(axes=(Axis(name='x', unit='pixels'), Axis(name='y', unit='pixels'))), coordinate_transform=)" + "SpatialRead(data=, data_coordinate_space=CoordinateSpace(axes=(Axis(name='x', unit='pixels'), Axis(name='y', unit='pixels'))), output_coordinate_space=CoordinateSpace(axes=(Axis(name='x', unit='pixels'), Axis(name='y', unit='pixels'))), coordinate_transform=)" ] }, "execution_count": 34, @@ -1237,9 +1254,9 @@ " \n", " \n", " \n", - " soma_joinid\n", " x\n", " y\n", + " soma_joinid\n", " in_tissue\n", " array_row\n", " array_col\n", @@ -1249,52 +1266,52 @@ " \n", " \n", " 0\n", - " 1284\n", - " 1683\n", - " 14221\n", + " 1375\n", + " 14227\n", + " 3904\n", " 1\n", " 68\n", - " 172\n", + " 174\n", " 184.593855\n", " \n", " \n", " 1\n", - " 1442\n", - " 1694\n", - " 14753\n", + " 1683\n", + " 14221\n", + " 1284\n", " 1\n", - " 70\n", + " 68\n", " 172\n", " 184.593855\n", " \n", " \n", " 2\n", - " 1195\n", - " 3221\n", - " 14189\n", + " 1534\n", + " 14490\n", + " 5095\n", " 1\n", - " 68\n", - " 162\n", + " 69\n", + " 173\n", " 184.593855\n", " \n", " \n", " 3\n", - " 383\n", - " 2309\n", - " 14740\n", + " 1694\n", + " 14753\n", + " 1442\n", " 1\n", " 70\n", - " 168\n", + " 172\n", " 184.593855\n", " \n", " \n", " 4\n", - " 923\n", - " 3995\n", - " 14439\n", + " 1842\n", + " 14484\n", + " 3328\n", " 1\n", " 69\n", - " 157\n", + " 171\n", " 184.593855\n", " \n", " \n", @@ -1309,52 +1326,52 @@ " \n", " \n", " 923\n", - " 4947\n", - " 10472\n", - " 22556\n", + " 11724\n", + " 23595\n", + " 677\n", " 1\n", - " 100\n", - " 116\n", + " 104\n", + " 108\n", " 184.593855\n", " \n", " \n", " 924\n", - " 5166\n", - " 11883\n", - " 23858\n", + " 11735\n", + " 24127\n", + " 4327\n", " 1\n", - " 105\n", - " 107\n", + " 106\n", + " 108\n", " 184.593855\n", " \n", " \n", " 925\n", - " 5319\n", - " 11246\n", - " 22807\n", + " 11861\n", + " 22794\n", + " 3123\n", " 1\n", " 101\n", - " 111\n", + " 107\n", " 184.593855\n", " \n", " \n", " 926\n", - " 5511\n", - " 11406\n", - " 23069\n", + " 11872\n", + " 23326\n", + " 91\n", " 1\n", - " 102\n", - " 110\n", + " 103\n", + " 107\n", " 184.593855\n", " \n", " \n", " 927\n", - " 5611\n", - " 11713\n", - " 23063\n", + " 11883\n", + " 23858\n", + " 5166\n", " 1\n", - " 102\n", - " 108\n", + " 105\n", + " 107\n", " 184.593855\n", " \n", " \n", @@ -1363,18 +1380,18 @@ "" ], "text/plain": [ - " soma_joinid x y in_tissue array_row array_col \\\n", - "0 1284 1683 14221 1 68 172 \n", - "1 1442 1694 14753 1 70 172 \n", - "2 1195 3221 14189 1 68 162 \n", - "3 383 2309 14740 1 70 168 \n", - "4 923 3995 14439 1 69 157 \n", - ".. ... ... ... ... ... ... \n", - "923 4947 10472 22556 1 100 116 \n", - "924 5166 11883 23858 1 105 107 \n", - "925 5319 11246 22807 1 101 111 \n", - "926 5511 11406 23069 1 102 110 \n", - "927 5611 11713 23063 1 102 108 \n", + " x y soma_joinid in_tissue array_row array_col \\\n", + "0 1375 14227 3904 1 68 174 \n", + "1 1683 14221 1284 1 68 172 \n", + "2 1534 14490 5095 1 69 173 \n", + "3 1694 14753 1442 1 70 172 \n", + "4 1842 14484 3328 1 69 171 \n", + ".. ... ... ... ... ... ... \n", + "923 11724 23595 677 1 104 108 \n", + "924 11735 24127 4327 1 106 108 \n", + "925 11861 22794 3123 1 101 107 \n", + "926 11872 23326 91 1 103 107 \n", + "927 11883 23858 5166 1 105 107 \n", "\n", " spot_diameter_fullres \n", "0 184.593855 \n", @@ -1467,7 +1484,7 @@ "outputs": [ { "data": { - "image/png": "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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAdoAAAGiCAYAAABAlQcDAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOy9ebhkVXX3/9nn1Fx1h763Z4amARkEZAYRRFAUUeMQ46xxjImJiW9MYvRN1Jhf8mqMMQ7ROMYhzkZFBVERVASZ5xl6oOmmu2/3nWuuOufs3x9r7X1O3e4GfN8gYmo9T/e9t+rUOXuqvdb6ru9a21hrLUMZylCGMpShDOURkeDRbsBQhjKUoQxlKL/NMlS0QxnKUIYylKE8gjJUtEMZylCGMpShPIIyVLRDGcpQhjKUoTyCMlS0QxnKUIYylKE8gjJUtEMZylCGMpShPIIyVLRDGcpQhjKUoTyCMlS0QxnKUIYylKE8gjJUtEMZylCGMpShPIIyVLRDGcpQhjKUoTyC8qgp2o997GMcdNBBlEolTj31VK655ppHqylDGcpQhjKUoTxi8qgo2q9//eu89a1v5d3vfjc33HADxx57LOeeey67du16NJozlKEMZShDGcojJubROFTg1FNP5eSTT+bf/u3fAEiShAMOOIA//dM/5e1vf/uvuzlDGcpQhjKUoTxikvt1P7DX63H99dfzjne8w78WBAHnnHMOV1555V4/0+126Xa7/u8kSZidnWVychJjzCPe5qEMZShDGcpQloq1lnq9ztq1awmCfQPEv3ZFOz09TRzHrFq1auD1VatWcdddd+31M+9973t5z3ve8+to3lCGMpShDGUov5Js3bqV/ffff5/v/9oV7f+NvOMd7+Ctb32r/3thYYEDDzzwUWzRUP5fJCyC7QMB2ADoA0b/rgBtMDXA6nVdIJZLqAIr9bUpoAw2ASIwoV7f1wcZ/YxN/8bKc4zRZ0eZ95dI9mWzl9f23UFgHJjXNpT19SaYvLSZHtDSexugqDePgBKQA9sFMw7UwRS0b2X92dJr0Wsmwd6vfR8BE+t1IeRqkDQh6etzXYcy40Go41IE25H3kh6QpN0KAqAAJtHP9LVdBuiCjfUeFf1b59UYmSPr+loF0yUd+2DwOU6sG6ccmAiI9z3k1vUlJ/cyVvsSk66HfUiuBkkXkkjbsuQ5+VXriRuz2M5COnYlMCMQJNrXJpiR1RTXHUvnvhuIO7tTBkxb+xcAebnB6EkvxtSW07jy68SL0xBKWw0Q5MFa+buw/8GMn/MnxM1F5n7wQZJGfZ/9WPasP6d82Gn0dt7L7EXvwtoYW9cxyclYBhXIrV7BxDP+hSBfor3xKuZ/9EG9gYybbcjaC6pQO/p51E55BQCN67/B4uX/JUNQReYvhlxFP/7CD5MbXQPA9Lf+ju7WO0D7UyzJEPRiCKtrWfWKD8m8JTG7P/0ywlGI67q2CpDE0obayc+jdqo8v73hauYu/BedcOlTOCL9ssD4uW+ndOAJACxe9m90br+MuCvjbsYgLEDcAJuErHr1pwhKIyTdJrs+/4dQ6kEXkjZ+zZZrUBlZQ/5578PkyzRuuojGNZ+TNd8B2wNCiPowMjLy4GvsQd99BGT58uWEYcjU1NTA61NTU6xevXqvnykWixSLxV9H84bya5C4pxtKAsYp20R+GtVkxgJNROk45VsERoGO/nRKNQZWgumBqYON8JshXf3yQrqhF4C8bDp2Fq+wrH6MUP/Qz5lA/7apbnKyB8PByOdMR59XUeXakfuasj6/JdeaPGI89NI22yKwqEqpLn3AqLLpMKgsrfxtZjJj2dTrA2lDEmmbyqTKraI/O3qvEpiS9r0LjEBQV2VppS0mlPE2bqBU2RirzzUFAlMm6Syk1+T0sya9Fy0oHXwitt+ht/t2aZNThm4tIMZCfvkBVI57Bt37b6Z713XpuC8Z9gAYOePlFA98AvWrvkn3gesJcqJAvZWkF+ZWrmf5C/8eE+aZ+dZ76D1wpx9OErwRYkIYPfMN1E56Pkm3wfQ33kIyP4XNizExvgyWGZidhcVekeWv+BfCyhhxfYYdn3gtmCQ1sgJVzCUo7XcWo2e8CoBcdZyZ7/yjzI+2M3EGFDBy+ssorDwcgN6J59C47DvsVUxA9ZinyVSuO5YgXEU8t90bmkYNNBNCWNiPXG0CgOJ+hxNOQDwPzEo7g5H0u2jyVYKiaFITVmUNBBAUZH2Zoqy3JIKkPkew4hBs1CPpzWGc0WOgqwosXAFJd5pocYrCivV0Nl9FmIekAxQhbsr6wEIhD4XtvySuP4OgPErrth/LGnXf+RiSeV2XQP2yLxI+NSRqTdHZcAVJrN8vC3YBbFXtqG7M7Hf+gdLjTqP3wNWExR4loFSG2QhsQfreaUEv2UHwlb8kqK2kt+0OghHpv40hrEFQhmiKhwxh/toVbaFQ4MQTT+SSSy7h+c9/PiAx10suuYQ3v/nNv+7mDOXREN2EbQGCtYjVHQGLiJIIwIbI6iwhymBEPkMk3gMRooTQa2YQBeQ8XysW8YCn5H7vIV/WTua9UBVTX69TpYoBxvTadmaD34cX5j20grbFKb6a3qOp7VYPx46pEqojnm4MNLQ9NTBJldzkAfSaG8SC0DEgh3jNC3Jf24byYU/CjNZo3X0pQSnC9sXqtg28oUAI4fhKRp/4MqL5KeqXfx2sxah1Tqz3nwWTg7GnvpLK486heftPaN75JTFMjHgITinbDgTFSVa+4oOEtUnmL/0MjevOF8WfiDFiMjtN7aQXMH726wGYveh9tO++XMZVvWGrhgIJTD7/XeTG11B7wnOZ2vlG4vmp1HvNSG71oYye/nL5fdkadn7y1XtHH3JQOeoswuoyACrHnOMVrRcjiiTMQfGgY2W6izVyk4fSaUxhOhDkwCyHzgz0m5DYAkFZvJqgOi5uXNyVvqjSsh3xmOLRpn9U0mnuAbhkf+9tv5vyutOwSUxvy4bUGFwqNqFx4w+oHf8sOpuuJ57fmb6XqJEDJHXo3HULjQN+RGHNYSxe/gWSecTT7ssSs4v6mQQat3wL8nmIA+rXfJ0gL0hHsqiGqhVjxiYwc8H7KB9yGv3dm4mbOwiq0gnbBsbAtFU5V3rs+tJfkJtcCXY7hSIkiSj7oCLfh6QJ/R7UH9hN/z/+RMawLMamdQOka4a8fNejme3MXPCPmJyiMqroQa9xBkwF+rs209+1GeMQnyp0dK7oqAGtqELU3g3zuwXlaSHfbd0j4sbeJmNPeVSg47e+9a28+tWv5qSTTuKUU07hQx/6EM1mk9e+9rWPRnOG8iiIdTBpV788FvHs+ojidN6qbuweZk4QheW+QM7DbUBQGcOaHjYWjWiyijCvP/uyaZbWPYHuzruIo9kUrh0FdjKwiZcPP53CmkNo3HQhcXtGXlRvxybphhiOLWfyGW/Gxn1mL/koycKifGkVumJGLrTAyEnPY+wpr6G3/S6mv/t32J4S/Qra5562t1tm5Us/TG5sNZ2dNzB9wbsgTiFvk1HY5Sc8hcln/JV0dWwtjZs/LwpWx9Z7AgEse9qbKK07GYBoZhvtOy8nqIoSsIneMw/BZI3RE14KwNgTX0rz1u9gbRMDVGOo5GG3bsrFg48hrE0CUDnyTBo3nC9ecRGSmXSjB8hPpmGf3LID0/esjhekHrdzV4wsAuuuWyJJc56k3yHIl4jmd8o47QVqNiF077ue2rHPhSCgs+FaeSNMx9JUdYPtQf3qbzB29h8RzdxPb8sNBGrk2DYs3AyLEUQdiJM6cxd9lPKRT6Z12yUQaEdiBpAHC7Q3XMPsD/6JoLqCxo0XeeW5R6gigPov/ovupjtIOg2imfv37FBGFi7+OAuXfhrivh9OUASikQ6xyScsXvlRbF2HNSfjYkKZr6jjLoSALvVffkGM1oKiLYq+JF0ZB6sogA06NO/6Kcb12SE4RfWoixA1VOHFPeLeNgpF6HU0TIEo2NyoeP42hn6i9ymI7ZIoZB305blJV7+LGRTC6vfHhGq0oZ63IitJxsAOjVwf9QWuNjZFqUwO8hHUarDYhEj7ZYpqkGRQr4eSR0XRvuQlL2H37t28613vYufOnRx33HH88Ic/3IMgNZTfTqkccQaVw55E47ZL6dx3HcZq/C+vm6Mu9KBWY/kz3044MsnMzz9Mb/Nd6cJ2i7wLdKB69NOYeOZbsN0WU195G9H0/enqztwTYMXL3kdhxUEC8X3mjVi6Ald1B68rrD6M5c99h/7+eHZ/9e0Sf4zxCsEhRmNPejHlg08CoN/bwsKlXxL42H2pM/etnfwCTJineMAxFA4/nO62W8Qz7SPxPPWIw8pycmMSTikuP0YUp/M6IYVbixCumvD3DwoTYnlr7NfE+rme/EtabX+tjVoCL3fSjcMiP5N6i/7sFvIT6+hPb8EutGXTzmlssqdtDaD7wE1ECzsJR1fSvO1izKgod6MQo3Xx0x4sXvUNcuOrsUmH1qYL04Gx6rTn1QtKYOY7/0D1uPPobrmZaH4H+5K4Ps3uL/8FhbWH0b5779kLIPftbryFnZ94DeRDkoVZ6UMRgcLz+A3ZTkPnzl/Q2/wLGQ8HQweqLNJhxACt2y6mfefFmCLkl0G0oOs53tM2aN/9C0Ec9tFOU5IYaTwLvQfu8A7cQ+ZYxKlF45R31gs2SJtMD3IjkAvEO+/MiiIzOQYaFTljTg0Ff+8c2BI+BCKdIkV08nK9deu/rq8vyjVBAXJlyLc0LlrC8wpsBwqjEIcQNXVvyEkMN5hUZdhSzkGcQu2QxliDkj4705awljHwVUYLYHPQKkibkmn92ZfrazHsNwqxhcW6GhUt8bwp65LOrIN9yaNGhnrzm9/8PxYqzq9cT258Ne0N14gZtQ8x+RKjp7yApNemft33dJYf2xKUR1n+O3+FCULKh57K1g+9BGsjkkQ8W1OQLxEJVI59CqV1xwEwdvJL2T31d/JFrSIrt458uSOoHH4GxgSYUo3SQcfTWLhfIF9HOnIQdBCSnzwAgHBkkqA0StzfDUu+gADk8v5XkyvI/pNTxUVm8wohziiBaHq790g8CSYzzZ0N11A7/llEi7voP3CfKMwlmKApQ9TeRnPjTyitPZnGdd8WZZmBv5wyogPNW35ALreWIDfC4mVflPdKeKVgWukz5i//GP36fUSzO+ks3ICZJPUSHHRbBttJmPr6X1E89FD6OzZAmEjMOYB6DPVFsDVRTkl3nqkvvxHTz2PjrsSaW2CdN5sh5MTzO9j9tXeI9wiD2ibzu7XQ27WJ/k8/Jt7+g4gpQLSwhWhxy0OSnwCSlhKbnCerCsH2EaXbEc/F6IYbt3XjXurFGKCgnvuijEVYRkIBXfYpSSYmbZZ8rU0oijZZYsw5/oJT9qi3t8e6zUpe12uW1KYaOI7VI7QC3XpyoLbLwac+jIIaQX0dpwIS7sgQCo16sl45O6JjHs+PMMhnkgVol5B1quMa5NUYaKtBUBAj0KhBEIQKXbs4rQsvtfFxWxCIHLSNqtjjvnjMvq15QSToqoFVAZsXxWt7st3OdaGhytejKX2olCHKQ3fxQcY+I48J1vFvkxRWH8rqV/0LJgip33gRsz/+2D6vHT/zVYye9DwAbNSjceMPfl3NfMTExn1sv4spVrA9hzul3lQuJ7ZHEkNv50ZsEmOCkN62e+TLpAxXA7AfEvOcg+bNP6Z04HHE7UXaG66WjaiJfPFcfNQCSczcpZ+gdtyzad/9S+L67n22tbv1dmZ+9DEKqw9l8ZpvCwTrvlg1bUsDqED9ru/Qn9kOcZ/OfTf4TdHmkM2oTqrorvw4jVu+R7wwg6UtxkBJ72lJvau2Ze7iD6WbFfgNzCtZEMZqv8v85R+T/rb1XsvATul1ZbmONiSNJvVrviHXjOk1DW2r27B087S2RXfuFj/2zuswZZ2zpno2XSBJsOWueMVtUm8aVfbO2HCuVsKgR6ebtHWbspOYAW8qewsnYUGhzAdTsk45Obg0EAa8MFFJ+xiJF2VDSHIKqbu4MYMPNiWdFmWQJz31dgt4JbrUa7Xo2DkFmrmvQcY2cYxlxwjPKBFKYEbxsVQ3Ro58lIXMjYN6M+NnFY2wPWmniRA0qY/Muyr6pWsMVMk6BezQF0cadG0Lke9etsMNoAjBMuT724ZwFKKutDscg+gB6UcSQF+NDBuJYRAWpd1WiVfk1fCo4ENOFjVy+hn0oafjOqKeqoupGoGorYFoFpiDsCVdiZXTEC3oXAVicFmdn3weVpZh9zy0900CH5Chov01S35if0wgqza/Ys8UpQFChF4nv/92TJXttZn66jsoH3wSrXuvHPDSrVWLVQeh98Bd7PiPPyGsjtPdfpsoC2UgA1DVzQJo33sl2z78IjXNE79pO+XivnAArVsvonXTRYMAQY6UDZyRxk0XLekAcm9NgfEeTg46918tz6uRKtZYPXTnFWi7ovltwsisZTa4KW1HpJtlHkkRcu0cI91wrb6v8TVibZNLu5gg9aQdxK73RpWDj3U39KfbRFVMQa/fife6bZ8UFrSirHAKOsRvgLat98/LnMbOo34wcZ5GJ1UWngmc7PVSr/v2IKUoDGod5Ln0Hvp73JIlA6LgjPYp6amHF6efNTl8GpTVNWi76f0c5L60n27ebR7Q+J5j1poESZVROBTkp1e+br6zmHGflECoKUlmRJdjV40hd+3eyDruzZr+GaVryCKfT1xsUy/3yjsLwPWXXIOOn64xmwnF2Fj6GhoZ2/yojocRz9bO4ePqfl3pWOaqev8QokVVfAGY0RFsq4ltJmJoFGV+/JwYmbPcxCS5iXX0N92GMT2soiP9OR3nRNZoYdQQHnoOtlelceMPsLYnnLw4RR0sEqvdXT2EwlNfzcjUBuZ+8sW9DPKg/Hbs3o8had59BeWDTyK3bC1zP/1c+obBpzaCLLa5y/6TJOphe23qvwXerJPe1EZ6Uxv3fMNCd56Bjao/s43+zDZJEWkhyqOEEDN2AfMZSC3O5EU4KHgJrGZAyCwuluSYxktZxOpVGVVqTr/6/S57XwfTLgPm8AQkICUXoc+okubRdsEu6Ptxpj2QEqKqCAuyJz/9RhfKfcwIKYM6h0DrhfRaox7cQKpLTpSonSc1CJzn5IbQkDKwnYemv5s44+E5JZ+kP+2IbLZW8yz3SIF6EIWbhVEfMh65L9EN3EYyPlbTm1xOs3XsdM1ddcqTbrqh+36rIWMD8X72gHqXRnNco5cYbFYhR7s3oyF7rduRM/ngfhwMoiRc2lqArCVdu0lbPeycGCsU2IN5P2CgxKQQvyI+uYm12E6DpL3ov0bZefCv1SYoHXQC3a23Ei9MpSRgK55qrOubAKonPI/88gNpXP1NqO8kXxEEIG7q3Oi4hyvWsuzcP4e4x9xPPoCdnyMoQU95GPmaKlgDtdN/n5GTXkx/5j52f+mvsHEbG2cgcO1sfmyUyRd/hKA0RnfLDTR+8i6iosR7nQFjNLwSrD6HsdPfItMwPsni5Z+VOW8NDkCcQPFJb6Kw5gjyK44YKtrfSIn7TF/wgT1f183ObeaJAXpNFn76H34fdFbjb7Xsq4NWHVWnQLXggVl6veaukonF7CHOIy4haUPzpHApyMY7gcDEem12s8uKRyAcOSZDENpjE3bWfoxskK4dRWQTrumzNZXItBEm9BiYeXmYV1qxKjMlcTmSkjcwnMejkGJQU2anxm19moSDqnPy3OxGPeDxZ/Nci/JMXHGL7BhpepJ10POSYTOj6g1G6oHE+LQLN8f/V+K+OJaU+AVpsQhIU7gQZWqR8TDuWvX4zbiMhW0KpJm0tf+jpN6kCTC1ojDcXeERSBEFRwIKoLDfEYChu/3OvRZIcZBrWJikeuK59HfdS3fLtd5ztpaUHawxx+rJz6J0wKk077yQ7uZr0vhqUQwJlxMdFieZfMHfE9YmmL3gn+lsviF9cFv7htxz5JQXsOzs15N0W0x95S+Idm8dHN5Af4kNK1/2T+SWrSFuLbDzk6+HfodQC3/E83hSY/GoExh/6h/I8I6vZfZb75B13BOY11QhXgC6MHrKCymuPRKAypHPpnnVl8jlxYOMWmKE18rSt8qRkjOcnzyI/MpD6W29Nc3dzqAhpriSoDQm1656nIQXeulcmQ4EywU+NqVK2t9cBdtRyLqoseyKfJeSJkQLuyisOQL7MBfsUNH+JokjzhiFYEz6Mgx6u//TxCsFiygEsxclCzJYjv24r/s46ZB6bdmcuxBRVG6z3IdrZUDikD1gIXNvF5fMXug2AZfCU8y87pSDI3j108+bBmI0ROqJOXg1lC+9XdR71bT9Lf288+IA24doJtMGq2QR10CtIEVF7zuu7ZjPKD733Bx7T7NyfYt48Dip64Prb4gnRFkK5Cf2oz+zVQJxD7LOC/sfJYTCuy7D2L4UkQhJIWvXrGCU0We8lKQxT+OO/yKpJ+m6CRFyj7JTK8c9g9oxv0t3y/Us/vzTBHnE4FEP2M7LT1OosuIV7ye/fB0LV3yBxpXfHFibWQOrcvRZLHvmXwIwd/GHadxwsbzhYowOoQhg4rlvp7jmSKxNmP3+n9Gfu09IxH0pjBCMyiYfllYydtofyzisOoodd78IrMVU1ZDTMbYWSiecTn7FOgBqJz53UNGSMRSB8iGnSFOKFUrrHk9zZqv0RVOtggBJr1kICcdWyhBWxjDFKkm/k7KoM+vd9tLgsI27JH0hMgVG1lGg3IQ4gd6OzVSOkmuj3fdhjeTSOlIYQLuj4MuGS6ge+2L6uzYT7drgDRDPMQCKI5C0NtK8/SKKBx5L/ZffoN+QdpmisroTYEFQivYtP6AwOYG1NRqXf5G8VmuL3Xxq8ZugAPMXfViY8DNbeDgyVLS/QWKBxMoepKGDgc36f7KideI9JPUulkJ0wIOW6tvrtS4Wp1VkPOS8l3HObkwunrVPhWDECvbFNubEazUhks6jk2xdVSgXR80oKu/tQWoMJGDyJWyciJvaEojQWMRTVo+BHpJGdOAxRLu3EDc0DzjI3FM9JbpIutEBR9G+9xKi5u5BdzQDhZukwviz/oggX2b+J58gbs5IPy17MH7LR57JsnPeRH/6Pqa/9ffYbjvtdyNz7yBk5SvfT2H1oXS33c701/9aXnexvsycFg48kpUv/ScA2uuOpvnTD9PryVwsdTBGz3od1aPOASBuzNO67cdp/mNOYWJtw9iT3kiQL5Gf2J/WrT8iXryfuCUKxpDeu7D2CPLLRXlVj3oGjRu/KcptaajCQH71Ien0TR6C5WJQBWOQebI9MC0IchI8NyYg6RQF1RpHiDixwK02DwRt6LcgXyFuzUJkZQ4byBp2aUpt6E3d7vOLO5tv2BMGNmrQx9C47nsUVh1CvLib9l1Xe8TBsbBjZ+CaiLmffpjqEefSvusKEl1X8RKWtA2hd/9tzH7//RTWHkj9+gu8rZcY2evMrCIuIbTuuYD+7P0Q9+hP30VuQolqme9XbCXOy71fZP72b9GabkOSEFSUtKaFVwwyLEnPsnCxEk4zpEITqEEY60shBHGf7jWfo7OgBmVO4G0TKpGqp/F8Azbp0r7zR54M91AyVLS/YWJdPHDJN8JZinv14v6niZWNx6wCs5XBzc3F0vambCuZazNxO8bk76A8hrEl4t1TqVUTZq5TwovJFag8/iyi+Z10778FWOL0GmBUvqzFo46luvwsWpt/SSe+NoVVs7EzA4R5Jp/25+Qm92f+J5+iu/W2PdufAEUoH3gSk8/+G2zUZdfX/4b+1EZpm26aQVnSUQAmn/d2yoeeStxeZOqrf0yyOC8bzph4alY9gHBkNct/7x8k7eqQJ7HrS3+WQqllRJmrB1Z7wrOpHvVUaVK/ztwPPpJC5kvW58gTX0RQHqF4wDGUDjqezpZfioLLsniRtK/C6kMBKO5/FAQlbL8jyE72tiHklq9MPzeyiiiWGHQYQs/Fk5WwlU2ytFE0YL3alkCxzqvtT22kuP9RxK05ovqMj50mzhgryFj0dt9NNPsAuYn9aN3x0zT/OhsuCOTezRu+T37lYWBCFq/5jp9H28QT8Ews8zZ78QcYOe6F9Obvoj93t8SYA/G+rHrrJgf92Tpz33sb4apjaN1xpZCDlIBnNSzhjLeov5GpL7yBoFglbj7g47syAOlYGAOdDVey/cNXenJVMCFevNXcVwqokoH2TZfSvvFSUeqKzriiFp4sqHH69p2X0bk3NVSCsobGcvqZvKSWlSahP30LkSOa1ZXNrUS0sCzzZC305qCfSPGUXF6gZVfb27OvIzyj2SRCfDOaq2/7+mwDcZC2tbugSybDs/DkQ+V2eAKVevkPR4aK9jdQEpvuQX6T0fjcw1K0Llb3q3h2jyEp7n8UY6e9iO7uO6lv/Xq6XzuykYuXmoDJ3/krSoecTP2ab7F4+1fl/eXANlIiUF08j5Uv+ieCfInZSz9Gc+NF4nVW8bWGXY3VZU9/E9Vjng7Arq++fQ+l6GNZ+RzLT3onQa5EZf1ZbP/Eq0g6jT3nxUD58NOoHHEmAGNnv4bd3xO4kR6DZBkL5SPOxOTymFye8uGniaIFz7C2fTxhp7DmMHmrPEpu5Wp69XnvIVlN5WAZBOWSZ7kHxapAceAJTdmc13hx2jcn7k0L01O9WUdWccZQd8tNFFasJ+k06O3eKG2zuhmWkA2xBUlzjuYtP6J85FNo3vxjbF/wX6sOsEdzYmjddAWFyaPILVvD4s/+g7ivG6gycD0sG8Li5f9BvDhL0lqkfftPU29evx824+XMfPPdFA88hv7CRmwnm5+CJ4tZC+QbTH3+TwhGqiSdBYihWIZyBRbnJCWIRIoaBP1dzHz9r6WKUcYgtInOU4SPi8czW5i7+IPSF4duFBDIskB6QEIC/V330Z2+D5qiuKyGnVzVIpxn14KkNY/tzvvDNyiLt+braTsI3cXaqzKGTsGasjyTEoOsd0UDTFEN0AgxMEOwLmvOxUs139aqV+zRKCNGRFKE/qx6xWoAJG0xnggkFQfEkY86eGUM+AM5TE7HMg92QT3RksxZ1JTxDhIoBJArQbMlYxc1db7K+nzn9arxZHTujSp6xxNJ+vi0roeSoaL9DZL88nXEjRmSTkNSXdRDsRpvwWqO9vhqSuuOpb3pOuL6zJ43WlIg4bdNJp/1FvLL1lI++CQ699xMf/tdeGi9qLBPG/KTB1A54skAjD7xxSxe/1VRmsrk9RJC6aAnEOQFByofcjLN2y6SL7wjVek/A4QjK9KPTiyHrRmUVfMvsWBiK1nyuRI2jqWeXHZecuDTfaa3YuMIE+bo1+8TuHlWN9esu9yB1h2XUTn0ydioR/veTBWkLHSq7NSFn3+W0dNfQXfHbfTuv0c2uTIpq1WNsiS4j7mrP0Zx/Bga154/CBurx+/+te/9KTM/bGNyJdr3XqY4nTyPEukhATEs/OyztO/5KfHcDHFzQe7pYtRhurkDzP3wo8z98KN7nXPIeLVJxPzFH/fNI8i851KNVHnZfov6FV8ZGKOBezqWdQA27NDefO1gXqgT1/9Q224jbHdBLtLiDolTjk5RIFCvVUUWhFIkgojUelCF5cofJo7RnSBeuVNQ6mG5ov6xUUVtxCN2SBguf1ljibF6jNaNu1vLTkHYjNfsPN0i3mDDlT5sIMq7rP/0+2OUgBVYsEVV4A18IQm7KIopaamBZTXVKyt98cD7Ueb5Ln9WS4cGPZ26fKYfOk99HffcMihUJI7d08ITcUNh+pA0vzYPoWYVxC6mbpHSjBbCChSq4t2GRv6OjF6rTGp3WEHWeHowGSra3xBZdvbrGT3lBcStBXZ8/i3E9em0sHXmOpMvsfpVckpItDDFA594Ayn+o0rGLcbfUokbs+SXrcXGEXF7UaxpNUaMI0MB/fmd9Ge3kZ/Yn87WG1Li0zZSCFkLSrTuuJzqkc8krIzTuOOC9DQdjRP6ogkhzF/6acbOei3Rwk5a9/4ibVgeOdqtrtBUOWbXj/+Wyn5n0L7japJeZodxG21VYL9oajNT3/gzwmWr6WyWspR+UxzRzyRAAzpbrmP7l16OnY1J+kI2MVaeb8rIZqBFOlp3/ozWlp9pjWcGYpIuPcjEkLPQuvkimp2L0tNRQIy2nnoLAdiqbPqdu65Kcyt1ozLOY4ozm7aF/vwmuYfrkgWjnqQpM8AQt/pM4+7r0ocy4uJ8/vdE+mxd6pdu3JT0Qjcme0lzGRAHK4dIzLmRuTAbv1cIMjCqNHLQrykEmUPKHBeRohNdVaJlpHJUto+BjL0zkNxG7/K/TSRjk62ra5tIec4xiKfxLGrmFSbVilK5ImlKuY6LjXW8FaGwiSqMnipEZ6C7oiwFaUfixsF9D/LAuCg/V/fZVGXMkqaMT1DW4XZIXCzPcqk0fu4sKXnO5Sg7wlwuE/eN5XdL6sEHfajWoNuFbkfYy7Fjadfk2fG8kq/GIBiHeAe0+9BRFMSU8YdumATKOm+xettRLMraGyJWDKZQ11a/xcNyaoy1jz1qzeLiImNjY492M/5bZc3rP05h+YEA7Pr2P9C+96q9XhdUxzngzV8CwCYx93/whWn+KHgL+7fZow3Ko1SPPJPuzg30tt/lXzdu4+7iK1sKuWUN/fn7pRJ+gD8hiDZpPM9VuVEYihYS09XNciCmu/Qb415T7zR77B7jCmdNkW6iqhSpkW7mLmeyqs+dQYwAtbytbnrM6vUBA8QfA1LEvyKwmb9nKK8bZzhUU6/DFaSweeTM27JsgqYuG0sCWraSFA7Ori3dDFGvCvR5BVUILp7lYrdLMyEcNKoscRciMWP4PGN/rm+857CDjI8pkVYicuNvkbnU2Co9vAHmWdNLxLj/cqTz7to0qhutK1ifh3AEKbagY2+ckjBg2hoCyqb7RAJwuKpQxojX6TIN6MlziPD5r2FZnpdEpGulSFpgIgO1EqhXHOnc6tpJ3DqPZWwDVKk7MprG970xgbKCUaVVFGVKhYEUGpPX/Gy9t12QttmGtAMjyt2xhsNRtS/reos4VcZ+DLSWuO1k1hRSMY5Qtzorl6+fhMllcMcOaGhhDlNJvU3KYiTYZooEZI99LKwZJ25HxE0J5+S035GuK8f1CEoVyoecSOf+e+hPT2nakMx/tCDM6IWFBUZHR/dcVK79+3xnKL9WWbz6W0w8/Y/o7dpMZ8vN+7wuac4z8+N/p3rEGTRu+fGgkgV+m2OzTpL2IvUbLtjjdWsZjGcCSb9Dd2qzkBbUAveekisIobV9qZCe/2pJY7PK9N1DnFul3qNPq8kmPasX7GJtjhVMAyluQeZ6ZJMybXzqiyumYVT528z1pqTK1nmHfbAzen8lx/h4tVPUoWz+tk1adq8h97Qa37RVpKxiXdsXkx5N54hBaoQYhZ+Ntt0XAlEov1SBnvPW1FO0bdJN1XlPWeXn5rBImuOckSyq7UoDelJKWeNmjnAG6QlKSoTxc7E3zR1oU7rp35R1XWklrqCmSIBR5dpAKhtV8JXKbA9/oIBnihvxhlwlKiwp4ams13dTxU1TlGTgDJayjl1OP1ckNRIVrUncvNZUCatRGajitYl4nQ5yd8rXMXad8WUqugYWtU9BCEGcMrt1LGP9jFsfYfUAgrEy/V33SMw+J3OToM81UMxBbVWZ7upn0p/dTve+q1NPtgGs1HnVtVE6/HSqxzyF7qaf0r7vSpJFefZ8Axod6CTShqBaYdmz30k4uh8LP/03upuukXEPIMxJG5NYPls67HSW/c7bpK7B1/+W3va7hGimhMd8QWK3hTKMPu895FcfSa3TYOrTb8R2FgUhcMSvhyFDRfsbIs3bLqF52yUP69rGjRfSuPHCR7hFv11iEzC66RhISTBuw3VxPd2Q91ZVijwpczkDUS+FJR1T2TiPo4iURJxHFPIY6WbvKv000nu4YuqmJpa9TRCPE93Ya3jP3BikkIJa8MyBL8eYgTst2qYQmJZn277cwxNdXBqNizW62J2D9pxXmuj9M7nA1sVoIS1V2BJr35bZk5WcpO0yoW7wqoyJ8MSdvdUKHhCNB/uzOTLj6MWlZLjnL1GyA3tlzOA5Hw4Z0Fi5QQg1yYLAi9bBzerRWdd/F/Zx3nSkn1VIM0kC8rXVRJ1dJIuRGCwOaq6SVhaLIRw9iPzaAxXl6qXFVQy+aD6AyRepnfpCbNKnceN3MEEkTPRC2k+TiKddPOQUaie9nN4Dd1C/8tOQWE9ks1YVrwWSHJO/+y5KB55A48ZvsXjl51Kt4bxERROK649n4tl/hwlCFn7xCZo3XuBDFblRMYBsA/oB2OPfzOjhTwFg+mt/Q/d+cS6M5pLbtijGoFBl4nfehglCiutOpvull5GEHWwZZttgumJw5muQP+QUCmuOAaB2wotp33mNrPdE++5i1kDpcacJ+S8IKa4/gd72u4Sxruu5vyix2VwVchOCNAalGkFtgqi9CB1dJw8TDx4q2t82yQavhuLFe0GZikAYUq8NRBGOkm5gDiqE9JvSkvf8oQFkrnGSiY+bGNn8q6QwdULqpRl8ib9sGUQbI0pQFZaDj01VPd5k8Dne26ykELA7kszlQRKJx2vKup841rWyQG2AQMyBXG8UEvSKyaEAkMKhNbyh4Uhg3mO1ApV6L7ikMTyn8BzcW0ohvYFD3Z2S1UCkIfGF3b1oHBK9rrDmcOKFKZLGbDo/kLJlVQprDqd00HG07voF8dz2QR5E9v5BjrEzXktQW8bizz9PUt8luZ3OU0XHpQTFlUcx/sw/J27OMvvdfyCuL4rirOC9YecZr3j2uygddBK9nXcz9eW3Ydtx6qErjAyQW7E/y1/6r5oPfTlz33+fGI1F0nObtVDFyKkvp3bSC6XfSUTjpu/IaTgjCqHW8UjJ2JP/iHBkJYWVh9LZfjnx1B3p2bKh/mzI80sHngBA9ZjfYeHnnwMjxoZ1bPRQfs8vOyyt4776SMhfIO0rk/JNQoirQMkRD8CUR1KilzMKEomDmlKE7bUwpRGSbotoLho47SrU9Cz60NuygaTXJiiU6d5/q9xPv29RV4xWo4hO67aLKR16KrbfoX335el8u++1FRSmE4G5/GNUTnghnftuINp9Hz5E5Jj7D0OGiva3QdzmpDCXaTGoZ0PEo1rkQY/u+q2XIKNMeqIsLaQ5ly4OliAKZBTxWp1CSZAxjPz3/OFJRFppaukXs6swYILESke0LeNgp0njhiEwKR8xoUKVbpIdM1mVpO1qP1xc1sUsq6TrxJYJl1WEta6bpnGKT71ZmwOCgPLhpxF3FuhN3SbtW8R7eT7HEsivOpjq8c+gc98NdO66Btxbzgt2McbEMHb26yju93gWf/lVOtuvE6/DKY7M4i2sOYzlL/p7MAEz3383vS13Dh7onvFex5/+JmrHnUfSabDr839GvLhrr9MRVMZY8dL/g8kXqTzhXKY++brBCzLKvnL006jpCVomCJm74L1iDGTj43kxSmqnvYjc2GpyY6upnPAUGld93zNoPUqQAL0cpYNOkv6tPpxcdYKkvVvmQREIZxjk91+NCcW6yY3v709Ksm1VtjpfFqCYWZGBgUDjxPO6thw/oAv9ha2EIytJ+m2iqV3pwRZ5PAEOIGntoD+zmfzketqbfunbliiRKlAI3QLtzT+h9LiTMcUqzRu/7dn/dgE/ZtaIUbDwy0+QdF9JNL2D1t2/TOdSY/sWSHoQmC4z3307hdUnCxSsXz6TaIy0LW21MbC4janP/BG5iQn6u+7VsUaQHouU1Uzk+d37b2bHR1+CyVlslLHeHEyv7clXobfjMjpfu0xqSasRHk7gi8LsNay0RIaK9rdBHDxlBUqBFL7ym9KvpBl+SyVrfWRinwMlA7MQp9bkJS/xKQ8V24EfXoLKGPnl6+g+cCfuAG6Dbp4NfVYCGEPl2LMITJnGzRJnd0QgQDaGRNqRm9iP0bNeQX9mG4vXfhWwWLfBOg9Z2apjZ72RypFPoXnzD1n8xX+mCqOD91oBgtIqVr78g4SVMeZ//mka13w3PanHwZKqHEaf/CpGn/giAKbP/zs6264bZGRnBmH5C99NWJukevR57Nz+BuLF3QyIXlvY70hGTn4BAONP/2N2fup1QgIqICQw8DHb8pFnEZRqMiyHnEV3053sS4oHHK39q5FfeRDx4q60SlEWKg4LmHxRr636efK/ZAzXxKUkAUlnXmD/Vvp1MiVhs9o29LbdTunAk7Bxn97ue8STdUz3IB1/+hGNGy+ketx5tO/9JfHiNGEFXxAEEEOwBN2pG2jecRH5ZQez8IvPy/tVOdLNdKVSkvtM/YqvYlsR1vZo3Pu9NL7cV2QlwKcozf7w/1BaczL93ZuJF6cFNNCYrY8bjwJ02fXVPyccnSRu7oKskWHlvmEF+guQszPMfucvJY8YPBLjSYQOrWlBP9zOzAXv99899z3JblEJ6gHv3EJvy5YU/QGv7KmKp+rDA80ZomCG3LjA1HFLlGMwBvGiPNuFBkwhkX6i5K9E3ispEdB0YE0AO7pC3HLIiYkhnpIxClyY6SFkqGgf6+JIMO5vhQ+pIFZ0XV+b4bceTq4d+0wKK9ezeM23iRam9rwgkc0pN76GifP+jCRqM3fhh4jbi/iDADQv0J1WM3rySxl70ivpbr+d3d97J7arpr5jSbovbbHK6td8hLA2SXvzDUx/811Axr5xmw1QPebpTDzjzwAIa8tZ+MUXU0XYQLxn9ZzHT/tjSgccC0B/YTPtu6+U+rsVBuKZYW0ZIyc+F4DR015C/epvYuNO6u1qf4iguPYYwsoYAOXHnU7juu8Owt+ZTTG3bK1/OTeyNiUqKQnJ97/w4HOTjWjE9d2+LGA0u81X8kFTZbwiD6Cz8Wpqxz0TMBKjzELLS2Txii8z/tQ/oDe1ic59N8lzHQEq4wXH9d3MXvhBSoecTOumHw7exBkPOaAInY1XMfOdfyQcmaR1148FYs+S/ANVkAVoXPtNuptuJgkXiZs75T0kLmt7+OIfxsD8z/6d+cs/KUwxhHwVjJJyB9SzSmYSFn72MXldjUATQGFMUrKaiw55AJu0qV/2RYHwNX7q0ov8CVVKBqLTpb3tciEsWdKjD/viKRslTtEHU4iIZ6b8Ocl08Aehx4uCoARViWtaVX60tb/ZiY8y0+d4Dpm3A2C0Ct0YOj0wy5D9q5de5IwAF34xiJcclqVNkSpdEwtEbAPhcdGTn1Zzk61Lm9L4LQU8o77vjA0Lsz2BnT2LuwfFcei1ICkqHP8wZKhoHwsS5sVDMukicxa6ixUaID95IBZL1NgqG3WcWdiZzSmojFN7wtPpTW3co8j4Y1WKBx7D5DPfDEB+xTqmvvL2gfeNElnIw+jpL6Z4gJAmeic8m8VrviobCgh5xUGtJagd9xy5/9qjyB9wCL2775QNI+sBALmxlYQ1wXaL+x2xZwOtbogGgkx8Kijr72UkthqQes4hUklKJenUfU4iJWRjVG81adfpz24hP7GO3s57sD1XUQBfvMERhzqbryea3044upLm7RcRjEEyT7rxuZSYGBZ/8Z8E5RpJd57mrRcP9Gdp/6a/+3dUjng6vQduJK7vXvq2X7vx4m52ffHPya86hM6Gq3GEI3+gOHjiVm/HzWz/+O9jMCTduhghDmlYIp27L2fn5svTHF6nYJa01eShc8+ltG+/NH1xab6ug3AtdFxRECObd1DEpy8lHV1XmorV23GPENmWSztNoHPknuHWTQGIEmH3KmTv81WRQglGY9aeaKbEK9uHzlwGLTGZe7bwbGRjNSZupc2mIErDIzZFPMs50L0lycn4YAQVSzqkJyD1xMBzBLCgLPCuI+9RRch4jlTnKk659DgyHmukcPKSIS+HwvjtdPR5riaAGmOmIM+N55VdbuWanEvL0/FLdP3YGBKHKmjRioEi8jq+JoJSGToWOc1nt9yj3pd7BJqBYAK1ETSlbCCM8SAyVLS/wWIKZVa97L0UVx/K3M+/wOI13xRYUReYXCQ/Kkc8meXP/WsAdn/vvbQ3XLHPNJ8Vz30bpXVPwNqEHZ9/C/1dmx/prjzykmTM42RJx5WIY3VT7M9t9W/1dt8vaQ2G1BNwaQYxtDdfSe2o8+gvPEB/2xY/3h7m0g26v+s+Grf8mNL6E6hf9U2ANIXCeb5Wrm/cdAHh6AqCQpmFy7+My6n05KwInzI0+6OP0Ju5m2jXNrobb0th61n8JiObccSu//pLCmsOordpE74BBtn43AYDJM05dn76jQKJx/EgHIi2VZV9NLeN6W/9jewUClt6SDA7vkC0sJmFSz+1T4/TOs+pD9HMVqKZdB581SVtt8t7lEMXGuktO+x1XRtkPLKHfvvzWO2S65bm5IakaV7u3lmyk1NMGQPEFPAF7F0lJV+CMhSyEBWBL9HUEtPKKJe23lIrZHnIVotCxHpIgp+/OH02VseyiD8QwvZUseTlpwnxda8ddG1JlbBtIChXIvexSipzRfJtT/viSE850iMCS+qhL+DJaLF6njaRfvpxKyBnAs/jCU+BS4OqIgzjzFqaWsQjAaYp/Q8rYEchmVOIV1OcTCjzaxPo6ffGP9+SEgZr6sEqSS83IlWe3NGSSV2VZ0/aFe3WdVKUe4SjeCPVn4Sl8e6HG40bKtrfYCmuOYyiFlofOf482cA1ud8smeHifo/3v5cOOIr2fVf4nE6T8YABH/MyJiAoVh/hXvx6pLvtdqa//wHyK9dTv+57g28mmQ23D/Urv01//n6SdofuptvEELZgeroR5fBpLXM/+RiL1/0XSX8O23BUUMQ6LiHpBTGAZe6HHxl4rM0hR84lwKzOQwjWdpn/ySfkohIwkvH4HASr30zbaVK/6tsCFQeZzdcpBAcNGrALbbr1O1OY2lXyUebnwElHFug9iDm+NJ7tIM29xaO06tCDHU/oSxM+2M6UaY6HCMGnnHgPdS/PHzh83rW/PXiZI5Z5lMexvC2SKqXG2MA9IFW4MXKkWg1fcSmoKeFoFPEmdfNPFmXuLeoFuhSfkiAX8fSShqnRhE3v7cdMCUqmiLCWnYJ3KEWSubag49VCiH9qbCWKvjiFGYRIEYwsrJyTtpuKfMa64hwl0trLEb5oB4nAtYljpqsnbHXOTCD3MhHEoc6pM6BifK3xbLjfxZyd4QSIwaKecqzrIKiRxrSVp+AUtk0kPclxF4JIvnexPiR2nmimQIeN0ygLkSj3uCS2aNJTzz4Ld8ekpXEfhgwV7W+w9KY20p/bTn7ZWpp3XS4LeB8Mt/qNF1JadywWS/2GHwzU8h1ImQCmL/xXxk57Eb2d9+79lJjHqDTv+Bnc8bO9v+k2Gd2s2ndcJ69nxsaTHSwDbNp4ZkoqFE2SeokgHoHb+B3Ut/S5XdKKRA6SG0UseVfkIkEUbCHdsK3zNmqId+0UnCs6YRAPAuQkHhfjVBjRIPe2WSWxVMmFmWcbBus/u/eXKFcT7rmefL+zetuNU4aAg4szOjLXQzDgvcKpiXezFGp0j9nXkYZ7k/EKJAbqqlS8glYF54lLzpgxyIHmHTG8rEKoNlalURQDDQu2qIUhCqJUkll537ZJU6lCVZYO4nQK1sGjLp7s8lMLCNM7TBESz0zW8bM90mpKBaRak1VlUpW1bEYYiP/aMp4gZRU+dsfiWVUqQUWUDEYVZlG8P38wQ0meRUJabtJ5/grbmq4aJCOTJAvz2L7CCUUwfSlmEbvSk0A4torCyvV0t9wIlS6mJ3C2NfIZz4buBlSPfhYmV6Rx4/exydIcO/WcuxCuOpLayb9Pf9d91H/6aYJcgs0LrO7XVCje8thz/pzyYWfSuuMiWhs+RT6WGswJKYrhc6fTHw8pwxKMv+kS5gkrY8R1MYGXerIDko07uNitEcsWQ1oUwH3ZHgYt/bdJTAFfjciq12cKDCokd60qiuwh4SwHDgHuIfVu3OeqyCbQH/zyZafLuntqvVnn4FlN5zGI5Q3SRnqkhSRGSA91N4in4dKM1iGb2zbEQ8hBPpDUB3/Em2ufq3blPEQHQUaZe2f7jP6dyDPDCYhnGfQsw8w1rt/qZdqsl+lEN/QHZWs6glQi/dlXvmK2uUt5Uh7adx5UAqUC2Bz0AtJ4nRotXjQ302rOb35SPNR4b4ZBkH6GMTAdJd+gSgnEWOqR5pJ28KEHk/38kpxtg6yVpC39CKqQLOANi9yKg0ja8yStebm2AMGEPrst7TclCMprqRx2Cu3N1xPt3kq4Vu/ZUyPAzTuGkSe+mPzy/eje/BU6O3aSaCw1GEkVMAUorFrH2JlvxfY7zF7wPpJkTgyXzuA8BEUYO+9PqRx2Lr2pjez+8tsg6WLGVNEnerJOAmFtgjVv+HeCYpX2puuY/c7fpZ59IEaMKYvyLB/ybMbOehMAjWv/i8XLPz+4Jo0wgm0My1/1YfIrDwFg4QfvIb7vWqJIiFNWr80VYHz/SYov/IK/xc5PvJB8uStGRF2Mld4saXgCMWgSHroEY7DPd4bymyFxX5SsI0I9mKI1e77v4iLGFRpwkBMK71RIPYzfdrEMxrf1NXfm6cDwlRHWo/P2HHN7KynslTAQc3tImr+zgm12c1Ol3lGvZ1H/uapLDo51ZQXdfRycqLCnjy/mZUPsNTOhavctdzV8XX3dpYxkg/eeAO/pmZo+L5Y42R79zMYznezFePEeboYcs0+pksLnD6Jk/QlIS99wnn0RKOQIKrIJdo1mwjm4NUuMAQoHPoHCmmM8k9jFSIv5wceEY6sYfcprKD3uVHmhg9ShdilUVcivBjMOtRNeyOSL3kv50FN99SWnRHFpPXrPVX/wGdb88TcoH36CeKOxxFkNouwdxDty+stZ9dp/Y9UbPkV+//39HCWzSEnIliqmXMjy3/snRk57A8tf8E+YYhGTQC7RdV+QMTKTUD76iYye9irKj3sq1Se9WdaPGkzJvCrlnty7cvQLyS8/hMKao6gc/UwpmqHj5b4TLh5eWv8UGdtVh5Bbtp/EgxfEEIk1b90A4dhKH8oqrDw4DXt0ZayCHOQN5GoQjqablsntZQOzKVErmtspLyUx+dYu1o9CyVWBQ4liK6DXnqe/815ZJ/ffQrLYpTeHP7c4mtH+Zx4TPATb3skQOn6siHN/3Obg8ieXihJIBqx7A+6sUkoZL8pd/5jDNP7vJJuz53/2U0/TeXnGEU6cctM4NxGwE690nGKyquT2sIFc3Czr0SX42JEvowepR6hpNb6aklMES2KTJkvysQi8DJLSoJ61v3eMnFtaE4/ZVWFym/YAM7eX+d0hH65Mo03XjSmUyU8eSG/XJp8z7I6+o0VKoAFKB59EUJugtfFSCZjtLSXCQFCdYPT0l5M0Zlm85WuYUuI9YgMD8bDaic+ldtLz6Wy4ioVLPpW+kV3PCRg7yspX/Au5ZWtYuOyLNK75RtpHN+cKF1eOOZdl5/4pAHM//VfaGy+BOWG3DgCTBiae/zcUVh2MtQm7vvAnRDNb5ezTUsoeNlUIR/Zj9MTXApB/6sHs2voSklDmw8e+dY2UjziD3NhqAMqHn0d7yw1iKDhDKbNuigcdJ90tVMhPHk60e5uH6R3EbQ1QyXmWuylWISyQLHQpagGL2LGDAwbO4I0azfQAiYwxYgriJfd33QuHPVWund8gKJHGaQOtv2wAStC6/YfUjns+3a2305+9f3DNZ6ah/8DdNG64kOJBR1O/5ivypjoIofIsej0wY9De8H1MbgQbFalf/uU9vFlfNSuC+Qs/SHfD1USzW0kWt7A1r/QEx19RAlQ9jln8ytvILVtLNPOA3KuvMHxVxzQDGZtQwgrRLA8pQ0X7WBLdcK3B14D1m7vzFrLwnX7E9jMwmqaFeGJDi73HFn+LxZE1gNTLc56WS/NwRoxDAnRDooR4W66Yeya+tHQDcSeRBPEINomwPQ3WVkmVbxlhEHcgWF2meOCx9O67l3h6ZlBR50kPN+9D+YgnUVhzJI1rf0A8tyNNNXIHEqiBEFRHGT/7TzD5PItXfhxrpoky8WcTysaVFKGy7hmMn/1G+lObmP7Wu7G2DRHkSxC5NdKVQVn5yn8hv/xAultvZ/dX/zodo6zREkHpkFNY/sJ3AVC4fj3zl35y75MSwvjT3kDl8DPlVv0pWrdfIjm2I+rte8/WMHb26zFBSO3E59K8+QKixvYUZtY4sG1Bfr8jyS1bI9Nx1Nk0rv1GOkduntRryy8/yDcnN77Ox5bDCoR9/WqpJ2RysnUaE2AqOVBvx9XDThZlrIJSnaTXIihUiOu7BM3QOKtx4YuS/OvtvMnnF3c2XAsNiTPi4uJ5MQJtBM0bvk1+cn+ihR20N18NZXzxhDAHfWdAznaZ/eE/Uz3yabQ3/gKbr5PMQcehH84giqCz+RZmvvdecivX0rzhBzIQGjs2BQZivM3rv09/x0YS2yFa2OThbOMMI0UETBnqV36G+s//kyTqyusl/PfMRNIfMaQscz/5d/IjGhsGfwKTjTRNRze9uNVn8Rdf8KlRfmWU9DvijJMQbNSlffulngDXcHnaiuRY5Q+YAIKwT7S4xS0zMJryFOEP3cgeFLHH2br7kKGifSxJxoNxcQKvbB0cmNn4vfJUq81kYFBTwp/D+NiL0v+/iz+qzBFQ+lA6+GSqjz+L1p2X0d50tVyn3q0j5QAErRIT572N3Ohq5n7y73Q33ypvOAXqav22oHzo6Uw8523YfpddX3sH/amNKWlplNTzNLD8mX9PccWRxKfMs+Nzfwg00zzJ5fhNKpesY/JZ/xuA4n7Hsuurf5amD7W0nerZ1U7+HSqHnw5A0p2hcd3HhFikG6PtpL+PnPQCgnyJ4v6Pp7j+GDpbrsH0BYI2rgjKIoSlcfJ6pGPxgKNkZ080YOyK3Ov6DEcm/ZiHI5P7tOhMBLabBr+SVkeMBudxDsR5Lb3td1Pc//FEi7uIm3MCWSYy9sakXntv2x3+TOLWrRfvPeVNCUiNG79NfsU6rLU0rvoudCFcBpUcrM3DxlnoWfnuzF30T1SPfS69XXfQr2/GjCrKoIdIWF1XSXOR6a/9JYX9j6S74WrxijReaxShMsrs7e/eyK7PvY6gWqS/fTcEkuYTuPrYrl8G2vdeRee+q2QOtU+JrucokvsyAUxB564r6NxzhUDVoa6jRNpqDJI73pfP9h64gs4WUmPc1QRHPmvbOl5F6D5wh8wdiBEQZJAWLRZhIxkL2+yqgaIz2NH1BP4YPhOI0ouUve0JeolOm/OsZ3UcljLQHULj0CBH9luKKLkwieNoKMHJIvC052co0x9HNtP72CR1TnyO9EPIUNE+hsRqbGfpZmVBTv/YhwQjY9heHZJEFpFTBoBPd7CQnzyA3MT+tDdeq9z/33Jx8K0FE5RY8bz/jcnlqRz2JLZ98eXYhbZXGIlBDrruiTdZXncKAGNPeiW7tv61QHYZ69oEQAXKh5+OCUJMsUL54JPp79qYbhgLiFJUuDi/bD0AYXmc3KoJoq1NqfpVRmK4kdzTVFNqhSmEotwcHOtSLapyz2huh7+2P72TxG2u7kUHV/ehs+l68hMHEDfn6O3cKH0KxaKnTToW/d00b7+I8iFn0LjhQoij9MABBzOrNG/9CfkV6wlry5j/2eeWxDRcH+Qz85d+imhhB3FrlvYdV8i1yvKFQWh+5pvvpLD/kfR3bsK298zj8cUe+nV2fe6PISxie+29Uxz0/vHibqYv/N+ePetySlvzsKUAUQg05L5RaQvzP/uoKI9RMRQcImITYBneS4rn76cT3S9hG81pdjmcBLqBt/SzwaLELV0s3RmEjsVb1r8N/szagU6psrIJmI7MidH7mIT0WEIXFkDakzjUS6s6AQNxdJvgqyXZjHFIXveeWNtbIz0OsiHPDmqiPEM1KBKrClvv6frnjaqSGB+4Qh0NfLjLai6r2VvIy5Iyx3ukBTzcmnBj7a51/XPZBtpPl07mT5XK5HjbvqQJDaCJD0OGivaxIs7C6kNp5eOZeOafEtVnmD7/vSTdpl8g7lony5/zl1Qffxadbbey62t/i52P0wOVDfKFCCBfPYA1r/gIJpencdulzFz4wV9r9x41cd5/EmOjLiaXx0ZdaCVpHFuvsxp36k1vwcZ9TJint+PeAaTBSww0oHX7pZQPeSJJv017w5VpykxfYEAW8Ydpz//sk4yc8AI6O68j2rk1hb8yFrWJoH//ZmZ//AEK+z2exn3fS1N0HCQ2ht9sWrdeStJYxJQKtG+TCkeeSe1CDQqd13/xGVq3/phocQabNGWzKyBrpI5P2LctmLvwY8zxscH7ZK17p1DjPvMXf9yvSVey0DieQSalxUZt6ld9I42zZmJ4A5IHm3Tp3nfTwJgPXOdi5kWgl6SwfbaJSmTx8xwhhoJWYbJdsSGSAsSaV+0hz0AUrvuM7ZCWKHQFTyJJXwmAqI4UTtASgKaNHArvikd00ucSi+fnqn7ZgvxtVAEblyLk2Nh6Qo/JgalL7me/jygZJcf51CT0tTDttzsUwS7iK0l59MsZ8FW5tzd+dH6CLAyrcX9rkWIWJZ3jBV3KjsxpZKxsXdZ0qJXLkkVVYDldIxXtQ05Tlhx3wkh/fRGJTIlG781WZUwdPE8h0xdd7ybDczHonPfTeyUNCKsy53FT2OS5Av7wefsrhNyG6T2PITGahrHihX9Pef0JAMz+6GPUb7pI3vf/uQ8EHPhX3/N/bv/UG4jmd/prrUFyFKtQWn0qK57xTgB6U5vY8fk/e8T786iLM15USeRXrqd8xBNp3301vZ2b9v6RUKzy3Mj+hKVJultuYenXbU/FkMcWE2jGe3pzbvNxZKMQYf7qRulga+s2+BX4NB9T1Y02UygBjWmanEB21MH0JD0jqTNYnrBA6r0EUBiBuC1wJXldbwaB+OaRjbPNoAHiIHXHurZyb1MizRdVCNIg97QdRKHlECWuHt3SjWhpyNu/5ioihaQe2t7E8Racp5RtsxW2qY0zm6t7oPNiEmlvbVTg45mO9D1Rw8a66k2a32nyMu5oPNP28MTEpC/eqEX6alycsqh9UCKTsTIPERAtSJtMjZSFPqf3c0UrnKLNp2vJFHTsHdyZMaw9m9qRJtV7tA3EE3VKqKrj5koouqIoIWnlJ03lMSHYCUTptfV6A8GYKMRkWq71XAjlEwQjkp/sjqS0Gq+1KJs3EcPSIzChjqErLuLyoLMLJI8o2QDxhPukR1BmUD+rqIBx3y81/LyXayEXiILvaSqae0ySeZ6zBx8qvWfo0T6GxG2S3R33UF5/AjaO6O3auOeFfodKaNz2E2pHn0N7y81Ei7vT9zSeYXRDb2+8nsZtl1BYcRBzP/2PR74zvwmiMUqjSq6/a/PDKkdpDUTNbURT2/Z+QZGBkof0+3uPJwHBSoGlqSMbcIJ4Q1pa0SmqYAzsvKIWusnYRWRDG9ecTacUXYm6EdlkbF82NL8/GNL80kx7em5TVkaqjdSzcRtwFjJ0HoJFlKarIKTetys+70lkeVJCkxuXCA952yBVFO5c2wEGdEZ8ve8HCZfITUkhTdfufhpSTpbG15x37dizyqIOWlAIRFnaHF7Jm76k3lg3njlRiq6wg3XzqPFC62KOWjjFuNSkmr7XljGMUTKVKnGbgGmCWZV6gaYIjKnnqAaF1awC8sgJT4uZsda+GAetugIZapB5lMtd31FlpH1MHDSua9IoMchEpEU8gsx0Ob4ApJXp3LOzHmVT+o2DxdX7TroZg9VCOL4SW+xAf1E8yTY+L3kAOS8to3TIqfTuv524tzXt05LYvLFQPvrpFNYeQev67xLN3u/Pw3UFKQoxFAsQl1cw/rQ/BwuzF/4rdnH3UmL+Q8rQo32MSnH/o0ha80RzD/jX9ho3CMGMVknmxb0wFfFwlh4w7YuXP+ZWwyMkmXj4HkNi0n17qVjw+a3GLnndSQCMIvDhuGzIFgRdWEQUncaobB+prlNSxVJDNictHODjkRbZZBFvJhhBPBr1bBwJDhCP2cUFsw1zG79T2FrvFvX6jCoTq7E/+qTeX0XHI0dascgVOMi4pvuMa1VJN8Sc9nMBX/SezG2MUxo5NTBcHrAzBByhxcXsYHC97811dq+5MUjw5QKNeraJu0cs9ymVBEaMYmmvKYNZDmZKdfyiKhn95yt2FfTeWrjCM1n7kFsrcxbP63yXEaVcVy+zoPPtPHGN5ZpIDa+cgbCA7XUHQ0Q1pJKTGlNJA/JrD8GUi/QfuEM8PzWcbB7P9jVdyI+OUDjqPKLZbXQf+KWH+k2caUcB7ChUDnoa5QPPoH3PT+juuMLnTFuFxq0VYywojjL5e+8hN7aa2Ys+JIdLZObBF/QwUD32mYyf+2aSfpvZC/+a3pZNaVU0F8PWz614/cfIT64j6bbY9ak3kLQX05Ba5rucX3UIK179YQD6u+9j+qtvJrDC8o6c8dAR6L/2lDdQO+H5ANSv+y7zl3zaL52H69EG+3xnKL/R0t12O/3ZVMm6s0l9TqjDKmKw801ZuRnyhY3wRdH9odBDETGIMiqkm9uAuPjMPowSl2/nKnK5W/p/yjTVW6VF/x0k3JWNk5JuyI7t6VjKAWk1pxgPGZsVutkHslnbiBRyzLSFrnpTWSgPUug3AxvbptzfV+hxsU81Bsy49jPRNjpPSSFM0E3QbaBukHJLxrUjJ9YEFvFwZvEogIOcXTutjpc/0q2Waa8qQuftBJXUU95rqcasZ5+JIzs2r8kDxRzhinXQz3vDxURQ0LQcU4bCSrl/Pj6MymFPFZeyK3FFq+PtU1tiCIo1Rk7/Q0ZO+n2IcuLNJZDsRKo2aUpNUITKQWey4tUfZ/SMP8LkTXpajrbTFESRmbDI8pf8C2v/9FuMnvbKtF9u7gKJwSYtKB1+Kite9mGWP//9VI97NuGYrJWkiJDvSvgi/dUnv4XRU36fiWf+bwoTx6QTGcje4QqwBLlRxp/yFkoHn8z40/8SY3IEJUVTXLxXEY/SIadSWP04gvKIP5t4r+gFUDpMiIdBvkx+2RNSgzETpnD9DEdWyq/FCkZrutu8/nNjEYCNU6aXjfvympF0HduU9WiqwAhEu7f4a6P5+zwj2hQhKPGwZAgdP1ZlqWtg8YUWgEGoRL0So/G8AQjHIF5DZjP8Hy8Wn1Zg92WA7I31SMbrMmBGVSm0l7zfA6b187sZqANsIa2IU01f96zeDApBBX+ot4mBeVV2rh5roHCctteXMjRqZDlluxRC7YGdJyW9aG4oyOdMjjRuO0da+9eA7RTkWb3eoAe7hOBkw5DiIUcTbX+AZH5aeHlj0F1Q9NKlZ/ShsP8xFA8+lvadPyVafMCfm0qgCqct/TL5ImPn/gFhfoyFSz9DvDAlsV/LHtB96dBTGD/3T4nmdjDzrfdg4yaOhW4t4klGkLQNy1/yDxT3O5reznvY/ZW/hEhq5S5OSxvD5VJpKQnXs+zp/4wJQnLLT2L+h+8XuDkbH+zJBl07/lVUj362jEWwSPOm8wENIxTwZ9fShdEz3khYHic/eSCtuy+l37pH+qyQPS25Lr/foRTWHCZL49hzqV//JWxHlIEJRcG6cERu5aF+LHKTj6ORpHMM+IITJg9BJX3DFMuy5soaJ3ZhhRCs6WF7LUyxRtJexDYTgprcw0JaACOG3tRdPr+4u/VG4UpozDVbFMICzZt+QGG/o0la83TuuUIWSEWNUEckU5n/wQepHv8cOpuuI25tT79bJjUWrYV4Zguz5/8D+dWH07r5IlHSSJ+8Yabhls7dFzPbEcZ+b+pWKe3o2Mn7Khy0RIaK9jEsA7p2abzKrVKDZzn6guU59QCc0nVknKGk0pMvsu0poqVQqSORmRqe/AH4snoevrdIjGxfxksWD1UY2adruPfm1WMrjGBqFeK5KdlY9dk0SY2kDmBzVA4/k3hhhs59N4uh0NT2ROkmC1BYdQTVI55Oe9N1dO65MjW6HNTr4qQmYPzsN1HY/3Dqv/xP2vdcm8LGFbALeJi2sP/RLH/B34FNmLngXfR23uXjb867MupITDz9z6k8/iySbpNd//Fm4vpumrtISyNqe4LxSZa/6O8xYZ7K4Wcx9YU3pGu1iyfeAFSOfwa1I58pwxv1mb/w/elYZxV9CLVTX0RYXUZYXUb50FNpZc+mdUZKCbAlivsdLWO2+jCC4ihJe176XBYDI6pDcw5K+63EaKHjYHQ1+Uno15Wlqn0PIogTsFHKKLOdrhwuUIRgVOHwKsKfSKA/s4lw/xNIOg3ihV0yr26+CroODPRnN9GfuZ/85IG077zMlwt0h87bWNatbUPzph9S3P8JUpT/+m+J0s5wC0wez4JevPyj1E58Gf2ZrXTuuUaeH8v8m0DamXSBeoeZH72Nwvjxel3iz9I1WoHMFmS9xM2t7P7aGwmCMRK7RYw/SNNpMo5C597r2PGhF6fQu5sj3btMEc8NaN9zJZ37r5Q+eO9V16hDdyKZ294DV9HdcJXPaV42Ab0KLMxr/1yqURm6W24VZ8UhNYn2ucrDkqGifazKXgOy+7hOKfsuRmFigZqcF/zYi9L/miQBYwKqJzwDUyzQuPoHEEW+NjFxxj6xEvcZf8qr6c/cz/xP/0PyltO3B6Zr2TPfQvmI02nceCGLd34BO44c1dYj9YATyK3enxXn/QtBocr8Tz9N88bvSqUkFyst4NMUxp7yOkaOfS4Au//rXXQ23TD4bDfPHVj+O+8mKI9QOfocdnzqdSTtGW9wmZpsUrYPheXHUDv2PADGzvgDOhuvTa14hbCNkoMqR55JkBcsrbz+yfS23eWPInMK1h2vVlhzOABBsUpucn/i+u40xzFTjMBUcphQcHaTK+7de9B+uYM3AJL+jBhDmkvpziJ2yE13680U9zuSpNemt3AvjpHrbJFQU4+SuTbNWy6gctS5tO78GUlzHnfijcmr4lI2d2fDtTRvvIDcqnXUf/l5+gsyT85wKRahXILFJtSv+RJJc4Gk0KZ1y4/EaAkkdkp2rcQw9/1/pLj2OPq7NpE05sUrcxXLNDwQhmCjNrv/888IqqPEjVkxsB26ka2WVAGbm2H2/L/27GefzqNtNeq1WQv97TuYn/mgTy2ij68oZZHawwQCEfe23k/vnvshUBKVg7ZbpFXWVLEl3Xni1rzcU2PippCxTZOB6fU53yZAvF+XA86SPcxxBByz3oUB+grHj0EyL2lFSVlRoT7Um0isPUfKzo9TY9vkhYUctSBYJqS6eH4v63EvMlS0j2GxjrmXPZFlb7Ikqd0ldRtIN7eh7CHWwsiJz2LZ0/4IgCAYkbqqCkVmh9sCy57xJoprj6C0/gQ6999Kd8PV/j330wDh6AqqT3g6AKOnvojFq74M1cjnBHqF0IFC5WiCgpjN5cNPoXn7dwUucxV4dGMyechpfAogXLkKs4mB5/uNNEHiUgA2wYzEgyQhrVwUlCBu7PRlAfszW1KvN5b2mTD9TOfeK6ge8TSstbTv/GW6uWfREs0zXbzsC4w+5TX0dt5D9/5b9yA8OYlnppi96AMUDziB5k0/2PdkBdDZcCUz3/l7gvIYrTt/mlZUQjb2XFk2SWugcdOX6Gy4krg1R9KaTTdqo5BgG1/ooX7FJ1i49hPCItbNOyjId8fWSaH9KGHh4k+IghuRZ5u2zk8EPS12kERgC10aN/1XmjubuHmRsQ0sWE09s6ZL54GrxaiqaQzXoVNd2fzzoWa6BBFJf1YUliPMFXVuG4JwuPODrRbmCGr4ghhYUZCOUJbU5TXjKs4F2i7Hqu+LMrU9UkWuY5605XMuhc4pMKt5wu5gjESLdXjmdAJhURRq4lKJBhaF7mGa8uZQJS/ZL5wLkWmbAgNhDL1EcmNNAMWKXNppC1ksXwFfpCwRZyQsyClDiXuuFUVuHGnvIWSoaB/LklGSNoGRk59P+aDjqV/3XTr33ZC+adKfxkI4upKVL/57gvIIu89/H92tt/5am/1YEQsE1RQbcgovK1k9Ei3uprj2CKxNSBoz+7xv3Jyjv/s+8isOonv/rdCLhDWaqQHrpLX1GmoLWwmrK2jceaE8rE4K7S4iEGYBFi77HCbMEddnad1xiScpeeVVQqCuGZj+5ruoPP5sOluuJ67Pp8SkfgrHWgtJPMXur7+F3LJ1dDZeN5BD6/Mby2AWoTd1Mzs+8Ur1AtqyWYfq1Wm+p9v82ndfTvvuy1M28N4GVr3P9q0/o3X7zwb74hsh/xyZqLfzGlFEVuFSB+2XJD/YHY9oW9Cvb/SbcjaW7NOUNA0nbuJjq1YZ5f7gBgczuw3XGWGL+HQRs4gQjKoQ9WQ8jMKSjukbAHYEUeYKSxplFHuEo4gYWS7WadSrHoWRCtS70N+VeneOD2AKqrAcSTLStKRRebYJVIFEonSdFxcoycwmGQ+vpPOZ4NdMoilcnukNqTfqlK9Cx87QcycR+WMCY1WCZehrStZeyxvGen9nNC5ZC8allWW4Kg5NsbGQneJWOkY2AaN/W/DnY1BQtE/JorFj7tdkbuO5VI8/HBmm9/yWSH7yANa+4d8BiFsLPPBvr9jTy9W/R097EeNPfjUAzbuvYPr89/7a2/tYkaBSZPyM38eYAguXfQHbafj3PFFK4XeTL1J9/FlEM1vpaR3YvX25BIYqkZvYj/70FihGsoku4Jm9HmnIAavBBAba1sPLVjc3R24aSElRhWYzXqpxcVdlf2YhbcZIDxLPlN3z7Q10w8y+Z9RDcXm3sSigPWoJaxqOTRCCkbJv7QJ7IC0DqIvGUn2VpDGkWMPS+ztXoYzPhyaS131BA0gPZMi6zlo9aKBfRdLYfEk/kynEMUAkRN4zytK2jcx9QuT0ngLEDVFqpgR2Rp/hGOOxXBeoh5QoyxtXZzdBWOIuZurGxlV96kEQKpEsgmgOX77QrY2gpApFCXGxEqQ8M7sgOcKgHm6F9ChHB8MokdK6FC+FYR3JyAakqYIxafpZTzxaMyIKynZlnryydqQiXV8mJC0IEQ9uYQN61c17pNcoO9+E7AEruzVjl+6HmfsOvKwoQL4I0Xw6dpR1rOaVTY568zwC6T2XXXYZv/M7v8PatWsxxnD++ecPvG+t5V3vehdr1qyhXC5zzjnncO+99w5cMzs7yyte8QpGR0cZHx/n9a9/PY1Gg6H830vSa5L0xQSMW7OycdeWLC61kDvbbvVkjM6m6x+N5j5mJOl2mf/5p5n78cdIOg1xspzSypQoNCEQdWne8iNfbH1fYoGk36G7c6OkGXQQL7VAerKJ7io2Qs7BXbTyvIOA/XQzdZtxxrS2VSQNqIJPTwB8usiAUnGpPf3MffbV4KVipG1GFa4vvuByMJ3EGQXXQ5jRDmpzZfts5nMV0lQzTbHCKAS5t7bppm6ckeGg4lrmPmSURlGhTKc8XN/cmIcZj8m1OaOsc8V00/X5ug5Gzg6V5s66VB36QF1iv4GrhuUKejhSU1uUQmA0zSnR52tMmCYC/boyiRobT3rQnIWoIa/nKpp2og3yB2hYVTp99XC1AljiEAEr7Y0X8XW7TQFfbMMGomhMEX8Au23LP7+WxpHDDNx8GvVMY/2crk+j+cAOQnaVrYwW1XD5zwNLz5GbjL5fQCqJoJ/LyZgax1hXeN0C4fga8qsPG1g6RguMeJJUEUyxSOUJz6F0yGlE/YwxbSBYo5+p6k8yHvlDyK8MHTebTY499lhe97rX8bu/+7t7vP/+97+fj3zkI3zhC19g/fr1vPOd7+Tcc8/ljjvuoFQSk+wVr3gFO3bs4OKLL6bf7/Pa176WN77xjXzlK1/5VZszFJW4PsvUV/6a4n5H0rr7Cp9rSKKL1X3JStDbfRfbP/sGCEtEM9sf1Xb/xkss1qtH3x08pnErOfMT8Y50oxsQtbR96k5G3LyQqDcWIDChslldHqft4E9Xoa7XaeEKd3iBy8W1XXkWWuzAH4HYz3iVbaRDyxU2a2n7MyEGdIN1MUb/uhOXe91hDw9iD6/W/b3EIx64LkOAAu1rkxQmdQory8p24ohhIXLgelHjlQ7adkaEi0+TaXumPRbEA3MVk1xJSzVoTA9yqoiTfHovE5JW5HJiM/1xaVYtUdSRQtCOK2EXIK4CNQi6CGlnHOxubVMFf5iBK9VIILFeU9LXHTRsIVokjWE6o0fLPyYuHcdZBQ5W1VBEUArITawkWpjG9iNfrISStiNKxy03vj/5tQfR3XotyUI3NUwciuFImKU8tWN+D2xejynspPFjhXpNFcrjEJeOZeT0V9Obupf5iz+ZalxkzEwRggCSXsDEs95O+eAn0bjlAhZ/+AlvlPjSlCqF/Y5k8qXvxYQ5Fn/2OZrXfytFU4z03SyTn6Mn/gHVJwhzffYH76G77Vp/so+dxSMArlRjUEwJbA8mv7KiPe+88zjvvPP2+p61lg996EP87d/+Lc973vMA+OIXv8iqVas4//zzeelLX8qdd97JD3/4Q6699lpOOukkAD760Y/yrGc9iw984AOsXbv2V23SUFR6OzfKqStOlmx4VgkRGIg6s/v2YIayh9ilvzgvBwSi1YIhrsSg29c9cSMrBjmaTGvhWosvd+fgV6/TlDBiHYTYxnvTPsVErWzm5X7eU+uTnueZaJsT2ay8gtfCF9aSlhYck03SK2l3rYNf1dNyRodRaNIrQgcd7mX8vC53KRl7DHBG3LPcODhij5JwiMQzClxJSuRn1Fb40XnqWc99X0Urymp0OK9Yq0+5whu2KX3vhRmY1QGC/SRNYUrSe5pxJPbeg/zkYcS1GXrzMwIbW9IylgZRNh0IV6+jdNApJLPXYBe3EBdkXF0ZR58P3Q0YPflVhOOrWLz2P4k7O/wA+3KHGgPNr3wc4097K7bXZPbi/0PcmZVrnTem5K8gD+Pn/iXlQ86kP7OJ6e//JXaxRzCK90yDso5JdSWTv/shOTt327XMfOs9viSnK7Lixr127PMYOfEV8qgwpH7153xOuIvzm0VZd6Nn/yH5yQMprDmM9j1XC9dE15ir520N5CZWUD74SQDUnvAcFn/8abGIs/Fkt3TWHoYJRdUV9j+K5k3fkjcc+awq8880BOU0JGnK42I8KRKYzPnh8m13RVkeSn5l6PjBZPPmzezcuZNzzjnHvzY2Nsapp57KlVdeCcCVV17J+Pi4V7IA55xzDkEQcPXVV+/1vt1ul8XFxYF/Q/l/kAGMayi/itjMvwRVkHnk+DMH+7pr9UKzZKytekDu3Eur1yaJKIgkwwo3PbGaTVmV4oh6b3XSjS2HKG29znubbgMv48vQGQdXxvJ7UEZiaAqJugpLJgA7krmPJvuTR5SSeoeUSBVGBw+pPmTqWba4SkZMrkhQmxisFe282l7mcwGUjj6ZwtrjiOuiBG1HoU+LL05PAXITBzD2lDdSOvS0QY3vxsTivfKxJ72WFS/7MOWDzkyh1ob+TNI5zVcPYtVrvsiat3yNwkHHpGe3hgg0qvE8U4KxM1/H8ud+kBXP+3dyq/aDOUUR+mlbxIsuMPnc9zFyyqsZOeu9JEk+TfdypKguUIPKcWcwctKLqBx6JuNP+qN0URZEYZmy3DMcgdqJv0t+2QEUVh1B5cinpZ6cQva+mlYXSgeJ8spPHkxYWZVajOrZRj3xmMmt9KlcuZEDBIJ1nn+g/XMcgVw60TZJBoy3oJCu2VYTopltcl3UJ27uTMenJGgFgcxt1J6ht/MeANobrhGNuY81177zZ/R23EE0v4PG1d/05wGTk3k1Buy0GBsLl36G1l2X0bjxfNobfprG6B0iBP7IwKQP8cLen7lU/ltZxzt3ysCsWrVq4PVVq1b593bu3MnKlSsH3s/lckxMTPhrlsp73/te3vOe9/x3NnUoQ/lvkSQbT2vgC5JDxqtFlJkvSBEj3qde55m5vXQjd581qmBMifRUn9ApeKWLOli1IPc2Nf17Uf8Oq+T2X09/x71yBKB6bbYPdk48GasQZGnVGQTlUZobLiawfVHAkylJxxGOwok1jD35NUSLu1i85vP4IKVWpsrWHx4545VUnyB5qIs//ayMzdICK0BQm2Tlq/6FcGQ5C5d9gcZV38QxPT18rJBo9ZjnMX72HwAwe+EHaW+6VOPkkBuRIhKOoDTx3L8hP7E/1eOew67Pvolo9oGUAd1XRQPkVx3MyMkvBGD87Dex867LwArcGxah6/JHEygf8WTC6jgAlcPPobvxVvFu1GAJjHrIRcivkIIXQaFCYfkhdKYfEEg+Jj2HNQZTDjEFKeVlChWo5mCu7+PN1hWTMJA0U2cjaS2mC0bXkKvTbHvQ23En5fVPxiYx/W33pMaKEYVoakgVszY0b/o+tRNfQGfLdfR3bBfmbV31uFOiAfTmbqdx0/cprDmS+pVfllrJijD49CPkZ+Oq72IigynnaVz37VQRG/xJSIkqs7kffYDO9ifSvX8L/entYkgaMWTdofFYsPWIqS+9jdzICuLFKfkO7kOSxgLT//k2/7dF56gmqVExypwOIK5PMfeT9xMWpLiIY1TTF9JZYYWkiDkF+3DTIx8T6T3veMc7eOtb3+r/Xlxc5IADDngUWzSU/+kSlEYoHXQc3e13ES/u3ud1Fqg+/myKBx5O/brv0Z/bnuZMgo8HmgKEpeVMnPtnkCTMXPRh4uacXDQmni0zckMbwshRz2Xsya+nP38vMxe+U9JpxhTuVQVnx4BCkZXP+jC5sdV0d9zO7i//tTRMa+UmVhmvOSiteTITT5f3w9X7sfiTT8uh5jmBQB0RhR6MP/UPKB0kNWijuc20br00Pc8VUm+xUGb0SS8FYOTkF9C45ltS9GEvUtjvCMKR5QBUjjhTFK3zNlXBUZJ25Jft7z+Xn9iP9p140k+0IGNgFHY1e6M2ZxW9QsexmSHpNgiKNaLZ+0VhVSEOIHZkGSPt6W6+jupJz8MEeTobrhJDyHnJWokpHJF0kfpt32Ds1D8mmt9Ke9O1MvYjApcG6gFbA7bRZv7K91M+8Cm0H/gZttuWPi/INc4wSxagM3UTM+YfCKuraN3yYxkXhTPJiSILNL7fvPp79O67C1NoUWhsIy5CX/thLGksNYb6DZ+lccfnSeZjXwzDVZOiJeNhRsEay+L1nyQXSB8TVw5SKz95+NoCvYj6lZozrAiPI88ZkFOUXMw06dHZeBnJnCINgY6RU+DOS7YAEVF9B4Ejmz0MGQgBdSA3ps9346eogPdklWXtwhZRV4yDpaGQh5L/VkW7evVqAKamplizZo1/fWpqiuOOO85fs2vXroHPRVHE7Oys//xSKRaLFIvFvb43lKE8GrLqZf+Hwsr1xM15HvjUG7G9vWXWQ3HNoSx/zl/I76uOYMc3/tcgacZV5GnA6FN/158zPHLy85n/2edkw5qXS41FNj6gdtxzMUFIYeII8suOpHf/DZgZKKwS9qkdgSSAgElyY/K9Kqw6Qg7ZrCoGtiibZjAG8RSYlWl8KgzH5OzVtnhFto8ou2VAE+LWvL/WtuclfqtKRl7UH70OvakNFFYdSn96C0l7CXPExUQt9O6/lf7MVnIT+9G46aJ0M8vG3NR7r1/1DcKxVdgkonH991K2sRvPOG3zzHf+kerxz6K79Vai2W0D7QN8bDppLrDry2+hsOZQX1WLULxS5sSTC5RU1Nt6Jzs/9RpMOYftzPsaunTEEHJFIOhBd9tVTN16lT+o3ZQRcpsqJONixznobPsl7bt/mbKRy4ih0VJvsSNrxQTQueMqYRc75aPetEuvSZQVboH+9D0EoxB3NVe0iK/UZCA9oKIJtivoRLAMn1PrCV2JoAQurStyXAVlLdt5PAfAlUA0o5o328NrpvwkRB0hEnmSl0N76gir3kq7TA0Yg2SpPWuEGOWQjAcNh5nM++55VWlS1MUf84geKEBf0KRgmbC6HdwcOzKZI0U+yCOz8t+qaNevX8/q1au55JJLvGJdXFzk6quv5k1vehMAp512GvPz81x//fWceOKJAFx66aUkScKpp57639mcoQzlERJDflI8qrA6TlgZJdqbog3BFjLxqSBJc/rcix3kS1uCfubIQ68QEK/Enc7DGNhZaG+6ipHjn09U30W3tUFSKpoQz0CsHhJliLZtp3HrDygf/EQa138XkkQ2sRm8xZ4URSk1b/kxueVrCUfGWLjx89J+raTkD8fWcnULl3+S/vwm4ulddO65QeJzeVJFm7ae6a+8nfzqQ+jPbFJNowMQSDzRqiJJ2ovs+uybIMynlav2vB30Ie7vZua/3iVEKEe8cm103pSyY6OZ+1n4ySf2fj83B5pzGsdTdO6fSiFBB8sb/Hj4c2sbDTnQvYh4hwaf8kQXei3xaoOekrMcpK71c2mL8k5c6lEfiaEnOuauAlEgStbU1EtVZvpA/fJA7ptYWQeEUpaxtAw6TXlGskh6WEGUabd6a7apcLvrHzo3Fn/Qgm3hSxzSxZPtvGuX6HpVBMCGpPWu1ds2Jeg3wZZECXv43hH5lCtgAlXQjm2va8uVasQ9tqa/LK0QlRXnZSNjH5RIiYquNKSy8U1XQgUJ2o48/qzgJKNof5UKFL9ywYpGo8GGDRsAOP744/ngBz/I2WefzcTEBAceeCD/9E//xPve976B9J5bbrllIL3nvPPOY2pqik984hM+veekk0562Ok9w4IVQ3m0pXrMOYyc8BzaG65m4Yqv7v0i9QIq686ksOYw6jd9n3h2yr+djeGiJfBK60+EJKFz34173qsmislMy8aUW7GGuD2HbXVk4xkFMwWswrNO7QxirbsYZz/z0JwqUPd8pwicF1USyNpmPufK6TGBxIBdSpPLm3Qszb3pSaP3d6k7kOYwupKSv6K4MolWPULvFT2U5LSfTnEaBHrvi6IwJe1DV+BSjHrIzjVx1bkgPWTByO8Oard9CEblZ64AJQP1ObAFQRyoa1triLLvCTmImua5FlTBdlR5aVzdxPiqTL5YvipDny+szcvlod/VXFnN/82m/vnShBVRsD7nVlPF/DnIbm04ONUxzkfxHiBaLMIqCczVy7ZujTgo2BGnlKyHVU9dWfhGlbGDlMOa3DOZ13uM6/hqnNes1Hs9kPYn68GazONBleeY/m1E2doOmBb+CMvAzUEIYVUMWJR97nKkLTJeCQ9dsOJXVrQ/+9nPOPvss/d4/dWvfjWf//znsdby7ne/m0996lPMz89zxhln8PGPf5zDDkuThWdnZ3nzm9/M97//fYIg4IUvfCEf+chHqNVqD6sN/12KNosmDGUoj4T4Q6cfhtglG8OeN1OozOIJUVRkgyAkzeU9ADlAvqVKUpXwwBmvCpdmy/lp2Et+KSlk58oYukIACl37snxKVvG5mS4NpUu6MWfTm1wc03UwA8M9qIJ0+REulpfNBc3myT5Mcoorr0hPlGGSLR4BmBEpGh+05QQeSmm/PcxZRQwLjeuFCXLuqYOCNV5pcqIsg0CJ4g7WzuZ8uhxn1ydVaKZMWtgiYDBXO5B2GqSOc68tSs0VgfBKV2OtvuRhtrxhrEorRMICPdIKZYF4fklT7+HqMmu/TSCfMy7dSw9i8H3T+bK6FhyRzloIJqWdSVPGKGlrfmpL2mpdlTJnIJSQ9ewKtWilKkrpPFLPGK41UkPJDatbJ5oOZxMIlo+TzDWwrUgQBWc8VXSpOrjfTlJYfQi9+2/B5jpilCpS8Ygo2t8EGXq0Q3msiPH/PbRY/9+DS5CFcsErK1+mr4MoRK0+5Cx3p0RNiFTwiRAFvIAQeMb0d1fMIdDNMZb7BaOaS6iem1UlY5TcQ0sUg+3I76404x4FYQvIZrmo7ykh7EG92qr+1DQmygyeRerSj7p7fnSvopu3jeTeZgzYwUDubX4EQgvdRVVoBp/HCfo8B1fm9QSdnHahI16RUzpWC42YEYVDHbksIT0HNka8NS1akfTVs3bj53Ko3TNzEEzoeDYUgs6URrRq1NhM7jV6HF5QFVKPaSqSkUdKcfb0GiXLeSWP3MulL9HQsapJ+hldfNGQXG1/kriBNfMS21TjwOTSNpmVEAYrKK09jc7mm4nmt+DjuhWwmTECqJ34AvLLD6Jxzzfp79wmOccrIZ4lPUu7C7nxNSx7zl9gbcz8BR8gXkgDu1ZjzFgxIkdOeBUjJ7yE/vw2dn/nL7D1pqwt57Xr2grCEVa+7t8Jq+N0H7iVuR+8w9fRTvoyPP/tJRiHMpRfp/wKDuGvX/bSuKUvPaTedEpP8x7dubYPJgn4I90MiHJdSeqdqtdnV6oHMMZgqbi8bORe+WrcyajC9TfW6lTuoYnCfPRJPTnwBTZMDm/pA4O5sJln+5KEmc/vrcbygDQR5e0g8FnS4vHOG1Ylmw0Z+r44uNPlGCdyH1MUY8JAmpKk7Yma0FWmLVlYVmPA7ng8FyNOAvmcXZR7mVBKLlqXyjOuTSprI0sBplZLD0+PgDntp+uIlXYW1hxJ6XHHiBItgy2C1RKrSaRKswzhxCQjp7yKyuOeJAaV84RzmYFRpVg79AVM/t4/Uz7mLL8mAodkOI8ygGDlBCtf93HWvPkblA48NYWKIyRObJEDMapQO/H5rHz1J1j5qs8QFtbLGbwOei+JMWiMzN/kM9/L2BlvZMWL/5kgV/WFLkxF2uvi7cUjj2XsKa+nctTTGD/9f/nYajKP5w24NVc9+fkU1h5Bcb+jqB7/HFxc2K+5SNaA7UD5cYLM5sf3p7jicXKDnoyvH6s8BCOTPpUrv/IQWU4VMWge7v40VLRD+Y2W32i4xWu6h5ClnchnPucUl1NIrvqPwRe02ONZjpziKhf1FSp20GcR8Ti2ItCZFnZ3n7d5scRtTFqH1lXz0Y2dEhLzdc/NQMrk8JCxU+B2UT2Xlnh2Xqll6ZbutQ7pGcluDB6KNequc4rwQQpehGseh3FZCu752XHUdJHCwUdTOexcTK9IuJAxPirq4aJjE4wzesafMXLya7EmJ0Qa522VUuPIGCgf/XRWvu7TjJ35JyQ5I96qprUk80KmsVVgrMKKF3+UtW/8GiOnvzJVBm5+wKcJlQ45k+W/889MPOu9lB/3LOnGqMyZrYOdlnGxASx7xtuonfgSxp72v8lNHuqNA+O8U4t4tJXljJ35eoprjmTZ096iOUxqFDiDRotDlNY+kfyyAwkKFaon/s6Al1uqQNFVRGtCYX9hzQf5EsX1R/kTnIIxgajpab3nfEBYWSbXFiuY0XJ6GEIXn1ZjJiBpp7Uyk27LpwYlXdJ62IpC9Kc2+mv7uzfK6xOK1ui6JZCwQPvOH8t10/fRX7xHviM9xMhwBLkORLvvo3HDd+nPbmXhZ5+Soerhi108HHlM5NEOZSi/kaLFA5zn4cgRS2WA9GSQjbctG49NSIlBeWBS/3ZeZsaT8jC0u5kjLbk4ZQEPDeJSFQxpKUanSLVwhhmpQMdig7bEr0ZIi0Ioc9QWgHKe0uSxRDP3Exd2pexQV/hClZfpQ+ngkyivP4b6jRf7Kj8DA9GV+5pimfFz/pigVGP+J58gXphiX1I+4kzGz30z0cxWpr/5Lmy3ufcLTcDyl7+PwurH0dt5D7v/8y+lPCKk8T5VIPn9j2DFC98HQHH/Y1i48AOp4nY1cxFvdvTMV1M5/OkAxJ1pmjd/36eHmAIwL4os6cDIyW8gKFTJja2htemHxNs3kk+gXyUt+NCAwqrHkZ9YB0Dl8KdRv+ZLBDkxfAaOFYwgv2K972J+cn1qDDkEwyo83IT0RHigWxBmcR9oibdq1chL6k3i9gJheYy4vgtywu6xGncln6633vTtJN0WQbFC5/5rU+84hl4k/SeUtd+867sUlj+OuDlNZ8sVesC7Tr/G+W0OCBLmf/HPVA57Jp0NV5N0p8WwqICp4+tH2zb0G3czc/4/kl95EM2bLkrzfgPpl4d7I2HO96e3AjHRznvkuib+RCZfd9xA46qv0bj5uyTdDsQW42B45yVn4v0LP/80/FyeadaIYbtsOdQb0J/f+3LMylDRDmUo/x2iNYmDcFwLHqRKZsDotQhpI1egeuxTiRZ309l8vbwX4Q91N5qnaAMorTuW6tHn0N5wFe37rhAlWhfPw59YE4MpFpl43tvIL1/H/FWfpHvbtbJp9sAuSDtsANSgtOxEJp/3t9gkYvr776S39a4UztWTVNB45OSz30b50NNIuk2mPv/HxJ0Z6XJeCjnYItCEcGwVEy94p+T3rj+NqU+/cc9xUr1XPe5ZVI4S6G6022Duwn/Zp0dbO+UFBMUKhbWHUzr4RNp3XrbX8Q/KVQqrBQIsrD4MU6pg+400x1bJR5LnOuk/Go6uSI9mU8PExqlSSKI0dcv2m+LxhTIHjrmbKOu2v/seivsdT9yZI2nuEic+gH5fYFN3cERv6l76M1vIT66jdeclGGcUaRWibLpM4+YLyK8+DFPK0dj0LVEsfSTk0MSft0oP5i/9INUTf5f+9g30pu5IlaJLvXLGVtRm+vy3Ulh+NP2t1+POwPWkrLwYgWYUorktTH3mDZhalbi+Iw1PaL+Ny8ntQOf269l5z8vkWDyHVFRID83Q3GxThM49V9G+8Sr57KjGUOs69mP4kpOmBp37rqSz7coBwpo3OFTJulht94E7PcLgU6T0gApTFYWfOGNqoZ0ary01nEtqALtYeAjhCojrOt67xdNv9zUM8DBkqGiHMpT/B7EOlstDftl6Vr/onwkKJWYv+RT1674nF+0FXlr2tD+kduy5AOz6xjslncfByDH+0Hb6ASue/7cEhTLVI85k+6dfTdyZx9XdNc6bNlB6wkmUD5Vc9NETXsnuO68Vha3pH/Rlw7N1KJ92OiaXx5CnfMAT6U3fJYojp5tcCMzIRpVfdQgAQbFKOLqGeEEUbeQgPi2fZ2ohJlDaZvAgW4uFeD71YKP5qVTJOiZuJj2os+l6CqsfR9Jp0Ntxz15vaQKw7TqN679H5ein0br1EmynkR7WniE5UYLu1itp3PFd8mP7s3jV50UJOsKQwpdGocb6zV8gbu6GuE7rtkt9H0yRtPpRKNM8d+k/UJg8iqi9mXhRaLDtWKB72yP1xsIWu772p5ikLEmlpIrCw+jKHk56M8x8+28Ehs54b0bJZMaxrUcg6m5j/qaPiJeZjdk7BRWoZ5mHeHGK1g6ZB3+ucJlUGbcy+r69CPGixOEDSQdKIlWaMULacrFrPXjAk7dcOpJVWBpSEluofXJwdV+XwoKgBTYkTQ9y3jsaH9VYa/ZkLJv5F2Rj91VSBr1bC1V9rhoqPl+9n77mbppkX8vJ+miq4n04MlS0QxnK/6PYGGhC6YijCQqSK15ef2KqaDOpKA5aDmsT/vPhiP7u4quuvqpi0bbfhUIZG/fl/FoHm8WqbMtABP377iM5oUOQL9HbeReslE3YVoBp5CxYgBK0H/g55cPOhCSmdc8VfuMzVfzxdLYs0PXCdZ9l9PhX0tt2F71dd/jD2308uQ8UIFrYzuz330/xoCfQvPGiPQdKizXQhPbdlzP9zXdjSlXad13uL/FpR07RGqhf/iXad/2CpDlH0llkj/wno5tyDxYu/RQLP/2Uz8ck0fblECgy0bYXE+pXfVreD/Bnk9o24o3lZYM3LbCdHq0N54uR0tNNflTubV1BC/WabbdL574b0lSgGF8Jylp8rWTpawKtpigv50m6NBi3trT4BBVEKagyIK990+IXyby01edGq/fo812dh+4UuEKk7lkGVWqOrR4peh5raMB9Ro07q3nWriqVNxJUsdlAHUUNlVtFSHw9aDX8bKIeucb7k7K2SdOjiOT5zpjw0+48ZI3LmJDB9DTwhVb82b+ufQbMclnrhQXoNvB1pNE86oE0MSserCNRJa4ylpvPhyHD9J6hDOW/ScLaBCtf/PeEtUmmL/gAnU0CCWcJE+7blp/Yj/GzXkvc2M3cjZ+FGTWXXUoM6c/c5DoqR5xBe/P19KfvSlN4XN5fBQ9zhatWksutorf1dkwhwSyXDZQ+sJP0nNIASVzM6U7nFJvbcNSzNCAKwJDmVyoL1+dWulQe97OGeFTZohUu31FjtG4z9nBpB1Ey7n5uo3UkHnddXtNY3cZp9HM6dv7ghmRw3E1NlCdacMAd7WfyojTttBolMQSr5D7JvM6BKi/0uaaq3pQ7WQdVKKq8fKGHuk5pFeJISx+6fo1JP40qJNtE8lhdKUTXj5C0YIar9ZsTD9nEMvfWpTk5so9Lo2nqeMb4MpYW0uMGczKnvlqZpieRV2NiQe8fDhoUAycZOY/UlYHUZWxK+jPrymkxj6ShObNtUXAWhXnLaZq0iZEiFY6sV9Q+JvizkhlFUJeizJvRIhLOALV5uWfQID2SMQRqaniMQCWE1hwkOV13DrZ3CtpJgD/lCJMaFs6+GObRDmUoj7I4UsnevmnuZBbqpOb6Eo/NV+vJlMZz7FHnGVAlrbq0KLrTrNLrXCphFZ+WQqBwZja1xik10r+dR+Lia7hc3SzL2RVWMGBHkWpSi6QpK6oQgqIqDSDeoUrfbV7O03AxZ7/jkip+x2517GM3VhUwbchbDTOrB2a0EISpkMYdF7U7o2DnFBEoyX2CgnpBqgSSBimU2lAl1MHnqZqSjl9D26P3IQJqMs6OmW015mjbpOlCVudJkQM6EHfUO3NGiEXY385zbOizKwgMG6jis5nxqcg943kZV5PPKC/nfTrGuoNtXYpTEakiZUU5W4eIZFKNTCjv2zIk9XQ8KOHJZiaW15MAgkiKdSSQnuwzhiAsripXW9an1fhtkJP3/DnKTpE70l9Hn2dljuyMPtN5tlV5P4khiMEuZNbRCJ45bUZ0TJWJjvtuFEnzxBXxSFRZK9CU/s5DK9ohdDyUoTzCYmGPM2m9aJL/QJ3ghzJ93fuJequ6KXoGsovLrgIzo5t8DMEBSGF2VerWpTDs63mJXGNyyKY2roa+Y2S6XSZRheMYzhoL9mfVJshpNaFuvjPirfj+x/gKPNlSyNjMuCXsvRiFZTBO5hS/UwwwoCQA7zEa9VSDmnptffw5saaocchA7m9dnFVzOE1JxiZYJptuot4rfcRzc+Oiua4GHaNAnxGBWabz0JVSiTYvipYy6VFyEbAAQV5KAfa6+NN5PFxd0bHpkx5GHqbepBkRZUsDT8YCvc9oxqN1qWAuTm3wZDpv/DiDR1nOxq0BgzfSnAFlFalIOtrUSgHb70nbeqSVzLKxaQO5FesIc1UJU7RIDStdh7TUSInL1E56FlFnivb05fI9csreSL8xYLdA+cizqRz1VNp3/oz2tkukbd2MAtbvjSmUmfy9d5NffiDzP/4Y7buuIAjFSEx6OqZB6iEHoaAVDyVDRTuUofwaZF+6zEakZd+yF2YJVO737Bc6v+RajdO6TdRGSB5tiBSLr8lPO82AghyQEO9p+DKDzqNQDyieYc8yhwXSg7G7ojDokypAF09293F1cXVzdWUKXQ3ZhytLQ7U+rKtkIR+rS5QYY5AcVoVsg5Wq3PuiFBJtfxDKPZIEghEgJ3mTVj0qf1C8PjSoIHVxu8g8uJhghlTkSgv6YgyL6hUWRWH3WqK8g1HE83akqQR/xmwyis/1FIg3IDe2H9HiVOpuad5qMq/joF5irrie3EHr6W76JTbo+DkJFLp15wObQpmR014OSUT9qq9hil0PmRqnUENRwsXHncLok15Fb/vdzF/8ccgncp+Q1FjoA+WQiWe/m9K6E2jcdAELl39CXle43ThY3ELp8GOZPO//w5iAxSv/g8aGb0u97iyxSaHr8bP+mOrjhbk+vevv6Nx/ncSs1dhjQT5nRkssO+9/YYKQ4rpjaX/2KqSuJOl3QI2D0iEnUdzvaABqp72Izq4roCtn0ALeiPNfz4e5XoeKdihDeZTF7sVT8xkMWW0SZBSRMiedkrZ1/YySflD4NukpVFkAu5V9F/t3sKMWavevORaoVhPyaRquHQrF+ZJ5bkPMiublWtdu8ExUo7nA1hXB0BjxAFHbwajO80A25wF43Y2Zg0WVLJQaCjkhMvUiGYuCpmtofqVx/S4F5FY8nmhuCruwW651kGRXCi84VnL+gCMoH3gC7ft+AQtb/aEA1hGIlCFskxzj57yOcGwFC1d8jqSxXdrc1OvG8IzvwoFPYPyMvyZpzTN7ybuJdk8LlF2AeFHbGMi1k895J6UDT6a3axO7v/oXUOiLF+rgb83ZzY3tx4qXfBCTy9PeeAYzP/r79JSghoyVSaAwAaXjXkrt2BfoIHepX/c1UYQ9fB5wGIgRMnbmG8mNrSY/uZ7WHZfRm7nFIx3ZQ9pzK9ZQWncCANUnnMfC5Z+EsvWhCKueok0gv+xQjAbEC2sOJ9gIsYYcbHfwuxIUq/53U6rK0YDTipysUK8zAvoRSWuBsDaB7SxCt+fH0WiurluPUeNekk6DoFSjt/3m1LjVBbn0u/pwDcOhoh3KUH4DxaXu+PNFYU/rOVHPB73WQX5K+PFMZy1uYJYqQCca58TBzyW5njH9OUW6UyQQjkmNWVOrEBRGiBtTsmE5+K8rbbGRxrryAeX9ziDp1OnedyPGCBSaOPjZtaEM+YmDqR5zHp0tN9G5+wp5b0QUsp0hTc0oGcbOeBOFA46h/suvDubW1mQDdZWe8msPY9nZ/x+YkNkfv4f+fbf6FA2XWmITMGMw+sQ/ovr4Z5H02+w+/y3E89vTuKDGQYMSUB5h8pn/QJArUT70mez8wqsxZesPHTDOswuhcsxZ1I59rk5syNz3/17Ote3oeM/hKzFVj3guYXmMsDxG+bAn02h9R0g+TemXtcgRhwSUDjwZgMLKgwlqy0niHTL/swJLW4AOhGPLMTkpZJGbWJOW4xwRTz5wdax7YHsufgFJu+chZH8alNU4soX+zGZyY6tJ+h3iaKf0RWOu7mQd24Fo1xS9nfdQWH0Y7Xsvh8hKsRZk7E0IwTjEC9C6/ieU9j+JoDTK4pXfIJkVxMA2FeofUUi7BfM/+SRJp0Hc2EX77l/4dtsE7JwiJQnYXsTuL/8VpUNOItpxI7bd93PpT2BC2hHP7WTXZ/6IYGSSqL1RUJxMFTNXY9wbgkthlX3IUNEOZSi/BjHFKrbXfkgTOKiMU1h1MN1tt0tazxKvzd8PQ/Xop2KKVeo3XQSFvijGBTSnFZ8zmB8/kPGzX0Pc2MnCJZ+FIBayTTaXUclVY6e/kepRT6V5x09YuOwz/lB0CnpvREGGa1ay4kX/SpgfY+GqL9C45ZuyqVX1+WX8EXSjp76c0RNeCsDM+f+H7sZfUqhAV4sTYBGPzsDES/+W3OhKKseey9R//CHx7A6BoLWSFgAVyK87jOpxUo5w7Gl/QGfzZWmKUixQcdIESlDc73SCgng/lcedRX3brYR5KSLhIEt3uk1h1ZEyD/kyhcl1tKe2+zQZo8zqpA9BIYcJRHmZfAlTNNC1cpqNq+ebk9ht3Jj185b0Zj25zbrd18XW+9DbfiOlA56Ijbr07r9dxtSluHR0X88D/YT69d+mdtxz6Wy8inhWjB3yMlcWMOOiGHtzt9C47nzyaw6jceOXhBTlIPwAkgV8da/FX35DSh7amMb135cbjeHZxcYxonMw/4t/pr31RPq7tpD0d0njevjzYW0TTUXqM/u9v4LiMmx/xsPnKApii1osw0DSXmD6G+8YWPDZU61crq0xkCxOMX/JBzEVNRTmFY5XYpn1H4J4YYrmDRcOKsa+jK3PWUbnl3ni9rx8h7JhHb3UKDQeVMQ4ied4SBkq2qEM5RGWsSe/kvEnvZTers3s/PLbROHuRUyhwprXfJjcyCSdrbcx9dW3D3p8GU1bPeapTD7rzwHIj65g/uefldiqATNJygoGlj3tjZQOOg6A3u57aG/7mSil7CEBdQjGRhk5QTyvkeOfz+J1X8UmTblmP4VXOwITFw58PGF+DIDyutOo/+Kb4kEoDGddpSMgV1nt250bXyWPVqU9AENbNFAKWCvpSa4cofOslN0c75jyEF9/blN6LJoqOF8RqQXdDVdTOfzZmCCkc/8VUBCP2iipxUb4Skb1W77E6IlvJJrbQmf39b6uLjUkllsHShBHcyxc/s8U1jyR1j0XY4PEl6G0GlMN8kAeulM3MH3B3xGWV9DecQlBReKxNhTPO5mWuLC10Lz9QjobbibptbHBjGdkGzSW6aowNWDxsv9g8bL/SBdFR2BdcmpkdKX/tmhZ+MVn/IH1pqyx3g7+rFnr0oX6fRo3fUtSmEYZrJXsGOp6PZ0e3duvlDh1FeKarjtlVlsdNwzYKMYk0/J5FybQMfW5xpoaFY7L6+48WFPUpa850SbRAhJKAjRWoPIEubdx5DxdUibzc8BadVwFJYT5owMdeqF9zUpQVWWekz564+8hZKhohzKUR1hqx0id3MLK9RRWH0r3/lv3el1udDm5kUkAimsO2xOScjmLbTDFmn/ZFGuycSoJxLZImaJAVJ/210bz0xJPdUrWiUUqL81uoDBxKL2pe7HdtmyCVWAnAzHY7pYb6M9sITe+lsYtF6SHpytkbV3+aQEWb/oSQaFG0mvQvOuHabUgMj81rjj7o/dQPuTpdLfdItWjanhSlXFxYwu2Nc/uL/8pubXr6W25WZ5dRZmjojhNRxRYf+cd7PriqyAIsK2mtF8ZrHZBxtWlzXTuvJr2zVfLpq4pIjTwaR9U8fnA7bsvp3335eKNqZK3Ed54SDLs3+726yRnVQlAtqWkqxwEKxBPqisecL+5TeByd1+Xc+pi1S1lSud1rtt6n5pC8k29XrWLOwcWZVbTRlKwtEiGS7nKrjN/CpP237HA/UERrsZwTZSjdUUmdGySbHqXY3Q7hvkyfMzbIQpJWaHeihaEcPeDlB2vubkE0k+rLOXEhTx0Hfmca1Ll6sfCVbDKpLEZrStOrKlNOVXO2THU9WdbeMZytPiQAFX6jGEe7VCG8sjK+JmvZuy0F9Gb3sLO//wrbK+11+sMMH7OH1E55CQWrvkOjRsvTDcOvcCU0BrHBcbP/H2CYpXFy75AYudlA6kisbRZfCUdkytQfcLZRLM76e24eTDFw4krUBEWya1eRzSzBdvrykavhKUB692ghSICklySFohIMp6BEcViCrL5Gy2DhyOpBJl/6mGRpNAcCf6Qb6OEmaQunpCH/YJMk7QgAso8Dcryezwn97Z10nzaDik7Oiefs/Okm7RFlB3aDlfIoyj3MAZRQAkwDnYOzzo24WD7gnFpX7JbN3Fl5LrCC7ahY+YMFEiP8nNFKBwkG8i9TYW0tCTSDu+VOQWl8+rOxXXlKO08aTGMvLyf1EnnuoKH6wlJ0390jHOTkrJjFXK3C6TpWs7Ac3H+gnqdXWlr4vKaAyVKq4I0FTDLZZ4Sl9fq6hij9xnF574GsShY2xeExTpoX40Rq+xrgyr0jsy7UWMxG2c14EmHDhq2riBH5hp/PrMrMpLIeMbxsGDFUIbyGyFBeZSk21QG0KBkGbZ26RuhxIJMUVJrjB28xlnaJkCKzLsqQjsUwnTXhLpJOGhVPSVf/1hje0ySenAujqefM0utd6cgFS4FUiVVwJ8S5I0F9QysUxaOcVsG05CNuDgpqS6+qILV95VYlSwCy0ghWvW8DFBcKxt5NKcbbQK5ZUAL+l3xcG2sfY3ks95LdoU1lHCTtNONna56jqMQOAVVhWQXUtc3m/9sVdEWZHM3JSEbSfwx7bfPx0xIWbehPicDe/syhC5O7FjQruKTVtOykdw7cZWvVPEZV4axKv8cmmGLiNFQl/a5QxTQtpLotbo4jcETvXIjMs5JR+bfGTBmRNdNT143BTX48lAdhUIM83P4mL/VQiBYCCbUEKjrmISkDHjHDnZGkcWnGiVNfAUxG6l36ipHuQITmg7kzgg2Pf0aGv07VgNEDVOPzOh6zo2KIeKMoOz3lSJEneHB70MZym+EJO3FvSpZQEgmboPLiqZJmArp4eR5vAI2BWRTqSKHu9fUYl+EPWBnF49SxWJdQXxlxvoD4HXDdnFRDwmH6S0gfc2XwsvGtVxajeuPxafZ2Gy1KYWQjeZGykk5evtlMi7W4KsNEQjpxajXFNRUqamS7NfV0+pqDNZAri0sYZPXMRqVfjrlZpyXooQYk4NcSYwb1Eu1XXlOkJe82iBTXtGnI6kHaor4s2xNAe/FW/DeoqnoszPerFOUrnqXJ0gp9OryY339Ypd61VQyk0LbJqeKPNZxcyzgBsLaLgIlSVNyRTUSLefpcmkp4g+zp4p40lVSQlQe8qMag14kTcfS3GFTQhjNjiEeQXsOGq66k6sk5UpEOmh8XuB0eojCRt4zug7C0gpI8lj1huM2Qr7r4QuNUICwvIrS/qdjwrIcZejWWwL5CpQn9flBSO2U32PkKa/GjFXS0qS5zDq3Mv+FNUew4uXvZ/zcN0sjyxKv9WP2EDKM0Q5lKI+2KBHGVhG4zOnjnGxqdk515Ih6Fn353XbV61Cvz1pk4+vhi9j7+4wi3kOkHqWWI/RFCBzZZYG06lOc+T3DzLUd0oPkm+nzfZk8VRCmphugXXIf5z05BmlJvEzbhV4DmADTxh9AnjS0D5DGiZeLMrBN9fZKQpCxs6Sn6rQgLsiGHFhIXKpUUe7vFDmRjI/JQzytHrFWqfJsY83jjDWWi0FK+bk8ZaMGQFv71lMPSeFNXx/aiL0VVPHFFZwhkbhavs5YKWfGKOOlmVDydYNlEGmMmZIoK+PiyB0JFFtXXxodZ6NrQz3Jwv4HEzcXSGZnfL4zjnDlFGwDwtG1lI47jc6mG+jv3kxYkTkLYqkUZp1BuGionfwScssOpH7FV4h727DaZw/HtsRgya9bz7Jz3oHtdZn59j9gGxKTN45s71jHDRg/581Uj30m/ekt7PrWX2I7EvswBg/7mhKYwjgrX/VhglKNztZbmLngf+Nzq5H14CDv6pHPZOyM18h9RsssXPEJmE2Vp0W/HwGMPfWNFFYfRnH/x9PdfAOdzb8kV4V8CZopBWKfMvRohzKUR1lsS5QXLtVEv5XGxZtUaXn4TskYpph6dLYO7ELIKaUlDq3b4Fw1qQaiUB08tgxYiXgaPfGKjTJjfWH+rLet8Vznidmm3rOYtp1EDQKN5VJAoNdRxMuYFAUVjOmzqhCWIB+LwrINPKxoylCoQLksf1tln9q2KDOXs5vM4ys9JX3Z3HtzkMwp9KeMaZQRbXM6VpHOgd6LMulBCkbaZsIiYWWVwLuJKO6gpwqwTwrzJlBYcRyFdScIrI6MfViUEor+FJouBKVVjJz8espHnCEGQEyKWEBqwIzDyBNfxooXfYjK8U/1hoyvE6wMcmMgnFjLqld9ntVv/gaFw0/wULgZk74Fzohrw8gpL2Xlyz7Cqtd8kvyBB4knl+BrRHt2cClg+Qvex9gTX8uKF74PgooQvZRRbJxBkEBx3UmMnvRKKoecyfjT/1TWQEG7lCn2YDtQOeK55MbWkl+xnsqx52JjmSt/RGSs34kalI84A4D88nXkJw8Qr93lwQby/WAUwtokQUmIgvnJdbJG1GDCyvzHTf3eZFN3XGxZPXYXjnGGbX9mm7Q7iYnmd2L70KtDf+90iz1k6NEOZSi/CeK8vnFRPHYXPibloD/POrb4tAuf51pBGLQLKexnIK152/QO1WDdZWVS0mAgHosWoDA5ZCMv44vnG7e5O0UdM6gcAsWAHeGoQJrCESEH368AKmUKE+vp378R6EoxhFg8VDOq/bSy8RVWnUJYXU7rxp9A0hOlCD4tBCOfCyvLGX3ya7B2gcXLP4dt6GAU1Uix6gEVoHr4cxk5/oV0Nl/H/E/+TR6WUw95FAKHHiRjrHjhvxLWVlK//ls0bvicKKQEXyzfVoF5qBz/dMbPegsA8z//GK2bLwKUCaxjFVTk9/HT305++eMA6E39GXFzk3jBVUQpKWktXLOW0ZNeAUD+9DfT3vBTbMfKfLu4YUfGqbz+dMLacgCqR5xLd+sNAs1mSkaaioxD8cBjAQhyJQrrDqe/eJ+wnx1q0NY5Xx4QKMvdFMoE5QI2agma0MVXlgJIVjT80kqadTHINDZNXo3DnLzW23Ib1aOejk1ietvukPGJ8LFgf8B9Bxq3XcDoiS+lu/N2+vObfRlIE+uz9V80vZHGLedTWPsEGtd+QxoS4c/atWW5t52Hxk0XEQQlTKVK48pvpkf/lRVlqMqzky7MXPRR2huvI5p9gGjXJiolYSh3l6T/7EuGinYoQ3k0RS1tL47MksefWmJiCAqj2CDGFppegdpFJN62DJIZJJ5VKFM+/AS6m+4lXtQiAsr89WxffW750NMprjuKxo0/IJrelsao0Ge3ZDMLCiMse9qfYvIl5n78MUm76SMeW0yaKlGA6nHPYvz0PyKa2cr0f70dO14XElA3heEIwLZzrHj+B8hPrqM3dS/T578VchbjYn8GyTPNQWHtiYye+y55xsqDWfj/2XvvcMmO6tz7V3t37j55siYo51FEYSQkQEbIQggDwjbGROPrDyx8DXLgYuMEBpwxtrEx1xgwIIIQUUIIIVDOeZRGaTTSxJNP57R3fX/UWlV9ZGxJvhdsfLueZ6SZ07t3PrXWetf7vvWDvws9yRGZmKVnO/qSt1I68EUA9Od20bzr2y5wapWk9zWGsS1vcYzszefQePCb9GZ3hCqpL1BrD/IrDyGurAKgePAW6nd/ypF1hHxjpVdKApnJjf5RZkY3eHMHq/c1J2zbEgM/BCNUVjvgkayL1af7lkhaS8TFMfrzO7Ft6/vag/7DZgw6S3eRdn8Ok83TevwWx4yWYGi1Uu25d6J2+1fIvGQ/kto0rYdvCpB4y91XJbRF7T4L1/0JpQPOpvXojdj+oktWpNfvFwiIoDv7EHPfeT+ZygYad13J4JKEgNPfCiO7+dDVdKcfh36P3sKuwDeQJEphfhpQu+5z1G75otx0wkLyUomaHN5ha+mmf/KIC4n7HTHxQAWMnE8vpXrbpcRxOD+jrG3rrt0nrUmP5kPXud89+Z0tjjoP7P4CzzqGgXY4huM/YZhckVWveR+ZFeuZ/97HaD18mwscwib1y8aVoLhuC1Pn/y9s0mPm8t+lN7PNVyjG4kguMZhxWPmiPyS/7iiSVo09n/z/sFQ9mzTK4Jcpy0yuZ+pVzoEnv+l49v3TO/CWjeB1tqYElc3nUTzkNABGT3sdC9/+qJ+IliUJMVSOejnGRGRXbCK3djOtnTehS+zZOpgJZ0hAMkJ2ahMAudWHYLI50lbHyT/y7hy1Ao2yE+EQpQk3cVuIhbRiC/i+Ztqt+m3T9pKDlXsEaFt6srSgs/chCuuPJWnMkPZmHLS6UpKWutN2koHOjgfo7nuU7MoDqd9zmZMqVYAR6asqQxio3f11MmObMJGhfvdXw9q1gj74vl8H5r/1Z1ROeSW9mW10dz8WJnhnOOVdpug3mP3cu8muOZzOk3e7e6OM8AgXSHKQxmB3PU7t62+lXc/Tn58LWlZh5irEayLoPHEne59+k5fEDOqkbVMg54JLIjrbbqN9/20usGUH9lkUyL2LZ0i3t98GrdtCXz4b9osWvJL09OeedM85G+6LRx2EhW2MQzhMpu9kSJqIJO74fh1ZPScZpiBJhtomSntGg/OyEeF75VHO/Z4ok96YgAbpaHagPccPXfryh41hoB2O4fhxDZWrpFA6+BQKmxx0N3bSz7tAq32niGAN2ILioVswUYyJYgprXkD3iW2YSfeZh5Wt+0520gWvuDhCZu0U/Zmq3yYV+M6TbXQoE7SEq3o7BFJPB/q13X7T/nz4+7/aRwOaD9zA2Av3p1+bpbPr4RCItaJsO7g36S7Q3PZN8hvPpLn1O9jFjuvrykSp8p4oBrvvGhr3HEBUXkH11k+7BRSkn2iFKKWr1FSv+meSmV0krUXaD97oAmLZnRsxfv1fm4G5y/6I3OrD6Ld2kC40napjZuBZyQSftlvMfOvdRLkIu5S6SV61qjrpa++1PsfCt3/fJSqRu1abuvuqbkzuRkK/uYulG/8hoAM1QmKg7GwJFEltmv7CdKj6tJrTACnfj4oQp3Vo1x0Mqs9akA2NGFagZjv4HFW/nBDkST0n/0lleyToWJHoGJWJ6TMW20td8o5E3mXZv1FdsJCn9N1dttiESoNsOLd0cSDQadRSb2W5vx5ubso5aHRUeHcFXj7khw1SH3AwdNoiyHzk/TVAnHWVcV/6x6lC1s9hDAPtcAzHj2MYgTkFRu3se4y02ybKFWg/fb/73Dg42FTwxCSAxuNXUzz4NGyvQ+uhG/AsYZF4GIM39J+/6h8YPeW1tJ+8i/7MdjLj0J8nVBdSvfTndzL3jQ+TX3809fu+HSDggcBoU6AFzfuuI1lcwuSKtLfdGi4pEvSzi+8T1279Is37riLt1LFJx1dRUdlNrGkiBhJdWLrqE1j7ibAMnxJwkHvQd+eUJH2WbvjfrjqxUsWL1tIY+XfHQae23aPxwGUuSRD9pTGOuWzrblsjgZlul978Vl+5aN81Mwb9ObkXwvJ19oCpC/6juP6omGMwTWCKC/FMjfttB4GJXXWmAdgmhP53KhWhmFnovqzqkKOB55KIzWIESQmv1dUFFMwI1ETmpAHPFNy+fZ9fg7S2CmKc1GaEALN33LXbHG49Yw3oUm2bETkfqVCjMXcuvuIVYhjlgXdUSXm6jZKt1LREDSdUbiXPS3vbNg73ddk7A14C5Yl6ej/FpIOm3PdoYD+CCqXyTmnlGsgMA/ddnm2Ke0amK9fLcxtDw4rhGI4fx8hBtMJN0LYFpBCPrCAemaK7e5vbxkhiLRaC9PBBzLZjSC0mk4a1ZwXq0rVm6bgJ3Juwx67CweKMKOYI66RKtQE49mh94N8RzkiiOvAzg9PLKkwnP1q2jF+GENCfOSKZ3FQ7qxrdCadbpQ29Ok4qo1VOLOcmBhuRmBUkszjCSkGCw7xMrDnC+r6qSxXNajrv9mmUDGNdUGUEv+wdOXd9kQaJ1CUIaVuChPxMtbcqk2JQ8lMOBhDKyDZCWLMJROPu++kCoWdcdPdaHYmI8UkFQowyGbe/KAPxOuhPy7Y9QpDRa5f7ZY08L3XkksCt6+pSkQCdl/dMAp8uBmBE3612iXTctSUKvYoe1kSuAtU1h200cC01OUetMJXEp9wBqST99er7GuMQmy6OUCeaZ++3LNCyPw+F0qXC1VWtllWlZfe87ZygBunyV9UwcD7P+LkfGUdmMy2RkxlI0mc3rBhWtMMxHD+GYVJchp7F96HS+izJgA+xdykSVqQRu0AXVCXiia7SB8y+7Lc4kLlrcEzcZGByuAUBIBgQiL2dsXj7Pz90gnwmNDwgz/BDg6vqP/+toZVeBb+Qucm4800kCJgKTnY0EOhoEiovlRuJntRKT1Adf2wfv2KQtyEU60HKuB5c3iUfUQT9WalMtYKSwOEDUYrr/zYkaAjq4INSDm9T6BcyaOKfoRqNkHXPPV2UAFAe2F9ZkgO5PquBOyYs49aX4C9uSmmL0FooyzH7IckyWTDjAekwRZwUaEnuQRdvcakyF6tBUNsbGrSyco96kiSIjaGHt3t4aZKHshVtyMv16PsBIbEQyN8mBAhYGfZ9qfClAjWq69UkL4tfEMLfA9FFq8GEH9qjLkI0vhbbbJP2F36oR7HG/6g8QfHQ0+nsfID+zPZl+zK4Z2glyY3LuHWCn2UMA+1wDMePeugEooSNVCa/vlR2AucataVTk4cIJ4PpAbvxBCGjPS+Vq2ilogFDhgUvfbCLLpAZIZ3YjsvGrQbuZ048PyxoKgHL4CZL/btObPYZx9eKYzCISxVoyngGsK0NHE+IUMZIkBOonTHRwip8Ka5KtPHEGa+LHJBcmE6oPONRF1CiDmTK0FcDiCxhkXCd8FPc8m2z7v4Y6SuC/F/kR6qz9FaNiWMVm5wEKLmXVhADH3gSx5I2qVSIFXcORuHzrIPZ1QUrjiEqQDdxchN/L+tyP0q490Z7wNJHNHkJygYPgXsbTmVEK/lO+52jGSIzgu0uOMMLrfLaUsVNAvPu2Jl1h2DyRbr77nNBuRWOi7J+cxAxQvnkV9Bv76G97Rp3vRmgNoAuSCVbPuanKR38EpoPf4/GnVe56yrKPZWK2CYQjYww9TMfIDOxjsWr/4bWwzeERLJHsBmtQ/nQc5g459dI+x2mL34v3T2P8Myh5hcrfu795FYeQNpts/d//zJpY9F9jpzjQJsgqf2r3fzQMQy0wzEcP+KhsgIjOlirVoeZgZ/n8Cux+MAkrkGeTCKZvGf76qScIVjzLcO5CFCb9NbISIBVaFom5GWB9pm9qYEfa0CLV+Gs/wYhumfsw/dwpX+s1ZPpOAjUr+ii513DTZIqq4jASj/MZHAwsJUqqu8mxlRMK5YtajB4GxQ2lG3JQNKGRB2btG9ncX7LKj/p4oO+D0ziAEUT10svDUz+0i/X/mTaJGhhYzDFDNnxTfTmd2JrzvooyorUR6t3eRfilYeRG91E85Hr3ZKKRei18AFHYXKzqsLoYW/E9rrU7v8cZDvemMQu4uBaqeKLG85k9NRfpLPnARav+jvH5IkGrlOfWVxg5QV/Tm7FAdTvuYzFaz6OrmSUipFDJPKa/P4nMfnyPwBg6Y5PUr//a+H97cutF0OP8fPeSfHQ0wGYna3S2XmXszBU9ED6yVFuhIkXvRNwtoetB2/A9louMW0OXFMH8oeeRG71wQBUjnsVrcducOeq1a1qoi0UDjgRgCiTJ79x8w8NtMryz4gOOcoViAqVEGhjiIvQrw+86//G78ozxzDQDsdw/IiHbYdsmSyh+tSKQiHHwYpQINlU+6oamDV4JTiSSwUXoKz8u4irNiQIm1FxY+oQMvw+rv8ayT5LYR+eualwspyHamCjiruOtEZYFFvJL23nmJRq4My4ij0aB9OQuakH+VEXHHtKgimGqspkwNiCW1OVtu9j2hRH2BGpiINJY/IHHUtv3y7ShX3/OllQ0ksMhU3HkF19PM0Hr6Hf2uE+6+M9nD15qpBn9LRfIS5MsnTD/ybp7MbmHBRL08HOqRCU8utOY/ylF5E0ppm/8ndI5hddMqFJR95de7oEU+d/gPx+m+nNbWf6i++GpE9fSEEmj2ffxlP7s/K8P8NEMfmNJzH//Q86N6cCbkEFgdWjEowc+XoqR53n3rGkSu3OS1yvtE+wUWy6ZGDszLcRl6bIjO9Hc9vVdOceCElI7BIaepCZ2khuxQEAlA5/EYvf+zjevELh4bo759zaA/3tzq46yFewmjgqFG1yYHKF8GgKebcAQnPg3esAZUjrbZL6PHFlkqQ5jy13HXS/4Patqy/Rge6uh/2axO0ddwaCFYTEU66xfu/l5DduJmlVaT5yve8pk5ffT62o2zD/3b+kcvwr6ey6i6Sz07t/2T4kTZdomJxDIqKsS9qebQwD7XAMx496WKmY8m7C1hVNfFXaJvQ6AW9rp1Ibhfz6uIze4PSAav3XxbNpfb/VBKjYVU+TRCNj9HvbXRXaxwVprWa1r1nIUD70xSS1RdpP3OGCj0DFRmUhJRf4cusOp3zGuXR230nzweswRSgUHbzZ195bBGk1YuLsd5FbdyS1Gz9Lr3qtq2Tqch24bU0B8pNHMXHOH2EMzN34R3R3bXU6YYFn05wE5T5MnP3rlI46i7TbYvrSXyPdvTewUUWqZIEoGmf8JX+EibMUDzyLfV94M7bn2MXG4AKexVV+R51F+Yhz3GNL+8x//YOhL953+4wkMSgfdz5RtkA0vpH81Ck091wZtL8TUrG3wOSz5PfbDEB26gAyqyZIazMO2UgI3roxxJVJTOQymHhktQsymjBk8Cb+bgUkhTog7bdCr1gnfi3r+9CdfpTi/lOk7Tq92T3uuYqJhfej7kN/egfdfdvIrT6MxkNXBotJZaVn3Htl61C79TtkJjcT5UvUbviye4ZKvBIoWtGcpes/RtJ7Hf2F3XSmbwmsej1nvcelHjNf/k1y+x1Hd/FuqCeBbY4gHV3392RpN/s+/ytE8Sj9mZ3huWuyk5XWQQyd6XvZ9bFf8NW70WPK71yk9yqBzqN30H78DpdcllwfNm24JMP2XXCNIpdQ+lWrnmUMA+1wDMePepiIyrHnEJWKNJ68DFvuut6bTAoqyicPmeJBTLzkl+g3drJw7Sdweg5QRx/VZAJMnv3rlI44k8bWK1m88RMOAh3Irq3AjZm1G1j12r8iyhap3nkx1dsvDlAyuKpyHJiHsdPfwsjxrwJg9mt/TPvJW5wtpCYGMc6irwOTL/k94tIYxYNfQufph0nTadptwiQqE2129ZGUDjsLgNEXvoXpr1wbmKwFfNVlclA48HSirKt+CitPp3Pv1qAzFRavEoSya5x9YZQrki1soGP3gpEgpGQcAxSCLsTEWZeM9Fyv0+SkN4pAuQsqpIVkadoxm4V5a2ThAqxDITrbbyO/djNpp0Hn6QcEInb33bYcmgCQzvao3X0p5aPPo7X9epK5GeIRd57JIh42xkL70bup3fNVspMHUrvpc15bbBflpFReA9Tu+wL9ZhXb6tJ64krPLPZuTZJ02S7MX/mn5DccS2/PDtL2fDCn0ARLSVGtDjNf/g2iUgHqbW8xqWvXep1tDGl3ifnL3ueX/DPCENd+tMmHpKi/NM3SdX/jnp/26FWGU5ILkj55vzVN/8HvusRR2yRG3hWVH4kUJ7FV0lrVtV5KONRD4HPPi8i63y2f1CriIFIj9etQMMkzzAFTg2RARhTlXKLZr+K1xGj75N8Zw0A7HMPxIx6VY89h6pwLAYhHxlh64FPoAt5WGaPCDp34qV+hsN9RwLG0H99K69EbnARFIUGBxDKrp6gcczYAIye8kqXbP4O1neULZY8BNcitPYwo69hL+XXHQuliVxkpYWRghZe4vMKfd1xZEaoi7f0Je9mtbqNCxATbdAmBFbMNqxrGPqTV3aSdOlG+QnfmkSCr0N6cVistaD18I8WDzwZjaD1xo+tTg+uLKlQtmtHq9Z9i7My30dv3OJ3H73b3KBOuyxQcPGwbc1Rv+DOy60+kcc933fXmHfzt14YV1m7niTuY+/rvE5UnaD1yrXepSiUZUA2sbUD9vq/R3nULyVIdOjU84UiZsuDJO7WbP0Xthk95XXHaksClQaAhwdFaqlf/s09qKLjtfLDLuYSgPArNpT6Nm78R4H5JcLTyM9pfjsA2e3SevMOxeMFrWqOM+78aRVB3jlvGtEmkz2qlj29FYsWkex5U3b2LVgisrf3ecTwTnrb7ngFHelM9riQuVqNc7LalORDQNTiq41OBsJKRSpfUc1t/JgHcB1P9O9Ja6eAWkui5++3XabYh0DLiKmFPqhtAmnwwBuecNQE8zrOOYaAdjuH4EY9osD9l8i5Ll4BlSvil7mwdkqV9sN9RWJvSb04HpnLivmOsq5Ts6CLdhcfITRxMZ/f92H7H63MBN4FLtdB69BY6hz5MZnwttbsu9R7KHobWXlkFlm7+NCaTIW0t0XzkKjc5KbFFJB96vnNf+X1Km19C+/F7SKtzfq1TXV3ITfBgk3nmL3snZmwDvV1biWXFnL7oJDFSXZbAdh9g32ffAFWc4UWB0MN+BkzXfvQ22o/e5qtRIiEXSb/YE6pSaO+6keYTN5IuEiZluWbvsCU/7+y6yzlYVSSh6OJ9j0mlCusBRUj6ezA5R5JJusIIFi2xreJlIJ7AJsmAjSQYyqnYEoEBrttmpB0gwcfbEkbQXhJZiQbZvqsSbYxfj9iz0EUPa2MwDXdAM+KSBdvCB38jDGwKrheZyvdNRp6/aIFVTmRid0/SjlT6eu9VBqU9/y7ByEIZzEoU03e7pzciIAwKb6MowZJ8LvIjH3Dl+0aqXpMV5EN1zppIqjmI6qJjXFKQ4GRlEmyNtl8GWfNqQNKFvpLoAnL/rGNoWDEcw/EjHibOMvbC1xPliizd+DnSft1Dd37t1ElcVZPPUTryDHq7dtNdesgFNe0ndSEawfV5m0A7R2blOvrVndimi4bLNIRarYFfOUdN642aUmiVrOzlqnwvi5uErJvgjJK4lCWrFZP2DgvL969MVStyE1OAeAKihpvEbVcm7TF3DDpA1klY7DwenrQj+HV0gSCFEihZbRpVM5q25P60xWyi6u6JKeP749prM0WpSJbwkhqThok6KgghWCZxLwMCF5wLUjVbF3TS1FXJyg5Wsptqp6O8SwRU9mRGCBKYgjyj2FV+dgkXIEcI/Xhkv5EkO33CusA9SQwSQu+1TViMXapjldSYPMFHOCtmIAX3HWvkPKUaNyOOfGW7Lhk0GYgm3X1NtRevz136mqYYzlGTLlORCjmSgK8Vt0qehIRnRTblXaVyEhi78iyFuOVdpHruWZNxvVQz6ipSXaeYMfl9WeRf62fLck/n8C5UnrGu1a7IhfRdBnyP11pI7NCwYjiG4z992KTH0nWf8SYEJi8TXmugWtCeUr1L446rg02dQMZGqk9TdN+zLaDSpdd60jF7Y8iMQGea5exbCYbehL4shUPXBcqo4D5Ll3CEJ5GpWHHmMUqWUlceDUgdOY+UQNSR6tRk3MSeNN13FfqNxtz2acfdA5PKBChSDDrCRE3kHKXSUFlQlId4StYATWXi6+OgwDhUnshEnErwRaBeL6PJSICJcQvMd+Q+GAma0hdN6+E+WMBMDdzTrFRUAsGmUpGZWL6j0KVKq6wLXN6CUKoyqyYRDTmPCccST/p4prlV4pJ8V1elMeK2laqkpiOBcoAtrk5cViVKIimj6Z6tyUA85p5n2haymQb1gUoOBpINRSpaA/vTvnxZrlX6tPr+6bKLVjW2CnWPECrKTjh328VD09pnjUZcMjPIaQB5vxV+jiXA678tMEOwZ4Tl5iMdcHCCg5h8kNXnDL4VkZncj6g4RnfXg15e9lw9GIeBdjiG48cxVO6irkeKGWofSSsIydBNHCCyqIwzSOhBqtWfVhJ9V71gIRGJCODs9SDAcwoRWoIJgZXeWlH+XZPj6MRZl3NWLW43HNeM4xyOFt1+TUuCnUxA0QjYcbetnXfH6jfc/hiTgK7Vi5o9DJhk+N6dyH8Q9mhfk4YlfDVtC7j+sZ7nrFRnsUzUeRdANfBESpxpyfyacVWkP27ZnV8qjGu/Pqr09LS6Iu98h1MJlrZLIMa0wjGtsHWtJEoGCeLC5vYB2eJZteo8ZeckcZGZ2lpBCrpyHg155oI4DP4xGbd/i5zXEt5Fy7+DWoX3wEoQ9cFTWcFS6UVGkNQ+wYdZqnUzIs+lAxQjMivWkizOusUixuWeRPKsFZrNQXZqPZnswbRbt2IbLZ+A+N5yBZcUkGPk2NdBFFG94YvYdjtA0akL+kbg3vx+xzJ2xlvpzWxn4aq/cxR4IdSZnHtXKYIZjZjc8vsUN7yA5rZrWLziL0h7EOflmabu78WV0DOHMfWzf4qJMyzd8Hlqt3xhOcP7WcYw0A7HcPyoR+zgLKrIRIRbfUfNKJTAoxWsTP4mi7NO1MlXtbcSkDwc2HITbr8+cMwB9xpiYEq2X3I/9tWRBgepdnRBdTISTLUC67jVS2wRkga+/0mEI11JT5K+JAOaMCgErdUKQEsq10lXkcUdp0XUxMBCIEmphEIZ17OEskNRgJZAfMoo1UpsoMc4aD5vhW1MT5KOCE9iQgJZuohPbIy02G1PgrRUpCZx98vWcRC3Vn+S3FgIAcMGPXOqEKQFkgiTizDjfc8SJ49fHN0/Q2soHHwM/cYMvad3Ozg1AyzK+UchgcqMbaK4/xbaT91Ob/rx0D7Q90KTrShiZMubyEyuo3rzZ0m6Ty9bi9W3NdqQmTiMqVe/l7TXYu4rf0jS2odZFapfn+T0YOLlv0Hp4BfRW3yKmS9f5IKiVrdlXBXbdsS7FS/+a6JMgfb+9zL35d/1iIjXxCbuXCvHvoaRE37O37ilGz7jF2jwizDIcxl78S+TW3EAudUH03r6ZtoP3hYg6j4eGYpGJihueAEApcNezNJVf0sm33H3turevbjsfq+yBx2Mid2NzO93OHV5v5/riJ59kzA+/OEPc9JJJzEyMsKqVat41atexbZt25Zt0263ufDCC5mamqJSqXDBBRewb9++Zds89dRTnHfeeZRKJVatWsVv/dZv0e//MM+34RiO/wYjlclY2bbKaKzI5zrZN+VPwcGkuqi3aePM32t4oosPsOACafkZxxy0NBRxvp1lWTXtV3ARuYUZx8susK7Ks4suuFog6UGakfNWgkoHknlXGQ5qCm1Tql0lqQhz1VQHzm0JokSCnvQedfk0IzB2XHTVsZeh2LAvWvKn4c7V5LTXWCYaWR8qrwHY0LOBBarNrz2Zwv4nuep8UC9bdNdN3iVFmVUbGD3t7eTXvMhXwakkNhZ5NnV3r0df9FZWvfVjlI45y/sT0wW7ECpQU4L8hk2sectnWfvmL5GbPNHdM4F/PXpQdO/NyJa3MfnSD7LyFR8js+4AVzErOa4AjEpSVsiw8rUfZuyFb2DlBR8iKhSIpiAeF2REhslB4aAtjJz4WooHnMbYGW93z68tx89DtFLg8ixUjjmfuLKC7MQGypt/ylXVdalQSwS9dxkKm04BIDu+kczkWm+eYQry7Oru+uLcCqKMy2Iyk/thS5KY6bNVfXkf6IWoZvt915u2A+8S+MDXn90h2/XoT+92z1CRA3nGtgbJzALtXfcC0HrkJmyvQ1SERORhNnIa604Vmg9fS+fpe+kv7CK590tEkpQtk8n9O+N5VbTXXnstF154ISeddBL9fp/f+Z3f4WUvexkPPvgg5bJ7iu9+97u5/PLLueSSSxgbG+Od73wnr3nNa7jxxhsBSJKE8847jzVr1nDTTTexZ88e3vSmN5HNZvnQhz70fE5nOIbjJ2PYkPmbQdKRwqOqTZQJjpxUPRoIcRWxzcj26tykDk8dQpWn/1f4LR7YRoP7CLDXnVdUKMBIF9tOQ8+1gFsGTAk/ZTCMkJ06kN7cNhf5tYeo+so+nrFaOPgMMuUJmvdfiWdn5R30GAH9vEsc4vG1jJ30SyT9Oao3fxLb6bnjWzysnHQhrkD5hW+gcvTLaT5yPUvf/Qd/X40RuFOh1+IUq97818TFCWoPXkr1pk85iBYXXGwW7ChQg8qx5zP2ov8PgMUb/5bmPVe6oCnB3BTdhJzWYMVr/hfZFZuAV9CtPUl/zw6XrGQJPsNZyKzcxMgJFwAwdtav0nji+646lIRGiU9YyK8+jbjoSJ3Fg8+ive3OQFjKOlepSBymsisPddcQZ8mtPoD+zu1Bq5y463EtgshLuUwmT5SNg5xKAqFFZDpmyb+iaWMxaE7l2dpaeI/aO++hdMSLsUmfzsxWL8WxBYHT9b1sQf3urzPygp+ls/NuegtPuR6+VIdp1/XOiaC7/WFqt19Kfv3R1G7/Yuj1Z10QpyOJRA5qt39DZFMR9Tu/7qFnXQPXlARlMTB/xV/TevwmerWdzsiiLNtqkprKd8opc9f+HmZxFFtfcl7YEdh5x2K3iZCrDGRMnfmv/i62Cxlt6yDP9TlUts8r0H7nO99Z9u9Pf/rTrFq1ijvvvJMzzzyTpaUlPvnJT3LxxRdz1llnAfCpT32KI444gltuuYVTTz2V7373uzz44IN873vfY/Xq1Rx33HF84AMf4D3veQ9/+Id/SC6Xez6nNBzD8V9uxCNT2H6PtFUNP8zKL6WVCqcPcWGc0pGn0Fl8gP7izrAajfYTBeajAMW1Z5FbcQS1R79Ff+4pvPzA4IKSQKPxiimmXvpuSA3z3/sISXPWk218T6vuemqVzRcwfuJb6S0+zfSXfou0XffHtRDIM/0cq37+r8iMraU38wjTX7zIQ9K6tqt6Hhc2ncaKl70HgMzIepau/XvPbo66jr1qBAofPfWXKGzcAkBv13ZazSv9tVuLJ9b0a1lGX/A6ACrHnEf9pktI0tlwX0WCY0egsPIQ4uKEO5d1J1HNfCqs6CNOTZqsxKvXhsczuc4tp9fC9TEty2QsRIH1YmLrA2ZqCOxtC0ltjqS1RFwcozezPWhlkYAkVb/tQ+uROygf/WpMJk/rsZvcEmw5YfI2AxnLlKF23+eISu8gqe2h9cRNnpHrVzVCEo5Wl/krPkTxyJfQeuh60mbDX39cFhP8iguM7R33M/uN3yczuR+NO7/nCXimgEu6DC4p60Lrse+xb9fDWNvBlmaCprmLc+6quGszMVSv/RzV6z+PKdmwBOEY9NvPeA9LUL3xU0FuJa0QXeOWKCAstt2ndvuljsAlbG/bJxD11MHKupvb2n6Tb214v++YsCRgG+wMbgf9Rfd8lLglaI96aJOTglquL8UdJ46FtPYcxv9Rj3ZpyWVEk5OTANx55530ej1e+tKX+m0OP/xwNm7cyM0338ypp57KzTffzObNm1m9erXf5pxzzuEd73gHDzzwAMcff/y/Ok6n06HTCV3narX6r7YZjuH4rzDKR76YqVdchO132feF3/Hm5d4Dd0AIv+oNHyC74gDSboN9l/8PklzVs0+9ZnQCslMHMnn6RQDkVh7Bvkvf6ZixbYIWVFi1I8e8msKG4wAYOfk1LH7/E47xqdpEK38iKB/kDC+y4xvIrz6S9vbb3DH7+NVp6EJkxsiMuaCUXXkoZDLYVj8YBWj/2ECUHfH3IsqPOMas9Hj7AAu46nYM0ta83zapzjtYWnvSE26StYtA0qO7+2Fy6w6nN/8USWfRLfIe4QKCVDIUoTNzL929D5NdcSCN27/uINaSwNxZnHuRaEnrt19KJr8GooTmE18LhvUWFzybkkgYmP/2hygf/XI6ux8iqT6FWS9Bu4GrJvPue2m1zvRnf53shkPoPH6P80mW3qXN4OREksj0lh5l7z+/GRNnXVKWFTh6kOQj1V2ncR/TT77D3e9FArLRl/NQQlsO2k/fTmvv7YHMhtwjIZTZGl4H2n78LsxTdwUDETHosMrOVvlRBL2Fnfil4rSPqixtQVWscgOsDS5euh/RApu83LMirn9fde+wbeAtJtXq0bc2RqXKVSlZRhCHRQLhTwOrRjVhp/uevTDIvb5WpFzqINVr4IhSkZD5OjgXtJWyvxnIFxzzudeC/JjYjS7yrOM/HGjTNOVd73oXp59+OkcffTQAe/fuJZfLMT4+vmzb1atXs3fvXr/NYJDVz/WzHzY+/OEP80d/9Ef/0VMdjuH4sY3iIadgTITJFijuf7wPtLqwgCfcWIhH3Xsf5cpEjQrpQpVoFPp9XCUhkKc1STiA7TvYbhxP8FHWMVnoN3b4TXszO9ykqZNXUT6QoNjafg3Z499Av7qX7t6HPelHK2VluCbdGWpbv05x/9No3H851vZdwGgS5DkCMTafuJrsnfsRlSeo3vEZWC2BtkDQVZbAFmHp1n+iO/0EaXOe9u7bQ+CWysaA77HOfft3yYweQK+6A3J9d1ytEEVWxBxYWsx89jfxgkgzUPloQiBM2aQ5x9x33o/pQm6lg7ZtROhTxlI5Weg3drN06z+FFXmUwCb7HrQLTJqzpDtnXdBp4fqnwlb269VKJWRpYXst73xkm26/Rqo028QvjGAm3GcWueexBHElegmEbSEkLH18AqHsZ9osJ2r1pYJXuY2wgk2BYGoyJwF1AsfYnpZnpEEWfGLmzUA68n01d9BAiLyLmljJszEq69GeftsFQG+EojIlJSIl7pxNTs63LPdYP6vgArrKsbK4xQnkfkVCmPPJge5bWOXxqATyNn5Vol4fb/HZaTgN7XMZ/+FAe+GFF3L//fdzww03/Ed38ZzHe9/7Xi666CL/72q1yoYNG37kxx2O4Xi+o37PdygecCJpp0Hj4euXfWatTJrSW1y89iOUj3wlnSfvIOnvxpYco9fDXGWgCr0dO5j9/gfJTR1O/aErHPysbk4yKVvjvtd48CqS6X3Y1NDZea9npPqsvihQaw1qd32RxqNXYDsNZ3ihVYoyhkck2PVg6bZ/coFGg7s6GBk8+9a5HvWp3vvPfgUZIwGRBmESbgokanu0Hh0wrtdJXZjQVqoNUwTKHXoLD4fJveuCg1Wmtk6QqilF9qUwvDByPeFJ5DnK7u3NyDYDk7UPnlLl+YXRtcfeG9jvoKGBELuMVl96rCyOkKbnk5dnpyYX4kalwdDfa3ALGcwTDCmELKUezJREf5vBmV1oZS7vHSl+WUDPC9BzE5lKVHFB1LbxdoX0pJpcASziyGyiHVbrSkVK7EA+6Na1xVXV+hw0KVOjCr2XBddWsKrTFma4JjGkOGQix7JVgZTBry5YnnmuCZWiN3mCM1VB7nsLb32qPAMjiY1aZHonrGq4n4kiN4WAqDyX8R8KtO985zu57LLLuO6661i/fr3/+Zo1a+h2uywuLi6ravft28eaNWv8Nrfddtuy/SkrWbd55sjn8+Tz+R/62XAMx3+l0d5xL0//9c8TZvswjJJyUqAArdmbaX71Zhc4KjLBC8yIdcxja92k09p6M63MzagLkF/9RyUtyL/70H7qPvf3Cj4weXakSoq6uEojv+TYrqIfJY+DJjM4dx3tW2lvTXuc2vdSGU0U/m4TvBlApJCf/vp2pfIQ5x4zIsetS9Dp4Q0nbOK2t31XATOCq1CUuTuCX+Yu9OfC/fB9SzFm0MUIEHemSHrAlAiaViWfaRCWAOsN8rWCln35QK+Bt+Tum2fMGoIBQzN8x/vrNuX/wkQmJix6HxP8irsDlWNRkoy2287mcMsQVuV8tKpTuFRY7V6X3Ajoim3LfY2d6UkyS3C2Urb6ot5MeVbCgjfKJDcCsWplbQnr0uofJQwlUqUru10CWn7EGZl0VLomjGsUFo8G7l/bOVOB+5mVitUqyjBoNGEJ2uay3OOWJEZZSeI68i503L3U4Jk2BvallybJgB3BQd3PUeLzvOQ91lre+c538rWvfY3vf//7HHDAAcs+P/HEE8lms1x99dX+Z9u2beOpp55iyxZHetiyZQtbt25lenrab3PVVVcxOjrKkUce+XxOZziG47/o+DeCbDzQd5IsXAOsrQvSOY7vlaWqcy3hglzkJjivy+3jDe79JKe2ejmBbBdwkO08bsLp4CacCfeddFYm8ApB/qBOTQPaQ09+ycnk3gnnaXt43a0ZgF4tbvL0Dj0i47Ft2U6r0AU3+dqq+65fjk3kNaj+d1HOacztL1U5jMCtvvem8HNeJnSBLzXoURIot4VfyYeswKcyuVrr+qUmG7YFAkktdtdCl8D4NRJ8VLssrHAjhiG2IwG9gk+K/MLwFbyG2i91mMO1CIz0bvV+NQauR3uviZColI0OvprzcHkU/m/rBBhVAlXSk8QkJ++X3jsNqAW5FoG5KRAsDEfxsi+y8i4L2mL0fAyYonF8Ba1YxTyj04GeVtIpZKcOIc6sISrhfb7tQBKlLmCZ/Vcycvqrya89KFyn8iHEyISsO6+RY17NxOm/STy2yZ2jcX+ioquoNWhmJtez6s0fY9WbPkZmcj9/7hh0ESiHQnThuRoYP6+K9sILL+Tiiy/mG9/4BiMjI76nOjY2RrFYZGxsjLe97W1cdNFFTE5OMjo6yq/92q+xZcsWTj31VABe9rKXceSRR/LGN76RP/uzP2Pv3r28733v48ILLxxWrcPx33NohWUhtpCW8H63uqA0Rn6mchFxplFbOTWaV/s4FsGvJTtwHO8Rq1BnDxccs/iVXRiR4KgZvwRtP0FL8LFGAo0Sbap4tyqMqyAMLkhYzf5bBNiuT9CC1tx5KOvTai9RK2SFEfX4Uk2ZIn7FGb2+VI0KpG9nhIjkqyCBe60G3LoLLNG4HFOrdPAkIlvHk2x0olbtpZXqXxcrALdNpFpiSUI8IqEBXclVCq2L5tSIRtNrZfWeqgwoj4faLeHZAz5RIC9Qai1HXB4n6Uy756znVyK8P1KV5aaOwmTzdNt3uXMcl/dAkiJbBJoQl6aoHH0+vb3baT1yLdr/1wXSzQq8DKp85KspHnQGjUe/Q2v7dx0qsSDvdBLOIRqdYOVrP0RmdDXzV3yE9vbr3b2S6jnVBGERKlsuYOykt2KTHrNfey/duYc96c528PKftAUrX/1BMmPrSE9ss/eTbyPNLAUZlSYsBciv38zY6W9zt3BkPdNfe5d77kvuunVloggon3ge2ZWbACgfdx5L3/+ETzyjyFXvdtAc5jmM5xVo/+EfnH7txS9+8bKff+pTn+Itb3kLAB/5yEeIoogLLriATqfDOeecw9///d/7beM45rLLLuMd73gHW7ZsoVwu8+Y3v5n3v//9z+/Mh2M4flKGau400DRxk0YiVafCa8rwzINZLRN3SmBiavAZI0zSzXAYI0xJqoQqaQDmVK9jP5HrubUIlcBA/8wb92vfqyyBfNBQYTCgLsk5K0wt0CY1PHtUqwtdnMBadz1G4cqWnGNK8KyVAGirA5V1hAtAOWAVrhdYd8c0hYGJe9AVqhBBP3XogcKoUmn6JKAHJsqTXX0AvZknsc12qIjr4VnSdIlGbu1xZNato/XY1aSdjjsnvZ+qRy1BlB1n7LS3kKZNand/Bht3/Fq4dFiGJpQOOJuRk3+BzlNbWfj2R92HGTm2mjr0wJTKrHrjX5EZ34/6Q5dRve3jLtDmcFW/nCcpFA99IVMv/V8ALF3/T9Rv/7pz1KpI0K/iGbkT5/wGhY3HwDEw256mO/+QX+jBiluT62FP+OCVXXUQzW0/gKYrC81KSa4Eai0cdBLZScerqZxwHu2917t72BeoPYdL+JYgv+oot484S27TYXT3POyuRxMkiVo2gqg47l6HbAFjClBfCkvlgYe80374RbG9hkeYMAQv66K8swsPAucD0N31oO/H2rbkLANVrOG5jecVaJ/LQj+FQoGPfexjfOxjH/s3t9m0aRPf/va3n8+hh2M4frJHzk0qyRKu2tIgoBWMEmtkErVzhGoW0DVO7SJu0kvxsKJFILoKoY+ohgOD/TLVxSopSaQuViBTo5IKZYQKJGyX8NWHrt9pypDGYCbLxH3opw0fZL2BgQRjW4Iok6ew/yn0Fp6k33/KuT9l8Kb6to+TgHQhf/ALKGw6nvqd3yWp78CzQbXyk8BnRouMb3knUXmUpbv/gaSz20HW0vv111+B4v5nMXHW/ySp7WX2a/8LGy26YK6JhPacU8OK13yY3KpD6c1tZ/qSd0Eu8UsQeq/qHOTWHMWK8//YPd6VR7J4w1+4Z5UVBAGBnOsw/lNvoHykkz0mtVnq933VJVpjcn+FXW17MHraW4iLY2SO+ika91xOt/6I6+MrCUgg/WxhfzLjDtosbjqdxe993N2fCXdMCnh0Ilve6F/FzNRG98wHiEB2oCdrMiEs2DQTZDqGZf1eW26SNOaJy5Mk1X2Q9p1lZR+oEVbhyUBv/n7Sdp2oUKH96K3uc624tVUhLYDafZeSmdxI2lyk+dC1bu3Y+XC+gCehzX/7TygffR7tx28nae7z74opSyIrLO3ezOPMfecPyU8dSO2e74bnWXLP1C5BsgCFInQeup7+vqdIetCd3kFUDomhyTkiVNqGuA9rK7B9iWcd/0c62uEYjuF4DsNIddgy0LUBmgR8L06rwyzEuVXE+XG6jUcco1d7cspEFQaxSXOUj34p/eo87aducfBpX4Kc9u+EqZlfcSyVY86h9cRtNLdd43pNGlQZPIccky/6X2RXHsjSnf+b1sM3hpVgjNu3zTqiVmH/E5g88/fApsxe+od05ra6ZEArtApu8mzCxCt/m+KmU7D9Dvu+/E6S+h5XfWXx8h+nw13J1E//HiaKKWzYwr4v/ZKDj2WyN5Pu/3YeSpteRungFwFgW29kYeefuv008ab/SqCpHPNyTJQhM7ae/NoTaD36fRcQFRbuSMJiCuRWORem7NQBRPEIqV0MPeCSVN8jzitXR5yfDBVcDkfuWuG+YxuQ9mt+27RRC8lVJBO9VKuk0N29jeJBJ5O0F+k39rqKK8LJhPLu2k0Oer3H6O57mNzqw6k/eLl/13xLQPW9eajf9W1yaw/FFPPU7r/EbSt9T5OXd1Gg8YVr/4qRoy+gu/QE3ae2ugIu54LXoJ+zTTrMfOk3yK05is7Oe1xfxBIWF7AuyTIZSOq72fvPbyPKV0j6+/DEKm1bSAJKCTpPP8C+r/yyg/x1P5oYgG8HGAOd+l20H73L/XwEz5L2vWrpwdoUWg/fQTu5w2uGNalUExML9LpOJ9vducMdqkIwMoHweypozI+kRzscwzEc/4FhDZNn/Talg06jfvflLF77iUC8gVBBdiA7dRCrf/7PMZkcS3d+nuodX0AZyN6xSSwbx17wPxg57lwAZr76fto7bgt9Vs38U6BvWPEzv0uUL1E87IV0n95K0poLkGUfz8bMrzue4v4nAzB69Otp3XejO14eT7oh6/yNCy/Ygold6VY46BQ6C1sdI1YJUi38up3ZMadOMJk8mYlVpL09rjpX6UsRIXoFMM6Y2EF5ChOrNCgD5CDp7/Hb9uf2uO1EI0sTdMED24fWjhvJrTqcpLVEd/EBTNGRzTxkXpbbVWtRu+MrlDe/jOaj15DWF91KSBOCJIAz5O9D69GbqE18jczIOqo3fiZ4KgtcrXIc8rB00+fpL85h+02acz9wQXWvC8JGNcMt9925b32I/AFH0avtIFVzHiVrdeQ5NMFmOkx/+Tchm3EZlsLLDQKRzLhglfYWmf3qHwaPYAkWCOt5sJ+cVPeyePXHwrV0CA5XLXyLwDQhKczQ2nGNe04K02trQ4lmsbwPNEg6DRdc5R5Sd/fTyHn6Zf20StRApi2NvvTttQduwNQISxP2w3OigPfB9gtQqLyo7PZhlJC1wkHYiUqjkO0TR+hT6ZJNxF1LLnVXyJ/+3TEMtMMxHD/ikRlbRfmQMwAYOfGVLF77z4TlXXCTkbCPc6sPwWRyAORXHe2CcR4yE7j1XYVlSgpxadwfIyqNh/1FwLiDk52cx5J2m0T5ErbfxRZ76HJ3fhUekej0Zp902+ZKdGYedFWOykoGNagWGvdfQ/GwFwGW1tPXOchSqk0kaKiJwuJV/8jomW+gO/8Ince3+kBgOnKOCzhnpNI0cz/4EwobjqO59buhMpcKUB2OGIX2k7cxc/nvEEejtJ66KchZsq4SsSmedFS/7Wu07r+BlDr0Wo6VbdznSkBSG8mlaz9N9fZPB3at3G+TJ+gmDdBNqd70SbcaUIawRmkWR8RKJUCNgl3s07j1Mk9kUnYziQQhMV1wQbpP5/F7w/PUZEC3U6lNTj5r9j0j3arESmBR23DvlspjPItdyD2mJMeIcQSfHiEYy7ukayEjxCmKeEcqE7kKUgnBtoODrdURSt4fUyYQ0erhfHxbQKtg0XpTJZDTtA0x0J/1563EOGG2mwp+tSdaITH051GSwCvXYatSzY86w5JUr9uIrnhAjzw4dC3a51rRGvtcGq//xUa1WmVsbOzZNxyO4fivMKIMa9/45+TWHELriTuYveIP8QJ+ldDk3MQVF0dY8dr3EZdWMn/zR+k8ea+D7US0bwcCXTS6mvEXv5WkPsfCNZ8iivqBNJUV6LIIdidkCvtROuQMOrvuoTv9sLd49Itgj+BYpRnn1RyX1tDd/RBEaYCrx4F5ArsWiIoZoqLFmsRVWRpgyrjJTidV0fuaksCVXakuwPeUTR7SgpyXSmvyEgilZ6y9NauwsBKdMlLxaQWWl8BYhnRark/Y0kbh2rarDL2BQ4wnqhEDa3FMa6kQdZEB1csCfvEDb4wR4yDeAqFqLIPdy7J1Zv0CEg059wLLF4Lv4IlPvu8+Ks81xRlfKMGsQZCdKBSbyn0Dt4Sfwbk5qSmEvHNGgrLvwdYFkVBJj0iyVM9q1VBFTTUiCXri4mQUOu677U0Fv1qPVY6AIjmj+AqdDA76rcp90+eh705fkhbR8foF47W33Q7P3SqxUGBxm0gysMDy6l34EP59Feg/EkVAPOWSp8g46VRfwAW1U7VieJHg7IhHR0f5t8Yw0A7HcPyohwFTypIpriJp7YFs6l13yBI8aztu4tOg59m7Km9hAJ6ruQlkcBURnQC8OYNAqbZB6F+BIzUV5LsKt0rQMZH8XE0edBsxUFDpjbJljcLaRRccbYx3KmJWgoQaL+QE0kxkW5l4jbBZTSOct+0RnLSMm7CNSJSsVm4x3rxC74EPdgUn5yGVQDsp56LVUU8C55I7B0Ta4teazTrYOZUqjxzL+pi+KmxLciEVqhmT+2jwel+sVItGAptW6f0Q1MwYwTtZK2e952qSkXPP0eAqMSLCsnKD5y9SGJ/EDe5jkGAnpiemgpf5AH5heaMsdWWWlwmaZT1HMfagLgFtkOin91tNJAYjjZLxVLoklT8z7pl5/a4Q8rxOWWOZoBtG+va2iyMQ6u+HcUmCiZze2i/SPngO4/JMlUBXBNOCfBG6qtsFopLr8/aXZLuSFOIt9+yeS6B9XoYVwzEcw/EfGBFElR5JZxfk0gCF5lhuByj2cB5ebOEhWA0SZkomlkjmDJWpDP4m64SKfL+Hd3vyWl2dvNTZJoOTFMkEqeu2qqRE+2kINGhy7pgW3Ao2fTcZmVgm3ppMuCW8gYTRgKz6yi5hUQAdKh2BsI6tBt+6BFjRzdJ3QSKakMppZODeCcEolX3bOn7hBX9PUrkfPRdwrQYsDVAaYCTA2a4LkurW5eHRVvi7XSIEDnCLKMyF52x1vyrriiT5GKzO1YxC4E+VRJmCe44mIjgrJTj3r7y8DyoJ03aAws39gX1rRacyM5VGiZbX6vUMbteRa2kSTDv6BAi8LOcnEK5/t1vh2EZZ9XpvVCuuaMCC/Ft6y15/rvslIsqNuW1FZ4w4bpn2wDn3ITu5P/nDjwl9e33nFG63iBtZkcpJP0vpqLPc90vQM/hF7xW9sR0obX4xK17/YUpHnOtJWs91DHu0wzEcP+qRQmQd3Jk2cMGghasglIijE21ZqguthIR04uHShbBPwGf5RqpSb75Ql4CXl4pRe2eiRcyOQk+CF1WCSQbuc08I0SCgAacs26uLj/QvU62WhbATdXFGAFKx2aJAjKobtXJuSooRSNMomUnhXa1k+jhNrsCxRmUpSOUhEhGVDHmmsvbwFD1QnWnBXbuR5MAuEZb8E5mR7ztaghGHQptKopEKyuQlCVhy+7cZt62a9RthQ5PBVXJK3NGf6f4GE6deOEZcgHSRQIjqEaRGS1LhKnSuvfFFeYbyXixjJOu7U4rJlDbSr+3Gxp3ArjZyblE4Vnb9YeRWHEzryetImrWw5Fx+4L5GYGyR0eN+ESKo3vR5rG25Xrw+azXV6EDhkJMZO+MtdPc+xsKVH4Uo8RWp90WOwORiVrzyj8mv30zz8WtYuPIvPERuNRGQ+5hfv5kVP/dBjIlYKnyO2o1fDNdckHd6zn137OT/j/LRTnY1d2WL7t6b3fFqeI/wTA563SxjL3k3JorJr9+M3XET7faSJ0Y92xgG2uEYjh/1sJAsEvpOVUIg016j9uwiAhwqv+gK1ZkCznVH+4IIPKYaRA04Wl3lJdNPXXWo1n42hq5WD0o2kQnDZIB1uMm7IRO7BnWtYnIDf6S3SEeqx8jpDL0NYkLoFXbB1vDQttFtUgepMi7Bc57gaqVs565UcSl+hRfvbqUMW5l46cs2LUIlY3EBrkwwupCq0jakehY9pdFJuUSA1mtAnMNEBkvHnbcSmFYSKqwsYCMKK06kv7SHpLkzEJmk7+mJPQZy6w6ncOBJtLbdQG9me+jhSu8WgWXTboaxM95GPLqGpWv/maT2dAjKJYJ5fwr5lccw9cr3krZrzH7/9+jP7gtJRlfuQwZYhMmX/S7FA0+mN/c0059/F7bQWR4VJFGJR9ax8vw/xcQZigeczsy3fie0J5Kwnc3B6AmvZeQFr3LPvN+mdsfnwjtmCItHJDB2xi+RnVxPdnIjzYevobPzrnB8hfRTiMsrya/f7B7LQS9mIfsRTCw0fOkfG3GOyq45ECNN69zqg92+BI42iXsH/XuXV30bmEwR03Hvb1SQ37MUkizQTkgbc8Qjq7CtRVaNtHm66YvuZx3DQDscw/FjGDaHC5aDQVYrGP1tzRFclISEoutjemal4V8zHdVwoSCVnJJYsoTVSXA9N7VKtG0XuKIxp6jpzbnve1OADN632Pc9U1yQmhjYToO+9gtj+bcyP2Wi9GxpC3bCVagmBvqjxKNT9PZud//ODcCrqQS9LFCMKB52JrbVpP3kbV7HCCwLnDZx6/eWj38FnSfuo7XzGhfcZWL3sHELiAzjZ/4quTXHUr/ny7R2f88hrlJJRilky9CpQWa/g1n5qg9i4iyzV/wxne13uXsIAYqUADL+wndQ2XwuNumx76vvIlna4e0XtdK0EZhymRWv/WOibIHyseey5x/fAJk0BDCLSwxqUDzyDCrHO7cik4mZ++rvB2KTPh8hjJWPO4+oMEJUGKG46Uxq+y5xwVUTEUkqTAYKm04AIDu1gbiykn5tp3t3RghL0hmIRscxsQsXcXkF6qhkVA+scG8XbFtLVrC9Tui5dnALQWj/vQS96SfITq4n7bXp93b5AGyUjS2tjqQzTWf3PeTXHUfjgaux1cStWaxJTBTOofnY9ykceCJRcYLq7V8MFbeYWAw6hi1d/wlst0HSnqV5/zWOzNWFTAXi2LGQ0zZEmZTZL7yH3KYTSHfeR9zquB4tz20MA+1wDMePY0if1PZkchrF9+p8daqwsrrlVAnuOiUwjVHSvjbFcNCfEITU5N2mEOUnya08kM6OrU4EWMFNNKIlRPZH11Ba+3IyE6Ms3fp1bLvljj2P7wtqpZLZsJHxk99GvzHN4k3/6JZZGZQG9fDLt41t+RXKR51N65FrWLznY8Ekv4j3W44ykB1ZzeQrPkqUr1C751Kq93zKXcsgA1iSh8qhr2PkxNcDMH/tn9Padq0LwkI+Uv9bU4DJc3+HzOgayoe+jOlvPk43edpVW+KupT3ezOiBlI9wOuSxLb9M+1++59nY3mFIqt7ioVuI8k5sWzroTDq7XeVlaw5m9MlSHnKrDnK7iLPkpjbSqu1wQVnZxMr4TWJMlJFtc5BE0BN2jT4zeTeS3qx/lZLWbOhFN/EWgsqkbT91B6VDT8f2O3Se2OqrYqwLdH6RhAzU7vsKI5tfTevJ2+jP7wYEol8kkJky0N33IEt3f578msOp3v4l9xy19y73Xqvb2r1fw1pX9dcfujwspLFEQBdEejR/5V/RfOQH9Ko7Seb3BTa89lJjCfjtlJkvv49orES60Aw9YO3vKukugpQas9/6fU/AGmRR+151z/09mZtj4dt/ExLZyAXWNIXJCsy1od92SUG/NkPz3iv9czCSwC7zG/83xjDQDsdw/F8eleNfTn7toVRv+yq92afcDxVCVQ1kDHFpNVOn/wbWpsxd+Zek8zPBw7eJ10QSw+ixv8jYcb9Ab+Fp9v7Lb5J2RCOh+5P+YJSvsOYNHyUuT9B+eisz33ivX84MnewFai0deBbjZ73D7acwyeL1HwuSB3WhEi3j+Em/RGHjiQB0d22jue17HhI1ir6NQ5QrMXL8KwEoH30u1Vs+T1JfxEzhlzgjgTQLZvRgonwFgPy64+AmwrqheWANXjcblVb6+xtnV3lilPZpjZKGYrB9N1vbNCGd7wdimE7iQvBJujMk7SXiwhjdmUfdSkPKWu1CUoCWsGxbj91C5cjzMXGW1rYbwoLnWam8wJN8lq77FGMv/hX61adpPXmLrzytEtZkYk4bVeYu+zDFg7bQfOAH7mK1MazSF5GkdB/cymz7fcRTq2ne/4NAUookEGlQzELz0avoPL0Vm3RIGwvLFnO3EuistCdqt36O2q2fc8mKohbSCvCkMJFq1a79AjWtnAdbDiXcMSJ5Dpk+9W3fdO+b9NmNde9JFDupjFWSVK5Pe/ftAX5WOFzbAiovEtTC0gwsakV3Etd68CQ7fR8LuGRVK15NBkTOY7P4ZFGTBdt396VnYFbge5tCX9oLgxWsHURVnmUMA+1wDMf/xZFbdzhTL/tV9/dVB7Ln0//TfaDQWh83SczByMmvJr/2SABGTjufpcv/OexIGbsGiKF80EsAyE5sILf2UNpP3o3KRgz4fmNcXkFcnnDHX3OIC3AdnNREKlUjhgAmyvrDmUwmLFAwRVgkWyqhfn3Gb5vMTQctozBcTUUqb9uis+ch8muPoDv9GEm7GhYJaOMmro6Djjv77qKz5wGyk5uo3XZp8DFWVrawhG0favdeTFQcIW00qd9+uaumSni7PyuyGJvA7Fc/QOX4l9HZ+QD9mT3+/hvwKIBNIF2ssu+S/0lucn86M/cHlqlCsSrlyUG/9ih7PvtGaEfYzgBmOCrPqI27fzF09m1l+jO/FtbgLRP0o1rZS1Bo77yV9p5b3TVXwjamxvJF7HvQefQe2IdHPLSSp+Kep19D1kAytzckYE2C8Uh3AJIVZraHlCssd4vSqrlKqNgzLGe4ZwgsZXVQUnZvwrLFI+jgCHJ9Oe8JOacBiZZvSURyXln3rljkfDUQq/ZZSGpGCW7VgevVSrM88Ixw+7VVAnu9IEmT6IuNJAhJHb8akrX/Gib2ZLQuzzqGgXY4huP/4rD9jv972gu9qmW6SJFg9Oae8B/3dj4RLO6091aXfeag8cD3GDv1DXRnd9DZ84j7QDWR0i+jBL3Gk9Tv/Rb5TSdSu+dSB9cNsEzRaqICjR1XEd0+TpQfpX7bF8PEFBOkG3Lei9//R7p7t5E0punsvg81N/DVwwhO2lKzzH7ld8hMbKDf2eU0w4bltngio7GZFrPffI+bFFvAJMFdSJnJ4+7vSXOG+e/9cbChLBHOVwhaJoswoPc4S8QCob+txKV82LfJge3M0d4z5++NZ/+KEYTuw+lMO656Ut2pwqAjhGvQoCHn4qFK0c0ygpv4JQB5ctTg/zXgS1Axep0WJ5vSnjAD37N4U34fDJUgJrIVn0hFhBVuBhjfnpmtP9ekUDTQXiaDVK6jBI/srLwPGtDBJyom7+6jXYJENMNGApTV4yD3GoLuVqVXwp73xCu996rDFoayZ5qrJEy1u4N/xLQECBW0PvcBzW8iOtofRnYysUsojAb75xBoh4YVwzEc/5dH8eCTya09lPo9V5DU5vzPTURgtOKqsfyGoyBJ6O562GX4g9WDwmFGWqvZEmm/jU1CU8jkXP/I297pBKOfD0KRCp+pDEQmLhM704m0J1WSEmcgMFV1oisRzDa0ClD9b5/grJQTeE7JXQr/laQS0MlSr7UBZpU7Hzvngpnqd61O3CpzSgjSEmEFq2etybsqRHuQ7ibIOSp5B3edpjhQ0emEqxNyRICRFSrVnqkyrfXnSmLTfWmloz3ENFyLJ+LoH7l2f7+1h17Bkdcyct4KDWtlpS0DITZ5+0IlJ6leVhMNTQo0uGu13SCQ1vQeCOJBUb4jEi6jUjT93jhBy5oSSGHS3/awrkqmRHtsdOrW52TlPS257f2yhekz9qumExqE5Z00HfkdyLr3LYog0dbHM6ObcCCMypf6/KthwP0uNiEr8HTSc8mPMe79TdXYJAO93tAZajiG47/MiJ6RHtsCwfqtj4N3teLtusk11eqriF9WL12QHRgJ3vJzL12J8a4+aplndNLR6mMw+Fmc404WzCKkMS7YLhIqCPA6WiMaVF8BaA/U4N2JfKCsEqpu3SySCTYhrKGbQDQSAr6rNiVoKumqjWcxm7IjVKVt9x1bE7awkMMMLqimGlTkHE0GvywaZakcl+T8FEpUPWxh4F6pjGQgQUH6eR7y1fwnM7CfouxLYdma7HNMttHv6X0sEWwZtV89oH21z0ikvJ3iYH9TK1StzLWKF+iYIi7x0gpX+6WjA/dgQfangamJq8ZFQuNtMWOCpWI5nK9VXXgq+63Je6NIhUL4qgfuhqRSGfTeeCMiOF1pYqNwd0eCtBq4iO7WJ4bd8JziIpiRNSTtBWyzExKrZ8LQBjJr15NbeQS9J26lkK/S60KvCbkYun1I5BlEZejWnz3QDqHj4RiOH9fQ3pZIMozIIcgRengV/OScCkyqa3p6r18ZpiJBVjW4OsGrNKLm9m9GcBPgAgFG1YA+6Y5re64yiMXAIRFBvw9AMlOobMhPskpCGuiBqasOdVyPGLB7wrV72DXCO++Y2CUWUdcxPlOBK00Wv7KLXyRdri+Vvnd2BNIR6AqRzFX/cq7z4Vi+n1iR4y7i+8dIRUSHMOkWCP7EWkkV3XVRJkz2Ch2OEBYd6IV/ayJk1axi4Do84UflPAPyG/985uSaC3LcOTz0HU9A0pV7A6Ei1qo7cUHS6vPSd0krRYVrJZCZtgRJayCO3INouABvtPrLyTZtl6DlDz2KZHGR3t5dvppdphOXJCEeXUdx0wtpP3E3velHne2moiGjDo42QLpoGDnhdWTX7k/t3i/Se3q7u5cNd5/MuCSQTciuOYCpV/wuNukz99UP0KvtCiQ95H5LD3n8pRdSPOxceou7mf7iu7FRw7dnfOUbQzQyzsqf/SuifInuvkeZ//K7iXMuUS4VIZeDWsudQ/ocYGMYWjAOx3D82IbVCV8rJZVnaKWhrjkdlrMZB+E/hTIN3mSBigSVOdzEoSQZkTDYJdwkVcRVUglhLVAlrhTARmKs0XaBCvDwrKnIpFiVfS3I8QZs8BD3H/Uzpu8moyhy9owe8otwE6def+Kq1jSCnuhy7azAzjlcsInl+FpR9iVolpzSqLcIZk6C9TqIxnGuPREOBtRgmSHofNt4I3lf7efk/FVT3CEEXe1RDla5ZfxqNt6IRK+z7p5BpgLZCphMkczK/UIwVeg9Q/CVbjj0obDuBAqHnuz2W8C5gqUEQk/e9WqN2Y+xU99J+ZhzXFBRSFiTGe2DNmHkhF9g1Zv/lvLh5wR0QIlFuOu0VYhH1rL2Vz7NfhdeQmHNqcscsKwmVxJIR455PSvO/VNW/dzHyK0/LDhflQmr78i5rHzVhxl74ZtY+QsfJiqOuF63ce+nnccHu8JBJzB2+i9SOvB0Jk57p0sq9L4nBJlQ6tYZzoytITu5nsqJ55BZBfF6ed8ieSZS0eY2bAEgO76O7Pgmf/+NJgN5d0+iiTGifAmAzNhaYomSSR+qdWhp1RwRGPfPMoaBdjiG48c1tIfXkKABbpIbkQknxfsbm/LA9/JAFqJJ93Pf4+rge4J2IFDoZGeKMoHDclgywQXKOsFOMXXHSUdxDk+rCZMlEvia7hxtHW+qb8YhqogblJy/bRNg1YaDuq0ShFQ2YnEBcIqgHYZg+ShlnhWGqG1Ij6wisLRWQp0iuVWbMZWim1ylD2olYHl9ZAzFo85g5NjXYiiF4DFISkpdghG1VzB51m8zftavYkbyy0342wQ0oAiV417J2td9lonzLnIZRZblBKwS9PuQpKOsfs3HWPPaf2T8pW8PZC8NyB0HhZsISpt/ihWvfD9TL/99yge90lePnmQ0AIVPnP0bVI76aSZe+mvkxg9fbrGoSEYO4rUrGTvtF8mtPIDxM3/VZTWLBLKTJntA8eBTiUemMJkc5WPOdomOBiNlJAsbPrfmcABMnCG74qDwDMcGnmsGTDbCZF3wMpkcxDkXXLUiFMTC9iBtVdGRdJZcotHG95Jtx7VGTASd3Vvd+5kmdOfvd3D7nDyCjLwD8l7W7/wm1qZ0dj5Ad/axQLbS5CVx2/V27KB682fp7HmAxe/8NTnrWhTkoR+DHYU4B5kMZH4YW+qHjCF0PBzD8eMamgWn7o/tQTQlQdYMbCOTpVc8SAVhtacqEJuNcGYJoqfUXpMRyNBaBxsb6VVFrXEopE5y0xmA7ToSPCU7N9kyxfEtdNuP0Ks+FYJSgicbUQLGobD+dPIrjqX56BX0m9uxqhcVSFqr82iqwuRJv05UqLBww9/Sb+7GtKTaUtKNQKDlI89l/KXvIFnay/RXfpu0thiIXkLEMjmw3YhVr/0LspOb6C1sZ/5bv046l7pryeNMD3ru/hTWnMjU2e8BILtyf+av+Qt3fkI8AredbcLo2W+idPCZAPR37qT+8DddAqRJgsK8eRg94Q1E2RLlw8+iftc36FUfD2Yb0hqwBjLrDyBTWQVA4YCT4fsfD4mHvAsqZ4nH9/OvTGZ8v9B3hRCY9Lklgc1j2/1AEFOGrfQxU1MjacwTlyfpzz/t8HltJ2gSJGSkzlN3k3YamFyR1iM3+l6u7RBW8xEyWPXmLxKPrCKpz9Hcfm1gyysZqeS+Y4spc1d+mPKhL6P92C2kzTlHYOpLgkl4Fr29jzL7jd8jM7E/jQevCuQ7bbWM4GVBrfuuY3rvE1hS0sZuojHXAkm1/5yV35U+1G77MrXbv+IOWJR3RPuyWcLziKF215eobfsSZlZup6AyqZxvZASpyYZuwb83hoF2OIbjxzBMvsjoC36afmua1r03BsG+/MKbMYHPClA88DTKh/80zW03Ur/vSj+xWSWsiL1hlBRZ8ZrfI7tiIwu3/AOtJ2902yk5ZUB6UTj0VKZe8l5IE2a+/vt0dt4fYOgigX3ag6mf+QPy644k7bXZ+4X/j7Qx5w0FbAysAuYhM7qOydPegzERhXUnMLP0y0FuohW6VEvlY86leKCD7kaPez3zP/gLF5BVkhLJRN6H8jHnYExEZnwd+TXH0Fq8zrGVlVAkPbcorpCd3ARAduIA+o0iZBvhvg7oKKORABGYbDlIUUqy7QI+wUkbC37bpLsYlueDZevGmgx099xPYePJ9Ksz9Gt7A4NZIVyZyLtPPExn7wPkVh1G/Z5vhN6wBFqykmz1oH7HN8lObcJkMtS2XeLOT6pd/2yF8DT/3T+nfMLL6T39GL19jzl0RA0dmqGvajttpi99N7nJw2k/fa8LhOoWpoxjCWa92SfZc/FbMVGOdHrRBTaFgJsErXMXutUH2ffZt2PG3c90HWINyqborsvkoDt3F50r7grMbO0jC3HP9HGwcAbae++Gp+72yU0kSI3nKAz0s3szO31vOpXkwq8IVXHvlu+Tt1Nns6gEO2Gt+/dBj7Poesa6DB4pZBK3uENvzl3reA7aShR8ljEMtMMxHD+GMfnSt1M5+qcAmOn9Ie2n7nBMWa1G68Ke7MVMnf1bmEyW4gEn0Hr8dpLOvJu4hbVqZIIoHnQihY3HADB67M/R2nUjyvzVYdtACwqnnoKJYohiCgecSGfH/b4HasZlY+lFZsbXAhBlC8SVcdLqXIAk1UGoD7Zp8WJDm3qYLpqEVPq3puCIOEnzaX9OvaWnXWAv4SdbIz1HmtB89Dpyqw8mqc/RXXjA90Bt090j28ERmjpVqvdeQvngs2g8eBU21wiOTXV8MDItaD10A9Wx9WTKq1m64/NhghXZzyAzeunGz9Jf2E2ardOq3uj632pckIFIofEU5m76ENlbDqU/9zS23ghQ9RjLiFK232Hmm+9xUSe1Dq5XlEKJSgJHpywy99UPuH2NE2ZpZd5qf78ESWvGaYaVVJUhrLakEqWe+24yPUerfePynr+yp8dwQU6uy9ab2EReJO1hq4RLK8z8wDFV0qMSKCWfCbqg0ixTlOo9N/CZ9F4t8m7nBfERdnGUk9ZEQWQ7nYHzKTwj+Cq8rkOQBe8ClbhnaNa74xu9b0oOM4QVmrQPL9BSvwORdUoAa2Ghj+udP4cxDLTDMRw/hhEVRsLfi4JVlnC/5Nr3igGbkjQXyIyuImnXSXst15dVIkgON8EsQLfxOGm3QZQr03lyq1s0W1mfAvUyAtSg8fD3KB1wGjbt0XzsOnd8qaiskEs0gM9/728YPem1dBbuo7fwuIek/VJxi+7rCXuY+/4HKaw6hsa2K0mr7ri26iBgCjg26Sy0H7+Fmep7MJkynT23u5gmwcVGBL1wARoPfZXm498n7TQdDVl0lKYkE3k2nEv1ps+4QCMkK13izs9sMS6h6KVUr714eb9VNb9dQmXbA6I+jUevdNupq5MGrRqkBZdMxBGQ79ObfRCrrkVZqZ4yOMZziaC/rQN5S1QCW5LPW3g42shxvEuRujIpbC4yLO+O1CGsD1sUNq7qqQuyXzWkSAf+reYdWhWKLabXYCtEq/tpyrlMyDl38L1fkHeoQ2AwK1tb99Ed6IMqCU6RD+TfNfd8TQlyRejsk/shCUsiXAJlTXu0RPXL2vfXBEIqXJtK/qTXJfpru4BPWIyVhEcTqIyQnLR/HbvfjTSRXq20dUwWcmPQVubyvzOGOtrhGI4fw8iMrWb8jDfSr05TvelzbpUWJQQ1cRNr1WXeUWUVpY0n037yXnrzTztSk0o2dFJMXFCKpiaIy1N0tz8WmKQ6QWiAVNciG0HfQsYuX7LPgJkCO4uvXkwBB7styb+nBLZUbWcnQIJkXV8MCMEuBrNCqgapsKx8bkoSiEfBVKUqSNyEZ7IymZUIgUAZ0xFeX+snXamujcDkNiFYV0KownHHo0rQdrYINovq2jQoVVLNaXZgH1KtGiCWZ9EXmNQuyr0sy73bK/tsuu9Qdcfzuk+9jrL7t69EBzW4ep2qu1U5V0pYw1gDyDiBNKVBU/va2uPVCloh6FGCz3CJYHbRJxhZ1OXY2opQkpm6cykiMElAPpR0p9wBPW9NQgyhR67JTxlM11WwaVMShwzuHdTzkvfOa4Tl+Ss7278vyHY2vAoUHWfBauUOIcGN5frqgvBoVBT0xCiPQd5JA87opQLtxaFhxXAMx3+pEenEo5Pm4OTVB1shrKUqw0QSVFc4SNZKL81UHCxKBdfj04ldoOhl4n+tILRKUMKOTHamLL29qoM0yRBWGEpx7OBFHInKSEEksJzRQA6hWjIEQpQQfYwwcbUX6astdU3S/2twycn/tX9WliCtkpwsPlGIR6RgaxAqrYycl8KMyq5N5B4oWUjPX4OADr130hP3jOiiuzfGuMCQKiIx6MikGt5RgvduhKvAFHaVXqfVYCG6Wu/mpf/XPxUCxK3PTqVS4J2Llt2b0sCz1yQiDf/2JhJGzlWTij4hEekNHDciSIyUdKXsbdWAzw3cx8FtNLgjP1OGtsK3eTnmOLAo74voqMG991YRgByYCXdetinnrCQpJaKVWOZcZUT+5H+/+gPXpfc7lf1qwtBy77eRhCOz8gDSpE2yZ48z3EifmzPUEDoejuH4MQ6dO6kQsmbN6HN4wwXNxpd9qS+fjeBlObYHpgFmletp2YZMCgrtKQM0hwsufTfh2BahUtHqSidEJRFBmJzVLGANME3oX2nVkiFUGBAmamWqShDzJDCdZNuy37GBXpvAqIPGFiaHk3b0CAQiDaJjYhwgla0ViHfZsoDqjqSTseqWteLX51An2CTqOWpVKAQgq0YTkhyYsoMiLVLZp+F+Gj2+jjIuYdGAOOjmVcEFZ00K2gPf0z6pJj6DFZlW5JrcVAnQsQY3rWQV5tQeqvZnRWu7LAmJccF3kUDuUrjXEkw7FJJuEEw88hniygTJ/Ezofyp7WqPOmNtfbvWhmEqFzlN3uZ9rgI/du00WbAGiwhiVU19DvzZN4/HLHfyrx4td0mPl7+Xjz6V02E/RfPAHNO673J2ySOd88C+Bmayw8uwPkh3fwMJVf0fz/u+HxKgl15iDeBKKR5/LyMkXYtOE2Ut+j96u+wLp6lnGMNAOx3D8GIeVXqjJOZiYOQLMp9XgIBwGfrJP1RSiQ9AHqp5Vg3DiKj6jPbxU9qlVS0+gs0E9K7iJUAg0NoOv5IwEF510bZVl5vdkcAtwK8FF3ZPmcZO6BEQz7pDrZRNzjDdZsBLYTOQgOjsIDcpx7CJhFSQ15IhxgUarqVm5Nu0X6j1UKDjCTZ4KwWvPV4NaiquotHe5iF/+jkTOK3LXZIvuXkd6j7QizgpcruYKhYF9D1ZbAnOaomi+NMjrM0dg6JxceytLduUB9JeextpWYIxLgmCkAqMH+VWbyR5yMM17r3a6VNFJ05L3DpeQGVth7KQ3Q5qwdNtnsLVWIF31cQlL6vZfPPQMxs58M929DzN/xUegn4QFAAZQBJPJs/I1f0Fu5QE0HvguC9/5G8fgVXmaJnItKGx4ASvO/0PAkdBqd38pPIsSsELeOQvjL/pVivuf7h5FZ572EzcHYpSV1kYCplxk/Ix3YExEfvXhNB+8BptphISmiGP4t6Gw4gRyov+tnPhKmg99P/hFK+mv7GQ9+fWb3X2LYgobjySdvY9Ee8XPMqJn32Q4hmM4/q8OS1gCTTlSBi/LsDWWmcybMkQTuN/W1Q4+9ZIM0crSdhNIJJWHJ4toINUsPiEsXDBBcE1qg8m7StI78IhW0u9nQb6b8afmvIMHqiezSHDjgeA6VXPHWAbFauVi8HaRtkHo4VkJNFmpvCqEnp5Obnk8AYuaVLwZMPkiZrzsrmUcX1FZK5Osh10zFNedTmZsU7jOBkF2VAz3Lr/xGMZf+jZyUwdh8q4NYEp4Iw//DDM5Js75dVa87gNkVm8MJhfqNqVVcgYKB25hvzdewppXfYI4XuEhcg8/ZyRA5WHFa/6I1a//K1a97q9gMgcbcFWhJiTC7s1MbWLFKz7I+JlvY/L83w4tiiW5f3r/2zB6yuuoHHUulc2vYOToV7t7qs9OYdXY3YexF72FzNgaSoe9mPxBR4fkRa7dACYLmZXrya08AIDioU6PbLsD167vY9adq47sik3huedwq+Qo9NsH0gFoQCHiwfdbztf2uyT1WXcp9VkwHZeEDCISwjTubn+YpLUEQPvJ2zyaYNuCSrSAKiR7oXrT1+kv7aU38zjdR67G9vlX/uX/1hhWtMMxHD/uIROXX3c1xQUnrQ4GWBMm5wIgdQmC6UCPU0hRtip/XwtmmtDv0yChUKNWtwr11nETuhKPtPcr52gVfs64baJoirg8Ra/5SNi+C8xIr08JWL0MpRPOIq3VXNWh+ktlryrbeh7yazZTOex82k/cTeORK0JlqFWkHJv5DJNn/ga5FYexdNu/0Hr4mlCpi0TWSvWV33AkUy97PyaKmf3mB+hsv8sHGyMyEoXjJ1/4LkqHvhib9Nj3mXfRn93hrgN3n4z8P1o9yorz/ggTZykdfBZ7/vkNmLJ1BLYRgS1FqlU+/CWUjzobgLHT38rcN/4o3K9RgvVjASqbX47J5MmMr6NwxCk07r3cw9SmLIlBH8hGFDY4KVd2YgNxYZKksTf0YzWIZyCujGKMi2hxZTxor4WF7nvwTUirgTKbduq+6jYTEuAX8UhLd3obmdHVpJ06/Zmd7nja/5cq0GSg195BZ3or+VWbaTxyudtGDCa8W5T0jZsPfpf8mqOJCiNUH/jSMtmRrUviZB2ysvi9vyc5YZpec697rzQJ1Pdc4d4kYearv0V+3bF0a/dh035AipTsl3H3Nkmm2fvpXyHOjNFf3O3aKgPQvB34fejsfYR9//LLFAoQpe7+pEs8pzEMtMMxHD/OobChMFvj3Cqy6w6i3bobOu1/vb3FZeH5iMrhr8KYErXbLiVNWk7yI6xZm4Dd44JyfvNBjB3+y/Sre1i49e8d7qUSk5zbn2oFJ876n5SPOIvGo99j4cq/c5rFCiQCU9vUTcyZyfWsevlHiLJFand/heodn/Z9SKss2BzYURg79o2MHHsBAHNX/CmtB64PMLdckym6iWryzN8mLk9QPPA0OrNb6c/uDASWSfyEnN90FKX9zwBg7AVvpPXENYGAVSDIaSIo7HcqUdbhtcVDT6Pz1F2OuCLEGyPPwQCZiQ3uscRZMhNr6M/tcLD+YB80AhrKYnPQIV1Ia9KT1b6pEI36zb3+8SXVfWEfSvzRKjGC1mO3UtjveNJ2nc6erXiSUEKwnWyAJWXpli8wcsL5tLbfTLKwLzBl+5J81V1PuLNjK0vX/wu5dYdQveeLy+Quvl8vRKHa3ZeQtmoQ92ntvMpD2laNJHT0Yf7qv6Lx6Hfpz+wkqc4FUxAhV1nhDFDsM/PV90KSdUyhQTmRVvcZt8+UGnNf/yMogJnEM7CtcgCWwr+TZJGl2/8pGEuUpIUi5Dzfe08hmZ2jWf++4ytom0JRnh4h2WsBuQb9xYbbz6DsSN5Va6TXLj3/Xt8lVqY0sN9nGcNAOxzD8eMc1mXqpgXR2BhrfvZviAoV2rvvY/prvxPYolpV9VxlWTnuHMZP/SUAokqFxRs/DkhmnsNVHlU3IY2d/TYK6zcDm+k8dR/Nbde4fanBwBIOtpsYpXL0ywCoHP7TLF79KdJGw02WKiepu4kmO3IwUbbodrPfZribsG5tb6DK7kJcnPSXG6+YdJPaAAnF5KUCzkHaqRGXJ7BJF9ts+R6pmZDzXQLa0JvfSdquERVG6O56yP0cAhRawZOCmg/dQPmIcyCKaT1wbXDVUsatEGZsDpau+SfGzngrvaUdtHfc4fqr466Csi18YEh7i8x9+0MUDjyJ5oNXuwvJuvttVQOauuN0nrqXmW+9lzg/RfOJGxx0rSxWNYiQfnhj22W0t91K2mpijTCXBnrgBvesTBFqt3+e2uOfd9XwoDRGDSEUxsw6u8Fl6MVquZfKctf2QT+hcc/lbrWjEYJblSZP8g4C0O/T2XmPe0ezeGKX7bv3xEjgj8qQNoBGL8h6tGWgycvA++0XiZgnBEEl5o3KtXbdddoUd/3KRldYXBMeNeqQHrvX72rglt6/J9UppK3tj0EplDpgKYNfGOUJ7vcu7oRb/mxjGGiHYzh+zEOZkVF+BVHBmVdkJ/cPGsAB6NhaMG0gDXQKkzHBsg4CkzNx2/dre4BjsDalN7c3kFuUPSvkotTW6ex5iPzaI+jseQDbbjo9aBc3meVwTNg+tB+9jc6RW8mM7kf1ti+HhQUGZ5rEVb/VW/8FQ5a0XaN5/3eCwxFuv3ZJ4O4OzF71B5Q2vojOrvtJGnNuom3I5J3B9+LS3hx7L30n2dF1dPY9GHq7WlFoUMhBr/EIuz/5i66n1+kt+8yU8Gvpmgx0925l+gsXOflSRKiAGNhWAmR72220n7otMLi1OhVY2GhQa0Hn4a2ugi6CUe3uiNyzQbMJA0k8E0wxlISlzGNFQJq4oMPAz7rhj8nikg0NHhB63ermpPdUpT5KnrICUQvD13v+DvbrlTk8oDs2EW7pPmWHS788nSWwuVVipSSynEtk7NLAcaycv8LkTbmWHIEBnCP01ZWp3XbnTYsgl4Lw+6NBsyj701aHmlzIOdquPBvVMKsDliaGGswHDTh6LskySpx6ljHU0Q7HcPxnDCEeTZz6y+T3P47abV+m+eB1bnWcZ/xGRhUwozGVY19D1C9Tvf0SiBpelmGXCNm8AeIMpYNPpzezj+6uh0MsHGQZ62QdZciMrKXf2APtfgjGBr/IO0syGUUysWgPOO8mnCiP14LGIuFIWxCNQbYAnQZhkXWtFpSRmyEsiq5EJK1i+gPbR4Tgo31B1aNqkBKNpRmRKl8nVA0MK9y12arcAglEVs0O+njJihE4WE3nl+mDVZuqfe+OM1kwZYHcJfBb487NaMVdxgWOQTcjRQX6hHWCLWHd2iohIGkwaLHccESh2BJBt5whwLUJLtHRY9QG7pn2+pX4pNdWH9inmmCU3XZGA0tGet4tuVZlcyvJTaFZuR5TkO9aSDX56crPIwftW2X7wnKyXJfAEBe43BtzZHHyME0wVAes77oSBxX913PU+6b93ZSwjvAiIeHK4xy5NDmQBDDCoU29paFhxXAMx3/ZYSLp/Uy4f+tyaH41EwDjApax0oftSyWrbjbaO1JtqlYIIj2xfanS1KRgkKWpk/Fg5ZQQKoQKweFHJ9ICmBmWk0UmXTCxbYiyuB6nGECYHCQKRSqTtinnoDCmVkQQKgqFAzXYKpSo518g9Ah1wtWqw8g+lMHcJSzorg5WeYhHXdFrG3gDD5PgJUqmiNNqGkK1lB3Yt1Q9OodHayGZxy1I3yLAuz3CerZN2X9W0AII6922cO+Cwcl5Ygn44JMKW8FJwiKpoFXapM5OLULllcPLoJYlSjHBTlMNKRTbVLLaEsGcQ4OtVH4G90zMqJzrHvy7o4Q0VCKmyZ+cixmUWRUHPu8TrCdjXGJQJzhracKhlfEkLmGoh/to6wS0wLjgSwYv+/GMZ9VAR3gt77LPtY+sUrImYY3lUfdZJoK4B50q9JtDw4rhGI7/skMhZIP0kozLkJ9pjG61ItJelQRdIDBjFSbT4KvVhWbx6kykBKI8QfKjFYMGWAloZkmqa/2ZuBFZXDVotEJu4Yza9RgyGacCsflqIYObMCEELNW8qpGFwp11fHUXjYbibFmPT/u+6mY0wNq2NbeZAV+Z2ZgA8yUuKHoik0K6asKgASFLWL1GKya9r3odGVftpAJzmgWpknXyVphXCWmDLGFFD1QmM8+y5drsAMJgNKnQqk+rK73uxYFnrXCzwut6DL3HYgSyDPrXpEsrwkGyk24vgdwqxI2D2Cm4e2AinKWmsowrBOgZvHZa5W1GmfOWkCj0gU5EZmw9STqNTdvLq1El9YluOVM4kNzqw2g9ciNpr+rNOdS5zEP85Bg98xcw5Khe+3lsrxn01Cl+mUgM5Ncdy9hLfpl+dQfz3/lrbKfvetA1dw3piPM+5jmWqcNAOxzD8Z84/GLvOnEN/uJmcL/cOsGPSEUgk66F4JCUx2X5EnBsDe/mY3s4q0YNquCXJgMChKjwbVH2WZIkQHtjBm9OEJUgShzc119iwBHIJQtmFBcsF9w+bRT2bwqgi247OQZholMjisTdGxMLFNzFBaEUN3lrRTtHCFxaGQkUbMpyfCFseW9g8IEuykKqLN+MO46Rz22D4PUb4asZFlgGO9qKS5RMc+DclFgTE1Yp2umOb5S8BGGBdDW4QJKocVxV2SXAsF1BM4y7N7YnwbeQwZRibKOz3BNY+7ej8v2+Ib/xOJLuHP2lp9z7ppwAvS/Si81O7k/xiNNpP3EH3T3bQsCU50LGPVMTR4yd8T/IjG6kesOn6O15zEmD6hJMo7D/XOkwps7/XWzaZe7KP6C3c5e7hsglbpp4ksLkaRdROuLF9Jd2s+9rv46ttwLaoUYiRYhzK1j183+OyeYpH30201+8iKggTmE9uddFF8hHTvwZRo//WXediWXpB/8UgvCgmUYJxl78VnKrDiC36gBaG2+m9ciNDh0ywJRA34kkks9hDA0rhmM4/jOHJVgNqgQD+f+I+2NSXECZxQXHSXwgMVqtFGSbKm4ikqrH5PFsTauEFZFw+OCopBcV/Svk1pFK+5nON4ljlfa7uFVVlMGpVcY82GlcbxcCZKkTmh5zkCkqvTjbdAHCKvN0RCZNKxMyBD2kuCCpDEalUL6q00BowaoeGVeBmXG3TWZMeqgaFIVtbLplR1DTXqBus0SoVIUIVFixhcKhW9xxFuW+lwX2nZDzqkJ21f5MnH8R5eNeHqrKKm7VpSYhePdg7NhfYs1bPk75uHN9gmO1ci3hFwCIJzey9k2fYd2bv0jh0FOWE5gUPk7duYyf9VZW/uwHWP26vyG76tBlS9zpyk0uKYlY8ZoPMnrCL7DiZ/4YUy6HJEyJQZK8FDadQvmw88mvPZax09+O7UNaxZPZTFbep1EoH30ucXmSzMgaiht+CtPHLX/3jF5pPAaFA18AQGZsHZnR9aGdINdupY8bjYxgsu7BxiMr3LupiWkkSIiiHL0AFdn+gIZnsKqXHnhvYbvbLunRm9/pF7D36IT2yp/5u/FvjGFFOxzD8Z891KShQKhqRVqjk4X3c9X+VSK9UDUKGJQtKJyosKX0cY32LnXSlOrBS4S0stb+4yChRKBpUwrftUoeyZexvTamm2CyrqecSAFic+64tgBROkJu9SF0dz2MNU0/++gSZaaChy3LR5xNXFlB/dFvYpsNonE53xmBBAXmjFesYfyF/4OktcjSdZ/Aljv+uuy07FMSgdFT30Dl+PNpbb+JhWv+BjqW3hJeB2wkEYlWTbL6NR8lmkDbUAABAABJREFULk1Qv+dbLF7zj8EcQSs7gcDLx76cidN+FYDF8Y9Tv+0y55ClwXhWYNEUJi/4LbKTmyhzFt19j9Hb+4h3K2KFPOt5yIzux+gLXgPAxFm/Qv2eKzz6nuDukeo6i4eeQlx0fJXSIWfR3narJ40Z7WnLs8uudFaDJs6QHd9E7+lHfMVtRONsO0BkMJm8bJvD5GKXOClJSZGRPPTnZ7A2xZiIfmOvQy60B6v9bkmK2vvupnz0S7Fpn87T9zpGfSQJifZ4q5B2oHbbpYye9nraO+6lt9sFPd9/LoS/9/ZuZ+n6z5DfeAy1O78aPgPPTrbyu1C/7TL5vclSu+ebwTJT3nszgndnW/ju39HadjP9xT30Z54OycCIu++6qhWjBKnZvzOGgXY4huO/wtCgJRBePLoSMn1Ss+AmSoFySYA98p0yZDaNk5/aQnfPQ/QXnvQ9QFuXnqnBMT3LUDr0LPJrNlN/+Jv0HtsezAtahF5hDHFmJVM//x5MFDN3xV/QX9zlAkxVqj3VRloYOfnVjL/obfSX9jD9td+EwlKoDBXm7QP1DKve/JdkJ9bRndvO9Jf+p9uBVmDaO8xB8YDTmDz71wHITKxl4fa/8smD1Yqi54L42BlvoXjgKQD0ZrdTf/yy0GMU4pWxQBwxeurr3G07/GyqN32JpLM3uFlpUpKF7OiBxCXHUMsfcCLcIwGoMwDlSzWbKa/2jzDOrXFBTgg2Ju/ufZq676ddFwGsTbF9EWFqdVbB9f/6YHsLJI154vIk3ZnHMRnI9aGXh2Qw+YmgvfMO0vYFmFyR1gPXhR6rBpsiLjGrQfX6zxO/bIx+fR+tbTcEI4eM9Jcj+W4mYe6yP6Z0xE/Revom0oVqkP1k8X7U9KG75zGmL/5tsqs30HriuoCuKEFLyEQ0oHXvtezZsQ1G+iS7Zt1rr8SkeTw3wPahducl1O64xLtZedKfnKfRZNJA7ZZLqN16iWPyjywP7u4g7o/NptTv+6ZLaPqSDGnPH0JlmwWKCe0nbvO/T2TdM7WLAsVrP/s5VrTPCzr+h3/4B4455hhGR0cZHR1ly5YtXHHFFf7zdrvNhRdeyNTUFJVKhQsuuIB9+/Yt28dTTz3FeeedR6lUYtWqVfzWb/0W/X7/mYcajuH4f2pozw2gdMSL2O/tn2S/t/4z+fGjgqRF5Q/Sr7M1mNr8R0xuvpBVZ/2Fs9urEBybGrjKqwbZiU1MnXkRlUPPZupF73UTh05AIn/RiqVy4ivIrzuc3JpDGDn5VSEIlYARF+yUvFI++qUAZMbWktt0pLO124WTe0j1ZwsQj42QnVgHQG7qAEhzQT7RlUmv6q7N5HL+vpgoD3NgdznJkBXmqZWJLqnN+m2T/owLVgmYFZJoKKknk9J++l4AektPkXTm8UsGKsO67O5r5+mttPdsJe21qd17aYCPc9J7VDSgALV7vkrz0RtpPXkTtUe+EmZUhVlXCXSdwtw3P0z1louZ+/r76dd2hDLHAvMugEVlINtk+rPvYvYb72f2W78HsQM3uhDg2Ir7Xv/p7ez5xJvZ/enX03ryRnf8rlyzkIIUTu/ueZB9n38nc1/7ALbVCtVuU/4vtpBkofP4PSx8/y9p77o5yKi0R6+wdM8lMb3Zh2k+dpVLHhQCnpd91gkLE+QhSfaSzMwGtnGJQOyCQG5Tty8lYNXdeZqye66m4EhynuQnDGdbl+do3DZmFL/cnpe3CZHPVORdQt7TJbxRh1HtbQ5noDJAirOayD2P8bwq2vXr1/Mnf/InHHLIIVhr+cxnPsPP/MzPcPfdd3PUUUfx7ne/m8svv5xLLrmEsbEx3vnOd/Ka17yGG2+8EYAkSTjvvPNYs2YNN910E3v27OFNb3oT2WyWD33oQ8/vzIdjOP6bjuJBL3BetZmIwobj6Ox4YNmasraIky70IS6tBCDKFDCMQHbRQcpqLCCTsq33sWmCiWLXq8rjZhhlZmpV2YPuU4/CZncu3elHQj8KgsNRDDSgcf/VjL/ol+gv7qG7+0EX5LtyfHEOogVpaYHq7V+idNiLqN/7HWy74/qkPTfBqaaVBJqPX0d8/SoyEyup3v4FlwwUCcQdhS5jWLzt0/Tq20mXlmg/dYebEHVWU3KLkMVmrvgDssX96Vd3QVt6dNHA9QiRyqQdZr/13sBq7hIWZ1cykhFIvLXE/NUfDkQ0K4lLCSc9EdjajEHanqN618UBghbJka/OUoGEU0hb87QevS2Qp4p4cphVxrewsm2uA51OSJa0CsPdsyhyQcfmHSKByq+UAKUQaoPl0hw1xNDAp7rngUrY992LBD9rCPDxoDa46J4DM4Q+r7o8DSIFg5IsPccigaDWcGQ8oxVuAZcwCfHOqC5b+8/KSejgkz9jXJJghRdhlQGtnAZl8UtCowYtSuQz6UDl/BzG/7GOdnJykj//8z/nta99LStXruTiiy/mta99LQAPP/wwRxxxBDfffDOnnnoqV1xxBa94xSvYvXs3q1c7yOXjH/8473nPe5iZmSE3kMn+e2Ooox2O/84jv/4oVr7md7G9NjNf+336cztDr1YnOTE/KB72AkaOehXtJ++m9silbqJQnsciYdJsQmHjC8hvPIr6tu+Q9PZ5v2PP5BVyERXIrjsY04zp7toWiFlF+byGCyTyfZMrY7ttp3eQQLEseEcCuYKrHETGYcpuW9t01UlUEHJVTvqlUgnSkQlR+r3YgT5tRgKRBsECQTOrlaiSwNoEcwpJFCgItCzsXquGDCo1GceRzGyoovWemhgyFUgW5NJVZ8lAgM1BqhC9VMx08EvWmUkCfN2GSAKuzcj3+i6g6D3z5g+DshslVjVkvyqdWsJXZ3EOZwixhFvPuCfBVjS9nimtCZWaNohciyYh4UhYLnHSilEThjxhBacMwfRfk7QunsxlEohXuL5sujTw3mQH7pWyjSfkWWhwb8jx9d1SXXBFnqkkkZGYf9iqPF9JQkzOJUVWtdSacCmZLh+Or4mNVejeSIHcgST5EepokyThkksuodFosGXLFu688056vR4vfelL/TaHH344Gzdu9IH25ptvZvPmzT7IApxzzjm84x3v4IEHHuD444//ocfqdDp0OoExVq1Wf+h2wzEc/x1GZ+cD7Pyb17tfbp3MMpKpL7qJ2RSAFFq776D98B1BxF8Cv4j3BMHByEJ7xx20t98RJkadvBYJ1YtMhL0dj4XKUSsXZRgLxG0m3cRjM40QpLMEqzyFB0elZywBzIhZgbFAWaoTXL/OKJllBUGzqZOqBG2rBgO4Yyqpxtv0ZfBm9Igcw2s+xejDDmiAPUtXSGm25+Bs77qVAdOR3qTWAtJ37Wdk8tUKTyuqWbluNT9Q0weFQ8UdytTd/23G/QEClBrhA5apE0hxSxJ4IZCu1MBEA5PFSYFyOOZ2IsfSoDqJkyMtyr0Q9y5d39g7cSkbGUIPU807RgjvmjLPtcpTBr3qb4sEV6oUHwRtBdJIkg0hUEWixfXXi5zXolzjKKGfrHplfVeLUm1K4mQkyEZ518JI1TBEWfdKcjPu3TBjLomzalghVb7V/YuEzEPOyoB/lvG85T1bt26lUqmQz+d5+9vfzte+9jWOPPJI9u7dSy6XY3x8fNn2q1evZu/evQDs3bt3WZDVz/Wzf2t8+MMfZmxszP/ZsGHD8z3t4RiOn7jhf7kt/jfV6iTYH4C9MrJtB0xDqh0NnKof1R6rymnUIEHdl3SCVoH/oJNTiuuRKSNaYVTN+GsDJ90lBArtAy+5Sd/obKOTqppC5GTSqsvxJgirweiEKIkF0ldbZswwIudSlr9Hsp0yrrVnWSawhvV6IzwJyxQklqjkahBgG3d/PJNXA4BWduVwrDiVPqIG8B5uws4RArpAqdqbt6INtS25TwlEFr/wO1lcgNF72sB7/dqWVGRa6WXwDkrRhCQ0FlKpLk0ZF8Dr7tyMErekSjMaTLRiVh1xLH/XYLqAt2r02mjcvTCThICtulcl+6m7k1SNqZHnL++b1fdTNNveEUzZ8zby2ttltqJW7olcW27lYWRYj605dMAS3gl1WaMMcXklIy98Ldn1h4WgWQc7I89HdLgUYOS01zH1mj8gu+rw8F4+h/G8K9rDDjuMe+65h6WlJb7yla/w5je/mWuvvfb57uZ5jfe+971cdNFF/t/VanUYbIfj/4nhRfJN6RtphamBctAUQIggam5vtcqRCXnZerMKg7Zc9m/SZxx4MAVX6E/1pBKY7V6C2YTqK7u4YKd9SvnMSBViWhI8Gy5RMFmBMMVxKtIeogYogbJNUfY9yCjOEyoq6aX5REATjUEiDCy3ojR4zbDBBRwbDWw7JfdSzT+0GpP7YyJ5JikuSOZdgO3XJWivkevbSUguUrdfZty/U9UpS2Wlfr9mlJDoqE64LD+bD/fFL36uPdCCnGfHPfO0StAx45CFSI0ntPIt5YnGp0gaezBd68/VvzOKTnQhv2EzZrxI+7HbfMJi+nJ/JNDGFjKTqyiecgH9haeo33G5+0D7xkpgkj5t5bBXUzr4xTS2XUXj/sscaqDJjPZ3E4hHxlnxqj8hM7qGhav/htbs94UhTEgAPKHv1Yy/+G3YNGH2a++j+/RWl/jkxaRkyb2fJgNTr3g/2ckN2Bd02fPpX8Z25j2rXJcrxEJ+5VGMnfIGADLja9j3yXc8Z1LU8w60uVyOgw8+GIATTzyR22+/nY9+9KP8/M//PN1ul8XFxWVV7b59+1izZg0Aa9as4bbbblu2P2Ul6zY/bOTzefL5/PM91eEYjv8Ww0OjWamSugQ/1oFqz2oQlGpOV/exkulrBagmFKYjFbJKSzT4ij5QPWKNdm0yBDtGrTZa4OUx2h/U7QfdjlSeJP1iK+1cuyRwrug+bQZXbWUgWgHpNMsWGFBI0FeG+m8lbKW4ilj7xCqNGpiwPdvVyrE7LmB6BEGPVZMApfpNwJKBYoIpWgfpxg5qBLlP/vzy5PIH05/cjq03vcWmwqNYd10mgvyBp5Cd2kDj3u9gynWouOs2QpiykizF/XHGXvJL2F6Hxe/+M7bWctc14pAMTUysgfLmcxl/4Zvp7HmAuW99GNvsu+NXJMEZl+fYLbHy3I+QndiPxv1XsfS9jwaj/owkHjlgya3tO/UzvwPA0g2foXb/Je69k2pYe/hJGyaP+3XyG44FoDe9i87MPQHW1/exCVFhlPFT3wZAbsVBNO/7Hta2Q084BcZcFV7YdALZ8fUAlI96Oc37v+/2pZaUKR6Jya0/3D2TKCa74lA6e7e6pKYlPdvY/R4kCcRF11s1mRxRqeBcn0o4tjvunrEE/aUlTyhM6vPuoYeO5r87njd0/MyRpimdTocTTzyRbDbL1Vdf7T/btm0bTz31FFu2bAFgy5YtbN26lenpab/NVVddxejoKEceeeT/6akMx3D89xxCSDEaJERmYBT61IAzSBRSfaL83GiQ1p6WwK+mgzdqYJJQdSgbGULFFOFclZScotXiOGFlGq1CVPso0K9NcJVZW4KlBSuQsSmMEuVGHZyXyh/jencUgVGpOEfylI9/Mdn9DnBBMut6aj7JwP3fViG/30mMnfZ2sqsOChaMA3aDpifwbq/E1E+/j1U/91dkVxwQVghKcUv61fBLypUOejHrL7yUta/7J+J0yi8aYHBB0a/J24CV536IFWf8KVOn/CXEGXdche7n8as0Zfc7ipWv+T3GX/QWJs99F2kd0jlX6aZLOKepOXe/R097PeWDz6JyxLlUTj4/aK8H5DOMuKA3duovEBUqFA84hdyaw1zgRPqQZYHyW5DdbwPZif0AKB50KmkPUkl8rELs0mPOrFrvX8nM1AYX1Mbde2CbBItMCzYZaFx2kpAYikxN4eO026Jfc/Ggv7gH2+2G1YK0x19xfdv+vgdIWksAtB6/MVw/8r5JP5rUGV705nfS2f0gzUevdokc7pnbrlyb/H7Mf/dPaT95E4s3/R1Jf7eD1lsDiWvdHaI/v5PpS9/L4s3/yOL3/iT8Tj2H8bwq2ve+972ce+65bNy4kVqtxsUXX8w111zDlVdeydjYGG9729u46KKLmJycZHR0lF/7tV9jy5YtnHrqqQC87GUv48gjj+SNb3wjf/Znf8bevXt53/vex4UXXjisWIdjOP6tIQQlm3MyHttrL1+JR+URZenxGYgnVhNPTNHd9SBUXWXmWcsaoGMw/RzlQ88h6SzSeuL6ZT69RhybAEihsPZEKieeT/uJ26nfPQAHKnQoVaaJcky96L3kVh3M4g8+Seuxa9wapA0wTQKhaAoKq45jxVl/AMDs1z5Ae+dd3pjAyFxtBEaePOs3KW7cgk167L3k1+jXdrrFyvUeLLlziM0UK376fZgopnTw6ez58htdwBSWM8h5AuVjforiRjc/jZ7yBuYu/0C4n1KlW2HLlo44BxPFZMZWk1/3Ahr3XOmq2gLeatKte5p1wQ3Ijm4gXj9O8tSsk4i0CAtCWIjyZf+YTakcLCtzOFRBodkY0mQxvBLdJVdNaxIkFV0kcHPn6XspHfESksYcyczT7h5mpT8rhg12Ebq1J2jvfy/5jZup3fkNf28shFV9pAffeOgKcqsPweTLVO//QoCy+yzvyacw/92/ZuTYV9Kbe4rOnq2BmKaVak7+tHtMf/Y3yW84is7TW13Wpz1+YZWDs1XsV/cx8/VfhrRMvz8bqliDC4ZKSutBd+cj7PvS292awhqMJclQJzBNJNvb76Pz+H3uHS7ilx40KvtR1KcBvT0P0q8/GOTSmow+y3hegXZ6epo3velN7Nmzh7GxMY455hiuvPJKzj77bAA+8pGPEEURF1xwAZ1Oh3POOYe///u/99+P45jLLruMd7zjHWzZsoVyucyb3/xm3v/+9z+f0xiO4fh/a1jARKx8xfsobjqZxiPXMP+Dv1iub1U4rg+ZVQew5oK/xGRy1O6/hKWbP+N7tUalIAAGxl78S4wc/woAZr6R0t5+o5sABysPgVenzv9tonyZ4gEvoLX9TpKlvYH8BJ48lF9zDMUDTgJg9IWvp7XnGi/vMDGOBJS4YxT2OxkTu7KgcODJtJ+6y+1ESUALeDlNpuwML0ycJVNe5WRPNYFv22ClEnE96wHV4qAWNCIsX5eH3uIObyHYXdzuLCOV4CLVtSY6rUdvpLBhM0lric6u+wIRJ8Oy1ZNMvkf1zospH3Eu7cevx7ZmnWPRPIGhbNz27e23s3Tj58hMrad6zxdcMCziVzWyfUmeWlC99Uv0p+ewtkNr57XYMXd8kwHmHDoR4c5n8bsfof7ot+gv7CFt1YL2c57g/5wAnR6zX/pdrInApu7atfetMidJdJJejdlvfNBto9WjVtMqy5FrS2fnWbr200EepLC59vKFbQ2iGX7q+vC8eoIQaMtgn6D+RWC25R6yBnaNYP3wXY/EdAYq154kmwqxDxK1YtmuiSf8mZK8VwNoiVb5piWXLJIp/zv474znFWg/+clP/rufFwoFPvaxj/Gxj33s39xm06ZNfPvb334+hx2O4fh/fkSZCYqbTgagfOiLWbjqb7Gm4yYx7UFKtZpbeRAm46JebsURDsoTOYJfm1aCQlwJ2r+4Mhp6iCrzGGDoJs0FonyZtNvG5lpBy6iEJOnP9uafJGnXiAsjdJ7e6iajpvRfE6kU5HybT11D+aCzAGhu+4GbhItyQhYYw7NDF+/5OKNHv5Hunsdp777HQdJI/7obvpfU5pi94o8prDuBxiNXu/5wEZ9sgLsHtg4d7mP6SxcR58ZpPXlnIOkoAaiMtx2sP3QZzb03QtpyumHVjfaknwm+x1u9/WJqWy92iYUwt40Q2XRxB7cghKV6yxdD73gUv8C4aeEDmW2CySc07r3S9Sy7BHtLUTvaPm7pvwJYm9Ld+0iw7mzjlwm0Y3IsZWT3gESyL21DxII8RHgjB1Mn9EGbA8/+GTI0agSCnj5HJYOJRIuC3Fvpx/vgKPclm4N+zzGSvZGF9sB1n5o0qrQqg0MM9GcxQXuMVLYVQktD2dl67MFrUEhY+BHaYzcl/FrJXor2HMZw4ffhGI6fhGEiVr/uAxQ2HkvrsVuY/dYf+wrSasWmLNBiiZWv/B0y42uYv/Jv6c7e6/yPJbj4fquBeMVKxra8mWRxkcXrPw3lvpt3hMHsYbkI4lUrKB5wGu0n76c/94Q7uJoYqPmB9JAjM06msobOnkegmLrJWiq1zHrpQe5CDA0ikXOkYRWgAiEoKnmnL73AUUIlVXD9Vq9XVSMKhSazcv7aH1X2tJCyyAg02xs4f+k/2zZ+qUHvtiSMZ+MrQgI5yxDY26pnjl1yYyx+3V7bGIDPtRc5qDdVDWjs+s0O45Z9SiD11pIGWMQ7SvkFyzvhc9tx12eycs4Ciy4LONq71wq+ILBo7CplIyxc28ExtdV1TFjXVmB5o0z4XLinRpMlMR4x6hY1Gt4tGgP3sizJmD5HTSoW8YQ8k5drWZTPJMiCnE9f7vmgxlXvjb5XGQmifTk/3L9NJdwf25SqVStlSW6MJJ82C0nz2Q0rhoF2OIbjJ2VEEXFljLS9CKn1DkpKLgKZoPRXo4WbFIpSyVYJS4aVpF81UDWpVtN0JaBp9duWQDfmtrVCwPELv4vLj594NVjp5Ao+4NALFajtSw9sUBNbwxFsVLOpFnsb5LNZOS8ldGmCoXBrk+C8VJJ9qKRGCE5eB6zOQiLdMUKUsiodEta1N8qPB/atZLGI4Nebwy36rj1egVQNTlJC031mc26C9pXfAMJAGb/MoUGqM4XwVTal6EV54NlpMFBDED2/UVx/WslyMkxOgqP0K804QbrVhqiIWwwhJ5W1srY14dDnov+WStKMy/ksEFbS0fdEGMoe1RCSHrG7Dr1WozKl3sD/OwSIXtEJfT6poCV9lmtrVYNdDtv5d0KJfA3Q5SRt0z3DaEqelZV7p+8ZBH25JlmTkMw9e6D9P2YdD8dwDMePaaQpSXUB27dBA6vkJp1EDW7yVamLBrwlXAYvcJvRfpQ6IwmUZ1o4IpIaXCiU2sFNnhoQooHjDgZXnZAUkhyVQJ/BmQC0pEqQHq3fj/5fK1A9f3Ww0spvgmDCob3WCflswD0KS3C86su5L8g1awAfkC1FkxCPS5DMuInXB1ftKw72AeV72IH73SaYLahBh3U/S0tg18j1jBFsI8ss7zNW5btyP43ea3nePmAqLBrJ/irhZyaHM4yAEIz0fNXIIyGsXayGJZEkXn1p4xu5hkENssG/d3bwfPKEwKbQcBGXHOhz1vuI3GcNfuAhem+3qMG17u6v0Wpd33ctDwecurB4rbmVSvWZDmWkEVF5ChMZv7qQEVMMXXIynYe0BZlVB5I/8AToGZ+0qlWml3sJbP9s43nraIdjOIbjP3mkA7FVzQ4UDlwNZg+hl5WTSa0PZoX7LjPyWSTwpKbbOikrm7Uq+xknaBpjgVp1siccf1mQgzApSU/Rdt22Nic9RpFc+Eoxh7NeXHLnZSJIdbJVuBeWM65Vm6nQr25TJshNNKAJe5YYJ2Waccc0AukmyH41cdDAL5U4uH+bxF2TTeT6BqQiGoyijKvWEjVSWAI7DvFqB6X2lYE9ANV6N6Q8YeWjZODc9bwGqzvpVWpf0vRwkqAKHmI3GiA1+GQE0dD7IX1QqzpccJaPZXyV6Fd4UvMPDWwG6MRkV+xPv7PbOY5oBSj6Yla666cL+ZWHk506jOaj15J2FgOsLa0MhbFNpsjoyW/ExBFL138WQ8NVnEo+GkAMioecxthZv0xv+knmvvEn0O+GHm4eT76KsxGT536Q/JrNtB67mfnLP+hitt73AS1ubsNRrHzVhzEmonrzl6ne8i8BNVHtblYg9SWedQwD7XAMx0/yEAmK0SCjVZ5O3OIcZLX6sjgrQalg0s7AfrQSqRCCGwRGrVZ4dUJVqxPwYOWnlckKXLBT+zupdo1+3iYEQTW3WJLzVccj7Y1pv00YyLQIMOsCwb2qiwswltA7zRAgVw2KGrRE9oLA2N7aEUK/susmVKt9XZVK6edaBUvCYnGByco9JnXVn0mBsTxRKSaqN50xgg69b9JntO2IwoEnkeydpje73Z37BMFoX3vQCeRGD6d4yBZa226gO/2ouyZhYwPB1znJMHHWhWQn1rF4wz/Rs48G/2WF/iP3buQP3MzUy3+XtNti9uvvo1fbFZIQHfI+rXjZeykefCr9xT3su/R/Yhut0As3uHeyBHFljQtecZbSoWe49YsNgd08he/Vjpz4akZOeKU7jO2wdMunwjNl4LkCo6f/IpnKKjKVVRQOOp7W47eGdoK2PgyYeJL8ms0AFA/e4krZpOueu/aXJZHIrt7fraAFZFcfiBqMYB08bvV3S/u9zzKG0PFwDMdP6LD6Hwkepk5go2qfUWG/Io7NKixUm8q/pZrya3NGOBKK2heWCLBt3QUP7z+cG/ijQU4n4i6w4Mzc/c8TqYaz/GvP4hFcYI7xNos2jULlqoFdz21AzhSNj5OdOlgoqoSKR6svrVQKEaUTz6J46OlBd2ldJedlICIryq4+lKmffg+V41/hUAGVhIzhFjkQJrOpGCbOuZC1b/lnyi841wVjhS5jgn+vhXj8IFa/7l9Yec7nyU+e4iQk64A1BCavBPaJ097Oypf9Hqvf8NdkVxyEX9Bd5VTCIDa5Iitf+wFGT7qAlT/7x5DPoFIbK2QxTWZKR55OZfPZ5NcfxfgL3xae3QjBdSzjEorycecQ5StkRlZSPORMh4ZoWRZLEB9zP8tvOg6AzPha4soaBytrtQ4u2VqAKBrxUq64PB5QGCRwzYd7kHYCnTdtN8P7qKxnhaIz0Nn3oNuu26TXfRIj0L/JOmQhFgg+aczTetI5EzYe/D6Wrrv20QAfmxKQh+bTP6D15G109z1G9e7PLYPFrR5/MCl7ljGsaIdjOH6Ch9WMHUJ1MI6r8sSu0UhFRR6i4jipbUCl5yDGWOAv7TtJ1RCPT5FbdwjtJ+/FZltuptC+qLJvG0BsqJx8HnFugurdX8XWG0Gn2HMBx+QcZJkZ2cDEWb9C0ppj4fv/4ORJCstO4CVCtgyTL7yQytHn0nz4eua+/WeQscGUXmG+BOKRlaz5+b8lKlSo3fVNFm/7hLsxQijyVVgORjf/HGOnvQGA+Ss/SuOBq9zxawRYdMJd1+RLf5Ps2DpKh55BZ89D9PY9HqwTpRdt6pBds4nK5nMBGDvhbdRvvMKdo15XDd/rLB1yijeoKB5yBu32rb4nbgcTkgpkV2wCcBaCUxvoNR4PvsN2YNuiwcQyjUcxJolcBavSKyVFxdDv7PGa4d7ibsdAN5L8qJmHvCetx+6guP+Z2H6P9o57AmybIyyWIAG9eueXGD3hZ2k/cSe9nTtcEqWtC2VRJ9CbfZTF6z5Ffr+jqN5+aViwQpMc8H3v+sPfwNKBNKLx2HfC6kejhJWZhJC0+N1/oPnENST79pJU54IWOY9fTjCtA+2Uua++H1PIY1udkKjmBs5XyFR2vsncV97v3rMxQmAV9riXR6mW+FnGMNAOx3D8BI/MxDpWvuq9YGDu239Cf2YX7MMxaAfgUGNh9JTXM/aC19Ov7WX6exeRtKtB1jEKZgkxtSix5hf+mrg4QWfvNvZd9hvBPB/CIt9A6egXMbHl7QDEpUnmv/vRIDsRnWucgTQP42e+lcKm4wHo7NxG454rQs9xFl+1mnyOytEueJUOP4PFWz9J0pgN5K4BE43cfgcRFSoAFPY/Fm4lQMrxwPYZiEem/H2Lx6bcJCk9Qs9ClV6obdVd9Zom2G7L2QCWId1LgLkjsN0ZkvoccWWK7vS2MBmL8YHvv+ahtf1mKsedT5Qt0HjgGuwMXgpjSniJCU1YvObTTJz1K/QWdtPadlPQdgqBR/ukttlk9jsfoLjxdJqPXoctdMM9TeVeCCrQnX6E6S/+JvHEGlqP3hQqNA2iyqatQ/Oea+jue4DU9Ej3LLodqFEFBJSgB/U7LqF25yUuqVPZTUECuJKGpL1Qv/9S6vdc6hjKWbn28YF7qq2CKKV+/7fd+5gdODft+6aEXnWU0p15IFSdypBuQpqVJFNbIykugMeEnrq0AEyJADc3cQmDtjnKA+9JE/+7YJW5/ixjGGiHYzh+gsfICa8gt+oAACrHnsfi9z8hsCuBMSy9utJBLwIgM7KGXO4w2tnbPaPYFnBBJgPx1ARxcQKA3MoDQxav/ciGVKoG6MXhZNQVQxmisn0iEG+/scdv2p/f67arEuwblbDT7NJ64k6KB55Id/ZhEhaWM3+V8NSC9uzdtHfdQ3biAKp3f2mZplUZsVYq/qXbvkCUH8HaDrW7vhkqZEvo6wpZaPa7H6R04Fl0Zx+mP7Pb7Ue1wtqL7UN/ocG+r/862fH9HYSphB7tIWqwyUCvvZ3dH38jEGOTDtGIEI1GCYFASGXdnQ+x77PvXi7/yYXPPWM3hfb8XbQfuysQqZQYJpfkkYoIukuPwMwjwcVJKzUldqmcpgv96oxjRytEKuQiq/dNpVOEoInqV7XvPqCpNcj3B56N9ojNSvwqTl4nrMmPVNpqcmIGe/cqMVLyU8793er5KVFP2et6ncrGTx2/QSFslTv5RTK0daGQ9UC7w+vSn8MY6miHYzh+gkfpyDNZef5vAzB345/RvP86vOSk4CBJ0wNiGDny1Yyf+TZ680+x7/O/5aivykQdlK/kYOy0t1Dc/2Rqd3+DxgNXuslVA5jqcmOgE1E57tUOOr79y9hM1U2iQhyhQJi82zGlw19IUp+n8+TW5RWyBvFx6R23I7KbVtPvzrgTVI1sQtCTQggSPYK5hJKKYgdDs+C2MxlH9LEajBWC7kslNqjdVLbwKMHkXoOeBsSYsL5tVf6tpCwNtHofhAhm62E/Jg9RDHZEKiPt0ep9UfKWEs3GCNInhZDHCFWZOnrpMRQ2HsFVmyqNyROCiMDHGMIavBrIlaiWEIK1BjTdJoOzl5Qqz+jzqQDTA/ejSVgLVtsUqjPW5GRMzqsl21h5Lqo3Vt2rQtgCXXvkRvgKntSkWuhC+I5HMCRxMpEkAIr85FwP3ltlam9Yj1tZ/nzSRRdwh4YVwzEc/81Hdu0BRCn0Gtt9Rq/ru1KWHqxAgibNYxOZNQdZvBrElDwkcKcPZDJLqBQiGnGViQ/AAj8aDUDS6/PwbZdQSfRwk3EdHzAtA8cVyYxRkpXqeRcJlZ06I2lg0p7kIJNXCDO2LVVLWQJBBDYrEzh4aJ0cYS1UhX4L+F63w8HlOzlCtZbDBXOtthWC7OD6iVplaSCV4BBlcevO1t19tYOa4hwh4CtlVYlvCt/2wr785/pvge7VpMEo81ord5Hy+GCcx8uvPKtb73EO32v2ulQ7cEyFVbuusrW4/Smzfdm5F/DL/iHSJZOR/euU3pKqtyP7020VlpeK0kCw6+xJshK750xC4C/E8kwERjbyHVuHKCff00RM3kHPxteETI+rwV3eh1TkUM8WaIfQ8XAMx0/46O3Z7uQLGphUVqHmEfqzGKztOLKUwU3iCr3pJKIEFZ2ku2ArbvKySkLJugDrg6zArd4xabCSFXKLFfhO3aGsGlowANuBX6nGOx0pwUvPS/+tFVwGT2iywsj1a6PizkntDwGnnzW4AKiVnSF45CoxRmFJdSDSYGJxVc2A3Z838lB4VeQ1HqrUviIs1xtnB36u1zYAXyvkvKyXqJC8Qr+DcheFfpcIlfCgftYOfBa5ak7vk5d/acUOoSesxxmAVE0q+xQnKaP3TqpWX/EP9DM9E14lYRp99L2TZM8/x0iCcBEfmL1USV2w8gI599xzN6WB/cl1W7nXRs7XLrm+sCnLsRQJgYAUaLKi+umB9ySzcj+SuXlsr+UWP3gO8PEw0A7HcPx3GQLDqQmCX6lnSf6/FhcA1GUI3CSmgUIqGyW5LAukOslL9eGhNQ0aGmC05zdGYGcuuUnOlghrfHYHzrHiKgvvBKXexUq+UfcdlQUplKvuQbpPG/7YFk6y1JT4VZLrUd3oqOxXApTH9RQSHXSGUr2kTsJqNakJCgPnqtWZwtnZsF+DO38r8iVfIarz1WBw1P1qkqHwq1bbKmFStrQG3CqBNKbBXKvTEbx0Sqt6j2aoNlp7lwpDa1WYcffITOAdqszg/RhwYDK+j5nF5HPYTsNVjRbnSKbvkzw7G0F+/82k/Sr95g6MtgU6BImUBO/s6DpKG19Me+ZuuvsecucxkCAYg0i0DKOb30y2fBBLN3ye7vTDyz2LG66lYjOQ2bg/K37q9yC1zH3nA/T27QgLHSjULonq+E+9g8rx59Gv7mP6S+8iiWp+vdp/bwx1tMMxHP8NhrUO7kqlMlOtqxJQfB9RCSqDPUStxsq4SW0MF4jUwCCV4KCBW6uvDL5faWIJmloNqKmCTuZFQrWjVVEezCREo47RG6+R4KgBVIlKGlAUpo3lXBUGlYrPKASs5BcNXlmp9pWBukAwrNfrGCUEpy7B7lCDschwPISsjFSt3vSeKEFIg19erntcjlMN50tHYE6tUhnYn5qBjBKq7DyYySLZ1ZtcaacVpd4vDXa44xc2voDiptMgY3w7wSdUglawBJmR/Zj46V+ncuz57ro0cWrKcxNyksnDyBG/wOpX/z2Vzed71MTm8JaHVvqrmeI61v7cp1j3xosp7f+S4ElcBjPGshV7Rk/7BVZd8GFW/+zfkFtx1P/P3nmH2XVVZ/+3z+33Th+Nmi3Jvci92xiwMQYDpjuUhNACIRBDKIHwkXyht5D+AQkltOAQUw3GGNzAFPdecZElq49mNP32cvb3x15r73NHkiVTEspdzzPSzL2n7LPPOXu1d70rNIAoyfyoMdcPS87/IANP+CPGzv8gUd+Q98JNx3mzZqkzAHJLjqf/yD8gv/oEhs+9EC8SqTBWxluH0ppnkO5fRnpwOaWjzwv3Uo0dNUqzUDjkdADSA8vILDlgn1ihoKdoe9KT3x2xsuCpp6HeaJ3Q/US+1zyasjZZzaeKR2wX3DE86KmOUyIZnNLQEKDmQTVfqt6XKqY2gXRfPScrobt+fFcYZgk0g0JE4MttNGQrHolNieJXj1EpC7M4xeDzlAUopLqVZ0OuVakdATNcJLf8eEy2FLxRNU5UKeLmpnj0kxlY+1Ii2x8UrMw9CW8tlR1l9Jx3MfzkN2PSBa8ATS4RKjdg89B3wgXs99ZvsuSC92DjtPO81QudwdE3NsHQz/ILPsnyl3+S4fPf6OZICDZoELz1FBQPeQpjz30vS57x1/SfeEHINecS85tzymnkGW+l7+inMXzOn5ErHhNqsbVMSIyeVN8ogye+jMzoagaf+KeQy7hQ7gLBwJBoQ371SaSKQ5goRfHQs919TuEMjXlnvBkhiMiuONRNR5QiO3xwmPeGpCiqEuFoQJQpurlLZTC5jJsrfWYkvG/noD0zjY0d9LqzMOnC0GK0RAkv2UTQ2HoX1sbYuEP9kbtC6kTz1+qxW1i44xJs3Kax/R5a8w85Q2gfpBc67klPfpckgcY16rUowQAEMI+CnATlyYIo6KRn1I8nmVckbSpaBllLZ34ieG0CtLGCbjZ5iDJ9FNacSXP7Q7RmNzjvpCWetuS6GHKeeHH5E8mtPIHqoz+gOfuw80CHcbW7afxCH7UGGH3GXxEVB5i6+l9oV9aHMhJVurHbp++wZzB87p/TKe9k4lvvoFObcouigr40/5mLWHr+x8gOH0BrZgvjX3gjRO0AtErjAUm5Q05g9OkO4Z3pP5CpSz8SPFH1JCX8OnjmH1M85Ez3VW0LCz/7JqbjvPcO+PpVswn6n/4HmEyOwsGnkN3vIJozDwXqTI02dCAzuob0wFIACgeewoyiktNuzq2G6nOQXrLCPxLpwRXBQ9OQ9YCbA2slby9i42ZAjSevK4KOWaC9MEG6fynt2c0OCZTknda8rIHatlvpr76YKD9A5f4fhdKflERk1ShLw/wNF5PuX0qnPkPlvh+GkG2VoETFYJy65kOUDjuP+iO30pmYhBHJkTZxBCxixMQ7NjL59b8iPXoAtYd+4scYDbhnz0oe3hSgOXkDO771OjCW9vodIf+v16+KOQ3lm79N5YHvYCKLiSAagXiKvUpP0fakJ7+DUjj0CfSfeD61dTdQvvcy96F6gh0JsZbBFPKMveg9ZJccyPS1n6a64UfdpAgJMEhh/zNZ8ux3grVMfvsD1LfcGoBJWgphncc4+rz/S37F0dh2k+3/+Xo6MxN4dK+UW9h5SO+/jOFz/wpjIvJrTmb866906F9BBft8XwGKR59LXuj+Bk95CVPf+0g3wXwa7z2Xjj0XYyLS/UvJ7Xcc1fIPA69xOozVNHNkhw8AIDO8P1GuSNycD2HnDs5bzkNU1AJeMKl8yIXmcB55ovylXQ+rb2en+92WcPzGYuRY64yJ+obbKB5xNu2FcdrzW52BFCWOJyH0xvYHqW28g/x+RzF/9zfd54K0tUnwWx3Kt3+XTGk1JpdzjeUFEe4J9NU46YOp6/6BviPPpzW5nubOB72yMslIRBEoN5m4+G1kDziCxiP3+pIeH2KVWmBTgk55O9svejWmk8HWa64kTML6UUlqq5vAArTmH2LHf73R9z/29coZ2acoY8hCY+M9NLbdEzi9BR1u1avXaEYHmlMP0px9MKQeagQ2KGWCwqVb4sp46L+s22j5lqYwFLxXty783YBogX2SnqL9DRJjEqCMnvTkFxUTMfrsvyTK5MivOY7axE10qpOhBV0koJYW5A89gfz+xwAwcMofUF3/o5DfVBCV5PTyBx7viNaNY2Gqr781USNLQKY2Id3nPC+TzpIaGHIesAJLNM+6AHY6dtonFWE7LReCjgntxyQUaiNoTaz3FILN8XXB0yjhFK782BZU7r+W3LIjaFemaIzfHUqOFMAkiszGNeZuu4jS4U+n+vMfEdfnA+kFhORaA2rjNzJ7+xdJ51Yyf+vFXb1jvQKXkP383V+hXd+OnalSe/AGj/y2mtdWZHMGpn/4Tyw89A06UzugU3PkD1oPK8rWRECuxc5L/zbUh2o9r5IySIkNKYizC0z94KPuWrQ8RstXsqJwpJ7Xbp1hfuqiEA0RIo2uPHnOPQ+d1iy1e28M4LO0bB/he8paZXOijW21A+pdlFOn7AwMowA160Lq+myYSFIX/W57Y2UaymAkV0wa4jaOwlINHgiGoc5HKuT9rRiQpuA+89EaCBgAzR0rME2jQk0Ckr4O8Zybo0j334v0FO1vkPR0bE9+JWJjOgtTRCMrietlOjurPgRmtDxHrPzG5Do6jXlSuQHqm+8MwCglr1dLvgnl+39AYc0pEHeo3H11WIS0zrATzjH9g//HwGkvprHtXppbH+puEp6gcOx0Jpm89P3k9z+OyqNXh8VPOH+tkcW0BvXNdzL+tTcTpfpobLzHLeCDBG9aeJ3pQPnWy6g+9GPiVh1jW27R1kU4WRsJzN95MfO3XxwUsZIUJJG7MVCzLNz2jYAEbrvQroFA1adgo7mY6o3XOCXSL9c8LeHwAfnMl77EtDY96hThCDAvSmFQFOOUnKOGawiRRCsnymKwhBy15rYVsKUAp2SNbYHAW6zKeEhyyMnwsRA2WA05J+qPfe20AoYEMGeboqzbOIOkQXcdcUNSFcP4Gm8P/pJ0gNFr03RGS/aJ6W5tp5gAMTqMPNs2Lc+7zLvJCS5ASFw6VYjyEEsIHQX8pQl14GpMSNg7ity7Y1LyDukztRfpEVb0pCe/g5LqG6VwyKnUN99De34Lpg/HitTE5+cUPBMtGSCVW0Jran0IV+oCo95qH2HhLRDAOqqI1EMbkM/mCR1mNCSnLD1jOG9ZFyophbFFwiKuHoqw99givpm8MZK7RMaVUMwGydlpODvvrttz2KrylNpLLE4J4xSDnUrMT0wo21ESf4MrbdISqmRNq3pXihwW5WcErGUX5Hsl3BAPT+uZTQkfdbANObfkKE1BvPxiYizDMtYpQl6xlQi3p0UxabpAFZyGR1P4JvF2Tpx9JctYkPMMuvtmNTSfyJdqVMBIfbRV5amAL2V4KoW0qycrWXDnMRphUKISDYGXcd2cqgRiEbkfJu/GiyCNPZpZ0h2R1nlr6ZOUuBnJn5u0e0Zsg+4Ii5ZAzRP6HKt2lMhNpMaBGDKpHNRne4QVPenJ76V0ylOU7/y++0PKeHx+ShZJI2UZ8cw8cXs+lFWo5yHlKVaUiFELv4bzOlTxashY2ZIgeJlppyQ9EYUuolo6EiU8HUV56jkkVGeFJ9eq8tMa3Y47rifjl3GZtGybEeXSIih59daSxAxJJakgKFUAmi/UUqWKjEUVkir5pLuinq0cw7bAVOiqxySW8KWSMSiz0QjOeKjiFvzIXYNdEO9ZDaCkx6mMWx3x1lIQG0IddcYpIVMIoVqQc7ZlrsAziBkdo7AyWa2p1TInDSeL9jBZiIagM0HwKNWQUVavlPMiGXDHsZon1pIvg1NyAszzxpyRcYmCtzpPMr+2iSepsFVILZW5mpd9B0ShClOUyUGsJWhWnp/ks6BEGqlEeLkRrjuOIF2S8HfTecP7Ij1F25Oe/K5Le1FaogFRHz736kkK5giEEwk0rcm4xc2KB2uSHi8E5iTdT8NpqnAqzuOg4P42Zfld60C1Xlc8bJshhFV1USwnvB9daCEwHgmRhe2IUsknPCgNj6qCaob9teTESDhVlYRN5OO6mq0PujEYZbbS4yQl4TEqDaVnwrL45g0sJDxI3WYmzAe46zAaHm2LAskRaoPnCaHOjhhFkmu0Bt960FMrNiWyocaJgq1kDGaQgMqeJxgGEMqH9JpbblxxFWKlrGy6Y5usKDDZxoqHbyzOu9T65TSBbGNabBMt5cqmSRVHaT86gSlYF7Go4CkTGcDndnOjR2DSAzR33IKJrcvDZtxz3o7lWWhDxCD9J76I9txOKnd/h1S/xbagM0eIzETAEBQPfAalI8+j+uCPKd//bf/stXfgy8+s5rX3Ij1F25Oe/L5Jx4XOvHfUj1tEFIAkyoQ2YSFXgIjQ4BkNJ6tC1BwfBI8QAjIW/GpjO6KowIUPczggjYZaU6KYUwTi+A4hlKpoU821DhK81Lbk0PLuvLYd9F6yHtb/rQjg5Lj12pvAUlwLP2UygtDAQA2BEiFfreQXWnfclPnNJr6X+mY7RTBs9Jy462bQKWFTAiZdLtEugXhavCxVqJqDTaegFUPHOm9bw+cNfL7SlsGQIbv2EJrrN7newaqwRGmZsoTes5A94Fgyyw6lcu81xNVZNzYNwavRYMFkSgw95U8gDbM//Dy2WfFK18950c1Z8aBzGDzlNTQnHmbqex+GRtPPq0UMpAqYWo6lz/sHsmMHUvn5j5n+7t8HsFY2PCeUITd2AmNP/wAA87deTPmBi9zzWXDoZh8xiWDo7D+jcNiT3e2Pp2lt/onjO+4TRLgeO5tj6Ow/x5iI7PJDqW6+ltjOOmNuAU8luq/SU7Q96cnvodikV7KTQDmoHpyiifOE0pnE4mqbYGbkGFIGZBN/7iLlxBfiYSkdo0l61h18jaNfnZRoQWkhVcmk6FZ+CTSx966V8lBDonouXSgVbar7Ja4xEsKFthZKtnBNCVTBZt3xsWkKq59Ae2orrYVHgpJWFq0Knmkrt+Q4CmtOo/rAj2mOPxhytdCVNza5HCOnvZn04DJmrv407YmHnPLVULiAgkhB4aDTGX3KX9GpzTHx7f9Dp7aj+34pTSWw5MXvIb/meNqz2xn/0puwqbr3zI2U1tgKpAurWPLsD2CiFIXVpzLx3XeGvL6EmDWfOvCEF9N3zHkAxLV55q7/kvOmc3JeQXEbC/3Hv5RUYZDCmpPJ7X8M9XW3eYNH862mBOn9lpMdOxCA4qFPYFoNioSSt9Pus0xxlX/MMkvWAE5x0nY1rraJSylkwKYSsZ1G7NDDJfc9c7iIAhCbFp25HaSHVtBZmCKerbr8tt57RdkLUGxv0lO0PenJ76n4MJ2iTiUHa+sS0uzgFESFoHw1RGhx3LcaVkxlod10uTIkrNnB11aqN5IaXkJ66RiN8QegZl0ONnbHMRlcOC4Gimn6Dj+XeK5Kbd1PHEBI2IyA0CmnDbllR9N/1Ato7LiLhZsudUpckbgaOm6CTadYcv7byS07irmbv0zlnqvCNSm9o6Cjc0uOZuy574coxc5LP0Zt3XVB+SvRhyy6I0/6C0qHn4ONO+z4xltpTa8PYCxVtlWI+vsYe/Z7MOkspbXnsPULfwTlOBggqsDaUFz6ZIqHOs9r8ImvZPJrf4NRMJSeX2poS0c+A5POku4fo7DfaZRvuzQwQel9kOhFbv+jAUgPrSC1fAnt6hZXAzwDdqcopSxEfSVM5G5ulO13ZTZ98tyo8tRSopqGQiCuzHsv3vSBncCX6NCBxua7yRy1kk59nlbl0S5mLaXFNGlob9lCbePtFNacyMJd33WGkcEDnpAaa5uCyr1Xk9v/aKKBIRbuuMhzWtu0hKzBA7Nmrvg07ZMniGtT1Nb9zF1TWp45VeIAqZgdX3kH+TXH0dh6L2SaIc2haYQRd197irYnPenJY4oPmSrQRTzBTPFghp/zOjrzk0x//+OQavh61mRe0saw5Nlvp7T2bCoPXsfOKz4KkQ1gKKWzA9JjK1n+R/9ClC2ycMelzFz1GY+qtf0u/4Yr02XwuJcxcOKLAJi6Nk3l9h/6nJydINSPGhh9yjtI949SPPg06uvvpjX7aED9apmGgdzSIyge9CQABk99OZU7r3ILuOblNCxah/yaEzFplzwsHHwKtYevc15PCef11PC51PTQfgCYKEV6ZAWthfVuIVYDRVG2CxC0qnGLtOSIu3LWQGtiMzbuYKIUremNUBKlYQmUmGJo1NZdR2H/k4kbFeob7wqhdeVaVlIRYO6mi+g/4QXUH72Z9uTW4P0j0QIJpTc3PcDsTZ8ju+Rw5m/4RkCFJ40NGe/CPZcQU4ZmTOX+a/z3ntAiBQy4kOvsjz5J5ZEraU/uIK4I1Flz0k1CY/lGh53fejemLwXZjmN0qrt511pkK2hlu1Bl53c+7NDPOVGaCuBKpjCATnme2Wu/FFrilQmUpAqEQrz71izV9T92EQZ51qI0pArQrkmERA2/vUhP0fakJz1xomUWwNCTX0V+5VGwEuqb7qKy+SrpZ0toVQaYTJHS2rMBKB1+JtPXDBA355wi0ppOCRtnxw4iyjqu2tzKo9wBkrWdojhoQpQL5XuRGQqL8SyeAcksgG1AXJ2B/lFsp0UcJ9wLzZ3K8VvtrXSqs6SKQ9TH78VmZAEtEWo5cb9X7/kxpcPPxaSzVO67yucczYAs9OqJVWH2us8ydPpraM1vorb+ptCBR0FMC+6YcbvM5OXvp3DIaVTvuRai2IWeFwhIb5Hm5APs+NbbSKfHqK27OSjNZFhaGjXUN13F1k/fRlyrY03VjXGeUNYT4WtZF277Bgv3fiP07h1129lmIh8uDFvl+y9xuXN9NhQNroaZXicxlbuucNeiUQfNofe7/60CiAqW5paHutvnaSgcQh5bPcyoQyrjwsqdqgNeQZiryDoAl41EOWrJmShR76FKqY7Rc8ZuWx/iVkS4lkGJAeZbLqrhpvXleXdtdpZ9kp6i7UlPeuJEwTMxtKa2UFhzAtbGtCvbnNdlcflEobNz/LpVautvpXDQydQevYu47IoeLYRSH1zosPboLdS23UZmYA1z133FfaELd0PyxuKBzt18ESaVJa5XKa/7nlMWTRzVnmxnBeAy+Z33UzzmLBrz99OpT4ZyG0Wzitccd2bZ/o03khnYj8amBwK7kS7OGjquQGtmI9v+/RXQb7Btt6qbluQFNSzbcsduTjzAxNffgUfwCpI2KoliEOQxQGPmDhq33OERt3bWbWtKhPpe4z5rTT5Cq/6I21HLeTRPqbnXjtAZdhxk1/QR8tdJJZPCKdsmoeNMkdAbVmuH9bhyHTYj2yi1YZouxirAl2l5j1zRxJrz1v0NoVWdjoswXiPheztJQJhrGqONZ4VSpK8BooLbL645j98/d1qmJWKkvteqt69gPM23ag2tRkCazogDOfeIU/amAW0p1bKT4b7uTXqEFT3pSU92lUJE8YgzaM9O0tz4kHNcsriuLrOyjeZCiUgNjNCpTDvk627EKFGEhpRbhFCtKjoJCXqAE6CEEgb3P3MEAgPJ6XoliRxPPZkIpxRFmZs+grJJoqQ1ZLqEoEAadNcJKxuU0i5q7tnQTVWp20v9ql/0RYF7AI1SFkrezwwR+IcVTZwM0SZKmnwrO1XKSQWSTygjiSSYYmLs04RG9BpBUMUo4zdNXHmTSZxHSntMXo6dBGTp/pJH9bXKWnMr5zJpUV4lGVsJD7gzqsjn8UQZtu7QvZFJKD1kzoSYI8pD3HDfe8Ys9Uo1jCzgOjOIb0CAJQD+NKIi+xgpL7N6HcIoFVUgNwb1SVwHqIr7P57tEVb0pCc9+UWkFlO967qgTFRJShjUh1IBMjGx2dm9vxImqJJKht7UW1HlpJ6ELnjCZeuBV2VCiFWR0B3cwq7eiQJ/UgRvRj0/Ec3DmQrB480RFHOyvjehoL3ysDhFoB5qh0Dc0UpsqwQbGj5WRa5GgB5PQuC+V7CG0ZOh1KQbJIrXaDlSnqC01UMrJ3KtOEXlFew8QfHp8XSemgQCfS35qibuixJYaP5TFWsyPFsTZWpwhooqMglFkxUAk+4zj6d0tG15XpqSO9XSrSyh5lfR0RnxXiPoaF205o7lGbK4ML+Zl9y2etKJfHUXaYmGw9VYGpZ5nnXXbuccCUhdGacUGLWPHm1P0fakJz3ZvciCZAq40K6EAo0oISvUe55codOtF5SezzMoaW5LKPJ8aFkRwiX5O1mnqhR6SvJQkjBrDewMQZk2E+fQutUqXeFrryhV8evfWk8s6GASisovwMotnMF5sMoWFUt+EMnnpWSekvW1BZwyVhpLPX7ReY/euGgQENsassWdy6adR24XCFzEEFrTJXmE1QtWhVUmGDFqMOj1F+imGkzLvZkmGFedxPfqpSbzmi251uTfun0+MUadF1VoSrgRy3MiStcUnPcZT+KQyHUCaE9rthWEpEq+RMhNC7GEnYrIjh1Ku7UdW5l3z2NWrk9z3fLsZpYdTG7NUdS2/5S4NuPGuIDP61q5X3Y2y8AZLyPK55m/4yI6dQ2vPLb0FG1PetKTPUss4eFEcaxvY6YLtjI5aSgR952NwVQl36aeRhpX7gHYfrq9QTmfL6EYwi3EnUQIsINrMtBHUAKJsfpSojoBrKPh0STgSPPBMlbPnKSekU386JhUMes+iZpb8ngwkCnjgGPzonR1f2WSilw4187JvlpWpefQnKkoAatz0HHHiYV5CWROk9elhBnTsm/kcssU5TutqVWjQVDGxhQw2Qzx/Lw/LhBC7DmcUsaQX3YSneYUrfIGPOhLIhBWw9IFyAweQPHQs6hvupXG9H2BRamEb3vnQuURQ+e+jvTgAczd+CVam3/uKTptJXjopgiZlYex5Lx3Y+M2Oy97D+3xje44Rbk25UsGRp/9dooHP5lOeYrx/34TNj/vnr2UzLXQZ0alEZb+0d8RZfKUpp7GxDfe5Ik+jEZJcu7a+k9+NgOnXOCfoemr/p19kWjvm/SkJz35vRZVFurttROfaZF/ne6wJO5vK96YVQL6lgOU0JAQbtJzVK9UlYEqoWS4WQBQLBCYlJDP+haNWXPKKYJiTm6vPLySn7QLTvnZWHJ+4q36shoNofeZoHgK4uGPyt+DYT+T7yez7GComwAwwp3PqCJNAcuhcMSZlFY+GaOM/xo6TXqhDcguPYDRZ76dvuOeH7w6nRMJWytYaeiJf8LKl/8Hfcc/N3ihqvSH5fgNyJTWsPKPv8DKl32Z0tFP8R610QiEhoLnYfC0VzH2B+9l2Uv/heyStWE+NezeL/93DGPP/yADJ7+IJc95P1F9IBByGJyyldB94YCT6Vv7bPL7Hc3wk/8MKw0KmBcQU0JLlQ47j1RxiHTfEoqHnOM8zTbYaYlwqDefhtzKYwHXYCPdv9IBnMpiKGpUA4jyJaKMg9uniiMh4jIg16PPegviOIRI4lYtYAP2Ij2Ptic96ckvJla8rCT14uJNOm7RilSZNRK6oyOLuYWoMEDH1tzGWgM5R1Cg87im4SND5JccTWPjvcTMhnZriqzt4ME+paOeTnp0KQu3XkrcmA+KLoVTNC0XEkyvXM7wGX9GXF1g+sp/x6ZqQbkQgDUmBYOnvpq+455Pffst7Lzqw1CP3fHmcIjoGTfmaP8hlj/n46SKw5TvvoKZKz7urimPI6NXkFQNSkufwchZb3RD61vCwj3f8oAjE4lXJfnZkae+jezYQZQOP5vmzMM0NtwXxqiedRui/mUMnPJCAIae/BoWbr8ME8chtNzAgY2akD/6RKKcs1IKBz+R6j0/cgxYGi5P5DEzwtZkohSZ0TW0pu93z4DWDaun2DaYyCWhTSoNuSgo2QWcEhNWsHZl0tcMt+e3h65AeTCjEEtpkMlDfeutlI48F2xMfdMd7p4m0dMJXuj5G7/CwOkvc60a5x4OhpyVKEu/uxft6mZmrvss+ZUnsHDrdwJ9pYalteTIQuW2KzAdMNk8C/ddts+uak/R9qQnPdlnKR1zLvnVx7Jw+2U0tz+0W+UKkOofY+z5/weTybHz0r+nNbXReSfgvBnxXE0H+k57AUNPfg3thUl2fPcv6VSnQxjQ4hbSApBOs/z5/0i6fxnt2e1s/8qfQTr2XXWo4VGnhUNOY/ScvwAgXdqPqe//XVAy4tlpKHPwpD92fXaB5uQGFu6+JJQIyfWZuluc+457vqMl3O90MumVtDNbXB5RPf0Y6IN0aQ2p4jAA+QNPcAo2iwdD2QKYBSAF6f6xMG8jY3jUbjKcLqUxccNBoa2NoVkN3M9Fuf4GziOrzdJemCDdv5TWxCOYvtiNL+e2szvd8Y2Bxqab6FRfQJTrp7ruagdKGsOhyzUF2ec89fmbv0yqOEB7fpLqfdc6on+JUFgNjacAG7PzWx+gdNxTqY3fjI1mQ6MHBbNVJQI/uYEd3/lLsqOrqN1/PabuDCDbkPB6Tn4vQ/3BGxiffS02G9PZMtWdP1bwnSC8y/ddTvmuy0MKQZsiaB6/EwyU8h3foXz9d7oUp63g+gYryKoDmJjKg9+Xh4LuqMpjSE/R9qQnPdknSY/uz5JnvQWA/Oqj2frvf7LHbftPeAa5lYcDMHDK85n6/r96fmUbS0hQEMfFo85yx+8fI3fY0dRu/4lTSqpExFNKDeRJ9y9z2w6twJgcNl9zRAVKpTiMeL9haTMm7c6nC67BNRbPuPN3KhN+20513OeCLQ4IYzRPmYb6+pspHHIGzYkNdCYm3GKtzEdamtSAxtb7qW24jdyKw5m/7auh1Kco1z6HBzst3PJtUqVlGJNm/tavutpRNQg0dCqh553f+zv6TjqP1uZHaG7c4MOads6Nz2TdeSwNdnzzLWQHDqEx9XPfPN3gxqBGQTQKnfltjH/qVW5gnbYP41thdTIpsH0u397a+TAT33yLu5dCEkHFfe+9QEGBN3beS+Oae303IY18mKbzJD0YKYb2pnW059a58wpozJNoDAATLkdLCVcrPS3jivD11N4LF0S3jfBt+ZCyIq3JRfPjmtsVdLQZldByLPdVfzRi3Ja5VpCeer17kZ6i7UlPerJv0m75EF/cfOz+YI1tDyZ+f6D7S61RxHkq5fuuZuTJh9CeG6f587tdmQh4pWgFSBXPlZn96ecoHv4UKvdfjW3WPBORGXIej/adrT16PTM3fo50YRnzN34tdBzS0iGDzxnO/fQimts2EtcXqG++3SGHNQ8tXovB/T/9nY+QGlxBe34S0276z6ngvKQxly+k2WLyG+8J3pbmdzOykAuzELMQlxeYvuIfgkesZU+DhFIfoV2Mo1kW7vyqU0gQjq9oXlGKtCGuzlOfut0RLUgYWBuyR6ooc0Kq0dET603rvgdGFKPpl3mu45TUPKG9nBBoeFCaXnOTgCwvEMB0JDB2ikJvEXoVCzFKYKByx7M1t41XhFWcF56HVEbIK4wzknytt96ftEyZgOWMeqta09sm1BkPExrCK7czdCOo9fu9SI+w4jdcFAfRk578Jkh+zXHkVh1N5d5raM+OP+a2mbEDMKkMzfGH93pcky1g2w0MsffizFIc4rZMYA2SkhAzKF5RGeeJFMWz0XpU8AQXCFrX6Oe6QDfxNbfalcVqfk5DxjjCBP39MSWLa+9nZNxJ5HIk5/CTIwfUfHSN0OdXZSnOI9tK6Cs7gC9x8fWcWteaCrlvHa9JgSlJmDqS65WSmhinaL1yV6DUECFsb/BkGCYWRYs7hlXE+RLZTr109f7Uk4VQTqM5XBmrJwCJ5fcFXJjaEghDVGmPuOvwHmeSkCTC12PbJpgRuR8zhDrbPvGCNZ9rwpzbVGIMSW9Xxy6gPNPvzm9SToHbphvr3ggrfinU8Uc/+lGMMbzlLW/xn9XrdS688EJGR0fp6+vjggsuYMeOHV37bdq0ifPPP59iscjSpUt5xzveQbu9j8Hu3zPpKdme/CZJfeNdzP3sv/aqZAFak4/uk5IFnHcaxw6xq+HQWfClNwNhgacji7pyE+edZ+ypAZWYQOtsZZFlAKcU8oRuPcpvq8rdyE8CobxP76DBsQUt4Bb+IQLTldSMmpKMQ0uBlDxBFI2VOlhbxJVB5eV46v1H4p0lSSCU9CLCIZlLomBLOGOi6BR8nHeEC3EsgGYjn1k57rDkRfW8WbADuDIYzWlKnaxp49DWg4SwqjI1ZUV5C3GIb3mo5Bq470yOUF+tHrDyLwu1pRnAk1gQi7FQlxCyGEsmS6gFlly5UfR1BaVi9p2UrBoBgqa2RadkTQxR5MLjpugaxvuQvYKocnhmKavEI/sov3Do+JZbbuHTn/40xx57bNfnb33rW/ne977H17/+dQYHB3njG9/IC1/4Qq677joAOp0O559/PsuXL+f6669n+/btvOIVryCTyfDhD3/4Fx1OT3rSk99wSa5Lj6m8tKxF2YUGCSQQqnh1G/29Scg9Lt7f4hSW5FJpyfEk/9hFw6deZ4QnoLeGQD1o97C+WoKiV09vEN/f1JNS9ONqXFVBagmN0hpqqLgDTBCUqm4jHrM3EpKsSbOEnK50QvLcwqrM+nAKcAqPZvaUilpiVXfH7iLMlzpgn1/PyH46f0oR2XRK1EYEqkyd1wyOBlPqnI3OUTlxzSVCiU6VQOzfct6nGRQvPQ2deVGcalToPMzJvgafS/ZsYRHYVgoT5SBXDWU+glaOIpnbWZfzza44krhRpTW1MdQUJ0Pi++gJ/UIebblc5mUvexmf/exnGR4e9p/Pzc3xuc99jn/6p3/inHPO4aSTTuILX/gC119/PTfeeCMAV155Jffffz8XXXQRxx9/PM985jP5wAc+wCc/+UmazeaeTtmTnvTkt1ySa5JZ9LPLtuLdkRIPSj1F9ViTdaO6bJQIIcQky5SGZ5USMElu0BEPNsIT2Zu0hFtz+PymjSRsLejhpN7XH2NCLpdpnOIryXkLMo5pObewDvmcZgmn9Ey4brSLjCgSAy6/XaEbFZ0hdM7RcKqicVt4rmULwYOG0MZOjYQ+Nze2Jp4tBN5mKYWyxnmAVvKndgHnOfbnyOy3CtIRJgdRvxD+y7GNepptyK86meLap0A2wtZlXksQ7Q/RmLsOE0M6t5Th8y6k/0nPd8pV7ke6D1KjYMbc8W0H+ta+gGXP+wT9x74woI/l3npQWQtMYZiVr/4Mq97wNfqOeLb3WrWyzGYgrkCcg76znsfSP/p7lr3q4+QPPTFoS5OYt32kYPyFFO2FF17I+eefz7nnntv1+W233Uar1er6/IgjjmD16tXccMMNANxwww0cc8wxLFu2zG9z3nnnMT8/z3333bfb8zUaDebn57t+etKTnvz2yWLlBAT6QqX1g6BIK3gUcBd5g3qhCmxKEXiEtY2c5kCllMhK7SjThKbwMY7yLwWmGcLGJodnBbJG9hsAOySKxrhF2eoKmgHbl8j1tUUZVQhxQw2BdnLQiEIOU8lAJIxqJB9Kq0Bu7GRMc9B7Y/561IAAKEBxzRn0n/RSTDTowpoKoGoQmg8AUWmQkXPezsjT34wZLLnxKZtSnhAhqEHphGey3+u+xtiL34/pz7rvxsTQsATAWLbA0uf+K8te+O8MP+ttIXerpB55d+2mBYX9z2TJc97LyDP+kv5TXu7OXXapgHgO4m0yF3kYetYbKR3zTAZPfy2F407xJBedOWjP4nr0loBmkaFTX0Nm+AAGT/sTUsU+p+Ajp+wjQZnTgvzSY0gPON1TOuLcQE9pXejfilFmW5Addah5YyKyKw4JD6vm77VUaB/kcYeOL774Ym6//XZuueWWXb4bHx8nm80yNDTU9fmyZcsYHx/32ySVrH6v3+1OPvKRj/C+973v8Q61Jz3pyW+4eG/QulAdEBSqoDv9wq35uiScQ4BAqdISyEV0mHChw3Y4htWaXQNmOEfxgCfSmttMc/whNwZVYsrbLMomt+YUCvufSvn+a2hufSCAr0TpmyJuAU8XGX3u20kNjDLzw0/S3PRQKGVC8qXiBRUPOovRp7yNTmWWiUv+inZlR3eXmz4cy9QsLHvuR8guO4T2/ATjX3kD1jYwI+56fLgXyA4ewZJn/Q0AueVHMvnt9wRGJ1XOUjI0cPBLKB16tpu6+k7mfvpfLhSsDEdN+b0MAye/iChbJL/6RLIjR9LYeFdoKB+FbdMjK8kM7g9Afs2pcK18X3JGAwrI6oP00qX+1qULY457OCOGVh6H2LYQpcC2wo2OG02YdV54nMf3RgawrQat2W1khlbSWRjH5Osu55qBVE4A1XXXTrCx8V7a8xOkB5ZSue+H4bolVG3TEIlCL9/xDTJDq7Fxhfrmq1wzA0lPRG1I9UNzln2Sx6VoN2/ezJvf/Gauuuoq8vn849n1l5J3vetdvO1tb/N/z8/Ps2rVqv+x8/ekJz351Uj+oJMYOPl51DbcwcItl/jPLS5EbIw4DCbD2NP/huzKw5n98ReorLvSky10iYX8YScydt57ANh5xd9R23F9QNBKCY3mKEfPfhvFQ87Exh3GL3oLrR0bQqmKhHethag9xJLz/gaTSlM87Els+X9/CBXrwpqRKDsppykdcxaFg04FYODUlzE57sbim4TPyVgz0Lf2aZgoRbp/lPzKk6isvxw7KGPUvPI0kIo8C1N6YClRZtAZEdLggYocewlEAwU/HVGu4JSHGiqqOBvu787CjN+2szDtAEJawlOT7SWCUN98B31rz6NTnaa189FQf6pUlxI1aG3fSG39reTXHM/CrZc4NK5182msRAY6Ljxbue0HpAfXEGX7mbvpy5g+HJJX8rEMiwK1MHfFv9I66Tl0yltoPnSXm3PrrpkKvo2esR0mvvkOikceRXPiftqzbWzTebJmFKLYeaimBJ3KNNs+/TpShTxxXHY5Y7mXJufGGE+5Z6W5cz1Tl73R3e86pIags4Cn52zP8+upo73tttuYmJjgxBNPDDer0+EnP/kJn/jEJ7jiiitoNpvMzs52ebU7duxg+fLlACxfvpybb76567iKStZtFksulyOXy+32u570pCe/PbLk2X9JqjBA4cATqa+/ldbUZv+dRRZSIL/fWgoHnwzA4BkvpXzPlT6faZIhZAOFlSdgIhfDy686gdq917uDCDDGNxHvh/SQi56ZKEW6NEbLbHAKvA12Hue1WiBv/WCs7TivTD1EBQ6VgSK06ht9fXFrfL0j8e9zP1YpIiWvWnnox+SWH0tcW6A+eWcobRHP3JQkB5uJmf3J5+g7/tnU1l9Pe2bCdZHZQcjtCkCpvvkOZn/2eTIjBzB3z1ed8mwR+IqV9L8DCw99k055ClJtKg/9NIQUqi4kbCTMSwpmfvAJynddRjuewDYr4Sa13XX7fK9ts/N77w3N00eBSXztqi3gQ+O2UWPm8n9xir1fohgLMs60hO8FoBXbOcoPXORywVpmFAFTAk6r4gFXdmGO6s3Xo7SgNoY4BWbB9awl50LXLnrSJm6UYQQ//yYj974uERQZV5yBKCcRhDykShAL5aTJANOO42Nv8rgU7VOf+lTuueeers9e/epXc8QRR/DOd76TVatWkclkuOaaa7jgggsAePDBB9m0aRNnnHEGAGeccQYf+tCHmJiYYKmEEa666ioGBgZYu3YtPelJT353pbMwRaowQNysE9fLe9yuuXMjncoMqdIw9Y13uUVdAEA2TehZWoTKQ1dTOPhMTJSmcucVvpTDl3VorrYJ0z/+FEOnvZLWjg3UNt7qmJo6biFN1rnG1TkmvvFeCoecTGXDtZhh63OdPg8raODG5P2Mf/nNpIojNMbvcO3sqpI/rBFqZiOo3HoVtQduwrYa2LgRQsYa5lZF1oCFWy5l4f5L/bVYNS40ud3GA67mb/1WUKpiCBiLQ/UqOrsBNGKqD/wQBiR6UMR3RLItmdu0bN+ytLZsCGAuzQtrCY7eA+UY1q5LCkhT7uM5N2dRv/vbppyS1XCtiV1+VBvax1NyjqzL3dIkjEGAYmqUReAZpqwgwqOSKMamXJMSTihxhypXRW2LZ25SYmxo5ESVtuTy7bSA5gQ9nco6o2hfFO0vTVhx9tlnc/zxx/Mv//IvALzhDW/g8ssv54tf/CIDAwO86U1vAuD6652V2el0OP7441m5ciUf+9jHGB8f5+Uvfzmvfe1r97m85/eJsKInPfldklRpmOLhZ1Lfch+tiQ2PuW1UGCA9uIzW+DpIWZfDk5Zw3rtUJLGWrmgJzDyhnyvyvdDx+XIRzQm3XX3pLiuh0OyZDIG6T3PGqmiEgMEoWljLdhpOaVHBLfLKPDRPKDNS5DAED1Vb3imRBASUa0q8KF38LUQDzquzHeflmT6HmvV0hHmnoI2SWmRwylkJGaybJ5MShiitj1XiiYbsN0I3+5POZ1nGnJb5V5CZzJfJ4DvsREX5O5awb8p5/KYgRo6Cq9SQkXCz1uV6iktFaSviXEqODG4OogPx4Ws7LdcyIONQ4FmCb9mkIJWHtoamM2CEApLIfR8poYkyUOUhU4DODNRm905Y8SunYPznf/5noijiggsuoNFocN555/Fv//Zv/vtUKsVll13GG97wBs444wxKpRKvfOUref/73/+rHkpPetKT3zDpVGZYuP2yfdo2rs3TrLkKA2MITeS1DjZZ06rI0g4uj6idbxQwo2QFAn4xo7hFt+wWe086n1S2qkhTsujqMQuymSohBQd1nIfje5g2cApTa2CreBpG14cVjyA24vVag1N2Azj0sNaiDroctq/HjSXEKp61emq2QWjeYCUMLaFTjz5Ohn2LOCXUEq9WPdSEcu+qw7IEhVonGDt1nBGhClY8UFtxxycNcROn5IVkwgra2YrBYeRm2jaO8GNOvs/IOBcSY2u5c5q82z7Ku+uOazg2KEWMK9BL78VAmHPAUzK2xQAyEm7P7AfNzTK/g+46bF3mKSXVPXlo7WObvB4FY0960pPfCjEpnCcjDEJWPjNFnMc170KN1rpFN7J098hNiUfSwYFulL6v5UKG8RTdjeSFC9g3jQfox3WX0fpVDWmnRTlKaYyvaVUUs3qz6t0SjmmyBG9Juu94vl9lXSqJskeUcl68Ws3FKhpblaMaJWWnbEyG0L2mROARzuOUmOzvG9UrvWMa33yhi7dYvU/kmGk5nuS7fXP7inymJUeqKDOJaxdaSIvb1sgY7U48SYi2ziOf8M41TB2JEYI7thl299HIXNiUjEPJMJKeeSoxLq3ZlrKdWPKyGBdmtrFcU5witXyEzswU1sbYmf8Fj7YnPelJT34tIgAVzTkaVSxNMFN4IvxYPa844fEiSlAUr5kmKMI+pyTNjCymypikSFib2FY8UtPGLcJV8ZokJOoXf2VvWgjhUp8r1tCr1gAvES9sXsZXk/ypepWG0KFGiS+MbCNKQps0eKJ8rUFW0og6AbFcJnAUVwmMUhCYtVSJtiQsrQZI1s2X93ArhLxxH8FQyIpn2omgZoXrUfKzSulYFUXaANJpciuPpFXehK3MOQ9S66FJ/F+HzH5Hkj9gLdVN19KZmXLHEQYwkxYPuQqmL8/gE14F7QxzP/0i8fyCuzbN96q33YD8QWcw/JTX09q5ianLP4SN65732Szgow+2nWLpH3yU3Mojqa67gZ0//BD7Ij1F25Oe9OS3QrTeFgjeSB+uXnNCwsPgFKGWymiZi4R9Lc7TMapMYlHMkzilVHVhZdt0oVTvsRZEAauC6cOhYVt4DmA9n225/422gZNwt+ZE7TyB7EBJ7DX3KNdnVVmqh5oYb5Tqx7SzdOIpfx12BFcWpMZHDmhHFA48nfbCBK0t69z+gzImJdbH/Z9dcyTFQ8+k+vD1NHbeHzrpiAK2Cq5Kpxl5woWkh1Yze9d/0Nz6c6dFZugGTFnILTmaJc95N7bdYOKr/5fWzEangOuyfSLiMPbcv6Fw8Cl0ytNsv/hCbGuhK0dtxKON+pey7CUfxqQyFA99Eju+8xaPqDZ5ArdxBvpOej6lI58NQGwbzF3zmWAs6RwVgCYMnPZSUqVRUqVR8mtOorb+OufJa/5ZwtWp4hJyK48EoHjIGXCl3pzHll+IGaonPelJT/43xJcAaeg2EuCKhgq1/EbClzaVdgpYcpOmQHBzNV87D6nsENklR4CJHIBmAbcQq2Kty2f1FH2HPovSqqe71b8t+TupxbStMNDMyGEsOf+v6Vv7QjyPcDNcByUcaKpiGHnqhax8/ZfoP/n5TrEqa1TWjcP0uzB2tu9QVrzq86x43RcoHHK2ywtrRx5FzHbc30Nnv44lz/xrlr3on8iuOsKdWNHYSv5RAZPOMfb899N//PMZe/77iUo5nzNWz9tEYMagcODplA5/GrllhzN07GtCKLlFyEELQK10xNOIckUHgFv7ZDdHNTGIOsEwskBuP6e8Un0jpEvLgu7S3LyEcFOFIibl4s5RcdCF//V+Nlxe21bd8TvlgGq39XJ3NyEFb7Xdc9SYdqyEcatKc3p9aCCviGPxruNoktr6mwAo3/cDqO5dyerpetKTnvTkt0Iyo6sYedrr6VRmmb7yE9hyzeUggTgKOUYLDD/zQvqOeia1R25m57c+CPW4u6OOeF/p4hKW/uHHiQr9lO+9gumrPh48UXAKXbiJ+094EUNn/rH7PJ9l4YbLnDIQhaggHSwsedZbyYyuonjQE2hM3E9z3QNuPy3hkfxqeul+9B35TACGznolC/d/221XlvzzIM4DbEHu0OOJso6gonjY6dQevLarRMV7vhYyI47Ux5iIzLL9aU48EPKsml9WnmRFIhkDc8b3BLa481oBcLVmt/ma4fbkZjcvmqPVcUhnotq6myiuPRvbaVNbf3u49kViIpi94UsMnPxS6hvvpLVlfRc4ytNvAu3Go8xe92myy45l4fZvY4VcQut/raCEaUDl7suxcQPTyVK55wduXGqMKepYeuPO3fxZag/9mHZlJ3F5yoWUp3Eer8G3YyQfs/O7H4AoDa22K0vS/P1jSE/R9qQnPfmtkaEnvZz8muMA11B+4a7vJvKBiQ1TKfqOcsqrcPCppAbG6MzvcN6Z1MIaATmlxw4gKvQDkFt5tNtfFbEqj4xT4lGu358iivqD4lDPSxSNrUCnNk8GsHGHeK4clJvWxc47kFNcnaK9MEG6fymNrQ9gRGF4dLByRbSh+uh19B19PlGmRPnuKx0KNia0itMmADWYu+2LmPyf0V4Yp7r5JwFAlChrct5ag51Xv5/igU+k+uB12FY9kPJHuHrgCthpaNXWs+OrbyU9vILaIzeFXHOWgGoW5HL1oeup/9ur3PXXHoOfvgDVzd+neu/33TkV3JUGT87RDMcu3/Nd7PXfdSmCfjmvMnVJOZEDscVUH7wqdN1pJo6nXX9EUZqUpbn5QUzGUSvGWfeMKGOX0ZKreUftaNvtgDzfB+kp2p70pCe/NdKa2db9e0fAL1JLCYg32qG6/gaKB51BY9sDtBam3GKpxP2xeGnG9ditPXIL2eWHMHfdf2PbEmIWb4cSTpFNw/wNFxP157GNFvM3f9udTxsDCBGCku3v/PZHKB19Ds3tD9PescVtl3NAKl/rUQfbqbHja28hM7CG5rYHHTgri1PM426MFIAstKe3sf2/XgXtCFuJPRIXCA3QDTAMzYmHmbjy7Q641UwozVkCaljQxY11d9N4+O5QAqOGRpXQRUgaPLTG19Oqrg9N3EWxewBYARf+nnflXHsTWxflaJyj6MPvi6OyFt8H1qjCbODraaMhmVdFfSfrkTXiMC+f9xNy4IkORdTdsa2Sbeg1Zt09sWWxreQYZm63Tvou0ivv6UlPevLbIyaieNgZdCqzNLYs6val0c+i/F2PiAZG6cxPQ6bjPD9ZVI2igwUQ5HO/epysIIuVQCFL8KqEItAjmMVdMVJPa4VX2KiXJ0Aiv9DG4rEqklg9Vy232R8XKp4h0BoqWlk9LWVhWpBzFXG8vcKkZBVhLNsZcO3o9gemCKxNmjvWMhft6zss2+x031mtRZXyHCPhYa/MtE5VvHbbxpUWJcur9iLGQCpR+uPbHz6WqEeduI9ELlLg/9a+ue3EMQVE55HeygstuX0yYIbwzSH8vdGctHVGi627/G2vvKcnPenJ747YmOqD1+3hO/lP8ovYmHh20oV0lSRCADs2RwAmLXY1LE5xKMpYlVyiNtUIDaDnKVYka1sWeQWjDrnfbZXQyi8mlOnoMSKcJ1gkNG1X0FKW0JggofCMFQVo8Y3OowEcGrotdoCAeKyGrHfIMTI4RaOKR2tLlV1rnpB/zTrDxJcQKZK7llCkwrTlFXzrcSpZXN2zhVBKtC8S06WQjbatE3ISowQc6rEi900bKCTz2zqQQfe5Ly/S+yKGjiLRTUcMin2QnqLtSU968rslMV3hPKPKUvNpWp4zz2NXZihKdcEdk6V4pC59uBZw6i1paBKC0oLg8TVxJTsaihTFaDRMq7lGJY5Q6kZknOppCQrWdzHShgHaim9QlEtFwuNJUJeQ5nvqx3bieLqdklGoYaGKvoELKYsR4BWyKiMr3t/CbgyXfRBf6WMJ5BMiJrENyP1UpZzcALrQyt7jzkpaoZXYp9O9rS11b09WrrXqOI1NFto73ZxYVdB2342JnqLtSU968jsttpFAsEJQuh5WuwdRwIzm8mbxSGUjTEeeNMLgc6RGa2J1sa/gV1oLQam2caT5wu1rhFDDKktRgaB0dWdBv6qyMRpmzbm/7ZTz1s2gnNvgGZ586FtBWapsNfyqedgMnqjfe/cKylLKxGnnPWq4XEuB4iS/9OMUu+h/AJPOQSbXDabaXQQCyK85jrheprnjka5Qvc6rfpBdsobSMefS2HgnjfW3uQ/VYOjgwuUZIDIMnvUqsssPY/7Wr9Bu3xMMEx6fQdGro+3J74aoV2H2tmFPfh/FWlGI4BG/tr4XIEuM82Y7zluzCy4sjXWLt2m68K0RnmDTIJBcgFtdNV/clO0jQilQSUKdbVHcsogbK8paGxeIIjM5XFhT6ocZkOOIErVpiFtgpyFu40g21Osu4/OUhiKZoYMca5O+N9pgQMPVcs7C2jMpnfg0GEiFzj3gwsZV8egiSA2uZPictzFwygV7vReDZ/4hK//0Mwyc9tjbpodWsN/rP8f+b7qIvuPOe+xjnvESlr30Qyx/5T+TP+D4rvtq2w5gpTW7S170HvpPfQGjF7wb+sfoWDEe2nI9YojlVh5N/ykXkFt1DENnXdh1Pqse/D5Kz6Ptye+GJFhmetKT3UonoVj34o34lF2uhG03MFHbLay6uAp6WEE4Ua6f3OpjaGz9OXESaaugKfUeLRQOOZvM8v0p33EZtj3rjpM8tkjEKEPnvh7bbDD9g3/Hdiphu1FB2c46A2Dg+JcycNpLqW+6k53f+SA02iFEPueUghkAky2x/PkfJz2wlMr91zL9s38Inm4SDFSC4hHnMPqUtwGQ6lvG3I8v8tduNXzdcKHUsee8mfyqowBoTm6gvuH23c5rVBxk6IkvA2D47FezcMfl2GZtt9vmDzieVGkIgOIRT6Z81xW73Q4gs+wgAIyJyC49kPqjd+5xW5/INQaiKHQelGfCyAftnVPYTguTytCZHXc5WUTJ7vnou5Weou3J74Yo2MPsPSLYk57sTSzQd+x5jJx3IZ3KDDu++Q468xMhN6ohxDRgDWMv+xiZ0VW05ycY/4/XQ7u5i/I0FnIrj2XJeW8HINt/MJPfeJ/zYME/u3r+gSf8IcUDXR/v9uQW5m682ClDCV/H28Lx+096ISZKUzjgZDJjB9CaXBcoFjUXDGSGVpEecH3A8weeCNfiwFplnLer3mwGUrkRP/ZUZiR40hW6xdKlLPekOAHiRoXWzDYywytp7tyEbe2+ENUAtfW30l7YSao0TOXeq/d4TIC56y8mPbiMuDpH+e7H3nbyWx+g79jzqD96B+25Hbt8r2tHc2Yb419+O9mlB1F98Gc+VPyLrC09RduT3y35BazNnvRkd1I66ikYE5HuGyW/7HgqO6/0+UybYGAilSE9sh8A6YGlRPk+4vp0yHV2Eh5yOvRVM6ms944MBB5nkc78ZPh9boIoTuRAdyZykCWoPXozpcPOpjWzlfbC1sCCJDW1igRubl5HbcPN5PY/hoW7vx4aAURunAzKmEtQfvB7pPtWEGULzN/8X66DkDRqJyI0ogd2fu+f6D/hWTR3bqSx9ed7ntROm/Evv53cisNkuzigg+MwBwZgYZLxT/0JJsoQtxsuLy0/Vhsr4MbQntjAjv98i/tuL5Gt5vg6psfXPfZGuu2OR2jueGSftn0s6dXR9qQnPenJbqTv2Kcz8ow30inPMH7R24krk65NWx8ud9sQDzCG0vHPpu+YZ1B94KfM3/hVh0qOZJtFAKHS6c8jPbyKueu/Tnt2V49KJcpFFI97Ena2TuNhx6+bDH17ZzkFJh2R7l9J3JzEFhqBZhFc+FpaC5IGVuK84tnEZ8qcpMAorYmdwYeStVsR5VDG48klfkExWTCjLs9NWY6Z+N4bEyl3fiM1v7YhQDCt4dUSqyE3Zqut9GzCKNL/fg0ab291tD1F25Oe9KQnexCTLWDbLYjbTnFKc3CP6JXGAB6dK78aaVZuKm7bJEbPpl3HIO0vu+eT41DMsXfkupC5fuVOi5eZIbBjaSmRgrMU5JPFKSMZl3qvyrtMEae8Zt21+h62iU4/vi2f/cVKeZBWeZ4QRMZs9HgGp9QbCe9Ue+oKjaIv61HdVpZjKUpce+P2EwwNRYjXCTXKsM+1sI8lPcKKnvSkJz35BUXzjSZN6PyjHqoqXGWN0nrWCO8t2rTz1pSxSEO0XUxRexCTwim+liCktdxmwB1bS4wYEE8vQxdYy9f4KjlGXcaqbEiac63JNpYA3jJ0txlU4Jf21u38go6hcVzBjOJIONTTltP783X85qGZfCKda6X0iXm6yUMqDp1tpZbYzwF4j92I4WDkftiiIKh/BQp3T9Ir7+lJT3rSk72J1rdqU3NlVgJX6tIBm5dt1BMTNK86lBbXYSi27mePYkQJDDrlbopOeZh+XMnOkPPuVPmbinh7SjKhJyyEsXuXWHLG9BPYr7TfaoQLiWvbuyaBhEPy0coO9biVbAbMIERSgmdq4tEqMlrPo2FqVfxavrQo72p0vEoaUSCwcyVINHxJUoJO0+aAIXybPmMgKoiX/Xivax+l59H2pCc96clexMaSaxVErp0ntIerBS/PL+5IzW0i3msXESfsVoxTrJ7KUZXmEmBO6mu34zmHVYnacuIYHVzotU7I01YEeVwCO07gJk7Jj5Yf4a4H7QGb/DvZc1aV2j5IF6JalJ5Nah6dE21K0BZDQvazCYIOL7XE33kCCYhcv988nSEzupT2xHZ3ogQdo7X45hG2DflVxxH1j1D9+U+w7QAX/1VUMfQUbU968jsi6rR0Le44L0SJ9j3LUE8et1jrlKfmFr1yU4Wzu9DjHliM9nwShFSC4NFN43OMWJzCK8rf1cR+qvy0Y43W52rYt+LAR/Q7MFHSKHD9WdPQiqETO6OggKcr7Ko/TuXI738UzR3riSuzj3k5+QOOI7/fkVTuuYpOfSqEcZOGQRWiwgDD5/0Z5CLmrv40dm7WzbeCrVQRA8W1T2HwqX9Ga8cjTF3yAWyzDjOSp05InMqw9GX/SHbpQdTW3cDUJR9yc5Rz4XxjcTXGQP6AExl70fsBWFh5KDNXfsZXMPwqQEw9RduTnvwOiElBqiALiFD42VhClAn6PWtEYSRjZCn3ne9Xqty3v6pV5ndJYlFSsE9zE5WGHOFBolRnt5JKUzr8ibRmt9Pa/qBrYK5KVBWlhFXzy0+meOSZVB64lsaGu0LYFzyHMhUwmRzDT3sLmeGVzFzzaTrN+919NzhlHIVj51efxpKn/B/iepmJ//4/tGa3QlUuUcK6qvSWXfBe8quPoV2eZtt/vAHb2NV6MwbSI/ux9EXvx0QpCoecyo5vv637esQgMC0YOOUFFI88C4DOidPM/fCzfr5943cLNgV9p7+IKN9Hbs1x5A86jvqmm7ARxIkcrgHSg0vJLnVEFvmDToWsgT5L1KKLgtNtu8zvm+5b6li4RBlriPmXkV6Otic9+S0WIbchNQwm73J7pgQMuzyi1meajlvQorRTyKk+iEoQ5SDqg1QRUmnXpixKue9Mzwz/pSS3/1Hs//rPs9/rP0dp7dmPue3o0y9kyXPezvI//nuyyw8LoVwNRxdxOdtsiSXP/RtKRzyNJef/LaQywbuFgBrOQ/HoJ1A64klklx3M4JNfSWcW4mnJIyuIK+/2LR18LiaVIVUaprD2dBeKlebvvvONeIzZFYcCkO4bId2/xF9DBliahtSQyydHA3lM5FxYk+8LdI8a9s7LM2ugU97pj9OphN8945vW1xpobLoTgLg2T3PnepcfV4MykUNuz26ntuEGbNyhfPulzuqsQVwVQ7MQTlO/94dU7r6K+vrbmLv+i5g8RCsgWuby41H0y+Vve69ST3ryGyBJRqB93d4YAcMgoeFZiDvuM1uHuOn4YjvtWViouXNIeFH3R0gI0iv2Jzd6FPVNNxFnXdiOOm4hjhM/GpLuebp7lfwBx3mCisJBJ1O5/9o9bpseXgGAMRGp4eVQfsgppQXZIIfQKcbYThuTykCnDTnrvNgYR0yhfWrTOOalThuTStOa3eCir3mCQsrhWZ5qG6+jsOZUbLNGbdPt7t5LZIQOXfWyMz/8HAOnvpD6htto7dzoP+8AlQzOIKhAa/YRZq7+N3L7H838rd/y41L0sinjS5cqd36PTmsW4hS1+3/aNTcaEtYw9vw1n6F67zV0KpPEC/M+Z2yl646RfrHEMVPXfAhjDcxaH3aPVBkniERsp8HsD/7VRX3kOLYRAGfg9jUaFdL3YR+lV0fbk1+9KFii/asBEvyuS1dnmb2UfWSWrGHshf8XA+y85IN0Zje6RaGf0F2mz3ktg2e8moGTLqC9sJMdX34LcW3WLbQCbjGxKOsV/Sx7wWeJsn20pjcy+bMLsTvBzoEdIngVTVxuTcPPMt6e7F7SwytZ9pIPYrIFJr/1wV0b1Scku/wQhp/yGloz25i56d8h08YsEJ6HHJgxYAqyQ0dQWH0a1Yevo2XWBRBQPzBJCIvmIDOwhlTfUurbboNm7LZRGkVtdg4uH2sHsI0WtlUL4eiS23ZfiCmMcRETSjjlr974oADDtGmCCeCmpIFptYOQ9OzVY0ICe5BzPxacMWDcdds5OY6Eor1IUwbTds9spMxSkj7x9JfW1TabyH0Wa4i9k0gPS1SBijNObTM8/r062p782kWfSX0prHQnieoFUv2jtBtboWoddV3aeVtWF2+R/AEnYDJ5ag/fyO/V6q2Lh4bn9iL9xz+DjHg/fcedx+w1n3GhwBrO+xQ2HFJQOMTx5Kb7l5BdeQj1bbe6eVdyhSF3zlS6nyjbB0CqfxlswS2Sacn3So9SiwtHK1LV9w01spDu7tp0Jf09bPjQntnG1k/9yT5t2xxfx47/fpf7QxiQbIbQuECUnUlDc+YBmrMPuDpUZXLSnLo2tBfyiVZ1I63Zjfj61CYBJZ3GsVwBxC4Um+RHtpZQ6rMXMUZSDRlcnW8TT5NIVTzpjniEcr7FoVijIWA5vwm/AvLs9bn5YRWwGZjCdUGq4borERSjesDGJq5HyomsgMbsTPjeGFx9brP72fZEF9IekGbwxPe1gU8vR9uTxyX9pzyfVW/9OksveDdRlA5dvHTxBUwDolYfy179CZa/5lMMP+mNznptS56w6JopR8L2UjrhbJa95AMsfeHfMHDaC/9Xr+9/XBT5maCJ82Jwnmfa/UQRNDbdjbUx1sbUt97TjQbV0G7dhZLLd3wHG3dojj9Ec/Y+zFi392znHYCktXkbczd/nsa2e5j9wT+5Buf7STg60afTWLH4+109pIklrJfwUvxP5HK/JivH0Z6lPdm71J3HREO8rjShTlZX7GRZjiWEjCHkV/VvDdeq9onwdarWyrZKjiFK22qOeG/sVcg9TjtFqUrJxjhSin5RwGVRpAWHAfBKNLXoWFUZZp4QEobAq6zXPIGnjrSbCSAw8apNGo9wtgr2A29oGlGovvwJeb6rzqCxsTMUrKZZMnJ98j54NP/epwfoebQ92ZvoAimm2+AZLybKFigcciq55YfQ3P7AbnfLjK7xSL78gae6FxBC42x94DuQHVwR9hte+Wu8mN9QEUTpLn58xoExlO7P1KD+6A3s+I/XYw20G9tCSYfSAyrAJQuVdd+jctfl0HLRBNPBeTyGQM0nvUjLt36L8g3fcuMoAMO45uFzuPuVljDyAi5EDZ7xqGuxUc8pxvH8igds+txxrOTPfo9iFr+YWMkRtsCW5H1p4pq6150i8qF7BRhpeHaJ/K6MT3rPBY2stcDaaAABR5mieG7aYGBf62QTRpitA9tw9JMDYLe5EGuEKKZEa0Fj3NiNIN399STzTUq7WJDQ8oj73uzAPaM53DOpBokq0QrhOWuHw1nr5s+XSSVKsiz4pgbJ59N23LtnDNhBsBX2Tp+5SHqKtid7FIN7aE0K33eyseF2imvPpj03QXN6c9hYnsxYXvrG+EPUN95Fbv+1LNx6CbaEW7BlgU96YpWbLiM9dABRJs/CDV8llYZYiMN/LyQti9w8IW+lKMeqzFnKbUcB2nZbYLqRBdSI98AOWRRauNBYwQZlrOHdJLhJ2IGsAlUGcMq1DHaYQH/XpqtFnCUxJuGfBYKHrucZc8einPjcyDMlXriVRRoSHofUO3aV0yTl9yT5b2NCzakhKKk0LmWQJTR2V3QyBArGGEe5mMLlTos4728e91yI4Uskec5fJPfekbDuoNwrjXRM4sKs2mknJ58nAHXacEFztnpuqx2FlCdaIz6P4owHJdCwLsJilWqx4ULIkc6XnKfrcqS2WDsG+e9U8XfwtdImisjsdyTt2a3E5VnMfGL8KTFM9sXr74GherI7UWSeSePyIh0ECBOROeAAWlPj2PlqV2svC8G6jnCelXpOOXz42BfXLy7wV69LPDI7D3EJl//7NfKQ7lZSEvJsEYr7f12yCBxiwCm8rOiTBdzCop7oEtwczeK8xgZQlIWrIz84RWnn5XddUNp0txHLgxnGeQBKuRcF79dqmzclZU+70BoWr/g9mUJCEeh1kcEbBN4L2F1eWhWvLsr98nkjKFoLnizfFMBO8+u9L78Jou+hzlmf3O804f3S7jXg8u46r9oQQBu7a/ed5D3SsGqfe1bsviYdFw8xBdFoEWPzxNPT7v7EbgwarQ7JVkPuoFPoVGdpjz8UymwSeV29rbkVR1BYeza19TfT2H67MyALOH5niZzYIjAZMXjG68iOHMLcj79Ec9M93hbTrIo+YtnlhzL6B+8Fa9n5zffQmn8kME/1u43NrFurhp77DgqHn0WnNsfOL1xIRwg6rHXOQCzI7b2BoXo52p7sIp5HFGc12zm32FtBMbQW1kOx6kJFaRfa8uCFRE7PdzUxuJfDyIJvEy90FL4j5axEmjiycCAVQTTAvidDflmRBckMgSm58FeU39tO+3hoseqTb51OdaS5JfUS9f8MrmwDCWsVcQaPojoV5YkbL3mwA85AiWdEuWkIshmUrJF/TD/YQrgvLODAMmmx1pV2D9xCv1xCdOAWbPWktLWaehG6vW5n6c7HtcK2fr9OwtBo4so/mjJvfY6MPipBNIT3en+n074pSPUPkF1xOOQiZ/TOJwxa9epioGUoHn4OpdXPhGaquzuPGjCicdJjBzDy3HfSf9qLXB5S3/HdKNmhp/wJ+73h8wyc/qI9DtMC6dHVrPyjz7Pfn/wnpWPOc8+S3jvdTrRe/5NewegF72bpy/+J7OrjnGeuHYFE3HMQMfoH76XvhGez5Pl/S6p/wBmZK3BGYD/YMaAOuf1OoO+oZ5NdcQRDT319F2QhGWwxQPGYp5IqDpIqDVFc+1RnuNTlR1m4tGZ45VHuVhQGSY+scteSwaG0FyOcH0N6irYnzoMxYcE3OdyLrKJPagrsCD6cZzUfl5EHOgE68AX3SvatL7yiJFNuf6toKiuLqlDE+WNUIOo4IoX/kUXVQDTsFJACeYyFVMqBkaJFgzDGgbtMAZfTTPnDLD6sk7SE0IpO8UR6XRlc/ikjP8qhu5wwf23xZjq48K6GmfUzXbDyEgXQXDji7co4TCTnBswMRDsgqkKkrFAWp0C1VKQgyngIp3Q176qeuBoECsoRBWjVitDVTr0ySSN4QyyZK9OJaohBlsJ595qLjIAp96yogaa7RKUhTFq1+2+/pPKDrHj5J1nx8n9k9Ny3ufCoKDCa+Pw5GSgd9wxGn/k2Rs65kIGTX0LUgSiGSJjCjJZnRTDyjL+gdMSTGDrrleRWH+fmeTf52FT/EgZPfSHpgaUMn/VKx2jStQHunmShsPp4opyDMBcOPQOrwMhkzlMewMyS1f4Q6dFVLmqk4xTv2mhjgaSULHYJjkZUc8hlYBm0CzuwHaf12jNbXGbEhuYNyfexvuFWbKeN7bRobLi1C9RHCx+Fs8D8zy6iU56m9uB11LcKs5YSfsiatS/Sy9H2JDyE+otYaR5Vl1C0FMBOEThLBTnskYaLH2x9gLWIXBdeBcx0CPy7BkzdKXG/f0dCp1aUnA2hoF+1+BDrTlyYzTpPyhicV1kHW5fFIy8LQ8cpWEUqoorHyn76EqtUcQvISjCTuJda9ym4kJVN8tTWnGfnPcBkXraVuD+CEI2tO4fROS7gAEgx3a3Z0mlotbtzt1JDaBV8lYL0yBpsoUO7uiXcP+0sI+ciB1F2iMJRZ9Ecf5DmOgeQM3pt4D0q04HSUc+ksOYkFm67lMamu3etkZCxpweWMPqcv8HkC0xd9ve0tj/ivA5BaWt7NAv0n/w8Rp76p7TL04x/+S/3Tnn4WyDpkVWk+lw4I7fqGAfKSRPyoAWcoitAqi+ELVPpAX+j9XHRaJFtQ1wPRMPJ3xdLpzpHa2YbmeGVNMbXOYKMhJiC+7EWautvpP+U55MqDrNw1xWBaCOp4WRM89ddRFQcpFOdoXrfNe5ZS64LOWcsYmJ2/vTdFFedTX3rzcSdBfesLuAwCQ25piq0l29h4tq3kW2upvbzG8IYF53eAI1HbmX8U692n1RnXX46Duud0Q4/LajdezW1e6/eJUNhlcwD9imt1cvR9gRYlEMhhP68x6Tf5/DehoEQEq4SQC2a41PRcOnuai1VBEzhEa2qtBYriEVi8/g8oh/34xFtwSXXo9flX7oBd2yrIXFB6qZW4V6w7Th2pShFlBl19HGF2G03J6GlRYteZsVhpEYGqU/cCh3rFLJ2U5kJCjtVGKDvtD+gs7CTyu3fhaJ13zVwil6MFzMIxaOeTvHg86j8/CdUbv2OZ33ySFPccU2+j6V/9HekR1cx98PPULnzslBfqKCpApg8FNeczfBT3461MVNXf5h65UZ3b6QDil3A527HXvyPZJcdju202P7F19OZ2uGOWSIoR+v4b1e89tOAW8i3feJl3fdT/jfAwJl/xOCZfwRA5b4fMf29f9zttgDL/vgfya08HICdl/0jlft+tE+3/zdaojRjz3snuf3XMvuTL1O+6wfuc0MovZLEo8kVGH7iqzBkmfnRF1xNrIglGMM0IcoP0Hfs02hObKC+4fbHHkK+j+yyg2lsf8j35vXfZXHPQayeqyE2EcQdF/2JnGEQiyHoySEkleTZxyTKQ9uFg315kaw7RqNeWt60gK//tf3ueHbQvQ/RJojr0FGDf1FoKUp8ppGkeCnYSfGqI/c+edascjCUvdFiwGZxYfcixLM9woqe7KPEEAq3kQcqmUeD4HmlcAX04MKbLNom0bjZQkBK+m0i7OJYlXq9kiOlCqTS5FYcTHtyCzQr3cpAc42iyLKrjyGz4lCq9/6QuDrrPJ1k2EpPnS1IGCzD7I+/iI0XvKdoOmIoGPdyFY88i6GnvpbmxDqmLvkIttB0eacMvkyFIm5BfM5HyY0dQfWR65n64Yfd4jGIs+x1wbCQW3McYy/5EADzN13M/E8vcl/m6c5bxzD41NdRPPJsADrtWWrVn7jvN8i8y4XFzQyDT7gQE6XIrjic+v0/Jq7NugWrRSCYaEB+1TFklqwBoHTsM6ncfpm7LzqnRkK2g5Ddz+WnjInIjaylvvFGWOq8ehZE4Q64ZyHKD7ltUxlSmT4sO9y8a+5Xnq2YGrbdwKRzxLU5z9yzuJzEAo2tD2DjDiZK0dh2f1e0oOsZAMr3XUF2+SG05yepP3onvxMSt5m85EO7fm6dR2Vi8aws2GaN6e//u4/47LJLIpcY1+aZv+mb+zaEepn6xrt2+51thWfQWZAW0+qEkDIQa7u+KChkC75nrzGy7rTBrhRPUvAgtuq4uI2C7mYJLfuEPcp0CLzFZYjbu7/+ZOoGCFGUCMwI2DlRwCvlUZ0VxWsSB9DaZPndLODC9/sgPUX7+yZRmuKhp9Ga2U5rYn3XV0mLDQPZ/Y6keMSZVH9+HY0tP3cbiZeZjIOYXJbRZ/4F6b7lzFzzaZrjD/vjAV1KN3/AiSx5/l8TN8rsuPivaU9vc8foEEA34mEued67KRx4Iu2Z7ez4zzdhqWNG8OUJJuXGkR7enyUv+aDrEnLoaez89ju7y4j8hUH/qc+n/8Rnuz9adWa1S4huIiEsi/OoUsVhCgecQn7NsdR33OqvnxbOIGhAanSU3NgRABQPfgLT3045rbkUB96YxId3M8vX+PNlRta4MWpIWKnnJCTa9Xa2wG6km+hd57japj03QWZ4BZ3yNLZVC0aQhOM0wtDc/gDt+UnSA2PUHvypX/i8oWXdfmyFcuMyssuPhnaH6l0/cIp1gzu/TYs3kXZjm/rePzFw6gU0ttxLc/wRZ7DowqSLWh5iO83kN95FdsXR1O7/qfMWUuFZ0akAqD96O9s/fyEmm6MdP+K8Y+HJJSZ46kD1gSupbbgWG7ewWFdnWud3VxqLFMpjRH1+HdKVUkKeM+URHnaRDtskNC8oiFKsi2edNKqyOAyABbY6A8JkJTS9CpgEs1OMhTShGULT7UdLIiuaIpEBJp8lP+ZFaQrbBLtextPnjm3yOGWv1RIt8WqzBGS0Bgz2cdJ7ivb3TEafcSF9xzwNG3fY/qW37qJsNU9iCjnGLng/UbZA6ajz2PLxPwbTcBb0IimtfRKlw88GYOisVzH51b8J4IchQumIdbSBUTZPlM1TWnsmcz/7uj+vRzv3Ay3Irz4WcITr0eAY7Z2bHSpQPa9hXEhqoM93CYkKg/4lVMYinw82ENc0eQS2vrArwMrg0a+NzfeSGdmPuLbgyNMreK7VpGXc2T5Jbf3NFA46lfKd34eOvM2ThJxmwY21cv/V5A48hig7zPwd/+W2SwGjYGfwuVmbgpnrP0N7dorO/BSV+37qw/j+3faLq2XHf/0VhQOOp7X5XmzbJbltO2FjqLFTmWHic6/H5PuIF6aCkpVbr9ubDrTnNzLxtTc471Xys96D0NBx0Snd5sx97PzWfX4O7ajM0wSB+1YQso25h2hMPeTDiV11iGLkacCjPb3FfSwAPdth93WLFmzc9Oxk2vJvcWJs8eLbk8cnSQdvl3mU59HUXGTIt+TTEjErSlYNsOW4nr4dQplYBvcOCFiQflGiOwilYAX56ZPt50U5VrufYW9k62fqPcs6E0eJ52kYt14IYAyLLzUyiupP1NA+Xukp2t8zyYyuAsBEKTLDK3br1TqlZxLJDGce2ha78J4aA+2ZrVgbY0xEa25zeBalFtU28LV81YdvoHDYGdhWg/rGO7offi0RkZKUuRv/i/4TX0h9/S20Z7aEhVZBV/PuJWg2H2D2Z58nt/QI5m/8BswkBqgvtiA2K3dcjm01MKkM1buvCKEhVVoJQ2Luyk9Su+cq2nPjLhSrF5bCAbiGZIraMVPfeL9DZXZCJwU/1pxbfGiBzVSZuvZD3iK2cjzMonfYQKc6z+yPv9Dtveo4F1kIncoMlft+RMqE4yVLOpJi2w06C43gRYqH4ZWsJbTIq7kF0xbx5AIUCKhoJafv+GGLl+2ul5L8KAuRtHCjI89Gov2av3Sdj8QxTdMdx2Zw93exqyKMQezEl710kSBAV25OPfme0t29qI5MBIOcKCVivOe5MxncPdbUhVCvWkTR6jsmLFVGjesKsAyHKi/gMA4PyOdCt0hWFPkc2EGcghzCGXQVQg/mRdJVtRABS/Clbwzg1qoaTqG3IVZUcQb3/M7i8RtxBCaVJlUs0Jlb2KeHqAeG+j2T3H5HMnzOa2hNbWHqB5/AxG1XnqNKIRLvoQi5kWMpHvhEKg/8lMame8JBhEjBUwOmIbP6EFLZpa4pQDt2L2jBLaaUcC+CdNtILR3FlhvElUWIxzQOEFUmALAK+Do7750mveqCvAxpnLdrcYotTUA6JyQZoiSFe0lzOO8zSZ6gylm90Qw+h2wzsuAv4ENjJtFyjILb159aUciqaMZw4As9vpJRaDeSPhzaWD3SRaxJe3pjtUTLZHC5rhp+pbQW360HG2wVk8Z1PxEuWi3H0MXSh/8KbhwmAluDOCZ4HwnAl5EaQy3fscpUpIEEKf+hhaPom2dX1LHcZ6tIZbk2+txntsquItzLvqRMoyNVXOvAZH5fvtYxPy4EuxZE/jpg77CLAeXlf2qVNmHq/Kn1+QH3LscQ7+4eIM+ghon1IUvMuVWDWtebQRywaRBMPU9q9XLabIL5GGacF+nR6xrJiCF30KmkRgapPvojKLddvrjZXdITGUgPjDHwhD+kM7udyk3fwGLdc70f2HEZw6gzIvuOejGlI55B5f4fM/eTLzk+7zwYrUMXAhebG2L5y/+R9OAyZn74GeZvufRXS1jx3ve+F2NM188RRxzhv6/X61x44YWMjo7S19fHBRdcwI4dO7qOsWnTJs4//3yKxSJLly7lHe94B+32/zTtz++vNLb+nPEvv52py/8F4rar48wT6j+VnKEMjW13M33Vv9HYdI8jKdBtpGzEA5dS0Hp0HbWfXw/txArUcMfxORWRTmOKuFUOZrMAkMgBc3RT7rUJcRfvciW+r8linfRy9KXIsNuFSxduQ1A+RubB9LnzWSU1LxJo62IZSx2H+E0goz0CVPu32sSPenZ9wACuBV3yGpvuRffjkhpIgyA3h0SBdVkJi67JhB8tC8IkjBDdXUL0KYNvGUbdkYIYQXySlY0VLaxz2nYeiU3LmPoIlDs6riRBPYTOMipKXG/AzrKrktWBKjBNmppbiwtV1xKPgCptxOPVZaRGIHQoJDxZ9Z50Loz7e3Ft9O5Ea49Nhl2I8P9HZNFzb7KFXetad7dbtkjh0NNJ9Y3uddvC4WcwdO4fkx4Z6Xq3ycpzBI78JD3M2Av/L2Mv+Bui4lD3QfS5wT0jpZOfyX5v+SZjL/0oJpsL74u+y1JeZqbyjD31X1h2yicYOexdDtuwHzAEdgziA3GYgA7kDjqDkee/m8Env5n+o14VoicJoywVuZ/h8y6kdOzTGXjyK8kfdoYbYgOHdygAI2JgVnIMnvoK0gNLGTz9RaT6htz9ruLysrr2xVDY/yjP41444ol7nVf4BULHRx11FFdffXU4QDoc4q1vfSvf+973+PrXv87g4CBvfOMbeeELX8h1110HQKfT4fzzz2f58uVcf/31bN++nVe84hVkMhk+/OEPP96h9ORXILEsYCpWrUdVHuqp5Ahts+pi5UU45SjkCLogAp5MniawCe8tGtxC7YkLqvjQzGKQFeB72gKBtnE31r1nPBLFbefxSsBo2Bs8IYQVYINRAJLmclL4EhrbJy+a8sFausKx6pGZopsTW8QrCKv7JCnupvBhcb8oJEK24DxFI56zBxRJCZI6ZN4zEDGRoDMjGYcqeL0HOTAC7rB6XGSbtPuxTUIHpjRETWdsaA7L57IknxWJhxEL8YjPASslYE4Uk5XPNCWgQQy1x1SB6IXpReocLyrbMimZM+ueST+mxSmAqrsOf98TC7zJ456jGBiAqOz+3l3IUXfV++W9qsT8/0pigvug7HW74pFPZsn5f0lcm2f8v95Je2bbHjdf9pIPklt5GO3yNNs++3psc/euaH7lYSx9/t8AkFuxlp0X/3WIDshzrKmjwSf/AcVDTwegNbON2Wu/0H0wBSwNQP/xL8RkcuRWHU32oKOpr78tdBJKOU+R1ZAqLSMztL8bS99JsBVvpKrBbPuBMqT6g9GQGhh13zfDNKbE4LNFsKmAiLPNetgowhkSGbAViGtNmhMbyC49kNbMVmy+7N9Dbdih2I/W5nt8fXHt/mv3OPeLp+RxSTqdZvny5bt8Pjc3x+c+9zm+8pWvcM455wDwhS98gSOPPJIbb7yR008/nSuvvJL777+fq6++mmXLlnH88cfzgQ98gHe+8528973vJZvN7nLcnvx6ZXeABv9h4ktbDX9GEKgELdgBXNhWc3FaUA8etecVmcVB5yPZro3LV8bsvqepeoTw2OE6Wais9sNUVGAhcdzIfWdLwBJRwPeKYhtw4VNqOC9Kygk0bM2A/K8AG4sPh9oOHqkIYkgoSrEgn4/LQlUNw9W1NZkLM0CkL3U28UWEDw3rPOo1mSyulEgo90wyvC5jsHWnoBTUZHUbUa624q7bZAmEF6rk1LjQwVYNpq8fm1uAlHX3U++DeqNyneniSlL7Lae+cCc0Yje/ihzWDjIRQJ6Bk59PHFco3/M9t63Md5d0IHfAifSfdgGNLXcxf8fXPHgG5DqsO4cpZhl74fvILTuS2Z98iYXbLsEMyXFqYiwmkKqLwLBB90m40+YItct6uRIZ+ZUo28eIWCSlb+05mChFqjRM4aCTWbjt0j1sacguOxCAdN8IqdIQ7d0o2giIMmHtjYRdy/dsFeNah9ie2e63bc+O73IJcQdSVWAj1NbdQv9Jz6VTnqa5bb17nwRVTAlXVjMH7cxmao9cR37NySzc/k0Yl3Nrre48Lm87DNV7ryK9ZA1R/xDzt3zR8zl31cwK29TclZ+gfcyjtKfHaWy8XSaQULdbdce21rLjK39FbsXhtBbWYVptx8KmYMa2OCQxxPV5Jv7j9dhMDhqPRQ4Q5HEr2ocffpiVK1eSz+c544wz+MhHPsLq1au57bbbaLVanHvuuX7bI444gtWrV3PDDTdw+umnc8MNN3DMMcewbNkyv815553HG97wBu677z5OOOGE3Z6z0WjQaIQ3bn5+frfb9eTXJ8mFxEpe0TQlDCN1kN6LE+/BdgjdOnIEmkDJV3rvd5FX94uKiXANoefkeHpODU8anDKaxykbpU6MILUWmrfgeZYpy/glJ4soIkpuX3JuG6VGtOr9J70zLQOQudj9oOW60xGZsYPpzO7AmnlXGhTL/hVR+KKJs0sPJLPyKGoP/QzbmfWKgBF8pMDOgWmm6T/jpUS5AeZuugg7P++8UJ3rSBRqDXKrjmf43D+nPbuFmcs+hq3XnYfeEK806zxEWjD6jP9L4eDTqG+4lenvvI84b13jbTVAJMyWHl7Nslf8CyadpXzn95n52SeDNaFMiZKrG3rKy+k/6XkA2FSLys0/8BaI774iEZORZ72VVGmY/OrjqO+8hdb2DcFr7g9znu0/nPzKYwDXR7l86yXueivuWbXQ1e5My6yMPitJSYY7ZRsbuWiGV+7/Q1J54FryB55AXC9Te/S2YKntIpbpqz5F/8nPo7buJu/5msT2GjZvbLqX2as/RWbZwSzc/M3ADjdDF+MbwMLtl9Fe2Ak2prbu5l3P2nGAocjC/A8/Q+XuH9BZmMI2BcSQfA8Ngn+ImbnyI84LbbrPzEqZ2zqhpr8Gtt1g7qpPhuiM6b4mC74ON66VKd9xsecFN213PNtw57BxiHrYZo36xjsD1apG2FKi5NXg74CxMaZZC6V5e5HHpWhPO+00vvjFL3L44Yezfft23ve+9/GkJz2Je++9l/HxcbLZLENDQ137LFu2jPFxZ/WMj493KVn9Xr/bk3zkIx/hfe973+MZak9+jaIdXExjUbitKuuTctIqH62GlmNC6Y0qWcL/e31eJYRk4hwmk+tiv/Gu3mxQajZjyI+cQLwwTWvyUWcM6MtdxnlybVG4m9cwcMqTqG+4g8aW+wLSV/PHAhSjFTF01mvJDB3I3K1forn5AQ+6AdxiPwpMQGbkEMZe+G5s3GHyW++lNbmxazHwFngEw+e9kdLap9OpzDDxrb+gE884JQeeuNzmINU3zJKX/j1RJk/fsecx8bU3uZDaobg8tTomKSge/XQGjn6pm99Uhtkr/pW4I+AgnGJJSXh58Al/TGZoJZmhldQOPp36z691yloJAMQDNXGJwsGnAZA/8GRMbgDiOTcGvR1iOKVHV2PSbkDZ5YcGcFkiSqFUkaYYPCpjMx6EZhPEHLpvZ36SVGmYuFWnMzfvjiupgGTOtzm5gfbcDtKDy6ivu9nlsBfC+EiJEdUK+y1mEvKiBkQSUBVLpEBLWfZkTO2r7MXSNCkwfVBbdy1bP3MLcbuJqbbc+ROgo6SU77qC8l1XhGOYcI1dp4ug/NBlcAckkdp7uqbawzc+5ljjGN/0ob1zUzi/vqdGlBc45HBT7sUoUMEZbmX5TiLjdqdTvD6n7i1GAlhLpCtFohzRetEtXLerFbhcbUKMwaPelRTFavojwuEs5sOh3MkecyqAx6lon/nMZ/rfjz32WE477TTWrFnD1772NQqFxQzQvzp517vexdve9jb/9/z8PKtWrfq1na8njy35NWdgUmmqP/8ZwTQmMPzIIpoZW8PAGX9Ac9vDlG+9NGjTRQ+mAfqf/EoKh59J+fbLKO8pFGYhPbySpS/6e6JCPzNXfILKPVc6JTCW8KikpGDw2FcwcPqLsHGHif9+F82t9/vjmDahJZeBsfM/SKo0TN/JL2D7p1/drcQ1dNqA/IEn0X/0c90lZ17PjnVv2fUlbgApVzOc6hsBoHTCU5m97vNOISsoR8O7FnL7HQdAqjRMpm8N8dQMnRoBCVzCoSNLJaKMQ5al+kedghsC1uPy3AVc2dMA2FqIAtl2g7jhlKyc0gNHbA6a2x8kt/IIbLtJa3KDUxwCNlI6PNsA265QfeR6igc/gdrmm+lU5922YjxZPThQf+Rmqg9dR2bJamZv+ZKLCGh7Pw3Jy7zN3fglaDaJ6xUqP/8+Zky8md1E5iYveS+FtU+gOf4gcTzlPK7arp5XXC8z/oU3kuobpT29pcvrAdleqTVJhIN3PSXJVEHXdm13TcawezT0LyDJtII+0j6toH8sVNzvhIiQTSgdINQU48B1XdeyO0kyPdlwTkUdP16nPbauGYex3WPSOlpbw3mZVULbv37xOgUIxWpcNGk7Htvgh2jd8xwlPNqu+dILSLnoG1YMZ4szGvW+JcZswBnkeu1yHjruXWSewGmeY7flabuTX6qOdmhoiMMOO4x169bxtKc9jWazyezsbJdXu2PHDp/TXb58OTff3B1qUFTy7vK+Krlcjlzud6crx2+z9B13HqPPeBMAM/1jzN/8LUCUgUfquG1Hn/VWsssOoXTEU2iOP0Jz631dOTddBFKDy3wbrqGnvIbKHd+DuOPyM7qIA3Qgv/J4UsVBAIpHPJnK3Ve6F7mO7xRk5EXJLDvInSdKkRlbExStDtHnWo33vEwq7Qj39Xt9ifqANnTKk54WsD27I3g6KhE+/9d49A5KxzwdgPqGO90x6i4Ea3I4pZt2Cn/hxosZPOtPaI4/SGPmPqfUGuGlNnUwO6AZb2H2us+RP+AEyhu+4xajBoGabtTNl61AdfMP4adpUsUBqvdcihlywB+tbYw0Tx7B7M/+g/r6m2hXJunY7V2N142E362QZUxd+mGml5VcKFDnKLEAeiVhm0xf8RF3DSXnmduam0tXf+zmyd3jMrM//KwzfmQOadHd/UXua1yZp3L7D5zi1nu4SMn6+9ys0ZreEvKoOWdY+LaP8qPh4sdSJnt0duuPvd++iFn0e1cVkbKBpcRQyhCQvbpPWhz+ZLu5gsyfYiR0kFqCJeVfmpePxUC0nUXK5xe8OKtj12dIQ7EtQmSgjat9PkyuaYawjvTjWaHUIFJGsiiLq7dNy+8JkCECmPNRKQXB6XVkxdBWAhqdy0yYC3/tBs9kZY3bRtNfVtabfWkq8Esp2nK5zCOPPMLLX/5yTjrpJDKZDNdccw0XXHABAA8++CCbNm3ijDMcrPqMM87gQx/6EBMTEyxduhSAq666ioGBAdauXfvLDKUn/0OSHhjzv6cG3D1UtGqSzMJaiBMk5NbUQthQlVfaPcTt6izt+QnSA0tpTW7wbpeGljz1WhFqm2+lf2GKVGmIyr1XuwW0jfOSZukK887f9F+kSsN0FnZSfeDHwURfjHixlp3f+iClY8+ltu1m4s70rt63LF6txqNMfP0dZAZXU33kp/46sLiXXes5LdQeup7tn/1TLDGd+Z3uJY1Fuehcielcue8qqg9d5TzIZRCLBW6KQQko0GnhkUsob77E7b9AYKqq4RatlXLsjKW6/QoXgs6F/U0HT18ZtxEmH0tz890+pBq35POY0Pe2X7yPIjBfcefTMihNDyTnNcahmcF5JQrAKrv7Hg3K9dfkM4L3oGhz9aiSIXeNSFCWxTONQ4iXE57TYu8ViPJuofYlQQZXt21x/VgTCnd30hWaTB7+l9Cyi8+nStY/psKORAsH2NuBQ3TnCEarYCaw+Fy+i2jQBUTsEk2FGFxduJ5Ya1wXXesvJNY9R5GWaSlCXI0iKfNiAZiS/wdwWIMymFsJVQ6aHlgKrJJ7teDGGjfleZDxG9x5fCWChPYt8r2Mxc7iO3HRIDRJ0BryBXxtv53H04Vqa8LdMY/tSR4XYcXb3/52nvOc57BmzRq2bdvGe97zHu68807uv/9+xsbGeMMb3sDll1/OF7/4RQYGBnjTm5znc/311wOuvOf4449n5cqVfOxjH2N8fJyXv/zlvPa1r31c5T09wor/PYny/Yw8/Q2YVIbpq/6dTnk6KMQ6vsbWliFVHKbv+PNoTj5C45Fb5AAEZduPe2BnIZUbIrv8EBpb7se2xKQUj4qObCtoZjIRNDKOanCXuI8cX0tjiricyhChlEit5kSYrCtZrBa/gpCsHKufgC5WT0z/t2H3pHjlYcAsccf0Na5JZaALaj/EEzhF0+/mwNQJRB4j+Fpe5uVnuXxeI+RBm8Bad612e+K8Mp82Ec4zkZAMSK1srF50PyHEPSTzkcNR0WkZkZQHGakjtn3ufnbdlwyYkmyfKKeK0jIHrTBPagNZi++0YlmEBZD8m+ef7cej1/2YJJdm1BOxuLpf6+6ZpxJd5u613USg3Os+1S6/eyWrdbyPZ8HV/83iD/Bc0/qKWCEesVU51zCutWKeboT5cpkHyWF6wzcRFt/tIAo4D1/AgaTEO/9l3fPkqRLXFxF+7/o/EsPBuOswES6aNSNGqSRb7aoYuwxX4TDpnilyYLYiKP802TVH0dq0mbg8HQahTQm0xWUM2RVrya46iuoD19JZmPRetE2708XynJhsgeFzX4dJF5j90WeJa1OubEyjPLF7X36l3Xu2bNnCH/7hHzI1NcXY2BhPfOITufHGGxkbc17OP//zPxNFERdccAGNRoPzzjuPf/u3f/P7p1IpLrvsMt7whjdwxhlnUCqVeOUrX8n73//+xzOMnvwvSlxfYOelH+v6zDekRh5AcWTj6gwL118cnMIMblFs4hZ+8XLMKMTzs9TX3+o21CyBLhTGbeubjLdj4paY8wU5t3AE+0VXlUoLF05N4ZSSEmBo6Ewh/P04BaqhLVXwyfHMiZVbFKu44X4nReADBu+KKWIx6SFEwxDL/NiSKKiWLC5LcLW2DQljqUcSy7m0XlAZpNQAmJfP98PT2tEBHiCElQtyb6rB0ldR1DjiFRhd8MbkuJNgZmQedK515SjhvFH1DJTMJE1gg1ISD+W81fMmQm4W/IIby/MUw+7DlrJYWv1e64VVOoTnJZm/K4sSknIeG+FKk7RuuU/mbiF407ucWkLk1sixHgcAKmI3B1WjUMrgTLKUqiNGltx/MyFfVcK125jQAF7SEmQIuAIVvS8t932UHoBUjrg56WpONYe5eL6jFMXDzqCzsJPG1gce8/pyq4+htPZsqg9d7+pl6T6eRe9JmuHz3kRmbA1z136exqa73bMpNIi+3aZ1HaRGXvAeiNvs/PHf0iw84rzeURwgs4BjdavC8HnvonDwaXSqc0z8158Tl+cC411bjtmEqG8Joy/+ECadoXDkU5j8wp9357ilBMla6D/hOZSOehrgcv6zP/pEFw7B7u4h2Y08LkV78cUXP+b3+XyeT37yk3zyk5/c4zZr1qzh8ssvfzyn7clvuthFvytdIgmvyccBCSjAJDBHSB+6jrfYWxUmol1AJwX3udG8mygK0vIi5nGE/ZqTjHHebXKRTJR5eGWioURZnL1i0LpNJT6oLVo/FRimiN2UjL0D8Yxso2PQfGUDeFSOM4JbLBdwBsAMAVkLbmHVch9lYNLwbYJ2kSmC5y552cVKFhL3JsKHt4lwABQtj9L7M0dQDuIFkdgfUWZ2iWyn6G4ISlYJS7Q2W0OITefBJPsP79a5kkXYINe1Y9Fner1dic5wPB+ujfB8tyaHW8AXugMcAGRy2FajO1wM4XkVSfWNkB5eSWPL/btMdFeIOJWi7/hnQid2PWZt7EKZlm4O5hgySw9j4Akvobn9Yco3XOxDyqrwTSxzjGH0WW+hcNgZlO+5lPlrL0oMDN/InA5klh3M0gv+jiiTZ/qK/+cAhYty3DrUoae8hoGTHfhv/CvvorE5QcXadfEZll7wHqJsnr6jzmHzJ/4Y23DlPCaFy32KMZc/+GRKRz8VgMGzX8PEf77ZvUuD8p7qe5mHwlHnEOXcQ15Y8mSa04+EZ21Q3nd5ZrPLD3dDKQ6SHlpBc37OHUfAcipRJo9JO6qrqNDvHg81xjSCJUZHpzzl9+vUprra69kOey7bWyS9pgI9+bXI7rqmIB4V4v3YuljwO8Wr0u2UzrAPT33oF+QqXeADo3y6VRz4Y6nzCk0Rl3ebJijeDl2lRW6g8r8qMq2ZTS46tUWLbyzbiBet5Tf+AqRsxGqZUyyGxDQhN6tGh3rRuONZzTOVgDECf/OQHC+DU3ZD4lEt4Dz2NsFYmJEFI8IRWcRuAdtd5yUNw/qm2hm5zqrcQ7kGWwYjeVNdtE1b5levpybXacBsJ6BYZ8PkqSeWHtifjp3FpsthFZKIQ2QglohAemAZudXHUt9wG51kOBA3xx5l3TH0nfwc0gPLmL/p68SV2ZCj0x0iN2/p0gGMnP0XdFoLTF/+D8QLC/4++pyyyNDT/py+E55F/dE72fH19/iV1XvlArxJlUZZ8SefIFXop3zfj5i67B+7p9mE2zxw2gsZeuIr3efZPOWbvxVKrvS4co6RZ76ZzNgaCoecRnPLfTQ237PbxzczvMIrr/4TX8z8D78CNg6G3gqc4dSE/JrjPHK9cNCpTtHKRS2O6mZGNOHvft+jotWEP2DjTjA0IhexMgM4Y3IK2n3bsJ0WJpVxXbHAG4KAy7mL0qusu5Hi2qdi4w71jbdg6nILhnFh/214sNP8j79I/5l/SGPzPTQ3PtSVHkk+f83pLcxc8XFyB55A+bbvBgyArEE2DvtV7rkG26wT5XJUH7zWzZFGDEo4XMCvG3Xck57sq/g6QwXWDIg3IaEdowhBvwPeazPgcqN5fJG7SSU2ltCZBefFVQh1hYtetMdEdqiXptsnPKRddlfPPLGt/97KtQnYxCgiUj1F8ei88pVjeHIMDVXHQH+EaWWxU3WnuDQM1iLkdXcCLWfRx9k6rbmNwdvtAzPnzmkFiZnqH6O09mwaW++nse0+d22ayxRiAJ2/vmNfSH71sZRvu4TGprv8NZhU4lrakBpYwZLn/S0mnWXqqo/Q2vSI92CToTbSMHDuHzNwzEtdiO/it9IpT7jz59xzYGIJgZJn+cv/kVRpiNbMdrZ95k/9vHgPWe5BYe0TGD7ndQCk+pew8zsf6brtyQbzAye9lOzywwAoHfN0x0RUw+UEu7xfQ+m48wDIH3A8maEVDsGcqKeNBKmaXbaKVKHfbbvfkd252KQGBaJMKfyeLQblql5qQtN3KjNkxtZg4w5xc14HljgYRH0QV3fSmtpEZnQ1ja13Y5OrfwvsdmeUAtQevY6+o59FlBugcuf3F11zYs4MzN31JdcPeG4nlfuuZY8St9nx1b+leMQTqT18IzYBhFQAHA33XrR2bGL8kjeTye1H7aFbAq3mlJx8BBcGr0D94VvY+m+vIBqOsVHZYy7sFvc9w3jmssq9V1O5L9ADJ99JI/Nq8+6Pyt1XUH3wihBaVoa0JJGOrD31h67zvwOBaa7dHX15LOkp2v9FWfT+/W7JootLIgA9pD+RZ9Nch1EEpeYW9TB1XAcgxNsbwYM/fDhHc7NK/C9oQz+OPlzrrXSW1NAY7dnt0EqsMnWC8hQEYnb50aTy/VKgb7sVroawgKgwwsAZL6Y9N8H8zZeg2tm3AFRChCz0Hfdcikc8jer6H1K+9RKn4EqJMcwByyHqG2LpSf9AurScmZ9+ioUbLwsWeluiAXPumvuOfy5D57wOa2N2fvO91Lfd7rYTTmqTcvNq27D0gneTXXogttNi63+8DtucdLdLFizlWM4MHMDQWX8CQGb5QYx/6xWwQ86rzQNkfkvHPp3M6Go3zUc9m5nxfw11qsmHPIb8ylMAF+LLLT+c2sMT2ES6AXkmTL5IqjQEQHpwqUNPxcEt15IRAJtoZpFUMv5+6b2y0JxdT5EnAtCa2ODz9bZDALpYsNZSfeCnzijZ9iDtufFgeAlNpukAQ9CcvpfqQ9eRXXE4czdc5Gg0NQbcJ/Mlinzhhq85j9Jax8KUfKYWjXvq0r+jeNRTaE2td4QnScmCGYaoBbbWZOKit5FauR+t7d3bGYunxCSCzuwOxj//WmiqRbXovMpVXIfWhg1MPPyufQJINccfpjn+8C7ntrO4dxqcQbwN2rlNtKNNbq4HJFqi5CSCg6DglKmtzTve7eWEd1jQ83azU3yLU6UGPD0mNihNRakbSVXEsp1NYDKSRpKBYAjIsWxMiALto/QU7f+S6Hv/OO7Vb7SYbIHc/mtpjq8jbsxh+vDcoEmxMRQPOonMskNYuPsKF+IjKCTP6FKEyA4wdM5rsXGHmR/+BzQrjpy/jvNc2/iWcqVjz2PoSa+mseNBdl7+QTAtbEFexjROIc2DSWVZ+rJ/JDt2INWHr2fq24J2X+QlkIL8Qacy9px3AzB//X8z/7P/Cter4SPcNQ4/7Q0UDnVlbK25HdQeuc4hhWfwJrUBor4CQ09ynld27DVUH7yaOFoI5S0tfJg9VziWdMnVl5eOPJeFmy8LbDdKpVhzc5ZZ6fJTxkRklx9KY9vtbm6KuHZgHTwNZiSel0llSBWKtEXBKDm/0tJ1GmVsu4lJZx2F3qQsUEvw4WgNhTd33IuNX4iJUi68qWHohMeg+m/h5m8zfO6FtKc2U9t4eyAUSObJgU55mumrP0PxiDMp33lFl5LVW6aLYu2hG5i+8pOkB5aycMsluwKZNKedgoWffY3mxoeJqwu0dqxzBoN6PxIFUR2587v/yMyPvkCnOhvYPhLgGtvA8fLSZuo7H3EgtiFnUHmQUd3NhUYybKXK7NWfcvcgMcRdxhw58KESuKjNmAzSRE0825lN1WltfMR5qKJDdzmmiiZ6I0I9sYpEQhD0u1eSi+7PHiXh/ZHCpS8kLeCjG4agfRa6r8lq9EfXAtzziKaBlhE6VE27bRU8tWgY7n+tQLB48CEE496DwHS+1Og38l6knYFqlXu8hgc57itCu6do/5fE8rujZAGWveRDrkvI/ATbP/fnxLV6qHFMXGxm6YGMveh9gAvH7fjvdwHhBTQZHBo0Df0nv4TSUecA0F6YYv5nFwV2HgW75IAxGDj1JUS5PgqrTyI3spbG1rvci23pauOWGlhKduxAAKESNBhs8FB1NatBZmg/f33pkfC7D8tqvjgFNpk4tm33rio6OCuKuQqxbdCubCddWkF7fgdxrhZAOQO42sAI2AGNhXtpr50gXVpKdeuPXZ2fhsRTYokLQnL+pm+SWXIAtlGlct9Vga5y0nn9JufGYWswddnH6D/peTS23klc3YgxgoTWMpyOKNp4JxPf/iuyw0dQfeBnxFmIlO9Z89hSQ1zfeBvj33g9JpWmvXWzu34BNpHCl01goLrxR1T/9Ud+YdS6UTUEbAK0tXDbpV2k+cmIwuKobPnO7/vPkkrJL/qCRsY4MhFvBCYALtqNKiy4llgBMVHi2jshhOg9/Bau+1PTLehGCTdipwyNKloFYCXGnrw2/4eEp5N5W5VIlYAasyYx35KLNnW6yBeAQBJhw9+7zNWCPDPijRtBomsz9McUgytja9MNnBvEGcd6jpozEv2FmcQ1agQoJoTeBbxo++RYMQ4f0IaoX/adIzxMCryTMjDbdHl///zIc2sNAdAkc+5bTqbcPFJw8+FLquQ5SVZY7E16irYnv7yYiOzygwFIDywlKgwSz9V9Hq0rP5Utht9zJRaLlbpUG0NcnvWfxxX53eLKMCCUsjSgvvEO+o45j05lhtbMRhceWorzFGfxNYOd+jZq624kf9ApLNz2bcjaQFiuTC9l93f5vivIrjicKNPf5c1icd4xsrDmYOaqf6M1vZX2zCT1dTcFIgcIitSCKcdMfusdZFcdRWPnfRC13YI0guso1MC93HMQz06z41uvI2oX6aTmQwmOTKGpOTKAOILmjvVs//yFgOMvjnJgJ0QJyGJlyhBZaG67n6kd9xNloaMAoIT3QEMWmTq0JtfRGl/nwnPKUy0lU6bsfreS2+7MbXcLnJIniBfrkcwCRjNGFjrNB6fwhAM2EkW72MvSyzDh9y4vSMP04Jl8FnuAxO75MhlCi0ZVUrpxw3mjVpSk5ky94s3jUO+LwuE+RF53x9Bn3ytPI+c0+JaBSW8o6Um5i3DzsFgZg7vnRrzzLi3cIZS7lbsO1Z3ySCiHrvH1OYWieUsbEfr8xrsMb8+ipXYy+Xaq+775Y2Rwz/qsXEuDUEKmeIaEErRNYItc2yy+MYnm6Q2JGnBwIMl+9x74iIXWGIsxl6SWNJGQqDTpSvnYWbe/ieVckVxah31uKvC4CCt+U6RHWPGbJ/0nP5f+E59D9eEbmP3R5/ey7fPIrTiUuRu/4cj+9yQmonT0ORB3qN53LRjrXtgB3As5i3vI+4GmIdN/EJ30BDELMA1mjbyMG+R4o7JIVnBNK411YdAZQtMDI/+X8GQaZg+hB69oE6U8XhnIgqH1gcT4ciNTwimovHuJjQEOkWtRQMgs7oXvIzRIT3joJsnEJbR5sQI9M7IYd8J5k0aPKg9y0OkE5ROV8L1vSRPQwp3EYq2ctAmCC63NJOM+IyPjbCd+xnCKTULpSaSnybqx2hy+I1QHdlnAIhn3YsWhXpBZtI/P90tY3MZunjy9pCp7ycdTJiC1FwjhZt1OzqNKfV9WTq9ADe45heCdQXjmFo9d/8/gev5K+NlYHIiulhhfMj2jIVRVLIuOt+g03ZLHh233tI1GJYgTho2ct6sn9J72JXH8FJhh3HOWxAdYQmMSra9tE/L4i+uXJa9uE0oWi++2Zcp5TKZAZ37GvYNilBjEsMu498lEkFt1InG9TGvnQ54/28a47lWR2ydKQ7pvDcWjzqOx5XbKP791r4QVPUXbk1+r+IUmJy+xlcVyH5+6xZa+KeBeIKVc0/IYZQPq4JRnGRc+WwA7KduoZ6VR3lg+S9TOKdUgNTm+liDp+dUba4ftvRKTWlPf81UViVI0CtuUkcU8VgBOH5hR952tyvml7Mlb9+pl6GIyjFv8RTlgnaLVYn8jysAklIJ3fkRTmYIsNBV3HVEB55nl8QQIGHceJZZX7zGSfqJ0cF1WIrkOaZpgi3iGLbNDztuhi+u6K2yqCGYh6NAUYlJU0eq+u3isehxDyA8rYEuNAl2owdMW+nupYJg0gS5SkKg+fwdOCajirOEJJLpEiTH0CwUY5QntFRPHU6YhN4Dw3Js+MUoquPluh2NTxYe6VXanWJPyWK+dm9MIq2VBuxNRNiZTIjOyktbEeog77j7Y7nPrPSoe+SSifB+VB6+CVNs9V53Ecyjbp0dXMnDGH9Ge2cLC9V/FhxTSuNSHRp4iGDj9lRSPOJfqfdcw95MvhtB3lFC0BlJDy1j6Eodcn/nhpyg/fJkHXnnDccTNZ9/RL2Lg5FcCMPWt91Fff4urWtLrSkE0AlEZxl7+H6SHltOpLbDl//3hr5YZqic9+UXESHgwMt0LwT7pWrNo0WjgFqkIt2ipIkoqHSklQGvcpIbWGGBEFrUZgqLVY+hPGU9eoMASb72ncR1zZsWrVGL7svvfKEm5hr40VNWSzyX8asWTtBGuTEGvSReUHKEGVxYNa7q9BZshhDVFuWp+0yJ5vEgUMN3K1ljnJZhIxiwIWpvCGSpTwYDwXrqMI8oTuJXVaOrIuFWJ5XCGj+b1BGjlc48SivOSQBDv7uEwctxk1cpunx8BxtgcodbZEBSUAmMg1E3PEhRfJMZPh9CkoYYD84jhhHJvq2eVTdwXVdp97vpsDaLCKLZTwzar4Vn1F4YzwBoQZQfIHXAcrfLP6dR2OmXUjwMlGQJ9ZR6Khz2FzNgaFh78LvHmqd3NBACpgTGGz3sTNm4z/f3/h63OLprYMJEDp7+EwSe9jMbm+5j42ruh0+rOcSPznyux4tUfJz24lOpDN7Dzkg91HTJ5X4prz2bJc94OQHpoOXM3f6Eb36DGQwuGn/lG8iuOBaA1uYHGupvcsXL4cDsdMLk++k96EQD9p/4B5Zu+SdxYcM+u0mLKvcitPtYj1wuHPomFOy/z74oaXVaek/TgAX7c6SUHED1yi++AZNvufppZQutM2LP7vkh6irYnvzbpCjMJKMNbu4vCZYruM8Ibu7h9lZc48b/moTREmCcoqBSYadyLnMIrBSSv6F9GXUkEiOPDpjW3rxWF4L2hiEC6UcADW7rySgL+ATmGlNgwKMeOcIjdAqE/aJ94hkq+nxyb5q9EUXiiiDQ+12ki56GaWgixmWRY0XbPpzEEkvRiUMQ+76cgNjU0Crh8XTJyID9GcrG2ilM6WbmPBWBcxqP0fxB6x+o1Wjf/LiSbwkQdd+yE96sKQbuppAf3gyiiPb/ZI8u1FRoxrnY4BWZJH6X9Xfeoxs77uwBRnqREIhzFo8+hcOjpVO78AfUNt/s6XSOKwcizZUw/o8/8a6KBUWau/FfXlUrZrpRvugIMQN+Rz2Lo7D8nri8w8Y130J7cQpdYfL5/6as/QmbJGjrVGca//afYTt2hahdxFmeXHM3IeX8JQGbsEHb+9//tmqak9J/2IvIHnuh+P+m5zP30P9mT9J/8XIyJyK8+htzyg2lse6CLAlN/zQwvd+VWOPKL5HeLJSqGyGOqOBzoLhMhCZ8Pb1X8tnG1Erina4QmATHYepXmxAaySw+kObmBTiPsl4wKkIX61O20Z8dJDYxRufuKEM1K4AGU+nLhZ18lVVqGbZSp3nWFW6MkcmQW3DbayWrmkg9SPO4Z1Dfctsf5TEpP0fbklxcl/28t+jyPI8bXxQcJwxWAxEPrla1w+XpjkT2/wP6LNJgRHOhhh1PoZsgBhKx6q/pixwT+XVV86gVn8KFSM4orni+zi6dlI4KSEOStD5k18Y0SjChrK0hFXyJRc/Olda00ceUK4ELFGrpVxW5xnWnUW87h2oMp2KeP4G11RCFqiVAbbByR6huhVZ4GG3unUpWwFWCQrUB26DDSg2PUpm+AbOzKVBbwixZ1d0xTK9F/0gXEtQXKd30H0rG7lyWxX9Qrn4LCIU+g79gX0NhyG/M3XuxJLmzDKTBr3TyaTIFlF3yIzNJDmLvhC8zdcEn37RbvmzwUjjmN0bP+BmMipq77GNXbf9LFzuW9MAuj5/wf8quOx8YddnzhTbSmNoWNEuHxVP8oI898i1M0a05g68dfDIPWjVMQuGbAGQOF1U8mt+oYAAZOfjE7N74nPFN67QNurvKHnOm+yveT2+8Y2u0t7twLhBZtkds5PbI/4BRS1OynU6nvylkMGHXvcYbJY0l7Oij21vSWXTdIHLu27kb6jj2P1vQ2mtKsfXdpnubODVQ3/Iz8iuOZu+Gr3QbcokOX7/wB6aEVpAp9zPz4Sx7k5u9RQkdOf+dfKB37IO2pLTQ23yvXRyCUkC47EDP51b8iM3YQrR3rw8sAwQAUiVtTbP/in4JNYVrtQIkthqZJGKKdyU1MXuS878jgntMKwUvWqJaFzs5Hmb/6U67kZx+kp2h78kuLyTklaWfp4v60gt6LhiEWcIlpE2plmwQgS4fgoeoDrfk4zXMuquNTD8MmO9bo5w0C7aIwRenia0AsY9zLm3bbEDvNZscJ3qnmXVv4jh6YNNn9Dqc9tdk3iDfIsYwoV4AUZMcOJ7dsLdX1Pyaemw7MNro61XFh6EaWwdNfjskVWbj+P2m354IBoB54xu2bP/g0Bp/6etrTm5m67MPYTr07P2blftiIJRd8gPya46itv5WJb7w3ENtbMRr6XZg1m1rL0j/4KMZElB/4LrM3fdoZDrrQyoJoUjB41qvpW/sMAOJOherDV7oFK0cgtM+CmYHhs/+CKN9HbuWRVB+4ns7cJjc/GrYVIyQ7dgTZZY6tqe+oZzP3025F6xtKdCA3fDRGkDW5oWOoFn6yCzGGlXucKg67/aMUqeIgrcVRVo0m0MS2Gphsgbhedje7jEfcYiSK0Aet8YexcRsTpWlsf8Dd96Ibn8ni8tNiLFUeuJzc8rV0KlPUN98SqAYlauCf0UbM7JX/RumEZ1F76Ho6k5OhM5FwFKs0Nt3FzJWfJDN2AAvSD3pPUr7tUtoz24g7LRob73rMbae//3Hmbvwm8cIUtuPCCfpcdenadszkNz/anYNOzmciemLbDWakZngXSaDDAeJahfmbvhHeUUmX+KYUmoYwEHdqNLbd57ZNEKf4waoCbUGUttAKEG5j6CrpUfxBV1N6fd5aLjqTBJf5aJthn2s0e4q2J7+8lPEo2y4vtAM0ShBnoDzrPNkUgaUmIdZEFA8+lfbCJI3xR4DwAnpOW3nRsssOpnjkWbRmbqYxeS+dSXyoziK8AhEwnWb4qX9OZmQVsz/+PK2Jn3c1wTZ1sIJgzo4cxdj5f4vtNJn82t86Fh4JeXflEgdhyVPfReGg0+iUp9j++QvdwqwF7Erqn4HU4BhLn/dRTCpD8dCzmPjvt7gaRR2fePVmHkrHPou+k1/gTzN79cedgQHOM7biMXeg//Q/JN03RrpvjPyak6nd/zP38se48pS0M2ii/IAP7RUOOtmVVjWrHnhkwS0sVciM7eeVV7q4P2aKUJOYZDlqgkm0LDEp44BGwn1MSu6FcNK257aTzR9K3KhgW3NuHyEZoeKu3wLtyUdoz42THlxO9aHru54N74ULGKZy6w/I738SRGnKt3xPjKRdnymAmev/lYET/5DGow/R2HyPC3Mr85g+rE2IOwtMfPVd5A84ntrG69zOmitPtMEzLWhteogdF/850dAgzYd+3pWesDP4blHWQu3+69h6942Q7ri5ViYzDesPA1vdZ5W7r3DhzUg+TzaJ0Hy/GHGVu76PR0TvLqed+KimXbEi3HukqQ8F6SWURXtm2+5A0P6Y/vPOrp/vdqc9iHaI0rC4UYWXvI/q9mYJNKaL8vz+dx1IMoWj3nMrvMOqJD24Lyt/N3DRt34wE8EYJxLvtkMo99LhLUY/P4b0FG1PHp+kYORpr6dw4Gks3HKJIxOwzjtc/L5nlx/Mspd+BJPJM335PzlS7ljCnQ0CX+8QDJ/wWvpPfK4L8X3lnd0tuRruRQAwJmLsJR8kle/Hts9n21deAcWKEMu7Y9EAph0hRd8xTwdg6CmvZeJ7f+no2/Tl0BBeC/pOeRpR3hXoFo88i7nJ/3ThwuSLJNvnVh7lpqJvlPTQClo7H3ZhxTYB8GQglSlhUi5mrJ4VEBZHLZtpgq0n8lMNRxNlWvhaQQiLUHPH/WSXHULcrNEeXx+OWZBFRco07MIctQevo3D4mVTuv5a4WXWhswinHBp4EFm19hPyjxxHqjDG3O1fdNewwn1vdoiFn3FjmP3x54kbZeLmPJV7rnJjswRSBgWAdWDnd99N/rBTaW15gLgx59DNM2IMJbzwuDHPjosvBAbpzE10PUuLF/J2dSvjX/5zX0P9WIt745GHmNz4PpdjlXkykpNmEBdNEG7p1vg6xxSlNdC6UOcIuT1R6p2d22hPbwsKS1MSGmJP4TsXke+E9EGRgJTXEqLEPFhwfWdb7rmIobsESGVI/tfyqjA9uzh3/v8Ih25P49IN6k3vRlnso77svkeLvNm9SZenqIbcYg86RhjdCEpVEep78igTZUTJAXrvW1MzbUIeWHL2nmhEQFAmFhDnIuvDo98X35c9SE/R9uRxSXrpfvQf92wAhs7+E8r3XerLdoCAfu1Afs2JnqCicNgZVNddGxomJ1+QGmRG1wAuxJcZWeUU7eJVIwJTMpiUZFpMBLVUCDl3CL1ZB6Bd3Y6NO5goRXt6K8x2W8yaq7QWaltupnj4UyDuUN9w+y7rmg8VtWH2J//J4Jkvpb7xLpo7HvG5Zb/gCQ9xa/xRZq/9DLlVx7Fw5yXuIGrFC3OT5uCq916NNRZTKlK58/t+kdjdojV35Wep3vdTOtVJOjM73Vg7hJ64ik7FMv3dj2Auz9GW/r0Wse4VHDYtxoRpMH3ZP2Dbrk4Qi+v2oqFO9Sz6gWqF+Z98oaue0WgeSw0N8cZteYHa7deEulEj9b5aoqKI6DbE8w2snVh8y4OS0cVWiQ36cXXH6iEmJsv/maB2tMji3nSejA8VCsLYCOK4i01Jc+aRLPYSTrQKujOyva6kWXcffGnUiPytnmQS4NUmKOjk8OuwMoZKJ5SKY/C9f7GE3rVdO+6qj7u+buNwABqh2E1kadHhdvv5bhzoLk9vb2KMM25Mh0DLmDhG8tjes7TOiLOaytF7njxp10MT/t4lvN3BVxN45R7h01laIqTbxPLcWXn/je6T9Kb3ds29OtqePB6JigVWvOqTpPuX0thyHxOXvrMbdSvoX1uG1Mh+LHvRh4lyJXZe/lHqm27dpZesWobZ5YcxfO6f0ZnfwfTl/0qn1Qh5Gn1Cs2AGIT98FMVDzqG2+QbqW251C4YwDtGPQ9EKBVxmycGkB/ej9vD12Ljtc7X6fpoMHpQSFUexnTa2MhfGJ5dmE1byYm9BFbZvM1cgAKl0Aw39aS4xQQtp9GCa59TifNx2Nkugq0sOTGuABSltkQVIa3hVoUnNokYgjSKjdRwKBNMFLZc4blJU2SSUZIxTnFEaj842KVkQkyHdRSuozUtEQ67ZNt1nVr34eNc1zPTLLxWwQvrhnz3Nvy3aZ7fhz6TiljwhQwQDZbEhqKVk4unQxilONa50HpMId73fyBj1eN10zbuXARdpjlsONmCbcqxRnGEhCt4klXaUUB4Sgk04iN3Xv/gD2SjeiyYwyV92s63PXaqBqMaZhG69Hky7azRlAp5BDxm5sfuqmcR5InkXfBQgGTJObqsvuD7P+l0c1hL/HEfundFoR7JWV58rk8+TXro/rZ2PQr3t1pg0mBm3SbNCj7CiJ79aiQykCgNkxg6kMf4ANmq4cNgQMIlbZIRQ3WQgnjayWsT+JVTxHiXdn3mvZ7EoI5IiUCNcqck8wasR1K8nBdBQVC7xOeHd3Bcr3Iq3ZpXnNN51UTK4sZlBQmlKG09mToPAdJPcKS+/qucoZQdd5AW7AYL5sUspkS0RykDSuIYOckq/4hrx2jTcqR62lQVPw2gJL88qs5MuSKpshevVGujItUaZxII6hENsxrjcrcWX5qgR4Es8lJEo5e6TsezaE9j/I+NVZf//2TvveDmu8u5/z8z2vb1IV82yXOVeMLiBMbbBGEw1GAIkkNAcanASiCFAQvJCCu8bShJ6C4TesY2NsXE3lnsvsiRLsqRbdPvdvjvn/eM5z5nZq2LLoWefz2elvbuzM2fOzJyn/Z7fs/g6PE74crfX23mLtorUv6qnlUXuLfVcA2KPRtmZEh697SIOCyuiOE2sfJ/IShsioe0aUs/swHJYdx86YJxH4+opqLff7ca+sOgZMrs5fwX7OSrKPSlab5g+kYclWwTbxNbFCjAJQpjIutpuAyaTJbvyaBrjG+Pm6mniMreMu29akF1xLJmVR1C+9+c054T9xNfBJk8n103fmW/BhClmrvo0USner/a31TB88fDT6TvjLTRmNjN1yQdhuuzL3awq2TSwJM3QmR8jPbCa2ug9TP3oIo/UZ0qMw+b44yvaTui4I/sk1kKrMke05S6xLpcQh0I1hNqL5FUXwOQttiRmpX84EiEvZYch/ihelBc/+FrTqbmuOWQRgtjrAGl8Hi16DnWBTEqA75O7R09IQ3bIue0pJ2Nx+68ii2E/vncui0LrfoF0oUijSkW91EQOiVS7gm/zClPE7EtqaAQQVRPeQQiBkkWETkEpq5Y7P+s8DxrOGzfxsU3D7StpILTwDE625XJYyRKIpKGTmCC/gCXBVRp+jmIFB4uulRubP/cQYUxq0h6yd+f4hLxGFZ3XBXcPaJi34IwGnSdnXKgRpXzAXvc3iYFOul+DD0U+no61LsduFEXfC8FKsDvBMEhgszSmt4OBoNcZRsmwcwtIpSiuPo3m9Bi1+fv2erzcASdQOOw0yuuvpfrwrX7IyXFaIEhnGHz+X5IeWMn0lZ+VnsR7kPwhpzD4wvdgGxXGv3sRjW2b4k45Ca/ZAEte/AFyq4+hVZ5l7L/+HFua8yxjvnop6/ocv+zvMUFI/uCTGP/K29s9TuL/u457EYVDnwFI56eZqz4V0z6qAekwBF1PPY8gUyC75DAy+x1Hbf4GISpxxqCuJaEZID2wWoYzchQmH2KqLeykizQsLmncgzzBCHNHOtIufvGdcK9NxIplClGAzoszRfH0TFfCI0ruZ7GkEfRfF22upwkQPt4o3rdvkm7wXoTmYW3iRcs9GPgokigdV5YRAS0bvyzEpQXzxJ1I1DtDPLggC0FGwloGMDVZoJl127qOKj60nCx7bCLE/JqPTbnQmKtXJeFlSoegeOwReCpIGyG5wB75vUl4w6TlPCxuO1VYTXyYXfOdpkAc/m8ino5TGBaZJ9ODz2UluYC1Mw2hu97dSB5Olaq7BrQQwIkaG05B+/UwWdsIMVI2aeBECGIZYtAKzlNKy03jP1v00usf9i8nt/ZEGEi1r4KuHIwZ8SpNmKb7+PPoPvKFmFIg6Fdo75Xs3mSWHsnQyz5EzymvisPmLkzq71OAIGTwvA+w4sIf0H3yK0Sh5eTeNgNghsXgsRshHRzGstd9jpE3fpbi0c+JQ/5VPPmJSt+Zf07/cy5k+BX/TGblEbFha9rP36RzDL34fRSPOIOhc9+HyeT9/AUm9joDA4WDTqJw6Kmkh1fTe9qfsFiS+y2sPQ0ThATZLnIHPdXzFScZyfQ32oQkLPQS9g/HO3HX31hRjCbMYAJ5aIJMvv2AietpwXu76Psg3taE7n50XOO10dvkcNU5mtvWE1mIUuKh2i4JwkUNaOwYp/TAFUT1EvN3fIvItLBLgBX4EPITkY5H25EnLLvc41143lK0ZCVPnO9T5TeCLDxaL695w+S+tHwnQnJRupDkEMXtnqaoTEx00e0+V3BMF20F8NB+jMCxHWn+zRPi70asAZMD04fUTya8M4Ocq8kT894GTml2yzmYuYSXi1PqebcDnasQz4qDkf+tU2CqLK0D1dhBZPFXD9Plq9npfj+HJz+wOZkH24CoScwRnAyrGqfQAjlHavJ7H953hg09kMkeQHN+J5FSGDkv0FgxNrQ1XKp3JdmDjqK6dR22NBlzSyeugwGsCeg++WWE3UPM3fgN7ML07i8CkFl2OP1nv43W3ASTP/5noTFUQ0EVPUAa+l/wlxQPehbVzXex89L3QyWKrZKEpPqWsfR1nyBI5yivv5apH/5L/GWQmKMadD/jFfQ+7ZV+9Au3/qhtXyaeLgae+w5S/cvJrTme6qN3UN/+QHxtEmNIL1lD/sCnAdD9tPOYv/1b4kGnIZpxRktGrn1m6ChMSlgRcvsfT+nen/mmBElFApDqXRq/71lCLbwPH51Iio2wzRomlcY2a/g+u/q1O39joLFzM7bZwKTSNMY27HJ9ks9X6f6ryB90IlG9THX9zYKCTyPkL4nyGoDpX3yWnhPPp7b5TkHO9yDIcAXItYApaC5sZvqGj5MZPIqF238SE4IkJ1+Pf+8VtCqzmDBNdcONYuQpQlmBbMj+5+7/MuVHf0G0Y4pobl7ON5TnxeqzkQPqlumrPs705R93F0/WhaApitsmEed7kY6i7cgTlkVR3viBhxggoznaqvvBHKJ8dLHR8Nuih0QBMESIh+zyJaYLUbyzzjsaRmj9GvHvAHn4xuX/5K7bDpPCg130OzUG7OLFyHnLdqfbQR9C66cLhkUASiliPuUwTRDksCvn5Xwfk2MpKT2V+PfZFUdh7QKN8U2i5FweyROou1xfenAVhSPPorr9LqqTt8fn0kBqNjXsGUD3ya8iu/JI5m75No31d4rzaonDZ+46pQb2Y+jFH4QgZOrH/0BjbsPuAUAN6D32DXQd+2Ki6hwTP3gn0cSEeN2uTMW4czOZIkvO/yhBtovGzEuY+NKbZL6T85qWaSgc80x6TxXvKMh0M/2Tf95jbLXn1D8iPbQf6aH9KBx2GqW7LmsfYxcOxBRSPOhZgNAChsVhWuWx9jG4fGS6fzlBWmKD6YE18bGdYeEBewYCk3BF81lp6aepBs1lO3BUc34nqf7l2FaDVmlGDLEscu8mvLrmzDYaM9tJ9y2nuv0WAe9Z4nRHGSKXjilvvIbikWcQ5LqZv+NibBZPC+o9f6dwZ3/xeTjj9TRnRqk8dJ00oc8hfVqTKYdmnfFvvY/8wSdRefiX2Ea93QiLT5/mzs2MfvntpHuXUn30jngfJJ6fXmAOKo+s47GPvxIbteSBUiWXeBgDZ2BW7r2Kyj1XyWGVi7xPnrFIjSgXuSqtu4KSkTKytojQbqS6cZ0H+5FKvJJlQaHMcXNssxi0WYRIR59TBUQpS10RuUY1sBWw2yS8HPTiyw4fTzqKtiP7JPqAGWJl59GFtTg866WFICUt4tHpjZ7Yzlq50YF2wFAEppgnlV9Kc3YLNFVLyWJn54kZnxqQP/hkTL5AecsvCJqRLJhJlLCjgQx7ltD39FfSnN/B/I3fxaaslA4klIJpAbPQfeL5FI94FqUHf878jd+T7zQXmAI7BOyEsDHEktf8X8KuQWbv/DTl0sWwH9IGbye+6w4p6D7h5fSe8lqsjZj67geobr4zzi1q2Y0b9OBLP0iqb4Su1ovY/vk30pqdiC+EzmEE6aWH0HPSqwDo7xlh4pE/i/OcNrHPELqOeY73fopHP5eZq/6jDR1sXT7LNiC78ji5LLke0l0HUt8xIeHqEE8wENUgzBcIslKHnOoaxAYOPqqAqkRe2iZuEmvre81f1nesJ7f/cdhWUzrFJEWjGRaIWpQfvJrC2tOpbrmb1vhEPKcRcYi8DNXNd1K65+ekRw5i7povx5EXx1VsGuKJAcze8A0IDDbToHTPj9pzx8pEhlzXyUs+TOHAZ1Af3UBrZofcpy7ikfxZRIXxK99BKrdEuI9TwEpgK74frI3AFKCVHmP0ixfEBp62j4M4512Qea1PPMrEt94fHyhpYNn4NgBojG6gMbqhLfSd+K8tBdqaeoxWgr6x7bZyYWytg42aNT8nptXuLAcu92ly7p5QT1Bz7Q6P0BaBcPes306fo6Qstqw16qKvZO7ARV/svOwryLt7ORGZMwbpZa2ND+p4cKeSs1gr933QeGKcFR1F25G9SuGQU0gvPYCF2y+hVZr2nmvb4mghDAfoe8GbsY0a09d+BhuU4rBy5MKcVbnBu572Yvqe+idUH7uf8e/+PbREY0tYEf/gmEyRZed+nFTvCKX7r2bqko/CuFMCPWL96jgKh5/O4LnCU5q+dxlzD3wNttLGEqOLweBz3kr+gKcA0Jx5jMqjN0lj8/h05Pnu7qHP5aX6Tv1TFm65FNuo+DykbQA7xMDIHnI0YdcgAPlVp1O59WJMP7QKxE3OnXJOrzhIztcEpJYcgHn0Tk/4geaFHXuPEl4QBBgTtK8naXy3oKg2g23WMakMrflxogACG68v+iPbDdXROylGLwBjqG65Q0A/Bh9WN4nVdv7W79D3rAtoTGyiselOv2DbJjGCOICoOsH0dZ8mf8DJlO65FHojWUyVhQi891e5/QamGp8g1TvE/B1xKDZ5bipz1/0Xtc130lqYauPt9T9IeBRTV3yUmV98hmh+QU5C604jfEN2WcRbTP/0Y/FuFIiknpRFSEQAS5mZaz6P6QbrojJ+fMmHYAGsXZAaaJU6gkzViIdx3loK7HSVRm1LG3Lelp0S0P2WEMWfNJQcsM1kwA4gaQ1tkpAQY9x8ay7Z/T5ZbaU4tMU6qm1+Tfufi597YNd89e62dR+aKl6p+t8krk8SHGlS7tq46gG/PuxOTOI/036NtLuUQY5hNNpWAJsX44YscUVCEcww2B3ItYGY8GQQmIjXEjXIHk86irYje5TM8kMZfsl7AcitOIyxb70vRhYnn84u6Hn6H1E4VAjUm7Pbmbvlm7GS07CwYyLqOfo8TCpDfv9jyS47hNq2GCFp0s5Sz0B6yUpSvSNy/DVP8QursrkkrfDAKTmAMBzE7sCHQhXkoyHBqFH120blansIXMcRyCLbnNkh7E9TW6FZw+QQfuAKvr2ZDaG65S6as+OEPUOUH/y5GBU7kBKNLjdnzkKev+lbpIojRJV5Kg/8XELrSkTgPAQ9t8kfSpeQ2uY7aM2NtYfCA1GcJoBWZZyJb/wVmZGDKW+6IW7dFjiDwIXUWYDq+lsZ3fEGTFdAqyr7REt3dIVydIrlB6+m8vDVEi6N8I3uBeUq22n5Ufn2iynfe7Fvpm6Uecot8KrADVC5+2dxKC8RxfC55ARVYG3L3TwhqUCkbpKhPTe6u3IxJ6ZJghliN9ICO8suZCdeHKCOuUW/s8RRn7zMm1lwx+vGM0jZSWBM9m8Xa6sEaMyD0DTEq963u2920UHOUzdNYgR14hhJJctu3hs9h919zh6U6d4kaXDtBumPS3NYBVG5lpL+OVuk+EncT14MbaU/1oWCrUXmEDw2IaoRl2i5EHeQcp7rTrcPLdXTeag7p2FWvrc5npB0FG1H9igKwgAw6ewuHgTgrezW/E7/UbM26bQfcVhuAV+6UtlwC11HP4fm/DiNnVsk96qlK1p7GED9sQ1UNq4ju+oY5m7+rvd2tX+qreHrLRfuvJT08EqCYoHZX36tvaRGvSr399Rl/05jfBPNme1UN9yx20iU5D6bjH3rL8nut5bGow9APoq5fFvEeaAMwnv8uTdg8llMpiJj7EPCY0oK4R7wxs6NjH/rnaL8XBlJmwZNKP3G1HpmblwvFvUgEorWxbuGWNcFCdM1xjfSGN0YuyvI4hq1kKbVyPFNCglBVxPeq06CFvKn5dzMAp4Mw4ZiwVtn7JiWW5QGEf5q9VbAA5W0wUOYWLD9Qu26OGGdp+JIH6yi1fe1VEdF76fdiTMMfS5O7+eE0eYjC/oTbb844z7vI263CHGP5L2IdUC5oM95oTMuD5usr12stUz8sXE1rz6PqKhvlzPe5bfOi0sCdXbn7SUP22bE7WaXj/f548ni/e+yzwDfoYkKosz02dBwcCLitdeBJLbX1IVx9cc2jA0g45S4TwMU5Xd2BrkXnZNg1HAtEzOUFVPYQQs7Hj943CGs6Mhepfv4c8ksPZDZm78rNIa4XEt+kadkAvKHn4alRmXyphg41CBu0N6HW6wM6SX70dg5TjRf8ZRnOKsTS5wv1RrWMoJM1DCTlvkkvQiXA00Cnh5Pkta5nJz73IWbtX7VZBDkbx1ZAJzX7UkmWjIu4yxiBXHZaecJzbrfJmpysTJe4/42CW/DQFzSU3QfZNz+GvF6g4kXB6/UHU2diu12b+ac96kddrREypXzWI1AuJIco5Z+RhYnv8DNOUWL218RHxb2oUB3TYNIzs2maG85qOdniFHg/W5eNOXgSneeaK2il72t6Gr4gWfg2q3k8crKWOKewAaZX0U8V3f96e5C4BHEhCv19u1s8o/EOE2RNgCdT6noNhk3tha+Hjx5mn5DR5yfNJLbvFJnBD0e2cf/RIwhptMM3dg15Kzo4AhMpkiQL9CanogHapGQbYO4Zr9uyK0+iag8S337/fG2aqA5EJQF0n1rKR52JrUtt1DdsE6MRXfdTD9yP+wAkwnoO+cC0n0HM3fLV6k9cjs2hFbJebo9bt/TkF5yKEMv+QeiRoVt//HaDmFFR/5nMn/7xbt+qN5AmxcQUV5/tdy0eTzhAV1AGR86thGYrKU+sTlGd2bE8zItfMmQ0UVbw8Q55AGbdp/N7GawfbR73Jrfon3x8Lme3a0oGedhFojZnXRbh4QmQ0zq7vJjRj1WgyCjG8CY+z6LGAkLwFIk/+fWEQ09e1SqSegJHUPDzeUCcdkPxKFeVWCqNDUsqchtVeAJT9fT2GnkQQ2HFJIrVAPK4vPAdMt41FnwZVpz7hxdO7OoJOcYEBsOu/UyXbjatwKcjUN8Hs2rGkEVpIJldBAadtY8aMCuUZekaNTk8aQm+zMa9tdrry3bkqQfezlUW7RzMbKbPShZ8IaVqbX/xk+HAaI0ptWQ+0fR70lvz3mHQe8AqeJqapvuleLQhDdoIEGoYSgeeSZBJs/CXT8VOlJgd65Yenh/+k59FfWdm5m9/ut7OAmRgWdfQPHw0yndfTmz936pvSORTpCF1NBKlrxCkOvTV32a0u0Xx4QiyfOKoOekV9PzVCm72vmDv6O66da2+YnvdcPQuR8kzHVTPOw5jH71dTRL07FRX8YbctmDj6K45nkA9J34ZsYffjORq2m3LSS648r0CsecRpAt7PGcF8vj3Cod6chuxHm0Jo8oxhDJVWgB9zSSZ9GbXcsXppHc5ZwLpTlgSVAnBp8o8Xq3O04VeTDr7LUdmjFI3atTeqZIe1kLe/AgXJjUZIQ0wANPFuLvKAJDTsnN4BWSRwjn8CUAOO/Rujph209cYjCE5OImXUgqQR5hE16L1VDtAnHj+ATXsS6ODIAdwJdMWTWoXTjdJkJnJiNjtHX30mNZJBQcuXPQkhWtZ2wgvYTriMdcd9ezgDeQLPJ768A7geOAaEPoKhApxa6unrIuKelFjxuHejp7Er3n+sRYsTjPOUl0QkKvqKJMhoUXDSfsG5EuTi5yYkt4Wj6rSrcGQa6fwiFnEPYMtx1jd6HX4jHn0HfGGwm6BmW+3YZ20Q9S/ctZ+up/Zsn5HyLI9WGmiY2NZMjXQM8zX8fKC3/A0Cv/SYqZ6+3noUosSPWy9LxPsuQl/8DQiy7aVfsHfpd0Hf0cBp73F/Sd9WZ6nv5qIWRJQ+jyniYeCoNnv43CoafQd+ofkT/wKf57P0TnWaa6+ug+/lyCXBfdTzsPE+WFsKTqrpkafgaya47yyPX8gSfjc6QW7LxjPHMpptTAqsS8rYiv4yKL2qSJLRUbYa2NnQD1bOdkHpqlcakrBhoLW2CIuCe2ledG6/crYzcRNarY5uPkDHSMT2ir/0WiBlRH9iLqXVhHWFDF5+2SnpLVulrYFbKvbwMkV6eeiCNd0LCh3zTCowV9PicBIvL5E1XaC4u8h2S3HAXeZPC5U6N5HGc9W4h5ZR2y0KpiXYUQQswjT1ARzBxx7kbbrKUkPKbIXGbdfGTdbyJigo0umUNVPNYS9+HU+mIbn6txc6flBj5M33TRALfy+EXd5U81VGqc8iDA50VNFQHXtBatVxoKdjlB8eoM5DJQqkl+tpH4jQuPa3guPbwGW4Tmjk1tbeH8/h21Zdg9SOGYZ1Pf8TDV8u2x8p1yGyY81eKxzyN30FMp3XcJ1W234qMsqsydhF2DDJ73foJsF5M//Rca8w/LOe+Ge7j7aefRd/qfElUXGPvaX0qqJHJGo8t1SrOHgCWv/ldSfSO0FqbZ8dk3gFugkyxIxgjJxMDZb5V5GFjJ+Hc+KNuxSAz0nvRyciuPkLEc/zzmbvh68us26TpGPK/sqiNJDaymMfqID/164ySCVNcIYb4XgMyyQ3dRRP5et2DyRf9VkOtqQ/j6sK/uujLr39vGnKSTkiFuVbzVeerjG8ksOYD69odguhqT+bsyMcVuVCfW0Zx/CWF+iNKGS30KxBo8KQrItnN3fY0w10NUnqN8r6uxTXjHftBZy8QVH6Cw4llUH72VqDwTR0E0fRPKWhCN7mDiR39BatVqKjvXCZJcUwshUi/s1rT6tnvZ/rk/ecJh9o6iXSQdJfv4YltIY3CIczyL86L7MJE2LQpJm4BjiCkPwVuf2vjaOAJ6soii6pJjmwX320FgGp9bs+5BMmrBOuVmXP6wrcuOW0y07ZtJIco/iWDdilAeKkimhrDEKIpRmaqabt9ZfPG9cShgY51X2uUUZQAEKcKeYVoLYxC5GiotDVK0t1vQMiuPIuwbpPzQddBwE9eSuSTEl5QEQQ/dTz2fqDLN/K0/QGuzrOZANa+VhuKBz6F45PMoP3gDs7/8jqfhk4uEJ/Ew9SLD5/0L6YHVzN7xRRbu+H4cXnUIbmtk7IWDTqP/Be8GYOrif6b6wHWxMaKGk5vXwXPfS2bkUGzUYvTSt9HcurWd1cfKHIT9I/Q/+y0AZFcczvYvv0JyZ4n6aw1rF446k8xSKafqfspLmLrkn3chPdDbTNmaglwX2RWHi6JtEYPpajiATOg92bCrHzJ5Xz+62x3v6YNFnnVj56P+78bE5kWWJnEeNQXlR66j64izqU88SnN6q9/AZBCe7ZLMb2N0PaV7ryC76ijmbvhGOxDK0PacLtxxCWFhkCCTZ/76r8XGk4mjE3q/TF/2/6gdfhaNyS00ph+OubKjxP4BY1vs/Ppfkxpc7c7Pth1TOz4RQKs1ydhP3oQlwNSiOLdsiWvinYJu7tzKxA8uilveJc/LhZdpijHcGN/IzIaNBGniJh+J1BcF5H4MoTm/leYjWzFNaCWNwgyYZW7OtgGTYJvl2CN/HOko2o7ss/i6tF8FeCICOxuvOSYN9ONzmCZxPLoRzyKNaM8pi4ki4b11KFnUS+1BHqCFDLllR9CY20TUmpFQoNuvz/+6D7L7HUVm+VpKD11FVJuMQ5fJ7SIwlQK9a1+POSZg5o4vYufm0ZwauPkoA3nIH3MafUe+mcbUJiZ/8Q8wV/MAFgrEXlg6ZPiF/0R22Vqqm29j4rsfxIfebWJbILP/sQy//B8BSC85hNkrPytfBLQjmJvQd9YbKKw9A4DW3AzlB66MFyOIQ+cmpO/0t2KCkMySg6g8cDWt+Yk20IxxzE7ZpYd7ovXCmrNF0eJQtBGYsjMispBesdZf6syyw0TRgkQebMIJMWDSkvMyQUhQz7WBony0oAE2qhA1qgTpHK3ydJvHr4AuXXzr2x7AtpqYMEVt6z0xdaO75uq1GQvzt/+E9MiBtGbHKG+4RcamCjZDDFTLN5i+5t8pHnY25fuuFS9pD1J79HYmL/sk6cFVzK37gf9cy6iSoevSrT+iMbGZqFmjvuMBwQFUXCQHPKWgacHMzz/J/C+/QSs1gx1pCiua5p7duQsXdsT0Lz7u50fTKT59krzHbI3Zaz7n507D7QoMRCMlIdhMiYV7fxTjB5qIwZtEYOva0KjRGH04PuGkOGPWpvAoY9OIsL0Iwt4hz4NuZzDX3NypEkxOYFLJurQHDh0fuPvHr1V6LdX7L7jv52V7VkO4HVgQmzfIgtlBDH5UXMETRMV3FG1H9l2CFPlDT6E1M0ptx8Pt3ynForsBc6uPkS4hD91AddPtu9+fBZPO0H/OO0n3r2D62s9Q4wH5KgUMIChmx9KSXXMcQy94H7ZRZecP3kdzcrM8XEXikhHn/Q4954Pk9juGVnmS0e++hYBSDKpJ5KlS/csZOu8fXZeQkxn/3oX4PJpDQmuYqfuEl9J12NkARPUSs9d+XsKLaffqwyN6ew58BWGul3D5sWQHjqNW/mVcP1pFynYCCFP9ZJetdXP2FEw6A7V6DPjRIv8IUn0jfuqS733rNPVsANtKhhlaMVCtgeTZdYELWjSnt5Ee3I9WaRpbn/cAL2Uqss6zq7ceojk7Sqp3hMpD1wgHcytWRFin6JpQuvMSsiuPAqB0RwJYFxADtALZdvrif6XrqS+lPv0AjS3rJVSdIY5cIPMb5WaZ+OG7yY4cSbVxoxgAiWMnUcq1rfcw+q0/xwQ5Gls3xV8YhGBevboqVB66nm0PXb+r4ZggftD83sKtV1C6xYUsMwhf9DySXlgkpbsvj/fpQqpBQtHql9ZAfcud8bYlYsY0/bmbK4DWwk5pBhEg1IzaOWoWwStoxMU6pWUQZZiScD0urWF0IDkEnOdIM5TVCuT8lIebohzDPxeuTtcjpNVAVYWbUITeWDH+I98xyu8/RDAciXp90+1+47xmRcGbREqlTayLGiXmLVIDV402xU6UiXEXLhpjSsjz0QtK8U0vUl+bSZxnR9F25NclA8/5c7qPORtrI8a++lfUE8rWJmv6wjTD572fIJ2j64gz2PrJVwsp/G4kf/ApFA97JgB9T38d46PviQE0WoObBQLoWnumcNWmc+QPPJX5mc1SwpJBFoAqvr1ZZtmhMpTCIKmeYRqzpfbaPA2dZvNxl5Bstw/FejSvlr0EEFXjmqKoNhuXguhDV8HXAdY23026fzVRbYHm5MbYCu/GL2wE0GpMUl5/HYWDn8HC3T+FululInxYiwZQgMr2X5C5fy2pwiBzV38pBmRah4GJnIGSgpkbPk+rNEWrOU350Wvi2lnNU4JH0k5862/IrjqWxo77IV+VEq4yRLP4HrIB0KrPMfqtCzDpLmxpRkqfdqNgaEBzehsTX337rl605rsU7GYlxDd9yUdjL8rNpVVglAtPUofGwkaaWzdK9KNBe1mUiguzN7fvkGNrnt6F4L2SSaYsbKwE2hZvLUHTXHjy64i4qw+7rvm660TwJFaui7bxTpplFzpTNV5IJaI8084IVYWokRWXlsA1vtCyIpssn3JKWLEItkHcblGjVrh5G5bjtAG4mkgzBFdW5vOZDjvQdi0Wn2iittxqysGhe4nkfvKeNHKeSXCcNwKUlnE34WM/5zo3WoaXpf1e8GEV4ohYhIALGxCWEkpbm2goYNMBAB9POoq2I/ss6YEVAEIh2L9cwkKaemmz8CxKdmqj3aBgEtKY2oqNWpggpLFzc5sSokseEOM8qsqGm8ivfQa2Vaf66K3S2qqIEDnUkYfcipU/c+MX6Dn2ZVQ33U594+a4/jOhZAEaExuYvubTZJcfwfxdP2hfuC1tLckW7v0JUb0EYUj5kZ/LYqYI6SYx6UYaZq77LOVHrqJVniCamYlZorYSL/49QNMyfcU/M33xv0IrsWpo/aZD65oq0Kgxc+XH2vJMOk7jgCOm7LwcW2Lu+q+KF9Ij+7MuN6pNua3zlO3CHJWHro2tfbeIaWMCbQhvAEpNCGd8/jxQvluIy47U21Cl6Uq9SIkh5BWXAt/09nBGgkkoUO+F6HwEzvOYXnRbudy6N9I0l58E5QVuLpTeT8P4ziPz5S7J3H1S0SMKSRGwNBEDD6QUynlGSiyikYa9pVoWpWPlWqs3XyF+rrJuHqfx/VP9vrVevSYv25DfmiX4yIDdSexpJupNzbA77+3y22QrSyzS6KNKHIlxHqgvHdPyLTUATOIzPUE9yRBB4ysxhQMmqXeqXNueCSvpJUO74avzv3gCNffrvvLlWMn7yUVhvGHlrj1ZMTCZQmp9e4hbdmrpnANVmmVgN/K40iGs6Mg+S2bkYPrPeAPN6e1M/ew/CKKmkGzvYdvCoadSeeSX1LY9uNv9qeLLrFpD0LuE6v23OLcMv+hbt+AEFuiC0PQSNZtYWxLPyyk3Uydu0B4lFsOEBKpgEyQM3qMJiBcFNy7/YFuEEF0XM5CHroeYMKKOZzjyYfQSMcLZkcabFqKgdeGsIF1W1GvR8ehi5UKOfnzOW7NuDMkQmUdypmSxMUpj1+3mZadb1Prw3r92JsEkFp6c229FxmHyxDWuWmqRddsoWtx5GcYmPEZd4LrwpUd+wAX53mYQZaBUlZVY+bZdm37i1ETDLYAuBGrLxP1vFT3uwFSmJudjEwA1X8pVkznweb+kstbF1bp5dErEO0FNPAGGabnjKaGahiQtnpwB8N6UTVKZ6pQk78Ei4vnPg1EEbMH9po4HkfnrlXLXVz1uC/RA0BMbXkQITqEHCTFryNTg72O7yV1D8Ih7T92o86peo4aA08QetzsPk8fXc3vmr5acv3IYG1eKao27RouMAItcXxMYoRfDKUMtBdOoiFYNZIukB1dTn1gPUSMmnGnJuUUBRI42Mbf0RMLeAUp3/xwTNYRsRslfHDe5BVKDw3Qf/WpapXHmrvsmthLJ/ZIHhiBaT4ewoiO/eqmPrmfs6+8BYkNyT9ZafXQ99dH1e92fdf/UH9sEo5vai9QVzaz5oxbSMaNrVvKxVfHyTIqYEckiNaaKFnbiF321jjOJhTcZ21s0Nu2R6RcY91uPKi4jNbILiXGrR+UsX9t0i5Z66d3EzdUbLkzV68Y2hbf81XvA4AkJtDVdm4WuJ6iLpjMGTBdxmKyc+E3k5ibnlLNDdALeQzIN951xCiyb2CaBqrbGeXItfB3uYs5eY5Ecpg5Pz089w1587bVx+XNbwPco9fvTOUukKEwYe+XKH6xeMwbfZ9csCsV6g6hFey60uWj8StbhwDUYd78ZfH7UpCDMQWsCIfDQaxDhmbV8e728ux/UiEjiBSBGxlbi35MjDlOq0afKS6dZ513BTJa21o5a723c/Rt092F76tj5spyjwzdoVESN1GCgQHbgOOrbHqY1LyhFoxGepr/EmDTkDzyF9PKDKd95Ka2ZiXhx0JeRYwSFfgbOeTsEhumf/TuthUmZi4g4imTBdENx7XPpO/3NNCY2sfMH75PGHoqI1uiJAZPKsuTVHyPVt4zq1ruZ/N57/TlEFkKd/xbkVj2N4XPfL9M9sD/TV31Krm0Dj2/AKf/eYy4gt/pEABqPbaN03zVxX1wlnnkc6SjajvyPZG9Kdl/34y1PA7afmCAiwrfas1n3nYaTlDHKIAuRko9P4hcYr0MDt70LWVktGQkXLea7DIx4kVD6xwwxYYUukmn53maJFaLmWFUhK9uTde9nZFy+H68qVvV2XNjapJzHqV6shuh0eKFThiGyYDbc8VTxqGWfQIR6UFQgkQKjRBQzMp5A96/nm3fzmnMeSgGPHm4zjpLz5c5Bp9GA72Sj5A/GgB13+48S86NEGrpLB0oyCXCUnZXx+IVf963Gjop+5sqlvBeoiN7kAG18Ct4waQaQimKl2O/GPyeGHhnJkoTdSzFBhmZjq+8GwxASWlbClRoEPUUKa55NY3IL1c23i5GlBtYilHFu2ankD3oG5QevorpxnZyjSyeo4rAGgq48A895D6ne5Uxd8R9UH71LziOLKIYqEnVpQuHQZ9F/5ruwjQrjP/ob6pObMGNuf+rZOcKOwbM+RHbZWlqVWUa/+2bs1EI7fiEl40ktPZDBF7wXgOyyI5n477/ebUicEHqe9mLya6ScqnnSeYKcd4aC4guogSlB13EvwoRpMiOHkF12FLWN6+IIhImfh7BniFTfMjn+iiOwGExgPX4hiiCI5N4OC/1+SEFXf1tY2hvXFblXomqMK4mqpcQ9QQcM1ZHfP7EgD5vWvM7F67Z/WmsIw1SLuMZUc026+DR9argdEKFer5YpaLhTlV8SoJs8ZvJvZ/V6ykGnCJlAcmIGz2pkZ0UBGM3vzSNIRg1vGtmHdehjLfXxtJGNeCFtU1xJ0RB3mjinlaSDVM8oiOfCaqhWFxenfE3dWfNKFKAeahFhoKrgjRrTcucbAisQEnaHEjZuLtuYodxKY10I3GQMQbqfqDQjq5pbtK1b3DxIB6H7S/WvoLxhHdQbMThMQ70a2g6zdD31pdhqlYVbfozRhHzi+pkIbBGyI8fTc8L51Lbey9wNX/NhbpMYI4AN0gy/7ENkVx7B3I1fZ/7mb8oxFRWbWHQzK45h6NwPYYKQqV98nPJtV8hcOTpRk8N74/3PuJD8geIljf3oQupbH5YxJOesBabexcBz3y1o+ANOZNt/vkLqqFTB4e6ZDBSOOJn8/icA0Pv0V1HdclccAldli3jT+TWnYkyAyRTJDh9HbdMmCSUPEtNM5mW86aH9AQjzvaT6+2kuLGBL+Jxz5PKhJorViQnSOuXtkpb9Nsvb/UfN8napS58nztm6eY3qUNlwM+mBVbRKU9TGH2kzvpKGXXNqO6V7Lid34Iks3PZDwMZtN0OnaJFxlzdeSXpwNWFxkJnrvyhrgguTG+PWB4eqnrnyUzRmttCcHqPyyK349EgGIg2PP450FG1HfmOyOz2xWCxIWGiCmNRemZk0HJvHL/qm6BZnDbcFxHnA5IFV0eaRkKnLu3mQhObGdBCJ37d5YxBb8w4FTZPYU54nVqgagtLQc4E4dzvvvnOoUErEC3eyfjd54MWfuXCp0ZydCcisPIQmo0Q7Z+RY6oGFomAUXJJefgCZgaOobrqBqLRTPIMyUlYR4lmnaKboO/p1hP19zN75ZVrsFFBa0xlEIF55GbLLj6X/rLfRnBtl6gcfhkrZD9Wqx+n223/2e8mtOZna5ruY+s77sUQxN7XL30l+bBVL/vjfMGGa/P1XM3nVR2WRT7BUWSvKvedZr6H7iJfINWs0Wbj9J/EtoNfUGTP9Z7yDVPcQ2RVHUnlkHQ2HnNfwtaJfM0sOJLdKypO6jnsBc3d8E9OD3EOan+0CFiA7coRHrmdHjqZspfzHlmR+ksCgoNDrxxaYHo+83sX7azWxjSomWyRqOC1djY0Bm8Z3v6rv2IRtNTBhmvrEQ1K+FMbevp1317cF83f9jNzq42lV5ymv/6WMsyr3gNFITw8wBdM//0+6T3gJ1S230hjbGiuWRc9Jfewhpq/6JJnhQ1i45QdoaB0S5+6AT+VbL6c5sROCgNr2W+RY84n9Ks4iDbPXf5nSPT+jWZ7GVioECUPI79u5tdOXfxLLJ/3z7FnNjNzTqmwjmszc8tmYKU6N20p8rbRhRjRTZv6G78RYAQ3ZRwga+glI8PibtMu2bdt4zWtew+DgIPl8nqOOOopbb73Vf2+t5QMf+ADLli0jn89z1llnsX59e45uamqKV7/61fT09NDX18frX/96FhYWFh+qI39Aspv0p4h6o0mxTslqTWqRuJckxJR/DVnEjIYvI4jm5WHSY3p0seYqJ3C8sDmC7n5Pk8hiK9nEf+RWn0B6yUGifBRAFRDzG/cA3ZBZeQB9z3oT+dUnyHGLxOAmDVsDRAG9T3kzQ2f9C5nuoyTEnIqPbR2HsDSJP5CRN3+VkTd+lfTggfEYU3JMsjImm4Les9/K8PkfZemLPkVQGIpzilrvmAW7FIJiL0Pn/At9T38jQ+f+o9QKFsQrDjR8X5WoQPHwZ9N97IsprD6d3iP/zINwIlXEGt5vQs/TXkmqe4TcimPJH3NKe5PuGpJvLYExWXJrTgYgu/oYTLE/7ibkcngq6b5lmFAsrdTQfpisM2A0VO3C4xYglUhYBqEYMI6TmR5ikFMGmjM75FI0q0RmWvibjQtd6qqYgubkFhqua1Vl/S/lvlPPXsE97hqU7rqSxtRmmnPjLNzqlLx6v4m8tQ1h+rpPUtlwA3M3fp3qg7e1a9ggftlWlYkfX8Tszf/FxPcuAlrtzSQShmJzbBNjX3sLEz+8iNkbviQKSe/Xmjwr2vat8sg6tnzsfLZ97nW02C5KWa+TKh7HwFZ++CrGvv525m78SkxdmQLbJ+dijEy3iaB0++XM/OyTNOcfk2PniFvMqaXtjJ3qhtuoPnILSlrTBq7Sf9xYGtPbseXK7qNMe7LeNV/tohWBX0DkPg8ssfcO/pm3TZkjW5dITRsgz9X8ar1vsDsE6G5knzza6elpTj31VJ71rGfx05/+lOHhYdavX09/fxzv/pd/+Rc+8YlP8JWvfIU1a9bw/ve/n7PPPpv777+fXE5Wmle/+tXs2LGDK664gkajwZ/+6Z/ypje9ia9//et7OnRHfs9FnwWJCBkKhz8Tk8lS2vhzjGmJNbvogbEZSHetpvuo82mMb2L+5u/KPpT/VAERLbDT0Hvaaykedhrzd1zKwrrvxXm4EFG0DrwTdi1jycs/SpjvZfqaT7Nw18WxMlqUY+w58dX0nvBKrI2Y+Mn7qY3dJVa6U0Y+hNmCodP+nrDQT9dRz2PHF15PVJ0UIIxbsIzbb3boWLoOewEAfc+8gPH/fqsAY7R8RG3OLigc92yfTyoeeSYzV21AEaJGSRzcwptdeaT8me0mPbQ/tepOT7IflJE84TyQz0sdMgJKiRwyVD1wk0YaPTTB1mM0WVSei5HcqgiQeTJAbccDZFcciW3Vqe/cECtDh8Q1LtJgqzUq919N/vDTqT6yDluaFlCRApoSYf/qptsoPXA56cE1zF71JekE1UvM65zIC89d81WYbxCZKgt3XxwvoAnUuGIBdv7wHykcfQqN+npa1Ym4tlIjIm6Bt7bM+DffQZgeoDWzQ3bjQGQenToqh2mVxxj7ylvbIw96L+nbEFgCzcnNTP78I20Ma0lJ4gUaj22ksW2jN/KsEiaoJ1eUZ4EqNGd30JzZISC4ItLSsEI7RaVx1zrflO1ywBQeRU4BoTHd6bZXQol5YqS2XqusGGbGRYda7vtAa6EVHZ0Evrk5MQ45bBUroHOVKPfy9atJZaenkcylL/pOv7CaLkh4wVFDlKgJ5F73oDkdm4soaXTNS4a2e8pU2KUb055knxTtP//zP7Nq1Sq+9KUv+c/WrFkTn5e1fOxjH+Nv//ZvedGLXgTAf/3Xf7F06VJ++MMf8spXvpIHHniAyy67jFtuuYUTTpB8wic/+Ume97zn8dGPfpTly5fvctxarUatFiMb5ubmdtmmI7+7ouuI/l885jkMPvftAKTuGGTumq8L+MLVyVoXljEV6D/tnWRHDoHDnkl9dD21zXeJoaqWsfNEwswgvSe9HID+0/+U0p0/BtOIF8wFvFeX2+9oT7SeP+jpLGy4WBbHBXaJ8WQG5f42JiA9uB+18bviE1HLP0OsHGVjeaibeMJ0H8atQGvnuA/xNae3x3WAai1rjjIL1bFbKR5yDlhLdfPtcbmF1tZavMKfv+Ub9J7yehoTj1DbfFcMxHJ5QvXcbWmUmav/k9yap7LwwMU+1+mZmhqIIl+A6iM3MHX5PxEU+inddbkcWxebBPLUtmDu+q9Q3XQLrdokrfKYIJeTwJGEzFzyUWZ/9u/YhsQhTYCEtjVH60N0LaZ/+slYqaSI0bjGLYYhUnbVqDB73Zck+pEkMlBlrGH+KlhKlO+8QqICqghWuXDlQ8SIXguWGs3yjvYwaDIvl/SIFCFv8A0v2qQFbEdCvg4b4I0VG+/P6LaqANRz05ptTQmYeBvf4DyDlHI5I8dY952VeQ5cnpQhYlDXPMJupcpkRhSrj8gkc+zOi7UtfGlaslmHGmMmB5ErawosAspKskVZZ4RCbJSpQeTmwmjZUMvdS0ll6u5XY9qn2aO5dRvdb+K4kYsGBPOIseGwIeSJKwbU+K7g6/O17t10g9kh91nr8fJh7KOi/fGPf8zZZ5/Ny1/+cq655hpWrFjBW97yFt74xjcCsGnTJkZHRznrrLP8b3p7eznxxBO56aabeOUrX8lNN91EX1+fV7IAZ511FkEQcPPNN/OSl7xkl+N+5CMf4e///u/3Zagd+R2TZOSoLT8V9sU1eRa5kQ9GLOxRiCqxBrP18q6RorI8/M3WHI3pHaT7l1Ef34jJNoQvtUqM+AQIofrYrTTnRgm7hinfc5kPA6k1DXhihtl1XyMo9BGVpyk9fKUs7qpAFOXrHtCdl/0dxQOfTXXrbbSiSXlo+/CLonUAqkb5MSa+fyGp7tVU198UA7s0h9zEI2+rj93Kjq/+mSiH2mRcR6qAEX34gcr6q6k8dHXsFaqSaYHtxhN6mCZUbrmUyn2XyphcTswop6/BN1EwEZQfvj5WMhq2Dd15qZHg0ND1Hfe3kwu4NIDvL5wQVbIQj9MTUbhr5flz3XWmRZvH7wFRETFSO1mzmgSFtWSfPl9bR5C+xp33I8SeV84t8A3ikiwNRc8TezqaI9WcIsQhXT3hbto5gLXUKyORGEiMMSmq7JW0wiKo8bRTok6RamTHe3w6Rhe21VXe6LmrERIgOcZyYp7dPNkpt00fcY24ggYzSGldA7lPHE8wdQgSXp/HVBhRbEaNBAde86VyPsfqzifprTsv3lMtJvKjSY92l5DzYtHP3EJknLKNqhA6w8YaPBjPN0lJpHS05tt0I2QW0J4e2Yvsk6LduHEjn/rUp7jwwgt573vfyy233MI73vEOMpkMr33taxkdlRjK0qVL2363dOlS/93o6ChLlixpH0QqxcDAgN9msVx00UVceOGF/u+5uTlWrVq1L0PvyG9ZfJeYCBZu+wmpnmGCdJbZa78et3rDWck73fMQwNQlH6V43Nk0ZjZRn23P9bdZra0GY1+9kOyyg2iMPxiXyriH1hOlV6DZmGT0x2+E2RAaTSmd0YXRPcjGLRjNmU2M//AvY4/IWdU2Ub9HHchAY34D0zdukHzgkPMgFfWp5BROGdRnNtGY3CSKRZVSC/F8i0gZjfOIIjMZezcLorjIIUpXFYXmjQIk7NdCFkfn/URWPAytwTUQM0Ql0cpuVwRiGNiSC73pVDuACCXiJg/O01QGKfXIPPcyif2ym3UwcIvugjNGQrkepoEgYdW7sYt+664DIQLiCZC5LyXmo4VcX0WLQzu/r9NQNumhBnL9bB4h69djlYk7ROmriAdOabMI7UbjxZGY+PsM4o5Q6gVaZ2Ak7kE7jITbE+Fxq+BATVkECGJ3LLFdL3HZlTN6TJKve8Gd76gbdzoxDk1fuLIv5omBPwljyGhtckict3UAIqvH0vKjhsNNVBLPjEl42vpspuS588bAIoMlGf7FENNBJubaJLdL3CwmncNgsa2a38443EQUQGpBjcEUmVXH0Ni5hdbcROzp5hBPtiLzFyg7Fk9M9knRRlHECSecwIc//GEAjjvuOO69914+/elP89rXvnZfdrVPks1myWazv7b9d+TXK/5m1Ae2XmHq8v9o62DiAQctMOP4hzGqzjF/53dkIa/sZp/E+6A6T+2xO2ShmcOHzrRtnIGYcm/WQtT0taAYZAFT71ZZZ5IhTw1dJa1n9e4UzBMii72W7Ch9nlrziqzMEDPahIjSVNDOdmIe2oRX4FmZ1HubJi7zcGhO31au6BTFvPttRRYUkxWvyLqF3WbAFJy3E0KkyjxCSAvSEORlgbFNdwylxdM8YF3+92UslcS4F8kuC5OR43gvq7Foo2iXzb3n5hdpjUbkwRwC9jHiNotJBev+8c6NKrXFEiEKNkdbxACIWxoqeKiE98q8l5egzPTRgqTHquOd240jq7nvPnxo3uD2rV6dotSVxaiCAHfcfWImkXBo0x03jRhtIVKG1XDGQQkBwek1tbJPbwyo1+/G7D3NBpg+CPN9GAq0HtvuAUQmJTlQExF32UmnKB7+LFqlKeo7bpP9aUSglbg2TcisOJri4WdSffQmqht/KdcrUe5jcUZzENL/3HeSXnIAs9d9idpmt9+kNefeZ1cexeCLPwjA5I8/SGPHfRBAmEKIYgoQhYJjGDj3PeQOOJmousD4f72VVmMSlhI3a2i4V+QU8BOUfUIdL1u2jMMPP7zts8MOO4wtW7YAMDIyAsDY2FjbNmNjY/67kZERxsfH275vNptMTU35bTryhyfW4ruCLIri+M/8gpPC8/KStJh14TEQBgK4CAOxTI16my3xwvzCpIrMWZ/GuEVoEFFuqrS6kQfKMRt5Bav71bEkla0hpoJTBai/d+Faz2VcR7xULQcZBrsa7Ij7W/c3RcylqnW6znPCEWHYjPP8HADGhxDTbo5HnbKZdMrUhbBtIMq2VYSoD6IuYIl4EpGBVloUiR2AqIiE/nJgBxHjRWkSrTu2eo59+NphpWZUJW2N7N+m5dg2dJ+p12bwjeatLszq4ej9oB5c8n7KgRkmBi85hWJbck7k8fW2uzXK3P592mLRZTUt500qJaSGVXUHLi/tmcU0pN2Mv4/DAEC6iE0buY56Ti4cbRKKPBhcQu6Qp2HqaVGYoXiPgU0cpwy2EdJ14AvpOuJFEKUk95qCcMDd3y4VYEuQyh/MwBl/R/dxfwyYmJUrwJe/CN7A0P+MC1n5+u/R98zXeyPO92ZOu9BwE1LdB7D0hZ9n5LzPUjj63HgOmzJ3qAcbQd9pf8bgc9/JkvP+ntwBJ8TPo7u34+sTMPzC99N1+JkMnv03mFxP+8XTqJKB3OrjKRx+Bumh/ek97c/a1g8DMRASyB/ydIJ0jiCdI3/AKfKhRgamEbIUK/dUeunBMpJcF+meEUwEQQOCKVHExhmbTxQEFZ/ZPsipp57KQw891PbZww8/zOrVqwEBRo2MjHDllVf67+fm5rj55ps5+WSB85988snMzMxw2223+W2uuuoqoijixBNP3LfRd+T3VpIPwuKF0LaI+XpBFktHFWgc8IVhJFfSB0EBzABxDqULyfN2470NVcSeC1aZkxJkDZTkWMbRC9oq8aKkwJ+kwk2GfEEW9xBBa04SNxdouf8LxJ6r5nxcSYs2vjfWPczK6qQhY7We1dNW1iQFRHPnUGMAAGVqSURBVDkUrjcS6u73024s4+78GglF14sYMWX3mpRj2ZooRq0Ltk2wBwKriF0wNTKccmUqMQ/OY4rS7hU6JRs45ZuVV+QoHW3WKeCUG1dC8fl5WqRoTR1S0WqCfE+sOfPO28gnzimAsG+EwtFnE3YNy2+z4sW33XcWCAzdTz+f/ue/k1TfUrkXNJyrLF/IPtP9q1n6io8x/Ir/Q5Dr8/uwgRg2nt0oB31nXcCKd3yL4Zf9E+RSMAwsF8VlFD0NhF2DjLzqkwyd+wEGz/ob8VTnJPBi3b1gIlGgPce9mL6nv4m+499Iz1HnYfoh6MYjeU0Fuf+7oP/pbye/4gR6jngF2TXHyjmliFMGGXlmUv1DFA86A5PK0v2Ul4jL57xoYyBoyr0ZtCA7cKRHrudXn9CWCw6y+LIiayEsDvtpDvPy3iq4Sv/REH5THkgbNbGNlqeV1CiGYiQaM9uwTQkDNyY2uZsiYbDhrp2BysPXEzWqRPUKlUduIMlApwaslj3N/OKLNKe3U77nCmqPPSDP+IzbX0vmXnP8Vh2AJyD7FDp+17vexSmnnMKHP/xhzj//fNatW8dnP/tZPvvZz7oTM/zFX/wF//iP/8jBBx/sy3uWL1/Oi1/8YkA84Oc+97m88Y1v5NOf/jSNRoO3ve1tvPKVr9wt4rgjf3hi3MJpF2hnwgHP1WpmQPM+1lmegC8iZykxpVyD2JN0ITSjdIfq8TkPSr1CrW00Buywe19BlEuX26eWM4TEeVQV9Wwd8ti4MhpSCFrTfWeb7nPNC84Rh6i3I4q24I7vjmeNU7aOFIKUjNeqgncKTakPfQjVefEmK14pPWCmAJvCtLLY2VK8uMzJ3FiHKDVLgVnIDB5G1KjRmNkoB4nc3I8Aq52BNAth11KK+59Nbex+qhtujcPvGt5UEFYeug57Kbn9nsLC7T+gOnareMBTxDWbeVHM4dIRhp/zQYJ0gakffZjGjodkX7O7OjbdJ72KnlNeRVRbYPxrF9Kc2i7nOuOulS6C2SxLXvWvhMV+mnMTjH729dCUpLOvq7Ry3+UOOpnek/8EEIq+ndf+XUw2kXSX8tB9ysvJLD0IgMLRz2H+xm/HqQlFcbs60uJRZwNCC5jOraRRfVQW7wa+e4wNIewdIciKy5teeqDPwxq9Dnm3fRNMWouy5b1vWlEQA9Q28FSjrYWdMHgANmoRLczIPaJpHJyRuRRa0TT1yY1kBg8QVqlaUxSdIQZSOSOrsvEGikeeQ1gYoHT7xZ7H2WpoOTFls1d/CUxAqzxF6YGf757qFPnx+Lf/lsLap1PddCu2UoqNqKQYaM5uZ+y/30Gqb4VQWO5uO3ec+tZ7GP30q+Ujp5y9QZqirQ9udeO1VB+8NgZauZSPUQQ2Mh+RC43/WnK0T33qU/nBD37ARRddxIc+9CHWrFnDxz72MV796lf7bd797ndTKpV405vexMzMDE9/+tO57LLLfA0twH//93/ztre9jTPPPJMgCDjvvPP4xCc+sS9D6cjvqXgPIYrX413EEtMkQsxNW0CAH3O0I0Gdp2l0cZt1L1fa4MO3Ib5Nm3qodh6vCDXcRRVBbGrIV0NWuo2BMMwQdC+jUXpMtIR+T2xIMCfnkFtxAmF3H6V1V8uJpRDiDJff03MzuQF6jvkjWvM7Wbj7O1COhOqwSVxY786169gXUjzsbCoPXcvc+m+JUaAoyUgWT1uCoKuXJc/8KKmuZcxe/0UW7v2+n2JVMMbVuRZPOZf+oy8AYOKqD1HdvM4bKPZRMGvc8QswdPr7Sffuj7UtxmpvoblpmzQGqBHnWS2kBvaj7xl/BkB6yRq2f/ZVEtbUiEATGXsIXQecSXpAQI7F489l9pKH/FiT4V6ykFvzFACCbBeZkUNpTG1vL7ECyRv3ZgmL/QCEXQME6TTW1mI2r0DuCQvYWgwCiJrVuAlDj7vnVNHMQ2N0Axx0utyeYxvjyAnEtaJNuQ9LD15F15FnU9/5EI25bXFqIcI3WDcFqG9/gIV7Lie7/HBmr/9azE/strPVOBK0sO57mHQecoa5R74tbd1aMjeMuXHulN9MXvxRikc8i8b4ozS2Ou+vTNyZqoGkGXJNJi7/a1I9y6lv3wpG0jNRhFe4epu3JicZ/cKfYyMX4FGloxdKPeEAWnPbmfrxP4i3r/lpzSdb2pC7jclNzN6wKS4NWyyJGHFzahvNqW27V7I6FtWEjdquEYwofvlyIkWba+i/TNx8RE/NedXKNrX7RWzRUDpt8jry6xaTykqvWduUfE/eKYI0RAvElnUmT27VUdRH1xOVpuVBJLEgaJ1bBLn9TyCz7BBKd/yMVuQq6+fkP09xm4Kgp4/+Z74F0pbpjZ8i2j4Th18dU5FF9l1ceza9J7yBxtgjTFz1d9jumniWmvv14JsUS5/7/8j0H0Bl9FZ23vR3cShcw8dzwDzkVp/I0OnvB2B+/Q+Zue3zcbnHNmJveCkMnHQRhRWnAjB130ep3HW1KIGCW6DKuLZ0GVa+6vt+fkc/9xrxVFISqiVA8pVlKOx/CoPPfy8AjZ2PMvHtt0nZU8WFvjRn2IKBZ76L4iFnylTe8w3m7v9vmZtJd06HiUK0VRg59bOkcxKBGr3qrTQ3bPYt9zw6NQNBTz/LXvFZgnSe+s4NjH3znXLMmUQ0w0UNsiuOZuilH8KEKWYu/Tcq91/Z5jL4tznI7n8q/c95B82pbUx89wNEtQXfU1YR5po3Lh5yDoW1p1F64ArKW6+S1MCk2yZFzCyVgfwBp5HuW8b8QxdjS6UYqJXkNUauQ27ZUUTlMo3pDX4ONZ3gy0OQMYSremnNzcNc1NYpyCTeRFHb6YqySWyTDJ/q/W0z7t5wXqTiAUw/2AniHrsa7gyJm04Y5D5U+tAmMZuZq401Wm5jIXAIeuvy0JpbD4ivpU0oId9Mw3nXSlxhNWSdjH6oNaUvxV2oRIntdieLlG3bvWUXbZPcRwBRRp4VYx3wzz1r1iJrRR/S97geD0V/awOI6p02eR35LUv+oBMZfvHfENXKjH/3IpqlLR4oZLVMxMnSV/wD2eVraS5Msf1zF0Cj3FYOQBPogVT3agaf/QGMCciOHM/Ez/8q5pLNEvfBDKH7KS8jv78AIJpzo8xu+pLkULsQsosFJNycga6jziNI58muPIrskqOobLzVb+fDdy0IC0Nk+g+Q8xs5AVoB1kayjaup1JBoWEjkp3JDcXOBbmCJC0nlZFubjUlZbKOOHXJ/TCOLw4Cbh0yDRmUr6fwqmvPjtGol339WQVka6q6O3Udzdgep3mWU118ZN1PQ0pc6kjeuwNwt3yPdtz+2VWXhzsu8grUup4dbbEwPTF39EbrWvJDaxL00pzfLwujIJKzmU5sQzU0z/q2/JrPiMCrbbpLzdgrRNkQhaJ63Nno3Y195IybIEE1ui0P41fa10lah9uAN7HjwBpkr8AQKbamIumxfvuunlO/6aRw217D2IrCcSUH14WupupAvDmHqXRFdYY3MW23LPTLPLn1AHqGz3InvLmWNXOvW9GwMqEonxuDOSU8w6b23/WEQFqNEuFtz9W1KZZIYBe3SD5pj9cjdFlJ+Nivf25qEo30/YBe1MA3iUqVUbIwwK3ljrHi8yTm3OAWccs+hFWPWe4iWuMtUihh0aIkZmvR/PfWEx+kPQvs2u1XAiz9LzJMaLSbCM835nLXbxiDzy0Tit4EA07z+TlYl7EU6irYjv1YpHnkGJkwTFnrJrzmRhdu2SP7IoSe9N2sgs/RAAFJdA6S6+4lmynHrNJdPIQumkcU4czcI86I4XLhXy4C0HVxrIkbAN8fGRVmYxD4NHjVc3XAb6WOW0ypPU390ow/HGcT71rxOa2qM8sZrya8+mfkHfwI1iRla5x1RQhakQSiPX0Fm4xqCsJ/ZG74iIe084nkUZb+mV8Ywc99naK7YQau+k/LOGwXglUcWvQpxidCkZWL9u8nUj6T+2APYdCOue0wRl040IarMMnrxBRiTkxytYw2ijnh2CjprQHN6C+Nfe6f3MG2EoJt7EONgVs6JeWjYTUzf/nFZ0BW4VSQub3JeFS1oPvYozelHZXFfKt8xgItBuv+bsgC3ZiZ27V6kEuBp+ayr0VTlai3Srg58SDIpXplViQFkeu0Vwd0r4/A5O1UMhjh8qBGIPmIDSKUGdie+8T1GQsLkgWXAVmJwm8MAaAplsc4I9FpCXDM7gG+1p14lBg/kMYoi1v07YJaGxsk6JVhFIgoOCOWBdYlwqnFeni+NqorHHQRC8GBtfC18Fx/Nd+PGO4lnc/LhdE0XJD1zvUYuTeGRyIqytvH1szpByQu7+O/kNntSton9+ahZFzFuIbltKzFWPQ83zjaqzb1IJ3TckV+rFA49laEXvpuoXmHsWxfRmt4U50VCfJg3yEPh0HPoPv5FVDasY+66L8pDudLtaBvyt+NGLR5xDtmlhzF/+/dpzD/q0ZP0IFZ9Iw495Q452TFC3eQbyCvLj92OeCJNSM0Dg/vTmJuQvpMgud+CU0qqnCG2vBPWt4W4XGIIeXDnEOU0DqZM3FrOAssR9PQkAg7ql7FYB6oyBwBbgEcRJacL1CywAt/P1iqpQVaOa5A5sGpUhIkwXB9xH8184rcZMHO0gZpshIStrXg3fjEyTol2I+0BdyIMST1uDAq20rKcaec9WQSoEzoFPoQomwl33Wbdi3helQRCbiYxOHSOlSnK4rwhV3tsHBjKK1tX06qkKKoYbOCMo1DuCeOMFN+UQhfXNDG/MvH2VMFqyNXEc6dKSz03EwAHuPkYcPMzC9wLdqbdI1VPyaSIEcTW7Tsv59XmSTkwnEdrJ2LNJusMxPlYiXmSBw0nOwPSunF79LDz5kPVRCFCemKdR+d+q7XTvi47obxUjPu8jXM6gWb2ytrhD6wDLdpkuVRSoaqST0a7kscjse1isbv/yh/fpaiUstUHFDJ5wmwXzfkJ/+xbI3Mf2ccPHXcUbUd+7RJkiwLXtzUCBRi5By1ywJigF0HWugfLuDyS7XU3+zwwgNSdjhHnmNTTU5o59Zb1rtYwlQvtUQQ7SpzzrSPexhgEYwJI3UVSrn4wmaNLhrd0IdE8UgB0u3NYQMpiLJidsrD68p79ESTvDkRhao5sAVlgVyEL8lZEQUaxYjRpUYIeea2cxivcmDYTMwc5pUrJLbzKCFUk7qHbLcc1Gt6siWenzRuwsggbjTAsQcBXM26fWcRb3QYcKsfiMTf3DTBVpzjC+LraHiSqodejhYCpNFSti6v7zjhkudF5hrZQuUkwb3mCEr0HIPbY9E9VDMZdY7doRzX5PCCxmDujwUctnPL3aHRlVELmxRP/Qwysw83zgW5MdyBh5mSZiOZEdfzJMjJVYmosthY5bnpPJgwFHBuVV6pdiIEz6s4jQRDic6sG4QF2b/31SIliNY7yUY3WyBktOMOZVCg1QMnQvCrMIKFk872kh/anvuMBTLPulZdRoynhXeYPP40g30fp7suwjbofs1k0P6m+5fSc+hqa0zuYv/G/aW9eG88hQM8zXkvx6LMpP3C1NJ5XCePjGiDsXcqS1/xfwmIf01d/KW5Y4u6fKOrkaDvyOyBRLU7E2rl4AWhD/U07y1YXxbSzWucRUoWVSKhrHPGQXHjTW5/9TsmW5XNbRB5miyxsU4gS0PxkFq+8mRMFuFslC7EC0NpDVQAJRZt82IV5yo0rg5QaDROzPs0jXm4I3I9vs0eEeKnbZJ92yu2rW5QieUSRzMg+zDS+vliBYJTwCGXbIia4r7sFvUTc37dCTDQxL3NI2e2rS/ZhmvgWZrbulFw6cZy6G1uEKPeK/G+a7hrmEPSr1iE3RZmbbWC2uwVa51TLtFxo24fCM3gEN914zmJw8+CALFTxxpAqCH9NUolj6HcaZg+R2mtHKxk03HidEvfI3IYoOZ9GyBGXakXEUQ9nDHgmpTrYMdnezCL34gr5remNrw+RXAMDvnOOukFh1zBRowLlBQn9upIwssRRAAtBtofc/sdT3/4ArdmxmJVKc6JlmXtqUDj2bNL9BzK/7ge0ZneIMm3hwVrq/KZ6huk75y+AiPlLP0bUmJQxVhOPgZX7rfvE8+l5+p9QH32Qye+/j8jW4ohEEE+9yRZY+iefIOwepLblLnb+4H27GlHuOuYOPY3B570bgFTvMmav/IxHKmvpkRrufWf+ObnVxwHQnNhE5eHr2Z2YdI6eE18OQPfxL2Tupm/TKs3Il8m8MZBbcThhsQ+AwiEnM7/ue7KPkCccOu4o2o78ZkUtW/VcFbihXqeGhBrOgyk5hTUgPzezyAPbi1/EyDllph6TW0RNH2L5b3LHziJk4I4QwiohQyRKZI+iHpILsbXRvATO08u4fSTze7oI1PE5QLPcWdTTwCNIxxin7FkgViwRMbipiV94jf7WKXTtzUuAJ1YwKaQUpCoesIWYUF/333Seao+bZw0ZK/hnFt/DNygk9pNDUJiGuORFowhVMXbMDiRy0O2uWyDzbSbE0UFLRrLEjFMBmHHnkCnbalEMM+YSC/CCG183XnlG2cT3EZh0GtMUt8uHOJ1C9PdZGsKBldBI0xzfJPdVhOeO9uxGQNDdS+Gw59AY3UTtsVvje8nRWfr7rgKFtWeQP+hUSnf9jOojN3sP02oouC7HML1dDD37fYTppczc8nFqU3f52mYc8lVznoVjzmHgjLcS1ctMfOfdNEYfjSk3naGkhufw+f+HzPAaWpVZdnzxTdhayXfo0fvDtqRJff/pbwcgPbSGiW/+dXsOMiHFE15KdtUxADSPfxELV38xjuQmjc0IiseeC0BmZC3ppQdTH7vXR1B8eDoNYd8wYfegbLt8bRw+V6PL4JVpmOvyYwnz3Wi+1Op4E4oxqsz7bVuVOfYktl6jtuNhsssOoT7xKK3K/B7reyub7qAx+RipvhHm77g0LgVKRs4eRzqKtiO/UbHuH2OQcGgPEhrNOq+xiS8B0g4yNGQR9jlbBVENgN2JoBqT3scQccPrXnx+U8nBTYmYmUbzpostU/UCnCIloA2t671YF040ITFxO4mxOE/LTCILo0NFWy0D2uH2pWvJjBvzKrcwlvAeLlXn4eO8UQ1p6uKYwhMHBA2IemNFbBVVWkRCzprH1JrfGp5EwTj2KA9EMQHhwDDNmZ3YakvGkBfP1KpHnBZvL9OzliCzlMrGG2ChKfnXGTw4SMk4TLZA91nnE6VKLNz3fex0S2yTvHiGtoFXPPn9T6PnxPOpPXYXs9d9TpSlkl04T8Za8VKWvOwjZJYezOxNX2P+l9/ERi4k7PLSGvLL7v9UBp7/fowJmPrpx6jc+/P42meJCS+A/uf8NbnVxwIw/p130tiyIc4RZ5D7eAGC/j76z/wLjAnIrTyO7Z95OTRacs59yL0+DgxA4fhTyXYfBUD32ldQu+4uUUIV9xy4MVgryH2AIFMgu+xo6tsfjXsRKwCsBRQN6QEBNYT5XsJcN81ayd87tumUPWCjxA0fNb1xmwwjK/CrMbnFb9rYuaU9XJ1QoBaoPHwDXce/gObMdupjm2L2pESe1gLNnVso3f1TsmueQumW77eFan1Nstt36d6fEfYvJyz0MHvdV9pzsMncLTB9xSepjz5Mc2YH9a13s1txA5/4xkWkl6yhsXMzRHt2TaPyDNs/f4F4BS4UbdX4Nnv8WZt0FG1HfuPinwuXO7IupIW7ca1+14xDZ94TVkKJemKhmyNuR9fj/s4hSqpCnKPVMF4eGJTF3E4QQ/qRYxiHSvXKGmLQiJYktJw3niIOH1og67Rr0w08ij3oZCkJqRTZkcNpbNtKNDct32vdoVNGGKAGme61ZJYeSWXLNbSiCaHhg7j20SldQ5beU99AkOtm7vovQGNCxtYrylPPw5Ygt+Jp9D/nbTQXtrHzmn/AhmVfe6vhVAmZGoae/yFy+x1Ldds9TPzwfRJjn3Nh3z7Ew66KZzJ07r9gTMDC+qOZufmTMeHCMDAqc29q0PP019J12PNlikbLlMYvEXCahkJdiNsUof/MCwhzPWSG9qe0/ioaYxti79/lfLGQGTmYjOOq7Tr6HObu+KYYGS7ioWFvm4fM0sM9cj236givaLVzjA1jxRTktNgYjGNuoua8WePmoQB2po6tVzDZIlFNQiU2R4yI73M7WQqNyfXY5XVMmKE+c6+csxJuuDI2pVss3XEp2WVHEpWmqTx8kw9pAl7RmgzQsExf8Qm6jnkB1Q03E02NeiYvNUZsQ86xvu1Bpi7+F9LLDqT0wE88P7LNISQuGi5PQ/men9Ka2Y7NWhob75awtXXPpwNDaSnTzC8+w8J9P6DZPQN9dTnnihtD6AyzJpimZebK/4gxBCpJlHKP/G3nmsxe/Xn5XtMC+nxqXlhDyY0KC3f8sD114Lb319D9aZs16tsf3BXJvCdZnO/dB+ko2o78VsRaMAvuIVGvTBVIEwENAYQQZLsxhSzRzE4JI7YgGkKU7AQSRiwCQUC++yRa4SR1HpL9Vt33k+7ljpfuXUtxxZlUHryFyoZ1/qE0GmZ0uSobhvSf/lYyQ2uYvfGL1BbuEQ9l1oWOEgo/s/xwhp71QWyrycTPPkBjYoMPqfnwqstJDp32HvIrTqZVnmH0B28lmpv1DeINwHpZ9MLuQYbP+jAmzFBccwZj170FRp1BUkBKWnJge6A4+FyKR54j89tqMPWz/xs3XOhHAE4VOb+eo15BWBggLAyQH34a5YmrY4BYyZ1bE0yqQG6/YwHIrTiKcFkX0dY5GWQO8YIt0APhwIhXXqnuZbS5Pgtgl7hrXQby8cpmbCSLt4bKi/i2ZKShMfcoYe5ootoCUd+k5ElH8VzVWudbn99IY/ox0v0rKa+/zpGLiHFki+It0hClW7nrMnKrj4dUhvlbf+TtIgOEDR+9xAJTv/gYPceeT31sA/X1d7flELEI9eMs0Coz8c33kNv/OMobfomt2jjNMIU0QdhP3jcrGxm7+gKCA/qp3feQYBecYWHmEJSzS3VU169j+8dejk5oMvXsPdCmzEXpnl9QvucXfm6xxHlaZD40ElB54FoqD10b57uzeCCfLw+qimKuPXpXPEE5xFAtIHl5zXPnZd/NZeNwEKJg024bLW2quftRSTPUk9Vwcc6NuSHbgsNVWQe6Ih5GoB6l1pCrR77Iy93tZ7v/aJ/lCTq0HUXbkd+GGAbPeYcAC277MbM3fj1eMJIPRQDp/Q9gybn/JPy3136CysM/k22mEE9KQVMZ6D3yz+g+4MUATNx5EbXZe2Lltgx4xB2mZlhy2t8R5LroWvtstn3mdUTNGfFkA/fwuNB1br8T6Dr8OQD0nvJGxr/5DlkQI3xvV/WWC/udQZAuQhqKBz6T2akN8Tm5EKfmSjODawEIC32kCsuol2cFONXrzmsOaECwLIcJpaNAkOmREpyQOM/bRDzWOrRaU36Gm60pWQi7kbA8LvJl5e/a1D1khg8lalRoPPaIn0tdBPX8TL1E+YGrKBx2BuUd1xCFcxLmLrmXxSvF8uT1ZDcdTSq/jNmbvyCKELz34xfELMzd8RWihQVsuUxp0+VxE/dkvtgt+pN3f4gsx9GobCCKZvBcva7UywRISVR3iR2XvZ1wrodWaVJKR/KyT1uDSJmjmtCaG2Pnf70TLDQSq62ikANVvE2Itm1mese/eg/eRyg0R+e8YAw0px9lYfxR/7EHOA0hykfLyirQmh6n8eA4drM75153HvNITl5TDxkwLStGaTIMm5BkNxlriBHYgRhNWveqTpmGaE2feLlo+kX5vvNuoxKeNUmvpV1whtiwzIdXik25vmYbUvJVIL5XHGNZoCU7NtZ/6FxpDlujKY6MQ9cE9WT9qbvUjck5Ba2pJt1G1xHDri0RF2vYJ6F1Dbtehz1JR9F25Dcuqb6ldB39bAB6T30Vszd8kxh50v5Q54aOIUgXAMgfeBLlbT8TcFQS/GKAHZA+YmV8jMYKasE94hXNIA+9hvHyYP3KZDFBFCsWNwzriuWbUzuwrQYmTNPcuYWohiwAxOUfgVs4ahvWUTzkLIgiqltvkQXRnYdXsgAGZu/7Cj1Hvppa9R7qIw/LDieREpuGeAtBC1rj25i+6j/IrTqOhbt+IkjkvFvocPucBzsHlenrmKw1Maab0iNXxXXHzlu0mmOuwuzNX6by0A1Ek1NE05NSLwnes7QKtmnC7BX/j+lbPy5zVnDbKA9vXo7PJNBsMn3xJ3zjbwMxehgwW+XcoyLQqDD36Nfk2iiALINHO1sHDjNlsNkq1cmbsEvxwCq6nPdXAxs6r3IBTKZBqzXp0wW2iWcm8hSADpUdNIm9qkRUMELyul7ZWgdMQpSSL+nRxVvRujbeT5TwkM0CknffiK8z1g5G9kHikqZI55HYOwvkvrU5MPNyDdWD14bzehwVXx5j5XxN3c2RMxA9g1aKmGkqRdx/11F9EslYSeM72PhjVRFjNxTjwCxByrlcqqAtdOvOQ8K17XPtPVTFBLjozy56MAGAsgml6Ck/FbOQVJjJnexFkT4ZzzZZfPBE5H9tHe2vImzQkScnJpVh2es+TnpwFdXNdzP+zff6h7Ktt2wTwuGlDJ/3YYJcL1PX/RPV7bd6hh4qSG5pQRaRdM8aep91Aa3aTqav/wS2ryaEALPIAt9AepUC6eKBFPd7JtWHbhXQhNYaGjy4xzq0ZHpoNenBlVQfuZnINMWKdR5MmIp/Z1NgunuxWKLmXEzBB7GidYsfXYinEyKLWNN5Cg7kBc5jnpPztHliXtouvMdjWojiW+qUk0VqbR262CjwSdmqtKbR5bFNFfGSISb8SMm5KPrYRM5rrCJlU1pL2u/G48pF2rwNh5o2RhQKKVnwjYbaA3esRP7a551bUstKKMqUpeJV4Tj/bdWNqd95lzm3dk+7sek8acmMu1+Myy0qG5LPB1ZE+VhXg2sCCI0LTbptIo1IaIgTYnCPln2546kXpiT8hIhBknHnMAC2X45nNzjFV4TgAGC7U4qaW9Va6AQ2wKqnngc7QcwGpaK4ARd6NRnE+1TluyBjtTpXivKecf8ncUEZ2ZdRYpOiO29lAsvgnz+lHvXkFGk3F7ofvQ+TkQCdVlWSeu840bXAG5aO29nqveAwDx4voWHnxP5JTo+NX/4a0v7+iUhgElF42yGs6MjvqJhMnvTgKurjmzBRw38eaA4IZGEp4Bq0GyhbWZwbCOuRsu5YJIQ1CXS5hd0pFlMiZhDShUIVWsYpmpa8NNxkMu74CRRmW/9cfTgNBM4wsC3n9agyC/BF/N6q08Vac1RFpyhm3OfJPFMrXmQIEeVbQbwIDbupQVCjrUyGkswDfW7fs+54w4j3izMOxohDdUW3jyqeHtIrZAvBhHiPUa8oCSaJc+PKB6tMUwlCB0/04BRnELhzC53x0OV+Mw+hklkgis2ECAJ5xCku5xErr7IJnfJ0IDU7S7xIa5jauM8hRoVrHM+hkK3WFZfE4zKheLMBeARsFPmUr9yjei8EeG5nHySJaPcwXc24DyWHCNd3iBgHIZg+UZ52Ac8eZhTopSAp9TKN+7wfb6T5e0zvN0VOG+QZcih40yXX1NaJm8+73KydcWNPhl+hrU4VV5/u+/Pm3JzpM5OgVQU3nv7E8Ryy2kc6DDGQUD/KdmOjptQNZ/Ek/7qBse7+yGTJHnw8tW0biebGYpKTRYrcALkDnkZ29TGU7r6c5s4tbeenbFbWQpDrZuC5byNIZ5m8/D9pzY2zOwmNvFpAK+oQVnTkd1AkpFihsePhmPmmGylFcaAOVGmlcKTeVuoyF4gV0xCyiCzQbikrscIsMScsiAJXJYs8/CbxQMqH7n9XCqMLig+3Re1K2ROuW7eNU+B+X7o667YQ594qxGFCt2hRRHrxKpK5G1FcutA0kbDpAAJussRk9YpaziBlJEo1mSVuZjAv+7IpRPnqnOWd0ppHFLAqqqKMP+qDYFZybFHklIHWcbpOLxh8Q3UtmTIu9Blk8R43OWf85BGUax0PpDEutBg45WRc/tATXoAYAoMIIMp5rFa92BI+7N8WtlLUuNYlayRCc/J6vno/GOc5kliIifWcb5GmiiJCWsoliVjc8W206D5rEStP9Zor4sWbAjERQp+7jhqFcCFmDefaeWSQKRuX7gwDU+6Yuu86hJkhTD5PM9wq5xwRsy9pRCMLpp6leOxZNEsTVB9cBxB3w8Kdg+O/zo2cQGH1GZQ3XEdlx03e6KHljN00Dk2dZvD5f0V6cH9mbvsctS23egwCuPNz480ddDL9L/wbbLPGxBV/S2P2YenwtVzmzOj9XofBF72P3P7HE1UX2P7FC6A84yMOyWc67F3KwIvehwlCcgc8jbHPv7E9upzI5XY/5VyKh54KQO8pr2Dqsk+yO9HDPFHOio6i7chvVIzzGE3DheN0QarGChCIGYLK+DICJVOwLbefBbfYLXUe5zbibip1WeytRegCQ2Jifs0BVmgjbvd9ctWjcOEvkGNHCpYqyf6DEIIMca5MF+cgsdgrsENfEK9abhFWrmEiOSf/BBsEAezyqn5RqAFjbjFTQ6LPnc8McUiviiyKvXIsRhDuZDVKdJVwIBQ7CwwgNb96DeaQEHoIUcbZCBU3bi1xKbsxTOLrk42VaxbVXcSgKMoWZc+r4Yn1jXUekXXXz+ULbUXmM9KwZZ7YW3bK3ap3VHRKPo0osSoehGYy+JItT46hYd88nhGJgow1CPuw9TlsFLUDs6LENQDC3hWkl6yWJuW1eswDHCBlLG4BN400xae8CBNZFm79EUTNtpIWa8EskXFku4+l54jXUJ9+mNl7PwdFK3Nad0aHI8awqZChc/+W3P7HM3fzd5m57qtSujOOJ1KwyHlllxzK8B/9EyaVZvraT1Gav0S+TJKdRDJn/We9yTeqn4g+QPWR2/EUl87oknryDIPPei8mlSF/0Cls+/KrsVMlmacuYopUIH/oUymsccrryD9hfNOtMSmLPvPO486tPRUThJhMgfwBJ9C492FRsgrOysv9YCYgveQAAIJcF+nuJTSU2WmxsjUBPiRlgl2BZIm/m9M74vczo+xJIuRamz1u0S4dRduR36hYZEGxzfab1NT0DeIhKuoQfL9NfeAVdWsivNKw2oHFlRRYg3h+upgsyHZmCO8RmxDPKKS5Hu+21GOF7utsQ3ecDD5kHTkyCKusS0rLp4tI0qNSZWvi/fnaWvUQI3xdsTYCsLj3XXg0pl+olYQjR0x0sCCfBYFTVuoxL7jzdh6YVYVbl+2MC1HbPiRvm3ZjnY9/p51isGBKBjIGMlFMm6geunrZyLhSSw/G5nfSmpyOlbsVRW1dno8spFavIrPkWCrrb6bVHJec8Dyx59eN62IU0HviawiLS5i96atE0ZhXwsYpOq1Fzi4/jIEz3kmrNMXkTz9C1DUvkZB5Gaueu8lA/+kXUtzvDGpj9zP+/fdCqumNksDdm5GBdGYpw3/8cYJ0jur6m5j+8f+R81GUu3XX0UD38S+n5+RX+Rt8Yd13/a3uL/C8zF/fsy4g3bOS7NK1VB+5mdrCXRI+tzKPxmEX0n2ryB/wVAC6T3gxM9d9VY7ZoD3NAWRWHYFJicWYW34spVsukftBa3A1rGwgKPb734bd/RLiV8BhhpgnuRIRNaqEqQy2UYNmyxvMlONrb4DmY1uIGlWCdI76jod9wwlFWOt1shkoPXoV+YNOJmpVqdx7oxC6qBedd8/pjDyb07/4DL0nv5La9rtp7FwfR4oS6R5roTm7g6mL/4nsqmMo3XWZN5w8ijsxWaX7r6ZVmSNI5yg/fBN7kshCyxCDCB9HOoq2I79ZsQiwBXZhVbH6mQN72AAJPWkeUfNWDkEZ5GURsE1koVaAiwsfe28vsagwQVuI0oM1EqUTPhyov3cIVg23RW7RN92IYnfjs25sPger41gUSmwLIboyFQ9KKWcw2QKt1owYGqEzDqaJW7w5rzY3cgytsEJj7mE5Tp/bb0YUbzAqh00vXUXhyLOpjt9N9aF1+FyejV+al+s55NXk9j+a+fu+S3XhFokGuBCfdZ6rMZAeXsPQOf+ACdNMXvkh6lP3xXNnRMkoUrT3Ga+n54SXENVKjH33nTTHR2OQFsS5SPIMnfOvBNkuuo55CaMXvx5jrSjXCnHodAQK3afRc+z5gDAm7fzxh3x/WW9AIefZ89RXkB5YSXpgJYUTnsnCgxeLEaaeuUPyUjEUVp0OQHbp4aS6R2hNPSbf6fVLy/0WLBkhSAuYIDW8Og4zE99z3ngMEstsKr1LlYmxCJrcQnNyO+meldhmndb4hJxzkTg+6QyY1sIOGpObSQ+uprrpZjGqXEojsgkHDqjcfw3FI84gKPSycOuPBU9ArOhNQjHN/OJz2GaD1twE5buuBuMMjNBFPGbcudkmO791EflDTqa64RbMXDU+IeL9AbR2Psb4N99Gqn+E2sN3yzy13L4czkBftYnb2fbjV0BvJGg0G4+PAMEYVOSz6oPXUd14XfyMQuwhB4mhGKhsuJHqIzfGRoMbmyKYk15tddPtPBFp2bbT3at0FG1HfuWSiIzuVqyGXMyi0Iv+oZ6gK0vwLbEUkax5x5rB9Fl5SMbdb4p4blUfUswWSBWW0ZjZBNVIaiP1gXPhUx1T/tBTCbq6KN93JVSd25hx32vBfQ6C1BJ6j3k1rfkx5rd+EyqR90rUEFBwTM/TXkPX2mdT2ngVs7d/BSWeJ8mTC4ThIEtf+/8IC4PMPPBF5m/+viiMPOIlKJ1dCMUTz6PvhD8FYOfP/57q/C3ivc/iGy006+JlD5z5flI9yyke+ALGNl1Aq75DaiNTiePXID1yIL0n/REAqf7l7Lj5j8UwcWhXInyXn/ya0wjzfQAUVp9FffN9PrwK+C4/NoTc/kcDEGSLZJYfRHNsVI6vTRLyCNirK0eQ7ZK5yPVDIxBPqYYPLZKS40dpTXJC1FiIlaE7pinE90F99EHyq0/AtprUFx4Rko8tMk9mGZgxiKbkxiw9cAVdh59NdcfdNFsSRvRsZY5sw0ZQ3XYPC/f9lOzSQ5j95Vd9yY9147R9iLcWwcId38akAkhFlG77vh+3VVS63g/A5E/+mfzBJ9Mce5TmzHa5hyqIYdCLv8dso8bYV99F0DVMayEOd/p9J5Rta2GSsa++TfLStV3DnT46VIfW1A4mf/QROW93znpukQMU+sd0ajONhzbHHqcCnDQFk3huWzOjtGZG40YIRWIksyt1Yg6X7256oJ+yUCXrtj0YzRmzPu+eCPF7ReqMZ2PwNJH+WTbyDOyV5/xxJHr8TYCOou3Ir0GeqJWXFAOE3UP0n/12bNRk+rpP0JqdJVJEYksUHCOycddRL6Rv/z+jvvMhJq74ALbu3IcqvpYPwGQKjLzgE6S6Ryg/diPT3/uwfOHCuNo2zgCFtacx8IJ3A5DqXc7cNV8SS96Fa7V3qanDwLMvIL/yaQA0a49ReezauODe5SdNBOSK9B7/SgB6jnw5Cw98n1ZpPgZANeKxZFcdQVgYBKAwchoL9vtiOGgpRhbvLWUG1/i5Sy/bn+qjtxA1wAwiOa2tsr2dBiJ1HQ2mbiRkHCKlTs54oAGthRkf4muWRmPijBRxHbJboKqP3Ub30S8CE1J5dJ0omC53nTTMn5MFbf7Ob9N36p/TmNlCdcttnpQiWnCRgaqcf1SfZvqaT5I/+BRKd/8MyrGStRGYrIR3KUO1eSs7r/0IqYElLGy+TIgXpt34Bt19skmu7dwd36T22N20KrM0q9sk723BDuDrN4NIFMn0zz/JzLovYMsVqNs4raArpXXvsxEz9/0H3I4HqHkqwCYC3HNIaGOrzP3yyxKliWLPN9K8vvOoAgPG1qisv1rmsIBvV2hm5D70Sq4BljrR1Db//CwGAfkAgyrzRvvnejr6E20X6POrmsLRXL6N9SjIPW53ImVqqmgzeGpKk3XzkvA4zSwezOQNF02F6Dhn3Ly5MZmlch19S8ec1EBbiCsMFOCo56bpDU3XNIl78aq37/AYv4m6m46i7chvRaz7xzfXBrpPfDm5NU8BoDn9Ymav/kp7mLWMeK5D0L3sxZggRXbJEWS611IbvyvuCaqECvOQKi4j1T0CQG7Jsd761lIK79UFEPQn8lO9/ZITcuhc23AKxOVho1rZb2sXyuJ1OIStL7pPgWlVqE9uIjO4hsb0ZqJ6KQZF6YPvFrPq+N0057cTdo0IW5Jx59OHLEqu9MdMwsLd3ybVs4yoVqJ0++W+NEVztGbQjWMeJi/9PxRPOIfa2N005rfHdaxVCZ/qItSqTjL+3QvJDB9CZfImmUcNoy/gWZ0oQW3nvWz//OsgExDVZqRmsoxcg34kt1YHuqCy7QYqP75B/lbu6WyskMGNpwKl+y+ndP/lsfeeT4T6UrIoG4farUzeIF2TNC+qdaFTYEsSQsZR+tUm74+ZvCBuTDDlrlO3CyU3wM6VYzCaG5ttJrwgDbtHck9a6zxoh7SmQMy/DVhXIWK0zlQvf0SbURpZ53Ea4tKvhtMZztiUHSXuHxO/3Z0kw8M+rK0K24VlFVWt+AGDu0YFd3+4iE4Sy+ezIFbO1QPPNO+bKHvShvVa6oUD0llX12utnKfJIr2bdyAVA+DJaDxC2W0bRbJP68rzkg3ntZzP6Dh0chzmwNTjXUV7mrhfsXQUbUd+q5IMYzWnt/n3jalt4sFUEw9RE+GBDaEyto7u/c+lWRqnMbsp7m+bRQAbLnTZmNxEecsN5EaOY/62b3kF75mCKs5LykBp/WWkBpcTpLuZu+O/YuBRLX6YDUAOpn/5nzRKm2nNj1HdfKvsK+2OPUOMJm5GTHzn3WRWHUR96hGoRT7f7PPCTtlEtRlGf/xmyKRlNQiI6euKeGVuUtCa2MLO7/yl5AFdeNlk3X63IaFYV2LRaG5i+p7/jEt/3CrpW+ZpiC8LzfoWmg9uESWhIKUacbmRU2qmAFFtThZAh+pmJ+J9a55UGX6aeEBTcqHz+Wy3eHqvRj3DEPGSHW2iVcXZEIWk4WxjEPCTQylTJw5JK/isS8bJTmKawUHirkaZxDj0vZaORUgNrt6zqmUSbES25cbUcIrfjZsu8bSjMjGyHTcPiX360iM3ZDXAktFQ4p/uIhZ8y0lsuzI0OM+0hxhPUCEmgdD8sgthexrUhjtWAIGrq7aLlJqBGNio4XMXpqXqDOmG88rdNYqs/I3zStGcukFKy0rxeRpNIdn4syRi2yDfqcL0z7e7TqHWSofx5zYTz/dvikWiQ1jRkd+aGOJ8i1rU+UOfhg2b1Dbd7nOTkfMEjANDRRGYAUgdtILW2BR2viLACgVVFOV3novXhY+MegXO81U6OKOhQQ1daQG+q+P1NG8L7jdp+c70EBPbu/FrDa1vHO74Wr3HlQB27ZJ7VIYhiJWwKp1lyOK9GcJZ4nxkAFEBrNYUt5CWgsuRsp5NblFz4TPcgu89F81vpREi+yl3/kP4RuGKOvbnp8QPGv7rIi4nauCVsinjS6XI4fOrft6T+bMkIjvCI0JNDp+DMw5h3Ua5p4QYWnbiFLB6byaN1JaWEU/b1WmbboSacg5hV+p2x3oMue9CYuMgR2yQ4O4Jx4XtPb9E2ZH22bXz7jpskuMbd67oPkKnoPWaV2NgusWdk1MG3quFNhBh22cBvmY3CYby19o9AzaFb7ihCs46ZWSdcWQy7junRHV/1rhcLbERoJ+rcWRdbbXSPKoRbCy+I5eFmKdcDSw3DjUAko67n3v9O/F+sVca5LoJcl00Z3cQFN15OAPIb7oomvB4klm+lu5jzqay8VbKD92wy/cdZqiO/E5LmHiAd2FMaiCLXA1ZKAuyKLVcWCkoxFa7Z5PSuzmFLLwDiPLAeVJW9s8CbYw0GKROUMEnigbuwfMD26ooCQ+w0LyThsMMPpdqW/H4jXqm6qVYp1j02Lq6Ei+MbVXw6iEVwIzh2+RZA1FPrLjoRfKT6oWWZVvfE7SPuB7VAaW8wnekG0y67wpunqaJ88ga+tOFMe2OaRBDR71lBXol5rbNwKknFGkyVKmKVseijFda7pScF61T1nFoiNsmFlA1DpR6UMFXaWKwVNnNn1IkTiX2qyHpbvdd03mtBuFdnnf7KCSUn3pNXbIvq8vUGL4FX5snn3H3g8tBmrSAlE3N7copKMUHLl6sNcqipSze00wo4+TfBgSXEMpcmEwOS03aOho8l7NxZC3Goe/DrkHSw2uob72HqFlr9zCNU3YGSBmKRz6bIF2kdMelRC2HncjLdTQLzvgJIN17ID3PeC2NqceYu/rzWBPJs6LAOz9g6D3zAgpHnEn53iuZ/vmnY2W9SFIDK1j2x/+XINfF9C++yPwd35f5TZTyPBmFt/Lt/01Y6MVGLbZ9+g205ifavu8wQ3Xkd1o05GUyxOEtRDmYOj40ap2yIydrVCsizsN1IwuydvCYI14op4lDngr0QH7nOZOdR2sX4gXLt+9Sy9d5asYt0lZzacpYVMe3l/OUdMohq0pHw2AQe7G66EJ77a0aHuqhTbv9G/GmbICQ4ztPzjpAF0XEsy25ubNOqWhtbyYxnlnEy+sj7t1r3HzubmWIiPmANQIw7RbOhizg1gGbCN3xNTLgQrDgFvHSIg9D9+miF2huzeXRTRoJjS+AXYZjCyNGuiYiEKocrOZk1auOkPvLIl7uuDtnF+bcXYMBWkije+ctWg1xbsODbrTsiTSQg9SKFbQWFogqs2Lc9RBHW0p4QyXoGyB/wFOobbmXVmVHfB+6kLKpOU8TqZVNDa5m7ubv0Jje7oeXxDhYBC0+9PwLpU3iJR+lNT8p3zmFnDTwep7+WrpPfDn10YeZ+NZF2FYtjvrM40k+gnwPw6/9BGGhl9qjdzL5nb/1x2sL1VoorD2TgWe/A4Cwa4jZqz8nHnlJztm41EdgoPfMN5Ndfji5/Y+nvv1eKo/cGBu/ek0NBEE3XcedC0DX8ecyfd3XsNUYdZ6U3MojCHKCXM8f9DTm1n3/SSnWxWJbWuOm4ZZ9kz8YRbs4b/F756b/bxbnLZks0kIs7ZSYC2P6+1rJGRZcyDlwnnAZ37vT518rzpNs4Iv8lXrPk/0nVyj1KhOlAV7B6VOSxy+mJqkMNT/bK78xfYgicQQaxqGFrSuPQMktTLwfj4hUcedhImL6QQ2jZoiJHMr4sDoBooDSCS+7gA+H+7GqQdJ0/yvVZT9e2doUAoRJ1vpGSL7NEpek1JzHnCauKQ7iMZo6osQ05NyK594EgXhUDljmPXMNNeIUewNSgwdiBgzNHY9ILWVLjBqKeOQ4BsLeQYprnktjdD2VHeviMLPLMapnbVPQddjzyA+dxMIdP5WG6tCmZP0lLg4zfP4/EOR7mfzxP1HdfJdgB4jvFRvIteo65CX0nfZ6onqZ8W/+Nc2FzTGq1uWmNZWw9IX/RKp3Oa3jZ9nx5TdgmhUxVvrcOEZlTrIHHE/vs94AiCLd+Y33eCWnHqWW0vSc9FKyK9YC0HXCue2AQj2289iLRwsDVGbkEMLBNTS2P9i+nQsjh4PDhAVxzdMjB7UFKpL/A4SZgn8fZPNtnbg88Kkq89WaG4flh2NtRDS3k1AjEkHink9B1CxR3/EwmWWHUNvxcBsQcbGUH1lH98RmUn1Lmb/tJ3vcbl9l/NsfoHjEs6g+eiethal9/v0fjKIFH2XY5X1HfodFLWyHJKWO1Fcq2EVrSJ3XoXSAQSpR19dCQp4qXbLomR58GNjgHt5M4riqjKxTCImSAA3b+RyqkipEiCcIsdesOS8tf9F6Wrf42wYekeoZdhRc4hRl23yot6jer35fdYq2TBz6Ns57rrs5C1OkUiNCH9doxg0GrBujbrcA2ZVHk+odpvTQNZBtxny8CzLPNquKpofuk15JVJ1j/ubvYGqtGOylU9EQBdp1zLl0Hf9CKht+yey1X4wNmiwxD3QZTHeRpS/5F9KDq5m9/mvM3fTN2JtXhKkRgyR/0NMZeuHfADB1/b9RfvDKNu/aA7WyMPiMvyE7fBgAo5e+ncb8ptiDL8j9YCoQDA7Tf8xbAMgsPYJtj7xcwiROkvzGXYeeRnpgpdxax51L5dG78HlPr+3kbW7NCXIZMwWyKw6nuXWzePYKANN7MBUSdg0DEOZ7CYsFWlFF9jUr52KdYUJNmS/ANqo6NbHY+O/G9Ab/cX12g783zGJl24TyA1fTdfwLaUw8SmtyM4Hm3pvx+mmAxthGSndcQnb/45j/5bdJhuf9ONybhTsvJegaIMh3MffLr/qvTMKQNS0Zw+xln6S++S5aU9tpbXs4HqBDJWuYPWpGjH/jbwgHVtGY3Ipvqrsbicoz7PjiW/f4/ZOVxs4tzFzzlSf9+z8oRatieOKFxB35LYoBW4jDw56GsJTYJqmEXDjXBsSE7hbPq+vznPPuOwXxhGB73MJccgt+C0wqD6mIqFmjzSpL3jxNMFGW7JqjqM9sIpqZjFdgzVtqiLcB2f2PJjN4BKX7rqRVHY/DkWrRA1QgMF30n3EBJswwffWnieanxNNKAGPUI83vdxoDZ7yFxuQWJn76d1J+oixJOO/dTczwS/+J7PK11Lbew/h3LpL50bzgAp6XOLv8aIbPk5rizNBapq/8jzYKO09vGUHvKX9K8chny9SUZyjdfln7POmqbA19p78BE6ZIn/BSSnf8lObMDh9a1ybtpgXZ4UNJD64GoHjkWczd+M14znWeQgkzZ5cd4r/K9B5CqXGlr631fMvuoTc+Xg9BPSvc0Vln7CTCpnZbhahWIsgWicpTkIrE8MkmFLheiq33EDVqBOkslY23ye81H6r3oDPI5u/9EZklB9OcG6f8yE3i6TqQGgYBOEVgohZTV32criPOobLpBlq1yTj64gxPU5B7p7HtPnb+6COkh1ZTvuOSXabeK32gvO6nNLdvhahBffohGZtjHlPDQPEQc1d9loVffoeoModJteKIh8MZGEelaDOW2V98SoBMi0LVSSNDBtZk7tovx4NzaF9H8iQ0j26+TFSjcvcVu3eIXF41UkwEdVpjG3a35e+F/EEpWr35Op7s74GEKYqHPp3m/Dj1bfdL6c4iM9kgSiS76mgKR55J5eEbqW64WcKpFhhEOHnrbtt8msGz3kWqfxWz13+O6qa724v1FSFsIL//CQy++H3YVoPx77yPxs71sgC5BSnpMQw+X7qEtCqzjH3vz2mVpKxFwVUKjgoHljL03H/ABCH5A09l9Advk3rARSkdY6H72BdRXHs6AFF1hunL/1OUqxoQujDXoOcp5xHkusiuOJzcyuOp3Hd9rOxBDIk8BLaH7HIJG2ZXHYUN8thqJa7NTMQbw+4l8aXoWyJMVhCT6Cs5QBqsjesprLY01Dys80KlmbqlPrGR7MghNBcmaTmSd8/Eg5yPyUNt6iEa01tJ96+idP9V8aQn0aCuLGjhzkvIrjwSgoD523+8SxTA2jjUOXXJ/6X7xJfQmHyY2uiDMZBL87BphJi+vsD4999NduVRVB75pXiZLVFKi5uT13c8zPbPvB6TzovhQPux/XWtQnXDOrZtPT8mUQgQghD15h0627bEoyyPXi1h/qXiwZoSkgLpdsaBK0OrbL+B6ugNUgusyt0fWF4KFms8dm88JodcXpxa0/lrlabdSSbOSa+/nlvELuCnxH9+M7t4XJpi0G0jP/S4xnY3KC/9M/oteUu/jmjoH4yi7SjX3y8ZOOvNdB97DgBjX38P9W33xVG4RDgOk2LwpR8gyOQoHPZMdnzqT8QC1zpUl/PEQGG/EykcchoAvae+juqmC+N8oioQV5uZO+IZmFQak0qTP/AkajvWy/GSYTFnvWdGxKMK870ExSW0ZuYkN5l0KyIIbA4TyAoSpAvC5rP4xnT7b86O+4+a8+MxQUKT9shYC6qP3kFm6YFE1QVqk+tjby9Rh2sb0KrOsHDvlRQPP52Fu6/A1ip6yPbnw8DCA1eTWXkoYfcSZq/9QlsHIo/SdR717J1fpLUwRdSao7zlKlkkk5R3bjy0YOLi95EdOYL61kewrYqPOPj9uWiCDUqMfvttBK0i0cKchPUVKa7XwM1/c26Msa9e6I9nol2fd+vul8bEZmZ+9rF4jLqQqwFjEOBYFzTmNtNYt1nGp2AxjYLQrlSi8gzSsHX30kbYkEhDtLmeNTdPGurXMHLOnZdjQNIuRSYnBhQzztPNS2SGKQgU1a5KMPnMJA6pCtV/rUrStN+bWovqP0ooZ9P0U7doZ7RdK7voe/8sJ+cJYiMtgfq3ydfvymIeIOkGTV39D+QPRtF25PdLUn0j8fv+pdRm7hNrPRG2swA2wrbqQA7bamKjVqwwIwQh68pJGju3YlsNTJimPr4p5kJ1i7fpxvf1LN93DcWDn4FtNaRLx24eJA0PTl31eXpPOp/qlruoP7Khzbo3ro7SlqA2sZnJyz5Jbr+jmL/1x3u1yBfuvoJWZR6TylDZeJ2AozRHpnlYNwnTV3+ZhfuuobUwSVSdaxsfEJckAZOX/BuTl/zb3iffAs0mUz//D1kMtdzD4kuWfK1vCLZaYf6X34hJQZIMS6pQFJm7UKG69dZ4cVJlrHW2qhhaQLNFqyHnYxWolFxkE4rKgm9jqIu4LRKnCBL3hHU5dqtREg3vq8FVd16mIpstMXWmO1gyJKufPZH1X40Kq8rdLno59K3P65eIm2zUkHt2GGk5uNX9pguhlHSoe/rBjiN9i5NRFbtnb2xxR5/Fw4v2cH5hIlQMuypnrxjtrsrcGxQGx5JGbBwnSCjsov39tiQ5dz7MXuNXMqhOHW1HfiuSHl5D/xlvoLkwyvT1n4Z6Q0o4tN6U+P/UkjUUDns61Udvob79wRhNm3eL7TiCkAVSQytJrRih8uDt6CqtJSdGW21FYKfBpKT/mG0m4mb7ILqoeEKLJ/skGXyHFDJybnaKJ1NFsG+HTZQWGYuwS2kpjDLp1GNlatLufTKs6Mbv/3fKy7cYVEnR1nBd6xr3ZfXZpdtTGp/z9TWvibFopxarFICtxAKqOwnwtZtt4dFFp/hExmkMvnyFJlJL2yDuHKX7TiFgOIeItkFssGmO1DbwzeFNAVG+Wv+dQNibGaQuedH4FitcY2LGqciFmQMbd6CJ7CKvVc/HzZG/H5QZynnEe52XXTTXokEljvO7oIX0fE22SGbpAdS3P0zUqD2hx7pDWNGR323JyiJjHELXtK1u7j8NNYEP0wKe5J+6C0OlnOJVsgsNw1q8x2hrxOHk3zExxOfaRqbxaz6o9950/nXFdZ2QfP2oKqJFnoiBGCRjH8czSeRif1XjDxKEIZ6FSpmiHBo6Sdvnf9otxpe2bFusaGGRzfcElW3gPH+rJBhz+Jy7UXKNLjfmGecJuny4so7ZJmIcZBAUfhdxCVUPEoauAmNJwFDbtMhL37iQe/KiGSAK8FSEAfgQfJtNkwAeJvmZrYWwawDbrBPtoa7VjydTIH/gCdR3PLzXhuoAxSOeRXb5WuZu+wnNqcf2uu2vUuTaZRn5038n1b+M2vYHGfvqX/nv93b5O4QVHfmdFk8s34OE0Sy+l6hVD0E9Ua391NBbIudqFxJhT/edVW8M+Z39TSmvJykW4jzmb/CgPuSn753HooCexZ7LYk/JPp5yXXS8X+k1UO9Yx2OJy4OUEKMHD4RTQI56abaGNGRIhl4T4VJvhDiSEttgr2Kt3GfK8Zuk8DRhCtNqyphm/PC9cWIc/2/Yu4wglaPR2iRjzxID5foQxV0GExUpnnA2jZ2PUV6/bvG0YIlT/7lDTqVw2OmU772a6sOOQjCIzzMwLnycLrDkvPeTHlzJ9OX/SeWRmzyQKVp0HxQPP53Bcy+Uln3feC/10fV7nJclL/87cisPJ6ousO1zbyYqz+52u/SSAxg69y8ByK48nB1fevveJ/xXKRaCQh+p/mVy/OVrMWGIjVrecHmy4e2Oou3Ib00MxDktRyRg0m6Rr+DZhrBIbWcrDnGqV6QlBzieVmVwshG75JM6smdJlqtY2KVOdm+/+22LH4PzuGhB4Hh0bQuYhfTgGjKD+1F5+JdCC+i8Sf2dl3SW3hNfhm01mLv5+5ioKYrXIDWpCe8xf9DT6Hv6q6lte4CpKz4DoZX5U67eljMAU2mGX/khsquOYv6X32bu1v/yxA3teATIrjiK4fP/EROETN/0n5Tuu1Ry0Jq3V+88DQPP/gvya04GYPS/30Ptsft2mZvIQpjJM/D8d2OCkNyapzL6yduJGhUfpQjcdhFQOPCp5PY7CoDuk15Oef1NfnyLr3X+4JMwJsBk8uT2P3avijY9tB8AQa6LsGtgj4o2eRAb/ZpzJ4sPDTRnx5i/7SfkDzmFhdsvlmL9xPfJqNu+3PodRduR36po6YdZIPZQe4jJ7hUgozk9g5TWGGKWoXq8uCXzSB3Zd/mDmLcIogR6ONWzkmWv+X+YVJryQzcy8cMP7/Gnvaf8Eb0nvQwA22oyt+774tU7es7k6jpw1gWkepeQWXogpQeuo779PllRnSupoK/00P5kV4nyKh73fOZu/K9dmcDcn5nlh3nkenb4SObnL5W0iObSE2Aik+ryvw1yxd2ejwVarRZRrUSY7yGqlWi1mr5tXpKYA6A+up6oVibIFqhuuVu+24O+W7j7Z+QPeApRrbxbov2kTF3+7/Sc+DKqm+6gMb5pj9s1JjYx8SOpBZ+//eK97vPXJTNXfoaZKz+zy+cm8cZTWj7BfXYUbUd+a2ITb3zhvyJTtRzHKVS/saNVjHR12Je7vSP/eyRxT6R6l2BSQiCcGlyxDztph+q21cwCjZ2bSfUuIapXaM2Oxy3dlBrU5YUbU1tp7NxMemg1lYdvEOWm5UQa0XH7LN93FYVDTyHIdTH/yx/Gjckdo5Ie3FqYvOw/6Hv6q2hMbqXyyC17nopmnbGv/w35A55KZeMttJp7jn83p7ez/fMXEHYNUB99ZK+zU910O1s/9gr2xtSkUn7wesoPXv+42+3rtr8JMdDGIvek9tEBQ3Xkty0+/wGEXX2kB1dTG71Pkl3dCCVdgoDeuhhO8chnEWQKzN91GbR2g3bpSEcATED/mW8iO3IQ09d+hdqWe/a8aTpLz0kvh2aD2XXf2+t9FaSy5A48gfr4JprT29tLW5Kt4QyYVIqw0E9rfgLreKDtFG0gM9zvFf36uKjejvzKJTB7+KJHnACbJPZI5Gs7qOOO/N5IkO9h+ev/k7DYR2XTOiZ+8KE2vmELvgC/eNSzGXreOwGY/eV3/kc8pB3pyC7yJCMlvrdsF5gaBAreS4jSbNoWWC3l+R1Ewf9vE0Vpm2R9tYqW8DlZDIp6PEUb7PGb3cj++++PMWaX11vfKiTO1WqVt771rQwODtLV1cV5553H2NhY2z62bNnC85//fAqFAkuWLOGv//qvaTY73khHhMQiLPYBkBk51Pcc9cX/ibs1zCfyU/k93+Ad6cg+y568miciRaSN4QIC5tuTslb0cxbfEL7t9T8cRkd2lb3Np1eyBugFk0t8rg1DEhvvqw22TznaW265hVYrzozfe++9PPvZz+blL385AO9617u45JJL+M53vkNvby9ve9vbeOlLX8oNN0iivNVq8fznP5+RkRFuvPFGduzYwZ/8yZ+QTqf58If3DFDoyP8OqY8+wsI9Pye3+mhmb/hG+yK1qDRn/vZLCbuHCbIFZq796m96qB35Q5b/QYzPOiJ+InxNqgXXRJkYeaTHWMC3uDOuD62nC1XJSxaFJ8er8luX3xaMIsmR4cP6jzcQi6C8tU1fhAdlmkwBQktkKoIA35eTsv8Deec732kPPPBAG0WRnZmZsel02n7nO9/x3z/wwAMWsDfddJO11tpLL73UBkFgR0dH/Taf+tSnbE9Pj63Vak/4uLOzs8nbtfP6A3+Z3/LxO6/Oa08voy+DNWkswaLvDdaEWJPCmjw26MUGoftcX1ms6cUGXdigiA3Mole//Pa3fa6/jldQ7LPpwVWPv22Ysl3HnG3zB5/0uNvm9jvaDp37V7a49hkyv8lrtGifQy++yK644Iu2uPYZNjDY0L2CIDH/YPP7H2f3+8vv21Xv+q7Nrjpil2POzs7uVWftU+g4KfV6na997Wv82Z/9GcYYbrvtNhqNBmeddZbfZu3atey3337cdJPUYt10000cddRRLF261G9z9tlnMzc3x3337VoDplKr1Zibm2t7deR/j9jf9gA60pE9iAXxlDJIXjbniFOyCFmFRXKxTbA1iGpgM0gtuIYnHVe3LbtX8gCB/JYahN2DjnZq75LqXUr+4JMx6ezeNwxCuk94ET0nngdheq+bZlccxtJX/TMDz/7zRCJ69zL4vHex31/9ULbdi6SH92fFmz7P8jd8ip6nvXSv2/Y/83UMPvftLHnp31I45BQgwX6VfJmA4Zf+LcUjTmfwBX9F2DXQFoc3RgBPBsjvdzTFQ08l1buE3tP+WDZwZDfJhvUWyB96CiaVIcjkyB904l7Hujt50or2hz/8ITMzM7zuda8DYHR0lEwmQ19fX9t2S5cuZXR01G+TVLL6vX63J/nIRz5Cb2+vf61aterJDrsjHelIR36lYgGbRUhWAqAIJiWvNlEyfUfNmB5ezchrP8GSV/wLYWqwTcPGLp+86T/77ax8y1dY9tp/26sCDYv9LPvTT7Dkpe9j+CXv2+u4u5/yQgbOfCP9p/8pvae8Yq/b9p/1ZnKrjqD7+OeTP/Cpez5+1wBdR52JCVN0H/98TDq3x22zKw8nyMj3uTXH7/X4YddA23sfBU5oWQtYG2EbQi5tWw1sq9mmiFWMgebkVk8dWd/2oORnM7R1W1BQeOn+a4nqVaJa6UmVHj3pOtovfOELnHPOOSxfvvzJ7uIJy0UXXcSFF17o/56bm+so2450pCO/G2KBObfwK62hKk3VCMmE4bS87T71pWSWHgBA8djnMnv9f++6X8fZXTz0GQBklqwhPbCS+tiGeJeJfYe9SwiyRb/t3kRri+V9Zq/bNqe3kx05CBu12lo8LpZWaYba9ofILj+U6ua7vdLb5dgGyhtvpHv8uYQ9w8w/8EM/V5pPTWI0pq/+MgQhUXmG0j0/E68zh+S9F5UFj33rfRTXPoPKptuJynN4Pu/FY52fYPSLbyU9sJza1vvEe63gr10SCF7beg9bP/FH8uWTKCV8Uop28+bN/PznP+f73/++/2xkZIR6vc7MzEybVzs2NsbIyIjfZt26dk5ORSXrNruTbDZLNvs4YZCOdKQjHfltS4J033e/UXcqhzQDcCt4fewhOPJMeb9jN/SFAdJIoA7zd/6U3hPPo7r1Puo7t8TddKwDUWXBLkB9+8PM3fYTcvsdxeyN39zrUOdv+SFBOo9JpZm94Rt73Xby0o9R2XALjcmtNCY27XlDGzH2zb8hNTxCY3RH21fGtP9PzwyjN7wDdsj4TZaYDS4r4Vtbd2yrC+NM/ugjbXMTLJVztpPt+21ObmX2hq/vEiFYrGxlv5PUFibjTS175jNuPQ7R9d5kH/FP1lprP/jBD9qRkRHbaDT8ZwqG+u53v+s/e/DBBy3sCoYaGxvz23zmM5+xPT09tlqtPuHjd8BQnVfn1Xn9Prw84CnAmoIDRRn3/3Js9oC1NrNkTTs4ymAxWNONNSsELEUaa/KZeN89WNOV2HdGfvO449mX8WflOP7v8AkeI4MNhrAECSBSiA36sEEKG3ZjgzQ2KLjPMg7w1Y01OTmfYAk2WCpzFuQFJKZzExhskMUGw7IfkwSOhW77RfOZBJeFBWyYjYFPoWkHPj2Z6/x4YKh9VrStVsvut99+9j3vec8u311wwQV2v/32s1dddZW99dZb7cknn2xPPvlk/32z2bRHHnmkfc5znmPvvPNOe9lll9nh4WF70UUX7dMYOoq28+q8Oq/fq5cq1zQ2zItyMX0OcRzEqGX/3jhFOoA1RYdoTrl9hVgz5BR36P4PYgW922MH7IpmJn7tVgGnsCTRzk9Q0QY9ogRNTwK9GzgFGIiyDQKHsu5zSOsh93/KfbYEG3RjgwFsMIgNcgmFmcKGGWyYk/20KdM8NthPttmtkjXYsMv9NvGZV8xP8vr+yhXt5ZdfbgH70EMP7fJdpVKxb3nLW2x/f78tFAr2JS95id2xY0fbNo8++qg955xzbD6ft0NDQ/Yv//Iv2zzjJyIdRdt5dV6d1+/dKy/KM7tUlK3pch7rgPPm8on/VfH2uv+TpUBp5/mlnILNu/+zi7ZNvg93o2j1FSwqOQpjTxTYpWTp8V4m4xTkcELBq3JNHjflPNBep2h1jAVniKTcfoac0g3dPnqx4UC8v10UakLJJr8LzR682ITh8etStB0Kxo50pCMd+U1K4MpHUkgOthsho6giedwFJFcZIA3fUwjfN0jZkOtbu4ssZmjIu31G7V/vIjkEbasdj0I81SmBfGerxAxtJvH97sRA0IXPR1sFLhmE6KEl+Vi7Ctjmjplx3yXOy7rzNVn3XeTmQkFQaTk/W9313BYrNYP8Vhsz7Fbr2Vhz7qv8SikYO9KRjnSkI/9Dcb2SbQOpmx1HQD0R2HliZWMR5VdGlN8Aorz2BHpVLWEQpVIFE7U37WgTpTWtI8pdN2jFu8PRD+o+ghSYfvauOaw7jxZCZ9gPpg9pWh/iG8lTBrS737w7QFr+N8UiJgykB3AmcQIt4sb3IaQG+sgfcDwml0seXsbgXjijpnD86XSd9FLM4B5Kjpy2Tg+uYvhlH2Tg2Rc8obrlJyKdNnkd6UhHOvLbFEtbiYoFUTY9SG1uVf5mmnZPM6k9FzclSHYFcp5a2LsUmlWsnZUG9nqcRrwNCHd47sCnUtv2AK3p7Z760bjWf2Y2JnQoHHsO2WUHM7vu+zQnH8PtUraNgFlBRYeZYQZOuxAsTF3yb7TmxjGjooBtgNBMhkAaeo54Fb0nv4rG9GbGL3030VQpPmc1JCywkGf4/I+R6h6itv0Bxr/21/74SaPCAoUDTmXw9L8CINW3nOmf/vvur4WB/jPfSN7V9dZ2PEzp3qt2v+0+SMej7UhHOtKR3yEpHnkmS172d+RXPt33o7WReMBe0hAM9jHyuk+y4m3fIHfgCfK5btt0/1vRd8VjzmbFBV9g2Zu+QGr4QM+97AnzE40Mhs//Bwaf9y5G/vj/ScMOG4dmjcV71JkVaxk8+610Hf0chs/9K9H92hQhj3ivrlF913EvIrvyKLKrjqL7qS+Jz8PVCXuXbxaKRwi7YLp/NZmlB8v+cvgwtmqtsNBPqntIxrL04LY53IWgIlvw74NcsW27NrHQmpvwf7bmdi7e4klJx6PtSEc60pHfEQnyPQw+750YE5BbfSxbH1yHjZJNUBGlGEHXwaeQGRJSiu6nvIjKI7e27Svp1eUPfJrsP5Mju/Roaps3iNdZTdS1Okn1L5Ntc12E+R5sZU7Cx47Zym+eqCu1zbqwYelB8+69I+VvPLoRDpev6js3YXpduFzJ+UtO6UdQuv/n9J70KhqTW6hProcusFNuu34kfF4XEo35W39E/qATmb/1h0AiTe1oFNWxLt17Fen+5YTFfuau/2pMs5iYJP1z8opPU9v+EM3ZMapb7t7jtdoX6SjajnSkIx35HRHbrBFVFwjzPbQqc9hFLESafySC6tYHiOpVgkyO6qbb97rf+TsuIbffkbRKs5QelG5q1ornCwmPFZi67ON0P/VFVB+5jebcY5IfDnfdZ2NsAzt/8H/IjBxM6c5LoeDGVkHyqIlcc/m+q2gxBlFA7cF7JCyeAG9Z1xLTAHPXfZ2F23+MLZexYRSHi3sQ8FMr/unsVZ9j5qrP7TI2JQoJcMQXtsXstV/xX5oM2NoewE+tBgt3/2yv87mv0kEdd+T3QlLEPeA70pE/ZEkNriS///FUNqyjObNnDniAoNhHkOvy+dFfiYRgCoiX2Ysozpp8pR6r0j4mnWFVJG0OcjJhmsH3mF4suygh9zuL87hDJMTtmjOot9omCY5i3aeuGz5dndjnHhmgnoQ8Huq4o2g78nshi56hjnSkI78J0Z6sCfH5T4cS1jzsbhWtE+sQzuZxaIL9851ziOGaCykrOtptYFSBpxEFXiKmpYzY7YJh+dUq16R0yns68gchSau0Ix3pyG9IdhNCUl0WATYFkTYAcC+b8ChVTNoBpJ6oNOLSJFpIGFqVLPh2dkR4xLZtCQAsOc7ki1+Tkn0i0snRdqQjHelIR/ZdrAMzsRuCiMUf1PDhZw/o2suujQsxW4BoN9smlCut3YSw1e1uxYP7baadOh5tRzrSkY505Fcq6kWq5xvZ+LU7QonFaaEk90YbKjpctK0r+1ms14NcLybdJcdkz0rWpLMUDj2VVP+vt91rx6PtyO+lqIXYAUd1pCO/W2JSWbqOeQ6thSnKD92wy/dJRZk/4AS6jn425YdupPzANfL75LaOStJEWYZecBHppQcyc+VnKT9wnewjg4SVE7ml3OEnMfT8i7CtBuPf+gC1bffvcazDL76I/AEnENXKbP/CW2jN/2rqZhdLx6PtyO+ldIBRHenI76b0n/kGBs56syixg0/a84ZBiqEXX0Th0FMZPPdCTKGv3QvGecEVyKw8htyaEwgL/fSc/EexhzwHUYM2zzW//0mYICRI58grkcceJD20WoaSLZDuWfKrmYDdneqvbc8d6civUTqKtiMd+d2UIB+jb8P8npG42AhbkySvbdSwzfrut4ugPvYoUXUBgOrWexP72HXzhXuuJKqVaZVnKT1w3V7HOn3lZ6iPbWD+tp9Q3fbAXrf9n0invKcjHenI75ckyzj+f3t3H1Nl3f8B/H3gcA5wIxwFeVIP4CMpDyNIOlrrD84yYj2vmaOG0cMsXFDOJJ1Ra4RbW5u1RusJ702LaRMy04wAKRryFEdBCzBJnDcPJTcC+YBy3vcf3lx3l5Lx69c5nK/7vLazyfX9jn3e+3D54Ryu6xzhcbwDZ2L6HasxNjKAf9f8E3D+8T09xhmz4b/Qhgtd32O076frf99/TId3UBhG/9WOP/012/Df55C8zg+JETBMA3D2+tsmQ+6jFUIIIa5mgPaez/9fch+tEEIIcTXibxmykyGDVgghhHAhJQetgq92CyGEuEH92UxSctCeOXNmqksQQgghAADDw8PXXVfyDStmzJgBAOju7lb2oqihoSHMmTMHp06duu4f0T3djZBDMngGyeAZJMPkkcTw8DAiI6//zlJKDlovrytPxIOCgpT9QRgXGBiofAbgxsghGTyDZPAMkmFyJvNkT8mXjoUQQghVyKAVQgghXEjJQWs2m1FQUACz2TzVpfxlN0IG4MbIIRk8g2TwDJLh76fkO0MJIYQQqlDyGa0QQgihChm0QgghhAvJoBVCCCFcSAatEEII4UIyaIUQQggXUnLQvvPOO4iOjoavry9SU1PR0NAw1SVpvvnmG9xzzz2IjIyEwWBAeXm5bp0kXn75ZURERMDPzw92ux2dnZ26PQMDA8jMzERgYCAsFgueeOIJjIyMuKX+oqIi3HLLLZg2bRpCQ0Nx//33o729XbfnwoULyMnJQXBwMAICAvDQQw+hr69Pt6e7uxsZGRnw9/dHaGgo1q9fj8uX//gDoP9uxcXFSEhI0N4ZxmazYf/+/Upl+L0tW7bAYDAgLy9PO6ZChldeeQUGg0H3iI2NVSoDAJw+fRqPPvoogoOD4efnh/j4eDQ1NWnrnn5eR0dHX9MHg8GAnJwcAGr0YWxsDJs3b0ZMTAz8/Pwwb948vPbaa7o39PfYPlAxpaWlNJlM/Oijj3j06FE+9dRTtFgs7Ovrm+rSSJL79u3jpk2buHv3bgJgWVmZbn3Lli0MCgpieXk5Dx8+zHvvvZcxMTE8f/68tueuu+5iYmIiDx06xG+//Zbz58/nqlWr3FL/ihUrWFJSwra2NjocDt599920Wq0cGRnR9qxZs4Zz5sxhZWUlm5qaeOutt3LZsmXa+uXLlxkXF0e73c6Wlhbu27ePISEhfOmll9ySgST37NnDL774gh0dHWxvb+fGjRvp4+PDtrY2ZTKMa2hoYHR0NBMSEpibm6sdVyFDQUEBlyxZwp6eHu3xyy+/KJVhYGCAUVFRXL16Nevr63nixAkeOHCAx48f1/Z4+nnd39+v60FFRQUBsLq6mqQafSgsLGRwcDD37t3Lrq4u7tq1iwEBAdy6dau2x1P7oNygXbp0KXNycrSvx8bGGBkZyaKioimsamJXD1qn08nw8HC+8cYb2rHBwUGazWZ+8sknJMljx44RABsbG7U9+/fvp8Fg4OnTp91W+7j+/n4CYE1NjVavj48Pd+3ape354YcfCIB1dXUkr/yy4eXlxd7eXm1PcXExAwMDefHiRfcG+J3p06fzgw8+UCrD8PAwFyxYwIqKCt5xxx3aoFUlQ0FBARMTEydcUyXDhg0beNttt/3huorndW5uLufNm0en06lMHzIyMpidna079uCDDzIzM5OkZ/dBqZeOR0dH0dzcDLvdrh3z8vKC3W5HXV3dFFY2OV1dXejt7dXVHxQUhNTUVK3+uro6WCwWpKSkaHvsdju8vLxQX1/v9prPnj0L4H+fmNTc3IxLly7pMsTGxsJqteoyxMfHIywsTNuzYsUKDA0N4ejRo26s/oqxsTGUlpbit99+g81mUypDTk4OMjIydLUCavWhs7MTkZGRmDt3LjIzM9Hd3a1Uhj179iAlJQUPP/wwQkNDkZSUhPfff19bV+28Hh0dxfbt25GdnQ2DwaBMH5YtW4bKykp0dHQAAA4fPoza2lqkp6cD8Ow+KPXpPb/++ivGxsZ0zQaAsLAw/Pjjj1NU1eT19vYCwIT1j6/19vYiNDRUt240GjFjxgxtj7s4nU7k5eVh+fLliIuL0+ozmUywWCy6vVdnmCjj+Jq7tLa2wmaz4cKFCwgICEBZWRkWL14Mh8OhRIbS0lJ8//33aGxsvGZNlT6kpqZi27ZtWLRoEXp6evDqq6/i9ttvR1tbmzIZTpw4geLiYrzwwgvYuHEjGhsb8dxzz8FkMiErK0u587q8vByDg4NYvXq1VpsKfcjPz8fQ0BBiY2Ph7e2NsbExFBYWIjMzU1eHJ/ZBqUEr3CsnJwdtbW2ora2d6lL+kkWLFsHhcODs2bP49NNPkZWVhZqamqkua1JOnTqF3NxcVFRUwNfXd6rL+cvGn20AQEJCAlJTUxEVFYWdO3fCz89vCiubPKfTiZSUFLz++usAgKSkJLS1teHdd99FVlbWFFf3f/fhhx8iPT39Tz9D1dPs3LkTO3bswMcff4wlS5bA4XAgLy8PkZGRHt8HpV46DgkJgbe39zVXw/X19SE8PHyKqpq88RqvV394eDj6+/t165cvX8bAwIBbM65duxZ79+5FdXU1Zs+erR0PDw/H6OgoBgcHdfuvzjBRxvE1dzGZTJg/fz6Sk5NRVFSExMREbN26VYkMzc3N6O/vx8033wyj0Qij0Yiamhq89dZbMBqNCAsL8/gME7FYLFi4cCGOHz+uRB8AICIiAosXL9Ydu+mmm7SXwFU6r0+ePImvv/4aTz75pHZMlT6sX78e+fn5eOSRRxAfH4/HHnsMzz//PIqKinR1eGIflBq0JpMJycnJqKys1I45nU5UVlbCZrNNYWWTExMTg/DwcF39Q0NDqK+v1+q32WwYHBxEc3OztqeqqgpOpxOpqakur5Ek1q5di7KyMlRVVSEmJka3npycDB8fH12G9vZ2dHd36zK0trbqfqArKioQGBh4zX9Y7uR0OnHx4kUlMqSlpaG1tRUOh0N7pKSkIDMzU/u3p2eYyMjICH766SdEREQo0QcAWL58+TW3uHV0dCAqKgqAGuf1uJKSEoSGhiIjI0M7pkofzp07By8v/cjy9vaG0+kE4OF9cNllVi5SWlpKs9nMbdu28dixY3z66adpsVh0V8NNpeHhYba0tLClpYUA+Oabb7KlpYUnT54keeXyc4vFws8++4xHjhzhfffdN+Hl50lJSayvr2dtbS0XLFjgttsAnnnmGQYFBfHgwYO62wHOnTun7VmzZg2tViurqqrY1NREm81Gm82mrY/fCnDnnXfS4XDwyy+/5MyZM916K0B+fj5ramrY1dXFI0eOMD8/nwaDgV999ZUyGa72+6uOSTUyrFu3jgcPHmRXVxe/++472u12hoSEsL+/X5kMDQ0NNBqNLCwsZGdnJ3fs2EF/f39u375d2+Pp5zV55Q4Nq9XKDRs2XLOmQh+ysrI4a9Ys7fae3bt3MyQkhC+++KK2x1P7oNygJcm3336bVquVJpOJS5cu5aFDh6a6JE11dTUBXPPIysoieeUS9M2bNzMsLIxms5lpaWlsb2/XfY8zZ85w1apVDAgIYGBgIB9//HEODw+7pf6JagfAkpISbc/58+f57LPPcvr06fT39+cDDzzAnp4e3ff5+eefmZ6eTj8/P4aEhHDdunW8dOmSWzKQZHZ2NqOiomgymThz5kympaVpQ1aVDFe7etCqkGHlypWMiIigyWTirFmzuHLlSt39pypkIMnPP/+ccXFxNJvNjI2N5Xvvvadb9/TzmiQPHDhAANfURarRh6GhIebm5tJqtdLX15dz587lpk2bdLcXeWof5PNohRBCCBdS6m+0QgghhGpk0AohhBAuJINWCCGEcCEZtEIIIYQLyaAVQgghXEgGrRBCCOFCMmiFEEIIF5JBK4QQQriQDFohhBDChWTQCiGEEC4kg1YIIYRwof8AmKy/PeAEOBwAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -1478,7 +1495,7 @@ ], "source": [ "fig, ax = plt.subplots()\n", - "ax.imshow(hires_read.data)\n", + "ax.imshow(np.moveaxis(hires_read.data, 0, -1).astype(np.uint8))\n", "ax.add_collection(spot_patches)\n", "\n", "plt.show()" @@ -1509,7 +1526,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.8" + "version": "3.11.9" } }, "nbformat": 4, diff --git a/apis/python/requirements_dev.txt b/apis/python/requirements_dev.txt index 509e738cbd..16211e94c7 100644 --- a/apis/python/requirements_dev.txt +++ b/apis/python/requirements_dev.txt @@ -3,5 +3,9 @@ ruff pytest pytest-cov sparse -typeguard==4.2.1 +# Python 3.12 support requires https://github.com/agronholm/typeguard/pull/490, which landed between 4.3.0 and 4.4.0. +# However, 4.4.0 also included https://github.com/agronholm/typeguard/pull/496, which causes errors in Python 3.9 (e.g. +# https://github.com/single-cell-data/TileDB-SOMA/actions/runs/11545217103/job/32131849817), so we are pinning to the +# last useful commit here. See also: https://github.com/single-cell-data/TileDB-SOMA/issues/3216. +typeguard @ git+https://github.com/agronholm/typeguard@afad2c7 types-setuptools diff --git a/apis/python/requirements_spatial.txt b/apis/python/requirements_spatial.txt new file mode 100644 index 0000000000..1f9fd21769 --- /dev/null +++ b/apis/python/requirements_spatial.txt @@ -0,0 +1,3 @@ +tifffile +pillow +spatialdata diff --git a/apis/python/setup.py b/apis/python/setup.py index cd9feccd2b..96c668154d 100644 --- a/apis/python/setup.py +++ b/apis/python/setup.py @@ -303,6 +303,7 @@ def run(self): "src/tiledbsoma/common.cc", "src/tiledbsoma/reindexer.cc", "src/tiledbsoma/query_condition.cc", + "src/tiledbsoma/soma_vfs.cc", "src/tiledbsoma/soma_context.cc", "src/tiledbsoma/soma_array.cc", "src/tiledbsoma/soma_object.cc", @@ -326,10 +327,7 @@ def run(self): zip_safe=False, setup_requires=["pybind11"], install_requires=[ - # Temporary for 1.15.0rc series -- avoid RC versions of these packages - "anndata>=0.10.1,<0.11.0rc1", - "networkx~=3.2.1", - "pyparsing~=3.1.4", + "anndata>=0.10.1", "attrs>=22.2", "numba>=0.58.0", "numpy", @@ -338,12 +336,14 @@ def run(self): "scanpy>=1.9.2", "scipy", # Note: the somacore version is in .pre-commit-config.yaml too - "somacore==1.0.20", - "tiledb~=0.32.0", + "somacore==1.0.21", "typing-extensions", # Note "-" even though `import typing_extensions` ], extras_require={ "dev": open("requirements_dev.txt").read(), + "spatial-io": open("requirements_spatial.txt").read(), + "all": open("requirements_dev.txt").read() + + open("requirements_spatial.txt").read(), }, python_requires=">=3.9", cmdclass={"build_ext": build_ext, "bdist_wheel": bdist_wheel}, diff --git a/apis/python/src/tiledbsoma/__init__.py b/apis/python/src/tiledbsoma/__init__.py index 1ec4ac7747..1ea21ee5d9 100644 --- a/apis/python/src/tiledbsoma/__init__.py +++ b/apis/python/src/tiledbsoma/__init__.py @@ -172,6 +172,7 @@ get_SOMA_version, get_storage_engine, show_package_versions, + get_libtiledbsoma_core_version, ) from ._indexer import IntIndexer, tiledbsoma_build_index from ._measurement import Measurement diff --git a/apis/python/src/tiledbsoma/_dataframe.py b/apis/python/src/tiledbsoma/_dataframe.py index 9bec309779..a9fbeedccb 100644 --- a/apis/python/src/tiledbsoma/_dataframe.py +++ b/apis/python/src/tiledbsoma/_dataframe.py @@ -6,7 +6,18 @@ """ Implementation of a SOMA DataFrame """ -from typing import Any, List, Optional, Sequence, Tuple, Type, Union, cast +import inspect +from typing import ( + Any, + Dict, + List, + Optional, + Sequence, + Tuple, + Type, + Union, + cast, +) import numpy as np import pyarrow as pa @@ -24,7 +35,14 @@ from ._read_iters import TableReadIter from ._soma_array import SOMAArray from ._tdb_handles import DataFrameWrapper -from ._types import NPFloating, NPInteger, OpenTimestamp, Slice, is_slice_of +from ._types import ( + NPFloating, + NPInteger, + OpenTimestamp, + Slice, + StatusAndReason, + is_slice_of, +) from .options import SOMATileDBContext from .options._soma_tiledb_context import _validate_soma_tiledb_context from .options._tiledb_create_write_options import ( @@ -260,10 +278,10 @@ def create( ) (slot_core_current_domain, saturated_cd) = _fill_out_slot_soma_domain( - slot_soma_domain, index_column_name, pa_field.type, dtype + slot_soma_domain, False, index_column_name, pa_field.type, dtype ) (slot_core_max_domain, saturated_md) = _fill_out_slot_soma_domain( - None, index_column_name, pa_field.type, dtype + None, True, index_column_name, pa_field.type, dtype ) extent = _find_extent_for_domain( @@ -417,7 +435,9 @@ def tiledbsoma_has_upgraded_domain(self) -> bool: """ return self._handle.tiledbsoma_has_upgraded_domain - def resize_soma_joinid_shape(self, newshape: int) -> None: + def tiledbsoma_resize_soma_joinid_shape( + self, newshape: int, check_only: bool = False + ) -> StatusAndReason: """Increases the shape of the dataframe on the ``soma_joinid`` index column, if it indeed is an index column, leaving all other index columns as-is. If the ``soma_joinid`` is not an index column, no change is made. @@ -425,9 +445,151 @@ def resize_soma_joinid_shape(self, newshape: int) -> None: to keystroke, and handles the most common case for dataframe domain expansion. Raises an error if the dataframe doesn't already have a domain: in that case please call ``tiledbsoma_upgrade_domain`` (WIP for - 1.15). + 1.15). If ``check_only`` is ``True``, returns whether the operation + would succeed if attempted, and a reason why it would not. + """ + frame = inspect.currentframe() + function_name_for_messages = frame.f_code.co_name if frame else "tiledbsoma" + + if check_only: + return cast( + StatusAndReason, + self._handle._handle.can_resize_soma_joinid_shape( + newshape, + function_name_for_messages=function_name_for_messages, + ), + ) + else: + self._handle._handle.resize_soma_joinid_shape( + newshape, + function_name_for_messages=function_name_for_messages, + ) + return (True, "") + + def tiledbsoma_upgrade_soma_joinid_shape( + self, newshape: int, check_only: bool = False + ) -> StatusAndReason: + """This is like ``upgrade_domain``, but it only applies the specified + domain update to the ``soma_joinid`` index column. Any other index + columns have their domain set to match the maxdomain. If the + ``soma_joinid`` column is not an index column at all, then no action is + taken. If ``check_only`` is ``True``, returns whether the operation + would succeed if attempted, and a reason why it would not. + """ + frame = inspect.currentframe() + function_name_for_messages = frame.f_code.co_name if frame else "tiledbsoma" + + if check_only: + return cast( + StatusAndReason, + self._handle._handle.can_upgrade_soma_joinid_shape( + newshape, + function_name_for_messages=function_name_for_messages, + ), + ) + else: + self._handle._handle.upgrade_soma_joinid_shape( + newshape, + function_name_for_messages=function_name_for_messages, + ) + return (True, "") + + def _upgrade_or_change_domain_helper( + self, newdomain: Domain, function_name_for_messages: str + ) -> Any: + """Converts the user-level tuple of low/high pairs into a pyarrow table suitable for calling libtiledbsoma.""" + + # Check user-provided domain against dataframe domain. + dim_names = self._tiledb_dim_names() + if len(dim_names) != len(newdomain): + raise ValueError( + f"{function_name_for_messages}: requested domain has length {len(dim_names)} but the dataframe's schema has index-column count {len(newdomain)}" + ) + + if any([slot is not None and len(slot) != 2 for slot in newdomain]): + raise ValueError( + f"{function_name_for_messages}: requested domain must have low,high pairs, or `None`, in each slot" + ) + + # From the dataframe's schema, extract the subschema for only index columns (TileDB dimensions). + full_schema = self.schema + dim_schema_list = [] + for dim_name in dim_names: + dim_schema_list.append(full_schema.field(dim_name)) + dim_schema = pa.schema(dim_schema_list) + + # Convert the user's tuple of low/high pairs into a dict keyed by index-column name. + new_domain_dict: Dict[str, Domain] = {} + for dim_name, new_dom in zip(dim_names, newdomain): + # Domain can't be specified for strings (core constraint) so let them keystroke that easily. + if ( + dim_schema.field(dim_name).type + in [ + pa.string(), + pa.large_string(), + pa.binary(), + pa.large_binary(), + ] + and new_dom is None + ): + new_domain_dict[dim_name] = ("", "") # type: ignore + else: + new_domain_dict[dim_name] = tuple(new_dom) # type: ignore + + # Return this as a pyarrow table. This has n columns where n is the number of + # index columns, and two rows: one row for the low values and one for the high values. + return pa.RecordBatch.from_pydict(new_domain_dict, schema=dim_schema) + + def tiledbsoma_upgrade_domain( + self, newdomain: Domain, check_only: bool = False + ) -> StatusAndReason: + """Allows you to set the domain of a SOMA :class:`DataFrame``, when the + ``DataFrame`` does not have a domain set yet. The argument must be a + tuple of pairs of low/high values for the desired domain, one pair per + index column. For string index columns, you must offer the low/high pair + as `("", "")`. If ``check_only`` is ``True``, returns whether the + operation would succeed if attempted, and a reason why it would not. + """ + pyarrow_domain_table = self._upgrade_or_change_domain_helper( + newdomain, "tiledbsoma_upgrade_domain" + ) + + if check_only: + return cast( + StatusAndReason, + self._handle._handle.can_upgrade_domain( + pyarrow_domain_table, "tiledbsoma_upgrade_domain" + ), + ) + else: + self._handle._handle.upgrade_domain( + pyarrow_domain_table, "tiledbsoma_upgrade_domain" + ) + return (True, "") + + def change_domain( + self, newdomain: Domain, check_only: bool = False + ) -> StatusAndReason: + """Allows you to enlarge the domain of a SOMA :class:`DataFrame``, when + the ``DataFrame`` already has a domain. The argument must be a tuple of + pairs of low/high values for the desired domain, one pair per index + column. For string index columns, you must offer the low/high pair as + `("", "")`. If ``check_only`` is ``True``, returns whether the + operation would succeed if attempted, and a reason why it would not. """ - self._handle._handle.resize_soma_joinid_shape(newshape) + pyarrow_domain_table = self._upgrade_or_change_domain_helper( + newdomain, "change_domain" + ) + if check_only: + return cast( + StatusAndReason, + self._handle._handle.can_change_domain( + pyarrow_domain_table, "change_domain" + ), + ) + else: + self._handle._handle.change_domain(pyarrow_domain_table, "change_domain") + return (True, "") def __len__(self) -> int: """Returns the number of rows in the dataframe. Same as ``df.count``.""" @@ -788,6 +950,7 @@ def _canonicalize_schema( def _fill_out_slot_soma_domain( slot_domain: AxisDomain, + is_max_domain: bool, index_column_name: str, pa_type: pa.DataType, dtype: Any, @@ -803,8 +966,10 @@ def _fill_out_slot_soma_domain( if slot_domain is not None: # User-specified; go with it when possible if ( - pa_type == pa.string() - or pa_type == pa.large_string() + ( + (pa_type == pa.string() or pa_type == pa.large_string()) + and slot_domain != ("", "") + ) or pa_type == pa.binary() or pa_type == pa.large_binary() ): @@ -837,47 +1002,78 @@ def _fill_out_slot_soma_domain( # will (and must) ignore these when creating the TileDB schema. slot_domain = "", "" elif np.issubdtype(dtype, NPInteger): - iinfo = np.iinfo(cast(NPInteger, dtype)) - slot_domain = iinfo.min, iinfo.max - 1 - # Here the slot_domain isn't specified by the user; we're setting it. - # The SOMA spec disallows negative soma_joinid. - if index_column_name == SOMA_JOINID: - slot_domain = (0, 2**63 - 2) - saturated_range = True + if is_max_domain or not NEW_SHAPE_FEATURE_FLAG_ENABLED: + # Core max domain is immutable. If unspecified, it should be as big + # as possible since it can never be resized. + iinfo = np.iinfo(cast(NPInteger, dtype)) + slot_domain = iinfo.min, iinfo.max - 1 + # Here the slot_domain isn't specified by the user; we're setting it. + # The SOMA spec disallows negative soma_joinid. + if index_column_name == SOMA_JOINID: + slot_domain = (0, 2**63 - 2) + saturated_range = True + else: + # Core current domain is mutable but not shrinkable. If + # unspecified, it should be as small as possible since it can only + # be grown, not shrunk. + # + # Core current-domain semantics are (lo, hi) with both inclusive, + # with lo <= hi. This means smallest is (0, 0) which is shape 1, + # not 0. + slot_domain = 0, 0 elif np.issubdtype(dtype, NPFloating): - finfo = np.finfo(cast(NPFloating, dtype)) - slot_domain = finfo.min, finfo.max - saturated_range = True + if is_max_domain or not NEW_SHAPE_FEATURE_FLAG_ENABLED: + finfo = np.finfo(cast(NPFloating, dtype)) + slot_domain = finfo.min, finfo.max + saturated_range = True + else: + slot_domain = 0.0, 0.0 - # The `iinfo.min+1` is necessary as of tiledb core 2.15 / tiledb-py 0.21.1 since - # `iinfo.min` maps to `NaT` (not a time), resulting in - # TypeError: invalid domain extent, domain cannot be safely cast to dtype dtype('= ( + 2, + 27, + 0, + ): + dim_capacity, dim_extent = cls._dim_capacity_and_extent( + dim_name, + # The user specifies current domain -- this is the max domain + # which is taken from the max ranges for the dim datatype. + # We pass None here to detect those. + None, + TileDBCreateOptions.from_platform_config(platform_config), + ) + + if dim_shape == 0: + raise ValueError("DenseNDArray shape slots must be at least 1") + if dim_shape is None: + # Core current-domain semantics are (lo, hi) with both + # inclusive, with lo <= hi. This means smallest is (0, 0) + # which is shape 1, not 0. + dim_shape = 1 + + index_column_data[pa_field.name] = [ + 0, + dim_capacity - 1, + dim_extent, + 0, + dim_shape - 1, + ] + + else: + dim_capacity, dim_extent = cls._dim_capacity_and_extent( + dim_name, + dim_shape, + TileDBCreateOptions.from_platform_config(platform_config), + ) + index_column_data[pa_field.name] = [0, dim_capacity - 1, dim_extent] + index_column_schema.append(pa_field) index_column_info = pa.RecordBatch.from_pydict( index_column_data, schema=pa.schema(index_column_schema) @@ -189,10 +221,18 @@ def read( # all, in which case the best we can do is use the schema shape. handle: clib.SOMADenseNDArray = self._handle._handle - data_shape = handle.shape - ned = self.non_empty_domain() - if ned is not None: - data_shape = tuple(slot[1] + 1 for slot in ned) + ned = [] + for dim_name in handle.dimension_names: + dtype = np.dtype(self.schema.field(dim_name).type.to_pandas_dtype()) + slot = handle.non_empty_domain_slot_opt(dim_name, dtype) + if slot is None: + use_shape = True + break + ned.append(slot[1] + 1) + else: + use_shape = False + + data_shape = tuple(handle.shape if use_shape else ned) target_shape = dense_indices_to_shape(coords, data_shape, result_order) context = handle.context() @@ -301,9 +341,10 @@ def resize(self, newshape: Sequence[Union[int, None]]) -> None: """Supported for ``SparseNDArray``; scheduled for implementation for ``DenseNDArray`` in TileDB-SOMA 1.15 """ - # TODO: support current domain for dense arrays once we have core support. - # https://github.com/single-cell-data/TileDB-SOMA/issues/2955 - raise NotImplementedError() + if clib.embedded_version_triple() >= (2, 27, 0): + self._handle.resize(newshape) + else: + raise NotImplementedError("Not implemented for libtiledbsoma < 2.27.0") @classmethod def _dim_capacity_and_extent( diff --git a/apis/python/src/tiledbsoma/_flags.py b/apis/python/src/tiledbsoma/_flags.py index 2ce5a8f0be..f0aa8c881b 100644 --- a/apis/python/src/tiledbsoma/_flags.py +++ b/apis/python/src/tiledbsoma/_flags.py @@ -10,4 +10,4 @@ # removed once https://github.com/single-cell-data/TileDB-SOMA/issues/2407 is # complete. -NEW_SHAPE_FEATURE_FLAG_ENABLED = os.getenv("SOMA_PY_NEW_SHAPE") is not None +NEW_SHAPE_FEATURE_FLAG_ENABLED = os.getenv("SOMA_PY_NEW_SHAPE") != "false" diff --git a/apis/python/src/tiledbsoma/_geometry_dataframe.py b/apis/python/src/tiledbsoma/_geometry_dataframe.py index 89efd5796e..6d137ae6e3 100644 --- a/apis/python/src/tiledbsoma/_geometry_dataframe.py +++ b/apis/python/src/tiledbsoma/_geometry_dataframe.py @@ -45,7 +45,7 @@ def create( *, schema: pa.Schema, index_column_names: Sequence[str] = (SOMA_JOINID, SOMA_GEOMETRY), - axis_names: Sequence[str] = ("x", "y"), + coordinate_space: Union[Sequence[str], CoordinateSpace] = ("x", "y"), domain: Optional[Domain] = None, platform_config: Optional[options.PlatformConfig] = None, context: Optional[SOMATileDBContext] = None, @@ -72,9 +72,8 @@ def create( index columns (e.g., ``['cell_type', 'tissue_type']``). All named columns must exist in the schema, and at least one index column name is required. - axis_names: An ordered list of axis column names that correspond to the - names of the axes of the coordinate space the geometries are defined - on. + coordinate_space: Either the coordinate space or the axis names for the + coordinate space the point cloud is defined on. domain: An optional sequence of tuples specifying the domain of each index column. Two tuples must be provided for the ``soma_geometry`` column which store the width followed by the height. Each tuple should diff --git a/apis/python/src/tiledbsoma/_multiscale_image.py b/apis/python/src/tiledbsoma/_multiscale_image.py index 8003817185..f60418a638 100644 --- a/apis/python/src/tiledbsoma/_multiscale_image.py +++ b/apis/python/src/tiledbsoma/_multiscale_image.py @@ -15,7 +15,6 @@ import pyarrow as pa import somacore from somacore import ( - Axis, CoordinateSpace, CoordinateTransform, ScaleTransform, @@ -180,9 +179,8 @@ def create( datatype=type, ) - # mypy false positive https://github.com/python/mypy/issues/5313 - coord_space = CoordinateSpace( - tuple(Axis(name) for name in schema.get_coordinate_space_axis_names()) # type: ignore[misc] + coord_space = CoordinateSpace.from_axis_names( + schema.get_coordinate_space_axis_names() ) schema_str = schema.to_json() coord_space_str = coordinate_space_to_json(coord_space) @@ -422,9 +420,8 @@ def read_spatial_region( ) # Create or check output coordinates. if region_coord_space is None: - # mypy false positive https://github.com/python/mypy/issues/5313 - region_coord_space = CoordinateSpace( - tuple(Axis(axis_name) for axis_name in region_transform.input_axes) # type: ignore[misc] + region_coord_space = CoordinateSpace.from_axis_names( + region_transform.input_axes ) elif len(region_coord_space) != len(data_coord_space): raise ValueError( @@ -477,7 +474,7 @@ def axis_names(self) -> Tuple[str, ...]: Lifecycle: Experimental. """ - return self._schema.axis_names + return tuple(self._schema.axis_names) @property def coordinate_space(self) -> CoordinateSpace: @@ -514,16 +511,7 @@ def get_transform_from_level(self, level: Union[int, str]) -> ScaleTransform: Lifecycle: Experimental. """ - if isinstance(level, str): - level_props = None - for val in self._levels: - if val.name == level: - level_props = val - break - else: - raise KeyError("No level with name '{level}'") - else: - level_props = self._levels[level] + level_props = self.level_properties(level) ref_level_props = self._schema.reference_level_properties if ref_level_props.depth is None: return ScaleTransform( @@ -552,16 +540,7 @@ def get_transform_to_level(self, level: Union[int, str]) -> ScaleTransform: Lifecycle: Experimental. """ - if isinstance(level, str): - level_props = None - for val in self._levels: - if val.name == level: - level_props = val - break - else: - raise KeyError("No level with name '{level}'") - else: - level_props = self._levels[level] + level_props = self.level_properties(level) ref_level_props = self._schema.reference_level_properties if ref_level_props.depth is None: return ScaleTransform( @@ -607,10 +586,17 @@ def level_properties(self, level: Union[int, str]) -> ImageProperties: Lifecycle: Experimental. """ + # by name + # TODO could dyanmically create a dictionary whenever a name-based + # lookup is requested if isinstance(level, str): - raise NotImplementedError( - "Support for getting level properties by name is not yet implemented." - ) # TODO + for val in self._levels: + if val.name == level: + return val + else: + raise KeyError("No level with name '{level}'") + + # by index return self._levels[level] @property @@ -652,11 +638,8 @@ def __attrs_post_init__(self): # type: ignore[no-untyped-def] f"{self.reference_level_properties.image_type}. " ) - # mypy false positive https://github.com/python/mypy/issues/5313 def create_coordinate_space(self) -> CoordinateSpace: - return CoordinateSpace( - tuple(Axis(name) for name in self.get_coordinate_space_axis_names()) # type: ignore[misc] - ) + return CoordinateSpace.from_axis_names(self.get_coordinate_space_axis_names()) def get_coordinate_space_axis_names(self) -> Tuple[str, ...]: # TODO: Setting axes and the coordinate space is going to be updated diff --git a/apis/python/src/tiledbsoma/_point_cloud_dataframe.py b/apis/python/src/tiledbsoma/_point_cloud_dataframe.py index 50bf28d6ee..d3d4045708 100644 --- a/apis/python/src/tiledbsoma/_point_cloud_dataframe.py +++ b/apis/python/src/tiledbsoma/_point_cloud_dataframe.py @@ -11,7 +11,7 @@ import pyarrow as pa import somacore -from somacore import Axis, CoordinateSpace, CoordinateTransform, options +from somacore import CoordinateSpace, CoordinateTransform, options from typing_extensions import Self from . import _arrow_types, _util @@ -71,8 +71,8 @@ def create( uri: str, *, schema: pa.Schema, - index_column_names: Sequence[str] = (SOMA_JOINID, "x", "y"), - axis_names: Sequence[str] = ("x", "y"), + coordinate_space: Union[Sequence[str], CoordinateSpace] = ("x", "y"), + index_column_names: Optional[Sequence[str]] = None, domain: Optional[Domain] = None, platform_config: Optional[options.PlatformConfig] = None, context: Optional[SOMATileDBContext] = None, @@ -96,10 +96,9 @@ def create( index_column_names: A list of column names to use as user-defined index columns (e.g., ``['x', 'y']``). All named columns must exist in the schema, and at least one index column name is required. - Default is ``("soma_joinid", "x", "y")``. - axis_names: An ordered list of axis column names that correspond to the - names of axes of the the coordinate space the points are defined on. - Must be the name of index columns. Default is ``("x", "y")``. + Default is ``("soma_joinid", *coordinate_space)``. + coordinate_space: Either the coordinate space or the axis names for the + coordinate space the point cloud is defined on. domain: An optional sequence of tuples specifying the domain of each index column. Each tuple should be a pair consisting of the minimum and maximum values storable in the index column. If omitted entirely, @@ -116,7 +115,11 @@ def create( warnings.warn(SPATIAL_DISCLAIMER) axis_dtype: Optional[pa.DataType] = None - for column_name in axis_names: + if not isinstance(coordinate_space, CoordinateSpace): + coordinate_space = CoordinateSpace.from_axis_names(coordinate_space) + if index_column_names is None: + index_column_names = (SOMA_JOINID,) + coordinate_space.axis_names + for column_name in coordinate_space.axis_names: if column_name not in index_column_names: raise ValueError(f"Spatial column '{column_name}' must an index column") # Check axis column type is valid and all axis columns have the same type. @@ -134,10 +137,6 @@ def create( if column_dtype != axis_dtype: raise ValueError("All spatial axes must have the same datatype.") - # mypy false positive https://github.com/python/mypy/issues/5313 - coord_space = CoordinateSpace( - tuple(Axis(axis_name) for axis_name in axis_names) # type: ignore - ) context = _validate_soma_tiledb_context(context) schema = _canonicalize_schema(schema, index_column_names) @@ -183,10 +182,10 @@ def create( ) (slot_core_current_domain, saturated_cd) = _fill_out_slot_soma_domain( - slot_soma_domain, index_column_name, pa_field.type, dtype + slot_soma_domain, False, index_column_name, pa_field.type, dtype ) (slot_core_max_domain, saturated_md) = _fill_out_slot_soma_domain( - None, index_column_name, pa_field.type, dtype + None, True, index_column_name, pa_field.type, dtype ) extent = _find_extent_for_domain( @@ -247,7 +246,7 @@ def create( handle = cls._wrapper_type.open(uri, "w", context, tiledb_timestamp) handle.meta[SOMA_COORDINATE_SPACE_METADATA_KEY] = coordinate_space_to_json( - coord_space + coordinate_space ) return cls( handle, @@ -277,7 +276,7 @@ def __init__( # Data operations def __len__(self) -> int: - """Returns the number of rows in the point cound dataframe.""" + """Returns the number of rows in the point cloud dataframe.""" return self.count @property @@ -361,7 +360,7 @@ def read_spatial_region( value_filter: Optional[str] = None, platform_config: Optional[options.PlatformConfig] = None, ) -> somacore.SpatialRead[somacore.ReadIter[pa.Table]]: - """Reads data intersecting an user-defined region of space into a + """Reads data intersecting a user-defined region of space into a :class:`SpatialRead` with data in Arrow tables. Args: @@ -377,7 +376,7 @@ def read_spatial_region( region_coord_space: An optional coordinate space for the region being read. Defaults to ``None``, coordinate space will be inferred from transform. batch_size: The size of batched reads. - Defaults to `unbatched`. + Defaults to ``_UNBATCHED``. partitions: If present, specifies that this is part of a partitioned read, and which part of the data to include. result_order: the order to return results, specified as a @@ -406,9 +405,8 @@ def read_spatial_region( region_coord_space = self._coord_space else: if region_coord_space is None: - # mypy false positive https://github.com/python/mypy/issues/5313 - region_coord_space = CoordinateSpace( - tuple(Axis(axis_name) for axis_name in region_transform.input_axes) # type: ignore + region_coord_space = CoordinateSpace.from_axis_names( + region_transform.input_axes ) elif region_transform.input_axes != region_coord_space.axis_names: raise ValueError( @@ -427,7 +425,7 @@ def read_spatial_region( coords, data_region, inv_transform = process_spatial_df_region( region, region_transform, - dict(), # Move index value_filters into this dict to optimize queries + dict(), # Move index value_filters into this dict to optimize queries self._tiledb_dim_names(), self._coord_space.axis_names, self._handle.schema, diff --git a/apis/python/src/tiledbsoma/_scene.py b/apis/python/src/tiledbsoma/_scene.py index 33d70ded47..fe4c9ec0d6 100644 --- a/apis/python/src/tiledbsoma/_scene.py +++ b/apis/python/src/tiledbsoma/_scene.py @@ -6,13 +6,16 @@ Implementation of a SOMA Scene """ -from typing import Any, Optional, Sequence, Union +from typing import Any, List, Optional, Sequence, Tuple, Type, TypeVar, Union import somacore -from somacore import Axis, CoordinateSpace, CoordinateTransform, IdentityTransform +from somacore import ( + CoordinateSpace, + CoordinateTransform, +) from . import _funcs, _tdb_handles -from ._collection import Collection, CollectionBase +from ._collection import CollectionBase from ._constants import SOMA_COORDINATE_SPACE_METADATA_KEY from ._exception import SOMAError from ._geometry_dataframe import GeometryDataFrame @@ -26,6 +29,10 @@ transform_to_json, ) +_spatial_element = Union[GeometryDataFrame, MultiscaleImage, PointCloudDataFrame] + +_SE = TypeVar("_SE", bound=_spatial_element) + class Scene( # type: ignore[misc] # __eq__ false positive CollectionBase[AnySOMAObject], @@ -61,6 +68,87 @@ def __init__( else: self._coord_space = coordinate_space_from_json(coord_space) + def _open_subcollection( + self, subcollection: Union[str, Sequence[str]] + ) -> CollectionBase[AnySOMAObject]: + if len(subcollection) == 0: + raise ValueError("Invalid subcollection: value cannot be empty.") + if isinstance(subcollection, str): + subcollection = (subcollection,) + else: + subcollection = tuple(subcollection) + coll: CollectionBase[AnySOMAObject] = self + # Keep track of collection hierarchy for informative error reporting + parent_name: List[str] = [] + for name in subcollection: + try: + coll = coll[name] # type: ignore[assignment] + except KeyError as ke: + raise KeyError( + f"Unable to open collection '{name}' in {parent_name}." + ) from ke + parent_name.append(name) + return coll + + def _set_transform_to_element( + self, + kind: Type[_SE], + *, + key: str, + transform: CoordinateTransform, + subcollection: Union[str, Sequence[str]], + coordinate_space: Optional[CoordinateSpace], + ) -> _SE: + # Check the transform is compatible with the coordinate spaces of the scene + # and the new element coordinate space (if provided). + if self.coordinate_space is None: + raise SOMAError( + "The scene coordinate space must be set before setting a transform." + ) + if transform.input_axes != self.coordinate_space.axis_names: + raise ValueError( + f"The name of the transform input axes, {transform.input_axes}, do " + f"not match the name of the axes, {self.coordinate_space.axis_names}, " + f"in the scene coordinate space." + ) + if ( + coordinate_space is not None + and transform.output_axes != coordinate_space.axis_names + ): + raise ValueError( + f"The name of the transform output axes, {transform.output_axes}, do " + f"not match the name of the axes, {coordinate_space.axis_names}, ." + f" in the provided coordinate space." + ) + + # Check asset exists in the specified location. + coll = self._open_subcollection(subcollection) + try: + elem = coll[key] + except KeyError as ke: + raise KeyError(f"No element named '{key}' in '{subcollection}'.") from ke + if not isinstance(elem, kind): + raise TypeError( + f"'{key}' in '{subcollection}' is a {type(elem).__name__} not a {kind.__name__}." + ) + + # Either set the new coordinate space or check the axes of the current + # coordinate space the element is defined on. + if coordinate_space is None: + elem_axis_names: Tuple[str, ...] = elem.coordinate_space.axis_names # type: ignore[attr-defined] + if elem_axis_names != transform.output_axes: + raise ValueError( + f"The name of transform output axes, {transform.output_axes}, do " + f"not match the name of the axes in the multiscale image coordinate" + f" space, {elem_axis_names}." + ) + else: + elem.coordinate_space = coordinate_space # type: ignore[attr-defined] + + # Set the transform metadata and return the multisclae image. + coll.metadata[f"soma_scene_registry_{key}"] = transform_to_json(transform) + return elem + @property def coordinate_space(self) -> Optional[CoordinateSpace]: """Coordinate system for this scene. @@ -82,70 +170,142 @@ def coordinate_space(self, value: CoordinateSpace) -> None: @_funcs.forwards_kwargs_to( GeometryDataFrame.create, exclude=("context", "tiledb_timestamp") ) - def add_geometry_dataframe( + def add_new_geometry_dataframe( self, key: str, subcollection: Union[str, Sequence[str]], - transform: Optional[CoordinateTransform], *, - uri: str, + transform: Optional[CoordinateTransform], + uri: Optional[str] = None, **kwargs: Any, ) -> GeometryDataFrame: """Adds a ``GeometryDataFrame`` to the scene and sets a coordinate transform between the scene and the dataframe. - If the subcollection the geometry dataframe is inside of is more than one - layer deep, the input should be provided as a sequence of names. For example, - to set the transformation to a geometry dataframe named "transcripts" in - the "var/RNA" collection:: + If the subcollection the geometry dataframe will be created inside of is more + than one layer deep, the input should be provided as a sequence of names. For + example, to add a new geometry dataframe named "transcripts" in the "var/RNA" + collection:: - scene.add_geometry_dataframe( - 'cell_boundaries', subcollection=['var', 'RNA'], **kwargs + scene.add_new_geometry_dataframe( + 'transcripts', subcollection=['var', 'RNA'], **kwargs ) + See :meth:`add_new_collection` for details about child URIs. + Args: key: The name of the geometry dataframe. - transform: The coordinate transformation from the scene to the dataframe. subcollection: The name, or sequence of names, of the subcollection the dataframe is stored in. Defaults to ``'obsl'``. + transform: The coordinate transformation from the scene to the dataframe. + uri: If provided, overrides the default URI what would be used to create + this object. This may be aboslution or relative. + kwargs: Additional keyword arugments as specified in + :meth:`spatial.GeometryDataFrame.create`. Returns: The newly create ``GeometryDataFrame``, opened for writing. - Lifecycle: experimental + Lifecycle: + Experimental. """ raise NotImplementedError() @_funcs.forwards_kwargs_to( MultiscaleImage.create, exclude=("context", "tiledb_timestamp") ) - def add_multiscale_image( + def add_new_multiscale_image( self, key: str, subcollection: Union[str, Sequence[str]], - transform: Optional[CoordinateTransform], *, - uri: str, + transform: Optional[CoordinateTransform], + uri: Optional[str] = None, + axis_names: Sequence[str] = ("c", "y", "x"), + axis_types: Sequence[str] = ("channel", "height", "width"), **kwargs: Any, ) -> MultiscaleImage: """Adds a ``MultiscaleImage`` to the scene and sets a coordinate transform between the scene and the dataframe. - Parameters are as in :meth:`spatial.MultiscaleImage.create`. See :meth:`add_new_collection` for details about child URIs. Args: key: The name of the multiscale image. - transform: The coordinate transformation from the scene to the dataframe. subcollection: The name, or sequence of names, of the subcollection the dataframe is stored in. Defaults to ``'obsl'``. + transform: The coordinate transformation from the scene to the dataframe. + uri: If provided, overrides the default URI what would be used to create + this object. This may be aboslution or relative. + kwargs: Additional keyword arugments as specified in + :meth:`spatial.MultiscaleImage.create`. Returns: The newly create ``MultiscaleImage``, opened for writing. - Lifecycle: experimental + Lifecycle: + Experimental. """ - raise NotImplementedError() + if transform is not None: + # Get and check the scene coordinate space axis names. + if self.coordinate_space is None: + raise SOMAError( + "The scene coordinate space must be set before setting a transform." + ) + if transform.input_axes != self.coordinate_space.axis_names: + raise ValueError( + f"The name of the transform input axes, {transform.input_axes}, " + f"do not match the name of the axes, " + f"{self.coordinate_space.axis_names}, in the scene coordinate " + f"space." + ) + + # Get and check the multiscale image coordinata space axis names. + # Note: The input paremeters to the MultiscaleImage create method are being + # revisited. The following code will be improved after the create + # parameters stabilize. + ordered_axis_names: List[Optional[str]] = [None, None, None] + for ax_name, ax_type in zip(axis_names, axis_types): + # Validation unneed if the type falls through. Invalid types will be + # caught in the MultiscaleImage.create method. + if ax_type == "width": + ordered_axis_names[0] = ax_name + elif ax_type == "height": + ordered_axis_names[1] = ax_name + elif ax_type == "depth": + ordered_axis_names[2] = ax_name + ordered_axis_names = [ + axis_name for axis_name in ordered_axis_names if axis_name is not None + ] + if transform.output_axes != tuple(ordered_axis_names): + raise ValueError( + f"The name of the transform output axes, {transform.output_axes}, " + f"do not match the name of the axes, {tuple(ordered_axis_names)}, " + f"of the coordinate space the multiscale image is defined on." + ) + + # Open the subcollection and add the new multiscale image. + coll = self._open_subcollection(subcollection) + image = coll._add_new_element( + key, + MultiscaleImage, + lambda create_uri: MultiscaleImage.create( + create_uri, + context=self.context, + tiledb_timestamp=self.tiledb_timestamp_ms, + axis_names=axis_names, + axis_types=axis_types, + **kwargs, + ), + uri, + ) + + # Store the metadata for the transform. + if transform is not None: + coll.metadata[f"soma_scene_registry_{key}"] = transform_to_json(transform) + + # Return the multiscale image. + return image @_funcs.forwards_kwargs_to( PointCloudDataFrame.create, exclude=("context", "tiledb_timestamp") @@ -154,29 +314,92 @@ def add_new_point_cloud_dataframe( self, key: str, subcollection: Union[str, Sequence[str]], - transform: Optional[CoordinateTransform], *, + transform: Optional[CoordinateTransform], uri: Optional[str] = None, + coordinate_space: Union[Sequence[str], CoordinateSpace] = ("x", "y"), **kwargs: Any, ) -> PointCloudDataFrame: - """Adds a point cloud dataframe to the scene and sets a coordinate - transform between the scene and the dataframe. + """Adds a point cloud to the scene and sets a coordinate transform + between the scene and the dataframe. + + If the subcollection the point cloud dataframe will be added to is more than + one layer deep, the input should be provided as a sequence of names. For + example, to add a new point cloud dataframe named "transcripts" to the + "var/RNA" collection:: + + scene.add_new_point_cloud_dataframe( + 'transcripts', subcollection=['var', 'RNA'], **kwargs + ) + - Parameters are as in :meth:`spatial.PointCloudDataFrame.create`. See :meth:`add_new_collection` for details about child URIs. Args: - key: The name of the geometry dataframe. - transform: The coordinate transformation from the scene to the dataframe. + key: The name of the point cloud dataframe. subcollection: The name, or sequence of names, of the subcollection the dataframe is stored in. Defaults to ``'obsl'``. + transform: The coordinate transformation from the scene to the dataframe. + uri: If provided, overrides the default URI what would be used to create + this object. This may be aboslution or relative. + kwargs: Additional keyword arugments as specified in + :meth:`spatial.PointCloudDataFrame.create`. Returns: The newly created ``PointCloudDataFrame``, opened for writing. - Lifecycle: experimental + Lifecycle: + Experimental. """ - raise NotImplementedError() + # If the transform is set, check it is consistent with the coordinate spaces. + if transform is not None: + # Get Scene coordinate space and check the axis names. + if self.coordinate_space is None: + raise SOMAError( + "The scene coordinate space must be set before setting a transform." + ) + if transform.input_axes != self.coordinate_space.axis_names: + raise ValueError( + f"The name of the transform input axes, {transform.input_axes}, " + f"do not match the name of the axes, " + f"{self.coordinate_space.axis_names}, in the scene coordinate " + f"space." + ) + + # Get point cloud coordinate space and check + elem_axis_names = ( + coordinate_space.axis_names + if isinstance(coordinate_space, CoordinateSpace) + else tuple(coordinate_space) + ) + if transform.output_axes != elem_axis_names: + raise ValueError( + f"The name of the transform output axes, {transform.output_axes}, " + f"do not match the name of the axes, {elem_axis_names}, of the " + f"coordinate space the point cloud is defined on." + ) + + # Open the collection and add the new point cloud. + coll = self._open_subcollection(subcollection) + point_cloud = coll._add_new_element( + key, + PointCloudDataFrame, + lambda create_uri: PointCloudDataFrame.create( + create_uri, + context=self.context, + tiledb_timestamp=self.tiledb_timestamp_ms, + coordinate_space=coordinate_space, + **kwargs, + ), + uri, + ) + + # Store the metadata for the transform. + if transform is not None: + coll.metadata[f"soma_scene_registry_{key}"] = transform_to_json(transform) + + # Return the point cloud. + return point_cloud def set_transform_to_geometry_dataframe( self, @@ -242,56 +465,13 @@ def set_transform_to_multiscale_image( Lifecycle: experimental """ - if not isinstance(subcollection, str): - raise NotImplementedError() - - # Check the transform matches this - if self.coordinate_space is None: - raise SOMAError( - "The scene coordinate space must be set before registering an image." - ) - if transform.output_axes != self.coordinate_space.axis_names: - raise ValueError( - f"The name of the transform output axes, {transform.output_axes}, do " - f"not match the name of the axes in the scene coordinate space, " - f"{self.coordinate_space.axis_names}." - ) - - # Create the coordinate space if it does not exist. Otherwise, check it is - # compatible with the provide transform. - if coordinate_space is None: - if isinstance(transform, IdentityTransform): - coordinate_space = self.coordinate_space - else: - # mypy false positive https://github.com/python/mypy/issues/5313 - coordinate_space = CoordinateSpace( - tuple(Axis(name=axis_name) for axis_name in transform.input_axes) # type: ignore[misc] - ) - else: - if transform.input_axes != coordinate_space.axis_names: - raise ValueError( - f"The name of the transform input axes, {transform.input_axes}, do " - f"not match the name of the axes in the provided coordinate space, " - f"{coordinate_space.axis_names}." - ) - - # Check asset exists in the specified location. - try: - coll: Collection = self[subcollection] # type: ignore - except KeyError as ke: - raise KeyError(f"No collection '{subcollection}' in this scene.") from ke - try: - image: MultiscaleImage = coll[key] - except KeyError as ke: - raise KeyError( - f"No multiscale image named '{key}' in '{subcollection}'." - ) from ke - if not isinstance(image, MultiscaleImage): - raise TypeError(f"'{key}' in '{subcollection}' is not an MultiscaleImage.") - - image.coordinate_space = coordinate_space - coll.metadata[f"soma_scene_registry_{key}"] = transform_to_json(transform) - return image + return self._set_transform_to_element( + MultiscaleImage, + key=key, + transform=transform, + subcollection=subcollection, + coordinate_space=coordinate_space, + ) def set_transform_to_point_cloud_dataframe( self, @@ -327,48 +507,13 @@ def set_transform_to_point_cloud_dataframe( Lifecycle: experimental """ - if not isinstance(subcollection, str): - raise NotImplementedError() - if self.coordinate_space is None: - raise SOMAError( - "The scene coordinate space must be set before registering a point " - "cloud dataframe." - ) - # Create the coordinate space if it does not exist. Otherwise, check it is - # compatible with the provide transform. - if coordinate_space is None: - if isinstance(transform, IdentityTransform): - coordinate_space = self.coordinate_space - else: - # mypy false positive https://github.com/python/mypy/issues/5313 - coordinate_space = CoordinateSpace( - tuple(Axis(name=axis_name) for axis_name in transform.input_axes) # type: ignore[misc] - ) - else: - if transform.input_axes != coordinate_space.axis_names: - raise ValueError( - f"The name of the transform input axes, {transform.input_axes}, do " - f"not match the name of the axes in the provided coordinate space, " - f"{coordinate_space.axis_names}." - ) - - # Check asset exists in the specified location. - try: - coll: Collection = self[subcollection] # type: ignore - except KeyError as ke: - raise KeyError(f"No collection '{subcollection}' in this scene.") from ke - try: - point_cloud: PointCloudDataFrame = coll[key] - except KeyError as ke: - raise KeyError(f"No PointCloudDataFrame named '{key}' in '{coll}'.") from ke - if not isinstance(point_cloud, PointCloudDataFrame): - raise TypeError( - f"'{key}' in '{subcollection}' is not an PointCloudDataFrame." - ) - - point_cloud.coordinate_space = coordinate_space - coll.metadata[f"soma_scene_registry_{key}"] = transform_to_json(transform) - return point_cloud + return self._set_transform_to_element( + PointCloudDataFrame, + key=key, + transform=transform, + subcollection=subcollection, + coordinate_space=coordinate_space, + ) def get_transform_from_geometry_dataframe( self, key: str, *, subcollection: Union[str, Sequence[str]] = "obsl" @@ -386,7 +531,10 @@ def get_transform_from_geometry_dataframe( Lifecycle: experimental """ - raise NotImplementedError() + transform = self.get_transform_to_geometry_dataframe( + key, subcollection=subcollection + ) + return transform.inverse_transform() def get_transform_from_multiscale_image( self, @@ -411,7 +559,33 @@ def get_transform_from_multiscale_image( Lifecycle: experimental """ - raise NotImplementedError() + if level is None: + transform = self.get_transform_to_multiscale_image( + key, subcollection=subcollection + ) + return transform.inverse_transform() + coll = self._open_subcollection(subcollection) + try: + transform_json = coll.metadata[f"soma_scene_registry_{key}"] + except KeyError: + raise KeyError( + f"No coordinate space registry for '{key}' in collection " + f"'{subcollection}'" + ) + base_transform = transform_from_json(transform_json) + try: + image: MultiscaleImage = coll[key] # type: ignore[assignment] + except KeyError as ke: + raise KeyError( + f"No MultiscaleImage named '{key}' in '{subcollection}'." + ) from ke + if not isinstance(image, MultiscaleImage): + raise TypeError( + f"Item at '{key}' in '{subcollection}' has an unexpected type " + f"{type(image)!r}." + ) + level_transform = image.get_transform_from_level(level) + return base_transform.inverse_transform() @ level_transform def get_transform_from_point_cloud_dataframe( self, key: str, *, subcollection: str = "obsl" @@ -429,7 +603,10 @@ def get_transform_from_point_cloud_dataframe( Lifecycle: experimental """ - raise NotImplementedError() + transform = self.get_transform_to_point_cloud_dataframe( + key, subcollection=subcollection + ) + return transform.inverse_transform() def get_transform_to_geometry_dataframe( self, key: str, *, subcollection: Union[str, Sequence[str]] = "obsl" @@ -447,12 +624,7 @@ def get_transform_to_geometry_dataframe( Lifecycle: experimental """ - if not isinstance(subcollection, str): - raise NotImplementedError() - try: - coll: Collection = self[subcollection] # type: ignore - except KeyError as ke: - raise KeyError(f"No collection '{subcollection}' in this scene.") from ke + coll = self._open_subcollection(subcollection) try: transform_json = coll.metadata[f"soma_scene_registry_{key}"] except KeyError as ke: @@ -485,12 +657,7 @@ def get_transform_to_multiscale_image( Lifecycle: experimental """ - if not isinstance(subcollection, str): - raise NotImplementedError() - try: - coll: Collection = self[subcollection] # type: ignore - except KeyError as ke: - raise KeyError(f"No collection '{subcollection}' in this scene.") from ke + coll = self._open_subcollection(subcollection) try: transform_json = coll.metadata[f"soma_scene_registry_{key}"] except KeyError: @@ -502,14 +669,15 @@ def get_transform_to_multiscale_image( if level is None: return base_transform try: - image: MultiscaleImage = coll[key] + image: MultiscaleImage = coll[key] # type: ignore[assignment] except KeyError as ke: raise KeyError( f"No MultiscaleImage named '{key}' in '{subcollection}'." ) from ke - if isinstance(level, str): - raise NotImplementedError( - "Support for querying image level by name is not yet implemented." + if not isinstance(image, MultiscaleImage): + raise TypeError( + f"Item at '{key}' in '{subcollection}' has an unexpected type " + f"{type(image)!r}." ) level_transform = image.get_transform_to_level(level) return level_transform @ base_transform @@ -530,12 +698,7 @@ def get_transform_to_point_cloud_dataframe( Lifecycle: experimental """ - if not isinstance(subcollection, str): - raise NotImplementedError() - try: - coll: Collection = self[subcollection] # type: ignore - except KeyError as ke: - raise KeyError(f"No collection '{subcollection}' in this scene.") from ke + coll = self._open_subcollection(subcollection) try: transform_json = coll.metadata[f"soma_scene_registry_{key}"] except KeyError as ke: diff --git a/apis/python/src/tiledbsoma/_soma_array.py b/apis/python/src/tiledbsoma/_soma_array.py index 4f6c7ab3a2..5e022418f8 100644 --- a/apis/python/src/tiledbsoma/_soma_array.py +++ b/apis/python/src/tiledbsoma/_soma_array.py @@ -58,6 +58,40 @@ def schema(self) -> pa.Schema: """ return self._handle.schema + def config_options_from_schema(self) -> clib.PlatformConfig: + """Returns metadata about the array that is not encompassed within the + Arrow Schema, in the form of a PlatformConfig. + + Available attributes are: + * dataframe_dim_zstd_level: int + * sparse_nd_array_dim_zstd_level: int + * sparse_nd_array_dim_zstd_level: int + * write_X_chunked: bool + * goal_chunk_nnz: int + * remote_cap_nbytes: int + * capacity: int + * offsets_filters: str + * name (of filter): str + * compression_level: str + * validity_filters: str + * attrs: str + * name (of attribute): str + * filters: str + * name (of filter): str + * compression_level: str + * dims: str + * name (of dimension): str + * filters: str + * name (of filter): str + * compression_level: str + * tile: int + * allows_duplicates: bool + * tile_order: str + * cell_order: str + * consolidate_and_vacuum: bool + """ + return self._handle.config_options_from_schema() + def non_empty_domain(self) -> Tuple[Tuple[Any, Any], ...]: """ Retrieves the non-empty domain for each dimension, namely the smallest diff --git a/apis/python/src/tiledbsoma/_sparse_nd_array.py b/apis/python/src/tiledbsoma/_sparse_nd_array.py index c811d320aa..4422bb9743 100644 --- a/apis/python/src/tiledbsoma/_sparse_nd_array.py +++ b/apis/python/src/tiledbsoma/_sparse_nd_array.py @@ -42,7 +42,7 @@ TableReadIter, ) from ._tdb_handles import SparseNDArrayWrapper -from ._types import NTuple, OpenTimestamp +from ._types import NTuple, OpenTimestamp, StatusAndReason from .options._soma_tiledb_context import ( SOMATileDBContext, _validate_soma_tiledb_context, @@ -176,7 +176,10 @@ def create( if dim_shape == 0: raise ValueError("SparseNDArray shape slots must be at least 1") if dim_shape is None: - dim_shape = dim_capacity + # Core current-domain semantics are (lo, hi) with both + # inclusive, with lo <= hi. This means smallest is (0, 0) + # which is shape 1, not 0. + dim_shape = 1 index_column_data[pa_field.name] = [ 0, @@ -296,21 +299,35 @@ def read( return SparseNDArrayRead(sr, self, coords) - def resize(self, newshape: Sequence[Union[int, None]]) -> None: + def resize( + self, newshape: Sequence[Union[int, None]], check_only: bool = False + ) -> StatusAndReason: """Increases the shape of the array as specfied. Raises an error if the new shape is less than the current shape in any dimension. Raises an error if the new shape exceeds maxshape in any dimension. Raises an error if the array doesn't already have a shape: in that case please call - tiledbsoma_upgrade_shape. + tiledbsoma_upgrade_shape. If ``check_only`` is ``True``, returns + whether the operation would succeed if attempted, and a reason why it + would not. """ - self._handle.resize(newshape) + if check_only: + return self._handle.tiledbsoma_can_resize(newshape) + else: + self._handle.resize(newshape) + return (True, "") - def tiledbsoma_upgrade_shape(self, newshape: Sequence[Union[int, None]]) -> None: + def tiledbsoma_upgrade_shape( + self, newshape: Sequence[Union[int, None]], check_only: bool = False + ) -> StatusAndReason: """Allows the array to have a resizeable shape as described in the TileDB-SOMA 1.15 release notes. Raises an error if the new shape exceeds maxshape in any dimension. Raises an error if the array already has a shape. """ - self._handle.tiledbsoma_upgrade_shape(newshape) + if check_only: + return self._handle.tiledbsoma_can_upgrade_shape(newshape) + else: + self._handle.tiledbsoma_upgrade_shape(newshape) + return (True, "") def write( self, diff --git a/apis/python/src/tiledbsoma/_tdb_handles.py b/apis/python/src/tiledbsoma/_tdb_handles.py index a61159df50..80bda19881 100644 --- a/apis/python/src/tiledbsoma/_tdb_handles.py +++ b/apis/python/src/tiledbsoma/_tdb_handles.py @@ -35,9 +35,12 @@ from . import pytiledbsoma as clib from ._exception import DoesNotExistError, SOMAError, is_does_not_exist_error -from ._types import METADATA_TYPES, Metadatum, OpenTimestamp +from ._types import METADATA_TYPES, Metadatum, OpenTimestamp, StatusAndReason from .options._soma_tiledb_context import SOMATileDBContext +AxisDomain = Union[None, Tuple[Any, Any], List[Any]] +Domain = Sequence[AxisDomain] + RawHandle = Union[ clib.SOMAArray, clib.SOMADataFrame, @@ -376,6 +379,9 @@ def _do_initial_reads(self, reader: RawHandle) -> None: def schema(self) -> pa.Schema: return self._handle.schema + def config_options_from_schema(self) -> clib.PlatformConfig: + return self._handle.config_options_from_schema() + @property def meta(self) -> "MetadataWrapper": return self.metadata @@ -459,11 +465,65 @@ def resize(self, newshape: Sequence[Union[int, None]]) -> None: """Not implemented for DataFrame.""" raise NotImplementedError + def tiledbsoma_can_resize( + self, newshape: Sequence[Union[int, None]] + ) -> StatusAndReason: + """Not implemented for DataFrame.""" + raise NotImplementedError + def tiledbsoma_upgrade_shape(self, newshape: Sequence[Union[int, None]]) -> None: """Not implemented for DataFrame.""" raise NotImplementedError - def resize_soma_joinid_shape(self, newshape: int) -> None: + def tiledbsoma_can_upgrade_shape( + self, newshape: Sequence[Union[int, None]] + ) -> StatusAndReason: + """Not implemented for DataFrame.""" + raise NotImplementedError + + def resize_soma_joinid_shape( + self, newshape: int, function_name_for_messages: str + ) -> None: + """Only implemented for DataFrame.""" + raise NotImplementedError + + def can_resize_soma_joinid_shape( + self, newshape: int, function_name_for_messages: str + ) -> StatusAndReason: + """Only implemented for DataFrame.""" + raise NotImplementedError + + def upgrade_soma_joinid_shape( + self, newshape: int, function_name_for_messages: str + ) -> None: + """Only implemented for DataFrame.""" + raise NotImplementedError + + def can_upgrade_soma_joinid_shape( + self, newshape: int, function_name_for_messages: str + ) -> StatusAndReason: + """Only implemented for DataFrame.""" + raise NotImplementedError + + def upgrade_domain( + self, newdomain: Domain, function_name_for_messages: str + ) -> None: + """Only implemented for DataFrame.""" + raise NotImplementedError + + def can_upgrade_domain( + self, newdomain: Domain, function_name_for_messages: str + ) -> StatusAndReason: + """Only implemented for DataFrame.""" + raise NotImplementedError + + def change_domain(self, newdomain: Domain, function_name_for_messages: str) -> None: + """Only implemented for DataFrame.""" + raise NotImplementedError + + def can_change_domain( + self, newdomain: Domain, function_name_for_messages: str + ) -> StatusAndReason: """Only implemented for DataFrame.""" raise NotImplementedError @@ -482,48 +542,80 @@ def write(self, values: pa.RecordBatch) -> None: @property def maybe_soma_joinid_shape(self) -> Optional[int]: - """Return the shape slot for the soma_joinid dim, if the array has one. - This is an important test-point and dev-internal access-point, - in particular, for the tiledbsoma-io experiment-level resizer. - - Lifecycle: - Maturing. - """ + """Wrapper-class internals""" return cast(Optional[int], self._handle.maybe_soma_joinid_shape) @property def maybe_soma_joinid_maxshape(self) -> Optional[int]: - """Return the maxshape slot for the soma_joinid dim, if the array has one. - This is an important test-point and dev-internal access-point, - in particular, for the tiledbsoma-io experiment-level resizer. - - Lifecycle: - Maturing. - """ + """Wrapper-class internals""" return cast(Optional[int], self._handle.maybe_soma_joinid_maxshape) @property def tiledbsoma_has_upgraded_domain(self) -> bool: - """Returns true if the array has the upgraded resizeable domain feature - from TileDB-SOMA 1.15: the array was created with this support, or it has - had ``.tiledbsoma_upgrade_domain`` applied to it. - - Lifecycle: - Maturing. - """ + """Wrapper-class internals""" return cast(bool, self._handle.tiledbsoma_has_upgraded_domain) - def resize_soma_joinid_shape(self, newshape: int) -> None: - """Increases the shape of the dataframe on the ``soma_joinid`` index - column, if it indeed is an index column, leaving all other index columns - as-is. If the ``soma_joinid`` is not an index column, no change is made. - This is a special case of ``upgrade_domain`` (WIP for 1.15), but simpler - to keystroke, and handles the most common case for dataframe domain - expansion. Raises an error if the dataframe doesn't already have a - domain: in that case please call ``tiledbsoma_upgrade_domain`` (WIP for - 1.15). - """ - self._handle.resize_soma_joinid_shape(newshape) + def resize_soma_joinid_shape( + self, newshape: int, function_name_for_messages: str + ) -> None: + """Wrapper-class internals""" + self._handle.resize_soma_joinid_shape(newshape, function_name_for_messages) + + def can_resize_soma_joinid_shape( + self, newshape: int, function_name_for_messages: str + ) -> StatusAndReason: + """Wrapper-class internals""" + return cast( + StatusAndReason, + self._handle.can_resize_soma_joinid_shape( + newshape, function_name_for_messages + ), + ) + + def upgrade_soma_joinid_shape( + self, newshape: int, function_name_for_messages: str + ) -> None: + """Wrapper-class internals""" + self._handle.upgrade_soma_joinid_shape(newshape, function_name_for_messages) + + def can_upgrade_soma_joinid_shape( + self, newshape: int, function_name_for_messages: str + ) -> StatusAndReason: + """Wrapper-class internals""" + return cast( + StatusAndReason, + self._handle.can_upgrade_soma_joinid_shape( + newshape, function_name_for_messages + ), + ) + + def upgrade_domain( + self, newdomain: Domain, function_name_for_messages: str + ) -> None: + """Wrapper-class internals""" + self._handle.upgrade_domain(newdomain, function_name_for_messages) + + def can_upgrade_domain( + self, newdomain: Domain, function_name_for_messages: str + ) -> StatusAndReason: + """Wrapper-class internals""" + return cast( + StatusAndReason, + self._handle.can_upgrade_domain(newdomain, function_name_for_messages), + ) + + def change_domain(self, newdomain: Domain, function_name_for_messages: str) -> None: + """Wrapper-class internals""" + self._handle.change_domain(newdomain, function_name_for_messages) + + def can_change_domain( + self, newdomain: Domain, function_name_for_messages: str + ) -> StatusAndReason: + """Wrapper-class internals""" + return cast( + StatusAndReason, + self._handle.can_change_domain(newdomain, function_name_for_messages), + ) class PointCloudDataFrameWrapper(SOMAArrayWrapper[clib.SOMAPointCloudDataFrame]): @@ -546,22 +638,24 @@ class DenseNDArrayWrapper(SOMAArrayWrapper[clib.SOMADenseNDArray]): @property def tiledbsoma_has_upgraded_shape(self) -> bool: - """Returns true if the array has the upgraded resizeable shape feature - from TileDB-SOMA 1.15: the array was created with this support, or it has - had ``.tiledbsoma_upgrade_shape`` applied to it. - - Lifecycle: - Maturing. - """ + """Wrapper-class internals""" return cast(bool, self._handle.tiledbsoma_has_upgraded_shape) def resize(self, newshape: Sequence[Union[int, None]]) -> None: - """Supported for ``SparseNDArray``; scheduled for implementation for - ``DenseNDArray`` in TileDB-SOMA 1.15 - """ - # TODO: support current domain for dense arrays once we have core support. - # https://github.com/single-cell-data/TileDB-SOMA/issues/2955 - raise NotImplementedError() + """Wrapper-class internals""" + if clib.embedded_version_triple() >= (2, 27, 0): + self._handle.resize(newshape) + else: + raise NotImplementedError("Not implemented for libtiledbsoma < 2.27.0") + + def tiledbsoma_can_resize( + self, newshape: Sequence[Union[int, None]] + ) -> StatusAndReason: + """Wrapper-class internals""" + if clib.embedded_version_triple() >= (2, 27, 0): + return cast(StatusAndReason, self._handle.tiledbsoma_can_resize(newshape)) + else: + raise NotImplementedError("Not implemented for libtiledbsoma < 2.27.0") class SparseNDArrayWrapper(SOMAArrayWrapper[clib.SOMASparseNDArray]): @@ -575,31 +669,31 @@ def nnz(self) -> int: @property def tiledbsoma_has_upgraded_shape(self) -> bool: - """Returns true if the array has the upgraded resizeable shape feature - from TileDB-SOMA 1.15: the array was created with this support, or it has - had ``.tiledbsoma_upgrade_shape`` applied to it. - - Lifecycle: - Maturing. - """ + """Wrapper-class internals""" return cast(bool, self._handle.tiledbsoma_has_upgraded_shape) def resize(self, newshape: Sequence[Union[int, None]]) -> None: - """Increases the shape of the array as specfied. Raises an error if the new - shape is less than the current shape in any dimension. Raises an error if - the new shape exceeds maxshape in any dimension. Raises an error if the - array doesn't already have a shape: in that case please call - tiledbsoma_upgrade_shape. - """ + """Wrapper-class internals""" self._handle.resize(newshape) + def tiledbsoma_can_resize( + self, newshape: Sequence[Union[int, None]] + ) -> StatusAndReason: + """Wrapper-class internals""" + return cast(StatusAndReason, self._handle.can_resize(newshape)) + def tiledbsoma_upgrade_shape(self, newshape: Sequence[Union[int, None]]) -> None: - """Allows the array to have a resizeable shape as described in the TileDB-SOMA - 1.15 release notes. Raises an error if the new shape exceeds maxshape in - any dimension. Raises an error if the array already has a shape. - """ + """Wrapper-class internals""" self._handle.tiledbsoma_upgrade_shape(newshape) + def tiledbsoma_can_upgrade_shape( + self, newshape: Sequence[Union[int, None]] + ) -> StatusAndReason: + """Wrapper-class internals""" + return cast( + StatusAndReason, self._handle.tiledbsoma_can_upgrade_shape(newshape) + ) + class _DictMod(enum.Enum): """State machine to keep track of modifications to a dictionary. diff --git a/apis/python/src/tiledbsoma/_types.py b/apis/python/src/tiledbsoma/_types.py index 5dc742c252..4033c0d6fd 100644 --- a/apis/python/src/tiledbsoma/_types.py +++ b/apis/python/src/tiledbsoma/_types.py @@ -78,3 +78,7 @@ Metadatum = Union[bytes, float, int, str] METADATA_TYPES = (bytes, float, int, str) + +StatusAndReason = Tuple[bool, str] +"""Information for whether an upgrade-shape or resize would succeed +if attempted, along with a reason why not.""" diff --git a/apis/python/src/tiledbsoma/common.cc b/apis/python/src/tiledbsoma/common.cc index 50219f2703..6e6c0dc1c4 100644 --- a/apis/python/src/tiledbsoma/common.cc +++ b/apis/python/src/tiledbsoma/common.cc @@ -209,7 +209,10 @@ py::dict meta(std::map metadata_mapping) { } void set_metadata( - SOMAObject& soma_object, const std::string& key, py::array value) { + SOMAObject& soma_object, + const std::string& key, + py::array value, + bool force) { tiledb_datatype_t value_type = np_to_tdb_dtype(value.dtype()); // For https://github.com/single-cell-data/TileDB-SOMA/pull/2900: @@ -228,7 +231,12 @@ void set_metadata( auto value_num = is_tdb_str(value_type) ? value.nbytes() : value.size(); soma_object.set_metadata( - key, value_type, value_num, value_num > 0 ? value.data() : nullptr); + key, + value_type, + value_num, + value_num > 0 ? value.data() : nullptr, + force); // The force flag is intended to only be toggled for testing in + // fault-injection scenarios } } // namespace tiledbsoma diff --git a/apis/python/src/tiledbsoma/common.h b/apis/python/src/tiledbsoma/common.h index e4b38e692c..8095c5a74e 100644 --- a/apis/python/src/tiledbsoma/common.h +++ b/apis/python/src/tiledbsoma/common.h @@ -28,7 +28,10 @@ std::optional to_table( py::dict meta(std::map metadata_mapping); void set_metadata( - SOMAObject& soma_object, const std::string& key, py::array value); + SOMAObject& soma_object, + const std::string& key, + py::array value, + bool force = false); class PyQueryCondition { private: diff --git a/apis/python/src/tiledbsoma/experimental/ingest.py b/apis/python/src/tiledbsoma/experimental/ingest.py index 8d319180ae..d1cf9e9017 100644 --- a/apis/python/src/tiledbsoma/experimental/ingest.py +++ b/apis/python/src/tiledbsoma/experimental/ingest.py @@ -1,4 +1,5 @@ -# Copyright (c) 2024 TileDB, Inc +# Copyright (c) 2024 The Chan Zuckerberg Initiative Foundation +# Copyright (c) 2024 TileDB, Inc. # # Licensed under the MIT License. @@ -6,8 +7,6 @@ This module contains experimental methods to generate Spatial SOMA artifacts start from other formats. - -Do NOT merge into main. """ import json @@ -282,6 +281,7 @@ def from_visium( X_layer_name: str = "data", raw_X_layer_name: str = "data", image_name: str = "tissue", + image_channel_first: bool = True, ingest_mode: IngestMode = "write", use_relative_uri: Optional[bool] = None, X_kind: Union[Type[SparseNDArray], Type[DenseNDArray]] = SparseNDArray, @@ -332,6 +332,9 @@ def from_visium( image_name: SOMA multiscale image name for the multiscale image of the Space Ranger output images. + image_channel_first: If ``True``, the image is ingested in channel-first format. + Otherwise, it is ingested into channel-last format. Defaults to ``True``. + ingest_mode: The ingestion type to perform: - ``write``: Writes all data, creating new layers if the SOMA already exists. @@ -483,11 +486,14 @@ def from_visium( exp.obs.read(column_names=["soma_joinid", "obs_id"]).concat().to_pandas() ) if write_obs_spatial_presence or write_var_spatial_presence: - x_layer = exp.ms[measurement_name].X[X_layer_name].read().tables().concat() + x_layer = exp.ms[measurement_name].X[X_layer_name] + (len_obs_id, len_var_id) = x_layer.shape + x_layer_data = x_layer.read().tables().concat() if write_obs_spatial_presence: - obs_id = pacomp.unique(x_layer["soma_dim_0"]) + obs_id = pacomp.unique(x_layer_data["soma_dim_0"]) + if write_var_spatial_presence: - var_id = pacomp.unique(x_layer["soma_dim_1"]) + var_id = pacomp.unique(x_layer_data["soma_dim_1"]) # Add spatial information to the experiment. with Experiment.open(experiment_uri, mode="w", context=context) as exp: @@ -515,6 +521,7 @@ def from_visium( with _create_visium_tissue_images( tissue_uri, image_paths, + image_channel_first=image_channel_first, use_relative_uri=use_relative_uri, **ingest_ctx, ) as tissue_image: @@ -587,7 +594,7 @@ def from_visium( if write_obs_spatial_presence: obs_spatial_presence_uri = _util.uri_joinpath(uri, "obs_spatial_presence") obs_spatial_presence = _write_scene_presence_dataframe( - obs_id, scene_name, obs_spatial_presence_uri, **ingest_ctx + obs_id, len_obs_id, scene_name, obs_spatial_presence_uri, **ingest_ctx ) _maybe_set( exp, @@ -601,7 +608,7 @@ def from_visium( "var_spatial_presence", ) var_spatial_presence = _write_scene_presence_dataframe( - var_id, scene_name, var_spatial_presence_uri, **ingest_ctx + var_id, len_var_id, scene_name, var_spatial_presence_uri, **ingest_ctx ) meas = exp.ms[measurement_name] _maybe_set( @@ -615,6 +622,7 @@ def from_visium( def _write_scene_presence_dataframe( joinids: pa.array, + max_joinid_len: int, scene_id: str, df_uri: str, *, @@ -635,6 +643,7 @@ def _write_scene_presence_dataframe( ("data", pa.bool_()), ] ), + domain=((0, max_joinid_len - 1), ("", "")), index_column_names=("soma_joinid", "scene_id"), platform_config=platform_config, context=context, @@ -704,6 +713,8 @@ def _write_visium_spots( df = pd.merge(obs_df, df, how="inner", on=id_column_name) df.drop(id_column_name, axis=1, inplace=True) + domain = ((df["x"].min(), df["x"].max()), (df["y"].min(), df["y"].max())) + arrow_table = df_to_arrow(df) with warnings.catch_warnings(): @@ -711,6 +722,8 @@ def _write_visium_spots( soma_point_cloud = PointCloudDataFrame.create( df_uri, schema=arrow_table.schema, + index_column_names=("x", "y"), + domain=domain, platform_config=platform_config, context=context, ) @@ -765,6 +778,7 @@ def _create_visium_tissue_images( uri: str, image_paths: List[Tuple[str, Path, Optional[float]]], *, + image_channel_first: bool, additional_metadata: "AdditionalMetadata" = None, platform_config: Optional["PlatformConfig"] = None, context: Optional["SOMATileDBContext"] = None, @@ -778,8 +792,15 @@ def _create_visium_tissue_images( # Open the first image to get the base size. with Image.open(image_paths[0][1]) as im: im_data_numpy = np.array(im) - ref_shape: Tuple[int, ...] = im_data_numpy.shape - im_data = pa.Tensor.from_numpy(im_data_numpy) + + if image_channel_first: + axis_names = ("c", "y", "x") + axis_types = ("channel", "height", "width") + im_data_numpy = np.moveaxis(im_data_numpy, -1, 0) + else: + axis_names = ("y", "x", "c") + axis_types = ("height", "width", "channel") + ref_shape: Tuple[int, ...] = im_data_numpy.shape # Create the multiscale image. with warnings.catch_warnings(): @@ -788,8 +809,8 @@ def _create_visium_tissue_images( uri, type=pa.uint8(), reference_level_shape=ref_shape, - axis_names=("y", "x", "c"), - axis_types=("height", "width", "channel"), + axis_names=axis_names, + axis_types=axis_types, context=context, ) @@ -798,6 +819,7 @@ def _create_visium_tissue_images( # Add and write the first level. im_array = image_pyramid.add_new_level(image_paths[0][0], shape=ref_shape) + im_data = pa.Tensor.from_numpy(im_data_numpy) im_array.write( (slice(None), slice(None), slice(None)), im_data, @@ -808,7 +830,10 @@ def _create_visium_tissue_images( # Add the remaining levels. for name, image_path, _ in image_paths[1:]: with Image.open(image_path) as im: - im_data = pa.Tensor.from_numpy(np.array(im)) + im_data_numpy = np.array(im) + if image_channel_first: + im_data_numpy = np.moveaxis(im_data_numpy, -1, 0) + im_data = pa.Tensor.from_numpy(im_data_numpy) im_array = image_pyramid.add_new_level(name, shape=im_data.shape) im_array.write( (slice(None), slice(None), slice(None)), diff --git a/apis/python/src/tiledbsoma/io/__init__.py b/apis/python/src/tiledbsoma/io/__init__.py index f5f5aadfb1..4629c0f89d 100644 --- a/apis/python/src/tiledbsoma/io/__init__.py +++ b/apis/python/src/tiledbsoma/io/__init__.py @@ -20,6 +20,11 @@ to_anndata, to_h5ad, ) +from .shaping import ( + resize_experiment, + show_experiment_shapes, + upgrade_experiment_shapes, +) __all__ = ( "add_matrix_to_collection", @@ -37,5 +42,8 @@ "update_matrix", "update_obs", "update_var", + "upgrade_experiment_shapes", + "show_experiment_shapes", + "resize_experiment", "ExperimentAmbientLabelMapping", ) diff --git a/apis/python/src/tiledbsoma/io/_registration/ambient_label_mappings.py b/apis/python/src/tiledbsoma/io/_registration/ambient_label_mappings.py index b391ddbc74..50a77becd5 100644 --- a/apis/python/src/tiledbsoma/io/_registration/ambient_label_mappings.py +++ b/apis/python/src/tiledbsoma/io/_registration/ambient_label_mappings.py @@ -80,6 +80,12 @@ def from_isolated_dataframe( next_soma_joinid += 1 return cls(data=data, field_name=index_field_name) + def get_shape(self) -> int: + if len(self.data.values()) == 0: + return 0 + else: + return 1 + max(self.data.values()) + def to_json(self) -> str: return json.dumps(self, default=attrs.asdict, sort_keys=True, indent=4) @@ -189,8 +195,7 @@ def from_isolated_h5ad( experiment, not in append mode, but allowing us to still have the bulk of the ingestor code to be non-duplicated between non-append mode and append mode. """ - tiledb_ctx = None if context is None else context.tiledb_ctx - with read_h5ad(h5ad_file_name, mode="r", ctx=tiledb_ctx) as adata: + with read_h5ad(h5ad_file_name, mode="r", ctx=context) as adata: return cls.from_isolated_anndata( adata, measurement_name=measurement_name, @@ -354,7 +359,7 @@ def _acquire_experiment_mappings( if experiment_uri is not None: if not tiledbsoma.Experiment.exists(experiment_uri, context=context): - raise ValueError("cannot find experiment at URI {experiment_uri}") + raise ValueError(f"cannot find experiment at URI {experiment_uri}") # Pre-check with tiledbsoma.Experiment.open(experiment_uri, context=context) as exp: @@ -434,8 +439,7 @@ def from_h5ad_append_on_experiment( """Extends registration data to one more H5AD input file.""" tiledbsoma.logging.logger.info(f"Registration: registering {h5ad_file_name}.") - tiledb_ctx = None if context is None else context.tiledb_ctx - with read_h5ad(h5ad_file_name, mode="r", ctx=tiledb_ctx) as adata: + with read_h5ad(h5ad_file_name, mode="r", ctx=context) as adata: return cls.from_anndata_append_on_experiment( adata, previous, @@ -488,6 +492,21 @@ def __str__(self) -> str: lines.append(f"{k}/var:{len(v.data)}") return "\n".join(lines) + def get_obs_shape(self) -> int: + """Reports the new obs shape which the experiment will need to be + resized to in order to accommodate the data contained within the + registration.""" + return self.obs_axis.get_shape() + + def get_var_shapes(self) -> Dict[str, int]: + """Reports the new var shapes, one per measurement, which the experiment + will need to be resized to in order to accommodate the data contained + within the registration.""" + retval: Dict[str, int] = {} + for key, axis in self.var_axes.items(): + retval[key] = axis.get_shape() + return retval + def to_json(self) -> str: return json.dumps(self, default=attrs.asdict, sort_keys=True, indent=4) diff --git a/apis/python/src/tiledbsoma/io/_registration/id_mappings.py b/apis/python/src/tiledbsoma/io/_registration/id_mappings.py index ee6027ce1e..eed5f634e6 100644 --- a/apis/python/src/tiledbsoma/io/_registration/id_mappings.py +++ b/apis/python/src/tiledbsoma/io/_registration/id_mappings.py @@ -28,6 +28,12 @@ def is_identity(self) -> bool: return False return True + def get_shape(self) -> int: + if len(self.data) == 0: + return 0 + else: + return 1 + max(self.data) + @classmethod def identity(cls, n: int) -> Self: """This maps 0-up input-file offsets to 0-up soma_joinid values. This is diff --git a/apis/python/src/tiledbsoma/io/_util.py b/apis/python/src/tiledbsoma/io/_util.py index 3376b3be81..e69c97a673 100644 --- a/apis/python/src/tiledbsoma/io/_util.py +++ b/apis/python/src/tiledbsoma/io/_util.py @@ -16,10 +16,10 @@ import pyarrow as pa from anndata._core import file_backing -import tiledb - +from .. import pytiledbsoma as clib from .._exception import SOMAError from .._types import Path +from ..options import SOMATileDBContext _pa_type_to_str_fmt = { pa.string(): "U", @@ -42,12 +42,14 @@ @contextmanager def read_h5ad( - input_path: Path, *, mode: str = "r", ctx: Optional[tiledb.Ctx] = None + input_path: Path, *, mode: str = "r", ctx: Optional[SOMATileDBContext] = None ) -> Iterator[ad.AnnData]: """ This lets us ingest H5AD with "r" (backed mode) from S3 URIs. """ - input_handle = tiledb.VFS(ctx=ctx).open(input_path) + ctx = ctx or SOMATileDBContext() + vfs = clib.SOMAVFS(ctx.native_context) + input_handle = clib.SOMAVFSFilebuf(vfs).open(str(input_path)) try: with _hack_patch_anndata(): anndata = ad.read_h5ad(_FSPathWrapper(input_handle, input_path), mode) diff --git a/apis/python/src/tiledbsoma/io/conversions.py b/apis/python/src/tiledbsoma/io/conversions.py index cc902e80c8..998763d9d6 100644 --- a/apis/python/src/tiledbsoma/io/conversions.py +++ b/apis/python/src/tiledbsoma/io/conversions.py @@ -13,6 +13,7 @@ import numpy as np import pandas as pd import pandas._typing as pdt +import pyarrow as pa import scipy.sparse as sp from .._funcs import typeguard_ignore @@ -77,9 +78,10 @@ def to_tiledb_supported_array_type(name: str, x: _MT) -> _MT: return x -def csr_from_tiledb_df(df: pd.DataFrame, num_rows: int, num_cols: int) -> sp.csr_matrix: - """Given a tiledb dataframe, return a ``scipy.sparse.csr_matrx``.""" - return sp.csr_matrix( - (df["soma_data"], (df["soma_dim_0"], df["soma_dim_1"])), - shape=(num_rows, num_cols), - ) +def csr_from_coo_table(tbl: pa.Table, num_rows: int, num_cols: int) -> sp.csr_matrix: + """Given an Arrow Table containing COO data, return a ``scipy.sparse.csr_matrx``.""" + # to_pandas is preferred as it is more performant (and releases GIL) + df = tbl.to_pandas() + dij = (df["soma_data"], (df["soma_dim_0"], df["soma_dim_1"])) + s = sp.csr_matrix(dij, shape=(num_rows, num_cols)) + return s diff --git a/apis/python/src/tiledbsoma/io/ingest.py b/apis/python/src/tiledbsoma/io/ingest.py index caccd0a699..81fb1d80f5 100644 --- a/apis/python/src/tiledbsoma/io/ingest.py +++ b/apis/python/src/tiledbsoma/io/ingest.py @@ -64,6 +64,7 @@ NotCreateableError, SOMAError, ) +from .._flags import NEW_SHAPE_FEATURE_FLAG_ENABLED from .._soma_array import SOMAArray from .._soma_object import AnySOMAObject, SOMAObject from .._tdb_handles import RawHandle @@ -358,7 +359,7 @@ def from_h5ad( logging.log_io(None, f"START READING {input_path}") - with read_h5ad(input_path, mode="r", ctx=context.tiledb_ctx) as anndata: + with read_h5ad(input_path, mode="r", ctx=context) as anndata: logging.log_io(None, _util.format_elapsed(s, f"FINISH READING {input_path}")) uri = from_anndata( @@ -1164,6 +1165,7 @@ def _write_dataframe( df, df_uri, id_column_name, + shape=axis_mapping.get_shape(), ingestion_params=ingestion_params, additional_metadata=additional_metadata, original_index_metadata=original_index_metadata, @@ -1177,6 +1179,7 @@ def _write_dataframe_impl( df_uri: str, id_column_name: Optional[str], *, + shape: int, ingestion_params: IngestionParams, additional_metadata: AdditionalMetadata = None, original_index_metadata: OriginalIndexMetadata = None, @@ -1203,9 +1206,15 @@ def _write_dataframe_impl( arrow_table = _extract_new_values_for_append(df_uri, arrow_table, context) try: + # Note: tiledbsoma.io creates dataframes with soma_joinid being the one + # and only index column. + domain = None + if NEW_SHAPE_FEATURE_FLAG_ENABLED: + domain = ((0, shape - 1),) soma_df = DataFrame.create( df_uri, schema=arrow_table.schema, + domain=domain, platform_config=platform_config, context=context, ) @@ -1304,8 +1313,19 @@ def _create_from_matrix( logging.log_io(None, f"START WRITING {uri}") try: + shape: Sequence[Union[int, None]] = () # A SparseNDArray must be appendable in soma.io. - shape = [None for _ in matrix.shape] if cls.is_sparse else matrix.shape + if NEW_SHAPE_FEATURE_FLAG_ENABLED: + # Instead of + # shape = tuple(int(e) for e in matrix.shape) + # we consult the registration mapping. This is important + # in the case when multiple H5ADs/AnnDatas are being + # ingested to an experiment which doesn't pre-exist. + shape = (axis_0_mapping.get_shape(), axis_1_mapping.get_shape()) + elif cls.is_sparse: + shape = tuple(None for _ in matrix.shape) + else: + shape = matrix.shape soma_ndarray = cls.create( uri, type=pa.from_numpy_dtype(matrix.dtype), @@ -2711,6 +2731,7 @@ def _ingest_uns_1d_string_array( df, df_uri, None, + shape=df.shape[0], ingestion_params=ingestion_params, platform_config=platform_config, context=context, @@ -2756,6 +2777,7 @@ def _ingest_uns_2d_string_array( df, df_uri, None, + shape=df.shape[0], ingestion_params=ingestion_params, additional_metadata=additional_metadata, platform_config=platform_config, diff --git a/apis/python/src/tiledbsoma/io/outgest.py b/apis/python/src/tiledbsoma/io/outgest.py index 510c28a79f..0775b7c7e3 100644 --- a/apis/python/src/tiledbsoma/io/outgest.py +++ b/apis/python/src/tiledbsoma/io/outgest.py @@ -8,8 +8,10 @@ This module contains methods to export SOMA artifacts to other formats. Currently only ``.h5ad`` (`AnnData `_) is supported. """ +from __future__ import annotations import json +from concurrent.futures import Future from typing import ( Any, Dict, @@ -23,6 +25,7 @@ import anndata as ad import numpy as np import pandas as pd +import scipy.sparse as sp from .. import ( Collection, @@ -47,9 +50,12 @@ _UNS_OUTGEST_HINT_KEY, Matrix, UnsDict, - UnsMapping, + UnsLeaf, ) +FutureUnsLeaf = Union[UnsLeaf, Future[UnsLeaf]] +FutureUnsDictNode = Union[FutureUnsLeaf, Dict[str, "FutureUnsDictNode"]] + # ---------------------------------------------------------------- def to_h5ad( @@ -104,7 +110,6 @@ def _extract_X_key( nvar: int, ) -> Matrix: """Helper function for to_anndata""" - if X_layer_name not in measurement.X: raise ValueError( f"X_layer_name {X_layer_name} not found in data: {measurement.X.keys()}" @@ -117,8 +122,9 @@ def _extract_X_key( if isinstance(soma_X_data_handle, DenseNDArray): data = soma_X_data_handle.read((slice(None), slice(None))).to_numpy() elif isinstance(soma_X_data_handle, SparseNDArray): - X_mat = soma_X_data_handle.read().tables().concat().to_pandas() - data = conversions.csr_from_tiledb_df(X_mat, nobs, nvar) + data = conversions.csr_from_coo_table( + soma_X_data_handle.read().tables().concat(), nobs, nvar + ) else: raise TypeError(f"Unexpected NDArray type {type(soma_X_data_handle)}") @@ -252,20 +258,23 @@ def to_anndata( f"requested measurement name {measurement_name} not found in input: {experiment.ms.keys()}" ) measurement = experiment.ms[measurement_name] + tp = experiment.context.threadpool # How to choose index name for AnnData obs and var dataframes: # * If the desired names are passed in, use them. # * Else if the names used at ingest time are available, use them. # * Else use the default/fallback name. - obs_df = _read_dataframe(experiment.obs, obs_id_name, "obs_id") - var_df = _read_dataframe(measurement.var, var_id_name, "var_id") + obs_df, var_df = tp.map( + _read_dataframe, + (experiment.obs, measurement.var), + (obs_id_name, var_id_name), + ("obs_id", "var_id"), + ) nobs = len(obs_df.index) nvar = len(var_df.index) - anndata_X = None - anndata_X_dtype = None # some datasets have no X anndata_layers = {} # Let them use @@ -281,9 +290,11 @@ def to_anndata( "If X_layer_name is None, extra_X_layer_names must not be provided" ) + anndata_X_future: Future[Matrix] | None = None if X_layer_name is not None: - anndata_X = _extract_X_key(measurement, X_layer_name, nobs, nvar) - anndata_X_dtype = anndata_X.dtype + anndata_X_future = tp.submit( + _extract_X_key, measurement, X_layer_name, nobs, nvar + ) if extra_X_layer_names is not None: for extra_X_layer_name in extra_X_layer_names: @@ -300,44 +311,73 @@ def to_anndata( if "obsm" in measurement: obsm_width_hints = obsm_varm_width_hints.get("obsm", {}) for key in measurement.obsm.keys(): - obsm[key] = _extract_obsm_or_varm( - measurement.obsm[key], "obsm", key, nobs, obsm_width_hints + obsm[key] = tp.submit( + _extract_obsm_or_varm, + measurement.obsm[key], + "obsm", + key, + nobs, + obsm_width_hints, ) varm = {} if "varm" in measurement: varm_width_hints = obsm_varm_width_hints.get("obsm", {}) for key in measurement.varm.keys(): - varm[key] = _extract_obsm_or_varm( - measurement.varm[key], "varm", key, nvar, varm_width_hints + varm[key] = tp.submit( + _extract_obsm_or_varm, + measurement.varm[key], + "varm", + key, + nvar, + varm_width_hints, ) obsp = {} if "obsp" in measurement: + + def load_obsp(measurement: Measurement, key: str, nobs: int) -> sp.csr_matrix: + return conversions.csr_from_coo_table( + measurement.obsp[key].read().tables().concat(), nobs, nobs + ) + for key in measurement.obsp.keys(): - matrix = measurement.obsp[key].read().tables().concat().to_pandas() - obsp[key] = conversions.csr_from_tiledb_df(matrix, nobs, nobs) + obsp[key] = tp.submit(load_obsp, measurement, key, nobs) varp = {} if "varp" in measurement: + + def load_varp(measurement: Measurement, key: str, nvar: int) -> sp.csr_matrix: + return conversions.csr_from_coo_table( + measurement.varp[key].read().tables().concat(), nvar, nvar + ) + for key in measurement.varp.keys(): - matrix = measurement.varp[key].read().tables().concat().to_pandas() - varp[key] = conversions.csr_from_tiledb_df(matrix, nvar, nvar) + varp[key] = tp.submit(load_varp, measurement, key, nvar) - uns: UnsMapping = {} + uns_future: Future[Dict[str, FutureUnsDictNode]] | None = None if "uns" in measurement: s = _util.get_start_stamp() uns_coll = cast(Collection[Any], measurement["uns"]) logging.log_io(None, f"Start writing uns for {uns_coll.uri}") - uns = _extract_uns( - uns_coll, - uns_keys=uns_keys, - ) + uns_future = tp.submit(_extract_uns, uns_coll, uns_keys=uns_keys) logging.log_io( None, _util.format_elapsed(s, f"Finish writing uns for {uns_coll.uri}"), ) + # Resolve all futures + obsm = _resolve_futures(obsm) + varm = _resolve_futures(varm) + obsp = _resolve_futures(obsp) + varp = _resolve_futures(varp) + anndata_X = anndata_X_future.result() if anndata_X_future is not None else None + uns: UnsDict = ( + _resolve_futures(uns_future.result(), deep=True) + if uns_future is not None + else {} + ) + anndata = ad.AnnData( X=anndata_X, layers=anndata_layers, @@ -348,7 +388,7 @@ def to_anndata( obsp=obsp, varp=varp, uns=uns, - dtype=anndata_X_dtype, + dtype=anndata_X.dtype if anndata_X is not None else None, ) logging.log_io(None, _util.format_elapsed(s, "FINISH Experiment.to_anndata")) @@ -379,7 +419,7 @@ def _extract_obsm_or_varm( # 3.8 and we still support Python 3.7 return matrix - matrix = soma_nd_array.read().tables().concat().to_pandas() + matrix_tbl = soma_nd_array.read().tables().concat() # Problem to solve: whereas for other sparse arrays we have: # @@ -411,7 +451,7 @@ def _extract_obsm_or_varm( pass # We tried; moving on to next option if num_cols is None: - num_rows_times_width, coo_column_count = matrix.shape + num_rows_times_width, coo_column_count = matrix_tbl.shape if coo_column_count != 3: raise SOMAError( @@ -426,43 +466,53 @@ def _extract_obsm_or_varm( f"could not determine outgest width for {description}: please try to_anndata's obsm_varm_width_hints option" ) - return conversions.csr_from_tiledb_df(matrix, num_rows, num_cols).toarray() + return conversions.csr_from_coo_table(matrix_tbl, num_rows, num_cols).toarray() def _extract_uns( collection: Collection[Any], uns_keys: Optional[Sequence[str]] = None, level: int = 0, -) -> UnsDict: +) -> Dict[str, FutureUnsDictNode]: """ This is a helper function for ``to_anndata`` of ``uns`` elements. """ - - extracted: UnsDict = {} - for key, element in collection.items(): + extracted: Dict[str, FutureUnsDictNode] = {} + tp = collection.context.threadpool + for key in collection.keys(): if level == 0 and uns_keys is not None and key not in uns_keys: continue + element = collection[key] if isinstance(element, Collection): extracted[key] = _extract_uns(element, level=level + 1) elif isinstance(element, DataFrame): hint = element.metadata.get(_UNS_OUTGEST_HINT_KEY) - if hint == _UNS_OUTGEST_HINT_1D: - pdf = element.read().concat().to_pandas() - extracted[key] = _outgest_uns_1d_string_array(pdf, element.uri) - elif hint == _UNS_OUTGEST_HINT_2D: - pdf = element.read().concat().to_pandas() - extracted[key] = _outgest_uns_2d_string_array(pdf, element.uri) - else: - if hint is not None: - logging.log_io_same( - f"Warning: uns {collection.uri}[{key!r}] has {_UNS_OUTGEST_HINT_KEY} as unrecognized {hint}: leaving this as Pandas DataFrame" - ) - extracted[key] = _read_dataframe(element, fallback_index_name="index") + + def _outgest_df( + element: Any, hint: Any, key: Any, collection: Collection[Any] + ) -> NPNDArray | pd.DataFrame: + if hint == _UNS_OUTGEST_HINT_1D: + pdf = element.read().concat().to_pandas() + return _outgest_uns_1d_string_array(pdf, element.uri) + elif hint == _UNS_OUTGEST_HINT_2D: + pdf = element.read().concat().to_pandas() + return _outgest_uns_2d_string_array(pdf, element.uri) + else: + if hint is not None: + logging.log_io_same( + f"Warning: uns {collection.uri}[{key!r}] has {_UNS_OUTGEST_HINT_KEY} as unrecognized {hint}: leaving this as Pandas DataFrame" + ) + return _read_dataframe(element, fallback_index_name="index") + + extracted[key] = tp.submit(_outgest_df, element, hint, key, collection) + elif isinstance(element, SparseNDArray): - extracted[key] = element.read().tables().concat().to_pandas() + extracted[key] = tp.submit( + lambda e: e.read().tables().concat().to_pandas(), element + ) elif isinstance(element, DenseNDArray): - extracted[key] = element.read().to_numpy() + extracted[key] = tp.submit(lambda e: e.read().to_numpy(), element) else: logging.log_io_same( f"Skipping uns key {key} with unhandled type {element.soma_type}" @@ -512,3 +562,18 @@ def _outgest_uns_2d_string_array(pdf: pd.DataFrame, uri_for_logging: str) -> NPN raise SOMAError(f"Expected {column_name} column in {uri_for_logging}") columns.append(list(pdf[column_name])) return np.asarray(columns).transpose() + + +def _resolve_futures(unresolved: Dict[str, Any], deep: bool = False) -> Dict[str, Any]: + """Helper. Resolves any futures found in the dict.""" + resolved = {} + for k, v in unresolved.items(): + if isinstance(v, Future): + v = v.result() + + if deep and isinstance(v, dict): + v = _resolve_futures(v, deep=deep) + + resolved[k] = v + + return resolved diff --git a/apis/python/src/tiledbsoma/io/shaping.py b/apis/python/src/tiledbsoma/io/shaping.py new file mode 100644 index 0000000000..ddd5e30eac --- /dev/null +++ b/apis/python/src/tiledbsoma/io/shaping.py @@ -0,0 +1,531 @@ +# Copyright (c) 2024 The Chan Zuckerberg Initiative Foundation +# Copyright (c) 2024 TileDB, Inc. +# +# Licensed under the MIT License. + +""" +Provides support for the new shape feature in TileDB-SOMA 1.15, including the +ability to process all dataframes/arrays contained within a TileDB-SOMA +Experiment. Please also see +https://github.com/single-cell-data/TileDB-SOMA/issues/2407. """ + +import io +import sys +from typing import Any, Dict, Optional, Tuple, TypedDict, Union, cast + +import tiledbsoma + +Printable = Union[io.TextIOWrapper, io.StringIO] + + +class SizingArgs(TypedDict): + """Convenience type-alias for kwargs passed to experiment-level + upgrade/resize functions. + """ + + nobs: Optional[int] + nvars: Optional[Dict[str, int]] + ms_name: Optional[str] + coll_name: Optional[str] + verbose: bool + check_only: bool + context: Optional[tiledbsoma.SOMATileDBContext] + output_handle: Printable + + +def show_experiment_shapes( + uri: str, + *, + context: Optional[tiledbsoma.SOMATileDBContext] = None, + output_handle: Printable = cast(Printable, sys.stdout), +) -> bool: + """For each dataframe/array contained within the SOMA ``Experiment`` pointed + to by the given URI, shows the deprecated ``used_shape`` (for N-D arrays) or + the ``count`` (for dataframes), along with the ``shape`` and ``maxshape`` + (for arrays) or ``domain`` and ``maxdomain`` (for dataframes). + + Args: + uri: The URI of a SOMA :class:`Experiment``. + context: Optional :class:`SOMATileDBContext``. + """ + args: SizingArgs = dict( + nobs=None, + nvars=None, + ms_name=None, + coll_name=None, + verbose=True, + check_only=True, + context=context, + output_handle=output_handle, + ) + + ok = _treewalk( + uri, + visitor=_leaf_visitor_show_shapes, + args=args, + ) + return ok + + +def upgrade_experiment_shapes( + uri: str, + *, + verbose: bool = False, + check_only: bool = False, + context: Optional[tiledbsoma.SOMATileDBContext] = None, + output_handle: Printable = cast(Printable, sys.stdout), +) -> bool: + """For each dataframe contained within the SOMA ``Experiment`` pointed to by + the given URI, sets the ``domain`` to match the dataframe's current + ``count``. For each N-D array, sets the ``shape`` to match the array's + current ``used_shape``. If ``verbose`` is set to ``True``, an activity log + is printed. If ``check_only`` is true, only does a dry run and reports any + reasons the upgrade would fail. + + Args: + uri: The URI of a SOMA :class:`Experiment``. + verbose: If ``True``, produce per-array output as the upgrade runs. + check_only: If ``True``, don't apply the upgrades, but show what would + be attempted, and show why each one would fail. + context: Optional :class:`SOMATileDBContext``. + """ + args: SizingArgs = dict( + nobs=None, + nvars=None, + ms_name=None, + coll_name=None, + verbose=verbose, + check_only=check_only, + context=context, + output_handle=output_handle, + ) + ok = _treewalk( + uri, + visitor=_leaf_visitor_upgrade, + args=args, + ) + return ok + + +def resize_experiment( + uri: str, + *, + nobs: int, + nvars: Dict[str, int], + verbose: bool = False, + check_only: bool = False, + context: Optional[tiledbsoma.SOMATileDBContext] = None, + output_handle: Printable = cast(Printable, sys.stdout), +) -> bool: + """For each dataframe contained within the SOMA ``Experiment`` pointed to by + the given URI, resizes the ``domain`` for the ``soma_joinid index column + (if it is an indexed column) to match the desired new value. + + The desired new value may be the same size as at present, or bigger, but not + exceeding ``maxdomain`` for the ``soma_joinid`` index column. + + For each N-D array contained within the SOMA ``Experiment``, resizes the ``shape`` + to match the desired values. + + * For ``X`` arrays, the resize is to new ``nobs`` x the measurement's new ``nvar``. + * For ``obsm`` arrays, the resize is to new ``nobs`` x the array's existing ``soma_dim_1`` shape. + * For ``obsp`` arrays, the resize is to new ``nobs`` x that same ``nobs``. + * For ``varm`` arrays, the resize is to new ``nvar`` x the array's existing ``soma_dim_1`` shape. + * For ``varp`` arrays, the resize is to new ``nvar`` x that same ``nvar``. + + In all cases, the desired new ``shape`` value may be the same size on the + given dimension, or bigger, but not exceeding ``maxshape`` for the given + dimension. + + If any array has not been upgraded, then its resize will fail. + + Args: + uri: The URI of a SOMA :class:`Experiment``. + nobs: The desired new shape of the experiment's ``obs`` dataframe. + nvars: The desired new shapes of the experiment's ``var`` dataframes. + This should be a dict from measurement name to shape, e.g. + ``{"RNA": 10000, "raw": 20000}``. + verbose: If ``True``, produce per-array output as the upgrade runs. + check_only: If ``True``, don't apply the upgrades, but show what would + be attempted, and show why each one would fail. + context: Optional :class:`SOMATileDBContext``. + """ + args: SizingArgs = dict( + nobs=nobs, + nvars=nvars, + ms_name=None, + coll_name=None, + verbose=verbose, + check_only=check_only, + context=context, + output_handle=output_handle, + ) + + # Extra user-provided keys not relevant to the experiment are ignored. This + # is important for the case when a new measurement, which is registered from + # AnnData/H5AD inputs, is registered and is about to be created but does not + # exist just yet in the experiment storage. + # + # If the user hasn't provided a key -- e.g. a from-anndata-append-with-resize + # on one measurement while the experiment's other measurements aren't being + # updated -- then we need to find those other measurements' var-shapes. + with tiledbsoma.Experiment.open(uri) as exp: + for ms_key in exp.ms.keys(): + if ms_key not in nvars.keys(): + nvars[ms_key] = exp.ms[ms_key].var._maybe_soma_joinid_shape or 1 + + ok = _treewalk( + uri, + visitor=_leaf_visitor_resize, + args=args, + ) + return ok + + +def _treewalk( + uri: str, + *, + node_name: Optional[str] = None, + visitor: Any, + args: SizingArgs, +) -> bool: + retval = True + with tiledbsoma.open(uri) as item: + + if isinstance(item, tiledbsoma.Experiment): + if "obs" in item: + ok = _treewalk( + item["obs"].uri, node_name="obs", visitor=visitor, args=args + ) + retval = retval and ok + if "ms" in item: + ok = _treewalk( + item["ms"].uri, node_name="ms", visitor=visitor, args=args + ) + retval = retval and ok + + elif isinstance(item, tiledbsoma.Measurement): + if "var" in item: + ok = _treewalk( + item["var"].uri, node_name="var", visitor=visitor, args=args + ) + retval = retval and ok + + for coll_name in ["X", "obsm", "obsp", "varm", "varp"]: + if coll_name in item: + + args["coll_name"] = coll_name + + ok = _treewalk( + item[coll_name].uri, + node_name=coll_name, + visitor=visitor, + args=args, + ) + retval = retval and ok + + elif isinstance(item, tiledbsoma.Collection): + + for key in item: + + if node_name == "ms": + args["ms_name"] = key + + ok = _treewalk(item[key].uri, node_name=key, visitor=visitor, args=args) + retval = retval and ok + + else: + ok = visitor(item, node_name=node_name, args=args) + retval = retval and ok + + return retval + + +def _leaf_visitor_show_shapes( + item: Any, + *, + node_name: str, + args: SizingArgs, +) -> bool: + retval = True + if isinstance(item, tiledbsoma.DataFrame): + _print_leaf_node_banner("DataFrame", node_name, item.uri, args) + _bannerize(args, "count", item.count) + _bannerize(args, "domain", item.domain) + _bannerize(args, "maxdomain", item.maxdomain) + _bannerize(args, "upgraded", item.tiledbsoma_has_upgraded_domain) + + elif isinstance(item, tiledbsoma.SparseNDArray): + _print_leaf_node_banner("SparseNDArray", node_name, item.uri, args) + _bannerize(args, "used_shape", item.used_shape()) + _bannerize(args, "shape", item.shape) + _bannerize(args, "maxshape", item.maxshape) + _bannerize(args, "upgraded", item.tiledbsoma_has_upgraded_shape) + + elif isinstance(item, tiledbsoma.DenseNDArray): + _print_leaf_node_banner("DenseNDArray", node_name, item.uri, args) + _bannerize(args, "shape", item.shape) + _bannerize(args, "maxshape", item.maxshape) + _bannerize(args, "upgraded", item.tiledbsoma_has_upgraded_shape) + + return retval + + +def _leaf_visitor_upgrade( + item: Any, + *, + node_name: str, + args: SizingArgs, +) -> bool: + verbose = args["verbose"] + check_only = args["check_only"] + retval = True + + if isinstance(item, tiledbsoma.DataFrame): + count = item.count + + _print_leaf_node_banner("DataFrame", node_name, item.uri, args) + if check_only: + print( + f" Dry run for: tiledbsoma_upgrade_soma_joinid_shape({count})", + file=args["output_handle"], + ) + ok, msg = item.tiledbsoma_upgrade_soma_joinid_shape(count, check_only=True) + _print_dry_run_result(ok, msg, args) + retval = retval and ok + elif not item.tiledbsoma_has_upgraded_domain: + if verbose: + print( + f" Applying tiledbsoma_upgrade_soma_joinid_shape({count})", + file=args["output_handle"], + ) + with tiledbsoma.DataFrame.open(item.uri, "w") as writer: + writer.tiledbsoma_upgrade_soma_joinid_shape(count) + else: + if verbose: + print(" Already upgraded", file=args["output_handle"]) + + elif isinstance(item, tiledbsoma.SparseNDArray): + used_shape = item.used_shape() + new_shape = tuple(e[1] + 1 for e in used_shape) + + _print_leaf_node_banner("SparseNDArray", node_name, item.uri, args) + if check_only: + print( + f" Dry run for: tiledbsoma_upgrade_shape({new_shape})", + file=args["output_handle"], + ) + ok, msg = item.tiledbsoma_upgrade_shape(new_shape, check_only=True) + _print_dry_run_result(ok, msg, args) + retval = retval and ok + elif not item.tiledbsoma_has_upgraded_shape: + if verbose: + print( + f" Applying tiledbsoma_upgrade_shape({new_shape})", + file=args["output_handle"], + ) + with tiledbsoma.SparseNDArray.open(item.uri, "w") as writer: + writer.tiledbsoma_upgrade_shape(new_shape) + else: + if verbose: + print(" Already upgraded", file=args["output_handle"]) + + elif isinstance(item, tiledbsoma.DenseNDArray): + _print_leaf_node_banner("DenseNDArray", node_name, item.uri, args) + if verbose or check_only: + print( + " No action at this time, pending new-shape support for dense arrays in core 2.27", + file=args["output_handle"], + ) + return retval + + +def _leaf_visitor_resize( + item: Any, + *, + node_name: str, + args: SizingArgs, +) -> bool: + verbose = args["verbose"] + check_only = args["check_only"] + retval = True + if isinstance(item, tiledbsoma.DataFrame): + + if node_name == "obs": + new_soma_joinid_shape = args["nobs"] + if new_soma_joinid_shape is None: + raise tiledbsoma.SOMAError( + "experiment resize: internal error: nobs missing" + ) + + elif node_name == "var": + new_soma_joinid_shape = _get_new_var_shape(args) + + else: + raise tiledbsoma.SOMAError( + "experiment resize: internal error: dataframe node name '{node_name}'" + ) + + _print_leaf_node_banner("DataFrame", node_name, item.uri, args) + + if check_only: + print( + f" Dry run for: tiledbsoma_resize_soma_joinid_shape({new_soma_joinid_shape})", + file=args["output_handle"], + ) + ok, msg = item.tiledbsoma_resize_soma_joinid_shape( + new_soma_joinid_shape, check_only=True + ) + _print_dry_run_result(ok, msg, args) + retval = retval and ok + else: + if verbose: + print( + f" Applying tiledbsoma_resize_soma_joinid_shape({new_soma_joinid_shape})", + file=args["output_handle"], + ) + with tiledbsoma.DataFrame.open(item.uri, "w") as writer: + writer.tiledbsoma_resize_soma_joinid_shape(new_soma_joinid_shape) + + elif isinstance(item, tiledbsoma.SparseNDArray): + + _print_leaf_node_banner("SparseNDArray", node_name, item.uri, args) + + new_shape = _get_new_ndarray_shape(args, item.shape) + + if check_only: + print(f" Dry run for: resize({new_shape})", file=args["output_handle"]) + ok, msg = item.resize(new_shape, check_only=True) + _print_dry_run_result(ok, msg, args) + retval = retval and ok + else: + if verbose: + print(f" Applying resize({new_shape})", file=args["output_handle"]) + with tiledbsoma.SparseNDArray.open(item.uri, "w") as writer: + writer.resize(new_shape) + + elif isinstance(item, tiledbsoma.DenseNDArray): + + _print_leaf_node_banner("DenseNDArray", node_name, item.uri, args) + if verbose or check_only: + print( + " No action at this time, pending new-shape support for dense arrays in core 2.27", + file=args["output_handle"], + ) + + return retval + + +def _print_leaf_node_banner( + type_name: str, + node_name: str, + uri: str, + args: SizingArgs, +) -> None: + if args["verbose"] or args["check_only"]: + print("", file=args["output_handle"]) + print( + _get_leaf_node_description(type_name, node_name, args), + file=args["output_handle"], + ) + print(f" URI {uri}", file=args["output_handle"]) + + +def _get_leaf_node_description( + type_name: str, + node_name: str, + args: SizingArgs, +) -> str: + # Return things like "ms/RNA/X/data" + pieces = [] + if args["ms_name"] is not None: + pieces.append("ms") + pieces.append(args["ms_name"]) + if args["coll_name"] is not None: + pieces.append(args["coll_name"]) + pieces.append(node_name) + return f"[{type_name}] {'/'.join(pieces)} " + + +def _bannerize( + args: SizingArgs, + name: str, + value: Any, +) -> None: + if args["verbose"] or args["check_only"]: + print(f" {name:<20} {value}", file=args["output_handle"]) + + +def _print_dry_run_result(ok: bool, msg: str, args: SizingArgs) -> None: + if ok: + print(" OK", file=args["output_handle"]) + else: + print(f" Not OK: {msg}", file=args["output_handle"]) + + +def _get_new_var_shape( + args: SizingArgs, +) -> int: + """Maps from experiment-level nobs and per-measurement nvar to the correct resizes + for var dataframes within a SOMA experiment. + """ + nvars = args["nvars"] + if nvars is None: + raise tiledbsoma.SOMAError("experiment resize: internal error: nvars missing") + + ms_name = args["ms_name"] + if ms_name is None: + raise tiledbsoma.SOMAError("experiment resize: internal error: ms_name missing") + + if ms_name not in nvars: + raise tiledbsoma.SOMAError( + f"experiment resize: missing measurement name '{ms_name}' in provided nvars" + ) + return nvars[ms_name] + + +def _get_new_ndarray_shape( + args: SizingArgs, + current_shape: Tuple[int, ...], +) -> Tuple[int, ...]: + """Maps from experiment-level nobs and per-measurement nvar to the correct resizes + for various kinds of n-d array within a SOMA Experiment. + """ + nobs = args["nobs"] + if nobs is None: + raise tiledbsoma.SOMAError("experiment resize: internal error: nobs missing") + + nvars = args["nvars"] + if nvars is None: + raise tiledbsoma.SOMAError("experiment resize: internal error: nvars missing") + + ms_name = args["ms_name"] + if ms_name is None: + raise tiledbsoma.SOMAError("experiment resize: internal error: ms_name missing") + + if ms_name not in nvars: + raise tiledbsoma.SOMAError( + f"experiment resize: missing measurement name '{ms_name}' in provided nvars" + ) + nvar = nvars[ms_name] + + coll_name = args["coll_name"] + if coll_name is None: + raise tiledbsoma.SOMAError( + "experiment resize: internal error: coll_name missing" + ) + + coll_dict = { + "X": (nobs, nvar), + "obsm": (nobs, current_shape[1]), + "obsp": (nobs, nobs), + "varm": (nvar, current_shape[1]), + "varp": (nvar, nvar), + } + + try: + return coll_dict[coll_name] + except KeyError: + raise tiledbsoma.SOMAError( + f"experiment resize: internal error: unhandled collection {coll_name}" + ) diff --git a/apis/python/src/tiledbsoma/options/_soma_tiledb_context.py b/apis/python/src/tiledbsoma/options/_soma_tiledb_context.py index f607dd9b9b..163578080f 100644 --- a/apis/python/src/tiledbsoma/options/_soma_tiledb_context.py +++ b/apis/python/src/tiledbsoma/options/_soma_tiledb_context.py @@ -9,34 +9,17 @@ import functools import threading import time -import warnings from concurrent.futures import ThreadPoolExecutor from typing import Any, Dict, Literal, Mapping, Optional, Union from somacore import ContextBase from typing_extensions import Self -import tiledb - from .. import pytiledbsoma as clib from .._types import OpenTimestamp from .._util import ms_to_datetime, to_timestamp_ms -def _warn_ctx_deprecation() -> None: - pass - # https://github.com/single-cell-data/TileDB-SOMA/issues/3134 - # Skipping for 1.15.0rc0 - # assert_version_before(1, 15) - warnings.warn( - "tiledb_ctx is now deprecated for removal in 1.15. " - "Use tiledb_config instead by passing " - "SOMATileDBContext(tiledb_config=ctx.config().dict()).", - DeprecationWarning, - stacklevel=3, - ) - - def _default_config( override: Mapping[str, Union[str, float]] ) -> Dict[str, Union[str, float]]: @@ -53,9 +36,9 @@ def _default_config( @functools.lru_cache(maxsize=None) -def _default_global_ctx() -> tiledb.Ctx: - """Lazily builds a default TileDB Context with the default config.""" - return tiledb.Ctx(_default_config({})) +def _default_global_native_context() -> clib.SOMAContext: + """Lazily builds a default SOMAContext with the default config.""" + return clib.SOMAContext({k: str(v) for k, v in _default_config({}).items()}) def _maybe_timestamp_ms(input: Optional[OpenTimestamp]) -> Optional[int]: @@ -83,7 +66,6 @@ class SOMATileDBContext(ContextBase): def __init__( self, - tiledb_ctx: Optional[tiledb.Ctx] = None, tiledb_config: Optional[Dict[str, Union[str, float]]] = None, timestamp: Optional[OpenTimestamp] = None, threadpool: Optional[ThreadPoolExecutor] = None, @@ -135,27 +117,12 @@ def __init__( provided, a new ThreadPoolExecutor will be created with default settings. """ - if tiledb_ctx is not None: - _warn_ctx_deprecation() - - if tiledb_ctx is not None and tiledb_config is not None: - raise ValueError( - "only one of tiledb_ctx or tiledb_config" - " may be set when constructing a SOMATileDBContext" - ) self._lock = threading.Lock() """A lock to ensure single initialization of ``_tiledb_ctx``.""" - self._initial_config = ( + self._initial_config: Optional[Dict[str, Union[str, float]]] = ( None if tiledb_config is None else _default_config(tiledb_config) ) - """A dictionary of options to override the default TileDB config. - - This includes both the user-provided options and the default options - that we provide to TileDB. If this is unset, then either we were - provided with a TileDB Ctx, or we need to use The Default Global Ctx. - """ - self._tiledb_ctx = tiledb_ctx """The TileDB context to use, either provided or lazily constructed.""" self._timestamp_ms = _maybe_timestamp_ms(timestamp) @@ -186,25 +153,14 @@ def native_context(self) -> clib.SOMAContext: """The C++ SOMAContext for this SOMA context.""" with self._lock: if self._native_context is None: - cfg = self._internal_tiledb_config() - self._native_context = clib.SOMAContext( - {k: str(v) for k, v in cfg.items()} - ) - return self._native_context - - @property - def tiledb_ctx(self) -> tiledb.Ctx: - """The TileDB-Py Context for this SOMA context.""" - _warn_ctx_deprecation() - - with self._lock: - if self._tiledb_ctx is None: if self._initial_config is None: - # Special case: we need to use the One Global Default. - self._tiledb_ctx = _default_global_ctx() + self._native_context = _default_global_native_context() else: - self._tiledb_ctx = tiledb.Ctx(self._initial_config) - return self._tiledb_ctx + cfg = self._internal_tiledb_config() + self._native_context = clib.SOMAContext( + {k: str(v) for k, v in cfg.items()} + ) + return self._native_context @property def tiledb_config(self) -> Dict[str, Union[str, float]]: @@ -230,11 +186,6 @@ def _internal_tiledb_config(self) -> Dict[str, Union[str, float]]: if self._native_context is not None: return dict(self._native_context.config()) - # We have TileDB Context. Return its actual config. - # TODO This block will be deleted once tiledb_ctx is removed in 1.15 - if self._tiledb_ctx is not None: - return dict(self._tiledb_ctx.config()) - # Our context has not yet been built. # We return what will be passed into the context. return ( @@ -247,7 +198,6 @@ def replace( self, *, tiledb_config: Optional[Dict[str, Any]] = None, - tiledb_ctx: Optional[tiledb.Ctx] = None, timestamp: Union[None, OpenTimestamp, _Unset] = _UNSET, threadpool: Union[None, ThreadPoolExecutor, _Unset] = _UNSET, ) -> Self: @@ -279,15 +229,7 @@ def replace( ... tiledb_config={"vfs.s3.region": None}) """ with self._lock: - if tiledb_ctx is not None: - _warn_ctx_deprecation() - if tiledb_config is not None: - if tiledb_ctx: - raise ValueError( - "Either tiledb_config or tiledb_ctx may be provided" - " to replace(), but not both." - ) new_config = self._internal_tiledb_config() new_config.update(tiledb_config) tiledb_config = {k: v for (k, v) in new_config.items() if v is not None} @@ -302,7 +244,6 @@ def replace( assert timestamp is None or isinstance(timestamp, (datetime.datetime, int)) return type(self)( tiledb_config=tiledb_config, - tiledb_ctx=tiledb_ctx, timestamp=timestamp, threadpool=threadpool, ) @@ -327,11 +268,6 @@ def _validate_soma_tiledb_context(context: Any) -> SOMATileDBContext: if context is None: return SOMATileDBContext() - if isinstance(context, tiledb.Ctx): - raise TypeError( - "context is a tiledb.Ctx, not a SOMATileDBContext -- please wrap it in tiledbsoma.SOMATileDBContext(...)" - ) - if not isinstance(context, SOMATileDBContext): raise TypeError("context is not a SOMATileDBContext") diff --git a/apis/python/src/tiledbsoma/options/_tiledb_create_write_options.py b/apis/python/src/tiledbsoma/options/_tiledb_create_write_options.py index 259e0e9c65..fa0277a525 100644 --- a/apis/python/src/tiledbsoma/options/_tiledb_create_write_options.py +++ b/apis/python/src/tiledbsoma/options/_tiledb_create_write_options.py @@ -1,4 +1,3 @@ -import warnings from typing import ( Any, Dict, @@ -11,7 +10,6 @@ TypedDict, TypeVar, Union, - cast, ) import attrs as attrs_ # We use the name `attrs` later. @@ -19,10 +17,6 @@ from somacore import options from typing_extensions import Self -import tiledb - -from .._general_utilities import assert_version_before - # Most defaults are configured directly as default attribute values # within TileDBCreateOptions. DEFAULT_TILE_EXTENT = 2048 @@ -192,44 +186,6 @@ def cell_tile_orders(self) -> Tuple[Optional[str], Optional[str]]: return DEFAULT_CELL_ORDER, DEFAULT_TILE_ORDER return self.cell_order, self.tile_order - def offsets_filters_tiledb(self) -> Tuple[tiledb.Filter, ...]: - """Constructs the real TileDB Filters to use for offsets.""" - assert_version_before(1, 15) - warnings.warn( - "`offsets_filters_tiledb` is now deprecated for removal in 1.15 " - "as we no longer support returning tiledb.Filter. " - "Use `offsets_filters` instead.", - DeprecationWarning, - ) - - return tuple(_build_filter(f) for f in self.offsets_filters) - - def validity_filters_tiledb(self) -> Optional[Tuple[tiledb.Filter, ...]]: - """Constructs the real TileDB Filters to use for the validity map.""" - assert_version_before(1, 15) - warnings.warn( - "`validity_filters_tiledb` is now deprecated for removal in 1.15 " - "as we no longer support returning tiledb.Filter. " - "Use `validity_filters` instead.", - DeprecationWarning, - ) - if self.validity_filters is None: - return None - return tuple(_build_filter(f) for f in self.validity_filters) - - def dim_filters_tiledb( - self, dim: str, default: Sequence[_FilterSpec] = () - ) -> Tuple[tiledb.Filter, ...]: - """Constructs the real TileDB Filters to use for the named dimension.""" - assert_version_before(1, 15) - warnings.warn( - "`dim_filters_tiledb` is now deprecated for removal in 1.15 " - "as we no longer support returning tiledb.Filter. " - "Use `dims` instead.", - DeprecationWarning, - ) - return _filters_from(self.dims, dim, default) - def dim_tile(self, dim_name: str, default: int = DEFAULT_TILE_EXTENT) -> int: """Returns the tile extent for the given dimension.""" try: @@ -238,19 +194,6 @@ def dim_tile(self, dim_name: str, default: int = DEFAULT_TILE_EXTENT) -> int: return default return default if dim.tile is None else dim.tile - def attr_filters_tiledb( - self, name: str, default: Sequence[_FilterSpec] = () - ) -> Tuple[tiledb.Filter, ...]: - """Constructs the real TileDB Filters to use for the named attribute.""" - assert_version_before(1, 15) - warnings.warn( - "`attr_filters_tiledb` is now deprecated for removal in 1.15 " - "as we no longer support returning tiledb.Filter. " - "Use `attrs` instead.", - DeprecationWarning, - ) - return _filters_from(self.attrs, name, default) - @attrs_.define(frozen=True, kw_only=True, slots=True) class TileDBWriteOptions: @@ -329,8 +272,25 @@ def _dig_platform_config( # Filter handling and construction. # -_FILTERS: Mapping[str, Type[tiledb.Filter]] = { - cls.__name__: cls for cls in tiledb.FilterList.filter_type_cc_to_python.values() +_FILTERS: Mapping[str, str] = { + "GzipFilter": "GZIP", + "ZstdFilter": "ZSTD", + "LZ4Filter": "LZ4", + "Bzip2Filter": "BZIP2", + "RleFilter": "RLE", + "DeltaFilter": "DELTA", + "DoubleDeltaFilter": "DOUBLE_DELTA", + "BitWidthReductionFilter": "BIT_WIDTH_REDUCTION", + "BitShuffleFilter": "BITSHUFFLE", + "ByteShuffleFilter": "BYTESHUFFLE", + "PositiveDeltaFilter": "POSITIVE_DELTA", + "ChecksumMD5Filter": "CHECKSUM_MD5", + "ChecksumSHA256Filter": "CHECKSUM_SHA256", + "DictionaryFilter": "DICTIONARY", + "FloatScaleFilter": "SCALE_FLOAT", + "XORFilter": "XOR", + "WebpFilter": "WEBP", + "NoOpFilter": "NONE", } @@ -355,30 +315,3 @@ def _normalize_filter(input: _FilterSpec) -> _DictFilterSpec: except KeyError as ke: raise ValueError(f"filter type {typ_name!r} unknown") from ke return dict(input) - - -def _filters_from( - col_configs: Mapping[str, _ColumnConfig], name: str, default: Sequence[_FilterSpec] -) -> Tuple[tiledb.Filter, ...]: - """Constructs the filters for the named column in ``col_configs``.""" - try: - cfg = col_configs[name] - except KeyError: - maybe_filters = None - else: - maybe_filters = cfg.filters - if maybe_filters is None: - filters = _normalize_filters(default) or () - else: - filters = maybe_filters - return tuple(_build_filter(f) for f in filters) - - -def _build_filter(item: _DictFilterSpec) -> tiledb.Filter: - """Build a single filter.""" - # Always make a copy here so we don't mutate the global state. - # We have validated this earlier so we don't do extra checking here. - kwargs = dict(item) - cls_name = cast(str, kwargs.pop("_type")) - cls = _FILTERS[cls_name] - return cls(**kwargs) diff --git a/apis/python/src/tiledbsoma/pytiledbsoma.cc b/apis/python/src/tiledbsoma/pytiledbsoma.cc index 3b8c141b22..5f9daff759 100644 --- a/apis/python/src/tiledbsoma/pytiledbsoma.cc +++ b/apis/python/src/tiledbsoma/pytiledbsoma.cc @@ -27,6 +27,7 @@ void load_soma_group(py::module&); void load_soma_collection(py::module&); void load_query_condition(py::module&); void load_reindexer(py::module&); +void load_soma_vfs(py::module&); PYBIND11_MODULE(pytiledbsoma, m) { py::register_exception(m, "SOMAError"); @@ -72,6 +73,9 @@ PYBIND11_MODULE(pytiledbsoma, m) { m.doc() = "SOMA acceleration library"; m.def("version", []() { return tiledbsoma::version::as_string(); }); + m.def("embedded_version_triple", []() { + return tiledbsoma::version::embedded_version_triple(); + }); m.def( "config_logging", @@ -150,6 +154,7 @@ PYBIND11_MODULE(pytiledbsoma, m) { load_soma_collection(m); load_query_condition(m); load_reindexer(m); + load_soma_vfs(m); } }; // namespace libtiledbsomacpp diff --git a/apis/python/src/tiledbsoma/soma_array.cc b/apis/python/src/tiledbsoma/soma_array.cc index 40c53ae34e..5f40f8bc26 100644 --- a/apis/python/src/tiledbsoma/soma_array.cc +++ b/apis/python/src/tiledbsoma/soma_array.cc @@ -242,6 +242,9 @@ void load_soma_array(py::module& m) { return pa_schema_import( py::capsule(array.arrow_schema().get())); }) + .def( + "config_options_from_schema", + &SOMAArray::config_options_from_schema) .def("context", &SOMAArray::ctx) // After this are short functions expected to be invoked when the coords @@ -780,6 +783,62 @@ void load_soma_array(py::module& m) { } }) + .def( + "non_empty_domain_slot_opt", + [](SOMAArray& array, std::string name, py::dtype dtype) { + switch (np_to_tdb_dtype(dtype)) { + case TILEDB_UINT64: + return py::cast( + array.non_empty_domain_slot_opt(name)); + case TILEDB_DATETIME_YEAR: + case TILEDB_DATETIME_MONTH: + case TILEDB_DATETIME_WEEK: + case TILEDB_DATETIME_DAY: + case TILEDB_DATETIME_HR: + case TILEDB_DATETIME_MIN: + case TILEDB_DATETIME_SEC: + case TILEDB_DATETIME_MS: + case TILEDB_DATETIME_US: + case TILEDB_DATETIME_NS: + case TILEDB_DATETIME_PS: + case TILEDB_DATETIME_FS: + case TILEDB_DATETIME_AS: + case TILEDB_INT64: + return py::cast( + array.non_empty_domain_slot_opt(name)); + case TILEDB_UINT32: + return py::cast( + array.non_empty_domain_slot_opt(name)); + case TILEDB_INT32: + return py::cast( + array.non_empty_domain_slot_opt(name)); + case TILEDB_UINT16: + return py::cast( + array.non_empty_domain_slot_opt(name)); + case TILEDB_INT16: + return py::cast( + array.non_empty_domain_slot_opt(name)); + case TILEDB_UINT8: + return py::cast( + array.non_empty_domain_slot_opt(name)); + case TILEDB_INT8: + return py::cast( + array.non_empty_domain_slot_opt(name)); + case TILEDB_FLOAT64: + return py::cast( + array.non_empty_domain_slot_opt(name)); + case TILEDB_FLOAT32: + return py::cast( + array.non_empty_domain_slot_opt(name)); + case TILEDB_STRING_UTF8: + case TILEDB_STRING_ASCII: + return py::cast(array.non_empty_domain_slot_var(name)); + default: + throw TileDBSOMAError( + "Unsupported dtype for nonempty domain."); + } + }) + .def( "soma_domain_slot", [](SOMAArray& array, std::string name, py::dtype dtype) { @@ -887,7 +946,11 @@ void load_soma_array(py::module& m) { .def_property_readonly("dimension_names", &SOMAArray::dimension_names) - .def("consolidate_and_vacuum", &SOMAArray::consolidate_and_vacuum) + .def( + "consolidate_and_vacuum", + &SOMAArray::consolidate_and_vacuum, + py::arg( + "modes") = std::vector{"fragment_meta", "commits"}) .def_property_readonly( "meta", @@ -895,9 +958,18 @@ void load_soma_array(py::module& m) { return meta(array.get_metadata()); }) - .def("set_metadata", set_metadata) + .def( + "set_metadata", + set_metadata, + py::arg("key"), + py::arg("value"), + py::arg("force") = false) - .def("delete_metadata", &SOMAArray::delete_metadata) + .def( + "delete_metadata", + &SOMAArray::delete_metadata, + py::arg("key"), + py::arg("force") = false) .def( "get_metadata", diff --git a/apis/python/src/tiledbsoma/soma_collection.cc b/apis/python/src/tiledbsoma/soma_collection.cc index 7b9c5c80da..6c3dd54e8e 100644 --- a/apis/python/src/tiledbsoma/soma_collection.cc +++ b/apis/python/src/tiledbsoma/soma_collection.cc @@ -60,7 +60,8 @@ void load_soma_collection(py::module& m) { py::kw_only(), "mode"_a, "context"_a, - "timestamp"_a = py::none()) + "timestamp"_a = py::none(), + py::call_guard()) .def( "__iter__", [](SOMACollection& collection) { diff --git a/apis/python/src/tiledbsoma/soma_dataframe.cc b/apis/python/src/tiledbsoma/soma_dataframe.cc index 43bb11c444..d55a2ad3d2 100644 --- a/apis/python/src/tiledbsoma/soma_dataframe.cc +++ b/apis/python/src/tiledbsoma/soma_dataframe.cc @@ -139,7 +139,8 @@ void load_soma_dataframe(py::module& m) { py::kw_only(), "column_names"_a = py::tuple(), "result_order"_a = ResultOrder::automatic, - "timestamp"_a = py::none()) + "timestamp"_a = py::none(), + py::call_guard()) .def_static("exists", &SOMADataFrame::exists) .def_property_readonly( @@ -159,14 +160,167 @@ void load_soma_dataframe(py::module& m) { .def( "resize_soma_joinid_shape", - [](SOMADataFrame& sdf, int64_t newshape) { + [](SOMADataFrame& sdf, + int64_t newshape, + std::string function_name_for_messages) { try { sdf.resize_soma_joinid_shape( - newshape, "resize_soma_joinid_shape"); + newshape, function_name_for_messages); + } catch (const std::exception& e) { + throw TileDBSOMAError(e.what()); + } + }, + "newshape"_a, + "function_name_for_messages"_a) + + .def( + "can_resize_soma_joinid_shape", + [](SOMADataFrame& sdf, + int64_t newshape, + std::string function_name_for_messages) { + try { + return sdf.can_resize_soma_joinid_shape( + newshape, function_name_for_messages); + } catch (const std::exception& e) { + throw TileDBSOMAError(e.what()); + } + }, + "newshape"_a, + "function_name_for_messages"_a) + + .def( + "upgrade_soma_joinid_shape", + [](SOMADataFrame& sdf, + int64_t newshape, + std::string function_name_for_messages) { + try { + sdf.upgrade_soma_joinid_shape( + newshape, function_name_for_messages); + } catch (const std::exception& e) { + throw TileDBSOMAError(e.what()); + } + }, + "newshape"_a, + "function_name_for_messages"_a) + + .def( + "can_upgrade_soma_joinid_shape", + [](SOMADataFrame& sdf, + int64_t newshape, + std::string function_name_for_messages) { + try { + return sdf.can_upgrade_soma_joinid_shape( + newshape, function_name_for_messages); + } catch (const std::exception& e) { + throw TileDBSOMAError(e.what()); + } + }, + "newshape"_a, + "function_name_for_messages"_a) + + .def( + "upgrade_domain", + [](SOMADataFrame& sdf, + py::object pyarrow_domain_table, + std::string function_name_for_messages) { + ArrowArray pyarrow_domain_array; + ArrowSchema pyarrow_domain_schema; + uintptr_t nanoarrow_domain_array_ptr = + (uintptr_t)(&pyarrow_domain_array); + uintptr_t nanoarrow_domain_schema_ptr = + (uintptr_t)(&pyarrow_domain_schema); + pyarrow_domain_table.attr("_export_to_c")( + nanoarrow_domain_array_ptr, nanoarrow_domain_schema_ptr); + ArrowTable nanoarrow_domain_table( + std::make_unique(pyarrow_domain_array), + std::make_unique(pyarrow_domain_schema)); + try { + sdf.upgrade_domain( + nanoarrow_domain_table, function_name_for_messages); + } catch (const std::exception& e) { + throw TileDBSOMAError(e.what()); + } + }, + "pyarrow_domain_table"_a, + "function_name_for_messages"_a) + + .def( + "can_upgrade_domain", + [](SOMADataFrame& sdf, + py::object pyarrow_domain_table, + std::string function_name_for_messages) { + ArrowArray pyarrow_domain_array; + ArrowSchema pyarrow_domain_schema; + uintptr_t nanoarrow_domain_array_ptr = + (uintptr_t)(&pyarrow_domain_array); + uintptr_t nanoarrow_domain_schema_ptr = + (uintptr_t)(&pyarrow_domain_schema); + pyarrow_domain_table.attr("_export_to_c")( + nanoarrow_domain_array_ptr, nanoarrow_domain_schema_ptr); + ArrowTable nanoarrow_domain_table( + std::make_unique(pyarrow_domain_array), + std::make_unique(pyarrow_domain_schema)); + try { + return sdf.can_upgrade_domain( + nanoarrow_domain_table, function_name_for_messages); + } catch (const std::exception& e) { + throw TileDBSOMAError(e.what()); + } + }, + "pyarrow_domain_table"_a, + "function_name_for_messages"_a) + + .def( + "change_domain", + [](SOMADataFrame& sdf, + py::object pyarrow_domain_table, + std::string function_name_for_messages) { + ArrowArray pyarrow_domain_array; + ArrowSchema pyarrow_domain_schema; + uintptr_t nanoarrow_domain_array_ptr = + (uintptr_t)(&pyarrow_domain_array); + uintptr_t nanoarrow_domain_schema_ptr = + (uintptr_t)(&pyarrow_domain_schema); + pyarrow_domain_table.attr("_export_to_c")( + nanoarrow_domain_array_ptr, nanoarrow_domain_schema_ptr); + ArrowTable nanoarrow_domain_table( + std::make_unique(pyarrow_domain_array), + std::make_unique(pyarrow_domain_schema)); + try { + sdf.change_domain( + nanoarrow_domain_table, function_name_for_messages); } catch (const std::exception& e) { throw TileDBSOMAError(e.what()); } }, - "newshape"_a); + "pyarrow_domain_table"_a, + "function_name_for_messages"_a) + + .def( + "can_change_domain", + [](SOMADataFrame& sdf, + py::object pyarrow_domain_table, + std::string function_name_for_messages) { + ArrowArray pyarrow_domain_array; + ArrowSchema pyarrow_domain_schema; + uintptr_t nanoarrow_domain_array_ptr = + (uintptr_t)(&pyarrow_domain_array); + uintptr_t nanoarrow_domain_schema_ptr = + (uintptr_t)(&pyarrow_domain_schema); + pyarrow_domain_table.attr("_export_to_c")( + nanoarrow_domain_array_ptr, nanoarrow_domain_schema_ptr); + ArrowTable nanoarrow_domain_table( + std::make_unique(pyarrow_domain_array), + std::make_unique(pyarrow_domain_schema)); + try { + return sdf.can_change_domain( + nanoarrow_domain_table, function_name_for_messages); + } catch (const std::exception& e) { + throw TileDBSOMAError(e.what()); + } + }, + "pyarrow_domain_table"_a, + "function_name_for_messages"_a); } + } // namespace libtiledbsomacpp diff --git a/apis/python/src/tiledbsoma/soma_dense_ndarray.cc b/apis/python/src/tiledbsoma/soma_dense_ndarray.cc index e641626e27..76ee8f4955 100644 --- a/apis/python/src/tiledbsoma/soma_dense_ndarray.cc +++ b/apis/python/src/tiledbsoma/soma_dense_ndarray.cc @@ -120,7 +120,8 @@ void load_soma_dense_ndarray(py::module& m) { py::kw_only(), "column_names"_a = py::tuple(), "result_order"_a = ResultOrder::automatic, - "timestamp"_a = py::none()) + "timestamp"_a = py::none(), + py::call_guard()) .def_static("exists", &SOMADenseNDArray::exists) diff --git a/apis/python/src/tiledbsoma/soma_group.cc b/apis/python/src/tiledbsoma/soma_group.cc index 563ee8b23a..fc29131116 100644 --- a/apis/python/src/tiledbsoma/soma_group.cc +++ b/apis/python/src/tiledbsoma/soma_group.cc @@ -76,6 +76,7 @@ void load_soma_group(py::module& m) { [](SOMAGroup& group) -> bool { return not group.is_open(); }) .def_property_readonly("uri", &SOMAGroup::uri) .def("context", &SOMAGroup::ctx) + .def("is_relative", &SOMAGroup::is_relative) .def("has", &SOMAGroup::has) .def( "add", @@ -94,18 +95,28 @@ void load_soma_group(py::module& m) { return py::none(); return py::cast(group.timestamp()->second); }) + .def_property_readonly( "meta", [](SOMAGroup& group) -> py::dict { return meta(group.get_metadata()); }) + .def( "set_metadata", - [](SOMAGroup& group, const std::string& key, py::array value) { - set_metadata(group, key, value); - }) - .def("delete_metadata", &SOMAGroup::delete_metadata) + set_metadata, + py::arg("key"), + py::arg("value"), + py::arg("force") = false) + + .def( + "delete_metadata", + &SOMAGroup::delete_metadata, + py::arg("key"), + py::arg("force") = false) + .def("has_metadata", &SOMAGroup::has_metadata) + .def("metadata_num", &SOMAGroup::metadata_num); } } // namespace libtiledbsomacpp diff --git a/apis/python/src/tiledbsoma/soma_object.cc b/apis/python/src/tiledbsoma/soma_object.cc index 1156f7148d..8e5750dc3a 100644 --- a/apis/python/src/tiledbsoma/soma_object.cc +++ b/apis/python/src/tiledbsoma/soma_object.cc @@ -58,8 +58,11 @@ void load_soma_object(py::module& m) { std::optional> timestamp, std::optional clib_type) -> py::object { try { - auto soma_obj = SOMAObject::open( - uri, mode, context, timestamp, clib_type); + auto soma_obj = ([&]() { + py::gil_scoped_release release; + return SOMAObject::open( + uri, mode, context, timestamp, clib_type); + })(); auto soma_obj_type = soma_obj->type(); if (soma_obj_type.has_value()) { diff --git a/apis/python/src/tiledbsoma/soma_sparse_ndarray.cc b/apis/python/src/tiledbsoma/soma_sparse_ndarray.cc index 5bfbf27b3f..0fa7b25c1d 100644 --- a/apis/python/src/tiledbsoma/soma_sparse_ndarray.cc +++ b/apis/python/src/tiledbsoma/soma_sparse_ndarray.cc @@ -108,7 +108,8 @@ void load_soma_sparse_ndarray(py::module& m) { py::kw_only(), "column_names"_a = py::tuple(), "result_order"_a = ResultOrder::automatic, - "timestamp"_a = py::none()) + "timestamp"_a = py::none(), + py::call_guard()) .def_static("exists", &SOMASparseNDArray::exists) @@ -127,6 +128,16 @@ void load_soma_sparse_ndarray(py::module& m) { } }, "newshape"_a) + .def( + "can_resize", + [](SOMAArray& array, const std::vector& newshape) { + try { + return array.can_resize(newshape, "can_resize"); + } catch (const std::exception& e) { + throw TileDBSOMAError(e.what()); + } + }, + "newshape"_a) .def( "tiledbsoma_upgrade_shape", @@ -137,6 +148,17 @@ void load_soma_sparse_ndarray(py::module& m) { throw TileDBSOMAError(e.what()); } }, + "newshape"_a) + .def( + "tiledbsoma_can_upgrade_shape", + [](SOMAArray& array, const std::vector& newshape) { + try { + return array.can_upgrade_shape( + newshape, "tiledbsoma_can_upgrade_shape"); + } catch (const std::exception& e) { + throw TileDBSOMAError(e.what()); + } + }, "newshape"_a); } } // namespace libtiledbsomacpp diff --git a/apis/python/src/tiledbsoma/soma_vfs.cc b/apis/python/src/tiledbsoma/soma_vfs.cc new file mode 100644 index 0000000000..14202fd975 --- /dev/null +++ b/apis/python/src/tiledbsoma/soma_vfs.cc @@ -0,0 +1,66 @@ +/** + * @file soma_vfs.cc + * + * @section LICENSE + * + * The MIT License + * + * @copyright Copyright (c) 2024 TileDB, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @section DESCRIPTION + * + * This file defines the VFS bindings. + */ + +#include "common.h" + +namespace libtiledbsomacpp { + +namespace py = pybind11; +using namespace py::literals; +using namespace tiledbsoma; +using VFSFilebuf = tiledb::impl::VFSFilebuf; + +// TODO This temporary workaround prevents namespace clash with tiledb-py. +// Bind tiledb::VFS directly once tiledb-py dependency is removed +class SOMAVFS : public tiledb::VFS { + public: + using tiledb::VFS::VFS; +}; + +void load_soma_vfs(py::module& m) { + py::class_(m, "SOMAVFS") + .def( + py::init([](std::shared_ptr context) { + return SOMAVFS(*context->tiledb_ctx()); + }), + "ctx"_a); + + py::class_(m, "SOMAVFSFilebuf") + .def(py::init()) + .def( + "open", + [](VFSFilebuf& buf, const std::string& uri) { + return buf.open(uri, std::ios::in); + }) + .def("close", &VFSFilebuf::close, "should_throw"_a = true); +} +} // namespace libtiledbsomacpp diff --git a/apis/python/tests/_util.py b/apis/python/tests/_util.py index b2946e67d3..e2f15ce8c1 100644 --- a/apis/python/tests/_util.py +++ b/apis/python/tests/_util.py @@ -13,6 +13,13 @@ from numpy import array_equal from pandas._testing import assert_frame_equal, assert_series_equal from scipy.sparse import spmatrix +from somacore import ( + AffineTransform, + CoordinateTransform, + IdentityTransform, + ScaleTransform, + UniformScaleTransform, +) from typeguard import suppress_type_checks @@ -72,6 +79,28 @@ def assert_adata_equal(ad0: AnnData, ad1: AnnData): assert_array_dicts_equal(ad0.varp, ad1.varp) +def assert_transform_equal( + actual: CoordinateTransform, expected: CoordinateTransform +) -> None: + assert actual.input_axes == expected.input_axes + assert actual.output_axes == expected.output_axes + if isinstance(expected, IdentityTransform): + assert isinstance(actual, IdentityTransform) + elif isinstance(expected, UniformScaleTransform): + assert isinstance(actual, UniformScaleTransform) + assert actual.scale == expected.scale + elif isinstance(expected, ScaleTransform): + assert isinstance(actual, ScaleTransform) + np.testing.assert_array_equal(actual.scale_factors, expected.scale_factors) + elif isinstance(expected, AffineTransform): + assert isinstance(actual, AffineTransform) + np.testing.assert_array_equal( + actual.augmented_matrix, expected.augmented_matrix + ) + else: + assert False + + def parse_col(col_str: str) -> Tuple[Optional[str], List[str]]: """Parse a "column string" of the form ``val1,val2,...`` or ``name=val1,val2,...``.""" pcs = col_str.split("=") diff --git a/apis/python/tests/test_aaa_setup.py b/apis/python/tests/test_aaa_setup.py new file mode 100644 index 0000000000..b8e2a63ad4 --- /dev/null +++ b/apis/python/tests/test_aaa_setup.py @@ -0,0 +1,9 @@ +#!/usr/bin/env python + +import os + +TEST_DIR = os.path.dirname(__file__) +SOMA_URI = f"{TEST_DIR}/../../../test/soco/pbmc3k_processed" + +if not os.path.exists(SOMA_URI): + raise RuntimeError("Please run `make data` in the repo base directory") diff --git a/apis/python/tests/test_basic_anndata_io.py b/apis/python/tests/test_basic_anndata_io.py index 5998290263..0b6d8f95b9 100644 --- a/apis/python/tests/test_basic_anndata_io.py +++ b/apis/python/tests/test_basic_anndata_io.py @@ -1,5 +1,4 @@ import json -import pathlib import tempfile from copy import deepcopy from pathlib import Path @@ -19,7 +18,6 @@ from tiledbsoma import Experiment, _constants, _factory from tiledbsoma._soma_object import SOMAObject from tiledbsoma.io._common import _TILEDBSOMA_TYPE, UnsDict, UnsMapping -import tiledb from ._util import TESTDATA, assert_adata_equal, make_pd_df @@ -176,12 +174,8 @@ def test_import_anndata(conftest_pbmc_small, ingest_modes, X_kind): assert X.used_shape() == tuple([(0, e - 1) for e in orig.shape]) else: assert X.metadata.get(metakey) == "SOMADenseNDArray" - if have_ingested: - matrix = X.read(coords=all2d) - assert matrix.size == orig.X.size - else: - with pytest.raises(ValueError): - X.read(coords=all2d) + matrix = X.read(coords=all2d) + assert matrix.size == orig.X.size # Check raw/X/data (sparse) assert exp.ms["raw"].X["data"].metadata.get(metakey) == "SOMASparseNDArray" @@ -269,7 +263,8 @@ def test_named_X_layers(conftest_pbmc_small_h5ad_path, X_layer_name): def _get_fragment_count(array_uri): - return len(tiledb.fragment.FragmentInfoList(array_uri=array_uri)) + fragment_uri = Path(array_uri) / "__fragments" + return len(list(fragment_uri.iterdir())) if fragment_uri.exists() else 0 @pytest.mark.parametrize( @@ -357,42 +352,35 @@ def test_ingest_relative(conftest_pbmc3k_h5ad_path, use_relative_uri): if use_relative_uri is None: expected_relative = True # since local disk - exp = tiledbsoma.open(output_path) - with tiledb.Group(exp.uri) as G: - assert G.is_relative("obs") == expected_relative - assert G.is_relative("ms") == expected_relative - - with tiledb.Group(exp.ms.uri) as G: - assert G.is_relative("RNA") == expected_relative - with tiledb.Group(exp.ms["RNA"].uri) as G: - assert G.is_relative("var") == expected_relative - assert G.is_relative("X") == expected_relative - with tiledb.Group(exp.ms["RNA"].X.uri) as G: - assert G.is_relative("data") == expected_relative - - for collection_name in [ - "obsm", - "obsp", - "varm", - ]: # conftest_h5ad_file_extended has no varp - with tiledb.Group(exp.ms["RNA"][collection_name].uri) as G: - for member in G: - assert G.is_relative(member.name) == expected_relative - - with tiledb.Group(exp.ms.uri) as G: - assert G.is_relative("raw") == expected_relative - with tiledb.Group(exp.ms["raw"].uri) as G: - assert G.is_relative("var") == expected_relative - assert G.is_relative("X") == expected_relative - with tiledb.Group(exp.ms["raw"].X.uri) as G: - assert G.is_relative("data") == expected_relative - - exp.close() + with tiledbsoma.Experiment.open(output_path) as G: + assert G._handle._handle.is_relative("obs") == expected_relative + assert G._handle._handle.is_relative("ms") == expected_relative + + assert G.ms._handle._handle.is_relative("RNA") == expected_relative + assert G.ms["RNA"]._handle._handle.is_relative("var") == expected_relative + assert G.ms["RNA"]._handle._handle.is_relative("X") == expected_relative + assert G.ms["RNA"].X._handle._handle.is_relative("data") == expected_relative + + for collection_name in [ + "obsm", + "obsp", + "varm", + ]: # conftest_h5ad_file_extended has no varp + for member in G.ms["RNA"][collection_name]: + assert ( + G.ms["RNA"][collection_name]._handle._handle.is_relative(member) + == expected_relative + ) + + assert G.ms._handle._handle.is_relative("raw") == expected_relative + assert G.ms["raw"]._handle._handle.is_relative("var") == expected_relative + assert G.ms["raw"]._handle._handle.is_relative("X") == expected_relative + assert G.ms["raw"].X._handle._handle.is_relative("data") == expected_relative @pytest.mark.parametrize("ingest_uns_keys", [["louvain_colors"], None]) def test_ingest_uns( - tmp_path: pathlib.Path, + tmp_path: Path, conftest_pbmc3k_h5ad_path, conftest_pbmc3k_adata, ingest_uns_keys, @@ -771,24 +759,24 @@ def test_null_obs(conftest_pbmc_small, tmp_path: Path): ) assert_adata_equal(original, conftest_pbmc_small) - exp = tiledbsoma.Experiment.open(uri) - with tiledb.open(exp.obs.uri, "r") as obs: - # Explicitly check columns created above - assert obs.attr("empty_categorical_all").isnullable - assert obs.attr("empty_categorical_partial").isnullable - assert obs.attr("empty_extension_all").isnullable - assert obs.attr("empty_extension_partial").isnullable - # For every column in the data frame - # ensure that `isnullable` reflects the null-ness - # of the Pandas data frame + with tiledbsoma.Experiment.open(uri) as exp: + schema = exp.obs.schema.field + + # Explicitly check columns created above + assert schema("empty_categorical_all").nullable + assert schema("empty_categorical_partial").nullable + assert schema("empty_extension_all").nullable + assert schema("empty_extension_partial").nullable + + # For every column in the data frame ensure that `isnullable` reflects + # he null-ness of the Pandas data frame for k in conftest_pbmc_small.obs: - assert obs.attr(k).isnullable + assert schema(k).nullable def test_export_obsm_with_holes(h5ad_file_with_obsm_holes, tmp_path): adata = anndata.read_h5ad(h5ad_file_with_obsm_holes.as_posix()) original = adata.copy() - assert 1 == 1 # This data file is prepared such that obsm["X_pca"] has shape (2638, 50) # but its [0][0] element is a 0, so when it's stored as sparse, its nnz @@ -801,48 +789,47 @@ def test_export_obsm_with_holes(h5ad_file_with_obsm_holes, tmp_path): assert_adata_equal(original, adata) - exp = tiledbsoma.Experiment.open(output_path) - # Verify the bounding box on the SOMA SparseNDArray - with tiledb.open(exp.ms["RNA"].obsm["X_pca"].uri) as so: - assert so.meta["soma_dim_0_domain_lower"] == 0 - assert so.meta["soma_dim_0_domain_upper"] == 2637 - assert so.meta["soma_dim_1_domain_lower"] == 0 - assert so.meta["soma_dim_1_domain_upper"] == 49 + with tiledbsoma.Experiment.open(output_path) as exp: + meta = exp.ms["RNA"].obsm["X_pca"].metadata + assert meta["soma_dim_0_domain_lower"] == 0 + assert meta["soma_dim_0_domain_upper"] == 2637 + assert meta["soma_dim_1_domain_lower"] == 0 + assert meta["soma_dim_1_domain_upper"] == 49 - # With the bounding box present, all is well for outgest to AnnData format. - try1 = tiledbsoma.io.to_anndata(exp, "RNA") - assert try1.obsm["X_pca"].shape == (2638, 50) + # With the bounding box present, all is well for outgest to AnnData format. + try1 = tiledbsoma.io.to_anndata(exp, "RNA") + assert try1.obsm["X_pca"].shape == (2638, 50) # Now remove the bounding box to simulate reading older data that lacks a bounding box. - with tiledb.open(exp.ms["RNA"].obsm["X_pca"].uri, "w") as so: - del so.meta["soma_dim_0_domain_lower"] - del so.meta["soma_dim_0_domain_upper"] - del so.meta["soma_dim_1_domain_lower"] - del so.meta["soma_dim_1_domain_upper"] + with tiledbsoma.Experiment.open(output_path, "w") as exp: + meta = exp.ms["RNA"].obsm["X_pca"].metadata + del meta["soma_dim_0_domain_lower"] + del meta["soma_dim_0_domain_upper"] + del meta["soma_dim_1_domain_lower"] + del meta["soma_dim_1_domain_upper"] # Re-open to simulate opening afresh a bounding-box-free array. - exp = tiledbsoma.Experiment.open(output_path) - - with tiledb.open(exp.ms["RNA"].obsm["X_pca"].uri) as so: + with tiledbsoma.Experiment.open(output_path) as exp: + meta = exp.ms["RNA"].obsm["X_pca"].metadata with pytest.raises(KeyError): - so.meta["soma_dim_0_domain_lower"] + meta["soma_dim_0_domain_lower"] with pytest.raises(KeyError): - so.meta["soma_dim_0_domain_upper"] + meta["soma_dim_0_domain_upper"] with pytest.raises(KeyError): - so.meta["soma_dim_1_domain_lower"] + meta["soma_dim_1_domain_lower"] with pytest.raises(KeyError): - so.meta["soma_dim_1_domain_upper"] - assert so.meta["soma_object_type"] == "SOMASparseNDArray" + meta["soma_dim_1_domain_upper"] + assert meta["soma_object_type"] == "SOMASparseNDArray" - # Now try the remaining options for outgest. - with pytest.raises(tiledbsoma.SOMAError): - tiledbsoma.io.to_anndata(exp, "RNA") + # Now try the remaining options for outgest. + with pytest.raises(tiledbsoma.SOMAError): + tiledbsoma.io.to_anndata(exp, "RNA") - try3 = tiledbsoma.io.to_anndata( - exp, "RNA", obsm_varm_width_hints={"obsm": {"X_pca": 50}} - ) - assert try3.obsm["X_pca"].shape == (2638, 50) + try3 = tiledbsoma.io.to_anndata( + exp, "RNA", obsm_varm_width_hints={"obsm": {"X_pca": 50}} + ) + assert try3.obsm["X_pca"].shape == (2638, 50) def test_X_empty(h5ad_file_X_empty): @@ -1349,6 +1336,11 @@ def test_nan_append(conftest_pbmc_small, dtype, nans, new_obs_ids): var_field_name="var_id", ) + if tiledbsoma._flags.NEW_SHAPE_FEATURE_FLAG_ENABLED: + nobs = rd.get_obs_shape() + nvars = rd.get_var_shapes() + tiledbsoma.io.resize_experiment(SOMA_URI, nobs=nobs, nvars=nvars) + # Append the second anndata object tiledbsoma.io.from_anndata( experiment_uri=SOMA_URI, diff --git a/apis/python/tests/test_collection.py b/apis/python/tests/test_collection.py index eafb0a8633..adadddbcb7 100644 --- a/apis/python/tests/test_collection.py +++ b/apis/python/tests/test_collection.py @@ -29,7 +29,7 @@ def create_and_populate_dataframe(path: str) -> soma.DataFrame: ] ) - with soma.DataFrame.create(path, schema=arrow_schema) as df: + with soma.DataFrame.create(path, schema=arrow_schema, domain=[[0, 999]]) as df: pydict = {} pydict["soma_joinid"] = [0, 1, 2, 3, 4] pydict["foo"] = [10, 20, 30, 40, 50] diff --git a/apis/python/tests/test_context.py b/apis/python/tests/test_context.py index 68cef0fe99..14d474abe5 100644 --- a/apis/python/tests/test_context.py +++ b/apis/python/tests/test_context.py @@ -6,40 +6,27 @@ import tiledbsoma import tiledbsoma.options._soma_tiledb_context as stc -import tiledb - - -@pytest.fixture(autouse=True) -def global_ctx_reset(): - stc._default_global_ctx.cache_clear() - yield +import tiledbsoma.pytiledbsoma as clib def test_lazy_init(): """Verifies we don't construct a Ctx until we have to.""" - with mock.patch.object(tiledb, "Ctx", wraps=tiledb.Ctx) as mock_ctx: + with mock.patch.object(clib, "SOMAContext", wraps=clib.SOMAContext) as mock_ctx: context = stc.SOMATileDBContext(tiledb_config={}) assert context.tiledb_config == { "sm.mem.reader.sparse_global_order.ratio_array_data": 0.3 } mock_ctx.assert_not_called() - assert context._tiledb_ctx is None + assert context._native_context is None # Invoke the @property twice to ensure we only build one Ctx. - with pytest.deprecated_call(): - assert context.tiledb_ctx is context.tiledb_ctx + assert context.native_context is not None + assert context.native_context is context.native_context mock_ctx.assert_called_once() -def test_tiledb_ctx_init(): - config = {"hither": "yon"} - with pytest.deprecated_call(): - context = stc.SOMATileDBContext(tiledb_ctx=tiledb.Ctx(config)) - assert "hither" in context.tiledb_config - - def test_lazy_replace_config(): """Verifies we don't construct a Ctx even if we call ``.replace``.""" - with mock.patch.object(tiledb, "Ctx", wraps=tiledb.Ctx) as mock_ctx: + with mock.patch.object(clib, "SOMAContext", wraps=clib.SOMAContext) as mock_ctx: context = stc.SOMATileDBContext() new_context = context.replace(tiledb_config={"hello": "goodbye"}) assert new_context.tiledb_config == { @@ -66,8 +53,7 @@ def test_shared_ctx(): """Verifies that one global context is shared by default.""" ctx = stc.SOMATileDBContext() ctx_2 = stc.SOMATileDBContext() - with pytest.deprecated_call(): - assert ctx.tiledb_ctx is ctx_2.tiledb_ctx + assert ctx.native_context is ctx_2.native_context def test_unshared_ctx(): @@ -75,9 +61,8 @@ def test_unshared_ctx(): ctx = stc.SOMATileDBContext() ctx_2 = stc.SOMATileDBContext(tiledb_config={}) ctx_3 = stc.SOMATileDBContext(tiledb_config={}) - with pytest.deprecated_call(): - assert ctx.tiledb_ctx is not ctx_2.tiledb_ctx - assert ctx_2.tiledb_ctx is not ctx_3.tiledb_ctx + assert ctx.native_context is not ctx_2.native_context + assert ctx_2.native_context is not ctx_3.native_context def test_replace_timestamp(): @@ -95,22 +80,15 @@ def test_replace_timestamp(): assert no_ts_ctx.timestamp is None -def test_replace_context(): - with pytest.deprecated_call(): - orig_ctx = stc.SOMATileDBContext(tiledb_ctx=tiledb.Ctx()) - new_tdb_ctx = tiledb.Ctx({"vfs.s3.region": "hy-central-1"}) - with pytest.deprecated_call(): - new_ctx = orig_ctx.replace(tiledb_ctx=new_tdb_ctx) - with pytest.deprecated_call(): - assert new_ctx.tiledb_ctx is new_tdb_ctx - - def test_replace_config_after_construction(): context = stc.SOMATileDBContext() # verify defaults expected by subsequent tests assert context.timestamp_ms is None - assert context.native_context.config()["vfs.s3.region"] == "us-east-1" + if tiledbsoma.pytiledbsoma.embedded_version_triple() < (2, 27, 0): + assert context.native_context.config()["vfs.s3.region"] == "us-east-1" + else: + assert context.native_context.config()["vfs.s3.region"] == "" now = int(time.time() * 1000) open_ts = context._open_timestamp_ms(None) @@ -123,13 +101,12 @@ def test_replace_config_after_construction(): assert context_ts_1._open_timestamp_ms(None) == 1 assert context_ts_1._open_timestamp_ms(2) == 2 - with mock.patch.object(tiledb, "Ctx", wraps=tiledb.Ctx) as mock_ctx: + with mock.patch.object(clib, "SOMAContext", wraps=clib.SOMAContext) as mock_ctx: # verify that the new context is lazily initialized. new_soma_ctx = context.replace(tiledb_config={"vfs.s3.region": "us-west-2"}) assert new_soma_ctx.tiledb_config["vfs.s3.region"] == "us-west-2" mock_ctx.assert_not_called() - with pytest.deprecated_call(): - new_tdb_ctx = new_soma_ctx.tiledb_ctx + new_tdb_ctx = new_soma_ctx.native_context mock_ctx.assert_called_once() assert new_tdb_ctx.config()["vfs.s3.region"] == "us-west-2" diff --git a/apis/python/tests/test_dataframe.py b/apis/python/tests/test_dataframe.py index f3297ab3ee..b24e4f90e0 100644 --- a/apis/python/tests/test_dataframe.py +++ b/apis/python/tests/test_dataframe.py @@ -1,7 +1,8 @@ import contextlib import datetime -import os -from typing import Dict, List +import json +from pathlib import Path +from typing import Any, Dict, List import numpy as np import pandas as pd @@ -11,7 +12,6 @@ from pandas.api.types import union_categoricals import tiledbsoma as soma -import tiledb from tests._util import raises_no_typeguard @@ -54,7 +54,9 @@ def test_dataframe(tmp_path, arrow_schema): with pytest.raises(ValueError): # nonexistent indexed column soma.DataFrame.create(uri, schema=asch, index_column_names=["bogus"]) - soma.DataFrame.create(uri, schema=asch, index_column_names=["foo"]).close() + soma.DataFrame.create( + uri, schema=asch, index_column_names=["foo"], domain=[[0, 99]] + ).close() assert soma.DataFrame.exists(uri) assert not soma.Collection.exists(uri) @@ -80,6 +82,9 @@ def test_dataframe(tmp_path, arrow_schema): pydict["quux"] = [True, False, False, True, False] rb = pa.Table.from_pydict(pydict) + if soma._flags.NEW_SHAPE_FEATURE_FLAG_ENABLED: + sdf.tiledbsoma_resize_soma_joinid_shape(len(rb)) + sdf.write(rb) with raises_no_typeguard(TypeError): @@ -138,12 +143,15 @@ def test_dataframe(tmp_path, arrow_schema): assert [e.as_py() for e in table["baz"]] == pydict["baz"] assert [e.as_py() for e in table["quux"]] == pydict["quux"] - # Validate TileDB array schema - with tiledb.open(uri) as A: - assert A.schema.sparse - assert not A.schema.allows_duplicates - assert A.dim("foo").filters == [tiledb.ZstdFilter(level=3)] - assert A.attr("bar").filters == [tiledb.ZstdFilter()] + with soma.DataFrame.open(uri) as A: + cfg = A.config_options_from_schema() + assert not cfg.allows_duplicates + assert json.loads(cfg.dims)["foo"]["filters"] == [ + {"COMPRESSION_LEVEL": 3, "name": "ZSTD"} + ] + assert json.loads(cfg.attrs)["bar"]["filters"] == [ + {"COMPRESSION_LEVEL": -1, "name": "ZSTD"} + ] with soma.DataFrame.open(uri) as sdf: assert sdf.count == 5 @@ -212,7 +220,9 @@ def test_dataframe_with_enumeration(tmp_path): ] ) enums = {"enmr1": ("a", "bb", "ccc"), "enmr2": ("cat", "dog")} - with soma.DataFrame.create(tmp_path.as_posix(), schema=schema) as sdf: + with soma.DataFrame.create( + tmp_path.as_posix(), schema=schema, domain=[[0, 5]] + ) as sdf: data = {} data["soma_joinid"] = [0, 1, 2, 3, 4] data["foo"] = ["a", "bb", "ccc", "bb", "a"] @@ -246,7 +256,10 @@ def simple_data_frame(tmp_path): ) index_column_names = ["index"] with soma.DataFrame.create( - tmp_path.as_posix(), schema=schema, index_column_names=index_column_names + tmp_path.as_posix(), + schema=schema, + index_column_names=index_column_names, + domain=[[0, 3]], ) as sdf: data = { "index": [0, 1, 2, 3], @@ -413,7 +426,7 @@ def test_columns(tmp_path): @pytest.fixture def make_dataframe(request): - index_type = request.param + index_type, domain = request.param index = { pa.string(): ["A", "B", "C"], @@ -445,38 +458,43 @@ def make_dataframe(request): "float32": np.array([0.0, 1.1, 2.2], np.float32), } ) - return pa.Table.from_pandas(df) + return [pa.Table.from_pandas(df), domain] @pytest.mark.parametrize( "make_dataframe", [ - pa.float32(), - pa.float64(), - pa.int8(), - pa.uint8(), - pa.int16(), - pa.uint16(), - pa.int32(), - pa.uint32(), - pa.int64(), - pa.uint64(), - pa.string(), - pa.large_string(), - pa.binary(), - pa.large_binary(), + [pa.float32(), [[-1000, 1000]]], + [pa.float64(), [[-1000, 1000]]], + [pa.int8(), [[-100, 100]]], + [pa.uint8(), [[0, 100]]], + [pa.int16(), [[-1000, 1000]]], + [pa.uint16(), [[0, 1000]]], + [pa.int32(), [[-1000, 1000]]], + [pa.uint32(), [[0, 1000]]], + [pa.int64(), [[-1000, 1000]]], + [pa.uint64(), [[0, 1000]]], + [pa.string(), [None]], + [pa.large_string(), [None]], + [pa.binary(), [None]], + [pa.large_binary(), [None]], ], indirect=True, ) def test_index_types(tmp_path, make_dataframe): """Verify that the index columns can be of various types""" sdf = soma.DataFrame.create( - tmp_path.as_posix(), schema=make_dataframe.schema, index_column_names=["index"] + tmp_path.as_posix(), + schema=make_dataframe[0].schema, + index_column_names=["index"], + domain=make_dataframe[1], ) - sdf.write(make_dataframe) + sdf.write(make_dataframe[0]) -def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): +def make_multiply_indexed_dataframe( + tmp_path, index_column_names: List[str], domain: List[Any] +): """ Creates a variably-indexed DataFrame for use in tests below. """ @@ -495,7 +513,10 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): ) sdf = soma.DataFrame.create( - uri=tmp_path.as_posix(), schema=schema, index_column_names=index_column_names + uri=tmp_path.as_posix(), + schema=schema, + index_column_names=index_column_names, + domain=domain, ) data: Dict[str, list] = { @@ -520,6 +541,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "1D indexing slot is None", "index_column_names": ["0_thru_5"], + "domain": [[-1000, 1000]], "coords": [None], "A": [10, 11, 12, 13, 14, 15], "throws": None, @@ -527,6 +549,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "1D indexing slot is int", "index_column_names": ["0_thru_5"], + "domain": [[-1000, 1000]], "coords": [0], "A": [10], "throws": None, @@ -534,6 +557,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "1D no results for 100", "index_column_names": ["0_thru_5"], + "domain": [[-1000, 1000]], "coords": [100], "A": [], "throws": None, @@ -541,6 +565,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "1D no results for -100", "index_column_names": ["0_thru_5"], + "domain": [[-1000, 1000]], "coords": [-100], "A": [], "throws": None, @@ -548,6 +573,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "1D indexing slot is list", "index_column_names": ["0_thru_5"], + "domain": [[-1000, 1000]], "coords": [[1, 3]], "A": [11, 13], "throws": None, @@ -555,6 +581,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "1D no results for -100, 100", "index_column_names": ["0_thru_5"], + "domain": [[-1000, 1000]], "coords": [[-100, 100]], "A": [], "throws": None, @@ -562,6 +589,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "1D empty list returns empty results", "index_column_names": ["0_thru_5"], + "domain": [[-1000, 1000]], "coords": [[]], "A": [], "throws": None, @@ -569,6 +597,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "1D indexing slot is tuple", "index_column_names": ["0_thru_5"], + "domain": [[-1000, 1000]], "coords": [(1, 3)], "A": [11, 13], "throws": None, @@ -576,6 +605,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "1D indexing slot is range", "index_column_names": ["0_thru_5"], + "domain": [[-1000, 1000]], "coords": [range(1, 3)], "A": [11, 12], "throws": None, @@ -583,6 +613,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "1D indexing slot is pa.ChunkedArray", "index_column_names": ["0_thru_5"], + "domain": [[-1000, 1000]], "coords": [pa.chunked_array(pa.array([1, 3]))], "A": [11, 13], "throws": None, @@ -590,6 +621,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "1D indexing slot is pa.Array", "index_column_names": ["0_thru_5"], + "domain": [[-1000, 1000]], "coords": [pa.array([1, 3])], "A": [11, 13], "throws": None, @@ -598,6 +630,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "1D indexing slot is np.ndarray", "index_column_names": ["0_thru_5"], + "domain": [[-1000, 1000]], "coords": [np.asarray([1, 3])], "A": [11, 13], "throws": None, @@ -605,6 +638,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "1D indexing by 2D np.ndarray", "index_column_names": ["0_thru_5"], + "domain": [[-1000, 1000]], "coords": [ np.asarray([[1, 3], [2, 4]]) ], # Error since 2D array in the slot @@ -614,6 +648,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "1D indexing by slice(None)", "index_column_names": ["0_thru_5"], + "domain": [[-1000, 1000]], "coords": [ slice(None) ], # Indexing slot is none-slice i.e. `[:]` which is like None @@ -623,6 +658,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "1D indexing by empty coords", "index_column_names": ["0_thru_5"], + "domain": [[-1000, 1000]], "coords": [], "A": [10, 11, 12, 13, 14, 15], "throws": None, @@ -630,6 +666,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "1D indexing by 1:3", "index_column_names": ["0_thru_5"], + "domain": [[-1000, 1000]], "coords": [slice(1, 3)], # Indexing slot is double-ended slice "A": [11, 12, 13], "throws": None, @@ -637,6 +674,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "1D indexing by [:3]", "index_column_names": ["0_thru_5"], + "domain": [[-1000, 1000]], "coords": [slice(None, 3)], # Half-slice "A": [10, 11, 12, 13], "throws": None, @@ -644,6 +682,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "1D indexing by [2:]", "index_column_names": ["0_thru_5"], + "domain": [[-1000, 1000]], "coords": [slice(2, None)], # Half-slice "A": [12, 13, 14, 15], "throws": None, @@ -651,6 +690,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "1D indexing with negatives", "index_column_names": ["both_signs"], + "domain": [[-10, 10]], "coords": [slice(-2, 1)], "A": [11, 10, 13], "throws": None, @@ -658,6 +698,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "1D indexing by ['bbb':'c']", "index_column_names": ["strings_aaa", "zero_one"], + "domain": [None, [0, 1]], "coords": [slice("bbb", "c")], "A": [12, 13], "throws": None, @@ -665,6 +706,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "1D indexing by ['ccc':]", "index_column_names": ["strings_aaa", "zero_one"], + "domain": [None, [0, 1]], "coords": [slice("ccc", None)], "A": [14, 15], "throws": None, @@ -672,6 +714,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "1D indexing by [:'bbd']", "index_column_names": ["strings_aaa", "zero_one"], + "domain": [None, [0, 1]], "coords": [slice("bbd")], "A": [10, 11, 12, 13], "throws": None, @@ -679,6 +722,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "1D indexing with one partition", "index_column_names": ["0_thru_5"], + "domain": [[0, 8]], "coords": [slice(2, None)], "partitions": somacore.IOfN(0, 1), "A": [12, 13, 14, 15], @@ -687,6 +731,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "partitioned reads unimplemented", "index_column_names": ["0_thru_5"], + "domain": [[0, 8]], "coords": [], "partitions": somacore.IOfN(1, 2), "A": None, @@ -695,6 +740,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "steps forbidden", "index_column_names": ["0_thru_5"], + "domain": [[0, 8]], "coords": [slice(1, 5, 2)], "A": None, "throws": ValueError, @@ -702,6 +748,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "slice must overlap domain (negative)", "index_column_names": ["soma_joinid"], + "domain": [[0, 59]], "coords": [slice(-2, -1)], "A": None, "throws": ValueError, @@ -709,6 +756,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "backwards slice", "index_column_names": ["0_thru_5"], + "domain": [[-1000, 1000]], "coords": [slice(1, 0)], "A": None, "throws": ValueError, @@ -716,6 +764,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "too many columns", "index_column_names": ["0_thru_5"], + "domain": [[-1000, 1000]], "coords": [(1,), (2,)], "A": None, "throws": ValueError, @@ -723,6 +772,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "wrong coords type", "index_column_names": ["0_thru_5"], + "domain": [[-1000, 1000]], "coords": "bogus", "A": None, "throws": TypeError, @@ -730,13 +780,17 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "bad index type dict", "index_column_names": ["0_thru_5"], + "domain": [[-1000, 1000]], "coords": [{"bogus": True}], "A": None, - "throws": TypeError, + # Disable Typeguard while asserting this error, otherwise a typeguard.TypeCheckError is + # raised (though that's not what would happen in production) + "throws": (TypeError, False), }, { "name": "bad index type bool", "index_column_names": ["strings_aaa", "zero_one"], + "domain": [None, [0, 1]], "coords": [[True], slice(None)], "A": None, "throws": TypeError, @@ -744,6 +798,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "2D index empty", "index_column_names": ["strings_aaa", "zero_one"], + "domain": [None, [0, 1]], "coords": (), "A": [10, 11, 12, 13, 14, 15], "throws": None, @@ -751,6 +806,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "2D index None", "index_column_names": ["strings_aaa", "zero_one"], + "domain": [None, [0, 1]], "coords": [None, None], "A": [10, 11, 12, 13, 14, 15], "throws": None, @@ -758,6 +814,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "2D index 0, 0", "index_column_names": ["0_thru_5", "zero_one"], + "domain": [[-1000, 1000], [0, 1]], "coords": [0, 0], "A": [10], "throws": None, @@ -765,6 +822,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "2D index str, int", "index_column_names": ["strings_aaa", "zero_one"], + "domain": [None, [0, 1]], "coords": [["aaa"], 0], "A": [10], "throws": None, @@ -772,6 +830,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "2D index str, not sequence[str]", "index_column_names": ["strings_aaa", "zero_one"], + "domain": [None, [0, 1]], "coords": ["aaa", 0], "A": [10], "throws": None, @@ -779,6 +838,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "2D index List[str]", "index_column_names": ["strings_aaa", "zero_one"], + "domain": [None, [0, 1]], "coords": [["aaa", "ccc"], None], "A": [10, 11, 14, 15], "throws": None, @@ -786,6 +846,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "3D index List[str]", "index_column_names": ["strings_aaa", "zero_one", "thousands"], + "domain": [None, [0, 1], [0, 9999]], "coords": [["aaa", "ccc"], None, None], "A": [10, 11, 14, 15], "throws": None, @@ -793,6 +854,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "3D index mixed", "index_column_names": ["strings_aaa", "zero_one", "thousands"], + "domain": [None, [0, 1], [0, 9999]], "coords": [("aaa", "ccc"), None, np.asarray([2000, 9999])], "A": [11], "throws": None, @@ -800,6 +862,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "value filter good", "index_column_names": ["0_thru_5", "strings_aaa"], + "domain": [[-1000, 1000], None], "coords": [None, ("ccc", "zzz")], "value_filter": "soma_joinid > 13", "A": [14, 15], @@ -807,6 +870,7 @@ def make_multiply_indexed_dataframe(tmp_path, index_column_names: List[str]): { "name": "value filter bad", "index_column_names": ["0_thru_5", "strings_aaa"], + "domain": [[-1000, 1000], None], "coords": [None, ("bbb", "zzz")], "value_filter": "quick brown fox", "A": None, @@ -819,7 +883,7 @@ def test_read_indexing(tmp_path, io): """Test various ways of indexing on read""" schema, sdf, n_data = make_multiply_indexed_dataframe( - tmp_path, io["index_column_names"] + tmp_path, io["index_column_names"], io["domain"] ) with soma.DataFrame.open(uri=sdf.uri) as sdf: assert list(sdf.index_column_names) == io["index_column_names"] @@ -828,15 +892,30 @@ def test_read_indexing(tmp_path, io): read_kwargs.update( {k: io[k] for k in ("coords", "partitions", "value_filter") if k in io} ) - if io.get("throws", None): - with pytest.raises(io["throws"]): + + # `throws` can be `Type[Exception]`, or `(Type[Exception], bool)` indicating explicitly + # whether Typeguard should be enabled during the `with raises` check. + throws = io.get("throws", None) + if throws: + if isinstance(throws, tuple) and not throws[1]: + # Disable Typeguard, verify actual runtime error type (avoid + # `typeguard.TypeCheckError` short-circuit) + throws = throws[0] + throws_ctx = raises_no_typeguard + else: + throws_ctx = pytest.raises + else: + throws_ctx = None + + if throws_ctx: + with throws_ctx(throws): next(sdf.read(**read_kwargs)) else: table = next(sdf.read(**read_kwargs)) assert table["A"].to_pylist() == io["A"] - if io.get("throws", None): - with pytest.raises(io["throws"]): + if throws_ctx: + with throws_ctx(throws): next(sdf.read(**read_kwargs)).to_pandas() else: table = next(sdf.read(**read_kwargs)).to_pandas() @@ -865,7 +944,10 @@ def test_write_categorical_types(tmp_path): ] ) with soma.DataFrame.create( - tmp_path.as_posix(), schema=schema, index_column_names=["soma_joinid"] + tmp_path.as_posix(), + schema=schema, + index_column_names=["soma_joinid"], + domain=[[0, 3]], ) as sdf: df = pd.DataFrame( data={ @@ -975,6 +1057,7 @@ def test_write_categorical_dim_extend(tmp_path, index_type): tmp_path.as_posix(), schema=schema, index_column_names=["soma_joinid"], + domain=[[0, 5]], ) as sdf: table = pa.Table.from_pandas(df1) dtype = pa.dictionary(index_type, pa.string()) @@ -1009,7 +1092,10 @@ def test_result_order(tmp_path): ] ) with soma.DataFrame.create( - uri=tmp_path.as_posix(), schema=schema, index_column_names=["row", "col"] + uri=tmp_path.as_posix(), + schema=schema, + index_column_names=["row", "col"], + domain=[[0, 15], [0, 15]], ) as sdf: data = { "row": [0] * 4 + [1] * 4 + [2] * 4 + [3] * 4, @@ -1052,21 +1138,21 @@ def test_result_order(tmp_path): ( {"allows_duplicates": True}, { - "validity_filters": tiledb.FilterList([tiledb.RleFilter()]), + "validity_filters": [{"COMPRESSION_LEVEL": -1, "name": "RLE"}], "allows_duplicates": True, }, ), ( {"allows_duplicates": False}, { - "validity_filters": tiledb.FilterList([tiledb.RleFilter()]), + "validity_filters": [{"COMPRESSION_LEVEL": -1, "name": "RLE"}], "allows_duplicates": False, }, ), ( {"validity_filters": ["NoOpFilter"], "allows_duplicates": False}, { - "validity_filters": tiledb.FilterList([tiledb.NoOpFilter()]), + "validity_filters": [{"name": "NOOP"}], "allows_duplicates": False, }, ), @@ -1081,9 +1167,13 @@ def test_create_platform_config_overrides( schema=pa.schema([pa.field("colA", pa.string())]), platform_config={"tiledb": {"create": {**create_options}}}, ).close() - with tiledb.open(uri) as D: - for k, v in expected_schema_fields.items(): - assert getattr(D.schema, k) == v + + with soma.DataFrame.open(tmp_path.as_posix()) as A: + cfg = A.config_options_from_schema() + assert expected_schema_fields["validity_filters"] == json.loads( + cfg.validity_filters + ) + assert expected_schema_fields["allows_duplicates"] == cfg.allows_duplicates @pytest.mark.parametrize("allows_duplicates", [False, True]) @@ -1105,6 +1195,7 @@ def test_timestamped_ops(tmp_path, allows_duplicates, consolidate): uri, schema=schema, index_column_names=["soma_joinid"], + domain=[[0, 1]], tiledb_timestamp=start, platform_config=platform_config, ) as sidf: @@ -1124,20 +1215,18 @@ def test_timestamped_ops(tmp_path, allows_duplicates, consolidate): "float": [200.2, 300.3], "string": ["ball", "cat"], } - sidf.write(pa.Table.from_pydict(data)) - assert sidf.tiledb_timestamp_ms == 1615403005000 - assert sidf.tiledb_timestamp.isoformat() == "2021-03-10T19:03:25+00:00" - - # Without consolidate: - # * There are two fragments: - # o One with tiledb.fragment.FragmentInfoList[i].timestamp_range = (10, 10) - # o One with tiledb.fragment.FragmentInfoList[i].timestamp_range = (20, 20) - # With consolidate: - # * There is one fragment: - # o One with tiledb.fragment.FragmentInfoList[i].timestamp_range = (10, 20) - if consolidate: - tiledb.consolidate(uri) - tiledb.vacuum(uri) + + # Without consolidate: + # * There are two fragments: + # o One with tiledb.fragment.FragmentInfoList[i].timestamp_range = (10, 10) + # o One with tiledb.fragment.FragmentInfoList[i].timestamp_range = (20, 20) + # With consolidate: + # * There is one fragment: + # o One with tiledb.fragment.FragmentInfoList[i].timestamp_range = (10, 20) + sidf.write( + pa.Table.from_pydict(data), + soma.TileDBWriteOptions(consolidate_and_vacuum=consolidate), + ) # read without timestamp (i.e., after final write) & see final image with soma.DataFrame.open(uri) as sidf: @@ -1248,7 +1337,9 @@ def test_extend_enumerations(tmp_path): schema = pa.Schema.from_pandas(written_df, preserve_index=False) - with soma.DataFrame.create(str(tmp_path), schema=schema) as soma_dataframe: + with soma.DataFrame.create( + str(tmp_path), schema=schema, domain=[[0, 9]] + ) as soma_dataframe: tbl = pa.Table.from_pandas(written_df, preserve_index=False) soma_dataframe.write(tbl) @@ -1278,7 +1369,7 @@ def test_multiple_writes_with_str_enums(tmp_path): ), ] ) - soma.DataFrame.create(uri, schema=schema).close() + soma.DataFrame.create(uri, schema=schema, domain=[[0, 7]]).close() df1 = pd.DataFrame( { @@ -1349,7 +1440,7 @@ def test_multiple_writes_with_int_enums(tmp_path): ), ] ) - soma.DataFrame.create(uri, schema=schema).close() + soma.DataFrame.create(uri, schema=schema, domain=[[0, 9]]).close() df1 = pd.DataFrame( { @@ -1431,7 +1522,9 @@ def test_multichunk(tmp_path): expected_df = pd.concat([df_0, df_1, df_2], ignore_index=True) soma.DataFrame.create( - uri, schema=pa.Schema.from_pandas(df_0, preserve_index=False) + uri, + schema=pa.Schema.from_pandas(df_0, preserve_index=False), + domain=[[0, 11]], ).close() with soma.open(uri, mode="w") as A: @@ -1480,7 +1573,9 @@ def test_multichunk_with_enums(tmp_path): expected_df = pd.concat([df_0, df_1, df_2], ignore_index=True) soma.DataFrame.create( - uri, schema=pa.Schema.from_pandas(df_0, preserve_index=False) + uri, + schema=pa.Schema.from_pandas(df_0, preserve_index=False), + domain=[[0, 11]], ).close() with soma.open(uri, mode="w") as A: @@ -1525,7 +1620,7 @@ def test_enum_extend_past_numerical_limit(tmp_path): ), ] ) - soma.DataFrame.create(uri, schema=schema).close() + soma.DataFrame.create(uri, schema=schema, domain=[[0, 999]]).close() n_elem = 132 n_cats = 127 @@ -1583,29 +1678,10 @@ def test_enum_schema_report(tmp_path): arrow_schema = pa.Schema.from_pandas(pandas_df, preserve_index=False) - with soma.DataFrame.create(uri, schema=arrow_schema) as sdf: + with soma.DataFrame.create(uri, schema=arrow_schema, domain=[[0, 5]]) as sdf: arrow_table = pa.Table.from_pandas(pandas_df, preserve_index=False) sdf.write(arrow_table) - # Double-check against TileDB-Py reporting - with tiledb.open(uri) as A: - for i in range(A.schema.nattr): - attr = A.schema.attr(i) - try: - index_type = attr.dtype - value_type = A.enum(attr.name).dtype - except tiledb.cc.TileDBError: - pass # not an enum attr - if attr.name == "int_cat": - assert index_type.name == "int8" - assert value_type.name == "int64" - elif attr.name == "str_cat": - assert index_type.name == "int8" - assert value_type.name == "str32" - elif attr.name == "byte_cat": - assert index_type.name == "int8" - assert value_type.name == "bytes8" - # Verify SOMA Arrow schema with soma.open(uri) as sdf: f = sdf.schema.field("int_cat") @@ -1665,7 +1741,7 @@ def test_nullable(tmp_path): pydict["yes-meta-flag-false"] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] data = pa.Table.from_pydict(pydict) - with soma.DataFrame.create(uri, schema=asch) as sdf: + with soma.DataFrame.create(uri, schema=asch, domain=[[0, 9]]) as sdf: sdf.write(data) with soma.DataFrame.open(uri, "r") as sdf: @@ -1685,7 +1761,7 @@ def test_only_evolve_schema_when_enmr_is_extended(tmp_path): # +1 creating the schema # +1 evolving the schema - with soma.DataFrame.create(uri, schema=schema) as sdf: + with soma.DataFrame.create(uri, schema=schema, domain=[[0, 4]]) as sdf: data = {} data["soma_joinid"] = [0, 1, 2, 3, 4] data["foo"] = pd.Categorical(["a", "bb", "ccc", "bb", "a"]) @@ -1718,10 +1794,9 @@ def test_only_evolve_schema_when_enmr_is_extended(tmp_path): # total 3 fragment files - vfs = tiledb.VFS() # subtract 1 for the __schema/__enumerations directory; # only looking at fragment files - assert len(vfs.ls(os.path.join(uri, "__schema"))) - 1 == 3 + assert len(list((Path(uri) / "__schema").iterdir())) - 1 == 3 def test_fix_update_dataframe_with_var_strings(tmp_path): @@ -1736,7 +1811,7 @@ def test_fix_update_dataframe_with_var_strings(tmp_path): } ) - with soma.DataFrame.create(uri, schema=tbl.schema) as sdf: + with soma.DataFrame.create(uri, schema=tbl.schema, domain=[[0, 3]]) as sdf: sdf.write(tbl) with soma.DataFrame.open(uri, "r") as sdf: @@ -1756,3 +1831,41 @@ def test_fix_update_dataframe_with_var_strings(tmp_path): with soma.DataFrame.open(uri, "r") as sdf: results = sdf.read().concat().to_pandas() assert results.equals(updated_sdf) + + +def test_presence_matrix(tmp_path): + uri = tmp_path.as_uri() + + # Cerate the dataframe + soma_df = soma.DataFrame.create( + uri, + schema=pa.schema( + [ + ("soma_joinid", pa.int64()), + ("scene_id", pa.string()), + ("data", pa.bool_()), + ] + ), + domain=((0, 99), ("", "")), + index_column_names=("soma_joinid", "scene_id"), + ) + + # Create datda to write + joinid_data = pa.array(np.arange(0, 100, 5)) + scene_id_data = 10 * ["scene1"] + 10 * ["scene2"] + df = pd.DataFrame( + { + "soma_joinid": joinid_data, + "scene_id": scene_id_data, + "data": 20 * [True], + } + ) + arrow_table = pa.Table.from_pandas(df) + soma_df.write(arrow_table) + + soma_df.close() + + with soma.DataFrame.open(uri) as soma_df: + actual = soma_df.read().concat().to_pandas() + + assert actual.equals(df) diff --git a/apis/python/tests/test_dataframe_index_columns.py b/apis/python/tests/test_dataframe_index_columns.py index 490039230a..ff8f00c9a6 100644 --- a/apis/python/tests/test_dataframe_index_columns.py +++ b/apis/python/tests/test_dataframe_index_columns.py @@ -60,7 +60,7 @@ def arrow_table(): [ "SOMA_JOINID-ALL", ["soma_joinid"], - None, + [[0, 999]], [], "default01234", ], @@ -74,7 +74,7 @@ def arrow_table(): [ "soma_joinid-py-list", ["soma_joinid"], - None, + [[0, 999]], [[0, 2]], { "soma_joinid": pa.array([0, 2], pa.int64()), @@ -84,7 +84,7 @@ def arrow_table(): [ "soma_joinid-py-tuple", ["soma_joinid"], - None, + [[0, 999]], [(0, 2)], { "soma_joinid": pa.array([0, 2], pa.int64()), @@ -94,7 +94,7 @@ def arrow_table(): [ "soma_joinid-py-slice", ["soma_joinid"], - None, + [[0, 999]], [slice(0, 2)], { "soma_joinid": pa.array([0, 1, 2], pa.int64()), @@ -104,7 +104,7 @@ def arrow_table(): [ "soma_joinid-py-left-none-slice", ["soma_joinid"], - None, + [[0, 999]], [slice(None, 2)], { "soma_joinid": pa.array([0, 1, 2], pa.int64()), @@ -114,7 +114,7 @@ def arrow_table(): [ "soma_joinid-py-right-none-slice", ["soma_joinid"], - None, + [[0, 999]], [slice(2, None)], { "soma_joinid": pa.array([2, 3, 4], pa.int64()), @@ -124,14 +124,14 @@ def arrow_table(): [ "soma_joinid-py-both-none-slice", ["soma_joinid"], - None, + [[0, 999]], [slice(None, None)], "default01234", ], [ "soma_joinid-np-array-untyped", ["soma_joinid"], - None, + [[0, 999]], [np.array([0, 2])], { "soma_joinid": pa.array([0, 2], pa.int64()), @@ -141,7 +141,7 @@ def arrow_table(): [ "soma_joinid-np-array-typed", ["soma_joinid"], - None, + [[0, 999]], [np.array([0, 2], np.int64)], { "soma_joinid": pa.array([0, 2], pa.int64()), @@ -151,7 +151,7 @@ def arrow_table(): [ "soma_joinid-pa-array-untyped", ["soma_joinid"], - None, + [[0, 999]], [pa.array([0, 2])], { "soma_joinid": pa.array([0, 2]), @@ -161,7 +161,7 @@ def arrow_table(): [ "soma_joinid-pa-array-typed", ["soma_joinid"], - None, + [[0, 999]], [pa.array([0, 2])], { "soma_joinid": pa.array([0, 2], pa.int64()), @@ -172,56 +172,56 @@ def arrow_table(): [ "STRING-ALL", ["string"], - None, + [None], [], "default01234", ], [ "string-py-list", ["string"], - None, + [None], [["cat", "dog"]], "default23", ], [ "string-py-tuple", ["string"], - None, + [None], [("cat", "dog")], "default23", ], [ "string-py-slice", ["string"], - None, + [None], [("cat", "dog")], "default23", ], [ "string-pa-array-untyped", ["string"], - None, + [None], [pa.array(["cat", "dog"])], "default23", ], [ "string-pa-array-typed", ["string"], - None, + [None], [pa.array(["cat", "dog"], pa.string())], "default23", ], [ "string-np-array-untyped", ["string"], - None, + [None], [np.asarray(["cat", "dog"])], "default23", ], [ "string-np-array-typed", ["string"], - None, + [None], [np.asarray(["cat", "dog"], str)], "default23", ], @@ -229,56 +229,56 @@ def arrow_table(): [ "BYTES-ALL", ["bytes"], - None, + [None], [], "default01234", ], [ "bytes-py-list", ["bytes"], - None, + [None], [[b"cat", b"dog"]], "default23", ], [ "bytes-py-tuple", ["bytes"], - None, + [None], [(b"cat", b"dog")], "default23", ], [ "bytes-py-slice", ["bytes"], - None, + [None], [(b"cat", b"dog")], "default23", ], [ "bytes-pa-array-untyped", ["bytes"], - None, + [None], [pa.array([b"cat", b"dog"])], "default23", ], [ "bytes-pa-array-typed", ["bytes"], - None, + [None], [pa.array([b"cat", b"dog"], pa.binary())], "default23", ], [ "bytes-np-array-untyped", ["bytes"], - None, + [None], [np.asarray([b"cat", b"dog"])], "default23", ], [ "bytes-np-array-typed", ["bytes"], - None, + [None], [np.asarray([b"cat", b"dog"], bytes)], "default23", ], @@ -286,7 +286,7 @@ def arrow_table(): [ "INT64-ALL", ["int64"], - None, + [[-10000, 10000]], [], "default01234", ], @@ -300,28 +300,28 @@ def arrow_table(): [ "int64-py-list", ["int64"], - None, + [[-10000, 10000]], [[6402, 6403]], "default23", ], [ "int64-py-tuple", ["int64"], - None, + [[-10000, 10000]], [[6402, 6403]], "default23", ], [ "int64-py-slice", ["int64"], - None, + [[-10000, 10000]], [slice(6402, 6403)], "default23", ], [ "int64-py-left-none-slice", ["int64"], - None, + [[-10000, 10000]], [slice(None, 6402)], { "soma_joinid": pa.array([0, 1, 2], pa.int64()), @@ -331,7 +331,7 @@ def arrow_table(): [ "int64-py-right-none-slice", ["int64"], - None, + [[-10000, 10000]], [slice(6402, None)], { "soma_joinid": pa.array([2, 3, 4], pa.int64()), @@ -341,35 +341,35 @@ def arrow_table(): [ "int64-py-both-none-slice", ["int64"], - None, + [[-10000, 10000]], [slice(None, None)], "default01234", ], [ "int64-numpy-untyped", ["int64"], - None, + [[-10000, 10000]], [np.asarray([6402, 6403])], "default23", ], [ "int64-numpy-typed", ["int64"], - None, + [[-10000, 10000]], [np.asarray([6402, 6403], np.int64)], "default23", ], [ "int64-pa-array-untyped", ["int64"], - None, + [[-10000, 10000]], [pa.array([6402, 6403])], "default23", ], [ "int64-pa-array-typed", ["int64"], - None, + [[-10000, 10000]], [pa.array([6402, 6403], pa.int64())], "default23", ], @@ -377,7 +377,7 @@ def arrow_table(): [ "INT32-ALL", ["int32"], - None, + [[-10000, 10000]], [], "default01234", ], @@ -391,28 +391,28 @@ def arrow_table(): [ "int32-py-list", ["int32"], - None, + [[-10000, 10000]], [[3202, 3203]], "default23", ], [ "int32-py-tuple", ["int32"], - None, + [[-10000, 10000]], [[3202, 3203]], "default23", ], [ "int32-py-slice", ["int32"], - None, + [[-10000, 10000]], [slice(3202, 3203)], "default23", ], [ "int32-py-left-none-slice", ["int32"], - None, + [[-10000, 10000]], [slice(None, 3202)], { "soma_joinid": pa.array([0, 1, 2], pa.int64()), @@ -422,7 +422,7 @@ def arrow_table(): [ "int32-py-right-none-slice", ["int32"], - None, + [[-10000, 10000]], [slice(3202, None)], { "soma_joinid": pa.array([2, 3, 4], pa.int64()), @@ -432,28 +432,28 @@ def arrow_table(): [ "int32-py-both-none-slice", ["int32"], - None, + [[-10000, 10000]], [slice(None, None)], "default01234", ], [ "int32-numpy-untyped", ["int32"], - None, + [[-10000, 10000]], [np.asarray([3202, 3203])], "default23", ], [ "int32-numpy-typed", ["int32"], - None, + [[-10000, 10000]], [np.asarray([3202, 3203], np.int32)], "default23", ], [ "int32-pa-array-typed", ["int32"], - None, + [[-10000, 10000]], [pa.array([3202, 3203], pa.int32())], "default23", ], @@ -461,7 +461,7 @@ def arrow_table(): [ "INT16-ALL", ["int16"], - None, + [[-2000, 2000]], [], "default01234", ], @@ -475,28 +475,28 @@ def arrow_table(): [ "int16-py-list", ["int16"], - None, + [[-2000, 2000]], [[1602, 1603]], "default23", ], [ "int16-py-tuple", ["int16"], - None, + [[-2000, 2000]], [[1602, 1603]], "default23", ], [ "int16-py-slice", ["int16"], - None, + [[-2000, 2000]], [slice(1602, 1603)], "default23", ], [ "int16-py-left-none-slice", ["int16"], - None, + [[-2000, 2000]], [slice(None, 1602)], { "soma_joinid": pa.array([0, 1, 2], pa.int64()), @@ -506,7 +506,7 @@ def arrow_table(): [ "int16-py-right-none-slice", ["int16"], - None, + [[-2000, 2000]], [slice(1602, None)], { "soma_joinid": pa.array([2, 3, 4], pa.int64()), @@ -516,28 +516,28 @@ def arrow_table(): [ "int16-py-both-none-slice", ["int16"], - None, + [[-2000, 2000]], [slice(None, None)], "default01234", ], [ "int16-numpy-untyped", ["int16"], - None, + [[-2000, 2000]], [np.asarray([1602, 1603])], "default23", ], [ "int16-numpy-typed", ["int16"], - None, + [[-2000, 2000]], [np.asarray([1602, 1603], np.int16)], "default23", ], [ "int16-pa-array-typed", ["int16"], - None, + [[-2000, 2000]], [pa.array([1602, 1603], pa.int16())], "default23", ], @@ -545,7 +545,7 @@ def arrow_table(): [ "INT8-ALL", ["int8"], - None, + [[-100, 100]], [], "default01234", ], @@ -559,28 +559,28 @@ def arrow_table(): [ "int8-py-list", ["int8"], - None, + [[-100, 100]], [[82, 83]], "default23", ], [ "int8-py-tuple", ["int8"], - None, + [[-100, 100]], [[82, 83]], "default23", ], [ "int8-py-slice", ["int8"], - None, + [[-100, 100]], [slice(82, 83)], "default23", ], [ "int8-py-left-none-slice", ["int8"], - None, + [[-100, 100]], [slice(None, 82)], { "soma_joinid": pa.array([0, 1, 2], pa.int64()), @@ -590,7 +590,7 @@ def arrow_table(): [ "int8-py-right-none-slice", ["int8"], - None, + [[-100, 100]], [slice(82, None)], { "soma_joinid": pa.array([2, 3, 4], pa.int64()), @@ -600,28 +600,28 @@ def arrow_table(): [ "int8-py-both-none-slice", ["int8"], - None, + [[-100, 100]], [slice(None, None)], "default01234", ], [ "int8-numpy-untyped", ["int8"], - None, + [[-100, 100]], [np.asarray([82, 83])], "default23", ], [ "int8-numpy-typed", ["int8"], - None, + [[-100, 100]], [np.asarray([82, 83], np.int8)], "default23", ], [ "int8-pa-array-typed", ["int8"], - None, + [[-100, 100]], [pa.array([82, 83], pa.int8())], "default23", ], @@ -629,7 +629,7 @@ def arrow_table(): [ "UINT64-ALL", ["uint64"], - None, + [[0, 10000]], [], "default01234", ], @@ -643,28 +643,28 @@ def arrow_table(): [ "uint64-py-list", ["uint64"], - None, + [[0, 10000]], [[6412, 6413]], "default23", ], [ "uint64-py-tuple", ["uint64"], - None, + [[0, 10000]], [[6412, 6413]], "default23", ], [ "uint64-py-slice", ["uint64"], - None, + [[0, 10000]], [slice(6412, 6413)], "default23", ], [ "uint64-py-left-none-slice", ["uint64"], - None, + [[0, 10000]], [slice(None, 6412)], { "soma_joinid": pa.array([0, 1, 2], pa.int64()), @@ -674,7 +674,7 @@ def arrow_table(): [ "uint64-py-right-none-slice", ["uint64"], - None, + [[0, 10000]], [slice(6412, None)], { "soma_joinid": pa.array([2, 3, 4], pa.int64()), @@ -684,28 +684,28 @@ def arrow_table(): [ "uint64-py-both-none-slice", ["uint64"], - None, + [[0, 10000]], [slice(None, None)], "default01234", ], [ "uint64-numpy-untyped", ["uint64"], - None, + [[0, 10000]], [np.asarray([6412, 6413])], "default23", ], [ "uint64-numpy-typed", ["uint64"], - None, + [[0, 10000]], [np.asarray([6412, 6413], np.uint64)], "default23", ], [ "uint64-pa-array-typed", ["uint64"], - None, + [[0, 10000]], [pa.array([6412, 6413], pa.uint64())], "default23", ], @@ -713,7 +713,7 @@ def arrow_table(): [ "UINT32-ALL", ["uint32"], - None, + [[0, 10000]], [], "default01234", ], @@ -727,28 +727,28 @@ def arrow_table(): [ "uint32-py-list", ["uint32"], - None, + [[0, 10000]], [[3212, 3213]], "default23", ], [ "uint32-py-tuple", ["uint32"], - None, + [[0, 10000]], [[3212, 3213]], "default23", ], [ "uint32-py-slice", ["uint32"], - None, + [[0, 10000]], [slice(3212, 3213)], "default23", ], [ "uint32-py-left-none-slice", ["uint32"], - None, + [[0, 10000]], [slice(None, 3212)], { "soma_joinid": pa.array([0, 1, 2], pa.int64()), @@ -758,7 +758,7 @@ def arrow_table(): [ "uint32-py-right-none-slice", ["uint32"], - None, + [[0, 10000]], [slice(3212, None)], { "soma_joinid": pa.array([2, 3, 4], pa.int64()), @@ -768,28 +768,28 @@ def arrow_table(): [ "uint32-py-both-none-slice", ["uint32"], - None, + [[0, 10000]], [slice(None, None)], "default01234", ], [ "uint32-numpy-untyped", ["uint32"], - None, + [[0, 10000]], [np.asarray([3212, 3213])], "default23", ], [ "uint32-numpy-typed", ["uint32"], - None, + [[0, 10000]], [np.asarray([3212, 3213], np.uint32)], "default23", ], [ "uint32-pa-array-typed", ["uint32"], - None, + [[0, 10000]], [pa.array([3212, 3213], pa.uint32())], "default23", ], @@ -797,7 +797,7 @@ def arrow_table(): [ "UINT16-ALL", ["uint16"], - None, + [[0, 10000]], [], "default01234", ], @@ -811,28 +811,28 @@ def arrow_table(): [ "uint16-py-list", ["uint16"], - None, + [[0, 10000]], [[1612, 1613]], "default23", ], [ "uint16-py-tuple", ["uint16"], - None, + [[0, 10000]], [[1612, 1613]], "default23", ], [ "uint16-py-slice", ["uint16"], - None, + [[0, 10000]], [slice(1612, 1613)], "default23", ], [ "uint16-py-left-none-slice", ["uint16"], - None, + [[0, 10000]], [slice(None, 1612)], { "soma_joinid": pa.array([0, 1, 2], pa.int64()), @@ -842,7 +842,7 @@ def arrow_table(): [ "uint16-py-right-none-slice", ["uint16"], - None, + [[0, 10000]], [slice(1612, None)], { "soma_joinid": pa.array([2, 3, 4], pa.int64()), @@ -852,28 +852,28 @@ def arrow_table(): [ "uint16-py-both-none-slice", ["uint16"], - None, + [[0, 10000]], [slice(None, None)], "default01234", ], [ "uint16-numpy-untyped", ["uint16"], - None, + [[0, 10000]], [np.asarray([1612, 1613])], "default23", ], [ "uint16-numpy-typed", ["uint16"], - None, + [[0, 10000]], [np.asarray([1612, 1613], np.uint16)], "default23", ], [ "uint16-pa-array-typed", ["uint16"], - None, + [[0, 10000]], [pa.array([1612, 1613], pa.uint16())], "default23", ], @@ -881,7 +881,7 @@ def arrow_table(): [ "UINT8-ALL", ["uint8"], - None, + [[0, 200]], [], "default01234", ], @@ -895,28 +895,28 @@ def arrow_table(): [ "uint8-py-list", ["uint8"], - None, + [[0, 200]], [[92, 93]], "default23", ], [ "uint8-py-tuple", ["uint8"], - None, + [[0, 200]], [[92, 93]], "default23", ], [ "uint8-py-slice", ["uint8"], - None, + [[0, 200]], [slice(92, 93)], "default23", ], [ "uint8-py-left-none-slice", ["uint8"], - None, + [[0, 200]], [slice(None, 92)], { "soma_joinid": pa.array([0, 1, 2], pa.int64()), @@ -926,7 +926,7 @@ def arrow_table(): [ "uint8-py-right-none-slice", ["uint8"], - None, + [[0, 200]], [slice(92, None)], { "soma_joinid": pa.array([2, 3, 4], pa.int64()), @@ -936,28 +936,28 @@ def arrow_table(): [ "uint8-py-both-none-slice", ["uint8"], - None, + [[0, 200]], [slice(None, None)], "default01234", ], [ "uint8-numpy-untyped", ["uint8"], - None, + [[0, 200]], [np.asarray([92, 93])], "default23", ], [ "uint8-numpy-typed", ["uint8"], - None, + [[0, 200]], [np.asarray([92, 93], np.uint8)], "default23", ], [ "uint8-pa-array-typed", ["uint8"], - None, + [[0, 200]], [pa.array([92, 93], pa.uint8())], "default23", ], @@ -965,7 +965,7 @@ def arrow_table(): [ "FLOAT32-ALL", ["float32"], - None, + [[-1e6, 1e6]], [], "default01234", ], @@ -979,42 +979,42 @@ def arrow_table(): [ "float32-py-list", ["float32"], - None, + [[-1e6, 1e6]], [[322.5, 323.5]], "default23", ], [ "float32-py-tuple", ["float32"], - None, + [[-1e6, 1e6]], [(322.5, 323.5)], "default23", ], [ "float32-py-slice", ["float32"], - None, + [[-1e6, 1e6]], [slice(322.5, 323.5)], "default23", ], [ "float32-np-array-untyped", ["float32"], - None, + [[-1e6, 1e6]], [np.asarray([322.5, 323.5])], "default23", ], [ "float32-np-array-typed", ["float32"], - None, + [[-1e6, 1e6]], [np.asarray([322.5, 323.5], np.float32)], "default23", ], [ "float32-pa-array-typed-float32", ["float32"], - None, + [[-1e6, 1e6]], [pa.array([322.5, 323.5], pa.float32())], "default23", ], @@ -1022,7 +1022,7 @@ def arrow_table(): [ "FLOAT64-ALL", ["float64"], - None, + [[-1e6, 1e6]], [], "default01234", ], @@ -1036,49 +1036,49 @@ def arrow_table(): [ "float64-py-list", ["float64"], - None, + [[-1e6, 1e6]], [[642.5, 643.5]], "default23", ], [ "float64-py-tuple", ["float64"], - None, + [[-1e6, 1e6]], [(642.5, 643.5)], "default23", ], [ "float64-py-slice", ["float64"], - None, + [[-1e6, 1e6]], [slice(642.5, 643.5)], "default23", ], [ "float64-np-array-untyped", ["float64"], - None, + [[-1e6, 1e6]], [np.asarray([642.5, 643.5])], "default23", ], [ "float64-np-array-typed", ["float64"], - None, + [[-1e6, 1e6]], [np.asarray([642.5, 643.5], np.float64)], "default23", ], [ "float64-pa-array-untyped", ["float64"], - None, + [[-1e6, 1e6]], [pa.array([642.5, 643.5])], "default23", ], [ "float64-pa-array-typed-float64", ["float64"], - None, + [[-1e6, 1e6]], [pa.array([642.5, 643.5], pa.float64())], "default23", ], @@ -1086,7 +1086,7 @@ def arrow_table(): [ "INT64+STRING-ALL", ["int64", "string"], - None, + [[-10000, 10000], None], [], "default01234", ], @@ -1100,35 +1100,35 @@ def arrow_table(): [ "int64+string-arrow", ["int64", "string"], - None, + [[-10000, 10000], None], [pa.array([6402, 6403]), pa.array(["cat", "dog"])], "default23", ], [ "string+int64-arrow", ["string", "int64"], - None, + [None, [-10000, 10000]], [pa.array(["cat", "dog"]), pa.array([6402, 6403])], "default23", ], [ "string+int64-numpy", ["string", "int64"], - None, + [None, [-10000, 10000]], [np.asarray(["cat", "dog"]), np.asarray([6402, 6403])], "default23", ], [ "string+int64-py-list", ["string", "int64"], - None, + [None, [-10000, 10000]], [["cat", "dog"], [6402, 6403]], "default23", ], [ "string+int64-py-tuple", ["string", "int64"], - None, + [None, [-10000, 10000]], [("cat", "dog"), (6402, 6403)], "default23", ], @@ -1136,14 +1136,14 @@ def arrow_table(): [ "INT64+FLOAT64+STRING-ALL", ["int64", "float64", "string"], - None, + [[-10000, 10000], [-1e6, 1e6], None], [], "default01234", ], [ "int64+float64+string-arrow", ["int64", "float64", "string"], - None, + [[-10000, 10000], [-1e6, 1e6], None], [ pa.array([6402, 6403]), pa.array([642.5, 643.5]), @@ -1154,7 +1154,7 @@ def arrow_table(): [ "float64+string+int64-arrow", ["float64", "string", "int64"], - None, + [[-1e6, 1e6], None, [-10000, 10000]], [ pa.array([642.5, 643.5]), pa.array(["cat", "dog"]), @@ -1165,7 +1165,7 @@ def arrow_table(): [ "string+int64+float64-numpy", ["string", "int64", "float64"], - None, + [None, [-10000, 10000], [-1e6, 1e6]], [ np.asarray(["cat", "dog"]), np.asarray([6402, 6403]), @@ -1176,14 +1176,14 @@ def arrow_table(): [ "string+int64+float64py-list", ["string", "int64", "float64"], - None, + [None, [-10000, 10000], [-1e6, 1e6]], [["cat", "dog"], [6402, 6403], [642.5, 643.5]], "default23", ], [ "string+int64+float64-py-tuple", ["string", "int64", "float64"], - None, + [None, [-10000, 10000], [-1e6, 1e6]], [("cat", "dog"), (6402, 6403), (642.5, 643.5)], "default23", ], @@ -1191,7 +1191,12 @@ def arrow_table(): [ "TIMESTAMP-SEC-ALL", ["tss"], - None, + [ + [ + np.datetime64(0, "s"), + np.datetime64(1000000000, "s"), + ] + ], [], "default01234", ], @@ -1210,28 +1215,48 @@ def arrow_table(): [ "tss-py-list", ["tss"], - None, + [ + [ + np.datetime64(0, "s"), + np.datetime64(1000000000, "s"), + ] + ], [[np.datetime64(946684802, "s"), np.datetime64(946684803, "s")]], "default23", ], [ "tss-py-tuple", ["tss"], - None, + [ + [ + np.datetime64(0, "s"), + np.datetime64(1000000000, "s"), + ] + ], [[np.datetime64(946684802, "s"), np.datetime64(946684803, "s")]], "default23", ], [ "tss-py-slice", ["tss"], - None, + [ + [ + np.datetime64(0, "s"), + np.datetime64(1000000000, "s"), + ] + ], [slice(np.datetime64(946684802, "s"), np.datetime64(946684803, "s"))], "default23", ], [ "tss-py-left-none-slice", ["tss"], - None, + [ + [ + np.datetime64(0, "s"), + np.datetime64(1000000000, "s"), + ] + ], [slice(None, np.datetime64(946684802, "s"))], { "soma_joinid": pa.array([0, 1, 2], pa.int64()), @@ -1241,7 +1266,12 @@ def arrow_table(): [ "tss-py-right-none-slice", ["tss"], - None, + [ + [ + np.datetime64(0, "s"), + np.datetime64(1000000000, "s"), + ] + ], [slice(np.datetime64(946684802, "s"), None)], { "soma_joinid": pa.array([2, 3, 4], pa.int64()), @@ -1251,14 +1281,24 @@ def arrow_table(): [ "tss-py-both-none-slice", ["tss"], - None, + [ + [ + np.datetime64(0, "s"), + np.datetime64(1000000000, "s"), + ] + ], [slice(None, None)], "default01234", ], [ "tss-numpy", ["tss"], - None, + [ + [ + np.datetime64(0, "s"), + np.datetime64(1000000000, "s"), + ] + ], [ np.asarray( [np.datetime64(946684802, "s"), np.datetime64(946684803, "s")] @@ -1269,14 +1309,24 @@ def arrow_table(): [ "tss-pa-array-untyped", ["tss"], - None, + [ + [ + np.datetime64(0, "s"), + np.datetime64(1000000000, "s"), + ] + ], [pa.array([946684802, 946684803])], "default23", ], [ "tss-pa-array-typed", ["tss"], - None, + [ + [ + np.datetime64(0, "s"), + np.datetime64(1000000000, "s"), + ] + ], [pa.array([946684802, 946684803], pa.timestamp("s"))], "default23", ], @@ -1284,7 +1334,12 @@ def arrow_table(): [ "TIMESTAMP-MSEC-ALL", ["tsms"], - None, + [ + [ + np.datetime64(0, "ms"), + np.datetime64(1000000000000, "ms"), + ] + ], [], "default01234", ], @@ -1303,21 +1358,36 @@ def arrow_table(): [ "tsms-py-list", ["tsms"], - None, + [ + [ + np.datetime64(0, "ms"), + np.datetime64(1000000000000, "ms"), + ] + ], [[np.datetime64(946684800002, "ms"), np.datetime64(946684800003, "ms")]], "default23", ], [ "tsms-py-tuple", ["tsms"], - None, + [ + [ + np.datetime64(0, "ms"), + np.datetime64(1000000000000, "ms"), + ] + ], [[np.datetime64(946684800002, "ms"), np.datetime64(946684800003, "ms")]], "default23", ], [ "tsms-py-slice", ["tsms"], - None, + [ + [ + np.datetime64(0, "ms"), + np.datetime64(1000000000000, "ms"), + ] + ], [ slice( np.datetime64(946684800002, "ms"), np.datetime64(946684800003, "ms") @@ -1328,7 +1398,12 @@ def arrow_table(): [ "tsms-py-left-none-slice", ["tsms"], - None, + [ + [ + np.datetime64(0, "ms"), + np.datetime64(1000000000000, "ms"), + ] + ], [slice(None, np.datetime64(946684800002, "ms"))], { "soma_joinid": pa.array([0, 1, 2], pa.int64()), @@ -1338,7 +1413,12 @@ def arrow_table(): [ "tsms-py-right-none-slice", ["tsms"], - None, + [ + [ + np.datetime64(0, "ms"), + np.datetime64(1000000000000, "ms"), + ] + ], [slice(np.datetime64(946684800002, "ms"), None)], { "soma_joinid": pa.array([2, 3, 4], pa.int64()), @@ -1348,14 +1428,24 @@ def arrow_table(): [ "tsms-py-both-none-slice", ["tsms"], - None, + [ + [ + np.datetime64(0, "ms"), + np.datetime64(1000000000000, "ms"), + ] + ], [slice(None, None)], "default01234", ], [ "tsms-numpy", ["tsms"], - None, + [ + [ + np.datetime64(0, "ms"), + np.datetime64(1000000000000, "ms"), + ] + ], [ np.asarray( [ @@ -1369,14 +1459,24 @@ def arrow_table(): [ "tsms-pa-array-untyped", ["tsms"], - None, + [ + [ + np.datetime64(0, "ms"), + np.datetime64(1000000000000, "ms"), + ] + ], [pa.array([946684800002, 946684800003])], "default23", ], [ "tsms-pa-array-typed", ["tsms"], - None, + [ + [ + np.datetime64(0, "ms"), + np.datetime64(1000000000000, "ms"), + ] + ], [pa.array([946684800002, 946684800003], pa.timestamp("ms"))], "default23", ], @@ -1384,7 +1484,12 @@ def arrow_table(): [ "TIMESTAMP-USEC-ALL", ["tsus"], - None, + [ + [ + np.datetime64(0, "us"), + np.datetime64(1000000000000000, "us"), + ] + ], [], "default01234", ], @@ -1403,7 +1508,12 @@ def arrow_table(): [ "tsus-py-list", ["tsus"], - None, + [ + [ + np.datetime64(0, "us"), + np.datetime64(1000000000000000, "us"), + ] + ], [ [ np.datetime64(946684800000002, "us"), @@ -1415,7 +1525,12 @@ def arrow_table(): [ "tsus-py-tuple", ["tsus"], - None, + [ + [ + np.datetime64(0, "us"), + np.datetime64(1000000000000000, "us"), + ] + ], [ [ np.datetime64(946684800000002, "us"), @@ -1427,7 +1542,12 @@ def arrow_table(): [ "tsus-py-slice", ["tsus"], - None, + [ + [ + np.datetime64(0, "us"), + np.datetime64(1000000000000000, "us"), + ] + ], [ slice( np.datetime64(946684800000002, "us"), @@ -1439,7 +1559,12 @@ def arrow_table(): [ "tsus-py-left-none-slice", ["tsus"], - None, + [ + [ + np.datetime64(0, "us"), + np.datetime64(1000000000000000, "us"), + ] + ], [slice(None, np.datetime64(946684800000002, "us"))], { "soma_joinid": pa.array([0, 1, 2], pa.int64()), @@ -1449,7 +1574,12 @@ def arrow_table(): [ "tsus-py-right-none-slice", ["tsus"], - None, + [ + [ + np.datetime64(0, "us"), + np.datetime64(1000000000000000, "us"), + ] + ], [slice(np.datetime64(946684800000002, "us"), None)], { "soma_joinid": pa.array([2, 3, 4], pa.int64()), @@ -1459,14 +1589,24 @@ def arrow_table(): [ "tsus-py-both-none-slice", ["tsus"], - None, + [ + [ + np.datetime64(0, "us"), + np.datetime64(1000000000000000, "us"), + ] + ], [slice(None, None)], "default01234", ], [ "tsus-numpy", ["tsus"], - None, + [ + [ + np.datetime64(0, "us"), + np.datetime64(1000000000000000, "us"), + ] + ], [ np.asarray( [ @@ -1480,14 +1620,24 @@ def arrow_table(): [ "tsus-pa-array-untyped", ["tsus"], - None, + [ + [ + np.datetime64(0, "us"), + np.datetime64(1000000000000000, "us"), + ] + ], [pa.array([946684800000002, 946684800000003])], "default23", ], [ "tsus-pa-array-typed", ["tsus"], - None, + [ + [ + np.datetime64(0, "us"), + np.datetime64(1000000000000000, "us"), + ] + ], [pa.array([946684800000002, 946684800000003], pa.timestamp("us"))], "default23", ], @@ -1495,7 +1645,12 @@ def arrow_table(): [ "TIMESTAMP-NSEC-ALL", ["tsns"], - None, + [ + [ + np.datetime64(0, "ns"), + np.datetime64(1000000000000000000, "ns"), + ] + ], [], "default01234", ], @@ -1514,7 +1669,12 @@ def arrow_table(): [ "tsns-py-list", ["tsns"], - None, + [ + [ + np.datetime64(0, "ns"), + np.datetime64(1000000000000000000, "ns"), + ] + ], [ [ np.datetime64(946684800000000002, "ns"), @@ -1526,7 +1686,12 @@ def arrow_table(): [ "tsns-py-tuple", ["tsns"], - None, + [ + [ + np.datetime64(0, "ns"), + np.datetime64(1000000000000000000, "ns"), + ] + ], [ [ np.datetime64(946684800000000002, "ns"), @@ -1538,7 +1703,12 @@ def arrow_table(): [ "tsns-py-slice", ["tsns"], - None, + [ + [ + np.datetime64(0, "ns"), + np.datetime64(1000000000000000000, "ns"), + ] + ], [ slice( np.datetime64(946684800000000002, "ns"), @@ -1550,7 +1720,12 @@ def arrow_table(): [ "tsns-py-left-none-slice", ["tsns"], - None, + [ + [ + np.datetime64(0, "ns"), + np.datetime64(1000000000000000000, "ns"), + ] + ], [slice(None, np.datetime64(946684800000000002, "ns"))], { "soma_joinid": pa.array([0, 1, 2], pa.int64()), @@ -1560,7 +1735,12 @@ def arrow_table(): [ "tsns-py-right-none-slice", ["tsns"], - None, + [ + [ + np.datetime64(0, "ns"), + np.datetime64(1000000000000000000, "ns"), + ] + ], [slice(np.datetime64(946684800000000002, "ns"), None)], { "soma_joinid": pa.array([2, 3, 4], pa.int64()), @@ -1570,14 +1750,24 @@ def arrow_table(): [ "tsns-py-both-none-slice", ["tsns"], - None, + [ + [ + np.datetime64(0, "ns"), + np.datetime64(1000000000000000000, "ns"), + ] + ], [slice(None, None)], "default01234", ], [ "tsns-numpy", ["tsns"], - None, + [ + [ + np.datetime64(0, "ns"), + np.datetime64(1000000000000000000, "ns"), + ] + ], [ np.asarray( [ @@ -1591,14 +1781,24 @@ def arrow_table(): [ "tsns-pa-array-untyped", ["tsns"], - None, + [ + [ + np.datetime64(0, "ns"), + np.datetime64(1000000000000000000, "ns"), + ] + ], [pa.array([946684800000000002, 946684800000000003])], "default23", ], [ "tsns-pa-array-typed", ["tsns"], - None, + [ + [ + np.datetime64(0, "ns"), + np.datetime64(1000000000000000000, "ns"), + ] + ], [pa.array([946684800000000002, 946684800000000003], pa.timestamp("ns"))], "default23", ], @@ -1809,70 +2009,70 @@ def test_types_write_errors( [ "int32-pa-array-untyped", ["int32"], - None, + [[-20000, 20000]], [pa.array([3202, 3203])], # Static type (INT64) does not match expected type (INT32) ], [ "int16-pa-array-untyped", ["int16"], - None, + [[-2000, 2000]], [pa.array([1602, 1603])], # Static type (INT64) does not match expected type (INT16) ], [ "int8-pa-array-untyped", ["int8"], - None, + [[-100, 100]], [pa.array([82, 83])], # Static type (INT64) does not match expected type (INT8) ], [ "uint64-pa-array-untyped", ["uint64"], - None, + [[0, 100000]], [pa.array([6412, 6413])], # Static type (INT64) does not match expected type (UINT64) ], [ "uint32-pa-array-untyped", ["uint32"], - None, + [[0, 100000]], [pa.array([3212, 3213])], # Static type (UINT64) does not match expected type (UINT32) ], [ "uint16-pa-array-untyped", ["uint16"], - None, + [[0, 2000]], [pa.array([1612, 1613])], # Static type (UINT64) does not match expected type (UINT16) ], [ "uint8-pa-array-untyped", ["uint8"], - None, + [[0, 100]], [pa.array([92, 93])], # Static type (UINT64) does not match expected type (UINT8) ], [ "float32-pa-array-untyped", ["float32"], - None, + [[-1e6, 1e6]], [pa.array([322.5, 323.5])], # Static type (FLOAT64) does not match expected type (FLOAT32) ], [ "float32-pa-array-typed-float64", ["float32"], - None, + [[-1e6, 1e6]], [pa.array([322.5, 323.5], pa.float64())], # Static type (FLOAT64) does not match expected type (FLOAT32) ], [ "float64-pa-array-typed-float32", ["float64"], - None, + [[-1e6, 1e6]], [pa.array([322.5, 323.5], pa.float32())], # Static type (FLOAT32) does not match expected type (FLOAT64) ], @@ -1898,6 +2098,6 @@ def test_types_read_errors( with soma.DataFrame.open(uri, "w") as sdf: sdf.write(arrow_table) - with pytest.raises((soma.SOMAError)): + with pytest.raises(soma.SOMAError): with soma.DataFrame.open(uri, "r") as sdf: sdf.read(coords=coords).concat() diff --git a/apis/python/tests/test_dense_nd_array.py b/apis/python/tests/test_dense_nd_array.py index 3e4ffb5161..87b7c29415 100644 --- a/apis/python/tests/test_dense_nd_array.py +++ b/apis/python/tests/test_dense_nd_array.py @@ -1,5 +1,6 @@ import contextlib import datetime +import json import pathlib from typing import Tuple @@ -9,7 +10,6 @@ import tiledbsoma as soma from tiledbsoma.options import SOMATileDBContext -import tiledb from . import NDARRAY_ARROW_TYPES_NOT_SUPPORTED, NDARRAY_ARROW_TYPES_SUPPORTED from ._util import raises_no_typeguard @@ -49,10 +49,6 @@ def test_dense_nd_array_create_ok( assert a.schema.field("soma_data").type == element_type assert not a.schema.field("soma_data").nullable - # Validate TileDB array schema - with tiledb.open(tmp_path.as_posix()) as A: - assert not A.schema.sparse - # Ensure read mode uses clib object with soma.DenseNDArray.open(tmp_path.as_posix(), "r") as A: assert isinstance(A._handle._handle, soma.pytiledbsoma.SOMADenseNDArray) @@ -150,12 +146,9 @@ def test_dense_nd_array_read_write_tensor(tmp_path, shape: Tuple[int, ...]): table = a.read_next()["soma_data"] assert np.array_equal(data, table.combine_chunks().to_numpy().reshape(shape)) - # Validate TileDB array schema - with tiledb.open(tmp_path.as_posix()) as A: - assert not A.schema.sparse - # write a single-value sub-array and recheck with soma.DenseNDArray.open(tmp_path.as_posix(), "w") as c: + assert not c.is_sparse c.write( (0,) * len(shape), pa.Tensor.from_numpy(np.zeros((1,) * len(shape), dtype=np.float64)), @@ -281,7 +274,7 @@ def test_dense_nd_array_slicing(tmp_path, io): cfg = {} if "cfg" in io: cfg = io["cfg"] - context = SOMATileDBContext(tiledb_ctx=tiledb.Ctx(cfg)) + context = SOMATileDBContext(tiledb_config=cfg) nr = 4 nc = 6 @@ -415,9 +408,10 @@ def test_tile_extents(tmp_path): }, ).close() - with tiledb.open(tmp_path.as_posix()) as A: - assert A.schema.domain.dim(0).tile == 100 - assert A.schema.domain.dim(1).tile == 2048 + with soma.DenseNDArray.open(tmp_path.as_posix()) as A: + dim_info = json.loads(A.config_options_from_schema().dims) + assert int(dim_info["soma_dim_0"]["tile"]) == 100 + assert int(dim_info["soma_dim_1"]["tile"]) == 2048 def test_timestamped_ops(tmp_path): @@ -491,3 +485,13 @@ def test_fixed_timestamp(tmp_path: pathlib.Path): with pytest.raises(soma.SOMAError): soma.open(tmp_path.as_posix(), context=fixed_time, tiledb_timestamp=111) + + +@pytest.mark.parametrize("shape", [(10,), (10, 20), (10, 20, 2), (2, 4, 6, 8)]) +def test_read_to_unwritten_array(tmp_path, shape): + uri = tmp_path.as_posix() + + soma.DenseNDArray.create(uri, type=pa.uint8(), shape=shape) + + with soma.DenseNDArray.open(uri, "r") as A: + assert np.array_equal(np.ones(shape) * 255, A.read().to_numpy()) diff --git a/apis/python/tests/test_experiment_basic.py b/apis/python/tests/test_experiment_basic.py index b328f59d81..9c4886373f 100644 --- a/apis/python/tests/test_experiment_basic.py +++ b/apis/python/tests/test_experiment_basic.py @@ -21,14 +21,18 @@ def create_and_populate_obs(uri: str) -> soma.DataFrame: ] ) + pydict = {} + pydict["soma_joinid"] = [0, 1, 2, 3, 4] + pydict["foo"] = [10, 20, 30, 40, 50] + pydict["bar"] = [4.1, 5.2, 6.3, 7.4, 8.5] + pydict["baz"] = ["apple", "ball", "cat", "dog", "egg"] + rb = pa.Table.from_pydict(pydict) + + domain = [[0, len(rb) - 1]] + # TODO: indexing option ... - with soma.DataFrame.create(uri, schema=obs_arrow_schema) as obs: - pydict = {} - pydict["soma_joinid"] = [0, 1, 2, 3, 4] - pydict["foo"] = [10, 20, 30, 40, 50] - pydict["bar"] = [4.1, 5.2, 6.3, 7.4, 8.5] - pydict["baz"] = ["apple", "ball", "cat", "dog", "egg"] - rb = pa.Table.from_pydict(pydict) + with soma.DataFrame.create(uri, schema=obs_arrow_schema, domain=domain) as obs: + obs.write(rb) return _factory.open(uri) @@ -43,12 +47,15 @@ def create_and_populate_var(uri: str) -> soma.DataFrame: ] ) - with soma.DataFrame.create(uri, schema=var_arrow_schema) as var: - pydict = {} - pydict["soma_joinid"] = [0, 1, 2, 3] - pydict["quux"] = ["zebra", "yak", "xylophone", "wapiti"] - pydict["xyzzy"] = [12.3, 23.4, 34.5, 45.6] - rb = pa.Table.from_pydict(pydict) + pydict = {} + pydict["soma_joinid"] = [0, 1, 2, 3] + pydict["quux"] = ["zebra", "yak", "xylophone", "wapiti"] + pydict["xyzzy"] = [12.3, 23.4, 34.5, 45.6] + rb = pa.Table.from_pydict(pydict) + + domain = [[0, len(rb) - 1]] + + with soma.DataFrame.create(uri, schema=var_arrow_schema, domain=domain) as var: var.write(rb) return _factory.open(uri) diff --git a/apis/python/tests/test_experiment_query.py b/apis/python/tests/test_experiment_query.py index 1897a273f3..1831e5e59c 100644 --- a/apis/python/tests/test_experiment_query.py +++ b/apis/python/tests/test_experiment_query.py @@ -1,3 +1,4 @@ +import re from concurrent import futures from contextlib import nullcontext from typing import Tuple @@ -15,7 +16,6 @@ from tiledbsoma import SOMATileDBContext, _factory from tiledbsoma._collection import CollectionBase from tiledbsoma.experiment_query import X_as_series -import tiledb from tests._util import raises_no_typeguard @@ -879,6 +879,7 @@ def add_dataframe(coll: CollectionBase, key: str, sz: int) -> None: ("label", pa.large_string()), ] ), + domain=[[0, sz - 1]], index_column_names=["soma_joinid"], ) df.write( @@ -950,11 +951,11 @@ def test_empty_categorical_query(conftest_pbmc_small_exp): measurement_name="RNA", obs_query=AxisQuery(value_filter='groups == "foo"') ) # Empty query on a categorical column raised ArrowInvalid before TileDB 2.21; see https://github.com/single-cell-data/TileDB-SOMA/pull/2299 - ctx = ( - nullcontext() - if tiledb.libtiledb.version() >= (2, 21) - else pytest.raises(ArrowInvalid) - ) + m = re.fullmatch(r"libtiledb=(\d+\.\d+\.\d+)", soma.pytiledbsoma.version()) + version = m.group(1).split(".") + major, minor = int(version[0]), int(version[1]) + + ctx = nullcontext() if (major, minor) >= (2, 21) else pytest.raises(ArrowInvalid) with ctx: obs = q.obs().concat() assert len(obs) == 0 diff --git a/apis/python/tests/test_factory.py b/apis/python/tests/test_factory.py index 7be3c917b5..cf8b4ff3dd 100644 --- a/apis/python/tests/test_factory.py +++ b/apis/python/tests/test_factory.py @@ -2,140 +2,92 @@ from typing import Type import numpy as np +import pyarrow as pa import pytest import tiledbsoma as soma from tiledbsoma import _constants -import tiledb UNKNOWN_ENCODING_VERSION = "3141596" @pytest.fixture -def tiledb_object_uri(tmp_path, object_type, metadata_typename, encoding_version): +def tiledb_object_uri(tmp_path, metadata_typename, encoding_version, soma_type): """Create an object with specified metadata""" object_uri = f"{tmp_path}/object" - - # create object - if object_type == "array": - schema = tiledb.ArraySchema( - domain=tiledb.Domain( - tiledb.Dim(name="rows", domain=(0, 100), dtype=np.int64) - ), - attrs=[ - tiledb.Attr(name="a", dtype=np.int32), - tiledb.Attr(name="b", dtype=np.float32), - ], + kwargs = {} + + if issubclass(soma_type, (soma.DenseNDArray, soma.SparseNDArray)): + kwargs["type"] = pa.int64() + kwargs["shape"] = (100,) + elif issubclass(soma_type, soma.DataFrame): + kwargs["schema"] = pa.schema( + [("rows", pa.int64()), ("a", pa.int32()), ("b", pa.float32())] ) - tiledb.Array.create(object_uri, schema) - with tiledb.open(object_uri, mode="w") as A: - _setmetadata(A, metadata_typename, encoding_version) - else: - tiledb.group_create(object_uri) - with tiledb.Group(object_uri, mode="w") as G: - _setmetadata(G, metadata_typename, encoding_version) + + soma_type.create(object_uri, tiledb_timestamp=1, **kwargs).close() + + with soma_type.open(object_uri, "w", tiledb_timestamp=2) as soma_obj: + _setmetadata(soma_obj, metadata_typename, encoding_version) return object_uri @pytest.mark.parametrize( - "object_type,metadata_typename,encoding_version,expected_soma_type", + "metadata_typename, encoding_version, soma_type", [ - ("group", "SOMAExperiment", _constants.SOMA_ENCODING_VERSION, soma.Experiment), - ( - "group", - "SOMAMeasurement", - _constants.SOMA_ENCODING_VERSION, - soma.Measurement, - ), - ("group", "SOMACollection", _constants.SOMA_ENCODING_VERSION, soma.Collection), - ("array", "SOMADataFrame", _constants.SOMA_ENCODING_VERSION, soma.DataFrame), - ( - "array", - "SOMADenseNDArray", - _constants.SOMA_ENCODING_VERSION, - soma.DenseNDArray, - ), - ( - "array", - "SOMADenseNdArray", - _constants.SOMA_ENCODING_VERSION, - soma.DenseNDArray, - ), - ( - "array", - "SOMASparseNDArray", - _constants.SOMA_ENCODING_VERSION, - soma.SparseNDArray, - ), - ( - "array", - "SOMASparseNdArray", - _constants.SOMA_ENCODING_VERSION, - soma.SparseNDArray, - ), + ("SOMAExperiment", _constants.SOMA_ENCODING_VERSION, soma.Experiment), + ("SOMAMeasurement", _constants.SOMA_ENCODING_VERSION, soma.Measurement), + ("SOMACollection", _constants.SOMA_ENCODING_VERSION, soma.Collection), + ("SOMADataFrame", _constants.SOMA_ENCODING_VERSION, soma.DataFrame), + ("SOMADenseNDArray", _constants.SOMA_ENCODING_VERSION, soma.DenseNDArray), + ("SOMADenseNdArray", _constants.SOMA_ENCODING_VERSION, soma.DenseNDArray), + ("SOMASparseNDArray", _constants.SOMA_ENCODING_VERSION, soma.SparseNDArray), + ("SOMASparseNdArray", _constants.SOMA_ENCODING_VERSION, soma.SparseNDArray), ], ) -def test_open(tiledb_object_uri, expected_soma_type: Type): +def test_open(tiledb_object_uri, soma_type: Type): """Happy path tests""" # TODO: Fix Windows test failures without the following. sleep(0.01) - soma_obj = soma.open(tiledb_object_uri) - assert isinstance(soma_obj, expected_soma_type) - typed_soma_obj = soma.open(tiledb_object_uri, soma_type=expected_soma_type) - assert isinstance(typed_soma_obj, expected_soma_type) + soma_obj = soma.open(tiledb_object_uri, tiledb_timestamp=2) + assert isinstance(soma_obj, soma_type) + typed_soma_obj = soma.open( + tiledb_object_uri, soma_type=soma_type, tiledb_timestamp=2 + ) + assert isinstance(typed_soma_obj, soma_type) str_typed_soma_obj = soma.open( - tiledb_object_uri, soma_type=expected_soma_type.soma_type + tiledb_object_uri, soma_type=soma_type.soma_type, tiledb_timestamp=2 ) - assert isinstance(str_typed_soma_obj, expected_soma_type) - assert expected_soma_type.exists(tiledb_object_uri) + assert isinstance(str_typed_soma_obj, soma_type) + assert soma_type.exists(tiledb_object_uri) @pytest.mark.parametrize( - ("object_type", "metadata_typename", "encoding_version", "wrong_type"), + ("metadata_typename", "encoding_version", "soma_type"), [ - ("group", "SOMAExperiment", _constants.SOMA_ENCODING_VERSION, soma.Measurement), - ("group", "SOMAMeasurement", _constants.SOMA_ENCODING_VERSION, soma.DataFrame), - ( - "group", - "SOMAMeasurement", - _constants.SOMA_ENCODING_VERSION, - "SOMACollection", - ), - ( - "array", - "SOMADenseNDArray", - _constants.SOMA_ENCODING_VERSION, - soma.Collection, - ), - ( - "array", - "SOMADenseNdArray", - _constants.SOMA_ENCODING_VERSION, - soma.SparseNDArray, - ), - ( - "array", - "SOMASparseNDArray", - _constants.SOMA_ENCODING_VERSION, - "SOMADenseNDArray", - ), + ("SOMAExperiment", _constants.SOMA_ENCODING_VERSION, soma.Measurement), + ("SOMAMeasurement", _constants.SOMA_ENCODING_VERSION, soma.DataFrame), + ("SOMAMeasurement", _constants.SOMA_ENCODING_VERSION, soma.Collection), + ("SOMADenseNDArray", _constants.SOMA_ENCODING_VERSION, soma.Collection), + ("SOMADenseNdArray", _constants.SOMA_ENCODING_VERSION, soma.SparseNDArray), + ("SOMASparseNDArray", _constants.SOMA_ENCODING_VERSION, soma.DenseNDArray), ], ) -def test_open_wrong_type(tiledb_object_uri, wrong_type): +def test_open_wrong_type(tiledb_object_uri, soma_type): with pytest.raises((soma.SOMAError, TypeError)): - soma.open(tiledb_object_uri, soma_type=wrong_type) + soma.open(tiledb_object_uri, soma_type=soma_type, tiledb_timestamp=2) @pytest.mark.parametrize( - "object_type,metadata_typename,encoding_version", + "metadata_typename, encoding_version, soma_type", [ - ("group", "SOMAExperiment", UNKNOWN_ENCODING_VERSION), - ("group", "SOMAMeasurement", UNKNOWN_ENCODING_VERSION), - ("group", "SOMACollection", UNKNOWN_ENCODING_VERSION), - ("array", "SOMADataFrame", UNKNOWN_ENCODING_VERSION), - ("array", "SOMADenseNDArray", UNKNOWN_ENCODING_VERSION), - ("array", "SOMASparseNDArray", UNKNOWN_ENCODING_VERSION), + ("SOMAExperiment", UNKNOWN_ENCODING_VERSION, soma.Experiment), + ("SOMAMeasurement", UNKNOWN_ENCODING_VERSION, soma.Measurement), + ("SOMACollection", UNKNOWN_ENCODING_VERSION, soma.Collection), + ("SOMADataFrame", UNKNOWN_ENCODING_VERSION, soma.DataFrame), + ("SOMADenseNDArray", UNKNOWN_ENCODING_VERSION, soma.DenseNDArray), + ("SOMASparseNDArray", UNKNOWN_ENCODING_VERSION, soma.SparseNDArray), ], ) def test_factory_unsupported_version(tiledb_object_uri): @@ -143,36 +95,44 @@ def test_factory_unsupported_version(tiledb_object_uri): # TODO: Fix Windows test failures without the following. sleep(0.01) with pytest.raises(ValueError): - soma.open(tiledb_object_uri) + soma.open(tiledb_object_uri, tiledb_timestamp=2) @pytest.mark.parametrize( - "object_type,metadata_typename,encoding_version", + "metadata_typename, encoding_version, soma_type", [ - ("array", "AnUnknownTypeName", _constants.SOMA_ENCODING_VERSION), - ("group", "AnUnknownTypeName", _constants.SOMA_ENCODING_VERSION), - ("array", "AnUnknownTypeName", None), - ("group", "AnUnknownTypeName", None), - ("array", None, _constants.SOMA_ENCODING_VERSION), - ("group", None, _constants.SOMA_ENCODING_VERSION), - ("array", None, None), - ("group", None, None), ( - "array", + "AnUnknownTypeName", + _constants.SOMA_ENCODING_VERSION, + soma.DataFrame, + ), # Invalid type + ( + "AnUnknownTypeName", + _constants.SOMA_ENCODING_VERSION, + soma.Collection, + ), # Invalid type + ("AnUnknownTypeName", None, soma.DataFrame), # Invalid type and no version + ("AnUnknownTypeName", None, soma.Collection), # Invalid type and no version + (None, _constants.SOMA_ENCODING_VERSION, soma.DataFrame), # No type given + (None, _constants.SOMA_ENCODING_VERSION, soma.Collection), # No type give + (None, None, soma.DataFrame), # Neither type nor version filled + (None, None, soma.Collection), # Neither type nor version filled + ( "SOMACollection", _constants.SOMA_ENCODING_VERSION, - ), # Collections can't be arrays + soma.DataFrame, + ), # Collections can't be an array ( - "group", "SOMADataFrame", _constants.SOMA_ENCODING_VERSION, + soma.Collection, ), # DataFrame can't be a group ], ) def test_factory_unsupported_types(tiledb_object_uri): """Illegal or non-existant metadata""" with pytest.raises(soma.SOMAError): - soma.open(tiledb_object_uri) + soma.open(tiledb_object_uri, tiledb_timestamp=2) def test_factory_unknown_files(): @@ -182,11 +142,18 @@ def test_factory_unknown_files(): def _setmetadata(open_tdb_object, metadata_typename, encoding_version): - """set only those values which are not None""" - changes = {} + """force modify the metadata values""" + set_metadata = open_tdb_object._handle._handle.set_metadata + del_metadata = open_tdb_object._handle._handle.delete_metadata + if metadata_typename is not None: - changes[_constants.SOMA_OBJECT_TYPE_METADATA_KEY] = metadata_typename + val = np.array([metadata_typename], "S") + set_metadata(_constants.SOMA_OBJECT_TYPE_METADATA_KEY, val, True) + else: + del_metadata(_constants.SOMA_OBJECT_TYPE_METADATA_KEY, True) + if encoding_version is not None: - changes[_constants.SOMA_ENCODING_VERSION_METADATA_KEY] = encoding_version - if changes: - open_tdb_object.meta.update(changes) + val = np.array([encoding_version], "S") + set_metadata(_constants.SOMA_ENCODING_VERSION_METADATA_KEY, val, True) + else: + del_metadata(_constants.SOMA_ENCODING_VERSION_METADATA_KEY, True) diff --git a/apis/python/tests/test_io.py b/apis/python/tests/test_io.py index fc8548b487..da1f8eb2e3 100644 --- a/apis/python/tests/test_io.py +++ b/apis/python/tests/test_io.py @@ -161,8 +161,10 @@ def test_write_arrow_table(tmp_path, num_rows, cap_nbytes): uri = tmp_path.as_posix() expect_error = cap_nbytes == 1 and num_rows > 0 # Not enough room for even one row - with soma.DataFrame.create(uri, schema=schema) as sdf: - table = pa.Table.from_pydict(pydict) + table = pa.Table.from_pydict(pydict) + domain = [[0, max(1, len(table) - 1)]] + + with soma.DataFrame.create(uri, schema=schema, domain=domain) as sdf: if expect_error: with pytest.raises(soma.SOMAError): somaio.ingest._write_arrow_table(table, sdf, tcopt, twopt) diff --git a/apis/python/tests/test_multiscale_image.py b/apis/python/tests/test_multiscale_image.py index f29103915a..3d8763db55 100644 --- a/apis/python/tests/test_multiscale_image.py +++ b/apis/python/tests/test_multiscale_image.py @@ -1,3 +1,4 @@ +import functools from urllib.parse import urljoin import numpy as np @@ -67,7 +68,7 @@ def test_multiscale_image_bad_create(tmp_path): ) -def test_multiscale_basic_no_channels(tmp_path): +def test_multiscale_basic(tmp_path): baseuri = urljoin(f"{tmp_path.as_uri()}/", "basic_read") image_uri = urljoin(baseuri, "default") @@ -88,14 +89,14 @@ def test_multiscale_basic_no_channels(tmp_path): # Create very small downsample and write to it. level2 = image.add_new_level("level2", shape=(8, 4)) - data = pa.Tensor.from_numpy(np.arange(32, dtype=np.uint8)) - level2.write((slice(None), slice(None)), data) + level2_data = pa.Tensor.from_numpy(np.arange(32, dtype=np.uint8).reshape(8, 4)) + level2.write((slice(None), slice(None)), level2_data) # Open for reading and check metadata. with soma.MultiscaleImage.open(image_uri, mode="r") as image: # Check the base properties for the image. - # assert image.axis_names == ("y", "x") + assert image.axis_names == ("y", "x") base_props = image.reference_level_properties assert base_props.name == "reference_level" assert base_props.shape == (128, 64) @@ -114,6 +115,7 @@ def test_multiscale_basic_no_channels(tmp_path): assert image.level_count == 3 for index, shape in enumerate([(128, 64), (64, 32), (8, 4)]): props = image.level_properties(index) + assert props == image.level_properties(props.name) assert props.nchannels is None assert props.depth is None assert props.image_type == "YX" @@ -122,6 +124,32 @@ def test_multiscale_basic_no_channels(tmp_path): assert props.height == shape[0] assert props.width == shape[1] + # Check a basic read + assert level2_data == image.read_spatial_region(2).data + + # Check transform to and from levels + to_level = image.get_transform_to_level + from_level = image.get_transform_from_level + + assert np.array_equal(to_level(0).scale_factors, [1, 1]) + assert np.array_equal(to_level(1).scale_factors, [0.5, 0.5]) + assert np.array_equal(to_level(2).scale_factors, [0.0625, 0.0625]) + assert np.array_equal(to_level("level0").scale_factors, [1, 1]) + assert np.array_equal(to_level("level1").scale_factors, [0.5, 0.5]) + assert np.array_equal(to_level("level2").scale_factors, [0.0625, 0.0625]) + + # oob + with pytest.raises(IndexError): + to_level(3).scale_factors + + # dne + with pytest.raises(KeyError): + to_level("level3").scale_factors + + assert np.array_equal(from_level(0).scale_factors, [1, 1]) + assert np.array_equal(from_level(1).scale_factors, [2, 2]) + assert np.array_equal(from_level(2).scale_factors, [16, 16]) + class TestSimpleMultiscale2D: @@ -198,3 +226,275 @@ def test_read_spatial_region( expected_transform.augmented_matrix, decimal=8, ) + + +def create_multiscale(baseuri, axis_names, axis_types, shapes): + image_uri = urljoin(baseuri, "default") + with soma.MultiscaleImage.create( + image_uri, + type=pa.uint8(), + axis_names=axis_names, + axis_types=axis_types, + reference_level_shape=shapes[0], + ) as image: + for i in range(len(shapes)): + image.add_new_level(f"level{i}", shape=shapes[i]) + return image_uri + + +@pytest.mark.parametrize( + "axis_names, axis_types, shapes, expected_scale_factors", + [ + [ + ("C", "Z", "Y", "X"), + ("channel", "depth", "height", "width"), + ((128, 64, 32, 16), (128, 32, 16, 8), (128, 16, 8, 4), (128, 4, 2, 1)), + ([1, 1, 1], [2, 2, 2], [4, 4, 4], [16, 16, 16]), + ], + [ + ("C", "Z", "Y", "X"), + ("channel", "depth", "height", "width"), + ((128, 64, 32, 16), (128, 32, 16, 8), (128, 16, 8, 4)), + ([1, 1, 1], [2, 2, 2], [4, 4, 4]), + ], + [ + ("C", "Z", "Y", "X"), + ("channel", "depth", "height", "width"), + ((64, 64, 64, 64), (64, 64, 64, 64)), + ([1, 1, 1], [1, 1, 1]), + ], + [ + ("C", "Z", "Y", "X"), + ("channel", "depth", "height", "width"), + ((64, 32, 16, 8), (64, 16, 8, 4)), + ([1, 1, 1], [2, 2, 2]), + ], + [ + ("C", "Z", "Y", "X"), + ("channel", "depth", "height", "width"), + ((128, 64, 32, 16), (128, 32, 32, 8), (128, 16, 16, 4)), + ([1, 1, 1], [2, 1, 2], [4, 2, 4]), + ], + [ + ("C", "Y", "X"), + ("channel", "height", "width"), + ((128, 64, 32), (128, 32, 16), (128, 16, 8)), + ([1, 1], [2, 2], [4, 4]), + ], + [ + ("C", "Y", "X"), + ("channel", "height", "width"), + ((128, 128, 128), (128, 128, 128)), + ([1, 1], [1, 1]), + ], + [ + ("Y", "X"), + ("height", "width"), + ((128, 128), (128, 128)), + ([1, 1], [1, 1]), + ], + [ + ("Y", "X"), + ("height", "width"), + ((128, 64), (64, 32)), + ([1, 1], [2, 2]), + ], + [ + ("Y", "X"), + ("height", "width"), + ((60, 30), (30, 6)), + ([1, 1], [5, 2]), + ], + ], +) +def test_multiscale_with_axis_names( + tmp_path, axis_names, axis_types, shapes, expected_scale_factors +): + baseuri = urljoin(f"{tmp_path.as_uri()}/", "test_multiscale_with_axis_names") + image_uri = create_multiscale(baseuri, axis_names, axis_types, shapes) + + with soma.MultiscaleImage.open(image_uri, mode="r") as image: + base_props = image.reference_level_properties + assert base_props.shape == shapes[0] + assert image.level_count == len(shapes) + + for index, shape in enumerate(shapes): + props = image.level_properties(index) + assert props.name == f"level{index}" + assert props == image.level_properties(props.name) + assert props.image_type == "".join(axis_names) + assert props.shape == shape + + for i, axis_type in enumerate(axis_types): + if axis_type == "channel": + assert getattr(props, "nchannels") == shape[i] + else: + assert getattr(props, axis_type) == shape[i] + + # Check transform to and from levels + assert np.array_equal( + image.get_transform_to_level(index).scale_factors, + 1 / np.array(expected_scale_factors[index]), + ) + assert np.array_equal( + image.get_transform_to_level(f"level{index}").scale_factors, + 1 / np.array(expected_scale_factors[index]), + ) + assert np.array_equal( + image.get_transform_from_level(index).scale_factors, + expected_scale_factors[index], + ) + assert np.array_equal( + image.get_transform_from_level(f"level{index}").scale_factors, + expected_scale_factors[index], + ) + + +@pytest.mark.parametrize( + "shapes, region, scale_factors", + [ + # full region + ( + ((64, 32), (32, 16), (16, 8)), + None, + ([1, 1], [2, 2], [4, 4]), + ), + ( + ((128, 128), (128, 128)), + None, + ([1, 1], [1, 1]), + ), + ( + ((128, 64), (64, 32)), + None, + ([1, 1], [2, 2]), + ), + ( + ((60, 30), (30, 6)), + None, + ([1, 1], [2, 5]), + ), + ( + ((1, 1),), + None, + ([1, 1]), + ), + # partial region + ( + ((128, 64), (64, 32)), + (0, 0, 20, 30), + ([1, 1], [2, 2]), + ), + ( + ((64, 32), (32, 16)), + (0, 0, 16, 10), + ([1, 1], [2, 2]), + ), + ], +) +def test_multiscale_2d_read_region(tmp_path, shapes, region, scale_factors): + baseuri = urljoin(f"{tmp_path.as_uri()}/", "test_multiscale_read_region") + image_uri = create_multiscale(baseuri, ("Y", "X"), ("height", "width"), shapes) + + with soma.Collection.open(image_uri, mode="w") as image: + for i, shape in enumerate(shapes): + data = np.arange(shape[0] * shape[1], dtype=np.uint8).reshape(shape) + image[f"level{i}"].write( + (slice(None), slice(None)), pa.Tensor.from_numpy(data) + ) + + with soma.MultiscaleImage.open(image_uri, mode="r") as image: + for i, shape in enumerate(shapes): + actual_data = image.read_spatial_region(i, region=region).data + if region is None: + expected_data = image[f"level{i}"].read() + else: + expected_data = image[f"level{i}"].read( + coords=( + slice( + region[1], + region[3] // scale_factors[i][0], + ), + slice( + region[0], + region[2] // scale_factors[i][1], + ), + ) + ) + assert np.array_equal(actual_data, expected_data) + + +@pytest.mark.skip("reading 3D regions not supported yet") +@pytest.mark.parametrize( + "shapes, region, scale_factors", + [ + # full region + ( + ((64, 32, 16), (32, 16, 8), (16, 8, 4), (4, 2, 1)), + None, + ([1, 1, 1], [2, 2, 2], [4, 4, 4], [16, 16, 16]), + ), + ( + ((64, 32, 16), (32, 16, 8), (16, 8, 4)), + None, + ([1, 1, 1], [2, 2, 2], [4, 4, 4]), + ), + ( + ((64, 64, 64), (64, 64, 64)), + None, + ([1, 1, 1], [1, 1, 1]), + ), + ( + ((32, 16, 8), (16, 8, 4)), + None, + ([1, 1, 1], [2, 2, 2]), + ), + ( + ((64, 32, 16), (32, 32, 8), (16, 16, 4)), + None, + ([1, 1, 1], [2, 1, 2], [4, 2, 2]), + ), + # partial region + ( + ((64, 32, 16), (32, 16, 8)), + (0, 0, 0, 16, 16, 8), + ([1, 1, 1], [2, 2, 2]), + ), + ( + ((64, 64, 64), (64, 64, 64)), + (0, 0, 0, 48, 48, 48), + ([1, 1, 1], [1, 1, 1]), + ), + ], +) +def test_multiscale_3d_read_region(tmp_path, shapes, region, scale_factors): + baseuri = urljoin(f"{tmp_path.as_uri()}/", "test_multiscale_read_region") + image_uri = create_multiscale( + baseuri, ("Z", "Y", "X"), ("depth", "height", "width"), shapes + ) + + with soma.Collection.open(image_uri, mode="w") as image: + for i, shape in enumerate(shapes): + size = functools.reduce(lambda x, y: x * y, shape) + data = np.arange(size, dtype=np.uint8).reshape(*shape) + image[f"level{i}"].write( + (slice(None), slice(None), slice(None)), pa.Tensor.from_numpy(data) + ) + + with soma.MultiscaleImage.open(image_uri, mode="r") as image: + for i, shape in enumerate(shapes): + if region is None: + actual_data = image.read_spatial_region(i).data + expected_data = np.arange( + functools.reduce(lambda x, y: x * y, shape), dtype=np.uint8 + ).reshape(*shape) + else: + actual_data = image.read_spatial_region(i, region=region).data + expected_data = image[f"level{i}"].read( + coords=( + slice(region[2], region[5] // scale_factors[i][2]), + slice(region[1], region[4] // scale_factors[i][1]), + slice(region[0], region[3] // scale_factors[i][0]), + ) + ) + assert np.array_equal(actual_data, expected_data) diff --git a/apis/python/tests/test_platform_config.py b/apis/python/tests/test_platform_config.py index 4ac00223c2..b36151863f 100644 --- a/apis/python/tests/test_platform_config.py +++ b/apis/python/tests/test_platform_config.py @@ -1,3 +1,4 @@ +import json import tempfile from pathlib import Path @@ -6,81 +7,73 @@ import tiledbsoma import tiledbsoma.io import tiledbsoma.options._tiledb_create_write_options as tco -import tiledb from ._util import assert_adata_equal def test_platform_config(conftest_pbmc_small): - # TODO as we remove usage of TileDB-Py in favor of ArrowSchema, we - # need a new method to get which filters have applied to the column - # rather than grabbing it from the ArraySchema. One consideration - # would be to store TileDB information in JSON format as a field in - # the ArraySchema metadata very similar to how Pandas stores information - # within pa.Schema.pandas_metadata. This could hold not only which - # filters have been applied to the column, but other info that cannot - # be "directly" stored in the ArrowSchema such as whether the column - # is a TileDB attribute or dimension, whether this represent a dense - # or sparse array, etc. This may be as easy as simply copying the - # platform_config by calling pa.Schema.with_metadata(platform_config). - # Set up anndata input path and tiledb-group output path original = conftest_pbmc_small.copy() with tempfile.TemporaryDirectory() as output_path: # Ingest + create_cfg = { + "capacity": 8888, + "offsets_filters": [ + "RleFilter", + {"_type": "GzipFilter", "level": 7}, + "NoOpFilter", + ], + "dims": { + "soma_dim_0": {"tile": 6, "filters": ["RleFilter"]}, + # Empty filters for soma_dim_1 overrides the default + # dimension zstd level defined below. + "soma_dim_1": {"filters": []}, + }, + "attrs": {"soma_data": {"filters": ["NoOpFilter"]}}, + "dataframe_dim_zstd_level": 1, + "cell_order": "row-major", + "tile_order": "column-major", + "dense_nd_array_dim_zstd_level": 2, + } + tiledbsoma.io.from_anndata( output_path, conftest_pbmc_small, "RNA", - platform_config={ - "tiledb": { - "create": { - "capacity": 8888, - "offsets_filters": [ - "RleFilter", - {"_type": "GzipFilter", "level": 7}, - "NoOpFilter", - ], - "dims": { - "soma_dim_0": {"tile": 6, "filters": ["RleFilter"]}, - # Empty filters for soma_dim_1 overrides the default - # dimension zstd level defined below. - "soma_dim_1": {"filters": []}, - }, - "attrs": {"soma_data": {"filters": ["NoOpFilter"]}}, - "dataframe_dim_zstd_level": 1, - "cell_order": "row-major", - "tile_order": "col-major", - "dense_nd_array_dim_zstd_level": 2, - } - } - }, + platform_config={"tiledb": {"create": create_cfg}}, ) assert_adata_equal(original, conftest_pbmc_small) x_arr_uri = str(Path(output_path) / "ms" / "RNA" / "X" / "data") - with tiledb.open(x_arr_uri) as x_arr: - x_sch = x_arr.schema - assert x_sch.capacity == 8888 - assert x_sch.cell_order == "row-major" - assert x_sch.tile_order == "col-major" - assert x_sch.offsets_filters == [ - tiledb.RleFilter(), - tiledb.GzipFilter(level=7), - tiledb.NoOpFilter(), + with tiledbsoma.SparseNDArray.open(x_arr_uri) as x_arr: + cfg = x_arr.config_options_from_schema() + assert cfg.capacity == create_cfg["capacity"] + assert cfg.cell_order == create_cfg["cell_order"] + assert cfg.tile_order == create_cfg["tile_order"] + assert json.loads(cfg.offsets_filters) == [ + {"COMPRESSION_LEVEL": -1, "name": "RLE"}, + {"COMPRESSION_LEVEL": 7, "name": "GZIP"}, + {"name": "NOOP"}, ] - assert x_arr.attr("soma_data").filters == [tiledb.NoOpFilter()] - assert x_arr.dim("soma_dim_0").tile == 6 - assert x_arr.dim("soma_dim_0").filters == [tiledb.RleFilter()] + + assert json.loads(cfg.attrs)["soma_data"]["filters"] == [{"name": "NOOP"}] + + soma_dim_0 = json.loads(cfg.dims)["soma_dim_0"] + assert int(soma_dim_0["tile"]) == 6 + assert soma_dim_0["filters"] == [{"COMPRESSION_LEVEL": -1, "name": "RLE"}] + # As of 2.17.0 this is the default when empty filter-list, or none at all, # is requested. Those who want truly no filtering can request a no-op filter. - assert list(x_arr.dim("soma_dim_1").filters) == [ - tiledb.ZstdFilter(level=-1) + assert json.loads(cfg.dims)["soma_dim_1"]["filters"] == [ + {"COMPRESSION_LEVEL": -1, "name": "ZSTD"} ] var_arr_uri = str(Path(output_path) / "ms" / "RNA" / "var") - with tiledb.open(var_arr_uri) as var_arr: - assert var_arr.dim("soma_joinid").filters == [tiledb.ZstdFilter(level=1)] + with tiledbsoma.SparseNDArray.open(var_arr_uri) as var_arr: + cfg = var_arr.config_options_from_schema() + assert json.loads(cfg.dims)["soma_joinid"]["filters"] == [ + {"COMPRESSION_LEVEL": 1, "name": "ZSTD"} + ] def test__from_platform_config__admits_ignored_config_structure(): diff --git a/apis/python/tests/test_point_cloud_dataframe.py b/apis/python/tests/test_point_cloud_dataframe.py index 95d50ed99d..f8641b81a2 100644 --- a/apis/python/tests/test_point_cloud_dataframe.py +++ b/apis/python/tests/test_point_cloud_dataframe.py @@ -16,20 +16,26 @@ def test_point_cloud_bad_create(tmp_path): asch = pa.schema([("x", pa.float64()), ("y", pa.float64())]) with pytest.raises(ValueError): soma.PointCloudDataFrame.create( - urljoin(baseuri, "bad_name_subset"), schema=asch, index_column_names="x" + urljoin(baseuri, "bad_name_subset"), + schema=asch, + index_column_names="x", ) # all spatial axis must have the same type asch = pa.schema([("x", pa.float64()), ("y", pa.int64())]) with pytest.raises(ValueError): soma.PointCloudDataFrame.create( - urljoin(baseuri, "different_types"), schema=asch + urljoin(baseuri, "different_types"), + schema=asch, + domain=[[0, 9]], ) # type must be integral or floating-point asch = pa.schema([("x", pa.large_string()), ("y", pa.large_string())]) with pytest.raises(ValueError): - soma.PointCloudDataFrame.create(urljoin(baseuri, "bad_type"), schema=asch) + soma.PointCloudDataFrame.create( + urljoin(baseuri, "bad_type"), schema=asch, domain=[[0, 9]] + ) def test_point_cloud_basic_read(tmp_path): @@ -39,7 +45,9 @@ def test_point_cloud_basic_read(tmp_path): # defaults with soma.PointCloudDataFrame.create( - urljoin(baseuri, "default"), schema=asch + urljoin(baseuri, "default"), + schema=asch, + domain=[[0, 9], [-10000, 10000], [-10000, 10000]], ) as ptc: pydict = {} pydict["soma_joinid"] = [1, 2, 3, 4, 5] @@ -66,7 +74,7 @@ def test_point_cloud_basic_read(tmp_path): urljoin(baseuri, "user_defined"), schema=asch, index_column_names="x", - axis_names="x", + coordinate_space="x", domain=((1, 10),), ) as ptc: pydict = {} @@ -119,7 +127,9 @@ def test_point_cloud_bad_read_spatial_region(tmp_path): schema = pa.schema([("x", pa.float64()), ("y", pa.float64())]) - with soma.PointCloudDataFrame.create(uri, schema=schema) as ptc: + with soma.PointCloudDataFrame.create( + uri, schema=schema, domain=[[0, 9], [-10000, 10000], [-10000, 10000]] + ) as ptc: pydict = { "soma_joinid": [1, 2, 3, 4, 5], "x": [10, 20, 30, 40, 50], @@ -273,7 +283,9 @@ def test_point_cloud_read_spatial_region_basic_2d( schema = pa.schema([("x", pa.float64()), ("y", pa.float64())]) - with soma.PointCloudDataFrame.create(uri, schema=schema) as ptc: + with soma.PointCloudDataFrame.create( + uri, schema=schema, domain=[[0, 9], [-10000, 10000], [-10000, 10000]] + ) as ptc: pydict = { "soma_joinid": [1, 2, 3, 4, 5], "x": [10, 20, 30, 40, 50], @@ -397,7 +409,8 @@ def test_point_cloud_read_spatial_region_basic_3d( uri, schema=schema, index_column_names=("soma_joinid", "x", "y", "z"), - axis_names=("x", "y", "z"), + coordinate_space=("x", "y", "z"), + domain=[[0, 9], [-10000, 10000], [-10000, 10000], [-10000, 10000]], ) as ptc: pydict = { "soma_joinid": [1, 2, 3, 4, 5], @@ -427,7 +440,9 @@ def test_point_cloud_read_spatial_region_2d_bad(tmp_path, name, region, exc_type schema = pa.schema([("x", pa.float64()), ("y", pa.float64())]) - with soma.PointCloudDataFrame.create(uri, schema=schema) as ptc: + with soma.PointCloudDataFrame.create( + uri, schema=schema, domain=[[0, 9], [-10000, 10000], [-10000, 10000]] + ) as ptc: pydict = { "soma_joinid": [1, 2, 3, 4, 5], "x": [10, 20, 30, 40, 50], @@ -456,7 +471,7 @@ def test_point_cloud_read_spatial_region_3d_bad(tmp_path, name, region, exc_type schema = pa.schema([("x", pa.float64()), ("y", pa.float64()), ("z", pa.float64())]) - with soma.PointCloudDataFrame.create(uri, schema=schema) as ptc: + with soma.PointCloudDataFrame.create(uri, schema=schema, domain=[[0, 9]]) as ptc: pydict = { "soma_joinid": [1, 2, 3, 4, 5], "x": [10, 20, 30, 40, 50], @@ -474,7 +489,9 @@ def test_point_cloud_read_spatial_region_3d_bad(tmp_path, name, region, exc_type def point_cloud_read_spatial_region_transform_setup(uri, transform, input_axes, kwargs): schema = pa.schema([("x", pa.float64()), ("y", pa.float64())]) - with soma.PointCloudDataFrame.create(uri, schema=schema) as ptc: + with soma.PointCloudDataFrame.create( + uri, schema=schema, domain=[[0, 9], [-10000, 10000], [-10000, 10000]] + ) as ptc: pydict = { "soma_joinid": [1, 2, 3, 4, 5], "x": [10, 20, 30, 40, 50], @@ -675,7 +692,9 @@ def test_point_cloud_read_spatial_region_region_coord_space(tmp_path): schema = pa.schema([("x", pa.float64()), ("y", pa.float64())]) - with soma.PointCloudDataFrame.create(uri, schema=schema) as ptc: + with soma.PointCloudDataFrame.create( + uri, schema=schema, domain=[[0, 9], [-10000, 10000], [-10000, 10000]] + ) as ptc: pydict = { "soma_joinid": [1, 2, 3, 4, 5], "x": [10, 20, 30, 40, 50], diff --git a/apis/python/tests/test_registration_mappings.py b/apis/python/tests/test_registration_mappings.py index 45065b6a68..44ac60778b 100644 --- a/apis/python/tests/test_registration_mappings.py +++ b/apis/python/tests/test_registration_mappings.py @@ -242,8 +242,8 @@ def test_pandas_indexing( signature_col_names: List[Union[str, Tuple[str, str]]], ): """ - The `default_index_name` for registration can interact with column- and index-names in a variety of ways; this test - exercises several of them. + The `default_index_name` for registration can interact with column- and + index-names in a variety of ways; this test exercises several of them. """ df = PANDAS_INDEXING_TEST_DF.copy() index_col = index_col_and_name[0] @@ -300,6 +300,9 @@ def test_isolated_anndata_mappings(obs_field_name, var_field_name): ["RAW2", "TP53", "VEGFA"] ).data == (6, 3, 4) + assert rd.get_obs_shape() == 3 + assert rd.get_var_shapes() == {"measname": 5, "raw": 7} + @pytest.mark.parametrize("obs_field_name", ["obs_id", "cell_id"]) @pytest.mark.parametrize("var_field_name", ["var_id", "gene_id"]) @@ -319,6 +322,9 @@ def test_isolated_h5ad_mappings(obs_field_name, var_field_name): ["RAW2", "TP53", "VEGFA"] ).data == (6, 3, 4) + assert rd.get_obs_shape() == 3 + assert rd.get_var_shapes() == {"measname": 5, "raw": 7} + @pytest.mark.parametrize("obs_field_name", ["obs_id", "cell_id"]) @pytest.mark.parametrize("var_field_name", ["var_id", "gene_id"]) @@ -337,6 +343,9 @@ def test_isolated_soma_experiment_mappings(obs_field_name, var_field_name): ["RAW2", "TP53", "VEGFA"] ).data == (6, 3, 4) + assert rd.get_obs_shape() == 3 + assert rd.get_var_shapes() == {"measname": 5, "raw": 7} + @pytest.mark.parametrize("obs_field_name", ["obs_id", "cell_id"]) @pytest.mark.parametrize("var_field_name", ["var_id", "gene_id"]) @@ -373,6 +382,11 @@ def test_multiples_without_experiment( var_field_name=var_field_name, ) + if tiledbsoma._flags.NEW_SHAPE_FEATURE_FLAG_ENABLED: + nobs = rd.get_obs_shape() + nvars = rd.get_var_shapes() + tiledbsoma.io.resize_experiment(experiment_uri, nobs=nobs, nvars=nvars) + else: # "Append" all the H5ADs where no experiment exists yet. rd = registration.ExperimentAmbientLabelMapping.from_h5ad_appends_on_experiment( @@ -430,6 +444,9 @@ def test_multiples_without_experiment( "ZZZ3": 9, } + assert rd.get_obs_shape() == 12 + assert rd.get_var_shapes() == {"measname": 7, "raw": 10} + # Now do the ingestion per se. Note that once registration is done sequentially, ingest order # mustn't matter, and in fact, can be done in parallel. This is why we test various permutations # of the ordering of the h5ad file names. @@ -439,6 +456,14 @@ def test_multiples_without_experiment( h5ad_file_names[permutation[2]], h5ad_file_names[permutation[3]], ]: + if tiledbsoma._flags.NEW_SHAPE_FEATURE_FLAG_ENABLED: + if tiledbsoma.Experiment.exists(experiment_uri): + tiledbsoma.io.resize_experiment( + experiment_uri, + nobs=rd.get_obs_shape(), + nvars=rd.get_var_shapes(), + ) + tiledbsoma.io.from_h5ad( experiment_uri, h5ad_file_name, @@ -677,6 +702,9 @@ def test_multiples_with_experiment(obs_field_name, var_field_name): "ZZZ3": 9, } + assert rd.get_obs_shape() == 12 + assert rd.get_var_shapes() == {"measname": 7, "raw": 10} + @pytest.mark.parametrize("obs_field_name", ["obs_id", "cell_id"]) @pytest.mark.parametrize("var_field_name", ["var_id", "gene_id"]) @@ -691,10 +719,20 @@ def test_append_items_with_experiment(obs_field_name, var_field_name): var_field_name=var_field_name, ) + assert rd.get_obs_shape() == 6 + assert rd.get_var_shapes() == {"measname": 5, "raw": 7} + adata2 = ad.read_h5ad(h5ad2) original = adata2.copy() + if tiledbsoma._flags.NEW_SHAPE_FEATURE_FLAG_ENABLED: + tiledbsoma.io.resize_experiment( + soma1, + nobs=rd.get_obs_shape(), + nvars=rd.get_var_shapes(), + ) + with tiledbsoma.Experiment.open(soma1, "w") as exp1: tiledbsoma.io.append_obs( exp1, @@ -818,6 +856,13 @@ def test_append_with_disjoint_measurements( var_field_name=var_field_name, ) + if tiledbsoma._flags.NEW_SHAPE_FEATURE_FLAG_ENABLED: + tiledbsoma.io.resize_experiment( + soma_uri, + nobs=rd.get_obs_shape(), + nvars=rd.get_var_shapes(), + ) + tiledbsoma.io.from_anndata( soma_uri, anndata2, @@ -1054,6 +1099,9 @@ def test_registration_with_batched_reads(tmp_path, soma_larger, use_small_buffer assert len(rd.obs_axis.data) == 1000 + assert rd.get_obs_shape() == 1000 + assert rd.get_var_shapes() == {"measname": 6} + def test_ealm_expose(): """Checks that this is exported from tiledbsoma.io._registration""" @@ -1163,9 +1211,20 @@ def test_enum_bit_width_append(tmp_path, all_at_once, nobs_a, nobs_b): var_field_name=var_field_name, ) + assert rd.get_obs_shape() == nobs_a + nobs_b + assert rd.get_var_shapes() == {"meas": 4, "raw": 0} + tiledbsoma.io.from_anndata( soma_uri, adata, measurement_name=measurement_name, registration_mapping=rd ) + + if tiledbsoma._flags.NEW_SHAPE_FEATURE_FLAG_ENABLED: + tiledbsoma.io.resize_experiment( + soma_uri, + nobs=rd.get_obs_shape(), + nvars=rd.get_var_shapes(), + ) + tiledbsoma.io.from_anndata( soma_uri, bdata, measurement_name=measurement_name, registration_mapping=rd ) @@ -1181,6 +1240,16 @@ def test_enum_bit_width_append(tmp_path, all_at_once, nobs_a, nobs_b): var_field_name=var_field_name, ) + assert rd.get_obs_shape() == nobs_a + nobs_b + assert rd.get_var_shapes() == {"meas": 4} + + if tiledbsoma._flags.NEW_SHAPE_FEATURE_FLAG_ENABLED: + tiledbsoma.io.resize_experiment( + soma_uri, + nobs=rd.get_obs_shape(), + nvars=rd.get_var_shapes(), + ) + tiledbsoma.io.from_anndata( soma_uri, bdata, measurement_name=measurement_name, registration_mapping=rd ) @@ -1256,6 +1325,9 @@ def test_multimodal_names(tmp_path, conftest_pbmc3k_adata): var_field_name=adata_protein.var.index.name, ) + assert rd.get_obs_shape() == 2638 + assert rd.get_var_shapes() == {"protein": 500, "raw": 13714} + # Ingest the second anndata object into the protein measurement tiledbsoma.io.from_anndata( experiment_uri=uri, diff --git a/apis/python/tests/test_scene.py b/apis/python/tests/test_scene.py index 6875c4575d..9682d3dd09 100644 --- a/apis/python/tests/test_scene.py +++ b/apis/python/tests/test_scene.py @@ -1,13 +1,14 @@ import json from urllib.parse import urljoin -import numpy as np import pyarrow as pa import pytest import typeguard import tiledbsoma as soma +from ._util import assert_transform_equal + def create_and_populate_df(uri: str) -> soma.DataFrame: obs_arrow_schema = pa.schema( @@ -18,7 +19,7 @@ def create_and_populate_df(uri: str) -> soma.DataFrame: ] ) - with soma.DataFrame.create(uri, schema=obs_arrow_schema) as obs: + with soma.DataFrame.create(uri, schema=obs_arrow_schema, domain=[[0, 9]]) as obs: pydict = {} pydict["soma_joinid"] = [0, 1, 2, 3, 4] pydict["foo"] = [10, 20, 30, 40, 50] @@ -150,31 +151,197 @@ def test_scene_coord_space(tmp_path): assert scene.coordinate_space == coord_space +class TestSceneDeepSubcollections: + """Tests on a Scene with multiple layers of subcollections. + + Scene structure: + + scene + | + ├- obsl + ├- varl + | └- RNA + └- suns + └- suns + └- final + """ + + @pytest.fixture(scope="class") + def scene(self, tmp_path_factory): + """Creates and returns a scene for reading that""" + baseuri = tmp_path_factory.mktemp("scene").as_uri() + scene_uri = urljoin(baseuri, "multi-collection") + + # Create a scene with multi-level collections. + with soma.Scene.create(scene_uri) as scene: + + obsl = scene.add_new_collection("obsl") + obsl.metadata["name"] = "obsl" + + varl = scene.add_new_collection("varl") + varl.metadata["name"] = "varl" + + rna = varl.add_new_collection("RNA") + rna.metadata["name"] = "varl/RNA" + + # Add a collection that is not part of the set data model. + # Using 'suns' for spatial-uns. + suns = scene.add_new_collection("suns") + suns.metadata["name"] = "suns" + + suns2 = suns.add_new_collection("suns") + suns2.metadata["name"] = "suns/suns" + + fin = suns2.add_new_collection("final") + fin.metadata["name"] = "suns/suns/final" + + scene = scene.open(scene_uri) + yield scene + scene.close() + + def test_open_subcollection_no_items(self, scene): + with pytest.raises(ValueError): + scene._open_subcollection([]) + + @pytest.mark.parametrize( + "subcollection", + ["bad_name", ["obsl", "bad_name"], ["bad_name", "obsl"]], + ) + def test_open_subcollection_keyerror(self, scene, subcollection): + with pytest.raises(KeyError): + scene._open_subcollection(subcollection) + + @pytest.mark.parametrize( + "subcollection,expected_metadata", + [ + ("obsl", "obsl"), + (["obsl"], "obsl"), + ("varl", "varl"), + (["varl", "RNA"], "varl/RNA"), + ("suns", "suns"), + (["suns", "suns"], "suns/suns"), + (["suns", "suns", "final"], "suns/suns/final"), + ], + ) + def test_open_subcolletion(self, scene, subcollection, expected_metadata): + coll = scene._open_subcollection(subcollection) + actual_metadata = coll.metadata["name"] + assert actual_metadata == expected_metadata + + +def test_scene_point_cloud(tmp_path): + baseuri = urljoin(f"{tmp_path.as_uri()}/", "test_scene_point_cloud") + + with soma.Scene.create(baseuri) as scene: + # Create obsl. + obsl_uri = urljoin(baseuri, "obsl") + scene["obsl"] = soma.Collection.create(obsl_uri) + + # Add parameters for the point cloud. + asch = pa.schema([("x", pa.float64()), ("y", pa.float64())]) + elem_coord_space = soma.CoordinateSpace( + [soma.Axis(name="x", unit="nm"), soma.Axis(name="y", unit="nm")] + ) + transform = soma.ScaleTransform( + input_axes=("x_scene", "y_scene"), + output_axes=("x", "y"), + scale_factors=[-1, 1], + ) + + # Cannot set transform before the scene coordinate space is set. + with pytest.raises(soma.SOMAError): + scene.add_new_point_cloud_dataframe( + "ptc", + subcollection="obsl", + transform=transform, + schema=asch, + coordinate_space=elem_coord_space, + ) + + # Set scene coordinate space. + scene_coord_space = soma.CoordinateSpace( + [soma.Axis(name="x_scene"), soma.Axis(name="y_scene")] + ) + scene.coordinate_space = scene_coord_space + + # Mismatch in transform input axes and coordinate space axes. + bad_transform = soma.ScaleTransform( + input_axes=("xbad", "ybad"), + output_axes=("x", "y"), + scale_factors=[-1, 1], + ) + with pytest.raises(ValueError): + scene.add_new_point_cloud_dataframe( + "ptc", + subcollection="obsl", + transform=bad_transform, + schema=asch, + coordinate_space=elem_coord_space, + ) + + # Mismatch in transform output axes and point cloud axes. + bad_transform = soma.ScaleTransform( + input_axes=("x_scene", "y_scene"), + output_axes=("xbad", "ybad"), + scale_factors=[-1, 1], + ) + with pytest.raises(ValueError): + scene.add_new_point_cloud_dataframe( + "ptc", + subcollection="obsl", + transform=bad_transform, + schema=asch, + coordinate_space=elem_coord_space, + ) + + # Add the point cloud dataframe. + scene.add_new_point_cloud_dataframe( + "ptc", + subcollection="obsl", + transform=transform, + schema=asch, + coordinate_space=elem_coord_space, + ) + + # Check the transform. + ptc_transform = scene.get_transform_to_point_cloud_dataframe("ptc") + assert_transform_equal(ptc_transform, transform) + + @pytest.mark.parametrize( "coord_transform, transform_kwargs", [ - (soma.AffineTransform, {"matrix": [[1, 0, 0], [0, 1, 0], [0, 0, 1]]}), - (soma.ScaleTransform, {"scale_factors": [1, 1]}), - (soma.UniformScaleTransform, {"scale": 1}), + (soma.AffineTransform, {"matrix": [[1, 0, 1], [0, 1, 1], [0, 0, 1]]}), + (soma.ScaleTransform, {"scale_factors": [-1, 1]}), + (soma.UniformScaleTransform, {"scale": 2}), (soma.IdentityTransform, {}), ], ) -def test_scene_point_cloud(tmp_path, coord_transform, transform_kwargs): - baseuri = urljoin(f"{tmp_path.as_uri()}/", "test_scene_point_cloud") +@pytest.mark.parametrize("set_coord_space", [True, False]) +def test_scene_set_transform_to_point_cloud( + tmp_path, coord_transform, transform_kwargs, set_coord_space +): + baseuri = urljoin( + f"{tmp_path.as_uri()}/", "test_scene_set_transform_to_point_cloud" + ) with soma.Scene.create(baseuri) as scene: obsl_uri = urljoin(baseuri, "obsl") scene["obsl"] = soma.Collection.create(obsl_uri) - ptc_uri = urljoin(obsl_uri, "ptc") asch = pa.schema([("x", pa.float64()), ("y", pa.float64())]) - coord_space = soma.CoordinateSpace([soma.Axis(name="x"), soma.Axis(name="y")]) + coord_space = soma.CoordinateSpace( + [soma.Axis(name="x_scene"), soma.Axis(name="y_scene")] + ) - # TODO replace with Scene.add_new_point_cloud_dataframe when implemented - scene["obsl"]["ptc"] = soma.PointCloudDataFrame.create(ptc_uri, schema=asch) + scene.add_new_point_cloud_dataframe( + "ptc", subcollection="obsl", transform=None, schema=asch + ) transform = coord_transform( - input_axes=("x", "y"), output_axes=("x", "y"), **transform_kwargs + input_axes=("x_scene", "y_scene"), + output_axes=("x", "y"), + **transform_kwargs, ) # The scene coordinate space must be set before registering @@ -187,32 +354,137 @@ def test_scene_point_cloud(tmp_path, coord_transform, transform_kwargs): with pytest.raises(KeyError): scene.set_transform_to_point_cloud_dataframe("bad", transform) + # Mismatched input axes. + transform_bad = coord_transform( + input_axes=("x", "y"), + output_axes=("x", "y"), + **transform_kwargs, + ) + with pytest.raises(ValueError): + scene.set_transform_to_point_cloud_dataframe("ptc", transform_bad) + + # Mismatched output axes. + transform_bad = coord_transform( + input_axes=("x_scene", "y_scene"), + output_axes=("x_scene", "y_scene"), + **transform_kwargs, + ) + with pytest.raises(ValueError): + scene.set_transform_to_point_cloud_dataframe("ptc", transform_bad) + # Not a PointCloudDataFrame scene["obsl"]["col"] = soma.Collection.create(urljoin(obsl_uri, "col")) - with pytest.raises(typeguard.TypeCheckError): + with pytest.raises(TypeError): scene.set_transform_to_point_cloud_dataframe("col", transform) # Transform not set with pytest.raises(KeyError): scene.get_transform_to_point_cloud_dataframe("ptc") - scene.set_transform_to_point_cloud_dataframe("ptc", transform) + if set_coord_space: + bad_coord_space = soma.CoordinateSpace.from_axis_names(("xbad", "ybad")) + with pytest.raises(ValueError): + scene.set_transform_to_point_cloud_dataframe( + "ptc", transform, coordinate_space=bad_coord_space + ) + + coord_space = soma.CoordinateSpace( + (soma.Axis(name="x", unit="nm"), soma.Axis(name="y", unit="nm")) + ) + + point_cloud = scene.set_transform_to_point_cloud_dataframe( + "ptc", transform, coordinate_space=coord_space + ) + actual_coord_space = point_cloud.coordinate_space + assert actual_coord_space == coord_space + + else: + scene.set_transform_to_point_cloud_dataframe("ptc", transform) ptc_transform = scene.get_transform_to_point_cloud_dataframe("ptc") - if isinstance(coord_transform, soma.AffineTransform): - assert np.array_equal( - ptc_transform.augmented_matrix, - transform.augmented_matrix, + assert_transform_equal(ptc_transform, transform) + + inv_transform = transform.inverse_transform() + ptc_inv_transform = scene.get_transform_from_point_cloud_dataframe("ptc") + assert_transform_equal(ptc_inv_transform, inv_transform) + + +def test_scene_multiscale_image(tmp_path): + baseuri = urljoin(f"{tmp_path.as_uri()}/", "test_scene_multiscale_image") + + with soma.Scene.create(baseuri) as scene: + # Create img. + img_uri = urljoin(baseuri, "img") + scene["img"] = soma.Collection.create(img_uri) + + # Parameters for the multiscale image. + transform = soma.ScaleTransform( + input_axes=("x_scene", "y_scene"), + output_axes=("x", "y"), + scale_factors=[-1, 1], + ) + + # Cannot set transform before the scene coordinate space is set. + with pytest.raises(soma.SOMAError): + scene.add_new_multiscale_image( + "msi", + "img", + transform=transform, + type=pa.int64(), + reference_level_shape=[1, 2, 3], + ) + + # The scene coordinate space must be set before registering + scene.set_transform_to_multiscale_image("msi", transform) + + # Set the scene multiscale image. + scene_coord_space = soma.CoordinateSpace( + [soma.Axis(name="x_scene"), soma.Axis(name="y_scene")] + ) + scene.coordinate_space = scene_coord_space + + # Mismatch in transform input axes and scene coordinate space axes. + bad_transform = soma.ScaleTransform( + input_axes=("xbad", "ybad"), + output_axes=("x", "y"), + scale_factors=[-1, 1], + ) + with pytest.raises(ValueError): + scene.add_new_multiscale_image( + "msi", + "img", + transform=bad_transform, + type=pa.int64(), + reference_level_shape=[1, 2, 3], ) - elif isinstance(coord_transform, soma.ScaleTransform): - assert np.array_equal( - ptc_transform.scale_factors, - transform.scale_factors, + + # Mismatch in transform output axes and multiscale image coordinate space axes. + bad_transform = soma.ScaleTransform( + input_axes=("x_scene", "y_scene"), + output_axes=("xbad", "ybad"), + scale_factors=[-1, 1], + ) + with pytest.raises(ValueError): + scene.add_new_multiscale_image( + "msi", + "img", + transform=bad_transform, + type=pa.int64(), + reference_level_shape=[1, 2, 3], ) - elif isinstance( - coord_transform, (soma.UniformScaleTransform, soma.IdentityTransform) - ): - assert ptc_transform.scale == transform.scale + + # Add the multiscale image. + scene.add_new_multiscale_image( + "msi", + "img", + transform=transform, + type=pa.int64(), + reference_level_shape=[1, 2, 3], + ) + + # Check the transform. + msi_transform = scene.get_transform_to_multiscale_image("msi") + assert_transform_equal(msi_transform, transform) @pytest.mark.parametrize( @@ -224,8 +496,13 @@ def test_scene_point_cloud(tmp_path, coord_transform, transform_kwargs): (soma.IdentityTransform, {}), ], ) -def test_scene_multiscale_image(tmp_path, coord_transform, transform_kwargs): - baseuri = urljoin(f"{tmp_path.as_uri()}/", "test_scene_multiscale_image") +@pytest.mark.parametrize("set_coord_space", [True, False]) +def test_scene_set_transfrom_to_multiscale_image( + tmp_path, coord_transform, transform_kwargs, set_coord_space +): + baseuri = urljoin( + f"{tmp_path.as_uri()}/", "test_scene_set_transform_to_multiscale_image" + ) with soma.Scene.create(baseuri) as scene: obsl_uri = urljoin(baseuri, "obsl") @@ -234,16 +511,21 @@ def test_scene_multiscale_image(tmp_path, coord_transform, transform_kwargs): img_uri = urljoin(baseuri, "img") scene["img"] = soma.Collection.create(img_uri) - msi_uri = urljoin(img_uri, "msi") - coord_space = soma.CoordinateSpace([soma.Axis(name="x"), soma.Axis(name="y")]) + coord_space = soma.CoordinateSpace( + [soma.Axis(name="x_scene"), soma.Axis(name="y_scene")] + ) - # TODO replace with Scene.add_multiscale_image when implemented - scene["img"]["msi"] = soma.MultiscaleImage.create( - msi_uri, type=pa.int64(), reference_level_shape=[1, 2, 3] + # TODO Add transform directly to add_new_multiscale_image + scene.add_new_multiscale_image( + "msi", + "img", + transform=None, + type=pa.int64(), + reference_level_shape=[3, 8, 9], ) transform = coord_transform( - input_axes=("x", "y"), + input_axes=("x_scene", "y_scene"), output_axes=("x", "y"), **transform_kwargs, ) @@ -264,26 +546,75 @@ def test_scene_multiscale_image(tmp_path, coord_transform, transform_kwargs): # Not a MultiscaleImage scene["img"]["col"] = soma.Collection.create(urljoin(img_uri, "col")) - with pytest.raises(typeguard.TypeCheckError): + with pytest.raises(TypeError): scene.set_transform_to_multiscale_image("col", transform) - scene.set_transform_to_multiscale_image("msi", transform) + # Mismatched input axes. + transform_bad = coord_transform( + input_axes=("x", "y"), + output_axes=("x", "y"), + **transform_kwargs, + ) + with pytest.raises(ValueError): + scene.set_transform_to_multiscale_image("msi", transform_bad) - msi_transform = scene.get_transform_to_multiscale_image("msi") - if isinstance(coord_transform, soma.AffineTransform): - assert np.array_equal( - msi_transform.augmented_matrix, - transform.augmented_matrix, + # Mismatched output axes. + transform_bad = coord_transform( + input_axes=("x_scene", "y_scene"), + output_axes=("x_scene", "y_scene"), + **transform_kwargs, + ) + with pytest.raises(ValueError): + scene.set_transform_to_multiscale_image("msi", transform_bad) + + if set_coord_space: + bad_coord_space = soma.CoordinateSpace.from_axis_names(("xbad", "ybad")) + with pytest.raises(ValueError): + scene.set_transform_to_multiscale_image( + "msi", transform, coordinate_space=bad_coord_space + ) + + coord_space = soma.CoordinateSpace( + (soma.Axis(name="x", unit="nm"), soma.Axis(name="y", unit="nm")) ) - elif isinstance(coord_transform, soma.ScaleTransform): - assert np.array_equal( - msi_transform.scale_factors, - transform.scale_factors, + + msi = scene.set_transform_to_multiscale_image( + "msi", transform, coordinate_space=coord_space ) - elif isinstance( - coord_transform, (soma.UniformScaleTransform, soma.IdentityTransform) - ): - assert msi_transform.scale == transform.scale + actual_coord_space = msi.coordinate_space + assert actual_coord_space == coord_space + + else: + msi = scene.set_transform_to_multiscale_image("msi", transform) + + msi_transform = scene.get_transform_to_multiscale_image("msi") + assert_transform_equal(msi_transform, transform) + + inv_transform = transform.inverse_transform() + msi_transform = scene.get_transform_from_multiscale_image("msi") + assert_transform_equal(msi_transform, inv_transform) + + # Set a level to test get transform with level. + # -- Original size: (3, 8, 9) + # -- This level: (3, 4, 3) + # -- x_scale = 3 / 9 = 1 / 3 + # -- y_scale = 4 / 8 = 0.5 + scale_transform = soma.ScaleTransform( + input_axes=("x", "y"), + output_axes=("x", "y"), + scale_factors=[1 / 3, 0.5], + ) + msi.add_new_level("lowres", shape=(3, 4, 3)) + + # Check the transform to the "lowres" level. + transform_to_level = scale_transform @ transform + msi_transform = scene.get_transform_to_multiscale_image("msi", level="lowres") + assert_transform_equal(msi_transform, transform_to_level) + + # Check the transform from the "lowres" level. + transform_from_level = transform_to_level.inverse_transform() + msi_transform = scene.get_transform_from_multiscale_image("msi", level="lowres") + assert_transform_equal(msi_transform, transform_from_level) @pytest.mark.skip("GeometryDataFrame not supported yet") @@ -305,13 +636,17 @@ def test_scene_geometry_dataframe(tmp_path, coord_transform, transform_kwargs): gdf_uri = urljoin(obsl_uri, "gdf") asch = pa.schema([("x", pa.float64()), ("y", pa.float64())]) - coord_space = soma.CoordinateSpace([soma.Axis(name="x"), soma.Axis(name="y")]) + coord_space = soma.CoordinateSpace( + [soma.Axis(name="x_scene"), soma.Axis(name="y_scene")] + ) # TODO replace with Scene.add_new_geometry_dataframe when implemented scene["obsl"]["gdf"] = soma.GeometryDataFrame.create(gdf_uri, schema=asch) transform = coord_transform( - input_axes=("x", "y"), output_axes=("x", "y"), **transform_kwargs + input_axes=("x_scene", "y_scene"), + output_axes=("x", "y"), + **transform_kwargs, ) # The scene coordinate space must be set before registering @@ -336,17 +671,4 @@ def test_scene_geometry_dataframe(tmp_path, coord_transform, transform_kwargs): scene.set_transform_to_geometry_dataframe("gdf", transform) gdf_transform = scene.get_transform_to_geometry_dataframe("gdf") - if isinstance(coord_transform, soma.AffineTransform): - assert np.array_equal( - gdf_transform.augmented_matrix, - transform.augmented_matrix, - ) - elif isinstance(coord_transform, soma.ScaleTransform): - assert np.array_equal( - gdf_transform.scale_factors, - transform.scale_factors, - ) - elif isinstance( - coord_transform, (soma.UniformScaleTransform, soma.IdentityTransform) - ): - assert gdf_transform.scale == transform.scale + assert_transform_equal(gdf_transform, transform) diff --git a/apis/python/tests/test_shape.py b/apis/python/tests/test_shape.py index 5374c56426..dbfc651bff 100644 --- a/apis/python/tests/test_shape.py +++ b/apis/python/tests/test_shape.py @@ -1,9 +1,15 @@ from __future__ import annotations +import io +import tarfile + import pyarrow as pa import pytest import tiledbsoma +import tiledbsoma.io + +from ._util import TESTDATA @pytest.mark.parametrize( @@ -113,11 +119,28 @@ def test_sparse_nd_array_basics( with tiledbsoma.SparseNDArray.open(uri) as snda: assert snda.shape == arg_shape - if tiledbsoma._flags.NEW_SHAPE_FEATURE_FLAG_ENABLED: + if not tiledbsoma._flags.NEW_SHAPE_FEATURE_FLAG_ENABLED: + with tiledbsoma.SparseNDArray.open(uri) as snda: + ok, msg = snda.tiledbsoma_upgrade_shape(arg_shape, check_only=True) + assert ok + assert msg == "" + + else: + + with tiledbsoma.SparseNDArray.open(uri) as snda: + ok, msg = snda.tiledbsoma_upgrade_shape(arg_shape, check_only=True) + assert not ok + assert ( + msg + == "tiledbsoma_can_upgrade_shape: array already has a shape: please use resize" + ) # Test resize down new_shape = tuple([arg_shape[i] - 50 for i in range(ndim)]) with tiledbsoma.SparseNDArray.open(uri, "w") as snda: + (ok, msg) = snda.resize(new_shape, check_only=True) + assert not ok + assert msg == "can_resize for soma_dim_0: new 50 < existing shape 100" # TODO: check draft spec # with pytest.raises(ValueError): with pytest.raises(tiledbsoma.SOMAError): @@ -162,9 +185,19 @@ def test_sparse_nd_array_basics( with tiledbsoma.SparseNDArray.open(uri) as snda: assert snda.shape == new_shape + (ok, msg) = snda.resize(new_shape, check_only=True) + assert ok + assert msg == "" + + too_small = tuple(e - 1 for e in new_shape) + (ok, msg) = snda.resize(too_small, check_only=True) + assert not ok + assert msg == "can_resize for soma_dim_0: new 149 < existing shape 150" + + with tiledbsoma.SparseNDArray.open(uri, "w") as snda: + (ok, msg) = snda.resize(new_shape, check_only=True) + -## Pending 2.27 timeframe for dense support for current domain, including resize -## https://github.com/single-cell-data/TileDB-SOMA/issues/2955 def test_dense_nd_array_basics(tmp_path): uri = tmp_path.as_posix() shape = (100, 200) @@ -177,12 +210,18 @@ def test_dense_nd_array_basics(tmp_path): assert dnda.non_empty_domain() == ((0, 0), (0, 0)) with tiledbsoma.DenseNDArray.open(uri, "w") as dnda: - with pytest.raises(NotImplementedError): + if tiledbsoma.pytiledbsoma.embedded_version_triple() >= (2, 27, 0): dnda.resize((300, 400)) + else: + with pytest.raises(NotImplementedError): + dnda.resize((300, 400)) with tiledbsoma.DenseNDArray.open(uri) as dnda: assert dnda.non_empty_domain() == ((0, 0), (0, 0)) - assert dnda.shape == (100, 200) + if tiledbsoma.pytiledbsoma.embedded_version_triple() >= (2, 27, 0): + assert dnda.shape == (300, 400) + else: + assert dnda.shape == (100, 200) @pytest.mark.parametrize( @@ -276,13 +315,23 @@ def test_dataframe_basics(tmp_path, soma_joinid_domain, index_column_names): # Test resize down new_shape = 0 with tiledbsoma.DataFrame.open(uri, "w") as sdf: + ok, msg = sdf.tiledbsoma_resize_soma_joinid_shape( + new_shape, check_only=True + ) if has_soma_joinid_dim: # TODO: check draft spec # with pytest.raises(ValueError): + assert not ok + assert ( + "tiledbsoma_resize_soma_joinid_shape: new soma_joinid shape 0 < existing shape" + in msg + ) with pytest.raises(tiledbsoma.SOMAError): - sdf.resize_soma_joinid_shape(new_shape) + sdf.tiledbsoma_resize_soma_joinid_shape(new_shape) else: - sdf.resize_soma_joinid_shape(new_shape) + assert ok + assert msg == "" + sdf.tiledbsoma_resize_soma_joinid_shape(new_shape) with tiledbsoma.DataFrame.open(uri) as sdf: assert sdf._maybe_soma_joinid_shape == shape_at_create @@ -302,8 +351,348 @@ def test_dataframe_basics(tmp_path, soma_joinid_domain, index_column_names): # Test resize new_shape = 0 if shape_at_create is None else shape_at_create + 100 with tiledbsoma.DataFrame.open(uri, "w") as sdf: - sdf.resize_soma_joinid_shape(new_shape) + sdf.tiledbsoma_resize_soma_joinid_shape(new_shape) # Test writes out of old bounds, within new bounds, after resize with tiledbsoma.DataFrame.open(uri, "w") as sdf: sdf.write(data) + + +def test_domain_mods(tmp_path): + if not tiledbsoma._flags.NEW_SHAPE_FEATURE_FLAG_ENABLED: + return + + uri = tmp_path.as_posix() + + schema = pa.schema( + [ + ("soma_joinid", pa.int64()), + ("mystring", pa.string()), + ("myint", pa.int16()), + ("myfloat", pa.float32()), + ("mybool", pa.bool_()), # not supported as an index type + ] + ) + index_column_names = ["soma_joinid", "mystring", "myint", "myfloat"] + + domain_for_create = [ + [0, 3], + None, + [20, 50], + [0.0, 6.0], + ] + + data_dict = { + "soma_joinid": [0, 1, 2, 3], + "mystring": ["a", "b", "a", "b"], + "myint": [20, 30, 40, 50], + "myfloat": [1.0, 2.5, 4.0, 5.5], + "mybool": [True, False, True, True], + } + + data = pa.Table.from_pydict(data_dict) + + with tiledbsoma.DataFrame.create( + uri, + schema=schema, + index_column_names=index_column_names, + domain=domain_for_create, + ) as sdf: + sdf.write(data) + + # Check "expand" to same + with tiledbsoma.DataFrame.open(uri, "w") as sdf: + newdomain = [[0, 3], None, [20, 50], [0.0, 6.0]] + ok, msg = sdf.change_domain(newdomain, check_only=True) + assert ok + assert msg == "" + + # Shrink + with tiledbsoma.DataFrame.open(uri, "w") as sdf: + newdomain = [[0, 2], None, [20, 50], [0.0, 6.0]] + ok, msg = sdf.change_domain(newdomain, check_only=True) + assert not ok + assert "downsize is unsupported" in msg + + with tiledbsoma.DataFrame.open(uri, "w") as sdf: + newdomain = [[0, 3], None, [20, 40], [0.0, 6.0]] + ok, msg = sdf.change_domain(newdomain, check_only=True) + assert not ok + assert "downsize is unsupported" in msg + + with tiledbsoma.DataFrame.open(uri, "w") as sdf: + newdomain = [[0, 3], None, [20, 50], [1.0, 6.0]] + ok, msg = sdf.change_domain(newdomain, check_only=True) + assert not ok + assert "downsize is unsupported" in msg + + # String domain cannot be specified + with tiledbsoma.DataFrame.open(uri, "w") as sdf: + newdomain = [ + [0, 3], + ["a", "z"], + [20, 50], + [0.0, 6.0], + ] + ok, msg = sdf.change_domain(newdomain, check_only=True) + assert not ok + assert "domain cannot be set for string index columns" in msg + + # All clear + with tiledbsoma.DataFrame.open(uri, "w") as sdf: + newdomain = [[0, 9], None, [0, 100], [-10.0, 10.0]] + ok, msg = sdf.change_domain(newdomain, check_only=True) + assert ok + assert msg == "" + sdf.change_domain(newdomain) + + # Check for success + with tiledbsoma.DataFrame.open(uri, "r") as sdf: + dom = sdf.domain + assert dom[0] == (0, 9) + assert dom[1] == ("", "") + assert dom[2] == (0, 100) + assert dom[3] == (-10.0, 10.0) + + +@pytest.mark.parametrize("has_shapes", [False, True]) +def test_canned_experiments(tmp_path, has_shapes): + uri = tmp_path.as_posix() + + if not has_shapes: + tgz = TESTDATA / "pbmc-exp-without-shapes.tgz" + else: + tgz = TESTDATA / "pbmc-exp-with-shapes.tgz" + + with tarfile.open(tgz) as handle: + handle.extractall(uri) + + def _assert_huge_domainish(d): + assert len(d) == 1 + assert len(d[0]) == 2 + assert d[0][0] == 0 + # Exact number depends on tile extent, and is unimportant in any case + assert d[0][1] > 2**62 + + def _check_dataframe( + sdf, has_shapes, expected_count, *, count_must_match: bool = True + ): + if count_must_match: + # OK match case: 2000 populated rows and shape is 2000. + # OK mismatch case: 2000 populated rows and a reshape to 3000 has been done. + assert sdf.count == expected_count + if not has_shapes: + _assert_huge_domainish(sdf.domain) + else: + assert sdf.domain == ((0, expected_count - 1),) + _assert_huge_domainish(sdf.maxdomain) + assert sdf.tiledbsoma_has_upgraded_domain == has_shapes + + def _assert_huge_shape(d): + assert len(d) == 2 + # Exact number depends on tile extent, and is unimportant in any case + assert d[0] > 2**62 + assert d[1] > 2**62 + + def _check_ndarray(ndarray, has_shapes, expected_shape): + if not has_shapes: + _assert_huge_shape(ndarray.shape) + else: + assert ndarray.shape == expected_shape + _assert_huge_shape(ndarray.maxshape) + + with tiledbsoma.Experiment.open(uri) as exp: + + _check_dataframe(exp.obs, has_shapes, 2638) + + assert "raw" in exp.ms + assert "data" in exp.ms["raw"].X + + _check_dataframe(exp.ms["raw"].var, has_shapes, 13714) + _check_ndarray(exp.ms["raw"].X["data"], has_shapes, (2638, 13714)) + + _check_dataframe(exp.ms["RNA"].var, has_shapes, 1838) + _check_ndarray(exp.ms["RNA"].X["data"], has_shapes, (2638, 1838)) + _check_ndarray(exp.ms["RNA"].obsm["X_pca"], has_shapes, (2638, 50)) + _check_ndarray(exp.ms["RNA"].obsp["connectivities"], has_shapes, (2638, 2638)) + _check_ndarray(exp.ms["RNA"].varm["PCs"], has_shapes, (1838, 50)) + + # Check tiledbsoma.io.show_experiment_shapes. This is mainly for interactive + # use, so in a unit test, we want to check basics: + # * Check that many lines were printed + # * Make sure exceptions occurred + # * Do some spot-checks on wording + + handle = io.StringIO() + tiledbsoma.io.show_experiment_shapes(uri, output_handle=handle) + handle.seek(0) + lines = handle.readlines() + handle.close() + # Exact line count doesn't matter: make sure it's a lot. + assert len(lines) > 50 + body = "\n".join(lines) + assert "[SparseNDArray] ms/RNA/obsp/distances" in body + assert "ms/RNA/obsm/X_draw_graph_fr" in body + + # Check upgrade_domain for dataframes + with tiledbsoma.Experiment.open(uri, "w") as exp: + + ok, msg = exp.obs.tiledbsoma_upgrade_domain([[10, 4]], check_only=True) + if has_shapes: + assert not ok + assert "dataframe already has a domain" in msg + else: + assert not ok + assert "new lower > new upper" in msg + + ok, msg = exp.obs.tiledbsoma_upgrade_domain([[0, 1]], check_only=True) + if has_shapes: + assert not ok + assert "dataframe already has a domain" in msg + else: + assert ok + assert msg == "" + + with pytest.raises(ValueError): + exp.obs.tiledbsoma_upgrade_domain([[0, 1, 2]], check_only=True) + + # Check dry run of tiledbsoma.io.upgrade_experiment_shapes + handle = io.StringIO() + upgradeable = tiledbsoma.io.upgrade_experiment_shapes( + uri, check_only=True, output_handle=handle + ) + handle.seek(0) + lines = handle.readlines() + handle.close() + # Exact line count doesn't matter: make sure it's a lot. + assert len(lines) > 50 + body = "\n".join(lines) + assert "[SparseNDArray] ms/RNA/obsp/distances" in body + assert "ms/RNA/obsm/X_draw_graph_fr" in body + assert upgradeable != has_shapes + + # Check dry run of tiledbsoma.io.resize_experiment -- plenty of room + handle = io.StringIO() + resizeable = tiledbsoma.io.resize_experiment( + uri, + nobs=100000, + nvars={"RNA": 100000, "raw": 200000}, + check_only=True, + output_handle=handle, + ) + handle.seek(0) + lines = handle.readlines() + handle.close() + # Exact line count doesn't matter: make sure it's a lot. + assert len(lines) > 50 + body = "\n".join(lines) + assert "[SparseNDArray] ms/RNA/obsp/distances" in body + assert "ms/RNA/obsm/X_draw_graph_fr" in body + assert resizeable == has_shapes + + # Check dry run of tiledbsoma.io.resize_experiment -- no change + handle = io.StringIO() + resizeable = tiledbsoma.io.resize_experiment( + uri, + nobs=2638, + nvars={"RNA": 1838, "raw": 13714}, + check_only=True, + output_handle=handle, + ) + assert resizeable == has_shapes + + # Check dry run of tiledbsoma.io.resize_experiment -- downsize + handle = io.StringIO() + resizeable = tiledbsoma.io.resize_experiment( + uri, + nobs=2638, + nvars={"RNA": 1838, "raw": 13713}, + check_only=True, + output_handle=handle, + ) + assert not resizeable + handle.seek(0) + lines = handle.readlines() + handle.close() + body = "\n".join(lines) + if not has_shapes: + assert ( + "Not OK: can_resize: array currently has no shape: please upgrade the array" + in body + ) + else: + assert ( + "Not OK: can_resize for soma_dim_1: new 13713 < existing shape 13714" + in body + ) + + # Check real run of tiledbsoma.io.upgrade_experiment_shapes + handle = io.StringIO() + upgraded = tiledbsoma.io.upgrade_experiment_shapes(uri, output_handle=handle) + handle.seek(0) + lines = handle.readlines() + handle.close() + # Experiment-level upgrade is idempotent. + assert upgraded + + # Check post-upgrade shapes + with tiledbsoma.Experiment.open(uri) as exp: + + _check_dataframe(exp.obs, True, 2638) + + assert "raw" in exp.ms + assert "data" in exp.ms["raw"].X + + _check_dataframe(exp.ms["raw"].var, True, 13714) + _check_ndarray(exp.ms["raw"].X["data"], True, (2638, 13714)) + + _check_dataframe(exp.ms["RNA"].var, True, 1838) + _check_ndarray(exp.ms["RNA"].X["data"], True, (2638, 1838)) + _check_ndarray(exp.ms["RNA"].obsm["X_pca"], True, (2638, 50)) + _check_ndarray(exp.ms["RNA"].obsp["connectivities"], True, (2638, 2638)) + _check_ndarray(exp.ms["RNA"].varm["PCs"], True, (1838, 50)) + + # Check real same-size resize + handle = io.StringIO() + resized = tiledbsoma.io.resize_experiment( + uri, + nobs=2638, + nvars={"RNA": 1838, "raw": 13714}, + output_handle=handle, + ) + assert resized + + # Check real down-size resize + with pytest.raises(tiledbsoma.SOMAError): + tiledbsoma.io.resize_experiment( + uri, + nobs=2637, + nvars={"RNA": 1838, "raw": 13714}, + output_handle=handle, + ) + + # Check real up-size resize + handle = io.StringIO() + resized = tiledbsoma.io.resize_experiment( + uri, + nobs=2639, + nvars={"RNA": 1839, "raw": 13720}, + output_handle=handle, + ) + assert resized + + # Check new shapes + with tiledbsoma.Experiment.open(uri) as exp: + _check_dataframe(exp.obs, True, 2639, count_must_match=False) + + assert "raw" in exp.ms + assert "data" in exp.ms["raw"].X + + _check_dataframe(exp.ms["raw"].var, True, 13720, count_must_match=False) + _check_ndarray(exp.ms["raw"].X["data"], True, (2639, 13720)) + + _check_dataframe(exp.ms["RNA"].var, True, 1839, count_must_match=False) + _check_ndarray(exp.ms["RNA"].X["data"], True, (2639, 1839)) + _check_ndarray(exp.ms["RNA"].obsm["X_pca"], True, (2639, 50)) + _check_ndarray(exp.ms["RNA"].obsp["connectivities"], True, (2639, 2639)) + _check_ndarray(exp.ms["RNA"].varm["PCs"], True, (1839, 50)) diff --git a/apis/python/tests/test_sparse_nd_array.py b/apis/python/tests/test_sparse_nd_array.py index 8b49bdf364..fc45c64126 100644 --- a/apis/python/tests/test_sparse_nd_array.py +++ b/apis/python/tests/test_sparse_nd_array.py @@ -3,6 +3,7 @@ import contextlib import datetime import itertools +import json import operator import pathlib import sys @@ -18,7 +19,6 @@ import tiledbsoma as soma from tiledbsoma import _factory from tiledbsoma.options import SOMATileDBContext -import tiledb from . import NDARRAY_ARROW_TYPES_NOT_SUPPORTED, NDARRAY_ARROW_TYPES_SUPPORTED from ._util import raises_no_typeguard @@ -325,10 +325,9 @@ def test_sparse_nd_array_read_write_sparse_tensor( assert t.shape == shape - # Validate TileDB array schema - with tiledb.open(tmp_path.as_posix()) as A: - assert A.schema.sparse - assert not A.schema.allows_duplicates + with soma.SparseNDArray.open(tmp_path.as_posix()) as A: + assert A.is_sparse + assert not A.config_options_from_schema().allows_duplicates @pytest.mark.parametrize("shape", [(10,), (23, 4), (5, 3, 1), (8, 4, 2, 30)]) @@ -350,10 +349,9 @@ def test_sparse_nd_array_read_write_table( assert isinstance(t, pa.Table) assert tables_are_same_value(data, t) - # Validate TileDB array schema - with tiledb.open(tmp_path.as_posix()) as A: - assert A.schema.sparse - assert not A.schema.allows_duplicates + with soma.SparseNDArray.open(tmp_path.as_posix()) as A: + assert A.is_sparse + assert not A.config_options_from_schema().allows_duplicates @pytest.mark.parametrize("dtype", [np.float32, np.float64, np.int32, np.int64]) @@ -379,10 +377,9 @@ def test_sparse_nd_array_read_as_pandas( data.to_pandas().sort_values(by=dim_names, ignore_index=True) ) - # Validate TileDB array schema - with tiledb.open(tmp_path.as_posix()) as A: - assert A.schema.sparse - assert not A.schema.allows_duplicates + with soma.SparseNDArray.open(tmp_path.as_posix()) as A: + assert A.is_sparse + assert not A.config_options_from_schema().allows_duplicates @pytest.mark.parametrize("shape_is_nones", [True, False]) @@ -390,10 +387,15 @@ def test_sparse_nd_array_read_as_pandas( def test_sparse_nd_array_shaping(tmp_path, shape_is_nones, element_type): uri = tmp_path.as_posix() + if soma._flags.NEW_SHAPE_FEATURE_FLAG_ENABLED: + shape = [2, 3] + else: + shape = [None, None] if shape_is_nones else [2, 3] + soma.SparseNDArray.create( uri, type=element_type, - shape=(None, None) if shape_is_nones else (2, 3), + shape=shape, ).close() assert soma.SparseNDArray.exists(uri) @@ -419,6 +421,9 @@ def test_sparse_nd_array_shaping(tmp_path, shape_is_nones, element_type): assert snda.nnz == 6 if shape_is_nones: + if soma._flags.NEW_SHAPE_FEATURE_FLAG_ENABLED: + with soma.SparseNDArray.open(uri, "w") as snda: + snda.resize([3, 3]) with soma.SparseNDArray.open(uri, "w") as snda: snda.write(batch2) else: @@ -1031,7 +1036,7 @@ def test_sparse_nd_array_error_corners(tmp_path): with soma.SparseNDArray.open(tmp_path.as_posix()) as a: # other coord types are illegal - with pytest.raises(TypeError): + with raises_no_typeguard(TypeError): next(a.read("hi").tables()) @@ -1087,13 +1092,14 @@ def test_tile_extents(tmp_path): }, ).close() - with tiledb.open(uri) as A: + with soma.SparseNDArray.open(tmp_path.as_posix()) as A: + dim_info = json.loads(A.config_options_from_schema().dims) if soma._flags.NEW_SHAPE_FEATURE_FLAG_ENABLED: - assert A.schema.domain.dim(0).tile == 2048 - assert A.schema.domain.dim(1).tile == 2048 + assert int(dim_info["soma_dim_0"]["tile"]) == 2048 + assert int(dim_info["soma_dim_1"]["tile"]) == 2048 else: - assert A.schema.domain.dim(0).tile == 100 - assert A.schema.domain.dim(1).tile == 2048 + assert int(dim_info["soma_dim_0"]["tile"]) == 100 + assert int(dim_info["soma_dim_1"]["tile"]) == 2048 @pytest.mark.parametrize( @@ -1102,21 +1108,21 @@ def test_tile_extents(tmp_path): ( {"allows_duplicates": True}, { - "validity_filters": tiledb.FilterList([tiledb.RleFilter()]), + "validity_filters": [{"COMPRESSION_LEVEL": -1, "name": "RLE"}], "allows_duplicates": True, }, ), ( {"allows_duplicates": False}, { - "validity_filters": tiledb.FilterList([tiledb.RleFilter()]), + "validity_filters": [{"COMPRESSION_LEVEL": -1, "name": "RLE"}], "allows_duplicates": False, }, ), ( {"validity_filters": ["NoOpFilter"], "allows_duplicates": False}, { - "validity_filters": tiledb.FilterList([tiledb.NoOpFilter()]), + "validity_filters": [{"name": "NOOP"}], "allows_duplicates": False, }, ), @@ -1132,9 +1138,13 @@ def test_create_platform_config_overrides( shape=(100, 100), platform_config={"tiledb": {"create": {**create_options}}}, ).close() - with tiledb.open(uri) as D: - for k, v in expected_schema_fields.items(): - assert getattr(D.schema, k) == v + + with soma.SparseNDArray.open(tmp_path.as_posix()) as A: + cfg = A.config_options_from_schema() + assert expected_schema_fields["validity_filters"] == json.loads( + cfg.validity_filters + ) + assert expected_schema_fields["allows_duplicates"] == cfg.allows_duplicates def test_timestamped_ops(tmp_path): diff --git a/apis/python/tests/test_stats.py b/apis/python/tests/test_stats.py index 5b2061c144..6a48fc117d 100644 --- a/apis/python/tests/test_stats.py +++ b/apis/python/tests/test_stats.py @@ -1,6 +1,37 @@ +import pyarrow as pa +import pytest + import tiledbsoma +def test_stats(tmp_path, capsys: pytest.CaptureFixture[str]): + """Make sure these exist, don't throw, and write correctly.""" + tiledbsoma.tiledbsoma_stats_enable() + tiledbsoma.tiledbsoma_stats_reset() + + schema = pa.schema([("soma_joinid", pa.int64())]) + with tiledbsoma.DataFrame.create( + tmp_path.as_posix(), + schema=schema, + index_column_names=["soma_joinid"], + ) as sidf: + data = { + "soma_joinid": [0], + } + sidf.write(pa.Table.from_pydict(data)) + + with tiledbsoma.DataFrame.open(tmp_path.as_posix()) as sidf: + sidf.read().concat() + + tiledbsoma.tiledbsoma_stats_dump() + tiledbsoma.tiledbsoma_stats_disable() + stdout, stderr = capsys.readouterr() + assert stdout != "" + assert stderr == "" + print(f"tiledbsoma_stats_dump() = {stdout}") + tiledbsoma.show_package_versions() + + def test_stats_json(): out = tiledbsoma.tiledbsoma_stats_json() assert isinstance(out, str) diff --git a/apis/python/tests/test_type_system.py b/apis/python/tests/test_type_system.py index 9c677dba55..56080e1903 100644 --- a/apis/python/tests/test_type_system.py +++ b/apis/python/tests/test_type_system.py @@ -135,16 +135,21 @@ def test_bool_arrays(tmp_path, bool_array): ] ) index_column_names = ["soma_joinid"] + + n_data = len(bool_array) + data = { + "soma_joinid": list(range(n_data)), + "b": bool_array, + } + rb = pa.Table.from_pydict(data) + nrb = len(rb) + with soma.DataFrame.create( - tmp_path.as_posix(), schema=schema, index_column_names=index_column_names + tmp_path.as_posix(), + schema=schema, + index_column_names=index_column_names, + domain=[[0, max(nrb, 1) - 1]], ) as sdf: - n_data = len(bool_array) - - data = { - "soma_joinid": list(range(n_data)), - "b": bool_array, - } - rb = pa.Table.from_pydict(data) sdf.write(rb) with soma.DataFrame.open(tmp_path.as_posix()) as sdf: diff --git a/apis/python/tests/test_unicode.py b/apis/python/tests/test_unicode.py index 68d252525d..6e2d47bd3c 100644 --- a/apis/python/tests/test_unicode.py +++ b/apis/python/tests/test_unicode.py @@ -46,6 +46,7 @@ def sample_dataframe_path(tmp_path, sample_arrow_table): tmp_path.as_posix(), schema=sample_arrow_table.schema, index_column_names=["soma_joinid"], + domain=((0, len(sample_arrow_table) - 1),), ) as sdf: sdf.write(sample_arrow_table) return sdf.uri diff --git a/apis/python/tests/test_util_tiledb.py b/apis/python/tests/test_util_tiledb.py index 4dbada2d09..e69de29bb2 100644 --- a/apis/python/tests/test_util_tiledb.py +++ b/apis/python/tests/test_util_tiledb.py @@ -1,33 +0,0 @@ -import pyarrow as pa -import pytest - -import tiledbsoma as soma -import tiledb - - -def test_stats(tmp_path, capsys: pytest.CaptureFixture[str]): - """Make sure these exist, don't throw, and write correctly.""" - tiledb.stats_enable() - tiledb.stats_reset() - - schema = pa.schema([("soma_joinid", pa.int64())]) - with soma.DataFrame.create( - tmp_path.as_posix(), - schema=schema, - index_column_names=["soma_joinid"], - ) as sidf: - data = { - "soma_joinid": [0], - } - sidf.write(pa.Table.from_pydict(data)) - - with soma.DataFrame.open(tmp_path.as_posix()) as sidf: - sidf.read().concat() - - tiledb.stats_dump() - tiledb.stats_disable() - stdout, stderr = capsys.readouterr() - assert stdout != "" - assert stderr == "" - print(f"tiledbsoma_stats_dump() = {stdout}") - soma.show_package_versions() diff --git a/apis/r/DESCRIPTION b/apis/r/DESCRIPTION index c00b1237d3..8413700611 100644 --- a/apis/r/DESCRIPTION +++ b/apis/r/DESCRIPTION @@ -6,7 +6,7 @@ Description: Interface for working with 'TileDB'-based Stack of Matrices, like those commonly used for single cell data analysis. It is documented at ; a formal specification available is at . -Version: 1.14.99.5 +Version: 1.14.99.6 Authors@R: c( person(given = "Aaron", family = "Wolen", role = c("cre", "aut"), email = "aaron@tiledb.com", diff --git a/apis/r/NAMESPACE b/apis/r/NAMESPACE index 522816de8a..83db784869 100644 --- a/apis/r/NAMESPACE +++ b/apis/r/NAMESPACE @@ -2,15 +2,25 @@ S3method("[[",MappingBase) S3method("[[<-",MappingBase) +S3method(.is_integerish,Array) +S3method(.is_integerish,ChunkedArray) +S3method(.is_integerish,DataType) +S3method(.is_integerish,Field) +S3method(.is_integerish,default) +S3method(.is_integerish,integer64) S3method(.read_soma_joinids,SOMADataFrame) S3method(.read_soma_joinids,SOMASparseNDArray) S3method(as.list,CoordsStrider) S3method(as.list,MappingBase) +S3method(as.logical,Scalar) S3method(iterators::nextElem,CoordsStrider) S3method(itertools::hasNext,CoordsStrider) S3method(length,CoordsStrider) S3method(length,MappingBase) S3method(names,MappingBase) +S3method(r_type_from_arrow_type,DataType) +S3method(r_type_from_arrow_type,Field) +S3method(r_type_from_arrow_type,Schema) S3method(write_soma,Assay) S3method(write_soma,DataFrame) S3method(write_soma,DimReduc) @@ -84,6 +94,7 @@ export(has_metadata) export(list_datasets) export(load_dataset) export(matrixZeroBasedView) +export(r_type_from_arrow_type) export(set_log_level) export(set_metadata) export(show_package_versions) diff --git a/apis/r/NEWS.md b/apis/r/NEWS.md index 391bec9118..f477cf2913 100644 --- a/apis/r/NEWS.md +++ b/apis/r/NEWS.md @@ -7,6 +7,32 @@ * Use `libtiledbsoma` for R schema evolution [#3100](https://github.com/single-cell-data/TileDB-SOMA/pull/3100) * Implement missing `domain` argument to `SOMADataFrame` `create` [#3032](https://github.com/single-cell-data/TileDB-SOMA/pull/3032) * Remove unused `fragment_count` accessor [#3054](https://github.com/single-cell-data/TileDB-SOMA/pull/3054) +* Bulk-sync `main` to `release-1.15` in prep for 1.15.0rc3 + +# tiledbsoma 1.14.5 + +## Changes + +* Fixes a Python-only bug [#3225](https://github.com/single-cell-data/TileDB-SOMA/pull/3225) + +# tiledbsoma 1.14.4 + +## Changes + +* Add new Arrow-to-R type mapper [#3161](https://github.com/single-cell-data/TileDB-SOMA/pull/3161) +* Expose block/random writer for sparse arrays [#3204](https://github.com/single-cell-data/TileDB-SOMA/pull/3204) + +# tiledbsoma 1.14.3 + +## Changes + +* Handle `numeric` coords properly when reading arrays [3145](https://github.com/single-cell-data/TileDB-SOMA/pull/3145) + +# tiledbsoma 1.14.2 + +## Changes + +* Fixes a Python-only bug [#3074](https://github.com/single-cell-data/TileDB-SOMA/pull/3074) # tiledbsoma 1.14.1 diff --git a/apis/r/R/Init.R b/apis/r/R/Init.R index 24fa903089..91afe50afc 100644 --- a/apis/r/R/Init.R +++ b/apis/r/R/Init.R @@ -20,10 +20,10 @@ # This is temporary for https://github.com/single-cell-data/TileDB-SOMA/issues/2407 # It will be removed once 2407 is complete. - if (Sys.getenv("SOMA_R_NEW_SHAPE") != "") { - .pkgenv[["use_current_domain_transitional_internal_only"]] <- TRUE - } else { + if (Sys.getenv("SOMA_R_NEW_SHAPE") == "false") { .pkgenv[["use_current_domain_transitional_internal_only"]] <- FALSE + } else { + .pkgenv[["use_current_domain_transitional_internal_only"]] <- TRUE } } @@ -34,6 +34,11 @@ .pkgenv[["use_current_domain_transitional_internal_only"]] } +.dense_arrays_can_have_current_domain <- function() { + triple <- tiledb_embedded_version() + return(triple[[1]] >= 2 && triple[[2]] >= 27) +} + ## An .onAttach() function is not allowed to use cat() etc but _must_ communicate via ## packageStartupMessage() as this function can be 'muzzled' as desired. See Writing R Extensions. .onAttach <- function(libname, pkgname) { diff --git a/apis/r/R/QueryCondition.R b/apis/r/R/QueryCondition.R new file mode 100644 index 0000000000..4269a43cec --- /dev/null +++ b/apis/r/R/QueryCondition.R @@ -0,0 +1,383 @@ +# MIT License +# +# Copyright (c) 2021-2024 TileDB Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +# ================================================================ +#' Create a 'tiledbsoma_query_condition' object from an expression +#' +#' The grammar for query conditions is constrained to the operators +#' (\code{">"}, \code{">="}, \code{"<"}, \code{"<="}, \code{"=="}, +#' \code{"!="}, \code{"%in%"}, \code{"%nin%"}), and three boolean operators +#' (\code{"&&"}, also as \code{"&"}, (\code{"||"}, also as \code{"|"}, and +#' \code{"!"} for negation. Note that we locally define \code{"%nin%"} as +#' \code{Negate()} call around \code{%in%)} which extends R a little for this +#' use case. +#' +#' Expressions, in the R language syntax, are parsed locally by this function. +#' +#' @param expr An expression that is understood by the TileDB grammar for +#' query conditions, as a character string. +#' +#' @param schema The Arrow schema for the array for which a query +#' condition is being prepared. This is necessary to obtain type information +#' about left-hand sides of query expressions. +#' +#' @param strict A boolean toogle to, if set, errors if a non-existing +#' attribute is selected or filtered on, defaults to 'TRUE'; if 'FALSE' a +#' warning is shown but execution proceeds. +#' +#' @param somactx SOMAContext pointer. +#' +#' @return A `tiledbsoma_query_condition` object. +#' +#' @noRd +#' +parse_query_condition <- function( + expr, + schema, + strict=TRUE, + somactx + ) { + + spdl::debug("[parseqc] ENTER [{}]", expr) + + stopifnot( + "The expr argument must be a single character string" = + is(expr, "character") && length(expr) == 1, + "The schema argument must be an Arrow Schema" = + is(schema, "ArrowObject") && + is(schema, "Schema"), + "The argument must be a somactx object" = + is(somactx, "externalptr")) + + # ---------------------------------------------------------------- + # Helpers for walking the parse tree + + # Operators + `%!in%` <- Negate(`%in%`) + .is_in_operator <- function(node) { + return(tolower(as.character(node)) %in% c("%in%", "%nin%")) + } + .is_comparison_operator <- function(node) { + return(tolower(as.character(node)) %in% c(">", ">=", "<", "<=", "==", "!=", "%in%", "%nin%")) + } + .is_boolean_operator <- function(node) { + return(as.character(node) %in% c("&&", "||", "!", "&", "|")) + } + + # Leaf nodes + .is_ascii <- function(node) { + return(grepl("^[[:alnum:]_]+$", node)) + } + .is_integer <- function(node) { + return(grepl("^[[:digit:]]+$", as.character(node))) + } + .is_double <- function(node) { + return(grepl("^[[:digit:]\\.]+$", as.character(node)) && length(grepRaw(".", as.character(node), fixed = TRUE, all = TRUE)) == 1) + } + + .error_function <- if (strict) stop else warning + + .map_op_to_character <- function(x) { + return(switch(x, `>` = "GT", `>=` = "GE", `<` = "LT", `<=` = "LE", `==` = "EQ", `!=` = "NE")) + } + + .map_bool_to_character <- function(x) { + return(switch(x, `&&` = "AND", `&` = "AND", `||` = "OR", `|` = "OR", `!` = "NOT")) + } + + # ---------------------------------------------------------------- + # Map the R parse tree (from base-r `substitute`) to a TileDB core QueryCondition + + .parse_tree_to_qc <- function(node, debug=FALSE) { + if (is.symbol(node)) { + stop("Unexpected symbol in expression: ", format(node)) + + } else if (node[[1]] == '(') { + spdl::debug("[parseqc] paren [{}]", + as.character(node[2])); + return(.parse_tree_to_qc(node[[2]])) + + } else if (.is_boolean_operator(node[1])) { + spdl::debug("[parseqc] boolop [{}] [{}] [{}]", + as.character(node[2]), + as.character(node[1]), + as.character(node[3])) + + return(tiledbsoma_query_condition_combine( + .parse_tree_to_qc(node[[2]]), + .parse_tree_to_qc(node[[3]]), + .map_bool_to_character(as.character(node[1])), + somactx)) + + } else if (.is_in_operator(node[1])) { + spdl::debug("[parseqc] inop [{}] [{}] [{}]", + as.character(node[2]), + as.character(node[1]), + as.character(node[3])) + + attr_name <- as.character(node[2]) + r_op_name <- tolower(as.character(node[1])) + tdb_op_name <- if (r_op_name == "%in%") "IN" else "NOT_IN" + + arrow_field <- schema[[attr_name]] + if (is.null(arrow_field)) { + .error_function("No attribute '", attr_name, "' is present.", call. = FALSE) + } + arrow_type_name <- arrow_field$type$name + is_enum <- is(arrow_field$type, "DictionaryType") + + values <- eval(parse(text=as.character(node[3]))) + if (arrow_type_name == "int32" && !is_enum) { + values <- as.integer(values) + } + + return(tiledbsoma_query_condition_in_nin(attr_name, tdb_op_name, values, somactx)) + + } else if (.is_comparison_operator(node[1])) { + spdl::debug("[parseqc] cmpop [{}] [{}] [{}]", + as.character(node[2]), + as.character(node[1]), + as.character(node[3])) + + op_name <- as.character(node[1]) + attr_name <- as.character(node[2]) + rhs_text <- as.character(node[3]) + + arrow_field <- schema[[attr_name]] + if (is.null(arrow_field)) { + .error_function("No attribute '", attr_name, "' is present.", call. = FALSE) + } + arrow_type_name <- arrow_field$type$name + + # Take care of factor (aka "enum" case) and set the data type to ASCII + if (arrow_type_name == "dictionary") { + arrow_type_name <- "utf8" + } + + if (arrow_type_name == "timestamp") { + unit <- arrow_field$type$unit() + if (unit == 0) { + arrow_type_name <- "timestamp_s" + } else if (unit == 1) { + arrow_type_name <- "timestamp_ms" + } else if (unit == 2) { + arrow_type_name <- "timestamp_us" + } else if (unit == 3) { + arrow_type_name <- "timestamp_ns" + } else { + .error_function( + "Attribute '", attr_name, "' has unknown unit ", + arrow_field$type$unit, call. = FALSE) + } + } + + value = switch( + arrow_type_name, + ascii = rhs_text, + string = rhs_text, + utf8 = rhs_text, + large_utf8 = rhs_text, + bool = as.logical(rhs_text), + # Problem: + + # > t <-as.POSIXct('1970-01-01 01:00:05 UTC') + # > as.numeric(t) + # [1] 21605 + # > ?as.POSIXct + # > t <-as.POSIXct('1970-01-01 01:00:05 EST') + # > as.numeric(t) + # [1] 21605 + # > t <-as.POSIXct('1970-01-01 01:00:05 UTC', tz="EST") + # > as.numeric(t) + # [1] 21605 + # > t <-as.POSIXct('1970-01-01 01:00:05 UTC', tz="UTC") + # > as.numeric(t) + # [1] 3605 + + # It's not respecting the timezone given in the first argument string. + # Not good. + + timestamp_s = as.numeric(as.POSIXct(rhs_text, tz="UTC")), # THIS NEEDS THOUGHT + timestamp_ms = as.numeric(as.POSIXct(rhs_text, tz="UTC")), # THIS NEEDS THOUGHT + timestamp_ns = as.numeric(as.POSIXct(rhs_text, tz="UTC")), # THIS NEEDS THOUGHT + timestamp_us = as.numeric(as.POSIXct(rhs_text, tz="UTC")), # THIS NEEDS THOUGHT + date32 = as.Date(rhs_text), + as.numeric(rhs_text)) + + spdl::debug("[parseqc] triple name:[{}] value:[{}] type:[{}] op:[{}]", + attr_name, + value, + arrow_type_name, + op_name); + + # General case of extracting appropriate value given type info + return(tiledbsoma_query_condition_from_triple( + attr_name = attr_name, + value = value, + arrow_type_name = arrow_type_name, + op_name = .map_op_to_character(op_name), + qc = tiledbsoma_empty_query_condition(somactx))) + + } else { + stop("Unexpected token in expression: ", format(node)) + } + } + + # Convert expr from string to language + aslang <- str2lang(expr) + + # Use base-r `substitute` to map the user-provided expression to a parse tree + parse_tree <- substitute(aslang) + + # Map the parse tree to TileDB core QueryCondition + return(.parse_tree_to_qc(parse_tree, debug)) +} + +# ================================================================ +#' An S4 class for a TileDB QueryCondition object +#' +#' @slot ptr An external pointer to the underlying implementation +#' @slot init A logical variable tracking if the query condition object has been +#' initialized +setClass( + "tiledbsoma_query_condition", + slots = list(ptr = "externalptr", init = "logical")) + +# ================================================================ +#' Creates a 'tiledbsoma_query_condition' object +#' +#' @param somactx (optional) A TileDB Ctx object; if not supplied the default +#' context object is retrieved +#' @return A 'tiledbsoma_query_condition' object +tiledbsoma_empty_query_condition <- function(somactx) { + stopifnot("The argument must be a somactx object" = is(somactx, "externalptr")) + ptr <- libtiledbsoma_empty_query_condition(somactx) + query_condition <- new("tiledbsoma_query_condition", ptr = ptr, init = FALSE) + invisible(query_condition) +} + +# ================================================================ +#' Initialize a 'tiledbsoma_query_condition' object +#' +#' Initializes (and possibly allocates) a query condition object using a triplet of +#' attribute name, comparison value, and operator. Six types of conditions are supported, +#' they all take a single scalar comparison argument and attribute to compare against. +#' At present only integer or numeric attribute comparisons are implemented. +#' @param attr_name A character value with the scheme attribute name +#' @param value A scalar value that the attribute is compared against +#' @param arrow_type_name A character value with the TileDB data type of the attribute column, for +#' example 'float' or 'int32' +#' @param op_name A character value with the comparison operation. This must be one of +#' 'LT', 'LE', 'GT', 'GE', 'EQ', 'NE'. +#' @param qc A 'tiledbsoma_query_condition' object to be initialized by this call. +#' @return The initialized 'tiledbsoma_query_condition' object +#' +#' @noRd +#' +tiledbsoma_query_condition_from_triple <- function( + attr_name, + value, + arrow_type_name, + op_name, + qc) { + + stopifnot( + "Argument 'qc' with query condition object required" = inherits(qc, "tiledbsoma_query_condition"), + "Argument 'attr_name' must be character" = is.character(attr_name), + "Argument 'value' must be of length one" = ( + is.vector(value) || + bit64::is.integer64(value) || + inherits(value, "POSIXt") || + inherits(value, "Date")) && all.equal(length(value),1), + "Argument 'arrow_type_name' must be character" = is.character(arrow_type_name), + "Argument 'op_name' must be character" = is.character(op_name)) + + op_name <- match.arg(op_name, c("LT", "LE", "GT", "GE", "EQ", "NE")) + # If arrow_type_name is int64 or uint64 but the class of value does not yet inherit from + # integer64, cast. + if (grepl("int64", arrow_type_name) && !inherits(value, "integer64")) { + value <- bit64::as.integer64(value) + } + libtiledbsoma_query_condition_from_triple(qc@ptr, attr_name, value, arrow_type_name, op_name) + qc@init <- TRUE + invisible(qc) +} + +# ================================================================ +#' Combine two 'tiledbsoma_query_condition' objects +#' +#' Combines two query condition objects using a relatiional operator. +#' +#' @param lhs A 'tiledbsoma_query_condition' object on the left-hand side of the relation +#' @param rhs A 'tiledbsoma_query_condition' object on the right-hand side of the relation +#' @param op_name A character value with the relation, which must be one of 'AND', 'OR' or 'NOT'. +#' @param somactx SOMAContext pointer. +#' @return The combined 'tiledbsoma_query_condition' object +#' +#' @noRd +#' +tiledbsoma_query_condition_combine <- function(lhs, rhs, op_name, somactx) { + stopifnot( + "Argument 'lhs' must be a query condition object" = is(lhs, "tiledbsoma_query_condition"), + "Argument 'rhs' must be a query condition object" = is(rhs, "tiledbsoma_query_condition"), + "Argument 'op_name' must be a character" = is.character(op_name)) + op_name <- match.arg(op_name, c("AND", "OR", "NOT")) + qc <- tiledbsoma_empty_query_condition(somactx) + qc@ptr <- libtiledbsoma_query_condition_combine(lhs@ptr, rhs@ptr, op_name) + qc@init <- TRUE + invisible(qc) +} + +# ================================================================ +#' Create a query condition for vector 'IN' and 'NOT_IN' operations +#' +#' Uses \sQuote{IN} and \sQuote{NOT_IN} operators on given attribute +#' +#' @param attr_name A character value with the schema attribute name. +#' +#' @param op_name A character value with the chosen set operation. This must be one of +#' \sQuote{IN} or \sQuote{NOT_IN}. +#' +#' @param values A vector wiith the given values. Supported types are integer, double, +#' integer64, and character. +#' +#' @param somactx SOMAContext pointer. +#' +#' @return A query-condition object is returned +#' +#' @noRd +#' +tiledbsoma_query_condition_in_nin <- function( + attr_name, + op_name = "IN", + values, + somactx) { + stopifnot("Argument 'attr_name' must be character" = is.character(attr_name), + "Argument 'values' must be int, double, int64 or char" = + (is.numeric(values) || bit64::is.integer64(values) || is.character(values)), + "Argument 'op_name' must be one of 'IN' or 'NOT_IN'" = op_name %in% c("IN", "NOT_IN")) + + qc <- tiledbsoma_empty_query_condition(somactx) + qc@ptr <- libtiledbsoma_query_condition_in_nin(somactx, attr_name, op_name, values) + qc@init <- TRUE + invisible(qc) +} diff --git a/apis/r/R/RcppExports.R b/apis/r/R/RcppExports.R index 961f69b01e..7f73472cf0 100644 --- a/apis/r/R/RcppExports.R +++ b/apis/r/R/RcppExports.R @@ -126,6 +126,22 @@ set_metadata <- function(uri, key, valuesxp, type, is_array, ctxxp, tsvec = NULL invisible(.Call(`_tiledbsoma_set_metadata`, uri, key, valuesxp, type, is_array, ctxxp, tsvec)) } +libtiledbsoma_empty_query_condition <- function(ctxxp) { + .Call(`_tiledbsoma_libtiledbsoma_empty_query_condition`, ctxxp) +} + +libtiledbsoma_query_condition_from_triple <- function(query_cond, attr_name, condition_value, arrow_type_name, cond_op_string) { + invisible(.Call(`_tiledbsoma_libtiledbsoma_query_condition_from_triple`, query_cond, attr_name, condition_value, arrow_type_name, cond_op_string)) +} + +libtiledbsoma_query_condition_combine <- function(lhs, rhs, str) { + .Call(`_tiledbsoma_libtiledbsoma_query_condition_combine`, lhs, rhs, str) +} + +libtiledbsoma_query_condition_in_nin <- function(ctxxp, attr_name, op_name, values) { + .Call(`_tiledbsoma_libtiledbsoma_query_condition_in_nin`, ctxxp, attr_name, op_name, values) +} + reindex_create <- function() { .Call(`_tiledbsoma_reindex_create`) } @@ -182,8 +198,8 @@ maxshape <- function(uri, ctxxp) { .Call(`_tiledbsoma_maxshape`, uri, ctxxp) } -non_empty_domain_new <- function(uri, ctxxp) { - .Call(`_tiledbsoma_non_empty_domain_new`, uri, ctxxp) +non_empty_domain <- function(uri, ctxxp) { + .Call(`_tiledbsoma_non_empty_domain`, uri, ctxxp) } domain <- function(uri, ctxxp) { diff --git a/apis/r/R/SOMACollectionBase.R b/apis/r/R/SOMACollectionBase.R index 116020351e..8e9902d782 100644 --- a/apis/r/R/SOMACollectionBase.R +++ b/apis/r/R/SOMACollectionBase.R @@ -94,10 +94,11 @@ SOMACollectionBase <- R6::R6Class( #' @param key The key to be added. #' @param schema Arrow schema argument passed on to DataFrame$create() #' @param index_column_names Index column names passed on to DataFrame$create() + #' @param domain As in ``SOMADataFrameCreate``. #' @template param-platform-config - add_new_dataframe = function(key, schema, index_column_names, platform_config = NULL) { + add_new_dataframe = function(key, schema, index_column_names, domain, platform_config = NULL) { ## TODO: Check argument validity - ndf <- SOMADataFrame$new( + sdf <- SOMADataFrame$new( uri = file_path(self$uri, key), platform_config = platform_config %||% private$.tiledb_platform_config, tiledbsoma_ctx = private$.tiledbsoma_ctx, @@ -105,9 +106,9 @@ SOMACollectionBase <- R6::R6Class( internal_use_only = "allowed_use" ) - ndf$create(schema, index_column_names, internal_use_only = "allowed_use") - super$set(ndf, key) - ndf + sdf$create(schema, index_column_names=index_column_names, domain=domain, internal_use_only = "allowed_use") + super$set(sdf, key) + sdf }, #' @description Add a new SOMA DenseNdArray to this collection. (lifecycle: maturing) diff --git a/apis/r/R/SOMADataFrame.R b/apis/r/R/SOMADataFrame.R index 5ff770de4b..88372e3891 100644 --- a/apis/r/R/SOMADataFrame.R +++ b/apis/r/R/SOMADataFrame.R @@ -178,8 +178,6 @@ SOMADataFrame <- R6::R6Class( private$check_open_for_read() result_order <- match_query_layout(result_order) - uri <- self$uri - arr <- self$object # need array (schema) to properly parse query condition ## if unnamed set names if (!is.null(coords)) { @@ -199,8 +197,9 @@ SOMADataFrame <- R6::R6Class( if (!is.null(value_filter)) { value_filter <- validate_read_value_filter(value_filter) - parsed <- do.call(what = tiledb::parse_query_condition, - args = list(expr = str2lang(value_filter), ta = arr)) + parsed <- do.call( + what = parse_query_condition, + args = list(expr = value_filter, schema = self$schema(), somactx = private$.soma_context)) value_filter <- parsed@ptr } spdl::debug("[SOMADataFrame$read] calling sr_setup for {} at ({},{})", self$uri, diff --git a/apis/r/R/SOMADenseNDArray.R b/apis/r/R/SOMADenseNDArray.R index f6e12f34a3..faf0ef101d 100644 --- a/apis/r/R/SOMADenseNDArray.R +++ b/apis/r/R/SOMADenseNDArray.R @@ -46,7 +46,7 @@ SOMADenseNDArray <- R6::R6Class( if (is.null(coords)) { # These are 0-up: add 1 for R use - ned <- self$non_empty_domain() + ned <- self$non_empty_domain(max_only=TRUE) coords <- lapply(X=as.integer(ned), FUN=function(x){0:x}) } coords <- private$.convert_coords(coords) @@ -87,7 +87,7 @@ SOMADenseNDArray <- R6::R6Class( "Array must contain column 'soma_data'" = all.equal("soma_data", attrnames)) if (is.null(coords)) { - ned <- self$non_empty_domain() + ned <- self$non_empty_domain(max_only=TRUE) # These are 0-up: add 1 for R use nrow <- as.numeric(ned[[1]]) + 1 ncol <- as.numeric(ned[[2]]) + 1 @@ -133,10 +133,7 @@ SOMADenseNDArray <- R6::R6Class( ## the 'soma_data' data type may not have been cached, and if so we need to fetch it if (is.null(private$.type)) { - ## TODO: replace with a libtiledbsoma accessor as discussed - tpstr <- tiledb::datatype(tiledb::attrs(tiledb::schema(self$uri))[["soma_data"]]) - arstr <- arrow_type_from_tiledb_type(tpstr) - private$.type <- arstr + private$.type <- self$schema()[["soma_data"]]$type } arr <- self$object diff --git a/apis/r/R/SOMAExperimentAxisQuery.R b/apis/r/R/SOMAExperimentAxisQuery.R index d97fa88c3e..2d0ae47586 100644 --- a/apis/r/R/SOMAExperimentAxisQuery.R +++ b/apis/r/R/SOMAExperimentAxisQuery.R @@ -420,7 +420,7 @@ SOMAExperimentAxisQuery <- R6::R6Class( for (i in seq_along(ldims)) { ldim <- ldims[i] if (is.null(coords[[ldim]])) { - coords[[ldim]] <- seq_len(as.numeric(layer$non_empty_domain()[i] + 1L)) + coords[[ldim]] <- seq_len(as.numeric(layer$non_empty_domain(index1=TRUE, max_only=TRUE)[i])) } } mat <- matrix( diff --git a/apis/r/R/SOMANDArrayBase.R b/apis/r/R/SOMANDArrayBase.R index 5e155787ac..22c6419aee 100644 --- a/apis/r/R/SOMANDArrayBase.R +++ b/apis/r/R/SOMANDArrayBase.R @@ -90,6 +90,42 @@ SOMANDArrayBase <- R6::R6Class( #' @return Logical tiledbsoma_has_upgraded_shape = function() { has_current_domain(self$uri, private$.soma_context) + }, + + #' @description Increases the shape of the array as specfied. Raises an error + #' if the new shape is less than the current shape in any dimension. Raises + #' an error if the new shape exceeds maxshape in any dimension. Raises an + #' error if the array doesn't already have a shape: in that case please call + #' tiledbsoma_upgrade_shape. + #' @param new_shape A vector of integerish, of the same length as the array's `ndim`. + #' @return No return value + resize = function(new_shape) { + stopifnot( + "resize is not supported for dense arrays until tiledbsoma 1.15" = + .dense_arrays_can_have_current_domain() || private$.is_sparse, + "'new_shape' must be a vector of integerish values, of the same length as maxshape" = + rlang::is_integerish(new_shape, n = self$ndim()) || + (bit64::is.integer64(new_shape) && length(new_shape) == self$ndim()) + ) + # Checking slotwise new shape >= old shape, and <= max_shape, is already done in libtiledbsoma + resize(self$uri, new_shape, private$.soma_context) + }, + + #' @description Allows the array to have a resizeable shape as described in the + #' TileDB-SOMA 1.15 release notes. Raises an error if the shape exceeds maxshape in any + #' dimension. Raises an error if the array already has a shape. + #' @param shape A vector of integerish, of the same length as the array's `ndim`. + #' @return No return value + tiledbsoma_upgrade_shape = function(shape) { + stopifnot( + "tiledbsoma_upgrade_shape is not supported for dense arrays until tiledbsoma 1.15" = + .dense_arrays_can_have_current_domain() || private$.is_sparse, + "'shape' must be a vector of integerish values, of the same length as maxshape" = + rlang::is_integerish(shape, n = self$ndim()) || + (bit64::is.integer64(shape) && length(shape) == self$ndim()) + ) + # Checking slotwise new shape >= old shape, and <= max_shape, is already done in libtiledbsoma + tiledbsoma_upgrade_shape(self$uri, shape, private$.soma_context) } ), @@ -111,22 +147,51 @@ SOMANDArrayBase <- R6::R6Class( # format acceptable for sr_setup and soma_array_reader .convert_coords = function(coords) { - ## ensure coords is a named list, use to select dim points - stopifnot("'coords' must be a list" = is.list(coords), - "'coords' must be a list of vectors or integer64" = - all(vapply_lgl(coords, is_vector_or_int64)), - "'coords' if unnamed must have length of dim names, else if named names must match dim names" = - (is.null(names(coords)) && length(coords) == length(self$dimnames())) || - (!is.null(names(coords)) && all(names(coords) %in% self$dimnames())) - ) + # Ensure coords is a named list, use to select dim points + stopifnot( + "'coords' must be a list" = is.list(coords) && length(coords), + "'coords' must be a list integerish vectors" = + all(vapply( + X = coords, + FUN = function(x) { + if (is.null(x)) { + return(TRUE) + } + return( + (is.null(dim(x)) && !is.factor(x)) && + (rlang::is_integerish(x, finite = TRUE) || (bit64::is.integer64(x) && all(is.finite(x)))) && + length(x) && + all(x >= 0L) + ) + }, + FUN.VALUE = logical(length = 1L), + USE.NAMES = FALSE + )), + "'coords' if unnamed must have length of dim names, else if named names must match dim names" = ifelse( + test = is.null(names(coords)), + yes = length(coords) == length(self$dimnames()), + no = all(names(coords) %in% self$dimnames()) + ) + ) - ## if unnamed (and test for length has passed in previous statement) set names - if (is.null(names(coords))) names(coords) <- self$dimnames() + # Remove NULL-entries from coords + coords <- Filter(Negate(is.null), coords) + if (!length(coords)) { + return(NULL) + } - ## convert integer to integer64 to match dimension type - coords <- lapply(coords, function(x) if (inherits(x, "integer")) bit64::as.integer64(x) else x) + # If unnamed, set names + if (is.null(names(coords))) { + names(coords) <- self$dimnames() + } - coords + # Convert to integer64 to match dimension type + return(sapply( + coords, + FUN = bit64::as.integer64, + simplify = FALSE, + USE.NAMES = TRUE + )) }, # @description Converts a vector of ints into a vector of int64 in a format diff --git a/apis/r/R/SOMASparseNDArray.R b/apis/r/R/SOMASparseNDArray.R index ed6b1c0d85..ac2d249732 100644 --- a/apis/r/R/SOMASparseNDArray.R +++ b/apis/r/R/SOMASparseNDArray.R @@ -46,13 +46,16 @@ SOMASparseNDArray <- R6::R6Class( coords <- private$.convert_coords(coords) } - sr <- sr_setup(uri = self$uri, - private$.soma_context, - dim_points = coords, - result_order = result_order, - timestamprange = self$.tiledb_timestamp_range, - loglevel = log_level) - SOMASparseNDArrayRead$new(sr, self, coords) + sr <- sr_setup( + uri = self$uri, + private$.soma_context, + dim_points = coords, + result_order = result_order, + timestamprange = self$.tiledb_timestamp_range, + loglevel = log_level + ) + + return(SOMASparseNDArrayRead$new(sr, self, coords)) }, #' @description Write matrix-like data to the array. (lifecycle: maturing) @@ -63,12 +66,14 @@ SOMASparseNDArray <- R6::R6Class( #' @param bbox A vector of integers describing the upper bounds of each #' dimension of `values`. Generally should be `NULL`. #' + #' @return Invisibly returns \code{self} + #' write = function(values, bbox = NULL) { stopifnot( "'values' must be a matrix" = is_matrix(values), "'bbox' must contain two entries" = is.null(bbox) || length(bbox) == length(dim(values)), "'bbox' must be a vector of two integers or a list with each entry containg two integers" = is.null(bbox) || - (is_integerish(bbox) || bit64::is.integer64(bbox)) || + .is_integerish(bbox) || (is.list(bbox) && all(vapply_lgl(bbox, function(x, n) length(x) == 2L))) ) # coerce to a TsparseMatrix, which uses 0-based COO indexing @@ -78,6 +83,12 @@ SOMASparseNDArray <- R6::R6Class( j = bit64::as.integer64(values@j), x = values@x ) + if (!is.null(private$.type)) { + rt <- r_type_from_arrow_type(private$.type) + if (rt == 'integer' && rlang::is_integerish(coo$x)) { + coo$x <- as.integer(coo$x) + } + } dnames <- self$dimnames() colnames(coo) <- c(dnames, self$attrnames()) ranges <- sapply( @@ -178,9 +189,9 @@ SOMASparseNDArray <- R6::R6Class( self$tiledb_timestamp %||% "now" ) - private$.write_coo_dataframe(coo) + self$.write_coordinates(coo) - invisible(self) + return(invisible(self)) }, #' @description Retrieve number of non-zero elements (lifecycle: maturing) @@ -189,38 +200,94 @@ SOMASparseNDArray <- R6::R6Class( nnz(self$uri, private$.soma_context) }, - #' @description Increases the shape of the array as specfied. Raises an error - #' if the new shape is less than the current shape in any dimension. Raises - #' an error if the new shape exceeds maxshape in any dimension. Raises an - #' error if the array doesn't already have a shape: in that case please call - #' tiledbsoma_upgrade_shape. - #' @param new_shape A vector of integerish, of the same length as the array's `ndim`. - #' @return No return value - resize = function(new_shape) { - # TODO: move this to SOMANDArrayBase.R once core offers current-domain support for dense arrays. - # https://github.com/single-cell-data/TileDB-SOMA/issues/2955 + #' @description Write a COO table to the array + #' + #' @param values A \code{data.frame} or \code{\link[arrow:Table]{Arrow::Table}} + #' with data in COO format; must be named with the dimension and attribute + #' labels of the array + #' + #' @return Invisibly returns \code{self} + #' + .write_coordinates = function(values) { + private$check_open_for_write() + dnames <- self$dimnames() + attrn <- self$attrnames() - stopifnot("'new_shape' must be a vector of integerish values, of the same length as maxshape" = rlang::is_integerish(new_shape, n = self$ndim()) || - (bit64::is.integer64(new_shape) && length(new_shape) == self$ndim()) + stopifnot( + "'values' must be a data frame or Arrow Table" = is.data.frame(values) || + inherits(values, what = 'Table'), + "'values' must have one column for each dimension and the data" = ncol(values) == length(dnames) + 1L, + "'values' must be named with the dimension and attribute labels" = is.null(names(values)) || + identical(names(values), c(dnames, attrn)) ) - # Checking slotwise new shape >= old shape, and <= max_shape, is already done in libtiledbsoma - resize(self$uri, new_shape, private$.soma_context) - }, - #' @description Allows the array to have a resizeable shape as described in the - #' TileDB-SOMA 1.15 release notes. Raises an error if the shape exceeds maxshape in any - #' dimension. Raises an error if the array already has a shape. - #' @param shape A vector of integerish, of the same length as the array's `ndim`. - #' @return No return value - tiledbsoma_upgrade_shape = function(shape) { - # TODO: move this to SOMANDArrayBase.R once core offers current-domain support for dense arrays. - # https://github.com/single-cell-data/TileDB-SOMA/issues/2955 + # Arrow Tables cannot have NULL names, so this only applies to dataframes + if (is.null(names(values))) { + spdl::warn("[SOMASparseNDArray$.write_coordinates] no names on input data frame, assuming order") + names(values) <- c(dnames, attrn) + } + + # Check dimensions + spdl::debug("[SOMASparseNDArray$.write_coordinates] checking dimension values") + for (i in seq_along(dnames)) { + dn <- dnames[i] + offending <- sprintf("(offending column: '%s')", dn) + if (!.is_integerish(values[[dn]])) { + stop("All dimension columns must be integerish ", offending) + } + if (as.logical(min(values[[dn]]) < 0L)) { + stop("Dimension columns cannot contain negative values ", offending) + } + if (as.logical(max(values[[dn]]) >= as.numeric(self$shape()[i]))) { + stop("Dimension columns cannot exceed the shape of the array ", offending) + } + } + + # Check attribute + spdl::debug("[SOMASparseNDArray$.write_coordinates] checking data values") + if (is.null(private$.type)) { + tt <- self$schema()[attrn]$type + if (is.null(tt)) { + tt <- if (is.data.frame(values)) { + arrow::infer_type(values[[attrn]]) + } else { + values[[attrn]]$type + } + } + private$.type <- tt + } + vt <- if (is.data.frame(values)) { + arrow::infer_type(values[[attrn]]) + } else { + values[[attrn]]$type + } + if ((vrt <- r_type_from_arrow_type(vt)) != (rt <- r_type_from_arrow_type(private$.type))) { + stop("The data column must be of type '", rt, "', got '", vrt, "'") + } + + # Build our Arrow table and schema + fields <- c( + lapply(dnames, arrow::field, type = arrow::int64()), + arrow::field(attrn, private$.type) + ) + sch <- do.call(arrow::schema, fields) + tbl <- arrow::as_arrow_table(values, schema = sch) - stopifnot("'shape' must be a vector of integerish values, of the same length as maxshape" = rlang::is_integerish(shape, n = self$ndim()) || - (bit64::is.integer64(shape) && length(shape) == self$ndim()) + # Write via libtiledbsoma + spdl::debug("[SOMASparseNDArray$.write_coordinates] writing arrow table") + naap <- nanoarrow::nanoarrow_allocate_array() + nasp <- nanoarrow::nanoarrow_allocate_schema() + arrow::as_record_batch(tbl)$export_to_c(naap, nasp) + writeArrayFromArrow( + uri = self$uri, + naap = naap, + nasp = nasp, + ctxxp = private$.soma_context, + arraytype = "SOMASparseNDArray", + config = NULL, + tsvec = self$.tiledb_timestamp_range ) - # Checking slotwise new shape >= old shape, and <= max_shape, is already done in libtiledbsoma - tiledbsoma_upgrade_shape(self$uri, shape, private$.soma_context) + return(invisible(self)) } ), @@ -249,53 +316,6 @@ SOMASparseNDArray <- R6::R6Class( out }, - # @description Ingest COO-formatted dataframe into the TileDB array. - # (lifecycle: maturing) - # @param values A [`data.frame`]. - .write_coo_dataframe = function(values) { - private$check_open_for_write() - - stopifnot(is.data.frame(values)) - # private$log_array_ingestion() - #arr <- self$object - #if (!is.null(self$tiledb_timestamp)) { - # # arr@timestamp <- self$tiledb_timestamp - # arr@timestamp_end <- self$tiledb_timestamp - #} - nms <- colnames(values) - - ## the 'soma_data' data type may not have been cached, and if so we need to fetch it - if (is.null(private$.type)) { - ## TODO: replace with a libtiledbsoma accessor as discussed - tpstr <- tiledb::datatype(tiledb::attrs(tiledb::schema(self$uri))[["soma_data"]]) - arstr <- arrow_type_from_tiledb_type(tpstr) - private$.type <- arstr - } - - arrsch <- arrow::schema(arrow::field(nms[1], arrow::int64()), - arrow::field(nms[2], arrow::int64()), - arrow::field(nms[3], private$.type)) - - tbl <- arrow::arrow_table(values, schema = arrsch) - spdl::debug( - "[SOMASparseNDArray$write] array created, writing to {} at ({})", - self$uri, - self$tiledb_timestamp %||% "now" - ) - naap <- nanoarrow::nanoarrow_allocate_array() - nasp <- nanoarrow::nanoarrow_allocate_schema() - arrow::as_record_batch(tbl)$export_to_c(naap, nasp) - writeArrayFromArrow( - uri = self$uri, - naap = naap, - nasp = nasp, - ctxxp = private$.soma_context, - arraytype = "SOMASparseNDArray", - config = NULL, - tsvec = self$.tiledb_timestamp_range - ) - }, - # Internal marking of one or zero based matrices for iterated reads zero_based = NA diff --git a/apis/r/R/TileDBArray.R b/apis/r/R/TileDBArray.R index 2d4ec6aa6c..7235474d3b 100644 --- a/apis/r/R/TileDBArray.R +++ b/apis/r/R/TileDBArray.R @@ -132,8 +132,7 @@ TileDBArray <- R6::R6Class( #' @description Retrieve the array schema as an Arrow schema (lifecycle: maturing) #' @return A [`arrow::schema`] object schema = function() { - arrow::as_schema( - c_schema(self$uri, private$.soma_context)); + return(arrow::as_schema(c_schema(self$uri, private$.soma_context))) }, #' @description Retrieve the array schema as TileDB schema (lifecycle: maturing) @@ -218,48 +217,28 @@ TileDBArray <- R6::R6Class( return(utilized) }, - #' @description Retrieve the non-empty domain for each dimension. This - #' method calls [`tiledb::tiledb_array_get_non_empty_domain_from_name`] for - #' each dimension in the array. - #' @param index1 Return the non-empty domain with 1-based indices. - #' @return A vector of [`bit64::integer64`]s with one entry for - #' each dimension. - non_empty_domain = function(index1 = FALSE) { - dims <- self$dimnames() - ned <- bit64::integer64(length = length(dims)) - ## added during C++-ification as self$object could close - if (isFALSE(tiledb::tiledb_array_is_open(self$object))) { - arrhandle <- tiledb::tiledb_array_open(self$object, type = "READ") - } else { - arrhandle <- self$object - } - for (i in seq_along(along.with = ned)) { - dom <- max(tiledb::tiledb_array_get_non_empty_domain_from_name( - arrhandle, # instead of: self$object, - name = dims[i] - )) - if (isTRUE(x = index1)) { - dom <- dom + 1L - } - ned[i] <- dom - } - return(ned) - }, - #' @description Returns a named list of minimum/maximum pairs, one per index #' column, which are the smallest and largest values written on that #' index column. - #' - #' As tracked on https://github.com/single-cell-data/TileDB-SOMA/issues/2407 - #' this will replace the existing `non_empty_domain` method. - #' + #' @param index1 Return the non-empty domain with 1-based indices. + #' @param max_only Return only the max value per dimension, and return + #' this as a vector. Names are dropped. #' (lifecycle: maturing) - #' @return Named list of minimum/maximum values. - non_empty_domain_new = function() { - as.list( + #' @return Named list of minimum/maximum values, or integer vector + #' of maximum values. + non_empty_domain = function(index1 = FALSE, max_only = FALSE) { + retval <- as.list( arrow::as_record_batch( arrow::as_arrow_table( - non_empty_domain_new(self$uri, private$.soma_context)))) + non_empty_domain(self$uri, private$.soma_context)))) + if (index1) { + retval <- lapply(retval, function(c) {c+1}) + } + if (max_only) { + # No vapply options since SOMADataFrame can have varying types. + retval <- unname(unlist(lapply(retval, function(e) {e[[2]]}))) + } + return(retval) }, #' @description Retrieve number of dimensions (lifecycle: maturing) diff --git a/apis/r/R/utils-arrow.R b/apis/r/R/utils-arrow.R index a7d3d4df3e..9ea924a0d9 100644 --- a/apis/r/R/utils-arrow.R +++ b/apis/r/R/utils-arrow.R @@ -34,6 +34,11 @@ is_arrow_dictionary <- function(x) { is_arrow_object(x) && inherits(x, "Field") && inherits(x$type, "DictionaryType") } +#' @method as.logical Scalar +#' @export +#' +as.logical.Scalar <- \(x, ...) as.logical(x$as_vector(), ...) + #' Convert Arrow types to supported TileDB type #' List of TileDB types supported in R: https://github.com/TileDB-Inc/TileDB-R/blob/8014da156b5fee5b4cc221d57b4aa7d388abc968/inst/tinytest/test_dim.R#L97-L121 #' Note: TileDB attrs may be UTF-8; TileDB dims may not. @@ -114,6 +119,92 @@ arrow_type_from_tiledb_type <- function(x) { ) } +#' Get the \R Type from an Arrow Type +#' +#' Get an \R \link[base:typeof]{type} from an Arrow type. This function is +#' equivalent to \code{\link[base]{typeof}()} rather than +#' \code{\link[base]{mode}()} or \code{\link[base]{class}()}, and returns the +#' equivalent \strong{type}. For example, the equivalent \R type to an Arrow +#' \link[arrow]{dictionary} is \dQuote{\code{integer}}, not +#' \dQuote{\code{factor}}; likewise, the equivalent \R type to an Arrow 64-bit +#' integer is \dQuote{\code{double}} +#' +#' @param x An \CRANpkg{Arrow} \link[arrow:Schema]{schema}, +#' \link[arrow:Field]{field}, or \link[arrow:infer_type]{data type} +#' +#' @return If \code{x} is a \link[arrow:infer_type]{data type}, a single +#' character value giving the \R \link[base:typeof]{type} of \code{x}; if no +#' corresponding \R type, returns the \CRANpkg{Arrow} type name +#' +#' @return If \code{x} is a \link[arrow:Field]{field}, a single named character +#' vector with the name being the field name and the value being the \R +#' \link[base:typeof]{type} +#' +#' @return If \code{x} is a \link[arrow:Schema]{schema}, a named vector where +#' the names are field names and the values are the \R \link[base:typeof]{types} +#' of each field +#' +#' @keywords internal +#' +#' @export +#' +#' @seealso \code{\link[base]{typeof}()} +#' +r_type_from_arrow_type <- function(x) UseMethod('r_type_from_arrow_type') + +#' @rdname r_type_from_arrow_type +#' +#' @method r_type_from_arrow_type Schema +#' @export +#' +r_type_from_arrow_type.Schema <- function(x) { + return(vapply( + X = x$names, + FUN = function(f) r_type_from_arrow_type(x[[f]]), + FUN.VALUE = character(1L), + USE.NAMES = TRUE + )) +} + +#' @rdname r_type_from_arrow_type +#' +#' @method r_type_from_arrow_type Field +#' @export +#' +r_type_from_arrow_type.Field <- function(x) { + tt <- r_type_from_arrow_type(x$type) + names(x = tt) <- x$name + return(tt) +} + +#' @rdname r_type_from_arrow_type +#' +#' @method r_type_from_arrow_type DataType +#' @export +#' +r_type_from_arrow_type.DataType <- function(x) { + # Types are equivalent to `typeof()`, not `mode()` or `class()` + return(switch( + EXPR = x$name, + int8 = , + int16 = , + int32 = , + dictionary = , + uint8 = , + uint16 = , + uint32 = 'integer', + int64 = , + uint64 = , + date32 = , + timestamp = , + float = 'double', + bool = 'logical', + utf8 = , + large_utf8 = 'character', + x$name + )) +} + #' Retrieve limits for Arrow types #' @importFrom bit64 lim.integer64 #' @noRd @@ -174,10 +265,9 @@ arrow_field_from_tiledb_dim <- function(x) { ## With a nod to Kevin Ushey #' @noRd yoink <- function(package, symbol) { - do.call(":::", list(package, symbol)) + do.call(":::", list(package, symbol)) } - #' Create an Arrow field from a TileDB attribute #' @noRd arrow_field_from_tiledb_attr <- function(x, arrptr=NULL) { @@ -398,7 +488,26 @@ get_domain_and_extent_dataframe <- function(tbl_schema, ind_col_names, domain = requested_slot <- domain[[ind_col_name]] ind_cur_dom <- if (is.null(requested_slot)) { - ind_max_dom + if (.new_shape_feature_flag_is_enabled()) { + # New shape: if the slot is null, make the size as small + # as possible since current domain can only be resized upward. + # + # Core current-domain semantics are (lo, hi) with both + # inclusive, with lo <= hi. This means smallest is (0, 0) + # which is shape 1, not 0. + if (bit64::is.integer64(ind_max_dom)) { + c(bit64::as.integer64(0), bit64::as.integer64(0)) + } else if (is.integer(ind_max_dom)) { + c(0L, 0L) + } else { + c(0, 0) + } + } else { + # Old shape: if the slot is null, make the size as large + # as possible since there is not current domain, and the + # max domain is immutable. + ind_max_dom + } } else { requested_slot } @@ -486,10 +595,7 @@ get_domain_and_extent_array <- function(shape, is_sparse) { # expansion. ind_max_dom <- arrow_type_unsigned_range(ind_col_type) - c(0,ind_ext) - # TODO: support current domain for dense arrays once we have that support - # from core. - # https://github.com/single-cell-data/TileDB-SOMA/issues/2955 - if (.new_shape_feature_flag_is_enabled() && is_sparse) { + if (.new_shape_feature_flag_is_enabled() && (is_sparse || .dense_arrays_can_have_current_domain())) { aa <- arrow::arrow_array(c(ind_max_dom, ind_ext, ind_cur_dom), ind_col_type) } else { aa <- arrow::arrow_array(c(ind_cur_dom, ind_ext), ind_col_type) diff --git a/apis/r/R/utils-assertions.R b/apis/r/R/utils-assertions.R index 1b247a67fc..eb445249d6 100644 --- a/apis/r/R/utils-assertions.R +++ b/apis/r/R/utils-assertions.R @@ -17,7 +17,9 @@ is_named <- function(x, allow_empty = TRUE) { } is_named_list <- function(x) { - is.list(x) && is_named(x) + # Use allow_empty=FALSE otherwise "half-named" lists like list(a=1, 2) + # will get through. We want all slots to have names. + is.list(x) && is_named(x, allow_empty = FALSE) } is_character_or_null <- function(x) { diff --git a/apis/r/R/utils.R b/apis/r/R/utils.R index 61bfa2fca7..5ffe90390b 100644 --- a/apis/r/R/utils.R +++ b/apis/r/R/utils.R @@ -19,7 +19,6 @@ vapply_int <- function(X, FUN, ..., USE.NAMES = TRUE) { vapply(X, FUN, FUN.VALUE = integer(1L), ..., USE.NAMES = USE.NAMES) } -# rename(iris, c(petal_length = "Petal.Length", species = "Species", hi = "YO")) rename <- function(x, names) { stopifnot( "'x' must be named" = is_named(x), @@ -98,6 +97,82 @@ uns_hint <- function(type = c('1d', '2d')) { }) } +#' Is an Object Integerish +#' +#' @inheritParams rlang::is_integerish +#' +#' @return \code{TRUE} if \code{x} is integerish, otherwise \code{FALSE} +#' +#' @keywords internal +#' +#' @noRd +#' +.is_integerish <- function(x, n = NULL, finite = NULL) { + UseMethod(generic = '.is_integerish', object = x) +} + +#' @method .is_integerish default +#' @export +#' +.is_integerish.default <- function(x, n = NULL, finite = NULL) { + return(rlang::is_integerish(x = x, n = n, finite = finite)) +} + +#' @method .is_integerish integer64 +#' @export +#' +.is_integerish.integer64 <- function(x, n = NULL, finite = NULL) { + res <- if (!is.null(x = n)) { + stopifnot( + "'n' must be a single integerish value" = .is_integerish(x = n) && + length(x = n) == 1L && + is.finite(x = n) + ) + length(x = x) == n + } else { + TRUE + } + res <- res && if (!is.null(x = finite)) { + stopifnot(isTRUE(x = finite) || isFALSE(x = finite)) + # In `rlang::is_integerish()`, + # `finite = TRUE`: all values are finite + # `finite = FALSE`: at least one value is infinite + # `bit64::is.infinite()` returns FALSE for NA + ifelse( + test = finite, + yes = all(is.finite(x = x)), + no = any(is.infinite(x = x) | is.na(x = x)) + ) + } else { + TRUE + } + return(res) +} + +#' @method .is_integerish Field +#' @export +#' +.is_integerish.Field <-function(x, n = NULL, finite = NULL) { + return(.is_integerish(x = x$type, n = n, finite = finite)) +} + +#' @method .is_integerish Array +#' @export +#' +.is_integerish.Array <- .is_integerish.Field + +#' @method .is_integerish ChunkedArray +#' @export +#' +.is_integerish.ChunkedArray <- .is_integerish.Field + +#' @method .is_integerish DataType +#' @export +#' +.is_integerish.DataType <-function(x, n = NULL, finite = NULL) { + return(grepl(pattern = '^[u]?int[[:digit:]]{1,2}$', x = x$name)) +} + .maybe_muffle <- function(w, cond = getOption('verbose', default = FALSE)) { if (isTRUE(x = cond)) { warning(warningCondition( diff --git a/apis/r/man/SOMAArrayBase.Rd b/apis/r/man/SOMAArrayBase.Rd index 61885f1c9d..246111ddac 100644 --- a/apis/r/man/SOMAArrayBase.Rd +++ b/apis/r/man/SOMAArrayBase.Rd @@ -44,7 +44,6 @@ experimental)
  • tiledbsoma::TileDBArray$maxshape()
  • tiledbsoma::TileDBArray$ndim()
  • tiledbsoma::TileDBArray$non_empty_domain()
  • -
  • tiledbsoma::TileDBArray$non_empty_domain_new()
  • tiledbsoma::TileDBArray$open()
  • tiledbsoma::TileDBArray$print()
  • tiledbsoma::TileDBArray$schema()
  • diff --git a/apis/r/man/SOMADataFrame.Rd b/apis/r/man/SOMADataFrame.Rd index 13cfb96d6b..a4ffade826 100644 --- a/apis/r/man/SOMADataFrame.Rd +++ b/apis/r/man/SOMADataFrame.Rd @@ -47,7 +47,6 @@ row and is intended to act as a join key for other objects, such as
  • tiledbsoma::TileDBArray$index_column_names()
  • tiledbsoma::TileDBArray$ndim()
  • tiledbsoma::TileDBArray$non_empty_domain()
  • -
  • tiledbsoma::TileDBArray$non_empty_domain_new()
  • tiledbsoma::TileDBArray$open()
  • tiledbsoma::TileDBArray$print()
  • tiledbsoma::TileDBArray$schema()
  • diff --git a/apis/r/man/SOMADenseNDArray.Rd b/apis/r/man/SOMADenseNDArray.Rd index b57740ed72..807c0d5816 100644 --- a/apis/r/man/SOMADenseNDArray.Rd +++ b/apis/r/man/SOMADenseNDArray.Rd @@ -56,7 +56,6 @@ The \code{write} method is currently limited to writing from 2-d matrices.
  • tiledbsoma::TileDBArray$maxshape()
  • tiledbsoma::TileDBArray$ndim()
  • tiledbsoma::TileDBArray$non_empty_domain()
  • -
  • tiledbsoma::TileDBArray$non_empty_domain_new()
  • tiledbsoma::TileDBArray$open()
  • tiledbsoma::TileDBArray$print()
  • tiledbsoma::TileDBArray$schema()
  • @@ -66,8 +65,10 @@ The \code{write} method is currently limited to writing from 2-d matrices.
  • tiledbsoma::TileDBArray$tiledb_schema()
  • tiledbsoma::TileDBArray$used_shape()
  • tiledbsoma::SOMANDArrayBase$create()
  • +
  • tiledbsoma::SOMANDArrayBase$resize()
  • tiledbsoma::SOMANDArrayBase$set_data_type()
  • tiledbsoma::SOMANDArrayBase$tiledbsoma_has_upgraded_shape()
  • +
  • tiledbsoma::SOMANDArrayBase$tiledbsoma_upgrade_shape()
  • }} diff --git a/apis/r/man/SOMANDArrayBase.Rd b/apis/r/man/SOMANDArrayBase.Rd index 31e85127c2..66f61baec5 100644 --- a/apis/r/man/SOMANDArrayBase.Rd +++ b/apis/r/man/SOMANDArrayBase.Rd @@ -17,6 +17,8 @@ Adds NDArray-specific functionality to the \code{\link{SOMAArrayBase}} class. \item \href{#method-SOMANDArrayBase-create}{\code{SOMANDArrayBase$create()}} \item \href{#method-SOMANDArrayBase-set_data_type}{\code{SOMANDArrayBase$set_data_type()}} \item \href{#method-SOMANDArrayBase-tiledbsoma_has_upgraded_shape}{\code{SOMANDArrayBase$tiledbsoma_has_upgraded_shape()}} +\item \href{#method-SOMANDArrayBase-resize}{\code{SOMANDArrayBase$resize()}} +\item \href{#method-SOMANDArrayBase-tiledbsoma_upgrade_shape}{\code{SOMANDArrayBase$tiledbsoma_upgrade_shape()}} \item \href{#method-SOMANDArrayBase-clone}{\code{SOMANDArrayBase$clone()}} } } @@ -40,7 +42,6 @@ Adds NDArray-specific functionality to the \code{\link{SOMAArrayBase}} class.
  • tiledbsoma::TileDBArray$maxshape()
  • tiledbsoma::TileDBArray$ndim()
  • tiledbsoma::TileDBArray$non_empty_domain()
  • -
  • tiledbsoma::TileDBArray$non_empty_domain_new()
  • tiledbsoma::TileDBArray$open()
  • tiledbsoma::TileDBArray$print()
  • tiledbsoma::TileDBArray$schema()
  • @@ -119,6 +120,52 @@ Logical } } \if{html}{\out{
    }} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-SOMANDArrayBase-resize}{}}} +\subsection{Method \code{resize()}}{ +Increases the shape of the array as specfied. Raises an error +if the new shape is less than the current shape in any dimension. Raises +an error if the new shape exceeds maxshape in any dimension. Raises an +error if the array doesn't already have a shape: in that case please call +tiledbsoma_upgrade_shape. +\subsection{Usage}{ +\if{html}{\out{
    }}\preformatted{SOMANDArrayBase$resize(new_shape)}\if{html}{\out{
    }} +} + +\subsection{Arguments}{ +\if{html}{\out{
    }} +\describe{ +\item{\code{new_shape}}{A vector of integerish, of the same length as the array's \code{ndim}.} +} +\if{html}{\out{
    }} +} +\subsection{Returns}{ +No return value +} +} +\if{html}{\out{
    }} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-SOMANDArrayBase-tiledbsoma_upgrade_shape}{}}} +\subsection{Method \code{tiledbsoma_upgrade_shape()}}{ +Allows the array to have a resizeable shape as described in the +TileDB-SOMA 1.15 release notes. Raises an error if the shape exceeds maxshape in any +dimension. Raises an error if the array already has a shape. +\subsection{Usage}{ +\if{html}{\out{
    }}\preformatted{SOMANDArrayBase$tiledbsoma_upgrade_shape(shape)}\if{html}{\out{
    }} +} + +\subsection{Arguments}{ +\if{html}{\out{
    }} +\describe{ +\item{\code{shape}}{A vector of integerish, of the same length as the array's \code{ndim}.} +} +\if{html}{\out{
    }} +} +\subsection{Returns}{ +No return value +} +} +\if{html}{\out{
    }} \if{html}{\out{}} \if{latex}{\out{\hypertarget{method-SOMANDArrayBase-clone}{}}} \subsection{Method \code{clone()}}{ diff --git a/apis/r/man/SOMASparseNDArray.Rd b/apis/r/man/SOMASparseNDArray.Rd index bd9a0f810b..5915ef7fb8 100644 --- a/apis/r/man/SOMASparseNDArray.Rd +++ b/apis/r/man/SOMASparseNDArray.Rd @@ -31,8 +31,7 @@ the object are overwritten and new index values are added. (lifecycle: maturing) \item \href{#method-SOMASparseNDArray-read}{\code{SOMASparseNDArray$read()}} \item \href{#method-SOMASparseNDArray-write}{\code{SOMASparseNDArray$write()}} \item \href{#method-SOMASparseNDArray-nnz}{\code{SOMASparseNDArray$nnz()}} -\item \href{#method-SOMASparseNDArray-resize}{\code{SOMASparseNDArray$resize()}} -\item \href{#method-SOMASparseNDArray-tiledbsoma_upgrade_shape}{\code{SOMASparseNDArray$tiledbsoma_upgrade_shape()}} +\item \href{#method-SOMASparseNDArray-.write_coordinates}{\code{SOMASparseNDArray$.write_coordinates()}} \item \href{#method-SOMASparseNDArray-clone}{\code{SOMASparseNDArray$clone()}} } } @@ -56,7 +55,6 @@ the object are overwritten and new index values are added. (lifecycle: maturing)
  • tiledbsoma::TileDBArray$maxshape()
  • tiledbsoma::TileDBArray$ndim()
  • tiledbsoma::TileDBArray$non_empty_domain()
  • -
  • tiledbsoma::TileDBArray$non_empty_domain_new()
  • tiledbsoma::TileDBArray$open()
  • tiledbsoma::TileDBArray$print()
  • tiledbsoma::TileDBArray$schema()
  • @@ -66,8 +64,10 @@ the object are overwritten and new index values are added. (lifecycle: maturing)
  • tiledbsoma::TileDBArray$tiledb_schema()
  • tiledbsoma::TileDBArray$used_shape()
  • tiledbsoma::SOMANDArrayBase$create()
  • +
  • tiledbsoma::SOMANDArrayBase$resize()
  • tiledbsoma::SOMANDArrayBase$set_data_type()
  • tiledbsoma::SOMANDArrayBase$tiledbsoma_has_upgraded_shape()
  • +
  • tiledbsoma::SOMANDArrayBase$tiledbsoma_upgrade_shape()
  • }} @@ -126,6 +126,9 @@ dimension of \code{values}. Generally should be \code{NULL}.} } \if{html}{\out{}} } +\subsection{Returns}{ +Invisibly returns \code{self} +} } \if{html}{\out{
    }} \if{html}{\out{}} @@ -141,49 +144,25 @@ A scalar with the number of non-zero elements } } \if{html}{\out{
    }} -\if{html}{\out{}} -\if{latex}{\out{\hypertarget{method-SOMASparseNDArray-resize}{}}} -\subsection{Method \code{resize()}}{ -Increases the shape of the array as specfied. Raises an error -if the new shape is less than the current shape in any dimension. Raises -an error if the new shape exceeds maxshape in any dimension. Raises an -error if the array doesn't already have a shape: in that case please call -tiledbsoma_upgrade_shape. -\subsection{Usage}{ -\if{html}{\out{
    }}\preformatted{SOMASparseNDArray$resize(new_shape)}\if{html}{\out{
    }} -} - -\subsection{Arguments}{ -\if{html}{\out{
    }} -\describe{ -\item{\code{new_shape}}{A vector of integerish, of the same length as the array's \code{ndim}.} -} -\if{html}{\out{
    }} -} -\subsection{Returns}{ -No return value -} -} -\if{html}{\out{
    }} -\if{html}{\out{}} -\if{latex}{\out{\hypertarget{method-SOMASparseNDArray-tiledbsoma_upgrade_shape}{}}} -\subsection{Method \code{tiledbsoma_upgrade_shape()}}{ -Allows the array to have a resizeable shape as described in the -TileDB-SOMA 1.15 release notes. Raises an error if the shape exceeds maxshape in any -dimension. Raises an error if the array already has a shape. +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-SOMASparseNDArray-.write_coordinates}{}}} +\subsection{Method \code{.write_coordinates()}}{ +Write a COO table to the array \subsection{Usage}{ -\if{html}{\out{
    }}\preformatted{SOMASparseNDArray$tiledbsoma_upgrade_shape(shape)}\if{html}{\out{
    }} +\if{html}{\out{
    }}\preformatted{SOMASparseNDArray$.write_coordinates(values)}\if{html}{\out{
    }} } \subsection{Arguments}{ \if{html}{\out{
    }} \describe{ -\item{\code{shape}}{A vector of integerish, of the same length as the array's \code{ndim}.} +\item{\code{values}}{A \code{data.frame} or \code{\link[arrow:Table]{Arrow::Table}} +with data in COO format; must be named with the dimension and attribute +labels of the array} } \if{html}{\out{
    }} } \subsection{Returns}{ -No return value +Invisibly returns \code{self} } } \if{html}{\out{
    }} diff --git a/apis/r/man/TileDBArray.Rd b/apis/r/man/TileDBArray.Rd index 9ef26bdcc7..c15ca72c53 100644 --- a/apis/r/man/TileDBArray.Rd +++ b/apis/r/man/TileDBArray.Rd @@ -35,7 +35,6 @@ Base class for representing an individual TileDB array. \item \href{#method-TileDBArray-maxshape}{\code{TileDBArray$maxshape()}} \item \href{#method-TileDBArray-used_shape}{\code{TileDBArray$used_shape()}} \item \href{#method-TileDBArray-non_empty_domain}{\code{TileDBArray$non_empty_domain()}} -\item \href{#method-TileDBArray-non_empty_domain_new}{\code{TileDBArray$non_empty_domain_new()}} \item \href{#method-TileDBArray-ndim}{\code{TileDBArray$ndim()}} \item \href{#method-TileDBArray-attributes}{\code{TileDBArray$attributes()}} \item \href{#method-TileDBArray-dimnames}{\code{TileDBArray$dimnames()}} @@ -262,43 +261,27 @@ If \code{simplify = TRUE}, returns a vector of only the upper bounds. \if{html}{\out{}} \if{latex}{\out{\hypertarget{method-TileDBArray-non_empty_domain}{}}} \subsection{Method \code{non_empty_domain()}}{ -Retrieve the non-empty domain for each dimension. This -method calls \code{\link[tiledb:tiledb_array_get_non_empty_domain_from_name]{tiledb::tiledb_array_get_non_empty_domain_from_name}} for -each dimension in the array. +Returns a named list of minimum/maximum pairs, one per index +column, which are the smallest and largest values written on that +index column. \subsection{Usage}{ -\if{html}{\out{
    }}\preformatted{TileDBArray$non_empty_domain(index1 = FALSE)}\if{html}{\out{
    }} +\if{html}{\out{
    }}\preformatted{TileDBArray$non_empty_domain(index1 = FALSE, max_only = FALSE)}\if{html}{\out{
    }} } \subsection{Arguments}{ \if{html}{\out{
    }} \describe{ \item{\code{index1}}{Return the non-empty domain with 1-based indices.} + +\item{\code{max_only}}{Return only the max value per dimension, and return +this as a vector. Names are dropped. +(lifecycle: maturing)} } \if{html}{\out{
    }} } \subsection{Returns}{ -A vector of \code{\link[bit64:bit64-package]{bit64::integer64}}s with one entry for -each dimension. -} -} -\if{html}{\out{
    }} -\if{html}{\out{}} -\if{latex}{\out{\hypertarget{method-TileDBArray-non_empty_domain_new}{}}} -\subsection{Method \code{non_empty_domain_new()}}{ -Returns a named list of minimum/maximum pairs, one per index -column, which are the smallest and largest values written on that -index column. - -As tracked on https://github.com/single-cell-data/TileDB-SOMA/issues/2407 -this will replace the existing \code{non_empty_domain} method. - -(lifecycle: maturing) -\subsection{Usage}{ -\if{html}{\out{
    }}\preformatted{TileDBArray$non_empty_domain_new()}\if{html}{\out{
    }} -} - -\subsection{Returns}{ -Named list of minimum/maximum values. +Named list of minimum/maximum values, or integer vector +of maximum values. } } \if{html}{\out{
    }} diff --git a/apis/r/man/r_type_from_arrow_type.Rd b/apis/r/man/r_type_from_arrow_type.Rd new file mode 100644 index 0000000000..4bb62a59c7 --- /dev/null +++ b/apis/r/man/r_type_from_arrow_type.Rd @@ -0,0 +1,47 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/utils-arrow.R +\name{r_type_from_arrow_type} +\alias{r_type_from_arrow_type} +\alias{r_type_from_arrow_type.Schema} +\alias{r_type_from_arrow_type.Field} +\alias{r_type_from_arrow_type.DataType} +\title{Get the \R Type from an Arrow Type} +\usage{ +r_type_from_arrow_type(x) + +\method{r_type_from_arrow_type}{Schema}(x) + +\method{r_type_from_arrow_type}{Field}(x) + +\method{r_type_from_arrow_type}{DataType}(x) +} +\arguments{ +\item{x}{An \CRANpkg{Arrow} \link[arrow:Schema]{schema}, +\link[arrow:Field]{field}, or \link[arrow:infer_type]{data type}} +} +\value{ +If \code{x} is a \link[arrow:infer_type]{data type}, a single +character value giving the \R \link[base:typeof]{type} of \code{x}; if no +corresponding \R type, returns the \CRANpkg{Arrow} type name + +If \code{x} is a \link[arrow:Field]{field}, a single named character +vector with the name being the field name and the value being the \R +\link[base:typeof]{type} + +If \code{x} is a \link[arrow:Schema]{schema}, a named vector where +the names are field names and the values are the \R \link[base:typeof]{types} +of each field +} +\description{ +Get an \R \link[base:typeof]{type} from an Arrow type. This function is +equivalent to \code{\link[base]{typeof}()} rather than +\code{\link[base]{mode}()} or \code{\link[base]{class}()}, and returns the +equivalent \strong{type}. For example, the equivalent \R type to an Arrow +\link[arrow]{dictionary} is \dQuote{\code{integer}}, not +\dQuote{\code{factor}}; likewise, the equivalent \R type to an Arrow 64-bit +integer is \dQuote{\code{double}} +} +\seealso{ +\code{\link[base]{typeof}()} +} +\keyword{internal} diff --git a/apis/r/src/RcppExports.cpp b/apis/r/src/RcppExports.cpp index b530b175c6..772071e714 100644 --- a/apis/r/src/RcppExports.cpp +++ b/apis/r/src/RcppExports.cpp @@ -246,6 +246,58 @@ BEGIN_RCPP return R_NilValue; END_RCPP } +// libtiledbsoma_empty_query_condition +Rcpp::XPtr libtiledbsoma_empty_query_condition(Rcpp::XPtr ctxxp); +RcppExport SEXP _tiledbsoma_libtiledbsoma_empty_query_condition(SEXP ctxxpSEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< Rcpp::XPtr >::type ctxxp(ctxxpSEXP); + rcpp_result_gen = Rcpp::wrap(libtiledbsoma_empty_query_condition(ctxxp)); + return rcpp_result_gen; +END_RCPP +} +// libtiledbsoma_query_condition_from_triple +void libtiledbsoma_query_condition_from_triple(Rcpp::XPtr query_cond, const std::string& attr_name, SEXP condition_value, const std::string& arrow_type_name, const std::string& cond_op_string); +RcppExport SEXP _tiledbsoma_libtiledbsoma_query_condition_from_triple(SEXP query_condSEXP, SEXP attr_nameSEXP, SEXP condition_valueSEXP, SEXP arrow_type_nameSEXP, SEXP cond_op_stringSEXP) { +BEGIN_RCPP + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< Rcpp::XPtr >::type query_cond(query_condSEXP); + Rcpp::traits::input_parameter< const std::string& >::type attr_name(attr_nameSEXP); + Rcpp::traits::input_parameter< SEXP >::type condition_value(condition_valueSEXP); + Rcpp::traits::input_parameter< const std::string& >::type arrow_type_name(arrow_type_nameSEXP); + Rcpp::traits::input_parameter< const std::string& >::type cond_op_string(cond_op_stringSEXP); + libtiledbsoma_query_condition_from_triple(query_cond, attr_name, condition_value, arrow_type_name, cond_op_string); + return R_NilValue; +END_RCPP +} +// libtiledbsoma_query_condition_combine +Rcpp::XPtr libtiledbsoma_query_condition_combine(Rcpp::XPtr lhs, Rcpp::XPtr rhs, const std::string& str); +RcppExport SEXP _tiledbsoma_libtiledbsoma_query_condition_combine(SEXP lhsSEXP, SEXP rhsSEXP, SEXP strSEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< Rcpp::XPtr >::type lhs(lhsSEXP); + Rcpp::traits::input_parameter< Rcpp::XPtr >::type rhs(rhsSEXP); + Rcpp::traits::input_parameter< const std::string& >::type str(strSEXP); + rcpp_result_gen = Rcpp::wrap(libtiledbsoma_query_condition_combine(lhs, rhs, str)); + return rcpp_result_gen; +END_RCPP +} +// libtiledbsoma_query_condition_in_nin +Rcpp::XPtr libtiledbsoma_query_condition_in_nin(Rcpp::XPtr ctxxp, const std::string& attr_name, const std::string& op_name, SEXP values); +RcppExport SEXP _tiledbsoma_libtiledbsoma_query_condition_in_nin(SEXP ctxxpSEXP, SEXP attr_nameSEXP, SEXP op_nameSEXP, SEXP valuesSEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< Rcpp::XPtr >::type ctxxp(ctxxpSEXP); + Rcpp::traits::input_parameter< const std::string& >::type attr_name(attr_nameSEXP); + Rcpp::traits::input_parameter< const std::string& >::type op_name(op_nameSEXP); + Rcpp::traits::input_parameter< SEXP >::type values(valuesSEXP); + rcpp_result_gen = Rcpp::wrap(libtiledbsoma_query_condition_in_nin(ctxxp, attr_name, op_name, values)); + return rcpp_result_gen; +END_RCPP +} // reindex_create Rcpp::XPtr reindex_create(); RcppExport SEXP _tiledbsoma_reindex_create() { @@ -380,15 +432,15 @@ BEGIN_RCPP return rcpp_result_gen; END_RCPP } -// non_empty_domain_new -SEXP non_empty_domain_new(const std::string& uri, Rcpp::XPtr ctxxp); -RcppExport SEXP _tiledbsoma_non_empty_domain_new(SEXP uriSEXP, SEXP ctxxpSEXP) { +// non_empty_domain +SEXP non_empty_domain(const std::string& uri, Rcpp::XPtr ctxxp); +RcppExport SEXP _tiledbsoma_non_empty_domain(SEXP uriSEXP, SEXP ctxxpSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; Rcpp::traits::input_parameter< const std::string& >::type uri(uriSEXP); Rcpp::traits::input_parameter< Rcpp::XPtr >::type ctxxp(ctxxpSEXP); - rcpp_result_gen = Rcpp::wrap(non_empty_domain_new(uri, ctxxp)); + rcpp_result_gen = Rcpp::wrap(non_empty_domain(uri, ctxxp)); return rcpp_result_gen; END_RCPP } @@ -739,6 +791,10 @@ static const R_CallMethodDef CallEntries[] = { {"_tiledbsoma_has_metadata", (DL_FUNC) &_tiledbsoma_has_metadata, 4}, {"_tiledbsoma_delete_metadata", (DL_FUNC) &_tiledbsoma_delete_metadata, 4}, {"_tiledbsoma_set_metadata", (DL_FUNC) &_tiledbsoma_set_metadata, 7}, + {"_tiledbsoma_libtiledbsoma_empty_query_condition", (DL_FUNC) &_tiledbsoma_libtiledbsoma_empty_query_condition, 1}, + {"_tiledbsoma_libtiledbsoma_query_condition_from_triple", (DL_FUNC) &_tiledbsoma_libtiledbsoma_query_condition_from_triple, 5}, + {"_tiledbsoma_libtiledbsoma_query_condition_combine", (DL_FUNC) &_tiledbsoma_libtiledbsoma_query_condition_combine, 3}, + {"_tiledbsoma_libtiledbsoma_query_condition_in_nin", (DL_FUNC) &_tiledbsoma_libtiledbsoma_query_condition_in_nin, 4}, {"_tiledbsoma_reindex_create", (DL_FUNC) &_tiledbsoma_reindex_create, 0}, {"_tiledbsoma_reindex_map", (DL_FUNC) &_tiledbsoma_reindex_map, 2}, {"_tiledbsoma_reindex_lookup", (DL_FUNC) &_tiledbsoma_reindex_lookup, 2}, @@ -750,7 +806,7 @@ static const R_CallMethodDef CallEntries[] = { {"_tiledbsoma_check_arrow_array_tag", (DL_FUNC) &_tiledbsoma_check_arrow_array_tag, 1}, {"_tiledbsoma_shape", (DL_FUNC) &_tiledbsoma_shape, 2}, {"_tiledbsoma_maxshape", (DL_FUNC) &_tiledbsoma_maxshape, 2}, - {"_tiledbsoma_non_empty_domain_new", (DL_FUNC) &_tiledbsoma_non_empty_domain_new, 2}, + {"_tiledbsoma_non_empty_domain", (DL_FUNC) &_tiledbsoma_non_empty_domain, 2}, {"_tiledbsoma_domain", (DL_FUNC) &_tiledbsoma_domain, 2}, {"_tiledbsoma_maxdomain", (DL_FUNC) &_tiledbsoma_maxdomain, 2}, {"_tiledbsoma_maybe_soma_joinid_shape", (DL_FUNC) &_tiledbsoma_maybe_soma_joinid_shape, 2}, diff --git a/apis/r/src/query_condition.cpp b/apis/r/src/query_condition.cpp new file mode 100644 index 0000000000..785a2d214f --- /dev/null +++ b/apis/r/src/query_condition.cpp @@ -0,0 +1,241 @@ +#include // for R interface to C++ +#include // for C interface to Arrow (via R package) +#include // for fromInteger64 +#include // for C/C++ interface to Arrow + +// we currently get deprecation warnings by default which are noisy +#ifndef TILEDB_NO_API_DEPRECATION_WARNINGS +#define TILEDB_NO_API_DEPRECATION_WARNINGS +#endif + +// We get these via nanoarrow and must cannot include carrow.h again +#define ARROW_SCHEMA_AND_ARRAY_DEFINED 1 +#include +#include + +#include "rutilities.h" // local declarations +#include "xptr-utils.h" // xptr taggging utilities + +// Helper +tiledb_query_condition_combination_op_t +_tiledb_query_string_to_condition_combination_op(const std::string& opstr) { + if (opstr == "AND") { + return TILEDB_AND; + } else if (opstr == "OR") { + return TILEDB_OR; + } else if (opstr == "NOT") { + return TILEDB_NOT; + } else { + Rcpp::stop("Unknown TileDB combination op string '%s'", opstr.c_str()); + } +} + +// Helper +tiledb_query_condition_op_t _op_name_to_tdb_op(const std::string& opstr) { + if (opstr == "LT") { + return TILEDB_LT; + } else if (opstr == "LE") { + return TILEDB_LE; + } else if (opstr == "GT") { + return TILEDB_GT; + } else if (opstr == "GE") { + return TILEDB_GE; + } else if (opstr == "EQ") { + return TILEDB_EQ; + } else if (opstr == "NE") { + return TILEDB_NE; + } else if (opstr == "IN") { + return TILEDB_IN; + } else if (opstr == "NOT_IN") { + return TILEDB_NOT_IN; + } else { + Rcpp::stop("Unknown TileDB op string '%s'", opstr.c_str()); + } +} + +// [[Rcpp::export]] +Rcpp::XPtr libtiledbsoma_empty_query_condition( + Rcpp::XPtr ctxxp) { + // Shared pointer to SOMAContext from external pointer wrapper: + std::shared_ptr sctx = ctxxp->ctxptr; + // Shared pointer to TileDB Context from SOMAContext: + std::shared_ptr ctx = sctx->tiledb_ctx(); + // Core constructor + return make_xptr( + new tdbs::QueryCondition(*ctx.get())); +} + +// [[Rcpp::export]] +void libtiledbsoma_query_condition_from_triple( + Rcpp::XPtr query_cond, + const std::string& attr_name, + SEXP condition_value, + const std::string& arrow_type_name, + const std::string& cond_op_string) { + // No such: + // print(arrow::large_string()$name) + // print(arrow::double()$name) + + // print(arrow::int64()$name) [1] "int64" + // print(arrow::uint64()$name) [1] "uint64" + // print(arrow::int32()$name) [1] "int32" + // print(arrow::uint32()$name) [1] "uint32" + // print(arrow::int16()$name) [1] "int16" + // print(arrow::uint16()$name) [1] "uint16" + // print(arrow::int8()$name) [1] "int8" + // print(arrow::uint8()$name) [1] "uint8" + // print(arrow::float64()$name) [1] "double" + // print(arrow::float()$name) [1] "float" + // print(arrow::float32()$name) [1] "float" + // print(arrow::string()$name) [1] "utf8" + // print(arrow::binary()$name) [1] "binary" + // print(arrow::large_binary()$name) [1] "large_binary" + // print(arrow::bool()$name) [1] "bool" + // print(arrow::boolean()$name) [1] "bool" + // print(arrow::date64()$name) [1] "date64" + // print(arrow::date32()$name) [1] "date32" + // print(arrow::time32()$name) [1] "time32" + // print(arrow::time64()$name) [1] "time64" + + check_xptr_tag(query_cond); + tiledb_query_condition_op_t op = _op_name_to_tdb_op(cond_op_string); + + if (arrow_type_name == "int64" || arrow_type_name == "uint64") { + int64_t v = Rcpp::fromInteger64(Rcpp::as(condition_value)); + uint64_t cond_val_size = sizeof(int64_t); + query_cond->init(attr_name, (void*)&v, cond_val_size, op); + + } else if (arrow_type_name == "int32" || arrow_type_name == "uint32") { + int v = Rcpp::as(condition_value); + uint64_t cond_val_size = sizeof(int); + query_cond->init(attr_name, (void*)&v, cond_val_size, op); + + } else if (arrow_type_name == "int16" || arrow_type_name == "uint16") { + int v = Rcpp::as(condition_value); + uint64_t cond_val_size = sizeof(int16_t); + query_cond->init(attr_name, (void*)&v, cond_val_size, op); + + } else if (arrow_type_name == "int8" || arrow_type_name == "uint8") { + int v = Rcpp::as(condition_value); + uint64_t cond_val_size = sizeof(int8_t); + query_cond->init(attr_name, (void*)&v, cond_val_size, op); + + } else if (arrow_type_name == "double") { + double v = Rcpp::as(condition_value); + uint64_t cond_val_size = sizeof(double); + query_cond->init(attr_name, (void*)&v, cond_val_size, op); + + } else if (arrow_type_name == "float") { + float v = static_cast(Rcpp::as(condition_value)); + uint64_t cond_val_size = sizeof(float); + query_cond->init(attr_name, (void*)&v, cond_val_size, op); + + } else if ( + arrow_type_name == "string" || arrow_type_name == "ascii" || + arrow_type_name == "utf8" || arrow_type_name == "large_utf8") { + std::string v = Rcpp::as(condition_value); + query_cond->init(attr_name, v, op); + + } else if (arrow_type_name == "bool") { + bool v = Rcpp::as(condition_value); + uint64_t cond_val_size = sizeof(bool); + query_cond->init(attr_name, (void*)&v, cond_val_size, op); + + } else if (arrow_type_name == "timestamp_s") { + int64_t v = static_cast( + Rcpp::as(condition_value)); + spdl::debug("ts3 {}", v); + uint64_t cond_val_size = sizeof(int64_t); + query_cond->init(attr_name, (void*)&v, cond_val_size, op); + + } else if (arrow_type_name == "timestamp_ms") { + int64_t v = static_cast( + Rcpp::as(condition_value) * 1000); + uint64_t cond_val_size = sizeof(int64_t); + query_cond->init(attr_name, (void*)&v, cond_val_size, op); + + } else if (arrow_type_name == "timestamp_us") { + int64_t v = static_cast( + Rcpp::as(condition_value) * 1e6); + uint64_t cond_val_size = sizeof(int64_t); + query_cond->init(attr_name, (void*)&v, cond_val_size, op); + + } else if (arrow_type_name == "timestamp_ns") { + // XXX nanotime ... + int64_t v = static_cast( + Rcpp::as(condition_value) * 1e9); + uint64_t cond_val_size = sizeof(int64_t); + query_cond->init(attr_name, (void*)&v, cond_val_size, op); + + } else if (arrow_type_name == "date32") { + // Arrow date32 TileDB DATETIME_DAY + int64_t v = static_cast(Rcpp::as(condition_value)); + uint64_t cond_val_size = sizeof(int64_t); + query_cond->init(attr_name, (void*)&v, cond_val_size, op); + + } else { + Rcpp::stop( + "tiledbsoma query condition: currently unsupported type \"%s\"", + arrow_type_name); + } +} + +// [[Rcpp::export]] +Rcpp::XPtr libtiledbsoma_query_condition_combine( + Rcpp::XPtr lhs, + Rcpp::XPtr rhs, + const std::string& str) { + check_xptr_tag(lhs); + check_xptr_tag(lhs); + tiledb_query_condition_combination_op_t + op = _tiledb_query_string_to_condition_combination_op(str); + tdbs::QueryCondition res = lhs->combine(*rhs.get(), op); + return make_xptr(new tdbs::QueryCondition(res)); +} + +// [[Rcpp::export]] +Rcpp::XPtr libtiledbsoma_query_condition_in_nin( + Rcpp::XPtr ctxxp, + const std::string& attr_name, + const std::string& op_name, + SEXP values) { + // Shared pointer to SOMAContext from external pointer wrapper: + std::shared_ptr sctx = ctxxp->ctxptr; + // Shared pointer to TileDB Context from SOMAContext: + std::shared_ptr ctx = sctx->tiledb_ctx(); + + tiledb_query_condition_op_t op = _op_name_to_tdb_op(op_name); + + if (TYPEOF(values) == INTSXP) { + std::vector iv = Rcpp::as>(values); + auto qc = tdbs::QueryConditionExperimental::create( + *ctx.get(), attr_name, iv, op); + return make_xptr(new tdbs::QueryCondition(qc)); + + } else if (TYPEOF(values) == REALSXP) { + if (Rcpp::isInteger64(values)) { + std::vector dv = Rcpp::fromInteger64( + Rcpp::NumericVector(values)); + auto qc = tdbs::QueryConditionExperimental::create( + *ctx.get(), attr_name, dv, op); + return make_xptr( + new tdbs::QueryCondition(qc)); + } else { + std::vector dv = Rcpp::as>(values); + auto qc = tdbs::QueryConditionExperimental::create( + *ctx.get(), attr_name, dv, op); + return make_xptr( + new tdbs::QueryCondition(qc)); + } + + } else if (TYPEOF(values) == STRSXP) { + std::vector sv = Rcpp::as>( + values); + auto qc = tdbs::QueryConditionExperimental::create( + *ctx.get(), attr_name, sv, op); + return make_xptr(new tdbs::QueryCondition(qc)); + + } else { + Rcpp::stop("No support (yet) for type '%s'.", Rcpp::type2name(values)); + } +} diff --git a/apis/r/src/rinterface.cpp b/apis/r/src/rinterface.cpp index a6a3c02b0d..0d4f3271d2 100644 --- a/apis/r/src/rinterface.cpp +++ b/apis/r/src/rinterface.cpp @@ -279,7 +279,7 @@ Rcpp::NumericVector maxshape( } // [[Rcpp::export]] -SEXP non_empty_domain_new( +SEXP non_empty_domain( const std::string& uri, Rcpp::XPtr ctxxp) { auto sdf = tdbs::SOMADataFrame::open(uri, OpenMode::read, ctxxp->ctxptr); tdbs::ArrowTable arrow_table = sdf->get_non_empty_domain(); diff --git a/apis/r/tests/testthat/helper-test-data.R b/apis/r/tests/testthat/helper-test-data.R index a3e8c6d692..efdd572de9 100644 --- a/apis/r/tests/testthat/helper-test-data.R +++ b/apis/r/tests/testthat/helper-test-data.R @@ -78,3 +78,15 @@ create_arrow_table <- function(nrows = 10L, factors = FALSE) { # schema = create_arrow_schema(false) ) } + +domain_for_arrow_table <- function() { + return( + list( + int_column = c(0, 1000000), + soma_joinid = c(0, 1000000), + float_column = c(-1e6, 1e6), + string_column = NULL, + grp = NULL + ) + ) +} diff --git a/apis/r/tests/testthat/helper-test-soma-objects.R b/apis/r/tests/testthat/helper-test-soma-objects.R index a2927e5abd..6bdf849328 100644 --- a/apis/r/tests/testthat/helper-test-soma-objects.R +++ b/apis/r/tests/testthat/helper-test-soma-objects.R @@ -9,10 +9,22 @@ create_and_populate_soma_dataframe <- function( ) { set.seed(seed) - # arrow_schema <- create_arrow_schema() tbl <- create_arrow_table(nrows = nrows, factors = factors) - sdf <- SOMADataFrameCreate(uri, tbl$schema, index_column_names = index_column_names) + full_domain <- domain_for_arrow_table() + # Pick out the index-column names actually being used in this case + domain <- list() + for (index_column in index_column_names) { + domain[[index_column]] <- full_domain[[index_column]] + } + + sdf <- SOMADataFrameCreate( + uri, + tbl$schema, + index_column_names = index_column_names, + domain = domain + ) + sdf$write(tbl) if (is.null(mode)) { @@ -67,11 +79,14 @@ create_and_populate_var <- function( rep_len("lvl2", length.out = floor(nrows / 2)) )) } + domain <- list( + soma_joinid = c(0, nrows - 1L) + ) dname <- dirname(uri) if (!dir.exists(dname)) dir.create(dname) - sdf <- SOMADataFrameCreate(uri, tbl$schema, index_column_names = "soma_joinid") + sdf <- SOMADataFrameCreate(uri, tbl$schema, index_column_names = "soma_joinid", domain = domain) sdf$write(tbl) if (is.null(mode)) { diff --git a/apis/r/tests/testthat/test-Factory.R b/apis/r/tests/testthat/test-Factory.R index b06c0a23c7..1611fad3be 100644 --- a/apis/r/tests/testthat/test-Factory.R +++ b/apis/r/tests/testthat/test-Factory.R @@ -8,9 +8,19 @@ test_that("DataFrame Factory", { # Check creation of a DF asch <- create_arrow_schema(foo_first=FALSE) - expect_silent(d2 <- SOMADataFrameCreate(uri, schema = asch)) - tbl <- arrow::arrow_table(soma_joinid = 1L:10L, int_column = 1L:10L, float_column = sqrt(1:10), - string_column = letters[1:10], schema = asch) + + expect_silent(d2 <- SOMADataFrameCreate( + uri, + schema = asch, + domain = list(soma_joinid = c(0, 99)) + )) + + tbl <- arrow::arrow_table( + soma_joinid = 1L:10L, + int_column = 1L:10L, + float_column = sqrt(1:10), + string_column = letters[1:10], + schema = asch) d2$write(tbl) # Check opening to read @@ -26,9 +36,21 @@ test_that("DataFrame Factory with specified index_column_names", { # Check creation of a DF asch <- create_arrow_schema() expect_error(d2 <- SOMADataFrameCreate(uri, index_column_names = "int_column")) # misses schema - expect_silent(d2 <- SOMADataFrameCreate(uri, schema = asch, index_column_names = "int_column")) - tbl <- arrow::arrow_table(int_column = 1L:10L, soma_joinid = 1L:10L, float_column = sqrt(1:10), - string_column = letters[1:10], schema = asch) + + expect_silent(d2 <- SOMADataFrameCreate( + uri, + schema = asch, + index_column_names = "int_column", + domain = list(int_column = c(1, 10)) + )) + + tbl <- arrow::arrow_table( + int_column = 1L:10L, + soma_joinid = 1L:10L, + float_column = sqrt(1:10), + string_column = letters[1:10], + schema = asch) + d2$write(tbl) # Check opening to read diff --git a/apis/r/tests/testthat/test-OrderedAndFactor.R b/apis/r/tests/testthat/test-OrderedAndFactor.R index c05f7d3d8f..508481829d 100644 --- a/apis/r/tests/testthat/test-OrderedAndFactor.R +++ b/apis/r/tests/testthat/test-OrderedAndFactor.R @@ -97,7 +97,7 @@ test_that("SOMADataFrame round-trip with factor and ordered", { expect_equal(names(lvls), colnames(et)) #sdf <- SOMADataFrameCreate(uri, sch) - sdf <- SOMADataFrameCreate(uri, att$schema) + sdf <- SOMADataFrameCreate(uri, att$schema, domain = list(soma_joinid = c(0, 999))) expect_true(inherits(sdf, "SOMADataFrame")) sdf$write(att) diff --git a/apis/r/tests/testthat/test-SCEOutgest.R b/apis/r/tests/testthat/test-SCEOutgest.R index 2fcc2f4d86..6402497c32 100644 --- a/apis/r/tests/testthat/test-SCEOutgest.R +++ b/apis/r/tests/testthat/test-SCEOutgest.R @@ -335,6 +335,7 @@ test_that("Load SCE object from indexed ExperimentQuery", { skip_if(!extended_tests() || covr_tests()) skip_if_not_installed('SingleCellExperiment', .MINIMUM_SCE_VERSION('c')) uri <- tempfile(pattern="sce-experiment-query-value-filters") + n_obs <- 1001L n_var <- 99L n_pcs <- 50L @@ -371,6 +372,7 @@ test_that("Load SCE object from indexed ExperimentQuery", { n_var_select <- length(var_label_values) n_obs_select <- length(obs_label_values) expect_no_condition(obj <- query$to_single_cell_experiment()) + expect_s4_class(obj, 'SingleCellExperiment') expect_identical(dim(obj), c(n_var_select, n_obs_select)) expect_identical( diff --git a/apis/r/tests/testthat/test-SOMAArrayReader-Arrow.R b/apis/r/tests/testthat/test-SOMAArrayReader-Arrow.R index 2135f557a6..8753730a51 100644 --- a/apis/r/tests/testthat/test-SOMAArrayReader-Arrow.R +++ b/apis/r/tests/testthat/test-SOMAArrayReader-Arrow.R @@ -15,33 +15,24 @@ test_that("Arrow Interface from SOMAArrayReader", { tb1 <- soma_array_to_arrow_table(soma_array_reader(uri, columns)) expect_equal(tb1$num_rows, 2638) - arr <- tiledb_array(uri) # need array for schema access to qc parser - qc <- parse_query_condition(n_counts < 1000 && n_genes >= 400, ta = arr) - tb2 <- soma_array_to_arrow_table(soma_array_reader(uri, columns, qc@ptr)) - - expect_equal(tb2$num_rows, 47) - expect_true(all(tb2$n_counts < 1000)) - expect_true(all(tb2$n_genes >= 400)) - - # read everything - tb3 <- soma_array_to_arrow_table(soma_array_reader(uri)) + tb2 <- soma_array_to_arrow_table(soma_array_reader(uri)) - expect_equal(tb3$num_rows, 2638) - expect_equal(tb3$num_columns, 6) + expect_equal(tb2$num_rows, 2638) + expect_equal(tb2$num_columns, 6) # read a subset of rows and columns - tb4 <- soma_array_to_arrow_table(soma_array_reader(uri = uri, + tb3 <- soma_array_to_arrow_table(soma_array_reader(uri = uri, colnames = c("obs_id", "percent_mito", "n_counts", "louvain"), dim_ranges = list(soma_joinid = rbind(bit64::as.integer64(c(1000, 1004)), bit64::as.integer64(c(2000, 2004)))), dim_points=list(soma_joinid = bit64::as.integer64(seq(0, 100, by = 20))))) - expect_equal(tb4$num_rows, 16) - expect_equal(tb4$num_columns, 4) + expect_equal(tb3$num_rows, 16) + expect_equal(tb3$num_columns, 4) - rm(z, tb, rb, tb1, arr, tb2, tb3, tb4) + rm(z, tb, rb, tb1, tb2, tb3) gc() }) diff --git a/apis/r/tests/testthat/test-SOMACollection.R b/apis/r/tests/testthat/test-SOMACollection.R index e902aa891d..26d52534a4 100644 --- a/apis/r/tests/testthat/test-SOMACollection.R +++ b/apis/r/tests/testthat/test-SOMACollection.R @@ -43,7 +43,7 @@ test_that("SOMACollection basics", { subcollection$close() # Add another dataframe to the collection, this time using add_new_dataframe - collection$add_new_dataframe("new_df", create_arrow_schema(), "int_column")$close() + collection$add_new_dataframe("new_df", create_arrow_schema(), "int_column", domain = list(int_column = c(0, 999)))$close() df3 <- collection$get("new_df") df3 <- SOMADataFrameOpen(df3$uri) expect_true(df3$soma_type == "SOMADataFrame") @@ -131,7 +131,7 @@ test_that("Platform config and context are respected by add_ methods", { # Add a dataframe element to the collection tbl <- create_arrow_table() - sdf1 <- collection$add_new_dataframe("sdf1", tbl$schema, "soma_joinid") + sdf1 <- collection$add_new_dataframe("sdf1", tbl$schema, "soma_joinid", domain = list(soma_joinid = c(0, 999))) sdf1$write(tbl) collection$close() @@ -154,6 +154,7 @@ test_that("Platform config and context are respected by add_ methods", { key = "sdf2", schema = tbl$schema, index_column_names = "soma_joinid", + domain = list(soma_joinid = c(0, 999)), platform_config = cfg ) sdf2$write(tbl) diff --git a/apis/r/tests/testthat/test-SOMADataFrame.R b/apis/r/tests/testthat/test-SOMADataFrame.R index 64a8334acd..1ca1439a9b 100644 --- a/apis/r/tests/testthat/test-SOMADataFrame.R +++ b/apis/r/tests/testthat/test-SOMADataFrame.R @@ -9,7 +9,7 @@ test_that("Basic mechanics", { ) if (dir.exists(uri)) unlink(uri, recursive=TRUE) - sdf <- SOMADataFrameCreate(uri, asch, index_column_names = "int_column") + sdf <- SOMADataFrameCreate(uri, asch, index_column_names = "int_column", domain = list(int_column = c(1, 36))) expect_true(sdf$exists()) expect_true(dir.exists(uri)) @@ -127,7 +127,7 @@ test_that("Basic mechanics with default index_column_names", { ) if (dir.exists(uri)) unlink(uri, recursive=TRUE) - sdf$create(asch, internal_use_only = "allowed_use") + sdf$create(asch, domain = list(soma_joinid = c(0, 99)), internal_use_only = "allowed_use") expect_true(sdf$exists()) expect_true(dir.exists(uri)) expect_match(sdf$soma_type, "SOMADataFrame") @@ -176,6 +176,15 @@ test_that("creation with all supported dimension data types", { arrow::field("string", arrow::utf8(), nullable = FALSE) ) + domains <- list( + int8 = c(1L, 36L), + int16 = c(1L, 36L), + double = c(1.1, 36.1), + int = c(1L, 36L), + int64 = c(bit64::as.integer64(1L), bit64::as.integer64(36L)), + string = NULL + ) + tbl0 <- arrow::arrow_table( int8 = 1L:36L, int16 = 1:36L, @@ -192,7 +201,7 @@ test_that("creation with all supported dimension data types", { for (dtype in tbl0$ColumnNames()) { uri <- tempfile(pattern=paste0("soma-dataframe-", dtype)) expect_silent( - sdf <- SOMADataFrameCreate(uri, tbl0$schema, index_column_names = dtype) + sdf <- SOMADataFrameCreate(uri, tbl0$schema, index_column_names = dtype, domain = domains[dtype]) ) expect_true(sdf$exists()) sdf$close() @@ -211,7 +220,7 @@ test_that("int64 values are stored correctly", { ) if (dir.exists(uri)) unlink(uri, recursive=TRUE) - sdf <- SOMADataFrameCreate(uri, asch, index_column_names = "int_column") + sdf <- SOMADataFrameCreate(uri, asch, index_column_names = "int_column", domain = list(int_column = c(1, 10))) tbl0 <- arrow::arrow_table(int_column = 1L:10L, soma_joinid = 1L:10L, schema = asch) orig_downcast_value <- getOption("arrow.int64_downcast") @@ -245,7 +254,9 @@ test_that("creation with ordered factors", { tbl <- arrow::as_arrow_table(df) expect_true(tbl$schema$GetFieldByName("ord")$type$ordered) if (dir.exists(uri)) unlink(uri, recursive=TRUE) - expect_no_condition(sdf <- SOMADataFrameCreate(uri = uri, schema = tbl$schema)) + expect_no_condition( + sdf <- SOMADataFrameCreate(uri = uri, schema = tbl$schema, domain = list(soma_joinid = c(0, n-1L))) + ) expect_no_condition(sdf$write(values = tbl)) expect_s3_class(sdf <- SOMADataFrameOpen(uri), "SOMADataFrame") expect_true(sdf$schema()$GetFieldByName("ord")$type$ordered) @@ -270,7 +281,9 @@ test_that("explicit casting of ordered factors to regular factors", { if (dir.exists(uri)) unlink(uri, recursive=TRUE) tbl <- arrow::as_arrow_table(df) expect_true(tbl$schema$GetFieldByName("ord")$type$ordered) - expect_no_condition(sdf <- SOMADataFrameCreate(uri = uri, schema = tbl$schema,)) + expect_no_condition( + sdf <- SOMADataFrameCreate(uri = uri, schema = tbl$schema, domain = list(soma_joinid = c(0, n-1L))) + ) expect_no_condition(sdf$write(values = tbl)) expect_s3_class(sdf <- SOMADataFrameOpen(uri), "SOMADataFrame") expect_true(sdf$schema()$GetFieldByName("ord")$type$ordered) @@ -577,7 +590,7 @@ test_that("SOMADataFrame timestamped ops", { arrow::field("valint", arrow::int32(), nullable=FALSE), arrow::field("valdbl", arrow::float64(), nullable=FALSE)) if (dir.exists(uri)) unlink(uri, recursive=TRUE) - sdf <- SOMADataFrameCreate(uri=uri, schema=sch) + sdf <- SOMADataFrameCreate(uri=uri, schema=sch, domain = list(soma_joinid = c(1, 100))) rb1 <- arrow::record_batch(soma_joinid = bit64::as.integer64(1L:3L), valint = 1L:3L, valdbl = 100*(1:3), @@ -813,7 +826,7 @@ test_that("missing levels in enums", { # Create SOMADataFrame w/ missing enum levels if (dir.exists(uri)) unlink(uri, recursive=TRUE) tbl <- arrow::as_arrow_table(df) - sdf <- SOMADataFrameCreate(uri, tbl$schema) + sdf <- SOMADataFrameCreate(uri, tbl$schema, domain = list(soma_joinid = c(0, n-1))) on.exit(sdf$close()) sdf$write(tbl) sdf$close() @@ -874,7 +887,7 @@ test_that("factor levels can grow without overlap", { arrow::field(name = "obs_col_like", type = arrow::dictionary(index_type = arrow::int8(), ordered = FALSE))) - sdf <- SOMADataFrameCreate(uri, schema) + sdf <- SOMADataFrameCreate(uri, schema, domain = list(soma_joinid = c(0, 5))) tbl_1 <- arrow::arrow_table(soma_joinid = bit64::as.integer64(c(0,1,2)), obs_col_like = factor(c("A", "B", "A")), @@ -917,7 +930,7 @@ test_that("factor levels cannot extend beyond index limit", { df <- data.frame(soma_joinid = bit64::as.integer64(seq_len(65)), obs = factor(paste0("elem", seq_len(65)))) tbl <- arrow::as_arrow_table(df, schema = sch) - expect_silent(SOMADataFrameCreate(uri, sch)$write(tbl)$close()) + expect_silent(SOMADataFrameCreate(uri, sch, domain = list(soma_joinid = c(0, 999)))$write(tbl)$close()) df2 <- data.frame(soma_joinid = bit64::as.integer64(65 + seq_len(65)), obs = factor(paste0("elem_", 65 + seq_len(65)))) diff --git a/apis/r/tests/testthat/test-SOMADenseNDArray.R b/apis/r/tests/testthat/test-SOMADenseNDArray.R index f773ab0b04..9f555f38d7 100644 --- a/apis/r/tests/testthat/test-SOMADenseNDArray.R +++ b/apis/r/tests/testthat/test-SOMADenseNDArray.R @@ -37,7 +37,7 @@ test_that("SOMADenseNDArray creation", { # Subset the array on both dimensions tbl <- ndarray$read_arrow_table( - coords = list(soma_dim_0=0:3, soma_dim_1=0:2), + coords = list(soma_dim_0 = 0:3, soma_dim_1 = 0:2), result_order = "COL_MAJOR" ) expect_identical( @@ -69,7 +69,7 @@ test_that("SOMADenseNDArray creation", { # Validating coords format expect_error( ndarray$read_arrow_table(coords = list(cbind(0, 1))), - "must be a list of vectors" + regexp = "'coords' must be a list integerish vectors" ) # Validate TileDB array schema diff --git a/apis/r/tests/testthat/test-SOMASparseNDArray.R b/apis/r/tests/testthat/test-SOMASparseNDArray.R index 51ae2b46a1..d39dacd3d8 100644 --- a/apis/r/tests/testthat/test-SOMASparseNDArray.R +++ b/apis/r/tests/testthat/test-SOMASparseNDArray.R @@ -1,3 +1,4 @@ + test_that("SOMASparseNDArray creation", { skip_if(!extended_tests()) uri <- tempfile(pattern="sparse-ndarray") @@ -96,6 +97,105 @@ test_that("SOMASparseNDArray creation", { }) +test_that("SOMASparseNDArray write COO assertions", { + skip_if(!extended_tests()) + uri <- tempfile(pattern = "sparse-ndarray-coo") + shape <- c(10L, 10L) + ndarray <- SOMASparseNDArrayCreate(uri, arrow::int32(), shape = shape) + + expect_s3_class(ndarray, 'SOMASparseNDArray') + expect_equal(ndarray$ndim(), 2L) + mat <- create_sparse_matrix_with_int_dims(10L, 10L) + df <- data.frame( + soma_dim_0 = mat@i, + soma_dim_1 = mat@j, + soma_data = as.integer(mat@x) + ) + + ndarray$reopen("WRITE") + expect_invisible(ndarray$.write_coordinates(df)) + ndarray$close() + + # Test write with Table + tbl <- arrow::as_arrow_table(df) + ndarray <- SOMASparseNDArrayCreate( + tempfile(pattern = "sparse-ndarray-coo-table"), + type = tbl$soma_data$type, + shape = shape + ) + expect_invisible(ndarray$.write_coordinates(tbl)) + ndarray$close() + + # Test write unnamed data frame + udf <- df + names(udf) <- NULL + ndarray <- SOMASparseNDArrayCreate( + uri = tempfile(pattern = "sparse-ndarray-coo-unnamed"), + type = arrow::int32(), + shape = shape + ) + expect_invisible(ndarray$.write_coordinates(udf)) + ndarray$close() + + # Test argument assertions + arr <- SOMASparseNDArrayCreate(tempfile(), arrow::int32(), shape = shape) + on.exit(arr$close(), add = TRUE, after = FALSE) + expect_error( + arr$.write_coordinates(mat), + regexp = "'values' must be a data frame or Arrow Table" + ) + expect_error( + arr$.write_coordinates(mtcars), + regexp = "'values' must have one column for each dimension and the data" + ) + + sdf <- df + while (identical(names(sdf), c(ndarray$dimnames(), ndarray$attrnames()))) { + sdf <- sdf[, sample(names(sdf)), drop = FALSE] + } + expect_error( + arr$.write_coordinates(sdf), + regexp = "'values' must be named with the dimension and attribute labels" + ) + + # Test dimension assertions + ddf <- df + ddf$soma_dim_0 <- ddf$soma_dim_0 + 0.1 + expect_error( + arr$.write_coordinates(ddf), + regexp = "All dimension columns must be integerish" + ) + + ndf <- df + ndf$soma_dim_0 <- -ndf$soma_dim_0 + expect_error( + arr$.write_coordinates(ndf), + regexp = "Dimension columns cannot contain negative values" + ) + + bdf <- df + bdf$soma_dim_0 <- bdf$soma_dim_0 * 1000 + expect_error( + arr$.write_coordinates(bdf), + regexp = "Dimension columns cannot exceed the shape of the array" + ) + + # Test attribute assertions + ldf <- df + ldf$soma_data <- TRUE + expect_error( + arr$.write_coordinates(ldf), + regexp = "The data column must be of type 'integer'" + ) + + fdf <- df + fdf$soma_data <- fdf$soma_data + 0.1 + expect_error( + arr$.write_coordinates(fdf), + regexp = "The data column must be of type 'integer'" + ) +}) + test_that("SOMASparseNDArray read_sparse_matrix", { skip_if(!extended_tests()) uri <- tempfile(pattern="sparse-ndarray-3") @@ -164,6 +264,116 @@ test_that("SOMASparseNDArray read_sparse_matrix_zero_based", { ndarray$close() }) +test_that("SOMASparseNDArray read coordinates", { + skip_if(!extended_tests()) + uri <- tempfile(pattern = "sparse-ndarray") + nrows <- 100L + ncols <- 20L + + ndarray <- create_and_populate_sparse_nd_array( + uri = uri, + mode = "READ", + nrows = nrows, + ncols = ncols, + seed = 42L + ) + on.exit(ndarray$close(), add = TRUE, after = FALSE) + + expect_identical(as.integer(ndarray$shape()), c(nrows, ncols)) + expect_s4_class(mat <- ndarray$read()$sparse_matrix()$concat(), "dgTMatrix") + expect_identical(dim(mat), c(nrows, ncols)) + + # Note: slices `:` yield integers, not numerics + # Note: #L is integer, # on its own is numeric + cases <- list( + # Test one dim NULL + "dim0 null, dim1 slice" = list(soma_dim_0 = NULL, soma_dim_1 = 0:9), + "dim0 null, dim1 slice" = list(soma_dim_0 = 35:45, soma_dim_1 = NULL), + "dim0 null, dim1 coords" = list( + soma_dim_0 = NULL, + soma_dim_1 = c(0L, 5L, 10L) + ), + "dim0 coords, dim1 null" = list(soma_dim_0 = c(72, 83), soma_dim_1 = NULL), + # Test both dims null + "dim0 null, dim1 null" = list(soma_dim_0 = NULL, soma_dim_1 = NULL), + # Test both dims provided + "dim0 coords, dim1 coords" = list( + soma_dim_0 = c(72, 83), + soma_dim_1 = c(0L, 5L, 10L) + ), + "dim0 slice, dim1 slice" = list(soma_dim_0 = 35:45, soma_dim_1 = 0:9), + "dim0 coords, dim1 slice" = list(soma_dim_0 = c(72, 83), soma_dim_1 = 0:9), + "dim0 slice, dim0 coords" = list( + soma_dim_0 = 35:45, + soma_dim_1 = c(0L, 5L, 10L) + ), + # Test one dim missing + "dim0 missing, dim1 slice" = list(soma_dim_1 = 0:9), + "dim0 missing, dim1 coords" = list(soma_dim_1 = c(0L, 5L, 10L)), + "dim0 missing, dim1 null" = list(soma_dim_1 = NULL), + "dim0 slice, dim1 missing" = list(soma_dim_0 = 35:45), + "dim0 coords, dim1 missing" = list(soma_dim_0 = c(72, 83)), + "dim0 coords, dim1 null" = list(soma_dim_0 = NULL), + # Test zero-pull + "zero-pull" = list(soma_dim_0 = c(0, 3), soma_dim_1 = c(0L, 9L)) + ) + for (i in seq_along(cases)) { + coords <- cases[[i]] + label <- names(cases)[i] + expect_s3_class(tbl <- ndarray$read(coords)$tables()$concat(), "Table") + ii <- if (is.null(coords$soma_dim_0)) { + TRUE + } else { + mat@i %in% coords$soma_dim_0 + } + jj <- if (is.null(coords$soma_dim_1)) { + TRUE + } else { + mat@j %in% coords$soma_dim_1 + } + nr <- ifelse(isTRUE(ii) && isTRUE(jj), yes = length(mat@x), no = sum(ii & jj)) + expect_identical(nrow(tbl), nr, label = label) + } + + # Test assertions + list_cases <- list(TRUE, "tomato", 1L, 1.1, bit64::as.integer64(1L), list()) + for (coords in list_cases) { + expect_error(ndarray$read(coords), regexp = "'coords' must be a list") + } + + intgerish_cases <- list( + list(TRUE), + list("tomato"), + list(1.1), + list(NA_integer_), + list(NA_real_), + list(bit64::NA_integer64_), + list(Inf), + list(-4), + list(factor(letters[1:10])), + list(matrix(1:10, ncol = 1:10)), + list(array(1:10)) + ) + for (coords in intgerish_cases) { + expect_error( + ndarray$read(coords), + regexp = "'coords' must be a list integerish vectors" + ) + } + + names_cases <- list( + list(1:3, 1:5, 1:10), + list(tomato = 1:10), + list(soma_dim_0 = 1:10, tomato = 1:10) + ) + for (coords in names_cases) { + expect_error( + ndarray$read(coords), + regexp = "'coords' if unnamed must have length of dim names, else if named names must match dim names" + ) + } +}) + test_that("SOMASparseNDArray creation with duplicates", { skip_if(!extended_tests()) uri <- tempfile(pattern="sparse-ndarray") @@ -501,10 +711,10 @@ test_that("SOMASparseNDArray with failed bounding box", { coo <- data.frame( i = bit64::as.integer64(slot(mat, "i")), j = bit64::as.integer64(slot(mat, "j")), - x = slot(mat, "x") + x = as.integer(slot(mat, "x")) ) names(coo) <- c(ndarray$dimnames(), ndarray$attrnames()) - ndarray$.__enclos_env__$private$.write_coo_dataframe(coo) + expect_invisible(ndarray$.write_coordinates(coo)) ndarray$close() @@ -586,11 +796,11 @@ test_that("SOMASparseNDArray bounding box implicitly-stored values", { ranges <- bit64::integer64(2L) for (i in seq_along(ranges)) { s <- c('i', 'j')[i] - ranges[i] <- bit64::as.integer64(max(range(slot(mat, s)))) + ranges[i] <- max(range(slot(mat, s))) } - expect_equal(ndarray$non_empty_domain(), ranges) + expect_equal(bit64::as.integer64(ndarray$non_empty_domain(max_only=TRUE)), ranges) expect_true(all( - ndarray$non_empty_domain() < suppressWarnings( + ndarray$non_empty_domain(max_only=TRUE) < suppressWarnings( ndarray$used_shape(simplify = TRUE), classes = "deprecatedWarning" ) diff --git a/apis/r/tests/testthat/test-Timestamps.R b/apis/r/tests/testthat/test-Timestamps.R index edfc8aa5a9..27d7b496ed 100644 --- a/apis/r/tests/testthat/test-Timestamps.R +++ b/apis/r/tests/testthat/test-Timestamps.R @@ -8,7 +8,7 @@ test_that("SOMADataFrame", { ## create at t = 1 ts1 <- as.POSIXct(1, tz = "UTC", origin = "1970-01-01") - sdf <- tiledbsoma::SOMADataFrameCreate(uri, sch, tiledb_timestamp = ts1) + sdf <- tiledbsoma::SOMADataFrameCreate(uri, sch, tiledb_timestamp = ts1, domain = list(soma_joinid=c(0, 999))) ## write part1 at t = 2 dat2 <- arrow::arrow_table(soma_joinid = bit64::as.integer64(1L:5L), diff --git a/apis/r/tests/testthat/test-query-condition.R b/apis/r/tests/testthat/test-query-condition.R new file mode 100644 index 0000000000..7331fe02a5 --- /dev/null +++ b/apis/r/tests/testthat/test-query-condition.R @@ -0,0 +1,314 @@ +test_that("DataFrame Factory", { + uri <- tempfile() + if (dir.exists(uri)) unlink(uri, recursive=TRUE) + + ctx <- soma_context() + + sch <- arrow::schema( + arrow::field("soma_joinid", arrow::int64()), + arrow::field("int8", arrow::int8()), + arrow::field("int16", arrow::int16()), + arrow::field("int32", arrow::int32()), + arrow::field("int64", arrow::int64()), + arrow::field("uint8", arrow::uint8()), + arrow::field("uint16", arrow::uint16()), + arrow::field("uint32", arrow::uint32()), + arrow::field("uint64", arrow::uint64()), + arrow::field("string", arrow::string()), + # Unlike in pyarrow there is no arrow::large_string + arrow::field("utf8", arrow::utf8()), + arrow::field("large_utf8", arrow::large_utf8()), + arrow::field("enum", + arrow::dictionary( + index_type = arrow::int8(), + value_type = arrow::utf8(), + ordered = TRUE)), + arrow::field("float32", arrow::float32()), + arrow::field("float64", arrow::float64()), + # TODO: for a follow-up PR + arrow::field("timestamp_s", arrow::timestamp(unit="s")), + arrow::field("timestamp_ms", arrow::timestamp(unit="ms")), + arrow::field("timestamp_us", arrow::timestamp(unit="us")), + arrow::field("timestamp_ns", arrow::timestamp(unit="ns")) + # Not supported in libtiledbsoma + # arrow::field("datetime_day", arrow::date32()) + ) + + sdf <- SOMADataFrameCreate( + uri, + sch, + index_column_names = "soma_joinid", + domain = list(soma_joinid = c(0, 999)) + ) + + expect_true(sdf$exists()) + expect_true(dir.exists(uri)) + + tbl <- arrow::arrow_table( + soma_joinid = 1L:10L, + int8 = -11L:-20L, + int16 = -201L:-210L, + int32 = -301L:-310L, + int64 = -401L:-410L, + uint8 = 11L:20L, + uint16 = 201L:210L, + uint32 = 301L:310L, + uint64 = 401L:410L, + string = c("apple", "ball", "cat", "dog", "egg", "fig", "goose", "hay", "ice", "jam"), + utf8 = c("apple", "ball", "cat", "dog", "egg", "fig", "goose", "hay", "ice", "jam"), + large_utf8 = c("APPLE", "BALL", "CAT", "DOG", "EGG", "FIG", "GOOSE", "HAY", "ICE", "JAM"), + enum = factor( + c("red", "yellow", "green", "red", "red", "red", "yellow", "green", "red", "green"), + levels = c("red", "yellow", "green")), + float32 = 1.5:10.5, + float64 = 11.5:20.5, + # TODO: for a follow-up PR + timestamp_s = as.POSIXct(as.numeric(1*3600 + 1:10), tz="UTC"), + timestamp_ms = as.POSIXct(as.numeric(2*3600 + 1:10), tz="UTC"), + timestamp_us = as.POSIXct(as.numeric(3*3600 + 1:10), tz="UTC"), + timestamp_ns = as.POSIXct(as.numeric(4*3600 + 1:10), tz="UTC"), + schema = sch) + sdf$write(tbl) + sdf$close() + + sdf$reopen("READ") + + good_cases <- list( + 'soma_joinid > 5' = function(df) { + expect_equal(df$soma_joinid, 6:10) + expect_equal(df$int32, -306:-310) + }, + 'soma_joinid == 10' = function(df) { + expect_equal(df$soma_joinid, 10) + expect_equal(df$int32, -310) + expect_equal(as.character(df$enum), c("green")) + }, + 'soma_joinid == 10.0' = function(df) { + expect_equal(df$soma_joinid, 10) + expect_equal(df$int32, -310) + expect_equal(as.character(df$enum), c("green")) + }, + 'soma_joinid > 4 && soma_joinid < 8' = function(df) { + expect_equal(df$soma_joinid, 5:7) + expect_equal(df$string, c("egg", "fig", "goose")) + expect_equal(df$large_utf8, c("EGG", "FIG", "GOOSE")) + }, + 'soma_joinid < 4 || soma_joinid > 8' = function(df) { + expect_equal(df$soma_joinid, c(1:3, 9:10)) + }, + '(soma_joinid < 4) || (soma_joinid > 8)' = function(df) { + expect_equal(df$soma_joinid, c(1:3, 9:10)) + }, + + 'int8 == 8' = function(df) { + expect_equal(length(df$soma_joinid), 0) + }, + 'int8 == -12' = function(df) { + expect_equal(df$soma_joinid, c(2)) + }, + 'uint8 == 12' = function(df) { + expect_equal(df$soma_joinid, c(2)) + }, + 'uint8 == 268' = function(df) { + # 12+256 + expect_equal(df$soma_joinid, c(2)) + }, + 'uint8 == -244' = function(df) { + # 12-256 + expect_equal(df$soma_joinid, c(2)) + }, + 'int16 > -203' = function(df) { + expect_equal(df$soma_joinid, c(1, 2)) + }, + 'uint16 < 204' = function(df) { + expect_equal(df$soma_joinid, c(1, 2, 3)) + }, + 'int32 > -303' = function(df) { + expect_equal(df$soma_joinid, c(1, 2)) + }, + 'uint32 < 304' = function(df) { + expect_equal(df$soma_joinid, c(1, 2, 3)) + }, + 'int64 > -403' = function(df) { + expect_equal(df$soma_joinid, c(1, 2)) + }, + 'uint64 < 404' = function(df) { + expect_equal(df$soma_joinid, c(1, 2, 3)) + }, + + 'float32 < 4.5' = function(df) { + expect_equal(df$soma_joinid, c(1, 2, 3)) + }, + 'float64 < 14.5' = function(df) { + expect_equal(df$soma_joinid, c(1, 2, 3)) + }, + + 'string == "dog"' = function(df) { + expect_equal(df$soma_joinid, c(4)) + }, + 'string == "cat" || string == "dog"' = function(df) { + expect_equal(df$soma_joinid, c(3, 4)) + }, + '(string == "cat") || (string == "dog")' = function(df) { + expect_equal(df$soma_joinid, c(3, 4)) + }, + "string == 'cat' || string == 'dog'" = function(df) { + expect_equal(df$soma_joinid, c(3, 4)) + }, + "string == 'cat' || string == 'yak'" = function(df) { + expect_equal(df$soma_joinid, c(3)) + }, + 'string %in% c("fig", "dog")' = function(df) { + expect_equal(df$soma_joinid, c(4, 6)) + }, + 'string %nin% c("fig", "dog")' = function(df) { + expect_equal(df$soma_joinid, c(1, 2, 3, 5, 7, 8, 9, 10)) + }, + + 'utf8 == "dog"' = function(df) { + expect_equal(df$soma_joinid, c(4)) + }, + 'utf8 == "cat" || utf8 == "dog"' = function(df) { + expect_equal(df$soma_joinid, c(3, 4)) + }, + "utf8 == 'cat' || utf8 == 'dog'" = function(df) { + expect_equal(df$soma_joinid, c(3, 4)) + }, + "utf8 == 'cat' || utf8 == 'yak'" = function(df) { + expect_equal(df$soma_joinid, c(3)) + }, + 'utf8 %in% c("fig", "dog")' = function(df) { + expect_equal(df$soma_joinid, c(4, 6)) + }, + 'utf8 %nin% c("fig", "dog")' = function(df) { + expect_equal(df$soma_joinid, c(1, 2, 3, 5, 7, 8, 9, 10)) + }, + + 'large_utf8 == "DOG"' = function(df) { + expect_equal(df$soma_joinid, c(4)) + }, + 'large_utf8 == "CAT" || large_utf8 == "DOG"' = function(df) { + expect_equal(df$soma_joinid, c(3, 4)) + }, + "large_utf8 == 'CAT' || large_utf8 == 'DOG'" = function(df) { + expect_equal(df$soma_joinid, c(3, 4)) + }, + "large_utf8 == 'CAT' || large_utf8 == 'YAK'" = function(df) { + expect_equal(df$soma_joinid, c(3)) + }, + 'large_utf8 %in% c("FIG", "DOG")' = function(df) { + expect_equal(df$soma_joinid, c(4, 6)) + }, + 'large_utf8 %nin% c("FIG", "DOG")' = function(df) { + expect_equal(df$soma_joinid, c(1, 2, 3, 5, 7, 8, 9, 10)) + }, + + 'enum == "red"' = function(df) { + expect_equal(df$soma_joinid, c(1, 4, 5, 6, 9)) + }, + 'enum != "red"' = function(df) { + expect_equal(df$soma_joinid, c(2, 3, 7, 8, 10)) + }, + 'enum == "orange"' = function(df) { + expect_equal(length(df$soma_joinid), 0) + }, + 'enum != "orange"' = function(df) { + expect_equal(df$soma_joinid, 1:10) + }, + 'enum %in% c("red", "green")' = function(df) { + expect_equal(df$soma_joinid, c(1, 3, 4, 5, 6, 8, 9, 10)) + }, + 'enum %nin% c("red", "green")' = function(df) { + expect_equal(df$soma_joinid, c(2, 7)) + }, + 'enum %in% c("orange", "green")' = function(df) { + expect_equal(df$soma_joinid, c(3, 8, 10)) + }, + 'enum %nin% c("orange", "green")' = function(df) { + expect_equal(df$soma_joinid, c(1, 2, 4, 5, 6, 7, 9)) + }, + 'enum %in% c("orange", "purple")' = function(df) { + expect_equal(length(df$soma_joinid), 0) + }, + 'enum %nin% c("orange", "purple")' = function(df) { + expect_equal(df$soma_joinid, 1:10) + }, + + 'uint8 <= 14 && uint16 == 202 || uint32 == 308' = function(df) { + expect_equal(df$soma_joinid, c(2, 8)) + }, + '(uint8 <= 14 && uint16 == 202) || uint32 == 308' = function(df) { + expect_equal(df$soma_joinid, c(2, 8)) + }, + 'uint8 <= 14 && (uint16 == 202 || uint32 == 308)' = function(df) { + expect_equal(df$soma_joinid, c(2)) + }, + + 'uint32 == 308 || uint8 <= 14 && uint16 == 202' = function(df) { + expect_equal(df$soma_joinid, c(2, 8)) + }, + 'uint32 == 308 || (uint8 <= 14 && uint16 == 202)' = function(df) { + expect_equal(df$soma_joinid, c(2, 8)) + }, + '(uint32 == 308 || uint8 <= 14) && uint16 == 202' = function(df) { + expect_equal(df$soma_joinid, c(2)) + }, + + # TODO: for a follow-up PR + 'timestamp_s < "1970-01-01 01:00:05 UTC"' = function(df) { + expect_equal(df$soma_joinid, 1:4) + }, + + 'timestamp_ms < "1970-01-01 02:00:05 UTC"' = function(df) { + expect_equal(df$soma_joinid, 1:4) + }, + + 'timestamp_us < "1970-01-01 03:00:05 UTC"' = function(df) { + expect_equal(df$soma_joinid, 1:4) + }, + + 'timestamp_ns < "1970-01-01 04:00:05 UTC"' = function(df) { + expect_equal(df$soma_joinid, 1:4) + } + + # timestamp_s timestamp_ms timestamp_us timestamp_ns + # 1970-01-01 01:00:01 1970-01-01 02:00:01 1970-01-01 03:00:01 1970-01-01 04:00:01 + # 1970-01-01 01:00:02 1970-01-01 02:00:02 1970-01-01 03:00:02 1970-01-01 04:00:02 + # 1970-01-01 01:00:03 1970-01-01 02:00:03 1970-01-01 03:00:03 1970-01-01 04:00:03 + # 1970-01-01 01:00:04 1970-01-01 02:00:04 1970-01-01 03:00:04 1970-01-01 04:00:04 + # 1970-01-01 01:00:05 1970-01-01 02:00:05 1970-01-01 03:00:05 1970-01-01 04:00:05 + # 1970-01-01 01:00:06 1970-01-01 02:00:06 1970-01-01 03:00:06 1970-01-01 04:00:06 + # 1970-01-01 01:00:07 1970-01-01 02:00:07 1970-01-01 03:00:07 1970-01-01 04:00:07 + # 1970-01-01 01:00:08 1970-01-01 02:00:08 1970-01-01 03:00:08 1970-01-01 04:00:08 + # 1970-01-01 01:00:09 1970-01-01 02:00:09 1970-01-01 03:00:09 1970-01-01 04:00:09 + # 1970-01-01 01:00:10 1970-01-01 02:00:10 1970-01-01 03:00:10 1970-01-01 04:00:10 + + ) + + for (query_string in names(good_cases)) { + tbl <- sdf$read(value_filter = query_string)$concat() + df <- as.data.frame(tbl) + # Call the validator + good_cases[[query_string]](df) + } + + bad_cases <- list( + '', + ' ', + 'nonesuch < 10', + 'soma_joinid << 10', + '(soma_joinid < 10', + 'soma_joinid', + 'soma_joinid ==', + 'soma_joinid && int8', + 'soma_joinid ==1 &&', + 'soma_joinid < 4 or soma_joinid > 8', + 'soma_joinid == "ten"' + ) + + for (query_string in names(bad_cases)) { + expect_error(sdf$read(value_filter = query_string)$concat()) + } + + sdf$close() +}) diff --git a/apis/r/tests/testthat/test-r-arrow-types.R b/apis/r/tests/testthat/test-r-arrow-types.R new file mode 100644 index 0000000000..95b5e12617 --- /dev/null +++ b/apis/r/tests/testthat/test-r-arrow-types.R @@ -0,0 +1,93 @@ +test_that("Arrow to R types: data type", { + skip_if(!extended_tests()) + skip_if_not_installed('arrow') + + ints <- apply( + expand.grid(c('', 'u'), 'int', c('8', '16', '32')), + MARGIN = 1L, + FUN = paste, + collapse = '' + ) + for (i in c(ints, 'dictionary')) { + f <- get(i, envir = asNamespace('arrow')) + expect_type(rt <- r_type_from_arrow_type(f()), 'character') + expect_length(rt, 1L) + expect_null(names(rt)) + expect_identical( + rt, + 'integer', + label = sprintf('r_type_from_arrow_type(arrow::%s())', i) + ) + } + + dbls <- c('int64', 'uint64', 'date32', 'timestamp' ,'float', 'float32') + for (i in dbls) { + f <- get(i, envir = asNamespace('arrow')) + expect_type(rt <- r_type_from_arrow_type(f()), 'character') + expect_length(rt, 1L) + expect_null(names(rt)) + expect_identical( + rt, + 'double', + label = sprintf('r_type_from_arrow_type(arrow::%s())', i) + ) + } + + for (i in c('bool', 'boolean')) { + f <- get(i, envir = asNamespace('arrow')) + expect_type(rt <- r_type_from_arrow_type(f()), 'character') + expect_length(rt, 1L) + expect_null(names(rt)) + expect_identical( + rt, + 'logical', + label = sprintf('r_type_from_arrow_type(arrow::%s())', i) + ) + } + for (i in c('utf8', 'string', 'large_utf8')) { + f <- get(i, envir = asNamespace('arrow')) + expect_type(rt <- r_type_from_arrow_type(f()), 'character') + expect_length(rt, 1L) + expect_null(names(rt)) + expect_identical( + rt, + 'character', + label = sprintf('r_type_from_arrow_type(arrow::%s())', i) + ) + } +}) + +test_that("Arrow to R types: field", { + skip_if(!extended_tests()) + skip_if_not_installed('arrow') + + field <- arrow::field(name = random_name(), type = arrow::int8()) + expect_type(rt <- r_type_from_arrow_type(field), 'character') + expect_length(rt, 1L) + expect_named(rt, field$name) + expect_equivalent(rt, 'integer') +}) + +test_that("Arrow to R types: schema", { + skip_if(!extended_tests()) + + asch <- create_arrow_schema() + expect_type(rt <- r_type_from_arrow_type(asch), 'character') + expect_length(rt, length(asch)) + expect_named(rt, asch$names) + for (fn in names(rt)) { + et <- switch( + EXPR = fn, + int_column = 'integer', + soma_joinid = 'double', + float_column = 'double', + string_column = 'character' + ) + expect_equivalent( + rt[fn], + et, + label = sprintf('r_type_from_arrow_type(schema[[%s]])', fn), + expected.label = dQuote(et, FALSE) + ) + } +}) diff --git a/apis/r/tests/testthat/test-reopen.R b/apis/r/tests/testthat/test-reopen.R index a879471818..6f162b18d7 100644 --- a/apis/r/tests/testthat/test-reopen.R +++ b/apis/r/tests/testthat/test-reopen.R @@ -171,7 +171,8 @@ test_that("`reopen()` works on nested collections", { soma_joinid = bit64::integer64(), int = integer() )), - index_column_names = "soma_joinid" + index_column_names = "soma_joinid", + domain = list(soma_joinid = c(0, 999)) ) expect_length(col$names(), 4L) diff --git a/apis/r/tests/testthat/test-shape.R b/apis/r/tests/testthat/test-shape.R index 21be77e62c..e4a11cc9f0 100644 --- a/apis/r/tests/testthat/test-shape.R +++ b/apis/r/tests/testthat/test-shape.R @@ -24,266 +24,237 @@ test_that("SOMADataFrame shape", { for (i in seq_along(index_column_name_choices)) { index_column_names <- index_column_name_choices[[i]] - for (use_domain_at_create in c(FALSE, TRUE)) { + uri <- withr::local_tempdir("soma-dataframe-shape") - uri <- withr::local_tempdir("soma-dataframe-shape") + # Create + if (dir.exists(uri)) unlink(uri, recursive=TRUE) - # Create - if (dir.exists(uri)) unlink(uri, recursive=TRUE) + domain_for_create <- domain_at_create_choices[[i]] - domain_for_create <- NULL - if (use_domain_at_create) { - domain_for_create <- domain_at_create_choices[[i]] - } + sdf <- SOMADataFrameCreate( + uri, + asch, + index_column_names = index_column_names, + domain = domain_for_create) - sdf <- SOMADataFrameCreate( - uri, - asch, - index_column_names = index_column_names, - domain = domain_for_create) + expect_true(sdf$exists()) + expect_true(dir.exists(uri)) - expect_true(sdf$exists()) - expect_true(dir.exists(uri)) + # Write + tbl0 <- arrow::arrow_table(int_column = 1L:4L, + soma_joinid = 1L:4L, + float_column = 1.1:4.1, + string_column = c("apple", "ball", "cat", "dog"), + schema = asch) - # Write - tbl0 <- arrow::arrow_table(int_column = 1L:4L, - soma_joinid = 1L:4L, - float_column = 1.1:4.1, - string_column = c("apple", "ball", "cat", "dog"), - schema = asch) + sdf$write(tbl0) + sdf$close() - sdf$write(tbl0) - sdf$close() + sdf <- SOMADataFrameOpen(uri) - sdf <- SOMADataFrameOpen(uri) + # Check shape and maxshape et al. + if (!.new_shape_feature_flag_is_enabled()) { + expect_false(sdf$tiledbsoma_has_upgraded_domain()) + } else { + expect_true(sdf$tiledbsoma_has_upgraded_domain()) + } + expect_error(sdf$shape(), class = "notYetImplementedError") + expect_error(sdf$maxshape(), class = "notYetImplementedError") + + # Not implemented this way per + # https://github.com/single-cell-data/TileDB-SOMA/pull/2953#discussion_r1746125089 + # sjid_shape <- sdf$.maybe_soma_joinid_shape() + # sjid_maxshape <- sdf$.maybe_soma_joinid_maxshape() + soma_context <- soma_context() + sjid_shape <- maybe_soma_joinid_shape(sdf$uri, soma_context) + sjid_maxshape <- maybe_soma_joinid_maxshape(sdf$uri, soma_context) + + if ("soma_joinid" %in% index_column_names) { + # More testing to come on + # https://github.com/single-cell-data/TileDB-SOMA/issues/2407 + expect_false(rlang::is_na(sjid_shape)) + expect_false(rlang::is_na(sjid_maxshape)) + } else { + expect_true(rlang::is_na(sjid_shape)) + expect_true(rlang::is_na(sjid_maxshape)) + } - # Check shape and maxshape et al. - if (!.new_shape_feature_flag_is_enabled()) { - expect_false(sdf$tiledbsoma_has_upgraded_domain()) - } else { - expect_true(sdf$tiledbsoma_has_upgraded_domain()) - } - expect_error(sdf$shape(), class = "notYetImplementedError") - expect_error(sdf$maxshape(), class = "notYetImplementedError") - - # Not implemented this way per - # https://github.com/single-cell-data/TileDB-SOMA/pull/2953#discussion_r1746125089 - # sjid_shape <- sdf$.maybe_soma_joinid_shape() - # sjid_maxshape <- sdf$.maybe_soma_joinid_maxshape() - soma_context <- soma_context() - sjid_shape <- maybe_soma_joinid_shape(sdf$uri, soma_context) - sjid_maxshape <- maybe_soma_joinid_maxshape(sdf$uri, soma_context) - - if ("soma_joinid" %in% index_column_names) { - # More testing to come on - # https://github.com/single-cell-data/TileDB-SOMA/issues/2407 - expect_false(rlang::is_na(sjid_shape)) - expect_false(rlang::is_na(sjid_maxshape)) - } else { - expect_true(rlang::is_na(sjid_shape)) - expect_true(rlang::is_na(sjid_maxshape)) - } + # Check has_upgraded_domain + if (!.new_shape_feature_flag_is_enabled()) { + expect_false(sdf$tiledbsoma_has_upgraded_domain()) + } else { + expect_true(sdf$tiledbsoma_has_upgraded_domain()) + } + + # Check domain and maxdomain + dom <- sdf$domain() + mxd <- sdf$maxdomain() + + # First check names + expect_equal(names(dom), index_column_names) + expect_equal(names(mxd), index_column_names) + + # Then check all slots are pairs + for (name in names(dom)) { + expect_length(dom[[name]], 2L) + expect_length(mxd[[name]], 2L) + } + + # Then check contents + + # Old shape/domainishes (without core current domain) for non-string dims: + # * There is no core current domain + # * Expect domain == maxdomain + # * If they asked for NULL: both should be huge (near min/max for datatype) + # * If they asked for something specific: they should get it + # + # New shape/domainishes (with core current domain) for non-string dims: + # * Maxdomain should be huge (near min/max for datatype) + # * If they asked for NULL: domain should be the same as maxdomain + # * If they asked for a specific domain: they should get it + # + # Old shape/domainishes (without core current domain) for string dims: + # * There is no core current domain + # * Expect domain == maxdomain + # * Core domain for strings is always ("", "") + # + # New shape/domainishes (with core current domain) for string dims: + # * Core domain (soma maxdomain) for strings is always ("", "") + # * Core current domain (soma domain) for strings: + # o If they asked for NULL: expect ("", "") + # o If they asked for something specific: they should get it + + if ("soma_joinid" %in% index_column_names) { + sjid_dom <- dom[["soma_joinid"]] + sjid_mxd <- mxd[["soma_joinid"]] + sjid_dfc <- domain_for_create[["soma_joinid"]] - # Check has_upgraded_domain if (!.new_shape_feature_flag_is_enabled()) { - expect_false(sdf$tiledbsoma_has_upgraded_domain()) - } else { - expect_true(sdf$tiledbsoma_has_upgraded_domain()) + # Old behavior + expect_equal(sjid_dom, sjid_mxd) } - # Check domain and maxdomain - dom <- sdf$domain() - mxd <- sdf$maxdomain() + # Not: expect_equal(sjid_dom, bit64::as.integer64(sjid_dfc)) The + # soma_joinid dim is always of type int64. Everything coming back + # from libtiledbsoma, through C nanoarrow, through the R arrow + # package, to Arrow RecordBatch, holds true to that. But the final + # as.list() converts the domain to regular integer. This is a feature + # TBH: suppressable with `op <- options(arrow.int64_downcast = + # FALSE)`. The maxdomainis likely to be in the 2**63 range + # but the domain is likely to be ordinary-sized numbers in the + # thousands or millions. Users are likely to prefer these + # being downcast to regular R integers. + expect_equal(sjid_dom, sjid_dfc) + } - # First check names - expect_equal(names(dom), index_column_names) - expect_equal(names(mxd), index_column_names) + if ("int_column" %in% index_column_names) { + int_dom <- dom[["int_column"]] + int_mxd <- mxd[["int_column"]] + int_dfc <- domain_for_create[["int_column"]] - # Then check all slots are pairs - for (name in names(dom)) { - expect_length(dom[[name]], 2L) - expect_length(mxd[[name]], 2L) + if (!.new_shape_feature_flag_is_enabled()) { + # Old behavior + expect_equal(int_dom, int_mxd) } - # Then check contents - - # Old shape/domainishes (without core current domain) for non-string dims: - # * There is no core current domain - # * Expect domain == maxdomain - # * If they asked for NULL: both should be huge (near min/max for datatype) - # * If they asked for something specific: they should get it - # - # New shape/domainishes (with core current domain) for non-string dims: - # * Maxdomain should be huge (near min/max for datatype) - # * If they asked for NULL: domain should be the same as maxdomain - # * If they asked for a specific domain: they should get it - # - # Old shape/domainishes (without core current domain) for string dims: - # * There is no core current domain - # * Expect domain == maxdomain - # * Core domain for strings is always ("", "") - # - # New shape/domainishes (with core current domain) for string dims: - # * Core domain (soma maxdomain) for strings is always ("", "") - # * Core current domain (soma domain) for strings: - # o If they asked for NULL: expect ("", "") - # o If they asked for something specific: they should get it - - if ("soma_joinid" %in% index_column_names) { - sjid_dom <- dom[["soma_joinid"]] - sjid_mxd <- mxd[["soma_joinid"]] - sjid_dfc <- domain_for_create[["soma_joinid"]] - - if (!.new_shape_feature_flag_is_enabled()) { - # Old behavior - expect_equal(sjid_dom, sjid_mxd) - } + expect_equal(int_dom, int_dfc) - if (!use_domain_at_create) { - expect_equal(sjid_dom[[1]], 0) - expect_equal(sjid_mxd[[1]], 0) - # This is a really big number in the ballpark of 2**63; its exact - # value is unimportant. - expect_true(sjid_dom[[2]] > bit64::as.integer64(10000000000)) - expect_true(sjid_mxd[[2]] > bit64::as.integer64(10000000000)) - } else { - # Not: expect_equal(sjid_dom, bit64::as.integer64(sjid_dfc)) The - # soma_joinid dim is always of type int64. Everything coming back - # from libtiledbsoma, through C nanoarrow, through the R arrow - # package, to Arrow RecordBatch, holds true to that. But the final - # as.list() converts the domain to regular integer. This is a feature - # TBH: suppressable with `op <- options(arrow.int64_downcast = - # FALSE)`. The maxdomainis likely to be in the 2**63 range - # but the domain is likely to be ordinary-sized numbers in the - # thousands or millions. Users are likely to prefer these - # being downcast to regular R integers. - expect_equal(sjid_dom, sjid_dfc) - } + if (!.new_shape_feature_flag_is_enabled()) { + expect_equal(int_mxd, int_dfc) + } else { + expect_true(int_mxd[[1]] < -2000000000) + expect_true(int_mxd[[2]] > 2000000000) } + } - if ("int_column" %in% index_column_names) { - int_dom <- dom[["int_column"]] - int_mxd <- mxd[["int_column"]] - int_dfc <- domain_for_create[["int_column"]] - - if (!.new_shape_feature_flag_is_enabled()) { - # Old behavior - expect_equal(int_dom, int_mxd) - } + if ("string_column" %in% index_column_names) { + str_dom <- dom[["string_column"]] + str_mxd <- mxd[["string_column"]] + str_dfc <- domain_for_create[["string_column"]] - if (!use_domain_at_create) { - expect_true(int_dom[[1]] < -2000000000) - expect_true(int_dom[[2]] > 2000000000) - } else { - expect_equal(int_dom, int_dfc) - } + if (!.new_shape_feature_flag_is_enabled()) { + expect_equal(str_dom, c("", "")) + expect_equal(str_mxd, c("", "")) - if (!.new_shape_feature_flag_is_enabled()) { - if (!use_domain_at_create) { - expect_true(int_mxd[[1]] < -2000000000) - expect_true(int_mxd[[2]] > 2000000000) - } else { - expect_equal(int_mxd, int_dfc) - } + } else { + if (is.null(str_dfc)) { + expect_equal(str_dom, c("", "")) } else { - expect_true(int_mxd[[1]] < -2000000000) - expect_true(int_mxd[[2]] > 2000000000) + expect_equal(str_dom, str_dfc) } + expect_equal(str_mxd, c("", "")) } + } - if ("string_column" %in% index_column_names) { - str_dom <- dom[["string_column"]] - str_mxd <- mxd[["string_column"]] - str_dfc <- domain_for_create[["string_column"]] + sdf$close() - if (!.new_shape_feature_flag_is_enabled()) { - expect_equal(str_dom, c("", "")) - expect_equal(str_mxd, c("", "")) + # Test resize for dataframes (more general upgrade_domain to be tested + # separately -- see https://github.com/single-cell-data/TileDB-SOMA/issues/2407) + if (.new_shape_feature_flag_is_enabled()) { + has_soma_joinid_dim <- "soma_joinid" %in% index_column_names + sjid_dfc <- domain_for_create[["soma_joinid"]] - } else { - if (!use_domain_at_create) { - expect_equal(str_dom, c("", "")) - } else { - if (is.null(str_dfc)) { - expect_equal(str_dom, c("", "")) - } else { - expect_equal(str_dom, str_dfc) - } - } - expect_equal(str_mxd, c("", "")) - } + # Test resize down + new_shape <- 0 + sdf <- SOMADataFrameOpen(uri, "WRITE") + if (has_soma_joinid_dim) { + # It's an error to downsize + expect_error(sdf$resize_soma_joinid_shape(new_shape)) + } else { + # There is no problem when soma_joinid is not a dim -- + # sdf$resize_soma_joinid_shape is a no-op in that case + expect_no_condition(sdf$resize_soma_joinid_shape(new_shape)) } - sdf$close() - # Test resize for dataframes (more general upgrade_domain to be tested - # separately -- see https://github.com/single-cell-data/TileDB-SOMA/issues/2407) - if (.new_shape_feature_flag_is_enabled() && use_domain_at_create) { - has_soma_joinid_dim <- "soma_joinid" %in% index_column_names - sjid_dfc <- domain_for_create[["soma_joinid"]] - - # Test resize down - new_shape <- 0 - sdf <- SOMADataFrameOpen(uri, "WRITE") - if (has_soma_joinid_dim) { - # It's an error to downsize - expect_error(sdf$resize_soma_joinid_shape(new_shape)) - } else { - # There is no problem when soma_joinid is not a dim -- - # sdf$resize_soma_joinid_shape is a no-op in that case - expect_no_condition(sdf$resize_soma_joinid_shape(new_shape)) - } - sdf$close() - - # Make sure the failed resize really didn't change the shape - if (has_soma_joinid_dim) { - sdf <- SOMADataFrameOpen(uri, "READ") - expect_equal(sdf$domain()[["soma_joinid"]], sjid_dfc) - sdf$close() - } - - # Test writes out of bounds, before resize - old_shape <- 100 - if (has_soma_joinid_dim) { - old_shape <- domain_for_create[["soma_joinid"]][[2]] + 1 + 100 - } - new_shape <- old_shape + 100 - - tbl1 <- arrow::arrow_table( - int_column = 5L:8L, - soma_joinid = (old_shape+1L):(old_shape+4L), - float_column = 5.1:8.1, - string_column = c("egg", "flag", "geese", "hay"), - schema = asch) - - sdf <- SOMADataFrameOpen(uri, "WRITE") - if (has_soma_joinid_dim) { - expect_error(sdf$write(tbl1)) - } else { - expect_no_condition(sdf$write(tbl1)) - } + # Make sure the failed resize really didn't change the shape + if (has_soma_joinid_dim) { + sdf <- SOMADataFrameOpen(uri, "READ") + expect_equal(sdf$domain()[["soma_joinid"]], sjid_dfc) sdf$close() + } - # Test resize - sdf <- SOMADataFrameOpen(uri, "WRITE") - sdf$resize_soma_joinid_shape(new_shape) - sdf$close(); - - # Test writes out of old bounds, within new bounds, after resize - sdf <- SOMADataFrameOpen(uri, "WRITE") + # Test writes out of bounds, before resize + old_shape <- 100 + if (has_soma_joinid_dim) { + old_shape <- domain_for_create[["soma_joinid"]][[2]] + 1 + 100 + } + new_shape <- old_shape + 100 + + tbl1 <- arrow::arrow_table( + int_column = 5L:8L, + soma_joinid = (old_shape+1L):(old_shape+4L), + float_column = 5.1:8.1, + string_column = c("egg", "flag", "geese", "hay"), + schema = asch) + + sdf <- SOMADataFrameOpen(uri, "WRITE") + if (has_soma_joinid_dim) { + expect_error(sdf$write(tbl1)) + } else { expect_no_condition(sdf$write(tbl1)) - sdf$close(); + } + sdf$close() - # To do: test readback + # Test resize + sdf <- SOMADataFrameOpen(uri, "WRITE") + sdf$resize_soma_joinid_shape(new_shape) + sdf$close(); - rm(tbl1) - } + # Test writes out of old bounds, within new bounds, after resize + sdf <- SOMADataFrameOpen(uri, "WRITE") + expect_no_condition(sdf$write(tbl1)) + sdf$close(); - rm(sdf, tbl0) + # To do: test readback - gc() + rm(tbl1) } - } + + rm(sdf, tbl0) + + gc() +} # Test `domain` assertions uri <- tempfile() @@ -406,8 +377,9 @@ test_that("SOMASparseNDArray shape", { ndarray$close() ndarray <- SOMASparseNDArrayOpen(uri) - ned <- ndarray$non_empty_domain() - expect_equal(ned, c(2,4)) + ned <- ndarray$non_empty_domain(max_only=TRUE) + #expect_equal(ned, c(2,4)) + expect_equal(as.integer(ned), as.integer(c(2,4))) # Test reads out of bounds coords <- list(bit64::as.integer64(c(1,2)), bit64::as.integer64(c(3,4))) @@ -434,7 +406,8 @@ test_that("SOMASparseNDArray shape", { # Test resize up new_shape <- c(500, 600) - expect_no_error(ndarray$resize(new_shape)) + ####expect_no_error(ndarray$resize(new_shape)) + ndarray$resize(new_shape) # Test writes within new bounds soma_dim_0 <- c(200,300) @@ -477,13 +450,17 @@ test_that("SOMADenseNDArray shape", { readback_shape <- ndarray$shape() readback_maxshape <- ndarray$maxshape() expect_equal(length(readback_shape), length(readback_maxshape)) - # TODO: Awaiting core support for new shape in dense arrays. - # https://github.com/single-cell-data/TileDB-SOMA/issues/2955 - #if (.new_shape_feature_flag_is_enabled()) { - # expect_true(all(readback_shape < readback_maxshape)) - #} else { - # expect_true(all(readback_shape == readback_maxshape)) - #} + + if (.new_shape_feature_flag_is_enabled()) { + if (.dense_arrays_can_have_current_domain()) { + expect_true(all(readback_shape < readback_maxshape)) + } else { + expect_true(all(readback_shape == readback_maxshape)) + } + } else { + expect_true(all(readback_shape == readback_maxshape)) + } + expect_true(all(readback_shape == readback_maxshape)) ndarray$close() @@ -495,7 +472,7 @@ test_that("SOMADenseNDArray shape", { ndarray$close() ndarray <- SOMADenseNDArrayOpen(uri) - ned <- ndarray$non_empty_domain() + ned <- ndarray$non_empty_domain(max_only=TRUE) expect_equal(ned, c(99, 199)) # Test reads out of bounds @@ -522,26 +499,29 @@ test_that("SOMADenseNDArray shape", { # Test resize up new_shape <- c(500, 600) - # TODO: Awaiting core support for new shape in dense arrays. - # https://github.com/single-cell-data/TileDB-SOMA/issues/2955 - # expect_no_error(ndarray$resize(new_shape)) - expect_error(ndarray$resize(new_shape)) + if (tiledbsoma:::.dense_arrays_can_have_current_domain()) { + expect_no_error(ndarray$resize(new_shape)) + } else { + expect_error(ndarray$resize(new_shape)) + } # Test writes within new bounds ndarray <- SOMADenseNDArrayOpen(uri, "WRITE") mat <- create_dense_matrix_with_int_dims(300, 400) - # TODO: Awaiting core support for new shape in dense arrays. - # https://github.com/single-cell-data/TileDB-SOMA/issues/2955 - # expect_no_error(ndarray$write(sm)) - expect_error(ndarray$write(sm)) + if (tiledbsoma:::.dense_arrays_can_have_current_domain()) { + expect_no_error(ndarray$write(sm)) + } else { + expect_error(ndarray$write(sm)) + } ndarray$close() ndarray <- SOMADenseNDArrayOpen(uri) coords <- list(bit64::as.integer64(c(101,202)), bit64::as.integer64(c(3,4))) - # TODO: Awaiting core support for new shape in dense arrays. - # https://github.com/single-cell-data/TileDB-SOMA/issues/2955 - # expect_no_error(x <- ndarray$read(coords=coords)$tables()$concat()) - expect_error(x <- ndarray$read(coords=coords)$tables()$concat()) + if (tiledbsoma:::.dense_arrays_can_have_current_domain()) { + expect_no_condition(x <- ndarray$read(coords=coords)$tables()$concat()) + } else { + expect_error(x <- ndarray$read(coords=coords)$tables()$concat()) + } ndarray$close() } diff --git a/apis/r/tests/testthat/test-utils.R b/apis/r/tests/testthat/test-utils.R index f37f8c7092..d697da4586 100644 --- a/apis/r/tests/testthat/test-utils.R +++ b/apis/r/tests/testthat/test-utils.R @@ -29,7 +29,6 @@ test_that("validate read coords", { ) }) - test_that("validate read coords with dimension names", { # assume vector or unnamed list of length 1 corresponds to first dimension @@ -50,7 +49,6 @@ test_that("validate read coords with dimension names", { ) }) - test_that("validate read coords with dimension names and schema", { asch <- create_arrow_schema() @@ -82,3 +80,102 @@ test_that("validate read coords with dimension names and schema", { expect_equal(test_coords$int_column, 1:10) expect_equal(test_coords$soma_joinid, as.integer64(1:10)) }) + +test_that("half-named lists are not treated as named", { + expect_true(is_named_list(list(a=1, b=2))) + expect_false(is_named_list(list(a=1, 2))) + expect_false(is_named_list(list(1, 2))) +}) + +test_that("is_integerish: default", { + expect_true(.is_integerish(vector("integer"))) + expect_true(.is_integerish(vector("numeric"))) + types <- c("logical", "complex", "character", "expression", "list", "raw") + for (tt in types) { + expect_false( + .is_integerish(vector(tt)), + label = sprintf(".is_integerish(vector('%s'))", tt) + ) + } +}) + +test_that("is_integerish: integer64", { + # Basic tests + for (n in 0:3) { + expect_true( + .is_integerish(bit64::integer64(length = n)), + label = sprintf(".is_integerish(integer64(length = %i))", n) + ) + expect_true( + .is_integerish(bit64::integer64(length = n), n = n), + label = sprintf(".is_integerish(integer64(length = %i), n = %i)", n, n) + ) + expect_false( + .is_integerish(bit64::integer64(length = n), n = n + 1L), + label = sprintf(".is_integerish(integer64(length = %i), n = %i)", n, n + 1L) + ) + } + + # Test finiteness + expect_true(.is_integerish(bit64::NA_integer64_)) + expect_true(.is_integerish(bit64::NA_integer64_, finite = FALSE)) + expect_false(.is_integerish(bit64::integer64(), finite = FALSE)) + expect_false(.is_integerish(bit64::NA_integer64_, finite = TRUE)) + + # Test large number + expect_true(.is_integerish(bit64::as.integer64((2 ^ 31) + 1L))) +}) + +test_that("is_integerish: arrow::DataType", { + + ints <- paste0("int", c(8, 16, 32, 64)) + for (it in c(ints, paste0("u", ints))) { + f <- get(it, envir = asNamespace("arrow")) + expect_true( + .is_integerish(f()), + label = sprintf(".is_integerish(arrow::%s())", it) + ) + } + + types <- c( + paste0("float", c("", 16, 32, 64)), + paste0("bool", c("", "ean")), + "string", + paste0(c("", "large_"), "utf8"), + paste0("date", c(32, 64)), + paste0("time", c(32, 64, "stamp")) + ) + for (at in types) { + f <- get(at, envir = asNamespace("arrow")) + expect_false( + .is_integerish(f()), + label = sprintf(".is_integerish(arrow::%s())", at) + ) + } +}) + +test_that("is_integerish: arrow::Field", { + sch <- create_arrow_schema() + for (i in names(sch)) { + label <- sprintf(".is_integerish(sch[['%s']])", i) + switch( + EXPR = i, + int_column = , + soma_joinid = expect_true(.is_integerish(sch[[i]]), label = label), + expect_false(.is_integerish(sch[[i]]), label = label) + ) + } +}) + +test_that("is_integerish: arrow::Arrays", { + tbl <- create_arrow_table() + for (i in names(tbl)) { + label <- sprintf(".is_integerish(tbl[['%s']])", i) + switch( + EXPR = i, + int_column = , + soma_joinid = expect_true(.is_integerish(tbl[[i]]), label = label), + expect_false(.is_integerish(tbl[[i]]), label = label) + ) + } +}) diff --git a/apis/system/tests/test_dataframe_write_python_read_r.py b/apis/system/tests/test_dataframe_write_python_read_r.py index d2ab36deff..d59747aacb 100644 --- a/apis/system/tests/test_dataframe_write_python_read_r.py +++ b/apis/system/tests/test_dataframe_write_python_read_r.py @@ -18,7 +18,9 @@ def dataframe(self): ] ) - soma.DataFrame.create(self.uri, schema=asch, index_column_names=["foo"]).close() + soma.DataFrame.create( + self.uri, schema=asch, index_column_names=["foo"], domain=[[0, 99]] + ).close() pydict = {} pydict["soma_joinid"] = [0, 1, 2, 3, 4] diff --git a/apis/system/tests/test_dataframe_write_r_read_python.py b/apis/system/tests/test_dataframe_write_r_read_python.py index 65c01c14c4..02406b6ad0 100644 --- a/apis/system/tests/test_dataframe_write_r_read_python.py +++ b/apis/system/tests/test_dataframe_write_r_read_python.py @@ -21,7 +21,7 @@ def R_dataframe(self): field("quux", bool()) ) - sdf <- SOMADataFrameCreate("{self.uri}", df_schema, "foo") + sdf <- SOMADataFrameCreate("{self.uri}", df_schema, index_column_names=c("foo"), domain=list(foo=c(0,99))) df <- data.frame( soma_joinid = bit64::as.integer64(c(1,2,3,4,5)), diff --git a/apis/system/tests/test_version_match.py b/apis/system/tests/test_version_match.py index f905fb3ac4..e69de29bb2 100644 --- a/apis/system/tests/test_version_match.py +++ b/apis/system/tests/test_version_match.py @@ -1,22 +0,0 @@ -import tiledb - -from .common import BasePythonRInterop - - -class TestVersionMatch(BasePythonRInterop): - def test_version_match(self): - """ - Verifies that the TileDB version of R and Python match. If they don't, the roundtrip - testing will likely fail. - """ - version = tiledb.libtiledb.version() - major, minor = version[0], version[1] - - self.execute_R_script( - f""" - library("tiledb") - version = tiledb_version() - stopifnot(as.integer(version["major"]) == {major}) - stopifnot(as.integer(version["minor"]) >= {minor}) - """ - ) diff --git a/libtiledbsoma/CMakeLists.txt b/libtiledbsoma/CMakeLists.txt index 5d3d6d90be..a32ef7654e 100644 --- a/libtiledbsoma/CMakeLists.txt +++ b/libtiledbsoma/CMakeLists.txt @@ -39,12 +39,17 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Mo set(TILEDBSOMA_CMAKE_INPUTS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/cmake/inputs") +# Check for and set environment variables. +if (NOT DEFINED TILEDBSOMA_ENABLE_WERROR AND DEFINED $ENV{TILEDBSSOMA_ENABLE_WERROR}) + set(TILEDBSOMA_ENABLE_WERROR "$ENV{TILEDBSOMA_ENABLE_WERROR}") +endif() + # TileDB-SOMA Options option(TILEDBSOMA_BUILD_PYTHON "Build Python API bindings" ON) option(TILEDBSOMA_BUILD_CLI "Build tiledbsoma CLI tool" ON) option(TILEDBSOMA_BUILD_STATIC "Build a static library; otherwise, shared library" OFF) option(TILEDBSOMA_ENABLE_TESTING "Enable tests" ON) -option(TILEDBSOMA_ENABLE_WERROR "Enables the -Werror flag during compilation." ON) +option(TILEDBSOMA_ENABLE_WERROR "Enables the -Werror flag during compilation." OFF) # Superbuild option must be on by default. option(SUPERBUILD "If true, perform a superbuild (builds all missing dependencies)." ON) @@ -66,6 +71,7 @@ option(TILEDB_VERBOSE "If true, sets default logging to verbose for TileDB" OFF) option(OVERRIDE_INSTALL_PREFIX "Ignores the setting of CMAKE_INSTALL_PREFIX and sets a default prefix" ON) option(ENABLE_ARROW_EXPORT "Installs an extra header for exporting in-memory results with Apache Arrow" ON) option(TILEDB_LOG_OUTPUT_ON_FAILURE "If true, print error logs if dependency sub-project build fails" ON) +option(TILEDB_SANITIZER "Sanitizer to use in TILEDB. ") # Enable compiler cache to speed up recompilation find_program(CCACHE_FOUND ccache) @@ -83,9 +89,24 @@ set(CMAKE_CXX_EXTENSIONS OFF) # Don't use GNU extensions # Build with fPIC set(CMAKE_POSITION_INDEPENDENT_CODE ON) -# Release builds by default. -if(NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE RELEASE) +# Set default builds/configuration to be Release. +get_property(is_multi_config GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) +if (is_multi_config) + set(CMAKE_CONFIGURATION_TYPES + "Release;Debug;RelWithDebInfo;ASAN;TSAN;LSAN;UBSAN;MSAN" + CACHE + STRING + "Semi-colon separate list of build types for multi-configuration generators." + ) + set(CMAKE_MAP_IMPORTED_CONFIG_ASAN Debug) + set(CMAKE_MAP_IMPORTED_CONFIG_TSAN Debug) + set(CMAKE_MAP_IMPORTED_CONFIG_LSAN Debug) + set(CMAKE_MAP_IMPORTED_CONFIG_UBSAN Debug) + set(CMAKE_MAP_IMPORTED_CONFIG_MSAN Debug) +else() + set(CMAKE_BUILD_TYPE + "Release" CACHE STRING "Build type for single-configuration generators." + ) endif() # Use @rpath on macOS for building shared libraries. @@ -168,7 +189,7 @@ if(MSVC) set(TILEDBSOMA_COMPILE_OPTIONS /W4 /wd4101 /wd4146 /wd4244 /wd4251 /wd4456 /wd4457 /wd4702 /wd4800 /wd4996) # Warnings as errors: - if(TILEDBSOMA_ENABLE_WERROR) + if(${TILEDBSOMA_ENABLE_WERROR}) set(TILEDBSOMA_WERROR_OPTION /WX) else() set(TILEDBSOMA_WERROR_OPTION "") @@ -199,7 +220,7 @@ else() set(TILEDBSOMA_COMPILE_OPTIONS -Wall -Wextra) - if(TILEDBSOMA_ENABLE_WERROR) + if(${TILEDBSOMA_ENABLE_WERROR}) set(TILEDBSOMA_WERROR_OPTION -Werror) else() set(TILEDBSOMA_WERROR_OPTION "") @@ -209,54 +230,45 @@ else() # build generators that set the config type at build time. list(APPEND TILEDBSOMA_COMPILE_OPTIONS - $<$: -DDEBUG -O0 -g3 -ggdb3 -gdwarf-3> + $<$: -DDEBUG -O0 -g3 -ggdb3 -gdwarf-3> ) list(APPEND TILEDBSOMA_COMPILE_OPTIONS - $<$: -DNDEBUG -O3> + $<$: -DNDEBUG -O3> ) list(APPEND TILEDBSOMA_COMPILE_OPTIONS - $<$: -DNDEBUG -O3 -g3 -ggdb3 -gdwarf-3> + $<$: -DNDEBUG -O3 -g3 -ggdb3 -gdwarf-3> ) list(APPEND TILEDBSOMA_COMPILE_OPTIONS - $<$: -DDEBUG -g3 -gdwarf-3 --coverage> + $<$: -DDEBUG -O1 -g -fno-omit-frame-pointer -fno-optimize-sibling-calls> ) - # Use -Wno-literal-suffix on Linux for C++ libtiledbsoma target. - if(NOT CMAKE_CXX_COMPILER_ID MATCHES "Clang") - list(APPEND TILEDBSOMA_COMPILE_OPTIONS -Wno-literal-suffix) - endif() -endif() - -# ########################################################### -# Compile options/definitions -# ########################################################### -if(SANITIZER) - string(TOLOWER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE_LOWER) - if(NOT CMAKE_BUILD_TYPE_LOWER MATCHES "debug") - message(FATAL_ERROR "Sanitizers only enabled for Debug build") - endif() + # TODO: There is a bug in CMake 3.22.1 but not 3.27.6 where nested generators + # are not fully evaluated in the `target_link_library` commands. The GENEX_EVAL + # commands are not multi-configuration friendly and should be removed after we + # update CMake. + # See https://www.reddit.com/r/cmake/comments/17d70h6/why_arent_generator_expressions_evaluated_for/ + # for this placeholder solution. + set(TILEDBSOMA_SANITIZER_FLAG "") + list(APPEND TILEDBSOMA_SANITIZER_FLAG "\$:-fsanitize=address>>") + list(APPEND TILEDBSOMA_SANITIZER_FLAG "\$:-fsanitize=leak>>") + list(APPEND TILEDBSOMA_SANITIZER_FLAG "\$:-fsanitize=thread>>") + list(APPEND TILEDBSOMA_SANITIZER_FLAG "\$:-fsanitize=undefined>>") + list(APPEND TILEDBSOMA_SANITIZER_FLAG "\$:-fsanitize=memory>>") - string(TOLOWER ${SANITIZER} SANITIZER) - if(NOT SANITIZER MATCHES "^(address|memory|leak|thread|undefined)$") - message(FATAL_ERROR "Unknown clang sanitizer: ${SANITIZER})") - else() - message(STATUS "The TileDB-SOMA library is compiled with sanitizer ${SANITIZER} enabled") + # Compiler specific additions: + if(NOT CMAKE_CXX_COMPILER_ID MATCHES "Clang") + # Use -Wno-literal-suffix on Linux for C++ libtiledbsoma target. + list(APPEND TILEDBSOMA_COMPILE_OPTIONS -Wno-literal-suffix) endif() - set(TILEDBSOMA_SANITIZER_OPTIONS - -g -fno-omit-frame-pointer -fno-optimize-sibling-calls -fsanitize=${SANITIZER} - ) -else() - set(TILEDBSOMA_SANITIZER_OPTIONS "") endif() - # Definitions for all targets add_definitions(-D_FILE_OFFSET_BITS=64) diff --git a/libtiledbsoma/cmake/Superbuild.cmake b/libtiledbsoma/cmake/Superbuild.cmake index 9760f012e6..b72108b960 100644 --- a/libtiledbsoma/cmake/Superbuild.cmake +++ b/libtiledbsoma/cmake/Superbuild.cmake @@ -63,8 +63,8 @@ set(INHERITED_CMAKE_ARGS -DTILEDB_SERIALIZATION=${TILEDB_SERIALIZATION} -DTILEDB_WERROR=${TILEDB_WERROR} -DTILEDB_VERBOSE=${TILEDB_VERBOSE} + -DTILEDB_SANITIZER=${TILEDB_SANITIZER} -DTileDB_DIR=${TileDB_DIR} - -DSANITIZER=${SANITIZER} -DENABLE_ARROW_EXPORT=${ENABLE_ARROW_EXPORT} -DOVERRIDE_INSTALL_PREFIX=${OVERRIDE_INSTALL_PREFIX} -DTILEDBSOMA_BUILD_STATIC=${TILEDBSOMA_BUILD_STATIC} diff --git a/libtiledbsoma/src/CMakeLists.txt b/libtiledbsoma/src/CMakeLists.txt index d853b878db..98f1cc697f 100644 --- a/libtiledbsoma/src/CMakeLists.txt +++ b/libtiledbsoma/src/CMakeLists.txt @@ -9,10 +9,14 @@ set_source_files_properties( add_library(TILEDBSOMA_NANOARROW_OBJECT OBJECT ${CMAKE_CURRENT_SOURCE_DIR}/external/src/nanoarrow/nanoarrow.c ) +target_link_options(TILEDBSOMA_NANOARROW_OBJECT + PRIVATE + ${TILEDBSOMA_SANITIZER_FLAG} +) target_compile_options(TILEDBSOMA_NANOARROW_OBJECT PRIVATE ${TILEDBSOMA_COMPILE_OPTIONS} - ${TILEDBSOMA_SANITIZER_OPTIONS} + ${TILEDBSOMA_SANITIZER_FLAG} ) target_include_directories(TILEDBSOMA_NANOARROW_OBJECT PUBLIC @@ -52,18 +56,70 @@ add_library(TILEDB_SOMA_OBJECTS OBJECT target_compile_definitions(TILEDB_SOMA_OBJECTS PRIVATE - -DTILEDB_NO_API_DEPRECATION_WARNINGS + -DTILEDB_NO_API_DEPRECATION_WARNINGS ) target_compile_options(TILEDB_SOMA_OBJECTS + PRIVATE + ${TILEDBSOMA_COMPILE_OPTIONS} + ${TILEDBSOMA_WERROR_OPTION} + ${TILEDBSOMA_SANITIZER_FLAG} +) +target_link_options(TILEDB_SOMA_OBJECTS + PRIVATE + ${TILEDBSOMA_SANITIZER_FLAG} +) + + +set_property(TARGET TILEDB_SOMA_OBJECTS PROPERTY POSITION_INDEPENDENT_CODE ON) +target_include_directories(TILEDB_SOMA_OBJECTS + PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/vendor + ${CMAKE_CURRENT_SOURCE_DIR}/soma + ${CMAKE_CURRENT_SOURCE_DIR}/external/khash + ${CMAKE_CURRENT_SOURCE_DIR}/external/include + ${CMAKE_CURRENT_SOURCE_DIR}/external/include/nanoarrow + $ + $ + ${pybind11_INCLUDE_DIRS} +) + +# ########################################################### +# tiledbsoma geometry library target +# ########################################################### + +add_library(TILEDB_SOMA_GEOMETRY_OBJECTS OBJECT + ${CMAKE_CURRENT_SOURCE_DIR}/geometry/point.cc + ${CMAKE_CURRENT_SOURCE_DIR}/geometry/linestring.cc + ${CMAKE_CURRENT_SOURCE_DIR}/geometry/polygon.cc + ${CMAKE_CURRENT_SOURCE_DIR}/geometry/multipoint.cc + ${CMAKE_CURRENT_SOURCE_DIR}/geometry/multilinestring.cc + ${CMAKE_CURRENT_SOURCE_DIR}/geometry/multipolygon.cc + ${CMAKE_CURRENT_SOURCE_DIR}/geometry/operators/io/read.cc + ${CMAKE_CURRENT_SOURCE_DIR}/geometry/operators/io/write.cc + ${CMAKE_CURRENT_SOURCE_DIR}/geometry/operators/envelope.cc +) + +target_link_options(TILEDB_SOMA_GEOMETRY_OBJECTS + PRIVATE + ${TILEDBSOMA_SANITIZER_FLAG} +) + +target_compile_definitions(TILEDB_SOMA_GEOMETRY_OBJECTS + PRIVATE + -DTILEDB_NO_API_DEPRECATION_WARNINGS +) + +target_compile_options(TILEDB_SOMA_GEOMETRY_OBJECTS PRIVATE ${TILEDBSOMA_COMPILE_OPTIONS} ${TILEDBSOMA_WERROR_OPTION} ${TILEDBSOMA_SANITIZER_OPTIONS} ) -set_property(TARGET TILEDB_SOMA_OBJECTS PROPERTY POSITION_INDEPENDENT_CODE ON) -target_include_directories(TILEDB_SOMA_OBJECTS +set_property(TARGET TILEDB_SOMA_GEOMETRY_OBJECTS PROPERTY POSITION_INDEPENDENT_CODE ON) +target_include_directories(TILEDB_SOMA_GEOMETRY_OBJECTS PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/vendor @@ -83,6 +139,7 @@ set(TILEDBSOMA_INSTALL_TARGETS "") if(TILEDBSOMA_BUILD_STATIC) add_library(tiledbsoma_static STATIC $ + $ $ ) list(APPEND TILEDBSOMA_INSTALL_TARGETS tiledbsoma_static) @@ -99,29 +156,25 @@ if(TILEDBSOMA_BUILD_STATIC) OUTPUT_NAME "tiledbsoma" ) endif() - if(SANITIZER) - target_link_libraries(tiledbsoma_static - INTERFACE - -fsanitize=${SANITIZER} - ) - endif() + target_link_libraries(tiledbsoma_static + PRIVATE + ) else() add_library(tiledbsoma SHARED $ + $ $ ) list(APPEND TILEDBSOMA_INSTALL_TARGETS tiledbsoma) target_link_libraries(tiledbsoma PUBLIC - TileDB::tiledb_shared - spdlog::spdlog + TileDB::tiledb_shared + spdlog::spdlog + ) + target_link_options(tiledbsoma + PRIVATE + ${TILEDBSOMA_SANITIZER_FLAG} ) - if(SANITIZER) - target_link_libraries(tiledbsoma - INTERFACE - -fsanitize=${SANITIZER} - ) - endif() endif() # Install header files @@ -222,6 +275,9 @@ set(TILEDB_SOMA_EXPORT_HEADER "${TILEDB_SOMA_EXPORT_HEADER}" PARENT_SCOPE) target_compile_definitions(TILEDB_SOMA_OBJECTS PRIVATE -DTILEDB_SOMA_OBJECTS_EXPORTS) target_include_directories(TILEDB_SOMA_OBJECTS PRIVATE ${TILEDB_SOMA_EXPORT_HEADER_DIR}) +target_compile_definitions(TILEDB_SOMA_GEOMETRY_OBJECTS PRIVATE -DTILEDB_SOMA_OBJECTS_EXPORTS) +target_include_directories(TILEDB_SOMA_GEOMETRY_OBJECTS PRIVATE ${TILEDB_SOMA_EXPORT_HEADER_DIR}) + # Add the generated header to the public headers list list(APPEND TILEDB_SOMA_PUBLIC_HEADERS "${TILEDB_SOMA_EXPORT_HEADER}" @@ -251,20 +307,16 @@ if(TILEDBSOMA_BUILD_CLI) target_link_libraries(tiledbsoma-cli PUBLIC - - # CLI11::CLI11 - # spdlog::spdlog - tiledbsoma - TileDB::tiledb_shared + # CLI11::CLI11 + # spdlog::spdlog + tiledbsoma + TileDB::tiledb_shared + ) + target_link_options(tiledbsoma-cli + PRIVATE + ${TILEDBSOMA_SANITIZER_FLAG} ) - # Sanitizer linker flags - if(SANITIZER) - target_link_libraries(tiledbsoma-cli - INTERFACE - -fsanitize=${SANITIZER} - ) - endif() if(NOT APPLE AND NOT WIN32) target_link_libraries(tiledbsoma-cli PRIVATE pthread) diff --git a/libtiledbsoma/src/geometry/base.h b/libtiledbsoma/src/geometry/base.h new file mode 100644 index 0000000000..6a9aa27f08 --- /dev/null +++ b/libtiledbsoma/src/geometry/base.h @@ -0,0 +1,30 @@ +#ifndef TILEDBSOMA_GEOMETRY_BASE_H +#define TILEDBSOMA_GEOMETRY_BASE_H + +#include +#include +#include +#include + +namespace tiledbsoma::geometry { + +struct BasePoint { + BasePoint( + double_t x, + double_t y, + std::optional z = std::nullopt, + std::optional m = std::nullopt) + : x(x) + , y(y) + , z(z) + , m(m) { + } + + double_t x; + double_t y; + std::optional z; + std::optional m; +}; +} // namespace tiledbsoma::geometry + +#endif // TILEDBSOMA_GEOMETRY_BASE_H \ No newline at end of file diff --git a/libtiledbsoma/src/geometry/geometry.h b/libtiledbsoma/src/geometry/geometry.h new file mode 100644 index 0000000000..b2b5597313 --- /dev/null +++ b/libtiledbsoma/src/geometry/geometry.h @@ -0,0 +1,42 @@ +#ifndef TILEDBSOMA_GEOMETRY_H +#define TILEDBSOMA_GEOMETRY_H + +#include + +#include "linestring.h" +#include "multilinestring.h" +#include "multipoint.h" +#include "multipolygon.h" +#include "point.h" +#include "polygon.h" + +namespace tiledbsoma::geometry { + +enum GeometryType : uint32_t { + POINT = 1, + LINESTRING = 2, + POLYGON = 3, + MULTIPOINT = 4, + MULTILINESTRING = 5, + MULTIPOLYGON = 6, + GEOMETRYCOLLECTION = 7 +}; + +using BinaryBuffer = std::vector; + +struct GeometryCollection; +using GenericGeometry = std::variant< + Point, + LineString, + Polygon, + MultiPoint, + MultiLineString, + MultiPolygon, + GeometryCollection>; + +struct GeometryCollection : public std::vector { + using std::vector::vector; +}; +} // namespace tiledbsoma::geometry + +#endif // TILEDBSOMA_GEOMETRY_H \ No newline at end of file diff --git a/libtiledbsoma/src/geometry/linestring.cc b/libtiledbsoma/src/geometry/linestring.cc new file mode 100644 index 0000000000..6f3cbcdeee --- /dev/null +++ b/libtiledbsoma/src/geometry/linestring.cc @@ -0,0 +1,10 @@ +#include "linestring.h" + +namespace tiledbsoma::geometry { +LineString::LineString(std::vector&& points) + : points(points) { +} + +LineString::~LineString() { +} +} // namespace tiledbsoma::geometry diff --git a/libtiledbsoma/src/geometry/linestring.h b/libtiledbsoma/src/geometry/linestring.h new file mode 100644 index 0000000000..94cd9d9cb1 --- /dev/null +++ b/libtiledbsoma/src/geometry/linestring.h @@ -0,0 +1,19 @@ +#ifndef TILEDBSOMA_LINESTRING_H +#define TILEDBSOMA_LINESTRING_H + +#include + +#include "base.h" + +namespace tiledbsoma::geometry { + +class LineString { + public: + LineString(std::vector&& points = std::vector()); + ~LineString(); + + std::vector points; +}; +} // namespace tiledbsoma::geometry + +#endif // TILEDBSOMA_LINESTRING_H \ No newline at end of file diff --git a/libtiledbsoma/src/geometry/multilinestring.cc b/libtiledbsoma/src/geometry/multilinestring.cc new file mode 100644 index 0000000000..b596b35383 --- /dev/null +++ b/libtiledbsoma/src/geometry/multilinestring.cc @@ -0,0 +1,10 @@ +#include "multilinestring.h" + +namespace tiledbsoma::geometry { +MultiLineString::MultiLineString(std::vector&& linestrings) + : linestrings(linestrings) { +} + +MultiLineString::~MultiLineString() { +} +} // namespace tiledbsoma::geometry diff --git a/libtiledbsoma/src/geometry/multilinestring.h b/libtiledbsoma/src/geometry/multilinestring.h new file mode 100644 index 0000000000..e182a04e9a --- /dev/null +++ b/libtiledbsoma/src/geometry/multilinestring.h @@ -0,0 +1,19 @@ +#ifndef TILEDBSOMA_MULTILINESTRING_H +#define TILEDBSOMA_MULTILINESTRING_H + +#include + +#include "linestring.h" + +namespace tiledbsoma::geometry { +class MultiLineString { + public: + MultiLineString( + std::vector&& linestring = std::vector()); + ~MultiLineString(); + + std::vector linestrings; +}; +} // namespace tiledbsoma::geometry + +#endif // TILEDBSOMA_MULTILINESTRING_H diff --git a/libtiledbsoma/src/geometry/multipoint.cc b/libtiledbsoma/src/geometry/multipoint.cc new file mode 100644 index 0000000000..39b329d2ce --- /dev/null +++ b/libtiledbsoma/src/geometry/multipoint.cc @@ -0,0 +1,10 @@ +#include "multipoint.h" + +namespace tiledbsoma::geometry { +MultiPoint::MultiPoint(std::vector&& points) + : points(points) { +} + +MultiPoint::~MultiPoint() { +} +} // namespace tiledbsoma::geometry diff --git a/libtiledbsoma/src/geometry/multipoint.h b/libtiledbsoma/src/geometry/multipoint.h new file mode 100644 index 0000000000..2215e9ea6d --- /dev/null +++ b/libtiledbsoma/src/geometry/multipoint.h @@ -0,0 +1,19 @@ +#ifndef TILEDBSOMA_MULTIPOINT_H +#define TILEDBSOMA_MULTIPOINT_H + +#include + +#include "point.h" + +namespace tiledbsoma::geometry { +class MultiPoint { + public: + MultiPoint(std::vector&& points = std::vector()); + ~MultiPoint(); + + std::vector points; +}; + +} // namespace tiledbsoma::geometry + +#endif // TILEDBSOMA_MULTIPOINT_H \ No newline at end of file diff --git a/libtiledbsoma/src/geometry/multipolygon.cc b/libtiledbsoma/src/geometry/multipolygon.cc new file mode 100644 index 0000000000..5673994eae --- /dev/null +++ b/libtiledbsoma/src/geometry/multipolygon.cc @@ -0,0 +1,10 @@ +#include "multipolygon.h" + +namespace tiledbsoma::geometry { +MultiPolygon::MultiPolygon(std::vector&& polygons) + : polygons(polygons) { +} + +MultiPolygon::~MultiPolygon() { +} +} // namespace tiledbsoma::geometry diff --git a/libtiledbsoma/src/geometry/multipolygon.h b/libtiledbsoma/src/geometry/multipolygon.h new file mode 100644 index 0000000000..6e12a55bb1 --- /dev/null +++ b/libtiledbsoma/src/geometry/multipolygon.h @@ -0,0 +1,18 @@ +#ifndef TILEDBSOMA_MULTIPOLYGON_H +#define TILEDBSOMA_MULTIPOLYGON_H + +#include + +#include "polygon.h" + +namespace tiledbsoma::geometry { +class MultiPolygon { + public: + MultiPolygon(std::vector&& polygons = std::vector()); + ~MultiPolygon(); + + std::vector polygons; +}; +} // namespace tiledbsoma::geometry + +#endif // TILEDBSOMA_MULTIPOLYGON_H diff --git a/libtiledbsoma/src/geometry/operators/envelope.cc b/libtiledbsoma/src/geometry/operators/envelope.cc new file mode 100644 index 0000000000..7c1b5ec0af --- /dev/null +++ b/libtiledbsoma/src/geometry/operators/envelope.cc @@ -0,0 +1,99 @@ +#include "envelope.h" + +#include + +namespace tiledbsoma::geometry { +Envelope::Envelope() { + this->range = { + std::make_pair( + std::numeric_limits::max(), + -std::numeric_limits::max()), + std::make_pair( + std::numeric_limits::max(), + -std::numeric_limits::max()), + std::make_pair( + std::numeric_limits::max(), + -std::numeric_limits::max()), + std::make_pair( + std::numeric_limits::max(), + -std::numeric_limits::max())}; +} + +EnvelopeOperator::EnvelopeOperator(Envelope& envelope) + : envelope(envelope) { +} + +void EnvelopeOperator::base_envelope(const BasePoint& point) { + this->envelope.range[0].first = std::min( + this->envelope.range[0].first, point.x); + this->envelope.range[0].second = std::max( + this->envelope.range[0].second, point.x); + + this->envelope.range[1].first = std::min( + this->envelope.range[1].first, point.y); + this->envelope.range[1].second = std::max( + this->envelope.range[1].second, point.y); + + if (point.z.has_value()) { + this->envelope.range[2].first = std::min( + this->envelope.range[2].first, point.z.value()); + this->envelope.range[2].second = std::max( + this->envelope.range[2].second, point.z.value()); + } + + if (point.m.has_value()) { + this->envelope.range[3].first = std::min( + this->envelope.range[3].first, point.m.value()); + this->envelope.range[3].second = std::max( + this->envelope.range[3].second, point.m.value()); + } +} + +void EnvelopeOperator::operator()(const Point& point) { + this->base_envelope(point); +} + +void EnvelopeOperator::operator()(const LineString& linestring) { + for (auto& point : linestring.points) { + this->base_envelope(point); + } +} + +void EnvelopeOperator::operator()(const Polygon& polygon) { + for (auto& point : polygon.exteriorRing) { + base_envelope(point); + } +} + +void EnvelopeOperator::operator()(const MultiPoint& multi_point) { + for (auto& point : multi_point.points) { + this->operator()(point); + } +} + +void EnvelopeOperator::operator()(const MultiLineString& multi_linestring) { + for (auto& linestring : multi_linestring.linestrings) { + this->operator()(linestring); + } +} + +void EnvelopeOperator::operator()(const MultiPolygon& multi_polygon) { + for (auto& polygon : multi_polygon.polygons) { + this->operator()(polygon); + } +} + +void EnvelopeOperator::operator()(const GeometryCollection& collection) { + for (auto& geometry : collection) { + std::visit(EnvelopeOperator{this->envelope}, geometry); + } +} + +Envelope envelope(const GenericGeometry& geometry) { + Envelope env; + + std::visit(EnvelopeOperator{env}, geometry); + + return env; +} +} // namespace tiledbsoma::geometry diff --git a/libtiledbsoma/src/geometry/operators/envelope.h b/libtiledbsoma/src/geometry/operators/envelope.h new file mode 100644 index 0000000000..032130c0ab --- /dev/null +++ b/libtiledbsoma/src/geometry/operators/envelope.h @@ -0,0 +1,34 @@ +#ifndef TILEDBSOMA_GEOMETRY_ENVELOPE_H +#define TILEDBSOMA_GEOMETRY_ENVELOPE_H + +#include + +#include "../geometry.h" + +namespace tiledbsoma::geometry { + +struct Envelope { + Envelope(); + + std::array, 4> range; +}; + +struct EnvelopeOperator { + EnvelopeOperator(Envelope& envelope); + + void base_envelope(const BasePoint& point); + void operator()(const Point& point); + void operator()(const LineString& linestring); + void operator()(const Polygon& polygon); + void operator()(const MultiPoint& multi_point); + void operator()(const MultiLineString& multi_linestring); + void operator()(const MultiPolygon& multi_polygon); + void operator()(const GeometryCollection& collection); + + Envelope& envelope; +}; + +Envelope envelope(const GenericGeometry& geometry); + +} // namespace tiledbsoma::geometry +#endif \ No newline at end of file diff --git a/libtiledbsoma/src/geometry/operators/io/read.cc b/libtiledbsoma/src/geometry/operators/io/read.cc new file mode 100644 index 0000000000..c1bdab7f10 --- /dev/null +++ b/libtiledbsoma/src/geometry/operators/io/read.cc @@ -0,0 +1,155 @@ +#include "read.h" + +namespace tiledbsoma::geometry::implementation { +template <> +BasePoint parse(Reader& reader) { + double_t x = reader.read(); + double_t y = reader.read(); + return BasePoint(x, y); +} + +template <> +std::vector parse(Reader& reader) { + uint32_t pointCount = reader.read(); + std::vector ring; + ring.reserve(pointCount); + + for (uint32_t i = 0; i < pointCount; ++i) { + ring.push_back(parse(reader)); + } + + return ring; +} + +template <> +Point parse(Reader& reader) { + [[maybe_unused]] uint8_t endian = reader.read(); + [[maybe_unused]] uint32_t type = reader.read(); + assert(GeometryType::POINT == type); + + return Point(parse(reader)); +} + +template <> +LineString parse(Reader& reader) { + [[maybe_unused]] uint8_t endian = reader.read(); + [[maybe_unused]] uint32_t type = reader.read(); + assert(GeometryType::LINESTRING == type); + + return LineString(parse>(reader)); +} + +template <> +Polygon parse(Reader& reader) { + [[maybe_unused]] uint8_t endian = reader.read(); + [[maybe_unused]] uint32_t type = reader.read(); + assert(GeometryType::POLYGON == type); + + uint32_t ringCount = reader.read(); + assert(ringCount > 0); + + std::vector exteriorRing(parse>(reader)); + std::vector> interiorRings; + + for (uint32_t i = 1; i < ringCount; ++i) { + interiorRings.push_back(parse>(reader)); + } + + return Polygon(std::move(exteriorRing), std::move(interiorRings)); +} + +template <> +MultiPoint parse(Reader& reader) { + [[maybe_unused]] uint8_t endian = reader.read(); + [[maybe_unused]] uint32_t type = reader.read(); + assert(GeometryType::MULTIPOINT == type); + + uint32_t pointCount = reader.read(); + std::vector points; + points.reserve(pointCount); + + for (uint32_t i = 0; i < pointCount; ++i) { + points.push_back(parse(reader)); + } + + return MultiPoint(std::move(points)); +} + +template <> +MultiLineString parse(Reader& reader) { + [[maybe_unused]] uint8_t endian = reader.read(); + [[maybe_unused]] uint32_t type = reader.read(); + assert(GeometryType::MULTILINESTRING == type); + + uint32_t linestringCount = reader.read(); + std::vector linestrings; + linestrings.reserve(linestringCount); + + for (uint32_t i = 0; i < linestringCount; ++i) { + linestrings.push_back(parse(reader)); + } + + return MultiLineString(std::move(linestrings)); +} + +template <> +MultiPolygon parse(Reader& reader) { + [[maybe_unused]] uint8_t endian = reader.read(); + [[maybe_unused]] uint32_t type = reader.read(); + assert(GeometryType::MULTIPOLYGON == type); + + uint32_t polygonCount = reader.read(); + std::vector polygons; + polygons.reserve(polygonCount); + + for (uint32_t i = 0; i < polygonCount; ++i) { + polygons.push_back(parse(reader)); + } + + return MultiPolygon(std::move(polygons)); +} + +template <> +GenericGeometry parse(Reader& reader) { + [[maybe_unused]] uint8_t endian = reader.peek(); + GeometryType type = static_cast(reader.peek(1)); + + switch (type) { + case GeometryType::POINT: + return parse(reader); + case GeometryType::LINESTRING: + return parse(reader); + case GeometryType::POLYGON: + return parse(reader); + case GeometryType::MULTIPOINT: + return parse(reader); + case GeometryType::MULTILINESTRING: + return parse(reader); + case GeometryType::MULTIPOLYGON: + return parse(reader); + case GeometryType::GEOMETRYCOLLECTION: + return parse(reader); + default: + throw std::runtime_error( + "Unkown geometry type " + + std::to_string(static_cast(type))); + } +} + +template <> +GeometryCollection parse(Reader& reader) { + [[maybe_unused]] uint8_t endian = reader.read(); + [[maybe_unused]] uint32_t type = reader.read(); + assert(GeometryType::GEOMETRYCOLLECTION == type); + + uint32_t geometryCount = reader.read(); + GeometryCollection geometries; + geometries.reserve(geometryCount); + + for (uint32_t i = 0; i < geometryCount; ++i) { + geometries.push_back(parse(reader)); + } + + return geometries; +} +} // namespace tiledbsoma::geometry::implementation \ No newline at end of file diff --git a/libtiledbsoma/src/geometry/operators/io/read.h b/libtiledbsoma/src/geometry/operators/io/read.h new file mode 100644 index 0000000000..f1386bb056 --- /dev/null +++ b/libtiledbsoma/src/geometry/operators/io/read.h @@ -0,0 +1,80 @@ +#ifndef TILEDBSOMA_GEOMETRY_READ_H +#define TILEDBSOMA_GEOMETRY_READ_H + +#include +#include +#include +#include +#include +#include + +#include "../../geometry.h" + +namespace tiledbsoma::geometry { +template +struct Reader {}; + +template <> +struct Reader { + Reader(const BinaryBuffer& buffer) + : buffer(buffer) + , position(0) { + } + + template + T read() { + assert(this->position + sizeof(T) <= this->buffer.size()); + + T value = *(T*)(&this->buffer[this->position]); + this->position += sizeof(T); + return value; + } + + template + T peek(size_t offset = 0) const { + assert(this->position + offset + sizeof(T) <= this->buffer.size()); + + T value = *(T*)(&this->buffer[this->position + offset]); + return value; + } + + std::vector buffer; + size_t position; +}; + +namespace implementation { +template class R> +Geometry parse(R& reader); + +template <> +GeometryCollection parse(Reader& reader); +template <> +BasePoint parse(Reader& reader); +template <> +std::vector parse(Reader& reader); +template <> +Point parse(Reader& reader); +template <> +LineString parse(Reader& reader); +template <> +Polygon parse(Reader& reader); +template <> +MultiPoint parse(Reader& reader); +template <> +MultiLineString parse(Reader& reader); +template <> +MultiPolygon parse(Reader& reader); +template <> +GenericGeometry parse(Reader& reader); +template <> +GeometryCollection parse(Reader& reader); +} // namespace implementation + +template +Geometry from_wkb(BinaryBuffer& buffer) { + Reader reader(buffer); + + return implementation::parse(reader); +} +} // namespace tiledbsoma::geometry +#endif // TILEDBSOMA_GEOMETRY_READ_H \ No newline at end of file diff --git a/libtiledbsoma/src/geometry/operators/io/write.cc b/libtiledbsoma/src/geometry/operators/io/write.cc new file mode 100644 index 0000000000..e86396ad85 --- /dev/null +++ b/libtiledbsoma/src/geometry/operators/io/write.cc @@ -0,0 +1,202 @@ +#include "write.h" + +namespace tiledbsoma::geometry { + +size_t WKBSizeOperator::binary_size(const BasePoint& point) { + size_t size = 16; + if (point.z.has_value()) { + size += 8; + } + if (point.m.has_value()) { + size += 8; + } + return size; +} + +size_t WKBSizeOperator::operator()(const Point& point) { + return WKB_BYTE_ORDER_SIZE + WKB_GEOEMTRY_TYPE_SIZE + binary_size(point); +} + +size_t WKBSizeOperator::operator()(const LineString& linestring) { + size_t size = WKB_BYTE_ORDER_SIZE + WKB_GEOEMTRY_TYPE_SIZE + + WKB_ELEMENT_COUNT_SIZE; + if (linestring.points.size() == 0) { + return size; + } + + return size + + linestring.points.size() * binary_size(linestring.points.front()); +} + +size_t WKBSizeOperator::operator()(const Polygon& polygon) { + size_t size = WKB_BYTE_ORDER_SIZE + WKB_GEOEMTRY_TYPE_SIZE + + WKB_ELEMENT_COUNT_SIZE; // Number of rings + + // At least one ring is required and the first ring is the exterior ring + if (polygon.exteriorRing.size() != 0) { + size += WKB_ELEMENT_COUNT_SIZE + + polygon.exteriorRing.size() * + binary_size(polygon.exteriorRing.front()); + } else { + size += WKB_ELEMENT_COUNT_SIZE; + } + + for (auto& ring : polygon.interiorRings) { + if (ring.size() != 0) { + size += WKB_ELEMENT_COUNT_SIZE + + ring.size() * binary_size(ring.front()); + } else { + size += WKB_ELEMENT_COUNT_SIZE; + } + } + + return size; +} + +size_t WKBSizeOperator::operator()(const MultiPoint& multi_point) { + size_t size = WKB_BYTE_ORDER_SIZE + WKB_GEOEMTRY_TYPE_SIZE + + WKB_ELEMENT_COUNT_SIZE; + + for (auto& point : multi_point.points) { + size += this->operator()(point); + } + + return size; +} + +size_t WKBSizeOperator::operator()(const MultiLineString& multi_linestring) { + size_t size = WKB_BYTE_ORDER_SIZE + WKB_GEOEMTRY_TYPE_SIZE + + WKB_ELEMENT_COUNT_SIZE; + + for (auto& linestring : multi_linestring.linestrings) { + size += this->operator()(linestring); + } + + return size; +} + +size_t WKBSizeOperator::operator()(const MultiPolygon& multi_polygon) { + size_t size = WKB_BYTE_ORDER_SIZE + WKB_GEOEMTRY_TYPE_SIZE + + WKB_ELEMENT_COUNT_SIZE; + + for (auto& polygon : multi_polygon.polygons) { + size += this->operator()(polygon); + } + + return size; +} + +size_t WKBSizeOperator::operator()(const GeometryCollection& collection) { + size_t size = WKB_BYTE_ORDER_SIZE + WKB_GEOEMTRY_TYPE_SIZE + + WKB_ELEMENT_COUNT_SIZE; + + for (auto& geometry : collection) { + size += std::visit(WKBSizeOperator{}, geometry); + } + + return size; +} + +size_t wkb_size(const GenericGeometry& geometry) { + return std::visit(WKBSizeOperator{}, geometry); +} + +WKBWriteOperator::WKBWriteOperator( + uint8_t* buffer, size_t& position, size_t size) + : buffer(buffer) + , position(position) + , size(size) { +} + +void WKBWriteOperator::wkb_write(const BasePoint& point) { + write(point.x); + write(point.y); +} + +void WKBWriteOperator::operator()(const Point& point) { + write((uint8_t)1); + write(static_cast(GeometryType::POINT)); + wkb_write(point); +} + +void WKBWriteOperator::operator()(const LineString& linestring) { + write((uint8_t)1); + write(static_cast(GeometryType::LINESTRING)); + write((uint32_t)linestring.points.size()); + + for (auto& point : linestring.points) { + wkb_write(point); + } +} + +void WKBWriteOperator::operator()(const Polygon& polygon) { + write((uint8_t)1); + write(static_cast(GeometryType::POLYGON)); + write((uint32_t)(polygon.interiorRings.size() + 1)); + + write((uint32_t)polygon.exteriorRing.size()); + for (auto& point : polygon.exteriorRing) { + wkb_write(point); + } + + for (auto& ring : polygon.interiorRings) { + write((uint32_t)ring.size()); + for (auto& point : ring) { + wkb_write(point); + } + } +} + +void WKBWriteOperator::operator()(const MultiPoint& multi_point) { + write((uint8_t)1); + write(static_cast(GeometryType::MULTIPOINT)); + write((uint32_t)multi_point.points.size()); + for (auto& point : multi_point.points) { + this->operator()(point); + } +} + +void WKBWriteOperator::operator()(const MultiLineString& multi_linestring) { + write((uint8_t)1); + write(static_cast(GeometryType::MULTILINESTRING)); + write((uint32_t)multi_linestring.linestrings.size()); + for (auto& linestring : multi_linestring.linestrings) { + this->operator()(linestring); + } +} + +void WKBWriteOperator::operator()(const MultiPolygon& multi_polygon) { + write((uint8_t)1); + write(static_cast(GeometryType::MULTIPOLYGON)); + write((uint32_t)multi_polygon.polygons.size()); + for (auto& polygon : multi_polygon.polygons) { + this->operator()(polygon); + } +} + +void WKBWriteOperator::operator()(const GeometryCollection& collection) { + write((uint8_t)1); + write(static_cast(GeometryType::GEOMETRYCOLLECTION)); + write((uint32_t)collection.size()); + for (auto& geometry : collection) { + std::visit( + WKBWriteOperator{this->buffer, this->position, this->size}, + geometry); + } +} + +void to_wkb(const GenericGeometry& geometry, uint8_t* buffer, size_t size) { + size_t position = 0; + + std::visit(WKBWriteOperator{buffer, position, size}, geometry); + + assert(position == size); +} + +BinaryBuffer to_wkb(const GenericGeometry& geometry) { + BinaryBuffer buffer(wkb_size(geometry)); + to_wkb(geometry, buffer.data(), buffer.size()); + return buffer; +} + +} // namespace tiledbsoma::geometry \ No newline at end of file diff --git a/libtiledbsoma/src/geometry/operators/io/write.h b/libtiledbsoma/src/geometry/operators/io/write.h new file mode 100644 index 0000000000..b3d98b8029 --- /dev/null +++ b/libtiledbsoma/src/geometry/operators/io/write.h @@ -0,0 +1,63 @@ +#ifndef TILEDBSOMA_GEOMETRY_WRITE_H +#define TILEDBSOMA_GEOMETRY_WRITE_H + +#include +#include +#include +#include +#include +#include + +#include "../../geometry.h" + +namespace tiledbsoma::geometry { + +const size_t WKB_BYTE_ORDER_SIZE = 1; +const size_t WKB_GEOEMTRY_TYPE_SIZE = 4; +const size_t WKB_ELEMENT_COUNT_SIZE = 4; + +struct WKBSizeOperator { + size_t binary_size(const BasePoint& point); + size_t operator()(const Point& point); + size_t operator()(const LineString& linestring); + size_t operator()(const Polygon& polygon); + size_t operator()(const MultiPoint& multi_point); + size_t operator()(const MultiLineString& multi_linestring); + size_t operator()(const MultiPolygon& multi_polygon); + size_t operator()(const GeometryCollection& collection); +}; + +struct WKBWriteOperator { + WKBWriteOperator(uint8_t* buffer, size_t& position, size_t size); + + template + void write(const T& value) { + assert(sizeof(T) + this->position <= this->size); + + memcpy(this->buffer + this->position, &value, sizeof(T)); + this->position += sizeof(T); + } + + void wkb_write(const BasePoint& point); + void operator()(const Point& point); + void operator()(const LineString& linestring); + void operator()(const Polygon& polygon); + void operator()(const MultiPoint& multi_point); + void operator()(const MultiLineString& multi_linestring); + void operator()(const MultiPolygon& multi_polygon); + void operator()(const GeometryCollection& collection); + + uint8_t* buffer; + size_t& position; + size_t size; +}; + +size_t wkb_size(const GenericGeometry& geometry); + +void to_wkb(const GenericGeometry& geometry, uint8_t* buffer, size_t size); + +BinaryBuffer to_wkb(const GenericGeometry& geometry); + +} // namespace tiledbsoma::geometry + +#endif // TILEDBSOMA_GEOMETRY_WRITE_H \ No newline at end of file diff --git a/libtiledbsoma/src/geometry/point.cc b/libtiledbsoma/src/geometry/point.cc new file mode 100644 index 0000000000..3640cc7c7e --- /dev/null +++ b/libtiledbsoma/src/geometry/point.cc @@ -0,0 +1,18 @@ +#include "point.h" + +namespace tiledbsoma::geometry { +Point::Point() + : BasePoint(0, 0){}; +Point::Point( + double_t x, + double_t y, + std::optional z, + std::optional m) + : BasePoint(x, y, z, m) { +} +Point::Point(BasePoint&& point) + : BasePoint(std::move(point)){}; + +Point::~Point() { +} +} // namespace tiledbsoma::geometry diff --git a/libtiledbsoma/src/geometry/point.h b/libtiledbsoma/src/geometry/point.h new file mode 100644 index 0000000000..5d905d1ede --- /dev/null +++ b/libtiledbsoma/src/geometry/point.h @@ -0,0 +1,25 @@ +#ifndef TILEDBSOMA_POINT_H +#define TILEDBSOMA_POINT_H + +#include +#include + +#include "base.h" + +namespace tiledbsoma::geometry { + +class Point : public BasePoint { + public: + Point(); + Point( + double_t x, + double_t y, + std::optional z = std::nullopt, + std::optional m = std::nullopt); + Point(BasePoint&& point); + + ~Point(); +}; +} // namespace tiledbsoma::geometry + +#endif // TILEDBSOMA_POINT_H diff --git a/libtiledbsoma/src/geometry/polygon.cc b/libtiledbsoma/src/geometry/polygon.cc new file mode 100644 index 0000000000..e95777c36e --- /dev/null +++ b/libtiledbsoma/src/geometry/polygon.cc @@ -0,0 +1,13 @@ +#include "polygon.h" + +namespace tiledbsoma::geometry { +Polygon::Polygon( + std::vector&& exteriorRing, + std::vector>&& interiorRings) + : exteriorRing(exteriorRing) + , interiorRings(interiorRings) { +} + +Polygon::~Polygon() { +} +} // namespace tiledbsoma::geometry diff --git a/libtiledbsoma/src/geometry/polygon.h b/libtiledbsoma/src/geometry/polygon.h new file mode 100644 index 0000000000..346d6ec81a --- /dev/null +++ b/libtiledbsoma/src/geometry/polygon.h @@ -0,0 +1,24 @@ +#ifndef TILEDBSOMA_POLYGON_H +#define TILEDBSOMA_POLYGON_H + +#include + +#include "base.h" +#include "point.h" + +namespace tiledbsoma::geometry { +class Polygon { + public: + Polygon( + std::vector&& exteriorRing = std::vector(), + std::vector>&& interiorRings = + std::vector>()); + ~Polygon(); + + std::vector exteriorRing; + std::vector> interiorRings; +}; + +} // namespace tiledbsoma::geometry + +#endif // TILEDBSOMA_POLYGON_H \ No newline at end of file diff --git a/libtiledbsoma/src/soma/column_buffer.cc b/libtiledbsoma/src/soma/column_buffer.cc index bafc76f11d..74fb4e47d8 100644 --- a/libtiledbsoma/src/soma/column_buffer.cc +++ b/libtiledbsoma/src/soma/column_buffer.cc @@ -252,6 +252,17 @@ size_t ColumnBuffer::update_size(const Query& query) { return num_cells_; } +std::vector> ColumnBuffer::binaries() { + std::vector> result; + + for (size_t i = 0; i < num_cells_; i++) { + result.emplace_back(std::vector( + data_.data() + offsets_[i], data_.data() + offsets_[i + 1])); + } + + return result; +} + std::vector ColumnBuffer::strings() { std::vector result; diff --git a/libtiledbsoma/src/soma/column_buffer.h b/libtiledbsoma/src/soma/column_buffer.h index 0200aeb651..cdfc8ace86 100644 --- a/libtiledbsoma/src/soma/column_buffer.h +++ b/libtiledbsoma/src/soma/column_buffer.h @@ -195,6 +195,13 @@ class ColumnBuffer { return tcb::span((T*)data_.data(), num_cells_); } + /** + * @brief Return data in a vector of binary buffers. + * + * @return std::vector> + */ + std::vector> binaries(); + /** * @brief Return data in a vector of strings. * diff --git a/libtiledbsoma/src/soma/managed_query.cc b/libtiledbsoma/src/soma/managed_query.cc index 304cd63f2a..f3b6991eb9 100644 --- a/libtiledbsoma/src/soma/managed_query.cc +++ b/libtiledbsoma/src/soma/managed_query.cc @@ -100,22 +100,36 @@ void ManagedQuery::setup_read() { return; } + auto schema = array_->schema(); + // If the query is uninitialized, set the subarray for the query if (status == Query::Status::UNINITIALIZED) { // Dense array must have a subarray set. If the array is dense and no // ranges have been set, add a range for the array's entire non-empty - // domain on dimension 0. - if (array_->schema().array_type() == TILEDB_DENSE && - !subarray_range_set_) { - auto non_empty_domain = array_->non_empty_domain(0); - subarray_->add_range( - 0, non_empty_domain.first, non_empty_domain.second); + // domain on dimension 0. In the case that the non-empty domain does not + // exist (when the array has not been written to yet), use dimension 0's + // full domain + if (schema.array_type() == TILEDB_DENSE && !subarray_range_set_) { + // Check if the array has been written to by using the C API as + // there is no way to to check for an empty domain using the current + // CPP API + int32_t is_empty; + int64_t ned[2]; + ctx_->handle_error(tiledb_array_get_non_empty_domain_from_index( + ctx_->ptr().get(), array_->ptr().get(), 0, &ned, &is_empty)); + + std::pair array_shape; + if (is_empty == 1) { + array_shape = schema.domain().dimension(0).domain(); + } else { + array_shape = std::make_pair(ned[0], ned[1]); + } + subarray_->add_range(0, array_shape.first, array_shape.second); LOG_DEBUG(fmt::format( - "[ManagedQuery] Add full NED range to dense subarray = (0, {}, " - "{})", - non_empty_domain.first, - non_empty_domain.second)); + "[ManagedQuery] Add full range to dense subarray = (0, {}, {})", + array_shape.first, + array_shape.second)); } // Set the subarray for range slicing @@ -125,14 +139,14 @@ void ManagedQuery::setup_read() { // If no columns were selected, select all columns. // Add dims and attrs in the same order as specified in the schema if (columns_.empty()) { - if (array_->schema().array_type() == TILEDB_SPARSE) { - for (const auto& dim : array_->schema().domain().dimensions()) { + if (schema.array_type() == TILEDB_SPARSE) { + for (const auto& dim : schema.domain().dimensions()) { columns_.push_back(dim.name()); } } - int attribute_num = array_->schema().attribute_num(); + int attribute_num = schema.attribute_num(); for (int i = 0; i < attribute_num; i++) { - columns_.push_back(array_->schema().attribute(i).name()); + columns_.push_back(schema.attribute(i).name()); } } diff --git a/libtiledbsoma/src/soma/soma_array.cc b/libtiledbsoma/src/soma/soma_array.cc index 394427df5a..b9f664327c 100644 --- a/libtiledbsoma/src/soma/soma_array.cc +++ b/libtiledbsoma/src/soma/soma_array.cc @@ -411,6 +411,8 @@ bool SOMAArray::_cast_column( case TILEDB_STRING_ASCII: case TILEDB_STRING_UTF8: case TILEDB_CHAR: + case TILEDB_GEOM_WKB: + case TILEDB_GEOM_WKT: return _cast_column_aux(schema, array, se); case TILEDB_BOOL: return _cast_column_aux(schema, array, se); @@ -477,6 +479,8 @@ void SOMAArray::_promote_indexes_to_values( case TILEDB_STRING_ASCII: case TILEDB_STRING_UTF8: case TILEDB_CHAR: + case TILEDB_GEOM_WKB: + case TILEDB_GEOM_WKT: return _cast_dictionary_values(schema, array); case TILEDB_BOOL: return _cast_dictionary_values(schema, array); @@ -784,6 +788,8 @@ bool SOMAArray::_extend_enumeration( case TILEDB_STRING_ASCII: case TILEDB_STRING_UTF8: case TILEDB_CHAR: + case TILEDB_GEOM_WKB: + case TILEDB_GEOM_WKT: return _extend_and_evolve_schema( value_schema, value_array, index_schema, index_array, se); case TILEDB_INT8: @@ -1094,12 +1100,12 @@ void SOMAArray::set_metadata( metadata_.insert(mdpair); } -void SOMAArray::delete_metadata(const std::string& key) { - if (key.compare(SOMA_OBJECT_TYPE_KEY) == 0) { +void SOMAArray::delete_metadata(const std::string& key, bool force) { + if (!force && key.compare(SOMA_OBJECT_TYPE_KEY) == 0) { throw TileDBSOMAError(SOMA_OBJECT_TYPE_KEY + " cannot be deleted."); } - if (key.compare(ENCODING_VERSION_KEY) == 0) { + if (!force && key.compare(ENCODING_VERSION_KEY) == 0) { throw TileDBSOMAError(ENCODING_VERSION_KEY + " cannot be deleted."); } @@ -1261,6 +1267,8 @@ ArrowTable SOMAArray::_get_core_domainish(enum Domainish which_kind) { case TILEDB_STRING_ASCII: case TILEDB_CHAR: + case TILEDB_GEOM_WKB: + case TILEDB_GEOM_WKT: child = ArrowAdapter::make_arrow_array_child_string( _core_domainish_slot_string(core_dim.name(), which_kind)); break; @@ -1343,17 +1351,19 @@ uint64_t SOMAArray::nnz() { uint64_t total_cell_num = 0; std::vector> non_empty_domains(fragment_count); - // The loop after this only works if dim 0 is int64 soma_joinid. - // That's the case for _almost_ all SOMADataFrame objects, but + // The loop after this only works if dim 0 is int64 soma_joinid or + // soma_dim_0. That's the case for _almost_ all SOMADataFrame objects, but // not the "variant-indexed" ones: the SOMA spec only requires - // that soma_joinid be present as a dim or an attr. + // that soma_joinid be present as a dim or an attr. It's true for all + // SOMASparseNDArray objects. auto dim = tiledb_schema()->domain().dimension(0); auto dim_name = dim.name(); auto type_code = dim.type(); - if (dim_name != "soma_joinid" || type_code != TILEDB_INT64) { + if ((dim_name != "soma_joinid" && dim_name != "soma_dim_0") || + type_code != TILEDB_INT64) { LOG_DEBUG(fmt::format( "[SOMAArray::nnz] dim 0 (type={} name={}) isn't int64 " - "soma_joind: using _nnz_slow", + "soma_joinid or int64 soma_dim_0: using _nnz_slow", tiledb::impl::type_to_str(type_code), dim_name)); return _nnz_slow(); @@ -1438,11 +1448,11 @@ std::vector SOMAArray::maxshape() { return _tiledb_domain(); } -// This is a helper for can_upgrade_domain and can_resize, which have +// This is a helper for can_upgrade_shape and can_resize, which have // much overlap. -std::pair SOMAArray::_can_set_shape_helper( +StatusAndReason SOMAArray::_can_set_shape_helper( const std::vector& newshape, - bool is_resize, + bool must_already_have, std::string function_name_for_messages) { // E.g. it's an error to try to upgrade_domain or resize specifying // a 3-D shape on a 2-D array. @@ -1458,19 +1468,19 @@ std::pair SOMAArray::_can_set_shape_helper( array_ndim)); } - // Enforce the semantics that tiledbsoma_upgrade_domain must be called + // Enforce the semantics that tiledbsoma_upgrade_shape must be called // only on arrays that don't have a shape set, and resize must be called // only on arrays that do. bool has_shape = has_current_domain(); - if (is_resize) { + if (must_already_have) { // They're trying to do resize on an array that doesn't already have a // shape. if (!has_shape) { return std::pair( false, fmt::format( - "{}: array currently has no shape: please use " - "tiledbsoma_upgrade_shape.", + "{}: array currently has no shape: please " + "upgrade the array.", function_name_for_messages)); } } else { @@ -1480,8 +1490,7 @@ std::pair SOMAArray::_can_set_shape_helper( return std::pair( false, fmt::format( - "{}: array already has a shape: please use resize rather " - "than tiledbsoma_upgrade_shape.", + "{}: array already has a shape: please use resize", function_name_for_messages)); } } @@ -1518,7 +1527,7 @@ std::pair SOMAArray::_can_set_shape_helper( // This is a helper for _can_set_shape_helper: it's used for comparing // the user's requested shape against the core current domain or core (max) // domain. -std::pair SOMAArray::_can_set_shape_domainish_subhelper( +StatusAndReason SOMAArray::_can_set_shape_domainish_subhelper( const std::vector& newshape, bool check_current_domain, std::string function_name_for_messages) { @@ -1578,17 +1587,32 @@ std::pair SOMAArray::_can_set_shape_domainish_subhelper( return std::pair(true, ""); } -std::pair SOMAArray::can_resize_soma_joinid_shape( - int64_t newshape, std::string function_name_for_messages) { +StatusAndReason SOMAArray::_can_set_soma_joinid_shape_helper( + int64_t newshape, + bool must_already_have, + std::string function_name_for_messages) { // Fail if the array doesn't already have a shape yet (they should upgrade // first). - if (!has_current_domain()) { - return std::pair( - false, - fmt::format( - "{}: dataframe currently has no domain set: please " - "upgrade the array.", - function_name_for_messages)); + if (!must_already_have) { + // Upgrading an array to give it a current domain + if (has_current_domain()) { + return std::pair( + false, + fmt::format( + "{}: dataframe already has its domain set.", + function_name_for_messages)); + } + + } else { + // Resizing an array's existing current domain + + if (!has_current_domain()) { + return std::pair( + false, + fmt::format( + "{}: dataframe currently has no domain set.", + function_name_for_messages)); + } } // OK if soma_joinid isn't a dim. @@ -1597,15 +1621,18 @@ std::pair SOMAArray::can_resize_soma_joinid_shape( } // Fail if the newshape isn't within the array's core current domain. - std::pair cur_dom_lo_hi = _core_current_domain_slot("soma_joinid"); - if (newshape < cur_dom_lo_hi.second) { - return std::pair( - false, - fmt::format( - "{}: new soma_joinid shape {} < existing shape {}", - function_name_for_messages, - newshape, - cur_dom_lo_hi.second)); + if (must_already_have) { + std::pair cur_dom_lo_hi = _core_current_domain_slot( + "soma_joinid"); + if (newshape < cur_dom_lo_hi.second) { + return std::pair( + false, + fmt::format( + "{}: new soma_joinid shape {} < existing shape {}", + function_name_for_messages, + newshape, + cur_dom_lo_hi.second + 1)); + } } // Fail if the newshape isn't within the array's core (max) domain. @@ -1617,36 +1644,16 @@ std::pair SOMAArray::can_resize_soma_joinid_shape( "{}: new soma_joinid shape {} > maxshape {}", function_name_for_messages, newshape, - dom_lo_hi.second)); + dom_lo_hi.second + 1)); } // Sucess otherwise. return std::pair(true, ""); } -void SOMAArray::resize( - const std::vector& newshape, - std::string function_name_for_messages) { - if (_get_current_domain().is_empty()) { - throw TileDBSOMAError(fmt::format( - "{} array must already have a shape", function_name_for_messages)); - } - _set_current_domain_from_shape(newshape, function_name_for_messages); -} - -void SOMAArray::upgrade_shape( - const std::vector& newshape, - std::string function_name_for_messages) { - if (!_get_current_domain().is_empty()) { - throw TileDBSOMAError(fmt::format( - "{}: array must not already have a shape", - function_name_for_messages)); - } - _set_current_domain_from_shape(newshape, function_name_for_messages); -} - -void SOMAArray::_set_current_domain_from_shape( +void SOMAArray::_set_shape_helper( const std::vector& newshape, + bool must_already_have, std::string function_name_for_messages) { if (mq_->query_type() != TILEDB_WRITE) { throw TileDBSOMAError(fmt::format( @@ -1654,6 +1661,22 @@ void SOMAArray::_set_current_domain_from_shape( function_name_for_messages)); } + if (!must_already_have) { + // Upgrading an array to install a current domain + if (!_get_current_domain().is_empty()) { + throw TileDBSOMAError(fmt::format( + "{}: array must not already have a shape", + function_name_for_messages)); + } + } else { + // Expanding an array's current domain + if (_get_current_domain().is_empty()) { + throw TileDBSOMAError(fmt::format( + "{} array must already have a shape", + function_name_for_messages)); + } + } + // Variant-indexed dataframes must use a separate path _check_dims_are_int64(); @@ -1684,34 +1707,540 @@ void SOMAArray::_set_current_domain_from_shape( schema_evolution.array_evolve(uri_); } -void SOMAArray::resize_soma_joinid_shape( - int64_t newshape, std::string function_name_for_messages) { +void SOMAArray::_set_soma_joinid_shape_helper( + int64_t newshape, + bool must_already_have, + std::string function_name_for_messages) { if (mq_->query_type() != TILEDB_WRITE) { throw TileDBSOMAError(fmt::format( "{}: array must be opened in write mode", function_name_for_messages)); } + if (!must_already_have) { + // Upgrading an array to install a current domain + if (!_get_current_domain().is_empty()) { + throw TileDBSOMAError(fmt::format( + "{}: array must not already have a shape", + function_name_for_messages)); + } + } else { + // Expanding an array's current domain + if (_get_current_domain().is_empty()) { + throw TileDBSOMAError(fmt::format( + "{} array must already have a shape", + function_name_for_messages)); + } + } + ArraySchema schema = arr_->schema(); Domain domain = schema.domain(); unsigned ndim = domain.ndim(); - auto tctx = ctx_->tiledb_ctx(); - CurrentDomain old_current_domain = ArraySchemaExperimental::current_domain( - *tctx, schema); - NDRectangle ndrect = old_current_domain.ndrectangle(); + ArraySchemaEvolution schema_evolution(*tctx); + CurrentDomain new_current_domain(*tctx); + + if (!must_already_have) { + // For upgrade: copy from the full/wide/max domain except for the + // soma_joinid restriction. + + NDRectangle ndrect(*tctx, domain); + + for (unsigned i = 0; i < ndim; i++) { + const Dimension& dim = domain.dimension(i); + const std::string dim_name = dim.name(); + if (dim_name == "soma_joinid") { + if (dim.type() != TILEDB_INT64) { + throw TileDBSOMAError(fmt::format( + "{}: expected soma_joinid to be of type {}; got {}", + function_name_for_messages, + tiledb::impl::type_to_str(TILEDB_INT64), + tiledb::impl::type_to_str(dim.type()))); + } + ndrect.set_range(dim_name, 0, newshape - 1); + continue; + + switch (dim.type()) { + case TILEDB_STRING_ASCII: + case TILEDB_STRING_UTF8: + case TILEDB_CHAR: + case TILEDB_GEOM_WKB: + case TILEDB_GEOM_WKT: + // TODO: make these named constants b/c they're shared + // with arrow_adapter. + ndrect.set_range(dim_name, "", "\xff"); + break; + + case TILEDB_INT8: + ndrect.set_range( + dim_name, + dim.domain().first, + dim.domain().second); + break; + case TILEDB_BOOL: + case TILEDB_UINT8: + ndrect.set_range( + dim_name, + dim.domain().first, + dim.domain().second); + break; + case TILEDB_INT16: + ndrect.set_range( + dim_name, + dim.domain().first, + dim.domain().second); + break; + case TILEDB_UINT16: + ndrect.set_range( + dim_name, + dim.domain().first, + dim.domain().second); + break; + case TILEDB_INT32: + ndrect.set_range( + dim_name, + dim.domain().first, + dim.domain().second); + break; + case TILEDB_UINT32: + ndrect.set_range( + dim_name, + dim.domain().first, + dim.domain().second); + break; + case TILEDB_INT64: + case TILEDB_DATETIME_YEAR: + case TILEDB_DATETIME_MONTH: + case TILEDB_DATETIME_WEEK: + case TILEDB_DATETIME_DAY: + case TILEDB_DATETIME_HR: + case TILEDB_DATETIME_MIN: + case TILEDB_DATETIME_SEC: + case TILEDB_DATETIME_MS: + case TILEDB_DATETIME_US: + case TILEDB_DATETIME_NS: + case TILEDB_DATETIME_PS: + case TILEDB_DATETIME_FS: + case TILEDB_DATETIME_AS: + case TILEDB_TIME_HR: + case TILEDB_TIME_MIN: + case TILEDB_TIME_SEC: + case TILEDB_TIME_MS: + case TILEDB_TIME_US: + case TILEDB_TIME_NS: + case TILEDB_TIME_PS: + case TILEDB_TIME_FS: + case TILEDB_TIME_AS: + ndrect.set_range( + dim_name, + dim.domain().first, + dim.domain().second); + break; + case TILEDB_UINT64: + ndrect.set_range( + dim_name, + dim.domain().first, + dim.domain().second); + break; + case TILEDB_FLOAT32: + ndrect.set_range( + dim_name, + dim.domain().first, + dim.domain().second); + break; + case TILEDB_FLOAT64: + ndrect.set_range( + dim_name, + dim.domain().first, + dim.domain().second); + break; + default: + throw TileDBSOMAError(fmt::format( + "{}: internal error: unhandled type {} for {}.", + function_name_for_messages, + tiledb::impl::type_to_str(dim.type()), + dim_name)); + } + } + } + + new_current_domain.set_ndrectangle(ndrect); + + } else { + // For resize: copy from the existing current domain except for the + // new soma_joinid value. + CurrentDomain + old_current_domain = ArraySchemaExperimental::current_domain( + *tctx, schema); + NDRectangle ndrect = old_current_domain.ndrectangle(); + + for (unsigned i = 0; i < ndim; i++) { + if (domain.dimension(i).name() == "soma_joinid") { + ndrect.set_range( + domain.dimension(i).name(), 0, newshape - 1); + } + } + + new_current_domain.set_ndrectangle(ndrect); + } + + schema_evolution.expand_current_domain(new_current_domain); + schema_evolution.array_evolve(uri_); +} + +StatusAndReason SOMAArray::_can_set_domain_helper( + const ArrowTable& newdomain, + bool must_already_have, + std::string function_name_for_messages) { + // Enforce the semantics that tiledbsoma_upgrade_domain must be called + // only on arrays that don't have a shape set, and resize must be called + // only on arrays that do. + if (must_already_have) { + if (!has_current_domain()) { + return std::pair( + false, + fmt::format( + "{}: dataframe does not have a domain: please upgrade it", + function_name_for_messages)); + } + } else { + if (has_current_domain()) { + return std::pair( + false, + fmt::format( + "{}: dataframe already has a domain", + function_name_for_messages)); + } + } + + // * For old-style dataframe without shape: core domain (soma maxdomain) + // may + // be small (like 100) or big (like 2 billionish). + // * For new-style dataframe with shape: core current domain (soma + // domain) + // will probably be small and core domain (soma maxdomain) will be + // huge. + // + // In either case, we need to check that the user's requested soma + // domain isn't outside the core domain, which is immutable. For + // old-style dataframes, if the requested domain fits in the array's + // core domain, it's good to go as a new soma domain. + auto domain_check = _can_set_dataframe_domainish_subhelper( + newdomain, false, function_name_for_messages); + if (!domain_check.first) { + return domain_check; + } + + // For new-style dataframes, we need to additionally that the the + // requested soma domain (core current domain) isn't a downsize of the + // current one. + if (has_current_domain()) { + auto current_domain_check = _can_set_dataframe_domainish_subhelper( + newdomain, true, function_name_for_messages); + if (!current_domain_check.first) { + return current_domain_check; + } + } + + return std::pair(true, ""); +} + +// This is a helper for can_upgrade_domain: it's used for comparing +// the user's requested soma domain against the core current domain or core +// (max) domain. +StatusAndReason SOMAArray::_can_set_dataframe_domainish_subhelper( + const ArrowTable& newdomain, + bool check_current_domain, + std::string function_name_for_messages) { + Domain domain = arr_->schema().domain(); + + ArrowArray* new_domain_array = newdomain.first.get(); + ArrowSchema* new_domain_schema = newdomain.second.get(); + + if (new_domain_schema->n_children != domain.ndim()) { + return std::pair( + false, + fmt::format( + "{}: requested domain has ndim={} but the dataframe has " + "ndim={}", + function_name_for_messages, + new_domain_schema->n_children, + domain.ndim())); + } + + if (new_domain_schema->n_children != new_domain_array->n_children) { + return std::pair( + false, + fmt::format( + "{}: internal coding error", function_name_for_messages)); + } + + for (unsigned i = 0; i < domain.ndim(); i++) { + const auto& dim = domain.dimension(i); + + StatusAndReason status_and_reason; + + switch (dim.type()) { + case TILEDB_STRING_ASCII: + case TILEDB_STRING_UTF8: + case TILEDB_CHAR: + status_and_reason = + _can_set_dataframe_domainish_slot_checker_string( + check_current_domain, newdomain, dim.name()); + break; + case TILEDB_BOOL: + status_and_reason = + _can_set_dataframe_domainish_slot_checker_non_string( + check_current_domain, newdomain, dim.name()); + break; + case TILEDB_INT8: + status_and_reason = + _can_set_dataframe_domainish_slot_checker_non_string< + int8_t>(check_current_domain, newdomain, dim.name()); + break; + case TILEDB_UINT8: + status_and_reason = + _can_set_dataframe_domainish_slot_checker_non_string< + uint8_t>(check_current_domain, newdomain, dim.name()); + break; + case TILEDB_INT16: + status_and_reason = + _can_set_dataframe_domainish_slot_checker_non_string< + int16_t>(check_current_domain, newdomain, dim.name()); + break; + case TILEDB_UINT16: + status_and_reason = + _can_set_dataframe_domainish_slot_checker_non_string< + uint16_t>(check_current_domain, newdomain, dim.name()); + break; + case TILEDB_INT32: + status_and_reason = + _can_set_dataframe_domainish_slot_checker_non_string< + int32_t>(check_current_domain, newdomain, dim.name()); + break; + case TILEDB_UINT32: + status_and_reason = + _can_set_dataframe_domainish_slot_checker_non_string< + uint32_t>(check_current_domain, newdomain, dim.name()); + break; + case TILEDB_INT64: + case TILEDB_DATETIME_YEAR: + case TILEDB_DATETIME_MONTH: + case TILEDB_DATETIME_WEEK: + case TILEDB_DATETIME_DAY: + case TILEDB_DATETIME_HR: + case TILEDB_DATETIME_MIN: + case TILEDB_DATETIME_SEC: + case TILEDB_DATETIME_MS: + case TILEDB_DATETIME_US: + case TILEDB_DATETIME_NS: + case TILEDB_DATETIME_PS: + case TILEDB_DATETIME_FS: + case TILEDB_DATETIME_AS: + case TILEDB_TIME_HR: + case TILEDB_TIME_MIN: + case TILEDB_TIME_SEC: + case TILEDB_TIME_MS: + case TILEDB_TIME_US: + case TILEDB_TIME_NS: + case TILEDB_TIME_PS: + case TILEDB_TIME_FS: + case TILEDB_TIME_AS: + status_and_reason = + _can_set_dataframe_domainish_slot_checker_non_string< + int64_t>(check_current_domain, newdomain, dim.name()); + break; + case TILEDB_UINT64: + status_and_reason = + _can_set_dataframe_domainish_slot_checker_non_string< + uint64_t>(check_current_domain, newdomain, dim.name()); + break; + case TILEDB_FLOAT32: + status_and_reason = + _can_set_dataframe_domainish_slot_checker_non_string( + check_current_domain, newdomain, dim.name()); + break; + case TILEDB_FLOAT64: + status_and_reason = + _can_set_dataframe_domainish_slot_checker_non_string< + double>(check_current_domain, newdomain, dim.name()); + break; + default: + throw TileDBSOMAError(fmt::format( + "{}: saw invalid TileDB type when attempting to cast " + "domain information: {}", + function_name_for_messages, + tiledb::impl::type_to_str(dim.type()))); + } + + if (status_and_reason.first == false) { + return std::pair( + false, + fmt::format( + "{} for {}: {}", + function_name_for_messages, + dim.name(), + status_and_reason.second)); + } + } + return std::pair(true, ""); +} + +void SOMAArray::_set_domain_helper( + const ArrowTable& newdomain, + bool must_already_have, + std::string function_name_for_messages) { + if (mq_->query_type() != TILEDB_WRITE) { + throw TileDBSOMAError(fmt::format( + "{}: array must be opened in write mode", + function_name_for_messages)); + } + + if (must_already_have) { + if (!has_current_domain()) { + throw TileDBSOMAError(fmt::format(fmt::format( + "{}: dataframe does not have a domain: please upgrade it", + function_name_for_messages))); + } + } else { + if (has_current_domain()) { + throw TileDBSOMAError(fmt::format(fmt::format( + "{}: dataframe already has a domain", + function_name_for_messages))); + } + } + Domain domain = arr_->schema().domain(); + + ArrowArray* new_domain_array = newdomain.first.get(); + ArrowSchema* new_domain_schema = newdomain.second.get(); + + if (new_domain_schema->n_children != domain.ndim()) { + throw TileDBSOMAError(fmt::format(fmt::format( + "{}: requested domain has ndim={} but the dataframe has " + "ndim={}", + function_name_for_messages, + new_domain_schema->n_children, + domain.ndim()))); + } + + if (new_domain_schema->n_children != new_domain_array->n_children) { + throw TileDBSOMAError(fmt::format(fmt::format( + "{}: internal coding error", function_name_for_messages))); + } + + auto tctx = ctx_->tiledb_ctx(); + NDRectangle ndrect(*tctx, domain); CurrentDomain new_current_domain(*tctx); ArraySchemaEvolution schema_evolution(*tctx); - for (unsigned i = 0; i < ndim; i++) { - if (domain.dimension(i).name() == "soma_joinid") { - ndrect.set_range( - domain.dimension(i).name(), 0, newshape - 1); + for (unsigned i = 0; i < domain.ndim(); i++) { + const Dimension& dim = domain.dimension(i); + const std::string dim_name = dim.name(); + + switch (dim.type()) { + case TILEDB_STRING_ASCII: + case TILEDB_STRING_UTF8: + case TILEDB_CHAR: + case TILEDB_GEOM_WKB: + case TILEDB_GEOM_WKT: { + auto lo_hi = ArrowAdapter::get_table_string_column_by_index( + newdomain, i); + if (lo_hi[0] == "" && lo_hi[1] == "") { + // Don't care -> as big as possible + ndrect.set_range(dim_name, "", "\xff"); + } else { + throw TileDBSOMAError( + fmt::format("domain (\"{}\", \"{}\") cannot be set for " + "string index columns: please use " + "(\"\", \"\")")); + } + } break; + + case TILEDB_INT8: { + auto lo_hi = ArrowAdapter::get_table_non_string_column_by_index< + int8_t>(newdomain, i); + ndrect.set_range(dim_name, lo_hi[0], lo_hi[1]); + } break; + case TILEDB_BOOL: + case TILEDB_UINT8: { + auto lo_hi = ArrowAdapter::get_table_non_string_column_by_index< + uint8_t>(newdomain, i); + ndrect.set_range(dim_name, lo_hi[0], lo_hi[1]); + } break; + case TILEDB_INT16: { + auto lo_hi = ArrowAdapter::get_table_non_string_column_by_index< + int16_t>(newdomain, i); + ndrect.set_range(dim_name, lo_hi[0], lo_hi[1]); + } break; + case TILEDB_UINT16: { + auto lo_hi = ArrowAdapter::get_table_non_string_column_by_index< + uint16_t>(newdomain, i); + ndrect.set_range(dim_name, lo_hi[0], lo_hi[1]); + } break; + case TILEDB_INT32: { + auto lo_hi = ArrowAdapter::get_table_non_string_column_by_index< + int32_t>(newdomain, i); + ndrect.set_range(dim_name, lo_hi[0], lo_hi[1]); + } break; + case TILEDB_UINT32: { + auto lo_hi = ArrowAdapter::get_table_non_string_column_by_index< + uint32_t>(newdomain, i); + ndrect.set_range(dim_name, lo_hi[0], lo_hi[1]); + } break; + case TILEDB_INT64: + case TILEDB_DATETIME_YEAR: + case TILEDB_DATETIME_MONTH: + case TILEDB_DATETIME_WEEK: + case TILEDB_DATETIME_DAY: + case TILEDB_DATETIME_HR: + case TILEDB_DATETIME_MIN: + case TILEDB_DATETIME_SEC: + case TILEDB_DATETIME_MS: + case TILEDB_DATETIME_US: + case TILEDB_DATETIME_NS: + case TILEDB_DATETIME_PS: + case TILEDB_DATETIME_FS: + case TILEDB_DATETIME_AS: + case TILEDB_TIME_HR: + case TILEDB_TIME_MIN: + case TILEDB_TIME_SEC: + case TILEDB_TIME_MS: + case TILEDB_TIME_US: + case TILEDB_TIME_NS: + case TILEDB_TIME_PS: + case TILEDB_TIME_FS: + case TILEDB_TIME_AS: { + auto lo_hi = ArrowAdapter::get_table_non_string_column_by_index< + int64_t>(newdomain, i); + ndrect.set_range(dim_name, lo_hi[0], lo_hi[1]); + } break; + case TILEDB_UINT64: { + auto lo_hi = ArrowAdapter::get_table_non_string_column_by_index< + uint64_t>(newdomain, i); + ndrect.set_range(dim_name, lo_hi[0], lo_hi[1]); + } break; + case TILEDB_FLOAT32: { + auto lo_hi = ArrowAdapter::get_table_non_string_column_by_index< + float>(newdomain, i); + ndrect.set_range(dim_name, lo_hi[0], lo_hi[1]); + } break; + case TILEDB_FLOAT64: { + auto lo_hi = ArrowAdapter::get_table_non_string_column_by_index< + double>(newdomain, i); + ndrect.set_range(dim_name, lo_hi[0], lo_hi[1]); + } break; + default: + throw TileDBSOMAError(fmt::format( + "{}: internal error: unhandled type {} for {}.", + function_name_for_messages, + tiledb::impl::type_to_str(dim.type()), + dim_name)); } } new_current_domain.set_ndrectangle(ndrect); + schema_evolution.expand_current_domain(new_current_domain); schema_evolution.array_evolve(uri_); } @@ -1727,7 +2256,8 @@ std::vector SOMAArray::_tiledb_current_domain() { if (current_domain.is_empty()) { throw TileDBSOMAError( - "Internal error: current domain requested for an array which does " + "Internal error: current domain requested for an array which " + "does " "not support it"); } @@ -1840,7 +2370,8 @@ bool SOMAArray::_dims_are_int64() { void SOMAArray::_check_dims_are_int64() { if (!_dims_are_int64()) { throw TileDBSOMAError( - "[SOMAArray] internal coding error: expected all dims to be int64"); + "[SOMAArray] internal coding error: expected all dims to be " + "int64"); } } diff --git a/libtiledbsoma/src/soma/soma_array.h b/libtiledbsoma/src/soma/soma_array.h index d6a8508a82..77834ffd3b 100644 --- a/libtiledbsoma/src/soma/soma_array.h +++ b/libtiledbsoma/src/soma/soma_array.h @@ -45,9 +45,49 @@ #include "managed_query.h" #include "soma_object.h" +// ================================================================ +// Some general developer notes: +// +// ---------------------------------------------------------------- +// In several places we have +// +// template +// static sometype foo(T arg) { +// if (std::is_same_v) { +// throw std::runtime_error(...); +// } +// }D... +// } +// +// static sometype foo_string(std::string arg) { ... } +// +// -- with explicit `_string` suffix -- rather than +// +// template +// static sometype foo(T arg) ... +// +// template <> +// static sometype foo(std::string arg) ... +// +// We're aware of the former but we've found it a bit fiddly across systems and +// compiler versions -- namely, with the latter we find it tricky to always +// avoid the variant being templated with std::string. It's simple, +// explicit, and robust to go the `_string` suffix route, and it's friendlier to +// current and future maintainers of this code. +// +// ---------------------------------------------------------------- +// These are several methods here for use nominally by SOMADataFrame. These +// could be moved in their entirety to SOMADataFrame, but that would entail +// moving several SOMAArray attributes from private to protected, which has +// knock-on effects on the order of constructor initializers, etc.: in total +// it's simplest to place these here and have SOMADataFrame invoke them. +// ================================================================ + namespace tiledbsoma { using namespace tiledb; +using StatusAndReason = std::pair; + // This enables some code deduplication between core domain, core current // domain, and core non-empty domain. enum class Domainish { @@ -598,6 +638,17 @@ class SOMAArray : public SOMAObject { ctx_->tiledb_ctx(), arr_); } + /** + * @brief Get members of the schema (capacity, allows_duplicates, + * tile_order, cell_order, offsets_filters, validity_filters, attr filters, + * and dim filters) in the form of a PlatformConfig + * + * @return PlatformConfig + */ + PlatformConfig config_options_from_schema() const { + return ArrowAdapter::platform_config_from_tiledb_schema(*mq_->schema()); + } + /** * @brief Get the mapping of attributes to Enumerations. * @@ -653,7 +704,7 @@ class SOMAArray : public SOMAObject { * @note If the key does not exist, this will take no effect * (i.e., the function will not error out). */ - void delete_metadata(const std::string& key); + void delete_metadata(const std::string& key, bool force = false); /** * @brief Given a key, get the associated value datatype, number of @@ -722,7 +773,8 @@ class SOMAArray : public SOMAObject { /** * Retrieves the non-empty domain from the array. This is the union of the - * non-empty domains of the array fragments. + * non-empty domains of the array fragments. Returns (0, 0) for empty + * domains. */ template std::pair non_empty_domain_slot(const std::string& name) const { @@ -733,6 +785,41 @@ class SOMAArray : public SOMAObject { } } + /** + * Retrieves the non-empty domain from the array. This is the union of the + * non-empty domains of the array fragments. Return std::nullopt for empty + * domains. + */ + template + std::optional> non_empty_domain_slot_opt( + const std::string& name) const { + try { + int32_t is_empty; + T ned[2]; + + // TODO currently we need to use the TileDB C API in order to check + // if the domain is empty or not. The C++ API returns (0, 0) + // currently which could also represent a single point at coordinate + // 0. Replace this when the C++ API supports correct checking for + // empty domains + ctx_->tiledb_ctx()->handle_error( + tiledb_array_get_non_empty_domain_from_name( + ctx_->tiledb_ctx()->ptr().get(), + arr_->ptr().get(), + name.c_str(), + &ned, + &is_empty)); + + if (is_empty == 1) { + return std::nullopt; + } else { + return std::make_pair(ned[0], ned[1]); + } + } catch (const std::exception& e) { + throw TileDBSOMAError(e.what()); + } + } + /** * Retrieves the non-empty domain from the array on the given dimension. * This is the union of the non-empty domains of the array fragments. @@ -1059,7 +1146,7 @@ class SOMAArray : public SOMAObject { * upgrade_shape), or the requested shape doesn't fit within the array's * existing core domain. */ - std::pair can_resize( + StatusAndReason can_resize( const std::vector& newshape, std::string function_name_for_messages) { return _can_set_shape_helper( @@ -1083,7 +1170,7 @@ class SOMAArray : public SOMAObject { * the requested shape is a downsize of the array's existing core current * domain. */ - std::pair can_upgrade_shape( + StatusAndReason can_upgrade_shape( const std::vector& newshape, std::string function_name_for_messages) { return _can_set_shape_helper( @@ -1092,10 +1179,41 @@ class SOMAArray : public SOMAObject { /** * This is similar to can_upgrade_shape, but it's a can-we call - * for maybe_resize_soma_joinid. + * for resize_soma_joinid_shape. */ - std::pair can_resize_soma_joinid_shape( - int64_t newshape, std::string function_name_for_messages); + StatusAndReason can_resize_soma_joinid_shape( + int64_t newshape, std::string function_name_for_messages) { + return _can_set_soma_joinid_shape_helper( + newshape, true, function_name_for_messages); + } + + /** + * This is similar to can_upgrade_shape, but it's a can-we call + * for upgrade_soma_joinid_shape. + */ + StatusAndReason can_upgrade_soma_joinid_shape( + int64_t newshape, std::string function_name_for_messages) { + return _can_set_soma_joinid_shape_helper( + newshape, false, function_name_for_messages); + } + + /** + * This is for SOMADataFrame. + */ + StatusAndReason can_upgrade_domain( + const ArrowTable& newdomain, std::string function_name_for_messages) { + return _can_set_domain_helper( + newdomain, false, function_name_for_messages); + } + + /** + * This is for SOMADataFrame. + */ + StatusAndReason can_change_domain( + const ArrowTable& newdomain, std::string function_name_for_messages) { + return _can_set_domain_helper( + newdomain, true, function_name_for_messages); + } /** * @brief Resize the shape (what core calls "current domain") up to the @@ -1110,7 +1228,9 @@ class SOMAArray : public SOMAObject { */ void resize( const std::vector& newshape, - std::string function_name_for_messages); + std::string function_name_for_messages) { + _set_shape_helper(newshape, true, function_name_for_messages); + } /** * @brief Given an old-style array without current domain, sets its @@ -1120,7 +1240,9 @@ class SOMAArray : public SOMAObject { */ void upgrade_shape( const std::vector& newshape, - std::string function_name_for_messages); + std::string function_name_for_messages) { + _set_shape_helper(newshape, false, function_name_for_messages); + } /** * @brief Increases the tiledbsoma shape up to at most the maxshape, @@ -1137,16 +1259,60 @@ class SOMAArray : public SOMAObject { * maxshape. Throws if the array does not have current-domain support. */ void resize_soma_joinid_shape( - int64_t newshape, std::string function_name_for_messages); + int64_t newshape, std::string function_name_for_messages) { + return _set_soma_joinid_shape_helper( + newshape, true, function_name_for_messages); + } + + /** + * @brief Increases the tiledbsoma shape up to at most the maxshape, + * resizing the soma_joinid dimension if it is a dimension. + * + * While SOMA SparseNDArray and DenseNDArray, along with default-indexed + * DataFrame, have int64_t dims, non-default-indexed DataFrame objects need + * not: it is only required that they have a dim _or_ an attr called + * soma_joinid. If soma_joinid is one of the dims, it will be resized while + * the others will be preserved. If soma_joinid is not one of the dims, + * nothing will be changed, as nothing _needs_ to be changed. + * + * @return Throws if the requested shape exceeds the array's create-time + * maxshape. Throws if the array does not have current-domain support. + */ + void upgrade_soma_joinid_shape( + int64_t newshape, std::string function_name_for_messages) { + return _set_soma_joinid_shape_helper( + newshape, false, function_name_for_messages); + } + + /** + * This is for SOMADataFrame. While resize_soma_joinid_shape allows the + * user to do up the soma_joinid domain slot, without needing to specify + * the rest (which is the common operation for experiment-level resize) + * this allows the full-generality resize-every-index-column case + * (which only applies to variant-indexed/non-standard dataframes). + */ + void change_domain( + const ArrowTable& newdomain, std::string function_name_for_messages) { + _set_domain_helper(newdomain, true, function_name_for_messages); + } + + /** + * This is for SOMADataFrame. While upgrade_soma_joinid_shape allows the + * user to do up the soma_joinid domain slot, without needing to specify + * the rest (which is the common operation for experiment-level resize) + * this allows the full-generality resize-every-index-column case + * (which only applies to variant-indexed/non-standard dataframes). + */ + void upgrade_domain( + const ArrowTable& newdomain, std::string function_name_for_messages) { + _set_domain_helper(newdomain, false, function_name_for_messages); + } protected: - // These two are for use nominally by SOMADataFrame. This could be moved in - // its entirety to SOMADataFrame, but it would entail moving several - // SOMAArray attributes from private to protected, which has knock-on - // effects on the order of constructor initializers, etc.: in total it's - // simplest to place this here and have SOMADataFrame invoke it. + // See top-of-file notes regarding methods for SOMADataFrame being + // defined in this file. // - // They return the shape and maxshape slots for the soma_joinid dim, if + // These return the shape and maxshape slots for the soma_joinid dim, if // the array has one. These are important test-points and dev-internal // access-points, in particular, for the tiledbsoma-io experiment-level // resizer. @@ -1196,28 +1362,175 @@ class SOMAArray : public SOMAObject { } /** - * This is a code-dedupe helper for can_resize and can_upgrade_domain. + * This is a code-dedupe helper for can_resize and can_upgrade_shape. */ - std::pair _can_set_shape_helper( + StatusAndReason _can_set_shape_helper( const std::vector& newshape, - bool is_resize, + bool must_already_have, + std::string function_name_for_messages); + + /** + * This is a code-dedupe helper method for can_change_domain and + * can_upgrade_domain. + */ + StatusAndReason _can_set_domain_helper( + const ArrowTable& newdomain, + bool must_already_have, std::string function_name_for_messages); /** * This is a second-level code-dedupe helper for _can_set_shape_helper. */ - std::pair _can_set_shape_domainish_subhelper( + StatusAndReason _can_set_shape_domainish_subhelper( const std::vector& newshape, bool check_current_domain, std::string function_name_for_messages); + /** + * This is a code-dedupe helper for can_upgrade_domain. + */ + StatusAndReason _can_set_dataframe_domainish_subhelper( + const ArrowTable& newdomain, + bool check_current_domain, + std::string function_name_for_messages); + + /** + * This is a code-dedupe helper for can_resize_soma_joinid_shape and + * can_upgrade_domain_soma_joinid_shape. + */ + StatusAndReason _can_set_soma_joinid_shape_helper( + int64_t newshape, + bool must_already_have, + std::string function_name_for_messages); + /** * This is a code-dedupe helper method for resize and upgrade_shape. */ - void _set_current_domain_from_shape( + void _set_shape_helper( const std::vector& newshape, + bool must_already_have, + std::string function_name_for_messages); + + /** + * This is a code-dedupe helper method for resize_soma_joinid_shape and + * upgrade_soma_joinid_shape. + */ + void _set_soma_joinid_shape_helper( + int64_t newshape, + bool must_already_have, + std::string function_name_for_messages); + + /** + * This is a code-dedupe helper method for change_domain and upgrade_domain. + */ + void _set_domain_helper( + const ArrowTable& newdomain, + bool must_already_have, std::string function_name_for_messages); + /** + * This is a helper for can_upgrade_domain. + */ + template + StatusAndReason _can_set_dataframe_domainish_slot_checker_non_string( + bool check_current_domain, + const ArrowTable& domain_table, + std::string dim_name) { + std::pair old_lo_hi = check_current_domain ? + _core_current_domain_slot(dim_name) : + _core_domain_slot(dim_name); + std::vector + new_lo_hi = ArrowAdapter::get_table_non_string_column_by_name( + domain_table, dim_name); + if (new_lo_hi.size() != 2) { + throw TileDBSOMAError( + "internal coding error detected at " + "_can_set_dataframe_domainish_slot_checker"); + } + + const T& old_lo = old_lo_hi.first; + const T& old_hi = old_lo_hi.second; + const T& new_lo = new_lo_hi[0]; + const T& new_hi = new_lo_hi[1]; + + // If we're checking against the core current domain: the user-provided + // domain must contain the core current domain. + // + // If we're checking against the core (max) domain: the user-provided + // domain must be contained within the core (max) domain. + + // Note: It's difficult to use fmt::format within a header file since + // the include path to logger.h 'moves around' depending on which source + // file included us. + // + // TODO: once we're on C++ 20, just use std::format here and include + // things like "old ({}, {}) new ({}, {})". + + if (new_lo > new_hi) { + return std::pair( + false, + "index-column name " + dim_name + ": new lower > new upper"); + } + + if (check_current_domain) { + if (new_lo > old_lo) { + return std::pair( + false, + "index-column name " + dim_name + + ": new lower > old lower (downsize is unsupported)"); + } + if (new_hi < old_hi) { + return std::pair( + false, + "index-column name " + dim_name + + ": new upper < old upper (downsize is unsupported)"); + } + } else { + if (new_lo < old_lo) { + return std::pair( + false, + "index-column name " + dim_name + + ": new lower < limit lower"); + } + if (new_hi > old_hi) { + return std::pair( + false, + "index-column name " + dim_name + + ": new upper > limit upper"); + } + } + return std::pair(true, ""); + } + + /** + * This is a helper for can_upgrade_domain. + */ + StatusAndReason _can_set_dataframe_domainish_slot_checker_string( + bool /*check_current_domain*/, + const ArrowTable& domain_table, + std::string dim_name) { + std::vector + new_lo_hi = ArrowAdapter::get_table_string_column_by_name( + domain_table, dim_name); + if (new_lo_hi.size() != 2) { + throw TileDBSOMAError( + "internal coding error detected at " + "_can_set_dataframe_domainish_slot_checker"); + } + + const std::string& new_lo = new_lo_hi[0]; + const std::string& new_hi = new_lo_hi[1]; + + if (new_lo != "" || new_hi != "") { + return std::pair( + false, + "domain cannot be set for string index columns: please use " + "(\"\", \"\")"); + } + + return std::pair(true, ""); + } + /** * While SparseNDArray, DenseNDArray, and default-indexed DataFrame * have int64 dims, variant-indexed DataFrames do not. This helper diff --git a/libtiledbsoma/src/soma/soma_dataframe.cc b/libtiledbsoma/src/soma/soma_dataframe.cc index bf70adb69f..d7feb8a552 100644 --- a/libtiledbsoma/src/soma/soma_dataframe.cc +++ b/libtiledbsoma/src/soma/soma_dataframe.cc @@ -108,7 +108,7 @@ void SOMADataFrame::update_dataframe_schema( attr_name, ArrowAdapter::to_tiledb_format(attr_type)); - if (ArrowAdapter::arrow_is_string_type(attr_type.c_str())) { + if (ArrowAdapter::arrow_is_var_length_type(attr_type.c_str())) { attr.set_cell_val_num(TILEDB_VAR_NUM); } diff --git a/libtiledbsoma/src/soma/soma_dense_ndarray.cc b/libtiledbsoma/src/soma/soma_dense_ndarray.cc index 63a16e31d4..13d3f2ee18 100644 --- a/libtiledbsoma/src/soma/soma_dense_ndarray.cc +++ b/libtiledbsoma/src/soma/soma_dense_ndarray.cc @@ -53,6 +53,7 @@ void SOMADenseNDArray::create( schema->format = strdup("+s"); schema->n_children = index_column_size + 1; schema->dictionary = nullptr; + schema->metadata = nullptr; schema->flags = 0; schema->release = &ArrowAdapter::release_schema; schema->children = new ArrowSchema*[schema->n_children]; @@ -64,6 +65,7 @@ void SOMADenseNDArray::create( dim->name = strdup( std::string("soma_dim_" + std::to_string(dim_idx)).c_str()); dim->n_children = 0; + dim->metadata = nullptr; dim->dictionary = nullptr; dim->release = &ArrowAdapter::release_schema; index_column_names.push_back(dim->name); @@ -75,6 +77,7 @@ void SOMADenseNDArray::create( attr->n_children = 0; attr->flags = 0; // or ARROW_FLAG_NULLABLE; attr->dictionary = nullptr; + attr->metadata = nullptr; attr->release = &ArrowAdapter::release_schema; auto tiledb_schema = ArrowAdapter::tiledb_schema_from_arrow_schema( diff --git a/libtiledbsoma/src/soma/soma_group.cc b/libtiledbsoma/src/soma/soma_group.cc index 8d174b39ad..899729203d 100644 --- a/libtiledbsoma/src/soma/soma_group.cc +++ b/libtiledbsoma/src/soma/soma_group.cc @@ -261,12 +261,14 @@ void SOMAGroup::set_metadata( metadata_.insert(mdpair); } -void SOMAGroup::delete_metadata(const std::string& key) { - if (key.compare(SOMA_OBJECT_TYPE_KEY) == 0) +void SOMAGroup::delete_metadata(const std::string& key, bool force) { + if (!force && key.compare(SOMA_OBJECT_TYPE_KEY) == 0) { throw TileDBSOMAError(SOMA_OBJECT_TYPE_KEY + " cannot be deleted."); + } - if (key.compare(ENCODING_VERSION_KEY) == 0) + if (!force && key.compare(ENCODING_VERSION_KEY) == 0) { throw TileDBSOMAError(ENCODING_VERSION_KEY + " cannot be deleted."); + } group_->delete_metadata(key); metadata_.erase(key); diff --git a/libtiledbsoma/src/soma/soma_group.h b/libtiledbsoma/src/soma/soma_group.h index a1ff427624..29e7a7a52d 100644 --- a/libtiledbsoma/src/soma/soma_group.h +++ b/libtiledbsoma/src/soma/soma_group.h @@ -171,6 +171,15 @@ class SOMAGroup : public SOMAObject { */ std::shared_ptr ctx(); + /** + * Check if a named member is relative + * + * @param name of member to retrieve associated relative indicator. + */ + bool is_relative(std::string name) const { + return group_->is_relative(name); + } + /** * Get a member from the SOMAGroup given the index. * @@ -264,7 +273,7 @@ class SOMAGroup : public SOMAObject { * @note If the key does not exist, this will take no effect * (i.e., the function will not error out). */ - void delete_metadata(const std::string& key); + void delete_metadata(const std::string& key, bool force = false); /** * @brief Given a key, get the associated value datatype, number of diff --git a/libtiledbsoma/src/soma/soma_object.h b/libtiledbsoma/src/soma/soma_object.h index 88aa22872e..99bee2fa08 100644 --- a/libtiledbsoma/src/soma/soma_object.h +++ b/libtiledbsoma/src/soma/soma_object.h @@ -124,13 +124,16 @@ class SOMAObject { * error out. * * @param key The key of the metadata item to be deleted. + * @param force A boolean toggle to suppress internal checks, defaults to + * false. * * @note The writes will take effect only upon closing the group. * * @note If the key does not exist, this will take no effect * (i.e., the function will not error out). */ - virtual void delete_metadata(const std::string& key) = 0; + virtual void delete_metadata( + const std::string& key, bool force = false) = 0; /** * @brief Given a key, get the associated value datatype, number of diff --git a/libtiledbsoma/src/soma/soma_sparse_ndarray.cc b/libtiledbsoma/src/soma/soma_sparse_ndarray.cc index a1f0ad149f..f518ebe342 100644 --- a/libtiledbsoma/src/soma/soma_sparse_ndarray.cc +++ b/libtiledbsoma/src/soma/soma_sparse_ndarray.cc @@ -54,6 +54,7 @@ void SOMASparseNDArray::create( schema->format = strdup("+s"); schema->n_children = index_column_size + 1; schema->dictionary = nullptr; + schema->metadata = nullptr; schema->flags = 0; schema->release = &ArrowAdapter::release_schema; schema->children = new ArrowSchema*[schema->n_children]; @@ -66,6 +67,7 @@ void SOMASparseNDArray::create( std::string("soma_dim_" + std::to_string(dim_idx)).c_str()); dim->n_children = 0; dim->dictionary = nullptr; + dim->metadata = nullptr; dim->release = &ArrowAdapter::release_schema; index_column_names.push_back(dim->name); } @@ -76,6 +78,7 @@ void SOMASparseNDArray::create( attr->n_children = 0; attr->flags = 0; attr->dictionary = nullptr; + attr->metadata = nullptr; attr->release = &ArrowAdapter::release_schema; auto tiledb_schema = ArrowAdapter::tiledb_schema_from_arrow_schema( diff --git a/libtiledbsoma/src/utils/arrow_adapter.cc b/libtiledbsoma/src/utils/arrow_adapter.cc index 1c793c99ef..899897a667 100644 --- a/libtiledbsoma/src/utils/arrow_adapter.cc +++ b/libtiledbsoma/src/utils/arrow_adapter.cc @@ -178,6 +178,155 @@ void ArrowAdapter::release_array(struct ArrowArray* array) { LOG_TRACE(fmt::format("[ArrowAdapter] release_array done")); } +PlatformConfig ArrowAdapter::platform_config_from_tiledb_schema( + ArraySchema tiledb_schema) { + std::map layout_as_string{ + {TILEDB_ROW_MAJOR, "row-major"}, + {TILEDB_COL_MAJOR, "column-major"}, + {TILEDB_HILBERT, "hilbert"}, + {TILEDB_UNORDERED, "unordered"}, + }; + + PlatformConfig platform_config; + platform_config.capacity = tiledb_schema.capacity(); + platform_config.allows_duplicates = tiledb_schema.allows_dups(); + platform_config.tile_order = layout_as_string[tiledb_schema.tile_order()]; + platform_config.cell_order = layout_as_string[tiledb_schema.cell_order()]; + platform_config.offsets_filters = ArrowAdapter::_get_filter_list_json( + tiledb_schema.offsets_filter_list()) + .dump(); + platform_config.validity_filters = ArrowAdapter::_get_filter_list_json( + tiledb_schema.validity_filter_list()) + .dump(); + platform_config.attrs = ArrowAdapter::_get_attrs_filter_list_json( + tiledb_schema) + .dump(); + platform_config.dims = ArrowAdapter::_get_dims_list_json(tiledb_schema) + .dump(); + + return platform_config; +} + +json ArrowAdapter::_get_attrs_filter_list_json( + const ArraySchema& tiledb_schema) { + json attrs_filter_list_as_json; + for (const auto& attr : tiledb_schema.attributes()) { + json attr_info = { + {"filters", _get_filter_list_json(attr.second.filter_list())}}; + attrs_filter_list_as_json.emplace(attr.first, attr_info); + } + return attrs_filter_list_as_json; +} + +json ArrowAdapter::_get_dims_list_json(const ArraySchema& tiledb_schema) { + json dims_as_json; + for (const auto& dim : tiledb_schema.domain().dimensions()) { + json dim_info = { + {"tile", dim.tile_extent_to_str()}, + {"filters", _get_filter_list_json(dim.filter_list())}}; + dims_as_json.emplace(dim.name(), dim_info); + } + return dims_as_json; +} + +json ArrowAdapter::_get_filter_list_json(FilterList filter_list) { + std::map option_as_string = { + {TILEDB_COMPRESSION_LEVEL, "COMPRESSION_LEVEL"}, + {TILEDB_BIT_WIDTH_MAX_WINDOW, "BIT_WIDTH_MAX_WINDOW"}, + {TILEDB_POSITIVE_DELTA_MAX_WINDOW, "POSITIVE_DELTA_MAX_WINDOW"}, + {TILEDB_SCALE_FLOAT_BYTEWIDTH, "SCALE_FLOAT_BYTEWIDTH"}, + {TILEDB_SCALE_FLOAT_FACTOR, "SCALE_FLOAT_FACTOR"}, + {TILEDB_SCALE_FLOAT_OFFSET, "SCALE_FLOAT_OFFSET"}, + {TILEDB_WEBP_INPUT_FORMAT, "WEBP_INPUT_FORMAT"}, + {TILEDB_WEBP_QUALITY, "WEBP_QUALITY"}, + {TILEDB_WEBP_LOSSLESS, "WEBP_LOSSLESS"}, + {TILEDB_COMPRESSION_REINTERPRET_DATATYPE, + "COMPRESSION_REINTERPRET_DATATYPE"}, + }; + + json filter_list_as_json = {}; + for (uint32_t i = 0; i < filter_list.nfilters(); ++i) { + json filter_as_json = {}; + + auto filter = filter_list.filter(i); + filter_as_json.emplace("name", Filter::to_str(filter.filter_type())); + + switch (filter.filter_type()) { + case TILEDB_FILTER_GZIP: + case TILEDB_FILTER_ZSTD: + case TILEDB_FILTER_LZ4: + case TILEDB_FILTER_BZIP2: + case TILEDB_FILTER_RLE: + case TILEDB_FILTER_DICTIONARY: + filter_as_json.emplace( + "COMPRESSION_LEVEL", + filter.get_option(TILEDB_COMPRESSION_LEVEL)); + break; + + case TILEDB_FILTER_DELTA: + case TILEDB_FILTER_DOUBLE_DELTA: + filter_as_json.emplace( + "COMPRESSION_LEVEL", + filter.get_option(TILEDB_COMPRESSION_LEVEL)); + filter_as_json.emplace( + "COMPRESSION_REINTERPRET_DATATYPE", + filter.get_option( + TILEDB_COMPRESSION_REINTERPRET_DATATYPE)); + break; + + case TILEDB_FILTER_BIT_WIDTH_REDUCTION: + filter_as_json.emplace( + "BIT_WIDTH_MAX_WINDOW", + filter.get_option(TILEDB_BIT_WIDTH_MAX_WINDOW)); + break; + + case TILEDB_FILTER_POSITIVE_DELTA: + filter_as_json.emplace( + "POSITIVE_DELTA_MAX_WINDOW", + filter.get_option( + TILEDB_POSITIVE_DELTA_MAX_WINDOW)); + break; + + case TILEDB_FILTER_SCALE_FLOAT: + filter_as_json.emplace( + "SCALE_FLOAT_FACTOR", + filter.get_option(TILEDB_SCALE_FLOAT_FACTOR)); + filter_as_json.emplace( + "SCALE_FLOAT_OFFSET", + filter.get_option(TILEDB_SCALE_FLOAT_OFFSET)); + filter_as_json.emplace( + "SCALE_FLOAT_BYTEWIDTH", + filter.get_option(TILEDB_SCALE_FLOAT_BYTEWIDTH)); + break; + + case TILEDB_FILTER_WEBP: + filter_as_json.emplace( + "WEBP_INPUT_FORMAT", + filter.get_option(TILEDB_WEBP_INPUT_FORMAT)); + filter_as_json.emplace( + "WEBP_QUALITY", + filter.get_option(TILEDB_WEBP_QUALITY)); + filter_as_json.emplace( + "WEBP_LOSSLESS", + filter.get_option(TILEDB_WEBP_LOSSLESS)); + break; + + case TILEDB_FILTER_CHECKSUM_MD5: + case TILEDB_FILTER_CHECKSUM_SHA256: + case TILEDB_FILTER_XOR: + case TILEDB_FILTER_BITSHUFFLE: + case TILEDB_FILTER_BYTESHUFFLE: + case TILEDB_FILTER_DEPRECATED: + case TILEDB_FILTER_NONE: + // These filters have no options and are left empty + // intentionally + break; + } + filter_list_as_json.emplace_back(filter_as_json); + } + return filter_list_as_json; +} + std::unique_ptr ArrowAdapter::arrow_schema_from_tiledb_array( std::shared_ptr ctx, std::shared_ptr tiledb_array) { auto tiledb_schema = tiledb_array->schema(); @@ -808,7 +957,18 @@ ArraySchema ArrowAdapter::tiledb_schema_from_arrow_schema( for (int64_t sch_idx = 0; sch_idx < arrow_schema->n_children; ++sch_idx) { auto child = arrow_schema->children[sch_idx]; - auto type = ArrowAdapter::to_tiledb_format(child->format); + std::string_view type_metadata; + + if (ArrowMetadataHasKey(child->metadata, ArrowCharView("dtype"))) { + ArrowStringView out; + NANOARROW_THROW_NOT_OK(ArrowMetadataGetValue( + child->metadata, ArrowCharView("dtype"), &out)); + + type_metadata = std::string_view(out.data, out.size_bytes); + } + + auto type = ArrowAdapter::to_tiledb_format( + child->format, type_metadata); LOG_DEBUG(fmt::format( "[ArrowAdapter] schema pass for child {} name {}", @@ -822,7 +982,7 @@ ArraySchema ArrowAdapter::tiledb_schema_from_arrow_schema( auto schild = index_column_schema->children[i]; auto col_name = schild->name; if (strcmp(child->name, col_name) == 0) { - if (ArrowAdapter::arrow_is_string_type(child->format)) { + if (ArrowAdapter::arrow_is_var_length_type(child->format)) { type = TILEDB_STRING_ASCII; } @@ -861,7 +1021,7 @@ ArraySchema ArrowAdapter::tiledb_schema_from_arrow_schema( attr.set_nullable(true); } - if (ArrowAdapter::arrow_is_string_type(child->format)) { + if (ArrowAdapter::arrow_is_var_length_type(child->format)) { attr.set_cell_val_num(TILEDB_VAR_NUM); } @@ -872,7 +1032,7 @@ ArraySchema ArrowAdapter::tiledb_schema_from_arrow_schema( *ctx, child->name, enmr_type, - ArrowAdapter::arrow_is_string_type(enmr_format) ? + ArrowAdapter::arrow_is_var_length_type(enmr_format) ? TILEDB_VAR_NUM : 1, child->flags & ARROW_FLAG_DICTIONARY_ORDERED); @@ -921,7 +1081,7 @@ ArraySchema ArrowAdapter::tiledb_schema_from_arrow_schema( continue; } - if (ArrowAdapter::arrow_is_string_type(child->format)) { + if (ArrowAdapter::arrow_is_var_length_type(child->format)) { // In the core API: // // * domain for strings must be set as (nullptr, nullptr) @@ -1118,8 +1278,9 @@ ArrowAdapter::to_arrow(std::shared_ptr column) { if (array->n_buffers != n_buffers) { throw TileDBSOMAError(fmt::format( - "[ArrowAdapter] expected array n_buffers {}; got {}", + "[ArrowAdapter] expected array n_buffers {} for column {}; got {}", n_buffers, + column->name(), array->n_buffers)); } @@ -1250,7 +1411,7 @@ ArrowAdapter::to_arrow(std::shared_ptr column) { return std::pair(std::move(array), std::move(schema)); } -bool ArrowAdapter::arrow_is_string_type(const char* format) { +bool ArrowAdapter::arrow_is_var_length_type(const char* format) { return ( (strcmp(format, "U") == 0) || (strcmp(format, "Z") == 0) || (strcmp(format, "u") == 0) || (strcmp(format, "z") == 0)); @@ -1270,8 +1431,8 @@ std::string_view ArrowAdapter::to_arrow_format( {TILEDB_FLOAT32, "f"}, {TILEDB_FLOAT64, "g"}, {TILEDB_BOOL, "b"}, {TILEDB_DATETIME_SEC, "tss:"}, {TILEDB_DATETIME_MS, "tsm:"}, {TILEDB_DATETIME_US, "tsu:"}, - {TILEDB_DATETIME_NS, "tsn:"}, - }; + {TILEDB_DATETIME_NS, "tsn:"}, {TILEDB_GEOM_WKB, z}, + {TILEDB_GEOM_WKT, u}}; try { return _to_arrow_format_map.at(tiledb_dtype); @@ -1282,7 +1443,8 @@ std::string_view ArrowAdapter::to_arrow_format( } } -tiledb_datatype_t ArrowAdapter::to_tiledb_format(std::string_view arrow_dtype) { +tiledb_datatype_t ArrowAdapter::to_tiledb_format( + std::string_view arrow_dtype, std::string_view arrow_dtype_metadata) { std::map _to_tiledb_format_map = { {"u", TILEDB_STRING_UTF8}, {"U", TILEDB_STRING_UTF8}, {"z", TILEDB_CHAR}, {"Z", TILEDB_CHAR}, @@ -1297,7 +1459,17 @@ tiledb_datatype_t ArrowAdapter::to_tiledb_format(std::string_view arrow_dtype) { }; try { - return _to_tiledb_format_map.at(arrow_dtype); + auto dtype = _to_tiledb_format_map.at(arrow_dtype); + + if (dtype == TILEDB_CHAR && arrow_dtype_metadata.compare("WKB") == 0) { + dtype = TILEDB_GEOM_WKB; + } else if ( + dtype == TILEDB_STRING_UTF8 && + arrow_dtype_metadata.compare("WKT") == 0) { + dtype = TILEDB_GEOM_WKT; + } + + return dtype; } catch (const std::out_of_range& e) { throw std::out_of_range(fmt::format( "ArrowAdapter: Unsupported Arrow type: {} ", arrow_dtype)); diff --git a/libtiledbsoma/src/utils/arrow_adapter.h b/libtiledbsoma/src/utils/arrow_adapter.h index 41af7c1c56..83afcce1f9 100644 --- a/libtiledbsoma/src/utils/arrow_adapter.h +++ b/libtiledbsoma/src/utils/arrow_adapter.h @@ -229,6 +229,14 @@ class ArrowAdapter { static std::unique_ptr arrow_schema_from_tiledb_array( std::shared_ptr ctx, std::shared_ptr tiledb_array); + /** + * @brief Get members of the TileDB Schema in the form of a PlatformConfig + * + * @return PlatformConfig + */ + static PlatformConfig platform_config_from_tiledb_schema( + ArraySchema tiledb_schema); + /** * @brief Create a TileDB ArraySchema from ArrowSchema * @@ -267,15 +275,19 @@ class ArrowAdapter { * @param const char* Arrow data format * @return bool Whether the Arrow type represents a string type */ - static bool arrow_is_string_type(const char* format); + static bool arrow_is_var_length_type(const char* format); /** * @brief Get TileDB datatype from Arrow format string. * * @param datatype TileDB datatype. + * @param arrow_dtype_metadata Additional datatype info. Useful for + * differentiating between BLOB and WKB. * @return std::string_view Arrow format string. */ - static tiledb_datatype_t to_tiledb_format(std::string_view arrow_dtype); + static tiledb_datatype_t to_tiledb_format( + std::string_view arrow_dtype, + std::string_view arrow_dtype_metadata = {}); static enum ArrowType to_nanoarrow_type(std::string_view sv); @@ -712,6 +724,12 @@ class ArrowAdapter { static tiledb_layout_t _get_order(std::string order); + static json _get_attrs_filter_list_json(const ArraySchema& tiledb_schema); + + static json _get_dims_list_json(const ArraySchema& tiledb_schema); + + static json _get_filter_list_json(FilterList filter_list); + // Throws if the array and the schema don't have the same // recursive child-counts. static void _check_shapes( @@ -725,8 +743,6 @@ class ArrowAdapter { const ArrowTable& arrow_table, int64_t column_index, int64_t expected_n_buffers); - }; // class ArrowAdapter - }; // namespace tiledbsoma #endif diff --git a/libtiledbsoma/test/CMakeLists.txt b/libtiledbsoma/test/CMakeLists.txt index 96aab605d1..8888b06b23 100644 --- a/libtiledbsoma/test/CMakeLists.txt +++ b/libtiledbsoma/test/CMakeLists.txt @@ -15,9 +15,11 @@ find_package(Catch_EP REQUIRED) add_executable(unit_soma $ + $ $ common.cc common.h + unit_geometry_roundtrip.cc unit_arrow_adapter.cc unit_column_buffer.cc unit_managed_query.cc @@ -40,6 +42,10 @@ target_link_libraries(unit_soma Catch2::Catch2WithMain TileDB::tiledb_shared ) +target_link_options(unit_soma + PRIVATE + ${TILEDBSOMA_SANITIZER_FLAG} +) target_include_directories(unit_soma PRIVATE @@ -57,6 +63,7 @@ target_compile_definitions(unit_soma target_compile_options(unit_soma PRIVATE ${TILEDBSOMA_COMPILE_OPTIONS} + ${TILEDBSOMA_SANITIZER_FLAG} ${TILEDBSOMA_WERROR_OPTION} ) @@ -82,9 +89,78 @@ if (WIN32) ) endif() +############################################################ +# SOMA geometry unit test +############################################################ + +add_executable(unit_geometry + $ + $ + $ + common.cc + common.h + unit_geometry_roundtrip.cc + unit_geometry_envelope.cc +# TODO: uncomment when thread_pool is enabled +# unit_thread_pool.cc +) + +target_link_libraries(unit_geometry + PRIVATE + Catch2::Catch2WithMain + TileDB::tiledb_shared +) + +target_link_options(unit_geometry + PRIVATE + ${TILEDBSOMA_SANITIZER_FLAG} +) + +target_include_directories(unit_geometry + PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/../src + ${CMAKE_CURRENT_SOURCE_DIR}/../src/external/include + ${pybind11_INCLUDE_DIRS} + ${TILEDB_SOMA_EXPORT_HEADER_DIR} + $ +) + +target_compile_definitions(unit_geometry + PRIVATE + CATCH_CONFIG_MAIN +) +target_compile_options(unit_geometry + PRIVATE + ${TILEDBSOMA_COMPILE_OPTIONS} + ${TILEDBSOMA_WERROR_OPTION} +) + +if (NOT MSVC) + # Allow deprecated function for writing to an array with a timestamp + target_compile_options(unit_geometry PRIVATE -Wno-deprecated-declarations) +endif() + +if (NOT APPLE AND NOT WIN32) + target_link_libraries(unit_geometry PRIVATE pthread) +endif() + +add_test( + NAME "unit_geometry" + COMMAND $ "--durations=yes" + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +) + +if (WIN32) + add_custom_command(TARGET unit_geometry POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different $ $ + COMMAND_EXPAND_LISTS + ) +endif() + add_custom_target(build_tests) add_dependencies(build_tests unit_soma + unit_geometry ) ############################################################ diff --git a/libtiledbsoma/test/common.cc b/libtiledbsoma/test/common.cc index 5d9e4e9535..831b503ee5 100644 --- a/libtiledbsoma/test/common.cc +++ b/libtiledbsoma/test/common.cc @@ -42,11 +42,15 @@ namespace helper { // array-creation error.) const int CORE_DOMAIN_MAX = 2147483646; -static std::unique_ptr _create_index_cols_info_schema( - const std::vector& dim_infos); static std::unique_ptr _create_index_cols_info_array( const std::vector& dim_infos); +// Core PRP: https://github.com/TileDB-Inc/TileDB/pull/5303 +bool have_dense_current_domain_support() { + auto vers = tiledbsoma::version::embedded_version_triple(); + return std::get<0>(vers) >= 2 && std::get<1>(vers) >= 27; +} + // Notes: // // * This is multi-purpose code used for generic SOMASparseNDArray, @@ -106,7 +110,7 @@ create_arrow_schema_and_index_columns( auto arrow_schema = ArrowAdapter::make_arrow_schema( names, tiledb_datatypes); - auto index_cols_info_schema = _create_index_cols_info_schema(dim_infos); + auto index_cols_info_schema = create_index_cols_info_schema(dim_infos); auto index_cols_info_array = _create_index_cols_info_array(dim_infos); return std::pair( @@ -122,19 +126,19 @@ ArrowTable create_column_index_info(const std::vector& dim_infos) { LOG_DEBUG(fmt::format( "create_column_index_info name={} type={} dim_max={} ucd={}", info.name, - info.tiledb_datatype, + tiledb::impl::to_str(info.tiledb_datatype), info.dim_max, info.use_current_domain)); } - auto index_cols_info_schema = _create_index_cols_info_schema(dim_infos); + auto index_cols_info_schema = create_index_cols_info_schema(dim_infos); auto index_cols_info_array = _create_index_cols_info_array(dim_infos); return ArrowTable( std::move(index_cols_info_array), std::move(index_cols_info_schema)); } -static std::unique_ptr _create_index_cols_info_schema( +std::unique_ptr create_index_cols_info_schema( const std::vector& dim_infos) { auto ndim = dim_infos.size(); diff --git a/libtiledbsoma/test/common.h b/libtiledbsoma/test/common.h index e8e838724f..ef01ada426 100644 --- a/libtiledbsoma/test/common.h +++ b/libtiledbsoma/test/common.h @@ -87,5 +87,11 @@ ArrowTable create_column_index_info(const std::vector& dim_infos); std::string to_arrow_format(tiledb_datatype_t tiledb_datatype); +// Core PR: https://github.com/TileDB-Inc/TileDB/pull/5303 +bool have_dense_current_domain_support(); + +std::unique_ptr create_index_cols_info_schema( + const std::vector& dim_infos); + } // namespace helper #endif diff --git a/libtiledbsoma/test/unit_geometry_envelope.cc b/libtiledbsoma/test/unit_geometry_envelope.cc new file mode 100644 index 0000000000..7f2f417a04 --- /dev/null +++ b/libtiledbsoma/test/unit_geometry_envelope.cc @@ -0,0 +1,124 @@ +/** + * @file unit_geometry_envelope.cc + * + * @section LICENSE + * + * The MIT License + * + * @copyright Copyright (c) 2024 TileDB, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @section DESCRIPTION + * + * This file manages unit tests for testing the geometry envelope computation + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "../src/geometry/geometry.h" +#include "../src/geometry/operators/envelope.h" + +using namespace tiledbsoma; +using namespace tiledbsoma::geometry; +using namespace Catch::Matchers; + +#ifndef TILEDBSOMA_SOURCE_ROOT +#define TILEDBSOMA_SOURCE_ROOT "not_defined" +#endif + +TEST_CASE("Geometry: Envelope") { + Point point(10, 20); + LineString linestring( + std::vector({BasePoint(2, 2), BasePoint(3, 4)})); + Polygon polygon(std::vector( + {BasePoint(0, 0), BasePoint(1, 0), BasePoint(0, 1)})); + MultiPoint multi_point(std::vector({Point(0, 0), Point(1, 1)})); + MultiLineString multi_linestring(std::vector( + {LineString(std::vector({BasePoint(2, 2), BasePoint(3, 4)})), + LineString( + std::vector({BasePoint(0, -2), BasePoint(3, 0)}))})); + MultiPolygon multi_polygon(std::vector( + {Polygon(std::vector( + {BasePoint(0, 1), BasePoint(1, 1), BasePoint(-10, 10)})), + Polygon(std::vector( + {BasePoint(-2, -2), + BasePoint(-2, 2), + BasePoint(2, 2), + BasePoint(2, -2)}))})); + GeometryCollection collection( + {point, + linestring, + polygon, + multi_point, + multi_linestring, + multi_polygon}); + + Envelope point_envelope = envelope(point); + CHECK(point_envelope.range.at(0).first == point.x); + CHECK(point_envelope.range.at(0).second == point.x); + CHECK(point_envelope.range.at(1).first == point.y); + CHECK(point_envelope.range.at(1).second == point.y); + + Envelope linestring_envelope = envelope(linestring); + CHECK(linestring_envelope.range.at(0).first == 2); + CHECK(linestring_envelope.range.at(0).second == 3); + CHECK(linestring_envelope.range.at(1).first == 2); + CHECK(linestring_envelope.range.at(1).second == 4); + + Envelope polygon_envelope = envelope(polygon); + CHECK(polygon_envelope.range.at(0).first == 0); + CHECK(polygon_envelope.range.at(0).second == 1); + CHECK(polygon_envelope.range.at(1).first == 0); + CHECK(polygon_envelope.range.at(1).second == 1); + + Envelope multi_point_envelope = envelope(multi_point); + CHECK(multi_point_envelope.range.at(0).first == 0); + CHECK(multi_point_envelope.range.at(0).second == 1); + CHECK(multi_point_envelope.range.at(1).first == 0); + CHECK(multi_point_envelope.range.at(1).second == 1); + + Envelope multi_linestring_envelope = envelope(multi_linestring); + CHECK(multi_linestring_envelope.range.at(0).first == 0); + CHECK(multi_linestring_envelope.range.at(0).second == 3); + CHECK(multi_linestring_envelope.range.at(1).first == -2); + CHECK(multi_linestring_envelope.range.at(1).second == 4); + + Envelope multi_polygon_envelope = envelope(multi_polygon); + CHECK(multi_polygon_envelope.range.at(0).first == -10); + CHECK(multi_polygon_envelope.range.at(0).second == 2); + CHECK(multi_polygon_envelope.range.at(1).first == -2); + CHECK(multi_polygon_envelope.range.at(1).second == 10); + + Envelope collection_envelope = envelope(collection); + CHECK(collection_envelope.range.at(0).first == -10); + CHECK(collection_envelope.range.at(0).second == 10); + CHECK(collection_envelope.range.at(1).first == -2); + CHECK(collection_envelope.range.at(1).second == 20); +} diff --git a/libtiledbsoma/test/unit_geometry_roundtrip.cc b/libtiledbsoma/test/unit_geometry_roundtrip.cc new file mode 100644 index 0000000000..25d8cc4c54 --- /dev/null +++ b/libtiledbsoma/test/unit_geometry_roundtrip.cc @@ -0,0 +1,248 @@ +/** + * @file unit_geometry_roundtrip.cc + * + * @section LICENSE + * + * The MIT License + * + * @copyright Copyright (c) 2022-2023 TileDB, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @section DESCRIPTION + * + * This file manages unit tests for testing the geometry utilities + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "../src/geometry/geometry.h" +#include "../src/geometry/operators/io/read.h" +#include "../src/geometry/operators/io/write.h" + +using namespace tiledbsoma; +using namespace tiledbsoma::geometry; +using namespace Catch::Matchers; + +#ifndef TILEDBSOMA_SOURCE_ROOT +#define TILEDBSOMA_SOURCE_ROOT "not_defined" +#endif + +TEST_CASE("Geometry: Point roundtrip") { + Point point(GENERATE(1.0, 5.2), GENERATE(3.0, 1.3)); + + BinaryBuffer buffer = to_wkb(GenericGeometry(point)); + CHECK(buffer.size() == 21); + + GenericGeometry parsedGeometry = from_wkb(buffer); + + CHECK(std::holds_alternative(parsedGeometry)); + Point parsedPoint = std::get(parsedGeometry); + CHECK(point.x == parsedPoint.x); + CHECK(point.y == parsedPoint.y); +} + +TEST_CASE("Geometry: LineString roundtrip") { + LineString linestring(std::vector( + {BasePoint(5.2, 1.3), BasePoint(1.0, 3.0), BasePoint(1.0, 1.4)})); + + BinaryBuffer buffer = to_wkb(GenericGeometry(linestring)); + CHECK(buffer.size() == 57); + + GenericGeometry parsedGeometry = from_wkb(buffer); + + CHECK(std::holds_alternative(parsedGeometry)); + LineString parsedLineString = std::get(parsedGeometry); + + CHECK(parsedLineString.points.size() == 3); + for (uint32_t i = 0; i < linestring.points.size(); ++i) { + CHECK(linestring.points[i].x == parsedLineString.points[i].x); + CHECK(linestring.points[i].y == parsedLineString.points[i].y); + } +} + +TEST_CASE("Geometry: Polygon roundtrip") { + Polygon polygon( + std::vector( + {BasePoint(5.2, 1.3), BasePoint(1.0, 3.0), BasePoint(1.0, 1.4)}), + std::vector>({std::vector( + {BasePoint(5.234, 1.3), BasePoint(13.0, 3.0)})})); + + BinaryBuffer buffer = to_wkb(GenericGeometry(polygon)); + CHECK(buffer.size() == 97); + + GenericGeometry parsedGeometry = from_wkb(buffer); + + CHECK(std::holds_alternative(parsedGeometry)); + + Polygon parsedPolygon = std::get(parsedGeometry); + + CHECK(parsedPolygon.exteriorRing.size() == 3); + CHECK(parsedPolygon.interiorRings.size() == 1); + CHECK(parsedPolygon.interiorRings[0].size() == 2); + + for (uint32_t i = 0; i < polygon.exteriorRing.size(); ++i) { + CHECK(parsedPolygon.exteriorRing[i].x == polygon.exteriorRing[i].x); + CHECK(parsedPolygon.exteriorRing[i].y == polygon.exteriorRing[i].y); + } + + for (uint32_t i = 0; i < polygon.interiorRings.size(); ++i) { + for (uint32_t j = 0; j < polygon.interiorRings[i].size(); ++j) { + CHECK( + parsedPolygon.interiorRings[i][j].x == + polygon.interiorRings[i][j].x); + CHECK( + parsedPolygon.interiorRings[i][j].y == + polygon.interiorRings[i][j].y); + } + } +} + +TEST_CASE("Geometry: Multipoint roundtrip") { + MultiPoint multi_point(std::vector( + {Point(GENERATE(1.0, 5.2), 1.3), Point(3.14, GENERATE(3.0, 0))})); + + BinaryBuffer buffer = to_wkb(GenericGeometry(multi_point)); + CHECK(buffer.size() == 51); + + GenericGeometry parsedGeometry = from_wkb(buffer); + + CHECK(std::holds_alternative(parsedGeometry)); + + MultiPoint parsed_multi_point = std::get(parsedGeometry); + + CHECK(parsed_multi_point.points.size() == multi_point.points.size()); + + for (uint32_t i = 0; i < multi_point.points.size(); ++i) { + CHECK(multi_point.points[i].x == parsed_multi_point.points[i].x); + CHECK(multi_point.points[i].y == parsed_multi_point.points[i].y); + } +} + +TEST_CASE("Geometry: MultiLineString roundtrip") { + MultiLineString multi_linestring(std::vector( + {LineString(std::vector( + {BasePoint(5.2, 1.3), BasePoint(1.0, 3.0), BasePoint(1.0, 1.4)})), + LineString(std::vector( + {BasePoint(0, 100), BasePoint(3.15, 1.67)}))})); + + BinaryBuffer buffer = to_wkb(GenericGeometry(multi_linestring)); + CHECK(buffer.size() == 107); + + GenericGeometry parsedGeometry = from_wkb(buffer); + + CHECK(std::holds_alternative(parsedGeometry)); + + MultiLineString parsed_multi_linestring = std::get( + parsedGeometry); + + CHECK( + parsed_multi_linestring.linestrings.size() == + multi_linestring.linestrings.size()); + + for (uint32_t i = 0; i < multi_linestring.linestrings.size(); ++i) { + CHECK( + parsed_multi_linestring.linestrings[i].points.size() == + multi_linestring.linestrings[i].points.size()); + for (uint32_t j = 0; j < multi_linestring.linestrings[i].points.size(); + ++j) { + CHECK( + multi_linestring.linestrings[i].points[j].x == + parsed_multi_linestring.linestrings[i].points[j].x); + CHECK( + multi_linestring.linestrings[i].points[j].y == + parsed_multi_linestring.linestrings[i].points[j].y); + } + } +} + +TEST_CASE("Geometry: MultiPolygon roundtrip") { + MultiPolygon multi_polygon(std::vector( + {Polygon( + std::vector( + {BasePoint(5.2, 1.3), + BasePoint(1.0, 3.0), + BasePoint(1.0, 1.4)}), + std::vector>({std::vector( + {BasePoint(5.234, 1.3), BasePoint(13.0, 3.0)})})), + Polygon(std::vector( + {BasePoint(5.2, 6.3), + BasePoint(1.3664, 3.0), + BasePoint(1, 10)}))})); + + BinaryBuffer buffer = to_wkb(GenericGeometry(multi_polygon)); + CHECK(buffer.size() == 167); + + GenericGeometry parsedGeometry = from_wkb(buffer); + + CHECK(std::holds_alternative(parsedGeometry)); + + MultiPolygon parsed_multi_polygon = std::get(parsedGeometry); + + CHECK( + parsed_multi_polygon.polygons.size() == multi_polygon.polygons.size()); + + for (uint32_t i = 0; i < multi_polygon.polygons.size(); ++i) { + CHECK( + multi_polygon.polygons[i].exteriorRing.size() == + parsed_multi_polygon.polygons[i].exteriorRing.size()); + + for (uint32_t j = 0; j < multi_polygon.polygons[i].exteriorRing.size(); + ++j) { + CHECK( + multi_polygon.polygons[i].exteriorRing[j].x == + parsed_multi_polygon.polygons[i].exteriorRing[j].x); + CHECK( + multi_polygon.polygons[i].exteriorRing[j].y == + parsed_multi_polygon.polygons[i].exteriorRing[j].y); + } + + CHECK( + multi_polygon.polygons[i].interiorRings.size() == + parsed_multi_polygon.polygons[i].interiorRings.size()); + + for (uint32_t j = 0; j < multi_polygon.polygons[i].interiorRings.size(); + ++j) { + CHECK( + multi_polygon.polygons[i].interiorRings[j].size() == + parsed_multi_polygon.polygons[i].interiorRings[j].size()); + + for (uint32_t k = 0; + k < multi_polygon.polygons[i].interiorRings[j].size(); + ++k) { + CHECK( + multi_polygon.polygons[i].interiorRings[j][k].x == + parsed_multi_polygon.polygons[i].interiorRings[j][k].x); + CHECK( + multi_polygon.polygons[i].interiorRings[j][k].y == + parsed_multi_polygon.polygons[i].interiorRings[j][k].y); + } + } + } +} \ No newline at end of file diff --git a/libtiledbsoma/test/unit_soma_collection.cc b/libtiledbsoma/test/unit_soma_collection.cc index b6f3e6eff7..291159bbf5 100644 --- a/libtiledbsoma/test/unit_soma_collection.cc +++ b/libtiledbsoma/test/unit_soma_collection.cc @@ -111,55 +111,65 @@ TEST_CASE("SOMACollection: add SOMASparseNDArray") { } TEST_CASE("SOMACollection: add SOMADenseNDArray") { - TimestampRange ts(0, 2); - auto ctx = std::make_shared(); - std::string base_uri = "mem://unit-test-add-dense-ndarray"; - std::string sub_uri = "mem://unit-test-add-dense-ndarray/sub"; - std::string dim_name = "soma_dim_0"; - tiledb_datatype_t tiledb_datatype = TILEDB_INT64; - std::string arrow_format = ArrowAdapter::tdb_to_arrow_type(tiledb_datatype); - - SOMACollection::create(base_uri, ctx, ts); - // TODO: add support for current domain in dense arrays once we have that - // support from core - // https://github.com/single-cell-data/TileDB-SOMA/issues/2955 - std::vector dim_infos( - {{.name = dim_name, - .tiledb_datatype = tiledb_datatype, - .dim_max = DIM_MAX, - .string_lo = "N/A", - .string_hi = "N/A", - .use_current_domain = false}}); - auto index_columns = helper::create_column_index_info(dim_infos); - - std::map expected_map{ - {"dense_ndarray", SOMAGroupEntry(sub_uri, "SOMAArray")}}; - - auto soma_collection = SOMACollection::open( - base_uri, OpenMode::write, ctx, ts); - REQUIRE(soma_collection->timestamp() == ts); + auto use_current_domain = GENERATE(false, true); + // TODO this could be formatted with fmt::format which is part of internal + // header spd/log/fmt/fmt.h and should not be used. In C++20, this can be + // replaced with std::format. + std::ostringstream section; + section << "- use_current_domain=" << use_current_domain; + SECTION(section.str()) { + TimestampRange ts(0, 2); + auto ctx = std::make_shared(); + std::string base_uri = "mem://unit-test-add-dense-ndarray"; + std::string sub_uri = "mem://unit-test-add-dense-ndarray/sub"; + std::string dim_name = "soma_dim_0"; + tiledb_datatype_t tiledb_datatype = TILEDB_INT64; + std::string arrow_format = ArrowAdapter::tdb_to_arrow_type( + tiledb_datatype); - auto soma_dense = soma_collection->add_new_dense_ndarray( - "dense_ndarray", - sub_uri, - URIType::absolute, - ctx, - arrow_format, - ArrowTable( - std::move(index_columns.first), std::move(index_columns.second))); - REQUIRE(soma_collection->members_map() == expected_map); - REQUIRE(soma_dense->uri() == sub_uri); - REQUIRE(soma_dense->ctx() == ctx); - REQUIRE(soma_dense->type() == "SOMADenseNDArray"); - REQUIRE(soma_dense->is_sparse() == false); - REQUIRE(soma_dense->ndim() == 1); - REQUIRE(soma_dense->shape() == std::vector{DIM_MAX + 1}); - REQUIRE(soma_dense->timestamp() == ts); - soma_collection->close(); + SOMACollection::create(base_uri, ctx, ts); + std::vector dim_infos( + {{.name = dim_name, + .tiledb_datatype = tiledb_datatype, + .dim_max = DIM_MAX, + .string_lo = "N/A", + .string_hi = "N/A", + .use_current_domain = use_current_domain}}); + auto index_columns = helper::create_column_index_info(dim_infos); - soma_collection = SOMACollection::open(base_uri, OpenMode::read, ctx); - REQUIRE(soma_collection->members_map() == expected_map); - soma_collection->close(); + std::map expected_map{ + {"dense_ndarray", SOMAGroupEntry(sub_uri, "SOMAArray")}}; + + auto soma_collection = SOMACollection::open( + base_uri, OpenMode::write, ctx, ts); + REQUIRE(soma_collection->timestamp() == ts); + + if (helper::have_dense_current_domain_support()) { + auto soma_dense = soma_collection->add_new_dense_ndarray( + "dense_ndarray", + sub_uri, + URIType::absolute, + ctx, + arrow_format, + ArrowTable( + std::move(index_columns.first), + std::move(index_columns.second))); + REQUIRE(soma_collection->members_map() == expected_map); + REQUIRE(soma_dense->uri() == sub_uri); + REQUIRE(soma_dense->ctx() == ctx); + REQUIRE(soma_dense->type() == "SOMADenseNDArray"); + REQUIRE(soma_dense->is_sparse() == false); + REQUIRE(soma_dense->ndim() == 1); + REQUIRE(soma_dense->shape() == std::vector{DIM_MAX + 1}); + REQUIRE(soma_dense->timestamp() == ts); + soma_collection->close(); + + soma_collection = SOMACollection::open( + base_uri, OpenMode::read, ctx); + REQUIRE(soma_collection->members_map() == expected_map); + soma_collection->close(); + } + } } TEST_CASE("SOMACollection: add SOMADataFrame") { diff --git a/libtiledbsoma/test/unit_soma_dataframe.cc b/libtiledbsoma/test/unit_soma_dataframe.cc index 4a7f114fe7..2d5b27e23a 100644 --- a/libtiledbsoma/test/unit_soma_dataframe.cc +++ b/libtiledbsoma/test/unit_soma_dataframe.cc @@ -325,6 +325,7 @@ TEST_CASE_METHOD( "mem://unit-test-dataframe-platform-config"); PlatformConfig platform_config; + platform_config.cell_order = "hilbert"; platform_config.dataframe_dim_zstd_level = 6; platform_config.offsets_filters = R"([)" + filter.first + R"(])"; platform_config.validity_filters = R"([)" + filter.first + R"(])"; @@ -366,6 +367,28 @@ TEST_CASE_METHOD( .filter(0) .filter_type() == filter.second); } + + auto config_options = sdf->config_options_from_schema(); + REQUIRE(config_options.capacity == 100000); + REQUIRE(config_options.allows_duplicates == false); + REQUIRE(config_options.tile_order == "row-major"); + REQUIRE(config_options.cell_order == "hilbert"); + + REQUIRE( + json::parse(config_options.offsets_filters)[0].at("name") == + Filter::to_str(filter.second)); + REQUIRE( + json::parse(config_options.validity_filters)[0].at("name") == + Filter::to_str(filter.second)); + if (filter.second != TILEDB_FILTER_WEBP) { + REQUIRE( + json::parse(config_options.attrs)["a0"]["filters"][0].at( + "name") == Filter::to_str(filter.second)); + } + REQUIRE( + json::parse(config_options.dims)["soma_joinid"]["filters"][0] + .at("name") == Filter::to_str(TILEDB_FILTER_ZSTD)); + sdf->close(); } } @@ -376,9 +399,9 @@ TEST_CASE_METHOD( "SOMADataFrame: metadata", "[SOMADataFrame]") { auto use_current_domain = GENERATE(false, true); - // TODO this could be formatted with fmt::format which is part of internal - // header spd/log/fmt/fmt.h and should not be used. In C++20, this can be - // replaced with std::format. + // TODO this could be formatted with fmt::format which is part of + // internal header spd/log/fmt/fmt.h and should not be used. In + // C++20, this can be replaced with std::format. std::ostringstream section; section << "- use_current_domain=" << use_current_domain; SECTION(section.str()) { @@ -430,8 +453,8 @@ TEST_CASE_METHOD( REQUIRE( *((const int32_t*)std::get(*mdval)) == 100); - // Delete and have it reflected when reading metadata while in write - // mode + // Delete and have it reflected when reading metadata while in + // write mode sdf->delete_metadata("md"); mdval = sdf->get_metadata("md"); REQUIRE(!mdval.has_value()); @@ -492,191 +515,335 @@ TEST_CASE_METHOD( std::ostringstream section; section << "- use_current_domain=" << use_current_domain; SECTION(section.str()) { - std::string suffix = use_current_domain ? "true" : "false"; - set_up( - std::make_shared(), - "mem://unit-test-variant-indexed-dataframe-1-" + suffix); - - std::vector dim_infos( - {i64_dim_info(use_current_domain)}); - std::vector attr_infos( - {str_attr_info(), u32_attr_info()}); + std::string suffix1 = use_current_domain ? "true" : "false"; + // We have these: + // * upgrade_domain requires the user to specify values for all index + // columns. This is in the spec. + // * resize_soma_joinid_shape allows the user to specify only the + // desired soma_joinid shape. This is crucial for experiment-level + // resize as an internal method at the Python level. + // Both need testing. Each one adds a shape where there wasn't one + // before. So we need to test one or the other on a given run. + auto test_upgrade_domain = GENERATE(false, true); + std::ostringstream section2; + section2 << "- test_upgrade_domain=" << test_upgrade_domain; + SECTION(section2.str()) { + std::string suffix2 = test_upgrade_domain ? "true" : "false"; - // Create - create(dim_infos, attr_infos); + set_up( + std::make_shared(), + "mem://unit-test-variant-indexed-dataframe-1-" + suffix1 + "-" + + suffix2); - // Check current domain - auto sdf = open(OpenMode::read); + std::vector dim_infos( + {i64_dim_info(use_current_domain)}); + std::vector attr_infos( + {str_attr_info(), u32_attr_info()}); - CurrentDomain current_domain = sdf->get_current_domain_for_test(); - if (!use_current_domain) { - REQUIRE(current_domain.is_empty()); - } else { - REQUIRE(!current_domain.is_empty()); - REQUIRE(current_domain.type() == TILEDB_NDRECTANGLE); - NDRectangle ndrect = current_domain.ndrectangle(); - - std::array i64_range = ndrect.range( - dim_infos[0].name); - REQUIRE(i64_range[0] == (int64_t)0); - REQUIRE(i64_range[1] == (int64_t)dim_infos[0].dim_max); - } + // Create + create(dim_infos, attr_infos); - // Check shape before resize - int64_t expect = dim_infos[0].dim_max + 1; - std::optional actual = sdf->maybe_soma_joinid_shape(); - REQUIRE(actual.has_value()); - REQUIRE(actual.value() == expect); + // Check current domain + auto sdf = open(OpenMode::read); - REQUIRE(sdf->nnz() == 0); + CurrentDomain current_domain = sdf->get_current_domain_for_test(); + if (!use_current_domain) { + REQUIRE(current_domain.is_empty()); + } else { + REQUIRE(!current_domain.is_empty()); + REQUIRE(current_domain.type() == TILEDB_NDRECTANGLE); + NDRectangle ndrect = current_domain.ndrectangle(); + + std::array i64_range = ndrect.range( + dim_infos[0].name); + REQUIRE(i64_range[0] == (int64_t)0); + REQUIRE(i64_range[1] == (int64_t)dim_infos[0].dim_max); + } - sdf->close(); + // Check shape before resize + int64_t expect = dim_infos[0].dim_max + 1; + std::optional actual = sdf->maybe_soma_joinid_shape(); + REQUIRE(actual.has_value()); + REQUIRE(actual.value() == expect); - // Write data - write_sjid_u32_str_data_from(0); + REQUIRE(sdf->nnz() == 0); - // Check shape after write - sdf->open(OpenMode::read); + sdf->close(); - REQUIRE(sdf->nnz() == 2); + // Write data + write_sjid_u32_str_data_from(0); - expect = dim_infos[0].dim_max + 1; - actual = sdf->maybe_soma_joinid_shape(); - REQUIRE(actual.has_value()); - REQUIRE(actual.value() == expect); + // Check shape after write + sdf->open(OpenMode::read); - // Check domainish accessors before resize - ArrowTable non_empty_domain = sdf->get_non_empty_domain(); - std::vector ned_sjid = - ArrowAdapter::get_table_non_string_column_by_name( - non_empty_domain, "soma_joinid"); + REQUIRE(sdf->nnz() == 2); - ArrowTable soma_domain = sdf->get_soma_domain(); - std::vector dom_sjid = - ArrowAdapter::get_table_non_string_column_by_name( - soma_domain, "soma_joinid"); + expect = dim_infos[0].dim_max + 1; + actual = sdf->maybe_soma_joinid_shape(); + REQUIRE(actual.has_value()); + REQUIRE(actual.value() == expect); - ArrowTable soma_maxdomain = sdf->get_soma_maxdomain(); - std::vector maxdom_sjid = - ArrowAdapter::get_table_non_string_column_by_name( - soma_maxdomain, "soma_joinid"); + // Check domainish accessors before resize + ArrowTable non_empty_domain = sdf->get_non_empty_domain(); + std::vector ned_sjid = + ArrowAdapter::get_table_non_string_column_by_name( + non_empty_domain, "soma_joinid"); - REQUIRE(ned_sjid == std::vector({1, 2})); + ArrowTable soma_domain = sdf->get_soma_domain(); + std::vector dom_sjid = + ArrowAdapter::get_table_non_string_column_by_name( + soma_domain, "soma_joinid"); - REQUIRE(dom_sjid == std::vector({0, 99})); + ArrowTable soma_maxdomain = sdf->get_soma_maxdomain(); + std::vector maxdom_sjid = + ArrowAdapter::get_table_non_string_column_by_name( + soma_maxdomain, "soma_joinid"); - REQUIRE(maxdom_sjid.size() == 2); - REQUIRE(maxdom_sjid[0] == 0); - if (!use_current_domain) { - REQUIRE(maxdom_sjid[1] == 99); - } else { - REQUIRE(maxdom_sjid[1] > 2000000000); - } + REQUIRE(ned_sjid == std::vector({1, 2})); - sdf->close(); + REQUIRE(dom_sjid == std::vector({0, SOMA_JOINID_DIM_MAX})); - REQUIRE(sdf->nnz() == 2); - write_sjid_u32_str_data_from(8); - REQUIRE(sdf->nnz() == 4); + REQUIRE(maxdom_sjid.size() == 2); + REQUIRE(maxdom_sjid[0] == 0); + if (!use_current_domain) { + REQUIRE(maxdom_sjid[1] == SOMA_JOINID_DIM_MAX); + } else { + REQUIRE(maxdom_sjid[1] > 2000000000); + } + sdf->close(); - // Resize - auto new_shape = int64_t{SOMA_JOINID_RESIZE_DIM_MAX + 1}; + REQUIRE(sdf->nnz() == 2); + write_sjid_u32_str_data_from(8); + REQUIRE(sdf->nnz() == 4); + + sdf->open(OpenMode::read); + + // Check can_upgrade_domain + std::unique_ptr + domain_schema = create_index_cols_info_schema(dim_infos); + auto domain_array = ArrowAdapter::make_arrow_array_parent( + dim_infos.size()); + // OK since there currently is no shape set: + domain_array->children[0] = ArrowAdapter::make_arrow_array_child( + std::vector({0, 0})); + auto domain_table = ArrowTable( + std::move(domain_array), std::move(domain_schema)); + if (!use_current_domain) { + StatusAndReason check = sdf->can_upgrade_domain( + domain_table, "testing"); + REQUIRE(check.first == true); + REQUIRE(check.second == ""); + } else { + StatusAndReason check = sdf->can_upgrade_soma_joinid_shape( + 1, "testing"); + // Must fail since this is too small. + REQUIRE(check.first == false); + REQUIRE( + check.second == + "testing: dataframe already has its domain set."); + } - if (!use_current_domain) { - // Domain is already set. The domain (not current domain but domain) - // is immutable. All we can do is check for: - // * throw on write beyond domain - // * throw on an attempt to resize. - REQUIRE_THROWS(write_sjid_u32_str_data_from(SOMA_JOINID_DIM_MAX)); + // Check can_upgrade_soma_joinid_shape + if (!use_current_domain) { + StatusAndReason check = sdf->can_upgrade_soma_joinid_shape( + 1, "testing"); + REQUIRE(check.first == true); + REQUIRE(check.second == ""); + } else { + StatusAndReason check = sdf->can_upgrade_soma_joinid_shape( + 1, "testing"); + // Must fail since this is too small. + REQUIRE(check.first == false); + REQUIRE( + check.second == + "testing: dataframe already has its domain set."); + } - sdf = open(OpenMode::write); - // Array not resizeable if it has not already been sized - REQUIRE_THROWS(sdf->resize_soma_joinid_shape(new_shape, "testing")); sdf->close(); - } else { - // Expect throw on write beyond current domain before resize - REQUIRE_THROWS(write_sjid_u32_str_data_from(SOMA_JOINID_DIM_MAX)); + // Resize + auto new_shape = int64_t{SOMA_JOINID_RESIZE_DIM_MAX + 1}; + + if (!use_current_domain) { + // Core domain is already set. The domain (not core current + // domain but core domain) + // is immutable. All we can do is check for: + // * throw on write beyond domain + // * throw on an attempt to resize. + REQUIRE_THROWS( + write_sjid_u32_str_data_from(SOMA_JOINID_DIM_MAX)); + + sdf = open(OpenMode::write); + + // Array not resizeable if it has not already been sized + if (test_upgrade_domain) { + std::unique_ptr + domain_schema = create_index_cols_info_schema( + dim_infos); + auto domain_array = ArrowAdapter::make_arrow_array_parent( + dim_infos.size()); + domain_array + ->children[0] = ArrowAdapter::make_arrow_array_child( + std::vector({0, new_shape - 1})); + auto domain_table = ArrowTable( + std::move(domain_array), std::move(domain_schema)); + REQUIRE_THROWS(sdf->change_domain(domain_table, "testing")); + } else { + REQUIRE_THROWS( + sdf->resize_soma_joinid_shape(new_shape, "testing")); + } - // Check shape after write - sdf = open(OpenMode::read); - expect = dim_infos[0].dim_max + 1; + } else { + // Expect throw on write beyond current domain before resize + REQUIRE_THROWS( + write_sjid_u32_str_data_from(SOMA_JOINID_DIM_MAX)); + + // Check shape after write + sdf = open(OpenMode::read); + expect = dim_infos[0].dim_max + 1; + + std::optional actual = sdf->maybe_soma_joinid_shape(); + REQUIRE(actual.has_value()); + REQUIRE(actual.value() == expect); + sdf->close(); + + // Apply the domain change + if (test_upgrade_domain) { + std::unique_ptr + domain_schema = create_index_cols_info_schema( + dim_infos); + auto domain_array = ArrowAdapter::make_arrow_array_parent( + dim_infos.size()); + domain_array + ->children[0] = ArrowAdapter::make_arrow_array_child( + std::vector({0, new_shape - 1})); + auto domain_table = ArrowTable( + std::move(domain_array), std::move(domain_schema)); + + // Not open for write + sdf = open(OpenMode::read); + REQUIRE_THROWS(sdf->change_domain(domain_table, "testing")); + sdf->close(); + + // Open for write + sdf = open(OpenMode::write); + sdf->change_domain(domain_table, "testing"); + sdf->close(); + + } else { + // Not open for write + sdf = open(OpenMode::read); + REQUIRE_THROWS( + sdf->resize_soma_joinid_shape(new_shape, "testing")); + sdf->close(); + + // Open for write + sdf = open(OpenMode::write); + sdf->resize_soma_joinid_shape(new_shape, "testing"); + sdf->close(); + } + + // Check shape after resize + sdf = open(OpenMode::read); + expect = SOMA_JOINID_RESIZE_DIM_MAX + 1; + actual = sdf->maybe_soma_joinid_shape(); + REQUIRE(actual.has_value()); + REQUIRE(actual.value() == expect); + sdf->close(); + + // Implicitly we expect no throw + write_sjid_u32_str_data_from(SOMA_JOINID_DIM_MAX); + } - std::optional actual = sdf->maybe_soma_joinid_shape(); - REQUIRE(actual.has_value()); - REQUIRE(actual.value() == expect); - sdf->close(); + // Check domainish accessors after resize + sdf->open(OpenMode::read); - sdf = open(OpenMode::read); - REQUIRE_THROWS(sdf->resize_soma_joinid_shape(new_shape, "testing")); - sdf->close(); + non_empty_domain = sdf->get_non_empty_domain(); + ned_sjid = ArrowAdapter::get_table_non_string_column_by_name< + int64_t>(non_empty_domain, "soma_joinid"); - sdf = open(OpenMode::write); - sdf->resize_soma_joinid_shape(new_shape, "testing"); - sdf->close(); + soma_domain = sdf->get_soma_domain(); + dom_sjid = ArrowAdapter::get_table_non_string_column_by_name< + int64_t>(soma_domain, "soma_joinid"); - // Check shape after resize - sdf = open(OpenMode::read); - expect = SOMA_JOINID_RESIZE_DIM_MAX + 1; - actual = sdf->maybe_soma_joinid_shape(); - REQUIRE(actual.has_value()); - REQUIRE(actual.value() == expect); + soma_maxdomain = sdf->get_soma_maxdomain(); + maxdom_sjid = ArrowAdapter::get_table_non_string_column_by_name< + int64_t>(soma_maxdomain, "soma_joinid"); - sdf->close(); + if (!use_current_domain) { + REQUIRE(ned_sjid == std::vector({1, 10})); + REQUIRE( + dom_sjid == std::vector({0, SOMA_JOINID_DIM_MAX})); + REQUIRE( + maxdom_sjid == + std::vector({0, SOMA_JOINID_DIM_MAX})); + } else { + REQUIRE(ned_sjid == std::vector({1, 101})); + REQUIRE( + dom_sjid == + std::vector({0, SOMA_JOINID_RESIZE_DIM_MAX})); + REQUIRE(maxdom_sjid.size() == 2); + REQUIRE(maxdom_sjid[0] == 0); + REQUIRE(maxdom_sjid[1] > 2000000000); + } - // Implicitly we expect no throw - write_sjid_u32_str_data_from(SOMA_JOINID_DIM_MAX); - } + // Check can_resize_soma_joinid_shape + StatusAndReason check = sdf->can_resize_soma_joinid_shape( + 1, "testing"); + if (!use_current_domain) { + REQUIRE(check.first == false); + REQUIRE( + check.second == + "testing: dataframe currently has no domain set."); - // Check domainish accessors after resize - sdf->open(OpenMode::read); + REQUIRE(!sdf->has_current_domain()); + sdf->close(); - non_empty_domain = sdf->get_non_empty_domain(); - ned_sjid = ArrowAdapter::get_table_non_string_column_by_name( - non_empty_domain, "soma_joinid"); + sdf = open(OpenMode::write); + sdf->upgrade_soma_joinid_shape( + SOMA_JOINID_DIM_MAX + 1, "testing"); + sdf->close(); - soma_domain = sdf->get_soma_domain(); - dom_sjid = ArrowAdapter::get_table_non_string_column_by_name( - soma_domain, "soma_joinid"); + sdf = open(OpenMode::read); + REQUIRE(sdf->has_current_domain()); + std::optional actual = sdf->maybe_soma_joinid_shape(); + REQUIRE(actual.has_value()); + REQUIRE(actual.value() == SOMA_JOINID_DIM_MAX + 1); + sdf->close(); - soma_maxdomain = sdf->get_soma_maxdomain(); - maxdom_sjid = ArrowAdapter::get_table_non_string_column_by_name< - int64_t>(soma_maxdomain, "soma_joinid"); + } else { + // Must fail since this is too small. + REQUIRE(check.first == false); + REQUIRE( + check.second == + "testing: new soma_joinid shape 1 < existing shape " + "200"); + check = sdf->can_resize_soma_joinid_shape( + SOMA_JOINID_RESIZE_DIM_MAX + 1, "testing"); + REQUIRE(check.first == true); + REQUIRE(check.second == ""); + } - if (!use_current_domain) { - REQUIRE(ned_sjid == std::vector({1, 10})); - REQUIRE(dom_sjid == std::vector({0, 99})); - REQUIRE(maxdom_sjid == std::vector({0, 99})); - } else { - REQUIRE(ned_sjid == std::vector({1, 101})); - REQUIRE(dom_sjid == std::vector({0, 199})); - REQUIRE(maxdom_sjid.size() == 2); - REQUIRE(maxdom_sjid[0] == 0); - REQUIRE(maxdom_sjid[1] > 2000000000); - } + sdf->close(); - // Check can_resize_soma_joinid_shape - std::pair check = sdf->can_resize_soma_joinid_shape( - 1, "testing"); - if (!use_current_domain) { - REQUIRE(check.first == false); - REQUIRE( - check.second == - "testing: dataframe currently has no domain set: please " - "upgrade the array."); - } else { + // Check can_upgrade_domain + sdf->open(OpenMode::read); + domain_schema = create_index_cols_info_schema(dim_infos); + domain_array = ArrowAdapter::make_arrow_array_parent( + dim_infos.size()); + domain_array->children[0] = ArrowAdapter::make_arrow_array_child( + std::vector({0, 0})); + domain_table = ArrowTable( + std::move(domain_array), std::move(domain_schema)); + // The dataframe now has a shape + check = sdf->can_upgrade_soma_joinid_shape(1, "testing"); // Must fail since this is too small. REQUIRE(check.first == false); REQUIRE( check.second == - "testing: new soma_joinid shape 1 < existing shape 199"); - check = sdf->can_resize_soma_joinid_shape( - SOMA_JOINID_RESIZE_DIM_MAX + 1, "testing"); - REQUIRE(check.first == true); - REQUIRE(check.second == ""); + "testing: dataframe already has its domain set."); + sdf->close(); } - - sdf->close(); } } @@ -688,227 +855,339 @@ TEST_CASE_METHOD( std::ostringstream section; section << "- use_current_domain=" << use_current_domain; SECTION(section.str()) { - std::string suffix = use_current_domain ? "true" : "false"; - set_up( - std::make_shared(), - "mem://unit-test-variant-indexed-dataframe-2-" + suffix); - - std::vector dim_infos( - {u32_dim_info(use_current_domain), - i64_dim_info(use_current_domain)}); - std::vector attr_infos({str_attr_info()}); + std::string suffix1 = use_current_domain ? "true" : "false"; + // We have these: + // * upgrade_domain requires the user to specify values for all + // index + // columns. This is in the spec. + // * resize_soma_joinid_shape allows the user to specify only the + // desired soma_joinid shape. This is crucial for experiment-level + // resize as an internal method at the Python level. + // Both need testing. Each one adds a shape where there wasn't one + // before. So we need to test one or the other on a given run. + auto test_upgrade_domain = GENERATE(false, true); + std::ostringstream section2; + section << "- test_upgrade_domain=" << test_upgrade_domain; + SECTION(section2.str()) { + std::string suffix2 = test_upgrade_domain ? "true" : "false"; + set_up( + std::make_shared(), + "mem://unit-test-variant-indexed-dataframe-2-" + suffix1 + "-" + + suffix2); - // Create - create(dim_infos, attr_infos); + std::vector dim_infos( + {u32_dim_info(use_current_domain), + i64_dim_info(use_current_domain)}); + std::vector attr_infos({str_attr_info()}); - // Check current domain - auto sdf = open(OpenMode::read); + // Create + create(dim_infos, attr_infos); - CurrentDomain current_domain = sdf->get_current_domain_for_test(); - if (!use_current_domain) { - REQUIRE(current_domain.is_empty()); - } else { - REQUIRE(!current_domain.is_empty()); - REQUIRE(current_domain.type() == TILEDB_NDRECTANGLE); - NDRectangle ndrect = current_domain.ndrectangle(); - - std::array u32_range = ndrect.range( - dim_infos[0].name); - REQUIRE(u32_range[0] == (uint32_t)0); - REQUIRE(u32_range[1] == (uint32_t)dim_infos[0].dim_max); - - std::array i64_range = ndrect.range( - dim_infos[1].name); - REQUIRE(i64_range[0] == (int64_t)0); - REQUIRE(i64_range[1] == (int64_t)dim_infos[1].dim_max); - } + // Check current domain + auto sdf = open(OpenMode::read); - // Check shape before write - int64_t expect = dim_infos[1].dim_max + 1; - std::optional actual = sdf->maybe_soma_joinid_shape(); - REQUIRE(actual.has_value()); - REQUIRE(actual.value() == expect); + CurrentDomain current_domain = sdf->get_current_domain_for_test(); + if (!use_current_domain) { + REQUIRE(current_domain.is_empty()); + } else { + REQUIRE(!current_domain.is_empty()); + REQUIRE(current_domain.type() == TILEDB_NDRECTANGLE); + NDRectangle ndrect = current_domain.ndrectangle(); + + std::array u32_range = ndrect.range( + dim_infos[0].name); + REQUIRE(u32_range[0] == (uint32_t)0); + REQUIRE(u32_range[1] == (uint32_t)dim_infos[0].dim_max); + + std::array i64_range = ndrect.range( + dim_infos[1].name); + REQUIRE(i64_range[0] == (int64_t)0); + REQUIRE(i64_range[1] == (int64_t)dim_infos[1].dim_max); + } - sdf->close(); + // Check shape before write + int64_t expect = dim_infos[1].dim_max + 1; + std::optional actual = sdf->maybe_soma_joinid_shape(); + REQUIRE(actual.has_value()); + REQUIRE(actual.value() == expect); - REQUIRE(sdf->nnz() == 0); + sdf->close(); - // Write - write_sjid_u32_str_data_from(0); - - REQUIRE(sdf->nnz() == 2); - write_sjid_u32_str_data_from(8); - REQUIRE(sdf->nnz() == 4); - - // Check domainish accessors before resize - sdf->open(OpenMode::read); - - ArrowTable non_empty_domain = sdf->get_non_empty_domain(); - std::vector ned_sjid = - ArrowAdapter::get_table_non_string_column_by_name( - non_empty_domain, "soma_joinid"); - std::vector ned_u32 = - ArrowAdapter::get_table_non_string_column_by_name( - non_empty_domain, "myuint32"); - - ArrowTable soma_domain = sdf->get_soma_domain(); - std::vector dom_sjid = - ArrowAdapter::get_table_non_string_column_by_name( - soma_domain, "soma_joinid"); - std::vector dom_u32 = - ArrowAdapter::get_table_non_string_column_by_name( - soma_domain, "myuint32"); - - ArrowTable soma_maxdomain = sdf->get_soma_maxdomain(); - std::vector maxdom_sjid = - ArrowAdapter::get_table_non_string_column_by_name( - soma_maxdomain, "soma_joinid"); - std::vector maxdom_u32 = - ArrowAdapter::get_table_non_string_column_by_name( - soma_maxdomain, "myuint32"); - - REQUIRE(ned_sjid == std::vector({1, 10})); - REQUIRE(ned_u32 == std::vector({1234, 5678})); - - REQUIRE(dom_sjid == std::vector({0, 99})); - REQUIRE(dom_u32 == std::vector({0, 9999})); - - REQUIRE(maxdom_sjid.size() == 2); - REQUIRE(maxdom_u32.size() == 2); - - REQUIRE(maxdom_u32[0] == 0); - if (!use_current_domain) { - REQUIRE(maxdom_u32[1] == 9999); - } else { - REQUIRE(maxdom_u32[1] > 2000000000); - } + REQUIRE(sdf->nnz() == 0); + + // Write + write_sjid_u32_str_data_from(0); + + REQUIRE(sdf->nnz() == 2); + write_sjid_u32_str_data_from(8); + REQUIRE(sdf->nnz() == 4); + + // Check domainish accessors before resize + sdf->open(OpenMode::read); + + ArrowTable non_empty_domain = sdf->get_non_empty_domain(); + std::vector ned_sjid = + ArrowAdapter::get_table_non_string_column_by_name( + non_empty_domain, "soma_joinid"); + std::vector ned_u32 = + ArrowAdapter::get_table_non_string_column_by_name( + non_empty_domain, "myuint32"); + + ArrowTable soma_domain = sdf->get_soma_domain(); + std::vector dom_sjid = + ArrowAdapter::get_table_non_string_column_by_name( + soma_domain, "soma_joinid"); + std::vector dom_u32 = + ArrowAdapter::get_table_non_string_column_by_name( + soma_domain, "myuint32"); + + ArrowTable soma_maxdomain = sdf->get_soma_maxdomain(); + std::vector maxdom_sjid = + ArrowAdapter::get_table_non_string_column_by_name( + soma_maxdomain, "soma_joinid"); + std::vector maxdom_u32 = + ArrowAdapter::get_table_non_string_column_by_name( + soma_maxdomain, "myuint32"); - sdf->close(); + REQUIRE(ned_sjid == std::vector({1, 10})); + REQUIRE(ned_u32 == std::vector({1234, 5678})); - // Check shape after write - sdf = open(OpenMode::read); - expect = dim_infos[1].dim_max + 1; - actual = sdf->maybe_soma_joinid_shape(); - REQUIRE(actual.has_value()); - REQUIRE(actual.value() == expect); - sdf->close(); + REQUIRE(dom_sjid == std::vector({0, 99})); + REQUIRE(dom_u32 == std::vector({0, 9999})); - // Resize - auto new_shape = int64_t{SOMA_JOINID_RESIZE_DIM_MAX + 1}; + REQUIRE(maxdom_sjid.size() == 2); + REQUIRE(maxdom_u32.size() == 2); - if (!use_current_domain) { - // Domain is already set. The domain (not current domain but domain) - // is immutable. All we can do is check for: - // * throw on write beyond domain - // * throw on an attempt to resize. - REQUIRE_THROWS(write_sjid_u32_str_data_from(SOMA_JOINID_DIM_MAX)); + REQUIRE(maxdom_u32[0] == 0); + if (!use_current_domain) { + REQUIRE(maxdom_u32[1] == 9999); + } else { + REQUIRE(maxdom_u32[1] > 2000000000); + } - sdf = open(OpenMode::write); - // Array not resizeable if it has not already been sized - REQUIRE_THROWS(sdf->resize_soma_joinid_shape(new_shape, "testing")); sdf->close(); - } else { - // Expect throw on write beyond current domain before resize - REQUIRE_THROWS(write_sjid_u32_str_data_from(SOMA_JOINID_DIM_MAX)); - // Check shape after write sdf = open(OpenMode::read); expect = dim_infos[1].dim_max + 1; - std::optional actual = sdf->maybe_soma_joinid_shape(); + actual = sdf->maybe_soma_joinid_shape(); REQUIRE(actual.has_value()); REQUIRE(actual.value() == expect); - sdf->close(); - sdf = open(OpenMode::read); - REQUIRE_THROWS(sdf->resize_soma_joinid_shape(new_shape, "testing")); - sdf->close(); + // Check can_upgrade_soma_joinid_shape + if (!use_current_domain) { + StatusAndReason check = sdf->can_upgrade_soma_joinid_shape( + 1, "testing"); + REQUIRE(check.first == true); + REQUIRE(check.second == ""); + } else { + StatusAndReason check = sdf->can_upgrade_soma_joinid_shape( + 1, "testing"); + // Must fail since this is too small. + REQUIRE(check.first == false); + REQUIRE( + check.second == + "testing: dataframe already has its domain set."); + } - sdf = open(OpenMode::write); - sdf->resize_soma_joinid_shape(new_shape, "testing"); - sdf->close(); + // Check can_upgrade_domain + std::unique_ptr + domain_schema = create_index_cols_info_schema(dim_infos); + auto domain_array = ArrowAdapter::make_arrow_array_parent( + dim_infos.size()); + // OK since there currently is no shape set: + domain_array->children[0] = ArrowAdapter::make_arrow_array_child( + std::vector({0, 0})); + domain_array->children[1] = ArrowAdapter::make_arrow_array_child( + std::vector({0, 0})); + auto domain_table = ArrowTable( + std::move(domain_array), std::move(domain_schema)); + + if (!use_current_domain) { + StatusAndReason check = sdf->can_upgrade_domain( + domain_table, "testing"); + REQUIRE(check.first == true); + REQUIRE(check.second == ""); + } else { + StatusAndReason check = sdf->can_upgrade_soma_joinid_shape( + 1, "testing"); + // Must fail since this is too small. + REQUIRE(check.first == false); + REQUIRE( + check.second == + "testing: dataframe already has its domain set."); + } - // Check shape after resize - sdf = open(OpenMode::read); - expect = SOMA_JOINID_RESIZE_DIM_MAX + 1; - actual = sdf->maybe_soma_joinid_shape(); - REQUIRE(actual.has_value()); - REQUIRE(actual.value() == expect); sdf->close(); - // Implicitly we expect no throw - write_sjid_u32_str_data_from(SOMA_JOINID_DIM_MAX); - } + // Resize + auto new_shape = int64_t{SOMA_JOINID_RESIZE_DIM_MAX + 1}; + uint32_t new_u32_dim_max = (uint32_t)u32_dim_max * 2 + 1; + + if (!use_current_domain) { + // Domain is already set. The domain (not current domain but + // domain) is immutable. All we can do is check for: + // * throw on write beyond domain + // * throw on an attempt to resize. + REQUIRE_THROWS( + write_sjid_u32_str_data_from(SOMA_JOINID_DIM_MAX)); + + sdf = open(OpenMode::write); + + // Array not resizeable if it has not already been sized + if (test_upgrade_domain) { + std::unique_ptr + domain_schema = create_index_cols_info_schema( + dim_infos); + auto domain_array = ArrowAdapter::make_arrow_array_parent( + dim_infos.size()); + domain_array + ->children[0] = ArrowAdapter::make_arrow_array_child( + std::vector({0, new_u32_dim_max})); + domain_array + ->children[1] = ArrowAdapter::make_arrow_array_child( + std::vector({0, new_shape - 1})); + auto domain_table = ArrowTable( + std::move(domain_array), std::move(domain_schema)); + REQUIRE_THROWS(sdf->change_domain(domain_table, "testing")); + } else { + REQUIRE_THROWS( + sdf->resize_soma_joinid_shape(new_shape, "testing")); + } + + sdf->close(); - // Check domainish accessors after resize - sdf->open(OpenMode::read); + } else { + // Expect throw on write beyond current domain before resize + REQUIRE_THROWS( + write_sjid_u32_str_data_from(SOMA_JOINID_DIM_MAX)); + + // Check shape after write + sdf = open(OpenMode::read); + expect = dim_infos[1].dim_max + 1; + std::optional actual = sdf->maybe_soma_joinid_shape(); + REQUIRE(actual.has_value()); + REQUIRE(actual.value() == expect); + sdf->close(); + + // Apply the domain change + if (test_upgrade_domain) { + std::unique_ptr + domain_schema = create_index_cols_info_schema( + dim_infos); + auto domain_array = ArrowAdapter::make_arrow_array_parent( + dim_infos.size()); + domain_array + ->children[0] = ArrowAdapter::make_arrow_array_child( + std::vector({0, new_u32_dim_max})); + domain_array + ->children[1] = ArrowAdapter::make_arrow_array_child( + std::vector({0, new_shape - 1})); + auto domain_table = ArrowTable( + std::move(domain_array), std::move(domain_schema)); + + // Not open for write + sdf = open(OpenMode::read); + REQUIRE_THROWS(sdf->change_domain(domain_table, "testing")); + sdf->close(); + + // Open for write + sdf = open(OpenMode::write); + sdf->change_domain(domain_table, "testing"); + sdf->close(); + + } else { + // Not open for write + sdf = open(OpenMode::read); + REQUIRE_THROWS( + sdf->resize_soma_joinid_shape(new_shape, "testing")); + sdf->close(); + + // Open for write + sdf = open(OpenMode::write); + sdf->resize_soma_joinid_shape(new_shape, "testing"); + sdf->close(); + } + sdf->close(); + + // Implicitly we expect no throw + write_sjid_u32_str_data_from(SOMA_JOINID_DIM_MAX); + } - non_empty_domain = sdf->get_non_empty_domain(); - ned_sjid = ArrowAdapter::get_table_non_string_column_by_name( - non_empty_domain, "soma_joinid"); - ned_u32 = ArrowAdapter::get_table_non_string_column_by_name( - non_empty_domain, "myuint32"); + // Check domainish accessors after resize + sdf->open(OpenMode::read); - soma_domain = sdf->get_soma_domain(); - dom_sjid = ArrowAdapter::get_table_non_string_column_by_name( - soma_domain, "soma_joinid"); - dom_u32 = ArrowAdapter::get_table_non_string_column_by_name( - soma_domain, "myuint32"); + non_empty_domain = sdf->get_non_empty_domain(); + ned_sjid = ArrowAdapter::get_table_non_string_column_by_name< + int64_t>(non_empty_domain, "soma_joinid"); + ned_u32 = ArrowAdapter::get_table_non_string_column_by_name< + uint32_t>(non_empty_domain, "myuint32"); - soma_maxdomain = sdf->get_soma_maxdomain(); - maxdom_sjid = ArrowAdapter::get_table_non_string_column_by_name< - int64_t>(soma_maxdomain, "soma_joinid"); - maxdom_u32 = ArrowAdapter::get_table_non_string_column_by_name< - uint32_t>(soma_maxdomain, "myuint32"); + soma_domain = sdf->get_soma_domain(); + dom_sjid = ArrowAdapter::get_table_non_string_column_by_name< + int64_t>(soma_domain, "soma_joinid"); + dom_u32 = ArrowAdapter::get_table_non_string_column_by_name< + uint32_t>(soma_domain, "myuint32"); - if (!use_current_domain) { - REQUIRE(ned_sjid == std::vector({1, 10})); - REQUIRE(ned_u32 == std::vector({1234, 5678})); + soma_maxdomain = sdf->get_soma_maxdomain(); + maxdom_sjid = ArrowAdapter::get_table_non_string_column_by_name< + int64_t>(soma_maxdomain, "soma_joinid"); + maxdom_u32 = ArrowAdapter::get_table_non_string_column_by_name< + uint32_t>(soma_maxdomain, "myuint32"); - REQUIRE(dom_sjid == std::vector({0, 99})); - REQUIRE(dom_u32 == std::vector({0, 9999})); + if (!use_current_domain) { + REQUIRE(ned_sjid == std::vector({1, 10})); + REQUIRE(ned_u32 == std::vector({1234, 5678})); - REQUIRE(maxdom_sjid == std::vector({0, 99})); - REQUIRE(maxdom_u32 == std::vector({0, 9999})); + REQUIRE(dom_sjid == std::vector({0, 99})); + REQUIRE(dom_u32 == std::vector({0, 9999})); - } else { - REQUIRE(ned_sjid == std::vector({1, 101})); - REQUIRE(ned_u32 == std::vector({1234, 5678})); + REQUIRE(maxdom_sjid == std::vector({0, 99})); + REQUIRE(maxdom_u32 == std::vector({0, 9999})); - REQUIRE(dom_sjid == std::vector({0, 199})); - REQUIRE(dom_u32 == std::vector({0, 9999})); - - REQUIRE(maxdom_sjid.size() == 2); - REQUIRE(maxdom_sjid[0] == 0); - REQUIRE(maxdom_sjid[1] > 2000000000); + } else { + REQUIRE(ned_sjid == std::vector({1, 101})); + REQUIRE(ned_u32 == std::vector({1234, 5678})); + + REQUIRE(dom_sjid == std::vector({0, 199})); + if (test_upgrade_domain) { + REQUIRE(dom_u32 == std::vector({0, 19999})); + } else { + REQUIRE(dom_u32 == std::vector({0, 9999})); + } + + REQUIRE(maxdom_sjid.size() == 2); + REQUIRE(maxdom_sjid[0] == 0); + REQUIRE(maxdom_sjid[1] > 2000000000); + + REQUIRE(maxdom_u32.size() == 2); + REQUIRE(maxdom_u32[0] == 0); + REQUIRE(maxdom_u32[1] > 2000000000); + } - REQUIRE(maxdom_u32.size() == 2); - REQUIRE(maxdom_u32[0] == 0); - REQUIRE(maxdom_u32[1] > 2000000000); - } + // Check can_resize_soma_joinid_shape + StatusAndReason check = sdf->can_resize_soma_joinid_shape( + 1, "testing"); + if (!use_current_domain) { + REQUIRE(check.first == false); + REQUIRE( + check.second == + "testing: dataframe currently has no domain set."); + } else { + // Must fail since this is too small. + REQUIRE(check.first == false); + REQUIRE( + check.second == + "testing: new soma_joinid shape 1 < existing shape " + "200"); + check = sdf->can_resize_soma_joinid_shape( + SOMA_JOINID_RESIZE_DIM_MAX + 1, "testing"); + REQUIRE(check.first == true); + REQUIRE(check.second == ""); + } - // Check can_resize_soma_joinid_shape - std::pair check = sdf->can_resize_soma_joinid_shape( - 1, "testing"); - if (!use_current_domain) { - REQUIRE(check.first == false); - REQUIRE( - check.second == - "testing: dataframe currently has no domain set: please " - "upgrade the array."); - } else { - // Must fail since this is too small. - REQUIRE(check.first == false); - REQUIRE( - check.second == - "testing: new soma_joinid shape 1 < existing shape 199"); - check = sdf->can_resize_soma_joinid_shape( - SOMA_JOINID_RESIZE_DIM_MAX + 1, "testing"); - REQUIRE(check.first == true); - REQUIRE(check.second == ""); + sdf->close(); } - - sdf->close(); } } @@ -923,240 +1202,342 @@ TEST_CASE_METHOD( auto specify_domain = GENERATE(false, true); std::ostringstream section2; section2 << "- specify_domain=" << specify_domain; - - std::string suffix1 = use_current_domain ? "true" : "false"; - std::string suffix2 = specify_domain ? "true" : "false"; - set_up( - std::make_shared(), - "mem://unit-test-variant-indexed-dataframe-3-" + suffix1 + "-" + - suffix2); - - std::string string_lo = specify_domain ? "apple" : ""; - std::string string_hi = specify_domain ? "zebra" : ""; - std::vector dim_infos( - {i64_dim_info(use_current_domain), - str_dim_info(use_current_domain, string_lo, string_hi)}); - std::vector attr_infos({u32_attr_info()}); - - // Create - create(dim_infos, attr_infos); - - // Check current domain - auto sdf = open(OpenMode::read); - - CurrentDomain current_domain = sdf->get_current_domain_for_test(); - if (!use_current_domain) { - REQUIRE(current_domain.is_empty()); - } else { - REQUIRE(!current_domain.is_empty()); - REQUIRE(current_domain.type() == TILEDB_NDRECTANGLE); - NDRectangle ndrect = current_domain.ndrectangle(); - - std::array i64_range = ndrect.range( - dim_infos[0].name); - REQUIRE(i64_range[0] == (int64_t)0); - REQUIRE(i64_range[1] == (int64_t)dim_infos[0].dim_max); - - std::array str_range = ndrect.range( - dim_infos[1].name); - if (specify_domain) { - REQUIRE(str_range[0] == dim_infos[1].string_lo); - REQUIRE(str_range[1] == dim_infos[1].string_hi); - } else { - // Can we write empty strings in this range? - REQUIRE(str_range[0] <= ""); - REQUIRE(str_range[1] >= ""); - // Can we write ASCII values in this range? - REQUIRE(str_range[0] < " "); - REQUIRE(str_range[1] > "~"); - } - } - - // Check shape before write - int64_t expect = dim_infos[0].dim_max + 1; - std::optional actual = sdf->maybe_soma_joinid_shape(); - REQUIRE(actual.has_value()); - REQUIRE(actual.value() == expect); - sdf->close(); - - REQUIRE(sdf->nnz() == 0); - - // Write - write_sjid_u32_str_data_from(0); - - REQUIRE(sdf->nnz() == 2); - write_sjid_u32_str_data_from(8); - REQUIRE(sdf->nnz() == 4); - - // Check shape after write - sdf = open(OpenMode::read); - expect = dim_infos[0].dim_max + 1; - actual = sdf->maybe_soma_joinid_shape(); - REQUIRE(actual.has_value()); - REQUIRE(actual.value() == expect); - - // Check domainish accessors before resize - ArrowTable non_empty_domain = sdf->get_non_empty_domain(); - std::vector ned_sjid = - ArrowAdapter::get_table_non_string_column_by_name( - non_empty_domain, "soma_joinid"); - std::vector - ned_str = ArrowAdapter::get_table_string_column_by_name( - non_empty_domain, "mystring"); - - ArrowTable soma_domain = sdf->get_soma_domain(); - std::vector dom_sjid = - ArrowAdapter::get_table_non_string_column_by_name( - soma_domain, "soma_joinid"); - std::vector - dom_str = ArrowAdapter::get_table_string_column_by_name( - soma_domain, "mystring"); - - ArrowTable soma_maxdomain = sdf->get_soma_maxdomain(); - std::vector maxdom_sjid = - ArrowAdapter::get_table_non_string_column_by_name( - soma_maxdomain, "soma_joinid"); - std::vector - maxdom_str = ArrowAdapter::get_table_string_column_by_name( - soma_maxdomain, "mystring"); - - REQUIRE(ned_sjid == std::vector({1, 10})); - REQUIRE(ned_str == std::vector({"apple", "bat"})); - - REQUIRE(dom_sjid == std::vector({0, 99})); - - if (!use_current_domain) { - REQUIRE(maxdom_sjid == std::vector({0, 99})); - } else { - if (specify_domain) { - REQUIRE(dom_str[0] == dim_infos[1].string_lo); - REQUIRE(dom_str[1] == dim_infos[1].string_hi); - } else { - REQUIRE(dom_str[0] == ""); - REQUIRE(dom_str[1] == ""); - } - - REQUIRE(maxdom_sjid[0] == 0); - REQUIRE(maxdom_sjid[1] > 2000000000); - } - REQUIRE(maxdom_str == std::vector({"", ""})); - - sdf->close(); - - // Resize - auto new_shape = int64_t{SOMA_JOINID_RESIZE_DIM_MAX + 1}; - - if (!use_current_domain) { - // Domain is already set. The domain (not current domain but domain) - // is immutable. All we can do is check for: - // * throw on write beyond domain - // * throw on an attempt to resize. - REQUIRE_THROWS(write_sjid_u32_str_data_from(SOMA_JOINID_DIM_MAX)); - - sdf = open(OpenMode::write); - // Array not resizeable if it has not already been sized - REQUIRE_THROWS(sdf->resize_soma_joinid_shape(new_shape, "testing")); - sdf->close(); - - } else { - // Expect throw on write beyond current domain before resize - REQUIRE_THROWS(write_sjid_u32_str_data_from(SOMA_JOINID_DIM_MAX)); - - // Check shape after write - sdf = open(OpenMode::read); - expect = dim_infos[0].dim_max + 1; - std::optional actual = sdf->maybe_soma_joinid_shape(); - REQUIRE(actual.has_value()); - REQUIRE(actual.value() == expect); - sdf->close(); - - sdf = open(OpenMode::read); - REQUIRE_THROWS(sdf->resize_soma_joinid_shape(new_shape, "testing")); - sdf->close(); - - sdf = open(OpenMode::write); - sdf->resize_soma_joinid_shape(new_shape, "testing"); - sdf->close(); - - // Check shape after resize - sdf = open(OpenMode::read); - expect = SOMA_JOINID_RESIZE_DIM_MAX + 1; - actual = sdf->maybe_soma_joinid_shape(); - REQUIRE(actual.has_value()); - REQUIRE(actual.value() == expect); - sdf->close(); - - // Implicitly we expect no throw - write_sjid_u32_str_data_from(SOMA_JOINID_DIM_MAX); - } - - // Check domainish accessors after resize - sdf->open(OpenMode::read, TimestampRange(0, 2)); - - non_empty_domain = sdf->get_non_empty_domain(); - ned_sjid = ArrowAdapter::get_table_non_string_column_by_name( - non_empty_domain, "soma_joinid"); - ned_str = ArrowAdapter::get_table_string_column_by_name( - non_empty_domain, "mystring"); - - soma_domain = sdf->get_soma_domain(); - dom_sjid = ArrowAdapter::get_table_non_string_column_by_name( - soma_domain, "soma_joinid"); - dom_str = ArrowAdapter::get_table_string_column_by_name( - soma_domain, "mystring"); - - soma_maxdomain = sdf->get_soma_maxdomain(); - maxdom_sjid = ArrowAdapter::get_table_non_string_column_by_name< - int64_t>(soma_maxdomain, "soma_joinid"); - maxdom_str = ArrowAdapter::get_table_string_column_by_name( - soma_maxdomain, "mystring"); - - REQUIRE(ned_sjid == std::vector({0, 0})); - REQUIRE(ned_str == std::vector({"", ""})); - - REQUIRE(dom_sjid == std::vector({0, 99})); - - if (!use_current_domain) { - REQUIRE(maxdom_sjid == std::vector({0, 99})); - REQUIRE(dom_str == std::vector({"", ""})); - } else { - if (specify_domain) { - REQUIRE(dom_str[0] == dim_infos[1].string_lo); - REQUIRE(dom_str[1] == dim_infos[1].string_hi); - } else { - REQUIRE(dom_str == std::vector({"", ""})); + SECTION(section2.str()) { + auto test_upgrade_domain = GENERATE(false, true); + std::ostringstream section3; + section << "- test_upgrade_domain=" << test_upgrade_domain; + SECTION(section3.str()) { + std::string suffix1 = use_current_domain ? "true" : "false"; + std::string suffix2 = specify_domain ? "true" : "false"; + std::string suffix3 = test_upgrade_domain ? "true" : "false"; + set_up( + std::make_shared(), + "mem://unit-test-variant-indexed-dataframe-3-" + suffix1 + + "-" + suffix2 + "-" + suffix3); + + std::string string_lo = specify_domain ? "apple" : ""; + std::string string_hi = specify_domain ? "zebra" : ""; + std::vector dim_infos( + {i64_dim_info(use_current_domain), + str_dim_info(use_current_domain, string_lo, string_hi)}); + std::vector attr_infos({u32_attr_info()}); + + // Create + create(dim_infos, attr_infos); + + // Check current domain + auto sdf = open(OpenMode::read); + + CurrentDomain + current_domain = sdf->get_current_domain_for_test(); + if (!use_current_domain) { + REQUIRE(current_domain.is_empty()); + } else { + REQUIRE(!current_domain.is_empty()); + REQUIRE(current_domain.type() == TILEDB_NDRECTANGLE); + NDRectangle ndrect = current_domain.ndrectangle(); + + std::array i64_range = ndrect.range( + dim_infos[0].name); + REQUIRE(i64_range[0] == (int64_t)0); + REQUIRE(i64_range[1] == (int64_t)dim_infos[0].dim_max); + + std::array + str_range = ndrect.range( + dim_infos[1].name); + if (specify_domain) { + REQUIRE(str_range[0] == dim_infos[1].string_lo); + REQUIRE(str_range[1] == dim_infos[1].string_hi); + } else { + // Can we write empty strings in this range? + REQUIRE(str_range[0] <= ""); + REQUIRE(str_range[1] >= ""); + // Can we write ASCII values in this range? + REQUIRE(str_range[0] < " "); + REQUIRE(str_range[1] > "~"); + } + } + + // Check shape before write + int64_t expect = dim_infos[0].dim_max + 1; + std::optional actual = sdf->maybe_soma_joinid_shape(); + REQUIRE(actual.has_value()); + REQUIRE(actual.value() == expect); + sdf->close(); + + REQUIRE(sdf->nnz() == 0); + + // Write + write_sjid_u32_str_data_from(0); + + REQUIRE(sdf->nnz() == 2); + write_sjid_u32_str_data_from(8); + REQUIRE(sdf->nnz() == 4); + + // Check shape after write + sdf = open(OpenMode::read); + expect = dim_infos[0].dim_max + 1; + actual = sdf->maybe_soma_joinid_shape(); + REQUIRE(actual.has_value()); + REQUIRE(actual.value() == expect); + + // Check domainish accessors before resize + ArrowTable non_empty_domain = sdf->get_non_empty_domain(); + std::vector ned_sjid = + ArrowAdapter::get_table_non_string_column_by_name( + non_empty_domain, "soma_joinid"); + std::vector + ned_str = ArrowAdapter::get_table_string_column_by_name( + non_empty_domain, "mystring"); + + ArrowTable soma_domain = sdf->get_soma_domain(); + std::vector dom_sjid = + ArrowAdapter::get_table_non_string_column_by_name( + soma_domain, "soma_joinid"); + std::vector + dom_str = ArrowAdapter::get_table_string_column_by_name( + soma_domain, "mystring"); + + ArrowTable soma_maxdomain = sdf->get_soma_maxdomain(); + std::vector maxdom_sjid = + ArrowAdapter::get_table_non_string_column_by_name( + soma_maxdomain, "soma_joinid"); + std::vector + maxdom_str = ArrowAdapter::get_table_string_column_by_name( + soma_maxdomain, "mystring"); + + REQUIRE(ned_sjid == std::vector({1, 10})); + REQUIRE(ned_str == std::vector({"apple", "bat"})); + + REQUIRE(dom_sjid == std::vector({0, 99})); + + if (!use_current_domain) { + REQUIRE(maxdom_sjid == std::vector({0, 99})); + } else { + if (specify_domain) { + REQUIRE(dom_str[0] == dim_infos[1].string_lo); + REQUIRE(dom_str[1] == dim_infos[1].string_hi); + } else { + REQUIRE(dom_str[0] == ""); + REQUIRE(dom_str[1] == ""); + } + + REQUIRE(maxdom_sjid[0] == 0); + REQUIRE(maxdom_sjid[1] > 2000000000); + } + REQUIRE(maxdom_str == std::vector({"", ""})); + + sdf->close(); + + // Check can_upgrade_domain + sdf = open(OpenMode::read); + std::unique_ptr + domain_schema = create_index_cols_info_schema(dim_infos); + auto domain_array = ArrowAdapter::make_arrow_array_parent( + dim_infos.size()); + domain_array + ->children[0] = ArrowAdapter::make_arrow_array_child( + std::vector({0, 0})); + domain_array + ->children[1] = ArrowAdapter::make_arrow_array_child_string( + std::vector({"a", "z"})); + auto domain_table = ArrowTable( + std::move(domain_array), std::move(domain_schema)); + if (!use_current_domain) { + StatusAndReason check = sdf->can_upgrade_domain( + domain_table, "testing"); + REQUIRE(check.first == false); + REQUIRE( + check.second == + "testing for mystring: domain cannot be set for string " + "index columns: please use (\"\", \"\")"); + } else { + StatusAndReason check = sdf->can_upgrade_soma_joinid_shape( + 1, "testing"); + // Must fail since this is too small. + REQUIRE(check.first == false); + REQUIRE( + check.second == + "testing: dataframe already has its domain set."); + } + sdf->close(); + + // Resize + + auto new_shape = int64_t{SOMA_JOINID_RESIZE_DIM_MAX + 1}; + + if (!use_current_domain) { + // Domain is already set. The domain (not current domain + // but domain) is immutable. All we can do is check for: + // * throw on write beyond domain + // * throw on an attempt to resize. + REQUIRE_THROWS( + write_sjid_u32_str_data_from(SOMA_JOINID_DIM_MAX)); + + sdf = open(OpenMode::write); + + // Array not resizeable if it has not already been sized + if (test_upgrade_domain) { + std::unique_ptr + domain_schema = create_index_cols_info_schema( + dim_infos); + auto domain_array = + ArrowAdapter::make_arrow_array_parent( + dim_infos.size()); + domain_array->children[0] = + ArrowAdapter::make_arrow_array_child( + std::vector({0, new_shape - 1})); + domain_array->children[1] = + ArrowAdapter::make_arrow_array_child_string( + std::vector({"", ""})); + auto domain_table = ArrowTable( + std::move(domain_array), std::move(domain_schema)); + REQUIRE_THROWS( + sdf->change_domain(domain_table, "testing")); + } else { + REQUIRE_THROWS(sdf->resize_soma_joinid_shape( + new_shape, "testing")); + } + + sdf->close(); + + } else { + // Expect throw on write beyond current domain before + // resize + REQUIRE_THROWS( + write_sjid_u32_str_data_from(SOMA_JOINID_DIM_MAX)); + + // Check shape after write + sdf = open(OpenMode::read); + expect = dim_infos[0].dim_max + 1; + std::optional + actual = sdf->maybe_soma_joinid_shape(); + REQUIRE(actual.has_value()); + REQUIRE(actual.value() == expect); + sdf->close(); + + // Apply the domain change + if (test_upgrade_domain) { + std::unique_ptr + domain_schema = create_index_cols_info_schema( + dim_infos); + auto domain_array = + ArrowAdapter::make_arrow_array_parent( + dim_infos.size()); + domain_array->children[0] = + ArrowAdapter::make_arrow_array_child( + std::vector({0, new_shape - 1})); + domain_array->children[1] = + ArrowAdapter::make_arrow_array_child_string( + std::vector({"", ""})); + auto domain_table = ArrowTable( + std::move(domain_array), std::move(domain_schema)); + + // Not open for write + sdf = open(OpenMode::read); + REQUIRE_THROWS( + sdf->change_domain(domain_table, "testing")); + sdf->close(); + + // Open for write + sdf = open(OpenMode::write); + sdf->change_domain(domain_table, "testing"); + sdf->close(); + + } else { + // Not open for write + sdf = open(OpenMode::read); + REQUIRE_THROWS(sdf->resize_soma_joinid_shape( + new_shape, "testing")); + sdf->close(); + + // Open for write + sdf = open(OpenMode::write); + sdf->resize_soma_joinid_shape(new_shape, "testing"); + + sdf->close(); + } + } + + sdf->open(OpenMode::write); + if (!use_current_domain) { + REQUIRE_THROWS( + write_sjid_u32_str_data_from(SOMA_JOINID_DIM_MAX)); + } else { + // Implicitly we expect no throw + write_sjid_u32_str_data_from(SOMA_JOINID_DIM_MAX); + } + sdf->close(); + + // Check domainish accessors after resize + sdf->open(OpenMode::read, TimestampRange(0, 2)); + + non_empty_domain = sdf->get_non_empty_domain(); + ned_sjid = ArrowAdapter::get_table_non_string_column_by_name< + int64_t>(non_empty_domain, "soma_joinid"); + ned_str = ArrowAdapter::get_table_string_column_by_name( + non_empty_domain, "mystring"); + + soma_domain = sdf->get_soma_domain(); + dom_sjid = ArrowAdapter::get_table_non_string_column_by_name< + int64_t>(soma_domain, "soma_joinid"); + dom_str = ArrowAdapter::get_table_string_column_by_name( + soma_domain, "mystring"); + + soma_maxdomain = sdf->get_soma_maxdomain(); + maxdom_sjid = ArrowAdapter::get_table_non_string_column_by_name< + int64_t>(soma_maxdomain, "soma_joinid"); + maxdom_str = ArrowAdapter::get_table_string_column_by_name( + soma_maxdomain, "mystring"); + + REQUIRE(ned_sjid == std::vector({0, 0})); + REQUIRE(ned_str == std::vector({"", ""})); + + REQUIRE(dom_sjid == std::vector({0, 99})); + + if (!use_current_domain) { + REQUIRE(maxdom_sjid == std::vector({0, 99})); + REQUIRE(dom_str == std::vector({"", ""})); + } else { + if (specify_domain) { + REQUIRE(dom_str[0] == dim_infos[1].string_lo); + REQUIRE(dom_str[1] == dim_infos[1].string_hi); + } else { + REQUIRE(dom_str == std::vector({"", ""})); + } + + REQUIRE(maxdom_sjid[0] == 0); + REQUIRE(maxdom_sjid[1] > 2000000000); + } + + REQUIRE(maxdom_str == std::vector({"", ""})); + + REQUIRE(ned_str == std::vector({"", ""})); + + // Check can_resize_soma_joinid_shape + StatusAndReason check = sdf->can_resize_soma_joinid_shape( + 1, "testing"); + if (!use_current_domain) { + REQUIRE(check.first == false); + REQUIRE( + check.second == + "testing: dataframe currently has no domain set."); + } else { + // Must fail since this is too small. + REQUIRE(check.first == false); + REQUIRE( + check.second == + "testing: new soma_joinid shape 1 < existing shape " + "100"); + check = sdf->can_resize_soma_joinid_shape( + SOMA_JOINID_RESIZE_DIM_MAX + 1, "testing"); + REQUIRE(check.first == true); + REQUIRE(check.second == ""); + } + + sdf->close(); } - - REQUIRE(maxdom_sjid[0] == 0); - REQUIRE(maxdom_sjid[1] > 2000000000); - } - - REQUIRE(maxdom_str == std::vector({"", ""})); - - REQUIRE(ned_str == std::vector({"", ""})); - - // Check can_resize_soma_joinid_shape - std::pair check = sdf->can_resize_soma_joinid_shape( - 1, "testing"); - if (!use_current_domain) { - REQUIRE(check.first == false); - REQUIRE( - check.second == - "testing: dataframe currently has no domain set: please " - "upgrade the array."); - } else { - // Must fail since this is too small. - REQUIRE(check.first == false); - REQUIRE( - check.second == - "testing: new soma_joinid shape 1 < existing shape 99"); - check = sdf->can_resize_soma_joinid_shape( - SOMA_JOINID_RESIZE_DIM_MAX + 1, "testing"); - REQUIRE(check.first == true); - REQUIRE(check.second == ""); } - - sdf->close(); } } @@ -1171,194 +1552,288 @@ TEST_CASE_METHOD( auto specify_domain = GENERATE(false, true); std::ostringstream section2; section2 << "- specify_domain=" << specify_domain; - - std::string suffix1 = use_current_domain ? "true" : "false"; - std::string suffix2 = specify_domain ? "true" : "false"; - set_up( - std::make_shared(), - "mem://unit-test-variant-indexed-dataframe-4-" + suffix1 + "-" + - suffix2); - - std::string string_lo = specify_domain ? "apple" : ""; - std::string string_hi = specify_domain ? "zebra" : ""; - std::vector dim_infos( - {str_dim_info(use_current_domain, string_lo, string_hi), - u32_dim_info(use_current_domain)}); - std::vector attr_infos({i64_attr_info()}); - - // Create - create(dim_infos, attr_infos); - - // Check current domain - auto sdf = open(OpenMode::read); - - CurrentDomain current_domain = sdf->get_current_domain_for_test(); - if (!use_current_domain) { - REQUIRE(current_domain.is_empty()); - } else { - REQUIRE(!current_domain.is_empty()); - REQUIRE(current_domain.type() == TILEDB_NDRECTANGLE); - NDRectangle ndrect = current_domain.ndrectangle(); - - std::array str_range = ndrect.range( - dim_infos[0].name); - if (specify_domain) { - REQUIRE(str_range[0] == dim_infos[0].string_lo); - REQUIRE(str_range[1] == dim_infos[0].string_hi); - } else { - // Can we write empty strings in this range? - REQUIRE(str_range[0] <= ""); - REQUIRE(str_range[1] >= ""); - // Can we write ASCII values in this range? - REQUIRE(str_range[0] < " "); - REQUIRE(str_range[1] > "~"); - } - - std::array u32_range = ndrect.range( - dim_infos[1].name); - REQUIRE(u32_range[0] == (uint32_t)0); - REQUIRE(u32_range[1] == (uint32_t)dim_infos[1].dim_max); - } - - // Check shape before write - std::optional actual = sdf->maybe_soma_joinid_shape(); - REQUIRE(!actual.has_value()); - - // Check domainish accessors before resize - ArrowTable non_empty_domain = sdf->get_non_empty_domain(); - std::vector - ned_str = ArrowAdapter::get_table_string_column_by_name( - non_empty_domain, "mystring"); - - ArrowTable soma_domain = sdf->get_soma_domain(); - std::vector - dom_str = ArrowAdapter::get_table_string_column_by_name( - soma_domain, "mystring"); - - ArrowTable soma_maxdomain = sdf->get_soma_maxdomain(); - std::vector - maxdom_str = ArrowAdapter::get_table_string_column_by_name( - soma_maxdomain, "mystring"); - - REQUIRE(ned_str == std::vector({"", ""})); - - if (!use_current_domain) { - REQUIRE(dom_str == std::vector({"", ""})); - REQUIRE(maxdom_str == std::vector({"", ""})); - } else { - if (specify_domain) { - REQUIRE(dom_str[0] == dim_infos[0].string_lo); - REQUIRE(dom_str[1] == dim_infos[0].string_hi); - } else { - REQUIRE(dom_str == std::vector({"", ""})); - } - REQUIRE(maxdom_str == std::vector({"", ""})); - } - - sdf->close(); - - REQUIRE(sdf->nnz() == 0); - - // Write - write_sjid_u32_str_data_from(0); - - REQUIRE(sdf->nnz() == 2); - write_sjid_u32_str_data_from(8); - // soma_joinid is not a dim here and so the second write is an overwrite - // of the first here - REQUIRE(sdf->nnz() == 2); - - // Check shape after write - sdf = open(OpenMode::read); - actual = sdf->maybe_soma_joinid_shape(); - REQUIRE(!actual.has_value()); - sdf->close(); - - // Resize - auto new_shape = int64_t{SOMA_JOINID_RESIZE_DIM_MAX + 1}; - - if (!use_current_domain) { - // Domain is already set. The domain (not current domain but domain) - // is immutable. All we can do is check for: - // * throw on write beyond domain -- except here, soma_joinid is not - // a dim, so no throw - // * throw on an attempt to resize. - - sdf = open(OpenMode::write); - // Array not resizeable if it has not already been sized - REQUIRE_THROWS(sdf->resize_soma_joinid_shape(new_shape, "testing")); - sdf->close(); - - } else { - // Check shape after write - sdf = open(OpenMode::read); - std::optional actual = sdf->maybe_soma_joinid_shape(); - REQUIRE(!actual.has_value()); - sdf->close(); - - sdf = open(OpenMode::read); - REQUIRE_THROWS(sdf->resize_soma_joinid_shape(new_shape, "testing")); - sdf->close(); - - sdf = open(OpenMode::write); - sdf->resize_soma_joinid_shape(new_shape, "testing"); - sdf->close(); - - // Check shape after resize -- noting soma_joinid is not a dim here - sdf = open(OpenMode::read); - actual = sdf->maybe_soma_joinid_shape(); - REQUIRE(!actual.has_value()); - sdf->close(); - - // Implicitly we expect no throw - write_sjid_u32_str_data_from(SOMA_JOINID_DIM_MAX); - } - - // Check domainish accessors after resize - sdf->open(OpenMode::read, TimestampRange(0, 2)); - - non_empty_domain = sdf->get_non_empty_domain(); - ned_str = ArrowAdapter::get_table_string_column_by_name( - non_empty_domain, "mystring"); - - soma_domain = sdf->get_soma_domain(); - dom_str = ArrowAdapter::get_table_string_column_by_name( - soma_domain, "mystring"); - - soma_maxdomain = sdf->get_soma_maxdomain(); - maxdom_str = ArrowAdapter::get_table_string_column_by_name( - soma_maxdomain, "mystring"); - - REQUIRE(ned_str == std::vector({"", ""})); - - if (!use_current_domain) { - REQUIRE(dom_str == std::vector({"", ""})); - REQUIRE(maxdom_str == std::vector({"", ""})); - } else { - if (specify_domain) { - REQUIRE(dom_str[0] == dim_infos[0].string_lo); - REQUIRE(dom_str[1] == dim_infos[0].string_hi); - } else { - REQUIRE(dom_str == std::vector({"", ""})); + SECTION(section2.str()) { + auto test_upgrade_domain = GENERATE(false, true); + std::ostringstream section3; + section << "- test_upgrade_domain=" << test_upgrade_domain; + SECTION(section3.str()) { + std::string suffix1 = use_current_domain ? "true" : "false"; + std::string suffix2 = specify_domain ? "true" : "false"; + std::string suffix3 = test_upgrade_domain ? "true" : "false"; + set_up( + std::make_shared(), + "mem://unit-test-variant-indexed-dataframe-4-" + suffix1 + + "-" + suffix2 + "-" + suffix3); + + std::string string_lo = specify_domain ? "apple" : ""; + std::string string_hi = specify_domain ? "zebra" : ""; + std::vector dim_infos( + {str_dim_info(use_current_domain, string_lo, string_hi), + u32_dim_info(use_current_domain)}); + std::vector attr_infos({i64_attr_info()}); + + // Create + create(dim_infos, attr_infos); + + // Check current domain + auto sdf = open(OpenMode::read); + + CurrentDomain + current_domain = sdf->get_current_domain_for_test(); + if (!use_current_domain) { + REQUIRE(current_domain.is_empty()); + } else { + REQUIRE(!current_domain.is_empty()); + REQUIRE(current_domain.type() == TILEDB_NDRECTANGLE); + NDRectangle ndrect = current_domain.ndrectangle(); + + std::array + str_range = ndrect.range( + dim_infos[0].name); + if (specify_domain) { + REQUIRE(str_range[0] == dim_infos[0].string_lo); + REQUIRE(str_range[1] == dim_infos[0].string_hi); + } else { + // Can we write empty strings in this range? + REQUIRE(str_range[0] <= ""); + REQUIRE(str_range[1] >= ""); + // Can we write ASCII values in this range? + REQUIRE(str_range[0] < " "); + REQUIRE(str_range[1] > "~"); + } + + std::array u32_range = ndrect.range( + dim_infos[1].name); + REQUIRE(u32_range[0] == (uint32_t)0); + REQUIRE(u32_range[1] == (uint32_t)dim_infos[1].dim_max); + } + + // Check shape before write + std::optional actual = sdf->maybe_soma_joinid_shape(); + REQUIRE(!actual.has_value()); + + // Check domainish accessors before resize + ArrowTable non_empty_domain = sdf->get_non_empty_domain(); + std::vector + ned_str = ArrowAdapter::get_table_string_column_by_name( + non_empty_domain, "mystring"); + + ArrowTable soma_domain = sdf->get_soma_domain(); + std::vector + dom_str = ArrowAdapter::get_table_string_column_by_name( + soma_domain, "mystring"); + + ArrowTable soma_maxdomain = sdf->get_soma_maxdomain(); + std::vector + maxdom_str = ArrowAdapter::get_table_string_column_by_name( + soma_maxdomain, "mystring"); + + REQUIRE(ned_str == std::vector({"", ""})); + + if (!use_current_domain) { + REQUIRE(dom_str == std::vector({"", ""})); + REQUIRE(maxdom_str == std::vector({"", ""})); + } else { + if (specify_domain) { + REQUIRE(dom_str[0] == dim_infos[0].string_lo); + REQUIRE(dom_str[1] == dim_infos[0].string_hi); + } else { + REQUIRE(dom_str == std::vector({"", ""})); + } + REQUIRE(maxdom_str == std::vector({"", ""})); + } + + sdf->close(); + + REQUIRE(sdf->nnz() == 0); + + // Write + write_sjid_u32_str_data_from(0); + + REQUIRE(sdf->nnz() == 2); + write_sjid_u32_str_data_from(8); + // soma_joinid is not a dim here and so the second write is + // an overwrite of the first here + REQUIRE(sdf->nnz() == 2); + + // Check shape after write + sdf = open(OpenMode::read); + actual = sdf->maybe_soma_joinid_shape(); + REQUIRE(!actual.has_value()); + sdf->close(); + + // Check can_upgrade_domain + sdf = open(OpenMode::read); + std::unique_ptr + domain_schema = create_index_cols_info_schema(dim_infos); + auto domain_array = ArrowAdapter::make_arrow_array_parent( + dim_infos.size()); + domain_array + ->children[0] = ArrowAdapter::make_arrow_array_child_string( + std::vector({"a", "z"})); + domain_array + ->children[1] = ArrowAdapter::make_arrow_array_child( + std::vector({0, 0})); + auto domain_table = ArrowTable( + std::move(domain_array), std::move(domain_schema)); + if (!use_current_domain) { + StatusAndReason check = sdf->can_upgrade_domain( + domain_table, "testing"); + REQUIRE(check.first == false); + REQUIRE( + check.second == + "testing for mystring: domain cannot be set for string " + "index columns: please use (\"\", \"\")"); + } else { + StatusAndReason check = sdf->can_upgrade_soma_joinid_shape( + 1, "testing"); + // Must fail since this is too small. + REQUIRE(check.first == false); + REQUIRE( + check.second == + "testing: dataframe already has its domain set."); + } + sdf->close(); + + // Resize + int64_t new_shape = int64_t{SOMA_JOINID_RESIZE_DIM_MAX + 1}; + uint32_t new_u32_dim_max = u32_dim_max * 2 + 1; + + if (!use_current_domain) { + // Domain is already set. The domain (not current domain + // but domain) is immutable. All we can do is check for: + // * throw on write beyond domain -- except here, + // soma_joinid is not + // a dim, so no throw + // * throw on an attempt to resize. + + sdf = open(OpenMode::write); + + // Array not resizeable if it has not already been sized + if (test_upgrade_domain) { + std::unique_ptr + domain_schema = create_index_cols_info_schema( + dim_infos); + auto domain_array = + ArrowAdapter::make_arrow_array_parent( + dim_infos.size()); + domain_array->children[0] = + ArrowAdapter::make_arrow_array_child_string( + std::vector({"", ""})); + domain_array->children[1] = + ArrowAdapter::make_arrow_array_child( + std::vector({0, new_u32_dim_max})); + auto domain_table = ArrowTable( + std::move(domain_array), std::move(domain_schema)); + REQUIRE_THROWS( + sdf->change_domain(domain_table, "testing")); + } else { + REQUIRE_THROWS(sdf->resize_soma_joinid_shape( + new_shape, "testing")); + } + + sdf->close(); + + } else { + // Check shape after write + sdf = open(OpenMode::read); + std::optional + actual = sdf->maybe_soma_joinid_shape(); + REQUIRE(!actual.has_value()); + sdf->close(); + + // Apply the domain change + if (test_upgrade_domain) { + std::unique_ptr + domain_schema = create_index_cols_info_schema( + dim_infos); + auto domain_array = + ArrowAdapter::make_arrow_array_parent( + dim_infos.size()); + domain_array->children[0] = + ArrowAdapter::make_arrow_array_child_string( + std::vector({"", ""})); + domain_array->children[1] = + ArrowAdapter::make_arrow_array_child( + std::vector({0, new_u32_dim_max})); + auto domain_table = ArrowTable( + std::move(domain_array), std::move(domain_schema)); + + // Not open for write + sdf = open(OpenMode::read); + REQUIRE_THROWS( + sdf->change_domain(domain_table, "testing")); + sdf->close(); + + // Open for write + sdf = open(OpenMode::write); + sdf->change_domain(domain_table, "testing"); + sdf->close(); + + } else { + // Not open for write + sdf = open(OpenMode::read); + REQUIRE_THROWS(sdf->resize_soma_joinid_shape( + new_shape, "testing")); + sdf->close(); + + // Open for write + sdf = open(OpenMode::write); + sdf->resize_soma_joinid_shape(new_shape, "testing"); + sdf->close(); + } + } + + sdf = open(OpenMode::write); + write_sjid_u32_str_data_from(SOMA_JOINID_DIM_MAX); + sdf->close(); + + // Check domainish accessors after resize + sdf->open(OpenMode::read, TimestampRange(0, 2)); + + non_empty_domain = sdf->get_non_empty_domain(); + ned_str = ArrowAdapter::get_table_string_column_by_name( + non_empty_domain, "mystring"); + + soma_domain = sdf->get_soma_domain(); + dom_str = ArrowAdapter::get_table_string_column_by_name( + soma_domain, "mystring"); + + soma_maxdomain = sdf->get_soma_maxdomain(); + maxdom_str = ArrowAdapter::get_table_string_column_by_name( + soma_maxdomain, "mystring"); + + REQUIRE(ned_str == std::vector({"", ""})); + + if (!use_current_domain) { + REQUIRE(dom_str == std::vector({"", ""})); + REQUIRE(maxdom_str == std::vector({"", ""})); + } else { + if (specify_domain) { + REQUIRE(dom_str[0] == dim_infos[0].string_lo); + REQUIRE(dom_str[1] == dim_infos[0].string_hi); + } else { + REQUIRE(dom_str == std::vector({"", ""})); + } + REQUIRE(maxdom_str == std::vector({"", ""})); + } + + // Check can_resize_soma_joinid_shape + StatusAndReason check = sdf->can_resize_soma_joinid_shape( + 0, "testing"); + if (!use_current_domain) { + REQUIRE(check.first == false); + REQUIRE( + check.second == + "testing: dataframe currently has no domain set."); + } else { + // Must pass since soma_joinid isn't a dim in this case. + REQUIRE(check.first == true); + REQUIRE(check.second == ""); + } + + sdf->close(); } - REQUIRE(maxdom_str == std::vector({"", ""})); } - - // Check can_resize_soma_joinid_shape - std::pair check = sdf->can_resize_soma_joinid_shape( - 0, "testing"); - if (!use_current_domain) { - REQUIRE(check.first == false); - REQUIRE( - check.second == - "testing: dataframe currently has no domain set: please " - "upgrade the array."); - } else { - // Must pass since soma_joinid isn't a dim in this case. - REQUIRE(check.first == true); - REQUIRE(check.second == ""); - } - - sdf->close(); } } diff --git a/libtiledbsoma/test/unit_soma_dense_ndarray.cc b/libtiledbsoma/test/unit_soma_dense_ndarray.cc index af116c0d30..8f9ba01b78 100644 --- a/libtiledbsoma/test/unit_soma_dense_ndarray.cc +++ b/libtiledbsoma/test/unit_soma_dense_ndarray.cc @@ -69,18 +69,31 @@ TEST_CASE("SOMADenseNDArray: basic", "[SOMADenseNDArray]") { auto index_columns = helper::create_column_index_info(dim_infos); if (use_current_domain) { - // Setting a current domain on a TileDB dense array is not (yet) - // supported - // https://github.com/single-cell-data/TileDB-SOMA/issues/2955 - REQUIRE_THROWS(SOMADenseNDArray::create( - uri, - dim_arrow_format, - ArrowTable( - std::move(index_columns.first), - std::move(index_columns.second)), - ctx, - PlatformConfig(), - TimestampRange(0, 2))); + if (helper::have_dense_current_domain_support()) { + SOMADenseNDArray::create( + uri, + dim_arrow_format, + ArrowTable( + std::move(index_columns.first), + std::move(index_columns.second)), + ctx, + PlatformConfig(), + TimestampRange(0, 2)); + + auto dnda = SOMADenseNDArray::open(uri, OpenMode::read, ctx); + REQUIRE(dnda->shape() == std::vector{dim_max + 1}); + dnda->close(); + } else { + REQUIRE_THROWS(SOMADenseNDArray::create( + uri, + dim_arrow_format, + ArrowTable( + std::move(index_columns.first), + std::move(index_columns.second)), + ctx, + PlatformConfig(), + TimestampRange(0, 2))); + } } else { SOMADenseNDArray::create( uri, @@ -108,17 +121,6 @@ TEST_CASE("SOMADenseNDArray: basic", "[SOMADenseNDArray]") { REQUIRE(schema->domain().has_dimension(dim_name)); REQUIRE(dnda->ndim() == 1); - // TODO: Once we have support for current domain in dense arrays - // https://github.com/single-cell-data/TileDB-SOMA/issues/2955 - // if (use_current_domain) { - // REQUIRE(dnda->shape() == std::vector{dim_max + - // 1}); - //} else { - // REQUIRE( - // dnda->maxshape() == std::vector{dim_max + - // 1}); - //} - REQUIRE(dnda->maxshape() == std::vector{shape}); dnda->close(); @@ -156,9 +158,9 @@ TEST_CASE("SOMADenseNDArray: basic", "[SOMADenseNDArray]") { TEST_CASE("SOMADenseNDArray: platform_config", "[SOMADenseNDArray]") { int64_t dim_max = 999; auto use_current_domain = GENERATE(false, true); - // TODO this could be formatted with fmt::format which is part of internal - // header spd/log/fmt/fmt.h and should not be used. In C++20, this can be - // replaced with std::format. + // TODO this could be formatted with fmt::format which is part of + // internal header spd/log/fmt/fmt.h and should not be used. In C++20, + // this can be replaced with std::format. std::ostringstream section; section << "- use_current_domain=" << use_current_domain; SECTION(section.str()) { @@ -183,17 +185,39 @@ TEST_CASE("SOMADenseNDArray: platform_config", "[SOMADenseNDArray]") { auto index_columns = helper::create_column_index_info(dim_infos); if (use_current_domain) { - // Setting a current domain on a TileDB dense array is not (yet) - // supported - // https://github.com/single-cell-data/TileDB-SOMA/issues/2955 - REQUIRE_THROWS(SOMADenseNDArray::create( - uri, - arrow_format, - ArrowTable( - std::move(index_columns.first), - std::move(index_columns.second)), - ctx, - platform_config)); + if (helper::have_dense_current_domain_support()) { + SOMADenseNDArray::create( + uri, + arrow_format, + ArrowTable( + std::move(index_columns.first), + std::move(index_columns.second)), + ctx, + platform_config); + + auto dnda = SOMADenseNDArray::open(uri, OpenMode::read, ctx); + auto dim_filter = dnda->tiledb_schema() + ->domain() + .dimension(dim_name) + .filter_list() + .filter(0); + REQUIRE(dim_filter.filter_type() == TILEDB_FILTER_ZSTD); + REQUIRE( + dim_filter.get_option(TILEDB_COMPRESSION_LEVEL) == + 6); + + dnda->close(); + + } else { + REQUIRE_THROWS(SOMADenseNDArray::create( + uri, + arrow_format, + ArrowTable( + std::move(index_columns.first), + std::move(index_columns.second)), + ctx, + platform_config)); + } } else { SOMADenseNDArray::create( @@ -223,9 +247,9 @@ TEST_CASE("SOMADenseNDArray: platform_config", "[SOMADenseNDArray]") { TEST_CASE("SOMADenseNDArray: metadata", "[SOMADenseNDArray]") { int64_t dim_max = 999; auto use_current_domain = GENERATE(false, true); - // TODO this could be formatted with fmt::format which is part of internal - // header spd/log/fmt/fmt.h and should not be used. In C++20, this can be - // replaced with std::format. + // TODO this could be formatted with fmt::format which is part of + // internal header spd/log/fmt/fmt.h and should not be used. In C++20, + // this can be replaced with std::format. std::ostringstream section; section << "- use_current_domain=" << use_current_domain; SECTION(section.str()) { diff --git a/libtiledbsoma/test/unit_soma_sparse_ndarray.cc b/libtiledbsoma/test/unit_soma_sparse_ndarray.cc index 4d455cedbe..e21edde284 100644 --- a/libtiledbsoma/test/unit_soma_sparse_ndarray.cc +++ b/libtiledbsoma/test/unit_soma_sparse_ndarray.cc @@ -161,7 +161,7 @@ TEST_CASE("SOMASparseNDArray: basic", "[SOMASparseNDArray]") { snda->resize(new_shape, "testing"); snda->close(); - snda = SOMASparseNDArray::open(uri, OpenMode::read, ctx); + snda->open(OpenMode::read); REQUIRE(snda->shape() == new_shape); snda->close(); @@ -176,7 +176,7 @@ TEST_CASE("SOMASparseNDArray: basic", "[SOMASparseNDArray]") { snda->close(); // Try out-of-bounds write after resize. - snda = SOMASparseNDArray::open(uri, OpenMode::write, ctx); + snda->open(OpenMode::write); snda->set_column_data(dim_name, d0b.size(), d0b.data()); snda->set_column_data(attr_name, a0b.size(), a0b.data()); // Implicitly checking for no throw diff --git a/scripts/bld b/scripts/bld index 5008e188dc..a1355b302d 100755 --- a/scripts/bld +++ b/scripts/bld @@ -13,6 +13,7 @@ prefix="" tiledb="" cmake_verbose="false" no_tiledb_deprecated="false" +werror="false" while test $# != 0; do case "$1" in @@ -21,6 +22,7 @@ while test $# != 0; do --tiledb=*) tiledb=$(arg "$1");; --cmake-verbose=*) cmake_verbose=$(arg "$1");; --no-tiledb-deprecated=*) no_tiledb_deprecated=$(arg "$1");; + --werror=*) werror=$(arg "$1");; esac shift done @@ -46,6 +48,8 @@ if [ "$(uname -m)" == "aarch64" ]; then extra_opts+=" -DDOWNLOAD_TILEDB_PREBUILT=OFF" fi + + # NOTE: set to true to debug the cmake build if [ "$cmake_verbose" = "true" ]; then # This is _incredibly_ helpful in that it reveals the actual compile lines etc which make itself @@ -61,12 +65,16 @@ if [ "$cmake_verbose" = "true" ]; then # Also (pro-tip), set nproc=1 to get a more deterministic ordering of output lines. nproc=1 +elif [ "$werror" = "true" ]; then + extra_opts+=" -DTILEDBSOMA_ENABLE_WERROR=ON" + fi if [ "$no_tiledb_deprecated" = "true" ]; then extra_opts+=" -DTILEDB_REMOVE_DEPRECATIONS=ON" fi + # set installation path if [ -n "${prefix}" ]; then extra_opts+=" -DCMAKE_INSTALL_PREFIX=${prefix} -DOVERRIDE_INSTALL_PREFIX=OFF" diff --git a/scripts/show-versions.py b/scripts/show-versions.py index b37f9be063..448ffb85ce 100755 --- a/scripts/show-versions.py +++ b/scripts/show-versions.py @@ -10,11 +10,9 @@ import scipy as sp import tiledbsoma -import tiledb print("tiledbsoma.__version__ ", tiledbsoma.__version__) -print("tiledb.version() ", ".".join(str(e) for e in tiledb.version())) -print("core version ", ".".join(map(str, tiledb.libtiledb.version()))) +print("core version ", tiledbsoma.get_libtiledbsoma_core_version()) print("anndata.__version__ (ad)", ad.__version__) print("numpy.__version__ (np)", np.__version__) print("pandas.__version__ (pd)", pd.__version__)