diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index df11b24c9b0edb..ba85d7acf4e149 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -35,7 +35,6 @@ # net -/deps/ada @nodejs/url /deps/cares @nodejs/net /doc/api/dgram.md @nodejs/net /doc/api/dns.md @nodejs/net @@ -47,14 +46,11 @@ /lib/internal/js_stream_socket.js @nodejs/net /lib/internal/net.js @nodejs/net /lib/internal/socket_list.js @nodejs/net -/lib/internal/url.js @nodejs/url /lib/net.js @nodejs/net -/lib/url.js @nodejs/url /src/cares_wrap.cc @nodejs/net /src/connect_wrap.* @nodejs/net /src/connection_wrap.* @nodejs/net /src/node_sockaddr* @nodejs/net -/src/node_url.* @nodejs/url /src/tcp_wrap.* @nodejs/net /src/udp_wrap.* @nodejs/net @@ -197,3 +193,18 @@ # Performance /benchmark/* @nodejs/performance + +# URL +/deps/ada @nodejs/url +/lib/internal/url.js @nodejs/url +/lib/url.js @nodejs/url +/src/node_url.* @nodejs/url +/test/fixtures/wpt/url @nodejs/url + +# SQLite +/deps/sqlite/ @nodejs/sqlite +/doc/api/sqlite.md @nodejs/sqlite +/src/node_sqlite.* @nodejs/sqlite +/test/parallel/test-sqlite* @nodejs/sqlite +/test/sqlite/ @nodejs/sqlite +/tools/dep_updaters/update-sqlite.sh @nodejs/sqlite diff --git a/.github/SUPPORT.md b/.github/SUPPORT.md index 9e4a041bf7ce9b..4613512bf2d01f 100644 --- a/.github/SUPPORT.md +++ b/.github/SUPPORT.md @@ -7,9 +7,10 @@ Node.js](https://github.com/nodejs/Release#release-schedule). When looking for support, please first search for your question in these venues: * [Node.js Website](https://nodejs.org/en/), especially the - [API docs](https://nodejs.org/api/) -* [Node.js Help](https://github.com/nodejs/help) + [API docs](https://nodejs.org/api/) or the [Learn material](https://nodejs.org/en/learn) +* [Node.js's GitHub Help repository](https://github.com/nodejs/help) * [Open or closed issues in the Node.js GitHub organization](https://github.com/issues?utf8=%E2%9C%93&q=sort%3Aupdated-desc+org%3Anodejs+is%3Aissue) +* [Ask for support on Node.js's Discord server](https://nodejs.org/discord) If you didn't find an answer in the resources above, try these unofficial resources: @@ -19,7 +20,7 @@ resources: * [Node.js Slack Community](https://node-js.slack.com/) * To register: [nodeslackers.com](https://www.nodeslackers.com/) -GitHub issues are for tracking enhancements and bugs, not general support. +**GitHub issues are for tracking enhancements and bugs, not general support.** The open source license grants you the freedom to use Node.js. It does not guarantee commitments of other people's time. Please be respectful and manage diff --git a/.github/label-pr-config.yml b/.github/label-pr-config.yml index ea3f1d145e414c..0b94dd5755d7d6 100644 --- a/.github/label-pr-config.yml +++ b/.github/label-pr-config.yml @@ -34,6 +34,9 @@ subSystemLabels: /^src\/node_bob*/: c++, quic /^src\/node_sea/: single-executable /^src\/node_sqlite.*/: c++, sqlite + /^src\/node_config_file.*/: c++, config + /^src\/node_dotenv.*/: c++, config + /^src\/node_options.*/: c++, config # Properly label changes to V8 inspector integration-related files /^src\/inspector_/: c++, inspector, needs-ci @@ -125,6 +128,8 @@ exlusiveLabels: /^test\/es-module\//: test, esm /^test\/fixtures\/wpt\/streams\//: test, web streams /^test\/fixtures\/typescript/: test, strip-types + /^test\/module-hooks\//: test, module, loaders + /^test\/fixtures/module-hooks\//: test, module, loaders /^test\//: test @@ -147,6 +152,8 @@ exlusiveLabels: # Specific map for typescript.md as it should be labeled 'strip-types' /^doc\/api\/typescript.md$/: doc, strip-types + /^doc\/node-config-schema.json$/: doc, config + /^doc\//: doc # More specific benchmarks @@ -166,6 +173,7 @@ allJsSubSystems: - buffer - child_process - cluster + - config - console - crypto - debugger diff --git a/.github/workflows/auto-start-ci.yml b/.github/workflows/auto-start-ci.yml index 3703a28abbc231..af001e7c2170e0 100644 --- a/.github/workflows/auto-start-ci.yml +++ b/.github/workflows/auto-start-ci.yml @@ -50,7 +50,7 @@ jobs: persist-credentials: false - name: Install Node.js - uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 + uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 with: node-version: ${{ env.NODE_VERSION }} diff --git a/.github/workflows/build-tarball.yml b/.github/workflows/build-tarball.yml index 2ed30ba0c6c568..b9158abe1e0558 100644 --- a/.github/workflows/build-tarball.yml +++ b/.github/workflows/build-tarball.yml @@ -46,13 +46,13 @@ jobs: with: persist-credentials: false - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 + uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0 with: python-version: ${{ env.PYTHON_VERSION }} - name: Set up sccache - uses: mozilla-actions/sccache-action@9e326ebed976843c9932b3aa0e021c6f50310eb4 # v0.0.6 + uses: Mozilla-Actions/sccache-action@65101d47ea8028ed0c98a1cdea8dd9182e9b5133 # v0.0.8 with: - version: v0.8.1 + version: v0.10.0 - name: Environment Information run: npx envinfo - name: Make tarball @@ -64,7 +64,7 @@ jobs: mkdir tarballs mv *.tar.gz tarballs - name: Upload tarball artifact - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 + uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1 with: name: tarballs path: tarballs @@ -76,17 +76,17 @@ jobs: with: persist-credentials: false - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 + uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0 with: python-version: ${{ env.PYTHON_VERSION }} - name: Set up sccache - uses: mozilla-actions/sccache-action@9e326ebed976843c9932b3aa0e021c6f50310eb4 # v0.0.6 + uses: Mozilla-Actions/sccache-action@65101d47ea8028ed0c98a1cdea8dd9182e9b5133 # v0.0.8 with: - version: v0.8.1 + version: v0.10.0 - name: Environment Information run: npx envinfo - name: Download tarball - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 + uses: actions/download-artifact@cc203385981b70ca67e1cc392babf9cc229d5806 # v4.1.9 with: name: tarballs path: tarballs @@ -105,4 +105,4 @@ jobs: - name: Test run: | cd $TAR_DIR - make run-ci -j4 V=1 TEST_CI_ARGS="-p dots --node-args='--test-reporter=./test/common/test-error-reporter.js' --measure-flakiness 9" + make run-ci -j4 V=1 TEST_CI_ARGS="-p dots --measure-flakiness 9" diff --git a/.github/workflows/close-stale-feature-requests.yml b/.github/workflows/close-stale-feature-requests.yml index 301dbff620c602..17bac3b83f50d9 100644 --- a/.github/workflows/close-stale-feature-requests.yml +++ b/.github/workflows/close-stale-feature-requests.yml @@ -41,7 +41,7 @@ jobs: if: github.repository == 'nodejs/node' runs-on: ubuntu-latest steps: - - uses: actions/stale@28ca1036281a5e5922ead5184a1bbf96e5fc984e # v9.0.0 + - uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 # v9.1.0 with: repo-token: ${{ secrets.GITHUB_TOKEN }} days-before-stale: 180 diff --git a/.github/workflows/close-stalled.yml b/.github/workflows/close-stalled.yml index 7ece19e2e2d6b2..5b44fd2f1dfad3 100644 --- a/.github/workflows/close-stalled.yml +++ b/.github/workflows/close-stalled.yml @@ -20,7 +20,7 @@ jobs: if: github.repository == 'nodejs/node' runs-on: ubuntu-latest steps: - - uses: actions/stale@28ca1036281a5e5922ead5184a1bbf96e5fc984e # v9.0.0 + - uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 # v9.1.0 with: repo-token: ${{ secrets.GITHUB_TOKEN }} days-before-close: 30 @@ -32,7 +32,5 @@ jobs: only-labels: stalled # max requests it will send per run to the GitHub API before it deliberately exits to avoid hitting API rate limits operations-per-run: 500 - # deactivates automatic removal of stalled label if issue gets any activity - remove-stale-when-updated: false # deactivates automatic stale labelling as we prefer to do that manually days-before-stale: -1 diff --git a/.github/workflows/commit-lint.yml b/.github/workflows/commit-lint.yml index 1eb5622358ed7d..f6033f671e016f 100644 --- a/.github/workflows/commit-lint.yml +++ b/.github/workflows/commit-lint.yml @@ -23,7 +23,7 @@ jobs: persist-credentials: false - run: git reset HEAD^2 - name: Install Node.js - uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 + uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 with: node-version: ${{ env.NODE_VERSION }} - name: Validate commit message diff --git a/.github/workflows/commit-queue.yml b/.github/workflows/commit-queue.yml index 0317e17e6605f4..58b0fac64f6472 100644 --- a/.github/workflows/commit-queue.yml +++ b/.github/workflows/commit-queue.yml @@ -72,7 +72,7 @@ jobs: # Install dependencies - name: Install Node.js - uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 + uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 with: node-version: ${{ env.NODE_VERSION }} - name: Install @node-core/utils diff --git a/.github/workflows/coverage-linux-without-intl.yml b/.github/workflows/coverage-linux-without-intl.yml index e88310dc414cab..cb4faedc73a872 100644 --- a/.github/workflows/coverage-linux-without-intl.yml +++ b/.github/workflows/coverage-linux-without-intl.yml @@ -52,13 +52,13 @@ jobs: with: persist-credentials: false - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 + uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0 with: python-version: ${{ env.PYTHON_VERSION }} - name: Set up sccache - uses: mozilla-actions/sccache-action@9e326ebed976843c9932b3aa0e021c6f50310eb4 # v0.0.6 + uses: Mozilla-Actions/sccache-action@65101d47ea8028ed0c98a1cdea8dd9182e9b5133 # v0.0.8 with: - version: v0.8.1 + version: v0.10.0 - name: Environment Information run: npx envinfo - name: Install gcovr @@ -68,7 +68,7 @@ jobs: # TODO(bcoe): fix the couple tests that fail with the inspector enabled. # The cause is most likely coverage's use of the inspector. - name: Test - run: NODE_V8_COVERAGE=coverage/tmp make test-cov -j4 V=1 TEST_CI_ARGS="-p dots --node-args='--test-reporter=./test/common/test-error-reporter.js' --measure-flakiness 9" || exit 0 + run: NODE_V8_COVERAGE=coverage/tmp make test-cov -j4 V=1 TEST_CI_ARGS="-p dots --measure-flakiness 9" || exit 0 - name: Report JS run: npx c8 report --check-coverage env: @@ -79,6 +79,6 @@ jobs: - name: Clean tmp run: rm -rf coverage/tmp && rm -rf out - name: Upload - uses: codecov/codecov-action@015f24e6818733317a2da2edd6290ab26238649a # v5.0.7 + uses: codecov/codecov-action@0565863a31f2c772f9f0395002a31e3f06189574 # v5.4.0 with: directory: ./coverage diff --git a/.github/workflows/coverage-linux.yml b/.github/workflows/coverage-linux.yml index 770205a317088c..a13a28d0f64544 100644 --- a/.github/workflows/coverage-linux.yml +++ b/.github/workflows/coverage-linux.yml @@ -52,13 +52,13 @@ jobs: with: persist-credentials: false - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 + uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0 with: python-version: ${{ env.PYTHON_VERSION }} - name: Set up sccache - uses: mozilla-actions/sccache-action@9e326ebed976843c9932b3aa0e021c6f50310eb4 # v0.0.6 + uses: Mozilla-Actions/sccache-action@65101d47ea8028ed0c98a1cdea8dd9182e9b5133 # v0.0.8 with: - version: v0.8.1 + version: v0.10.0 - name: Environment Information run: npx envinfo - name: Install gcovr @@ -68,7 +68,7 @@ jobs: # TODO(bcoe): fix the couple tests that fail with the inspector enabled. # The cause is most likely coverage's use of the inspector. - name: Test - run: NODE_V8_COVERAGE=coverage/tmp make test-cov -j4 V=1 TEST_CI_ARGS="-p dots --node-args='--test-reporter=./test/common/test-error-reporter.js' --measure-flakiness 9" || exit 0 + run: NODE_V8_COVERAGE=coverage/tmp make test-cov -j4 V=1 TEST_CI_ARGS="-p dots --measure-flakiness 9" || exit 0 - name: Report JS run: npx c8 report --check-coverage env: @@ -79,6 +79,6 @@ jobs: - name: Clean tmp run: rm -rf coverage/tmp && rm -rf out - name: Upload - uses: codecov/codecov-action@015f24e6818733317a2da2edd6290ab26238649a # v5.0.7 + uses: codecov/codecov-action@0565863a31f2c772f9f0395002a31e3f06189574 # v5.4.0 with: directory: ./coverage diff --git a/.github/workflows/coverage-windows.yml b/.github/workflows/coverage-windows.yml index fada006e321520..2607848e47b4bc 100644 --- a/.github/workflows/coverage-windows.yml +++ b/.github/workflows/coverage-windows.yml @@ -49,7 +49,7 @@ jobs: with: persist-credentials: false - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 + uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0 with: python-version: ${{ env.PYTHON_VERSION }} - name: Install deps @@ -71,6 +71,6 @@ jobs: - name: Clean tmp run: npx rimraf ./coverage/tmp - name: Upload - uses: codecov/codecov-action@015f24e6818733317a2da2edd6290ab26238649a # v5.0.7 + uses: codecov/codecov-action@0565863a31f2c772f9f0395002a31e3f06189574 # v5.4.0 with: directory: ./coverage diff --git a/.github/workflows/create-release-proposal.yml b/.github/workflows/create-release-proposal.yml index 0b580eab81ac76..d3491a031ad8dd 100644 --- a/.github/workflows/create-release-proposal.yml +++ b/.github/workflows/create-release-proposal.yml @@ -40,7 +40,7 @@ jobs: # Install dependencies - name: Install Node.js - uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 + uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 with: node-version: ${{ env.NODE_VERSION }} diff --git a/.github/workflows/daily-wpt-fyi.yml b/.github/workflows/daily-wpt-fyi.yml index ebac102f63e115..795b85f6a18943 100644 --- a/.github/workflows/daily-wpt-fyi.yml +++ b/.github/workflows/daily-wpt-fyi.yml @@ -39,7 +39,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 + uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0 with: python-version: ${{ env.PYTHON_VERSION }} - name: Environment Information @@ -51,7 +51,7 @@ jobs: run: echo "NIGHTLY=$(curl -s https://nodejs.org/download/nightly/index.json | jq -r '[.[] | select(.files[] | contains("linux-x64"))][0].version')" >> $GITHUB_ENV - name: Install Node.js id: setup-node - uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 + uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 with: node-version: ${{ env.NIGHTLY || matrix.node-version }} check-latest: true @@ -127,7 +127,7 @@ jobs: run: cp wptreport.json wptreport-${{ steps.setup-node.outputs.node-version }}.json - name: Upload GitHub Actions artifact if: ${{ env.WPT_REPORT != '' }} - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 + uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1 with: path: out/wpt/wptreport-*.json name: WPT Report for ${{ steps.setup-node.outputs.node-version }} diff --git a/.github/workflows/daily.yml b/.github/workflows/daily.yml index e929e8168b0e66..8bb36fd6c6667c 100644 --- a/.github/workflows/daily.yml +++ b/.github/workflows/daily.yml @@ -19,7 +19,7 @@ jobs: with: persist-credentials: false - name: Use Node.js ${{ env.NODE_VERSION }} - uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 + uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 with: node-version: ${{ env.NODE_VERSION }} - name: Environment Information diff --git a/.github/workflows/doc.yml b/.github/workflows/doc.yml index c86d0c5822f82f..e1cc52017528c5 100644 --- a/.github/workflows/doc.yml +++ b/.github/workflows/doc.yml @@ -28,16 +28,16 @@ jobs: with: persist-credentials: false - name: Use Node.js ${{ env.NODE_VERSION }} - uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 + uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 with: node-version: ${{ env.NODE_VERSION }} - name: Environment Information run: npx envinfo - name: Build run: NODE=$(command -v node) make doc-only - - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 + - uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1 with: name: docs path: out/doc - name: Test - run: NODE=$(command -v node) make test-doc-ci TEST_CI_ARGS="-p actions --node-args='--test-reporter=./test/common/test-error-reporter.js' --node-args='--test-reporter-destination=stdout' --measure-flakiness 9" + run: NODE=$(command -v node) make test-doc-ci TEST_CI_ARGS="-p actions --measure-flakiness 9" diff --git a/.github/workflows/find-inactive-collaborators.yml b/.github/workflows/find-inactive-collaborators.yml index 30ae63ee115be8..7172e4581d30b7 100644 --- a/.github/workflows/find-inactive-collaborators.yml +++ b/.github/workflows/find-inactive-collaborators.yml @@ -25,7 +25,7 @@ jobs: persist-credentials: false - name: Use Node.js ${{ env.NODE_VERSION }} - uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 + uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 with: node-version: ${{ env.NODE_VERSION }} diff --git a/.github/workflows/find-inactive-tsc.yml b/.github/workflows/find-inactive-tsc.yml index 85c16ad0648fca..9007b1f5bf200f 100644 --- a/.github/workflows/find-inactive-tsc.yml +++ b/.github/workflows/find-inactive-tsc.yml @@ -34,7 +34,7 @@ jobs: repository: nodejs/TSC - name: Use Node.js ${{ env.NODE_VERSION }} - uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 + uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 with: node-version: ${{ env.NODE_VERSION }} diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml index 6adc799970cd84..c2165543bdaf0c 100644 --- a/.github/workflows/linters.yml +++ b/.github/workflows/linters.yml @@ -29,7 +29,7 @@ jobs: with: persist-credentials: false - name: Use Node.js ${{ env.NODE_VERSION }} - uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 + uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 with: node-version: ${{ env.NODE_VERSION }} - name: Environment Information @@ -44,7 +44,7 @@ jobs: with: persist-credentials: false - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 + uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0 with: python-version: ${{ env.PYTHON_VERSION }} - name: Environment Information @@ -60,11 +60,11 @@ jobs: fetch-depth: 0 persist-credentials: false - name: Use Node.js ${{ env.NODE_VERSION }} - uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 + uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 with: node-version: ${{ env.NODE_VERSION }} - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 + uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0 with: python-version: ${{ env.PYTHON_VERSION }} - name: Environment Information @@ -97,7 +97,7 @@ jobs: with: persist-credentials: false - name: Use Node.js ${{ env.NODE_VERSION }} - uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 + uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 with: node-version: ${{ env.NODE_VERSION }} - name: Environment Information @@ -122,7 +122,7 @@ jobs: with: persist-credentials: false - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 + uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0 with: python-version: ${{ env.PYTHON_VERSION }} - name: Environment Information @@ -139,7 +139,7 @@ jobs: with: persist-credentials: false - name: Use Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 + uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0 with: python-version: ${{ env.PYTHON_VERSION }} - name: Environment Information diff --git a/.github/workflows/major-release.yml b/.github/workflows/major-release.yml index a90be1798fac85..dfe49605429583 100644 --- a/.github/workflows/major-release.yml +++ b/.github/workflows/major-release.yml @@ -9,6 +9,7 @@ permissions: jobs: create-issue: + if: github.repository == 'nodejs/node' runs-on: ubuntu-latest permissions: issues: write diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 75c67cc238dbc3..bbf9b7ed6a9b2d 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -33,7 +33,7 @@ jobs: steps: - name: Harden Runner - uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0 with: egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs @@ -43,7 +43,7 @@ jobs: persist-credentials: false - name: Run analysis - uses: ossf/scorecard-action@62b2cac7ed8198b15735ed49ab1e5cf35480ba46 # v2.4.0 + uses: ossf/scorecard-action@f49aabe0b5af0936a0987cfb85d86b75731b0186 # v2.4.1 with: results_file: results.sarif results_format: sarif @@ -65,7 +65,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: Upload artifact - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 + uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1 with: name: SARIF file path: results.sarif @@ -73,6 +73,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: Upload to code-scanning - uses: github/codeql-action/upload-sarif@f09c1c0a94de965c15400f5634aa42fac8fb8f88 # v3.27.5 + uses: github/codeql-action/upload-sarif@b56ba49b26e50535fa1e7f7db0f4f7b4bf65d80d # v3.28.10 with: sarif_file: results.sarif diff --git a/.github/workflows/test-asan.yml b/.github/workflows/test-asan.yml deleted file mode 100644 index e579e9e2fd2275..00000000000000 --- a/.github/workflows/test-asan.yml +++ /dev/null @@ -1,66 +0,0 @@ -name: Test ASan - -on: - pull_request: - types: [opened, synchronize, reopened, ready_for_review] - paths-ignore: - - .mailmap - - '**.md' - - AUTHORS - - doc/** - - .github/** - - '!.github/workflows/test-asan.yml' - push: - branches: - - main - - canary - - v[0-9]+.x-staging - - v[0-9]+.x - paths-ignore: - - .mailmap - - '**.md' - - AUTHORS - - doc/** - - .github/** - - '!.github/workflows/test-asan.yml' - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} - cancel-in-progress: true - -env: - ASAN_OPTIONS: intercept_tls_get_addr=0 - PYTHON_VERSION: '3.12' - FLAKY_TESTS: keep_retrying - -permissions: - contents: read - -jobs: - test-asan: - if: false # Temporarily disabled. References: https://github.com/nodejs/node/pull/52374, https://github.com/nodejs/node/pull/53651#issuecomment-2198510810 - runs-on: ubuntu-20.04 - env: - CC: sccache clang - CXX: sccache clang++ - LINK: sccache clang++ - CONFIG_FLAGS: --enable-asan - SCCACHE_GHA_ENABLED: 'true' - steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - with: - persist-credentials: false - - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 - with: - python-version: ${{ env.PYTHON_VERSION }} - - name: Set up sccache - uses: mozilla-actions/sccache-action@9e326ebed976843c9932b3aa0e021c6f50310eb4 # v0.0.6 - with: - version: v0.8.1 - - name: Environment Information - run: npx envinfo - - name: Build - run: make build-ci -j4 V=1 - - name: Test - run: make run-ci -j4 V=1 TEST_CI_ARGS="-p actions --node-args='--test-reporter=./test/common/test-error-reporter.js' --node-args='--test-reporter-destination=stdout' -t 300 --measure-flakiness 9" diff --git a/.github/workflows/test-internet.yml b/.github/workflows/test-internet.yml index eced01cfbdaa0e..7c3060e4d58d39 100644 --- a/.github/workflows/test-internet.yml +++ b/.github/workflows/test-internet.yml @@ -48,7 +48,7 @@ jobs: with: persist-credentials: false - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 + uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0 with: python-version: ${{ env.PYTHON_VERSION }} - name: Environment Information diff --git a/.github/workflows/test-linux.yml b/.github/workflows/test-linux.yml index e899e12fdfdefe..d49ba7525c6400 100644 --- a/.github/workflows/test-linux.yml +++ b/.github/workflows/test-linux.yml @@ -35,26 +35,30 @@ permissions: jobs: test-linux: if: github.event.pull_request.draft == false - runs-on: ubuntu-24.04 + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-24.04, ubuntu-24.04-arm] steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: persist-credentials: false path: node - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 + uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0 with: python-version: ${{ env.PYTHON_VERSION }} - name: Set up sccache - uses: mozilla-actions/sccache-action@9e326ebed976843c9932b3aa0e021c6f50310eb4 # v0.0.6 + uses: Mozilla-Actions/sccache-action@65101d47ea8028ed0c98a1cdea8dd9182e9b5133 # v0.0.8 with: - version: v0.8.1 + version: v0.10.0 - name: Environment Information run: npx envinfo - name: Build run: make -C node build-ci -j4 V=1 CONFIG_FLAGS="--error-on-warn" - name: Test - run: make -C node run-ci -j4 V=1 TEST_CI_ARGS="-p actions --node-args='--test-reporter=./test/common/test-error-reporter.js' --node-args='--test-reporter-destination=stdout' --measure-flakiness 9" + run: make -C node run-ci -j4 V=1 TEST_CI_ARGS="-p actions --measure-flakiness 9" - name: Re-run test in a folder whose name contains unusual chars run: | mv node "$DIR" diff --git a/.github/workflows/test-macos.yml b/.github/workflows/test-macos.yml index 94d0d1585bfc87..6320b83454fa13 100644 --- a/.github/workflows/test-macos.yml +++ b/.github/workflows/test-macos.yml @@ -30,6 +30,7 @@ concurrency: env: PYTHON_VERSION: '3.12' + XCODE_VERSION: '16.1' FLAKY_TESTS: keep_retrying permissions: @@ -40,9 +41,7 @@ jobs: if: github.event.pull_request.draft == false strategy: fail-fast: false - matrix: - macos-version: [macos-13, macos-14] - runs-on: ${{ matrix.macos-version }} + runs-on: macos-14 env: CC: sccache gcc CXX: sccache g++ @@ -53,13 +52,15 @@ jobs: persist-credentials: false path: node - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 + uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0 with: python-version: ${{ env.PYTHON_VERSION }} + - name: Set up Xcode ${{ env.XCODE_VERSION }} + run: sudo xcode-select -s /Applications/Xcode_${{ env.XCODE_VERSION }}.app - name: Set up sccache - uses: mozilla-actions/sccache-action@9e326ebed976843c9932b3aa0e021c6f50310eb4 # v0.0.6 + uses: Mozilla-Actions/sccache-action@65101d47ea8028ed0c98a1cdea8dd9182e9b5133 # v0.0.8 with: - version: v0.8.1 + version: v0.10.0 - name: Environment Information run: npx envinfo # The `npm ci` for this step fails a lot as part of the Test step. Run it @@ -89,7 +90,7 @@ jobs: - name: Free Space After Build run: df -h - name: Test - run: make -C node run-ci -j$(getconf _NPROCESSORS_ONLN) V=1 TEST_CI_ARGS="-p actions --node-args='--test-reporter=./test/common/test-error-reporter.js' --node-args='--test-reporter-destination=stdout' --measure-flakiness 9" + run: make -C node run-ci -j$(getconf _NPROCESSORS_ONLN) V=1 TEST_CI_ARGS="-p actions --measure-flakiness 9" - name: Re-run test in a folder whose name contains unusual chars run: | mv node "$DIR" diff --git a/.github/workflows/test-ubsan.yml b/.github/workflows/test-ubsan.yml deleted file mode 100644 index 3587e9d3125666..00000000000000 --- a/.github/workflows/test-ubsan.yml +++ /dev/null @@ -1,67 +0,0 @@ -name: Test UBSan - -on: - pull_request: - types: [opened, synchronize, reopened, ready_for_review] - paths-ignore: - - .mailmap - - '**.md' - - AUTHORS - - doc/** - - .github/** - - '!.github/workflows/test-ubsan.yml' - push: - branches: - - main - - canary - - v[0-9]+.x-staging - - v[0-9]+.x - paths-ignore: - - .mailmap - - '**.md' - - AUTHORS - - doc/** - - .github/** - - '!.github/workflows/test-ubsan.yml' - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} - cancel-in-progress: true - -env: - PYTHON_VERSION: '3.12' - FLAKY_TESTS: keep_retrying - -permissions: - contents: read - -jobs: - test-ubsan: - if: false # Temporary disabled. Reference: https://github.com/nodejs/node/pull/52293#issuecomment-2059270585 - runs-on: ubuntu-latest - env: - CC: sccache gcc - CXX: sccache g++ - LINK: sccache g++ - CONFIG_FLAGS: --enable-ubsan - steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - with: - persist-credentials: false - - name: Store suppressions path - run: | - echo "UBSAN_OPTIONS=suppressions=$GITHUB_WORKSPACE/suppressions.supp" >> $GITHUB_ENV - - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 - with: - python-version: ${{ env.PYTHON_VERSION }} - - name: Set up sccache - uses: mozilla-actions/sccache-action@9e326ebed976843c9932b3aa0e021c6f50310eb4 # v0.0.6 - with: - version: v0.8.1 - - name: Environment Information - run: npx envinfo - - name: Build - run: make build-ci -j2 V=1 - - name: Test - run: make run-ci -j2 V=1 TEST_CI_ARGS="-p actions --node-args='--test-reporter=./test/common/test-error-reporter.js' --node-args='--test-reporter-destination=stdout' -t 300 --measure-flakiness 9" diff --git a/.github/workflows/tools.yml b/.github/workflows/tools.yml index b768638d9d9cbd..94e2412722b3b1 100644 --- a/.github/workflows/tools.yml +++ b/.github/workflows/tools.yml @@ -236,7 +236,7 @@ jobs: run: | node ./tools/dep_updaters/update-root-certs.mjs -v -f "$GITHUB_ENV" - id: simdjson - subsystem: deps + subsystem: deps, config label: dependencies run: | ./tools/dep_updaters/update-simdjson.sh > temp-output @@ -294,7 +294,7 @@ jobs: persist-credentials: false - name: Set up Python ${{ env.PYTHON_VERSION }} if: matrix.id == 'icu' && (github.event_name == 'schedule' || inputs.id == 'all' || inputs.id == matrix.id) - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 + uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0 with: python-version: ${{ env.PYTHON_VERSION }} - run: ${{ matrix.run }} @@ -305,7 +305,7 @@ jobs: if: env.COMMIT_MSG == '' && (github.event_name == 'schedule' || inputs.id == 'all' || inputs.id == matrix.id) run: | echo "COMMIT_MSG=${{ matrix.subsystem }}: update ${{ matrix.id }} to ${{ env.NEW_VERSION }}" >> "$GITHUB_ENV" - - uses: peter-evans/create-pull-request@5e914681df9dc83aa4e4905692ca88beb2f9e91f # v7.0.5 + - uses: peter-evans/create-pull-request@dd2324fc52d5d43c699a5636bcf19fceaa70c284 # v7.0.7 if: github.event_name == 'schedule' || inputs.id == 'all' || inputs.id == matrix.id # Creates a PR or update the Action's existing PR, or # no-op if the base branch is already up-to-date. diff --git a/.github/workflows/update-openssl.yml b/.github/workflows/update-openssl.yml index 856a486dcc6d62..f4f198104bfd23 100644 --- a/.github/workflows/update-openssl.yml +++ b/.github/workflows/update-openssl.yml @@ -35,7 +35,7 @@ jobs: author: Node.js GitHub Bot body: This is an automated update of OpenSSL to ${{ env.NEW_VERSION }}. branch: actions/tools-update-openssl # Custom branch *just* for this Action. - commit-message: 'deps: upgrade openssl sources to quictls/openssl-${{ env.NEW_VERSION }}' + commit-message: 'deps: upgrade openssl sources to openssl-${{ env.NEW_VERSION }}' labels: dependencies, openssl title: 'deps: update OpenSSL to ${{ env.NEW_VERSION }}' path: deps/openssl diff --git a/.github/workflows/update-v8.yml b/.github/workflows/update-v8.yml index f744ae6bb53d30..c45e2bf4f075dc 100644 --- a/.github/workflows/update-v8.yml +++ b/.github/workflows/update-v8.yml @@ -20,7 +20,7 @@ jobs: with: persist-credentials: false - name: Cache node modules and update-v8 - uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4.1.2 + uses: actions/cache@d4323d4df104b026a6aa633fdb11d772146be0bf # v4.2.2 id: cache-v8-npm env: cache-name: cache-v8-npm @@ -30,7 +30,7 @@ jobs: ~/.npm key: ${{ runner.os }}-build-${{ env.cache-name }} - name: Install Node.js - uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 + uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 with: node-version: ${{ env.NODE_VERSION }} - name: Install @node-core/utils @@ -45,7 +45,7 @@ jobs: cat temp-output tail -n1 temp-output | grep "NEW_VERSION=" >> "$GITHUB_ENV" || true rm temp-output - - uses: peter-evans/create-pull-request@5e914681df9dc83aa4e4905692ca88beb2f9e91f # v7.0.5 + - uses: peter-evans/create-pull-request@dd2324fc52d5d43c699a5636bcf19fceaa70c284 # v7.0.7 # Creates a PR or update the Action's existing PR, or # no-op if the base branch is already up-to-date. with: diff --git a/.github/workflows/update-wpt.yml b/.github/workflows/update-wpt.yml index 72ec030e9d645a..aca024c8963187 100644 --- a/.github/workflows/update-wpt.yml +++ b/.github/workflows/update-wpt.yml @@ -3,7 +3,7 @@ name: WPT update on: schedule: # Run once a week at 12:00 AM UTC on Sunday. - - cron: 0 0 * * * + - cron: 0 0 * * 0 workflow_dispatch: inputs: subsystems: @@ -32,7 +32,7 @@ jobs: persist-credentials: false - name: Install Node.js - uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 + uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 with: node-version: ${{ env.NODE_VERSION }} @@ -70,7 +70,11 @@ jobs: - name: Open or update PR for the subsystem update uses: gr2m/create-or-update-pull-request-action@77596e3166f328b24613f7082ab30bf2d93079d5 with: - branch: actions/update-wpt-${{ matrix.subsystem }} + # The create-or-update-pull-request-action matches the branch name by prefix, + # which is why we need to add the -wpt suffix. If we dont do that, we risk matching wrong PRs, + # like for example "url" mistakenly matching and updating the "urlpattern" PR + # as seen in https://github.com/nodejs/node/pull/57368 + branch: actions/update-${{ matrix.subsystem }}-wpt author: Node.js GitHub Bot title: 'test: update WPT for ${{ matrix.subsystem }} to ${{ env.short_version }}' commit-message: 'test: update WPT for ${{ matrix.subsystem }} to ${{ env.short_version }}' diff --git a/.mailmap b/.mailmap index c197dd83e271a0..a060a422d49cce 100644 --- a/.mailmap +++ b/.mailmap @@ -240,7 +240,8 @@ James Ide James M Snell James Nimlos James Sumners -Jan Krems +Jan Martin +Jan Martin Jem Bezooyen Jem Bezooyen Jenna Vuong diff --git a/BUILDING.md b/BUILDING.md index 5cf1dfb28e4866..4b890031c23fd6 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -31,6 +31,8 @@ file a new issue. * [Building a debug build](#building-a-debug-build) * [Building an ASan build](#building-an-asan-build) * [Speeding up frequent rebuilds when developing](#speeding-up-frequent-rebuilds-when-developing) + * [ccache](#ccache) + * [Loading JS files from disk instead of embedding](#loading-js-files-from-disk-instead-of-embedding) * [Troubleshooting Unix and macOS builds](#troubleshooting-unix-and-macos-builds) * [Windows](#windows) * [Windows Prerequisites](#windows-prerequisites) @@ -38,6 +40,7 @@ file a new issue. * [Option 2: Automated install with WinGet](#option-2-automated-install-with-winget) * [Option 3: Automated install with Boxstarter](#option-3-automated-install-with-boxstarter) * [Building Node.js](#building-nodejs-2) + * [Using ccache](#using-ccache) * [Android](#android) * [`Intl` (ECMA-402) support](#intl-ecma-402-support) * [Build with full ICU support (all locales supported by ICU)](#build-with-full-icu-support-all-locales-supported-by-icu) @@ -170,7 +173,7 @@ Binaries at are produced on: | ----------------------- | ----------------------------------------------------------------------------------------------------------- | | aix-ppc64 | AIX 7.2 TL04 on PPC64BE with GCC 10 | | darwin-x64 | macOS 13, Xcode 16 with -mmacosx-version-min=11.0 | -| darwin-arm64 (and .pkg) | macOS 13 (arm64), Xcode 14 with -mmacosx-version-min=11.0 | +| darwin-arm64 (and .pkg) | macOS 13 (arm64), Xcode 16 with -mmacosx-version-min=11.0 | | linux-arm64 | RHEL 8 with GCC 10[^6] | | linux-armv7l | Cross-compiled on RHEL 8 x64 with [custom GCC toolchain](https://github.com/rvagg/rpi-newer-crosstools)[^7] | | linux-ppc64le | RHEL 8 with gcc-toolset-10[^6] | @@ -543,6 +546,8 @@ make test-only #### Speeding up frequent rebuilds when developing +##### ccache + Tips: The `ccache` utility is widely used and should generally work fine. If you encounter any difficulties, consider disabling `mold` as a troubleshooting step. @@ -576,8 +581,7 @@ export CC="ccache cc" # add to ~/.zshrc or other shell config file export CXX="ccache c++" # add to ~/.zshrc or other shell config file ``` -This will allow for near-instantaneous rebuilds when switching branches back -and forth that were built with cache. +##### Loading JS files from disk instead of embedding When modifying only the JS layer in `lib`, it is possible to externally load it without modifying the executable: @@ -663,14 +667,19 @@ Optional requirements for compiling for Windows on ARM (ARM64): * Visual C++ ATL for ARM64 * Windows 10 SDK 10.0.17763.0 or newer -Optional requirements for compiling with ClangCL: +Optional requirements for compiling with ClangCL (search for `clang` in Visual Studio +Installer's "individual component" tab): -* Visual Studio optional components +* Visual Studio individual components * C++ Clang Compiler for Windows * MSBuild support for LLVM toolset NOTE: Currently we only support compiling with Clang that comes from Visual Studio. +When building with ClangCL, if the output from `vcbuild.bat` shows that the components are not installed +even when the Visual Studio Installer shows that they are installed, try removing the components +first and then reinstalling them again. + ##### Option 2: Automated install with WinGet [WinGet configuration files](https://github.com/nodejs/node/tree/main/.configurations) @@ -687,7 +696,7 @@ easily. These files will install the following To install Node.js prerequisites from Powershell Terminal: ```powershell -winget configure .\configurations\configuration.dsc.yaml +winget configure .\.configurations\configuration.dsc.yaml ``` Alternatively, you can use [Dev Home](https://learn.microsoft.com/en-us/windows/dev-home/) @@ -769,6 +778,42 @@ To test if Node.js was built correctly: Release\node -e "console.log('Hello from Node.js', process.version)" ``` +##### Using ccache: + +Follow , and you +should notice that obj file will be bigger than the normal one. + +First, install ccache. Assuming the installation of ccache is in `c:\ccache` +(where you can find `ccache.exe`), copy `c:\ccache\ccache.exe` to `c:\ccache\cl.exe` +with this command. + +```powershell +cp c:\ccache\ccache.exe c:\ccache\cl.exe +``` + +With newer version of Visual Studio, it may need the copy to be `clang-cl.exe` +instead. If the output of `vcbuild.bat` suggestion missing `clang-cl.exe`, copy +it differently: + +```powershell +cp c:\ccache\ccache.exe c:\ccache\clang-cl.exe +``` + +When building Node.js, provide a path to your ccache via the option: + +```powershell +.\vcbuild.bat ccache c:\ccache\ +``` + +This will allow for near-instantaneous rebuilds when switching branches back +and forth that were built with cache. + +To use it with ClangCL, run this instead: + +```powershell +.\vcbuild.bat clang-cl ccache c:\ccache\ +``` + ### Android Android is not a supported platform. Patches to improve the Android build are diff --git a/CHANGELOG.md b/CHANGELOG.md index c707f0fefc6d64..3fcec1d080eb68 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,7 +38,8 @@ release. -22.14.0
+22.15.0
+22.14.0
22.13.1
22.13.0
22.12.0
diff --git a/GOVERNANCE.md b/GOVERNANCE.md index f898396952a7d2..cf5bc188ad3055 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -144,10 +144,71 @@ Contributions can be: * Participation in other projects, teams, and working groups of the Node.js organization. +Collaborators should be people volunteering to do unglamorous work because it's +the right thing to do, they find the work itself satisfying, and they care about +Node.js and its users. People should get collaborator status because they're +doing work and are likely to continue doing work where having the abilities that +come with collaborator status are helpful (abilities like starting CI jobs, +reviewing and approving PRs, etc.). That will usually--but, very importantly, not +always--be work involving committing to the `nodejs/node` repository. For an example +of an exception, someone working primarily on the website might benefit from being +able to start Jenkins CI jobs to test changes to documentation tooling. That, +along with signals indicating commitment to Node.js, personal integrity, etc., +should be enough for a successful nomination. + +It is important to understand that potential collaborators may have vastly +different areas and levels of expertise, interest, and skill. The Node.js +project is large and complex, and it is not expected that every collaborator +will have the same level of expertise in every area of the project. The +complexity or "sophistication" of an individual’s contributions, or even their +relative engineering "skill" level, are not primary factors in determining +whether they should be a collaborator. The primary factors do include the quality +of their contributions (do the contributions make sense, do they add value, do +they follow documented guidelines, are they authentic and well-intentioned, +etc.), their commitment to the project, can their judgement be trusted, and do +they have the ability to work well with others. + +#### The Authenticity of Contributors + +The Node.js project does not require that contributors use their legal names or +provide any personal information verifying their identity. + +It is not uncommon for malicious actors to attempt to gain commit access to +open-source projects in order to inject malicious code or for other nefarious +purposes. The Node.js project has a number of mechanisms in place to prevent +this, but it is important to be vigilant. If you have concerns about the +authenticity of a contributor, please raise them with the TSC. Anyone nominating +a new collaborator should take reasonable steps to verify that the contributions +of the nominee are authentic and made in good faith. This is not always easy, +but it is important. + ### Nominating a new Collaborator -To nominate a new Collaborator, open an issue in the [nodejs/node][] repository. -Provide a summary of the nominee's contributions. For example: +To nominate a new Collaborator: + +1. **Optional but strongly recommended**: open a + [discussion in the nodejs/collaborators][] repository. Provide a summary of + the nominee's contributions (see below for an example). +2. **Optional but strongly recommended**: After sufficient wait time (e.g. 72 + hours), if the nomination proposal has received some support and no explicit + block, and any questions/concerns have been addressed, add a comment in the + private discussion stating you're planning on opening a public issue, e.g. + "I see a number of approvals and no block, I'll be opening a public + nomination issue if I don't hear any objections in the next 72 hours". +3. **Optional but strongly recommended**: Privately contact the nominee to make + sure they're comfortable with the nomination. +4. Open an issue in the [nodejs/node][] repository. Provide a summary of + the nominee's contributions (see below for an example). Mention + @nodejs/collaborators in the issue to notify other collaborators about + the nomination. + +The _Optional but strongly recommended_ steps are optional in the sense that +skipping them would not invalidate the nomination, but it could put the nominee +in a very awkward situation if a nomination they didn't ask for pops out of +nowhere only to be rejected. Do not skip those steps unless you're absolutely +certain the nominee is fine with the public scrutiny. + +Example of list of contributions: * Commits in the [nodejs/node][] repository. * Use the link `https://github.com/nodejs/node/commits?author=GITHUB_ID` @@ -166,22 +227,65 @@ Provide a summary of the nominee's contributions. For example: organization * Other participation in the wider Node.js community -Mention @nodejs/collaborators in the issue to notify other collaborators about -the nomination. - -The nomination passes if no collaborators oppose it after one week. In the case -of an objection, the TSC is responsible for working with the individuals -involved and finding a resolution. - -There are steps a nominator can take in advance to make a nomination as -frictionless as possible. To request feedback from other collaborators in -private, use the [collaborators discussion page][] -(which only collaborators may view). A nominator may also work with the -nominee to improve their contribution profile. - -Collaborators might overlook someone with valuable contributions. In that case, -the contributor may open an issue or contact a collaborator to request a -nomination. +The nomination passes if no collaborators oppose it (as described in the +following section) after one week. In the case of an objection, the TSC is +responsible for working with the individuals involved and finding a resolution. +The TSC may, following typical TSC consensus seeking processes, choose to +advance a nomination that has otherwise failed to reach a natural consensus or +clear path forward even if there are outstanding objections. The TSC may also +choose to prevent a nomination from advancing if the TSC determines that any +objections have not been adequately addressed. + +#### How to review a collaborator nomination + +A collaborator nomination can be reviewed in the same way one would review a PR +adding a feature: + +* If you see the nomination as something positive to the project, say so! +* If you are neutral, or feel you don't know enough to have an informed opinion, + it's certainly OK to not interact with the nomination. +* If you think the nomination was made too soon, or can be detrimental to the + project, share your concerns. See the section "How to oppose a collaborator + nomination" below. + +Our goal is to keep gate-keeping at a minimal, but it cannot be zero since being +a collaborator requires trust (collaborators can start CI jobs, use their veto, +push commits, etc.), so what's the minimal amount is subjective, and there will +be cases where collaborators disagree on whether a nomination should move +forward. + +Refrain from discussing or debating aspects of the nomination process +itself directly within a nomination private discussion or public issue. +Such discussions can derail and frustrate the nomination causing unnecessary +friction. Move such discussions to a separate issue or discussion thread. + +##### How to oppose a collaborator nomination + +An important rule of thumb is that the nomination process is intended to be +biased strongly towards implicit approval of the nomination. This means +discussion and review around the proposal should be more geared towards "I have +reasons to say no..." as opposed to "Give me reasons to say yes...". + +Given that there is no "Request for changes" feature in discussions and issues, +try to be explicit when your comment is expressing a blocking concern. +Similarly, once the blocking concern has been addressed, explicitly say so. + +Explicit opposition would typically be signaled as some form of clear +and unambiguous comment like, "I don't believe this nomination should pass". +Asking clarifying questions or expressing general concerns is not the same as +explicit opposition; however, a best effort should be made to answer such +questions or addressing those concerns before advancing the nomination. + +Opposition does not need to be public. Ideally, the comment showing opposition, +and any discussion thereof, should be done in the private discussion _before_ +the public issue is opened. Opposition _should_ be paired with clear suggestions +for positive, concrete, and unambiguous next steps that the nominee can take to +overcome the objection and allow it to move forward. While such suggestions are +technically optional, they are _strongly encouraged_ to prevent the nomination +from stalling indefinitely or objections from being overridden by the TSC. + +Remember that all private discussions about a nomination will be visible to +the nominee once they are onboarded. ### Onboarding @@ -196,6 +300,6 @@ The TSC follows a [Consensus Seeking][] decision-making model per the [Consensus Seeking]: https://en.wikipedia.org/wiki/Consensus-seeking_decision-making [TSC Charter]: https://github.com/nodejs/TSC/blob/HEAD/TSC-Charter.md -[collaborators discussion page]: https://github.com/nodejs/collaborators/discussions/categories/collaborator-nominations +[discussion in the nodejs/collaborators]: https://github.com/nodejs/collaborators/discussions/categories/collaborator-nominations [nodejs/help]: https://github.com/nodejs/help [nodejs/node]: https://github.com/nodejs/node diff --git a/LICENSE b/LICENSE index 41585ea6c97d5a..966aeac83d37bb 100644 --- a/LICENSE +++ b/LICENSE @@ -106,16 +106,16 @@ The externally maintained libraries used by Node.js are: - cjs-module-lexer, located at deps/cjs-module-lexer, is licensed as follows: """ - MIT License - ----------- - - Copyright (C) 2018-2020 Guy Bedford - - 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. + MIT License + ----------- + + Copyright (C) 2018-2020 Guy Bedford + + 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. """ - ittapi, located at deps/v8/third_party/ittapi, is licensed as follows: @@ -366,7 +366,7 @@ The externally maintained libraries used by Node.js are: COPYRIGHT AND PERMISSION NOTICE - Copyright © 2016-2024 Unicode, Inc. + Copyright © 2016-2025 Unicode, Inc. NOTICE TO USER: Carefully read the following legal agreement. BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING DATA FILES, AND/OR @@ -1759,7 +1759,7 @@ The externally maintained libraries used by Node.js are: same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright 2018-2023 The simdjson authors + Copyright 2018-2025 The simdjson authors Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -2384,6 +2384,40 @@ The externally maintained libraries used by Node.js are: THE SOFTWARE. """ +- zstd, located at deps/zstd, is licensed as follows: + """ + BSD License + + For Zstandard software + + Copyright (c) Meta Platforms, Inc. and affiliates. All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither the name Facebook, nor Meta, nor the names of its contributors may + be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + """ + - HdrHistogram, located at deps/histogram, is licensed as follows: """ The code in this repository code was Written by Gil Tene, Michael Barker, diff --git a/Makefile b/Makefile index 7b7a6746d338d1..20f8b0bf292b18 100644 --- a/Makefile +++ b/Makefile @@ -1406,6 +1406,7 @@ lint-md: lint-js-doc | tools/.mdlintstamp ## Lint the markdown documents maintai run-format-md = tools/lint-md/lint-md.mjs --format $(LINT_MD_FILES) .PHONY: format-md format-md: tools/lint-md/node_modules/remark-parse/package.json ## Format the markdown documents maintained by us in the codebase. + $(info Formatting Markdown...) @$(call available-node,$(run-format-md)) @@ -1474,6 +1475,8 @@ LINT_CPP_FILES = $(filter-out $(LINT_CPP_EXCLUDE), $(wildcard \ src/*/*.h \ test/addons/*/*.cc \ test/addons/*/*.h \ + test/cctest/*/*.cc \ + test/cctest/*/*.h \ test/cctest/*.cc \ test/cctest/*.h \ test/embedding/*.cc \ diff --git a/README.md b/README.md index c66bc8a36231e0..b1f56cd062e911 100644 --- a/README.md +++ b/README.md @@ -182,6 +182,8 @@ For information about the governance of the Node.js project, see **Michael Dawson** <> (he/him) * [RafaelGSS](https://github.com/RafaelGSS) - **Rafael Gonzaga** <> (he/him) +* [RaisinTen](https://github.com/RaisinTen) - + **Darshan Sen** <> (he/him) * [richardlau](https://github.com/richardlau) - **Richard Lau** <> * [ronag](https://github.com/ronag) - @@ -260,8 +262,6 @@ For information about the governance of the Node.js project, see **Alexis Campailla** <> * [piscisaureus](https://github.com/piscisaureus) - **Bert Belder** <> -* [RaisinTen](https://github.com/RaisinTen) - - **Darshan Sen** <> (he/him) * [rvagg](https://github.com/rvagg) - **Rod Vagg** <> * [sam-github](https://github.com/sam-github) - @@ -335,6 +335,8 @@ For information about the governance of the Node.js project, see **Gerhard Stöbich** <> (he/they) * [gabrielschulhof](https://github.com/gabrielschulhof) - **Gabriel Schulhof** <> +* [geeksilva97](https://github.com/geeksilva97) - + **Edy Silva** <> (he/him) * [gengjiawen](https://github.com/gengjiawen) - **Jiawen Geng** <> * [GeoffreyBooth](https://github.com/GeoffreyBooth) - @@ -358,7 +360,7 @@ For information about the governance of the Node.js project, see * [jazelly](https://github.com/jazelly) - **Jason Zhang** <> (he/him) * [jkrems](https://github.com/jkrems) - - **Jan Krems** <> (he/him) + **Jan Martin** <> (he/him) * [joyeecheung](https://github.com/joyeecheung) - **Joyee Cheung** <> (she/her) * [juanarbol](https://github.com/juanarbol) - @@ -367,8 +369,6 @@ For information about the governance of the Node.js project, see **Minwoo Jung** <> (he/him) * [KhafraDev](https://github.com/KhafraDev) - **Matthew Aitken** <> (he/him) -* [kvakil](https://github.com/kvakil) - - **Keyhan Vakil** <> * [legendecas](https://github.com/legendecas) - **Chengzhong Wu** <> (he/him) * [lemire](https://github.com/lemire) - @@ -403,8 +403,6 @@ For information about the governance of the Node.js project, see **Moshe Atlow** <> (he/him) * [MrJithil](https://github.com/MrJithil) - **Jithil P Ponnan** <> (he/him) -* [ovflowd](https://github.com/ovflowd) - - **Claudio Wunder** <> (he/they) * [panva](https://github.com/panva) - **Filip Skokan** <> (he/him) * [pimterry](https://github.com/pimterry) - @@ -415,6 +413,8 @@ For information about the governance of the Node.js project, see **Stephen Belanger** <> (he/him) * [RafaelGSS](https://github.com/RafaelGSS) - **Rafael Gonzaga** <> (he/him) +* [RaisinTen](https://github.com/RaisinTen) - + **Darshan Sen** <> (he/him) - [Support me](https://github.com/sponsors/RaisinTen) * [richardlau](https://github.com/richardlau) - **Richard Lau** <> * [rluvaton](https://github.com/rluvaton) - @@ -579,6 +579,8 @@ For information about the governance of the Node.js project, see **Kunal Pathak** <> * [kuriyosh](https://github.com/kuriyosh) - **Yoshiki Kurihara** <> (he/him) +* [kvakil](https://github.com/kvakil) - + **Keyhan Vakil** <> * [lance](https://github.com/lance) - **Lance Ball** <> (he/him) * [Leko](https://github.com/Leko) - @@ -625,6 +627,8 @@ For information about the governance of the Node.js project, see **Alexis Campailla** <> * [othiym23](https://github.com/othiym23) - **Forrest L Norvell** <> (they/them/themself) +* [ovflowd](https://github.com/ovflowd) - + **Claudio Wunder** <> (he/they) * [oyyd](https://github.com/oyyd) - **Ouyang Yadong** <> (he/him) * [petkaantonov](https://github.com/petkaantonov) - @@ -643,8 +647,6 @@ For information about the governance of the Node.js project, see **Peter Marshall** <> (he/him) * [puzpuzpuz](https://github.com/puzpuzpuz) - **Andrey Pechkurov** <> (he/him) -* [RaisinTen](https://github.com/RaisinTen) - - **Darshan Sen** <> (he/him) * [refack](https://github.com/refack) - **Refael Ackermann (רפאל פלחי)** <> (he/him/הוא/אתה) * [rexagod](https://github.com/rexagod) - @@ -731,10 +733,14 @@ maintaining the Node.js project. ### Triagers +* [1ilsang](https://github.com/1ilsang) - + **Sangchul Lee** <<1ilsang.dev@gmail.com>> (he/him) * [atlowChemi](https://github.com/atlowChemi) - **Chemi Atlow** <> (he/him) * [Ayase-252](https://github.com/Ayase-252) - **Qingyu Deng** <> +* [bjohansebas](https://github.com/bjohansebas) - + **Sebastian Beltran** <> * [bmuenzenmeyer](https://github.com/bmuenzenmeyer) - **Brian Muenzenmeyer** <> (he/him) * [CanadaHonk](https://github.com/CanadaHonk) - @@ -745,20 +751,20 @@ maintaining the Node.js project. **Feng Yu** <> (he/him) * [gireeshpunathil](https://github.com/gireeshpunathil) - **Gireesh Punathil** <> (he/him) +* [gurgunday](https://github.com/gurgunday) - + **Gürgün Dayıoğlu** <> * [iam-frankqiu](https://github.com/iam-frankqiu) - **Frank Qiu** <> (he/him) * [KevinEady](https://github.com/KevinEady) - **Kevin Eady** <> (he/him) -* [kvakil](https://github.com/kvakil) - - **Keyhan Vakil** <> * [marsonya](https://github.com/marsonya) - **Akhil Marsonya** <> (he/him) * [meixg](https://github.com/meixg) - **Xuguang Mei** <> (he/him) -* [mertcanaltin](https://github.com/mertcanaltin) - - **Mert Can Altin** <> * [preveen-stack](https://github.com/preveen-stack) - **Preveen Padmanabhan** <> (he/him) +* [RaisinTen](https://github.com/RaisinTen) - + **Darshan Sen** <> (he/him) * [VoltrexKeyva](https://github.com/VoltrexKeyva) - **Mohammed Keyvanzadeh** <> (he/him) diff --git a/SECURITY.md b/SECURITY.md index b8f54307d5ed5b..b932e83b29b899 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -55,6 +55,39 @@ Here is the security disclosure policy for Node.js possible; however, we must follow the release process above to ensure that we handle disclosure consistently. +## Code of Conduct and Vulnerability Reporting Guidelines + +When reporting security vulnerabilities, reporters must adhere to the following guidelines: + +1. **Code of Conduct Compliance**: All security reports must comply with our + [Code of Conduct](CODE_OF_CONDUCT.md). Reports that violate our code of conduct + will not be considered and may result in being banned from future participation. + +2. **No Harmful Actions**: Security research and vulnerability reporting must not: + * Cause damage to running systems or production environments. + * Disrupt Node.js development or infrastructure. + * Affect other users' applications or systems. + * Include actual exploits that could harm users. + * Involve social engineering or phishing attempts. + +3. **Responsible Testing**: When testing potential vulnerabilities: + * Use isolated, controlled environments. + * Do not test on production systems. + * Do not attempt to access or modify other users' data. + * Immediately stop testing if unauthorized access is gained accidentally. + +4. **Report Quality** + * Provide clear, detailed steps to reproduce the vulnerability. + * Include only the minimum proof of concept required to demonstrate the issue. + * Remove any malicious payloads or components that could cause harm. + +Failure to follow these guidelines may result in: + +* Rejection of the vulnerability report. +* Forfeiture of any potential bug bounty. +* Temporary or permanent ban from the bug bounty program. +* Legal action in cases of malicious intent. + ## The Node.js threat model In the Node.js threat model, there are trusted elements such as the @@ -106,6 +139,9 @@ a security vulnerability. Examples of unwanted actions are polluting globals, causing an unrecoverable crash, or any other unexpected side effects that can lead to a loss of confidentiality, integrity, or availability. +For example, if trusted input (like secure application code) is correct, +then untrusted input must not lead to arbitrary JavaScript code execution. + **Node.js trusts everything else**. Examples include: * The developers and infrastructure that runs it. diff --git a/benchmark/assert/assertion-error.js b/benchmark/assert/assertion-error.js new file mode 100644 index 00000000000000..51fb52ae1a4286 --- /dev/null +++ b/benchmark/assert/assertion-error.js @@ -0,0 +1,37 @@ +'use strict'; +const common = require('../common.js'); +const assert = require('assert'); + +const bench = common.createBenchmark(main, { + n: [200], + size: [2, 75], +}); + +const baseObject = { + a: 1, + b: { + c: 2, + d: [3, 4, 5], + e: 'fghi', + j: { + k: 6, + }, + }, +}; + +function createObjects(size) { + return Array.from({ length: size }, () => baseObject); +} + +function main({ n, size }) { + bench.start(); + for (let i = 0; i < n; ++i) { + new assert.AssertionError({ + actual: {}, + expected: createObjects(size), + operator: 'partialDeepStrictEqual', + stackStartFunction: () => {}, + }); + } + bench.end(n); +} diff --git a/benchmark/assert/deepequal-buffer.js b/benchmark/assert/deepequal-buffer.js index 1b6aa3bee1d6ac..50bcd3047b146a 100644 --- a/benchmark/assert/deepequal-buffer.js +++ b/benchmark/assert/deepequal-buffer.js @@ -7,7 +7,7 @@ const bench = common.createBenchmark(main, { len: [1e2, 1e3], strict: [0, 1], arrayBuffer: [0, 1], - method: ['deepEqual', 'notDeepEqual', 'unequal_length'], + method: ['deepEqual', 'notDeepEqual', 'unequal_length', 'partial'], }, { combinationFilter: (p) => { return p.strict === 1 || p.method === 'deepEqual'; @@ -18,11 +18,16 @@ function main({ len, n, method, strict, arrayBuffer }) { let actual = Buffer.alloc(len); let expected = Buffer.alloc(len + Number(method === 'unequal_length')); - if (method === 'unequal_length') { method = 'notDeepEqual'; } + if (method === 'partial') { + method = 'partialDeepStrictEqual'; + } else if (strict) { + method = method.replace('eep', 'eepStrict'); + } + for (let i = 0; i < len; i++) { actual.writeInt8(i % 128, i); expected.writeInt8(i % 128, i); @@ -33,10 +38,6 @@ function main({ len, n, method, strict, arrayBuffer }) { expected[position] = expected[position] + 1; } - if (strict) { - method = method.replace('eep', 'eepStrict'); - } - const fn = assert[method]; if (arrayBuffer) { diff --git a/benchmark/assert/deepequal-map.js b/benchmark/assert/deepequal-map.js index fb3f7cd316028f..4f651551c58c82 100644 --- a/benchmark/assert/deepequal-map.js +++ b/benchmark/assert/deepequal-map.js @@ -5,7 +5,7 @@ const { deepEqual, deepStrictEqual, notDeepEqual, notDeepStrictEqual } = require('assert'); const bench = common.createBenchmark(main, { - n: [5e3], + n: [2e3], len: [5e2], strict: [0, 1], method: [ diff --git a/benchmark/assert/deepequal-object.js b/benchmark/assert/deepequal-object.js index c480faf10cbae8..e1d1baf838d9c6 100644 --- a/benchmark/assert/deepequal-object.js +++ b/benchmark/assert/deepequal-object.js @@ -4,12 +4,12 @@ const common = require('../common.js'); const assert = require('assert'); const bench = common.createBenchmark(main, { - n: [25, 2e2], + n: [50, 2e2], size: [1e2, 1e4], method: ['deepEqual', 'notDeepEqual', 'deepStrictEqual', 'notDeepStrictEqual'], }, { combinationFilter: (p) => { - return p.size === 1e4 && p.n === 25 || + return p.size === 1e4 && p.n === 50 || p.size === 1e3 && p.n === 2e2 || p.size === 1e2 && p.n === 2e3 || p.size === 1; diff --git a/benchmark/assert/deepequal-set.js b/benchmark/assert/deepequal-set.js index 27ca7c92bce1b0..e771c81928a897 100644 --- a/benchmark/assert/deepequal-set.js +++ b/benchmark/assert/deepequal-set.js @@ -5,7 +5,7 @@ const { deepEqual, deepStrictEqual, notDeepEqual, notDeepStrictEqual } = require('assert'); const bench = common.createBenchmark(main, { - n: [5e2], + n: [1e3], len: [5e2], strict: [0, 1], method: [ diff --git a/benchmark/assert/deepequal-simple-array-and-set.js b/benchmark/assert/deepequal-simple-array-and-set.js index a1f6820696d7b8..08bbc87a1c5b1c 100644 --- a/benchmark/assert/deepequal-simple-array-and-set.js +++ b/benchmark/assert/deepequal-simple-array-and-set.js @@ -5,7 +5,7 @@ const { deepEqual, deepStrictEqual, notDeepEqual, notDeepStrictEqual } = require('assert'); const bench = common.createBenchmark(main, { - n: [5e2], + n: [1e3], len: [1e4], strict: [1], method: [ diff --git a/benchmark/assert/deepequal-typedarrays.js b/benchmark/assert/deepequal-typedarrays.js index 86826d6588ef86..5684cd520d258b 100644 --- a/benchmark/assert/deepequal-typedarrays.js +++ b/benchmark/assert/deepequal-typedarrays.js @@ -16,6 +16,12 @@ const bench = common.createBenchmark(main, { 'notDeepEqual', ], len: [1e2, 5e3], +}, { + combinationFilter(p) { + return p.strict === 1 || + p.type !== 'Float32Array' || + p.len === 1e2; + }, }); function main({ type, n, len, method, strict }) { diff --git a/benchmark/assert/match.js b/benchmark/assert/match.js index fab86a23944c59..5ad9292c4b012b 100644 --- a/benchmark/assert/match.js +++ b/benchmark/assert/match.js @@ -4,8 +4,15 @@ const common = require('../common.js'); const assert = require('assert'); const bench = common.createBenchmark(main, { - n: [25, 2e7], + n: [2e7], method: ['match', 'doesNotMatch'], +}, { + combinationFilter(p) { + // These benchmarks purposefully do not run by default. They do not provide + // might insight, due to only being a small wrapper around a native regexp + // call. + return p.n === 1; + }, }); function main({ n, method }) { diff --git a/benchmark/assert/partial-deep-equal.js b/benchmark/assert/partial-deep-equal.js new file mode 100644 index 00000000000000..cdda4006874d20 --- /dev/null +++ b/benchmark/assert/partial-deep-equal.js @@ -0,0 +1,170 @@ +'use strict'; + +const common = require('../common.js'); +const assert = require('assert'); + +const bench = common.createBenchmark(main, { + n: [125], + size: [500], + extraProps: [0, 1], + datasetName: [ + 'objects', + 'sets', + 'setsWithObjects', + 'maps', + 'circularRefs', + 'typedArrays', + 'arrayBuffers', + 'dataViewArrayBuffers', + 'array', + ], +}); + +function createArray(length, extraProps) { + if (extraProps) { + return Array.from({ length: length * 4 }, (_, i) => i); + } + return Array.from({ length }, (_, i) => i * 4); +} + +function createObjects(length, extraProps, depth = 0) { + return Array.from({ length }, (_, i) => ({ + foo: 'yarp', + nope: { + bar: '123', + ...(extraProps ? { a: [1, 2, i] } : {}), + c: {}, + b: !depth ? createObjects(2, extraProps, depth + 1) : [], + }, + })); +} + +function createSetsWithObjects(length, extraProps, depth = 0) { + return Array.from({ length }, (_, i) => new Set([ + ...(extraProps ? [{}] : []), + { + simple: 'object', + number: i, + }, + ['array', 'with', 'values'], + new Set([[], {}, { nested: i }]), + ])); +} + +function createSets(length, extraProps, depth = 0) { + return Array.from({ length }, (_, i) => new Set([ + 'yarp', + ...(extraProps ? ['123', 1, 2] : []), + i + 3, + null, + { + simple: 'object', + number: i, + }, + ['array', 'with', 'values'], + !depth ? new Set([1, 2, { nested: i }]) : new Set(), + !depth ? createSets(2, extraProps, depth + 1) : null, + ])); +} + +function createMaps(length, extraProps, depth = 0) { + return Array.from({ length }, (_, i) => new Map([ + ...(extraProps ? [['primitiveKey', 'primitiveValue']] : []), + [42, 'numberKey'], + ['objectValue', { a: 1, b: i }], + ['arrayValue', [1, 2, i]], + ['nestedMap', new Map([['a', i], ['b', { deep: true }]])], + [{ objectKey: true }, 'value from object key'], + [[1, i, 3], 'value from array key'], + [!depth ? createMaps(2, extraProps, depth + 1) : null, 'recursive value' + i], + ])); +} + +function createCircularRefs(length, extraProps) { + return Array.from({ length }, (_, i) => { + const circularSet = new Set(); + const circularMap = new Map(); + const circularObj = { name: 'circular object' }; + + circularSet.add('some value' + i); + circularSet.add(circularSet); + + circularMap.set('self', circularMap); + circularMap.set('value', 'regular value'); + + circularObj.self = circularObj; + + const objA = { name: 'A' }; + const objB = { name: 'B' }; + objA.ref = objB; + objB.ref = objA; + + circularSet.add(objA); + circularMap.set('objB', objB); + + return { + circularSet, + circularMap, + ...extraProps ? { extra: i } : {}, + circularObj, + objA, + objB, + }; + }); +} + +function createTypedArrays(length, extraParts) { + const extra = extraParts ? [9, 8, 7] : []; + return Array.from({ length }, (_, i) => { + return { + uint8: new Uint8Array(new ArrayBuffer(32), 4, 4), + int16: new Int16Array([1, 2, ...extra, 3]), + uint32: new Uint32Array([i + 1, i + 2, ...extra, i + 3]), + float64: new Float64Array([1.1, 2.2, ...extra, i + 3.3]), + bigUint64: new BigUint64Array([1n, 2n, 3n]), + }; + }); +} + +function createArrayBuffers(length, extra) { + return Array.from({ length }, (_, n) => { + const buffer = Buffer.alloc(n + (extra ? 1 : 0)); + for (let i = 0; i < n; i++) { + buffer.writeInt8(i % 128, i); + } + return buffer.buffer; + }); +} + +function createDataViewArrayBuffers(length, extra) { + return createArrayBuffers(length, extra).map((buffer) => new DataView(buffer)); +} + +const datasetMappings = { + objects: createObjects, + sets: createSets, + setsWithObjects: createSetsWithObjects, + maps: createMaps, + circularRefs: createCircularRefs, + typedArrays: createTypedArrays, + arrayBuffers: createArrayBuffers, + dataViewArrayBuffers: createDataViewArrayBuffers, + array: createArray, +}; + +function getDatasets(datasetName, size, extra) { + return { + actual: datasetMappings[datasetName](size, true), + expected: datasetMappings[datasetName](size, !extra), + }; +} + +function main({ size, n, datasetName, extraProps }) { + const { actual, expected } = getDatasets(datasetName, size, extraProps); + + bench.start(); + for (let i = 0; i < n; ++i) { + assert.partialDeepStrictEqual(actual, expected); + } + bench.end(n); +} diff --git a/benchmark/assert/rejects.js b/benchmark/assert/rejects.js index 43ec500177a625..d8a6d6f4bb8058 100644 --- a/benchmark/assert/rejects.js +++ b/benchmark/assert/rejects.js @@ -4,8 +4,15 @@ const common = require('../common.js'); const assert = require('assert'); const bench = common.createBenchmark(main, { - n: [25, 2e5], + n: [2e5], method: ['rejects', 'doesNotReject'], +}, { + combinationFilter(p) { + // These benchmarks purposefully do not run by default. They do not provide + // much insight, due to only being a small wrapper around a native promise + // with a few extra checks. + return p.n === 1; + }, }); async function main({ n, method }) { diff --git a/benchmark/assert/strictequal.js b/benchmark/assert/strictequal.js index 21a77f0472c5fc..fef74ffb1ecb5b 100644 --- a/benchmark/assert/strictequal.js +++ b/benchmark/assert/strictequal.js @@ -4,9 +4,15 @@ const common = require('../common.js'); const assert = require('assert'); const bench = common.createBenchmark(main, { - n: [25, 2e5], + n: [2e5], type: ['string', 'object', 'number'], method: ['strictEqual', 'notStrictEqual'], +}, { + combinationFilter(p) { + // These benchmarks purposefully do not run by default. They do not provide + // much insight, due to only being a small wrapper around `Object.is()`. + return p.n === 1; + }, }); function main({ type, n, method }) { diff --git a/benchmark/assert/throws.js b/benchmark/assert/throws.js index 9c070ac8281551..df2fdf2dbf0e07 100644 --- a/benchmark/assert/throws.js +++ b/benchmark/assert/throws.js @@ -4,8 +4,14 @@ const common = require('../common.js'); const assert = require('assert'); const bench = common.createBenchmark(main, { - n: [25, 2e5], + n: [2e5], method: ['throws', 'doesNotThrow'], +}, { + combinationFilter(p) { + // These benchmarks purposefully do not run by default. They do not provide + // much insight, due to only being a small wrapper around a try / catch. + return p.n === 1; + }, }); function main({ n, method }) { diff --git a/benchmark/eslint.config_partial.mjs b/benchmark/eslint.config_partial.mjs index 174d8848c99a74..7f10460f71971b 100644 --- a/benchmark/eslint.config_partial.mjs +++ b/benchmark/eslint.config_partial.mjs @@ -1,6 +1,4 @@ -import { requireEslintTool } from '../tools/eslint/eslint.config_utils.mjs'; - -const globals = requireEslintTool('globals'); +import { globals } from '../tools/eslint/eslint.config_utils.mjs'; export default [ { diff --git a/benchmark/fs/bench-openSync.js b/benchmark/fs/bench-openSync.js index eaa56139dcbf3c..b17c0a1e67f8a7 100644 --- a/benchmark/fs/bench-openSync.js +++ b/benchmark/fs/bench-openSync.js @@ -10,6 +10,18 @@ const bench = common.createBenchmark(main, { n: [1e5], }); +function runBench({ n, path }) { + for (let i = 0; i < n; i++) { + try { + const fd = fs.openSync(path, 'r', 0o666); + fs.closeSync(fd); + } catch { + // do nothing + } + } +} + + function main({ n, type }) { let path; @@ -24,14 +36,9 @@ function main({ n, type }) { new Error('Invalid type'); } + runBench({ n, path }); + bench.start(); - for (let i = 0; i < n; i++) { - try { - const fd = fs.openSync(path, 'r', 0o666); - fs.closeSync(fd); - } catch { - // do nothing - } - } + runBench({ n, path }); bench.end(n); } diff --git a/benchmark/util/diff.js b/benchmark/util/diff.js new file mode 100644 index 00000000000000..3ec024c24df6d0 --- /dev/null +++ b/benchmark/util/diff.js @@ -0,0 +1,43 @@ +'use strict'; + +const util = require('util'); +const common = require('../common'); + +const bench = common.createBenchmark(main, { + n: [1e3], + length: [1e3, 2e3], + scenario: ['identical', 'small-diff', 'medium-diff', 'large-diff'], +}); + +function main({ n, length, scenario }) { + const actual = Array.from({ length }, (_, i) => `${i}`); + let expected; + + switch (scenario) { + case 'identical': // 0% difference + expected = Array.from({ length }, (_, i) => `${i}`); + break; + + case 'small-diff': // ~5% difference + expected = Array.from({ length }, (_, i) => { + return Math.random() < 0.05 ? `modified-${i}` : `${i}`; + }); + break; + + case 'medium-diff': // ~25% difference + expected = Array.from({ length }, (_, i) => { + return Math.random() < 0.25 ? `modified-${i}` : `${i}`; + }); + break; + + case 'large-diff': // ~100% difference + expected = Array.from({ length }, (_, i) => `modified-${i}`); + break; + } + + bench.start(); + for (let i = 0; i < n; i++) { + util.diff(actual, expected); + } + bench.end(n); +} diff --git a/benchmark/zlib/creation.js b/benchmark/zlib/creation.js index 90b22780d2d312..41b1e4917a67bb 100644 --- a/benchmark/zlib/creation.js +++ b/benchmark/zlib/creation.js @@ -5,7 +5,7 @@ const zlib = require('zlib'); const bench = common.createBenchmark(main, { type: [ 'Deflate', 'DeflateRaw', 'Inflate', 'InflateRaw', 'Gzip', 'Gunzip', 'Unzip', - 'BrotliCompress', 'BrotliDecompress', + 'BrotliCompress', 'BrotliDecompress', 'ZstdCompress', 'ZstdDecompress', ], options: ['true', 'false'], n: [5e5], diff --git a/benchmark/zlib/pipe.js b/benchmark/zlib/pipe.js index a9c86e3de660a9..5a21c3ff417084 100644 --- a/benchmark/zlib/pipe.js +++ b/benchmark/zlib/pipe.js @@ -7,7 +7,7 @@ const bench = common.createBenchmark(main, { inputLen: [1024], duration: [5], type: ['string', 'buffer'], - algorithm: ['gzip', 'brotli'], + algorithm: ['gzip', 'brotli', 'zstd'], }, { test: { inputLen: 1024, @@ -15,14 +15,19 @@ const bench = common.createBenchmark(main, { }, }); +const algorithms = { + 'gzip': [zlib.createGzip, zlib.createGunzip], + 'brotli': [zlib.createBrotliCompress, zlib.createBrotliDecompress], + 'zstd': [zlib.createZstdCompress, zlib.createZstdDecompress], +}; + function main({ inputLen, duration, type, algorithm }) { const buffer = Buffer.alloc(inputLen, fs.readFileSync(__filename)); const chunk = type === 'buffer' ? buffer : buffer.toString('utf8'); - const input = algorithm === 'gzip' ? - zlib.createGzip() : zlib.createBrotliCompress(); - const output = algorithm === 'gzip' ? - zlib.createGunzip() : zlib.createBrotliDecompress(); + const [createCompress, createUncompress] = algorithms[algorithm]; + const input = createCompress(); + const output = createUncompress(); let readFromOutput = 0; input.pipe(output); diff --git a/common.gypi b/common.gypi index 62f26bb07d27a0..372409f4b09cc3 100644 --- a/common.gypi +++ b/common.gypi @@ -27,6 +27,8 @@ 'clang%': 0, 'error_on_warn%': 'false', + 'suppress_all_error_on_warn%': 'false', + 'control_flow_guard%': 'false', 'openssl_product': '<(STATIC_LIB_PREFIX)openssl<(STATIC_LIB_SUFFIX)', 'openssl_no_asm%': 0, @@ -36,7 +38,7 @@ # Reset this number to 0 on major V8 upgrades. # Increment by one for each non-official patch applied to deps/v8. - 'v8_embedder_string': '-node.22', + 'v8_embedder_string': '-node.24', ##### V8 defaults for Node.js ##### @@ -309,6 +311,11 @@ '/Zm2000', ], }], + ['control_flow_guard=="true"', { + 'AdditionalOptions': [ + '/guard:cf', # Control Flow Guard + ], + }], ], 'BufferSecurityCheck': 'true', 'DebugInformationFormat': 1, # /Z7 embed info in .obj files @@ -335,6 +342,11 @@ ['target_arch=="arm64"', { 'TargetMachine' : 0, # NotSet. MACHINE:ARM64 is inferred from the input files. }], + ['control_flow_guard=="true"', { + 'AdditionalOptions': [ + '/guard:cf', # Control Flow Guard + ], + }], ], 'GenerateDebugInformation': 'true', 'SuppressStartupBanner': 'true', diff --git a/configure.py b/configure.py index 712ed40f77e54d..95faeeef3867cb 100755 --- a/configure.py +++ b/configure.py @@ -148,6 +148,12 @@ default=None, help='Turn compiler warnings into errors for node core sources.') +parser.add_argument('--suppress-all-error-on-warn', + action='store_true', + dest='suppress_all_error_on_warn', + default=False, + help='Suppress cases where compiler warnings are turned into errors by default.') + parser.add_argument('--gdb', action='store_true', dest='gdb', @@ -567,6 +573,29 @@ dest='shared_sqlite_libpath', help='a directory to search for the shared sqlite DLL') +shared_optgroup.add_argument('--shared-zstd', + action='store_true', + dest='shared_zstd', + default=None, + help='link to a shared zstd DLL instead of static linking') + +shared_optgroup.add_argument('--shared-zstd-includes', + action='store', + dest='shared_zstd_includes', + help='directory containing zstd header files') + +shared_optgroup.add_argument('--shared-zstd-libname', + action='store', + dest='shared_zstd_libname', + default='zstd', + help='alternative lib name to link to [default: %(default)s]') + +shared_optgroup.add_argument('--shared-zstd-libpath', + action='store', + dest='shared_zstd_libpath', + help='a directory to search for the shared zstd DLL') + +parser.add_argument_group(shared_optgroup) for builtin in shareable_builtins: builtin_id = 'shared_builtin_' + builtin + '_path' @@ -790,6 +819,12 @@ default=None, help='do not install the bundled Corepack') +parser.add_argument('--control-flow-guard', + action='store_true', + dest='enable_cfg', + default=None, + help='enable Control Flow Guard (CFG)') + # Dummy option for backwards compatibility parser.add_argument('--without-report', action='store_true', @@ -986,6 +1021,11 @@ default=None, help='Configure for clang-cl on Windows. This flag sets the GYP "clang" ' + 'variable to 1 and "llvm_version" to the specified value.') +parser.add_argument('--use-ccache-win', + action='store_true', + dest='use_ccache_win', + default=None, + help='Use ccache for compiling on Windows. ') (options, args) = parser.parse_known_args() @@ -1162,6 +1202,8 @@ def get_gas_version(cc): # check involves checking the build number against an allowlist. I'm not # quite prepared to go that far yet. def check_compiler(o): + o['variables']['use_ccache_win'] = 0 + if sys.platform == 'win32': if options.clang_cl: o['variables']['clang'] = 1 @@ -1170,6 +1212,9 @@ def check_compiler(o): o['variables']['clang'] = 0 o['variables']['llvm_version'] = '0.0' + if options.use_ccache_win: + o['variables']['use_ccache_win'] = 1 + if not options.openssl_no_asm and options.dest_cpu in ('x86', 'x64'): nasm_version = get_nasm_version('nasm') o['variables']['nasm_version'] = nasm_version @@ -1386,16 +1431,25 @@ def gcc_version_ge(version_checked): def configure_node_lib_files(o): o['variables']['node_library_files'] = SearchFiles('lib', 'js') +def configure_node_cctest_sources(o): + o['variables']['node_cctest_sources'] = [ 'src/node_snapshot_stub.cc' ] + \ + SearchFiles('test/cctest', 'cc') + \ + SearchFiles('test/cctest', 'h') + def configure_node(o): if options.dest_os == 'android': o['variables']['OS'] = 'android' o['variables']['node_prefix'] = options.prefix o['variables']['node_install_npm'] = b(not options.without_npm) o['variables']['node_install_corepack'] = b(not options.without_corepack) + o['variables']['control_flow_guard'] = b(options.enable_cfg) o['variables']['node_use_amaro'] = b(not options.without_amaro) o['variables']['debug_node'] = b(options.debug_node) o['default_configuration'] = 'Debug' if options.debug else 'Release' + if options.error_on_warn and options.suppress_all_error_on_warn: + raise Exception('--error_on_warn is incompatible with --suppress_all_error_on_warn.') o['variables']['error_on_warn'] = b(options.error_on_warn) + o['variables']['suppress_all_error_on_warn'] = b(options.suppress_all_error_on_warn) o['variables']['use_prefix_to_find_headers'] = b(options.use_prefix_to_find_headers) host_arch = host_arch_win() if os.name == 'nt' else host_arch_cc() @@ -2195,6 +2249,7 @@ def make_bin_override(): configure_node(output) configure_node_lib_files(output) +configure_node_cctest_sources(output) configure_napi(output) configure_library('zlib', output) configure_library('http_parser', output) @@ -2209,6 +2264,7 @@ def make_bin_override(): configure_library('ngtcp2', output, pkgname='libngtcp2') configure_library('sqlite', output, pkgname='sqlite3') configure_library('uvwasi', output, pkgname='libuvwasi') +configure_library('zstd', output) configure_v8(output, configurations) configure_openssl(output) configure_intl(output) diff --git a/deps/acorn/acorn/CHANGELOG.md b/deps/acorn/acorn/CHANGELOG.md index 313718616b575a..8b9ae8c4ed60c8 100644 --- a/deps/acorn/acorn/CHANGELOG.md +++ b/deps/acorn/acorn/CHANGELOG.md @@ -1,3 +1,15 @@ +## 8.14.1 (2025-03-05) + +### Bug fixes + +Fix an issue where `await` expressions in class field initializers were inappropriately allowed. + +Properly allow await inside an async arrow function inside a class field initializer. + +Mention the source file name in syntax error messages when given. + +Properly add an empty `attributes` property to every form of `ExportNamedDeclaration`. + ## 8.14.0 (2024-10-27) ### New features diff --git a/deps/acorn/acorn/dist/acorn.js b/deps/acorn/acorn/dist/acorn.js index 2bfc15b5ef2204..aacf9749a69ebb 100644 --- a/deps/acorn/acorn/dist/acorn.js +++ b/deps/acorn/acorn/dist/acorn.js @@ -493,6 +493,7 @@ SCOPE_SUPER = 64, SCOPE_DIRECT_SUPER = 128, SCOPE_CLASS_STATIC_BLOCK = 256, + SCOPE_CLASS_FIELD_INIT = 512, SCOPE_VAR = SCOPE_TOP | SCOPE_FUNCTION | SCOPE_CLASS_STATIC_BLOCK; function functionFlags(async, generator) { @@ -603,15 +604,16 @@ prototypeAccessors.inFunction.get = function () { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 }; - prototypeAccessors.inGenerator.get = function () { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 && !this.currentVarScope().inClassFieldInit }; + prototypeAccessors.inGenerator.get = function () { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 }; - prototypeAccessors.inAsync.get = function () { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 && !this.currentVarScope().inClassFieldInit }; + prototypeAccessors.inAsync.get = function () { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 }; prototypeAccessors.canAwait.get = function () { for (var i = this.scopeStack.length - 1; i >= 0; i--) { - var scope = this.scopeStack[i]; - if (scope.inClassFieldInit || scope.flags & SCOPE_CLASS_STATIC_BLOCK) { return false } - if (scope.flags & SCOPE_FUNCTION) { return (scope.flags & SCOPE_ASYNC) > 0 } + var ref = this.scopeStack[i]; + var flags = ref.flags; + if (flags & (SCOPE_CLASS_STATIC_BLOCK | SCOPE_CLASS_FIELD_INIT)) { return false } + if (flags & SCOPE_FUNCTION) { return (flags & SCOPE_ASYNC) > 0 } } return (this.inModule && this.options.ecmaVersion >= 13) || this.options.allowAwaitOutsideFunction }; @@ -619,8 +621,7 @@ prototypeAccessors.allowSuper.get = function () { var ref = this.currentThisScope(); var flags = ref.flags; - var inClassFieldInit = ref.inClassFieldInit; - return (flags & SCOPE_SUPER) > 0 || inClassFieldInit || this.options.allowSuperOutsideMethod + return (flags & SCOPE_SUPER) > 0 || this.options.allowSuperOutsideMethod }; prototypeAccessors.allowDirectSuper.get = function () { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0 }; @@ -628,10 +629,13 @@ prototypeAccessors.treatFunctionsAsVar.get = function () { return this.treatFunctionsAsVarInScope(this.currentScope()) }; prototypeAccessors.allowNewDotTarget.get = function () { - var ref = this.currentThisScope(); - var flags = ref.flags; - var inClassFieldInit = ref.inClassFieldInit; - return (flags & (SCOPE_FUNCTION | SCOPE_CLASS_STATIC_BLOCK)) > 0 || inClassFieldInit + for (var i = this.scopeStack.length - 1; i >= 0; i--) { + var ref = this.scopeStack[i]; + var flags = ref.flags; + if (flags & (SCOPE_CLASS_STATIC_BLOCK | SCOPE_CLASS_FIELD_INIT) || + ((flags & SCOPE_FUNCTION) && !(flags & SCOPE_ARROW))) { return true } + } + return false }; prototypeAccessors.inClassStaticBlock.get = function () { @@ -1558,11 +1562,9 @@ if (this.eat(types$1.eq)) { // To raise SyntaxError if 'arguments' exists in the initializer. - var scope = this.currentThisScope(); - var inClassFieldInit = scope.inClassFieldInit; - scope.inClassFieldInit = true; + this.enterScope(SCOPE_CLASS_FIELD_INIT | SCOPE_SUPER); field.value = this.parseMaybeAssign(); - scope.inClassFieldInit = inClassFieldInit; + this.exitScope(); } else { field.value = null; } @@ -1704,6 +1706,8 @@ { this.checkExport(exports, node.declaration.id, node.declaration.id.start); } node.specifiers = []; node.source = null; + if (this.options.ecmaVersion >= 16) + { node.attributes = []; } } else { // export { x, y as z } [from '...'] node.declaration = null; node.specifiers = this.parseExportSpecifiers(exports); @@ -1727,6 +1731,8 @@ } node.source = null; + if (this.options.ecmaVersion >= 16) + { node.attributes = []; } } this.semicolon(); } @@ -3306,9 +3312,10 @@ }; pp$5.parseGetterSetter = function(prop) { - prop.kind = prop.key.name; + var kind = prop.key.name; this.parsePropertyName(prop); prop.value = this.parseMethod(false); + prop.kind = kind; var paramCount = prop.kind === "get" ? 0 : 1; if (prop.value.params.length !== paramCount) { var start = prop.value.start; @@ -3331,9 +3338,9 @@ prop.kind = "init"; } else if (this.options.ecmaVersion >= 6 && this.type === types$1.parenL) { if (isPattern) { this.unexpected(); } - prop.kind = "init"; prop.method = true; prop.value = this.parseMethod(isGenerator, isAsync); + prop.kind = "init"; } else if (!isPattern && !containsEsc && this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === "Identifier" && (prop.key.name === "get" || prop.key.name === "set") && @@ -3345,7 +3352,6 @@ this.checkUnreserved(prop.key); if (prop.key.name === "await" && !this.awaitIdentPos) { this.awaitIdentPos = startPos; } - prop.kind = "init"; if (isPattern) { prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key)); } else if (this.type === types$1.eq && refDestructuringErrors) { @@ -3355,6 +3361,7 @@ } else { prop.value = this.copyNode(prop.key); } + prop.kind = "init"; prop.shorthand = true; } else { this.unexpected(); } }; @@ -3530,7 +3537,7 @@ { this.raiseRecoverable(start, "Cannot use 'yield' as identifier inside a generator"); } if (this.inAsync && name === "await") { this.raiseRecoverable(start, "Cannot use 'await' as identifier inside an async function"); } - if (this.currentThisScope().inClassFieldInit && name === "arguments") + if (!(this.currentThisScope().flags & SCOPE_VAR) && name === "arguments") { this.raiseRecoverable(start, "Cannot use 'arguments' in class field initializer"); } if (this.inClassStaticBlock && (name === "arguments" || name === "await")) { this.raise(start, ("Cannot use " + name + " in class static initialization block")); } @@ -3643,6 +3650,9 @@ pp$4.raise = function(pos, message) { var loc = getLineInfo(this.input, pos); message += " (" + loc.line + ":" + loc.column + ")"; + if (this.sourceFile) { + message += " in " + this.sourceFile; + } var err = new SyntaxError(message); err.pos = pos; err.loc = loc; err.raisedAt = this.pos; throw err @@ -3666,8 +3676,6 @@ this.lexical = []; // A list of lexically-declared FunctionDeclaration names in the current lexical scope this.functions = []; - // A switch to disallow the identifier reference 'arguments' - this.inClassFieldInit = false; }; // The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names. @@ -3737,7 +3745,7 @@ pp$3.currentVarScope = function() { for (var i = this.scopeStack.length - 1;; i--) { var scope = this.scopeStack[i]; - if (scope.flags & SCOPE_VAR) { return scope } + if (scope.flags & (SCOPE_VAR | SCOPE_CLASS_FIELD_INIT | SCOPE_CLASS_STATIC_BLOCK)) { return scope } } }; @@ -3745,7 +3753,8 @@ pp$3.currentThisScope = function() { for (var i = this.scopeStack.length - 1;; i--) { var scope = this.scopeStack[i]; - if (scope.flags & SCOPE_VAR && !(scope.flags & SCOPE_ARROW)) { return scope } + if (scope.flags & (SCOPE_VAR | SCOPE_CLASS_FIELD_INIT | SCOPE_CLASS_STATIC_BLOCK) && + !(scope.flags & SCOPE_ARROW)) { return scope } } }; @@ -6099,7 +6108,7 @@ // [walk]: util/walk.js - var version = "8.14.0"; + var version = "8.14.1"; Parser.acorn = { Parser: Parser, diff --git a/deps/acorn/acorn/dist/acorn.mjs b/deps/acorn/acorn/dist/acorn.mjs index 43e58efe7f03e1..05004ece0ef028 100644 --- a/deps/acorn/acorn/dist/acorn.mjs +++ b/deps/acorn/acorn/dist/acorn.mjs @@ -487,6 +487,7 @@ var SCOPE_SUPER = 64, SCOPE_DIRECT_SUPER = 128, SCOPE_CLASS_STATIC_BLOCK = 256, + SCOPE_CLASS_FIELD_INIT = 512, SCOPE_VAR = SCOPE_TOP | SCOPE_FUNCTION | SCOPE_CLASS_STATIC_BLOCK; function functionFlags(async, generator) { @@ -597,15 +598,16 @@ Parser.prototype.parse = function parse () { prototypeAccessors.inFunction.get = function () { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 }; -prototypeAccessors.inGenerator.get = function () { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 && !this.currentVarScope().inClassFieldInit }; +prototypeAccessors.inGenerator.get = function () { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 }; -prototypeAccessors.inAsync.get = function () { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 && !this.currentVarScope().inClassFieldInit }; +prototypeAccessors.inAsync.get = function () { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 }; prototypeAccessors.canAwait.get = function () { for (var i = this.scopeStack.length - 1; i >= 0; i--) { - var scope = this.scopeStack[i]; - if (scope.inClassFieldInit || scope.flags & SCOPE_CLASS_STATIC_BLOCK) { return false } - if (scope.flags & SCOPE_FUNCTION) { return (scope.flags & SCOPE_ASYNC) > 0 } + var ref = this.scopeStack[i]; + var flags = ref.flags; + if (flags & (SCOPE_CLASS_STATIC_BLOCK | SCOPE_CLASS_FIELD_INIT)) { return false } + if (flags & SCOPE_FUNCTION) { return (flags & SCOPE_ASYNC) > 0 } } return (this.inModule && this.options.ecmaVersion >= 13) || this.options.allowAwaitOutsideFunction }; @@ -613,8 +615,7 @@ prototypeAccessors.canAwait.get = function () { prototypeAccessors.allowSuper.get = function () { var ref = this.currentThisScope(); var flags = ref.flags; - var inClassFieldInit = ref.inClassFieldInit; - return (flags & SCOPE_SUPER) > 0 || inClassFieldInit || this.options.allowSuperOutsideMethod + return (flags & SCOPE_SUPER) > 0 || this.options.allowSuperOutsideMethod }; prototypeAccessors.allowDirectSuper.get = function () { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0 }; @@ -622,10 +623,13 @@ prototypeAccessors.allowDirectSuper.get = function () { return (this.currentThis prototypeAccessors.treatFunctionsAsVar.get = function () { return this.treatFunctionsAsVarInScope(this.currentScope()) }; prototypeAccessors.allowNewDotTarget.get = function () { - var ref = this.currentThisScope(); - var flags = ref.flags; - var inClassFieldInit = ref.inClassFieldInit; - return (flags & (SCOPE_FUNCTION | SCOPE_CLASS_STATIC_BLOCK)) > 0 || inClassFieldInit + for (var i = this.scopeStack.length - 1; i >= 0; i--) { + var ref = this.scopeStack[i]; + var flags = ref.flags; + if (flags & (SCOPE_CLASS_STATIC_BLOCK | SCOPE_CLASS_FIELD_INIT) || + ((flags & SCOPE_FUNCTION) && !(flags & SCOPE_ARROW))) { return true } + } + return false }; prototypeAccessors.inClassStaticBlock.get = function () { @@ -1552,11 +1556,9 @@ pp$8.parseClassField = function(field) { if (this.eat(types$1.eq)) { // To raise SyntaxError if 'arguments' exists in the initializer. - var scope = this.currentThisScope(); - var inClassFieldInit = scope.inClassFieldInit; - scope.inClassFieldInit = true; + this.enterScope(SCOPE_CLASS_FIELD_INIT | SCOPE_SUPER); field.value = this.parseMaybeAssign(); - scope.inClassFieldInit = inClassFieldInit; + this.exitScope(); } else { field.value = null; } @@ -1698,6 +1700,8 @@ pp$8.parseExport = function(node, exports) { { this.checkExport(exports, node.declaration.id, node.declaration.id.start); } node.specifiers = []; node.source = null; + if (this.options.ecmaVersion >= 16) + { node.attributes = []; } } else { // export { x, y as z } [from '...'] node.declaration = null; node.specifiers = this.parseExportSpecifiers(exports); @@ -1721,6 +1725,8 @@ pp$8.parseExport = function(node, exports) { } node.source = null; + if (this.options.ecmaVersion >= 16) + { node.attributes = []; } } this.semicolon(); } @@ -3300,9 +3306,10 @@ pp$5.parseProperty = function(isPattern, refDestructuringErrors) { }; pp$5.parseGetterSetter = function(prop) { - prop.kind = prop.key.name; + var kind = prop.key.name; this.parsePropertyName(prop); prop.value = this.parseMethod(false); + prop.kind = kind; var paramCount = prop.kind === "get" ? 0 : 1; if (prop.value.params.length !== paramCount) { var start = prop.value.start; @@ -3325,9 +3332,9 @@ pp$5.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startP prop.kind = "init"; } else if (this.options.ecmaVersion >= 6 && this.type === types$1.parenL) { if (isPattern) { this.unexpected(); } - prop.kind = "init"; prop.method = true; prop.value = this.parseMethod(isGenerator, isAsync); + prop.kind = "init"; } else if (!isPattern && !containsEsc && this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === "Identifier" && (prop.key.name === "get" || prop.key.name === "set") && @@ -3339,7 +3346,6 @@ pp$5.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startP this.checkUnreserved(prop.key); if (prop.key.name === "await" && !this.awaitIdentPos) { this.awaitIdentPos = startPos; } - prop.kind = "init"; if (isPattern) { prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key)); } else if (this.type === types$1.eq && refDestructuringErrors) { @@ -3349,6 +3355,7 @@ pp$5.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startP } else { prop.value = this.copyNode(prop.key); } + prop.kind = "init"; prop.shorthand = true; } else { this.unexpected(); } }; @@ -3524,7 +3531,7 @@ pp$5.checkUnreserved = function(ref) { { this.raiseRecoverable(start, "Cannot use 'yield' as identifier inside a generator"); } if (this.inAsync && name === "await") { this.raiseRecoverable(start, "Cannot use 'await' as identifier inside an async function"); } - if (this.currentThisScope().inClassFieldInit && name === "arguments") + if (!(this.currentThisScope().flags & SCOPE_VAR) && name === "arguments") { this.raiseRecoverable(start, "Cannot use 'arguments' in class field initializer"); } if (this.inClassStaticBlock && (name === "arguments" || name === "await")) { this.raise(start, ("Cannot use " + name + " in class static initialization block")); } @@ -3637,6 +3644,9 @@ var pp$4 = Parser.prototype; pp$4.raise = function(pos, message) { var loc = getLineInfo(this.input, pos); message += " (" + loc.line + ":" + loc.column + ")"; + if (this.sourceFile) { + message += " in " + this.sourceFile; + } var err = new SyntaxError(message); err.pos = pos; err.loc = loc; err.raisedAt = this.pos; throw err @@ -3660,8 +3670,6 @@ var Scope = function Scope(flags) { this.lexical = []; // A list of lexically-declared FunctionDeclaration names in the current lexical scope this.functions = []; - // A switch to disallow the identifier reference 'arguments' - this.inClassFieldInit = false; }; // The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names. @@ -3731,7 +3739,7 @@ pp$3.currentScope = function() { pp$3.currentVarScope = function() { for (var i = this.scopeStack.length - 1;; i--) { var scope = this.scopeStack[i]; - if (scope.flags & SCOPE_VAR) { return scope } + if (scope.flags & (SCOPE_VAR | SCOPE_CLASS_FIELD_INIT | SCOPE_CLASS_STATIC_BLOCK)) { return scope } } }; @@ -3739,7 +3747,8 @@ pp$3.currentVarScope = function() { pp$3.currentThisScope = function() { for (var i = this.scopeStack.length - 1;; i--) { var scope = this.scopeStack[i]; - if (scope.flags & SCOPE_VAR && !(scope.flags & SCOPE_ARROW)) { return scope } + if (scope.flags & (SCOPE_VAR | SCOPE_CLASS_FIELD_INIT | SCOPE_CLASS_STATIC_BLOCK) && + !(scope.flags & SCOPE_ARROW)) { return scope } } }; @@ -6093,7 +6102,7 @@ pp.readWord = function() { // [walk]: util/walk.js -var version = "8.14.0"; +var version = "8.14.1"; Parser.acorn = { Parser: Parser, diff --git a/deps/acorn/acorn/package.json b/deps/acorn/acorn/package.json index 795cf83eff64d7..3c00dbac0163d9 100644 --- a/deps/acorn/acorn/package.json +++ b/deps/acorn/acorn/package.json @@ -16,7 +16,7 @@ ], "./package.json": "./package.json" }, - "version": "8.14.0", + "version": "8.14.1", "engines": { "node": ">=0.4.0" }, diff --git a/deps/amaro/README.md b/deps/amaro/README.md index 19d1b5ad83d035..bd857844d8d78c 100644 --- a/deps/amaro/README.md +++ b/deps/amaro/README.md @@ -49,28 +49,9 @@ node --experimental-transform-types --import="amaro/transform" script.ts > Note that the "amaro/transform" loader should be used with `--experimental-transform-types` flag, or > at least with `--enable-source-maps` flag, to preserve the original source maps. -### How to update SWC - -To update the SWC version, run: - -```shell -./tools/update-swc.sh -git add deps -git commit -m "chore: update swc to vX.Y.Z" -``` - -Once you have updated the rust source code we must build the wasm. -To build the wasm it is necessary to have Docker installed. - -```shell -node ./tools/build-wasm.js -git add lib -git commit -m "chore: build wasm from swc vX.Y.Z" -``` - ### TypeScript Version -The supported TypeScript version is 5.5.4. +The supported TypeScript version is 5.5.4, except the stage 3 decorator proposal. ## License (MIT) diff --git a/deps/amaro/dist/index.js b/deps/amaro/dist/index.js index b5a4bdea564f1c..c4990167681f4c 100644 --- a/deps/amaro/dist/index.js +++ b/deps/amaro/dist/index.js @@ -244,30 +244,30 @@ ${val.stack}`; function __wbg_adapter_38(arg0, arg1, arg2) { wasm.__wbindgen_export_4(arg0, arg1, addHeapObject(arg2)); } - function __wbg_adapter_57(arg0, arg1, arg2, arg3) { + function __wbg_adapter_59(arg0, arg1, arg2, arg3) { wasm.__wbindgen_export_5(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3)); } - module2.exports.__wbg_buffer_61b7ce01341d7f88 = function(arg0) { + module2.exports.__wbg_buffer_609cc3eee51ed158 = function(arg0) { const ret = getObject(arg0).buffer; return addHeapObject(ret); }; - module2.exports.__wbg_call_500db948e69c7330 = function() { - return handleError(function(arg0, arg1, arg2) { - const ret = getObject(arg0).call(getObject(arg1), getObject(arg2)); + module2.exports.__wbg_call_672a4d21634d4a24 = function() { + return handleError(function(arg0, arg1) { + const ret = getObject(arg0).call(getObject(arg1)); return addHeapObject(ret); }, arguments); }; - module2.exports.__wbg_call_b0d8e36992d9900d = function() { - return handleError(function(arg0, arg1) { - const ret = getObject(arg0).call(getObject(arg1)); + module2.exports.__wbg_call_7cccdd69e0791ae2 = function() { + return handleError(function(arg0, arg1, arg2) { + const ret = getObject(arg0).call(getObject(arg1), getObject(arg2)); return addHeapObject(ret); }, arguments); }; - module2.exports.__wbg_entries_4f2bb9b0d701c0f6 = function(arg0) { + module2.exports.__wbg_entries_3265d4158b33e5dc = function(arg0) { const ret = Object.entries(getObject(arg0)); return addHeapObject(ret); }; - module2.exports.__wbg_get_9aa3dff3f0266054 = function(arg0, arg1) { + module2.exports.__wbg_get_b9b93047fe3cf45b = function(arg0, arg1) { const ret = getObject(arg0)[arg1 >>> 0]; return addHeapObject(ret); }; @@ -275,7 +275,7 @@ ${val.stack}`; const ret = getObject(arg0)[getObject(arg1)]; return addHeapObject(ret); }; - module2.exports.__wbg_instanceof_ArrayBuffer_670ddde44cdb2602 = function(arg0) { + module2.exports.__wbg_instanceof_ArrayBuffer_e14585432e3737fc = function(arg0) { let result; try { result = getObject(arg0) instanceof ArrayBuffer; @@ -285,7 +285,7 @@ ${val.stack}`; const ret = result; return ret; }; - module2.exports.__wbg_instanceof_Uint8Array_28af5bc19d6acad8 = function(arg0) { + module2.exports.__wbg_instanceof_Uint8Array_17156bcf118086a9 = function(arg0) { let result; try { result = getObject(arg0) instanceof Uint8Array; @@ -295,22 +295,22 @@ ${val.stack}`; const ret = result; return ret; }; - module2.exports.__wbg_length_65d1cd11729ced11 = function(arg0) { + module2.exports.__wbg_length_a446193dc22c12f8 = function(arg0) { const ret = getObject(arg0).length; return ret; }; - module2.exports.__wbg_length_d65cf0786bfc5739 = function(arg0) { + module2.exports.__wbg_length_e2d2a49132c1b256 = function(arg0) { const ret = getObject(arg0).length; return ret; }; - module2.exports.__wbg_new_3d446df9155128ef = function(arg0, arg1) { + module2.exports.__wbg_new_23a2665fac83c611 = function(arg0, arg1) { try { var state0 = { a: arg0, b: arg1 }; var cb0 = (arg02, arg12) => { const a = state0.a; state0.a = 0; try { - return __wbg_adapter_57(a, state0.b, arg02, arg12); + return __wbg_adapter_59(a, state0.b, arg02, arg12); } finally { state0.a = a; } @@ -321,56 +321,60 @@ ${val.stack}`; state0.a = state0.b = 0; } }; - module2.exports.__wbg_new_3ff5b33b1ce712df = function(arg0) { - const ret = new Uint8Array(getObject(arg0)); + module2.exports.__wbg_new_405e22f390576ce2 = function() { + const ret = new Object(); return addHeapObject(ret); }; - module2.exports.__wbg_new_688846f374351c92 = function() { - const ret = new Object(); + module2.exports.__wbg_new_a12002a7f91c75be = function(arg0) { + const ret = new Uint8Array(getObject(arg0)); return addHeapObject(ret); }; - module2.exports.__wbg_newnoargs_fd9e4bf8be2bc16d = function(arg0, arg1) { + module2.exports.__wbg_newnoargs_105ed471475aaf50 = function(arg0, arg1) { var v0 = getCachedStringFromWasm0(arg0, arg1); const ret = new Function(v0); return addHeapObject(ret); }; - module2.exports.__wbg_queueMicrotask_2181040e064c0dc8 = function(arg0) { + module2.exports.__wbg_queueMicrotask_97d92b4fcc8a61c5 = function(arg0) { queueMicrotask(getObject(arg0)); }; - module2.exports.__wbg_queueMicrotask_ef9ac43769cbcc4f = function(arg0) { + module2.exports.__wbg_queueMicrotask_d3219def82552485 = function(arg0) { const ret = getObject(arg0).queueMicrotask; return addHeapObject(ret); }; - module2.exports.__wbg_resolve_0bf7c44d641804f9 = function(arg0) { + module2.exports.__wbg_resolve_4851785c9c5f573d = function(arg0) { const ret = Promise.resolve(getObject(arg0)); return addHeapObject(ret); }; - module2.exports.__wbg_set_23d69db4e5c66a6e = function(arg0, arg1, arg2) { - getObject(arg0).set(getObject(arg1), arg2 >>> 0); - }; module2.exports.__wbg_set_3f1d0b984ed272ed = function(arg0, arg1, arg2) { getObject(arg0)[takeObject(arg1)] = takeObject(arg2); }; - module2.exports.__wbg_static_accessor_GLOBAL_0be7472e492ad3e3 = function() { + module2.exports.__wbg_set_65595bdd868b3009 = function(arg0, arg1, arg2) { + getObject(arg0).set(getObject(arg1), arg2 >>> 0); + }; + module2.exports.__wbg_static_accessor_GLOBAL_88a902d13a557d07 = function() { const ret = typeof global === "undefined" ? null : global; return isLikeNone(ret) ? 0 : addHeapObject(ret); }; - module2.exports.__wbg_static_accessor_GLOBAL_THIS_1a6eb482d12c9bfb = function() { + module2.exports.__wbg_static_accessor_GLOBAL_THIS_56578be7e9f832b0 = function() { const ret = typeof globalThis === "undefined" ? null : globalThis; return isLikeNone(ret) ? 0 : addHeapObject(ret); }; - module2.exports.__wbg_static_accessor_SELF_1dc398a895c82351 = function() { + module2.exports.__wbg_static_accessor_SELF_37c5d418e4bf5819 = function() { const ret = typeof self === "undefined" ? null : self; return isLikeNone(ret) ? 0 : addHeapObject(ret); }; - module2.exports.__wbg_static_accessor_WINDOW_ae1c80c7eea8d64a = function() { + module2.exports.__wbg_static_accessor_WINDOW_5de37043a91a9c40 = function() { const ret = typeof window === "undefined" ? null : window; return isLikeNone(ret) ? 0 : addHeapObject(ret); }; - module2.exports.__wbg_then_0438fad860fe38e1 = function(arg0, arg1) { + module2.exports.__wbg_then_44b73946d2fb3e7d = function(arg0, arg1) { const ret = getObject(arg0).then(getObject(arg1)); return addHeapObject(ret); }; + module2.exports.__wbg_toString_5285597960676b7b = function(arg0) { + const ret = getObject(arg0).toString(); + return addHeapObject(ret); + }; module2.exports.__wbindgen_boolean_get = function(arg0) { const v = getObject(arg0); const ret = typeof v === "boolean" ? v ? 1 : 0 : 2; @@ -385,8 +389,8 @@ ${val.stack}`; const ret = false; return ret; }; - module2.exports.__wbindgen_closure_wrapper7374 = function(arg0, arg1, arg2) { - const ret = makeMutClosure(arg0, arg1, 687, __wbg_adapter_38); + module2.exports.__wbindgen_closure_wrapper8369 = function(arg0, arg1, arg2) { + const ret = makeMutClosure(arg0, arg1, 1477, __wbg_adapter_38); return addHeapObject(ret); }; module2.exports.__wbindgen_debug_string = function(arg0, arg1) { @@ -462,7 +466,7 @@ ${val.stack}`; throw new Error(getStringFromWasm0(arg0, arg1)); }; var { Buffer: Buffer2 } = require("node:buffer"); - var bytes = Buffer2.from("AGFzbQEAAAABzgRJYAJ/fwBgAX8AYAJ/fwF/YAN/f38Bf2ADf39/AGABfwF/YAR/f39/AGAFf39/f38AYAZ/f39/f38AYAR/f39/AX9gAAF/YAd/f39/f39/AGADf39/AX5gA39+fwBgBX9/f39/AX9gAX8BfmACf38BfmAHf39/f39/fwF/YAN/fn4AYAN/fn4Bf2AAAGAAAX5gBn9/f39/fwF/YAJ+fwBgAn9+AGABfgF+YAJ+fgBgBH9+f38AYAR/f39+AGADf39+AX9gAX4AYAR/fH9/AX9gDX9/f39/f39/f39/f38AYAJ/fABgBn9/f39+fwBgD39/f39/f39/f39/f39/fwF/YAR/f35/AGAGf39/fn9/AGADf35/AX9gAn9+AX9gBH5+f38BfmADfn9/AGACfn8Bf2ACfn4BfmADf39+AGAOf39/f39/f39/f39/f38Bf2AIf39/f39/f38Bf2AJf39/f39/f39/AGAEf35/fgF+YAl/f39/f39+fn4AYAV/f39/fwF8YAF8AXxgBn9/fn9+fwBgA35/fwF/YAF/AXxgBX9/f39+AGADf39/AXxgF39/f39/f39/f39/f39/f39/f39/f39/AX9gE39/f39/f39/f39/f39/f39/f38Bf2ALf39/f39/f39/f38Bf2AEf39/fABgAXwBf2AEfn5+fwF+YAR/fn5/AGAEf39/fwF8YAd+fn5/f39/AX5gAn5/AX5gA398fwBgBX9/fX9/AGAEf31/fwBgBX9/fH9/AGAEf3x/fwBgBX9/fn9/AALnEisYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fFl9fd2JpbmRnZW5fYm9vbGVhbl9nZXQABRhfX3diaW5kZ2VuX3BsYWNlaG9sZGVyX18VX193YmluZGdlbl9zdHJpbmdfbmV3AAIYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fFV9fd2JpbmRnZW5fc3RyaW5nX2dldAAAGF9fd2JpbmRnZW5fcGxhY2Vob2xkZXJfXxRfX3diaW5kZ2VuX2lzX3N0cmluZwAFGF9fd2JpbmRnZW5fcGxhY2Vob2xkZXJfXxRfX3diaW5kZ2VuX2lzX29iamVjdAAFGF9fd2JpbmRnZW5fcGxhY2Vob2xkZXJfXxdfX3diaW5kZ2VuX2lzX3VuZGVmaW5lZAAFGF9fd2JpbmRnZW5fcGxhY2Vob2xkZXJfXw1fX3diaW5kZ2VuX2luAAIYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fGl9fd2JnX25ld18zZDQ0NmRmOTE1NTEyOGVmAAIYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fE19fd2JpbmRnZW5faXNfZmFsc3kABRhfX3diaW5kZ2VuX3BsYWNlaG9sZGVyX18kX193YmdfZ2V0d2l0aHJlZmtleV8xZGMzNjFiZDEwMDUzYmZlAAIYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fHV9fd2JnX2xlbmd0aF9kNjVjZjA3ODZiZmM1NzM5AAUYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fGl9fd2JnX2dldF85YWEzZGZmM2YwMjY2MDU0AAIYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fGl9fd2JnX25ld182ODg4NDZmMzc0MzUxYzkyAAoYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fGl9fd2JnX3NldF8zZjFkMGI5ODRlZDI3MmVkAAQYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fIF9fd2JnX25ld25vYXJnc19mZDllNGJmOGJlMmJjMTZkAAIYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fG19fd2JnX2NhbGxfYjBkOGUzNjk5MmQ5OTAwZAACGF9fd2JpbmRnZW5fcGxhY2Vob2xkZXJfXy1fX3diZ19zdGF0aWNfYWNjZXNzb3JfR0xPQkFMXzBiZTc0NzJlNDkyYWQzZTMAChhfX3diaW5kZ2VuX3BsYWNlaG9sZGVyX18yX193Ymdfc3RhdGljX2FjY2Vzc29yX0dMT0JBTF9USElTXzFhNmViNDgyZDEyYzliZmIAChhfX3diaW5kZ2VuX3BsYWNlaG9sZGVyX18tX193Ymdfc3RhdGljX2FjY2Vzc29yX1dJTkRPV19hZTFjODBjN2VlYThkNjRhAAoYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fK19fd2JnX3N0YXRpY19hY2Nlc3Nvcl9TRUxGXzFkYzM5OGE4OTVjODIzNTEAChhfX3diaW5kZ2VuX3BsYWNlaG9sZGVyX18bX193YmdfY2FsbF81MDBkYjk0OGU2OWM3MzMwAAMYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fHV9fd2JnX2xlbmd0aF82NWQxY2QxMTcyOWNlZDExAAUYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fEV9fd2JpbmRnZW5fbWVtb3J5AAoYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fHV9fd2JnX2J1ZmZlcl82MWI3Y2UwMTM0MWQ3Zjg4AAUYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fGl9fd2JnX25ld18zZmY1YjMzYjFjZTcxMmRmAAUYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fGl9fd2JnX3NldF8yM2Q2OWRiNGU1YzY2YTZlAAQYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fGl9fd2JpbmRnZW5fb2JqZWN0X2Ryb3BfcmVmAAEYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fG19fd2JpbmRnZW5fb2JqZWN0X2Nsb25lX3JlZgAFGF9fd2JpbmRnZW5fcGxhY2Vob2xkZXJfXxRfX3diaW5kZ2VuX2Vycm9yX25ldwACGF9fd2JpbmRnZW5fcGxhY2Vob2xkZXJfXxlfX3diaW5kZ2VuX2pzdmFsX2xvb3NlX2VxAAIYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fFV9fd2JpbmRnZW5fbnVtYmVyX2dldAAAGF9fd2JpbmRnZW5fcGxhY2Vob2xkZXJfXyxfX3diZ19pbnN0YW5jZW9mX1VpbnQ4QXJyYXlfMjhhZjViYzE5ZDZhY2FkOAAFGF9fd2JpbmRnZW5fcGxhY2Vob2xkZXJfXy1fX3diZ19pbnN0YW5jZW9mX0FycmF5QnVmZmVyXzY3MGRkZGU0NGNkYjI2MDIABRhfX3diaW5kZ2VuX3BsYWNlaG9sZGVyX18eX193YmdfZW50cmllc180ZjJiYjliMGQ3MDFjMGY2AAUYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fF19fd2JpbmRnZW5fZGVidWdfc3RyaW5nAAAYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fEF9fd2JpbmRnZW5fdGhyb3cAABhfX3diaW5kZ2VuX3BsYWNlaG9sZGVyX18bX193YmdfdGhlbl8wNDM4ZmFkODYwZmUzOGUxAAIYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fJV9fd2JnX3F1ZXVlTWljcm90YXNrXzIxODEwNDBlMDY0YzBkYzgAARhfX3diaW5kZ2VuX3BsYWNlaG9sZGVyX18lX193YmdfcXVldWVNaWNyb3Rhc2tfZWY5YWM0Mzc2OWNiY2M0ZgAFGF9fd2JpbmRnZW5fcGxhY2Vob2xkZXJfXxZfX3diaW5kZ2VuX2lzX2Z1bmN0aW9uAAUYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fHl9fd2JnX3Jlc29sdmVfMGJmN2M0NGQ2NDE4MDRmOQAFGF9fd2JpbmRnZW5fcGxhY2Vob2xkZXJfXxJfX3diaW5kZ2VuX2NiX2Ryb3AABRhfX3diaW5kZ2VuX3BsYWNlaG9sZGVyX18eX193YmluZGdlbl9jbG9zdXJlX3dyYXBwZXI3Mzc0AAMDmy6ZLggIAAAABAYEBAQGBgQEBwcHERYGBh8ABgQEAAYHAgQEAAAAAAAEBAAAAggEAAAACAcHBAADBQQEBgYECAQABgIAAgYAAAsLCAAGBgACBgIGAAYGBgkAAAAIBAQIBgAAAAACAA4JICAABgYGBAQCAgcICAQEAgAABAgABAcLAAcAAAYAAAgICCEAAAUCBQYEAAYEAAQiIgcLCAYEAgEEAAQAAAMAAAIEBAsEBggACwAABxEHBwcHAAAHAgAABwAAAAAEBAQAAAQABAgCBgAAAA4FBgYFCQYCBgQBBAAABgYAAAECBQABAQEIAAgABAIIBwUHAAQEAAoAAQABAAEEBAsHAQQGAAAABwQBBAEEBgcGAAEDAQEIBgECBgAAAQIHBgAIAAEABAAEAQQEAAQEAAQGAQEBAQEBBwcDAQEBAAYGAAYGAAABAAAACwkBCwAJBAAAAAQEBSMABwICCy0HAwIEAAAAAAYEBgYGAAUBBAkCBAsLAAELCAIABQEAAAEDAwcAAQAABwIBAC4AEQYCAAEFAAAACQAGBAYABAQEAAkAAAcIBwYAAQAABAQCAQEEAQcAAAIGBQEABwEBBgIEAwMHAAAHHwIBBgAEAwcHAAAABAQAAgICAAUAABYDAAgIAgYBBggEAC8DAA4DCQEBAQAAAAQEBgQGAwgGAAYGAAMDBgAAAgEAAAMIBAAEAgAEAAQGBgAEAAADAgAACAgGAQQEGwQAAgkAAQAIAAAAAAAAAAABAQACABYIBgYABgIAADAAAQQCAQEBAQEBAQEAAQEDAQAIAwIBAQEAAgQCAQEBAQEBAQEBAQEBARYAAAAABAQAAQEEAAQLAAIAAAcABAAAAwEBBgsHAQAABwYDARICAQEJAAQCCAAAAAIECAcABQUFAAEBAQEBAAEBAQEEBQYEAAIBBwEAFwEAAAQBAgYCBAQDAAcAAAAAAAAAAAgABAIxBAACCAAAAQAEBwUEAAAABAIAAgEABAQGAgQECggGGwYGAQQEAgEAAAQCBgYDAAQRAAAEAAAAAQAGAQYAADIGBAAGBgYCBQQCFgQFBQUAAgIEBAAHAQABMwIEAgYAAAQECAUAAAIGBhEAADQEBAAABgIBAQEBAQ4EBQQLDwEkAzUcBAYHBQIEBgcCAAIICAMAAgQCAwgEAAADAgc2AAcAAQEEAQAABwQCAgAEAAYIBAAEAgAABwcGBgIFAgABAAQEBAAAAgIAAQAABAAEBAYGAAAENwAAAQACAAIBBwEICQQBBwIGBgIAAgMBBgQFASUAAQACAAAABAAACQICAgkCAwAAADgEAQgAAAACBQgAAQEIAAQEBwMDCAIACQQAAQUCBAAIAAgEDwAEACUCAAQABA0AAAEFAQMIAAEAAQACBAQJBAAADwICAQAmAQEAAAEABAgRAgcABAANBAAABgIHAgQAAgACAgEAAQECBAQBAgAEAAQEAgYGAAEAAQUABAQAAQICBAIAAAgIAgAABgEAAQIEAQAIAAYEBAAAAgAACAQJCQMEAAAAAAEACAgABAQBBAECAAEEBgAACQAAAAECAgABAhgBBAMBAAYEAAEGAQAAAAQAAAEBAQEBAQQBAAAGBAQDDwEBAAQFAAEBAgcBAQIGBAABAAACBAQGBgAEBAMBBAYAGAACBAAIOQEHAAQAAAMABAYBAQIEBAIHBgIACQgBAgAEAAQACAQABAICBAECAAEFEQYDAgICADoJEAQDAQQACQACBAYAAQEEBAEADgABAgcAAAABAgQAAwYCBgACBQIGBwQAAAIjAgADBgQCAgIBAQMCAAYCCwIEBAQGAAYEAAABBgYnAAAABgIEAwADBAAEBQQIAgIAOwAAAQUEBQEJAAYFCAYGBgMFAAAAAAMLAwAABQUICAAGAgIEAAAAAAADAAUAAAACEQQCAgABAgIAAgQAAQEBAQAAAAAABQUABRgOEAYGAgIBBgYCAAYAAAYGAgECAgEAAQEBBggFBQUAAAAAAAABAAABBAUEAAAAAAAGAQAAAAMGBgMAAgAFDwIAAAAAAAAAAAAABAQBBwUEBQIAAAUCAgICAAAAAAECAAIFBgIAAAAFAAICAQMHAAAFAAIAAgICAgABAwMEAAsABQIAAAUBAAECAQIACwICAgICAgICAgICAgICAgIBAAQCAQYBAAAEAgAAAAACAgICAgkAAAAJAgICAgACAgAGBAAEBAICAgIAAAQCAgICAgICAgICAgICAgICAgUAAAAAAAAAAAQGBgYAAAUFBQAFAAoCBQIEAwYAAAAAAgIBBAYCBQEFBQUGBAkCBQICGAIAAAABCAABCAEIBgYBAAECAAABBwEDAgIDCAwHCQACAQIAAgACAgEBAAACAAYCDQ4AAQIAAAQFBAAGBAAGBAUAAgQAAQABAAcCPAAFAAAAAAAAAAMAEgcDBAAABAAGAgA9BgAAAwQHCAg+AAIFBgYGBggCBQkAAQABBAUEAAAAAQUFAQgDHQAAAgUCAgABBQUAAgAEAAUCAAQBCQUEAQAFAwAFBQgABQEEBQMHCQAFBAUFAgAFAAAAAAYAAAYABwQABQIACAICAAIoKAACBQMAAAAAAAAABQAAAAAAAAAAAAAAAAIDAAAAAAAABAAIBAACAQAAAAAGAAABBAQACQAABQAAABICAAUAAAUBAQAABgICAgICAQAGAQIHBAAHAAkGAAAHAQECAgICAgICAgICAgIABwAAAAAHAAICBQQEBAQABAQEAAQIAAMCAAUBAAAAAQgAAAABAAEBAgAIBQUFBQkECQcBBAIAAwABHQADBQEAAh0BBgACAAECAAQABQICAQMHAwICAgAFAQQAAQYGBgIBAQEBAQEBAQEBBAIAAQACBAABBgMBAQAEAgUPAQACAgICAgICAgICAAANAAAAAAAFABQAAD8AAAAEAQkJBQAFAQAHAgICAgIAAAAAAQAAAAYAAAEEAgICCAYAAAAGAgIBAAUEAgIFBQQABQUEAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUAAgUADQIABAMBAAAGAAEBAQEBAAAAAAEBAAEAAAAAAQEBAQABAAYBAAACAAIEAgEZAAAHAgMIAQABAQcBAQAAAAAABAQFAgABAgICAgIBAAABAAUEBAQCAAAABgACBAAAAgICAgYAAgICAAACAgICAgICAgAAABAAAAUABAICAgICAgABBQACBAEAAAAECQAFBAIDAQAIAAUGAAQEBAQFAgABAAcEBAUFAAECAgcHAAECAgICAgICAgIDAgAABwcEAQEFAgICAgICAgICAgICAgICAgICAgICAgAAAAAAAA8BAQAAAAAAAgQEAgICAgQAAAQEAgUCAAECBQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAABAAAAAQABAAEGAAACBgAEBAIFAQgKBQQHAgICAQICAQICAgICAgIBKQECAAEBAQEBAQECBwEBAAQCAgEEAAEBAAAAAgIABAQBAAYBBAQAAAMEBQUFBQQGBgACAgABAAAFBQABAQEEAAQAAAADBgoBAAYEAAQAAQcDBAQAAQAAAQQBAQAAAAAAAAABAAcGBAEEAAYEAQUBAAUABAEPAAEBBgAEAQANBQEAAQACAgIABgIAAAAAAAAAAAADAAgAAQADAggFAQEEAAUEAQECAgIBAAEBAQABAAEBAQEBAQIAAgICAQICAgICBAQCAgEEAQICAQECAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgEFAAEAAQEBAQEBAQQBBQABEAEBAQEIAQEDAwEBAQIBAAABAQEBBAIBBQEHAQoBAQBAAAEAAAAAAAAAAAAAAAAAAAICAgcCAgIBAgAABwIJBgECAgICAgICAggAAgICAAEHAQIAAgECAgEBAgEBAQEBAAAAAQEBAQUBAQEBAQEBAQEAAQAAAQICAgEBAQABAQEBAQEBAAAABwAAAAUABAEFAQQBBQEFAAAAAAUCAAAAAQIAAAABAAABQQICAQEAAgACAg0BBAAFBAAEAAkIBAQCAAYCAgIFAQUFAwUFBQUFBQUFBQEBAQEBAQEBAAEqAQEBAQUBAQEBBQEAAQEBAgACCwYAABUEBAEJBAkABAcDBQIEAAEAHgEBAQEBAQEBAAAAAQANAAAAAAEBAQwBAAAAAAAAAAEBAQEBAQEBAAEBAQEEAAAAAAEBAAEBBQIEAg8GAgICBAkGAQEACwIAAQUADAwDAgQAAQEBAQEFCQUCBgICBgUBAQEBAQABAAEBAQEBBgATEwUCAgUAAwYOAgAAAAECAgQAAAICAAAAAAQCAgUFAQICAAAAAAAAAAIMBgYGBgICAgICAgICAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwcCBwQCAgEQEAUCAgAGAgICAgIFAAICBgACAgICBgQCAgAABQAeDAYZAQIAAAICAQEBAgEBAQIAAgEBDQAAAQEBAQEBAQEBAQEFAQEBAQEBEgETAgACABQUAQIBARQUAAAhAAUDFBQFAgEBAgMCAgICCQAYAgICAgICAgACAgMCAgAAAQIFBQABBQAFAQIBARcAAAIFAgICBwcFAgIGAgIGBwICAgICAgICAAICAAQHAgAHAAQCAwIBAgUFBwcCBQEDBQIrAgIFAQEBAQEBAAEBAAIFAAAFAgICAAEBAQEAQgAAAAAAAQEBAQAAACkAAAEFAQEBBQUBAQEAAQEBBgAEAAMAAAAEBwAAAAABAQkABQAAAAAABQQrAAABAAAABAUAAAAABQEABQICBAACAQEAAQABBAAEBBIAAQECHAcFABAAAQEBDAAAAgcGAgcFAQEBAQEBBgEAAAUAARwFAA0BAQEBAQEBAQEAAAQEAgEAAgIFAAICASwBJAIJAQICAgABAQcCAgEAAAICAgIBAAABAAoBAQoAAAICAgsGBAQFAQEEAAQCAgICCwIGBgYCAgkAAAAAAAEBAQUBAQYGBgYBAQAAAAABAQEBAQICAgEDAAAAAQcGBAUJAgYCAQEHBwEEAgUFBioCAgwGAAAAAQUCAgICAgUABgICAQEAAAAAAQACBgAAAAAAAQgCAAEAAAAHAAAACQIBAQEBAQAAAAAGAQUAAAEBAAAJAwUCAAEDAwYAAAAAAQEQAQEAAAMAAAAAAAAABAIAAAAZAAAAAAABAAAAAABDAAABABAAAAAAAAADCQkJCQEJAwcHAQEWAwkEAwMsAQMDAwMHAwkCGAkCCQYCBQwABQQCDAEBAAwCAQkECQEAAQkEAQUEAAEHDkRGSAADAQEFBQUQAQkEAgICAwQEBgYGCQEBAQECDAEBAAEBAQEBAQEBAQQAAAQGAAUTBAQKCgICCQITBgABAQEBAAUAAgEFAAAAAAAXBQIFAQEBAQEKAQEBAQEBAQACAgIBAAEBAgUBAQQFAQEBAQQEBQQEBAUBAgUEBAABAAIDCQAEAwECAAUCAgQDBwQMAQEBAQUFAQEFAQEBAQEKAQEMAQEBAQAAAAEAAAEBAAEMAQEAAQEBAQEBAQEBAQoBAQEBAQEBAQoFAQEFAQEAAQEEBAIBAQQBCQkBAgICBQQDAgABAQEBBQEBAQECAQEBBgYBAQEBAQEBAQEBAQAAAAEAAQAABAAAAAAEBAAAAAEBAQEBAQEAAAAAAAAAAQEBAAAAAAAAAAAAAAEBAQEMBAEBAQEBAQEBAQEBAQEBAQEAAAEBAQEBAQABBAEBAQAAAAAAAAAAAAABAQEAAQEBAQEGAAECAQEAAQEBBwMBAQABAAABAAQBBAIBCgoKCgoKCgoKCgoKAAoBAQABAQEBDwoCBQEBAQEBAQEBAQEBDAwAAAEBAQEAAAABAQIBAQEAAAAABQECAgICAgUKAwEABAQDBwIMAgUZAAEBFwENAQEBAQEBAQEFAQQBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAEAAAACAAAAAAAAAAABAQAAAQAAAQIBAQABAAABAQEBAQEBAQEBAAACAAAAAAAAAAAAAAAAAAAAAAABAQICAgICAgICAQQAABIDAAICAgQCAgICEgACAQAEAgICAAIEAQEBAQIBAQEBAQEBAQEAAQUBAQEBAQEBAQEBAQIBAQEBAQECAgICBgICAgIFBQEBAQEBAQEBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQABAQEBAQABAQEBAQAAAAAAAAABAQEBAQEBAQEAAAABAQEBAQEBAQAAAAEBAQEBAQEBAQEAAAAAAQEBAAAAAQEBAQAAAQEBAQEAAAEBAQEBAQABAQEBAQEBAQEEAwEDAAAAAAAEAAAAAAAAAAAAAAAAAAABAQEBAQEBAQIBAgUFBQMFAgcBAAEBAQECBQEAAQMBBgEBAQEBAQEBAQEeAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEJAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEBAQEBAQEaAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEB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QShBCBCrICIDIAU2AgggAyAENgIEIAMgDjYCACADIAIpA4AGNwIMIANBFGogAkGIBmopAwA3AgAgA0EcaiACQZAGaikDADcCACADQSRqIAJBmAZqKAIANgIAIAJB2AZqEM8XIAEoApwDIQQgAigC9AIhBiAuIAJB2AVqQSgQ+wYaIAJBgAdqIAJB6ARqKQMANwMAIAJB+AZqIAJB4ARqKQMANwMAIA8gFykDADcDACAmICUpAgA3AgAgJkEIaiAlQQhqKQIANwIAICZBEGogJUEQaikCADcCACACIAIpA9AENwPoBkHwAEEIEKsgIg4gAkHoBmpB4AAQ+wYiBSADNgJoIAUgBiAEIAQgBkkbNgJkIAUgBiAEIAQgBksbNgJgEO4mIAIoArwFEN0oIC0Q+yYMBQsgAkHQBGoQnxYMBgsgAkHoBmoQhyULAkACQAJAIAcQyg0iBgRAIAYoAgBBCUYNAQsgDyAHEJEQIAJBEGogBxCFFCACQfDl3wA2AuwGIAJBNDoA6AYgAigCECACKAIUIAJB6AZqEIEVIQQgBxDKDSIDRQ0BIAMoAgBBJEcNASABIAEpA+ACNwOYAyABKALIAiABQSU2AsgCQSRHDRIgASABKALMAhD/CwwBCyANIAwpAgA3AgAgASgCyAIhBiABQSU2AsgCIAEgASkD4AI3A5gDIA1BCGoiECAMQQhqIhIpAgA3AgAgDUEQaiIYIAxBEGoiKigCADYCACACIAY2AugGIAJB6AZqEMYKIAJBADoA2wcgAkEBOgDdByACIAItAI8IOgDPByACIAItAMwFOgDQByACIAEtALACOgDOByACIAEtAL4COgDcByACIAEtAMYCOgDkByACIAEoAaoCNgDIByACIAEvAa4COwDMByACIAEpALMCNwDRByACIAEvALsCOwDZByACIAEoAsACNgDeByACIAEvAcQCOwDiByALQRVqIAQpAAA3AAAgC0EQaiADKQEANwEAIAtBCGogBSkBADcBACALIBMpAQA3AQAgByACQcgHahDSCCACIAE2AugGIAJBuAZqIAEQswEgAigCvAYhBiACKAK4BiIrQYCAgIB4RwRAAkAgAigCwAYiCUUNAEEAIQUgBiEDIAkhBANAIAMQ9BUgBWohBSADQUBrIQMgBEEBayIEDQALIAVFDQAgAigC5AMhBCACKALgAyED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EhDHCiACQQA6AOsFIAJBAToA7QUgAiACLQDYBjoA3wUgAiACLQCQBDoA4AUgAiABLQCIAzoA3gUgAiABLQCWAzoA7AUgAiABLQCeAzoA9AUgAiABKAGCAzYA2AUgAiABLwGGAzsA3AUgAiABKQCLAzcA4QUgAiABLwCTAzsA6QUgAiABKAKYAzYA7gUgAiABLwGcAzsA8gUgC0EVaiADKQAANwAAIAtBEGogECkBADcBACALQQhqIBYpAQA3AQAgCyATKQEANwEAIBcgAkHYBWoQyQggAiABNgLoBiACQagDaiABELQBIAIoAqwDIQMgAigCqAMiBEGAgICAeEcEQCACIAIoArADIhA2AsAGIAIgAzYCvAYgAiAENgK4BiASEKMmAkACQCAHEOMNIgQEQCAEKAIAQQpGDQELIA8gBxCWCyACQfgBaiAHELgUIAJByOXfADYC7AYgAkE0OgDoBiACKAL4ASACKAL8ASACQegGahCBFSEEIAcQ4w0iA0UNASADKAIAQSRHDQEgASABKQNANwN4IAEoAiggAUElNgIoQSRHDREgASABKAIsEIYMDAELIA0gDCkCADcCACABKAIoIQQgAUElNgIoIAEgASkDQDcDeCAFIAgpAgA3AgAgCSARKAIANgIAIAIgBDYC6AYgAkHoBmoQxwpBACEEAkAgAS0A+AJBAkcNACAHEOMNIgVFDQAgBSgCAEETRw0AIAJBgAJqIAFBoODfABDzASACKAKEAiEEIAIoAoACDQELIAIgBDYCgAYgAkHoBmogASACLQDYBiACLQCQBCADIBAQxRkQqwMgAigC7AYhCCACKALoBiIWQYGAgIB4RwRAIB0gHykCADcDACACIA8pAgA3A6gDIAEtAPgCQQJHIBZBgICAgHhHcg0EIBBBBnQhBQNAIAVFDQUgAygCAEEERgRAIAMoAhAhCSADKAIMIREgAkGpAToA6AYgASARIAkgAkHoBmoQ2BkLIANBQGshAyAFQUBqIQUMAAsACyACQYAGahCRKCAIIQQLIAJBuAZqEPwmDAELIAJB6AZqEKMmIAMhBAsgChDdKAwBCyAVIAIpAugDNwIAIBVBCGogAkHwA2ooAgA2AgAgDyACQcAGaigCADYCACACIAIpArgGNwPoBiABKAJ8IQkgAigCoAYhESACLQCQBCEFIAItANgGIRBByABB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EUkbIS9BASErQgAhZ0IAIWkMBQsgESACKALMCiIDIAMgEUsbIS4gESADIAMgEUkbIS8gAikD0AohZSACKQPICiFmIAIoAsQKIQ0gAkGAA2ogBSkCADcDACACQfYCaiBALQAAOgAAIAIgPykCADcD+AIgAiA+LwAAOwH0AiACKALACiEHIAIoArgDIQMgAi0AzAMhBSACKQP4BhD5GkIAIWlBACErQgAhZwwJCyARIAEoApwDIgMgAyARSxshLiARIAMgAyARSRshL0EBIStCAiFpQgAhZyACKQOIByFlIAIpA4AHIWYgAigC/AYhDSACKAL4BiEHIAwhAyAQIQUMAwsgAikD+AYQ+RoLQgILIWcgDCEDIBAhBSAOIQ0gayFmIGwhZQsgAikDwAoQ+RogZ0ICUQ0MDAQLIAIpA4gHIWUgAikDgAchZiACKAL8BiENIAIoAvgGIQcgAikDwAoQ+RpBAQwBCyACKQPQCiFlIAIpA8gKIWYgAigCxAohDSACKALACiEHQQALIStCACFnC0ICIWkCQCAIEMoNIgVFDQAgBSgCAEECRw0AIAUtAAgNACAFLQAJQQFHDQAgICALKQIANwIAIAEoAsgCIQMgAUElNgLIAiABIAEpA+ACNwOYAyAgQQhqIE8pAgA3AgAgIEEQaiBQKAIANgIAIAIgAzYCoAcgAkGgB2oiAxDGCiADIAEQsAQgAigCqAchAyACKQOgByJpQgJSBEAgAkHgBmogTkEIaikCADcDACACQbYDaiBUQQJqLQAAOgAAIAIgTikCADcD2AYgAiBULwAAOwG0AyACLQC8ByEtDAELIAetIA2tQiCGhCFmIGdQBEAgZhD5GiADIQcMCgsgZiBlEIwrIAMhBwwJCyACQYADaiACQeAGaikDADcDACACQfYCaiACQbYDai0AADoAACACIAIpA9gGNwP4AiACIAIvAbQDOwH0AiARIAEoApwDIgUgBSARSxshLiARIAUgBSARSRshLyAtIQULIFMgAikD+AI3AgAgUiACLwH0AjsAACBTQQhqIAJBgANqKQMANwIAIFJBAmogAkH2AmotAAA6AAAgAiADNgLIByACIGk3A8AHIAIgZTcDuAcgAiBmNwOwByACIA02AqwHIAIgBToA3AcgAiArOgDoByACIC82AuQHIAIgLjYC4AcgUSACKADtAjYAACBR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DQkgCiABIAQgBxDZCCADKAKAAyIFQSpGBEAgBkEBayEGIAIhBQwBCwsgAEEEaiADQYADakEEckE8EPsGGiAAIAU2AgAMGQsgACABIAggBBC3BgwYCyAAIAEgAigCCCACKAIMIAIoAhAgAigCBBDAAgwXCyADIAIoAggiBTYC8AIgAyAFIAIoAgxBHGxqNgL0AiADIAE2AvgCAkAgAS0AC0EBcUUEQCADQfAAaiADQfACahDGGwwBCyADQfAAaiADQfACahDoGgsgAygCcCIFQStHDQELIAAgARDdEQwVCyADKAJ4IQIgAygCdCEEIAVBKkcNAiADQdQBaiEIA0ACQCABLQALQQFxRQRAIANByAFqIANB8AJqEMYbDAELIANByAFqIANB8AJqEOgaCyADKALIASIGQStGBEAgACACNgIIIAAgBDYCBCAAQSo2AgAMFgsgAygC0AEhBSADKALMASEHIAZBKkcNAiADQYADaiABIAIgBxDZCCADKAKAAyICQSpGBEAgBSECDAELCyAAQQRqIANBgANqQQRyQTwQ+wYaIAAgAjYCAAwUCyACKAIIIgUgAigCDCIHQRxsaiEMAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAdFDQAgBSECIAchBgNAIAQgAigCAEEBRmohBCACQRxqIQIgBkEBayIGDQALIARBAkkNACAEIAdPDQELIAMgATYC+AIgAyAMNgL0AiADIAU2AvACIANBgANqIANB8AJqEIUcIAMoAoADIgJBK0YEQCAAIAEQxAwMHwsgAygCiAMhBiADKAKEAyEHIAJBKkcNCiADQYADaiADQfACahCFHCADKAKAAyICQStGBEAgACAGNgIIIAAgBzYCBCAAQSo2AgAMHwsgAygCiAMhCCADKAKEAyEKIAJBKkcNCSADQYADaiICIAEQ+RIgAygChAMhBSADKAKAAyIEQSpHDQggAiABELEXIAMoAoQDIQQgAygCgAMiCUEqRw0HIAIgASAFIAcQ2QggAygCgAMiB0EqRw0GIAIgASAGIAQQ2QggAygCgAMiBkEqRw0FIAIgASAFIAoQ2QggAygCgAMiBkEqRw0EIAIgASAIIAQQ2QggAygCgAMiAkEqRw0DIANB+ABqIANB+AJqKAIANgIAIAMgAykC8AI3A3AgA0HUAWohCANAIANByAFqIANB8ABq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BSADQegCaiADQdgCai0AADoAACADIAMpANACIiY3A+ACQQIhAgJAAkACQAJAAkACQCAmp0H/AXFBAWsOAwIAAQMLQQMhAgwBC0EEIQILIANBKGogAkEBdiIFIBogBUGA9eAAELMeIAMoAiwhByADKAIoIQkgA0EgaiAFIBogAkEBdGogAkEGcSIIayAFQZD14AAQsx4gAygCICAIakECayEEQQAhAiADKAIkIQogByEGIAVBAWsiDiEFA0AgAiAIRg0BIAZFDQIgCiAOSwRAIAIgCWoiCy8AACENIAsgBC8AADsAACAEIA07AAAgBkEBayEGIARBAmshBCAFQQFrIQUgAkECaiECDAELCyAFIApBsPXgABCsEAALIANBGGogA0HgAmoQtyAgASkCrAEhJiADKAIcIQIgAygCGCEFIAFCgICAgMAANwKsASABQQA2ArQBIANBADYCyAMgAyAmNwPAAyADQYADaiIEQQEgBSACEMcNIANBwANqIAQQ6hUCQAJAA0AgAygCyAMiAkUNBCADIAJBAWsiAjYCyAMgA0H4AGogAygCxAMgAkEEdGoiAkEIaikCACImNwMAIAMgAikCADcDcCADLQB8IgJBBEsNAiACRQ0BIAJBAWshEiADLQBxIQUgAy0AcCEKIBAgJqciExD5HSICKAIEIQdBACELIAIoAggiBiECAkADQCACIAtNDQEgBiACIAtqQQF2IgRLBEAgBEEBaiALIAcgBEEDdGotAAUgCkH/AXFJIggbIQsgAiAEIAgbIQIMAQsLIAQgBkHsr8MAEKwQAAsgECATEPkdKAIIIAtGBEAgECADQcADaiAUIBIQ4RghAiAWKAIAIBUoAgAgEyAKIAUgAhDEEgwBCwNAIBAgExD5HSICKAIEIAIoAgggC0G8rsMAELofIgctAAUhCAJAIAVB/wFxIgYgBy0ABCIETwRAIApB/wFxIgIgCE0NAQsgECADQcADaiAUIBIQ4RghAiAWKAIAIBUoAgAgCyATIAogBSACEOwMDAELIAcoAgAhDgJAAkACQAJ/AkACQAJAAkACQAJAAkACfwJAIAIgBEcNACAGIAhHBEAgBiAITQ0BIAhBAWpB/wFxQQh0IAVBEHRyQQFyIQ0gCEEIdCACcgwCCyAFQQh0IAJyIQJBAiEEQQAhBUEBIQZBASERQQAhB0EAIQlBACENDAwLAkAgBiAIRiIHIAIgBE8iCUVxRQRAIAYgCEkiFyINIAIgBEZxDQEgAiAETSIRQQEgBxtFDQMgBiAISyIHIAlFcQ0EIBFBASANG0UNBSAEIAZPIglFIAIgCEZxDQYgAiAISSINIAQgBkZxDQcgByANcQ0IIBcgCUVxDQlB5ezgAEEoQeSwwwAQ9BcAC0ECIREgBEEIdCIEIAVBEHRyQQJyIQ0gAiAEckGAAmshAkEBIQRBACEGQQAhBUEAIQdBACEJDAwLIAhBEHQgBUEBakH/AXFBCHRyIQ0gBUEIdCACcgshAkECIRFBACEGQQAhBUEAIQdBACEJQQIhBAwKC0ECIREgBUEQdCACQQh0ckECciENIApBCHQgBHJBgAJrIQJBACEGQQAhBUEAIQcMCAsgBEEIdCIEIAhBEHRyQQJyIQ0gAiAEckGAAmshAkEBIQkgCEEBaiEHQQMhEUEAIQZBASEEDAgLIAJBCHQgBUEQdHJBAnIhDSAFQQFqIQcgCkEIdCAEckGAAmshAkEAIQZBAyERIAghBQwGC0EBIQkgCkEBaiEHIAJBgIIEbEECciENDAQLQQEhBCAFQQFqIQcgBkGAggRsQQJyIQ0gBUEIdCACckGAAmsMAgsgCEEQdCACQQh0ckECciENQQEhCSAIQQFqIQcMAgsgBEEIdCIGIAVBEHRyQQJyIQ1BASEEIAVBAWohByACIAZyQYACawshAkEAIQZBAyERIAghBUEAIQkMAgsgCkEIdCAEckGAAmshAkEAIQZBAyERQQAhBAwBC0EAIQlBACEECyAfIAU6AAAgICACQQh2OgAAIAMgDTsAzwEgISANQRB2OgAAIAMgETYCyAEgAyAHQQh0IAlyOwHSASADIAJBCHQgBHI7AcwBIAYEQCASRQ0CIANBgANqIgIgDiAUIBIQxw0gA0HAA2ogAhDqFQwCCyAPIBFBA2xqISNBACEHQQEhCCAPIQYDQCAGICNGDQIgB0EBaiEHIAYtAAIhBSAGLQABIQoCQAJAAkACQAJAAkACQAJAIAYtAABBAWsOAgECAAsgDkUEQEEAIQQMBwsgAUEANgKoASABKQKgASEmIAFCgICAgMAANwKgASADQQA2AtgDIAMgJjcD0AMgA0HQA2ogDiAQEMILIgQQ4BgDQCADKALYAyICRQ0FIAMgAkEBayICNgLYAyADKALUAyACQQN0aiICKAIEIQkgECACKAIAIiQQ+R0oAgghJUEAIQIDQCACICVGDQEgECAkEPkdIg0oAgQgDSgCCCACQayvwwAQuh8iDS0ABSEbIA0tAAQhHAJAIA0oAgAiFwRAIBAQwgshDSAWKAIAIBUoAgAgCSAcIBsgDRDEEiADQdADaiAXIA0Q4BgMAQsgFigCACAVKAIAIAkgHCAbQQAQxBILIAJBAWohAgwACwALAAsgECATEPkdIQIgByARRw0EIAsgAigCCCIESQ0BDAQLIA4hBCASDQEMBAsgAigCBCAEIAtBzK7DABC6HyICLQAEIAVB/wFxSw0CIAItAAUgCkH/AXFPDQUMAgsgA0GAA2oiAiAOIBQgEhDHDSADQcADaiACEOoVDAILIAEoAqABICIoAgAQ5SkgGEEIaiADQdgDaigCADYCACAYIAMpA9ADNwIADAELIBAgA0HAA2ogFCASEOEYIQQLIBUoAgAhAiAWKAIAIQkCQAJAIAhFBEAgCSACIAsgEyAKIAUgBBDsDAwBCyAJIAIgExDPHyICKAIIIgggC00NASACKAIEIAtBA3RqIgIgBToABSACIAo6AAQgAiAENgIAQQAhCAsgBkEDaiEGIAtBAWohCwwBCwsLCyALIAhBvK/DABCsEAALQdi6wwBBJEHcrsMAEPQXAAsgAkEEQdSwwwAQrhAAC0EBIAdBoPXgABCsEAALIAEoAqwBIB4oAgAQ7SkgGUEIaiADQcgDaigCADYCACAZIAMpA8ADNwIADAELAAsACwsgAEEQaiADQZADakEwEPsGGiAAQQxqIAIoAgA2AgAgACADKQPIATcCBAwIC0GcrsMAEO8UAAtBjK7DABDvFAALQcC2wwAQ7xQACyADQQA2AogDIANCADcDgAMgA0EAOwGMAyADQcgBaiADQYADaiABKALoARDzByABKALcASABQeABaigCABDtKSAFQQhqIANB0AFqKAIANgIAIAUgAykCyAE3AgAMBQtBkLfDABDvFAALIABBEGogA0GQA2pBMBD7BhogAEEMaiAEKAIANgIAIAAgAykDyAE3AgQgACAGNgIADAQLIANBgANqIAEQsRcgAygChAMhBSADKAKAAyIEQSpGBEAgA0G8AWogAigCECIEEJkSIARBAXQhBCAFrSEmIAIoAgwhAgNAIAQEQCADQbwB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OBCOBAJAIAMtAChBBEcEQCADKQMoIhVC/wGDQgRSDQELIANBKGogASAELQBIEI8IIAMtAChBBEcEQCADKQMoIhVC/wGDQgRSDQELAkAgBC0AREUNACADQQA2AiggA0E4aiABIANBKGpBnsXgAEEGELITIAMtADhBBEcEQCADKQM4IhVC/wGDQgRSDQILIANBKGogARDQESADLQAoQQRGDQAgAykDKCIVQv8Bg0IEUg0BCwJAIAQtAEVFDQAgA0EANgIoIANBOGogASADQShqQYq34ABBCBCyEyADLQA4QQRHBEAgAykDOCIVQv8Bg0IEUg0CCyADQShqIAEQ0BEgAy0AKEEERg0AIAMpAygiFUL/AYNCBFINAQsCQCAELQBGRQ0AIANBADYCKCADQThqIAEgA0EoakHcxOAAQQgQshMgAy0AOEEERwRAIAMpAzgiFUL/AYNCBFINAgsgA0EoaiABENARIAMtAChBBEYNACADKQMoIhVC/wGDQgRSDQELIANBADYCQCADQShqIAEgA0FAa0Gau+AAQQgQshMgAy0AKEEERwRAIAMpAygiFUL/AYNCBFINAQsgA0EoaiABENARIAMtAChBBEcEQCADKQMoIhVC/wGDQgRSDQELAkACQCAEQQhqIgIoAgBBBUYEQCADQShqIARBEGogARCnByADLQAoQQRGDQIgAykDKCIVQv8Bg0IEUg0BDAILIANBKGogASACEL8EIAMtAChBBEYNASADKQMoIhVC/wGDQgRRDQELIBVC/wGDQgRSDQELAkAgBCgCQEUNAAJAIAQtAEdFDQAgA0EoaiABIANBQGtBh7DgAEEBELITIAMtAChBBEYNACADKQMoIhVC/wGDQgRSDQILIANBKGogASADQUBrQeS14ABBARCyEyADLQAoQQRHBEAgAykDKCIVQv8Bg0IEUg0CCyADQShqIAEQ0BEgAy0AKEEERwRAIAMpAygiFUL/AYNCBFINAgsgA0EoaiAEQUBrIAEQ3g0gAy0AKEEERg0AIAMpAygiFUL/AYNCBFINAQsCQCAEKAI8RQ0AAkAgAS0ATQ0AIANBKGogARDQESADLQAoQQRGDQAgAykDKCIVQv8Bg0IEUg0CCyADQShqIAEgA0FAa0GZsOAAQQEQshMgAy0AKEEERwRAIAMpAygiFUL/AYNCBFINAgsCQCABLQBN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0BEgAy0AKEEERg0AIAMpAygiFUL/AYNCBFINAQsCQCAELQA1RQ0AIANBADYCKCADQThqIAEgA0EoakGKt+AAQQgQshMgAy0AOEEERwRAIAMpAzgiFUL/AYNCBFINAgsgA0EoaiABENARIAMtAChBBEYNACADKQMoIhVC/wGDQgRSDQELAkAgBC0AN0UNACADQQA2AiggA0E4aiABIANBKGpB3MTgAEEIELITIAMtADhBBEcEQCADKQM4IhVC/wGDQgRSDQILIANBKGogARDQESADLQAoQQRGDQAgAykDKCIVQv8Bg0IEUg0BCwJAAkACQAJAAkACQAJAAkACQCAELQA4QQFrDgIAAQILIANBADYCKCADQThqIAEgA0EoakGYxeAAQQMQshMgAy0AOEEERwRAIAMpAzgiFUL/AYNCBFINCQtBASAHKAIAdEEVcQ0CIAEtAE0NAyADQShqIAEQ0BEgAy0AKEEERg0DIAMpAygiFUL/AYNCBFENAwwICyADQQA2AiggA0E4aiABIANBKGpBm8XgAEEDELITIAMtADhBBEcEQCADKQM4IhVC/wGDQgRSDQgLQQEgBygCAHRBFXENAyABLQBNDQQgA0EoaiABENARIAMtAChBBEYNBCADKQMoIhVC/wGDQgRRDQQMBwsgBS0ARUUNBCADQQA2AiggA0E4aiABIANBKGpBvLngAEEFELITIAMtADhBBEcEQCADKQM4IhVC/wGDQgRSDQcLIANBKGogARDQESADLQAoQQRGDQQgAykDKCIVQv8Bg0IEUQ0EDAYLIANBKGogARDQESADLQAoQQRGDQAgAykDKCIVQv8Bg0IEUg0FCyADQShqIAEgBxC/BCADLQAoQQRGDQMgAykDKCIVQv8Bg0IEUQ0DDAQLIANBKGogARDQESADLQAoQQRGDQAgAykDKCIVQv8Bg0IEUg0DCyADQShqIAEgBxC/BCADLQAoQQRGDQEgAykDKCIVQv8Bg0IEUg0CDAELAkAgBS0AREUNACADQQA2AiggA0E4aiABIANBKGpB17DgAEEBELITIAMtADhBBEYNACADKQM4IhVC/wGDQgRSDQILIANBKGogASAHEL8EIAMtAChBBEYNACADKQMoIhVC/wGDQgRSDQELAkAgBC0ANkUNACADQQA2AiggA0E4aiABIANBKGpB47XgAEEBELIT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AiABKAIAIQMgBEGUA2ohASAEQawBaiEFAkADQAJAIARBqAFqIAMQlQwgBCgCqAEiAkEQRg0AIAEgBSkCADcCACABQRBqIAVBEGopAgA3AgAgAUEIaiIGIAVBCGopAgA3AgAgBCACNgKQAwJAAkACQAJAAkACQAJAAkACQAJAIAJBB2tBACACQQhPG0EBaw4IAAECAwQFBgcICyAEQYADaiAGKAIANgIAIAQgASkCADcD+AIgBEHIAmogBEH4AmoQ3BAMCAsgBEEBNgKsASAEQYTKxAA2AqgBIARCADcCtAEgBCAEQdAAajYCsAEgBEGoAWpBjMrEABDDHQALIARBATYCrAEgBEHsysQANgKoASAEQgA3ArQBIAQgBEHQAGo2ArABIARBqAFqQfTKxAAQwx0ACyAEQQE2AqwBIARB1MvEADYCqAEgBEIANwK0ASAEIARB0ABqNgKwASAEQagBakHcy8QAEMMdAAsgBEEBNgKsASAEQbjMxAA2AqgBIARCADcCtAEgBCAEQdAAajYCsAEgBEGoAWpBwMzEABDDHQALIARBATYCrAEgBEGkzcQANgKoASAEQgA3ArQBIAQgBEHQAGo2ArABIARBqAFqQazNxAAQwx0ACyAEQQg2AsgCDAILIARBATYCrAEgBEGUzsQANgKoASAEQgA3ArQBIAQgBEHQAGo2ArABIARBqAFqQZzOxAAQwx0ACyAEQeACaiAEQagDaigCADYCACAEQdgCaiAEQaADaikCADcDACAEQdACaiAEQZgDaikCADcDACAEIAQpApADNwPIAgsgAkEJTwRAIARBkANqEPwUCyAEKALIAkEIRg0CIARBqAFqIAMQlQwgBCgCqAFBEEYNDSAEQagDaiAEQcABaigCADYCACAEQaADaiAEQbgBaikCADcDACAEQZgDaiAEQbABaikCADcDACAEIAQpAqgBIhY3A5ADIBanQQ9HDQ4gBEGQA2oQ/BQgBEG8AmogBEHIAmoQuhAMAQsLIARBCDYCyAILIARByAJqEOYkIAQoAsACIAQoAsQCEKkIIARBqAFqIgEgBEG8AmoQWSADIAEQoRgMEwsgBEEANgKcAiAEQoCAgIDAADcClAIgASgCACEFIARBlANqIQEgBEGsAWohAwNAIARBqAFqIAUQlQwCQAJAIAQoAqgBIgJBEEcEQCABIAMpAgA3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QdgmahD9GQsgCC0AAQRAQQAgBigCABCKBCENQd2f2gBBFBDcGiFCIANB+MjfAEEBENwaNwNYIANCADcDYCADQeAmaiIEIANB2ABqEKUcIANBQGsiDCAEKQMANwMAIANByABqIg8gA0HoJmopAwA3AwAgA0HQAGoiByADQfAmaikDADcDACADQgA3AzhB8Z/aAEEjENwaIUFByAAQ6SAiBEIANwM4IARBADoANCAEIA02AjAgBEIANwMoIAQgQjcDICAEQRhqIAcpAwA3AwAgBEEQaiAPKQMANwMAIARBCGogDCkDADcDACAEIAMpAzg3AwAgBEFAa0EAOgAAIANBATYC5CYgAyAENgLgJiADQQE2AtwmQRgQ6SAiBEIANwMIIAQgQTcDACADQfImakIANwEAIARBEGpCADcDACADQgA3AuwmIAMgBDYC6CYgA0EANgLYJiAKIANB2CZqEP0ZCyAILQACBEBBACAGKAIAEIoEIQ1BlKDaAEERENwaIUIgA0H4yN8AQQEQ3Bo3A4gBIANCADcDkAEgA0HgJmoiBCADQYgBahClHCADQfAAaiIMIAQpAwA3AwAgA0H4AGoiDyADQegmaikDADcDACADQYABaiIHIANB8CZqKQMANwMAIANCADcDaEGloNoAQSAQ3BohQUHIABDpICIEQgA3AzggBEEAOgA0IAQgDTYCMCAEQgA3AyggBCBCNwMgIARBGGogBykDADcDACAEQRBqIA8pAwA3AwAgBEEIaiAMKQMANwMAIAQgAykDaDcDACAEQUBrQQA6AAAgA0EBNgLkJiADIAQ2AuAmIANBATYC3CZBGBDpICIEQgA3AwggBCBBNwMAIANB8iZqQgA3AQAgBEEQakIANwMAIANCADcC7CYgAyAENgLoJiADQQA2AtgmIAogA0HYJmoQ/RkLIAgtAAMEQEEAIAYoAgAQigQhDUHFoNoAQRQQ3BohQiADQfjI3wBBARDcGjcDuAEgA0IANwPAASADQeAmaiIEIANBuAFqEKUcIANBoAFqIgwgBCkDADcDACADQagBaiIPIANB6CZqKQMANwMAIANBsAFqIgcgA0HwJmopAwA3AwAgA0IANwOYAUHZoNoAQSMQ3BohQUHIABDpICIEQgA3AzggBEEAOgA0IAQgDTYCMCAEQgA3AyggBCBCNwMgIARBGGogBykDADcDACAEQRBqIA8pAwA3AwAgBEEIaiAMKQMANwMAIAQgAykDmAE3AwAgBEFAa0EAOgAAIANBATYC5CYgAyAENgLgJiADQQE2AtwmQRgQ6SAiBEIANwMIIAQgQTcDACADQfImakIANwEAIARBEGpCADcDACADQgA3AuwmIAMgBDYC6CYgA0EANgLYJiAKIANB2CZqEP0ZCyAILQAEBEBBACAGKAIAEIoEIQ1B/KDaAEEYENwaIUIgA0H4yN8AQQEQ3Bo3A+gBIANCADcD8AEgA0HgJmoiBCADQegBahClHCADQdABaiIMIAQpAwA3AwAgA0HYAWoiDyADQegmaikDADcDACADQeABaiIHIANB8CZqKQMANwMAIANCADcDyAFBlKHaAEEnENwaIUFByAAQ6SAiBEIANwM4IARBADoANCAEIA02AjAgBEIANwMoIAQgQjcDICAEQRhqIAcpAwA3AwAgBEEQaiAPKQMANwMAIARBCGogDCkDADcDACAEIAMpA8gBNwMAIARBQGtBADoAACADQQE2AuQmIAMgBDYC4CYgA0EBNgLcJkEYEOkgIgRCADcDCCAEIEE3AwAgA0HyJmpCADcBACAEQRBqQgA3AwAgA0IANwLsJiADIAQ2AugmIANBADYC2CYgCiADQdgmahD9GQsgCC0ABQRAQQAgBigCABCKBCENQbuh2gBBEBDcGiFCIANB+MjfAEEBENwaNwOYAiADQgA3A6ACIANB4CZqIgQgA0GYAmoQpRwgA0GAAmoiDCAEKQMANwMAIANBiAJqIg8gA0HoJmopAwA3AwAgA0GQAmoiByADQfAmaikDADcDACADQgA3A/gBQcuh2gBBHxDcGiFBQcgAEOkgIgRCADcDOCAEQQA6ADQgBCANNgIwIARCADcDKCAEIEI3AyAgBEEYaiAHKQMANwMAIARBEGogDykDADcDACAEQQhqIAwpAwA3AwAgBCADKQP4ATcDACAEQUBrQQA6AAAgA0EBNgLkJiADIAQ2AuAmIANBATYC3CZBGBDpICIEQgA3AwggBCBBNwMAIANB8iZqQgA3AQAgBEEQakIANwMAIANCADcC7CYgAyAENgLoJiADQQA2AtgmIAogA0HYJmoQ/RkLIAgtAAYEQEEAIAYoAgAQigQhDUHqodoAQRkQ3BohQiADQfjI3wBBARDcGjcDyAIgA0IANwPQAiADQeAmaiIEIANByAJqEKUcIANBsAJqIgwgBCkDADcDACADQbgCaiIPIANB6CZqKQMANwMAIANBwAJqIgcgA0HwJmopAwA3AwAgA0IANwOoAkGDotoAQSgQ3BohQUHIABDpICIEQgA3AzggBEEAOgA0IAQgDTYCMCAEQgA3AyggBCBCNwMgIARBGGogBykDADcDACAEQRBqIA8pAwA3AwAgBEEIaiAMKQMANwMAIAQgAykDqAI3AwAgBEFAa0EAOgAAIANBATYC5CYgAyAENgLgJiADQQE2AtwmQRgQ6SAiBEIANwMIIAQgQTcDACADQfImakIANwEAIARBEGpCADcDACADQgA3AuwmIAMgBDYC6CYgA0EANgLYJiAKIANB2CZqEP0ZCyAILQAHBEBBACAGKAIAEIoEIQ1Bq6LaAEEPENwaIUIgA0H4yN8AQQEQ3Bo3A/gCIANCADcDgAMgA0HgJmoiBCADQfgCahClHCADQeACaiIMIAQpAwA3AwAgA0HoAmoiDyADQegmaikDADcDACADQfACaiIHIANB8CZqKQMANwMAIANCADcD2AJBuqLaAEEeENwaIUFByAAQ6SAiBEIANwM4IARBADoANCAEIA02AjAgBEIANwMoIAQgQjcDICAEQRhqIAcpAwA3AwAgBEEQaiAPKQMANwMAIARBCGogDCkDADcDACAEIAMpA9gCNwMAIARBQGtBADoAACADQQE2AuQmIAMgBDYC4CYgA0EBNgLcJkEYEOkgIgRCADcDCCAEIEE3AwAgA0HyJmpCADcBACAEQRBqQgA3AwAgA0IANwLsJiADIAQ2AugmIANBADYC2CYgCiADQdgmahD9GQsgCC0ACARAQQAgBigCABCKBCENQdii2gBBExDcGiFCIANB+MjfAEEBENwaNwOoAyADQgA3A7ADIANB4CZqIgQgA0GoA2oQpRwgA0GQA2oiDCAEKQMANwMAIANBmANqIg8gA0HoJmopAwA3AwAgA0GgA2oiByADQfAmaikDADcDACADQgA3A4gDQeui2gBBIhDcGiFBQcgAEOkgIgRCADcDOCAEQQA6ADQgBCANNgIwIARCADcDKCAEIEI3AyAgBEEYaiAHKQMANwMAIARBEGogDykDADcDACAEQQhqIAwpAwA3AwAgBCADKQOIAzcDACAEQUBrQQA6AAAgA0EBNgLk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AwAgA0IANwLsJiADIAQ2AugmIANBADYC2CYgCiADQdgmahD9GQsgCC0ADgRAQQAgBigCABCKBCENQbCl2gBBGxDcGiFCIANB+MjfAEEBENwaNwPIBSADQgA3A9AFIANB4CZqIgQgA0HIBWoQpRwgA0GwBWoiDCAEKQMANwMAIANBuAVqIg8gA0HoJmopAwA3AwAgA0HABWoiByADQfAmaikDADcDACADQgA3A6gFQcul2gBBKhDcGiFBQcgAEOkgIgRCADcDOCAEQQA6ADQgBCANNgIwIARCADcDKCAEIEI3AyAgBEEYaiAHKQMANwMAIARBEGogDykDADcDACAEQQhqIAwpAwA3AwAgBCADKQOoBTcDACAEQUBrQQA6AAAgA0EBNgLkJiADIAQ2AuAmIANBATYC3CZBGBDpICIEQgA3AwggBCBBNwMAIANB8iZqQgA3AQAgBEEQakIANwMAIANCADcC7CYgAyAENgLoJiADQQA2AtgmIAogA0HYJmoQ/RkLIAgtAA8EQEEAIAYoAgAQigQhDUH1pdoAQRsQ3BohQiADQfjI3wBBARDcGjcD+AUgA0IANwOABiADQeAmaiIEIANB+AVqEKUcIANB4AVqIgwgBCkDADcDACADQegFaiIPIANB6CZqKQMANwMAIANB8AVqIgcgA0HwJmopAwA3AwAgA0IANwPYBUGQptoAQSoQ3BohQUHIABDpICIEQgA3AzggBEEAOgA0IAQgDTYCMCAEQgA3AyggBCBCNwMgIARBGGogBykDADcDACAEQRBqIA8pAwA3AwAgBEEIaiAMKQMANwMAIAQgAykD2AU3AwAgBEFAa0EAOgAAIANBATYC5CYgAyAENgLgJiADQQE2AtwmQRgQ6SAiBEIANwMIIAQgQTcDACADQfImakIANwEAIARBEGpCADcDACADQgA3AuwmIAMgBDYC6CYgA0EANgLYJiAKIANB2CZqEP0ZCyAILQAQBEBBACAGKAIAEIoEIQ1BuqbaAEEeENwaIUIgA0H4yN8AQQEQ3Bo3A6gGIANCADcDsAYgA0HgJmoiBCADQagGahClHCADQZAGaiIMIAQpAwA3AwAgA0GYBmoiDyADQegmaikDADcDACADQaAGaiIHIANB8CZqKQMANwMAIANCADcDiAZB2KbaAEEtENwaIUFByAAQ6SAiBEIANwM4IARBADoANCAEIA02AjAgBEIANwMoIAQgQjcDICAEQRhqIAcpAwA3AwAgBEEQaiAPKQMANwMAIARBCGogDCkDADcDACAEIAMpA4gGNwMAIARBQGtBADoAACADQQE2AuQmIAMgBDYC4CYgA0EBNgLcJkEYEOkgIgRCADcDCCAEIEE3AwAgA0HyJmpCADcBACAEQRBqQgA3AwAgA0IANwLsJiADIAQ2AugmIANBADYC2CYgCiADQdgmahD9GQsgCC0AEQRAQQAgBigCABCKBCENQYWn2gBBERDcGiFCIANB+MjfAEEBENwaNwPYBiADQgA3A+AGIANB4CZqIgQgA0HYBmoQpRwgA0HABmoiDCAEKQMANwMAIANByAZqIg8gA0HoJmopAwA3AwAgA0HQBmoiByADQfAmaikDADcDACADQgA3A7gGQZan2gBBIBDcGiFBQcgAEOkgIgRCADcDOCAEQQA6ADQgBCANNgIwIARCADcDKCAEIEI3AyAgBEEYaiAHKQMANwMAIARBEGogDykDADcDACAEQQhqIAwpAwA3AwAgBCADKQO4BjcDACAEQUBrQQA6AAAgA0EBNgLkJiADIAQ2AuAmIANBATYC3CZBGBDpICIEQgA3AwggBCBBNwMAIANB8iZqQgA3AQAgBEEQakIANwMAIANCADcC7CYgAyAENgLoJiADQQA2AtgmIAogA0HYJmoQ/RkLIAgtABIEQEEAIAYoAgAQigQhDUG2p9oAQSwQ3BohQiADQfjI3wBBARDcGjcDiAcgA0IANwOQByADQeAmaiIEIANBiAdqEKUcIANB8AZqIgwgBCkDADcDACADQfgGaiIPIANB6CZqKQMANwMAIANBgAdqIgcgA0HwJmopAwA3AwAgA0IANwPoBkHip9oAQTsQ3BohQUHIABDpICIEQgA3AzggBEEAOgA0IAQgDTYCMCAEQgA3AyggBCBCNwMgIARBGGogBykDADcDACAEQRBqIA8pAwA3AwAgBEEIaiAMKQMANwMAIAQgAykD6AY3AwAgBEFAa0EAOgAAIANBATYC5CYgAyAENgLgJiADQQE2AtwmQRgQ6SAiBEIANwMIIAQgQTcDACADQfImakIANwEAIARBEGpCADcDACADQgA3AuwmIAMgBDYC6CYgA0EANgLYJiAKIANB2CZqEP0ZCyAILQATBEBBACAGKAIAEIoE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IANBkAlqIgwgBCkDADcDACADQZgJaiIPIANB6CZqKQMANwMAIANBoAlqIgcgA0HwJmopAwA3AwAgA0IANwOICUGOq9oAQS0Q3BohQUHIABDpICIEQgA3AzggBEEAOgA0IAQgDTYCMCAEQgA3AyggBCBCNwMgIARBGGogBykDADcDACAEQRBqIA8pAwA3AwAgBEEIaiAMKQMANwMAIAQgAykDiAk3AwAgBEFAa0EAOgAAIANBATYC5CYgAyAENgLgJiADQQE2AtwmQRgQ6SAiBEIANwMIIAQgQTcDACADQfImakIANwEAIARBEGpCADcDACADQgA3AuwmIAMgBDYC6CYgA0EANgLYJiAKIANB2CZqEP0ZCyAILQAZBEBBACAGKAIAEIoEIQ1Bu6vaAEEYENwaIUIgA0H4yN8AQQEQ3Bo3A9gJIANCADcD4AkgA0HgJmoiBCADQdgJahClHCADQcAJaiIMIAQpAwA3AwAgA0HICWoiDyADQegmaikDADcDACADQdAJaiIHIANB8CZqKQMANwMAIANCADcDuAlB06vaAEEnENwaIUFByAAQ6SAiBEIANwM4IARBADoANCAEIA02AjAgBEIANwMoIAQgQjcDICAEQRhqIAcpAwA3AwAgBEEQaiAPKQMANwMAIARBCGogDCkDADcDACAEIAMpA7gJNwMAIARBQGtBADoAACADQQE2AuQmIAMgBDYC4CYgA0EBNgLcJkEYEOkgIgRCADcDCCAEIEE3AwAgA0HyJmpCADcBACAEQRBqQgA3AwAgA0IANwLsJiADIAQ2AugmIANBADYC2CYgCiADQdgmahD9GQsgCC0AGgRAQQAgBigCABCKBCENQfqr2gBBGxDcGiFCIANB+MjfAEEBENwaNwOICiADQgA3A5AKIANB4CZqIgQgA0GICmoQpRwgA0HwCWoiDCAEKQMANwMAIANB+AlqIg8gA0HoJmopAwA3AwAgA0GACmoiByADQfAmaikDADcDACADQgA3A+gJQZWs2gBBKhDcGiFBQcgAEOkgIgRCADcDOCAEQQA6ADQgBCANNgIwIARCADcDKCAEIEI3AyAgBEEYaiAHKQMANwMAIARBEGogDykDADcDACAEQQhqIAwpAwA3AwAgBCADKQPoCTcDACAEQUBrQQA6AAAgA0EBNgLkJiADIAQ2AuAmIANBATYC3CZBGBDpICIEQgA3AwggBCBBNwMAIANB8iZqQgA3AQAgBEEQakIANwMAIANCADcC7CYgAyAENgLoJiADQQA2AtgmIAogA0HYJmoQ/RkLIAgtABsEQEEAIAYoAgAQigQhDUG/rNoAQRkQ3BohQiADQfjI3wBBARDcGjcDuAogA0IANwPACiADQeAmaiIEIANBuApqEKUcIANBoApqIgwgBCkDADcDACADQagKaiIPIANB6CZqKQMANwMAIANBsApqIgcgA0HwJmopAwA3AwAgA0IANwOYCkHYrNoAQSgQ3BohQUHIABDpICIEQgA3AzggBEEAOgA0IAQgDTYCMCAEQgA3AyggBCBCNwMgIARBGGogBykDADcDACAEQRBqIA8pAwA3AwAgBEEIaiAMKQMANwMAIAQgAykDmAo3AwAgBEFAa0EAOgAAIANBATYC5CYgAyAENgLgJiADQQE2AtwmQRgQ6SAiBEIANwMIIAQgQTcDACADQfImakIANwEAIARBEGpCADcDACADQgA3AuwmIAMgBDYC6CYgA0EANgLYJiAKIANB2CZqEP0ZCyAILQAcBEBBACAGKAIAEIoEIQ1BgK3aAEEaENwaIUIgA0H4yN8AQQEQ3Bo3A+gKIANCADcD8AogA0HgJmoiBCADQegKahClHCADQdAKaiIMIAQpAwA3AwAgA0HYCmoiDyADQegmaikDADcDACADQeAKaiIHIANB8CZqKQMANwMAIANCADcDyApBmq3aAEEpENwaIUFByAAQ6SAiBEIANwM4IARBADoANCAEIA02AjAgBEIANwMoIAQgQjcDICAEQRhqIAcpAwA3AwAgBEEQaiAPKQMANwMAIARBCGogDCkDADcDACAEIAMpA8gKNwMAIARBQGtBADoAACADQQE2AuQmIAMgBDYC4CYgA0EBNgLcJkEYEOkgIgRCADcDCCAEIEE3AwAgA0HyJmpCADcBACAEQRBqQgA3AwAgA0IANwLsJiADIAQ2AugmIANBADYC2CYgCiADQdgmahD9GQsgCC0AHQRAQQAgBigCABCKBCENQcOt2gBBGRDcGiFCIANB+MjfAEEBENwaNwOYCyADQgA3A6ALIANB4CZqIgQgA0GYC2oQpRwgA0GAC2oiDCAEKQMANwMAIANBiAtqIg8gA0HoJmopAwA3AwAgA0GQC2oiByADQfAmaikDADcDACADQgA3A/gKQdyt2gBBKBDcGiFBQcgAEOkgIgRCADcDOCAEQQA6ADQgBCANNgIwIARCADcDKCAEIEI3AyAgBEEYaiAHKQMANwMAIARBEGogDykDADcDACAEQQhqIAwpAwA3AwAgBCADKQP4CjcDACAEQUBrQQA6AAAgA0EBNgLkJiADIAQ2AuAmIANBATYC3CZBGBDpICIEQgA3AwggBCBBNwMAIANB8iZqQgA3AQAgBEEQakIANwMAIANCADcC7CYgAyAENgLoJiADQQA2AtgmIAogA0HYJmoQ/RkLIAgtAB4EQEEAIAYoAgAQigQhDUGErtoAQSQQ3BohQiADQfjI3wBBARDcGjcDyAsgA0IANwPQCyADQeAmaiIEIANByAtqEKUcIANBsAtqIgwgBCkDADcDACADQbgLaiIPIANB6CZqKQMANwMAIANBwAtqIgcgA0HwJmopAwA3AwAgA0IANwOoC0GortoAQTMQ3BohQUHIABDpICIEQgA3AzggBEEAOgA0IAQgDTYCMCAEQgA3AyggBCBCNwMgIARBGGogBykDADcDACAEQRBqIA8pAwA3AwAgBEEIaiAMKQMANwMAIAQgAykDqAs3AwAgBEFAa0EAOgAAIANBATYC5CYgAyAENgLgJiADQQE2AtwmQRgQ6SAiBEIANwMIIAQgQTcDACADQfImakIANwEAIARBEGpCADcDACADQgA3AuwmIAMgBDYC6CYgA0EANgLYJiAKIANB2CZqEP0ZCyAILQAfBEBBACAGKAIAEIoEIQ1B267aAEEkENwaIUIgA0H4yN8AQQEQ3Bo3A/gLIANCADcDgAwgA0HgJmoiBCADQfgLahClHCADQeALaiIMIAQpAwA3AwAgA0HoC2oiDyADQegmaikDADcDACADQfALaiIHIANB8CZqKQMANwMAIANCADcD2AtB/67aAEEzENwaIUFByAAQ6SAiBEIANwM4IARBADoANCAEIA02AjAgBEIANwMoIAQgQjcDICAEQRhqIAcpAwA3AwAgBEEQaiAPKQMANwMAIARBCGogDCkDADcDACAEIAMpA9gLNwMAIARBQGtBADoAACADQQE2AuQmIAMgBDYC4CYgA0EBNgLcJkEYEOkgIgRCADcDCCAEIEE3AwAgA0HyJmpCADcBACAEQRBqQgA3AwAgA0IANwLsJiADIAQ2AugmIANBADYC2CYgCiADQdgmahD9GQsgCC0AIARAQQAgBigCABCKBCENQbKv2gBBIhDcGiFCIANB+MjfAEEBENwaNwOoDCADQgA3A7AMIANB4CZqIgQgA0GoDGoQpRwgA0GQDGoiDCAEKQMANwMAIANBmAxqIg8gA0HoJmopAwA3AwAgA0GgDGoiByADQfAmaikDADcDACADQgA3A4gMQdSv2gBBMRDcGiFBQcgAEOkgIgRCADcDOCAEQQA6ADQgBCANNgIwIARCADcDKCAEIEI3AyAgBEEYaiAHKQMANwMAIARBEGogDykDADcDACAEQQhqIAwpAwA3AwAgBCADKQOIDDcDACAEQUBrQQA6AAAgA0EBNgLkJiADIAQ2AuAmIANBATYC3CZBGBDpICIEQgA3AwggBCBBNwMAIANB8iZqQgA3AQAgBEEQakIANwMAIANCADcC7CYgAyAENgLoJiADQQA2AtgmIAogA0HYJmoQ/RkLIAgtACEEQEEAIAYoAgAQigQhDUGFsNoAQQoQ3BohQiADQfjI3wBBARDcGjcD2AwgA0IANwPgDCADQeAmaiIEIANB2AxqEKUcIANBwAxqIgwgBCkDADcDACADQcgMaiIPIANB6CZqKQMANwMAIANB0AxqIgcgA0HwJmopAwA3AwAgA0IANwO4DEGPsNoAQRkQ3BohQUHIABDpICIEQgA3AzggBEEAOgA0IAQgDTYCMCAEQgA3AyggBCBCNwMgIARBGGogBykDADcDACAEQRBqIA8pAwA3AwAgBEEIaiAMKQMANwMAIAQgAykDuAw3AwAgBEFAa0EAOgAAIANBATYC5CYgAyAENgLgJiADQQE2AtwmQRgQ6SAiBEIANwMIIAQgQTcDACADQfImakIANwEAIARBEGpCADcDACADQgA3AuwmIAMgBDYC6CYgA0EANgLYJiAKIANB2CZqEP0ZCyAILQAiBEBBACAGKAIAEIoEIQ1BqLDaAEENENwaIUIgA0H4yN8AQQEQ3Bo3A4gNIANCADcDkA0gA0HgJmoiBCADQYgNahClHCADQfAMaiIMIAQpAwA3AwAgA0H4DGoiDyADQegmaikDADcDACADQYANaiIHIANB8CZqKQMANwMAIANCADcD6AxBtbDaAEEcENwaIUFByAAQ6SAiBEIANwM4IARBADoANCAEIA02AjAgBEIANwMoIAQgQjcDICAEQRhqIAcpAwA3AwAgBEEQaiAPKQMANwMAIARBCGogDCkDADcDACAEIAMpA+gMNwMAIARBQGtBADoAACADQQE2AuQmIAMgBDYC4CYgA0EBNgLcJkEYEOkgIgRCADcDCCAEIEE3AwAgA0HyJmpCADcBACAEQRBqQgA3AwAgA0IANwLsJiADIAQ2AugmIANBADYC2CYgCiADQdgmahD9GQsgCC0AIwRAQQAgBigCABCKBCENQdGw2gBBCRDcGiFCIANB+MjfAEEBENwaNwO4DSADQgA3A8ANIANB4CZqIgQgA0G4DWoQpRwgA0GgDWoiDCAEKQMANwMAIANBqA1qIg8gA0HoJmopAwA3AwAgA0GwDWoiByADQfAmaikDADcDACADQgA3A5gNQdqw2gBBGBDcGiFBQcgAEOkgIgRCADcDOCAEQQA6ADQgBCANNgIwIARCADcDKCAEIEI3AyAgBEEYaiAHKQMANwMAIARBEGogDykDADcDACAEQQhqIAwpAwA3AwAgBCADKQOYDTcDACAEQUBrQQA6AAAgA0EBNgLkJiADIAQ2AuAmIANBATYC3CZBGBDpICIEQgA3AwggBCBBNwMAIANB8iZqQgA3AQAgBEEQakIANwMAIANCADcC7CYgAyAENgLoJiADQQA2AtgmIAogA0HYJmoQ/RkLIAgtACQEQEEAIAYoAgAQigQhDUHysNoAQQkQ3BohQiADQfjI3wBBARDcGjcD6A0gA0IANwPwDSADQeAmaiIEIANB6A1qEKUcIANB0A1qIgwgBCkDADcDACADQdgNaiIPIANB6CZqKQMANwMAIANB4A1qIgcgA0HwJmopAwA3AwAgA0IANwPIDUH7sNoAQRgQ3BohQUHIABDpICIEQgA3AzggBEEAOgA0IAQgDTYCMCAEQgA3AyggBCBCNwMgIARBGGogBykDADcDACAEQRBqIA8pAwA3AwAgBEEIaiAMKQMANwMAIAQgAykDyA03AwAgBEFAa0EAOgAAIANBATYC5CYgAyAENgLgJiADQQE2AtwmQRgQ6SAiBEIANwMIIAQgQTcDACADQfImakIANwEAIARBEGpCADcDACADQgA3AuwmIAMgBDYC6CYgA0EANgLYJiAKIANB2CZqEP0ZCyAILQAlBEBBACAGKAIAEIoEIQ1Bk7HaAEEdENwaIUIgA0H4yN8AQQEQ3Bo3A5gOIANCADcDoA4gA0HgJmoiBCADQZgOahClHCADQYAOaiIMIAQpAwA3AwAgA0GIDmoiDyADQegmaikDADcDACADQZAOaiIHIANB8CZqKQMANwMAIANCADcD+A1BsLHaAEEsENwaIUFByAAQ6SAiBEIANwM4IARBADoANCAEIA02AjAgBEIANwMoIAQgQjcDICAEQRhqIAcpAwA3AwAgBEEQaiAPKQMANwMAIARBCGogDCkDADcDACAEIAMpA/gNNwMAIARBQGtBADoAACADQQE2AuQmIAMgBDYC4CYgA0EBNgLcJkEYEOkgIgRCADcDCCAEIEE3AwAgA0HyJmpCADcBACAEQRBqQgA3AwAgA0IANwLsJiADIAQ2AugmIANBADYC2CYgCiADQdgmahD9GQsgCC0AJgRAQQAgBigCABCKBCENQdyx2gBBEBDcGiFCIANB+MjfAEEBENwaNwPIDiADQgA3A9AOIANB4CZqIgQgA0HIDmoQpRwgA0GwDmoiDCAEKQMANwMAIANBuA5qIg8gA0HoJmopAwA3AwAgA0HADmoiByADQfAmaikDADcDACADQgA3A6gOQeyx2gBBHxDcGiFBQcgAEOkgIgRCADcDOCAEQQA6ADQgBCANNgIwIARCADcDKCAEIEI3AyAgBEEYaiAHKQMANwMAIARBEGogDykDADcDACAEQQhqIAwpAwA3AwAgBCADKQOoDjcDACAEQUBrQQA6AAAgA0EBNgLkJiADIAQ2AuAmIANBATYC3CZBGBDpICIEQgA3AwggBCBBNwMAIANB8iZqQgA3AQAgBEEQakIANwMAIANCADcC7CYgAyAENgLoJiADQQA2AtgmIAogA0HYJmoQ/RkLIAgtACcEQEEAIAYoAgAQigQhDUGLstoAQQwQ3BohQiADQfjI3wBBARDcGjcD+A4gA0IANwOADyADQeAmaiIEIANB+A5qEKUcIANB4A5qIgwgBCkDADcDACADQegOaiIPIANB6CZqKQMANwMAIANB8A5qIgcgA0HwJmopAwA3AwAgA0IANwPYDkGXstoAQRsQ3BohQUHIABDpICIEQgA3AzggBEEAOgA0IAQgDTYCMCAEQgA3AyggBCBCNwMgIARBGGogBykDADcDACAEQRBqIA8pAwA3AwAgBEEIaiAMKQMANwMAIAQgAykD2A43AwAgBEFAa0EAOgAAIANBATYC5CYgAyAENgLgJiADQQE2AtwmQRgQ6SAiBEIANwMIIAQgQTcDACADQfImakIANwEAIARBEGpCADcDACADQgA3AuwmIAMgBDYC6CYgA0EANgLYJiAKIANB2CZqEP0ZCyAILQAoBEBBACAGKAIAEIoEIQ1BsrLaAEEIENwaIUIgA0H4yN8AQQEQ3Bo3A6gPIANCADcDsA8gA0HgJmoiBCADQagPahClHCADQZAPaiIMIAQpAwA3AwAgA0GYD2oiDyADQegmaikDADcDACADQaAPaiIHIANB8CZqKQMANwMAIANCADcDiA9BurLaAEEXENwaIUFByAAQ6SAiBEIANwM4IARBADoANCAEIA02AjAgBEIANwMoIAQgQjcDICAEQRhqIAcpAwA3AwAgBEEQaiAPKQMANwMAIARBCGogDCkDADcDACAEIAMpA4gPNwMAIARBQGtBADoAACADQQE2AuQmIAMgBDYC4CYgA0EBNgLcJkEYEOkgIgRCADcDCCAEIEE3AwAgA0HyJmpCADcBACAEQRBqQgA3AwAgA0IANwLsJiADIAQ2AugmIANBADYC2CYgCiADQdgmahD9GQsgCC0AKQRAQQAgBigCABCKBCENQdGy2gBBBBDcGiFCIANB+MjfAEEBENwaNwPYDyADQgA3A+APIANB4CZqIgQgA0HYD2oQpRwgA0HAD2oiDCAEKQMANwMAIANByA9qIg8gA0HoJmopAwA3AwAgA0HQD2oiByADQfAmaikDADcDACADQgA3A7gPQdWy2gBBExDcGiFBQcgAEOkgIgRCADcDOCAEQQA6ADQgBCANNgIwIARCADcDKCAEIEI3AyAgBEEYaiAHKQMANwMAIARBEGogDykDADcDACAEQQhqIAwpAwA3AwAgBCADKQO4DzcDACAEQUBrQQA6AAAgA0EBNgLkJiADIAQ2AuAmIANBATYC3CZBGBDpICIEQgA3AwggBCBBNwMAIANB8iZqQgA3AQAgBEEQakIANwMAIANCADcC7CYgAyAENgLoJiADQQA2AtgmIAogA0HYJmoQ/RkLIAgtACoEQEEAIAYoAgAQigQhDUHostoAQREQ3BohQiADQfjI3wBBARDcGjcDiBAgA0IANwOQECADQeAmaiIEIANBiBBqEKUcIANB8A9qIgwgBCkDADcDACADQfgPaiIPIANB6CZqKQMANwMAIANBgBBqIgcgA0HwJmopAwA3AwAgA0IANwPoD0H5stoAQSAQ3BohQUHIABDpICIEQgA3AzggBEEAOgA0IAQgDTYCMCAEQgA3AyggBCBCNwMgIARBGGogBykDADcDACAEQRBqIA8pAwA3AwAgBEEIaiAMKQMANwMAIAQgAykD6A83AwAgBEFAa0EAOgAAIANBATYC5CYgAyAENgLgJiADQQE2AtwmQRgQ6SAiBEIANwMIIAQgQTcDACADQfImakIANwEAIARBEGpCADcDACADQgA3AuwmIAMgBDYC6CYgA0EANgLYJiAKIANB2CZqEP0ZCyAILQArBEBBACAGKAIAEIoEIQ1BmbPaAEEJENwaIUIgA0H4yN8AQQEQ3Bo3A7gQIANCADcDwBAgA0HgJmoiBCADQbgQahClHCADQaAQaiIMIAQpAwA3AwAgA0GoEGoiDyADQegmaikDADcDACADQbAQaiIHIANB8CZqKQMANwMAIANCADcDmBBBorPaAEEYENwaIUFByAAQ6SAiBEIANwM4IARBADoANCAEIA02AjAgBEIANwMoIAQgQjcDICAEQRhqIAcpAwA3AwAgBEEQaiAPKQMANwMAIARBCGogDCkDADcDACAEIAMpA5gQNwMAIARBQGtBADoAACADQQE2AuQmIAMgBDYC4CYgA0EBNgLcJkEYEOkgIgRCADcDCCAEIEE3AwAgA0HyJmpCADcBACAEQRBqQgA3AwAgA0IANwLsJiADIAQ2AugmIANBADYC2CYgCiADQdgmahD9GQsgCC0ALARAQQAgBigCABCKBCENQbqz2gBBDxDcGiFCIANB+MjfAEEBENwaNwPoECADQgA3A/AQIANB4CZqIgQgA0HoEGoQpRwgA0HQEGoiDCAEKQMANwMAIANB2BBqIg8gA0HoJmopAwA3AwAgA0HgEGoiByADQfAmaikDADcDACADQgA3A8gQQcmz2gBBHhDcGiFBQcgAEOkgIgRCADcDOCAEQQA6ADQgBCANNgIwIARCADcDKCAEIEI3AyAgBEEYaiAHKQMANwMAIARBEGogDykDADcDACAEQQhqIAwpAwA3AwAgBCADKQPIEDcDACAEQUBrQQA6AAAgA0EBNgLkJiADIAQ2AuAmIANBATYC3CZBGBDpICIEQgA3AwggBCBBNwMAIANB8iZqQgA3AQAgBEEQakIANwMAIANCADcC7CYgAyAENgLoJiADQQA2AtgmIAogA0HYJmoQ/RkLIAgtAC0EQEEAIAYoAgAQigQhDUHns9oAQRwQ3BohQiADQfjI3wBBARDcGjcDmBEgA0IANwOgESADQeAmaiIEIANBmBFqEKUcIANBgBFqIgwgBCkDADcDACADQYgRaiIPIANB6CZqKQMANwMAIANBkBFqIgcgA0HwJmopAwA3AwAgA0IANwP4EEGDtNoAQSsQ3BohQUHIABDpICIEQgA3AzggBEEAOgA0IAQgDTYCMCAEQgA3AyggBCBCNwMgIARBGGogBykDADcDACAEQRBqIA8pAwA3AwAgBEEIaiAMKQMANwMAIAQgAykD+BA3AwAgBEFAa0EAOgAAIANBATYC5CYgAyAENgLgJiADQQE2AtwmQRgQ6SAiBEIANwMIIAQgQTcDACADQfImakIANwEAIARBEGpCADcDACADQgA3AuwmIAMgBDYC6CYgA0EANgLYJiAKIANB2CZqEP0ZCyAILQAuBEBBACAGKAIAEIoEIQ1BrrTaAEEbENwaIUIgA0H4yN8AQQEQ3Bo3A8gRIANCADcD0BEgA0HgJmoiBCADQcgRahClHCADQbARaiIMIAQpAwA3AwAgA0G4EWoiDyADQegmaikDADcDACADQcARaiIHIANB8CZqKQMANwMAIANCADcDqBFBybTaAEEqENwaIUFByAAQ6SAiBEIANwM4IARBADoANCAEIA02AjAgBEIANwMoIAQgQjcDICAEQRhqIAcpAwA3AwAgBEEQaiAPKQMANwMAIARBCGogDCkDADcDACAEIAMpA6gRNwMAIARBQGtBADoAACADQQE2AuQmIAMgBDYC4CYgA0EBNgLcJkEYEOkgIgRCADcDCCAEIEE3AwAgA0HyJmpCADcBACAEQRBqQgA3AwAgA0IANwLsJiADIAQ2AugmIANBADYC2CYgCiADQdgmahD9GQsgCC0ALwRAQQAgBigCABCKBCENQfO02gBBCxDcGiFCIANB+MjfAEEBENwaNwP4ESADQgA3A4ASIANB4CZqIgQgA0H4EWoQpRwgA0HgEWoiDCAEKQMANwMAIANB6BFqIg8gA0HoJmopAwA3AwAgA0HwEWoiByADQfAmaikDADcDACADQgA3A9gRQf602gBBGhDcGiFBQcgAEOkgIgRCADcDOCAEQQA6ADQgBCANNgIwIARCADcDKCAEIEI3AyAgBEEYaiAHKQMANwMAIARBEGogDykDADcDACAEQQhqIAwpAwA3AwAgBCADKQPYETcDACAEQUBrQQA6AAAgA0EBNgLkJiADIAQ2AuAmIANBATYC3CZBGBDpICIEQgA3AwggBCBBNwMAIANB8iZqQgA3AQAgBEEQakIANwMAIANCADcC7CYgAyAENgLoJiADQQA2AtgmIAogA0HYJmoQ/RkLIAgtADAEQEEAIAYoAgAQigQhDUGYtdoAQRgQ3BohQiADQfjI3wBBARDcGjcDqBIgA0IANwOwEiADQeAmaiIEIANBqBJqEKUcIANBkBJqIgwgBCkDADcDACADQZgSaiIPIANB6CZqKQMANwMAIANBoBJqIgcgA0HwJmopAwA3AwAgA0IANwOIEkGwtdoAQScQ3BohQUHIABDpICIEQgA3AzggBEEAOgA0IAQgDTYCMCAEQgA3AyggBCBCNwMgIARBGGogBykDADcDACAEQRBqIA8pAwA3AwAgBEEIaiAMKQMANwMAIAQgAykDiBI3AwAgBEFAa0EAOgAAIANBATYC5CYgAyAENgLgJiADQQE2AtwmQRgQ6SAiBEIANwMIIAQgQTcDACADQfImakIANwEAIARBEGpCADcDACADQgA3AuwmIAMgBDYC6CYgA0EANgLYJiAKIANB2CZqEP0ZCyAILQAxBEBBACAGKAIAEIoEIQ1B17XaAEEZENwaIUIgA0H4yN8AQQEQ3Bo3A9gSIANCADcD4BIgA0HgJmoiBCADQdgSahClHCADQcASaiIMIAQpAwA3AwAgA0HIEmoiDyADQegmaikDADcDACADQdASaiIHIANB8CZqKQMANwMAIANCADcDuBJB8LXaAEEoENwaIUFByAAQ6SAiBEIANwM4IARBADoANCAEIA02AjAgBEIANwMoIAQgQjcDICAEQRhqIAcpAwA3AwAgBEEQaiAPKQMANwMAIARBCGogDCkDADcDACAEIAMpA7gSNwMAIARBQGtBADoAACADQQE2AuQmIAMgBDYC4CYgA0EBNgLcJkEYEOkgIgRCADcDCCAEIEE3AwAgA0HyJmpCADcBACAEQRBqQgA3AwAgA0IANwLsJiADIAQ2AugmIANBADYC2CYgCiADQdgmahD9GQsgCC0AMgRAQQAgBigCABCKBCENQZi22gBBExDcGiFCIANB+MjfAEEBENwaNwOIEyADQgA3A5ATIANB4CZqIgQgA0GIE2oQpRwgA0HwEmoiDCAEKQMANwMAIANB+BJqIg8gA0HoJmopAwA3AwAgA0GAE2oiByADQfAmaikDADcDACADQgA3A+gSQau22gBBIhDcGiFBQcgAEOkgIgRCADcDOCAEQQA6ADQgBCANNgIwIARCADcDKCAEIEI3AyAgBEEYaiAHKQMANwMAIARBEGogDykDADcDACAEQQhqIAwpAwA3AwAgBCADKQPoEjcDACAEQUBrQQA6AAAgA0EBNgLkJiADIAQ2AuAmIANBATYC3CZBGBDpICIEQgA3AwggBCBBNwMAIANB8iZqQgA3AQAgBEEQakIANwMAIANCADcC7CYgAyAENgLoJiADQQA2AtgmIAogA0HYJmoQ/RkLIAgtADMEQEEAIAYoAgAQigQhDUHNttoAQRIQ3BohQiADQfjI3wBBARDcGjcDuBMgA0IANwPAEyADQeAmaiIEIANBuBNqEKUcIANBoBNqIgwgBCkDADcDACADQagTaiIPIANB6CZqKQMANwMAIANBsBNqIgcgA0HwJmopAwA3AwAgA0IANwOYE0HfttoAQSEQ3BohQUHIABDpICIEQgA3AzggBEEAOgA0IAQgDTYCMCAEQgA3AyggBCBCNwMgIARBGGogBykDADcDACAEQRBqIA8pAwA3AwAgBEEIaiAMKQMANwMAIAQgAykDmBM3AwAgBEFAa0EAOgAAIANBATYC5CYgAyAENgLgJiADQQE2AtwmQRgQ6SAiBEIANwMIIAQgQTcDACADQfImakIANwEAIARBEGpCADcDACADQgA3AuwmIAMgBDYC6CYgA0EANgLYJiAKIANB2CZqEP0ZCyAILQA0BEBBACAGKAIAEIoEIQ1BgLfaAEEYENwaIUIgA0H4yN8AQQEQ3Bo3A+gTIANCADcD8BMgA0HgJmoiBCADQegTahClHCADQdATaiIMIAQpAwA3AwAgA0HYE2oiDyADQegmaikDADcDACADQeATaiIHIANB8CZqKQMANwMAIANCADcDyBNBmLfaAEEnENwaIUFByAAQ6SAiBEIANwM4IARBADoANCAEIA02AjAgBEIANwMoIAQgQjcDICAEQRhqIAcpAwA3AwAgBEEQaiAPKQMANwMAIARBCGogDCkDADcDACAEIAMpA8gTNwMAIARBQGtBADoAACADQQE2AuQmIAMgBDYC4CYgA0EBNgLcJkEYEOkgIgRCADcDCCAEIEE3AwAgA0HyJmpCADcBACAEQRBqQgA3AwAgA0IANwLsJiADIAQ2AugmIANBADYC2CYgCiADQdgmahD9GQsgCC0ANQRAQQAgBigCABCKBCENQb+32gBBHhDcGiFCIANB+MjfAEEBENwaNwOYFCADQgA3A6AUIANB4CZqIgQgA0GYFGoQpRwgA0GAFGoiDCAEKQMANwMAIANBiBRqIg8gA0HoJmopAwA3AwAgA0GQFGoiByADQfAmaikDADcDACADQgA3A/gTQd232gBBLRDcGiFBQcgAEOkgIgRCADcDOCAEQQA6ADQgBCANNgIwIARCADcDKCAEIEI3AyAgBEEYaiAHKQMANwMAIARBEGogDykDADcDACAEQQhqIAwpAwA3AwAgBCADKQP4EzcDACAEQUBrQQA6AAAgA0EBNgLkJiADIAQ2AuAmIANBATYC3CZBGBDpICIEQgA3AwggBCBBNwMAIANB8iZqQgA3AQAgBEEQakIANwMAIANCADcC7CYgAyAENgLoJiADQQA2AtgmIAogA0HYJmoQ/RkLIAgtADYEQEEAIAYoAgAQigQhDUGKuNoAQQQQ3BohQiADQfjI3wBBARDcGjcDyBQgA0IANwPQFCADQeAmaiIEIANByBRqEKUcIANBsBRqIgwgBCkDADcDACADQbgUaiIPIANB6CZqKQMANwMAIANBwBRqIgcgA0HwJmopAwA3AwAgA0IANwOoFEGOuNoAQRMQ3BohQUHIABDpICIEQgA3AzggBEEAOgA0IAQgDTYCMCAEQgA3AyggBCBCNwMgIARBGGogBykDADcDACAEQRBqIA8pAwA3AwAgBEEIaiAMKQMANwMAIAQgAykDqBQ3AwAgBEFAa0EAOgAAIANBATYC5CYgAyAENgLgJiADQQE2AtwmQRgQ6SAiBEIANwMIIAQgQTcDACADQfImakIANwEAIARBEGpCADcDACADQgA3AuwmIAMgBDYC6CYgA0EANgLYJiAKIANB2CZqEP0ZCyAILQA3BEBBACAGKAIAEIoEIQ1BobjaAEEQENwaIUIgA0H4yN8AQQEQ3Bo3A/gUIANCADcDgBUgA0HgJmoiBCADQfgUahClHCADQeAUaiIMIAQpAwA3AwAgA0HoFGoiDyADQegmaikDADcDACADQfAUaiIHIANB8CZqKQMANwMAIANCADcD2BRBsbjaAEEfENwaIUFByAAQ6SAiBEIANwM4IARBADoANCAEIA02AjAgBEIANwMoIAQgQjcDICAEQRhqIAcpAwA3AwAgBEEQaiAPKQMANwMAIARBCGogDCkDADcDACAEIAMpA9gUNwMAIARBQGtBADoAACADQQE2AuQmIAMgBDYC4CYgA0EBNgLcJkEYEOkgIgRCADcDCCAEIEE3AwAgA0HyJmpCADcBACAEQRBqQgA3AwAgA0IANwLsJiADIAQ2AugmIANBADYC2CYgCiADQdgmahD9GQsgCC0AOARAQQAgBigCABCKBCENQdC42gBBEhDcGiFCIANB+MjfAEEBENwaNwOoFSADQgA3A7AVIANB4CZqIgQgA0GoFWoQpRwgA0GQFWoiDCAEKQMANwMAIANBmBVqIg8gA0HoJmopAwA3AwAgA0GgFWoiByADQfAmaikDADcDACADQgA3A4gVQeK42gBBIRDcGiFBQcgAEOkgIgRCADcDOCAEQQA6ADQgBCANNgIwIARCADcDKCAEIEI3AyAgBEEYaiAHKQMANwMAIARBEGogDykDADcDACAEQQhqIAwpAwA3AwAgBCADKQOIFTcDACAEQUBrQQA6AAAgA0EBNgLkJiADIAQ2AuAmIANBATYC3CZBGBDpICIEQgA3AwggBCBBNwMAIANB8iZqQgA3AQAgBEEQakIANwMAIANCADcC7CYgAyAENgLoJiADQQA2AtgmIAogA0HYJmoQ/RkLIAgtADkEQEEAIAYoAgAQigQhDUGDudoAQRQQ3BohQiADQfjI3wBBARDcGjcD2BUgA0IANwPgFSADQeAmaiIEIANB2BVqEKUcIANBwBVqIgwgBCkDADcDACADQcgVaiIPIANB6CZqKQMANwMAIANB0BVqIgcgA0HwJmopAwA3AwAgA0IANwO4FUGXudoAQSMQ3BohQUHIABDpICIEQgA3AzggBEEAOgA0IAQgDTYCMCAEQgA3AyggBCBCNwMgIARBGGogBykDADcDACAEQRBqIA8pAwA3AwAgBEEIaiAMKQMANwMAIAQgAykDuBU3AwAgBEFAa0EAOgAAIANBATYC5CYgAyAENgLgJiADQQE2AtwmQRgQ6SAiBEIANwMIIAQgQTcDACADQfImakIANwEAIARBEGpCADcDACADQgA3AuwmIAMgBDYC6CYgA0EANgLYJiAKIANB2CZqEP0ZCyAILQA6BEBBACAGKAIAEIoEIQ1BurnaAEEbENwaIUIgA0H4yN8AQQEQ3Bo3A4gWIANCADcDkBYgA0HgJmoiBCADQYgWahClHCADQfAVaiIMIAQpAwA3AwAgA0H4FWoiDyADQegmaikDADcDACADQYAWaiIHIANB8CZqKQMANwMAIANCADcD6BVB1bnaAEEqENwaIUFByAAQ6SAiBEIANwM4IARBADoANCAEIA02AjAgBEIANwMoIAQgQjcDICAEQRhqIAcpAwA3AwAgBEEQaiAPKQMANwMAIARBCGogDCkDADcDACAEIAMpA+gVNwMAIARBQGtBADoAACADQQE2AuQmIAMgBDYC4CYgA0EBNgLcJkEYEOkgIgRCADcDCCAEIEE3AwAgA0HyJmpCADcBACAEQRBqQgA3AwAgA0IANwLsJiADIAQ2AugmIANBADYC2CYgCiADQdgmahD9GQsgCC0AOwRAQQAgBigCABCKBCENQf+52gBBDhDcGiFCIANB+MjfAEEBENwaNwO4FiADQgA3A8AWIANB4CZqIgQgA0G4FmoQpRwgA0GgFmoiDCAEKQMANwMAIANBqBZqIg8gA0HoJmopAwA3AwAgA0GwFmoiByADQfAmaikDADcDACADQgA3A5gWQY262gBBHRDcGiFBQcgAEOkgIgRCADcDOCAEQQA6ADQgBCANNgIwIARCADcDKCAEIEI3AyAgBEEYaiAHKQMANwMAIARBEGogDykDADcDACAEQQhqIAwpAwA3AwAgBCADKQOYFjcDACAEQUBrQQA6AAAgA0EBNgLkJiADIAQ2AuAmIANBATYC3CZBGBDpICIEQgA3AwggBCBBNwMAIANB8iZqQgA3AQAgBEEQakIANwMAIANCADcC7CYgAyAENgLoJiADQQA2AtgmIAogA0HYJmoQ/RkLIAgtADwEQEEAIAYoAgAQigQhDUGqutoAQRQQ3BohQiADQfjI3wBBARDcGjcD6BYgA0IANwPwFiADQeAmaiIEIANB6BZqEKUcIANB0BZqIgwgBCkDADcDACADQdgWaiIPIANB6CZqKQMANwMAIANB4BZqIgcgA0HwJmopAwA3AwAgA0IANwPIFkG+utoAQSMQ3BohQUHIABDpICIEQgA3AzggBEEAOgA0IAQgDTYCMCAEQgA3AyggBCBCNwMgIARBGGogBykDADcDACAEQRBqIA8pAwA3AwAgBEEIaiAMKQMANwMAIAQgAykDyBY3AwAgBEFAa0EAOgAAIANBATYC5CYgAyAENgLgJiADQQE2AtwmQRgQ6SAiBEIANwMIIAQgQTcDACADQfImakIANwEAIARBEGpCADcDACADQgA3AuwmIAMgBDYC6CYgA0EANgLYJiAKIANB2CZqEP0ZCyAILQA9BEBBACAGKAIAEIoEIQ1B4braAEEaENwaIUIgA0H4yN8AQQEQ3Bo3A5gXIANCADcDoBcgA0HgJmoiBCADQZgXahClHCADQYAXaiIMIAQpAwA3AwAgA0GIF2oiDyADQegmaikDADcDACADQZAXaiIHIANB8CZqKQMANwMAIANCADcD+BZB+7raAEEpENwaIUFByAAQ6SAiBEIANwM4IARBADoANCAEIA02AjAgBEIANwMoIAQgQjcDICAEQRhqIAcpAwA3AwAgBEEQaiAPKQMANwMAIARBCGogDCkDADcDACAEIAMpA/gWNwMAIARBQGtBADoAACADQQE2AuQmIAMgBDYC4CYgA0EBNgLcJkEYEOkgIgRCADcDCCAEIEE3AwAgA0HyJmpCADcBACAEQRBqQgA3AwAgA0IANwLsJiADIAQ2AugmIANBADYC2CYgCiADQdgmahD9GQsgCC0APgRAQQAgBigCABCKBCENQaS72gBBIBDcGiFCIANB+MjfAEEBENwaNwPIFyADQgA3A9AXIANB4CZqIgQgA0HIF2oQpRwgA0GwF2oiDCAEKQMANwMAIANBuBdqIg8gA0HoJmopAwA3AwAgA0HAF2oiByADQfAmaikDADcDACADQgA3A6gXQcS72gBBLxDcGiFBQcgAEOkgIgRCADcDOCAEQQA6ADQgBCANNgIwIARCADcDKCAEIEI3AyAgBEEYaiAHKQMANwMAIARBEGogDykDADcDACAEQQhqIAwpAwA3AwAgBCADKQOoFzcDACAEQUBrQQA6AAAgA0EBNgLkJiADIAQ2AuAmIANBATYC3CZBGBDpICIEQgA3AwggBCBBNwMAIANB8iZqQgA3AQAgBEEQakIANwMAIANCADcC7CYgAyAENgLoJiADQQA2AtgmIAogA0HYJmoQ/RkLIAgtAD8EQEEAIAYoAgAQigQhDUHzu9oAQRwQ3BohQiADQfjI3wBBARDcGjcD+BcgA0IANwOAGCADQeAmaiIEIANB+BdqEKUcIANB4BdqIgwgBCkDADcDACADQegXaiIPIANB6CZqKQMANwMAIANB8BdqIgcgA0HwJmopAwA3AwAgA0IANwPYF0GPvNoAQSsQ3BohQUHIABDpICIEQgA3AzggBEEAOgA0IAQgDTYCMCAEQgA3AyggBCBCNwMgIARBGGogBykDADcDACAEQRBqIA8pAwA3AwAgBEEIaiAMKQMANwMAIAQgAykD2Bc3AwAgBEFAa0EAOgAAIANBATYC5CYgAyAENgLgJiADQQE2AtwmQRgQ6SAiBEIANwMIIAQgQTcDACADQfImakIANwEAIARBEGpCADcDACADQgA3AuwmIAMgBDYC6CYgA0EANgLYJiAKIANB2CZqEP0ZCyAILQBABEBBACAGKAIAEIoEIQ1BurzaAEEQENwaIUIgA0H4yN8AQQEQ3Bo3A6gYIANCADcDsBggA0HgJmoiBCADQagYahClHCADQZAYaiIMIAQpAwA3AwAgA0GYGGoiDyADQegmaikDADcDACADQaAYaiIHIANB8CZqKQMANwMAIANCADcDiBhByrzaAEEfENwaIUFByAAQ6SAiBEIANwM4IARBADoANCAEIA02AjAgBEIANwMoIAQgQjcDICAEQRhqIAcpAwA3AwAgBEEQaiAPKQMANwMAIARBCGogDCkDADcDACAEIAMpA4gYNwMAIARBQGtBADoAACADQQE2AuQmIAMgBDYC4CYgA0EBNgLcJkEYEOkgIgRCADcDCCAEIEE3AwAgA0HyJmpCADcBACAEQRBqQgA3AwAgA0IANwLsJiADIAQ2AugmIANBADYC2CYgCiADQdgmahD9GQsgCC0AQQRAQQAgBigCABCKBCENQem82gBBBBDcGiFCIANB+MjfAEEBENwaNwPYGCADQgA3A+AYIANB4CZqIgQgA0HYGGoQpRwgA0HAGGoiDCAEKQMANwMAIANByBhqIg8gA0HoJmopAwA3AwAgA0HQGGoiByADQfAmaikDADcDACADQgA3A7gYQe282gBBExDcGiFBQcgAEOkgIgRCADcDOCAE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QQA6AKkCIAMgAS0AjgM6AKgCIAMgAS0AngM6ALgCIAMgASkBggM3AJwCIAMgASgBigM2AKQCIAMgASkDkAM3AKoCIAMgASgCmAM2ALICIAMgAS8BnAM7ALYCIANBsQVqIAFBggNqIgVBFWopAAA3AAAgA0GsBWogBUEQaikBADcCACADQaQFaiAFQQhqKQEANwIAIAMgBSkBADcCnAUgBiADQZwCahDJCCADIAE2ApgFIANByAJqIgogARCvAyADKALIAiEOAkAgAy0A9AIiBUEGRwRAIANB4AFqIhNBBHIgCkEEckEoEPsGGiADQY8CaiADQfcCai0AADoAACADIAMvAPUCOwCNAiADIAU6AIwCIAMgDjYC4AEgA0GYBWoQoyYgAiEOQQAhBiMAQaAJayIEJAAgAUEoaiEJAkAgAS0A+AJBAkcNACAJEOMNIgJFDQAgAigCAEEURw0AIAItAARBBEcNACABLQD4AkECRw0AIAEtAIIDIQUgBEGQAWoiAiABENECIARBAToAiwggBCABKQCDAzcAjAggBCABKQCLAzcAlAggBCABKQCTAzcAnAggBCABKACbAzYApAggBEGQAmogBEGLCGoQyQggBEEoaiACEPABIAQgBCgCLCIcNgKMCSAEIAQoAigiDzYCiAkgDwRAIARBiAlqEJ0gIAIQhBBBACEcDAELIARBuARqIgIgBEGQAWpBqAMQ+wYaIAEQhBAgASACQagDEPsGIQIgBCAFOgDACCAEIAIpAIMDNwDBCCAEIAIpAIsDNwDJCCAEIAIpAJMDNwDRCCAEIAIoAJsDNgDZCCABQYABaiAEQcAIahDJCAsgBEKAgICAgAE3AjQgAUGAAWohKiABQYIDaiEfIAFBLGohDyAEQewIaiEmIARBwARqIRggBEHMBWohJyAEQdwEaiErIARBxARqISUgBEHECGohICAEQbgEakEEciEVIARB2ARqIShBCCEpAkACQAJAAkACQANAAkAgBCAUNgI8IAkQ4w0iAkUEQCABKALYAiECIARBADoAuAQgBCACIAIgBEG4BGoQgRU2ApQBIARBATYCkAEgBEGQAWoQkCQMAQsgBEEANgKQASAEIAI2ApQBIARBkAFqEJAkAkAgCRDjDSICRQ0AIAIoAgBBFEcNACACLQAEQQ5GDQELIAkQ4w0iAgRAIAIoAgBBIkYNAQsgCRDeICEMAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAJEOMNIgIEQCACKAIAQQ1GDQELIARBuARqIAEQ8wUgBCgCuAQNASAEQegHaiIdIChBCGopAwA3AwAgBCAoKQMANwPgByAEKQPQBCEtIAQpA8gEIS4gBCkDwAQhLEEEIRcgCRDjDSICDQIMCwsgFSAPKQIANwIAIAEoAighAiABQSU2AiggASABKQNANwN4IBVBCGoiFyAPQQhqIiEpAgA3AgAgFUEQaiIiIA9BEGoiIygCADYCACAEIAI2ArgEIARBuARqEMcKIAkQ3iAhBQJAIAkQ4w0iAgRAIAIoAgBBB0YNAQsgBEHABGogCRCWCyAEQRBqIAkQuBQgBEGo/t8ANgK8BCAEQTQ6ALgEIAQoAhAgBCgCFCAEQbgEahCBFSECIAkQ4w0iBUUNECAFKAIAQSRHDRAgASABKQNANwN4IAEoAiggAUElNgIoQSRHDQUgASABKAIsEIYMDBALIBUgDykCADcCACABKAIoIQIgAUElNgIoIAEgASkDQDcDeCAXICEpAgA3AgAgIiAjKAIANgIAIAQgAjYCuAQgBEG4BGoQxwogASgCfCEMIARBIGogARCtBiAEKAIkIQcgBCgCIARAIAchAgwQCyAEIAc2ApABIAkQ4w0iAgRAIAIoAgBBDkYNAwsgGCAJEJYLIARBGGogCRC4FCAEQbDh3wA2ArwEIARBNDoAuAQgBCgCGCAEKAIcIARBuARqEIEVIQIgCRDjDSIFRQ0JIAUoAgBBJEcNCSABIAEpA0A3A3ggASgCKCABQSU2AihBJEcNAyABIAEoAiwQhgwMCQsgBCgCvAQhAgwOCyACKAIAQRVHDQggAi0ABA0IIBUgDykCADcCACABKAIoIQIgAUElNgIoIAEgASkDQDcDeCAVQQhqIA9BCGopAgA3AgAgFUEQaiAPQRBqKAIANgIAIAQgAjYCuAQgBEG4BGoiBxDHCiAEQQA7AJoIIAQgAS0AkAM6AJkIIAQgASkBggM3AIsIIAQgASgBigM2AJMIIAQgAS8BjgM7AJcIIAQgASkAkwM3AJwIIAQgASgAmwM2AKQIICBBFWogH0EVaikAADcAACAgQRBqIB9BEGopAQA3AQAgIEEIaiAfQQhqKQEANwEAICAgHykBADcBACAqIARBiwhqEMkIIAQgATYCwAggCRDeICEFIAkQ4w0iAkUEQCABKALYAiECIARBADoAuAQgAiACIAcQgRUhAgwHCwJAAn8CQAJAAkACQAJAAkACQCACKAIAIgJBIWsOBAUBAQIACyACQQ1GDQIgAkEbRg0DCyAEQQhqIAkQuBQgBCgCDCECIAQoAgggBEHWADoAuAQgAiAEQbgEahCBFSECIAkQ4w0iBUUNDSAFKAIAQSRHDQ0gASABKQNANwN4IAEoAiggAUElNgIoQSRHDQsgASABKAIsEIYMDA0LIAEgASkDQDcDeCABKAIoIAFBJTYCKEEkRgRAIAEoAiwhAgwNC0Hl7OAAQShBoP/fABD0FwALIARBuARqIgcgARCEBCAEKAK8BCECIAQoArgEIgZBAkYNCyAmIBgpAgA3AgAgJkEIaiAYQQhqKAIANgIAIAQgAjYC6AggBCAGNgLkCCAGQQFxDQIgASgCfCECIARB1QA6ALgEIAUgAiACIAVLGyAFIAIgAiAFSRsgBxCBFSECIAkQ4w0iBUUNCiAFKAIAQSRHDQogASABKQNANwN4IAEoAiggAUElNgIoQSRHDQggASABKAIsEIYMDAoLIARBuARqIAEQxgIgBCgCvAQhBSAEKAK4BCICQQdHBEAgBEG4CGogGEEQaikDADcDACAEQbAIaiAYQQhqKQMANwMAIAQgGCkDADcDqAhBAAwDCyAFIQIMCgsgBEG4BGogARCgCyAEKAK4BCEGIAQoAsgFIhBBgYCAgHhGDQIgBEGQCWoiESAlQQhqKQIANwMAIARBmAlqIhcgJUEQaikCADcDACAEICUpAgA3A4gJIAQoAsAEIQUgBCgCvAQhAiAEQZABaiArQewAEPsGGiAEQYAJaiIeICdBCGooAgA2AgAgBCAnKQIANwP4CCAQQYCAgIB4RgRAIARBuAhqIBcpAwA3AwAgBEGwCGogESkDADcDACAEIAQpA4gJNwOoCEEDDAILQaABQQgQqyAiByAFNgIIIAcgAjYCBCAHIAY2AgAgByAEKQOICTcCDCAHQRRqIBEpAwA3AgAgB0EcaiAXKQMANwIAIAdBJGogBEGQAWpB7AAQ+wYaIAcgEDYCkAEgByAEKQP4CDcClAEgB0GcAWogHigCADYCACAHIQYgCyECIBIhBUECDAELIAQgBCkC8Ag3A6gIIAQoAuwIIQVBAQshFyAEQfgHaiAEQbAIaikDADcDACAEQYAIaiAEQbgIaikDADcDACAEIAQpA6gINwPwByAEQcAIahCjJiACIQsgBSESIAYhBwwKCyAGIQIMBgsgBSAMIAUgDEkbIQIgBSAMIAUgDEsbIQUgFSAPKQIANwIAIAEoAighDCABQSU2AiggASABKQNANwN4IBcgISkCADcCACAiICMoAgA2AgAgBCAMNgK4BCAEQbgEahDHCkEFIRcMCQtB5ezgAEEoQZj+3wAQ9BcAC0Hl7OAAQShBwP7fABD0FwALQeXs4ABBKEGw/98AEPQXAAtB5ezgAEEoQcD/3wAQ9BcACyAEQeQIahCRJAsgBEHACGoQoyYgLFAEQCAuEPkaDAcLICwgLRCLKwwGCyAEQZABahC4KQwFCyAQIQIgESEFCyAEQcgAaiAdKQMANwMAIARB2ABqIARB+AdqKQMANwMAIARB4ABqIARBgAhqKQMANwMAIAQgBCkD4Ac3A0AgBCAEKQPwBzcDUCAMIAEoAnwiECAMIBBJGyEdIAwgECAMIBBLGyEeIAUhESACIRALIARBiAFqIiEgBEHgAGopAwA3AwAgBEGAAWoiIiAEQdgAaikDADcDACAEQfAAaiIjIARByABqKQMANwMAIAQgBCkDUDcDeCAEIAQpA0A3A2ggBCgCNCAURgRAIARBNGoQ1xcgBCgCOCEpCyAkIClqIgwgFzYCACAMQQxqIAU2AgAgDEEIaiACNgIAIAxBBGogBzYCACAMQRhqICIpAwA3AwAgDEEQaiAEKQN4NwMAICEpAwAhMCAMQUBrIC03AwAgDEE4aiAuNwMAIAxBMGogLDcDACAMQSxqIB42AgAgDEEoaiAdNgIAIAxBIGogMDcDACAMQcgAaiAEKQNoNwMAIAxB0ABqICMpAwA3AwAgJEHYAGohJCAUQQFqIRQMAQsLQQAhFAJAIAkQ4w0iAkUNACACKAIAQRRHDQAgAi0ABEEORw0AIAEoAighAiABQSU2AiggASABKQNANwN4IARBxARqIA9BCGopAgA3AgAgBEHMBGogD0EQaigCADYCACAEIA8pAgA3ArwEIAQgAjYCuAQgBEG4BGoQxwpBASEUCwJ/QQEgCRDjDSICRQ0AGkEBIAIoAgBBIkcNABogASgCKCECIAFBJTYCKCABIAEpA0A3A3ggBEHEBGogD0EIaikCADcCACAEQcwEaiAPQRBqKAIANgIAIAQgDykCADcCvAQgBCACNgK4BCAEQbgEahDHCkEACwJAIAEtAJoDQQFxRQ0AIAkQ4w0iAkUNACACKAIAQRRHDQAgAi0ABEEGRw0AIAEoAighAiABQSU2AiggASABKQNANwN4IARBxARqIA9BCGopAgA3AgAgBEHMBGogD0EQaigCADYCACAEIA8pAgA3ArwEIAQgAjYCuAQgBEG4BGoQxwoMAgtFDQEgBEHEBGogCRCWCyAEIAkQuBQgBEETNgLABCAEQcCC4AA2ArwEIARBMDoAuAQgBCgCACAEKAIEIARBuARqEIEVIQIgCRDjDSIFRQ0AIAUoAgBBJEcNACABIAEpA0A3A3ggASgCKCABQSU2AihBJEcNAyABIAEoAiwQhgwLIApBgICAgHg2AjwgCiACNgIAIARBNGoQjCcgHBDZKCATEMYXDAELIAogBCkCNDcCPCAKQcQAaiAEQTxqKAIANgIAIAEoAnwhAiAKIBNBMBD7BiIFIBQ6AEggBSAcNgI4IAUgDiACIAIgDkkbNgI0IAUgDiACIAIgDksbNgIwCyAEQaAJaiQADAELQeXs4ABBKEHUguAAEPQXAAsgAygChAMiE0GAgICAeEYEQCADKALIAiEODAILIAMoAswCIRAgAygCyAIhESADQegFaiADQdACakE0EPsGGiADQegEaiADQZADaikDADcDACADIAMpA4gDNwPgBAwDCyADQZgFahCjJgsgAEGBgICAeDYCkAEgACAONgIADAILIAEoAighBSABQSU2AiggASABKQNANwN4IANB1AJqIA1BCGopAgA3AgAgA0HcAmogDUEQaigCADYCACADIA0pAgA3AswCIAMgBTYCyAIgA0HIAmoQxwogAiABKAJ8IgUgAiAFSRshESACIAUgAiAFSxshEEGAgICAeCETCyADIBA2AoQBIANBiAFqIANB6AVqQTQQ+wYaIANByAFqIANB6ARqIgkpAwA3AwAgAyADKQPgBDcDwAEgAyARNgKAASADIBM2ArwBIANBADYC3AEgA0KAgICAgAE3AtQBIANBBzoAlAICQAJAIBNBgICAgHhGDQAgAy0AyAFBAUcNAEEHIQZBACEOIAMoAuQBIQoMAQsgA0HQAmohGSADQcgCakEEciEHIANBzAJqIQ8g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QShB4P/fABD0FwALIANBwAZqJAALyEsCKH8FfiMAQcAGayIDJAACQCABQShqIggQyg0iBUUEQCABKAKAAiEBIANBADoAyAIgASABIANByAJqEIEVIQEgAEGBgICAeDYCkAEgACABNgIADAELAkACfwJAAkAgBSgCAEEkRgRAIAEgASkD4AI3A5gDIAEoAsgCIAFBJTYCyAJBJEYNAUHl7OAAQShB0P/fABD0FwALIAgQwyAhGyADQdQCaiABQdQCaikCADcCACADQdwCaiABQdwCaigCADYCACABKALIAiEFIAFBJTYCyAIgASABKQPgAjcDmAMgAyABKQLMAjcCzAIgAyAFNgLIAiAFQRRGDQEgBUEhRw0DQQAMAgsgASgCzAIhASAAQYGAgIB4NgKQASAAIAE2AgAMAwsgAy0AzAJBBEcNAUEBCyEFIAFBzAJqIQ0gA0HIAmoQxgogA0EAOgBMIAMgBToAVyADIAEtALYCOgBLIAMgASkBqgI3AD8gAyABQbICaiIFKAEANgBHIAMgASkDuAI3AE0gAyABLwHAAjsAVSADIAEoAMMCNgBYIANB9QBqIAFBvwJqKQAANwAAIANB8ABqIAFBugJqKQEANwIAIANB6ABqIAUpAQA3AgAgAyABKQGqAjcCYCAIIANBP2oQ0gggAyABNgJcAkACQAJAIAgQyg0iBQRAIAUoAgBBIkYNAQsgA0EAOgCpAiADIAEtALYCOgCoAiADIAEtAMYCOgC4AiADIAEpAaoCNwCcAiADIAEoAbICNgCkAiADIAEpA7gCNwCqAiADIAEoAsACNgCyAiADIAEvAcQCOwC2AiADQbEFaiABQaoCaiIFQRVqKQAANwAAIANBrAVqIAVBEGopAQA3AgAgA0GkBWogBUEIaikBADcCACADIAUpAQA3ApwFIAggA0GcAmoQ0gggAyABNgKYBSADQcgCaiIKIAEQrgMgAygCyAIhDgJAIAMtAPQCIgVBBkcEQCADQeABaiITQQRyIApBBHJBKBD7BhogA0GPAmogA0H3AmotAAA6AAAgAyADLwD1AjsAjQIgAyAFOgCMAiADIA42AuABIANBmAVqEIclIAIhDiMAQZAJayIEJAAgAUEoaiEJAkAgAS0AoAJBAkcNACAJEMoNIgJFDQAgAigCAEEURw0AIAItAARBBEcNACABLQCgAkEC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BSACQbgFaiIDEMcKIAJBADYCVCACQoCAgICAATcCTCABQYABaiEnIAFBLGohESACQcAFaiESIANBBHIhCiACQagFaiEkIAJBgAVqQQRyIRsgAkHkAWohEyACQeABaiELIAJBuAJqISggAkGMAWohHiACQeQFaiEfIAJB4AVqISUgAkG4BmohKSACQfwBaiEWIAJBtAJqIRcgAkH4AWohGCACQbACaiEZAkADQAJAIAJBuAVqIAFBAxDWCAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAItALgFRQRAIAItALkFRQRAAkACQAJAAkACQCAHEOMNIgMEQCADKAIAQQlGDQELIAcQ4w0iA0UNASADKAIAQRRHDQEgAy0ABEEERw0BCyACQbgFaiABQQAQ/wIgAigCuAUiA0ECRg0BDBoLIAcQ4w0iA0UNAiADKAIAQQJHDQIgAy0ACEECRw0CIAMtAAlBFkcNAiACQbgFaiABENECIAJBAToAuAEgAiACKQC7CDcAuQEgAiACKQDDCDcAwQEgAiACKQDLCDcAyQEgAiACKADTCDYA0QEgKSACQbgBahDJCCAbIB8pAgA3AgAgG0EIaiAfQQhqKQIANwIAIBtBEGogH0EQaigCADYCACACKALgBSEDIAJBJTYC4AUgAiADNgKABSACIAIpA/gFNwOwBiACQYAFahDHCgJAAkAgJRDjDSIDBEAgAygCAEEJRg0BCyAlEOMNIgNFDQMgAygCAEEURw0DIAMtAAQgAkG4BWoQhBBBBEYNAQwECyACQbgFahCEEAsgAkG4BWogAUEBEP8CIAIoArgFIgNBAkYNAAwZC0ELIQggAigCvAUhAwwZCyACQbgFahCEEAsgBxDeICEUIAJBuAVqIAFBuOffAEEBQQAQsgIgAigCvAUhCSACKAK4BQRAIAkhAwwZCyACQbgFaiABIBQgCUEARyIgQQAQpgEgAigCvAUhAyACKAK4BSIEQYGAgIB4Rg0CIB4gEikCADcCACAeQRBqIBJBEGooAgA2AgAgHkEIaiASQQhqKQIANwIAIAIgAzYCiAEgAiAENgKEASAEQYCAgIB4RwRAQQohCCACKAKcASEGIAIoApgBIRwgAigClAEhGiACKAKQASEdIAIoAowBIRAgAyENIAQhAwwYCyABLQD4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AkAgAkGYAWogAkHYAWoQ3BQgAikDmAEiGVANACACKAKgASEEIAIgGTcD4AIgAiAENgLoAiACQYgDaiACQeACahD0CQRAIAIpA+ACEPkaDAIFIAJByAJqIBkQwAkMAgsACwtCABDtJiACQdgBahC1FAsgAigCgARBgYCAgHhHBEAgAkHYAWogEEEwEPsGGgNAIAJBiAFqIAJB2AFqENwUIAIpA4gBIhlQRQRAIAJByAJqIBkQwAkMAQsLQgAQ7SYgAkHYAWoQtRQLIA4gAykDADcDACACIAIpA8gCNwPYASACQYgDahDvCiACQbgCaiACQdgBahChByACQbACaiACQcACaikCADcDACACIAIpArgCNwOoAgJAIAEoAhwiBEUNACACQagCahC2EyEHIA8oAgAiBSkDACAHIARBAWpBAXYgBCACKAK0AhsgFhD9ISAFQQhqIQNCf4VCgIGChIiQoMCAf4MhGQNAIBlQRQRAIAcgBSAZeqdBAXRB8AFxa0EQaykDABD8GhDACSAEQQFrIQQgGUIBfSAZgyEZDAELIARFDQEgBUGAAWshBSADKQMAQn+FQoCBgoSIkKDAgH+DIRkgA0EIaiEDDAALAAsgASgCTCIDBEAgAkGoAmoQthMgAiADNgLAAyACIAEoAkAiAzYCuAMgAiADQQhqNgKwAyACIAMgASgCRGpBAWo2ArQDIAIgAykDAEJ/hUKAgYKEiJCgwIB/gzcDqAMgAkGoA2oQvwwLIAJBADYCuAMgCCAaNwMAIAIgGzcDqAMgAkGsAWogAkGYAmogEyACQagDaiIDIA8gAkGoAmogAigCrAIgAigCqAIbEK8BIAMQywggASgCAEUNASABIAIoAqQCEMQpIAIoApgCIgMpAwAhGSACKAKcAiEEIAIgAigCpAI2AvABIAIgAzYC6AEgAiADIARqQQFqNgLkASACIANBCGo2AuABIAIgGUJ/hUKAgYKEiJCgwIB/gzcD2AEDQCACQYABaiACQdgBahC6FSACKAKAASIDRQ0CIAIgAigChAEiBDYCiAMgAkHwAGogAykDACADQQhqKAIAEMAjIAJBqANqIgUgASACKQNwIAIoAngQ+gYgAikDqANQDQUgBSAEKQMAEPwaEOALDAALAAsgAyABEMYiIAYoAiggARC5FSAAIQMMAgsgAkHoAmogEikDADcDACAC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JAAPCyADQQhqIAAgAkEBEMYJIAMoAggiAkGBgICAeEYNACACIAMoAgwQ4SkACyAAKAIAIQUgACgCCCECCyACIAVGBEAgABDAFwsgACACQQFqNgIIIAAoAgQgAkEUbGoiAiAYNgIQIAIgFzYCDCACIBY2AgggAiAVNgIEIAIgFDYCAAwACwAL1SoCF38BfiMAQYADayIDJAACQCABQShqIgQQ4w0iBkUEQCABKALYAiEBIANBADoAkAEgASABIANBkAFqEIEVIQEgAEEHNgIAIAAgATYCBAwBCwJAAkACQAJAAkACQAJAAkACQAJAAkACQCAGKAIAIgZBC2sOAwEJAgALIAZBAkcEQCAGQSRHDQkgASABKQNANwN4IAEoAiggAUElNgIoQSRHDQggASgCLCEBIABBBzYCACAAIAE2AgQMDAsgA0HIAWogASACEKAEIAACfyADLQDcAUECRwRAIANBrAFqIANB4AFqKQMANwIAIANBpAFqIANB2AFqKQMANwIAIANBnAFqIANB0AFqKQMANwIAIAMgAykDyAE3ApQBIABBBGogA0GQAWpBJBD7BhpBAAwBCyAAIAMoAsgBNgIEQQcLNgIADAsLIAQQ3iAhDCAEEOMNIgJFBEAgASgC2AIhASADQQA6AJABIAEgASADQZABahCBFSEBIABBBzYCACAAIAE2AgQMCwsgAigCAEEkRgRAIAEgASkDQDcDeCABKAIoIAFBJTYCKEEkRw0GIAEoAiwhASAAQQc2AgAgACABNgIEDAsLIAEoAighAiABQSU2AiggASABKQNANwN4IANBnAFqIAFBNGopAgA3AgAgA0GkAWogAUE8aigCADYCACADIAEpAiw3ApQBIAMgAjYCkAEgA0GQAWoiAhDHCiADQQA2AmggA0KAgICAgAE3AmAgAUEsaiEGIAJBBHIhCSADQdABaiEOIANBmAFqIQpBACECAkADQCACIA1yRSACQf7/e0tyIQhBACEFAkACfwJAAkACQANAIAQQ4w0iC0UNASADQQA2AuACIAMgCzYC5AIgA0HgAmoQkCQgBBDjDSILBEAgCygCAEEMRg0DCyAIRQRAIANBOzoAkAEgASACIA0gA0GQAWoQ2BkLAkAgBBDjDSILRQ0AIAsoAgBBEEcNACAJIAYpAgA3AgAgASgCKCELIAFBJTYCKCABIAEpA0A3A3ggCUEIaiAGQQhqKQIANwIAIAlBEGogBkEQaigCADYCACADIAs2ApABIAVBAWohBSADQZABahDHCgwBCwsgBQRAIAMgBTYCuAEgA0EHNgKQASADQeAAaiADQZABahCLCQsgBBDeICEFIAQQ4w0iCARAIAgoAgBBB0YNAwsgA0GQAWogARDqBCADKAKUASEFIAMoApABIghBB0YNCyAOIAopAwA3AwAgDkEYaiAKQRhqKQMANwMAIA5BEGogCkEQaikDADcDACAOQQhqIApBCGopAwA3AwAgAyAFNgLMASADIAg2AsgBIANB4ABqIANByAFqEIAaQQAMAwsgASgC2AIhAiADQQA6AJABIAMgAiACIANBkAFqEIEVNgLkAiADQQE2AuACIANB4AJqEJAkCyAEEOMNIgJFDQIgAigCAEEMRw0CIAEoAighAiABQSU2AiggASABKQNANwN4IANBnAFqIAZBCGopAgA3AgAgA0GkAWogBkEQaigCADYCACADIAYpAgA3ApQBIAMgAjYCkAEgA0GQAWoQxwogAS0A+AJBAkYEQCABLQD7AkEBcQ0FC0EAIQIgAS0AkANBAXENBAwOCyAJIAYpAgA3AgAgASgCKCECIAFBJTYCKCABIAEpA0A3A3ggCUEIaiAGQQhqKQIANwIAIAlBEGogBkEQaigCADYCACADIAI2ApABIANBkAFqIg8QxwogASgCfCECIA8gAUEAEFAgAygCkAEiDUEHRg0HIANBwAJqIgcgCkEIaikDADcDACADQcgCaiIRIApBEGopAwA3AwAgA0HQAmoiEiAKQRhqKQMANwMAIAMgCikDADcDuAIgAygClAEhECABKAJ8IQtBKEEIEKsgIgggEDYCBCAIIA02AgAgCCADKQO4AjcDCCAIQRBqIAcpAwA3AwAgCEEYaiARKQMANwMAIAhBIGogEikDADcDACADQQA2AqgBIAMgBSACIAIgBUkbNgKkASADIAUgAiACIAVLGzYCoAEgAyAFIAsgBSALSxsiDTYCnAEgAyAFIAsgBSALSRsiAjYCmAEgAyAINgKUASADQQI2ApABIANB4ABqIA8QgBpBAQsgBBDjDSIIBEAgCCgCAEEMRg0CCwJAIAQQ4w0iCARAIAgoAgBBEEYNAQsgA0GYAWogBBCWCyADQRBqIAQQuBQgA0GoxeAANgKUASADQTQ6AJABIAMoAhAgAygCFCADQZABahCBFSEFIAQQ4w0iAkUNCCACKAIAQSRHDQggASABKQNANwN4IAEoAiggAUElNgIoQSRHDQYgASABKAIsEIYMDAgLIAkgBikCADcCACABKAIoIQggAUElNgIoIAEgASkDQDcDeCAJQQhqIAZBCGopAgA3AgAgCUEQaiAGQRBqKAIANgIAIAMgCDYCkAEgA0GQAWoiEBDHCkUNASAEEOMNIgVFDQEgBSgCAEEMRw0BIAEoAnwhBSABKAJ4IQggA0E6OgCQASABIAggBSAQENgZDAELCyADQZgBaiAEEJYLIANBCGogBBC4FCADQdjk3wA2ApQBIANBNDoAkAEgAygCCCADKAIMIANBkAFqEIEVIQUgBBDjDSICRQ0FIAIoAgBBJEcNBSABIAEpA0A3A3ggASgCKCABQSU2AihBJEcNAiABIAEoAiwQhgwMBQtBACECIAQQ4w0iBEUNCSAEKAIAQRdHDQkgASgCKCECIAFBJTYCKCABIAEpA0A3A3ggA0GcAWogBkEIaikCADcCACADQaQBaiAGQRBqKAIANgIAIAMgBikCADcClAEgAyACNgKQASADQZABahDHCkEBIQIMCQsgA0EAOgBTIAMgASkBggM3AEMgAyABKQCTAzcAVCADIAEoAJsDNgBcIAMgAUGKA2oiAikBADcASyADQfkAaiABQZcDaikAADcAACADQfQAaiABQZIDaikBADcCACADQewAaiACKQEANwIAIAMgASkBggM3AmQgAUGAAWogA0HDAGoQyQggAyABNgJgIAQQ3iAhDiAEEOMNIgJFBEAgASgC2AIhASADQQA6AJABIAEgASADQZABahCBFSEBIABBBzYCACAAIAE2AgQMCAsCQCACKAIAQSRGBEAgASABKQNANwN4IAEoAiggAUElNgIoQSRGDQFB5ezgAEEoQcys4AAQ9BcACyABKAIoIQIgAUElNgIoIAEgASkDQDcDeCADQZwBaiABQTRqKQIANwIAIANBpAFqIAFBPGooAgA2AgAgAyABKQIsNwKUASADIAI2ApABIANBkAFqIgIQxwogA0EANgKMASADQoCAgICAATcChAEgAUEsaiEGIAJBBHIhCyADQbgCakEEciEJIANBxAJqIRcgA0G8AmohDSADQcACaiEKIANBoAJqIQwgA0GgAWohGCADQZgBaiEZQQghEANAIAhBOGwhEgJAA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAEEOMNIgIEQCACKAIAQQ5GDQELIAQQ3iAhBQJAAkACQAJAIAQQ4w0iAgRAIAIoAgBBB0YNAQsgA0G4AmogARCtASADKAK8AiECIAMoArgCIgdBBUYNDSAMIAopAwA3AwAgDEEQaiAKQRBqIg8pAwA3AwAgDEEIaiAKQQhqIhQpAwA3AwAgAyACNgKcAiADIAc2ApgCIAQQ4w0iAgRAIAIoAgBBE0YNAgsgBw0CQQAhAgJAIAQQ4w0iB0UNACAHKAIAQRVHDQAgBy0ABA0AIAkgBikCADcCACABKAIoIQIgAUElNgIoIAEgASkDQDcDeCAJQQhqIAZBCGopAgA3AgAgCUEQaiAGQRBqKAIANgIAIAMgAjYCuAIgA0G4AmoiDxDHCiAPIAFBARDiEiADQSBqIAMoArgCEK0GIAMoAiQhAiADKAIgIA8QoyYNBAsgASgCfCEHIBggDBD9IiADIAI2AsABQQEhAiADQQE2ApABIAMgBSAHIAUgB0sbNgKcASADIAUgByAFIAdJGzYCmAEMDAsgCSAGKQIANwIAIAEoAighAiABQSU2AiggASABKQNANwN4IAlBCGogBkEIaikCADcCACAJQRBqIAZBEGooAgA2AgAgAyACNgK4AiADQbgCaiICEMcKIAEoAnwhByACIAFBABBQIAMoArgCIg9BB0cEQCADQYACaiIUIApBCGopAwA3AwAgA0GIAmoiFSAKQRBqKQMANwMAIANBkAJqIhYgCkEYaikDADcDACADIAopAwA3A/gBIAMoArwCIRNBKEEIEKsgIgIgEzYCBCACIA82AgAgAiADKQP4ATcDCCACQRBqIBQpAwA3AwAgAkEYaiAVKQMANwMAIAJBIGogFikDADcDACADQQA2AqgBIAMgBSAHIAUgB0sbNgKkASADIAUgByAFIAdJGzYCoAEgAyACNgKUAUECIQIgA0ECNgKQASADIAUgASgCfCIHIAUgB0sbNgKcASADIAUgByAFIAdJGzYCmAEMDAsgAygCvAIhAgwMCyAJIAYpAgA3AgAgASgCKCECIAFBJTYCKCABIAEpA0A3A3ggCUEIaiAGQQhqKQIANwIAIAlBEGogBkEQaigCADYCACADIAI2ArgCIANBuAJqIhMQxwogEyABEOoEIAMoArwCIQIgAygCuAIiFUEHRg0DIANB+AJqIgcgCkEYaikDADcDACADQfACaiIWIA8pAwA3AwAgA0HoAmoiDyAUKQMANwMAIAMgCikDADcD4AJBKEEIEKsgIgUgAjYCBCAFIBU2AgAgBSADKQPgAjcDCCAFQRBqIA8pAwA3AwAgBUEYaiAWKQMANwMAIAVBIGogBykDADcDACANQRhqIANBsAJqKQMANwIAIA1BEGogA0GoAmopAwA3AgAgDUEIaiAMKQMANwIAIA0gAykDmAI3AgBBACECIANBADYCkAEgCyATQSQQ+wYaIAMgBTYCuAEMCgsgFyAEEJYLIANBKGogBBC4FCADQQ02AsACIANBsKrgADYCvAIgA0EwOgC4AiADKAIoIAMoAiwgA0G4AmoQgRUhAgJAIAQQ4w0iBEUNACAEKAIAQSRHDQAgASABKQNANwN4IAEoAiggAUElNgIoQSRHDQUgASABKAIsEIYMCyADIAI2ApQBDAMLIAMpA6ACEPkaDAkLIAEoAighAiABQSU2AiggASABKQNANwN4IANBnAFqIAZBCGopAgA3AgAgA0GkAWogBkEQaigCADYCACADIAYpAgA3ApQBIAMgAjYCkAEgA0GQAWoQxwogDiABKAJ8IgIgAiAOSxshCiAOIAIgAiAOSRshDCADKAKMASICQThsIQUgAkEBayEIIBpCIIinIQ4gGqchCyADKAKIASECIBFBAXEhDQNAIAVFBEACQCABLQD4AkECRgRAIAEtAPsCQQFxDQELQQAhAiABLQCQA0EBcUUNCAtBACECIAQQ4w0iBEUNByAEKAIAQRdHDQcgASgCKCECIAFBJTYCKCABIAEpA0A3A3ggA0GcAWogBkEIaikCADcCACADQaQBaiAGQRBqKAIANgIAIAMgBikCADcClAEgAyACNgKQASADQZABahDHCkEBIQIMBwsgAigCACEJAkACQCAIBEAgCUECRw0BIANBOGogAhCsDyADKAI8IQkgAygCOCEHIANBOzoAkAEgASAHIAkgA0GQAWoQ2BkMAQsgCUECRw0AIAIoAgQoAgANASANRQ0AIANBOjoAkAEgASALIA4gA0GQAWoQ2BkLIAJBOGohAiAIQQFrIQggBUE4ayEFDAELCyADQTBqIAIQrA8gAygCNCECIAMoAjAgA0HtADoAkAEgAiADQZABahCBFSECIAQQ4w0iBEUNBCAEKAIAQSRHDQQgASABKQNANwN4IAEoAiggAUElNgIoQSRHDQMgASABKAIsEIYMDAQLIAMgAjYClAEgB0UNBQsgA0GYAmoQ4RYgAygClAEhAgwGC0Hl7OAAQShBwKrgABD0FwALQeXs4ABBKEGgquAAEPQXAAsgAEEHNgIAIAAgAjYCBCADQYQBahCJJwwSCyAAIAMpAoQBNwIEIAAgAjoAHCAAQQA2AhggACAMNgIUIAAgCjYCECAAQQM2AgAgAEEMaiADQYwBaigCADYCAAwRCyADKQOgAhD5GgwBCyADKAKUASEHIANByAFqIBlBMBD7BhogAygChAEgCEYEQCADQYQBahDSFyADKAKIASEQCyAQIBJqIgUgAjYCACAFQQRqIAc2AgAgBUEIaiADQcgBakEwEPsGGiADIAhBAWoiCDYCjAEgBBDjDSICBEAgAigCAEEORg0DCyAEEOMNIgIEQCACKAIAQRBGDQILIANBmAFqIAQQlgsgA0EYaiAEELgUIANBqMXgADYClAEgA0E0OgCQASADKAIYIAMoAhwgA0GQAWoQgRUhAiAEEOMNIgRFDQAgBCgCAEEkRw0AIAEgASkDQDcDeCABKAIoIAFBJTYCKEEkRw0FIAEgASgCLBCGDAsgAEEHNgIAIAAgAjYCBCADQYQBahCJJwwOCyALIAYpAgA3AgAgASgCKCECIAFBJTYCKCABIAEpA0A3A3ggC0EIaiAGQQhqKQIANwIAIAtBEGogBkEQaigCADYCACADIAI2ApABIANBkAFqEMcKIAQQ4w0iAg0BCyASQThqIRIMAQsLQQEgESACKAIAQQ5GIgIbIREgASkDeCAaIAIbIRoMAQsLQeXs4ABBKEHcrOAAEPQXAAsgASgCLCEBIABBBzYCACAAIAE2AgQMBwtB5ezgAEEoQdyE4AAQ9BcAC0Hl7OAAQShBzITgABD0FwALIAMoApQBIQULIABBBzYCACAAIAU2AgQgA0HgAGoQiCcMBQtB5ezgAEEoQbyE4AAQ9BcAC0Hl7OAAQShBnIXgABD0FwALIANBnAFqIAQQlgsgAyAEELgUIANBHDYCmAEgA0GsheAANgKUASADQTA6AJABIAMoAgAgAygCBCADQZABahCBFSECAkAgBBDjDSIERQ0AIAQoAgBBJEcNACABIAEpA0A3A3ggASgCKCABQSU2AihBJEYEQCABIAEoAiwQhgwMAQtB5ezgAEEoQciF4AAQ9BcACyAAQQc2AgAgACACNgIEDAILIANB4ABqEKMmDAELIAAgAykCYDcCBCAAIAI6ABwgAEEANgIYIABBATYCACAAQQxqIANB6ABqKAIANgIAIAAgDCABKAJ8IgEgASAMSRs2AhQgACAMIAEgASAMSxs2AhALIANBgANqJAALxCsCF38BfiMAQYADayIDJAACQCABQShqIgQQyg0iBkUEQCABKAKAAiEBIANBADoAkAEgASABIANBkAFqEIEVIQEgAEEHNgIAIAAgATYCBAwBCwJAAkACQAJAAkACQAJAAkACQAJAAkACQCAGKAIAIgZBC2sOAwEJAgALIAZBAkcEQCAGQSRHDQkgASABKQPgAjcDmAMgASgCyAIgAUElNgLIAkEkRw0IIAEoAswCIQEgAEEHNgIAIAAgATYCBAwMCyADQcgBaiABIAIQngQgAAJ/IAMtANwBQQJHBEAgA0GsAWogA0HgAWopAwA3AgAgA0GkAWogA0HYAWopAwA3AgAgA0GcAWogA0HQAWopAwA3AgAgAyADKQPIATcClAEgAEEEaiADQZABakEkEPsGGkEADAELIAAgAygCyAE2AgRBBws2AgAMCwsgBBDDICEMIAQQyg0iAkUEQCABKAKAAiEBIANBADoAkAEgASABIANBkAFqEIEVIQEgAEEHNgIAIAAgATYCBAwLCyACKAIAQSRGBEAgASABKQPgAjcDmAMgASgCyAIgAUElNgLIAkEkRw0GIAEoAswCIQEgAEEHNgIAIAAgATYCBAwLCyABKALIAiECIAFBJTYCyAIgASABKQPgAjcDmAMgA0GcAWogAUHUAmopAgA3AgAgA0GkAWogAUHcAmooAgA2AgAgAyABKQLMAjcClAEgAyACNgKQASADQZABaiICEMYKIANBADYCaCADQoCAgICAATcCYCABQcwCaiEGIAJBBHIhCSADQdABaiEOIANBmAFqIQpBACECAkADQCACIA1yRSACQf7/e0tyIQhBACEFAkACfwJAAkACQANAIAQQyg0iC0UNASADQQA2AuACIAMgCzYC5AIgA0HgAmoQwiMgBBDKDSILBEAgCygCAEEMRg0DCyAIRQRAIANBOzoAkAEgASACIA0gA0GQAWoQxhkLAkAgBBDKDSILRQ0AIAsoAgBBEEcNACAJIAYpAgA3AgAgASgCyAIhCyABQSU2AsgCIAEgASkD4AI3A5gDIAlBCGogBkEIaikCADcCACAJQRBqIAZBEGooAgA2AgAgAyALNgKQASAFQQFqIQUgA0GQAWoQxgoMAQsLIAUEQCADIAU2ArgBIANBBzYCkAEgA0HgAGogA0GQAWoQiwkLIAQQwyAhBSAEEMoNIggEQCAIKAIAQQdGDQMLIANBkAFqIAEQ6QQgAygClAEhBSADKAKQASIIQQdGDQsgDiAKKQMANwMAIA5BGGogCkEYaikDADcDACAOQRBqIApBEGopAwA3AwAgDkEIaiAKQQhqKQMANwMAIAMgBTYCzAEgAyAINgLIASADQeAAaiADQcgBahCAGkEADAMLIAEoAoACIQIgA0EAOgCQASADIAIgAiADQZABahCBFTYC5AIgA0EBNgLgAiADQeACahDCIwsgBBDKDSICRQ0CIAIoAgBBDEcNAiABKALIAiECIAFBJTYCyAIgASABKQPgAjcDmAMgA0GcAWogBkEIaikCADcCACADQaQBaiAGQRBqKAIANgIAIAMgBikCADcClAEgAyACNgKQASADQZABahDGCiABLQCgAkECRgRAIAEtAKMCQQFxDQULQQAhAiABLQC4AkEBcQ0EDA4LIAkgBikCADcCACABKALIAiECIAFBJTYCyAIgASABKQPgAjcDmAMgCUEIaiAGQQhqKQIANwIAIAlBEGogBkEQaigCADYCACADIAI2ApABIANBkAFqIg8QxgogASgCnAMhAiAPIAFBABBRIAMoApABIg1BB0YNByADQcACaiIHIApBCGopAwA3AwAgA0HIAmoiESAKQRBqKQMANwMAIANB0AJqIhIgCkEYaikDADcDACADIAopAwA3A7gCIAMoApQBIRAgASgCnAMhC0EoQQgQqyAiCCAQNgIEIAggDTYCACAIIAMpA7gCNwMIIAhBEGogBykDADcDACAIQRhqIBEpAwA3AwAgCEEgaiASKQMANwMAIANBADYCqAEgAyAFIAIgAiAFSRs2AqQBIAMgBSACIAIgBUsbNgKgASADIAUgCyAFIAtLGyINNgKcASADIAUgCyAFIAtJGyICNgKYASADIAg2ApQBIANB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AEEoQdyE4AAQ9BcAC0Hl7OAAQShBzITgABD0FwALIAMoApQBIQULIABBBzYCACAAIAU2AgQgA0HgAGoQiCcMBQtB5ezgAEEoQbyE4AAQ9BcAC0Hl7OAAQShBnIXgABD0FwALIANBnAFqIAQQkRAgAyAEEIUUIANBHDYCmAEgA0GsheAANgKUASADQTA6AJABIAMoAgAgAygCBCADQZABahCBFSECAkAgBBDKDSIERQ0AIAQoAgBBJEcNACABIAEpA+ACNwOYAyABKALIAiABQSU2AsgCQSRGBEAgASABKALMAhD/CwwBC0Hl7OAAQShByIXgABD0FwALIABBBzYCACAAIAI2AgQMAgsgA0HgAGoQhyUMAQsgACADKQJgNwIEIAAgAjoAHCAAQQA2AhggAEEBNgIAIABBDGogA0HoAGooAgA2AgAgACAMIAEoApwDIgEgASAMSRs2AhQgACAMIAEgASAMSxs2AhALIANBgANqJAALwioDHn8CfgF8IwBBoARrIgIkACAAIAEQuhogAkHYAGogAUGIAWoiAygCADYCACADQQA2AgAgASkCgAEhICABQoCAgICAATcDgAEgASkCjAEhISABQoCAgIDAADcCjAEgAUGUAWoiAygCACEGIANBADYCACACQegAaiAGNgIAIAIgIDcDUCACICE3A2AgAUGMAWohCiABQYABaiEMIABBDGohEyAAKAIQIgcgACgCFEHYAGxqIRQgAkGoAmohFSACQbwDaiERIAJBmAFqIRYDQAJAAkACQAJAAkACQCAUIAciA0cEQCADQdgAaiEHAkAgAygCACIGQQRrQQAgBkEFa0EISRtBAWsOCAcGBQQICAMCAAsgAygCSEEGdCEXIAMoAkQhGkEAIQgDQAJAAn8CQCAIIBdHBEAgCCAaaiIGKAIAQQdHDQMgBkEIaiEJIAZBHGoiEi0AAEECRwRAIAJBQGsgCSkDACAGQRhqKAIAEMAjIAIoAkghBCACKQNAISAgAkHIA2oiDSAJENYbQQAhCyACQQA2ApADIAIgAikD0AM3A6ADIAIgAikDyAM3A5gDIBYgCRDWGyACQRo2ApABIAJBsANqIAkQ1htBACEFIAZBIGooAgAiDwRAEPciIQUgDykCBCEhEPAiIQ4gDSAPKAIAEKgBIA4gDUHYABD7BiENIAUgITcCBCAFIA02AgALIAJB0ANqIBFBCGooAgA2AgAgAiARKQIANwPIAyACKAK4AyENIAIoArQDIQ8gAigCsAMhECACQZADaiACQZABahCuBAwDCyAJKAIAIgsoAgBFDQEgAkEBNgLMAyACQZi83wA2AsgDIAJCADcC1AMgAiACQZADajYC0AMgAkHIA2pBoLzfABDDHQALIAMoAkQiBiADKAJIQQZ0aiEFA0AgBSAGIglHBEAgBkFAayEGIAkoAgBBB0YEQCAJKAI4QQxsIQQgCSgCNCEIA0AgBARAIAggARCCLSAEQQxrIQQgCEEMaiEIDAELCyAJLQAcQQJHDQIgASAJQQhqEIYdBSAJIAEQhSYLDAELCyADKAIgQYCAgIB4Rg0LIAEgA0EgahDmBgwLCyACQTBqIAspAwggC0EYaigCABDAIyACKAI4IQQgAikDMCEgIAJByANqIhAgC0EIaiIFENYbIAJBADYCkAMgAiACKQPQAzcDoAMgAiACKQPIAzcDmAMgFSAFENYbIAJBGjYCoAIgBkEQaigCACEPIAZBFGooAgAhDRD1IiEOIBAgCxDfBCAOIBBBKBD7BhpBBCELIAZBDGooAgAQsR0hECACQZADaiACQaACahCuBAshGCAMICAgBBD6GCAKIBgQ1RsgBkEwaiIEQQhqIhgoAgAhGSAEKQIAISAgBkE0akEENgIAIARBADYCACAGQThqQQA2AgAgAkG4A2oiGyAZNgIAIAIgIDcDsAMgBkEsaiIZKAIAIRwgBkEoaiIdKAIAIR4gBigCACEfIAQQ7iYCQCAfQQdGBEAgEi0AAEECRwRAIAkQ0icMAgsgCRCRKQwBCyAGEKYSCyAGIAs2AgAgCSAQNgIAIAQgAikDsAM3AwAgHSAeNgIAIBkgHDYCACAGQQRqIA42AgAgBkEQaiANNgIAIAZBDGogDzYCACAGQRRqIAIpA8gDNwIAIBIgAkHQA2ooAgA2AgAgBkEgaiAFNgIAIBggGygCADYCAAsgCEFAayEIDAALAAsgDCkCACEgIAwgAikDUDcCACAKKQIAISEgCiACKQNgNwIAIAJBuANqIAxBCGoiAygCACIONgIAIAMgAkHYAGooAgA2AgAgCkEIaiIDKAIAIQYgAyACQegAaigCADYCACACQfgAaiIDIAY2AgAgAiAgNwOwAyACICE3A3ACQAJ/AkACQCAOBEAgAigCtAMhDCACKAKwAyERIAEtAJsBDQEgAkGIAWogAygCADYCACACIAIpA3A3A4ABIAJBBTYCkAEgAUHoAGohDyAAKAIQIgogACgCFEHYAGxqIRAgAkGQAWpBBHIhFCACQcgDakEEciEVIAJB8AFqIRJBACEGQQAhCQNAIBAgCiIHRgRAIAIoApABIgRBBUYNBCACQaACaiIHIAJBkAFqQdgAEPsGGiAHIAJBgAFqEJsEIAAoAhAhCAJAIAkgACgCFCIDTw0AIAggCUHYAGxqIgYoAgBBCkcNACACQRBqIAYQ2hYgAigCECACKALYAkcNACACKAIUIAIoAtwCRw0AIAJByANqIgMgB0HYABD7BhogBhCxCSAGIANB2AAQ+wYaDAULIAJByANqIAJBoAJqQdgAEPsGGiATKAIAIANGBH8gExDXFyAAKAIQBSAICyADQdgAbGogAkHIA2pB2AAQ+wYaIAAgA0EBajYCFAwECyAGIgNBAWohBiAHQdgAaiEKAkACQAJAIAcoAgAiCEEEa0EAIAhBBWtBCEkbDgUCAwMBAAMLIAcoAiRFDQIgBy0AOQ0CIAcoAhQhBCAHKAIQIQUgBykDCBD8GiEgIAcoAiQhCCAHQQA2AiQgCARAIAJByANqIgMgCEHAABD7BhoQ5h0hByADENwoIQtBwAAQ6SAiA0EAOgA8IAMgCzYCOCADQgA3AzAgAyAHNgIoIANCADcDICADIAQ2AhwgAyAFNgIYIAMgIDcDECADQQE2AgggA0EBNgIAIAJBgAFqIAMQ1RsgCBCNKwwDC0H8vN8AEOApAAsgBygCPEUNASAHLQBEDQECQAJAAkACQAJAAkACQAJAAkACQAJAIAcoAggiA0EDRgR/IAcoAgwhCCMAQRBrIgMkACADQQA2AgggA0GBAjsBDCADQQhqIAgQ3QMgAy0ADCADQRBqJABBAXFFDQUgBygCCAUgAwtBAWsOBAABAgMFCyASIAdBEGoQhR4gAkEBNgLoAQwJCyAHKQIQISAgBysDGCEiIAIgBykDIBC6IzcDgAIgAiAiOQP4ASACICA3A/ABIAJBAjYC6AEMCAsgBykCECEgIAcoAgwQsR0hAyACICA3A/ABIAIgAzYC7AEgAkEDNgLoAQwHCyAHKQIQISAQ+CIhAyAHKAIgIggtAAwhBCACQcgDaiAIQQRqKAIAIAhBCGooAgAQxBUgAyACKQLIAzcCACACIAQ6ANQDIANBCGogAkHQA2opAgA3AgAgBykDGBC6IyEhIAIgAzYCgAIgAiAhNwP4ASACICA3A/ABIAJBBDYC6AEMBgsgBygCDCEDQQBBABC+ERCKBCENAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAQQcgAygCAEEMayIIIAhBJk8bQQFrDiUBAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEiIyQlAAsgA0EIaiEFIANBBGohBAwlCyADQRRqIQUgA0EQaiEEDCQLIANBFGohBSADQRBqIQQMIwsgAygCICIIQTRqIQUgCEEwaiEEDCILIANBDGohBSADQQhqIQQMIQsgA0EIaiEFIANBBGohBAwgCyADQRBqIQUgA0EMaiEEDB8LIANBNGohBSADQTBqIQQMHgsgA0EkaiEFIANBIGohBAwdCyADQSRqIQUgA0EgaiEEDBwLIANBFGohBSADQRBqIQQMGwsgA0EgaiEFIANBHGohBAwaCyADQRhqIQUgA0EUaiEEDBkLIANBFGohBSADQRBqIQQMGAsgA0EUaiEFIANBEGohBAwXCyADQQhqIgggAygCCEECdCIEQaDx4wBqKAIAaiEFIAggBEGE8eMAaigCAGohBAwWCyADQSBqIQUgA0EcaiEEDBULIANBEGohBSADQQxqIQQMFAsgA0EYaiEFIANBFGohBAwTCyADKAIgIghBKGohBSAIQSRqIQQMEgsgA0EIaiEFIANBBGohBAwRCyADQQhqIQUgA0EEaiEEDBALIANBDGohBSADQQhqIQQMDwsgA0EMaiEFIANBCGohBAwOCyADQRxqIQUgA0EYaiEEDA0LIANBLGohBSADQShqIQQMDAsgA0EIaiEFIANBBGohBAwLCyADKAIEIgRBBGohBQwKCyADQRRqIQUgA0EQaiEEDAkLIANBEGohBSADQQxqIQQMCAsgA0EMaiEFIANBCGohBAwHCyADQQxqIQUgA0EIaiEEDAYLIANBEGohBSADQQxqIQQMBQsgA0EQaiEFIANBDGohBAwECyADQRBqIQUgA0EMaiEEDAMLIANBFGohBSADQRBqIQQMAgsg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B0EFdGo2AqQCIAMgCjYCnAIgB0UNBiANIApBCGopAwA3AwAgCSAKQRBqKQMANwMAIAMgCkEgajYCnAIgAyAKKQMANwPgASADIAooABk2AtgCIAMgCkEcaigAADYA2wIgCi0AGCIHQQJGDQYgBCADKADbAjYAACADQZADaiIFIAkpAwA3AwAgA0GIA2oiBCANKQMANwMAIAMgAykD4AE3A4ADIAMgBzoAmAMgAyADKALYAjYAmQMgA0HAAmogDxC9DSADKQOAAyAFKQMAEJstIAMoAsACQYCAgIB4Rg0GIANBsAJqIANByAJqIgYoAgA2AgAgAyADKQLAAjcDqAIgBCADQaACaikCADcDACADIAMpApgCNwOAAyADQQA2AqgDIANCADcDoAMgAyAIIAtBAnQiC2o2ApwDIAMgDjYCmAMgAyAINgKUAyADIAg2ApADIAMoAoQDIQcgAygCjAMhDCADQfkBaiIKQQNqIQ8DQAJAAkAgByAMRg0AIAMgB0EgaiIFNgKEAyAHLQAYIg5BAkYNACALDQEgBykDACAHKQMQEJstCyADQYADahCnKSADQagCahCmGSEZIABBADYCACAAIBk3AwggA0GIAmoQmiAMCQsgBiAHQQhqKQMAIhs3AwAgA0HQAmogB0EQaikDACIaNwMAIAMgCEEEaiIENgKUAyADIAcpAwAiGTcDwAIgAyAHKAAZNgK4AiADIAdBHGooAAA2ALsCIAgoAgAhByAJIBo3AwAgDSAbNwMAIAogAygCuAI2AAAgDyADKAC7AjYAACADIBk3A+ABIAMgDjoA+AEgA0HYAmogASAHEFYCQAJAAkACQCADKALYAiIODgIBAgALIAAgAykDiAI3AwAgAEEIaiADQZACaikDADcDACADQdgCahCaICADKQPgASADKQPwARCbLSADQYADahCnKSADKAKoAiADKAKsAhDaKQwLCyADIAMpA+ACNwP4AiADQewCaiADQfgCahC9DSADKQP4AhD5GgwBCyADQewCaiADKwPgAhCyAQsgA0GoAmoiCCADKALwAiIHIAMoAvQCEPYdIANBQGsgA0HgAWoQlAwgCCADKAJAIAMoAkQQ9h0gAygC7AIgBxDaKSAOBEAgA0HYAmoQmiALIAMpA+ABIAMpA/ABEJstIAtBBGshCyAEIQggBSEHDAALAAsgAysD+AEhESADKwPoASEQIARBCGsOEBYVFBMSERAPDg0MGRkZGQsZCyAAQQE2AgAgACACKwMYOQMIIAIpAyAQ7SYMAgsgAEEANgIAIAAgAikDEDcDCCACKQMgEO0mDAELIANBOGogAkEIaiIIEJQMAkAgAygCOCADKAI8QeTF3wBBAxCOKgRAIAIoAhggASgCCEYNAQsgA0EwaiAIEJQMAkAgAygCMCADKAI0QbS84ABBCBCOKgRAIAIoAhggASgCCEYNAQsgASgCBCEEIANBIGogASgCACIHKQMAIAdBCGooAgAQwCMgAykDICEZIAMoAighASADIAgpAwAQ/Bo3A/ABIAMgATYC6AEgAyAZNwPgASADQcACaiIFIAQgA0HgAWoQgSQQmiMCQAJAAkAgAygCwAIiBEEERwRAQQIhCyAEQQJJDQEgA0EQaiAHKQMAIAdBCGooAgAQwCMgAygCGCEEIAMpAxAhGyADQYADaiIBIAgQ1hsgAykDgAMhGiADKQOIAyEZIAMgGyAEEMQYNgKgAyADQgA3A5gDIAMgGTcDkAMgAyAaNwOIAyADQQA2AoADIAEQ3xshASAFEJogDAILIABBAjYCACAAIAI2AgQMAgsgAykDyAIhGyADKALEAiEBIAQhCwsgACAbNwMIIAAgATYCBCAAIAs2AgAgAyACNgKAAyADQYADahCmKQsgAykD4AEgAykD8AEQiysMIwsgAEKAgICAgICA+P8ANwMIIABBATYCACAIKQMAEPkaDAELIABCgICAgICAgPz/ADcDCCAAQQE2AgAgCCkDABD5GgsgAigCAEEQayIAQRNLDRxBASAAdEGVqCBxDR4gAEELRg0bDBwLIAAgASACKAIEEFYgAigCAEEQayIAQRNLDRtBASAAdEGVqCBxDR0gAEELRg0aDBsLIAAgAykDiAI3AwAgAEEIaiADQZACaikDADcDACADQZgCahCVFSADQZgBahDoJgsgAigCAEEQayIAQRNLDRlBASAAdEGVqCBxDRsgAEELRw0ZDBgLIAYoAgBBGkYEQCABKAIEIQEgAyAGKQMIIhkgBigCGBDAIyADIBs3A5ADIAMgAygCCDYCiAMgAyADKQMANwOAAyADQeABaiABIANBgANqEIEkEJojAkACQAJAAkAgAygC4AEiAUEDaw4CAAECCyADQeABahCaIAsgACADKQPA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BSAKNwIAIAJB2ANqIgYgCjcCACACIAs3AsADIAIgCzcC0AMgAkEAOgDgAyACQQA2ArgDIAMgBxClIyACQYACaiAFKQIAIg03AwAgAkGQAmogBikCACIMNwMAIAJBsANqIAw3AwAgAiACKQLAAyIMNwP4ASACIAIpAtADIg43A4gCIAJBoANqIA03AwAgAiAONwOoAyACIAw3A5gDIAMgAkGIA2oQ2AsgAkHwA2oiBSACQagDahDYCyACIAJBmANqNgLoAyACQeACaiAKNwMAIAIgCzcD2AIgBCADEMMOIAJB2AJqIAIoAvgBIAJB6AJqEP0hIAIoAtgDQYGAgIB4RwRAIAQgA0EwEPsGGgNAAkAgAkEwaiACQfgBahDcFCACKQMwIgpQDQAgAigCOCEDIAIgCjcD8AIgAiADNgL4AiACQZgDaiACQfACahD0CQRAIAIpA/ACEPkaBSACQdgCaiAKEMAJCwwBCwtCABDtJiACQfgBahC1FAsgAigCkARBgYCAgHhHBEAgAkH4AWogBUEwEPsGGgNAIAJBIGogAkH4AWoQ3BQgAikDICIKUEUEQCACQdgCaiAKEMAJDAELC0IAEO0mIAJB+AFqELUUCyACQYACaiACQeACaikDADcDACACIAIpA9gCNwP4ASACQZgDahDvCiACQcgCaiACQfgBahChByACQbADaiACQdACaikCADcDACACIAIpAsgCNwOoAwJAIAEoAhwiBUUNACACQagDahC2EyEGIAgoAgAiBCkDACAGIAVBAWpBAXYgBSAGKAIMGyAGQRBqEP0hIARBCGohA0J/hUKAgYKEiJCgwIB/gyEKA0AgClBFBEAgBiAEIAp6p0EBdEHwAXFrQRBrKQMAEPwaEMAJIAVBAWshBSAKQgF9IAqDIQoMAQsgBUUNASAEQYABayEEIAMpAwBCf4VCgIGChIiQoMCAf4MhCiADQQhqIQMMAAsACyABKAJMIgMEQCACQagDahC2EyACIAM2AtADIAIgASgCQCIDNgLIAyACIANBCGo2AsADIAIgAyABKAJEakEBajYCxAMgAiADKQMAQn+FQoCBgoSIkKDAgH+DNwO4AyACQbgDahC/DAsgAkEANgLIAyACQcADakHIoOMAKQMANwMAIAJBwKDjACkDADcDuAMgAkHMAWogAkG4AmogAUEwaiACQbgDaiID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IAJBCGogBUEIaigCADYCACACIAUpAgA3AwAgAUEsaiACEKEQIAFBHGogAiACQYABakEsEPsGEKEaCyAEQeAAaiABEOEjDAcLIABBBGogARDXLCAAQQhqIAEQ7iwMBgsgAEEEaiABENcsIABBCGogARDuLAwFCyACQRRqQcig4wApAwAiCDcCACACQQA7AT4gAkEANgI0IAJCgICAgIABNwIsIAJBAToAKCACQQA2AiQgAkKAgICAwAA3AhwgAkEANgIIIAJCgICAgIABNwIAIAJBwKDjACkDACIJNwIMIAIgAS8BPDsBPCACIAEoAjg2AjgCQCAAKAIEIgRBAkYNACAAQQhqIQMgBEEBcUUEQCADIAIQ7ywMAQsgAyACENcsCyACQSxqIQQgAkEcaiEFIABBGGogAhC/JSAAQRxqIAIQvyUgAkGUAWogCDcCACACIAk3AowBIAJBADsBvgEgAiACLwE8OwG8ASACIAIoAjg2ArgBIAJBADYCtAEgAkKAgICAgAE3AqwBIAJBAToAqAEgAkEANgKkASACQoCAgIDAADcCnAEgAkEANgKIASACQoCAgICAATcCgAEgAkGAAWogACgCDBDWICACQawBaiEGAkACQCACKAK0ASIABEAgAkEMaiAAEIQpIAJBxABqIAIoArABIAIoArQBEKEKIAIgAigCRDYCWCACIAIoAkgiADYCUCACIAAgAigCTEEEdCIDaiIHNgJcA0AgA0UNAiACQYABaiAAKQMAIAAoAggQqxEgA0EQayEDIABBEGohAAwACwALIAJB0ABqIgAgAkGAAWpBLBD7BhogBSAAEKEaIAYQjiMMAQsgAiAHNgJUIAJB0ABqEIkXIAItAChFBEAgAiACKAK0ARCWHiACIAIoAqwBNgJYIAIgAigCsAEiADYCUCACIAAgAigCtAFBBHQiA2oiBjYCXANAIAMEQCACIAApAwAgACgCCEEBEJsGIANBEGshAyAAQRBqIQAMAQsLIAIgBjYCVCACQdAAaiIAEIkXIAAgAkGAAWpBLBD7BhogBSAAEKEaDAELIAJB2ABqIAZBCGooAgA2AgAgAiAGKQIANwNQIAQgAkHQAGoiABChECAAIAJBgAFqQSwQ+wYaIAUgABChGgsCQCACKAI0IgAEQCABQQxqIAAQhCkgAkHQAGogAigCMCACKAI0EKEKIAIgAigCUDYCiAEgAiACKAJUIgA2AoABIAIgACACKAJYQQR0IgNqIgU2AowBA0AgA0UNAiACIAApAwAgACgCCBCrESADQRBrIQMgAEEQaiEADAALAAsgAkGAAWoiACACQSwQ+wYaIAFBHGogABChGiAEEI4jDAULIAIgBTYChAEgAkGAAWoQiRcgAS0AKEUEQCABIAIoAjQQlh4gAiACKAIsNgKIASACIAIoAjAiADYCgAEgAiAAIAIoAjRBBHQiA2oiBDYCjAEDQCADBEAgASAAKQMAIAAoAghBARCbBiADQRBrIQMgAEEQaiEADAELCyACIAQ2AoQBIAJBgAFqIgAQiRcgACACQSwQ+wYaIAFBHGogABChGgwFCyACQYgBaiAEQQhqKAIANgIAIAIgBCkCADcDgAEgAUEsaiACQYABaiIAEKEQIAAgAkEsEPsGGiABQRxqIAAQoRoMBAsgAkEUakHIoOMAKQMAIgg3AgAgAkEAOwE+IAJBADYCNCACQoCAgICAATcCLCACQQE6ACggAkEANgIkIAJCgICAgMAANwIcIAJBADYCCCACQoCAgICAATcCACACQcCg4wApAwAiCTcCDCACIAEvATw7ATwgAiABKAI4NgI4IABBBGogAhC5HCAAQQxqIAIQ1ywgAkGUAWogCDcCACACIAk3AowBIAJBADsBvgEgAiACLwE8OwG8ASACIAIoAjg2ArgBIAJBADYCtAEgAkKAgICAgAE3AqwBIAJBAToAqAEgAkEANgKkASACQoCAgIDAADcCnAEgAkEANgKIASACQoCAgICAATcCgAEgAkGAAWogACgCEBDWICACQawBaiEFIAJBLGohBCACQRxqIQYCQAJAIAIoArQBIgAEQCACQQxqIAAQhCkgAkHEAGogAigCsAEgAigCtAEQoQogAiACKAJENgJYIAIgAigCSCIANgJQIAIgACACKAJMQQR0IgNqIgc2AlwDQCADRQ0CIAJBgAFqIAApAwAgACgCCBCrESADQRBrIQMgAEEQaiEADAALAAsgAkHQAGoiACACQYABakEsEPsGGiAGIAAQoRogBRCOIwwBCyACIAc2AlQgAkHQAGoQiRcgAi0AKEUEQCACIAIoArQBEJYeIAIgAigCrAE2AlggAiACKAKwASIANgJQIAIgACACKAK0AUEEdCIDaiIFNgJcA0AgAwRAIAIgACkDACAAKAIIQQEQmwYgA0EQayEDIABBEGohAAwBCwsgAiAFNgJUIAJB0ABqIgAQiRcgACACQYABakEsEPsGGiAGIAAQoRoMAQsgAkHYAGogBUEIaigCADYCACACIAUpAgA3A1AgBCACQdAAaiIAEKEQIAAgAkGAAWpBLBD7BhogBiAAEKEaCwJAIAIoAjQiAARAIAFBDGogABCEKSACQdAAaiACKAIwIAIoAjQQoQogAiACKAJQNgKIASACIAIoAlQiADYCgAEgAiAAIAIoAlhBBHQiA2oiBTYCjAEDQCADRQ0CIAIgACkDACAAKAIIEKsRIANBEGshAyAAQRBqIQAMAAsACyACQYABaiIAIAJBLBD7BhogAUEcaiAAEKEaIAQQjiMMBAsgAiAFNgKEASACQYABahCJFyABLQAoRQRAIAEgAigCNBCWHiACIAIoAiw2AogBIAIgAigCMCIANgKAASACIAAgAigCNEEEdCIDaiIENgKMAQNAIAMEQCABIAApAwAgACgCCEEBEJsGIANBEGshAyAAQRBqIQAMAQsLIAIgBDYChAEgAkGAAWoiABCJFyAAIAJBLBD7BhogAUEcaiAAEKEaDAQLIAJBiAFqIARBCGooAgA2AgAgAiAEKQIANwOAASABQSxqIAJBgAFqIgAQoRAgACACQSwQ+wYaIAFBHGogABChGgwDCyACQRRqQcig4wApAwAiCDcCACACQQA7AT4gAkEANgI0IAJCgICAgIABNwIsIAJBAToAKCACQQA2AiQgAkKAgICAwAA3AhwgAkEANgIIIAJCgICAgIABNwIAIAJBwKDjACkDACIJNwIMIAIgAS8BPDsBPCACIAEoAjg2AjggAEEEaiACELkcIABBDGogAhDXLCACQZQBaiAINwIAIAIgCTcCjAEgAkEAOwG+ASACIAIvATw7AbwBIAIgAigCODYCuAEgAkEANgK0ASACQoCAgICAATcCrAEgAkEBOgCoASACQQA2AqQBIAJCgICAgMAANwKcASACQQA2AogBIAJCgICAgIABNwKAASACQYABaiAAKAIQENYgIAJBrAFqIQUgAkEsaiEEIAJBHGohBgJAAkAgAigCtAEiAARAIAJBDGogABCEKSACQcQAaiACKAKwASACKAK0ARChCiACIAIoAkQ2AlggAiACKAJIIgA2AlAgAiAAIAIoAkxBBHQiA2oiBzYCXANAIANFDQIgAkGAAWogACkDACAAKAIIEKsRIANBEGshAyAAQRBqIQAMAAsACyACQdAAaiIAIAJBgAFqQSwQ+wYaIAYgABChGiAFEI4jDAELIAIgBzYCVCACQdAAahCJFyACLQAoRQRAIAIgAigCtAEQlh4gAiACKAKsATYCWCACIAIoArABIgA2AlAgAiAAIAIoArQBQQR0IgNqIgU2AlwDQCADBEAgAiAAKQMAIAAoAghBARCbBiADQRBrIQMgAEEQaiEADAELCyACIAU2AlQgAkHQAGoiABCJFyAAIAJBgAFqQSwQ+wYaIAYgABChGgwBCyACQdgAaiAFQQhqKAIANgIAIAIgBSkCADcDUCAEIAJB0ABqIgAQoRAgACACQYABakEsEPsGGiAGIAAQoRoLAkAgAigCNCIABEAgAUEMaiAAEIQpIAJB0ABqIAIoAjAgAigCNBChCiACIAIoAlA2AogBIAIgAigCVCIANgKAASACIAAgAigCWEEEdCIDaiIFNgKMAQNAIANFDQIgAiAAKQMAIAAoAggQqxEgA0EQayEDIABBEGohAAwACwALIAJBgAFqIgAgAkEsEPsGGiABQRxqIAAQoRogBBCOIwwDCyACIAU2AoQBIAJBgAFqEIkXIAEtAChFBEAgASACKAI0EJYeIAIgAigCLDYCiAEgAiACKAIwIgA2AoABIAIgACACKAI0QQR0IgNqIgQ2AowBA0AgAwRAIAEgACkDACAAKAIIQQEQmwYgA0EQayEDIABBEGohAAwBCwsgAiAENgKEASACQYABaiIAEIkXIAAgAkEsEPsGGiABQRxqIAAQoRoMAwsgAkGIAWogBEEIaigCADYCACACIAQpAgA3A4ABIAFBLGogAkGAAWoiABChECAAIAJBLBD7BhogAUEcaiAAEKEaDAILIABBCGogARD7AgwBCyAAQQRqIAEQ1ywLIAJBwAFqJAALhSMCF38IfiMAQbACayIDJAACQAJAIAIoAgQiBSACKAIIIgRB//0DEOUYRQ0AQQMgBEGcy9gAEPcgGgJAIARBBE8EQCAFLAADQb9/Sg0BDAMLIARBA0cNAiACQQA2AggMAQsgAkEANgIIIAUgBUEDaiAEQQNrIgQQ2i0aIAIgBDYCCAtBFEEEEKsgIg5CgYCAgBA3AgAgDiACKQIANwIIIA5BEGogAkEIaigCADYCACABIAEoAgAiAkEBajYCACADIAE2AiwCQCACQQBIDQAgASICKAIIIhdBAkYEQCAAKAJQIhggACgCVEEYbGohEyADQbkBaiEVIANB+QFqIRQgAigCFCEPIAIoAhAhEQJAA0AgGCATIgxHIhlFBEAgA0HwAWogESAPEP0TDAILIAxBEGsoAgAhAkEAIQggDwRAIBEtAABBL0YhCAsgDEEUaygCACEEIAxBGGshEyADIAIEfyAELQAAQS9GBUEACzoAzgFBBiEFIANBBjoAuAEgAyACNgK0ASADIAQ2ArABIANBgAQ7AcwBQQAhCkECIQkgDyEEIBEhBgJAA0AgBUH/AXEiDUEGRiIQRQRAIANBpwFqIANB1wBqKAAANgAAIANBoAFqIANB0ABqKQAANwMAIAMgAykASDcDmAELIBQgAykDmAE3AAAgFEEIaiISIANBoAFqKQMANwAAIBRBD2oiFiADQacBaigAADYAACADIAU6APgBIAMgBDYC9AEgAyAGNgLwASADIAg6AI4CIAMgCToAjQIgAyAKOgCMAiADQeAAaiADQfABahCCAyADQfwAaiADQbABahCCAyADLQB8IQICQAJAAkAgAy0AYCILQQpGBEAgAkEKRg0BDAMLIAJBCkcNAQsgA0E/aiICIANB1wBqKAAANgAAIANBOGoiCyADQdAAaikDADcDACADIAMpA0g3AzBBACEHIAhBAkYNAyAQRQRAIANB/wFqIAIoAAA2AAAgA0H4AWogCykDADcDACADIAMpAzA3A/ABCyAVIAMpA/ABNwAAIBVBCGogA0H4AWopAwA3AAAgFUEPaiADQf8BaigAADYAACADIAU6ALgBIAMgBDYCtAEgAyAGNgKwASADIAg6AM4BIAMgCToAzQEgAyAKOgDMAQJAIApBAkcEQCAGIQcMAQsgBEUEQEEAIQQgBiEHDAULAkACQAJAIA1BA08EQCAGIQcDQEEAIQICfwNAQQEgAiAHai0AAEEvRg0BGiAEIAJBAWoiAkcNAAsgBCECQQALIQUCQAJAIAIOAgEABQsgBy0AAEEuRw0ECyACIAVqIgIgBE0EQCACIAdqIQcgBCACayIEDQEMAwsLIAIgBEHMsdgAEK0QAAsgBCAGaiEHA0BBACECAkADQCACIAZqLQAAQS9GDQEgBCAC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QQI2AqABIAMgA0GgAWo2AvABIAMgA0GQAWo2AugBIANB7ABqIANB4AFqEPAkGgwRCyAMDQcgCkEBcUUEQCADQewAaiABEOsPDBELIANBzAA2ApQBIAMgATYChAEgA0EBNgL0ASADQQI2AuQBIANBsODYADYC4AEgA0EBNgLsASADIANBhAFqNgKQASADQQM6ALwBIANBCDYCuAEgA0IgNwKwASADQoCAgIDAADcCqAEgA0ECNgKgASADIANBoAFqNgLwASADIANBkAFqNgLoASADQewAaiADQeABahDwJBoMEAsgDQ0LIANB7ABqIAEQ6w8MDwsgA0HgAWoiASADKAJwIAMoAnRBJ0GW4dgAENAGIANBBTYClAEgA0ECNgKkASADQZjh2AA2AqABCyADQgE3AqwBIAMgATYCkAEgAyADQZABajYCqAEgA0HgAGogA0GgAWoQgBUgAygC4AEgAygC5AEQ2ikgAygCbCADKAJwENopIAItAFBFDQggAygCZCEEIAMoAmghASADQQg2AnggAyABNgL8ASADIAQ2AvgBIANBADYC8AEgAyABIARqNgLsASADIAQ2AugBIANBAjYC4AEgAyADQfgAajYC9AEgA0EQaiADQegBaiIFEOUGIAMgAygCFDYC5AEgAyADKAIQIgY2AuABIAZBAXEEQCADQQhqIAEQ/xQgAygCCCEHIAMoAgwiBiAEIAEQ+wYhBCADIAE2ApgBIAMgBDYClAEgAyAHNgKQASADQbgBaiADQfgBaikCADcDACADQbABaiADQfABaikCADcDACADQagBaiIHIAUpAgA3AwAgAyADKQLgATcDoAEgA0EANgLAAQNAIAMoAqABIQQgA0ECNgKgAQJ/IARBAkcEQCADKAKkAQwBCyADIAcQ5QYgAygCACEEIAMoAgQLIQUgBEUNByADIAMoAsABIghBAWoiBDYCwAECQCAEIAVqIgRFDQAgASAESwRAIAQgBmosAABBv39KDQEMCwsgASAERw0KCyADKAKQASABRgRAIANBkAFqIAFBARDWCiADKAKUASEGCyAEIAZqIgRBAWogBCAFIAhqQX9zIAFqENotGiAEQdwAOgAAIAMgAUEBaiIBNgKYAQwACwALQYCAgIB4IQUgBAwGCyADQeABaiIBEMkeGiABEKIdIQEMCQsgA0EBNgKkASADQeTf2AA2AqABIANCATcCrAEgA0HgATYC5AEgAyABOgCQASADIANB4AFqNgKoASADIANBkAFqNgLgASADQewAaiADQaABahDwJBoMCwsgA0EBNgKkASADQYjf2AA2AqABIANCATcCrAEgA0HgATYC5AEgAyABOgCQASADIANB4AFqNgKoASADIANBkAFqNgLgASADQewAaiADQaABahDwJBoMCgsgA0HsAGogARDrDwwJCyADIAFBgIAEa0EKdkGAsANqNgKMASADIAFB/wdxQYC4A3I2AoQBIANBzAA2ApwBIANBzAA2ApQBIANBAjYC9AEgA0ECNgLkASADQYTh2AA2AuABIAMgA0GEAWo2ApgBIAMgA0GMAWo2ApABIANBAzoA3AEgA0EINgLYASADQqCAgIAQNwLQASADQoCAgIDAADcCyAEgA0ECNgLAASADQQM6ALwBIANBCDYCuAEgA0IgNwKwASADQoCAgIDAADcCqAEgA0ECNgKgASADIANBoAFqNgLwASADQQI2AuwBIAMgA0GQAWo2AugBIANB7ABqIANB4AFqEPAkGgwICyADKAKQASEFIAMoAmQhBCADKAKUAQsiBiABQeC54ABBBEHkueAAQQcQrgsgA0HgAWogAygCpAEiASADKAKoAUHrueAAQQNB7rngAEEGEK4LIAMoAmAgBBDaKSADQegAaiADQegBaigCADYCACADIAMpAuABNwNgIAMoAqABIAEQ2ikgBSAGELYkDAELQbjd2ABBLEHk3dgAEPQXAAsgA0GgAWogAkEAQQAgAygCZCIBIAMoAmgQkw8CQCADLQCgAUEERwRAIAMpA6ABIg5C/wGDQgRSDQELIAMoAmAgARDaKSAAQQQ6AAAMBwsgACAONwIAIAMoAmAgARDaKQwGCyADQQE2AqQBIANBiN/YADYCoAEgA0IBNwKsASADQeABNgLkASADIAE6AJABIAMgA0HgAWo2AqgBIAMgA0GQAWo2AuABIANB7ABqIANBoAFqEPAkGgwDCwJAAkACQAJAIAEEQCABKAIAQSByQeQARg0BCyAJDQEgA0HsAGpB3AAQ6w8MBgsgA0EANgKoASADQoCAgIAQNwKgASADQaABaiIEQdwAEOsPIARB9QAQ6w8gCQ0BDAILIANB7ABqQZDg2ABBAhD2HQwECyADQaABakH7ABDrDwsgA0Gg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BUHI6+AAENQmAAsgA0GUAWogC0HQAGoiBkEIaigCACIENgIAIANBiAFqIAQ2AgAgAyAGKQIAIhw3AowBIAMgHDcDgAEgA0EKNgLAASAIIAEoAgQgBSADQYABaiADQcABahCaDwwDCyADQUBrIAkgCkE6EOwGQQEhBSADKAJAQQFGBEAgA0EgaiAJIAogAygCRCIBQbytxAAQqBUgA0GAAWogAygCICADKAIkELoRIANBGGogCSAKIAFBAWpBzK3EABDJFCADQcABaiADKAIYIAMoAhwQuhEgAzUCiAEgAzUCwAFCIIaEIRwgAykCxAEhHSADKAKEASEHIAMoAoABIQEgA0HgAGoMAgsgA0E4aiAJIApBPRDsBiADKAI4QQFGBEAgA0EwaiAJIAogAygCPCIBQdytxAAQqBUgA0GAAWogAygCMCADKAI0ELoRIANBKGogCSAKIAFBAWpB7K3EABDJFCADQcABaiADKAIoIAMoAiwQuhEgAzUCiAEgAzUCwAFCIIaEIRwgAykCxAEhHSADKAKEASEHIAMoAoABIQFBACEFIANB4ABqDAILIANBwAFqIAkgChC6ESADKQLEASEcIAMoAsABIQdBACEFQYGAgIB4IQEgA0HgAGoMAQsgA0EQaiAJIAogB0GcrcQAEKgVIANBgAFqIAMoAhAgAygCFBC6EUECIQUgA0EIaiAJIAogB0ECakGsrcQAEMkUIANBwAFqIAMoAgggAygCDBC6ESADNQKIASADNQLAAUIghoQhHCADKQLEASEdIAMoAoQBIQcgAygCgAEhASADQeAAagshBiADQaABaiIEIAZBCGooAgAiCTYCACADQawBaiALQdgAaigCADYCACAIIAU6ABwgCCAdNwIUIAggHDcCDCAIIAc2AgggCCABNgIEIAggBikCACIcNwIgIANBuAFqIAk2AgAgAyALKQJQNwKkASAIQShqIAQpAwA3AgAgCEEwaiADQagBaikDADcCACADIBw3A7ABIAMgHDcDmAEgCEEiNgIAIAggE0HQAEY6ADgLIBEgESgCAEEBajYCACADQYACaiQAIAIoAqQCIQEgAkGYAWoiBSACQagCakE4EPsGGiABQSJGDQQgAigC4AIhBiAAQQRqIAVBOBD7BhogACAGNgI8DAULIAJBmANqIAEQ6AogAkGcAmogAkGsA2ooAgA2AgAgAkGQAmogAkEYaigCADYCACACIAIpAqQDNwKUAiACIAIpAxA3A4gCIAJBIDYCmAEgAkGkAmoiBSABKAIEIAEoAgggAkGIAmogAkGYAWoQmg8gACAFQcAAEPsGGgweC0EBIAN0QeubgIABcUUNBgwHCyAELQBlRQRAIAJBmANqIAEQ6AogAkGcAmogAkGsA2ooAgA2AgAgAkGQAmogAkEYaigCADYCACACIAIpAqQDNwKUAiACIAIpAxA3A4gCIAJBIDYCmAEgAkGkAmoiBSABKAIEIAEoAgggAkGIAmogAkGYAWoQmg8gACAFQcAAEPsGGgwdCyACQSBqIQYjAEEgayIFJAACQAJAIAEoAgAiBC0AZQRAIAEQwQxBMEkNASABEMEMQThPDQEgBCkCVCEcIAQoAlAhAwNAIAEQ+AhFDQMgARDBDEEwSQ0DIAEQwQxBN0sNAyAEKAJQIANrQQNJDQALDAILQZioxABBJUHAqMQAEPQXAAtB0KjEAEE6QYypxAAQ9BcACyAEKQJUIR0gBUEIaiABKAIEIAEoAgggAyAEKAJQIgFBnKnEABD2DSAFQRRqIAUoAgggBSgCDEEIEMgEAkACQCAFLQAUQQFHBEAgBSgCGCIEQYCwA3NBgIDEAGtB/4+8f00NASAGQQM6ABwgBiAdNwIUIAYgATYCECAGIBw3AgggBiADNgIEIAYgBDYCACAFQSBqJAAMAgsgBSAFLQAVOgAfQaypxABBEiAFQR9qQbyexABBwKnEABDFDgALQdCpxABBFEHkqcQAELsSAAsgAkEsaiACQRhqKAIANgIAIABCooCAgKCAgICAfzcCACAAQRhqIAJBMGopAgA3AgAgAEEgaiACQThqKQIANwIAIAIgAikDEDcCJCAAIAIpAiA3AgggAEEQaiACQShqKQIANwIADBwLIAJBADYCpAIgAkEMakHQp8QAIAJBpAJqQdSnxAAQ8RoACyACQeAAaiIFIAJBmAFqQTgQ+wYaIAJBhAFqIAJBGGooAgA2AgAgAiACKQMQNwJ8IABBBGogBUE4EPsGGgsgACABNgIADBkLIAJByABqIgMgASkDADcDACACQdAAaiAFKQMAIhw3AwAgAkHYAGogBikDACIdNwMAIAJBzABqIAJBGGooAgA2AgAgAiACKQOYATcDQCAAQYKAgIB4NgIEIABBGGogHDcCACAAQSBqIB03AgAgAiACKQMQNwJEIAAgAikDQDcCCCAAQRBqIAMpAwA3AgALIAAgBDYCAAwXCyAFQdsAa0EESSAFQfsAa0EESXINACAFQTBrQQpJIAVB/wBLciAFQcEAa0EaSSAFQeEAa0EaSXJyRSAFQf0AcUE8R3ENAiAFQTxrDgcPBBAEBAsOAQsgACACKQPwATcCDCAAQQE6ACQgACAFNgIIIABCooCAgKCAgICAfzcCACAAQRxqIAJBgAJqKQMANwIAIABBFGogAkH4AWopAwA3AgAMFQsCQCAFQfIAaw4JCAMGAwkDAwMLAAsgBUHhAGsOBgMLAgICBAELIAAgAikD8AE3AgwgAEECOgAkIAAgBTYCCCAAQqKAgICggICAgH83AgAgAEEcaiACQYACaikDADcCACAAQRRqIAJB+AFqKQMANwIADBMLIAVB7gBGDQQLIAJBCzYCmAEgAkGkAmoiBSABKAIEIAEoAgggAkHwAWogAkGYAWoQmg8gACAFQcAAEPsGGgwRCyAAIAIpA/ABNwIMIABBBjsBJCAAQQc2AgggAEKigICAoICAgIB/NwIAIABBHGogAkGAAmopAwA3AgAgAEEUaiACQfgBaikDADcCAAwQCyAAIAIpA/ABNwIMIABBhgI7ASQgAEEMNgIIIABCooCAgKCAgICAfzcCACAAQRxqIAJBgAJqKQMANwIAIABBFGogAkH4AWopAwA3AgAMDwsgACACKQPwATcCDCAAQYYEOwEkIABBCTYCCCAAQqKAgICggICAgH83AgAgAEEcaiACQYACaikDADcCACAAQRRqIAJB+AFqKQMANwIADA4LIAAgAikD8AE3AgwgAEGGBjsBJCAAQQo2AgggAEKigICAoICAgIB/NwIAIABBHGogAkGAAmopAwA3AgAgAEEUaiACQfgBaikDADcCAAwNCyAAIAIpA/ABNwIMIABBhgg7ASQgAEENNgIIIABCooCAgKCAgICAfzcCACAAQRxqIAJBgAJqKQMANwIAIABBFGogAkH4AWopAwA3AgAMDAsgACACKQPwATcCDCAAQYYKOwEkIABBCzYCCCAAQqKAgICggICAgH83AgAgAEEcaiACQYACaikDADcCACAAQRRqIAJB+AFqKQMANwIADAsLIAAgAikD8AE3AgggAEECOgAgIABCooCAgLCAgICAfzcCACAAQRhqIAJBgAJqKQMANwIAIABBEGogAkH4AWopAwA3AgAMCgsgACACKQPwATcCCCAAQQM6ACAgAEKigICAsICAgIB/NwIAIABBGGogAkGAAmopAwA3AgAgAEEQaiACQfgBaikDADcCAAwJCyACQZgCaiIKIAJBgAJqKQMANwMAIAJBkAJqIgsgAkH4AWopAwA3AwAgAiACKQPwATcDiAJBBCEFIAEoAggiAyAGKAIARg0HIAEQwQxB+wBHDQcgAiABEMEMIgc2AuQCIAdB+wBHDQQgAkHwAmogBkEIaiIHKAIANgIAIAIgBikCADcD6AIgARC3Hg0DIAJBrANqIAcoAgA2AgAgAkGgA2ogAkEYaigCADYCACACIAIpAxA3A5gDIAIgBikCADcCpAMgAkEeNgKYASACQaQCaiABKAIEIAMgAkGYA2ogAkGYAWoQmg8MBgsgACACKQPwATcCCCAAQQU6ACAgAEKigICAsICAgIB/NwIAIABBGGogAkGAAmopAwA3AgAgAEEQaiACQfgBaikDADcCAAwHCyAAIAIpA/ABNwIIIABBCDoAICAAQqKAgICwgICAgH83AgAgAEEYaiACQYACaikDADcCACAAQRBqIAJB+AFqKQMANwIADAYLIAAgAikD8AE3AgggAEEJOgAgIABCooCAgLCAgICAfzcCACAAQRhqIAJBgAJqKQMANwIAIABBEGogAkH4AWopAwA3AgAMBQsgAkGAA2ogBygCADYCACACIAYpAgA3A/gCIAEQwQwiB0EtRiAHQd///wBxQcEAa0EaSXJFBEAgBiACKQPoAjcCACAGQQhqIAJB8AJqKAIANgIADAQLIAIgBEFAa0Hkp8QAEL8dIAIoAgQhBCACKAIAIgdBADYCCANAAkACQAJAAkAgBigCACADRg0AIAEQwQwiCEEtRiAIQd///wBxQcEAa0EaSXINAyAGKAIAIANGDQAgARDBDEH9AEYNAQsgAkGsA2ogBkEIaigCADYCACACQaADaiACQfACaigCADYCACACIAIpA+gCNwOYAyACIAYpAgA3AqQDIAJBHDYCmAEMAQsgAkGQA2ogBkEIaigCADYCACACIAYpAgA3A4gDIAEQ+AgaIAcoAgQiCCAHKAIIIglBobPEAEEFEOsfBEBBBiEHDAULIAggCUGms8QAQQMQ6x8EQEEHIQcMBQtBCiEHIAggCUH0p8QAQQoQ6x8NBCAIIAlB/qfEAEEIEOsfBEBBCyEHDAULIAJBoANqIAJBgANqKAIANgIAIAJBrANqIAJBkANqKAIANgIAIAIgAikD+AI3A5gDIAIgAikDiAM3AqQDIAJBHTYCmAELIAJBpAJqIAEoAgQgAyACQZgDaiACQZgBahCaDyAEIAQoAgBBAWo2AgAMBAsgByABEMEMEJoNIAEQtx4aDAALAAsgAkEANgKYASACQeQCakHk3tgAIAJBmAFqQYioxAAQ8RoACyACQSI2AqQCIAIgBzoAqAIgBCAEKAIAQQFqNgIACyACLQCoAiEBIAIoAqQCIgRBIkYEQCABQQxGDQEgAkGcAmogBkEIaigCADYCACACIAYpAgA3ApQCIAEhBQwBCyAAQQVqIAJBqQJqQTsQ+wYaIAAgAToABCAAIAQ2AgAMAQsgACACKQOIAjcCCCAAIAU6ACAgAEKigICAsICAgIB/NwIAIABBGGogCikDADcCACAAQRBqIAspAwA3AgALIAJBsANqJAALuBwCFX8EfiMAQfADayIEJAACQAJAAkACQAJAAkACQCACKAIADggDAwAAAAABAgALIABBCGogAkEoEPsGGiAAQRQ2AgAMBAsgBEHoAGogAigCBCIJKQMAIAlBEGoiAigCABDAIyABQSBqIAQpA2ggBCgCcBCSKSEQIARBgAJqIAIpAwAiGzcDACAEQfgBaiAJQQhqKQMAIho3AwAgBCAJKQMAIhk3A/ABIAkoAhghEiAJKAIcIREgCSgCICETIAkoAiQhBSAJKAIoIQIgCS0ALSEUIARBmAJqIBs3AwAgBEGQAmogGjcDACAEIBk3A4gCAkACQAJAIBRBAXFFDQAgAS0AmgFBAXENACADRQ0BCyAEQQA6AKcCDAELIARB2ABqIAQpA4gCIAQoApgCEMAjIAQgBCgCYDYCoAEgBCAEKQNYNwOYASAEIAFBMGogBEGYAWoQmAlFOgCnAiAEKQOYARD5GgsgE0EwbCEMIAUgAkEwbGohFyAEQcACaiENIARBoAFqIRggBSEIIAUhBwNAIAggF0YNAyAYIAhBMBD7BiEGIAQgBzYCnAEgBCAFNgKYASAEKALAASEOIAQoAsQBIQogBCkDqAEQ/BohGiAEQcgAaiAEKQOIAiAEKAKYAhDAIyAEKQNIIRkgBCgCUCECIAQgGhD8GiIbNwOgAyAEIAI2ApgDIAQgGTcDkAMgASgCTEUNBSAIQTBqIQggBEGQA2oQ7hMiGUIZiEKBgoSIkKDAgAF+IRogASgCRCIVIBmncSECIAEoAkAhFkEAIQ8DQCACIBZqKQAAIhwgGoUiGUJ/hSAZQoGChIiQoMCAAX2DQoCBgoSIkKDAgH+DIRkCQAJAA0AgGVBFBEAgBEGQA2ogGXqnQQN2IAJqIBVxQVhsIgsgASgCQGpBKGsQ4RsNAiAZQgF9IBmDIRkMAQsLIBwgHEIBhoNCgIGChIiQoMCAf4NQDQEMCAsgBEHAA2ogCyAWakEQaxCnEiAEQdgDaiIPIA42AgAgBEHQA2oiCyAbNwMAIAQgCjYC3AMgBCkDkAMQ+RogBCkDoAMQ+RogBikDCCEZAkAgBigCAEUEQCAZEPkaDAELIBkgBikDGBCMKwsgBkEoahDdJyANQRhqIA8pAwA3AwAgDUEQaiALKQMANwMAIA1BCGogBEHIA2oiAikDADcDACANIAQpA8ADNwMAIAQgBzYCvAIgBCAFNgK4AgJAIAQtAKcCQQFHDQAgBCgCwAJBAUsNACANENQeDAMLIAIpAwAhGyALKQMAIRogBCkDwAMhGSAHQRhqIA8pAwA3AwAgB0EQaiAaNwMAIAdBCGogGzcDACAHIBk3AwAgB0EgaiEHDAILIAIgD0EIaiIPaiAVcSECDAALAAsACyAEQYgBaiACKAIEIgUQkBUgBEH4AGogBCkDiAEiGSAEKAKQASICEMAjAkACQCABQSBqIAQpA3ggBCgCgAEQkilFBEAgBEGYAWoiAiAFQdgAEPsGGiAAIAEgAiADEK8FDAELIANFBEAgAUHoAGogGSACEPoYIARBmAFqIgIgBUHYABD7BhogACABIAJBABCvBQwCCyABKQMQUEUEQCAEQZgBaiICIAVB2AAQ+wYaIAAgASACQQEQrwUMAQsgAUH0AGogGSACEPoYIARBmAFqIgIgBUHYABD7BhogACABIAJBARCvBQwBCyAZEPkaCyAFEJgrDAILIARBCGogAikDCCACKAIYEMAjIAFBIGogBCkDCCAEKAIQEJIpGiAAQQhqIAJBKBD7BhogAEEUNgIADAELQQBBCBCSKiAFIQICQCATRQ0AIAwgDEFgcSIGRg0AIAZFBEBBCCECIAxFDQEgBSAMQQgQ1REMAQsgBSAMQQggBhD5AiICDQAAC0EAQQgQkiogDEEFdiEOAkACfwJAAkACQCAUQQFxIAUgB0ZxRQRAIAIgByAFa2ohCCABKQMQUEUNAUEAIQogEA0CDAMLIABBEzYCACAOIAIQ+SkgBCkDiAIQ+RoMBAsgAyAQciEKIBBFIANyDQELIARBmAFqIgUgBEGIAmoiBhDWGyAFEIMVIQVBACELIARBADYCoAEgBEIANwKYAUEIIQcgBEGgAWoQ1CcgBCAINgL0AiAEIA42AvACIAQgAjYC7AIgBCACNgLoAiAEIAU2AsQCIARBADYCwAIgBEIENwO4AiAEIAY2AvwCIAQgBEGnAmo2AvgCIARBkANqIARBuAJqIgIQnw4CQCAEKAKQA0ETRgRAIAIQqCFBACECDAELIARBmAFqIgggBEG4AmoiBhD7DiAEQThqQQQgBCgCmAFBAWoiAkF/IAIbIgIgAkEETRtBCEEwEPsUIAQoAjghBSAEKAI8IgcgBEGQA2pBMBDaLSECIARBATYCjAMgBCACNgKIAyAEIAU2AoQDIAggBkHIABD7BhpBMCEGQQEhAgNAIARBwANqIARBmAFqIgUQnw4gBCgCwANBE0cEQCAEKAKEAyACRgRAIARBqAJqIAUQ+w4gBEGEA2ogBCgCqAJBAWoiBUF/IAUbEJgfIAQoAogDIQcLIAYgB2ogBEHAA2pBMBDaLRogBCACQQFqIgI2AowDIAZBMGohBgwBCwsgBEHAA2oQ1yUgBEGYAWoQqCEgBCgChAMhCwsgBEIANwKoASAEQgA3AqABIARCgICAgIABNwKYASAEQZgBahDpJkEAIQpBAAwBCyAEIAg2ApwDIAQgDjYCmAMgBCACNgKUAyAEIAI2ApADIAQgBEGIAmo2AqQDIAQgBEGnAmo2AqADIARBuAJqIARBkANqIgIQ0AMCfyAEKAK4AkETRgRAIAIQ5RdBCCEHQQAhAkEADAELIARBQGtBBEEIQTAQ+xQgBCgCQCEFIAQoAkQiByAEQbgCakEwENotIQIgBEEBNgKwAiAEIAI2AqwCIAQgBTYCqAIgBEHQA2ogBEGgA2opAgA3AwAgBEHIA2ogBEGYA2opAgA3AwAgBCAEKQKQAzcDwANBMCEGQQEhAgNAIARBmAFqIARBwANqENADIAQoApgBQRNHBEAgBCgCqAIgAkYEQCAEQagCakEBEJgfIAQoAqwCIQcLIAYgB2ogBEGYAWpBMBDaLRogBCACQQFqIgI2ArACIAZBMGohBgwBCwsgBEGYAWoQ1yUgBEHAA2oQ5RcgBCgCqAILIQsgBEIANwKoASAEQgA3AqABIARCgICAgIABNwKYASAEQZgBahDpJkEBCyEGQQAhCCADRQRAIAQoApgCIAEoAmRHIQgLQQBBACABQRBqIgEgASkDAFAiARtBACADGyABGyEBAkAgEEUEQCAEQShqIAEQsh0gBAJ/IAQpAygiG1AEQCAEQaABaiAEQYgCahDWG0EaDAELIAQoAjAhASAEQZgBaiAEQYgCahDWGyAEKQOYASEaIAQpA6ABIRkgBCAbIAEQxBg2AsABIARCADcDuAEgBCAZNwOwASAEIBo3A6gBIARBADYCoAFBFAs2ApgBIAQgBEGYAWoQ3Cg2ArQCIARBADYCqAIMAQsgCkUEQCADIAhyBEAgBEEANgKoASAEQgA3AqABIARCgICAgMAANwKYASAEIARBmAFqEJEVNgK0AiAEQQA2AqgCDAILIARBGGogARCyHSAEAn8gBCkDGCIbUARAIARBoAFqIARBiAJqENYbQRoMAQsgBCgCICEBIARBmAFqIARBiAJqENYbIAQpA5gBIRogBCkDoAEhGSAEIBsgARDEGDYCwAEgBEIANwO4ASAEIBk3A7ABIAQgGjcDqAEgBEEANgKgAUEUCzYCmAEgBEGYAWoQ3CghAyAEQQA2AsgCIARCADcCwAIgBEKAgICAwAA3ArgCIARBuAJqIgUQkRUhASAFEJseIARBEzoA0AMgBCABNgLEAyAEIAM2AsADIAQgBCkCwAI3AsgDIAUQjykgBCAEQcADahCSFTYCtAIgBEEANgKoAgwBCyAEQagCaiAEQYgCaiABEOwFC0HAAEEIEKsgIARBuAJqIgUgBEGIAmoQ1hsgBEGYAWoiCiAFEIUWIApBwAAQ+wYhASAEQQE2AsgDIAQgATYCxAMgBEEBNgLAAyAEQQA2AswCIARCADcCxAIgBCACNgLAAiAEIAc2ArwCIAQgCzYCuAIgCiAEQcADaiIDIAUQowpBEEEEEKsgIgFBCGogBEGwAmopAgA3AgAgASAEKQKoAjcCACAEQQE2AsQCIAQgATYCwAIgBEEBNgK8AiAKENcVIQIgBEIANwLcAiAEQQBBfiAGGyIBNgLYAiAEIAE2AtQCIARBBToA0AIgBCACNgLIAiAEQRc2ArgCIARCADcC2AMgBEEDOgDUAyAEQQA2AtADIARCADcC4AMgBEIANwLIAyAEQoCAgIDAADcCwAMgBEHMA2oQ0iUgAxDmJgJ/IAZFBEAgBEHQA2ogBEGYAmopAwA3AwAgBEHIA2ogBEGQAmopAwA3AwAgBCAEKQOIAjcDwAMgBEGgAWogAxDrGCAEQQA2ApgBIAUQ3CghAUE4QQgQqyAgCkEoEPsGIgJBADoANCACIAE2AjAgAiARNgIsIAIgEjYCKCAEQQE2ApgDIAQgAjYClAMgBEEBNgKQAyAEQdIDakIANwEAIAQgCDoAqQMgBEEANgKkAyAEIBE2AqADIAQgEjYCnAMgBEEAOgCoAyAEQgA3AswDIARCgICAgIABNwLAAyAEQQA2AsgDIARBkANqENcWIREgAEECNgIIIAMQ9CZBFAwBCyAEQbgCahDcKCEBIAAgEjYCCCAAIAE2AgQgBCkDiAIQ+RpBEgshASAAIBE2AgwgACABNgIACyAJEJkrCyAEQfADaiQADwtB5L/fABDgKQALqBsCIX8BfiMAQaABayICJAAgAkEANgJQQQEhBSACQQE2AkQgAkGYpcAANgJAIAJCBDcCSAJAAkAgASgCFCINIAEoAhgiDiACQUBrELUkDQAgAEEoaiEaIAAoAigiFUECaiEPIAEoAhghByABKAIUIQggACgCwAIhGyAAKAK8AiEcIAAoArgCIRYgACgCCCEZIAAoAgQhHQJAAkACQANAAkAgAkEgaiALIB0gGUGgpcAAEO0bAkACQCACKAIkIgkEQCACKAIgIQoCfwJAAkAgC0UEQCAKKAIAIgFB/wFxIQxBACEXDAELIAooAgAiAUH/AXEhDEEAIRcgCyAWTQ0BC0EADAELAkAgDEH/AUcEQCAMIAxBAnZqIAFBA3FBAEdqQQJqIgMgCUkNASADIAlBiIDEABCsEAALIAkgDyIDTQ0LC0EBIRdBASAKIANBAnRqKAIAIgQgBEEASBsLIR4CfwJAAkACQAJAAkACQCABQf8BcUH+AWsOAgAEAQsgCUEBaw4CAQIECyAJQQFHBEAgCigCBCEDIAJBEGpBAiAKIAlB+KnAABDtGyAMQQJ2IAFBA3FBAEdqIhAgAigCFCIBSw0MIAIoAhAhESACQQhqIBBBAmogCiAJQZiqwAAQ7RsgDCACKAIMIgFLDQsgAigCCCEfQQAMBQtBAUEBQeipwAAQrBAAC0EBQQFBuKrAABCsEAALQQJBAkHIqsAAEKwQAAsgCUEBRwRAIAooAgQhAyACQRhqQQIgCiAJQeiqwAAQ7RsgAigCHCIBIBVJDQYgAigCGCERIBUhEEECDAILQQFBAUHYqsAAEKwQAAsgAUEIdiEgIAooAgghESAKKAIEIQNBAQshISALBEAgCyAcRiALIBtGciEBIAsgFksEQCABDQMgAkEANgJQIAJBATYCRCACQZyawwA2AkAgAkIENwJIIA0gDiACQUBrELUkRQ0EDAoLIAFFBEAgAkEANgJQIAJBATYCRCACQaiawwA2AkAgAkIENwJIIA0gDiACQUBrELUkRQ0EDAoLIAJBADYCUCACQQE2AkQgAkGsrsAANgJAIAJCBDcCSCANIA4gAkFAaxC1JEUNAwwJCyACQQA2AlAgAkEBNgJEIAJBtJrDADYCQCACQgQ3AkggDSAOIAJBQGsQtSRFDQIMCAsgAkECNgJEIAJBpKbAADYCQCACQgE3AkwgAkEtNgKMASACIABBxAJqNgKIASACIAJBiAFqIgY2AkggCCAHIAJBQGsQtSQNByACQQI2AkQgAkHApsAANgJAIAJCATcCTCACQRQ2AowBIAIgACgCHCIEQQBHOgAsIAIgBjYCSCACIAJBLGoiAzYCiAEgCCAHIAJBQGsQtSQNByACQQI2AkQgAkGomcMANgJAIAJCATcCTCACQRU2AowBIAIgAEEYajYCiAEgAiAGNgJIIAggByACQUBrELUkDQcgAkECNgJEIAJByJnDADYCQCACQgE3AkwgAkEVNgKMASACIAAoAhQiATYCLCACIAY2AkggAiADNgKIASAIIAcgAkFAaxC1JA0HIAJBAjYCRCACQeymwAA2AkAgAkIBNwJMIAJBFTYCjAEgAiAAQawCajYCiAEgAiAGNgJIIAggByACQUBrELUkDQcgAkECNgJEIAJBlKfAADYCQCACQgE3AkwgAkEVNgKMASACIABBsAJqNgKIASACIAY2AkggCCAHIAJBQGsQtSQNByACQQI2AkQgAkG4p8AANgJAIAJCATcCTCACQRU2AowBIAIgGjYCiAEgAiAGNgJIIAggByACQUBrELUkDQcgAkECNgJEIAJB2KfAADYCQCACQgE3AkwgAkEsNgKMASACIABBLGo2AogBIAIgBjYCSCAIIAcgAkFAaxC1JA0HIAJB+KfAADYCQCACQgE3AkwgAkEVNgKMASAAKAIkIQAgAkECNgJEIAIgASAZakECdCAAQQAgBBtqNgIsIAIgBjYCSCACIAM2AogBIAggByACQUBrELUkDQcgAkEANgJQIAJBATYCRCACQfjDwwA2AkAgAkIENwJIIAggByACQUBrELUkIQUMBwsgAkEANgJQIAJBATYCRCACQaCuwAA2AkAgAkIENwJIIA0gDiACQUBrELUkDQYLIAIgCzYCPCACQQc2AjggAkEHNgIwIAIgAzYChAEgAiACQYQBajYCNCACIAJBPGo2AiwgAkEDOgB8IAJBCDYCeCACQqCAgIAQNwJwIAJCgICAgOAANwJoIAJBAjYCYCACQQM6AFwgAkEINgJYIAJCIDcCUCACQoCAgIDgADcCSCACQQI2AkAgAkECNgKcASACQQM2AowBIAJBsKXAADYCiAEgAiACQUBrNgKYASACQQI2ApQBIAIgAkEsajYCkAEgDSAOIAJBiAFqELUkDQRBACEGQQAhBEEAIRhBACEBQQAhEgNAIAYhAyAEIRMgIiEUA0ACQAJAAkACQAJAAn8CfwJ/AkACQAJAAkACQCAhQQFrDgIAAQILQQEhBSAgIQQgESABRQ0FGgwCCyABIBBPDQEgESEGIAEMAwsgASAMSQ0BCyASBEBBACESIAMhBiATIQQgFAwECyACQQA2AlBBASEFIAJBATYCRCACQcDO3wA2AkAgAkIENwJIIAggByACQUBrELUkDRACQCALBEAgCyAWSw0BIAJBADYCUCACQQE2AkQgAkHcpcAANgJAIAJCBDcCSCAIIAcgAkFAaxC1JA0SQQAhAQNAIAEgHkYEQCACQQA2AlAgAkEBNgJEIAJBwM7fADYCQCACQgQ3AkggCCAHIAJBQGsQtSRFDQMMFAsgAiABNgKIASAPIQMgCi0AACIEQf8BRwRAIAQgBEECdmogBEEDcUEAR2pBAmohAwsgAyAJSQRAAkACQAJAIAogA0ECdGooAgAiBEEATgRAIAEgA2pBAWoiBCAJSQ0BIAQgCUHY/8MAEKwQAAsgAUUNASACQQA2AkBBAEHUjeAAIAJBiAFqIAJBQGtB6P/DABDWGgALIAogBEECdGooAgAhAyABRQ0BIAJBADYCUCACQQE2AkQgAkH4xcMANgJAIAJCBDcCSCAIIAcgAkFAaxC1JEUNAQwWCyAEQf////8HcSEDCyACQQE2AkQgAkGE+OAANgJAIAJCATcCTCACQQc2AowBIAIgAzYCLCABQQFqIQEgAiACQYgBajYCSCACIAJBLGo2AogBIAggByACQUBrELUkRQ0BDBQLCyADIAlByP/DABCsEAALIAJBBzYCMCACQQE2AoQBIAJBATYCnAEgAkECNgKMASACQeilwAA2AogBIAJBATYClAEgAiACQYQBajYCLCACQQM6AFwgAkEINgJYIAJCIDcCUCACQoCAgIDgADcCSCACQQI2AkAgAiACQUBrNgKYASACIAJBLGo2ApABIAggByACQYgBahC1JA0RC0ECIQYgFSEEAkACQAJAIAotAAAiAUH+AWsOAgECAAsgAUECdiABQQNxQQBHakECaiEGIAEhBAwBC0EBIQQLQQAhAwJAAkACQAJAIBdFDQACQAJAIAFB/wFHBEAgASABQQJ2aiABQQNxQQBHakECaiIBIAlJDQEgASAJQYiAxAAQrBAACyAJIA9NDQNBASEDIAogD0ECdGooAgAiAUEASA0CIAFBAUcNAQwCC0EBIQMgCiABQQJ0aigCACIBQQBIIAFBAUZyDQELIAFBAWohAwsgCyAEIAZqIANqaiIBIAtJDQEgAkFAayABEOMcIAIoAkBBAUYNAiACKAJEIQsMDwsgDyAJQZiAxAAQrBAAC0H4pcAAEOApAAsgAiACKQNINwOIAUGc6+AAQSsgAkGIAWpB9KTAAEGIpsAAEMUOAAsgAUECdiIEIBBPDQMgAiARIARBAnRqKAIANgJAIB8hBiACQUBrIAFBA3FyLQAACyEEIAFBAWohBSAGIAFBAnRqKAIACyEGIBJFBEAgBq1CIIYgBK1C/wGDIiNCCIaEICOEISMMBgsgAyAGRg0CQQEhEiAFIQEgBAshIiADQQFGDQYgGA0CDAMLIAQgEEGUrMAAEKwQAAsgFK1C/wGDIAOtQiCGIAStQv8Bg0IIhoSEISMMAgsgAkEANgJQQQEhBSACQQE2AkQgAkH4xcMANgJAIAJCBDcCSCAIIAcgAkFAaxC1JA0JCyAYQQFqIRggFEH/AXEgE0H/AXFHBEAgAiAUOgA8IAIgEzoAhAEgAkEDNgKMASACQbjHwwA2AogBIAJCAzcClAEgAkEVNgJUIAJBFjYCTCACQRY2AkQgAiADNgIsIAIgAkFAazYCkAEgAiACQSxqNgJQIAIgAkGEAWo2AkggAiACQTxqNgJAIAggByACQYgBahC1JA0IDAMLIAIgEzoAhAEgAkECNgJEIAJBhMbDADYCQCACQgI3AkwgAkEVNgKUASACQRY2AowBIAIgAzYCLCACIAJBiAFqNgJIIAIgAkEsajYCkAEgAiACQYQBajYCiAEgCCAHIAJBQGsQtSQNBwwCCyAjQiCIpyEDICNCCIinIRMgI6chFEEBIRIgBSEBDAALAAsACwsgFSABQfiqwAAQrhAACyAMIAFBqKrAABCuEAALIBAgAUGIqsAAEK4QAAtBASEFCyACQaABaiQAIAUPCyAPIAlBmIDEABCsEAALhhsCG38CfiMAQfADayICJAAgAiABKAIIIgZBOBCHFSABKAIAIQMgAikDACEdIAFBADYCACABKAIEIRAgAUEINgIEIAFBADYCCCACQQA2AhAgAiAdNwIIIAIgECAGQThsaiIYNgIgIAIgAzYCHCACIBA2AhggAiAQNgIUIAJBgANqIQ4gAkHUAWohESACQcgDaiELIAJBjAJqIRIgAkHwAWohEyACQagCaiEUIAJBgAFqIRkgAkGwA2pBBHIhFSACQfQAaiEWIAJB7ABqIQwgAkHoAGohDyACQeQAaiEJIAJB4ABqIRcgAkHYAGpBBHIhGgNAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAiAyAYRg0AIAIgA0E4aiIQNgIYIAMoAgAhBiACQSRqIgQgA0EEakE0EPsGGiAGQQpGDQAgAiAGNgJYIBogBEE0EPsGGiACQZABaiAAEOsdAkACQCACKAJYQQFrDgkDCwoJCAcGBQABC0EBIAIoAmAiA3RB/+8XcSADQQtGcg0DIAIoAmgaDAMLIAIoAmRByABsIQQgAigCYCEFA0ACQCAEBEACQAJAAkAgBSkDACIeQgN9Ih2nQQFqQQAgHUICVBtBAWsOAgECAAsCQCAeQgJRBEAgAkH4AmogBUEgaiIDENYbIAIoArQBIAMQ+wVFDQEgAikD+AIQ+RoMBQsgAigCtAEgBUEgahD7BRoMBAsgAyACQfgCahCaCkUEQCACQcADaiIGIAJBiANqKQMANwMAIAJBuANqIgMgDikDADcDACACIAIpA/gCNwOwAyAFEIElIAVCADcDACAFIAIpA7ADNwMIIAVBEGogAykDADcDACAFQRhqIAYpAwA3AwAMBAsgAikD+AIQ+RoMAwsgAigCtAEgBUEQahD7BRoMAgsgAigCtAEgBUEQahD7BRoMAQsgFiACQZABahCXJAwNCyAFQcgAaiEFIARByABrIQQMAAsACyACQRRqENkXIAJBCGogABDaFyABEIonIAFBCGogAkEQaigCADYCACABIAIpAgg3AgAgAkHwA2okAA8LIAIoAowBIQcgAigCiAEhCgJAAkACQAJAIAIoAmAOAwECAAwLIAIoAmQiBCgCCCEGIARBADYCCCAEKAIEIQMgBEEINgIEIAQoAgAhCCAEQQA2AgAgAkEANgLAASACQoCAgICAATcCuAEgBiEFIAMhBANAIAVFDQMgAkHAAmoiDSAEQTgQ+wYaIAJBsANqIhsgDUE4EPsGGiACIAJBuAFqNgLsAyACIAJBkAFqIhw2AugDIBsgAkHoA2oQyAkgAigC4AMiDQRAIA0gHBD4AgsgAkH4AmoiDSACQbADakE4EPsGGiAFQQFrIQUgBCANQTgQ+wZBOGohBAwACwALIAJBuAFqIgQgDxDZFSACIBkQtRMiAzYC6AMgAyACQZABaiIFENMFIAJBwAJqIAQQ1hsCQCACKAK0ASAEEPsFRQRAIAJBsANqIgggBBDWGyACQegDahC1EyEGIBIgAikDsAM3AgAgEkEIaiACQbgDaikDADcCACASQRBqIAJBwANqKQMANwIAIAItAIQBIQMgAkHYAGoQsAggDCACKQKIAjcCACAMQQhqIAJBkAJqKQIANwIAIAxBEGogAkGYAmopAgA3AgAgDEEYaiACQaACaigCADYCACACQQA2AmggAkERNgJgIAJBCTYCWCACIAM6AIwBIAIgBjYCiAFB0ABBCBCrICEDIAJB+AJqIAQQ2RUgA0IANwMAIANCADcDICADQgA3A0AgA0HIAGpBADoAACADIAIpA/gCNwMIIANBEGogDikDADcDACADQRhqIAJBiANqKQMANwMAIAMgAikDwAI3AyggA0EwaiACQcgCaikDADcDACADQThqIAJB0AJqKQMANwMAIAtCADcDACALQQhqQQA6AAAgAiADNgK4AyACQQE2ArwDIAIgCjYCwAMgAiAHNgLEAyACQoKAgIAQNwOwAyAFIAgQ/RkMAQsgAikDiAEhHSACQbADaiACQbgBahDZFSACQegDahC1EyEGIBEgAikDsAM3AgAgEUEIaiACQbgDaikDADcCACARQRBqIAJBwANqKQMANwIAIAItAIQBIQMgAkHYAGoQsAggCSACKQLQATcCACAJQQhqIAJB2AFqKQIANwIAIAlBEGogAkHgAWopAgA3AgAgCUEYaiACQegBaigCADYCACACQQA2AmAgAkEBNgJYIAIgHTcDiAEgAiADOgCEASACIAY2AoABIAIpA8ACEPkaCyACQegDahCNFiACKQO4ARD5GgwLCyACQcACaiIEIA8Q2RVByABBBBDXIiIDQgA3AjAgA0GAgICAeDYCGCADQgQ3AhAgA0IANwIIIANCgICAgIABNwIAIANBOGpCADcCACADQT5qQgA3AQAgAigCgAEhBiACIAM2AoABIAYgAkGQAWoiBRC4FSACQfgCaiAEENYbIAIoArQBIAQQ+wVFBEAgAkGwA2oiCCAEENYbIBQgAikDsAM3AgAgFEEIaiACQbgDaikDADcCACAUQRBqIAJBwANqKQMANwIAIAItAIQBIQMgAkHYAGoQsAggDCACKQKkAjcCACAMQQhqIAJBrAJqKQIANwIAIAxBEGogAkG0AmopAgA3AgAgDEEYaiACQbwCaigCADYCACACQQE2AmggAkERNgJgIAJBCTYCWCACIAM6AIwBIAIgBjYCiAFB0ABBCBCrICIDQgA3AwAgA0IANwMgIANCADcDQCADIAIpA8ACNwMIIANBEGogAkHIAmopAwA3AwAgA0EYaiACQdACaikDADcDACADIAIpA/gCNwMoIANBMGogDikDADcDACADQThqIAJBiANqKQMANwMAIANByABqQQA6AAAgAiAHNgLEAyACIAo2AsADIAJBATYCvAMgAiADNgK4AyACQoKAgIAQNwOwAyALQQhqQQA6AAAgC0IANwMAIAUgCBD9GQwLCyATIAIpA8ACNwIAIBNBCGogAkHIAmopAwA3AgAgE0EQaiACQdACaikDADcCACACLQCEASEDIAIpA4gBIR0gAkHYAGoQsAggCSACKQLsATcCACAJQQhqIAJB9AFqKQIANwIAIAlBEGogAkH8AWopAgA3AgAgCUEYaiACQYQCaigCADYCACACQQE2AmAgAkEBNgJYIAIgHTcDiAEgAiADOgCEASACIAY2AoABIAIpA/gCEPkaDAoLIAIoAsABBEAgCRDkFiEEIAIgBjYCuAMgAiADNgK0AyACIAg2ArADIAIgBCkCDDcCvAMgAiAEKAIUNgLEAyACIAQvARg7AcgDIAJBsANqIgYQ1xYhAyACQdgAahCwCCACIAM2AmwgAkECNgJoIAJBETYCYCACQQk2AlggBBDtKCAVQQhqIAJBwAFqKAIANgIAIBUgAikCuAE3AgAgC0IANwMAIAtBCGpBADoAACACIAc2AsQDIAIgCjYCwAMgAkECNgKwAyACQZABaiAGEP0ZDAoLIAkQ5BYhBCACIAY2ArgDIAIgAzYCtAMgAiAINgKwAyACIAQpAgw3ArwDIAIgBCgCFDYCxAMgAiAELwEYOwHIAyACQbADahDXFiEDIAJB2ABqELAIIAIgBzYCjAEgAiAKNgKIASACIAM2AmQgAkECNgJgIAJBATYCWCAEEO0oIAJBuAFqEIojDAkLIBcgAkGQAWoQzgQMCAsgAigCtAEgDxD7BRoMBwsgAigCXCACQZABahD4AgwGCyACKAK0ASACKAJcQShqEPsFGgwFCyAPIAJBkAFqEJckDAQLIAIoAlwgAkGQAWoQ+AIMAwsCQAJAIAIoAmBBAWsOAgEEAAsgAkGQAWogDxDTDAwDCyAPIAJBkAFqEOkfDAILIAIoAnANASACKAJkQdAAbCENQQAhBSACKAJgIQQDQAJAIAUgDUcEQAJAAkACQEICIAQgBWoiBykDACIeQgJ9Ih0gHUICWhunQQFrDgIBAgALIAdBCGogAigCtAEQoiMMAwsgAigCtAEgB0EIahD7BRoMAgsCQAJAIAdBIGoiCikDAEICUQRAIAdBCGohCCACAn4gHqdBAXFFBEAgDiAIENYbQgAMAQsgB0EUaigCACEGIAdBEGooAgAhAyAIKQMAEPwaIR4gAiAHQRhqKQMAIh1QBH5CAAUgHRD8Ggs3A5ADIAIgBjYCjAMgAiADNgKIAyACIB43A4ADQgELIh03A/gCIAcoAgANAiACKAK0ASAIEPsFDQIgHVAEQCAIIA4QmgoNAgsgCyACQZADaikDADcDACACQcADaiIGIAJBiANqKQMANwMAIAJBuANqIgMgDikDADcDACACIAIpA/gCNwOwAyAKEIElIApBGGogCykDADcDACAKQRBqIAYpAwA3AwAgCkEIaiADKQMANwMAIAogAikDsAM3AwAMBAsgByACKAK0ARCiIwwDCyACQfgCahCMIAwCCyACQfgCahCMIAwBCyAWIAJBkAFqEJckDAMLIAVB0ABqIQUMAAsACyACQZABaiAXEJoECyACQbADaiIDIAJB2ABqQTgQ+wYaIAJBCGoiBCADEP0ZIAQgAkGQAWoiAxDaFyADENcpDAALAAvYFwIKfwV+IwBBQGoiAiQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAALQAAQQFrDgUAAQIDBQQLIAJBCGoiBSABKAIAQY294ABBiL3gACAALQABIgAbQQRBBSAAGxDyJCAFEOYYIQEMDAsCQAJAAkAgACgCCEEBaw4CAQIAC0EUIQMgACkDECINQpDOAFQEQCANIQwMDQsDQCACQQhqIANqIgBBBGsgDSANQpDOAIAiDEKQzgB+faciBUH//wNxQeQAbiIEQQF0QbSL2ABqLwAAOwAAIABBAmsgBSAEQeQAbGtB//8DcUEBdEG0i9gAai8AADsAACADQQRrIQMgDUL/wdcvViAMIQ0NAAsMDAtBFCEDIAApAxAiDiAOQj+HIgyFIAx9Ig1CkM4AVARAIA0hDAwLCwNAIAJBCGogA2oiAEEEayANIA1CkM4AgCIMQpDOAH59pyIFQf//A3FB5ABuIgRBAXRBtIvYAGovAAA7AAAgAEECayAFIARB5ABsa0H//wNxQQF0QbSL2ABqLwAAOwAAIANBBGshAyANQv/B1y9WIAwhDQ0ACwwKCyAAKQMQIgxC////////////AINC//////////f/AFgEQCAMQv////////8HgyENIAxCNIinIQAgDEIAUw0FIAJBCGohBQwJCyACQQhqIgAgASgCAEHItuAAQQQQ8iQgABDmGCEBDAsLIAEoAgAgACgCCCAAKAIMEJUcIQEMCgsgASAAQQRqEPcKIQEMCQsgASgCABCWHCEBDAgLIAJBCGogASAAKAIMIgEQog0gAi0ADCIKQQNGDQEgAigCCCEJIAAoAgghAyACIAFBACAAKAIEIgAbIgs2AiggAiADNgIkIAIgADYCICACQQA2AhwgAiAAQQBH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AkHAAWopAwA3AwAgAkEwaiACQcgBaikDADcDACACIC83AxhCAwwBCyAFQQhqKQIAIS8gByAFQRBqENYbIAJBIGogBykDADcDACACQShqIAJBwAFqKQMANwMAIAJBMGogAkHIAWopAwA3AwAgAiAvNwMYQgQLIS8gByACQSBqKQMANwMAIAJBwAFqIhAgAkEoaikDADcDACACQcgBaiINIAJBMGopAwA3AwAgEiATKQMANwMAIAJB8ABqIhQgAkHQAGopAwA3AwAgAkH4AGoiESACQdgAaikDADcDACACIAIpAxg3A7ABIAIgAikDQDcDYCABIA9qIgUgLzcDACAFQQhqIAIpA7ABNwMAIAVBEGogBykDADcDACAFQRhqIBApAwA3AwAgBUEgaiANKQMANwMAIAVBKGogAikDYDcDACAFQTBqIBIpAwA3AwAgBUE4aiAUKQMANwMAIAVBQGsgESkDADcDACAKQQFrIQogAUHIAGohAQwBCwsgAygCEBCbESEFIAMtACAhCyADQRxqEK0OIQwgAy0AISEQDAsLIAMoAjQhCiADKAIwIQ0CQAJAAkACQAJAAkACQAJAAkAgAygCCCIPQQFrDgcBAgMEBQYHAAsgAkGwAWogA0EQahDWGyADLQAsIQEgAiADQShqEP0LNgLIAQwUCyACQbABaiADQRBqENYbIAMtACwhASACIANBKGoQ/gs2AsgBDBMLEO0iIQYgAygCDCIBKAIUIQQgASkCDCEvIAEvARghCSACQbABaiABENEKIAJByAFqIgEgCTsBACAGIAIpArABNwIAIAIgLzcCvAEgBkEIaiAHKQIANwIAIAIgBDYCxAEgBkEQaiACQcABaikCADcCACAGQRhqIAEoAgA2AgAMBQsQ7iIhBiADKAIMIgEtABQhBCABKQIMIS8gAkGwAWogARDRCiAGIAIpArABNwIAIAIgLzcCvAEgBkEIaiAHKQIANwIAIAIgBDoAxAEgBkEQaiACQcABaikCADcCAAwECyADQQxqEJsLIQYMAwsQ7yIhBiADKAIMIgEpAwAhLyABLQAoIQQgByABQQhqENYbIAFBIGoQnw8hCSABQSRqEPcZIQEgAiAEOgDYASACIC83A7ABIAIgATYC1AEgAiAJNgLQASAGIAJBsAFqQTAQ+wYaDAILEO8iIQYgAygCDCIBKQMYIS8g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2AEgARCPKwwBCyAELQCsASECIARB4AFqIANBCGopAwA3AwAgBEHoAWogA0EQaikDADcDACAEQdYBaiAEQa8Bai0AADoAACAEIAQvAK0BOwHUASAEIAMpAwA3A9gBIAQoAowBIQMgASEFCyAAIAM2AgQgACAHNgIAIAAgBCkD2AE3AwggACACOgAkIAAgBTYCICAAIAQvAdQBOwAlIABBEGogBEHgAWopAwA3AwAgAEEYaiAEQegBaikDADcDACAAQSdqIARB1gFqLQAAOgAADA8LIAQoAowBIQEgAEEJNgIAIAAgATYCBAwOCyAEQfABaiABIAQoAiQiASABIANBABCIBCAEKALwASIGQQhHBEAgBEH4AWohAyAEKAKQAiEBAkAgBkUEQCAEQZABaiABQQhqKAIANgIAIARBnAFqIAFBFGooAgA2AgAgBEGoAWogAUEgaigCADYCACAEIAEpAgA3A4gBIAQgASkCDDcClAEgBCABKQIYNwOgASABKQIoIQogASkCMCELIAEoAjghByABLQA8IQggBCgCKCEJQcAAQQQQqyAiAiAEQYgBakEkEPsGIgUgCDoAPCAFIAc2AjggBSALNwIwIAUgCjcCKCAFIAk2AiQgBEHAAWogA0EIaikDADcDACAEQcgBaiADQRBqKQMANwMAIAQgAykDADcDuAEgARCXK0EBIQUMAQsgBC0AlAIhBSAEQcABaiADQQhqKQMANwMAIARByAFqIANBEGopAwA3AwAgBEG2AWogBEGXAmotAAA6AAAgBCAELwCVAjsBtAEgBCADKQMANwO4ASAEKAL0ASEDIAEhAgsgACADNgIEIAAgBjYCACAAIAQpA7gBNwMIIAAgBToAJCAAIAI2AiAgACAELwG0ATsAJSAAQRBqIARBwAFqKQMANwMAIABBGGogBEHIAWopAwA3AwAgAEEnaiAEQbYBai0AADoAAAwOCyAEKAL0ASEBIABBCTYCACAAIAE2AgQMDQsgAhDjDSIDRQRAIAEoAtgCIQEgBEEAOgDwASABIAEgBEHwAWoQgRUhASAAQQk2AgAgACABNgIEDAwLIAMoAgBBJEYEQCABIAEpA0A3A3ggASgCKCABQSU2AihBJEcNBSABKAIsIQEgAEEJNgIAIAAgATYCBAwMCyABKAIoIQMgAUElNgIoIAEgASkDQDcDeCAEQfwBaiABQTRqKQIANwIAIARBhAJqIAFBPGooAgA2AgAgBCABKQIsNwL0ASAEIAM2AvABIARB8AFqEMcKIAIQ4w0iA0UNAyADKAIAQSRGBEAgASABKQNANwN4IAEoAiggAUElNgIoQSRHDQYgASgCLCEBIABBCTYCACAAIAE2AgQMDAsgAhDjDSICRQ0KAkAgAigCAEEkRgRAIAEgASkDQDcDeCABKAIoIAFBJTYCKEEkRg0BQeXs4ABBKEGM6d8AEPQXAAsgASgCKCEDIAFBJTYCKCABIAEpA0A3A3ggBEH8AWogAUEsaiICQQhqKQIANwIAIARBhAJqIAJBEGooAgA2AgAgBCACKQIANwL0ASAEIAM2AvABIARB8AFqEMcKIARBGGogASAEKAIkQQEQfCAEKAIcIQEgBCgCGEEBcUUEQCABKAIAIQIgBEH4AWogAUEMaikCADcDACAEQYACaiABQRRqKAIANgIAIAQgASkCBDcD8AEgAS0ALSEFIAEoAhwhBiABKQIkIQogASgCICEDIAQoAighByABEJkrIANBgICAgHhHDQggAiEBCyAAQQk2AgAgACABNgIEDAwLIAEoAiwhASAAQQk2AgAgACABNgIEDAsLIARBEGogAUEAEIQBIAQoAhQhASAEKAIQQQFxRQRAIAEoAgghBSABKAIEIQIgAS0AGSEGIAEoAhQhByABKAIQIQggASgCACEDIAQoAighCSABEPEqIANBgICAgHhHDQcgAiEBCyAAQQk2AgAgACABNgIEDAoLIARBCGogASAEKAIkEKkCIAQoAgwhASAEKAIIQQFxRQRAIARBBzYC8AEgBCABNgL0ASAEQYgBaiAEQfABahD7HCAEKAKIAUEIRw0HIAQoAowBIQELIABBCTYCACAAIAE2AgQMCQsgAhDjDSICRQRAIAEoAtgCIQEgBEEAOgDwASABIAEgBEHwAWoQgRUhASAAQQk2AgAgACABNgIEDAkLAkAgAigCACIFQQJHBEAgBUEkRw0BIAEgASkDQDcDeCABKAIoIAFBJTYCKEEkRw0IIAEoAiwhASAAQQk2AgAgACABNgIEDAoLIARB8AFqIgUgAkEIahCHEyAFEJwRIQogBEGIAWogASAEKAIkIAMgCkEBEMABIAQoAogBIgFBCUcEQAJAIAFBCEYEQCAEQQg2AvABDAELIARB8AFqIARBiAFqEPscCyAAIARB8AFqQSgQ+wYaDAsLIAAgBCgCjAE2AgQgAEEJNgIADAoLQeXs4ABBKEGs6d8AEPQXAAsgASgC2AIhASAEQQA6APABIAEgASAEQfABahCBFSEBIABBCTYCACAAIAE2AgQMBwtB5ezgAEEoQezo3wAQ9BcAC0Hl7OAAQShB/OjfABD0FwALQTBBCBCrICIBIAI2AgAgASAFOgAtIAFBAToALCABIAo3AiQgASADNgIgIAEgBjYCHCABIAc2AhggASAEKQPwATcCBCABQQxqIARB+AFqKQMANwIAIAFBFGogBEGAAmooAgA2AgAgACABNgIEIABBBjYCAAwEC0EcQQQQqyAiASAGOgAZIAFBAToAGCABIAc2AhQgASAINgIQIAEgCTYCDCABIAU2AgggASACNgIEIAEgAzYCACAAIAE2AgQgAEECNgIADAMLIAAgBEGIAWpBKBD7BhoMAgtB5ezgAEEoQZzp3wAQ9BcACyABKALYAiEBIARBADoA8AEgASABIARB8AFqEIEVIQEgAEEJNgIAIAAgATYCBAsgBEHwAGoQ7iYLIARBzABqEKMmCyAEQaACaiQAC5IaAgZ/An4jAEGgAmsiBCQAIAQgAjYCJAJAIAEtAKACQQJHBEAgAEEINgIAIAMQ7iYMAQsgAUGqAmohBQJAIAEtALgCQQFxRQ0AIAEtAKMCQQFxDQAgASgCnAMhBiAEQfwAOgDwASABIAIgBiACIAZJGyACIAYgAiAGSxsgBEHwAWoQxhkgBCgCJCECCyAEIAI2AiggBEEBOgA9IAQgASkBqgI3AC8gBCABKAGyAjYANyAEIAEvAbYCOwA7IAQgASkAuQI3AD4gBCABKADBAjYARiAEIAEvAMUCOwBKIARB5QBqIAVBFWopAAA3AAAgBEHgAGogBUEQaikBADcCACAEQdgAaiAFQQhqKQEANwIAIAQgBSkBADcCUCABQShqIgIgBEEvahDSCCAEIAE2AkwgBEH4AGogA0EIaigCADYCACAEIAMpAgA3A3AgBCAEQSRqNgKAASAEIARBKGo2AnwCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAIQyg0iBUUNACAFKAIAQQJHDQAgBS0ACEECRw0AIAUtAAlBC0YNAQsCQCACEMoNIgVFDQAgBSgCAEECRw0AIAUtAAhBAkcNACAFLQAJQRlGDQILAkAgAhDKDSIFRQ0AIAUoAgBBAkcNACAFLQAIQQJHDQAgBS0ACUETRw0AIAIQrRMiBUUNACAFKAIAQQJHDQAgBS0ACA0AIAUtAAlBDUYNAwsCQCACEMoNIgVFDQAgBSgCAEECRw0AIAUtAAhBAkcNACAFLQAJQRNGDQQLAkAgAhDKDSIFRQ0AIAUoAgBBAkcNACAFLQAIQQJHDQAgBS0ACUERRg0ECwJAIAIQyg0iBUUNACAFKAIAQQJHDQAgBS0ACEECRw0AIAUtAAlBEkYNBAsCQCACEMoNIgVFDQAgBSgCAEECRw0AIAUtAAgNACAFLQAJQQZGDQULIAIQyg0iBQRAIAUoAgBBAkYNBgsgAEEINgIAIARB8ABqEO4mDA8LIARB+AFqIgUgA0EIaigCADYCACAEIAMpAgA3A/ABIARBiAFqIAEgBEHwAWoiBhDfKCAEKAKIASIHQQhHBEBBASECIARBkAFqIQMgBCgCqAEhAQJAIAdBAUYEQCAFIAFBCGooAgA2AgAgBEGEAmogAUEUaigCADYCACAEQZACaiABQSBqKQIANwMAIARBmAJqIAFBKGopAgA3AwAgBCABKQIANwPwASAEIAEpAgw3AvwBIAQgASkCGDcDiAIgASkCNCEKIAEpAjwhCyABLwFEIQggBCgCKCEJQcgAQQQQqyAiBSAGQTAQ+wYiBiAIOwFEIAYgCzcCPCAGIAo3AjQgBiAJNgIwIARB4AFqIANBCGopAwA3AwAgBEHoAWogA0EQaikDADcDACAEIAMpAwA3A9gBIAEQjysMAQsgBC0ArAEhAiAEQeABaiADQQhqKQMANwMAIARB6AFqIANBEGopAwA3AwAgBEHWAWogBEGvAWotAAA6AAAgBCAELwCtATsB1AEgBCADKQMANwPYASAEKAKMASEDIAEhBQsgACADNgIEIAAgBzYCACAAIAQpA9gBNwMIIAAgAjoAJCAAIAU2AiAgACAELwHUATsAJSAAQRBqIARB4AFqKQMANwMAIABBGGogBEHoAWopAwA3AwAgAEEnaiAEQdYBai0AADoAAAwPCyAEKAKMASEBIABBCTYCACAAIAE2AgQMDgsgBEHwAWogASAEKAIkIgEgASADQQAQiQQgBCgC8AEiBkEIRwRAIARB+AFqIQMgBCgCkAIhAQJAIAZFBEAgBEGQAWogAUEIaigCADYCACAEQZwBaiABQRRqKAIANgIAIARBqAFqIAFBIGooAgA2AgAgBCABKQIANwOIASAEIAEpAgw3ApQBIAQgASkCGDcDoAEgASkCKCEKIAEpAjAhCyABKAI4IQcgAS0APCEIIAQoAighCUHAAEEEEKsgIgIgBEGIAWpBJBD7BiIFIAg6ADwgBSAHNgI4IAUgCzcCMCAFIAo3AiggBSAJNgIkIARBwAFqIANBCGopAwA3AwAgBEHIAWogA0EQaikDADcDACAEIAMpAwA3A7gBIAEQlytBASEFDAELIAQtAJQCIQUgBEHAAWogA0EIaikDADcDACAEQcgBaiADQRBqKQMANwMAIARBtgFqIARBlwJqLQAAOgAAIAQgBC8AlQI7AbQBIAQgAykDADcDuAEgBCgC9AEhAyABIQILIAAgAzYCBCAAIAY2AgAgACAEKQO4ATcDCCAAIAU6ACQgACACNgIgIAAgBC8BtAE7ACUgAEEQaiAEQcABaikDADcDACAAQRhqIARByAFqKQMANwMAIABBJ2ogBEG2AWotAAA6AAAMDgsgBCgC9AEhASAAQQk2AgAgACABNgIEDA0LIAIQyg0iA0UEQCABKAKAAiEBIARBADoA8AEgASABIARB8AFqEIEVIQEgAEEJNgIAIAAgATYCBAwMCyADKAIAQSRGBEAgASABKQPgAjcDmAMgASgCyAIgAUElNgLIAkEkRw0FIAEoAswCIQEgAEEJNgIAIAAgATYCBAwMCyABKALIAiEDIAFBJTYCyAIgASABKQPgAjcDmAMgBEH8AWogAUHUAmopAgA3AgAgBEGEAmogAUHcAmooAgA2AgAgBCABKQLMAjcC9AEgBCADNgLwASAEQfABahDGCiACEMoNIgNFDQMgAygCAEEkRgRAIAEgASkD4AI3A5gDIAEoAsgCIAFBJTYCyAJBJEcNBiABKALMAiEBIABBCTYCACAAIAE2AgQMDAsgAhDKDSICRQ0KAkAgAigCAEEkRgRAIAEgASkD4AI3A5gDIAEoAsgCIAFBJTYCyAJBJEYNAUHl7OAAQShBjOnfABD0FwALIAEoAsgCIQMgAUElNgLIAiABIAEpA+ACNwOYAyAEQfwBaiABQcwCaiICQQhqKQIANwIAIARBhAJqIAJBEGooAgA2AgAgBCACKQIANwL0ASAEIAM2AvABIARB8AFqEMYKIARBGGogASAEKAIkQQEQeiAEKAIcIQEgBCgCGEEBcUUEQCABKAIAIQIgBEH4AWogAUEMaikCADcDACAEQYACaiABQRRqKAIANgIAIAQgASkCBDcD8AEgAS0ALSEFIAEoAhwhBiABKQIkIQogASgCICEDIAQoAighByABEJkrIANBgICAgHhHDQggAiEBCyAAQQk2AgAgACABNgIEDAwLIAEoAswCIQEgAEEJNgIAIAAgATYCBAwLCyAEQRBqIAFBABCFASAEKAIUIQEgBCgCEEEBcUUEQCABKAIIIQUgASgCBCECIAEtABkhBiABKAIUIQcgASgCECEIIAEoAgAhAyAEKAIoIQkgARDxKiADQYCAgIB4Rw0HIAIhAQsgAEEJNgIAIAAgATYCBAwKCyAEQQhqIAEgBCgCJBCoAiAEKAIMIQEgBCgCCEEBcUUEQCAEQQc2AvABIAQgATYC9AEgBEGIAWogBEHwAWoQ+xwgBCgCiAFBCEcNByAEKAKMASEBCyAAQQk2AgAgACABNgIEDAkLIAIQyg0iAkUEQCABKAKAAiEBIARBADoA8AEgASABIARB8AFqEIEVIQEgAEEJNgIAIAAgATYCBAwJCwJAIAIoAgAiBUECRwRAIAVBJEcNASABIAEpA+ACNwOYAyABKALIAiABQSU2AsgCQSRHDQggASgCzAIhASAAQQk2AgAgACABNgIEDAoLIARB8AFqIgUgAkEIahCHEyAFEJwRIQogBEGIAWogASAEKAIkIAMgCkEBEL8BIAQoAogBIgFBCUcEQAJAIAFBCEYEQCAEQQg2AvABDAELIARB8AFqIARBiAFqEPscCyAAIARB8AFqQSgQ+wYaDAsLIAAgBCgCjAE2AgQgAEEJNgIADAoLQeXs4ABBKEGs6d8AEPQXAAsgASgCgAIhASAEQQA6APABIAEgASAEQfABahCBFSEBIABBCTYCACAAIAE2AgQMBwtB5ezgAEEoQezo3wAQ9BcAC0Hl7OAAQShB/OjfABD0FwALQTBBCBCrICIBIAI2AgAgASAFOgAtIAFBAToALCABIAo3AiQgASADNgIgIAEgBjYCHCABIAc2AhggASAEKQPwATcCBCABQQxqIARB+AFqKQMANwIAIAFBFGogBEGAAmooAgA2AgAgACABNgIEIABBBjYCAAwEC0EcQQQQqyAiASAGOgAZIAFBAToAGCABIAc2AhQgASAINgIQIAEgCTYCDCABIAU2AgggASACNgIEIAEgAzYCACAAIAE2AgQgAEECNgIADAMLIAAgBEGIAWpBKBD7BhoMAgtB5ezgAEEoQZzp3wAQ9BcACyABKAKAAiEBIARBADoA8AEgASABIARB8AFqEIEVIQEgAEEJNgIAIAAgATYCBAsgBEHwAGoQ7iYLIARBzABqEIclCyAEQaACaiQAC4IbAQt/IwBBoAhrIgIkACACQcgAaiABQShqIgUQhRQCQAJAAkACQAJAAkAgAS0AoAJBAkcNACACKAJMIQkgAigCSCEKAkACQCAFEMoNIgNFDQAgAygCAEEURw0AIAMtAARBBEYNAQsgBRDKDSIDRQ0BIAMoAgBBIUcNAQsCQCAFEK0TIgMEQCADKAIAQQJGDQELIAUQrRMiA0UNASADKAIAQR9HDQELQQAhAyACQQA6AGMgAiABKQGqAjcAUyACIAEpALsCNwBkIAIgASgAwwI2AGwgAiABQbICaiIEKQEANwBbIAJBjQFqIAFBvwJqKQAANwAAIAJBiAFqIAFBugJqKQEANwIAIAJBgAFqIAQpAQA3AgAgAiABKQGqAjcCeCAFIAJB0wBqENIIIAIgATYCdAJAIAEtAKACQQJHDQAgAS0AqgIhCyACQZgBaiABEKMDIAJBAToAuAQgAiABKQCrAjcAuQQgAiABKQCzAjcAwQQgAiABKQC7AjcAyQQgAiABKADDAjYA0QQgAkHAAWoiByACQbgEahDSCAJAIAcQyg0iA0UNACADKAIAQSFHDQAgAkHUAWoQzhdB/wFxQQpHDQAgAigC2AIiAyEEIAJB2AJqIgYhCCADQYEBTwRAIAJB2AFqIQggAigC2AEhBAsgBARAIAggBEEBazYCACACKALYAiEDCyADQYEBTwRAIAJB2AFqIQYgAigC2AEhAwsgA0UNACAGIANBAWs2AgALQQAhAyACQUBrIAJBmAFqQQBBARCTASACKAJEIQYCQCACKAJABEAgBiEEDAELIAJBOGogAkGYAWoiDBB2IAIoAjwhBCACKAI4RQRAIAIgBDYCgAgCQAJAIAQoAgBBHkcEQCACQewEaiAHEJEQIAJBATYC6AQgAkGfteAANgLkBCACQTA6AOAEIAJBsARqIAJB+ANqIAIoAuADQSVGIggbKAIAIgQgAkG0BGogAkH8A2ogCBsoAgAiCCAEIAhJGyAEIAggBCAISxsgAkHgBGoQgRUhBCAHEMoNIgdFDQIgBygCAEEkRw0CIAIgAikD+AM3A7AEIAIoAuADIAJBJTYC4ANBJEcNASAMIAIoAuQDEP8LDAILIAQgBigCDCIDIAQoAhgiByADIAdLGzYCGCAEIAMgByADIAdJGzYCFCAEKAIgEN0oIAQgBjYCICACQeAEaiIDIAJBmAFqQaADEPsGGiABEN8QIAEgA0GgAxD7BiEDIAIgCzoAgAggAiADKQCrAjcAgQggAiADKQCzAjcAiQggAiADKQC7AjcAkQggAiADKADDAjYAmQggBSACQYAIahDSCCAEIQMMBAtB5ezgAEEoQfyQ4AAQ9BcACyACQYAIahDeKAsgBhCQKwsgAiAENgLcBCACQQE2AtgEIAJB2ARqEMggIAJBmAFqEN8QCyACIAM2AnAgAkH0AGoQhyUgAwRAIAEtAKACQQJHDQIgAS0ApQJBAXFFDQIgAkG6AToA4AQgASAKIAkgAkHgBGoQxhkMAgsgAkHwAGoQgCcLIAEtALICQQFxRQ0BIAUQyg0iA0UNASADKAIAQQJHDQEgAy0ACEECRw0BIAMtAAlBHUcNASAFEMMgIQMgBRDKDSIERQRAIAEoAoACIQEgAkEAOgDgBCABIAEgAkHgBGoQgRUhAwwECyAEKAIAQSRGBEAgASABKQPgAjcDmAMgASgCyAIgAUElNgLIAkEkRg0DQeXs4ABBKEHAjOAAEPQXAAsgASgCyAIhBCABQSU2AsgCIAEgASkD4AI3A5gDIAJB7ARqIAFB1AJqKQIANwIAIAJB9ARqIAFB3AJqKAIANgIAIAIgASkCzAI3AuQEIAIgBDYC4AQgAkHgBGoQxgoCQAJAAkACQAJAIAEtAL8CQQFxBEAgAS0AvQJBAXFFDQELIAUQyg0iBEUNAiAEKAIAQT5xQQ5GDQIgBRCIIQ0CAkAgBRDKDSIERQ0AIAQoAgBBFEcNACAELQAEQQ1GDQULAkAgBRDKDSIERQ0AIAQoAgBBFEcNACAELQAEQQ5GDQULIAUQyg0iBEUNASAEKAIAQRVHDQEgBC0ABEEERw0BDAQLIAEoApwDIQMgASgCmAMgAkHQADoA4AQgAyACQeAEahCBFSEDQQEhBCAFEMoNIgZFDQggBigCAEEkRw0IIAEgASkD4AI3A5gDIAEoAsgCIAFBJTYCyAJBJEcNAiABIAEoAswCEP8LDAgLIAUQyg0iBEUEQCABKAKAAiEEIAJBADoA4AQgAiAEIAQgAkHgBGoQgRU2ApwBIAJBAToAmAEgAkGYAWoQwyMMAwsgBBCHBhCdDA0CC0EAIQQgAkEAOgDsBCACQQA2AugEIAIgAyABKAKcAyIBIAEgA0kbNgLkBCACIAMgASABIANLGzYC4AQgAkHgBGoQsRghAwwGC0Hl7OAAQShB0IzgABD0FwALQQAhBgJAIAUQyg0iBEUNACAEKAIAQRRHDQAgBC0ABEENRw0AIAEoAsgCIQYgAUElNgLIAiABIAEpA+ACNwOYAyACQewEaiABQcwCaiIEQQhqKQIANwIAIAJB9ARqIARBEGooAgA2AgAgAiAEKQIANwLkBCACIAY2AuAEIAJB4ARqEMYKQQEhBgsgASgCnAMhBSACQTBqIAEQuAZBASEEIAIoAjQhByACKAIwQQFxRQRAIAIgBjoA7AQgAiAHNgLoBCACIAMgASgCnAMiASABIANJGzYC5AQgAiADIAEgASADSxs2AuAEIAJB4ARqELEYIQMMAQsgBygCBCEBIAcoAgBBBEEEEKsgIgggBzYCACACIAg2AuwEIAJBIzYC9AQgAkHgjOAANgLwBCACIAMgBSADIAVLGzYC6AQgAiADIAUgAyAFSRs2AuQEIAJBuAE6AOAEIAEgAkHgBGoQgRUhAwwEC0EAIQQMAwsgBRDKDSIDRQRAIAEoAoACIQEgAkEAOgDgBCABIAEgAkHgBGoQgRUhAwwCC0EAIQYCQAJAIAMoAgAiB0ECRwRAIAdBCUYNASAHQSRHDQIgASABKQPgAjcDmAMgASgCyAIgAUElNgLIAkEkRg0DQeXs4ABBKEHskOAAEPQXAAsCQEEEIAMtAAhBAmtB/wFxIgcgB0EETxsOBQACAgIBAgsgAy0ACUEdRw0BC0EBIQYgBRDDICEECyABIAQ2AgQgASAGNgIAIAUQwyAhCCAFEMMgIQcgAkEoaiABEIIGIAIoAiwhBiACKAIoBEAgBiEDDAILIAIgBjYCuAQCQAJAAkACQAJAAkAgBigCAEEeRg0AIAUQyg0iA0UNACADKAIAQRdHDQAgASgCyAIhAyABQSU2AsgCIAEgASkD4AI3A5gDIAJB7ARqIgQgAUHUAmopAgA3AgAgAkH0BGoiCSABQdwCaigCADYCACACIAEpAswCNwLkBCACIAM2AuAEIAJB4ARqIgoQxgogAkEBOgB6IAJBgQI7AIMBIAIgASgBqgI2AHQgAiABLwGuAjsAeCACIAEpALECNwB7IAIgASkAuwI3AIUBIAIgASgAwwI2AI0BIAJB+QRqIAFBvwJqKQAANwAAIAkgAUG6AmopAQA3AgAgBCABQbICaikBADcCACACIAEpAaoCNwLkBCAFIAJB9ABqENIIIAIgATYC4AQgAkEgaiABELgGIAIoAiQhAyACKAIgDQEgAiADNgKACCAKEIclAkAgBRDKDSIEBEAgBCgCAEETRg0BCyACQegEaiAFEJEQIAJBCGogBRCFFCACQaDg3wA2AuQEIAJBNDoA4AQgAigCCCACKAIMIAJB4ARqEIEVIQMgBRDKDSIERQ0FIAQoAgBBJEcNBSABIAEpA+ACNwOYAyABKALIAiABQSU2AsgCQSRHDQQgASABKALMAhD/CwwFCyABKALIAiEJIAFBJTYCyAIgASABKQPgAjcDmAMgAkHsBGoiCiABQcwCaiIEQQhqKQIANwIAIAJB9ARqIgsgBEEQaigCADYCACACIAQpAgA3AuQEIAIgCTYC4AQgAkHgBGoiCRDGCiACQQE7AKcBIAIgAS0AuAI6AKYBIAIgASkBqgI3AJgBIAIgASgBsgI2AKABIAIgAS8BtgI7AKQBIAIgASkAuwI3AKkBIAIgASgAwwI2ALEBIAJB+QRqIAFBqgJqIgRBFWopAAA3AAAgCyAEQRBqKQEANwIAIAogBEEIaikBADcCACACIAQpAQA3AuQEIAUgAkGYAWoQ0gggAiABNgLgBCACQRhqIAEQuAYgAigCHCEEIAIoAhggCRCHJQRAIAQhAwwFCyACQRBqIAQQjAMgAigCFCEFIAIgBDYC6AQgAiADNgLkBCACIAY2AuAEIAIgByAFIAUgB0kbNgLwBCACIAcgBSAFIAdLGzYC7AQgAkHgBGoQhRUhBgsgBigCACIDQR5LQQEgA3RBgICcggRxRXINAUEAIQQgBiEDDAcLIAJB4ARqEIclDAMLIAIgASAIIAYQ6QIgAigCBCEDIAIoAgAhBAwFC0Hl7OAAQShBiIngABD0FwALIAJBgAhqEN4oCyACQbgEahDeKAwBCyABKALMAiEDC0EBIQQLIAAgAzYCBCAAIAQ2AgAgAkGgCGokAAuIFwIRfwF+IwBBMGsiCSQAAkACQAJAIAAoAgAiAygCACIABEAgAygCCCENIAMoAgQhCwNAIA4iByANRyEPIAcgDUYEQCAPIQYMAwsgC0UNBCAHQQFqIQ4gC0EBayEMQQAhAiAALQAAIgYhBSALIQoCQAJAAkACQAJAA0ACQCAFwEEASARAIAVBH3EhAyAAIAJqIgRBAWotAABBP3EhCCAFQf8BcSIQQd8BTQRAIANBBnQgCHIhAwwCCyAEQQJqLQAAQT9xIAhBBnRyIQggEEHwAUkEQCAIIANBDHRyIQMMAgsgA0ESdEGAgPAAcSAEQQNqLQAAQT9xIAhBBnRyciIDQYCAxABHDQEMDAsgBUH/AXEhAwsgACACaiIEIQgCQAJAIANBMGtBCU0EQCACIAxGDQ0gBEEBaiwAACIFQb9/Sg0BIAggCkEBIApB0NDWABDUJgALIAsgCmshBCAKIAtHBEAgACAEaiwAAEG/f0wNAgtBACEDAkACQCAEDgIIAAELQQEhAyAGQStrDgMHBQcFCyAGQStHDQMgAEEBaiEAIARBCkkgBEEBayIDIQQNBAwFCyACQQFqIQIgCkEBayEKDAELCyAAIAtBACAEQeDQ1gAQ1CYACyAEIQMgBEEJTw0BC0EAIQIDQCAALQAAQTBrIgRBCUsEQEEBIQMMAwsgAEEBaiEAIAQgAkEKbGohAiADQQFrIgMNAAsMAgtBACECA0AgBEUNAiAALQAAQTBrIgZBCUsEQEEBIQMMAgtBAiEDIAKtQgp+IhNCIIinDQEgAEEBaiEAIARBAWshBCAGIBOnIgtqIgIgC08NAAsLIAkgAzoAFEGc6+AAQSsgCUEUakGo0tYAQbjS1gAQxQ4ACwJAIAJFDQAgAiAKSQRAIAIgCGosAABBv39KDQEMBQsgAiAKRw0ECyACIAhqIQACQCANIA5HDQAgAkUgASgCHEEEcUUgBUH/AXFB6ABHcnINAAJAIAJBAUcEQCAILAABQb9/TA0BCyAIQQFqIQUDQEEAIQYgACAFRg0FAn8gBSwAACIDQQBOBEAgA0H/AXEhAyAFQQFqDAELIAUtAAFBP3EhCyADQR9xIQQgA0FfTQRAIARBBnQgC3IhAyAFQQJqDAELIAUtAAJBP3EgC0EGdHIhCyADQXBJBEAgCyAEQQx0ciEDIAVBA2oMAQsgBEESdEGAgPAAcSAFLQADQT9xIAtBBnRyciIDQYCAxABGDQYgBUEEagshBSADQTBrQQpJIANBIHJB4QBrQQZJcg0ACwwBCyAIIAJBASACQbDQ1gAQ1CYACwJAIAdFDQAgASgCFEGA0dYAQQIgASgCGCgCDBEDAEUNACAPIQYMAwsCQAJ/IAIgAkECSQ0AGiACIAgvAABB38gARw0AGiAILAABQb9/TA0BIAhBAWohCCACQQFrCyEDIAogAmshCwNAIAghBAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAMiB0UNAAJAIAQtAABBJGsOCwIBAQEBAQEBAQEAAQsgB0EBRg0FIAQsAAEiA0G/f0oNBCAEIAdBASAHQfjR1gAQ1CYACyAEIAdqIQxBACECIAQhBQNAIAIhAyAFIgIgDEYNCAJ/IAIsAAAiBkEATgRAIAZB/wFxIQogAkEBagwBCyACLQABQT9xIQggBkEfcSEFIAZBX00EQCAFQQZ0IAhyIQogAkECagwBCyACLQACQT9xIAhBBnRyIQggBkFwSQRAIAggBUEMdHIhCiACQQNqDAELIAVBEnRBgIDwAHEgAi0AA0E/cSAIQQZ0cnIhCiACQQRqCyIFIAMgAmtqIQIgCkEkaw4LAgAAAAAAAAAAAAIACwALIAdBAUYNASAELAABQb9/Sg0BIAQgB0EBIAdBtNHWABDUJgALAkACQCADBEACQCADIAdJBEAgAyAEaiICLAAAQb9/TA0BIAEoAhQgBCADIAEoAhgoAgwRAwBFDQRBASEGDBMLIAMgB0YNAgsgBCAHQQAgA0GU0dYAENQmAAsgASgCFCAEQQAgASgCGCgCDBEDAEUNC0EBIQYMEAsgASgCFCAEIAcgASgCGCgCDBEDAEUNCkEBIQYMDwsgAiwAAEG/f0oNCSAEIAcgAyAHQaTR1gAQ1CYACyAJIAdBAWsiAzYCJCAJQQA2AiAgCSADNgIcIAlBJDYCFCAJQSQ2AiggCUEBOgAsIAkgBEEBaiICNgIYIAlBCGogCUEUahCmBSAJKAIIQQFHDQQCQCAJKAIMIgZBf0cEQCAGQQFqIQMgB0EBRw0BDAULQcTR1gAQrxsACyACLAAAQb9/Sg0DDAcLAkACfyADQf8BcSADQQBODQAaIAQtAAJBP3EhBiADQR9xIQIgAkEGdCAGciADQV9NDQAaIAQtAANBP3EgBkEGdHIhBiAGIAJBDHRyIANBcEkNABogAkESdEGAgPAAcSAELQAEQT9xIAZBBnRycgtBLkcEQEEBIQYgASgCFEGDtuAAQQEgASgCGCgCDBEDAA0OIAQsAAFBQEgNAQwDCyABKAIUQYDR1gBBAiABKAIYKAIMEQMABEBBASEGDA4LAkAgB0EDTwRAIAQsAAJBQEgNAQsgBEECaiEIIAdBAmshAwwKCyAEIAdBAiAHQYjS1gAQ1CYACyAEIAdBASAHQZjS1gAQ1CYAC0EBIQYgASgCFEGDtuAAQQEgASgCGCgCDBEDAA0LCyAEQQFqIQggB0EBayEDDAYLAkACQAJAAkAgAyAHSQRAIAMgBGosAABBQEgNCCAGQQJqIQUMAQsgAyAHRw0HIAchAyAGQQJqIgVFDQELAkAgBSAHSQRAIAQgBWosAABBv39KDQEMBwsgBSAHRw0GCyAEIAVqIQggByAFayEDAkACQCAGDgMFAQACCyACLwAAQdOgAUYEQEGhuuAAIQIMBgsgAi8AAEHCoAFGBEBB17DgACECDAYLIAIvAABB0owBRgRAQdyw4AAhAgwGCyACLwAAQcyoAUYEQEHKsOAAIQIMBgsgAi8AAEHHqAFGBEBBzbDgACECDAYLIAIvAABBzKABRgRAQZ+14AAhAgwGCyACLwAAQdKgAUcNAUHgoeMAIQIMBQsgAi0AACIFQcMARgRAQb644AAhAgwFCyAFQfUARg0BDAMLIAQtAAFB9QBHDQIgBCwAAkG/f0wNAQsgAiAGaiEQIAZBAWshESAEQQJqIhIhAgJAA0BBASEKIAIgEEYNAQJ/IAIsAAAiBkEATgRAIAZB/wFxIQUgAkEBagwBCyACLQABQT9xIQwgBkEfcSEFIAZBX00EQCAFQQZ0IAxyIQUgAkECagwBCyACLQACQT9xIAxBBnRyIQwgBkFwSQRAIAwgBUEMdHIhBSACQQNqDAELIAVBEnRBgIDwAHEgAi0AA0E/cSAMQQZ0cnIiBUGAgMQARg0CIAJBBGoLIQIgBUEwa0EKSSAFQeEAa0EGSXINAAtBACEKCyAJQRRqIBIgEUEQEMgEIAktABQNASAKQQFzQYCAxAAgCSgCGCICIAJBgLADc0GAgMQAa0GAkLx/SRsiAkGAgMQARnINASAJIAI2AgQgAkEgSSACQf8Aa0EhSXINASAJQQRqIAEQ3wdFDQZBASEGDAoLIAIgBkEBIAZB6NHWABDUJgALIA8hBiABKAIUIAQgByABKAIYKAIMEQMARQ0GDAgLQQEhBiABKAIUIAJBASABKAIYKAIMEQMARQ0DDAcLIAQgByAFIAdB1NHWABDUJgALIAQgB0EBIANBxNHWABDUJgALIAMgBGohCCAHIANrIQMMAAsACwsgCCACQQEgAkGE0dYAENQmAAsgCUEANgIoIAkgATYCJCAJQgA3AhwgCSADKQIENwIUIAlBFGpBARCfASEGCyAJQTBqJAAgBg8LIAggCiACIApB8NDWABDUJgALQcDQ1gAQ4CkAC6sYAhh/AX4jAEGgAWsiBSQAIAEoAgAiDCgC/AQhBCABKAIEIggpAqQBIRwgCEKAgICAEDcCpAEgCEGsAWoiBigCACEJIAZBADYCACAFQdgAaiAJNgIAIAUgHDcDUCAMLQBQIQYgCEGQAWooAgAgCEGUAWooAgAgAkH///8/cSAEdkH068MAELofIQkgCEEANgJkIAhBADYCSCAMKAL4BCIOLQDcAiERAkACQAJAAkACQAJAIAkoAgBBCGoiCiAJKAIEIgsQ0BsiBAR/IARBgICAgARPDQEgBEH9////A08NAiAEQQJ0QQ1qBUEJCyEHIAhBjAFqIRogCEGYAWohFSAIQTBqIRIgBkECRiAGciEbIAVByABqIAcgCiALQZjdwwAQkh0gCEE4aiITKAIAIRQgCCgCSCEGIAUoAkwhDSAFKAJIIQ8gCEHEAGohFiAIQUBrIRcgCEE0aiEYQQAhCwNAIA0EQEEAIRlBACEEQQAhB0EAIQoCfwNAQQAgBCANRg0BGiAEIA9qLAAAIhBBAEgEQCAEQQFqIQQgEEH/AHEgB3QgCnIhCiAHQQdqIQcMAQsLIARBAWohGSAQIAd0IApyCyEEIAVBQGsgGSAPIA1BqN3DABCSHSAFKAJEIQ0gBSgCQCEPIAVBACAEQQFxayAEQQF2cyALaiILNgJoIAYgFygCACAWKAIAIAtBzJnEABC3HygCACIESwRAIBgoAgAgEygCACAEQdyZxAAQtx8oAgAgC0YNAgsgBSAGNgJsIAYgFE8NBCAYKAIAIBMoAgAgBkGsmcQAELcfIAs2AgAgFygCACAWKAIAIAtBvJnEABC3HyAIIAZBAWoiBDYCSCAGNgIAIAQhBgwBCwsgCSgCACAJKAIEEIEqRQ0FIAkoAgAgCSgCBBCAKiEEIANBAXFFDQMgBEEqciEEIANBCHYiByEKDAQLQbjdwwAQ4CkAC0HI3cMAEOApAAsgBUEDNgJ0IAVBhJnEADYCcCAFQgM3AnwgBUH8ADYCnAEgBUEVNgKUASAFQRU2AowBIAUgFDYCXCAFIAVBiAFqNgJ4IAUgBUHoAGo2ApgBIAUgBUHcAGo2ApABIAUgBUHsAGo2AogBIAVB8ABqQZyZxAAQwx0ACyADQQh2IgohBwJAAkAgCkH/AXFBCmsOBAACAgECCwJAIBFBAXFFBEAgCSgCACAJKAIEEIQgDQELIARBIHIhBAtBCiEHDAELAkAgEUEBcQRAIAkoAgAgCSgCBBCEIA0BCyAEQSByIQQLQQ0hBwsgBCAEIARBCHIgA0EBcSIQIgsbIA4tANgCIAdB/wFxRxshBAJAIAkoAgAgCSgCBBCEIEUNACADQYD+A3EhBgJAIBFBAXEEQCAGQYAaRw0BIBBFDQIMAQsgBkGAFEcNACADQQFxRQ0BCyAEQRByIQQLIAkoAgAgCSgCBBCDICEGIAsEf0HAAkGABSAGGyAEckGAgApyBSAEQcACQYAFIAYgCkH/AXFB/JnEAGotAAAiBHMbciIGIAZBgIAKciAEGwshBwJAAkAgCSgCACAJKAIEEIMgRQ0AIANBAXFFBEAgCkH/AXFB/JnEAGotAAANAQsgB0GA0AByIQcMAQsgCSgCACAJKAIEEIMgIANBAXFyDQAgB0GAKHIgByAKQf8BcUH8mcQAai0AABshBwsgCSgCACAJKAIEEIAqIQQgCSgCACAJKAIEEIEqIARBf3NxIAdxRQ0AIAVBOGogEhC2GSAIQcwAaiEGIAUoAjwhCSAFKAI4IQQDQCAEIAlGBEACQEEAIQQDQCAEQRxGDQEgBCAIaiIGQcwAaiIJKAIAIQcgCSAGQTBqIgYoAgA2AgAgBiAHNgIAIARBBGohBAwACwALBSAMKAL4BCAEKAIAIAcgFSAGEM4DIARBBGohBAwBCwsgCEEANgJkCyAFQdwAaiIGIAVB0ABqEIEfAkAgDigCsAIiBEE8cUUNACADQQFxIA4tANgCIANBCHZB/wFxR3INACAGEP4pIAVBMGogBSgCYCAFKAJkQQFBqN7DABCeHUEEciAFKAIwIAUoAjQQ6g4gDigCsAIhBAsCQCAEQTBxRQ0AIANBgP4DcSEGAkAgEUEBcQRAIANBAXEgBkGAGkdyDQIMAQsgA0EBcSAGQYAUR3INAQsgBUHcAGoQ/ikgBUEoaiAFKAJgIAUoAmRBAUGo3sMAEJ4dQRByIAUoAiggBSgCLBDqDiAOKAKwAiEECwJ/IARBwP8PcQRAIANBAXFFBEBBACADQQh2Qf8BcUH8mcQAai0AAEEBRg0CGgsgBUHcAGoQ/ikgBUEgaiAFKAJgIAUoAmRBAUGo3sMAEJ4dQYCABXIgBSgCICAFKAIkEOoOCyADCyEJIAVBGGogEhC2GSAIQcwAaiEPIAUoAhwhEiAFKAIYIQQgCUEBcSENIANBCHZB/wFxIgtBAnQhEyAbQQFxIRQDQAJAIAQgEkYNACAEKAIAIQcgBEEEaiIGIQQCQAJAAkACQAJAAkACQAJ/AkACQCAMKAL4BCAHEPsdIgooAgBBAWsOCAEDCwsLCwsFAAsgDQ0KIAotAAggC0sNCiAKLQAJIAtJDQogCkEEagwBCyANDQkgCigCCEEDdCEHIAooAgRBBWohBANAIAdFDQggBEEBay0AACALSw0IIAdBCGshByAELQAAIARBCGohBCALSQ0ACyAEQQ1rCygCACEHDAELIA0NByAKKAIIIgcgC00NAiAKKAIEIBNqKAIAIgdFDQcLIAUoAmAgBSgCZBDvGiEEIAwoAvgEIAcgBCAVIA8QzgMMBAsgCigCBCEEAkAgBSgCYCAFKAJkEIAfDQAgBEUNAiAFQdwAaiIQEPoeIAUoAmAgBSgCZEH43cMAEK8jIgcgBy0AAEECcjoAACAFKAJgIAUoAmQQgiBFBEAgEBCCHwwBCyAFQdwAakEAEKUTCyAFQdwAaiAEEKUTDAILIAsgB0GgkcQAEKwQAAsgBUHcAGoQgh8LIAYhBCAURQ0CDAELIAYhBAwBCwsCQCAIKAJkRQ0AAkAgDigCsAIiBEHA/w9xRSAJckEBcQ0AIAtB/JnEAGotAABFDQAgBSgCYCAFKAJkEOQiIA4oArACIQQLIARBMHFFDQAgA0GA/gNxIQQCQCARQQFxBEAgBEGAFEcgCXJBAXFFDQEMAgsgBEGAGkcgCXJBAXENAQsgBSgCYCAFKAJkEOUiCyAFQfgAaiAFQeQAaigCADYCACAFIAUpAlw3A3AgBUGIAWoiBiAFQfAAahCaDCAMKAL4BCAPIAYQ3QkgBSkDiAEhHAJAAkACQCAIEKYTIAUoApABIgRqQQQgDCgC/AR0akEUaiAMKAKABUsiCQRAIAwgCCACEIMfIgcoAgAiBiAGKAIAIgpBAWo2AgAgCkEASA0BIAcoAgQhByAIQSBqEOYiIAggBzYCLCAIIAY2AiggCCACNgIkIAhBATYCIAsgCCAcQiCIpyIGIAQQqQYiBwRAIAcoAgAhBCAIIBwQ0h9BACEHDAILIAVBEGogBiAEEOsZIAUoAhAhBCAFIAUoAhQiBjYCdCAFIAQ2AnACfwJAAkAgDCAIIAYQhSBFBEAgARD8Cw0BCyAFQQhqIAEQug8gBSgCCEUNAQsgBUHwAGoQ+R5BASEHQQAMAQsgBSgCDCEBIAQgBhD/KSEEIAhB9ABqQQEgDCgC/AR0EOQPIAFBgICAwAByIAEgBBshBAJAIAxB2ARqIgEQgioNACAMIAQQ/h0NACAMEMkVIQYgBUEANgKMASAFIAE2AogBA0AgBSAFQYgBahDcESAFLQAARQ0BIAwgCCAEIAUtAAFBCHQgBhDbCAwACwALIAggBSgCdCIGIAgoAmhqNgJoIAUoAnAiASABKAIAIgdBAWo2AgAgB0EASA0BIBogASAGEOAYIAggASAGIAQQ4QdBACEHQQELIAggHBDSHw0BDAILAAsCQCAJRQ0AIAgpAiAhHEEAIQogCEEANgIgIAVBkAFqIAhBKGopAgA3AwAgBSAcNwOIAQJAAkAgHKdBAWsOAgAAAQtBASEKIAUoAowBIQILIAVBiAFqEOYiIAoNAEHk7cMAQShBjO7DABC7EgALIAwgCCACIAMgBBDbCAsgACAHNgIAIAAgBDYCBCAFQaABaiQAC8kYAQ9/IwBBkAFrIgIkACACQUBrIgkgASAALQCYASILIAAoAiwiBEGAgICAeEdBAkEDIAAtAAgiA0EGRhtqIAAoAjgiBUGAgICAeEdqIAAoAkQiBkGAgICAeEdqIAAoAlAiCEGAgICAeEdqIAAoAlwiCkGAgICAeEdqIAAoAmgiDEGAgICAeEdqIAAoAnQiDUGAgICAeEdqIAAoAoABIg5BgICAgHhHaiAAKAKMASIPQYCAgIB4R2pqEKINIAIoAkAhAQJAAkACQAJAIAItAEQiB0EDRg0AIAIgBzoACCACIAE2AgQgAkEEaiIQQZqX2ABBBxDzECIBDQAgCSACKAIEIgcoAgAQiyogCRDmGCIBDQAgACgCACAAKAIEIAcoAgAQ0yEiAQ0AIAJBBDoAQCACQUBrEOYYIgENACADQQZHBEAgEEGhl9gAQQQQ8xAiAQ0BIAkgAigCBCIDKAIAEIsqIAJBQGsQ5hgiAQ0BIABBCGogAxBsIgENASACQQQ6AEAgAkFAaxDmGCIBDQELIAJBBGoiA0Gll9gAQQcgAEEgahD6ByIBDQAgBEGAgICAeEcEQCADQayX2ABBCiAAQSxqELwRIgENAQsgBUGAgICAeEcEQCACQQRqQbaX2ABBDiAAQThqEPoHIgENAQsgBkGAgICAeEcEQCACQQRqQcSX2ABBCBDzECIBDQEgAkFAayIDIAIoAgQiBCgCABCLKiADEOYYIgENASAAKAJIIQUgAyAEIAAoAkwiARChDSACKAJAIQQgAi0ARCIDQQNGBEAgBCEBDAILIAFBGGwhBwNAIAcEQCACQUBrIgYgBCgCACADQQFGEIEhIAYQ5hgiAQ0DIAYgBEEDEKINIAIoAkAhASACLQBEIgNBA0YNAyACIAM6ACAgAiABNgIcIAJBHGoiCUGEl9gAQQYQ8xAiAQ0DIAYgAigCHCIDKAIAEIsqIAJBQGsQ5hgiAQ0DIAYgA0ECEKINIAIoAkAhASACLQBEIgNBA0YNAyACIAM6AGwgAiABNgJoIAJB6ABqIgNB+pbYAEEEIAUoAgwQvREiAQ0DIANB/pbYAEEGIAUoAhAQvREiAQ0DIAIoAmgoAgAgAi0AbBCRGCIBDQMgAkEEOgBAIAJBQGsQ5hgiAQ0DIAlBt73fAEEDIAUQvBEiAQ0DIAlBipfYAEEDEPMQIgENAyAGIAIoAhwiAygCABCLKiACQUBrEOYYIgENAwJ/IAUoAhQiAUUEQCADKAIAEJYcDAELIAEgAxB5CyIBDQMgAkEEOgBAIAJBQGsQ5hgiAQ0DIAMoAgAgAi0AIBCRGCIBDQMgBUEYaiEFIAJBBDoAQCAHQRhrIQdBAiEDIAJBQGsQ5hgiAUUNAQwDCwsgBCgCACADEJAYIgENASACQQQ6AEAgAkFAaxDmGCIBDQELIAhBgICAgHhHBEAgAkEEakGNl9gAQQUQ8xAiAQ0BIAJBQGsiASACKAIEIgQoAgAQiyogARDmGCIBDQEgBCAAQdAAahD3CiIBDQEgAkEEOgBAIAJBQGsQ5hgiAQ0BCyAKQYCAgIB4RwRAIAJBBGpBzJfYAEENIABB3ABqELwRIgENAQsgDEGAgICAeEcEQCACQQRqQZKX2ABBCCAAQegAahC8ESIBDQELIA1BgICAgHhHBEAgAkEEakHZl9gAQRIQ8xAiAQ0BIAJBQGsiAyACKAIEIgQoAgAQiyogAxDmGCIBDQEgACgCeCEFIAMgBCAAKAJ8IgEQoQ0gAigCQCEEIAItAEQiB0EDRgRAIAQhAQwCCyABQQN0IQYgB0EBRiEDA0AgBgRAIAJBQGsiASAEKAIAIANBAXEQgSEgARDmGCIBDQMgBSgCACAFQQRqKAIAIAQoAgAQ0yEiAQ0DIAVBCGohBSACQQQ6AEAgBkEIayEGQQAhA0ECIQcgAkFAaxDmGCIBRQ0BDAMLCyAEKAIAIAcQkBgiAQ0BIAJBBDoAQCACQUBrEOYYIgENAQsgDkGAgICAeEcEQCACQQRqQeuX2ABBFBDzECIBDQEgAkFAayIBIAIoAgQiBCgCABCLKiABEOYYIgENASAEIAAoAoQBIAAoAogBELMKIgENASACQQQ6AEAgAkFAaxDmGCIBDQELIA9BgICAgHhHBEAgAkEEakH/l9gAQRIQ8xAiAQ0BIAJBQGsiAyACKAIEIgQoAgAQiyogAxDmGCIBDQEgACgCkAEhBiADIAQgACgClAEiARChDSACKAJAIQQgAi0ARCIFQQNGBEAgBCEBDAILIAYgAUEMbGohDCAFQQFGIQcDQCAGIAxHBEAgAkFAayIBIAQoAgAgB0EBcRCBISABEOYYIgENAwJ/IAYoAgBBgICAgHhGBEAgBCgCABCWHAwBCyAGKAIEIQUgAkFAayAEIAYoAggiARChDSACKAJAIQMgAi0ARCIIQQNGBEAgAyEBDAULIAFBGGwhByAIQQFGIQoDQCAHBEAgAkFAayIJIAMoAgAgChCBISAJEOYYIgENBiAJIANBAhCiDSACKAJAIQEgAi0ARCIIQQNGDQYgAiAIOgBsIAIgATYCaCACQegAaiIKQY2X2ABBBRDzECIBDQYgCSACKAJoIggoAgAQiyogAkFAaxDmGCIBDQYgCCAFQQRqKAIAIAVBCGooAgAQswoiAQ0GIAJBBDoAQCACQUBrEOYYIgENBiAKQZKX2ABBCBDzECIBDQYgCSACKAJoIggoAgAQiyogAkFAaxDmGCIBDQYgBUEQaigCACAFQRRqKAIAIAgoAgAQgCsiAQ0GIAJBBDoAQCACQUBrEOYYIgENBiAIKAIAIAItAGwQkRgiAQ0GIAVBGGohBSACQQQ6AEAgB0EYayEHQQAhCkECIQggAkFAaxDmGCIBRQ0BDAYLCyADKAIAIAgQkBgLIgENAyAGQQxqIQYgAkEEOgBAQQAhB0ECIQUgAkFAaxDmGCIBRQ0BDAMLCyAEKAIAIAUQkBgiAQ0BIAJBBDoAQCACQUBrEOYYIgENAQsCQCALRQRAIAIoAgQhAwwBCyACQQRqQZGY2ABBCBDzECIBDQEgAkFAayIBIAIoAgQiAygCABCLKiABEOYYIgENAUEAIQUgAkEANgIUIAJCgICAgBA3AgwgAEGZAWohBgJAIAAtALgBQQFHBEAgAkKYgICAwAQ3AmAgAkKTgICA8AI3AlggAkKOgICAoAI3AlAgAkKJgICA0AE3AkggAkKAgICAgAE3AkAgAkHoAGpBAEEkEI0LGkEAIQgCQANAIAhBBUYNAUEQIAUgBUEQTRshByACQUBrIAhBA3RqIgEoAgQhBCABKAIAIQEDQCABIARPBEACQCAIQQRHBEAgBEEkTw0BIAJB6ABqIARqQS06AAALIAhBAWohCAwDCyAEQSRB+J7jABCsEAALIAUgB0YNByABQSRPDQggAkHoAGogAWoiCiAFIAZqLQAAIgtBBHZBi57jAGotAAA6AAAgAUEjRwRAIApBAWogC0EPcUGLnuMAai0AADoAACAFQQFqIQUgAUECaiEBDAELCwtBJEEkQaif4wAQrBAACyACQRxqIgEgAkHoAGpBJBD7BhogAkEMaiABQSQQjSpFDQEMBgsgAiAGKAAAIgFBGHQgAUGA/gNxQQh0ciABQQh2QYD+A3EgAUEYdnJyNgIYIAJBzAA2AiAgAkEBNgJ8IAJBATYCbCACQYT44AA2AmggAkEBNgJ0IAIgAkEYajYCHCACQQM6AFwgAkEINgJYIAJCIDcCUCACQoCAgICAATcCSCACQQI2AkAgAiACQUBrNgJ4IAIgAkEcajYCcCACQQxqQayT2AAgAkHoAGoQtSQNBQsgACgAqQEiAARAIAJBATYCRCACQeSawwA2AkAgAkIBNwJMIAJB4QE2AmwgAiAANgIcIAIgAkHoAGo2AkggAiACQRxqNgJoIAJBDGpBrJPYACACQUBrELUkDQULIAIoAgwgAkHoAGogAygCACACKAIQIgQgAigCFBDyA0EAIQEgAi0AaEEERwRAIAIgAikDaDcDQCACQUBrEJMcIQELIAQQ2ikgAQ0BIAJBBDoAQCACQUBrEOYYIgENAQsgAygCACACLQAIEJEYIQELIAJBkAFqJAAgAQ8LIAdBEEGIn+MAEKwQAAsgAUEkQZif4wAQrBAAC0H8veAAQTcgAkFAa0HEk9gAQYC/4AAQxQ4AC84ZAhJ/A34jAEHAAWsiBCQAIARBmAFqIAEQ0QQgBCgCoAEhBQJ/IAQpA5gBIhZQRQRAIAQgBCgCpAE2AkQgBCAFNgJAIAQgFjcDOAJAAkACQAJAAkACQAJAIAFBKGoiBxDKDSIFBEAgBSgCAEENRg0BCyAEQaABaiAHEJEQIAQgBxCFFCAEQdjh3wA2ApwBIARBNDoAmAEgBCgCACAEKAIEIARBmAFqEIEVIQUgBxDKDSICRQ0GIAIoAgBBJEcNBiABIAEpA+ACNwOYAyABKALIAiABQSU2AsgCQSRHDQEgASABKALMAhD/CwwGCyABKALIAiEFIAFBJTYCyAIgASABKQPgAjcDmAMgBEGkAWogAUHUAmopAgA3AgAgBEGsAWogAUHcAmooAgA2AgAgBCABKQLMAjcCnAEgBCAFNgKYASAEQZgBaiIGEMYKIARBADYCXCAEQoCAgICAATcCVCABQcwCaiEIIAFByAJqIRAgBkEEciEJIARBoAFqIRJBCCEVAkADQAJAIARBmAFqIgYgAUEAENMIAkACQAJAAkAgBC0AmAENACAELQCZAQ0GIAcQwyAaIAcQwyAhCiAHEMoNIgVFBEAgASgCgAIhASAEQQA6AJgBIAEgASAGEIEVIQUMCwsCfwJAAkACQAJAAkACfwJAAkACQAJAAkAgBSgCACIGQRtrDgMBBgIACyAGQQtGDQIgBkEkRw0FIAEgASkD4AI3A5gDIAEoAsgCIAFBJTYCyAJBJEYNFEHl7OAAQShBuOTfABD0FwALIARBmAFqIAEQxQIgBCgCmAEiBUUNAiAFQQdGDQpB5ezgAEEoQYDl3wAQ9BcACyAEQQA2AnQgBEKAgICAEDcCbCAEIAUrAxA5A2AgBEHsAGoiDEEiEP4HIARBMGogBUEIahCUDCAMIAQoAjAgBCgCNBD2HSAMQSIQ/gcgCSAIKQIANwIAIAlBCGogCEEIaikCADcCACAJQRBqIAhBEGooAgA2AgAgASgCyAIhBSABQSU2AsgCIAEgASkD4AI3A5gDIAQgBTYCmAEgBEGYAWoiBhDGCiABKAKcAyEFIARBrgE6AJgBIAEgCiAFIAUgCksbIg8gCiAFIAUgCkkbIhEgBhDGGSAEQQA2ApABIARCgICAgBA3AogBIARBAzoAuAEgBEEgNgKoASAEQQA2ArQBIARBiOTYADYCsAEgBEEANgKgASAEQQA2ApgBIAQgBEGIAWo2AqwBIARB4ABqIAYQpRkNBSAEQYABaiAEQZABaigCADYCACAEIAQpAogBNwN4IARB+ABqEKYZIhdCIIinIQ4gDBCmGSEWIBenDAILIAcQyg0iBUUNAyAFKAIAQSRGBEAgASABKQPgAjcDmAMgASgCyAIgAUElNgLIAkEkRg0SQeXs4ABBKEHI5N8AEPQXAAsgCSAIKQIANwIAIAEoAsgCIQUgAUElNgLIAiABIAEpA+ACNwOYAyAJQQhqIgYgCEEIaiILKQIANwIAIAlBEGoiDiAIQRBqIg8oAgA2AgAgBCAFNgKYASAEQZgBaiIMEMYKIARBKGogARCOBiAEKAIsIQUgBCgCKA0SIAQgBTYCmAEgDBDeKCABKAKcAyEFIARBkwE6AJgBIAEgCiAFIAUgCksbIAogBSAFIApJGyAMEMYZAkAgBxDKDSIFBEAgBSgCAEEMRg0BCyASIAcQkRAgBEEgaiAHEIUUIARB2OTfADYCnAEgBEE0OgCYASAEKAIgIAQoAiQgBEGYAWoQgRUhBSAHEMoNIgJFDRMgAigCAEEkRw0TIAEgASkD4AI3A5gDIAEoAsgCIAFBJTYCyAJBJEcNBiABIAEoAswCEP8LDBMLIAkgCCkCADcCACABKALIAiEFIAFBJTYCyAIgASABKQPgAjcDmAMgBiALKQIANwIAIA4gDygCADYCACAEIAU2ApgBIARBmAFqEMYKEJUrIRcgCiABKAKcAyIFIAUgCksbIQ8gCiAFIAUgCkkbIREgFkKAgICAgGCDIRYgF0IgiKchDiAXpyEFDAYLIAQpA7ABIRYgBCgCrAEhESAEKAKoASEPIAQoAqQBIQ4gBCgCoAELIQVCASEXQQAMBQsgBEGIAWoiBiABENEEIARBmAFqIAYQlR8gBCgCmAEhBSAELQCsAUECRg0PIAQpA6gBIRYgBCgCpAEhESAEKAKgASEPIAQoApwBIQ4MAwsgASgCgAIhASAEQQA6AJgBIAEgASAEQZgBahCBFSEFDA4LQfy94ABBNyAEQfgAakGg5NgAQYC/4AAQxQ4AC0Hl7OAAQShB8OTfABD0FwALQgAhF0EBCyELAn8CQAJAAkAgBxDKDSIGRQ0AIAYoAgBBFUcNACAGLQAEDQAgCSAIKQIANwIAIAEoAsgCIQYgAUElNgLIAiABIAEpA+ACNwOYAyAJQQhqIAhBCGopAgA3AgAgCUEQaiAIQRBqKAIANgIAIAQgBjYCmAEgBEGYAWoQxgogBEEYaiABELgGIAQoAhwiBiAEKAIYRQ0DGiAFrSAOrUIghoQhFyALRQ0BIBcQ+RogBiEFDA4LIAcQyg0iBgRAIAYoAgBBEEYNAgsgBxDKDSIGBEAgBigCAEEORg0CCyAHEMMgIQsgCSAIKQIANwIAIAlBCGogCEEIaikCADcCACAJQRBqIAhBEGooAgA2AgAgASgCyAIhBiABQSU2AsgCIAEgASkD4AI3A5gDIAQgBjYCmAEgBEGYAWoiBhDGCiABKQOYAyEYIBAQiyUgAUEAOgDoAiABIBg3A+ACIBBBEGpBuMXgACkDADcDACAQQQhqQbDF4AApAwA3AwAgEEGoxeAAKQMANwMAIARB9QA6AJgBIAEgCyALIAYQxhlBAAwCCyAXIBYQjCsgBiEFDAwLQQALIQYgCiABKAKcAyIUIAogFEkbIQwgBCgCVCANRgRAIARB1ABqEMoXIAQoAlghFQsgEyAVaiILIBc3AwAgC0EoaiAGNgIAIAtBJGogCiAUIAogFEsbNgIAIAtBIGogDDYCACALQRhqIBY3AgAgC0EUaiARNgIAIAtBEGogDzYCACALQQxqIA42AgAgC0EIaiAFNgIAIAQgDUEBaiIGNgJcAkAgBxDKDSIFBEAgBSgCAEEQRg0BCyAEQZgBaiIMIAFBABDTCCAELQCYAQ0BIAQtAJkBDQUgBxDKDSIFDQIgASgCgAIhBSAEQQA6AJgBIAUgBSAMEIEVEK8YIgUNAiAEQYgBakGg8t8AQQMQyxUMAwsgCSAIKQIANwIAIAEoAsgCIQUgAUElNgLIAiABIAEpA+ACNwOYAyAJQQhqIAhBCGopAgA3AgAgCUEQaiAIQRBqKAIANgIAIAQgBTYCmAEgBEGYAWoQxgoMAwsgBCgCnAEhBQwJCyAEIAU2AmAgBEEBNgKcASAEQYT44AA2ApgBIARCATcCpAEgBEGzAjYCfCAEIARB+ABqNgKgASAEIARB4ABqNgJ4IARBiAFqIARBmAFqEPoUCyAEQRBqIAcQhRQgBCgCFCEFIAQoAhAhDSASQQhqIARBkAFqKAIANgIAIBIgBCkCiAE3AgAgBEGoxeAANgKcASAEQTQ6AJgBIAEgDSAFIARBmAFqEMYZCyATQTBqIRMgBiENDAELCyANQQFqIQ0LIAQoAlghBSAEKAJUIgZBgICAgHhGDQQgBCANNgJQIAQgBTYCTCAEIAY2AkgCQAJAIAcQyg0iBQRAIAUoAgBBDkYNAQsgBEGgAWogBxCRECAEQQhqIAcQhRQgBEGw4d8ANgKcASAEQTQ6AJgBIAQoAgggBCgCDCAEQZgBahCBFSEFIAcQyg0iAkUNAyACKAIAQSRGDQEMAwsgASgCyAIhBSABQSU2AsgCIAEgASkD4AI3A5gDIARBpAFqIAhBCGopAgA3AgAgBEGsAWogCEEQaigCADYCACAEIAgpAgA3ApwBIAQgBTYCmAEgBEGYAWoiBhDGCiABKAKcAyEBIAYgBEE4ahClHEEwQQgQqyAiBSACIAEgASACSRs2AhwgBSACIAEgASACSxs2AhggBSADOgAtIAVBADoALCAFQRBqIARBqAFqKQMANwMAIAVBCGogBEGgAWopAwA3AwAgBSAEKQOYATcDACAFIAQpAkg3AiAgBUEoaiAEQdAAaigCADYCAEEADAgLIAEgASkD4AI3A5gDIAEoAsgCIAFBJTYCyAJBJEYEQCABIAEoAswCEP8LDAILQeXs4ABBKEHI4d8AEPQXAAtB5ezgAEEoQfDh3wAQ9BcACyAEQcgAahCCJwwCCyABKALMAiEFCyAEQdQAahCCJwsgBCkDOCEWCyAWEPkaC0EBCyEBIAAgBTYCBCAAIAE2AgAgBEHAAWokAAvslQEDI38CfgF8IwBBkAhrIgYkAAJAAkAgBgJ/AkACQAJAAkACQAJAAkACQAJAAkAgAUEoaiIMEMoNIgNFDQAgAygCAEECRw0AIAMtAAgNACADLQAJQQtGDQELAkAgDBDKDSIDRQ0AIAMoAgBBAkcNACADLQAIDQAgAy0ACUEKRg0CCyAMEMoNIgNFDQogAygCAEECRw0KIAMtAAgNCiADLQAJQQlHDQogDBDDICEDAkAgDBDKDSIERQ0AIAQoAgBBAkcNACAELQAIDQAgBC0ACUEJRg0DCyAGQbABaiAMEJEQIAZBQGsgDBCFFCAGQZjm3wA2AqwBIAZBNDoAqAEgBigCQCAGKAJEIAZBqAFqEIEVIQQgDBDKDSIDRQ0IIAMoAgBBJEcNCCABIAEpA+ACNwOYAyABKALIAiABQSU2AsgCQSRHDQYgASABKALMAhD/CwwICyAMEMMgIQMCQAJAIAwQyg0iBEUNACAEKAIAQQJHDQAgBC0ACA0AIAQtAAlBC0YNAQsgBkGwAWogDBCRECAGQdgAaiAMEIUUIAZBuOrfADYCrAEgBkE0OgCoASAGKAJYIAYoAlwgBkGoAWoQgRUhBCAMEMoNIgNFDQggAygCAEEkRw0IIAEgASkD4AI3A5gDIAEoAsgCIAFBJTYCyAJBJEcNAyABIAEoAswCEP8LDAgLIAEoAsgCIQQgAUElNgLIAiABIAEpA+ACNwOYAyAGQbQBaiABQdQCaikCADcCACAGQbwBaiABQdwCaigCADYCACAGIAEpAswCNwKsASAGIAQ2AqgBIAZBqAFqEMYKDAYLIAwQwyAhAwJAIAwQyg0iBEUNACAEKAIAQQJHDQAgBC0ACA0AIAQtAAlBCkYNAwsgBkGwAWogDBCRECAGQdAAaiAMEIUUIAZB4OrfADYCrAEgBkE0OgCoASAGKAJQIAYoAlQgBkGoAWoQgRUhBCAMEMoNIgNFDQYgAygCAEEkRw0GIAEgASkD4AI3A5gDIAEoAsgCIAFBJTYCyAJBJEcNAyABIAEoAswCEP8LDAYLIAEoAsgCIQQgAUElNgLIAiABIAEpA+ACNwOYAyAGQbQBaiABQdQCaikCADcCACAGQbwBaiABQdwCaigCADYCACAGIAEpAswCNwKsASAGIAQ2AqgBIAZBqAFqEMYKQQIhBQwEC0Hl7OAAQShB0OrfABD0FwALIAEoAsgCIQQgAUElNgLIAiABIAEpA+ACNwOYAyAGQbQBaiABQdQCaikCADcCACAGQbwBaiABQdwCaigCADYCACAGIAEpAswCNwKsASAGIAQ2AqgBIAZBqAFqEMYKQQEhBQwCC0Hl7OAAQShB+OrfABD0FwALQeXs4ABBKEGI698AEPQXAAsgBkHIAGogARB7IAYoAkwhBCAGKAJIDQAgBkGDBWogBkHiAGotAAA6AAAgBiAFOgCABSAGIAYvAGA7AIEFIAYgAyABKAKcAyIBIAEgA0kbNgL8BCAGIAMgASABIANLGzYC+ARBDgwBC0EUCzYC8AQgBiAENgL0BCAGQThqIAZB8ARqEJYYIAYoAjwhAyAGKAI4IQQMAQsgBgJ/AkACQAJAAkACQAJAAkACQAJAIAwQyg0iA0UNACADKAIAQQJHDQAgAy0ACA0AIAMtAAlBD0YNAQtBASEEIAZB8ARqIAFBuOffAEEBQQAQuQIgBigC9AQhDiAGKALwBEUNASAOIQMMCQsgDBDDICEIAkACQAJAAkACQAJAIAwQyg0iA0UNACADKAIAQQJHDQAgAy0ACA0AIAMtAAlBD0YNAQsgBkH4BGogDBCRECAGQShqIAwQhRQgBkHQ4t8ANgL0BCAGQTQ6APAEIAYoAiggBigCLCAGQfAEahCBFSEDIAwQyg0iBEUNCyAEKAIAQSRGDQEMCwsgASgCyAIhAyABQSU2AsgCIAEgASkD4AI3A5gDIAZB/ARqIAFB1AJqKQIANwIAIAZBhAVqIAFB3AJqKAIANgIAIAYgASkCzAI3AvQEIAYgAzYC8AQgBkHwBGoiAxDGCiADIAEQ0QQgBigC+AQhAyAGKQPwBCIlUA0DIAYgBigC/AQiBzYCpAEgBiADNgKgASAGICU3A5gBIAEtAKACQQJHDQIgAS0AqgIhCSAGQagBaiABEKMDQQEhBCAGQQE6AMsEIAYgASkAqwI3AMwEIAYgASkAswI3ANQEIAYgASkAuwI3ANwEIAYgASgAwwI2AOQEIAZB0AFqIg4gBkHLBGoQ0ggCQAJAAkAgDhDKDSIFRQ0AIAUoAgBBAkcNACAFLQAIQQJHDQAgBS0ACUEaRg0BCyAGQfgEaiAOEJEQIAZB+OLfADYC9AQgBkE0OgDwBCAGQcAEaiAGQYgEaiAGKALwA0ElRiICGygCACIFIAZBxARqIAZBjARqIAIbKAIAIgIgAiAFSxsgBSACIAIgBUkbIAZB8ARqEIEVIQUgDhDKDSIORQ0BIA4oAgBBJEcNASAGIAYpA4gENwPABCAGKALwAyAGQSU2AvADQSRHDQggBkGoAWogBigC9AMQ/wsMAQsgBkH8BGogBkH8A2opAgA3AgAgBkGEBWogBkGEBGooAgA2AgAgBigC8AMhBCAGQSU2AvADIAYgBikC9AM3AvQEIAYgBDYC8AQgBiAGKQOIBDcDwAQgBkHwBGoQxgogBkEwaiAGQagBahDZASAGIAYoAjQiBTYC9AQgBiAGKAIwIgQ2AvAEIAYtAO0DQQFxDQAgDhDKDSIORQ0AIA4oAgBBF0cNACAGQfQEaiEFAkAgBEUEQCAFELsFDAELIAUQ/yILQQAhBUEAIQQLIAYgBTYC7AQgBiAENgLoBCAEQQEgBRtFDQEgBEEBcQRAIAZB7ARqEP8iCyAGQagBahDfEEEAIQUMAgsgASABKQPgAjcDmAMgASgCyAIgAUElNgLIAkEkRw0EIAEgASgCzAIQ/wsMCQsgBkHwBGoiBCAGQagBakGgAxD7BhogARDfECABIARBoAMQ+wYhBCAGIAk6AGAgBiAEKQCrAjcAYSAGIAQpALMCNwBpIAYgBCkAuwI3AHEgBiAEKADDAjYAeSAMIAZB4ABqENIICyAGQfAAaiAGQZgBahClHCAGQY8BakEANgAAIAZBADYCjAEgBiAFNgKIASAGIAc2AmwgBiADNgJoIAYgCCABKAKcAyIBIAEgCEkbNgJkIAYgCCABIAEgCEsbNgJgIAZBrAFqIAZB4ABqQTgQ+wYaIAZB8ARqQQRyIAZBqAFqQTwQ+wYaQQwMCAsMBgsgBkEYaiEYQQAhAyMAQcAMayICJAAgAUEoaiIHEMMgIQQCQCAHEMoNIgVFBEAgASgCgAIhAyACQQA6APAIIAMgAyACQfAIahCBFSEDQQEhBQwBCwJAAkAgAgJ/AkACQCACAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAFKAIAIghBCWsODAEgAiAYICAgFyAgBgALAkACQCAIQRtrDgoYIRgYISEhISEAAQsgASABKQPgAjcDmAMgASgCyAIgAUElNgLIAkEkRg0hQeXs4ABBKEHI698AEPQXAAsgCEECRw0fQQQgBS0ACEECa0H/AXEiAyADQQRPG0EBaw4EBxYWBwYLIAcQwyAhBQJAIAcQyg0iAwRAIAMoAgBBCUYNAQsgAkH4CGogBxCRECACQYABaiAHEIUUIAJB8OXfADYC9AggAkE0OgDwCCACKAKAASACKAKEASACQfAIahCBFSEDIAcQyg0iBEUNHSAEKAIAQSRHDR0gASABKQPgAjcDmAMgASgCyAIgAUElNgLIAkEkRw0DIAEgASgCzAIQ/wsMHQsgASgCyAIhAyABQSU2AsgCIAEgASkD4AI3A5gDIAJB/AhqIAFB1AJqKQIANwIAIAJBhAlqIAFB3AJqKAIANgIAIAIgASkCzAI3AvQIIAIgAzYC8AggAkHwCGoQxgogAkGQAWogARCWAiACKAKUASEDIAIoApABDRwgAiADNgKwBQJAIAcQyg0iBARAIAQoAgBBCkYNAQsgAkH4CGogBxCRECACQYgBaiAHEIUUIAJByOXfADYC9AggAkE0OgDwCCACKAKIASACKAKMASACQfAIahCBFSEDIAcQyg0iBEUNHCAEKAIAQSRHDRwgASABKQPgAjcDmAMgASgCyAIgAUElNgLIAkEkRw0EIAEgASgCzAIQ/wsMHAsgASgCyAIhCCABQSU2AsgCIAEgASkD4AI3A5gDIAJB/AhqIAFBzAJqIgRBCGopAgA3AgAgAkGECWogBEEQaigCADYCACACIAQpAgA3AvQIIAIgCDYC8AggAkHwCGoQxgogBSABKAKcAyIIIAUgCEkbIQQgAw0BIAQhAwwcCyAHEMMgIRECQAJAIAcQyg0iBARAIAQoAgBBC0YNAQsgAkH4CGogBxCRECACQaABaiAHEIUUIAJBwObfADYC9AggAkE0OgDwCCACKAKgASACKAKkASACQfAIahCBFSEFIAcQyg0iA0UNGiADKAIAQSRHDRogASABKQPgAjcDmAMgASgCyAIgAUElNgLIAkEkRw0BIAEgASgCzAIQ/wsMGgsgASgCyAIhBCABQSU2AsgCIAEgASkD4AI3A5gDIAJB/AhqIAFB1AJqKQIANwIAIAJBhAlqIAFB3AJqKAIANgIAIAIgASkCzAI3AvQIIAIgBDYC8AggAkHwCGoiBBDGCiACQQA2AsQEIAJCgICAgIABNwK8BCABQcwCaiELIARBBHIhCiACQZAFaiENIAJB+AhqIRkgAkHoAmpBBHIhHSACQfACaiEeIAJBpQxqIRogAkGFCWohGyACQZAMakEEciEcIAJB/AdqIQ8gAkHYBWohEiACQZQIaiEfIAJBzAhqISAgAkGQCGohISACQcgIaiEiA0ACQCACQfAIaiABQQIQ0wgCQAJAIAItAPAIDQAgAi0A8QhBAUYEQCACKALEBCEJIAIoAsAEIQgMHQsgBxDDIBogBxDDICEIAkAgAS0AoAJBAkcEQCACQQc2AogFDAELIAEtAKoCISMgAkGwBWogARCjAyACQQE6ANMIIAIgASkAqwI3ANQIIAIgASkAswI3ANwIIAIgASkAuwI3AOQIIAIgASgAwwI2AOwIIBIgAkHTCGoQ0ghBACEFIBIQwyAhBAJAIBIQyg0iCUUNACAJKAIAQQdHDQAgCiAPKQIANwIAIApBCGogD0EIaikCADcCACAKQRBqIA9BEGooAgA2AgAgAigC+AchBSACQSU2AvgHIAIgBTYC8AggAiACKQOQCDcDyAggAkHwCGoQxgpBASEFIAIoAswIIRAgAigCyAghFAsgAkGwDGoiCSACQbAFahDRBCACQfAIaiITIAkQlR8gAigC8AghCQJAAkACQCACLQCECSIkQQJHBEAgHCAKKQIANwIAIBogGy8AADsAACAcQQhqIApBCGoiFykCADcCACAaQQJqIBtBAmotAAA6AAAgAiAkOgCkDCACIAk2ApAMAkAgEhDKDSIJRQ0AIAkoAgBBF0cNACAKIA8pAgA3AgAgFyAPQQhqKQIANwIAIApBEGogD0EQaigCADYCACACKAL4ByEJIAJBJTYC+AcgAiAJNgLwCCACIAIpA5AINwPICCATEMYKIAJBAToApAwgAiACKAKYDCIJIAIoAswIIhMgCSATSRs2ApgMIAIgCSATIAkgE0sbNgKcDAsgAgJ/AkACQAJAIBIQyg0iCQRAIAkoAgBBE0YNAQsgGSASEJEQIAJBoODfADYC9AggAkE0OgDwCCAiICEgAigC+AdBJUYiBRsoAgAiBCAgIB8gBRsoAgAiBSAEIAVJGyAEIAUgBCAFSxsgAkHwCGoQgRUhBCASEMoNIgVFDQYgBSgCAEEkRg0BDAYLIAogDykCADcCACAXIA9BCGopAgA3AgAgCkEQaiAPQRBqKAIANgIAIAIoAvgHIQkgAkElNgL4ByACIAk2AvAIIAIgAikDkAg3A8gIIAJB8AhqIgkQxgogBUUNASACKALMCCEFIBkgAkGQDGoQ6xggAkEANgLwCEEoEIUjIAlBKBD7BiEJIAJBADYCgAMgAiAQNgL8AiACIBQ2AvgCIAIgBCAFIAQgBUsbNgL0AiACIAQgBSAEIAVJGzYC8AIgAiAJNgLsAkECDAILIAIgAikDkAg3A8gIIAIoAvgHIAJBJTYC+AdBJEcNAyACQbAFaiACKAL8BxD/CwwECyAeIAJBkAxqEOsYQQALNgLoAiACQYgFaiACQegCakEoEPsGGiACQfAIaiIEIAJBsAVqQaADEPsGGiABEN8QIAEgBEGgAxD7BiEEIAIgIzoAkAwgAiAEKQCrAjcAkQwgAiAEKQCzAjcAmQwgAiAEKQC7AjcAoQwgAiAEKADDAjYAqQwgByACQZAMahDSCAwECyACIAk2AuwCIAJBCDYC6AIMAgtB5ezgAEEoQYjz3wAQ9BcACyACQQg2AugCIAIgBDYC7AIgAikDkAwQ+RoLIAJBBzYCiAUgHRD/IiACQbAFahDfEAsCQAJAAkACfwJAIAcQyg0iBARAIAQoAgBBB0YNAQsgAkG4AWogARCWAiACKAK8ASEEIAIoArgBRQ0DIAQMAQsgCiALKQIANwIAIAEoAsgCIQQgAUElNgLIAiABIAEpA+ACNwOYAyAKQQhqIAtBCGopAgA3AgAgCkEQaiALQRBqKAIANgIAIAIgBDYC8AggAkHwCGoQxgogAkHAAWogARCWAiACKALEASEQIAIoAsABRQ0BIBALIQUgAkGIBWoQjCVBCCEJIAMhBAwCCyACQfAEaiANQQhqKQMANwMAIAJB+ARqIA1BEGopAwA3AwAgAkGABWogDUEYaikDADcDACACIA0pAwA3A+gEIAEoApwDIQMgAigCjAUhBSACKAKIBSEJQdgAQQgQqyAiBCAIIAMgAyAISRsiFTYCDCAEIAggAyADIAhLGyIWNgIIIAQgEDYCBCAEQQk2AgAMAQsCQCAHEMoNIgMEQCADKAIAQRdGDQELIAJB8ARqIA1BCGopAwA3AwAgAkH4BGogDUEQaikDADcDACACQYAFaiANQRhqKQMANwMAIAIgDSkDADcD6AQgCCABKAKcAyIDIAMgCEsbIRYgCCADIAMgCEkbIRUgAigCjAUhBSACKAKIBSEJDAELIAogCykCADcCACABKALIAiEDIAFBJTYCyAIgASABKQPgAjcDmAMgCkEIaiALQQhqKQIANwIAIApBEGogC0EQaigCADYCACACIAM2AvAIIAJB8AhqEMYKIAJB8ARqIA1BCGopAwA3AwAgAkH4BGogDUEQaikDADcDACACQYAFaiANQRhqKQMANwMAIAIgDSkDADcD6AQgASgCnAMhECACKAKIBSEJIAIoAowFIQVB2ABBCBCrICIDIAggECAIIBBLGyIVNgIMIAMgCCAQIAggEEkbIhY2AgggAyAENgIEIANBCDYCACADIQQLIAlBCEYNGyACQeAEaiIQIAJBgAVqKQMANwMAIAJB2ARqIhQgAkH4BGopAwA3AwAgAkHQBGoiFyACQfAEaikDADcDACACIAIpA+gENwPIBCACKALEBCITIAIoArwERgRAIAJBvARqENIXCyACKALABCIIIBNBOGxqIgMgBTYCBCADIAk2AgAgAyACKQPIBDcCCCADIAQ2AjAgAyAVNgIsIAMgFjYCKCADQRBqIBcpAwA3AgAgA0EYaiAUKQMANwIAIANBIGogECkDADcCACACIBNBAWoiCTYCxAQCQCAHEMoNIgMEQCADKAIAQRBGDQELIAJB8AhqIAFBAhDTCCACLQDwCA0BIAItAPEIDR0gBxDKDSIDBEAgAygCAEEQRg0DCyACQfgIaiAHEJEQIAJBsAFqIAcQhRQgAkGoxeAANgL0CCACQTQ6APAIIAIoArABIAIoArQBIAJB8AhqEIEVIQUgBxDKDSIDRQ0cIAMoAgBBJEcNHCABIAEpA+ACNwOYAyABKALIAiABQSU2AsgCQSRHDQMgASABKALMAhD/CwwcCyAKIAspAgA3AgAgASgCyAIhAyABQSU2AsgCIAEgASkD4AI3A5gDIApBCGogC0EIaikCADcCACAKQRBqIAtBEGooAgA2AgAgAiADNgLwCCACQfAIahDGCiAEIQMMAwsgAigC9AghBQwaCyAKIAspAgA3AgAgASgCyAIhAyABQSU2AsgCIAEgASkD4AI3A5gDIApBCGogC0EIaikCADcCACAKQRBqIAtBEGooAgA2AgAgAiADNgLwCCACQfAIahDGCiAEIQMMAQsLQeXs4ABBKEGQ8t8AEPQXAAtB5ezgAEEoQZjr3wAQ9BcACyACIAUgCCAFIAhLGzYC/AggAiAENgL4CCACIAM2AvQIQQ0MGwtB5ezgAEEoQZjw3wAQ9BcAC0Hl7OAAQShBiPDfABD0FwALIAUtAARBDEcNGSAHEMMgIQQgAkH8CGogAUHUAmopAgA3AgAgAkGECWogAUHcAmooAgA2AgAgASgCyAIhAyABQSU2AsgCIAEgASkD4AI3A5gDIAIgASkCzAI3AvQIIAIgAzYC8AggAkHwCGoiBRDGCiAHEMoNIgNFBEAgASgCgAIhAyACQQA6APAIIAMgAyAFEIEVIQNBASEFDBwLAkACQAJAAkAgAygCACIDQR1rQQJPBEAgA0EkRgRAIAEgASkD4AI3A5gDIAEoAsgCIAFBJTYCyAJBJEYNIEHl7OAAQShB2OvfABD0FwALIAJB/AhqIAcQkRAgAkGoAmogBxCFFCACQSE2AvgIIAJB6OvfADYC9AggAkEwOgDwCCACKAKoAiACKAKsAiACQfAIahCBFSEDQQEhBSAHEMoNIgRFDSAgBCgCAEEkRw0gIAEgASkD4AI3A5gDIAEoAsgCIAFBJTYCyAJBJEcNASABIAEoAswCEP8LDCALIAJB8AhqIAEQxQIgAigC8AgiA0EHRg0LIAIoAogJIQggAikDgAkhJSACKAL8CCEHIAIoAvgIIQoCQAJAAkAgA0EDaw4CAQIAC0Hl7OAAQShBvOzfABD0FwALIAI1AowJISYgAiAlNwPgAiACQbAFaiIDQZjk4ABBARDLFQJ8IAitICZCIIaEIiZQRQRAIAIgJjcD8AggAkGwAmogAkHwCGoQlAwgAyACKAKwAiACKAK0AhD2HSACKQPwCBD5GiAlvwwBCyACQQE2AvQIIAJBhPjgADYC8AggAkIBNwL8CCACQfUBNgLsAiACIAJB6AJqNgL4CCACIAJB4AJqNgLoAiACQbAFaiACQfAIahDwJA0DIAIrA+ACCyACQfgIaiACQbgFaigCADYCACACIAIpArAFNwPwCCACQfAIahCmGSImQoCAgIBwgyElmiEnICanIQhBgICAgHghCQwECyACIAg2AogFIAJBsAVqIgNBmOTgAEEBEMsVAkAgJVBFBEAgAiAlNwPwCCACQbgCaiACQfAIahCUDCADIAIoArgCIAIoArwCEPYdIAIpA/AIEPkaDAELIAJBATYC9AggAkGE+OAANgLwCCACQgE3AvwIIAJBuAI2AuwCIAIgAkHoAmo2AvgIIAIgAkGIBWo2AugCIAJBsAVqIAJB8AhqEPAkDQMgAigCiAUhCAsgAkH4CGoiAyAIQQhqKAIANgIAIAJB6gJqIgUgCEEPai0AADoAACACIAgpAgA3A/AIIAIgCC8ADTsB6AIgCC0ADCEJQRBBBBCrICIIQQIgCWs6AAwgCEEIaiADKAIANgIAIAggAikD8Ag3AgAgCCACLwHoAjsADSAIQQ9qIAUtAAA6AAAgAyACQbgFaigCADYCACACIAIpArAFNwPwCCACQfAIahCmGSACKAKIBRCSK78hJ0IAISVBg4CAgHghCQwDC0Hl7OAAQShBjOzfABD0FwALQZzr4ABBKyACQfAIakGg5NgAQZzs3wAQxQ4AC0Gc6+AAQSsgAkHwCGpBoOTYAEGs7N8AEMUOAAsgASgCnAMhBUHYAEEIEKsgIgMgJSAIrYQ3AyAgAyAnOQMYIAMgBzYCFCADIAo2AhAgAyAJNgIIIANBETYCACADIAQgBSAEIAVLGzYCLCADIAQgBSAEIAVJGzYCKAwJCwJAIAUtAAkiA0EXaw4LBBkZGRkCARkZAwEACyADQQJPDRgLAkAgBxDKDSIDRQ0AIAMoAgBBAkcNACADLQAIDQAgAy0ACUEURw0AIAcQrRMiA0UNACADKAIAQQJHDQAgAy0ACEECRw0AIAMtAAlBF0YNBAsgBxDKDSIDRQ0EIAMoAgBBAkcNBCADLQAIQQJHDQQgAy0ACUEhRw0EQQghBQwNCyACQegCaiIDIAEQzwEgAgJ/IAItAJwDQQRHBEAgAkG0BWogA0HAABD7BhogAkHwCGpBBHIgAkGwBWpBxAAQ+wYaQRMMAQsgAiACKALoAjYC9AhBFAs2AvAIIAJBMGogAkHwCGoQlhggAigCNCEDIAIoAjAhBQwYCyAHEMMgIQgCQAJAAkAgBxDKDSIDRQ0AIAMoAgBBAkcNACADLQAIQQJHDQAgAy0ACUEgRg0BCyACQfgIaiAHEJEQIAJBQGsgBxCFFCACQZDk3wA2AvQIIAJBNDoA8AggAigCQCACKAJEIAJB8AhqEIEVIQMgBxDKDSIERQ0BIAQoAgBBJEcNASABIAEpA+ACNwOYAyABKALIAiABQSU2AsgCQSRHDQggASABKALMAhD/CwwBCyABKALIAiEDIAFBJTYCyAIgASABKQPgAjcDmAMgAkH8CGogAUHUAmopAgA3AgAgAkGECWogAUHcAmooAgA2AgAgAiABKQLMAjcC9AggAiADNgLwCCACQfAIahDGCgJAAkACQCAHEMoNIgNFDQAgAygCAEECRw0AIAMtAAhBAkcNACADLQAJQRxGDQELIAJB8AhqIAFBARDUAiACKALwCCEDIAItAIQJQQNGDQIgAkHEBWogAkGECWooAgA2AgAgAkG8BWogAkH8CGopAgA3AgAgAiACKQL0CDcCtAVBBCEEDAELIAJB8AhqIgUgARDPASACKALwCCEDIAItAKQJIgRBBEYNASACQbAFakEEciAFQQRyQTAQ+wYaIAJB7AVqIAJBrAlqKAAANgAAIAIgAikApQk3AOUFCyACIAQ6AOQFIAIgAzYCsAVBACEDAkACQCAHEIghDQAgBxDKDSIFRQ0AIAUoAgBBFEcNACAFLQAEQQRHDQAgAkEAOgD1AiACIAEtALYCOgD0AiACIAEtAMYCOgCEAyACIAEpAaoCNwDoAiACIAEpA7gCNwD2AiACIAEoAsACNgD+AiACIAEvAcQCOwCCAyACIAFBsgJqIgMoAQA2APACIAJBiQlqIAFBvwJqKQAANwAAIAJBhAlqIAFBugJqKQEANwIAIAJB/AhqIAMpAQA3AgAgAiABKQGqAjcC9AggByACQegCahDSCCACIAE2AvAIIAJByABqIAEQ7wEgAigCTCEDIAIoAkggAkHwCGoQhyUNASACLQDkBSEECyABKAKcAyEHIAJBuANqIAJBsAVqQTQQ+wYaIAIgAkHsBWooAAA2AK8DIAIgAikA5QU3A6gDIAggByAHIAhLGyEFIARB/wFxQQVHDQkgBSEDDAELIAJBsAVqEOEhCyACIAM2AvQIQRQhBwwKCyAHEMMgIQggAkHwCGoiCSABENAHIAIoAvAIDQIgAigC+AghBCACKAL0CCEFIAcQiCENAyAHEMoNIgNFDQMgAygCAEECRw0DIAMtAAgNAyADLQAJQQ5HDQMgAkHoAmoiAyABIAhBACAFIAQQiQggAgJ/IAItAIwDQQJHBEAgAkG0BWogA0EoEPsGGiAJQQRyIAJBsAVqQSwQ+wYaQRIMAQsgAiACKALoAjYC9AhBFAs2AvAIIAJBKGogAkHwCGoQlhggAigCLCEDIAIoAighBQwWCyABKALIAiEDIAFBJTYCyAIgASABKQPgAjcDmAMgAkH8CGogAUHUAmopAgA3AgAgAkGECWogAUHcAmooAgA2AgAgAiABKQLMAjcC9AggAiADNgLwCCACQfAIaiIDEMYKIAMgARDQByACKALwCA0BIAJB6AJqIgUgASAEQQEgAigC9AggAigC+AgQiQggAgJ/IAItAIwDQQJHBEAgAkG0BWogBUEoEPsGGiADQQRyIAJBsAVqQSwQ+wYaQRIMAQsgAiACKALoAjYC9AhBFAs2AvAIIAJBIGogAkHwCGoQlhggAigCJCEDIAIoAiAhBQwVCyAHEMoNIgMNBQwGCyACKAL0CCEDQQEhBQwTC0HYAEEIEKsgIgMgBDYCCCADIAU2AgQgA0EBNgIAC0EAIQUMEQtB5ezgAEEoQajk3wAQ9BcACyACIAggByAHIAhJGzYC/AggAiAFNgL4CCACQYAJaiACQbgDakE0EPsGGiACQbwJaiACKACvAzYAACACIAQ6ALQJIAIgAzYCwAkgAiACKQOoAzcAtQlBBCEHDAILIAMoAgBBAkcNACADLQAIQQNHDQBBCiEFDAILAkAgBxDKDSIDRQ0AIAMoAgBBAkcNACADLQAIDQAgAy0ACUEYRw0AQQAhBQwCCwJAIAcQyg0iA0UNACADKAIAQQJHDQAgAy0ACA0AIAMtAAlBH0cNAEEEIQUMAgsCQCAHEMoNIgNFDQAgAygCAEECRw0AIAMtAAgNACADLQAJQR5HDQBBBSEFDAILAkAgBxDKDSIDRQ0AIAMoAgBBAkcNACADLQAIDQAgAy0ACUEgRw0AQQshBQwCCwJAIAcQyg0iA0UNACADKAIAQQJHDQAgAy0ACA0AIAMtAAlBHUcNAEECIQUMAgsCQCAHEMoNIgNFDQAgAygCAEECRw0AIAMtAAgNACADLQAJQRxHDQBBAyEFDAILAkAgBxDKDSIDRQ0AIAMoAgBBAkcNACADLQAIDQAgAy0ACUEbRw0AQQYhBQwCCwJAIAcQyg0iA0UNACADKAIAQQJHDQAgAy0ACA0AIAMtAAlBEEcNAEEHIQUMAgsCQCAHEMoNIgNFDQAgAygCAEECRw0AIAMtAAgNACADLQAJQRpHDQBBASEFDAILAkAgBxDKDSIDRQ0AIAMoAgBBAkcNACADLQAIDQAgAy0ACUERRw0AQQkhBQwCC0ENIQUgBxDKDSIDRQ0BIAMoAgBBAkcNASADLQAIDQFBDEENIAMtAAlBGUYbIQUMAQsgAiAHNgLwCCACQThqIAJB8AhqEJYYIAIoAjwhAyACKAI4IQUMDAsgBxCtEyIDBH8gAygCAEEGRgVBAAtFIAVBDUdxRQRAIAcQwyAhBSACQfAIaiIEIAEQhAgCQAJAIAItAPAIRQRAIAItAPEIIAQgAUEBENQCIAIoAvAIIQMgAi0AhAkiCEEDRg0BIAJB9AJqIAJB/AhqIgopAgA3AgAgAkH/AmogAkGHCWotAAA6AAAgAiACKQL0CDcC7AIgAiACLwCFCTsA/QIgAiAIOgD8AiACIAM2AugCQQAhAwJAIAcQiCENACAHEMoNIghFDQAgCCgCAEEURw0AIAgtAARBBEcNACACQQA6AL0FIAIgAS0AtgI6ALwFIAIgAS0AxgI6AMwFIAIgASkBqgI3ALAFIAIgASkDuAI3AL4FIAIgASgCwAI2AMYFIAIgAS8BxAI7AMoFIAIgAUGyAmoiAygBADYAuAUgAkGJCWogAUG/AmopAAA3AAAgAkGECWogAUG6AmopAQA3AgAgCiADKQEANwIAIAIgASkBqgI3AvQIIAcgAkGwBWoQ0gggAiABNgLwCCACQRhqIAEQ7wEgAigCHCEDIAIoAhggBBCHJUUNACACQegCahDXGwwCC0EBcQRAIAEoApwDIQQgAkGoAToA8AggASAFIAQgBCAFSxsgBSAEIAQgBUkbIAJB8AhqEMYZCyACQdACaiIJIAJB8AJqKQMANwMAIAJB2AJqIgogAkH4AmooAgA2AgAgAkHGAmoiCyACQf0CaiIEQQJqLQAAOgAAIAIgAikD6AI3A8gCIAIgBC8AADsBxAIgBSABKAKcAyIIIAUgCEkbIQRBAyEHIAItAPwCIg1BA0YEQCAEIQMMAgsgAkGICWogCSkDADcDACACQZAJaiAKKAIANgIAIAJBlwlqIAstAAA6AAAgAiAFIAggBSAISxs2AvwIIAIgBDYC+AggAiACKQPIAjcDgAkgAiANOgCUCSACIAIvAcQCOwCVCSACIAM2ApgJDAILIAIoAvQIIQMLIAIgAzYC9AhBFCEHCyACIAc2AvAIIAJBEGogAkHwCGoQlhggAigCFCEDIAIoAhAhBQwMCyABKALIAiEDIAFBJTYCyAIgASABKQPgAjcDmAMgAkH8CGogAUHUAmopAgA3AgAgAkGECWogAUHcAmooAgA2AgAgAiABKQLMAjcC9AggAiADNgLwCCACQfAIahDGCiABKAKcAyEIQdgAQQgQqyAiAyAFOgAMQQAhBSADQQA2AgAgAyAEIAggBCAISxs2AgggAyAEIAggBCAISRs2AgQMCwsgBxDDICEKIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAHEMoNIgMEQCADKAIAQRFGDQELIAJB8AhqIAEQxQIgAigC9AghAyACKALwCCIIQQdGDREgAkHIBWogAkGICWopAwA3AwAgAkHABWogAkGACWopAwA3AwAgAiACKQP4CDcDuAUgAiADNgK0BSACIAg2ArAFIAgOBQIFAQMEAQsgBxDDICELIAcQyg0iA0UEQCABKAKAAiEDIAJBADoA8AggAyADIAJB8AhqEIEVIQMMEQsgAygCAEEkRgRAIAEgASkD4AI3A5gDIAEoAsgCIAFBJTYCyAJBJEcNCSABKALMAiEDDBELIAEoAsgCIQMgAUElNgLIAiABIAEpA+ACNwOYAyACQfwIaiABQdQCaikCADcCACACQYQJaiABQdwCaigCADYCACACIAEpAswCNwL0CCACIAM2AvAIIAJB8AhqIggQxgogAkEANgLwBCACQoCAgIDAADcC6AQgAkGwBWoiDSABQQAQygQgAigCsAUhAyACLQDIBSIJQQJGDQ8gAUHMAmohBCACQfgCaiIPIAJBxAVqKAIANgIAIAJB8AJqIhEgAkG8BWopAgA3AwAgAiACKQK0BTcD6AIgAiACKADJBTYCkAwgAiACQcwFaigAADYAkwxBIEEIEKsgIgUgAzYCACAFIAk6ABggBSACKQPoAjcCBCAFQQxqIBEpAwA3AgAgBUEUaiAPKAIANgIAIAUgAigCkAw2ABkgBUEcaiACKACTDDYAACACQQE2ApAFIAIgBTYCjAUgAkEBNgKIBSANQQRyIQUgAkGJCWohDSAIQQRyIQggAkHJBWohDwNAIAlBAXFFBEACQCAHEMoNIgMEQCADKAIAQRZGDQELIAJBuAVqIAcQkRAgAkHgAGogBxCFFCACQcDv3wA2ArQFIAJBNDoAsAUgAigCYCACKAJkIAJBsAVqEIEVIQMgBxDKDSIERQ0RIAQoAgBBJEcNESABIAEpA+ACNwOYAyABKALIAiABQSU2AsgCQSRHDQogASABKALMAhD/CwwRCyAFIAQpAgA3AgAgASgCyAIhAyABQSU2AsgCIAEgASkD4AI3A5gDIAVBCGoiESAEQQhqIgkpAgA3AgAgBUEQaiISIARBEGoiECgCADYCACACIAM2ArAFIAJBsAVqEMYKIAJB8ABqIAEQlgIgAigCdCEDIAIoAnANECACQegEaiADENUbAkAgBxDKDSIDBEAgAygCAEEORg0BCyACQbgFaiAHEJEQIAJB6ABqIAcQhRQgAkGw4d8ANgK0BSACQTQ6ALAFIAIoAmggAigCbCACQbAFahCBFSEDIAcQyg0iBEUNESAEKAIAQSRHDREgASABKQPgAjcDmAMgASgCyAIgAUElNgLIAkEkRw0JIAEgASgCzAIQ/wsMEQsgBSAEKQIANwIAIAEoAsgCIQMgAUElNgLIAiABIAEpA+ACNwOYAyARIAkpAgA3AgAgEiAQKAIANgIAIAIgAzYCsAUgAkGwBWoiAxDGCiADIAFBABDKBCACKAKwBSEDIAItAMgFIglBAkYNECAIIAUpAgA3AgAgDSAPKAAANgAAIAhBEGogEigCADYCACAIQQhqIBEpAgA3AgAgDUEDaiAPQQNqKAAANgAAIAIgCToAiAkgAiADNgLwCCACQYgFaiACQfAIahC/EAwBCwsgAkHQBGoiCCACQZAFaigCADYCACACIAIpAogFNwPIBCACKALsBCEDIAIoAugEIgVBgICAgHhGDRAgAigC8AQhCSACQbgFaiAIKAIANgIAIAIgAikDyAQ3A7AFIAIgCTYC8AIgAiADNgLsAiACIAU2AugCIAcQyg0iCARAIAgoAgBBEUYNBgsgAkH4CGogBxCRECACQdgAaiAHEIUUIAJB4OnfADYC9AggAkE0OgDwCCACKAJYIAIoAlwgAkHwCGoQgRUhAyAHEMoNIgRFDQ0gBCgCAEEkRw0NIAEgASkD4AI3A5gDIAEoAsgCIAFBJTYCyAJBJEcNCSABIAEoAswCEP8LDA0LQeXs4ABBKEGI6t8AEPQXAAtBgYCAgHghBQwIC0GAgICAeCEFDAcLQYOAgIB4IQUMBgsgAikDuAUhJSACQbAFahCGFEGCgICAeCEFDAYLIAEoAsgCIQggAUElNgLIAiABIAEpA+ACNwOYAyACQfwIaiAEQQhqKQIANwIAIAJBhAlqIARBEGooAgA2AgAgAiAEKQIANwL0CCACIAg2AvAIIAJB8AhqEMYKIAVBhICAgHhGDQogCyABKAKcAyIHIAcgC0kbIQggCyAHIAcgC0sbIQQgCa0gAjUCsAVCIIaEISUgAikCtAUhJgwGC0Hl7OAAQShBsO/fABD0FwALQeXs4ABBKEHY798AEPQXAAtB5ezgAEEoQczp3wAQ9BcAC0Hl7OAAQShB+OnfABD0FwALIAIoAswFIQggAigCyAUhBCACKQPABSEmIAIpA7gFISULIAEoApwDIQcLIAIgCDYClAkgAiAENgKQCSACICY3A4gJIAIgJTcDgAkgAiADNgL8CCACIAU2AvgIIAIgCiAHIAcgCkkbNgKcCSACIAogByAHIApLGzYCmAlBEQwECyACQbAFahD7IiACQegCahDyJgwCCyACQYgFahD7IgsgAkHoBGoQ8iYLIAIgAzYC9AhBFAs2AvAIIAJB0ABqIAJB8AhqEJYYIAIoAlQhAyACKAJQIQUMCgsgAkHwCGogARCjAyACQQE6AOgCIAIgAikAmws3AOkCIAIgAikAows3APECIAIgAikAqws3APkCIAIgAigAsws2AIEDIAJBmAlqIgQgAkHoAmoQ0gggAkGUBWogAkHEC2opAgA3AgAgAkGcBWogAkHMC2ooAgA2AgAgAigCuAshAyACQSU2ArgLIAIgAikD0As3A4gMIAIgAikCvAs3AowFIAIgAzYCiAUgAkGIBWoQxgogAkG8C2ohAyACAn8CQAJAAkACQAJAAkACQAJAAn8CQAJAIAQQyg0iBUUNACAFKAIAQRRHDQAgBS0ABEELRg0BCwJAIAQQyg0iBUUNACAFKAIAQRRHDQAgBS0ABEEMRg0BCwJAIAQQyg0iBUUNACAFKAIAQQJHDQAgBS0ACA0AIAUtAAlBCUcNACACQZQFaiADQQhqKQIANwIAIAJBnAVqIANBEGooAgA2AgAgAigCuAshBSACQSU2ArgLIAIgBTYCiAUgAiACKQPQCzcDiAwgAiADKQIANwKMBSACQYgFahDGCgsgBBDKDSIFRQ0CIAUoAgBBC0cNAiACQZQFaiIIIANBCGopAgA3AgAgAkGcBWoiCSADQRBqKAIANgIAIAIoArgLIQUgAkElNgK4CyACIAU2AogFIAIgAikD0As3A4gMIAIgAykCADcCjAUgAkGIBWoiChDGCiACQbgFaiACQaILaikBADcDACACQcAFaiACQaoLaikBADcDACACQcUFaiACQa8LaikAADcAACACIAIpAZoLNwOwBSAEEMoNIgVFDQIgBSgCAEECRw0CIAJBsAVqIAUtAAggBUEJai0AABDfCQ0CIAggA0EIaikCADcCACAJIANBEGooAgA2AgAgAigCuAshBSACQSU2ArgLIAIgBTYCiAUgAiACKQPQCzcDiAwgAiADKQIANwKMBSAKEMYKIAQQyg0iA0UNAiADKAIAQQJHDQIgAy0ACEECRw0CQR4MAQsgAkGUBWogA0EIaikCADcCACACQZwFaiADQRBqKAIANgIAIAIoArgLIQUgAkElNgK4CyACIAU2AogFIAIgAikD0As3A4gMIAIgAykCADcCjAUgAkGIBWoQxgogBBDKDSIDRQ0BIAMoAgBBAkcNASADLQAIDQFBCQshBCADLQAJIAJB8AhqEN8QIARHDQEgBxDDICEKIAcQyg0iAwRAIAMoAgBBDUYNAwsgAkH4CGogBxCRECACQdgBaiAHEIUUIAJB2OHfADYC9AggAkE0OgDwCCACKALYASACKALcASACQfAIahCBFSEFIAcQyg0iA0UNByADKAIAQSRHDQcgASABKQPgAjcDmAMgASgCyAIgAUElNgLIAkEkRw0DIAEgASgCzAIQ/wsMBwsgAkHwCGoQ3xALIAcQwyAhAyACQbAFaiABEE0gAigCtAUhBCACAn8gAigCsAUiBUGAgICAeEcEQCACIAIoArgFNgL8CCACIAQ2AvgIIAIgBTYC9AggAiADIAEoApwDIgQgAyAESxs2AoQJIAIgAyAEIAMgBEkbNgKACUEFDAELIAIgBDYC9AhBFAs2AvAIIAJByAFqIAJB8AhqEJYYIAIoAswBIQMgAigCyAEhBQwQCyABKALIAiEDIAFBJTYCyAIgASABKQPgAjcDmAMgAkH8CGogAUHUAmopAgA3AgAgAkGECWogAUHcAmooAgA2AgAgAiABKQLMAjcC9AggAiADNgLwCCABQcwCaiEIIAJB8AhqEMYKAkACQAJAAkACQAJAAkACQAJAIAcQyg0iA0UNACADKAIAQRRHDQAgAy0ABEELRg0BCyAHEMoNIgNFDQEgAygCAEEURw0BIAMtAARBDEcNAQtBAiEJAkAgBxDKDSIDRQ0A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CiAMIAcpAgA3AgAgASgCyAIhCCABQSU2AsgCIAEgASkD4AI3A5gDIAxBCGogB0EIaikCADcCACAMQRBqIAdBEGooAgA2AgAgAiAINgLAAiACQcACahDGCgJAAkAgBBDKDSIIRQ0AIAgoAgBBAkcNACAILQAIQQJHDQAgCC0ACUEMRg0BC0EAIQogAkEAOgDdASACIAEpAaoCNwDDASACIAEpAbICNwDLASACIAEpAboCNwDTASACIAEvAcICOwDbASACIAEvAMUCOwDeASACQfkBaiADQRVqKQAANwAAIAJB9AFqIANBEGopAQA3AgAgAkHsAWogA0EIaikBADcCACACIAMpAQA3AuQBIAQgAkHDAWoQ0gggAiABNgLgASACQcACaiABEJoqIAIoAsQCIQggAigCwAIiBUETRwRAIAJBmAFqIAJByAJqQSgQ+wYaIAJB4AFqEIclDAwLIABBADYCACAAIAg2AgQgAkHgAWoQhyUMCgsgAiAQOgD8ASACIBE6APsBIAJBAToA+gEgAiASOgD5ASACIBM6APgBIAIgFDoA9wEgAiAVOgD2ASACIBY6APUBIAIgFzoA9AEgAiAYOgDzASACIBk6APIBIAIgGjoA8QEgAiAbOgDwASACIBw6AO8BIAIgHToA7gEgAiAeOgDtASACIB86AOwBIAIgIDoA6wEgAiAhOgDqASACICI6AOkBIAIgIzoA6AEgAiAkOgDnASACICU6AOYBIAIgJjoA5QEgAiAnOgDkASACICg6AOMBIAIgKToA4gEgAiAqOgDhASACICs6AOABIAlBFWogA0EVaikAADcAACAJQRBqIANBEGopAQA3AQAgCUEIaiADQQhqKQEANwEAIAkgAykBADcBACAEIAJB4AFqENIIIAIgATYCwAIgAkGEAmogARCCASACKAKIAiEGIAIoAoQCIghFDQYgAkGgAmoiCiAPQQhqKAIANgIAIAIgDykCADcDmAIgAkHAAmoQhyUgAigChAEEQEEwQQgQqyAiBSAGNgIIIAUgCDYCBCAFQQg2AgAgBSACKQOYAjcCDCAFQRRqIAooAgA2AgAgASgCnAMgAkGEAWogBRDSEgUgAkGEAWoQgycgDiACKQOYAjcCACAOQQhqIAooAgA2AgAgAiAGNgKIASACIAg2AoQBCwwACwALIABBADYCACAAIAs2AgQMCwsgASABKQPgAjcDmAMgASgCyAIgAUElNgLIAkEkRw0EIAEgASgCzAIQ/wsMCQsgASABKQPgAjcDmAMgASgCyAIgAUElNgLIAkEkRw0EIAEgASgCzAIQ/wsMCgtB5ezgAEEoQcie4AAQ9BcACyADKAIEIQEgAygCAEEEQQQQqyAiByADNgIAIAIgBzYC7AEgAkEwNgL0ASACQfie4AA2AvABIAIgBTYC6AEgAiAJNgLkASACQbgBOgDgASABIAJB4AFqEIEVIQEgAEEANgIAIAAgATYCBCACQdAAahCHJSACQcACahCHJQwJCyAAQQA2AgAgACAGNgIEIAJBwAJqEIclDAILQeXs4ABBKEHYnuAAEPQXAAtB5ezgAEEoQeie4AAQ9BcACyACQYQBahCDJyACQcwAahDRBgwDCwJAIAIoAoQBBEAgAkG4AmoiAyACQZQBaigCADYCACACQbACaiIHIAJBjAFqKQIANwMAIAIgAikChAE3A6gCIApFBEBBMEEIEKsgIgQgCDYCBCAEIAU2AgAgBEEIaiACQZgBakEoEPsGGiABKAKcAyACQagCaiAEENISCyACQeQAaiADKAIANgIAIAJBCDYCUCACQdwAaiAHKQMANwIAIAIgAikDqAI3AlQMAQsgAiAINgJUIAIgBTYCUCACQdgAaiACQZgBakEoEPsGGkEAIQkgBUETRg0BCyACQdAAahDhKCEJCyAAIAk2AhAgACALNgIEIAAgAigCSDYCACAAIA0gASgCnAMiASABIA1JGzYCDCAAIA0gASABIA1LGzYCCAwDCyAAQQA2AgAgACADNgIECyACQcgAahDeKAwBCyAAQQA2AgAgACADNgIECyACQfACaiQAC+8VAhR/AX4jAEGAAmsiBiQAIAEoApQNIhMoArwCKAIQQQF0IQggAygCBCEOAkACQAJAAkAgAygCACIPQQFrQQJPBEACQAJAAkACQAJAAkACQAJAIAUgCE0EQCACQZgDaiEQIAFBiAVqIRIgASgCpA0hEyABKAKgDSEUIAEpAwAhGiADLQAYIQ4gAygCDCELIAMoAgghDCADKAIUIQpBACEIIAEtAJwNQQFxIRUgAygCECINIQcCQAJAAkADQAJAIAZB1AFqIhEgFCATIAwgCyAHIAoQsRkgBigC1AFFDQAgBigC2AEhDyAGKALcASEJIAYg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wObfADYC/AggAkE0OgD4CCACKAKgASACKAKkASACQfgIahCBFSEFIAcQ4w0iA0UNGiADKAIAQSRHDRogASABKQNANwN4IAEoAiggAUElNgIoQSRHDQEgASABKAIsEIYMDBoLIAEoAighBCABQSU2AiggASABKQNANwN4IAJBhAlqIAFBNGopAgA3AgAgAkGMCWogAUE8aigCADYCACACIAEpAiw3AvwIIAIgBDYC+AggAkH4CGoiBBDHCiACQQA2AsQEIAJCgICAgIABNwK8BCABQYABaiEdIAFBLGohCyAEQQRyIQogAkGQBWohDSACQYAJaiEZIAJB6AJqQQRyIR4gAkHwAmohHyACQbUMaiEaIAJBjQlqIRsgAkGgDGpBBHIhHCACQdwFaiEOIAJB2AVqIRIgAkGwBmohICACQfQFaiEhIAJBrAZqISIgAkHwBWohIyACQagGaiEkA0ACQCACQfgIaiABQQIQ1ggCQAJAIAItAPgIDQAgAi0A+QhBAUYEQCACKALEBCEJIAIoAsAEIQYMHQsgBxDeIBogBxDeICEGAkAgAS0A+AJBAkcEQCACQQc2AogFDAELIAEtAIIDISUgAkGwBWogARDRAiACQQE6ANsIIAIgASkAgwM3ANwIIAIgASkAiwM3AOQIIAIgASkAkwM3AOwIIAIgASgAmwM2APQIICAgAkHbCGoQyQhBACEFIBIQ3iAhBAJAIBIQ4w0iCUUNACAJKAIAQQdHDQAgCiAOKQIANwIAIApBCGogDkEIaikCADcCACAKQRBqIA5BEGooAgA2AgAgAigC2AUhBSACQSU2AtgFIAIgBTYC+AggAiACKQPwBTcDqAYgAkH4CGoQxwpBASEFIAIoAqwGIRAgAigCqAYhFAsgAkHADGoiCSACQbAFahDTBCACQfgIaiITIAkQlR8gAigC+AghCQJAAkACQCACLQCMCSImQQJHBEAgHCAKKQIANwIAIBogGy8AADsAACAcQQhqIApBCGoiFykCADcCACAaQQJqIBtBAmotAAA6AAAgAiAmOgC0DCACIAk2AqAMAkAgEhDjDSIJRQ0AIAkoAgBBF0cNACAKIA4pAgA3AgAgFyAOQQhqKQIANwIAIApBEGogDkEQaigCADYCACACKALYBSEJIAJBJTYC2AUgAiAJNgL4CCACIAIpA/AFNwOoBiATEMcKIAJBAToAtAwgAiACKAKoDCIJIAIoAqwGIhMgCSATSRs2AqgMIAIgCSATIAkgE0sbNgKsDAsgAgJ/AkACQAJAIBIQ4w0iCQRAIAkoAgBBE0YNAQsgGSASEJYLIAJBoODfADYC/AggAkE0OgD4CCAkICMgAigC2AVBJUYiBRsoAgAiBCAiICEgBRsoAgAiBSAEIAVJGyAEIAUgBCAFSxsgAkH4CGoQgRUhBCASEOMNIgVFDQYgBSgCAEEkRg0BDAYLIAogDikCADcCACAXIA5BCGopAgA3AgAgCkEQaiAOQRBqKAIANgIAIAIoAtgFIQkgAkElNgLYBSACIAk2AvgIIAIgAikD8AU3A6gGIAJB+AhqIgkQxwogBUUNASACKAKsBiEFIBkgAkGgDGoQ6xggAkEANgL4CCAJEI0pIQkgAkEANgKAAyACIBA2AvwCIAIgFDYC+AIgAiAEIAUgBCAFSxs2AvQCIAIgBCAFIAQgBUkbNgLwAiACIAk2AuwCQQIMAgsgAiACKQPwBTcDqAYgAigC2AUgAkElNgLYBUEkRw0DIAJBsAVqIAIoAtwFEIYMDAQLIB8gAkGgDGoQ6xhBAAs2AugCIAJBiAVqIAJB6AJqQSgQ+wYaIAJB+AhqIgQgAkGwBWpBqAMQ+wYaIAEQhBAgASAEQagDEPsGIQQgAiAlOgCgDCACIAQpAIMDNwChDCACIAQpAIsDNwCpDCACIAQpAJMDNwCxDCACIAQoAJsDNgC5DCAdIAJBoAxqEMkIDAQLIAIgCTYC7AIgAkEINgLoAgwCC0Hl7OAAQShBiPPfABD0FwALIAJBCDYC6AIgAiAENgLsAiACKQOgDBD5GgsgAkEHNgKIBSAeEJ0jIAJBsAVqEIQQCwJAAkACQAJ/AkAgBxDjDSIEBEAgBCgCAEEHRg0BCyACQbgBaiABEJQCIAIoArwBIQQgAigCuAFFDQMgBAwBCyAKIAspAgA3AgAgASgCKCEEIAFBJTYCKCABIAEpA0A3A3ggCkEIaiALQQhqKQIANwIAIApBEGogC0EQaigCADYCACACIAQ2AvgIIAJB+AhqEMcKIAJBwAFqIAEQlAIgAigCxAEhECACKALAAUUNASAQCyEFIAJBiAVqEKgmQQghCSADIQQMAgsgAkHwBGogDUEIaikDADcDACACQfgEaiANQRBqKQMANwMAIAJBgAVqIA1BGGopAwA3AwAgAiANKQMANwPoBCABKAJ8IQMgAigCjAUhBSACKAKIBSEJQdgAQQgQqyAiBCAGIAMgAyAGSRsiFTYCDCAEIAYgAyADIAZLGyIWNgIIIAQgEDYCBCAEQQk2AgAMAQsCQCAHEOMNIgMEQCADKAIAQRdGDQELIAJB8ARqIA1BCGopAwA3AwAgAkH4BGogDUEQaikDADcDACACQYAFaiANQRhqKQMANwMAIAIgDSkDADcD6AQgBiABKAJ8IgMgAyAGSxshFiAGIAMgAyAGSRshFSACKAKMBSEFIAIoAogFIQkMAQsgCiALKQIANwIAIAEoAighAyABQSU2AiggASABKQNANwN4IApBCGogC0EIaikCADcCACAKQRBqIAtBEGooAgA2AgAgAiADNgL4CCACQfgIahDHCiACQfAEaiANQQhqKQMANwMAIAJB+ARqIA1BEGopAwA3AwAgAkGABWogDUEYaikDADcDACACIA0pAwA3A+gEIAEoAnwhECACKAKIBSEJIAIoAowFIQVB2ABBCBCrICIDIAYgECAGIBBLGyIVNgIMIAMgBiAQIAYgEEkbIhY2AgggAyAENgIEIANBCDYCACADIQQLIAlBCEYNGyACQeAEaiIQIAJBgAVqKQMANwMAIAJB2ARqIhQgAkH4BGopAwA3AwAgAkHQBGoiFyACQfAEaikDADcDACACIAIpA+gENwPIBCACKALEBCITIAIoArwERgRAIAJBvARqENIXCyACKALABCIGIBNBOGxqIgMgBTYCBCADIAk2AgAgAyACKQPIBDcCCCADIAQ2AjAgAyAVNgIsIAMgFjYCKCADQRBqIBcpAwA3AgAgA0EYaiAUKQMANwIAIANBIGogECkDADcCACACIBNBAWoiCTYCxAQCQCAHEOMNIgMEQCADKAIAQRBGDQELIAJB+AhqIAFBAhDWCCACLQD4CA0BIAItAPkIDR0gBxDjDSIDBEAgAygCAEEQRg0DCyACQYAJaiAHEJYLIAJBsAFqIAcQuBQgAkGoxeAANgL8CCACQTQ6APgIIAIoArABIAIoArQBIAJB+AhqEIEVIQUgBxDjDSIDRQ0cIAMoAgBBJEcNHCABIAEpA0A3A3ggASgCKCABQSU2AihBJEcNAyABIAEoAiwQhgwMHAsgCiALKQIANwIAIAEoAighAyABQSU2AiggASABKQNANwN4IApBCGogC0EIaikCADcCACAKQRBqIAtBEGooAgA2AgAgAiADNgL4CCACQfgIahDHCiAEIQMMAwsgAigC/AghBQwaCyAKIAspAgA3AgAgASgCKCEDIAFBJTYCKCABIAEpA0A3A3ggCkEIaiALQQhqKQIANwIAIApBEGogC0EQaigCADYCACACIAM2AvgIIAJB+AhqEMcKIAQhAwwBCwtB5ezgAEEoQZDy3wAQ9BcAC0Hl7OAAQShBmOvfABD0FwALIAIgBSAGIAUgBksbNgKECSACIAQ2AoAJIAIgAzYC/AhBDQwbC0Hl7OAAQShBmPDfABD0FwALQeXs4ABBKEGI8N8AEPQXAAsgBS0ABEEMRw0ZIAcQ3iAhBCACQYQJaiABQTRqKQIANwIAIAJBjAlqIAFBPGooAgA2AgAgASgCKCEDIAFBJTYCKCABIAEpA0A3A3ggAiABKQIsNwL8CCACIAM2AvgIIAJB+AhqIgUQxwogBxDjDSIDRQRAIAEoAtgCIQMgAkEAOgD4CCADIAMgBRCBFSEDQQEhBQwcCwJAAkACQAJAIAMoAgAiA0Eda0ECTwRAIANBJEYEQCABIAEpA0A3A3ggASgCKCABQSU2AihBJEYNIEHl7OAAQShB2OvfABD0FwALIAJBhAlqIAcQlgsgAkGoAmogBxC4FCACQSE2AoAJIAJB6OvfADYC/AggAkEwOgD4CCACKAKoAiACKAKsAiACQfgIahCBFSEDQQEhBSAHEOMNIgRFDSAgBCgCAEEkRw0gIAEgASkDQDcDeCABKAIoIAFBJTYCKEEkRw0BIAEgASgCLBCGDAwgCyACQfgIaiABEMYCIAIoAvgIIgNBB0YNCyACKAKQCSEGIAIpA4gJIScgAigChAkhByACKAKACSEKAkACQAJAIANBA2sOAgECAAtB5ezgAEEoQbzs3wAQ9BcACyACNQKUCSEoIAIgJzcD4AIgAkGwBWoiA0GY5OAAQQEQyxUCfCAGrSAoQiCGhCIoUEUEQCACICg3A/gIIAJBsAJqIAJB+AhqEJQMIAMgAigCsAIgAigCtAIQ9h0gAikD+AgQ+RogJ78MAQsgAkEBNgL8CCACQYT44AA2AvgIIAJCATcChAkgAkH1ATYC7AIgAiACQegCajYCgAkgAiACQeACajYC6AIgAkGwBWogAkH4CGoQviQNAyACKwPgAgsgAkGACWogAkG4BWooAgA2AgAgAiACKQKwBTcD+AggAkH4CGoQphkiKEKAgICAcIMhJ5ohKSAopyEGQYCAgIB4IQkMBAsgAiAGNgKIBSACQbAFaiIDQZjk4ABBARDLFQJAICdQRQRAIAIgJzcD+AggAkG4AmogAkH4CGoQlAwgAyACKAK4AiACKAK8AhD2HSACKQP4CBD5GgwBCyACQQE2AvwIIAJBhPjgADYC+AggAkIBNwKECSACQbgCNgLsAiACIAJB6AJqNgKACSACIAJBiAVqNgLoAiACQbAFaiACQfgIahC+JA0DIAIoAogFIQYLIAJBgAlqIgMgBkEIaigCADYCACACQeoCaiIFIAZBD2otAAA6AAAgAiAGKQIANwP4CCACIAYvAA07AegCIAYtAAwhCUEQQQQQqyAiBkECIAlrOgAMIAZBCGogAygCADYCACAGIAIpA/gINwIAIAYgAi8B6AI7AA0gBkEPaiAFLQAAOgAAIAMgAkG4BWooAgA2AgAgAiACKQKwBTcD+AggAkH4CGoQphkgAigCiAUQkiu/ISlCACEnQYOAgIB4IQkMAwtB5ezgAEEoQYzs3wAQ9BcAC0Gc6+AAQSsgAkH4CGpBvK7gAEGc7N8AEMUOAAtBnOvgAEErIAJB+AhqQbyu4ABBrOzfABDFDgALIAEoAnwhBUHYAEEIEKsgIgMgJyAGrYQ3AyAgAyApOQMYIAMgBzYCFCADIAo2AhAgAyAJNgIIIANBETYCACADIAQgBSAEIAVLGzYCLCADIAQgBSAEIAVJGzYCKAwJCwJAIAUtAAkiA0EXaw4LBBkZGRkCARkZAwEACyADQQJPDRgLAkAgBxDjDSIDRQ0AIAMoAgBBAkcNACADLQAIDQAgAy0ACUEURw0AIAcQ4RIiA0UNACADKAIAQQJHDQAgAy0ACEECRw0AIAMtAAlBF0YNBAsgBxDjDSIDRQ0EIAMoAgBBAkcNBCADLQAIQQJHDQQgAy0ACUEhRw0EQQghBQwNCyACQegCaiIDIAEQzgEgAgJ/IAItAJwDQQRHBEAgAkG0BWogA0HAABD7BhogAkH4CGpBBHIgAkGwBWpBxAAQ+wYaQRMMAQsgAiACKALoAjYC/AhBFAs2AvgIIAJBMGogAkH4CGoQlhggAigCNCEDIAIoAjAhBQwYCyAHEN4gIQYCQAJAAkAgBxDjDSIDRQ0AIAMoAgBBAkcNACADLQAIQQJHDQAgAy0ACUEgRg0BCyACQYAJaiAHEJYLIAJBQGsgBxC4FCACQZDk3wA2AvwIIAJBNDoA+AggAigCQCACKAJEIAJB+AhqEIEVIQMgBxDjDSIERQ0BIAQoAgBBJEcNASABIAEpA0A3A3ggASgCKCABQSU2AihBJEcNCCABIAEoAiwQhgwMAQsgASgCKCEDIAFBJTYCKCABIAEpA0A3A3ggAkGECWogAUE0aikCADcCACACQYwJaiABQTxqKAIANgIAIAIgASkCLDcC/AggAiADNgL4CCACQfgIahDHCgJAAkACQCAHEOMNIgNFDQAgAygCAEECRw0AIAMtAAhBAkcNACADLQAJQRxGDQELIAJB+AhqIAFBARDVAiACKAL4CCEDIAItAIwJQQNGDQIgAkHEBWogAkGMCWooAgA2AgAgAkG8BWogAkGECWopAgA3AgAgAiACKQL8CDcCtAVBBCEEDAELIAJB+AhqIgUgARDOASACKAL4CCEDIAItAKwJIgRBBEYNASACQbAFakEEciAFQQRyQTAQ+wYaIAJB7AVqIAJBtAlqKAAANgAAIAIgAikArQk3AOUFCyACIAQ6AOQFIAIgAzYCsAVBACEDAkACQCAHELshDQAgBxDjDSIFRQ0AIAUoAgBBFEcNACAFLQAEQQRHDQAgAkEAOgD1AiACIAEtAI4DOgD0AiACIAEtAJ4DOgCEAyACIAEpAYIDNwDoAiACIAEpA5ADNwD2AiACIAEoApgDNgD+AiACIAEvAZwDOwCCAyACIAFBigNqIgMoAQA2APACIAJBkQlqIAFBlwNqKQAANwAAIAJBjAlqIAFBkgNqKQEANwIAIAJBhAlqIAMpAQA3AgAgAiABKQGCAzcC/AggAUGAAWogAkHoAmoQyQggAiABNgL4CCACQcgAaiABEPABIAIoAkwhAyACKAJIIAJB+AhqEKMmDQEgAi0A5AUhBAsgASgCfCEHIAJBuANqIAJBsAVqQTQQ+wYaIAIgAkHsBWooAAA2AK8DIAIgAikA5QU3A6gDIAYgByAGIAdJGyEFIARB/wFxQQVHDQkgBSEDDAELIAJBsAVqEOEhCyACIAM2AvwIQRQhBwwKCyAHEN4gIQYgAkH4CGoiCSABENMHIAIoAvgIDQIgAigCgAkhBCACKAL8CCEFIAcQuyENAyAHEOMNIgNFDQMgAygCAEECRw0DIAMtAAgNAyADLQAJQQ5HDQMgAkHoAmoiAyABIAZBACAFIAQQjQggAgJ/IAItAIwDQQJHBEAgAkG0BWogA0EoEPsGGiAJQQRyIAJBsAVqQSwQ+wYaQRIMAQsgAiACKALoAjYC/AhBFAs2AvgIIAJBKGogAkH4CGoQlhggAigCLCEDIAIoAighBQwWCyABKAIoIQMgAUElNgIoIAEgASkDQDcDeCACQYQJaiABQTRqKQIANwIAIAJBjAlqIAFBPGooAgA2AgAgAiABKQIsNwL8CCACIAM2AvgIIAJB+AhqIgMQxwogAyABENMHIAIoAvgIDQEgAkHoAmoiBSABIARBASACKAL8CCACKAKACRCNCCACAn8gAi0AjANBAkcEQCACQbQFaiAFQSgQ+wYaIANBBHIgAkGwBWpBLBD7BhpBEgwBCyACIAIoAugCNgL8CEEUCzYC+AggAkEgaiACQfgIahCWGCACKAIkIQMgAigCICEFDBULIAcQ4w0iAw0FDAYLIAIoAvwIIQNBASEFDBMLQdgAQQgQqyAiAyAENgIIIAMgBTYCBCADQQE2AgALQQAhBQwRC0Hl7OAAQShBqOTfABD0FwALIAIgBiAHIAYgB0sbNgKECSACIAU2AoAJIAJBiAlqIAJBuANqQTQQ+wYaIAJBxAlqIAIoAK8DNgAAIAIgBDoAvAkgAiADNgLICSACIAIpA6gDNwC9CUEEIQcMAgsgAygCAEECRw0AIAMtAAhBA0cNAEEKIQUMAgsCQCAHEOMNIgNFDQAgAygCAEECRw0AIAMtAAgNACADLQAJQRhHDQBBACEFDAILAkAgBxDjDSIDRQ0AIAMoAgBBAkcNACADLQAIDQAgAy0ACUEfRw0AQQQhBQwCCwJAIAcQ4w0iA0UNACADKAIAQQJHDQAgAy0ACA0AIAMtAAlBHkcNAEEFIQUMAgsCQCAHEOMNIgNFDQAgAygCAEECRw0AIAMtAAgNACADLQAJQSBHDQBBCyEFDAILAkAgBxDjDSIDRQ0AIAMoAgBBAkcNACADLQAIDQAgAy0ACUEdRw0AQQIhBQwCCwJAIAcQ4w0iA0UNACADKAIAQQJHDQAgAy0ACA0AIAMtAAlBHEcNAEEDIQUMAgsCQCAHEOMNIgNFDQAgAygCAEECRw0AIAMtAAgNACADLQAJQRtHDQBBBiEFDAILAkAgBxDjDSIDRQ0AIAMoAgBBAkcNACADLQAIDQAgAy0ACUEQRw0AQQchBQwCCwJAIAcQ4w0iA0UNACADKAIAQQJHDQAgAy0ACA0AIAMtAAlBGkcNAEEBIQUMAgsCQCAHEOMNIgNFDQAgAygCAEECRw0AIAMtAAgNACADLQAJQRFHDQBBCSEFDAILQQ0hBSAHEOMNIgNFDQEgAygCAEECRw0BIAMtAAgNAUEMQQ0gAy0ACUEZRhshBQwBCyACIAc2AvgIIAJBOGogAkH4CGoQlhggAigCPCEDIAIoAjghBQwMCyAHEOESIgMEfyADKAIAQQZGBUEAC0UgBUENR3FFBEAgBxDeICEFIAJB+AhqIgQgARCFCAJAAkAgAi0A+AhFBEAgAi0A+QggBCABQQEQ1QIgAigC+AghAyACLQCMCSIGQQNGDQEgAkH0AmogAkGECWoiCikCADcCACACQf8CaiACQY8Jai0AADoAACACIAIpAvwINwLsAiACIAIvAI0JOwD9AiACIAY6APwCIAIgAzYC6AJBACEDAkAgBxC7IQ0AIAcQ4w0iBkUNACAGKAIAQRRHDQAgBi0ABEEERw0AIAJBADoAvQUgAiABLQCOAzoAvAUgAiABLQCeAzoAzAUgAiABKQGCAzcAsAUgAiABKQOQAzcAvgUgAiABKAKYAzYAxgUgAiABLwGcAzsAygUgAiABQYoDaiIDKAEANgC4BSACQZEJaiABQZcDaikAADcAACACQYwJaiABQZIDaikBADcCACAKIAMpAQA3AgAgAiABKQGCAzcC/AggAUGAAWogAkGwBWoQyQggAiABNgL4CCACQRhqIAEQ8AEgAigCHCEDIAIoAhggBBCjJkUNACACQegCahDXGwwCC0EBcQRAIAEoAnwhBCACQagBOgD4CCABIAUgBCAEIAVLGyAFIAQgBCAFSRsgAkH4CGoQ2BkLIAJB0AJqIgkgAkHwAmopAwA3AwAgAkHYAmoiCiACQfgCaigCADYCACACQcYCaiILIAJB/QJqIgRBAmotAAA6AAAgAiACKQPoAjcDyAIgAiAELwAAOwHEAiAFIAEoAnwiBiAFIAZJGyEEQQMhByACLQD8AiINQQNGBEAgBCEDDAILIAJBkAlqIAkpAwA3AwAgAkGYCWogCigCADYCACACQZ8JaiALLQAAOgAAIAIgBSAGIAUgBksbNgKECSACIAQ2AoAJIAIgAikDyAI3A4gJIAIgDToAnAkgAiACLwHEAjsAnQkgAiADNgKgCQwCCyACKAL8CCEDCyACIAM2AvwIQRQhBwsgAiAHNgL4CCACQRBqIAJB+AhqEJYYIAIoAhQhAyACKAIQIQUMDAsgASgCKCEDIAFBJTYCKCABIAEpA0A3A3ggAkGECWogAUE0aikCADcCACACQYwJaiABQTxqKAIANgIAIAIgASkCLDcC/AggAiADNgL4CCACQfgIahDHCiABKAJ8IQZB2ABBCBCrICIDIAU6AAxBACEFIANBADYCACADIAQgBiAEIAZLGzYCCCADIAQgBiAEIAZJGzYCBAwLCyAHEN4gIQogAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAcQ4w0iAwRAIAMoAgBBEUYNAQsgAkH4CGogARDGAiACKAL8CCEDIAIoAvgIIgZBB0YNESACQcgFaiACQZAJaikDADcDACACQcAFaiACQYgJaikDADcDACACIAIpA4AJNwO4BSACIAM2ArQFIAIgBjYCsAUgBg4FAgUBAwQBCyAHEN4gIQsgBxDjDSIDRQRAIAEoAtgCIQMgAkEAOgD4CCADIAMgAkH4CGoQgRUhAwwRCyADKAIAQSRGBEAgASABKQNANwN4IAEoAiggAUElNgIoQSRHDQkgASgCLCEDDBELIAEoAighAyABQSU2AiggASABKQNANwN4IAJBhAlqIAFBNGopAgA3AgAgAkGMCWogAUE8aigCADYCACACIAEpAiw3AvwIIAIgAzYC+AggAkH4CGoiBhDHCiACQQA2AvAEIAJCgICAgMAANwLoBCACQbAFaiINIAFBABDLBCACKAKwBSEDIAItAMgFIglBAkYNDyABQSxqIQQgAkH4AmoiDiACQcQFaigCADYCACACQfACaiIRIAJBvAVqKQIANwMAIAIgAikCtAU3A+gCIAIgAigAyQU2AqAMIAIgAkHMBWooAAA2AKMMQSBBCBCrICIFIAM2AgAgBSAJOgAYIAUgAikD6AI3AgQgBUEMaiARKQMANwIAIAVBFGogDigCADYCACAFIAIoAqAMNgAZIAVBHGogAigAoww2AAAgAkEB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AvACIQUgAikD6AIiJ1ANCCACIAIoAvQCNgKUBSACIAU2ApAFIAIgJzcDiAUgAkGYAmogAUH47t8AQYzF4ABBAhCyByACKAKcAiEDIAIoApgCBEAgJxD5GiADIQUMCQsgASgCfCELIAJBgAlqIAJBiAVqEKUcQQAhBSACQZ8JakEANgAAIAJBADYCnAkgAiADNgKYCSACIAQgCyAEIAtLGzYC/AggAiAEIAsgBCALSRsiAzYC+AggAkGwBWpBBHIgAkH4CGoiBEEEckEmEPsGGiACQd8FaiACQacJai0AADoAACACIAIoAKMJNgDbBSACQQA6ANoFIAIgAzYCsAUCQCAHEOMNIgNFDQAgAygCAEECRw0AIAMtAAgNACADLQAJQQFHDQAgASgCKCEDIAFBJTYCKCABIAEpA0A3A3ggAkGECWogBkEIaikCADcCACACQYwJaiAGQRBqKAIANgIAIAIgBikCADcC/AggAiADNgL4CCAEEMcKIAJBkAJqIAEQlAIgAigClAIhBSACKAKQAg0ICyACIAU2AogFAkACQCAHEOMNIgNFDQAgAygCAEEMRw0AIAEoAighAyABQSU2AiggASABKQNANwN4IAJBhAlqIAZBCGopAgA3AgAgAkGMCWogBkEQaigCADYCACACIAYpAgA3AvwIIAIgAzYC+AggAkH4CGoQxwoCQCAHEOMNIgNFDQAgAygCAEEURw0AIAMtAARBC0YNAgsCQCAHEOMNIgNFDQAgAygCAEEURw0AIAMtAARBDEYNAgtBAyEDIAcQ4w0iBEUNByAEKAIAQRdHDQcgASgCKCEDIAFBJTYCKCABIAEpA0A3A3ggAkGECWogBkEIaikCADcCACACQYwJaiAGQRBqKAIANgIAIAIgBikCADcC/AggAiADNgL4CCACQfgIahDHCkEAIQMMBwsgAkGACWogBxCWCyACQegBaiAHELgUIAJB2OTfADYC/AggAkE0OgD4CCACKALoASACKALsASACQfgIahCBFSEFIAcQ4w0iA0UNByADKAIAQSRHDQcgASABKQNANwN4IAEoAiggAUElNgIoQSRHDQMgASABKAIsEIYMDAcLQQIhAwJAIAcQ4w0iBEUNACAEKAIAQRRHDQBBAUECIAQtAARBC0YbIQMLIAEoAighBCABQSU2AiggASABKQNANwN4IAJBhAlq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IAQgAiACIARLGyICIAsgAiALSRsgAiALIAIgC0sbIA1B2AFqENgZIA0tADchBAwCCyANQaIBOgDYASABIAYgAiANQdgBahDYGSANLQA8IQMLIA1B5AFqIA1BiAFqKAIANgIAIA0gDSkDgAE3AtwBIAVBEHYhEkEHIQggDS0APiETIA0tADshFCANLQA6IRUgDS0APSEWIA0tADkhFyANLQA3IRggDS0AqwEhDyANLQCqASEQIA0tAKkBIREgDS0AqAEhBCANKQOgASEaIA0tADghGSAFQQh2DAELIA1B5AFqIANBCGooAgA2AgAgDSADKQIANwLcASANKAIwIgMgASgCfCIBIAEgA0sbIQkgAyABIAEgA0kbIQxBACEHIA0tAD0hDyANLQA5IRAgDSkCpAEhGiANKAKgASECIA0tADghESAKIQYgBSEOIA0tADohBSANLQA+CyEBIAAgCDYCACAAIA0pAtgBNwIEIAAgGDoASyAAIBM6AEogACAUOgBJIAAgFToASCAAIBY6AEcgACAXOgBGIAAgAzoARSAAIBk6AEQgACAKNgJAIAAgEjsBPiAAIAE6AD0gACAFOgA8IAAgDzoAOyAAIBA6ADogACAROgA5IAAgBDoAOCAAIBo3AzAgACACNgIsIAAgBjYCKCAAIA42AiQgACAHNgIgIAAgDDYCHCAAIAk2AhggACALNgIUIABBDGogDUHgAWopAgA3AgAMAQsgACADKQIANwIwIABBOGogA0EIaigCADYCACANQeQBaiANQYgBaikDADcCACANQewBaiANQZABaikDADcCACANQfQBaiANQZgBaikDADcCACANIA0pA4ABNwLcASABKAJ8IQEgDSgCMCECIA0tADghAyANLQA8IQQgDS0APSEGIA0tAD4hByANLQA3IQggAEEMNgIAIABBBGogDUHYAWpBJBD7BhogACAIOgBIIAAgBzoARyAAIAY6AEYgACAEOgBFIAAgAzoARCAAIAo2AkAgACAFNgI8IAAgAiABIAEgAkkbNgIsIAAgAiABIAEgAksbNgIoCyANQdwAahCjJgsgDUGAAmokAAvpEwINfwF+IwBBgAJrIg0kACANIAQ6ADcgDSACNgIwIA0gBjoAOCANIAg6ADkgDSAJOgA6IA0gCjoAOyANIAs6ADwgDSAMOgA9AkACQAJAAkACQCAFEPkVRQRAIAUoAgBBBUcNAQJAIApFBEAgCw0BDAMLIA1BKGogBRCvEyANKAIsIQIgDSgCKCEEQaS14ABBBxDcGiEaIA1B4QA6AIABIA0gGjcDiAEgASAEIAIgDUGAAWoQxhkgDS0APEEBcUUNAgsgDUEgaiAFEK8TIA0oAiQhAiANKAIgIQRBirfgAEEIENwaIRogDUHhADoAgAEgDSAaNwOIASABIAQgAiANQYABahDGGQwBCyANIAUQrxMgDSgCBCECIA0oAgAgDUHfADoAgAEgAiANQYABahCBFSECAkAgAUEoahDKDSIERQ0AIAQoAgBBJEcNACABIAEpA+ACNwOYAyABKALIAiABQSU2AsgCQSRHBEBB5ezgAEEoQaz33wAQ9BcACyABIAEoAswCEP8LCyAAQQ02AgAgACACNgIEDAELIAFBKGohAgJAAkAgAS0AoAJBAkYEQCANLQA5QQFHDQELIA1BADoAPgwBCwJAIAIQyg0iBARAIAQoAgBBCEYNAQsgDUEAOgA+DAELIAEoAsgCIQQgAUElNgLIAiABIAEpA+ACNwOYAyANQYwBaiABQdQCaikCADcCACANQZQBaiABQdwCaigCADYCACANIAEpAswCNwKEASANIAQ2AoABIA1BgAFqEMYKIA1BAToAPgsgDUEYaiABEO0PIA0oAhwhCyANKAIYRQRAIA1BAToARSANQQE6AFEgDSABLQC7AjoAUCANIAEoAaoCNgA/IA0gAS8BrgI7AEMgDSABKQCxAjcARiANIAEvALkCOwBOIA0gASkAvQI3AFIgDSABLwDFAjsAWiANQfUAaiABQb8CaikAADcAACANQfAAaiABQboCaikBADcCACANQegAaiABQbICaikBADcCACANIAEpAaoCNwJgIAIgDUE/ahDSCCANIAE2AlwgDUGIAWogBUEIaikDADcDACANQZABaiAFQRBqKQMANwMAIA1BmAFqIAVBGGopAwA3AwAgDUGoAWogA0EIaigCADYCACANIAc2AqwBIA0gCzYC1AEgDSAFKQMANwOAASANIAMpAgA3A6ABIA0gDUEwajYCsAEgDSANQThqNgK0ASANIA1BO2o2AtABIA0gDUE6ajYCzAEgDSANQTlqNgLIASANIA1BPmo2AsQBIA0gDUE9ajYCwAEgDSANQTxqNgK8ASANIA1BN2o2ArgBQQAhBSACEMoNIgRFDQIgBCgCAEEVRw0CIAQtAAQNAgJAIAIQyg0iBEUEQCABKAKAAiEBIA1BADoA2AEgASABIA1B2AFqEIEVIQUMAQsgBCgCAEEkRgRAIAEgASkD4AI3A5gDIAEoAsgCIAFBJTYCyAJBJEYEQCABKALMAiEFDAILQeXs4ABBKEG8998AEPQXAAsgASgCyAIhBCABQSU2AsgCIAEgASkD4AI3A5gDIA1B5AFqIAFB1AJqKQIANwIAIA1B7AFqIAFB3AJqKAIANgIAIA0gASkCzAI3AtwBIA0gBDYC2AEgDUHYAWoQxgogDUEQaiABELgGIA0oAhQhBSANKAIQRQ0DCyANQaABaiANQdQBaiAAQQ02AgAgACAFNgIEAkAgDSgCgAFBBUYEQCANKQOIARD5GgwBCyANQYABahCfFgsQ+yYQ7iYMAwsgAEENNgIAIAAgCzYCBAsgBRCNISADEO4mDAILAkAgAhDKDSIERQ0AAkACQCAEKAIAQQ5rDgICAAELIAEoAsgCIQIgAUElNgLIAiABIAEpA+ACNwOYAyANQeQBaiABQdQCaikCADcCACANQewBaiABQdwCaigCADYCACANIAEpAswCNwLcASANIAI2AtgBIA1B2AFqEMYKDAELIAIQiCENACANQQhqIAIQhRQgDSgCDCECIA0oAgghBCANQfUAOgDYASABIAQgAiANQdgBahDGGQsgBygCAEUEQAJ/AkACQAJAAkAgDSgCgAFBBUYEQEEDIQRBCCEIIA1BiAFqIQMgDSgClAEhCiANLQA3QQNHDQEMBAsgDSgCMCICIAEoApwDIgMgAiADSRshBiACIAMgAiADSxshAiANLQA8IQMgDSgCnAEhDiANKAKYASEHIA0oApQBIQwgDSgCkAEhCSANKAKMASEKIAVFDQIgA0EBcQ0BDAILIAEoApwDIQIgDSgCMCEEIA1BtQE6ANgBIAEgBCACIAIgBEsbIgIgCiACIApJGyACIAogAiAKSxsgDUHYAWoQxhkgDS0ANyEEDAILIA1BogE6ANgBIAEgBiACIA1B2AFqEMYZIA0tADwhAwsgDUHkAWogDUGIAWooAgA2AgAgDSANKQOAATcC3AEgBUEQdiESQQchCCANLQA+IRMgDS0AOyEUIA0tADohFSANLQA9IRYgDS0AOSEXIA0tADchGCANLQCrASEPIA0tAKoBIRAgDS0AqQEhESANLQCoASEEIA0pA6ABIRogDS0AOCEZIAVBCHYMAQsgDUHkAWogA0EIaigCADYCACANIAMpAgA3AtwBIA0oAjAiAyABKAKcAyIBIAEgA0sbIQkgAyABIAEgA0kbIQxBACEHIA0tAD0hDyANLQA5IRAgDSkCpAEhGiANKAKgASECIA0tADghESAFIQ4gCyEGIA0tADohBSANLQA+CyEBIAAgCDYCACAAIA0pAtgBNwIEIAAgGDoASyAAIBM6AEogACAUOgBJIAAgFToASCAAIBY6AEcgACAXOgBGIAAgAzoARSAAIBk6AEQgACALNgJAIAAgEjsBPiAAIAE6AD0gACAFOgA8IAAgDzoAOyAAIBA6ADogACAROgA5IAAgBDoAOCAAIBo3AzAgACACNgIsIAAgBjYCKCAAIA42AiQgACAHNgIgIAAgDDYCHCAAIAk2AhggACAKNgIUIABBDGogDUHgAWopAgA3AgAMAQsgACADKQIANwIwIABBOGogA0EIaigCADYCACANQeQBaiANQYgBaikDADcCACANQewBaiANQZABaikDADcCACANQfQBaiANQZgBaikDADcCACANIA0pA4ABNwLcASABKAKcAyEBIA0oAjAhAiANLQA4IQMgDS0APCEEIA0tAD0hBiANLQA+IQcgDS0ANyEIIABBDDYCACAAQQRqIA1B2AFqQSQQ+wYaIAAgCDoASCAAIAc6AEcgACAGOgBGIAAgBDoARSAAIAM6AEQgACALNgJAIAAgBTYCPCAAIAIgASABIAJJGzYCLCAAIAIgASABIAJLGzYCKAsgDUHcAGoQhyULIA1BgAJqJAALrxMCBn8BfiMAQfABayICJAACfyAALQAMIgUgASgCACIDQRlGDQAaIAUgA0EjRg0AGiAAQQA6AAxBAAshBAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQEEHIANBDGsiBiAGQSZPG0EBaw4kAAEdAgMEBQYHCAkKCx0dDA0ODxAdERITHR0UFRYXGBkaGx0cHQsgASgCDEEEdCEEIAEoAgghAwNAIARFDR0gAygCAEECRwRAIANBDGogABClLQsgA0EQaiEDIARBEGshBAwACwALIAFB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QQR0IQYgASEEAkADQCAGBEAgBCgCCEEBRw0CIAQoAgQtAAAgA0HIAGpqQQE6AAAgBkEQayEGIARBEGohBAwBCwsgAy0ASCEEIANBmA9qIgYgA0HJAGpB/wEQ+wYaIARBAkYNACAAIAQ6AAQgAEEFaiAGQf8BEPsGGiAAQYWAgIB4NgIADAELIANBAzYCpAQgA0EAOwCpBCADQQA6AJIEIANBADoAngQgA0EBOgCUBCADQoKAgIAwNwKIBCADQQJBASACQfUDSSIGGyIEOgCsBCADQQM2ApgEIANBAToAqAQgA0EAOgCtBCADQYACOwGgBCADQQE7AZwEIANBATsBkAQgA0HIAGoiBSADQaQEaiABIAIQxAECQAJAAkACQAJAIAMoAkhFBEAgA0HoBmoiASADQeYAai8BADsBACADIAMpAV43A+AGIAMpAkwhCSADKQJUIQogAy8BXCECIANBtA9qIANB6ABqIgdByAIQ+wYaIANBsg9qIAEvAQA7AQAgAyACOwGoDyADIAo3AqAPIAMgCTcCmA8gAyADKQPgBjcBqg8gBkUEQCAFQQJBASADQZgPahCHASADKAJIIgFBgICAgHhHBEAgA0HICWoiAiADQeYAai8BADsBACADIAMpAV43A8AJIAMpAkwhCSADKQJUIQogAy8BXCEGIANB4AZqIgUgB0GoAhD7BhogA0HuCWogAi8BADsBACADIAY7AeQJIAMgCjcC3AkgAyAJNwLUCSADIAE2AtAJIAMgAykDwAk3AeYJIANB8AlqIAVBqAIQ+wYaQez8wwAhBSADQdAJahD8HyEBDAULDAILIANByABqQQBBASADQZgPahB+IAMoAkhFBEAgA0HoBmoiASADQeYAai8BADsBACADIAMpAV43A+AGIAMpAkwhCSADKQJUIQogAy8BXCECIANB0AxqIANB6ABqQcACEPsGGiADQc4MaiABLwEAOwEAIAMgAjsBxAwgAyAKNwK8DCADIAk3ArQMIAMgAykD4AY3AcYMQfD9wwAhBSADQbQMahD9HyEBDAQLDAELIANBiBJqIANB5gBqLwEAOwEAIAMgAykBXjcDgBIgAy0AXSEGIAMtAFwhBCADKAJYIQUgAygCVCEBIAMoAlAhAgwBCyADQYgSaiADQeYAai8BADsBACADIAMpAV43A4ASIAMtAF0hBiADLQBcIQQgAygCWCEFIAMoAlQhASADKAJQIQIgA0GYD2oQ9RcLIAJBA0YNASADQQM6AOEDDAILIAMtAK0EIQYgA0GYD2oQ9RcLIAMgBDoA4AMgAyAFNgLcAyADIAE2AtgDIAMgAy8BgBI7AeIDIAMgBjoA4QMgBkH/AXFBA0YNACAAIAMpAtgDNwIEIABBhoCAgHg2AgAgAEEMaiADQeADaigCADYCAAwBCyADQdgDahDYJCAAQYeAgIB4NgIACyADQZASaiQAC6URAQh/IwBB8ABrIgMkAAJAAkACQAJAAkACQAJAA0ACQAJAAkACQAJAIAIoAgBBAWsOBwEGAAIDCAQACyADQQE6AFQgA0EANgJQIANCgICAgBA3AkggACADQcgAahDwGQwLCyACKAIEIQQgA0EIaiACKAIIIgJBAUEBEPsUIAMoAgghBiADKAIMIAQgAhD7BiEEIANBAToAVCADIAI2AlAgAyAENgJMIAMgBjYCSCADQShqIgIgA0HIAGoQ8BkgASgCCCABLQAQIAIQ/iAgAEEIaiADQTBqKAIANgIAIAAgAykCKDcCAAwKCyADQRxqIAEgAigCDBCXASACKAIEIQYgAigCECIERQRAIAItABQCQCAGBEAgAigCCEEBRg0BCyADQRxqELgXC0EAIQIgA0EANgJQIANCgICAgBA3AkggA0EBOgBUIANBKGogA0HIAGoQ8BlBAXENBQNAIAJBDEYNBiADQRxqIAJqIgQoAgAhBiAEIANBKGogAmoiBCgCADYCACAEIAY2AgAgAkEEaiECDAALAAsgBCABKAIEIgcgBCAHSRshBQJAIAZFDQAgBCACKAIIRw0AIANBAToAVCADQQA2AlAgA0KAgICAEDcCSCADQTxqIANByABqEPAZA0ACQCAFRQ0AIANBPGoiBhD2Dw0AIANBMGogA0HEAGooAgA2AgAgAyADKQI8NwMoIANByABqIgIgA0EcahDMCSAGIAEgA0EoaiACEPYBIAVBAWshBSACENEkDAELCyAEIAdNDQkgA0E8ahC4FwwJCyADQQE6AFQgA0EANgJQIANCgICAgBA3AkggA0E8aiADQcgAahDwGQNAIAVFDQggA0E8aiIEEPYPDQggA0EwaiADQcQAaigCADYCACADIAMpAjw3AyggA0HIAGoiAiADQRxqEMwJIAQgASADQShqIAIQ9gEgBUEBayEFIAIQ0SQMAAsACyACKAIEIQIMAQsLIAIoAgxBHGwhBSABLQAQIQggASgCDCEKIAIoAgghB0EEIQRBACECA0AgBUUgAkGAgICAeEZyRQRAIAMgBjYCMCADIAQ2AiwgAyACNgIoIANByABqIgkgASAHEJcBIANBPGogCiAIIANBKGogCRCGBiAFQRxrIQUgB0EcaiEHIAMoAjwhAiADKAJAIQQgAygCRCEGIAkQ0SQMAQsLIAAgBjYCCCAAIAQ2AgQgACACNgIADAYLIAIoAgQNAiACKAIMIgQgAigCEEEDdCIFaiEIIAEoAgAhBiAEIQICQANAIAUEQCAGIAdJDQIgBUEIayEFIAIoAgQgAigCAGsgB2pBAWohByACQQhqIQIMAQsLIAYgB0kNACADQQA2AiQgA0KAgICAwAA3AhwDQCAEIAhGBEAgASgCCCABLQAQIANBHGoQ/iAgAEEIaiADQSRqKAIANgIAIAAgAykCHDcCAAwIBSAEQQhqIAQoAgQhByAEKAIAIQJBACEFAkADQCAFQQFxIAIgB0tyDQEgA0EANgI4IANBEGogAiADQThqEOQJIAMoAhQhBCADKAIQIANBADYCRCADQoCAgIAQNwI8IANBAzoAaCADQSA2AlggA0EANgJkIANB7LXEADYCYCADQQA2AlAgA0EANgJIIAMgA0E8ajYCXCAEIANByABqEPUqRQRAIANBMGogA0HEAGooAgA2AgAgAyADKQI8NwMoIANBAToANCACQYDAAyACQQFqIAJB/68DRhsgAiAHTyIFGyECIANBHGogA0EoahCGDwwBCwtB/L3gAEE3IANBKGpBhLbEAEGAv+AAEMUOAAshBAwBCwALAAsgAEGAgICAeDYCAAwFCyADQdAAaiADQSRqKAIANgIAIAMgAykCHDcDSCAAIAEoAgwgAS0AECADQcgAaiADQShqIgAQhgYgABDRJAwECyACKAIMIQQgAigCCCEFIAEtABBFBEAgA0EBOgBUIANBADYCUCADQoCAgIAQNwJIIARBHGwhAiADQTxqIANByABqEPAZA0ACQCACRQ0AIANBPGoiBhD2Dw0AIANBMGogA0HEAGooAgA2AgAgAyADKQI8NwMoIANByABqIgQgASAFEJcBIAYgASADQShqIAQQ9gEgAkEcayECIAVBHGohBSAEENEk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AhQgASgCGCACQShqELUkDBsLIAJBADYCOCACQQE2AiwgAkH889gANgIoIAJCBDcCMCABKAIUIAEoAhggAkEoahC1JAwaCyACQQA2AjggAkEBNgIsIAJBhPTYADYCKCACQgQ3AjAgASgCFCABKAIYIAJBKGoQtSQMGQsgAkEANgI4IAJBATYCLCACQYz02AA2AiggAkIENwIwIAEoAhQgASgCGCACQShqELUkDBgLIAJBADYCOCACQQE2AiwgAkGU9NgANgIoIAJCBDcCMCABKAIUIAEoAhggAkEoahC1JAwXCyACQQA2AjggAkEBNgIsIAJBnPTYADYCKCACQgQ3AjAgASgCFCABKAIYIAJBKGoQtSQMFgsgAkEANgI4IAJBATYCLCACQaT02AA2AiggAkIENwIwIAEoAhQgASgCGCACQShqELUkDBULIAJBADYCOCACQQE2AiwgAkGs9NgANgIoIAJCBDcCMCABKAIUIAEoAhggAkEoahC1JAwUCyACQQA2AjggAkEBNgIsIAJBtPTYADYCKCACQgQ3AjAgASgCFCABKAIYIAJBKGoQtSQMEwsgAiAAQRBqNgIMIAJBAjYCLCACQcz02AA2AiggAkIBNwI0IAJB2AM2AhwgAiACQRhqNgIwIAIgAkEMajYCGCABKAIUIAEoAhggAkEoahC1JAwSCyACQQA2AjggAkEBNgIsIAJB3PTYADYCKCACQgQ3AjAgASgCFCABKAIYIAJBKGoQtSQMEQsgAkEBNgIsIAJBhPjgADYCKCACQgE3AjQgAkECNgIQIAIgAC0ABEECdCIAQaDm4wBqKAIANgIcIAIgAEH85uMAaigCADYCGCACIAJBDGo2AjAgAiACQRhqNgIMIAEoAhQgASgCGCACQShqELUkDBALIAJBATYCLCACQYT44AA2AiggAkIBNwI0IAJBAjYCECACIAAtAARBAnQiAEHY5+MAaigCADYCHCACIABBmOjjAGooAgA2AhggAiACQQxqNgIwIAIgAkEYajYCDCABKAIUIAEoAhggAkEoahC1JAwPCyACQQA2AjggAkEBNgIsIAJB5PTYADYCKCACQgQ3AjAgASgCFCABKAIYIAJBKGoQtSQMDgsgAkEANgI4IAJBATYCLCACQez02AA2AiggAkIENwIwIAEoAhQgASgCGCACQShqELUkDA0LIAJBADYCOCACQQE2AiwgAkH09NgANgIoIAJCBDcCMCABKAIUIAEoAhggAkEoahC1JAwMCyACQQA2AjggAkEBNgIsIAJB/PTYADYCKCACQgQ3AjAgASgCFCABKAIYIAJBKGoQtSQMCwsgAkEANgI4IAJBATYCLCACQYT12AA2AiggAkIENwIwIAEoAhQgASgCGCACQShqELUkDAoLIAIgAEEIajYCFCACIABBEGo2AgwgAkEDNgIsIAJBnPXYADYCKCACQgI3AjQgAkHYAzYCJCACQdgDNgIcIAIgAkEYajYCMCACIAJBDGo2AiAgAiACQRRqNgIYIAEoAhQgASgCGCACQShqELUkDAkLIAIgAEEIajYCFCACIABBEGo2AgwgAkEDNgIsIAJBxPXYADYCKCACQgI3AjQgAkHYAzYCJCACQdgDNgIcIAIgAkEYajYCMCACIAJBDGo2AiAgAiACQRRqNgIYIAEoAhQgASgCGCACQShqELUkDAgLIAIgAEEQajYCFCACIABBCGo2AgwgAkEDNgIsIAJB8PXYADYCKCACQgI3AjQgAkHYAzYCJCACQdkDNgIcIAIgAkEYajYCMCACIAJBDGo2AiAgAiACQRRqNgIYIAEoAhQgASgCGCACQShqELUkDAcLIAIgAEEQajYCFCACIABBCGo2AgwgAkEDNgIsIAJBmPbYADYCKCACQgI3AjQgAkHYAzYCJCACQdoDNgIcIAIgAkEYajYCMCACIAJBDGo2AiAgAiACQRRqNgIYIAEoAhQgASgCGCACQShqELUkDAYLIAIgAEEIajYCDCACQQI2AiwgAkG89tgANgIoIAJCATcCNCACQdgDNgIcIAIgAkEYajYCMCACIAJBDGo2AhggASgCFCABKAIYIAJBKGoQtSQMBQsgAiAAQRBqNgIMIAJBAjYCLCACQdj22AA2AiggAkIBNwI0IAJB2AM2AhwgAiACQRhqNgIwIAIgAkEMajYCGCABKAIUIAEoAhggAkEoahC1JAwECyACQQA2AjggAkEBNgIsIAJB6PbYADYCKCACQgQ3AjAgASgCFCABKAIYIAJBKGoQtSQMAwsgAkEANgI4IAJBATYCLCACQYD32AA2AiggAkIENwIwIAEoAhQgASgCGCACQShqELUkDAILIAJBADYCOCACQQE2AiwgAkGI99gANgIoIAJCBDcCMCAB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CkYNAQsgA0GwBGogBRCWCyADQcjl3wA2AqwEIANBNDoAqAQgA0HAAWogA0GIAWogAygCcEElRiICGygCACIBIANBxAFqIANBjAFqIAIbKAIAIgIgASACSRsgASACIAEgAksbIANBqARqEIEVIQEgBRDjDSICRQ0MIAIoAgBBJEYNAQwMCyADQbQEaiAGQQhqKQIANwIAIANBvARqIAZBEGooAgA2AgAgAygCcCECIANBJTYCcCADIAI2AqgEIAMgAykDiAE3A8ABIAMgBikCADcCrAQgA0GoBGoQxwpBACECAkACQCAFEOMNIgRFDQAgBCgCAEETRw0AIANBEGogA0HIAGpBoODfABDzASADKAIUIQIgAygCEA0BCyADIAI2ApAIIAUQ4w0iBARAIAQoAgBBA0YNBQsgA0GwBGogBRCWCyADQeDy3wA2AqwEIANBNDoAqAQgA0HAAWogA0GIAWogAygCcEElRiICGygCACIBIANBxAFqIANBjAFqIAIbKAIAIgIgASACSRsgASACIAEgAksbIANBqARqEIEVIQEgBRDjDSICRQ0LIAIoAgBBJEcNCyADIAMpA4gBNwPAASADKAJwIANBJTYCcEEkRw0IIANByABqIAMoAnQQhgwMCwsgA0GBgICAeDYCkAQgAyACNgKUBAwMCyADIAMpA4gBNwPAASADKAJwIANBJTYCcEEkRw0HIANByABqIAMoAnQQhgwMCgsgAyAENgKUBCADQYGAgIB4NgKQBAwMCyADIAMpA4gBNwPAASADKAJwIANBJTYCcEEkRw0GIANByABqIAMoAnQQhgwMCgsgA0G0BGogBkEIaikCADcCACADQbwEaiAGQRBqKAIANgIAIAMoAnAhBCADQSU2AnAgAyAENgKoBCADIAMpA4gBNwPAASADIAYpAgA3AqwEIANBqARqEMcKIANBmARqIANB/AdqKAIANgIAIAMgAjYCoAQgAyAHNgKcBCADIAMpAvQHIhQ3A5AEIBSnIgRBgICAgHhrDgIMCwELIANBgYCAgHg2ApAEIAMgBzYClAQMCgsgAykClAQhFCADQagEaiIGIANByABqQagDEPsGGiABEIQQIAEgBkGoAxD7BiEBIAMgDjoA1wcgAyABKQCDAzcA2AcgAyABKQCLAzcA4AcgAyABKQCTAzcA6AcgAyABKACbAzYA8AcgDCADQdcHahDJCCADQQE7ADIgAyABLQCIAzoAMSADIAEoAYIDNgArIAMgAS8BhgM7AC8gAyABKQCLAzcANCADIAEpAJMDNwA8IAMgASgAmwM2AEQgA0HhAGogCkEVaikAADcAACADQdwAaiAKQRBqKQEANwIAIANB1ABqIApBCGopAQA3AgAgAyAKKQEANwJMIAwgA0ErahDJCCADIAE2AkggAyACNgKkCCADIAc2AqAIIAMgFDcClAggAyAENgKQCCADIANBJGo2ApwIIANBCGogAUEBIBSnIBRCIIinEMcZEMEDIAMoAgwhBQJAIAMoAghFBEAgACADKQKQCDcCACAAQQhqIANBmAhqKAIANgIAIAEoAnwhASADKAIkIQQgBhDQFCAAQQE7ASQgACACNgIgIAAgBzYCHCAAIAQgASABIARJGzYCFCAAIAQgASABIARLGzYCECAAIAU2AgwgACADKALABDYCGCAGEOEgDAELIABBgYCAgHg2AgAgACAFNgIEIANBkAhqEIUnIAcQkCsgA0GkCGoQkSgLIANByABqEKMmDAwLAAtB5ezgAEEoQdD03wAQ9BcAC0Hl7OAAQShB4PTfABD0FwALQeXs4ABBKEHw9N8AEPQXAAsgA0GBgICAeDYCkAQgAyABNgKUBCADQZAIahCRKAwBCyADQYGAgIB4NgKQBCADIAE2ApQECyADQfQHahCFJwwBCyADQYGAgIB4NgKQBCADIAE2ApQECyAHEJArCyADQZAEakEEchCdIwsgA0HIAGoQhBALIABBgICAgHg2AgALIANB0AhqJAALtRICEX8BfiMAQcAIayIDJAAgAyACNgIkAkACQAJAAkAgAUEoaiIMEMoNIgJFDQAgAigCAEEURw0AIAItAARBBEYNAQsgDBDKDSICRQ0BIAIoAgBBIUcNAQsgAS0AoAJBAkcNACABLQCqAiEOIANByABqIgIgARCjAyADQQE6AOsDIAMgASkAqwI3AOwDIAMgASkAswI3APQDIAMgASkAuwI3APwDIAMgASgAwwI2AIQEIANB8ABqIgUgA0HrA2oQ0gggA0EYaiACQQBBABCTASADKAIcIQcCQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAygCGEUEQAJAAkACQCAFEMoNIgIEQCACKAIAQQlGDQELIANBqARqIAUQkRAgA0Hw5d8ANgKkBCADQTQ6AKAEIANB4ANqIANBqANqIAMoApADQSVGIgIbKAIAIgEgA0HkA2ogA0GsA2ogAhsoAgAiAiABIAJJGyABIAIgASACSxsgA0GgBGoQgRUhASAFEMoNIgJFDQwgAigCAEEkRg0BDAwLIANBrARqIANBnANqKQIANwIAIANBtARqIANBpANqKAIANgIAIAMoApADIQIgA0ElNgKQAyADIAMpApQDNwKkBCADIAI2AqAEIAMgAykDqAM3A+ADIANBoARqIgIQxgogAiADQcgAahCzASADKAKkBCEEIAMoAqAEIglBgICAgHhHBEAgAUGqAmohCiADQZQDaiEGIAMoAqgEIQIgAyAENgLwByADIAQgAkEGdCIPaiIQNgL8ByADIAk2AvgHIAlBBnQhCyADQdAEaiERQQAhAgNAIAQgCGohDSACIA9GRQRAIANBgAhqIhIgAiAEaiITQcAAEPsGGiADQaAEaiATQcAAEPsGGiAREO4mIA0gEkEoEPsGGiAIQShqIQggAkFAayECDAELCyADIBA2AvQHIAtBKG4hCCADQfAHahCeEiAEIQICQCAJRQ0AIAsgCEEobCIJRg0AIAtFBEBBCCECDAELIAQgC0EIIAkQ+QIiAkUNBgsgAyACNgLoByADIAg2AuQHIAMgDSAEa0EobjYC7AcgA0HwB2oQzxcCQAJAIAUQyg0iAgRAIAIoAgBBCkYNAQsgA0GoBGogBRCRECADQcjl3wA2AqQEIANBNDoAoAQgA0HgA2ogA0GoA2ogAygCkANBJUYiAhsoAgAiASADQeQDaiADQawDaiACGygCACICIAEgAkkbIAEgAiABIAJLGyADQaAEahCBFSEBIAUQyg0iAkUNDCACKAIAQSRGDQEMDAsgA0GsBGogBkEIaikCADcCACADQbQEaiAGQRBqKAIANgIAIAMoApADIQIgA0ElNgKQAyADIAI2AqAEIAMgAykDqAM3A+ADIAMgBikCADcCpAQgA0GgBGoQxgpBACECAkACQCAFEMoNIgRFDQAgBCgCAEETRw0AIANBEGogA0HIAGpBoODfABDxASADKAIUIQIgAygCEA0BCyADIAI2AoAIIAUQyg0iBARAIAQoAgBBA0YNBQsgA0GoBGogBRCRECADQeDy3wA2AqQEIANBNDoAoAQgA0HgA2ogA0GoA2ogAygCkANBJUYiAhsoAgAiASADQeQDaiADQawDaiACGygCACICIAEgAkkbIAEgAiABIAJLGyADQaAEahCBFSEBIAUQyg0iAkUNCyACKAIAQSRHDQsgAyADKQOoAzcD4AMgAygCkAMgA0ElNgKQA0EkRw0IIANByABqIAMoApQDEP8LDAsLIANBgYCAgHg2AogEIAMgAjYCjAQMDAsgAyADKQOoAzcD4AMgAygCkAMgA0ElNgKQA0EkRw0HIANByABqIAMoApQDEP8LDAoLIAMgBDYCjAQgA0GBgICAeDYCiAQMDAsgAyADKQOoAzcD4AMgAygCkAMgA0ElNgKQA0EkRw0GIANByABqIAMoApQDEP8LDAoLIANBrARqIAZBCGopAgA3AgAgA0G0BGogBkEQaigCADYCACADKAKQAyEEIANBJTYCkAMgAyAENgKgBCADIAMpA6gDNwPgAyADIAYpAgA3AqQEIANBoARqEMYKIANBkARqIANB7AdqKAIANgIAIAMgAjYCmAQgAyAHNgKUBCADIAMpAuQHIhQ3A4gEIBSnIgRBgICAgHhrDgIMCwELIANBgYCAgHg2AogEIAMgBzYCjAQMCgsgAykCjAQhFCADQaAEaiIGIANByABqQaADEPsGGiABEN8QIAEgBkGgAxD7BiEBIAMgDjoAxwcgAyABKQCrAjcAyAcgAyABKQCzAjcA0AcgAyABKQC7AjcA2AcgAyABKADDAjYA4AcgDCADQccHahDSCCADQQE7ADIgAyABLQCwAjoAMSADIAEoAaoCNgArIAMgAS8BrgI7AC8gAyABKQCzAjcANCADIAEpALsCNwA8IAMgASgAwwI2AEQgA0HhAGogCkEVaikAADcAACADQdwAaiAKQRBqKQEANwIAIANB1ABqIApBCGopAQA3AgAgAyAKKQEANwJMIAwgA0ErahDSCCADIAE2AkggAyACNgKUCCADIAc2ApAIIAMgFDcChAggAyAENgKACCADIANBJGo2AowIIANBCGogAUEBIBSnIBRCIIinEMcZEMMDIAMoAgwhBQJAIAMoAghFBEAgACADKQKACDcCACAAQQhqIANBiAhqKAIANgIAIAEoApwDIQEgAygCJCEEIAYQ0BQgAEEBOwEkIAAgAjYCICAAIAc2AhwgACAEIAEgASAESRs2AhQgACAEIAEgASAESxs2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OgCAASABIAggBSAEQYABahDGGQsgBEEQaiACEIwDIAQoAhAhASAEQQhqIAYQjAMgBCgCDCEFIAQgBzoAlAEgBCAGNgKIASAEIAI2AoQBIARBEjYCgAEgBCABIAUgASAFSxs2ApABIAQgASAFIAEgBUkbNgKMASAEQYABahDcKCEBIAAgAzoABSAAQQE6AAQgACABNgIADAELIABBADoABCAAIAI2AgALIARBwAFqJAAL9Q4BEn8jAEHQAWsiAyQAAkAgAS0A+gJBAXFFBEAgAEEANgIIIABCgICAgMAANwIADAELIANBADYCTCADQoCAgIDAADcCRCABQSxqIQogA0HcAGohEyADQdAAakEEciEIIANBrAFqIRAgA0HYAGohFCABQShqIgcQ3iAhDEEIIRFBBCESAkACQAJ/A0ACQAJAAkACQAJAAkACQAJAAkACQAJAIAcQ4w0iBARAIAQoAgBBBUYNAQsgDUUNAQJAIAcQ4w0iBEUNACAEKAIAQQJHDQAgBC0ACEECRw0AIAQtAAlBG0YNAwsgBxDjDRoMBgsgBxDeICEOIAcQ4w0iBEUEQCABKALYAiEBIANBADoAUCABIAEgA0HQAGoQgRUhBQwOCyAEKAIAQSRGBEAgASABKQNANwN4IAEoAiggAUElNgIoQSRGBEAgASgCLCEFDA8LQeXs4ABBKEHs998AEPQXAAsgCCAKKQIANwIAIAEoAighBSABQSU2AiggASABKQNANwN4IAhBCGoiBCAKQQhqIgkpAgA3AgAgCEEQaiIGIApBEGoiDygCADYCACADIAU2AlAgA0HQAGoQxwoCQAJAAkAgBxDjDSIFBEAgBSgCAEEJRg0BCyADQZABaiABQQBBABD9ASADAn8gAy0ApAFBAkcEQCAQIAMpA5ABNwIAIBBBEGogA0GgAWopAwA3AgAgEEEIaiADQZgBaikDADcCACAIIAMpAqgBNwIAIAQgA0GwAWopAgA3AgAgBiADQbgBaikCADcCACAIQRhqIANBwAFqKAIANgIAQRoMAQsgAyADKAKQATYCVEEyCzYCUCADQShqIANB0ABqIgQQlBggAygCLCEFIAMoAigNECADQQU6AFggAyAFNgJQIANBIGogASAEQQBBARA6IAMoAiQhBSADKAIgRQ0BDBALIAggCikCADcCACABKAIoIQUgAUElNgIo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0AJqIgwgBkEDIAQQYyACKALUAiEDIAIoAtACIglBB0YNDCACQbACaiACQfACaikDADcDACACQagCaiACQegCaikDADcDACACQaACaiACQeACaikDADcDACACIAIpA9gCNwOYAiACIAM2ApQCIAIgCTYCkAJBACEKIAlBBEcNACACQf8AOgDQAiAGIAggByAMENgZC0EoQQgQqyAiAyACQZACakEoEPsGGiACQQA2AmggAiAPNgJkIAIgBTYCYCACIAc2AlwgAiAINgJYQQIhBiALQQFLDQ4gBCgCAEEaRw0BIApFDQ0gBCkDCBD5GgwNCyACQRBqIAUQggogBSgCAEEFaw4DAwECBgsgBBDCAgwLCyACQegBaiIGIAVBIGopAwA3AwAgAkHgAWoiByAFQRhqKQMANwMAIAJB2AFqIgggBUEQaikDADcDACACIAUpAwg3A9ABIAJB0AJqIAEoAhRBA0EBIAEoAhgtAABBAUsbIAUoAigQYyACKALUAiEDIAIoAtACIglBB0cEQCACQYgCaiIKIAJB8AJqKQMANwMAIAJBgAJqIgsgAkHoAmopAwA3AwAgAkH4AWoiDCACQeACaikDADcDACACIAIpA9gCNwPwAUEoQQgQqyAiBCADNgIEIAQgCTYCACAEIAIpA/ABNwMIIARBEGogDCkDADcDACAEQRhqIAspAwA3AwAgBEEgaiAKKQMANwMAIAJBuAFqIgMgCCkDADcDACACQcABaiIIIAcpAwA3AwAgAkHIAWoiByAGKQMANwMAIAIgAikD0AE3A7ABIAJBqAFqIAcpAwA3AgAgAkGgAWogCCkDADcCACACQZgBaiADKQMANwIAIAIgAikDsAE3ApABIAJB0ABqQQRyIAJBjAFqQSQQ+wYaIAIgBDYCeEEADAQLIAJB0AFqEOYWQQAhBgwFCyACKAIUIQMgAigCECEEIAJBiANqIAVBIGopAwA3AwAgAkGAA2ogBUEYaikDADcDACACIAUpAxA3A/gCIAUoAighBiACQeAAaiACQfgCahDrGCACIAY2AoABIAIgAzYCXCACIAQ2AlgMAQsgBSkDCCERIAUoAhAhAyAFKAIUIQQgAiAFKQMYNwPgAiACIAQ2AtwCIAIgAzYC2AIgAiARNwPQAiACQeAAaiACQdACahDrGCACQQA2AoABIAIgBDYCXCACIAM2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BAsgAyAEOgB0IANBgICAgHg2AnAMAQsgAygCiAEhBCADKAKEASEFAkACQAJAAkAgBkEBaw4DAgEAAwsgAygCkAEhBiADKAKMASEHAkACQAJAAkACQAJAIAUgBEHgxMcAQQMQ6x9FBEAgBSAEQePExwBBERDrHw0BIAUgBEH0xMcAQRYQ6x8NAiAFIARBisXHAEEOEOsfDQMgBSAEQZjFxwBBChDrHw0EIANBgICAgHg2AnAgA0EAOgB0DAoLIANBqAFqEJgdQfB8IQQDQCAERQ0FIAcgBiAEQdyWygBqKAIAIARB4JbKAGooAgAQ6x8NBiAEQRBqIQQMAAsACyADQRhqQeSszgBBowEgByAGEOEKIANBgAFqIAMoAhggAygCHBDSISADKAKAAUGAgICAeEYEQCADQYCAgIB4NgJwIANBAToAdAwJCyADQfgAaiADQYgBaikCADcDACADIAMpAoABNwNwDAgLIANBIGpBpNbUAEENIAcgBhDhCiADQYABaiADKAIgIAMoAiQQ0iEgAygCgAFBgICAgHhGBEAgA0GAgICAeDYCcCADQQE6AHQMCAsgA0H4AGogA0GIAWopAgA3AwAgAyADKQKAATcDcAwHCyADQShqQfSy1gBBDiAHIAYQ4QogA0GAAWogAygCKCADKAIsENIhIAMoAoABQYCAgIB4RgRAIANBgICAgHg2AnAgA0EBOgB0DAcLIANB+ABqIANBiAFqKQIANwMAIAMgAykCgAE3A3AMBgsgA0EwakG8mdUAQRIgByAGEOEKIANBgAFqIAMoAjAgAygCNBDSISADKAKAAUGAgICAeEYEQCADQYCAgIB4NgJwIANBAToAdAwGCyADQfgAaiADQYgBaikCADcDACADIAMpAoABNwNwDAULIANBgICAgHg2AnAgA0EBOgB0IAMoAqgBIAMoAqwBEOUpDAQLIARBoANqIQVBzJPKACEEA0AgBQRAIANBgAFqIgYgBCgCCCAEKAIMEOIKIANBqAFqIAYQjBggAygCgAEgAygChAEQ5SkgBUEQayEFIARBEGohBAwBBSADQfgAaiADQbABaikCADcDACADIAMpAqgBNwNwDAULAAsACyADQRBqQezizQBBowEgBSAEEOEKIANBgAFqIAMoAhAgAygCFBDSISADKAKAAUGAgICAeEYEQCADQYCAgIB4NgJw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Ba1CEIaENwE2IAMgAToANAJAIAFB/wFxQYABRgRAQYABIQADQAJ/IABB/wFxQYABRwRAIARB/wFxIgEgB0H/AXFPDQQgASACai0AACEBIARBAWoMAQsgAkIANwIAQQAhByALQQA2AgBBACEAIAUhAUEAIQVBAAshBCAKIAEgCCgCEBECAEUNAAsMBAsgBEH/AXEiBCAHQf8BcSIBTw0AIAQgASABIARJGyEAIAgoAhAhAQNAIAogAiAEai0AACABEQIADQQgACAEQQFqIgRHDQALCyAGIAlHDQALC0EAIQEMAQtBASEBCyADQeAAaiQAIAELnw4CC38DfiMAQYABayICJAAgAUEoaiIDEN4gIQgCQCADEOMNIgRFBEAgASgC2AIhASACQQA6ADggASABIAJBOGoQgRUhASAAQQQ6ADQgACABNgIADAELAkACQAJAAkACQAJAAkACQCAEKAIAQSRGBEAgASABKQNANwN4IAEoAiggAUElNgIoQSRHDQEgASgCLCEBIABBBDoANCAAIAE2AgAMCQsgASgCKCEEIAFBJTYCKCABIAEpA0A3A3ggAkHEAGogAUE0aikCADcCACACQcwAaiABQTxqKAIANgIAIAIgASkCLDcCPCACIAQ2AjggAkE4ahDHCgJAAkAgAxDjDSIEBEAgBCgCAEEJRg0BCyACQUBrIAMQlgsgAiADELgUIAJB8OXfADYCPCACQTQ6ADggAigCACACKAIEIAJBOGoQgRUhBCADEOMNIgNFDQkgAygCAEEkRg0BDAkLIAEoAighBSABQSU2AiggASABKQNANwN4IAJBxABqIAFBLGoiBEEIaikCADcCACACQcwAaiAEQRBqKAIANgIAIAIgBCkCADcCPCACIAU2AjggAkE4aiIGEMcKQQAhBSACIAMQ4w0iBwR/IAUFIAEoAtgCIQUgAkEAOgA4IAUgBSAGEIEVIQdBAQs2AjggAiAHNgI8IAJBOGoiBhCQJCACQRhqIAMQuBQgAigCHCEHIAIoAhghCSADEOMNIgVFBEAgASgC2AIhASACQQA6ADggASABIAYQgRUhASAAQQQ6ADQgACABNgIADAoLAn4CQCAFKAIAIgVBG0cEQCAFQSRHDQEgASABKQNANwN4IAEoAiggAUElNgIoQSRHDQUgASgCLCEBIABBBDoANCAAIAE2AgAMDAsgASABKQNANwN4IAEoAiggAUElNgIoQRtGBEAgASkDMCENIAEpAzgMAgtB5ezgAEEoQbDl3wAQ9BcACyABKAIoIQUgAUElNgIoIAEgASkDQDcDeCACQcQAaiAEQQhqKQIANwIAIAJBzABqIARBEGooAgA2AgAgAiAEKQIANwI8IAIgBTYCOCACQThqIgUQxwogAkGRAToAOCABIAkgByAFENgZQQFBABDcGiENQcDl3wBBAhDcGgshDgJAAkAgAxDjDSIFRQ0AIAUoAgBBCkcNACABKAIoIQUgAUElNgIoIAEgASkDQDcDeCACQcQAaiILIARBCGopAgA3AgAgAkHMAGoiDCAEQRBqKAIANgIAIAIgBCkCADcCPCACIAU2AjggAkE4aiIKEMcKQQMhBQJAIAMQ4w0iBkUNACAGKAIAQQZHDQAgASgCKCEFIAFBJTYCKCABIAEpA0A3A3ggCyIGIARBCGopAgA3AgAgDCAEQRBqKAIANgIAIAIgBCkCADcCPCACIAU2AjggChDHCiAKIAFBABDVAiACKAI4IQQgAi0ATCIFQQNGDQcgAkEsaiAGKQIANwIAIAJBN2ogAkHPAGotAAA6AAAgAiACKQI8NwIkIAIgAi8ATTsANSACIAQ2AiALIAIgBToANEEAIQQCQCADEOMNIgNFDQAgAygCAEEURw0AIAMtAARBBEcNACACQdEAaiABQZcDaikAADcAACACQcwAaiABQZIDaikBADcCACACQcQAaiABQYoDaiIDKQEANwIAIAJBADoAcCACIAEtAI4DOgBvIAIgAS0AngM6AH8gAiABKQGCAyIPNwBjIAIgAygBADYAayACIAEpA5ADNwBxIAIgASgCmAM2AHkgAiABLwGcAzsAfSACIA83AjwgAUGAAWogAkHjAGoQyQggAiABNgI4IAJBEGogARDwASACKAIUIQQgAigCEA0CIAJBOGoQoyYLIAAgDjcDGCAAIAc2AhQgACAJNgIQIAAgDTcDCCAAIAIpAyA3AyAgACAENgI4IABBKGogAkEoaikDADcDACAAQTBqIAJBMGopAwA3AwAgACAIIAEoAnwiASABIAhJGzYCBCAAIAggASABIAhLGzYCAAwLCyACQUBrIAMQlgsgAkEIaiADELgUIAJByOXfADYCPCACQTQ6ADggAigCCCACKAIMIAJBOGoQgRUh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AkEYahC1JAwaCyACQQA2AiggAkEBNgIcIAJBmLvWADYCGCACQgQ3AiAgASgCFCABKAIYIAJBGGoQtSQMGQsgAkEANgIoIAJBATYCHCACQby71gA2AhggAkIENwIgIAEoAhQgASgCGCACQRhqELUkDBgLIAJBADYCKCACQQE2AhwgAkGEvNYANgIYIAJCBDcCICABKAIUIAEoAhggAkEYahC1JAwXCyACQQA2AiggAkEBNgIcIAJBqLzWADYCGCACQgQ3AiAgASgCFCABKAIYIAJBGGoQtSQMFgsgAkEANgIoIAJBATYCHCACQdC81gA2AhggAkIENwIgIAEoAhQgASgCGCACQRhqELUkDBULIAJBADYCKCACQQE2AhwgAkHovNYANgIYIAJCBDcCICABKAIUIAEoAhggAkEYahC1JAwUCyACQQA2AiggAkEBNgIcIAJBkL3WADYCGCACQgQ3AiAgASgCFCABKAIYIAJBGGoQtSQMEwsgAkEANgIoIAJBATYCHCACQby91gA2AhggAkIENwIgIAEoAhQgASgCGCACQRhqELUkDBILIAJBADYCKCACQQE2AhwgAkHYvdYANgIYIAJCBDcCICABKAIUIAEoAhggAkEYahC1JAwRCyACQQA2AiggAkEBNgIcIAJB/L3WADYCGCACQgQ3AiAgASgCFCABKAIYIAJBGGoQtSQMEAsgAkEANgIoIAJBATYCHCACQZy+1gA2AhggAkIENwIgIAEoAhQgASgCGCACQRhqELUkDA8LIAJBADYCKCACQQE2AhwgAkHEvtYANgIYIAJCBDcCICABKAIUIAEoAhggAkEYahC1JAwOCyACQQA2AiggAkEBNgIcIAJB6L7WADYCGCACQgQ3AiAgASgCFCABKAIYIAJBGGoQtSQMDQsgAkEANgIoIAJBATYCHCACQYC/1gA2AhggAkIENwIgIAEoAhQgASgCGCACQRhqELUkDAwLIAJBADYCKCACQQE2AhwgAkGYv9YANgIYIAJCBDcCICABKAIUIAEoAhggAkEYahC1JAwLCyACIAAoAgQ2AgwgAkECNgIcIAJB3L/WADYCGCACQgE3AiQgAkEHNgIUIAIgAkEQajYCICACIAJBDGo2AhAgASgCFCABKAIYIAJBGGoQtSQMCgsgAkEANgIoIAJBATYCHCACQajA1gA2AhggAkIENwIgIAEoAhQgASgCGCACQRhqELUkDAkLIAJBADYCKCACQQE2AhwgAkHgwNYANgIYIAJCBDcCICABKAIUIAEoAhggAkEYahC1JAwICyACQQA2AiggAkEBNgIcIAJBhMHWADYCGCACQgQ3AiAgASgCFCABKAIYIAJBGGoQtSQMBwsgAkEANgIoIAJBATYCHCACQbTB1gA2AhggAkIENwIgIAEoAhQgASgCGCACQRhqELUkDAYLIAJBADYCKCACQQE2AhwgAkGQwtYANgIYIAJCBDcCICABKAIUIAEoAhggAkEYahC1JAwFCyACQQA2AiggAkEBNgIcIAJB/MLWADYCGCACQgQ3AiAgASgCFCABKAIYIAJBGGoQtSQMBAsgAkEANgIoIAJBATYCHCACQYjE1gA2AhggAkIENwIgIAEoAhQgASgCGCACQRhqELUkDAMLIAJBADYCKCACQQE2AhwgAkGwxNYANgIYIAJCBDcCICABKAIUIAEoAhggAkEYahC1JAwCCyACQQA2AiggAkEBNgIcIAJB2MTWADYCGCACQgQ3AiAgASgCFCABKAIYIAJBGGoQtSQMAQsgAkEANgIoIAJBATYCHCACQaTF1gA2AhggAkIENwIgIAEoAhQgASgCGCACQRhqELUkCyACQTBqJAALmg4BDn8jAEGwAWsiAyQAIAFBKGoiBRDDICELAkAgBRDKDSIERQRAIAEoAoACIQEgA0EAOgBoIAEgASADQegAahCBFSEBIABBgICAgHg2AgAgACABNgIEDAELAkACQAJAAkACQAJAAkACQAJAAkACQCAEKAIAQSRGBEAgASABKQPgAjcDmAMgASgCyAIgAUElNgLIAkEkRg0BQeXs4ABBKEHAlOAAEPQXAAsgASgCyAIhBCABQSU2AsgCIAEgASkD4AI3A5gDIANB9ABqIgYgAUHUAmopAgA3AgAgA0H8AGoiCCABQdwCaigCADYCACADIAEpAswCNwJsIAMgBDYCaCADQegAaiIKEMYKIANBADYCPCADQoCAgIDAADcCNCAKIAEgAhDKBCADKAJoIQQgAy0AgAEiB0ECRg0FIAFBzAJqIQkgA0HYAGoiDCAIKAIANgIAIANB0ABqIgggBikCADcDACADIAMpAmw3A0ggAyADKACBATYCQCADIANBhAFqKAAANgBDQSBBCBCrICIGIAQ2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TSIPG2ogDDYCACAHQQRqIQcgCCAPaiEIDAELAAsACwALCwALIAtCgICAgCA3AyAgCyADrUIghjcDGEEAIA5rIQUgASADayEGIAAgDkECdCIEaiENIAIgBGohCgNAIAsgC0EYahCPFiALKAIARQRAIAIgASAAEM4HDAILIAUgBiADIAsoAgQiBBsiByAOIAcgDksbaiEJIA0gBEECdCIEaiEIIAQgCmohByACIARqIQQDQCAJRQ0BIAcgCCgCADYCACAEIAcQ7hQgCUEBayEJIAhBBGohCCAHQQRqIQcMAAsACwALIAtBMGokAAvsDAIJfwR+IwBB8AVrIgMkACADIAI2AhwCQCABKAIAQQFxRQRAIANB4AFqQgA3AwAgA0HYAWpCADcDACADQdABakIANwMAIANCADcDyAEMAQsgA0HgAWogAUEgaikDADcDACADQdgBaiABQRhqKQMANwMAIANB0AFqIAFBEGopAwA3AwAgAyABKQMINwPIAQsCQAJ/AkAgAi8AsQJBswZxRQ0AAkACQCABLQBTQQFxRQRAQYABIQQDQCAEQf8BcUEBaiIFQf8BcSAFRw0CIANByAFqIAQQ+ykgBSEERQ0ACwwCCyADQf8BOgDuASADQYCAAjsB7AEDQCADQRhqIANB7AFqEOoSIAMtABhFDQMgA0HIAWogAy0AGRC5EgwACwALIANByAFqQf8BEPspRQ0BCyAAQbEBNgIQIABB7PDDADYCDEEsIQVBCAwBCyADQcgAaiADQdQBaikCACINNwMAIANB0ABqIANB3AFqKQIAIgw3AwAgA0HYAGogA0HkAWooAgAiBDYCACADQSxqIA03AgAgA0E0aiAMNwIAIANBPGogBDYCACADIAMpAswBIgw3A0AgAyADKALIASIKNgIgIAMgDDcCJAJAIAEtAFIiBEECRiAEQQFxckUEQCADQfABakEAQYACEI0LGiADQf8BOgBiIANBADsBYANAIANBEGogA0HgAGoQ6hIgAy0AEEUNAiADLQARIgQgA0HwAWpqIAQ6AAAMAAsACyADQfgAaiACQaACaikDADcDACADQfAAaiACQZgCaikDADcDACADQegAaiACQZACaikDADcDACADIAIpA4gCNwNgAkAgA0EgahCCKg0AQQAhBANAQYACIAQgBEGAAk0bIQYDQCAEIAZGDQIgBBDn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ai0AACEgIAFBPmotAAAhIQJAIAFBHGotAABBAkcEQCACQZACaiALELsjDAELIAFBEGopAgAhIiALEPgZIQsgAUEMahD5HCEBIAJBAjoApAIgAiAiNwOYAiACIAE2ApQCIAIgCzYCkAILIAcgAikDkAI3AwAgDyACKQOAAjcDACAHQRhqIAJBqAJqKQMANwMAIAdBEGogAkGgAmopAwA3AwAgB0EIaiACQZgCaikDADcDACAPQQhqIAJBiAJqKAIANgIAIAIgHTYC7AEgAiAeNgLoASACICE6AP4BIAIgHzoA/QEgAiAgOgD8ASACQQc2AsABDAELIAJBwAFqIAEQjx8LIAQgCGogAkHAAWpBwAAQ2i0aIAVBAWshBSAEQUBrIQQMAQsLIAIgBjYCsAEgAiAINgKsASACIBw2AqgBIBMgA0EgahC+ICACIBc2ArQBIAIgGDYCpAEgAiAZNgKgASACIAMvAVA7AbgBIAJBEGogAkHoAGpB2AAQ+wYaDAgLIAMpAighIiACQegAaiIBIANBCGoQyw4gAiADQTBqEP4LNgKQASACICI3A4gBIAIgAy0AOToAmQEgAiADLQA0OgCUASACIAMoADU2AJUBIAogAUE4EPsGGiACQQU2AhAMBwsgAykCGCEiIAJB6ABqIgEgA0EIahDVISACIANBIGoQ/gs2AoABIAIgIjcDeCACIAMtACY6AIYBIAIgAy0AKToAiQEgAiADLwAnOwCHASACIAMvACQ7AYQBIAogAUEoEPsGGiACQQY2AhAMBgsgAykCKCEiIAJB6ABqIgYgA0EIahDLDiADQTxqEPckIQEgA0FAaxCbHCEEIAMtAEQhBSAQIANBMGoQywsgAiAFOgCkASACIAQ2AqABIAIgATYCnAEgAiAiNwOIASACIAMtAEs6AKsBIAIgAy8ASTsAqQEgAiADKABFNgClASAKIAZByAAQ+wYaIAJBBzYCEAwFCyADKQIYISIgAygCICEBIAJB6ABqIgggA0EIahDVISADQSRqEPckIQQgA0EoahCbHCEFIAMtADkhBiAUIANBLGoQywsgAiAGOgCZASACIAU2AogBIAIgBDYChAEgAiABNgKAASACICI3A3ggAiADKAE6NgGaASACIAMtADg6AJgBIAogCEE4EPsGGiACQQg2AhAMBAsgCSADQQRqEL8eIAJBCTYC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IAdBEGooAgA2AgAgAiAHKQIANwJcIAIgAzYCWCACQdgAahDHCiACQSBqIAJByAFqIgNBCGopAwA3AwAgAkEoaiADQRBqKQMANwMAIAJBMGogA0EYaikDADcDACACIAMpAwA3AxggAigCxAEhBgsgAkHQAGoiAyACQTBqKQMANwMAIAJByABqIgUgAkEoaikDADcDACACQUBrIgcgAkEgaikDADcDACACIAIpAxg3AzggAkHAAWogAUEAEJcGIAJB6ABqIAcpAwA3AwAgAkHwAGogBSkDADcDACACQfgAaiADKQMANwMAIAIgBDYChAEgAiAGNgJcIAIgCDYCWCACIAIpAzg3A2AgAigCwAEgAiACQRRqNgKAAUGAgICAeEcEQCACQaABaiADKQMANwMAIAJBmAFqIAUpAwA3AwAgAkGQAWogBykDADcDACACQbABaiACQcgBaikCADcDACACQbgBaiACQdABaikCADcDACACIAIpAzg3A4gBIAIgAikCwAE3A6gBIAogASgCfCIDIAMgCksbIQEgCiADIAMgCkkbIQQMBAsgAigCxAEhBiACQdgAahCoJgsgAEEJNgIAIAAgBjYCBAwDC0Hl7OAAQShB2KPgABD0FwALQQghCAsgACAGNgIEIAAgCDYCACAAQQhqIAJBiAFqQTgQ+wYaIAAgBDYCRCAAIAE2AkALIAJBkAJqJAALpwwBDX8jAEGQAmsiAiQAIAIgAUEoaiIEEMMgIgo2AhQCQAJAAkAgBBDKDSIDRQ0AIAMoAgBBAkcNACADLQAIQQJHDQAgAy0ACUEDRw0AIAEoAsgCIQMgAUElNgLIAiABIAEpA+ACNwOYAyACQeQAaiABQdQCaikCADcCACACQewAaiABQdwCaigCADYCACACIAEpAswCNwJcIAIgAzYCWCACQdgAahDGCgJAAkACQAJAIAQQyg0iAwRAIAMoAgBBCUYNAQtBByEIDAELIAEoAsgCIQMgAUElNgLIAiABIAEpA+ACNwOYAyACQeQAaiIFIAFBzAJqIgdBCGopAgA3AgAgAkHsAGoiCSAHQRBqKAIANgIAIAIgBykCADcCXCACIAM2AlggAkHYAGoiDBDGCiAMIAFBABBRIAIoAlwhBiACKAJYIghBB0YNASACQeABaiINIAJB+ABqKQMANwMAIAJB2AFqIg4gAkHwAGop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AGogAxDxHiACKAJUIQEgAiADBH8gASADaiACKAJQIAFBHGxqIQEDQCACQeQAaiAFEOoBIAFBGGogAkH8AGooAgA2AgAgAUEQaiACQfQAaikCADcCACABQQhqIAJB7ABqKQIANwIAIAEgAikCZDcCACABQRxqIQEgBUEcaiEFIANBAWsiAw0ACwUgAQs2AlQgACACQcwAahCrAQwDCyABKAIIIQUgAkEgaiABKAIMIgNBHBDBFCACQQA2AmAgAiACKQMgNwJYIAJB2ABqIAMQ8R4gAigCYCEBIAIgAwR/IAEgA2ogAigCXCABQRxsaiEBA0AgAkHkAGogBRDqASABQRhqIAJB/ABqKAIANgIAIAFBEGogAkH0AGopAgA3AgAgAUEIaiACQewAaikCADcCACABIAIpAmQ3AgAgAUEcaiEBIAVBHGohBSADQQFrIgMNAAsFIAELNgJgIAAgAkHYAGoQWQwCCyAECyEBAkACQAJAAkAgBQ4CAAECCyABRSAGcg0BIAAQyiggAxCwIwwCCyABRSAGQQFHcg0AIAAgAykCADcCACAAQRhqIANBGGooAgA2AgAgAEEQaiADQRBqKQIANwIAIABBCGogA0EIaikCADcCAAwBCyAAIAJBLGoQ9QY2AhggAEEENgIAIAAgAikCLDcCBCAAQRRqIAJBPGooAgA2AgAgAEEMaiACQTRqKQIANwIADAELIAMQ8SoLIAJBgAFqJAAL/AoBB38CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkBBByAAKAIAIgJBDGsiBCAEQSZPG0EBaw4kAAECFBUDBAUGBwgJFhMTFgoLDA0TFBQOExMPEBcUFBcRFxMSEwsgACgCDEEEdCEDIAAoAgghAANAIANFDRMgACgCAEECRwRAIABBDGogARCHLQsgAEEQaiEAIANBEGshAwwACwALIABBBGogARCFCg8LIAAoAiAgARCjEA8LIABBBGogARCHLSAAQQhqIAEQhy0PCyAAQThqAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAJBAWsOCwECAwQFBgcICQsKAAsgACkDCCAAKAIYIAEQwRwMCgsgAEEIaiABEKYfDAkLIABBCGogARCVIgwICyAAQQRqIAEQhy0MBwsgAEEEaiABEIcZDAYLIABB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ADYCACADIAEpAiw3AmwgAyACNgJoIANB6ABqIgIQxwpBASEFIAQQ4w0NASABKALYAiEBIANBADoAaCABIAEgAhCBFSECDAILQeXs4ABBKEGg9N8AEPQXAAsgA0H9AGogAUGXA2opAAA3AAAgA0H4AGogAUGSA2opAAA3AwAgA0HwAGogAUGKA2opAAA3AwAgAyABKQCCAzcDaAJAIAQQ4w0iAkUNACACKAIAQQJHDQAgA0HoAGogAi0ACCACQQlqLQAAEN8JDQAgBBDhEiICRQ0AIAIoAgBBAkcNACACLQAIDQAgAi0ACUEORw0AIAQQviFBAXMhBgsgBSAGckUEQCADQRBqIAFBACAHEIQHIAMoAhQhAiADKAIQIQgMAgsgA0GYAWoiCiABENMEIAMoAqABIQIgAykDmAEiC1ANACADIAMoAqQBNgKUASADIAI2ApABIAMgCzcDiAFBACECAkACQCAGBEAgBBDjDSICRQRAIAEoAtgCIQEgA0EAOgCYASABIAEgChCBFSECDAMLIAIoAgBBJEYEQCABIAEpA0A3A3ggASgCKCABQSU2AihBJEcNAiABKAIsIQIMAwsgASgCKCECIAFBJTYCKCABIAEpA0A3A3ggA0GkAWogAUE0aikCADcCACADQawBaiABQTxqKAIANgIAIAMgASkCLDcCnAEgAyACNgKYASADQZgBahDHCiADQQhqIAFBACAEEN4gEIQHIAMoAgwhAiADKAIIDQILIAEoAnwhBiADQbgBaiADQYgBahClHCADQawBaiADQcgBaikDADcCACADQaQBaiADQcABaikDADcCACADIAMpA7gBNwKcAUHYAEEIEKsgIgRBEjYCACAEIAU6ACwgBCACNgIoIAQgCSAGIAYgCUkbNgIkIAQgCSAGIAYgCUsbNgIgIAQgAykCmAE3AgQgBEEMaiADQaABaikCADcCACAEQRRqIANBqAFqKQIANwIAIARBHGogA0GwAWooAgA2AgAgASgCfCEBQQxBBBCrICICIAQ2AgAgAiAHIAEgASAHSRs2AgggAiAHIAEgASAHSxs2AgQMAwtB5ezgAEEoQcD03wAQ9BcACyALEPkaC0EBIQgLIANBJGoQoyYgACACNgIEIAAgCDYCACADQdABaiQAC68KAhF/An4jAEGQA2siCCQAIAGtIhdC//////////8/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QRhqQcig4wApAwAiBDcDACACQQhqIAQ3AwAgAkE0aiABQTRqKAIANgIAIAJBAToAKCACIAE2AiAgAiADNgIkIAJBwKDjACkDACIENwMQIAIgBDcDACACIAEpAiw3AiwgAiABLQA8OgA8IAIgAS8BOjsBOiABLQA4IQMgAiABLQA9OgA9IAIgAzoAOCACQQA6ADkgACACEM8jIAJBAToAOSACKAIkIABBPGoQmSEgAiAAQShqEKoLIAIQgSkLIABB4ABqIgAoAgBBgICAgHhGDQggASAAEL0LDAgLIABBBGogARDeKyAAQQhqIAEQ4ywMBwsgAEEEaiABEN4rIABBCGogARDjLAwGCyABKAIwEL4RIQMgAkEYakHIoOMAKQMAIgQ3AwAgAkEIaiAENwMAIAJBNGogAUE0aigCADYCACACQQA6ACggAiABNgIgIAIgAzYCJCACQcCg4wApAwAiBDcDECACIAQ3AwAgAiABKQIsNwIsIAIgAS0APDoAPCACIAEvATo7ATogAS0AOCEDIAIgAS0APToAPSACIAM6ADggAkEAOgA5AkAgACgCBCIDQQJGDQAgAEEIaiEBIANBAXFFBEAgASACEOQsDAELIAEgAhDeKwsgAkEBOgA5IABBGGogAhCsJSACQQE6ADkgAEEcaiACEKwlIAIgACgCDBDTCgwCCyABKAIwEL4RIQMgAkE0aiABQTRqKAIANgIAIAJBADoAKCACQRhqQcig4wApAwAiBDcDACACQQhqIAQ3AwAgAiABNgIgIAIgAzYCJCACQQE6ADkgAiABKQIsNwIsIAIgAS0APDoAPCACIAEvATo7ATogAkHAoOMAKQMAIgQ3AxAgAiAENwMAIAEtADghAyACIAEtAD06AD0gAiADOgA4IABBBGogAhDeGyAAQQxqIAIQ3isgAiAAKAIQENMKDAELIAEoAjAQvhEhAyACQTRqIAFBNGooAgA2AgAgAkEAOgAoIAJBGGpByKDjACkDACIENwMAIAJBCGogBDcDACACIAE2AiAgAiADNgIkIAJBAToAOSACIAEpAiw3AiwgAiABLQA8OgA8IAIgAS8BOjsBOiACQcCg4wApAwAiBDcDECACIAQ3AwAgAS0AOCEDIAIgAS0APToAPSACIAM6ADggAEEEaiACEN4bIABBDGogAhDeKyACIAAoAhAQ0woLIAIQ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DSIBRQRAIAMoAsAFIQEgA0EAOgCIByADIAEgASADQYgHahCBFTYChAcgA0EBNgKABwwBCyADQQA2AoAHIAMgATYChAcgASgCAEEjRw0AIAMgAykDoAY3A9gGIAMoAogGIANBJTYCiAZBI0cNASADKQOQBiELCyADQYAHahDCIyADQYgHaiADQcADakEBQQFBABCIAwJAIAMoAogHIgdBgICAgHhHBEAgAiADKALcBiIBIAEgAksbIQEgAygCkAchCSADKAKMByEKDAELIAMoAowHIQEgCxDtJkGAgICAeCEHCyADQeAGaiIIIAMoAsQFEPsQIAMoAuQGIQQgA0GUAWogAygC6AYiAhCSHyADKAKYASADKAKcASIFQQJ0aiAEIAJBAnQQ+wYaIANBADYC6AYgAyACIAVqNgKcASAIEIwjIAMoAswDIAMoAtADEMoeIAMoAsgDIAMoAswDEPApIAMoAtQDIAMoAtgDEIgXIAMoAugDBEAgA0HsA2oQjycgA0HwA2oQsicLIANB/ANqEMQgIAMoAsQFEO0YIAMoAsgFEO0YIAMoAswFENAXIAMoAtAFEO4YIANBiAZqEK4JIANBsAZqEK4JAkAgB0GAgICAeEcEQCADQfAAaiEIIANBEGohBCADQQRqIQUgCUEwbCECIAohAQNAIAJFDQIgAkEwayECIAEQjAQgAUEwaiEBDAALAAsgAyABNgLgBiADQQE2AsQDIANBzN3aADYCwAMgA0IBNwLMAyADQYwFNgKkASADIANBoAFqNgLIAyADIANB4AZqNgKgASADQcADakHU3doAEMMdAAsgCxDtJiAAIAk2AgggACAKNgIEIAAgBzYCACAGIAYoAgAiAEEBazYCACAAQQFGBEAgA0GEAWoQ1gsLIAMoAmggAygCbBDHFyADKAJkIAMoAmgQ3ykgCBCKCSADKAJYIQAgAygCXCIBKAIAIgIEQCAAIAIRAQALIAEoAgQiAgRAIAAgAiABKAIIENURCyADKAJQIAMoAlQQyBcgAygCTCADKAJQEPIpAkAgAygCACIAQQtGDQACQAJAQQYgAEECayIAIABBCU8bQQJrDgUCAgICAQALIAUhBAsgBCgCACAEQQRqKAIAENopCyADKAKYASIAIAMoApwBEJQfIAMoApQBIAAQ3ykgA0GgB2okAA8LQeXs4ABBKEGc/d8A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AgAgACAGNgIEIARBJGoQhScMBAsgBEHcAWogBEGwAWooAgA2AgAgBCAKNgLQASAEIAc2AswBIAQgCDYCyAEgBCAJNgLEASAEIAI2AsABIAQgBjYCvAEgBCAFNgK4ASAEIAQpA6gBNwLUASAEQSRqIARBuAFqEIAaAkAgAS0AhQNBAXFFDQAgBCgCLEEobCEGIAQoAighBQNAIAZFDQEgASAFEI4IIAZBKGshBiAFQShqIQUMAAsACyAAIAQpAiQ3AgAgAEEIaiAEQSxqKAIANgIADAMLIARBEGogBEEwahDPESAEKAIUIQggBCgCECELIARB9wA6ALgBIAEgCyAIIARBuAFqENgZIAcEQCAJELgpBSAEQTBqELISCwwACwALIAIQhiMLIARB4AFqJAALkQoCC38DfiMAQeABayICJAACQCABLQAUQQJHBEAgASgCGCEEIAJBNGpByKDjACkDACINNwIAIAJBwKDjACkDACIONwIsIAJBADsBXiACQQA2AlQgAkKAgICAgAE3AkwgAkEAOgBIIAJBADYCRCACQoCAgIDAADcCPCACQQA2AiggAkKAgICAgAE3AiAgAiAALwE8OwFcIAIgACgCODYCWCACQRBqIAEpAwAiDyABKAIQIggQwCMgAkEgaiACKQMQIAIoAhhBARCbBiACQfQAaiANNwIAIAJBADYClAEgAkKAgICAgAE3AowBIAJBADoAiAEgAkEANgKEASACQoCAgIDAADcCfCACQQA2AmggAiAONwJsIAJBADsBngEgAiACLwFcOwGcASACIAIoAlg2ApgBIAJCgICAgIABNwJgIARBGGohCSAEQQxqIAQoAghBBnQhASACQYwBaiEGIAJBzABqIQUgAkE8aiEHIAJBLGohCyAEKAIEIQMCQANAIAFFDQEgAygCACEMIAFBQGohASADQUBrIQMCQCAMQQJrDgMAAQABCwsgAiAPIAgQwCMgAkHgAGogAikDACACKAIIEKsRCyACQeAAaiIBEJ8aIAQgARCpGiABIAkQ5yMCQAJAIAIoApQBIgEEQCALIAEQhCkgAkGkAWogAigCkAEgAigClAEQoQogAiACKAKkATYCuAEgAiACKAKoASIBNgKwASACIAEgAigCrAFBBHQiA2oiBDYCvAEDQCADRQ0CIAJB4ABqIAEpAwAgASgCCBCrESADQRBrIQMgAUEQaiEBDAALAAsgAkGwAWoiASACQeAAakEsEPsGGiAHIAEQoRogBhCOIwwBCyACIAQ2ArQBIAJBsAFqEIkXIAItAEhFBEAgAkEgaiACKAKUARCWHiACIAIoAowBNgK4ASACIAIoApABIgE2ArABIAIgASACKAKUAUEEdCIDaiIENgK8AQNAIAMEQCACQSBqIAEpAwAgASgCCEEBEJsGIANBEGshAyABQRBqIQEMAQsLIAIgBDYCtAEgAkGwAWoiARCJFyABIAJB4ABqQSwQ+wYaIAcgARChGgwBCyACQbgBaiAGQQhqKAIANgIAIAIgBikCADcDsAEgBSACQbABaiIBEKEQIAEgAkHgAGpBLBD7BhogByABEKEaCwJAIAIoAlQiAQRAIABBDGogARCEKSACQbABaiACKAJQIAIoAlQQoQogAiACKAKwATYCaCACIAIoArQBIgE2AmAgAiABIAIoArgBQQR0IgNqIgQ2AmwDQCADRQ0CIAJBIGogASkDACABKAIIEKsRIANBEGshAyABQRBqIQEMAAsACyACQeAAaiIBIAJBIGpBLBD7BhogAEEcaiABEKEaIAUQjiMMAgsgAiAENgJkIAJB4ABqEIkXIAAtAChFBEAgACACKAJUEJYeIAIgAigCTDYCaCACIAIoAlAiATYCYCACIAEgAigCVEEEdCIDaiIENgJsA0AgAwRAIAAgASkDACABKAIIQQEQmwYgA0EQayEDIAFBEGohAQwBCwsgAiAENgJkIAJB4ABqIgEQiRcgASACQSBqQSwQ+wYaIABBHGogARChGgwCCyACQegAaiAFQQhqKAIANgIAIAIgBSkCADcDYCAAQSxqIAJB4ABqIgEQoRAgASACQSBqQSwQ+wYaIABBHGogARChGgwBCyABQRhqIAAQ/iwLIAJB4AFqJAALhAoCC38DfiMAQYABayICJAAgAkEIaiABEEUCQCACKAIIQSVGBEAgAEElNgIADAELIAJBMGogAkEIakEoEPsGGgJAAkACQAJAAkAgASgCoAIiBSgCCEUEQCAFQX82AgggBUEMaiEGIAIoAkghCwNAAkAgBSgCFCIDBEAgBSgCECADQQFrIgNBKGxqIgQoAhggC08NAQtBAyEBAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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CCAEIAUQmQYgBigCLCEIIAYoAighBwwKCyAGQRhqIAEgAiADIAQgBRCZBiAGKAIcIQggBigCGCEHDAkLQeXs4ABBKEGojcMAEPQXAAtByIzDABDgKQALQeXs4ABBKEH4jMMAEPQXAAtBmIzDABDgKQALIAZB2ABqIAEgAiADEKsEDAMLQeXs4ABBKEH4jMMAEPQXAAtBmIzDABDgKQALQfCGwwBBE0GEh8MAELsSAAsgBigCWARAQQEhByAGKAJkIghBAXQiAUEBciECIAYpAlwhECABIAVJBEAgBCABQQJ0aiAQp0EBajYCAAsgAiAFTw0BIAQgAkECdGogEEIgiKdBAWo2AgAMAQtBACEHCyAAIAg2AgQgACAHNgIAIAZBwAFqJAALmAoCCn8DfiMAQbABayICJAAgAUEoaiIEEN4gIQggAkHVAGogAUGXA2opAAA3AAAgAkHQAGogAUGSA2opAQAiDDcCACACQcgAaiABQYoDaikBACINNwIAIAJBADoAgwEgAiABLQCcAzoAggEgAiABLQCeAzoAhAEgAiABKQGCAyIONwBoIAIgDTcAcCACIAw3AHggAiABLwGaAzsAgAEgAiAONwJAIAFBgAFqIgcgAkHoAGoQyQggAiABNgI8IAJBMGogARDaASACKAI0IQUCQAJAAkACQAJAAkAgAigCMARAIAUhAwwBCyAEELshDQQgBBDjDSIDRQ0EIAMoAgBBAkcNBCADLQAIQQJHDQQgAy0ACUEaRw0EIAEoAighAyABQSU2AiggASABKQNANwN4IAJB9ABqIgYgAUE0aikCADcCACACQfwAaiIJIAFBPGooAgA2AgAgAiABKQIsNwJsIAIgAzYCaCACQegAaiILEMcKIAIgBTYCYCACQYEBaiABQYIDaiIDQRVqKQAANwAAIAkgA0EQaikBADcCACAGIANBCGopAQA3AgAgAkEBOgCrASACIAEtAJwDOgCqASACIAEtAJ4DOgCsASACIAEpAYIDNwCQASACIAEpAYoDNwCYASACIAEpAZIDNwCgASACIAEvAZoDOwCoASACIAMpAQA3AmwgByACQZABahDJCCACIAE2AmggAkEoaiABENoBIAIoAiwhAwJAIAIoAihFBEAgAiADNgJkIAsQoyYCQAJAIAQQ4w0iBwRAIAcoAgBBF0YNAQsgAkHwAGogBBCW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EQsgAiAAQQRqNgIIIAJBATYCFCACQYT44AA2AhAgAkIBNwIcIAJB/QE2AiwgAiACQShqNgIYIAIgAkEIajYCKCABKAIUIAEoAhggAkEQahC1JAwQCyACIABBBGo2AgggAkEBNgIUIAJBpJjYADYCECACQgE3AhwgAkH+ATYCLCACIAJBKGo2AhggAiACQQhqNgIoIAEoAhQgASgCGCACQRBqELUkDA8LIAJBADYCICACQQE2AhQgAkHMmNgANgIQIAJCBDcCGCABKAIUIAEoAhggAkEQahC1JAwOCyACQQA2AiAgAkEBNgIUIAJB/JjYADYCECACQgQ3AhggASgCFCABKAIYIAJBEGoQtSQMDQsgAkEANgIgIAJBATYCFCACQaSZ2AA2AhAgAkIENwIYIAEoAhQgASgCGCACQRBqELUkDAwLIAIgACgCBDYCCCACQQI2AhQgAkHMmdgANgIQIAJCATcCHCACQQc2AiwgAiACQShqNgIYIAIgAkEIajYCKCABKAIUIAEoAhggAkEQahC1JAwLCyACIAAoAgQ2AgggAkEBNgIUIAJB+JnYADYCECACQgE3AhwgAkEHNgIsIAIgAkEoajYCGCACIAJBCGo2AiggASgCFCABKAIYIAJBEGoQtSQMCgsgAiAAKAIENgIIIAJBATYCFCACQZia2AA2AhAgAkIBNwIcIAJBBzYCLCACIAJBKGo2AhggAiACQQhqNgIoIAEoAhQgASgCGCACQRBqELUkDAkLIAJBADYCICACQQE2AhQgAkHMmtgANgIQIAJCBDcCGCABKAIUIAEoAhggAkEQahC1JAwICyACQQA2AiAgAkEBNgIUIAJB9JrYADYCECACQgQ3AhggASgCFCABKAIYIAJBEGoQtSQMBwsgAiAANgIIIAJBATYCFCACQaSb2AA2AhAgAkIBNwIcIAJBDTYCLCACIAJBKGo2AhggAiACQQhqNgIoIAEoAhQgASgCGCACQRBqELUkDAYLIAJBADYCICACQQE2AhQgAkHQm9gANgIQIAJCBDcCGCABKAIUIAEoAhggAkEQahC1JAwFCyACQQA2AiAgAkEBNgIUIAJB/JvYADYCECACQgQ3AhggASgCFCABKAIYIAJBEGoQtSQMBAsgAkEANgIgIAJBATYCFCACQaSc2AA2AhAgAkIENwIYIAEoAhQgASgCGCAC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BCABEM8CIAMoAjwiBCADKAI4IglBgICAgHhGDQIaIAMoAkAMAQtBAAs2AjAgAyAENgIsIAMgCTYCKAJAIAcQ4w0iBEUNACAEKAIAQQJHDQAgBC0ACEECRw0AIAQtAAlBGkcNACADIAcQuBQgAygCBCEEIAMoAgAhBiADQZUBOgA4IAEgBiAEIANBOGoiBhDYGSABQSxqIQQgBkEEciEGA0AgBxDjDSIIBEAgA0EANgJgIAMgCDYCZCADQeAAahCQJCAHEOMNIggEQCAIKAIAQQ1GDQMLIAYgBCkCADcCACABKAIoIQggAUElNgIoIAEgASkDQDcDeCAGQQhqIARBCGopAgA3AgAgBkEQaiAEQRBqKAIANgIAIAMgCDYCOCADQThqEMcKDAELCyABKALYAiEEIANBADoAOCADIAQgBCADQThqEIEVNgJkIANBATYCYCADQeAAahCQJAsgBxDeICEGIANBOGoiBCABENsVIANB4ABqIgogAygCOBBLIAMoAmQhByADKAJgIghBgICAgHhHBEAgAygCaCEJIAQQoyYgASgCfCEBIANB6ABqIANBIGopAwA3AwAgAyADKQMYNwNgIAQgChClHEHIAEEIEKsgIgQgAiABIAEgAkkbNgIEIAQgAiABIAEgAksbNgIAIAQgBiABIAEgBkkbNgI0IAQgBiABIAEgBksbNgIwIAQgCTYCLCAEIAc2AiggBCAINgIkIAQgBTYCICAEQQA6AEQgBCADKQM4NwMIIARBEGogA0FAaykDADcDACAEQRhqIANByABqKQMANwMAIAQgAykDKDcDOCAEQUBrIANBMGooAgA2AgBBAAwECyADQThqEKMmIANBKGoQ7yYgBwshBCAFEN0oCyADKQMYEPkaC0EBCyEBIAAgBDYCBCAAIAE2AgAgA0HwAGokAAvlCQIIfwN+IwBBgAJrIgIkAAJAAkACQAJAAkACQCAAKAIAIgNBCUcEQAJAAkACQAJAIANBAWsOCAECCQgHBgUKAAsgAEEcaiABEP4jDAkLIABBCGogARCGAgJAAkACQCAAKAIIQQJrDgYACwsLAQILCyAAKAIMIQUgAkEANgLAASACQoCAgICAATcCuAEgBSgCCEE4bCEDIAUoAgQhBANAIAMEQCADQThrIQMgBCACQbgBahCgCiAEQThqIQQMAQsLIAIoArgBIQMgAigCvAEhBSACKALAASEEIAJBCGogASkDECABKAIYENYVIAIpAwghCiACKAIQIQYgAUEwaiIIIARBAWpBAXYgBCABKAI8GyABQUBrEKIiIAJB3AFqQgA3AgAgAkIANwLUASACIAY2AtABIAIgCjcDyAEgAiAFIARBBHRqIgE2AsQBIAIgAzYCwAEgAiAFNgK8ASACIAU2ArgBIApCA4MhDCAKp0EIayEHIAUhAwNAIAQEQAJ/IAEgA0YEQEIAIQsgAQwBCyADKAIIIQAgAykDACELIANBEGoiBQshAyACQegBaiAIIAsgACAKUAR+QgAFIAxQBEAgByAHKAIAIglBAWo2AgAgCUEASA0HCyAKCyAGEOcGIAIpA+gBUEUEQCACKQPwARDtJgsgBEEBayEEDAELCyACIAU2ArwBIAJBuAFqEIkXIAoQ7SYMCgsgAkEoaiAAKAIMIgApAwAgAEEQaigCABDAIyACKAIwIQAgAikDKCEKIAJBGGogASkDECABKAIYENYVIAJBuAFqIAFBMGogCiAAIAIpAxggAigCIBDnBiACKQO4ASACKQPAARDWJwwJCyACQcgAaiAAKAIMEJAVIAIoAlAhACACKQNIIQogAkE4aiABKQMQIAEoAhgQ1hUgAkG4AWogAUEwaiAKIAAgAikDOCACKAJAEOcGIAIpA7gBIAIpA8ABENYnDAgLIAFBMGohBSAAKAIMQdAAbCEEIAAoAgghAwNAAkAgBARAIAMpAwAiCkICWiAKp0EBcXINASACQegAaiADKQMIIANBGGooAgAQwCMgAigCcCEGIAIpA2ghCiACQdgAaiABKQMQIAEoAhgQ1hUgAkG4AWogBSAKIAYgAikDWCACKAJgEOcGIAIpA7gBIAIpA8ABENYnDAELIABBHGogARD+IwwJCyADQdAAaiEDIARB0ABrIQQMAAsACwALIABBCGogARCYBQwFCyAAQQRqIAEQhi0MBAsgACgCBCIALQBAQQFHDQMgAkGoAWogACkDKCAAQThqKAIAEMAjIAIoArABIQAgAikDqAEhCiACQZgBaiABKQMQIAEoAhgQ1hUgAkG4AWogAUEwaiAKIAAgAikDmAEgAigCoAEQ5wYgAikDuAEgAikDwAEQ1icMAwsgAEEQaiABEP4jDAILIABBBGogARCGLSAAKAIEIgAoAgBBGkcNASACQYgBaiAAKQMIIABBGGooAgAQwCMgAigCkAEhACACKQOIASEKIAJB+ABqIAEpAxAgASgCGBDWFSACQbgBaiABQTBqIAogACACKQN4IAIoAoABEOcGIAIpA7gBIAIpA8ABENYnDAELAkACQCAAKAIIQQFrDgIBAgALIABBEGogARCMLQwBCyAAQRBqIAEQiy0LIAJBgAJqJAAL2wgBA38jAEEQayIBJABBoJfkACgCACIABEAgAUEIaiAAQQRqEIsbIAEoAgwhAgJ/QQEgASgCCCIALQAADQAaQQEgAC0AAQ0AGkEBIAAtAAINABpBASAALQADDQAaQQEgAC0ABA0AGkEBIAAtAAUNABpBASAALQAGDQAaQQEgAC0ABw0AGkEBIAAtAAgNABpBASAALQAJDQAaQQEgAC0ACg0AGkEBIAAtAAsNABpBASAALQAMDQAaQQEgAC0ADQ0AGkEBIAAtAA4NABpBASAALQAPDQAaQQEgAC0AEA0AGkEBIAAtABENABpBASAALQASDQAaQQEgAC0AEw0AGkEBIAAtABQNABpBASAALQAVDQAaQQEgAC0AFg0AGkEBIAAtABcNABpBASAALQAYDQAaQQEgAC0AGQ0AGkEBIAAtABoNABpBASAALQAbDQAaQQEgAC0AHA0AGkEBIAAtAB0NABpBASAALQAeDQAaQQEgAC0AHw0AGkEBIAAtACANABpBASAALQAhDQAaQQEgAC0AIg0AGkEBIAAtACMNABpBASAALQAkDQAaQQEgAC0AJQ0AGkEBIAAtACYNABpBASAALQAnDQAaQQEgAC0AKA0AGkEBIAAtACkNABpBASAALQAqDQAaQQEgAC0AKw0AGkEBIAAtACwNABpBASAALQAtDQAaQQEgAC0ALg0AGkEBIAAtAC8NABpBASAALQAwDQAaQQEgAC0AMQ0AGkEBIAAtADINABpBASAALQAzDQAaQQEgAC0ANA0AGkEBIAAtADUNABpBASAALQA2DQAaQQEgAC0ANw0AGkEBIAAtADgNABpBASAALQA5DQAaQQEgAC0AOg0AGkEBIAAtADsNABpBASAALQA8DQAaQQEgAC0APQ0AGkEBIAAtAD4NABpBASAALQA/DQAaQQEgAC0AQA0AGkEBIAAtAEENABpBASAALQBCDQAaQQEgAC0AQw0AGkEBIAAtAEQNABpBASAALQBFDQAaQQEgAC0ARg0AGkEBIAAtAEcNABpBASAALQBIDQAaQQEgAC0ASQ0AGkEBIAAtAEoNABpBASAALQBLDQAaQQEgAC0ATA0AGkEBIAAtAE0NABpBASAALQBODQAaQQEgAC0ATw0AGkEBIAAtAFANABpBASAALQBRDQAaQQEgAC0AUg0AGkEBIAAtAFMNABpBASAALQBUDQAaQQEgAC0AVQ0AGkEBIAAtAFYNABpBASAALQBXDQAaQQEgAC0AWA0AGkEBIAAtAFkNABpBASAALQBaDQAaQQEgAC0AWw0AGkEBIAAtAFwNABpBASAALQBdDQAaQQEgAC0AXg0AGkEBIAAtAF8NABpBASAALQBgDQAaQQEgAC0AYQ0AGkEBIAAtAGINABpBASAALQBjDQAaQQEgAC0AZA0AGkEBIAAtAGUNABogAC0AZgsgAiACKAIAQQFrNgIAIAFBEGokAEEBcQ8LQczJ4ABByAAQhCsAC50KAgR/AX4jAEFAaiICJAACQAJAAkACQAJAAkACQAJAAkACQCAAKAIAQQFrDgcBAgMEBQYHAAsgASAAQQhqQQAQ0xUgACgCICABEJIaIAEoAjAQvhEhAyACQRhqQcig4wApAwAiBjcDACACQQhqIAY3AwAgAkE0aiABQTRqKAIANgIAIAJBAToAKCACIAE2AiAgAiADNgIkIAJBwKDjACkDACIGNwMQIAIgBjcDACACIAEpAiw3AiwgAiABLQA8OgA8IAIgAS8BOjsBOiABLQA4IQMgAiABLQA9OgA9IAIgAzoAOCACQQE6ADkgAEEgaiACEMsBDAcLIAAoAiBBDGogARCSGiABKAIwEL4RIQMgAkEYakHIoOMAKQMAIgY3AwAgAkEIaiAGNwMAIAJBNGogAUE0aigCADYCACACQQE6ACggAiABNgIgIAIgAzYCJCACQQE6ADkgAkHAoOMAKQMAIgY3AxAgAiAGNwMAIAIgASkCLDcCLCACIAEtADw6ADwgAiABLwE6OwE6IAEtADghAyACIAEtAD06AD0gAiADOgA4IABBIGogAhDcAwwGCyABIAAoAgQQrB0MBgsgASAAKAIEEJohDAULIABBBGogARDFCAwECyABLQA6IQMgAUEBOgA6IAEgACgCBCIAQQhqQQQQ0xUgAS0ANEEBRgRAIAEoAjAQvhEhBCACQRhqQcig4wApAwAiBjcDACACQQhqIAY3AwAgAkE0aiABQTRqKAIANgIAIAJBAToAKCACIAE2AiAgAiAENgIkIAJBAToAOSACQcCg4wApAwAiBjcDECACIAY3AwAgAiABKQIsNwIsIAIgAS8AOzsAOyABLQA4IQQgAiABLQA9OgA9IAIgBDoAOCACQQE6ADogAEEgaiACELwNIABBJGogAhDhKyACEIEpCyABIAM6ADoMAwsgASAAKAIEIgBBABDTFSABKAIwEL4RIQMgAkEYakHIoOMAKQMAIgY3AwAgAkEIaiAGNwMAIAJBNGogAUE0aigCADYCACACQQA6ACggAiABNgIgIAIgAzYCJCACQQE6ADkgAkHAoOMAKQMAIgY3AxAgAiAGNwMAIAIgASkCLDcCLCACIAEtADw6ADwgAiABLwE6OwE6IAEtADghAyACIAEtAD06AD0gAiADOgA4IAAoAiQhBCAAKAIoIQMgAkEAIAJBEGoQ+CECQCADBEAgBCEBIAMhAANAIAEoAgBFBEAgAUEIaikDACIGQgODUARAIAanQQhrIgUgBSgCACIFQQFqNgIAIAVBAEgNBAsgAiAGQQAQ1QgLIAFBMGohASAAQQFrIgANAAsLIANBMGwhACAEQShqIQEDQCAARQ0DIAEoAgAEQCABIAIQ3isLIABBMGshACABQTBqIQEMAAsACwALIAAoAgQiACgCAEUEQCABIABBCGpBABDTFQsgASgCMBC+ESEDIAJBNGogAUE0aigCADYCACACQQA6ACggAkEYakHIoOMAKQMAIgY3AwAgAkEIaiAGNwMAIAIgATYCICACIAM2AiQgAkEBOgA5IAIgASkCLDcCLCACIAEvATo7ATogAkHAoOMAKQMAIgY3AxAgAiAGNwMAIAEtADghAyACIAEtAD06AD0gAiADOgA4IAJBAToAPCAALQBFQQNGDQAgAEEgaiEAA0AgAC0AJUECRgRAIAIgABDJBQUgAiAAQQhqQQAQ0xUgACgCICEADAELCwsgAhCBKQsgAkFAayQAC7IKAQJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQEEHIAAoAgAiACgCACIBQQxrIgIgAkEmTxtBAWsOJAABAgMEBQYHCAkKCwwNDg8QERITIhQVFhciGBkaGxwdHh8gISILIABBBGoQxRcgACgCBCAAQQhqKAIAEO0pDCELIABBBGoQvgkgACgCBCAAQQhqKAIAEOIpDCALIABBCGoQniUgACgCICIBEKEcIAEoAgAgAUEEaigCABCUKiABQQxqEO4mIAEoAhhBgICAgHhHBEAgAUEYahDpJgsgAUE8ahDVHSABQUBrEKknIAFByABBBBDVEQwfCyAAQQRqEKMCDB4LIABBDGoQowIMHQsgAEEEahCjAiAAQQhqEKMCDBwLAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEODAABAgMEBQYHCAkLCgsLIABBCGoiARDLGSABQRhqEKknDAoLIABBCGoQhRsMCQsgAEEIahDNIAwICyAAQQRqEKMCDAcLIABBBGoQ8hgMBgsgAEEEahD2KAwFCyAAQQRqEPYoDAQLIABBBGoQowIMAwsgAEEEahD2KAwCCyAAQQRqEKEqDAELAkACQCAAKAIEDgIAAQILIABBCGoiARCfHCABKAIAIAEoAgQQkCogAUEUahCpJwwBCyAAQQhqIgEQvBAgASgCACABKAIEEJEqIAFBFGoQqScLIABBOGoQowIMGwsgAEEIahCFGwwaCyAAQQhqEM0gDBkLIABBBGoQowIgAEEIahCjAiAAQQxqEKMCDBgLIAAtABhBBUYEQCAAQRBqEKMCCyAAQQRqEOYmIAAoAigQ2SgMFwsgAEEQahCjAiAAKAIEQYCAgIB4RwRAIABBBGoQ5iYLIAAoAiAQ2SgMFgsgAEEEahDoJgwVCyAAQQhqEMsZDBQLAkACQAJAAkACQCAAKAIIDgYBGBgCAwQACyAAQRBqEMsZIABBGGoQyxkMFwsgAEEQahDzKAwWCyAAQSBqEJ0lDBULIABBEGoQnyUMFAsgAEEQahDLGSAAQRhqEMsZDBMLIABBBGoQ0ygMEgsgAEEEahCjAiAAKAIYENkoIAAoAggiARDTKCABQSBBBBDVEQwRCyAAQQRqEJ0cIAAoAgQgAEEIaigCABCQKgJAIAAoAhAiASgCAEGAgICAeEcEQCABEOkmDAELIAFBBGoQowILIAAoAhBBGEEEENURIABBIGoQ1R0gAEEkahCpJwwQCyAAQQhqEJ4lIAAoAiAiARDuJiABQQxqELkHIAEoAgwgAUEQaigCABCTKiABQTBqEKonIAFBNGoQ1R0gASgCOBDZKCABQRhqEL0ZIAEoAhggAUEcaigCABDtKSAAKAIgQcAAQQQQ1REMDwsgAEEMahCqJwwOCyAAQQRqEKMCDA0LIABBBGoQowIMDAsgAEEIahD3KAwLCyAAQQhqEPUoDAoLIAAoAgQiAUFAaxDNGSABQfwAahDnCyABKAJ8IAFBgAFqKAIAEJMqIAEoAngQ2SggAUGQAWoQ7CYgAS0APEEGRwRAIAFBEGoQzRkLIAFBoAFBCBDVEQwJCyAAQQRqEOwmDAgLIABBBGoQ9igMBwsgAEEEahCjAgwGCyAAQQRqEKMCDAULIABBBGoQ9igMBAsgAEEEahChKgwDCyAAQQRqEPYoDAILIABBCGoQyxkMAQsgAEEEahDyGAsgAEHAAEEIENURC5QNAQt/IwBB8ABrIgIkACABKAL8BSEGIAEoAqADIgUtAAQgAkKAgICAwAA3AjAgAkIANwI4IAIgBS0ABkEBRgR/IAJBADYCTCACQQA2AkRBAQVBAAs2AkAgAkEoaiABQaQDaiIDIAZBACACEL0VIAIoAiwhBSACKAIoIQRBAWsiB0H/AXFBAkkhCANAAkACQCAEQQFHBEAgAUHsA2ohDCAHQf8BcUECSSEKDAELIAYgASgCtAMgASgCuAMgBUG8jsAAELkfKAABIgRGDQEgAkFAayIKIAQQ5QoNASACQTBqIAQQ5xIgCiAEEKYCIAhFDQEgASgCqAMgASgCrAMgBEHMjsAAELgfKAIIRQ0BIAEoAqgDIAEoAqwDIARB3I7AABC4H0EANgIMDAELAkADQAJAAkAgAigCPCIFBEAgAiAFQQFrNgI8IAIgAigCOCIFQQFqIgQgAigCMCIGQQAgBCAGTxtrNgI4IAJBIGogAyACKAI0IAVBAnRqKAIAIgdBACACEL0VIAIoAiQhCCACKAIgIQUDQCAFQQFHDQIgASgCtAMgASgCuAMgCEHsjsAAELkfIgUtAAAhBgJAAkAgAkFAayIEIAUoAAEiBRDlCg0AIAJBMGogBRDnEiAEIAUQpgICQCAKRQ0AIAEoAqgDIAEoAqwDIAVB/I7AABC4HygCCEUNACABKAKoAyABKAKsAyAFQbyPwAAQuB9BADYCDAwBCyAGIAxqIQsgASgCqAMgASgCrAMgB0GMj8AAELgfIQQDQAJAAkACfyABKAKoAyABKAKsAyAEKAIMIgRBuIHEABC4HygCBCIJBEAgASgCwAMgASgCxAMgCSALLQAAakHIgcQAELcfKAIADAELIAJBGGogAyAEEKYgIAIgAikDGDcCaANAIAJB0ABqIAJB6ABqEOUQIAItAFBFDQIgAi0AUSIJIAZJDQALIAYgCUcNASACKABSC0EBRw0BCyABKAKoAyABKAKsAyAEQayPwAAQuB8hBAwBCwsCfyABKAKoAyABKAKsAyAEQbiBxAAQuB8oAgQiCQRAIAEoAsADIAEoAsQDIAkgCy0AAGpByIHEABC3HygCAAwBCyACQRBqIAMgBBCmICACIAIpAxA3AmgCQANAIAJB0ABqIAJB6ABqEOUQIAItAFBFDQEgAi0AUSIEIAZJDQALIAQgBkcNACACKABSDAELQQELIQQgASgCqAMgASgCrAMgBUGcj8AAELgfIAQ2AgwgAkHQAGogAyAEIAUQygcgAigCUCIFQQNHDQELIAJBCGogAyAHQQEgCBC9FSACKAIMIQggAigCCCEFDAELCwwCCyAAQQM2AgAMAwsgCg0BIAJB0ABqIAMgASgC/AUgBxDKByACKAJQIgVBA0YNAQsLIAAgAikCVDcCBCAAQRRqIAJB5ABqKAIANgIAIABBDGogAkHcAGopAgA3AgAgACAFNgIAC0EAIQYjAEEwayIDJAACQAJAAkAgAkFAayIAKAIARQ0AIAMgACgCBCIBBH8gAyABNgIYIANBADYCFCADIAE2AgggA0EANgIEIAMgACgCCCIBNgIcIAMgATYCDEEBIQYgACgCDAVBAAs2AiAgAyAGNgIQIAMgBjYCAANAAkACQAJ/AkAgAygCICIARQRAIAZFDQYgAygCCCEBIAMoAgQiAA0BIAMoAgwhAANAIAAEQCAAQQFrIQAgASgCNCEBDAEFIAEhAEEADAQLAAsACyADIABBAWs2AiACQAJAIAZFDQAgAygCBA0AIAMoAgghACADKAIMIQQDQCAEBEAgBEEBayEEIAAoAjQhAAwBBSADQgA3AgggAyAANgIEQQEhBgwDCwALAAsgBkUNAyADKAIEIQALIAMoAgwhASADKAIIIQQDQCABIAAvATJJDQQgA0EkaiAAIAQQ6RQgAygCJCIARQ0HIAMoAiwhASADKAIoIQQMAAsACyABCyEEA0AgA0EkaiAAIAQQ6RQgAygCJCIARQ0EIAMoAighBAwACwALQdyN2AAQ4CkACyABQQFqIQECQCAERQRAIAAhBQwBCyAAIAFBAnRqQTRqIQEDQCABKAIAIgVBNGohASAEQQFrIgQNAAtBACEBCyADIAE2AgwgA0EANgIIIAMgBTYCBCAADQALCyADQTBqJAAMAQtB5IXYABDgKQALIAIoAjAgAigCNBDfKSACQfAAaiQADwsgAiADIAZBASAFEL0VIAIoAgQhBSACKAIAIQQMAAsAC40KAQJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQEEHIAAoAgAiACgCACIBQQxrIgIgAkEmTxtBAWsOJAABAgMEBQYHCAkKCwwNDg8QERITIhQVFhciGBkaGxwdHh8gISILIABBBGoQxRcgACgCBCAAQQhqKAIAEO0pDCELIABBBGoQvgkgACgCBCAAQQhqKAIAEOIpDCALIAApAwggAEEcai0AABC+IyAAKAIgEL8YDB8LIABBBGoQpQIMHgsgAEEMahClAgwdCyAAQQRqEKUCIABBCGoQpQIMHAsCQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAQ4MCgABAgMEBQYHCAsJCwsgAEEIahCxHAwKCyAAQQhqEJghDAkLIABBBGoQpQIMCAsgAEEEahD0GAwHCyAAQQRqEP4oDAYLIABBBGoQ/igMBQsgAEEEahClAgwECyAAQQRqEP4oDAMLIABBBGoQpioMAgsCQAJAAkAgACgCBA4CAAEECyAAQQhqEJ8cIAAoAgggAEEMaigCABCQKgwBCyAAQQhqELwQIAAoAgggAEEMaigCABCRKgsgAEEcahC6JwwBCyAAKQMIEPkaIABBIGoQuicLIABBOGoQpQIMGwsgAEEIahCxHAwaCyAAQQhqEJghDBkLIABBBGoQpQIgAEEIahClAiAAQQxqEKUCDBgLIAAtABhBBUYEQCAAQRBqEKUCCyAAQQRqEOYmIAAoAigQ2SgMFwsgAEEQahClAiAAKAIEQYCAgIB4RwRAIABBBGoQ5iYLIAAoAiAQ2SgMFgsgAEEEahDoJgwVCyAAKQMIEPkaDBQLAkACQAJAAkACQCAAKAIIDgYBGBgCAwQACyAAKQMQEPkaIAApAxgQ+RoMFwsgACkDECAAQSBqKQMAEIwrDBYLIAApAyAQ7SYMFQsgAEEYaikDACAAQSBqKAIAEMAgDBQLIAApAxAQ+RogACkDGBD5GgwTCyAAQQRqENMoDBILIABBBGoQpQIgACgCGBDZKCAAKAIIIgEQ0yggAUEgQQQQ1REMEQsgAEEEahCdHCAAKAIEIABBCGooAgAQkCoCQCAAKAIQIgEoAgBBgICAgHhHBEAgARDpJgwBCyABQQRqEKUCCyAAKAIQQRhBBBDVESAAKAIgEMIeIABBJGoQuicMEAsgACkDCCAAQRxqLQAAEL4jIAAoAiAiARDuJiABQQxqELkHIAEoAgwgAUEQaigCABCTKiABQTBqELknIAEoAjQQwh4gASgCOBDZKCABQRhqEL0ZIAEoAhggAUEcaigCABDtKSAAKAIgQcAAQQQQ1REMDwsgAEEMahC5JwwOCyAAQQRqEKUCDA0LIABBBGoQpQIMDAsgAEEIahCeHAwLCyAAKQMIIABBGGopAwAQiysMCgsgACgCBCIBQUBrEMYXIAFB/ABqEOcLIAEoAnwgAUGAAWooAgAQkyogASgCeBDZKCABQZABahDsJiABLQA8QQZHBEAgAUEQahDGFwsgAUGgAUEIENURDAkLIABBBGoQ7CYMCAsgAEEEahD+KAwHCyAAQQRqEKUCDAYLIABBBGoQpQIMBQsgAEEEahD+KAwECyAAQQRqEKYqDAMLIABBBGoQ/igMAgsgACkDCBD5GgwBCyAAQQRqEPQYCyAAQcAAQQgQ1RELkQkBCH8jAEHQAGsiAiQAAkAgACgCAEEBRw0AAkACQAJAAkACQAJAAkACQAJAIAAoAgQiBQRAIAAoAgghCANAIAUvATIiB0ECdCEGQQAhBEF/IQMDQAJAIAQgBkYEQCAHIQMMAQsgBCAFaiEJIANBAWohAyAEQQRqIQRBfyAJQQRqKAIAIgkgAUcgASAJSRtB/wFxDgINAQALCyAIBEAgCEEBayEIIAUgA0ECdGpBNGooAgAhBQwBCwsgBQ0BCxCoICIDLwEyIgRBC08NASADIARBAWo7ATIgAEKAgICAEDcCCCAAIAM2AgQgAyAEQQJ0akEEaiABNgIADAkLIAIgAzYCFCACQQA2AhAgAiAFNgIMIAUvATJBC0kNAUEFIQZBBCEEAn8CQAJAAkAgA0EFSQ0AIAMhBEEAIQcgA0EFaw4CAAIBCyACIAQ2AiAgAkEANgIcIAIgBTYCGCACQTBqIAJBGGoQzwsgAigCPCEIIAIoAjghByACKAIwIgYhCSACKAI0IgUMAgsgA0EHayEHQQYhBgsgAiAGNgIgIAJBADYCHCACIAU2AhggAkEwaiACQRhqEM8LIAIoAjQhBSACKAIwIQYgByEDIAIoAjgiByEJIAIoAjwiCAshBCACIAM2AkwgAiAENgJIIAIgCTYCRCACQSRqIAJBxABqIAEQnhggBkUNByACKAJAIQEDQCAGKAIAIgQEQCACIAQ2AhggAiAGLwEwIgM2AiAgAiAFQQFqIgY2AhwgBSAIRw0EIAQvATJBC0kNBQJAAn8CfwJAAkACQCADQQVPBEAgA0EFaw4CAgMBCyACQQQ2AiwgAiAGNgIoIAIgBDYCJCACQTBqIAJBJGoQlgggAigCNCEGIAIoAjAMBAsgAkEGNgIsIAIgBjYCKCACIAQ2AiQgAkEwaiACQSRqEJYIIANBB2sMAgsgAkEFNgIsIAIgBjYCKCACIAQ2AiQgAkEwaiACQSRqEJYIIAJBBTYCTCACIAIpAjA3AkQMAwsgAkEFNgIsIAIgBjYCKCACIAQ2AiQgAkEwaiACQSRqEJYIQQALIQMgAigCPCEGIAIoAjgLIQQgAiADNgJMIAIgBjYCSCACIAQ2AkQLIAJBxABqIAEgBxCmCiACKAJAIQEgAigCPCEIIAIoAjghByACKAI0IQUgAigCMCIGDQEMCQsLIAAoAgQiA0UNBCAAKAIIIQQQqSAiBSADNgI0IAIgBSAEQQFqENoPIAIoAgAhAyAAIAIoAgQiBDYCCCAAIAM2AgQgBEEBayAIRw0FIAMvATIiBEELTw0GIAMgBEEBaiIFOwEyIAMgBEECdGpBBGogATYCACADIAVBAnRqQTRqIAc2AgAgByAFOwEwIAcgAzYCAAwHC0HoocAAQSBB5KLAABD0FwALIAJBxABqIAJBDGogARCeGAwFC0GspMAAQTVB5KTAABD0FwALIAJBGGogASAHEKYKDAMLQdihwAAQ4CkAC0H0osAAQTBBpKPAABD0FwALQeihwABBIEG0o8AAEPQXAAsgACAAKAIMQQFqNgIMCyACQdAAaiQAC5sJAQJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAQQcgACgCACIBQQxrIgIgAkEmTxtBAWsOJAABAhsDBAUGBwgJCgsMDQ4PEBESGhsbExQaFRYdGxsdFx0YGRoLIABBBGoQxRcgACgCBCAAKAIIEO0pDwsgAEEEahC+CSAAKAIEIAAoAggQ4ikPCyAAKQMIIAAtABwQviMgACgCICIAEKEcIAAoAgAgAEEEaigCABCUKiAAQQxqEO4mIAAoAhhBgICAgHhHBEAgAEEYahDpJgsgACgCPBDCHiAAQUBrELwnIABByABBBBDVEQ8LIABBDGoQsiUPCyAAQQRqELIlIABBCGoQsiUPCwJAAkACQAJAAkACQAJAAkACQAJAAkACQCABDgwKAAECAwQFBgcICwkLCyAAQQhqELIcDAoLIABBCGoQnCEMCQsgAEEEahCyJQwICyAAQQRqEPgYDAcLIABBBGoQgikMBgsgAEEEahCCKQwFCyAAQQRqELIlDAQLIABBBGoQgikMAwsgAEEEahCnKgwCCwJAAkACQCAAKAIEDgIAAQQLIABBCGoQnxwgACgCCCAAKAIMEJAqDAELIABBCGoQvBAgACgCCCAAKAIMEJEqCyAAQRxqELwnDAELIAApAwgQ+RogAEEgahC8JwsgAEE4ahCyJQ8LIABBCGoQshwPCyAAQQhqEJwhDwsgAEEEahCyJSAAQQhqELIlIABBDGoQsiUPCyAAQRBqELElIABBBGoQ5iYgACgCKBDZKA8LIABBEGoQsiUgACgCBEGAgICAeEcEQCAAQQRqEOYmCyAAKAIgENkoDwsgAEEEahDoJg8LIAApAwgQ+RoPCwJAAkACQAJAIAAoAggOBgAQEAECAxILIAApAxAgACkDIBCMKw8LIAApAyAQ7SYPCyAAKQMYIAAoAiAQwCAPCwwOCyAAQQRqENMoDwsgAEEEahCyJSAAKAIYENkoIAAoAggiABDTKCAAQSBBBBDVEQ8LIABBBGoQnRwgACgCBCAAKAIIEJAqAkAgACgCECIBKAIAQYCAgIB4RwRAIAEQ6SYMAQsgAUEEahCyJQsgAUEYQQQQ1REgACgCIBDCHiAAQSRqELwnDwsgACkDCCAALQAcEL4jIAAoAiAiABDuJiAAQQxqELkHIAAoAgwgAEEQaigCABCTKiAAQTBqEL0nIAAoAjQQwh4gACgCOBDZKCAAQRhqEL0ZIAAoAhggAEEcaigCABDtKSAAQcAAQQQQ1REPCyAAQQxqEL0nDwsgAEEIahCeHA8LIAApAwggACkDGBCLKw8LIAAoAgQiAEFAaxDGFyAAQfwAahDnCyAAKAJ8IABBgAFqKAIAEJMqIAAoAngQ2SggAEGQAWoQ7CYgAC0APEEGRwRAIABBEGoQxhcLIABBoAFBCBDVEQ8LIABBBGoQ7CYPCyAAQQRqEKcqDwsgACkDCBD5Gg8LIABBBGoQ+BgLDwsgAEEEahCyJQ8LIAApAxAQ+RogACkDGBD5Gg8LIABBBGoQgikLuAkCBn8BfiMAQaABayIDJAACfwJAAkACQAJAAkAgAUEoaiIFEMoNIgRFDQAgBCgCAEECRw0AIAQtAAgNACAELQAJQQZGDQELIAUQyg0iBA0BIAEoAoACIQEgA0EAOgBAIAEgASADQUBrEIEVIQQMAwsgA0FAayIGIAEQ0QQgAygCSCEEIAMpA0AiCVANAiADIAMoAkw2AjwgAyAENgI4IAMgCTcDMCAGIANBMGoQpRwgA0GQAWogA0HMAGopAgA3AwAgA0GYAWogA0HUAGooAgA2AgAgAyADKQJENwOIASADKAJAIQRCACEJQQEhBgwBCwJAAkACQAJAIAQoAgAiBEEbRwRAIARBJEcNASABIAEpA+ACNwOYAyABKALIAiABQSU2AsgCQSRGBEAgASgCzAIhBAwHC0Hl7OAAQShBqPXfABD0FwALIANBQGsgARDFAiADKAJAIgRFDQEgBEEHRg0CQeXs4ABBKEH09d8AEPQXAAsgA0HMAGogBRCRECADIAUQhRQgA0EaNgJIIANByPXfADYCRCADQTA6AEAgAygCACADKAIEIANBQGsQgRUhBCAFEMoNIgJFDQQgAigCAEEkRw0EIAEgASkD4AI3A5gDIAEoAsgCIAFBJTYCyAJBJEcNAiABIAEoAswCEP8LDAQLIANBkAFqIANB1ABqKQIANwMAIANBmAFqIANB3ABqKAIANgIAIAMgAykCTDcDiAEgAygCSCEEQgEhCQwCCyADKAJEIQQMAgtB5ezgAEEoQeT13wAQ9BcACyADQSRqIANBkAFqKQMANwIAIANBLGogA0GYAWooAgA2AgAgAyAENgIYIAMgCTcDECADIAMpA4gBNwIcAkACQAJAAkAgBRDKDSIEBEAgBCgCAEENRg0BC0EDIQcgBRDKDSIEDQEMAwsgA0FAayABEC8gAygCQCIIQYCAgIB4RwRAIANB6ABqIANBzABqKQIANwMAIAMgAykCRDcDYEECIQcMAwsgAygCRCEEDAELAkACQCAEKAIAQQ5rDgIDAAELIAEoAsgCIQQgAUElNgLIAiABIAEpA+ACNwOYAyADQcwAaiABQdQCaikCADcCACADQdQAaiABQdwCaigCADYCACADIAEpAswCNwJEIAMgBDYCQCADQUBrEMYKDAILIAUQiCENASADQcgAaiAFEJEQIANBCGogBRCFFCADQZDE4AA2AkQgA0E0OgBAIAMoAgggAygCDCADQUBrEIEVIQQgBRDKDSICRQ0AIAIoAgBBJEcNACABIAEpA+ACNwOYAyABKALIAiABQSU2AsgCQSRGBEAgASABKALMAhD/CwwBC0Hl7OAAQShBuPXfABD0FwALIANBEGoQjCAMAQsgASgCnAMhBUHYAEEIEKsgIgQgCDYCICAEQRhqIANBKGopAwA3AwAgBEEQaiADQSBqKQMANwMAIARBCGogA0EYaikDADcDACAEIAMpAxA3AwAgBEEkaiADQeAAakEhEPsGGiAEIAY6AFEgBEEAOgBQIAQgAiAFIAIgBUsbNgJMIAQgAiAFIAIgBUkbNgJIIAQgBzoARUEADAELQQELIQEgACAENgIEIAAgATYCACADQaABaiQAC6IJAgZ/AX4jAEGgAWsiAyQAAn8CQAJAAkACQAJAIAFBKGoiBRDjDSIERQ0AIAQoAgBBAkcNACAELQAIDQAgBC0ACUEGRg0BCyAFEOMNIgQNASABKALYAiEBIANBADoAQCABIAEgA0FAaxCBFSEEDAMLIANBQGsiBiABENMEIAMoAkghBCADKQNAIglQDQIgAyADKAJMNgI8IAMgBDYCOCADIAk3AzAgBiADQTBqEKUcIANBkAFqIANBzABqKQIANwMAIANBmAFqIANB1ABqKAIANgIAIAMgAykCRDcDiAEgAygCQCEEQgAhCUEBIQYMAQsCQAJAAkACQCAEKAIAIgRBG0cEQCAEQSRHDQEgASABKQNANwN4IAEoAiggAUElNgIoQSRGBEAgASgCLCEEDAcLQeXs4ABBKEGo9d8AEPQXAAsgA0FAayABEMYCIAMoAkAiBEUNASAEQQdGDQJB5ezgAEEoQfT13wAQ9BcACyADQcwAaiAFEJYLIAMgBRC4FCADQRo2AkggA0HI9d8ANgJEIANBMDoAQCADKAIAIAMoAgQgA0FAaxCBFSEEIAUQ4w0iAkUNBCACKAIAQSRHDQQgASABKQNANwN4IAEoAiggAUElNgIoQSRHDQIgASABKAIsEIYMDAQLIANBkAFqIANB1ABqKQIANwMAIANBmAFqIANB3ABqKAIANgIAIAMgAykCTDcDiAEgAygCSCEEQgEhCQwCCyADKAJEIQQMAgtB5ezgAEEoQeT13wAQ9BcACyADQSRqIANBkAFqKQMANwIAIANBLGogA0GYAWooAgA2AgAgAyAENgIYIAMgCTcDECADIAMpA4gBNwIcAkACQAJAAkAgBRDjDSIEBEAgBCgCAEENRg0BC0EDIQcgBRDjDSIEDQEMAwsgA0FAayABELQGIAMoAkAiCEGAgICAeEcEQCADQegAaiADQcwAaikCADcDACADIAMpAkQ3A2BBAiEHDAMLIAMoAkQhBAwBCwJAAkAgBCgCAEEOaw4CAwABCyABKAIoIQQgAUElNgIoIAEgASkDQDcDeCADQcwAaiABQTRqKQIANwIAIANB1ABqIAFBPGooAgA2AgAgAyABKQIsNwJEIAMgBDYCQCADQUBrEMcKDAILIAUQuyENASADQcgAaiAFEJYLIANBCGogBRC4FCADQZDE4AA2AkQgA0E0OgBAIAMoAgggAygCDCADQUBrEIEVIQQgBRDjDSICRQ0AIAIoAgBBJEcNACABIAEpA0A3A3ggASgCKCABQSU2AihBJEYEQCABIAEoAiwQhgwMAQtB5ezgAEEoQbj13wAQ9BcACyADQRBqEIwgDAELIAEoAnwhBUHYAEEIEKsgIgQgCDYCICAEQRhqIANBKGopAwA3AwAgBEEQaiADQSBqKQMANwMAIARBCGogA0EYaikDADcDACAEIAMpAxA3AwAgBEEkaiADQeAAakEhEPsGGiAEIAY6AFEgBEEAOgBQIAQgAiAFIAIgBUsbNgJMIAQgAiAFIAIgBUkbNgJIIAQgBzoARUEADAELQQELIQEgACAENgIEIAAgATYCACADQaABaiQAC5wIAgt/AX4jAEEwayIKJAACQAJAAkACQAJAIARBEE8EQCAGQQFrIQ8gAUEYaiEQIAEoAgQhDiABKAIADQEgBkUNBCAGIA5rIQsgASkDCCESIAEoAhAhDAJAAkADQCAGIAdqIARLDQYCQCACEPoXRQRAIAwgCCAIIAxJGyEJDAELIApBKGogByADIARBrPzBABCSHSAKQSBqIAIgECAKKAIoIAooAiwQ1Q4gCigCIEEBRw0HQQAhCCAMIQkgCigCJCAHaiIHIAZqIARLDQkLIAQgByAPaiIBTQRAIAEgBEG8/MEAEKwQAAsCQCASIAEgA2oxAACIQgGDUEUEQCAJIAYgBiAJSRshDSADIAdqIREgCSEBAn8CQANAAkAgASANRgRAIAwhAQwBCyABIAdqIARPDQUgASAFai0AACABIBFqLQAARw0CIAFBAWohAQwBCwsCQAJAA0AgASAITQ0CIAEgBk8NCCABIAdqIgkgBE8NASABIAVqLQAAIAEgEWotAABGBEAgAUEBayEBDAELCyALIQggDgwDCyAJIARB7PzBABCsEAALIAYgCE0NBiAEIAcgCGoiDUsEQCAFIAhqIQkgCyEIIA4gCS0AACADIA1qLQAARw0CGgwKCyANIARBjP3BABCsEAALQQAhCCABIAxrQQFqCyAHaiEHDAILIAYgB2ohB0EAIQgMAQsLIAQgByAJaiIAIAAgBEkbIARBzPzBABCsEAALIAEgBkHc/MEAEKwQAAsgCCAGQfz8wQAQrBAACyAKQQhqIAEoAiggASgCLCADIAQgBSAGEPYKIAooAgwhByAKKAIIIQgMBAsgBkUNAiABKAIQIgsgBiAGIAtJGyENIAEpAwghEiALQQFrIAZPIQwDQAJAIAYgB2ogBEsNACACEPoXBEAgCkEYaiAHIAMgBEGc/cEAEJIdIApBEGogAiAQIAooAhggCigCHBDVDiAKKAIQQQFHDQEgCigCFCAHaiIHIAZqIARLDQELAkAgBCAHIA9qIglLBEAgBiEBIBIgAyAJajEAAIhCAYNQDQEgAyAHaiEJIAshAQJAAkACQANAIAEgDUYEQCALIQEDQCABRQ0KIAFBAWshASAMDQUgASAHaiIJIARPDQMgASAFai0AACADIAlqLQAARg0ACyAOIQEMBgsgASAHaiAETw0CIAEgBWotAAAgASAJai0AAEYEQCABQQFqIQEMAQsLIAcgC2sgAWpBAWohBwwGCyAJIARB3P3BABCsEAALIAQgByALaiIAIAAgBEkbIARBvP3BABCsEAALIAEgBkHM/cEAEKwQAAsgCSAEQaz9wQAQrBAACyABIAdqIQcMAQsLDAMLQQEhCAwCC0EAIQgMAQtBASEICyAAIAg2AgAgACAHNgIEIApBMGokAAuUCQEJfyMAQfAAayIFJAAgBUHUAGogAxDiGCAFKAJYIQcgBSgCVCEJAkAgBS0AXEEBRwR/QQIFIAUtAF0hBgJAIAFB2ARqIggQgioNACAIIAYQ3BVFDQAgBSAGrUIghkIEhDcDYAwCCyABIAZqQdgAai0AAAsiCCEGAn8CQAJAAkAgCUEBaw4CAAECCyAGQQZqIQYMAQsgAS0AUUEBcUUEQCAFIAetQiCGQgKENwNgDAMLIAEoAvgEKALUAiAHSwRAIAdBBmwgBmpBDGohBgwBCyABEIMUDAELIAIoAoQBIAIoAogBIAZB9OTDABC3HygCAAsiBkEATgRAIAVBBTYCYCAFIAY2AmQMAQsgBSACNgJsIAUgATYCaCAFQeAAaiAFQegAaiAJIAcgCBDBAQsgBUHIAGogBUHgAGogAygCFCIGEKkOIAUoAkwhBwJAAkACQAJAAkACQAJAAkACQCAFKAJIRQRAIAMoAhAiCCAGRg0IIAZBAWshBiADKAIMIQogAygCCCEDQQAhCQJAA0AgBiAKTw0DIAVBQGsgASACIAcgAyAGaiINLQAAEIoOIAUoAkBBAXENBAJAIAUoAkQiB0H///8/TQ0AIAdBgICAwABxRQRAIAdBgICAgARxDQogB0GAgICAAnFFDQEgACANLQAAIAYQ7RoQmA82AgggAEKCgICAEDcCAAwNC0EBIQkgBkEBaiELIAEgAiAHQQAQiw4hDAsgBiAIRg0BIAZBAWsiBiAETw0ACyAAQgI3AgAMCgsCQCAIRQRAIAVBKGogASACIAcQqA5BACEDIAVBIGogBSgCKCAFKAIsQQAQnx0gBSgCJCEGIAUoAiANASAGQYCAgMAAcUUNBwwGCyAFQThqIAEgAiAHIAMgCEEBayIEai0AACIKEIoOIAVBMGogBSgCOCAFKAI8IAgQnx0gBSgCNCEGIAUoAjANACAIIQMgBkGAgIDAAHENBSAGQYCAgIACcUUNBiAKIAQQ7RohBgwECyAGDQMMBQsgACAHEN4mDAgLIAYgCkHQ6MMAEKwQAAsgACAGEPQcEN4mDAYLIAAgBhDeJgwFC0EBIQkgASACIAZBABCLDiEMIAMhCwsgCUUgB0GAgICABHFyDQAgCCALSQ0BCyAAIAs2AgggACAMNgIEIAAgCTYCAAwCCyAAQgI3AgAMAQsCQAJAAkACQAJAAkAgBkUEQCAFQQhqIAEgAiAHEKgOQQAhBiAFIAUoAgggBSgCDEEAEJ8dIAUoAgQhByAFKAIADQEgB0GAgIDAAHFFDQYMBQsgBkEBayIEIAMoAgwiCE8EQCAEIAhB4OjDABCsEAALIAVBGGogASACIAcgAygCCCAEai0AACIDEIoOIAVBEGogBSgCGCAFKAIcIAYQnx0gBSgCFCEHIAUoAhANACAHQYCAgMAAcQ0EIAdBgICAgAJxDQEMAwsgB0UNAgwBCyADIAQQ7RohBwsgACAHEN4mDAMLQQAhBgwBCyAGIQRBASEGIAEgAiAHQQAQiw4hAwsgACAENgIIIAAgAzYCBCAAIAY2AgALIAVB8ABqJAAL+QgBAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkBBByAAKAIAIgFBDGsiAiACQSZPG0EBaw4kAAECGwMEBQYHCAkKCwwNDg8QERIaGxsTFBoVFh0bGx0XHRgZGgsgAEEEahDFFyAAKAIEIAAoAggQ7SkPCyAAQQRqEL4JIAAoAgQgACgCCBDiKQ8LIAApAwggAC0AHBC+IyAAKAIgIgAQoRwgACgCACAAQQRqKAIAEJQqIABBDGoQ7iYgACgCGEGAgICAeEcEQCAAQRhqEOkmCyAAKAI8EMIeIABBQGsQ9iYgAEHIAEEEENURDwsgAEEMahDYKA8LIABBBGoQ2CggAEEIahDYKA8LAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEODAABAgMEBQYHCAkLCgsLIABBCGoQ9SYMCgsgAEEIahCkHAwJCyAAQQhqEIUhDAgLIABBBGoQ2CgMBwsgAEEEahDqGAwGCyAAQQRqENooDAULIABBBGoQ2igMBAsgAEEEahDYKAwDCyAAQQRqENooDAILIABBBGoQlyoMAQsCQAJAIAAoAgQOAgABAgsgAEEIahDbIQwBCyAAQQhqENwhCyAAQThqENgoDwsgAEEIahCkHA8LIABBCGoQhSEPCyAAQQRqENgoIABBCGoQ2CggAEEMahDYKA8LIAAtABhBBUYEQCAAQRBqENgoCyAAQQRqEOYmIAAoAigQ2SgPCyAAQRBqENgoIAAoAgRBgICAgHhHBEAgAEEEahDmJgsgACgCIBDZKA8LIABBBGoQ6CYPCyAAKQMIEPkaDwsCQAJAAkACQCAAKAIIDgYAEBABAgMSCyAAKQMQIAApAyAQjCsPCyAAKQMgEO0mDwsgACkDGCAAKAIgEMAgDwsMDgsgAEEEahDTKA8LIABBBGoQ2CggACgCGBDZKCAAKAIIIgAQ0yggAEEgQQQQ1REPCyAAQQRqEJ0cIAAoAgQgACgCCBCQKgJAIAAoAhAiASgCAEGAgICAeEcEQCABEOkmDAELIAFBBGoQ2CgLIAFBGEEEENURIAAoAiAQwh4gAEEkahD2Jg8LIAApAwggAC0AHBC+IyAAKAIgIgAQ7iYgAEEMahC5ByAAKAIMIABBEGooAgAQkyogAEEwahD4JiAAKAI0EMIeIAAoAjgQ2SggAEEYahC9GSAAKAIYIABBHGooAgAQ7SkgAEHAAEEEENURDwsgAEEMahD4Jg8LIABBCGoQnhwPCyAAKQMIIAApAxgQiysPCyAAKAIEIgBBQGsQxhcgAEH8AGoQ5wsgACgCfCAAQYABaigCABCTKiAAKAJ4ENkoIABBkAFqEOwmIAAtADxBBkcEQCAAQRBqEMYXCyAAQaABQQgQ1REPCyAAQQRqEOwmDwsgAEEEahCXKg8LIAApAwgQ+RoPCyAAQQRqEOoYCw8LIABBBGoQ2CgPCyAAKQMQEPkaIAApAxgQ+RoPCyAAQQRqENooC80IAgd/AX4jAEFAaiIDJAAgAigCECEFIANBMGogASACKAIMIgZBABDVAQJAAkACQAJAAkACQAJAAkAgAy0AMEEERwRAIAMpAzAiCkL/AYNCBFINAQsCQAJAAkAgBkUNACADQTBqIAEgBhDUHCADLQAwQQRGDQAgAykDMCIKQv8Bg0IEUg0BCyADQQA2AhggA0EwaiABIANBGGpBsL/gAEEBELITIAMtADBBBEYNASADKQMwIgpC/wGDQgRRDQEgACAKNwIADAkLIAAgCjcCAAwICyACKAIEIQQgA0EwaiAGIAIoAggiB0GQghAgBxDuFyADLQAwQQVHBEAgAykDMCEKDAMLIAMoAjQaIAdFDQEgA0EBOgAmIANBADoAJyAHIQgDQCAIRQRAIANBMGogASAGIAVBkIIQIAkgCkIgiKcQ2AEgAy0AMEEERg0DIAMpAzAiCkL/AYNCBFINBAwDCyADIAo3AjQgAyAJNgIwIANBEGogBBCaFSADQShqIAEgBUGQghAgA0EwaiADKAIQIAMoAhQgA0EnaiADQSZqEJEEIAMtAChBBEcEQCADKQMoIgpC/wGDQgRSDQQLAkAgBCgCAEEHRg0AIANBMGogASAEEJ8FIAMtADBBBEYNACADKQMwIgpC/wGDQgRSDQQLAkAgAy0AJkUEQCADQQE6ACYMAQsgASgCREUNACADQTBqIAEgBCgCAEEHRwR/IANBCGogBBCQDCADKAIMBUEAC0EAEOwCIAMtADBBBEYNACADKQMwIgpC/wGDQgRSDQQLIAMtACcEQCABIAEoAixBAWs2AiwgA0EAOgAnCyAIQQFrIQggAyAEEJoVIARBKGohBEEBIQkgAykDACEKDAALAAsgACAKNwIADAYLIANBMGogASAFIAdFQZCCEBCtDyADLQAwQQRGDQEgAykDMCIKQv8Bg0IEUQ0BCyAKQv8Bg0IEUg0BCyADQTBqIAEgA0EYakHsteAAQQEQshMgAy0AMEEERwRAIAMpAzAiCkL/AYNCBFINAgsgAi0AGEUNAiADQTBqIAEgA0EYakHjteAAQQEQshMgAy0AMEEERg0CIAMpAzAiCkL/AYNCBFENAiAAIAo3AgAMAwsgACAKNwIADAILIAAgCjcCAAwBCwJAIAIoAhRFDQAgA0EwaiABIANBGGpB5LXgAEEBELITAkACQCADLQAwQQRHBEAgAykDMCIKQv8Bg0IEUg0BCyADQTBqIAEQ0BEgAy0AMEEERwRAIAMpAzAiCkL/AYNCBFINAgsgA0EwaiACQRRqIAEQ3g0gAy0AMEEERg0CIAMpAzAiCkL/AYNCBFENAiAAIAo3AgAMAwsgACAKNwIADAILIAAgCjcCAAwBCwJAAkAgBUUNACADQTBqIAEgBRDUHCADLQAwQQRGDQAgAykDMCIKQv8Bg0IEUg0BCyAAQQQ6AAAMAQsgACAKNwIACyADQUBrJAALoggCEn8GfiMAQUBqIgUkACADQQFrIQQgAwRAIANBAmshBiADQQFHBEAgAiAEQQJ0aigCACEMIAIgBkECdGo1AgAhGSAFQSRqIAEoAggiBCADayIQQQFqIgsQmBJBACADQQJ0IhFrIRIgDK0iGkIghiEbIAUoAiwhDSAFKAIoIQ4gBSgCJCETQQAhBgJAAkACQAJAA0AgC0UNBCAERQ0DIAEoAgQiByAEQQJ0akEEaygCACEJIAcgBCAEQQJrQcyswgAQtx81AgAhFwJ/IAYgDE8EQCAJrSAGrXwhFkF/DAELIAVBGGogBiAJIAwQphcgBTUCHCEWIAUoAhgLIQkgC0EBayELIBZCIIYgF4QhFwNAAkACQAJAIBZCgICAgBBaBEAgCa0hGAwBCyAXIAmtIhggGX5UDQELIAVBEGogByAEIAtB3KzCABDsGyAFQSRqIAUoAhAiBCAEIAUoAhRBAnRqIAIgAxDeIiAFKAI4IgQgBSgCNCIIayIHQQAgBCAHTxshByAIQQJ0IgQgBSgCLGohCCAFKAIkIARqIQRBfyEKA0AgBwRAIAQgBDUCACAKrXwgGCAINQIAfn1C/////x99IhY+AgAgFkIgiKchCiAHQQFrIQcgCEEEaiEIIARBBGohBAwBCwsCQCAGIApBf3NPDQAgBUEIaiABKAIEIAEoAgggC0HsrMIAEOwbIAUoAgwiFCADSQ0CIAlBAWshCSAFQSRqIAUoAggiBCAEIBFqIgogAiADEN4iQQAhBiAFKAI4IgQgBSgCNCIIayIHQQAgBCAHTxshByAIQQJ0IgggBSgCJGohBCAFKAIsIAhqIQgDQCAHBEAgBCAEKAIAIhUgCCgCAGoiDyAGQf8BcWoiBjYCACAPIBVJIAYgD0lyIQYgB0EBayEHIARBBGohBCAIQQRqIQgMAQsLIAZB/wFxRQ0AIBIgFEECdGohBANAIARFDQEgCiAKKAIAQQFqIgY2AgAgBEEEayEEIApBBGohCiAGRQ0ACwsgDSAQTQ0EIA4gC0ECdGogCTYCACABKAIIIgRFDQUgASAEQQFrIgQ2AgggASgCBCAEQQJ0aigCACEGDAMLIBcgG3whFyAWIBp8IRYgCUEBayEJDAELCwsgBUEANgI0IAVBATYCKCAFQbzc4AA2AiQgBUIENwIsIAVBJGpBwLDCABDDHQALIAsgDUH8rMIAEKwQAAtBjK3CABDgKQALQbyswgAQ4CkACyABIAYQthsgARDOCiAFQSxqIgIgDTYCACAFIA42AiggBSATNgIkIAVBJGoQzgogAEEIaiACKAIANgIAIAAgBSkCJDcCACAAQRRqIAFBCGooAgA2AgAgACABKQIANwIMIAVBQGskAA8LIAZBAUGsrMIAEKwQAAsgBEEAQZyswgAQrBAAC/EIAQ1/IwBBsAFrIgIkACACQTBqIgYgARCzASACKAI0IQMCQAJAAkAgAigCMCIFQYCAgIB4RwRAIAIoAjghBCACQQA2AhwgAkKAgICAgAE3AhQgAiAFNgIoIAIgAzYCICACIAMgBEEGdCIJaiINNgIsIAJB4ABqIQwgAkH0AGohByAGQQRyIQ5BBCEKQQghBgNAAkACQAJAAkACQAJAAkACQCACIAkEfyADKAIAIgtBB0cNASADQUBrBSANCzYCJCACQSBqEM8XAkACQCABQShqIgMQyg0iBQRAIAUoAgBBCkYNAQsgAkE4aiADEJEQIAIgAxCFFCACQcjl3wA2AjQgAkE0OgAwIAIoAgAgAigCBCACQTBqEIEVIQUgAxDKDSIDRQ0MIAMoAgBBJEYNAQwMCyABKALIAiEDIAFBJTYCyAIgASABKQPgAjcDmAMgAkE8aiABQdQCaikCADcCACACQcQAaiABQdwCaigCADYCACACIAEpAswCNwI0IAIgAzYCMCACQTBqEMYKIABBCGogAkEcaigCADYCACAAIAIpAhQ3AgAMDQsgASABKQPgAjcDmAMgASgCyAIgAUElNgLIAkEkRw0BIAEgASgCzAIQ/wsMCgsgA0FAayEFIAIgCzYCMCAOIANBBGoiBEE8EPsGGiALDgQFBAMCAQtB5ezgAEEoQajz3wAQ9BcACyACIAU2AiQgAkGkAWogAUEoaiIDEJEQIAJBCGogAxCFFCACQdcANgKgASACQbjz3wA2ApwBIAJBMDoAmAEgAigCCCACKAIMIAJBmAFqEIEVIQUCQCADEMoNIgNFDQAgAygCAEEkRw0AIAEgASkD4AI3A5gDIAEoAsgCIAFBJTYCyAJBJEYEQCABIAEoAswCEP8LDAELQeXs4ABBKEGQ9N8AEPQXAAsgAEGAgICAeDYCACAAIAU2AgQgDBDuJiACQTBqEJ0SIAJBIGoQzxcMCAsgAkGIAWogBEEYaigCADYCACACQYABaiAEQRBqKQIANwMAIAJB+ABqIARBCGopAgA3AwAgAiAEKQIANwNwDAMLIAJBgAFqIARBEGopAgA3AwAgAkH4AGogBEEIaikCADcDACACIAQpAgA3A3AMAgsgAkGIAWogBEEYaigCADYCACACQYABaiAEQRBqKQIANwMAIAJB+ABqIARBCGopAgA3AwAgAiAEKQIANwNwDAELIAcgAykCCDcCACAHQRhqIANBIGopAgA3AgAgB0EQaiADQRhqKQIANwIAIAdBCGogA0EQaikCADcCAAsgAigCFCAIRgRAIAJBFGoQ0xcgAigCGCEGCyAGIApqIgNBBGsgCzYCACADIAJB8ABqQSQQ+wYaIAIgCEEBaiIINgIcIAwQ7iYgAigCMEEETwRAIAJBMGoQnRILIAlBQGohCSAKQShqIQogBSEDDAALAAsgAEGAgICAeDYCACAAIAM2AgQMAgsgAEGAgICAeDYCACAAIAU2AgQLIAJBFGoQ8CYLIAJBsAFqJAAL4AgBDX8jAEGwAWsiAiQAIAJBMGoiBiABELQBIAIoAjQhAwJAAkACQCACKAIwIgVBgICAgHhHBEAgAigCOCEEIAJBADYCHCACQoCAgICAATcCFCACIAU2AiggAiADNgIgIAIgAyAEQQZ0IglqIg02AiwgAkHgAGohDCACQfQAaiEHIAZBBHIhDkEEIQpBCCEGA0ACQAJAAkACQAJAAkACQAJAIAIgCQR/IAMoAgAiC0EHRw0BIANBQGsFIA0LNgIkIAJBIGoQzxcCQAJAIAFBKGoiAxDjDSIFBEAgBSgCAEEKRg0BCyACQThqIAMQlgsgAiADELgUIAJByOXfADYCNCACQTQ6ADAgAigCACACKAIEIAJBMGoQgRUhBSADEOMNIgNFDQwgAygCAEEkRg0BDAwLIAEoAighAyABQSU2AiggASABKQNANwN4IAJBPGogAUE0aikCADcCACACQcQAaiABQTxqKAIANgIAIAIgASkCLDcCNCACIAM2AjAgAkEwahDHCiAAQQhqIAJBHGooAgA2AgAgACACKQIUNwIADA0LIAEgASkDQDcDeCABKAIoIAFBJTYCKEEkRw0BIAEgASgCLBCGDAwKCyADQUBrIQUgAiALNgIwIA4gA0EEaiIEQTwQ+wYaIAsOBAUEAwIBC0Hl7OAAQShBqPPfABD0FwALIAIgBTYCJCACQaQBaiABQShqIgMQlgsgAkEIaiADELgUIAJB1wA2AqABIAJBuPPfADYCnAEgAkEwOgCYASACKAIIIAIoAgwgAkGYAWoQgRUhBQJAIAMQ4w0iA0UNACADKAIAQSRHDQAgASABKQNANwN4IAEoAiggAUElNgIoQSRGBEAgASABKAIsEIYMDAELQeXs4ABBKEGQ9N8AEPQXAAsgAEGAgICAeDYCACAAIAU2AgQgDBDuJiACQTBqELISIAJBIGoQzxcMCAsgAkGIAWogBEEYaigCADYCACACQYABaiAEQRBqKQIANwMAIAJB+ABqIARBCGopAgA3AwAgAiAEKQIANwNwDAMLIAJBgAFqIARBEGopAgA3AwAgAkH4AGogBEEIaikCADcDACACIAQpAgA3A3AMAgsgAkGIAWogBEEYaigCADYCACACQYABaiAEQRBqKQIANwMAIAJB+ABqIARBCGopAgA3AwAgAiAEKQIANwNwDAELIAcgAykCCDcCACAHQRhqIANBIGopAgA3AgAgB0EQaiADQRhqKQIANwIAIAdBCGogA0EQaikCADcCAAsgAigCFCAIRgRAIAJBFGoQ0xcgAigCGCEGCyAGIApqIgNBBGsgCzYCACADIAJB8ABqQSQQ+wYaIAIgCEEBaiIINgIcIAwQ7iYgAigCMEEETwRAIAJBMGoQshILIAlBQGohCSAKQShqIQogBSEDDAALAAsgAEGAgICAeDYCACAAIAM2AgQMAgsgAEGAgICAeDYCACAAIAU2AgQLIAJBFGoQ8CYLIAJBsAFqJAALnAkCBH8DfiMAQUBqIgMkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkBBByABKAIAIgJBDGsiBCAEQSZPG0EBaw4kAAECAwQFBgcICQoLDB8fDQ4PEBEfEhMUHx8VFhcYGRobHB8dHwsgASgCDEEEdCEEIAEoAgghAgNAIARFDR4gAigCAEECRwRAIAJBDGogABCFLQsgAkEQaiECIARBEGshBAwACwALIAFBBGogABDzCQwcCyABQQhqIAAQki0MGwsgAUEEaiAAEIUtDBoLIAFBDGogABCFLQwZCyABQQRqIAAQhS0gAUEIaiAAEIUtDBgLIAFBOGoCQAJAAkACQAJAAkACQAJAAkACQAJAIAJBAWsOCwABAgMEBQYHCAoJCgsgAUEIaiAAEKUfDAkLIAFBCGogABCUIgwICyABQQRqIAAQhS0MBwsgAUEEaiAAEMAcDAYLIAFBBGogABCFLQwFCyABQQRqIAAQhS0MBAsgAUEEaiAAEIUtDAMLIAFBBGogABCFLQwCCyABQQRqIAAQhS0MAQsgAUEIaiECAkACQCABKAIEQQFrDgIBAgALIAIgABCVFwwBCyACIAAQvw4LIAAQhS0MFwsgAUEIaiAAEKUfDBYLIAFBCGogABCUIgwVCyABQQRqIAAQhS0gAUEIaiAAEIUtIAFBDGogABCFLQwUCyABLQAYQQVGBEAgAUEQaiAAEIUtCyABQQRqIAAQhhkMEwsgAUEQaiAAEIUtIAEoAgRBgICAgHhGDRIgAUEEaiAAEIYZDBILIAFBBGogABC2GgwRCyABQQRqIAAQthoMEAsgAUEEaiAAEIUtIAEoAgggABC2GgwPCyABKAIMQShsIQIgASgCCCEEA0AgAgRAIAQgABC2FCACQShrIQIgBEEoaiEEDAELCyABKAIQIgIoAgBBgICAgHhHBEAgAiAAELgaDA8LIAJBBGogABCFLQwOCyABQQhqIAAQky0MDQsgASgCDEUNDCABQQxqIAAQhS0MDAsgAUEEaiAAEIUtDAsLIAFBBGogABCFLQwKCyABQQhqEPUhDAkLIAEoAgQgABClDAwICyABQQRqIAAQzw8MBwsgAUEEaiAAEIUtDAYLIAFBBGogABCFLQwFCyABQQRqIAAQhS0MBAsgAUEEaiAAEIUtDAMLIAFBBGogABCFLQwCCyABQQRqIAAQhS0MAQsgAUEEaiAAEMAcCyABKAIAIQILAkAgAkEaRw0AIAAoAgQgA0EYaiAAKAIAIgApAwAgAEEIaiIEKAIAEMAjIAMpAxghBiADKAIgIQUgAyABKQMIEPwaIgc3AzggAyAFNgIwIAMgBjcDKCADQShqIgUQjQkgBiAHEIsrRQ0AIANBCGogACkDACAEKAIAEMAjIAMoAhAhACADKQMIIAUgAUEIahDWGyADKQMoIQcgAykDMCEIIAAQxBghACABEL8CIAEgADYCKCABQgA3AyAgASAINwMYIAEgBzcDECABQQA2AgggAUEUNgIACyADQUBrJAAL0AgBCX8jAEGgB2siBSQAAkAgAS0A+AJBAkcEQCAAQgA3AgAMAQsCQCABQShqIgoQ4w0iCARAIAgoAgAiB0ECRwRAIAdBJEcNAiABIAEpA0A3A3ggASgCKCABQSU2AihBJEYEQCABKAIsIQlBASEGDAMLQeXs4ABBKEGA4d8AEPQXAAsCQAJAQQQgCC0ACEECa0H/AXEiByAHQQRPGw4FAAMDAwEDCyAILQAJIgdBHkYNACAHQRNHDQILIAVBCGogCEEIahCADiADQQN0IQkgA0H/////AXEhCCAFQRBqIQsgAiEHAkACQANAAkACQCAJBEAgBygCBCEMIAcoAgAgBSALIAUoAgwgBSgCCBsQlAwgDCAFKAIAIAUoAgQQ6x9FDQEgBiEICyAFKAIIBEAgBSkDEBD5GgsgCUUNAyAERQ0BIAoQ4w0iBEUNASAEKAIAQQJHDQEgBC0ACA0BIAQtAAlBB0cNASAKEOESIgRFDQEgBCgCAEENRw0BIABCADcCAAwHCyAJQQhrIQkgBkEBaiEGIAdBCGohBwwBCwsgAS0A+AJBAkcNACABLQCCAyEHIAVBCGogARDRAiAFQQE6ALMDIAUgASkAgwM3ALQDIAUgASkAiwM3ALwDIAUgASkAkwM3AMQDIAUgASgAmwM2AMwDIAVBiAFqIAVBswNqEMkIIAVB5ANqIAVBPGopAgA3AgAgBUHsA2ogBUHEAGooAgA2AgAgBSgCMCEEIAVBJTYCMCAFIAUpA0g3A4ABIAUgBSkCNDcC3AMgBSAENgLYAyAFQdgDahDHCgJAAkAgBUEwaiIEELshDQACQAJAIAQQ4w0iBgRAIAYoAgBBC0YNAQsgBBDjDSIGBEAgBigCAEENRg0BCwJAIAQQ4w0iBkUNACAGKAIAQRRHDQAgBi0ABEENRg0BCyAEEOMNIgYEQCAGKAIAQQdGDQELIAQQ4w0iBgRAIAYoAgBBBEYNAQsgBBDjDSIGBEAgBigCAEECRg0BCyAEEOMNIgYEQCAGKAIAQRtGDQELIAQQ4w0iBgRAIAYoAgBBHUYNAQsgBBDjDSIERQ0CIAVBADoA0AMgBSAEKAIAQR5GIgQ6ANEDIAQNAQwDCyAFQYACOwHQAwsgBUHYA2oiBCAFQQhqQagDEPsGGiABEIQQIAEgBEGoAxD7BiEEIAUgBzoAgwcgBSAEKQCDAzcAhAcgBSAEKQCLAzcAjAcgBSAEKQCTAzcAlAcgBSAEKACbAzYAnAcgAUGAAWogBUGDB2oQyQggBUHQA2oQjCQgAyAITQ0DIABBADYCACAAIAIgCEEDdGopAgA3AgQMBgsgBUEAOwHQAwsgBUHQA2oQjCQgBUEIahCEEAsgAEIANwIADAMLIAggA0GQ4d8AEKwQAAsgASgC2AIhASAFQQA6ANgDIAEgASAFQdgDahCBFSEJQQEhBgsgACAGNgIAIAAgCTYCBAsgBUGgB2okAAvlCAIGfwF+IwBB8ABrIgMkACABKAIEIQUgA0EwaiACIAEoAgAiBkEAENUBAkACQAJAAkACQAJAIAMtADBBBEcEQCADKQMwIglC/wGDQgRSDQELIAItAE1FBEACQAJAIAEpAwhQRQRAIANBGGogAUEIaiIBEJQMAkAgAygCHEEDSQ0AIAItAFFBCE8NACADQRBqIAEQlAwgAygCECADKAIUQd8AENYcDQILIANBCGogARCUDCADQTBqIAIgBiAFIAMoAgggAygCDBCTDyADLQAwQQRGDQggAykDMCIJQv8Bg0IEUQ0IIAAgCTcCAAwJCyADQTBqIAFBEGoQwg0gA0HgAGogAiAGIAUgAygCNCIBIAMoAjgQkw8gAy0AYEEERg0BIAMpA2AiCUL/AYNCBFENASAAIAk3AgAgAygCMCABENopDAgLIAMgARCUDCADQTBqIAMoAgAgAygCBEHfAEEBQQAQtAsgA0HgAGogAiAGIAUgAygCNCIBIAMoAjgQkw8gAy0AYEEERwRAIAMpA2AiCUL/AYNCBFINBAsgAygCMCABENopDAYLIAMoAjAgARDaKSADQTBqIAIgBiAFQZy54ABBARCTDyADLQAwQQRGDQUgAykDMCIJQv8Bg0IEUQ0FIAAgCTcCAAwGCyABKAIQIQQgA0EwaiIIEJIMIANBAjoAPCAEIAgQ5RIgAygCMCADKAI0EN8pQf8BcUECSQ0CIAgQkgwgA0EAOgA8IAQgA0EwahDlEiADKAIwIAMoAjQQ3ylB/wFxQQFGBEAgA0EkaiABQRBqEMINDAQLEPgiIQEgBC0ADCEHIANBMGoiCCAEQQRqKAIAIARBCGooAgAQxBUgASADKQIwNwIAIAMgBzoAPCABQQhqIgQgA0E4aikCADcCACADQegAaiAEKAIANgIAIANB7wBqIAFBD2otAAA6AAAgAyABKQIANwNgIAMgAS8ADTsAbSADQQIgAS0ADGs6AGwgA0HUAGoiBCADQeAAahCmByADQQU2AlAgA0EBNgI0IANBoLngADYCMCADQgE3AjwgAyAENgJMIAMgA0HMAGo2AjggA0EkaiAIEO0LIAMoAlQgAygCWBDaKSADKAJgIAMoAmQQ3ykgAUEQQQQQ1REMAwsgACAJNwIADAQLIAAgCTcCACADKAIwIAEQ2ikMAwsgA0HgAGoiASAEEKYHIANBBTYCWCADQQE2AjQgA0GsueAANgIwIANCATcCPCADIAE2AlQgAyADQdQAajYCOCADQSRqIANBMGoQ7QsgAygCYCADKAJkENopCyADQTBqIAIgBiAFIAMoAigiASADKAIsEJMPAkAgAy0AMEEERwRAIAMpAzAiCUL/AYNCBFINAQsgA0EwaiACIAYgBUGcueAAQQEQkw8gAy0AMEEERwRAIAMpAzAiCUL/AYNCBFINAQsgAygCJCABENopDAELIAAgCTcCACADKAIkIAEQ2ikMAQsgAEEEOgAACyADQfAAaiQAC9oJAQJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQEEHIAAoAgAiACgCACIBQQxrIgIgAkEmTxtBAWsOJAABAgMEBQYHCAkKCwwNDg8QERITIhQVFhciGBkaGxwdHh8gISILIABBBGoQxRcgACgCBCAAQQhqKAIAEO0pDCELIABBBGoQvgkgACgCBCAAQQhqKAIAEOIpDCALIAApAwggAEEcai0AABC+IyAAKAIgEMYYDB8LIABBBGoQtAIMHgsgAEEMahC0AgwdCyAAQQRqELQCIABBCGoQtAIMHAsCQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAQ4MAAECAwQFBgcICQsKCwsgAEEIahDpJwwKCyAAQQhqEMgcDAkLIABBCGoQriEMCAsgAEEEahC0AgwHCyAAQQRqEI4ZDAYLIABBBGoQnikMBQsgAEEEahCeKQwECyAAQQRqELQCDAMLIABBBGoQnikMAgsgAEEEahCwKgwBCwJAAkAgACgCBA4CAAECCyAAQQhqEKYiDAELIABBCGoQpyILIABBOGoQtAIMGwsgAEEIahDIHAwaCyAAQQhqEK4hDBkLIABBBGoQtAIgAEEIahC0AiAAQQxqELQCDBgLIAAtABhBBUYEQCAAQRBqELQCCyAAQQRqEOYmIAAoAigQ2SgMFwsgAEEQahC0AiAAKAIEQYCAgIB4RwRAIABBBGoQ5iYLIAAoAiAQ2SgMFgsgAEEEahDoJgwVCyAAKQMIEPkaDBQLAkACQAJAAkACQCAAKAIIDgYBGBgCAwQACyAAKQMQEPkaIAApAxgQ+RoMFwsgACkDECAAQSBqKQMAEIwrDBYLIAApAyAQ7SYMFQsgAEEYaikDACAAQSBqKAIAEMAgDBQLIAApAxAQ+RogACkDGBD5GgwTCyAAQQRqENMoDBILIABBBGoQtAIgACgCGBDZKCAAKAIIIgEQ0yggAUEgQQQQ1REMEQsgAEEEahCdHCAAKAIEIABBCGooAgAQkCoCQCAAKAIQIgEoAgBBgICAgHhHBEAgARDpJgwBCyABQQRqELQCCyAAKAIQQRhBBBDVESAAKAIgEMIeIABBJGoQ6icMEAsgACkDCCAAQRxqLQAAEL4jIAAoAiAiARDuJiABQQxqELkHIAEoAgwgAUEQaigCABCTKiABQTBqEN0nIAEoAjQQwh4gASgCOBDZKCABQRhqEL0ZIAEoAhggAUEcaigCABDtKSAAKAIgQcAAQQQQ1REMDwsgAEEMahDdJwwOCyAAQQRqELQCDA0LIABBBGoQtAIMDAsgAEEIahCeHAwLCyAAKQMIIABBGGopAwAQiysMCgsgACgCBCIBQUBrEMYXIAFB/ABqEOcLIAEoAnwgAUGAAWooAgAQkyogASgCeBDZKCABQZABahDsJiABLQA8QQZHBEAgAUEQahDGFwsgAUGgAUEIENURDAkLIABBBGoQ7CYMCAsgAEEEahCeKQwHCyAAQQRqELQCDAYLIABBBGoQtAIMBQsgAEEEahCeKQwECyAAQQRqELAqDAMLIABBBGoQnikMAgsgACkDCBD5GgwBCyAAQQRqEI4ZCyAAQcAAQQgQ1REL6wcBCn8jAEHgAGsiAyQAIANBGGogASACEOQRIAMoAhwiB0EHcSIKIAdBA3YiCWoiAUEHcSELIAMoAhgiBCABQQN2aiEMIAQhAgJAA0AgAiAMRiAHQQdxIgYgC0ZxRQRAIAIgBkEBaiIHQQN2aiIBRQ0CIAUgCCACLQAAIAZ2QQFxGyEIIAVBAWohBSABIQIMAQsLIAMgCEEBaiIBNgJcIAMgCTYCICABIAlBACAEG00EQCABQQN0IApBACAEG3IhByAEQQEgBBshCANAAkAgB0EHSwRAIANBEGogCCAHQQdxIgRBBiAHQQN2IgEgAUEGTxsiAhCBHiADKAIQIQkgA0EIaiAIIAIgBGoiBEEDdmogBEEHcSABIAJrEIEeIAMoAgwhByADKAIIIQggAyADKAIUIgJBA3YiATYCKCADQQQ2AiQgA0GkpNgANgIgIAFBAWtBCEkEQCABQXlsIAJqIgRBA3YgBEEHcUEAR2ohBgJ/IAJBB3EiBSACQQhJDQAaQQggBWsiAiABSQRAIAEgAmtBB3EiAUVBA3QgAXIMAQsgASAFagshBCADQcQAaiAJIAYgBSAEAn9BggIgBkUNABpBgwJBhAIgBEH/AXFBCEYbIAVFDQAaQYUCIARB/wFxQQhGDQAaQYYCQYcCIAZBAUYbCxEHACADKAJEIgZFBEAgAy0ATCADKAJILQAAcSADLQBNQQdxdiEBDAMLIAMoAlQiAQR/IAEtAAAgAy0AWHEFQQALIQEgAygCSCECIAMoAlAhBCADKAJMIQUgBkEBayEGA0AgAgRAIAEgAiAGai0AAHIhASACQQFrIQIMAQUgBUUNBCABQQggBEEIdiIBQf8BcWsiAkEAIAJBCEkbdCAEIAUtAABxIAFBB3F2ciEBDAQLAAsACyADQQQ2AjAgA0GYoNgANgIsIANCAzcCOCADQQc2AlggA0EHNgJQIANBAjYCSCADQQg2AlwgAyADQcQAajYCNCADIANBKGo2AlQgAyADQdwAajYCTCADIANBIGo2AkQgA0EsakGYodgAEMMdAAsgA0HgAGokAA8LAkACQCABQf8BcSIEQRpPBEAgBEE0SQ0BAkACQCAEQT5PBEBBKyECIARBPmsOAgUCAQsgAUEEayECDAQLQcOl2ABBDBCEKwALQS8hAgwCCyABQcEAaiECDAELIAFBxwBqIQILIAAgAhD4HAwACwALIANBAjYCSCADQcCh2AA2AkQgA0ICNwJQIANBBzYCOCADQYgCNgIwIAMgA0EsajYCTCADIANBIGo2AjQgAyADQdwAajYCLCADQcQAakG0otgAEMMdAAtB7J3YABDgKQAL1wkBAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAQQcgACgCACIAKAIAIgFBDGsiAiACQSZPG0EBaw4kAAECAwQFBgcICQoLDA0ODxAREhMiFBUWFyIYGRobHB0eHyAhIgsgAEEEahDFFyAAKAIEIABBCGooAgAQ7SkMIQsgAEEEahC+CSAAKAIEIABBCGooAgAQ4ikMIAsgACkDCCAAQRxqLQAAEL4jIAAoAiAQxxgMHwsgAEEEahC2AgweCyAAQQxqELYCDB0LIABBBGoQtgIgAEEIahC2AgwcCwJAAkACQAJAAkACQAJAAkACQAJAAkACQCABDgwAAQIDBAUGBwgJCwoLCyAAQQhqEPAnDAoLIABBCGoQyxwMCQsgAEEIahCvIQwICyAAQQRqELYCDAcLIABBBGoQjxkMBgsgAEEEahCiKQwFCyAAQQRqEKIpDAQLIABBBGoQtgIMAwsgAEEEahCiKQwCCyAAQQRqELEqDAELAkACQCAAKAIEDgIAAQILIABBCGoQqiIMAQsgAEEIahCrIgsgAEE4ahC2AgwbCyAAQQhqEMscDBoLIABBCGoQryEMGQsgAEEEahC2AiAAQQhqELYCIABBDGoQtgIMGAsgAC0AGEEFRgRAIABBEGoQtgILIABBBGoQ5iYgACgCKBDZKAwXCyAAQRBqELYCIAAoAgRBgICAgHhHBEAgAEEEahDmJgsgACgCIBDZKAwWCyAAQQRqEOgmDBULIAApAwgQ+RoMFAsCQAJAAkACQAJAIAAoAggOBgEYGAIDBAALIAApAxAQ+RogACkDGBD5GgwXCyAAKQMQIABBIGopAwAQjCsMFgsgACkDIBDtJgwVCyAAQRhqKQMAIABBIGooAgAQwCAMFAsgACkDEBD5GiAAKQMYEPkaDBMLIABBBGoQ0ygMEgsgAEEEahC2AiAAKAIYENkoIAAoAggiARDTKCABQSBBBBDVEQwRCyAAQQRqEJ0cIAAoAgQgAEEIaigCABCQKgJAIAAoAhAiASgCAEGAgICAeEcEQCABEOkmDAELIAFBBGoQtgILIAAoAhBBGEEEENURIAAoAiAQwh4gAEEkahDuJwwQCyAAKQMIIABBHGotAAAQviMgACgCICIBEO4mIAFBDGoQuQcgASgCDCABQRBqKAIAEJMqIAFBMGoQ7ScgASgCNBDCHiABKAI4ENkoIAFBGGoQvRkgASgCGCABQRxqKAIAEO0pIAFBwABBBBDVEQwPCyAAQQxqEO0nDA4LIABBBGoQtgIMDQsgAEEEahC2AgwMCyAAQQhqEJ4cDAsLIAApAwggAEEYaikDABCLKwwKCyAAKAIEIgFBQGsQxhcgAUH8AGoQ5wsgASgCfCABQYABaigCABCTKiABKAJ4ENkoIAFBkAFqEOwmIAEtADxBBkcEQCABQRBqEMYXCyABQaABQQgQ1REMCQsgAEEEahDsJgwICyAAQQRqEKIpDAcLIABBBGoQtgIMBgsgAEEEahC2AgwFCyAAQQRqEKIpDAQLIABBBGoQsSoMAwsgAEEEahCiKQwCCyAAKQMIEPkaDAELIABBBGoQjxkLIABBwABBCBDVEQvoCAIGfwF+IwBB8ABrIgMkAAJAAkACQAJAIAIoAggiBARAIAEoAggiBkUNAQJAAkACQAJAIARBAUYEQCACKAIEIgJBAUHEntgAQQEQ6R5FDQEgACABKAIEIAYQxBUgAEEUakH8ruAAKAIANgIAIABB9K7gACkCADcCDAwJC0F/IAQgBkcgBCAGSxsiBQR/IAUFIAEoAgQiBSAFIAZBAnRqIAIoAgQiBSAFIARBAnRqENIQC0H/AXEOAgIDAQsgA0E8aiABKAIEIAYQxBUgAkEBQQBB/KvCABC3HygCACIGRQ0FIAMoAkQhASADKAJAIQQCQCAGQYCABE8EQCABQQJ0IQIgBEEEayEEQQAhAQNAIAJFDQIgA0EYaiABIAIgBGoiBSgCACAGEKYXIAMoAhwhASAFIAMoAhg2AgAgAkEEayECDAALAAsgAUECdCECIARBBGshBEEAIQEDQCACRQ0BIANBEGogAUEQdCACIARqIgUoAgAiAUEQdnIgBhDrHCADKAIQIQcgA0EIaiABQf//A3EgAygCFEEQdHIgBhDrHCADKAIMIQEgBSADKAIIIAdBEHRyNgIAIAJBBGshAgwACwALIANB6ABqIANBxABqKAIANgIAIAMgAykCPDcDYCADQeAAahDOCiADQdAAakH8ruAAKAIANgIAIANB9K7gACkCADcDSCABrSEJA0AgCVBFBEAgA0HIAGogCacQthtCACEJDAELCyAAIAMpA0g3AgwgAEEUaiADQdAAaigCADYCACAAQQhqIANB6ABqKAIANgIAIAAgAykDYDcCAAwHCyAAQQxqIAEoAgQgBhDEFSAAQQhqQfyu4AAoAgA2AgAgAEH0ruAAKQIANwIADAYLQbCY5AAtAAAaQQQQYCIBRQ0EIABBATYCCCAAIAE2AgQgAEEBNgIAIAFBATYCACAAQfSu4AApAgA3AgwgAEEUakH8ruAAKAIANgIADAULIAIoAgQiByAEQQJ0akEEaygCACIIZyIFRQRAIANByABqIgIgASgCBCAGEMQVIAAgAiAHIAQQrgIMBQsgA0EwaiIEIAEgBRCBFCADQTxqIAIgBRCBFCADQcgAaiAEIAMoAkAiASADKAJEEK4CIABBCGogA0HQAGooAgA2AgAgACADKQJINwIAIANBKGogA0HcAGooAgA2AgAgAyADKQJUNwMgIAMoAjwgARDfKSAAQQxqIQAgAygCJCADQSBqIgEgAygCIEGAgICAeEYbKAIIBEAgACABIAhFIAVBH3EQuwYMBQsgACADQSBqEPcWDAQLIANBADYCWCADQQE2AkwgA0Hkq8IANgJIIANCBDcCUCADQcgAakGMrMIAEMMdAAsgAEEIakH8ruAAKAIAIgE2AgAgAEH0ruAAKQIAIgk3AgAgACAJNwIMIABBFGogATYCAAwCCyADQQA2AlggA0EBNgJMIANB5KvCADYCSCADQgQ3AlAgA0HIAGpB7KvCABDDHQsACyADQfAAaiQAC4QJAQV/IwBBoAFrIgQkACABQShqIgUQ3iAhByAEQcgAaiABQQEQuQEgBCgCTCEGAkACQAJAAkACQAJAAkAgBCgCSCIIQYCAgIB4RwRAIAQgBCgCUDYCJCAEIAY2AiAgBCAINgIcAkACQAJAIAUQ4w0iBkUNACAGKAIAQQJHDQAgBi0ACEECRw0AIAYtAAlBHEYNAQsgBRDjDSIGRQ0BIAYoAgBBAkcNASAGLQAIQQJHDQEgBi0ACUEbRw0BCyAFEN4gIQICQAJAIAUQ4w0iA0UNACADKAIAQQJHDQAgAy0ACEECRw0AIAMtAAlBHEcNACAFEOESIgNFDQAgAygCAEEJRw0AIARBEGogARCRBiAEKAIUIQMgBCgCEA0BIAUQ4w0iBkUNCAJAAkAgBigCAEEOaw4CCgEACyAFELshGgwJCyABKAIoIQUgAUElNgIoIAEgASkDQDcDeCAEQdQAaiABQTRqKQIANwIAIARB3ABqIAFBPGooAgA2AgAgBCABKQIsNwJMIAQgBTYCSCAEQcgAahDHCgwICwJAIAUQ4w0iA0UNACADKAIAQQJHDQAgAy0ACEECRw0AIAMtAAlBHEcNACAFEOESIgNFDQAgAygCAEEGRw0AIARBCGogARCRBiAEKAIMIQMgBCgCCA0EIAUQ4w0iBkUNBwJAAkAgBigCAEEOaw4CCQEACyAFELshGgwICyABKAIoIQUgAUElNgIoIAEgASkDQDcDeCAEQdQAaiABQTRqKQIANwIAIARB3ABqIAFBPGooAgA2AgAgBCABKQIsNwJMIAQgBTYCSCAEQcgAahDHCgwHCyAEIAUQuBQgBCgCBCECIAQoAgAgBEHHADoASCACIARByABqEIEVIQIgBRDjDSIDRQ0FIAMoAgBBJEcNBSABIAEpA0A3A3ggASgCKCABQSU2AihBJEcNBCABIAEoAiwQhgwMBQsgAEETNgIAIAAgAzYCBAwHCyAEQQA6ADsgBEEBOgBHIAQgAS0AnQM6AEYgBCABKQGCAzcAKyAEIAEpAJMDNwA8IAQgAS8AmwM7AEQgBCABQYoDaiIFKQEANwAzIARBlQFqIAFBlwNqKQAANwAAIARBkAFqIAFBkgNqKQEANwIAIARBiAFqIAUpAQA3AgAgBCABKQGCAzcCgAEgAUGAAWogBEErahDJCCAEIAE2AnwgBEHIAGoiBSABIAcgAiADIARBHGoQKwJAIAQoAkhBE0cEQCAAIAVBMBD7BhoMAQsgACAEKAJMNgIEIABBEzYCAAsgBEH8AGoQoyYMBwsgAEETNgIAIAAgBjYCBAwGCyAAQRM2AgAgACADNgIEDAQLQeXs4ABBKEGM398AEPQXAAsgAEETNgIAIAAgAjYCBAwCCyAAIAM2AgQgAEESNgIAIAAgAiABKAJ8IgEgASACSRs2AgwgACACIAEgASACSxs2AggMAQsgACADNgIEIABBEjYCACAAIAIgASgCfCIBIAEgAkkbNgIMIAAgAiABIAEgAksbNgIICyAEQRxqEO4mCyAEQaABaiQAC9IIAQl/IwBBkAdrIgUkAAJAIAEtAKACQQJHBEAgAEIANwIADAELAkAgAUEoaiIKEMoNIggEQCAIKAIAIgdBAkcEQCAHQSRHDQIgASABKQPgAjcDmAMgASgCyAIgAUElNgLIAkEkRgRAIAEoAswCIQlBASEGDAMLQeXs4ABBKEGA4d8AEPQXAAsCQAJAQQQgCC0ACEECa0H/AXEiByAHQQRPGw4FAAMDAwEDCyAILQAJIgdBHkYNACAHQRNHDQILIAVBCGogCEEIahCADiADQQN0IQkgA0H/////AXEhCCAFQRBqIQsgAiEHAkACQANAAkACQCAJBEAgBygCBCEMIAcoAgAgBSALIAUoAgwgBSgCCBsQlAwgDCAFKAIAIAUoAgQQ6x9FDQEgBiEICyAFKAIIBEAgBSkDEBD5GgsgCUUNAyAERQ0BIAoQyg0iBEUNASAEKAIAQQJHDQEgBC0ACA0BIAQtAAlBB0cNASAKEK0TIgRFDQEgBCgCAEENRw0BIABCADcCAAwHCyAJQQhrIQkgBkEBaiEGIAdBCGohBwwBCwsgAS0AoAJBAkcNACABLQCqAiEHIAVBCGogARCjAyAFQQE6AKsDIAUgASkAqwI3AKwDIAUgASkAswI3ALQDIAUgASkAuwI3ALwDIAUgASgAwwI2AMQDIAVBMGoiBCAFQasDahDSCCAFQdwDaiAFQdwCaikCADcCACAFQeQDaiAFQeQCaigCADYCACAFKALQAiEGIAVBJTYC0AIgBSAFKQPoAjcDoAMgBSAFKQLUAjcC1AMgBSAGNgLQAyAFQdADahDGCgJAAkAgBBCIIQ0AAkACQCAEEMoNIgYEQCAGKAIAQQtGDQELIAQQyg0iBgRAIAYoAgBBDUYNAQsCQCAEEMoNIgZFDQAgBigCAEEURw0AIAYtAARBDUYNAQsgBBDKDSIGBEAgBigCAEEHRg0BCyAEEMoNIgYEQCAGKAIAQQRGDQELIAQQyg0iBgRAIAYoAgBBAkYNAQsgBBDKDSIGBEAgBigCAEEbRg0BCyAEEMoNIgYEQCAGKAIAQR1GDQELIAQQyg0iBEUNAiAFQQA6AMgDIAUgBCgCAEEeRiIEOgDJAyAEDQEMAwsgBUGAAjsByAMLIAVB0ANqIgQgBUEIakGgAxD7BhogARDfECABIARBoAMQ+wYhASAFIAc6APMGIAUgASkAqwI3APQGIAUgASkAswI3APwGIAUgASkAuwI3AIQHIAUgASgAwwI2AIwHIAogBUHzBmoQ0gggBUHIA2oQwyMgAyAITQ0DIABBADYCACAAIAIgCEEDdGopAgA3AgQMBgsgBUEAOwHIAwsgBUHIA2oQwyMgBUEIahDfEAsgAEIANwIADAMLIAggA0GQ4d8AEKwQAAsgASgCgAIhASAFQQA6ANADIAEgASAFQdADahCBFSEJQQEhBgsgACAGNgIAIAAgCTYCBAsgBUGQB2okAAuVCQEFfyMAQaABayIEJAAgAUEoaiIFEMMgIQcgBEHIAGogAUEBELwBIAQoAkwhBgJAAkACQAJAAkACQAJAIAQoAkgiCEGAgICAeEcEQCAEIAQoAlA2AiQgBCAGNgIgIAQgCDYCHAJAAkACQCAFEMoNIgZFDQAgBigCAEECRw0AIAYtAAhBAkcNACAGLQAJQRxGDQELIAUQyg0iBkUNASAGKAIAQQJHDQEgBi0ACEECRw0BIAYtAAlBG0cNAQsgBRDDICECAkACQCAFEMoNIgNFDQAgAygCAEECRw0AIAMtAAhBAkcNACADLQAJQRxHDQAgBRCtEyIDRQ0AIAMoAgBBCUcNACAEQRBqIAEQjgYgBCgCFCEDIAQoAhANASAFEMoNIgZFDQgCQAJAIAYoAgBBDmsOAgoBAAsgBRCIIRoMCQsgASgCyAIhBSABQSU2AsgCIAEgASkD4AI3A5gDIARB1ABqIAFB1AJqKQIANwIAIARB3ABqIAFB3AJqKAIANgIAIAQgASkCzAI3AkwgBCAFNgJIIARByABqEMYKDAgLAkAgBRDKDSIDRQ0AIAMoAgBBAkcNACADLQAIQQJHDQAgAy0ACUEcRw0AIAUQrRMiA0UNACADKAIAQQZHDQAgBEEIaiABEI4GIAQoAgwhAyAEKAIIDQQgBRDKDSIGRQ0HAkACQCAGKAIAQQ5rDgIJAQALIAUQiCEaDAgLIAEoAsgCIQUgAUElNgLIAiABIAEpA+ACNwOYAyAEQdQAaiABQdQCaikCADcCACAEQdwAaiABQdwCaigCADYCACAEIAEpAswCNwJMIAQgBTYCSCAEQcgAahDGCgwHCyAEIAUQhRQgBCgCBCECIAQoAgAgBEHHADoASCACIARByABqEIEVIQIgBRDKDSIDRQ0FIAMoAgBBJEcNBSABIAEpA+ACNwOYAyABKALIAiABQSU2AsgCQSRHDQQgASABKALMAhD/CwwFCyAAQRM2AgAgACADNgIEDAcLIARBADoAOyAEQQE6AEcgBCABLQDFAjoARiAEIAEpAaoCNwArIAQgASkAuwI3ADwgBCABLwDDAjsARCAEIAFBsgJqIgYpAQA3ADMgBEGVAWogAUG/AmopAAA3AAAgBEGQAWogAUG6AmopAQA3AgAgBEGIAWogBikBADcCACAEIAEpAaoCNwKAASAFIARBK2oQ0gggBCABNgJ8IARByABqIgUgASAHIAIgAyAEQRxqECwCQCAEKAJIQRNHBEAgACAFQTAQ+wYaDAELIAAgBCgCTDYCBCAAQRM2AgALIARB/ABqEIclDAcLIABBEzYCACAAIAY2AgQMBgsgAEETNgIAIAAgAzYCBAwEC0Hl7OAAQShBjN/fABD0FwALIABBEzYCACAAIAI2AgQMAgsgACADNgIEIABBEjYCACAAIAIgASgCnAMiASABIAJJGzYCDCAAIAIgASABIAJLGzYCCAwBCyAAIAM2AgQgAEESNgIAIAAgAiABKAKcAyIBIAEgAkkbNgIMIAAgAiABIAEgAksbNgIICyAEQRxqEO4mCyAEQaABaiQAC/0HAhN/AX4CQAJAAkACQAJAAkACQAJAIAEoAgBFBEAgAS0ADg0BIAEgAS0ADCIFQQFzOgAMIAEoAjQhAiABKAIwIQQCQCABKAIEIgNFDQAgAiADSwRAIAMgBGosAABBv39KDQEMCgsgAiADRw0JCwJAIAIgA0cEQAJ/IAMgBGoiBCwAACICQQBOBEAgAkH/AXEMAQsgBC0AAUE/cSEGIAJBH3EhByAHQQZ0IAZyIAJBX00NABogBC0AAkE/cSAGQQZ0ciEGIAYgB0EMdHIgAkFwSQ0AGiAHQRJ0QYCA8ABxIAQtAANBP3EgBkEGdHJyCyEEQQEhAiAFQQFxDQECQCAEQYABSQ0AQQIhAiAEQYAQSQ0AQQNBBCAEQYCABEkbIQILIAAgAzYCBCAAQQE2AgAgACACIANqIgA2AgggASAANgIEDwsgBUEBcUUNCAsgACADNgIIIAAgAzYCBCAAQQA2AgAPCyABKAIcIgUgASgCNCIERg0CIAEoAjAhCyAEIQMgBSABKAI8IghBAWsiEGoiAiAETw0BIAEoAjghDSAFIAtqIREgBSAIaiEGIAEoAhgiAyAFaiEOIAggA2shEiAFIAEoAhAiDGtBAWohEyABKQMIIRUgASgCJCIPQX9GIQkgDyEHIAUhAwNAIAMgBUcNAgJAAkAgFSACIAtqMQAAiKdBAXFFBEAgASAGNgIcIAYhAyAJDQJBACECDAELIAwgDCAHIAcgDEkbIAkbIgogCCAIIApJGyEUIAohAwJAAkACQANAIAMiAiAURgRAQQAgByAJGyEKIAwhAgNAIAIgCk0EQCABIAY2AhwgD0F/RwRAIAFBADYCJAsgACAGNgIIIAAgBTYCBCAAQQA2AgAPCyACQQFrIgIgCE8NBSACIAVqIgMgBE8NAyACIA1qLQAAIAMgC2otAABGDQALIAEgDjYCHCASIQIgDiEDIAlFDQUMBgsgAiAFaiAETw0CIAJBAWohAyACIA1qLQAAIAIgEWotAABGDQALIAIgE2ohAyAJDQRBACECDAMLIAMgBEHs6uAAEKwQAAsgBCAFIApqIgAgACAESRsgBEH86uAAEKwQAAsgAiAIQdzq4AAQrBAACyABIAI2AiQgAiEHCyADIBBqIgIgBEkNAAsgBCEDDAMLIABBAjYCAA8LIAMNAQwCCyAAQQI2AgAPCyADIQIDQAJAIAIgBEkEQCACIAtqLAAAQb9/TA0BIAIhBAwECyACIARGDQMLIAJBAWoiAg0ACwtBACEECyAAIAQ2AgggACAFNgIEIABBATYCACABIAQgAyADIARJGzYCHA8LIABBAjYCACABQQE6AA4PCyAEIAIgAyACQcjr4AAQ1CYAC5sIAQN/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkBBByAAKAIAIgFBDGsiAiACQSZPG0EBaw4lAAECHwMEBQYHCAkKCwwNDg8QERIeHxMUFR4WFyEfGCEZIRobHB4LIABCADcDECAAKAIMQQR0IQEgACgCCCEAA0AgAUUNHSAAKAIAQQJHBEAgABDbIAsgAEEQaiEAIAFBEGshAQwACwALIABBBGoQuAgPCyAAQQhqELQhDwsgAEIANwIEDBwLIABCADcCDCAAQQRqEIwuIABBCGoQjC4PCyAAQgA3AzAgAEE4agJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAFBAWsOCwECAwQFBgcICQoLAAsgAEEIahD/JwwLCyAAQQhqELQdDAoLIABBCGoQtR0MCQsgAEEEahC1KgwICyAAQQRqEJoYDAcLIABBBGoQgiQMBgsgAEEEahCCJAwFCyAAQQRqELUqDAQLIABBBGoQgiQMAwsgAEEEahCDJAwCCyAAQgA3AgQMAQsgAEEIaiEBAkACQAJAIAAoAgRBAWsOAgECAAsgARDhFAwCCyABEOUMDAELIABCADcDCAsQjC4PCyAAQQhqELQdDwsgAEEIahC1HQ8LIABCADcDECAAQQRqEIwuIABBCGoQjC4MFwsgAEIANwIcIABBKGogAEEEagJAQQEgAC0AGEEDayIDIANB/wFxQQNPG0H/AXFBAkcEQCAAQgA3AxAMAQsgAEEQahCMLgsQnhsQjiYPCyAAQgA3AhQgAEEQahCMLiAAKAIEQYCAgIB4RwRAIABBBGoQnhsLIABBIGoQjiYPCyAAQgA3AxAgAEEEahCfGw8LIABCADcDEA8LIABBCGoQ4hQPCyAAQQRqEOkXDwsgAEIANwIMIABBBGoQjC4gAEEYahCOJiAAKAIIEOkXDwsgAEIANwIUIAAoAgxBKGwhASAAKAIIIQIDQCABBEAgAUEoayEBIAIQsBIgAkEoaiECDAELCwJAIAAoAhAiASgCAEGAgICAeEcEQCABELcqDAELIAFBBGoQjC4LIAAoAiAiAQRAIAEQlBkLIAAoAiQiAEUNDCAAELgqDwsgAEEIahC1IQ8LIABCADcCBCAAKAIMRQ0KDA0LIABBBGoQtSoPCyAAQQhqELYdDwsgAEIANwMgIABCADcDECAAQShqQgA3AwAPCyAAKAIEEIwIDwsgAEEEahDcIA8LIABBBGoQtSoPCyAAQQRqEIMkDwsgAEIANwMQDwsgAEEEahCaGA8LIABCADcCBAsPCyAAQgA3AgQPCyAAQgA3AwggAEEEahCMLg8LIABBDGoQjC4PCyAAQQRqEIIkC8UHAQl/IwBBQGoiAyQAAkACQAJAIAJFDQACQCABIAJPBEAgAkEEayIEQQAgAiAETxsiCSACQQFrIgUgBSAJSxshBiAFIQQgA0EgagJ/A0AgBiAEIAlNDQEaIAIgBE0EQCAEIAJB+JzEABCsEAALIAAgBGogBEEBayEELQAAQcABcUGAAUYNAAsgBEEBagsgACACQYidxAAQkh1BACEEIAMoAiQiCkUNAwJAIAMoAiAiCywAACIHQQBIBEAgB0FAcUGAf0YNBSAKAn9BAiAHQWBJDQAaQQMgB0FwSQ0AGiAHQXdLDQZBBAsiB0kNBSADQSxqIAsgBxDVAyADKAIsDQUgAyADKAIwIgQgAygCNGo2AjwgAyAENgI4IANBOGoQ3gpBgIDEAEYNAQsCQAJAA0AgBSAJTQ0BIAIgBU0NAiAAIAVqIAVBAWshBS0AAEHAAXFBgAFGDQALIAVBAWohBgsgA0EYaiAGIAAgAkGIncQAEJIdQQAhBSADKAIcIgZFDQQgAygCGCIHLAAAIgRBAE4EQCAEQf8BcSEEDAQLIARBQHFBgH9GDQQgBgJ/QQIgBEFgSQ0AGkEDIARBcEkNABogBEF3Sw0FQQQLIgRJDQQgA0EsaiAHIAQQ1QMgAygCLA0EIAMgAygCMCIEIAMoAjRqNgI8IAMgBDYCOCADQThqEN4KIgRBgIDEAEcNAwwGCyAFIAJB+JzEABCsEAALDAQLIAIgAUGclsQAEK4QAAsgBBDdC0H/AXEhBQsCQCABIAJNDQAgA0EQaiACIAAgAUGslsQAEJIdQQAhBCADKAIUIgdFDQEgAygCECIILAAAIgZBAEgEQCAGQUBxQYB/Rg0CIAcCf0ECIAZBYEkNABpBAyAGQXBJDQAaIAZBd0sNA0EECyIGSQ0CIANBLGogCCAGENUDIAMoAixBAUYNAiADIAMoAjAiBCADKAI0ajYCPCADIAQ2AjggA0E4ahDeCkGAgMQARg0DCyADQQhqIAIgACABQYyXxAAQkh1BACEIIAMoAgwiAUUNAAJAIAMoAggiAiwAACIAQQBOBEAgAEH/AXEhBAwBCyAAQUBxQYB/Rg0BIAECf0ECIABBYEkNABpBAyAAQXBJDQAaIABBd0sNAkEECyIESQ0BIANBLGogAiAEENUDIAMoAiwNASADIAMoAjAiACADKAI0ajYCPCADIAA2AjggA0E4ahDeCiIEQYCAxABGDQMLIAQQ3QtB/wFxIQgLIAUgCHNBf3NBAXEhBAsgA0FAayQAIAQPC0HonMQAEOApAAvjCQECfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkBBByAAKAIAIgAoAgAiAUEMayICIAJBJk8bQQFrDiQAAQIDBAUGBwgJCgsMDQ4PEBESEyIUFRYXIhgZGhscHR4fICEiCyAAQQRqEMUXIAAoAgQgAEEIaigCABDtKQwhCyAAQQRqEL4JIAAoAgQgAEEIaigCABDiKQwgCyAAQQhqEJ4lIAAoAiAiARD8JiABQQxqEO4mIAFBGGoQ+yQgAUE8ahDVHSABQUBrEKwnIAFByABBBBDVEQwfCyAAQQRqEL4CDB4LIABBDGoQvgIMHQsgAEEEahC+AiAAQQhqEL4CDBwLAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEODAABAgMEBQYHCAkLCgsLIABBCGoiARDLGSABQRhqEKwnDAoLIABBCGoQhxsMCQsgAEEIahDOIAwICyAAQQRqEL4CDAcLIABBBGoQvBgMBgsgAEEEahD5KAwFCyAAQQRqEPkoDAQLIABBBGoQvgIMAwsgAEEEahD5KAwCCyAAQQRqEKIqDAELAkACQCAAKAIEDgIAAQILIABBCGoiARCfHCABKAIAIAEoAgQQkCogAUEUahCsJwwBCyAAQQhqIgEQvBAgASgCACABKAIEEJEqIAFBFGoQrCcLIABBOGoQvgIMGwsgAEEIahCHGwwaCyAAQQhqEM4gDBkLIABBBGoQvgIgAEEIahC+AiAAQQxqEL4CDBgLIAAtABhBBUYEQCAAQRBqEL4CCyAAQQRqEOYmIABBKGoQoSUMFwsgAEEQahC+AiAAKAIEQYCAgIB4RwRAIABBBGoQ5iYLIABBIGoQoSUMFgsgAEEEahDoJgwVCyAAQQhqEMsZDBQLAkACQAJAAkACQCAAKAIIDgYBGBgCAwQACyAAQRBqEMsZIABBGGoQyxkMFwsgAEEQahDzKAwWCyAAQSBqEJ0lDBULIABBEGoQzx4MFAsgAEEQahDLGSAAQRhqEMsZDBMLIABBBGoQ0ygMEgsgAEEEahC+AiAAQRhqEKElIAAoAggiARDTKCABQSBBBBDVEQwRCyAAQQRqEJ0cIAAoAgQgAEEIaigCABCQKgJAIAAoAhAiASgCAEGAgICAeEcEQCABEOkmDAELIAFBBGoQvgILIAAoAhBBGEEEENURIABBIGoQ1R0gAEEkahCsJwwQCyAAQQhqEJ4lIAAoAiAiARDuJiABQQxqEIYnIAFBMGoQrScgAUE0ahDVHSABQThqEKElIAFBGGoQ7yYgACgCIEHAAEEEENURDA8LIABBDGoQrScMDgsgAEEEahC+AgwNCyAAQQRqEL4CDAwLIABBCGoQ+CgMCwsgAEEIahD1KAwKCyAAKAIEIgFBQGsiAhDOGSACQTxqEIwnIAJBOGoQoSUgAUGQAWoQ7CYgAS0APEEGRwRAIAFBEGoQzhkLIAFBoAFBCBDVEQwJCyAAQQRqEOwmDAgLIABBBGoQ+SgMBwsgAEEEahC+AgwGCyAAQQRqEL4CDAULIABBBGoQ+SgMBAsgAEEEahCiKgwDCyAAQQRqEPkoDAILIABBCGoQyxkMAQsgAEEEahC8GAsgAEHAAEEIENURC9IIAQJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQEEHIAAoAgAiAUEMayICIAJBJk8bQQFrDiQAAQIbAwQFBgcICQoLDA0ODxAREhobGxMUGhUWHBsbHBccGBkaCyAAQQRqEMUXIAAoAgQgACgCCBDtKQ8LIABBBGoQvgkgACgCBCAAKAIIEOIpDwsgACkDCCAALQAcEL4jIAAoAiAiABChHCAAKAIAIABBBGooAgAQlCogAEEMahDuJiAAKAIYQYCAgIB4RwRAIABBGGoQ6SYLIAAoAjwQwh4gAEFAaxD2JyAAQcgAQQQQ1REPCyAAQQxqEKYpDwsgAEEEahClKQ8LAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEODAoAAQIDBAUGBwgLCQsLIABBCGoQqCkMCgsgAEEIahCyIQwJCyAAQQRqEKYpDAgLIABBBGoQkRkMBwsgAEEEahCpKQwGCyAAQQRqEKkpDAULIABBBGoQpikMBAsgAEEEahCpKQwDCyAAQQRqELMqDAILAkACQAJAIAAoAgQOAgABBAsgAEEIahCfHCAAKAIIIAAoAgwQkCoMAQsgAEEIahC8ECAAKAIIIAAoAgwQkSoLIABBHGoQ9icMAQsgACkDCBD5GiAAQSBqEPYnCyAAQThqEKYpDwsgAEEIahCoKQ8LIABBCGoQsiEPCyAAQQRqEKYpIABBCGoQpikgAEEMahCmKQ8LIAAtABhBBUYEQCAAQRBqEKYpCyAAQQRqEOYmIAAoAigQ2SgPCyAAQRBqEKYpIAAoAgRBgICAgHhHBEAgAEEEahDmJgsgACgCIBDZKA8LIABBBGoQ6CYPCyAAKQMIEPkaDwsgAEEIahC3FA8LIABBBGoQ0ygPCyAAQQRqEKYpIAAoAhgQ2SggACgCCCIAENMoIABBIEEEENURDwsgAEEEahCdHCAAKAIEIAAoAggQkCoCQCAAKAIQIgEoAgBBgICAgHhHBEAgARDpJgwBCyABQQRqEKYpCyABQRhBBBDVESAAKAIgEMIeIABBJGoQ9icPCyAAKQMIIAAtABwQviMgACgCICIAEO4mIABBDGoQuQcgACgCDCAAQRBqKAIAEJMqIABBMGoQ9ycgACgCNBDCHiAAKAI4ENkoIABBGGoQvRkgACgCGCAAQRxqKAIAEO0pIABBwABBBBDVEQ8LIABBDGoQ9ycPCyAAQQhqEJ4cDwsgACkDCCAAKQMYEIsrDwsgACgCBCIAQUBrEMYXIABB/ABqEOcLIAAoAnwgAEGAAWooAgAQkyogACgCeBDZKCAAQZABahDsJiAALQA8QQZHBEAgAEEQahDGFwsgAEGgAUEIENURDwsgAEEEahDsJg8LIABBBGoQsyoPCyAAKQMIEPkaDwsgAEEEahCRGQsPCyAAQQRqEKYpDwsgAEEEahCpKQuaCAENfyMAQfAAayIGJAACQAJAAkACQAJAAkAgAS0ADSIHQQAgB0EDRxtBAWsOAgACAQsgAg0BCyADBEAgBkEQaiADIAQQxw4gBigCFCEMIAYoAhAhCQsgBkEIaiABQSBqIhBBsLjDABC/HSAGKAIMIQ0gBigCCCEEIAYgDDYCXCAGIAk2AlggBCgCACAEQQRqKAIAEM8hIQggAkH+////B00EQCAIIARBMGoiESgCACIDSQ0CIARBKGohDiADQQxsIQogCCADayELQQAhBwNAIA8gByALS3INAyAOKAIAIANGBEAgDhDuFgsgByALTyEPIAcgByALSWohByARIANBAWoiAzYCACAEKAIsIApqIhJCgICAgMAANwIAIBJBCGpBADYCACAKQQxqIQoMAAsACyAGIAI2AhwgBkEoNgIYIAZB2ABqEModDAILIAAgASAFEDAMAgsgAiAEQSxqIgooAgAgAyAIQbzYwwAQvB8oAghJBEAgBkEANgJsIAYgAjYCaCAGIAg2AmQgBkEENgJgIAZBGGogBCAGQeAAahDoCCAGQdgAahDKHQwBCyAKKAIAIARBMGoiAygCACAIQczYwwAQvB8oAgghBwNAIAIgB0YEQCAEQSxqKAIAIARBMGooAgAgCEHc2MMAELwfIAkgDBDgGCAGQQA2AmwgBiACNgJoIAYgCDYCZCAGQQQ2AmAgBkEYaiAEIAZB4ABqEOgIBSAKKAIAIAMoAgAgCEHs2MMAELwfQQAgBxDgGCAHQQFqIQcMAQsLCyANIA0oAgBBAWo2AgAgBigCHCEDAkAgBigCGCIEQSpGBEAgBkEYaiABIAUQMCAGKAIgIQQgBigCHCEFIAYoAhgiB0EqRg0BIABBDGogBkEkakE0EPsGGiAAIAQ2AgggACAFNgIEIAAgBzYCAAwCCyAAQQhqIAZBIGpBOBD7BhogACADNgIEIAAgBDYCAAwBCyAGIBBBwLjDABC/HSAGKAIEIQcgBigCACIIKAIAIAhBBGooAgAQzyEhCQJAIAJB/v///wdNBEAgBkEANgJsIAYgAjYCaCAGIAk2AmQgBkEFNgJgIAZBGGogCCAGQeAAahDoCAwBCyAGIAI2AhwgBkEoNgIYCyAHIAcoAgBBAWo2AgAgBigCHCECAkAgBigCGCIHQSpGBEAgBkEYaiIJIAEgAyAFENkIIAYoAhgiBUEqRw0BIAkgASAEIAIQ2QggBigCGCIBQSpGBEAgACACNgIIIAAgAzYCBCAAQSo2AgAMAwsgAEEEaiAGQRhqQQRyQTwQ+wYaIAAgATYCAAwCCyAAQQhqIAZBIGpBOBD7BhogACACNgIEIAAgBzYCAAwBCyAAQQRqIAZBGGpBBHJBPBD7BhogACAFNgIACyAGQfAAaiQAC5oIAQh/IwBB8ABrIgQkACABQShqIggQwyAhBSAEQUBrIgogASADQQFrQf8BcUECSRBRIAQoAkQhBgJAAkACQCAEKAJAIglBB0cEQCAEQThqIARB4ABqKQMANwMAIARBMGogBEHYAGopAwA3AwAgBEEoaiAEQdAAaikDADcDACAEIAQpA0g3AyAgBCAGNgIcIAQgCTYCGCAJIAEtAKACIgdBAkdyDQIgCBDKDSIGRQ0BIAYoAgBBCEcNASABKALIAiEGIAFBJTYCyAIgASABKQPgAjcDmAMgBEHMAGogAUHUAmopAgA3AgAgBEHUAGogAUHcAmooAgA2AgAgBCABKQLMAjcCRCAEIAY2AkAgChDGCkEBIQsMAQsgAEEHNgIAIAAgBjYCBAwCCyABLQCgAiEHCwJAAkACQAJAAkAgB0H/AXFBAkcNACAIEMoNIgZFDQAgBigCAEETRw0AIARBEGogARDtDyAEKAIUIQcgBCgCEA0BIARBOGohBiAEQTBqIQoCQAJAAkAgCQ4EAgEBAQALIARBATYCRCAEQaSE4AA2AkAgBEIBNwJMIARBtQI2AmwgBCAEQegAajYCSCAEIARBGGo2AmggBEFAa0GQpuAAEMMdAAsgCiEGCyAGEPsmIAYgBzYCAAsCQCACRQ0AAkACQCAIEMoNIgJFDQAgAigCAEECRw0AIAItAAhBAkcNACACLQAJQR5GDQELIAgQyg0iAkUNASACKAIAQQJHDQEgAi0ACA0BIAItAAlBBEcNAQtBACEHDAQLAkACQCAIEMoNIgJFDQAgAigCAEEVRw0AIAItAARFDQELQQAhByABLQC4AkEBcQ0EIANB/wFxQQJGBEAgAS0ArQJBAXENAwsgCUUNBCABKAKcAyECIARByQA6AEAgBSACIAIgBUsbIAUgAiACIAVJGyAEQUBrEIEVIQcgCBDKDSICRQ0BIAIoAgBBJEcNASABIAEpA+ACNwOYAyABKALIAiABQSU2AsgCQSRHDQMgASABKALMAhD/CwwBCyABKALIAiECIAFBJTYCyAIgASABKQPgAjcDmAMgBEHMAGogAUHUAmopAgA3AgAgBEHUAGogAUHcAmooAgA2AgAgBCABKQLMAjcCRCAEIAI2AkAgBEFAaxDGCiAEQQhqIAEQuAYgBCgCDCEHIAQoAghFDQMLIABBBzYCACAAIAc2AgQgBEEYahCdEgwDCyABKAKcAyECIARB8QA6AEAgASAFIAIgAiAFSxsgBSACIAIgBUkbIARBQGsQxhkMAQtB5ezgAEEoQaCm4AAQ9BcACyABKAKcAyEBIAAgBEEYakEoEPsGIgAgCzoANCAAIAc2AjAgACAFIAEgASAFSRs2AiwgACAFIAEgASAFSxs2AigLIARB8ABqJAALrggBAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkBBByAAKAIAIgFBDGsiAiACQSZPG0EBaw4kAAECGwMEBQYHCAkKCwwNDg8QERIaGxsTFBoVFh0bGx0XHRgZGgsgAEEEahDFFyAAKAIEIAAoAggQ7SkPCyAAQQRqEL4JIAAoAgQgACgCCBDiKQ8LIAApAwggAC0AHBC+IyAAKAIgENIYDwsgAEEMahDUKQ8LIABBBGoQ1CkgAEEIahDUKQ8LAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEODAABAgMEBQYHCAkLCgsLIABBCGoQoCgMCgsgAEEIahDgHAwJCyAAQQhqEMIhDAgLIABBBGoQ1CkMBwsgAEEEahCeGQwGCyAAQQRqENUpDAULIABBBGoQ1SkMBAsgAEEEahDUKQwDCyAAQQRqENUpDAILIABBBGoQySoMAQsCQAJAIAAoAgQOAgABAgsgAEEIahDLIgwBCyAAQQhqEMwiCyAAQThqENQpDwsgAEEIahDgHA8LIABBCGoQwiEPCyAAQQRqENQpIABBCGoQ1CkgAEEMahDUKQ8LIAAtABhBBUYEQCAAQRBqENQpCyAAQQRqEOYmIAAoAigQ2SgPCyAAQRBqENQpIAAoAgRBgICAgHhHBEAgAEEEahDmJgsgACgCIBDZKA8LIABBBGoQ6CYPCyAAKQMIEPkaDwsCQAJAAkACQCAAKAIIDgYAEBABAgMSCyAAKQMQIAApAyAQjCsPCyAAKQMgEO0mDwsgACkDGCAAKAIgEKsrDwsMDgsgAEEEahDTKA8LIABBBGoQ1CkgACgCGBDZKCAAKAIIIgAQ0yggAEEgQQQQ1REPCyAAQQRqEJ0cIAAoAgQgACgCCBCQKgJAIAAoAhAiASgCAEGAgICAeEcEQCABEOkmDAELIAFBBGoQ1CkLIAFBGEEEENURIAAoAiAQwh4gAEEkahChKA8LIAApAwggAC0AHBC+IyAAKAIgIgAQ7iYgAEEMahC5ByAAKAIMIABBEGooAgAQkyogAEEwahCiKCAAKAI0EMIeIAAoAjgQ2SggAEEYahC9GSAAKAIYIABBHGooAgAQ7SkgAEHAAEEEENURDwsgAEEMahCiKA8LIABBCGoQnhwPCyAAKQMIIAApAxgQiysPCyAAKAIEIgBBQGsQxhcgAEH8AGoQ5wsgACgCfCAAQYABaigCABCTKiAAKAJ4ENkoIABBkAFqEOwmIAAtADxBBkcEQCAAQRBqEMYXCyAAQaABQQgQ1REPCyAAQQRqEOwmDwsgAEEEahDJKg8LIAApAwgQ+RoPCyAAQQRqEJ4ZCw8LIABBBGoQ1CkPCyAAKQMQEPkaIAApAxgQ+RoPCyAAQQRqENUpC9gIAQV/IwBB4ABrIgIkACAAKAIAIgMoAgQhACADKAIAIQQgAkEANgJIIAJBATYCPCACQYjO1gA2AjggAkIENwJAAn9BASABKAIUIgUgASgCGCIGIAJBOGoQtSQNABoDQAJAIAJBEGogBCAAEIUGAkACQAJAIAItABAiAUECRwRAIAFBAXFFBEAgAkEIagJ/QQEgAigCFCIBQYABSQ0AGkECIAFBgBBJDQAaQQNBBCABQYCABEkbCyAEIABBkM7WABCSHSACKAIMIQAgAigCCCEEIAFBDUsNAkEBIAF0IgNBgMwAcQ0EIANBgDBxDQMgAQ0CIAJBADYCSCACQQE2AjwgAkGQ39gANgI4IAJCBDcCQCAFIAYgAkE4ahC1JEUNBgwFCyACIAItABE6ADQgAkHgATYCXCACQQE2AiwgAkEBNgIcIAJBiN/YADYCGCACQQE2AiQgAiACQTRqNgJYIAJBAzoAVCACQQg2AlAgAkIgNwJIIAJCgICAgCA3AkAgAkECNgI4IAIgAkE4ajYCKCACIAJB2ABqNgIgIAUgBiACQRhqELUkDQQgAkEBIAQgAEGgztYAEJIdIAIoAgQhACACKAIAIQQMBQsgAkEANgJIIAJBATYCPCACQYjO1gA2AjggAkIENwJAIAUgBiACQThqELUkDAULIAFB/wBGIAFBAWtBCElyDQAgAUEOa0EMTw0BCyACQeEBNgJcIAIgATYCNCACQQE2AiwgAkEBNgIcIAJBiN/YADYCGCACQQE2AiQgAiACQTRqNgJYIAJBAzoAVCACQQg2AlAgAkIgNwJIIAJCgICAgCA3AkAgAkECNgI4IAIgAkE4ajYCKCACIAJB2ABqNgIgIAUgBiACQRhqELUkRQ0CDAELAkACQAJAAkACQAJAAkACQAJAIAFBCWsOBQEDBwcCAAsgAUHcAEYNAyABQSJGDQQgAUEnRg0FIAENBiACQYAEOwEiIAJCADcBGiACQdzgADsBGAwHCyACQYAEOwEiIAJCADcBGiACQdzoATsBGAwGCyACQYAEOwEiIAJCADcBGiACQdzkATsBGAwFCyACQYAEOwEiIAJCADcBGiACQdzcATsBGAwECyACQYAEOwEiIAJCADcBGiACQdy4ATsBGAwDCyACQYAEOwEiIAJCADcBGiACQdzEADsBGAwCCyACQYAEOwEiIAJCADcBGiACQdzOADsBGAwBCwJAIAFB/wVNDQAgARDKBUUNACACQThqIAEQ7gggAkEgaiACQUBrKAAANgIAIAIgAikAODcDGAwBCyABELAKRQRAIAJBOGogARDuCCACQSBqIAJBQGsoAAA2AgAgAiACKQA4NwMYDAELIAIgATYCHCACQYABOgAYCyACQeIBNgJcIAJBATYCPCACQYT44AA2AjggAkIBNwJEIAIgAkEYajYCWCACIAJB2ABqNgJAIAUgBiACQThqELUkRQ0BCwtBAQsgAkHgAGokAAuECAEIfyMAQfAAayIEJAAgAUEoaiIIEN4gIQUgBEFAayIKIAEgA0EBa0H/AXFBAkkQUCAEKAJEIQYCQAJAAkAgBCgCQCIJQQdHBEAgBEE4aiAEQeAAaikDADcDACAEQTBqIARB2ABqKQMANwMAIARBKGogBEHQAGopAwA3AwAgBCAEKQNINwMgIAQgBjYCHCAEIAk2AhggAS0A+AIiB0ECRyAJcg0CIAgQ4w0iBkUNASAGKAIAQQhHDQEgASgCKCEGIAFBJTYCKCABIAEpA0A3A3ggBEHMAGogAUE0aikCADcCACAEQdQAaiABQTxqKAIANgIAIAQgASkCLDcCRCAEIAY2AkAgChDHCkEBIQsMAQsgAEEHNgIAIAAgBjYCBAwCCyABLQD4AiEHCwJAAkACQAJAAkAgB0H/AXFBAkcNACAIEOMNIgZFDQAgBigCAEETRw0AIARBEGogARDxDyAEKAIUIQcgBCgCEA0BIARBOGohBiAEQTBqIQoCQAJAAkAgCQ4EAgEBAQALIARBATYCRCAEQaSE4AA2AkAgBEIBNwJMIARBtQI2AmwgBCAEQegAajYCSCAEIARBGGo2AmggBEFAa0GQpuAAEMMdAAsgCiEGCyAGEJEoIAYgBzYCAAsCQCACRQ0AAkACQCAIEOMNIgJFDQAgAigCAEECRw0AIAItAAhBAkcNACACLQAJQR5GDQELIAgQ4w0iAkUNASACKAIAQQJHDQEgAi0ACA0BIAItAAlBBEcNAQtBACEHDAQLAkACQCAIEOMNIgJFDQAgAigCAEEVRw0AIAItAARFDQELQQAhByABLQCQA0EBcQ0EIANB/wFxQQJGBEAgAS0AhQNBAXENAwsgCUUNBCABKAJ8IQIgBEHJADoAQCAFIAIgAiAFSxsgBSACIAIgBUkbIARBQGsQgRUhByAIEOMNIgJFDQEgAigCAEEkRw0BIAEgASkDQDcDeCABKAIoIAFBJTYCKEEkRw0DIAEgASgCLBCGDAwBCyABKAIoIQIgAUElNgIoIAEgASkDQDcDeCAEQcwAaiABQTRqKQIANwIAIARB1ABqIAFBPGooAgA2AgAgBCABKQIsNwJEIAQgAjYCQCAEQUBrEMcKIARBCGogARCtBiAEKAIMIQcgBCgCCEUNAwsgAEEHNgIAIAAgBzYCBCAEQRhqELISDAMLIAEoAnwhAiAEQfEAOgBAIAEgBSACIAIgBUsbIAUgAiACIAVJGyAEQUBrENgZDAELQeXs4ABBKEGgpuAAEPQXAAsgASgCfCEBIAAgBEEYakEoEPsGIgAgCzoANCAAIAc2AjAgACAFIAEgASAFSRs2AiwgACAFIAEgASAFSxs2AigLIARB8ABqJAALwwgCCH8DfiMAQTBrIgUkACABQShqIgIQwyAhAwJAIAIQyg0iBEUEQCABKAKAAiEBIAVBADoAECABIAEgBUEQahCBFSEBIABBBzYCACAAIAE2AgQMAQsCQAJAAkACQAJAAn8CQAJAAkACQAJAIAQoAgAiBkEbaw4KAgcDBAcHBwcHAAELIAEgASkD4AI3A5gDIAEoAsgCIAFBJTYCyAJBJEcNBSABKALMAiEBIABBBzYCACAAIAE2AgQMCgsgBkECRw0FAkACQEEEIAQtAAhBAmtB/wFxIgYgBkEETxtBAWsOAwABAQcLIAEoAsgCIQIgAUElNgLIAiABIAEpA+ACNwOYAyAFQRxqIAFB1AJqKQIANwIAIAVBJGogAUHcAmooAgA2AgAgBSABKQLMAjcCFCAFIAI2AhAgBUEQahDGCiADIAEoApwDIgIgAiADSxshASADIAIgAiADSRshAkECDAQLQQAhBAJAIAIQyg0iAkUNACACKAIAQQJHDQAgAi0ACEEERiEECyABKALIAiECIAFBJTYCyAIgASABKQPgAjcDmAMgBUEcaiABQdQCaikCADcCACAFQSRqIAFB3AJqKAIANgIAIAUgASkCzAI3AhQgBSACNgIQIAVBEGoQxgogAyABKAKcAyICIAIgA0sbIQEgAyACIAIgA0kbIQJBAQwDCyABIAEoAuQCIgQ2ApwDIAEgASgC4AI2ApgDIAEoAsgCIAFBJTYCyAJBG0cNBSADIAQgAyAESRshByADIAQgAyAESxshCCABKQPYAiIMQoCAgIBwgyEKIAEpA9ACIgtCKIinIQMgC0IgiKchBCAMpyEJIAunIQJBAAwCCyABIAEoAuQCIgQ2ApwDIAEgASgC4AI2ApgDIAEoAsgCIAFBJTYCyAJBHUcNBSADIAQgAyAESRshAiABKQPQAiILQoCAgIBwgyEKIAMgBCADIARLGyIEQQh2IQMgASkD2AIiDEIgiKchCCALpyEJIAynIQdBAwwBCyABIAEoAuQCIgQ2ApwDIAEgASgC4AI2ApgDIAEoAsgCIAFBJTYCyAJBHkcNBSABKALYAiEJIAMgBCADIARJGyECIAMgBCADIARLGyIEQQh2IQMgASkD0AIiCkIgiKchCCAKpyEHQgAhCkEECyEGIAAgAzsADSAAIAg2AhQgACAHNgIQIAAgBDoADCAAIAI2AgggACABNgIEIAAgBjYCACAAQQ9qIANBEHY6AAAgACAKIAmthDcDGAwFC0Hl7OAAQShBmJPgABD0FwALIAUgBDYCDCAFQQE2AhQgBUGolOAANgIQIAVCATcCHCAFQbMCNgIsIAUgBUEoajYCGCAFIAVBDGo2AiggBUEQakGwlOAAEMMdAAtB5ezgAEEoQaiT4AAQ9BcAC0Hl7OAAQShBuJPgABD0FwALQeXs4ABBKEHIk+AAEPQXAAsgBUEwaiQAC5YIAgh/A34jAEEwayIFJAAgAUEoaiICEN4gIQMCQCACEOMNIgRFBEAgASgC2AIhASAFQQA6ABAgASABIAVBEGoQgRUhASAAQQc2AgAgACABNgIEDAELAkACQAJAAkACQAJ/AkACQAJAAkACQCAEKAIAIgZBG2sOCgIHAwQHBwcHBwABCyABIAEpA0A3A3ggASgCKCABQSU2AihBJEcNBSABKAIsIQEgAEEHNgIAIAAgATYCBAwKCyAGQQJHDQUCQAJAQQQgBC0ACEECa0H/AXEiBiAGQQRPG0EBaw4DAAEBBwsgASgCKCECIAFBJTYCKCABIAEpA0A3A3ggBUEcaiABQTRqKQIANwIAIAVBJGogAUE8aigCADYCACAFIAEpAiw3AhQgBSACNgIQIAVBEGoQxwogAyABKAJ8IgIgAiADSxshASADIAIgAiADSRshAkECDAQLQQAhBAJAIAIQ4w0iAkUNACACKAIAQQJHDQAgAi0ACEEERiEECyABKAIoIQIgAUElNgIoIAEgASkDQDcDeCAFQRxqIAFBNGopAgA3AgAgBUEkaiABQTxqKAIANgIAIAUgASkCLDcCFCAFIAI2AhAgBUEQahDHCiADIAEoAnwiAiACIANLGyEBIAMgAiACIANJGyECQQEMAwsgASABKAJEIgQ2AnwgASABKAJANgJ4IAEoAiggAUElNgIoQRtHDQUgAyAEIAMgBEkbIQcgAyAEIAMgBEsbIQggASkDOCIMQoCAgIBwgyEKIAEpAzAiC0IoiKchAyALQiCIpyEEIAynIQkgC6chAkEADAILIAEgASgCRCIENgJ8IAEgASgCQDYCeCABKAIoIAFBJTYCKEEdRw0FIAMgBCADIARJGyECIAEpAzAiC0KAgICAcIMhCiADIAQgAyAESxsiBEEIdiEDIAEpAzgiDEIgiKchCCALpyEJIAynIQdBAwwBCyABIAEoAkQiBDYCfCABIAEoAkA2AnggASgCKCABQSU2AihBHkcNBSABKAI4IQkgAyAEIAMgBEkbIQIgAyAEIAMgBEsbIgRBCHYhAyABKQMwIgpCIIinIQggCqchB0IAIQpBBAshBiAAIAM7AA0gACAINgIUIAAgBzYCECAAIAQ6AAwgACACNgIIIAAgATYCBCAAIAY2AgAgAEEPaiADQRB2OgAAIAAgCiAJrYQ3AxgMBQtB5ezgAEEoQZiT4AAQ9BcACyAFIAQ2AgwgBUEBNgIUIAVBqJTgADYCECAFQgE3AhwgBUGzAjYCLCAFIAVBKGo2AhggBSAFQQxqNgIoIAVBEGpBsJTgABDDHQALQeXs4ABBKEGok+AAEPQXAAtB5ezgAEEoQbiT4AAQ9BcAC0Hl7OAAQShByJPgABD0FwALIAVBMGokAAuDCQECfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkBBByAAKAIAIgAoAgAiAUEMayICIAJBJk8bQQFrDiQAAQIDBAUGBwgJCgsMDQ4PEBESEyIUFRYXIhgZGhscHR4fICEiCyAAQQRqEMUXIAAoAgQgAEEIaigCABDtKQwhCyAAQQRqEL4JIAAoAgQgAEEIaigCABDiKQwgCyAAKQMIIABBHGotAAAQviMgACgCIBDMGAwfCyAAQQRqEMcCDB4LIABBDGoQxwIMHQsgAEEEahDHAiAAQQhqEMcCDBwLAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEODAABAgMEBQYHCAkLCgsLIABBCGoQhCgMCgsgAEEIahDPHAwJCyAAQQhqELYhDAgLIABBBGoQxwIMBwsgAEEEahCVGQwGCyAAQQRqEK8pDAULIABBBGoQrykMBAsgAEEEahDHAgwDCyAAQQRqEK8pDAILIABBBGoQuioMAQsCQAJAIAAoAgQOAgABAgsgAEEIahC1IgwBCyAAQQhqELYiCyAAQThqEMcCDBsLIABBCGoQzxwMGgsgAEEIahC2IQwZCyAAQQRqEMcCIABBCGoQxwIgAEEMahDHAgwYCyAALQAYQQVGBEAgAEEQahDHAgsgAEEEahDmJiAAKAIoENkoDBcLIABBEGoQxwIgACgCBEGAgICAeEcEQCAAQQRqEOYmCyAAKAIgENkoDBYLIABBBGoQ6CYMFQsgACkDCBD5GgwUCwJAAkACQAJAAkAgACgCCA4GARgYAgMEAAsgACkDEBD5GiAAKQMYEPkaDBcLIAApAxAgAEEgaikDABCMKwwWCyAAKQMgEO0mDBULIABBGGopAwAgAEEgaigCABDAIAwUCyAAKQMQEPkaIAApAxgQ+RoMEwsgAEEEahDTKAwSCyAAQQRqEMcCIAAoAhgQ2SggACgCCCIBENMoIAFBIEEEENURDBELIABBBGoQnRwgACgCBCAAQQhqKAIAEJAqAkAgACgCECIBKAIAQYCAgIB4RwRAIAEQ6SYMAQsgAUEEahDHAgsgACgCEEEYQQQQ1REgACgCIBDCHiAAQSRqEIUoDBALIAApAwggAEEcai0AABC+IyAAQSBqEIsWDA8LIABBDGoQhigMDgsgAEEEahDHAgwNCyAAQQRqEMcCDAwLIABBCGoQnhwMCwsgACkDCCAAQRhqKQMAEIsrDAoLIAAoAgQiAUFAaxDGFyABQfwAahDnCyABKAJ8IAFBgAFqKAIAEJMqIAEoAngQ2SggAUGQAWoQ7CYgAS0APEEGRwRAIAFBEGoQxhcLIAFBoAFBCBDVEQwJCyAAQQRqEOwmDAgLIABBBGoQrykMBwsgAEEEahDHAgwGCyAAQQRqEMcCDAULIABBBGoQrykMBAsgAEEEahC6KgwDCyAAQQRqEK8pDAILIAApAwgQ+RoMAQsgAEEEahCVGQsgAEHAAEEIENURC+IHAQh/IwBBIGsiBSQAAkACfwJAAkAgAC0AAEEBaw4CAQADCyAAQQFqDAELIAVBADYCGEEBIQIgBUEBNgIMIAVByLbCADYCCCAFQgQ3AhAgASgCFCABKAIYIAVBCGoQtSQNASAAKAIECyIALAAJIgQgAC0AASIGQQRHciAALQAAIgdBAXEgAC0ABSIIQQRHcnJFBEBBACECDAELQQEhAiABKAIUIgNBuLbCAEECIAEoAhgiCSgCDCIBEQMADQACQAJAIAZBBEYEQCAIQQRGDQIgBSAAKAAFNgIIDAELIAUgACgAATYCCCAFQQhqIAMgCRD8Bw0CIAhBBEYNASAFIAAoAAU2AgggA0H5r+AAQQEgAREDAA0CCyAFQQhqIAMgCRDlBw0BCwJAIARBAEcgB3JBAXFFDQACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAHQQFxRQRAIARFDRogBEEBcUUEQCAEQQJxDQIgBkEERyECDAgLIAZBBEcNBAwFCyAGQQRHDQEMAgsgBkEERw0EDAYLIANB+a/gAEEBIAERAwANGAsgA0G6tsIAQQEgAREDAA0XIARFDRYgBEEBcQ0AIARBAnENAgwDCyADQfmv4ABBASABEQMADRYLIANBu7bCAEEBIAERAwANFSAEQQJxRQ0BCyADQfmv4ABBASABEQMARQ0BDBQLIARBBHENASAEQQhxRQ0GIAINBAwHCyADQby2wgBBASABEQMADRIgBEEEcQ0BIARBCHENAwwECyACRQ0BC0EBIQIgA0H5r+AAQQEgAREDAA0QC0EBIQIgA0G9tsIAQQEgAREDAA0PIARBCHFFDQELQQEhAiADQfmv4ABBASABEQMARQ0CDA4LCyAEQRBxRQRAIARBIHFFDQcgAg0FDAgLIAINAQwDC0EBIQIgA0G+tsIAQQEgAREDAA0LIARBEHFFDQELQQEhAiADQfmv4ABBASABEQMARQ0BDAoLIARBIHENAQwCC0EBIQIgA0G/tsIAQQEgAREDAA0IIARBIHFFDQELQQEhAiADQfmv4ABBASABEQMARQ0CDAcLCyAEQcAAcUUNAyACDQEMAgtBASECIANBwLbCAEEBIAERAwANBCAEQcAAcUUNAgtBASECIANB+a/gAEEBIAERAwANAwtBASECIANBwbbCAEEBIAERAwANAgsgBEEATg0AIAIEQEEBIQIgA0H5r+AAQQEgAREDAA0CC0EBIQIgA0HCtsIAQQEgAREDAA0BCyADQe/IyABBASABEQMAIQILIAVBIGokACACC7IIAQp/IwBBQGoiBSQAIAVBNGoiCCACIAQgASABIAMRBwACQAJAIAUoAjRFBEAgBUEIaiAFKAI4IgogBSgCPCILKAIMEQAAIAggBSgCCCAFKAIMENUDIAUoAjRBAUYNAiAFKAI8IQIgBSgCOCEBIAogCygCGBEFACEHIAogCygCHBEFACEDIAogCygCEBEFACgCACEIIAUgASACajYCGCAFIAE2AhQgBUEANgIkIAVCgICAgBA3AhwgBUEANgIwIAVCgICAgMAANwIoIAVBFGohDkEEIQ1BACECQYGAxAAhASAIIQQDQCAFQYGAxAA2AhACQAJAAkACQAJ/An8gAUGBgMQARgRAIA4Q3gohAQsCQAJAAkACQCABQYCAxABHBEACf0EBIAFBgAFJDQAaQQIgAUGAEEkNABpBA0EEIAFBgIAESRsLIARqIQQgAUEKaw4EAwEBAgELIAAgBSkCKDcCCCAAIAs2AgQgACAKNgIAIABBEGogBUEwaigCADYCACAFKAIcIAUoAiAQ2ikMDAsgBUEcaiABEOEPIANBAWohA0EADAQLIAUoAhAhASAFQYGAxAA2AhACQAJAIAFBgYDEAEYEQCAFKAIUIgYgBSgCGEYEQEGAgMQAIQYMAwsgBSAGQQFqNgIUIAYtAAAiAcBBAE4NASAFIAZBAmo2AhQgBi0AAUE/cSEJIAFBH3EhDCABQd8BTQRAIAxBBnQgCXIhAQwCCyAFIAZBA2o2AhQgBi0AAkE/cSAJQQZ0ciEJIAFB8AFJBEAgCSAMQQx0ciEBDAILIAUgBkEEajYCFCAMQRJ0QYCA8ABxIAYtAANBP3EgCUEGdHJyIQELQYCAxAAhBiABQYCAxABGDQELIAEhBiABQQpGDQILIAUgBjYCECAFQRxqQQ0Q4Q8gA0EBagwCCyAHQQFqIQcgBUEQahCTHUEAIQMgBUEQahCTHQ0FRSEBDAMLIAdBAWohByAEQQFqIQRBAAshAyAFQRBqEJMdRQshASAFQRBqEJMdDQELIAcgAUEBc2ohBwsgA0UEQEEAIQMMAQsgBUEQahCTHQ0BCyAFQTRqIAUoAiAgBSgCJBD9EyAFKAIoIAJGBEAjAEEQayIBJAAgAUEIaiAFQShqIgYgBigCAEEBQQRBGBCfCCABKAIIIgZBgYCAgHhHBEAgBiABKAIMEOEpAAsgAUEQaiQAIAUoAiwhDQsgDSACQRhsaiIBIAUpAjQ3AgAgBUE8aigCACEGIAEgBCAIazYCFCABIAg2AhAgASAHNgIMIAFBCGogBjYCACAFIAJBAWoiAjYCMCAFQQA2AiQgBCEICyAFKAIQIQEMAAsACyAFKAI4IAUoAjwQ8RQgAEGAgICAeDYCCAsgBUFAayQADwsgBSAFKQI4NwMoQeiAwgBBESAFQShqQYiAwgBB/IDCABDFDgALnAgCFH8CfiMAQfAAayIEJAACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAygCAEEBa0ECTwRAIAJB2AFqIQ4gAkEYaiERIAFBoA1qIRIgASgCrBIhEyABKAKoEiEUIAEpAwAhGCABLQCcDSEPIAEpA6ANIRkgAy0AGCEQIAMoAgwhCSADKAIIIQogAygCFCEGIAEtALwSQQFxIRUgAygCECINIQgDQCAEQcQAaiILIBQgEyAKIAkgCCAGELEZIAQoAkRFDQ4gBCgCSCIMIAdJDQIgBCgCTCAEIBA6AFwgBCAGNgJYIAQgDTYCVCAEIAk2AlAgBCAKNgJMIARBATYCRCAEQQxqIhcgCyANIAwQ/wkgFQ0DIBlCAlENBSACKALIAUECRg0EIARBKGogEiARIBcgBRCrAiAEKAIsIQUgBCgCKCILQQJGBEAgBUEBcUUNAwwOCwJAIAtBAUcEQCAGIAhNDRAgDEF/Rw0BQfiJwwAQ4CkACyAEKAIwIQggBCAQOgBcIAQgBjYCWCAEIA02AlQgBCAJNgJQIAQgCjYCTCAEIAU2AkggBEECNgJEIARBKGoiByAEQcQAaiILIAggBhD/CSAPQQFxDQcCQCAYQgJSBEAgAigCyARBAkYNCiAEQeAAaiABIA4gBxDtAiAEKAJgIgdBAkYNECAHDQEgCyAFIAggBCgCaBDzEiAEKAJMIQogBCgCSCEJIAQoAkQhBkEBDBILIARBATYCSCAEQeCKwwA2AkQgBEIANwJQIAQgBEHsAGo2AkwgBEHEAGpB6IrDABDDHQALIAxBf0YNCSAEKAJkIQcLIAxBAWohCCEFDAALAAsgAS0AnA1BAUYNByABKQMAQgJRDQsgAigCyARBAkYNCCAEQcQAaiIFIAEgAkHYAWogAxC2BSAEQShqIAUQ/xcgBCgCKEECRg0LIAAgBCkCKDcCACAAQQhqIARBMGopAgA3AgAMDgsgD0EBcQ0IIBhCAlENCiACKALIBEECRg0JIARBxABqIgUgASAOIAMQtgUgBEEoaiAFEP8XIAQoAihBAkYNCiAAIAQpAig3AgAgAEEIaiAEQTBqKQIANwIADA0LQeXs4ABBKEHojcMAEPQXAAtB2I3DABDgKQALIARBATYCSCAEQeCKwwA2AkQgBEIANwJQIAQgBEHsAGo2AkwgBEHEAGpB+IrDABDDHQALQeXs4ABBKEGYjcMAEPQXAAtBuIzDABDgKQALQYiKwwAQ4CkAC0Hl7OAAQShB+IzDABD0FwALQZiMwwAQ4CkAC0Hl7OAAQShB+IzDABD0FwALQZiMwwAQ4CkACyAAIAEgAiADEKsEDAILQQALIQEgACAKNgIMIAAgCTYCCCAAIAY2AgQgACABNgIACyAEQfAAaiQAC6kIAgR/AX4jAEHAAWsiAiQAAkACQAJAAkACQAJAAkACQAJAIAAoAgBBAWsOCQECBwYFCAQIAwALIAAoAgxByABsIQQgACgCCCEDA0AgBARAIAIgAyADKQMAQgN9IganQQFqQQAgBkICVBtBAnQiBUHQ7+MAaigCAGopAwAgAyAFQdzv4wBqKAIAaigCABDAIyABIAIpAwAgAigCCEEBEJsGIARByABrIQQgA0HIAGohAwwBCwsgAEEcaiABEOMjDAcLIABBCGogARD7AgwGCyAAKAIYDQUgACgCDEHQAGwhBCAAKAIIIQMDQAJAIAQEQCADKQMAIgZCAlogBqdBAXFyDQEgAkEQaiADKQMIIANBGGooAgAQwCMgASACKQMQIAIoAhgQqxEMAQsgAEEcaiABEOMjDAcLIANB0ABqIQMgBEHQAGshBAwACwALIABBCGogARBeDAQLIABBBGogARDXLAwDCyAAQRBqIAEQ4yMMAgsgASAAKAIEEPIBDAELAkACQCAAKAIIQQFrDgIBAgALIAAtACRBAkcEQCACQSBqIAApAxAgACgCIBDAIyABIAIpAyAgAigCKEEAEJsGCyACQdgAakHIoOMAKQMANwIAIAJBADsBggEgAkEANgJ4IAJCgICAgIABNwJwIAJBADoAbCACQQA2AmggAkKAgICAwAA3AmAgAkEANgJMIAJCgICAgIABNwJEIAJBwKDjACkDADcCUCACIAEvATw7AYABIAIgASgCODYCfCAAQShqIAJBxABqEPEsIAJB8ABqIQACQCACKAJ4IgMEQCABQQxqIAMQhCkgAkGEAWogAigCdCACKAJ4EKEKIAIgAigChAE2ApgBIAIgAigCiAEiAzYCkAEgAiADIAIoAowBQQR0IgRqIgU2ApwBA0AgBEUNAiACQcQAaiADKQMAIAMoAggQqxEgBEEQayEEIANBEGohAwwACwALIAJBkAFqIgMgAkHEAGpBLBD7BhogAUEcaiADEKEaIAAQjiMMAgsgAiAFNgKUASACQZABahCJFyABLQAoRQRAIAEgAigCeBCWHiACIAIoAnA2ApgBIAIgAigCdCIDNgKQASACIAMgAigCeEEEdCIEaiIANgKcAQNAIAQEQCABIAMpAwAgAygCCEEBEJsGIARBEGshBCADQRBqIQMMAQsLIAIgADYClAEgAkGQAWoiABCJFyAAIAJBxABqQSwQ+wYaIAFBHGogABChGgwCCyACQZgBaiAAQQhqKAIANgIAIAIgACkCADcDkAEgAUEsaiACQZABaiIAEKEQIAAgAkHEAGpBLBD7BhogAUEcaiAAEKEaDAELIAAtACRBAkcEQCACQTBqIAApAxAgACgCIBDAIyABIAIpAzAgAigCOEEBEJsGCyABIABBEGoQigILIAJBwAFqJAAL1wcCBn8BfiMAQTBrIgYkACAGQRhqIAIgBUGAgAggBRDuFwJAIAYtABhBBUcEQCAAIAYpAxg3AgAMAQsgBigCHBoCQCAFRQ0AIAZBADoAFiAGQQA6ABcgBSEJIAQhBwNAAkACQCAJRQRAIAZBGGogASACIANBgIAIIAggDEIgiKcQ2AEgBi0AGEEERg0EIAYpAxgiDEL/AYNCBFINAQwECyAGIAw3AhwgBiAINgIYIAZBCGogBxDRDiAGQShqIAEgA0GAgAggBkEYaiAGKAIIIAYoAgwgBkEXaiAGQRZqEJEEIAYtAChBBEcEQCAGKQMoIgxC/wGDQgRSDQELAkACQAJAAkACQAJAAkAgBygCACILQQFrDgQBAgMEAAsgBkEYaiAHQQhqIAEQrg8gBi0AGEEERg0FIAYpAxgiDEL/AYNCBFINBAwFCyAGQRhqIAEgB0EEahD1CSAGLQAYQQRGDQQgBikDGCIMQv8Bg0IEUg0DDAQLIAZBADYCGCAGQShqIAEgBkEYakGiteAAQQEQshMCQCAGLQAoQQRHBEAgBikDKCIMQv8Bg0IEUg0BCyAGQShqIAEgBkEYakHpteAAQQMQshMgBi0AKEEERwRAIAYpAygiDEL/AYNCBFINAQsgBkEoaiAHQQRqIAEQwiogBi0AKEEERwRAIAYpAygiDEL/AYNCBFINAQsgBkEoaiABIAZBGGpBo7XgAEEBELITIAYtAChBBEYNBCAGKQMoIgxC/wGDQgRRDQQLIAxC/wGDQgRSDQIMAwsgBiAHQQRqNgIoIAZBGGogBkEoaiABEMoBIAYtABhBBEYNAiAGKQMYIgxC/wGDQgRSDQEMAgsgBkEYaiABIAdBBGoQ2AkgBi0AGEEERg0BIAYpAxgiDEL/AYNCBFENAQsgDEL/AYNCBFINAQsgBi0AFkUEQCAGQQA6ABYMAgsgASgCREUNASAEIApBKGxqIQggBkEYaiABAn8CQAJAAkACQCALQQFrDgQDAQIDAAsgB0EcagwDCyAIQQxqDAILIAdBBGooAgBBBGoMAQsgCEEUagsoAgBBABDsAiAGLQAYQQRGDQEgBikDGCIMQv8Bg0IEUQ0BCyAAIAw3AgAMAwsgBi0AFwRAIAEgASgCLEEBazYCLCAGQQA6ABcLQQEhCCAKQQFqIQogCUEBayEJIAYgBxDRDiAHQShqIQcgBikDACEMDAALAAsgBkEYaiABIAMgBUVBgIAIEK0PAkAgBi0AGEEERwRAIAYpAxgiDEL/AYNCBFINAQsgAEEEOgAADAELIAAgDDcCAAsgBkEwaiQAC68HAgx/AX4jAEHgAGsiAiQAIAJBADYCLCACQoCAgIDAADcCJCABQcwCaiEIIAFBKGohByACQcgAakEEciEJQQwhDEEEIQ0CQANAAkAgAkHIAGoiCiABQQEQ0wgCQAJAAkAgAi0ASA0AAkACQCACLQBJDQAgBxDDIBogBxDDICEFIAogARDRBCACKAJQIQQgAikDSCIOUA0FIAIgAigCVDYCPCACIAQ2AjggAiAONwMwIAJBMGoQ/BwhAyACQQU6AFAgAiADNgJIIAJBGGogASAKQQFBARA7IAIoAhwhAyACKAIYBEAgAyEEDAYLIAIgAzYCRAJAIAMoAgAiBEEUayIGQRlNQQBBASAGdEHBgIAQcRsEfyAEBSABKAKcAyEEIAJBsQE6AEggASAFIAQgBCAFSxsgBSAEIAQgBUkbIAJByABqEMYZIAMoAgALQS1GBEAgAygCCCEEIAMoAgQgAygCECEGIAMoAgwhCiADEI0rIQMMAQtBACEEAkAgBxDKDSIGRQ0AIAYoAgBBFEcNACAGLQAEQQRHDQAgAkEQaiABEO8BIAIoAhQhBCACKAIQRQ0AIAJBxABqEN4oDAcLIAUgASgCnAMiBiAFIAZJGyEKIAUgBiAFIAZLGyEGCyACKAIkIAtGBEAgAkEkahDRFyACKAIoIQ0LIAwgDWoiBSAENgIAIAVBBGsgBjYCACAFQQhrIAo2AgAgBUEMayADNgIAIAIgC0EBaiILNgIsIAcQyg0iAwRAIAMoAgBBEEYNAgsgAkHIAGogAUEBENMIIAItAEgNAiACLQBJDQACQCAHEMoNIgMEQCADKAIAQRBGDQELIAJB0ABqIAcQkRAgAkEIaiAHEIUUIAJBqMXgADYCTCACQTQ6AEggAigCCCACKAIMIAJByABqEIEVIQQgBxDKDSIDRQ0GIAMoAgBBJEcNBiABIAEpA+ACNwOYAyABKALIAiABQSU2AsgCQSRHDQQgASABKALMAhD/CwwGCwwECyAAIAIpAiQ3AgAgAEEIaiACQSxqKAIANgIADAYLDAILIAIoAkwhBAwCC0Hl7OAAQShBkPLfABD0FwALIAkgCCkCADcCACABKALIAiEDIAFBJTYCyAIgASABKQPgAjcDmAMgCUEIaiAIQQhqKQIANwIAIAlBEGogCEEQaigCADYCACACIAM2AkggAkHIAGoQxgogDEEQaiEMDAELCyAAQYCAgIB4NgIAIAAgBDYCBCACQSRqEO8mCyACQeAAaiQAC70JAQJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQEEHIAAoAgAiACgCACIBQQxrIgIgAkEmTxtBAWsOJAABAgMEBQYHCAkKCwwNDg8QERITIhQVFhciGBkaGxwdHh8gISILIABBBGoQxRcgACgCBCAAQQhqKAIAEO0pDCELIABBBGoQvgkgACgCBCAAQQhqKAIAEOIpDCALIABBCGoQniUgAEEgahDcFwwfCyAAQQRqEM4CDB4LIABBDGoQzgIMHQsgAEEEahDOAiAAQQhqEM4CDBwLAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEODAABAgMEBQYHCAkLCgsLIABBCGoiARDLGSABQRhqEKYnDAoLIABBCGoQgxsMCQsgAEEIahDLIAwICyAAQQRqEM4CDAcLIABBBGoQ8RgMBgsgAEEEahD0KAwFCyAAQQRqEPQoDAQLIABBBGoQzgIMAwsgAEEEahD0KAwCCyAAQQRqEKAqDAELAkACQCAAKAIEDgIAAQILIABBCGoiARCIJyABQRRqEKYnDAELIABBCGoiARCJJyABQRRqEKYnCyAAQThqEM4CDBsLIABBCGoQgxsMGgsgAEEIahDLIAwZCyAAQQRqEM4CIABBCGoQzgIgAEEMahDOAgwYCyAALQAYQQVGBEAgAEEQahDOAgsgAEEEahDmJiAAKAIoENkoDBcLIABBEGoQzgIgACgCBEGAgICAeEcEQCAAQQRqEOYmCyAAKAIgENkoDBYLIABBBGoQ6CYMFQsgAEEIahDLGQwUCwJAAkACQAJAAkAgACgCCA4GARgYAgMEAAsgAEEQahDLGSAAQRhqEMsZDBcLIABBEGoQ8ygMFgsgAEEgahCdJQwVCyAAQRBqEM8eDBQLIABBEGoQyxkgAEEYahDLGQwTCyAAQQRqENMoDBILIABBBGoQzgIgACgCGBDZKCAAKAIIIgEQ0yggAUEgQQQQ1REMEQsgAEEEahCdHCAAKAIEIABBCGooAgAQkCoCQCAAKAIQIgEoAgBBgICAgHhHBEAgARDpJgwBCyABQQRqEM4CCyAAKAIQQRhBBBDVESAAKAIgEMIeIABBJGoQpicMEAsgAEEIahCeJSAAQSBqKAIAIgEQ7iYgAUEMahC5ByABKAIMIAFBEGooAgAQkyogAUEwahCoJyABKAI0EMIeIAEoAjgQ2SggAUEYahDvJiABQcAAQQQQ1REMDwsgAEEMahCoJwwOCyAAQQRqEM4CDA0LIABBBGoQzgIMDAsgAEEIahCEGwwLCyAAQQhqEPUoDAoLIAAoAgQiAUFAaxDMGSABQfwAahDnCyABKAJ8IAFBgAFqKAIAEJMqIAEoAngQ2SggAUGQAWoQ7CYgAS0APEEGRwRAIAFBEGoQzBkLIAFBoAFBCBDVEQwJCyAAQQRqEOwmDAgLIABBBGoQ9CgMBwsgAEEEahDOAgwGCyAAQQRqEM4CDAULIABBBGoQ9CgMBAsgAEEEahCgKgwDCyAAQQRqEPQoDAILIABBCGoQyxkMAQsgAEEEahDxGAsgAEHAAEEIENURC6MHAgx/AX4jAEHgAGsiAiQAIAJBADYCLCACQoCAgIDAADcCJCABQSxqIQggAUEoaiEHIAJByABqQQRyIQlBDCEMQQQhDQJAA0ACQCACQcgAaiIKIAFBARDWCAJAAkACQCACLQBIDQACQAJAIAItAEkNACAHEN4gGiAHEN4gIQUgCiABENMEIAIoAlAhBCACKQNIIg5QDQUgAiACKAJUNgI8IAIgBDYCOCACIA43AzAgAkEwahD8HCEDIAJBBToAUCACIAM2AkggAkEYaiABIApBAUEBEDogAigCHCEDIAIoAhgEQCADIQQMBgsgAiADNgJEAkAgAygCACIEQRRrIgZBGU1BAEEBIAZ0QcGAgBBxGwR/IAQFIAEoAnwhBCACQbEBOgBIIAEgBSAEIAQgBUsbIAUgBCAEIAVJGyACQcgAahDYGSADKAIAC0EtRgRAIAMoAgghBCADKAIEIAMoAhAhBiADKAIMIQogAxCNKyEDDAELQQAhBAJAIAcQ4w0iBkUNACAGKAIAQRRHDQAgBi0ABEEERw0AIAJBEGogARDwASACKAIUIQQgAigCEEUNACACQcQAahC4KQwHCyAFIAEoAnwiBiAFIAZJGyEKIAUgBiAFIAZLGyEGCyACKAIkIAtGBEAgAkEkahDRFyACKAIoIQ0LIAwgDWoiBSAENgIAIAVBBGsgBjYCACAFQQhrIAo2AgAgBUEMayADNgIAIAIgC0EBaiILNgIsIAcQ4w0iAwRAIAMoAgBBEEYNAgsgAkHIAGogAUEBENYIIAItAEgNAiACLQBJDQACQCAHEOMNIgMEQCADKAIAQRBGDQELIAJB0ABqIAcQlgsgAkEIaiAHELgUIAJBqMXgADYCTCACQTQ6AEggAigCCCACKAIMIAJByABqEIEVIQQgBxDjDSIDRQ0GIAMoAgBBJEcNBiABIAEpA0A3A3ggASgCKCABQSU2AihBJEcNBCABIAEoAiwQhgwMBgsMBAsgACACKQIkNwIAIABBCGogAkEsaigCADYCAAwGCwwCCyACKAJMIQQMAgtB5ezgAEEoQZDy3wAQ9BcACyAJIAgpAgA3AgAgASgCKCEDIAFBJTYCKCABIAEpA0A3A3ggCUEIaiAIQQhqKQIANwIAIAlBEGogCEEQaigCADYCACACIAM2AkggAkHIAGoQxwogDEEQaiEMDAELCyAAQYCAgIB4NgIAIAAgBDYCBCACQSRqEO8mCyACQeAAaiQAC6AHAQt/IwBBQGoiAyQAIAAgAikCCDcCGCAAQSBqIAJBEGopAgA3AgAgAEEoaiACQRhqKAIANgIAIAIoAgQhBCACKAIAIQYCQAJAAkACQAJAAkAgASgCAEEBaw4CAAIBCyADQQA2AiAgA0KAgICAwAA3AhggA0EtNgI4QQQhDANAIAMtADghDQNAIAQgCUkNBCAGIAlqIQECQCAEIAlrIgVBB00EQEEAIQIDQCACIAVGDQcgASACai0AAEEtRg0CIAJBAWohAgwACwALIANBLSABIAUQtAcgAygCAEEBRw0FIAMoAgQhAgsgAiAJaiICQQFqIglFIAQgCUlyDQAgAiAGaiIBLQAAIA1HDQACfwJAAkACQAJ/AkAgAkUEQEGAgMQAIQJBASEBDAELAkAgAiAESQRAIAEsAABBv39MDQ0gAiEBDAELIAIgBCIBRw0MCyABIAZqIgVBAWssAAAiAkEASARAIAJBP3ECfyAFQQJrLQAAIgfAIgpBQE4EQCAHQR9xDAELIApBP3ECfyAFQQNrLQAAIgfAIghBQE4EQCAHQQ9xDAELIAhBP3EgBUEEay0AAEEHcUEGdHILQQZ0cgtBBnRyIQILQQAgAUEBaiIBRQ0BGgsgASAETw0BIAEgBmosAABBv39MDQIgAQsiBSAERw0CQYCAxAAMAwsgASAERw0AIAQhBUGAgMQADAILIAYgBCABIARBoPTgABDUJgALIAUgBmoiBywAACIBQQBOBEAgAUH/AXEMAQsgBy0AAUE/cSEIIAFBH3EhCiAKQQZ0IAhyIAFBX00NABogBy0AAkE/cSAIQQZ0ciEIIAggCkEMdHIgAUFwSQ0AGiAKQRJ0QYCA8ABxIActAANBP3EgCEEGdHJyCyEBIAJBgIDEAEYNACACEJ0YRSABQYCAxABGcg0AIAEQnRhFDQALIAMoAhggC0YEQCADQRhqEPUWIAMoAhwhDAsgDCALQQJ0aiAFNgIAIAMgC0EBaiILNgIgDAALAAsgA0EANgIQIANCgICAgMAANwMIDAMLIANBCGogBiAEIAEoAgQRBAAMAgsgA0EQaiADQSBqKAIANgIAIAMgAykCGDcDCAwBCyAGIARBACACQZD04AAQ1CYACyADKAIQIQIgAygCDCEBIAMoAgghBSAAQQA2AiwgACAENgIUIAAgBjYCECAAIAU2AgggACABNgIEIAAgATYCACAAIAEgAkECdGo2AgwgA0FAayQAC70IAiR/AX4jAEHABWsiAiQAIAJBEGogASgCDCABKAIQEJILIAEpAwAhJiABLQAkIQUgAkEcaiABQRRqEMYMIAIgBToALCACICY3AgggASgC8AIhDiABKALsAiEPAkACQCABKAKAAUEBRwRAQQAhBQwBCyABKAKEASILBEAgCyALKAIAQQFqIgQ2AgAgBEUNAgsgASgCiAEiBEUEQEEBIQVBACEEDAELQQEhBSAEIAQoAgBBAWoiAzYCACADRQ0BCyABKAKYAiIGQYABTQR/IAFBlQFqBSABKAKYASEGIAEoApwBCyEDIAEoAvQCIRAgASgC2AIhESABKALUAiESIAEoAswCIRMgASgCyAIhFCABKALEAiEVIAEoAsACIRYgASgC0AIhFyABKAKsAiEYIAEoAqgCIRkgASgCpAIhGiABKAKgAiEbIAEoApwCIRwgAS0AvwIhHSABLQC+AiEeIAEtAL0CIR8gASgCkAEhICABKAKMASEhIAEtALwCISIgAkEAOgAwIAJBADYCtAEgAkEwaiIMIAMgAyAGahDGBSACQbgEaiINIAxBiAEQ+wYaIAEtAJ8DISMgAS8BugIhAyABLQC6AiEkIAEoAtwCIgYgBigCAEEBaiIHNgIAIAdFDQAgASgC4AIiByAHKAIAQQFqIgg2AgAgCEUNACABKALkAiIIIAgoAgBBAWoiCTYCACAJRQ0AIAEoAugCIgkgCSgCAEEBaiIKNgIAIApFDQAgAkGwA2oiJSANQYgBEPsGGiABKAKgAyIKIAooAgBBAWoiDTYCACANRQ0AIAIgIDYCmAEgAiAhNgKUASACIAQ2ApABIAIgCzYCjAEgAiAFNgKIASACQZwBaiAlQYgBEPsGGiACQcACaiABQbgCai8BADsBACACIBg2ArQCIAIgGTYCsAIgAiAaNgKsAiACIBs2AqgCIAIgHDYCpAIgAiAQNgL8AiACIA42AvgCIAIgDzYC9AIgAiAJNgLwAiACIAg2AuwCIAIgBzYC6AIgAiAGNgLkAiACIBE2AuACIAIgEjYC3AIgAiAXNgLYAiACIBM2AtQCIAIgFDYC0AIgAiAVNgLMAiACIBY2AsgCIAIgHToAxwIgAiAeOgDGAiACIB86AMUCIAIgIjoAxAIgAiABKQOwAjcDuAIgAiADQYD+A3FBDyADICRBD0YbQf8BcXI7AcICIAJBiANqIAFBgANqLwEAOwEAIAJBkgNqIAFBigNqKQEANwEAIAJBmgNqIAFBkgNqKQEANwEAIAJBnwNqIAFBlwNqKQAANwAAIAIgCjYCqAMgAiAjOgCnAyACIAEpA/gCNwOAAyACIAEpAYIDNwGKAyABKQN4ISYgDCABQShqEJ4DIAJB2ABqIAFB0ABqEJ4DIAIgJjcDgAEgACACQQhqQSgQ+wZBKGogDEGAAxD7BhogAkHABWokAA8LAAvjBwIEfwF+IwBBMGsiAyQAIAEoAgAoAgAiASgCBCEEIANBGGogAiABKAIAIgVBABDVAQJAAkACQAJAIAMtABhBBEcEQCADKQMYIgdC/wGDQgRSDQELIAEtAERFDQIgA0EANgIYIANBCGogAiADQRhqQaS14ABBBxCyEyADLQAIQQRHBEAgAykDCCIHQv8Bg0IEUg0CCyADQRhqIAIQ0BEgAy0AGEEERg0CIAMpAxgiB0L/AYNCBFENAiAAIAc3AgAMAwsgACAHNwIADAILIAAgBzcCAAwBCyADQQA2AgggA0EYaiACIANBCGpB5bbgAEEJELITAkAgAy0AGEEERg0AIAMpAxgiB0L/AYNCBFENACAAIAc3AgAMAQsgA0EYaiACENARAkACQAJAAkACQAJAAkAgAy0AGEEERwRAIAMpAxgiB0L/AYNCBFINAQsgA0EYaiABQQhqIAIQ5BIgAy0AGEEERwRAIAMpAxgiB0L/AYNCBFINAgsCQCABKAIgRQ0AIAMgAUEgajYCKCADQRhqIANBKGogAhDBKSADLQAYQQRGDQAgAykDGCIHQv8Bg0IEUg0DCwJAIAEoAkAiBkUNACADQRhqIAIQ0BEgAy0AGEEERwRAIAMpAxgiB0L/AYNCBFINBQsgA0EYaiACIANBCGpB3LXgAEEHELITIAMtABhBBEcEQCADKQMYIgdC/wGDQgRSDQYLIANBGGogAhDQESADLQAYQQRHBEAgAykDGCIHQv8Bg0IEUg0HCyADQRhqIAIgBSAEIAEoAjwgBhCjBCADLQAYQQRGDQAgAykDGCIHQv8Bg0IEUQ0AIAAgBzcCAAwICwJAIAItAE0NACADQRhqIAIQ0BEgAy0AGEEERg0AIAMpAxgiB0L/AYNCBFINBwsgASgCNCEEIANBKGogAiABKAIwIgVBABDVAQJAAkACQCADLQAoQQRHBEAgAykDKCIHQv8Bg0IEUg0BCyADQQA2AhggA0EoaiACIANBGGpBorXgAEEBELITIAMtAChBBEcEQCADKQMoIgdC/wGDQgRSDQELIANBKGogAiAFIAQgASgCKCABKAIsEFogAy0AKEEERwRAIAMpAygiB0L/AYNCBFINAQsgA0EoaiACIANBGGpBo7XgAEEBELITIAMtAChBBEYNASADKQMoIgdC/wGDQgRRDQELIAdC/wGDQgRSDQELIABBBDoAAAwICyAAIAc3AgAMBwsgACAHNwIADAYLIAAgBzcCAAwFCyAAIAc3AgAMBAsgACAHNwIADAMLIAAgBzcCAAwCCyAAIAc3AgAMAQsgACAHNwIACyADQTBqJAALtwgCCX8BfiMAQaABayIBJAAgAUIANwIoIAFCgICAgMAANwIgIAFCCDcCGCABQgA3AhAgAUKAgICAwAA3AggCQAJAAkADQCACQQFxBEAgAUGIAWogASgCDCABKAIQEOgHIAEoAogBIgNBhICAgHhGBEAgAUEIahC2ICEDIABBhICAgHg2AgAgACADNgIEDAULIAAgASkCjAE3AgQgAEEMaiABQZQBaigCADYCACAAIAM2AgAMAwsgAUGIAWoiBCACEOMcAkACfwJAIAEoAogBRQRAIAEoAowBIQMgAUEANgJAIAFCgICAgBA3AzggAUIANwMwIAQgAUEwahDZECABKAKIAQ0BQYKAgIB4DAILIAAgASkDkAE3AwggACADNgIEIABBgICAgHg2AgAMBQsgASgCkAFFDQFBg4CAgHgLIQQgACADNgIEIAAgBDYCAAwDCyABQQhqIAMQowUgAUHYAGogAUFAaygCADYCACABQdAAaiABQThqKQMANwMAIAEgASkDMDcDSCADQQN0IQkDQCABQeAAaiABQcgAahDZECABKAJgRQRAQQEhAgwCCwJAAkACQAJAAkACQCABKAJkIgRB/v///wdNBEAgASgCbCEGIAEoAmghAiAB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aiAFQQhqKAIANgIAIAJBAToAKCACIAE2AiAgAiAENgIkIAJBAToAOSACIAs3AwAgAiABLwA7OwA7IAEtADghBCACIAEtAD06AD0gAiAEOgA4IAJBAToAOiADQRxqIAIQvA0gA0EEaiACEJQaIANBGGogAhCqJSACEIEpDAcLIANBFWotAABFDQUgA0EQaiABEN4rDAULIANBFGotAABBAUYEQCADQQRqIAEQ3isLIANBEGogARCqJQwFCyADQTRqLQAAQQFGBEAgA0EwaiABEN4rCyABIAMQtRUMBAsgASgCMBC+ESEEIAdBCGpByKDjACkDACIKNwIAIAdBwKDjACkDACILNwIAIAJBCGogCjcDACAGIAUpAgA3AgAgBkEIaiAFQQhqKAIANgIAIAJBAToAKCACIAE2AiAgAiAENgIkIAJBAToAOSACIAs3AwAgAiABLwA7OwA7IAEtADghBCACIAEtAD06AD0gAiAEOgA4IAJBAToAOiADQSBqIAIQvA0gA0Ekai0AAEEBRgRAIANBEGogAhDeKwsgA0EEaiACEJQaIANBHGogAhCqJSACEIEpDAMLIAEgA0EEahC0FQwCCyACQUBrJAAPCyABKAIwEL4RIQQgB0EIakHIoOMAKQMAIgo3AgAgB0HAoOMAKQMAIgs3AgAgAkEIaiAKNwMAIAYgBSkCADcCACAGQQhqIAVBCGooAgA2AgAgAkEBOgAoIAIgATYCICACIAQ2AiQgAkEBOgA5IAIgCzcDACACIAEvADs7ADsgAS0AOCEEIAIgAS0APToAPSACIAQ6ADggAkEBOgA6IANBDGogAhCqJSACEIEpCyAAQThqIQAMAAsAC94HAQZ/IwBBgAJrIgQkACAEIAM2AjQCQCABQShqIggQyg0iBUUNACAFKAIAQRVHDQACQAJAAkACQAJAAkACQAJAAkACQCAFLQAEIgkEQAJAIARBNGogAS0ArQJBAXEQnA4NACAEQShqIAMQjQMgBCgCLCEFIAQoAighByABLQCgAkECRwRAIARBwAA6AMABIAEgByAFIARBwAFqEMYZDAELIARBqgE6AMABIAEgByAFIARBwAFqEMYZCyABLQCgAkECRw0EIAMoAgBBGkcNBCADQQhqEKocDQEMBAsgBEHoAGogAUECIAMQZCAEKAJsIQMgBCgCaCIFQQdGDQkgBEGwAWogBEGIAWopAwA3AwAgBEGoAWogBEGAAWopAwA3AwAgBEGgAWogBEH4AGopAwA3AwAgBCAEKQNwNwOYASAEIAM2ApQBIAQgBTYCkAEgBEHAAWoiAyAEQZABahCEBSAEKALAAUEMRwRAIARBOGogA0EwEPsGGgwFCyAEQQhqIARByAFqIgIQjgwgBCgCDCEDIAQoAgggBEHBADoAaCADIARB6ABqEIEVIQMgCBDKDSIGRQ0CIAYoAgBBJEcNAiABIAEpA+ACNwOYAyABKALIAiABQSU2AsgCQSRHDQEgASABKALMAhD/CwwCCyAEQSBqIAMQjQMgBCgCJCEFIAQoAiAhByAEQYYBOgDAASABIAcgBSAEQcABahDLHgwCC0Hl7OAAQShB7I7gABD0FwALIAIQnRIMBgsgBEHAAWoiBSADEIMTIAQoAsABQQxGDQEgBEE4aiAFQTAQ+wYaCyABKALIAiEDIAFBJTYCyAIgASABKQPgAjcDmAMgBEHMAWogAUHUAmopAgA3AgAgBEHUAWogAUHcAmooAgA2AgAgBCABKQLMAjcCxAEgBCADNgLAASAEQcABaiIFEMYKIARBEGogARC4BiAEKAIUIQMgBCgCEA0BIAEoApwDIQEgBSAEQThqQTAQ+wYaIAQgCToA/AEgBCADNgL4ASAEIAIgASABIAJJGzYC9AEgBCACIAEgASACSxs2AvABIAUQ3CghAwwFCyAEIAQoAsQBIgI2ArwBIARBGGogAhCNAyAEKAIcIQIgBCgCGCAEQcEAOgBoIAIgBEHoAGoQgRUhAyAIEMoNIgJFDQIgAigCAEEkRw0CIAEgASkD4AI3A5gDIAEoAsgCIAFBJTYCyAJBJEcNASABIAEoAswCEP8LDAILIARBOGoQ8gsMAgtB5ezgAEEoQdyO4AAQ9BcACyAEQbwBahDeKAtBASEGCyAAIAM2AgQgACAGNgIAIARBgAJqJAALzAcBBn8jAEGAAmsiBCQAIAQgAzYCNAJAIAFBKGoiCBDjDSIFRQ0AIAUoAgBBFUcNAAJAAkACQAJAAkACQAJAAkACQAJAIAUtAAQiCQRAAkAgBEE0aiABLQCFA0EBcRCcDg0AIARBKGogAxCOAyAEKAIsIQUgBCgCKCEHIAEtAPgCQQJHBEAgBEHAADoAwAEgASAHIAUgBEHAAWoQ2BkMAQsgBEGqAToAwAEgASAHIAUgBEHAAWoQ2BkLIAEtAPgCQQJHDQQgAygCAEEaRw0EIANBCGoQqhwNAQwECyAEQegAaiABQQIgAxBjIAQoAmwhAyAEKAJoIgVBB0YNCSAEQbABaiAEQYgBaikDADcDACAEQagBaiAEQYABaikDADcDACAEQaABaiAEQfgAaikDADcDACAEIAQpA3A3A5gBIAQgAzYClAEgBCAFNgKQASAEQcABaiIDIARBkAFqEIQFIAQoAsABQQxHBEAgBEE4aiADQTAQ+wYaDAULIARBCGogBEHIAWoiAhCQDCAEKAIMIQMgBCgCCCAEQcEAOgBoIAMgBEHoAGoQgRUhAyAIEOMNIgZFDQIgBigCAEEkRw0CIAEgASkDQDcDeCABKAIoIAFBJTYCKEEkRw0BIAEgASgCLBCGDAwCCyAEQSBqIAMQjgMgBCgCJCEFIAQoAiAhByAEQYYBOgDAASABIAcgBSAEQcABahDXHgwCC0Hl7OAAQShB7I7gABD0FwALIAIQshIMBgsgBEHAAWoiBSADEIMTIAQoAsABQQxGDQEgBEE4aiAFQTAQ+wYaCyABKAIoIQMgAUElNgIoIAEgASkDQDcDeCAEQcwBaiABQTRqKQIANwIAIARB1AFqIAFBPGooAgA2AgAgBCABKQIsNwLEASAEIAM2AsABIARBwAFqIgUQxwogBEEQaiABEK0GIAQoAhQhAyAEKAIQDQEgASgCfCEBIAUgBEE4akEwEPsGGiAEIAk6APwBIAQgAzYC+AEgBCACIAEgASACSRs2AvQBIAQgAiABIAEgAksbNgLwASAFENwoIQMMBQsgBCAEKALEASICNgK8ASAEQRhqIAIQjgMgBCgCHCECIAQoAhggBEHBADoAaCACIARB6ABqEIEVIQMgCBDjDSICRQ0CIAIoAgBBJEcNAiABIAEpA0A3A3ggASgCKCABQSU2AihBJEcNASABIAEoAiwQhgwMAgsgBEE4ahD4CwwCC0Hl7OAAQShB3I7gABD0FwALIARBvAFqELgpC0EBIQYLIAAgAzYCBCAAIAY2AgAgBEGAAmokAAuaCAEJfyMAQcABayICJAAgAiAAQYACaiIENgIkIAIgACgC9AFBCGoiAzYCICACIAEoAgQiBSgCOCIBIAUoAjxBBnRqNgJEIAIgATYCQCACIAJBIGo2AkggAkH0AGogAkFAaxCYFQJAIAIoAnRFBEAgAkEANgIwIAJCgICAgMAANwMoDAELIAJBGGpBBEEMEJcVIAJB/ABqKAIAIQQgAigCGCEDIAIoAhwiASACKQJ0NwIAIAFBCGogBDYCACACQQE2AlQgAiABNgJQIAIgAzYCTCACQeAAaiACQcgAaigCADYCACACIAIpAkA3A1hBDCEDQQEhBANAIAJBgAFqIAJB2ABqEJgVIAIoAoABBEAgAigCTCAERgRAIAJBzABqIARBAUEEQQwQtxcgAigCUCEBCyABIANqIgYgAikCgAE3AgAgBkEIaiACQYgBaigCADYCACACIARBAWoiBDYCVCADQQxqIQMMAQsLIAJBMGogAkHUAGooAgA2AgAgAiACKQJMNwMoIAIoAiQhBCACKAIgIQMLIAIgBTYCPCACIAQ2AjggAiADNgI0AkACQCAAIAAoAvgBIAAoAvwBIAJBKGoiA0Hs1N8AEPoBDQAgACAAKAL4ASAAKAL8ASADQezU3wAQjgENACACQRBqIAMQ6xcgACAAKAL4ASAAKAL8ASADQZwFIAIoAhAiASACKAIUIgQQPA0AIAAgACgC+AEgACgC/AEgA0GdBRCUBA0AIAAgAEH4AWogA0Hs1N8AIAEgBBDiBA0AIAAoAsQBQYCAgIB4Rg0BIAJBADYCkAEgAkEBNgKEASACQcDO3wA2AoABIAJCBDcCiAEgACgC+AEgAkGAAWoiByAAKAL8ASgCFBECAA0AIAAoAgAhASAAKAIEIQUgACgC5AEhBCACQQhqIAAoAgggACgCDBC/KCACKAIIIQMgAigCDCEGIAAoAswBIQggACgCyAEhCSACIAAtAPIBOgC9ASACIARBBGsiCkEAIAQgCk8bNgK4ASACQQI2ArQBIAJBq83fADYCsAEgAkECNgKsASACQavN3wA2AqgBIAIgBjYCpAEgAiAFNgKcASACQpmAgICQAzcCkAEgAkLEk4CAwAA3AogBIAJCgYCAgID9ADcCgAEgAkEBOgC8ASACQQEgAyADQQNGGzYCoAEgAkEBIAEgAUEDRhs2ApgBIAJB9ABqIgEgAC0A8QEgCSAIIAcQOSACQQU2AlAgAkECNgJcIAJBwM3fADYCWCACQgE3AmQgAiABNgJMIAIgAkHMAGo2AmAgACgC+AEgAkHYAGogACgC/AEoAhQRAgAgAigCdCACKAJ4ENopRQ0BC0Gc6+AAQSsgAkGAAWpBpNTfAEGk1t8AEMUOAAsgAkEoahCPKCACQcABaiQAC80HAgN/AX4jAEEwayIEJAACQAJAIAIEQCABKAJEIgZFBEAgAEEEOgAADAMLIARBHGogBiACIAEoAkgoAjQRBAAgBCgCHEGAgICAeEYEQCAAQQQ6AAAMAwsgBCgCJEEYbCEGIAQoAiAhAgJAAkACQANAIAZFBEAgAEEEOgAADAYLAkACQAJAIAItABBFBEAgA0UNASABLQBNDQEgBEEoaiABQfqv4ABBARDRESAELQAoQQRGDQEgBCkDKCIHQv8Bg0IEUQ0BIAAgBzcCAAwJCwJAIANFDQAgAS0ATQ0AIARBKGogAUH6r+AAQQEQ0REgBC0AKEEERg0AIAQpAygiB0L/AYNCBFENACAAIAc3AgAMCQsCQAJAAkACQAJAIAIoAggiBUUNACAEQShqIAEgBRDUHCAELQAoQQRGDQAgBCkDKCIHQv8Bg0IEUg0BCyAEQShqIAFBn73gAEECENERIAQtAChBBEcEQCAEKQMoIgdC/wGDQgRSDQILIARBCGogAhCUDCAEQShqIAEgBCgCCCAEKAIMENERIAQtAChBBEcEQCAEKQMoIgdC/wGDQgRSDQMLIAIoAgwiBUEDSQ0DIARBKGogASAFQQJrENQcIAQtAChBBEYNAyAEKQMoIgdC/wGDQgRRDQMgACAHNwIADAwLIAAgBzcCAAwLCyAAIAc3AgAMCgsgACAHNwIADAkLIARBKGogAUGhveAAQQIQ0RECQAJAIAQtAChBBEcEQCAEKQMoIgdC/wGDQgRSDQELIAEtAE0NAyAEQShqIAEQ0BEgBC0AKEEERg0DIAQpAygiB0L/AYNCBFINAQwDCyAAIAc3AgAMCQsgACAHNwIADAgLAkAgAigCCCIFRQ0AIARBKGogASAFENQcIAQtAChBBEYNACAEKQMoIgdC/wGDQgRSDQILIARBKGogAUGdveAAQQIQ0REgBC0AKEEERwRAIAQpAygiB0L/AYNCBFINBAsgBEEQaiACEJQMIARBKGogASAEKAIQIAQoAhQQ0REgBC0AKEEERwRAIAQpAygiB0L/AYNCBFINBQsCQCACKAIMIgVFDQAgBEEoaiABIAUQ1BwgBC0AKEEERg0AIAQpAygiB0L/AYNCBFINBgsgBEEoaiABELQRIAQtAChBBEYNACAEKQMoIgdC/wGDQgRRDQAgACAHNwIADAcLIAJBGGohAiAGQRhrIQYMAQsLIAAgBzcCAAwECyAAIAc3AgAMAwsgACAHNwIADAILIAAgBzcCAAwBCyAAQQQ6AAAMAQsgBEEcahD+IgsgBEEwaiQAC8cHAQx/IwBBQGoiBSQAIAVBJGogAxCkFSAFKAIoIQcgBSgCJCEGAkAgBS0ALEEBRwR/QQIFIAUtAC0hBAJAIAFB2ARqIggQgioNACAIIAQQ3BVFDQAgBSAErUIghkIEhDcDMAwCCyABIARqQdgAai0AAAsiCCEEAn8CQAJAAkAgBkEBaw4CAAECCyAEQQZqIQQMAQsgAS0AUUEBcUUEQCAFIAetQiCGQgKENwMwDAMLIAEoAvgEKALUAiAHSwRAIAdBBmwgBGpBDGohBAwBCyABEIMUDAELIAIoAoQBIAIoAogBIARB9OTDABC3HygCAAsiBEEATgRAIAVBBTYCMCAFIAQ2AjQMAQsgBSACNgI8IAUgATYCOCAFQTBqIAVBOGogBiAHIAgQwQELIAVBGGogBUEwaiADKAIQIgQQ3AwgBSgCHCEGAkACQAJAAkACQAJAAkAgBSgCGEUEQCAEIAMoAgwiByAEIAdLGyELIAQgAygCFCIIIAQgCEsbIQwgAy0AGCEOIAMoAgghDUEAIQMCQANAIAQgDEYEQAJAAkAgByAITQRAIAVBCGogASACIAYQqA4gBSgCCEEBcQ0CIAUoAgwiCEGAgIDAAHFFDQFBACEEIAEgAiAIQQAQiw4hBiAHIQkMDAsgBSABIAIgBiAIIA1qLQAAIgQQig4gBSgCAEEBcQ0GIAUoAgQiB0GAgIDAAHENByAHQYCAgIACcUUNACAEIAgQ7RohBAwKCyAKIAwgAxshBiADQX9zQQFxIQQMCgsgBxD0HCEEDAgLIAQgC0YNBSAFQRBqIAEgAiAGIAQgDWoiDy0AABCKDiAFKAIQQQFxDQYCQAJAIAUoAhQiBkH///8/TQ0AIAZBgICAwABxRQRAIAZBgICAgARxDQIgBkGAgICAAnFFDQEgDy0AACAEEO0aEJgPIQEgAEECNgIAIAAgATYCBAwMC0EBIQMgASACIAZBABCLDiEKIA5BAXENAyAEIQkLIARBAWohBAwBCwsgACAJNgIIIAAgCiAEIAMbNgIEIAAgA0F/c0EBcTYCAAwICyAAIAQ2AgggACAKNgIEIABBADYCAAwHCyAGEJgPIQEgAEECNgIAIAAgATYCBAwGCyAIEPQcIQQMAwtBACEEIAEgAiAHQQAQiw4hBiAIIQkMAwsgCyAHQdzpwwAQrBAACyAEEPQcEJgPIQEgAEECNgIAIAAgATYCBAwCCyAEEJgPIQEgAEECNgIAIAAgATYCBAwBCyAAIAk2AgggACAGNgIEIAAgBDYCAAsgBUFAayQAC9YHAQl/IwBB0ABrIgIkAAJAA0AgASgCCCIDBEAgASADQQFrIgM2AgggASgCBCADQQN0aiIEKAIEIQMgBCgCACIFQf+/A0shCANAIAggA0GAsANJckUEQCABQYDAAyADEN0YQf+vAyEDDAELIAMgBUkNAkFwIQYDQCAGQQRqIgRFBEAgA0GAAU8EQEEGIQYCQAJAAkACQANAIAZBGEYEQCACQQA2AhwgAkEANgIgIAVBgLADc0GAgMQAa0H/j7x/TQ0DIANBgLADc0GAgMQAa0H/j7x/TQ0EIAJBEGogBSACQRxqEOQJIAIoAhQhASACQQhqIAMgAkEgahDkCSACIAE2AiwgAiACKAIMIgM2AkggASADRw0FAn8CQAJAAkACQCABQQJrDgMBAgMACyACIAE2AiwgAkEBNgI0IAJBhLfWADYCMCACQgE3AjwgAkEHNgJMIAIgAkHIAGo2AjggAiACQSxqNgJIIAJBMGpBjLfWABDDHQALQQEhBiACQStqIQQgAkEsaiEFIAJByABqIQcgAkEwaiEDIAItACEhCCACLQAcIQkgAi0AICEKIAItAB0MAgsgAiACLQAcOgAwIAIgAi0AIDoASEECIQYgAkEpaiEEIAJBKmohBSACQStqIQcgAkEsaiEDIAItACIhCCACLQAdIQkgAi0AISEKIAItAB4MAQsgAiACLQAcOgAwIAIgAi0AIDoASCACIAItAB06ACwgAiACLQAhOgArQQMhBiACQSdqIQQgAkEoaiEFIAJBKWohByACQSpqIQMgAi0AIyEIIAItAB4hCSACLQAiIQogAi0AHwshASADIAk6AAAgByAKOgAAIAUgAToAACAEIAg6AAAgACAGOgAAIAAgAi0AMDoAASAAIAItAEg6AAIgACACLQAsOgADIAAgAi0AKzoABCAAIAItACo6AAUgACACLQApOgAGIAAgAi0AKDoAByAAIAItACc6AAgMDAsCQEF/IAZ0IgQgBXEgAyAEcSIHRwRAIAUgBEF/cyIJcQ0BIAMgBHJBf0cNAwsgBkEGaiEGDAELCyABIAUgCXIiBEEBaiADEN0YIAQhAwwHCyABIAcgAxDdGCAHQQFrIQMMBgtBnLfWABDgKQALQay31gAQ4CkACyACQQA2AjAgAkEsaiACQcgAaiACQTBqQby31gAQ4RoACyAAIAM6AAIgACAFOgABIABBADoAAAwFCyAGQazg4wBqIQcgBCEGIAUgBygCACIESyADIARNcg0ACyABIARBAWogAxDdGCAEIQMMAAsACwsgAEEEOgAACyACQdAAaiQAC5wHAhN/A34jAEGQAWsiAiQAIAEoAgQhDSACQQhqIAEoAggiCEEIQdgAEPsUIAhB2ABsIQ4gAkEkaiEJIAJBIGohCiACQRhqIQUgAkHQAGohDyACKAIMIQsgAigCCCIQIQYDQCAGRSAEIA5GckUEQAJ/IAQgDWoiASgCAEEFRwRAIAFBLGooAgAhESABQShqKAIAIRICQCABQTBqIgMpAwBQBEAgDyABQThqENUhIAJCADcDSAwBCyACQcgAaiADEJAfCyABKAIAIgdBBEcEQAJAAkACQAJAAkACQCAHQQFrDgMBAgMACwJAAkACQAJAAkACQAJAAkAgAUEIaigCAEEBaw4GAQIDBAUGAAsgBSABQRBqEIUeIAJBADYCEAwGCyACQQE2AhAgAiABQRRqLQAAOgAcIAIgAUEMaikCADcCFAwFCyACQQI2AhAgAiABQQxqKQIANwIUDAQLIAUgAUEQahDAHiACQQM2AhAMAwsgBSABQRBqEO0OIAJBBDYCEAwCCyABQSBqKQIAIRUgAUEQaikDABD8GiEWIAFBGGopAwAQ/BohFyACIBU3AyggAiAXNwMgIAIgFjcDGCACQQU2AhAMAQsgBSABQRBqEIYeIAJBBjYCEAsgAkGIAWogCkEIaikDADcDACACIAopAwA3A4ABIAIpAxghFyACKQMQIRUMBAsgAkEQaiABQQRqEM8SDAILIAFBBGoQxwYhDAwCCyACQRBqIAFBBGoQ1B0gAkGIAWogCUEIaikCADcDACACIAkpAgA3A4ABCyACKQIcIRcgAikCFCEVIAIoAhAhDAsgAkH4AGogAkGIAWopAwA3AwAgAiACKQOAATcDcAsgAkEQaiACQcgAakEoEPsGGiACQUBrIAJB+ABqKQMANwMAIAIgAikDcDcDOCAVIRYgDAwBCyACQcgAaiABQQRqEPkiIAIpAkwhFkEFIQcgAigCSAshASACQYgBaiITIAJBQGspAwA3AwAgAiACKQM4NwOAASACQcgAaiIUIAJBEGpBKBD7BhogBCALaiIDQRBqIBc3AwAgA0EIaiAWNwIAIANBBGogATYCACADIAc2AgAgA0EYaiACKQOAATcDACADQSBqIBMpAwA3AwAgA0EsaiARNgIAIANBKGogEjYCACADQTBqIBRBKBD7BhogBkEBayEGIARB2ABqIQQMAQsLIAAgCDYCCCAAIAs2AgQgACAQNgIAIAJBkAFqJAALswcBAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkBBByAAKAIAIgFBDGsiAiACQSZPG0EBaw4kAAECGwMEBQYHCAkKCwwNDg8QERIaGxsTFBoVFh0bGx0XHRgZGgsgAEEEahDFFyAAKAIEIAAoAggQ7SkPCyAAQQRqEOQmDwsgAEEIahCZJQ8LIABBDGoQ6SgPCyAAQQRqEOkoIABBCGoQ6SgPCwJAAkACQAJAAkACQAJAAkACQAJAAkACQCABDgwAAQIDBAUGBwgJCwoLCyAAQQhqEJQnDAoLIABBCGoQsBwMCQsgAEEIahCQIQwICyAAQQRqEOkoDAcLIABBBGoQ8BgMBgsgAEEEahDwKAwFCyAAQQRqEPAoDAQLIABBBGoQ6SgMAwsgAEEEahDwKAwCCyAAQQRqEJ8qDAELAkACQCAAKAIEDgIAAQILIABBCGoQ6CEMAQsgAEEIahDpIQsgAEE4ahDpKA8LIABBCGoQsBwPCyAAQQhqEJAhDwsgAEEEahDpKCAAQQhqEOkoIABBDGoQ6SgPCyAALQAYQQVGBEAgAEEQahDpKAsgAEEEahDmJiAAKAIoENkoDwsgAEEQahDpKCAAKAIEQYCAgIB4RwRAIABBBGoQ5iYLIAAoAiAQ2SgPCyAAQQRqEOgmDwsgACkDCBD5Gg8LAkACQAJAAkAgACgCCA4GABAQAQIDEgsgACkDECAAKQMgEIwrDwsgACkDIBDtJg8LIAApAxggACgCIBCrKw8LDA4LIABBBGoQ0ygPCyAAQQRqEOkoIAAoAhgQ2SggACgCCCIAENMoIABBIEEEENURDwsgAEEEahCdHCAAKAIEIAAoAggQkCoCQCAAKAIQIgEoAgBBgICAgHhHBEAgARDpJgwBCyABQQRqEOkoCyABQRhBBBDVESAAKAIgEMIeIABBJGoQlScPCyAAQQhqEM0jDwsgAEEMahCXJw8LIABBCGoQnhwPCyAAKQMIIAApAxgQiysPCyAAKAIEIgBBQGsQxhcgAEH8AGoQ5wsgACgCfCAAQYABaigCABCTKiAAKAJ4ENkoIABBkAFqEOwmIAAtADxBBkcEQCAAQRBqEMYXCyAAQaABQQgQ1REPCyAAQQRqEOwmDwsgAEEEahCfKg8LIAApAwgQ+RoPCyAAQQRqEPAYCw8LIABBBGoQ6SgPCyAAKQMQEPkaIAApAxgQ+RoPCyAAQQRqEPAoC+EHAgR/AX4jAEGQAWsiAiQAAkACQAJAAkACQAJAAn8CQCABQShqIgQQ4w0iAwRAIAMoAgBBC0YNAQsgAkEBOgAyIAIgAS0AmAM6ADEgAiABLQCeAzoANyACIAEpAYIDNwAbIAIgAS8BlgM7AC8gAiABKAGaAzYAMyACIAFBigNqIgMpAQA3ACMgAiABQZIDaiIFKAEANgArIAJB0QBqIAFBlwNqKQAANwAAIAJBzABqIAUpAQA3AgAgAkHEAGogAykBADcCACACIAEpAYIDNwI8IAFBgAFqIAJBG2oQyQggAiABNgI4IAQQ4w0iA0UEQCABKALYAiEBIAJBADoAeCABIAEgAkH4AGoQgRUhAwwHCwJ/AkACQAJAIAMoAgAiA0Ebaw4DAgECAAsgA0EkRw0AIAEgASkDQDcDeCABKAIoIAFBJTYCKEEkRgRAIAEoAiwhAwwKC0Hl7OAAQShBqOrfABD0FwALIAJB4ABqIAEQjAsgAikDYCIGQgJSBEAgBqdBAXFFBEAgAikDaCEGIAIoAnQhAyACKAJwIQQgAkEHOgB4IAEgBCADIAJB+ABqIgEQ2BkgAiADNgKEASACIAQ2AoABIAIgBjcDeCABELcYIQNBAAwDCyACQegAahD8HCEDQQAMAgsgAigCaCEDQQEMAQsgAiABEKABIAIoAgQhAyACKAIAC0EBcQ0GIAJBOGoQoyZBAAwBCyABKAIoIQMgAUElNgIoIAEgASkDQDcDeCACQcQAaiABQTRqKQIANwIAIAJBzABqIAFBPGooAgA2AgAgAiABKQIsNwI8IAIgAzYCOCACQThqEMcKIAJBEGogARCtBiACKAIUIQMgAigCEA0CIAIgAzYCeAJAIAQQ4w0iBQRAIAUoAgBBDEYNAQsgAkFAayAEEJYLIAJBCGogBBC4FCACQdjk3wA2AjwgAkE0OgA4IAIoAgggAigCDCACQThqEIEVIQMgBBDjDSIERQ0FIAQoAgBBJEYNAgwFCyABKAIoIQQgAUElNgIoIAEgASkDQDcDeCACQcQAaiABQSxqIgFBCGopAgA3AgAgAkHMAGogAUEQaigCADYCACACIAEpAgA3AjwgAiAENgI4IAJBOGoQxwpBAQshASAAIAM2AgQgACABOgAADAULIAEgASkDQDcDeCABKAIoIAFBJTYCKEEkRw0BIAEgASgCLBCGDAwCCyAAQQI6AAAgACADNgIEDAMLQeXs4ABBKEGY6t8AEPQXAAsgAEECOgAAIAAgAzYCBCACQfgAahC4KQwBCyAAQQI6AAAgACADNgIEIAJBOGoQoyYLIAJBkAFqJAAL8wcCBH8BfiMAQZABayICJAACQAJAAkACQAJAAkACfwJAIAFBKGoiBBDKDSIDBEAgAygCAEELRg0BCyACQQE6ADIgAiABLQDAAjoAMSACIAEtAMYCOgA3IAIgASkBqgI3ABsgAiABLwG+AjsALyACIAEoAcICNgAzIAIgAUGyAmoiAykBADcAIyACIAFBugJqIgUoAQA2ACsgAkHRAGogAUG/AmopAAA3AAAgAkHMAGogBSkBADcCACACQcQAaiADKQEANwIAIAIgASkBqgI3AjwgBCACQRtqENIIIAIgATYCOCAEEMoNIgNFBEAgASgCgAIhASACQQA6AHggASABIAJB+ABqEIEVIQMMBwsCfwJAAkACQCADKAIAIgNBG2sOAwIBAgALIANBJEcNACABIAEpA+ACNwOYAyABKALIAiABQSU2AsgCQSRGBEAgASgCzAIhAwwKC0Hl7OAAQShBqOrfABD0FwALIAJB4ABqIAEQhwsgAikDYCIGQgJSBEAgBqdBAXFFBEAgAikDaCEGIAIoAnQhAyACKAJwIQQgAkEHOgB4IAEgBCADIAJB+ABqIgEQxhkgAiADNgKEASACIAQ2AoABIAIgBjcDeCABELcYIQNBAAwDCyACQegAahD8HCEDQQAMAgsgAigCaCEDQQEMAQsgAiABEKEBIAIoAgQhAyACKAIAC0EBcQ0GIAJBOGoQhyVBAAwBCyABKALIAiEDIAFBJTYCyAIgASABKQPgAjcDmAMgAkHEAGogAUHUAmopAgA3AgAgAkHMAGogAUHcAmooAgA2AgAgAiABKQLMAjcCPCACIAM2AjggAkE4ahDGCiACQRBqIAEQuAYgAigCFCEDIAIoAhANAiACIAM2AngCQCAEEMoNIgUEQCAFKAIAQQxGDQELIAJBQGsgBBCRECACQQhqIAQQhRQgAkHY5N8ANgI8IAJBNDoAOCACKAIIIAIoAgwgAkE4ahCBFSEDIAQQyg0iBEUNBSAEKAIAQSRGDQIMBQsgASgCyAIhBCABQSU2AsgCIAEgASkD4AI3A5gDIAJBxABqIAFBzAJqIgFBCGopAgA3AgAgAkHMAGogAUEQaigCADYCACACIAEpAgA3AjwgAiAENgI4IAJBOGoQxgpBAQshASAAIAM2AgQgACABOgAADAULIAEgASkD4AI3A5gDIAEoAsgCIAFBJTYCyAJBJEcNASABIAEoAswCEP8LDAILIABBAjoAACAAIAM2AgQMAwtB5ezgAEEoQZjq3wAQ9BcACyAAQQI6AAAgACADNgIEIAJB+ABqEN4oDAELIABBAjoAACAAIAM2AgQgAkE4ahCHJQsgAkGQAWokAAuGBwIIfwF+IAFBHGohCAJAAkAgASgCDCICRQ0AIAEoAhQhBiABKAIQIQkCQANAIAYhBQJ/An8CQAJAAkAgAiAJRwRAIAEgAkEBaiIENgIMAkAgAi0AACIDwEEATg0AIAEgAkECaiIENgIMIAItAAFBP3EhByADQR9xIQYgA0HfAU0EQCAGQQZ0IAdyIQMMAQsgASACQQNqIgQ2AgwgAi0AAkE/cSAHQQZ0ciEHIANB8AFJBEAgByAGQQx0ciEDDAELIAEgAkEEaiIENgIMIAZBEnRBgIDwAHEgAi0AA0E/cSAHQQZ0cnIhAwsgASAEIAJrIAVqIgY2AhQgA0GAgARJDQNBKiADQf+DOEsNBRogA0ENdkH+AXFBuNbhAGovAQAgA0EJdkEfcWpB//8DcSICQZsWSw0BIAJBAXRBwMbhAGovAQAgA0EEdkEfcWpB//8DcSICQZwWTw0CIAJBAXRBwMbhAGovAQAgA0EPcWoMBAsgAUEANgIMDAcLIAJBnBZBiPDgABCsEAALIAJBnBZBmPDgABCsEAALIANBBXZB/v8DcUHAxuEAai8BACADQT9xagtB//8DcSICQcTlAE8NAiACQfjy4QBqLQAACyECAn4CQCABLQAYIgNBNE0EQCACQf8BcSICIANBLGxqQbzY4gBqLAAAIgNBAEgNAUIADAILIANBNUH47+AAEKwQAAtCgICAgBAgAS0AGUEBRw0AGiADQcABcUEGdq1CIIYLIAEgA0E/cToAGCABIAJBCkY6ABkgBCECQoCAgIAQg1ANACAIIAUQ8QhFDQALIAOtQiKGQoCAgICAIINQIQIMAgsgAkHE5QBBqPDgABCsEAALQQMhAgJAIAEoAgAiBEECRg0AIAFBADYCACAEQQFxRQ0AIAEtABgiBEE0TQRAAn4CQCABLQAIIgVBLEkEQCAFQQpGIQYgBEEsbCAFakG82OIAaiwAACIEQQBIDQFCAAwCCyAFQSxB+O/gABCsEAALQoCAgIAQIAEtABlBAUcNABogBEHAAXFBBnatQiCGCyEKIAEoAgQhBSABIAY6ABkgASAEQT9xOgAYAkAgCkKAgICAEINQRQRAIAggBRDxCA0BCyABQQA2AgAMAwsgBK1CIoZCgICAgIAgg1AhAgwCCyAEQTVB+O/gABCsEAALCyAAIAU2AgAgAEECIAJBAXEgAkEDRhs6AAQL1wYCCn8BfiMAQRBrIgwkAAJAAkACQAJAAkACQAJAAkACQAJAIARBEE8EQCAGQQFrIQ8gASgCBCENIAEoAgBFBEAgBkUNCSAGIA1rIQggASkDCCERIAEoAhAhC0EAIQJBACEBA0AgAiEJIAEiByAGaiIBIARLDQwgByAPaiIKIARPDQNBACECIBEgAyAKajEAAIhCAYNQDQAgCyAJIAkgC0kbIgIgBiACIAZLGyEQIAMgB2ohCiACIQECfwJAA0ACQCABIBBGBEAgCyEBDAELIAEgB2ogBE8NCCABIAVqLQAAIAEgCmotAABHDQIgAUEBaiEBDAELCwJAAkADQCABIAlNDQIgASAGTw0KIAEgB2oiAiAETw0BIAEgBWotAAAgASAKai0AAEYEQCABQQFrIQEMAQsLIAghAiANDAMLIAIgBEHs/MEAEKwQAAsgBiAJTQ0IIAQgByAJaiIKSwRAIAghAiANIAUgCWotAAAgAyAKai0AAEcNAhoMDgsgCiAEQYz9wQAQrBAAC0EAIQIgASALa0EBagsgB2ohAQwACwALIAZFDQggASgCECICIAYgAiAGSxshCSABKQMIIREgAkEBayAGTyELQQAhAQNAIAQgASIHIAZqIgFJDQsgByAPaiIIIARPDQggESADIAhqMQAAiEIBg1ANACADIAdqIQggAiEBAkADQCABIAlGBEAgAiEBA0AgAUUNDiABQQFrIQEgCw0LIAEgB2oiCCAETw0DIAEgBWotAAAgAyAIai0AAEYNAAsgByANaiEBDAMLIAEgB2ogBE8NCCABIAVqLQAAIAEgCGotAABGBEAgAUEBaiEBDAELCyAHIAJrIAFqQQFqIQEMAQsLIAggBEHc/cEAEKwQAAsgDEEIaiABKAIoIAEoAiwgAyAEIAUgBhD2CiAMKAIMIQcgDCgCCCEODAkLIAogBEG8/MEAEKwQAAsgBCACIAdqIgAgACAESRsgBEHM/MEAEKwQAAsgASAGQdz8wQAQrBAACyAJIAZB/PzBABCsEAALIAQgAiAHaiIAIAAgBEkbIARBvP3BABCsEAALIAEgBkHM/cEAEKwQAAsgCCAEQaz9wQAQrBAACwtBASEOCyAAIA42AgAgACAHNgIEIAxBEGokAAuoBgELfyMAQRBrIggkAEEBIQwCQCACQSIgAygCECINEQIADQACQCABRQRAQQAhAQwBCyAAIQkgASEFAkACQANAIAUgCWohDkEAIQQCQANAIAQgCWoiCi0AACILQf8Aa0H/AXFBoQFJIAtBIkZyIAtB3ABGcg0BIAUgBEEBaiIERw0ACyAFIAdqIQcMAwsCfyAKLAAAIgVBAE4EQCAFQf8BcSEFIApBAWoMAQsgCi0AAUE/cSELIAVBH3EhCSAFQV9NBEAgCUEGdCALciEFIApBAmoMAQsgCi0AAkE/cSALQQZ0ciELIAVBcEkEQCALIAlBDHRyIQUgCkEDagwBCyAJQRJ0QYCA8ABxIAotAANBP3EgC0EGdHJyIQUgCkEEagshCSAEIAdqIQQgCEEEaiAFQYGABBDCAwJAAkAgCC0ABEGAAUYNACAILQAPIAgtAA5rQf8BcUEBRg0AIAQgBkkNAwJAIAZFDQAgASAGSwRAIAAgBmosAABBv39KDQEMBQsgASAGRw0ECwJAIARFDQAgASAESwRAIAAgBGosAABBv39MDQUMAQsgASAERw0ECyACIAAgBmogBCAGayADKAIMIgYRAwANAQJAIAgtAARBgAFGBEAgAiAIKAIIIA0RAgBFDQEMAwsgAiAILQAOIgcgCEEEamogCC0ADyAHayAGEQMADQILAn9BASAFQYABSQ0AGkECIAVBgBBJDQAaQQNBBCAFQYCABEkbCyAEaiEGCwJ/QQEgBUGAAUkNABpBAiAFQYAQSQ0AGkEDQQQgBUGAgARJGwsgBGohByAOIAlrIgUNAQwDCwsMAwsgACABIAYgBEHE9cAAENQmAAsCQCAGIAdLDQBBACEEAkAgBkUNACABIAZLBEAgBiIEIABqLAAAQb9/TA0CDAELIAYgASIERw0BCyAHRQRAQQAhAQwCCyABIAdLBEAgBCEGIAAgB2osAABBv39MDQEgByEBDAILIAQhBiABIAdGDQELIAAgASAGIAdB1PXAABDUJgALIAIgACAEaiABIARrIAMoAgwRAwANACACQSIgDRECACEMCyAIQRBqJAAgDAugBwECfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQEEHIAAoAgAiAUEMayICIAJBJk8bQQFrDiQAAQIbAwQFBgcICQoLDA0ODxAREhobGxMUGhUWHRsbHRcdGBkaCyAAQQRqEMUXIAAoAgQgACgCCBDtKQ8LIABBBGoQ5CYPCyAAQQhqENElDwsgAEEMahCOKQ8LIABBBGoQjykPCwJAAkACQAJAAkACQAJAAkACQAJAAkACQCABDgwAAQIDBAUGBwgJCwoLCyAAQQhqENInDAoLIABBCGoQvRwMCQsgAEEIahCnIQwICyAAQQRqEI4pDAcLIABBBGoQgxkMBgsgAEEEahCQKQwFCyAAQQRqEJApDAQLIABBBGoQjikMAwsgAEEEahCQKQwCCyAAQQRqEKsqDAELAkACQCAAKAIEDgIAAQILIABBCGoQkCIMAQsgAEEIahCRIgsgAEE4ahCOKQ8LIABBCGoQvRwPCyAAQQhqEKchDwsgAEEEahCOKSAAQQhqEI4pIABBDGoQjikPCyAAQRBqENIlIABBBGoQ5iYgACgCKBDZKA8LIABBEGoQjikgACgCBEGAgICAeEcEQCAAQQRqEOYmCyAAKAIgENkoDwsgAEEEahDoJg8LIAApAwgQ+RoPCwJAAkACQAJAIAAoAggOBgAQEAECAxILIAApAxAgACkDIBCMKw8LIAApAyAQ7SYPCyAAKQMYIAAoAiAQwCAPCwwOCyAAQQRqENMoDwsgAEEEahCOKSAAKAIYENkoIAAoAggiABDTKCAAQSBBBBDVEQ8LIABBBGoQnRwgACgCBCAAKAIIEJAqAkAgACgCECIBKAIAQYCAgIB4RwRAIAEQ6SYMAQsgAUEEahCOKQsgAUEYQQQQ1REgACgCIBDCHiAAQSRqENMnDwsgAEEIahDsIw8LIABBDGoQ1CcPCyAAQQhqEJ4cDwsgACkDCCAAKQMYEIsrDwsgACgCBCIAQUBrEMYXIABB/ABqEOcLIAAoAnwgAEGAAWooAgAQkyogACgCeBDZKCAAQZABahDsJiAALQA8QQZHBEAgAEEQahDGFwsgAEGgAUEIENURDwsgAEEEahDsJg8LIABBBGoQqyoPCyAAKQMIEPkaDwsgAEEEahCDGQsPCyAAQQRqEI4pDwsgACkDEBD5GiAAKQMYEPkaDwsgAEEEahCQKQvxBgIFfwF+IwBBQGoiByQAIAdBMGogAiAFIAYgBRDuFwJAIActADBBBUcEQCAAIAcpAzA3AgAMAQsgBygCNBoCQAJAAkACQCAFBEAgByAGQYCACHFFIgs6ACYCQCAGQQNxRQRAIAZBgAFxRQ0BIAEtAE0NASAHQTBqIAEQ0BEgBy0AMEEERg0BIAcpAzAiDEL/AYNCBFENASAAIAw3AgAMBwsCQCABLQBNDQAgB0EwaiABELQRIActADBBBEYNACAHKQMwIgxC/wGDQgRSDQMLIAdBADoAJgsgBkHAAHFFDQMgAS0ATUEBRw0CDAMLIAZBAXEEQCABLQBNDQQgB0EwaiABELQRIActADBBBEYNBCAHKQMwIgxC/wGDQgRRDQQgACAMNwIADAULIAZBgIEQcUGAAUcNAyABLQBNDQMgB0EwaiABENARIActADBBBEYNAyAHKQMwIgxC/wGDQgRRDQMgACAMNwIADAQLIAAgDDcCAAwDCyABIAEoAixBAWo2AiwLIAdBADoAJyAFIQkDQAJAAkAgCUUEQCAHQTBqIAEgAiADIAYgCCAMQiCIpxDYASAHLQAwQQRGDQQgBykDMCIMQv8Bg0IEUg0BDAQLIAcgDDcCNCAHIAg2AjAgB0EYaiAEEJsVIAdBKGogASADIAYgB0EwaiAHKAIYIAcoAhwgB0EnaiAHQSZqEJEEIActAChBBEcEQCAHKQMoIgxC/wGDQgRSDQELAkAgBCgCACIKQQJGIggNACAHQTBqIAEgBBCVCiAHLQAwQQRGDQAgBykDMCIMQv8Bg0IEUg0BCyAHLQAmRQRAIAcgCzoAJgwCCyABKAJERQ0BIAdBMGogAQJ/QQAgCA0AGiAHQRBqIARBDGooAgAQjgMgBygCFCIIIApBAXFFDQAaIARBBGooAgAiCiAIIAggCkkbC0EAEOwCIActADBBBEYNASAHKQMwIgxC/wGDQgRRDQELIAAgDDcCAAwDCyAHLQAnBEAgASABKAIsQQFrNgIsIAdBADoAJwsgCUEBayEJIAdBCGogBBCbFSAEQRBqIQRBASEIIAcpAwghDAwACwALIAdBMGogASADIAVFIAYQrQ8CQCAHLQAwQQRHBEAgBykDMCIMQv8Bg0IEUg0BCyAAQQQ6AAAMAQsgACAMNwIACyAHQUBrJAALmgYBAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkBBByAAKAIAIgJBDGsiAyADQSZPG0EBaw4kAAECFBUDBAUGBwgJFwoTFwsMDQ4TFBQPExMQERQUFBQUFBMSEwsQsxEgACgCDEEEdCECIAAoAgghAANAIAJFDRMgACgCAEECRwRAIABBDGogARC/LQsgAEEQaiEAIAJBEGshAgwACwALIAEgAEEEahCHBA8LIABBCGogARDpHw8LIABBBGogARC/LSAAQQhqIAEQvy0PCyAAQThqAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAJBAWsOCwECAwQFBgcICQsKAAsgASgCJCAAQQhqEPsFGgwKCyABIABBCGoQsB8MCQsgASAAQQhqEMoiDAgLIABBBGogARC/LQwHCyAAQQRqIAEQ3BwMBgsgAEEEaiABEL8tDAULIABBBGogARC/LQwECyAAQQRqIAEQvy0MAwsgAEEEaiABEL8tDAILIABBBGogARC/LQwBCyAAQQhqIQICQAJAIAAoAgRBAWsOAgECAAsgAiABENEaDAELIAIgARC1BAsgARC/LQ8LIAEgAEEIahCwHw8LIAEgAEEIahDKIg8LIABBBGogARC/LSAAQQhqIAEQvy0MDQsgAC0AGEEFRgRAIABBEGogARC/LQsMDQsgAEEQaiABEL8tIAAoAgRBgICAgHhGDQkMDAsgASgCJCAAQQhqEPsFGg8LIABBBGogARC/LSABIAAoAggQnBkPCyAAKAIMQShsIQIgACgCCCEDA0AgAgRAIAMgARCNESACQShrIQIgA0EoaiEDDAELCyAAKAIQIgAoAgBBgICAgHhHBEAgASAAEPcFDwsMBwsgASAAQQhqENMMDwsgACgCDEUNBAwGCyAAQQhqIAEQvR0PCyAAKAIEIAEQhwwPCyAAQQRqIAEQ1w8PCyAAQQRqIAEQ3BwLDwsgAEEEaiABEL8tDwsgAEEMaiABEL8tDwsgASAAQQRqEJwYDwsgASAAQQRqEJwZC98GAQV/AkACQAJAAkACQCAAQQRrIgUoAgAiB0F4cSIEQQRBCCAHQQNxIgYbIAFqTwRAIAZBACABQSdqIgggBEkbDQECQAJAIAJBCU8EQCACIAMQ/wUiAg0BQQAPC0EAIQIgA0HM/3tLDQFBECADQQtqQXhxIANBC0kbIQECQCAGRQRAIAFBgAJJIAQgAUEEcklyIAQgAWtBgYAIT3INAQwJCyAAQQhrIgYgBGohCAJAAkACQAJAIAEgBEsEQCAIQYyR5AAoAgBGDQQgCEGIkeQAKAIARg0CIAgoAgQiB0ECcQ0FIAdBeHEiByAEaiIEIAFJDQUgCCAHEM8GIAQgAWsiAkEQSQ0BIAUgASAFKAIAQQFxckECcjYCACABIAZqIgEgAkEDcjYCBCAEIAZqIgMgAygCBEEBcjYCBCABIAIQtAUMDQsgBCABayICQQ9LDQIMDAsgBSAEIAUoAgBBAXFyQQJyNgIAIAQgBmoiASABKAIEQQFyNgIEDAsLQYCR5AAoAgAgBGoiBCABSQ0CAkAgBCABayIDQQ9NBEAgBSAHQQFxIARyQQJyNgIAIAQgBmoiASABKAIEQQFyNgIEQQAhA0EAIQEMAQsgBSABIAdBAXFyQQJyNgIAIAEgBmoiASADQQFyNgIEIAQgBmoiAiADNgIAIAIgAigCBEF+cTYCBAtBiJHkACABNgIAQYCR5AAgAzYCAAwKCyAFIAEgB0EBcXJBAnI2AgAgASAGaiIBIAJBA3I2AgQgCCAIKAIEQQFyNgIEIAEgAhC0BQwJC0GEkeQAKAIAIARqIgQgAUsNBwsgAxBgIgFFDQEgASAAQXxBeCAFKAIAIgFBA3EbIAFBeHFqIgEgAyABIANJGxD7BiAAENgDDwsgAiAAIAEgAyABIANJGxD7BhogBSgCACIDQXhxIgUgAUEEQQggA0EDcSIBG2pJDQMgAUEAIAUgCEsbDQQgABDYAwsgAg8LQfWm2ABBLkGkp9gAEPQXAAtBtKfYAEEuQeSn2AAQ9BcAC0H1ptgAQS5BpKfYABD0FwALQbSn2ABBLkHkp9gAEPQXAAsgBSABIAdBAXFyQQJyNgIAIAEgBmoiAiAEIAFrIgFBAXI2AgRBhJHkACABNgIAQYyR5AAgAjYCACAADwsgAAuKCAEFfyMAQTBrIgMkACABKALQASEFIAFBwAFqIgYQsBUCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgASgCwAEgASgCxAEQ/RwiBEHuAGsOCwkBAQECAQMOBQEIAAsCQCAEQQprDgQHAQEPAAsCQCAEQeIAaw4FBAEBAQYACyAEQajAAGtBAkkNBiAEQdwARg0JIARBgIDEAEcNACADQSI6ABggBSAFIANBGGoQoyshASAAQYGAgIB4NgIAIAAgATYCBAwQCyAEQfj//wBxQTBHDQggBhCwFSAEQTBHDQ4gASgCwAEgASgCxAEQ/RwiB0GAgMQARwRAIAdBCBD+HA0PC0EEEOkgIQEgAEEBNgIIIAAgATYCBCAAQQE2AgAgAUEANgIADA8LQQ0hBAwHC0EJIQQMBgtBCCEEDAULQQshBAwEC0EMIQQMAwsgBhCwFSAAQYCAgIB4NgIADAkLIAYQsBUgA0EYaiABQQIQ9gYgAygCHCECIAMoAhhBAWsOAgQCAwtBCiEECyAGELAVQQQQ6SAhASAAQQE2AgggACABNgIEIABBATYCACABIAQ2AgAMBgsgAEGBgICAeDYCACAAIAI2AgQMBQsgA0EQNgIgIANBgO7YADYCHCADQSQ6ABggASgC0AEgBSADQRhqEKIrIQEgAEGBgICAeDYCACAAIAE2AgQMBAtBBBDpICEBIABBATYCCCAAIAE2AgQgAEEBNgIAIAEgAjYCAAwDCyADQQxqIAEQvgQgAygCDEGAgICAeEcEQCAAIAMpAgw3AgAgAEEIaiADQRRqKAIANgIADAMLIANBGGoiAiADKAIQEK4cIAEoAtABIAUgAhCiKyEBIABBgYCAgHg2AgAgACABNgIEDAILIAYQsBUgBkEKEJgYGiAAQYCAgIB4NgIADAELAkACQCACRQRAIANBFToAGCABIAUgA0EYahDqKCAEQTBrIQIgASgCwAEgASgCxAEQ/RxBMGsiBEEITw0BIAYQsBUgAkEDdCAEciECIAEoAsABIAEoAsQBEP0cQTBrIgRBCE8NAiACQf8BcSIFQSBPBEBBBBDpICEBIABBATYCCCAAIAE2AgQgAEEBNgIAIAEgBTYCAAwECyAGELAVQQQQ6SAhASAAQQE2AgggACABNgIEIABBATYCACABIAJBA3QgBHJB/wFxNgIADAMLIANBFToAGCABKALQASAFIANBGGoQoishASAAQYGAgIB4NgIAIAAgATYCBAwCC0EEEOkgIQEgAEEBNgIIIAAgATYCBCAAQQE2AgAgASACNgIADAELQQQQ6SAhASAAQQE2AgggACABNgIEIABBATYCACABIAJB/wFxNgIACyADQTBqJAALjggCBn8BfiMAQcABayICJAACQAJAAkACQAJAAkACQCAAKAIAQQFrDgcBAgMGBgQFAAsgAiAAKQMIIAAoAhgQwCMgASACKQMAIAIoAghBABCbBiAAQSBqIAEQ8SwMBQsgAkEwaiAAKQMIIgggACgCGCIGEMAjIAEgAikDMCACKAI4QQEQmwYgACgCICIFKAIIQQZ0IQMgBSgCBCEAAkADQCADIgRFDQEgACgCACEHIANBQGohAyAAQUBrIQACQCAHQQJrDgMAAQABCwsgAkEgaiAIIAYQwCMgASACKQMgIAIoAigQqxELIAJB2ABqQcig4wApAwA3AgAgAkEAOwGCASACQQA2AnggAkKAgICAgAE3AnAgAkEAOgBsIAJBADYCaCACQoCAgIDAADcCYCACQQA2AkwgAkKAgICAgAE3AkQgAkHAoOMAKQMANwJQIAIgAS8BPDsBgAEgAiABKAI4NgJ8IAQEQCACQRBqIAggBhDAIyACQcQAaiACKQMQIAIoAhgQqxELIAJB8ABqIQQgBUEMaiACQcQAaiIAEJ8aIAUgABCpGiAAIAVBGGoQ5yMCQCACKAJ4IgAEQCABQQxqIAAQhCkgAkGEAWogAigCdCACKAJ4EKEKIAIgAigChAE2ApgBIAIgAigCiAEiADYCkAEgAiAAIAIoAowBQQR0IgNqIgU2ApwBA0AgA0UNAiACQcQAaiAAKQMAIAAoAggQqxEgA0EQayEDIABBEGohAAwACwALIAJBkAFqIgAgAkHEAGpBLBD7BhogAUEcaiAAEKEaIAQQjiMMBQsgAiAFNgKUASACQZABahCJFyABLQAoRQRAIAEgAigCeBCWHiACIAIoAnA2ApgBIAIgAigCdCIANgKQASACIAAgAigCeEEEdCIDaiIENgKcAQNAIAMEQCABIAApAwAgACgCCEEBEJsGIANBEGshAyAAQRBqIQAMAQsLIAIgBDYClAEgAkGQAWoiABCJFyAAIAJBxABqQSwQ+wYaIAFBHGogABChGgwFCyACQZgBaiAEQQhqKAIANgIAIAIgBCkCADcDkAEgAUEsaiACQZABaiIAEKEQIAAgAkHEAGpBLBD7BhogAUEcaiAAEKEaDAQLIAEgACgCBBCUIAwDCyAAKAIEIAEQ4BIMAgsgACgCBCIAKAIoQTBsIQMgACgCJEEoaiEAA0AgA0UNAiAAKAIABEAgACABENcsCyADQTBrIQMgAEEwaiEADAALAAsgACgCBCIALQBFQQNGDQAgAEEgaiEAA0AgAC0AJUECRgRAAkAgACgCCEE4bCEDIAAoAgQhAANAIANFDQEgACABEMsCIANBOGshAyAAQThqIQAMAAsACwUgACgCICEADAELCwsgAkHAAWokAAueBwEOfyMAQSBrIgskAAJAIAAoAggiD0UNACABKAIIIgpFDQAgASgCBCENA0AgBiAPSSICIAUgCklxRQRAIA8gBiACGyEDA0AgAyAGRgRAIAtBDGoiAiAAIA8QmRYgAhDHEiAAIAAtAAwgAS0ADHE6AAwMBAUgACAAKAIEIAAoAgggBkHkvccAELofIgIoAgAgAigCBBDdGCAGQQFqIQYMAQsACwALAkACQCANIAogBUH0vccAELofKAIEIAAoAgQiCCAAKAIIIgkgBkGEvscAELofKAIATwRAIAggCSAGQZS+xwAQuh8oAgQgDSAKIAVBpL7HABC6HygCAE8EQCAIIAkgBkG0vscAELofIQQgDSAKIAVBxL7HABC6HyEHIAQoAgAiAyAHKAIAIgIgAiADSRsgBCgCBCIDIAcoAgQiAiACIANLG00EQCAIIAkgBkHUvscAELofIgIoAgQhAyACKAIAIQQDQCAFIApGBEAgCiEFDAULIAQgDSAKIAVB5L7HABC6HyIHKAIAIgIgAiAESRsgAyAHKAIEIgIgAiADSxtLDQQgDSAKIAVB9L7HABC6HyICKAIEIQwgC0EMaiEIQYCAxAAhCQJAIAIoAgAiAiADSyACIARLciAEIAxLIAMgDEtyckUEQEGAgMQAIQcMAQsgBCACIAIgBEkbIAMgDCADIAxJG0sEQCADIQ4gBCEHDAELAkACQCACIARLIglFIAMgDE1xRQRAQYCAxAAhCEGAgMQAIQcgCQ0BDAILQeSvxABBKEGMsMQAEPQXAAsgBCACEP8WIgIgAiAESRshDiAEIAIgAiAESxshBwsCQCADIAxNDQAgDBCPHCICIAMgAiADSxshCSACIAMgAiADSRshAiAHQYCAxABHBEAgAiEIDAELIAIhByAJIQ4LIAsgCDYCDCALQQhqIQgLIAggCTYCACALKAIMIQQCQAJAAkAgB0GAgMQARgRAIARBgIDEAEcNAQwJCyAEQYCAxABHDQEgDiECIAchBAwCCyALKAIIIQIMAQsgCygCCCECIAAgByAOEN0YCyADIA0gCiAFQYS/xwAQuh8oAgRJBEAgAiEDDAUFIAVBAWohBSACIQMMAQsACwALQZS/xwBByQBB4L/HABD0FwALIAAgCCAJIAZB8L/HABC6HyICKAIAIAIoAgQQ3RgMAgsgBUEBaiEFDAILIAAgBCADEN0YCyAGQQFqIQYMAAsACyALQSBqJAALmwcCCX8BfiMAQbABayIDJAAgACkCaCELIABCgICAgIABNwNoIANBGGogAEHwAGoiAigCADYCACACQQA2AgAgAyALNwMQIABBIGohByAAQegAaiEGIAEoAgQiAiABKAIIQThsaiEIIANB0ABqIQkgA0H8AGohCgNAIAIgCEZFBEACQAJAIAIoAgAiBEEJRwRAAkACQAJAAkACQAJAAkAgBEEBaw4IAQIDBAUJBgkACyACQRxqIAAQ7SMMBwsCQCAAKAIABEAgAigCCEECRg0BCyACQQhqIAAQpAkMBwsgAigCDCIEKAIIQThsIQUgBCgCBCEEA0AgBUUNByAAIAQQsAkgBEEwaiAAENYlIAVBOGshBSAEQThqIQQMAAsACyACQRxqIAAQ7SMMBQsCQAJAAkAgAigCCEEBaw4CAQgACyACQRBqIAAQgC0MAQsgAkEQaiAAEIEtCwJAAkACQCACKAIIQQFrDgIBBwALIAItACRBAkcNAQwGCyACLQAkQQJGDQULIAMgAikDECACQSBqKAIAEMAjIAcgAykDACADKAIIEJIpGgwECyAAIAIoAgQQqgEMAwsgAkEQaiAAEO0jDAILIAJBBGogABCCLQwBCyAAIAJBCGoQ8wMLIAIoAgAiBEEJRiAEQQFHcg0AIANB+ABqIgUgAkEIaiIEEI8VIANByABqIAAgBUEBEGkCQAJAAkBBAiADKAJIQRNrIgUgBUECTxtBAWsOAgECAAsgA0H4AGoiBCACQTgQ+wYaIAJBADYCECACQgE3AwggAkEJNgIAIAQQ2CAMAgsgBBD9CSAEIAlBKBD7BhoMAQsgCiADQcgAakEwEPsGGiACENggIAJBCTYCACACQQRqIANB+ABqQTQQ+wYaCyACQThqIQIMAQsLIAYpAgAhCyAGIAMpAxA3AgAgA0EoaiAGQQhqIgIoAgAiADYCACACIANBGGooAgA2AgAgAyALNwMgAkAgAARAIAMgAygCIDYCgAEgAyADKAIkIgI2AnwgAyACNgJ4IAMgAiAAQQR0ajYChAEgA0EsaiIAIANB+ABqIgIQuQYgA0E+akIANwEAIANB2gBqQgA3AQAgA0IANwI4IANCADcCVCADQoCAgICAATcCSCADQQA2AlAgAyAAENcWNgKMASADQQI2AogBIANBETYCgAEgA0EJNgJ4IAEgAhD9GSADQcgAahD0JgwBCyADQSBqEI4jCyADQbABaiQAC8QHAQZ/IwBB0ABrIgMkACABQShqIgQQwyAhBgJAAkACQAJAAkACQAJAAkACQCACBEACQAJAIAQQyg0iBUUNACAFKAIAQQJHDQAgBS0ACEECRw0AIAUtAAlBFkYNAQsgA0EwaiAEEJEQIANBCGogBBCFFCADQdDu3wA2AiwgA0E0OgAoIAMoAgggAygCDCADQShqEIEVIQIgBBDKDSIERQ0JIAQoAgBBJEYNAgwJCyABKALIAiEFIAFBJTYCyAIgASABKQPgAjcDmAMgA0E0aiABQdQCaikCADcCACADQTxqIAFB3AJqKAIANgIAIAMgASkCzAI3AiwgAyAFNgIoIANBKGoQxgoLIANBIGogAUEAQQEQzA4gAygCJCEHAkACQCADKAIgRQRAAkAgBBDKDSIFBEAgBSgCAEEJRg0BCyADQTBqIAQQkRAgA0EQaiAEEIUUIANB8OXfADYCLCADQTQ6ACggAygCECADKAIUIANBKGoQgRUhAiAEEMoNIgRFDQkgBCgCAEEkRg0DDAkLIAEoAsgCIQUgAUElNgLIAiABIAEpA+ACNwOYAyADQTRqIAFB1AJqKQIANwIAIANBPGogAUHcAmooAgA2AgAgAyABKQLMAjcCLCADIAU2AiggA0EoaiIFEMYKIAUgARCvAiADKAIsIQUgAygCKCIIQYCAgIB4Rg0BIAMgAygCMDYCTCADIAU2AkggAyAINgJEQQAhBQJAIAQQyg0iBEUNACAEKAIAQRNHDQAgA0EYaiABQaDg3wAQ8QEgAygCHCEFIAMoAhhFDQAgAEECNgIAIAAgBTYCBAwICyADIAU2AiggARDIBiIERQ0GIABBAjYCACAAIAQ2AgQgA0EoahD7JgwHCyAAQQI2AgAgACAHNgIEDAoLIABBAjYCACAAIAU2AgQMBwsgASABKQPgAjcDmAMgASgCyAIgAUElNgLIAkEkRw0BIAEgASgCzAIQ/wsMBQsgASABKQPgAjcDmAMgASgCyAIgAUElNgLIAkEkRw0BIAEgASgCzAIQ/wsMBgtB5ezgAEEoQcDu3wAQ9BcAC0Hl7OAAQShB6O7fABD0FwALIABBBGoiBCADKQJENwIAIAAgBzYCHCAAIAU2AhggACACNgIAIARBCGogA0HMAGooAgA2AgAgACAGIAEoApwDIgEgASAGSRs2AhQgACAGIAEgASAGSxs2AhAMBAsgA0HEAGoQ8CYMAQsgAEECNgIAIAAgAjYCBAsgBxDdKAwBCyAAQQI2AgAgACACNgIECyADQdAAaiQAC6sHAQZ/IwBB0ABrIgMkACABQShqIgQQ3iAhBgJAAkACQAJAAkACQAJAAkACQCACBEACQAJAIAQQ4w0iBUUNACAFKAIAQQJHDQAgBS0ACEECRw0AIAUtAAlBFkYNAQsgA0EwaiAEEJYLIANBCGogBBC4FCADQdDu3wA2AiwgA0E0OgAoIAMoAgggAygCDCADQShqEIEVIQIgBBDjDSIERQ0JIAQoAgBBJEYNAgwJCyABKAIoIQUgAUElNgIoIAEgASkDQDcDeCADQTRqIAFBNGopAgA3AgAgA0E8aiABQTxqKAIANgIAIAMgASkCLDcCLCADIAU2AiggA0EoahDHCgsgA0EgaiABQQBBARDQDiADKAIkIQcCQAJAIAMoAiBFBEACQCAEEOMNIgUEQCAFKAIAQQlGDQELIANBMGogBBCWCyADQRBqIAQQuBQgA0Hw5d8ANgIsIANBNDoAKCADKAIQIAMoAhQgA0EoahCBFSECIAQQ4w0iBEUNCSAEKAIAQSRGDQMMCQsgASgCKCEFIAFBJTYCKCABIAEpA0A3A3ggA0E0aiABQTRqKQIANwIAIANBPGogAUE8aigCADYCACADIAEpAiw3AiwgAyAFNgIoIANBKGoiBRDHCiAFIAEQsAIgAygCLCEFIAMoAigiCEGAgICAeEYNASADIAMoAjA2AkwgAyAFNgJIIAMgCDYCREEAIQUCQCAEEOMNIgRFDQAgBCgCAEETRw0AIANBGGogAUGg4N8AEPMBIAMoAhwhBSADKAIYRQ0AIABBAjYCACAAIAU2AgQMCAsgAyAFNgIoIAEQyQYiBEUNBiAAQQI2AgAgACAENgIEIANBKGoQkSgMBwsgAEECNgIAIAAgBzYCBAwKCyAAQQI2AgAgACAFNgIEDAcLIAEgASkDQDcDeCABKAIoIAFBJTYCKEEkRw0BIAEgASgCLBCGDAwFCyABIAEpA0A3A3ggASgCKCABQSU2AihBJEcNASABIAEoAiwQhgwMBgtB5ezgAEEoQcDu3wAQ9BcAC0Hl7OAAQShB6O7fABD0FwALIABBBGoiBCADKQJENwIAIAAgBzYCHCAAIAU2AhggACACNgIAIARBCGogA0HMAGooAgA2AgAgACAGIAEoAnwiASABIAZJGzYCFCAAIAYgASABIAZLGzYCEAwECyADQcQAahDwJgwBCyAAQQI2AgAgACACNgIECyAHEN0oDAELIABBAjYCACAAIAI2AgQLIANB0ABqJAALoQgBC38jAEEgayIDJAAgACgCACIBKAIAIQUgAUEANgIAIAUoAhQhASAFQQA2AhQgAQRAIANBCGogAREBAAJAIAAoAgQiCSgCACIFKAIAIgBFDQAgACAAKAIAIgBBAWs2AgAgAEEBRgRAIAUoAgAiACgCCCIBIAEoAgAiAUEBazYCACABQQFGBEAgAEEIahC0DgsgACgCECIBIAEoAgAiAUEBazYCACABQQFGBEAgAEEQahCgFQsCQCAFKAIAIgBBf0YNACAAIAAoAgQiAUEBazYCBCABQQFHDQAgAEEUQQQQ1RELCyAFKAIEIgEoAvAFIQAgASgC9AUiAigCACIGBEAgACAGEQEACyACKAIEIgYEQCAAIAYgAigCCBDVEQsgAUGABmooAgAhCiABKAKEBiELQQAhBgNAIAYgC0cEQCAKIAZBBnRqIgJBBGohCCACKAIMIQAgAkEIaigCACEHA0AgAARAIAcoAgAiAigCFCIEIAQoAgAiBEEBazYCACAEQQFGBEAgAkEUahDEFAsgAigCCCACQQxqKAIAEN8pIAIoAugEIgRBgICAgHhHBEAgBCACQewEaigCABDiKSACQfQEahCWKCACQaQFahCWKAsgAigC1AUiBEGAgICAeEcEQCAEIAJB2AVqKAIAEOIpIAIoAuAFIAJB5AVqKAIAEN8pCyACKALYBCIEQYCAgIB4RwRAIAQgAkHcBGooAgAQ3ykLIAIoAsgEQQJHBEAgAkHYAWoQjg4gAkGYA2oQjg4LIAIoAsgBQQJHBEAgAkEYahCODgsgAkHwBUEIENURIABBAWshACAHQQRqIQcMAQsLIAgoAgAgCEEEaigCAEEEQQQQ1CIgBkEBaiEGDAELCyABKAL8BSABQYAGaigCAEHAAEHAABDUIgJAIAEoAgBBAkYNACABKAIUIgAgACgCACIAQQFrNgIAIABBAUYEQCABQRRqEMQUCyABKAIIIAFBDGooAgAQ3ykgASgC6AQiAEGAgICAeEcEQCAAIAFB7ARqKAIAEOIpIAFB9ARqEJYoIAFBpAVqEJYoCyABKALUBSIAQYCAgIB4RwRAIAAgAUHYBWooAgAQ4ikgASgC4AUgAUHkBWooAgAQ3ykLIAEoAtgEIgBBgICAgHhHBEAgACABQdwEaigCABDfKQsgASgCyARBAkcEQCABQdgBahCODiABQZgDahCODgsgASgCyAFBAkYNACABQRhqEI4OCyABQYgGQQgQ1REgBSgCCCIAIAAoAgAiAEEBazYCACAAQQFHDQAgBUEIahD7FwsgCSgCACIAIAMpAgg3AgAgAEEIaiADQRBqKQIANwIAIANBIGokAEEBDwsgA0EANgIYIANBATYCDCADQbj44AA2AgggA0IENwIQIANBCGpBoPngABDDHQALpQcBAX8jAEHwAGsiDyQAIA8gDTYCBCAPIAw2AgBBASENAkAgACABIAIgBBCfCw0AIAAgASACIAUgAyAGIAdBABC0Aw0AIAhBBGohByAJIApBA3RqIQUgD0E8aiEGIAgoAgQhCkEBIQADQCAFIAlHIQMgBSAJRgRAIAMhDQwCCyAAIAkoAgRBAWoiBCAAIARLGyIMIABrIQAgCUEIaiEEA0AgAEUEQCAJKAIAIgAoAgAgCxCpCgRAAkACQAJAAkAgDkH/AXFBAWsOAgECAAsgD0EsaiAIKAIAEMYSIA9BIGoiAyAPKAIwIgAgDygCNEECELMHIA9BAjYCZCAPQQU2AlwgD0HkADYCVCAPIAhBJGo2AlAgD0EDNgI8IA9BxNHfADYCOCAPQgM3AkQgDyAPNgJgIA8gAzYCWCAPIA9B0ABqNgJAIA9BFGogD0E4ahD6FCAPKAIgIA8oAiQQ2ikgDygCLCAAENopIA9BEGogD0EcaigCADYCACAPIA8pAhQ3AwgMAgsgD0EENgI8IA9B3NHfADYCOCAPQgQ3AkQgD0ECNgJsIA9B5AA2AmQgD0HkADYCXCAPQeQANgJUIA8gCDYCWCAPIAhBPGo2AmAgDyAIQSRqNgJQIA8gD0HQAGo2AkAgDyAPNgJoIA9BCGogD0E4ahD6FAwBCyAPQQI2AlQgD0Gwzd8ANgJQIA9CAjcCXCAPQQI2AkQgD0HkADYCPCAPIAc2AjggDyAPQThqNgJYIA8gDzYCQCAPQQhqIA9B0ABqEPoUCyAPQcQAaiALQRxqLwEAOwEAIA9BAjYCVCAPQcDN3wA2AlAgD0IBNwJcIA9B4gA2AjAgDyALKQIUNwI8IA8gD0EsajYCWCAPIA9BOGo2AiwgDyAPQQhqNgI4IAEgD0HQAGogAigCFBECACENIA8oAgggDygCDBDaKQwECyAPQSxqIgkgChDGEiAGIAAoAgAiACkCFDcCACAGQQhqIABBHGovAQA7AQAgD0EBNgJUIA9BhPjgADYCUCAPQgE3AlwgD0HiADYCJCAPIA9BIGo2AlggDyAJNgI4IA8gD0E4ajYCICABIA9B0ABqIAIoAhQRAgAgDygCLCAPKAIwENopIAMhDQ0DIAxBAWohACAEIQkMAgsgD0EANgJgQQEhDSAPQQE2AlQgD0H80d8ANgJQIA9CBDcCWCABIA9B0ABqIAIoAhQRAgANAiAAQQFrIQAMAAsACwALIA9B8ABqJAAgDQuMBwENfwJAAkAgAS0AHCICQQNGDQAgAS0AHSIMQQNGIAIgDEtyDQBBB0EKIAEtAAgiB0EDSRshDSABKAIQIgNBBGohCCADIAEoAhgiCUEBakEAIAkbaiIDQQhqIQkgA0ECaiELIAEoAgAhBCABLQAeQQFxIQ4gASgCBCIDIQUDQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAkH/AXFBAWsOAgECAAsgCCECAkACQAJAAkACQCAHQQFrDgYABAIBBAMCCyAJIQIMAQsgCyECCyACDQELQQEhAiABQQE6ABwMCgsgAUEBOgAcQQYhAwJAAkACQAJAAkACQCAHQQFrDgUBBQIDBAALIAghAwwECyAJIQMMAwsgCCEDDAILIAshAwwBC0ECIQMLIAMgBUsNAkEGIQICQAJAAkACQAJAAkAgB0EBaw4FAQUCAwQACyAIIQIMBAsgCSECDAMLIAghAgwCCyALIQIMAQtBAiECCyACIAVLDQMgACADNgIYIAAgBDYCFCAAIAc6AAAgASAFIAJrNgIEIAEgAiAEajYCACAAIAEpAAk3AAEgAEEJaiABQRFqKQAANwAAIABBEGogAUEYaigAADYAAA8LIAFBAjoAHAJAIA5FBEBBAiECIAcOBwoKCgYGCgEGCyAFRQ0EIABBBjoAAAwMCyADRQRAQQAhAwwJCwJAIANBAUYgBC0AACIGQS5HckUEQCAELQABQS9HDQoMAQsgA0EBRyAGQS5Hcg0JCyAFRQ0FIABBBzoAAAwLCyADRQ0GQQAhAgJ/A0BBASACIARqLQAAQS9GDQEaIAMgAkEBaiICRw0ACyADIQJBAAshBUEJIQoCQAJAAkACQCACDgMCAAEDC0EJIA0gBC0AAEEuRxshCgwCCyAELQAAQS5HDQFBCEEJIAQtAAFBLkYbIQoMAQtBCiEKCyADIAIgBWoiBkkNBSABIAMgBmsiBTYCBCABIAQgBmoiBjYCACAKQQpGBEBBAiECIAUhAyAGIQQMCAsgACACNgIIIAAgBDYCBCAAIAo6AAAPCyADIAVB7LHYABCuEAALIAIgBUH8sdgAEK0QAAtBAUEAQZyy2AAQrRAACyAAQQY6AAAPC0EBQQBBjLLYABCtEAALIAYgA0GsstgAEK0QAAsgAUEDOgAcDAILIAIgDE0NAAsLIABBCjoAAA8LIAEgBUEBazYCBCABIARBAWo2AgALuwcBCX8jAEGAAmsiBSQAIAVBGGogAUGKA2opAAA3AwAgBUEgaiABQZIDaikAADcDACAFQSVqIAFBlwNqKQAANwAAIAUgBDYCDCAFIAEpAIIDNwMQIAFBKGohBiABQYABaiEJIAVBNGoQjSAgBUGoAWohDSAFQdgBaiEKIAVBOGohCwJAAkADQAJAIAYQ4w1BASAEGwRAIAUgBhDjDSIHBH8gBwUgASgC2AIhByAFQQA6ANABIAcgByAFQdABahCBFRDOGAs2AtABIAVB0AFqIgwgBUEMahDnG0UNAyAMIAFBASADELgCIAUoAtQBIQcgBSgC0AEiCEETRwRAIAVB0ABqIApBKBD7BhogAkEBcUUNAiAIIAcQzhRFDQIgBSAFLQAQOgB/IAVBAToAggEgBSAFLwAROwCAASAFIAUvARQ7AIMBIAUgBS0AFjoAhQEgBSAFKQAXNwCGASAFIAUoAB82AI4BIAUgBS8AIzsAkgEgBSAFLQAlOgCUASAFIAUtACY6AJUBIAUgBS0AJzoAlgEgBSAFLQAoOgCXASAFIAUoACk2AJgBIAkgBUH/AGoQyQggBigCAEElRg0CIAYQ4w0iAkUNAiACKAIAQT5xQQ5GDQIgBhC7IQ0CIAYQ4w0hACAFQbQCNgKkASAFIAA2ApwBIAVBATYC1AEgBUHQouAANgLQASAFQgE3AtwBIAUgBUGcAWo2AqABIAUgBUGgAWo2AtgBIAxB2KLgABDDHQALIABBgICAgHg2AgAgACAHNgIEIAsQ6SYgBSgCSCIAIAUoAkwQkx8gBSgCRCAAEOIpDAQLIAVB2AFqIAYQlgsgBSAGELgUIAUgBDYC1AEgBUE0OgDQASABIAUoAgAgBSgCBCAFQdABahDYGQwCCyAFIAc2AqQBIAUgCDYCoAEgDSAFQdAAakEoEPsGGiAFKAI0RQRAIAVBfzYCNAJAIAUoAkAgBSgCOEkEQCALIAVBoAFqEPwZIAUgBSgCNEEBajYCNAwBCyAFQQA2AjQgBSAHNgLUASAFIAg2AtABIAogBUHQAGpBKBD7BhogBUE0aiAFQdABahClBAtBACECDAELC0GM3t8AEO8UAAsgBhDjDUUgBEVyRQRAIAEoAighAiABQSU2AiggASABKQNANwN4IAVB3AFqIAFBNGopAgA3AgAgBUHkAWogAUE8aigCADYCACAFIAEpAiw3AtQBIAUgAjYC0AEgBUHQAWoQxwoLIAkgBUEQahDJCCAAIAVBNGoQiQYLIAVBgAJqJAALggUBAn8CQAJAAkACQAJAAkAgACgCACIAKAIAIAEoAgAiASgCAEcNACAAKAIEIAEoAgRHDQAgAC0ACCICIAEtAAhHDQBBASEDAkACQAJAAkACQAJAAkACQAJAAkACQCACQSxrDg4BCgoKAgMKCgQFCgoKBgALAkAgAkGfAWsOBwgKCgoMDAwACwJAAkAgAkEhaw4HDgsLDwsLAQALAkAgAkHsAGsOBw0LCw0LCw4ACwJAIAJB+QBrDgIIDQALAkAgAkG3AWsOAg0KAAsgAkGCAUYNDCACQR1HBEAgAkHEAEYgAkHYAEZyDQ0gAkHhAEYNDSACQRdHDQsgAC0ACSABLQAJRg8LDAwLDAsLIABBFGogAUEUahC4I0UNCUEAIQMgACgCDCABKAIMRw0IDA0LQQAhAyAAQRRqIAFBFGoQuCNFDQcMCwsgACgCECAAKAIUIAEoAhAgASgCFBDsDw8LQQAhAyAAQQxqIAFBDGoQmSpFDQUgAEEQaiABQRBqELgjDwtBACEDIAAoAgwgASgCDEcNBAwJC0EAIQMgACgCDCABKAIMRw0DDAgLQQAhAyAAQRBqIAFBEGoQmgpFDQIMCAtBACEDIABBEGogAUEQahCaCkUNAQwHCyAAKAIUIAEoAhQQhANFDQEgACgCDCABKAIMRw0BQQAhAyAAKAIQIAEoAhBHDQAgACgCGCAAQRxqKAIAIAEoAhggAUEcaigCABCOKiEDCyADDwtBAA8LIABBEGogAUEQahCaCg8LIAAoAgwgASgCDEYPCyAAKAIMIABBEGooAgAgASgCDCABQRBqKAIAEI4qDwsgACgCECABKAIQRg8LIABBGGogAUEYahCaCguCBQECfwJAAkACQAJAAkACQCAAKAIAIgAoAgAgASgCACIBKAIARw0AIAAoAgQgASgCBEcNACAALQAIIgIgAS0ACEcNAEEBIQMCQAJAAkACQAJAAkACQAJAAkACQAJAIAJBLGsODgEKCgoCAwoKBAUKCgoGAAsCQCACQZ8Baw4HCAoKCgwMDAALAkACQCACQSFrDgcOCwsPCwsBAAsCQCACQewAaw4HDQsLDQsLDgALAkAgAkH5AGsOAggNAAsCQCACQbcBaw4CDQoACyACQYIBRg0MIAJBHUcEQCACQcQARiACQdgARnINDSACQeEARg0NIAJBF0cNCyAALQAJIAEtAAlGDwsMDAsMCwsgAEEUaiABQRRqELgjRQ0JQQAhAyAAKAIMIAEoAgxHDQgMDQtBACEDIABBFGogAUEUahC4I0UNBwwLCyAAKAIQIAAoAhQgASgCECABKAIUEOwPDwtBACEDIABBDGogAUEMahDAKkUNBSAAQRBqIAFBEGoQuCMPC0EAIQMgACgCDCABKAIMRw0EDAkLQQAhAyAAKAIMIAEoAgxHDQMMCAtBACEDIABBEGogAUEQahCaCkUNAgwIC0EAIQMgAEEQaiABQRBqEJoKRQ0BDAcLIAAoAhQgASgCFBCFA0UNASAAKAIMIAEoAgxHDQFBACEDIAAoAhAgASgCEEcNACAAKAIYIABBHGooAgAgASgCGCABQRxqKAIAEI4qIQMLIAMPC0EADwsgAEEQaiABQRBqEJoKDwsgACgCDCABKAIMRg8LIAAoAgwgAEEQaigCACABKAIMIAFBEGooAgAQjioPCyAAKAIQIAEoAhBGDwsgAEEYaiABQRhqEJoKC9QGAgR/AX4jAEFAaiIHJAAgB0EwaiACIAUgBiAFEO4XAkAgBy0AMEEFRwRAIAAgBykDMDcCAAwBCyAHKAI0GgJAAkACQAJAIAUEQCAHQQE6ACYCQCAGQQNxRQRAIAZBgAFxRQ0BIAEtAE0NASAHQTBqIAEQ0BEgBy0AMEEERg0BIAcpAzAiC0L/AYNCBFENASAAIAs3AgAMBwsCQCABLQBNDQAgB0EwaiABELQRIActADBBBEYNACAHKQMwIgtC/wGDQgRSDQMLIAdBADoAJgsgBkHAAHFFDQMgAS0ATUEBRw0CDAMLIAZBAXEEQCABLQBNDQQgB0EwaiABELQRIActADBBBEYNBCAHKQMwIgtC/wGDQgRRDQQgACALNwIADAULIAZBgIEQcUGAAUcNAyABLQBNDQMgB0EwaiABENARIActADBBBEYNAyAHKQMwIgtC/wGDQgRRDQMgACALNwIADAQLIAAgCzcCAAwDCyABIAEoAixBAWo2AiwLIAdBADoAJyAFIQkDQAJAAkAgCUUEQCAHQTBqIAEgAiADIAYgCCALQiCIpxDYASAHLQAwQQRGDQQgBykDMCILQv8Bg0IEUg0BDAQLIAcgCzcCNCAHIAg2AjAgB0EYaiAEEIUQIAdBKGogASADIAYgB0EwaiAHKAIYIAcoAhwgB0EnaiAHQSZqEJEEIActAChBBEcEQCAHKQMoIgtC/wGDQgRSDQELIAdBMGogASAEEJUKIActADBBBEcEQCAHKQMwIgtC/wGDQgRSDQELIActACZFBEAgB0EBOgAmDAILIAEoAkRFDQEgB0EQaiAEQQxqKAIAEI4DIAcoAhQhCCAHQTBqIAEgBCgCAEEBRgR/IARBBGooAgAiCiAIIAggCkkbBSAIC0EAEOwCIActADBBBEYNASAHKQMwIgtC/wGDQgRRDQELIAAgCzcCAAwDCyAHLQAnBEAgASABKAIsQQFrNgIsIAdBADoAJwsgCUEBayEJIAdBCGogBBCFECAEQRBqIQRBASEIIAcpAwghCwwACwALIAdBMGogASADIAVFIAYQrQ8CQCAHLQAwQQRHBEAgBykDMCILQv8Bg0IEUg0BCyAAQQQ6AAAMAQsgACALNwIACyAHQUBrJAALmQcBAX8jAEHwAGsiDiQAIA4gDDYCBCAOIAs2AgBBASEMAkAgACABIAMQrwsNACAAIAEgBCACIAUgBkEAELYDDQAgB0EEaiELIAggCUEDdGohBSAOQTxqIQYgBygCBCEJIAooAgAhBEEBIQADQCAFIAhHIQIgBSAIRgRAIAIhDAwCCyAAIAgoAgRBAWoiAyAAIANLGyIKIABrIQAgCEEIaiEDA0AgAEUEQCAIKAIAIgAoAgAgBBCpCgRAAkACQAJAAkAgDUH/AXFBAWsOAgECAAsgDkEsaiAHKAIAEL8SIA5BIGoiAiAOKAIwIgAgDigCNEECELMHIA5BAjYCZCAOQQU2AlwgDkHkADYCVCAOIAdBJGo2AlAgDkEDNgI8IA5BxNHfADYCOCAOQgM3AkQgDiAONgJgIA4gAjYCWCAOIA5B0ABqNgJAIA5BFGogDkE4ahDyFCAOKAIgIA4oAiQQ2ikgDigCLCAAENopIA5BEGogDkEcaigCADYCACAOIA4pAhQ3AwgMAgsgDkEENgI8IA5B3NHfADYCOCAOQgQ3AkQgDkECNgJsIA5B5AA2AmQgDkHkADYCXCAOQeQANgJUIA4gBzYCWCAOIAdBPGo2AmAgDiAHQSRqNgJQIA4gDkHQAGo2AkAgDiAONgJoIA5BCGogDkE4ahDyFAwBCyAOQQI2AlQgDkGwzd8ANgJQIA5CAjcCXCAOQQI2AkQgDkHkADYCPCAOIAs2AjggDiAOQThqNgJYIA4gDjYCQCAOQQhqIA5B0ABqEPIUCyAOQcQAaiAEQRxqLwEAOwEAIA5BAjYCVCAOQcDN3wA2AlAgDkIBNwJcIA5B4gA2AjAgDiAEKQIUNwI8IA4gDkEsajYCWCAOIA5BOGo2AiwgDiAOQQhqNgI4IAEgDkHQAGoQySQhDCAOKAIIIA4oAgwQ2ikMBAsgDkEsaiIIIAkQvxIgBiAAKAIAIgApAhQ3AgAgBkEIaiAAQRxqLwEAOwEAIA5BATYCVCAOQYT44AA2AlAgDkIBNwJcIA5B4gA2AiQgDiAOQSBqNgJYIA4gCDYCOCAOIA5BOGo2AiAgASAOQdAAahDJJCAOKAIsIA4oAjAQ2ikgAiEMDQMgCkEBaiEAIAMhCAwCCyAOQQA2AmBBASEMIA5BATYCVCAOQfzR3wA2AlAgDkIENwJYIAEgDkHQAGoQySQNAiAAQQFrIQAMAAsACwALIA5B8ABqJAAgDAu7BwEIfyMAQYACayIFJAAgBUEYaiABQbICaikAADcDACAFQSBqIAFBugJqKQAANwMAIAVBJWogAUG/AmopAAA3AAAgBSAENgIMIAUgASkAqgI3AxAgAUEoaiEGIAVBNGoQjSAgBUGoAWohDCAFQdgBaiEJIAVBOGohCgJAAkADQAJAIAYQyg1BASAEGwRAIAUgBhDKDSIHBH8gBwUgASgCgAIhByAFQQA6ANABIAcgByAFQdABahCBFRCvGAs2AtABIAVB0AFqIgsgBUEMahDYG0UNAyALIAFBASADELoCIAUoAtQBIQcgBSgC0AEiCEETRwRAIAVB0ABqIAlBKBD7BhogAkEBcUUNAiAIIAcQzhRFDQIgBSAFLQAQOgB/IAVBAToAggEgBSAFLwAROwCAASAFIAUvARQ7AIMBIAUgBS0AFjoAhQEgBSAFKQAXNwCGASAFIAUoAB82AI4BIAUgBS8AIzsAkgEgBSAFLQAlOgCUASAFIAUtACY6AJUBIAUgBS0AJzoAlgEgBSAFLQAoOgCXASAFIAUoACk2AJgBIAYgBUH/AGoQ0gggASgCyAJBJUYNAiAGEMoNIgJFDQIgAigCAEE+cUEORg0CIAYQiCENAiAGEMoNIQAgBUG0AjYCpAEgBSAANgKcASAFQQE2AtQBIAVB0KLgADYC0AEgBUIBNwLcASAFIAVBnAFqNgKgASAFIAVBoAFqNgLYASALQdii4AAQwx0ACyAAQYCAgIB4NgIAIAAgBzYCBCAKEOkmIAUoAkgiACAFKAJMEJMfIAUoAkQgABDiKQwECyAFQdgBaiAGEJEQIAUgBhCFFCAFIAQ2AtQBIAVBNDoA0AEgASAFKAIAIAUoAgQgBUHQAWoQxhkMAgsgBSAHNgKkASAFIAg2AqABIAwgBUHQAGpBKBD7BhogBSgCNEUEQCAFQX82AjQCQCAFKAJAIAUoAjhJBEAgCiAFQaABahD8GSAFIAUoAjRBAWo2AjQMAQsgBUEANgI0IAUgBzYC1AEgBSAINgLQASAJIAVB0ABqQSgQ+wYaIAVBNGogBUHQAWoQpQQLQQAhAgwBCwtBjN7fABDvFAALIAYQyg1FIARFckUEQCABKALIAiECIAFBJTYCyAIgASABKQPgAjcDmAMgBUHcAWogAUHUAmopAgA3AgAgBUHkAWogAUHcAmooAgA2AgAgBSABKQLMAjcC1AEgBSACNgLQASAFQdABahDGCgsgBiAFQRBqENIIIAAgBUE0ahCJBgsgBUGAAmokAAvhBwEJfyMAQaABayIDJAAgA0EANgIwQQEhBSADQQE2AiQgA0G8w8MANgIgIANCBDcCKAJAIAEgAiADQSBqELUkDQAgAEEIaiEIIAAoAsgCIglBFGwhBiAAKAKsAiEKIAAoAqgCIQsgACgCxAIhBwJAA0ACQAJAIAYEQCAEIAlHDQFB8MrDABDgKQALIABB1AJqIgQoAgAiBkEBTQ0BIANBADYCMCADQQE2AiQgA0HAzt8ANgIgIANCBDcCKCABIAIgA0EgahC1JA0EIABB0AJqIQUgBCEAQQAhBANAIAQgBkYNAiADIAQ2AoABIAUoAgAgACgCACAEQYDEwwAQtx8oAgAhByADQRU2AhQgA0EVNgIMIAMgBzYCnAEgA0ECNgKYASADQQM2AogBIANBmMTDADYChAEgAyADQZwBajYCECADIANBgAFqNgIIIANBAzoAXCADQQA2AlggA0KggICAEDcCUCADQoKAgIDgADcCSCADQQI2AkAgA0EDOgA8IANBCDYCOCADQiA3AjAgA0KAgICA4AA3AiggA0ECNgIgIAMgA0EgajYClAEgA0ECNgKQASADIANBCGo2AowBIAEgAiADQYQBahC1JA0EIARBAWohBAwACwALIAMgBzYCBAJAIAQgC0cEQCAEIApHBEAgA0EgNgKAAQwCCyADQT42AoABDAELIANB3gA2AoABCyAHQRRqIQcgA0G+ATYCmAEgA0EVNgKQASADQeQANgKIASADIANBBGo2ApQBIAMgA0GcAWo2AowBIAMgA0GAAWo2AoQBIAMgBDYCnAEgA0EDOgB8IANBADYCeCADQqCAgIAgNwJwIANCgoCAgOAANwJoIANBAjYCYCADQQM6AFwgA0EINgJYIANCoICAgBA3AlAgA0KAgICA4AA3AkggA0ECNgJAIANBAzoAPCADQQA2AjggA0IgNwIwIANCgoCAgOAANwIoIANBAjYCICADQQM2AhwgA0EENgIMIANBsMTDADYCCCADIANBIGo2AhggA0EDNgIUIAZBFGshBiAEQQFqIQQgAyADQYQBajYCECABIAIgA0EIahC1JEUNAQwDCwsgA0EANgIwIANBATYCJCADQcDO3wA2AiAgA0IENwIoIAEgAiADQSBqELUkDQAgA0ECNgIkIANB5MPDADYCICADQgE3AiwgA0G/ATYCiAEgAyAINgKEASADIANBhAFqNgIoQQEhBSABIAIgA0EgahC1JA0BIANBADYCMCADQQE2AiQgA0H4w8MANgIgIANCBDcCKCABIAIgA0EgahC1JCEFDAELQQEhBQsgA0GgAWokACAFC88GAgZ/AX4jAEFAaiIDJABBASECAkACQAJAAkACQAJAAkACQAJAIAEoAgAOCgQIAQgCCAMICAAICyABKAIIQRFHDQcgASgCEEEHRw0HIAEoAhQtAEVBA0YNByABENUZDAULIAEtACBFDQMMBQtBAiECIAEoAgQiASgCAEEaRgRAIAAoAgggA0EIaiABKQMIIAFBGGooAgAQwCMgAyADKAIQNgI4IAMgAykDCCIINwMwIANBMGoQ1h4gCBD5GkEBcyECCyACQQJGIAJyIQIMBQsgASgCBCIBLQBBDQMgAS0AQA0EIAAoAgQgA0EYaiABKQMoIAFBOGooAgAQwCMgAyADKAIgNgI4IAMgAykD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IAEgAjoAzAIgASAENgLIAiABIAYgBSAFIAZLGyICIAcgAiAHSxs2AuQCIAEgAiAHIAIgB0kbNgLgAiADQThqEP0IIANBEGoQ/QgLIAAgCjYCACAAIAk2AgQgA0HgAGokAAuTBgEEfwJAAkACQAJAAkADQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgAiACgCAEECaw4SAAECAwcEBwcPBQYHBwgJCwwNDgsgACgCBEGAgICAeEYEQCABIABBCGoQyxogASAAQSBqEJ4kIABBFGogARDCLQ8LIAEgAEEEahDLGiABIABBHGoQniQgAEEQaiABEMItDwsgAEEQaiABKAIkENkeIAEgAEEoahCdJA8LIABB0ABqIQMgAEEQaiECAkAgAC0AREEERgRAIAIgASgCJBDZHgwBCyACIAEQ2h4LIAEgAxCdJA8LIAAoAgxBOGwhAyAAKAIIIQRBACEAA0AgACADRg0LAkACQAJAAkACQAJAAkACQEEEIAAgBGoiAigCAEEEayIFIAVBB08bQQFrDgYBAgMEBQYACyABIAJBBGoQyxogASACQRhqELwmIAEgAkEcahCeJAwGCyABIAJBBGoQyxogASACQRhqELwmIAEgAkEcahCeJAwFCyACQRBqKAIAIAEQmC4gASACQQxqELwmDAQLIAJBBGooAgAgARCYLiABIAJBEGoQvCYMAwsgAkEwaigCACABEJguIAIgARDXCAwCCyACQRBqKAIAIAEQmC4gASACQQRqEMsaIAEgAkEcahC8JiABIAJBIGoQniQMAQsgAkEEaiABELkmCyAAQThqIQAMAAsACyAAKAIMQThsIQIgACgCCCEAA0AgAkUNCiAAKAIAQQdHBEAgACABEI0RCyAAQTBqIAEQvQMgAkE4ayECIABBOGohAAwACwALIABBBGogARC9AyAAQQhqIAEQvQMgAEEMaiABEL0DIABBEGohAAwECyAAQRBqIAEQ2x4PCyAAQQRqIQAMAgsgAEEEaiABEL0DIABBCGohAAwBCwsgAEEQaiABENseIAEgAEFAaxC9JiABIABBxABqEL0mDwsgACgCCEGEgICAeEgNAgwDCyAALQAcQQJHBEAgASgCJCAAQQhqEPsFGgsgASAAQShqELwmDwsgAEEIaiABENoeCw8LIABBCGogARDKGgu1BgILfwJ+IwBB0ABr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DAcLIABBgAQ7AQogAEIANwECIABB3OQBOwEADAYLIABBgAQ7AQogAEIANwECIABB3NwBOwEADAULIABBgAQ7AQogAEIANwECIABB3MQAOwEADAQLIABBgAQ7AQogAEIANwECIABB3M4AOwEADAMLIAFB3ABGDQELAkAgAUH/BU0NACABEMoFRQ0AIAJBADoACiACQQA7AQggAiABQRR2QYue4wBqLQAAOgALIAIgAUEEdkEPcUGLnuMAai0AADoADyACIAFBCHZBD3FBi57jAGotAAA6AA4gAiABQQx2QQ9xQYue4wBqLQAAOgANIAIgAUEQdkEPcUGLnuMAai0AADoADCABQQFyZ0ECdiIDIAJBCGoiBWoiBEH7ADoAACAEQQFrQfUAOgAAIAUgA0ECayIDakHcADoAACACQRBqIgQgAUEPcUGLnuMAai0AADoAACAAQQo6AAsgACADOgAKIAAgAikCCDcCACACQf0AOgARIABBCGogBC8BADsBAAwCCyABELAKRQRAIAJBADoAFiACQQA7ARQgAiABQRR2QYue4wBqLQAAOgAXIAIgAUEEdkEPcUGLnuMAai0AADoAGyACIAFBCHZBD3FBi57jAGotAAA6ABogAiABQQx2QQ9xQYue4wBqLQAAOgAZIAIgAUEQdkEPcUGLnuMAai0AADoAGCABQQFyZ0ECdiIDIAJBFGoiBWoiBEH7ADoAACAEQQFrQfUAOgAAIAUgA0ECayIDakHcADoAACACQRxqIgQgAUEPcUGLnuMAai0AADoAACAAQQo6AAsgACADOgAKIAAgAikCFDcCACACQf0AOgAdIABBCGogBC8BADsBAAwCCyAAIAE2AgQgAEGAAToAAAwBCyAAQYAEOwEKIABCADcBAiAAQdy4ATsBAAsgAkEgaiQAC+QFAQR/AkACQAJAAkACQANAAkACQAJAAkACQAJAAkACQAJAAkAgACgCACIAKAIAQQJrDhIAAQIDBwQHBw8FBgcHCAkLDA0OCyAAKAIEQYCAgIB4RgRAIABBCGogARC3GiABIABBIGoQ+yMgAEEUaiABEJQtDwsgAEEEaiABELcaIAEgAEEcahD7IyAAQRBqIAEQlC0PCyAAQRBqENUgIAEgAEEoahDiJQ8LIABB0ABqIQMgAEEQaiECAkAgAC0AREEERgRAIAIQ1SAMAQsgAiAB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IAJBCGogAkG8AWoiA0HsABD7BhogAkH0AGogBEHIABD7BhogAyABQcQBahDmHiABKALcASIDIAMoAgAiBUEBajYCACAFQQBIBEAACyABKAIEIQUgASgCACEEIAEtAPIBIQYgAS0A8QEhByABLQDwASEKIAEoAuwBIQsgASgC6AEhDCACIAEoAgggASgCDBC/KCABKALgASENIAIpAwAhDiAAQdABaiABQdABahDmHiAAIAg2AuQBIAAgCToA8wEgAEEQaiACQQhqQbQBEPsGGiAAIAY6APIBIAAgBzoA8QEgACAKOgDwASAAIAs2AuwBIAAgDDYC6AEgACANNgLgASAAIAM2AtwBIAAgDjcCCCAAIAU2AgQgACAENgIAIABBzAFqIAJBxAFqKAIANgIAIAAgAikCvAE3AsQBIAJB8AJqJAALnQUCAX8BfiMAQSBrIgMkAAJAAkACQAJAIAIoAjxFDQAgAyACQTxqNgIIIANBGGogA0EIaiABEMEpIAMtABhBBEYNACADKQMYIgRC/wGDQgRSDQELIANBADYCDCADQRhqIAEgA0EMakGfteAAQQEQshMgAy0AGEEERg0BIAMpAxgiBEL/AYNCBFENASAAIAQ3AgAMAgsgACAENwIADAELIANBGGogASACKAIwIAIoAjQgAigCBCACKAIIEP4EAkACQAJAAkAgAy0AGEEERwRAIAMpAxgiBEL/AYNCBFINAQsgA0EYaiABIANBDGpB4KHjAEEBELITIAMtABhBBEcEQCADKQMYIgRC/wGDQgRSDQILAkACQAJAAkACQAJAIAIoAkBFDQAgA0EYaiABIANBDGpB5LXgAEEBELITIAMtABhBBEcEQCADKQMYIgRC/wGDQgRSDQkLAkAgAS0ATQ0AIANBGGogARDQESADLQAYQQRGDQAgAykDGCIEQv8Bg0IEUg0CCyADQRhqIAJBQGsgARDeDSADLQAYQQRGDQAgAykDGCIEQv8Bg0IEUg0CCyACKAIYQYCAgIB4Rg0CAkAgAS0ATQ0AIANBGGogARDQESADLQAYQQRGDQAgAykDGCIEQv8Bg0IEUg0JCyADQRhqIAEgAkEYakEBEOcEIAMtABhBBEYNAyADKQMYIgRC/wGDQgRRDQMgACAENwIADAkLIAAgBDcCAAwICyAAIAQ3AgAMBwsgA0EYaiABIANBDGoQ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ACwgA0EgNgIcIANBADYCKCADIAE2AiQgAyAANgIgIANBADYCFCADQQA2AgwCfwJAAkACQCACKAIQIgpFBEAgAigCDCIARQ0BIAIoAggiASAAQQN0aiEEIABBAWtB/////wFxQQFqIQcgAigCACEAA0AgAEEEaigCACIFBEAgAygCICAAKAIAIAUgAygCJCgCDBEDAA0ECyABKAIAIANBDGogASgCBBECAA0DIABBCGohACABQQhqIgEgBEcNAAsMAQsgAigCFCIARQ0AIABBBXQhCyAAQQFrQf///z9xQQFqIQcgAigCCCEFIAIoAgAhAANAIABBBGooAgAiAQRAIAMoAiAgACgCACABIAMoAiQoAgwRAwANAwsgAyAIIApqIgFBEGooAgA2AhwgAyABQRxqLQAAOgAsIAMgAUEYaigCADYCKCABQQxqKAIAIQRBACEJQQAhBgJAAkACQCABQQhqKAIAQQFrDgIAAgELIARBA3QgBWoiDCgCAA0BIAwoAgQhBAtBASEGCyADIAQ2AhAgAyAGNgIMIAFBBGooAgAhBAJAAkACQCABKAIAQQFrDgIAAgELIARBA3QgBWoiBigCAA0BIAYoAgQhBAtBASEJCyADIAQ2AhggAyAJNgIUIAUgAUEUaigCAEEDdGoiASgCACADQQxqIAEoAgQRAgANAiAAQQhqIQAgCyAIQSBqIghHDQALCyAHIAIoAgRPDQEgAygCICACKAIAIAdBA3RqIgAoAgAgACgCBCADKAIkKAIMEQMARQ0BC0EBDAELQQALIANBMGokAAvXBAIMfwJ+IwBB8ABrIgIkACACQQA2AhAgAkKAgICAgAE3AgggASgCBCEDIAFBADYCBCACIAM2AhQgAkEwaiEJIAJBGGpBBHIhByACQSlqIgpBB2ohC0EIIQRBACEBA0ACQAJAAkAgAwRAIAMoAgBBAUYEQCADQQA2AgAgAkHQAGoiDCADQRRqKAIANgIAIAIgAykCDDcDSCACIAMpABk3AzggAiADQSBqKQAANwA/IAMtABghCCADKAIIIQUCQCADQX9GDQAgAyADKAIEQQFrIg02AgQgDQ0AIANBKEEIENURCyAIQQJHDQIgBSEDCyACIAM2AlQgAkHYAGogA0EIahCeESADKAIgIgMEQCADIAMoAgBBAWoiBTYCACAFRQ0DCyACQShqIAJB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ACABNgIIDAQLQeXs4ABBKEH8qOAAEPQXAAtB5ezgAEEoQaCp4AAQ9BcACyACQSBqEJAkIAAgBTcDACAAIAIpAwg3AwggAEEQaiACQRBqKQMANwMAIABBGGogAkEYaikDADcDAAwCCyAAQgI3AwAgACADNgIICyACQSBqEJAkCyACQfAAaiQAC/oEAQJ/IwBBMGsiAyQAAn8CQAJAAkACQAJAAkACQAJAAkBBBiAAKAIAQQJrIgQgBEEJTxtBAWsOCAECAwQFBgcIAAsgA0EBNgIUIANBhPjgADYCECADQgE3AhwgA0GqAjYCDCADIAApAgg3AiggAyADQQhqNgIYIAMgA0EoajYCCCABIAIgA0EQahC1JAwICyADIABBBGo2AgggA0ECNgIUIANB9NHYADYCECADQgE3AhwgA0ENNgIsIAMgA0EoajYCGCADIANBCGo2AiggASACIANBEGoQtSQMBwsgA0EANgIgIANBATYCFCADQZjS2AA2AhAgA0IENwIYIAEgAiADQRBqELUkDAYLIANBADYCICADQQE2AhQgA0Go0tgANgIQIANCBDcCGCABIAIgA0EQahC1JAwFCyADQQA2AiAgA0EBNgIUIANBxNLYADYCECADQgQ3AhggASACIANBEGoQtSQMBAsgA0EANgIgIANBATYCFCADQeTS2AA2AhAgA0IENwIYIAEgAiADQRBqELUkDAMLIAMgADYCCCADQQE2AhQgA0GE+OAANgIQIANCATcCHCADQasCNgIsIAMgA0EoajYCGCADIANBCGo2AiggASACIANBEGoQtSQMAgsgAyAAQQRqNgIIIANBAjYCFCADQezS2AA2AhAgA0IBNwIcIANBDTYCLCADIANBKGo2AhggAyADQQhqNgIoIAEgAiADQRBqELUkDAELIAMgAEEEajYCCCADQQE2AhQgA0GE+OAANgIQIANCATcCHCADQQ02AiwgAyADQShqNgIYIAMgA0EIajYCKCABIAIgA0EQahC1JAsgA0EwaiQAC78EAgN/AX4jAEFAaiIGJAAgBkEwaiACIAVBkAogBRDuFwJAIAYtADBBBUcEQCAAIAYpAzA3AgAMAQsgBigCNBoCQCAFRQ0AIAZBAToAJiAGQQA6ACcgBSEHA0ACQAJAIAdFBEAgBkEwaiABIAIgA0GQCiAIIAlCIIinENgBIAYt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CgwGCyAFEIghDQUgA0FAayAFEJEQIANBCGogBRCFFCADQZDE4AA2AjwgA0E0OgA4IAMoAgggAygCDCADQThqEIEVIQQgBRDKDSICRQ0CIAIoAgBBJEcNAiABIAEpA+ACNwOYAyABKALIAiABQSU2AsgCQSRHDQEgASABKALMAhD/CwwCC0EBIQYMBQtB5ezgAEEoQaDu3wAQ9BcACyADQTRqELsFCyAHEN0oCyAJEPkaDAELIAEoApwDIQEgA0E4aiADQSBqEKUcQTBBCBCrICIEIAIgASABIAJJGzYCBCAEIAIgASABIAJLGzYCAEEAIQYgBEEAOgAoIAQgCDYCJCAEIAc2AiAgBCADKQM4NwMIIARBEGogA0FAaykDADcDACAEQRhqIANByABqKQMANwMACyAAIAQ2AgQgACAGNgIAIANB0ABqJAALzAQBBH8jAEGAAWsiAiQAIAEgABD7ISABKAIoIQEgAkEYakHIoOMAKQMANwIAIAJBwKDjACkDADcCECACQQA7AUIgAkEANgI4IAJCgICAgIABNwIwIAJBADoALCACQQA2AiggAkKAgICAwAA3AiAgAkEANgIMIAJCgICAgIABNwIEIAIgAC8BPDsBQCACIAAoAjg2AjwgAUEMaiACQQRqIgMQnxogASADEKkaIAMgAUEYahDnIyACQTBqIQQCQAJAIAIoAjgiAQRAIABBDGogARCEKSACQcQAaiACKAI0IAIoAjgQoQogAiACKAJENgJYIAIgAigCSCIBNgJQIAIgASACKAJMQQR0IgNqIgU2AlwDQCADRQ0CIAJBBGogASkDACABKAIIEKsRIANBEGshAyABQRBqIQEMAAsACyACQdAAaiIBIAJBBGpBLBD7BhogAEEcaiABEKEaIAQQjiMMAQsgAiAFNgJUIAJB0ABqEIkXIAAtAChFBEAgACACKAI4EJYeIAIgAigCMDYCWCACIAIoAjQiATYCUCACIAEgAigCOEEEdCIDaiIENgJcA0AgAwRAIAAgASkDACABKAIIQQEQmwYgA0EQayEDIAFBEGohAQwBCwsgAiAENgJUIAJB0ABqIgEQiRcgASACQQRqQSwQ+wYaIABBHGogARChGgwBCyACQdgAaiAEQQhqKAIANgIAIAIgBCkCADcDUCAAQSxqIAJB0ABqIgEQoRAgASACQQRqQSwQ+wYaIABBHGogARChGgsgAkGAAWokAAvfBAIGfwF+IwBB0ABrIgMkACADQThqIAEQ0wQgAygCQCEEAkACQAJAAkACQAJAIAMpAzgiCVBFBEAgAyADKAJENgIsIAMgBDYCKCADIAk3AyBBASEGIANBGGogAUEBQQAQ0A4gAygCHCEHIAMoAhgEQCAHIQQMBQsgA0EQaiABQfjj3wBBmbDgAEEBELIHIAMoAhQhCCADKAIQBEAgCCEEDAQLIAMgCDYCNCABQShqIgUQ4w0iBEUNBQJAAkAgBCgCAEEOaw4CBwABCyABKAIoIQQgAUElNgIoIAEgASkDQDcDeCADQcQAaiABQTRqKQIANwIAIANBzABqIAFBPGooAgA2AgAgAyABKQIsNwI8IAMgBDYCOCADQThqEMcKDAYLIAUQuyENBSADQUBrIAUQlgsgA0EIaiAFELgUIANBkMTgADYCPCADQTQ6ADggAygCCCADKAIMIANBOGoQgRUhBCAFEOMNIgJFDQIgAigCAEEkRw0CIAEgASkDQDcDeCABKAIoIAFBJTYCKEEkRw0BIAEgASgCLBCGDAwCC0EBIQYMBQtB5ezgAEEoQaDu3wAQ9BcACyADQTRqELwFCyAHEN0oCyAJEPkaDAELIAEoAnwhASADQThqIANBIGoQpRxBMEEIEKsgIgQgAiABIAEgAkkbNgIEIAQgAiABIAEgAksbNgIAQQAhBiAEQQA6ACggBCAINgIkIAQgBzYCICAEIAMpAzg3AwggBEEQaiADQUBrKQMANwMAIARBGGogA0HIAGopAwA3AwALIAAgBDYCBCAAIAY2AgAgA0HQAGokAAucBAIMfwF+IAAoAgRBAWoiCUEDdiAJQQdxQQBHaiEFIAAoAgAiByEEA0AgBQRAIAQgBCkDACIQQn+FQgeIQoGChIiQoMCAAYMgEEL//v379+/fv/8AhHw3AwAgBEEIaiEEIAVBAWshBQwBBQJAIAlBCE8EQCAHIAlqIAcpAAA3AAAMAQsgB0EIaiAHIAkQ2i0aC0EAIANrIQcDQAJAAkAgBiAJRwRAIAAoAgAiBCAGai0AAEGAAUcNAiAEIAtqIQ0gBCAGQX9zIANsaiEOA0AgBiABIAAgBiACEQwAIhCnIgggACgCBCIEcSIMayAAKAIAIgUgBCAQEPQOIgogDGtzIARxQQhJDQIgBSAKaiIMLQAAIAwgCEEZdiIIOgAAIAAoAgAgCkEIayAEcWpBCGogCDoAACAFIApBf3MgA2xqIQVB/wFHBEAgByEEA0AgBEUNAiAEIA1qIgotAAAhCCAKIAUtAAA6AAAgBSAIOgAAIAVBAWohBSAEQQFqIQQMAAsACwsgACgCBCEEIAAoAgAgBmpB/wE6AAAgACgCACAEIAZBCGtxakEIakH/AToAACAFIA4gAxD7BhoMAgsgACAAKAIEIgEgAUEBakEDdkEHbCABQQhJGyAAKAIMazYCCA8LIAUgBmogCEEZdiIFOgAAIAAoAgAgBCAGQQhrcWpBCGogBToAAAsgBkEBaiEGIAsgA2shCwwACwALAAsAC5wEAgx/AX4gACgCBEEBaiIJQQN2IAlBB3FBAEdqIQUgACgCACIHIQQDQCAFBEAgBCAEKQMAIhBCf4VCB4hCgYKEiJCgwIABgyAQQv/+/fv379+//wCEfDcDACAEQQhqIQQgBUEBayEFDAEFAkAgCUEITwRAIAcgCWogBykAADcAAAwBCyAHQQhqIAcgCRDaLRoLQQAgA2shBwNAAkACQCAGIAlHBEAgACgCACIEIAZqLQAAQYABRw0CIAQgC2ohDSAEIAZBf3MgA2xqIQ4DQCAGIAEgACAGIAIRDAAiEKciCCAAKAIEIgRxIgxrIAAoAgAiBSAEIBAQ2xAiCiAMa3MgBHFBCEkNAiAFIApqIgwtAAAgDCAIQRl2Igg6AAAgACgCACAKQQhrIARxakEIaiAIOgAAIAUgCkF/cyADbGohBUH/AUcEQCAHIQQDQCAERQ0CIAQgDWoiCi0AACEIIAogBS0AADoAACAFIAg6AAAgBUEBaiEFIARBAWohBAwACwALCyAAKAIEIQQgACgCACAGakH/AToAACAAKAIAIAQgBkEIa3FqQQhqQf8BOgAAIAUgDiADEPsGGgwCCyAAIAAoAgQiASABQQFqQQN2QQdsIAFBCEkbIAAoAgxrNgIIDwsgBSAGaiAIQRl2IgU6AAAgACgCACAEIAZBCGtxakEIaiAFOgAACyAGQQFqIQYgCyADayELDAALAAsACwAL8wQBB38jAEFAaiICJAAgAkKAgICAwAA3AhQgAkEANgIcIAFBwAFqIgYQsBUgBkH7ABCYGCEEIAEoAtABIQggAkEgaiABQQBBBCAEGxD2BgJAAkACfwJAAn8gAigCIEEBRwRAIAEoAtABIQEgAkESQRAgBBs2AjAgAkH87tgAQcDu2AAgBBs2AiwgAkEkOgAoIAJBCGogASABIAJBKGoQyRkgAigCDAwBCyACKAIkIgVBgIDEAEkNASABKALQASEBIAJBLEEQIAQbNgIwIAJB0O7YAEHA7tgAIAQbNgIsIAJBJDoAKCACIAEgASACQShqEMkZIAIoAgQLIQEgAEGAgICAeDYCACAAIAE2AgQgAkEgahCJI0EEIQNBAAwBCyACQSBqEIkjAkACQCAFQYCwA3NBgIDEAGtBgJC8f08NACAGIAgQ2x0gAkEUaiIDQdwAENUbIANB9QAQ1RsgBEUEQEEEIQMDQCADRQ0DIAEoAsABIAEoAsQBEP0cIgVBgIDEAEcEQCAGELAVIAJBFGogBRDVGwsgA0EBayEDDAALAAtB+wAhA0EGIQcDQCACQRRqIAMQ1RsgB0UEQEH9ACEFDAILQf0AIQUgASgCwAEgASgCxAEQ/RwiA0H9AEYgA0GAgMQARnINASAGELAVIAdBAWshBwwACwALIAJBFGogBRDVGwsgBEUNASAGQf0AEJgYDQEgAkEjOgAoIAEoAtABIAggAkEoahCiKyEBIABBgICAgHg2AgAgACABNgIEIAIoAhghAyACKAIUCyADEN8pDAELIAAgAikCFDcCACAAQQhqIAJBHGooAgA2AgALIAJBQGskAAvUBAICfwF+IwBBMGsiAyQAAkACQAJAAkACQAJAAkACQAJAIAIoAgBBAWsOBAECAwQACyADQSBqIAEgAigCECIEQQAQ1QEgAy0AIEEERg0EIAMpAyAiBUL/AYNCBFENBCAAIAU3AgAMBwsgA0EgaiACQQhqIAEQZyADLQAgQQRGDQQgAykDICIFQv8Bg0IEUQ0EIAAgBTcCAAwGCyADQSBqIAJBCGogARD3EyADLQAgQQRGDQMgAykDICIFQv8Bg0IEUQ0DIAAgBTcCAAwFCyADQSBqIAEgAkEEahCtByADLQAgQQRGDQIgAykDICIFQv8Bg0IEUQ0CIAAgBTcCAAwECyADQSBqIAJBCGogARCzAiADLQAgQQRGDQEgAykDICIFQv8Bg0IEUQ0BIAAgBTcCAAwDCwJAAkACQCAERQ0AIANBIGogASAEENQcIAMtACBBBEYNACADKQMgIgVC/wGDQgRSDQELIAJBCGohAiABLQBMDQEgA0EgaiACIAEQlhMgAy0AIEEERg0CIAMpAyAiBUL/AYNCBFENAiAAIAU3AgAMBAsgACAFNwIADAMLIAMgAhCUDCADQSBqIAMoAgAgAygCBBDZAyADQRRqIAMoAiQiAiADKAIoQQEgAS0AURCaASADQQhqIAEgAygCGCIBIAMoAhwQ5BAgAy0ACEEERwRAIAMpAwgiBUL/AYNCBFINAgsgAygCFCABELYkIAMoAiAgAhC2JAsgAEEEOgAADAELIAAgBTcCACADKAIUIAEQtiQgAygCICACELYkCyADQTBqJAALugQCBn8CfiMAQSBrIgIkACABQQYgACgCCEECayIDIANBCU8bIgMQuyACQAJAAkACQAJAAkAgAw4JAAQFBQUFAwIBBQtBACEDIAJBGGpBACAAKAIQIAAoAhRB0NXYABCSHSACKAIcIQYgAigCGCEHA0ACfwJAAkACQAJAIAMiACAGRgRAIAUgBkkEQCACQQhqIAUgByAGQeDV2AAQkh0gASACKAIIIAIoAgwiABDvCCAAIARqQR53IQQLIAEgASgCOEEIajYCOCABIAEpAzAgBK0iCSABKAI8IgBBA3QiA0E4ca2GhCIINwMwIABBCEsNASABIAEpAxggCIU3AxggARCaCyABKQMwIQggASAJQcAAIANrrYhCACAAGzcDMCABIAggASkDAIU3AwAMAgsgAEEBaiEDIAAgB2otAABBL0cNBSAAIAVLBEAgASAFIAdqIAAgBWsiABDvCCAAIARqQR53IQQLIAJBEGogAyAHIAZB8NXYABCSHSACKAIQIQACQAJAIAIoAhQOAgQAAQsgAC0AAEEuRw0DDAQLIAAtAABBLkcNAiAALQABQS9GDQMMAgsgAEEIaiEACyABIAA2AjwMCAtBAAwBC0EBCyADaiEFDAALAAsgAEEQaigCACAAQRRqKAIAIAEQ3QgMAwsgAEEQaigCACAAQRRqKAIAIAEQ3QgMAgsgAEEcaigCACAAQSBqKAIAIAEQ3QgMAQsgAEEQaigCACAAQRRqKAIAIAEQ3QgLIAJBIGokAAu+BAEEfyMAQYABayICJAAgAkEYakHIoOMAKQMANwIAIAJBADsBQiACQQA2AjggAkKAgICAgAE3AjAgAkEAOgAsIAJBADYCKCACQoCAgIDAADcCICACQQA2AgwgAkKAgICAgAE3AgQgAkHAoOMAKQMANwIQIAIgAC8BPDsBQCACIAAoAjg2AjwgAUEMaiACQQRqIgMQnxogASADEKkaIAMgAUEYahDnIyACQTBqIQQCQAJAIAIoAjgiAQRAIABBDGogARCEKSACQcQAaiACKAI0IAIoAjgQoQogAiACKAJENgJYIAIgAigCSCIBNgJQIAIgASACKAJMQQR0IgNqIgU2AlwDQCADRQ0CIAJBBGogASkDACABKAIIEKsRIANBEGshAyABQRBqIQEMAAsACyACQdAAaiIBIAJBBGpBLBD7BhogAEEcaiABEKEaIAQQjiMMAQsgAiAFNgJUIAJB0ABqEIkXIAAtAChFBEAgACACKAI4EJYeIAIgAigCMDYCWCACIAIoAjQiATYCUCACIAEgAigCOEEEdCIDaiIENgJcA0AgAwRAIAAgASkDACABKAIIQQEQmwYgA0EQayEDIAFBEGohAQwBCwsgAiAENgJUIAJB0ABqIgEQiRcgASACQQRqQSwQ+wYaIABBHGogARChGgwBCyACQdgAaiAEQQhqKAIANgIAIAIgBCkCADcDUCAAQSxqIAJB0ABqIgEQoRAgASACQQRqQSwQ+wYaIABBHGogARChGgsgAkGAAWokAAuDBAEJfyMAQRBrIgQkAAJ/AkAgAigCBCIDRQ0AIAAgAigCACADIAEoAgwRAwBFDQBBAQwBCyACKAIMIgMEQCACKAIIIgUgA0EMbGohCCAEQQxqIQkDQAJAAkACQAJAIAUvAQBBAWsOAgIBAAsCQCAFKAIEIgJBwQBPBEAgAUEMaigCACEDA0BBASAAQeD0wABBwAAgAxEDAA0IGiACQUBqIgJBwABLDQALDAELIAJFDQMgAUEMaigCACEDCyAAQeD0wAAgAiADEQMARQ0CQQEMBQsgACAFKAIEIAUoAgggAUEMaigCABEDAEUNAUEBDAQLIAUvAQIhAiAJQQA6AAAgBEEANgIIAn9BBEEFIAJBkM4ASRsgAkHoB08NABpBASACQQpJDQAaQQJBAyACQeQASRsLIgMgBEEIaiIKaiIHQQFrIgYgAkEKbiILQfYBbCACakEwcjoAAAJAIAYgCkYNACAHQQJrIgYgC0EKcEEwcjoAACAEQQhqIAZGDQAgB0EDayIGIAJB5ABuQQpwQTByOgAAIARBCGogBkYNACAHQQRrIgYgAkHoB25BCnBBMHI6AAAgBEEIaiAGRg0AIAdBBWsgAkGQzgBuQTByOgAACyAAIARBCGogAyABQQxqKAIAEQMARQ0AQQEMAwsgBUEMaiIFIAhHDQALC0EACyAEQRBqJAAL2AQCBn8BfiMAQdAAayICJAACQAJAAkACfwJAIAAoAgAiA0ECRwRAQQEhBSADQQFxRQRAIAEoAhQiAyAAKAIQIAAoAhQgASgCGCgCDCIBEQMADQYMBQsgAiAAQQRqNgIAIAEoAhwgAiABNgIMIAJCgICAgIDI0Ac3AgQgAq1CgICAgMAhhCEIQQRxRQ0BIAIgCDcDKCACQQE2AiQgAkEBNgIUIAJBhPjgADYCECACQQE2AhwgAkEDOgBMIAJBBDYCSCACQiA3AkAgAkECNgI4IAJBAjYCMCACIAJBMGo2AiAgAiACQShqNgIYIAJBBGpBtM/WACACQRBqEJIEDAILIAAoAiQiA0UNBCAAKAIgIQADQCACQTBqIAAgAxDVAwJAAkAgAigCMEUEQCABIAIoAjQgAigCOBCqAw0BDAgLIAItADkhBCACLQA4IQYgAigCNCEHIAFB8bPYAEEDEKoDRQ0BC0EBIQUMBgsgBkEBcUUNBSAEIAdqIgQgA00EQCAAIARqIQAgAyAEayIDDQEMBgsLIAQgA0GgtNgAEK0QAAsgAkEBNgI0IAJBhPjgADYCMCACQgE3AjwgAiAINwMQIAIgAkEQajYCOCACQQRqQbTP1gAgAkEwahCSBAsiA0EAIAIoAgQiBBtFBEAgAw0DIARFDQFBnNnWAEE3IAJBMGpBjNnWAEHU2dYAEMUOAAsgASgCFEH42NYAQRQgASgCGCgCDBEDAA0CCyABKAIUIQMgASgCGCgCDCEBCyADIAAoAhggACgCHCABEQMAIQULIAJB0ABqJAAgBQu5BAEKfyMAQdABayICJAAgAkEQaiABQTgQ+wYaAkACQAJAAkAgACgCAEUEQCAAQX82AgAgAEEEaiEFIAIoAhBBCkciAyAAKAIEIAAoAgwiBGtLDQFBACEBA0AgAkHIAGoiAyACQRBqQTgQ+wYaIAJBCjYCECACKAJIQQpGDQUgACgCDCAAKAIERwRAIAUgAxD9GSABQQFqIQEMAQsLIAUgAUEBahChCSAAKAIYIgNFDQIgAkEIaiAAKAIUIANBDGxqQQxrIgMoAggiBiABayAGEJkfIAIoAgwhASADIAIoAggiBDYCCCADKAIEIQkgBSABQThsIgggBEE4bCIKayIEQThuEJcfIAAoAgggACgCDCEHIAIgBiABazYClAEgAiABNgKQASACIAM2AowBIAIgCCAJaiIINgKIASAJIApqIQEgB0E4bGohBgJAA0AgBEUEQCACQQo2ApgBIAIgCDYChAEMAgsgAkGYAWogAUE4EPsGGiABQThqIQMgAigCmAFBCkcEQCAGIAFBOBDaLUE4aiEGIARBOGshBCAHQQFqIQcgAyEBDAELCyACIAM2AoQBCyACQZgBahDtByAAIAc2AgwgAkGEAWoQnwcgBSACQcgAahD9GSAFIAJBEGoQ4gwMAwtBsO/YABDvFAALIAUgAxChCSAFIAEQ4gwMAQtBwO/YABDgKQALQQAhBAsgACAAKAIAQQFqNgIAIAQgACgCDEYEQEEAQQBB0O/YABCsEAALIAJB0AFqJAALjgQBCH8jAEEwayICJAACQAJAAkAgASgCAEGAgICAeEYEQCAAQYCAgIB4NgIADAELAkAgASgCCCIGRQRAIAJBADYCCCACQoCAgIAQNwMADAELIAZBDGwiA0EMayIIQQxuIQYgASgCBCIFIQQCQANAIANFDQEgA0EMayEDIAYgBCgCCCAGaiIGTSAEQQxqIQQNAAtBjJLYAEE1QYyT2AAQuxIACyACQRhqIAZBAEEBQQEQmAogAigCHCEEIAIoAhhBAUYNAiACQQA2AhQgAiACKAIgNgIQIAIgBDYCDCAFKAIEIQQgAkEMaiAFKAIIIgMQ4x4gAigCECIHIAIoAhQiCWogBCADEPsGGiAFQRRqIQQgBiADIAlqIgVrIQMgBSAHaiEHA0AgCARAIANFDQUgBEEEaygCACEJIAQoAgAhBSAHQQo6AAAgA0EBayIDIAVJDQUgCEEMayEIIARBDGohBCADIAVrIQMgB0EBaiAJIAUQ+wYgBWohBwwBCwsgAkEIaiAGIANrNgIAIAIgAikCDDcDAAsgAkEkaiABQRxqLwEAOwEAIAIgASkCFDcCHCACIAI2AhggACACQRhqEJINIAIoAgAgAigCBBDaKQsgAkEwaiQADwsgBCACKAIgEOEpAAsgAkEANgIoIAJBATYCHCACQbzc4AA2AhggAkIENwIgIAJBGGpBnJPYABDDHQALyQQCBX8CfiMAQYABayIGJAAgBkHBAGogAUG/AmopAAA3AAAgBkE8aiABQboCaiIHKQEANwIAIAZBNGogAUGyAmopAQAiCzcCACAGQQE6AGAgBiAHLQAAOgBfIAYgAS0AxgI6AGsgBiABKQGqAiIMNwBPIAYgCzcAVyAGIAEpArwCNwBhIAYgAS8BxAI7AGkgBiAMNwIsIAFBKGogBkHPAGoQ0gggBiABNgIoIAZBCGogASADIARBABBcIAYoAgghCAJAIAYtABwiCUEDRwRAIAZB+ABqIAZBFGopAgA3AwAgBkHuAGogBkEfai0AADoAACAGIAYpAgw3A3AgBiAGLwAdOwFsIAYoAiAhByAGQShqEIclAkAgBUUEQCAHKAIUQdgAbCEDIAcoAhAhBANAIANFDQICQAJAAkACQCAEKAIAIgVBBGtBACAFQQVrQQhJG0EBaw4DAAMBAwsgBC0ANQ0BDAILIAQtAEVBAUcNAQsgBCgCLCEFIAQoAighCiAGQaABOgAoIAEgCiAFIAZBKGoQxhkLIARB2ABqIQQgA0HYAGshAwwACwALIAdBAToAPAsgACAINgIIIABBADYCACAAIAYpA3A3AgwgACAJOgAcIAAgBi8BbDsAHSAAIAc2AiAgAEEUaiAGQfgAaikDADcCACAAQR9qIAZB7gBqLQAAOgAAIAAgAiABKAKcAyIBIAEgAkkbNgIsIAAgAiABIAEgAksbNgIoDAELIABBAzYCACAAIAg2AgQgBkEoahCHJQsgBkGAAWokAAvJBAIFfwJ+IwBBgAFrIgYkACAGQcEAaiABQZcDaikAADcAACAGQTxqIAFBkgNqIgcpAQA3AgAgBkE0aiABQYoDaikBACILNwIAIAZBAToAYCAGIActAAA6AF8gBiABLQCeAzoAayAGIAEpAYIDIgw3AE8gBiALNwBXIAYgASkClAM3AGEgBiABLwGcAzsAaSAGIAw3AiwgAUGAAWogBkHPAGoQyQggBiABNgIoIAZBCGogASADIARBABBbIAYoAgghCAJAIAYtABwiCUEDRwRAIAZB+ABqIAZBFGopAgA3AwAgBkHuAGogBkEfai0AADoAACAGIAYpAgw3A3AgBiAGLwAdOwFsIAYoAiAhByAGQShqEKMmAkAgBUUEQCAHKAIUQdgAbCEDIAcoAhAhBANAIANFDQICQAJAAkACQCAEKAIAIgVBBGtBACAFQQVrQQhJG0EBaw4DAAMBAwsgBC0ANQ0BDAILIAQtAEVBAUcNAQsgBCgCLCEFIAQoAighCiAGQaABOgAoIAEgCiAFIAZBKGoQ2BkLIARB2ABqIQQgA0HYAGshAwwACwALIAdBAToAPAsgACAINgIIIABBADYCACAAIAYpA3A3AgwgACAJOgAcIAAgBi8BbDsAHSAAIAc2AiAgAEEUaiAGQfgAaikDADcCACAAQR9qIAZB7gBqLQAAOgAAIAAgAiABKAJ8IgEgASACSRs2AiwgACACIAEgASACSxs2AigMAQsgAEEDNgIAIAAgCDYCBCAGQShqEKMmCyAGQYABaiQAC/gDAgN/An4CQAJAAkACQAJAAkACQAJAAkAgAg4CAAECCyAAQQA6AAEMBwtBASECIAEtAABBK2sOAwUBBQELIAEtAABBK0YEQCABQQFqIQEgAkEKSSACQQFrIQINAQwCCyACQQhLDQELIANBCksNAUEAIQQDQCABLQAAQTBrIgUgA08NBCABQQFqIQEgBSADIARsaiEEIAJBAWsiAg0ACwwCCwJAAkAgA0EKTQRAIAOtIQdBACEEA0AgAkUNBSABLQAAQTBrIgUgA08NBiAErSAHfiIIQiCIpw0DIAFBAWohASACQQFrIQIgBSAIpyIGaiIEIAZPDQALDAELIAOtIQdBACEEA0AgAkUNBCABLQAAIgZBMGsiBUEKTwRAQX8gBkEgciIFQdcAayIGIAYgBUHhAGtJGyIFIANPDQYLIAStIAd+IghCIIinDQIgAUEBaiEBIAJBAWshAiAFIAinIgZqIgQgBk8NAAsLIABBAjoAAQwECyAAQQI6AAEMAwtBACEEA0AgAS0AACIGQTBrIgVBCk8EQEF/IAZBIHIiBUHXAGsiBiAGIAVB4QBrSRsiBSADTw0DCyABQQFqIQEgBSADIARsaiEEIAJBAWsiAg0ACwsgACAENgIEIABBADoAAA8LIABBAToAASAAQQE6AAAPCyAAQQE6AAAL7gQBAX8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIAIgAoAgAOExISAQIDBAUGBwgJCgsMDQ4PEBEACyAAQQhqEIseDBELIAAoAgRBgICAgHhGBEAgAEEIahDwJiAAKAIgEMIeIABBFGoQhSUMEQsgAEEEahDwJiAAKAIcEMIeIABBEGoQhSUMEAsgAEEQahDXGyAAKAIoEPwiDA8LIABBEGohAQJAIAAtAERBBEYEQCABENcbDAELIAEQix4LIAAoAlAQ/CIMDgsgAEEEahDECSAAKAIEIABBCGooAgAQkSoMDQsgAEEEahDJBAwMCyAAQQRqEL8ZIAAoAgQgAEEIaigCABCRKgwLCyAAQQRqEMkEDAoLIABBBGoQyQQMCQsgAEEIahDyJgwICyAAQQRqEMkEIABBCGoQyQQgAEEMahDJBCAAQRBqEMkEDAcLIABBEGoQ3iEMBgsgAEEEahDJBAwFCyAAQQRqEMkEDAQLIABBBGoQyQQgAEEIahDJBAwDCyAAQRBqEN4hIABBQGsQ+iYgAEHEAGoQ+iYMAgsCQAJAAkACQEEEIAAoAghBgICAgHhzIgEgAUEETxsOBAECBQMACyAAQQhqEPImIABBGGoiASgCACAAQRxqKAIAEKIcIAAoAhQgASgCABD5KQwECyAAKQMgEO0mDAMLIAApAxAgAEEgaikDABCMKwwCCyAAKAIgIgEoAgAgAUEEaigCABDfKSABQRBBBBDVESAAKQMYEO0mDAELIAAtABxBAkcEQCAAKQMIEPkaCyAAQShqEPkmCyAAQdgAQQgQ1RELyAQCBn8CfiMAQSBrIgMkACABQShqIgQQwyAhBgJAIAQQyg0iBUUEQCABKAKAAiEBIANBADoACCABIAEgA0EIahCBFSEBIABBAjoAGCAAIAE2AgAMAQsCQAJAAkACQAJAAkBBECAFKAIAQQJrIgUgBUEjTxsiBUEQRwRAIAVBIkcNASABIAEpA+ACNwOYAyABKALIAiABQSU2AsgCQSRHDQIgASgCzAIhASAAQQI6ABggACABNgIADAcLIAEgASkD4AI3A5gDIAEoAsgCIQUgAUElNgLIAiABKQPYAiEKIAEpA9ACIQkgASgCzAIhByAFQQJrIghBIk0gCEEQR3ENAiAFBEAgAyAHNgIIIAJFDQQgA0EIahD/IkIAIQkLIAAgBBDKDSICBH8gAigCAEERRgVBAAs6ABggACAJNwMQIAAgCjcDACAAIAYgASgCnAMiASABIAZJGzYCDCAAIAYgASABIAZLGzYCCAwGCyADQRRqIAQQkRAgAyAEEIUUIANBDjYCECADQaSN4AA2AgwgA0EwOgAIIAMoAgAgAygCBCADQQhqEIEVIQIgBBDKDSIERQ0EIAQoAgBBJEcNBCABIAEpA+ACNwOYAyABKALIAiABQSU2AsgCQSRHDQMgASABKALMAhD/CwwEC0Hl7OAAQShBhI3gABD0FwALQeXs4ABBKEGUjeAAEPQXAAsgAEECOgAYIAAgBzYCACAKEPkaDAILQeXs4ABBKEG0jeAAEPQXAAsgAEECOgAYIAAgAjYCAAsgA0EgaiQAC7YEAgZ/An4jAEEgayIDJAAgAUEoaiIEEN4gIQYCQCAEEOMNIgVFBEAgASgC2AIhASADQQA6AAggASABIANBCGoQgRUhASAAQQI6ABggACABNgIADAELAkACQAJAAkACQAJAQRAgBSgCAEECayIFIAVBI08bIgVBEEcEQCAFQSJHDQEgASABKQNANwN4IAEoAiggAUElNgIoQSRHDQIgASgCLCEBIABBAjoAGCAAIAE2AgAMBwsgASABKQNANwN4IAEoAighBSABQSU2AiggASkDOCEKIAEpAzAhCSABKAIsIQcgBUECayIIQSJNIAhBEEdxDQIgBQRAIAMgBzYCCCACRQ0EIANBCGoQnSNCACEJCyAAIAQQ4w0iAgR/IAIoAgBBEUYFQQALOgAYIAAgCTcDECAAIAo3AwAgACAGIAEoAnwiASABIAZJGzYCDCAAIAYgASABIAZLGzYCCAwGCyADQRRqIAQQlgsgAyAEELgUIANBDjYCECADQaSN4AA2AgwgA0EwOgAIIAMoAgAgAygCBCADQQhqEIEVIQIgBBDjDSIERQ0EIAQoAgBBJEcNBCABIAEpA0A3A3ggASgCKCABQSU2AihBJEcNAyABIAEoAiwQhgwMBAtB5ezgAEEoQYSN4AAQ9BcAC0Hl7OAAQShBlI3gABD0FwALIABBAjoAGCAAIAc2AgAgChD5GgwCC0Hl7OAAQShBtI3gABD0FwALIABBAjoAGCAAIAI2AgALIANBIGokAAvoFwIXfwR+IwBBgAJrIgUkAAJAIAMtACVBAkYEQCAAIQogAiEPIwBB0ARrIgQkACADKAIQIRQgAygCDCEVIAMoAgAhAiADKAIEIQsgAygCCCEAIARBADYCMCAEQoCAgICAATcCKCAEIAsgAEE4bGoiFjYCQCAEIAI2AjwgBCALNgI4IAQgCzYCNCAEQcgAaiENIARBiARqIQ4gBEHoAWohESAEQYAEakEEciESIARB+ABqQQRyIRcgBEHsAWoiGEEGaiEZA0ACQAJAAkAgCyIAIBZGDQAgBCAAQThqIgs2AjggACgCACEDIARBxABqIgIgAEEEakE0EPsGGiADQQpGDQAgBCADNgJ4IBcgAkE0EPsGGgJAAkACQCADQQFHBEACQAJAIANBBmsOBAMBAQABCyAEQbABaiIAIA1BMBD7BhogBEEoaiAAEPwZDAgLAkACQEHAkeQAKAIAIhoEQCAEKAKsASEJIAQoAqgBIQwgBCgCiAEhBiAEKAKEASEHIAQoAoABIRMgBCgCjAEiCCECIAQoApABIgMhAAJAAkACQAJAIAQoAnhBAWsOCQUDBQEBAAEBAgYLIAQoAnwiACgCICECIAAoAiQhAAwFCyATIQIgByEADAQLIAQoApgBIQkgBCgClAEhACADIQICQAJAAkACQAJAIBNBAWsOEgAAAgAFBQUCAwUBAgIIAwMEBQgLIAchAiAGIQAMBwsgBygCfCEAIAcoAnghAgwGCyAIIQIgAyEADAULIAAhAiAJIQAMBAsCQAJAAkACQAJAAkAgBkEBaw4HAQICAwMEBQALIAwoAighACAMKAIkIQIMCAsgDCgCNCEAIAwoAjAhAgwHCyAIKAIQIQAgCCgCDCECDAYLIAgoAgQhACAIKAIAIQIMBQsgCCgCHCEAIAgoAhghAgwECyAIKAJMIQAgCCgCSCECDAMLIAYhAiAIIQAMAgtBzMngAEHIABCEKwALIAwhAiAJIQALIARBgARqIgMgGiACIABBscDfAEE/EOAOIAMQxwEgAxCeCyAEQfgAahDYIAwHCyAEQeABaiANQSgQ+wYaAkACQAJAAkACQCAEKALgAQ4DAgIBAAsgBEGABGoiACANQSgQ+wYaIARBATYC5AMgBEHAvN8ANgLgAyAEQgE3AuwDIARBlAU2AsQEIAQgBEHABGo2AugDIAQgADYCwAQgBEHgA2pByLzfABDDHQALIAQoAuQBIgcoAgghACAHKAIEIQIgBCAHKAIANgL4AyAEIAI2AvQDIAQgAjYC8AMgBEEANgLoAyAEQQA2AuADIAQgAiAAQThsajYC/AMgBEHgA2oiABC2ByIDRQRAIARBADYCwAIgBEKAgICAwAA3A7gCIAAQzREgBEG4AmoQ6CYgBxDxKgwKC0EEIQIgBEEQakEEQQRBBBD7FCAEKAIQIQAgBCgCFCIGIAM2AgBBASEDIARBATYCyAQgBCAGNgLEBCAEIAA2AsAEIARBmARqIARB+ANqKQIANwMAIARBkARqIARB8ANqKQIANwMAIA4gBEHoA2opAgA3AwAgBCAEKQLgAzcDgAQDQCAEIARBgARqELYHIgA2AswEIAAEQCAEKALABCADRgRAIARBwARqQQEQkh8gBCgCxAQhBgsgAiAGaiAANgIAIAQgA0EBaiIDNgLIBCACQQRqIQIMAQsLIARBzARqENgnIARBgARqEM0RIARBwAJqIgIgBEHIBGooAgAiADYCACAEIAQpAsAENwO4AiAADgICBAELIAQpA6gBIR4gBEHgA2oiAyARENYbIAQgASAPEMAjIAQoAgghACAEKQMAIARBgARqIgYgERDWGyAEKQOABCEdIAQpA4gEIRsgABDEGCECIAMQgxUhACAEQQA6ALwEIAQgADYCuAQgBEIANwOwBCAEIAI2AqgEIARCADcDoAQgBCAbNwOYBCAEIB03A5AEIARBADYCiAQgBEEBNgKABCAGENwoIQAgBCAeNwOQAiAEIAA2AowCIARBEjYCiAIgDiANQSgQ+wYaIARBETYCgAQgBEEoaiIAIAYQ/BkgACAEQYgCahD8GQwICyASIAQpA7gCNwIAIBJBCGogAigCADYCACAEQgA3A5AEIARBGTYCgAQgBCAEQYAEaiIAENwoNgKEBCAEQRI2AoAEIAQgBykCDDcDiAQgBEEoaiAAEPwZDAMLIAQoAnghACAEQbgCahDoJiAHEPEqAkACQCAAQQZrDgQIAQEIAAsgAEEBRg0HCyAEQfgAahDxCQwGCwJAIAQoAnwiBikDAFBFBEBBwJHkACgCACIARQ0FIARBgARqIgIgACAGKAIgIAYoAiRB9L/fAEE9EOAOIAIQxwEgAhCeCwwBCyAEQdgCaiAGQRhqKQMANwMAIARB0AJqIAZBEGopAwA3AwAgBCAGKQMINwPIAiAEQeACaiIAIARByAJqEOMHAn8gBi0AQEUEQCAEQeABaiICIAZBKGoQ1hsgDiACEOsYIARBADYCgAQgABDcKCEAQThBCBCrICAEQYAEakEoEPsGIgNBADoANCADIAA2AjAgA0IANwMoIARBATYC6AMgBCADNgLkAyAEQQE2AuADIBhCADcCACAZQgA3AQAgBEKAgICAgAE3AuABIARBADYC6AEgAhD0JiAEQYAEOwH4AyAEQQA2AvQDIAQgBikDIDcC7AMgBEHgA2oQ1xYhAkECIQNBEQwBCyAEQRhqIAEgDxDAIyAEKAIgIQAgBCkDGCAEQYAEaiAGQShqENYbIAQpA4AEIR0gBCkDiAQhGyAAEMQYIQIgBEHgAmoQ3CghACAEQQA6ANwDIAQgADYC2AMgBEIANwPQAyAEIAI2AsgDIARCADcDwAMgBCAbNwO4AyAEIB03A7ADIARBADYCqAMgBEEBNgKgAyAGKAIkIQIgBigCICEDIARBoANqENwoIRBBEgshACAEIAI2AowEIAQgAzYCiAQgBCAQNgKEBCAEIAA2AoAEIARBKGogBEGABGoQ/BkLIAYpAygQ+RogBikDAFANBCAGEKQfDAQLIARBADYCwAIgBCAEKAK8AigCADYChAQgBEESNgKABCAEIAcpAgw3A4gEIARBKGogBEGABGoQ/BkgBEG4AmoQ6CYLIAcQ8SoCQAJAIAQoAngiAEEGaw4EBQEBBQALIABBAUYNBAsgBEH4AGoQ8QkMAwsgBEE0ahDZFyAKQQhqIARBMGooAgA2AgAgCiAEKQIoNwIAIApBADYCFCAKIBQ2AhAgCiAVNgIMIARCADcCkAQgBEIANwKIBCAEQoCAgICAATcCgAQgBEGABGoQ6SYgARD5GiAEQdAEaiQADAQLQczJ4ABByAAQhCsACyAGEP8sDAALAAsgAykDACEcIAMoAiAhCCAFQSBqIANBGGopAwAiHTcDACAFQRhqIANBEGopAwA3AwAgBSADKQMIIhs3AxAgBSAbIB2nEMAjIAUoAgghByAFKQMAIRsgBUGQAWoiCSAIQSgQ+wYaIAVBKGoiBiAbIAcgCRDMBCABEPwaIQEgBSACNgKYASAFIAE3A5ABIAVBQGsgBUEQaiAJEOwFIAEQ+RpBwABBCBCrICAJIANBCGoQhRYgCUHAABD7BiECIAVBATYC4AEgBSACNgLcASAFQQE2AtgBIAkgBUHYAWoiAyAGEKMKQRBBBBCrICICQQhqIAVByABqKQIANwIAIAIgBSkCQDcCACAFQQE2AlwgBSACNgJYIAVBATYCVCAJENcVIQIgBUH0AGpCADcCACAFQgA3AmwgBUEFOgBoIAUgAjYCYCAFQRc2AlAgBUIANwLwASAFQQM6AOwBIAVBADYC6AEgBUIANwL4ASAFQgA3AuABIAVCgICAgMAANwLYASAFQeQBahDSJSADEOYmQTBBCBCrICEDIAVB0ABqENwoIQIgA0IANwIIIAMgAjYCBCADQRI2AgAgAEEBNgIIIAAgAzYCBCAAQQE2AgAgAEEANgIUIAAgHDcCDCAFQgA3AqABIAVCADcCmAEgBUKAgICAgAE3ApABIAgQ8ywgCRDpJiABEPkaCyAFQYACaiQAC68EAgR/AX4jAEEgayIDJAAgA0EQaiABIAIoAgwiBUEAENUBAkACQCADLQAQQQRGDQAgAykDECIHQv8Bg0IEUQ0AIAAgBzcCAAwBCwJAAkACQAJAIAVFDQAgA0EQaiABIAUQ1BwgAy0AEEEERg0AIAMpAxAiB0L/AYNCBFINAQsgAi0AGA0BDAILIAAgBzcCAAwCCyADQQA2AhAgA0EIaiABIANBEGpBpLXgAEEHELITAkAgAy0ACEEERwRAIAMpAwgiB0L/AYNCBFINAQsgA0EQaiABENARIAMtABBBBEYNASADKQMQIgdC/wGDQgRRDQEgACAHNwIADAILIAAgBzcCAAwBCyADQQA2AhAgA0EIaiABIANBEGogAi0AGUECdCIEQfj44wBqKAIAIARB7PjjAGooAgAQshMCQAJAAkAgAy0ACEEERwRAIAMpAwgiB0L/AYNCBFINAQsgAigCBCEEIAIoAggiBkUNASAEKAIAQQFrQQNPDQEgAS0ATQ0CIANBEGogARDQESADLQAQQQRGDQIgAykDECIHQv8Bg0IEUQ0CIAAgBzcCAAwDCyAAIAc3AgAMAgsgA0EQaiABENARIAMtABBBBEYNACADKQMQIgdC/wGDQgRRDQAgACAHNwIADAELIANBEGogASAFIAIoAhAgBCAGEKEDAkAgAy0AEEEERwRAIAMpAxAiB0L/AYNCBFINAQsgAEEEOgAADAELIAAgBzcCAAsgA0EgaiQAC5cEAQJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIAQQFrDhIKCgsBAgwMAwQFBgsLBw0NCAkACyABIABBBGoQ9wUPCyAAQQxqIAEQsiYPCyABKAIkIABBEGoQ+wUaIABBKGogARDKLQ8LIABBBGogARC/LSAAQQhqIAEQyi0gACgCFEUNBiAAQRRqIAEQyi0PCyAAQRBqIAEQvy0gACgCDEEYbCECIAAoAgghAANAIAJFDQYgAEEUaiABELImIAEgABD3BSACQRhrIQIgAEEYaiEADAALAAsgAEEEaiABEL8tDwsgASAAKAIEIgBByABqEPcFIAAoAgBBCEcEQCAAIAEQnyQgASAAQShqEPcFCyAAQeAAaiABEJkkDwsCQCAAKAIEIgNBAkYNACAAQQhqIQIgA0EBcUUEQCACIAEQyy0MAQsgAiABEL8tCyAAQRhqIAEQsiYgAEEcaiABELImIABBDGogARDKLQ8LIAEgAEEIahCaBA8LIABBBGogARC/LQsPCyAAQQRqIAEQvy0gAEEIaiABEMotDwsgASgCJCEBIABBEGoiAC0AFEECRwRAIAEgABD7BRoLDwsgAEEEaiIDQQRqIQICQAJAAkACQCADKAIAQQFrDgIBAgALIAIgARDLLQwCCyABIAIoAgAQ5RYMAQsgAiABEMctCyAAQQxqIAEQvy0gAEEQaiABEMotC/YEAQJ/IwBBEGsiAiQAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkBBCyAAKAIAQYCAgIB4cyIDIANBEk8bQQFrDhEBAgMEBQYHCAkKCwwNDg8QEQALIAIgAEEEajYCDCABQazL4ABBAiACQQxqQegAEMwKDBELIAIgAEEEajYCDCABQa7L4ABBBCACQQxqQcUAEMwKDBALIAIgAEEEajYCDCABQbLL4ABBByACQQxqQacFEMwKDA8LIAEoAhRBucvgAEELIAEoAhgoAgwRAwAMDgsgASgCFEHEy+AAQQsgASgCGCgCDBEDAAwNCyABKAIUQc/L4ABBCyABKAIYKAIMEQMADAwLIAIgAEEEajYCDCABQdrL4ABBDiACQQxqQcAAEMwKDAsLIAIgAEEEajYCDCABQejL4ABBEiACQQxqQcAAEMwKDAoLIAIgAEEEajYCDCABQfrL4ABBECACQQxqQcAAEMwKDAkLIAEoAhRBiszgAEEVIAEoAhgoAgwRAwAMCAsgASgCFEGfzOAAQQ4gASgCGCgCDBEDAAwHCyACIAA2AgwgAUGtzOAAQQ0gAkEMakGeARDMCgwGCyABKAIUQbrM4ABBFSABKAIYKAIMEQMADAULIAEoAhRBz8zgAEEVIAEoAhgoAgwRAwAMBAsgASgCFEHkzOAAQRUgASgCGCgCDBEDAAwDCyABKAIUQfnM4ABBDSABKAIYKAIMEQMADAILIAIgAEEEajYCDCABQYbN4ABBGCACQQxqQagFEMwKDAELIAIgAEEEajYCDCABQZ7N4ABBDSACQQxqQfAEEMwKCyACQRBqJAALmAQBCX8jAEEQayIHJAAgACADQf8BcWpBLGotAAAiBkECaiEMIAAoAgghAyAAKAIEIQADQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQCAAIAMgAkGAhMQAELcfKAIAIgRB/wFxQf4Baw4CAgABCyAAIAMgAiAMakGQhcQAELcfKAIAIgRBAUcgAXINAwwKCyAHQQhqIAAgAyACQQJqIghBkITEABDsGyAEQQJ2QT9xIARBA3FBAEdqIgQgBygCDCIFSw0DIAcoAgghCSAEQQJ0IQpBfyEFA0AgCkUNAiAFQQFqIQUgBiAJKAIAIgtB/wFxRg0FIAYgC0EIdkH/AXFGDQYgBiALQRB2Qf8BcUYNByAJQQRqIQkgCkEEayEKIAYgC0EYdkcNAAsgACADIAQgCGogBUECdGpBA2pBsITEABC3HygCAAwICyAGIAAgAyACQfCExAAQtx8tAAFGDQYLIAFFDQdBAAwGCyAEQQAgBEEBRxsMBQsgBCAFQaCExAAQrhAACyAAIAMgBCAIaiAFQQJ0akHghMQAELcfKAIADAMLIAAgAyAEIAhqIAVBAnRqQQFqQdCExAAQtx8oAgAMAgsgACADIAQgCGogBUECdGpBAmpBwITEABC3HygCAAwBCyAAIAMgAkECakGAhcQAELcfKAIACyAHQRBqJAAPCyAAIAMgAkEBakGghcQAELcfKAIAIQIMAAsAC9gEAgV/AX4jAEEgayIDJAAgAS0AtgIhBiABQShqIgIQwyAhBAJAIAIQyg0iBUUEQCABKAKAAiEBIANBADoACCABIAEgA0EIahCBFSEBIABCADcDACAAIAE2AggMAQsCQAJAAkACQAJAAkACQCAFKAIAIgVBAkcEQAJAIAVBH0cEQCAFQSRHDQEgASABKQPgAjcDmAMgASgCyAIgAUElNgLIAkEkRw0FIAEoAswCIQEgAEIANwMAIAAgATYCCAwKCyAGQQFxDQILIAMgAhCFFCADKAIEIQQgAygCACADQcIAOgAIIAQgA0EIahCBFSEEIAIQyg0iAkUNByACKAIAQSRGDQIMBwsgASgCyAIhAiABQSU2AsgCIAEgASkD4AI3A5gDIANBFGogAUHUAmopAgA3AgAgA0EcaiABQdwCaigCADYCACADIAEpAswCNwIMIAMgAjYCCCACQQJHDQMgA0EQahCcESEHIAEoApwDIQIMBQsgASABKALkAiICNgKcAyABIAEoAuACNgKYAyABKALIAiABQSU2AsgCQR9GBEAgASkD0AIhBwwFC0Hl7OAAQShBvKjgABD0FwALIAEgASkD4AI3A5gDIAEoAsgCIAFBJTYCyAJBJEcNAiABIAEoAswCEP8LDAQLQeXs4ABBKEGcqOAAEPQXAAtB5ezgAEEoQayo4AAQ9BcAC0Hl7OAAQShBzKjgABD0FwALIAAgBzcDACAAIAQgAiACIARJGzYCDCAAIAQgAiACIARLGzYCCAwBCyAAQgA3AwAgACAENgIICyADQSBqJAALvgQBA38jAEEwayICJAACQCAAENogRQRAIAAoAgBBAUYNASACIABBMBD7BiAAQQA2AgggAEIBNwMAEOQDDAELAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIAQQFrDhIREQECAwQFBgcICQoLDA0ODxAACyAAQQRqEKUJDBALIABBBGoQ/S0gAEEIahCHLgwPCyAAQQxqEPsnDA4LIABBADoAJCAAQShqEIcuDA0LIAAtACRBAkYNDCAAQQA6ACQMDAsgAC0AJEECRg0LIABBADoAJAwLCyAAQQRqEP0tIABBCGoQhy4gACgCFEUNCiAAQRRqEIcuDAoLIABBEGoQ/S0gACgCDEEYbCEBIAAoAgghAANAIAFFDQogAEEUahD7JyAAEKUJIAFBGGshASAAQRhqIQAMAAsACyAAQQRqEP0tDAgLIAAoAgQiAEHIAGoQpQkgACgCAEEIRwRAIAAQ5yUgAEEoahClCQsgAEHgAGoQ5SUMBwsgAEEEahD9LSAAQQhqEIcuDAYLIABBBGoQ/S0gAEEIahCHLgwFCwJAIAAoAgQiA0ECRg0AIABBCGohASADQQFxRQRAIAEQiC4MAQsgARD9LQsgAEEYahD7JyAAQRxqEPsnIABBDGoQhy4MBAsgAEEEahDnHSAAQQxqEP0tIABBEGoQhy4MAwsgAEEEahDnHSAAQQxqEP0tIABBEGoQhy4MAgsgAEEIahC9CgwBCyAAQQRqEP0tCyACQTBqJAALvwQCBX8BfiMAQSBrIgMkACABLQCOAyEGIAFBKGoiAhDeICEEAkAgAhDjDSIFRQRAIAEoAtgCIQEgA0EAOgAIIAEgASADQQhqEIEVIQEgAEIANwMAIAAgATYCCAwBCwJAAkACQAJAAkACQAJAIAUoAgAiBUECRwRAAkAgBUEfRwRAIAVBJEcNASABIAEpA0A3A3ggASgCKCABQSU2AihBJEcNBSABKAIsIQEgAEIANwMAIAAgATYCCAwKCyAGQQFxDQILIAMgAhC4FCADKAIEIQQgAygCACADQcIAOgAIIAQgA0EIahCBFSEEIAIQ4w0iAkUNByACKAIAQSRGDQIMBwsgASgCKCECIAFBJTYCKCABIAEpA0A3A3ggA0EUaiABQTRqKQIANwIAIANBHGogAUE8aigCADYCACADIAEpAiw3AgwgAyACNgIIIAJBAkcNAyADQRBqEJwRIQcgASgCfCECDAULIAEgASgCRCICNgJ8IAEgASgCQDYCeCABKAIoIAFBJTYCKEEfRgRAIAEpAzAhBwwFC0Hl7OAAQShBvKjgABD0FwALIAEgASkDQDcDeCABKAIoIAFBJTYCKEEkRw0CIAEgASgCLBCGDAwEC0Hl7OAAQShBnKjgABD0FwALQeXs4ABBKEGsqOAAEPQXAAtB5ezgAEEoQcyo4AAQ9BcACyAAIAc3AwAgACAEIAIgAiAESRs2AgwgACAEIAIgAiAESxs2AggMAQsgAEIANwMAIAAgBDYCCAsgA0EgaiQAC6YEAQp/IwBBEGsiByQAIAEtAAAhCCABLQABIQkgAS0AAiEKIAdBCGogAiADIAQgBUGMpcMAEOwWQQAhAgJAIAcoAgwiAUEATA0AIAcoAggiAyABaiEFAkAgAUEDTQRAIAMhAQNAIAEgBU8NAyABLQAAIgYgCkYgBiAIRnIgBiAJRnINAiABQQFqIQEMAAsACwJAQYCChAggAyIBKAAAIgYgCEGBgoQIbCIOcyILayALckGAgYKEeHFBgIGChHhHDQBBgIKECCAGIAlBgYKECGwiC3MiDGsgDHJBgIGChHhxQYCBgoR4Rw0AQYCChAggBiAKQYGChAhsIgxzIgZrIAZyQYCBgoR4cUGAgYKEeEcNACAFQQRrIQ8gAUF8cUEEaiEBA0ACQAJAIAEgD0sNAEGAgoQIIAEoAgAiBiAOcyINayANckGAgYKEeHFBgIGChHhHDQBBgIKECCAGIAtzIg1rIA1yQYCBgoR4cUGAgYKEeEcNAEGAgoQIIAYgDHMiBmsgBnJBgIGChHhxQYCBgoR4Rg0BCwNAIAEgBU8NBSABLQAAIgYgCkYgBiAIRnIgBiAJRnINBCABQQFqIQEMAAsACyABQQRqIQEMAAsACwNAIAEgBU8NAiABLQAAIgYgCkYgBiAIRnIgBiAJRnINASABQQFqIQEMAAsACyAAIAEgA2sgBGoiATYCBEEBIQIgACABQQFqNgIICyAAIAI2AgAgB0EQaiQAC4MEAQJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIAQQFrDhIKCgsBAgwMAwQFBgsLBw0NCAkACyAAQQRqIAEQnBoPCyAAQQxqIAEQuCUPCyABIAApAxAgACgCIBCPGyAAQShqIAEQ6CwPCyAAQQRqIAEQ1SwgAEEIaiABEOgsIAAoAhRFDQYgAEEUaiABEOgsDwsgAEEQaiABENUsIAAoAgxBGGwhAiAAKAIIIQADQCACRQ0GIABBFGogARC4JSAAIAEQnBogAkEYayECIABBGGohAAwACwALIABBBGogARDVLA8LIAAoAgQiAEHIAGogARCcGiAAKAIAQQhHBEAgACABEN4jIABBKGogARCcGgsgAEHgAGogARDdIw8LAkAgACgCBCIDQQJGDQAgAEEIaiECIANBAXFFBEAgAiABEOksDAELIAIgARDVLAsgAEEYaiABELglIABBHGogARC4JSAAQQxqIAEQ6CwPCyAAQQhqIAEQtwkPCyAAQQRqIAEQ1SwLDwsgAEEEaiABENUsIABBCGogARDoLA8LIABBEGogARCeIQ8LIABBBGoiA0EEaiECAkACQAJAAkAgAygCAEEBaw4CAQIACyACIAEQ6SwMAgsgAigCACABEOwTDAELIAIgARDnLAsgAEEMaiABENUsIABBEGogARDoLAuYBAECfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCAEEBaw4SCgoLAQIMDAMEBQYLCwcNDQgJAAsgAEEEaiABELUaDwsgAEEMaiABEIsmDwsgASAAKQMQIAAoAiAQsx0gAEEoaiABEKMtDwsgAEEEaiABEIotIABBCGogARCjLSAAKAIURQ0GIABBFGogARCjLQ8LIABBEGogARCKLSAAKAIMQRhsIQIgACgCCCEAA0AgAkUNBiAAQRRqIAEQiyYgACABELUaIAJBGGshAiAAQRhqIQAMAAsACyAAQQRqIAEQii0PCyAAKAIEIgBByABqIAEQtRogACgCAEEIRwRAIAAgARD2IyAAQShqIAEQtRoLIABB4ABqIAEQ9SMPCwJAIAAoAgQiA0ECRg0AIABBCGohAiADQQFxRQRAIAIgARCkLQwBCyACIAEQii0LIABBGGogARCLJiAAQRxqIAEQiyYgAEEMaiABEKMtDwsgAEEIaiABELgJDwsgAEEEaiABEIotCw8LIABBBGogARCKLSAAQQhqIAEQoy0PCyAAQRBqIgAtABRBAkcEQCABIAApAwAgACgCEBCzHQsPCyAAQQRqIgNBBGohAgJAAkACQAJAIAMoAgBBAWsOAgECAAsgAiABEKQtDAILIAIoAgAgARDzEwwBCyACIAEQjy0LIABBDGogARCKLSAAQRBqIAEQoy0L/gMBAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgBBAWsOEgoKCwECDAwDBAUGCwsHDQ0ICQALIABBBGogARCiGg8LIABBDGogARC0JQ8LIAEgAEEQahCCCSAAQShqIAEQ3iwPCyAAQQRqIAEQzSwgAEEIaiABEN4sIAAoAhRFDQYgAEEUaiABEN4sDwsgAEEQaiABEM0sIAAoAgxBGGwhAiAAKAIIIQADQCACRQ0GIABBFGogARC0JSAAIAEQohogAkEYayECIABBGGohAAwACwALIABBBGogARDNLA8LIAAoAgQiAEHIAGogARCiGiAAKAIAQQhHBEAgACABENcjIABBKGogARCiGgsgASAAQeAAahDWIw8LAkAgACgCBCIDQQJGDQAgAEEIaiECIANBAXFFBEAgAiABEN8sDAELIAIgARDNLAsgAEEYaiABELQlIABBHGogARC0JSAAQQxqIAEQ3iwPCyAAQQhqIAEQ0QcPCyAAQQRqIAEQzSwLDwsgAEEEaiABEM0sIABBCGogARDeLA8LIABBEGogARDVIw8LIABBBGoiA0EEaiECAkACQAJAAkAgAygCAEEBaw4CAQIACyACIAEQ3ywMAgsgAigCACABEK4IDAELIAIgARDYLAsgAEEMaiABEM0sIABBEGogARDeLAvCBAIFfwJ+IwBBgAFrIgIkACABKAIYQQxqIAAQkhogAEEsaiEDIAFBGGohBAJAIAEtABRBAkcEQCAAKAIwEL4RIQUgAkEYakHIoOMAKQMAIgc3AwAgAkEIaiAHNwMAIAJBNGoiBiADQQhqKAIANgIAIAJBAToAKCACIAA2AiAgAiAFNgIkIAJBAToAOSACQcCg4wApAwAiCDcDECACIAg3AwAgAiADKQIANwIsIAIgAC0APDoAPCACIAAvATo7ATogAC0AOCEDIAIgAC0APToAPSACIAM6ADggAiABQQMQ0xUgAigCMBC+ESEAIAJB2ABqIAc3AwAgAkHIAGogBzcDACACQfQAaiAGKAIANgIAIAJBAToAaCACIAA2AmQgAkEBOgB5IAIgCDcDUCACIAg3A0AgAiACKQIsNwJsIAIgAi0APDoAfCACIAIvATo7AXogAiACNgJgIAItADghACACIAItAD06AH0gAiAAOgB4IAQgAkFAayIAENwDIAAQgSkgAhCBKQwBCyAAKAIwEL4RIQEgAkHYAGpByKDjACkDACIHNwMAIAJByABqIAc3AwAgAkH0AGogA0EIaigCADYCACACQQE6AGggAiAANgJgIAIgATYCZCACQQE6AHkgAkHAoOMAKQMAIgc3A1AgAiAHNwNAIAIgAykCADcCbCACIAAtADw6AHwgAiAALwE6OwF6IAAtADghASACIAAtAD06AH0gAiABOgB4IAQgAkFAayIAENwDIAAQgSkLIAJBgAFqJAALqAQBBH8jAEGAAWsiAiQAIAJBGGpByKDjACkDADcCACACQQA7AUIgAkEANgI4IAJCgICAgIABNwIwIAJBAToALCACQQA2AiggAkKAgICAwAA3AiAgAkEANgIMIAJCgICAgIABNwIEIAJBwKDjACkDADcCECACIAAvATw7AUAgAiAAKAI4NgI8IAEgAkEEahCgGiACQTBqIQQCQAJAIAIoAjgiAQRAIABBDGogARCEKSACQcQAaiACKAI0IAIoAjgQoQogAiACKAJENgJYIAIgAigCSCIBNgJQIAIgASACKAJMQQR0IgNqIgU2AlwDQCADRQ0CIAJBBGogASkDACABKAIIEKsRIANBEGshAyABQRBqIQEMAAsACyACQdAAaiIBIAJBBGpBLBD7BhogAEEcaiABEKEaIAQQjiMMAQsgAiAFNgJUIAJB0ABqEIkXIAAtAChFBEAgACACKAI4EJYeIAIgAigCMDYCWCACIAIoAjQiATYCUCACIAEgAigCOEEEdCIDaiIENgJcA0AgAwRAIAAgASkDACABKAIIQQEQmwYgA0EQayEDIAFBEGohAQwBCwsgAiAENgJUIAJB0ABqIgEQiRcgASACQQRqQSwQ+wYaIABBHGogARChGgwBCyACQdgAaiAEQQhqKAIANgIAIAIgBCkCADcDUCAAQSxqIAJB0ABqIgEQoRAgASACQQRqQSwQ+wYaIABBHGogARChGgsgAkGAAWokAAubBAECfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgBBAWsOEgoKCwECCgoDBAUGCwsHDAwICQALIABBBGogARC+Gg8LIABBDGogARCSJg8LIABBKGogARCpLQ8LIABBBGogARClLSAAQQhqIAEQqS0gACgCFEUNBiAAQRRqIAEQqS0PCyAAQRBqIAEQpS0gACgCDEEYbCECIAAoAgghAANAIAJFDQYgAEEUaiABEJImIAAgARC+GiACQRhrIQIgAEEYaiEADAALAAsgAEEEaiABEKUtDwsgACgCBCIAQcgAaiABEL4aIABB4ABqIQICQAJAAkAgACgCAEEHaw4CAQIACyAAIAEQsRILIABBKGogARC+GgsgAigCAEGAgICAeEYNAyACIAEQvhoPCwJAIAAoAgQiA0ECRg0AIABBCGohAiADQQFxRQRAIAIgARCqLQwBCyACIAEQpS0LIABBGGogARCSJiAAQRxqIAEQkiYgAEEMaiABEKktDwsgAEEIaiABEL8NDwsgAS0ADCECIAFBAToADCAAQQRqIAEQpS0gASACOgAMCw8LIABBBGogARClLSAAQQhqIAEQqS0PCyAAQQRqIgNBBGohAgJAAkACQAJAIAMoAgBBAWsOAgECAAsgAiABEKotDAILIAIoAgAgARD0EwwBCyACKAIAIAEQsRILIABBDGogARClLSAAQRBqIAEQqS0LjAQBAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIAQQFrDhIKCgsBAgoKAwQFBgsLBwwMCAkACyAAQQRqIAEQ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ESADLQAYQQRGDQAgAykDGCIGQv8Bg0IEUg0ECyADQRhqIAIgA0EIakGdteAAQQIQshMgAy0AGEEERwRAIAMpAxgiBkL/AYNCBFINBQsgA0EYaiACENARIAMtABhBBEcEQCADKQMYIgZC/wGDQgRSDQYLIANBGGogASACEMQNIAMtABhBBEcEQCADKQMYIgZC/wGDQgRSDQcLAkACQCAERQ0AIANBGGogAiAEENQcIAMtABhBBEYNACADKQMYIgZC/wGDQgRSDQELIABBBDoAAAwICyAAIAY3AgAMBwsgACAGNwIADAYLIAAgBjcCAAwFCyAAIAY3AgAMBAsgACAGNwIADAMLIAAgBjcCAAwCCyAAIAY3AgAMAQsgACAGNwIACyADQSBqJAALjAQCCH8BfiMAQSBrIgQkACAAKAIIQQxsIQUgACgCBCEAA0ACQCAFBEAgACgCAARAIAAgARCCLQwCCwJAAkACQAJAAkACQEEEIAAoAgQiAigCAEEFayIDIANBBk8bQQFrDgUAAQIDBAULIAJBCGogARCbIiACQShqIAEQgi0MBAsgAkEoaiABEIItDAMLIAJBCGogARCbIiACQShqIAEQ7yMMAgsgAiABEJsiIAJBIGogARDuIyACQegAaiABEJAtIAJByABqIAEQ7yMMAQsgAkEIaiABEJsiIAIoAiggARCrEgsgASgCAEUNASACKAIAQQVHDQEgASACQQhqIgMQlAoiBkUNASAEQQhqIAMQ2RUgBCkDCCEKIAQoAhQhByAEKAIQIQgCQAJAAkACQAJAAkACQEEEIAIoAgBBBWsiCSAJQQZPGw4FAQIDBAUACyADENsWIAIoAigQhx0MBQsgAykDABD5GgwECyADENsWIAJBKGoQlikMAwsgAikDEBD5GiACQShqEJYpDAILIAMQ2xYgAkHIAGoQ2ScgAkEoahD7JAwBCyACENsWIAJBIGoQ4yUgAkHoAGoQ5CUgAkHIAGoQ+yQLIAIgBjYCKCACIAc2AhwgAiAINgIYIAIgCjcDECACQQA2AgggAkEGNgIADAELIARBIGokAA8LIABBDGohACAFQQxrIQUMAAsAC54EAQF/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCACIAKAIADhMSEgECAwQFBgcICQoLDA0ODxARAAsg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AAQNCQULIAFBBGohAAwKCyACIAEoAjAgAygCFBECAEUNBEEBIQAMCwsgAUEoaiEADAgLIAIgA0EgaigCACABKAIgELwKIQAMCQsgAUEQaiEAQQEgAS0AGEEDayIBIAFB/wFxQQNPG0H/AXFBAWsOAgMGAgsgBUEkRg0EDAcLIAhBC0cEQEEAIQACQAJAAkAgASgCAA4DAAECCgsgBkGgBSABKAIQELwKIQAMCQsgASgCKCEBDAkLIAZBoAUgASgCIBC8CiEADAcLQQAhAAJAAkAgASgCBEEBaw4CAQgACyACIANBIGooAgAgASgCFBC8CiEADAcLIAIgA0EgaigCACABKAIUELwKIQAMBgsgAiADQSBqKAIAIAAoAgAQvAohAAwFCyACIANBIGooAgAgACgCABC8CiEADAQLIAEoAgxFDQMgASgCCCEADAELIAEoAgQiACgCAEEDRwRAIABBIGohAAwBCyAAQRBqIQALIAAoAgAhAQwACwALCyAEQRBqJAAgAAvcAwELfyAAKAIYIABBJGooAgAgACgCACAAQQxqKAIAEM8dIQMgAEHIAEEwIAAoAkggAEHUAGooAgAgACgCMCAAQTxqKAIAEM8dQf8BcUH/AUYiBBtqIQIgAEEwQcgAIAQbaiIEIAAgA0H/AXEiBUH/AUdBGGxqIgMgAiACKAIAIAJBDGooAgAgACAFQf8BRkEYbGoiACgCACAAQQxqKAIAEM8dQf8BcUH/AUYiBxsgBCgCACAEQQxqKAIAIAMoAgAgA0EMaigCABDPHUH/AXFB/wFGIggbIgUoAgAhCSAAIAIgAyAIGyAHGyIGKAIAIQogBUEMaigCACELIAZBDGooAgAhDCABQRBqIAIgACAHGyIAQRBqKQIANwIAIAFBCGogAEEIaikCADcCACABIAApAgA3AgAgASAFIAYgCSALIAogDBDPHUH/AXFB/wFGIgIbIgApAgA3AhggAUEoaiAAQRBqKQIANwIAIAFBIGogAEEIaikCADcCACABQUBrIAYgBSACGyIAQRBqKQIANwIAIAFBOGogAEEIaikCADcCACABIAApAgA3AjAgASADIAQgCBsiACkCADcCSCABQdAAaiAAQQhqKQIANwIAIAFB2ABqIABBEGopAgA3AgALsgMBDH8jAEEQayIFJAACQCABKAIQIgQgASgCDCICSQ0A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IAMgBDYCACABQQE2AhAgASADNgIMIAFBATYCCANAIAEgAUEIahDuFQJAAkACQAJAAkAgASgCACICQQxHBEAgASABKAIEIgA2AhggASACNgIUIAJBCGsOBAECAwQFCyABQQhqENkmDAYLIAAoAiQhABCDFyECIAAoAgQhAyAAIAI2AgQgACgCACECIABBADYCACABQQhqIAIgAxDdGAwDCyAAKAIsIQAQgxchAiAAKAIEIQMgACACNgIEIAAoAgAhAiAAQQA2AgAgAUEIaiACIAMQ3RgMAgsgACgCCCECIABBADYCCCABQQA2AiwgASAANgIkIAEgAjYCKCABIAAoAgQiADYCHCABIAAgAkEDdGo2AiAgAUEIaiABQRxqEM4JDAELIAAoAgghAiAAQQA2AgggAUEANgIsIAEgADYCJCABIAI2AiggASAAKAIEIgA2AhwgASAAIAJBA3RqNgIgIAFBCGogAUEcahDOCQsgAUEUahDqBwwACwALIAFBMGokAAvZAwICfwN+IwBBgAJrIgQkAAJAIAIoAgBFBEAgAi0ARUEDRw0BC0Hl7OAAQShBsLzfABD0FwALIARBGGogAkEQaikDADcDACAEQSBqIAJBGGopAwAiBjcDACAEIAIpAwgiBzcDECACKQNIIQggBCAHIAanEMAjIARBKGoiBSAEKQMAIAQoAgggAkEgahDMBCAEQUBrIARBEGoiAkEAQQAgAUEQaiABKQMQUCIBG0EAIAMbIAEbEOwFQcAAQQgQqyAgBEHQAGoiAyACENYbIARBkAFqIgIgAxCFFiACQcAAEPsGIQEgBEEBNgJYIAQgATYCVCAEQQE2AlAgAiADIAUQowpBEEEEEKsgIgFBCGogBEHIAGopAgA3AgAgASAEKQJANwIAIARBATYCXCAEIAE2AlggBEEBNgJUIAIQ1xUhASAEQfQAakIANwIAIARCADcCbCAEQQU6AGggBCABNgJgIARBFzYCUCAEQgA3AvABIARBAzoA7AEgBEEANgLoASAEQgA3AvgBIARCADcC4AEgBEKAgICAwAA3AtgBIARB5AFqENIlIARB2AFqEOYmIAMQ3CghASAAIAg3AwggACABNgIEIABBEjYCACAEKQMQEPkaIARBgAJqJAALvAMCDX8BfiAFQQFrIQwgBSABKAIQIg1rIQ4gASgCHCEHIAEoAggh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IAMoAmQh7wQgAygCYCHrBCADQc0BakGCBDsAACADQYKEiBA2AMkBIANBCjoAzwEgA0EBOgDIASADQvoBNwLQASADQQM6AMYBIANCgoSIkKDAgIECNwG+ASADQQA6ALwBIANBAzoAuAEgA0ECNgKkASADQQI2ApwBIANBAjYClAEgA0ECNgKMASADQQA2AoQBIAMgBjYCsAQgAyAjNgKsBCADIBg2AqgEIAMgEjoAtAQgEkEDRgRAIANBqARqEMskQQMhEgsgA0HJAWoh3wEgAygCkAEhCCADKAKYASEQIAMoAqABIeMBIAMoAqgBIeABIAMtAL0BIQsgAygCiAEhBSADQawBaiLzBBDLJCADIEA6ANQBIAMgDjoAxgEgAyAPOgDFASADIN0BOgDEASADIB46AMMBIAMgBDoAwgEgAyAJOgDBASADIBk6AMABIANBgQI7Ab4BIAMgEjoAuAEgAyAGNgK0ASADICM2ArABIAMgGDYCrAEgAyA2NgKEASADIN4BIAUgNhs2AogBIAMgBzoAvAEgAyBEIAsgB0EBcRs6AL0BIAMgEzYCpAEgAyDgASAMIBNBAkYbNgKoASADIBY2ApwBIAMg4wEgHSAWQQJGGzYCoAEgAyA3NgKUASADIBAgRSA3QQJGGzYCmAEgAyAXNgKMASADIAggCiAXQQJGGzYCkAEgAyAiOgDVASADIBE2AtABIANBAkEAIBVBAXEbOgDNASADQQFBAiAgQQFxGzoAzgEgA0EBQQIgJkEBcRs6AMoBIANBAUECICtBAXEbOgDJASADICE6AM8BIANBAUECIENBAXEbOgDLASADQQFBAiANQQFxGzoAzAEgA0EBOgDIASADIO8ENgLcASADIOsEQQhqNgLYASADQQA2AugBIANCgICAgMAANwLgASADQQA2AvQBIANCgICAgMAANwLsASADQoCAgIAQNwLICiADIANB4AFqIkM2AsQKIAMgA0HYAWo2AsAKIANB1ARqIS4gA0HYBGohQCADQbQEaiE2IANBsARqITogA0HsBGohJiADQaADaiE3IANBmAJqISsgA0GIAmohIQNAIANB2ABqIANBwApqELYPIAMoAlwiBUUEQCADQoCAgIAQNwLAAyADIEM2ArwDIANBADYC2AMgA0IANwLQAyADIAMoAuQBIgU2AsgDIAMgBSADKALoAUEDdGo2AswDIAMgA0HYAWo2ArgDIANBrARqISEgA0GMAmohHSADQbwEaiERIANBsARqIQwgA0G0CmohBCADQaADaiEJIANBiANqIQogA0H8AWohHgNAIANBMGogA0G4A2oQtg8gA0HkAmohBQJ/QQAgAygCNCIGRQ0AGkEAIAMoAsgDIgsgAygCzANGDQAaIAMoAjAhDSADIAY2AuQCIAMgC0EIajYCyAMgA0HgAmohBSALCyEGIAUgBjYCACADKALkAiIFRQRAQQMhCyADLQDAASEbIAMtAL8BIRwgAy0AvgEhKCADKAL0ASEYIAMoAvABIQUgAy0AuAEiB0EDRwRAIAdBAkcEQCADKAKsASLeASDeASgCACINQQFqNgIAIA1BAEgNBiADKAKwASHjASADKAK0ASHgAQsgByELCyADLQC9ASEuIAMtALwBITIgAy0AxQEhOCADLQDEASE6IAMtAMMBIRMgAygCqAEhFiADKAKkASE2IAMoAqABITcgAygCnAEhFyADLQDCASHfASADLQDBASEZIAMoAogBISIgAygChAEhFSADKAKYASFAIAMoApQBISAgAygCkAEhQyADKAKMASEmIAMtAMYBISsgA0EIaiAYQQQQwRRBACENIANBADYCsAQgAyADKAIMIuwENgKsBCADIAMoAggi6AQ2AqgEAkACQCAYIOgESwRAIANBqARqQQAgGEEEQQQQmxcgAygCsAQhDSADKAKsBCHsBAwBCyAYRQ0BCyANIBhqIOwEIA1BAnRqIRIDQCASIAU2AgAgBUEcaiEFIBJBBGohEiAYQQFrIhgNAAsgAygCrAQh7AQgAygCqAQh6AQhDQtBACEYIANBADYCpAQgA0KAgICAwAA3ApwEIA1BAnQhB0EEISNBACEGA0AgByAYRgRAIAMgAygCoAQiBTYCsARBACESIANBADYCqAQgAyAFIAZBAnRqNgK0BCADQagEahCeEyEHIANBqARqEJ4TIgUEfyAFKAIAKAIAIgUoAhQh3QEgBSgCEAVBAAshOyADKAKoBCEYIAMoArQEISEgAygCsAQhCCADKAKsBCEQQQEhBkEBISNBf0EAIAcbIuQBIeUBQQAhQUEAIR5BACEpA0BBACEHA0AgHiEOA0AgByEeAn8CQAJAAkAgGEEBcUUEQCAIICFGDQIgCCIFQQRqIQgMAQsgECIF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VyACQa8Pai0AACFYIAJBtw9qLQAAIVkgAkG/D2otAAAhWiACQccPai0AACFbIAJBzw9qLQAAIVwgAkHXD2otAAAhXSACQd8Pai0AACFeIAJB5w9qLQAAIV8gAkHvD2otAAAhYCACQfcPai0AACFhIAJB/w9qLQAAIWIgAkGHEGotAAAhYyACQY8Qai0AACFkIAJBlxBqLQAAIWUgAkGfEGotAAAhZiACQacQai0AACFnIAJBrxBqLQAAIWggAkG3EGotAAAhaSACQb8Qai0AACFqIAJBxxBqLQAAIWsgAkHPEGotAAAhbCACQdcQai0AACFtIAJB3xBqLQAAIW4gAkHnEGotAAAhbyACQe8Qai0AACFwIAJB9xBqLQAAIXEgAkH/EGotAAAhciACQYcRai0AACFzIAJBjxFqLQAAIXQgAkGXEWotAAAhdSACQZ8Rai0AACF2IAJBpxFqLQAAIXcgAkGvEWotAAAheCACQbcRai0AACF5IAJBvxFqLQAAIXogAkHHEWotAAAheyACQc8Rai0AACF8IAJB1xFqLQAAIX0gAkHfEWotAAAhfiACQecRai0AACF/IAItAOQRIbwCIAIoAuARIb0CIAItANwRIb4CIAIoAtgRIb8CIAItANQRIcACIAIoAtARIcECIAItAMwRIcICIAIoAsgRIcMCIAItAMQRIcQCIAIoAsARIcUCIAItALwRIcYCIAIoArgRIccCIAItALQRIcgCIAIoArARIckCIAItAKwRIcoCIAIoAqgRIcsCIAItAKQRIcwCIAIoAqARIc0CIAItAJwRIc4CIAIoApgRIc8CIAItAJQRIdACIAIoApARIdECIAItAIwRIdICIAIoAogRIdMCIAItAIQRIdQCIAIoAoARIdUCIAItAPwQIdYCIAIoAvgQIdcCIAItAPQQIdgCIAIoAvAQIdkCIAItAOwQIdoCIAIoAugQIdsCIAItAOQQIdwCIAIoAuAQId0CIAItANwQId4CIAIoAtgQId8CIAItANQQIeACIAIoAtAQIeECIAItAMwQIeICIAIoAsgQIeMCIAItAMQQIeQCIAIoAsAQIeUCIAItALwQIeYCIAIoArgQIecCIAItALQQIegCIAIoArAQIekCIAItAKwQIeoCIAIoAqgQIesCIAItAKQQIewCIAIoAqAQIe0CIAItAJwQIe4CIAIoApgQIe8CIAItAJQQIfACIAIoApAQIfECIAItAIwQIfICIAIoAogQIfMCIAItAIQQIfQCIAIoAoAQIfUCIAItAPwPIfYCIAIoAvgPIfcCIAItAPQPIfgCIAIoAvAPIfkCIAItAOwPIfoCIAIoAugPIfsCIAItAOQPIfwCIAIoAuAPIf0CIAItANwPIf4CIAIoAtgPIf8CIAItANQPIYADIAIoAtAPIYEDIAItAMwPIYIDIAIoAsgPIYMDIAItAMQPIYQDIAIoAsAPIYUDIAItALwPIYYDIAIoArgPIYcDIAItALQPIYgDIAIoArAPIYkDIAItAKwPIYoDIAIoAqgPIYsDIAItAKQPIYwDIAIoAqAPIY0DIAItAJwPIY4DIAIoApgPIY8DIAItAJQPIZADIAIoApAPIZEDIAItAIwPIZIDIAIoAogPIZMDIAItAIQPIZQDIAIoAoAPIZUDIAItAPwOIZYDIAIoAvgOIZcDIAItAPQOIZgDIAIoAvAOIZkDIAItAOwOIZoDIAIoAugOIZsDIAItAOQOIZwDIAIoAuAOIZ0DIAItANwOIZ4DIAIoAtgOIZ8DIAItANQOIaADIAIoAtAOIaEDIAItAMwOIaIDIAIoAsgOIaMDIAItAMQOIaQDIAIoAsAOIaUDIAItALwOIaYDIAIoArgOIacDIAItALQOIagDIAIoArAOIakDIAItAKwOIaoDIAIoAqgOIasDIAItAKQOIawDIAIoAqAOIa0DIAItAJwOIa4DIAIoApgOIa8DIAItAJQOIbADIAIoApAOIbEDIAItAIwOIbIDIAIoAogOIbMDIAItAIQOIbQDIAIoAoAOIbUDIAItAPwNIbYDIAIoAvgNIbcDIAItAPQNIbgDIAIoAvANIbkDIAItAOwNIboDIAIoAugNIbsDIAItAOQNIbwDIAIoAuANIb0DIAItANwNIb4DIAIoAtgNIb8DIAItANQNIcADIAIoAtANIcEDIAItAMwNIcIDIAIoAsgNIcMDIAItAMQNIcQDIAIoAsANIcUDIAItALwNIcYDIAIoArgNIccDIAItALQNIcgDIAIoArANIckDIAItAKwNIcoDIAIoAqgNIcsDIAItAKQNIcwDIAIoAqANIc0DIAItAJwNIc4DIAIoApgNIc8DIAItAJQNIdADIAIoApANIdEDIAItAIwNIdIDIAIoAogNIdMDIAItAIQNIdQDIAIoAoANIdUDIAItAPwMIdYDIAIoAvgMIdcDIAItAPQMIdgDIAIoAvAMIdkDIAItAOwMIdoDIAIoAugMIdsDIAIvAO0MIAIvAPUMIAIvAP0MIAIvAIUNIAIvAI0NIAIvAJUNIAIvAJ0NIAIvAKUNIAIvAK0NIAIvALUNIAIvAL0NIAIvAMUNIAIvAM0NIAIvANUNIAIvAN0NIAIvAOUNIAIvAO0NIAIvAPUNIAIvAP0NIAIvAIUOIAIvAI0OIAIvAJUOIAIvAJ0OIAIvAKUOIAIvAK0OIAIvALUOIAIvAL0OIAIvAMUOIAIvAM0OIAIvANUOIAIvAN0OIAIvAOUOIAIvAO0OIAIvAPUOIAIvAP0OIAIvAIUPIAIvAI0PIAIvAJUPIAIvAJ0PIAIvAKUPIAIvAK0PIAIvALUPIAIvAL0PIAIvAMUPIAIvAM0PIAIvANUPIAIvAN0PIAIvAOUPIAIvAO0PIAIvAPUPIAIvAP0PIAIvAIUQIAIvAI0QIAIvAJUQIAIvAJ0QIAIvAKUQIAIvAK0QIAIvALUQIAIvAL0QIAIvAMUQIAIvAM0QIAIvANUQIAIvAN0QIAIvAOUQIAIvAO0QIAIvAPUQIAIvAP0QIAIvAIURIAIvAI0RIAIvAJURIAIvAJ0RIAIvAKURIAIvAK0RIAIvALURIAIvAL0RIAIvAMURIAIvAM0RIAIvANURIAIvAN0RIAIvAOURIPIEEN4YIAJBjwdqLQAAIfAEIAJBlwdqLQAAIfEEIAJBnwdqLQAAIUIgAkGnB2otAAAh5wEgAkGvB2otAAAhMSACQbcHai0AACGFAiACQb8Hai0AACHuBCACQccHai0AACESIAJBzwdqLQAAISMgAkHXB2otAAAhLCACQd8Hai0AACEtIAJB5wdqLQAAIS8gAkHvB2otAAAhMyACQfcHai0AACE7IAJB/wdqLQAAIUEgAkGHCGotAAAhPCACQY8Iai0AACFEIAJBlwhqLQAAIUUgAkGfCGotAAAhzwEgAkGnCGotAAAh0AEgAkGvCGotAAAh0QEgAkG3CGotAAAh0gEgAkG/CGotAAAh0wEgAkHHCGotAAAh1AEgAkHPCGotAAAh1QEgAkHXCGotAAAh1gEgAkHfCGotAAAh1wEgAkHnCGotAAAh2AEgAkHvCGotAAAh2QEgAkH3CGotAAAh2gEgAkH/CGotAAAh2wEgAkGHCWotAAAh3QEgAkGPCWotAAAh3gEgAkGXCWotAAAh4QEgAkGfCWotAAAh4wEgAkGnCWotAAAh4AEgAkGvCWotAAAh5AEgAkG3CWotAAAh5QEgAkG/CWotAAAh6AEgAkHHCWotAAAh6QEgAkHPCWotAAAh6gEgAkHXCWotAAAh6wEgAkHfCWotAAAh7AEgAkHnCWotAAAh7QEgAkHvCWotAAAh7gEgAkH3CWotAAAh7wEgAkH/CWotAAAh8AEgAkGHCmotAAAh8QEgAkGPCmotAAAh8gEgAkGXCmotAAAh8wEgAkGfCmotAAAh9AEgAkGnCmotAAAh9QEgAkGvCmotAAAh9gEgAkG3CmotAAAh9wEgAkG/CmotAAAh+AEgAkHHCmotAAAh+QEgAkHPCmotAAAh+gEgAkHXCmotAAAh+wEgAkHfCmotAAAh/AEgAkHnCmotAAAh/QEgAkHvCmotAAAh/gEgAkH3CmotAAAh/wEgAkH/CmotAAAhgAIgAkGHC2otAAAhMCACQY8Lai0AACGCAiACQZcLai0AACGGAiACQZ8Lai0AACGHAiACQacLai0AACGIAiACQa8Lai0AACGJAiACQbcLai0AACGKAiACQb8Lai0AACGLAiACQccLai0AACGMAiACQc8Lai0AACGNAiACQdcLai0AACGOAiACQd8Lai0AACGPAiACLQDcCyHcAyACKALYCyHdAyACLQDUCyHeAyACKALQCyHfAyACLQDMCyHgAyACKALICyHhAyACLQDECyHiAyACKALACyHjAyACLQC8CyHkAyACKAK4CyHlAyACLQC0CyHmAyACKAKwCyHnAyACLQCsCyHoAyACKAKoCyHpAyACLQCkCyHqAyACKAKgCyHrAyACLQCcCyHsAyACKAKYCyHtAyACLQCUCyHuAyACKAKQCyHvAyACLQCMCyHwAyACKAKICyHxAyACLQCECyHyAyACKAKACyHzAyACLQD8CiH0AyACKAL4CiH1AyACLQD0CiH2AyACKALwCiH3AyACLQDsCiH4AyACKALoCiH5AyACLQDkCiH6AyACKALgCiH7AyACLQDcCiH8AyACKALYCiH9AyACLQDUCiH+AyACKALQCiH/AyACLQDMCiGABCACKALICiGBBCACLQDECiGCBCACKALACiGDBCACLQC8CiGEBCACKAK4CiGFBCACLQC0CiGGBCACKAKwCiGHBCACLQCsCiGIBCACKAKoCiGJBCACLQCkCiGKBCACKAKgCiGLBCACLQCcCiGMBCACKAKYCiGNBCACLQCUCiGOBCACKAKQCiGPBCACLQCMCiGQBCACKAKICiGRBCACLQCECiGSBCACKAKACiGTBCACLQD8CSGUBCACKAL4CSGVBCACLQD0CSGWBCACKALwCSGXBCACLQDsCSGYBCACKALoCSGZBCACLQDkCSGaBCACKALgCSGbBCACLQDcCSGcBCACKALYCSGdBCACLQDUCSGeBCACKALQCSGfBCACLQDMCSGgBCACKALICSGhBCACLQDECSGiBCACKALACSGjBCACLQC8CSGkBCACKAK4CSGlBCACLQC0CSGmBCACKAKwCSGnBCACLQCsCSGoBCACKAKoCSGpBCACLQCkCSGqBCACKAKgCSGrBCACLQCcCSGsBCACKAKYCSGtBCACLQCUCSGuBCACKAKQCSGvBCACLQCMCSGwBCACKAKICSGxBCACLQCECSGyBCACKAKACSGzBCACLQD8CCG0BCACKAL4CCG1BCACLQD0CCG2BCACKALwCCG3BCACLQDsCCG4BCACKALoCCG5BCACLQDkCCG6BCACKALgCCG7BCACLQDcCCG8BCACKALYCCG9BCACLQDUCCG+BCACKALQCCG/BCACLQDMCCHABCACKALICCHBBCACLQDECCHCBCACKALACCHDBCACLQC8CCHEBCACKAK4CCHFBCACLQC0CCHGBCACKAKwCCHHBCACLQCsCCHIBCACKAKoCCHJBCACLQCkCCHKBCACKAKgCCHLBCACLQCcCCHMBCACKAKYCCHNBCACLQCUCCHOBCACKAKQCCHPBCACLQCMCCHQBCACKAKICCHRBCACLQCECCHSBCACKAKACCHTBCACLQD8ByHUBCACKAL4ByHVBCACLQD0ByHWBCACKALwByHXBCACLQDsByHYBCACKALoByHZBCACLQDkByHaBCACKALgByHbBCACLQDcByHcBCACKALYByHdBCACLQDUByHeBCACKALQByHfBCACLQDMByHgBCACKALIByHhBCACLQDEByHiBCACKALAByHjBCACLQC8ByHkBCACKAK4ByHlBCACLQC0ByHmBCACKAKwByHnBCACLQCsByHpBCACKAKoByHqBCACLQCkByFGIAIoAqAHITkgAi0AnAch4gEgAigCmAchPyACLQCUByEQIAIoApAHISogAi0AjAchPiACKAKIByEKIAIoAoQHIeYBIAIoAoAHITUgAigC/AYhHSACKAL4BiE0IAIoAvQGIQcgAigC8AYhJyACKALsBiEMIAIoAugGIQQgAigC5AYhhAIgAigC4AYhPSACKQPYBiGLBSACLwCNByGQAiACLwCVByGRAiACLwCdByGSAiACLwClByGTAiACLwCtByGUAiACLwC1ByGVAiACLwC9ByGWAiACLwDFByGXAiACLwDNByGYAiACLwDVByGZAiACLwDdByGaAiACLwDlByGbAiACLwDtByGcAiACLwD1ByGdAiACLwD9ByGeAiACLwCFCCGfAiACLwCNCCGgAiACLwCVCCGhAiACLwCdCCGiAiACLwClCCGjAiACLwCtCCGkAiACLwC1CCGlAiACLwC9CCGmAiACLwDFCCGnAiACLwDNCCGoAiACLwDVCCGpAiACLwDdCCGqAiACLwDlCCGrAiACLwDtCCGsAiACLwD1CCGtAiACLwD9CCGuAiACLwCFCSGvAiACLwCNCSGwAiACLwCVCSGxAiACLwCdCSGyAiACLwClCSGzAiACLwCtCSG0AiACLwC1CSG1AiACLwC9CSG2AiACLwDFCSG3AiACLwDNCSG4AiACLwDVCSG5AiACLwDdCSG6AiACLwDlCSG7AiACLwDtCSEUIAIvAPUJIRogAi8A/QkhGyACLwCFCiEcIAIvAI0KISggAi8AlQohLiACLwCdCiEyIAIvAKUKITggAi8ArQohOiACLwC1CiETIAIvAL0KIRYgAi8AxQohNiACLwDNCiE3IAIvANUKIRcgAi8A3Qoh3wEgAi8A5QohGSACLwDtCiEiIAIvAPUKIRUgAi8A/QohQCACLwCFCyEgIAIvAI0LIUMgAi8AlQshJiACLwCdCyErIAIvAKULIREgAi8ArQshDyACLwC1CyEJIAIvAL0LIQ4gAi8AxQshCCACLwDNCyELIAIvANULIQYgAi8A3QshBSDyBBDUJCANENMkIH9BEHRyIX8gfkEQdHIhfiB9QRB0ciF9IHxBEHRyIXwge0EQdHIheyB6QRB0ciF6IHlBEHRyIXkg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IAEgfDsA/QkgASB7OwD1CSABIHo7AO0JIAEgeTsA5QkgASB4OwDdCSABIHc7ANUJIAEgdjsAzQkgASB1OwDFCSABIHQ7AL0JIAEgczsAtQkgASByOwCtCSABIHE7AKUJIAEgcDsAnQkgASBvOwCVCSABIG47AI0JIAEgbTsAhQkgASBsOwD9CCABIGs7APUIIAEgajsA7QggASBpOwDlCCABIGg7AN0IIAEgZzsA1QggASBmOwDNCCABIGU7AMUIIAEgZDsAvQggASBjOwC1CCABIGI7AK0IIAEgYTsApQggASBgOwCdCCABIF87AJUIIAEgXjsAjQggASBdOwCFCCABIFw7AP0HIAEgWzsA9QcgASBaOwDtByABIFk7AOUHIAEgWDsA3QcgASBXOwDVByABIFY7AM0HIAEgVTsAxQcgASBUOwC9ByABIFM7ALUHIAEgUjsArQcgASBROwClByABIFA7AJ0HIAEgTzsAlQcgASBOOwCNByABIE07AIUHIAEgTDsA/QYgASBLOwD1BiABIEo7AO0GIAEgSTsA5QYgASBIOwDdBiABIEc7ANUGIAEglgE7AM0GIAEglQE7AMUGIAEglAE7AL0GIAEgkwE7ALUGIAEgkgE7AK0GIAEgkQE7AKUGIAEgkAE7AJ0GIAEgjwE7AJUGIAEgjgE7AI0GIAEgjQE7AIUGIAEgjAE7AP0FIAEgiwE7APUFIAEgigE7AO0FIAEgiQE7AOUFIAEgiAE7AN0FIAEghwE7ANUFIAEghgE7AM0FIAEghQE7AMUFIAEghAE7AL0FIAEggwE7ALUFIAEgggE7AK0FIAEggQE7AKUFIAEggAE7AJ0FIAFBADsAlQUgASDcATsAjQUgASCXATsAhQUgASCYATsA/QQgASCZATsA9QQgASCaATsA7QQgASCbATsA5QQgASCcATsA3QQgASCdATsA1QQgASCeATsAzQQgASCfATsAxQQgASCgATsAvQQgASChATsAtQQgASCiATsArQQgASCjATsApQQgASCkATsAnQQgASClATsAlQQgASCmATsAjQQgASCnATsAhQQgASCoATsA/QMgASCpATsA9QMgASCqATsA7QMgASCrATsA5QMgASCsATsA3QMgASCtATsA1QMgASCuATsAzQMgASCvATsAxQMgASCwATsAvQMgASCxATsAtQMgASCyATsArQMgASCzATsApQMgASC0ATsAnQMgASC1ATsAlQMgASC2ATsAjQMgASC3ATsAhQMgASC4ATsA/QIgASC5ATsA9QIgASC6ATsA7QIgASC7ATsA5QIgASC8ATsA3QIgASC9ATsA1QIgASC+ATsAzQIgASC/ATsAxQIgASDAATsAvQIgASDBATsAtQIgASDCATsArQIgASDDATsApQIgASDEATsAnQIgASDFATsAlQIgASDGATsAjQIgASDHATsAhQIgASDIATsA/QEgASDJATsA9QEgASDKATsA7QEgASDLATsA5QEgASDMATsA3QEgASDNATsA1QEgASDOATsAzQEgASDPATsAxQEgASDbATsAvQEgASDaATsAtQEgASDZATsArQEgASDYATsApQEgASDXATsAnQEgASDWATsAlQEgASDVATsAjQEgASDUATsAhQEgASDTATsAfSABINIBOwB1IAEg0QE7AG0gASDQATsAZSABIIACOwBdIAEgDzsAVSABIA07AE0gASAFOwBFIAFBADoApA0gASCBAjYCoA0gASCFAjYCnA0gASAsNgKYDSABIIYCNgKUDSABIIcCNgKQDSABIIgCNgKMDSABIIkCNgKIDSABIIoCNgKEDSABIIsCNgKADSABIIwCNgL8DCABII0CNgL4DCABII4CNgL0DCABII8CNgLwDCABIJACNgLsDCABIJECNgLoDCABIJICNgLkDCABIJMCNgLgDCABIJQCNgLcDCABIJUCNgLYDCABIJYCNgLUDCABIJcCNgLQDCABIJgCNgLMDCABIJkCNgLIDCABIJoCNgLEDCABIJsCNgLADCABIJwCNgK8DCABIJ0CNgK4DCABIJ4CNgK0DCABIJ8CNgKwDCABIKACNgKsDCABIKECNgKoDCABIKICNgKkDCABIKMCNgKgDCABIKQCNgKcDCABIKUCNgKYDCABIKYCNgKUDCABIKcCNgKQDCABIKgCNgKMDCABIKkCNgKIDCABIKoCNgKEDCABIKsCNgKADCABIKwCNgL8CyABIK0CNgL4CyABIK4CNgL0CyABIK8CNgLwCyABILACNgLsCyABILECNgLoCyABILICNgLkCyABILMCNgLgCyABIBE2AtwLIAEgtAI2AtgLIAEg5wE6ANQLIAEgtQI2AtALIAEgtgI6AMwLIAEgtwI2AsgLIAEguAI6AMQLIAEguQI2AsALIAEgugI6ALwLIAEguwI2ArgLIAEgFDoAtAsgASASNgKwCyABICM6AKwLIAEgGjYCqAsgASAtOgCkCyABIDs2AqALIAEgQToAnAsgASBENgKYCyABIEU6AJQLIAEgPDYCkAsgASDdAToAjAsgASDeATYCiAsgASDjAToAhAsgASDgATYCgAsgASDhAToA/AogASDkATYC+AogASDlAToA9AogASAbNgLwCiABIBw6AOwKIAEgKDYC6AogASAuOgDkCiABIDI2AuAKIAEgODoA3AogASA6NgLYCiABIBM6ANQKIAEgFjYC0AogASA2OgDMCiABIDc2AsgKIAEgFzoAxAogASDfATYCwAogASAZOgC8CiABICI2ArgKIAEgFToAtAogASBANgKwCiABIC86AKwKIAEgIDYCqAogASD/AToApAogASBDNgKgCiABICY6AJwKIAEgKzYCmAogASC8AjoAlAogASC9AjYCkAogASC+AjoAjAogASC/AjYCiAogASDAAjoAhAogASDBAjYCgAogASDCAjoA/AkgASDDAjYC+AkgASDEAjoA9AkgASDFAjYC8AkgASDGAjoA7AkgASDHAjYC6AkgASDIAjoA5AkgASDJAjYC4AkgASDKAjoA3AkgASDLAjYC2AkgASDMAjoA1AkgASDNAjYC0AkgASDOAjoAzAkgASDPAjYCyAkgASDQAjoAxAkgASDRAjYCwAkgASDSAjoAvAkgASDTAjYCuAkgASDUAjoAtAkgASDVAjYCsAkgASDWAjoArAkgASDXAjYCqAkgASDYAjoApAkgASDZAjYCoAkgASDaAjoAnAkgASDbAjYCmAkgASDcAjoAlAkgASDdAjYCkAkgASDeAjoAjAkgASDfAjYCiAkgASDgAjoAhAkgASDhAjYCgAkgASDiAjoA/AggASDjAjYC+AggASDkAjoA9AggASDlAjYC8AggASDmAjoA7AggASDnAjYC6AggASDoAjoA5AggASDpAjYC4AggASDqAjoA3AggASDrAjYC2AggASDsAjoA1AggASDtAjYC0AggASDuAjoAzAggASDvAjYCyAggASDwAjoAxAggASDxAjYCwAggASDyAjoAvAggASDzAjYCuAggASD0AjoAtAggASD1AjYCsAggASD2AjoArAggASD3AjYCqAggASD4AjoApAggASD5AjYCoAggASD6AjoAnAggASD7AjYCmAggASD8AjoAlAggASD9AjYCkAggASD+AjoAjAggASD/AjYCiAggASCAAzoAhAggASCBAzYCgAggASCCAzoA/AcgASCDAzYC+AcgASCEAzoA9AcgASCFAzYC8AcgASCGAzoA7AcgASCHAzYC6AcgASCIAzoA5AcgASCJAzYC4AcgASCKAzoA3AcgASCLAzYC2AcgASCMAzoA1AcgASCNAzYC0AcgASCOAzoAzAcgASCPAzYCyAcgASCQAzoAxAcgASCRAzYCwAcgASCSAzoAvAcgASCTAzYCuAcgASCUAzoAtAcgASCVAzYCsAcgASCWAzoArAcgASCXAzYCqAcgASCYAzoApAcgASCZAzYCoAcgASCaAzoAnAcgASCbAzYCmAcgASCcAzoAlAcgASCdAzYCkAcgASCeAzoAjAcgASCfAzYCiAcgASCgAzoAhAcgASChAzYCgAcgASCiAzoA/AYgASCjAzYC+AYgASCkAzoA9AYgASClAzYC8AYgASCmAzoA7AYgASCnAzYC6AYgASCoAzoA5AYgASCpAzYC4AYgASCqAzoA3AYgASCrAzYC2AYgASCsAzoA1AYgASCtAzYC0AYgASCuAzoAzAYgASCvAzYCyAYgASCwAzoAxAYgASCxAzYCwAYgASCyAzoAvAYgASCzAzYCuAYgASC0AzoAtAYgASC1AzYCsAYgASC2AzoArAYgASC3AzYCqAYgASC4AzoApAYgASC5AzYCoAYgASC6AzoAnAYgASC7AzYCmAYgASC8AzoAlAYgASC9AzYCkAYgASC+AzoAjAYgASC/AzYCiAYgASDAAzoAhAYgASDBAzYCgAYgASDCAzoA/AUgASDDAzYC+AUgASDEAzoA9AUgASDFAzYC8AUgASDGAzoA7AUgASDHAzYC6AUgASDIAzoA5AUgASDJAzYC4AUgASDKAzoA3AUgASDLAzYC2AUgASDMAzoA1AUgASDNAzYC0AUgASDOAzoAzAUgASDPAzYCyAUgASDQAzoAxAUgASDRAzYCwAUgASDSAzoAvAUgASDTAzYCuAUgASDUAzoAtAUgASDVAzYCsAUgASDWAzoArAUgASDXAzYCqAUgASDYAzoApAUgASDZAzYCoAUgASDaAzoAnAUgASDbAzYCmAUgAUEAOgCUBSABIIICNgKQBSABINwDOgCMBSABIN0DNgKIBSABIN4DOgCEBSABIN8DNgKABSABIOADOgD8BCABIOEDNgL4BCABIOIDOgD0BCABIOMDNgLwBCABIOQDOgDsBCABIOUDNgLoBCABIOYDOgDkBCABIOcDNgLgBCABIOgDOgDcBCABIOkDNgLYBCABIOoDOgDUBCABIOsDNgLQBCABIOwDOgDMBCABIO0DNgLIBCABIO4DOgDEBCABIO8DNgLABCABIPADOgC8BCABIPEDNgK4BCABIPIDOgC0BCABIPMDNgKwBCABIPQDOgCsBCABIPUDNgKoBCABIPYDOgCkBCABIPcDNgKgBCABIPgDOgCcBCABIPkDNgKYBCABIPoDOgCUBCABIPsDNgKQBCABIPwDOgCMBCABIP0DNgKIBCABIP4DOgCEBCABIP8DNgKABCABIIAEOgD8AyABIIEENgL4AyABIIIEOgD0AyABIIMENgLwAyABIIQEOgDsAyABIIUENgLoAyABIIYEOgDkAyABIIcENgLgAyABIIgEOgDcAyABIIkENgLYAyABIIoEOgDUAyABIIsENgLQAyABIIwEOgDMAyABII0ENgLIAyABII4EOgDEAyABII8ENgLAAyABIJAEOgC8AyABIJEENgK4AyABIJIEOgC0AyABIJMENgKwAyABIJQEOgCsAyABIJUENgKoAyABIJYEOgCkAyABIJcENgKgAyABIJgEOgCcAyABIJkENgKYAyABIJoEOgCUAyABIJsENgKQAyABIJwEOgCMAyABIJ0ENgKIAyABIJ4EOgCEAyABIJ8ENgKAAyABIKAEOgD8AiABIKEENgL4AiABIKIEOgD0AiABIKMENgLwAiABIKQEOgDsAiABIKUENgLoAiABIKYEOgDkAiABIKcENgLgAiABIKgEOgDcAiABIKkENgLYAiABIKoEOgDUAiABIKsENgLQAiABIKwEOgDMAiABIK0ENgLIAiABIK4EOgDEAiABIK8ENgLAAiABILAEOgC8AiABILEENgK4AiABILIEOgC0AiABILMENgKwAiABILQEOgCsAiABILUENgKoAiABILYEOgCkAiABILcENgKgAiABILgEOgCcAiABILkENgKYAiABILoEOgCUAiABILsENgKQAiABILwEOgCMAiABIL0ENgKIAiABIL4EOgCEAiABIL8ENgKAAiABIMAEOgD8ASABIMEENgL4ASABIMIEOgD0ASABIMMENgLwASABIMQEOgDsASABIMUENgLoASABIMYEOgDkASABIMcENgLgASABIMgEOgDcASABIMkENgLYASABIMoEOgDUASABIMsENgLQASABIMwEOgDMASABIM0ENgLIASABIM4EOgDEASABIM8ENgLAASABINAEOgC8ASABINEENgK4ASABINIEOgC0ASABINMENgKwASABINQEOgCsASABINUENgKoASABINYEOgCkASABINcENgKgASABINgEOgCcASABINkENgKYASABINoEOgCUASABINsENgKQASABINwEOgCMASABIN0ENgKIASABIN4EOgCEASABIN8ENgKAASABIOAEOgB8IAEg4QQ2AnggASDiBDoAdCABIOMENgJwIAEg5AQ6AGwgASDlBDYCaCABIOYEOgBkIAEg5wQ2AmAgASDpBDoAXCABIOoENgJYIAEgRjoAVCABIDk2AlAgASDiAToATCABID82AkggASAQOgBEIAEgKjYCQCABIAo2AjggASDmATYCNCABIDU2AjAgASAdNgIsIAEgNDYCKCABIAc2AiQgASAnNgIgIAEgDDYCHCABIAQ2AhggASCEAjYCFCABID02AhAgASCLBTcDCCABQQE2AgQgAUEBNgIAIAFB1wtqIEJBEHY6AAAgAUHPC2og6QFBEHY6AAAgAUHHC2og6gFBEHY6AAAgAUG/C2og6wFBEHY6AAAgAUG3C2og7AFBEHY6AAAgAUGvC2og7QFBEHY6AAAgAUGnC2og7gFBEHY6AAAgAUGfC2og7wFBEHY6AAAgAUGXC2og8AFBEHY6AAAgAUGPC2og8QFBEHY6AAAgAUGHC2og8gFBEHY6AAAgAUH/Cmog8wFBEHY6AAAgAUH3Cmog9AFBEHY6AAAgAUHvCmog9QFBEHY6AAAgAUHnCmog9gFBEHY6AAAgAUHfCmog6AFBEHY6AAAgAUHXCmog9wFBEHY6AAAgAUHPCmog+AFBEHY6AAAgAUHHCmog+QFBEHY6AAAgAUG/Cmog+gFBEHY6AAAgAUG3Cmog+wFBEHY6AAAgAUGvCmog/AFBEHY6AAAgAUGnCmog/QFBEHY6AAAgAUGfCmog/gFBEHY6AAAgAUGXCmogf0EQdjoAACABQY8KaiB+QRB2OgAAIAFBhwpqIH1BEHY6AAAgAUH/CWogfEEQdjoAACABQfcJaiB7QRB2OgAAIAFB7wlqIHpBEHY6AAAgAUHnCWogeUEQdjoAACABQd8JaiB4QRB2OgAAIAFB1wlqIHdBEHY6AAAgAUHPCWogdkEQdjoAACABQccJaiB1QRB2OgAAIAFBvwlqIHRBEHY6AAAgAUG3CWogc0EQdjoAACABQa8JaiByQRB2OgAAIAFBpwlqIHFBEHY6AAAgAUGfCWogcEEQdjoAACABQZcJaiBvQRB2OgAAIAFBjwlqIG5BEHY6AAAgAUGHCWogbUEQdjoAACABQf8IaiBsQRB2OgAAIAFB9whqIGtBEHY6AAAgAUHvCGogakEQdjoAACABQecIaiBpQRB2OgAAIAFB3whqIGhBEHY6AAAgAUHXCGogZ0EQdjoAACABQc8IaiBmQRB2OgAAIAFBxwhqIGVBEHY6AAAgAUG/CGogZEEQdjoAACABQbcIaiBjQRB2OgAAIAFBrwhqIGJBEHY6AAAgAUGnCGogYUEQdjoAACABQZ8IaiBgQRB2OgAAIAFBlwhqIF9BEHY6AAAgAUGPCGogXkEQdjoAACABQYcIaiBdQRB2OgAAIAFB/wdqIFxBEHY6AAAgAUH3B2ogW0EQdjoAACABQe8HaiBaQRB2OgAAIAFB5wdqIFlBEHY6AAAgAUHfB2ogWEEQdjoAACABQdcHaiBXQRB2OgAAIAFBzwdqIFZBEHY6AAAgAUHHB2ogVUEQdjoAACABQb8HaiBUQRB2OgAAIAFBtwdqIFNBEHY6AAAgAUGvB2ogUkEQdjoAACABQacHaiBRQRB2OgAAIAFBnwdqIFBBEHY6AAAgAUGXB2ogT0EQdjoAACABQY8HaiBOQRB2OgAAIAFBhwdqIE1BEHY6AAAgAUH/BmogTEEQdjoAACABQfcGaiBLQRB2OgAAIAFB7wZqIEpBEHY6AAAgAUHnBmogSUEQdjoAACABQd8GaiBIQRB2OgAAIAFB1wZqIEdBEHY6AAAgAUHPBmoglgFBEHY6AAAgAUHHBmoglQFBEHY6AAAgAUG/BmoglAFBEHY6AAAgAUG3BmogkwFBEHY6AAAgAUGvBmogkgFBEHY6AAAgAUGnBmogkQFBEHY6AAAgAUGfBmogkAFBEHY6AAAgAUGXBmogjwFBEHY6AAAgAUGPBmogjgFBEHY6AAAgAUGHBmogjQFBEHY6AAAgAUH/BWogjAFBEHY6AAAgAUH3BWogiwFBEHY6AAAgAUHvBWogigFBEHY6AAAgAUHnBWogiQFBEHY6AAAgAUHfBWogiAFBEHY6AAAgAUHXBWoghwFBEHY6AAAgAUHPBWoghgFBEHY6AAAgAUHHBWoghQFBEHY6AAAgAUG/BWoghAFBEHY6AAAgAUG3BWoggwFBEHY6AAAgAUGvBWogggFBEHY6AAAgAUGnBWoggQFBEHY6AAAgAUGfBWoggAFBEHY6AAAgAUGXBWpBADoAACABQY8FaiDcAUEQdjoAACABQYcFaiCXAUEQdjoAACABQf8EaiCYAUEQdjoAACABQfcEaiCZAUEQdjoAACABQe8EaiCaAUEQdjoAACABQecEaiCbAUEQdjoAACABQd8EaiCcAUEQdjoAACABQdcEaiCdAUEQdjoAACABQc8EaiCeAUEQdjoAACABQccEaiCfAUEQdjoAACABQb8EaiCgAUEQdjoAACABQbcEaiChAUEQdjoAACABQa8EaiCiAUEQdjoAACABQacEaiCjAUEQdjoAACABQZ8EaiCkAUEQdjoAACABQZcEaiClAUEQdjoAACABQY8EaiCmAUEQdjoAACABQYcEaiCnAUEQdjoAACABQf8DaiCoAUEQdjoAACABQfcDaiCpAUEQdjoAACABQe8DaiCqAUEQdjoAACABQecDaiCrAUEQdjoAACABQd8DaiCsAUEQdjoAACABQdcDaiCtAUEQdjoAACABQc8DaiCuAUEQdjoAACABQccDaiCvAUEQdjoAACABQb8DaiCwAUEQdjoAACABQbcDaiCxAUEQdjoAACABQa8DaiCyAUEQdjoAACABQacDaiCzAUEQdjoAACABQZ8DaiC0AUEQdjoAACABQZcDaiC1AUEQdjoAACABQY8DaiC2AUEQdjoAACABQYcDaiC3AUEQdjoAACABQf8CaiC4AUEQdjoAACABQfcCaiC5AUEQdjoAACABQe8CaiC6AUEQdjoAACABQecCaiC7AUEQdjoAACABQd8CaiC8AUEQdjoAACABQdcCaiC9AUEQdjoAACABQc8CaiC+AUEQdjoAACABQccCaiC/AUEQdjoAACABQb8CaiDAAUEQdjoAACABQbcCaiDBAUEQdjoAACABQa8CaiDCAUEQdjoAACABQacCaiDDAUEQdjoAACABQZ8CaiDEAUEQdjoAACABQZcCaiDFAUEQdjoAACABQY8CaiDGAUEQdjoAACABQYcCaiDHAUEQdjoAACABQf8BaiDIAUEQdjoAACABQfcBaiDJAUEQdjoAACABQe8BaiDKAUEQdjoAACABQecBaiDLAUEQdjoAACABQd8BaiDMAUEQdjoAACABQdcBaiDNAUEQdjoAACABQc8BaiDOAUEQdjoAACABQccBaiDPAUEQdjoAACABQb8BaiDbAUEQdjoAACABQbcBaiDaAUEQdjoAACABQa8BaiDZAUEQdjoAACABQacBaiDYAUEQdjoAACABQZ8BaiDXAUEQdjoAACABQZcBaiDWAUEQdjoAACABQY8BaiDVAUEQdjoAACABQYcBaiDUAUEQdjoAACABQf8AaiDTAUEQdjoAACABQfcAaiDSAUEQdjoAACABQe8AaiDRAUEQdjoAACABQecAaiDQAUEQdjoAACABQd8AaiCAAkEQdjoAACABQdcAaiAPQRB2OgAAIAFBzwBqIA1BEHY6AAAgAUHHAGogBUEQdjoAACABID5B/wFxIAtBCHRyNgI8ICRB4P7CADYCCAwKCyAkIA87AEUgJCANOwA9ICQgBTsANSAkIAs7AC0gJCBGOgBEICQgOTYCQCAkIOIBOgA8ICQgPzYCOCAkIBA6ADQgJCAqNgIwICQgPjoALCAkIAo2AiggJCDmATYCJCAkIDU2AiAgJCAdNgIcICQgNDYCGCAkIAc2AhQgJCAnNgIQICQgDDYCDCAkIAQ2AgggJCCEAjYCBCAkQccAaiAPQRB2OgAAICRBP2ogDUEQdjoAACAkQTdqIAVBEHY6AAAgJEEvaiALQRB2OgAADAoLAn4CQCAsLQBEIgZBAkcgBkEBcUVxDQAgCC0AHEEBcQ0AQgIgiwVCAlENARog/wFBAXEg/wFB/wFxQQJHcQ0AID5B/wFxIAtBCHRyIe4EIBFBCHYh8AQgLC0AQiEOIAJBAToA8AwgAkLkgICAoB83AugMIAJCioCAgKABNwLgDCACQQA2AqAUIAJCgICAgMAANwKYFCABQQJ0IQYgISEJAkACQANAIAYEQCACQdgGaiIIIAJB4AxqIAkoAgAQlwEgBkEEayEGIAlBBGohCSACQZgUaiAIENcKIAgQ0SQMAQUCQAJAIA5BAXEgDkECRnJFBEAgAkGYFGoiBhDlDiAGENAkDAELIAJBmBRqQQAQnQILIAJBqAFqIAJBoBRqKAIANgIAIAIgAikCmBQiigU3A6ABIIoFp0GAgICAeEYNAyACKAKoASIGRQ0DIAIoAqQBIjMgBkEEdGoh8QQgMygCBCExQQAhBkEBIQkgMygCCCLtBCEOA0ACQCAGQQFxBEAgMyDxBEcNAQwDCyDxBCAza0EEdiAJTQ0CIDMgCUEEdGohMwsg7QQgDmshCCAzKAIIIQ4gMygCBCACQRBqIAggMSDtBEG8uMQAEJIdIDNBEGohMyAOakEBayEJIAIoAhQiMCACKAIQakEBayEIQQAhBgNAAkACQCAGIA5GDQAgBiAwRgRAIDAhDgwBCyAJLQAAIAgtAABGDQEgBiEOC0EAIQlBASEGIA4NAgwGCyAJQQFrIQkgCEEBayEIIAZBAWohBgwACwALAAsLCyACQQhqIO0EIA5rIDEg7QRBrLjEABCSHSACKAIIIg5FDQAgAigCDCIxRQ0AIAIgMTYCtAEgAiAONgKwAUEEIQYCQAJAA0AgBkEMRwRAIAJBsAFqIAZqIAZBCGohBigCAA0BDAILCyAxQQFGBEAgAkGAgICAeDYC2AYgAiAOLQAAOgDcBgwCCyACQeAMaiIIIA4gMRCbAyACQcATaiIGIAgQ7gsgAigC+BNBAkcEQCACQeQMaiAGQcgAEPsGGiACQYOAgIB4NgLYBiACQdgGakEEciAIQcwAEPsGGgwCCyACQcATahDWJCACQQI7AfghIAJBgIKIEDYC9CEgAkL/////DzcC6CEgAkIENwLgISACQgA3AtghIAJCgICAgMAANwLQIUEAIQYgAkEAOgDwIQNAIAZBCEcEQAJAIAItAPkhDQAgAigC2CFBgAFPBEAgAkEBOgD5ISACQdAhahDsFAwBCyACQbABaiAGaiIOQQRqKAIAIggEQCACQdAhaiAOKAIAIAgQzwkMAQsgAkEBOgD5ISACQdAhahDsFAsgBkEIaiEGDAELCyACQZgUaiIOIAJB0CFqIggQ+QECQCACKAKYFCIGQYCAgIB4RwRAIAJB7BJqIAJBnBRqQSwQ+wYaIAIgBjYC6BIgCBDJHyACQQM2AqAZIAJBADsApRkgAkGCAjsBqBkgAkEBOgCkGSAOIAJBoBlqIAJBsAFqEMUBAkACQCACKAKYFEEBRgRAIAJBmBxqIAJBqBRqKQMANwMAIAJBoBxqIAJBsBRqKQMANwMAIAIgAikDoBQ3A5AcDAELIAJB0CFqIgYgAkGYFGpBBHJB5AIQ+wYaIAJB6B5qIgggBkHkAhD7BhogAkGIHGogAi0AqBkgAi0AqRkgCBB+IAgQ9RcgAigCiBxBAXENACACKAKMHCEIIAJBsBlqIAJBkBxqQdgCEPsGGiAIQYCAgIB4Rw0BCyACQYCAgIB4NgLgDCACQegSahC4EwwCCyACQZQNaiACQbAZakHYAhD7BhogAkHgDGoiBiACQegSakEwEPsGGiACIDE2AuwPIAIgCDYCkA0gAigC4AxBgICAgHhGDQEgAkHYBmogBkGQAxD7BhogAigC2AZBh4CAgHhHDQMMAgsgAkGAgICAeDYC4AwgAkHQIWoQyR8LIAJB4AxqIggQ1yRBACEGIAhBAEGAAhCNCxoCQANAIAZBCEcEQCACQbABaiAGaiIIQQRqKAIAQQFHDQIgCCgCAC0AACACQeAMampBAToAACAGQQhqIQYMAQsLIAItAOAMIQggAkGYFGoiBiACQeEMakH/ARD7BhogCEECRg0AIAIgCDoA3AYgAkHYBmpBBXIgBkH/ARD7BhogAkGFgICAeDYC2AYMAgsgAkEDNgLMGSACQQA7ANEZIAJBADoAuhkgAkEAOgDGGSACQQE6ALwZIAJCgoCAgDA3ArAZIAJBAzYCwBkgAkEBOgDQGSACQQI7AdQZIAJBgAI7AcgZIAJBATsBxBkgAkEBOwG4GSACQeAMaiACQcwZaiACQbABahDFAQJAAkACQAJAAn8CQCACKALgDEUEQCACQZAcaiIIIAJB/gxqLwEAOwEAIAIgAikB9gw3A4gcIAIpAuQMIY0FIAIpAuwMIYoFIAIvAfQMIQYgAkG0FGogAkGADWpByAIQ+wYaIAJBshRqIAgvAQA7AQAgAiAGOwGoFCACIIoFNwKgFCACII0FNwKYFCACIAIpA4gcNwGqFAJAAn8CQAJAAkAgAi0A1BkiCUEBaw4DAQIGAAsgAkHgDGoiBiACQZgUakHkAhD7BhpBACEJQej7wwAhMCAGEPsfDAYLIAJB4AxqIAIoArAZIAItALwZIAJBmBRqEIcBIAIoAuAMIjBBgICAgHhHBEAgAkHQAGoiDiACQf4Mai8BADsBACACIAIpAfYMNwNIIAIpAuQMIY0FIAIpAuwMIYoFIAIvAfQMIQggAkGIHGoiBiACQYANakGoAhD7BhogAkGGH2ogDi8BADsBACACIAg7AfweIAIgigU3AvQeIAIgjQU3AuweIAIgMDYC6B4gAiACKQNINwH+HiACQYgfaiAGQagCEPsGGkHs/MMAITAgAkHoHmoQ/B8MAgsMBgsgAkHgDGogAi0AyBkgAi0AyRkgAkGYFGoQfiACKALgDA0BIAJBkBxqIgggAkH+DGovAQA7AQAgAiACKQH2DDcDiBwgAikC5AwhjQUgAikC7AwhigUgAi8B9AwhBiACQewhaiACQYANakHAAhD7BhogAkHqIWogCC8BADsBACACIAY7AeAhIAIgigU3AtghIAIgjQU3AtAhIAIgAikDiBw3AeIhQfD9wwAhMCACQdAhahD9HwshDiACLQDVGSEGIAJBmBRqEPUXDAYLDAMLIAJBwCRqIAJB/gxqLwEAOwEAIAIgAikB9gw3A7gkIAItAPUMIQYgAi0A9AwhCSACKALwDCEwIAIoAuwMIQ4gAigC6AwhMwwDCyACQeAMaiIGIAJBmBRqQeQCEPsGGiACQegSaiACQbAZaiAGEM0IIAIoAuwSITAgAi0A8BIhCSACKALoEgshDiACLQDVGSEGDAILIAJBwCRqIAJB/gxqLwEAOwEAIAIgAikB9gw3A7gkIAItAPUMIQYgAi0A9AwhCSACKALwDCEwIAIoAuwMIQ4gAigC6AwhMyACQZgUahD1FwsgM0EDRg0AIAJBAzoAqRkMAQsgAiAJOgCoGSACIDA2AqQZIAIgDjYCoBkgAiACLwG4JDsBqhkgAiAGOgCpGSAGQf8BcUEDRg0AIAJB5AZqIAJBqBlqKAIANgIAIAIgAikCoBk3AtwGIAJBhoCAgHg2AtgGDAILIAJBoBlqENgkCyACQQI6AIABDAELIAJB9ABqIAJB2AZqIDEQ9AYgAi0AgAFBAkYNACACQeAAaiACQfwAaikCADcDACACIAIpAnQ3A1ggAi0AZA0BIAJB2ABqEO0eCyACQaABahDvHgwBCyACLQBfIQ4gAigCWCEIIAItAFwhCyACKQNgIYoFIAIvAF0hBiACQaABahDvHkG4DUEIEKsgIgEgBjsArQ0gASDwBDsA3QsgASBCOwDVCyABIOkBOwDNCyABIOoBOwDFCyABIOsBOwC9CyABIOwBOwC1CyABIO0BOwCtCyABIO4BOwClCyABIO8BOwCdCyABIPABOwCVCyABIPEBOwCNCyABIPIBOwCFCyABIPMBOwD9CiABIPQBOwD1CiABIPUBOwDtCiABIPYBOwDlCiABIOgBOwDdCiABIPcBOwDVCiABIPgBOwDNCiABIPkBOwDFCiABIPoBOwC9CiABIPsBOwC1CiABIPwBOwCtCiABIP0BOwClCiABIP4BOwCdCiABIH87AJUKIAEgfjsAjQogASB9OwCFCiABIHw7AP0JIAEgezsA9QkgASB6OwDtCSABIHk7AOUJIAEgeDsA3QkgASB3OwDVCSABIHY7AM0JIAEgdTsAxQkgASB0OwC9CSABIHM7ALUJIAEgcjsArQkgASBxOwClCSABIHA7AJ0JIAEgbzsAlQkgASBuOwCNCSABIG07AIUJIAEgbDsA/QggASBrOwD1CCABIGo7AO0IIAEgaTsA5QggASBoOwDdCCABIGc7ANUIIAEgZjsAzQggASBlOwDFCCABIGQ7AL0IIAEgYzsAtQggASBiOwCtCCABIGE7AKUIIAEgYDsAnQggASBfOwCVCCABIF47AI0IIAEgXTsAhQggASBcOwD9ByABIFs7APUHIAEgWjsA7QcgASBZOwDlByABIFg7AN0HIAEgVzsA1QcgASBWOwDNByABIFU7AMUHIAEgVDsAvQcgASBTOwC1ByABIFI7AK0HIAEgUTsApQcgASBQOwCdByABIE87AJUHIAEgTjsAjQcgASBNOwCFByABIEw7AP0GIAEgSzsA9QYgASBKOwDtBiABIEk7AOUGIAEgSDsA3QYgASBHOwDVBiABIJYBOwDNBiABIJUBOwDFBiABIJQBOwC9BiABIJMBOwC1BiABIJIBOwCtBiABIJEBOwClBiABIJABOwCdBiABII8BOwCVBiABII4BOwCNBiABII0BOwCFBiABIIwBOwD9BSABIIsBOwD1BSABIIoBOwDtBSABIIkBOwDlBSABIIgBOwDdBSABIIcBOwDVBSABIIYBOwDNBSABIIUBOwDFBSABIIQBOwC9BSABIIMBOwC1BSABIIIBOwCtBSABIIEBOwClBSABIIABOwCdBSABQQA7AJUFIAEg3AE7AI0FIAEglwE7AIUFIAEgmAE7AP0EIAEgmQE7APUEIAEgmgE7AO0EIAEgmwE7AOUEIAEgnAE7AN0EIAEgnQE7ANUEIAEgngE7AM0EIAEgnwE7AMUEIAEgoAE7AL0EIAEgoQE7ALUEIAEgogE7AK0EIAEgowE7AKUEIAEgpAE7AJ0EIAEgpQE7AJUEIAEgpgE7AI0EIAEgpwE7AIUEIAEgqAE7AP0DIAEgqQE7APUDIAEgqgE7AO0DIAEgqwE7AOUDIAEgrAE7AN0DIAEgrQE7ANUDIAEgrgE7AM0DIAEgrwE7AMUDIAEgsAE7AL0DIAEgsQE7ALUDIAEgsgE7AK0DIAEgswE7AKUDIAEgtAE7AJ0DIAEgtQE7AJUDIAEgtgE7AI0DIAEgtwE7AIUDIAEguAE7AP0CIAEguQE7APUCIAEgugE7AO0CIAEguwE7AOUCIAEgvAE7AN0CIAEgvQE7ANUCIAEgvgE7AM0CIAEgvwE7AMUCIAEgwAE7AL0CIAEgwQE7ALUCIAEgwgE7AK0CIAEgwwE7AKUCIAEgxAE7AJ0CIAEgxQE7AJUCIAEgxgE7AI0CIAEgxwE7AIUCIAEgyAE7AP0BIAEgyQE7APUBIAEgygE7AO0BIAEgywE7AOUBIAEgzAE7AN0BIAEgzQE7ANUBIAEgzgE7AM0BIAEgzwE7AMUBIAEg2wE7AL0BIAEg2gE7ALUBIAEg2QE7AK0BIAEg2AE7AKUBIAEg1wE7AJ0BIAEg1gE7AJUBIAEg1QE7AI0BIAEg1AE7AIUBIAEg0wE7AH0gASDSATsAdSABINEBOwBtIAEg0AE7AGUgASCAAjsAXSABIA87AFUgASANOwBNIAEgBTsARSABIIoFNwOwDSABIAs6AKwNIAEgCDYCqA0gAUEANgKkDSABIIECNgKgDSABIIUCNgKcDSABICw2ApgNIAEghgI2AJQNIAEghwI2AJANIAEgiAI2AIwNIAEgiQI2AIgNIAEgigI2AIQNIAEgiwI2AIANIAEgjAI2APwMIAEgjQI2APgMIAEgjgI2APQMIAEgjwI2APAMIAEgkAI2AOwMIAEgkQI2AOgMIAEgkgI2AOQMIAEgkwI2AOAMIAEglAI2ANwMIAEglQI2ANgMIAEglgI2ANQMIAEglwI2ANAMIAEgmAI2AMwMIAEgmQI2AMgMIAEgmgI2AMQMIAEgmwI2AMAMIAEgnAI2ALwMIAEgnQI2ALgMIAEgngI2ALQMIAEgnwI2ALAMIAEgoAI2AKwMIAEgoQI2AKgMIAEgogI2AKQMIAEgowI2AKAMIAEgpAI2AJwMIAEgpQI2AJgMIAEgpgI2AJQMIAEgpwI2AJAMIAEgqAI2AIwMIAEgqQI2AIgMIAEgqgI2AIQMIAEgqwI2AIAMIAEgrAI2APwLIAEgrQI2APgLIAEgrgI2APQLIAEgrwI2APALIAEgsAI2AOwLIAEgsQI2AOgLIAEgsgI2AOQLIAEgswI2AOALIAEgEToA3AsgASC0AjYA2AsgASDnAToA1AsgASC1AjYA0AsgASC2AjoAzAsgASC3AjYAyAsgASC4AjoAxAsgASC5AjYAwAsgASC6AjoAvAsgASC7AjYAuAsgASAUOgC0CyABIBI2ALALIAEgIzoArAsgASAaNgCoCyABIC06AKQLIAEgOzYAoAsgASBBOgCcCyABIEQ2AJgLIAEgRToAlAsgASA8NgCQCyABIN0BOgCMCyABIN4BNgCICyABIOMBOgCECyABIOABNgCACyABIOEBOgD8CiABIOQBNgD4CiABIOUBOgD0CiABIBs2APAKIAEgHDoA7AogASAoNgDoCiABIC46AOQKIAEgMjYA4AogASA4OgDcCiABIDo2ANgKIAEgEzoA1AogASAWNgDQCiABIDY6AMwKIAEgNzYAyAogASAXOgDECiABIN8BNgDACiABIBk6ALwKIAEgIjYAuAogASAVOgC0CiABIEA2ALAKIAEgLzoArAogASAgNgCoCiABIP8BOgCkCiABIEM2AqAKIAEgJjoAnAogASArNgKYCiABILwCOgCUCiABIL0CNgKQCiABIL4COgCMCiABIL8CNgKICiABIMACOgCECiABIMECNgKACiABIMICOgD8CSABIMMCNgL4CSABIMQCOgD0CSABIMUCNgLwCSABIMYCOgDsCSABIMcCNgLoCSABIMgCOgDkCSABIMkCNgLgCSABIMoCOgDcCSABIMsCNgLYCSABIMwCOgDUCSABIM0CNgLQCSABIM4COgDMCSABIM8CNgLICSABINACOgDECSABINECNgLACSABINICOgC8CSABINMCNgK4CSABINQCOgC0CSABINUCNgKwCSABINYCOgCsCSABINcCNgKoCSABINgCOgCkCSABINkCNgKgCSABINoCOgCcCSABINsCNgKYCSABINwCOgCUCSABIN0CNgKQCSABIN4COgCMCSABIN8CNgKICSABIOACOgCECSABIOECNgKACSABIOICOgD8CCABIOMCNgL4CCABIOQCOgD0CCABIOUCNgLwCCABIOYCOgDsCCABIOcCNgLoCCABIOgCOgDkCCABIOkCNgLgCCABIOoCOgDcCCABIOsCNgLYCCABIOwCOgDUCCABIO0CNgLQCCABIO4COgDMCCABIO8CNgLICCABIPACOgDECCABIPECNgLACCABIPICOgC8CCABIPMCNgK4CCABIPQCOgC0CCABIPUCNgKwCCABIPYCOgCsCCABIPcCNgKoCCABIPgCOgCkCCABIPkCNgKgCCABIPoCOgCcCCABIPsCNgKYCCABIPwCOgCUCCABIP0CNgKQCCABIP4COgCMCCABIP8CNgKICCABIIADOgCECCABIIEDNgKACCABIIIDOgD8ByABIIMDNgL4ByABIIQDOgD0ByABIIUDNgLwByABIIYDOgDsByABIIcDNgLoByABIIgDOgDkByABIIkDNgLgByABIIoDOgDcByABIIsDNgLYByABIIwDOgDUByABII0DNgLQByABII4DOgDMByABII8DNgLIByABIJADOgDEByABIJEDNgLAByABIJIDOgC8ByABIJMDNgK4ByABIJQDOgC0ByABIJUDNgKwByABIJYDOgCsByABIJcDNgKoByABIJgDOgCkByABIJkDNgKgByABIJoDOgCcByABIJsDNgKYByABIJwDOgCUByABIJ0DNgKQByABIJ4DOgCMByABIJ8DNgKIByABIKADOgCEByABIKEDNgKAByABIKIDOgD8BiABIKMDNgL4BiABIKQDOgD0BiABIKUDNgLwBiABIKYDOgDsBiABIKcDNgLoBiABIKgDOgDkBiABIKkDNgLgBiABIKoDOgDcBiABIKsDNgLYBiABIKwDOgDUBiABIK0DNgLQBiABIK4DOgDMBiABIK8DNgLIBiABILADOgDEBiABILEDNgLABiABILIDOgC8BiABILMDNgK4BiABILQDOgC0BiABILUDNgKwBiABILYDOgCsBiABILcDNgKoBiABILgDOgCkBiABILkDNgKgBiABILoDOgCcBiABILsDNgKYBiABILwDOgCUBiAB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IAEgqAI2AowMIAEgqQI2AogMIAEgqgI2AoQMIAEgqwI2AoAMIAEgrAI2AvwLIAEgrQI2AvgLIAEgrgI2AvQLIAEgrwI2AvALIAEgsAI2AuwLIAEgsQI2AugLIAEgsgI2AuQLIAEgswI2AuALIAEgETYC3AsgASC0AjYC2AsgASDnAToA1AsgASC1AjYC0AsgASC2AjoAzAsgASC3AjYCyAsgASC4AjoAxAsgASC5AjYCwAsgASC6AjoAvAsgASC7AjYCuAsgASAUOgC0CyABIBI2ArALIAEgIzoArAsgASAaNgKoCyABIC06AKQLIAEgOzYCoAsgASBBOgCcCyABIEQ2ApgLIAEgRToAlAsgASA8NgKQCyABIN0BOgCMCyABIN4BNgKICyABIOMBOgCECyABIOABNgKACyABIOEBOgD8CiABIOQBNgL4CiABIOUBOgD0CiABIBs2AvAKIAEgHDoA7AogASAoNgLoCiABIC46AOQKIAEgMjYC4AogASA4OgDcCiABIDo2AtgKIAEgEzoA1AogASAWNgLQCiABIDY6AMwKIAEgNzYCyAogASAXOgDECiABIN8BNgLACiABIBk6ALwKIAEgIjYCuAogASAVOgC0CiABIEA2ArAKIAEgLzoArAogASAgNgKoCiABIP8BOgCkCiABIEM2AqAKIAEgJjoAnAogASArNgKYCiABILwCOgCUCiABIL0CNgKQCiABIL4COgCMCiABIL8CNgKICiABIMACOgCECiABIMECNgKACiABIMICOgD8CSABIMMCNgL4CSABIMQCOgD0CSABIMUCNgLwCSABIMYCOgDsCSABIMcCNgLoCSABIMgCOgDkCSABIMkCNgLgCSABIMoCOgDcCSABIMsCNgLYCSABIMwCOgDUCSABIM0CNgLQCSABIM4COgDMCSABIM8CNgLICSABINACOgDECSABINECNgLACSABINICOgC8CSABINMCNgK4CSABINQCOgC0CSABINUCNgKwCSABINYCOgCsCSABINcCNgKoCSABINgCOgCkCSABINkCNgKgCSABINoCOgCcCSABINsCNgKYCSABINwCOgCUCSABIN0CNgKQCSABIN4COgCMCSABIN8CNgKICSABIOACOgCECSABIOECNgKACSABIOICOgD8CCABIOMCNgL4CCABIOQCOgD0CCABIOUCNgLwCCABIOYCOgDsCCABIOcCNgLoCCABIOgCOgDkCCABIOkCNgLgCCABIOoCOgDcCCABIOsCNgLYCCABIOwCOgDUCCABIO0CNgLQCCABIO4COgDMCCABIO8CNgLICCABIPACOgDECCABIPECNgLACCABIPICOgC8CCABIPMCNgK4CCABIPQCOgC0CCABIPUCNgKwCCABIPYCOgCsCCABIPcCNgKoCCABIPgCOgCkCCABIPkCNgKgCCABIPoCOgCcCCABIPsCNgKYCCABIPwCOgCUCCABIP0CNgKQCCABIP4COgCMCCABIP8CNgKICCABIIADOgCECCABIIEDNgKACCABIIIDOgD8ByABIIMDNgL4ByABIIQDOgD0ByABIIUDNgLwByABIIYDOgDsByABIIcDNgLoByABIIgDOgDkByABIIkDNgLgByABIIoDOgDcByABIIsDNgLYByABIIwDOgDUByABII0DNgLQByABII4DOgDMByABII8DNgLIByABIJADOgDEByABIJEDNgLAByABIJIDOgC8ByABIJMDNgK4ByABIJQDOgC0ByABIJUDNgKwByABIJYDOgCsByABIJcDNgKoByABIJgDOgCkByABIJkDNgKgByABIJoDOgCcByABIJsDNgKYByABIJwDOgCUByABIJ0DNgKQByABIJ4DOgCMByABIJ8DNgKIByABIKADOgCEByABIKEDNgKAByABIKIDOgD8BiABIKMDNgL4BiABIKQDOgD0BiABIKUDNgLwBiABIKYDOgDsBiABIKcDNgLoBiABIKgDOgDkBiABIKkDNgLgBiABIKoDOgDcBiABIKsDNgLYBiABIKwDOgDUBiABIK0DNgLQBiABIK4DOgDMBiABIK8DNgLIBiABILADOgDEBiABILEDNgLABiABILIDOgC8BiABILMDNgK4BiABILQDOgC0BiABILUDNgKwBiABILYDOgCsBiABILcDNgKoBiABILgDOgCkBiABILkDNgKgBiABILoDOgCcBiABILsDNgKYBiABILwDOgCUBiABIL0DNgKQBiABIL4DOgCMBiABIL8DNgKIBiABIMADOgCEBiABIMEDNgKABiABIMIDOgD8BSABIMMDNgL4BSABIMQDOgD0BSABIMUDNgLwBSABIMYDOgDsBSABIMcDNgLoBSABIMgDOgDkBSABIMkD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QagEahDuEiEGDAULIAMgGDYCqAMLIANBqARqIANBlApqIAYoAgAgBkEEaigCABBCIAMoAqgEIgVBgICAgHhGBEAgAygCnAMiBUEBayEYIAMoApgDIAVBFGxqQRRrIRIDQAJAAkACQAJAIBhBf0YEQEEAIRgMAQsgEkEEaigCACIFQQRHDQELIAMgGDYCnAMgAygClAoiBigCACIHQf////8HTw0BIAYgB0EBajYCACADIAYoAgwiBTYC4AoCQCAFQQFGBEAgBiAHNgIAIANBqARqIAYQlQwgAygCqARBEEcNAUGswMQAEOApAAsgA0EANgKoBCADQeAKakHEntgAIANBqARqQbzAxAAQ4RoACyADQZAEaiADQcAEaigCADYCACADQYgEaiADQbgEaikCADcDACADQYAEaiAMKQIANwMAIAMgAykCqAQ3A/gDIB4gA0H4A2oQmwpBgICAgHghBUEBDAYLIBIoAgAhCyAEIBJBCGopAgA3AgAgBEEIaiASQRBqKAIANgIAIAMgBTYCsAogA0H4A2ogA0GwCmoQ0gsgAygC+ANBBEcEQCADQcgKaiADQYAEaiIFKQIANwMAIAMgGDYCnAMgAyADKQL4AyKMBTcDwAogjAWnQQNHDQcgA0EPNgKoBCADKAKUCiADQagEahChGAwHCyADQagEaiADQZQKaiALKAIAIAtBBGooAgAQQiADKAKoBCIFQYCAgIB4Rg0BIAMgGDYCnAMgHiAhQSQQ+wYaDAQLQZzAxAAQ8BQACyASQRRrIRIgGEEBayEYDAALAAsgHiAhQSQQ+wYaC0EACyADQZQDahD5HyADKAL8ASESBEAgAygClAIhCCADKAKQAiEHIAMoAowCIRAgAygCiAIhCyADKAKEAiEGIAMoAoACIQUgA0H4AmoQrAwgAygC9AEiDiADKALsAUYEQCADQewBahD4FgsgAygC8AEgDkEcbGoiDyAINgIYIA8gBzYCFCAPIBA2AhAgDyALNgIMIA8gBjYCCCAPIAU2AgQgDyASNgIAIAMgDkEBajYC9AEMAwsgA0H4AGogA0HwAmopAgA3AwAgAyADKQLoAjcDcCADKAKcAiEpIAMpApQCIYwFIAMpAowCIY4FIAMoAogCIQYgAygChAIhGCADKAKAAiEjIANB+AJqEKwMQSIhBwwGCyADQcAKahC7GyEGICEg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ADYCACAaIAspAgA3AgggGiAGKQIANwIoIBpBEGogC0EIaikCADcCACAaQRhqIAtBEGopAgA3AgAgGkEgaiALQRhqKQIANwIAIBpBMGogBkEIaikCADcCACAaQThqIAZBEGooAgA2AgAMBQsgFCgCxAIhBSAaQQhqIBRByAJqQTgQ+wYaIBogBTYCQCAaIAc2AgQgGkGIgMQANgIADAQLIBQoAsQCIQUgGkEIaiAUQcgCakE4EPsGGiAaIAU2AkAgGiAHNgIEDAILIBogFCkCrAI3AiggGkFAayAUQcQCaigCADYCACAaQThqIBRBvAJqKQIANwIAIBpBMGogFEG0AmopAgA3AgAgGkEkaiAHKAIANgIAIBpBHGogBikDADcCACAaQRRqIAspAwA3AgAgGiAUKQPIATcCDCAaIBU2AgggGiAFNgIEIBpBiIDEADYCACAUQUBrEOkiDAILIBogFCkCrAI3AiggGkFAayAUQcQCaigCADYCACAaQThqIBRBvAJqKQIANwIAIBpBMGogFEG0AmopAgA3AgAgGkEkaiAUQYACaigCADYCACAaQRxqIBRB+AFqKQMANwIAIBpBFGogFEHwAWopAwA3AgAgGiAUKQPoATcCDCAaIBA2AgggGiAFNgIEIBpBiIDEADYCAAwBCyAaQYiAxAA2AgAgFEEIahDpIgsgFEGAA2okACAbKAKgASEHIBtBMGoiBSAyQcAAEPsGGiAHQYiAxABHBEAgFyAZKQIANwIAIBdBEGogGUEQaigCADYCACAXQQhqIBlBCGopAgA3AgAgGyAHNgK4AiAdIAVBwAAQ+wYaIBtBDGogG0G4AmoQ9g4MAQsLIChBBGogG0EwakHAABD7BhoLIChBiYDEADYCACAbQQxqEN0mDAELIBtBADYCoAEgG0EIakHsosQAIBtBoAFqQcisxAAQ8RoACyAbQZADaiQAIANBgARqIg4gQEEIaikCADcDACADIEApAgA3A/gDIAMoAugEIR4gAygC1AQhKSADKQLMBCGMBSADKQLEBCGOBSADKALABCEGIAMoArwEIRggAygCuAQhIyADKAK0BCESIAMoArAEIQUgAygCrAQhByADKAKoBCIIQYmAxABGDQYgA0G4A2oiECAmQTAQ+wYaIANBgANqIgsgDikDADcDACADIAMpA/gDNwP4AkH0ABDpICIO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+ANqIg02AoACIAMgA0GwCmoiBzYC+AMgA0GgCmpBiPvCACADQfgBahC1JA0AIANBwApqIgUgA0G4A2oQygMgA0EBNgL8ASADQYT44AA2AvgBIANCATcChAIgA0EFNgL8AyADIA02AoACIAMgBTYC+AMCQCADQaAKakGI+8IAIANB+AFqELUkDQAgA0ECNgL8ASADQcDN3wA2AvgBIANCATcChAIgA0EFNgL8AyADIA02AoACIAMgBzYC+AMgA0GgCmpBiPvCACADQfgBahC1JA0AIAMoAswDIgUEQCADQQA2AtgKIANCgICAgMAANwLQCiAFQRhsIRIgAygCyAMiGEEQaiEFA0AgEgRAIANBBTYC/AMgA0HkydYANgL4AyADQgQ3AoQEIANBBzYChAIgA0EHNgL8ASAYKAIUIQcgA0EHNgKUAiADQQc2AowCIAMgBTYCiAIgAyAFQQhrNgKAAiADIAVBDGs2AvgBIAMgB0EBazYC6AIgEkEYayESIBhBGGohGCAFQRhqIQUgAyADQfgBajYCgAQgAyADQegCajYCkAIgA0HgCmoiByADQfgDahDtCyADQdAKaiAHEOIVDAEFIANB+ANqIgUgAygC1AogAygC2ApBwvDgAEEBEOsDIANBBTYC5AogA0ECNgL8ASADQcDN3wA2AvgBIANCATcChAIgAyAFNgLgCiADIANB4ApqNgKAAiADQaAKakGI+8IAIANB+AFqELUkIAMoAvgDIAMoAvwDENopIANB0ApqEMUVDQMLCwsgA0EBNgL8ASADQdjI1gA2AvgBIANCATcChAIgA0HrADYC/AMgAyAGNgL4AyADIANB+ANqNgKAAiADQaAKakGI+8IAIANB+AFqELUkRQ0CCyADKALACiADKALEChDaKQsgAygCsAogAygCtAoQ2ikMBgsgAygCwAogAygCxAoQ2ikgAygCsAogAygCtAoQ2ikMAwsgA0ECNgL8ASADQcDN3wA2AvgBIANCATcChAIgA0EFNgL8AyADIANB+ANqIg02AoACIAMgA0GwCmoiBzYC+AMgA0GgCmpBiPvCACADQfgBahC1JA0AIANBwApqIgUgA0G4A2oQygMgA0EBNgL8ASADQYT44AA2AvgBIANCATcChAIgA0EFNgL8AyADIA02AoACIAMgBTYC+AMCQCADQaAKakGI+8IAIANB+AFqELUkDQAgA0ECNgL8ASADQcDN3wA2AvgBIANCATcChAIgA0EFNgL8AyADIA02AoACIAMgBzYC+AMgA0GgCmpBiPvCACADQfgBahC1JA0AIAMoAswDIgUEQCADQQA2AtgKIANCgICAgMAANwLQCiAFQRhsIRIgAygCyAMiGEEQaiEFA0AgEgRAIANBBTYC/AMgA0HkydYANgL4AyADQgQ3AoQEIANBBzYChAIgA0EHNgL8ASAYKAIUIQcgA0EHNgKUAiADQQc2AowCIAMgBTYCiAIgAyAFQQhrNgKAAiADIAVBDGs2AvgBIAMgB0EBazYC6AIgEkEYayESIBhBGGohGCAFQRhqIQUgAyADQfgBajYCgAQgAyADQegCajYCkAIgA0HgCmoiByADQfgDahDtCyADQdAKaiAHEOIVDAEFIANB+ANqIgUgAygC1AogAygC2ApBwvDgAEEBEOsDIANBBTYC5AogA0ECNgL8ASADQcDN3wA2AvgBIANCATcChAIgAyAFNgLgCiADIANB4ApqNgKAAiADQaAKakGI+8IAIANB+AFqELUkIAMoAvgDIAMoAvwDENopIANB0ApqEMUVDQMLCwsgA0EBNgL8ASADQdjI1gA2AvgBIANCATcChAIgA0HqADYC/AMgAyAGNgL4AyADIANB+ANqNgKAAiADQaAKakGI+8IAIANB+AFqELUkRQ0CCyADKALACiADKALEChDaKQsgAygCsAogAygCtAoQ2ikMAwsgAygCwAogAygCxAoQ2ikgAygCsAogAygCtAoQ2ikLIANBuANqEL4TIBAgAykCoAo3AgAgEEEIaiADQagKaigCADYCAAsgAygCqAQhLQwBCyADQbgDahC+EwwCCwJAAkAgLUUNAAJAIAMoArAEIgVBImtBACAFQSNrQQdJGw4CAQACCyADKAK4BCIFQYSAgIB4SA0BIAUgAygCvAQQ2ikMAQsgC0EEQRwgCygCAEEiRhtqIgUoAgAgBUEEaigCABDaKQsggwJBADYCAAsCQCADLQC4ASIFQQNGIAVBAkZyDQAgAygCrAEiBSAFKAIAIgVBAWs2AgAgBUEBRw0AIPMEELQOCyADQfAKaiQADAELQfy94ABBNyADQfAAakGg+8IAQYC/4AAQxQ4ACyAfKAJIIgUgHygCTBDlHCAfKAJEIAUQ4ikCQCAfLQA0IgVBA0YgBUECRnINACAfKAIoIgUgBSgCACIFQQFrNgIAIAVBAUcNACAfQShqELQOCyAfKAJgRQ0BIAAgHykCYDcCACAAQQhqIB9B6ABqKQIANwIAIB9BwAFqJAAPCyAHIAsoAggQ4SkACyAfQQhqIB9B7ABqKAIANgIAIB8gHykCZDcDAEGc6+AAQSsgH0Go3dgAQdTe2AAQxQ4AC54DAgZ+BH8jAEEgayIKJAACQCACUCABQqp9U3INAEH/DyELIAFCtAJVDQAgCkEQaiABpyIJQQR0QbC3wQBqIgwpAwAgAiACeSIGhiIDEMQOIAopAxAhBSAKQRhqKQMAIgJC/wODQv8DUQRAIAogDCkDCCADEMQOIAIgCkEIaikDACICIAV8IgUgAlStfCECCyAFQn9SIAFCG3xC0wBUckUEQEF/IQsMAQsgAiACQj+IIgdCCXwiCIghAyAHpyAJQeqkDWxBEHUgBqdrakE/aiIJQYJ4TgRAQYAIQf8HIANC/P////////8AgyADIAMgCIYgAlEbIAMgA0IDg0IBURsgAyAFQgJUGyADIAFCBHxCHFQbIgFCAYMgAXwiAUL/////////H1YiDBsgCWoiCUH+D0sNAUIAIAFCAYhC//////////f/AIMgDBshBCAJIQsMAQtBACELIAlBw3dJDQAgA0ECIAlrQT9xrYgiAUIBgyABfCIBQv////////8PViELIAFCAYghBAsgACALNgIIIAAgBDcDACAKQSBqJAALjAQBAn8jAEEwayICJAACfwJAAkACQAJAAkACQAJAIAAoAgAiAC0AAEEBaw4DAAECAwsgAiAAKAIENgIsIAJBATYCGCACQdDNwwA2AhQgAkIBNwIgIAJBBzYCBCACIAI2AhwgAiACQSxqNgIAIAEoAhQgASgCGCACQRRqELUkDAYLIAIgACgCBDYCLCACQQI2AhggAkH4zcMANgIUIAJCATcCICACQQc2AgQgAiACNgIcIAIgAkEsajYCACABKAIUIAEoAhggAkEUahC1JAwFCyAAKAIEQQFrDgICAwELIAAtAAEhAyACIAAoAgQ2AiwgAkECNgIYIAJBpM3DADYCFCACQgI3AiAgAkEHNgIMIAJBpwE2AgQgAiADOgATIAIgAjYCHCACIAJBLGo2AgggAiACQRNqNgIAIAEoAhQgASgCGCACQRRq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AEG4AWogAUEIaiIKLwAAOwAAEMkgIQsQySAhDCAFQYACEP8UIAUpAwAhDUEYQQQQqyAiB0EANgIUIAcgDTcCDCAHQQA2AgggB0KBgICAEDcCACAGEMAVQRxBBBCrICIGQoGAgIAQNwIAIAYgBSkCCDcCCCAGQRBqIAVBEGopAgA3AgAgBkEYaiAFQRhqKAIANgIAIABBrMDgADYC8AEgACAENgLsASAAQgA3AgQgACAEQQBHNgIAIAAgCDYC9AEgACACOgCfAiAAIAMpAgA3AsABIABByAFqIANBCGopAgA3AgAgAEHQAWogCSkCADcCACAAQdgBaiADQRhqKAIANgIAIAAgASkAADcA+AEgAEGAAmogCi8AADsAACAAIAY2AugBIAAgBzYC5AEgACAMNgLgASAAIAs2AtwBIAVBkAFqJAALvwsCC38CfiMAQeAAayIDJAACQCAALQA8RQRAIAAtAChFDQELIANBADsANSADQRhqQcig4wApAwAiDTcDACADQShqIA03AwAgA0HAoOMAKQMAIg03AxAgAyAANgIwIAMgAC0AODoANCADIA03AyAgAyABKAIEIgQgASgCCEE4bGo2AjwgAyAENgI4IAMgA0EQajYCQCADQThqELsNIgQEfyADQQhqQQRBBEEEEPsUIAMoAgghBSADKAIMIgIgBDYCACADQQE2AkwgAyACNgJIIAMgBTYCRCADQdgAaiADQUBrKAIANgIAIAMgAykCODcDUEEEIQRBASEFA0AgA0HQAGoQuw0iBgRAIAMoAkQgBUYEQCADQcQAaiAFQQFBBEEEELcXIAMoAkghAgsgAiAEaiAGNgIAIAMgBUEBaiIFNgJMIARBBGohBAwBCwsgAygCRCECIAMoAkgFQQQLIQQgBUECdCEGQQAhBQNAIAUgBkcEQCAEIAVqKAIAIANBEGoQhwcgBUEEaiEFDAELCyACIARBBEEEENQiIANBEGoQgCkLIwBBQGoiBCQAIABBEGohCyAAQSxqIQggASgCBCIFIAEoAghBOGxqIQwgBEEsaiEJIARBEGohCgNAAkACQCAMIAUiAUcEQCABQThqIQUgASgCACICQQlHBEACQAJAAkACQAJAAkACQAJAAkAgAkEBaw4IAQIDBAUGBwgACyAAQQA6ADkgAC0AOiEHIAAgAS0AIDoAOiABKAIMQcgAbCEG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IAEoAhggAkEYahC1JCEECyACQTBqJAAgBA8LQZqF2ABBDhD+KgAL1wIBDn8gA0EcbCEDIAEtABUhDCABLQAUIQ0gAS0AEyEOIAEtABIhDyABLQARIRAgAS0AECERQQIhBUECIQZBAiEHQQIhCEECIQlBAiEKQQEhCwNAIAMEQCALIQRBACELAkACQAJAAkACQAJAAkACQCACLQAYQQFrDgcBAgMEBQYHAAsgBEEBcSEFDAULIARBAXEhBgwECyAEQQFxIQcMAwsgBEEBcSEIDAILIARBAXEhCQwBCyAEQQFxIQoLIAQhCwsgAkEcaiECIANBHGshAwwBCwsgACAMOgAFIAAgDToABCAAIA46AAMgACAPOgACIAAgEDoAASAAIBE6AAAgASAMIAogCkECRhs6ABUgASANIAkgCUECRhs6ABQgASAOIAggCEECRhs6ABMgASAPIAcgB0ECRhs6ABIgASAQIAYgBkECRhs6ABEgASARIAUgBUECRhs6ABAL7AIBAn8jAEGQAWsiAiQAIAJBADsAEiACIAEtALACOgARIAIgASgBqgI2AAsgAiABLwGuAjsADyACIAEpALMCNwAUIAIgASkAuwI3ABwgAiABKADDAjYAJCACQeUAaiABQb8CaikAADcAACACQeAAaiABQboCaikBADcCACACQdgAaiABQbICaikBADcCACACIAEpAaoCNwJQIAFBKGogAkELahDSCCACIAE2AkwgAkEoaiABQQAQngQgAigCKCEBAkAgAi0APCIDQQJHBEAgAkH8AGogAkE0aikCADcCACACQYwBaiACQcQAaigAADYAACACIAIpAiw3AnQgAiACKQA9NwCFASACIAE2AnAgACACKQNwNwMAIABBCGogAkH4AGopAwA3AwAgAiADOgCEASAAQRBqIAJBgAFqKQMANwMAIAJBiAFqEPkmDAELIABBAjoAFCAAIAE2AgALIAJBzABqEIclIAJBkAFqJAAL7QIBAn8jAEGQAWsiAiQAIAJBADsAEiACIAEtAIgDOgARIAIgASgBggM2AAsgAiABLwGGAzsADyACIAEpAIsDNwAUIAIgASkAkwM3ABwgAiABKACbAzYAJCACQeUAaiABQZcDaikAADcAACACQeAAaiABQZIDaikBADcCACACQdgAaiABQYoDaikBADcCACACIAEpAYIDNwJQIAFBgAFqIAJBC2oQyQggAiABNgJMIAJBKGogAUEAEKAEIAIoAighAQJAIAItADwiA0ECRwRAIAJB/ABqIAJBNGopAgA3AgAgAkGMAWogAkHEAGooAAA2AAAgAiACKQIsNwJ0IAIgAikAPTcAhQEgAiABNgJwIAAgAikDcDcDACAAQQhqIAJB+ABqKQMANwMAIAIgAzoAhAEgAEEQaiACQYABaikDADcDACACQYgBahD5JgwBCyAAQQI6ABQgACABNgIACyACQcwAahCjJiACQZABaiQAC+gCAgF/AX4jAEEgayIDJAAgA0EQaiACIAEQ5SBBABDVAQJAAkAgAy0AEEEERwRAIAMpAxAiBEL/AYNCBFINAQsCQAJAIAEtABRBAkYEQCADQRBqIAIgASgCACIBKAIQQQAQ1QECQCADLQAQQQRHBEAgAykDECIEQv8Bg0IEUg0BCyADQRBqIAFBGGogAhDbBiADLQAQQQRHBEAgAykDECIEQv8Bg0IEUg0BCyADQQA2AhAgA0EIaiACIANBEGpBg7bgAEEBELITIAMtAAhBBEcEQCADKQMIIgRC/wGDQgRSDQELIANBEGogASACEJYTIAMtABBBBEYNAiADKQMQIgRC/wGDQgRRDQILIARC/wGDQgRRDQEgACAENwIADAQLIANBEGogASACEOQSIAMtABBBBEYNACADKQMQIgRC/wGDQgRSDQELIABBBDoAAAwCCyAAIAQ3AgAMAQsgACAENwIACyADQSBqJAAL3AICBn8DfiMAQTBrIgMkAAJAAkAgAgRAIAEoAgghBCABKAIEIQUgAkH//wNLDQEgBEECdCEEIAVBBGshBkEAIQUDQCAERQ0DIANBEGogBUEQdCAEIAZqIgcoAgAiBUEQdnIgAhDrHCADKAIQIQggA0EIaiAFQf//A3EgAygCFEEQdHIgAhDrHCADKAIMIQUgByADKAIIIAhBEHRyNgIAIARBBGshBAwACwALIANBADYCKCADQQE2AhwgA0Hkq8IANgIYIANCBDcCICADQRhqQeyrwgAQwx0ACyAEQQJ0IQQgBUEEayEGIAKtIQlBACEFA0AgBEUNASAEIAZqIgIgAjUCACAFrUIghoQiCiAJgCILPgIAIAogCSALfn2nIQUgBEEEayEEDAALAAsgA0EgaiABQQhqKAIANgIAIAMgASkC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QTBqEIUXDAULIABBCGopAwAQ+RogAEEgahCFFwwECyAAQQhqEJ0WIABBPGoQ6yYgAEFAaxDqJiAAQTBqEO4mDAMLIABBCGopAwAQ+RogAEEkahDrJiAAQShqEOomIABBLGoQ7iYMAgsgAEEEahDUKAwBCyAAQQRqEOkmCyACQQFrIQIgAEHYAGohAAwBCwsLygICBH8BfiMAQUBqIgIkAAJAAkACQCABKAIAIgQgASgCBEYNACABIARBGGo2AgACQCABKAIQIgMgASgCFEYNACABIANBCmo2AhAgAy0AACIFQQJGDQAgAkEoaiADQQlqLQAAOgAAIAIgAykAATcDIAwCCyABIAEoAgwiBTYCFCABIAEoAggiAzYCECADIAVGDQAgASADQQpqNgIQIAJBKGogA0EJai0AADoAACACIAMpAAE3AyAgAy0AACIFQQJHDQELIABBgYCAgHg2AgAMAQsgAkEYaiACQShqLQAAOgAAIAIgAikDICIGNwMQIAJBLGogAigAFzYAACACIAU6ACQgAiAENgIgIAIgBjcAJSACQQhqIAQQ9x8gAkE0aiIBIAIoAgggAigCDBDJISAAIAEgBCgCDCAEKAIQIAJBJGoQtQULIAJBQGskAAvxRQEHfyMAQTBrIgUkAAJAAkACQAJAAkACQCABLQAIQbgBRgRAIAEoAhAhAyABKAIMIQQgASgCHCEGIAEoAhghByAFIAEoAhQiCCgCACACELsHIAAgBSAEIAMgByAGEJ4OIgIpAgA3AgAgAEEIaiACQQhqKAIANgIAIAgQ3CsgAS0ACEG4AUcNAQwFCyABKAIEIQcgASgCACEIIAUgARCuHCAFQRhqIQMgBSEBIwBB0ABrIgQkAAJAAkACfwJAAkACQAJAAkACQANAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABLQAAQQFrDroBAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wwQExMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AbgBugEACyADQQ42AgggA0HsvtkANgIEIANBgICAgHg2AgAMwQELIANBGjYCCCADQeG/2QA2AgQgA0GAgICAeDYCAAzAAQsgA0EgNgIIIANB+7/ZADYCBCADQYCAgIB4NgIADL8BCyADQS82AgggA0GbwNkANgIEIANBgICAgHg2AgAMvgELIANB0wA2AgggA0HKwNkANgIEIANBgICAgHg2AgAMvQELIANBKTYCCCADQZ3B2QA2AgQgA0GAgICAeDYCAAy8AQsgA0EmNgIIIANBxsHZADYCBCADQYCAgIB4NgIADLsBCyADQSo2AgggA0HswdkANgIEIANBgICAgHg2AgAMugELIANBETYCCCADQZbC2QA2AgQgA0GAgICAeDYCAAy5AQsgA0EXNgIIIANBp8LZADYCBCADQYCAgIB4NgIADLgBCyADQSw2AgggA0G+wtkANgIEIANBgICAgHg2AgAMtwELIANB4gA2AgggA0HqwtkANgIEIANBgICAgHg2AgAMtgELIANBGjYCCCADQczD2QA2AgQgA0GAgICAeDYCAAy1AQsgA0ElNgIIIANB5sPZADYCBCADQYCAgIB4NgIADLQBCyADQRw2AgggA0GLxNkANgIEIANBgICAgHg2AgAMswELIANBJzYCCCADQafE2QA2AgQgA0GAgICAeDYCAAyyAQsgA0EnNgIIIANBzsTZADYCBCADQYCAgIB4NgIADLEBCyADQSc2AgggA0H1xNkANgIEIANBgICAgHg2AgAMsAELIANBMDYCCCADQZzF2QA2AgQgA0GAgICAeDYCAAyvAQsgA0EpNgIIIANBzMXZADYCBCADQYCAgIB4NgIADK4BCyADQTU2AgggA0H1xdkANgIEIANBgICAgHg2AgAMrQELIANBMzYCCCADQarG2QA2AgQgA0GAgICAeDYCAAysAQsgA0EfNgIIIANB3cbZADYCBCADQYCAgIB4NgIADKsBCyABLQABQQJrIgFBB3QgAUH+AXFBAXZyQf8BcQ4IpAGjAaMBpQGmAaMBowGnAaMBCyADQSg2AgggA0HUx9kANgIEIANBgICAgHg2AgAMqQELIANBJTYCCCADQfzH2QA2AgQgA0GAgICAeDYCAAyoAQsgA0EaNgIIIANBocjZADYCBCADQYCAgIB4NgIADKcBCyADQRw2AgggA0G7yNkANgIEIANBgICAgHg2AgAMpgELIANBFzYCCCADQdfI2QA2AgQgA0GAgICAeDYCAAylAQsgBCABQQhqNgIgIARBATYCPCAEQZzJ2QA2AjggBEIBNwJEIARB2AM2AjAgBCAEQSxqNgJAIAQgBEEgajYCLCAEQRBqIARBOGoQihUgA0EIaiAEQRhqKAIANgIAIAMgBCkCEDcCAAykAQsgA0EbNgIIIANBpMnZADYCBCADQYCAgIB4NgIADKMBCyADQRU2AgggA0G/ydkANgIEIANBgICAgHg2AgAMogELIANBHzYCCCADQdTJ2QA2AgQgA0GAgICAeDYCAAyhAQsgBCABQQRqNgIgIARBATYCPCAEQYjK2QA2AjggBEIBNwJEIARB8AQ2AjAgBCAEQSxqNgJAIAQgBEEgajYCLCAEQRBqIARBOGoQihUgA0EIaiAEQRhqKAIANgIAIAMgBCkCEDcCAAygAQsgA0EVNgIIIANBkMrZADYCBCADQYCAgIB4NgIADJ8BCyADQRY2AgggA0GlytkANgIEIANBgICAgHg2AgAMngELIAQgAUEEajYCICAEQQE2AjwgBEHkytkANgI4IARCATcCRCAEQQg2AjAgBCAEQSxqNgJAIAQgBEEgajYCLCAEQRBqIARBOGoQihUgA0EIaiAEQRhqKAIANgIAIAMgBCkCEDcCAAydAQsgA0EmNgIIIANB7MrZADYCBCADQYCAgIB4NgIADJwBCyADQS02AgggA0GSy9kANgIEIANBgICAgHg2AgAMmwELIAQgAUEIajYCICAEQQI2AjwgBEHwy9kANgI4IARCATcCRCAEQdgDNgIwIAQgBEEsajYCQCAEIARBIGo2AiwgBEEQaiAEQThqEIoVIANBCGogBEEYaigCADYCACADIAQpAhA3AgAMmgELIANBOzYCCCADQYDM2QA2AgQgA0GAgICAeDYCAAyZAQsgA0HMADYCCCADQbvM2QA2AgQgA0GAgICAeDYCAAyYAQsgA0E6NgIIIANBh83ZADYCBCADQYCAgIB4NgIADJcBCyADQcoANgIIIANBwc3ZADYCBCADQYCAgIB4NgIADJYBCyADQTE2AgggA0GLztkANgIEIANBgICAgHg2AgAMlQELIANBFDYCCCADQbzO2QA2AgQgA0GAgICAeDYCAAyUAQsgA0EfNgIIIANB0M7ZADYCBCADQYCAgIB4NgIADJMBCyADQTI2AgggA0HvztkANgIEIANBgICAgHg2AgAMkgELIAQgAUEMajYCDCAEIAFBBGo2AiAgBEECNgI8IARBwM/ZADYCOCAEQgI3AkQgBEEINgIcIARBDTYCFCAEIARBEGo2AkAgBCAEQSBqNgIYIAQgBEEMajYCECAEQSxqIARBOGoQihUgA0EIaiAEQTRqKAIANgIAIAMgBCkCLDcCAAyRAQsgA0EeNgIIIANBlNDZADYCBCADQYCAgIB4NgIADJABCyADQSU2AgggA0Gy0NkANgIEIANBgICAgHg2AgAMjwELIAQgAUEEajYCDCAEIAFBCGo2AiAgBEEDNgI8IARB7NDZADYCOCAEQgI3AkQgBEENNgIcIARBtgI2AhQgBCAEQRBqNgJAIAQgBEEgajYCGCAEIARBDGo2AhAgBEEsaiAEQThqEIoVIANBCGogBEE0aigCADYCACADIAQpAiw3AgAMjgELIANBGjYCCCADQYTR2QA2AgQgA0GAgICAeDYCAAyNAQsgA0HVADYCCCADQZ7R2QA2AgQgA0GAgICAeDYCAAyMAQsgA0EyNgIIIANB89HZADYCBCADQYCAgIB4NgIADIsBCyADQdIANgIIIANBpdLZADYCBCADQYCAgIB4NgIADIoBCyADQSw2AgggA0H30tkANgIEIANBgICAgHg2AgAMiQELIANBMzYCCCADQaPT2QA2AgQgA0GAgICAeDYCAAyIAQsgA0EiNgIIIANB1tPZADYCBCADQYCAgIB4NgIADIcBCyADQTc2AgggA0H409kANgIEIANBgICAgHg2AgAMhgELIANBKDYCCCADQa/U2QA2AgQgA0GAgICAeDYCAAyFAQsgA0ENNgIIIANB19TZADYCBCADQYCAgIB4NgIADIQBCyADQRE2AgggA0Hk1NkANgIEIANBgICAgHg2AgAMgwELIANBFTYCCCADQfXU2QA2AgQgA0GAgICAeDYCAAyCAQsgA0EZNgIIIANBitXZADYCBCADQYCAgIB4NgIADIEBCyADQQ42AgggA0Gj1dkANgIEIANBgICAgHg2AgAMgAELIANBGjYCCCADQbHV2QA2AgQgA0GAgICAeDYCAAx/CyAEIAFBCGo2AiAgBEECNgI8IARB6NXZADYCOCAEQgE3AkQgBEHYAzYCMCAEIARBLGo2AkAgBCAEQSBqNgIsIARBEGogBEE4ahCKFSADQQhqIARBGGooAgA2AgAgAyAEKQIQNwIADH4LIANBJTYCCCADQfjV2QA2AgQgA0GAgICAeDYCAAx9CyADQS02AgggA0Gd1tkANgIEIANBgICAgHg2AgAMfAsgA0E8NgIIIANBytbZADYCBCADQYCAgIB4NgIADHsLIANBNDYCCCADQYbX2QA2AgQgA0GAgICAeDYCAAx6CyADQSs2AgggA0G619kANgIEIANBgICAgHg2AgAMeQsgA0EtNgIIIANB5dfZADYCBCADQYCAgIB4NgIADHgLIANBJDYCCCADQZLY2QA2AgQgA0GAgICAeDYCAAx3CyADQR02AgggA0G22NkANgIEIANBgICAgHg2AgAMdgsgA0EoNgIIIANB09jZADYCBCADQYCAgIB4NgIADHULIANBLjYCCCADQfvY2QA2AgQgA0GAgICAeDYCAAx0CyADQSo2AgggA0Gp2dkANgIEIANBgICAgHg2AgAMcwsgA0E2NgIIIANB09nZADYCBCADQYCAgIB4NgIADHILIANBPjYCCCADQYna2QA2AgQgA0GAgICAeDYCAAxxCyADQTM2AgggA0HH2tkANgIEIANBgICAgHg2AgAMcAsgA0EpNgIIIANB+trZADYCBCADQYCAgIB4NgIADG8LIANBGTYCCCADQaPb2QA2AgQgA0GAgICAeDYCAAxuCyADQTs2AgggA0G829kANgIEIANBgICAgHg2AgAMbQsgA0E9NgIIIANB99vZADYCBCADQYCAgIB4NgIADGwLIANBLTYCCCADQbTc2QA2AgQgA0GAgICAeDYCAAxrCyAEIAFBCGo2AiAgBEECNgI8IARBkN3ZADYCOCAEQgE3AkQgBEHYAzYCMCAEIARBLGo2AkAgBCAEQSBqNgIsIARBEGogBEE4ahCKFSADQQhqIARBGGooAgA2AgAgAyAEKQIQNwIADGoLIANBOjYCCCADQaDd2QA2AgQgA0GAgICAeDYCAAxpCyADQfAANgIIIANB2t3ZADYCBCADQYCAgIB4NgIADGgLIANBNTYCCCADQcre2QA2AgQgA0GAgICAeDYCAAxnCyADQckANgIIIANB/97ZADYCBCADQYCAgIB4NgIADGYLIANBKTYCCCADQcjf2QA2AgQgA0GAgICAeDYCAAxlCyADQSY2AgggA0Hx39kANgIEIANBgICAgHg2AgAMZAsgA0E7NgIIIANBl+DZADYCBCADQYCAgIB4NgIADGMLIANBODYCCCADQdLg2QA2AgQgA0GAgICAeDYCAAxiCyAEIAFBCGo2AiAgBEECNgI8IARBwOHZADYCOCAEQgE3AkQgBEHYAzYCMCAEIARBLGo2AkAgBCAEQSBqNgIsIARBEGogBEE4ahCKFSADQQhqIARBGGooAgA2AgAgAyAEKQIQNwIADGELIANBJzYCCCADQdDh2QA2AgQgA0GAgICAeDYCAAxgCyADQRs2AgggA0H34dkANgIEIANBgICAgHg2AgAMXwsgA0EhNgIIIANBkuLZADYCBCADQYCAgIB4NgIADF4LIANBJTYCCCADQbPi2QA2AgQgA0GAgICAeDYCAAxdCyADQc4ANgIIIANB2OLZADYCBCADQYCAgIB4NgIADFwLIANBHTYCCCADQabj2QA2AgQgA0GAgICAeDYCAAxbCyADQTk2AgggA0HD49kANgIEIANBgICAgHg2AgAMWgsgA0E5NgIIIANB/OPZADYCBCADQYCAgIB4NgIADFkLIANBOTYCCCADQbXk2QA2AgQgA0GAgICAeDYCAAxYCyADQS42AgggA0Hu5NkANgIEIANBgICAgHg2AgAMVwsgBCABQQhqNgIgIARBAjYCPCAEQcTl2QA2AjggBEIBNwJEIARB2AM2AjAgBCAEQSxqNgJAIAQgBEEgajYCLCAEQRBqIARBOGoQihUgA0EIaiAEQRhqKAIANgIAIAMgBCkCEDcCAAxWCyADQT82AgggA0HU5dkANgIEIANBgICAgHg2AgAMVQsgA0E2NgIIIANBk+bZADYCBCADQYCAgIB4NgIADFQLIAQgAUEIajYCICAEQQI2AjwgBEGo59kANgI4IARCATcCRCAEQdgDNgIwIAQgBEEsajYCQCAEIARBIGo2AiwgBEEQaiAEQThqEIoVIANBCGogBEEYaigCADYCACADIAQpAhA3AgAMUwsgA0HGADYCCCADQbjn2QA2AgQgA0GAgICAeDYCAAxSCyADQSg2AgggA0H+59kANgIEIANBgICAgHg2AgAMUQsgBCABQQRqNgIgIARBAjYCPCAEQczo2QA2AjggBEIBNwJEIARBiQU2AjAgBCAEQSxqNgJAIAQgBEEgajYCLCAEQRBqIARBOGoQihUgA0EIaiAEQRhqKAIANgIAIAMgBCkCEDcCAAxQCyADQSE2AgggA0Hc6NkANgIEIANBgICAgHg2AgAMTwsgA0EWNgIIIANB/ejZADYCBCADQYCAgIB4NgIADE4LIANBFDYCCCADQZPp2QA2AgQgA0GAgICAeDYCAAxNCyADQR02AgggA0Gn6dkANgIEIANBgICAgHg2AgAMTAsgA0ExNgIIIANBxOnZADYCBCADQYCAgIB4NgIADEsLIANBMzYCCCADQfXp2QA2AgQgA0GAgICAeDYCAAxKCyAEIAFBCGo2AgwgBCABQRBqNgIgIARBAzYCPCAEQczq2QA2AjggBEICNwJEIARB2AM2AhwgBEHYAzYCFCAEIARBEGo2AkAgBCAEQSBqNgIYIAQgBEEMajYCECAEQSxqIARBOGoQihUgA0EIaiAEQTRqKAIANgIAIAMgBCkCLDcCAAxJCyAEIAFBCGo2AiAgBEECNgI8IARB/OrZADYCOCAEQgE3AkQgBEHYAzYCMCAEIARBLGo2AkAgBCAEQSBqNgIsIARBEGogBEE4ahCKFSADQQhqIARBGGooAgA2AgAgAyAEKQIQNwIADEgLIANBPzYCCCADQYzr2QA2AgQgA0GAgICAeDYCAAxHCyADQcUANgIIIANBy+vZADYCBCADQYCAgIB4NgIADEYLIANBJDYCCCADQZDs2QA2AgQgA0GAgICAeDYCAAxFCyADQSM2AgggA0G07NkANgIEIANBgICAgHg2AgAMRAsgA0ErNgIIIANB1+zZADYCBCADQYCAgIB4NgIADEMLIANBODYCCCADQYLt2QA2AgQgA0GAgICAeDYCAAxCCyADQc4ANgIIIANBuu3ZADYCBCADQYCAgIB4NgIADEELIAQgAUEIajYCICAEQQI2AjwgBEHA7tkANgI4IARCATcCRCAEQdgDNgIwIAQgBEEsajYCQCAEIARBIGo2AiwgBEEQaiAEQThqEIoVIANBCGogBEEYaigCADYCACADIAQpAhA3AgAMQAsgA0E6NgIIIANB0O7ZADYCBCADQYCAgIB4NgIADD8LIANBMjYCCCADQYrv2QA2AgQgA0GAgICAeDYCAAw+CyADQSM2AgggA0G879kANgIEIANBgICAgHg2AgAMPQsgA0EpNgIIIANB3+/ZADYCBCADQYCAgIB4NgIADDwLIANBOTYCCCADQYjw2QA2AgQgA0GAgICAeDYCAAw7CyADQdYANgIIIANBwfDZADYCBCADQYCAgIB4NgIADDoLIANBPzYCCCADQZfx2QA2AgQgA0GAgICAeDYCAAw5CyADQSo2AgggA0HW8dkANgIEIANBgICAgHg2AgAMOAsgA0ETNgIIIANBgPLZADYCBCADQYCAgIB4NgIADDcLIANBDTYCCCADQZPy2QA2AgQgA0GAgICAeDYCAAw2CyADQQ82AgggA0Gg8tkANgIEIANBgICAgHg2AgAMNQsgA0HTADYCCCADQa/y2QA2AgQgA0GAgICAeDYCAAw0CyADQcYANgIIIANBgvPZADYCBCADQYCAgIB4NgIADDMLIANBKTYCCCADQcjz2QA2AgQgA0GAgICAeDYCAAwyCyADQTI2AgggA0Hx89kANgIEIANBgICAgHg2AgAMMQsgA0EsNgIIIANBo/TZADYCBCADQYCAgIB4NgIADDALIANBMDYCCCADQc/02QA2AgQgA0GAgICAeDYCAAwvCyADQT02AgggA0H/9NkANgIEIANBgICAgHg2AgAMLgsgA0EeNgIIIANBvPXZADYCBCADQYCAgIB4NgIADC0LIANBMjYCCCADQdr12QA2AgQgA0GAgICAeDYCAAwsCyADQSY2AgggA0GM9tkANgIEIANBgICAgHg2AgAMKwsgA0EgNgIIIANBsvbZADYCBCADQYCAgIB4NgIADCoLIANBODYCCCADQdL22QA2AgQgA0GAgICAeDYCAAwpCyADQRw2AgggA0GK99kANgIEIANBgICAgHg2AgAMKAsgA0EiNgIIIANBpvfZADYCBCADQYCAgIB4NgIADCcLIANBOjYCCCADQcj32QA2AgQgA0GAgICAeDYCAAwmCyADQTM2AgggA0GC+NkANgIEIANBgICAgHg2AgAMJQsgA0HEADYCCCADQbX42QA2AgQgA0GAgICAeDYCAAwkCyAEIAFBCGo2AgwgBCABQRBqNgIgIARBAzYCPCAEQZz52QA2AjggBEICNwJEIARB2AM2AhwgBEHYAzYCFCAEIARBEGo2AkAgBCAEQSBqNgIYIAQgBEEMajYCECAEQSxqIARBOGoQihUgA0EIaiAEQTRqKAIANgIAIAMgBCkCLDcCAAwjCyADQTo2AgggA0G0+dkANgIEIANBgICAgHg2AgAMIgsgA0EuNgIIIANB7vnZADYCBCADQYCAgIB4NgIADCELIANBLTYCCCADQZz62QA2AgQgA0GAgICAeDYCAAwgCyAEIAFBCGo2AiAgBEECNgI8IARB+PrZADYCOCAEQgE3AkQgBEHYAzYCMCAEIARBLGo2AkAgBCAEQSBqNgIsIARBEGogBEE4ahCKFSADQQhqIARBGGooAgA2AgAgAyAEKQIQNwIADB8LIAQgAUEIajYCICAEQQI2AjwgBEHc+9kANgI4IARCATcCRCAEQdgDNgIwIAQgBEEsajYCQCAEIARBIGo2AiwgBEEQaiAEQThqEIoVIANBCGogBEEYaigCADYCACADIAQpAhA3AgAMHgsgBCABQQhqNgIgIARBAjYCPCAEQbz82QA2AjggBEIBNwJEIARB2AM2AjAgBCAEQSxqNgJAIAQgBEEgajYCLCAEQRBqIARBOGoQihUgA0EIaiAEQRhqKAIANgIAIAMgBCkCEDcCAAwdCyADQegANgIIIANBzPzZADYCBCADQYCAgIB4NgIADBwLIANB6AA2AgggA0G0/dkANgIEIANBgICAgHg2AgAMGwsgA0HEADYCCCADQZz+2QA2AgQgA0GAgICAeDYCAAwaCyADQdMANgIIIANB4P7ZADYCBCADQYCAgIB4NgIADBkLIANB1wA2AgggA0Gz/9kANgIEIANBgICAgHg2AgAMGAsgA0HaADYCCCADQYqA2gA2AgQgA0GAgICAeDYCAAwXCyADQRI2AgggA0HkgNoANgIEIANBgICAgHg2AgAMFgsgA0EZNgIIIANB9oDaADYCBCADQYCAgIB4NgIADBULIANBKTYCCCADQY+B2gA2AgQgA0GAgICAeDYCAAwUCyADQckANgIIIANBuIHaADYCBCADQYCAgIB4NgIADBMLIANBzgA2AgggA0GBgtoANgIEIANBgICAgHg2AgAMEgsgA0HXADYCCCADQc+C2gA2AgQgA0GAgICAeDYCAAwRCyADQT42AgggA0Gmg9oANgIEIANBgICAgHg2AgAMEAsgA0HqADYCCCADQeSD2gA2AgQgA0GAgICAeDYCAAwPCyADQeEANgIIIANBzoTaADYCBCADQYCAgIB4NgIADA4LIANBwwA2AgggA0GvhdoANgIEIANBgICAgHg2AgAMDQsgA0E1NgIIIANB8oXaADYCBCADQYCAgIB4NgIADAwLIAQgAUEIajYCICAEQQI2AjwgBEHkhtoANgI4IARCATcCRCAEQdgDNgIwIAQgBEEsajYCQCAEIARBIGo2AiwgBEEQaiAEQThqEIoVIANBCGogBEEYaigCADYCACADIAQpAhA3AgAMCwsgASgCDCgCAEEIaiEBDAELCyADQeEANgIIIANB9IbaADYCBCADQYCAgIB4NgIADAgLIANB7gA2AgggA0HVh9oANgIEIANBgICAgHg2AgAMBwtB5ezgAEEoQcTH2QAQ9BcACyAEQfzG2QA2AixBCAwDCyAEQYTH2QA2AixBCAwCCyAEQYzH2QA2AixBCQwBCyAEQZXH2QA2AixBDQshASAEQQI2AiQgBCABNgIwIARBAjYCPCAEQbTH2QA2AjggBEIBNwJEIAQgBEEsajYCICAEIARBIGo2AkAgBEEQaiAEQThqEIoVIANBCGogBEEYaigCADYCACADIAQpAhA3AgAMAQsCQCABKAIMIgZBA08EQCAEQSxqIgkgASgCCCIBIAZBAWsiBkHQz9kAQQMQ4wMgBEEBNgI8IARB2M/ZADYCOCAEQgE3AkQgBEECNgIkIAQgASAGQQN0ajYCICAEIARBIGo2AkAgBEEQaiAEQThqEIoVIAQoAhQhASAJIAQoAhgiBhD7HiAEQTRqKAIAIgkgBCgCMGogASAGEPsGGiAEQShqIAYgCWo2AgAgBCAEKQIsNwMgIAQoAhAgARDaKQwBCyAEQSBqIAEoAgggBkHgz9kAQQQQ4wMLIARBAjYCPCAEQYTQ2QA2AjggBEIBNwJEIARBBTYCMCAEIARBLGo2AkAgBCAEQSBqNgIsIARBEGogBEE4ahCKFSADQQhqIARBGGooAgA2AgAgAyAEKQIQNwIAIAQoAiAgBCgCJBDaKQsgBEHQAGokACAFQSRqIAIgCCAHIAUoAhwiASAFKAIgEOAOIAUtAABBNWsOBQIDAwMBAwsgAUEIahCzBgwDCyAFQSRqIAUoAgQgBSgCCEH5iNoAQSkQng4aDAELIAVBJGogBSgCBCAFKAIIQcOI2gBBNhCeDhoLIAAgBSkCJDcCACAAQQhqIAVBLGooAgA2AgAgBSgCGCIAQYCAgIB4RwRAIAAgARDaKQsgBRCzBgwBCyABEN0rCyAFQTBqJAALxgICA38BfiMAQRBrIgMkACACKAIsIQQgA0EIaiABIAIoAigiBUEAENUBAkACQAJAIAMtAAhBBEcEQCADKQMIIgZC/wGDQgRSDQELAkACQAJAIAVFDQAgA0EIaiABIAUQ1BwgAy0ACEEERg0AIAMpAwgiBkL/AYNCBFINAQsgA0EIaiABIAUgBCACKAI0IAIoAjgQjgQgAy0ACEEERg0BIAMpAwgiBkL/AYNCBFENASAAIAY3AgAMBAsgACAGNwIADAMLIANBCGogASACEJ8FIAMtAAhBBEcEQCADKQMIIgZC/wGDQgRSDQILAkACQCAERQ0AIANBCGogASAEENQcIAMtAAhBBEYNACADKQMIIgZC/wGDQgRSDQELIABBBDoAAAwDCyAAIAY3AgAMAgsgACAGNwIADAELIAAgBjcCAAsgA0EQaiQAC8ECAgF/AX4jAEEgayIDJAAgA0EYaiABIAIoAghBABDVAQJAAkACQAJAAkAgAy0AGEEERwRAIAMpAxgiBEL/AYNCBFINAQsgA0EANgIMIANBGGogASADQQxqQcqw4ABBARCyEyADLQAYQQRHBEAgAykDGCIEQv8Bg0IEUg0CCyADQRhqIAJBBGogARA3IAMtABhBBEcEQCADKQMYIgRC/wGDQgRSDQMLIANBGGogASADQQxqQc2w4ABBARCyEyADLQAYQQRHBEAgAykDGCIEQv8Bg0IEUg0ECyADQRhqIAIgARDCKgJAIAMtABhBBEcEQCADKQMYIgRC/wGDQgRSDQELIABBBDoAAAwFCyAAIAQ3AgAMBAsgACAENwIADAMLIAAgBDcCAAwCCyAAIAQ3AgAMAQsgACAENwIACyADQSBqJAAL3QUBBX8jAEEgayIDJAACQAJAAkAgARCwD0UEQAJAAkACQAJAAkACQAJAAkAgASgCAEEBaw4HAQIDBAUGBwALIAAgASgCIBCkAQwICyABQSBqIAAQuS0MBwsgASgCBCAAEJQPDAYLIAEoAgQgABCUDwwFCyABKAIEIgEoAiAgABCgICABKAJAQQR0IQIgASgCPCEEA0AgAgRAIAQgABDqHSACQRBrIQIgBEEQaiEEDAELCyABKAIsQThsIQQgASgCKCEFQQAhAgNAIAIgBEcEQAJAAkACQAJAAkACQAJAAkBBBCACIAVqIgEoAgBBBGsiBiAGQQdPG0EBaw4GAQIDBAUGAAsgAUEEaiAAEMwaIAFBGGooAgAgABCfICABQRxqKAIAIAAQoCAMBgsgAUEEaiAAEMwaIAFBGGooAgAgABCfICABQRxqKAIAIAAQoCAMBQsgAUEQaiAAELgtIAFBDGooAgAgABCfIAwECyABQQRqIAAQuC0gAUEQaigCACAAEJ8gDAMLIAFBMGogABC4LSABIAAQ8RcMAgsgAUEQaiAAELgtIAFBBGogABDMGiABQRxqKAIAIAAQnyAgAUEgaigCACAAEKAgDAELIAAgAUEUaigCACABQRhqKAIAELotCyACQThqIQIMAQsLDAQLIAAgASgCBCIBKAIAIgIgASgCBCIBEOgYIAAgAiABEL4KDAMLQcCR5AAoAgAiAkUNAyADQRRqIgAgAiABKAIEIgEoAhggASgCHEGg1OAAQTMQ4A4gABDHASAAEJ4LDAILQcCR5AAoAgAiAkUNAyADQRRqIgAgAiABKAIEIgEoAkggASgCTEHT1OAAQcQAEOAOIAAQxwEgABCeCwwBCyADQQhqIAEQtwogACADKAIIIAMoAgwQ6BggAyABELcKIAAgAygCACADKAIEEL4KCyADQSBqJAAPC0HMyeAAQcgAEIQrAAtBzMngAEHIABCEKwAL1QIBCn8jAEEwayICJAAgASgCgAYhBSACQRBqIAFBpANqIgQgASgC/AUiB0EAIAIQvRUgASgCuAMhCCABKAK0AyEJIAIoAhQhBiACKAIQIQoDQCACQQhqIAQgBSADIAsQvRUgAigCCCEDAkACQAJAAkAgCkUEQCADDQEgAkEYaiAEIAcgBRDKByACKAIYIgRBA0cNAiABKAKoAyABKAKsAyAFQcSSwAAQuB9BADYCDAwDCyADQQFGDQMLQeXs4ABBKEH0ksAAEPQXAAsgACACKQIcNwIEIABBFGogAkEsaigCADYCACAAQQxqIAJBJGopAgA3AgALIAAgBDYCACACQTBqJAAPCyACKAIMIQsgCSAIIAZB1JLAABC5HygAASEDIAkgCCALQeSSwAAQuR8gAzYAAUEBIQMgAiAEIAdBASAGEL0VIAIoAgQhBiACKAIAIQoMAAsAC8sCAQN/IwBBQGoiAiQAIAJBADYCOCACQQE2AiwgAkGgs8MANgIoIAJCBDcCMAJ/QQEgASgCFCIEIAEoAhgiASACQShqELUkDQAaIAJB/wE6ABIgAkEAOwEQA0AgAkEIaiACQRBqEOoSIAItAAhFBEAgAkEANgI4IAJBATYCLCACQZz02AA2AiggAkIENwIwIAQgASACQShqELUkDAILAkAgAi0ACSIDBEAgAkEANgI4IAJBATYCLCACQfjFwwA2AiggAkIENwIwIAQgASACQShqELUkDQELIAIgACADai0AADoAEyACQQI2AiwgAkGExsMANgIoIAJCAjcCNCACQbQBNgIgIAJBpwE2AhggAiADOgAnIAIgAkEUajYCMCACIAJBE2o2AhwgAiACQSdqNgIUIAQgASACQShqELUkRQ0BCwtBAQsgAkFAayQAC/4CAQF/IwBBkAFrIgIkACACQeDO4AA2AogBIAJBwN/DADYCgAEgAkHA38MANgJ4IAJBwN/DADYCcCACQfDfwwA2AmggAkHw38MANgJgIAJBwN/DADYCWCACQcDfwwA2AlAgAkGA4MMANgJIIAJB8N/DADYCQCACQfDfwwA2AjggAkHg38MANgIwIAJB0N/DADYCKCACQcDfwwA2AiAgAkHA38MANgIYIAJBsN/DADYCECACIAA2AkQgAiAAQcEAajYCfCACIABBQGs2AnQgAiAAQT9qNgJs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ACgCACICQQlHBEACQAJAAkACQAJAAkACQAJAAkAgAkEBaw4IAQIDBAUGBwgACyAAKAIMQcgAbCEEIAAoAgghAgNAIAQEQAJAAkACQAJAIAIpAwBCA30iB6dBAWpBACAHQgJUG0EBaw4CAQIACyABIAJBIGoQggkgAiABEOojDAILIAEgAkEQahCCCQwBCyABIAJBEGoQggkLIAJByABqIQIgBEHIAGshBAwBCwsgAEEcaiABEOgjDAkLIABBCGogARDRBwwICyAAKAIMQdAAbCEEIAAoAgghAgNAIAQEQAJAAkACQAJAQgIgAikDAEICfSIHIAdCAlobp0EBaw4CAQIACyACQQhqIAEQ6yMMAgsgASACQQhqEIIJDAELIAIgARDrIyACQSBqIAEQ6iMLIAJB0ABqIQIgBEHQAGshBAwBCwsgAEEcaiABEOgjDAcLAkACQCAAKAIIQQFrDgIBCAALIABBEGogARDBJwwHCyABIABBEGoQqhEMBgsgAEEEaiABEM0sDAULIABBEGogARDoIwwECyABIAAoAgRBKGoQggkMAwsgAEEEaiABEM0sDAILIAEgAEEQahCCCQUgAEEIaiABENcECwwACwALBSABIAJBCGoQggkgAigCICECDAELCwsgBUEQaiQAC7UCAQR/IAAoAghBOGwhAiAAKAIEIQMDQAJAIAEgAkcEQAJAAkACQAJAAkACQAJAQQQgASADaiIAKAIAQQRrIgQgBEEHTxtBAWsOBgECAwQFBgALIABBEGpCADcCACAAQQRqEKEbIABBGGoQgiggAEEcahCQJgwHCyAAQRBqQgA3AgAgAEEEahChGyAAQRhqEIIoIABBHGoQkCYMBgsgAEEEakIANwIAIABBEGoQjC4gAEEMahCCKAwFCyAAQQhqQgA3AgAgAEEEahCMLiAAQRBqEIIoDAQLIABBKGpCADcCACAAQTBqEIwuIAAQ1xkMAwsgAEEUakIANwIAIABBEGoQjC4gAEEEahChGyAAQRxqEIIoIABBIGoQkCYMAgsgAEEEahCFJAwBCw8LIAFBOGohAQwACwALvwIBA38jAEEgayICJAAgAAJ/AkACQAJAAkAgAUEoaiIDEOMNIgRFDQAgBCgCAEECRw0AIAQtAAhBAkcNACAELQAJQRdGDQELIAJBEGogAxCWCyACIAMQuBQgAkHo7d8ANgIMIAJBNDoACCACKAIAIAIoAgQgAkEIahCBFSEEIAMQ4w0iA0UNAiADKAIAQSRGDQEMAgsgASgCKCEDIAFBJTYCKCABIAEpA0A3A3ggAkEUaiABQTRqKQIANwIAIAJBHGogAUE8aigCADYCACACIAEpAiw3AgwgAiADNgIIIAJBCGoQxwogACABKQN4NwIEQQAMAgsgASABKQNANwN4IAEoAiggAUElNgIoQSRHBEBB5ezgAEEoQYDu3wAQ9BcACyABIAEoAiwQhgwLIAAgBDYCBEEBCzYCACACQSBqJAALowIBA38jAEEQayICJAAgAkEANgIMAn8gAUGAAU8EQCABQYAQTwRAIAFBgIAETwRAIAIgAUE/cUGAAXI6AA8gAiABQRJ2QfABcjoADCACIAFBBnZBP3FBgAFyOgAOIAIgAUEMdkE/cUGAAXI6AA1BBAwDCyACIAFBP3FBgAFyOgAOIAIgAUEMdkHgAXI6AAwgAiABQQZ2QT9xQYABcjoADUEDDAILIAIgAUE/cUGAAXI6AA0gAiABQQZ2QcABcjoADEECDAELIAIgAToADEEBCyEBIAAgACgCBCIDIAFrNgIEIAAgACgCACABIANLciIENgIAQQEhAyAERQRAIAAoAggiACgCFCACQQxqIAEgACgCGCgCDBEDACEDCyACQRBqJAAgAwvPAgECfyMAQUBqIgIkAAJAAkAgASgCAEUEQAJAIAEoAgxBAUcNACABKAIIIgEoAgAiAyABKAIERw0AIAJBADYCCCACIAMgAkEIahDkCSACKAIEIQEgAigCACACQQA2AhQgAkKAgICAEDcCDCACQQM6ADggAkEgNgIoIAJBADYCNCACQayvxAA2AjAgAkEANgIgIAJBADYCGCACIAJBDGo2AiwgASACQRhqEPUqDQMgACACKQIMNwIAIABBCGogAkEUaigCADYCAAwCCyAAQYCAgIB4NgIADAELAkAgASgCDEEBRw0AIAEoAggiAS0AACIDIAEtAAFHDQBBAUEBEKsgIQEgAEEBNgIIIAAgATYCBCAAQQE2AgAgASADOgAADAELIABBgICAgHg2AgALIAJBQGskAA8LQfy94ABBNyACQT9qQcSvxABBgL/gABDFDgAL2AIBAn8jAEEQayICJAACfwJAAkACQAJAAkACQAJAAkACQCAAKAIAIgNBB2tB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CHFqIA86AAAgDCAGQXRsaiIGIAAoAgAgCkF0bGpBDGsiCikAADcAACAGQQhqIApBCGooAAA2AAAgAkEBayECIBBCAX0gEIMhEAwACwALIAAgAUEQakHKARC2BAtBAAsaIAFBQGskAAwBCxCxGwALCyAFIAVBFGo2AhggBSAANgIcIAUgACgCACAAKAIEIBEgBUEYakHJARCnCCAAKAIAIQEgBSgCBCECAkAgBSgCAEUEQCABIAJBdGxqQQRrIAM2AgAgBUEMahD5HgwBCyABIAJqIgQtAAAhByAFKQIMIRAgBCARp0EZdiIEOgAAIAEgACgCBCACQQhrcWpBCGogBDoAACAAIAAoAgggB0EBcWs2AgggACAAKAIMQQFqNgIMIAEgAkF0bGoiAEEEayADNgIAIABBDGsgEDcCAAsgBUEgaiQAC8QCAQF/IwBBEGsiAiQAAn8CQAJAAkACQAJAAkACQAJAIAAoAgAiACgCAEEBaw4HAQIDBAUGBwALIAIgAEEIajYCDCABQYi73wBBBSACQQxqQYAEEMwKDAcLIAIgAEEIajYCDCABQY273wBBAiACQQxqQYEEEMwKDAYLIAIgAEEEajYCDCABQY+73wBBAyACQQxqQfADEMwKDAULIAIgAEEEajYCDCABQZK73wBBBSACQQxqQfEDEMwKDAQLIAIgAEEEajYCDCABQZe73wBBCyACQQxqQYIEEMwKDAMLIAIgAEEEajYCDCABQaK73wBBCyACQQxqQYMEEMwKDAILIAIgAEEEajYCDCABQa273wBBBiACQQxqQYQEEMwKDAELIAIgAEEEajYCDCABQbO73wBBCCACQQxqQYUEEMwKCyACQRBqJAALqQICA38BfiMAQYABayICJAAgAAJ/IAEtABRBAkYEQCACQQhqIAEoAgAiAUEgaikDADcDACACQRBqIAFBKGopAwA3AwAgAkEgaiIEIAFBCGopAwA3AwAgAiABKQMYNwMAIAIgASkDADcDGCABKQMQIQUgAkEoaiIDIAIQ4wdBwABBCBCrICADQcAAEPsGIQMgAkH4AGogBCkDADcCACAAQQA2AgggACADNgIoIAAgBTcDICACIAIpAxg3AnAgACACKQJsNwIMIABBFGogAkH0AGopAgA3AgAgAEEcaiACQfwAaigCADYCACABEJkrQRQMAQsgACABKQMA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QfADEMwKDAULIAIgAEEEajYCDCABQZK73wBBBSACQQxqQfEDEMwKDAQLIAIgAEEEajYCDCABQZe73wBBCyACQQxqQYIEEMwKDAMLIAIgAEEEajYCDCABQaK73wBBCyACQQxqQYMEEMwKDAILIAIgAEEEajYCDCABQa273wBBBiACQQxqQYQEEMwKDAELIAIgAEEEajYCDCABQbO73wBBCCACQQxqQYUEEMwKCyACQRBqJAALvgICCH8EfiMAQeAAayIDJAAgASgCDCIIIAEoAgQiBGtBBHYiAiAAKAIAIAAoAggiBWtLBEAgACAFIAJBCEHYABCbFwsgACgCBCAAKAIIIgZB2ABsaiECIANBMGohBwNAIAQgCEcEQCABIARBEGoiBTYCBCAEKQMAIQogA0EIaiIEEOQXIAMpAjwhCyADKQJEIQwgAykDKCENIANB2ABqIgkgB0EIaigCADYCACADIAcpAwA3A1AgBBDcFiACQShqIA03AgAgAkEYakIANwIAIAJBEGogCjcCACACQQhqQQA2AgAgAkEHNgIAIAJBMGogAykDUDcCACACQThqIAkoAgA2AgAgAkHEAGogDDcCACACQTxqIAs3AgAgAkHYAGohAiAGQQFqIQYgBSEEDAELCyAAIAY2AgggA0HgAGokAAujAgIEfwF+IwBBMGsiAiQAAkACQCABQShqEOMNIgMEQCADKAIAQQRGDQELIAJBEGogARCtASACKAIQQQVHBEAgACACKQMQNwMAIABBGGogAkEoaikDADcDACAAQRBqIAJBIGopAwA3AwAgAEEIaiACQRhqKQMANwMADAILIAAgAigCFDYCBCAAQQY2AgAMAQsgAkEQaiIFIAEQqgUgAikDECIGUEUEQCACIAIoAhwiAzYCDCACIAIoAhgiBDYCCCACIAY3AwAgAkG9vOAAQQsQ0hsEQCACQeAAOgAQIAEgBCADIAUQ2BkLIAAgAzYCFCAAIAQ2AhAgACAGNwMIIABBBTYCAAwBCyACKAIYIQEgAEEGNgIAIAAgATYCBAsgAkEwaiQAC7QCAQZ/IwBB0ABrIgIkACABKAIEIQMgASgCDCEGIAEoAhQhBQJAAkACQAJAAkADQCADIAZGDQQgAkEQaiIEIANBKBD7BhogASADQShqIgM2AgQgAigCEEEHRwRAIAJBCGogBBCQDCACKAIM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Ba1CIIaEQQIQviMMAQsgACADOgAkIAAgBzYCICAAQQI6ABQgACACIAEoAnwiASABIAJJGzYCHCAAIAIgASABIAJLGzYCGCAAIAStIAWtQiCGhDcDAAsgBkEgaiQAC7QCAQR/IwBBIGsiAyQAAkACQAJAA0ACQAJAIAEoAgBBAWsOBgMABAAFBQELIAEoAgQhAQwBCwsgAUEIahCqHEUNAiABKAIUIQIgASgCECEBIANBKToACCAAIAEgAiADQQhqENceDAILIAEoAgxBKGwhAiABKAIIIQEDQCACRQ0CIAEoAgBBB0cEQCAAIAEQjggLIAFBKGohASACQShrIQIMAAsACyABKAIMQThsIQIgASgCCCEBA0AgAkUNAUEoIQQCQAJAAkACQCABKAIAQQFrDgICAAELQQQhBAsgACABIARqKAIAEI4IDAELIAFBEGoQqhxFDQAgASgCHCEEIAEoAhghBSADQSk6AAggACAFIAQgA0EIahDXHgsgAUE4aiEBIAJBOGshAgwACwALIANBIGokAAuxAgIBfwF+IwBBIGsiAyQAAkACQAJAAkACQAJAAkACQCACQf8BcUEBaw4DAQIEAAsgA0EANgIQIANBCGogASADQRBqQYS74ABBBhCyEyADLQAIQQRGDQIgAykDCCIEQv8Bg0IEUQ0CIAAgBDcCAAwGCyADQQA2AhAgA0EIaiABIANBEGpBirvgAEEJELITIAMtAAhBBEYNASADKQMIIgRC/wGDQgRRDQEgACAENwIADAULIANBADYCECADQQhqIAEgA0EQakGTu+AAQQcQshMgAy0ACEEERg0AIAMpAwgiBEL/AYNCBFINAgsgA0EQaiABENARIAMtABBBBEYNACADKQMQIgRC/wGDQgRSDQILIABBBDoAAAwCCyAAIAQ3AgAMAQsgACAENwIACyADQSBqJAALpQICA38BfiMAQSBrIgMkACACKAIQIQQgA0EYaiABIAIoAgwiBUEAENUBAkACQAJAAkAgAy0AGEEERwRAIAMpAxgiBkL/AYNCBFINAQsgA0EANgIMIANBGGogASADQQxqQcqw4ABBARCyEyADLQAYQQRHBEAgAykDGCIGQv8Bg0IEUg0CCyADQRhqIAEgBSAEIAIoAgQgAigCCEGQ0gEQnQMgAy0AGEEERwRAIAMpAxgiBkL/AYNCBFINAwsg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AEEIagwPCyAAQRBqDA4LIABBCGoMDQsgAEEQagwMCyAAQQhqDAsLIABBCGoMCgsgAEEUagwJCyAAQRRqDAgLIABBCGoMBwsgAEEIagwGCyAAQQhqDAULIABBDGoMBAsgAEEIagwDCyAAQShqDAILIABBIGoMAQsgAEEIagsoAgALqgIBAn8jAEEQayICJAACfwJAAkACQAJAAkACQAJAQQQgACgCACIAKAIAQQRrIgMgA0EHTxtBAWsOBgECAwQFBgALIAIgAEEEajYCDCABQcyZ2QBBEyACQQxqQfACEMwKDAYLIAIgAEEEajYCDCABQd+Z2QBBGCACQQxqQfECEMwKDAULIAIgAEEEajYCDCABQfeZ2QBBEyACQQxqQfICEMwKDAQLIAIgAEEEajYCDCABQYqa2QBBESACQQxqQfMCEMwKDAMLIAIgADYCDCABQZua2QBBESACQQxqQfQCEMwKDAILIAIgAEEEajYCDCABQaya2QBBESACQQxqQfUCEMwKDAELIAIgAEEEajYCDCABQb2a2QBBECACQQxqQfYCEMwKCyACQRBqJAALlwICAn8BfiMAQSBrIgMkACABQRhqIQQCQAJAAkACQAJAIAEtACxBAkYEQCADQRBqIAQoAgAgAhCdCCADLQAQQQRGDQIgAykDECIFQv8Bg0IEUg0BDAILIANBEGogBCACEOQSIAMtABBBBEYNASADKQMQIgVC/wGDQgRRDQELIAVC/wGDQgRSDQELIANBADYCECADQQhqIAIgA0EQakGDtuAAQQEQshMgAy0ACEEERwRAIAMpAwgiBUL/AYNCBFINAgsgA0EQaiABIAIQlhMCQCADLQAQQQRHBEAgAykDECIFQv8Bg0IEUg0BCyAAQQQ6AAAMAwsgACAFNwIADAILIAAgBTcCAAwBCyAAIAU3AgALIANBIGokAAv/AQEGfyMAQYABayICJAAgAUEEaiEFIAJBOGohBgNAIAJBNGogARDEBQJAAkAgAigCNARAIAAgAikCNDcCACAAQRhqIAJBzABqKAIANgIAIABBEGogAkHEAGopAgA3AgAgAEEIaiACQTxqKQIANwIADAELIAEoAmAiAwRAIAJB5ABqIgQgAyABKAJkIgcoAgwRAAAgAigCZARAIAJBNGogASgCaCAEENACIAIoAjQiBA0DCyADIAcQtBsgAUEA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CyACQQhqIAEQmiIgAigCKCABEKoSCyAAQQxqIQAgA0EMayEDDAELCwuvCAIGfwF+AkACQAJAAkACQAJAAkACQAJAIAAoAgBBAWsOBwECAwQFBgcACyAAQgA3AxAgACgCIBCXBA8LIABCADcDECAAQSBqEI0uDwsgACgCBBC5Kg8LIAAoAgQQuSoPCyAAKAIEEJITDwsgACgCBCIAQgA3AxAgAEIANwMAIABBIGoQkCYgAEEkahDxAw8LIAAoAgQiAEIANwMYIABCADcDCCAAKAIoQTBsIQEgACgCJCEDQQAhAANAIAAgAUYNAiAAIANqIgJBEGpCADcCACACQSBqQgA3AgAgAkEoaiICKAIABEAgAhCMLgsgAEEwaiEADAALAAsgACgCBCIAQgA3A0ggAEIANwMQIAAtAEVBA0YNACAAQSBqIQEDQCABLQAlQQJGBEACQCABQgA3AgwgASgCBCIAIAEoAghBOGxqIQYDQAJAAkACQAJAAkACQAJAIAAgBkcEQCAAQThqIQIgACgCACIBQQlGDQECQAJAAkAgAUEBaw4IAQIKCQgHBgUACyAAQgA3AhQgACgCDEHIAGwhBCAAKAIIIQVBACEBA0AgASAERwRAAkACQAJAAkAgASAFaiIDKQMAQgN9IgenQQFqQQAgB0ICVBtBAWsOAgECAAsgA0EoakIANwIAIANBOGpCADcCACADEIgkDAILIANBGGpCADcCACADQQhqQgA3AgAMAQsgA0EYakIANwIAIANBCGpCADcCAAsgAUHIAGohAQwBCwsgACgCEEIANwMIIABBHGoQkSYgAiEADAoLIABCADcCMCAAQQhqEOUIIAIhAAwJCyAAQgA3AhAgACgCDEHQAGwhBCAAKAIIIQVBACEBA0ACQCABIARHBEACQAJAAkBCAiABIAVqIgMpAwBCAn0iByAHQgJaG6dBAWsOAgECAAsgA0EYakIANwIAIANBKGpCADcCAAwDCyADQRBqQgA3AgAMAgsgA0EQakIANwIAIANBQGtCADcCACADQSBqEIgkDAELIAAoAhgiAQRAIAFCADcCCAsgAEEcahCRJiACIQAMCgsgAUHQAGohAQwACwALDAgLIABBCGoQjAQgAiEADAYLIABCADcCGCAAQgA3AgggAiEADAULIABCADcCCCAAQQRqEIwuIAIhAAwECyAAKAIE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AgAgASAAKALEASADayIDNgIEIABBwAFqA0ACQCACIANPDQAgASgCACACai0AAEECdEGAtdkAaigCACIDRQ0AIAEgAxEFACEDIAEoAgghAiADRQ0AIAEgAiADaiICNgIIIAEoAgQhAwwBCwsgAS0ADCEDIAIQ6yggA0EBRgRAIABBAToAvQELIAFBEGokACAAKALAASIBIAAoAsQBRwR/IAEtAABBO0cgBnEFIAYLQQFxIQkjAEFAaiIBJAACQCAAKAIAQQFHDQAgASAAQcABaiALIAQQ0RUgASgCACECAkAgASgCBCIDQQJrIgYEQCADQQJJDQEgAiAGaiwAAEG/f0wNAQsgAEEEaiEDIAAoAugBQQhqIAIgBhCEGiEMIAEgByAEIAQgB0kbNgIUIAEgByAEIAQgB0sbNgIQIAFBAToAGCABIAw3AwggACgCwAEgACgCxAEQqxwaIAlFBEAgAUEoaiABQRBqKQMANwMAIAFBMGogAUEYaikDADcDACABQQE6ADwgASABKQMINwMgIAEgACgCqAE2AjggAyABQSBqEOAQDAILIAMgAUEIahDVEgwBCyACIANBACAGQdzs2AAQ1CYACyABQUBrJAAMAgsgAEEBOgC9AQwCCyAAKALYASEBIAhBGjoACCAAKALcASAALQCCAiABIAEgCEEIahDDEQsgCEEgaiQADAELIAEQsBUgBEEqRiECDAELCwwACwALrwIBAX8jAEHwAGsiAiQAIAAoAgAhACACQbSv2QA2AmggAkGggNkANgJgIAIgAEE0ajYCXCACQaCA2QA2AlggAiAAQTNqNgJUIAJBoIDZADYCUCACIABBMmo2AkwgAkHYgdkANgJIIAIgAEEwajYCRCACQciB2QA2AkAgAiAAQSRqNgI8IAJBoIDZADYCOCACIABBMWo2AjQgAkG4gdkANgIwIAIgAEEgajYCLCACQbiA2QA2AiggAiAAQRxqNgIkIAJBhIbZADYCICACIAA2AhwgAkGkr9kANgIYIAIgAEEYajYCFCACQbie2gA2AhAgAiAAQRBqNgIMIAIgAEE1ajYCbCACIAJB7ABqNgJkIAFBlYTZAEELQZSG2QBBDCACQQxqQQwQzwggAkHwAGokAAuZAgIIfwF+IwBBIGsiAiQAAkAgASgCBCIDRQRAIABBCGpByKDjACkDADcCACAAQcCg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AkACQAJAAkACQCADIAZqIgIoAgAiBEEEa0EAIARBBWtBCEkbQQFrDggABQECBQUDBAULIAJBCGogARC0IgwECyACQQhqIAEQtCIgAkE8aiABEJImIAJBMGogARDAGgwDCyACQSRqIAEQkiYgAkEsaiABEMAaDAILIAJBBGogARC+GgwBCyACQQhqIgQoAgBBBUcEQCAEIAEQtCILIAJBPGogARCSJiACQTBqIAEQwBoLIANB2ABqIQMMAQsLIABBMGogARCSJgvoAQIFfwF+IAEoAgwgAUEMaygCAEkEQCMAQRBrIgNBCGogAUEIaigCADYCACADIAEpAgA3AwAgAUEkayECIAEpAhAhByABKAIMIQQCfwJAA0AgAiIBQTRqIAFBHGopAgA3AgAgAUEsaiABQRRqKQIANwIAIAFBJGoiBSABQQxqIgYiAikCADcCACAAIAJGDQEgAUEYayECIAQgASgCAEkNAAsgBiECIAUMAQsgAUEMaiECIAFBJGoLIQEgAiADKQMANwIAIAJBCGogA0EIaigCADYCACABQQhrIAc3AgAgAUEMayAENgIACwv+AQEBfyMAQUBqIgYkACAGQRBqIAIgAyAEIAVBqJfAABDsFiAGKAIQIQUgBigCFCECIAZCATcCKAJAAkACQCACIAEoAkAiA08EQCAGQQhqIAEgBkEoaiAFIAIgASgCPCADIAEoAjARCwAgBigCCEEBcQ0BCyAAQQA2AgAgACAGKQIcNwIEIABBDGogBkEkaigCADYCAAwBCyAGKAIMIARqIgEgA2oiAiABSQ0BIABBADYCDCAAIAI2AgggACABNgIEIABBATYCAAsgBkFAayQADwsgBkEANgI4IAZBATYCLCAGQeigwwA2AiggBkIENwIwIAZBKGpB8KDDABDDHQALggIBB38jAEEQayIDJAAgAigCBCEEIAEoAgQhBSACLQAMIQggAS0ADCEJAkACQAJAIAEoAggiBgRAIAIoAggiBw0BCyADQQhqQfyu4AAoAgA2AgAgA0H0ruAAKQIANwMADAELIAdBAUYEQCADQQhqIAFBCGooAgA2AgAgAyABKQIANwMAIAMgBCgCABDMByAEIQUgAiEBDAILIAZBAUYEQCADQQhqIAJBCGooAgA2AgAgAyACKQIANwMAIAMgBSgCABDMBwwCCyADIAUgBiAEIAcQ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aiABEJMjDwsgAEEIaiABEJQjDwsgACgCBCABEOwTDwsgACgCBCABEOwTDwsgASAAKAIEIgApAwAgAEEQaigCABCPGyAAKAIoQTBsIQIgACgCJEEoaiEAA0AgAkUNAiAAQShrKAIARQRAIAEgAEEgaykDACAAQRBrKAIAEI8bCyAAKAIABEAgACABENUsCyACQTBrIQIgAEEwaiEADAALAAsgACgCBCIAKAIARQRAIAEgACkDCCAAQRhqKAIAEI8bCyAALQBFQQNGDQAgAEEgaiEAA0AgAC0AJUECRgRAAkAgACgCCEE4bCECIAAoAgQhAANAIAJFDQEgACABEJkHIAJBOGshAiAAQThqIQAMAAsACwUgASAAKQMIIAAoAhgQjxsgACgCICEADAELCwsL1wIBAX8CQAJAAkACQAJAAkACQCAAKAIAQQFrDgcBAgMGBgQFAAsgAEEgaiABEPEFDwsgAEEgaiABEI4tDwsgACgCBCABEPMTDwsgACgCBCABEPMTDwsgASAAKAIEIgApAwAgAEEQaigCABCzHSAAKAIoQTBsIQIgACgCJEEoaiEAA0AgAkUNAiAAQShrKAIARQRAIAEgAEEgaykDACAAQRBrKAIAELMdCyAAKAIABEAgACABEIotCyACQTBrIQIgAEEwaiEADAALAAsgACgCBCIAKAIARQRAIAEgACkDCCAAQRhqKAIAELMdCyAALQBFQQNGDQAgAEEgaiEAA0AgAC0AJUECRgRAAkAgACgCCEE4bCECIAAoAgQhAANAIAJFDQEgACABEKYDIAJBOGshAiAAQThqIQAMAAsACwUgASAAKQMIIAAoAhgQsx0gACgCICEADAELCwsL9wEBA38jAEEgayICJAAgAkEQaiABEIgBIAIoAhQhAwJAAkACQCACKAIQRQRAIAMoAgBBLUYEQCAAIAMpAgQ3AgAgAygCAEEtRg0DIAMQ3gQMAwsgAS0A+AJBAkcNASABQShqEOMNIgRFDQEgBCgCAEEURw0BIAQtAARBBEcNASACIAM2AhwgAkEIaiABEPABIAIoAgwhASACKAIIRQRAIAAgATYCBCAAIAM2AgAMBAsgAEEANgIAIAAgATYCBCACQRxqELgpDAMLIABBADYCACAAIAM2AgQMAgsgAEEANgIEIAAgAzYCAAwBCyADEI0rCyACQSBqJAAL7wEC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NgIIIAAgBzYCBCAAIAk2AgAgBEEQaiQADwsAC+gBAQF/AkACQAJAAkACQAJAIAEoAgBBAWsOBgECAwQFBQALIAAgAUEIahCxDg8LIAEoAgxBKGwhAiABKAIIIQEDQCACRQ0EIAEoAgBBB0cEQCAAIAEQogoLIAFBKGohASACQShrIQIMAAsACyABQQRqIAAQ6S0PCyABKAIMQThsIQIgASgCCCEBA0AgAkUNAgJAAkACQAJAIAEoAgBBAWsOAgECAAsgAUEoaiAAEOIrDAILIAAgAUEQahCxDgwBCyABQQRqIAAQ6S0LIAFBOGohASACQThrIQIMAAsACyABQQRqIAAQ4isLC+oBAQF/IwBB0ABrIgMkACAAQQA2AjggAEIANwIwIABBADYCFCAAQoCAgIDAADcCDCADQcwAakEAOwEAIAAgASkCADcCACAAIAIpAgA3AhggAEEIaiABQQhqKAIANgIAIABBIGogAkEIaikCADcCACAAQShqIAJBEGopAgA3AgAgA0EANgJAIANCADcCOCADQgQ3AhggA0IANwIQIANCgICAgIABNwIIIANCADcCRCADQYCAgIB4NgIgIABBxABqQQA7AQAgAEIANwI8IANBCGoQ/CYgA0EUahDuJiADQSBqEPskIANB0ABqJAAL1wECCH8CfiMAQeAAayIDJAAgASgCECEEIAEoAgwhBSABKAIIIQYCQCABKQMAIgpCA4NQBEAgCqdBCGsiAiACKAIAIgJBAWo2AgAgAkEASA0BCyABLQAUIQcCQCABKAIYIgJFBEBBACEBDAELEPciIQEgAikCBCELEPAiIANBCGoiCSACKAIAEKgBIAlB2AAQ+wYhAiABIAs3AgQgASACNgIACyAAIAE2AhggACAHOgAUIAAgBDYCECAAIAU2AgwgACAGNgIIIAAgCjcDACADQeAAaiQADwsAC9QBAQF/IwBBIGsiBiQAIANBAXFFBEAgAUEoahDeIBoLIAYgASADIAQgBUEAQQAQcEEDIQMgBigCACEEAkAgBi0AFCIFQQNGBEAgACAENgIEDAELIAAgBikCBDcCDCAAIAYvABU7AB0gAEEUaiAGQQxqKQIANwIAIABBH2ogBkEXai0AADoAACAAIAYoAhg2AiAgACAFOgAcIAAgBDYCCCAAIAIgASgCfCIBIAEgAkkbNgIsIAAgAiABIAEgAksbNgIoQQEhAwsgACADNgIAIAZBIGokAAu+AQEGfyAAKAIAIgRBBGogBC8BMiIFQQFqIgcgACgCCCIDIAEQvhUgA0EBaiEAIARBNGohASADQQJqIgggBUECaiIGSQRAIAEgCEECdGogASAAQQJ0aiAFIANrQQJ0ENotGgsgASAAQQJ0aiACNgIAIAQgBzsBMiAGIAAgACAGSRshAiADQQJ0IARqQThqIQEDQCAAIAJGRQRAIAEoAgAiAyAAOwEwIAMgBDYCACABQQRqIQEgAEEBaiEADAELCwvBAQEEfyMAQSBrIgIkACABKAKABiEDIAJBCGoiBCABQaQDaiIFIAEoAvwFQQEQwAYCQCACKAIIIgFBA0YEQCAEIAUgA0EBEMAGIAIoAggiAUEDRgRAQQMhAQwCCyAAIAIpAgw3AgQgAEEUaiACQRxqKAIANgIAIABBDGogAkEUaikCADcCAAwBCyAAIAIpAgw3AgQgAEEUaiACQRxqKAIANgIAIABBDGogAkEUaikCADcCAAsgACABNgIAIAJBIGokAAvQAQEHfyACIAAoAgQgACgCABDhGSEDIABBDEEIIAIgACgCDCAAKAIIEOEZIgQbaiEFIAIgAEEIQQwgBBtqIgYgACADQQFzQQJ0aiIEIAUgAiAFKAIAIAAgA0ECdGoiACgCABDhGSIDGyACIAYoAgAgBCgCABDhGSICGyIHKAIAIAAgBSAEIAIbIAMbIggoAgAQ4RkhCSABIAUgACADGygCADYCACABIAcgCCAJGygCADYCBCABIAggByAJGygCADYCCCABIAQgBiACGygCADYCDAvNAQEIfwJAAkAgACgCACICQYCAgIB4RiABKAIAIgNBgICAgHhGckUEQCAAKAIIIgIgASgCCEcNAiACQQFqIQUgACgCBEEIaiECIAEoAgRBCGohAwNAIAVBAWsiBUUNAiADQQRrIQYgAkEEayADKAIAIQggAigCACEJIAJBDGohAiADQQxqIQMoAgAgCSAGKAIAIAgQ6x8NAAsMAgsgAkGAgICAeEcgA0GAgICAeEdyDQELIAAoAgwgASgCDEYgACgCECABKAIQRnEhBAsgBAv4AQECfyMAQTBrIgIkAAJAIAApAwBC////////////AINCgICAgICAgPj/AFoEQCACQQE2AhQgAkGE+OAANgIQIAJCATcCHCACQfUBNgIsIAIgADYCKCACIAJBKGo2AhggASgCFCABKAIYIAJBEGoQtSQhAwwBCyACQQA6AAwgAiABNgIIQQEhAyACQQE2AhQgAkGE+OAANgIQIAJCATcCHCACQfUBNgIsIAIgADYCKCACIAJBKGo2AhggAkEIaiACQRBqEO8kDQAgAi0ADEUEQCABKAIUQd+F2ABBAiABKAIYKAIMEQMADQELQQAhAwsgAkEwaiQAIAMLyAECAn8BfiABQRRsIQEDQCABBEAgACgCDCAAQRBqKAIAIAIQ0CggAiAAKAIEIAAoAggQ7wggAiACKAI4QQFqNgI4IAIgAikDMEL/ASACKAI8IgNBA3RBOHGthoQiBTcDMCAAQRRqIQAgAgJ/QQggA2siBEEBTQRAIAIgAikDGCAFhTcDGCACEJoLIAIpAzAhBSACQv8BIARBA3StiDcDMCACIAUgAikDAIU3AwAgA0EHawwBCyADQQFqCzYCPCABQRRrIQEMAQsLC/QBAAJAAkACQAJAAkACQAJAAkAgACgCAEEBaw4HAgMEBQYHAAELIAAoAgQiABCMICAALQBFQQNHBEAgAEEgahCoHQsgABCYKw8LIAApAwgQ+RogAEEgahDkKA8LIAApAwgQ+RogACgCIBDaHQ8LIAAoAgQQlCsPCyAAKAIEEOAoDwsgACgCBCIAKQMIEPkaIAAoAiAQ3SggAEE4ahDvJiAAQSRqEPEmIABByABBCBDVEQ8LIAAoAgQiACkDCBD5GiAAKAIgEN0oIABBJGoQuwUgAEEwQQgQ1REPCyAAKAIEIgApAwAQ+RogAEEgahCCJyAAEJkrC/YBAQF/IwBB0ABrIgIkACAAKAIAKAIAIQAgAkGso9kANgJIIAJBnKPZADYCQCACIABBOGo2AjwgAkGMo9kANgI4IAIgAEE0ajYCNCACQfyi2QA2AjAgAiAAQTxqNgIsIAJB7KLZADYCKCACIABBMGo2AiQgAkHcotkANgIgIAIgAEEMajYCHCACQcyi2QA2AhggAiAANgIUIAJBpK/ZADYCECACIABBLGo2AgwgAkG4ntoANgIIIAIgAEEkajYCBCACIABBGGo2AkwgAiACQcwAajYCRCABQYi73wBBBUHwo9kAQQkgAkEEakEJEM8IIAJB0ABqJAAL3AEBA38gACgCCEEMbCEDIAAoAgQhAANAIAMEQAJAIAAoAgAEQCAAIAEQ1SwMAQsCQAJAAkACQAJAAkBBBCAAKAIEIgIoAgBBBWsiBCAEQQZPG0EBaw4FAQIDBAUACyABIAIpAwggAkEYaigCABCPGwwFCyABIAJBCGoQ+SEgAkEoaiABENUsDAQLIAEgAikDECACQSBqKAIAEI8bIAJBKGogARDVLAwDCyACQQhqIAEQwyUMAgsgAiABEJgeDAELIAJBCGogARDEJwsgAEEMaiEAIANBDGshAwwBCwsL9AEAAkACQAJAAkACQAJAAkACQCAAKAIAQQFrDgcCAwQFBgcAAQsgACgCBCIAEIwgIAAtAEVBA0cEQCAAQSBqEKgdCyAAEJgrDwsgACkDCBD5GiAAQSBqELspDwsgACkDCBD5GiAAKAIgEOgdDwsgACgCBBCUKw8LIAAoAgQQ4CgPCyAAKAIEIgApAwgQ+RogACgCIBDdKCAAQThqEO8mIABBJGoQ8SYgAEHIAEEIENURDwsgACgCBCIAKQMIEPkaIAAoAiAQ3SggAEEkahC8BSAAQTBBCBDVEQ8LIAAoAgQiACkDABD5GiAAQSBqEIInIAAQmSsL2wEAIABBIEkEQEEADwsgAEH/AEkEQEEBDwsgAEGAgARPBEAgAEGAgAhPBEAgAEHg//8AcUHgzQpHIABB/v//AHFBnvAKR3EgAEHA7gprQXpJcSAAQbCdC2tBcklxIABB8NcLa0FxSXEgAEGA8AtrQd5sSXEgAEGAgAxrQZ50SXEgAEHQpgxrQXtJcSAAQYCCOGtBsMVUSXEgAEHwgzhJcQ8LIABB6P3AAEEsQcD+wABB0AFBkIDBAEHmAxDkBg8LIABB9oPBAEEoQcaEwQBBogJB6IbBAEGpAhDkBgvdAQEBfyMAQRBrIgckACAHIAAoAhQgASACIAAoAhgoAgwRAwA6AAwgByAANgIIIAdBADoADSAHQQA2AgQgB0EEaiADIAQQkgggBSAGEJIIKAIAIgFBAEcgBy0ADCICciEAAkAgAUUgAkEBcXINAAJAIAFBAUcEQCAHKAIIIQIMAQsgBygCCCECIActAA1FDQAgAi0AHEEEcQ0AQQEhACACKAIUQb644ABBASACKAIYKAIMEQMADQELIAIoAhRB4KHjAEEBIAIoAhgoAgwRAwAhAAsgB0EQaiQAIABBAXELygEBA38jAEEgayIBJAACQCACKAIQIgQgAigCFCIFTQRAIABBBGohACACKAIAQQFrQQJPBEAgAUEUaiIGIAAgAigCCCACKAIMIAQgBRCABiABQQRqIAYQ/hsMAgtBACEFAkAgBCACKAIMTw0AIAAtAAAgAigCCCAEai0AAEcNACABIAQ2AhhBASEFIAEgBEEBajYCHAsgASAFNgIUIAFBBGogAUEUahD+GwwBCyABQQA2AgQLIAEoAgRBAUYEQCADEMcVCyABQSBqJAALwwEBBH8jAEEQayIDJAAgA0EIaiAAIAIQoQ0gAygCCCEEAkAgAy0ADCIFQQNGBEAgBCECDAELIAJBDGwhACAFQQFGIQYDQCAABEAgA0EIaiICIAQoAgAgBhCBISACEOYYIgINAiABQQRqKAIAIAFBCGooAgAgBCgCABCAKyICDQIgAUEMaiEBIANBBDoACCAAQQxrIQBBACEGQQIhBSADQQhqEOYYIgJFDQEMAgsLIAQoAgAgBRCQGCECCyADQRBqJAAgAgvzAQEBfyMAQdAAayICJAAgACgCACEAIAJBtK/ZADYCSCACQaCA2QA2AkAgAiAAQS5qNgI8IAJBoIDZADYCOCACIABBLWo2AjQgAkHYgdkANgIwIAIgAEExajYCLCACQaCA2QA2AiggAiAAQSxqNgIkIAJByITZADYCICACIABBMGo2AhwgAkG4hNkANgIYIAIgAEEoajYCFCACQaiB2QA2AhAgAiAANgIMIAJBuJ7aADYCCCACIABBIGo2AgQgAiAAQS9qNgJMIAIgAkHMAGo2AkQgAUGghdkAQQtB2ITZAEEJIAJBBGpBCRDPCCACQdAAaiQAC/MBAQF/IwBB0ABrIgIkACAAKAIAIQAgAkG0r9kANgJIIAJBoIDZADYCQCACIABBIGo2AjwgAkGggNkANgI4IAIgAEEfajYCNCACQdiB2QA2AjAgAiAAQRxqNgIsIAJBoIDZADYCKCACIABBHmo2AiQgAkHIhNkANgIgIAIgAEEdajYCHCACQbiE2QA2AhggAiAAQRhqNgIUIAJBhIbZADYCECACIAA2AgwgAkG4ntoANgIIIAIgAEEQajYCBCACIABBIWo2AkwgAiACQcwAajYCRCABQYiE2QBBDUHYhNkAQQkgAkEEakEJEM8IIAJB0ABqJAAL9QEBAX8jAEHQAGsiAiQAIAAoAgAhACACQfSw2QA2AkggAkGMo9kANgJAIAIgAEE8ajYCPCACQfyi2QA2AjggAiAAQcUAajYCNCACQfyi2QA2AjAgAiAAQcQAajYCLCACQayl2QA2AiggAiAAQRhqNgIkIAJBpK/ZADYCICACIABBOGo2AhwgAkG4ntoANgIYIAIgAEEwajYCFCACQcyi2QA2AhAgAiAAQQxqNgIMIAJBnKXZADYCCCACIAA2AgQgAiAAQUBrNgJMIAIgAkHMAGo2AkQgAUGEptkAQQhBvKXZAEEJIAJBBGpBCRDPCCACQdAAaiQAC98BAQF/AkACQAJAAkACQAJAAkACQAJAIAEoAgBBAWsOBwECAwQFBgcACyABKAIgIgJBKGohASACQSRqIQIMBwsgASgCICICQTRqIQEgAkEwaiECDAYLIAEoAgQiAkEQaiEBIAJBDGohAgwFCyABKAIEIgJBEGohASACQQxqIQIMBAsgASgCBCICQQRqIQEMAwsgASgCBCICQQRqIQEMAgsgASgCBCICQRxqIQEgAkEYaiECDAELIAEoAgQiAkHMAGohASACQcgAaiECCyAAIAEoAgA2AgQgACACKAIANgIAC90BAQF/IwBBEGsiEyQAIAAoAhQgASACIAAoAhgoAgwRAwAhASATQQA6AA0gEyABOgAMIBMgADYCCCATQQhqIAMgBCAFIAYQ8wYgByAIIAkgChDzBiALIAwgDSAOEPMGIA8gECARIBIQ8wYhASATLQANIgIgEy0ADCIDciEAAkAgA0EBcSACQQFHcg0AIAEoAgAiAC0AHEEEcUUEQCAAKAIUQY/Y1gBBAiAAKAIYKAIMEQMAIQAMAQsgACgCFEGjteAAQQEgACgCGCgCDBEDACEACyATQRBqJAAgAEEBcQu5AQEFfyADQfj///8BcQRAIAAgACADQQN2IgNB8ABsIgVqIAAgA0HEAWwiBGogAxC5CiEAIAEgASAFaiABIARqIAMQuQohASACIAIgBWogAiAEaiADELkKIQILIAAoAgQiBCABKAIEIgZJIAAoAgAiAyABKAIAIgVJIAMgBUYbIgcgBCACKAIEIghJIAMgAigCACIESSADIARGG0YEfyACIAEgByAGIAhJIAQgBUsgBCAFRhtzGwUgAAsLyQEBA38jAEEQayIDJAAgAEEIaiEAAkADQCABQQNNBEACQCABQQFLDQAMAwsFIAAoAAAgA0EEIAAgAUGIytgAEJIdIAJBBXdzQbnz3fF5bCECIAMoAgQhASADKAIAIQAMAQsLIAAvAAAgA0EIakECIAAgAUH4ydgAEJIdIAJBBXdzQbnz3fF5bCECIAMoAgwhASADKAIIIQALIAEEQCAALQAAIAJBBXdzQbnz3fF5bCECCyADQRBqJAAgAkEFd0H/AXNBufPd8XlsrQu/AQEGfyABQeAAahDYHwJAAkAgAkUNACABKAJoIQYgASgCbCIFIQEDQCABIANrQQFNBEAgAyAFTw0CIAYgA0ECdGooAgAiAyADKAIAIgFBAWo2AgAgAUEATg0DAAsgBSABIANqQQF2IgRNBEAgBCAFQaDC2AAQrBAABSADIAQgBiAEQQJ0aigCACgCYCACSyIIGyEDIAQgASAIGyEBDAELAAsAC0EAIQMLEOEeIAAgAyACIAMbNgIEIAAgA0U2AgALzQEBAn8jAEEgayIDJAAgA0EMaiAAIAIgAREEAAJ/IAMoAgxBgICAgHhHBEAgAygCECICIAMoAhRBGGxqIQQCQANAIAIgBEYNAQJAIAItABBFDQAgAkEYaiADIAIQlAwgAyADKAIAIgE2AhggAyABIAMoAgRqNgIcA0ACQCADQRhqEN0aIgFBCmsOBAIBAQIACyABQajAAGtBAkkNASABQYCAxABHDQALIQIMAQsLIANBDGoQ/iJBAQwCCyADQQxqEP4iC0EACyADQSBqJAALhwIBAX8CQAJAAkACQAJAAkACQAJAIAAoAgBBAWsOBwIDBAAABQYBCwALIABBADoAHCAAKAIgEKgDDwsgAEEAOgAcIAAoAiAQ8AYPCyAAKAIEEOAUDwsgACgCBBDgFA8LIAAoAgQiAEEAOgAUIAAoAihBMGwhASAAKAIkQShqIQADQCABRQ0CIABBKGsoAgBFBEAgAEEMa0EAOgAACyAAKAIABEAgABD9LQsgAUEwayEBIABBMGohAAwACwALIAAoAgQiACgCAEUEQCAAQQA6ABwLIAAtAEVBA0YNACAAQSBqIQADQCAALQAlQQJGBEAgABDhAgUgAEEAOgAcIAAoAiAhAAwBCwsLC90BAQR/IwBBEGsiBCQAAkAgACgCHCIFIAAoAiAiAyABEMIOIgZFDQAgBCAFIAMgBkEBa0Hww+AAEOcfIgY2AgwgBSADIAJBAWsQwg4iAiADQQFrRg0AIAUgAyACQQFqQYDE4AAQ5x8iAi0AIEEBRw0AAkACQCACKAIAIgNBCWsOAwECAQALAkAgA0ERaw4EAQICAAILIAItAAQiAkEOS0EBIAJ0QYCwAXFFcg0BCyAEQQxqQajE4AAQxipFBEAgACABQTsQmxgMAQsgACAGKAIYQTsQmxgLIARBEGokAAvSAQEEfyABLQAYBEAgAAJ/IAEoAhQiAgRAIAAoAhwgACgCICACKAIEQQFrEMIODAELIAAoAhwgACgCICABKAIQENMPCxClHgsgASgCCEE4bCEEIAEoAgQhBUEAIQIDQAJAIAIgBEcEQAJAAkACQCACIAVqIgMoAgBBAWsOAgECAAsgA0EIaiAAEMEiIANBKGogABC7LQwDCyAAIANBEGoQuxQgA0EwaiAAELAmDAILIANBBGogABCZKAwBCyABKAIUIAAQnyAPCyACQThqIQIMAAsAC7kBAQV/IANB+P///wFxBEAgACAAIANBA3YiA0GgAWwiBWogACADQZgCbCIEaiADEMAKIQAgASABIAVqIAEgBGogAxDACiEBIAIgAiAFaiACIARqIAMQwAohAgsgACgCHCIEIAEoAhwiBkkgACgCGCIDIAEoAhgiBUkgAyAFRhsiByAEIAIoAhwiCEkgAyACKAIYIgRJIAMgBEYbRgR/IAIgASAHIAYgCEkgBCAFSyAEIAVGG3MbBSAACwvBAQEJfyAAIAAoAgQiAyAAKAIAIgVJQQJ0aiICIABBDEEIIAAoAgwgACgCCEkiBhtqIgQgACADIAVPQQJ0aiIDIABBCEEMIAYbaiIAKAIAIAMoAgBJIgUbIAQoAgAiByACKAIAIghJIgIbIgYoAgAhCSAAIAMgBCACGyAFGyIEKAIAIQogASAHIAggAhs2AgAgASAEIAYgCSAKSyICGygCADYCBCABIAYgBCACGygCADYCCCABIAMgACAFGygCADYCDAvJAQEBfyMAQTBrIgIkAAJ/IAAtAARBAUYEQCACIAAtAAU6AAcgAkECNgIcIAJBxPnAADYCGCACQgI3AiQgAiAArUKAgICA8ACENwMQIAIgAkEHaq1CgICAgJAIhDcDCCACIAJBCGo2AiAgASgCFCABKAIYIAJBGGoQkgQMAQsgAkEBNgIcIAJBgPrAADYCGCACQgE3AiQgAiAArUKAgICA8ACENwMIIAIgAkEIajYCICABKAIUIAEoAhggAkEYahCSBAsgAkEwaiQAC8gBAQl/IwBBIGsiAyQAIANBADYCHCADIAE2AhQgAyABNgIMIAMgAjYCECADIAEgAmoiBDYCGCADQRRqIQcgASECAkADQCAEIQggAiEJIAMgBxC3EyADKAIEIgVBgIDEAEYNASADKAIAIQogAygCFCECIAMoAhghBCAFQQlrIgtBF01BAEEBIAt0QZ+AgARxGw0AIAVBgAFPBEAgBRD9Dg0BCwsgCCAKaiAEIAlqayACaiEGCyAAIAY2AgQgACABNgIAIANBIGokAAvGAQEDfyMAQSBrIgEkAAJAIAIoAhAiBCACKAIUIgVNBEAgAigCAEEBa0ECTwRAIAFBFGoiBiAAIAIoAgggAigCDCAEIAUQ+A0gAUEEaiAGEP4bDAILQQAhBQJAIAQgAigCDE8NACAAIAIoAgggBGotAABqLQAAQQFHDQAgASAENgIYIAEgBEEBajYCHEEBIQULIAEgBTYCFCABQQRqIAFBFGoQ/hsMAQsgAUEANgIECyABKAIEQQFGBEAgAxDHFQsgAUEgaiQAC9oBAgN/AX4jAEEwayICJAAgASgCFCEEIAEpAgQhBSABKAIQIQMgAkEQaiABELkRIAIgAzYCICACIAU3AhggAiACKQMQNwIoIAIgAyAEQQN0ajYCJCACQQhqIAJBGGoQyA0gAigCCCIBRQRAQYyIxAAQ4CkACyACKAIMIQMgACACKQIYNwIYIAAgATYCMCAAQgQ3AhAgAEIANwIIIABCgICAgMAANwIAIABBKGogAkEoaikCADcCACAAQSBqIAJBIGopAgA3AgAgACABIANBA3RqNgI0IAJBMGokAAu+AQECfwJAAkACQAJAAkACQAJAAkBBECAAKAIAIgFBAmsiAiACQSNPGw4iAQICAgICAgICAgICAgICAgMCAgICAgICAgcHBgQGBwICBQALIABBBGoQ/yIPCyAALQAIIgFBBU0gAUEBR3ENACAAKQMQEPkaCw8LIAApAxAQ+RogAUUEQAwDCyAAQQRqEP8iDwsgACgCEBDBIwwBCyAAKQMIEPkaDwsgACkDCBD5Gg8LIAApAwgQ+RogACkDEBD5Ggu+AQECfwJAAkACQAJAAkACQAJAAkBBECAAKAIAIgFBAmsiAiACQSNPGw4iAQICAgICAgICAgICAgICAgMCAgICAgICAgcHBgQGBwICBQALIABBBGoQnSMPCyAALQAIIgFBBU0gAUEBR3ENACAAKQMQEPkaCw8LIAApAxAQ+RogAUUEQAwDCyAAQQRqEJ0jDwsgACgCEBDBIwwBCyAAKQMIEPkaDwsgACkDCBD5Gg8LIAApAwgQ+RogACkDEBD5GgvPAQIBfwF+IwBBIGsiAyQAIANBEGogASACKAIEQQAQ1QECQAJAAkAgAy0AEEEERwRAIAMpAxAiBEL/AYNCBFINAQsgA0EQaiACIAEQwiogAy0AEEEERwRAIAMpAxAiBEL/AYNCBFINAgsgA0EANgIQIANBCGogASADQRBqQYew4ABBARCyEwJAIAMtAAhBBEcEQCADKQMIIgRC/wGDQgRSDQELIABBBDoAAAwDCyAAIAQ3AgAMAgsgACAENwIADAELIAAgBDcCAAsgA0EgaiQAC80BAgF/AX4jAEEgayIDJAAgA0EQaiABIAIQlhMCQAJAAkAgAy0AEEEERwRAIAMpAxAiBEL/AYNCBFINAQsgA0EANgIQIANBCGogAiADQRBqQeS14ABBARCyEyADLQAIQQRHBEAgAykDCCIEQv8Bg0IEUg0CCyADQRBqIAFBEGogAhCWEwJAIAMtABBBBEcEQCADKQMQIgRC/wGDQgRSDQELIABBBDoAAAwDCyAAIAQ3AgAMAgsgACAENwIADAELIAAgBDcCAAsgA0EgaiQAC9cBAgR/AX4jAEEgayIBJAAgACgCBCIDBEAgACgCACECAkAgACgCDCIARQ0AIAIpAwAhBSABIAA2AhggASACNgIQQQEhBCABIAIgA2pBAWo2AgwgASACQQhqNgIIIAEgBUJ/hUKAgYKEiJCgwIB/gzcDAANAIARFDQEgARDwDiEAIAEgASgCGEEBayIENgIYIABFDQEgAEEYaykDABD5GiAAQQhrKQMAEPkaDAALAAsgAUEYIANBAWoQ1A4gAiABKAIIayABKAIAIAEoAgQQuiQLIAFBIGokAAvgAQEDfyMAQSBrIgIkAAJAAkADQCACQRhqIAEQ7g8gAigCHCIDQYCAxABGBEAgASgCFCIEIAEoAhAiA0kNAiAAQQA2AgAMAwsCQCADQSBGIgNFBEAgAS0AGEEBcQ0BCyABIAM6ABgMAQsLIAJBEGogASgCDCABKAIQIAEoAhQgAigCGCIDQdTl4AAQ9g0gACACKAIQIAIoAhQQ6xAgAUEAOgAYIAEgAzYCFAwBCyACQQhqIAEoAgwgAyAEQcTl4AAQuxMgACACKAIIIAIoAgwQ6xAgASADNgIUCyACQSBqJAAL1gEBAX8jAEEQayIFJAAgBSAAKAIUIAEgAiAAKAIYKAIMEQMAOgAMIAUgADYCCCAFQQA6AA0gBUEANgIEIAVBBGogAyAEEJIIKAIAIgFBAEcgBS0ADCICciEAAkAgAUUgAkEBcXINAAJAIAFBAUcEQCAFKAIIIQIMAQsgBSgCCCECIAUtAA1FDQAgAi0AHEEEcQ0AQQEhACACKAIUQb644ABBASACKAIYKAIMEQMADQELIAIoAhRB4KHjAEEBIAIoAhgoAgwRAwAhAAsgBUEQaiQAIABBAXELuAEBA38jAEEQayICJAACQAJAIAJBBGoCfyABQQhPBEAgAUH/////AUsNAkF/IAFBA3RBB25BAWtndkEBagwBC0EEQQggAUEESRsLIgEQ5A4gAigCBCIDRQ0AIAIoAgwhBCADIAIoAggQ8iAiA0UNASADIARqQf8BIAFBCGoQjQshAyAAIAFBAWsiBDYCBCAAIAM2AgAgACAEIAFBA3ZBB2wgAUEJSRutNwIIIAJBEGokAA8LELIbCwALwgEBB38jAEEQayIDJAACQCAAKAIIIgFFBEBBACEBDAELIAFBAnQiBCAAKAIEIgVqQQRrKAIADQAgBUEEayEGIAEhBQJAA0AgBSECIARFBEBBACECDAILIAJBAWshBSAEIAZqIARBBGshBCgCAEUNAAsgASACSQ0BCyAAIAI2AgggAiEBCwJAIAEgACgCAEECdk8NACADQQhqIAAgARCXDyADKAIIIgBBgYCAgHhGDQAgACADKAIMEOEpAAsgA0EQaiQAC/QBAQF/IwBB0ABrIgIkACACQbCQwwA2AkggAkGgkMMANgJAIAJBkJDDADYCOCACQYCQwwA2AjAgAkHwj8MANgIoIAJB4I/DADYCICACQdCPwwA2AhggAkHAj8MANgIQIAJBsI/DADYCCCACIAA2AjwgAiAAQdQKajYCNCACIABBuApqNgIsIAIgAEGgCmo2AiQgAiAAQZgNajYCHCACIABBlA1qNgIUIAIgAEGQCmo2AgwgAiAAQZANajYCBCACIABBnA1qNgJMIAIgAkHMAGo2AkQgAUGYkcMAQQRB0JDDAEEJIAJBBGpBCRDPCCACQdAAaiQAC8ABAQF/IwBBEGsiBSQAIAUgBDYCDCAFIAM2AggCfwJAIAJFDQBBACEEA0AgAkEBTQRAIAVBCGogASAEQQR0aiIBKAIAIAFBBGooAgAQtCNB/wFxDQIgASgCDCEEIAEoAggMAwUgBCACQQF2IgMgBGoiBCAFQQhqIAEgBEEEdGoiBCgCACAEQQRqKAIAELQjQf8BcUEBRhshBCACIANrIQIMAQsACwALQQALIQIgACAENgIEIAAgAjYCACAFQRBqJAALyAECCH8BfiMAQUBqIgIkACABKAIEIQggAiABKAIIIgVBCEE4EPsUIAIoAgAiBiAFQf////8BcSIBIAEgBksbIQNBACEBIAIoAgQhBwNAIAMEQCABIAhqIgRBKGopAgAhCiACQQhqIgkgBBDfBCACIARBMGoQ9yQ2AjggAiAKNwMwIAIgBEE0ai0AADoAPCABIAdqIAlBOBDaLRogA0EBayEDIAFBOGohAQwBCwsgACAFNgIIIAAgBzYCBCAAIAY2AgAgAkFAayQAC8MBAQN/IwBBMGsiAiQAIAEoAgQhAyABKAIAIQQgAiABQQhqEIUeAkAgAS0ANEEDRgRAIAJBAzoALAwBCyACQRhqIAFBIGoQnAwLIAFBOGoQoA8hASAAIAM2AgQgACAENgIAIAAgATYCOCAAIAIpAwA3AwggAEEQaiACQQhqKQMANwMAIABBGGogAkEQaikDADcDACAAIAIpAxg3AyAgAEEoaiACQSBqKQMANwMAIABBMGogAkEoaikDADcDACACQTBqJAAL4gECA38BfiMAQUBqIgIkACAAKAIwEL4RIQMgAkE0aiAAQTRqKAIANgIAIAJBADoAKCACQRhqQcig4wApAwAiBTcDACACQQhqIAU3AwAgAiAANgIgIAIgAzYCJCACQQE6ADkgAiAAKQIsNwIsIAIgAC0APDoAPCACIAAvATo7ATogAkHAoOMAKQMAIgU3AxAgAiAFNwMAIAAtADghBCACIAAtAD06AD0gAiAEOgA4AkAgASgCAEUEQCADIAFBGGoQmSEgAiABQQRqEKoLDAELIAEgAhD3AQsgAhCBKSACQUBrJAALsAIBAX8CQAJAAkACQAJAAkACQCAAKAIAQQFrDgcBAgMGBgQFAAsgAEEANgIYIAAoAiAQkAYPCyAAQQA2AhggACgCIBCwEw8LIAAoAgQQ2hQPCyAAKAIEENoUDwsgACgCBCIAQQA2AhAgACgCKEEwbCEBIAAoAiRBKGohAANAIAFFDQIgAEEoaygCAEUEQCAAQRBrQQA2AgALIAAoAgAEQCAAEOstCyABQTBrIQEgAEEwaiEADAALAAsgACgCBCIAKAIARQRAIABBADYCGAsgAC0ARUEDRg0AIABBIGohAANAIAAtACVBAkYEQAJAIAAoAghBOGwhASAAKAIEIQADQCABRQ0BIAFBOGshASAAEOcFIABBOGohAAwACwALBSAAQQA2AhggACgCICEADAELCwsL3QEBAn8jAEEgayICJAAgACgCACEAIAEoAhRB1eDgAEEHIAEoAhgoAgwRAwAhAyACQQA6AAUgAiADOgAEIAIgATYCAAJAIAAoAggiAUH+////B00EQCAAIAFBAWo2AgggAiAAQQhqNgIMIAIgAEEMajYCCCACQdzg4ABBBSACQQhqQaMFEPMGGiACKAIMIgAgACgCAEEBazYCAAwBCyACQQA2AhggAkEBNgIMIAJB7ODgADYCCCACQgQ3AhAgAkHc4OAAQQUgAkEIakGkBRDzBhoLIAIQqxAgAkEgaiQAC7QBAQJ/IwBBIGsiAyQAIAEgASACaiICSwRAQQBBABDhKQALQQggACgCACIBQQF0IgQgAiACIARJGyICIAJBCE0bIgRBAEgEQEEAQQAQ4SkACyADIAEEfyADIAE2AhwgAyAAKAIENgIUQQEFQQALNgIYIANBCGogBCADQRRqEJUSIAMoAghBAUYEQCADKAIMIAMoAhAQ4SkACyADKAIMIQEgACAENgIAIAAgATYCBCADQSBqJAALxgEBAn8jAEEwayICJAACQCABKAIAQYCAgIB4RgRAIAAQ0SQgAEGAgICAeDYCAAwBCyABKAIIIQMgAUEANgIIIAJBADYCFCACIAE2AgwgAiADNgIQIAIgASgCBCIBNgIEIAIgASADQQR0ajYCCCAAKAIAQYCAgIB4RgRAIAJBBGoQxRIMAQsgAkEoaiACQRRqKAIANgIAIAJBIGogAkEMaikCADcDACACIAIpAgQ3AxggACACQRhqEIYIIAAQ0CQLIAJBMGokAAu/AQEDfyMAQSBrIgEkAAJAIAIoAhAiAyACKAIUIgRNBEAgAEEEaiEAIAIoAgBBAWtBAk8EQCABQRRqIgUgACACKAIIIAIoAgwgAyAEEIAGIAFBBGogBRD+GwwCC0EAIQQCQCADIAIoAgxPDQAgAC0AACACKAIIIANqLQAARw0AIAEgAzYCGEEBIQQgASADQQFqNgIcCyABIAQ2AhQgAUEEaiABQRRqEP4bDAELIAFBADYCBAsgASgCBCABQSBqJAALywEBAn8jAEFAaiIEJAAgBCADNgIQIAQgAjYCDCACIANBAWpNIAEoAgwiBSADT3FFBEAgBEECNgIYIARBkLTgADYCFCAEQgI3AiAgBEEHNgI4IARBrwE2AjAgBCAFNgI8IAQgBEEsajYCHCAEIARBPGo2AjQgBCAEQQxqNgIsIARBFGpBxKDDABDDHQALIAEgAzYCBCABIAI2AgAgAEEQaiABQRBqKAIANgIAIABBCGogAUEIaikCADcCACAAIAEpAgA3AgAgBEFAayQAC9gBAQF/IwBBEGsiAiQAAn8CQAJAAkACQAJAIAAoAgAiACgCAEEBaw4EAQIDBAALIAIgAEEIajYCDCABQc6T2QBBByACQQxqQbkDEMwKDAQLIAIgAEEEajYCDCABQZmU2QBBECACQQxqQboDEMwKDAMLIAIgAEEEajYCDCABQamU2QBBDiACQQxqQbsDEMwKDAILIAIgAEEEajYCDCABQayh2QBBCiACQQxqQeACEMwKDAELIAIgAEEEajYCDCABQbah2QBBCyACQQxqQeECEMwKCyACQRBqJAALzwEBAn8jAEEgayIFJAACQCABKAIAQYCAgIB4RgRAIAAgASkCBDcCACAAQQhqIAFBDGooAgA2AgAMAQsgBUEIahDYIkE4QQQQqyAiBEGg2+AANgIAIAQgAzYCICAEIAI2AhwgBCAFKQIINwIEIARBDGogBUEQaikCADcCACAEQRRqIAVBGGopAgA3AgAgBCABKQIANwIkIARBLGogAUEIaikCADcCACAEQTRqIAFBEGooAgA2AgAgAEGAgICAeDYCACAAIAQ2AgQLIAVBIGokAAvQAgEJfyMAQRBrIgUkACAFQQhqIAAoAgAiCEEIakGEo+MAEL8dIAUoAgwhCSAFKAIIIgIoAgwiBCACKAIAIgNGBEAgAigCACEGIAIQvBcgAigCCCIKIAYgAigCDCIDa0sEQAJAIAYgCmsiByADIAdrIgRLIAIoAgAiAyAGayAET3FFBEAgAigCBCIEIAMgB2siA0ECdGogBCAKQQJ0aiAHQQJ0ENotGiACIAM2AggMAQsgAigCBCIDIAZBAnRqIAMgBEECdBD7BhoLCyACKAIMIQQgAigCACEDCyACIARBAWo2AgwgAigCBCACKAIIIARqIgIgA0EAIAIgA08ba0ECdGogATYCACAJIAkoAgBBAWo2AgAgCC0AHCEBIAhBAToAHAJAIAENACAALQAURQRAIAAoAhAgACgCDBAkEMwmDAELIAAoAgwQJQsgBUEQaiQAC6MCAQV/IwBBEGsiASQAAkACQAJAAkACQCAALQAgQQFrDgMDAAIBCwALIAAgACkCADcCFCAAQRxqIABBCGooAgA2AgALIAAtABxFDQFBjIfAABClGwALQeyBwAAQpRsACyABQQhqIAAoAhQgACgCGBBDIAEoAgwhBCABKAIIIQIgAEEBOgAcIABBFGoQ0iIgAEEQQQwgAhtqKAIAIwBBEGsiAiQAQYABIAQQFCEDIAJBCGoQ+RcgAigCDCEFIAEgAigCCCIGNgIAIAEgBSADIAYbNgIEIAJBEGokACABKAIEIAEoAgBBAXEEQEHZhsAAQTEQzCoACxDMJkGAARDMJiAEEMwmIAAoAgwQzCYgACgCEBDMJiAAQQE6ACAgAUEQaiQAQQALsgEBBH8gACgCACIBIAAoAgRGBEBBgIDEAA8LIAAgAUEBajYCACABLQAAIgPAQQBIBH8gACABQQJqNgIAIAEtAAFBP3EhAiADQR9xIQQgA0HfAU0EQCAEQQZ0IAJyDwsgACABQQNqNgIAIAEtAAJBP3EgAkEGdHIhAiADQfABSQRAIAIgBEEMdHIPCyAAIAFBBGo2AgAgBEESdEGAgPAAcSABLQADQT9xIAJBBnRycgUgAwsL3gEBAX8jAEEQayICJAACfwJAAkACQAJAIAAoAgAoAgAiAC0AAEEBaw4DAQIDAAsgAiAAQQRqNgIMIAFB37PDAEEEQeOzwwBBBCAAQQFqQR1BhJfYAEEGIAJBDGpBJhCXCwwDCyACIABBBGo2AgwgAUHns8MAQQZBhJfYAEEGIAJBDGpBJhDHCwwCCyACIABBBGo2AgwgAUHts8MAQQ9B/LPDAEEDIAJBDGpBJhDHCwwBCyACIABBBGo2AgwgAUH/s8MAQRNBkrTDAEEEIAJBDGpBgAEQxwsLIAJBEGokAAu9AQEDfyMAQRBrIgIkAAJAIAMoAhAiBCADKAIUIgVNBEAgAygCAEEBa0ECTwRAIAJBBGoiBiABQQRqIAMoAgggAygCDCAEIAUQxwUgACAGEP4bDAILQQAhBQJAIAQgAygCDE8NACADKAIIIARqLQAAIgMgAS0ABEcEQCABLQAFIANHDQELIAIgBDYCCEEBIQUgAiAEQQFqNgIMCyACIAU2AgQgACACQQRqEP4bDAELIABBADYCAAsgAkEQaiQAC7oBAQF/IwBBEGsiBSQAIAUgBDYCDCAFIAM2AghBACEEAn8DQCACQQFNBEACQCAFQQhqIAEgBEEEdGoiASgCACABQQRqKAIAELQjQf8BcUUNAEEADAMLBSAEIAJBAXYiAyAEaiIEIAVBCGogASAEQQR0aiIEKAIAIARBBGooAgAQtCNB/wFxQQFGGyEEIAIgA2shAgwBCwsgASgCDCEEIAEoAggLIQIgACAENgIEIAAgAjYCACAFQRBqJAALtQEBBX8jAEEgayIDJAAgA0EIaiACQQRBCBD7FCADQQA2AhwgAyADKQMINwIUIANBFGogAhCGHyADKAIcIQQgAyACBH8gAiAEaiADKAIYIARBA3RqIQQDQCAEQQRqIAEoAgAiBSABQQRqKAIAIgYgBSAGSxs2AgAgBCAFIAYgBSAGSRs2AgAgAUEIaiEBIARBCGohBCACQQFrIgINAAsFIAQLNgIcIAAgA0EUahDKEyADQSBqJAALxQEBBX8jAEEwayICJAAgASgCJCEDIAEoAiAhBCABKAIcIQUgASgCGCEGAn8gASgCAEUEQCACQSBqIAFBCGoQ1SEgAkEYaiACQShqKQMANwIAIAIgAikDIDcCEEEADAELIAJBDGogAUEEahD5IkEBCyEBIAAgAzYCJCAAIAQ2AiAgACAFNgIcIAAgBjYCGCAAIAE2AgAgACACKQIMNwIEIABBDGogAkEUaikCADcCACAAQRRqIAJBHGooAgA2AgAgAkEwaiQAC8MBAQZ/IAAgARDEIiAAKAJEIgIgACgCSEEGdGohBgNAIAIgBkcEQCACQUBrIQUgAigCAEEHRgRAIAEtACghByABQQE6ACggAigCOEEMbCEEIAIoAjQhAwNAIAQEQCADIAEQvS0gBEEMayEEIANBDGohAwwBCwsgAkEIaiEDAkAgAi0AHEECRwRAIAEgAxDQGAwBCyADIAEQuCYLIAEgBzoAKCAFIQIMAgUgASACENgeIAUhAgwCCwALCyAAQSBqIAEQmCQLugEBBn8CQCAAKAIAQQFHDQAgACgCBCIDRQ0AIAAoAgghBQNAIANBBGohAiADLwEyIgdBAnQhAEF/IQQCQAJAA0AgAEUEQCAHIQQMAgsgAigCACEGIARBAWohBCAAQQRrIQAgAkEEaiECAkBBfyABIAZHIAEgBkkbQf8BcQ4CAAECCwtBACEADAELIAVFBEBBASEADAELIAVBAWshBSADIARBAnRqQTRqKAIAIQMMAQsLIABBAXMhAgsgAgvSAQEBfyMAQRBrIg8kACAAKAIUIAEgAiAAKAIYKAIMEQMAIQEgD0EAOgANIA8gAToADCAPIAA2AgggD0EIaiADIAQgBSAGEPMGIAcgCCAJIAoQ8wYgCyAMIA0gDhDzBiEBIA8tAA0iAiAPLQAMIgNyIQACQCADQQFxIAJBAUdyDQAgASgCACIALQAcQQRxRQRAIAAoAhRBj9jWAEECIAAoAhgoAgwRAwAhAAwBCyAAKAIUQaO14ABBASAAKAIYKAIMEQMAIQALIA9BEGokACAAQQFxC6UBAQR/IAFFBEBBAA8LIAFBA3EhBAJAIAFBBEkEQAwBCyAAIQIgAUF8cSIFIQEDQCADIAIsAABBv39KaiACQQFqLAAAQb9/SmogAkECaiwAAEG/f0pqIAJBA2osAABBv39KaiEDIAJBBGohAiABQQRrIgENAAsLIAQEQCAAIAVqIQIDQCADIAIsAABBv39KaiEDIAJBAWohAiAEQQFrIgQNAAsLIAMLugEBBH8gASgCACICKAJQIQMCQCADAn9BASABEMEMIgRBgAFJDQAaQQIgBEGAEEkNABpBA0EEIARBgIAESRsLIANqIgRNBEAgAigCWCIDQX9GDQEgAigCVCEFIAEQwQwhASAAIAQ2AgwgAEEIaiACQdAAaiICQQhqKAIANgIAIAAgAikCADcCACAAQQEgA0EBaiABQQpGIgEbNgIUIAAgASAFajYCEA8LQcChxAAQ4CkAC0HQocQAEOApAAu7AQEDfyMAQSBrIgEkAAJAIAIoAhAiAyACKAIUIgRNBEAgAigCAEEBa0ECTwRAIAFBFGoiBSAAIAIoAgggAigCDCADIAQQ+A0gAUEEaiAFEP4bDAILQQAhBAJAIAMgAigCDE8NACAAIAIoAgggA2otAABqLQAAQQFHDQAgASADNgIYIAEgA0EBajYCHEEBIQQLIAEgBDYCFCABQQRqIAFBFGoQ/hsMAQsgAUEANgIECyABKAIEIAFBIGokAAvEAQECfyMAQfAAayIEJAACQCABKAIAQYKAgIB4RgRAIABBIjYCACAAIAEpAgQ3AgQgAEEcaiABQRxqKQIANwIAIABBFGogAUEUaikCADcCACAAQQxqIAFBDGopAgA3AgAMAQsgBCABQTgQ+wYiAUHIAGogARC4HiIFQRBqKQIANwMAIAFBQGsgBUEIaikCADcDACABIAUpAgA3AzggAUEDNgJUIAAgAiADIAFBOGogAUHUAGoQmg8gARDpIgsgBEHwAGokAAvTAQECfwJAIAEoAgAiBC0AFCIDQQJGIANBAXFyRQRAIAItAB1FIAItABxBBEZxIAIoAgAiA0GAAklxRQRAIAAgAzYCCCAAQQA6AAQgAEGAgICAeDYCAA8LIAPAIgNBAE4NASAELQAXRQRAIAAgAzoABSAAQQE6AAQgAEGAgICAeDYCAA8LIAAgASgCBCABKAIIIAJBBGpBARDkGA8LIABBADoABCAAQYCAgIB4NgIAIAAgAigCADYCCA8LIAAgAzYCCCAAQQA6AAQgAEGAgICAeDYCAAu7AQECfwJAAkACQAJAIAFBBGtB/wFxQQNPBEACQCAAKAIAIgJBEGsOAgIDAAsgAkEbRw0EIAAoAghBA0cNBCABQf8BcUUgACkDGEIAU3EPCyAAEIgIIQMMAwsCQAJAIAAtABAOAgEABAsgAUH/AXFBAUcNAwwCCyABQf8BcQ0CDAELIAAtABEhAiAALQAQRQRAIAJBAXFFIAFB/wFxQQFHcg0CDAELIAJBAXFFIAFB/wFxcg0BC0EBDwsgAwu8AQEBfyAAQShqIQICQAJAIAAtAKACQQJHDQAgAhDKDSIABEAgACgCAEEIRg0CCyACEMoNIgBFDQAgACgCAEETRg0BCwJAIAIQyg0iAEUNACAAKAIAQRVHDQAgAC0ABEUNAQsgAhDKDSIABEAgACgCAEEORg0BCyACEMoNIQACQAJAIAFFBEAgAA0BQQAPC0EBIQEgAEUNASAAKAIAQT5xQQ5GDQEgAhCIIQ8LIAAoAgBBD0YhAQsgAQ8LQQEL0wEBAX8jAEEQayICJAACfwJAAkACQAJAAkAgACgCAEEBaw4EAQIDBAALIAIgAEEIajYCDCABQcyu4ABBBSACQQxqQd4DEMwKDAQLIAIgAEEIajYCDCABQait2QBBAyACQQxqQd8DEMwKDAMLIAIgAEEIajYCDCABQcCT2QBBAyACQQxqQeADEMwKDAILIAIgAEEEajYCDCABQa2y2QBBCCACQQxqQeEDEMwKDAELIAIgAEEIajYCDCABQcOT2QBBBiACQQxqQeIDEMwKCyACQRBqJAALzgECBH8BfiMAQSBrIgEkACAAKAIEIgMEQCAAKAIAIQICQCAAKAIMIgBFDQAgAikDACEFIAEgADYCGCABIAI2AhBBASEAIAEgAiADakEBajYCDCABIAJBCGo2AgggASAFQn+FQoCBgoSIkKDAgH+DNwMAA0AgAEUNASABEI4PIQQgASABKAIYQQFrIgA2AhggBEUNASAEQRBrKQMAEPkaDAALAAsgAUEQQQggA0EBahDmDSACIAEoAghrIAEoAgAgASgCBBC6JAsgAUEgaiQAC84BAgR/AX4jAEEgayIBJAAgACgCBCIDBEAgACgCACECAkAgACgCDCIARQ0AIAIpAwAhBSABIAA2AhggASACNgIQQQEhACABIAIgA2pBAWo2AgwgASACQQhqNgIIIAEgBUJ/hUKAgYKEiJCgwIB/gzcDAANAIABFDQEgARDFDyEEIAEgASgCGEEBayIANgIYIARFDQEgBEEIaykDABD5GgwACwALIAFBCEEIIANBAWoQ5g0gAiABKAIIayABKAIAIAEoAgQQuiQLIAFBIGokAAu1AQEHfyMAQUBqIgUkACABQThsIAAoAghBOGwiAWshAyAAKAIEIAFqIQQgAigCBCEBIAIoAgwhBgNAAkAgA0UgASAGRnJFBEAgAiABQThqIgc2AgQgASgCACIIQQpHDQELIAVBQGskACADRQ8LIAVBDGoiCSABQQRqQTQQ+wYaIAQgCDYCACAEQQRqIAlBNBD7BhogACAAKAIIQQFqNgIIIANBOGshAyAHIQEgBEE4aiEEDAALAAu8AQEBfyAAQShqIQICQAJAIAAtAPgCQQJHDQAgAhDjDSIABEAgACgCAEEIRg0CCyACEOMNIgBFDQAgACgCAEETRg0BCwJAIAIQ4w0iAEUNACAAKAIAQRVHDQAgAC0ABEUNAQsgAhDjDSIABEAgACgCAEEORg0BCyACEOMNIQACQAJAIAFFBEAgAA0BQQAPC0EBIQEgAEUNASAAKAIAQT5xQQ5GDQEgAhC7IQ8LIAAoAgBBD0YhAQsgAQ8LQQELwwEBBX8gACgCACAAKAIEIAEQtCYgACgCRCICIAAoAkhBBnRqIQYDQCACIAZHBEAgAkFAayEDIAIoAgBBB0YEQCACKAI4QQxsIQQgAigCNCEFA0AgBARAIAUoAgAgARCYLiAEQQxrIQQgBUEMaiEFDAELCyACLQAcQQJHBEAgAkEIaiABEKMjIAMhAgwDCyACKAIIIAEQmS4gAigCDCABEJguIAMhAgwCBSACIAEQmiQgAyECDAILAAsLIABBIGogARDBIQu0AQEIfyMAQRBrIgQkACABLQAGIQkgAS0ABSEKIAEtAAQhBiABLQAHIQtBACEBAkADQCAEQQhqIAEgAiADQbT7wQAQkh0gBCAJIAQoAgggBCgCDBC1BiAEKAIAQQFHDQEgBCgCBCABaiIFQQFqIQEgBSAGSQ0AIAUgBmsiBSAKaiIIIAVJIAMgCE1yDQAgAiAIai0AACALRw0AC0EBIQcLIAAgBTYCBCAAIAc2AgAgBEEQaiQAC70BAQN/IwBBEGsiAiQAIAAoAighAyACQQhqIAAoAgQgACgCCCABQdCFxAAQ7BsCQCACKAIMIgEEQAJAIAIoAggiBC0AACIAQf8BRwRAIAAgAEECdmogAEEDcUEAR2pBAmoiACABSQ0BIAAgAUGIgMQAEKwQAAsgA0ECaiIAIAFPDQILIAQgAEECdGooAgAhACACQRBqJABBASAAIABBAEgbDwtBAEEAQfj/wwAQrBAACyAAIAFBmIDEABCsEAALvAIBBn8CfwJAIAQgBkkNACADIARqIQggAyAGaiEJQQAhBCADIQcDQCAHIAlPBEAgCCAGayEMIAMhBwNAAkAgASAERgRAAn8gByEIIAUhCSAGIQoDQAJAAkACQCAKQQNNBEBBASELIApBAUsEQCAILwAAIAkvAABHDQIgCkECayEKIAlBAmohCSAIQQJqIQgLIApFDQIgCC0AACAJLQAARgwFCyAIKAAAIAkoAABGDQILQQAhCwsgCwwCCyAKQQRrIQogCUEEaiEJIAhBBGohCAwACwALDQELIAcgDE8NBCAGIAdqLQAAIAQgBy0AACACbGtBAXRqIQQgB0EBaiEHDAELCyAHIANrIQdBAQwDBSAHLQAAIARBAXRqIQQgB0EBaiEHDAELAAsAC0EACyEBIAAgBzYCBCAAIAE2AgALtQEBBH8jAEEQayICJAAgASgCBCEEIAJBCGogACABKAIIIgAQoQ0gAigCCCEDAkAgAi0ADCIFQQNGBEAgAyEBDAELIABBGGwhAANAIAAEQCACQQhqIgEgAygCACAFQQFGEIEhIAEQ5hgiAQ0CIAQgAxBsIgENAiAEQRhqIQQgAkEEOgAIIABBGGshAEECIQUgAkEIahDmGCIBRQ0BDAILCyADKAIAIAUQkBghAQsgAkEQaiQAIAELtgEBAX8jAEFAaiIDJAAgA0EMaiAAIAEQqhUgAygCDEGAgICAeEcEQCADQSBqIANBFGooAgA2AgAgAyADKQIMNwMYAkAgASACTw0AIAAgAhD1EEUNACADQTRqIAAgAhCqFSADKAI0QYCAgIB4RwRAIANBMGogA0E8aigCADYCACADIAMpAjQ3AyggA0EYaiADQShqEP8NDAELQeDG2AAQ4CkACyAAIAIgA0EYahCqEwsgA0FAayQAC7YBAQF/IwBBQGoiAyQAIANBDGogACABEKsVIAMoAgxBgICAgHhHBEAgA0EgaiADQRRqKAIANgIAIAMgAykCDDcDGAJAIAEgAk8NACAAIAIQ9hBFDQAgA0E0aiAAIAIQqxUgAygCNEGAgICAeEcEQCADQTBqIANBPGooAgA2AgAgAyADKQI0NwMoIANBGGogA0EoahD/DQwBC0HAx9gAEOApAAsgACACIANBGGoQrBMLIANBQGskAAuvAQEEfwJAIAEQnQ8iASgCCCIFRQRADAELIAEoAgQhBCAFIQEDQCABQQFNBEACQCAEIANBAnRqKAIAIgEgAkciBAR/IAMgASACSWoFIAMLIARrIgEgBU4NACABQX9zQR92IQMMAwsFIAMgAUEBdiIGIANqIgMgBCADQQJ0aigCACACSxshAyABIAZrIQEMAQsLQePT2ABBPEGg1NgAEPQXAAsgACABNgIEIAAgAzYCAAvAAQEFfyMAQSBrIgQkAAJ/A0AgBEEIaiIGIAEgAiADELgBAkAgBC0ADCIHQQJHBEAgBC0ADSEDIAQoAggiAigCAEESRw0BIAItABRBE2tB/wFxQQJPDQEgAigCBCIFKAIAQRJHDQEgBS0AFEEYRw0BIAIoAhAhBSACKAIMIQggBEE4OgAIIAEgCCAFIAYQxhkMAQsgBCgCCCECQQEMAgsgB0EBcQ0AC0EACyEDIAAgAjYCBCAAIAM2AgAgBEEgaiQAC74BAQV/IAEgABD5ISAAKAJEIgIgACgCSEEGdGohBgNAIAIgBkcEQCACQUBrIQQgAigCAEEHRgRAIAIoAjhBDGwhBSACKAI0IQMDQCAFBEAgAyABENUsIAVBDGshBSADQQxqIQMMAQsLIAJBCGohAyACLQAcQQJHBEAgAyABEIMpIAQhAgwDCyADIAEQuSUgBCECDAIFIAIgARC6JSAEIQIMAgsACwsgACgCIEGAgICAeEcEQCAAQSBqIAEQnBoLC8ABAQV/IwBBIGsiBCQAAn8DQCAEQQhqIgYgASACIAMQuwECQCAELQAMIgdBAkcEQCAELQANIQMgBCgCCCICKAIAQRJHDQEgAi0AFEETa0H/AXFBAk8NASACKAIEIgUoAgBBEkcNASAFLQAUQRhHDQEgAigCECEFIAIoAgwhCCAEQTg6AAggASAIIAUgBhDYGQwBCyAEKAIIIQJBAQwCCyAHQQFxDQALQQALIQMgACACNgIEIAAgAzYCACAEQSBqJAALwQECAX8BfiMAQRBrIgMkACADQQhqIAEgAigCCEEAENUBAkACQAJAIAMtAAhBBEcEQCADKQMIIgRC/wGDQgRSDQELIANBCGogAiABEMIqIAMtAAhBBEcEQCADKQMIIgRC/wGDQgRSDQILIANBCGogAkEEaiABEMMqAkAgAy0ACEEERwRAIAMpAwgiBEL/AYNCBFINAQsgAEEEOgAADAMLIAAgBDcCAAwCCyAAIAQ3AgAMAQsgACAENwIACyADQRBqJAALzwEBBX8gACgCBCECAkACQAJAAkAgACgCCCIGRQ0AIAIoAgANACACQQhqQcDF4ABBBBDSG0UNACACKAIoIQQgASgCHCABKAIgIAIoAiwiAxCsJiIFQajF4AAQgAQNASAEIQUMAgsgAiAGIAEQih0MAgsgBCAFKAIcIgMgAyAESxshBSAEIAMgAyAESRshAwsgASAFIAMQ6BggAkFAayAGQQFrIAEQih0LIABBDGogARDEGiAAQRhqIAEQkiQgACgCPCABEKAgIAAoAkAgARCfIAvMAQEDfyAAQUBrENcgIABBkAFqIQQgACgChAFB2ABsIQMgACgCgAEhAgNAAkAgAwRAAkACQAJAAkAgAigCAEEBaw4FAAECBQMFCyACQQRqIAEQyCIMBAsgAkEEaiABENQtDAMLIAJBBGogARDUDwwCCyACQQRqIAEQuC0MAQsgACgCeCICBEAgASACQQxqKAIAIAJBEGooAgAQoSALIAQgARDUDyAALQA8QQZHBEAgAEEQahDXIAsPCyACQdgAaiECIANB2ABrIQMMAAsAC9gBAQN/IAAoAvQBIgEgASgCACIBQQFrNgIAIAFBAUYEQCAAQfQBahCPCQsgACgC+AEhASAAKAL8ASIDKAIAIgIEQCABIAIRAQALIAMoAgQiAgRAIAEgAygCCCACELokCyAAKAJYIAAoAlwQ2ikgACgCZCAAKAJoENopIAAoAnAgACgCdBDaKSAAKAJ8IAAoAoABEOopIAAoAsQBIAAoAsgBELYkIAAoAtwBIgEgASgCACIBQQFrNgIAIAFBAUYEQCAAQdwBahD1DQsgACgC0AEgACgC1AEQtiQLtwEBA38jAEEgayICJAACQCADKAIQIgUgAygCFCIGTQRAIAFBBGohASADKAIAQQFrQQJPBEAgAkEUaiIEIAEgAygCCCADKAIMIAUgBhDWDiACQQRqIAQQ/hsMAgsgAkEUaiIEIAEgAygCCCADKAIMIAUgBhDXDiACQQRqIAQQ/hsMAQsgAkEANgIEC0EAIQMgACACKAIEQQFGBH8gACACKQIMQiCJNwIEQQEFIAMLNgIAIAJBIGokAAu3AQEDfyMAQSBrIgIkAAJAIAMoAhAiBSADKAIUIgRNBEAgAUEEaiEBIAMoAgBBAWtBAk8EQCACQRRqIgYgASADKAIIIAMoAgwgBSAEENQEIAJBBGogBhD+GwwCCyACQRRqIgQgASADKAIIIAMoAgwgBSACENkRIAJBBGogBBD+GwwBCyACQQA2AgQLQQAhAyAAIAIoAgRBAUYEfyAAIAIpAgxCIIk3AgRBAQUgAws2AgAgAkEgaiQAC8EBAgN/AX4jAEEQayIEJAACQCAAKAIQIgNFBEAMAQtBASECIANB6dDZAEEBEKoDDQAgAVAEQCADQfjI3wBBARCqAyECDAELAkAgASAANQIUIgVYBEAgBSABfSIBQhpUDQEgA0H4yN8AQQEQqgMNAiABQQEgAxD8BiECDAILIANBjNfWAEEQEKoDDQFBACECIABBADoABCAAQQA2AgAMAQsgBCABp0HhAGo2AgwgBEEMaiADEN8HIQILIARBEGokACACC74BAgl/AX4jAEEQayICJAAgASgCBCEJIAJBCGogASgCCCIEQQRBEBD7FCACKAIIIgUgBEH/////AHEiASABIAVLGyEDQQAhASACKAIMIQYDQCADBEAgASAJaiIHQQRqKQIAIQsgBxD5HCEKIAEgBmoiCEEMaiAHQQxqEKAPNgIAIAhBBGogCzcCACAIIAo2AgAgA0EBayEDIAFBEGohAQwBCwsgACAENgIIIAAgBjYCBCAAIAU2AgAgAkEQaiQAC7wBAgV/AX4jAEEwayICJAACQCABLQAlIgVBAkYEQCABKAIMIQMgASgCECEEIAJBCGogARBuIABBEGogBDYCACAAIAIpAgg3AgAgAiADNgIUIABBCGogAkEQaikCADcCAAwBCyABKQMAIQcgAS0AJCEDIABBCGogAUEIahDWGxD1IiACQQhqIgYgASgCIBCGCyAGQSgQ+wYhASAAIAM6ACQgACABNgIgIAAgBzcDAAsgACAFOgAlIAJBMGokAAu5AQECfyMAQRBrIgIkAAJAAkAgAUEoahDKDSIDBEAgAygCAEEERg0BCyACIAEQ0QQgAAJ+IAIpAwBQRQRAIAAgAikDADcDCCAAQRBqIAJBCGopAwA3AwBCAQwBCyAAIAIoAgg2AghCAgs3AwAMAQsgAiABEKgFIAACfiACKQMAUEUEQCAAIAIpAwA3AwggAEEQaiACQQhqKQMANwMAQgAMAQsgACACKAIINgIIQgILNwMACyACQRBqJAAL5wEAAkACQAJAAkACQAJAIAIgA0GKt+AAQQgQ6x9FBEAgAiADQZ214ABBAhDrHw0BIAIgA0GkuuAAQQUQ6x8NAiACIANBvLngAEEFEOsfDQMgAiADQce44ABBBhDrHw0EIAIgA0H9tuAAQQcQ6x8NBSACIANBkLbgAEEDEOsfDQYgAiADQZq74ABBCBDrH0UEQCAAQQY6AAAPCyAAQYDGADsBAA8LIABBADsBAA8LIABBgAI7AQAPCyAAQQI7AQAPCyAAQYAEOwEADwsgAEGAwgA7AQAPCyAAQYAoOwEADwsgAEGAMDsBAAvfAQEBfyMAQdAAayICJAAgACgCACEAIAJB9LDZADYCSCACQeSw2QA2AkAgAiAAQRxqNgI8IAJB5K7ZADYCOCACIABBJWo2AjQgAkHkrtkANgIwIAIgAEEkajYCLCACQdSw2QA2AiggAiAAQQxqNgIkIAJBxLDZADYCICACIAA2AhwgAkGkr9kANgIYIAIgAEEYajYCFCACQbie2gA2AhAgAiAAQRBqNgIMIAIgAEEgajYCTCACIAJBzABqNgJEIAFB+LHZAEEJQbix2QBBCCACQQxqQQgQzwggAkHQAGokAAu+AQEFfyMAQeAAayIDJAAgAUHYAGwgACgCCEHYAGwiAWshBCAAKAIEIAFqIQUgAigCBCEBIAIoAgwhBgNAAkAgBARAAkAgASAGRgRAIANBDTYCCAwBCyACIAFB2ABqIgc2AgQgA0EIaiABQdgAEPsGGiADKAIIQQ1HDQILIANBCGoQ+yULIANB4ABqJAAPCyAFIAFB2AAQ2i0aIAAgACgCCEEBajYCCCAEQdgAayEEIAchASAFQdgAaiEFDAALAAuwAQEGfyABQThsIAAoAghBOGwiA2shASACKAJ0IAIoAnAiBWshBiACIAVBOGxqIQQgACgCBCADaiEDA0AgAUUhBwJAIAEEQCAGRQRAQQAPCyACIAVBAWoiBTYCcCAEKAIAIghBCkcNAQsgBw8LIAMgCDYCACADQQRqIARBBGpBNBD7BhogACAAKAIIQQFqNgIIIAFBOGshASAEQThqIQQgBkEBayEGIANBOGohAwwACwALuQEBAn8jAEEQayICJAACQAJAIAFBKGoQ4w0iAwRAIAMoAgBBBEYNAQsgAiABENMEIAACfiACKQMAUEUEQCAAIAIpAwA3AwggAEEQaiACQQhqKQMANwMAQgEMAQsgACACKAIINgIIQgILNwMADAELIAIgARCqBSAAAn4gAikDAFBFBEAgACACKQMANwMIIABBEGogAkEIaikDADcDAEIADAELIAAgAigCCDYCCEICCzcDAAsgAkEQaiQAC6sBAQN/AkAgAkEQSQRAIAAhAwwBCyAAQQAgAGtBA3EiBGohBSAEBEAgACEDA0AgAyABOgAAIANBAWoiAyAFSQ0ACwsgBSACIARrIgJBfHEiBGohAyAEQQBKBEAgAUH/AXFBgYKECGwhBANAIAUgBDYCACAFQQRqIgUgA0kNAAsLIAJBA3EhAgsgAgRAIAIgA2ohAgNAIAMgAToAACADQQFqIgMgAkkNAAsLIAAL1AEBBH8jAEEQayIDJAAgAkH/////B0kEQCADIAEoAggiBBDjHAJAIAMoAgBFBEAgAygCBCEFIAEoAtgCIQYgASgCACAERgRAIAEQ6xYLIAAgBTYCBCAAQQM2AgAgASAEQQFqNgIIIAEoAgQgBEEUbGoiACACNgIQIAAgBjYCDCAAQQA2AgggAEIANwIADAELIAAgAykDCDcDECAAQv7///8HNwMIIABBADYCAAsgA0EQaiQADwsgAyACrTcDAEH4jcAAQTQgA0Gch8AAQayOwAAQxQ4AC7gCAQN/An8gASgCBCICIAEoAhBHBEAgAEEMaiABEO0SIABBFGohASAAQRBqDAELIAAoAgQiAyAAKAIIIgAgAkEBayICQYzK1gAQvB8gARDtEiADIAAgAkGcytYAELwfIgBBCGohASAAQQRqCyECAkAgASgCACIAQQJJDQAgAigCACECIABBFU8EQCMAQZAgayIBJAACQCAAQQF2IgNBlawUIAAgAEGVrBRPGyIEIAMgBEsbIgNBqwFPBEAgAUEIaiADQQRBGBD7FCACIAAgASgCDCICIAEoAggiAyAAQcEASRDbASADIAIQ8ikMAQsgAiAAIAFBEGpBqgEgAEHBAEkQ2wELIAFBkCBqJAAMAQsgAEEYbCEAQRghAQNAIAAgAUYNASACIAEgAmoQ5gkgAUEYaiEBDAALAAsLvgEBA38jAEEQayIDJAAgACgCACEEAkADQCACQQNNBEACQCACQQFLDQAMAwsFIAEoAAAgA0EEIAEgAkGIytgAEJIdIARBBXdzQbnz3fF5bCEEIAMoAgQhAiADKAIAIQEMAQsLIAEvAAAgA0EIakECIAEgAkH4ydgAEJIdIARBBXdzQbnz3fF5bCEEIAMoAgwhAiADKAIIIQELIAAgAgR/IAEtAAAgBEEFd3NBufPd8XlsBSAECzYCACADQRBqJAALygEBBX8jAEEgayIBJAAgACgCCCEEIAAoAgQhBUEFIQJBASEDAkACQAJAIAAoAgBBAWsOAgACAQtBAyEDCyABQRBqIABBHGooAgA2AgAgAUEIaiAAQRRqKQIANwMAIAEgACkCDDcDACADIQILQShBCBDXIiIAIAQ2AgggACAFNgIEIAAgAjYCACAAIAEpAwA3AgwgAEEUaiABQQhqKQMANwIAIABBHGogAUEQaikDADcCACAAQSRqIAFBGGooAgA2AgAgAUEgaiQAIAALrAECB38BfiMAQRBrIgQkACAEQQhqIAJBCEEIEPsUIAJBA3QhCCAEKAIMIQcgBCgCCCIJIQUCQANAIAVFIAMgCEZyRQRAIAEgA2opAwAiCkIDg1AEQCAKp0EIayIGIAYoAgAiBkEBajYCACAGQQBIDQMLIAMgB2ogCjcDACAFQQFrIQUgA0EIaiEDDAELCyAAIAI2AgggACAHNgIEIAAgCTYCACAEQRBqJAAPCwALuAEBBH8jAEEQayIGJAAgAS0AggIhByABLQCBAiEIIAEtAIACIQkgBkEIaiACIAMgBCAFQeSYwAAQ7BYgBiAJIAggByAGKAIIIAYoAgwQ4wQgAAJ/AkAgBigCAEEBcQRAIAYoAgQgBGoiBSADSQ0BIAUgA0H0mMAAEKwQAAtBAAwBCyAAIAQgBSABIAIgBWotAABqLQAAayIBQQAgASAFTRsiASABIARJGzYCBEECCzYCACAGQRBqJAALugEBAn8gACAALQANIAEtAA0iAiACQQNGGzoADSAAIAAtAAwgAS0ADCICIAJBAkYbOgAMIAAgAC0ACyABLQALIgIgAkECRhs6AAsgACAALQAKIAEtAAoiAiACQQJGGzoACiAAIAFBCWogAEEJaiABLQAIIgIbLQAAOgAJIAAgACgCACABKAIAIgMgA0ECRiIDGzYCACAAIAIgAC0ACHJBAXE6AAggACAAQQRqIAFBBGogAxsoAgA2AgQgAAvBAQECfyMAQTBrIgIkACACQQA2AiAgAkEBNgIUIAJBhJvDADYCECACQgQ3AhgCf0EBIAEoAhQiAyABKAIYIgEgAkEQahC1JA0AGiACIAAoAgA2AggDQCACIAJBCGoQsxlBACACKAIARQ0BGiACIAIoAgQ2AgwgAkEBNgIUIAJB5JrDADYCECACQgE3AhwgAkEVNgIsIAIgAkEoajYCGCACIAJBDGo2AiggAyABIAJBEGoQtSRFDQALQQELIAJBMGokAAvOAQECfyMAQTBrIgIkAAJAAkAgARDlDSIBRQRAIAJBEGpBBUEBQQEQoQsgAigCFCEBIAIoAhBBAUYNAiACKAIYIgNBBGpB1ODgAC0AADoAACADQdDg4AAoAAA2AAAgAEEFNgIIIAAgAzYCBCAAIAE2AgAMAQsgAiABNgIMIAJBATYCFCACQYT44AA2AhAgAkIBNwIcIAJBswI2AiwgAiACQShqNgIYIAIgAkEMajYCKCAAIAJBEGoQsAYLIAJBMGokAA8LIAEgAigCGBDhKQALxwEBAX8jAEEQayILJAAgACgCFCABIAIgACgCGCgCDBEDACEBIAtBADoADSALIAE6AAwgCyAANgIIIAtBCGogAyAEIAUgBhDzBiAHIAggCSAKEPMGIQEgCy0ADSICIAstAAwiA3IhAAJAIANBAXEgAkEBR3INACABKAIAIgAtABxBBHFFBEAgACgCFEGP2NYAQQIgACgCGCgCDBEDACEADAELIAAoAhRBo7XgAEEBIAAoAhgoAgwRAwAhAAsgC0EQaiQAIABBAXELtQEBBX8jAEEgayICJAAgAkEIaiABQQRBBBC+FCACQQA2AhwgAiACKQMINwIUIAJBFGogARDcHkEBIAEgAUEBTRsiBUEBayEDIAIoAhggAigCHCIGQQJ0aiEEAkADQCADBEAgBEEANgIAIANBAWshAyAEQQRqIQQMAQUCQCAFIAZqIQMgAQ0AIANBAWshAwwDCwsLIARBADYCAAsgACACKQIUNwIAIABBCGogAzYCACACQSBqJAALpgEBA38CQAJAIAEtAAAiAyABQQJrLQAAIgJGBEAgAS0AASICIAFBAWstAABJDQEMAgsgAiADTQ0BIAEtAAEhAgsgAUEEayEBA0ACQCABQQRqIAFBAmoiBC8AADsAACAAIARGDQACQCABLQAAIgQgA0YEQCACIAFBAWotAABJDQEMAgsgAyAETw0BCyABQQJrIQEMAQsLIAFBAmogAkEIdCADcjsAAAsLoAEBBX4gACAAKQMYIgFCEIkgASAAKQMIfCIBhSICQhWJIAIgACkDECIDIAApAwB8IgRCIIl8IgKFIgVCEIkgBSABIANCDYkgBIUiA3wiAUIgiXwiBIUiBSACIAEgA0IRiYUiAXwiAkIgiXwiAzcDACAAIAVCFYkgA4U3AxggACABQg2JIAKFIgFCEYkgASAEfCIBhTcDECAAIAFCIIk3AwgLtwECBn8BfiMAQeAAayIBJAAQ8yIgACgCACIAKQMAIQcgAUEIaiAAQQhqENYbIAAtAEQhAyAAQSBqEJ8PIQQgAUE4aiAAQThqEIULIAAoAjAhBSAAKAI0IQYgAUHMAGogAEEkahCVAyABQTRqIAY2AgAgASAFNgJYIAFBLGogAUHUAGopAgA3AgAgASADOgBEIAEgBzcDACABIAQ2AiAgASABKQJMNwIkIAFByAAQ+wYgAUHgAGokAAu6AQEJfyMAQRBrIgMkAAJAIAIgACgCCCIFTQRAIAJBFGwhAiAAKAIAIgZBBGshByAAKAIEIQggACgCDCEEA0AgAkUNAiADQQhqIAYgCCABNQIQELAdIAMtAAwhCSADKAIIIQogACAEQQFqIgs2AgwgByAKQQJ0ayAENgIAIAAgBSAJQQFxayIFNgIIIAJBFGshAiABQRRqIQEgCyEEDAALAAtBmLnfAEHFAEHEut8AEPQXAAsgA0EQaiQAC8MBAQN/IwBBIGsiASQAIAAoAgAiAigCACEDIAJBADYCACADKAIQIQIgA0EANgIQIAIEQCABQQhqIAIRAQAgACgCBCIDKAIAIgAoAgBBgICAgHhHBEAgABCjHCAAKAIAIABBBGooAgAQkiogAygCACEACyAAIAEpAgg3AgAgAEEIaiABQRBqKAIANgIAIAFBIGokAEEBDwsgAUEANgIYIAFBATYCDCABQbj44AA2AgggAUIENwIQIAFBCGpBoPngABDDHQALzQEBAX8gABCXEiAAKAIEIgBBFGoiASgCACAAQRhqKAIAEOgcIAAoAhAgASgCABDtKSAAKAIAQQJHBEAgACgCBCAAQQhqKAIAENopCyAAKAIcIABBIGooAgAQ5SkgAEEsaiIBKAIAIABBMGooAgAQ6RwgACgCKCABKAIAEOQpIABBOGoiASgCACAAQTxqKAIAEOcQIAAoAjQgASgCABDrKSAAQcQAaiIBKAIAIABByABqKAIAEP8TIAAoAkAgASgCABDsKSAAQdAAQQQQ1REL2AEBAX8jAEHwAGsiBCQAIAQgAzYCLCAEQQA2AiggBEHkADYCJCAEIABBHGo2AiAgBEECNgIcIARBhPjgADYCGCAEQQI2AhQgBEEDNgIEIARBqMzfADYCACAEQQM6AGwgBEEANgJoIARCoICAgBA3AmAgBEKCgICAIDcCWCAEQQI2AlAgBEEDOgBMIARBADYCSCAEQiA3AkAgBEKBgICAIDcCOCAEQQI2AjAgBCAEQTBqNgIQIARBAzYCDCAEIARBGGo2AgggASAEIAIoAhQRAgAgBEHwAGokAAvOAQEDfyMAQdAAayICJAAgAUEoahDeICEDIAJBADsAHiACIAEtAJADOgAdIAIgASkBggM3AA8gAiABQYoDaiIEKAEANgAXIAIgAS8BjgM7ABsgAiABKQCTAzcAICACIAEoAJsDNgAoIAJBxQBqIAFBlwNqKQAANwAAIAJBQGsgAUGSA2opAQA3AgAgAkE4aiAEKQEANwIAIAIgASkBggM3AjAgAUGAAWogAkEPahDJCCACIAE2AiwgACABIAMQSSACQSxqEKMmIAJB0ABqJAALqAECAn8BfiMAQRBrIgQkACAAAn8CQCACIANqQQFrQQAgAmtxrSABrX4iBkIgiKcNACAGpyIDQYCAgIB4IAJrSw0AIANFBEAgACACNgIIIABBADYCBEEADAILIARBCGogAiADELUeIAQoAggiBQRAIAAgBTYCCCAAIAE2AgRBAAwCCyAAIAM2AgggACACNgIEQQEMAQsgAEEANgIEQQELNgIAIARBEGokAAusAQECfwJAAkAgAEH/AE8EQCAAQZ8BSwR/IABBBnZB/wBxIABBDXZBgOviAGotAAAiAkEHdHIhASACQRJLDQIgAEECdkEPcSABQYDt4gBqLQAAIgJBBHRyIQEgAkHuAU8NA0EBIAFBgIDjAGotAAAgAEEBdEEGcXZBA3EiACAAQQNGGwUgAQsPCyAAQR9LDwsgAUGAE0HY4uAAEKwQAAsgAUHgHUHo4uAAEKwQAAu4AQECfyMAQTBrIgYkACAGQQE7ASggBiADNgIkIAYgAjYCICAGIAM2AhxBACEDIAZBADYCGCAGQQRqIgIgBkEYaiIHIAQgBRDZCiAHIAFBMGogAhDRKiAGKAIYIgFBAkcEQCAAIAFBAXEEfyAGKAIcIQEgACAGKAIgNgIIIAAgATYCBEEBBSADCzYCACAGQTBqJAAPCyAGIAYoAhw2AixBtKbDAEEiIAZBLGpBjKLDAEHMp8MAEMUOAAuwAQEDfyMAQSBrIgIkAAJAIAMoAhAiBSADKAIUIgZNBEAgAygCAEEBa0ECTwRAIAJBFGoiBCABIAMoAgggAygCDCAFIAYQigcgAkEEaiAEEP4bDAILIAJBFGoiBCABIAMoAgggAygCDCAFIAYQowsgAkEEaiAEEP4bDAELIAJBADYCBAtBACEDIAAgAigCBEEBRgR/IAAgAikCDEIgiTcCBEEBBSADCzYCACACQSBqJAALsAEBA38jAEEgayICJAACQCADKAIQIgUgAygCFCIGTQRAIAMoAgBBAWtBAk8EQCACQRRqIgQgASADKAIIIAMoAgwgBSAGEPsLIAJBBGogBBD+GwwCCyACQRRqIgQgASADKAIIIAMoAgwgBSAGELYQIAJBBGogBBD+GwwBCyACQQA2AgQLQQAhAyAAIAIoAgRBAUYEfyAAIAIpAgxCIIk3AgRBAQUgAws2AgAgAkEgaiQAC7QBAQN/IwBBEGsiAiQAAkAgAygCECIEIAMoAhQiBU0EQCABQQRqIQEgAygCAEEBa0ECTwRAIAJBBGoiBiABIAMoAgggAygCDCAEIAUQgAYgACAGEP4bDAILQQAhBQJAIAQgAygCDE8NACABLQAAIAMoAgggBGotAABHDQAgAiAENgIIQQEhBSACIARBAWo2AgwLIAIgBTYCBCAAIAJBBGoQ/hsMAQsgAEEANgIACyACQRBqJAALvQEBBH8jAEEgayIDJAACQCABRQRAIAJBAUEAEKoDIQAMAQsgAyABNgIMIAMgADYCCCADQRBqIANBCGoQ3AQgAygCECIBBEAgAigCGCEEIAIoAhQhBQNAIAMoAhQhBiADKAIcRQRAIAIgASAGEKoDIQAMAwtBASEAIAUgASAGIAQoAgwRAwANAiAFQf3/AyAEKAIQEQIADQIgA0EQaiADQQhqENwEIAMoAhAiAQ0ACwtBACEACyADQSBqJAAgAAu4AQIGfwF+AkAgACgCDCIBRQRAIAAoAgAhAAwBCyAAKAIIIQQgASgCACICIAFBBGooAgAiBSAAKQMAIgcQ9A4iACACaiIDLQAAIQYgAyAHp0EZdiIDOgAAIAIgBSAAQQhrcWpBCGogAzoAACABIAEoAgxBAWo2AgwgASABKAIIIAZBAXFrNgIIIAIgAEEEdGsiAEEEa0EANgIAIABBDGtCgICAgIABNwIAIABBEGsgBDYCAAsgAEEMawvMAQEEfyMAQdAAayICJAAgAUEoaiIDEMMgIQQgAkEAOwAeIAIgAS0AuAI6AB0gAiABKQGqAjcADyACIAFBsgJqIgUoAQA2ABcgAiABLwG2AjsAGyACIAEpALsCNwAgIAIgASgAwwI2ACggAkHFAGogAUG/AmopAAA3AAAgAkFAayABQboCaikBADcCACACQThqIAUpAQA3AgAgAiABKQGqAjcCMCADIAJBD2oQ0gggAiABNgIsIAAgASAEEEogAkEsahCHJSACQdAAaiQAC8QBAgJ/AX4jAEHwAGsiAiQAIAJBAzYCECACQQM2AjAgAkEAOwBtIAJB0ABqQcig4wApAwAiBDcDACACQeAAaiAENwMAIAIgADYCaCACIAAtADg6AGwgAkHAoOMAKQMAIgQ3A0ggAiAENwNYIAJByABqIgMgARCUByADEIApIAJBKGoQ2BQgASgCCEEwbCEDIAEoAgQhAQNAIAMEQCABIAAQ9wEgA0EwayEDIAFBMGohAQwBCwsgAkEIahDYFCACQfAAaiQAC8IBAQN/IAEgAEFAaxD/ByAAQZABaiEEIAAoAoQBQdgAbCEDIAAoAoABIQIDQAJAIAMEQAJAAkACQAJAIAIoAgBBAWsOBQABAgUDBQsgAkEEaiABEI0iDAQLIAJBBGogARD6LAwDCyACQQRqIAEQww8MAgsgAkEEaiABEN4rDAELIAAoAngiAgRAIAEgAhDSHgsgBCABEMMPIAAtADxBBkcEQCABIABBEGoQ/wcLDwsgAkHYAGohAiADQdgAayEDDAALAAvMAQEBfyMAQRBrIgIkAAJAIAAtAARBAUcNAAJAAkACQAJAAkAgASgCAEEBaw4EAgADBAELAkAgAC0ABQ0AIAErAxCZRAAAAAAAAPB/Yg0AIABBADoABAsgACAAKAIAQQVqNgIADAQLIAIgAUEIahCUDCAAIAIoAgQgACgCAGpBAmo2AgAMAwsgAkEIaiABQQhqEJQMIAAgAigCDCAAKAIAakECajYCAAwCCyABQQRqIAAQpi0gAEEAOgAEDAELIABBADoABAsgAkEQaiQAC68BAQV/IwBBMGsiAyQAIAFBMGwgACgCCEEwbCIBayEEIAAoAgQgAWohBSACKAIEIQEgAigCDCEGA0ACQCAEBEACQCABIAZGBEAgA0ETNgIADAELIAIgAUEwaiIHNgIEIAMgAUEwEPsGKAIAQRNHDQILIAMQmyYLIANBMGokACAERQ8LIAUgAUEwENotGiAAIAAoAghBAWo2AgggBEEwayEEIAchASAFQTBqIQUMAAsAC68BAQN/IwBB4ABrIgckACAHQQA2AgwgB0KAgICAEDcCBCAHQRBqIAEgAiADIAQQ3gEDQCAHQdQAaiAHQRBqEK4GIAcoAlQEQCAHKAJYIAhrIQMgASAIaiEEIAcoAlwhCCAHQQRqIgkgBCADEPYdIAkgBSAGEPYdDAEFIAdBBGogASAIaiACIAhrEPYdIABBCGogB0EMaigCADYCACAAIAcpAgQ3AgAgB0HgAGokAAsLC9MBAQF/IwBB8ABrIgMkACADIAI2AiwgA0EANgIoIANB5AA2AiQgAyAAQRxqNgIgIANBAjYCHCADQYT44AA2AhggA0ECNgIUIANBAzYCBCADQajM3wA2AgAgA0EDOgBsIANBADYCaCADQqCAgIAQNwJgIANCgoCAgCA3AlggA0ECNgJQIANBAzoATCADQQA2AkggA0IgNwJAIANCgYCAgCA3AjggA0ECNgIwIAMgA0EwajYCECADQQM2AgwgAyADQRhqNgIIIAEgAxDJJCADQfAAaiQAC8MBAQN/IwBBsAdrIgIkACABKAKUDSgCvAIiAyADKAIAIgRBAWo2AgAgBEEATgRAIAIgAxD+FyACQegEaiABKAKgChDyHiACQdQFaiABKAK4ChDzHiACQdgEaiABKALUCiABKAL4ChDoDiACQdgBaiABEKEVAkAgASkDoA1CAlEEQCACQQI2AqAHDAELIAJB8AVqIAFBoA1qEJIJCyACQRhqIAJB8AVqQcABEPsGGiAAIAJB8AUQ+wYaIAJBsAdqJAAPCwALqAEBA38CQAJAIAEoAgAiAyABQQhrKAIAIgJGBEAgASgCBCICIAFBBGsoAgBJDQEMAgsgAiADTQ0BIAEoAgQhAgsgAUEQayEBA0ACQCABQRBqIAFBCGoiBCkCADcCACAAIARGDQACQCABKAIAIgQgA0YEQCACIAFBBGooAgBJDQEMAgsgAyAETw0BCyABQQhrIQEMAQsLIAFBCGogA60gAq1CIIaENwIACwu9AQEDfyMAQSBrIgEkACAAKAIAIgIoAgAhAyACQQA2AgAgAygCECECIANBADYCECACBEAgAUEIaiACEQEAIAAoAgQiAygCACIAKAIAIgJBgoCAgHhOBEAgAiAAQQRqKAIAENopIAMoAgAhAAsgACABKQIINwIAIABBCGogAUEQaigCADYCACABQSBqJABBAQ8LIAFBADYCGCABQQE2AgwgAUG4+OAANgIIIAFCBDcCECABQQhqQaD54AAQwx0AC74BAQN/IwBB0ABrIgEkACAAKAIAIgIoAgAhAyACQQA2AgAgAygCUCECIANBADYCUCACBEAgAUEIaiACEQEAAkAgACgCBCIDKAIAIgAoAjgiAkECRiACRXINACAAKAJAIgJFDQAgACgCPCACQQEQ1REgAygCACEACyAAIAFBCGpByAAQ+wYaIAFB0ABqJABBAQ8LIAFBADYCGCABQQE2AgwgAUG4+OAANgIIIAFCBDcCECABQQhqQaD54AAQwx0AC6oBAQR/IwBBQGoiBiQAIAZBADYCFCAGQoCAgIAQNwIMIAZBGGogAyABIAIQtBIDQCAGQTRqIAZBGGoQ9gggBigCNARAIAYoAjggB2shAyABIAdqIQggBigCPCEHIAZBDGoiCSAIIAMQ9h0gCSAEIAUQ9h0MAQUgBkEMaiABIAdqIAIgB2sQ9h0gAEEIaiAGQRRqKAIANgIAIAAgBikCDDcCACAGQUBrJAALCwuuAQEDfyMAQRBrIgYkACABLQCBAiEHIAEtAIACIQggBkEIaiACIAMgBCAFQcSYwAAQ7BYgBiAIIAcgBigCCCAGKAIMEO8FIAACfwJAIAYoAgBBAXEEQCAGKAIEIARqIgUgA0kNASAFIANB1JjAABCsEAALQQAMAQsgACAEIAUgASACIAVqLQAAai0AAGsiAUEAIAEgBU0bIgEgASAESRs2AgRBAgs2AgAgBkEQaiQAC8kBAQJ/IwBBIGsiAiQAIAJBADoAECACQuSAgICgHzcCCCACQoqAgICgATcCACACQRRqIAIgARCXAQJAIAIoAhRBgICAgHhGDQAgAigCHEEEdCEBIAIoAhghAwNAIAFFDQEgA0EAOgAMIAFBEGshASADQRBqIQMMAAsACyACQRRqQQEQnQICQCACKAIUIgFBgICAgHhGBEAgAEECOgAMDAELIAAgAigCGCIAIAIoAhwiAxDUDSAAIAMQ6BwgASAAEO0pCyACQSBqJAALsAEBA38jAEEQayICJAACQCADKAIQIgQgAygCFCIFTQRAIAMoAgBBAWtBAk8EQCACQQRqIgYgASADKAIIIAMoAgwgBCAFEPgNIAAgBhD+GwwCC0EAIQUCQCAEIAMoAgxPDQAgASADKAIIIARqLQAAai0AAEEBRw0AIAIgBDYCCCACIARBAWo2AgxBASEFCyACIAU2AgQgACACQQRqEP4bDAELIABBADYCAAsgAkEQaiQAC9QBAQF/IwBBEGsiAiQAAn8CQAJAAkACQAJAIAAoAgAoAgAiAC0AAEEBaw4EAQIDBAALIAEoAhRBv6rDAEEUIAEoAhgoAgwRAwAMBAsgASgCFEHTqsMAQRYgASgCGCgCDBEDAAwDCyACIABBAWo2AgggAUHpqsMAQRFBqZDaAEEDIAJBCGpBsQEQxwsMAgsgAiAAQQFqNgIMIAFB+qrDAEEWQamQ2gBBAyACQQxqQbEBEMcLDAELIAEoAhRBkKvDAEEQIAEoAhgoAgwRAwALIAJBEGokAAupAQEDf0G+FiECIwBBEGsiAyQAIAMgADYCDAJAIAAgAU0EQEEAIQADQCACQQFNBEAgA0EMaiABIABBDGxB0KzFAGooAgAQ/yBB/wFxRSEADAMFIAAgAkEBdiIEIABqIgAgA0EMaiABIABBDGxB0KzFAGooAgAQ/yBB/wFxQQFGGyEAIAIgBGshAgwBCwALAAtBsM7YAEEeQbTExwAQ9BcACyADQRBqJAAgAAukAQEDfyMAQRBrIgMkACADIAECfyACQQhPBEBBfyACQQN0QQduQQFrZ3ZBAWogAkH/////AU0NARoQsRsAC0EEQQggAkEESRsLEJ8NIAMoAgghBCADKAIEIQECQCADKAIAIgIEQCADKAIMIQUgAkH/ASABQQlqEI0LGiAAIAU2AgwMAQtBACECCyAAIAQ2AgggACABNgIEIAAgAjYCACADQRBqJAALrAEBB38jAEEgayICJAAgASgCBCEHIAJBCGogASgCCCIEQQRBEBD7FCACKAIIIgUgBEH/////AHEiASABIAVLGyEDQQAhASACKAIMIQYDQCADBEAgAkEQaiABIAdqEIceIAEgBmoiCEEIaiACQRhqKQIANwIAIAggAikCEDcCACADQQFrIQMgAUEQaiEBDAELCyAAIAQ2AgggACAGNgIEIAAgBTYCACACQSBqJAALsAECBX8BfgJAIAEoAhgiBUUNACABKAIQIQMgASgCCCECIAEpAwAhBwNAIAdCAFJFBEAgASADQUBqIgM2AhAgASACQQhqIgY2AgggASACKQMAQn+FQoCBgoSIkKDAgH+DIgc3AwAgBiECDAELCyABIAVBAWs2AhggASAHQgF9IAeDNwMAIANFDQAgAyAHeqdB+ABxayICQQRrIQEgAkEIayEECyAAIAE2AgQgACAENgIAC8oBAgN/AX4jAEFAaiICJAAgACgCMBC+ESEDIAJBNGogAEE0aigCADYCACACQQA6ACggAkEYakHIoOMAKQMAIgU3AwAgAkEIaiAFNwMAIAIgADYCICACIAM2AiQgAkEBOgA5IAIgACkCLDcCLCACIAAtADw6ADwgAiAALwE6OwE6IAJBwKDjACkDACIFNwMQIAIgBTcDACAALQA4IQQgAiAALQA9OgA9IAIgBDoAOCADIAFBFGoQmSEgAiABEKoLIAIQgSkgAkFAayQAC7MBAQZ/IwBBEGsiAyQAIAFBEGohBSAAKAIIQThsIQYgACgCBCEHA0ACQCAEIAZHBEACQAJAAkAgBCAHaiICKAIAQQFrDgIBAgALIAJBCGogARCWIiACQShqIAEQiS0MAwsgAyACQRBqKQMAIAJBIGooAgAQwCMgBSADKQMAIAMoAggQxggaDAILIAJBBGogARDuJQwBCyAAQRRqIAEQ8iMgA0EQaiQADwsgBEE4aiEEDAALAAu+AQEDfyAAQUBrENcgIABBkAFqIQQgACgChAFB2ABsIQMgACgCgAEhAgNAAkAgAwRAAkACQAJAAkAgAigCAEEBaw4FAAECBQMFCyACQQRqIAEQlSIMBAsgAkEEaiABEJgtDAMLIAJBBGogARDMDwwCCyACQQRqIAEQhy0MAQsgACgCeCICBEAgAiABELEaCyAEIAEQzA8gAC0APEEGRwRAIABBEGoQ1yALDwsgAkHYAGohAiADQdgAayEDDAALAAusAQEFfyMAQTBrIgMkACABQTBsIAAoAghBMGwiAWshBCAAKAIEIAFqIQUgAigCBCEBIAIoAgwhBgJAA0AgBEUNASABIAZHBEAgAiABQQRqIgc2AgQgA0IANwMIIANBEjYCACADIAEoAgA2AgQgBSADQTAQ+wYgACAAKAIIQQFqNgIIIARBMGshBEEwaiEFIAchAQwBCwsgA0ETNgIAIAMQmyYLIANBMGokACAERQu6AQIEfwF+IwBBIGsiAyQAIAAoAghBOGwhBCAAKAIEIQVBACEAA0ACQCAAIARHBEACQAJAAkAgACAFaiICKAIAQQFrDgIBAgALIAJBCGogARDEIiACQShqIAEQxi0MAwsgAkEwaiABEJwkIAEtAChBAUcNAiADQQhqIAJBEGoQ1hsgASADKQMIIgYgAygCGBCSEiAGEPkaDAILIAJBBGogARCbLgwBCyADQSBqJAAPCyAAQThqIQAMAAsAC7oBAgN/AX4jAEEgayIBJAAgACgCCCIDQf7///8HTQRAAkACQCAAKAIUIgJFDQAgACACQQFrIgI2AhQgACgCECACQQxsaikCACIEp0GAgICAeEYNACABQQA2AhAgASAENwMIDAELIAFBADYCECABQoCAgIDAADcCCAsgACABQQhqEOkVIAFBIGokACADDwsgAUEANgIYIAFBATYCDCABQZSvwwA2AgggAUIENwIQIAFBCGpBnK/DABDDHQALtwEBAX8jAEEgayICJAACQAJAIAEQ5C1FBEAgAkEEaiABENUHIAIoAgRBgICAgHhHBEAgAkEYaiACQQxqKAIANgIAIAIgAikCBDcDECAAIAJBEGoQ4hEMAgtBgICAgHggAigCCBC2JCAAIAEQ6Qc2AhggAEECNgIAIABBFGogAUEQaigCADYCACAAQQxqIAFBCGopAgA3AgAgACABKQIANwIEDAILIAAQuxELIAEQtB4LIAJBIGokAAuuAQICfwF+IwBBMGsiAiQAAkAgAS0AFEECRgRAEO8iIQMgASgCACIBKQMQIQQgAkEIaiABQRhqEMQLIAJBIGogARDVISADIAQ3AxAgA0EIaiACQShqKQMANwMAIAMgAikDIDcDACADIAIpAwg3AxggA0EgaiACQRBqKQMANwMAIANBKGogAkEYaikDADcDACAAQQI6ABQgACADNgIADAELIAAgARDWGwsgAkEwaiQAC8EBAQN/IABBQGsQ1yAgAEGQAWohBCAAKAKEAUHYAGwhAyAAKAKAASECA0ACQCADBEACQAJAAkACQAJAIAIoAgBBAWsOBQECAwYEAAsgAigCCCACQRhqKwMAIAEQqh8MBQsgAkEEaiABELsiDAQLIAJBBGogARCtLQwDCyACQQRqIAEQ0A8MAgsgAUEAOgAEDAELIAQgARDQDyAALQA8QQZHBEAgAEEQahDXIAsPCyACQdgAaiECIANB2ABrIQMMAAsAC6EBAQJ/AkAgAUEDTQRAIABBAWshAANAIAFFIQMgAUUN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QQFrDgIBAgALIAEgAkEIahDwISACQShqIAEQ4CsMAwsgASACQRBqENAZIAJBMGoiAigCAEUNAiACIAEQ3isMAgsgASACQQRqEK8lDAELIABBFGogARDRIw8LIANBOGohAwwACwALmgEBA38gACgCCEE4bCEDIAAoAgQhBEEAIQADQAJAIAAgA0cEQAJAAkACQCAAIARqIgIoAgBBAWsOAgECAAsgAkEIaiABEPshIAJBKGogARDtLAwDCyACQRBqKQMAIAJBIGooAgAgARDZFCACQTBqIgIoAgBFDQIgAiABENcsDAILIAJBBGogARD1LQwBCw8LIABBOGohAAwACwALmAEBA38gACgCCEEMbCEDIAAoAgQhAANAIAMEQAJAIAAoAgAEQCAAIAEQpS0MAQsCQAJAAkBBBCAAKAIEIgIoAgBBBWsiBCAEQQZPG0EBaw4FAAEDAwIDCyACQQhqIAEQtCIgAkEoaiABEKUtDAILIAJBKGogARClLQwBCyACQQhqIAEQtCILIABBDGohACADQQxrIQMMAQsLC5oBAQR/IwBBEGsiAiQAIAIgASgCFCIDEOMcAkAgAigCAEUEQCACKAIEIQQgAUEMaiIFKAIAIANGBEAgBRDpFgsgACAENgIEIABBAzYCACABIANBAWo2AhQgASgCECADQQlsaiIAQgA3AAAgAEEIakEAOgAADAELIAAgAikDCDcDECAAQv7///8HNwMIIABBADYCAAsgAkEQaiQAC4kBAQN/IwBBEGsiAiQAIAAoAgQhAyAAKAIIIAEoAhRBsL/gAEEBIAEoAhgoAgwRAwAhBCACQQA6AAkgAiAEOgAIIAIgATYCBEECdCEBA0AgAQRAIAIgAzYCDCACQQRqIAJBDGpBIRCBCCABQQRrIQEgA0EEaiEDDAELCyACQQRqEOQcIAJBEGokAAuJAQEDfyMAQRBrIgIkACAAKAIEIQMgACgCCCABKAIUQbC/4ABBASABKAIYKAIMEQMAIQQgAkEAOgAJIAIgBDoACCACIAE2AgRBDGwhAQNAIAEEQCACIAM2AgwgAkEEaiACQQxqQTAQgQggAUEMayEBIANBDGohAwwBCwsgAkEEahDkHCACQRBqJAALiQEBA38jAEEQayICJAAgACgCBCEDIAAoAgggASgCFEGwv+AAQQEgASgCGCgCDBEDACEEIAJB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CCIFIARB/////wNxIgEgASAFSxshA0EAIQEgAigCDCEGA0AgAwRAIAEgBmogASAHahD3GTYCACADQQFrIQMgAUEEaiEBDAELCyAAIAQ2AgggACAGNgIEIAAgBTYCACACQRBqJAALkAEBBn8jAEEQayICJAAgASgCBCEHIAJBCGogASgCCCIEQQRBBBD7FCACKAIIIgUgBEH/////A3EiASABIAVLGyEDQQAhASACKAIMIQYDQCADBEAgASAGaiABIAdqEPkcNgIAIANBAWshAyABQQRqIQEMAQsLIAAgBDYCCCAAIAY2AgQgACAFNgIAIAJBEGokAAuoAQECfyABKALAASABKALEARD9HCIDQYCAxABHBEAgAUHAAWoiBBCwFQJ/QQAgA0ENRw0AGkENIQNBACABKALAASABKALEARD9HEEKRw0AGiAEELAVQQFBAiACGyEDQcLw4ABBwPDgACACGwshAiAAIAM2AgggACACNgIEIABBADYCACABIAEoAtABNgKkASABIAEoAqABQQFqNgKgAQ8LQdTo2AAQ4CkAC4oBAQN/IwBBEGsiAiQAIAAoAgQhAyAAKAIIIAEoAhRBsL/gAEEBIAEoAhgoAgwRAwAhBCACQQA6AAkgAiAEOgAIIAIgATYCBEECdCEBA0AgAQRAIAIgAzYCDCACQQRqIAJBDGpB7gIQgQggAUEEayEBIANBBGohAwwBCwsgAkEEahDkHCACQRBqJAALigEBA38jAEEQayICJAAgACgCBCEDIAAoAgggASgCFEGwv+AAQQEgASgCGCgCDBEDACEEIAJBADoACSACIAQ6AAggAiABNgIEQQR0IQEDQCABBEAgAiADNgIMIAJBBGogAkEMakH6AhCBCCABQRBrIQEgA0EQaiEDDAELCyACQQRqEOQcIAJBEGokAAuKAQEDfyMAQRBrIgIkACAAKAIEIQMgACgCCCABKAIUQbC/4ABBASABKAIYKAIMEQMAIQQgAkEAOgAJIAIgBDoACCACIAE2AgRBBHQhAQNAIAEEQCACIAM2AgwgAkEEaiACQQxqQYUDEIEIIAFBEGshASADQRBqIQMMAQsLIAJBBGoQ5BwgAkEQaiQAC4oBAQN/IwBBEGsiAiQAIAAoAgQhAyAAKAIIIAEoAhRBsL/gAEEBIAEoAhgoAgwRAwAhBCACQQA6AAkgAiAE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KAIEIgAtAEVBA0YNACAAQSBqIQADQCAALQAlQQJGBEACQCAAKAIIQThsIQMgACgCBCEEQQAhAANAAkAgACADRwRAIAAgBGoiAigCACIFQQlHBEACQAJAAkACQAJAAkACQCAFQQFrDggBAgMEBQkGCQALIAJBHGogARCHJAwICyACQQhqIAEQvw0MBwsgAkEcaiABEIckDAYLIAJBCGooAgANBSACQRBqIAEQqC0MBQsgASACQQRqKAIAEJIBDAQLIAJBEGogARCHJAwDCyACQQRqIAEQpS0MAgsgAkEIaiABENoEDAELDAILIABBOGohAAwACwALBSAAKAIgIQAMAQsLCwugAQEBfyMAQUBqIgIkACACQQA2AhQgAkKAgICAEDcCDCACQQM6ADggAkEgNgIoIAJBADYCNCACQYDM3wA2AjAgAkEANgIgIAJBADYCGCACIAJBDGo2AiwgASACQRhqEKQXRQRAIAAgAikCDDcCACAAQQhqIAJBFGooAgA2AgAgAkFAayQADwtB/L3gAEE3IAJBP2pBmMzfAEGAv+AAEMUOAAugAQEBfyMAQUBqIgIkACACQQA2AhQgAkKAgICAEDcCDCACQQM6ADggAkEgNgIoIAJBADYCNCACQYDM3wA2AjAgAkEANgIgIAJBADYCGCACIAJBDGo2AiwgASACQRhqEKkZRQRAIAAgAikCDDcCACAAQQhqIAJBFGooAgA2AgAgAkFAayQADwtB/L3gAEE3IAJBP2pBmMzfAEGAv+AAEMUOAAugAQEBfyMAQUBqIgIkACACQQA2AhQgAkKAgICAEDcCDCACQQM6ADggAkEgNgIoIAJBADYCNCACQay94AA2AjAgAkEANgIgIAJBADYCGCACIAJBDGo2AiwgASACQRhqEJ8rRQRAIAAgAikCDDcCACAAQQhqIAJBFGooAgA2AgAgAkFAayQADwtB/L3gAEE3IAJBP2pBxL3gAEGAv+AAEMUOAAugAQEBfyMAQUBqIgIkACACQQA2AhQgAkKAgICAEDcCDCACQQM6ADggAkEgNgIoIAJBADYCNCACQay94AA2AjAgAkEANgIgIAJBADYCGCACIAJBDGo2AiwgASACQRhqEKUZRQRAIAAgAikCDDcCACAAQQhqIAJBFGooAgA2AgAgAkFAayQADwtB/L3gAEE3IAJBP2pBxL3gAEGA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IwBBIGsiACQAAkBBuJfkACgCAEUEQEGM++MAQYz74wAoAgAiAUEBajYCACABRQ0BQbyX5AAgATYCAEG4l+QAQQE2AgALIABBIGokAEG8l+QADwsgAEEANgIYIABBATYCDCAAQYz6wwA2AgggAEIENwIQIABBCGpBlPrDABDDHQALlgEBAX8jAEFAaiICJAAgAkIANwM4IAJBOGogACgCABAiIAIgAigCPCIANgI0IAIgAigCODYCMCACIAA2AiwgAkEFNgIoIAJBAjYCECACQeSh4wA2AgwgAkIBNwIYIAIgAkEsajYCJCACIAJBJGo2AhQgASgCFCABKAIYIAJBDGoQkgQgAigCLCACKAIwENopIAJBQGskAAuYAQEDfyAALQAIIQECQCAAKAIAIgNFBEAgASECDAELQQEhAgJAIAFBAXFFBEAgA0EBRw0BIAAtAAlFDQEgACgCBCIBLQAcQQRxDQEgASgCFEG+uOAAQQEgASgCGCgCDBEDAEUNAQsgACACOgAIDAELIAAgACgCBCIAKAIUQeCh4wBBASAAKAIYKAIMEQMAIgI6AAgLIAJBAXELkwEBBH8jAEEQayICJABBASEEAkAgASgCFCIDQScgASgCGCIFKAIQIgERAgANACACQQRqIAAoAgBBgQIQwgMCQCACLQAEQYABRgRAIAMgAigCCCABEQIARQ0BDAILIAMgAi0ADiIAIAJBBGpqIAItAA8gAGsgBSgCDBEDAA0BCyADQScgARECACEECyACQRBqJAAgBAuSAQEDfyMAQZADayIDJAAgAyABIAIQlgECQCADKAIAQYeAgIB4RgRAIABBAjoADAwBCwJAIAJFDQAgASgCCCEEIAJBAUYNACABQRhqIQEgAkEBa0H/////AHEhAgNAIAQgASgCACIFIAQgBUsbIQQgAUEQaiEBIAJBAWsiAg0ACwsgACADIAQQ9AYLIANBkANqJAALkAEBAn8jAEEgayIDJAACQCAALQCcDUEBRwRAAkAgACkDAEICUgRAIAEoAsgEQQJGDQMgA0EUaiIEIAAgAUHYAWogAhD3CSADQQhqIAQQgBggAygCCCIEQQJHDQELIAAgASACEKwFIQQLIANBIGokACAEQQFxDwtB5ezgAEEoQYiNwwAQ9BcAC0GojMMAEOApAAuGAQEDfyMAQRBrIgQkAAJAIANBB00E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Sw0BCw8LIAAtACQhAyAAIAI6ACQgASgCCEE4bCECIAEoAgQhAQNAIAIEQCAAIAEQogogAkE4ayECIAFBOGohAQwBCwsgACADOgAkC48BAQN/IAAoAghBOGwhAyAAKAIEIQRBACEAA0ACQCAAIANHBEACQAJAAkAgACAEaiICKAIAQQFrDgIBAgALIAEgAkEIahD2ISACQShqIAEQ2CwMAwsgAkEQaiABEO0tIAJBMGoiAigCAEUNAiACIAEQzSwMAgsgAkEEaiABEPctDAELDwsgAEE4aiEADAALAAuPAQEDfyAAKAIIQThsIQMgACgCBCEEQQAhAANAAkAgACADRwRAAkACQAJAIAAgBGoiAigCAEEBaw4CAQIACyABIAJBCGoQ+SEgAkEoaiABEOcsDAMLIAJBEGogARCDKSACQTBqIgIoAgBFDQIgAiABENUsDAILIAJBBGogARDzLQwBCw8LIABBOGohAAwACwALkwEBA38gACgCCEEobCECIAAoAgQhA0EAIQADQAJAIAAgAkcEQAJAAkACQAJAAkAgACADaiIBKAIAQQFrDgQBAgMEAAsgAUEYakIANwIADAULIAFBBGoQ5B8MBAsgAUEIakIANwIAIAFBBGoQjC4MAwsgAUEEahCSLgwCCyABQQRqENwgDAELDwsgAEEoaiEADAALAAuDAQECfyMAQRBrIgYkACABLQAAIQcgBkEIaiACIAMgBCAFQbSYwAAQ7BYgBiAHIAYoAgggBigCDBCnBkEAIQUgACAGKAIAQQFxBH8gACAEIAYoAgQgBGoiAiABLQABayIBQQAgASACTRsiASABIARJGzYCBEECBSAFCzYCACAGQRBqJAALgAEBAn8gAUH/AXFB1InBAGosAAAiA0H/AHEhAiAAAn9BASADQQBODQAaIAJFBEAgAUHwAXFBBHZBi57jAGotAABBEHQgAUEPcUGLnuMAai0AAEEYdHJB3PABciECQQQMAQsgAkEIdEHcAHIhAkECCzoABSAAQQA6AAQgACACNgAAC30BA38gACgCACEBIAAoAgQiAigCCCEAIAIoAgAiAwRAIAEgAEEBa0F4cWpBCGogAxEBAAsCQCABQX9GDQAgASABKAIEIgNBAWs2AgQgA0EBRw0AQQQgACAAQQRNGyIAIAIoAgRqQQdqQQAgAGtxIgJFDQAgASACIAAQ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CCAEQQI2AhQgBEHwg8AANgIQIARCAjcCHCAEQQE2AjQgBEECNgIsIAQgAzYCPCAEIAI2AjggBCAEQShqNgIYIAQgBEE4ajYCMCAEIARBCGo2AiggBEEQahCiGSAEQUBrJAALcAEBfwJAAkAgAUH/////A00EQCABQf////8DRg0CIAEgAUECdEEHakF4cSICakEIaiIBIAJJDQEgAUH4////B00EQCAAIAI2AgggACABNgIEIABBCDYCAA8LDAILDAELIABBADYCAA8LIABBADYCAAuOAgEGfyMAQRBrIgUkAAJAIAAoAgBBgICAgHhGDQAgACgCCCIBQQJJDQAgACgCBCEDIAFBFU8EQCAFQQ9qIQYjAEGQIGsiAiQAAkAgASIAQQF2IgFBoMIeIAAgAEGgwh5PGyIEIAEgBEsbIgFBgQJPBEAgAkEIaiABQRAQwRQgAkEANgIYIAIgAigCDCIBNgIUIAIgAigCCCIENgIQIAMgACABIAQgAEHBAEkgBhD0ASACQRBqENkiDAELIAMgACACQRBqQYACIABBwQBJIAYQ9AELIAJBkCBqJAAMAQsgAUEEdCEBQRAhAANAIAAgAUYNASADIAAgA2oQhA0gAEEQaiEADAALAAsgBUEQaiQAC3YBBH8gACABENweQQEgASABQQFNGyIEQQFrIQIgACgCBCAAKAIIIgVBAnRqIQMCQANAIAIEQCADQQA2AgAgAkEBayECIANBBGohAwwBBQJAIAQgBWohAiABDQAgAkEBayECDAMLCwsgA0EANgIACyAAIAI2AggLhQEBAn8CQAJAAkACQAJAAkACQCAAKAIAQQFrDgcCAwEEBQYAAQsgAEEEahDYJgsPCyAAKAIEIAAoAggQ2SQPCyAAQQRqELQeDwsgAEEMahDJKA8LIABBBGoCQCAAKAIMIgJFDQAgACgCECIARQ0AIAIgAEEBENURCxDJKA8LIABBBGoQ2CYLggEBAn8jAEEgayIDJABBgICAgHghBCAAIAFBA0cEfyADQgA3AhggA0KAgICAwAA3AhAgA0EQaiACELEjIANBCGogA0EcaigCADYCACADIAMpAhQ3AwAgAygCEAUgBAs2AgAgACADKQMANwIEIABBDGogA0EIaigCADYCACADQSBqJAALeQIBfgN/IAAoAhAhAiAAKAIIIQMgACkDACEBA38g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OwGMAgNAIAFBCGogAUGMAmoQ6hIgAS0ACARAIAEtAAkiAiABQQxqaiACOgAADAEFIAAgAUEMakGAAhD7BhogAUGQAmokAAsLC3oBBH8Cf0GBgICAeCABKAIAIgNFDQAaIANBAnQhBCABKAIEIQUCQCACRQRAQQQhBiAFIARBBBDVEQwBC0EEIAUgBEEEIAJBAnQiAxD5AiIGRQ0BGgsgASACNgIAIAEgBjYCBEGBgICAeAshASAAIAM2AgQgACABNgIAC3YBAn8jAEEwayIBJAAgASAANgIMIAAtAABBAk8EQCABQQE2AhQgAUGQrMMANgIQIAFCATcCHCABQf4ANgIsIAEgAUEoajYCGCABIAFBDGo2AiggAUEQakGErcMAEMMdAAsgACgCBCAAQQxBBBDVESABQTBqJAALagECfyACBH8CQAJAIAEgAkEBayIDSwRAIAAgA2otAABB/JnEAGotAAAhBEEBIQMgASACSw0BDAILIAMgAUHMlsQAEKwQAAsgACACai0AAEH8mcQAai0AAEEBcyEDCyADIARxBUEAC0EBcQtyACAAQRxqIAEgAhC6ESAAQRhqIARBGGooAgA2AgAgAEEQaiAEQRBqKQIANwIAIABBCGogBEEIaikCADcCACAAIAQpAgA3AgAgACADKQIANwIoIABBMGogA0EIaikCADcCACAAQThqIANBEGopAgA3AgALWwECfwJAIAEgA0cNACABQQFqIQEDQCABQQFrIgFFIQQgAUUNASAALQAAIAItAABHDQEgAkEBaiEDIABBAWogAEECaiEAIAJBAmohAi0AACADLQAARg0ACwsgBAtpAQR/IwBBEGsiAiQAIAJBCGogASgCACIDQRBqKAIAIANBFGooAgAgASgCBCIDEKgYIAAgAigCCCIEBH8gAigCDCEFIAEgA0EBajYCBCAAQQRqIAQgBRC6EUEDBUEGCzoAACACQRBqJAALcAECfyMAQSBrIgEkAAJAIAAoAiBBAkYEQCAAQSRqIQIMAQsgASAANgIIIAEgAEEkaiICNgIMIAEgAUEfajYCGCABIAFBDGo2AhQgASABQQhqNgIQIABBIGogAUEQakH8y9gAEO4ECyABQSBqJAAgAgtqAQJ/IAFBBHQhAQNAIAEEQCAAQQRqKAIAIABBCGooAgAgAhDdCCACQQsgAC0ADCIEQQlrIgMgA0H/AXFBDU8bQf8BcSIDELsgIANBC0YEQCAEIAIQjyoLIABBEGohACABQRBrIQEMAQsLC+ECAhB/AX4jAEEgayIDJAACQCAAKAIAIgFFBEBBACEADAELEPQiIQAgASgCDCEKIAEoAhAhCyADQQxqIQUjAEFAaiICJAAgASgCBCEMIAJBCGogASgCCCIHQQhBMBD7FCACKAIIIgggB0H/////AHEiASABIAhLGyEGIAJBGGohDSACKAIMIQkDQCAGBEAgBCAMaiIBKQIAIREgDSABQQhqENYbIAFBKGovAQAhDiABQSpqLQAAIQ8gAUEgahD4JCEQIAFBJGoQ+CQhASACIA86ADogAiAOOwE4IAIgETcDECACIAE2AjQgAiAQNgIwIAQgCWogAkEQakEwENotGiAGQQFrIQYgBEEwaiEEDAELCyAFIAc2AgggBSAJNgIEIAUgCDYCACACQUBrJAAgAEEQaiALNgIAIAAgAykCDDcCACADIAo2AhggAEEIaiADQRRqKQIANwIACyADQSBqJAAgAAtyAQR/IwBBIGsiASQAAkAgACgCACICRQRAQQAhAAwBCxD0IiEAIAIoAgwhAyACKAIQIQQgAUEMaiACEKcNIABBEGogBDYCACAAIAEpAgw3AgAgASADNgIYIABBCGogAUEUaikCADcCAAsgAUEgaiQAIAALegECfyMAQSBrIgIkACAAIAEQhCMiAQRAIAAoAqACIQMgAEElNgKgAiAAIAApA7gCNwPwAiACQRRqIABBrAJqKQIANwIAIAJBHGogAEG0AmooAgA2AgAgAiAAKQKkAjcCDCACIAM2AgggAkEIahDGCgsgAkEgaiQAIAELegEDfyMAQRBrIgMkAAJAAkACQCABKAIAQQFrDgIBAQALIANBCGogAUEIahCpHCADKAIIIgIgASgCKBCjDyIEIAIgBEkbIQEgAiAEIAIgBEsbIQIMAQsgASgCDCECIAEoAgghAQsgACACNgIEIAAgATYCACADQRBqJAALeQEBfyMAQRBrIgEkAAJ/AkACQAJAAkACQAJAIAAoAgBBAWsOBgIBAgMEBQALIAEgAEEIahCuFSABKAIEDAULIAAoAgwMBAsgACgCFAwDCyAAKAIQDAILIAAoAggMAQsgAUEIaiAAKAIEEI0DIAEoAgwLIAFBEGokAAtrAQF/IwBBIGsiAiQAIAJBCGogAUElEJUJAkAgAigCCEElRwRAIAAgAikDCDcDACAAQRBqIAJBGGopAwA3AwAgAEEIaiACQRBqKQMANwMADAELIAAgAigCDDYCBCAAQSY2AgALIAJBIGokAAtrAQF/IwBBIGsiAiQAIAJBCGogAUEmEKsGAkAgAigCCEElRwRAIAAgAikDCDcDACAAQRBqIAJBGGopAwA3AwAgAEEIaiACQRBqKQMANwMADAELIAAgAigCDDYCBCAAQSY2AgALIAJBIGokAAtrAQF/IwBBIGsiAiQAIAJBCGogAUEqEJUJAkAgAigCCEElRwRAIAAgAikDCDcDACAAQRBqIAJBGGopAwA3AwAgAEEIaiACQRBqKQMANwMADAELIAAgAigCDDYCBCAAQSY2AgALIAJBIGokAAtsAQF/IwBBIGsiAiQAIAJBCGogAUH8ABCrBgJAIAIoAghBJUcEQCAAIAIpAwg3AwAgAEEQaiACQRhqKQMANwMAIABBCGogAkEQaikDADcDAAwBCyAAIAIoAgw2AgQgAEEmNgIACyACQSBqJAALcQECfyMAQRBrIgQkACAEQQhqIAIgAyABKAIIIgMQpxkgBCgCDCECIAEgBCgCCCIFNgIIIAAgAjYCDCAAIAE2AgggACADIAJrNgIQIAAgASgCBCIBIAJBOGxqNgIEIAAgASAFQThsajYCACAEQRBqJAALcgEBfyMAQdAAayICJAAgAkEIaiABEOsYIAJByABqIAJBIGopAwA3AgAgAkFAayACQRhqKQMANwIAIAJBOGogAkEQaikDADcCACAAQQA2AgAgAiACKQMINwIwIABBBGogAkEsakEkEPsGGiACQdAAaiQAC3MBBH8jAEEQayICJAAgAkEIakEAQQAgASgCCCIEEKcZIAIoAgwhAyABIAIoAggiBTYCCCAAIAM2AgwgACABNgIIIAAgBCADazYCECAAIAEoAgQiASADQdgAbGo2AgQgACABIAVB2ABsajYCACACQRBqJAALcQECfyMAQRBrIgQkACAEQQhqIAIgAyABKAIIIgMQpxkgBCgCDCECIAEgBCgCCCIFNgIIIAAgAjYCDCAAIAE2AgggACADIAJrNgIQIAAgASgCBCIBIAJBMGxqNgIEIAAgASAFQTBsajYCACAEQRBqJAALegEDfyMAQRBrIgMkAAJA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BGogARDNLAwCCyAAQQRqIAEQ+SwMAQsgAEEEaiABEMYPCyAAQShqIQAgAkEoayECDAELCwt5AQF/IAAoAghBKGwhAiAAKAIEIQADQCACBEACQAJAAkACQAJAIAAoAgBBAWsOBAABAgMECyAAQQRqIAEQiiIMAwsgAEEEaiABENUsDAILIABBBGogARD2LAwBCyAAQQRqIAEQxw8LIABBKGohACACQShrIQIMAQsLC3kBAX8gACgCCEEobCECIAAoAgQhAANAIAIEQAJAAkACQAJAAkAgACgCAEEBaw4EAAECAwQLIABBBGogARCJIgwDCyAAQQRqIAEQ1iwMAgsgAEEEaiABEPUsDAELIABBBGogARDIDwsgAEEoaiEAIAJBKGshAgwBCwsLeQEBfyAAKAIIQShsIQIgACgCBCEAA0AgAgRAAkACQAJAAkACQCAAKAIAQQFrDgQAAQIDBAsgAEEEaiABEI4iDAMLIABBBGogARDTLAwCCyAAQQRqIAEQ+ywMAQsgAEEEaiABEMkPCyAAQShqIQAgAkEoayECDAELCwt5AQF/IAAoAghBKGwhAiAAKAIEIQADQCACBEACQAJAAkACQAJAIAAoAgBBAWsOBAABAgMECyAAQQRqIAEQiyIMAwsgAEEEaiABENcsDAILIABBBGogARD3LAwBCyAAQQRqIAEQyg8LIABBKGohACACQShrIQIMAQsLC3kBAX8gACgCCEEobCECIAAoAgQhAANAIAIEQAJAAkACQAJAAkAgACgCAEEBaw4EAAECAwQLIABBBGogARCTIgwDCyAAQQRqIAEQgi0MAgsgAEEEaiABEJktDAELIABBBGogARDLDwsgAEEoaiEAIAJBKGshAgwBCwsLeQEBfyAAKAIIQShsIQIgACgCBCEAA0AgAgRAAkACQAJAAkACQCAAKAIAQQFrDgQAAQIDBAsgAEEEaiABEJUiDAMLIABBBGogARCHLQwCCyAAQQRqIAEQmC0MAQsgAEEEaiABEMwPCyAAQShqIQAgAkEoayECDAELCwt5AQF/IAAoAghBKGwhAiAAKAIEIQADQCACBEACQAJAAkACQAJAIAAoAgBBAWsOBAABAgMECyAAQQRqIAEQmCIMAwsgAEEEaiABEIYtDAILIABBBGogARCXLQwBCyAAQQRqIAEQzQ8LIABBKGohACACQShrIQIMAQsLC3kBAX8gACgCCEEobCECIAAoAgQhAANAIAIEQAJAAkACQAJAAkAgACgCAEEBaw4EAAECAwQLIABBBGogARCXIgwDCyAAQQRqIAEQii0MAgsgAEEEaiABEJYtDAELIABBBGogARDODwsgAEEoaiEAIAJBKGshAgwBCwsLeQEBfyAAKAIIQShsIQIgACgCBCEAA0AgAgRAAkACQAJAAkACQCAAKAIAQQFrDgQAAQIDBAsgAEEEaiABEJQiDAMLIABBBGogARCFLQwCCyAAQQRqIAEQmi0MAQsgAEEEaiABEM8PCyAAQShqIQAgAkEoayECDAELCwt5AQF/IAAoAghBKGwhAiAAKAIEIQADQCACBEACQAJAAkACQAJAIAAoAgBBAWsOBAABAgMECyAAQQRqIAEQuyIMAwsgAEEEaiABEKYtDAILIABBBGogARCtLQwBCyAAQQRqIAEQ0A8LIABBKGohACACQShrIQIMAQsLC3kBAX8gACgCCEEobCECIAAoAgQhAANAIAIEQAJAAkACQAJAAkAgACgCAEEBaw4EAAECAwQLIABBBGogARCzIgwDCyAAQQRqIAEQpS0MAgsgAEEEaiABEK4tDAELIABBBGogARDRDwsgAEEoaiEAIAJBKGshAgwBCwsLcgECfyMAQRBrIgIkAAJAIAFBgAFPBEAgAkEANgIMIAIgASACQQxqEOQJIAAgAigCACACKAIEEPYdDAELIAAoAggiAyAAKAIARgRAIAAQ9xcLIAAgA0EBajYCCCAAKAIEIANqIAE6AAALIAJBEGokAEEAC14BAn8CQCABRQ0AA38gAUEBTQR/IAAgA0EobGooAhgiACACRg0CIAMgACACSWoFIAMgAUEBdiIEIANqIgMgACADQShsaigCGCACSxshAyABIARrIQEMAQsLIQMLIAMLeQEBfyAAKAIIQShsIQIgACgCBCEAA0AgAgRAAkACQAJAAkACQCAAKAIAQQFrDgQAAQIDBAsgAEEEaiABEMgiDAMLIABBBGogARC4LQwCCyAAQQRqIAEQ1C0MAQsgAEEEaiABENQPCyAAQShqIQAgAkEoayECDAELCwt2AQF/IAAoAghBOGwhAiAAKAIEIQADQAJAIAIEQAJAAkACQCAAKAIAQQFrDgIBAgALIABBCGogARDGIiAAQShqIAEQxS0MAwsg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AADwf2ENABpBAiAIQoCAgICAgID4/wCDIglCgICAgICAgPj/AFENABogCEL/////////B4MiDEKAgICAgICACIQgCEIBhkL+////////D4MgCEI0iKdB/w9xIgIbIgpCAYMhCyAJUARAQQQgDFANARogAkGzCGshAkIBIQkgC1AMAQtCgICAgICAgCAgCkIBhiAKQoCAgICAgIAIUSIDGyEKQgJCASADGyEJQct3Qcx3IAMbIAJqIQIgC1ALIQMgACACOwGIASAAIAk3A4ABIABCATcDeCAAIAo3A3AgACADOgCKAQJAAkACQAJAAkACQCADQQJrIgMEQEEBIQJBmOTgAEGGsOAAIAhCAFMiBRtBmOTgAEEBIAUbIAQbIQVBASAIQj+IpyAEGyEGQQMgAyADQQNPG0ECaw4CAgMBCyAAQQM2AiAgAEHkxd8ANgIcIABBAjsBGEEBIQVBASECDAMLIABBAzYCICAAQZDuwAA2AhwgAEECOwEYDAILIABBAzYCICAAQZPuwAA2AhwgAEECOwEYDAELIABB4ABqIABB8ABqIgQgAEEHaiICEKIBAkAgACgCYEUEQCAAQZABaiAEIAIQRAwBCyAAQZgBaiAAQegAaigCADYCACAAIAApAmA3A5ABCyAAKAKUASICRQ0BIAAoApABIgMtAABBME0NAiAALgGYASEEIABBATYCICAAIAM2AhwgAEECOwEYAn8gAkEBRgRAQQEhAiAAQSRqDAELIABBAjsBMCAAQYO24AA2AiggAEECOwEkIAAgAkEBazYCOCAAQQE2AiwgACADQQFqNgI0QQMhAiAAQTxqCyIDQQJBASAEQQBMIgcbNgIIIANBrOLYAEG8vOAAIAcbNgIEIANBAjsBACAAQRhqIAJBDGxqIgNBDmpBASAEayAEQQFrIAcbOwEAIANBDGpBATsBACACQQJqIQILIAAgAjYCbCAAIAY2AmQgACAFNgJgIAAgAEEYajYCaCABIABB4ABqELcEIABBoAFqJAAMAgtB6OvAAEEhQfDtwAAQ9BcAC0HA7cAAQR9BgO7AABD0FwALC3EBAX8gAAJ/AkACQAJAAkAgASgCAEEBaw4DAQIDAAsgASgCBAwDC0EBIQIgASgCBAwCCyABKAIIIgEgASgCAEGIgMQARiICQQJ0agwBCyABKAIIIgEgASgCAEGIgMQA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KAIEIgItAFANAiACLQBRRQ0BDAILIAAtACQNAQsgABDJHCEBCyABC10BBH8gASAAKAIIIgIoAgAgACgCECIEIAAoAgwiA2oiBWtLBEAgAiAFIAFBCEEwELcXCyACKAIEIgIgASADaiIBQTBsaiACIANBMGxqIARBMGwQ2i0aIAAgATYCDAtvAQF/IwBBIGsiACQAQZSM5AAoAgBBAkcEQCAAQYyM5AA2AgggAEGMjOQANgIMIAAgAEEfajYCGCAAIABBDGo2AhQgACAAQQhqNgIQQZSM5AAgAEEQakHsy98AEO4EC0GQjOQAKAIAGiAAQSBqJAALawECfyABKAIAIQIgAUEANgIAAkAgAS0APA0AIAEoAgQhAyABKAIoIAEoAhAgASgCFBCCDyABKAI4BEAgAUEANgI0IAEgASgCMEEBajYCMAsgAUEBOgA8IAJFDQAgASADEJwECyAAQQQ6AAALZAECfyMAQRBrIgIkAAJ/IAEoAgAiAwRAIAJBCGogAyABKAIEEOIWIAIoAgghAyACKAIMDAELIAIgASgCBBCCCiACKAIAIQMgAigCBAshASAAIAM2AgAgACABNgIEIAJBEGokAAtWAQF+AkAgA0HAAHFFBEAgA0UNASACQQAgA2tBP3GthiABIANBP3GtIgSIhCEBIAIgBIghAgwBCyACIANBP3GtiCEBQgAhAgsgACABNwMAIAAgAjcDCAthAQN/AkAgASgCBCICBH8gASgCACIDKAIsIgQgAk0NASABIAMoAiggAkEDdGoiASgCBDYCBCABKAIAIQJBAQVBAAshASAAIAI2AgQgACABNgIADwsgAiAEQaiBxAAQrBAAC2cBAX8jAEEQayICJAAgAiAANgIMIAIgATYCCCAAQSBqEOYiIABBADYCICACQQhqEJkEIABBMGogASgC+AQoAsgCIgEQtxAgAEHMAGogARC3ECAAQQA2ArABIABBADYCbCACQRBqJAALYwECfwJAIAEoAhQiAkUEQCABKAIIIQNBACECDAELIAEoAggiAyABKAIQIAJBA3RqQQRrKAIAIgJPDQAgAiADQZyIxAAQrRAACyAAIAMgAms2AgQgACABKAIEIAJBA3RqNgIAC2IBAn8jAEEQayIDJAAgA0EEaiACQQFBARChCyADKAIIIQQgAygCBEEBRgRAIAQgAygCDBDhKQAL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AgBFDQEgACABEIotDAELDwsgAkE4ayECIABBOGohAAwACwALUAEBfyAAKAIIQThsIQIgACgCBEEwaiEAA0ACQCACBEAgAEEwayABELESIAAoAgBFDQEgACABEKUtDAELDwsgAkE4ayECIABBOGohAAwACwALUAEBfyAAKAIIQThsIQIgACgCBEEwaiEAA0ACQCACBEAgAEEwayABEIgJIAAoAgBFDQEgACABEKYtDAELDwsgAkE4ayECIABBOGohAAwACwALVgEBfyMAQRBrIgIkAAJ/IAAoAgBBAkYEQCABKAIUQbjw4ABBBCABKAIYKAIMEQMADAELIAIgADYCDCABQbzw4ABBBCACQQxqQZ4FEMwKCyACQRBqJAALVAIBfwF+IwBBEGsiAyQAIANBCGogAiABQQAQfQJAAkAgAy0ACEEERwRAIAMpAwgiBEL/AYNCBFINAQsgAEEEOgAADAELIAAgBDcCAAsgA0EQaiQAC1UCAX8BfiMAQRBrIgMkACADQQhqIAEgAkEAEOcEAkACQCADLQAIQQRHBEAgAykDCCIEQv8Bg0IEUg0BCyAAQQQ6AAAMAQsgACAENwIACyADQRBqJAALRQEDfyMAQSBrIgMkAAJAA0AgASACRg0BIANBBGogABDcBSADKAIEBEAgAkEBaiECDAELCyABIAJrIQQLIANBIGokACAEC0UBA38jAEEgayIDJAACQANAIAEgAkYNASADQQRqIAAQywogAygCBARAIAJBAWohAgwBCwsgASACayEECyADQSBqJAAgBAtSAQF/IwBBEGsiAiQAAn8gACgCAARAIAIgADYCDCABQaeCxABBBSACQQxqQT0QzAoMAQsgASgCFEGsgsQAQQkgASgCGCgCDBEDAAsgAkEQaiQAC1YBAX8jAEEQayICJAAgAiAAKAIAIgBBDGo2AgwgAUH4gcQAQQhB4LvAAEEDIABBPkHju8AAQQwgAEEIakEVQZyCxABBCyACQQxqQSYQ5gogAkEQaiQAC1UBAX8CQCACQQBOBEACQCACRQRAQQEhAwwBC0GwmOQALQAAGiACEGAiA0UNAgsgAyABIAIQ+wYhASAAIAI2AgggACABNgIEIAAgAjYCAA8LEKwbCwALUAEEfyABIAAoAggiAigCACAAKAIQIgQgACgCDCIDaiIFa0sEQCACIAUgARCgGAsg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IAQgACADKAI0EQAAIAFBEGokACAAKQMAIQYjAEEQayIBJAAgAigCCCEDIAIoAgQhBCACKAIAQQFGBEAgAUEIaiAEIAMQxR8gASgCCCEEIAEoAgwhAwsgBCAGIAMoAkARJwAaIAFBEGokACAFRQ0AIAAoAgwiAiACKAIAIgJBAWs2AgAgAkEBRw0AIABBDGoQtA4LC1QBAn8jAEEQayIDJAAgAi0APSEEIAMgACABEMAjIAMoAgghASADKQMAIQACQCAERQRAIAIgACABEKsRDAELIAIgACABIAItAD4QmwYLIANBEGokAAtMAQF/IAAoAghBOGwhASAAKAIEQTBqIQADQAJAIAEEQCAAQTBrELEUIAAoAgBFDQEgABDrLQwBCw8LIAFBOGshASAAQThqIQAMAAsAC08BAn8gASAAKAIIIgJJBEBBACECIAAoAgAiAygCACAAKAIEIAFBFGxqIgAoAgBGBH8gAygCBCAAKAIERgUgAgsPCyABIAJBmLjfABCsEAALTAIBfwF+AkAgASgCGEUNACABEI4PIQIgASABKAIYQQFrNgIYIAJFDQAgAkEIaygCACEBIAJBEGspAwAhAwsgACABNgIIIAAgAzcDAAtMAQJ/IAAoAghBKGwhAiAAKAIEIQEDQCACBEAgASgCAEEHRwRAIAEQ8BMLIAFBKGohASACQShrIQIMAQsLIABBFGoQrCogAEEAOgAYC1cBA38gACgCBCEDIAAoAgAhASAAQoiAgICAATcCACADIAFrQdgAbiECAkAgASADRg0AA0AgAkUNASACQQFrIQIgARDICCABQdgAaiEBDAALAAsgABDKEgtMAQF/IAAoAghBOGwhASAAKAIEQTBqIQADQAJAIAEEQCAAQTBrEO8TIAAoAgBFDQEgABD7LQwBCw8LIAFBOGshASAAQThqIQAMAAsAC0wBAX8gACgCCEE4bCEBIAAoAgRBMGohAANAAkAgAQRAIABBMGsQ8BMgACgCAEUNASAAEP0tDAELDwsgAUE4ayEBIABBOGohAAwACwALTAECfyAAQgA3AgwgACgCCEEobCECIAAoAgQhAQNAIAIEQCABKAIAQQdHBEAgARCwEgsgAUEoaiEBIAJBKGshAgwBCwsgAEEUahCUJgtfAAJAAkACQAJAAkACQAJAIAAoAgBBAWsOBgECAwQFBgALIABCADcDEA8LIABCADcCBA8LIABCADcCBA8LIABCADcDCA8LIABCADcDCA8LIABCADcDGA8LIABCADcDGAtVAQN/IAAoAgQhAyAAKAIAIQEgAEKIgICAgAE3AgAgAyABa0EwbiECAkAgASADRg0AA0AgAkUNASACQQFrIQIgARDhAyABQTBqIQEMAAsACyAAENYSC0UBBH8gACgCBCEFIAAoAgAhAwJAA0AgASACRg0BIAMgBUcEQCAAIANBDGoiAzYCACACQQFqIQIMAQsLIAEgAmshBAsgBAtQAQJ/IwBBEGsiBSQAIAVBCGogASACIAMQpxMgBSgCCCIGRQRAIAIgAyABIAMgBBDUJgALIAUoAgwhASAAIAY2AgAgACABNgIEIAVBEGokAAtQAQN/IAAtAABBA0YEQCAAKAIEIgAoAgAhAiAAKAIEIgMoAgAiAQRAIAIgAREBAAsgAygCBCIBBEAgAiABIAMoAggQ1RELIABBDEEEENURCwtXAQJ/AkACQAJAAkACQEELIAAoAgAiAkGAgICAeHMiASABQRJPGyIBDgMCAQMACyABQQtGDQMLDwsgAEEEahDmFA8LIABBBGoQnRkPCyACIAAoAgQQ2ikLXgECfwJAAkACQAJAIAEoAgBBgICAgHhzDgMAAQIDCyABQQRqIQJBvM3gACEDDAILIAFBBGohAkH4zeAAIQMMAQsgAUEEaiECQbTO4AAhAwsgACADNgIEIAAgAjYCAAtJAQN/IAEhAyACIQQgASgCACIFBEAgAS8BMCEEIAJBAWohAwsgAUHkAEE0IAIbQQQQ1REgACAFNgIAIAAgA60gBK1CIIaENwIEC1MBAX8jAEEQayICJAAgAiAAQYECajYCDCABQeWawABBDEHxmsAAQQcgAEEfQeCawABBBSAAQYACakEdQfiawABBBSACQQxqQRcQ5gogAkEQaiQAC1EBAX8jAEEQayICJAAgAiAAQQJqNgIMIAFBqpvAAEEPQeCawABBBSAAQR1B+JrAAEEFIABBAWpBHUGLm8AAQQUgAkEMakEXEOYKIAJBEGokAAtTAQJ/IABBADoAICAAKAIIIQIgAEEANgIIIAAoAgQhAQNAIAIEQCABKAIAIAFBBGooAgAQ2ikgAkEBayECIAFBDGohAQwBCwsgAEKAgICAcDcCFAtPAQJ/IwBBEGsiAyQAIANBCGogAkEEQQQQvhQgAygCCCEEIAMoAgwgASACQQJ0EPsGIQEgACACNgIIIAAgATYCBCAAIAQ2AgAgA0EQaiQAC0wBA38gASgCACICIAFBBGsiAygCACIESQRAA0ACQCADIgFBBGogBDYCACAAIAFGDQAgAiABQQRrIgMoAgAiBEkNAQsLIAEgAjYCAAsLTQEBfyMAQTBrIgEkACABQQE2AgwgAUGY78AANgIIIAFCATcCFCABIAFBL2qtQoCAgICgCYQ3AyAgASABQSBqNgIQIAFBCGogABDDHQALTQEBfyMAQTBrIgEkACABQQE2AgwgAUG878AANgIIIAFCATcCFCABIAFBL2qtQoCAgICwCYQ3AyAgASABQSBqNgIQIAFBCGogABDDHQALTAECfyAAQf8BcUEDRgRAIAEoAgAhACABKAIEIgMoAgAiAgRAIAAgAhEBAAsgAygCBCICBEAgACACIAMoAggQ1RELIAFBDEEEENURCwtZAQF/IAEoAgwhAgJAAkACQAJAIAEoAgQOAgABAgsgAg0BQQEhAUEAIQIMAgsgAg0AIAEoAgAiASgCBCECIAEoAgAhAQwBCyAAIAEQsAYPCyAAIAEgAhDBFQtPAQJ/IwBBEGsiAiQAIAJBCGpBAUEBEKQZIAIoAggiA0UEQEEBQQEQ4SkACyAAQQE2AgggACADNgIEIABBATYCACADIAE6AAAgAkEQaiQAC1EBAX8jAEEQayICJAAgAiAAQQhqNgIMIAFBt4zEAEEJQZ6exABBAyAAQT5BwIzEAEEHIABBDGpBFEHHjMQAQQ4gAkEMakEmEOYKIAJBEGokAAtUAQF/IwBBEGsiAiQAIAIgAEGMA2o2AgwgAUGngsQAQQVBpIzEAEEIIABBlAFBrIzEAEELIABBMGpBlQFBnILEAEELIAJBDGpBJhDmCiACQRBqJAALWQEBfyABKAIMIQICQAJAAkACQCABKAIEDgIAAQILIAINAUEBIQFBACECDAILIAINACABKAIAIgEoAgQhAiABKAIAIQEMAQsgACABELAGDwsgACABIAIQkRELTwECfyMAQRBrIgMkACADQQhqIAJBBEEIEPsUIAMoAgghBCADKAIMIAEgAkEDdBD7BiEBIAAgAjYCCCAAIAE2AgQgACAENgIAIANBEGokAAtPAQJ/IwBBEGsiAyQAIANBCGogAkEBQQIQ+xQgAygCCCEEIAMoAgwgASACQQF0EPsGIQEgACACNgIIIAAgATYCBCAAIAQ2AgAgA0EQaiQAC00BAn8jAEEQayIBJAAgACgCECICBEAgAUEEaiAAKAIEIAAoAgggAkEBahDmDSAAKAIMIAEoAgxrIAEoAgQgASgCCBC6JAsgAUEQaiQAC1kBAX8gASgCDCECAkACQAJAAkAgASgCBA4CAAECCyACDQFBASEBQQAhAgwCCyACDQAgASgCACIBKAIEIQIgASgCACEBDAELIAAgARCwBg8LIAAgASACEMsVC08BAX8jAEEQayIEJAAgBEEEaiABIAIgAxChCyAEKAIIIQEgBCgCBEUEQCAAIAQoAgw2AgQgACABNgIAIARBEGokAA8LIAEgBCgCDBDhKQALWwEBfwJAAkACQAJAAkAgACgCACIBQQdrQQAgAUEITxsOBAABAgMECyAAEP0NDwsgACgCBCAAKAIIENopDwsgACgCBCAAKAIIEOUpDwsgACgCBCAAKAIIEPcpCwtMAQN/IAEhAyACIQQgASgCiAIiBQRAIAEvAZADIQQgAkEBaiEDCyABQcgDQZgDIAIbQQgQ1REgACAFNgIAIAAgA60gBK1CIIaENwIEC08BAX8jAEEQayIDJAAgA0EEaiABIAJBGBChCyADKAIIIQEgAygCBEUEQCAAIAMoAgw2AgQgACABNgIAIANBEGokAA8LIAEgAygCDBDhKQALTwEBfyMAQRBrIgIkACACQQRqIAFBAUEBEKELIAIoAgghASACKAIERQRAIAAgAigCDDYCBCAAIAE2AgAgAkEQaiQADwsgASACKAIMEOEpAAtZAQF/IAEoAgwhAgJAAkACQAJAIAEoAgQOAgABAgsgAg0BQQEhAUEAIQIMAgsgAg0AIAEoAgAiASgCBCECIAEoAgAhAQwBCyAAIAEQsAYPCyAAIAEgAhCeFgtSAQF/QbCY5AAtAAAaQSAQYCIDRQRAAAsgAyABNgIEIAMgADYCACADIAIpAwA3AwggA0EQaiACQQhqKQMANwMAIANBGGogAkEQaikDADcDACADC1EAIAAgASkBqgI3AQQgAEEZaiABQb8CaikAADcAACAAQRRqIAFBugJqKQEANwEAIABBDGogAUGyAmopAQA3AQAgAUEoaiACENIIIAAgATYCAAtKAQF/IwBBQGoiASQAIAFBGGogAEEQaikDADcDACABQRBqIABBCGopAwA3AwAgAUEaNgIAIAEgACkDADcDCCABENwoIAFBQGskAAtKAQF/IwBBQGoiASQAIAFBFGogAEEQaigCADYCACABQQxqIABBCGopAgA3AgAgAUEZNgIAIAEgACkCADcCBCABENwoIAFBQGskAAtKAQF/IwBBQGoiASQAIAFBFGogAEEQaigCADYCACABQQxqIABBCGopAgA3AgAgAUEWNgIAIAEgACkCADcCBCABENwoIAFBQGskAAtKAQF/IwBBQGoiASQAIAFBFGogAEEQaikCADcCACABQQxqIABBCGopAgA3AgAgAUEdNgIAIAEgACkCADcCBCABENwoIAFBQGskAAtPAQF/IwBBEGsiAyQAIANBBGogAUEIIAIQoQsgAygCCCEBIAMoAgRFBEAgACADKAIMNgIEIAAgATYCACADQRBqJAAPCyABIAMoAgwQ4SkAC1sAAkAgAiADQam64ABBBRDrH0UEQCACIANBprbgAEEHEOsfDQEgAiADQa224ABBBhDrH0UEQCAAQQY6AAAPCyAAQYA8OwEADwsgAEGCAjsBAA8LIABBgD47AQALWwACQCACIANBxLrgAEEGEOsfRQRAIAIgA0HyteAAQQgQ6x8NASACIANBlbfgAEEHEOsfRQRAIABBBjoAAA8LIABBgCo7AQAPCyAAQYIaOwEADwsgAEGAEjsBAAtZAQF/IAEoAgwhAgJAAkACQAJAIAEoAgQOAgABAgsgAg0BQQEhAUEAIQIMAgsgAg0AIAEoAgAiASgCBCECIAEoAgAhAQwBCyAAIAEQsAYPCyAAIAEgAhC6EQtUAQF/IwBBEGsiAiQAIAIgAEEQajYCDCABQait2QBBA0HP0uAAQQQgAEEIakH9AEHc4OAAQQUgAEHpA0GVs9kAQQMgAkEMakHkAxDmCiACQRBqJAALVAEBfyMAQRBrIgIkACACIAA2AgwgAUGMpdkAQQlBz9LgAEEEIABBDGpB/QBBxK/ZAEEEIABBFGpB6ANBlaXZAEEFIAJBDGpB/wIQ5gogAkEQaiQAC0kBAn8gACgCCEEobCEDIAAoAgQhAgNAIAMEQCACKAIAQQdHBEAgAiABEMkRCyACQShqIQIgA0EoayEDDAELCyAAQRRqIAEQ0SMLRgEBfyAAKAIMBEAgACgCBCIBBEAgACgCAEH/ASABQQlqEI0LGgsgAEEANgIMIAAgASABQQFqQQN2QQdsIAFBCEkbNgIICwtXAQF/QbCY5AAtAAAaQRwQYCICRQRAAAsgAkIANwIIIAJCgICAgIABNwIAIAJBEGpCADcCACACQRhqQQA7AQAgACABQSgQ+wYaIAEgAjYCBCABQQI2AgALWAIBfwF+IwBBEGsiAiQAIAEoAgBBAUYEQEHcvd8AQSpBiL7fABC7EgALIAIgASkDCCABKAIYEMAjIAIpAwAhAyAAIAIoAgg2AgggACADNwMAIAJBEGokAAtKAQF/IwBBQGoiASQAIAFBFGogAEEQaigCADYCACABQQxqIABBCGopAgA3AgAgAUEONgIAIAEgACkCADcCBCABENwoIAFBQGskAAtKAQF/IwBBQGoiASQAIAFBFGogAEEQaigCADYCACABQQxqIABBCGopAgA3AgAgAUESNgIAIAEgACkCADcCBCABENwoIAFBQGskAAtJAQJ/IAAoAghBKGwhAyAAKAIEIQIDQCADBEAgAigCAEEHRwRAIAIgARCuEQsgAkEoaiECIANBKGshAwwBCwsgAEEUaiABEPIjC0wBAn8jAEEQayIBJAAgACgCBCICBEAgABCFDCABQQRqQSBBCCACQQFqEOYNIAAoAgAgASgCDGsgASgCBCABKAIIELokCyABQRBqJAALTgECfyAAKAIMIAAoAgQiAWtBBXYhAgNAIAIEQCABQRBqKQMAEO0mIAEpAwAQ+RogAkEBayECIAFBIGohAQwBCwsgACgCCCAAKAIAEPkpC1UBAX8CQAJAAkBBASAALQAsQQNrIgEgAUH/AXFBA08bQf8BcUEBaw4CAQIACyAAQgA3AwgPCyAAELYdDwsgAEIANwMYIABCADcDCCAAQSBqQgA3AwALTwEBfyMAQRBrIgMkACADQQRqIAFBBCACEKELIAMoAgghASADKAIERQRAIAAgAygCDDYCBCAAIAE2AgAgA0EQaiQADwsgASADKAIMEOEpAAtTAQN/IAEoAgAhAyABKAIEIQQCQANAIAMiAiAERg0BIAEgAkFAayIDNgIAIAItADxBBkYNAAsgACACNgIIIAAgASgCCCkCADcCAA8LIABBADYCAAtSACAAIAEpAYIDNwEEIABBGWogAUGXA2opAAA3AAAg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An8gABDdGiEBIAAoAhAhAiAAAn9BASABQYABSQ0AGkECIAFBgBBJDQAaQQNBBCABQYCABEkbCyACajYCEAtFAQF/IwBBEGsiAyQAIAFBAXEEfyADQQhqIAIQgB0gAygCDCECIAMoAggFQQALIQEgACACNgIEIAAgATYCACADQRBqJAALPwECfyAAEN4KIQEgACgCECECIAACf0EBIAFBgAFJDQAaQQIgAUGAEEkNABpBA0EEIAFBgIAESRsLIAJqNgIQC1AAIAAQoRwgACgCACAAQQRqKAIAEJQqIABBDGoQ7iYgACgCGEGAgICAeEcEQCAAQRhqEOkmCyAAQTxqENUdIABBQGsQtScgAEHIAEEEENURC0YBAn8gAC0ANARAIAEoAghBKGwhAiABKAIEIQMDQCACBEAgACADELUVIAJBKGshAiADQShqIQMMAQsLIAFBDGogABDRIwsLTwAgAC0ANARAAkACQAJAAkAgASgCAEEBaw4DAQIDAAsgACABQQhqENAZDwsgAUEEaiAAEI0VDwsgACABQQRqEK8lDwsgAUEEaiAAEIgNCwtJAQJ/IwBBEGsiAiQAIAJBCGogARDVHCAAIAIoAggiAyABKAIgEKMPIgEgASADSRs2AgQgACADIAEgASADSxs2AgAgAkEQaiQAC0gBAn8gACgCCEEGdCECIAAoAgQhAwNAIAIEQCABIAMQ2B4gAkFAaiECIANBQGshAwwBCwsgAEEMaiABEMUaIABBGGogARCYJAtIAQJ/IAAoAghBBnQhAiAAKAIEIQMDQCACBEAgAyABELMmIAJBQGohAiADQUBrIQMMAQsLIABBDGogARDIGiAAQRhqIAEQmSQLSAECfyAAKAIIQQZ0IQIgACgCBCEDA0AgAgRAIAMgARC1JiACQUBqIQIgA0FAayEDDAELCyAAQQxqIAEQxxogAEEYaiABEJskC0QBAn8CQCABKAIYRQ0AIAEQ8A4hAiABIAEoAhhBAWs2AhggAkUNACACQQhrIQEgAkEYayEDCyAAIAE2AgQgACADNgIAC0oBA38gACgCACICBEAgACgCBCIDKAIAIgEEQCACIAERAQALIAMoAgQiAQRAIAIgASADKAIIENURCyAAKAIMIAAoAggoAgwRAQALC1ABAX8jAEEQayICJAAgAkEIaiABIAEoAgAoAgQRAAAgAiAC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ACgCBCEBA0AgAgRAIAEoAgBBB0cEQCABEO8TCyABQShqIQEgAkEoayECDAELCyAAQRRqEPolC38BAn5B2JHkACkDAFAEQEEBQQAQ3BohAkHYkeQAKQMAQdiR5AAgAjcDABDsGAtB2JHkACkDABD8GiECIAAgASkDADcDACABIAI3AwAgAEEQaiABQRBqKQMANwMAIABBCGogAUEIaiIAKQMANwMAIABCADcDACABQQ1qQgA3AAALRwECfyAAKAIEIgFBDGohAiAAKAIMIAFrQQR2IQEDQCABBEAgAUEBayEBIAIQxwIgAkEQaiECDAELCyAAKAIIIAAoAgAQ7SkLUwEBfyMAQSBrIgIkACACQQE6AA8gAiABKQGCAzcAAyACIAEoAYoDNgALIAIgASkAjwM3ABAgAiABKQCXAzcAGCAAIAEgAkEDahCZFSACQSBqJAALQAEBfyMAQRBrIgIkACACIAAgAUGAAXFBA3ZqIgApAwAgAEEIaikDACABQf8AcRC2ESACKAIAIAJBEGokAEEBcQtGAQF/IwBBEGsiAiQAIAIgATYCDCACIAA2AghBfyEBA0AgAUEBaiEBIAIgAkEIahC3ESACKAIAQQFGDQALIAJBEGokACABC08BAn8gACgCBCECIAAoAgAhAwJAIAAoAggiAC0AAEUNACADQdDH4ABBBCACKAIMEQMARQ0AQQEPCyAAIAFBCkY6AAAgAyABIAIoAhARAgALhAEBA38gACgCCCIDIAAoAgBGBEAjAEEQayICJAAgAkEIaiAAIAAoAgBBAUEEQQwQnwggAigCCCIEQYGAgIB4RwRAIAQgAigCDBDhKQALIAJBEGokAAsgACADQQFqNgIIIAAoAgQgA0EMbGoiACABKQIANwIAIABBCGogAUEIaigCADYCAAtTAEGwmOQALQAAGkEUEGAiAUUEQAALIAFBADoAESABQoSAgIDAADcACSABQQA6AAggASADNgIEIAEgAjYCACAAQQE2AgggACABNgIEIABBATYCAAtPAQF/QQEhAgJAAkAgAEH/AXFBAUYNACABIQICQAJAAkAgAUH/AXFBAWsOAgMBAAsgAEH/AXENAQwDCyAAQf8BcQ0CC0EAIQILIAIPC0ECC0gBAX8gACgCCCICIAAoAgBGBEAgABCAFwsgACACQQFqNgIIIAAoAgQgAkEMbGoi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QQFqEOYNIAAgAigCDGsgAigCBCACKAIIELokCyACQRBqJAALQwECfyAAKAIMIAAoAgQiAWtBBHYhAgNAIAIEQCABKQMAEPkaIAJBAWshAiABQRBqIQEMAQsLIAAoAgggACgCABDvKQtCAQJ/IABBADoAOSABKAI4QQxsIQIgASgCNCEDA0AgAgRAIAMgABDeKyACQQxrIQIgA0EMaiEDDAELCyABIAAQyRELPwEBfyAAKAIIQShsIQIgACgCBCEAA0AgAgRAIAAoAgBBB0cEQCAAIAEQrxQLIABBKGohACACQShrIQIMAQsLCz8BAX8gACgCCEEobCECIAAoAgQhAANAIAIEQCAAKAIAQQdHBEAgACABEMoRCyAAQShqIQAgAkEoayECDAELCws/AQF/IAAoAghBKGwhAiAAKAIEIQADQCACBEAgACgCAEEHRwRAIAAgARDMEQsgAEEoaiEAIAJBKGshAgwBCwsLPwEBfyAAKAIIQShsIQIgACgCBCEAA0AgAgRAIAAoAgBBB0cEQCAAIAEQsBQLIABBKGohACACQShrIQIMAQsLCz8BAX8gACgCCEEobCECIAAoAgQhAANAIAIEQCAAKAIAQQdHBEAgACABELIUCyAAQShqIQAgAkEoayECDAELCws/AQF/IAAoAghBKGwhAiAAKAIEIQADQCACBEAgACgCAEEHRwRAIAAgARCtEQsgAEEoaiEAIAJBKGshAgwBCwsLPwEBfyAAKAIIQShsIQIgACgCBCEAA0AgAgRAIAAoAgBBB0cEQCABIAAQsAkLIABBKGohACACQShrIQIMAQsLCz8BAX8gACgCCEEobCECIAAoAgQhAANAIAIEQCAAKAIAQQdHBEAgACABELMUCyAAQShqIQAgAkEoayECDAELCws/AQF/IAAoAghBKGwhAiAAKAIEIQADQCACBEAgACgCAEEHRwRAIAAgARC0FAsgAEEoaiEAIAJBKGshAgwBCwsLTAACQAJAAkACQCAAKAIAQQFrDgMBAgMACyAAKQMIIAAoAhggARDBHA8LIABBBGogARCTFQ8LIABBBGogARDuJQ8LIABBBGogARC+Cws/AQF/IAAoAghBKGwhAiAAKAIEIQADQCACBEAgACgCAEEHRwRAIAAgARC2FAsgAEEoaiEAIAJBKGshAgwBCwsLPwEBfyAAKAIIQShs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An8gACgCECICBEAgACgCDCACQQN0akEEaygCACEBCyABIAJBAXRrIgBBACAAIAFNGws+AQF/A0AgAQRAIABBBGoiAigCACAAQQhqKAIAEOgVIAAoAgAgAigCABDlKSABQQFrIQEgAEEMaiEADAELCws4AQJ/IABBCGogASgCECIDBH8gASgCDCADQQN0akEEaygCAAUgAgsQ9BIgAEEANgIAIAAgATYCFAtAACABKAIAQQJHBEAgACABKQIANwIAIABBCGogAUEIaikCADcCAA8LIAEoAgQQmA8hASAAQQI2AgAgACABNgIEC0AAIAEoAgBBAkcEQCAAIAEpAgA3AgAgAEEIaiABQQhqKAIANgIADwsgASgCBBCYDyEBIABBAjYCACAAIAE2AgQLQwEDfyAAEK4MIAAoAqgSIAAoAqwSEL8bIAAoArgSEMYVIQMgAC0AvBJBAUYEQEHl7OAAQShBuI7EABD0FwALaiADaguHAgEDfyMAQRBrIgMkACADIABBAmo2AgwjAEEQayICJAAgAiABKAIUQZGMxABBByABKAIYKAIMEQMAOgAMIAIgATYCCCACQQA6AA0gAkEANgIEIAJBBGogAEEdEJIIIABBAWpBHRCSCCADQQxqQRcQkggoAgAiAEEARyACLQAMIgRyIQECQCAARSAEQQFxcg0AAkAgAEEBRwRAIAIoAgghAAwBCyACKAIIIQAgAi0ADUUNACAALQAcQQRxDQBBASEBIAAoAhRBvrjgAEEBIAAoAhgoAgwRAwANAQsgACgCFEHgoeMAQQEgACgCGCgCDBEDACEBCyACQRBqJAAgAUEBcSADQRBqJAALQAEBfwJAIAEoAghBAUYEQCABKAIMIgIgASgCNCABKAIYQQR0akkNAQsgAEEqNgIADwsgACACNgIEIABBJzYCAAtCAQF/IwBBEGsiAiQAIAJBCGogARDaGAJAIAItAAhFBEAgAEErNgIADAELIAAgASgCCCACLQAJEPwpCyACQRBqJAALcgEFfyMAQRBrIgIkACACQQhqIgQgASgCACIFIAEoAgQiA0cEfyABIANBAWsiBjYCBCAGLQAABSABCzoAASAEIAMgBUc6AAACQCACLQAIRQRAIABBKzYCAAwBCyAAIAEoAgggAi0ACRD8KQsgAkEQaiQAC0sBAn8CQAJAAkBBASAAKAIAIgFB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CCABQQhqEMIjIAFBEGokAEEACzIBAn8gAkEDdCECA0AgAiIDBEAgAkEIayECIAEgABCaCiABQQhqIQFFDQELCyADQQBHCzoBAX8jAEFAaiIBJAAgAUEMaiAAQQhqKQIANwIAIAFBIDYCACABIAApAgA3AgQgARDcKCABQUBrJAALOgEBfyMAQUBqIgEkACABQQxqIABBCGooAgA2AgAgAUEqNgIAIAEgACkCADcCBCABENwoIAFBQGskAAs6AQF/IwBBQGoiASQAIAFBDGogAEEIaikCADcCACABQRE2AgAgASAAKQIANwIEIAEQ3CggAUFAayQACzoBAX8jAEFAaiIBJAAgAUEMaiAAQQhqKQIANwIAIAFBMDYCACABIAApAgA3AgQgARDcKCABQUBrJAALOgEBfyMAQUBqIgEkACABQQxqIABBCGopAgA3AgAgAUEtNgIAIAEgACkCADcCBCABENwoIAFBQGskAAs6AQF/IwBBQGoiASQAIAFBDGogAEEIaigCADYCACABQSE2AgAgASAAKQIANwIEIAEQ3CggAUFAayQACzoBAX8jAEFAaiIBJAAgAUEQaiAAQQhqKQMANwMAIAFBLzYCACABIAApAwA3AwggARDcKCABQUBrJAALOgEBfyMAQUBqIgEkACABQQxqIABBCGopAgA3AgAgAUEsNgIAIAEgACkCADcCBCABENwoIAFBQGskAAs6AQF/IwBBQGoiASQAIAFBDGogAEEIaigCADYCACABQSM2AgAgASAAKQIANwIEIAEQ3CggAUFAayQAC0EAIAAQoRwgACgCACAAQQRqKAIAEJQqIABBDGoQ7iYgAEEYahD7JCAAKAI8EMIeIABBQGsQkScgAEHIAEEEENURC0EAIAAQoRwgACgCACAAQQRqKAIAEJQqIABBDGoQ7iYgAEEYahD7JCAAKAI8EMIeIABBQGsQlScgAEHIAEEEENURCz0AAkAgACgCACIAKAIAQQNHBEAgABCHGwwBCyAAQRBqEL4CIABBBGoQ5iYgAEEgahChJQsgAEEoQQgQ1RELQQAgABChHCAAKAIAIABBBGooAgAQlCogAEEMahDuJiAAQRhqEPskIAAoAjwQwh4gAEFAaxCvJyAAQcgAQQQQ1RELPQACQCAAKAIAIgAoAgBBA0cEQCAAEIkbDAELIABBEGoQugMgAEEE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jOQAKQMAQgBSDQBBAUEAENwaIQFB8IzkACkDACEAQfCM5AAgATcDACAAUCAAQgODQgBScg0AIACnQQhrIgIgAigCACIDQQFrNgIAIANBAUcNACACEMEfCwJAQfCM5AApAwAiAEIDg0IAUg0AIACnQQhrIgIgAigCACICQQFqNgIAIAJBAE4NAAALIAALPAEBfyAAKAIIIgMgACgCAEYEQCAAEPMWCyAAIANBAWo2AgggACgCBCADQQN0aiIAIAI2AgQgACABNgIACzwBAX8gACgCCCIDIAAoAgBGBEAgABD5FgsgACADQQFqNgIIIAAoAgQgA0EDdGoiACACNgIEIAAgATYCAAtEACAAQdgAahDmByAAQYKEiBA2AlAgAEEDOgBMIABBAjYCOCAAQQI2AjAgAEEANgIoIABCADcDACAAQdQAakGCBDsBAAs1ACADRQRAQQEPCyACIANBAWsiA0sEQCABIANqLQAAIABB/wFxRg8LIAMgAkHMlcQAEKwQAAs8AQF/IAAoAggiAyAAKAIARgRAIAAQ6hYLIAAgA0EBajYCCCAAKAIEIANBA3RqIgAgAjYCBCAAIAE2AgALPAEBfyMAQRBrIgQkAAJAIANFBEBBACEADAELIAQgABDCCyIAIAIgAxDHDSABIAQQ6hULIARBEGokACAACz0BA38gACABKAIUIgIgASgCDCIDSQR/IAEoAgggAmotAAAFIAQLOgAJIAAgAiADSToACCAAIAEpAgA3AgALeAEDfyAAKAIIIgQgACgCAEYEQCMAQRBrIgMkACADQQhqIAAgACgCAEEBQQFBAhChCCADKAIIIgVBgYCAgHhHBEAgBSADKAIMEOEpAAsgA0EQaiQACyAAIARBAWo2AgggACgCBCAEQQF0aiIAIAI6AAEgACABOgAACzwAIAAgASACELoRIAAgBDoAJCAAIAMpAgA3AgwgAEEUaiADQQhqKQIANwIAIABBHGogA0EQaikCADcCAAs4AQF/IwBBEGsiAyQAIANBADYCDCADIAIgA0EMahDkCSAAIAEgAygCACADKAIEEIsgIANBEGokAAs1AQJ/IwBBEGsiASQAIAAtAABBBEcEQCABIAApAgA3AwggAUEIahCTHCECCyABQRBqJAAgAgs8AQF/IAAoAgAoAgAhACABKAIcIgJBEHFFBEAgAkEgcUUEQCAA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IgMkACACIAAgARDtCCADQf8BOgAPIAIgA0EPakEBEO0IIANBEGokAAsrACABIANLBEAgASADIAQQrRAACyAAIAMgAWs2AgQgACACIAFBBHRqNgIACy8BAX8jAEEQayICJAAgAiAANgIMIAFBsJ7EAEEKIAJBDGpBsAEQzAogAkEQaiQACzEBAX8gASgCACICIAEoAgRGBEAgAEErNgIADwsgASACQRxqNgIAIAAgASgCCCACEDALKwAgASADSwRAIAEgAyAEEK0QAAsgACADIAFrNgIEIAAgAiABQQF0ajYCAAsvAQF/IwBBEGsiAiQAIAIgASkCADcCCCAAIAJBCGoiABDsGiAAEO0eIAJBEGokAAswAQF/IwBBEGsiAyQAIAMgATYCDCACIANBDGpBBBDtCCACIAAgARDtCCADQRBqJAALLwEBfyMAQRBrIgIkACACIAA2AgwgAUG4+cMAQQsgAkEMakHAABDMCiACQRBqJAALKgEBfyACQf///z9xIgIgASgCfEkEfyACQX8gACgC/AR0QX9zcUUFIAMLCy4BAX8jAEEQayICJAAgAiAANgIMIAFBnPnDAEEKIAJBDGpBOxDMCiACQRBqJAALMAEBfyAAKAIIIQEgACgCBCEAA0AgAQRAIAFBAWshASAAEI4YIABB2ABqIQAMAQsLCzABAX8CQCAAKAIAIAEoAgBHDQAgACgCBCABKAIERw0AIAAoAgggASgCCEYhAgsgAgsiAQF/QQEgAEHBAGtBBkkgAEEwa0EKSSAAQeEAa0EGSXIbCzsBAX9BgMADIQECQCAAQf+vA0YNACAAQQFqIgFBgLADc0GAgMQAa0H/j7x/Sw0AQczBxwAQ4CkACyABCysAIAEgA0sEQCABIAMgBBCtEAALIAAgAyABazYCBCAAIAIgAUEYbGo2AgALKwAgASADSwRAIAEgAyAEEK0QAAsgACADIAFrNgIEIAAgAiABQQN0ajYCAAsuAQF/IwBBEGsiAiQAIAIgADYCDCABQdy31gBBECACQQxqQTsQzAogAkEQaiQACzYBAX5BsJjkAC0AABogACkCACEBQRQQYCIARQRAAAsgAEIANwIMIAAgATcCBCAAQQE2AgAgAAs8AAJAAkACQAJAIAAtAAAOBwMDAwECAAMACyAAQQRqEJgEDwsgACgCBCAAKAIIENopDwsgAEEE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IAFBf0c2AgALKgEBfyMAQRBrIgIkACACIAE2AgwgAiAANgIIIAJBCGoQ3gogAkEQaiQACy4AIAAtABRBAkYEQCAAKAIAIgBBGGoQgh0gABDLGSAAQTBBCBDVEQ8LIAAQyxkLLgAgAC0AFEECRgRAIAAoAgAiAEEYahCDHSAAEMsZIABBMEEIENURDwsgABDLGQsvAAJAIAEoAgBBA0cNACAAIAFBBGoQnSEgASgCBCIBKAIAQRlHDQAgACABEMwBCwswACAALQAUQQJGBEAgACgCACIAQRhqEIUdIAApAwAQ+RogABCZKw8LIAApAwAQ+RoLOAEBfyAALQCcASECIABBAToAnAEgACABKAIAELAJIABBADoAnAEgAUEEaiAAEIItIAAgAjoAnAELMQAgABD8JiAAQQxqEO4mIABBGGoQ+yQgACgCPBDCHiAAQUBrENknIABByABBBBDVEQsoACABQThsIQEDQCABBEAgACACEK4RIAFBOGshASAAQThqIQAMAQsLCzUBA38gAS8BFCECIAEoAhAhAyABLQAWIQQgACABEOwIIAAgBDoAFiAAIAM2AhAgACACOwEUCygAIAFBBnQhAQNAIAEEQCAAIAIQryYgAUFAaiEBIABBQGshAAwBCwsLKAAgAUEwbCEBA0AgAQRAIAAgAhDOBCABQTBrIQEgAEEwaiEADAELCws8ACAAQQRqENMiIAFC+IKZvZXuxsW5f1IgAkLtuq22zYXU9eMAUnJFBEAgAEEkahDnFAsgAEEwQQQQ1RELLwEBfyMAQRBrIgIkACACIAAoAgAiADYCDCACQQxqIAEQ6gYgABDmCCACQRBqJAALOQEBfyAAIQECQAJAAkAgAC0AIA4EAQICAAILIABBFGohAQsgARDSIiAAKAIMEMwmIAAoAhAQzCYLCzYAIAAoAkggACgCTBDaKSAAKAJUIAAoAlgQ2ikgACgCYCAAKAJkENopIAAoAmwgACgCcBDqKQsoAQF/IwBBEGsiAiQAIAIgACgCADYCDCACQQxqIAEQrgcgAkEQaiQACycBAX8gACACaiADp0EZdiIEOgAAIAAgAkEIayABcWpBCGogBDoAAAsoACABIANLBEAgASADIAQQrRAACyAAIAMgAWs2AgQgACABIAJqNgIACzABAX8gACgCACIBQYGAxABGBEAgACAAQQRqEN4KIgE2AgALIABBACABQYCAxABHGwsrAQF/IAEoAgAiAgRAIAAgAhEBAAsgASgCBCICBEAgACACIAEoAggQ1RELCyIAIAFFBEBCAA8LIAGtQgWGIAFBAnQgAGpBBGsoAgBnrX0LLgEBfyABBH9BsJjkAC0AABpBwAAgARD/BQVBwAALIQIgACABNgIEIAAgAjYCAAswAQF/IwBBEGsiASQAIAFBADYCDCABQoCAgIAQNwIEIAAgAUEEahDLEyABQRBqJAALMQEBfyMAQRBrIgEkACABQQA2AgwgAUKAgICAwAA3AgQgACABQQRqEMoTIAFBEGokAAsvACAAKAIAQQNHBEAgAEEkahDsHiAAKAIMIAAoAhAQ8CkgACgCGCAAKAIcEN8pCwswACAAKAIQIAAoAhQgACACQf8BcWpBLGotAAAgASAAKAKwAnRqQdCXwwAQuh8pAwALLQEBfyABKAIIIgIgASgCDE8EQCAAQSs2AgAPCyABIAJBAWo2AgggACABEMgoCy0BAX8gASgCDCICIAEoAghNBEAgAEErNgIADwsgASACQQFrNgIMIAAgARDIKAs0ACABKAIUIAAoAgAoAgBoQQJ0IgBByNvjAGooAgAgAEGA2+MAaigCACABKAIYKAIMEQMACygAIAIgA0kEQCADIAIgBBCtEAALIAAgAiADazYCBCAAIAEgA2o2AgALLwEBf0EBIQQCQCABQQFxRQRAQQAhBAwBCyADEPQcIQILIAAgAjYCBCAAIAQ2AgALNAAgASgCFCAAKAIAKAIAaEECdCIAQdjd4wBqKAIAIABBkN3jAGooAgAgASgCGCgCDBEDAAsuACAAQX8gAiAEaiIEIAIgBEsbNgIEIAAgAUGAgICAeEcgA0GAgICAeEdxNgIACzABAX8gACgCACIBQYGAxABGBEAgACAAQQRqEN0aIgE2AgALIABBACABQYCAxABHGws1AQF/IABBBGohAQJAAkACQCAAKAIADgIBAgALIAEQjiUPCyABKAIAEJQrDwsgASgCABDgKAssAQF/IAAoAgAiAUECRwRAIABBBGohACABRQRAIAAoAgAQlCsPCyAAEN4oCwstAAJAIAAoAgAiACgCAEEDRwRAIAAQ4ygMAQsgAEEEahDHIwsgAEEoQQgQ1RELMQACQCAAKAIAIgAoAgBBgICAgHhHBEAgABDpJgwBCyAAQQRqEN4oCyAAQRhBBBDVEQsvACAAEO4mIABBDGoQhicgAEEwahCAJyAAKAI0EN0oIAAoAjgQ2SggAEEYahDvJgsuACAALQAlQQJGBEAgABCKJw8LIAApAwgQ+RogACgCICIAEKgdIABBKEEIENURCysAIAEgA0sEQCABIANB3L7ZABCtEAALIAAgAyABazYCBCAAIAEgAmo2AgALMQACQCAAKAIAIgAoAgBBgICAgHhHBEAgABDpJgwBCyAAQQRqELoDCyAAQRhBBBDVEQsvACABKAIQEKwYIAAoAixGBEAgAUEANgIQCyAAQQE6ADogASAAEI0PIABBADoAOgswAQF/IAEtABhFBEAgAC0AOCECIAAgAS0AGUVBAXQ6ADggASAAEOkTIAAgAjoAOAsLNAEBf0GwmOQALQAAGkHQABBgIgFFBEAACyABQoGAgIAQNwIAIAFBCGogAEHIABD7BhogAQswAQF/IAFBDGoiAiAAENMsAkAgASgCAA0AIAIoAgAiASgCAEEgRw0AIAAgARDMAQsLNQEBfyAAQQRqIQECQAJAAkAgACgCAA4CAQIACyABEIwpDwsgASgCABDtKA8LIAEoAgAQ4CgLMAECfyABIAEgAiADEOIQIgRqLQAAIQUgASACIAQgAxCRHSAAIAU6AAQgACAENgIACyUBAn8jAEFAaiIBJAAQ9iIgASAAEFMgAUHAABD7BiABQUBrJAALLgEBfgJAIAFFBEAMAQsgASkDABD8GiECIAEoAgghAQsgACABNgIIIAAgAjcDAAstAQF/IwBBEGsiAyQAIAMgASACEMAjIAAgAykDACADKAIIEMYIGiADQRBqJAALLAAgAEIANwMYIABBIGoQjC4gACgCAEECRwRAIABCADcDEA8LIABBBGoQtSoLLAAgAEIANwMYIABBIGpCADcDACAAKAIARQRAIABCADcDEA8LIABBBGoQtSoLLwAgAEIANwMQAkAgAC0ALEECRgRAIAAoAhgQth0MAQsgAEIANwMgCyAAQgA3AwgLKwAgAEIANwMQIABCADcDACAALQA0QQNHBEAgAEEgahCeHgsgAEE4ahCAKAstAAJAIAAoAgAiACgCAEEDRwRAIAAQuikMAQsgAEEEahCPJAsgAEEoQQgQ1RELMQACQCAAKAIAIgAoAgBBgICAgHhHBEAgABDpJgwB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AAstACABKAIARQRAIAFBfzYCACAAIAE2AgQgACABQQRqNgIADwtB2O3YABDvFAALMwAgASgCFCAAKAIALQAAQQJ0IgBByOvjAGooAgAgAEG86+MAaigCACABKAIYKAIMEQMACzMAIAEoAhQgACgCAC0AAEECdCIAQYjs4wBqKAIAIABB1OvjAGooAgAgASgCGCgCDBEDAAszACABKAIUIAAoAgAtAABBAnQiAEHI7OMAaigCACAAQbzs4wBqKAIAIAEoAhgoAgwRAwALMwAgASgCFCAAKAIALQAAQQJ0IgBBrO3jAGooAgAgAEGg7eMAaigCACABKAIYKAIMEQMACywAIABBCGoQyxkgACgCIBDCHiAAQThqEO8mIABBJGoQ8SYgAEHIAEEIENURCysAA0AgAC0AFEECR0UEQCABQQE6ADkgACgCAEEYaiEADAELCyAAIAEQjQ8LLgAgASgCAEUEQCAAIAEpAwgQ/BogACgCFBCtCAsgAUEwaiAAEJgaIAEgABDKEQsoACAAKAIAIgAoAgBBA0cEQCAAEJIgDwsgAEEQahDrLSAAQQRqENEZCywAA0AgAC0AFEECR0UEQCAAKAIAQRhqIQAMAQsLIAEgACkDACAAKAIQEI8bCycBAn8jAEFAaiIAJAAgAEEANgIIIABCDDcDACAAENwoIABBQGskAAs1AQF/IABBBGohAQJAAkACQCAAKAIAQQFrDgIBAgALIAEQiC4PCyABKAIAEOAUDwsgARD+LQssACAAEPwmIABBDGoQ7iYgAEEYahD7JCAAKAI8EN0oIABBQGsQkSggABCPKws6AQF/QRwQ6SAiAEEANgIIIABCgYCAgBA3AgAgAEHAoOMAKQMANwIMIABBFGpByKDjACkDADcCACAACygAIAAgARC4LSAAKAIMIgAEQCABIABBDGooAgAgAEEQaigCABChIAsLMgEBfyABKAIkIQIgAEEMaiABQQxqEIkdIABBADYCCCAAQoCAgICAATcCACAAIAI2AiQLMAAgASgCFCAALQAAQQJ0IgBB9KbjAGooAgAgAEHopuMAaigCACABKAIYKAIMEQMACzAAIAEoAhQgAC0AAEECdCIAQZin4wBqKAIAIABBjKfjAGooAgAgASgCGCgCDBEDAAswACABKAIUIAAtAABBAnQiAEGwp+MAaigCACAAQaSn4wBqKAIAIAEoAhgoAgwRAwALJQAgACABIAIoAghBAWtBeHFqQQhqIAMgBCAFIAYgAigCEBEIAAsnACACIANNBEAgAyACQYyvwAAQrBAACyAAIAEgA0EMbGopAgQ3AwALKgEBfyAAIAIQ8B8gACgCCCIDIAAoAgRqIAEgAhD7BhogACACIANqNgIICyoBAX8gACACEOMeIAAoAggiAyAAKAIEaiABIAIQ+wYaIAAgAiADajYCCAsjAQF/IwBBEGsiASQAIAFBCGogABCQCSABKAIMIAFBEGokAAuXAgEEfyAAIAAoAgAiAUEBazYCACABQQJxIAFBBElyRQRAAkAgACICKAIAIQADQCAAQQJxIAAiAUEESXINASACIABBAnIgAigCACIAIAAgAUYbNgIAIAAgAUcNAAsDQAJAIAFBfHEiBCEAA0AgACgCACIDBEACQCAEIAM2AgAgAUEBcUUEQCADKAIEIgAEQCAEIAA2AgAgAiACKAIAQX1xNgIADAULA0AgAiABQQFxIAIoAgAiACAAIAFGIgEbNgIAIAENBSAAIQEgAEEESQ0ACwwBCyACIAFBfXEgAigCACIAIAAgAUYiARs2AgAgAUUNAAwFCwUgACgCCCIDIAA2AgQgAyEADAELCyAAIQEMAQsLELobAAsLCyoAAkAgACgCAEGJgMQARwRAIABB9ABqEN0mDAELIABBBGohAAsgABCWEQsqAQF/IAAgAhD7HiAAKAIIIgMgACgCBGogASACEPsGGiAAIAIgA2o2AggLLAACQCABQQJHBEAgACgCAEGAgICAeEYNASAAQQA2AhQLDwtB6I3EABDgKQALLAACQCABQQNHBEAgACgCAEGAgICAeEYNASAAIAIQsSMLDwtB+I3EABDgKQALKQEBfyABIAAoAggiAk8EQCABIAJBzK/DABCsEAALIAAoAgQgAUEMbGoLMAAgASgCFCAALQAAQQJ0IgBBwNnjAGooAgAgAEGo2eMAaigCACABKAIYKAIMEQMACysBAX8gASAAKALIAiICTwRAIAEgAkGQkcQAEKwQAAsgACgCxAIgAUEUbGoLKQAgACABaiwAAEEATgR/IAApAwBCgIGChIiQoMCAf4N6p0EDdgUgAQsLJQAgACABIAIoAghBAWtBeHFqQQhqIAMgBCAFIAYgAigCIBEIAAssAQF/QQEhAgJAIAFBgICAgHhGDQAgABCDFCABRg0AIAAQyRUgAUYhAgsgAgsnACABLQAQQQFxBEAgAxDaAwsgAgRAIAMQsggLIABBgICAgHg2AgALJgAgAkUEQEEBQQAgAxCtEAALIAAgAkEBazYCBCAAIAFBCGo2AgALIwAgACACQQdxIANBA3RyNgIEIAAgAkH4AXFBA3YgAXI2AgALMAAgASgCFCAALQAAQQJ0IgBBkL7YAGooAgAgAEHovNgAaigCACABKAIYKAIMEQMACzAAIAEoAhQgAC0AAEECdCIAQdzh4wBqKAIAIABBuOHjAGooAgAgASgCGCgCDBEDAAsgAQF/IAEgA08EfyACIAMgACABIANraiADEOsfBSAECwswAQJ+IAEpAwghAiABKQMAEPwaIQMgACABKQMQELojNwMQIAAgAzcDACAAIAI3AwgLMAECfiABKQMQIQIgASkDABD8GiEDIAAgASkDCBD8GjcDCCAAIAM3AwAgACACNwMQCy8CAX4BfyABKQIAIQIgASgCCCEDIAAgAUEMahD5HDYCDCAAIAM2AgggACACNwIACy8CAX4BfyABKQIIIQIgARD5HCEDIAAgAUEEahD3GTYCBCAAIAM2AgAgACACNwIICy8CAX4BfyABKQIIIQIgARD5HCEDIAAgAUEEahD4EDYCBCAAIAM2AgAgACACNwIICyoAIAApAwggACkDGBCMKyAALQA0QQNHBEAgAEEgahDXGwsgACgCOBDZKAsqACAAKQMIIAApAxgQjCsgAC0ANEEDRwRAIABBIGoQ1xsLIAAoAjgQ/CILLwACQAJAAkAgACgCAA4CAQIACyAAQQRqEN4oDwsgACkDCBD5Gg8LIAApAwgQ+RoLKwEBfwJAAkACQCAAQQprDgQBAgIBAAsgAEGowABrQQJPDQELQQEhAQsgAQssAQF/IABBBGohASAAKAIAIgBBgICAgHhHBEAgACABKAIAENopDwsgARCIIwssACAAKQMIEPkaIAAoAiAQwh4gAEE4ahDvJiAAQSRqEPEmIABByABBCBDVEQsoAEEGIQEgACACIANB2rbgAEEFEOsfBH8gAEELOgABQQAFIAELOgAACygAQQYhASAAIAIgA0H+r+AAQQMQ6x8EfyAAQRI6AAFBAgUgAQs6AAALKABBBiEBIAAgAiADQbSL4ABBBBDrHwR/IABBJDoA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DwsgAiABIAMQrBAACyAAIAEgAksEQCAAIAJBAnRqDwsgAiABQbC/wwAQrBAACycBAX9BDEEEEKsgIgFBCGogAEEIaigCADYCACABIAApAgA3AgAgAQsgACABBEAgAC0AAEECcUEBdg8LQQBBAEG43MMAEKwQAAsoACABQZjbwwBBCRD2HSAAQQhqIAFBCGooAgA2AgAgACABKQIANwIACycAIABBBGooAgAgAEEIaigCAEHo3cMAEK8jIgAgAC0AAEEBcjoAAAsrACABQZABaigCACABQZQBaigCACACQf///z9xIAAoAvwEdkG88MMAELofCyAAIAEgAksEQCAAIAJBAnRqDwsgAiABQbyTxAAQrBAACycAAkAgAUEBcUUEQCACKAIAQYaAxABJDQELIAMQuSALIABBIjYCAAskAQF/IAEgACgCACAAKAIIIgJrSwRAIAAgAiABQQRBCBC3FwsLJAEBfyABIAAoAgAgACgCCCICa0sEQCAAIAIgAUEBQQIQtxcLCyQBAX8gASAAKAIAIAAoAggiAmtLBEAgACACIAFBBEEMELcXCwsfAANAIAEEQCABQQFrIQEgABD5HiAAQQhqIQAMAQsLCysBAn8gACgCACIBQYCAgIB4RwRAIAAoAgQiAiAAKAIIEPccIAEgAhDiKQsLKwECfyAAKAIAIgFBgICAgHhHBEAgACgCBCICIAAoAggQiR8gASACEOUpCwsdACAAIAFBdGxqIgBBDGsoAgAgAEEIaygCABC6CgslAQF/IAAoAgAiASABKAIAIgFBAWs2AgAgAUEBRgRAIAAQ1gsLCyUBAX8gACgCACIBIAEoAgAiAUEBazYCACABQQFGBEAgABDoDwsLJgEBfiABKQMoIQIgAEEwaiABQTBqEMsLIAAgARDfBCAAIAI3AygLJgEBfiABKQMgIQIgACABENUhIABBEGogAUEQahDVISAAIAI3AyALHgEBfyAAKAIAQRpGBH8gAEEIaiABIAIQ0hsFIAMLCyQBAX8gASAAKAIAIAAoAggiAmtLBEAgACACIAFBBEEEELcXCwsfAANAIAEEQCABQQFrIQEgABDpJiAAQQxqIQAMAQsLCx8AA0AgAQRAIAFBAWshASAAELYGIABBBGohAAwBCwsLJQAgASkDAFBFBEAgACABEKUcDwsgAEECOgAUIAAgASgCCDYCAAsfAANAIAEEQCABQQFrIQEgABCKJyAAQQxqIQAMAQsLCyQBAX8gASAAKAIAIAAoAggiAmtLBEAgACACIAFBCEE4ELcXCwskAQF/IAEgACgCACAAKAIIIgJrSwRAIAAgAiABQQhBMBC3FwsLJQAgASACSwRAIAEgAkHcy98AEK8QAAsgACACNgIEIAAgATYCAAsrAEHIu+AAQb674AAgACgCAC0AACIAG0ELQQogABsgASgCFCABKAIYEPUCCyQBAX8gASAAKAIAIAAoAggiAmtLBEAgACACIAFBCEEQELcXCwshACAAQSBqIAEQ3isgACgCAEECRgRAIABBBGogARDeKwsLJAADQCAALQAUQQJHRQRAIAAoAgBBGGohAAwBCwsgACABEI0PCyMAIAAQvhIiAKdBufPd8XlsQQV3IABCIIinc0G5893xeWytCyEAIABBIGogARDKLCAAKAIAQQJPBEAgAEEEaiABEMosCwshACAAQSBqIAEQzSwgACgCAEECRgRAIABBBGogARDNLAsLIQAgAEEgaiABENUsIAAoAgBBAkYEQCAAQQRqIAEQ1SwLCyEAIAFBIGogABDXLCABKAIAQQJGBEAgAUEEaiAAENcsCwshACAAQSBqIAEQ1iwgACgCAEECRgRAIABBBGogARDWLAsLIgEBfiAAKQMAIgFQBEAgAEEIahCFHQ8LIAEgACkDEBCMKwshACAAQSBqIAEQhS0gACgCAEECTwRAIABBBGogARCFLQsLIQAgAEEgaiABEIctIAAoAgBBAk8EQCAAQQRqIAEQhy0LCyEAIABBIGogARCKLSAAKAIAQQJPBEAgAEEEaiABEIotCwshACAAQSBqIAEQhi0gACgCAEECTwRAIABBBGogARCGLQsLIQAgAEEgaiABEKUtIAAoAgBBAk8EQCAAQQRqIAEQpS0LCygAAkAgAEEDRw0AIAItAAUgAZlEAAAAAAAA8H9icg0AIAJBADoABAsLJQAgAEEBNgIEIAAgASgCDCABKAIEa0EYbiIBNgIIIAAgATYCAAslACAAQQE2AgQgACABKAIEIAEoAgBrQQxuIgE2AgggACABNgIACyUBAX8gACgCACIBIAEoAgAiAUEBazYCACABQQFGBEAgABCSGAsLHwADQCABBEAgAUEBayEBIAAQ7AkgAEEoaiEADAELCwsdACAAIAFBaGxqIgBBGGspAwAgAEEQaygCABC0HAshACABQSBqIAAQvy0gASgCAEECRgRAIAFBBGogABC/LQsLIQAgAEEgaiABEL4tIAAoAgBBAk8EQCAAQQRqIAEQvi0LCyEAIABBIGogARC4LSAAKAIAQQJPBEAgAEEEaiABELgtCwshACAAQSBqIAEQvS0gACgCAEECTwRAIABBBGogARC9LQsLJgAgASgCGCAAELcVIAEtABRBAkcEQCAAIAEpAwAgASgCEBCSEgsLJgAgASgCGCAAELkIIAEtABRBAkcEQCAAIAEpAwAgASgCEBCSEgsLJQAgAEEEaigCACAAQQhqKAIAIAIgASgCAHZBkJTAABC3HygCAAscACABIAJNBEAgAiABIAMQrBAACyAAIAJBAnRqCxwAIAEgAk0EQCACIAEgAxCsEAALIAAgAkEUbGoLHAAgASACTQRAIAIgASADEKwQAAsgACACQQlsagscACABIAJNBEAgAiABIAMQrBAACyAAIAJBA3RqCyUBAX8CQCAAKAI4RQ0AIAAoAkAiAUUNACAAKAI8IAFBARDVEQsLHAAgASACTQRAIAIgASADEKwQAAsgACACQQxsagsfACABIAJNBEAgAiABQciDxAAQrBAACyAAIAJBAnRqCx0AIAAgASACIAMgAUEBcmdBAXRBPnNBACAEENMBCx0AIAAgASACIAMgAUEBcmdBAXRBPnNBACAEEMIBCyoBAX8gACgCACAAKAIEEOUpIAAoAhAiASAAKAIUEOkcIAAoAgwgARDkKQsjAQF/IAAoAgwiAQRAIAAoAgggAUEBENURCyAAQSBBCBDVEQslACAARQRAQcCk4wBBMhDMKgALIAAgAiADIAQgBSABKAIQEQ4ACx0AIAFFBEBBAA8LIAAgAWpBAWstAAAgAkH/AXFGCxwAIAEgAk0EQCACIAEgAxCsEAALIAAgAkEEdGoLHwAgACACNgIEIAAgASACKAIIQQFrQXhxakEIajYCAAsfACABIAJNBEAgAiABQciBxAAQrBAACyAAIAJBAnRqCyUAIABBBGooAgAgAEEIaigCACACIAEoAgB2QYybwwAQtx8oAgALKQAgACgCECAAKAIUIAAoArQCIAEgACgCsAJ0akGQmMMAELofIAI3AwALKgEBfyAAKAIEIgEgACgCCBDlHCAAKAIAIAEQ4ikgACgCDCAAKAIQEN8pCx8AIAEgAk0EQCACIAFB9JvDABCsEAALIAAgAkEDdGoLHwAgASACTQRAIAIgAUGEnMMAEKwQAAsgACACQQV0agsfACABIAJNBEAgAiABQZScwwAQrBAACyAAIAJBBXRqCx8AIAEgAk0EQCACIAFB1JzDABCsEAALIAAgAkEMbGoLHQAgACABIAIgAyABQQFyZ0EBdEE+c0EAIAQQpwELHwAgASACTQRAIAIgAUHcr8MAEKwQAAsgACACQQxsagscACABIAJNBEAgAiABIAMQrBAACyAAIAJBGGxqCx0AIAFFBEBBAQ8LIAFBA3QgAGpBBGsoAgBBgAFJCycBAn8gAEEANgKsASAAKAKoASECIAAoAqQBIAAgATcCpAEgAhDaKQscACABIAJNBEAgAiABIAMQrBAACyAAIAJBHGxqCxwAIAFFBEBBAQ8LIAFBAXQgAGpBAWssAABBAE4LHAAgASACTQRAIAIgASADEKwQAAsgACACQQF0agshACABIANHBEAgASADQZyT2AAQshAACyAAIAIgARD7BhoLJgAgACgCAEGAgICAeEYEQCABEJYcDwsgACgCBCAAKAIIIAEQgCsLIQEBfyAAIAAtAAAiAUEBIAEbOgAAIAEEQCAAENEDCyAACyAAIAEoAgAgAkEEdGtBEGsiACkDACAAQQhqKQMAEJgcCykCAX4BfyABKQIMIQIgASgCFCEDIAAgARCNDCAAIAM2AhQgACACNwIMCyIBAX8gAEGAsANzQYCAxABrQYCQvH9PBH8gABDoEQUgAQsLIQACQCABDQAgAi0AGUEBa0H/AXFBAU0NACACIAAQ6i0LCxwBAX8gACABEJoKBH8gACgCCCABKAIIRgUgAgsLIAAgASgCACACQQR0ayIAQRBrKQMAIABBCGsoAgAQtBwLIAEBfyAALQAsIgFBBEsgAUEDRnJFBEAgAEEYahDVIAsLJAAgABDZFiAAQUBrEPsPIAAoAkAgACgCRBCUKiAAQSBqEPskCx8AIAAtADRBA0cEQCAAQSBqENUgCyABIABBOGoQ4iULIAAgASgCACACQQV0ayIAQSBrKQMAIABBGGsoAgAQtBwLHgAgACgCACgCACAAKAIEKAIAIAFBWGxqQShrEOEbCyIAIABCADcCDCAAKAIARQRAIABCADcCBA8LIABBBGoQjC4LHAAgASACTQRAIAIgASADEKwQAAsgACACQQV0agsqACAAIAAoAhwgACgCICABQezE4AAQ5x8iACgCGCAAKAIcEOgYIAIQ7AkLHAAgASACTQRAIAIgASADEKwQAAsgACACQShsagskACAAQQxqEO8KIAAQjiMgAEEcahCHECAAKAIcIAAoAiAQxyoLIgAgAC0AFEECRwRAIAEoAiQgABD7BRoLIAAoAhggARC4FQspAEHAl+QALQAARQRAQcCX5ABBAToAAAtByJfkACAArUIghkIBhDcDAAsZAQF/IAEgA0YEfyAAIAIgARCdFUUFIAQLCxwAIAFB/wFxBEAgACABQQFrELkSCyAAIAIQuRILJAAgACgCACAAKAIEEN8pIAAoAgwgACgCEBDfKSAAQRxqEMIdCx4AIAAoAhQgACgCCGpBAnQgACgCJEEAIAAoAhwbagsfACAAIAIQwQogAEEQaiACQRBqEMEKIAJBCCABEM4HCyABAX8gASAAKAIAIAAoAggiAmtLBEAgACACIAEQoBgLCx8BAX8gACAALQAAIgFBASABGzoAACABBEAgABDRAwsLIwAgAEUEQEHApOMAQTIQzCoACyAAIAIgAyAEIAEoAhARBgALIwAgAEUEQEHApOMAQTIQzCoACyAAIAIgAyAEIAEoAhARCQALIwAgAEUEQEHApOMAQTIQzCoACyAAIAIgAyAEIAEoAhARRQALIwAgAEUEQEHApOMAQTIQzCoACyAAIAIgAyAEIAEoAhARRwALIwAgAEUEQEHApOMAQTIQzCoACyAAIAIgAyAEIAEoAhARGwALJQAgACABKAIINgIEIAAgASgCBEEAIAEoAgBBgICAgHhHGzYCAAsgAQF/IAAQtxsEfyADBSABQcO2wgBBBCACKAIMEQMACwskACAAKAIAIAAoAgRBBEEUENQiIAAoAgwgACgCEEEEQRgQ1CILHQAgACgCAEECRwRAIABBCGoQzSQgAEEYahDsHgsLJwEBf0HsAkEEEKsgIgFCgYCAgBA3AgAgAUEIaiAAQeQCEPsGGiABCycBAX9B0AJBBBCrICIBQoGAgIAQNwIAIAFBCGogAEHIAhD7BhogAQsnAQF/QeQCQQQQqyAiAUKBgICAEDcCACABQQhqIABB3AIQ+wYaIAELJwAgACgCECAAKAIUIAAoArQCIAEgACgCsAJ0akGAmMMAELofKQMACy8AIAAQpxcgAEGoEmoQ7R4gAEG4EmoQ7B4gAEGgDWoiACkDAEICUgRAIAAQzCQLCxoBAX8gASADTwR/IAIgAyAAIAMQ6x8FIAQLCx8AIAAgAhC/CCAAQUBrIAJBQGsQvwggAkEIIAEQjgcLHQAgAQRAIAAtAABBAXEPC0EAQQBBqNzDABCsEAALIAAgAUUEQEEAQQBByNzDABCsEAALIAAtAAhBBHFBAnYLIAAgAUUEQEEAQQBB2NzDABCsEAALIAAtAAhBCHFBA3YLHgAgARCmEyACakEEIAAoAvwEdGpBFGogACgCgAVNCx8AIAAgAhDfBiAAQQhqIAJBCGoQ3wYgAkEIIAEQzQYLHwAgACACEOAGIABBIGogAkEgahDgBiACQQggARDOBgsbACAAIAEgAiADIAFBAXJnQQF0QT5zQQAQnAELGwAgACABIAIgAyABQQFyZ0EBdEE+c0EAEJsBCxsAIAAgASACIAMgAUEBcmdBAXRBPnNBABCjAQsZAQF/IAEgA08EfyACIAAgAxCdFUUFIAQLCyQBAX4gACkDCCEBIAAoAgBFBEAgARD5Gg8LIAEgACkDGBCMKwtWAgJ/AX4jAEEQayIBJAAgAUEIakEVQTAQhxUgASkDCCEDIABBBGoiAkEANgIIIAIgAzcCACABQRBqJAAgAEEANgIYIABCgICAgMAANwIQIABBADYCAAtWAgJ/AX4jAEEQayIBJAAgAUEIakESQTgQhxUgASkDCCEDIABBBGoiAkEANgIIIAIgAzcCACABQRBqJAAgAEEANgIYIABCgICAgMAANwIQIABBADYCAAsiAQF/IABBBGohASAAKAIARQRAIAEoAgAQ2SgPCyABEP8iCyUAIAEoAhQgAC0AAEECdEGw6+MAaigCAEEGIAEoAhgoAgwRAwALGwAgASgCACACQXRsakEMaygCAEG5893xeWytCx0AIABBIGoQ6y0gACgCAEECTwRAIABBBGoQ6y0LCyEAA0AgAC0ALEECR0UEQCAAKAIYIQAMAQsLIABBADYCKAskAQF/IAAtAD4hAiAAIAEtABlFOgA+IAEgABDgEiAAIAI6AD4LJwACQAJAAkAgACgCAA4DAAIBAgsgACkDCBD5Gg8LIABBBGoQjikLCx0AIABBIGoQ+y0gACgCAEECTwRAIABBBGoQ+y0LCx0AIABBIGoQ/S0gACgCAEECTwRAIABBBGoQ/S0LCx0AIAAtADRBA0cEQCAAQSBqENUgCyAAQThqEN8nCyEAA0AgAC0ALEECR0UEQCAAKAIYIQAMAQsLIABBADoALAsnAAJAAkACQCAAKAIADgMAAgECCyAAKQMIEPkaDwsgAEEEahCmKQsLIAAgAEIANwMQIABCADcDACAAQSBqEIEoIABBJGoQgSgLIAAgAEIANwIEIABBDGpCADcCACAAEJQuIABBFGoQlCYLIgEBfyAAQQRqIQEgACgCAEUEQCABKAIAENkoDwsgARCdIwsiACABKAIAQYCAgIB4RgRAIABBBDoAAA8LIAAgAiABEPgTCxwAIAAEQCABIABBBGooAgAgAEEIaigCABC6LQsLHAAgAARAIAEgAEEMaigCACAAQRBqKAIAELotCwsbACAAIAEgAiABIAJJGyABIAIgASACSxsQ6BgLGwAgACABIAIgAyABQQFyZ0EBdEE+c0EAENYBCxwAIAAEQCABIABBDGooAgAgAEEQaigCABChIAsLGgEBfyAAKAIAQRFGBH8gAEEIahCwDwUgAQsLKAAgAEEcakEAIAJCus/FqYCQrM7TAFEbQQAgAUL/y7fCjurv0lNRGwslACAAIAEoAgQgASgCCCACQfyHwAAQuB8oAgA2AgQgACABNgIACyUAIAAgASgCBCABKAIIIAJBjIjAABC4HygCCDYCBCAAIAE2AgALIAEBf0E0EN8tIgBFBEAACyAAQQA7ATIgAEEANgIAIAALIQEBf0HkABDfLSIARQRAAAsgAEEAOwEyIABBADYCACAACyQAIAAtAABFBEAgAUGIveAAQQUQqgMPCyABQY294ABBBBCqAwsbAEGwmOQALQAAGiAAIAEQxiEiAARAIAAPCwALGQAgASACTQRAIAIgASADEKwQAAsgACACagsiACAAKAIQIAAoAhQgASAAKAI8dkECa0HYg8QAELwfKAIICycAIABBHGpBACACQtihpIOx4tHdfFEbQQAgAUKV192Yw5eKjAtRGwshACAARQRAQcCk4wBBMhDMKgALIAAgAiADIAEoAhARBAALJAAgAEGBgICAeEcEQCAARQRAQcDK3wBBEUGw+MIAEPQXCwALCx8BAX8gACgCCCIBIAAoAgBJBEAgACABQQRBFBDlDwsLHwEBfyAAKAIIIgEgACgCAEkEQCAAIAFBAUEJEOUPCwsfAQF/IAAoAggiASAAKAIASQRAIAAgAUEEQQQQ5Q8LCx8BAX8gACgCCCIBIAAoAgBJBEAgACABQQRBCBDlDwsLYwEDfyABLQAMQQNGBEAgAEEDOgAMDwsCQAJAIAAgAS0ADCIDQQJHBH8gASgCACICIAIoAgAiBEEBajYCACAEQQBIDQEgACACNgIAIAAgASkCBDcCBCADBUECCzoADAwBCwALCyMBAX9BMBDpICIBQoGAgIAQNwIAIAFBCGogAEEoEPsGGiABCxwAIAAgAUEBajYCACAAIAEtAABBAWpBB3E2AgQLIQAgACgCACIAKAIAQQhqIAAoAgQgASgCFCABKAIYEPUCCyIBAX8gACgCBCIBRQRAQZyvxAAQ4CkACyAAIAFBAWs2AgQLHQAgAEH/AXFB/wFGBEBBrMHHABDgKQALIABBAWoLIwAgAUH/AU8EQCAAQf8BEN8MIAAgAawQ7Q0PCyAAIAEQ3wwLHAAgASkDAEICUQRAIABCAjcDAA8LIAAgARDpGAscACABLQAUQQJGBEAgAEECOgAUDwsgACABENYbCyQAIAEoAgBBgICAgHhGBEAgAEGAgICAeDYCAA8LIAAgARDaHwscACABKAIAQQdGBEAgAEEHNgIADwsgACABEN8ECyAAIAEoAgAgAUEEaigCABDfKSABQRBBBBDVESAAEO0mCx0AIAAoAgAiAEEQQSAgACgCAEEDRhtqKAIAEIgICzIBAX8CQAJAAkAgAEECaw4RAAAAAAAAAAAAAAAAAAAAAAECC0EBDwsgARCICCECCyACCx4AIAAQyg0aIABB9AJBuAIgACgCoAJBJUYbaigCAAshAQF/IAAoAoQBIgFBgQFPBEAgASAAKAIIQQFBARDUIgsLHwAgACgCAEGBgICAeEcEQCAAEPskDwsgAEEEahD/IgsiACAAEN4oIAAoAhQQ2SggACgCBCIAENMoIABBIEEEENURCx8AIAAQhScgAEEMahCmHSAAKAIcEN0oIABBIGoQ+yYLHwEBfyAAQQRqIQEgACgCAEUEQCABEIAnDwsgARD/IgsmAQF/QRhBBBCrICIAQgQ3AhAgAEIANwIIIABCgYCAgBA3AgAgAAsbACAAKAIAQQdGBEAgAEEQahDpKA8LIAAQnxILHAAgACgCAEUEQCAAQQhqEMsZDwsgAEEEahDOAgsbACAAKAIAQQVGBEAgAEEIahDLGQ8LIAAQoxYLHAAgACgCAEUEQCAAQQhqEMsZDwsgAEEEahCjAgscACAAKAIARQRAIABBCGoQyxkPCyAAQQRqEL4CCxwAIAAoAgBFBEAgAEEIahDLGQ8LIABBBGoQ5QILHAAgACgCAEUEQCAAQQhqEMsZDwsgAEEEahC6AwsbACAALQA0BEAgAUEEaiAAEOErCyABIAAQ3isLHgAgACgCACgCACAAKAIEKAIAIAFBBHRrQRBrEJoKCx4AIAAoAgAoAgAgACgCBCgCACABQQN0a0EIaxCaCgseACAAKAIAKAIAIAAoAgQoAgAgAUEEdGtBEGsQ3R8LHQADQCAALQAUQQJHRQRAIAAoAgBBGGohAAwBCwsLHAAgASgCAEUEQCABQQRqIAAQoBoPCyABIAAQXgsdAQF/IAAtACwiAUEESyABQQNGckUEQCAAEPUhCwsbACAAKAIAQQlHBEAgABDxCQ8LIABBCGoQzwULHgAgACgCACgCACAAKAIEKAIAIAFBBXRrQSBrEN0fCxsAIAAoAgBBEUYEQCAAQQhqELERDwsgABDKHAscACAAKAIAQQFGBEAgAEIANwIECyAAQQxqEIwuCx8AIABCADcCDCAAQRRqQgA3AgAgABDyDSAAQgA3AhwLHwAgASACEMkQBEAgAEGBgICAeDYCAA8LIAAgARDOEQscACAAEOMNGiAAQdQAQRggACgCAEElRhtqKAIACx8BAX8gAEEEaiEBIAAoAgBFBEAgARCQKA8LIAEQnSMLIgAgABC4KSAAKAIUENkoIAAoAgQiABDTKCAAQSBBBBDVEQsfACAAEIUnIABBDGoQuR0gACgCHBDdKCAAQSBqEJEoCx8AIAAoAgBBgYCAgHhHBEAgABD7JA8LIABBBGoQnSMLHgAgASgCACIBRQRAIABBBDoAAA8LIAAgAiABENQDCx4AIAEoAgAiAUUEQCAAQQQ6AAAPCyAAIAIgARCQCAsbACAAKAIAQRBqIABBCGogAC0AFEECRhsoAgALHQAgASgCACIBRQRAIABBBDoAAA8LIAAgAiABEDILGwAgASACEPkTBEAgAEEANgIADwsgACABENwFCxsAIAEgAhD6EwRAIABBADYCAA8LIAAgARDLCgsYAEGwmOQALQAAGiAAEGAiAARAIAAPCwALIQAgACgCACAAKAIEENopIAAoAgwiACAAKAIAKAIAEQEACxgAIABBAXEEQCABDwtBqIbAAEExEMwqAAsaACAAQQtNBEAgAA8LIABBC0GMpMAAEK4QAAsdACAAQQA2AgAgACABQdwCQdgCIAIbaigCADYCBAsdACAAQQA2AgAgACABQcACQbwCIAIbaigCADYCBAshAQF/QbCY5AAtAAAaIAEQYCECIAAgATYCBCAAIAI2AgALHAEBfyAAKAIAIgEEQCAAKAIIIAFBBEEIENQiCwshAQF/IAEoAgAhAiABQQA2AgAgACACIAEoAgQQ6yAQ2Q8LGgAgAQR/QbCY5AAtAAAaIAEgABDGIQUgAAsLHwAgAEUEQEHApOMAQTIQzCoACyAAIAIgASgCEBECAAsVACACIANqIgIgAE8gAiAAIAFqTXELIQEBfyABLQAMIQIgACABKAIEIAEoAggQxBUgACACOgAMCx8AIAAgASACKAIEIgAgAigCCBD0GyACKAIAIAAQ3ykLFwAgACABTQRAIAAPCyAAIAEgAhCuEAALGwAgACkDAEICUgRAIAAQzCQgAEGIBWoQzCQLCxwAIAFBA00EQEEEIAFByNrDABCuEAALIAAoAAALJAAgACgCsAFFBEBBlOTDAEEfQbTkwwAQuxIACyAAIAE2ArgBCxsAIAAoAgBBiIDEAEcEQCAAEPkPDwsgAEEMagsiAQF/AkACQAJAIABBBGsOBAAAAQECC0EBDwsgASECCyACCxoAIAAgAU0EQCAADwsgACABQdzL3wAQrhAACxoAIAFBAXFFBEAgAiAAEJsSDwsgAiAAEMkNCxcAQQFBf0EAIAAoAgAgAksbIAEgAkkbCx4AIABBADYCECAAIAI2AgQgACABNgIAIABBADYCCAseACACRQRAIAAgAUG+uOAAQQEQ8iQPCyAAQQQ6AAALGwAgASgCACACQQR0a0EQaygCAEG5893xeWytCxwAIAAoAgBFBEAgACkDCBD5Gg8LIABBBGoQnwMLGgAgACgCACIABEAgABDkJiAAQRRBBBDVEQsLHAAgACgCAEUEQCAAKQMIEPkaDwsgAEEEahDYKAsfACAAKQMIIAApAxgQjCsgAEEgahCQJSAAKAI4ENkoCxsAIAAQrRMaIAAtAOgCIAAoAsgCQSVGckEBcQsbACAAEMwNGiAALQDAAiAAKAKgAkElRnJBAXELGgAgACgCAEEIRwRAIAAQjCUgAEEoahDpJgsLHAAgACgCAEUEQCAAKQMIEPkaDwsgAEEEahDeKAscAANAIAAoAgBBK0dFBEAgACgCBCEADAELCyAACx4AIAAoAgBBgICAgHhHBEAgABDwJiAAQQxqEPsmCwsbACAAKAIAQQVGBEAgACkDCBD5Gg8LIAAQnxYLGAAgAC0ANEEGcUEGRwRAIABBCGoQxhcLCxwAIAAoAgBFBEAgACkDCBD5Gg8LIABBBGoQ3AILHAAgACgCAEUEQCAAKQMIEPkaDwsgAEEEahDpKAsaAQF/QbCY5AAtAAAaQSgQYCIABEAgAA8LAAsaACAAQQhqEMsZIABBIGoQpycgAEEkahCnJwsaACAAQQhqEMsZIABBIGoQqycgAEEkahCrJwsbACABKAIAIAJBA3RrQQhrKAIAQbnz3fF5bK0LGgAgAEEIahDLGSAAQSBqEK4nIABBJGoQricLGgAgAEEIahDLGSAAQSBqELEnIABBJGoQsScLGgAgAEEIahDLGSAAQSBqELcnIABBJGoQtycLHAAgACgCAEUEQCAAKQMIEPkaDwsgAEEEahClAgsbACABKAIAIABFckUEQCABQQAgABCKBDYCAAsLIAEBfyAALQA4IQIgAEEAOgA4IAEgABDpEyAAIAI6ADgLIAEBfyAALQAlIQIgAEEBOgAlIAAgARCUByAAIAI6ACULHAAgACgCAEUEQCAAKQMIEPkaDwsgAEEEahCyJQsgAQF/IAAvASQhAiAAQQM6ACQgASAAENMsIAAgAjsBJAscACAALQAUQQJHBEAgASAAKQMAIAAoAhAQjxsLCxwAIAAtABRBAkcEQCAAQQA2AhALIAAoAhgQsBMLHAAgAC0AFEECRwRAIABBADYCEAsgACgCGBCQBgsgAQF/IAAtACYhAiAAQQA6ACYgASAAEKgaIAAgAjoAJgscACAAKAIARQRAIAApAwgQ+RoPCyAAQQRqEN0CCxYAIAEoAgAgAkFobGpBGGspAwAQnh8LHAAgACgCAEUEQCAAKQMIEPkaDwsgAEEEahCQAgscACAAKAIARQRAIAApAwgQ+RoPCyAAQQRqEIkpCyABAX8gAC8BJCECIABBAjoAJCABIAAQ0ywgACACOwEkCxwAIAAoAgBFBEAgACkDCBD5Gg8LIABBBGoQjikLGgAgAEEwahDeJyAAKAIAQRRHBEAgABDXJQsLHAAgAC0AFEECRwRAIABBADoAFAsgACgCGBDwBgscACAALQAUQQJHBEAgAEEAOgAUCyAAKAIYEKgDCxwAIAAoAgBFBEAgACkDCBD5Gg8LIABBBGoQ3gILHAAgACgCAEUEQCAAKQMIEPkaDwsgAEEEahCRAgscACAAKAIARQRAIAApAwgQ+RoPCyAAQQRqEJYpCxwAIAAoAgBFBEAgACkDCBD5Gg8LIABBBGoQtAILHAAgACgCAEUEQCAAKQMIEPkaDwsgAEEEahC2AgscACAAKAIARQRAIAApAwgQ+RoPCyAAQQRqEN8CCxsBAX9BsJjkAC0AABpBwAAQYCIABEAgAA8LAAscACAAKAIARQRAIAApAwgQ+RoPCyAAQQRqEKYpCxwAIAAoAgBFBEAgACkDCBD5Gg8LIABBBGoQrCkLHAAgAC0AFEECRwRAIABCADcDCAsgACgCGBDuDgscACAALQAUQQJHBEAgAEIANwMICyAAKAIYEJcECxwAIAAoAgBFBEAgACkDCBD5Gg8LIABBBGoQxwILHAAgACgCAEUEQCAAKQMIEPkaDwsgAEEEahCcJgscACAAKAIARQRAIAApAwgQ+RoPCyAAQQRqEJICCyEBAX8gACgCBCIBIAAoAggQ5RwgACgCACABQQRBDBDUIgsbAQF/QbCY5AAtAAAaQcgAEGAiAARAIAAPCwALGQAgABDlDRogAC0AICAAKAIAQSVGckEBcQscACAAKAIARQRAIAApAwgQ+RoPCyAAQQRqELgpCx4AIAAoAgBBgICAgHhHBEAgABDwJiAAQQxqEJEoCwsZACAAEOESGiAALQBIIAAoAihBJUZyQQFxCxoAIAAoAgBBCEcEQCAAEKgmIABBKGoQ6SYLCxsAIAAoAgBBBUYEQCAAKQMIEPkaDwsgABDhFgsgACAAKAIAQYCAgIB4RwRAIAAoAgQgACgCCCABEIsdCwscACAAKAIARQRAIAApAwgQ+RoPCyAAQQRqENQpCxwAIAAoAgBFBEAgACkDCBD5Gg8LIABBBGoQ4AILHwAgAEUEQEHApOMAQTIQzCoACyAAIAIgASgCEBEAAAscACAAIAI2AgQgACABQQJ0QYCn4wBqKAIANgIACxYAIAFBCU8EQCABIAAQ/wUPCyAAEGALGgEBfyAAKAIAIgEEQCAAKAIEIAFBARDVEQsLGwEBfyAAKAIAIABBADYCACAAKAIEEOsgEMwmCx0AIAFFBEAgAEGAgICAeDYCAA8LIAAgASACEMEVCxwAIAAoAmAgACgCZBC0GyAAENUmIABBMGoQ1SYLEwAgACACTSACIANqIAAgAWpNcQsTACAAIAJLIAIgA2ogACABaktxCx8BAX8gACgCACIBQYSAgIB4TgRAIAEgACgCBBDaKQsLHgAgACgCACIAKAIEIAAoAgggASgCFCABKAIYEPUCCx0AIABBAXFFBEBBjNjDAEEfQazYwwAQuxIACyABCx4AIAAoAgAiACgCACAAKAIEIAEoAhQgASgCGBD1AgsaACAAQf8BcUUEQEG8wccAEOApAAsgAEEBawsdACABRQRAIABBgICAgHg2AgAPCyAAIAEgAhDiCgsYACAAQQFxRQRAIAIQlhwPCyABIAIQpAcLHAAgACgCACIAKAIAIAEgAEEEaigCACgCDBECAAsfAQF+IAEpAwghAiAAIAEpAwAQ/Bo3AwAgACACNwMICxwAIAAQnxwgACgCACAAKAIEEJAqIABBFGoQ6iYLHAAgABC8ECAAKAIAIAAoAgQQkSogAEEUahDqJgsaACAAKQMIEPkaIABBIGoQ8yYgAEEkahDzJgsbACAAKQMAIABBEGopAwAQjCsgAEEYQQgQ1RELHAEBfwNAIAAiASgCBCEAIAEoAgBBI0YNAAsgAQscACAAEJ8cIAAoAgAgACgCBBCQKiAAQRRqEPYmCxwAIAAQvBAgACgCACAAKAIEEJEqIABBFGoQ9iYLGgAgACkDCBD5GiAAQSBqEPcmIABBJGoQ9yYLGgAgACkDCBD5GiAAQSBqEPomIABBJGoQ+iYLIQBB57DgAEHlsOAAIAAtAAAbQQIgASgCFCABKAIYEPUCCx8BAX8gACgCACIBQYCAgIB4RwRAIAEgACgCBBDaKQsLGAAgAC0ANEEERgRAIAAQ1xsPCyAAEIYhCxoAIAApAwgQ+RogAEEgahD+JiAAQSRqEP4mCxsAIAEgAiADEIEVIQEgAEEmNgIAIAAgATYCBAsbACABIAIgAxCBFSEBIABBJzYCACAAIAE2AgQLHAAgABCfHCAAKAIAIAAoAgQQkCogAEEUahCRJwscACAAELwQIAAoAgAgACgCBBCRKiAAQRRqEJEnCxoAIAApAwgQ+RogAEEgahCTJyAAQSRqEJMnCxwAIAAQnxwgACgCACAAKAIEEJAqIABBFGoQlScLHAAgABC8ECAAKAIAIAAoAgQQkSogAEEUahCVJwsaACAAKQMIEPkaIABBIGoQlicgAEEkahCWJwsbACAAKAIAIABBBGooAgAQ3ykgAEEQQQQQ1RELKQEBfyAAQQhqEPMoIABBIGoiAS0AFEEDRwRAIAEQgx0LIAAoAjgQ2SgLHAAgABCfHCAAKAIAIAAoAgQQkCogAEEUahCvJwscACAAELwQIAAoAgAgACgCBBCRKiAAQRRqEK8nCxoAIAApAwgQ+RogAEEgahC7JyAAQSRqELsnCxcAIAEoAgBBA0YEQCABQQRqIAAQ3isLCxcAIAEoAgBBAUYEQCABQQRqIAAQ3isLCxcAIAAtADRBAUYEQCABQThqIAAQ0CMLCxoAIAApAwgQ+RogAEEgahC+JyAAQSRqEL4nCxcAIAAoAgBBAUYEQCAAQQRqIAEQyiwLCxoAA0AgAC0ALEECR0UEQCAAKAIYIQAMAQsLCxcAIAEoAgBBA0YEQCABQQRqIAAQzSwLCxcAIAEoAgBBAUYEQCABQQRqIAAQzSwLC4EEAgp/An4gASAAKAIISwRAAkAjAEFAaiIDJAAgAyACNgIMIAAoAgwhAiADIANBDGo2AhAgAiABIAJqIgFNBEACfwJAIAAoAgQiBCAEQQFqQQN2QQdsIARBCEkbIgRBAXYgAUkEQCADQTBqQRAgASAEQQFqIAEgBEsbELoLIAMoAjQiBCADKAIwIgFFDQIaIAMoAjghCSADIAMoAjw2AiwgAyAJNgIoIAMgBDYCJCADQpCAgICAATcCGCADIABBEGo2AhQgAyABNgIgIAFBCGohCiAAKAIAIgYpAwBCf4VCgIGChIiQoMCAf4MhDSADQSBqIQsDQAJAIAIEQANAIA1CAFINAiAHQQhqIQcgBikDCEJ/hUKAgYKEiJCgwIB/gyENIAZBCGohBgwACwALIAMgACgCDCIBNgIsIAMgCSABazYCKCAAIAsQiBggA0EUahD5FAwDCyABIAEgBCADQRBqIAAgDXqnQQN2IAdqIggQkSMiDhD0DiIFaiAOQhmIpyIMOgAAIAogBUEIayAEcWogDDoAACABIAVBf3NBBHRqIgUgACgCACAIQX9zQQR0aiIIKQAANwAAIAVBCGogCEEIaikAADcAACACQQFrIQIgDUIBfSANgyENDAALAAsgACADQRBqQZIFQRAQvAQLQQALGiADQUBrJAAMAQsQsRsACwsLFwAgASgCAEEDRgRAIAFBBGogABDVLAsLFwAgASgCAEEDRgRAIAFBBGogABDWLAsLFwAgACgCAEEDRgRAIABBBGogARDXLAsLFwAgACgCAEEDRgRAIABBBGogARDKLAsL7QMCCn8CfiABIAAoAghLBEACQCMAQUBqIgMkACADIAI2AgwgACgCDCECIAMgA0EMajYCECACIAEgAmoiAU0EQAJ/AkAgACgCBCIEIARBAWpBA3ZBB2wgBEEISRsiBEEBdiABSQRAIANBMGpBCCABIARBAWogASAESxsQugsgAygCNCIEIAMoAjAiAUUNAhogAygCOCEHIAMgAygCPDYCLCADIAc2AiggAyAENgIkIANCiICAgIABNwIYIAMgAEEQajYCFCADIAE2AiAgAUEIaiEJIAAoAgAiBSkDAEJ/hUKAgYKEiJCgwIB/gyENIANBIGohCgNAAkAgAgRAA0AgDUIAUg0CIAZBCGohBiAFKQMIQn+FQoCBgoSIkKDAgH+DIQ0gBUEIaiEFDAALAAsgAyAAKAIMIgE2AiwgAyAHIAFrNgIoIAAgChCIGCADQRRqEPkUDAMLIAEgASAEIANBEGogACANeqdBA3YgBmoiCxCSIyIOEPQOIghqIA5CGYinIgw6AAAgCSAIQQhrIARxaiAMOgAAIAEgCEF/c0EDdGogACgCACALQX9zQQN0aikAADcAACACQQFrIQIgDUIBfSANgyENDAALAAsgACADQRBqQZEFQQgQvAQLQQALGiADQUBrJAAMAQsQsRsACwsLgQQCCn8CfiABIAAoAghLBEACQCMAQUBqIgMkACADIAI2AgwgACgCDCECIAMgA0EMajYCECACIAEgAmoiAU0EQAJ/AkAgACgCBCIEIARBAWpBA3ZBB2wgBEEISRsiBEEBdiABSQRAIANBMGpBECABIARBAWogASAESxsQugsgAygCNCIEIAMoAjAiAUUNAhogAygCOCEJIAMgAygCPDYCLCADIAk2AiggAyAENgIkIANCkICAgIABNwIYIAMgAEEQajYCFCAD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ACIABEAgASAAEOAICwsYACAAKAIAQYCAgIB4RwRAIAAgARCcGgsLFAAgACgCAEEHRwRAIAAgARDMEQsLGAAgACgCAEGAgICAeEcEQCAAIAEQnhoLCxQAIAAoAgBBB0cEQCAAIAEQsBQLCxgAIAAoAgBBgICAgHhHBEAgASAAENkECwsYACAAKAIAQYCAgIB4RwRAIAEgABChIQsLEwAgACgCACIABEAgACABEKMJCwsTACAAKAIAIgAEQCAAIAEQ1wsLCxMAIAAoAgAiAARAIAAgARCuCgsLFwAgACkDACAALQAUEL4jIABBGGoQghYLGAAgASgCAEGAgICAeEcEQCABIAAQoBoLCxMAIAAoAgAiAARAIAAgARCHCQsLEwAgACgCACIABEAgACABEPAJCwsUACAAKQMAQgJSBEAgACABEOsjCwsVACAAKAIARQRAIAEgAEEIahCCCQsLFwAgACkDACAALQAUEL4jIABBGGoQhBYLEwAgACgCACIABEAgACABEJwFCwsUACAAKAIAQQdHBEAgASAAELAJCwsYACAAKAIAQYCAgIB4RwRAIAEgABDmBgsLEwAgACABEJgJIgBBEGpBACAAGwsTACAAKAIAIgAEQCAAIAEQsRoLCxMAIAAoAgAiAARAIAAgARDTAwsLGAAgACgCAEGAgICAeEcEQCAAIAEQtBoLCxQAIAAoAgBBB0cEQCAAIAEQsxQLCxgAIAAoAgBBgICAgHhHBEAgACABELUaCwsUACAAKAIAQQdHBEAgACABELQUCwsYACABKAIAQYCAgIB4RwRAIAEgABC4GgsLFAAgACgCAEEHRwRAIAAgARC2FAsLFwAgACkDACAALQAUEL4jIABBGGoQhhYLEgAgACgCAARAIABBBGoQ2CcLCxMAIAEoAgAiAQRAIAEgABCvGgsLEwAgACgCACIABEAgACABEPMJCwsXACAAKQMAIAAtABQQviMgAEEYahCIFgsTACAAKAIAIgAEQCAAIAEQ8gkLCxMAIAAoAgAiAARAIAAgARDkCAsLFwAgACkDACAALQAUEL4jIABBGGoQiRYLEwAgACABEI0JIgBBGGpBACAAGwsWACAAQgA3AgggABCMLiAAQQRqEPEDCxYAIABCADcCCCAAEIwuIABBBGoQjy4LGAAgACgCAEGAgICAeEcEQCAAIAEQvxoLCxYA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q7KmtK3s2+uofzcDAAsRACAAKAIILQA8ELQpQf8BcQsRACAAQf8BcUH08eMAai0AAAsTACAAQdTW3wA2AgQgACABNgIACyEAIABC1orp8Lf16ZkGNwMIIABCnv6E6pufzuK0fzcDAAsRACAAKAIULQBMELQpQf8BcQsRACAAKAIAIgAQ3gQgABCNKwsPACAAEPgLIABBOGoQuCkLDwAgAEEgahC4KSAAEKIeCxEAIAAoAgAiABC6HSAAEJcrCw8AIAAQuCkgAEEEahC8BQsPACAAEIgnIABBFGoQkSgLDwAgABCJJyAAQRRqEJEoCw8AIAAQpiYgAEEUahCRKAsPACAAIAFBACACIAIQhQcLEQAgACACIAEoAgAoAgAQ1AMLEAAgACACIAEoAgAoAgAQYQsSACAAKAIAENkHIAAoAgQQ2QcLCQAgACABEMIiCx8AIABCjqHtnv6J58ERNwMIIABC9s/uuoiM9Xc3AwALDwAgABDmFiAAQSBqENQpCyIAIABCjd/i29uY9siIfzcDCCAAQrTBspr266W0xgA3AwALEwAgAEENNgIEIABBps/gADYCAAshACAAQriHmcOr4aScMTcDCCAAQrnQguaBt52t1QA3AwALEwAgAEEfNgIEIABBh8/gADYCAAsiACAAQsOO0djw8fyS6gA3AwggAELdgeDK0PLI2vIANwMACyEAIABC++LRjeDZlKQPNwMIIABCrP+pmMquiPDMADcDAAsfACAAQqW3qLD0suBGNwMIIABC9I3mj5vt+KAHNwMACyEAIABCoerDqMiYha+ofzcDCCAAQpOb+u+w6pjjYTcDAAsTACAAQSg2AgQgAEGEy+AANgIACxAAIAAQpiQgAEE4QQQQ1RELEAAgABDDJiAAQTBBBBDVEQsTACAAQbzQ4AA2AgQgACABNgIACxMAIABB+NDgADYCBCAAIAE2AgALEQAgACgCACIAEMICIAAQjSsLDwAgABDUKSAAQQRqEPoECyEAIABClLDejvCVuewnNwMIIABCg+q087za6IT/ADcDAAsPACAAQQxqEPAKIAAQiicLDwAgABDgAiAAQQRqEJQFCw8AIAAQySYgAEEUahClKAsNACAAIAFBAUEBENQiCw8AIAAoAgAgACgCBBDaKQsPAEGwmOQALQAAGiAAEGALDgAgACgCAEEBIAEQkAcLzhIBEH8gACEEIwBBsAFrIgMkACACQQA2AgACQAJAAkAgASIAKAIAIgUgASgCBCIJSw0AIAJBBGohBwJAAkACQCAEKAI8IggEQCABLQAQQQFHDQELAkACQCACKAIQRQRAIARB3AJB2AIgAC0AEBtqKAIAIgFFDQQgASAEKALUAk0NAQwECyACKAIUIQEgAigCGA0BIAIoAiAhBQwECyACKAIcIQYgAigCGCEIIANBQGsgBCABEKcgIAMoAkAgAygCRBDdFSAGQQAgCBsiBk0NAiACQQE2AhggAiAGQQFqNgIcIANBOGogBCABEKcgIAMgAykDODcCmAEgA0EwaiADQZgBaiIAIAYQihAgAygCMEEBcUUNBSAAIAMoAjQiACAFIARBNGooAgAgBEE4aigCACAAQfCFxAAQtx8oAgBrIAUQ6RIgAkEBNgIAIAcgAykCmAE3AgAgB0EIaiADQaABaigCADYCAAwECyACKAIcIQUgA0EoaiAEIAEQpyAgAygCKCADKAIsEN0VIAVNBEAgAkEANgIYIAJBADYCACACIAIoAiBBAWoiBTYCIAwDCyACQQE2AhggAiAFQQFqNgIcIAIoAiAhACADQQhqIAQgARCnICADIAMpAwg3ApgBIAMgA0GYAWoiASAFEIoQIAMoAgBBAXFFDQQgASADKAIEIgEgAEEBaiIAIARBNGooAgAgBEE4aigCACABQfCFxAAQtx8oAgBrIAAQ6RIgAkEBNgIAIAcgAykCmAE3AgAgB0EIaiADQaABaigCADYCAAwDCwJAAkACQAJAIAIoAhBFBEAgBCgC2AIiAUUNAyABIAQoAtQCTQ0BDAMLIAIoAhQhASACKAIYDQEgAigCICEFDAMLIAIoAhwhBiACKAIYIQogA0GQAWogBCABEKcgIAMoApABIAMoApQBEN0VIAZBACAKGyIGTQ0BIAJBATYCGCACIAZBAWo2AhwgA0GIAWogBCABEKcgIAMgAykDiAE3ApgBIANBgAFqIANBmAFqIgAgBhCKECADKAKAAUEBcUUNBiAAIAMoAoQBIgAgBSAEQTRqKAIAIARBOGooAgAgAEHwhcQAELcfKAIAayAFEOkSIAJBATYCACAHIAMpApgBNwIAIAdBCGogA0GgAWooAgA2AgAMBQsgAigCHCEFIANB+ABqIAQgARCnICADKAJ4IAMoAnwQ3RUgBU0EQCACQQA2AhggAkEANgIAIAIgAigCIEEBaiIFNgIgDAILIAJBATYCGCACIAVBAWo2AhwgAigCICEAIANB0ABqIAQgARCnICADIAMpA1A3ApgBIANByABqIANBmAFqIgEgBRCKECADKAJIQQFxRQ0FIAEgAygCTCIBIABBAWoiACAEQTRqKAIAIARBOGooAgAgAUHwhcQAELcfKAIAayAAEOkSIAJBATYCACAHIAMpApgBNwIAIAdBCGogA0GgAWooAgA2AgAMBAsgAkEANgIYIAIgATYCFCACQQE2AhAgAiAFNgIgIAJBADYCAAsgBEE8akEAIAgbIQggBEHIAGohDiAAKAIMIQYgACgCCCEKIARBCGohCyAEQQRqIQwgBEEgaiEPIARBHGohEANAIAUgCU8EQCACIAE2AhQgAkEBNgIQDAQLAkACQAJAIAUgBkkEQCAOIAUgCmotAAAiDWohESABIQADQAJAAkACfyAMKAIAIAsoAgAgAEG4gcQAELgfKAIEIgEEQCAQKAIAIA8oAgAgASARLQAAakHIgcQAELcfKAIADAELIANB8ABqIAQgABCmICADIAMpA3A3AqgBA0AgA0GYAWogA0GoAWoQ/w4gAy0AmAFFDQIgAy0AmQEiASANSQ0ACyABIA1HDQEgAygAmgELIgFBAUcNAQsgDCgCACALKAIAIABB4IXEABC4HygCDCEADAELCyABIAQoAtACTQ0BIAUhAAwCCyAFIAZBjK7AABCsEAALIAIgATYCFCACQQE2AhAgAUUNBQJAIAQoAtQCIAFPBEAgAkKBgICAEDcCGCADQegAaiAEIAEQpyAgAyADKQNoNwKYASADQeAAaiADQZgBaiIAQQAQihAgAygCYEEBcUUNASAAIAMoAmQiACAFQQFqIgEgBEE0aigCACAEQThqKAIAIABB8IXEABC3HygCAGsgARDpEiACQQE2AgAgByADKQKYATcCACAHQQhqIANBoAFqKAIANgIADAcLIANBmAFqIAgoAgAgCEEEaigCACAKIAYgBSAJEO8dIANB2ABqIAMoApgBIAMoApwBEMUhIAMoAlhFDQYgAygCXCIFIAIoAiAiAE0NAQwCCwwGCyAAQQFqIQULIAIgBTYCIAwACwALIAJBADYCGCACIAE2AhQgAkEBNgIQIAIgBTYCICACQQA2AgALIAUg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KAIIIQ0gBEEIaiEOIARBBGohDyAEQThqIRAgBEE0aiERIARBIGohEiAEQRxqIRMgBSEAA0AgACAMRgRAIAYgAykD4AE3AgQgBiAHNgIAIAZBDGogA0HoAWooAgA2AgAMCwsCQCAAIApHBEAgACANai0AACECAn8gDygCACAOKAIAIAFBuIHEABC4HygCBCIUBEAgEygCACASKAIAIBQgAiALai0AAGpByIHEABC3HygCAAwBCyADQRhqIAQgARCmICADIAMpAxg3AvwBA0AgA0GEAmogA0H8AWoQ/w4gAy0AhAJFDQwgAy0AhQIiASACSQ0ACyABIAJHDQsgAygAhgILIQEgA0HgAWohAiABQQFGDQsgASAEKALQAksNASABRQ0LIAEgBCgC1AJLDQEgA0EQaiAEIAEQpyAgAyADKQMQNwKEAiADQQhqIANBhAJqQQAQihAgAygCCEEBcUUNDSADQewBaiICIAMoAgwiFCAAQQFqIhUgESgCACAQKAIAIBRB8IXEABC3HygCAGsgFRDpEiADKALsASAFSw0BIANB6AFqIANB9AFqKAIANgIAIAMgAykC7AE3A+ABQQEhByAIQQFxRQ0BDAsLIAogCUH8rcAAEKwQAAsgAEEBaiEADAALAAsMCQsgBkEANgIADAcLIAhBAXFFBEACQCAEKALYAiIBRQ0AIAEgBCgC1AJLDQAgA0H4AGogBCABEKcgIAMgAykDeDcC4AEgA0HwAGogA0HgAWpBABCKEEEBIQcgAygCcEEBcUUNCSADQewBaiADKAJ0IgAgBSAEQTRqKAIAIARBOGooAgAgAEHwhcQAELcfKAIAayAFEOkSCyACKAIMIgggBSAFIAhJGyEJIARByABqIQ0gAigCCCEOIARBCGohAiAEQQRqIQogBEE4aiEPIARBNGohECAEQSBqIREgBEEcaiESA0AgBSAMRgRAIAYgAykC7AE3AgQgBiAHNgIAIAZBDGogA0H0AWooAgA2AgAMCQsCQCAFIAlHBEAgDSAFIA5qLQAAIgtqIRMgASEAA0ACQAJAAn8gCigCACACKAIAIABBuIHEABC4HygCBCIBBEAgEigCACARKAIAIAEgEy0AAGpByIHEABC3HygCAAwBCyADQegAaiAEIAAQpiAgAyADKQNoNwKEAgNAIANB4AFqIANBhAJqEP8OIAMtAOABRQ0CIAMtAOEBIgEgC0kNAAsgASALRw0BIAMoAOIBCyIBQQFHDQELIAooAgAgAigCACAAQeCFxAAQuB8oAgwhAAwBCwsgASAEKALQAksNAQJAIAEEQCABIAQoAtQCTQ0BDAMLIAYgAykC7AE3AgQgBiAHNgIAIAZBDGogA0H0AWooAgA2AgAMCwsgA0HgAGogBCABEKcgIAMgAykDYDcC4AEgA0HYAGogA0HgAWpBABCKECADKAJYQQFxRQ0LQQEhByADQewBaiADKAJcIgAgBUEBaiILIBAoAgAgDygCACAAQfCFxAAQtx8oAgBrIAsQ6RIMAQsgCSAIQfytwAAQrBAACyAFQQFqIQUMAAsACyAGAn8CQAJAIAQoAtgCIgFFDQAgASAEKALUAksNACADQdAAaiAEIAEQpyAgAyADKQNQNwLgASADQcgAaiADQeABakEAEIoQIAMoAkhBAXFFDQogA0HsAWogAygCTCIAIAUgBEE0aigCACAEQThqKAIAIABB8IXEABC3HygCAGsgBRDpEgwBCyACKAIMIgcgBSAFIAdJGyEIIARByABqIQsgAigCCCENIARBCGohAiAEQQRqIQkgBEEgaiEOIARBHGohDwNAIAUgDEYEQCAGQQA2AgAMCgsCQCAFIAhHBEAgCyAFIA1qLQAAIgpqIRAgASEAA0ACQAJ/IAkoAgAgAigCACAAQbiBxAAQuB8oAgQiAQRAIA8oAgAgDigCACABIBAtAABqQciBxAAQtx8oAgAMAQsgA0FAayAEIAAQpiAgAyADKQNANwKEAgNAIANB4AFqIANBhAJqEP8OIAMtAOABRQ0CIAMtAOEBIgEgCkkNAAsgASAKRw0BIAMoAOIBCyIBQQFHDQMLIAkoAgAgAigCACAAQeCFxAAQuB8oAgwhAAwACwALIAggB0H8rcAAEKwQAAsCQCABIAQoAtACSw0AQQAgAUUNAxogASAEKALUAksNACADQThqIAQgARCnICADIAMpAzg3AuABIANBMGogA0HgAWpBABCKECADKAIwQQFxBEAgA0HsAWogAygCNCIAIAVBAWoiASAEQTRqKAIAIARBOGooAgAgAEHwhcQAELcfKAIAayABEOkSDAMLDAsLIAVBAWohBQwACwALIAYgAykC7AE3AgQgBkEMaiADQfQBaigCADYCAEEBCzYCAAwGCwJAIAQoAtgCIgFFDQAgASAEKALUAksNACADQagBaiAEIAEQpyAgAyADKQOoATcC7AEgA0GgAWogA0HsAWpBABCKECADKAKgAUEBcUUNByADQeABaiADKAKkASIAIAUgBEE0aigCACAEQThqKAIAIABB8IXEABC3HygCAGsgBRDpEiAGQQE2AgAgBkEMaiADQegBaigCADYCACAGIAMpAuABNwIEDAYLIANB7AFqIAAgBEFAayILKAIAIAIoAggiCCACKAIMIgcgBSAMEO8dAkACQAJAIAMoAuwBIgBBAWsOAgEAAgsgBEHIAGohDSADKALwASECIARBCGohCSAEQQRqIQogBEEgaiEOIARBHGohDwNAIAwgAiIFTQRAIAZBADYCAAwJCwJAIAUgB0kEQCANIAUgCGotAAAiAmohECABIQADQAJAAn8gCigCACAJKAIAIABBuIHEABC4HygCBCIBBEAgDygCACAOKAIAIAEgEC0AAGpByIHEABC3HygCAAwBCyADQZgBaiAEIAAQpiAgAyADKQOYATcChAIDQCADQewBaiADQYQCahD/DiADLQDsAUUNAiADLQDtASIBIAJJDQALIAEgAkcNASADKADuAQsiAUEBRw0DCyAKKAIAIAkoAgAgAEHghcQAELgfKAIMIQAMAAsACyAFIAdB/K3AABCsEAALAkAgASAEKALQAksNACABBEACQCAEKALUAiABTwRAIANBkAFqIAQgARCnICADIAMpA5ABNwLsASADQYgBaiADQewBakEAEIoQIAMoAogBQQFxDQEMDQsgA0HsAWogBCgCPCALKAIAIAggByAFIAwQ7x0gA0GAAWogAygC7AEgAygC8AEQxSEgAygCgAFFBEAgBkEANgIADAwLIAMoAoQBIgIgBUsNAwwCCyADQeABaiADKAKMASIAIAVBAWoiASAEQTRqKAIAIARBOGooAgAgAEHwhcQAELcfKAIAayABEOkSIAZBATYCACAGQQxqIANB6AFqKAIANgIAIAYgAykC4AE3AgQMCgsgBkEANgIADAkLIAVBAWohAgwACwALIAYgAykC8AE3AgQgBkEMaiADQfgBaigCADYCAAsgBiAANgIADAULIAYgAykC8AE3AgQgBkEMaiADQfgBaigCADYCAAsgBiAANgIADAMLIARByABqIQ4gAygC8AEhAiAEQQhqIQogBEEEaiELIARBOGohDyAEQTRqIRAgBEEgaiERIARBHGohEgNAAkACQCAMIAIiBUsEQAJAIAUgCEkEQCAOIAUgCWotAAAiAmohEyABIQADQAJAAn8gCygCACAKKAIAIABBuIHEABC4HygCBCIBBEAgEigCACARKAIAIAEgEy0AAGpByIHEABC3HygCAAwBCyADQcgBaiAEIAAQpiAgAyADKQPIATcChAIDQCADQewBaiADQYQCahD/DiADLQDsAUUNAiADLQDtASIBIAJJDQALIAEgAkcNASADKADuAQsiAUEBRw0DCyALKAIAIAooAgAgAEHghcQAELgfKAIMIQAMAAsACyAFIAhB/K3AABCsEAALIAQoAtACIAFPBEAgAUUNAyAEKALUAiABTwRAIANBwAFqIAQgARCnICADIAMpA8ABNwLsASADQbgBaiADQewBakEAEIoQIAMoArgBQQFxDQMMCQsgA0HsAWogBCgCPCANKAIAIAkgCCAFIAwQ7x0gA0GwAWogAygC7AEgAygC8AEQxSEgAygCsAFFBEAgBkEANgIADAgLIAMoArQBIgIgBUsNBAsgBUEBaiECDAMLIAYgAykC4AE3AgQgBiAHNgIAIAZBDGogA0HoAWooAgA2AgAMBQtBASEHIANB4AFqIAMoArwBIgAgBUEBaiICIBAoAgAgDygCACAAQfCFxAAQtx8oAgBrIAIQ6RIMAQsLIAYgAykC4AE3AgQgBiAHNgIAIAZBDGogA0HoAWooAgA2AgAMAgsgA0HgAWohAgsgBiAHNgIAIAYgAikCADcCBCAGQQxqIAJBCGooAgA2AgALIANBkAJqJAAMAQtBgIbEABDgKQALCwwAIAAoAgAgARDeGQu1FgETfyAAIQUgASEDIwBBMGsiBCQAAkACQAJAAkACQAJAAkAgAigCACIAIAIoAgQiC00EQCACLQARIAMtANgCRXIhCQJAAkAgAi0AEEUEQCADKAIoIghFDQQgCUEBcQ0FIAMoAtACIgZFDQEgAygCzAIgBk8EQCAEQRBqIANBEGooAgAgA0EUaigCACAGIAMoAjx2QQJrQbiDxAAQvB8iASgCBCABKAIIQQAQvR8oAgAiASAAIANBHGooAgAgA0EgaigCACABQaiDxAAQtx8oAgBrIAAQ6RIgAygCKCEIQQEhBwsgBEEgaiAIIANBLGoiCSgCACACKAIIIgggAigCDCICIAAgCxDvHSAEKAIgIgBBAWsOAgYIBwsgAygC1AIiBkUNAQJAIAYgAygCzAJLDQAgBEEQaiIBIANBEGooAgAgA0EUaigCACAGIAMoAjx2QQJrQbiDxAAQvB8iBygCBCAHKAIIQQAQvR8oAgAiByAAIANBHGooAgAgA0EgaigCACAHQaiDxAAQtx8oAgBrIAAQ6RJBASEIIAlBAXFFDQAMCQsgAigCDCIHIAAgACAHSRshCiADQUBrIQwgAigCCCEOIANBCGohDyADQQRqIRAgA0EUaiERIANBEGohDSADQSBqIRIgA0EcaiEUIAAhAQNAIAEgC0YEQCAFIAQpAxA3AgQgBSAINgIAIAVBDGogBEEYaigCADYCAAwLCwJAIAEgCkcEQCAQKAIAIA8oAgAgBiAMIAEgDmotAABqLQAAakGYg8QAELcfKAIAIgYgAygCyAJLDQEgBkUEQCAEQRBqIQEMDAsgBiADKALMAksNASAEQSBqIgIgDSgCACARKAIAIAYgAygCPHZBAmtBuIPEABC8HyITKAIEIBMoAghBABC9HygCACITIAFBAWoiFSAUKAIAIBIoAgAgE0Gog8QAELcfKAIAayAVEOkSIAQoAiAgAEsNASAEQRhqIARBKGooAgA2AgAgBCAEKQIgNwMQQQEhCCAJQQFxRQ0BIAIhAQwLCyAKIAdB/K3AABCsEAALIAFBAWohAQwACwALQQEQ0iYhACAFQQI2AgAgBSAANgIEDAgLQQAQ0iYhACAFQQI2AgAgBSAANgIEDAcLIAVBADYCAAwGCyAJQQFxRQRAIAMoAtACIgYEQCADKALMAiAGTwRAIARBIGogA0EQaigCACADQRRqKAIAIAYgAygCPHZBAmtBuIPEABC8HyIBKAIEIAEoAghBABC9HygCACIBIAAgA0EcaigCACADQSBqKAIAIAFBqIPEABC3HygCAGsgABDpEkEBIQcLIAIoAgwiASAAIAAgAUkbIQggA0FAayEJIAIoAgghAiADQQhqIQogA0EEaiEMIANBFGohDiADQRBqIQ8gA0EgaiEQIANBHGohEQNAIAAgC0YEQCAFIAQpAiA3AgQgBSAHNgIAIAVBDGogBEEoaigCADYCAAwJCwJAIAAgCEcEQCAMKAIAIAooAgAgBiAJIAAgAmotAABqLQAAakGYg8QAELcfKAIAIgYgAygCyAJLDQECQCAGBEAgBiADKALMAk0NAQwDCyAFIAQpAiA3AgQgBSAHNgIAIAVBDGogBEEoaigCADYCAAwLC0EBIQcgBEEgaiAPKAIAIA4oAgAgBiADKAI8dkECa0G4g8QAELwfIg0oAgQgDSgCCEEAEL0fKAIAIg0gAEEBaiISIBEoAgAgECgCACANQaiDxAAQtx8oAgBrIBIQ6RIMAQsgCCABQfytwAAQrBAACyAAQQFqIQAMAAsAC0EBENImIQAgBUECNgIAIAUgADYCBAwGCyAFAn8CQCADKALQAiIGBEAgBiADKALMAk0NASACKAIMIgEgACAAIAFJGyEHIANBQGshCCACKAIIIQIgA0EIaiEJIANBBGohCgNAIAAgC0YEQCAFQQA2AgAMCgsCQCAAIAdHBEAgCigCACAJKAIAIAYgCCAAIAJqLQAAai0AAGpBmIPEABC3HygCACIGIAMoAsgCSw0BQQAgBkUNBRogBiADKALMAksNASAAQQFqIQAMBAsgByABQfytwAAQrBAACyAAQQFqIQAMAAsAC0EBENImIQAgBUECNgIAIAUgADYCBAwHCyAEQSBqIANBEGooAgAgA0EUaigCACAGIAMoAjx2QQJrQbiDxAAQvB8iASgCBCABKAIIQQAQvR8oAgAiASAAIANBHGooAgAgA0EgaigCACABQaiDxAAQtx8oAgBrIAAQ6RIgBUEMaiAEQShqKAIANgIAIAUgBCkCIDcCBEEBCzYCAAwFCwJAAkACQAJAIAMoAtACIgYEQCADKALMAiAGTwRAIARBEGogA0EQaigCACADQRRqKAIAIAYgAygCPHZBAmtBuIPEABC8HyIBKAIEIAEoAghBABC9HygCACIBIAAgA0EcaigCACADQSBqKAIAIAFBqIPEABC3HygCAGsgABDpEiAFQQE2AgAgBUEMaiAEQRhqKAIANgIAIAUgBCkCEDcCBAwKCyAEQSBqIAggA0EsaiIIKAIAIAIoAggiByACKAIMIgIgACALEO8dAkAgBCgCICIAQQFrDgIEAAULIANBQGshCSAEKAIkIQAgA0EIaiEKIANBBGohDANAIAsgACIBTQRAIAVBADYCAAwLCyABIAJPDQICQCAMKAIAIAooAgAgBiAJIAEgB2otAABqLQAAakGYg8QAELcfKAIAIgYgAygCyAJNBEAgBkUNBSAGIAMoAswCTQ0BIARBIGogAygCKCAIKAIAIAcgAiABIAsQ7x0gBCAEKAIgIAQoAiQQxSEgBCgCAEUEQCAFQQA2AgAMDQsgBCgCBCIAIAFLDQILIAFBAWohAAwBCwsgBEEQaiADQRBqKAIAIANBFGooAgAgBiADKAI8dkECa0G4g8QAELwfIgAoAgQgACgCCEEAEL0fKAIAIgAgAUEBaiIBIANBHGooAgAgA0EgaigCACAAQaiDxAAQtx8oAgBrIAEQ6RIgBUEBNgIAIAVBDGogBEEYaigCADYCACAFIAQpAhA3AgQMCQtBARDSJiEAIAVBAjYCACAFIAA2AgQMCAsgASACQfytwAAQrBAACyAFQQA2AgAMBgsgBSAEKQIkNwIEIAVBDGogBEEsaigCADYCAAsgBSAANgIADAQLIAUgBCkCJDcCBCAFQQxqIARBLGooAgA2AgALIAUgADYCAAwCCyADQUBrIQogBCgCJCEAIANBCGohDCADQQRqIQ4gA0EUaiEPIANBEGohECADQSBqIREgA0EcaiENA0ACQAJAAkACQCALIAAiAUsEQCAAIAJPDQIgDigCACAMKAIAIAYgCiAAIAhqLQAAai0AAGpBmIPEABC3HygCACIGIAMoAsgCSw0DIAZFDQQgBiADKALMAk0NASAEQSBqIAMoAiggCSgCACAIIAIgACALEO8dIARBCGogBCgCICAEKAIkEMUhIAQoAghFBEAgBUEANgIADAgLIAQoAgwiACABTQ0DDAULIAUgBCkCEDcCBCAFIAc2AgAgBUEMaiAEQRhqKAIANgIADAYLQQEhByAEQRBqIBAoAgAgDygCACAGIAMoAjx2QQJrQbiDxAAQvB8iACgCBCAAKAIIQQAQvR8oAgAiEiABQQFqIgAgDSgCACARKAIAIBJBqIPEABC3HygCAGsgABDpEgwDCyABIAJB/K3AABCsEAALIAFBAWohAAwBCwsgBSAEKQIQNwIEIAUgBzYCACAFQQxqIARBGGooAgA2AgAMAQsgBSAINgIAIAUgASkCADcCBCAFQQxqIAFBCGooAgA2AgALIARBMGokAAvXDwEMfyMAQSBrIgUkACACQQA2AgACQCABIgMoAgAiASADKAIEIgtLDQAgAkEEaiEIAkACQAJAAkACQAJAAkACQCAAKAIoIgkEQCADLQAQQQFHDQELAkACQAJAIAIoAhBFBEAgAy0AEA0BIAAoAtACIgQNAgwLCyACKAIUIQQgAigCGA0CIAIoAiAhAQwICyAAKALUAiIERQ0DCyAEIAAoAswCSw0FIAIoAhxBACACKAIYGyIGIABBEGoiCSgCACAAQRRqIgooAgAgBCAAKAI8dkECa0HYg8QAELwfKAIITw0FIAJBATYCGCACIAZBAWo2AhwgBUEQaiAJKAIAIAooAgAgBCAAKAI8dkECa0G4g8QAELwfIgMoAgQgAygCCCAGEL0fKAIAIgMgASAAQRxqKAIAIABBIGooAgAgA0Gog8QAELcfKAIAayABEOkSIAJBATYCACAIIAUpAhA3AgAgCEEIaiAFQRhqKAIANgIADAkLIAIoAhwiASAAQRBqIgcoAgAgAEEUaiIGKAIAIAQgACgCPHZBAmtB2IPEABC8HygCCE8EQCACQQA2AhggAkEANgIAIAIgAigCIEEBaiIBNgIgDAYLIAJBATYCGCACIAFBAWo2AhwgAigCICEDIAVBEGogBygCACAGKAIAIAQgACgCPHZBAmtBuIPEABC8HyIEKAIEIAQoAgggARC9HygCACIBIANBAWoiAyAAQRxqKAIAIABBIGooAgAgAUGog8QAELcfKAIAayADEOkSIAJBATYCACAIIAUpAhA3AgAgCEEIaiAFQRhqKAIANgIADAYLAkACQCACKAIQRQRAIAAoAtACIgRFDQkgBCAAKALMAk0NAQwECyACKAIUIQQgAigCGA0BIAIoAiAhAQwECyACKAIcQQAgAigCGBsiBiAAQRBqIgooAgAgAEEUaiIMKAIAIAQgACgCPHZBAmtB2IPEABC8HygCCE8NAiACQQE2AhggAiAGQQFqNgIcIAVBEGogCigCACAMKAIAIAQgACgCPHZBAmtBuIPEABC8HyIDKAIEIAMoAgggBhC9HygCACIDIAEgAEEcaigCACAAQSBqKAIAIANBqIPEABC3HygCAGsgARDpEiACQQE2AgAgCCAFKQIQNwIAIAhBCGogBUEYaigCADYCAAwICyACKAIcIgEgAEEQaiIHKAIAIABBFGoiBigCACAEIAAoAjx2QQJrQdiDxAAQvB8oAghPBEAgAkEANgIYIAJBADYCACACIAIoAiBBAWoiATYCIAwDCyACQQE2Ahgg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BEAgDSAEQQFqIgRLBEAgDiAEQQJ0aigCAAwCCwwFCyAAQf////8HcQsiACAGIAVBEGooAgAgBUEUaigCACAAQbCFxAAQtx8oAgBrIAYQ6RIgBSgCHCEEQQEhCQsgA0GgAWogBCAFQSBqIhQoAgAgAigCCCISIAIoAgwiDyAGIBUQ7x0CQAJAAkACQCADKAKgASIAQQFrDgIBAAILIAVBLGohEyADKAKkASEAIAVBCGohCyAFQQRqIREgBUEUaiEODAILIAggAykCpAE3AgQgCEEMaiADQawBaigCADYCAAsgCCAANgIADAILAkADQAJAAkAgFSAAIgJLBEAgACAPSQRAIBMgACASai0AAGotAAAiB0ECaiEGIAEhAANAAkACQAJAAkACQAJAAkAgESgCACALKAIAIABBgITEABC3HygCACIBQf8BcUH+AWsOAgECAAsgA0GAAWogESgCACALKAIAIABBAmoiDEGQhMQAEOwbIAFBAnZBP3EgAUEDcUEAR2oiCiADKAKEASIBSw0SIAMoAoABIQ0gCkECdCEEQX8hAQNAIARFDQYgAUEBaiEBIAcgDSgCACIQQf8BcUYNAyAHIBBBCHZB/wFxRg0EIAcgEEEQdkH/AXFGDQUgDUEEaiENIARBBGshBCAHIBBBGHZHDQALIBEoAgAgCygCACAKIAxqIAFBAnRqQQNqQbCExAAQtx8oAgAhAQwKCyAHIBEoAgAgCygCACAAQfCExAAQtx8tAAFGDQgMBAsgESgCACALKAIAIAAgBmpBkIXEABC3HygCACIBQQFGDQMMCAsgESgCACALKAIAIAogDGogAUECdGpB4ITEABC3HygCACEBDAcLIBEoAgAgCygCACAKIAxqIAFBAnRqQQFqQdCExAAQtx8oAgAhAQwGCyARKAIAIAsoAgAgCiAMaiABQQJ0akECakHAhMQAELcfKAIAIQEMBQsgESgCACALKAIAIABBAWpBoIXEABC3HygCACEADAALAAsgAiAPQfytwAAQrBAACyAIIAMpApABNwIEIAggCTYCACAIQQxqIANBmAFqKAIANgIADAULIBEoAgAgCygCACAAQQJqQYCFxAAQtx8oAgAhAQsCQAJAIAEgBSgCtAJLDQAgAUUNASADQZABagJ/AkAgBSgCuAIgAU8EQCAFKAIoIQAgA0H4AGogESgCACALKAIAIAFBwIXEABDsGyADKAJ8IhBFDQogEAJ/IAMoAngiBi0AACIEQf8BRwRAIAQgBEECdmogBEEDcUEAR2pBAmoMAQsgAEECagsiBE0NBiAGIARBAnRqKAIAIgBBAEgNASAQIARBAWoiAEsEQCAGIABBAnRqKAIADAMLIAAgEEHY/8MAEKwQAAsgA0GgAWogBSgCHCAUKAIAIBIgDyACIBUQ7x0gA0HwAGogAygCoAEgAygCpAEQxSEgAygCcEUEQCAIQQA2AgAMCAsgAygCdCIAIAJNDQIMBAsgAEH/////B3ELIgYgAkEBaiIAIAVBEGooAgAgDigCACAGQbCFxAAQtx8oAgBrIAAQ6RJBASEJDAILIAJBAWohAAwBCwsgCCADKQKQATcCBCAIIAk2AgAgCEEMaiADQZgBaigCADYCAAwCCyAEIBBByP/DABCsEAALIAggETYCACAIIAApAgA3AgQgCEEMaiAAQQhqKAIANgIACyADQbABaiQADAYLIAQgDUHY/8MAEKwQAAtBAEEAQfj/wwAQrBAACyAEIA1ByP/DABCsEAALIAogAUGghMQAEK4QAAsgACABQdj/wwAQrBAACyAAIAFByP/DABCsEAALCwwAIAAoAgAgARCzKAsMACAAKAIAIAEQpxsLCwAgACgC0AIgAU8LCwAgACgCtAIgAU8LCwAgACgCyAIgAU8LDgAgAUHAztYAQQIQqgMLDgAgAEHwu8AAIAEQkgQLCQAgABADQQFGCwkAIAAQBEEBRgsJACAAEAVBAUYLDgAgAEHUx8AAIAEQkgQLDgAgAEHc8sAAIAEQkgQLDAAgACgCACABEK4HCwsAIAAgARDhD0EACwwAIAAoAgAgARDFBQsMACAAKAIAIAEQrSgLDAAgACgCACABENALCwwAIAAoAgAgARDPCgsMACAAKAIAIAEQhwgLCwAgAC0AnApBAXELDAAgACgClA1BvAJqCwoAIABBBGoQ9h4LCwAgAEGAAmoQ9R4LCwAgACgCjANBAksLDAAgACgCACABEPcSCwoAIABBQGsQrxkLDAAgACgCACABEKogCwwAIAAoAgAgARDaCAsMACAAKAIAIAEQ9hILCwAgAEEcQQQQ1RELDAAgACgCACABEIkcCwsAIABBGEEEENURCwsAIABBNEEEENURCwsAIAIgACABEKoDCwwAIAAoAgAgARDpDQsOACAAQbz1xwBBChDiCgsPACAAQYz2xwBBwAAQ4goLDAAgACgCACABEJwXCwsAIAAgARDnD0EACwsAIAAgARD9B0EACwwAIAAoAgAgARDTDQsOACAAQbTP1gAgARCSBAsrAQF/IwBBEGsiAiQAIAIgATYCDCACIAA2AgggAkEIakGsBUEBQQAQjxAACwwAIAAoAgAgARDsDQsLACACIAAgARCVHAsMACAAKAIAIAEQoQYLDAAgACgCACABEMIKC+cBAQh/An8gACgCACECIwBBgAFrIgUkACABKAIEIQcgASgCACEGIAEoAhwiBCEAAkAgBEEEcUUNACAEQQhyIQAgBg0AIAFCgYCAgKABNwIACyABIABBBHI2AhxB/wAhAANAIAUgACIDaiIIIAJBD3EiAEEwciAAQdcAaiAAQQpJGzoAACADQQFrIQAgAkEQSSACQQR2IQJFDQALIANBgQFJBEAgAUEBQai54ABBAiAIQYABIANrEIUEIAEgBDYCHCABIAc2AgQgASAGNgIAIAVBgAFqJAAMAQsgA0GAAUHQ9MAAEK0QAAsLCgAgACABEP4qAAsMACAAIAEpAgA3AwALDgBBAkH01NgAEPEUQQALDAAgACgCACABEO4QCwoAIAAgAa0Q7Q0LCgAgABCyCxpBAQsKACAAEJsCGkEBCwwAIAAQ+RogARD5GgsMACAAEPkaIAEQ7SYLDAAgAEHAAEEIENURCwoAIAAQswsaQQELDAAgAEHIAEEEENURCwwAIAAQ/yYgABCTKwsMACABEMEjIAAQ7SYLCwAgAEEQQQQQ1RELCwAgAEEUQQQQ1RELDAAgABD0JiAAEPEqCzkBAn5BmJfkACkDAFAEQEEBQQAQ3BohAEGYl+QAKQMAQZiX5AAgADcDABDsGAtBmJfkACkDABD8GgsMACAAKAIAIAEQmQELDAAgAEHAAEEEENURCwwAIABB2ABBCBDVEQsLACAAQTBBCBDVEQs8AQJ+QZCX5AApAwBQBEBBpLrgAEEFENwaIQBBkJfkACkDAEGQl+QAIAA3AwAQ7BgLQZCX5AApAwAQ/BoLPAECfkH4luQAKQMAUARAQcDF4ABBBBDcGiEAQfiW5AApAwBB+JbkACAANwMAEOwYC0H4luQAKQMAEPwaCzwBAn5BiJfkACkDAFAEQEG9uuAAQQUQ3BohAEGIl+QAKQMAQYiX5AAgADcDABDsGAtBiJfkACkDABD8Ggs8AQJ+QYCX5AApAwBQBEBB/q/gAEEDENwaIQBBgJfkACkDAEGAl+QAIAA3AwAQ7BgLQYCX5AApAwAQ/BoLPAECfkHwluQAKQMAUARAQaS64ABBBRDcGiEAQfCW5AApAwBB8JbkACAANwMAEOwYC0HwluQAKQMAEPwaC60CAQl/An8gACgCACECIwBBIGsiACQAIAItAAwhByAAQRRqIAIoAgQgAigCCEEKEJUBIABBCGogACgCHCIDQQF2IgIgACgCGCIEIAJBgPXgABCoHiAAKAIMIQUgACgCCCEIIAAgAiADIARqIAJrIAJBkPXgABCoHiACQQFrIQJBACEDIAAoAgQhBCAAKAIAIQkCQAJAA0AgAkF/Rg0BIAMgBUYNAiACIARJBEAgAyAIaiIGLQAAIQogBiACIAlqIgYtAAA6AAAgBiAKOgAAIAJBAWshAiADQQFqIQMMAQsLIAIgBEGw9eAAEKwQAAsgACgCFCABIAdBAEdBAUEAIAAoAhgiASAAKAIcEIUEIQMgARDaKSAAQSBqJAAgAwwBCyAFIAVBoPXgABCsEAALCwwAIAAoAgAgARCBAgsMACAAKAIAIAEQ3hcLCwAgASAAIAIQoysLCwAgACABIAIQgRULDAAgACgCACABEKoNCwwAIAAoAgAgARDeAwsMACAAKAIAIAEQqw0LDAAgACgCACABEOoLCwwAIAAoAgAgARCsDQsMACAAKAIAIAEQrQ0LDAAgACgCACABENgTCwwAIAEQ6yEgABDtJgsMACAAQfAAQQgQ1RELCwAgACABQSEQ3AcLCwAgACABQSsQoAkLCwAgACABQS0QoAkLCwAgACABQT0Q3AcLDAAgACABQcIDEIUCCwwAIAAgAUHDAxCFAgsMACAAIAFBxAMQhQILDAAgACABQcUDEIUCCwwAIAAgAUHGAxCFAgsMACAAIAFBxwMQhQILDAAgACABQcgDEIUCCwwAIAAgAUHJAxCFAgsMACAAIAFBygMQhQILDAAgACABQcsDEIUCCwwAIAAgAUHMAxCFAgsMACAAIAFBzQMQhQILDAAgACABQc4DEIUCCwwAIAAgAUHPAxCFAgsMACAAIAFB0AMQhQILDAAgACABQdEDEIUCCwwAIAAgAUHSAxCFAgsMACAAIAFB0wMQhQILDAAgACABQdQDEIUCCwwAIAAgAUHVAxCFAgsMACAAIAFB1gMQhQILDAAgACgCACABEJYrCwwAIAAoAgAgARCXHAsMACAAKAIAIAEQpRkLDAAgACgCACABEJ8rCwwAIAAoAgAgARCLFQsMACAAKAIAIAEQ9RkLDAAgACgCACABEPADCwwAIAAoAgAgARDRFAsMACAAKAIAIAEQshYLDAAgACgCACABEMIICwwAIAAoAgAgARC2CgsMACAAKAIAIAEQ3RcLDAAgACgCACABEO4KCwwAIAAoAgAgARDWEwsMACAAKAIAIAEQ1xILDAAgACgCACABENIUCwwAIAAoAgAgARDZEgsMACAAKAIAIAEQrBQLDAAgACgCACABEP4RCwsAIABBAToADEEBCwwAIAAoAgAgARCKGwsMACAAKAIAIAEQ3wcLCwAgAEEEQQQQ1RELCwAgAEEgQQgQ1RELkBACDH8BfiAAKAIAIQIjAEHwAWsiACQAIAEtADkhCiABQQE6ADkgAEEDNgIwAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkBBByACKAIAIgNBDGsiBCAEQSZPG0EBaw4kAAECAwQFBgcICQoLDA0hDg8QERIhExQVISEWFxgZGhscHSEeIQsgAigCDEEEdCEDIAIoAgghAgNAIANFDSEgAigCAEECRwRAIAJBDGogARDeKwsgAkEQaiECIANBEGshAwwACwALIAEgAkEEahC5AwwfCyABIAJBCGoQ2AQMHgsgAkEEaiABEN4rDB0LIAJBDGogARDeKwwcCyACQQRqIAEQ3isgAkEIaiABEN4rDBsLIAJBOGoCQAJAAkACQAJAAkACQAJAAkACQAJAAkAgA0EBaw4LAQIDBAUGBwgJCwoACyABIAJBCGoQ0BkMCgsgAkEIaiABEJwfDAkLIAEgAkEIahDxIQwICyACQQRqIAEQ3isMBwsgAkEEaiABEPYYDAYLIAEgAkEEahDRIAwFCyABIAJBBGoQ0SAMBAsgAkEEaiABEN4rDAMLIAEgAkEEahDRIAwCCyACQQRqIAEQriUMAQsgAkEIaiEDAkACQCACKAIEQQFrDgIBAgALIAMgARCNFQwBCyADIAEQiA0LIAEQ3isMGgsgAkEIaiABEJwfDBkLIAEgAkEIahDxIQwYCyACQQRqIAEQ3isgAkEIaiABEN4rIAJBDGogARDeKwwXCyACLQAYQQVGBEAgAkEQaiABEN4rCyACQQRqIAEQ9xggAkEoaiABENAjDBYLIAJBEGogARDeKyACKAIEQYCAgIB4RwRAIAJBBGogARD3GAsgAkEgaiABENAjDBULIAJBBGogARCTGgwUCyACQQhqIAEQjQ8MEwsgAkEEaiABEJMaDBILIAJBBGogARDeKyACQRhqIAEQ0CMgAigCCCABEJMaDBELIAIoAhAhB0EYIQhBACEEIAEoAjAQvhEhBSAAQeAAakHIoOMAKQMAIg43AwBBCCEDIABB0ABqIA43AwAgAEH8AGogAUE0aigCADYCACAAQQE6AHAgACABNgJoIAAgBTYCbCAAQQE6AIEBIABBwKDjACkDACIONwNYIAAgDjcDSCAAIAEpAiw3AnQgACABLQA8OgCEASAAIAEvATo7AYIBIAEtADghBSAAIAEtAD06AIUBIAAgBToAgAEgAkEgaiAAQcgAahC8DSAALQCBASELIABBADoAgQEgACACKAIIIgUgAigCDCIMQShsajYCrAEgACAFNgKoASAAQQA2ApgBIABBADYCiAEgAEEYaiAAQYgBaiIGEJYJIAACfyAAKQMYIg5QBEAgBhD/KEEADAELIAAoAiAhBCAAQbwBaiIGIABBiAFqIgkQwhAgAEEQakEEIAAoArwBQQFqIgNBfyADGyIDIANBBE0bQQhBEBD7FCAAKAIQIQ0gACgCFCIDIAQ2AgggAyAONwMAIABBATYCuAEgACADNgK0ASAAIA02ArABIAYgCUEoEPsGGkEBIQQDQCAAIABBvAFqIgYQlgkgACkDACIOUEUEQCAAKAIIIQkgACgCsAEgBEYEQCAAQeQBaiAGEMIQIABBsAFqIAAoAuQBQQFqIgNBfyADGxCbHyAAKAK0ASEDCyADIAhqIgYgCTYCACAGQQhrIA43AwAgACAEQQFqIgQ2ArgBIAhBEGohCAwBCwtCABDtJiAAQbwBahD/KCAAKAK0ASEDIAAoArABCzYCxAEgACADNgK8ASAAIAMgBEEEdCIEaiIINgLIAQNAIAQEQCAAQcgAaiADKQMAQQEQ1QggBEEQayEEIANBEGohAwwBBQJAIAAgCDYCwAEgDEEobCEDIABBvAFqEIkXA0AgA0UNASADQShrIQMgBSAAQcgAahDJESAFQShqIQUMAAsACwsLIAAgCzoAgQEgBygCAEGAgICAeEYNDiAAKAJsIAdBFGoQmSEgAC0AhQEiA0UEQCAAIAcoAggEfyAHKAIEIgQoAgAgBEEEaigCABDOFAVBAAs6AIUBCyAAQcgAaiAHEKoLIAAgAzoAhQEMDwsjAEFAaiIDJAAgAkEIaiICKAIYQTBqIAEQrCUgASgCMBC+ESEEIANBGGpByKDjACkDACIONwMAIANBCGogDjcDACADQTRqIAFBNGooAgA2AgAgA0EBOgAoIAMgATYCICADIAQ2AiQgA0HAoOMAKQMAIg43AxAgAyAONwMAIAMgASkCLDcCLCADIAEtADw6ADwgAyABLwE6OwE6IAEtADghBCADIAEtAD06AD0gAyAEOgA4IANBADoAOSACIAMQziMgA0EBOgA5IAJBGGogAxDLASADEIEpIANBQGskAAwPCyACKAIMRQ0OIAJBDGogARDeKwwOCyACQQRqIAEQ3isMDQsgAkEEaiABEN4rDAwLIAJBIGogARCdHwwLCyACKAIEIAEQqwsMCgsgAkEEaiABEMMPDAkLIAEgAkEEahDRIAwICyACQQRqIAEQ3isMBwsgAkEEaiABEN4rDAYLIAEgAkEEahDRIAwFCyACQQRqIAEQriUMBAsgASACQQRqENEgDAMLIAJBBGogARD2GAwCCyAHQQRqIABByABqEN4rCyACQSRqIABByABqIgIQqiUgAhCBKQsgASAKOgA5IABBKGoQ2BQgAEHwAWokAAsMACABIAAoAgAQ0R4LDAAgACgCACABEMkRC4EIAgV/AX4gACgCACEAIwBBQGoiAiQAIAEtADQEQCABLQA6IQQgAS0AOSEFIAFBgQI7ADkCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIAQQJrDhIAAQIDBAUREA8ODQwLCgkIBwYSCyAAKAIEQYCAgIB4RgRAIAEoAjAQvhEhAyACQRhqQcig4wApAwAiBzcDACACQQhqIAc3AwAgAkE0aiABQTRqKAIANgIAIAJBAToAKCACIAE2AiAgAiADNgIkIAJBAToAOSACQcCg4wApAwAiBzcDECACIAc3AwAgAiABKQIsNwIsIAIgAS8AOzsAOyABLQA4IQMgAiABLQA9OgA9IAIgAzoAOCACQQE6ADogAEEgaiACELwNIABBCGogAhCUGiAAQRRqIAIQ3ysgAhCBKQwSCyABKAIwEL4RIQMgAkEYakHIoOMAKQMAIgc3AwAgAkEIaiAHNwMAIAJBNGogAUE0aigCADYCACACQQE6ACggAiABNgIgIAIgAzYCJCACQQE6ADkgAkHAoOMAKQMAIgc3AxAgAiAHNwMAIAIgASkCLDcCLCACIAEvADs7ADsgAS0AOCEDIAIgAS0APToAPSACIAM6ADggAkEBOgA6IABBHGogAhC8DSAAQQRqIAIQlBogAEEQaiACEN8rIAIQgSkMEQsgAEEQaiABEOIdIABBKGogARCtJQwQCyAAQdAAaiAAQRBqIQMCQCAALQBEQQRGBEAgAyABEOIdDAELIAEgAxDyIQsgAUGBAjsAOSABEK0lDA8LIABBBGogARDoAgwOCyAAQQRqIAEQ4SsMDQsgACgCDEE4bCEDIAAoAghBMGohAANAIANFDQ0gAS0ANARAIAFBAToAOSAAIAEQ4SsLIANBOGshAyAAQThqIQAMAAsACyABIABBCGoQ8iEMCwsgAC0AHEECRwRAIABBCGogARCNDwsgAUGBAjsAOSAAQShqIAEQ0SMMCgsgACgCCEGEgICAeEgNCSAAQQhqIAEQlRoMCQsgAUEAOgA5IAEgAEEQahD1GCABQQE6ADkgAEFAayABELAlIAFBAToAOSAAQcQAaiABELAlDAgLIABBBGogARDhKyAAQQhqIAEQ4SsMBwsgAEEEaiABEOErIAFBgQI7ADkMBgsgAEEEaiABEOErDAULIAEgAEEQahD1GCABQQE6ADkMBAsgAEEEaiABEOErIABBCGogARDhKyAAQQxqIAEQ4SsgAEEQaiABEOErIAFBAToAOQwDCyAAQQhqIAEQlRogAUEBOgA5DAILIABBBGogARDhKwwBCyAAQQRqIAEQ4SsLIAEgBDoAOiABIAU6ADkLIAJBQGskAAsMACABIAAoAgAQogoLDwAgAEGQ3toAQe0IEIMCCw8AIABB/ebaAEHDARCDAgsPACAAQcDo2gBBzAAQgwILDwAgAEGM6doAQeUAEIMCCw8AIABB8enaAEG9ARCDAgsPACAAQa7r2gBBxRAQgwILDwAgAEHz+9oAQYYIEIMCCw8AIABB+YPbAEG1DRCDAgsPACAAQa6R2wBB4AYQgwILDwAgAEGOmNsAQc8AEIMCCw4AIABB3ZjbAEE7EIMCCw8AIABBmJnbAEGoAxCDAgsPACAAQcCc2wBBzQEQgwILDwAgAEGNntsAQbMFEIMCCw8AIABBwKPbAEGqARCDAgsPACAAQeqk2wBB7gMQgwILDwAgAEHYqNsAQZsHEIMCCw8AIABB86/bAEGsARCDAgsPACAAQZ+x2wBB4AEQgwILDwAgAEH/stsAQfUBEIMCCw8AIABB9LTbAEGIARCDAgsPACAAQfy12wBBzQEQgwILDwAgAEHJt9sAQZIBEIMCCw8AIABB27jbAEH0ARCDAgsPACAAQc+62wBB6wAQgwILDwAgAEG6u9sAQeYBEIMCCw8AIABBoL3bAEHWARCDAgsPACAAQfa+2wBBygEQgwILDwAgAEHAwNsAQYUBEIMCCw8AIABBxcHbAEHqABCDAgsPACAAQa/C2wBBoQIQgwILDwAgAEHQxNsAQboCEIMCCw8AIABBisfbAEGlAhCDAgsPACAAQa/J2wBBlwQQgwILDwAgAEHGzdsAQdMEEIMCCxAAIABBmdLbAEGw4AAQgwILDwAgAEHJstwAQf8CEIMCCw8AIABByLXcAEG+BRCDAgsPACAAQYa73ABB8wEQgwILDwAgAEH5vNwAQfcCEIMCCw8AIABB8L/cAEG5AxCDAgsPACAAQanD3ABBtwQQgwILDwAgAEHgx9wAQecBEIMCCw8AIABBx8ncAEGoAxCDAgsPACAAQe/M3ABBxQEQgwILDwAgAEG0ztwAQfsCEIMCCw8AIABBr9HcAEH5AhCDAgsPACAAQajU3ABB6AEQgwILDwAgAEGQ1twAQeYAEIMCCw8AIABB9tbcAEHHChCDAgsPACAAQb3h3ABB7AAQgwILDwAgAEGp4twAQaUBEIMCCw8AIABBzuPcAEGZBRCDAgsPACAAQefo3ABB6AIQgwILDwAgAEHP69wAQeEIEIMCCw8AIABBsPTcAEGiARCDAgsPACAAQdL13ABB1wEQgwILDwAgAEGp99wAQdQBEIMCCw8AIABB/fjcAEGOARCDAgsPACAAQYv63ABB+AQQgwILDwAgAEGD/9wAQdUGEIMCCw8AIABB2IXdAEHSBBCDAgsPACAAQaqK3QBB6wIQgwILDwAgAEGVjd0AQcsBEIMCCw8AIABB4I7dAEHeABCDAgsPACAAQb6P3QBBqAoQgwILDwAgAEHmmd0AQcwBEIMCCw8AIABBspvdAEGdARCDAgsPACAAQc+c3QBBrwEQgwILDwAgAEH+nd0AQcMBEIMCCw8AIABBwZ/dAEHfARCDAgsPACAAQaCh3QBBzgEQgwILDwAgAEHuot0AQZsBEIMCCw4AIABBiaTdAEEkEIMCCw8AIABBraTdAEGZARCDAgsPACAAQcal3QBBqQEQgwILDwAgAEHvpt0AQa0DEIMCCw8AIABBnKrdAEGKARCDAgsPACAAQaar3QBBgQIQgwILDwAgAEGnrd0AQZ8BEIMCCw8AIABBxq7dAEHCAxCDAgsPACAAQYiy3QBBhgEQgwILDwAgAEGOs90AQZ8HEIMCCw8AIABBrbrdAEHgABCDAgsPACAAQY273QBB3QEQgwILDwAgAEHqvN0AQawCEIMCCw8AIABBlr/dAEGpARCDAgsPACAAQb/A3QBBxQEQgwILDwAgAEGEwt0AQY8FEIMCCw8AIABBk8fdAEGMBBCDAgsPACAAQZ/L3QBBkgYQgwILDwAgAEGx0d0AQZgEEIMCCw8AIABBydXdAEHcDRCDAgsPACAAQaXj3QBBjQEQgwILDwAgAEGy5N0AQfcAEIMCCw8AIABBqeXdAEGsAxCDAgsPACAAQdXo3QBB8QcQgwILDwAgAEHG8N0AQdQKEIMCCxAAIABBmvvdAEHJkwEQgwILDgAgAEHjjt8AQSQQgwILDwAgAEGHj98AQaQKEIMCCw8AIABBq5nfAEGGBhCDAgsPACAAQbGf3wBBuRQQgwILqAcCAn8CfgJAIAAoAgAiACgCACICQRpGBEAgASgCAEEBRw0BIAEoAgQiAiAAKAIYRw0BIAApAwgQ/BohBCAAKQMQIQUgAC0AHCEDQcAAQQgQqyAiASADOgAcIAEgAjYCGCABQgA3AxAgASAENwMIIAFBGjYCAEH4yN8AQQEQ3BohBCAAEKcCIAAgATYCKCAAIAU3AyAgAEIANwMYIAAgBDcDECAAQQA2AgggAEEUNgIADAELAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkBBByACQQxrIgMgA0EmTxtBAWsOJAABAhITAwQFBgcICRUWFhUKCwwNFhISDhYWDxASEhISEhIWERYLIAAoAgxBBHQhAiAAKAIIIQADQCACRQ0WIAAoAgBBAkcEQCAAQQxqIAEQyiwLIABBEGohACACQRBrIQIMAAsACyAAQQRqIAEQ8AkMFAsgAEEIaiABEMssDBMLIABBBGogARDKLCAAQQhqIAEQyiwMEgsgAEE4agJAAkACQAJAAkACQAJAAkACQAJAAkAgAkEBaw4LAAECAwQFBgcICgkKCyAAQQhqIAEQnx8MCQsgAEEIaiABEPQhDAgLIABBBGogARDKLAwHCyAAQQRqIAEQsxwMBgsgAEEEaiABEMosDAULIABBBGogARDKLAwECyAAQQRqIAEQyiwMAwsgAEEEaiABEMosDAILIABBBGogARDKLAwBCyAAQQhqIQICQAJAIAAoAgRBAWsOAgECAAsgAiABEIsXDAELIAIgARC7DgsgARDKLAwRCyAAQQhqIAEQnx8MEAsgAEEIaiABEPQhDA8LIABBBGogARDKLCAAQQhqIAEQyiwMCwsgAC0AGEEFRgRAIABBEGogARDKLAsMCwsgAEEQaiABEMosIAAoAgRBgICAgHhGDQwMCgsgAEEEaiABEMosIAAoAgggARCWGgwLCyAAKAIMQShsIQIgACgCCCEDA0AgAgRAIAMgARCvFCACQShrIQIgA0EoaiEDDAELCyAAKAIQIgAoAgBBgICAgHhHBEAgACABEJcaDAsLDAYLIABBCGogARDMLAwJCyAAKAIMRQ0IDAULIABBCGoQ9SEMBwsgACgCBCABEKAMDAYLIABBBGogARDEDwwFCyAAQQRqIAEQsxwMBAsgAEEEaiABEMosDAMLIABBDGogARDKLAwCCyAAQQRqIAEQ+RgMAQsgAEEEaiABEJYaCwsMACAAKAIYIAEQpBILDAAgACgCGCABEPQFC6UGAQJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAQQcgACgCACIAKAIAIgJBDGsiAyADQSZPG0EBaw4kAAECExQDBAUGBwgJFgoXFgsMDQ4XExMPFxcQERMTExMTExcSFwsgACgCDEEEdCECIAAoAgghAANAIAJFDRcgACgCAEECRwRAIABBDGogARDNLAsgAEEQaiEAIAJBEGshAgwACwALIABBBGogARCHCQwVCyABIABBCGoQqhEMFAsgAEEEaiABEM0sIABBCGogARDNLAwTCyAAQThqAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAJBAWsOCwECAwQFBgcICQsKAAsgAEEIaiABEO0tDAoLIABBCGogARCgHwwJCyABIABBCGoQ9yEMCAsgAEEEaiABEM0sDAcLIABBBGogARC1HAwGCyAAQQRqIAEQzSwMBQsgAEEEaiABEM0sDAQLIABBBGogARDNLAwDCyAAQQRqIAEQzSwMAgsgAEEEaiABEM0sDAELIABBCGohAgJAAkAgACgCBEEBaw4CAQIACyACIAEQjBcMAQsgAiABEPANCyABEM0sDBILIABBCGogARCgHwwRCyABIABBCGoQ9yEMEAsgAEEEaiABEM0sIABBCGogARDNLAwMCyAALQAYQQVGBEAgAEEQaiABEM0sCwwMCyAAQRBqIAEQzSwgACgCBEGAgICAeEYNDQwLCyABIABBCGoQggkMDAsgAEEEaiABEM0sIAEgACgCCBCjGgwLCyAAKAIMQShsIQIgACgCCCEDA0AgAgRAIAMgARDKESACQShrIQIgA0EoaiEDDAELCyAAKAIQIgAoAgBBgICAgHhHBEAgACABEKIaDAsLDAYLIABBCGogARDBJwwJCyAAKAIMRQ0IDAULIABBCGogARCXHgwHCyAAKAIEIAEQgQwMBgsgAEEEaiABEMYPDAULIABBBGogARC1HAwECyAAQQRqIAEQzSwMAwsgAEEMaiABEM0sDAILIABBBGogARD7GAwBCyABIABBBGoQoxoLCwwAIAAoAgAgARCiEgsMACABIAAoAhgQwQQLDAAgACgCACABEKMSCwwAIAAoAgAgARChEgsMACAAKAIAIAEQpBILCwAgASAAKAIAEE8LDAAgACgCACABEPAPC+cFAQJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAQQcgACgCACIAKAIAIgJBDGsiAyADQSZPG0EBaw4kAAECExQDBAUGBwgJFgoXFgsMDQ4XExMPFxcQERMTExMTExcSFwsgACgCDEEEdCECIAAoAgghAANAIAJFDRcgACgCAEECRwRAIABBDGogARDVLAsgAEEQaiEAIAJBEGshAgwACwALIABBBGogARCuCgwVCyAAQQhqIAEQwicMFAsgAEEEaiABENUsIABBCGogARDVLAwTCyAAQThqAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAJBAWsOCwECAwQFBgcICQsKAAsgAEEIaiABEIMpDAoLIABBCGogARChHwwJCyABIABBCGoQgCIMCAsgAEEEaiABENUsDAcLIABBBGogARC2HAwGCyAAQQRqIAEQ1SwMBQsgAEEEaiABENUsDAQLIABBBGogARDVLAwDCyAAQQRqIAEQ1SwMAgsgAEEEaiABENUsDAELIABBCGohAgJAAkAgACgCBEEBaw4CAQIACyACIAEQjRcMAQsgAiABEPENCyABENUsDBILIABBCGogARChHwwRCyABIABBCGoQgCIMEAsgAEEEaiABENUsIABBCGogARDVLAwMCyAALQAYQQVGBEAgAEEQaiABENUsCwwMCyAAQRBqIAEQ1SwgACgCBEGAgICAeEYNDQwLCyABIAApAwggACgCGBCPGwwMCyAAQQRqIAEQ1SwgACgCCCABEKQaDAsLIABBBGogARDdEgwKCyAAQQhqIAEQwycMCQsgACgCDEUNCAwFCyAAQSBqIAEQ5R0MBwsgACgCBCABEIIMDAYLIABBBGogARDHDwwFCyAAQQRqIAEQthwMBAsgAEEEaiABENUsDAMLIABBDGogARDVLAwCCyAAQQRqIAEQ/BgMAQsgAEEEaiABEKQaCwvkBQECfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAQQcgACgCACIAKAIAIgJBDGsiAyADQSZPG0EBaw4kAAECEhMDBAUGBwgJFBUVFAoLDA0VEhIOFRUPEBISEhISEhURFQsgACgCDEEEdCECIAAoAgghAANAIAJFDRUgACgCAEECRwRAIABBDGogARDWLAsgAEEQaiEAIAJBEGshAgwACwALIABBBGogARDXCwwTCyAAQQhqIAEQ2SwMEgsgAEEEaiABENYsIABBCGogARDWLAwRCyAAQThqAkACQAJAAkACQAJAAkACQAJAAkACQCACQQFrDgsAAQIDBAUGBwgKCQoLIABBCGogARCjHwwJCyABIABBCGoQgSIMCAsgAEEEaiABENYsDAcLIABBBGogARC4HAwGCyAAQQRqIAEQ1iwMBQsgAEEEaiABENYsDAQLIABBBGogARDWLAwDCyAAQQRqIAEQ1iwMAgsgAEEEaiABENYsDAELIABBCGohAgJAAkAgACgCBEEBaw4CAQIACyACIAEQjhcMAQsgAiABELwOCyABENYsDBALIABBCGogARCjHwwPCyABIABBCGoQgSIMDgsgAEEEaiABENYsIABBCGogARDWLAwLCyAAQQRqAkAgAC0AGEEFRw0AIABBEGoiACABENYsIAAoAgBB0NvgAEEEEJEfRQ0AIAFBAToAAAsgARD+GAwMCyAAQRBqIAEQ1iwgACgCBEGAgICAeEYNCyAAQQRqIAEQ/hgMCwsgAEEEaiABENYsIAAoAgggARClGgwKCyAAQQRqIAEQ3hIMCQsgAEEIaiABENosDAgLIAAoAgxFDQcMBQsgAEEgahDVIAwGCyAAKAIEIAEQoQwMBQsgAEEEaiABEMgPDAQLIABBBGogARC4HAwDCyAAQQRqIAEQ1iwMAgsgAEEMaiABENYsDAELIABBBGogARClGgsLDAAgASAAKAIAEPIBCwwAIAAoAgAgARDKEQsMACAAKAIYIAEQoxILjwIBBX8gACgCGCIDIAEQnRogAygCFEHYAGwhBSADKAIQIQYDQCACIAVHBEACQAJAAkACQAJAAkACQAJAIAIgBmoiACgCACIEQQRrQQAgBEEFa0EISRtBAWsOCAECAwQHBwUGAAsgACABEOsLDAYLIABBCGogARC7JQwFCyAAQSBqIAEQ0CwMBAsgASAAQQhqEPohIABBPGogARC8JSAAQTBqIAEQnRoMAwsgAEEkaiABELwlIABBLGogARCdGgwCCyAAQQRqIAEQnhoMAQsgAEEIaiIEKAIAQQVHBEAgASAEEPohCyAAQTxqIAEQvCUgAEEwaiABEJ0aCyACQdgAaiECDAELCyADQTBqIAEQvCULDAAgACgCGCABEPAPCwwAIAEgACgCGBCsAwsMACAAKAIAIAEQrxQLDAAgACgCACABENcECwwAIAAoAgAgARCuCAsMACAAKAIAIAEQlgULDAAgACgCACABEOoTCwwAIAEgACgCABDJAQsMACAAKAIAIAEQ9wELDAAgASAAKAIAEKwdCwwAIAAoAgAgARDIAwsMACAAKAIAIAEQ6xMLDAAgACgCACABEMwRCwwAIAAoAgAgARDVBAsMACAAKAIAIAEQ7BMLDAAgACgCACABELAUCwwAIAAoAgAgARD9BAsMACAAKAIAIAEQ7RMLDAAgACgCACABEK0RCwsAIAAoAgAgARBeCwwAIAEgACgCABCUIAsMACAAKAIAIAEQshQLDAAgACgCACABELMDCwwAIAEgACgCABDSHgsLACAAQShBCBDVEQsKACAAEJ0LGkEBCwwAIAAoAgAgARChDAsMACAAKAIAIAEQggwLDAAgACgCACABEKMMCwwAIAAoAgAgARCgDAsMACAAKAIAIAEQgQwLDAAgACgCACABEKsLCwwAIAAoAgAgARCiDAsMACAAKAIAIAEQoAoLDAAgACgCACABEN0pCwwAIAEgACgCABDBBAsMACAAQcgAQQgQ1RELCwAgACgCGCABEFILDAAgACgCGCABEKsSCwwAIAEgACgCABCqAQsMACABIAAoAgAQ8wMLDAAgACgCACABEM8NCwwAIAEgACgCABCxAguFBgECfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkBBByAAKAIAIgAoAgAiAkEMayIDIANBJk8bQQFrDiQAAQISEwMEBQYHCAkVFhYVCgsMDRYSEg4WFg8QEhISEhISFhEWCyAAKAIMQQR0IQIgACgCCCEAA0AgAkUNFiAAKAIAQQJHBEAgAEEMaiABEIYtCyAAQRBqIQAgAkEQayECDAALAAsgAEEEaiABEPIJDBQLIABBCGogARCLLQwTCyAAQQRqIAEQhi0gAEEIaiABEIYtDBILIABBOGoCQAJAAkACQAJAAkACQAJAAkACQAJAIAJBAWsOCwABAgMEBQYHCAoJCgsgAEEIaiABEKgfDAkLIABBCGogARCYIgwICyAAQQRqIAEQhi0MBwsgAEEEaiABEMMcDAYLIABBBGogARCGLQwFCyAAQQRqIAEQhi0MBAsgAEEEaiABEIYtDAMLIABBBGogARCGLQwCCyAAQQRqIAEQhi0MAQsgAEEIaiECAkACQCAAKAIEQQFrDgIBAgALIAIgARCSFwwBCyACIAEQvQ4LIAEQhi0MEQsgAEEIaiABEKgfDBALIABBCGogARCYIgwPCyAAQQRqIAEQhi0gAEEIaiABEIYtDAsLIAAtABhBBUYEQCAAQRBqIAEQhi0LDAsLIABBEGogARCGLSAAKAIEQYCAgIB4Rg0MDAoLIABBBGogARCGLSAAKAIIIAEQsxoMCwsgACgCDEEobCECIAAoAgghAwNAIAIEQCADIAEQsxQgAkEoayECIANBKGohAwwBCwsgACgCECIAKAIAQYCAgIB4RwRAIAAgARC0GgwLCwwGCyAAQQhqIAEQjC0MCQsgACgCDEUNCAwFCyAAQQhqEPUhDAcLIAAoAgQgARCkDAwGCyAAQQRqIAEQzQ8MBQsgAEEEaiABEMMcDAQLIABBBGogARCGLQwDCyAAQQxqIAEQhi0MAgsgAEEEaiABEIoZDAELIABBBGogARCzGgsLDAAgACgCACABEOsBCwwAIAAoAgAgARCjEAsMACAAKAIAIAEQrhELmwYBAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkBBByAAKAIAIgAoAgAiAkEMayIDIANBJk8bQQFrDiQAAQITFAMEBQYHCAkWChcWCwwNDhcTEw8XFxARExMTExMTFxIXCyAAKAIMQQR0IQIgACgCCCEAA0AgAkUNFyAAKAIAQQJHBEAgAEEMaiABEIotCyAAQRBqIQAgAkEQayECDAALAAsgAEEEaiABEOQIDBULIABBIGogARCOLQwUCyAAQQRqIAEQii0gAEEIaiABEIotDBMLIABBOGoCQAJAAkACQAJAAkACQAJAAkACQAJAIAJBAWsOCwABAgMEBQYHCAoJCgsgAEEIaiABEKcfDAkLIABBCGogARCXIgwICyAAQQRqIAEQii0MBwsgAEEEaiABEMIcDAYLIABBBGogARCKLQwFCyAAQQRqIAEQii0MBAsgAEEEaiABEIotDAMLIABBBGogARCKLQwCCyAAQQRqIAEQii0MAQsgAEEIaiECAkACQCAAKAIEQQFrDgIBAgALIAIgARCTFwwBCyACIAEQvg4LIAEQii0MEgsgAEEIaiABEKcfDBELIABBCGogARCXIgwQCyAAQQRqIAEQii0gAEEIaiABEIotDAwLIAAtABhBBUYEQCAAQRBqIAEQii0LDAwLIABBEGogARCKLSAAKAIEQYCAgIB4Rg0NDAsLIAEgACkDCCAAKAIYELMdDAwLIABBBGogARCKLSAAKAIIIAEQshoMCwsgACgCDEEobCECIAAoAgghAwNAIAIEQCADIAEQtBQgAkEoayECIANBKGohAwwBCwsgACgCECIAKAIAQYCAgIB4RwRAIAAgARC1GgwLCwwGCyAAQSBqIAEQ8QUMCQsgACgCDEUNCAwFCyAAQQhqIAEQ1R4MBwsgACgCBCABEIQMDAYLIABBBGogARDODwwFCyAAQQRqIAEQwhwMBAsgAEEEaiABEIotDAMLIABBDGogARCKLQwCCyAAQQRqIAEQiRkMAQsgAEEEaiABELIaCwsMACAAKAIYIAEQqRILDAAgACgCGCABEPUFCwwAIAAoAgAgARCzFAsMACAAKAIAIAEQqhILDAAgACgCACABELQUCwwAIAEgACgCABCwCQsMACAAKAIAIAEQthQLDAAgACgCGCABEKwSCwwAIAAoAhggARD2BQsMACAAKAIAIAEQ0wMLDAAgACgCACABELEaCwwAIAAoAgAgARCEDAsMACAAKAIAIAEQpAwLDAAgACgCACABEL8LCwwAIAAoAgAgARCDDAsMACAAKAIAIAEQpQwLDAAgARDtJiAAEPkaCwwAIAAoAgAgARCpEgsMACAAKAIAIAEQrBILDAAgACgCACABEKsSCwwAIAAoAgAgARCXBQsMACAAKAIAIAEQ8RMLDAAgACgCACABEJgFCwwAIAAoAgAgARDyEwsMACAAKAIAIAEQ1gQLDAAgACgCACABEPMTCwwAIAEgACgCABCSAQsMACABIAAoAgAQ3QMLXAEDfyAAKAIAIgBBDGogACgCCEEGdCECIAAoAgQhAwNAIAIEQCADIAEQmiYgAkFAaiECIANBQGshAwwBCwsgARDBGiAAKAIYQYCAgIB4RwRAIABBGGogARC/GgsLDAAgACgCGCABEJkJCwwAIAAoAgAgARDaBAsMACAAKAIAIAEQ9BMLDAAgACgCACABEPgECwwAIAAoAgAgARD1EwsMACAAKAIAIAEQxQsLDAAgACgCACABEKYMCwwAIAAoAgAgARCICQsMACAAKAIAIAEQsRILCgAgABDvDhpBAQsLACAAIAEQ6w9BAAsMACAAIAEpAhA3AwALCwAgACABEP4HQQALCgAgACABIAIQZwsMACABIAAoAhgQpAELDAAgACgCGCABEP8KCwwAIAAoAgAgARD4AQsMACAAKAIAIAEQ/woLCwAgACABIAIQ6BgLDAAgACgCACABEKgQCwwAIAAoAgAgARC3FQsMACABIAAoAgAQpwMLCwAg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ZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2Foby1jb3Jhc2ljay0xLjEuMy9zcmMvcGFja2VkL3JhYmlua2FycC5ycwBkGxAAbwAAAD0AAAAJAAAAYXNzZXJ0aW9uIGZhaWxlZDogaGFzaF9sZW4gPj0gMQBkGxAAbwAAAD8AAAAJAAAAZBsQAG8AAABNAAAALAAAAGQbEABvAAAATwAAABcAAABAAAAAZBsQAG8AAABgAAAAKwAAAGQbEABvAAAAbwAAABEAAABkGxAAbwAAAFsAAAAJAAAAZBsQAG8AAACOAAAAIwAAAGQbEABvAAAAlwAAAAkAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9haG8tY29yYXNpY2stMS4xLjMvc3JjL3V0aWwvcmVtYXBwZXIucnOIHBAAbAAAAHIAAAASAAAAiBwQAGwAAACMAAAAJAAAAIgcEABsAAAAkQAAACAAAACIHBAAbAAAAJMAAAAdAAAAQm9ycm93ZWRPd25lZC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2Foby1jb3Jhc2ljay0xLjEuMy9zcmMvcGFja2VkL3BhdHRlcm4ucnMAAEEdEABtAAAAXQAAABoAAABBHRAAbQAAAF0AAAAwAAAAgNAQAGkAAACHAgAAKQAAAGltcG1lbW9yeV91c2FnZQAkAwAADAAAAAQAAAAlAwAAJgMAACcDAABhbGxvYy9zcmMvcmF3X3ZlYy5ycwgeEAAUAAAAGAAAAAUAQbS8wAALfQEAAAAoAwAAYSBmb3JtYXR0aW5nIHRyYWl0IGltcGxlbWVudGF0aW9uIHJldHVybmVkIGFuIGVycm9yIHdoZW4gdGhlIHVuZGVybHlpbmcgc3RyZWFtIGRpZCBub3RhbGxvYy9zcmMvZm10LnJzAACSHhAAEAAAAH4CAAAOAEG8vcAAC/ICAQAAACkDAABhbGxvYy9zcmMvc2xpY2UucnMAAMQeEAASAAAANQIAADIAAABhbGxvYy9zcmMvc3luYy5ycwAAAOgeEAARAAAAbgEAADIAAAApIHNob3Vs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AgUBBQYCBQcIAQIFAwkABgIFAQkFAwECBQkHBgUGAgUECAgCCAECBQIEBAEEAAYCBQECAgAHAAMBAgUGAQADBQEFBgIFAwAFAQcFBwgBAgUBBQIFCAcICQAGAgUHBgIJAwkEBQMBAgUDCAEEBgkHAgYFBgIFAQkABwMECAYDAggBAgUJBQMGBwQDAQYEAAYCBQQHBggDBwEFCAIAAwECBQIDCAQBCAUHCQEAAQUGAgUBAQkCAAkCCAkFBQAHCAECBQUJBgAEBgQEBwcFAwkABgIFAgkIAAIDAgIDCAcGCQUDAQIFAQQJAAEBBgEBCQMIBAcGBQYCBQcEBQAFCAAFCQYJAgMIAggBAgUDBwIFAgkAAgkIBAYBCQEEAAYCBQEIBgIGBAUBBAkCAwAJBQcAAwECBQkDAQMCAgUHBAYBBQQHCAUBBQYCBQQGBQYGAQIIBwMABwcDCQIFBwgBAgUCAwIIAwAGBAMGBQMIBgkGAggJAAYCBQEBBgQBBQMCAQgCBgkDBAgBBAQFAwECBQUIAgAHBgYACQEDBAYHBAAHAgIGBQYCBQIJAQADCAMABAUGBwMDBwADBgEDAggBAgUBBAUFAQkBBQICCAMGBggFAQgABgYEAAYCBQcCBwUJBQcGAQQBCAMEAgUJAAMDAgADAQIFAwYDBwkHCAgABwAJAQcBAgkFAQYGAAEFBgIFAQgBCAkICQQAAwUEBQgFBgQHBQgDAAAHCAECBQkACQQJBAcAAQcHAgkCCAIDBwkBBQADCQAGAgUEBQQHBAcDBQAICAYEBgQBAQgJBQcFAQkFAwECBQICBwMHAwYHBQQEAwIDAgAFCQQHCAcFCQcGBQYCBQEBAwYIBggDBwcCAQYBBgACCQcDCQMHCQgIAggBAgUFBggEAwQBCAgGAAgACAABBAgGCQYICQkEAQQABgIFAggEAgEHAAkEAwAEAAQAAAcEAwQIBAQJBwAHAAMBAgUBBAIBAAgFBAcBBQIAAgAAAwcBBwQCAgQIBQMFAQUGAgUHAQAFBAIHAwUHBgABAAABCAUIBwEBAgQCBgcFBwgBAgUDBQUCBwEDBgcICAAABQAACQIJAwUFBgIBAwMHCAkABgIFAQcHBgMFBggDCQQAAAIFAAQGBAYHBwgBAAYGCAkEBQMBAgUICAgBBwgEAQkHAAABAgUCAwIDAwgJAAUDAwQEBwIG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XQoAClYd4wpGCgAKZhUAbwAKAApWCoYKAQcACgAXAAoAFAwUbBkAMgAKAAoACvcKAAmACgA7AQMBBEwtAQ8ADQAKAGludmFsaWQgbGVuZ3RoaW52YWxpZCBzeW1ib2xub24temVybyB0cmFpbGluZyBiaXRzaW52YWxpZCBwYWRkaW5nIGxlbmd0aCBhdCAAAAABAAAAAAAAALl7EAAEAAAATGVuZ3RoVHJhaWxpbmdQYWRkaW5nRGVjb2RlRXJyb3Jwb3NpdGlvbi9ydXN0L2RlcHMvaGFzaGJyb3duLTAuMTUuMC9zcmMvcmF3L21vZC5ycwAA+HsQACoAAABUAAAAKAAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2hzdHItMC4yLjE1L3NyYy9nbG9iYWxfc3RvcmUucnM0fBAAZAAAAAsAAAAgAAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvaHN0ci0wLjIuMTUvc3JjL2xpYi5yc25vdCB5ZXQgaW1wbGVtZW50ZWQ6IHN0YXRpYyBoYXNoAAN9EAAgAAAAqHwQAFsAAADwAAAAEQAAAG5vdCB5ZXQgaW1wbGVtZW50ZWQ6IHN0YXRpYyBhc19zdHIAADx9EAAiAAAAqHwQAFsAAAAAAQAAEQAAAKh8EABbAAAABQEAADwAAAAAAAAACAAAAAQAAABXAwAAcmV0dXJuIHRoaXMAWAMAAFkDAABaAwAAWwMAAHMxFgBwAAAATQAAAC4AAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9tZW1jaHItMi43LjQvc3JjL2FyY2gvYWxsL3R3b3dheS5yc8R9EABoAAAAvwAAAC4AAADEfRAAaAAAAMcAAAApAAAAxH0QAGgAAADMAAAANAAAAMR9EABoAAAA1AAAACQAAADEfRAAaAAAANQAAAAxAAAAxH0QAGgAAADXAAAAIgAAAMR9EABoAAAA1wAAADMAAADEfRAAaAAAAPEAAAAuAAAAxH0QAGgA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dC9zaGlmdC5ycwAAAESXEABpAAAAZgAAACgAAAAAAAAABAAAAAQAAABAAAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvbnVtLWJpZ2ludC0wLjQuNi9zcmMvYmlndWludC9hZGRpdGlvbi5ycwAAANCXEABtAAAAOwAAABoAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9udW0tYmlnaW50LTAuNC42L3NyYy9iaWd1aW50L3N1YnRyYWN0aW9uLnJzUJgQAHAAAAA0AAAAGgAAAFCYEABwAAAANQAAABoAAABDYW5ub3Qgc3VidHJhY3QgYiBmcm9tIGEgYmVjYXVzZSBiIGlzIGxhcmdlciB0aGFuIGEu4JgQADQAAABQmBAAcAAAAEUAAAAFAAAAUJgQAHAAAABdAAAAGgAAAFCYEABwAAAAXgAAABoAAABhc3NlcnRpb24gZmFpbGVkOiBhX2hpLmlzX2VtcHR5KCkAAABQmBAAcAAAAGIAAAAFAAAAUJgQAHAAAABlAAAABQAAAC9ydXN0Yy85MGIzNWE2MjM5YzNkOGJkYWJjNTMwYTZhMDgxNmY3ZmY4OWEwYWFmL2xpYnJhcnkvY29yZS9zcmMvc2xpY2UvaXRlci5ycwAAkJkQAE4AAADxBQAAFQAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL251bS1pbnRlZ2VyLTAuMS40Ni9zcmMvcm9vdHMucnPwmRAAZAAAAIMBAAABAAAAAAAAAAQAAAAEAAAAQAAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL29uY2VfY2VsbC0xLjE5LjAvc3JjL2ltcF9zdGQucnN0mhAAZAAAAKEAAAA2AAAAdJoQAGQAAACbAAAACQAAADM4OzI7AAAA+JoQAAUAAAD5FxgAAQAAAPkXGAABAAAANDg7MjsAAAAYmxAABQAAAPkXGAABAAAA+RcYAAEAAAAbWzEyMzQ1Njc4ORtbMG0AQ5sQAAQAAAAzMDMxMzIzMzM0MzUzNjM3Mzk5MDkxOTI5Mzk0OTU5Njk3NDA0MTQyNDM0NDQ1NDY0NzQ5MTAwMTAxMTAyMTAzMTA0MTA1MTA2MTA3Mzg7MjsyNDA7MjQ4OzI1NTM4OzI7MjUwOzIzNTsyMTUzODsyOzAwMDsyNTU7MjU1Mzg7MjsxMjc7MjU1OzIxMjM4OzI7MjQwOzI1NTsyNTUzODsyOzI0NTsyNDU7MjIwMzg7MjsyNTU7MjI4OzE5NjM4OzI7MDAwOzAwMDswMDAzODsyOzI1NTsyMzU7MjA1Mzg7MjswMDA7MDAwOzI1NTM4OzI7MTM4OzA0MzsyMjYzODsyOzE2NTswNDI7MDQyMzg7MjsyMjI7MTg0OzEzNTM4OzI7MDk1OzE1ODsxNjAzODsyOzEyNzsyNTU7MDAwMzg7MjsyMTA7MTA1OzAzMDM4OzI7MjU1OzEyNzswODAzODsyOzEwMDsxNDk7MjM3Mzg7MjsyNTU7MjQ4OzIyMDM4OzI7MjIwOzAyMDswNjAzODsyOzAwMDswMDA7MTM5Mzg7MjswMDA7MTM5OzEzOTM4OzI7MTg0OzEzNDswMTEzODsyOzE2OTsxNjk7MTY5Mzg7MjswMDA7MTAwOzAwMDM4OzI7MTg5OzE4MzsxMDczODsyOzEzOTswMDA7MTM5Mzg7MjswODU7MTA3OzA0NzM4OzI7MjU1OzE0MDswMDAzODsyOzE1MzswNTA7MjA0Mzg7MjsxMzk7MDAwOzAwMDM4OzI7MjMzOzE1MDsxMjIzODsyOzE0MzsxODg7MTQzMzg7MjswNzI7MDYxOzEzOTM4OzI7MDQ3OzA3OTswNzkzODsyOzAwMDsyMDY7MjA5Mzg7MjsxNDg7MDAwOzIxMTM4OzI7MjU1OzAyMDsxNDczODsyOzAwMDsxOTE7MjU1Mzg7MjsxMDU7MTA1OzEwNTM4OzI7MDMwOzE0NDsyNTUzODsyOzE3ODswMzQ7MDM0Mzg7MjsyNTU7MjUwOzI0MDM4OzI7MDM0OzEzOTswMzQzODsyOzI1NTswMDA7MjU1Mzg7MjsyMjA7MjIwOzIyMDM4OzI7MjQ4OzI0ODsyNTUzODsyOzI1NTsyMTU7MDAwMzg7MjsyMTg7MTY1OzAzMjM4OzI7MTI4OzEyODsxMjgzODsyOzAwMDsxMjg7MDAwMzg7MjsxNzM7MjU1OzA0NzM4OzI7MjQwOzI1NTsyNDAzODsyOzI1NTsxMDU7MTgwMzg7MjsyMDU7MDkyOzA5MjM4OzI7MDc1OzAwMDsxMzAzODsyOzI1NTsyNTU7MjQwMzg7MjsyNDA7MjMwOzE0MDM4OzI7MjMwOzIzMDsyNTAzODsyOzI1NTsyNDA7MjQ1Mzg7MjsxMjQ7MjUyOzAwMDM4OzI7MjU1OzI1MDsyMDUzODsyOzE3MzsyMTY7MjMwMzg7MjsyNDA7MTI4OzEyODM4OzI7MjI0OzI1NTsyNTUzODsyOzI1MDsyNTA7MjEwMzg7MjsyMTE7MjExOzIxMTM4OzI7MTQ0OzIzODsxNDQzODsyOzI1NTsxODI7MTkzMzg7MjsyNTU7MTYwOzEyMjM4OzI7MDMyOzE3ODsxNzAzODsyOzEzNTsyMDY7MjUwMzg7MjsxMTk7MTM2OzE1MzM4OzI7MTc2OzE5NjsyMjIzODsyOzI1NTsyNTU7MjI0Mzg7MjswMDA7MjU1OzAwMDM4OzI7MDUwOzIwNTswNTAzODsyOzI1MDsyNDA7MjMwMzg7MjsxMjg7MDAwOzAwMDM4OzI7MTAyOzIwNTsxNzAzODsyOzAwMDswMDA7MjA1Mzg7MjsxODY7MDg1OzIxMTM4OzI7MTQ3OzExMjsyMTkzODsyOzA2MDsxNzk7MTEzMzg7MjsxMjM7MTA0OzIzODM4OzI7MDAwOzI1MDsxNTQzODsyOzA3MjsyMDk7MjA0Mzg7MjsxOTk7MDIxOzEzMzM4OzI7MDI1OzAyNTsxMTIzODsyOzI0NTsyNTU7MjUwMzg7MjsyNTU7MjI4OzIyNTM4OzI7MjU1OzIyODsxODEzODsyOzI1NTsyMjI7MTczMzg7MjswMDA7MDAwOzEyODM4OzI7MjUzOzI0NTsyMzAzODsyOzEyODsxMjg7MDAwMzg7MjsxMDc7MTQyOzAzNTM4OzI7MjU1OzE2NTswMDAzODsyOzI1NTswNjk7MDAwMzg7MjsyMTg7MTEyOzIxNDM4OzI7MjM4OzIzMjsxNzAzODsyOzE1MjsyNTE7MTUyMzg7MjsxNzU7MjM4OzIzODM4OzI7MjE5OzExMjsxNDczODsyOzI1NTsyMzk7MjEzMzg7MjsyNTU7MjE4OzE4NTM4OzI7MjA1OzEzMzswNjMzODsyOzI1NTsxOTI7MjAzMzg7MjsyMjE7MTYwOzIyMTM4OzI7MTc2OzIyNDsyMzAzODsyOzEyODswMDA7MTI4Mzg7MjsxMDI7MDUxOzE1MzM4OzI7MjU1OzAwMDswMDAzODsyOzE4ODsxNDM7MTQzMzg7MjswNjU7MTA1OzIyNTM4OzI7MTM5OzA2OTswMTkzODsyOzI1MDsxMjg7MTE0Mzg7MjsyNDQ7MTY0OzA5NjM4OzI7MDQ2OzEzOTswODczODsyOzI1NTsyNDU7MjM4Mzg7MjsxNjA7MDgyOzA0NTM4OzI7MTkyOzE5MjsxOTIzODsyOzEzNTsyMDY7MjM1Mzg7MjsxMDY7MDkwOzIwNTM4OzI7MTEyOzEyODsxNDQzODsyOzI1NTsyNTA7MjUwMzg7MjswMDA7MjU1OzEyNzM4OzI7MDcwOzEzMDsxODAzODsyOzIxMDsxODA7MTQwMzg7MjswMDA7MTI4OzEyODM4OzI7MjE2OzE5MTsyMTYzODsyOzI1NTswOTk7MDcxMzg7MjswNjQ7MjI0OzIwODM4OzI7MjM4OzEzMDsyMzgzODsyOzI0NTsyMjI7MTc5Mzg7MjsyNTU7MjU1OzI1NTM4OzI7MjQ1OzI0NTsyNDUzODsyOzI1NTsyNTU7MDAwMzg7MjsxNTQ7MjA1OzA1MDQ4OzI7MjQwOzI0ODsyNTU0ODsyOzI1MDsyMzU7MjE1NDg7MjswMDA7MjU1OzI1NTQ4OzI7MTI3OzI1NTsyMTI0ODsyOzI0MDsyNTU7MjU1NDg7MjsyNDU7MjQ1OzIyMDQ4OzI7MjU1OzIyODsxOTY0ODsyOzAwMDswMDA7MDAwNDg7MjsyNTU7MjM1OzIwNTQ4OzI7MDAwOzAwMDsyNTU0ODsyOzEzODswNDM7MjI2NDg7MjsxNjU7MDQyOzA0MjQ4OzI7MjIyOzE4NDsxMzU0ODsyOzA5NTsxNTg7MTYwNDg7MjsxMjc7MjU1OzAwMDQ4OzI7MjEwOzEwNTswMzA0ODsyOzI1NTsxMjc7MDgwNDg7MjsxMDA7MTQ5OzIzNzQ4OzI7MjU1OzI0ODsyMjA0ODsyOzIyMDswMjA7MDYwNDg7MjswMDA7MDAwOzEzOTQ4OzI7MDAwOzEzOTsxMzk0ODsyOzE4NDsxMzQ7MDExNDg7MjsxNjk7MTY5OzE2OTQ4OzI7MDAwOzEwMDswMDA0ODsyOzE4OTsxODM7MTA3NDg7MjsxMzk7MDAwOzEzOTQ4OzI7MDg1OzEwNzswNDc0ODsyOzI1NTsxNDA7MDAwNDg7MjsxNTM7MDUwOzIwNDQ4OzI7MTM5OzAwMDswMDA0ODsyOzIzMzsxNTA7MTIyNDg7MjsxNDM7MTg4OzE0MzQ4OzI7MDcyOzA2MTsxMzk0ODsyOzA0NzswNzk7MDc5NDg7MjswMDA7MjA2OzIwOTQ4OzI7MTQ4OzAwMDsyMTE0ODsyOzI1NTswMjA7MTQ3NDg7MjswMDA7MTkxOzI1NTQ4OzI7MTA1OzEwNTsxMDU0ODsyOzAzMDsxNDQ7MjU1NDg7MjsxNzg7MDM0OzAzNDQ4OzI7MjU1OzI1MDsyNDA0ODsyOzAzNDsxMzk7MDM0NDg7MjsyNTU7MDAwOzI1NTQ4OzI7MjIwOzIyMDsyMjA0ODsyOzI0ODsyNDg7MjU1NDg7MjsyNTU7MjE1OzAwMDQ4OzI7MjE4OzE2NTswMzI0ODsyOzEyODsxMjg7MTI4NDg7MjswMDA7MTI4OzAwMDQ4OzI7MTczOzI1NTswNDc0ODsyOzI0MDsyNTU7MjQwNDg7MjsyNTU7MTA1OzE4MDQ4OzI7MjA1OzA5MjswOTI0ODsyOzA3NTswMDA7MTMwNDg7MjsyNTU7MjU1OzI0MDQ4OzI7MjQwOzIzMDsxNDA0ODsyOzIzMDsyMzA7MjUwNDg7MjsyNTU7MjQwOzI0NTQ4OzI7MTI0OzI1MjswMDA0ODsyOzI1NTsyNTA7MjA1NDg7MjsxNzM7MjE2OzIzMDQ4OzI7MjQwOzEyODsxMjg0ODsyOzIyNDsyNTU7MjU1NDg7MjsyNTA7MjUwOzIxMDQ4OzI7MjExOzIxMTsyMTE0ODsyOzE0NDsyMzg7MTQ0NDg7MjsyNTU7MTgyOzE5MzQ4OzI7MjU1OzE2MDsxMjI0ODsyOzAzMjsxNzg7MTcwNDg7MjsxMzU7MjA2OzI1MDQ4OzI7MTE5OzEzNjsxNTM0ODsyOzE3NjsxOTY7MjIyNDg7MjsyNTU7MjU1OzIyNDQ4OzI7MDAwOzI1NTswMDA0ODsyOzA1MDsyMDU7MDUwNDg7MjsyNTA7MjQwOzIzMDQ4OzI7MTI4OzAwMDswMDA0ODsyOzEwMjsyMDU7MTcwNDg7MjswMDA7MDAwOzIwNTQ4OzI7MTg2OzA4NTsyMTE0ODsyOzE0NzsxMTI7MjE5NDg7MjswNjA7MTc5OzExMzQ4OzI7MTIzOzEwNDsyMzg0ODsyOzAwMDsyNTA7MTU0NDg7MjswNzI7MjA5OzIwNDQ4OzI7MTk5OzAyMTsxMzM0ODsyOzAyNTswMjU7MTEyNDg7MjsyNDU7MjU1OzI1MDQ4OzI7MjU1OzIyODsyMjU0ODsyOzI1NTsyMjg7MTgxNDg7MjsyNTU7MjIyOzE3MzQ4OzI7MDAwOzAwMDsxMjg0ODsyOzI1MzsyNDU7MjMwNDg7MjsxMjg7MTI4OzAwMDQ4OzI7MTA3OzE0MjswMzU0ODsyOzI1NTsxNjU7MDAwNDg7MjsyNTU7MDY5OzAwMDQ4OzI7MjE4OzExMjsyMTQ0ODsyOzIzODsyMzI7MTcwNDg7MjsxNTI7MjUxOzE1MjQ4OzI7MTc1OzIzODsyMzg0ODsyOzIxOTsxMTI7MTQ3NDg7MjsyNTU7MjM5OzIxMzQ4OzI7MjU1OzIxODsxODU0ODsyOzIwNTsxMzM7MDYzNDg7MjsyNTU7MTkyOzIwMzQ4OzI7MjIxOzE2MDsyMjE0ODsyOzE3NjsyMjQ7MjMwNDg7MjsxMjg7MDAwOzEyODQ4OzI7MTAyOzA1MTsxNTM0ODsyOzI1NTswMDA7MDAwNDg7MjsxODg7MTQzOzE0MzQ4OzI7MDY1OzEwNTsyMjU0ODsyOzEzOTswNjk7MDE5NDg7MjsyNTA7MTI4OzExNDQ4OzI7MjQ0OzE2NDswOTY0ODsyOzA0NjsxMzk7MDg3NDg7MjsyNTU7MjQ1OzIzODQ4OzI7MTYwOzA4MjswNDU0ODsyOzE5MjsxOTI7MTkyNDg7MjsxMzU7MjA2OzIzNTQ4OzI7MTA2OzA5MDsyMDU0ODsyOzExMjsxMjg7MTQ0NDg7MjsyNTU7MjUwOzI1MDQ4OzI7MDAwOzI1NTsxMjc0ODsyOzA3MDsxMzA7MTgwNDg7MjsyMTA7MTgwOzE0MDQ4OzI7MDAwOzEyODsxMjg0ODsyOzIxNjsxOTE7MjE2NDg7MjsyNTU7MDk5OzA3MTQ4OzI7MDY0OzIyNDsyMDg0ODsyOzIzODsxMzA7MjM4NDg7MjsyNDU7MjIyOzE3OTQ4OzI7MjU1OzI1NTsyNTU0ODsyOzI0NTsyNDU7MjQ1NDg7MjsyNTU7MjU1OzAwMDQ4OzI7MTU0OzIwNTswNTAzODs1OzAzODs1OzEzODs1OzIzODs1OzMzODs1OzQzODs1OzUzODs1OzYzODs1OzczODs1OzgzODs1OzkzODs1OzEwMzg7NTsxMTM4OzU7MTIzODs1OzEzMzg7NTsxNDM4OzU7MTUzODs1OzE2Mzg7NTsxNzM4OzU7MTgzODs1OzE5Mzg7NTsyMDM4OzU7MjEzODs1OzIyMzg7NTsyMzM4OzU7MjQzODs1OzI1Mzg7NTsyNjM4OzU7MjczODs1OzI4Mzg7NTsyOTM4OzU7MzAzODs1OzMxMzg7NTszMjM4OzU7MzMzODs1OzM0Mzg7NTszNTM4OzU7MzYzODs1OzM3Mzg7NTszODM4OzU7MzkzODs1OzQwMzg7NTs0MTM4OzU7NDIzODs1OzQzMzg7NTs0NDM4OzU7NDUzODs1OzQ2Mzg7NTs0NzM4OzU7NDgzODs1OzQ5Mzg7NTs1MDM4OzU7NTEzODs1OzUyMzg7NTs1MzM4OzU7NTQzODs1OzU1Mzg7NTs1NjM4OzU7NTczODs1OzU4Mzg7NTs1OTM4OzU7NjAzODs1OzYxMzg7NTs2MjM4OzU7NjMzODs1OzY0Mzg7NTs2NTM4OzU7NjYzODs1OzY3Mzg7NTs2ODM4OzU7NjkzODs1OzcwMzg7NTs3MTM4OzU7NzIzODs1OzczMzg7NTs3NDM4OzU7NzUzODs1Ozc2Mzg7NTs3NzM4OzU7NzgzODs1Ozc5Mzg7NTs4MDM4OzU7ODEzODs1OzgyMzg7NTs4MzM4OzU7ODQzODs1Ozg1Mzg7NTs4NjM4OzU7ODczODs1Ozg4Mzg7NTs4OTM4OzU7OTAzODs1OzkxMzg7NTs5MjM4OzU7OTMzODs1Ozk0Mzg7NTs5NTM4OzU7OTYzODs1Ozk3Mzg7NTs5ODM4OzU7OTkzODs1OzEwMDM4OzU7MTAxMzg7NTsxMDIzODs1OzEwMzM4OzU7MTA0Mzg7NTsxMDUzODs1OzEwNjM4OzU7MTA3Mzg7NTsxMDgzODs1OzEwOTM4OzU7MTEwMzg7NTsxMTEzODs1OzExMjM4OzU7MTEzMzg7NTsxMTQzODs1OzExNTM4OzU7MTE2Mzg7NTsxMTczODs1OzExODM4OzU7MTE5Mzg7NTsxMjAzODs1OzEyMTM4OzU7MTIyMzg7NTsxMjMzODs1OzEyNDM4OzU7MTI1Mzg7NTsxMjYzODs1OzEyNzM4OzU7MTI4Mzg7NTsxMjkzODs1OzEzMDM4OzU7MTMxMzg7NTsxMzIzODs1OzEzMzM4OzU7MTM0Mzg7NTsxMzUzODs1OzEzNjM4OzU7MTM3Mzg7NTsxMzgzODs1OzEzOTM4OzU7MTQwMzg7NTsxNDEzODs1OzE0MjM4OzU7MTQzMzg7NTsxNDQzODs1OzE0NTM4OzU7MTQ2Mzg7NTsxNDczODs1OzE0ODM4OzU7MTQ5Mzg7NTsxNTAzODs1OzE1MTM4OzU7MTUyMzg7NTsxNTMzODs1OzE1NDM4OzU7MTU1Mzg7NTsxNTYzODs1OzE1NzM4OzU7MTU4Mzg7NTsxNTkzODs1OzE2MDM4OzU7MTYxMzg7NTsxNjIzODs1OzE2MzM4OzU7MTY0Mzg7NTsxNjUzODs1OzE2NjM4OzU7MTY3Mzg7NTsxNjgzODs1OzE2OTM4OzU7MTcwMzg7NTsxNzEzODs1OzE3MjM4OzU7MTczMzg7NTsxNzQzODs1OzE3NTM4OzU7MTc2Mzg7NTsxNzczODs1OzE3ODM4OzU7MTc5Mzg7NTsxODAzODs1OzE4MTM4OzU7MTgyMzg7NTsxODMzODs1OzE4NDM4OzU7MTg1Mzg7NTsxODYzODs1OzE4NzM4OzU7MTg4Mzg7NTsxODkzODs1OzE5MDM4OzU7MTkxMzg7NTsxOTIzODs1OzE5MzM4OzU7MTk0Mzg7NTsxOTUzODs1OzE5NjM4OzU7MTk3Mzg7NTsxOTgzODs1OzE5OTM4OzU7MjAwMzg7NTsyMDEzODs1OzIwMjM4OzU7MjAzMzg7NTsyMDQzODs1OzIwNTM4OzU7MjA2Mzg7NTsyMDczODs1OzIwODM4OzU7MjA5Mzg7NTsyMTAzODs1OzIxMTM4OzU7MjEyMzg7NTsyMTMzODs1OzIxNDM4OzU7MjE1Mzg7NTsyMTYzODs1OzIxNzM4OzU7MjE4Mzg7NTsyMTkzODs1OzIyMDM4OzU7MjIxMzg7NTsyMjIzODs1OzIyMzM4OzU7MjI0Mzg7NTsyMjUzODs1OzIyNjM4OzU7MjI3Mzg7NTsyMjgzODs1OzIyOTM4OzU7MjMwMzg7NTsyMzEzODs1OzIzMjM4OzU7MjMzMzg7NTsyMzQzODs1OzIzNTM4OzU7MjM2Mzg7NTsyMzczODs1OzIzODM4OzU7MjM5Mzg7NTsyNDAzODs1OzI0MTM4OzU7MjQyMzg7NTsyNDMzODs1OzI0NDM4OzU7MjQ1Mzg7NTsyNDYzODs1OzI0NzM4OzU7MjQ4Mzg7NTsyNDkzODs1OzI1MDM4OzU7MjUxMzg7NTsyNTIzODs1OzI1MzM4OzU7MjU0Mzg7NTsyNTU0ODs1OzA0ODs1OzE0ODs1OzI0ODs1OzM0ODs1OzQ0ODs1OzU0ODs1OzY0ODs1Ozc0ODs1Ozg0ODs1Ozk0ODs1OzEwNDg7NTsxMTQ4OzU7MTI0ODs1OzEzNDg7NTsxNDQ4OzU7MTU0ODs1OzE2NDg7NTsxNzQ4OzU7MTg0ODs1OzE5NDg7NTsyMDQ4OzU7MjE0ODs1OzIyNDg7NTsyMzQ4OzU7MjQ0ODs1OzI1NDg7NTsyNjQ4OzU7Mjc0ODs1OzI4NDg7NTsyOTQ4OzU7MzA0ODs1OzMxNDg7NTszMjQ4OzU7MzM0ODs1OzM0NDg7NTszNTQ4OzU7MzY0ODs1OzM3NDg7NTszODQ4OzU7Mzk0ODs1OzQwNDg7NTs0MTQ4OzU7NDI0ODs1OzQzNDg7NTs0NDQ4OzU7NDU0ODs1OzQ2NDg7NTs0NzQ4OzU7NDg0ODs1OzQ5NDg7NTs1MDQ4OzU7NTE0ODs1OzUyNDg7NTs1MzQ4OzU7NTQ0ODs1OzU1NDg7NTs1NjQ4OzU7NTc0ODs1OzU4NDg7NTs1OTQ4OzU7NjA0ODs1OzYxNDg7NTs2MjQ4OzU7NjM0ODs1OzY0NDg7NTs2NTQ4OzU7NjY0ODs1OzY3NDg7NTs2ODQ4OzU7Njk0ODs1OzcwNDg7NTs3MTQ4OzU7NzI0ODs1OzczNDg7NTs3NDQ4OzU7NzU0ODs1Ozc2NDg7NTs3NzQ4OzU7Nzg0ODs1Ozc5NDg7NTs4MDQ4OzU7ODE0ODs1OzgyNDg7NTs4MzQ4OzU7ODQ0ODs1Ozg1NDg7NTs4NjQ4OzU7ODc0ODs1Ozg4NDg7NTs4OTQ4OzU7OTA0ODs1OzkxNDg7NTs5MjQ4OzU7OTM0ODs1Ozk0NDg7NTs5NTQ4OzU7OTY0ODs1Ozk3NDg7NTs5ODQ4OzU7OTk0ODs1OzEwMDQ4OzU7MTAxNDg7NTsxMDI0ODs1OzEwMzQ4OzU7MTA0NDg7NTsxMDU0ODs1OzEwNjQ4OzU7MTA3NDg7NTsxMDg0ODs1OzEwOTQ4OzU7MTEwNDg7NTsxMTE0ODs1OzExMjQ4OzU7MTEzNDg7NTsxMTQ0ODs1OzExNTQ4OzU7MTE2NDg7NTsxMTc0ODs1OzExODQ4OzU7MTE5NDg7NTsxMjA0ODs1OzEyMTQ4OzU7MTIyNDg7NTsxMjM0ODs1OzEyNDQ4OzU7MTI1NDg7NTsxMjY0ODs1OzEyNzQ4OzU7MTI4NDg7NTsxMjk0ODs1OzEzMDQ4OzU7MTMxNDg7NTsxMzI0ODs1OzEzMzQ4OzU7MTM0NDg7NTsxMzU0ODs1OzEzNjQ4OzU7MTM3NDg7NTsxMzg0ODs1OzEzOTQ4OzU7MTQwNDg7NTsxNDE0ODs1OzE0MjQ4OzU7MTQzNDg7NTsxNDQ0ODs1OzE0NTQ4OzU7MTQ2NDg7NTsxNDc0ODs1OzE0ODQ4OzU7MTQ5NDg7NTsxNTA0ODs1OzE1MTQ4OzU7MTUyNDg7NTsxNTM0ODs1OzE1NDQ4OzU7MTU1NDg7NTsxNTY0ODs1OzE1NzQ4OzU7MTU4NDg7NTsxNTk0ODs1OzE2MDQ4OzU7MTYxNDg7NTsxNjI0ODs1OzE2MzQ4OzU7MTY0NDg7NTsxNjU0ODs1OzE2NjQ4OzU7MTY3NDg7NTsxNjg0ODs1OzE2OTQ4OzU7MTcwNDg7NTsxNzE0ODs1OzE3MjQ4OzU7MTczNDg7NTsxNzQ0ODs1OzE3NTQ4OzU7MTc2NDg7NTsxNzc0ODs1OzE3ODQ4OzU7MTc5NDg7NTsxODA0ODs1OzE4MTQ4OzU7MTgyNDg7NTsxODM0ODs1OzE4NDQ4OzU7MTg1NDg7NTsxODY0ODs1OzE4NzQ4OzU7MTg4NDg7NTsxODk0ODs1OzE5MDQ4OzU7MTkxNDg7NTsxOTI0ODs1OzE5MzQ4OzU7MTk0NDg7NTsxOTU0ODs1OzE5NjQ4OzU7MTk3NDg7NTsxOTg0ODs1OzE5OTQ4OzU7MjAwNDg7NTsyMDE0ODs1OzIwMjQ4OzU7MjAzNDg7NTsyMDQ0ODs1OzIwNTQ4OzU7MjA2NDg7NTsyMDc0ODs1OzIwODQ4OzU7MjA5NDg7NTsyMTA0ODs1OzIxMTQ4OzU7MjEyNDg7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b21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvYWhvLWNvcmFzaWNrLTEuMS4zL3NyYy91dGlsL3NlYXJjaC5ycwAA2M8QAGoAAABOAQAACQAAAGludmFsaWQgbWF0Y2ggc3BhbgAAVNAQABIAAADYzxAAagAAAFsDAAAJAAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvYWhvLWNvcmFzaWNrLTEuMS4zL3NyYy9wYWNrZWQvYXBpLnJzAAAAgNAQAGkAAAAZAgAAHAAAAIDQEABpAAAAHwIAADEAAADnAwAABAAAAAQAAADoAwAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmVnZXgtYXV0b21hdGEtMC40Ljcvc3JjL3V0aWwvcHJlZmlsdGVyL2J5dGVzZXQucnMAHNEQAHcAAAAjAAAAEQAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3JlZ2V4LWF1dG9tYXRhLTAuNC43L3NyYy91dGlsL3ByZWZpbHRlci9tZW1jaHIucnMAAKTREAB2AAAAJwAAAC0AAACk0RAAdgAAAFUAAAAWAAAApNEQAHYAAABWAAAAFgAAAKTREAB2AAAAZAAAADYAAACk0RAAdgAAAJIAAAAWAAAApNEQAHYAAACTAAAAFgAAAKTREAB2AAAAlAAAABYAAACk0RAAdgAAAKIAAAA+AAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmVnZXgtYXV0b21hdGEtMC40Ljcvc3JjL3V0aWwvcHJlZmlsdGVyL21lbW1lbS5ycwAAnNIQAHYAAAArAAAAJwAAAJzSEAB2AAAAOwAAABgAAABhaG8tY29yYXNpY2sgREZBIHNob3VsZCBuZXZlciBmYWlsL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmVnZXgtYXV0b21hdGEtMC40Ljcvc3JjL3V0aWwvcHJlZmlsdGVyL3RlZGR5LnJzAFbTEAB1AAAAcQAAABIAQeSnwwALsgwBAAAAIgMAAAAAAAAIAAAABAAAAOkDAAAAAAAABAAAAAQAAADqAwAAAAAAAAEAAAABAAAAFAAAAAAAAAAEAAAABAAAABUAAABtYXhpbXVtX2xlbmxvb2tfc2V0bG9va19zZXRfcHJlZml4bG9va19zZXRfc3VmZml4bG9va19zZXRfcHJlZml4X2FueWxvb2tfc2V0X3N1ZmZpeF9hbnl1dGY4ZXhwbGljaXRfY2FwdHVyZXNfbGVuc3RhdGljX2V4cGxpY2l0X2NhcHR1cmVzX2xlbmxpdGVyYWxhbHRlcm5hdGlvbl9saXRlcmFsAAAcAREACwAAACzUEAALAAAAN9QQAAgAAAA/1BAADwAAAE7UEAAPAAAAXdQQABMAAABw1BAAEwAAAIPUEAAEAAAAh9QQABUAAACc1BAAHAAAALjUEAAHAAAAv9QQABMAAABQcm9wZXJ0aWVzSUludmFsaWRJbnB1dEFuY2hvcmVkSW52YWxpZElucHV0VW5hbmNob3JlZFVuc3VwcG9ydGVkU3RyZWFtVW5zdXBwb3J0ZWRPdmVybGFwcGluZ1Vuc3VwcG9ydGVkRW1wdHllcnJvciBidWlsZGluZyBORkEAAKDVEAASAAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZTogZm91bmQgaW1wb3NzaWJsZSBlcnJvciBpbiBtZXRhIGVuZ2luZTogAAAAvNUQAFEAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yZWdleC1hdXRvbWF0YS0wLjQuNy9zcmMvbWV0YS9lcnJvci5ycwAY1hAAawAAAO0AAAARAAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmVnZXgtYXV0b21hdGEtMC40Ljcv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ZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmVnZXgtYXV0b21hdGEtMC40Ljcvc3JjL3V0aWwvcHJpbWl0aXZlcy5yc9jkEABwAAAA8QIAAAEAAABQYXR0ZXJuSURFcnJvclN0YXRlSUQAAADY5BAAcAAAAPICAAABAAAAU3RhdGVJREVycm9yAAAAAAQAAAAEAAAA8gMAAAAAAAAIAAAABAAAAPMDAAAAAAAABAAAAAQAAAD0AwAAUHJvcGVydGllcykgYXJlIG5vdCBzdXBwb3J0ZWQgb3IgZW5hYmxlZPUDAAAIAAAABAAAAPYDAAD3AwAA9wMAAGFzc2VydGlvbiBmYWlsZWQ6IG0uaXNfZW1wdHkoKQAAaRgYAGoAAAClAgAACQAAAGkYGABqAAAApgIAAEAAAABQYXR0ZXJuU2V0IHNob3VsZCBoYXZlIHN1ZmZpY2llbnQgY2FwYWNpdHkAAHwZGABsAAAAywQAAA4AAABxdWl0IHNlYXJjaCBhZnRlciBvYnNlcnZpbmcgYnl0ZSAgYXQgb2Zmc2V0IHjmEAAhAAAAmeYQAAsAAABnYXZlIHVwIHNlYXJjaGluZyBhdCBvZmZzZXQgtOYQABwAAABoYXlzdGFjayBvZiBsZW5ndGggIGlzIHRvbyBsb25nANjmEAATAAAA6+YQAAwAAAB1bmFuY2hvcmVkIHNlYXJjaGVzIGFyZSBub3Qgc3VwcG9ydGVkIG9yIGVuYWJsZWQI5xAAMAAAAGFuY2hvcmVkIHNlYXJjaGVzIGFyZSBub3Qgc3VwcG9ydGVkIG9yIGVuYWJsZWQAAEDnEAAuAAAAYW5jaG9yZWQgc2VhcmNoZXMgZm9yIGEgc3BlY2lmaWMgcGF0dGVybiAoAAB45xAAKgAAAMblEAAeAAAAUGF0dGVyblNldEluc2VydEVycm9yY2FwYWNpdHlOb1llc1BhdHRlcm5BbGwAAAAACAAAAAgAAADXAgAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmVnZXgtYXV0b21hdGEtMC40Ljcvc3JjL2RmYS9yZW1hcHBlci5ycwAAAPDnEABtAAAAbgAAABIAAADw5xAAbQAAAIgAAAAkAAAA8OcQ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1QsBAAAA+AMAAFJlZ2V4SW5mb0lwcm9wc191bmlvbgAAAAAAAAABAAAAAQAAAM4AAAAAAAAAAQAAAAEAAADvAwAA7gMAABAAAAAEAAAAtgAAAAAAAAABAAAAAQAAAPkDAAAAAAAACAAAAAQAAADxAwAAAAAAAAgAAAAEAAAA6QMAAHV0ZjhfZW1wdHlhdXRvcHJld2hpY2hfY2FwdHVyZXNuZmFfc2l6ZV9saW1pdG9uZXBhc3Nfc2l6ZV9saW1pdGh5YnJpZF9jYWNoZV9jYXBhY2l0eWh5YnJpZGRmYWRmYV9zaXplX2xpbWl0ZGZhX3N0YXRlX2xpbWl0b25lcGFzc2JhY2t0cmFja2xpbmVfdGVybWluYXRvcgAAABQPEQAKAAAAEPAQAAoAAAAa8BAABwAAAB4PEQADAAAAIfAQAA4AAAAv8BAADgAAAD3wEAASAAAAT/AQABUAAABk8BAABgAAAGrwEAADAAAAbfAQAA4AAAB78BAADwAAAIrwEAAHAAAAkfAQAAkAAADD+xAADAAAAJrwEAAPAAAAR3JvdXBJbmZvSW5uZXJzbG90X3Jhbmdlc25hbWVfdG9faW5kZXhpbmRleF90b19uYW1lbWVtb3J5X2V4dHJhU3RhbmRhcmRMZWZ0bW9zdEZpcnN0TGVmdG1vc3RMb25nZXN0AIj1EABrAAAAxwQAAB4AAACI9RAAawAAAOkFAAAeAAAAbm8gcXVpdCBpbiBzdGFydCB3aXRob3V0IGxvb2stYmVoaW5kiPUQAGsAAABFBgAAFgAAAGFzc2VydGlvbiBmYWlsZWQ6IGlkLmlzX21hdGNoKCkAiPUQAGsAAAC1BgAACQAAAG5vIGluLXByb2dyZXNzIHNlYXJjaCB0byB1cGRhdGUAiPUQAGsAAAC3BwAAJAAAAG5vIGluLXByb2dyZXNzIHNlYXJjaCB0byBmaW5pc2gAiPUQAGsAAADDBwAAIgAAAIj1EABrAAAAjgoAAB0AAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yZWdleC1hdXRvbWF0YS0wLjQuNy9zcmMvaHlicmlkL3NlYXJjaC5ycwAAhPIQAG4AAABZAAAAKQAAAGludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGU6IHNpZCBiZWluZyB1bmtub3duIGlzIGEgYnVnBPMQAEQAAACE8hAAbgAAAB0BAAARAAAAhPIQAG4AAAAaAQAALQAAAITyEABuAAAAVwEAACkAAACE8hAAbgAAAK0BAAARAAAAhPIQAG4AAACqAQAALQAAAITyEABuAAAA+wEAACUAAACE8hAAbgAAACICAAARAAAAhPIQAG4AAAAdAgAAFQAAAITyEABuAAAA4gIAABQAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yZWdleC1hdXRvbWF0YS0wLjQuNy9zcmMvbWV0YS9saW1pdGVkLnJzAAAA4PMQAG0AAACOAAAAJQAAAODzEABtAAAA6AAAABQAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yZWdleC1hdXRvbWF0YS0wLjQuNy9zcmMvbWV0YS9zdG9wYXQucnNw9BAAbAAAAG4AAAAlAAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmVnZXgtYXV0b21hdGEtMC40Ljcvc3JjL3V0aWwvZW1wdHkucnMA7PQQAGsAAAD5AAAAOgBB8OrDAAvlCQEAAAD6AwAAAAAAAAgAAAAIAAAA+wMAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3JlZ2V4LWF1dG9tYXRhLTAuNC43L3NyYy9oeWJyaWQvZGZhLnJzAIj1EABrAAAAUwgAAB8AAACI9RAAawAAABYJAAA6AAAAYWRkaW5nIG9uZSBzdGF0ZSBhZnRlciBjYWNoZSBjbGVhciBtdXN0IHdvcmuI9RAAawAAALwJAAASAAAAY2Fubm90IHNhdmUgc2VudGluZWwgc3RhdGUAAFD2EAAaAAAAiPUQAGsAAACpCQAADQAAAIj1EABrAAAA5gkAAEAAAACI9RAAawAAAOcJAABHAAAAiPUQAGsAAADoCQAARwAAAIj1EABrAAAA6QkAAAkAAACI9RAAawAAAOoJAAAJAAAAiPUQAGsAAADrCQAACQAAAHN0YXRlIHNhdmVyIGRvZXMgbm90IGhhdmUgc2F2ZWQgc3RhdGUgSUSI9RAAawAAABQKAAAOAAAAaW52YWxpZCAnZnJvbScgaWQ6IAAc9xAAEwAAAIj1EABrAAAAKQoAAAkAAABpbnZhbGlkICd0bycgaWQ6IAAAAEj3EAARAAAAiPUQAGsAAAAqCgAACQAAAIj1EABrAAAALQoAABkAAABhc3NlcnRpb24gZmFpbGVkOiBzZWxmLmFzX3JlZigpLmlzX3ZhbGlkKGlkKYj1EABrAAAAOwoAAAkAAABhdHRlbXB0ZWQgdG8gc2VhcmNoIGZvciBhIHNwZWNpZmljIHBhdHRlcm4gd2l0aG91dCBlbmFibGluZyBzdGFydHNfZm9yX2VhY2hfcGF0dGVybgDA9xAAUwAAAIj1EABrAAAAQQoAABEAAACI9RAAawAAAEoKAAAaAAAAiPUQAGsAAACWCgAAGwAAAIj1EABrAAAAsgoAADMAAACI9RAAawAAALsKAAAzAAAAY2Fubm90IGJ1aWxkIGxhenkgREZBcyBmb3IgcmVnZXhlcyB3aXRoIFVuaWNvZGUgd29yZCBib3VuZGFyaWVzOyBzd2l0Y2ggdG8gQVNDSUkgd29yZCBib3VuZGFyaWVzLCBvciBoZXVyaXN0aWNhbGx5IGVuYWJsZSBVbmljb2RlIHdvcmQgYm91bmRhcmllcyBvciB1c2UgYSBkaWZmZXJlbnQgcmVnZXggZW5naW5lL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmVnZXgtYXV0b21hdGEtMC40Ljcvc3JjL21ldGEvbGl0ZXJhbC5ycwAAHfkQAG0AAAAeAAAADQAAAGludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGU6IGV4cGVjdGVkIGxpdGVyYWwsIGdvdCCc+RAAQAAAAB35EABtAAAAOAAAAB4AAABpbnRlcm5hbCBlcnJvcjogZW50ZXJlZCB1bnJlYWNoYWJsZSBjb2RlOiBleHBlY3RlZCBsaXRlcmFsIG9yIGNvbmNhdCwgZ290IAAA9PkQAEoAAAAd+RAAbQAAADwAAAASAEH49MMAC7Uc6wMAAFgAAAAIAAAA/AMAANsDAAAEAAAABAAAAIMAAAAAAAAABAAAAAQAAAAVAAAAAAAAAAABAAABAAAA/QMAAAAAAAAAAQAAAQAAAL8AAAAAAAAAIAAAAAgAAADtAwAAc3RyaWRlMnN0YXJ0X21hcGNsYXNzZXNxdWl0c2V0Y2FjaGVfY2FwYWNpdHknDxEABgAAAC0PEQADAAAA2PoQAAcAAADf+hAACQAAAOj6EAAHAAAA7/oQAAcAAAD2+hAADgAAAAAAAAABAAAAAQAAAM4AAADuAwAAEAAAAAQAAAC2AAAAAAAAAAEAAAABAAAA7wMAAAAAAAAoAAAACAAAAPADAAAAAAAACAAAAAQAAADpAwAAAAAAAAgAAAAEAAAA8QMAAAAAAAAEAAAABAAAAP4DAABzdGFydHNfZm9yX2VhY2hfcGF0dGVybmJ5dGVfY2xhc3Nlc3VuaWNvZGVfd29yZF9ib3VuZGFyeXNwZWNpYWxpemVfc3RhcnRfc3RhdGVzc2tpcF9jYWNoZV9jYXBhY2l0eV9jaGVja21pbmltdW1fY2FjaGVfY2xlYXJfY291bnRtaW5pbXVtX2J5dGVzX3Blcl9zdGF0ZRQPEQAKAAAAHg8RAAMAAACs+xAAFwAAAMP7EAAMAAAAz/sQABUAAADv+hAABwAAAOT7EAAXAAAA9voQAA4AAAD7+xAAGQAAABT8EAAZAAAALfwQABcAAABDYWNoZUVycm9yAAAAAAAABAAAAAQAAABAAAAATGF6eVN0YXRlSURMYXp5U3RhdGVJREVycm9yYXR0ZW1wdGVkYml0c3JlZ2V4OiB0aHJlYWQgSUQgYWxsb2NhdGlvbiBzcGFjZSBleGhhdXN0ZWQA4PwQACsAAABgKxgAagAAAF4BAAARAAAAQWhvQ29yYXNpY2s6OnRyeV9maW5kIGlzIG5vdCBleHBlY3RlZCB0byBmYWlsL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvYWhvLWNvcmFzaWNrLTEuMS4zL3NyYy9haG9jb3Jhc2ljay5ycwBR/RAAagAAAJYBAAAOAAAAEAMAAGQBAAAEAAAAEQMAABADAABkAQAABAAAABADAABkAQAABAAAABIDAAATAwAAFAMAAPACAAAVAwAAFgMAABcDAAAYAwAAGQMAABoDAAAbAwAAHAMAAB0DAAAeAwAAHwMAACADAAAhAwAAEQMAAMz9EADc/RAA3P0QANz9EADc/RAA/gIAAEgBAAAEAAAA/wIAAP4CAABIAQAABAAAAP4CAABIAQAABAAAAAADAAABAwAAAgMAAPACAAADAwAABAMAAAUDAAAGAwAA/wMAAAgDAAAJAwAACgMAAAsDAAAMAwAADQMAAA4DAAAPAwAA/wIAAFD+EABg/hAAYP4QAGD+EABg/hAA7AIAAFwBAAAEAAAAlQAAAOwCAABcAQAABAAAAOwCAABcAQAABAAAAO0CAADuAgAA7wIAAPACAADxAgAA8gIAAPMCAAD0AgAA9QIAAPYCAAD3AgAA+AIAAPkCAAD6AgAA+wIAAPwCAAD9AgAAlQAAANT+EADk/hAA5P4QAOT+EADk/hAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvYWhvLWNvcmFzaWNrLTEuMS4zL3NyYy9uZmEvY29udGlndW91cy5ycwAAAFj/EABtAAAAcQIAABYAAABY/xAAbQAAAHMCAAANAAAAWP8QAG0AAAB1AgAADQAAAFj/EABtAAAAKQIAAAkAAABY/xAAbQAAAE8CAAANAAAAWP8QAG0AAABKAgAADQAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2Foby1jb3Jhc2ljay0xLjEuMy9zcmMvbmZhL25vbmNvbnRpZ3VvdXMucnMoABEAcAAAACIBAAAgAAAAKAARAHAAAAAyAQAAIQAAACgAEQBwAAAAVAEAAB0AAAAoABEAcAAAAGYBAAAXAAAA5wMAAAQAAAAEAAAA6AMAAAAAAAAEAAAABAAAACYAAABTZWFyY2hlcnBhdHRlcm5zcmFiaW5rYXJwc2VhcmNoX2tpbmRtaW5pbXVtX2xlblRlZGR5UmFiaW5LYXJwL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvYWhvLWNvcmFzaWNrLTEuMS4zL3NyYy9kZmEucnMANQERAGIAAADhAAAAEwAAADUBEQBiAAAABQEAABoAAAA1AREAYgAAAB0BAAAVAAAANQERAGIAAAAdAQAAHQAAADUBEQBiAAAAFgEAABUAAABidWNrZXRzaGFzaF9sZW5oYXNoXzJwb3dY/xAAbQAAAMUAAAAcAAAAWP8QAG0AAADdAAAAGQAAAFj/EABtAAAA3QAAACIAAABY/xAAbQAAAOoAAAAtAAAAWP8QAG0AAADnAAAALQAAAFj/EABtAAAA5AAAAC0AAABY/xAAbQAAAOEAAAAtAAAAWP8QAG0AAADTAAAAIQAAAFj/EABtAAAA1AAAACkAAABY/xAAbQAAAM4AAAApAAAAWP8QAG0AAAD1AAAAIAAAAFj/EABtAAAAGgEAABoAAABY/xAAbQAAADABAAAXAAAAWP8QAG0AAAApAQAANwAAACgAEQBwAAAAcAIAAB4AAAAoABEAcAAAAJkCAAAaAAAAKAARAHAAAACtAgAAKwAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3JlZ2V4LWF1dG9tYXRhLTAuNC43L3NyYy9uZmEvdGhvbXBzb24vbGl0ZXJhbF90cmllLnJzAAAQAxEAegAAAHQAAAAUAAAAEAMRAHoAAACBAAAAIQAAABADEQB6AAAAjAAAACQAAAAQAxEAegAAAI4AAAAcAAAAEAMRAHoAAACsAAAALAAAABADEQB6AAAArwAAAB8AAAAQAxEAegAAAMAAAAAwAAAAEAMRAHoAAADnAAAALgAAABADEQB6AAAASQEAACMAAAAQAxEAegAAAJgBAAAaAAAAEAMRAHoAAADHAQAAKgAAAAAAAAABAAAAAQAAAAAAAAABAAAAAQAAAJkAAAA8BBEAPAQRADwEEQA8BBEAAAQAAAEEAAACBAAAAwQAAAAAAAACAAAAAQAAAAAAAAACAAAAAQAAAJgAAAB4BBEAeAQRAHgEEQB4BBEABAQAAAUEAAACBAAAAwQAAAAAAAADAAAAAQAAAAAAAAADAAAAAQAAAJcAAAC0BBEAtAQRALQEEQC0BBEABgQAAAcEAAACBAAAAwQAANwCAABIAAAACAAAANwCAABIAAAACAAAAJYAAADwBBEA8AQRAPAEEQDwBBEACAQAAAkEAAAKBAAAbgMAAAsEAACQAQAABAAAAAsEAACQAQAABAAAAJMAAAAsBREALAURACwFEQAsBREADAQAAA0EAAAOBAAADwQAAAAAAAAAAQAAAQAAAAAAAAAAAQAAAQAAAJAAAABoBREAaAURAGgFEQBoBREAEAQAABEEAAACBAAAEgQAABMEAAAMAAAABAAAABMEAAAMAAAABAAAAIsAAACkBREApAURAKQFEQCkBREAFAQAABUEAAAWBAAApQMAAEFob0NvcmFzaWNrYWNCeXRlU2V0AAAAAAQAAAAEAAAAFwAAAE1lbWNock1lbWNocjJNZW1jaHIzTWVtbWVtZmluZGVyc2VhcmNoZXJhbmNob3JlZF9hY1ByZWZpbHRlcmlzX2Zhc3RtYXhfbmVlZGxlX2xlbgAAAGUDAAAEAAAABAAAAGYDAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yZWdleC1hdXRvbWF0YS0wLjQuNy9zcmMvbWV0YS93cmFwcGVycy5ycwAAaAYRAG4AAACJAAAAGQAAAGgGEQBuAAAARQEAAB0AAABoBhEAbgAAAPsBAAAdAAAAaAYRAG4AAAAfAwAAHQAAAGgGEQBuAAAALAQAAA0AAABoBhEAbgAAALQEAAAdAAAAaAYRAG4AAABEBQAADQAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3JlZ2V4LWF1dG9tYXRhLTAuNC43L3NyYy9uZmEvdGhvbXBzb24vbWFwLnJzAAAASAcRAHEAAACWAAAACQAAAEgHEQBxAAAAnwAAAB4AAABIBxEAcQAAALYAAAARAAAASAcRAHEAAAAIAQAACQAAAEgHEQBxAAAAFAEAAB4AAABIBxEAcQAAACUBAAARAAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmVnZXgtYXV0b21hdGEtMC40Ljcvc3JjL25mYS90aG9tcHNvbi9uZmEucnMAAAAcCBEAcQAAAHkCAAAXAAAAHAgRAHEAAACDBwAAFABBvJHEAAu9CAIAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yZWdleC1hdXRvbWF0YS0wLjQuNy9zcmMvbmZhL3Rob21wc29uL3Bpa2V2bS5yc8AIEQB0AAAAhQQAAAoAAABieXRlIHNsaWNlIGxlbmd0aHMgbXVzdCBiZSBsZXNzIHRoYW4gdXNpemUgTUFYAABECREALgAAAMAIEQB0AAAA2AQAAAkAAADACBEAdAAAAIcFAAAJAAAAwAgRAHQAAADMBQAAEwAAAMAIEQB0AAAAXAYAAB8AAADACBEAdAAAAMwGAAAvAAAAwAgRAHQAAADPBgAARgAAAMAIEQB0AAAAzwYAACMAAADACBEAdAAAAJwGAAA0AAAAwAgRAHQAAAAwCAAALgAAAHNsb3QgdGFibGUgbGVuZ3RoIGRvZXNuJ3Qgb3ZlcmZsb3cAAMAIEQB0AAAAPQgAAA4AAADACBEAdAAAAGUIAAAYAAAAwAgRAHQAAABuCAAAGAAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3JlZ2V4LWF1dG9tYXRhLTAuNC43L3NyYy91dGlsL2xvb2sucnMAAGAKEQBqAAAApAMAACgAAABgChEAagAAALADAAAmAAAAYAoRAGoAAAC9AwAAEAAAAGAKEQBqAAAAzAMAABAAAABgChEAagAAANoDAAA4AAAAYAoRAGoAAAA3BAAAMQAAAGAKEQBqAAAAPAQAACwAAABgChEAagAAAEwEAAA4AAAAYAoRAGoAAABbBAAAOAAAAGAKEQBqAAAAngQAADgAAABgChEAagAAAMgEAAAxAAAAYAoRAGoAAADnBAAALAAAAGAKEQBqAAAAMgYAACgAAABgChEAagAAAEEGAAAtAAAA////f3NwYXJzZSBzZXQgY2FwYWNpdHkgY2Fubm90IGV4Y2NlZCAAALALEQAiAAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmVnZXgtYXV0b21hdGEtMC40Ljcvc3JjL3V0aWwvc3BhcnNlX3NldC5yc9wLEQBwAAAAggAAAAkAAAAgZXhjZWVkcyBjYXBhY2l0eSBvZiAgd2hlbiBpbnNlcnRpbmcgAAAAAQAAAAAAAABcDBEAFQAAAHEMEQAQAAAA3AsRAHAAAACyAAAACQAAANwLEQBwAAAAvAAAABMAAADcCxEAcAAAAL0AAAAUAAAA3AsRAHAAAADFAAAAIAAAANwLEQBwAAAAxgAAADQAAADcCxEAcAAAANEAAAAhAEGsmsQAC0sBAQEBAQEBAQEBAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQfybxAALlQovaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yZWdleC1hdXRvbWF0YS0wLjQuNy9zcmMvdXRpbC91dGY4LnJzAAD8DREAagAAAEMAAAArAAAA/A0RAGoAAABVAAAAOAAAAPwNEQBqAAAAWAAAABgAAABQaWtlVk1FbmdpbmVCb3VuZGVkQmFja3RyYWNrZXJFbmdpbmVPbmVQYXNzRW5naW5lSHlicmlkRW5naW5lREZBREZBRW5naW5lUmV2ZXJzZUh5YnJpZEVuZ2luZVJldmVyc2VERkFSZXZlcnNlREZBRW5naW5lQ29uZmlnbWF0Y2hfa2luZHByZVBpa2VWTWNvbmZpZ25mYU1hdGNoRXJyb3IAAAAAAAABAAAAAQAAABcEAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yZWdleC1zeW50YXgtMC44LjQvc3JjL2FzdC9wYXJzZS5yc0wPEQBoAAAAgQEAABcAAABMDxEAaAAAAIIBAAAaAAAATA8RAGgAAACDAQAAGgAAAEwPEQBoAAAAxQEAADUAAABMDxEAaAAA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IGZhaWxlZDogc2VsZi5jaGFyKCkgPT0gJ3AnIHx8IHNlbGYuY2hhcigpID09ICdQJwAATA8RAGgAAAB4CAAACQAAAGV4cGVjdGVkIHZhbGlkIFBlcmwgY2xhc3MgYnV0IGdvdCAnAFgXEQAjAAAAaWgWAAEAAABMDxEAaAAAANEIAAASAAAATA8RAGgAAAAACQAAMAAAACoDAAAMAAAABAAAAE4DAAAYBAAAZAMAQcyvxAALtgYBAAAALgMAAHQwGABMAAAApwoAAA0AAABhc3NlcnRpb24gZmFpbGVkOiBhZGRfbG93ZXIgfHwgYWRkX3VwcGVyKd4RAGsAAADQAQAACQAAAFVuaWNvZGUgbm90IGFsbG93ZWQgaGVyZXBhdHRlcm4gY2FuIG1hdGNoIGludmFsaWQgVVRGLThpbnZhbGlkIGxpbmUgdGVybWluYXRvciwgbXVzdCBiZSBBU0NJSVVuaWNvZGUgcHJvcGVydHkgbm90IGZvdW5kVW5pY29kZSBwcm9wZXJ0eSB2YWx1ZSBub3QgZm91bmRVbmljb2RlLWF3YXJlIFBlcmwgY2xhc3Mgbm90IGZvdW5kIChtYWtlIHN1cmUgdGhlIHVuaWNvZGUtcGVybCBmZWF0dXJlIGlzIGVuYWJsZWQpVW5pY29kZS1hd2FyZSBjYXNlIGluc2Vuc2l0aXZpdHkgbWF0Y2hpbmcgaXMgbm90IGF2YWlsYWJsZSAobWFrZSBzdXJlIHRoZSB1bmljb2RlLWNhc2UgZmVhdHVyZSBpcyBlbmFibGVkKQCEoxUAZgAAAPIBAAAeAAAAhKMVAGYAAABPAgAAHgAAAENsYXNzVW5pY29kZVJhbmdlc3RhcnRlbmQAAACEoxUAZgAAADoGAAA2AAAAQ2xhc3NCeXRlc1Jhbmdl4oiFAADLGREAAwAAAISjFQBmAAAA9wsAABIAAACEoxUAZgAAAOgLAAAZAAAATG9va0NhcHR1cmVTdGFydEVuZFN0YXJ0TEZFbmRMRlN0YXJ0Q1JMRkVuZENSTEZXb3JkQXNjaWlXb3JkQXNjaWlOZWdhdGVXb3JkVW5pY29kZVdvcmRVbmljb2RlTmVnYXRlV29yZFN0YXJ0QXNjaWlXb3JkRW5kQXNjaWlXb3JkU3RhcnRVbmljb2RlV29yZEVuZFVuaWNvZGVXb3JkU3RhcnRIYWxmQXNjaWlXb3JkRW5kSGFsZkFzY2lpV29yZFN0YXJ0SGFsZlVuaWNvZGVXb3JkRW5kSGFsZlVuaWNvZGVpbmRleG1pbm1heGdyZWVkeSoDAAAMAAAABAAAAE4DAAAYBAAAZAMAQYy2xAALvYESAQAAAC4DAAABAAAAAQAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3JlZ2V4LXN5bnRheC0wLjguNC9zcmMvaGlyL2xpdGVyYWwucnNhc3NlcnRpb24gZmFpbGVkOiBzZXExLmxlbigpLm1hcF9vcih0cnVlLCB8eHwgeCA8PSBzZWxmLmxpbWl0X3RvdGFsKQAAHBsRAGoAAAA5AgAACQAAABwbEQBqAAAAZgIAAAkAAAAcGxEAagAAAGcGAAAYAAAAHBsRAGoAAAB0BgAAEwAAABwbEQBqAAAAbQYAABoAAAAcGxEAagAAAJwGAAAYAAAAHBsRAGoAAACqBgAAEwAAABwbEQBqAAAAowYAABoAAAAcGxEAagAAAHgHAAARAAAABQAAAAoAAAAEAAAACgAAAAMAAABAAAAAAgAAAEAAAAABAAAACgAAABwbEQBqAAAAzggAABUAAAAcGxEAagAAAN4IAAAoAAAAHBsRAGoAAADyCAAAFQAAABwbEQBqAAAA4ggAAB4AAAAcGxEAagAAAOQIAAAnAAAAHBsRAGoAAADkCAAAMwAAABwbEQBqAAAA5QgAADQAAAAcGxEAagAAAOsIAAAgAAAANzQzMjEwLy4tZ/JCQ+UsKyopKCcmJSQjIiE4IB8eHRz/lKSViKCbrd3ehnroytfg0NzMu7ezsaiyyOLDmriufni/ncKqvaKhlsGOiauwuae6cK/AvJyMj3uFgJOKknLfl/nY7uz949rm94e08en29OeL9fP768nE8NaYts21fxvU09LV5MWpn4OsaVBiYGFRz5F0c5CCmXlrhG1ufG9SbHaNcYF3faV1XGpTSGNdQU+m7aPHvuHRy8bZ287q+J7v/////////////////////////////////////////////////////////////////////////////////////3RyaWVkIHRvIHVud3JhcCBleHByIGZyb20gSGlyRnJhbWUsIGdvdDogAAAABB4RACkAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yZWdleC1zeW50YXgtMC44LjQvc3JjL2hpci90cmFuc2xhdGUucnM4HhEAbAAAAAEBAAASAAAAdHJpZWQgdG8gdW53cmFwIFVuaWNvZGUgY2xhc3MgZnJvbSBIaXJGcmFtZSwgZ290OiAAALQeEQAyAAAAOB4RAGwAAAAKAQAAEgAAAHRyaWVkIHRvIHVud3JhcCBieXRlIGNsYXNzIGZyb20gSGlyRnJhbWUsIGdvdDogAAAfEQAvAAAAOB4RAGwAAAAXAQAAEgAAAHRyaWVkIHRvIHVud3JhcCByZXBldGl0aW9uIGZyb20gSGlyRnJhbWUsIGdvdDogAEgfEQAvAAAAOB4RAGwAAAAlAQAAEQAAAHRyaWVkIHRvIHVud3JhcCBncm91cCBmcm9tIEhpckZyYW1lLCBnb3Q6IAAAkB8RACoAAAA4HhEAbAAAADQBAAARAAAAdHJpZWQgdG8gdW53cmFwIGFsdCBwaXBlIGZyb20gSGlyRnJhbWUsIGdvdDogAAAA1B8RAC0AAAA4HhEAbAAAAD8BAAARAAAAOB4RAGwAAABOAQAAJwAAADgeEQBsAAAATwEAABcAAAA4HhEAbAAAAE4BAAAJAAAAOB4RAGwAAACsAQAALgAAADgeEQBsAAAAowEAAC4AAAA4HhEAbAAAALcBAAAnAAAAOB4RAGwAAAC4AQAAHAAAADgeEQBsAAAAvAEAACcAAAA4HhEAbAAAAL0BAAAsAAAAOB4RAGwAAADOAQAAIAAAADgeEQBsAAAA/gEAAC4AAAA4HhEAbAAAAPoBAAAuAAAAOB4RAGwAAAAKAgAALgAAADgeEQBsAAAABgIAAC4AAAA4HhEAbAAAABkCAAAuAAAAOB4RAGwAAAAUAgAALgAAADgeEQBsAAAAIAIAACoAAAA4HhEAbAAAACwCAAAuAAAAOB4RAGwAAAAnAgAALgAAADgeEQBsAAAAPgIAAC8AAAA4HhEAbAAAAEUCAAAvAAAAOB4RAGwAAAAzAgAALwAAADgeEQBsAAAAOgIAAC8AAAA4HhEAbAAAAIwCAAAmAAAAOB4RAGwAAACNAgAAJgAAADgeEQBsAAAAjgIAACYAAAA4HhEAbAAAAHMCAAAmAAAAOB4RAGwAAAB0AgAAJgAAADgeEQBsAAAAdQIAACYAAAA4HhEAbAAAALgCAAAcAAAAOB4RAGwAAADDAgAALAAAADgeEQBsAAAA0QIAACwAAAA4HhEAbAAAANsCAAAcAAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZTogZXhwZWN0ZWQgZXhwciBvciBjb25jYXQsIGdvdCBVbmljb2RlIGNsYXNzLCIRAFQAAAA4HhEAbAAAAOkCAAARAAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZTogZXhwZWN0ZWQgZXhwciBvciBjb25jYXQsIGdvdCBieXRlIGNsYXNzAAAAmCIRAFEAAAA4HhEAbAAAAOwCAAARAAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZTogZXhwZWN0ZWQgZXhwciBvciBjb25jYXQsIGdvdCByZXBldGl0aW9uAAAABCMRAFEAAAA4HhEAbAAAAO8CAAARAAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZTogZXhwZWN0ZWQgZXhwciBvciBjb25jYXQsIGdvdCBncm91cHAjEQBMAAAAOB4RAGwAAADyAgAAEQAAAGludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGU6IGV4cGVjdGVkIGV4cHIgb3IgY29uY2F0LCBnb3QgYWx0IG1hcmtlcgAAANQjEQBRAAAAOB4RAGwAAAD1AgAAEQAAAGludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGU6IGV4cGVjdGVkIGV4cHIgb3IgY29uY2F0LCBnb3QgYWx0IGJyYW5jaCBtYXJrZXJAJBEAWAAAADgeEQBsAAAA+AIAABEAAABpbnRlcm5hbCBlcnJvcjogZW50ZXJlZCB1bnJlYWNoYWJsZSBjb2RlOiBleHBlY3RlZCBleHByIG9yIGFsdCwgZ290IFVuaWNvZGUgY2xhc3MAAACwJBEAUQAAADgeEQBsAAAACAMAABEAAABpbnRlcm5hbCBlcnJvcjogZW50ZXJlZCB1bnJlYWNoYWJsZSBjb2RlOiBleHBlY3RlZCBleHByIG9yIGFsdCwgZ290IGJ5dGUgY2xhc3MAABwlEQBOAAAAOB4RAGwAAAALAwAAEQAAAGludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGU6IGV4cGVjdGVkIGV4cHIgb3IgYWx0LCBnb3QgcmVwZXRpdGlvbgAAhCURAE4AAAA4HhEAbAAAAA4DAAARAAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZTogZXhwZWN0ZWQgZXhwciBvciBhbHQsIGdvdCBncm91cAAAAOwlEQBJAAAAOB4RAGwAAAARAwAAEQAAAGludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGU6IGV4cGVjdGVkIGV4cHIgb3IgYWx0LCBnb3QgY29uY2F0IG1hcmtlcgAAAFAmEQBRAAAAOB4RAGwAAAAUAwAAEQAAAGludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGU6IGV4cGVjdGVkIGV4cHIgb3IgYWx0LCBnb3QgYWx0IGJyYW5jaCBtYXJrZXIAAAC8JhEAVQAAADgeEQBsAAAAFwMAABEAAABhc3NlcnRpb24gZmFpbGVkOiBzZWxmLmZsYWdzKCkudW5pY29kZSgpOB4RAGwAAABDBAAACQAAAAVhc3NlcnRpb24gZmFpbGVkOiAhc2VsZi5mbGFncygpLnVuaWNvZGUoKQAAOB4RAGwAAABZBAAACQAAADA5QVphekFaYXoAfwkJICAAH39/MDkhfmF6IH4hLzpAW2B7fgkJCgoLCwwMDQ0gIEFaMDlBWl9fYXowOUFGYWZhAAAAYgAAAGMAAABlAAAAZgAAAGcAAABoAAAAaQAAAGoAAABrAAAAKiEAAGwAAABtAAAAbgAAAG8AAABwAAAAcQAAAHIAAABzAAAAfwEAAHQAAAB1AAAAdgAAAHcAAAB4AAAAeQAAAHoAAABBAAAAQgAAAEMAAABFAAAARgAAAEcAAABIAAAASQAAAEoAAABLAAAAKiEAAEwAAABNAAAATgAAAE8AAABQAAAAUQAAAFIAAABTAAAAfwEAAFQAAABVAAAAVgAAAFcAAABYAAAAWQAAAFoAAACcAwAAvAMAAOAAAADhAAAA4gAAAOMAAADkAAAA5QAAACshAADmAAAA5wAAAOgAAADpAAAA6gAAAOsAAADsAAAA7QAAAO4AAADvAAAA8AAAAPEAAADyAAAA8wAAAPQAAAD1AAAA9gAAAPgAAAD5AAAA+gAAAPsAAAD8AAAA/QAAAP4AAACeHgAAwAAAAMEAAADCAAAAwwAAAMQAAADFAAAAKyEAAMYAAADHAAAAyAAAAMkAAADKAAAAywAAAMwAAADNAAAAzgAAAM8AAADQAAAA0QAAANIAAADTAAAA1AAAANUAAADWAAAA2AAAANkAAADaAAAA2wAAANwAAADdAAAA3gAAAHgBAAABAQAAAAEAAAMBAAACAQAABQEAAAQBAAAHAQAABgEAAAkBAAAIAQAACwEAAAoBAAANAQAADAEAAA8BAAAOAQAAEQEAABABAAATAQAAEgEAABUBAAAUAQAAFwEAABYBAAAZAQAAGAEAABsBAAAaAQAAHQEAABwBAAAfAQAAHgEAACEBAAAgAQAAIwEAACIBAAAlAQAAJAEAACcBAAAmAQAAKQEAACgBAAArAQAAKgEAAC0BAAAsAQAALwEAAC4BAAAzAQAAMgEAADUBAAA0AQAANwEAADYBAAA6AQAAOQEAADwBAAA7AQAAPgEAAD0BAABAAQAAPwEAAEIBAABBAQAARAEAAEMBAABGAQAARQEAAEgBAABHAQAASwEAAEoBAABNAQAATAEAAE8BAABOAQAAUQEAAFABAABTAQAAUgEAAFUBAABUAQAAVwEAAFYBAABZAQAAWAEAAFsBAABaAQAAXQEAAFwBAABfAQAAXgEAAGEBAABgAQAAYwEAAGIBAABlAQAAZAEAAGcBAABmAQAAaQEAAGgBAABrAQAAagEAAG0BAABsAQAAbwEAAG4BAABxAQAAcAEAAHMBAAByAQAAdQEAAHQBAAB3AQAAdgEAAP8AAAB6AQAAeQEAAHwBAAB7AQAAfgEAAH0BAABTAAAAcwAAAEMCAABTAgAAgwEAAIIBAACFAQAAhAEAAFQCAACIAQAAhwEAAFYCAABXAgAAjAEAAIsBAADdAQAAWQIAAFsCAACSAQAAkQEAAGACAABjAgAA9gEAAGkCAABoAgAAmQEAAJgBAAA9AgAAbwIAAHICAAAgAgAAdQIAAKEBAACgAQAAowEAAKIBAAClAQAApAEAAIACAACoAQAApwEAAIMCAACtAQAArAEAAIgCAACwAQAArwEAAIoCAACLAgAAtAEAALMBAAC2AQAAtQEAAJICAAC5AQAAuAEAAL0BAAC8AQAA9wEAAMUBAADGAQAAxAEAAMYBAADEAQAAxQEAAMgBAADJAQAAxwEAAMkBAADHAQAAyAEAAMsBAADMAQAAygEAAMwBAADKAQAAywEAAM4BAADNAQAA0AEAAM8BAADSAQAA0QEAANQBAADTAQAA1gEAANUBAADYAQAA1wEAANoBAADZAQAA3AEAANsBAACOAQAA3wEAAN4BAADhAQAA4AEAAOMBAADiAQAA5QEAAOQBAADnAQAA5gEAAOkBAADoAQAA6wEAAOoBAADtAQAA7AEAAO8BAADuAQAA8gEAAPMBAADxAQAA8wEAAPEBAADyAQAA9QEAAPQBAACVAQAAvwEAAPkBAAD4AQAA+wEAAPoBAAD9AQAA/AEAAP8BAAD+AQAAAQIAAAACAAADAgAAAgIAAAUCAAAEAgAABwIAAAYCAAAJAgAACAIAAAsCAAAKAgAADQIAAAwCAAAPAgAADgIAABECAAAQAgAAEwIAABICAAAVAgAAFAIAABcCAAAWAgAAGQIAABgCAAAbAgAAGgIAAB0CAAAcAgAAHwIAAB4CAACeAQAAIwIAACICAAAlAgAAJAIAACcCAAAmAgAAKQIAACgCAAArAgAAKgIAAC0CAAAsAgAALwIAAC4CAAAxAgAAMAIAADMCAAAyAgAAZSwAADwCAAA7AgAAmgEAAGYsAAB+LAAAfywAAEICAABBAgAAgAEAAIkCAACMAgAARwIAAEYCAABJAgAASAIAAEsCAABKAgAATQIAAEwCAABPAgAATgIAAG8sAABtLAAAcCwAAIEBAACGAQAAiQEAAIoBAACPAQAAkAEAAKunAACTAQAArKcAAJQBAACNpwAAqqcAAJcBAACWAQAArqcAAGIsAACtpwAAnAEAAG4sAACdAQAAnwEAAGQsAACmAQAAxacAAKkBAACxpwAArgEAAEQCAACxAQAAsgEAAEUCAAC3AQAAsqcAALCnAACZAwAAuQMAAL4fAABxAwAAcAMAAHMDAAByAwAAdwMAAHYDAAD9AwAA/gMAAP8DAADzAwAArAMAAK0DAACuAwAArwMAAMwDAADNAwAAzgMAALEDAACyAwAA0AMAALMDAAC0AwAAtQMAAPUDAAC2AwAAtwMAALgDAADRAwAA9AMAAEUDAAC5AwAAvh8AALoDAADwAwAAuwMAALUAAAC8AwAAvQMAAL4DAAC/AwAAwAMAANYDAADBAwAA8QMAAMIDAADDAwAAxAMAAMUDAADGAwAA1QMAAMcDAADIAwAAyQMAACYhAADKAwAAywMAAIYDAACIAwAAiQMAAIoDAACRAwAAkgMAANADAACTAwAAlAMAAJUDAAD1AwAAlgMAAJcDAACYAwAA0QMAAPQDAABFAwAAmQMAAL4fAACaAwAA8AMAAJsDAAC1AAAAnAMAAJ0DAACeAwAAnwMAAKADAADWAwAAoQMAAPEDAACjAwAAwwMAAKMDAADCAwAApAMAAKUDAACmAwAA1QMAAKcDAACoAwAAqQMAACYhAACqAwAAqwMAAIwDAACOAwAAjwMAANcDAACSAwAAsgMAAJgDAAC4AwAA9AMAAKYDAADGAwAAoAMAAMADAADPAwAA2QMAANgDAADbAwAA2gMAAN0DAADcAwAA3wMAAN4DAADhAwAA4AMAAOMDAADiAwAA5QMAAOQDAADnAwAA5gMAAOkDAADoAwAA6wMAAOoDAADtAwAA7AMAAO8DAADuAwAAmgMAALoDAAChAwAAwQMAAPkDAAB/AwAAmAMAALgDAADRAwAAlQMAALUDAAD4AwAA9wMAAPIDAAD7AwAA+gMAAHsDAAB8AwAAfQMAAFAEAABRBAAAUgQAAFMEAABUBAAAVQQAAFYEAABXBAAAWAQAAFkEAABaBAAAWwQAAFwEAABdBAAAXgQAAF8EAAAwBAAAMQQAADIEAACAHAAAMwQAADQEAACBHAAANQQAADYEAAA3BAAAOAQAADkEAAA6BAAAOwQAADwEAAA9BAAAPgQAAIIcAAA/BAAAQAQAAEEEAACDHAAAQgQAAIQcAACFHAAAQwQAAEQEAABFBAAARgQAAEcEAABIBAAASQQAAEoEAACGHAAASwQAAEwEAABNBAAATgQAAE8EAAAQBAAAEQQAABIEAACAHAAAEwQAABQEAACBHAAAFQQAABYEAAAXBAAAGAQAABkEAAAaBAAAGwQAABwEAAAdBAAAHgQAAIIcAAAfBAAAIAQAACEEAACDHAAAIgQAAIQcAACFHAAAIwQAACQEAAAlBAAAJgQAACcEAAAoBAAAKQQAACoEAACGHAAAKwQAACwEAAAtBAAALgQAAC8EAAAABAAAAQQAAAIEAAADBAAABAQAAAUEAAAGBAAABwQAAAgEAAAJBAAACgQAAAsEAAAMBAAADQQAAA4EAAAPBAAAYQQAAGAEAABjBAAAhxwAAGIEAACHHAAAZQQAAGQEAABnBAAAZgQAAGkEAABoBAAAawQAAGoEAABtBAAAbAQAAG8EAABuBAAAcQQAAHAEAABzBAAAcgQAAHUEAAB0BAAAdwQAAHYEAAB5BAAAeAQAAHsEAAB6BAAAfQQAAHwEAAB/BAAAfgQAAIEEAACABAAAiwQAAIoEAACNBAAAjAQAAI8EAACOBAAAkQQAAJAEAACTBAAAkgQAAJUEAACUBAAAlwQAAJYEAACZBAAAmAQAAJsEAACaBAAAnQQAAJwEAACfBAAAngQAAKEEAACgBAAAowQAAKIEAAClBAAApAQAAKcEAACmBAAAqQQAAKgEAACrBAAAqgQAAK0EAACsBAAArwQAAK4EAACxBAAAsAQAALMEAACyBAAAtQQAALQEAAC3BAAAtgQAALkEAAC4BAAAuwQAALoEAAC9BAAAvAQAAL8EAAC+BAAAzwQAAMIEAADBBAAAxAQAAMMEAADGBAAAxQQAAMgEAADHBAAAygQAAMkEAADMBAAAywQAAM4EAADNBAAAwAQAANEEAADQBAAA0wQAANIEAADVBAAA1AQAANcEAADWBAAA2QQAANgEAADbBAAA2gQAAN0EAADcBAAA3wQAAN4EAADhBAAA4AQAAOMEAADiBAAA5QQAAOQEAADnBAAA5gQAAOkEAADoBAAA6wQAAOoEAADtBAAA7AQAAO8EAADuBAAA8QQAAPAEAADzBAAA8gQAAPUEAAD0BAAA9wQAAPYEAAD5BAAA+AQAAPsEAAD6BAAA/QQAAPwEAAD/BAAA/gQAAAEFAAAABQAAAwUAAAIFAAAFBQAABAUAAAcFAAAGBQAACQUAAAgFAAALBQAACgUAAA0FAAAMBQAADwUAAA4FAAARBQAAEAUAABMFAAASBQAAFQUAABQFAAAXBQAAFgUAABkFAAAYBQAAGwUAABoFAAAdBQAAHAUAAB8FAAAeBQAAIQUAACAFAAAjBQAAIgUAACUFAAAkBQAAJwUAACYFAAApBQAAKAUAACsFAAAqBQAALQUAACwFAAAvBQAALgUAAGEFAABiBQAAYwUAAGQFAABlBQAAZgUAAGcFAABoBQAAaQUAAGoFAABrBQAAbAUAAG0FAABuBQAAbwUAAHAFAABxBQAAcgUAAHMFAAB0BQAAdQUAAHYFAAB3BQAAeAUAAHkFAAB6BQAAewUAAHwFAAB9BQAAfgUAAH8FAACABQAAgQUAAIIFAACDBQAAhAUAAIUFAACGBQAAMQUAADIFAAAzBQAANAUAADUFAAA2BQAANwUAADgFAAA5BQAAOgUAADsFAAA8BQAAPQUAAD4FAAA/BQAAQAUAAEEFAABCBQAAQwUAAEQFAABFBQAARgUAAEcFAABIBQAASQUAAEoFAABLBQAATAUAAE0FAABOBQAATwUAAFAFAABRBQAAUgUAAFMFAABUBQAAVQUAAFYFAAAALQAAAS0AAAItAAADLQAABC0AAAUtAAAGLQAABy0AAAgtAAAJLQAACi0AAAstAAAMLQAADS0AAA4tAAAPLQAAEC0AABEtAAASLQAAEy0AABQtAAAVLQAAFi0AABctAAAYLQAAGS0AABotAAAbLQAAHC0AAB0tAAAeLQAAHy0AACAtAAAhLQAAIi0AACMtAAAkLQAAJS0AACctAAAtLQAAkBwAAJEcAACSHAAAkxwAAJQcAACVHAAAlhwAAJccAACYHAAAmRwAAJocAACbHAAAnBwAAJ0cAACeHAAAnxwAAKAcAAChHAAAohwAAKMcAACkHAAApRwAAKYcAACnHAAAqBwAAKkcAACqHAAAqxwAAKwcAACtHAAArhwAAK8cAACwHAAAsRwAALIcAACzHAAAtBwAALUcAAC2HAAAtxwAALgcAAC5HAAAuhwAAL0cAAC+HAAAvxwAAHCrAABxqwAAcqsAAHOrAAB0qwAAdasAAHarAAB3qwAAeKsAAHmrAAB6qwAAe6sAAHyrAAB9qwAAfqsAAH+rAACAqwAAgasAAIKrAACDqwAAhKsAAIWrAACGqwAAh6sAAIirAACJqwAAiqsAAIurAACMqwAAjasAAI6rAACPqwAAkKsAAJGrAACSqwAAk6sAAJSrAACVqwAAlqsAAJerAACYqwAAmasAAJqrAACbqwAAnKsAAJ2rAACeqwAAn6sAAKCrAAChqwAAoqsAAKOrAACkqwAApasAAKarAACnqwAAqKsAAKmr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AAC6HwAAux8AAMgfAADJHwAAyh8AAMsfAADaHwAA2x8AAPgfAAD5HwAA6h8AAOsfAAD6HwAA+x8AAIgfAACJHwAAih8AAIsfAACMHwAAjR8AAI4fAACPHwAAgB8AAIEfAACCHwAAgx8AAIQfAACFHwAAhh8AAIcfAACYHwAAmR8AAJofAACbHwAAnB8AAJ0fAACeHwAAnx8AAJAfAACRHwAAkh8AAJMfAACUHwAAlR8AAJYfAACXHwAAqB8AAKkfAACqHwAAqx8AAKwfAACtHwAArh8AAK8fAACgHwAAoR8AAKIfAACjHwAApB8AAKUfAACmHwAApx8AALgfAAC5HwAAvB8AALAfAACxHwAAcB8AAHEfAACzHwAARQMAAJkDAAC5AwAAzB8AAHIfAABzHwAAdB8AAHUfAADDHwAA2B8AANkfAADQHwAA0R8AAHYfAAB3HwAA6B8AAOkfAADsHwAA4B8AAOEfAAB6HwAAex8AAOUfAAD8HwAAeB8AAHkfAAB8HwAAfR8AAPMfAACpAwAAyQMAAEsAAABrAAAAxQAAAOUAAABOIQAAMiEAAHAhAABxIQAAciEAAHMhAAB0IQAAdSEAAHYhAAB3IQAAeCEAAHkhAAB6IQAAeyEAAHwhAAB9IQAAfiEAAH8hAABgIQAAYSEAAGIhAABjIQAAZCEAAGUhAABmIQAAZyEAAGghAABpIQAAaiEAAGshAABsIQAAbSEAAG4hAABvIQAAhCEAAIMhAADQJAAA0SQAANIkAADTJAAA1CQAANUkAADWJAAA1yQAANgkAADZJAAA2iQAANskAADcJAAA3SQAAN4kAADfJAAA4CQAAOEkAADiJAAA4yQAAOQkAADlJAAA5iQAAOckAADoJAAA6SQAALYkAAC3JAAAuCQAALkkAAC6JAAAuyQAALwkAAC9JAAAviQAAL8kAADAJAAAwSQAAMIkAADDJAAAxCQAAMUkAADGJAAAxyQAAMgkAADJJAAAyiQAAMskAADMJAAAzSQAAM4kAADPJAAAMCwAADEsAAAyLAAAMywAADQsAAA1LAAANiwAADcsAAA4LAAAOSwAADosAAA7LAAAPCwAAD0sAAA+LAAAPywAAEAsAABBLAAAQiwAAEMsAABELAAARSwAAEYsAABHLAAASCwAAEksAABKLAAASywAAEwsAABNLAAATiwAAE8sAABQLAAAUSwAAFIsAABTLAAAVCwAAFUsAABWLAAAVywAAFgsAABZLAAAWiwAAFssAABcLAAAXSwAAF4sAABfLAAAACwAAAEsAAACLAAAAywAAAQsAAAFLAAABiwAAAcsAAAILAAACSwAAAosAAALLAAADCwAAA0sAAAOLAAADywAABAsAAARLAAAEiwAABMsAAAULAAAFSwAABYsAAAXLAAAGCwAABksAAAaLAAAGywAABwsAAAdLAAAHiwAAB8sAAAgLAAAISwAACIsAAAjLAAAJCwAACUsAAAmLAAAJywAACgsAAApLAAAKiwAACssAAAsLAAALSwAAC4sAAAvLAAAYSwAAGAsAABrAgAAfR0AAH0CAAA6AgAAPgIAAGgsAABnLAAAaiwAAGksAABsLAAAaywAAFECAABxAgAAUAIAAFICAABzLAAAciwAAHYsAAB1LAAAPwIAAEACAACBLAAAgCwAAIMsAACCLAAAhSwAAIQsAACHLAAAhiwAAIksAACILAAAiywAAIosAACNLAAAjCwAAI8sAACOLAAAkSwAAJAsAACTLAAAkiwAAJUsAACULAAAlywAAJYsAACZLAAAmCwAAJssAACaLAAAnSwAAJwsAACfLAAAniwAAKEsAACgLAAAoywAAKIsAAClLAAApCwAAKcsAACmLAAAqSwAAKgsAACrLAAAqiwAAK0sAACsLAAArywAAK4sAACxLAAAsCwAALMsAACyLAAAtSwAALQsAAC3LAAAtiwAALksAAC4LAAAuywAALosAAC9LAAAvCwAAL8sAAC+LAAAwSwAAMAsAADDLAAAwiwAAMUsAADELAAAxywAAMYsAADJLAAAyCwAAMssAADKLAAAzSwAAMwsAADPLAAAziwAANEsAADQLAAA0ywAANIsAADVLAAA1CwAANcsAADWLAAA2SwAANgsAADbLAAA2iwAAN0sAADcLAAA3ywAAN4sAADhLAAA4CwAAOMsAADiLAAA7CwAAOssAADuLAAA7SwAAPMsAADyLAAAoBAAAKEQAACiEAAAoxAAAKQQAAClEAAAphAAAKcQAACoEAAAqRAAAKoQAACrEAAArBAAAK0QAACuEAAArxAAALAQAACxEAAAshAAALMQAAC0EAAAtRAAALYQAAC3EAAAuBAAALkQAAC6EAAAuxAAALwQAAC9EAAAvhAAAL8QAADAEAAAwRAAAMIQAADDEAAAxBAAAMUQAADHEAAAzRAAAEGmAABApgAAQ6YAAEKmAABFpgAARKYAAEemAABGpgAASaYAAEimAACIHAAAS6YAAIgcAABKpgAATaYAAEymAABPpgAATqYAAFGmAABQpgAAU6YAAFKmAABVpgAAVKYAAFemAABWpgAAWaYAAFimAABbpgAAWqYAAF2mAABcpgAAX6YAAF6mAABhpgAAYKYAAGOmAABipgAAZaYAAGSmAABnpgAAZqYAAGmmAABopgAAa6YAAGqmAABtpgAAbKYAAIGmAACApgAAg6YAAIKmAACFpgAAhKYAAIemAACGpgAAiaYAAIimAACLpgAAiqYAAI2mAACMpgAAj6YAAI6mAACRpgAAkKYAAJOmAACSpgAAlaYAAJSmAACXpgAAlqYAAJmmAACYpgAAm6YAAJqmAAAjpwAAIqcAACWnAAAkpwAAJ6cAACanAAAppwAAKKcAACunAAAqpwAALacAACynAAAvpwAALqcAADOnAAAypwAANacAADSnAAA3pwAANqcAADmnAAA4pwAAO6cAADqnAAA9pwAAPKcAAD+nAAA+pwAAQacAAECnAABDpwAAQqcAAEWnAABEpwAAR6cAAEanAABJpwAASKcAAEunAABKpwAATacAAEynAABPpwAATqcAAFGnAABQpwAAU6cAAFKnAABVpwAAVKcAAFenAABWpwAAWacAAFinAABbpwAAWqcAAF2nAABcpwAAX6cAAF6nAABhpwAAYKcAAGOnAABipwAAZacAAGSnAABnpwAAZqcAAGmnAABopwAAa6cAAGqnAABtpwAAbKcAAG+nAABupwAAeqcAAHmnAAB8pwAAe6cAAHkdAAB/pwAAfqcAAIGnAACApwAAg6cAAIKnAACFpwAAhKcAAIenAACGpwAAjKcAAIunAABlAgAAkacAAJCnAACTpwAAkqcAAMSnAACXpwAAlqcAAJmnAACYpwAAm6cAAJqnAACdpwAAnKcAAJ+nAACepwAAoacAAKCnAACjpwAAoqcAAKWnAACkpwAAp6cAAKanAACppwAAqKcAAGYCAABcAgAAYQIAAGwCAABqAgAAngIAAIcCAACdAgAAU6sAALWnAAC0pwAAt6cAALanAAC5pwAAuKcAALunAAC6pwAAvacAALynAAC/pwAAvqcAAMGn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AADkJxEAAQAAAEMAAADoJxEAAQAAAEQAAABwMBYAAQAAAEUAAADsJxEAAQAAAEYAAADwJxEAAQAAAEcAAAD0JxEAAQAAAEgAAAD4JxEAAQAAAEkAAAD8JxEAAQAAAEoAAAAAKBEAAQAAAEsAAAAEKBEAAgAAAEwAAAAMKBEAAQAAAE0AAAAQKBEAAQAAAE4AAAAUKBEAAQAAAE8AAAAYKBEAAQAAAFAAAAAcKBEAAQAAAFEAAAAgKBEAAQAAAFIAAAAkKBEAAQAAAFMAAAAoKBEAAgAAAFQAAAAwKBEAAQAAAFUAAAA0KBEAAQAAAFYAAAA4KBEAAQAAAFcAAAA8KBEAAQAAAFgAAABAKBEAAQAAAFkAAABEKBEAAQAAAFoAAABIKBEAAQAAAGEAAABMKBEAAQAAAGIAAABQKBEAAQAAAGMAAABUKBEAAQAAAGQAAABsMBYAAQAAAGUAAABYKBEAAQAAAGYAAABcKBEAAQAAAGcAAABgKBEAAQAAAGgAAABkKBEAAQAAAGkAAABoKBEAAQAAAGoAAABsKBEAAQAAAGsAAABwKBEAAgAAAGwAAAB4KBEAAQAAAG0AAAB8KBEAAQAAAG4AAACAKBEAAQAAAG8AAACEKBEAAQAAAHAAAACIKBEAAQAAAHEAAACMKBEAAQAAAHIAAACQKBEAAQAAAHMAAACUKBEAAgAAAHQAAACcKBEAAQAAAHUAAACgKBEAAQAAAHYAAACkKBEAAQAAAHcAAACoKBEAAQAAAHgAAACsKBEAAQAAAHkAAACwKBEAAQAAAHoAAAC0KBEAAQAAALUAAAC4KBEAAgAAAMAAAADAKBEAAQAAAMEAAADEKBEAAQAAAMIAAADIKBEAAQAAAMMAAADMKBEAAQAAAMQAAADQKBEAAQAAAMUAAADUKBEAAgAAAMYAAADcKBEAAQAAAMcAAADgKBEAAQAAAMgAAADkKBEAAQAAAMkAAADoKBEAAQAAAMoAAADsKBEAAQAAAMsAAADwKBEAAQAAAMwAAAD0KBEAAQAAAM0AAAD4KBEAAQAAAM4AAAD8KBEAAQAAAM8AAAAAKREAAQAAANAAAAAEKREAAQAAANEAAAAIKREAAQAAANIAAAAMKREAAQAAANMAAAAQKREAAQAAANQAAAAUKREAAQAAANUAAAAYKREAAQAAANYAAAAcKREAAQAAANgAAAAgKREAAQAAANkAAAAkKREAAQAAANoAAAAoKREAAQAAANsAAAAsKREAAQAAANwAAAAwKREAAQAAAN0AAAA0KREAAQAAAN4AAAA4KREAAQAAAN8AAAA8KREAAQAAAOAAAABAKREAAQAAAOEAAABEKREAAQAAAOIAAABIKREAAQAAAOMAAABMKREAAQAAAOQAAABQKREAAQAAAOUAAABUKREAAgAAAOYAAABcKREAAQAAAOcAAABgKREAAQAAAOgAAABkKREAAQAAAOkAAABoKREAAQAAAOoAAABsKREAAQAAAOsAAABwKREAAQAAAOwAAAB0KREAAQAAAO0AAAB4KREAAQAAAO4AAAB8KREAAQAAAO8AAACAKREAAQAAAPAAAACEKREAAQAAAPEAAACIKREAAQAAAPIAAACMKREAAQAAAPMAAACQKREAAQAAAPQAAACUKREAAQAAAPUAAACYKREAAQAAAPYAAACcKREAAQAAAPgAAACgKREAAQAAAPkAAACkKREAAQAAAPoAAACoKREAAQAAAPsAAACsKREAAQAAAPwAAACwKREAAQAAAP0AAAC0KREAAQAAAP4AAAC4KREAAQAAAP8AAAC8KREAAQAAAAABAADAKREAAQAAAAEBAADEKREAAQAAAAIBAADIKREAAQAAAAMBAADMKREAAQAAAAQBAADQKREAAQAAAAUBAADUKREAAQAAAAYBAADYKREAAQAAAAcBAADcKREAAQAAAAgBAADgKREAAQAAAAkBAADkKREAAQAAAAoBAADoKREAAQAAAAsBAADsKREAAQAAAAwBAADwKREAAQAAAA0BAAD0KREAAQAAAA4BAAD4KREAAQAAAA8BAAD8KREAAQAAABABAAAAKhEAAQAAABEBAAAEKhEAAQAAABIBAAAIKhEAAQAAABMBAAAMKhEAAQAAABQBAAAQKhEAAQAAABUBAAAUKhEAAQAAABYBAAAYKhEAAQAAABcBAAAcKhEAAQAAABgBAAAgKhEAAQAAABkBAAAkKhEAAQAAABoBAAAoKhEAAQAAABsBAAAsKhEAAQAAABwBAAAwKhEAAQAAAB0BAAA0KhEAAQAAAB4BAAA4KhEAAQAAAB8BAAA8KhEAAQAAACABAABAKhEAAQAAACEBAABEKhEAAQAAACIBAABIKhEAAQAAACMBAABMKhEAAQAAACQBAABQKhEAAQAAACUBAABUKhEAAQAAACYBAABYKhEAAQAAACcBAABcKhEAAQAAACgBAABgKhEAAQAAACkBAABkKhEAAQAAACoBAABoKhEAAQAAACsBAABsKhEAAQAAACwBAABwKhEAAQAAAC0BAAB0KhEAAQAAAC4BAAB4KhEAAQAAAC8BAAB8KhEAAQAAADIBAACAKhEAAQAAADMBAACEKhEAAQAAADQBAACIKhEAAQAAADUBAACMKhEAAQAAADYBAACQKhEAAQAAADcBAACUKhEAAQAAADkBAACYKhEAAQAAADoBAACcKhEAAQAAADsBAACgKhEAAQAAADwBAACkKhEAAQAAAD0BAACoKhEAAQAAAD4BAACsKhEAAQAAAD8BAACwKhEAAQAAAEABAAC0KhEAAQAAAEEBAAC4KhEAAQAAAEIBAAC8KhEAAQAAAEMBAADAKhEAAQAAAEQBAADEKhEAAQAAAEUBAADIKhEAAQAAAEYBAADMKhEAAQAAAEcBAADQKhEAAQAAAEgBAADUKhEAAQAAAEoBAADYKhEAAQAAAEsBAADcKhEAAQAAAEwBAADgKhEAAQAAAE0BAADkKhEAAQAAAE4BAADoKhEAAQAAAE8BAADsKhEAAQAAAFABAADwKhEAAQAAAFEBAAD0KhEAAQAAAFIBAAD4KhEAAQAAAFMBAAD8KhEAAQAAAFQBAAAAKxEAAQAAAFUBAAAEKxEAAQAAAFYBAAAIKxEAAQAAAFcBAAAMKxEAAQAAAFgBAAAQKxEAAQAAAFkBAAAUKxEAAQAAAFoBAAAYKxEAAQAAAFsBAAAcKxEAAQAAAFwBAAAgKxEAAQAAAF0BAAAkKxEAAQAAAF4BAAAoKxEAAQAAAF8BAAAsKxEAAQAAAGABAAAwKxEAAQAAAGEBAAA0KxEAAQAAAGIBAAA4KxEAAQAAAGMBAAA8KxEAAQAAAGQBAABAKxEAAQAAAGUBAABEKxEAAQAAAGYBAABIKxEAAQAAAGcBAABMKxEAAQAAAGgBAABQKxEAAQAAAGkBAABUKxEAAQAAAGoBAABYKxEAAQAAAGsBAABcKxEAAQAAAGwBAABgKxEAAQAAAG0BAABkKxEAAQAAAG4BAABoKxEAAQAAAG8BAABsKxEAAQAAAHABAABwKxEAAQAAAHEBAAB0KxEAAQAAAHIBAAB4KxEAAQAAAHMBAAB8KxEAAQAAAHQBAACAKxEAAQAAAHUBAACEKxEAAQAAAHYBAACIKxEAAQAAAHcBAACMKxEAAQAAAHgBAACQKxEAAQAAAHkBAACUKxEAAQAAAHoBAACYKxEAAQAAAHsBAACcKxEAAQAAAHwBAACgKxEAAQAAAH0BAACkKxEAAQAAAH4BAACoKxEAAQAAAH8BAACsKxEAAgAAAIABAAC0KxEAAQAAAIEBAAC4KxEAAQAAAIIBAAC8KxEAAQAAAIMBAADAKxEAAQAAAIQBAADEKxEAAQAAAIUBAADIKxEAAQAAAIYBAADMKxEAAQAAAIcBAADQKxEAAQAAAIgBAADUKxEAAQAAAIkBAADYKxEAAQAAAIoBAADcKxEAAQAAAIsBAADgKxEAAQAAAIwBAADkKxEAAQAAAI4BAADoKxEAAQAAAI8BAADsKxEAAQAAAJABAADwKxEAAQAAAJEBAAD0KxEAAQAAAJIBAAD4KxEAAQAAAJMBAAD8KxEAAQAAAJQBAAAALBEAAQAAAJUBAAAELBEAAQAAAJYBAAAILBEAAQAAAJcBAAAMLBEAAQAAAJgBAAAQLBEAAQAAAJkBAAAULBEAAQAAAJoBAAAYLBEAAQAAAJwBAAAcLBEAAQAAAJ0BAAAgLBEAAQAAAJ4BAAAkLBEAAQAAAJ8BAAAoLBEAAQAAAKABAAAsLBEAAQAAAKEBAAAwLBEAAQAAAKIBAAA0LBEAAQAAAKMBAAA4LBEAAQAAAKQBAAA8LBEAAQAAAKUBAABALBEAAQAAAKYBAABELBEAAQAAAKcBAABILBEAAQAAAKgBAABMLBEAAQAAAKkBAABQLBEAAQAAAKwBAABULBEAAQAAAK0BAABYLBEAAQAAAK4BAABcLBEAAQAAAK8BAABgLBEAAQAAALABAABkLBEAAQAAALEBAABoLBEAAQAAALIBAABsLBEAAQAAALMBAABwLBEAAQAAALQBAAB0LBEAAQAAALUBAAB4LBEAAQAAALYBAAB8LBEAAQAAALcBAACALBEAAQAAALgBAACELBEAAQAAALkBAACILBEAAQAAALwBAACMLBEAAQAAAL0BAACQLBEAAQAAAL8BAACULBEAAQAAAMQBAACYLBEAAgAAAMUBAACgLBEAAgAAAMYBAACoLBEAAgAAAMcBAACwLBEAAgAAAMgBAAC4LBEAAgAAAMkBAADALBEAAgAAAMoBAADILBEAAgAAAMsBAADQLBEAAgAAAMwBAADYLBEAAgAAAM0BAADgLBEAAQAAAM4BAADkLBEAAQAAAM8BAADoLBEAAQAAANABAADsLBEAAQAAANEBAADwLBEAAQAAANIBAAD0LBEAAQAAANMBAAD4LBEAAQAAANQBAAD8LBEAAQAAANUBAAAALREAAQAAANYBAAAELREAAQAAANcBAAAILREAAQAAANgBAAAMLREAAQAAANkBAAAQLREAAQAAANoBAAAULREAAQAAANsBAAAYLREAAQAAANwBAAAcLREAAQAAAN0BAAAgLREAAQAAAN4BAAAkLREAAQAAAN8BAAAoLREAAQAAAOABAAAsLREAAQAAAOEBAAAwLREAAQAAAOIBAAA0LREAAQAAAOMBAAA4LREAAQAAAOQBAAA8LREAAQAAAOUBAABALREAAQAAAOYBAABELREAAQAAAOcBAABILREAAQAAAOgBAABMLREAAQAAAOkBAABQLREAAQAAAOoBAABULREAAQAAAOsBAABYLREAAQAAAOwBAABcLREAAQAAAO0BAABgLREAAQAAAO4BAABkLREAAQAAAO8BAABoLREAAQAAAPEBAABsLREAAgAAAPIBAAB0LREAAgAAAPMBAAB8LREAAgAAAPQBAACELREAAQAAAPUBAACILREAAQAAAPYBAACMLREAAQAAAPcBAACQLREAAQAAAPgBAACULREAAQAAAPkBAACYLREAAQAAAPoBAACcLREAAQAAAPsBAACgLREAAQAAAPwBAACkLREAAQAAAP0BAACoLREAAQAAAP4BAACsLREAAQAAAP8BAACwLREAAQAAAAACAAC0LREAAQAAAAECAAC4LREAAQAAAAICAAC8LREAAQAAAAMCAADALREAAQAAAAQCAADELREAAQAAAAUCAADILREAAQAAAAYCAADMLREAAQAAAAcCAADQLREAAQAAAAgCAADULREAAQAAAAkCAADYLREAAQAAAAoCAADcLREAAQAAAAsCAADgLREAAQAAAAwCAADkLREAAQAAAA0CAADoLREAAQAAAA4CAADsLREAAQAAAA8CAADwLREAAQAAABACAAD0LREAAQAAABECAAD4LREAAQAAABICAAD8LREAAQAAABMCAAAALhEAAQAAABQCAAAELhEAAQAAABUCAAAILhEAAQAAABYCAAAMLhEAAQAAABcCAAAQLhEAAQAAABgCAAAULhEAAQAAABkCAAAYLhEAAQAAABoCAAAcLhEAAQAAABsCAAAgLhEAAQAAABwCAAAkLhEAAQAAAB0CAAAoLhEAAQAAAB4CAAAsLhEAAQAAAB8CAAAwLhEAAQAAACACAAA0LhEAAQAAACICAAA4LhEAAQAAACMCAAA8LhEAAQAAACQCAABALhEAAQAAACUCAABELhEAAQAAACYCAABILhEAAQAAACcCAABMLhEAAQAAACgCAABQLhEAAQAAACkCAABULhEAAQAAACoCAABYLhEAAQAAACsCAABcLhEAAQAAACwCAABgLhEAAQAAAC0CAABkLhEAAQAAAC4CAABoLhEAAQAAAC8CAABsLhEAAQAAADACAABwLhEAAQAAADECAAB0LhEAAQAAADICAAB4LhEAAQAAADMCAAB8LhEAAQAAADoCAACALhEAAQAAADsCAACELhEAAQAAADwCAACILhEAAQAAAD0CAACMLhEAAQAAAD4CAACQLhEAAQAAAD8CAACULhEAAQAAAEACAACYLhEAAQAAAEECAACcLhEAAQAAAEICAACgLhEAAQAAAEMCAACkLhEAAQAAAEQCAACoLhEAAQAAAEUCAACsLhEAAQAAAEYCAACwLhEAAQAAAEcCAAC0LhEAAQAAAEgCAAC4LhEAAQAAAEkCAAC8LhEAAQAAAEoCAADALhEAAQAAAEsCAADELhEAAQAAAEwCAADILhEAAQAAAE0CAADMLhEAAQAAAE4CAADQLhEAAQAAAE8CAADULhEAAQAAAFACAADYLhEAAQAAAFECAADcLhEAAQAAAFICAADgLhEAAQAAAFMCAADkLhEAAQAAAFQCAADoLhEAAQAAAFYCAADsLhEAAQAAAFcCAADwLhEAAQAAAFkCAAD0LhEAAQAAAFsCAAD4LhEAAQAAAFwCAAD8LhEAAQAAAGACAAAALxEAAQAAAGECAAAELxEAAQAAAGMCAAAILxEAAQAAAGUCAAAMLxEAAQAAAGYCAAAQLxEAAQAAAGgCAAAULxEAAQAAAGkCAAAYLxEAAQAAAGoCAAAcLxEAAQAAAGsCAAAgLxEAAQAAAGwCAAAkLxEAAQAAAG8CAAAoLxEAAQAAAHECAAAsLxEAAQAAAHICAAAwLxEAAQAAAHUCAAA0LxEAAQAAAH0CAAA4LxEAAQAAAIACAAA8LxEAAQAAAIICAABALxEAAQAAAIMCAABELxEAAQAAAIcCAABILxEAAQAAAIgCAABMLxEAAQAAAIkCAABQLxEAAQAAAIoCAABULxEAAQAAAIsCAABYLxEAAQAAAIwCAABcLxEAAQAAAJICAABgLxEAAQAAAJ0CAABkLxEAAQAAAJ4CAABoLxEAAQAAAEUDAABsLxEAAwAAAHADAAB4LxEAAQAAAHEDAAB8LxEAAQAAAHIDAACALxEAAQAAAHMDAACELxEAAQAAAHYDAACILxEAAQAAAHcDAACMLxEAAQAAAHsDAACQLxEAAQAAAHwDAACULxEAAQAAAH0DAACYLxEAAQAAAH8DAACcLxEAAQAAAIYDAACgLxEAAQAAAIgDAACkLxEAAQAAAIkDAACoLxEAAQAAAIoDAACsLxEAAQAAAIwDAACwLxEAAQAAAI4DAAC0LxEAAQAAAI8DAAC4LxEAAQAAAJEDAAC8LxEAAQAAAJIDAADALxEAAgAAAJMDAADILxEAAQAAAJQDAADMLxEAAQAAAJUDAADQLxEAAgAAAJYDAADYLxEAAQAAAJcDAADcLxEAAQAAAJgDAADgLxEAAwAAAJkDAADsLxEAAwAAAJoDAAD4LxEAAgAAAJsDAAAAMBEAAQAAAJwDAAAEMBEAAgAAAJ0DAAAMMBEAAQAAAJ4DAAAQMBEAAQAAAJ8DAAAUMBEAAQAAAKADAAAYMBEAAgAAAKEDAAAgMBEAAgAAAKMDAAAoMBEAAgAAAKQDAAAwMBEAAQAAAKUDAAA0MBEAAQAAAKYDAAA4MBEAAgAAAKcDAABAMBEAAQAAAKgDAABEMBEAAQAAAKkDAABIMBEAAgAAAKoDAABQMBEAAQAAAKsDAABUMBEAAQAAAKwDAABYMBEAAQAAAK0DAABcMBEAAQAAAK4DAABgMBEAAQAAAK8DAABkMBEAAQAAALEDAABoMBEAAQAAALIDAABsMBEAAgAAALMDAAB0MBEAAQAAALQDAAB4MBEAAQAAALUDAAB8MBEAAgAAALYDAACEMBEAAQAAALcDAACIMBEAAQAAALgDAACMMBEAAwAAALkDAACYMBEAAwAAALoDAACkMBEAAgAAALsDAACsMBEAAQAAALwDAACwMBEAAgAAAL0DAAC4MBEAAQAAAL4DAAC8MBEAAQAAAL8DAADAMBEAAQAAAMADAADEMBEAAgAAAMEDAADMMBEAAgAAAMIDAADUMBEAAgAAAMMDAADcMBEAAgAAAMQDAADkMBEAAQAAAMUDAADoMBEAAQAAAMYDAADsMBEAAgAAAMcDAAD0MBEAAQAAAMgDAAD4MBEAAQAAAMkDAAD8MBEAAgAAAMoDAAAEMREAAQAAAMsDAAAIMREAAQAAAMwDAAAMMREAAQAAAM0DAAAQMREAAQAAAM4DAAAUMREAAQAAAM8DAAAYMREAAQAAANADAAAcMREAAgAAANEDAAAkMREAAwAAANUDAAAwMREAAgAAANYDAAA4MREAAgAAANcDAABAMREAAQAAANgDAABEMREAAQAAANkDAABIMREAAQAAANoDAABMMREAAQAAANsDAABQMREAAQAAANwDAABUMREAAQAAAN0DAABYMREAAQAAAN4DAABcMREAAQAAAN8DAABgMREAAQAAAOADAABkMREAAQAAAOEDAABoMREAAQAAAOIDAABsMREAAQAAAOMDAABwMREAAQAAAOQDAAB0MREAAQAAAOUDAAB4MREAAQAAAOYDAAB8MREAAQAAAOcDAACAMREAAQAAAOgDAACEMREAAQAAAOkDAACIMREAAQAAAOoDAACMMREAAQAAAOsDAACQMREAAQAAAOwDAACUMREAAQAAAO0DAACYMREAAQAAAO4DAACcMREAAQAAAO8DAACgMREAAQAAAPADAACkMREAAgAAAPEDAACsMREAAgAAAPIDAAC0MREAAQAAAPMDAAC4MREAAQAAAPQDAAC8MREAAwAAAPUDAADIMREAAgAAAPcDAADQMREAAQAAAPgDAADUMREAAQAAAPkDAADYMREAAQAAAPoDAADcMREAAQAAAPsDAADgMREAAQAAAP0DAADkMREAAQAAAP4DAADoMREAAQAAAP8DAADsMREAAQAAAAAEAADwMREAAQAAAAEEAAD0MREAAQAAAAIEAAD4MREAAQAAAAMEAAD8MREAAQAAAAQEAAAAMhEAAQAAAAUEAAAEMhEAAQAAAAYEAAAIMhEAAQAAAAcEAAAMMhEAAQAAAAgEAAAQMhEAAQAAAAkEAAAUMhEAAQAAAAoEAAAYMhEAAQAAAAsEAAAcMhEAAQAAAAwEAAAgMhEAAQAAAA0EAAAkMhEAAQAAAA4EAAAoMhEAAQAAAA8EAAAsMhEAAQAAABAEAAAwMhEAAQAAABEEAAA0MhEAAQAAABIEAAA4MhEAAgAAABMEAABAMhEAAQAAABQEAABEMhEAAgAAABUEAABMMhEAAQAAABYEAABQMhEAAQAAABcEAABUMhEAAQAAABgEAABYMhEAAQAAABkEAABcMhEAAQAAABoEAABgMhEAAQAAABsEAABkMhEAAQAAABwEAABoMhEAAQAAAB0EAABsMhEAAQAAAB4EAABwMhEAAgAAAB8EAAB4MhEAAQAAACAEAAB8MhEAAQAAACEEAACAMhEAAgAAACIEAACIMhEAAwAAACMEAACUMhEAAQAAACQEAACYMhEAAQAAACUEAACcMhEAAQAAACYEAACgMhEAAQAAACcEAACkMhEAAQAAACgEAACoMhEAAQAAACkEAACsMhEAAQAAACoEAACwMhEAAgAAACsEAAC4MhEAAQAAACwEAAC8MhEAAQAAAC0EAADAMhEAAQAAAC4EAADEMhEAAQAAAC8EAADIMhEAAQAAADAEAADMMhEAAQAAADEEAADQMhEAAQAAADIEAADUMhEAAgAAADMEAADcMhEAAQAAADQEAADgMhEAAgAAADUEAADoMhEAAQAAADYEAADsMhEAAQAAADcEAADwMhEAAQAAADgEAAD0MhEAAQAAADkEAAD4MhEAAQAAADoEAAD8MhEAAQAAADsEAAAAMxEAAQAAADwEAAAEMxEAAQAAAD0EAAAIMxEAAQAAAD4EAAAMMxEAAgAAAD8EAAAUMxEAAQAAAEAEAAAYMxEAAQAAAEEEAAAcMxEAAgAAAEIEAAAkMxEAAwAAAEMEAAAwMxEAAQAAAEQEAAA0MxEAAQAAAEUEAAA4MxEAAQAAAEYEAAA8MxEAAQAAAEcEAABAMxEAAQAAAEgEAABEMxEAAQAAAEkEAABIMxEAAQAAAEoEAABMMxEAAgAAAEsEAABUMxEAAQAAAEwEAABYMxEAAQAAAE0EAABcMxEAAQAAAE4EAABgMxEAAQAAAE8EAABkMxEAAQAAAFAEAABoMxEAAQAAAFEEAABsMxEAAQAAAFIEAABwMxEAAQAAAFMEAAB0MxEAAQAAAFQEAAB4MxEAAQAAAFUEAAB8MxEAAQAAAFYEAACAMxEAAQAAAFcEAACEMxEAAQAAAFgEAACIMxEAAQAAAFkEAACMMxEAAQAAAFoEAACQMxEAAQAAAFsEAACUMxEAAQAAAFwEAACYMxEAAQAAAF0EAACcMxEAAQAAAF4EAACgMxEAAQAAAF8EAACkMxEAAQAAAGAEAACoMxEAAQAAAGEEAACsMxEAAQAAAGIEAACwMxEAAgAAAGMEAAC4MxEAAgAAAGQEAADAMxEAAQAAAGUEAADEMxEAAQAAAGYEAADIMxEAAQAAAGcEAADMMxEAAQAAAGgEAADQMxEAAQAAAGkEAADUMxEAAQAAAGoEAADYMxEAAQAAAGsEAADcMxEAAQAAAGwEAADgMxEAAQAAAG0EAADkMxEAAQAAAG4EAADoMxEAAQAAAG8EAADsMxEAAQAAAHAEAADwMxEAAQAAAHEEAAD0MxEAAQAAAHIEAAD4MxEAAQAAAHMEAAD8MxEAAQAAAHQEAAAANBEAAQAAAHUEAAAENBEAAQAAAHYEAAAINBEAAQAAAHcEAAAMNBEAAQAAAHgEAAAQNBEAAQAAAHkEAAAUNBEAAQAAAHoEAAAYNBEAAQAAAHsEAAAcNBEAAQAAAHwEAAAgNBEAAQAAAH0EAAAkNBEAAQAAAH4EAAAoNBEAAQAAAH8EAAAsNBEAAQAAAIAEAAAwNBEAAQAAAIEEAAA0NBEAAQAAAIoEAAA4NBEAAQAAAIsEAAA8NBEAAQAAAIwEAABANBEAAQAAAI0EAABENBEAAQAAAI4EAABINBEAAQAAAI8EAABMNBEAAQAAAJAEAABQNBEAAQAAAJEEAABUNBEAAQAAAJIEAABYNBEAAQAAAJMEAABcNBEAAQAAAJQEAABgNBEAAQAAAJUEAABkNBEAAQAAAJYEAABoNBEAAQAAAJcEAABsNBEAAQAAAJgEAABwNBEAAQAAAJkEAAB0NBEAAQAAAJoEAAB4NBEAAQAAAJsEAAB8NBEAAQAAAJwEAACANBEAAQAAAJ0EAACENBEAAQAAAJ4EAACINBEAAQAAAJ8EAACMNBEAAQAAAKAEAACQNBEAAQAAAKEEAACUNBEAAQAAAKIEAACYNBEAAQAAAKMEAACcNBEAAQAAAKQEAACgNBEAAQAAAKUEAACkNBEAAQAAAKYEAACoNBEAAQAAAKcEAACsNBEAAQAAAKgEAACwNBEAAQAAAKkEAAC0NBEAAQAAAKoEAAC4NBEAAQAAAKsEAAC8NBEAAQAAAKwEAADANBEAAQAAAK0EAADENBEAAQAAAK4EAADINBEAAQAAAK8EAADMNBEAAQAAALAEAADQNBEAAQAAALEEAADUNBEAAQAAALIEAADYNBEAAQAAALMEAADcNBEAAQAAALQEAADgNBEAAQAAALUEAADkNBEAAQAAALYEAADoNBEAAQAAALcEAADsNBEAAQAAALgEAADwNBEAAQAAALkEAAD0NBEAAQAAALoEAAD4NBEAAQAAALsEAAD8NBEAAQAAALwEAAAANREAAQAAAL0EAAAENREAAQAAAL4EAAAINREAAQAAAL8EAAAMNREAAQAAAMAEAAAQNREAAQAAAMEEAAAUNREAAQAAAMIEAAAYNREAAQAAAMMEAAAcNREAAQAAAMQEAAAgNREAAQAAAMUEAAAkNREAAQAAAMYEAAAoNREAAQAAAMcEAAAsNREAAQAAAMgEAAAwNREAAQAAAMkEAAA0NREAAQAAAMoEAAA4NREAAQAAAMsEAAA8NREAAQAAAMwEAABANREAAQAAAM0EAABENREAAQAAAM4EAABINREAAQAAAM8EAABMNREAAQAAANAEAABQNREAAQAAANEEAABUNREAAQAAANIEAABYNREAAQAAANMEAABcNREAAQAAANQEAABgNREAAQAAANUEAABkNREAAQAAANYEAABoNREAAQAAANcEAABsNREAAQAAANgEAABwNREAAQAAANkEAAB0NREAAQAAANoEAAB4NREAAQAAANsEAAB8NREAAQAAANwEAACANREAAQAAAN0EAACENREAAQAAAN4EAACINREAAQAAAN8EAACMNREAAQAAAOAEAACQNREAAQAAAOEEAACUNREAAQAAAOIEAACYNREAAQAAAOMEAACcNREAAQAAAOQEAACgNREAAQAAAOUEAACkNREAAQAAAOYEAACoNREAAQAAAOcEAACsNREAAQAAAOgEAACwNREAAQAAAOkEAAC0NREAAQAAAOoEAAC4NREAAQAAAOsEAAC8NREAAQAAAOwEAADANREAAQAAAO0EAADENREAAQAAAO4EAADINREAAQAAAO8EAADMNREAAQAAAPAEAADQNREAAQAAAPEEAADUNREAAQAAAPIEAADYNREAAQAAAPMEAADcNREAAQAAAPQEAADgNREAAQAAAPUEAADkNREAAQAAAPYEAADoNREAAQAAAPcEAADsNREAAQAAAPgEAADwNREAAQAAAPkEAAD0NREAAQAAAPoEAAD4NREAAQAAAPsEAAD8NREAAQAAAPwEAAAANhEAAQAAAP0EAAAENhEAAQAAAP4EAAAINhEAAQAAAP8EAAAMNhEAAQAAAAAFAAAQNhEAAQAAAAEFAAAUNhEAAQAAAAIFAAAYNhEAAQAAAAMFAAAcNhEAAQAAAAQFAAAgNhEAAQAAAAUFAAAkNhEAAQAAAAYFAAAoNhEAAQAAAAcFAAAsNhEAAQAAAAgFAAAwNhEAAQAAAAkFAAA0NhEAAQAAAAoFAAA4NhEAAQAAAAsFAAA8NhEAAQAAAAwFAABANhEAAQAAAA0FAABENhEAAQAAAA4FAABINhEAAQAAAA8FAABMNhEAAQAAABAFAABQNhEAAQAAABEFAABUNhEAAQAAABIFAABYNhEAAQAAABMFAABcNhEAAQAAABQFAABgNhEAAQAAABUFAABkNhEAAQAAABYFAABoNhEAAQAAABcFAABsNhEAAQAAABgFAABwNhEAAQAAABkFAAB0NhEAAQAAABoFAAB4NhEAAQAAABsFAAB8NhEAAQAAABwFAACANhEAAQAAAB0FAACENhEAAQAAAB4FAACINhEAAQAAAB8FAACMNhEAAQAAACAFAACQNhEAAQAAACEFAACUNhEAAQAAACIFAACYNhEAAQAAACMFAACcNhEAAQAAACQFAACgNhEAAQAAACUFAACkNhEAAQAAACYFAACoNhEAAQAAACcFAACsNhEAAQAAACgFAACwNhEAAQAAACkFAAC0NhEAAQAAACoFAAC4NhEAAQAAACsFAAC8NhEAAQAAACwFAADANhEAAQAAAC0FAADENhEAAQAAAC4FAADINhEAAQAAAC8FAADMNhEAAQAAADEFAADQNhEAAQAAADIFAADUNhEAAQAAADMFAADYNhEAAQAAADQFAADcNhEAAQAAADUFAADgNhEAAQAAADYFAADkNhEAAQAAADcFAADoNhEAAQAAADgFAADsNhEAAQAAADkFAADwNhEAAQAAADoFAAD0NhEAAQAAADsFAAD4NhEAAQAAADwFAAD8NhEAAQAAAD0FAAAANxEAAQAAAD4FAAAENxEAAQAAAD8FAAAINxEAAQAAAEAFAAAMNxEAAQAAAEEFAAAQNxEAAQAAAEIFAAAUNxEAAQAAAEMFAAAYNxEAAQAAAEQFAAAcNxEAAQAAAEUFAAAgNxEAAQAAAEYFAAAkNxEAAQAAAEcFAAAoNxEAAQAAAEgFAAAsNxEAAQAAAEkFAAAwNxEAAQAAAEoFAAA0NxEAAQAAAEsFAAA4NxEAAQAAAEwFAAA8NxEAAQAAAE0FAABANxEAAQAAAE4FAABENxEAAQAAAE8FAABINxEAAQAAAFAFAABMNxEAAQAAAFEFAABQNxEAAQAAAFIFAABUNxEAAQAAAFMFAABYNxEAAQAAAFQFAABcNxEAAQAAAFUFAABgNxEAAQAAAFYFAABkNxEAAQAAAGEFAABoNxEAAQAAAGIFAABsNxEAAQAAAGMFAABwNxEAAQAAAGQFAAB0NxEAAQAAAGUFAAB4NxEAAQAAAGYFAAB8NxEAAQAAAGcFAACANxEAAQAAAGgFAACENxEAAQAAAGkFAACINxEAAQAAAGoFAACMNxEAAQAAAGsFAACQNxEAAQAAAGwFAACUNxEAAQAAAG0FAACYNxEAAQAAAG4FAACcNxEAAQAAAG8FAACgNxEAAQAAAHAFAACkNxEAAQAAAHEFAACoNxEAAQAAAHIFAACsNxEAAQAAAHMFAACwNxEAAQAAAHQFAAC0NxEAAQAAAHUFAAC4NxEAAQAAAHYFAAC8NxEAAQAAAHcFAADANxEAAQAAAHgFAADENxEAAQAAAHkFAADINxEAAQAAAHoFAADMNxEAAQAAAHsFAADQNxEAAQAAAHwFAADUNxEAAQAAAH0FAADYNxEAAQAAAH4FAADcNxEAAQAAAH8FAADgNxEAAQAAAIAFAADkNxEAAQAAAIEFAADoNxEAAQAAAIIFAADsNxEAAQAAAIMFAADwNxEAAQAAAIQFAAD0NxEAAQAAAIUFAAD4NxEAAQAAAIYFAAD8NxEAAQAAAKAQAAAAOBEAAQAAAKEQAAAEOBEAAQAAAKIQAAAIOBEAAQAAAKMQAAAMOBEAAQAAAKQQAAAQOBEAAQAAAKUQAAAUOBEAAQAAAKYQAAAYOBEAAQAAAKcQAAAcOBEAAQAAAKgQAAAgOBEAAQAAAKkQAAAkOBEAAQAAAKoQAAAoOBEAAQAAAKsQAAAsOBEAAQAAAKwQAAAwOBEAAQAAAK0QAAA0OBEAAQAAAK4QAAA4OBEAAQAAAK8QAAA8OBEAAQAAALAQAABAOBEAAQAAALEQAABEOBEAAQAAALIQAABIOBEAAQAAALMQAABMOBEAAQAAALQQAABQOBEAAQAAALUQAABUOBEAAQAAALYQAABYOBEAAQAAALcQAABcOBEAAQAAALgQAABgOBEAAQAAALkQAABkOBEAAQAAALoQAABoOBEAAQAAALsQAABsOBEAAQAAALwQAABwOBEAAQAAAL0QAAB0OBEAAQAAAL4QAAB4OBEAAQAAAL8QAAB8OBEAAQAAAMAQAACAOBEAAQAAAMEQAACEOBEAAQAAAMIQAACIOBEAAQAAAMMQAACMOBEAAQAAAMQQAACQOBEAAQAAAMUQAACUOBEAAQAAAMcQAACYOBEAAQAAAM0QAACcOBEAAQAAANAQAACgOBEAAQAAANEQAACkOBEAAQAAANIQAACoOBEAAQAAANMQAACsOBEAAQAAANQQAACwOBEAAQAAANUQAAC0OBEAAQAAANYQAAC4OBEAAQAAANcQAAC8OBEAAQAAANgQAADAOBEAAQAAANkQAADEOBEAAQAAANoQAADIOBEAAQAAANsQAADMOBEAAQAAANwQAADQOBEAAQAAAN0QAADUOBEAAQAAAN4QAADYOBEAAQAAAN8QAADcOBEAAQAAAOAQAADgOBEAAQAAAOEQAADkOBEAAQAAAOIQAADoOBEAAQAAAOMQAADsOBEAAQAAAOQQAADwOBEAAQAAAOUQAAD0OBEAAQAAAOYQAAD4OBEAAQAAAOcQAAD8OBEAAQAAAOgQAAAAOREAAQAAAOkQAAAEOREAAQAAAOoQAAAIOREAAQAAAOsQAAAMOREAAQAAAOwQAAAQOREAAQAAAO0QAAAUOREAAQAAAO4QAAAYOREAAQAAAO8QAAAcOREAAQAAAPAQAAAgOREAAQAAAPEQAAAkOREAAQAAAPIQAAAoOREAAQAAAPMQAAAsOREAAQAAAPQQAAAwOREAAQAAAPUQAAA0OREAAQAAAPYQAAA4OREAAQAAAPcQAAA8OREAAQAAAPgQAABAOREAAQAAAPkQAABEOREAAQAAAPoQAABIOREAAQAAAP0QAABMOREAAQAAAP4QAABQOREAAQAAAP8QAABUOREAAQAAAKATAABYOREAAQAAAKETAABcOREAAQAAAKITAABgOREAAQAAAKMTAABkOREAAQAAAKQTAABoOREAAQAAAKUTAABsOREAAQAAAKYTAABwOREAAQAAAKcTAAB0OREAAQAAAKgTAAB4OREAAQAAAKkTAAB8OREAAQAAAKoTAACAOREAAQAAAKsTAACEOREAAQAAAKwTAACIOREAAQAAAK0TAACMOREAAQAAAK4TAACQOREAAQAAAK8TAACUOREAAQAAALATAACYOREAAQAAALETAACcOREAAQAAALITAACgOREAAQAAALMTAACkOREAAQAAALQTAACoOREAAQAAALUTAACsOREAAQAAALYTAACwOREAAQAAALcTAAC0OREAAQAAALgTAAC4OREAAQAAALkTAAC8OREAAQAAALoTAADAOREAAQAAALsTAADEOREAAQAAALwTAADIOREAAQAAAL0TAADMOREAAQAAAL4TAADQOREAAQAAAL8TAADUOREAAQAAAMATAADYOREAAQAAAMETAADcOREAAQAAAMITAADgOREAAQAAAMMTAADkOREAAQAAAMQTAADoOREAAQAAAMUTAADsOREAAQAAAMYTAADwOREAAQAAAMcTAAD0OREAAQAAAMgTAAD4OREAAQAAAMkTAAD8OREAAQAAAMoTAAAAOhEAAQAAAMsTAAAEOhEAAQAAAMwTAAAIOhEAAQAAAM0TAAAMOhEAAQAAAM4TAAAQOhEAAQAAAM8TAAAUOhEAAQAAANATAAAYOhEAAQAAANETAAAcOhEAAQAAANITAAAgOhEAAQAAANMTAAAkOhEAAQAAANQTAAAoOhEAAQAAANUTAAAsOhEAAQAAANYTAAAwOhEAAQAAANcTAAA0OhEAAQAAANgTAAA4OhEAAQAAANkTAAA8OhEAAQAAANoTAABAOhEAAQAAANsTAABEOhEAAQAAANwTAABIOhEAAQAAAN0TAABMOhEAAQAAAN4TAABQOhEAAQAAAN8TAABUOhEAAQAAAOATAABYOhEAAQAAAOETAABcOhEAAQAAAOITAABgOhEAAQAAAOMTAABkOhEAAQAAAOQTAABoOhEAAQAAAOUTAABsOhEAAQAAAOYTAABwOhEAAQAAAOcTAAB0OhEAAQAAAOgTAAB4OhEAAQAAAOkTAAB8OhEAAQAAAOoTAACAOhEAAQAAAOsTAACEOhEAAQAAAOwTAACIOhEAAQAAAO0TAACMOhEAAQAAAO4TAACQOhEAAQAAAO8TAACUOhEAAQAAAPATAACYOhEAAQAAAPETAACcOhEAAQAAAPITAACgOhEAAQAAAPMTAACkOhEAAQAAAPQTAACoOhEAAQAAAPUTAACsOhEAAQAAAPgTAACwOhEAAQAAAPkTAAC0OhEAAQAAAPoTAAC4OhEAAQAAAPsTAAC8OhEAAQAAAPwTAADAOhEAAQAAAP0TAADEOhEAAQAAAIAcAADIOhEAAgAAAIEcAADQOhEAAgAAAIIcAADYOhEAAgAAAIMcAADgOhEAAgAAAIQcAADoOhEAAwAAAIUcAAD0OhEAAwAAAIYcAAAAOxEAAgAAAIccAAAIOxEAAgAAAIgcAAAQOxEAAgAAAJAcAAAYOxEAAQAAAJEcAAAcOxEAAQAAAJIcAAAgOxEAAQAAAJMcAAAkOxEAAQAAAJQcAAAoOxEAAQAAAJUcAAAsOxEAAQAAAJYcAAAwOxEAAQAAAJccAAA0OxEAAQAAAJgcAAA4OxEAAQAAAJkcAAA8OxEAAQAAAJocAABAOxEAAQAAAJscAABEOxEAAQAAAJwcAABIOxEAAQAAAJ0cAABMOxEAAQAAAJ4cAABQOxEAAQAAAJ8cAABUOxEAAQAAAKAcAABYOxEAAQAAAKEcAABcOxEAAQAAAKIcAABgOxEAAQAAAKMcAABkOxEAAQAAAKQcAABoOxEAAQAAAKUcAABsOxEAAQAAAKYcAABwOxEAAQAAAKccAAB0OxEAAQAAAKgcAAB4OxEAAQAAAKkcAAB8OxEAAQAAAKocAACAOxEAAQAAAKscAACEOxEAAQAAAKwcAACIOxEAAQAAAK0cAACMOxEAAQAAAK4cAACQOxEAAQAAAK8cAACUOxEAAQAAALAcAACYOxEAAQAAALEcAACcOxEAAQAAALIcAACgOxEAAQAAALMcAACkOxEAAQAAALQcAACoOxEAAQAAALUcAACsOxEAAQAAALYcAACwOxEAAQAAALccAAC0OxEAAQAAALgcAAC4OxEAAQAAALkcAAC8OxEAAQAAALocAADAOxEAAQAAAL0cAADEOxEAAQAAAL4cAADIOxEAAQAAAL8cAADMOxEAAQAAAHkdAADQOxEAAQAAAH0dAADUOxEAAQAAAI4dAADYOxEAAQAAAAAeAADcOxEAAQAAAAEeAADgOxEAAQAAAAIeAADkOxEAAQAAAAMeAADoOxEAAQAAAAQeAADsOxEAAQAAAAUeAADwOxEAAQAAAAYeAAD0OxEAAQAAAAceAAD4OxEAAQAAAAgeAAD8OxEAAQAAAAkeAAAAPBEAAQAAAAoeAAAEPBEAAQAAAAseAAAIPBEAAQAAAAweAAAMPBEAAQAAAA0eAAAQPBEAAQAAAA4eAAAUPBEAAQAAAA8eAAAYPBEAAQAAABAeAAAcPBEAAQAAABEeAAAgPBEAAQAAABIeAAAkPBEAAQAAABMeAAAoPBEAAQAAABQeAAAsPBEAAQAAABUeAAAwPBEAAQAAABYeAAA0PBEAAQAAABceAAA4PBEAAQAAABgeAAA8PBEAAQAAABkeAABAPBEAAQAAABoeAABEPBEAAQAAABseAABIPBEAAQAAABweAABMPBEAAQAAAB0eAABQPBEAAQAAAB4eAABUPBEAAQAAAB8eAABYPBEAAQAAACAeAABcPBEAAQAAACEeAABgPBEAAQAAACIeAABkPBEAAQAAACMeAABoPBEAAQAAACQeAABsPBEAAQAAACUeAABwPBEAAQAAACYeAAB0PBEAAQAAACceAAB4PBEAAQAAACgeAAB8PBEAAQAAACkeAACAPBEAAQAAACoeAACEPBEAAQAAACseAACIPBEAAQAAACweAACMPBEAAQAAAC0eAACQPBEAAQAAAC4eAACUPBEAAQAAAC8eAACYPBEAAQAAADAeAACcPBEAAQAAADEeAACgPBEAAQAAADIeAACkPBEAAQAAADMeAACoPBEAAQAAADQeAACsPBEAAQAAADUeAACwPBEAAQAAADYeAAC0PBEAAQAAADceAAC4PBEAAQAAADgeAAC8PBEAAQAAADkeAADAPBEAAQAAADoeAADEPBEAAQAAADseAADIPBEAAQAAADweAADMPBEAAQAAAD0eAADQPBEAAQAAAD4eAADUPBEAAQAAAD8eAADYPBEAAQAAAEAeAADcPBEAAQAAAEEeAADgPBEAAQAAAEIeAADkPBEAAQAAAEMeAADoPBEAAQAAAEQeAADsPBEAAQAAAEUeAADwPBEAAQAAAEYeAAD0PBEAAQAAAEceAAD4PBEAAQAAAEgeAAD8PBEAAQAAAEkeAAAAPREAAQAAAEoeAAAEPREAAQAAAEseAAAIPREAAQAAAEweAAAMPREAAQAAAE0eAAAQPREAAQAAAE4eAAAUPREAAQAAAE8eAAAYPREAAQAAAFAeAAAcPREAAQAAAFEeAAAgPREAAQAAAFIeAAAkPREAAQAAAFMeAAAoPREAAQAAAFQeAAAsPREAAQAAAFUeAAAwPREAAQAAAFYeAAA0PREAAQAAAFceAAA4PREAAQAAAFgeAAA8PREAAQAAAFkeAABAPREAAQAAAFoeAABEPREAAQAAAFseAABIPREAAQAAAFweAABMPREAAQAAAF0eAABQPREAAQAAAF4eAABUPREAAQAAAF8eAABYPREAAQAAAGAeAABcPREAAgAAAGEeAABkPREAAgAAAGIeAABsPREAAQAAAGMeAABwPREAAQAAAGQeAAB0PREAAQAAAGUeAAB4PREAAQAAAGYeAAB8PREAAQAAAGceAACAPREAAQAAAGgeAACEPREAAQAAAGkeAACIPREAAQAAAGoeAACMPREAAQAAAGseAACQPREAAQAAAGweAACUPREAAQAAAG0eAACYPREAAQAAAG4eAACcPREAAQAAAG8eAACgPREAAQAAAHAeAACkPREAAQAAAHEeAACoPREAAQAAAHIeAACsPREAAQAAAHMeAACwPREAAQAAAHQeAAC0PREAAQAAAHUeAAC4PREAAQAAAHYeAAC8PREAAQAAAHceAADAPREAAQAAAHgeAADEPREAAQAAAHkeAADIPREAAQAAAHoeAADMPREAAQAAAHseAADQPREAAQAAAHweAADUPREAAQAAAH0eAADYPREAAQAAAH4eAADcPREAAQAAAH8eAADgPREAAQAAAIAeAADkPREAAQAAAIEeAADoPREAAQAAAIIeAADsPREAAQAAAIMeAADwPREAAQAAAIQeAAD0PREAAQAAAIUeAAD4PREAAQAAAIYeAAD8PREAAQAAAIceAAAAPhEAAQAAAIgeAAAEPhEAAQAAAIkeAAAIPhEAAQAAAIoeAAAMPhEAAQAAAIseAAAQPhEAAQAAAIweAAAUPhEAAQAAAI0eAAAYPhEAAQAAAI4eAAAcPhEAAQAAAI8eAAAgPhEAAQAAAJAeAAAkPhEAAQAAAJEeAAAoPhEAAQAAAJIeAAAsPhEAAQAAAJMeAAAwPhEAAQAAAJQeAAA0PhEAAQAAAJUeAAA4PhEAAQAAAJseAAA8PhEAAgAAAJ4eAABEPhEAAQAAAKAeAABIPhEAAQAAAKEeAABMPhEAAQAAAKIeAABQPhEAAQAAAKMeAABUPhEAAQAAAKQeAABYPhEAAQAAAKUeAABcPhEAAQAAAKYeAABgPhEAAQAAAKceAABkPhEAAQAAAKgeAABoPhEAAQAAAKkeAABsPhEAAQAAAKoeAABwPhEAAQAAAKseAAB0PhEAAQAAAKweAAB4PhEAAQAAAK0eAAB8PhEAAQAAAK4eAACAPhEAAQAAAK8eAACEPhEAAQAAALAeAACIPhEAAQAAALEeAACMPhEAAQAAALIeAACQPhEAAQAAALMeAACUPhEAAQAAALQeAACYPhEAAQAAALUeAACcPhEAAQAAALYeAACgPhEAAQAAALceAACkPhEAAQAAALgeAACoPhEAAQAAALkeAACsPhEAAQAAALoeAACwPhEAAQAAALseAAC0PhEAAQAAALweAAC4PhEAAQAAAL0eAAC8PhEAAQAAAL4eAADAPhEAAQAAAL8eAADEPhEAAQAAAMAeAADIPhEAAQAAAMEeAADMPhEAAQAAAMIeAADQPhEAAQAAAMMeAADUPhEAAQAAAMQeAADYPhEAAQAAAMUeAADcPhEAAQAAAMYeAADgPhEAAQAAAMceAADkPhEAAQAAAMgeAADoPhEAAQAAAMkeAADsPhEAAQAAAMoeAADwPhEAAQAAAMseAAD0PhEAAQAAAMweAAD4PhEAAQAAAM0eAAD8PhEAAQAAAM4eAAAAPxEAAQAAAM8eAAAEPxEAAQAAANAeAAAIPxEAAQAAANEeAAAMPxEAAQAAANIeAAAQPxEAAQAAANMeAAAUPxEAAQAAANQeAAAYPxEAAQAAANUeAAAcPxEAAQAAANYeAAAgPxEAAQAAANceAAAkPxEAAQAAANgeAAAoPxEAAQAAANkeAAAsPxEAAQAAANoeAAAwPxEAAQAAANseAAA0PxEAAQAAANweAAA4PxEAAQAAAN0eAAA8PxEAAQAAAN4eAABAPxEAAQAAAN8eAABEPxEAAQAAAOAeAABIPxEAAQAAAOEeAABMPxEAAQAAAOIeAABQPxEAAQAAAOMeAABUPxEAAQAAAOQeAABYPxEAAQAAAOUeAABcPxEAAQAAAOYeAABgPxEAAQAAAOceAABkPxEAAQAAAOgeAABoPxEAAQAAAOkeAABsPxEAAQAAAOoeAABwPxEAAQAAAOseAAB0PxEAAQAAAOweAAB4PxEAAQAAAO0eAAB8PxEAAQAAAO4eAACAPxEAAQAAAO8eAACEPxEAAQAAAPAeAACIPxEAAQAAAPEeAACMPxEAAQAAAPIeAACQPxEAAQAAAPMeAACUPxEAAQAAAPQeAACYPxEAAQAAAPUeAACcPxEAAQAAAPYeAACgPxEAAQAAAPceAACkPxEAAQAAAPgeAACoPxEAAQAAAPkeAACsPxEAAQAAAPoeAACwPxEAAQAAAPseAAC0PxEAAQAAAPweAAC4PxEAAQAAAP0eAAC8PxEAAQAAAP4eAADAPxEAAQAAAP8eAADEPxEAAQAAAAAfAADIPxEAAQAAAAEfAADMPxEAAQAAAAIfAADQPxEAAQAAAAMfAADUPxEAAQAAAAQfAADYPxEAAQAAAAUfAADcPxEAAQAAAAYfAADgPxEAAQAAAAcfAADkPxEAAQAAAAgfAADoPxEAAQAAAAkfAADsPxEAAQAAAAofAADwPxEAAQAAAAsfAAD0PxEAAQAAAAwfAAD4PxEAAQAAAA0fAAD8PxEAAQAAAA4fAAAAQBEAAQAAAA8fAAAEQBEAAQAAABAfAAAIQBEAAQAAABEfAAAMQBEAAQAAABIfAAAQQBEAAQAAABMfAAAUQBEAAQAAABQfAAAYQBEAAQAAABUfAAAcQBEAAQAAABgfAAAgQBEAAQAAABkfAAAkQBEAAQAAABofAAAoQBEAAQAAABsfAAAsQBEAAQAAABwfAAAwQBEAAQAAAB0fAAA0QBEAAQAAACAfAAA4QBEAAQAAACEfAAA8QBEAAQAAACIfAABAQBEAAQAAACMfAABEQBEAAQAAACQfAABIQBEAAQAAACUfAABMQBEAAQAAACYfAABQQBEAAQAAACcfAABUQBEAAQAAACgfAABYQBEAAQAAACkfAABcQBEAAQAAACofAABgQBEAAQAAACsfAABkQBEAAQAAACwfAABoQBEAAQAAAC0fAABsQBEAAQAAAC4fAABwQBEAAQAAAC8fAAB0QBEAAQAAADAfAAB4QBEAAQAAADEfAAB8QBEAAQAAADIfAACAQBEAAQAAADMfAACEQBEAAQAAADQfAACIQBEAAQAAADUfAACMQBEAAQAAADYfAACQQBEAAQAAADcfAACUQBEAAQAAADgfAACYQBEAAQAAADkfAACcQBEAAQAAADofAACgQBEAAQAAADsfAACkQBEAAQAAADwfAACoQBEAAQAAAD0fAACsQBEAAQAAAD4fAACwQBEAAQAAAD8fAAC0QBEAAQAAAEAfAAC4QBEAAQAAAEEfAAC8QBEAAQAAAEIfAADAQBEAAQAAAEMfAADEQBEAAQAAAEQfAADIQBEAAQAAAEUfAADMQBEAAQAAAEgfAADQQBEAAQAAAEkfAADUQBEAAQAAAEofAADYQBEAAQAAAEsfAADcQBEAAQAAAEwfAADgQBEAAQAAAE0fAADkQBEAAQAAAFEfAADoQBEAAQAAAFMfAADsQBEAAQAAAFUfAADwQBEAAQAAAFcfAAD0QBEAAQAAAFkfAAD4QBEAAQAAAFsfAAD8QBEAAQAAAF0fAAAAQREAAQAAAF8fAAAEQREAAQAAAGAfAAAIQREAAQAAAGEfAAAMQREAAQAAAGIfAAAQQREAAQAAAGMfAAAUQREAAQAAAGQfAAAYQREAAQAAAGUfAAAcQREAAQAAAGYfAAAgQREAAQAAAGcfAAAkQREAAQAAAGgfAAAoQREAAQAAAGkfAAAsQREAAQAAAGofAAAwQREAAQAAAGsfAAA0QREAAQAAAGwfAAA4QREAAQAAAG0fAAA8QREAAQAAAG4fAABAQREAAQAAAG8fAABEQREAAQAAAHAfAABIQREAAQAAAHEfAABMQREAAQAAAHIfAABQQREAAQAAAHMfAABUQREAAQAAAHQfAABYQREAAQAAAHUfAABcQREAAQAAAHYfAABgQREAAQAAAHcfAABkQREAAQAAAHgfAABoQREAAQAAAHkfAABsQREAAQAAAHofAABwQREAAQAAAHsfAAB0QREAAQAAAHwfAAB4QREAAQAAAH0fAAB8QREAAQAAAIAfAACAQREAAQAAAIEfAACEQREAAQAAAIIfAACIQREAAQAAAIMfAACMQREAAQAAAIQfAACQQREAAQAAAIUfAACUQREAAQAAAIYfAACYQREAAQAAAIcfAACcQREAAQAAAIgfAACgQREAAQAAAIkfAACkQREAAQAAAIofAACoQREAAQAAAIsfAACsQREAAQAAAIwfAACwQREAAQAAAI0fAAC0QREAAQAAAI4fAAC4QREAAQAAAI8fAAC8QREAAQAAAJAfAADAQREAAQAAAJEfAADEQREAAQAAAJIfAADIQREAAQAAAJMfAADMQREAAQAAAJQfAADQQREAAQAAAJUfAADUQREAAQAAAJYfAADYQREAAQAAAJcfAADcQREAAQAAAJgfAADgQREAAQAAAJkfAADkQREAAQAAAJofAADoQREAAQAAAJsfAADsQREAAQAAAJwfAADwQREAAQAAAJ0fAAD0QREAAQAAAJ4fAAD4QREAAQAAAJ8fAAD8QREAAQAAAKAfAAAAQhEAAQAAAKEfAAAEQhEAAQAAAKIfAAAIQhEAAQAAAKMfAAAMQhEAAQAAAKQfAAAQQhEAAQAAAKUfAAAUQhEAAQAAAKYfAAAYQhEAAQAAAKcfAAAcQhEAAQAAAKgfAAAgQhEAAQAAAKkfAAAkQhEAAQAAAKofAAAoQhEAAQAAAKsfAAAsQhEAAQAAAKwfAAAwQhEAAQAAAK0fAAA0QhEAAQAAAK4fAAA4QhEAAQAAAK8fAAA8QhEAAQAAALAfAABAQhEAAQAAALEfAABEQhEAAQAAALMfAABIQhEAAQAAALgfAABMQhEAAQAAALkfAABQQhEAAQAAALofAABUQhEAAQAAALsfAABYQhEAAQAAALwfAABcQhEAAQAAAL4fAABgQhEAAwAAAMMfAABsQhEAAQAAAMgfAABwQhEAAQAAAMkfAAB0QhEAAQAAAMofAAB4QhEAAQAAAMsfAAB8QhEAAQAAAMwfAACAQhEAAQAAANAfAACEQhEAAQAAANEfAACIQhEAAQAAANgfAACMQhEAAQAAANkfAACQQhEAAQAAANofAACUQhEAAQAAANsfAACYQhEAAQAAAOAfAACcQhEAAQAAAOEfAACgQhEAAQAAAOUfAACkQhEAAQAAAOgfAACoQhEAAQAAAOkfAACsQhEAAQAAAOofAACwQhEAAQAAAOsfAAC0QhEAAQAAAOwfAAC4QhEAAQAAAPMfAAC8QhEAAQAAAPgfAADAQhEAAQAAAPkfAADEQhEAAQAAAPofAADIQhEAAQAAAPsfAADMQhEAAQAAAPwfAADQQhEAAQAAACYhAADUQhEAAgAAACohAADcQhEAAgAAACshAADkQhEAAgAAADIhAADsQhEAAQAAAE4hAADwQhEAAQAAAGAhAAD0QhEAAQAAAGEhAAD4QhEAAQAAAGIhAAD8QhEAAQAAAGMhAAAAQxEAAQAAAGQhAAAEQxEAAQAAAGUhAAAIQxEAAQAAAGYhAAAMQxEAAQAAAGchAAAQQxEAAQAAAGghAAAUQxEAAQAAAGkhAAAYQxEAAQAAAGohAAAcQxEAAQAAAGshAAAgQxEAAQAAAGwhAAAkQxEAAQAAAG0hAAAoQxEAAQAAAG4hAAAsQxEAAQAAAG8hAAAwQxEAAQAAAHAhAAA0QxEAAQAAAHEhAAA4QxEAAQAAAHIhAAA8QxEAAQAAAHMhAABAQxEAAQAAAHQhAABEQxEAAQAAAHUhAABIQxEAAQAAAHYhAABMQxEAAQAAAHchAABQQxEAAQAAAHghAABUQxEAAQAAAHkhAABYQxEAAQAAAHohAABcQxEAAQAAAHshAABgQxEAAQAAAHwhAABkQxEAAQAAAH0hAABoQxEAAQAAAH4hAABsQxEAAQAAAH8hAABwQxEAAQAAAIMhAAB0QxEAAQAAAIQhAAB4QxEAAQAAALYkAAB8QxEAAQAAALckAACAQxEAAQAAALgkAACEQxEAAQAAALkkAACIQxEAAQAAALokAACMQxEAAQAAALskAACQQxEAAQAAALwkAACUQxEAAQAAAL0kAACYQxEAAQAAAL4kAACcQxEAAQAAAL8kAACgQxEAAQAAAMAkAACkQxEAAQAAAMEkAACoQxEAAQAAAMIkAACsQxEAAQAAAMMkAACwQxEAAQAAAMQkAAC0QxEAAQAAAMUkAAC4QxEAAQAAAMYkAAC8QxEAAQAAAMckAADAQxEAAQAAAMgkAADEQxEAAQAAAMkkAADIQxEAAQAAAMokAADMQxEAAQAAAMskAADQQxEAAQAAAMwkAADUQxEAAQAAAM0kAADYQxEAAQAAAM4kAADcQxEAAQAAAM8kAADgQxEAAQAAANAkAADkQxEAAQAAANEkAADoQxEAAQAAANIkAADsQxEAAQAAANMkAADwQxEAAQAAANQkAAD0QxEAAQAAANUkAAD4QxEAAQAAANYkAAD8QxEAAQAAANckAAAARBEAAQAAANgkAAAERBEAAQAAANkkAAAIRBEAAQAAANokAAAMRBEAAQAAANskAAAQRBEAAQAAANwkAAAURBEAAQAAAN0kAAAYRBEAAQAAAN4kAAAcRBEAAQAAAN8kAAAgRBEAAQAAAOAkAAAkRBEAAQAAAOEkAAAoRBEAAQAAAOIkAAAsRBEAAQAAAOMkAAAwRBEAAQAAAOQkAAA0RBEAAQAAAOUkAAA4RBEAAQAAAOYkAAA8RBEAAQAAAOckAABARBEAAQAAAOgkAABERBEAAQAAAOkkAABIRBEAAQAAAAAsAABMRBEAAQAAAAEsAABQRBEAAQAAAAIsAABURBEAAQAAAAMsAABYRBEAAQAAAAQsAABcRBEAAQAAAAUsAABgRBEAAQAAAAYsAABkRBEAAQAAAAcsAABoRBEAAQAAAAgsAABsRBEAAQAAAAksAABwRBEAAQAAAAosAAB0RBEAAQAAAAssAAB4RBEAAQAAAAwsAAB8RBEAAQAAAA0sAACARBEAAQAAAA4sAACERBEAAQAAAA8sAACIRBEAAQAAABAsAACMRBEAAQAAABEsAACQRBEAAQAAABIsAACURBEAAQAAABMsAACYRBEAAQAAABQsAACcRBEAAQAAABUsAACgRBEAAQAAABYsAACkRBEAAQAAABcsAACoRBEAAQAAABgsAACsRBEAAQAAABksAACwRBEAAQAAABosAAC0RBEAAQAAABssAAC4RBEAAQAAABwsAAC8RBEAAQAAAB0sAADARBEAAQAAAB4sAADERBEAAQAAAB8sAADIRBEAAQAAACAsAADMRBEAAQAAACEsAADQRBEAAQAAACIsAADURBEAAQAAACMsAADYRBEAAQAAACQsAADcRBEAAQAAACUsAADgRBEAAQAAACYsAADkRBEAAQAAACcsAADoRBEAAQAAACgsAADsRBEAAQAAACksAADwRBEAAQAAACosAAD0RBEAAQAAACssAAD4RBEAAQAAACwsAAD8RBEAAQAAAC0sAAAARREAAQAAAC4sAAAERREAAQAAAC8sAAAIRREAAQAAADAsAAAMRREAAQAAADEsAAAQRREAAQAAADIsAAAURREAAQAAADMsAAAYRREAAQAAADQsAAAcRREAAQAAADUsAAAgRREAAQAAADYsAAAkRREAAQAAADcsAAAoRREAAQAAADgsAAAsRREAAQAAADksAAAwRREAAQAAADosAAA0RREAAQAAADssAAA4RREAAQAAADwsAAA8RREAAQAAAD0sAABARREAAQAAAD4sAABERREAAQAAAD8sAABIRREAAQAAAEAsAABMRREAAQAAAEEsAABQRREAAQAAAEIsAABURREAAQAAAEMsAABYRREAAQAAAEQsAABcRREAAQAAAEUsAABgRREAAQAAAEYsAABkRREAAQAAAEcsAABoRREAAQAAAEgsAABsRREAAQAAAEksAABwRREAAQAAAEosAAB0RREAAQAAAEssAAB4RREAAQAAAEwsAAB8RREAAQAAAE0sAACARREAAQAAAE4sAACERREAAQAAAE8sAACIRREAAQAAAFAsAACMRREAAQAAAFEsAACQRREAAQAAAFIsAACURREAAQAAAFMsAACYRREAAQAAAFQsAACcRREAAQAAAFUsAACgRREAAQAAAFYsAACkRREAAQAAAFcsAACoRREAAQAAAFgsAACsRREAAQAAAFksAACwRREAAQAAAFosAAC0RREAAQAAAFssAAC4RREAAQAAAFwsAAC8RREAAQAAAF0sAADARREAAQAAAF4sAADERREAAQAAAF8sAADIRREAAQAAAGAsAADMRREAAQAAAGEsAADQRREAAQAAAGIsAADURREAAQAAAGMsAADYRREAAQAAAGQsAADcRREAAQAAAGUsAADgRREAAQAAAGYsAADkRREAAQAAAGcsAADoRREAAQAAAGgsAADsRREAAQAAAGksAADwRREAAQAAAGosAAD0RREAAQAAAGssAAD4RREAAQAAAGwsAAD8RREAAQAAAG0sAAAARhEAAQAAAG4sAAAERhEAAQAAAG8sAAAIRhEAAQAAAHAsAAAMRhEAAQAAAHIsAAAQRhEAAQAAAHMsAAAURhEAAQAAAHUsAAAYRhEAAQAAAHYsAAAcRhEAAQAAAH4sAAAgRhEAAQAAAH8sAAAkRhEAAQAAAIAsAAAoRhEAAQAAAIEsAAAsRhEAAQAAAIIsAAAwRhEAAQAAAIMsAAA0RhEAAQAAAIQsAAA4RhEAAQAAAIUsAAA8RhEAAQAAAIYsAABARhEAAQAAAIcsAABERhEAAQAAAIgsAABIRhEAAQAAAIksAABMRhEAAQAAAIosAABQRhEAAQAAAIssAABURhEAAQAAAIwsAABYRhEAAQAAAI0sAABcRhEAAQAAAI4sAABgRhEAAQAAAI8sAABkRhEAAQAAAJAsAABoRhEAAQAAAJEsAABsRhEAAQAAAJIsAABwRhEAAQAAAJMsAAB0RhEAAQAAAJQsAAB4RhEAAQAAAJUsAAB8RhEAAQAAAJYsAACARhEAAQAAAJcsAACERhEAAQAAAJgsAACIRhEAAQAAAJksAACMRhEAAQAAAJosAACQRhEAAQAAAJssAACURhEAAQAAAJwsAACYRhEAAQAAAJ0sAACcRhEAAQAAAJ4sAACgRhEAAQAAAJ8sAACkRhEAAQAAAKAsAACoRhEAAQAAAKEsAACsRhEAAQAAAKIsAACwRhEAAQAAAKMsAAC0RhEAAQAAAKQsAAC4RhEAAQAAAKUsAAC8RhEAAQAAAKYsAADARhEAAQAAAKcsAADERhEAAQAAAKgsAADIRhEAAQAAAKksAADMRhEAAQAAAKosAADQRhEAAQAAAKssAADURhEAAQAAAKwsAADYRhEAAQAAAK0sAADcRhEAAQAAAK4sAADgRhEAAQAAAK8sAADkRhEAAQAAALAsAADoRhEAAQAAALEsAADsRhEAAQAAALIsAADwRhEAAQAAALMsAAD0RhEAAQAAALQsAAD4RhEAAQAAALUsAAD8RhEAAQAAALYsAAAARxEAAQAAALcsAAAERxEAAQAAALgsAAAIRxEAAQAAALksAAAMRxEAAQAAALosAAAQRxEAAQAAALssAAAURxEAAQAAALwsAAAYRxEAAQAAAL0sAAAcRxEAAQAAAL4sAAAgRxEAAQAAAL8sAAAkRxEAAQAAAMAsAAAoRxEAAQAAAMEsAAAsRxEAAQAAAMIsAAAwRxEAAQAAAMMsAAA0RxEAAQAAAMQsAAA4RxEAAQAAAMUsAAA8RxEAAQAAAMYsAABARxEAAQAAAMcsAABERxEAAQAAAMgsAABIRxEAAQAAAMksAABMRxEAAQAAAMosAABQRxEAAQAAAMssAABURxEAAQAAAMwsAABYRxEAAQAAAM0sAABcRxEAAQAAAM4sAABgRxEAAQAAAM8sAABkRxEAAQAAANAsAABoRxEAAQAAANEsAABsRxEAAQAAANIsAABwRxEAAQAAANMsAAB0RxEAAQAAANQsAAB4RxEAAQAAANUsAAB8RxEAAQAAANYsAACARxEAAQAAANcsAACERxEAAQAAANgsAACIRxEAAQAAANksAACMRxEAAQAAANosAACQRxEAAQAAANssAACURxEAAQAAANwsAACYRxEAAQAAAN0sAACcRxEAAQAAAN4sAACgRxEAAQAAAN8sAACkRxEAAQAAAOAsAACoRxEAAQAAAOEsAACsRxEAAQAAAOIsAACwRxEAAQAAAOMsAAC0RxEAAQAAAOssAAC4RxEAAQAAAOwsAAC8RxEAAQAAAO0sAADARxEAAQAAAO4sAADERxEAAQAAAPIsAADIRxEAAQAAAPMsAADMRxEAAQAAAAAtAADQRxEAAQAAAAEtAADURxEAAQAAAAItAADYRxEAAQAAAAMtAADcRxEAAQAAAAQtAADgRxEAAQAAAAUtAADkRxEAAQAAAAYtAADoRxEAAQAAAActAADsRxEAAQAAAAgtAADwRxEAAQAAAAktAAD0RxEAAQAAAAotAAD4RxEAAQAAAAstAAD8RxEAAQAAAAwtAAAASBEAAQAAAA0tAAAESBEAAQAAAA4tAAAISBEAAQAAAA8tAAAMSBEAAQAAABAtAAAQSBEAAQAAABEtAAAUSBEAAQAAABItAAAYSBEAAQAAABMtAAAcSBEAAQAAABQtAAAgSBEAAQAAABUtAAAkSBEAAQAAABYtAAAoSBEAAQAAABctAAAsSBEAAQAAABgtAAAwSBEAAQAAABktAAA0SBEAAQAAABotAAA4SBEAAQAAABstAAA8SBEAAQAAABwtAABASBEAAQAAAB0tAABESBEAAQAAAB4tAABISBEAAQAAAB8tAABMSBEAAQAAACAtAABQSBEAAQAAACEtAABUSBEAAQAAACItAABYSBEAAQAAACMtAABcSBEAAQAAACQtAABgSBEAAQAAACUtAABkSBEAAQAAACctAABoSBEAAQAAAC0tAABsSBEAAQAAAECmAABwSBEAAQAAAEGmAAB0SBEAAQAAAEKmAAB4SBEAAQAAAEOmAAB8SBEAAQAAAESmAACASBEAAQAAAEWmAACESBEAAQAAAEamAACISBEAAQAAAEemAACMSBEAAQAAAEimAACQSBEAAQAAAEmmAACUSBEAAQAAAEqmAACYSBEAAgAAAEumAACgSBEAAgAAAEymAACoSBEAAQAAAE2mAACsSBEAAQAAAE6mAACwSBEAAQAAAE+mAAC0SBEAAQAAAFCmAAC4SBEAAQAAAFGmAAC8SBEAAQAAAFKmAADASBEAAQAAAFOmAADESBEAAQAAAFSmAADISBEAAQAAAFWmAADMSBEAAQAAAFamAADQSBEAAQAAAFemAADUSBEAAQAAAFimAADYSBEAAQAAAFmmAADcSBEAAQAAAFqmAADgSBEAAQAAAFumAADkSBEAAQAAAFymAADoSBEAAQAAAF2mAADsSBEAAQAAAF6mAADwSBEAAQAAAF+mAAD0SBEAAQAAAGCmAAD4SBEAAQAAAGGmAAD8SBEAAQAAAGKmAAAASREAAQAAAGOmAAAESREAAQAAAGSmAAAISREAAQAAAGWmAAAMSREAAQAAAGamAAAQSREAAQAAAGemAAAUSREAAQAAAGimAAAYSREAAQAAAGmmAAAcSREAAQAAAGqmAAAgSREAAQAAAGumAAAkSREAAQAAAGymAAAoSREAAQAAAG2mAAAsSREAAQAAAICmAAAwSREAAQAAAIGmAAA0SREAAQAAAIKmAAA4SREAAQAAAIOmAAA8SREAAQAAAISmAABASREAAQAAAIWmAABESREAAQAAAIamAABISREAAQAAAIemAABMSREAAQAAAIimAABQSREAAQAAAImmAABUSREAAQAAAIqmAABYSREAAQAAAIumAABcSREAAQAAAIymAABgSREAAQAAAI2mAABkSREAAQAAAI6mAABoSREAAQAAAI+mAABsSREAAQAAAJCmAABwSREAAQAAAJGmAAB0SREAAQAAAJKmAAB4SREAAQAAAJOmAAB8SREAAQAAAJSmAACASREAAQAAAJWmAACESREAAQAAAJamAACISREAAQAAAJemAACMSREAAQAAAJimAACQSREAAQAAAJmmAACUSREAAQAAAJqmAACYSREAAQAAAJumAACcSREAAQAAACKnAACgSREAAQAAACOnAACkSREAAQAAACSnAACoSREAAQAAACWnAACsSREAAQAAACanAACwSREAAQAAACenAAC0SREAAQAAACinAAC4SREAAQAAACmnAAC8SREAAQAAACqnAADASREAAQAAACunAADESREAAQAAACynAADISREAAQAAAC2nAADMSREAAQAAAC6nAADQSREAAQAAAC+nAADUSREAAQAAADKnAADYSREAAQAAADOnAADcSREAAQAAADSnAADgSREAAQAAADWnAADkSREAAQAAADanAADoSREAAQAAADenAADsSREAAQAAADinAADwSREAAQAAADmnAAD0SREAAQAAADqnAAD4SREAAQAAADunAAD8SREAAQAAADynAAAAShEAAQAAAD2nAAAEShEAAQAAAD6nAAAIShEAAQAAAD+nAAAMShEAAQAAAECnAAAQShEAAQAAAEGnAAAUShEAAQAAAEKnAAAYShEAAQAAAEOnAAAcShEAAQAAAESnAAAgShEAAQAAAEWnAAAkShEAAQAAAEanAAAoShEAAQAAAEenAAAsShEAAQAAAEinAAAwShEAAQAAAEmnAAA0ShEAAQAAAEqnAAA4ShEAAQAAAEunAAA8ShEAAQAAAEynAABAShEAAQAAAE2nAABEShEAAQAAAE6nAABIShEAAQAAAE+nAABMShEAAQAAAFCnAABQShEAAQAAAFGnAABUShEAAQAAAFKnAABYShEAAQAAAFOnAABcShEAAQAAAFSnAABgShEAAQAAAFWnAABkShEAAQAAAFanAABoShEAAQAAAFenAABsShEAAQAAAFinAABwShEAAQAAAFmnAAB0ShEAAQAAAFqnAAB4ShEAAQAAAFunAAB8ShEAAQAAAFynAACAShEAAQAAAF2nAACEShEAAQAAAF6nAACIShEAAQAAAF+nAACMShEAAQAAAGCnAACQShEAAQAAAGGnAACUShEAAQAAAGKnAACYShEAAQAAAGOnAACcShEAAQAAAGSnAACgShEAAQAAAGWnAACkShEAAQAAAGanAACoShEAAQAAAGenAACsShEAAQAAAGinAACwShEAAQAAAGmnAAC0ShEAAQAAAGqnAAC4ShEAAQAAAGunAAC8ShEAAQAAAGynAADAShEAAQAAAG2nAADEShEAAQAAAG6nAADIShEAAQAAAG+nAADMShEAAQAAAHmnAADQShEAAQAAAHqnAADUShEAAQAAAHunAADYShEAAQAAAHynAADcShEAAQAAAH2nAADgShEAAQAAAH6nAADkShEAAQAAAH+nAADoShEAAQAAAICnAADsShEAAQAAAIGnAADwShEAAQAAAIKnAAD0ShEAAQAAAIOnAAD4ShEAAQAAAISnAAD8ShEAAQAAAIWnAAAASxEAAQAAAIanAAAESxEAAQAAAIenAAAISxEAAQAAAIunAAAMSxEAAQAAAIynAAAQSxEAAQAAAI2nAAAUSxEAAQAAAJCnAAAYSxEAAQAAAJGnAAAcSxEAAQAAAJKnAAAgSxEAAQAAAJOnAAAkSxEAAQAAAJSnAAAoSxEAAQAAAJanAAAsSxEAAQAAAJenAAAwSxEAAQAAAJinAAA0SxEAAQAAAJmnAAA4SxEAAQAAAJqnAAA8SxEAAQAAAJunAABASxEAAQAAAJynAABESxEAAQAAAJ2nAABISxEAAQAAAJ6nAABMSxEAAQAAAJ+nAABQSxEAAQAAAKCnAABUSxEAAQAAAKGnAABYSxEAAQAAAKKnAABcSxEAAQAAAKOnAABgSxEAAQAAAKSnAABkSxEAAQAAAKWnAABoSxEAAQAAAKanAABsSxEAAQAAAKenAABwSxEAAQAAAKinAAB0SxEAAQAAAKmnAAB4SxEAAQAAAKqnAAB8SxEAAQAAAKunAACASxEAAQAAAKynAACESxEAAQAAAK2nAACISxEAAQAAAK6nAACMSxEAAQAAALCnAACQSxEAAQAAALGnAACUSxEAAQAAALKnAACYSxEAAQAAALOnAACcSxEAAQAAALSnAACgSxEAAQAAALWnAACkSxEAAQAAALanAACoSxEAAQAAALenAACsSxEAAQAAALinAACwSxEAAQAAALmnAAC0SxEAAQAAALqnAAC4SxEAAQAAALunAAC8SxEAAQAAALynAADASxEAAQAAAL2nAADESxEAAQAAAL6nAADISxEAAQAAAL+nAADMSxEAAQAAAMCnAADQSxEAAQAAAMGnAADUSxEAAQAAAMKnAADYSxEAAQAAAMOnAADcSxEAAQAAAMSnAADgSxEAAQAAAMWnAADkSxEAAQAAAManAADoSxEAAQAAAMenAADsSxEAAQAAAMinAADwSxEAAQAAAMmnAAD0SxEAAQAAAMqnAAD4SxEAAQAAANCnAAD8SxEAAQAAANGnAAAATBEAAQAAANanAAAETBEAAQAAANenAAAITBEAAQAAANinAAAMTBEAAQAAANmnAAAQTBEAAQAAAPWnAAAUTBEAAQAAAPanAAAYTBEAAQAAAFOrAAAcTBEAAQAAAHCrAAAgTBEAAQAAAHGrAAAkTBEAAQAAAHKrAAAoTBEAAQAAAHOrAAAsTBEAAQAAAHSrAAAwTBEAAQAAAHWrAAA0TBEAAQAAAHarAAA4TBEAAQAAAHerAAA8TBEAAQAAAHirAABATBEAAQAAAHmrAABETBEAAQAAAHqrAABITBEAAQAAAHurAABMTBEAAQAAAHyrAABQTBEAAQAAAH2rAABUTBEAAQAAAH6rAABYTBEAAQAAAH+rAABcTBEAAQAAAICrAABgTBEAAQAAAIGrAABkTBEAAQAAAIKrAABoTBEAAQAAAIOrAABsTBEAAQAAAISrAABwTBEAAQAAAIWrAAB0TBEAAQAAAIarAAB4TBEAAQAAAIerAAB8TBEAAQAAAIirAACATBEAAQAAAImrAACETBEAAQAAAIqrAACITBEAAQAAAIurAACMTBEAAQAAAIyrAACQTBEAAQAAAI2rAACUTBEAAQAAAI6rAACYTBEAAQAAAI+rAACcTBEAAQAAAJCrAACgTBEAAQAAAJGrAACkTBEAAQAAAJKrAACoTBEAAQAAAJOrAACsTBEAAQAAAJSrAACwTBEAAQAAAJWrAAC0TBEAAQAAAJarAAC4TBEAAQAAAJerAAC8TBEAAQAAAJirAADATBEAAQAAAJmrAADETBEAAQAAAJqrAADITBEAAQAAAJurAADMTBEAAQAAAJyrAADQTBEAAQAAAJ2rAADUTBEAAQAAAJ6rAADYTBEAAQAAAJ+rAADcTBEAAQAAAKCrAADgTBEAAQAAAKGrAADkTBEAAQAAAKKrAADoTBEAAQAAAKOrAADsTBEAAQAAAKSrAADwTBEAAQAAAKWrAAD0TBEAAQAAAKarAAD4TBEAAQAAAKerAAD8TBEAAQAAAKirAAAATREAAQAAAKmrAAAETREAAQAAAKqrAAAITREAAQAAAKurAAAMTREAAQAAAKyrAAAQTREAAQAAAK2rAAAUTREAAQAAAK6rAAAYTREAAQAAAK+rAAAcTREAAQAAALCrAAAgTREAAQAAALGrAAAkTREAAQAAALKrAAAoTREAAQAAALOrAAAsTREAAQAAALSrAAAwTREAAQAAALWrAAA0TREAAQAAALarAAA4TREAAQAAALerAAA8TREAAQAAALirAABATREAAQAAALmrAABETREAAQAAALqrAABITREAAQAAALurAABMTREAAQAAALyrAABQTREAAQAAAL2rAABUTREAAQAAAL6rAABYTREAAQAAAL+rAABcTREAAQAAACH/AABgTREAAQAAACL/AABkTREAAQAAACP/AABoTREAAQAAACT/AABsTREAAQAAACX/AABwTREAAQAAACb/AAB0TREAAQAAACf/AAB4TREAAQAAACj/AAB8TREAAQAAACn/AACATREAAQAAACr/AACETREAAQAAACv/AACITREAAQAAACz/AACMTREAAQAAAC3/AACQTREAAQAAAC7/AACUTREAAQAAAC//AACYTREAAQAAADD/AACcTREAAQAAADH/AACgTREAAQAAADL/AACkTREAAQAAADP/AACoTREAAQAAADT/AACsTREAAQAAADX/AACwTREAAQAAADb/AAC0TREAAQAAADf/AAC4TREAAQAAADj/AAC8TREAAQAAADn/AADATREAAQAAADr/AADETREAAQAAAEH/AADITREAAQAAAEL/AADMTREAAQAAAEP/AADQTREAAQAAAET/AADUTREAAQAAAEX/AADYTREAAQAAAEb/AADcTREAAQAAAEf/AADgTREAAQAAAEj/AADkTREAAQAAAEn/AADoTREAAQAAAEr/AADsTREAAQAAAEv/AADwTREAAQAAAEz/AAD0TREAAQAAAE3/AAD4TREAAQAAAE7/AAD8TREAAQAAAE//AAAAThEAAQAAAFD/AAAEThEAAQAAAFH/AAAIThEAAQAAAFL/AAAMThEAAQAAAFP/AAAQThEAAQAAAFT/AAAUThEAAQAAAFX/AAAYThEAAQAAAFb/AAAcThEAAQAAAFf/AAAgThEAAQAAAFj/AAAkThEAAQAAAFn/AAAoThEAAQAAAFr/AAAsThEAAQAAAAAEAQAwThEAAQAAAAEEAQA0ThEAAQAAAAIEAQA4ThEAAQAAAAMEAQA8ThEAAQAAAAQEAQBAThEAAQAAAAUEAQBEThEAAQAAAAYEAQBIThEAAQAAAAcEAQBMThEAAQAAAAgEAQBQThEAAQAAAAkEAQBUThEAAQAAAAoEAQBYThEAAQAAAAsEAQBcThEAAQAAAAwEAQBgThEAAQAAAA0EAQBkThEAAQAAAA4EAQBoThEAAQAAAA8EAQBsThEAAQAAABAEAQBwThEAAQAAABEEAQB0ThEAAQAAABIEAQB4ThEAAQAAABMEAQB8ThEAAQAAABQEAQCAThEAAQAAABUEAQCEThEAAQAAABYEAQCIThEAAQAAABcEAQCMThEAAQAAABgEAQCQThEAAQAAABkEAQCUThEAAQAAABoEAQCYThEAAQAAABsEAQCcThEAAQAAABwEAQCgThEAAQAAAB0EAQCkThEAAQAAAB4EAQCoThEAAQAAAB8EAQCsThEAAQAAACAEAQCwThEAAQAAACEEAQC0ThEAAQAAACIEAQC4ThEAAQAAACMEAQC8ThEAAQAAACQEAQDAThEAAQAAACUEAQDEThEAAQAAACYEAQDIThEAAQAAACcEAQDMThEAAQAAACgEAQDQThEAAQAAACkEAQDUThEAAQAAACoEAQDYThEAAQAAACsEAQDcThEAAQAAACwEAQDgThEAAQAAAC0EAQDkThEAAQAAAC4EAQDoThEAAQAAAC8EAQDsThEAAQAAADAEAQDwThEAAQAAADEEAQD0ThEAAQAAADIEAQD4ThEAAQAAADMEAQD8ThEAAQAAADQEAQAATxEAAQAAADUEAQAETxEAAQAAADYEAQAITxEAAQAAADcEAQAMTxEAAQAAADgEAQAQTxEAAQAAADkEAQAUTxEAAQAAADoEAQAYTxEAAQAAADsEAQAcTxEAAQAAADwEAQAgTxEAAQAAAD0EAQAkTxEAAQAAAD4EAQAoTxEAAQAAAD8EAQAsTxEAAQAAAEAEAQAwTxEAAQAAAEEEAQA0TxEAAQAAAEIEAQA4TxEAAQAAAEMEAQA8TxEAAQAAAEQEAQBATxEAAQAAAEUEAQBETxEAAQAAAEYEAQBITxEAAQAAAEcEAQBMTxEAAQAAAEgEAQBQTxEAAQAAAEkEAQBUTxEAAQAAAEoEAQBYTxEAAQAAAEsEAQBcTxEAAQAAAEwEAQBgTxEAAQAAAE0EAQBkTxEAAQAAAE4EAQBoTxEAAQAAAE8EAQBsTxEAAQAAALAEAQBwTxEAAQAAALEEAQB0TxEAAQAAALIEAQB4TxEAAQAAALMEAQB8TxEAAQAAALQEAQCATxEAAQAAALUEAQCETxEAAQAAALYEAQCITxEAAQAAALcEAQCMTxEAAQAAALgEAQCQTxEAAQAAALkEAQCUTxEAAQAAALoEAQCYTxEAAQAAALsEAQCcTxEAAQAAALwEAQCgTxEAAQAAAL0EAQCkTxEAAQAAAL4EAQCoTxEAAQAAAL8EAQCsTxEAAQAAAMAEAQCwTxEAAQAAAMEEAQC0TxEAAQAAAMIEAQC4TxEAAQAAAMMEAQC8TxEAAQAAAMQEAQDATxEAAQAAAMUEAQDETxEAAQAAAMYEAQDITxEAAQAAAMcEAQDMTxEAAQAAAMgEAQDQTxEAAQAAAMkEAQDUTxEAAQAAAMoEAQDYTxEAAQAAAMsEAQDcTxEAAQAAAMwEAQDgTxEAAQAAAM0EAQDkTxEAAQAAAM4EAQDoTxEAAQAAAM8EAQDsTxEAAQAAANAEAQDwTxEAAQAAANEEAQD0TxEAAQAAANIEAQD4TxEAAQAAANMEAQD8TxEAAQAAANgEAQAAUBEAAQAAANkEAQAEUBEAAQAAANoEAQAIUBEAAQAAANsEAQAMUBEAAQAAANwEAQAQUBEAAQAAAN0EAQAUUBEAAQAAAN4EAQAYUBEAAQAAAN8EAQAcUBEAAQAAAOAEAQAgUBEAAQAAAOEEAQAkUBEAAQAAAOIEAQAoUBEAAQAAAOMEAQAsUBEAAQAAAOQEAQAwUBEAAQAAAOUEAQA0UBEAAQAAAOYEAQA4UBEAAQAAAOcEAQA8UBEAAQAAAOgEAQBAUBEAAQAAAOkEAQBEUBEAAQAAAOoEAQBIUBEAAQAAAOsEAQBMUBEAAQAAAOwEAQBQUBEAAQAAAO0EAQBUUBEAAQAAAO4EAQBYUBEAAQAAAO8EAQBcUBEAAQAAAPAEAQBgUBEAAQAAAPEEAQBkUBEAAQAAAPIEAQBoUBEAAQAAAPMEAQBsUBEAAQAAAPQEAQBwUBEAAQAAAPUEAQB0UBEAAQAAAPYEAQB4UBEAAQAAAPcEAQB8UBEAAQAAAPgEAQCAUBEAAQAAAPkEAQCEUBEAAQAAAPoEAQCIUBEAAQAAAPsEAQCMUBEAAQAAAHAFAQCQUBEAAQAAAHEFAQCUUBEAAQAAAHIFAQCYUBEAAQAAAHMFAQCcUBEAAQAAAHQFAQCgUBEAAQAAAHUFAQCkUBEAAQAAAHYFAQCoUBEAAQAAAHcFAQCsUBEAAQAAAHgFAQCwUBEAAQAAAHkFAQC0UBEAAQAAAHoFAQC4UBEAAQAAAHwFAQC8UBEAAQAAAH0FAQDAUBEAAQAAAH4FAQDEUBEAAQAAAH8FAQDIUBEAAQAAAIAFAQDMUBEAAQAAAIEFAQDQUBEAAQAAAIIFAQDUUBEAAQAAAIMFAQDYUBEAAQAAAIQFAQDcUBEAAQAAAIUFAQDgUBEAAQAAAIYFAQDkUBEAAQAAAIcFAQDoUBEAAQAAAIgFAQDsUBEAAQAAAIkFAQDwUBEAAQAAAIoFAQD0UBEAAQAAAIwFAQD4UBEAAQAAAI0FAQD8UBEAAQAAAI4FAQAAUREAAQAAAI8FAQAEUREAAQAAAJAFAQAIUREAAQAAAJEFAQAMUREAAQAAAJIFAQAQUREAAQAAAJQFAQAUUREAAQAAAJUFAQAYUREAAQAAAJcFAQAcUREAAQAAAJgFAQAgUREAAQAAAJkFAQAkUREAAQAAAJoFAQAoUREAAQAAAJsFAQAsUREAAQAAAJwFAQAwUREAAQAAAJ0FAQA0UREAAQAAAJ4FAQA4UREAAQAAAJ8FAQA8UREAAQAAAKAFAQBAUREAAQAAAKEFAQBEUREAAQAAAKMFAQBIUREAAQAAAKQFAQBMUREAAQAAAKUFAQBQUREAAQAAAKYFAQBUUREAAQAAAKcFAQBYUREAAQAAAKgFAQBcUREAAQAAAKkFAQBgUREAAQAAAKoFAQBkUREAAQAAAKsFAQBoUREAAQAAAKwFAQBsUREAAQAAAK0FAQBwUREAAQAAAK4FAQB0UREAAQAAAK8FAQB4UREAAQAAALAFAQB8UREAAQAAALEFAQCAUREAAQAAALMFAQCEUREAAQAAALQFAQCIUREAAQAAALUFAQCMUREAAQAAALYFAQCQUREAAQAAALcFAQCUUREAAQAAALgFAQCYUREAAQAAALkFAQCcUREAAQAAALsFAQCgUREAAQAAALwFAQCkUREAAQAAAIAMAQCoUREAAQAAAIEMAQCsUREAAQAAAIIMAQCwUREAAQAAAIMMAQC0UREAAQAAAIQMAQC4UREAAQAAAIUMAQC8UREAAQAAAIYMAQDAUREAAQAAAIcMAQDEUREAAQAAAIgMAQDIUREAAQAAAIkMAQDMUREAAQAAAIoMAQDQUREAAQAAAIsMAQDUUREAAQAAAIwMAQDYUREAAQAAAI0MAQDcUREAAQAAAI4MAQDgUREAAQAAAI8MAQDkUREAAQAAAJAMAQDoUREAAQAAAJEMAQDsUREAAQAAAJIMAQDwUREAAQAAAJMMAQD0UREAAQAAAJQMAQD4UREAAQAAAJUMAQD8UREAAQAAAJYMAQAAUhEAAQAAAJcMAQAEUhEAAQAAAJgMAQAIUhEAAQAAAJkMAQAMUhEAAQAAAJoMAQAQUhEAAQAAAJsMAQAUUhEAAQAAAJwMAQAYUhEAAQAAAJ0MAQAcUhEAAQAAAJ4MAQAgUhEAAQAAAJ8MAQAkUhEAAQAAAKAMAQAoUhEAAQAAAKEMAQAsUhEAAQAAAKIMAQAwUhEAAQAAAKMMAQA0UhEAAQAAAKQMAQA4UhEAAQAAAKUMAQA8UhEAAQAAAKYMAQBAUhEAAQAAAKcMAQBEUhEAAQAAAKgMAQBIUhEAAQAAAKkMAQBMUhEAAQAAAKoMAQBQUhEAAQAAAKsMAQBUUhEAAQAAAKwMAQBYUhEAAQAAAK0MAQBcUhEAAQAAAK4MAQBgUhEAAQAAAK8MAQBkUhEAAQAAALAMAQBoUhEAAQAAALEMAQBsUhEAAQAAALIMAQBwUhEAAQAAAMAMAQB0UhEAAQAAAMEMAQB4UhEAAQAAAMIMAQB8UhEAAQAAAMMMAQCAUhEAAQAAAMQMAQCEUhEAAQAAAMUMAQCIUhEAAQAAAMYMAQCMUhEAAQAAAMcMAQCQUhEAAQAAAMgMAQCUUhEAAQAAAMkMAQCYUhEAAQAAAMoMAQCcUhEAAQAAAMsMAQCgUhEAAQAAAMwMAQCkUhEAAQAAAM0MAQCoUhEAAQAAAM4MAQCsUhEAAQAAAM8MAQCwUhEAAQAAANAMAQC0UhEAAQAAANEMAQC4UhEAAQAAANIMAQC8UhEAAQAAANMMAQDAUhEAAQAAANQMAQDEUhEAAQAAANUMAQDIUhEAAQAAANYMAQDMUhEAAQAAANcMAQDQUhEAAQAAANgMAQDUUhEAAQAAANkMAQDYUhEAAQAAANoMAQDcUhEAAQAAANsMAQDgUhEAAQAAANwMAQDkUhEAAQAAAN0MAQDoUhEAAQAAAN4MAQDsUhEAAQAAAN8MAQDwUhEAAQAAAOAMAQD0UhEAAQAAAOEMAQD4UhEAAQAAAOIMAQD8UhEAAQAAAOMMAQAAUxEAAQAAAOQMAQAEUxEAAQAAAOUMAQAIUxEAAQAAAOYMAQAMUxEAAQAAAOcMAQAQUxEAAQAAAOgMAQAUUxEAAQAAAOkMAQAYUxEAAQAAAOoMAQAcUxEAAQAAAOsMAQAgUxEAAQAAAOwMAQAkUxEAAQAAAO0MAQAoUxEAAQAAAO4MAQAsUxEAAQAAAO8MAQAwUxEAAQAAAPAMAQA0UxEAAQAAAPEMAQA4UxEAAQAAAPIMAQA8UxEAAQAAAKAYAQBAUxEAAQAAAKEYAQBEUxEAAQAAAKIYAQBIUxEAAQAAAKMYAQBMUxEAAQAAAKQYAQBQUxEAAQAAAKUYAQBUUxEAAQAAAKYYAQBYUxEAAQAAAKcYAQBcUxEAAQAAAKgYAQBgUxEAAQAAAKkYAQBkUxEAAQAAAKoYAQBoUxEAAQAAAKsYAQBsUxEAAQAAAKwYAQBwUxEAAQAAAK0YAQB0UxEAAQAAAK4YAQB4UxEAAQAAAK8YAQB8UxEAAQAAALAYAQCAUxEAAQAAALEYAQCEUxEAAQAAALIYAQCIUxEAAQAAALMYAQCMUxEAAQAAALQYAQCQUxEAAQAAALUYAQCUUxEAAQAAALYYAQCYUxEAAQAAALcYAQCcUxEAAQAAALgYAQCgUxEAAQAAALkYAQCkUxEAAQAAALoYAQCoUxEAAQAAALsYAQCsUxEAAQAAALwYAQCwUxEAAQAAAL0YAQC0UxEAAQAAAL4YAQC4UxEAAQAAAL8YAQC8UxEAAQAAAMAYAQDAUxEAAQAAAMEYAQDEUxEAAQAAAMIYAQDIUxEAAQAAAMMYAQDMUxEAAQAAAMQYAQDQUxEAAQAAAMUYAQDUUxEAAQAAAMYYAQDYUxEAAQAAAMcYAQDcUxEAAQAAAMgYAQDgUxEAAQAAAMkYAQDkUxEAAQAAAMoYAQDoUxEAAQAAAMsYAQDsUxEAAQAAAMwYAQDwUxEAAQAAAM0YAQD0UxEAAQAAAM4YAQD4UxEAAQAAAM8YAQD8UxEAAQAAANAYAQAAVBEAAQAAANEYAQAEVBEAAQAAANIYAQAIVBEAAQAAANMYAQAMVBEAAQAAANQYAQAQVBEAAQAAANUYAQAUVBEAAQAAANYYAQAYVBEAAQAAANcYAQAcVBEAAQAAANgYAQAgVBEAAQAAANkYAQAkVBEAAQAAANoYAQAoVBEAAQAAANsYAQAsVBEAAQAAANwYAQAwVBEAAQAAAN0YAQA0VBEAAQAAAN4YAQA4VBEAAQAAAN8YAQA8VBEAAQAAAEBuAQBAVBEAAQAAAEFuAQBEVBEAAQAAAEJuAQBIVBEAAQAAAENuAQBMVBEAAQAAAERuAQBQVBEAAQAAAEVuAQBUVBEAAQAAAEZuAQBYVBEAAQAAAEduAQBcVBEAAQAAAEhuAQBgVBEAAQAAAEluAQBkVBEAAQAAAEpuAQBoVBEAAQAAAEtuAQBsVBEAAQAAAExuAQBwVBEAAQAAAE1uAQB0VBEAAQAAAE5uAQB4VBEAAQAAAE9uAQB8VBEAAQAAAFBuAQCAVBEAAQAAAFFuAQCEVBEAAQAAAFJuAQCIVBEAAQAAAFNuAQCMVBEAAQAAAFRuAQCQVBEAAQAAAFVuAQCUVBEAAQAAAFZuAQCYVBEAAQAAAFduAQCcVBEAAQAAAFhuAQCgVBEAAQAAAFluAQCkVBEAAQAAAFpuAQCoVBEAAQAAAFtuAQCsVBEAAQAAAFxuAQCwVBEAAQAAAF1uAQC0VBEAAQAAAF5u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AACQEAAAmRAAAOAXAADpFwAAEBgAABkYAABGGQAATxkAANAZAADZGQAAgBoAAIkaAACQGgAAmRoAAFAbAABZGwAAsBsAALkbAABAHAAASRwAAFAcAABZHAAAIKYAACmmAADQqAAA2agAAACpAAAJqQAA0KkAANmpAADwqQAA+akAAFCqAABZqgAA8KsAAPmrAAAQ/wAAGf8AAKAEAQCpBAEAMA0BADkNAQBmEAEAbxABAPAQAQD5EAEANhEBAD8RAQDQEQEA2REBAPASAQD5EgEAUBQBAFkUAQDQFAEA2RQBAFAWAQBZFgEAwBYBAMkWAQAwFwEAORcBAOAYAQDpGAEAUBkBAFkZAQBQHAEAWRwBAFAdAQBZHQEAoB0BAKkdAQBQHwEAWR8BAGBqAQBpagEAwGoBAMlqAQBQawEAWWsBAM7XAQD/1wEAQOEBAEnhAQDw4gEA+eIBAPDkAQD55AEAUOkBAFnpAQDw+wEA+fsBAGFzc2lnbmVkjOERAGYAAAD9AQAAQAAAAEFTQ0lJQXNzaWduZWRBbnmM4REAZgAAAAYCAAAuAAAAYWdlYWhleEFTQ0lJX0hleF9EaWdpdEFscGhhYmV0aWNhbHBoYWJldGljYXNjaWloZXhkaWdpdGJjQmlkaV9DbGFzc2JpZGljQmlkaV9Db250cm9sYmlkaWNsYXNzYmlkaWNvbnRyb2xiaWRpbUJpZGlfTWlycm9yZWRiaWRpbWlycm9yZWRiaWRpbWlycm9yaW5nZ2x5cGhCaWRpX01pcnJvcmluZ19HbHlwaGJpZGlwYWlyZWRicmFja2V0QmlkaV9QYWlyZWRfQnJhY2tldGJpZGlwYWlyZWRicmFja2V0dHlwZUJpZGlfUGFpcmVkX0JyYWNrZXRfVHlwZWJsa2JtZ2JwYmJwdGNhbm9uaWNhbGNvbWJpbmluZ2NsYXNzQ2Fub25pY2FsX0NvbWJpbmluZ19DbGFzc2Nhc2VkQ2FzZWRjYXNlZm9sZGluZ0Nhc2VfRm9sZGluZ2Nhc2VpZ25vcmFibGVDYXNlX0lnbm9yYWJsZWNjY2NlQ29tcG9zaXRpb25fRXhjbHVzaW9uY2hhbmdlc3doZW5jYXNlZm9sZGVkQ2hhbmdlc19XaGVuX0Nhc2Vmb2xkZWRjaGFuZ2Vzd2hlbmNhc2VtYXBwZWRDaGFuZ2VzX1doZW5fQ2FzZW1hcHBlZGNoYW5nZXN3aGVubG93ZXJjYXNlZENoYW5nZXNfV2hlbl9Mb3dlcmNhc2VkY2hhbmdlc3doZW5uZmtjY2FzZWZvbGRlZENoYW5nZXNfV2hlbl9ORktDX0Nhc2Vmb2xkZWRjaGFuZ2Vzd2hlbnRpdGxlY2FzZWRDaGFuZ2VzX1doZW5fVGl0bGVjYXNlZGNoYW5nZXN3aGVudXBwZXJjYXNlZENoYW5nZXNfV2hlbl9VcHBlcmNhc2VkY2ljamthY2NvdW50aW5nbnVtZXJpY2tBY2NvdW50aW5nTnVtZXJpY2Nqa2NvbXBhdGliaWxpdHl2YXJpYW50a0NvbXBhdGliaWxpdHlWYXJpYW50Y2praWljb3Jla0lJQ29yZWNqa2lyZ2dzb3VyY2VrSVJHX0dTb3VyY2Vjamtpcmdoc291cmNla0lSR19IU291cmNlY2praXJnanNvdXJjZWtJUkdfSlNvdXJjZWNqa2lyZ2twc291cmNla0lSR19LUFNvdXJjZWNqa2lyZ2tzb3VyY2VrSVJHX0tTb3VyY2Vjamtpcmdtc291cmNla0lSR19NU291cmNlY2praXJnc3NvdXJjZWtJUkdfU1NvdXJjZWNqa2lyZ3Rzb3VyY2VrSVJHX1RTb3VyY2Vjamtpcmd1a3NvdXJjZWtJUkdfVUtTb3VyY2Vjamtpcmd1c291cmNla0lSR19VU291cmNlY2praXJndnNvdXJjZWtJUkdfVlNvdXJjZWNqa290aGVybnVtZXJpY2tPdGhlck51bWVyaWNjamtwcmltYXJ5bnVtZXJpY2tQcmltYXJ5TnVtZXJpY2Nqa3JzdW5pY29kZWtSU1VuaWNvZGVjb21wZXhGdWxsX0NvbXBvc2l0aW9uX0V4Y2x1c2lvbmNvbXBvc2l0aW9uZXhjbHVzaW9uY3djZmN3Y21jd2tjZmN3bGN3dGN3dWRhc2hEYXNoZGVjb21wb3NpdGlvbm1hcHBpbmdEZWNvbXBvc2l0aW9uX01hcHBpbmdkZWNvbXBvc2l0aW9udHlwZURlY29tcG9zaXRpb25fVHlwZWRlZmF1bHRpZ25vcmFibGVjb2RlcG9pbnREZWZhdWx0X0lnbm9yYWJsZV9Db2RlX1BvaW50ZGVwRGVwcmVjYXRlZGRlcHJlY2F0ZWRkaWRpYURpYWNyaXRpY2RpYWNyaXRpY2RtZHRlYUVhc3RfQXNpYW5fV2lkdGhlYXN0YXNpYW53aWR0aGViYXNlRW1vamlfTW9kaWZpZXJfQmFzZWVjb21wRW1vamlfQ29tcG9uZW50ZW1vZEVtb2ppX01vZGlmaWVyZW1vamlFbW9qaWVtb2ppY29tcG9uZW50ZW1vamltb2RpZmllcmVtb2ppbW9kaWZpZXJiYXNlZW1vamlwcmVzZW50YXRpb25FbW9qaV9QcmVzZW50YXRpb25lcHJlc2VxdWlkZW9FcXVpdmFsZW50X1VuaWZpZWRfSWRlb2dyYXBoZXF1aXZhbGVudHVuaWZpZWRpZGVvZ3JhcGhleHBhbmRzb25uZmNFeHBhbmRzX09uX05GQ2V4cGFuZHNvbm5mZEV4cGFuZHNfT25fTkZEZXhwYW5kc29ubmZrY0V4cGFuZHNfT25fTkZLQ2V4cGFuZHNvbm5ma2RFeHBhbmRzX09uX05GS0RleHRFeHRlbmRlcmV4dGVuZGVkcGljdG9ncmFwaGljRXh0ZW5kZWRfUGljdG9ncmFwaGljZXh0ZW5kZXJleHRwaWN0ZmNuZmtjRkNfTkZLQ19DbG9zdXJlZmNuZmtjY2xvc3VyZWZ1bGxjb21wb3NpdGlvbmV4Y2x1c2lvbmdjZ2NiZ2VuZXJhbGNhdGVnb3J5Z3JhcGhlbWViYXNlR3JhcGhlbWVfQmFzZWdyYXBoZW1lY2x1c3RlcmJyZWFrZ3JhcGhlbWVleHRlbmRHcmFwaGVtZV9FeHRlbmRncmFwaGVtZWxpbmtHcmFwaGVtZV9MaW5rZ3JiYXNlZ3JleHRncmxpbmtoYW5ndWxzeWxsYWJsZXR5cGVIYW5ndWxfU3lsbGFibGVfVHlwZWhleEhleF9EaWdpdGhleGRpZ2l0aHN0aHlwaGVuSHlwaGVuaWRjSURfQ29udGludWVpZGNvbnRpbnVlaWRlb0lkZW9ncmFwaGljaWRlb2dyYXBoaWNpZHNJRF9TdGFydGlkc2JJRFNfQmluYXJ5X09wZXJhdG9yaWRzYmluYXJ5b3BlcmF0b3JpZHN0SURTX1RyaW5hcnlfT3BlcmF0b3JpZHN0YXJ0aWRzdHJpbmFyeW9wZXJhdG9yaW5kaWNwb3NpdGlvbmFsY2F0ZWdvcnlJbmRpY19Qb3NpdGlvbmFsX0NhdGVnb3J5aW5kaWNzeWxsYWJpY2NhdGVnb3J5SW5kaWNfU3lsbGFiaWNfQ2F0ZWdvcnlpbnBjaW5zY2lzY0lTT19Db21tZW50amFtb3Nob3J0bmFtZUphbW9fU2hvcnRfTmFtZWpnSm9pbmluZ19Hcm91cGpvaW5jSm9pbl9Db250cm9sam9pbmNvbnRyb2xqb2luaW5nZ3JvdXBqb2luaW5ndHlwZUpvaW5pbmdfVHlwZWpzbmp0a2FjY291bnRpbmdudW1lcmlja2NvbXBhdGliaWxpdHl2YXJpYW50a2lpY29yZWtpcmdnc291cmNla2lyZ2hzb3VyY2VraXJnanNvdXJjZWtpcmdrcHNvdXJjZWtpcmdrc291cmNla2lyZ21zb3VyY2VraXJnc3NvdXJjZWtpcmd0c291cmNla2lyZ3Vrc291cmNla2lyZ3Vzb3VyY2VraXJndnNvdXJjZWtvdGhlcm51bWVyaWNrcHJpbWFyeW51bWVyaWNrcnN1bmljb2RlbGJMaW5lX0JyZWFrTG93ZXJjYXNlX01hcHBpbmdsaW5lYnJlYWtsb2VMb2dpY2FsX09yZGVyX0V4Y2VwdGlvbmxvZ2ljYWxvcmRlcmV4Y2VwdGlvbkxvd2VyY2FzZWxvd2VyY2FzZWxvd2VyY2FzZW1hcHBpbmdtYXRoTWF0aG5hTmFtZW5hMVVuaWNvZGVfMV9OYW1lbmFtZWFsaWFzTmFtZV9BbGlhc25jaGFyTm9uY2hhcmFjdGVyX0NvZGVfUG9pbnRuZmNxY05GQ19RdWlja19DaGVja25mY3F1aWNrY2hlY2tuZmRxY05GRF9RdWlja19DaGVja25mZHF1aWNrY2hlY2tuZmtjY2FzZWZvbGRORktDX0Nhc2Vmb2xkbmZrY2NmbmZrY3FjTkZLQ19RdWlja19DaGVja25ma2NxdWlja2NoZWNrbmZrZHFjTkZLRF9RdWlja19DaGVja25ma2RxdWlja2NoZWNrbm9uY2hhcmFjdGVyY29kZXBvaW50bnROdW1lcmljX1R5cGVudW1lcmljdHlwZW51bWVyaWN2YWx1ZU51bWVyaWNfVmFsdWVudm9hbHBoYU90aGVyX0FscGhhYmV0aWNvY29tbWVudG9kaU90aGVyX0RlZmF1bHRfSWdub3JhYmxlX0NvZGVfUG9pbnRvZ3JleHRPdGhlcl9HcmFwaGVtZV9FeHRlbmRvaWRjT3RoZXJfSURfQ29udGludWVvaWRzT3RoZXJfSURfU3RhcnRvbG93ZXJPdGhlcl9Mb3dlcmNhc2VvbWF0aE90aGVyX01hdGhvdGhlcmFscGhhYmV0aWNvdGhlcmRlZmF1bHRpZ25vcmFibGVjb2RlcG9pbnRvdGhlcmdyYXBoZW1lZXh0ZW5kb3RoZXJpZGNvbnRpbnVlb3RoZXJpZHN0YXJ0b3RoZXJsb3dlcmNhc2VvdGhlcm1hdGhvdGhlcnVwcGVyY2FzZU90aGVyX1VwcGVyY2FzZW91cHBlcnBhdHN5blBhdHRlcm5fU3ludGF4cGF0dGVybnN5bnRheHBhdHRlcm53aGl0ZXNwYWNlUGF0dGVybl9XaGl0ZV9TcGFjZXBhdHdzcGNtUHJlcGVuZGVkX0NvbmNhdGVuYXRpb25fTWFya3ByZXBlbmRlZGNvbmNhdGVuYXRpb25tYXJrcW1hcmtRdW90YXRpb25fTWFya3F1b3RhdGlvbm1hcmtyYWRpY2FsUmFkaWNhbHJlZ2lvbmFsaW5kaWNhdG9yUmVnaW9uYWxfSW5kaWNhdG9ycmlzYnNjZlNpbXBsZV9DYXNlX0ZvbGRpbmdzY3JpcHRleHRlbnNpb25zc2N4c2RTb2Z0X0RvdHRlZHNlbnRlbmNlYnJlYWtzZW50ZW5jZXRlcm1pbmFsU2VudGVuY2VfVGVybWluYWxzZmNzaW1wbGVjYXNlZm9sZGluZ3NpbXBsZWxvd2VyY2FzZW1hcHBpbmdTaW1wbGVfTG93ZXJjYXNlX01hcHBpbmdzaW1wbGV0aXRsZWNhc2VtYXBwaW5nU2ltcGxlX1RpdGxlY2FzZV9NYXBwaW5nc2ltcGxldXBwZXJjYXNlbWFwcGluZ1NpbXBsZV9VcHBlcmNhc2VfTWFwcGluZ3NsY3NvZnRkb3R0ZWRXaGl0ZV9TcGFjZXN0Y3N0ZXJtc3VjdGNUaXRsZWNhc2VfTWFwcGluZ3Rlcm1UZXJtaW5hbF9QdW5jdHVhdGlvbnRlcm1pbmFscHVuY3R1YXRpb250aXRsZWNhc2VtYXBwaW5ndWNVcHBlcmNhc2VfTWFwcGluZ3VpZGVvVW5pZmllZF9JZGVvZ3JhcGh1bmljb2RlMW5hbWV1bmljb2RlcmFk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AAC3HhIABAAAACkfEgADAAAAvh4SAAQAAAAsHxIAAwAAAMUeEgAEAAAAY2FzZWRsZXR0ZXJDYXNlZF9MZXR0ZXJjY0NvbnRyb2xGb3JtYXRjbG9zZXB1bmN0dWF0aW9uQ2xvc2VfUHVuY3R1YXRpb25jbmNvUHJpdmF0ZV9Vc2Vjb21iaW5pbmdtYXJrY29ubmVjdG9ycHVuY3R1YXRpb25Db25uZWN0b3JfUHVuY3R1YXRpb25jb250cm9sY3NTdXJyb2dhdGVjdXJyZW5jeXN5bWJvbEN1cnJlbmN5X1N5bWJvbGRhc2hwdW5jdHVhdGlvbkRhc2hfUHVuY3R1YXRpb25kZWNpbWFsbnVtYmVyRGVjaW1hbF9OdW1iZXJlbmNsb3NpbmdtYXJrRW5jbG9zaW5nX01hcmtmaW5hbHB1bmN0dWF0aW9uRmluYWxfUHVuY3R1YXRpb25mb3JtYXRpbml0aWFscHVuY3R1YXRpb25Jbml0aWFsX1B1bmN0dWF0aW9ubExldHRlcmxldHRlcmxldHRlcm51bWJlckxldHRlcl9OdW1iZXJsaW5lc2VwYXJhdG9yTGluZV9TZXBhcmF0b3JsbExvd2VyY2FzZV9MZXR0ZXJsbU1vZGlmaWVyX0xldHRlcmxvT3RoZXJfTGV0dGVybG93ZXJjYXNlbGV0dGVyVGl0bGVjYXNlX0xldHRlcmx1VXBwZXJjYXNlX0xldHRlcm1tYXJrbWF0aHN5bWJvbE1hdGhfU3ltYm9sbWNTcGFjaW5nX01hcmttZW1uTm9uc3BhY2luZ19NYXJrbW9kaWZpZXJsZXR0ZXJtb2RpZmllcnN5bWJvbE1vZGlmaWVyX1N5bWJvbG5kbmxub090aGVyX051bWJlcm5vbnNwYWNpbmdtYXJrb3BlbnB1bmN0dWF0aW9uT3Blbl9QdW5jdHVhdGlvbm90aGVyb3RoZXJsZXR0ZXJvdGhlcm51bWJlcm90aGVycHVuY3R1YXRpb25PdGhlcl9QdW5jdHVhdGlvbm90aGVyc3ltYm9sT3RoZXJfU3ltYm9scFB1bmN0dWF0aW9ucGFyYWdyYXBoc2VwYXJhdG9yUGFyYWdyYXBoX1NlcGFyYXRvcnBjcGRwZXBmcG9wcml2YXRldXNlcHNwdW5jdHVhdGlvbnNTeW1ib2xzZXBhcmF0b3JT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AAAUJRIABQAAAIAcFgAFAAAAoCsSAAIAAACiKxIABwAAAKkrEgAHAAAAoisSAAcAAABVCxIAEQAAAGYLEgASAAAAeAsSAAIAAABmCxIAEgAAANQlEgACAAAAsCsSAAsAAAD1JRIACwAAALArEgALAAAAuysSAAEAAAC8KxIAAQAAAL0rEgABAAAAvisSAAEAAAC/KxIAAgAAAIAcFgAFAAAANUgWAAMAAADBKxIAAwAAAGFkbGFtQWRsYW1hZGxtYWdoYkNhdWNhc2lhbl9BbGJhbmlhbmFob21BaG9tYW5hdG9saWFuaGllcm9nbHlwaHNBbmF0b2xpYW5fSGllcm9nbHlwaHNhcmFiQXJhYmljYXJhYmljYXJtZW5pYW5Bcm1lbmlhbmFybWlJbXBlcmlhbF9BcmFtYWljYXJtbmF2ZXN0YW5BdmVzdGFuYXZzdGJhbGlCYWxpbmVzZWJhbGluZXNlYmFtdUJhbXVtYmFtdW1iYXNzQmFzc2FfVmFoYmFzc2F2YWhiYXRha0JhdGFrYmF0a2JlbmdCZW5nYWxpYmVuZ2FsaWJoYWlrc3VraUJoYWlrc3VraWJoa3Nib3BvQm9wb21vZm9ib3BvbW9mb2JyYWhCcmFobWlicmFobWlicmFpQnJhaWxsZWJyYWlsbGVidWdpQnVnaW5lc2VidWdpbmVzZWJ1aGRCdWhpZGJ1aGlkY2FrbUNoYWttYWNhbmFkaWFuYWJvcmlnaW5hbENhbmFkaWFuX0Fib3JpZ2luYWxjYW5zY2FyaUNhcmlhbmNhcmlhbmNhdWNhc2lhbmFsYmFuaWFuY2hha21hY2hhbUNoYW1jaGVyQ2hlcm9rZWVjaGVyb2tlZWNob3Jhc21pYW5DaG9yYXNtaWFuY2hyc2NvbW1vbkNvbW1vbmNvcHRDb3B0aWNjb3B0aWNjcG1uQ3lwcm9fTWlub2FuY3BydEN5cHJpb3RjdW5laWZvcm1DdW5laWZvcm1jeXByaW90Y3lwcm9taW5vYW5jeXJpbGxpY0N5cmlsbGljY3lybGRlc2VyZXREZXNlcmV0ZGV2YURldmFuYWdhcmlkZXZhbmFnYXJpZGlha0RpdmVzX0FrdXJ1ZGl2ZXNha3VydWRvZ3JEb2dyYWRvZ3JhZHNydGR1cGxEdXBsb3lhbmR1cGxveWFuZWd5cEVneXB0aWFuX0hpZXJvZ2x5cGhzZWd5cHRpYW5oaWVyb2dseXBoc2VsYmFFbGJhc2FuZWxiYXNhbmVseW1FbHltYWljZWx5bWFpY2V0aGlFdGhpb3BpY2V0aGlvcGljZ2Vvckdlb3JnaWFuZ2VvcmdpYW5nbGFnR2xhZ29saXRpY2dsYWdvbGl0aWNnb25nR3VuamFsYV9Hb25kaWdvbm1NYXNhcmFtX0dvbmRpZ290aEdvdGhpY2dvdGhpY2dyYW5HcmFudGhhZ3JhbnRoYWdyZWVrR3JlZWtncmVrZ3VqYXJhdGlHdWphcmF0aWd1anJndW5qYWxhZ29uZGlndXJtdWtoaUd1cm11a2hpZ3VydWhhbkhhbmhhbmdIYW5ndWxoYW5ndWxoYW5paGFuaWZpcm9oaW5neWFIYW5pZmlfUm9oaW5neWFoYW5vSGFudW5vb2hhbnVub29oYXRySGF0cmFuaGF0cmFuaGVickhlYnJld2hlYnJld2hpcmFIaXJhZ2FuYWhpcmFnYW5haGx1d2htbmdQYWhhd2hfSG1vbmdobW5wTnlpYWtlbmdfUHVhY2h1ZV9IbW9uZ2hya3RLYXRha2FuYV9Pcl9IaXJhZ2FuYWh1bmdPbGRfSHVuZ2FyaWFuaW1wZXJpYWxhcmFtYWljaW5oZXJpdGVkSW5oZXJpdGVkaW5zY3JpcHRpb25hbHBhaGxhdmlJbnNjcmlwdGlvbmFsX1BhaGxhdmlpbnNjcmlwdGlvbmFscGFydGhpYW5JbnNjcmlwdGlvbmFsX1BhcnRoaWFuaXRhbE9sZF9JdGFsaWNqYXZhSmF2YW5lc2VqYXZhbmVzZWthaXRoaUthaXRoaWthbGlLYXlhaF9MaWthbmFLYXRha2FuYWthbm5hZGFLYW5uYWRha2F0YWthbmFrYXRha2FuYW9yaGlyYWdhbmFrYXdpS2F3aWtheWFobGlraGFyS2hhcm9zaHRoaWtoYXJvc2h0aGlraGl0YW5zbWFsbHNjcmlwdEtoaXRhbl9TbWFsbF9TY3JpcHRraG1lcktobWVya2htcmtob2pLaG9qa2lraG9qa2lraHVkYXdhZGlLaHVkYXdhZGlraXRza25kYWt0aGlsYW5hVGFpX1RoYW1sYW9MYW9sYW9vbGF0aW5MYXRpbmxhdG5sZXBjTGVwY2hhbGVwY2hhbGltYkxpbWJ1bGltYnVsaW5hTGluZWFyX0FsaW5iTGluZWFyX0JsaW5lYXJhbGluZWFyYmxpc3VMaXN1bHljaUx5Y2lhbmx5Y2lhbmx5ZGlMeWRpYW5seWRpYW5tYWhhamFuaU1haGFqYW5pbWFoam1ha2FNYWthc2FybWFrYXNhcm1hbGF5YWxhbU1hbGF5YWxhbW1hbmRNYW5kYWljbWFuZGFpY21hbmlNYW5pY2hhZWFubWFuaWNoYWVhbm1hcmNNYXJjaGVubWFyY2hlbm1hc2FyYW1nb25kaW1lZGVmYWlkcmluTWVkZWZhaWRyaW5tZWRmbWVldGVpbWF5ZWtNZWV0ZWlfTWF5ZWttZW5kTWVuZGVfS2lrYWt1aW1lbmRla2lrYWt1aW1lcmNNZXJvaXRpY19DdXJzaXZlbWVyb01lcm9pdGljX0hpZXJvZ2x5cGhzbWVyb2l0aWNjdXJzaXZlbWVyb2l0aWNoaWVyb2dseXBoc21pYW9NaWFvbWx5bW1vZGlNb2RpbW9uZ01vbmdvbGlhbm1vbmdvbGlhbm1yb01yb21yb29tdGVpbXVsdE11bHRhbmltdWx0YW5pbXlhbm1hck15YW5tYXJteW1ybmFiYXRhZWFuTmFiYXRhZWFubmFnbU5hZ19NdW5kYXJpbmFnbXVuZGFyaW5hbmROYW5kaW5hZ2FyaW5hbmRpbmFnYXJpbmFyYk9sZF9Ob3J0aF9BcmFiaWFubmJhdG5ld2FOZXdhbmV3dGFpbHVlTmV3X1RhaV9MdWVua29Oa29ua29vbnNodU51c2h1bnVzaHVueWlha2VuZ3B1YWNodWVobW9uZ29nYW1PZ2hhbW9naGFtb2xjaGlraU9sX0NoaWtpb2xja29sZGh1bmdhcmlhbm9sZGl0YWxpY29sZG5vcnRoYXJhYmlhbm9sZHBlcm1pY09sZF9QZXJtaWNvbGRwZXJzaWFuT2xkX1BlcnNpYW5vbGRzb2dkaWFuT2xkX1NvZ2RpYW5vbGRzb3V0aGFyYWJpYW5PbGRfU291dGhfQXJhYmlhbm9sZHR1cmtpY09sZF9UdXJraWNvbGR1eWdodXJPbGRfVXlnaHVyb3JpeWFPcml5YW9ya2hvcnlhb3NhZ2VPc2FnZW9zZ2Vvc21hT3NtYW55YW9zbWFueWFvdWdycGFoYXdoaG1vbmdwYWxtUGFsbXlyZW5lcGFsbXlyZW5lcGF1Y1BhdV9DaW5fSGF1cGF1Y2luaGF1cGVybXBoYWdQaGFnc19QYXBoYWdzcGFwaGxpcGhscFBzYWx0ZXJfUGFobGF2aXBobnhQaG9lbmljaWFucGhvZW5pY2lhbnBscmRwcnRpcHNhbHRlcnBhaGxhdmlxYWFjcWFhaXJlamFuZ1JlamFuZ3Jqbmdyb2hncnVuaWNSdW5pY3J1bnJzYW1hcml0YW5TYW1hcml0YW5zYW1yc2FyYnNhdXJTYXVyYXNodHJhc2F1cmFzaHRyYXNnbndTaWduV3JpdGluZ3NoYXJhZGFTaGFyYWRhc2hhdmlhblNoYXZpYW5zaGF3c2hyZHNpZGRTaWRkaGFtc2lkZGhhbXNpZ253cml0aW5nc2luZHNpbmhTaW5oYWxhc2luaGFsYXNvZ2RTb2dkaWFuc29nZGlhbnNvZ29zb3JhU29yYV9Tb21wZW5nc29yYXNvbXBlbmdzb3lvU295b21ib3NveW9tYm9zdW5kU3VuZGFuZXNlc3VuZGFuZXNlc3lsb1N5bG90aV9OYWdyaXN5bG90aW5hZ3Jpc3lyY1N5cmlhY3N5cmlhY3RhZ2Fsb2dUYWdhbG9ndGFnYlRhZ2JhbndhdGFnYmFud2F0YWlsZVRhaV9MZXRhaXRoYW10YWl2aWV0VGFpX1ZpZXR0YWtyVGFrcml0YWtyaXRhbGV0YWx1dGFtaWxUYW1pbHRhbWx0YW5nVGFuZ3V0dGFuZ3NhVGFuZ3NhdGFuZ3V0dGF2dHRlbHVUZWx1Z3V0ZWx1Z3V0Zm5nVGlmaW5hZ2h0Z2xndGhhYVRoYWFuYXRoYWFuYXRoYWlUaGFpdGliZXRhblRpYmV0YW50aWJ0dGlmaW5hZ2h0aXJoVGlyaHV0YXRpcmh1dGF0bnNhdG90b1RvdG91Z2FyVWdhcml0aWN1Z2FyaXRpY3ZhaVZhaXZhaWl2aXRoVml0aGt1cWl2aXRoa3VxaXdhbmNob1dhbmNob3dhcmFXYXJhbmdfQ2l0aXdhcmFuZ2NpdGl3Y2hveHBlb3hzdXh5ZXppWWV6aWRpeWV6aWRpeWlZaXlpaWl6YW5hYmF6YXJzcXVhcmVaYW5hYmF6YXJfU3F1YXJlemFuYnppbmh6eXl5enp6egAAAIQtEgAFAAAAiS0SAAUAAACOLRIABAAAAIktEgAFAAAAki0SAAQAAACWLRIAEgAAAKgtEgAEAAAArC0SAAQAAACwLRIAFAAAAMQtEgAVAAAA2S0SAAQAAADdLRIABgAAAOMtEgAGAAAA3S0SAAYAAADpLRIACAAAAPEtEgAIAAAA+S0SAAQAAAD9LRIAEAAAAA0uEgAEAAAA8S0SAAgAAAARLhIABwAAABguEgAHAAAAHy4SAAQAAAAYLhIABwAAACMuEgAEAAAAJy4SAAgAAAAvLhIACAAAACcuEgAIAAAANy4SAAQAAAA7LhIABQAAAEAuEgAFAAAAOy4SAAUAAABFLhIABAAAAEkuEgAJAAAAUi4SAAgAAABJLhIACQAAAFouEgAFAAAAXy4SAAUAAABkLhIABAAAAF8uEgAFAAAAaC4SAAQAAABsLhIABwAAAHMuEgAHAAAAbC4SAAcAAAB6LhIACQAAAIMuEgAJAAAAjC4SAAQAAACDLhIACQAAAJAuEgAEAAAAlC4SAAgAAACcLhIACAAAAJQuEgAIAAAApC4SAAQAAACoLhIABgAAAK4uEgAGAAAAqC4SAAYAAAC0LhIABAAAALguEgAHAAAAvy4SAAcAAAC4LhIABwAAAMYuEgAEAAAAyi4SAAgAAADSLhIACAAAAMouEgAIAAAA2i4SAAQAAADeLhIABQAAAOMuEgAFAAAA3i4SAAUAAADoLhIABAAAAOwuEgAGAAAA8i4SABIAAAAELxIAEwAAABcvEgAEAAAABC8SABMAAAAbLxIABAAAAB8vEgAGAAAAJS8SAAYAAAAfLxIABgAAACsvEgARAAAAli0SABIAAAA8LxIABgAAAOwuEgAGAAAAQi8SAAQAAABGLxIABAAAAEovEgAEAAAATi8SAAgAAABWLxIACAAAAE4vEgAIAAAAXi8SAAoAAABoLxIACgAAAHIvEgAEAAAAaC8SAAoAAAB2LxIABgAAAHwvEgAGAAAAgi8SAAQAAACGLxIABgAAAIwvEgAGAAAAhi8SAAYAAACSLxIABAAAAJYvEgAMAAAAoi8SAAQAAACmLxIABwAAAK0vEgAJAAAAti8SAAkAAAC/LxIABwAAAKYvEgAHAAAAxi8SAAsAAACWLxIADAAAANEvEgAIAAAA2S8SAAgAAADhLxIABAAAANkvEgAIAAAA5S8SAAcAAADsLxIABwAAAPMvEgAEAAAA9y8SAAoAAAABMBIACgAAAPcvEgAKAAAACzASAAQAAAAPMBIACwAAABowEgAKAAAADzASAAsAAAAkMBIABAAAACgwEgAFAAAALTASAAUAAAAoMBIABQAAADIwEgAEAAAA7C8SAAcAAAA2MBIABAAAADowEgAIAAAAQjASAAgAAAA6MBIACAAAAEowEgAEAAAATjASABQAAABiMBIAEwAAAE4wEgAUAAAAdTASAAQAAAB5MBIABwAAAIAwEgAHAAAAeTASAAcAAACHMBIABAAAAIswEgAHAAAAkjASAAcAAACLMBIABwAAAJkwEgAEAAAAnTASAAgAAAClMBIACAAAAJ0wEgAIAAAArTASAAQAAACxMBIACAAAALkwEgAIAAAAsTASAAgAAADBMBIABAAAAMUwEgAKAAAAzzASAAoAAADFMBIACgAAANkwEgAEAAAA3TASAA0AAADqMBIABAAAAO4wEgANAAAA+zASAAQAAAD/MBIABgAAAAUxEgAGAAAA/zASAAYAAAALMRIABAAAAA8xEgAHAAAAFjESAAcAAAAPMRIABwAAAB0xEgAFAAAAIjESAAUAAAAnMRIABAAAACIxEgAFAAAAKzESAAgAAAAzMRIACAAAADsxEgAEAAAAMzESAAgAAAA/MRIADAAAAN0wEgANAAAASzESAAgAAABTMRIACAAAAFsxEgAEAAAAUzESAAgAAABfMRIAAwAAAGIxEgADAAAAZTESAAQAAABpMRIABgAAAG8xEgAGAAAAaTESAAYAAAB1MRIABAAAAGIxEgADAAAAeTESAA4AAACHMRIADwAAAJYxEgAEAAAAmjESAAcAAAChMRIABwAAAJoxEgAHAAAAqDESAAQAAACsMRIABgAAALIxEgAGAAAArDESAAYAAAC4MRIABAAAALwxEgAGAAAAwjESAAYAAAC8MRIABgAAAMgxEgAEAAAAzDESAAgAAADUMRIACAAAAMwxEgAIAAAA3DESAAQAAADELRIAFQAAAOAxEgAEAAAA5DESAAwAAADwMRIABAAAAPQxEgAWAAAACjISAAQAAAAOMhIAFAAAACIyEgAEAAAAJjISAA0AAAAzMhIADwAAAP0tEgAQAAAAQjISAAkAAABLMhIACQAAAFQyEgAUAAAAaDISABUAAAB9MhIAFQAAAJIyEgAWAAAAqDISAAQAAACsMhIACgAAALYy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EgAGAAAAn1ESAAYAAAClURIACQAAAH5REgAJAAAArlESAAIAAACQURIACQAAAJkkEgACAAAAn1ESAAYAAACwURIABwAAALdREgAHAAAA1yQSAAIAAAC3URIABwAAAOBHFgACAAAALk8SAAcAAAA1TxIABwAAAC5PEgAHAAAAFCUSAAUAAACAHBYABQAAAFULEgARAAAAZgsSABIAAAB4CxIAAgAAAGYLEgASAAAAvlESAAsAAADJURIADAAAANVREgACAAAAyVESAAwAAADXURIACQAAAOBREgAJAAAAvysSAAIAAACAHBYABQAAADVIFgADAAAAwSsSAAMAAABg4hEAAwAAADAfEgA0AAAAROIRABAAAAAwJhIAUAAAAHTiEQAWAAAAxCsSABwAAABU4hEABgAAAMg6EgBEAQAAY+IRABEAAADIOhIARAEAAIriEQAOAAAAcE8SABsAAACY4hEACgAAAOxREgApAAAAjOERAGYAAABoAgAAFgAAAAAAAAD1AQAA+gEAABcCAABQAgAAqAIAALACAADeAgAA4AIAAOkCAAAAAwAARQMAAGADAABhAwAAdAMAAHUDAAB6AwAAegMAAH4DAAB+AwAAhAMAAIoDAACMAwAAjAMAAI4DAAChAwAAowMAAM4DAADQAwAA1gMAANoDAADaAwAA3AMAANwDAADeAwAA3gMAAOADAADgAwAA4gMAAPMDAAABBAAADAQAAA4EAABPBAAAUQQAAFwEAABeBAAAhgQAAJAEAADEBAAAxwQAAMgEAADLBAAAzAQAANAEAADrBAAA7gQAAPUEAAD4BAAA+QQAADEFAABWBQAAWQUAAF8FAABhBQAAhwUAAIkFAACJBQAAsAUAALkFAAC7BQAAwwUAANAFAADqBQAA8AUAAPQFAAAMBgAADAYAABsGAAAbBgAAHwYAAB8GAAAhBgAAOgYAAEAGAABSBgAAYAYAAG0GAABwBgAAtwYAALoGAAC+BgAAwAYAAM4GAADQBgAA7QYAAPAGAAD5BgAAAQkAAAMJAAAFCQAAOQkAADwJAABNCQAAUAkAAFQJAABYCQAAcAkAAIEJAACDCQAAhQkAAIwJAACPCQAAkAkAAJMJAACoCQAAqgkAALAJAACyCQAAsgkAALYJAAC5CQAAvAkAALwJAAC+CQAAxAkAAMcJAADICQAAywkAAM0J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AADPHgAA0R4AANEeAADTHgAA0x4AANUeAADVHgAA1x4AANceAADZHgAA2R4AANseAADbHgAA3R4AAN0eAADfHgAA3x4AAOEeAADhHgAA4x4AAOMeAADlHgAA5R4AAOceAADnHgAA6R4AAOkeAADrHgAA6x4AAO0eAADtHgAA7x4AAO8eAADxHgAA8R4AAPMeAADzHgAA9R4AAPUeAAD3HgAA9x4AAPkeAAD5HgAA+x4AAPseAAD9HgAA/R4AAP8eAAAHHwAAEB8AABUfAAAgHwAAJx8AADAfAAA3HwAAQB8AAEUfAABQHwAAVx8AAGAfAABnHwAAcB8AAH0fAACAHwAAhx8AAJAfAACXHwAAoB8AAKcfAACwHwAAtB8AALYfAAC3HwAAvh8AAL4fAADCHwAAxB8AAMYfAADHHwAA0B8AANMfAADWHwAA1x8AAOAfAADnHwAA8h8AAPQfAAD2HwAA9x8AAAohAAAKIQAADiEAAA8hAAATIQAAEyEAAC8hAAAvIQAANCEAADQhAAA5IQAAOSEAADwhAAA9IQAARiEAAEkhAABOIQAATiEAAIQhAACEIQAAMCwAAF8sAABhLAAAYSwAAGUsAABmLAAAaCwAAGgsAABqLAAAaiwAAGwsAABsLAAAcSwAAHEsAABzLAAAdCwAAHYsAAB7LAAAgSwAAIEsAACDLAAAgywAAIUsAACFLAAAhywAAIcsAACJLAAAiSwAAIssAACLLAAAjSwAAI0sAACPLAAAjywAAJEsAACRLAAAkywAAJMsAACVLAAAlSwAAJcsAACXLAAAmSwAAJksAACbLAAAmywAAJ0sAACdLAAAnywAAJ8sAAChLAAAoSwAAKMsAACjLAAApSwAAKUsAACnLAAApywAAKksAACpLAAAqywAAKssAACtLAAArSwAAK8sAACvLAAAsSwAALEsAACzLAAAsywAALUsAAC1LAAAtywAALcsAAC5LAAAuSwAALssAAC7LAAAvSwAAL0sAAC/LAAAvywAAMEsAADBLAAAwywAAMMsAADFLAAAxSwAAMcsAADHLAAAySwAAMksAADLLAAAyywAAM0sAADNLAAAzywAAM8sAADRLAAA0SwAANMsAADTLAAA1SwAANUsAADXLAAA1ywAANksAADZLAAA2ywAANssAADdLAAA3SwAAN8sAADfLAAA4SwAAOEsAADjLAAA5CwAAOwsAADsLAAA7iwAAO4sAADzLAAA8ywAAAAtAAAlLQAAJy0AACctAAAtLQAALS0AAEGmAABBpgAAQ6YAAEOmAABFpgAARaYAAEemAABHpgAASaYAAEmmAABLpgAAS6YAAE2mAABNpgAAT6YAAE+mAABRpgAAUaYAAFOmAABTpgAAVaYAAFWmAABXpgAAV6YAAFmmAABZpgAAW6YAAFumAABdpgAAXaYAAF+mAABfpgAAYaYAAGGmAABjpgAAY6YAAGWmAABlpgAAZ6YAAGemAABppgAAaaYAAGumAABrpgAAbaYAAG2mAACBpgAAgaYAAIOmAACDpgAAhaYAAIWmAACHpgAAh6YAAImmAACJpgAAi6YAAIumAACNpgAAjaYAAI+mAACPpgAAkaYAAJGmAACTpgAAk6YAAJWmAACVpgAAl6YAAJemAACZpgAAmaYAAJumAACbpgAAI6cAACOnAAAlpwAAJacAACenAAAnpwAAKacAACmnAAArpwAAK6cAAC2nAAAtpwAAL6cAADGnAAAzpwAAM6cAADWnAAA1pwAAN6cAADenAAA5pwAAOacAADunAAA7pwAAPacAAD2nAAA/pwAAP6cAAEGnAABBpwAAQ6cAAEOnAABFpwAARacAAEenAABHpwAASacAAEmnAABLpwAAS6cAAE2nAABNpwAAT6cAAE+nAABRpwAAUacAAFOnAABTpwAAVacAAFWnAABXpwAAV6cAAFmnAABZpwAAW6cAAFunAABdpwAAXacAAF+nAABfpwAAYacAAGGnAABjpwAAY6cAAGWnAABlpwAAZ6cAAGenAABppwAAaacAAGunAABrpwAAbacAAG2nAABvpwAAb6cAAHGnAAB4pwAAeqcAAHqnAAB8pwAAfKcAAH+nAAB/pwAAgacAAIGnAACDpwAAg6cAAIWnAACFpwAAh6cAAIenAACMpwAAjKcAAI6nAACOpwAAkacAAJGnAACTpwAAlacAAJenAACXpwAAmacAAJmnAACbpwAAm6cAAJ2nAACdpwAAn6cAAJ+nAAChpwAAoacAAKOnAACjpwAApacAAKWnAACnpwAAp6cAAKmnAACppwAAr6cAAK+nAAC1pwAAtacAALenAAC3pwAAuacAALmnAAC7pwAAu6cAAL2nAAC9pwAAv6cAAL+nAADBpwAAwacAAMOn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AAD6HgAA/B4AAPweAAD+HgAA/h4AAAgfAAAPHwAAGB8AAB0fAAAoHwAALx8AADgfAAA/HwAASB8AAE0fAABZHwAAWR8AAFsfAABbHwAAXR8AAF0fAABfHwAAXx8AAGgfAABvHwAAuB8AALsfAADIHwAAyx8AANgfAADbHwAA6B8AAOwfAAD4HwAA+x8AAAIhAAACIQAAByEAAAchAAALIQAADSEAABAhAAASIQAAFSEAABUhAAAZIQAAHSEAACQhAAAkIQAAJiEAACYhAAAoIQAAKCEAACohAAAtIQAAMCEAADMhAAA+IQAAPyEAAEUhAABFIQAAgyEAAIMhAAAALAAALywAAGAsAABgLAAAYiwAAGQsAABnLAAAZywAAGksAABpLAAAaywAAGssAABtLAAAcCwAAHIsAAByLAAAdSwAAHUsAAB+LAAAgCwAAIIsAACCLAAAhCwAAIQsAACGLAAAhiwAAIgsAACILAAAiiwAAIosAACMLAAAjCwAAI4sAACOLAAAkCwAAJAsAACSLAAAkiwAAJQsAACULAAAliwAAJYsAACYLAAAmCwAAJosAACaLAAAnCwAAJwsAACeLAAAniwAAKAsAACgLAAAoiwAAKIsAACkLAAApCwAAKYsAACmLAAAqCwAAKgsAACqLAAAqiwAAKwsAACsLAAAriwAAK4sAACwLAAAsCwAALIsAACyLAAAtCwAALQsAAC2LAAAtiwAALgsAAC4LAAAuiwAALosAAC8LAAAvCwAAL4sAAC+LAAAwCwAAMAsAADCLAAAwiwAAMQsAADELAAAxiwAAMYsAADILAAAyCwAAMosAADKLAAAzCwAAMwsAADOLAAAziwAANAsAADQLAAA0iwAANIsAADULAAA1CwAANYsAADWLAAA2CwAANgsAADaLAAA2iwAANwsAADcLAAA3iwAAN4sAADgLAAA4CwAAOIsAADiLAAA6ywAAOssAADtLAAA7SwAAPIsAADyLAAAQKYAAECmAABCpgAAQqYAAESmAABEpgAARqYAAEamAABIpgAASKYAAEqmAABKpgAATKYAAEymAABOpgAATqYAAFCmAABQpgAAUqYAAFKmAABUpgAAVKYAAFamAABWpgAAWKYAAFimAABapgAAWqYAAFymAABcpgAAXqYAAF6mAABgpgAAYKYAAGKmAABipgAAZKYAAGSmAABmpgAAZqYAAGimAABopgAAaqYAAGqmAABspgAAbKYAAICmAACApgAAgqYAAIKmAACEpgAAhKYAAIamAACGpgAAiKYAAIimAACKpgAAiqYAAIymAACMpgAAjqYAAI6mAACQpgAAkKYAAJKmAACSpgAAlKYAAJSmAACWpgAAlqYAAJimAACYpgAAmqYAAJqmAAAipwAAIqcAACSnAAAkpwAAJqcAACanAAAopwAAKKcAACqnAAAqpwAALKcAACynAAAupwAALqcAADKnAAAypwAANKcAADSnAAA2pwAANqcAADinAAA4pwAAOqcAADqnAAA8pwAAPKcAAD6nAAA+pwAAQKcAAECnAABCpwAAQqcAAESnAABEpwAARqcAAEanAABIpwAASKcAAEqnAABKpwAATKcAAEynAABOpwAATqcAAFCnAABQpwAAUqcAAFKnAABUpwAAVKcAAFanAABWpwAAWKcAAFinAABapwAAWqcAAFynAABcpwAAXqcAAF6nAABgpwAAYKcAAGKnAABipwAAZKcAAGSnAABmpwAAZqcAAGinAABopwAAaqcAAGqnAABspwAAbKcAAG6nAABupwAAeacAAHmnAAB7pwAAe6cAAH2nAAB+pwAAgKcAAICnAACCpwAAgqcAAISnAACEpwAAhqcAAIanAACLpwAAi6cAAI2nAACNpwAAkKcAAJCnAACSpwAAkqcAAJanAACWpwAAmKcAAJinAACapwAAmqcAAJynAACcpwAAnqcAAJ6nAACgpwAAoKcAAKKnAACipwAApKcAAKSnAACmpwAApqcAAKinAACopwAAqqcAAK6nAACwpwAAtKcAALanAAC2pwAAuKcAALinAAC6pwAAuqcAALynAAC8pwAAvqcAAL6nAADApwAAwKcAAMKnAADCpwAAxKcAAMenAADJpwAAyacAANCnAADQpwAA1qcAANanAADYpwAA2KcAAPWnAAD1pwAAIf8AADr/AAAABAEAJwQBALAEAQDTBAEAcAUBAHoFAQB8BQEAigUBAIwFAQCSBQEAlAUBAJUFAQCADAEAsgwBAKAYAQC/GAEAQG4BAF9uAQAA1AEAGdQBADTUAQBN1AEAaNQBAIHUAQCc1AEAnNQBAJ7UAQCf1AEAotQBAKLUAQCl1AEAptQBAKnUAQCs1AEArtQBALXUAQDQ1AEA6dQBAATV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AABSCQAAZAkAAGUJAAAADQAADA0AAA4NAAAQDQAAEg0AAEQNAABGDQAASA0AAEoNAABPDQAAVA0AAGMNAABmDQAAfw0AANocAADaHAAAMKgAADKoAABABgAAQAYAAEAIAABbCAAAXggAAF4IAABABgAAQAYAAMAKAQDmCgEA6woBAPYKAQBkCQAAZQkAAAAdAQAGHQEACB0BAAkdAQALHQEANh0BADodAQA6HQEAPB0BAD0dAQA/HQEARx0BAFAdAQBZHQEAMKgAADmoAAAAFgEARBYBAFAWAQBZFgEAABgAABkYAAAgGAAAeBgAAIAYAACqGAAALyAAAC8gAABgFgEAbBYBAGYKAABvCgAAgBIBAIYSAQCIEgEAiBIBAIoSAQCNEgEAjxIBAJ0SAQCfEgEAqRIBAAAQAACfEAAALqkAAC6pAADgqQAA/qkAAGCqAAB/qgAAZAkAAGUJAADmDAAA7wwAAOkcAADpHAAA8hwAAPIcAAD6HAAA+hwAADCoAAA1qAAAoBkBAKcZAQCqGQEA1xkBANoZAQDkGQEADAYAAAwGAAAbBgAAGwYAAB8GAAAfBgAAwAcAAPoHAAD9BwAA/wcAAD79AAA//QAAgwQAAIMEAABQAwEAegMBAEAGAABABgAA8goBAPIKAQBwDwEAiQ8BAFEJAABSCQAAZAkAAGUJAAABCwAAAwsAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAADwLAABECwAARwsAAEgLAABLCwAATQsAAFULAABXCwAAXAsAAF0LAABfCwAAYwsAAGYLAAB3CwAA2hwAANocAADyHAAA8hwAAAIYAAADGAAABRgAAAUYAABAqAAAd6gAAEAGAABABgAAgAsBAJELAQCZCwEAnAsBAKkLAQCvCwEAUQkAAFEJAADXHAAA1xwAANkcAADZHAAA3BwAAN0cAADgHAAA4BwAAIARAQDfEQEAZAkAAGUJAACBDQAAgw0AAIUNAACWDQAAmg0AALENAACzDQAAuw0AAL0NAAC9DQAAwA0AAMYNAADKDQAAyg0AAM8NAADUDQAA1g0AANYNAADYDQAA3w0AAOYNAADvDQAA8g0AAPQNAADhEQEA9BEBAEAGAABABgAAMA8BAFkPAQBkCQAAZQkAAOYJAADvCQAAAKgAACyo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AADIHgAAyB4AAMoeAADKHgAAzB4AAMweAADOHgAAzh4AANAeAADQHgAA0h4AANIeAADUHgAA1B4AANYeAADWHgAA2B4AANgeAADaHgAA2h4AANweAADcHgAA3h4AAN4eAADgHgAA4B4AAOIeAADiHgAA5B4AAOQeAADmHgAA5h4AAOgeAADoHgAA6h4AAOoeAADsHgAA7B4AAO4eAADuHgAA8B4AAPAeAADyHgAA8h4AAPQeAAD0HgAA9h4AAPYeAAD4HgAA+B4AAPoeAAD6HgAA/B4AAPweAAD+HgAA/h4AAAgfAAAPHwAAGB8AAB0fAAAoHwAALx8AADgfAAA/HwAASB8AAE0fAABZHwAAWR8AAFsfAABbHwAAXR8AAF0fAABfHwAAXx8AAGgfAABvHwAAgB8AAK8fAACyHwAAtB8AALcfAAC8HwAAwh8AAMQfAADHHwAAzB8AANgfAADbHwAA6B8AAOwfAADyHwAA9B8AAPcfAAD8HwAAJiEAACYhAAAqIQAAKyEAADIhAAAyIQAAYCEAAG8hAACDIQAAgyEAALYkAADPJAAAACwAAC8sAABgLAAAYCwAAGIsAABkLAAAZywAAGcsAABpLAAAaSwAAGssAABrLAAAbSwAAHAsAAByLAAAciwAAHUsAAB1LAAAfiwAAIAsAACCLAAAgiwAAIQsAACELAAAhiwAAIYsAACILAAAiCwAAIosAACKLAAAjCwAAIwsAACOLAAAjiwAAJAsAACQLAAAkiwAAJIsAACULAAAlCwAAJYsAACWLAAAmCwAAJgsAACaLAAAmiwAAJwsAACcLAAAniwAAJ4sAACgLAAAoCwAAKIsAACiLAAApCwAAKQsAACmLAAApiwAAKgsAACoLAAAqiwAAKosAACsLAAArCwAAK4sAACuLAAAsCwAALAsAACyLAAAsiwAALQsAAC0LAAAtiwAALYsAAC4LAAAuCwAALosAAC6LAAAvCwAALwsAAC+LAAAviwAAMAsAADALAAAwiwAAMIsAADELAAAxCwAAMYsAADGLAAAyCwAAMgsAADKLAAAyiwAAMwsAADMLAAAziwAAM4sAADQLAAA0CwAANIsAADSLAAA1CwAANQsAADWLAAA1iwAANgsAADYLAAA2iwAANosAADcLAAA3CwAAN4sAADeLAAA4CwAAOAsAADiLAAA4iwAAOssAADrLAAA7SwAAO0sAADyLAAA8iwAAECmAABApgAAQqYAAEKmAABEpgAARKYAAEamAABGpgAASKYAAEimAABKpgAASqYAAEymAABMpgAATqYAAE6mAABQpgAAUKYAAFKmAABSpgAAVKYAAFSmAABWpgAAVqYAAFimAABYpgAAWqYAAFqmAABcpgAAXKYAAF6mAABepgAAYKYAAGCmAABipgAAYqYAAGSmAABkpgAAZqYAAGamAABopgAAaKYAAGqmAABqpgAAbKYAAGymAACApgAAgKYAAIKmAACCpgAAhKYAAISmAACGpgAAhqYAAIimAACIpgAAiqYAAIqmAACMpgAAjKYAAI6mAACOpgAAkKYAAJCmAACSpgAAkqYAAJSmAACUpgAAlqYAAJamAACYpgAAmKYAAJqmAACapgAAIqcAACKnAAAkpwAAJKcAACanAAAmpwAAKKcAACinAAAqpwAAKqcAACynAAAspwAALqcAAC6nAAAypwAAMqcAADSnAAA0pwAANqcAADanAAA4pwAAOKcAADqnAAA6pwAAPKcAADynAAA+pwAAPqcAAECnAABApwAAQqcAAEKnAABEpwAARKcAAEanAABGpwAASKcAAEinAABKpwAASqcAAEynAABMpwAATqcAAE6nAABQpwAAUKcAAFKnAABSpwAAVKcAAFSnAABWpwAAVqcAAFinAABYpwAAWqcAAFqnAABcpwAAXKcAAF6nAABepwAAYKcAAGCnAABipwAAYqcAAGSnAABkpwAAZqcAAGanAABopwAAaKcAAGqnAABqpwAAbKcAAGynAABupwAAbqcAAHmnAAB5pwAAe6cAAHunAAB9pwAAfqcAAICnAACApwAAgqcAAIKnAACEpwAAhKcAAIanAACGpwAAi6cAAIunAACNpwAAjacAAJCnAACQpwAAkqcAAJKnAACWpwAAlqcAAJinAACYpwAAmqcAAJqnAACcpwAAnKcAAJ6nAACepwAAoKcAAKCnAACipwAAoqcAAKSnAACkpwAApqcAAKanAACopwAAqKcAAKqnAACupwAAsKcAALSnAAC2pwAAtqcAALinAAC4pwAAuqcAALqnAAC8pwAAvKcAAL6nAAC+pwAAwKcAAMCnAADCpwAAwqcAAMSnAADHpwAAyacAAMmnAADQpwAA0KcAANanAADWpwAA2KcAANin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AAA2HgAANh4AADgeAAA4HgAAOh4AADoeAAA8HgAAPB4AAD4eAAA+HgAAQB4AAEAeAABCHgAAQh4AAEQeAABEHgAARh4AAEYeAABIHgAASB4AAEoeAABKHgAATB4AAEweAABOHgAATh4AAFAeAABQHgAAUh4AAFIeAABUHgAAVB4AAFYeAABWHgAAWB4AAFgeAABaHgAAWh4AAFweAABcHgAAXh4AAF4eAABgHgAAYB4AAGIeAABiHgAAZB4AAGQeAABmHgAAZh4AAGgeAABoHgAAah4AAGoeAABsHgAAbB4AAG4eAABuHgAAcB4AAHAeAAByHgAAch4AAHQeAAB0HgAAdh4AAHYeAAB4HgAAeB4AAHoeAAB6HgAAfB4AAHweAAB+HgAAfh4AAIAeAACAHgAAgh4AAIIeAACEHgAAhB4AAIYeAACGHgAAiB4AAIgeAACKHgAAih4AAIweAACMHgAAjh4AAI4eAACQHgAAkB4AAJIeAACSHgAAlB4AAJQeAACeHgAAnh4AAKAeAACgHgAAoh4AAKIeAACkHgAApB4AAKYeAACmHgAAqB4AAKgeAACqHgAAqh4AAKweAACsHgAArh4AAK4eAACwHgAAsB4AALIeAACyHgAAtB4AALQeAAC2HgAAth4AALgeAAC4HgAAuh4AALoeAAC8HgAAvB4AAL4eAAC+HgAAwB4AAMAeAADCHgAAwh4AAMQeAADEHgAAxh4AAMYeAADIHgAAyB4AAMoeAADKHgAAzB4AAMweAADOHgAAzh4AANAeAADQHgAA0h4AANIeAADUHgAA1B4AANYeAADWHgAA2B4AANgeAADaHgAA2h4AANweAADcHgAA3h4AAN4eAADgHgAA4B4AAOIeAADiHgAA5B4AAOQeAADmHgAA5h4AAOgeAADoHgAA6h4AAOoeAADsHgAA7B4AAO4eAADuHgAA8B4AAPAeAADyHgAA8h4AAPQeAAD0HgAA9h4AAPYeAAD4HgAA+B4AAPoeAAD6HgAA/B4AAPweAAD+HgAA/h4AAAgfAAAPHwAAGB8AAB0fAAAoHwAALx8AADgfAAA/HwAASB8AAE0fAABZHwAAWR8AAFsfAABbHwAAXR8AAF0fAABfHwAAXx8AAGgfAABvHwAAiB8AAI8fAACYHwAAnx8AAKgfAACvHwAAuB8AALwfAADIHwAAzB8AANgfAADbHwAA6B8AAOwfAAD4HwAA/B8AACYhAAAmIQAAKiEAACshAAAyIQAAMiEAAGAhAABvIQAAgyEAAIMhAAC2JAAAzyQAAAAsAAAvLAAAYCwAAGAsAABiLAAAZCwAAGcsAABnLAAAaSwAAGksAABrLAAAaywAAG0sAABwLAAAciwAAHIsAAB1LAAAdSwAAH4sAACALAAAgiwAAIIsAACELAAAhCwAAIYsAACGLAAAiCwAAIgsAACKLAAAiiwAAIwsAACMLAAAjiwAAI4sAACQLAAAkCwAAJIsAACSLAAAlCwAAJQsAACWLAAAliwAAJgsAACYLAAAmiwAAJosAACcLAAAnCwAAJ4sAACeLAAAoCwAAKAsAACiLAAAoiwAAKQsAACkLAAApiwAAKYsAACoLAAAqCwAAKosAACqLAAArCwAAKwsAACuLAAAriwAALAsAACwLAAAsiwAALIsAAC0LAAAtCwAALYsAAC2LAAAuCwAALgsAAC6LAAAuiwAALwsAAC8LAAAviwAAL4sAADALAAAwCwAAMIsAADCLAAAxCwAAMQsAADGLAAAxiwAAMgsAADILAAAyiwAAMosAADMLAAAzCwAAM4sAADOLAAA0CwAANAsAADSLAAA0iwAANQsAADULAAA1iwAANYsAADYLAAA2CwAANosAADaLAAA3CwAANwsAADeLAAA3iwAAOAsAADgLAAA4iwAAOIsAADrLAAA6ywAAO0sAADtLAAA8iwAAPIsAABApgAAQKYAAEKmAABCpgAARKYAAESmAABGpgAARqYAAEimAABIpgAASqYAAEqmAABMpgAATKYAAE6mAABOpgAAUKYAAFCmAABSpgAAUqYAAFSmAABUpgAAVqYAAFamAABYpgAAWKYAAFqmAABapgAAXKYAAFymAABepgAAXqYAAGCmAABgpgAAYqYAAGKmAABkpgAAZKYAAGamAABmpgAAaKYAAGimAABqpgAAaqYAAGymAABspgAAgKYAAICmAACCpgAAgqYAAISmAACEpgAAhqYAAIamAACIpgAAiKYAAIqmAACKpgAAjKYAAIymAACOpgAAjqYAAJCmAACQpgAAkqYAAJKmAACUpgAAlKYAAJamAACWpgAAmKYAAJimAACapgAAmqYAACKnAAAipwAAJKcAACSnAAAmpwAAJqcAACinAAAopwAAKqcAACqnAAAspwAALKcAAC6nAAAupwAAMqcAADKnAAA0pwAANKcAADanAAA2pwAAOKcAADinAAA6pwAAOqcAADynAAA8pwAAPqcAAD6nAABApwAAQKcAAEKnAABCpwAARKcAAESnAABGpwAARqcAAEinAABIpwAASqcAAEqnAABMpwAATKcAAE6nAABOpwAAUKcAAFCnAABSpwAAUqcAAFSnAABUpwAAVqcAAFanAABYpwAAWKcAAFqnAABapwAAXKcAAFynAABepwAAXqcAAGCnAABgpwAAYqcAAGKnAABkpwAAZKcAAGanAABmpwAAaKcAAGinAABqpwAAaqcAAGynAABspwAAbqcAAG6nAAB5pwAAeacAAHunAAB7pwAAfacAAH6nAACApwAAgKcAAIKnAACCpwAAhKcAAISnAACGpwAAhqcAAIunAACLpwAAjacAAI2nAACQpwAAkKcAAJKnAACSpwAAlqcAAJanAACYpwAAmKcAAJqnAACapwAAnKcAAJynAACepwAAnqcAAKCnAACgpwAAoqcAAKKnAACkpwAApKcAAKanAACmpwAAqKcAAKinAACqpwAArqcAALCnAAC0pwAAtqcAALanAAC4pwAAuKcAALqnAAC6pwAAvKcAALynAAC+pwAAvqcAAMCnAADApwAAwqcAAMKnAADEpwAAx6cAAMmnAADJpwAA0KcAANCnAADWpwAA1qcAANinAADYpwAA9acAAPWnAAAh/wAAOv8AAAAEAQAnBAEAsAQBANMEAQBwBQEAegUBAHwFAQCKBQEAjAUBAJIFAQCUBQEAlQUBAIAMAQCyDAEAoBgBAL8YAQBAbgEAX24BAADpAQAh6QEAYQAAAHoAAAC1AAAAtQAAAN8AAAD2AAAA+AAAAP8AAAABAQAAAQEAAAMBAAADAQAABQEAAAUBAAAHAQAABwEAAAkBAAAJAQAACwEAAAsBAAANAQAADQEAAA8BAAAPAQAAEQEAABEBAAATAQAAEwEAABUBAAAVAQAAFwEAABcBAAAZAQAAGQEAABsBAAAbAQAAHQEAAB0BAAAfAQAAHwEAACEBAAAhAQAAIwEAACMBAAAlAQAAJQEAACcBAAAnAQAAKQEAACkBAAArAQAAKwEAAC0BAAAtAQAALwEAAC8BAAAxAQAAMQEAADMBAAAzAQAANQEAADUBAAA3AQAANwEAADoB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AACpHgAAqR4AAKseAACrHgAArR4AAK0eAACvHgAArx4AALEeAACxHgAAsx4AALMeAAC1HgAAtR4AALceAAC3HgAAuR4AALkeAAC7HgAAux4AAL0eAAC9HgAAvx4AAL8eAADBHgAAwR4AAMMeAADDHgAAxR4AAMUeAADHHgAAxx4AAMkeAADJHgAAyx4AAMseAADNHgAAzR4AAM8eAADPHgAA0R4AANEeAADTHgAA0x4AANUeAADVHgAA1x4AANceAADZHgAA2R4AANseAADbHgAA3R4AAN0eAADfHgAA3x4AAOEeAADhHgAA4x4AAOMeAADlHgAA5R4AAOceAADnHgAA6R4AAOkeAADrHgAA6x4AAO0eAADtHgAA7x4AAO8eAADxHgAA8R4AAPMeAADzHgAA9R4AAPUeAAD3HgAA9x4AAPkeAAD5HgAA+x4AAPseAAD9HgAA/R4AAP8eAAAHHwAAEB8AABUfAAAgHwAAJx8AADAfAAA3HwAAQB8AAEUfAABQHwAAVx8AAGAfAABnHwAAcB8AAH0fAACAHwAAhx8AAJAfAACXHwAAoB8AAKcfAACwHwAAtB8AALYfAAC3HwAAvh8AAL4fAADCHwAAxB8AAMYfAADHHwAA0B8AANMfAADWHwAA1x8AAOAfAADnHwAA8h8AAPQfAAD2HwAA9x8AAE4hAABOIQAAcCEAAH8hAACEIQAAhCEAANAkAADpJAAAMCwAAF8sAABhLAAAYSwAAGUsAABmLAAAaCwAAGgsAABqLAAAaiwAAGwsAABsLAAAcywAAHMsAAB2LAAAdiwAAIEsAACBLAAAgywAAIMsAACFLAAAhSwAAIcsAACHLAAAiSwAAIksAACLLAAAiywAAI0sAACNLAAAjywAAI8sAACRLAAAkSwAAJMsAACTLAAAlSwAAJUsAACXLAAAlywAAJksAACZLAAAmywAAJssAACdLAAAnSwAAJ8sAACfLAAAoSwAAKEsAACjLAAAoywAAKUsAAClLAAApywAAKcsAACpLAAAqSwAAKssAACrLAAArSwAAK0sAACvLAAArywAALEsAACxLAAAsywAALMsAAC1LAAAtSwAALcsAAC3LAAAuSwAALksAAC7LAAAuywAAL0sAAC9LAAAvywAAL8sAADBLAAAwSwAAMMsAADDLAAAxSwAAMUsAADHLAAAxywAAMksAADJLAAAyywAAMssAADNLAAAzSwAAM8sAADPLAAA0SwAANEsAADTLAAA0ywAANUsAADVLAAA1ywAANcsAADZLAAA2SwAANssAADbLAAA3SwAAN0sAADfLAAA3ywAAOEsAADhLAAA4ywAAOMsAADsLAAA7CwAAO4sAADuLAAA8ywAAPMsAAAALQAAJS0AACctAAAnLQAALS0AAC0tAABBpgAAQaYAAEOmAABDpgAARaYAAEWmAABHpgAAR6YAAEmmAABJpgAAS6YAAEumAABNpgAATaYAAE+mAABPpgAAUaYAAFGmAABTpgAAU6YAAFWmAABVpgAAV6YAAFemAABZpgAAWaYAAFumAABbpgAAXaYAAF2mAABfpgAAX6YAAGGmAABhpgAAY6YAAGOmAABlpgAAZaYAAGemAABnpgAAaaYAAGmmAABrpgAAa6YAAG2mAABtpgAAgaYAAIGmAACDpgAAg6YAAIWmAACFpgAAh6YAAIemAACJpgAAiaYAAIumAACLpgAAjaYAAI2mAACPpgAAj6YAAJGmAACRpgAAk6YAAJOmAACVpgAAlaYAAJemAACXpgAAmaYAAJmmAACbpgAAm6YAACOnAAAjpwAAJacAACWnAAAnpwAAJ6cAACmnAAAppwAAK6cAACunAAAtpwAALacAAC+nAAAvpwAAM6cAADOnAAA1pwAANacAADenAAA3pwAAOacAADmnAAA7pwAAO6cAAD2nAAA9pwAAP6cAAD+nAABBpwAAQacAAEOnAABDpwAARacAAEWnAABHpwAAR6cAAEmnAABJpwAAS6cAAEunAABNpwAATacAAE+nAABPpwAAUacAAFGnAABTpwAAU6cAAFWnAABVpwAAV6cAAFenAABZpwAAWacAAFunAABbpwAAXacAAF2nAABfpwAAX6cAAGGnAABhpwAAY6cAAGOnAABlpwAAZacAAGenAABnpwAAaacAAGmnAABrpwAAa6cAAG2nAABtpwAAb6cAAG+nAAB6pwAAeqcAAHynAAB8pwAAf6cAAH+nAACBpwAAgacAAIOnAACDpwAAhacAAIWnAACHpwAAh6cAAIynAACMpwAAkacAAJGnAACTpwAAlKcAAJenAACXpwAAmacAAJmnAACbpwAAm6cAAJ2nAACdpwAAn6cAAJ+nAAChpwAAoacAAKOnAACjpwAApacAAKWn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AAAdHgAAHx4AAB8eAAAhHgAAIR4AACMeAAAjHgAAJR4AACUeAAAnHgAAJx4AACkeAAApHgAAKx4AACseAAAtHgAALR4AAC8eAAAvHgAAMR4AADEeAAAzHgAAMx4AADUeAAA1HgAANx4AADceAAA5HgAAOR4AADseAAA7HgAAPR4AAD0eAAA/HgAAPx4AAEEeAABBHgAAQx4AAEMeAABFHgAARR4AAEceAABHHgAASR4AAEkeAABLHgAASx4AAE0eAABNHgAATx4AAE8eAABRHgAAUR4AAFMeAABTHgAAVR4AAFUeAABXHgAAVx4AAFkeAABZHgAAWx4AAFseAABdHgAAXR4AAF8eAABfHgAAYR4AAGEeAABjHgAAYx4AAGUeAABlHgAAZx4AAGceAABpHgAAaR4AAGseAABrHgAAbR4AAG0eAABvHgAAbx4AAHEeAABxHgAAcx4AAHMeAAB1HgAAdR4AAHceAAB3HgAAeR4AAHkeAAB7HgAAex4AAH0eAAB9HgAAfx4AAH8eAACBHgAAgR4AAIMeAACDHgAAhR4AAIUeAACHHgAAhx4AAIkeAACJHgAAix4AAIseAACNHgAAjR4AAI8eAACPHgAAkR4AAJEeAACTHgAAkx4AAJUeAACbHgAAoR4AAKEeAACjHgAAox4AAKUeAAClHgAApx4AAKceAACpHgAAqR4AAKseAACrHgAArR4AAK0eAACvHgAArx4AALEeAACxHgAAsx4AALMeAAC1HgAAtR4AALceAAC3HgAAuR4AALkeAAC7HgAAux4AAL0eAAC9HgAAvx4AAL8eAADBHgAAwR4AAMMeAADDHgAAxR4AAMUeAADHHgAAxx4AAMkeAADJHgAAyx4AAMseAADNHgAAzR4AAM8eAADPHgAA0R4AANEeAADTHgAA0x4AANUeAADVHgAA1x4AANceAADZHgAA2R4AANseAADbHgAA3R4AAN0eAADfHgAA3x4AAOEeAADhHgAA4x4AAOMeAADlHgAA5R4AAOceAADnHgAA6R4AAOkeAADrHgAA6x4AAO0eAADtHgAA7x4AAO8eAADxHgAA8R4AAPMeAADzHgAA9R4AAPUeAAD3HgAA9x4AAPkeAAD5HgAA+x4AAPseAAD9HgAA/R4AAP8eAAAHHwAAEB8AABUfAAAgHwAAJx8AADAfAAA3HwAAQB8AAEUfAABQHwAAVx8AAGAfAABnHwAAcB8AAH0fAACAHwAAtB8AALYfAAC3HwAAvB8AALwfAAC+HwAAvh8AAMIfAADEHwAAxh8AAMcfAADMHwAAzB8AANAfAADTHwAA1h8AANcfAADgHwAA5x8AAPIfAAD0HwAA9h8AAPcfAAD8HwAA/B8AAE4hAABOIQAAcCEAAH8hAACEIQAAhCEAANAkAADpJAAAMCwAAF8sAABhLAAAYSwAAGUsAABmLAAAaCwAAGgsAABqLAAAaiwAAGwsAABsLAAAcywAAHMsAAB2LAAAdiwAAIEsAACBLAAAgywAAIMsAACFLAAAhSwAAIcsAACHLAAAiSwAAIksAACLLAAAiywAAI0sAACNLAAAjywAAI8sAACRLAAAkSwAAJMsAACTLAAAlSwAAJUsAACXLAAAlywAAJksAACZLAAAmywAAJssAACdLAAAnSwAAJ8sAACfLAAAoSwAAKEsAACjLAAAoywAAKUsAAClLAAApywAAKcsAACpLAAAqSwAAKssAACrLAAArSwAAK0sAACvLAAArywAALEsAACxLAAAsywAALMsAAC1LAAAtSwAALcsAAC3LAAAuSwAALksAAC7LAAAuywAAL0sAAC9LAAAvywAAL8sAADBLAAAwSwAAMMsAADDLAAAxSwAAMUsAADHLAAAxywAAMksAADJLAAAyywAAMssAADNLAAAzSwAAM8sAADPLAAA0SwAANEsAADTLAAA0ywAANUsAADVLAAA1ywAANcsAADZLAAA2SwAANssAADbLAAA3SwAAN0sAADfLAAA3ywAAOEsAADhLAAA4ywAAOMsAADsLAAA7CwAAO4sAADuLAAA8ywAAPMsAAAALQAAJS0AACctAAAnLQAALS0AAC0tAABBpgAAQaYAAEOmAABDpgAARaYAAEWmAABHpgAAR6YAAEmmAABJpgAAS6YAAEumAABNpgAATaYAAE+mAABPpgAAUaYAAFGmAABTpgAAU6YAAFWmAABVpgAAV6YAAFemAABZpgAAWaYAAFumAABbpgAAXaYAAF2mAABfpgAAX6YAAGGmAABhpgAAY6YAAGOmAABlpgAAZaYAAGemAABnpgAAaaYAAGmmAABrpgAAa6YAAG2mAABtpgAAgaYAAIGmAACDpgAAg6YAAIWmAACFpgAAh6YAAIemAACJpgAAiaYAAIumAACLpgAAjaYAAI2mAACPpgAAj6YAAJGmAACRpgAAk6YAAJOmAACVpgAAlaYAAJemAACXpgAAmaYAAJmmAACbpgAAm6YAACOnAAAjpwAAJacAACWnAAAnpwAAJ6cAACmnAAAppwAAK6cAACunAAAtpwAALacAAC+nAAAvpwAAM6cAADOnAAA1pwAANacAADenAAA3pwAAOacAADmnAAA7pwAAO6cAAD2nAAA9pwAAP6cAAD+nAABBpwAAQacAAEOnAABDpwAARacAAEWnAABHpwAAR6cAAEmnAABJpwAAS6cAAEunAABNpwAATacAAE+nAABPpwAAUacAAFGnAABTpwAAU6cAAFWnAABVpwAAV6cAAFenAABZpwAAWacAAFunAABbpwAAXacAAF2nAABfpwAAX6cAAGGnAABhpwAAY6cAAGOnAABlpwAAZacAAGenAABnpwAAaacAAGmnAABrpwAAa6cAAG2nAABtpwAAb6cAAG+nAAB6pwAAeqcAAHynAAB8pwAAf6cAAH+nAACBpwAAgacAAIOnAACDpwAAhacAAIWnAACHpwAAh6cAAIynAACMpwAAkacAAJGnAACTpwAAlKcAAJenAACXpwAAmacAAJmnAACbpwAAm6cAAJ2nAACdpwAAn6cAAJ+nAAChpwAAoacAAKOnAACjpwAApacAAKWnAACnpwAAp6cAAKmnAACppwAAtacAALWnAAC3pwAAt6cAALmnAAC5pwAAu6cAALunAAC9pwAAvacAAL+nAAC/pwAAwacAAMGnAADDpwAAw6cAAMinAADIpwAAyqcAAMqnAADRpwAA0acAANenAADXpwAA2acAANmnAAD2pwAA9qcAAFOrAABTqwAAcKsAAL+rAAAA+wAABvsAABP7AAAX+wAAQf8AAFr/AAAoBAEATwQBANgEAQD7BAEAlwUBAKEFAQCjBQEAsQUBALMFAQC5BQEAuwUBALwFAQDADAEA8gwBAMAYAQDfGAEAYG4BAH9uAQAi6QEAQ+kBAC0AAAAtAAAAigUAAIoFAAC+BQAAvgUAAAAUAAAAFAAABhgAAAYYAAAQIAAAFSAAAFMgAABTIAAAeyAAAHsgAACLIAAAiyAAABIiAAASIgAAFy4AABcuAAAaLgAAGi4AADouAAA7LgAAQC4AAEAuAABdLgAAXS4AABwwAAAcMAAAMDAAADAw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AABZHgAAWx4AAFseAABdHgAAXR4AAF8eAABfHgAAYR4AAGEeAABjHgAAYx4AAGUeAABlHgAAZx4AAGceAABpHgAAaR4AAGseAABrHgAAbR4AAG0eAABvHgAAbx4AAHEeAABxHgAAcx4AAHMeAAB1HgAAdR4AAHceAAB3HgAAeR4AAHkeAAB7HgAAex4AAH0eAAB9HgAAfx4AAH8eAACBHgAAgR4AAIMeAACDHgAAhR4AAIUeAACHHgAAhx4AAIkeAACJHgAAix4AAIseAACNHgAAjR4AAI8eAACPHgAAkR4AAJEeAACTHgAAkx4AAJUeAACdHgAAnx4AAJ8eAAChHgAAoR4AAKMeAACjHgAApR4AAKUeAACnHgAApx4AAKkeAACpHgAAqx4AAKseAACtHgAArR4AAK8eAACvHgAAsR4AALEeAACzHgAAsx4AALUeAAC1HgAAtx4AALceAAC5HgAAuR4AALseAAC7HgAAvR4AAL0eAAC/HgAAvx4AAMEeAADBHgAAwx4AAMMeAADFHgAAxR4AAMceAADHHgAAyR4AAMkeAADLHgAAyx4AAM0eAADNHgAAzx4AAM8eAADRHgAA0R4AANMeAADTHgAA1R4AANUeAADXHgAA1x4AANkeAADZHgAA2x4AANseAADdHgAA3R4AAN8eAADfHgAA4R4AAOEeAADjHgAA4x4AAOUeAADlHgAA5x4AAOceAADpHgAA6R4AAOseAADrHgAA7R4AAO0eAADvHgAA7x4AAPEeAADxHgAA8x4AAPMeAAD1HgAA9R4AAPceAAD3HgAA+R4AAPkeAAD7HgAA+x4AAP0eAAD9HgAA/x4AAAcfAAAQHwAAFR8AACAfAAAnHwAAMB8AADcfAABAHwAARR8AAFAfAABXHwAAYB8AAGcfAABwHwAAfR8AAIAfAACHHwAAkB8AAJcfAACgHwAApx8AALAfAAC0HwAAth8AALcfAAC+HwAAvh8AAMIfAADEHwAAxh8AAMcfAADQHwAA0x8AANYfAADXHwAA4B8AAOcfAADyHwAA9B8AAPYfAAD3HwAAcSAAAHEgAAB/IAAAfyAAAJAgAACcIAAACiEAAAohAAAOIQAADyEAABMhAAATIQAALyEAAC8hAAA0IQAANCEAADkhAAA5IQAAPCEAAD0hAABGIQAASSEAAE4hAABOIQAAcCEAAH8hAACEIQAAhCEAANAkAADpJAAAMCwAAF8sAABhLAAAYSwAAGUsAABmLAAAaCwAAGgsAABqLAAAaiwAAGwsAABsLAAAcSwAAHEsAABzLAAAdCwAAHYsAAB9LAAAgSwAAIEsAACDLAAAgywAAIUsAACFLAAAhywAAIcsAACJLAAAiSwAAIssAACLLAAAjSwAAI0sAACPLAAAjywAAJEsAACRLAAAkywAAJMsAACVLAAAlSwAAJcsAACXLAAAmSwAAJksAACbLAAAmywAAJ0sAACdLAAAnywAAJ8sAAChLAAAoSwAAKMsAACjLAAApSwAAKUsAACnLAAApywAAKksAACpLAAAqywAAKssAACtLAAArSwAAK8sAACvLAAAsSwAALEsAACzLAAAsywAALUsAAC1LAAAtywAALcsAAC5LAAAuSwAALssAAC7LAAAvSwAAL0sAAC/LAAAvywAAMEsAADBLAAAwywAAMMsAADFLAAAxSwAAMcsAADHLAAAySwAAMksAADLLAAAyywAAM0sAADNLAAAzywAAM8sAADRLAAA0SwAANMsAADTLAAA1SwAANUsAADXLAAA1ywAANksAADZLAAA2ywAANssAADdLAAA3SwAAN8sAADfLAAA4SwAAOEsAADjLAAA5CwAAOwsAADsLAAA7iwAAO4sAADzLAAA8ywAAAAtAAAlLQAAJy0AACctAAAtLQAALS0AAEGmAABBpgAAQ6YAAEOmAABFpgAARaYAAEemAABHpgAASaYAAEmmAABLpgAAS6YAAE2mAABNpgAAT6YAAE+mAABRpgAAUaYAAFOmAABTpgAAVaYAAFWmAABXpgAAV6YAAFmmAABZpgAAW6YAAFumAABdpgAAXaYAAF+mAABfpgAAYaYAAGGmAABjpgAAY6YAAGWmAABlpgAAZ6YAAGemAABppgAAaaYAAGumAABrpgAAbaYAAG2mAACBpgAAgaYAAIOmAACDpgAAhaYAAIWmAACHpgAAh6YAAImmAACJpgAAi6YAAIumAACNpgAAjaYAAI+mAACPpgAAkaYAAJGmAACTpgAAk6YAAJWmAACVpgAAl6YAAJemAACZpgAAmaYAAJumAACdpgAAI6cAACOnAAAlpwAAJacAACenAAAnpwAAKacAACmnAAArpwAAK6cAAC2nAAAtpwAAL6cAADGnAAAzpwAAM6cAADWnAAA1pwAAN6cAADenAAA5pwAAOacAADunAAA7pwAAPacAAD2nAAA/pwAAP6cAAEGnAABBpwAAQ6cAAEOnAABFpwAARacAAEenAABHpwAASacAAEmnAABLpwAAS6cAAE2nAABNpwAAT6cAAE+nAABRpwAAUacAAFOnAABTpwAAVacAAFWnAABXpwAAV6cAAFmnAABZpwAAW6cAAFunAABdpwAAXacAAF+nAABfpwAAYacAAGGnAABjpwAAY6cAAGWnAABlpwAAZ6cAAGenAABppwAAaacAAGunAABrpwAAbacAAG2nAABvpwAAeKcAAHqnAAB6pwAAfKcAAHynAAB/pwAAf6cAAIGnAACBpwAAg6cAAIOnAACFpwAAhacAAIenAACHpwAAjKcAAIynAACOpwAAjqcAAJGnAACRpwAAk6cAAJWnAACXpwAAl6cAAJmnAACZpwAAm6cAAJunAACdpwAAnacAAJ+nAACfpwAAoacAAKGnAACjpwAAo6cAAKWnAAClpwAAp6cAAKenAACppwAAqacAAK+nAACvpwAAtacAALWnAAC3pwAAt6cAALmnAAC5pwAAu6cAALunAAC9pwAAvacAAL+nAAC/pwAAwacAAMGnAADDpwAAw6cAAMinAADIpwAAyqcAAMqnAADRpwAA0acAANOnAADTpwAA1acAANWnAADXpwAA16cAANmnAADZpwAA8qcAAPSnAAD2pwAA9qcAAPinAAD6pwAAMKsAAFqrAABcqwAAaasAAHCrAAC/qwAAAPsAAAb7AAAT+wAAF/sAAEH/AABa/wAAKAQBAE8EAQDYBAEA+wQBAJcFAQChBQEAowUBALEFAQCzBQEAuQUBALsFAQC8BQEAgAcBAIAHAQCDBwEAhQcBAIcHAQCwBwEAsgcBALoHAQDADAEA8gwBAMAYAQDfGAEAYG4BAH9uAQAa1AEAM9QBAE7UAQBU1AEAVtQBAGfUAQCC1AEAm9QBALbUAQC51AEAu9QBALvUAQC91AEAw9QBAMXUAQDP1AEA6tQBAAPVAQAe1QEAN9UBAFLVAQBr1QEAhtUBAJ/VAQC61QEA09UBAO7VAQAH1gEAItYBADvWAQBW1gEAb9YBAIrWAQCl1gEAwtYBANrWAQDc1gEA4dYBAPzWAQAU1wEAFtcBABvXAQA21wEATtcBAFDXAQBV1wEAcNcBAIjX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AABgHgAAYh4AAGIeAABkHgAAZB4AAGYeAABmHgAAaB4AAGgeAABqHgAAah4AAGweAABsHgAAbh4AAG4eAABwHgAAcB4AAHIeAAByHgAAdB4AAHQeAAB2HgAAdh4AAHgeAAB4HgAAeh4AAHoeAAB8HgAAfB4AAH4eAAB+HgAAgB4AAIAeAACCHgAAgh4AAIQeAACEHgAAhh4AAIYeAACIHgAAiB4AAIoeAACKHgAAjB4AAIweAACOHgAAjh4AAJAeAACQHgAAkh4AAJIeAACUHgAAlB4AAJ4eAACeHgAAoB4AAKAeAACiHgAAoh4AAKQeAACkHgAAph4AAKYeAACoHgAAqB4AAKoeAACqHgAArB4AAKweAACuHgAArh4AALAeAACwHgAAsh4AALIeAAC0HgAAtB4AALYeAAC2HgAAuB4AALgeAAC6HgAAuh4AALweAAC8HgAAvh4AAL4eAADAHgAAwB4AAMIeAADCHgAAxB4AAMQeAADGHgAAxh4AAMgeAADIHgAAyh4AAMoeAADMHgAAzB4AAM4eAADOHgAA0B4AANAeAADSHgAA0h4AANQeAADUHgAA1h4AANYeAADYHgAA2B4AANoeAADaHgAA3B4AANweAADeHgAA3h4AAOAeAADgHgAA4h4AAOIeAADkHgAA5B4AAOYeAADmHgAA6B4AAOgeAADqHgAA6h4AAOweAADsHgAA7h4AAO4eAADwHgAA8B4AAPIeAADyHgAA9B4AAPQeAAD2HgAA9h4AAPgeAAD4HgAA+h4AAPoeAAD8HgAA/B4AAP4eAAD+HgAACB8AAA8fAAAYHwAAHR8AACgfAAAvHwAAOB8AAD8fAABIHwAATR8AAFkfAABZHwAAWx8AAFsfAABdHwAAXR8AAF8fAABfHwAAaB8AAG8fAAC4HwAAux8AAMgfAADLHwAA2B8AANsfAADoHwAA7B8AAPgfAAD7HwAAAiEAAAIhAAAHIQAAByEAAAshAAANIQAAECEAABIhAAAVIQAAFSEAABkhAAAdIQAAJCEAACQhAAAmIQAAJiEAACghAAAoIQAAKiEAAC0hAAAwIQAAMyEAAD4hAAA/IQAARSEAAEUhAABgIQAAbyEAAIMhAACDIQAAtiQAAM8kAAAALAAALywAAGAsAABgLAAAYiwAAGQsAABnLAAAZywAAGksAABpLAAAaywAAGssAABtLAAAcCwAAHIsAAByLAAAdSwAAHUsAAB+LAAAgCwAAIIsAACCLAAAhCwAAIQsAACGLAAAhiwAAIgsAACILAAAiiwAAIosAACMLAAAjCwAAI4sAACOLAAAkCwAAJAsAACSLAAAkiwAAJQsAACULAAAliwAAJYsAACYLAAAmCwAAJosAACaLAAAnCwAAJwsAACeLAAAniwAAKAsAACgLAAAoiwAAKIsAACkLAAApCwAAKYsAACmLAAAqCwAAKgsAACqLAAAqiwAAKwsAACsLAAAriwAAK4sAACwLAAAsCwAALIsAACyLAAAtCwAALQsAAC2LAAAtiwAALgsAAC4LAAAuiwAALosAAC8LAAAvCwAAL4sAAC+LAAAwCwAAMAsAADCLAAAwiwAAMQsAADELAAAxiwAAMYsAADILAAAyCwAAMosAADKLAAAzCwAAMwsAADOLAAAziwAANAsAADQLAAA0iwAANIsAADULAAA1CwAANYsAADWLAAA2CwAANgsAADaLAAA2iwAANwsAADcLAAA3iwAAN4sAADgLAAA4CwAAOIsAADiLAAA6ywAAOssAADtLAAA7SwAAPIsAADyLAAAQKYAAECmAABCpgAAQqYAAESmAABEpgAARqYAAEamAABIpgAASKYAAEqmAABKpgAATKYAAEymAABOpgAATqYAAFCmAABQpgAAUqYAAFKmAABUpgAAVKYAAFamAABWpgAAWKYAAFimAABapgAAWqYAAFymAABcpgAAXqYAAF6mAABgpgAAYKYAAGKmAABipgAAZKYAAGSmAABmpgAAZqYAAGimAABopgAAaqYAAGqmAABspgAAbKYAAICmAACApgAAgqYAAIKmAACEpgAAhKYAAIamAACGpgAAiKYAAIimAACKpgAAiqYAAIymAACMpgAAjqYAAI6mAACQpgAAkKYAAJKmAACSpgAAlKYAAJSmAACWpgAAlqYAAJimAACYpgAAmqYAAJqmAAAipwAAIqcAACSnAAAkpwAAJqcAACanAAAopwAAKKcAACqnAAAqpwAALKcAACynAAAupwAALqcAADKnAAAypwAANKcAADSnAAA2pwAANqcAADinAAA4pwAAOqcAADqnAAA8pwAAPKcAAD6nAAA+pwAAQKcAAECnAABCpwAAQqcAAESnAABEpwAARqcAAEanAABIpwAASKcAAEqn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AACBBAAAigQAAC8FAAAxBQAAVgUAAFkFAABZBQAAYAUAAIgFAADQBQAA6gUAAO8FAADyBQAAIAYAAEoGAABuBgAAbwYAAHEGAADTBgAA1QYAANUGAADlBgAA5gYAAO4GAADvBgAA+gYAAPwGAAD/BgAA/wYAABAHAAAQBwAAEgcAAC8HAABNBwAApQcAALEHAACxBwAAygcAAOoHAAD0BwAA9QcAAPoHAAD6BwAAAAgAABUIAAAaCAAAGggAACQIAAAkCAAAKAgAACgIAABACAAAWAgAAGAIAABqCAAAcAgAAIcIAACJCAAAjggAAKAIAADJCAAABAkAADkJAAA9CQAAPQkAAFAJAABQCQAAWAkAAGEJAABxCQAAgAkAAIUJAACMCQAAjwkAAJAJAACTCQAAqAkAAKoJAACwCQAAsgkAALIJAAC2CQAAuQkAAL0JAAC9CQAAzgkAAM4JAADcCQAA3QkAAN8JAADhCQAA8AkAAPEJAAD8CQAA/AkAAAUKAAAKCgAADwoAABAKAAATCgAAKAoAACoKAAAwCgAAMgoAADMKAAA1CgAANgoAADgKAAA5CgAAWQoAAFwKAABeCgAAXgoAAHIKAAB0CgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvQoAAL0KAADQCgAA0AoAAOAKAADhCgAA+QoAAPkKAAAFCwAADAsAAA8LAAAQCwAAEwsAACgLAAAqCwAAMAsAADILAAAzCwAANQsAADkLAAA9CwAAPQsAAFwLAABdCwAAXwsAAGELAABxCwAAcQsAAIMLAACDCwAAhQsAAIoLAACOCwAAkAsAAJILAACVCwAAmQsAAJoLAACcCwAAnAsAAJ4LAACfCwAAowsAAKQLAACoCwAAqgsAAK4LAAC5CwAA0AsAANALAAAFDAAADAwAAA4MAAAQDAAAEgwAACgMAAAqDAAAOQwAAD0MAAA9DAAAWAwAAFoMAABdDAAAXQwAAGAMAABhDAAAgAwAAIAMAACFDAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvQwAAL0MAADdDAAA3gwAAOAMAADhDAAA8QwAAPIMAAAEDQAADA0AAA4NAAAQDQAAEg0AADoNAAA9DQAAPQ0AAE4NAABODQAAVA0AAFYN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AQCL0QEAqtEBAK3RAQBC0gEARNIBAADaAQA22gEAO9oBAGzaAQB12gEAddoBAITaAQCE2gEAm9oBAJ/aAQCh2gEAr9oBAADgAQAG4AEACOABABjgAQAb4AEAIeABACPgAQAk4AEAJuABACrgAQCP4AEAj+ABADDhAQA24QEAruIBAK7iAQDs4gEA7+IBAOzkAQDv5AEA0OgBANboAQBE6QEASukBAPvzAQD/8wEAIAAOAH8ADgAAAQ4A7wEOAAARAABfEQAAYKkAAHypAAAKAAAACgAAAACsAAAArAAAHKwAABysAAA4rAAAOKwAAFSsAABUrAAAcKwAAHCsAACMrAAAjKwAAKisAACorAAAxKwAAMSsAADgrAAA4KwAAPysAAD8rAAAGK0AABitAAA0rQAANK0AAFCtAABQrQAAbK0AAGytAACIrQAAiK0AAKStAACkrQAAwK0AAMCtAADcrQAA3K0AAPitAAD4rQAAFK4AABSuAAAwrgAAMK4AAEyuAABMrgAAaK4AAGiuAACErgAAhK4AAKCuAACgrgAAvK4AALyuAADYrgAA2K4AAPSuAAD0rgAAEK8AABCvAAAsrwAALK8AAEivAABIrwAAZK8AAGSvAACArwAAgK8AAJyvAACcrwAAuK8AALivAADUrwAA1K8AAPCvAADwrwAADLAAAAywAAAosAAAKLAAAESwAABEsAAAYLAAAGCwAAB8sAAAfLAAAJiwAACYsAAAtLAAALSwAADQsAAA0LAAAOywAADssAAACLEAAAixAAAksQAAJLEAAECxAABAsQAAXLEAAFyxAAB4sQAAeLEAAJSxAACUsQAAsLEAALCxAADMsQAAzLEAAOixAADosQAABLIAAASyAAAgsgAAILIAADyyAAA8sgAAWLIAAFiyAAB0sgAAdLIAAJCyAACQsgAArLIAAKyyAADIsgAAyLIAAOSyAADksgAAALMAAACzAAAcswAAHLMAADizAAA4swAAVLMAAFSzAABwswAAcLMAAIyzAACMswAAqLMAAKizAADEswAAxLMAAOCzAADgswAA/LMAAPyzAAAYtAAAGLQAADS0AAA0tAAAULQAAFC0AABstAAAbLQAAIi0AACItAAApLQAAKS0AADAtAAAwLQAANy0AADctAAA+LQAAPi0AAAUtQAAFLUAADC1AAAwtQAATLUAAEy1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AAAEzgAABM4AACDOAAAgzgAAPM4AADzOAABYzgAAWM4AAHTOAAB0zgAAkM4AAJDOAACszgAArM4AAMjOAADIzgAA5M4AAOTOAAAAzwAAAM8AABzPAAAczwAAOM8AADjPAABUzwAAVM8AAHDPAABwzwAAjM8AAIzPAACozwAAqM8AAMTPAADEzwAA4M8AAODPAAD8zwAA/M8AABjQAAAY0AAANNAAADTQAABQ0AAAUNAAAGzQAABs0AAAiNAAAIjQAACk0AAApNAAAMDQAADA0AAA3NAAANzQAAD40AAA+NAAABTRAAAU0QAAMNEAADDRAABM0QAATNEAAGjRAABo0QAAhNEAAITRAACg0QAAoNEAALzRAAC80QAA2NEAANjRAAD00QAA9NEAABDSAAAQ0gAALNIAACzSAABI0gAASNIAAGTSAABk0gAAgNIAAIDSAACc0gAAnNIAALjSAAC40gAA1NIAANTSAADw0gAA8NIAAAzTAAAM0wAAKNMAACjTAABE0wAARNMAAGDTAABg0wAAfNMAAHzTAACY0wAAmNMAALTTAAC00wAA0NMAANDTAADs0wAA7NMAAAjUAAAI1AAAJNQAACTUAABA1AAAQNQAAFzUAABc1AAAeNQAAHjUAACU1AAAlNQAALDUAACw1AAAzNQAAMzUAADo1AAA6NQAAATVAAAE1QAAINUAACDVAAA81QAAPNUAAFjVAABY1QAAdNUAAHTVAACQ1QAAkNUAAKzVAACs1QAAyNUAAMjVAADk1QAA5NUAAADWAAAA1gAAHNYAABzWAAA41gAAONYAAFTWAABU1gAAcNYAAHDWAACM1gAAjNYAAKjWAACo1gAAxNYAAMTWAADg1gAA4NYAAPzWAAD81gAAGNcAABjXAAA01wAANNcAAFDXAABQ1wAAbNcAAGzXAACI1wAAiNcAAAGsAAAbrAAAHawAADesAAA5rAAAU6wAAFWsAABvrAAAcawAAIusAACNrAAAp6wAAKmsAADDrAAAxawAAN+sAADhrAAA+6wAAP2sAAAXrQAAGa0AADOtAAA1rQAAT60AAFGtAABrrQAAba0AAIetAACJrQAAo60AAKWtAAC/rQAAwa0AANutAADdrQAA960AAPmtAAATrgAAFa4AAC+uAAAxrgAAS64AAE2uAABnrgAAaa4AAIOuAACFrgAAn64AAKGuAAC7rgAAva4AANeuAADZrgAA864AAPWuAAAPrwAAEa8AACuvAAAtrwAAR68AAEmvAABjrwAAZa8AAH+vAACBrwAAm68AAJ2vAAC3rwAAua8AANOvAADVrwAA768AAPGvAAALsAAADbAAACewAAApsAAAQ7AAAEWwAABfsAAAYbAAAHuwAAB9sAAAl7AAAJmwAACzsAAAtbAAAM+wAADRsAAA67AAAO2wAAAHsQAACbEAACOxAAAlsQAAP7EAAEGxAABbsQAAXbEAAHexAAB5sQAAk7EAAJWxAACvsQAAsbEAAMuxAADNsQAA57EAAOmxAAADsgAABbIAAB+yAAAhsgAAO7IAAD2yAABXsgAAWbIAAHOyAAB1sgAAj7IAAJGyAACrsgAArbIAAMeyAADJsgAA47IAAOWyAAD/sgAAAbMAABuzAAAdswAAN7MAADmzAABTswAAVbMAAG+zAABxswAAi7MAAI2zAACnswAAqbMAAMOzAADFswAA37MAAOGzAAD7swAA/bMAABe0AAAZtAAAM7QAADW0AABPtAAAUbQAAGu0AABttAAAh7QAAIm0AACjtAAApbQAAL+0AADBtAAA27QAAN20AAD3tAAA+bQAABO1AAAVtQAAL7UAADG1AABLtQAATbUAAGe1AABptQAAg7UAAIW1AACftQAAobUAALu1AAC9tQAA17UAANm1AADztQAA9bUAAA+2AAARtgAAK7YAAC22AABHtgAASbYAAGO2AABltgAAf7YAAIG2AACbtgAAnbYAALe2AAC5tgAA07YAANW2AADvtgAA8bYAAAu3AAANtwAAJ7cAACm3AABDtwAARbcAAF+3AABhtwAAe7cAAH23AACXtwAAmbcAALO3AAC1twAAz7cAANG3AADrtwAA7bcAAAe4AAAJuAAAI7gAACW4AAA/uAAAQbgAAFu4AABduAAAd7gAAHm4AACTuAAAlbgAAK+4AACxuAAAy7gAAM24AADnuAAA6bgAAAO5AAAFuQAAH7kAACG5AAA7uQAAPbkAAFe5AABZuQAAc7kAAHW5AACPuQAAkbkAAKu5AACtuQAAx7kAAMm5AADjuQAA5bkAAP+5AAABugAAG7oAAB26AAA3ugAAOboAAFO6AABVugAAb7oAAHG6AACLugAAjboAAKe6AACpugAAw7oAAMW6AADfugAA4boAAPu6AAD9ugAAF7sAABm7AAAzuwAANbsAAE+7AABRuwAAa7sAAG27AACHuwAAibsAAKO7AACluwAAv7sAAMG7AADbuwAA3bsAAPe7AAD5uwAAE7wAABW8AAAvvAAAMbwAAEu8AABNvAAAZ7wAAGm8AACDvAAAhbwAAJ+8AAChvAAAu7wAAL28AADXvAAA2bwAAPO8AAD1vAAAD70AABG9AAArvQAALb0AAEe9AABJvQAAY70AAGW9AAB/vQAAgb0AAJu9AACdvQAAt70AALm9AADTvQAA1b0AAO+9AADxvQAAC74AAA2+AAAnvgAAKb4AAEO+AABFvgAAX74AAGG+AAB7vgAAfb4AAJe+AACZvgAAs74AALW+AADPvgAA0b4AAOu+AADtvgAAB78AAAm/AAAjvwAAJb8AAD+/AABBvwAAW78AAF2/AAB3vwAAeb8AAJO/AACVvwAAr78AALG/AADLvwAAzb8AAOe/AADpvwAAA8AAAAXAAAAfwAAAIcAAADvAAAA9wAAAV8AAAFnAAABzwAAAdcAAAI/AAACRwAAAq8AAAK3AAADHwAAAycAAAOPAAADlwAAA/8AAAAHBAAAbwQAAHcEAADfBAAA5wQAAU8EAAFXBAABvwQAAccEAAIvBAACNwQAAp8EAAKnBAADDwQAAxcEAAN/BAADhwQAA+8EAAP3BAAAXwgAAGcIAADPCAAA1wgAAT8IAAFHCAABrwgAAbcIAAIfCAACJwgAAo8IAAKXCAAC/wgAAwcIAANvCAADdwgAA98IAAPnCAAATwwAAFcMAAC/DAAAxwwAAS8MAAE3DAABnwwAAacMAAIPDAACFwwAAn8MAAKHDAAC7wwAAvcMAANfDAADZwwAA88MAAPXDAAAPxAAAEcQAACvEAAAtxAAAR8QAAEnEAABjxAAAZcQAAH/EAACBxAAAm8QAAJ3EAAC3xAAAucQAANPEAADVxAAA78QAAPHEAAALxQAADcUAACfFAAApxQAAQ8UAAEXFAABfxQAAYcUAAHvFAAB9xQAAl8UAAJnFAACzxQAAtcUAAM/FAADRxQAA68UAAO3FAAAHxgAACcYAACPGAAAlxgAAP8YAAEHGAABbxgAAXcYAAHfGAAB5xgAAk8YAAJXGAACvxgAAscYAAMvGAADNxgAA58YAAOnGAAADxwAABccAAB/HAAAhxwAAO8cAAD3HAABXxwAAWccAAHPHAAB1xwAAj8cAAJHHAACrxwAArccAAMfHAADJxwAA48cAAOXHAAD/xwAAAcgAABvIAAAdyAAAN8gAADnIAABTyAAAVcgAAG/IAABxyAAAi8gAAI3IAACnyAAAqcgAAMPIAADFyAAA38gAAOHIAAD7yAAA/cgAABfJAAAZyQAAM8kAADXJAABPyQAAUckAAGvJAABtyQAAh8kAAInJAACjyQAApckAAL/JAADByQAA28kAAN3JAAD3yQAA+ckAABPKAAAVygAAL8oAADHKAABLygAATcoAAGfKAABpygAAg8oAAIXKAACfygAAocoAALvKAAC9ygAA18oAANnKAADzygAA9coAAA/LAAARywAAK8sAAC3LAABHywAAScsAAGPLAABlywAAf8sAAIHLAACbywAAncsAALfLAAC5ywAA08sAANXLAADvywAA8csAAAvMAAANzAAAJ8wAACnMAABDzAAARcwAAF/MAABhzAAAe8wAAH3MAACXzAAAmcwAALPMAAC1zAAAz8wAANHMAADrzAAA7cwAAAfNAAAJzQAAI80AACXNAAA/zQAAQc0AAFvNAABdzQAAd80AAHnNAACTzQAAlc0AAK/NAACxzQAAy80AAM3NAADnzQAA6c0AAAPOAAAFzgAAH84AACHOAAA7zgAAPc4AAFfOAABZzgAAc84AAHXOAACPzgAAkc4AAKvOAACtzgAAx84AAMnOAADjzgAA5c4AAP/OAAABzwAAG88AAB3PAAA3zwAAOc8AAFPPAABVzwAAb88AAHHPAACLzwAAjc8AAKfPAACpzwAAw88AAMXPAADfzwAA4c8AAPvPAAD9zwAAF9AAABnQAAAz0AAANdAAAE/QAABR0AAAa9AAAG3QAACH0AAAidAAAKPQAACl0AAAv9AAAMHQAADb0AAA3dAAAPfQAAD50AAAE9EAABXRAAAv0QAAMdEAAEvRAABN0QAAZ9EAAGnRAACD0QAAhdEAAJ/RAACh0QAAu9EAAL3RAADX0QAA2dEAAPPRAAD10QAAD9IAABHSAAAr0gAALdIAAEfSAABJ0gAAY9IAAGXSAAB/0gAAgdIAAJvSAACd0gAAt9IAALnSAADT0gAA1dIAAO/SAADx0gAAC9MAAA3TAAAn0wAAKdMAAEPTAABF0wAAX9MAAGHTAAB70wAAfdMAAJfT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AAAoCwAAKgsAADALAAAyCwAAMwsAADULAAA5CwAAPQsAAD0LAABcCwAAXQsAAF8LAABhCwAAcQsAAHELAACDCwAAgwsAAIULAACKCwAAjgsAAJALAACSCwAAlQsAAJkLAACaCwAAnAsAAJwLAACeCwAAnwsAAKMLAACkCwAAqAsAAKoLAACuCwAAuQsAANALAADQCwAABQwAAAwMAAAODAAAEAwAABIMAAAoDAAAKgwAADkMAAA9DAAAPQwAAFgMAABaDAAAXQwAAF0MAABgDAAAYQwAAIAMAACADAAAhQwAAIwMAACODAAAkAwAAJIMAACoDAAAqgwAALMMAAC1DAAAuQwAAL0MAAC9DAAA3QwAAN4MAADgDAAA4QwAAPEMAADyDAAABA0AAAwNAAAODQAAEA0AABINAAA6DQAAPQ0AAD0NAABODQAATg0AAFQNAABWDQAAXw0AAGENAAB6DQAAfw0AAIUNAACWDQAAmg0AALENAACzDQAAuw0AAL0NAAC9DQAAwA0AAMYNAAAADwAAAA8AAEAPAABHDwAASQ8AAGwPAACIDwAAjA8AAKAQAADFEAAAxxAAAMcQAADNEAAAzRAAANAQAAD6EAAA/BAAAEgSAABKEgAATRIAAFASAABWEgAAWBIAAFgSAABaEgAAXRIAAGASAACIEgAAihIAAI0SAACQEgAAsBIAALISAAC1EgAAuBIAAL4SAADAEgAAwBIAAMISAADFEgAAyBIAANYSAADYEgAAEBMAABITAAAVEwAAGBMAAFoTAACAEwAAjxMAAKATAAD1EwAA+BMAAP0TAAABFAAAbBYAAG8WAAB/FgAAgRYAAJoWAACgFgAA6hYAAO4WAAD4FgAAABcAABEXAAAfFwAAMRcAAEAXAABRFwAAYBcAAGwXAABuFwAAcBcAACAYAAB4GAAAgBgAAIQYAACHGAAAqBgAAKoYAACqGAAAsBgAAPUYAAAAGQAAHhkAAAAaAAAWGgAABRsAADMbAABFGwAATBsAAIMbAACgGwAArhsAAK8bAAC6GwAA5RsAAAAcAAAjHAAATRwAAE8cAABaHAAAfRwAAIAcAACIHAAAkBwAALocAAC9HAAAvxwAAOkcAADsHAAA7hwAAPMcAAD1HAAA9hwAAPocAAD6HAAAAB0AAL8dAAAAHgAAFR8AABgfAAAdHwAAIB8AAEUf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AAA/HgAAPx4AAEEeAABBHgAAQx4AAEMeAABFHgAARR4AAEceAABHHgAASR4AAEkeAABLHgAASx4AAE0eAABNHgAATx4AAE8eAABRHgAAUR4AAFMeAABTHgAAVR4AAFUeAABXHgAAVx4AAFkeAABZHgAAWx4AAFseAABdHgAAXR4AAF8eAABfHgAAYR4AAGEeAABjHgAAYx4AAGUeAABlHgAAZx4AAGceAABpHgAAaR4AAGseAABrHgAAbR4AAG0eAABvHgAAbx4AAHEeAABxHgAAcx4AAHMeAAB1HgAAdR4AAHceAAB3HgAAeR4AAHkeAAB7HgAAex4AAH0eAAB9HgAAfx4AAH8eAACBHgAAgR4AAIMeAACDHgAAhR4AAIUeAACHHgAAhx4AAIkeAACJHgAAix4AAIseAACNHgAAjR4AAI8eAACPHgAAkR4AAJEeAACTHgAAkx4AAJUeAACdHgAAnx4AAJ8eAAChHgAAoR4AAKMeAACjHgAApR4AAKUeAACnHgAApx4AAKkeAACpHgAAqx4AAKseAACtHgAArR4AAK8eAACvHgAAsR4AALEeAACzHgAAsx4AALUeAAC1HgAAtx4AALceAAC5HgAAuR4AALseAAC7HgAAvR4AAL0eAAC/HgAAvx4AAMEeAADBHgAAwx4AAMMeAADFHgAAxR4AAMceAADHHgAAyR4AAMkeAADLHgAAyx4AAM0eAADNHgAAzx4AAM8eAADRHgAA0R4AANMeAADTHgAA1R4AANUeAADXHgAA1x4AANkeAADZHgAA2x4AANseAADdHgAA3R4AAN8eAADfHgAA4R4AAOEeAADjHgAA4x4AAOUeAADlHgAA5x4AAOceAADpHgAA6R4AAOseAADrHgAA7R4AAO0eAADvHgAA7x4AAPEeAADxHgAA8x4AAPMeAAD1HgAA9R4AAPceAAD3HgAA+R4AAPkeAAD7HgAA+x4AAP0eAAD9HgAA/x4AAAcfAAAQHwAAFR8AACAfAAAnHwAAMB8AADcfAABAHwAARR8AAFAfAABXHwAAYB8AAGcfAABwHwAAfR8AAIAfAACHHwAAkB8AAJcfAACgHwAApx8AALAfAAC0HwAAth8AALcfAAC+HwAAvh8AAMIfAADEHwAAxh8AAMcfAADQHwAA0x8AANYfAADXHwAA4B8AAOcfAADyHwAA9B8AAPYfAAD3HwAAcSAAAHEgAAB/IAAAfyAAAJAgAACcIAAACiEAAAohAAAOIQAADyEAABMhAAATIQAALyEAAC8hAAA0IQAANCEAADkhAAA5IQAAPCEAAD0hAABGIQAASSEAAE4hAABOIQAAcCEAAH8hAACEIQAAhCEAANAkAADpJAAAMCwAAF8sAABhLAAAYSwAAGUsAABmLAAAaCwAAGgsAABqLAAAaiwAAGwsAABsLAAAcSwAAHEsAABzLAAAdCwAAHYsAAB9LAAAgSwAAIEsAACDLAAAgywAAIUsAACFLAAAhywAAIcsAACJLAAAiSwAAIssAACLLAAAjSwAAI0sAACPLAAAjywAAJEsAACRLAAAkywAAJMsAACVLAAAlSwAAJcsAACXLAAAmSwAAJksAACbLAAAmywAAJ0sAACdLAAAnywAAJ8sAAChLAAAoSwAAKMsAACjLAAApSwAAKUsAACnLAAApywAAKksAACpLAAAqywAAKssAACtLAAArSwAAK8sAACvLAAAsSwAALEsAACzLAAAsywAALUsAAC1LAAAtywAALcsAAC5LAAAuSwAALssAAC7LAAAvSwAAL0sAAC/LAAAvywAAMEsAADBLAAAwywAAMMsAADFLAAAxSwAAMcsAADHLAAAySwAAMksAADLLAAAyywAAM0sAADNLAAAzywAAM8sAADRLAAA0SwAANMsAADTLAAA1SwAANUsAADXLAAA1ywAANksAADZLAAA2ywAANssAADdLAAA3SwAAN8sAADfLAAA4SwAAOEsAADjLAAA5CwAAOwsAADsLAAA7iwAAO4sAADzLAAA8ywAAAAtAAAlLQAAJy0AACctAAAtLQAALS0AAEGmAABBpgAAQ6YAAEOmAABFpgAARaYAAEemAABHpgAASaYAAEmmAABLpgAAS6YAAE2mAABNpgAAT6YAAE+mAABRpgAAUaYAAFOmAABTpgAAVaYAAFWmAABXpgAAV6YAAFmmAABZpgAAW6YAAFumAABdpgAAXaYAAF+mAABfpgAAYaYAAGGmAABjpgAAY6YAAGWmAABlpgAAZ6YAAGemAABppgAAaaYAAGumAABrpgAAbaYAAG2mAACBpgAAgaYAAIOmAACDpgAAhaYAAIWmAACHpgAAh6YAAImmAACJpgAAi6YAAIumAACNpgAAjaYAAI+mAACPpgAAkaYAAJGmAACTpgAAk6YAAJWmAACVpgAAl6YAAJemAACZpgAAmaYAAJumAACdpgAAI6cAACOnAAAlpwAAJacAACenAAAnpwAAKacAACmnAAArpwAAK6cAAC2nAAAtpwAAL6cAADGnAAAzpwAAM6cAADWnAAA1pwAAN6cAADenAAA5pwAAOacAADunAAA7pwAAPacAAD2nAAA/pwAAP6cAAEGnAABBpwAAQ6cAAEOnAABFpwAARacAAEenAABHpwAASacAAEmnAABLpwAAS6cAAE2nAABNpwAAT6cAAE+nAABRpwAAUacAAFOnAABTpwAAVacAAFWnAABXpwAAV6cAAFmnAABZpwAAW6cAAFunAABdpwAAXacAAF+nAABfpwAAYacAAGGnAABjpwAAY6cAAGWnAABlpwAAZ6cAAGenAABppwAAaacAAGunAABrpwAAbacAAG2nAABvpwAAeKcAAHqnAAB6pwAAfKcAAHynAAB/pwAAf6cAAIGnAACBpwAAg6cAAIOnAACFpwAAhacAAIenAACHpwAAjKcAAIynAACOpwAAjqcAAJGnAACRpwAAk6cAAJWnAACXpwAAl6cAAJmnAACZpwAAm6cAAJunAACdpwAAnacAAJ+nAACfpwAAoacAAKGnAACjpwAAo6cAAKWnAAClpwAAp6cAAKenAACppwAAqacAAK+nAACvpwAAtacAALWnAAC3pwAAt6cAALmnAAC5pwAAu6cAALunAAC9pwAAvacAAL+nAAC/pwAAwacAAMGnAADDpwAAw6cAAMinAADIpwAAyqcAAMqnAADRpwAA0acAANOnAADTpwAA1acAANWnAADXpwAA16cAANmnAADZpwAA8qcAAPSnAAD2pwAA9qcAAPinAAD6pwAAMKsAAFqrAABcqwAAaasAAHCrAAC/qwAAAPsAAAb7AAAT+wAAF/sAAEH/AABa/wAAKAQBAE8EAQDYBAEA+wQBAJcFAQChBQEAowUBALEFAQCzBQEAuQUBALsFAQC8BQEAgAcBAIAHAQCDBwEAhQcBAIcHAQCwBwEAsgcBALoHAQDADAEA8gwBAMAYAQDfGAEAYG4BAH9uAQAa1AEAM9QBAE7UAQBU1AEAVtQBAGfUAQCC1AEAm9QBALbUAQC51AEAu9QBALvUAQC91AEAw9QBAMXUAQDP1AEA6tQBAAPVAQAe1QEAN9UBAFLV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AADmHgAA6B4AAOgeAADqHgAA6h4AAOweAADsHgAA7h4AAO4eAADwHgAA8B4AAPIeAADyHgAA9B4AAPQeAAD2HgAA9h4AAPgeAAD4HgAA+h4AAPoeAAD8HgAA/B4AAP4eAAD+HgAACB8AAA8fAAAYHwAAHR8AACgfAAAvHwAAOB8AAD8fAABIHwAATR8AAFkfAABZHwAAWx8AAFsfAABdHwAAXR8AAF8fAABfHwAAaB8AAG8fAACIHwAAjx8AAJgfAACfHwAAqB8AAK8fAAC4HwAAvB8AAMgfAADMHwAA2B8AANsfAADoHwAA7B8AAPgfAAD8HwAAAiEAAAIhAAAHIQAAByEAAAshAAANIQAAECEAABIhAAAVIQAAFSEAABkhAAAdIQAAJCEAACQhAAAmIQAAJiEAACghAAAoIQAAKiEAAC0hAAAwIQAAMyEAAD4hAAA/IQAARSEAAEUhAABgIQAAbyEAAIMhAACDIQAAtiQAAM8kAAAALAAALywAAGAsAABgLAAAYiwAAGQsAABnLAAAZywAAGksAABpLAAAaywAAGssAABtLAAAcCwAAHIsAAByLAAAdSwAAHUsAAB+LAAAgCwAAIIsAACCLAAAhCwAAIQsAACGLAAAhiwAAIgsAACILAAAiiwAAIosAACMLAAAjCwAAI4sAACOLAAAkCwAAJAsAACSLAAAkiwAAJQsAACULAAAliwAAJYsAACYLAAAmCwAAJosAACaLAAAnCwAAJwsAACeLAAAniwAAKAsAACgLAAAoiwAAKIsAACkLAAApCwAAKYsAACmLAAAqCwAAKgsAACqLAAAqiwAAKwsAACsLAAAriwAAK4sAACwLAAAsCwAALIsAACyLAAAtCwAALQsAAC2LAAAtiwAALgsAAC4LAAAuiwAALosAAC8LAAAvCwAAL4sAAC+LAAAwCwAAMAsAADCLAAAwiwAAMQsAADELAAAxiwAAMYsAADILAAAyCwAAMosAADKLAAAzCwAAMwsAADOLAAAziwAANAsAADQLAAA0iwAANIsAADULAAA1CwAANYsAADWLAAA2CwAANgsAADaLAAA2iwAANwsAADcLAAA3iwAAN4sAADgLAAA4CwAAOIsAADiLAAA6ywAAOssAADtLAAA7SwAAPIsAADyLAAAQKYAAECmAABCpgAAQqYAAESmAABEpgAARqYAAEamAABIpgAASKYAAEqmAABKpgAATKYAAEymAABOpgAATqYAAFCmAABQpgAAUqYAAFKmAABUpgAAVKYAAFamAABWpgAAWKYAAFimAABapgAAWqYAAFymAABcpgAAXqYAAF6mAABgpgAAYKYAAGKmAABipgAAZKYAAGSmAABmpgAAZqYAAGimAABopgAAaqYAAGqmAABspgAAbKYAAICmAACApgAAgqYAAIKmAACEpgAAhKYAAIamAACGpgAAiKYAAIimAACKpgAAiqYAAIymAACMpgAAjqYAAI6mAACQpgAAkKYAAJKmAACSpgAAlKYAAJSmAACWpgAAlqYAAJimAACYpgAAmqYAAJqmAAAipwAAIqcAACSnAAAkpwAAJqcAACanAAAopwAAKKcAACqnAAAqpwAALKcAACynAAAupwAALqcAADKnAAAypwAANKcAADSnAAA2pwAANqcAADinAAA4pwAAOqcAADqnAAA8pwAAPKcAAD6nAAA+pwAAQKcAAECnAABCpwAAQqcAAESnAABEpwAARqcAAEanAABIpwAASKcAAEqnAABKpwAATKcAAEynAABOpwAATqcAAFCnAABQpwAAUqcAAFKnAABUpwAAVKcAAFanAABWpwAAWKcAAFinAABapwAAWqcAAFynAABcpwAAXqcAAF6nAABgpwAAYKcAAGKnAABipwAAZKcAAGSnAABmpwAAZqcAAGinAABopwAAaqcAAGqnAABspwAAbKcAAG6nAABupwAAeacAAHmnAAB7pwAAe6cAAH2nAAB+pwAAgKcAAICnAACCpwAAgqcAAISnAACEpwAAhqcAAIanAACLpwAAi6cAAI2nAACNpwAAkKcAAJCnAACSpwAAkqcAAJanAACWpwAAmKcAAJinAACapwAAmqcAAJynAACcpwAAnqcAAJ6nAACgpwAAoKcAAKKnAACipwAApKcAAKSnAACmpwAApqcAAKinAACopwAAqqcAAK6nAACwpwAAtKcAALanAAC2pwAAuKcAALinAAC6pwAAuqcAALynAAC8pwAAvqcAAL6nAADApwAAwKcAAMKnAADCpwAAxKcAAMenAADJpwAAyacAANCnAADQpwAA1qcAANanAADYpwAA2KcAAPWnAAD1pwAAIf8AADr/AAAABAEAJwQBALAEAQDTBAEAcAUBAHoFAQB8BQEAigUBAIwFAQCSBQEAlAUBAJUFAQCADAEAsgwBAKAYAQC/GAEAQG4BAF9uAQAA1AEAGdQBADTUAQBN1AEAaNQBAIHUAQCc1AEAnNQBAJ7UAQCf1AEAotQBAKLUAQCl1AEAptQBAKnUAQCs1AEArtQBALXUAQDQ1AEA6dQBAATVAQAF1QEAB9UBAArVAQAN1QEAFNUBABbVAQAc1QEAONUBADnVAQA71QEAPtUBAEDVAQBE1QEARtUBAEbVAQBK1QEAUNUBAGzVAQCF1QEAoNUBALnVAQDU1QEA7dUBAAjWAQAh1gEAPNYBAFXWAQBw1gEAidYBAKjWAQDA1gEA4tYBAPrWAQAc1wEANNcBAFbXAQBu1wEAkNcBAKjXAQDK1wEAytcBAADpAQAh6QEAMPEBAEnxAQBQ8QEAafEBAHDxAQCJ8QEACk8SAAUAAADcTRUABAAAADIrEgACAAAAVAAVAAEAAAAWTxIABQAAAPxNFQAtAAAAaCsSAAYAAABkTxUAOQEAAJAiEgAGAAAALFkVABUAAACUKxIAAgAAAGQMFQABAAAAKU8SAAUAAADUWRUAnQIAAC5PEgAHAAAAvG4VAEEAAAAiTxIABwAAAMRwFQAfAgAAQ08SAAkAAAC8gRUAEwAAAGNPEgAFAAAAVIIVAE0AAABXTxIAAwAAALyEFQACAAAAX08SAAIAAADMhBUACQAAAGpPEgAFAAAAFIUVAIwCAACM4REAZgAAAHcDAAAcAAAAjOERAGYAAACoAwAALQAAAIzhEQBmAAAAqgMAAAkAAACM4REAZgAAAKsDAAAJAAAAjOERAGYAAACuAwAADwAAAIzhEQBmAAAAoAMAAA0AAACM4REAZgAAAJ0DAAANAAAAKgMAAAwAAAAEAAAATgMAABsEAABkAwAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmVnZXgtc3ludGF4LTAuOC40L3NyYy91dGY4LnJzaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZTogaW52YWxpZCBlbmNvZGVkIGxlbmd0aDogAAAAP5sVAEIAAADcmhUAYwAAAIMAAAASAAAA3JoVAGMAAAC0AQAALQAAANyaFQBjAAAAtQEAACsAAADcmhUAYwAAALgBAAAJAEHUt9YAC84QAQAAABwEAABUcnlGcm9tQ2hhckVycm9yZXhjZWVkZWQgdGhlIG1heGltdW0gbnVtYmVyIG9mIGNhcHR1cmluZyBncm91cHMgKAAAAOybFQAxAAAA4NAYAAEAAABpbnZhbGlkIGVzY2FwZSBzZXF1ZW5jZSBmb3VuZCBpbiBjaGFyYWN0ZXIgY2xhc3MwnBUAMAAAAGludmFsaWQgY2hhcmFjdGVyIGNsYXNzIHJhbmdlLCB0aGUgc3RhcnQgbXVzdCBiZSA8PSB0aGUgZW5kAGicFQA7AAAAaW52YWxpZCByYW5nZSBib3VuZGFyeSwgbXVzdCBiZSBhIGxpdGVyYWwAAACsnBUAKQAAAHVuY2xvc2VkIGNoYXJhY3RlciBjbGFzc+CcFQAYAAAAZGVjaW1hbCBsaXRlcmFsIGVtcHR5AAAAAJ0VABUAAABkZWNpbWFsIGxpdGVyYWwgaW52YWxpZAAgnRUAFwAAAGhleGFkZWNpbWFsIGxpdGVyYWwgZW1wdHkAAABAnRUAGQAAAGhleGFkZWNpbWFsIGxpdGVyYWwgaXMgbm90IGEgVW5pY29kZSBzY2FsYXIgdmFsdWUAAABknRUAMQAAAGludmFsaWQgaGV4YWRlY2ltYWwgZGlnaXQAAACgnRUAGQAAAGluY29tcGxldGUgZXNjYXBlIHNlcXVlbmNlLCByZWFjaGVkIGVuZCBvZiBwYXR0ZXJuIHByZW1hdHVyZWx5AADEnRUAPgAAAHVucmVjb2duaXplZCBlc2NhcGUgc2VxdWVuY2UMnhUAHAAAAGRhbmdsaW5nIGZsYWcgbmVnYXRpb24gb3BlcmF0b3IAMJ4VAB8AAABkdXBsaWNhdGUgZmxhZwAAWJ4VAA4AAABmbGFnIG5lZ2F0aW9uIG9wZXJhdG9yIHJlcGVhdGVkAHCeFQAfAAAAZXhwZWN0ZWQgZmxhZyBidXQgZ290IGVuZCBvZiByZWdleAAAmJ4VACIAAAB1bnJlY29nbml6ZWQgZmxhZwAAAMSeFQARAAAAZHVwbGljYXRlIGNhcHR1cmUgZ3JvdXAgbmFtZeCeFQAcAAAAZW1wdHkgY2FwdHVyZSBncm91cCBuYW1lBJ8VABgAAABpbnZhbGlkIGNhcHR1cmUgZ3JvdXAgY2hhcmFjdGVyACSfFQAfAAAAdW5jbG9zZWQgY2FwdHVyZSBncm91cCBuYW1lAEyfFQAbAAAAdW5jbG9zZWQgZ3JvdXAAAHCfFQAOAAAAdW5vcGVuZWQgZ3JvdXAAAIifFQAOAAAAZXhjZWVkIHRoZSBtYXhpbXVtIG51bWJlciBvZiBuZXN0ZWQgcGFyZW50aGVzZXMvYnJhY2tldHMgKAAAoJ8VADoAAADg0BgAAQAAAGludmFsaWQgcmVwZXRpdGlvbiBjb3VudCByYW5nZSwgdGhlIHN0YXJ0IG11c3QgYmUgPD0gdGhlIGVuZOyfFQA8AAAAcmVwZXRpdGlvbiBxdWFudGlmaWVyIGV4cGVjdHMgYSB2YWxpZCBkZWNpbWFsAAAAMKAVAC0AAAB1bmNsb3NlZCBjb3VudGVkIHJlcGV0aXRpb24AaKAVABsAAAByZXBldGl0aW9uIG9wZXJhdG9yIG1pc3NpbmcgZXhwcmVzc2lvbgAAjKAVACYAAABzcGVjaWFsIHdvcmQgYm91bmRhcnkgYXNzZXJ0aW9uIGlzIGVpdGhlciB1bmNsb3NlZCBvciBjb250YWlucyBhbiBpbnZhbGlkIGNoYXJhY3RlcgC8oBUAUwAAAHVucmVjb2duaXplZCBzcGVjaWFsIHdvcmQgYm91bmRhcnkgYXNzZXJ0aW9uLCB2YWxpZCBjaG9pY2VzIGFyZTogc3RhcnQsIGVuZCwgc3RhcnQtaGFsZiBvciBlbmQtaGFsZgAYoRUAYwAAAGZvdW5kIGVpdGhlciB0aGUgYmVnaW5uaW5nIG9mIGEgc3BlY2lhbCB3b3JkIGJvdW5kYXJ5IG9yIGEgYm91bmRlZCByZXBldGl0aW9uIG9uIGEgXGIgd2l0aCBhbiBvcGVuaW5nIGJyYWNlLCBidXQgbm8gY2xvc2luZyBicmFjZQAAAIShFQCBAAAAaW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBjbGFzcwAQohUAHwAAAGJhY2tyZWZlcmVuY2VzIGFyZSBub3Qgc3VwcG9ydGVkOKIVACAAAABsb29rLWFyb3VuZCwgaW5jbHVkaW5nIGxvb2stYWhlYWQgYW5kIGxvb2stYmVoaW5kLCBpcyBub3Qgc3VwcG9ydGVkAGCiFQBDAAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmVnZXgtc3ludGF4LTAuOC40L3NyYy9hc3QvbW9kLnJzAACsohUAZgAAAH8CAAAiAAAArKIVAGYAAACYAgAAIgAAAGFsbnVtYXNjaWlibGFua2NudHJsZGlnaXRncmFwaGxvd2VycHJpbnRwdW5jdHNwYWNldXBwZXJ4ZGlnaXQAAACsohUAZgAAAPMEAAAjAAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmVnZXgtc3ludGF4LTAuOC40L3NyYy9oaXIvbW9kLnJzAACEoxUAZgAAAL8EAAAuAAAAhKMVAGYAAADABAAAKgAAACoDAAAMAAAABAAAAE4DAAAdBAAAZAMAQazI1gAL9QYBAAAALgMAAHJlZ2V4IHBhcnNlIGVycm9yOgoANKQVABMAAABlcnJvcjogAFCkFQAHAAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmVnZXgtc3ludGF4LTAuOC40L3NyYy9lcnJvci5yc29uIGxpbmUgIChjb2x1bW4gKSB0aHJvdWdoIGxpbmUgxKQVAAgAAADMpBUACQAAANWkFQAPAAAAzKQVAAkAAADg0BgAAQAAAGCkFQBkAAAAuwAAABkAAABgpBUAZAAAALwAAAAZAAAAYKQVAGQAAADdAAAAIgAAAGCkFQBkAAAA+AAAAD8AAAAwOhgATQAAABUKAAAiAAAAAAAAAAgAAAAEAAAA6wIAAAAAAAAEAAAABAAAAHACAAAAAAAABAAAAAQAAAC3AAAAAAAAAAQAAAAEAAAAJgAAAAAAAAAEAAAABAAAAJIAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yZWdleC1zeW50YXgtMC44LjQvc3JjL2FzdC92aXNpdG9yLnJzAACspRUAagAAABcBAAAeAAAArKUVAGoAAAAYAQAAHgAAAKylFQBqAAAAEwEAADMAAACs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dHlwZSB2YXJpYW50dHVwbGUgdmFyaWFudHN0cnVjdCB2YXJpYW50ZXhwbGljaXQgcGFuaWO0GhgAAQAAALQaGAABAAAAYCBvciBgAAC0GhgAAQAAALgCFgAGAAAAtBoYAAEAAABvbmUgb2YgLjAAAAB8BhYAXwAAAFgCAAAwAAAAKgMAAAwAAAAEAAAATgMAAGMDAAAnBABBlIbYAAu5CAEAAAAuAwAARU9GIHdoaWxlIHBhcnNpbmcgYSBsaXN0RU9GIHdoaWxlIHBhcnNpbmcgYW4gb2JqZWN0RU9GIHdoaWxlIHBhcnNpbmcgYSBzdHJpbmdFT0Ygd2hpbGUgcGFyc2luZyBhIHZhbHVlZXhwZWN0ZWQgYDpgZXhwZWN0ZWQgYCxgIG9yIGBdYGV4cGVjdGVkIGAsYCBvciBgfWBleHBlY3RlZCBpZGVudGV4cGVjdGVkIHZhbHVlZXhwZWN0ZWQgYCJgaW52YWxpZCBlc2NhcGVpbnZhbGlkIG51bWJlcm51bWJlciBvdXQgb2YgcmFuZ2VpbnZhbGlkIHVuaWNvZGUgY29kZSBwb2ludGNvbnRyb2wgY2hhcmFjdGVyIChcdTAwMDAtXHUwMDFGKSBmb3VuZCB3aGlsZSBwYXJzaW5nIGEgc3RyaW5na2V5IG11c3QgYmUgYSBzdHJpbmdpbnZhbGlkIHZhbHVlOiBleHBlY3RlZCBrZXkgdG8gYmUgYSBudW1iZXIgaW4gcXVvdGVzZmxvYXQga2V5IG11c3QgYmUgZmluaXRlIChnb3QgTmFOIG9yICsvLWluZilsb25lIGxlYWRpbmcgc3Vycm9nYXRlIGluIGhleCBlc2NhcGV0cmFpbGluZyBjb21tYXRyYWlsaW5nIGNoYXJhY3RlcnN1bmV4cGVjdGVkIGVuZCBvZiBoZXggZXNjYXBlcmVjdXJzaW9uIGxpbWl0IGV4Y2VlZGVkIGF0IGxpbmUgIGNvbHVtbiAAAAABAAAAAAAAAFAFFgAJAAAAWQUWAAgAAABFcnJvcigsIGxpbmU6ICwgY29sdW1uOiB8BRYABgAAAIIFFgAIAAAAigUWAAoAAADg0BgAAQAAADAwMDEwMjAzMDQwNTA2MDcwODA5MTAxMTEyMTMxNDE1MTYxNzE4MTkyMDIxMjIyMzI0MjUyNjI3MjgyOTMwMzEzMjMzMzQzNTM2MzczODM5NDA0MTQyNDM0NDQ1NDY0NzQ4NDk1MDUxNTI1MzU0NTU1NjU3NTg1OTYwNjE2MjYzNjQ2NTY2Njc2ODY5NzA3MTcyNzM3NDc1NzY3Nzc4Nzk4MDgxODI4Mzg0ODU4Njg3ODg4OTkwOTE5MjkzOTQ5NTk2OTc5ODk5L3J1c3RjLzkwYjM1YTYyMzljM2Q4YmRhYmM1MzBhNmEwODE2ZjdmZjg5YTBhYWYvbGlicmFyeS9hbGxvYy9zcmMvY29sbGVjdGlvbnMvYnRyZWUvbmF2aWdhdGUucnMAfAYWAF8AAADGAAAAJwAAAHwGFgBfAAAAFgIAAC8AAAB8BhYAXwAAAKEAAAAkAAAAKgMAAAwAAAAEAAAATgMAABgEAAAnBAAAaW52YWxpZCB0eXBlOiAsIGV4cGVjdGVkIAAAACQHFgAOAAAAMgcWAAsAQdiO2AALjwEBAAAAKAQAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3NlcmRlLXdhc20tYmluZGdlbi0wLjYuNS9zcmMvbGliLnJzYAcWAGgAAAA1AAAADgAAAExheW91dHNpemVhbGlnbgBB8I/YAAvSAwEAAAD4AwAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvc21hcnRzdHJpbmctMS4wLjEvc3JjL2lubGluZS5yc/gHFgBkAAAAKwAAACsAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9zbWFydHN0cmluZy0xLjAuMS9zcmMvYm94ZWQucnMAbAgWAGMAAABBAAAADgAAAGwIFgBjAAAAdgAAACQAAABodHRwOmh0dHBzOgABAAAAAAAAAFgYGAABAAAAYXR0ZW1wdCB0byBqb2luIGludG8gY29sbGVjdGlvbiB3aXRoIGxlbiA+IHVzaXplOjpNQVgvcnVzdGMvOTBiMzVhNjIzOWMzZDhiZGFiYzUzMGE2YTA4MTZmN2ZmODlhMGFhZi9saWJyYXJ5L2FsbG9jL3NyYy9zdHIucnMAAABBCRYASAAAAJoAAAAKAAAAQQkWAEgAAACxAAAAFgAAACoDAAAMAAAABAAAAE4DAAApBAAAJwQAQcyT2AALvwEBAAAALgMAACTtFwBgAAAAFAAAAA8AAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9zZXJkZV9qc29uLTEuMC4xMzMvc3JjL3Nlci5ycwAA5AkWAGIAAAANBgAAEgAAAOQJFgBiAAAAMAgAADMAAAB1dXV1dXV1dWJ0bnVmcnV1dXV1dXV1dXV1dXV1dXV1dQAAIgBBxJXYAAsBXABB6JbYAAuiB+QJFgBiAAAAIwgAAEAAAABcdGxpbmVjb2x1bW5vZmZzZXRtYXBuYW1lc21hcHBpbmdzdmVyc2lvbmZpbGVzb3VyY2Vzc291cmNlUm9vdHNvdXJjZXNDb250ZW50c2VjdGlvbnNyYW5nZU1hcHBpbmdzeF9mYWNlYm9va19vZmZzZXRzeF9tZXRyb19tb2R1bGVfcGF0aHN4X2ZhY2Vib29rX3NvdXJjZXNkZWJ1Z19pZGJhZCBqc29uOiAAGQwWAAoAAABsZWZ0b3ZlciBjdXIvc2hpZnQgaW4gdmxxIGRlY29kZSwMFgAgAAAAdmxxIGRlY29kZSBkaWQgbm90IHByb2R1Y2UgYW55IHZhbHVlcwAAAFQMFgAlAAAAdmxxIGRlY29kZSBjYXVzZWQgYW4gb3ZlcmZsb3cAAACEDBYAHQAAAGdvdCAgc2VnbWVudHMsIGV4cGVjdGVkIDQgb3IgNQAArAwWAAQAAACwDBYAGgAAAGJhZCByZWZlcmVuY2UgdG8gc291cmNlICMAAADcDBYAGQAAAGJhZCByZWZlcmVuY2UgdG8gbmFtZSAjAAANFgAXAAAAZW5jb3VudGVyZWQgaW5jb21wYXRpYmxlIHNvdXJjZW1hcCBmb3JtYXQAAAAgDRYAKQAAAHRoZSBwcm92aWRlZCBkYXRhIFVSTCBpcyBpbnZhbGlkVA0WACAAAABjYW5ub3QgZmxhdHRlbiB0aGUgaW5kZXhlZCBzb3VyY2VtYXA6IAAAfA0WACYAAABpbnZhbGlkIG1hZ2ljIG51bWJlciBmb3IgcmFtIGJ1bmRsZQCsDRYAIwAAAGludmFsaWQgbW9kdWxlIGluZGV4IGluIHJhbSBidW5kbGUAANgNFgAiAAAAaW52YWxpZCByYW0gYnVuZGxlIG1vZHVsZSBlbnRyeQAEDhYAHwAAAG5vdCBhIHJhbSBidW5kbGUsDhYAEAAAAGludmFsaWQgcmFuZ2UgbWFwcGluZyBpbmRleDogAAAARA4WAB0AAABpbnZhbGlkIGJhc2U2NCBjaGFyYWN0ZXI6IAAAbA4WABoAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi93eXotMC41LjEvc3JjL2NvbXUucnMAAJAOFgBaAAAAJwEAAAIAAABOdWxsUHRyRXJyb3J1OABBlJ7YAAvSIQEAAAD4AwAAuDsYAEkAAADbBwAAKQAAAExheW91dEVycm9yTWlzYWxpZ25FcnJvcgEAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9zb3VyY2VtYXAtOS4wLjAvc3JjL2J1aWxkZXIucnNDYW5ub3Qgc2V0IHNvdXJjZXMgZm9yIHRvbWJzdG9uZSBzb3VyY2UgaWQAAABIDxYAYwAAAHkAAAAJAAAASA8WAGMAAAB9AAAAHQAAAGNhbm5vdCAgYml0cyBmcm9tIGEgLWJpdCByZWdpb24A+A8WAAcAAAD6FxgAAQAAAP8PFgANAAAADBAWAAsAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9iaXR2ZWMtMS4wLjEvc3JjL2ZpZWxkLnJzAAA4EBYAXgAAAA4CAAACAAAAcmFuZ2UgIG91dCBvZiBib3VuZHM6IAAAqBAWAAYAAACuEBYAEAAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2JpdHZlYy0xLjAuMS9zcmMvc2xpY2UvYXBpLnJzAADQEBYAYgAAAI4KAAABAAAATQMAABQAAAAEAAAAKgQAAAAAAAAIAAAABAAAACsEAABJbmNsdWRlZEV4Y2x1ZGVkVW5ib3VuZGVkL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvYml0dmVjLTEuMC4xL3NyYy9zbGljZS5ycwB9ERYAXgAAAE8BAAAjAAAAaW5kZXggIG91dCBvZiByYW5nZTogAAAA7BEWAAYAAADyERYADwAAAH0RFgBeAAAAMQYAAAMAAABsb2FkQml0U3BhbkVycm9yPD46OigSFgANAAAANRIWAAMAAABNaXNhbGlnbmVkVG9vTG9uZ1Rvb0hpZ2gvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9zb3VyY2VtYXAtOS4wLjAvc3JjL2VuY29kZXIucnNpbnZhbGlkIGJ5dGUAYBIWAGMAAAAjAAAAEgAAAGludmFsaWQgdXRmOGASFgBjAAAAZgAAACEAAABBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvAAAAAAQAAAAEAAAALAQAAC9ydXN0L2RlcHMvZGxtYWxsb2MtMC4yLjYvc3JjL2RsbWFsbG9jLnJzYXNzZXJ0aW9uIGZhaWxlZDogcHNpemUgPj0gc2l6ZSArIG1pbl9vdmVyaGVhZABMExYAKQAAAKgEAAAJAAAAYXNzZXJ0aW9uIGZhaWxlZDogcHNpemUgPD0gc2l6ZSArIG1heF9vdmVyaGVhZAAATBMWACkAAACuBAAADQAAAHVzZSBvZiBzdGQ6OnRocmVhZDo6Y3VycmVudCgpIGlzIG5vdCBwb3NzaWJsZSBhZnRlciB0aGUgdGhyZWFkJ3MKICAgICAgICAgbG9jYWwgZGF0YSBoYXMgYmVlbiBkZXN0cm95ZWQA9BMWAGcAAABzdGQvc3JjL3RocmVhZC9jdXJyZW50LnJzAAAAZBQWABkAAADtAAAACQAAAEFjY2Vzc0Vycm9yc3RkL3NyYy90aHJlYWQvbW9kLnJzZmFpbGVkIHRvIGdlbmVyYXRlIHVuaXF1ZSB0aHJlYWQgSUQ6IGJpdHNwYWNlIGV4aGF1c3RlZACwFBYANwAAAJsUFgAVAAAAkwQAAA0AAABzdGQvc3JjL2JhY2t0cmFjZS5yc3Vuc3VwcG9ydGVkIGJhY2t0cmFjZWRpc2FibGVkIGJhY2t0cmFjZQAAFRYAFAAAAIoBAAAdAAAALQQAABAAAAAEAAAALgQAAC8EAABlbnRpdHkgbm90IGZvdW5kcGVybWlzc2lvbiBkZW5pZWRjb25uZWN0aW9uIHJlZnVzZWRjb25uZWN0aW9uIHJlc2V0aG9zdCB1bnJlYWNoYWJsZW5ldHdvcmsgdW5yZWFjaGFibGVjb25uZWN0aW9uIGFib3J0ZWRub3QgY29ubmVjdGVkYWRkcmVzcyBpbiB1c2VhZGRyZXNzIG5vdCBhdmFpbGFibGVuZXR3b3JrIGRvd25icm9rZW4gcGlwZWVudGl0eSBhbHJlYWR5IGV4aXN0c29wZXJhdGlvbiB3b3VsZCBibG9ja25vdCBhIGRpcmVjdG9yeWlzIGEgZGlyZWN0b3J5ZGlyZWN0b3J5IG5vdCBlbXB0eXJlYWQtb25seSBmaWxlc3lzdGVtIG9yIHN0b3JhZ2UgbWVkaXVtZmlsZXN5c3RlbSBsb29wIG9yIGluZGlyZWN0aW9uIGxpbWl0IChlLmcuIHN5bWxpbmsgbG9vcClzdGFsZSBuZXR3b3JrIGZpbGUgaGFuZGxlaW52YWxpZCBpbnB1dCBwYXJhbWV0ZXJpbnZhbGlkIGRhdGF0aW1lZCBvdXR3cml0ZSB6ZXJvbm8gc3RvcmFnZSBzcGFjZXNlZWsgb24gdW5zZWVrYWJsZSBmaWxlZmlsZXN5c3RlbSBxdW90YSBleGNlZWRlZGZpbGUgdG9vIGxhcmdlcmVzb3VyY2UgYnVzeWV4ZWN1dGFibGUgZmlsZSBidXN5ZGVhZGxvY2tjcm9zcy1kZXZpY2UgbGluayBvciByZW5hbWV0b28gbWFueSBsaW5rc2ludmFsaWQgZmlsZW5hbWVhcmd1bWVudCBsaXN0IHRvbyBsb25nb3BlcmF0aW9uIGludGVycnVwdGVkdW5zdXBwb3J0ZWR1bmV4cGVjdGVkIGVuZCBvZiBmaWxlb3V0IG9mIG1lbW9yeWluIHByb2dyZXNzb3RoZXIgZXJyb3J1bmNhdGVnb3JpemVkIGVycm9yT3NLaW5kQ3VzdG9tIChvcyBlcnJvciAAAQAAAAAAAABkGBYACwAAAODQGAABAAAAOiBzdGQvc3JjL3BhdGgucnMAAACKGBYADwAAANICAAAhAAAAihgWAA8AAAD5AgAALAAAAIoYFgAPAAAA+wIAACYAAACKGBYADwAAAAgDAAAnAAAAihgWAA8AAAAUAwAAJwAAAIoYFgAPAAAAfgMAACkAAACKGBYADwAAAH8DAAArAAAAihgWAA8AAACUAwAALwAAAIoYFgAPAAAAjAMAAC8AAACKGBYADwAAAJoDAAArAAAAc3RkL3NyYy9zeW5jL2xhenlfbG9jay5ycwAAADwZFgAZAAAA0AAAABMAAABjYW5ub3QgcmVjdXJzaXZlbHkgYWNxdWlyZSBtdXRleGgZFgAgAAAAc3RkL3NyYy9zeXMvc3luYy9tdXRleC9ub190aHJlYWRzLnJzkBkWACQAAAAUAAAACQAAAHN0ZC9zcmMvc3luYy9vbmNlLnJzxBkWABQAAADZAAAAFAAAADx1bmtub3duPu+/vXN0ZC9zcmMvLi4vLi4vYmFja3RyYWNlL3NyYy9zeW1ib2xpemUvbW9kLnJz9BkWACwAAABnAQAAMAAAAAEAAAAAAAAAiBgWAAIAAAAgLSAAAQAAAAAAAABAGhYAAwAAACAgICAgICAgICAgICAgICAgICBhdCBOb3RGb3VuZFBlcm1pc3Npb25EZW5pZWRDb25uZWN0aW9uUmVmdXNlZENvbm5lY3Rpb25SZXNldEhvc3RVbnJlYWNoYWJsZU5ldHdvcmtVbnJlYWNoYWJsZUNvbm5lY3Rpb25BYm9ydGVkTm90Q29ubmVjdGVkQWRkckluVXNlQWRkck5vdEF2YWlsYWJsZU5ldHdvcmtEb3duQnJva2VuUGlwZUFscmVhZHlFeGlzdHNXb3VsZEJsb2NrTm90QURpcmVjdG9yeUlzQURpcmVjdG9yeURpcmVjdG9yeU5vdEVtcHR5UmVhZE9ubHlGaWxlc3lzdGVtRmlsZXN5c3RlbUxvb3BTdGFsZU5ldHdvcmtGaWxlSGFuZGxlSW52YWxpZElucHV0SW52YWxpZERhdGFUaW1lZE91dFdyaXRlWmVyb1N0b3JhZ2VGdWxsTm90U2Vla2FibGVGaWxlc3lzdGVtUXVvdGFFeGNlZWRlZEZpbGVU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YTE1MDAxZi9zd2NfY29tbW9uLTUuMC4wL3NyYy9lcnJvcnMvZGlhZ25vc3RpY19idWlsZGVyLnJzADEmFgB2AAAAWQEAAA0AAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9zd2NfY29tbW9uLTUuMC4wL3NyYy9lcnJvcnMvbW9kLnJzALgmFgBnAAAAUAMAAB8AAABhc3NlcnRpb24gZmFpbGVkOiBzdGFydCA8PSBlbmQvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9zd2NfY29tbW9uLTUuMC4wL3NyYy9pbnB1dC5yc04nFgBiAAAAHwAAAAkAAABhc3NlcnRpb24gZmFpbGVkOiBzb3VyY2VfZmlsZV9lbmQgPj0gbGFzdF9saW5lX3N0YXJ0L2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvc3djX2NvbW1vbi01LjAuMC9zcmMvc3ludGF4X3Bvcy9hbmFseXplX3NvdXJjZV9maWxlLnJzAPQnFgB7AAAAKgAAAAkAAAD0JxYAewAAAGoAAAAYAAAA9CcWAHsAAABqAAAALQBBqNHYAAuhCgEAAAA9BAAAPgQAAD8EAAAAAAAABAAAAAQAAAAVAQAAAAAAAAQAAAAEAAAAQAQAAC4uAAABAAAAAAAAANgoFgACAAAAIG1hY3Jvcz5KGBgAAQAAAOwoFgAIAAAAPHF1b3RlIGV4cGFuc2lvbj4AAAAEKRYAEQAAADxhbm9uPgAAICkWAAYAAAA8bWFjcm8gZXhwYW5zaW9uPgAAADApFgARAAAAPHByb2MtbWFjcm8gc291cmNlIGNvZGU+TCkWABgAAABKGBgAAQAAAE0YGAABAAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvc3djX2NvbW1vbi01LjAuMC9zcmMvc3ludGF4X3Bvcy5yc2Fzc2VydGlvbiBmYWlsZWQ6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FgAIAAAAnE0WAAkAAAC8URYACgAAABBLFgANAAAA0VEWAAsAAAAdSxYACwAAAAJaFgAIAAAAQmluZGluZ0lkZW50S2V5VmFsdWVQYXRQcm9wQ29tcHV0ZWRQcm9wTmFtZWZhaWxlZCB0byBwYXJzZSBzdHJpbmcgYXMgbnVtYmVyL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvc3djX2VjbWFfcGFyc2VyLTYuMC4yL3NyYy9sZXhlci9qc3gucnMAAF9EFgBrAAAAhwAAAC8AAABmYWlsZWQgdG8gcGFyc2UgbnVtYmVyIGFzIGNoYXIAAF9EFgBrAAAAiQAAAA4AAAABAAAAAAAAAAMbGAABAAAAAQAAAAAAAADkGhgAAQAAAHF1b3RhbXBhcG9zbHRndG5ic3BpZXhjbGNlbnRwb3VuZGN1cnJlbnllbmJydmJhcnNlY3R1bWxjb3B5b3JkZmxhcXVvbm90c2h5cmVnbWFjcmRlZ3BsdXNtbnN1cDJzdXAzYWN1dGVtaWNyb3BhcmFtaWRkb3RjZWRpbHN1cDFvcmRtcmFxdW9mcmFjMTRmcmFjMTJmcmFjMzRpcXVlc3RBZ3JhdmVBYWN1dGVBY2lyY0F0aWxkZUF1bWxBcmluZ0FFbGlnQ2NlZGlsRWdyYXZlRWFjdXRlRWNpcmNFdW1sSWdyYXZlSWFjdXRlSWNpcmNJdW1sRVRITnRpbGRlT2dyYXZlT2FjdXRlT2NpcmNPdGlsZGVPdW1sdGltZXNPc2xhc2hVZ3JhdmVVYWN1dGVVY2lyY1V1bWxZYWN1dGVUSE9STnN6bGlnYWdyYXZlYWFjdXRlYWNpcmNhdGlsZGVhdW1sYXJpbmdhZWxpZ2NjZWRpbGVncmF2ZWVhY3V0ZWVjaXJjZXVtbGlncmF2ZWlhY3V0ZWljaXJjaXVtbGV0aG50aWxkZW9ncmF2ZW9hY3V0ZW9jaXJjb3RpbGRlb3VtbGRpdmlkZW9zbGFzaHVncmF2ZXVhY3V0ZXVjaXJjdXVtbHlhY3V0ZXRob3JueXVtbE9FbGlnb2VsaWdTY2Fyb25zY2Fyb25ZdW1sZm5vZmNpcmN0aWxkZUFscGhhQmV0YUdhbW1hRGVsdGFFcHNpbG9uWmV0YUV0YVRoZXRhSW90YUthcHBhTGFtYmRhTXVOdVhpT21pY3JvblBpUmhvU2lnbWFUYXVVcHNpbG9uUGhpQ2hpUHNpT21lZ2FhbHBoYWJldGFnYW1tYWRlbHRhZXBzaWxvbnpldGFldGF0aGV0YWlvdGFrYXBwYWxhbWJkYW11bnV4aW9taWNyb25waXJob3NpZ21hZnNpZ21hdGF1dXBzaWxvbnBoaWNoaXBzaW9tZWdhdGhldGFzeW11cHNpaHBpdmVuc3BlbXNwdGhpbnNwenduanp3amxybXJsbW5kYXNobWRhc2hsc3F1b3JzcXVvc2JxdW9sZHF1b3JkcXVvYmRxdW9kYWdnZXJEYWdnZXJidWxsaGVsbGlwcGVybWlscHJpbWVQcmltZWxzYXF1b3JzYXF1b29saW5lZnJhc2xldXJvaW1hZ2V3ZWllcnByZWFsdHJhZGVhbGVmc3ltbGFycnVhcnJyYXJyZGFycmhhcnJjcmFycmxBcnJ1QXJyckFycmRBcnJoQXJyZm9yYWxscGFydGV4aXN0ZW1wdHluYWJsYWlzaW5ub3Rpbm5pcHJvZHN1bW1pbnVzbG93YXN0cmFkaWNpbmZpbmFuZ2FuZG9yY2FwY3VwaW50dGhlcmU0c2ltY29uZ2FzeW1wbmVlcXVpdmxlZ2VzdWJzdXBuc3Vic3ViZXN1cGVvcGx1c290aW1lc3BlcnBzZG90bGNlaWxyY2VpbGxmbG9vcnJmbG9vcmxhbmdyYW5nbG96c3BhZGVzY2x1YnNoZWFydHNkaWFtc0Jvb2xOdWxsTnVtQmlnSW50UmVnZXhKU1hUZXh0ZXhwZmxhZ3NOdW1iZXJKU1hBdHRySlNYRW1wdHlFeHByAACDBAAADAAAAAQAAACrAQAAUGFyYW1wYXRJZGVudE5hbWVKU1hFeHByQ29udGFpbmVySlNYU3ByZWFkQ2hpbGQAkAQAAAQAAAAEAAAANwEAAFRzQXNFeHBykQQAAAwAAAAEAAAA9wEAAFRzRm5UeXBlbGl0dHlwZV9uYW1lSlNYQ2xvc2luZ0VsZW1lbnRuc0pTWENsb3NpbmdGcmFnbWVudEpTWE9wZW5pbmdGcmFnbWVudGVsZW1fdHlwZXR5cGVfcGFyYW1Uc0VudGl0eU5hbWVUc0V4dGVybmFsTW9kdWxlUmVmAAAAAAAAAAEAAAABAAAAhAQAAAAAAAABAAAAAQAAABQAAAAAAAAABAAAAAQAAACSBAAAYWNjZXNzaWJpbGl0eWlzX292ZXJyaWRlcGFyYW0AAABPKRgABAAAALxRFgAKAAAAEEsWAA0AAAAdSxYACwAAAPIaGAAIAAAAKEsWAAUAAABUc1BhcmFtUHJvcGVsZW1fdHlwZXMAAACTBAAAGAAAAAgAAADmAQAAlAQAAAQAAAAEAAAAlQQAAAAAAAAEAAAABAAAAJYEAABpc19pbmlzX291dGNvbnN0cmFpbnQAAABPKRgABAAAAPpZFgAEAAAAqEsWAAUAAACtSxYABgAAAGpUFgAIAAAAs0sWAAoAAABOHRgABwAAAFRzVHlwZVBhcmFtZXhwcl9uYW1lVHNVbmlvblR5cGV0eXBlc1RzRW51bU1lbWJlcnF1YWxpZmllcgAAAAAAAAABAAAAAQAAAJcEAACYBAAAMAAAAAgAAACZBAAAbmFtZV90eXBlAAAATykYAAQAAADyGhgACAAAALRKFgAKAAAAVEwWAAkAAADLVxYACAAAACVUFgAIAAAAVHNUcGxMaXRUeXBlUHVibGljUHJvdGVjdGVkUHJpdmF0ZVRydWVQbHVzTWludXNUc05vbk51bGxFeHByVHNDYWxsU2lnbmF0dXJlRGVjbFRzQ29uc3RydWN0U2lnbmF0dXJlRGVjbFRzUHJvcGVydHlTaWduYXR1cmVUc0dldHRlclNpZ25hdHVyZVRzU2V0dGVyU2lnbmF0dXJlVHNNZXRob2RTaWduYXR1cmVUc0luZGV4U2lnbmF0dXJlVHNUdXBsZUVsZW1lbnRsYWJlbHR5VHNJbnRlcmZhY2VCb2R5VHNTYXRpc2ZpZXNFeHBycGFyYW1fbmFtZQAAmgQAAAQAAAAEAAAA+AEAAGlzX3N0YXRpY2NoZWNrX3R5cGVleHRlbmRzX3R5cGV0cnVlX3R5cGVmYWxzZV90eXBlVHNDb25zdHJ1Y3RvclR5cGVrZXljb21wdXRlZFRzQW55S2V5d29yZFRzVW5rbm93bktleXdvcmRUc051bWJlcktleXdvcmRUc09iamVjdEtleXdvcmRUc0Jvb2xlYW5LZXl3b3JkVHNCaWdJbnRLZXl3b3JkVHNTdHJpbmdLZXl3b3JkVHNTeW1ib2xLZXl3b3JkVHNWb2lkS2V5d29yZFRzVW5kZWZpbmVkS2V5d29yZFRzTnVsbEtleXdvcmRUc05ldmVyS2V5d29yZFRzSW50cmluc2ljS2V5d29yZAAAAAAAAAAEAAAABAAAADICAABPKRgABAAAAN9NFgADAAAA4k0WAAgAAADLVxYACAAAAIRYFgAGAAAAJVQWAAgAAACiWBYACwAAAFRzRXhwcldpdGhUeXBlQXJnc1RzSW50ZXJzZWN0aW9uVHlwZW9ial90eXBlaW5kZXhfdHlwZQAATykYAAQAAADyGhgACAAAAN9NFgADAAAA4k0WAAgAAADLVxYACAAAACVUFgAIAAAAVHNOYW1lc3BhY2VFeHBvcnREZWNsY29udGV4dC5jdXJyZW50KCkgaWYgUGFyZW5TdG10LCBzbyBwcmV2IHRva2VuIGNhbm5vdCBiZSBOb25lAAAAkC8YAG0AAAArAgAAGgAAAAwAAACQLxgAbQAAAOkBAAAtAAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZTogVXNpbmcgaXMgbm90IGEgdmFsaWQgZGVjbGFyYXRpb24gZm9yIGBkZWNsYXJlYCBrZXl3b3Jk2E8WAGAAAACc7xcAcwAAAAwLAAAcAAAAVGhpc1VuYXJ5VXBkYXRlQmluQ29uZENhbGxOZXdTZXFMaXRBcnJvd1lpZWxkTWV0YVByb3BBd2FpdEpTWE1lbWJlckpTWE5hbWVzcGFjZWROYW1lSlNYRW1wdHlKU1hFbGVtZW50SlNYRnJhZ21lbnRUc0NvbnN0QXNzZXJ0aW9uU2hvcnRoYW5kS2V5VmFsdWVHZXR0ZXJTZXR0ZXJNZXRob2RCbG9ja0RlYnVnZ2VyV2l0aFJldHVybkxhYmVsZWRCcmVha0NvbnRpbnVlSWZTd2l0Y2hUaHJvd1RyeVdoaWxlRG9XaGlsZUZvckZvckluRm9yT2ZEZWNsgwQAAAwAAAAEAAAAqwEAAJsEAAAMAAAABAAAAJwEAACdBAAABAAAAAQAAAB4AQAAAAAAAAEAAAABAAAAFAAAAJ4EAAAEAAAABAAAACcCAACfBAAABAAAAAQAAABoAgAAAAAAAAQAAAAEAAAAoAQAAGRlY29yYXRvcnNzdXBlcl9jbGFzc2lzX2Fic3RyYWN0c3VwZXJfdHlwZV9wYXJhbXMAAABPKRgABAAAAMRXFgAEAAAAvFEWAAoAAACKWBYABAAAAMZRFgALAAAA0VEWAAsAAACiWBYACwAAANxRFgARAAAAtB0YAAoAAABWYXJEZWNsZGVjbHNUcnlTdG10YmxvY2toYW5kbGVyZmluYWxpemVySlNYTWVtYmVyRXhwclVzaW5nRGVjbGlzX2F3YWl0b3BlbmluZ2Nsb3NpbmdCbG9ja1N0bXRzdG10cwAAoQQAAAwAAAAEAAAAogQAAKMEAAAYAAAABAAAAIsEAACEWBYABgAAALxRFgAKAAAATykYAAQAAADEVxYABAAAAIpYFgAEAAAAllgWAAwAAACOWBYACAAAAKJYFgALAAAArVgWAAsAAABGdW5jdGlvblRzS2V5d29yZFR5cGVUc1RoaXNUeXBlVHNGbk9yQ29uc3RydWN0b3JUeXBlVHNUeXBlUmVmVHNUeXBlUXVlcnlUc1R5cGVMaXRUc0FycmF5VHlwZVRzVHVwbGVUeXBlVHNPcHRpb25hbFR5cGVUc1Jlc3RUeXBlVHNVbmlvbk9ySW50ZXJzZWN0aW9uVHlwZVRzQ29uZGl0aW9uYWxUeXBlVHNJbmZlclR5cGVUc1BhcmVudGhlc2l6ZWRUeXBlVHNUeXBlT3BlcmF0b3JUc0luZGV4ZWRBY2Nlc3NUeXBlVHNNYXBwZWRUeXBlVHNMaXRUeXBlVHNUeXBlUHJlZGljYXRlVHNJbXBvcnRUeXBlVHNUeXBlQW5udHlwZV9hbm5KU1hPcGVuaW5nRWxlbWVudGF0dHJzc2VsZl9jbG9zaW5nAJMEAAAYAAAACAAAAOYBAABUc0VudW1EZWNsaXNfY29uc3RtZW1iZXJzVHNRdWFsaWZpZWROYW1lVHNNb2R1bGVEZWNspAQAAAwAAAAEAAAApQQAAAAAAAAEAAAABAAAAKYEAABPKRgABAAAAPyuFgACAAAApBoYAAcAAACiWBYACwAAANwaGAAHAAAAilgWAAQAAABUc01vZHVsZUJsb2NrVHNOYW1lc3BhY2VEZWNsVHNUeXBlQWxpYXNEZWNsVHNUeXBlUGFyYW1EZWNsVHNJbXBvcnRFcXVhbHNEZWNsaXNfZXhwb3J0bW9kdWxlX3JlZlRzVHlwZVBhcmFtSW5zdGFudGlhdGlvbgCnBAAABAAAAAQAAACBAgAAAAAAAAEAAAABAAAAFAAAAEV4cG9ydEFsbHNyY3R5cGVfb25seUV4cG9ydERlY2xkZWNsAKgEAAAMAAAABAAAAKkEAACqBAAABAAAAAQAAACrBAAAc3BlY2lmaWVycwAATykYAAQAAADAVRYACgAAAIVVFgADAAAAiFUWAAkAAABDHBgABAAAAJxXFgAFAAAASW1wb3J0RGVjbEV4cG9ydE5hbWVkRXhwb3J0RGVmYXVsdERlY2xFeHBvcnREZWZhdWx0RXhwclRzSW1wb3J0RXF1YWxzVHNFeHBvcnRBc3NpZ25tZW50VHNOYW1lc3BhY2VFeHBvcnRUc0ludGVyZmFjZURlY2xFdmFsdWF0aW9uU291cmNlRGVmZXJOYW1lZEV4cG9ydE5hbWVzcGFjZURlZmF1bHROYW1lZFN0ckV4cG9ydE5hbWVkU3BlY2lmaWVyb3JpZ2V4cG9ydGVkaXNfdHlwZV9vbmx5SW1wb3J0TmFtZWRTcGVjaWZpZXJsb2NhbGltcG9ydGVkSW1wb3J0U3RhckFzU3BlY2lmaWVyRXhwb3J0RGVmYXVsdFNwZWNpZmllckltcG9ydERlZmF1bHRTcGVjaWZpZXJFeHBvcnROYW1lc3BhY2VTcGVjaWZpZXJUcGxleHByc3F1YXNpc1N1cGVyAAAAAAEAAAABAAAAFAAAAEZuRGVjbGlkZW50SW1wb3J0Rm5FeHByAAAAAAAEAAAABAAAAIQCAABwaGFzZQAAAAAAAAAEAAAABAAAAOgBAAAAAAAABAAAAAQAAACSAAAAY3R4dHN5bW9wdGlvbmFsQmluRXhwcm9wcmlnaHROZXdFeHByY2FsbGVlYXJnc3R5cGVfYXJnc09wdENhbGxTZXFFeHByQXJyYXlMaXRlbGVtc0NhbGxFeHByQ29uZEV4cHJ0ZXN0Y29uc2FsdFRoaXNFeHByQ2xhc3NEZWNsAACsBAAADAAAAAQAAACtBAAArgQAAAQAAAAEAAAArwQAAJ4EAAAEAAAABAAAACcCAAAAAAAABAAAAAQAAABBAQAAcGFyYW1zYm9keWlzX2FzeW5jaXNfZ2VuZXJhdG9ydHlwZV9wYXJhbXNyZXR1cm5fdHlwZU8pGAAEAAAAxFcWAAQAAACEWBYABgAAAIpYFgAEAAAAjlgWAAgAAACWWBYADAAAAKJYFgALAAAArVgWAAsAAABBcnJvd0V4cHJBd2FpdEV4cHJhcmdDbGFzc0V4cHJPYmplY3RMaXRwcm9wc1BhcmVuRXhwckNvbXB1dGVkVGFnZ2VkVHBsdHBsVW5hcnlFeHByWWllbGRFeHByZGVsZWdhdGVBc3NpZ25FeHByTWVtYmVyRXhwcm9ianByb3BQcml2YXRlTmFtZVRwbEVsZW1lbnR0YWlsY29va2VkcmF3VXBkYXRlRXhwcnByZWZpeFNpbXBsZVBhdEV4cHJPclNwcmVhZHNwcmVhZE1ldGFQcm9wRXhwcmtpbmRPcHRDaGFpbkV4cHJiYXNlU3ByZWFkUHJvcFZhckRlY2xhcmF0b3JuYW1laW5pdGRlZmluaXRlU3ByZWFkRWxlbWVudGRvdDNfdG9rZW5TdXBlclByb3BFeHByTWVtYmVyU3VwZXJQcm9wUGFyZW5PcHRDaGFpblRzQXNUc1NhdGlzZmllc1RzTm9uTnVsbFRzVHlwZUFzc2VydGlvblRzSW5zdGFudGlhdGlvbgBBpLXZAAsSsAQAALEEAACwBAAAsAQAALEEAEGAttkACwKwBABBgLnZAAvaiwayBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAALIEAACyBAAAsgQAAHN0cnVjdCBUc1N5bnRheC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3N3Y19lY21hX3BhcnNlci02LjAuMi9zcmMvbGV4ZXIvdXRpbC5ycy9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3NtYXJ0c3RyaW5nLTEuMC4xL3NyYy9vcHMucnP7XhYAYQAAAHoAAAA7AAAAVW5leHBlY3RlZCBlb2YvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9zd2NfZWNtYV9wYXJzZXItNi4wLjIvc3JjL2Vycm9yLnJzRGVjbGFyYXRpb24gaXMgbm90IGFsbG93ZWRVc2luZyBkZWNsYXJhdGlvbiBpcyBub3QgYWxsb3dlZFVzaW5nIGRlY2xhcmF0aW9uIGlzIG5vdCBhbGxvd2VkIGluIGZvci1pbiBsb29wVXNpbmcgZGVjbGFyYXRpb24gaXMgbm90IGVuYWJsZWQuIFNldCBqc2MucGFyc2VyLmV4cGxpY2l0UmVzb3VyY2VNYW5hZ2VtZW50IHRvIHRydWVVc2luZyBkZWNsYXJhdGlvbiBvbmx5IGFsbG93cyBpZGVudGlmaWVyc1VzaW5nIGRlY2xhcmF0aW9uIHJlcXVpcmVzIGluaXRpYWxpemVycHJpdmF0ZSBuYW1lcyBhcmUgbm90IGFsbG93ZWQgaW4gaW50ZXJmYWNlSW52YWxpZCBgc3VwZXIoKWBJbnZhbGlkIGFjY2VzcyB0byBzdXBlckluZGV4IHN1cGVyIHdpdGggcHJpdmF0ZSBuYW1lIGlzIG5vdCBhbGxvd2VkJ25ldy50YXJnZXQnIGlzIG9ubHkgYWxsb3dlZCBpbiB0aGUgYm9keSBvZiBhIGZ1bmN0aW9uIGRlY2xhcmF0aW9uLCBmdW5jdGlvbiBleHByZXNzaW9uLCBvciBjbGFzcy5JbXBvcnQgaXMgbm90IGFsbG93ZWQgaGVyZUFuIGFycm93IGZ1bmN0aW9uIGlzIG5vdCBhbGxvd2VkIGhlcmVgZXhwb3J0YCBpcyBub3QgYWxsb3dlZCBoZXJlQSBnZXR0ZXIgb3IgYSBzZXR0ZXIgY2Fubm90IGJlIHJlYWRvbmx5QSBnZXR0ZXIgb3IgYSBzZXR0ZXIgY2Fubm90IGJlIG9wdGlvbmFsQSBgZ2V0YCBhY2Nlc3NvciBjYW5ub3QgaGF2ZSBwYXJhbWV0ZXJzQSBgc2V0YCBhY2Nlc3NvciBtdXN0IGhhdmUgZXhhY3RseSBvbmUgcGFyYW1ldGVydG9wIGxldmVsIGF3YWl0IGlzIG9ubHkgYWxsb3dlZCBpbiBtb2R1bGVMZWdhY3kgZGVjaW1hbCBlc2NhcGUgaXMgbm90IHBlcm1pdHRlZCBpbiBzdHJpY3QgbW9kZUxlZ2FjeSBvY3RhbCBlc2NhcGUgaXMgbm90IHBlcm1pdHRlZCBpbiBzdHJpY3QgbW9kZUludmFsaWQgY2hhcmFjdGVyIGluIGlkZW50aWZpZXJhIGJpbmFyeWFuIG9jdGFsYSBkZWNpbWFsYSBoZXhhZGVjaW1hbEV4cGVjdGVkICBkaWdpdAAAAKJjFgAJAAAAq2MWAAYAAAB6XxYAZwAAAEIBAAAaAAAAU2V0dGVyIHNob3VsZCBoYXZlIGV4YWN0bHkgb25lIHBhcmFtZXRlclJlc3QgcGF0dGVybiBpcyBub3QgYWxsb3dlZCBpbiBzZXR0ZXJVbnRlcm1pbmF0ZWQgYmxvY2sgY29tbWVudFVudGVybWluYXRlZCBzdHJpbmcgY29uc3RhbnRFeHBlY3RlZCB1bmljb2RlIGVzY2FwZVVuZXhwZWN0ZWQgZXNjYXBlIHNlcXVlbmNlIGluIHJlc2VydmVkIHdvcmQ6IABuZBYALQAAAFVudGVybWluYXRlZCByZWdleHAgbGl0ZXJhbFVudGVybWluYXRlZCB0ZW1wbGF0ZUlkZW50aWZpZXIgY2Fubm90IGZvbGxvdyBudW1iZXJVbmV4cGVjdGVkIGNoYXJhY3RlciDzZBYAFQAAAEludmFsaWQgc3RyaW5nIGVzY2FwZUludmFsaWQgdW5pY29kZSBlc2NhcGVCYWQgY2hhcmFjdGVyIGVzY2FwZSBzZXF1ZW5jZSwgZXhwZWN0ZWQgADtlFgAoAAAARXhwZWN0ZWQgKywgLSBvciBkZWNpbWFsIGRpZ2l0IGFmdGVyIGVMZWdhY3kgY29tbWVudHMgY2Fubm90IGJlIHVzZWQgaW4gbW9kdWxlIGNvZGVgIGNhbm5vdCBiZSB1c2VkIGFzIGFuIGlkZW50aWZpZXIgaW4gc3RyaWN0IG1vZGUAtBoYAAEAAAC/ZRYAMAAAAGBhd2FpdGAgY2Fubm90IGJlIHVzZWQgYXMgYW4gaWRlbnRpZmllciBpbiBhbiBhc3luYyBjb250ZXh0J2V2YWwnIGFuZCAnYXJndW1lbnRzJyBjYW5ub3QgYmUgdXNlZCBhcyBhIGJpbmRpbmcgaWRlbnRpZmllciBpbiBzdHJpY3QgbW9kZSdhcmd1bWVudHMnIGlzIG9ubHkgYWxsb3dlZCBpbiBmdW5jdGlvbnMgYW5kIGNsYXNzIG1ldGhvZHNJbGxlZ2FsICd1c2Ugc3RyaWN0JyBkaXJlY3RpdmUgaW4gZnVuY3Rpb24gd2l0aCBub24tc2ltcGxlIHBhcmFtZXRlciBsaXN0LicqKicgY2Fubm90IGJlIGFwcGxpZWQgdG8gdW5hcnkvYXdhaXQgZXhwcmVzc2lvbi5VbmV4cGVjdGVkIHRva2VuICcjJ0xpbmVCcmVhayBjYW5ub3QgZm9sbG93ICd0aHJvdydVbmV4cGVjdGVkIGxpbmUgYnJlYWsgYmV0d2VlbiBhcnJvdyBoZWFkIGFuZCBhcnJvd1VuZXhwZWN0ZWQgdG9rZW4gYGAuIEV4cGVjdGVkIAChZxYAEgAAALNnFgAMAAAAICwgb3IgAADTZxYAAwAAACBvciBVbmV4cGVjdGVkIHRva2VuLiBEaWQgeW91IG1lYW4gAORnFgAfAAAA4xoYAAEAAABjYW5ub3QgaW1wb3J0IGFzIHJlc2VydmVkIHdvcmRhc3NpZ25tZW50IHByb3BlcnR5IGlzIGludmFsaWQgc3ludGF4RXhwZWN0ZWQgJycsIGdvdCAnJwAAV2gWAAoAAABhaBYACAAAAGloFgABAAAARXhwZWN0ZWQgJzsnLCAnfScgb3IgPGVvZj5hd2FpdCogaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBhc3luYyBmdW5jdGlvbnMgcHJvcG9zYWwuIFVzZSBQcm9taXNlLmFsbCgpIGluc3RlYWQuQ2Fubm90IHVzZSBhIHJlc2VydmVkIHdvcmQgYXMgYSBzaG9ydGhhbmQgcHJvcGVydHlOdWxsaXNoIGNvYWxlc2Npbmcgb3BlcmF0b3IoPz8pIHJlcXVpcmVzIHBhcmVucyB3aGVuIG1peGluZyB3aXRoIGxvZ2ljYWwgb3BlcmF0b3JzQSBzd2l0Y2ggYmxvY2sgY2Fubm90IGhhdmUgbXVsdGlwbGUgZGVmYXVsdHNUcmFpbGluZyBjb21tYSBpc24ndCBwZXJtaXR0ZWQgYWZ0ZXIgYSByZXN0IGVsZW1lbnRSZXN0IGVsZW1lbnQgbXVzdCBiZSBmaW5hbCBlbGVtZW50UGFyZW50aGVzaXplZCBleHByZXNzaW9uIGNhbm5vdCBjb250YWluIHNwcmVhZCBvcGVyYXRvclBhcmVudGhlc2l6ZWQgZXhwcmVzc2lvbiBjYW5ub3QgYmUgZW1wdHlOb3QgYSBwYXR0ZXJuTm90IGFuIGV4cHJlc3Npb25DYW5ub3QgYXNzaWduIHRvIHRoaXNJbnZhbGlkIGFzc2lnbm1lbnQgdGFyZ2V0RXhwZWN0ZWQgaWRlbnRFeHBlY3RlZCAnOycgb3IgbGluZSBicmVha0xhYmVsICBpcyBhbHJlYWR5IGRlY2xhcmVkAAAAy2oWAAYAAADRahYAFAAAAEFuIGFzeW5jIGZ1bmN0aW9uIGNhbm5vdCBiZSBnZW5lcmF0b3InaW1wb3J0JywgYW5kICdleHBvcnQnIGFyZSBub3QgcGVybWl0dGVkIGhlcmUnaW1wb3J0JywgYW5kICdleHBvcnQnIGNhbm5vdCBiZSB1c2VkIG91dHNpZGUgb2YgbW9kdWxlIGNvZGUnaW1wb3J0Lm1ldGEnIGNhbm5vdCBiZSB1c2VkIG91dHNpZGUgb2YgbW9kdWxlIGNvZGUuRGVzdHJ1Y3R1cmluZyBiaW5kaW5ncyByZXF1aXJlIGluaXRpYWxpemVyc1dpdGggc3RhdGVtZW50IGFyZSBub3QgYWxsb3dlZCBpbiBzdHJpY3QgbW9kZVJldHVybiBzdGF0ZW1lbnQgaXMgbm90IGFsbG93ZWQgaGVyZUV4cGVjdGVkIG9uZSB2YXJpYWJsZSBiaW5kaW5nVW5leHBlY3RlZCBpbml0aWFsaXplciBpbiBmb3IgaW4vb2YgbG9vcEdlbmVyYXRvciBvciBhc3luYyBmdW5jdGlvbiBjYW5ub3QgYmUgbGFiZWxsZWRGdW5jdGlvbiBjYW5ub3QgYmUgbGFiZWxsZWQgaW4gc3RyaWN0IG1vZGUneWllbGQnIGNhbm5vdCBiZSB1c2VkIGFzIGEgcGFyYW1ldGVyIHdpdGhpbiBnZW5lcmF0b3JgYXdhaXRgIGV4cHJlc3Npb25zIGNhbm5vdCBiZSB1c2VkIGluIGEgcGFyYW1ldGVyIGluaXRpYWxpemVyLmZvciBhd2FpdCBzeW50YXggaXMgdmFsaWQgb25seSBmb3IgZm9yLW9mIHN0YXRlbWVudGF3YWl0IGlzbid0IGFsbG93ZWQgaW4gbm9uLWFzeW5jIGZ1bmN0aW9uVW50ZXJtaW5hdGVkIEpTWCBjb250ZW50c0pTWCBhdHRyaWJ1dGVzIG11c3Qgb25seSBiZSBhc3NpZ25lZCBhIG5vbi1lbXB0eSBleHByZXNzaW9uSlNYIHZhbHVlIHNob3VsZCBiZSBlaXRoZXIgYW4gZXhwcmVzc2lvbiBvciBhIHF1b3RlZCBKU1ggdGV4dEV4cGVjdGVkIGNvcnJlc3BvbmRpbmcgSlNYIGNsb3NpbmcgdGFnIGZvciA8PkV4cGVjdGVkIGNvcnJlc3BvbmRpbmcgSlNYIGNsb3NpbmcgdGFnIGZvciA8AAAAYW4WACwAAABNGBgAAQAAAExlYWRpbmcgZGVjb3JhdG9ycyBtdXN0IGJlIGF0dGFjaGVkIHRvIGEgY2xhc3MgZGVjbGFyYXRpb25Vc2luZyB0aGUgZXhwb3J0IGtleXdvcmQgYmV0d2VlbiBhIGRlY29yYXRvciBhbmQgYSBjbGFzcyBpcyBub3QgYWxsb3dlZC4gUGxlYXNlIHVzZSBgZXhwb3J0IEBkZWMgY2xhc3NgIGluc3RlYWQuQSByZXF1aXJlZCBlbGVtZW50IGNhbm5vdCBmb2xsb3cgYW4gb3B0aW9uYWwgZWxlbWVudC5UeXBlc2NyaXB0IHBhcmFtZXRlciBwcm9wZXJ0eSBtdXN0IGJlIGFuIGlkZW50aWZpZXIgb3IgYXNzaWdubWVudCBwYXR0ZXJuVW5leHBlY3RlZCBzcGFjZSBiZXR3ZWVuICMgYW5kIGlkZW50aWZpZXJDb25zdHJ1Y3RvciBjYW4ndCBiZSBhbiBhc3luYyBmdW5jdGlvbkNsYXNzZXMgbWF5IG5vdCBoYXZlIGEgbm9uLXN0YXRpYyBmaWVsZCBuYW1lZCAnY29uc3RydWN0b3InQ2xhc3NlcyBjYW4ndCBoYXZlIGEgcHJpdmF0ZSBmaWVsZCBuYW1lZCAnI2NvbnN0cnVjdG9yJy4nIG1vZGlmaWVyIGNhbm5vdCBiZSB1c2VkIHdpdGggYSBwcml2YXRlIGlkZW50aWZpZXIAAABpaBYAAQAAAIpwFgAzAAAAQ2xhc3MgY29uc3RydWN0b3IgY2FuJ3QgYmUgYW4gYWNjZXNzb3IuQSBtZXRob2QgY2Fubm90IGJlIHJlYWRvbmx5QSBjb25zdHJ1Y3RvciBjYW5ub3QgYmUgZ2VuZXJhdG9yQSBjbGFzcyBjYW4gb25seSBoYXZlIG9uZSBjb25zdHJ1Y3RvckEgYmluZGluZyBwYXR0ZXJuIHBhcmFtZXRlciBjYW5ub3QgYmUgb3B0aW9uYWwgaW4gYW4gaW1wbGVtZW50YXRpb24gc2lnbmF0dXJlLlN1cGVyIGNhbGwgY2Fubm90IGJlIG9wdGlvbmFsQ29uc3RydWN0b3IgaW4vYWZ0ZXIgYW4gb3B0aW9uYWwgY2hhaW5pbmcgaXMgbm90IGFsbG93ZWQuVGFnZ2VkIHRlbXBsYXRlIGxpdGVyYWwgaXMgbm90IGFsbG93ZWQgaW4gb3B0aW9uYWwgY2hhaW4uVHJhaWxpbmcgY29tbWEgaXMgZGlzYWxsb3dlZCBpbnNpZGUgaW1wb3J0KC4uLikgYXJndW1lbnRzZXhwb3J0IGRlZmF1bHQgc3RhdGVtZW50cyByZXF1aXJlZCBmcm9tICcuLi4nO2AgY2Fubm90IGJlIHVzZWQgd2l0aG91dCBgZnJvbWAgY2xhdXNlAAC0GhgAAQAAAJxyFgAmAAAAYC4uLmAgbXVzdCBiZSBmb2xsb3dlZCBieSBhbiBpZGVudGlmaWVyIGluIGRlY2xhcmF0aW9uIGNvbnRleHRzQSBudW1lcmljIHNlcGFyYXRvciBpcyBvbmx5IGFsbG93ZWQgYmV0d2VlbiB0d28gZGlnaXRzQSBzdHJpbmcgbGl0ZXJhbCBjYW5ub3QgYmUgdXNlZCBhcyBhbiBpbXBvcnRlZCBiaW5kaW5nLgotIERpZCB5b3UgbWVhbiBgaW1wb3J0IHsgIiIgYXMgZm9vIH1gPwBJcxYAUgAAAJtzFgAMAAAAQSBzdHJpbmcgbGl0ZXJhbCBjYW5ub3QgYmUgdXNlZCBhcyBhbiBleHBvcnRlZCBiaW5kaW5nIHdpdGhvdXQgYGZyb21gLidjb25zdCcgZGVjbGFyYXRpb25zIG11c3QgYmUgaW5pdGlhbGl6ZWREdXBsaWNhdGVkIHJlZ3VsYXIgZXhwcmVzc2lvbiBmbGFnICcnLiZ0FgAkAAAASnQWAAIAAABVbmtub3duIHJlZ3VsYXIgZXhwcmVzc2lvbiBmbGFncy5FeHBlY3RlZCBhbiBpZGVudGlmaWVyRXhwZWN0ZWQgYSBzZW1pY29sb25UcmFpbGluZyBjb21tYSBpcyBub3QgYWxsb3dlZEEgcmVzdCBwYXJhbWV0ZXIgbXVzdCBiZSBsYXN0IGluIGEgcGFyYW1ldGVyIGxpc3RQYXJhbWV0ZXIgY2Fubm90IGhhdmUgcXVlc3Rpb24gbWFyayBhbmQgaW5pdGlhbGl6ZXInIG1vZGlmaWVyIG11c3QgcHJlY2VkZSAnJyBtb2RpZmllci5paBYAAQAAACh1FgAZAAAAQXUWAAsAAAAnIG1vZGlmaWVyIGFscmVhZHkgc2Vlbi5paBYAAQAAAGR1FgAYAAAAYGRlY2xhcmVgIG1vZGlmaWVyIGNhbm5vdCBhcHBlYXIgb24gY2xhc3MgZWxlbWVudHMgb2YgdGhpcyBraW5kYGRlY2xhcmVgIG1vZGlmaWVyIG5vdCBhbGxvd2VkIGZvciBjb2RlIGFscmVhZHkgaW4gYW4gYW1iaWVudCBjb250ZXh0YGFzeW5jYCBtb2RpZmllciBjYW5ub3QgYmUgdXNlZCBoZXJlQSByZXN0IHBhcmFtZXRlciBjYW5ub3QgYmUgb3B0aW9uYWxBIHJlc3QgcGFyYW1ldGVyIGNhbm5vdCBoYXZlIGFuIGluaXRpYWxpemVyanNjLnRhcmdldCBzaG91bGQgYmUgZXM1IG9yIHVwcGVyIHRvIHVzZSBnZXR0ZXIgLyBzZXR0ZXJMZWdhY3kgb2N0YWwgbGl0ZXJhbHMgYXJlIG5vdCBhdmFpbGFibGUgd2hlbiB0YXJnZXRpbmcgRUNNQVNjcmlwdCA1IGFuZCBoaWdoZXInIG1vZGlmaWVyIGNhbm5vdCBhcHBlYXIgb24gYSBjb25zdHJ1Y3RvciBkZWNsYXJhdGlvbgAAAGloFgABAAAACHcWADUAAABUeXBlIHBhcmFtZXRlcnMgY2Fubm90IGFwcGVhciBvbiBhIGNvbnN0cnVjdG9yIGRlY2xhcmF0aW9uQW4gaW5kZXggc2lnbmF0dXJlIG11c3QgaGF2ZSBleGFjdGx5IG9uZSBwYXJhbWV0ZXJUeXBlIHBhcmFtZXRlciBsaXN0IGNhbm5vdCBiZSBlbXB0eUludmFsaWQgdXNlIG9mICdhcmd1bWVudHMnIGluIHN0cmljdCBtb2RlJ2RlbGV0ZScgY2Fubm90IGJlIGNhbGxlZCBvbiBhbiBpZGVudGlmaWVyIGluIHN0cmljdCBtb2RlQSAnYnJlYWsnIHN0YXRlbWVudCBjYW4gb25seSBiZSB1c2VkIHdpdGhpbiBhbiBlbmNsb3NpbmcgaXRlcmF0aW9uIG9yIHN3aXRjaCBzdGF0ZW1lbnRUaGUgbGVmdC1oYW5kIHNpZGUgb2YgYSBgZm9yLi4ub2ZgIHN0YXRlbWVudCBtYXkgbm90IGJlIGBhc3luY2BKdW1wIHRhcmdldCBjYW5ub3QgY3Jvc3MgZnVuY3Rpb24gYm91bmRhcnlFeHByZXNzaW9uIGV4cGVjdGVkdHlwZSBleHBlY3RlZER1cGxpY2F0ZSBsYWJlbEEgJ2NvbnRpbnVlJyBzdGF0ZW1lbnQgY2FuIG9ubHkganVtcCB0byBhIGxhYmVsIG9mIGFuIGVuY2xvc2luZyBpdGVyYXRpb24gc3RhdGVtZW50QSAnYnJlYWsnIHN0YXRlbWVudCBjYW4gb25seSBqdW1wIHRvIGEgbGFiZWwgb2YgYW4gZW5jbG9zaW5nIHN0YXRlbWVudFZhcmlhYmxlIGRlY2xhcmF0aW9uIGxpc3QgY2Fubm90IGJlIGVtcHR5bGl0ZXJhbCBpbiBhbiBpbXBvcnQgdHlwZSBzaG91bGQgYmUgc3RyaW5nIGxpdGVyYWxBbiBvYmplY3QgbWVtYmVyIGNhbm5vdCBiZSBkZWNsYXJlZCBvcHRpb25hbENvbXB1dGVkIHByb3BlcnR5IG5hbWVzIGFyZSBub3QgYWxsb3dlZCBpbiBlbnVtc0EgY29tbWEgZXhwcmVzc2lvbiBpcyBub3QgYWxsb3dlZCBpbiBhIGNvbXB1dGVkIHByb3BlcnR5IG5hbWVgZXh0ZW5kc2AgY2xhdXNlIGFscmVhZHkgc2Vlbi4nZXh0ZW5kcycgY2xhdXNlIG11c3QgcHJlY2VkZSAnaW1wbGVtZW50cycgY2xhdXNlLkNsYXNzZXMgY2FuIG9ubHkgZXh0ZW5kIGEgc2luZ2xlIGNsYXNzYGltcGxlbWVudHNgIGNsYXVzZSBhbHJlYWR5IHNlZW5BbiBpbXBsZW1lbnRhdGlvbiBjYW5ub3QgYmUgZGVjbGFyZWQgaW4gYW1iaWVudCBjb250ZXh0c01vZGlmaWVycyBjYW5ub3QgYXBwZWFyIGhlcmVNZXJnZSBjb25mbGljdCBtYXJrZXIgZW5jb3VudGVyZWQuVHlwZSBhbm5vdGF0aW9uIGNhbm5vdCBhcHBlYXIgb24gYSBjb25zdHJ1Y3RvciBkZWNsYXJhdGlvbkNhdGNoIGNsYXVzZSB2YXJpYWJsZSBjYW5ub3QgaGF2ZSBhIHR5cGUgYW5ub3RhdGlvbmBhYnN0cmFjdGAgbW9kaWZpZXIgY2FuIG9ubHkgYXBwZWFyIG9uIGEgY2xhc3Mgb3IgbWV0aG9kIGRlY2xhcmF0aW9uJyBtb2RpZmllciBjYW5ub3QgYmUgdXNlZCB3aXRoICcAAABpaBYAAQAAAHl8FgAgAAAAQXUWAAsAAABBYnN0cmFjdCBtZXRob2RzIGNhbiBvbmx5IGFwcGVhciB3aXRoaW4gYW4gYWJzdHJhY3QgY2xhc3MuQWJzdHJhY3QgbWV0aG9kIGNhbm5vdCBoYXZlIGFuIGltcGxlbWVudGF0aW9uLkFic3RyYWN0IHByb3BlcnR5IGNhbm5vdCBoYXZlIGFuIGluaXRpYWxpemVyLicgbW9kaWZpZXIgY2Fubm90IGFwcGVhciBvbiBhIHR5cGUgcGFyYW1ldGVyAAAAaWgWAAEAAABJfRYALAAAACcgbW9kaWZpZXIgY2FuIG9ubHkgYXBwZWFyIG9uIGEgdHlwZSBwYXJhbWV0ZXIgb2YgYSBjbGFzcywgaW50ZXJmYWNlIG9yIHR5cGUgYWxpYXMAAGloFgABAAAAiH0WAFIAAAAnIG1vZGlmaWVyIGNhbiBvbmx5IGFwcGVhciBvbiBhIHR5cGUgcGFyYW1ldGVyIG9mIGEgZnVuY3Rpb24sIG1ldGhvZCBvciBjbGFzcwAAAGloFgABAAAA7H0WAE0AAABUaGUgJ3R5cGUnIG1vZGlmaWVyIGNhbm5vdCBiZSB1c2VkIG9uIGEgbmFtZWQgaW1wb3J0IHdoZW4gJ2ltcG9ydCB0eXBlJyBpcyB1c2VkIG9uIGl0cyBpbXBvcnQgc3RhdGVtZW50LlRoZSAndHlwZScgbW9kaWZpZXIgY2Fubm90IGJlIHVzZWQgb24gYSBuYW1lZCBleHBvcnQgd2hlbiAnZXhwb3J0IHR5cGUnIGlzIHVzZWQgb24gaXRzIGV4cG9ydCBzdGF0ZW1lbnQuQSBwYXJhbWV0ZXIgcHJvcGVydHkgaXMgb25seSBhbGxvd2VkIGluIGEgY29uc3RydWN0b3IgaW1wbGVtZW50YXRpb25BIHBhcmFtZXRlciBpbml0aWFsaXplciBpcyBvbmx5IGFsbG93ZWQgaW4gYSBmdW5jdGlvbiBvciBjb25zdHJ1Y3RvciBpbXBsZW1lbnRhdGlvblRoZSBsZWZ0LWhhbmQgc2lkZSBvZiBhbiBhc3NpZ25tZW50IGV4cHJlc3Npb24gbXVzdCBiZSBhIHZhcmlhYmxlIG9yIGEgcHJvcGVydHkgYWNjZXNzLlRoZSAnd2l0aCcgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQuIEFsbCBzeW1ib2xzIGluIGEgJ3dpdGgnIGJsb2NrIHdpbGwgaGF2ZSB0eXBlICdhbnknLkludmFsaWQgY2xhc3MgbmFtZWludGVyZmFjZSBuYW1lIGlzIGludmFsaWRBbiBlbnVtIG1lbWJlciBjYW5ub3QgaGF2ZSBhIG51bWVyaWMgbmFtZVRoZSBsZWZ0LWhhbmQgc2lkZSBvZiBhICdmb3IuLi5vZicgc3RhdGVtZW50IGNhbm5vdCB1c2UgYSB0eXBlIGFubm90YXRpb25UaGUgbGVmdC1oYW5kIHNpZGUgb2YgYSAnZm9yLi4uaW4nIHN0YXRlbWVudCBjYW5ub3QgYmUgYSBkZXN0cnVjdHVyaW5nIHBhdHRlcm5BbiBpbnRlcmZhY2UgY2FuIG9ubHkgZXh0ZW5kIGFuIGlkZW50aWZpZXIvcXVhbGlmaWVkLW5hbWUgd2l0aCBvcHRpb25hbCB0eXBlIGFyZ3VtZW50cy5UaGUgb3BlcmFuZCBvZiBhIGRlbGV0ZSBvcGVyYXRvciBtdXN0IGJlIGEgcHJvcGVydHkgcmVmZXJlbmNlLlRoaXMgbWVtYmVyIGNhbm5vdCBoYXZlIGFuICdvdmVycmlkZScgbW9kaWZpZXIgYmVjYXVzZSBpdHMgY29udGFpbmluZyBjbGFzcyBkb2VzIG5vdCBleHRlbmQgYW5vdGhlciBjbGFzcy5EZWNvcmF0b3JzIG1heSBub3QgYXBwZWFyIGFmdGVyIGBleHBvcnRgIG9yIGBleHBvcnQgZGVmYXVsdGAgaWYgdGhleSBhbHNvIGFwcGVhciBiZWZvcmUgYGV4cG9ydGAuQW4gYWNjZXNzaWJpbGl0eSBtb2RpZmllciBjYW5ub3QgYmUgdXNlZCB3aXRoIGEgcHJpdmF0ZSBpZGVudGlmaWVyLlR5cGUgYW5ub3RhdGlvbnMgbXVzdCBjb21lIGJlZm9yZSBkZWZhdWx0IGFzc2lnbm1lbnRzVHlwZXNjcmlwdCBub24tbnVsbCBhc3NlcnRpb24gb3BlcmF0b3IgaXMgbm90IGFsbG93ZWQgd2l0aCAnACeDFgA8AAAAaWgWAAEAAABUaGlzIHN5bnRheCBpcyByZXNlcnZlZCBpbiBmaWxlcyB3aXRoIHRoZSAubXRzIG9yIC5jdHMgZXh0ZW5zaW9uLiBVc2UgYW4gYGFzYCBleHByZXNzaW9uIGluc3RlYWQuVGhpcyBzeW50YXggaXMgcmVzZXJ2ZWQgaW4gZmlsZXMgd2l0aCB0aGUgLm10cyBvciAuY3RzIGV4dGVuc2lvbi4gQWRkIGEgdHJhaWxpbmcgY29tbWEsIGFzIGluIGA8VCw+KCkgPT4gLi4uYC5UaGlzIGlzIHRoZSBleHByZXNzaW9uIHBhcnQgb2YgYW4gZXhwcmVzc2lvbiBzdGF0ZW1lbnRwcmV2aW91cyBkZWZhdWx0IGNhc2UgaXMgZGVjbGFyZWQgYXQgaGVyZUVvZkRlY2xOb3RBbGxvd2VkVXNpbmdEZWNsTm90QWxsb3dlZFVzaW5nRGVjbE5vdEFsbG93ZWRGb3JGb3JJbkxvb3BVc2luZ0RlY2xOb3RFbmFibGVkSW52YWxpZE5hbWVJblVzaW5nRGVjbEluaXRSZXF1aXJlZEZvclVzaW5nRGVjbFByaXZhdGVOYW1lSW5JbnRlcmZhY2VJbnZhbGlkU3VwZXJDYWxsSW52YWxpZFN1cGVySW52YWxpZFN1cGVyUHJpdmF0ZU5hbWVJbnZhbGlkTmV3VGFyZ2V0SW52YWxpZEltcG9ydEFycm93Tm90QWxsb3dlZEV4cG9ydE5vdEFsbG93ZWRHZXR0ZXJTZXR0ZXJDYW5ub3RCZVJlYWRvbmx5R2V0dGVyU2V0dGVyQ2Fubm90QmVPcHRpb25hbEdldHRlclBhcmFtU2V0dGVyUGFyYW1Ub3BMZXZlbEF3YWl0SW5TY3JpcHRMZWdhY3lEZWNpbWFsTGVnYWN5T2N0YWxJbnZhbGlkSWRlbnRDaGFyRXhwZWN0ZWREaWdpdHJhZGl4U2V0dGVyUGFyYW1SZXF1aXJlZFJlc3RQYXRJblNldHRlclVudGVybWluYXRlZEJsb2NrQ29tbWVudFVudGVybWluYXRlZFN0ckxpdEV4cGVjdGVkVW5pY29kZUVzY2FwZUVzY2FwZUluUmVzZXJ2ZWRXb3Jkd29yZFVudGVybWluYXRlZFJlZ0V4cFVudGVybWluYXRlZFRwbElkZW50QWZ0ZXJOdW1VbmV4cGVjdGVkQ2hhcmNJbnZhbGlkU3RyRXNjYXBlSW52YWxpZFVuaWNvZGVFc2NhcGVCYWRDaGFyYWN0ZXJFc2NhcGVTZXF1ZW5jZWV4cGVjdGVkTnVtTGl0VGVybWluYXRlZFdpdGhFeHBMZWdhY3lDb21tZW50SW5Nb2R1bGVJbnZhbGlkSWRlbnRJblN0cmljdEludmFsaWRJZGVudEluQXN5bmNFdmFsQW5kQXJndW1lbnRzSW5TdHJpY3RBcmd1bWVudHNJbkNsYXNzRmllbGRJbGxlZ2FsTGFuZ3VhZ2VNb2RlRGlyZWN0aXZlVW5hcnlJbkV4cGxlZnRsZWZ0X3NwYW5IYXNoTGluZUJyZWFrSW5UaHJvd0xpbmVCcmVha0JlZm9yZUFycm93VW5leHBlY3RlZGdvdFVuZXhwZWN0ZWRUb2tlbldpdGhTdWdnZXN0aW9uc2NhbmRpZGF0ZV9saXN0UmVzZXJ2ZWRXb3JkSW5JbXBvcnRBc3NpZ25Qcm9wZXJ0eUV4cGVjdGVkRXhwZWN0ZWRTZW1pRm9yRXhwclN0bXRleHByQXdhaXRTdGFyUmVzZXJ2ZWRXb3JkSW5PYmpTaG9ydGhhbmRPclBhdE51bGxpc2hDb2FsZXNjaW5nV2l0aExvZ2ljYWxPcE11bHRpcGxlRGVmYXVsdHByZXZpb3VzQ29tbWFBZnRlclJlc3RFbGVtZW50Tm9uTGFzdFJlc3RQYXJhbVNwcmVhZEluUGFyZW5FeHByRW1wdHlQYXJlbkV4cHJJbnZhbGlkUGF0SW52YWxpZEV4cHJOb3RTaW1wbGVBc3NpZ25JbnZhbGlkQXNzaWduVGFyZ2V0RXhwZWN0ZWRJZGVudEV4cGVjdGVkU2VtaUR1cGxpY2F0ZUxhYmVsQXN5bmNHZW5lcmF0b3JOb25Ub3BMZXZlbEltcG9ydEV4cG9ydEltcG9ydEV4cG9ydEluU2NyaXB0SW1wb3J0TWV0YUluU2NyaXB0UGF0VmFyV2l0aG91dEluaXRXaXRoSW5TdHJpY3RSZXR1cm5Ob3RBbGxvd2VkVG9vTWFueVZhckluRm9ySW5IZWFkVmFySW5pdGlhbGl6ZXJJbkZvckluSGVhZExhYmVsbGVkR2VuZXJhdG9yT3JBc3luY0xhYmVsbGVkRnVuY3Rpb25JblN0cmljdFlpZWxkUGFyYW1JbkdlbkF3YWl0UGFyYW1JbkFzeW5jQXdhaXRGb3JTdG10QXdhaXRJbkZ1bmN0aW9uVW50ZXJtaW5hdGVkSlNYQ29udGVudHNFbXB0eUpTWEF0dHJJbnZhbGlkSlNYVmFsdWVKU1hFeHBlY3RlZENsb3NpbmdUYWdGb3JMdEd0SlNYRXhwZWN0ZWRDbG9zaW5nVGFndGFnSW52YWxpZExlYWRpbmdEZWNvcmF0b3JEZWNvcmF0b3JPbkV4cG9ydFRzUmVxdWlyZWRBZnRlck9wdGlvbmFsVHNJbnZhbGlkUGFyYW1Qcm9wUGF0U3BhY2VCZXR3ZWVuSGFzaEFuZElkZW50QXN5bmNDb25zdHJ1Y3RvclByb3BlcnR5TmFtZWRDb25zdHJ1Y3RvclByaXZhdGVDb25zdHJ1Y3RvclByaXZhdGVOYW1lTW9kaWZpZXJDb25zdHJ1Y3RvckFjY2Vzc29yUmVhZE9ubHlNZXRob2RHZW5lcmF0b3JDb25zdHJ1Y3RvckR1cGxpY2F0ZUNvbnN0cnVjdG9yVHNCaW5kaW5nUGF0Q2Fubm90QmVPcHRpb25hbFN1cGVyQ2FsbE9wdGlvbmFsT3B0Q2hhaW5DYW5ub3RGb2xsb3dDb25zdHJ1Y3RvckNhbGxUYWdnZWRUcGxJbk9wdENoYWluVHJhaWxpbmdDb21tYUluc2lkZUltcG9ydEV4cG9ydERlZmF1bHRXaXRoT3V0RnJvbUV4cG9ydEV4cGVjdEZyb21Eb3RzV2l0aG91dElkZW50aWZpZXJOdW1lcmljU2VwYXJhdG9ySXNBbGxvd2VkT25seUJldHdlZW5Ud29EaWdpdHNJbXBvcnRCaW5kaW5nSXNTdHJpbmdFeHBvcnRCaW5kaW5nSXNTdHJpbmdDb25zdERlY2xhcmF0aW9uc1JlcXVpcmVJbml0aWFsaXphdGlvbkR1cGxpY2F0ZWRSZWdFeHBGbGFnc1Vua25vd25SZWdFeHBGbGFnc1RTMTAwM1RTMTAwNVRTMTAwOVRTMTAxNFRTMTAxNVRTMTAyOVRTMTAzMFRTMTAzMVRTMTAzOFRTMTA0MlRTMTA0N1RTMTA0OFRTMTA1NlRTMTA4NVRTMTA4OVRTMTA5MlRTMTA5NlRTMTA5OFRTMTEwMFRTMTEwMlRTMTEwNVRTMTEwNlRTMTEwN1RTMTEwOVRTMTExMFRTMTExNFRTMTExNVRTMTExNlRTMTEyM1RTMTE0MVRTMTE2MlRTMTE2NFRTMTE3MVRTMTE3MlRTMTE3M1RTMTE3NFRTMTE3NVRTMTE4M1RTMTE4NFRTMTE4NVRTMTA5M1RTMTE5NlRTMTI0MlRTMTI0M1RTMTI0NFRTMTI0NVRTMTI2N1RTMTI3M1RTMTI3NFRTMTI3N1RTMjIwNlRTMjIwN1RTMjM2OVRTMjM3MVRTMjQwNlRTMjQxMFRTMjQxNFRTMjQyN1RTMjQ1MlRTMjQ4M1RTMjQ5MVRTMjQ5OVRTMjcwM1RTNDExMlRTODAzOFRTMTgwMTBUU1R5cGVBbm5vdGF0aW9uQWZ0ZXJBc3NpZ25Uc05vbk51bGxBc3NlcnRpb25Ob3RBbGxvd2VkAAAAAAAACAAAAAQAAAB9AAAAV2l0aExhYmVsaW5uZXJub3RlUmVzZXJ2ZWRUeXBlQXNzZXJ0aW9uUmVzZXJ2ZWRBcnJvd1R5cGVQYXJhbQAAAAWuFgB2AAAA/QAAAAEAAABfYXBwbHlfZGVjb3JhdGVkX2Rlc2NyaXB0b3JAc3djL2hlbHBlcnMvXy9fYXBwbHlfZGVjb3JhdGVkX2Rlc2NyaXB0b3JfYXJyYXlfbGlrZV90b19hcnJheUBzd2MvaGVscGVycy9fL19hcnJheV9saWtlX3RvX2FycmF5X2FycmF5X3dpdGhfaG9sZXNAc3djL2hlbHBlcnMvXy9fYXJyYXlfd2l0aF9ob2xlc19hcnJheV93aXRob3V0X2hvbGVzQHN3Yy9oZWxwZXJzL18vX2FycmF5X3dpdGhvdXRfaG9sZXNfYXNzZXJ0X3RoaXNfaW5pdGlhbGl6ZWRAc3djL2hlbHBlcnMvXy9fYXNzZXJ0X3RoaXNfaW5pdGlhbGl6ZWRfYXN5bmNfZ2VuZXJhdG9yQHN3Yy9oZWxwZXJzL18vX2FzeW5jX2dlbmVyYXRvcl9hc3luY19nZW5lcmF0b3JfZGVsZWdhdGVAc3djL2hlbHBlcnMvXy9fYXN5bmNfZ2VuZXJhdG9yX2RlbGVnYXRlX2FzeW5jX2l0ZXJhdG9yQHN3Yy9oZWxwZXJzL18vX2FzeW5jX2l0ZXJhdG9yX2FzeW5jX3RvX2dlbmVyYXRvckBzd2MvaGVscGVycy9fL19hc3luY190b19nZW5lcmF0b3JfYXdhaXRfYXN5bmNfZ2VuZXJhdG9yQHN3Yy9oZWxwZXJzL18vX2F3YWl0X2FzeW5jX2dlbmVyYXRvcl9hd2FpdF92YWx1ZUBzd2MvaGVscGVycy9fL19hd2FpdF92YWx1ZV9jYWxsX3N1cGVyQHN3Yy9oZWxwZXJzL18vX2NhbGxfc3VwZXJfY2hlY2tfcHJpdmF0ZV9yZWRlY2xhcmF0aW9uQHN3Yy9oZWxwZXJzL18vX2NoZWNrX3ByaXZhdGVfcmVkZWNsYXJhdGlvbl9jbGFzc19hcHBseV9kZXNjcmlwdG9yX2Rlc3RydWN0dXJlQHN3Yy9oZWxwZXJzL18vX2NsYXNzX2FwcGx5X2Rlc2NyaXB0b3JfZGVzdHJ1Y3R1cmVfY2xhc3NfYXBwbHlfZGVzY3JpcHRvcl9nZXRAc3djL2hlbHBlcnMvXy9fY2xhc3NfYXBwbHlfZGVzY3JpcHRvcl9nZXRfY2xhc3NfYXBwbHlfZGVzY3JpcHRvcl9zZXRAc3djL2hlbHBlcnMvXy9fY2xhc3NfYXBwbHlfZGVzY3JpcHRvcl9zZXRfY2xhc3NfYXBwbHlfZGVzY3JpcHRvcl91cGRhdGVAc3djL2hlbHBlcnMvXy9fY2xhc3NfYXBwbHlfZGVzY3JpcHRvcl91cGRhdGVfY2xhc3NfY2FsbF9jaGVja0Bzd2MvaGVscGVycy9fL19jbGFzc19jYWxsX2NoZWNrX2NsYXNzX2NoZWNrX3ByaXZhdGVfc3RhdGljX2ZpZWxkX2Rlc2NyaXB0b3JAc3djL2hlbHBlcnMvXy9fY2xhc3NfY2hlY2tfcHJpdmF0ZV9zdGF0aWNfZmllbGRfZGVzY3JpcHRvcl9jbGFzc19leHRyYWN0X2ZpZWxkX2Rlc2NyaXB0b3JAc3djL2hlbHBlcnMvXy9fY2xhc3NfZXh0cmFjdF9maWVsZF9kZXNjcmlwdG9yX2NsYXNzX25hbWVfdGR6X2Vycm9yQHN3Yy9oZWxwZXJzL18vX2NsYXNzX25hbWVfdGR6X2Vycm9yX2NsYXNzX3ByaXZhdGVfZmllbGRfZ2V0QHN3Yy9oZWxwZXJzL18vX2NsYXNzX3ByaXZhdGVfZmllbGRfZ2V0X2NsYXNzX3ByaXZhdGVfZmllbGRfaW5pdEBzd2MvaGVscGVycy9fL19jbGFzc19wcml2YXRlX2ZpZWxkX2luaXRfY2xhc3NfcHJpdmF0ZV9maWVsZF9sb29zZV9iYXNlQHN3Yy9oZWxwZXJzL18vX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2VfYmFzZV9jbGFzc19wcml2YXRlX2ZpZWxkX2xvb3NlX2tleUBzd2MvaGVscGVycy9fL19jbGFzc19wcml2YXRlX2ZpZWxkX2xvb3NlX2tleV9jbGFzc19wcml2YXRlX2ZpZWxkX3NldEBzd2MvaGVscGVycy9fL19jbGFzc19wcml2YXRlX2ZpZWxkX3NldF9jbGFzc19wcml2YXRlX2ZpZWxkX3VwZGF0ZUBzd2MvaGVscGVycy9fL19jbGFzc19wcml2YXRlX2ZpZWxkX3VwZGF0ZV9jbGFzc19wcml2YXRlX21ldGhvZF9nZXRAc3djL2hlbHBlcnMvXy9fY2xhc3NfcHJpdmF0ZV9tZXRob2RfZ2V0X2NsYXNzX3ByaXZhdGVfbWV0aG9kX2luaXRAc3djL2hlbHBlcnMvXy9fY2xhc3NfcHJpdmF0ZV9tZXRob2RfaW5pdF9jbGFzc19wcml2YXRlX21ldGhvZF9zZXRAc3djL2hlbHBlcnMvXy9fY2xhc3NfcHJpdmF0ZV9tZXRob2Rfc2V0X2NsYXNzX3N0YXRpY19wcml2YXRlX2ZpZWxkX3NwZWNfZ2V0QHN3Yy9oZWxwZXJzL18vX2NsYXNzX3N0YXRpY19wcml2YXRlX2ZpZWxkX3NwZWNfZ2V0X2NsYXNzX3N0YXRpY19wcml2YXRlX2ZpZWxkX3NwZWNfc2V0QHN3Yy9oZWxwZXJzL18vX2NsYXNzX3N0YXRpY19wcml2YXRlX2ZpZWxkX3NwZWNfc2V0X2NsYXNzX3N0YXRpY19wcml2YXRlX2ZpZWxkX3VwZGF0ZUBzd2MvaGVscGVycy9fL19jbGFzc19zdGF0aWNfcHJpdmF0ZV9maWVsZF91cGRhdGVfY29uc3RydWN0QHN3Yy9oZWxwZXJzL18vX2NvbnN0cnVjdF9jcmVhdGVfY2xhc3NAc3djL2hlbHBlcnMvXy9fY3JlYXRlX2NsYXNzX2RlY29yYXRlQHN3Yy9oZWxwZXJzL18vX2RlY29yYXRlX2RlZmF1bHRzQHN3Yy9oZWxwZXJzL18vX2RlZmF1bHRzX2RlZmluZV9lbnVtZXJhYmxlX3Byb3BlcnRpZXNAc3djL2hlbHBlcnMvXy9fZGVmaW5lX2VudW1lcmFibGVfcHJvcGVydGllc19kZWZpbmVfcHJvcGVydHlAc3djL2hlbHBlcnMvXy9fZGVmaW5lX3Byb3BlcnR5X2V4cG9ydF9zdGFyQHN3Yy9oZWxwZXJzL18vX2V4cG9ydF9zdGFyX2V4dGVuZHNAc3djL2hlbHBlcnMvXy9fZXh0ZW5kc19nZXRAc3djL2hlbHBlcnMvXy9fZ2V0X2dldF9wcm90b3R5cGVfb2ZAc3djL2hlbHBlcnMvXy9fZ2V0X3Byb3RvdHlwZV9vZl9pbmhlcml0c0Bzd2MvaGVscGVycy9fL19pbmhlcml0c19pbmhlcml0c19sb29zZUBzd2MvaGVscGVycy9fL19pbmhlcml0c19sb29zZV9pbml0aWFsaXplcl9kZWZpbmVfcHJvcGVydHlAc3djL2hlbHBlcnMvXy9faW5pdGlhbGl6ZXJfZGVmaW5lX3Byb3BlcnR5X2luaXRpYWxpemVyX3dhcm5pbmdfaGVscGVyQHN3Yy9oZWxwZXJzL18vX2luaXRpYWxpemVyX3dhcm5pbmdfaGVscGVyX2luc3RhbmNlb2ZAc3djL2hlbHBlcnMvXy9faW5zdGFuY2VvZl9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdEBzd2MvaGVscGVycy9fL19pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmRAc3djL2hlbHBlcnMvXy9faW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkX2lzX25hdGl2ZV9mdW5jdGlvbkBzd2MvaGVscGVycy9fL19pc19uYXRpdmVfZnVuY3Rpb25faXRlcmFibGVfdG9fYXJyYXlAc3djL2hlbHBlcnMvXy9faXRlcmFibGVfdG9fYXJyYXlfaXRlcmFibGVfdG9fYXJyYXlfbGltaXRAc3djL2hlbHBlcnMvXy9faXRlcmFibGVfdG9fYXJyYXlfbGltaXRfaXRlcmFibGVfdG9fYXJyYXlfbGltaXRfbG9vc2VAc3djL2hlbHBlcnMvXy9faXRlcmFibGVfdG9fYXJyYXlfbGltaXRfbG9vc2VfanN4QHN3Yy9oZWxwZXJzL18vX2pzeF9uZXdfYXJyb3dfY2hlY2tAc3djL2hlbHBlcnMvXy9fbmV3X2Fycm93X2NoZWNrX25vbl9pdGVyYWJsZV9yZXN0QHN3Yy9oZWxwZXJzL18vX25vbl9pdGVyYWJsZV9yZXN0X25vbl9pdGVyYWJsZV9zcHJlYWRAc3djL2hlbHBlcnMvXy9fbm9uX2l0ZXJhYmxlX3NwcmVhZF9vYmplY3RfZGVzdHJ1Y3R1cmluZ19lbXB0eUBzd2MvaGVscGVycy9fL19vYmplY3RfZGVzdHJ1Y3R1cmluZ19lbXB0eV9vYmplY3Rfc3ByZWFkQHN3Yy9oZWxwZXJzL18vX29iamVjdF9zcHJlYWRfb2JqZWN0X3NwcmVhZF9wcm9wc0Bzd2MvaGVscGVycy9fL19vYmplY3Rfc3ByZWFkX3Byb3BzX29iamVjdF93aXRob3V0X3Byb3BlcnRpZXNAc3djL2hlbHBlcnMvXy9fb2JqZWN0X3dpdGhvdXRfcHJvcGVydGllc19vYmplY3Rfd2l0aG91dF9wcm9wZXJ0aWVzX2xvb3NlQHN3Yy9oZWxwZXJzL18vX29iamVjdF93aXRob3V0X3Byb3BlcnRpZXNfbG9vc2VfcG9zc2libGVfY29uc3RydWN0b3JfcmV0dXJuQHN3Yy9oZWxwZXJzL18vX3Bvc3NpYmxlX2NvbnN0cnVjdG9yX3JldHVybl9yZWFkX29ubHlfZXJyb3JAc3djL2hlbHBlcnMvXy9fcmVhZF9vbmx5X2Vycm9yX3NldEBzd2MvaGVscGVycy9fL19zZXRfc2V0X3Byb3RvdHlwZV9vZkBzd2MvaGVscGVycy9fL19zZXRfcHJvdG90eXBlX29mX3NraXBfZmlyc3RfZ2VuZXJhdG9yX25leHRAc3djL2hlbHBlcnMvXy9fc2tpcF9maXJzdF9nZW5lcmF0b3JfbmV4dF9zbGljZWRfdG9fYXJyYXlAc3djL2hlbHBlcnMvXy9fc2xpY2VkX3RvX2FycmF5X3NsaWNlZF90b19hcnJheV9sb29zZUBzd2MvaGVscGVycy9fL19zbGljZWRfdG9fYXJyYXlfbG9vc2Vfc3VwZXJfcHJvcF9iYXNlQHN3Yy9oZWxwZXJzL18vX3N1cGVyX3Byb3BfYmFzZV90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbEBzd2MvaGVscGVycy9fL190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZUBzd2MvaGVscGVycy9fL190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZV90aHJvd0Bzd2MvaGVscGVycy9fL190aHJvd190b19hcnJheUBzd2MvaGVscGVycy9fL190b19hcnJheV90b19jb25zdW1hYmxlX2FycmF5QHN3Yy9oZWxwZXJzL18vX3RvX2NvbnN1bWFibGVfYXJyYXlfdG9fcHJpbWl0aXZlQHN3Yy9oZWxwZXJzL18vX3RvX3ByaW1pdGl2ZV90b19wcm9wZXJ0eV9rZXlAc3djL2hlbHBlcnMvXy9fdG9fcHJvcGVydHlfa2V5X3VwZGF0ZUBzd2MvaGVscGVycy9fL191cGRhdGVfdHlwZV9vZkBzd2MvaGVscGVycy9fL190eXBlX29mX3Vuc3VwcG9ydGVkX2l0ZXJhYmxlX3RvX2FycmF5QHN3Yy9oZWxwZXJzL18vX3Vuc3VwcG9ydGVkX2l0ZXJhYmxlX3RvX2FycmF5X3dyYXBfYXN5bmNfZ2VuZXJhdG9yQHN3Yy9oZWxwZXJzL18vX3dyYXBfYXN5bmNfZ2VuZXJhdG9yX3dyYXBfbmF0aXZlX3N1cGVyQHN3Yy9oZWxwZXJzL18vX3dyYXBfbmF0aXZlX3N1cGVyX3dyaXRlX29ubHlfZXJyb3JAc3djL2hlbHBlcnMvXy9fd3JpdGVfb25seV9lcnJvcl9jbGFzc19wcml2YXRlX2ZpZWxkX2Rlc3RydWN0dXJlQHN3Yy9oZWxwZXJzL18vX2NsYXNzX3ByaXZhdGVfZmllbGRfZGVzdHJ1Y3R1cmVfY2xhc3Nfc3RhdGljX3ByaXZhdGVfZmllbGRfZGVzdHJ1Y3R1cmVAc3djL2hlbHBlcnMvXy9fY2xhc3Nfc3RhdGljX3ByaXZhdGVfZmllbGRfZGVzdHJ1Y3R1cmVfY2xhc3Nfc3RhdGljX3ByaXZhdGVfbWV0aG9kX2dldEBzd2MvaGVscGVycy9fL19jbGFzc19zdGF0aWNfcHJpdmF0ZV9tZXRob2RfZ2V0X2NsYXNzX2NoZWNrX3ByaXZhdGVfc3RhdGljX2FjY2Vzc0Bzd2MvaGVscGVycy9fL19jbGFzc19jaGVja19wcml2YXRlX3N0YXRpY19hY2Nlc3NfaXNfbmF0aXZlX3JlZmxlY3RfY29uc3RydWN0QHN3Yy9oZWxwZXJzL18vX2lzX25hdGl2ZV9yZWZsZWN0X2NvbnN0cnVjdF9jcmVhdGVfc3VwZXJAc3djL2hlbHBlcnMvXy9fY3JlYXRlX3N1cGVyX2NyZWF0ZV9mb3Jfb2ZfaXRlcmF0b3JfaGVscGVyX2xvb3NlQHN3Yy9oZWxwZXJzL18vX2NyZWF0ZV9mb3Jfb2ZfaXRlcmF0b3JfaGVscGVyX2xvb3NlX3RzX2RlY29yYXRlQHN3Yy9oZWxwZXJzL18vX3RzX2RlY29yYXRlX3RzX2dlbmVyYXRvckBzd2MvaGVscGVycy9fL190c19nZW5lcmF0b3JfdHNfbWV0YWRhdGFAc3djL2hlbHBlcnMvXy9fdHNfbWV0YWRhdGFfdHNfcGFyYW1Ac3djL2hlbHBlcnMvXy9fdHNfcGFyYW1fdHNfdmFsdWVzQHN3Yy9oZWxwZXJzL18vX3RzX3ZhbHVlc190c19hZGRfZGlzcG9zYWJsZV9yZXNvdXJjZUBzd2MvaGVscGVycy9fL190c19hZGRfZGlzcG9zYWJsZV9yZXNvdXJjZV90c19kaXNwb3NlX3Jlc291cmNlc0Bzd2MvaGVscGVycy9fL190c19kaXNwb3NlX3Jlc291cmNlc19hcHBseV9kZWNzXzIyMDNfckBzd2MvaGVscGVycy9fL19hcHBseV9kZWNzXzIyMDNfcl9pZGVudGl0eUBzd2MvaGVscGVycy9fL19pZGVudGl0eV9kaXNwb3NlQHN3Yy9oZWxwZXJzL18vX2Rpc3Bvc2VfdXNpbmdAc3djL2hlbHBlcnMvXy9fdXNpbmdfdXNpbmdfY3R4QHN3Yy9oZWxwZXJzL18vX3VzaW5nX2N0eGFwcGx5X2RlY29yYXRlZF9kZXNjcmlwdG9yYXJyYXlfbGlrZV90b19hcnJheWFycmF5X3dpdGhfaG9sZXNhcnJheV93aXRob3V0X2hvbGVzYXNzZXJ0X3RoaXNfaW5pdGlhbGl6ZWRhc3luY19nZW5lcmF0b3Jhc3luY19nZW5lcmF0b3JfZGVsZWdhdGVhc3luY19pdGVyYXRvcmFzeW5jX3RvX2dlbmVyYXRvcmF3YWl0X2FzeW5jX2dlbmVyYXRvcmF3YWl0X3ZhbHVlY2FsbF9zdXBlcmNoZWNrX3ByaXZhdGVfcmVkZWNsYXJhdGlvbmNsYXNzX2FwcGx5X2Rlc2NyaXB0b3JfZGVzdHJ1Y3R1cmVjbGFzc19hcHBseV9kZXNjcmlwdG9yX2dldGNsYXNzX2FwcGx5X2Rlc2NyaXB0b3Jfc2V0Y2xhc3NfYXBwbHlfZGVzY3JpcHRvcl91cGRhdGVjbGFzc19jYWxsX2NoZWNrY2xhc3NfY2hlY2tfcHJpdmF0ZV9zdGF0aWNfZmllbGRfZGVzY3JpcHRvcmNsYXNzX2V4dHJhY3RfZmllbGRfZGVzY3JpcHRvcmNsYXNzX25hbWVfdGR6X2Vycm9yY2xhc3NfcHJpdmF0ZV9maWVsZF9nZXRjbGFzc19wcml2YXRlX2ZpZWxkX2luaXRjbGFzc19wcml2YXRlX2ZpZWxkX2xvb3NlX2Jhc2VjbGFzc19wcml2YXRlX2ZpZWxkX2xvb3NlX2tleWNsYXNzX3ByaXZhdGVfZmllbGRfc2V0Y2xhc3NfcHJpdmF0ZV9maWVsZF91cGRhdGVjbGFzc19wcml2YXRlX21ldGhvZF9nZXRjbGFzc19wcml2YXRlX21ldGhvZF9pbml0Y2xhc3NfcHJpdmF0ZV9tZXRob2Rfc2V0Y2xhc3Nfc3RhdGljX3ByaXZhdGVfZmllbGRfc3BlY19nZXRjbGFzc19zdGF0aWNfcHJpdmF0ZV9maWVsZF9zcGVjX3NldGNsYXNzX3N0YXRpY19wcml2YXRlX2ZpZWxkX3VwZGF0ZWNvbnN0cnVjdGNyZWF0ZV9jbGFzc2RlY29yYXRlZGVmYXVsdHNkZWZpbmVfZW51bWVyYWJsZV9wcm9wZXJ0aWVzZGVmaW5lX3Byb3BlcnR5ZXhwb3J0X3N0YXJnZXRfcHJvdG90eXBlX29maW5oZXJpdHNpbmhlcml0c19sb29zZWluaXRpYWxpemVyX2RlZmluZV9wcm9wZXJ0eWluaXRpYWxpemVyX3dhcm5pbmdfaGVscGVyaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHRpbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmRpc19uYXRpdmVfZnVuY3Rpb25pdGVyYWJsZV90b19hcnJheWl0ZXJhYmxlX3RvX2FycmF5X2xpbWl0aXRlcmFibGVfdG9fYXJyYXlfbGltaXRfbG9vc2Vqc3huZXdfYXJyb3dfY2hlY2tub25faXRlcmFibGVfcmVzdG5vbl9pdGVyYWJsZV9zcHJlYWRvYmplY3RfZGVzdHJ1Y3R1cmluZ19lbXB0eW9iamVjdF9zcHJlYWRvYmplY3Rfc3ByZWFkX3Byb3Bzb2JqZWN0X3dpdGhvdXRfcHJvcGVydGllc29iamVjdF93aXRob3V0X3Byb3BlcnRpZXNfbG9vc2Vwb3NzaWJsZV9jb25zdHJ1Y3Rvcl9yZXR1cm5yZWFkX29ubHlfZXJyb3JzZXRfcHJvdG90eXBlX29mc2tpcF9maXJzdF9nZW5lcmF0b3JfbmV4dHNsaWNlZF90b19hcnJheXNsaWNlZF90b19hcnJheV9sb29zZXN1cGVyX3Byb3BfYmFzZXRhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbG9vc2V0b19hcnJheXRvX2NvbnN1bWFibGVfYXJyYXl0b19wcmltaXRpdmV0b19wcm9wZXJ0eV9rZXl1cGRhdGV0eXBlX29mdW5zdXBwb3J0ZWRfaXRlcmFibGVfdG9fYXJyYXl3cmFwX2FzeW5jX2dlbmVyYXRvcndyYXBfbmF0aXZlX3N1cGVyd3JpdGVfb25seV9lcnJvcmNsYXNzX3ByaXZhdGVfZmllbGRfZGVzdHJ1Y3R1cmVjbGFzc19zdGF0aWNfcHJpdmF0ZV9maWVsZF9kZXN0cnVjdHVyZWNsYXNzX3N0YXRpY19wcml2YXRlX21ldGhvZF9nZXRjbGFzc19jaGVja19wcml2YXRlX3N0YXRpY19hY2Nlc3Npc19uYXRpdmVfcmVmbGVjdF9jb25zdHJ1Y3RjcmVhdGVfc3VwZXJjcmVhdGVfZm9yX29mX2l0ZXJhdG9yX2hlbHBlcl9sb29zZXRzX2RlY29yYXRldHNfZ2VuZXJhdG9ydHNfbWV0YWRhdGF0c19wYXJhbXRzX3ZhbHVlc3RzX2FkZF9kaXNwb3NhYmxlX3Jlc291cmNldHNfZGlzcG9zZV9yZXNvdXJjZXNhcHBseV9kZWNzXzIyMDNfcmlkZW50aXR5ZGlzcG9zZXVzaW5nX2N0eE1hcmtlciBwcm92aWRlZCB0byByZXNvbHZlciBzaG91bGQgbm90IGJlIHRoZSByb290IG1hcmsAAK+tFgA3AAAA6tkXAHcAAACKAAAABQAAACRuYW1lL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvc3djX2VjbWFfdHJhbnNmb3Jtc19iYXNlLTcuMC4wL3NyYy9oZWxwZXJzL21vZC5yc2ludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGU6IEVycm9yIG9jY3VycmVkIHdoaWxlIHBhcnNpbmcgZXJyb3I6IAAAAHuuFgBOAAAABa4WAHYAAAAoAAAACQAAAEBzd2MvaGVscGVycy9fL1/krhYAEAAAAGlkcmVzb3VyY2VfX190c1+zBAAAZnVuY3Rpb24gX2FwcGx5X2RlY29yYXRlZF9kZXNjcmlwdG9yKHRhcmdldCwgcHJvcGVydHksIGRlY29yYXRvcnMsIGRlc2NyaXB0b3IsIGNvbnRleHQpIHsKICAgIHZhciBkZXNjID0ge307CiAgICBPYmplY3RbImtlIiArICJ5cyJdKGRlc2NyaXB0b3IpLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7CiAgICAgICAgZGVzY1trZXldID0gZGVzY3JpcHRvcltrZXldOwogICAgfSk7CiAgICBkZXNjLmVudW1lcmFibGUgPSAhIWRlc2MuZW51bWVyYWJsZTsKICAgIGRlc2MuY29uZmlndXJhYmxlID0gISFkZXNjLmNvbmZpZ3VyYWJsZTsKICAgIGlmICgidmFsdWUiIGluIGRlc2MgfHwgZGVzYy5pbml0aWFsaXplcikgewogICAgICAgIGRlc2Mud3JpdGFibGUgPSB0cnVlOwogICAgfQogICAgZGVzYyA9IGRlY29yYXRvcnMuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGRlc2MsIGRlY29yYXRvcikgewogICAgICAgIHJldHVybiBkZWNvcmF0b3IgPyBkZWNvcmF0b3IodGFyZ2V0LCBwcm9wZXJ0eSwgZGVzYykgfHwgZGVzYyA6IGRlc2M7CiAgICB9LCBkZXNjKTsKICAgIHZhciBoYXNBY2Nlc3NvciA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkZXNjLCAiZ2V0IikgfHwgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGRlc2MsICJzZXQiKTsKICAgIGlmIChjb250ZXh0ICYmIGRlc2MuaW5pdGlhbGl6ZXIgIT09IHZvaWQgMCAmJiAhaGFzQWNjZXNzb3IpIHsKICAgICAgICBkZXNjLnZhbHVlID0gZGVzYy5pbml0aWFsaXplciA/IGRlc2MuaW5pdGlhbGl6ZXIuY2FsbChjb250ZXh0KSA6IHZvaWQgMDsKICAgICAgICBkZXNjLmluaXRpYWxpemVyID0gdW5kZWZpbmVkOwogICAgfQogICAgaWYgKGhhc0FjY2Vzc29yKSB7CiAgICAgICAgZGVsZXRlIGRlc2Mud3JpdGFibGU7CiAgICAgICAgZGVsZXRlIGRlc2MuaW5pdGlhbGl6ZXI7CiAgICAgICAgZGVsZXRlIGRlc2MudmFsdWU7CiAgICB9CiAgICBpZiAoZGVzYy5pbml0aWFsaXplciA9PT0gdm9pZCAwKSB7CiAgICAgICAgT2JqZWN0WyJkZWZpbmUiICsgIlByb3BlcnR5Il0odGFyZ2V0LCBwcm9wZXJ0eSwgZGVzYyk7CiAgICAgICAgZGVzYyA9IG51bGw7CiAgICB9CiAgICByZXR1cm4gZGVzYzsKfQpmdW5jdGlvbiBfYXJyYXlfbGlrZV90b19hcnJheShhcnIsIGxlbikgewogICAgaWYgKGxlbiA9PSBudWxsIHx8IGxlbiA+IGFyci5sZW5ndGgpIGxlbiA9IGFyci5sZW5ndGg7CiAgICBmb3IgKHZhciBpID0gMCwgYXJyMiA9IG5ldyBBcnJheShsZW4pOyBpIDwgbGVuOyBpKyspIGFycjJbaV0gPSBhcnJbaV07CiAgICByZXR1cm4gYXJyMjsKfQpmdW5jdGlvbiBfYXJyYXlfd2l0aF9ob2xlcyhhcnIpIHsKICAgIGlmIChBcnJheS5pc0FycmF5KGFycikpIHJldHVybiBhcnI7Cn0KZnVuY3Rpb24gX2FycmF5X3dpdGhvdXRfaG9sZXMoYXJyKSB7CiAgICBpZiAoQXJyYXkuaXNBcnJheShhcnIpKSByZXR1cm4gX2FycmF5X2xpa2VfdG9fYXJyYXkoYXJyKTsKfQpmdW5jdGlvbiBfYXNzZXJ0X3RoaXNfaW5pdGlhbGl6ZWQoc2VsZikgewogICAgaWYgKHNlbGYgPT09IHZvaWQgMCkgewogICAgICAgIHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7CiAgICB9CiAgICByZXR1cm4gc2VsZjsKfQpmdW5jdGlvbiBfYXN5bmNfZ2VuZXJhdG9yKGdlbikgewogICAgdmFyIGZyb250LCBiYWNrOwogICAgZnVuY3Rpb24gc2VuZChrZXksIGFyZykgewogICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAgICAgdmFyIHJlcXVlc3QgPSB7IGtleToga2V5LCBhcmc6IGFyZywgcmVzb2x2ZTogcmVzb2x2ZSwgcmVqZWN0OiByZWplY3QsIG5leHQ6IG51bGwgfTsKICAgICAgICAgICAgaWYgKGJhY2spIHsKICAgICAgICAgICAgICAgIGJhY2sgPSBiYWNrLm5leHQgPSByZXF1ZXN0OwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgZnJvbnQgPSBiYWNrID0gcmVxdWVzdDsKICAgICAgICAgICAgICAgIHJlc3VtZShrZXksIGFyZyk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH0KICAgIGZ1bmN0aW9uIHJlc3VtZShrZXksIGFyZykgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHZhciByZXN1bHQgPSBnZW5ba2V5XShhcmcpOwogICAgICAgICAgICB2YXIgdmFsdWUgPSByZXN1bHQudmFsdWU7CiAgICAgICAgICAgIHZhciB3cmFwcGVkQXdhaXQgPSB2YWx1ZSBpbnN0YW5jZW9mIF9hd2FpdF92YWx1ZTsKICAgICAgICAgICAgUHJvbWlzZS5yZXNvbHZlKHdyYXBwZWRBd2FpdCA/IHZhbHVlLndyYXBwZWQgOiB2YWx1ZSkudGhlbihmdW5jdGlvbihhcmcpIHsKICAgICAgICAgICAgICAgIGlmICh3cmFwcGVkQXdhaXQpIHsKICAgICAgICAgICAgICAgICAgICByZXN1bWUoIm5leHQiLCBhcmcpOwogICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHNldHRsZShyZXN1bHQuZG9uZSA/ICJyZXR1cm4iIDogIm5vcm1hbCIsIGFyZyk7CiAgICAgICAgICAgIH0sIGZ1bmN0aW9uKGVycikgewogICAgICAgICAgICAgICAgcmVzdW1lKCJ0aHJvdyIsIGVycik7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgICAgICBzZXR0bGUoInRocm93IiwgZXJyKTsKICAgICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBzZXR0bGUodHlwZSwgdmFsdWUpIHsKICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgICAgICAgY2FzZSAicmV0dXJuIjoKICAgICAgICAgICAgICAgIGZyb250LnJlc29sdmUoeyB2YWx1ZTogdmFsdWUsIGRvbmU6IHRydWUgfSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidGhyb3ciOgogICAgICAgICAgICAgICAgZnJvbnQucmVqZWN0KHZhbHVlKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgZnJvbnQucmVzb2x2ZSh7IHZhbHVlOiB2YWx1ZSwgZG9uZTogZmFsc2UgfSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgZnJvbnQgPSBmcm9udC5uZXh0OwogICAgICAgIGlmIChmcm9udCkgewogICAgICAgICAgICByZXN1bWUoZnJvbnQua2V5LCBmcm9udC5hcmcpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGJhY2sgPSBudWxsOwogICAgICAgIH0KICAgIH0KICAgIHRoaXMuX2ludm9rZSA9IHNlbmQ7CiAgICBpZiAodHlwZW9mIGdlbi5yZXR1cm4gIT09ICJmdW5jdGlvbiIpIHsKICAgICAgICB0aGlzLnJldHVybiA9IHVuZGVmaW5lZDsKICAgIH0KfQppZiAodHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBTeW1ib2wuYXN5bmNJdGVyYXRvcikgewogICAgX2FzeW5jX2dlbmVyYXRvci5wcm90b3R5cGVbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICB9Owp9Cl9hc3luY19nZW5lcmF0b3IucHJvdG90eXBlLm5leHQgPSBmdW5jdGlvbihhcmcpIHsKICAgIHJldHVybiB0aGlzLl9pbnZva2UoIm5leHQiLCBhcmcpOwp9OwpfYXN5bmNfZ2VuZXJhdG9yLnByb3RvdHlwZS50aHJvdyA9IGZ1bmN0aW9uKGFyZykgewogICAgcmV0dXJuIHRoaXMuX2ludm9rZSgidGhyb3ciLCBhcmcpOwp9OwpfYXN5bmNfZ2VuZXJhdG9yLnByb3RvdHlwZS5yZXR1cm4gPSBmdW5jdGlvbihhcmcpIHsKICAgIHJldHVybiB0aGlzLl9pbnZva2UoInJldHVybiIsIGFyZyk7Cn07CmZ1bmN0aW9uIF9hc3luY19nZW5lcmF0b3JfZGVsZWdhdGUoaW5uZXIsIGF3YWl0V3JhcCkgewogICAgdmFyIGl0ZXIgPSB7fSwgd2FpdGluZyA9IGZhbHNlOwogICAgZnVuY3Rpb24gcHVtcChrZXksIHZhbHVlKSB7CiAgICAgICAgd2FpdGluZyA9IHRydWU7CiAgICAgICAgdmFsdWUgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CiAgICAgICAgICAgIHJlc29sdmUoaW5uZXJba2V5XSh2YWx1ZSkpOwogICAgICAgIH0pOwogICAgICAgIHJldHVybiB7IGRvbmU6IGZhbHNlLCB2YWx1ZTogYXdhaXRXcmFwKHZhbHVlKSB9OwogICAgfQogICAgaWYgKHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgU3ltYm9sLml0ZXJhdG9yKSB7CiAgICAgICAgaXRlcltTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICAgIH07CiAgICB9CiAgICBpdGVyLm5leHQgPSBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgIGlmICh3YWl0aW5nKSB7CiAgICAgICAgICAgIHdhaXRpbmcgPSBmYWxzZTsKICAgICAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcHVtcCgibmV4dCIsIHZhbHVlKTsKICAgIH07CiAgICBpZiAodHlwZW9mIGlubmVyLnRocm93ID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgaXRlci50aHJvdyA9IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICAgIGlmICh3YWl0aW5nKSB7CiAgICAgICAgICAgICAgICB3YWl0aW5nID0gZmFsc2U7CiAgICAgICAgICAgICAgICB0aHJvdyB2YWx1ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gcHVtcCgidGhyb3ciLCB2YWx1ZSk7CiAgICAgICAgfTsKICAgIH0KICAgIGlmICh0eXBlb2YgaW5uZXIucmV0dXJuID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgaXRlci5yZXR1cm4gPSBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgICByZXR1cm4gcHVtcCgicmV0dXJuIiwgdmFsdWUpOwogICAgICAgIH07CiAgICB9CiAgICByZXR1cm4gaXRlcjsKfQpmdW5jdGlvbiBfYXN5bmNfaXRlcmF0b3IoaXRlcmFibGUpIHsKICAgIHZhciBtZXRob2QsIGFzeW5jLCBzeW5jLCByZXRyeSA9IDI7CiAgICBmb3IgKCJ1bmRlZmluZWQiICE9IHR5cGVvZiBTeW1ib2wgJiYgKGFzeW5jID0gU3ltYm9sLmFzeW5jSXRlcmF0b3IsIHN5bmMgPSBTeW1ib2wuaXRlcmF0b3IpOyByZXRyeS0tOykgewogICAgICAgIGlmIChhc3luYyAmJiBudWxsICE9IChtZXRob2QgPSBpdGVyYWJsZVthc3luY10pKSByZXR1cm4gbWV0aG9kLmNhbGwoaXRlcmFibGUpOwogICAgICAgIGlmIChzeW5jICYmIG51bGwgIT0gKG1ldGhvZCA9IGl0ZXJhYmxlW3N5bmNdKSkgcmV0dXJuIG5ldyBBc3luY0Zyb21TeW5jSXRlcmF0b3IobWV0aG9kLmNhbGwoaXRlcmFibGUpKTsKICAgICAgICBhc3luYyA9ICJAQGFzeW5jSXRlcmF0b3IiLCBzeW5jID0gIkBAaXRlcmF0b3IiOwogICAgfQogICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGlzIG5vdCBhc3luYyBpdGVyYWJsZSIpOwp9CmZ1bmN0aW9uIEFzeW5jRnJvbVN5bmNJdGVyYXRvcihzKSB7CiAgICBmdW5jdGlvbiBBc3luY0Zyb21TeW5jSXRlcmF0b3JDb250aW51YXRpb24ocikgewogICAgICAgIGlmIChPYmplY3QocikgIT09IHIpIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgVHlwZUVycm9yKHIgKyAiIGlzIG5vdCBhbiBvYmplY3QuIikpOwogICAgICAgIHZhciBkb25lID0gci5kb25lOwogICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoci52YWx1ZSkudGhlbihmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgICByZXR1cm4geyB2YWx1ZTogdmFsdWUsIGRvbmU6IGRvbmUgfTsKICAgICAgICB9KTsKICAgIH0KICAgIHJldHVybiBBc3luY0Zyb21TeW5jSXRlcmF0b3IgPSBmdW5jdGlvbihzKSB7CiAgICAgICAgdGhpcy5zID0gcywgdGhpcy5uID0gcy5uZXh0OwogICAgfSwKICAgICAgICBBc3luY0Zyb21TeW5jSXRlcmF0b3IucHJvdG90eXBlID0gewogICAgICAgICAgICBzOiBudWxsLAogICAgICAgICAgICBuOiBudWxsLAogICAgICAgICAgICBuZXh0OiBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIHJldHVybiBBc3luY0Zyb21TeW5jSXRlcmF0b3JDb250aW51YXRpb24odGhpcy5uLmFwcGx5KHRoaXMucywgYXJndW1lbnRzKSk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHJldHVybjogZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgICAgICAgIHZhciByZXQgPSB0aGlzLnMucmV0dXJuOwogICAgICAgICAgICAgICAgcmV0dXJuIHZvaWQgMCA9PT0gcmV0CiAgICAgICAgICAgICAgICAgICAgPyBQcm9taXNlLnJlc29sdmUoeyB2YWx1ZTogdmFsdWUsIGRvbmU6ICEwIH0pCiAgICAgICAgICAgICAgICAgICAgOiBBc3luY0Zyb21TeW5jSXRlcmF0b3JDb250aW51YXRpb24ocmV0LmFwcGx5KHRoaXMucywgYXJndW1lbnRzKSk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHRocm93OiBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgICAgICAgdmFyIHRociA9IHRoaXMucy5yZXR1cm47CiAgICAgICAgICAgICAgICByZXR1cm4gdm9pZCAwID09PSB0aHIgPyBQcm9taXNlLnJlamVjdCh2YWx1ZSkgOiBBc3luY0Zyb21TeW5jSXRlcmF0b3JDb250aW51YXRpb24odGhyLmFwcGx5KHRoaXMucywgYXJndW1lbnRzKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIG5ldyBBc3luY0Zyb21TeW5jSXRlcmF0b3Iocyk7Cn0KZnVuY3Rpb24gYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBrZXksIGFyZykgewogICAgdHJ5IHsKICAgICAgICB2YXIgaW5mbyA9IGdlbltrZXldKGFyZyk7CiAgICAgICAgdmFyIHZhbHVlID0gaW5mby52YWx1ZTsKICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgcmVqZWN0KGVycm9yKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBpZiAoaW5mby5kb25lKSB7CiAgICAgICAgcmVzb2x2ZSh2YWx1ZSk7CiAgICB9IGVsc2UgewogICAgICAgIFByb21pc2UucmVzb2x2ZSh2YWx1ZSkudGhlbihfbmV4dCwgX3Rocm93KTsKICAgIH0KfQpmdW5jdGlvbiBfYXN5bmNfdG9fZ2VuZXJhdG9yKGZuKSB7CiAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIHNlbGYgPSB0aGlzLCBhcmdzID0gYXJndW1lbnRzOwogICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAgICAgdmFyIGdlbiA9IGZuLmFwcGx5KHNlbGYsIGFyZ3MpOwogICAgICAgICAgICBmdW5jdGlvbiBfbmV4dCh2YWx1ZSkgewogICAgICAgICAgICAgICAgYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCAibmV4dCIsIHZhbHVlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBfdGhyb3coZXJyKSB7CiAgICAgICAgICAgICAgICBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csICJ0aHJvdyIsIGVycik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgX25leHQodW5kZWZpbmVkKTsKICAgICAgICB9KTsKICAgIH07Cn0KZnVuY3Rpb24gX2F3YWl0X2FzeW5jX2dlbmVyYXRvcih2YWx1ZSkgewogICAgcmV0dXJuIG5ldyBfYXdhaXRfdmFsdWUodmFsdWUpOwp9CmZ1bmN0aW9uIF9hd2FpdF92YWx1ZSh2YWx1ZSkgewogICAgdGhpcy53cmFwcGVkID0gdmFsdWU7Cn0KZnVuY3Rpb24gX2NhbGxfc3VwZXIoX3RoaXMsIGRlcml2ZWQsIGFyZ3MpIHsKICAgIC8vIFN1cGVyCiAgICBkZXJpdmVkID0gX2dldF9wcm90b3R5cGVfb2YoZGVyaXZlZCk7CiAgICByZXR1cm4gX3Bvc3NpYmxlX2NvbnN0cnVjdG9yX3JldHVybigKICAgICAgICBfdGhpcywKICAgICAgICBfaXNfbmF0aXZlX3JlZmxlY3RfY29uc3RydWN0KCkKICAgICAgICAgICAgLy8gTk9URTogVGhpcyBkb2Vzbid0IHdvcmsgaWYgdGhpcy5fX3Byb3RvX18uY29uc3RydWN0b3IgaGFzIGJlZW4gbW9kaWZpZWQuCiAgICAgICAgICAgID8gUmVmbGVjdC5jb25zdHJ1Y3QoZGVyaXZlZCwgYXJncyB8fCBbXSwgX2dldF9wcm90b3R5cGVfb2YoX3RoaXMpLmNvbnN0cnVjdG9yKQogICAgICAgICAgICA6IGRlcml2ZWQuYXBwbHkoX3RoaXMsIGFyZ3MpCiAgICApOwp9CmZ1bmN0aW9uIF9jaGVja19wcml2YXRlX3JlZGVjbGFyYXRpb24ob2JqLCBwcml2YXRlQ29sbGVjdGlvbikgewogICAgaWYgKHByaXZhdGVDb2xsZWN0aW9uLmhhcyhvYmopKSB7CiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKTsKICAgIH0KfQpmdW5jdGlvbiBfY2xhc3NfYXBwbHlfZGVzY3JpcHRvcl9kZXN0cnVjdHVyZShyZWNlaXZlciwgZGVzY3JpcHRvcikgewogICAgaWYgKGRlc2NyaXB0b3Iuc2V0KSB7CiAgICAgICAgaWYgKCEoIl9fZGVzdHJPYmoiIGluIGRlc2NyaXB0b3IpKSB7CiAgICAgICAgICAgIGRlc2NyaXB0b3IuX19kZXN0ck9iaiA9IHsKICAgICAgICAgICAgICAgIHNldCB2YWx1ZSh2KSB7CiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRvci5zZXQuY2FsbChyZWNlaXZlciwgdik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgICAgIHJldHVybiBkZXNjcmlwdG9yLl9fZGVzdHJPYmo7CiAgICB9IGVsc2UgewogICAgICAgIGlmICghZGVzY3JpcHRvci53cml0YWJsZSkgewogICAgICAgICAgICAvLyBUaGlzIHNob3VsZCBvbmx5IHRocm93IGluIHN0cmljdCBtb2RlLCBidXQgY2xhc3MgYm9kaWVzIGFyZQogICAgICAgICAgICAvLyBhbHdheXMgc3RyaWN0IGFuZCBwcml2YXRlIGZpZWxkcyBjYW4gb25seSBiZSB1c2VkIGluc2lkZQogICAgICAgICAgICAvLyBjbGFzcyBib2RpZXMuCiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byBzZXQgcmVhZCBvbmx5IHByaXZhdGUgZmllbGQiKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGRlc2NyaXB0b3I7CiAgICB9Cn0KZnVuY3Rpb24gX2NsYXNzX2FwcGx5X2Rlc2NyaXB0b3JfZ2V0KHJlY2VpdmVyLCBkZXNjcmlwdG9yKSB7CiAgICBpZiAoZGVzY3JpcHRvci5nZXQpIHsKICAgICAgICByZXR1cm4gZGVzY3JpcHRvci5nZXQuY2FsbChyZWNlaXZlcik7CiAgICB9CiAgICByZXR1cm4gZGVzY3JpcHRvci52YWx1ZTsKfQpmdW5jdGlvbiBfY2xhc3NfYXBwbHlfZGVzY3JpcHRvcl9zZXQocmVjZWl2ZXIsIGRlc2NyaXB0b3IsIHZhbHVlKSB7CiAgICBpZiAoZGVzY3JpcHRvci5zZXQpIHsKICAgICAgICBkZXNjcmlwdG9yLnNldC5jYWxsKHJlY2VpdmVyLCB2YWx1ZSk7CiAgICB9IGVsc2UgewogICAgICAgIGlmICghZGVzY3JpcHRvci53cml0YWJsZSkgewogICAgICAgICAgICAvLyBUaGlzIHNob3VsZCBvbmx5IHRocm93IGluIHN0cmljdCBtb2RlLCBidXQgY2xhc3MgYm9kaWVzIGFyZQogICAgICAgICAgICAvLyBhbHdheXMgc3RyaWN0IGFuZCBwcml2YXRlIGZpZWxkcyBjYW4gb25seSBiZSB1c2VkIGluc2lkZQogICAgICAgICAgICAvLyBjbGFzcyBib2RpZXMuCiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byBzZXQgcmVhZCBvbmx5IHByaXZhdGUgZmllbGQiKTsKICAgICAgICB9CiAgICAgICAgZGVzY3JpcHRvci52YWx1ZSA9IHZhbHVlOwogICAgfQp9CmZ1bmN0aW9uIF9jbGFzc19hcHBseV9kZXNjcmlwdG9yX3VwZGF0ZShyZWNlaXZlciwgZGVzY3JpcHRvcikgewogICAgaWYgKGRlc2NyaXB0b3Iuc2V0KSB7CiAgICAgICAgaWYgKCFkZXNjcmlwdG9yLmdldCkgewogICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gcmVhZCBzZXQgb25seSBwcml2YXRlIGZpZWxkIik7CiAgICAgICAgfQogICAgICAgIGlmICghKCJfX2Rlc3RyV3JhcHBlciIgaW4gZGVzY3JpcHRvcikpIHsKICAgICAgICAgICAgZGVzY3JpcHRvci5fX2Rlc3RyV3JhcHBlciA9IHsKICAgICAgICAgICAgICAgIHNldCB2YWx1ZSh2KSB7CiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRvci5zZXQuY2FsbChyZWNlaXZlciwgdik7CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgZ2V0IHZhbHVlKCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBkZXNjcmlwdG9yLmdldC5jYWxsKHJlY2VpdmVyKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGRlc2NyaXB0b3IuX19kZXN0cldyYXBwZXI7CiAgICB9IGVsc2UgewogICAgICAgIGlmICghZGVzY3JpcHRvci53cml0YWJsZSkgewogICAgICAgICAgICAvLyBUaGlzIHNob3VsZCBvbmx5IHRocm93IGluIHN0cmljdCBtb2RlLCBidXQgY2xhc3MgYm9kaWVzIGFyZQogICAgICAgICAgICAvLyBhbHdheXMgc3RyaWN0IGFuZCBwcml2YXRlIGZpZWxkcyBjYW4gb25seSBiZSB1c2VkIGluc2lkZQogICAgICAgICAgICAvLyBjbGFzcyBib2RpZXMuCiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byBzZXQgcmVhZCBvbmx5IHByaXZhdGUgZmllbGQiKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGRlc2NyaXB0b3I7CiAgICB9Cn0KZnVuY3Rpb24gX2NsYXNzX2NhbGxfY2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7CiAgICBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpOwogICAgfQp9CmZ1bmN0aW9uIF9jbGFzc19jaGVja19wcml2YXRlX3N0YXRpY19maWVsZF9kZXNjcmlwdG9yKGRlc2NyaXB0b3IsIGFjdGlvbikgewogICAgaWYgKGRlc2NyaXB0b3IgPT09IHVuZGVmaW5lZCkgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byAiICsgYWN0aW9uICsgIiBwcml2YXRlIHN0YXRpYyBmaWVsZCBiZWZvcmUgaXRzIGRlY2xhcmF0aW9uIik7CiAgICB9Cn0KZnVuY3Rpb24gX2NsYXNzX2V4dHJhY3RfZmllbGRfZGVzY3JpcHRvcihyZWNlaXZlciwgcHJpdmF0ZU1hcCwgYWN0aW9uKSB7CiAgICBpZiAoIXByaXZhdGVNYXAuaGFzKHJlY2VpdmVyKSkgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byAiICsgYWN0aW9uICsgIiBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZSIpOwogICAgfQogICAgcmV0dXJuIHByaXZhdGVNYXAuZ2V0KHJlY2VpdmVyKTsKfQpmdW5jdGlvbiBfY2xhc3NfbmFtZV90ZHpfZXJyb3IobmFtZSkgewogICAgdGhyb3cgbmV3IEVycm9yKCJDbGFzcyBcIiIgKyBuYW1lICsgIlwiIGNhbm5vdCBiZSByZWZlcmVuY2VkIGluIGNvbXB1dGVkIHByb3BlcnR5IGtleXMuIik7Cn0KZnVuY3Rpb24gX2NsYXNzX3ByaXZhdGVfZmllbGRfZ2V0KHJlY2VpdmVyLCBwcml2YXRlTWFwKSB7CiAgICB2YXIgZGVzY3JpcHRvciA9IF9jbGFzc19leHRyYWN0X2ZpZWxkX2Rlc2NyaXB0b3IocmVjZWl2ZXIsIHByaXZhdGVNYXAsICJnZXQiKTsKICAgIHJldHVybiBfY2xhc3NfYXBwbHlfZGVzY3JpcHRvcl9nZXQocmVjZWl2ZXIsIGRlc2NyaXB0b3IpOwp9CmZ1bmN0aW9uIF9jbGFzc19wcml2YXRlX2ZpZWxkX2luaXQob2JqLCBwcml2YXRlTWFwLCB2YWx1ZSkgewogICAgX2NoZWNrX3ByaXZhdGVfcmVkZWNsYXJhdGlvbihvYmosIHByaXZhdGVNYXApOwogICAgcHJpdmF0ZU1hcC5zZXQob2JqLCB2YWx1ZSk7Cn0KZnVuY3Rpb24gX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2VfYmFzZShyZWNlaXZlciwgcHJpdmF0ZUtleSkgewogICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocmVjZWl2ZXIsIHByaXZhdGVLZXkpKSB7CiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvIHVzZSBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZSIpOwogICAgfQogICAgcmV0dXJuIHJlY2VpdmVyOwp9CnZhciBpZCA9IDA7CmZ1bmN0aW9uIF9jbGFzc19wcml2YXRlX2ZpZWxkX2xvb3NlX2tleShuYW1lKSB7CiAgICByZXR1cm4gIl9fcHJpdmF0ZV8iICsgaWQrKyArICJfIiArIG5hbWU7Cn0KZnVuY3Rpb24gX2NsYXNzX3ByaXZhdGVfZmllbGRfc2V0KHJlY2VpdmVyLCBwcml2YXRlTWFwLCB2YWx1ZSkgewogICAgdmFyIGRlc2NyaXB0b3IgPSBfY2xhc3NfZXh0cmFjdF9maWVsZF9kZXNjcmlwdG9yKHJlY2VpdmVyLCBwcml2YXRlTWFwLCAic2V0Iik7CiAgICBfY2xhc3NfYXBwbHlfZGVzY3JpcHRvcl9zZXQocmVjZWl2ZXIsIGRlc2NyaXB0b3IsIHZhbHVlKTsKICAgIHJldHVybiB2YWx1ZTsKfQpmdW5jdGlvbiBfY2xhc3NfcHJpdmF0ZV9maWVsZF91cGRhdGUocmVjZWl2ZXIsIHByaXZhdGVNYXApIHsKICAgIHZhciBkZXNjcmlwdG9yID0gX2NsYXNzX2V4dHJhY3RfZmllbGRfZGVzY3JpcHRvcihyZWNlaXZlciwgcHJpdmF0ZU1hcCwgInVwZGF0ZSIpOwogICAgcmV0dXJuIF9jbGFzc19hcHBseV9kZXNjcmlwdG9yX3VwZGF0ZShyZWNlaXZlciwgZGVzY3JpcHRvcik7Cn0KZnVuY3Rpb24gX2NsYXNzX3ByaXZhdGVfbWV0aG9kX2dldChyZWNlaXZlciwgcHJpdmF0ZVNldCwgZm4pIHsKICAgIGlmICghcHJpdmF0ZVNldC5oYXMocmVjZWl2ZXIpKSB7CiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvIGdldCBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZSIpOwogICAgfQogICAgcmV0dXJuIGZuOwp9CmZ1bmN0aW9uIF9jbGFzc19wcml2YXRlX21ldGhvZF9pbml0KG9iaiwgcHJpdmF0ZVNldCkgewogICAgX2NoZWNrX3ByaXZhdGVfcmVkZWNsYXJhdGlvbihvYmosIHByaXZhdGVTZXQpOwogICAgcHJpdmF0ZVNldC5hZGQob2JqKTsKfQpmdW5jdGlvbiBfY2xhc3NfcHJpdmF0ZV9tZXRob2Rfc2V0KCkgewogICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvIHJlYXNzaWduIHByaXZhdGUgbWV0aG9kIik7Cn0KZnVuY3Rpb24gX2NsYXNzX3N0YXRpY19wcml2YXRlX2ZpZWxkX3NwZWNfZ2V0KHJlY2VpdmVyLCBjbGFzc0NvbnN0cnVjdG9yLCBkZXNjcmlwdG9yKSB7CiAgICBfY2xhc3NfY2hlY2tfcHJpdmF0ZV9zdGF0aWNfYWNjZXNzKHJlY2VpdmVyLCBjbGFzc0NvbnN0cnVjdG9yKTsKICAgIF9jbGFzc19jaGVja19wcml2YXRlX3N0YXRpY19maWVsZF9kZXNjcmlwdG9yKGRlc2NyaXB0b3IsICJnZXQiKTsKICAgIHJldHVybiBfY2xhc3NfYXBwbHlfZGVzY3JpcHRvcl9nZXQocmVjZWl2ZXIsIGRlc2NyaXB0b3IpOwp9CmZ1bmN0aW9uIF9jbGFzc19zdGF0aWNfcHJpdmF0ZV9maWVsZF9zcGVjX3NldChyZWNlaXZlciwgY2xhc3NDb25zdHJ1Y3RvciwgZGVzY3JpcHRvciwgdmFsdWUpIHsKICAgIF9jbGFzc19jaGVja19wcml2YXRlX3N0YXRpY19hY2Nlc3MocmVjZWl2ZXIsIGNsYXNzQ29uc3RydWN0b3IpOwogICAgX2NsYXNzX2NoZWNrX3ByaXZhdGVfc3RhdGljX2ZpZWxkX2Rlc2NyaXB0b3IoZGVzY3JpcHRvciwgInNldCIpOwogICAgX2NsYXNzX2FwcGx5X2Rlc2NyaXB0b3Jfc2V0KHJlY2VpdmVyLCBkZXNjcmlwdG9yLCB2YWx1ZSk7CiAgICByZXR1cm4gdmFsdWU7Cn0KZnVuY3Rpb24gX2NsYXNzX3N0YXRpY19wcml2YXRlX2ZpZWxkX3VwZGF0ZShyZWNlaXZlciwgY2xhc3NDb25zdHJ1Y3RvciwgZGVzY3JpcHRvcikgewogICAgX2NsYXNzX2NoZWNrX3ByaXZhdGVfc3RhdGljX2FjY2VzcyhyZWNlaXZlciwgY2xhc3NDb25zdHJ1Y3Rvcik7CiAgICBfY2xhc3NfY2hlY2tfcHJpdmF0ZV9zdGF0aWNfZmllbGRfZGVzY3JpcHRvcihkZXNjcmlwdG9yLCAidXBkYXRlIik7CiAgICByZXR1cm4gX2NsYXNzX2FwcGx5X2Rlc2NyaXB0b3JfdXBkYXRlKHJlY2VpdmVyLCBkZXNjcmlwdG9yKTsKfQpmdW5jdGlvbiBfY29uc3RydWN0KFBhcmVudCwgYXJncywgQ2xhc3MpIHsKICAgIGlmIChfaXNfbmF0aXZlX3JlZmxlY3RfY29uc3RydWN0KCkpIHsKICAgICAgICBfY29uc3RydWN0ID0gUmVmbGVjdC5jb25zdHJ1Y3Q7CiAgICB9IGVsc2UgewogICAgICAgIF9jb25zdHJ1Y3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3QoUGFyZW50LCBhcmdzLCBDbGFzcykgewogICAgICAgICAgICB2YXIgYSA9IFtudWxsXTsKICAgICAgICAgICAgYS5wdXNoLmFwcGx5KGEsIGFyZ3MpOwogICAgICAgICAgICB2YXIgQ29uc3RydWN0b3IgPSBGdW5jdGlvbi5iaW5kLmFwcGx5KFBhcmVudCwgYSk7CiAgICAgICAgICAgIHZhciBpbnN0YW5jZSA9IG5ldyBDb25zdHJ1Y3RvcigpOwogICAgICAgICAgICBpZiAoQ2xhc3MpIF9zZXRfcHJvdG90eXBlX29mKGluc3RhbmNlLCBDbGFzcy5wcm90b3R5cGUpOwogICAgICAgICAgICByZXR1cm4gaW5zdGFuY2U7CiAgICAgICAgfTsKICAgIH0KICAgIHJldHVybiBfY29uc3RydWN0LmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7Cn0KZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgewogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgewogICAgICAgIHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07CiAgICAgICAgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOwogICAgICAgIGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsKICAgICAgICBpZiAoInZhbHVlIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsKICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7CiAgICB9Cn0KZnVuY3Rpb24gX2NyZWF0ZV9jbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsKICAgIGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOwogICAgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOwogICAgcmV0dXJuIENvbnN0cnVjdG9yOwp9CmZ1bmN0aW9uIF9kZWNvcmF0ZShkZWNvcmF0b3JzLCBmYWN0b3J5LCBzdXBlckNsYXNzKSB7CiAgICB2YXIgciA9IGZhY3RvcnkoZnVuY3Rpb24gaW5pdGlhbGl6ZShPKSB7CiAgICAgICAgX2luaXRpYWxpemVJbnN0YW5jZUVsZW1lbnRzKE8sIGRlY29yYXRlZC5lbGVtZW50cyk7CiAgICB9LCBzdXBlckNsYXNzKTsKICAgIHZhciBkZWNvcmF0ZWQgPSBfZGVjb3JhdGVDbGFzcyhfY29hbGVzY2VDbGFzc0VsZW1lbnRzKHIuZC5tYXAoX2NyZWF0ZUVsZW1lbnREZXNjcmlwdG9yKSksIGRlY29yYXRvcnMpOwogICAgX2luaXRpYWxpemVDbGFzc0VsZW1lbnRzKHIuRiwgZGVjb3JhdGVkLmVsZW1lbnRzKTsKICAgIHJldHVybiBfcnVuQ2xhc3NGaW5pc2hlcnMoci5GLCBkZWNvcmF0ZWQuZmluaXNoZXJzKTsKfQoKZnVuY3Rpb24gX2NyZWF0ZUVsZW1lbnREZXNjcmlwdG9yKGRlZikgewogICAgdmFyIGtleSA9IF90b19wcm9wZXJ0eV9rZXkoZGVmLmtleSk7CiAgICB2YXIgZGVzY3JpcHRvcjsKICAgIGlmIChkZWYua2luZCA9PT0gIm1ldGhvZCIpIHsKICAgICAgICBkZXNjcmlwdG9yID0geyB2YWx1ZTogZGVmLnZhbHVlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiBmYWxzZSB9OwogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkZWYudmFsdWUsICJuYW1lIiwgeyB2YWx1ZTogX3R5cGVfb2Yoa2V5KSA9PT0gInN5bWJvbCIgPyAiIiA6IGtleSwgY29uZmlndXJhYmxlOiB0cnVlIH0pOwogICAgfSBlbHNlIGlmIChkZWYua2luZCA9PT0gImdldCIpIHsKICAgICAgICBkZXNjcmlwdG9yID0geyBnZXQ6IGRlZi52YWx1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiBmYWxzZSB9OwogICAgfSBlbHNlIGlmIChkZWYua2luZCA9PT0gInNldCIpIHsKICAgICAgICBkZXNjcmlwdG9yID0geyBzZXQ6IGRlZi52YWx1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiBmYWxzZSB9OwogICAgfSBlbHNlIGlmIChkZWYua2luZCA9PT0gImZpZWxkIikgewogICAgICAgIGRlc2NyaXB0b3IgPSB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUsIGVudW1lcmFibGU6IHRydWUgfTsKICAgIH0KICAgIHZhciBlbGVtZW50ID0gewogICAgICAgIGtpbmQ6IGRlZi5raW5kID09PSAiZmllbGQiID8gImZpZWxkIiA6ICJtZXRob2QiLAogICAgICAgIGtleToga2V5LAogICAgICAgIHBsYWNlbWVudDogZGVmLnN0YXRpYyA/ICJzdGF0aWMiIDogZGVmLmtpbmQgPT09ICJmaWVsZCIgPyAib3duIiA6ICJwcm90b3R5cGUiLAogICAgICAgIGRlc2NyaXB0b3I6IGRlc2NyaXB0b3IKICAgIH07CiAgICBpZiAoZGVmLmRlY29yYXRvcnMpIGVsZW1lbnQuZGVjb3JhdG9ycyA9IGRlZi5kZWNvcmF0b3JzOwogICAgaWYgKGRlZi5raW5kID09PSAiZmllbGQiKSBlbGVtZW50LmluaXRpYWxpemVyID0gZGVmLnZhbHVlOwogICAgcmV0dXJuIGVsZW1lbnQ7Cn0KZnVuY3Rpb24gX2NvYWxlc2NlR2V0dGVyU2V0dGVyKGVsZW1lbnQsIG90aGVyKSB7CiAgICBpZiAoZWxlbWVudC5kZXNjcmlwdG9yLmdldCAhPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgb3RoZXIuZGVzY3JpcHRvci5nZXQgPSBlbGVtZW50LmRlc2NyaXB0b3IuZ2V0OwogICAgfSBlbHNlIHsKICAgICAgICBvdGhlci5kZXNjcmlwdG9yLnNldCA9IGVsZW1lbnQuZGVzY3JpcHRvci5zZXQ7CiAgICB9Cn0KZnVuY3Rpb24gX2NvYWxlc2NlQ2xhc3NFbGVtZW50cyhlbGVtZW50cykgewogICAgdmFyIG5ld0VsZW1lbnRzID0gW107CiAgICB2YXIgaXNTYW1lRWxlbWVudCA9IGZ1bmN0aW9uIGlzU2FtZUVsZW1lbnQob3RoZXIpIHsKICAgICAgICByZXR1cm4gb3RoZXIua2luZCA9PT0gIm1ldGhvZCIgJiYgb3RoZXIua2V5ID09PSBlbGVtZW50LmtleSAmJiBvdGhlci5wbGFjZW1lbnQgPT09IGVsZW1lbnQucGxhY2VtZW50OwogICAgfTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHsKICAgICAgICB2YXIgZWxlbWVudCA9IGVsZW1lbnRzW2ldOwogICAgICAgIHZhciBvdGhlcjsKICAgICAgICBpZiAoZWxlbWVudC5raW5kID09PSAibWV0aG9kIiAmJiAob3RoZXIgPSBuZXdFbGVtZW50cy5maW5kKGlzU2FtZUVsZW1lbnQpKSkgewogICAgICAgICAgICBpZiAoX2lzRGF0YURlc2NyaXB0b3IoZWxlbWVudC5kZXNjcmlwdG9yKSB8fCBfaXNEYXRhRGVzY3JpcHRvcihvdGhlci5kZXNjcmlwdG9yKSkgewogICAgICAgICAgICAgICAgaWYgKF9oYXNEZWNvcmF0b3JzKGVsZW1lbnQpIHx8IF9oYXNEZWNvcmF0b3JzKG90aGVyKSkgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigiRHVwbGljYXRlZCBtZXRob2RzICgiICsgZWxlbWVudC5rZXkgKyAiKSBjYW4ndCBiZSBkZWNvcmF0ZWQuIik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBvdGhlci5kZXNjcmlwdG9yID0gZWxlbWVudC5kZXNjcmlwdG9yOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaWYgKF9oYXNEZWNvcmF0b3JzKGVsZW1lbnQpKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKF9oYXNEZWNvcmF0b3JzKG90aGVyKSkgewogICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGVjb3JhdG9ycyBjYW4ndCBiZSBwbGFjZWQgb24gZGlmZmVyZW50IGFjY2Vzc29ycyB3aXRoIGZvciAiICsgInRoZSBzYW1lIHByb3BlcnR5ICgiICsgZWxlbWVudC5rZXkgKyAiKS4iCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIG90aGVyLmRlY29yYXRvcnMgPSBlbGVtZW50LmRlY29yYXRvcnM7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBfY29hbGVzY2VHZXR0ZXJTZXR0ZXIoZWxlbWVudCwgb3RoZXIpOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgbmV3RWxlbWVudHMucHVzaChlbGVtZW50KTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gbmV3RWxlbWVudHM7Cn0KZnVuY3Rpb24gX2hhc0RlY29yYXRvcnMoZWxlbWVudCkgewogICAgcmV0dXJuIGVsZW1lbnQuZGVjb3JhdG9ycyAmJiBlbGVtZW50LmRlY29yYXRvcnMubGVuZ3RoOwp9CmZ1bmN0aW9uIF9pc0RhdGFEZXNjcmlwdG9yKGRlc2MpIHsKICAgIHJldHVybiBkZXNjICE9PSB1bmRlZmluZWQgJiYgIShkZXNjLnZhbHVlID09PSB1bmRlZmluZWQgJiYgZGVzYy53cml0YWJsZSA9PT0gdW5kZWZpbmVkKTsKfQpmdW5jdGlvbiBfaW5pdGlhbGl6ZUNsYXNzRWxlbWVudHMoRiwgZWxlbWVudHMpIHsKICAgIHZhciBwcm90byA9IEYucHJvdG90eXBlOwogICAgWyJtZXRob2QiLCAiZmllbGQiXS5mb3JFYWNoKGZ1bmN0aW9uKGtpbmQpIHsKICAgICAgICBlbGVtZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgICAgICAgICAgdmFyIHBsYWNlbWVudCA9IGVsZW1lbnQucGxhY2VtZW50OwogICAgICAgICAgICBpZiAoZWxlbWVudC5raW5kID09PSBraW5kICYmIChwbGFjZW1lbnQgPT09ICJzdGF0aWMiIHx8IHBsYWNlbWVudCA9PT0gInByb3RvdHlwZSIpKSB7CiAgICAgICAgICAgICAgICB2YXIgcmVjZWl2ZXIgPSBwbGFjZW1lbnQgPT09ICJzdGF0aWMiID8gRiA6IHByb3RvOwogICAgICAgICAgICAgICAgX2RlZmluZUNsYXNzRWxlbWVudChyZWNlaXZlciwgZWxlbWVudCk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH0pOwp9CmZ1bmN0aW9uIF9pbml0aWFsaXplSW5zdGFuY2VFbGVtZW50cyhPLCBlbGVtZW50cykgewogICAgWyJtZXRob2QiLCAiZmllbGQiXS5mb3JFYWNoKGZ1bmN0aW9uKGtpbmQpIHsKICAgICAgICBlbGVtZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgICAgICAgICAgaWYgKGVsZW1lbnQua2luZCA9PT0ga2luZCAmJiBlbGVtZW50LnBsYWNlbWVudCA9PT0gIm93biIpIHsKICAgICAgICAgICAgICAgIF9kZWZpbmVDbGFzc0VsZW1lbnQoTywgZWxlbWVudCk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH0pOwp9CmZ1bmN0aW9uIF9kZWZpbmVDbGFzc0VsZW1lbnQocmVjZWl2ZXIsIGVsZW1lbnQpIHsKICAgIHZhciBkZXNjcmlwdG9yID0gZWxlbWVudC5kZXNjcmlwdG9yOwogICAgaWYgKGVsZW1lbnQua2luZCA9PT0gImZpZWxkIikgewogICAgICAgIHZhciBpbml0aWFsaXplciA9IGVsZW1lbnQuaW5pdGlhbGl6ZXI7CiAgICAgICAgZGVzY3JpcHRvciA9IHsKICAgICAgICAgICAgZW51bWVyYWJsZTogZGVzY3JpcHRvci5lbnVtZXJhYmxlLAogICAgICAgICAgICB3cml0YWJsZTogZGVzY3JpcHRvci53cml0YWJsZSwKICAgICAgICAgICAgY29uZmlndXJhYmxlOiBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSwKICAgICAgICAgICAgdmFsdWU6IGluaXRpYWxpemVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBpbml0aWFsaXplci5jYWxsKHJlY2VpdmVyKQogICAgICAgIH07CiAgICB9CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVjZWl2ZXIsIGVsZW1lbnQua2V5LCBkZXNjcmlwdG9yKTsKfQpmdW5jdGlvbiBfZGVjb3JhdGVDbGFzcyhlbGVtZW50cywgZGVjb3JhdG9ycykgewogICAgdmFyIG5ld0VsZW1lbnRzID0gW107CiAgICB2YXIgZmluaXNoZXJzID0gW107CiAgICB2YXIgcGxhY2VtZW50cyA9IHsgc3RhdGljOiBbXSwgcHJvdG90eXBlOiBbXSwgb3duOiBbXSB9OwogICAgZWxlbWVudHMuZm9yRWFjaChmdW5jdGlvbihlbGVtZW50KSB7CiAgICAgICAgX2FkZEVsZW1lbnRQbGFjZW1lbnQoZWxlbWVudCwgcGxhY2VtZW50cyk7CiAgICB9KTsKICAgIGVsZW1lbnRzLmZvckVhY2goZnVuY3Rpb24oZWxlbWVudCkgewogICAgICAgIGlmICghX2hhc0RlY29yYXRvcnMoZWxlbWVudCkpIHJldHVybiBuZXdFbGVtZW50cy5wdXNoKGVsZW1lbnQpOwogICAgICAgIHZhciBlbGVtZW50RmluaXNoZXJzRXh0cmFzID0gX2RlY29yYXRlRWxlbWVudChlbGVtZW50LCBwbGFjZW1lbnRzKTsKICAgICAgICBuZXdFbGVtZW50cy5wdXNoKGVsZW1lbnRGaW5pc2hlcnNFeHRyYXMuZWxlbWVudCk7CiAgICAgICAgbmV3RWxlbWVudHMucHVzaC5hcHBseShuZXdFbGVtZW50cywgZWxlbWVudEZpbmlzaGVyc0V4dHJhcy5leHRyYXMpOwogICAgICAgIGZpbmlzaGVycy5wdXNoLmFwcGx5KGZpbmlzaGVycywgZWxlbWVudEZpbmlzaGVyc0V4dHJhcy5maW5pc2hlcnMpOwogICAgfSk7CiAgICBpZiAoIWRlY29yYXRvcnMpIHsKICAgICAgICByZXR1cm4geyBlbGVtZW50czogbmV3RWxlbWVudHMsIGZpbmlzaGVyczogZmluaXNoZXJzIH07CiAgICB9CiAgICB2YXIgcmVzdWx0ID0gX2RlY29yYXRlQ29uc3RydWN0b3IobmV3RWxlbWVudHMsIGRlY29yYXRvcnMpOwogICAgZmluaXNoZXJzLnB1c2guYXBwbHkoZmluaXNoZXJzLCByZXN1bHQuZmluaXNoZXJzKTsKICAgIHJlc3VsdC5maW5pc2hlcnMgPSBmaW5pc2hlcnM7CiAgICByZXR1cm4gcmVzdWx0Owp9CmZ1bmN0aW9uIF9hZGRFbGVtZW50UGxhY2VtZW50KGVsZW1lbnQsIHBsYWNlbWVudHMsIHNpbGVudCkgewogICAgdmFyIGtleXMgPSBwbGFjZW1lbnRzW2VsZW1lbnQucGxhY2VtZW50XTsKICAgIGlmICghc2lsZW50ICYmIGtleXMuaW5kZXhPZihlbGVtZW50LmtleSkgIT09IC0xKSB7CiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiRHVwbGljYXRlZCBlbGVtZW50ICgiICsgZWxlbWVudC5rZXkgKyAiKSIpOwogICAgfQogICAga2V5cy5wdXNoKGVsZW1lbnQua2V5KTsKfQpmdW5jdGlvbiBfZGVjb3JhdGVFbGVtZW50KGVsZW1lbnQsIHBsYWNlbWVudHMpIHsKICAgIHZhciBleHRyYXMgPSBbXTsKICAgIHZhciBmaW5pc2hlcnMgPSBbXTsKICAgIGZvciAodmFyIGRlY29yYXRvcnMgPSBlbGVtZW50LmRlY29yYXRvcnMsIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgdmFyIGtleXMgPSBwbGFjZW1lbnRzW2VsZW1lbnQucGxhY2VtZW50XTsKICAgICAgICBrZXlzLnNwbGljZShrZXlzLmluZGV4T2YoZWxlbWVudC5rZXkpLCAxKTsKICAgICAgICB2YXIgZWxlbWVudE9iamVjdCA9IF9mcm9tRWxlbWVudERlc2NyaXB0b3IoZWxlbWVudCk7CiAgICAgICAgdmFyIGVsZW1lbnRGaW5pc2hlckV4dHJhcyA9IF90b0VsZW1lbnRGaW5pc2hlckV4dHJhcygoMCwgZGVjb3JhdG9yc1tpXSkoZWxlbWVudE9iamVjdCkgfHwgZWxlbWVudE9iamVjdCk7CiAgICAgICAgZWxlbWVudCA9IGVsZW1lbnRGaW5pc2hlckV4dHJhcy5lbGVtZW50OwogICAgICAgIF9hZGRFbGVtZW50UGxhY2VtZW50KGVsZW1lbnQsIHBsYWNlbWVudHMpOwogICAgICAgIGlmIChlbGVtZW50RmluaXNoZXJFeHRyYXMuZmluaXNoZXIpIHsKICAgICAgICAgICAgZmluaXNoZXJzLnB1c2goZWxlbWVudEZpbmlzaGVyRXh0cmFzLmZpbmlzaGVyKTsKICAgICAgICB9CiAgICAgICAgdmFyIG5ld0V4dHJhcyA9IGVsZW1lbnRGaW5pc2hlckV4dHJhcy5leHRyYXM7CiAgICAgICAgaWYgKG5ld0V4dHJhcykgewogICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IG5ld0V4dHJhcy5sZW5ndGg7IGorKykgewogICAgICAgICAgICAgICAgX2FkZEVsZW1lbnRQbGFjZW1lbnQobmV3RXh0cmFzW2pdLCBwbGFjZW1lbnRzKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBleHRyYXMucHVzaC5hcHBseShleHRyYXMsIG5ld0V4dHJhcyk7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIHsgZWxlbWVudDogZWxlbWVudCwgZmluaXNoZXJzOiBmaW5pc2hlcnMsIGV4dHJhczogZXh0cmFzIH07Cn0KZnVuY3Rpb24gX2RlY29yYXRlQ29uc3RydWN0b3IoZWxlbWVudHMsIGRlY29yYXRvcnMpIHsKICAgIHZhciBmaW5pc2hlcnMgPSBbXTsKICAgIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgdmFyIG9iaiA9IF9mcm9tQ2xhc3NEZXNjcmlwdG9yKGVsZW1lbnRzKTsKICAgICAgICB2YXIgZWxlbWVudHNBbmRGaW5pc2hlciA9IF90b0NsYXNzRGVzY3JpcHRvcigoMCwgZGVjb3JhdG9yc1tpXSkob2JqKSB8fCBvYmopOwogICAgICAgIGlmIChlbGVtZW50c0FuZEZpbmlzaGVyLmZpbmlzaGVyICE9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgZmluaXNoZXJzLnB1c2goZWxlbWVudHNBbmRGaW5pc2hlci5maW5pc2hlcik7CiAgICAgICAgfQogICAgICAgIGlmIChlbGVtZW50c0FuZEZpbmlzaGVyLmVsZW1lbnRzICE9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgZWxlbWVudHMgPSBlbGVtZW50c0FuZEZpbmlzaGVyLmVsZW1lbnRzOwogICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGVsZW1lbnRzLmxlbmd0aCAtIDE7IGorKykgewogICAgICAgICAgICAgICAgZm9yICh2YXIgayA9IGogKyAxOyBrIDwgZWxlbWVudHMubGVuZ3RoOyBrKyspIHsKICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudHNbal0ua2V5ID09PSBlbGVtZW50c1trXS5rZXkgJiYgZWxlbWVudHNbal0ucGxhY2VtZW50ID09PSBlbGVtZW50c1trXS5wbGFjZW1lbnQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiRHVwbGljYXRlZCBlbGVtZW50ICgiICsgZWxlbWVudHNbal0ua2V5ICsgIikiKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICByZXR1cm4geyBlbGVtZW50czogZWxlbWVudHMsIGZpbmlzaGVyczogZmluaXNoZXJzIH07Cn0KZnVuY3Rpb24gX2Zyb21FbGVtZW50RGVzY3JpcHRvcihlbGVtZW50KSB7CiAgICB2YXIgb2JqID0geyBraW5kOiBlbGVtZW50LmtpbmQsIGtleTogZWxlbWVudC5rZXksIHBsYWNlbWVudDogZWxlbWVudC5wbGFjZW1lbnQsIGRlc2NyaXB0b3I6IGVsZW1lbnQuZGVzY3JpcHRvciB9OwogICAgdmFyIGRlc2MgPSB7IHZhbHVlOiAiRGVzY3JpcHRvciIsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgU3ltYm9sLnRvU3RyaW5nVGFnLCBkZXNjKTsKICAgIGlmIChlbGVtZW50LmtpbmQgPT09ICJmaWVsZCIpIG9iai5pbml0aWFsaXplciA9IGVsZW1lbnQuaW5pdGlhbGl6ZXI7CiAgICByZXR1cm4gb2JqOwp9CmZ1bmN0aW9uIF90b0VsZW1lbnREZXNjcmlwdG9ycyhlbGVtZW50T2JqZWN0cykgewogICAgaWYgKGVsZW1lbnRPYmplY3RzID09PSB1bmRlZmluZWQpIHJldHVybjsKICAgIHJldHVybiBfdG9fYXJyYXkoZWxlbWVudE9iamVjdHMpLm1hcChmdW5jdGlvbihlbGVtZW50T2JqZWN0KSB7CiAgICAgICAgdmFyIGVsZW1lbnQgPSBfdG9FbGVtZW50RGVzY3JpcHRvcihlbGVtZW50T2JqZWN0KTsKICAgICAgICBfZGlzYWxsb3dQcm9wZXJ0eShlbGVtZW50T2JqZWN0LCAiZmluaXNoZXIiLCAiQW4gZWxlbWVudCBkZXNjcmlwdG9yIik7CiAgICAgICAgX2Rpc2FsbG93UHJvcGVydHkoZWxlbWVudE9iamVjdCwgImV4dHJhcyIsICJBbiBlbGVtZW50IGRlc2NyaXB0b3IiKTsKICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgIH0pOwp9CmZ1bmN0aW9uIF90b0VsZW1lbnREZXNjcmlwdG9yKGVsZW1lbnRPYmplY3QpIHsKICAgIHZhciBraW5kID0gU3RyaW5nKGVsZW1lbnRPYmplY3Qua2luZCk7CiAgICBpZiAoa2luZCAhPT0gIm1ldGhvZCIgJiYga2luZCAhPT0gImZpZWxkIikgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoCiAgICAgICAgICAgICJBbiBlbGVtZW50IGRlc2NyaXB0b3IncyAua2luZCBwcm9wZXJ0eSBtdXN0IGJlIGVpdGhlciBcIm1ldGhvZFwiIG9yIgogICAgICAgICAgICAgICAgKyAiIFwiZmllbGRcIiwgYnV0IGEgZGVjb3JhdG9yIGNyZWF0ZWQgYW4gZWxlbWVudCBkZXNjcmlwdG9yIHdpdGgiICsgIiAua2luZCBcIiIgKyBraW5kICsgIlwiIgogICAgICAgICk7CiAgICB9CiAgICB2YXIga2V5ID0gX3RvX3Byb3BlcnR5X2tleShlbGVtZW50T2JqZWN0LmtleSk7CiAgICB2YXIgcGxhY2VtZW50ID0gU3RyaW5nKGVsZW1lbnRPYmplY3QucGxhY2VtZW50KTsKICAgIGlmIChwbGFjZW1lbnQgIT09ICJzdGF0aWMiICYmIHBsYWNlbWVudCAhPT0gInByb3RvdHlwZSIgJiYgcGxhY2VtZW50ICE9PSAib3duIikgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoCiAgICAgICAgICAgICJBbiBlbGVtZW50IGRlc2NyaXB0b3IncyAucGxhY2VtZW50IHByb3BlcnR5IG11c3QgYmUgb25lIG9mIFwic3RhdGljXCIsIgogICAgICAgICAgICAgICAgKyAiIFwicHJvdG90eXBlXCIgb3IgXCJvd25cIiwgYnV0IGEgZGVjb3JhdG9yIGNyZWF0ZWQgYW4gZWxlbWVudCBkZXNjcmlwdG9yIiArICIgd2l0aCAucGxhY2VtZW50IFwiIiArIHBsYWNlbWVudCArICJcIiIKICAgICAgICApOwogICAgfQogICAgdmFyIGRlc2NyaXB0b3IgPSBlbGVtZW50T2JqZWN0LmRlc2NyaXB0b3I7CiAgICBfZGlzYWxsb3dQcm9wZXJ0eShlbGVtZW50T2JqZWN0LCAiZWxlbWVudHMiLCAiQW4gZWxlbWVudCBkZXNjcmlwdG9yIik7CiAgICB2YXIgZWxlbWVudCA9IHsga2luZDoga2luZCwga2V5OiBrZXksIHBsYWNlbWVudDogcGxhY2VtZW50LCBkZXNjcmlwdG9yOiBPYmplY3QuYXNzaWduKHt9LCBkZXNjcmlwdG9yKSB9OwogICAgaWYgKGtpbmQgIT09ICJmaWVsZCIpIHsKICAgICAgICBfZGlzYWxsb3dQcm9wZXJ0eShlbGVtZW50T2JqZWN0LCAiaW5pdGlhbGl6ZXIiLCAiQSBtZXRob2QgZGVzY3JpcHRvciIpOwogICAgfSBlbHNlIHsKICAgICAgICBfZGlzYWxsb3dQcm9wZXJ0eShkZXNjcmlwdG9yLCAiZ2V0IiwgIlRoZSBwcm9wZXJ0eSBkZXNjcmlwdG9yIG9mIGEgZmllbGQgZGVzY3JpcHRvciIpOwogICAgICAgIF9kaXNhbGxvd1Byb3BlcnR5KGRlc2NyaXB0b3IsICJzZXQiLCAiVGhlIHByb3BlcnR5IGRlc2NyaXB0b3Igb2YgYSBmaWVsZCBkZXNjcmlwdG9yIik7CiAgICAgICAgX2Rpc2FsbG93UHJvcGVydHkoZGVzY3JpcHRvciwgInZhbHVlIiwgIlRoZSBwcm9wZXJ0eSBkZXNjcmlwdG9yIG9mIGEgZmllbGQgZGVzY3JpcHRvciIpOwogICAgICAgIGVsZW1lbnQuaW5pdGlhbGl6ZXIgPSBlbGVtZW50T2JqZWN0LmluaXRpYWxpemVyOwogICAgfQogICAgcmV0dXJuIGVsZW1lbnQ7Cn0KZnVuY3Rpb24gX3RvRWxlbWVudEZpbmlzaGVyRXh0cmFzKGVsZW1lbnRPYmplY3QpIHsKICAgIHZhciBlbGVtZW50ID0gX3RvRWxlbWVudERlc2NyaXB0b3IoZWxlbWVudE9iamVjdCk7CiAgICB2YXIgZmluaXNoZXIgPSBfb3B0aW9uYWxDYWxsYWJsZVByb3BlcnR5KGVsZW1lbnRPYmplY3QsICJmaW5pc2hlciIpOwogICAgdmFyIGV4dHJhcyA9IF90b0VsZW1lbnREZXNjcmlwdG9ycyhlbGVtZW50T2JqZWN0LmV4dHJhcyk7CiAgICByZXR1cm4geyBlbGVtZW50OiBlbGVtZW50LCBmaW5pc2hlcjogZmluaXNoZXIsIGV4dHJhczogZXh0cmFzIH07Cn0KZnVuY3Rpb24gX2Zyb21DbGFzc0Rlc2NyaXB0b3IoZWxlbWVudHMpIHsKICAgIHZhciBvYmogPSB7IGtpbmQ6ICJjbGFzcyIsIGVsZW1lbnRzOiBlbGVtZW50cy5tYXAoX2Zyb21FbGVtZW50RGVzY3JpcHRvcikgfTsKICAgIHZhciBkZXNjID0geyB2YWx1ZTogIkRlc2NyaXB0b3IiLCBjb25maWd1cmFibGU6IHRydWUgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIFN5bWJvbC50b1N0cmluZ1RhZywgZGVzYyk7CiAgICByZXR1cm4gb2JqOwp9CmZ1bmN0aW9uIF90b0NsYXNzRGVzY3JpcHRvcihvYmopIHsKICAgIHZhciBraW5kID0gU3RyaW5nKG9iai5raW5kKTsKICAgIGlmIChraW5kICE9PSAiY2xhc3MiKSB7CiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigKICAgICAgICAgICAgIkEgY2xhc3MgZGVzY3JpcHRvcidzIC5raW5kIHByb3BlcnR5IG11c3QgYmUgXCJjbGFzc1wiLCBidXQgYSBkZWNvcmF0b3IiICsgIiBjcmVhdGVkIGEgY2xhc3MgZGVzY3JpcHRvciB3aXRoIC5raW5kIFwiIiArIGtpbmQKICAgICAgICAgICAgICAgICsgIlwiIgogICAgICAgICk7CiAgICB9CiAgICBfZGlzYWxsb3dQcm9wZXJ0eShvYmosICJrZXkiLCAiQSBjbGFzcyBkZXNjcmlwdG9yIik7CiAgICBfZGlzYWxsb3dQcm9wZXJ0eShvYmosICJwbGFjZW1lbnQiLCAiQSBjbGFzcyBkZXNjcmlwdG9yIik7CiAgICBfZGlzYWxsb3dQcm9wZXJ0eShvYmosICJkZXNjcmlwdG9yIiwgIkEgY2xhc3MgZGVzY3JpcHRvciIpOwogICAgX2Rpc2FsbG93UHJvcGVydHkob2JqLCAiaW5pdGlhbGl6ZXIiLCAiQSBjbGFzcyBkZXNjcmlwdG9yIik7CiAgICBfZGlzYWxsb3dQcm9wZXJ0eShvYmosICJleHRyYXMiLCAiQSBjbGFzcyBkZXNjcmlwdG9yIik7CiAgICB2YXIgZmluaXNoZXIgPSBfb3B0aW9uYWxDYWxsYWJsZVByb3BlcnR5KG9iaiwgImZpbmlzaGVyIik7CiAgICB2YXIgZWxlbWVudHMgPSBfdG9FbGVtZW50RGVzY3JpcHRvcnMob2JqLmVsZW1lbnRzKTsKICAgIHJldHVybiB7IGVsZW1lbnRzOiBlbGVtZW50cywgZmluaXNoZXI6IGZpbmlzaGVyIH07Cn0KZnVuY3Rpb24gX2Rpc2FsbG93UHJvcGVydHkob2JqLCBuYW1lLCBvYmplY3RUeXBlKSB7CiAgICBpZiAob2JqW25hbWVdICE9PSB1bmRlZmluZWQpIHsKICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKG9iamVjdFR5cGUgKyAiIGNhbid0IGhhdmUgYSAuIiArIG5hbWUgKyAiIHByb3BlcnR5LiIpOwogICAgfQp9CmZ1bmN0aW9uIF9vcHRpb25hbENhbGxhYmxlUHJvcGVydHkob2JqLCBuYW1lKSB7CiAgICB2YXIgdmFsdWUgPSBvYmpbbmFtZV07CiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgdmFsdWUgIT09ICJmdW5jdGlvbiIpIHsKICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCAnIiArIG5hbWUgKyAiJyB0byBiZSBhIGZ1bmN0aW9uIik7CiAgICB9CiAgICByZXR1cm4gdmFsdWU7Cn0KZnVuY3Rpb24gX3J1bkNsYXNzRmluaXNoZXJzKGNvbnN0cnVjdG9yLCBmaW5pc2hlcnMpIHsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmluaXNoZXJzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIG5ld0NvbnN0cnVjdG9yID0gKDAsIGZpbmlzaGVyc1tpXSkoY29uc3RydWN0b3IpOwogICAgICAgIGlmIChuZXdDb25zdHJ1Y3RvciAhPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgbmV3Q29uc3RydWN0b3IgIT09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIkZpbmlzaGVycyBtdXN0IHJldHVybiBhIGNvbnN0cnVjdG9yLiIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnN0cnVjdG9yID0gbmV3Q29uc3RydWN0b3I7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIGNvbnN0cnVjdG9yOwp9CmZ1bmN0aW9uIF9kZWZhdWx0cyhvYmosIGRlZmF1bHRzKSB7CiAgICB2YXIga2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGRlZmF1bHRzKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgewogICAgICAgIHZhciBrZXkgPSBrZXlzW2ldOwogICAgICAgIHZhciB2YWx1ZSA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZGVmYXVsdHMsIGtleSk7CiAgICAgICAgaWYgKHZhbHVlICYmIHZhbHVlLmNvbmZpZ3VyYWJsZSAmJiBvYmpba2V5XSA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBvYmo7Cn0KZnVuY3Rpb24gX2RlZmluZV9lbnVtZXJhYmxlX3Byb3BlcnRpZXMob2JqLCBkZXNjcykgewogICAgZm9yICh2YXIga2V5IGluIGRlc2NzKSB7CiAgICAgICAgdmFyIGRlc2MgPSBkZXNjc1trZXldOwogICAgICAgIGRlc2MuY29uZmlndXJhYmxlID0gZGVzYy5lbnVtZXJhYmxlID0gdHJ1ZTsKICAgICAgICBpZiAoInZhbHVlIiBpbiBkZXNjKSBkZXNjLndyaXRhYmxlID0gdHJ1ZTsKICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIGRlc2MpOwogICAgfQogICAgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsKICAgICAgICB2YXIgb2JqZWN0U3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZGVzY3MpOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb2JqZWN0U3ltYm9scy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICB2YXIgc3ltID0gb2JqZWN0U3ltYm9sc1tpXTsKICAgICAgICAgICAgdmFyIGRlc2MgPSBkZXNjc1tzeW1dOwogICAgICAgICAgICBkZXNjLmNvbmZpZ3VyYWJsZSA9IGRlc2MuZW51bWVyYWJsZSA9IHRydWU7CiAgICAgICAgICAgIGlmICgidmFsdWUiIGluIGRlc2MpIGRlc2Mud3JpdGFibGUgPSB0cnVlOwogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBzeW0sIGRlc2MpOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBvYmo7Cn0KZnVuY3Rpb24gX2RlZmluZV9wcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsKICAgIGlmIChrZXkgaW4gb2JqKSB7CiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsKICAgIH0gZWxzZSB7CiAgICAgICAgb2JqW2tleV0gPSB2YWx1ZTsKICAgIH0KICAgIHJldHVybiBvYmo7Cn0KZnVuY3Rpb24gX2V4cG9ydF9zdGFyKGZyb20sIHRvKSB7CiAgICBPYmplY3Qua2V5cyhmcm9tKS5mb3JFYWNoKGZ1bmN0aW9uKGspIHsKICAgICAgICBpZiAoayAhPT0gImRlZmF1bHQiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodG8sIGspKSB7CiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0bywgaywgewogICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSwKICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZyb21ba107CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgIH0pOwogICAgcmV0dXJuIGZyb207Cn0KZnVuY3Rpb24gX2V4dGVuZHMoKSB7CiAgICBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odGFyZ2V0KSB7CiAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsKICAgICAgICAgICAgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgewogICAgICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsKICAgICAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiB0YXJnZXQ7CiAgICB9OwogICAgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7Cn0KZnVuY3Rpb24gX2dldCh0YXJnZXQsIHByb3BlcnR5LCByZWNlaXZlcikgewogICAgaWYgKHR5cGVvZiBSZWZsZWN0ICE9PSAidW5kZWZpbmVkIiAmJiBSZWZsZWN0LmdldCkgewogICAgICAgIF9nZXQgPSBSZWZsZWN0LmdldDsKICAgIH0gZWxzZSB7CiAgICAgICAgX2dldCA9IGZ1bmN0aW9uIGdldCh0YXJnZXQsIHByb3BlcnR5LCByZWNlaXZlcikgewogICAgICAgICAgICB2YXIgYmFzZSA9IF9zdXBlcl9wcm9wX2Jhc2UodGFyZ2V0LCBwcm9wZXJ0eSk7CiAgICAgICAgICAgIGlmICghYmFzZSkgcmV0dXJuOwogICAgICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYmFzZSwgcHJvcGVydHkpOwogICAgICAgICAgICBpZiAoZGVzYy5nZXQpIHsKICAgICAgICAgICAgICAgIHJldHVybiBkZXNjLmdldC5jYWxsKHJlY2VpdmVyIHx8IHRhcmdldCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIGRlc2MudmFsdWU7CiAgICAgICAgfTsKICAgIH0KICAgIHJldHVybiBfZ2V0KHRhcmdldCwgcHJvcGVydHksIHJlY2VpdmVyIHx8IHRhcmdldCk7Cn0KZnVuY3Rpb24gX2dldF9wcm90b3R5cGVfb2YobykgewogICAgX2dldF9wcm90b3R5cGVfb2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBnZXRQcm90b3R5cGVPZihvKSB7CiAgICAgICAgcmV0dXJuIG8uX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihvKTsKICAgIH07CiAgICByZXR1cm4gX2dldF9wcm90b3R5cGVfb2Yobyk7Cn0KZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7CiAgICBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICJmdW5jdGlvbiIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7CiAgICB9CiAgICBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsKICAgICAgICBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfQogICAgfSk7CiAgICBpZiAoc3VwZXJDbGFzcykgX3NldF9wcm90b3R5cGVfb2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpOwp9CmZ1bmN0aW9uIF9pbmhlcml0c19sb29zZShzdWJDbGFzcywgc3VwZXJDbGFzcykgewogICAgc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzLnByb3RvdHlwZSk7CiAgICBzdWJDbGFzcy5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBzdWJDbGFzczsKICAgIHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7Cn0KZnVuY3Rpb24gX2luaXRpYWxpemVyX2RlZmluZV9wcm9wZXJ0eSh0YXJnZXQsIHByb3BlcnR5LCBkZXNjcmlwdG9yLCBjb250ZXh0KSB7CiAgICBpZiAoIWRlc2NyaXB0b3IpIHJldHVybjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIHByb3BlcnR5LCB7CiAgICAgICAgZW51bWVyYWJsZTogZGVzY3JpcHRvci5lbnVtZXJhYmxlLAogICAgICAgIGNvbmZpZ3VyYWJsZTogZGVzY3JpcHRvci5jb25maWd1cmFibGUsCiAgICAgICAgd3JpdGFibGU6IGRlc2NyaXB0b3Iud3JpdGFibGUsCiAgICAgICAgdmFsdWU6IGRlc2NyaXB0b3IuaW5pdGlhbGl6ZXIgPyBkZXNjcmlwdG9yLmluaXRpYWxpemVyLmNhbGwoY29udGV4dCkgOiB2b2lkIDAKICAgIH0pOwp9CmZ1bmN0aW9uIF9pbml0aWFsaXplcl93YXJuaW5nX2hlbHBlcihkZXNjcmlwdG9yLCBjb250ZXh0KSB7CiAgICB0aHJvdyBuZXcgRXJyb3IoCiAgICAgICAgIkRlY29yYXRpbmcgY2xhc3MgcHJvcGVydHkgZmFpbGVkLiBQbGVhc2UgZW5zdXJlIHRoYXQgIiArICJwcm9wb3NhbC1jbGFzcy1wcm9wZXJ0aWVzIGlzIGVuYWJsZWQgYW5kIHNldCB0byB1c2UgbG9vc2UgbW9kZS4gIgogICAgICAgICAgICArICJUbyB1c2UgcHJvcG9zYWwtY2xhc3MtcHJvcGVydGllcyBpbiBzcGVjIG1vZGUgd2l0aCBkZWNvcmF0b3JzLCB3YWl0IGZvciAiCiAgICAgICAgICAgICsgInRoZSBuZXh0IG1ham9yIHZlcnNpb24gb2YgZGVjb3JhdG9ycyBpbiBzdGFnZSAyLiIKICAgICk7Cn0KZnVuY3Rpb24gX2luc3RhbmNlb2YobGVmdCwgcmlnaHQpIHsKICAgIGlmIChyaWdodCAhPSBudWxsICYmIHR5cGVvZiBTeW1ib2wgIT09ICJ1bmRlZmluZWQiICYmIHJpZ2h0W1N5bWJvbC5oYXNJbnN0YW5jZV0pIHsKICAgICAgICByZXR1cm4gISFyaWdodFtTeW1ib2wuaGFzSW5zdGFuY2VdKGxlZnQpOwogICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gbGVmdCBpbnN0YW5jZW9mIHJpZ2h0OwogICAgfQp9CmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChvYmopIHsKICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9Owp9CmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCkgewogICAgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSAiZnVuY3Rpb24iKSByZXR1cm4gbnVsbDsKICAgIHZhciBjYWNoZUJhYmVsSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7CiAgICB2YXIgY2FjaGVOb2RlSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7CiAgICByZXR1cm4gKF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uKG5vZGVJbnRlcm9wKSB7CiAgICAgICAgcmV0dXJuIG5vZGVJbnRlcm9wID8gY2FjaGVOb2RlSW50ZXJvcCA6IGNhY2hlQmFiZWxJbnRlcm9wOwogICAgfSkobm9kZUludGVyb3ApOwp9CmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQob2JqLCBub2RlSW50ZXJvcCkgewogICAgaWYgKCFub2RlSW50ZXJvcCAmJiBvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsKICAgICAgICByZXR1cm4gb2JqOwogICAgfQogICAgaWYgKG9iaiA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqICE9PSAib2JqZWN0IiAmJiB0eXBlb2Ygb2JqICE9PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgcmV0dXJuIHsgZGVmYXVsdDogb2JqIH07CiAgICB9CiAgICB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApOwogICAgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7CiAgICAgICAgcmV0dXJuIGNhY2hlLmdldChvYmopOwogICAgfQogICAgdmFyIG5ld09iaiA9IHsgX19wcm90b19fOiBudWxsIH07CiAgICB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7CiAgICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7CiAgICAgICAgaWYgKGtleSAhPT0gImRlZmF1bHQiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsKICAgICAgICAgICAgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7CiAgICAgICAgICAgIGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHsKICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBuZXdPYmpba2V5XSA9IG9ialtrZXldOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgbmV3T2JqLmRlZmF1bHQgPSBvYmo7CiAgICBpZiAoY2FjaGUpIHsKICAgICAgICBjYWNoZS5zZXQob2JqLCBuZXdPYmopOwogICAgfQogICAgcmV0dXJuIG5ld09iajsKfQpmdW5jdGlvbiBfaXNfbmF0aXZlX2Z1bmN0aW9uKGZuKSB7CiAgICByZXR1cm4gRnVuY3Rpb24udG9TdHJpbmcuY2FsbChmbikuaW5kZXhPZigiW25hdGl2ZSBjb2RlXSIpICE9PSAtMTsKfQpmdW5jdGlvbiBfaXRlcmFibGVfdG9fYXJyYXkoaXRlcikgewogICAgaWYgKHR5cGVvZiBTeW1ib2wgIT09ICJ1bmRlZmluZWQiICYmIGl0ZXJbU3ltYm9sLml0ZXJhdG9yXSAhPSBudWxsIHx8IGl0ZXJbIkBAaXRlcmF0b3IiXSAhPSBudWxsKSByZXR1cm4gQXJyYXkuZnJvbShpdGVyKTsKfQpmdW5jdGlvbiBfaXRlcmFibGVfdG9fYXJyYXlfbGltaXQoYXJyLCBpKSB7CiAgICB2YXIgX2kgPSBhcnIgPT0gbnVsbCA/IG51bGwgOiB0eXBlb2YgU3ltYm9sICE9PSAidW5kZWZpbmVkIiAmJiBhcnJbU3ltYm9sLml0ZXJhdG9yXSB8fCBhcnJbIkBAaXRlcmF0b3IiXTsKICAgIGlmIChfaSA9PSBudWxsKSByZXR1cm47CiAgICB2YXIgX2FyciA9IFtdOwogICAgdmFyIF9uID0gdHJ1ZTsKICAgIHZhciBfZCA9IGZhbHNlOwogICAgdmFyIF9zLCBfZTsKICAgIHRyeSB7CiAgICAgICAgZm9yIChfaSA9IF9pLmNhbGwoYXJyKTsgIShfbiA9IChfcyA9IF9pLm5leHQoKSkuZG9uZSk7IF9uID0gdHJ1ZSkgewogICAgICAgICAgICBfYXJyLnB1c2goX3MudmFsdWUpOwogICAgICAgICAgICBpZiAoaSAmJiBfYXJyLmxlbmd0aCA9PT0gaSkgYnJlYWs7CiAgICAgICAgfQogICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgX2QgPSB0cnVlOwogICAgICAgIF9lID0gZXJyOwogICAgfSBmaW5hbGx5IHsKICAgICAgICB0cnkgewogICAgICAgICAgICBpZiAoIV9uICYmIF9pWyJyZXR1cm4iXSAhPSBudWxsKSBfaVsicmV0dXJuIl0oKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICBpZiAoX2QpIHRocm93IF9lOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBfYXJyOwp9CmZ1bmN0aW9uIF9pdGVyYWJsZV90b19hcnJheV9saW1pdF9sb29zZShhcnIsIGkpIHsKICAgIHZhciBfaSA9IGFyciAmJiAodHlwZW9mIFN5bWJvbCAhPT0gInVuZGVmaW5lZCIgJiYgYXJyW1N5bWJvbC5pdGVyYXRvcl0gfHwgYXJyWyJAQGl0ZXJhdG9yIl0pOwogICAgaWYgKF9pID09IG51bGwpIHJldHVybjsKICAgIHZhciBfYXJyID0gW107CiAgICBmb3IgKF9pID0gX2kuY2FsbChhcnIpLCBfc3RlcDsgIShfc3RlcCA9IF9pLm5leHQoKSkuZG9uZTspIHsKICAgICAgICBfYXJyLnB1c2goX3N0ZXAudmFsdWUpOwogICAgICAgIGlmIChpICYmIF9hcnIubGVuZ3RoID09PSBpKSBicmVhazsKICAgIH0KICAgIHJldHVybiBfYXJyOwp9CnZhciBSRUFDVF9FTEVNRU5UX1RZUEU7CmZ1bmN0aW9uIF9qc3godHlwZSwgcHJvcHMsIGtleSwgY2hpbGRyZW4pIHsKICAgIGlmICghUkVBQ1RfRUxFTUVOVF9UWVBFKSB7CiAgICAgICAgUkVBQ1RfRUxFTUVOVF9UWVBFID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBTeW1ib2wuZm9yICYmIFN5bWJvbC5mb3IoInJlYWN0LmVsZW1lbnQiKSB8fCAweGVhYzc7CiAgICB9CiAgICB2YXIgZGVmYXVsdFByb3BzID0gdHlwZSAmJiB0eXBlLmRlZmF1bHRQcm9wczsKICAgIHZhciBjaGlsZHJlbkxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGggLSAzOwogICAgaWYgKCFwcm9wcyAmJiBjaGlsZHJlbkxlbmd0aCAhPT0gMCkgewogICAgICAgIHByb3BzID0geyBjaGlsZHJlbjogdm9pZCAwIH07CiAgICB9CiAgICBpZiAocHJvcHMgJiYgZGVmYXVsdFByb3BzKSB7CiAgICAgICAgZm9yICh2YXIgcHJvcE5hbWUgaW4gZGVmYXVsdFByb3BzKSB7CiAgICAgICAgICAgIGlmIChwcm9wc1twcm9wTmFtZV0gPT09IHZvaWQgMCkgewogICAgICAgICAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0gZGVmYXVsdFByb3BzW3Byb3BOYW1lXTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0gZWxzZSBpZiAoIXByb3BzKSB7CiAgICAgICAgcHJvcHMgPSBkZWZhdWx0UHJvcHMgfHwge307CiAgICB9CiAgICBpZiAoY2hpbGRyZW5MZW5ndGggPT09IDEpIHsKICAgICAgICBwcm9wcy5jaGlsZHJlbiA9IGNoaWxkcmVuOwogICAgfSBlbHNlIGlmIChjaGlsZHJlbkxlbmd0aCA+IDEpIHsKICAgICAgICB2YXIgY2hpbGRBcnJheSA9IG5ldyBBcnJheShjaGlsZHJlbkxlbmd0aCk7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbkxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGNoaWxkQXJyYXlbaV0gPSBhcmd1bWVudHNbaSArIDNdOwogICAgICAgIH0KICAgICAgICBwcm9wcy5jaGlsZHJlbiA9IGNoaWxkQXJyYXk7CiAgICB9CiAgICByZXR1cm4geyAkJHR5cGVvZjogUkVBQ1RfRUxFTUVOVF9UWVBFLCB0eXBlOiB0eXBlLCBrZXk6IGtleSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6ICIiICsga2V5LCByZWY6IG51bGwsIHByb3BzOiBwcm9wcywgX293bmVyOiBudWxsIH07Cn0KZnVuY3Rpb24gX25ld19hcnJvd19jaGVjayhpbm5lclRoaXMsIGJvdW5kVGhpcykgewogICAgaWYgKGlubmVyVGhpcyAhPT0gYm91bmRUaGlzKSB7CiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluc3RhbnRpYXRlIGFuIGFycm93IGZ1bmN0aW9uIik7CiAgICB9Cn0KZnVuY3Rpb24gX25vbl9pdGVyYWJsZV9yZXN0KCkgewogICAgdGhyb3cgbmV3IFR5cGVFcnJvcigKICAgICAgICAiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIgogICAgKTsKfQpmdW5jdGlvbiBfbm9uX2l0ZXJhYmxlX3NwcmVhZCgpIHsKICAgIHRocm93IG5ldyBUeXBlRXJyb3IoCiAgICAgICAgIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iCiAgICApOwp9CmZ1bmN0aW9uIF9vYmplY3RfZGVzdHJ1Y3R1cmluZ19lbXB0eShvKSB7CiAgICBpZiAobyA9PT0gbnVsbCB8fCBvID09PSB2b2lkIDApIHRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBkZXN0cnVjdHVyZSAiICsgbyk7CiAgICByZXR1cm4gbzsKfQpmdW5jdGlvbiBfb2JqZWN0X3NwcmVhZCh0YXJnZXQpIHsKICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXSAhPSBudWxsID8gYXJndW1lbnRzW2ldIDoge307CiAgICAgICAgdmFyIG93bktleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpOwogICAgICAgIGlmICh0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICBvd25LZXlzID0gb3duS2V5cy5jb25jYXQoCiAgICAgICAgICAgICAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHNvdXJjZSkuZmlsdGVyKGZ1bmN0aW9uKHN5bSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSwgc3ltKS5lbnVtZXJhYmxlOwogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgb3duS2V5cy5mb3JFYWNoKGZ1bmN0aW9uKGtleSkgewogICAgICAgICAgICBfZGVmaW5lX3Byb3BlcnR5KHRhcmdldCwga2V5LCBzb3VyY2Vba2V5XSk7CiAgICAgICAgfSk7CiAgICB9CiAgICByZXR1cm4gdGFyZ2V0Owp9CmZ1bmN0aW9uIG93bktleXMob2JqZWN0LCBlbnVtZXJhYmxlT25seSkgewogICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpOwogICAgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsKICAgICAgICB2YXIgc3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMob2JqZWN0KTsKICAgICAgICBpZiAoZW51bWVyYWJsZU9ubHkpIHsKICAgICAgICAgICAgc3ltYm9scyA9IHN5bWJvbHMuZmlsdGVyKGZ1bmN0aW9uKHN5bSkgewogICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBzeW0pLmVudW1lcmFibGU7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBrZXlzLnB1c2guYXBwbHkoa2V5cywgc3ltYm9scyk7CiAgICB9CiAgICByZXR1cm4ga2V5czsKfQpmdW5jdGlvbiBfb2JqZWN0X3NwcmVhZF9wcm9wcyh0YXJnZXQsIHNvdXJjZSkgewogICAgc291cmNlID0gc291cmNlICE9IG51bGwgPyBzb3VyY2UgOiB7fTsKICAgIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycykgewogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoc291cmNlKSk7CiAgICB9IGVsc2UgewogICAgICAgIG93bktleXMoT2JqZWN0KHNvdXJjZSkpLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7CiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIGtleSkpOwogICAgICAgIH0pOwogICAgfQogICAgcmV0dXJuIHRhcmdldDsKfQpmdW5jdGlvbiBfb2JqZWN0X3dpdGhvdXRfcHJvcGVydGllcyhzb3VyY2UsIGV4Y2x1ZGVkKSB7CiAgICBpZiAoc291cmNlID09IG51bGwpIHJldHVybiB7fTsKICAgIHZhciB0YXJnZXQgPSBfb2JqZWN0X3dpdGhvdXRfcHJvcGVydGllc19sb29zZShzb3VyY2UsIGV4Y2x1ZGVkKTsKICAgIHZhciBrZXksIGk7CiAgICBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykgewogICAgICAgIHZhciBzb3VyY2VTeW1ib2xLZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzb3VyY2UpOwogICAgICAgIGZvciAoaSA9IDA7IGkgPCBzb3VyY2VTeW1ib2xLZXlzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGtleSA9IHNvdXJjZVN5bWJvbEtleXNbaV07CiAgICAgICAgICAgIGlmIChleGNsdWRlZC5pbmRleE9mKGtleSkgPj0gMCkgY29udGludWU7CiAgICAgICAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHNvdXJjZSwga2V5KSkgY29udGludWU7CiAgICAgICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIHRhcmdldDsKfQpmdW5jdGlvbiBfb2JqZWN0X3dpdGhvdXRfcHJvcGVydGllc19sb29zZShzb3VyY2UsIGV4Y2x1ZGVkKSB7CiAgICBpZiAoc291cmNlID09IG51bGwpIHJldHVybiB7fTsKICAgIHZhciB0YXJnZXQgPSB7fTsKICAgIHZhciBzb3VyY2VLZXlzID0gT2JqZWN0LmtleXMoc291cmNlKTsKICAgIHZhciBrZXksIGk7CiAgICBmb3IgKGkgPSAwOyBpIDwgc291cmNlS2V5cy5sZW5ndGg7IGkrKykgewogICAgICAgIGtleSA9IHNvdXJjZUtleXNbaV07CiAgICAgICAgaWYgKGV4Y2x1ZGVkLmluZGV4T2Yoa2V5KSA+PSAwKSBjb250aW51ZTsKICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOwogICAgfQogICAgcmV0dXJuIHRhcmdldDsKfQpmdW5jdGlvbiBfcG9zc2libGVfY29uc3RydWN0b3JfcmV0dXJuKHNlbGYsIGNhbGwpIHsKICAgIGlmIChjYWxsICYmIChfdHlwZV9vZihjYWxsKSA9PT0gIm9iamVjdCIgfHwgdHlwZW9mIGNhbGwgPT09ICJmdW5jdGlvbiIpKSB7CiAgICAgICAgcmV0dXJuIGNhbGw7CiAgICB9CiAgICByZXR1cm4gX2Fzc2VydF90aGlzX2luaXRpYWxpemVkKHNlbGYpOwp9CmZ1bmN0aW9uIF9yZWFkX29ubHlfZXJyb3IobmFtZSkgewogICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiXCIiICsgbmFtZSArICJcIiBpcyByZWFkLW9ubHkiKTsKfQpmdW5jdGlvbiBzZXQodGFyZ2V0LCBwcm9wZXJ0eSwgdmFsdWUsIHJlY2VpdmVyKSB7CiAgICBpZiAodHlwZW9mIFJlZmxlY3QgIT09ICJ1bmRlZmluZWQiICYmIFJlZmxlY3Quc2V0KSB7CiAgICAgICAgc2V0ID0gUmVmbGVjdC5zZXQ7CiAgICB9IGVsc2UgewogICAgICAgIHNldCA9IGZ1bmN0aW9uIHNldCh0YXJnZXQsIHByb3BlcnR5LCB2YWx1ZSwgcmVjZWl2ZXIpIHsKICAgICAgICAgICAgdmFyIGJhc2UgPSBfc3VwZXJfcHJvcF9iYXNlKHRhcmdldCwgcHJvcGVydHkpOwogICAgICAgICAgICB2YXIgZGVzYzsKICAgICAgICAgICAgaWYgKGJhc2UpIHsKICAgICAgICAgICAgICAgIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGJhc2UsIHByb3BlcnR5KTsKICAgICAgICAgICAgICAgIGlmIChkZXNjLnNldCkgewogICAgICAgICAgICAgICAgICAgIGRlc2Muc2V0LmNhbGwocmVjZWl2ZXIsIHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWRlc2Mud3JpdGFibGUpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocmVjZWl2ZXIsIHByb3BlcnR5KTsKICAgICAgICAgICAgaWYgKGRlc2MpIHsKICAgICAgICAgICAgICAgIGlmICghZGVzYy53cml0YWJsZSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGRlc2MudmFsdWUgPSB2YWx1ZTsKICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyZWNlaXZlciwgcHJvcGVydHksIGRlc2MpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgX2RlZmluZV9wcm9wZXJ0eShyZWNlaXZlciwgcHJvcGVydHksIHZhbHVlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9OwogICAgfQogICAgcmV0dXJuIHNldCh0YXJnZXQsIHByb3BlcnR5LCB2YWx1ZSwgcmVjZWl2ZXIpOwp9CmZ1bmN0aW9uIF9zZXQodGFyZ2V0LCBwcm9wZXJ0eSwgdmFsdWUsIHJlY2VpdmVyLCBpc1N0cmljdCkgewogICAgdmFyIHMgPSBzZXQodGFyZ2V0LCBwcm9wZXJ0eSwgdmFsdWUsIHJlY2VpdmVyIHx8IHRhcmdldCk7CiAgICBpZiAoIXMgJiYgaXNTdHJpY3QpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImZhaWxlZCB0byBzZXQgcHJvcGVydHkiKTsKICAgIH0KICAgIHJldHVybiB2YWx1ZTsKfQpmdW5jdGlvbiBfc2V0X3Byb3RvdHlwZV9vZihvLCBwKSB7CiAgICBfc2V0X3Byb3RvdHlwZV9vZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiBzZXRQcm90b3R5cGVPZihvLCBwKSB7CiAgICAgICAgby5fX3Byb3RvX18gPSBwOwogICAgICAgIHJldHVybiBvOwogICAgfTsKICAgIHJldHVybiBfc2V0X3Byb3RvdHlwZV9vZihvLCBwKTsKfQpmdW5jdGlvbiBfc2tpcF9maXJzdF9nZW5lcmF0b3JfbmV4dChmbikgewogICAgcmV0dXJuIGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBpdCA9IGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgaXQubmV4dCgpOwogICAgICAgIHJldHVybiBpdDsKICAgIH07Cn0KZnVuY3Rpb24gX3NsaWNlZF90b19hcnJheShhcnIsIGkpIHsKICAgIHJldHVybiBfYXJyYXlfd2l0aF9ob2xlcyhhcnIpIHx8IF9pdGVyYWJsZV90b19hcnJheV9saW1pdChhcnIsIGkpIHx8IF91bnN1cHBvcnRlZF9pdGVyYWJsZV90b19hcnJheShhcnIsIGkpIHx8IF9ub25faXRlcmFibGVfcmVzdCgpOwp9CmZ1bmN0aW9uIF9zbGljZWRfdG9fYXJyYXlfbG9vc2UoYXJyLCBpKSB7CiAgICByZXR1cm4gX2FycmF5X3dpdGhfaG9sZXMoYXJyKSB8fCBfaXRlcmFibGVfdG9fYXJyYXlfbGltaXRfbG9vc2UoYXJyLCBpKSB8fCBfdW5zdXBwb3J0ZWRfaXRlcmFibGVfdG9fYXJyYXkoYXJyLCBpKQogICAgICAgIHx8IF9ub25faXRlcmFibGVfcmVzdCgpOwp9CmZ1bmN0aW9uIF9zdXBlcl9wcm9wX2Jhc2Uob2JqZWN0LCBwcm9wZXJ0eSkgewogICAgd2hpbGUgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSkpIHsKICAgICAgICBvYmplY3QgPSBfZ2V0X3Byb3RvdHlwZV9vZihvYmplY3QpOwogICAgICAgIGlmIChvYmplY3QgPT09IG51bGwpIGJyZWFrOwogICAgfQogICAgcmV0dXJuIG9iamVjdDsKfQpmdW5jdGlvbiBfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwoc3RyaW5ncywgcmF3KSB7CiAgICBpZiAoIXJhdykgewogICAgICAgIHJhdyA9IHN0cmluZ3Muc2xpY2UoMCk7CiAgICB9CiAgICByZXR1cm4gT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhzdHJpbmdzLCB7IHJhdzogeyB2YWx1ZTogT2JqZWN0LmZyZWV6ZShyYXcpIH0gfSkpOwp9CmZ1bmN0aW9uIF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZShzdHJpbmdzLCByYXcpIHsKICAgIGlmICghcmF3KSB7CiAgICAgICAgcmF3ID0gc3RyaW5ncy5zbGljZSgwKTsKICAgIH0KICAgIHN0cmluZ3MucmF3ID0gcmF3OwogICAgcmV0dXJuIHN0cmluZ3M7Cn0KZnVuY3Rpb24gX3Rocm93KGUpIHsKICAgIHRocm93IGU7Cn0KZnVuY3Rpb24gX3RvX2FycmF5KGFycikgewogICAgcmV0dXJuIF9hcnJheV93aXRoX2hvbGVzKGFycikgfHwgX2l0ZXJhYmxlX3RvX2FycmF5KGFycikgfHwgX3Vuc3VwcG9ydGVkX2l0ZXJhYmxlX3RvX2FycmF5KGFycikgfHwgX25vbl9pdGVyYWJsZV9yZXN0KCk7Cn0KZnVuY3Rpb24gX3RvX2NvbnN1bWFibGVfYXJyYXkoYXJyKSB7CiAgICByZXR1cm4gX2FycmF5X3dpdGhvdXRfaG9sZXMoYXJyKSB8fCBfaXRlcmFibGVfdG9fYXJyYXkoYXJyKSB8fCBfdW5zdXBwb3J0ZWRfaXRlcmFibGVfdG9fYXJyYXkoYXJyKSB8fCBfbm9uX2l0ZXJhYmxlX3NwcmVhZCgpOwp9CmZ1bmN0aW9uIF90b19wcmltaXRpdmUoaW5wdXQsIGhpbnQpIHsKICAgIGlmIChfdHlwZV9vZihpbnB1dCkgIT09ICJvYmplY3QiIHx8IGlucHV0ID09PSBudWxsKSByZXR1cm4gaW5wdXQ7CiAgICB2YXIgcHJpbSA9IGlucHV0W1N5bWJvbC50b1ByaW1pdGl2ZV07CiAgICBpZiAocHJpbSAhPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgdmFyIHJlcyA9IHByaW0uY2FsbChpbnB1dCwgaGludCB8fCAiZGVmYXVsdCIpOwogICAgICAgIGlmIChfdHlwZV9vZihyZXMpICE9PSAib2JqZWN0IikgcmV0dXJuIHJlczsKICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpOwogICAgfQogICAgcmV0dXJuIChoaW50ID09PSAic3RyaW5nIiA/IFN0cmluZyA6IE51bWJlcikoaW5wdXQpOwp9CmZ1bmN0aW9uIF90b19wcm9wZXJ0eV9rZXkoYXJnKSB7CiAgICB2YXIga2V5ID0gX3RvX3ByaW1pdGl2ZShhcmcsICJzdHJpbmciKTsKICAgIHJldHVybiBfdHlwZV9vZihrZXkpID09PSAic3ltYm9sIiA/IGtleSA6IFN0cmluZyhrZXkpOwp9CmZ1bmN0aW9uIF91cGRhdGUodGFyZ2V0LCBwcm9wZXJ0eSwgcmVjZWl2ZXIsIGlzU3RyaWN0KSB7CiAgICByZXR1cm4gewogICAgICAgIGdldCBfKCkgewogICAgICAgICAgICByZXR1cm4gX2dldCh0YXJnZXQsIHByb3BlcnR5LCByZWNlaXZlcik7CiAgICAgICAgfSwKICAgICAgICBzZXQgXyh2YWx1ZSkgewogICAgICAgICAgICBfc2V0KHRhcmdldCwgcHJvcGVydHksIHZhbHVlLCByZWNlaXZlciwgaXNTdHJpY3QpOwogICAgICAgIH0KICAgIH07Cn0KZnVuY3Rpb24gX3R5cGVfb2Yob2JqKSB7CiAgICAiQHN3Yy9oZWxwZXJzIC0gdHlwZW9mIjsKICAgIHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCAhPT0gInVuZGVmaW5lZCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgPyAic3ltYm9sIiA6IHR5cGVvZiBvYmo7Cn0KZnVuY3Rpb24gX3Vuc3VwcG9ydGVkX2l0ZXJhYmxlX3RvX2FycmF5KG8sIG1pbkxlbikgewogICAgaWYgKCFvKSByZXR1cm47CiAgICBpZiAodHlwZW9mIG8gPT09ICJzdHJpbmciKSByZXR1cm4gX2FycmF5X2xpa2VfdG9fYXJyYXkobywgbWluTGVuKTsKICAgIHZhciBuID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLnNsaWNlKDgsIC0xKTsKICAgIGlmIChuID09PSAiT2JqZWN0IiAmJiBvLmNvbnN0cnVjdG9yKSBuID0gby5jb25zdHJ1Y3Rvci5uYW1lOwogICAgaWYgKG4gPT09ICJNYXAiIHx8IG4gPT09ICJTZXQiKSByZXR1cm4gQXJyYXkuZnJvbShuKTsKICAgIGlmIChuID09PSAiQXJndW1lbnRzIiB8fCAvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSkgcmV0dXJuIF9hcnJheV9saWtlX3RvX2FycmF5KG8sIG1pbkxlbik7Cn0KZnVuY3Rpb24gX3dyYXBfYXN5bmNfZ2VuZXJhdG9yKGZuKSB7CiAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIG5ldyBfYXN5bmNfZ2VuZXJhdG9yKGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpOwogICAgfTsKfQpmdW5jdGlvbiBfd3JhcF9uYXRpdmVfc3VwZXIoQ2xhc3MpIHsKICAgIHZhciBfY2FjaGUgPSB0eXBlb2YgTWFwID09PSAiZnVuY3Rpb24iID8gbmV3IE1hcCgpIDogdW5kZWZpbmVkOwogICAgX3dyYXBfbmF0aXZlX3N1cGVyID0gZnVuY3Rpb24gd3JhcE5hdGl2ZVN1cGVyKENsYXNzKSB7CiAgICAgICAgaWYgKENsYXNzID09PSBudWxsIHx8ICFfaXNfbmF0aXZlX2Z1bmN0aW9uKENsYXNzKSkgcmV0dXJuIENsYXNzOwogICAgICAgIGlmICh0eXBlb2YgQ2xhc3MgIT09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTsKICAgICAgICB9CiAgICAgICAgaWYgKHR5cGVvZiBfY2FjaGUgIT09ICJ1bmRlZmluZWQiKSB7CiAgICAgICAgICAgIGlmIChfY2FjaGUuaGFzKENsYXNzKSkgcmV0dXJuIF9jYWNoZS5nZXQoQ2xhc3MpOwogICAgICAgICAgICBfY2FjaGUuc2V0KENsYXNzLCBXcmFwcGVyKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gV3JhcHBlcigpIHsKICAgICAgICAgICAgcmV0dXJuIF9jb25zdHJ1Y3QoQ2xhc3MsIGFyZ3VtZW50cywgX2dldF9wcm90b3R5cGVfb2YodGhpcykuY29uc3RydWN0b3IpOwogICAgICAgIH0KICAgICAgICBXcmFwcGVyLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoQ2xhc3MucHJvdG90eXBlLCB7CiAgICAgICAgICAgIGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBXcmFwcGVyLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIF9zZXRfcHJvdG90eXBlX29mKFdyYXBwZXIsIENsYXNzKTsKICAgIH07CiAgICByZXR1cm4gX3dyYXBfbmF0aXZlX3N1cGVyKENsYXNzKTsKfQpmdW5jdGlvbiBfd3JpdGVfb25seV9lcnJvcihuYW1lKSB7CiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJcIiIgKyBuYW1lICsgIlwiIGlzIHdyaXRlLW9ubHkiKTsKfQpmdW5jdGlvbiBfY2xhc3NfcHJpdmF0ZV9maWVsZF9kZXN0cnVjdHVyZShyZWNlaXZlciwgcHJpdmF0ZU1hcCkgewogICAgdmFyIGRlc2NyaXB0b3IgPSBfY2xhc3NfZXh0cmFjdF9maWVsZF9kZXNjcmlwdG9yKHJlY2VpdmVyLCBwcml2YXRlTWFwLCAic2V0Iik7CiAgICByZXR1cm4gX2NsYXNzX2FwcGx5X2Rlc2NyaXB0b3JfZGVzdHJ1Y3R1cmUocmVjZWl2ZXIsIGRlc2NyaXB0b3IpOwp9CmZ1bmN0aW9uIF9jbGFzc19zdGF0aWNfcHJpdmF0ZV9maWVsZF9kZXN0cnVjdHVyZShyZWNlaXZlciwgY2xhc3NDb25zdHJ1Y3RvciwgZGVzY3JpcHRvcikgewogICAgX2NsYXNzX2NoZWNrX3ByaXZhdGVfc3RhdGljX2FjY2VzcyhyZWNlaXZlciwgY2xhc3NDb25zdHJ1Y3Rvcik7CiAgICBfY2xhc3NfY2hlY2tfcHJpdmF0ZV9zdGF0aWNfZmllbGRfZGVzY3JpcHRvcihkZXNjcmlwdG9yLCAic2V0Iik7CiAgICByZXR1cm4gX2NsYXNzX2FwcGx5X2Rlc2NyaXB0b3JfZGVzdHJ1Y3R1cmUocmVjZWl2ZXIsIGRlc2NyaXB0b3IpOwp9CmZ1bmN0aW9uIF9jbGFzc19zdGF0aWNfcHJpdmF0ZV9tZXRob2RfZ2V0KHJlY2VpdmVyLCBjbGFzc0NvbnN0cnVjdG9yLCBtZXRob2QpIHsKICAgIF9jbGFzc19jaGVja19wcml2YXRlX3N0YXRpY19hY2Nlc3MocmVjZWl2ZXIsIGNsYXNzQ29uc3RydWN0b3IpOwogICAgcmV0dXJuIG1ldGhvZDsKfQpmdW5jdGlvbiBfY2xhc3NfY2hlY2tfcHJpdmF0ZV9zdGF0aWNfYWNjZXNzKHJlY2VpdmVyLCBjbGFzc0NvbnN0cnVjdG9yKSB7CiAgICBpZiAocmVjZWl2ZXIgIT09IGNsYXNzQ29uc3RydWN0b3IpIHsKICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIHN0YXRpYyBhY2Nlc3Mgb2Ygd3JvbmcgcHJvdmVuYW5jZSIpOwogICAgfQp9CmZ1bmN0aW9uIF9pc19uYXRpdmVfcmVmbGVjdF9jb25zdHJ1Y3QoKSB7CiAgICAvLyBTaW5jZSBSZWZsZWN0LmNvbnN0cnVjdCBjYW4ndCBiZSBwcm9wZXJseSBwb2x5ZmlsbGVkLCBzb21lCiAgICAvLyBpbXBsZW1lbnRhdGlvbnMgKGUuZy4gY29yZS1qc0AyKSBkb24ndCBzZXQgdGhlIGNvcnJlY3QgaW50ZXJuYWwgc2xvdHMuCiAgICAvLyBUaG9zZSBwb2x5ZmlsbHMgZG9uJ3QgYWxsb3cgdXMgdG8gc3ViY2xhc3MgYnVpbHQtaW5zLCBzbyB3ZSBuZWVkIHRvCiAgICAvLyB1c2Ugb3VyIGZhbGxiYWNrIGltcGxlbWVudGF0aW9uLgogICAgdHJ5IHsKICAgICAgICAvLyBJZiB0aGUgaW50ZXJuYWwgc2xvdHMgYXJlbid0IHNldCwgdGhpcyB0aHJvd3MgYW4gZXJyb3Igc2ltaWxhciB0bwogICAgICAgIC8vICAgVHlwZUVycm9yOiB0aGlzIGlzIG5vdCBhIEJvb2xlYW4gb2JqZWN0LgogICAgICAgIHZhciByZXN1bHQgPSAhQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sIFtdLCBmdW5jdGlvbigpIHt9KSk7CiAgICB9IGNhdGNoIChfKSB7fQogICAgcmV0dXJuIChfaXNfbmF0aXZlX3JlZmxlY3RfY29uc3RydWN0ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuICEhcmVzdWx0OwogICAgfSkoKTsKfQpmdW5jdGlvbiBfY3JlYXRlX3N1cGVyKERlcml2ZWQpIHsKICAgIHZhciBoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0ID0gX2lzX25hdGl2ZV9yZWZsZWN0X2NvbnN0cnVjdCgpOwogICAgcmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCkgewogICAgICAgIHZhciBTdXBlciA9IF9nZXRfcHJvdG90eXBlX29mKERlcml2ZWQpLCByZXN1bHQ7CiAgICAgICAgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsKICAgICAgICAgICAgdmFyIE5ld1RhcmdldCA9IF9nZXRfcHJvdG90eXBlX29mKHRoaXMpLmNvbnN0cnVjdG9yOwogICAgICAgICAgICByZXN1bHQgPSBSZWZsZWN0LmNvbnN0cnVjdChTdXBlciwgYXJndW1lbnRzLCBOZXdUYXJnZXQpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBfcG9zc2libGVfY29uc3RydWN0b3JfcmV0dXJuKHRoaXMsIHJlc3VsdCk7CiAgICB9Owp9CmZ1bmN0aW9uIF9jcmVhdGVfZm9yX29mX2l0ZXJhdG9yX2hlbHBlcl9sb29zZShvLCBhbGxvd0FycmF5TGlrZSkgewogICAgdmFyIGl0ID0gdHlwZW9mIFN5bWJvbCAhPT0gInVuZGVmaW5lZCIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdIHx8IG9bIkBAaXRlcmF0b3IiXTsKICAgIGlmIChpdCkgcmV0dXJuIChpdCA9IGl0LmNhbGwobykpLm5leHQuYmluZChpdCk7CiAgICAvLyBGYWxsYmFjayBmb3IgZW5naW5lcyB3aXRob3V0IHN5bWJvbCBzdXBwb3J0CiAgICBpZiAoQXJyYXkuaXNBcnJheShvKSB8fCAoaXQgPSBfdW5zdXBwb3J0ZWRfaXRlcmFibGVfdG9fYXJyYXkobykpIHx8IGFsbG93QXJyYXlMaWtlICYmIG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSAibnVtYmVyIikgewogICAgICAgIGlmIChpdCkgbyA9IGl0OwogICAgICAgIHZhciBpID0gMDsKICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlmIChpID49IG8ubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4geyBkb25lOiB0cnVlIH07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHsgZG9uZTogZmFsc2UsIHZhbHVlOiBvW2krK10gfTsKICAgICAgICB9OwogICAgfQogICAgdGhyb3cgbmV3IFR5cGVFcnJvcigKICAgICAgICAiSW52YWxpZCBhdHRlbXB0IHRvIGl0ZXJhdGUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iCiAgICApOwp9CmZ1bmN0aW9uIF90c19kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYykgewogICAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDsKICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gIm9iamVjdCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09ICJmdW5jdGlvbiIpIHIgPSBSZWZsZWN0LmRlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKTsKICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7CiAgICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByOwp9ZnVuY3Rpb24gX3RzX2dlbmVyYXRvcih0aGlzQXJnLCBib2R5KSB7CiAgICB2YXIgZiwgeSwgdCwgZywgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uICgpIHsgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOyByZXR1cm4gdFsxXTsgfSwgdHJ5czogW10sIG9wczogW10gfTsKICAgIHJldHVybiBnID0geyBuZXh0OiB2ZXJiKDApLCAidGhyb3ciOiB2ZXJiKDEpLCAicmV0dXJuIjogdmVyYigyKSB9LCB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIChnW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9KSwgZzsKICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfQogICAgZnVuY3Rpb24gc3RlcChvcCkgewogICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7CiAgICAgICAgd2hpbGUgKF8pIHRyeSB7CiAgICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbInJldHVybiJdIDogb3BbMF0gPyB5WyJ0aHJvdyJdIHx8ICgodCA9IHlbInJldHVybiJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDsKICAgICAgICAgICAgaWYgKHkgPSAwLCB0KSBvcCA9IFtvcFswXSAmIDIsIHQudmFsdWVdOwogICAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7CiAgICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgNDogXy5sYWJlbCsrOyByZXR1cm4geyB2YWx1ZTogb3BbMV0sIGRvbmU6IGZhbHNlIH07CiAgICAgICAgICAgICAgICBjYXNlIDU6IF8ubGFiZWwrKzsgeSA9IG9wWzFdOyBvcCA9IFswXTsgY29udGludWU7CiAgICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7IF8gPSAwOyBjb250aW51ZTsgfQogICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9CiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSA2ICYmIF8ubGFiZWwgPCB0WzFdKSB7IF8ubGFiZWwgPSB0WzFdOyB0ID0gb3A7IGJyZWFrOyB9CiAgICAgICAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsgXy5sYWJlbCA9IHRbMl07IF8ub3BzLnB1c2gob3ApOyBicmVhazsgfQogICAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTsKICAgICAgICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7IGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pOwogICAgICAgIH0gY2F0Y2ggKGUpIHsgb3AgPSBbNiwgZV07IHkgPSAwOyB9IGZpbmFsbHkgeyBmID0gdCA9IDA7IH0KICAgICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTsKICAgIH0KfWZ1bmN0aW9uIF90c19tZXRhZGF0YShrLCB2KSB7CiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09ICJvYmplY3QiICYmIHR5cGVvZiBSZWZsZWN0Lm1ldGFkYXRhID09PSAiZnVuY3Rpb24iKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShrLCB2KTsKfWZ1bmN0aW9uIF90c19wYXJhbShwYXJhbUluZGV4LCBkZWNvcmF0b3IpIHsKICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0LCBrZXkpIHsgZGVjb3JhdG9yKHRhcmdldCwga2V5LCBwYXJhbUluZGV4KTsgfQp9ZnVuY3Rpb24gX3RzX3ZhbHVlcyhvKSB7CiAgICB2YXIgcyA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDsKICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pOwogICAgaWYgKG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSAibnVtYmVyIikgcmV0dXJuIHsKICAgICAgICBuZXh0OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGlmIChvICYmIGkgPj0gby5sZW5ndGgpIG8gPSB2b2lkIDA7CiAgICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvICYmIG9baSsrXSwgZG9uZTogIW8gfTsKICAgICAgICB9CiAgICB9OwogICAgdGhyb3cgbmV3IFR5cGVFcnJvcihzID8gIk9iamVjdCBpcyBub3QgaXRlcmFibGUuIiA6ICJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7Cn1mdW5jdGlvbiBfdHNfYWRkX2Rpc3Bvc2FibGVfcmVzb3VyY2UoZW52LCB2YWx1ZSwgYXN5bmMpIHsKICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdm9pZCAwKSB7CiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gIm9iamVjdCIgJiYgdHlwZW9mIHZhbHVlICE9PSAiZnVuY3Rpb24iKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQuIik7CiAgICAgICAgdmFyIGRpc3Bvc2UsIGlubmVyOwogICAgICAgIGlmIChhc3luYykgewogICAgICAgICAgICBpZiAoIVN5bWJvbC5hc3luY0Rpc3Bvc2UpIHRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbC5hc3luY0Rpc3Bvc2UgaXMgbm90IGRlZmluZWQuIik7CiAgICAgICAgICAgIGRpc3Bvc2UgPSB2YWx1ZVtTeW1ib2wuYXN5bmNEaXNwb3NlXTsKICAgICAgICB9CiAgICAgICAgaWYgKGRpc3Bvc2UgPT09IHZvaWQgMCkgewogICAgICAgICAgICBpZiAoIVN5bWJvbC5kaXNwb3NlKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuZGlzcG9zZSBpcyBub3QgZGVmaW5lZC4iKTsKICAgICAgICAgICAgZGlzcG9zZSA9IHZhbHVlW1N5bWJvbC5kaXNwb3NlXTsKICAgICAgICAgICAgaWYgKGFzeW5jKSBpbm5lciA9IGRpc3Bvc2U7CiAgICAgICAgfQogICAgICAgIGlmICh0eXBlb2YgZGlzcG9zZSAhPT0gImZ1bmN0aW9uIikgdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IG5vdCBkaXNwb3NhYmxlLiIpOwogICAgICAgIGlmIChpbm5lcikgZGlzcG9zZSA9IGZ1bmN0aW9uICgpIHsgdHJ5IHsgaW5uZXIuY2FsbCh0aGlzKTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gUHJvbWlzZS5yZWplY3QoZSk7IH0gfTsKICAgICAgICBlbnYuc3RhY2sucHVzaCh7IHZhbHVlOiB2YWx1ZSwgZGlzcG9zZTogZGlzcG9zZSwgYXN5bmM6IGFzeW5jIH0pOwogICAgfQogICAgZWxzZSBpZiAoYXN5bmMpIHsKICAgICAgICBlbnYuc3RhY2sucHVzaCh7IGFzeW5jOiB0cnVlIH0pOwogICAgfQogICAgcmV0dXJuIHZhbHVlOwp9ZnVuY3Rpb24gX3RzX2Rpc3Bvc2VfcmVzb3VyY2VzKGVudikgewogICAgdmFyIF9TdXBwcmVzc2VkRXJyb3IgPSB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSAiZnVuY3Rpb24iID8gU3VwcHJlc3NlZEVycm9yIDogZnVuY3Rpb24gKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7CiAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7CiAgICAgICAgcmV0dXJuIGUubmFtZSA9ICJTdXBwcmVzc2VkRXJyb3IiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7CiAgICB9OwoKCiAgICByZXR1cm4gKF90c19kaXNwb3NlX3Jlc291cmNlcyA9IGZ1bmN0aW9uIF90c19kaXNwb3NlX3Jlc291cmNlcyhlbnYpIHsKICAgICAgICBmdW5jdGlvbiBmYWlsKGUpIHsKICAgICAgICAgICAgZW52LmVycm9yID0gZW52Lmhhc0Vycm9yID8gbmV3IF9TdXBwcmVzc2VkRXJyb3IoZSwgZW52LmVycm9yLCAiQW4gZXJyb3Igd2FzIHN1cHByZXNzZWQgZHVyaW5nIGRpc3Bvc2FsLiIpIDogZTsKICAgICAgICAgICAgZW52Lmhhc0Vycm9yID0gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgdmFyIHIsIHMgPSAwOwogICAgICAgIGZ1bmN0aW9uIG5leHQoKSB7CiAgICAgICAgICAgIHdoaWxlIChyID0gZW52LnN0YWNrLnBvcCgpKSB7CiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgIGlmICghci5hc3luYyAmJiBzID09PSAxKSByZXR1cm4gcyA9IDAsIGVudi5zdGFjay5wdXNoKHIpLCBQcm9taXNlLnJlc29sdmUoKS50aGVuKG5leHQpOwogICAgICAgICAgICAgICAgICAgIGlmIChyLmRpc3Bvc2UpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHIuZGlzcG9zZS5jYWxsKHIudmFsdWUpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoci5hc3luYykgcmV0dXJuIHMgfD0gMiwgUHJvbWlzZS5yZXNvbHZlKHJlc3VsdCkudGhlbihuZXh0LCBmdW5jdGlvbiAoZSkgeyBmYWlsKGUpOyByZXR1cm4gbmV4dCgpOyB9KTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSBzIHw9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgIGZhaWwoZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHMgPT09IDEpIHJldHVybiBlbnYuaGFzRXJyb3IgPyBQcm9taXNlLnJlamVjdChlbnYuZXJyb3IpIDogUHJvbWlzZS5yZXNvbHZlKCk7CiAgICAgICAgICAgIGlmIChlbnYuaGFzRXJyb3IpIHRocm93IGVudi5lcnJvcjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG5leHQoKTsKICAgIH0pKGVudik7Cn0vKiBAbWluVmVyc2lvbiA3LjIwLjAgKi8KCi8qKgogIEVudW1zIGFyZSB1c2VkIGluIHRoaXMgZmlsZSwgYnV0IG5vdCBhc3NpZ25lZCB0byB2YXJzIHRvIGF2b2lkIG5vbi1ob2lzdGFibGUgdmFsdWVzCgogIENPTlNUUlVDVE9SID0gMDsKICBQVUJMSUMgPSAxOwogIFBSSVZBVEUgPSAyOwoKICBGSUVMRCA9IDA7CiAgQUNDRVNTT1IgPSAxOwogIE1FVEhPRCA9IDI7CiAgR0VUVEVSID0gMzsKICBTRVRURVIgPSA0OwoKICBTVEFUSUMgPSA1OwoKICBDTEFTUyA9IDEwOyAvLyBvbmx5IHVzZWQgaW4gYXNzZXJ0VmFsaWRSZXR1cm5WYWx1ZQoqLwoKZnVuY3Rpb24gYXBwbHlEZWNzMjIwM1JGYWN0b3J5KCkgewogICAgZnVuY3Rpb24gY3JlYXRlQWRkSW5pdGlhbGl6ZXJNZXRob2QoaW5pdGlhbGl6ZXJzLCBkZWNvcmF0b3JGaW5pc2hlZFJlZikgewogICAgICAgIHJldHVybiBmdW5jdGlvbiBhZGRJbml0aWFsaXplcihpbml0aWFsaXplcikgewogICAgICAgICAgICBhc3NlcnROb3RGaW5pc2hlZChkZWNvcmF0b3JGaW5pc2hlZFJlZiwgImFkZEluaXRpYWxpemVyIik7CiAgICAgICAgICAgIGFzc2VydENhbGxhYmxlKGluaXRpYWxpemVyLCAiQW4gaW5pdGlhbGl6ZXIiKTsKICAgICAgICAgICAgaW5pdGlhbGl6ZXJzLnB1c2goaW5pdGlhbGl6ZXIpOwogICAgICAgIH07CiAgICB9CgogICAgZnVuY3Rpb24gbWVtYmVyRGVjKAogICAgICAgIGRlYywKICAgICAgICBuYW1lLAogICAgICAgIGRlc2MsCiAgICAgICAgaW5pdGlhbGl6ZXJzLAogICAgICAgIGtpbmQsCiAgICAgICAgaXNTdGF0aWMsCiAgICAgICAgaXNQcml2YXRlLAogICAgICAgIG1ldGFkYXRhLAogICAgICAgIHZhbHVlCiAgICApIHsKICAgICAgICB2YXIga2luZFN0cjsKCiAgICAgICAgc3dpdGNoIChraW5kKSB7CiAgICAgICAgICAgIGNhc2UgMSAvKiBBQ0NFU1NPUiAqLzoKICAgICAgICAgICAgICAgIGtpbmRTdHIgPSAiYWNjZXNzb3IiOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMiAvKiBNRVRIT0QgKi86CiAgICAgICAgICAgICAgICBraW5kU3RyID0gIm1ldGhvZCI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAzIC8qIEdFVFRFUiAqLzoKICAgICAgICAgICAgICAgIGtpbmRTdHIgPSAiZ2V0dGVyIjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDQgLyogU0VUVEVSICovOgogICAgICAgICAgICAgICAga2luZFN0ciA9ICJzZXR0ZXIiOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBraW5kU3RyID0gImZpZWxkIjsKICAgICAgICB9CgogICAgICAgIHZhciBjdHggPSB7CiAgICAgICAgICAgIGtpbmQ6IGtpbmRTdHIsCiAgICAgICAgICAgIG5hbWU6IGlzUHJpdmF0ZSA/ICIjIiArIG5hbWUgOiBuYW1lLAogICAgICAgICAgICBzdGF0aWM6IGlzU3RhdGljLAogICAgICAgICAgICBwcml2YXRlOiBpc1ByaXZhdGUsCiAgICAgICAgICAgIG1ldGFkYXRhOiBtZXRhZGF0YSwKICAgICAgICB9OwoKICAgICAgICB2YXIgZGVjb3JhdG9yRmluaXNoZWRSZWYgPSB7IHY6IGZhbHNlIH07CgogICAgICAgIGN0eC5hZGRJbml0aWFsaXplciA9IGNyZWF0ZUFkZEluaXRpYWxpemVyTWV0aG9kKAogICAgICAgICAgICBpbml0aWFsaXplcnMsCiAgICAgICAgICAgIGRlY29yYXRvckZpbmlzaGVkUmVmCiAgICAgICAgKTsKCiAgICAgICAgdmFyIGdldCwgc2V0OwogICAgICAgIGlmIChraW5kID09PSAwIC8qIEZJRUxEICovKSB7CiAgICAgICAgICAgIGlmIChpc1ByaXZhdGUpIHsKICAgICAgICAgICAgICAgIGdldCA9IGRlc2MuZ2V0OwogICAgICAgICAgICAgICAgc2V0ID0gZGVzYy5zZXQ7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBnZXQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXNbbmFtZV07CiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgc2V0ID0gZnVuY3Rpb24gKHYpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzW25hbWVdID0gdjsKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKGtpbmQgPT09IDIgLyogTUVUSE9EICovKSB7CiAgICAgICAgICAgIGdldCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiBkZXNjLnZhbHVlOwogICAgICAgICAgICB9OwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIC8vIHJlcGxhY2Ugd2l0aCB2YWx1ZXMgdGhhdCB3aWxsIGdvIHRocm91Z2ggdGhlIGZpbmFsIGdldHRlciBhbmQgc2V0dGVyCiAgICAgICAgICAgIGlmIChraW5kID09PSAxIC8qIEFDQ0VTU09SICovIHx8IGtpbmQgPT09IDMgLyogR0VUVEVSICovKSB7CiAgICAgICAgICAgICAgICBnZXQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRlc2MuZ2V0LmNhbGwodGhpcyk7CiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoa2luZCA9PT0gMSAvKiBBQ0NFU1NPUiAqLyB8fCBraW5kID09PSA0IC8qIFNFVFRFUiAqLykgewogICAgICAgICAgICAgICAgc2V0ID0gZnVuY3Rpb24gKHYpIHsKICAgICAgICAgICAgICAgICAgICBkZXNjLnNldC5jYWxsKHRoaXMsIHYpOwogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjdHguYWNjZXNzID0KICAgICAgICAgICAgZ2V0ICYmIHNldCA/IHsgZ2V0OiBnZXQsIHNldDogc2V0IH0gOiBnZXQgPyB7IGdldDogZ2V0IH0gOiB7IHNldDogc2V0IH07CgogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBkZWModmFsdWUsIGN0eCk7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgZGVjb3JhdG9yRmluaXNoZWRSZWYudiA9IHRydWU7CiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGFzc2VydE5vdEZpbmlzaGVkKGRlY29yYXRvckZpbmlzaGVkUmVmLCBmbk5hbWUpIHsKICAgICAgICBpZiAoZGVjb3JhdG9yRmluaXNoZWRSZWYudikgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoCiAgICAgICAgICAgICAgICAiYXR0ZW1wdGVkIHRvIGNhbGwgIiArIGZuTmFtZSArICIgYWZ0ZXIgZGVjb3JhdGlvbiB3YXMgZmluaXNoZWQiCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGFzc2VydENhbGxhYmxlKGZuLCBoaW50KSB7CiAgICAgICAgaWYgKHR5cGVvZiBmbiAhPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGhpbnQgKyAiIG11c3QgYmUgYSBmdW5jdGlvbiIpOwogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBhc3NlcnRWYWxpZFJldHVyblZhbHVlKGtpbmQsIHZhbHVlKSB7CiAgICAgICAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7CgogICAgICAgIGlmIChraW5kID09PSAxIC8qIEFDQ0VTU09SICovKSB7CiAgICAgICAgICAgIGlmICh0eXBlICE9PSAib2JqZWN0IiB8fCB2YWx1ZSA9PT0gbnVsbCkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigKICAgICAgICAgICAgICAgICAgICAiYWNjZXNzb3IgZGVjb3JhdG9ycyBtdXN0IHJldHVybiBhbiBvYmplY3Qgd2l0aCBnZXQsIHNldCwgb3IgaW5pdCBwcm9wZXJ0aWVzIG9yIHZvaWQgMCIKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHZhbHVlLmdldCAhPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICBhc3NlcnRDYWxsYWJsZSh2YWx1ZS5nZXQsICJhY2Nlc3Nvci5nZXQiKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAodmFsdWUuc2V0ICE9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgIGFzc2VydENhbGxhYmxlKHZhbHVlLnNldCwgImFjY2Vzc29yLnNldCIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICh2YWx1ZS5pbml0ICE9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgIGFzc2VydENhbGxhYmxlKHZhbHVlLmluaXQsICJhY2Nlc3Nvci5pbml0Iik7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKHR5cGUgIT09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgdmFyIGhpbnQ7CiAgICAgICAgICAgIGlmIChraW5kID09PSAwIC8qIEZJRUxEICovKSB7CiAgICAgICAgICAgICAgICBoaW50ID0gImZpZWxkIjsKICAgICAgICAgICAgfSBlbHNlIGlmIChraW5kID09PSAxMCAvKiBDTEFTUyAqLykgewogICAgICAgICAgICAgICAgaGludCA9ICJjbGFzcyI7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBoaW50ID0gIm1ldGhvZCI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigKICAgICAgICAgICAgICAgIGhpbnQgKyAiIGRlY29yYXRvcnMgbXVzdCByZXR1cm4gYSBmdW5jdGlvbiBvciB2b2lkIDAiCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGFwcGx5TWVtYmVyRGVjKAogICAgICAgIHJldCwKICAgICAgICBiYXNlLAogICAgICAgIGRlY0luZm8sCiAgICAgICAgbmFtZSwKICAgICAgICBraW5kLAogICAgICAgIGlzU3RhdGljLAogICAgICAgIGlzUHJpdmF0ZSwKICAgICAgICBpbml0aWFsaXplcnMsCiAgICAgICAgbWV0YWRhdGEKICAgICkgewogICAgICAgIHZhciBkZWNzID0gZGVjSW5mb1swXTsKCiAgICAgICAgdmFyIGRlc2MsIGluaXQsIHZhbHVlOwoKICAgICAgICBpZiAoaXNQcml2YXRlKSB7CiAgICAgICAgICAgIGlmIChraW5kID09PSAwIC8qIEZJRUxEICovIHx8IGtpbmQgPT09IDEgLyogQUNDRVNTT1IgKi8pIHsKICAgICAgICAgICAgICAgIGRlc2MgPSB7CiAgICAgICAgICAgICAgICAgICAgZ2V0OiBkZWNJbmZvWzNdLAogICAgICAgICAgICAgICAgICAgIHNldDogZGVjSW5mb1s0XSwKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0gZWxzZSBpZiAoa2luZCA9PT0gMyAvKiBHRVRURVIgKi8pIHsKICAgICAgICAgICAgICAgIGRlc2MgPSB7CiAgICAgICAgICAgICAgICAgICAgZ2V0OiBkZWNJbmZvWzNdLAogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfSBlbHNlIGlmIChraW5kID09PSA0IC8qIFNFVFRFUiAqLykgewogICAgICAgICAgICAgICAgZGVzYyA9IHsKICAgICAgICAgICAgICAgICAgICBzZXQ6IGRlY0luZm9bM10sCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgZGVzYyA9IHsKICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZGVjSW5mb1szXSwKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKGtpbmQgIT09IDAgLyogRklFTEQgKi8pIHsKICAgICAgICAgICAgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYmFzZSwgbmFtZSk7CiAgICAgICAgfQoKICAgICAgICBpZiAoa2luZCA9PT0gMSAvKiBBQ0NFU1NPUiAqLykgewogICAgICAgICAgICB2YWx1ZSA9IHsKICAgICAgICAgICAgICAgIGdldDogZGVzYy5nZXQsCiAgICAgICAgICAgICAgICBzZXQ6IGRlc2Muc2V0LAogICAgICAgICAgICB9OwogICAgICAgIH0gZWxzZSBpZiAoa2luZCA9PT0gMiAvKiBNRVRIT0QgKi8pIHsKICAgICAgICAgICAgdmFsdWUgPSBkZXNjLnZhbHVlOwogICAgICAgIH0gZWxzZSBpZiAoa2luZCA9PT0gMyAvKiBHRVRURVIgKi8pIHsKICAgICAgICAgICAgdmFsdWUgPSBkZXNjLmdldDsKICAgICAgICB9IGVsc2UgaWYgKGtpbmQgPT09IDQgLyogU0VUVEVSICovKSB7CiAgICAgICAgICAgIHZhbHVlID0gZGVzYy5zZXQ7CiAgICAgICAgfQoKICAgICAgICB2YXIgbmV3VmFsdWUsIGdldCwgc2V0OwoKICAgICAgICBpZiAodHlwZW9mIGRlY3MgPT09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgbmV3VmFsdWUgPSBtZW1iZXJEZWMoCiAgICAgICAgICAgICAgICBkZWNzLAogICAgICAgICAgICAgICAgbmFtZSwKICAgICAgICAgICAgICAgIGRlc2MsCiAgICAgICAgICAgICAgICBpbml0aWFsaXplcnMsCiAgICAgICAgICAgICAgICBraW5kLAogICAgICAgICAgICAgICAgaXNTdGF0aWMsCiAgICAgICAgICAgICAgICBpc1ByaXZhdGUsCiAgICAgICAgICAgICAgICBtZXRhZGF0YSwKICAgICAgICAgICAgICAgIHZhbHVlCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAobmV3VmFsdWUgIT09IHZvaWQgMCkgewogICAgICAgICAgICAgICAgYXNzZXJ0VmFsaWRSZXR1cm5WYWx1ZShraW5kLCBuZXdWYWx1ZSk7CgogICAgICAgICAgICAgICAgaWYgKGtpbmQgPT09IDAgLyogRklFTEQgKi8pIHsKICAgICAgICAgICAgICAgICAgICBpbml0ID0gbmV3VmFsdWU7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGtpbmQgPT09IDEgLyogQUNDRVNTT1IgKi8pIHsKICAgICAgICAgICAgICAgICAgICBpbml0ID0gbmV3VmFsdWUuaW5pdDsKICAgICAgICAgICAgICAgICAgICBnZXQgPSBuZXdWYWx1ZS5nZXQgfHwgdmFsdWUuZ2V0OwogICAgICAgICAgICAgICAgICAgIHNldCA9IG5ld1ZhbHVlLnNldCB8fCB2YWx1ZS5zZXQ7CgogICAgICAgICAgICAgICAgICAgIHZhbHVlID0geyBnZXQ6IGdldCwgc2V0OiBzZXQgfTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBuZXdWYWx1ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGZvciAodmFyIGkgPSBkZWNzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgICAgICAgICB2YXIgZGVjID0gZGVjc1tpXTsKCiAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IG1lbWJlckRlYygKICAgICAgICAgICAgICAgICAgICBkZWMsCiAgICAgICAgICAgICAgICAgICAgbmFtZSwKICAgICAgICAgICAgICAgICAgICBkZXNjLAogICAgICAgICAgICAgICAgICAgIGluaXRpYWxpemVycywKICAgICAgICAgICAgICAgICAgICBraW5kLAogICAgICAgICAgICAgICAgICAgIGlzU3RhdGljLAogICAgICAgICAgICAgICAgICAgIGlzUHJpdmF0ZSwKICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YSwKICAgICAgICAgICAgICAgICAgICB2YWx1ZQogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBpZiAobmV3VmFsdWUgIT09IHZvaWQgMCkgewogICAgICAgICAgICAgICAgICAgIGFzc2VydFZhbGlkUmV0dXJuVmFsdWUoa2luZCwgbmV3VmFsdWUpOwogICAgICAgICAgICAgICAgICAgIHZhciBuZXdJbml0OwoKICAgICAgICAgICAgICAgICAgICBpZiAoa2luZCA9PT0gMCAvKiBGSUVMRCAqLykgewogICAgICAgICAgICAgICAgICAgICAgICBuZXdJbml0ID0gbmV3VmFsdWU7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChraW5kID09PSAxIC8qIEFDQ0VTU09SICovKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG5ld0luaXQgPSBuZXdWYWx1ZS5pbml0OwogICAgICAgICAgICAgICAgICAgICAgICBnZXQgPSBuZXdWYWx1ZS5nZXQgfHwgdmFsdWUuZ2V0OwogICAgICAgICAgICAgICAgICAgICAgICBzZXQgPSBuZXdWYWx1ZS5zZXQgfHwgdmFsdWUuc2V0OwoKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB7IGdldDogZ2V0LCBzZXQ6IHNldCB9OwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gbmV3VmFsdWU7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBpZiAobmV3SW5pdCAhPT0gdm9pZCAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbml0ID09PSB2b2lkIDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXQgPSBuZXdJbml0OwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBpbml0ID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0ID0gW2luaXQsIG5ld0luaXRdOwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdC5wdXNoKG5ld0luaXQpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoa2luZCA9PT0gMCAvKiBGSUVMRCAqLyB8fCBraW5kID09PSAxIC8qIEFDQ0VTU09SICovKSB7CiAgICAgICAgICAgIGlmIChpbml0ID09PSB2b2lkIDApIHsKICAgICAgICAgICAgICAgIC8vIElmIHRoZSBpbml0aWFsaXplciB3YXMgdm9pZCAwLCBzdWIgaW4gYSBkdW1teSBpbml0aWFsaXplcgogICAgICAgICAgICAgICAgaW5pdCA9IGZ1bmN0aW9uIChpbnN0YW5jZSwgaW5pdCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBpbml0OwogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgaW5pdCAhPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICAgICAgdmFyIG93bkluaXRpYWxpemVycyA9IGluaXQ7CgogICAgICAgICAgICAgICAgaW5pdCA9IGZ1bmN0aW9uIChpbnN0YW5jZSwgaW5pdCkgewogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGluaXQ7CgogICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb3duSW5pdGlhbGl6ZXJzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gb3duSW5pdGlhbGl6ZXJzW2ldLmNhbGwoaW5zdGFuY2UsIHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB2YXIgb3JpZ2luYWxJbml0aWFsaXplciA9IGluaXQ7CgogICAgICAgICAgICAgICAgaW5pdCA9IGZ1bmN0aW9uIChpbnN0YW5jZSwgaW5pdCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBvcmlnaW5hbEluaXRpYWxpemVyLmNhbGwoaW5zdGFuY2UsIGluaXQpOwogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0LnB1c2goaW5pdCk7CiAgICAgICAgfQoKICAgICAgICBpZiAoa2luZCAhPT0gMCAvKiBGSUVMRCAqLykgewogICAgICAgICAgICBpZiAoa2luZCA9PT0gMSAvKiBBQ0NFU1NPUiAqLykgewogICAgICAgICAgICAgICAgZGVzYy5nZXQgPSB2YWx1ZS5nZXQ7CiAgICAgICAgICAgICAgICBkZXNjLnNldCA9IHZhbHVlLnNldDsKICAgICAgICAgICAgfSBlbHNlIGlmIChraW5kID09PSAyIC8qIE1FVEhPRCAqLykgewogICAgICAgICAgICAgICAgZGVzYy52YWx1ZSA9IHZhbHVlOwogICAgICAgICAgICB9IGVsc2UgaWYgKGtpbmQgPT09IDMgLyogR0VUVEVSICovKSB7CiAgICAgICAgICAgICAgICBkZXNjLmdldCA9IHZhbHVlOwogICAgICAgICAgICB9IGVsc2UgaWYgKGtpbmQgPT09IDQgLyogU0VUVEVSICovKSB7CiAgICAgICAgICAgICAgICBkZXNjLnNldCA9IHZhbHVlOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoaXNQcml2YXRlKSB7CiAgICAgICAgICAgICAgICBpZiAoa2luZCA9PT0gMSAvKiBBQ0NFU1NPUiAqLykgewogICAgICAgICAgICAgICAgICAgIHJldC5wdXNoKGZ1bmN0aW9uIChpbnN0YW5jZSwgYXJncykgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuZ2V0LmNhbGwoaW5zdGFuY2UsIGFyZ3MpOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIHJldC5wdXNoKGZ1bmN0aW9uIChpbnN0YW5jZSwgYXJncykgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuc2V0LmNhbGwoaW5zdGFuY2UsIGFyZ3MpOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChraW5kID09PSAyIC8qIE1FVEhPRCAqLykgewogICAgICAgICAgICAgICAgICAgIHJldC5wdXNoKHZhbHVlKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgcmV0LnB1c2goZnVuY3Rpb24gKGluc3RhbmNlLCBhcmdzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS5jYWxsKGluc3RhbmNlLCBhcmdzKTsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShiYXNlLCBuYW1lLCBkZXNjKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBhcHBseU1lbWJlckRlY3MoQ2xhc3MsIGRlY0luZm9zLCBtZXRhZGF0YSkgewogICAgICAgIHZhciByZXQgPSBbXTsKICAgICAgICB2YXIgcHJvdG9Jbml0aWFsaXplcnM7CiAgICAgICAgdmFyIHN0YXRpY0luaXRpYWxpemVyczsKCiAgICAgICAgdmFyIGV4aXN0aW5nUHJvdG9Ob25GaWVsZHMgPSBuZXcgTWFwKCk7CiAgICAgICAgdmFyIGV4aXN0aW5nU3RhdGljTm9uRmllbGRzID0gbmV3IE1hcCgpOwoKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRlY0luZm9zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHZhciBkZWNJbmZvID0gZGVjSW5mb3NbaV07CgogICAgICAgICAgICAvLyBza2lwIGNvbXB1dGVkIHByb3BlcnR5IG5hbWVzCiAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShkZWNJbmZvKSkgY29udGludWU7CgogICAgICAgICAgICB2YXIga2luZCA9IGRlY0luZm9bMV07CiAgICAgICAgICAgIHZhciBuYW1lID0gZGVjSW5mb1syXTsKICAgICAgICAgICAgdmFyIGlzUHJpdmF0ZSA9IGRlY0luZm8ubGVuZ3RoID4gMzsKCiAgICAgICAgICAgIHZhciBpc1N0YXRpYyA9IGtpbmQgPj0gNTsgLyogU1RBVElDICovCiAgICAgICAgICAgIHZhciBiYXNlOwogICAgICAgICAgICB2YXIgaW5pdGlhbGl6ZXJzOwoKICAgICAgICAgICAgaWYgKGlzU3RhdGljKSB7CiAgICAgICAgICAgICAgICBiYXNlID0gQ2xhc3M7CiAgICAgICAgICAgICAgICBraW5kID0ga2luZCAtIDUgLyogU1RBVElDICovOwogICAgICAgICAgICAgICAgLy8gaW5pdGlhbGl6ZSBzdGF0aWNJbml0aWFsaXplcnMgd2hlbiB3ZSBzZWUgYSBub24tZmllbGQgc3RhdGljIG1lbWJlcgogICAgICAgICAgICAgICAgc3RhdGljSW5pdGlhbGl6ZXJzID0gc3RhdGljSW5pdGlhbGl6ZXJzIHx8IFtdOwogICAgICAgICAgICAgICAgaW5pdGlhbGl6ZXJzID0gc3RhdGljSW5pdGlhbGl6ZXJzOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgYmFzZSA9IENsYXNzLnByb3RvdHlwZTsKICAgICAgICAgICAgICAgIC8vIGluaXRpYWxpemUgcHJvdG9Jbml0aWFsaXplcnMgd2hlbiB3ZSBzZWUgYSBub24tZmllbGQgbWVtYmVyCiAgICAgICAgICAgICAgICBwcm90b0luaXRpYWxpemVycyA9IHByb3RvSW5pdGlhbGl6ZXJzIHx8IFtdOwogICAgICAgICAgICAgICAgaW5pdGlhbGl6ZXJzID0gcHJvdG9Jbml0aWFsaXplcnM7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChraW5kICE9PSAwIC8qIEZJRUxEICovICYmICFpc1ByaXZhdGUpIHsKICAgICAgICAgICAgICAgIHZhciBleGlzdGluZ05vbkZpZWxkcyA9IGlzU3RhdGljCiAgICAgICAgICAgICAgICAgICAgPyBleGlzdGluZ1N0YXRpY05vbkZpZWxkcwogICAgICAgICAgICAgICAgICAgIDogZXhpc3RpbmdQcm90b05vbkZpZWxkczsKCiAgICAgICAgICAgICAgICB2YXIgZXhpc3RpbmdLaW5kID0gZXhpc3RpbmdOb25GaWVsZHMuZ2V0KG5hbWUpIHx8IDA7CgogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nS2luZCA9PT0gdHJ1ZSB8fAogICAgICAgICAgICAgICAgICAgIChleGlzdGluZ0tpbmQgPT09IDMgLyogR0VUVEVSICovICYmIGtpbmQgIT09IDQpIC8qIFNFVFRFUiAqLyB8fAogICAgICAgICAgICAgICAgICAgIChleGlzdGluZ0tpbmQgPT09IDQgLyogU0VUVEVSICovICYmIGtpbmQgIT09IDMpIC8qIEdFVFRFUiAqLwogICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKAogICAgICAgICAgICAgICAgICAgICAgICAiQXR0ZW1wdGVkIHRvIGRlY29yYXRlIGEgcHVibGljIG1ldGhvZC9hY2Nlc3NvciB0aGF0IGhhcyB0aGUgc2FtZSBuYW1lIGFzIGEgcHJldmlvdXNseSBkZWNvcmF0ZWQgcHVibGljIG1ldGhvZC9hY2Nlc3Nvci4gVGhpcyBpcyBub3QgY3VycmVudGx5IHN1cHBvcnRlZCBieSB0aGUgZGVjb3JhdG9ycyBwbHVnaW4uIFByb3BlcnR5IG5hbWUgd2FzOiAiICsKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZQogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFleGlzdGluZ0tpbmQgJiYga2luZCA+IDIgLyogTUVUSE9EICovKSB7CiAgICAgICAgICAgICAgICAgICAgZXhpc3RpbmdOb25GaWVsZHMuc2V0KG5hbWUsIGtpbmQpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBleGlzdGluZ05vbkZpZWxkcy5zZXQobmFtZSwgdHJ1ZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGFwcGx5TWVtYmVyRGVjKAogICAgICAgICAgICAgICAgcmV0LAogICAgICAgICAgICAgICAgYmFzZSwKICAgICAgICAgICAgICAgIGRlY0luZm8sCiAgICAgICAgICAgICAgICBuYW1lLAogICAgICAgICAgICAgICAga2luZCwKICAgICAgICAgICAgICAgIGlzU3RhdGljLAogICAgICAgICAgICAgICAgaXNQcml2YXRlLAogICAgICAgICAgICAgICAgaW5pdGlhbGl6ZXJzLAogICAgICAgICAgICAgICAgbWV0YWRhdGEKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIHB1c2hJbml0aWFsaXplcnMocmV0LCBwcm90b0luaXRpYWxpemVycyk7CiAgICAgICAgcHVzaEluaXRpYWxpemVycyhyZXQsIHN0YXRpY0luaXRpYWxpemVycyk7CiAgICAgICAgcmV0dXJuIHJldDsKICAgIH0KCiAgICBmdW5jdGlvbiBwdXNoSW5pdGlhbGl6ZXJzKHJldCwgaW5pdGlhbGl6ZXJzKSB7CiAgICAgICAgaWYgKGluaXRpYWxpemVycykgewogICAgICAgICAgICByZXQucHVzaChmdW5jdGlvbiAoaW5zdGFuY2UpIHsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5pdGlhbGl6ZXJzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgaW5pdGlhbGl6ZXJzW2ldLmNhbGwoaW5zdGFuY2UpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlOwogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gYXBwbHlDbGFzc0RlY3ModGFyZ2V0Q2xhc3MsIGNsYXNzRGVjcywgbWV0YWRhdGEpIHsKICAgICAgICBpZiAoY2xhc3NEZWNzLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgdmFyIGluaXRpYWxpemVycyA9IFtdOwogICAgICAgICAgICB2YXIgbmV3Q2xhc3MgPSB0YXJnZXRDbGFzczsKICAgICAgICAgICAgdmFyIG5hbWUgPSB0YXJnZXRDbGFzcy5uYW1lOwoKICAgICAgICAgICAgZm9yICh2YXIgaSA9IGNsYXNzRGVjcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgewogICAgICAgICAgICAgICAgdmFyIGRlY29yYXRvckZpbmlzaGVkUmVmID0geyB2OiBmYWxzZSB9OwoKICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIG5leHROZXdDbGFzcyA9IGNsYXNzRGVjc1tpXShuZXdDbGFzcywgewogICAgICAgICAgICAgICAgICAgICAgICBraW5kOiAiY2xhc3MiLAogICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICBhZGRJbml0aWFsaXplcjogY3JlYXRlQWRkSW5pdGlhbGl6ZXJNZXRob2QoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsaXplcnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNvcmF0b3JGaW5pc2hlZFJlZgogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YSwKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgICAgICAgZGVjb3JhdG9yRmluaXNoZWRSZWYudiA9IHRydWU7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKG5leHROZXdDbGFzcyAhPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgYXNzZXJ0VmFsaWRSZXR1cm5WYWx1ZSgxMCAvKiBDTEFTUyAqLywgbmV4dE5ld0NsYXNzKTsKICAgICAgICAgICAgICAgICAgICBuZXdDbGFzcyA9IG5leHROZXdDbGFzczsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgICAgIGRlZmluZU1ldGFkYXRhKG5ld0NsYXNzLCBtZXRhZGF0YSksCiAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbml0aWFsaXplcnMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbGl6ZXJzW2ldLmNhbGwobmV3Q2xhc3MpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIF07CiAgICAgICAgfQogICAgICAgIC8vIFRoZSB0cmFuc2Zvcm1lciB3aWxsIG5vdCBlbWl0IGFzc2lnbm1lbnQgd2hlbiB0aGVyZSBhcmUgbm8gY2xhc3MgZGVjb3JhdG9ycywKICAgICAgICAvLyBzbyB3ZSBkb24ndCBoYXZlIHRvIHJldHVybiBhbiBlbXB0eSBhcnJheSBoZXJlLgogICAgfQoKICAgIGZ1bmN0aW9uIGRlZmluZU1ldGFkYXRhKENsYXNzLCBtZXRhZGF0YSkgewogICAgICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoCiAgICAgICAgICAgIENsYXNzLAogICAgICAgICAgICBTeW1ib2wubWV0YWRhdGEgfHwgU3ltYm9sLmZvcigiU3ltYm9sLm1ldGFkYXRhIiksCiAgICAgICAgICAgIHsgY29uZmlndXJhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogbWV0YWRhdGEgfQogICAgICAgICk7CiAgICB9CgogICAgLyoqCiAgICBCYXNpYyB1c2FnZToKICAKICAgIGFwcGx5RGVjcygKICAgICAgQ2xhc3MsCiAgICAgIFsKICAgICAgICAvLyBtZW1iZXIgZGVjb3JhdG9ycwogICAgICAgIFsKICAgICAgICAgIGRlYywgICAgICAgICAgICAgICAgLy8gZGVjIG9yIGFycmF5IG9mIGRlY3MKICAgICAgICAgIDAsICAgICAgICAgICAgICAgICAgLy8ga2luZCBvZiB2YWx1ZSBiZWluZyBkZWNvcmF0ZWQKICAgICAgICAgICdwcm9wJywgICAgICAgICAgICAgLy8gbmFtZSBvZiBwdWJsaWMgcHJvcCBvbiBjbGFzcyBjb250YWluaW5nIHRoZSB2YWx1ZSBiZWluZyBkZWNvcmF0ZWQsCiAgICAgICAgICAnI3AnLCAgICAgICAgICAgICAgIC8vIHRoZSBuYW1lIG9mIHRoZSBwcml2YXRlIHByb3BlcnR5IChpZiBpcyBwcml2YXRlLCB2b2lkIDAgb3RoZXJ3aXNlKSwKICAgICAgICBdCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAvLyBjbGFzcyBkZWNvcmF0b3JzCiAgICAgICAgZGVjMSwgZGVjMgogICAgICBdCiAgICApCiAgICBgYGAKICAKICAgIEZ1bGx5IHRyYW5zcGlsZWQgZXhhbXBsZToKICAKICAgIGBgYGpzCiAgICBAZGVjCiAgICBjbGFzcyBDbGFzcyB7CiAgICAgIEBkZWMKICAgICAgYSA9IDEyMzsKICAKICAgICAgQGRlYwogICAgICAjYSA9IDEyMzsKICAKICAgICAgQGRlYwogICAgICBAZGVjMgogICAgICBhY2Nlc3NvciBiID0gMTIzOwogIAogICAgICBAZGVjCiAgICAgIGFjY2Vzc29yICNiID0gMTIzOwogIAogICAgICBAZGVjCiAgICAgIGMoKSB7IGNvbnNvbGUubG9nKCdjJyk7IH0KICAKICAgICAgQGRlYwogICAgICAjYygpIHsgY29uc29sZS5sb2coJ3ByaXZDJyk7IH0KICAKICAgICAgQGRlYwogICAgICBnZXQgZCgpIHsgY29uc29sZS5sb2coJ2QnKTsgfQogIAogICAgICBAZGVjCiAgICAgIGdldCAjZCgpIHsgY29uc29sZS5sb2coJ3ByaXZEJyk7IH0KICAKICAgICAgQGRlYwogICAgICBzZXQgZSh2KSB7IGNvbnNvbGUubG9nKCdlJyk7IH0KICAKICAgICAgQGRlYwogICAgICBzZXQgI2UodikgeyBjb25zb2xlLmxvZygncHJpdkUnKTsgfQogICAgfQogIAogIAogICAgLy8gYmVjb21lcwogICAgbGV0IGluaXRpYWxpemVJbnN0YW5jZTsKICAgIGxldCBpbml0aWFsaXplQ2xhc3M7CiAgCiAgICBsZXQgaW5pdEE7CiAgICBsZXQgaW5pdFByaXZBOwogIAogICAgbGV0IGluaXRCOwogICAgbGV0IGluaXRQcml2QiwgZ2V0UHJpdkIsIHNldFByaXZCOwogIAogICAgbGV0IHByaXZDOwogICAgbGV0IHByaXZEOwogICAgbGV0IHByaXZFOwogIAogICAgbGV0IENsYXNzOwogICAgY2xhc3MgX0NsYXNzIHsKICAgICAgc3RhdGljIHsKICAgICAgICBsZXQgcmV0ID0gYXBwbHlEZWNzKAogICAgICAgICAgdGhpcywKICAgICAgICAgIFsKICAgICAgICAgICAgW2RlYywgMCwgJ2EnXSwKICAgICAgICAgICAgW2RlYywgMCwgJ2EnLCAoaSkgPT4gaS4jYSwgKGksIHYpID0+IGkuI2EgPSB2XSwKICAgICAgICAgICAgW1tkZWMsIGRlYzJdLCAxLCAnYiddLAogICAgICAgICAgICBbZGVjLCAxLCAnYicsIChpKSA9PiBpLiNwcml2QkRhdGEsIChpLCB2KSA9PiBpLiNwcml2QkRhdGEgPSB2XSwKICAgICAgICAgICAgW2RlYywgMiwgJ2MnXSwKICAgICAgICAgICAgW2RlYywgMiwgJ2MnLCAoKSA9PiBjb25zb2xlLmxvZygncHJpdkMnKV0sCiAgICAgICAgICAgIFtkZWMsIDMsICdkJ10sCiAgICAgICAgICAgIFtkZWMsIDMsICdkJywgKCkgPT4gY29uc29sZS5sb2coJ3ByaXZEJyldLAogICAgICAgICAgICBbZGVjLCA0LCAnZSddLAogICAgICAgICAgICBbZGVjLCA0LCAnZScsICgpID0+IGNvbnNvbGUubG9nKCdwcml2RScpXSwKICAgICAgICAgIF0sCiAgICAgICAgICBbCiAgICAgICAgICAgIGRlYwogICAgICAgICAgXQogICAgICAgICkKICAKICAgICAgICBpbml0QSA9IHJldFswXTsKICAKICAgICAgICBpbml0UHJpdkEgPSByZXRbMV07CiAgCiAgICAgICAgaW5pdEIgPSByZXRbMl07CiAgCiAgICAgICAgaW5pdFByaXZCID0gcmV0WzNdOwogICAgICAgIGdldFByaXZCID0gcmV0WzRdOwogICAgICAgIHNldFByaXZCID0gcmV0WzVdOwogIAogICAgICAgIHByaXZDID0gcmV0WzZdOwogIAogICAgICAgIHByaXZEID0gcmV0WzddOwogIAogICAgICAgIHByaXZFID0gcmV0WzhdOwogIAogICAgICAgIGluaXRpYWxpemVJbnN0YW5jZSA9IHJldFs5XTsKICAKICAgICAgICBDbGFzcyA9IHJldFsxMF0KICAKICAgICAgICBpbml0aWFsaXplQ2xhc3MgPSByZXRbMTFdOwogICAgICB9CiAgCiAgICAgIGEgPSAoaW5pdGlhbGl6ZUluc3RhbmNlKHRoaXMpLCBpbml0QSh0aGlzLCAxMjMpKTsKICAKICAgICAgI2EgPSBpbml0UHJpdkEodGhpcywgMTIzKTsKICAKICAgICAgI2JEYXRhID0gaW5pdEIodGhpcywgMTIzKTsKICAgICAgZ2V0IGIoKSB7IHJldHVybiB0aGlzLiNiRGF0YSB9CiAgICAgIHNldCBiKHYpIHsgdGhpcy4jYkRhdGEgPSB2IH0KICAKICAgICAgI3ByaXZCRGF0YSA9IGluaXRQcml2Qih0aGlzLCAxMjMpOwogICAgICBnZXQgI2IoKSB7IHJldHVybiBnZXRQcml2Qih0aGlzKTsgfQogICAgICBzZXQgI2IodikgeyBzZXRQcml2Qih0aGlzLCB2KTsgfQogIAogICAgICBjKCkgeyBjb25zb2xlLmxvZygnYycpOyB9CiAgCiAgICAgICNjKC4uLmFyZ3MpIHsgcmV0dXJuIHByaXZDKHRoaXMsIC4uLmFyZ3MpIH0KICAKICAgICAgZ2V0IGQoKSB7IGNvbnNvbGUubG9nKCdkJyk7IH0KICAKICAgICAgZ2V0ICNkKCkgeyByZXR1cm4gcHJpdkQodGhpcyk7IH0KICAKICAgICAgc2V0IGUodikgeyBjb25zb2xlLmxvZygnZScpOyB9CiAgCiAgICAgIHNldCAjZSh2KSB7IHByaXZFKHRoaXMsIHYpOyB9CiAgICB9CiAgCiAgICBpbml0aWFsaXplQ2xhc3MoQ2xhc3MpOwogICAqLwoKICAgIHJldHVybiBmdW5jdGlvbiBhcHBseURlY3MyMjAzUih0YXJnZXRDbGFzcywgbWVtYmVyRGVjcywgY2xhc3NEZWNzLCBwYXJlbnRDbGFzcykgewogICAgICAgIGlmIChwYXJlbnRDbGFzcyAhPT0gdm9pZCAwKSB7CiAgICAgICAgICAgIHZhciBwYXJlbnRNZXRhZGF0YSA9CiAgICAgICAgICAgICAgICBwYXJlbnRDbGFzc1tTeW1ib2wubWV0YWRhdGEgfHwgU3ltYm9sLmZvcigiU3ltYm9sLm1ldGFkYXRhIildOwogICAgICAgIH0KICAgICAgICB2YXIgbWV0YWRhdGEgPSBPYmplY3QuY3JlYXRlKAogICAgICAgICAgICBwYXJlbnRNZXRhZGF0YSA9PT0gdm9pZCAwID8gbnVsbCA6IHBhcmVudE1ldGFkYXRhCiAgICAgICAgKTsKICAgICAgICB2YXIgZSA9IGFwcGx5TWVtYmVyRGVjcyh0YXJnZXRDbGFzcywgbWVtYmVyRGVjcywgbWV0YWRhdGEpOwogICAgICAgIGlmICghY2xhc3NEZWNzLmxlbmd0aCkgZGVmaW5lTWV0YWRhdGEodGFyZ2V0Q2xhc3MsIG1ldGFkYXRhKTsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBlOiBlLAogICAgICAgICAgICAvLyBMYXppbHkgYXBwbHkgY2xhc3MgZGVjb3JhdGlvbnMgc28gdGhhdCBtZW1iZXIgaW5pdCBsb2NhbHMgY2FuIGJlIHByb3Blcmx5IGJvdW5kLgogICAgICAgICAgICBnZXQgYygpIHsKICAgICAgICAgICAgICAgIHJldHVybiBhcHBseUNsYXNzRGVjcyh0YXJnZXRDbGFzcywgY2xhc3NEZWNzLCBtZXRhZGF0YSk7CiAgICAgICAgICAgIH0sCiAgICAgICAgfTsKICAgIH07Cn0KCmZ1bmN0aW9uIF9hcHBseV9kZWNzXzIyMDNfcih0YXJnZXRDbGFzcywgbWVtYmVyRGVjcywgY2xhc3NEZWNzLCBwYXJlbnRDbGFzcykgewogICAgcmV0dXJuIChfYXBwbHlfZGVjc18yMjAzX3IgPSBhcHBseURlY3MyMjAzUkZhY3RvcnkoKSkoCiAgICAgICAgdGFyZ2V0Q2xhc3MsCiAgICAgICAgbWVtYmVyRGVjcywKICAgICAgICBjbGFzc0RlY3MsCiAgICAgICAgcGFyZW50Q2xhc3MKICAgICk7Cn0KZnVuY3Rpb24gX2lkZW50aXR5KHgpIHsgcmV0dXJuIHg7IH0KLyogQG1pblZlcnNpb24gNy4yMi4wICovCmZ1bmN0aW9uIGRpc3Bvc2VfU3VwcHJlc3NlZEVycm9yKHN1cHByZXNzZWQsIGVycm9yKSB7CiAgICBpZiAodHlwZW9mIFN1cHByZXNzZWRFcnJvciAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWYKICAgICAgICBkaXNwb3NlX1N1cHByZXNzZWRFcnJvciA9IFN1cHByZXNzZWRFcnJvcjsKICAgIH0gZWxzZSB7CiAgICAgICAgZGlzcG9zZV9TdXBwcmVzc2VkRXJyb3IgPSBmdW5jdGlvbiBTdXBwcmVzc2VkRXJyb3Ioc3VwcHJlc3NlZCwgZXJyb3IpIHsKICAgICAgICAgICAgdGhpcy5zdXBwcmVzc2VkID0gc3VwcHJlc3NlZDsKICAgICAgICAgICAgdGhpcy5lcnJvciA9IGVycm9yOwogICAgICAgICAgICB0aGlzLnN0YWNrID0gbmV3IEVycm9yKCkuc3RhY2s7CiAgICAgICAgfTsKICAgICAgICBkaXNwb3NlX1N1cHByZXNzZWRFcnJvci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEVycm9yLnByb3RvdHlwZSwgewogICAgICAgICAgICBjb25zdHJ1Y3RvcjogewogICAgICAgICAgICAgICAgdmFsdWU6IGRpc3Bvc2VfU3VwcHJlc3NlZEVycm9yLAogICAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSk7CiAgICB9CiAgICByZXR1cm4gbmV3IGRpc3Bvc2VfU3VwcHJlc3NlZEVycm9yKHN1cHByZXNzZWQsIGVycm9yKTsKfQoKZnVuY3Rpb24gX2Rpc3Bvc2Uoc3RhY2ssIGVycm9yLCBoYXNFcnJvcikgewogICAgZnVuY3Rpb24gbmV4dCgpIHsKICAgICAgICB3aGlsZSAoc3RhY2subGVuZ3RoID4gMCkgewogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgdmFyIHIgPSBzdGFjay5wb3AoKTsKICAgICAgICAgICAgICAgIHZhciBwID0gci5kLmNhbGwoci52KTsKICAgICAgICAgICAgICAgIGlmIChyLmEpIHJldHVybiBQcm9taXNlLnJlc29sdmUocCkudGhlbihuZXh0LCBlcnIpOwogICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZXJyKGUpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChoYXNFcnJvcikgdGhyb3cgZXJyb3I7CiAgICB9CgogICAgZnVuY3Rpb24gZXJyKGUpIHsKICAgICAgICBlcnJvciA9IGhhc0Vycm9yID8gbmV3IGRpc3Bvc2VfU3VwcHJlc3NlZEVycm9yKGUsIGVycm9yKSA6IGU7CiAgICAgICAgaGFzRXJyb3IgPSB0cnVlOwoKICAgICAgICByZXR1cm4gbmV4dCgpOwogICAgfQoKICAgIHJldHVybiBuZXh0KCk7Cn1mdW5jdGlvbiBfdXNpbmcoc3RhY2ssIHZhbHVlLCBpc0F3YWl0KSB7CiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHZvaWQgMCkgcmV0dXJuIHZhbHVlOwogICAgaWYgKE9iamVjdCh2YWx1ZSkgIT09IHZhbHVlKSB7CiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigidXNpbmcgZGVjbGFyYXRpb25zIGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBvYmplY3RzLCBmdW5jdGlvbnMsIG51bGwsIG9yIHVuZGVmaW5lZC4iKTsKICAgIH0KICAgIC8vIGNvcmUtanMtcHVyZSB1c2VzIFN5bWJvbC5mb3IgZm9yIHBvbHlmaWxsaW5nIHdlbGwta25vd24gc3ltYm9scwogICAgaWYgKGlzQXdhaXQpIHsKICAgICAgICB2YXIgZGlzcG9zZSA9CiAgICAgICAgICAgIHZhbHVlW1N5bWJvbC5hc3luY0Rpc3Bvc2UgfHwgU3ltYm9sLmZvcigiU3ltYm9sLmFzeW5jRGlzcG9zZSIpXTsKICAgIH0KICAgIGlmIChkaXNwb3NlID09PSBudWxsIHx8IGRpc3Bvc2UgPT09IHZvaWQgMCkgewogICAgICAgIGRpc3Bvc2UgPSB2YWx1ZVtTeW1ib2wuZGlzcG9zZSB8fCBTeW1ib2wuZm9yKCJTeW1ib2wuZGlzcG9zZSIpXTsKICAgIH0KICAgIGlmICh0eXBlb2YgZGlzcG9zZSAhPT0gImZ1bmN0aW9uIikgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYFByb3BlcnR5IFtTeW1ib2wuZGlzcG9zZV0gaXMgbm90IGEgZnVuY3Rpb24uYCk7CiAgICB9CiAgICBzdGFjay5wdXNoKHsgdjogdmFsdWUsIGQ6IGRpc3Bvc2UsIGE6IGlzQXdhaXQgfSk7CiAgICByZXR1cm4gdmFsdWU7Cn1mdW5jdGlvbiBfdXNpbmdfY3R4KCkgewogICAgdmFyIF9kaXNwb3NlU3VwcHJlc3NlZEVycm9yID0KICAgICAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSAiZnVuY3Rpb24iCiAgICAgICAgICAgID8gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmCiAgICAgICAgICAgIFN1cHByZXNzZWRFcnJvcgogICAgICAgICAgICA6IChmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQpIHsKICAgICAgICAgICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoKTsKICAgICAgICAgICAgICAgIGVyci5uYW1lID0gIlN1cHByZXNzZWRFcnJvciI7CiAgICAgICAgICAgICAgICBlcnIuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQ7CiAgICAgICAgICAgICAgICBlcnIuZXJyb3IgPSBlcnJvcjsKICAgICAgICAgICAgICAgIHJldHVybiBlcnI7CiAgICAgICAgICAgIH0pLAogICAgICAgIGVtcHR5ID0ge30sCiAgICAgICAgc3RhY2sgPSBbXTsKICAgIGZ1bmN0aW9uIHVzaW5nKGlzQXdhaXQsIHZhbHVlKSB7CiAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHsKICAgICAgICAgICAgaWYgKE9iamVjdCh2YWx1ZSkgIT09IHZhbHVlKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKAogICAgICAgICAgICAgICAgICAgICJ1c2luZyBkZWNsYXJhdGlvbnMgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIG9iamVjdHMsIGZ1bmN0aW9ucywgbnVsbCwgb3IgdW5kZWZpbmVkLiIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIGNvcmUtanMtcHVyZSB1c2VzIFN5bWJvbC5mb3IgZm9yIHBvbHlmaWxsaW5nIHdlbGwta25vd24gc3ltYm9scwogICAgICAgICAgICBpZiAoaXNBd2FpdCkgewogICAgICAgICAgICAgICAgdmFyIGRpc3Bvc2UgPQogICAgICAgICAgICAgICAgICAgIHZhbHVlW1N5bWJvbC5hc3luY0Rpc3Bvc2UgfHwgU3ltYm9sLmZvcigiU3ltYm9sLmFzeW5jRGlzcG9zZSIpXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoZGlzcG9zZSA9PSBudWxsKSB7CiAgICAgICAgICAgICAgICBkaXNwb3NlID0gdmFsdWVbU3ltYm9sLmRpc3Bvc2UgfHwgU3ltYm9sLmZvcigiU3ltYm9sLmRpc3Bvc2UiKV07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHR5cGVvZiBkaXNwb3NlICE9PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBQcm9wZXJ0eSBbU3ltYm9sLmRpc3Bvc2VdIGlzIG5vdCBhIGZ1bmN0aW9uLmApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHN0YWNrLnB1c2goeyB2OiB2YWx1ZSwgZDogZGlzcG9zZSwgYTogaXNBd2FpdCB9KTsKICAgICAgICB9IGVsc2UgaWYgKGlzQXdhaXQpIHsKICAgICAgICAgICAgLy8gcHJvdmlkZSB0aGUgbnVsbGlzaCBgdmFsdWVgIGFzIGBkYCBmb3IgbWluaWZpY2F0aW9uIGdhaW4KICAgICAgICAgICAgc3RhY2sucHVzaCh7IGQ6IHZhbHVlLCBhOiBpc0F3YWl0IH0pOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdmFsdWU7CiAgICB9CiAgICByZXR1cm4gewogICAgICAgIC8vIGVycm9yCiAgICAgICAgZTogZW1wdHksCiAgICAgICAgLy8gdXNpbmcKICAgICAgICB1OiB1c2luZy5iaW5kKG51bGwsIGZhbHNlKSwKICAgICAgICAvLyBhd2FpdCB1c2luZwogICAgICAgIGE6IHVzaW5nLmJpbmQobnVsbCwgdHJ1ZSksCiAgICAgICAgLy8gZGlzcG9zZQogICAgICAgIGQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIGVycm9yID0gdGhpcy5lOwoKICAgICAgICAgICAgZnVuY3Rpb24gbmV4dCgpIHsKICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlLWJlZm9yZS1kZWZpbmUKICAgICAgICAgICAgICAgIHdoaWxlICgocmVzb3VyY2UgPSBzdGFjay5wb3AoKSkpIHsKICAgICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzb3VyY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwb3NhbFJlc3VsdCA9IHJlc291cmNlLmQgJiYgcmVzb3VyY2UuZC5jYWxsKHJlc291cmNlLnYpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzb3VyY2UuYSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShkaXNwb3NhbFJlc3VsdCkudGhlbihuZXh0LCBlcnIpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXJyKGUpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChlcnJvciAhPT0gZW1wdHkpIHRocm93IGVycm9yOwogICAgICAgICAgICB9CgogICAgICAgICAgICBmdW5jdGlvbiBlcnIoZSkgewogICAgICAgICAgICAgICAgZXJyb3IgPSBlcnJvciAhPT0gZW1wdHkgPyBuZXcgX2Rpc3Bvc2VTdXBwcmVzc2VkRXJyb3IoZXJyb3IsIGUpIDogZTsKCiAgICAgICAgICAgICAgICByZXR1cm4gbmV4dCgpOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gbmV4dCgpOwogICAgICAgIH0sCiAgICB9Owp9L2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvc3djX2VjbWFfdHJhbnNmb3Jtc19iYXNlLTcuMC4wL3NyYy9yZXNvbHZlci9tb2QucnMAAADq2RcAdwAAALcGAAA2AAAAY2FsbGVkIGV4cGVjdCBvbiAAAAB02hcAEQAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3N3Y19lY21hX2FzdC01LjAuMS9zcmMvcGF0LnJzAACQ2hcAYgAAAA0AAAAUAAAAGwUAAAQAAAAEAAAANwEAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3N3Y19lY21hX3RyYW5zZm9ybXNfYmFzZS03LjAuMC9zcmMvZml4ZXIucnMU2xcAcAAAAMQAAABAAAAAFNsXAHAAAACxAgAAFgAAABTbFwBwAAAAFgQAACAAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9pbmRleG1hcC0yLjQuMC9zcmMvbWFwL2NvcmUucnMAtNsXAGMAAAAtAAAAIwAAAGluZGV4IG5vdCBmb3VuZAC02xcAYwAAADoAAAAKAAAAtNsXAGMAAABTAQAAPQAAALTbFwBjAAAAOwIAADQAAAC02xcAYwAAADwCAAA0AAAAtNsXAGMAAAC6AQAALAAAALTbFwBjAAAAsAEAACIAAABhc3NlcnRpb24gZmFpbGVkOiBpbmRpY2VzLmNhcGFjaXR5KCkgLSBpbmRpY2VzLmxlbigpID49IGVudHJpZXMubGVuKCkvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9pbmRleG1hcC0yLjQuMC9zcmMvbWFwL2NvcmUvcmF3LnJz3dwXAGcAAAAOAAAABQAAALTbFwBjAAAAJQAAAA8AAAAAAAAADAAAAAQAAAAcBQAAHQUAAB4FAAAoAAAACAAAADUBAABDbGFzc0ZuVmFyVXNpbmdUc0ludGVyZmFjZVRzVHlwZUFsaWFzVHNFbnVtVHNNb2R1bGVpbnRlcm5hbCBlcnJvcjogZW50ZXJlZCB1bnJlYWNoYWJsZSBjb2RlOiBkZXN0cnVjdHVyaW5nIHBhdHRlcm4gaW5zaWRlIFRzUGFyYW1ldGVyUHJvcGVydHkAAAC73RcAWgAAAGjfFwB6AAAAPgEAACEAAABo3xcAegAAADwDAAANAAAA1CMYACoAAABo3xcAegAAAMsDAAAdAAAAaN8XAHoAAACmAwAAQAAAAF9rZXlo3xcAegAAADYEAABRAAAAaN8XAHoAAABABAAAJwAAAF9jcmVhdGVSZXF1aXJlX19yZXF1aXJlZXhwb3J0c2NyZWF0ZVJlcXVpcmV1cmwAAGjfFwB6AAAALAUAABoAAABo3xcAegAAAC4FAAAaAAAAT25seSBhbWJpZW50IG1vZHVsZXMgY2FuIHVzZSBxdW90ZWQgbmFtZXMuAABo3xcAegAAANgFAAAOAAAAbm90IGltcGxlbWVudGVkABTkFwBkAAAAnQwAAD4AAAAU5BcAZAAAAKkMAAA8AAAAFOQXAGQAAACKDAAAJgAAAB8FAAAEAAAABAAAADcBAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9zd2NfZWNtYV90cmFuc2Zvcm1zX3R5cGVzY3JpcHQtNy4wLjAvc3JjL3RyYW5zZm9ybS5ycwAAaN8XAHoAAAC6AgAAOAAAAEltcG9ydCBkZWNsYXJhdGlvbnMgaW4gYSBuYW1lc3BhY2UgY2Fubm90IHJlZmVyZW5jZSBhIG1vZHVsZS5FU00tc3R5bGUgbW9kdWxlIGRlY2xhcmF0aW9ucyBhcmUgbm90IHBlcm1pdHRlZCBpbiBhIG5hbWVzcGFjZS5JbXBvcnQgYXNzaWdubWVudCBjYW5ub3QgYmUgdXNlZCB3aGVuIHRhcmdldGluZyBFQ01BU2NyaXB0IG1vZHVsZXMuIENvbnNpZGVyIHVzaW5nIGBpbXBvcnQgKiBhcyBucyBmcm9tICJtb2QiYCwgYGltcG9ydCB7YX0gZnJvbSAibW9kImAsIGBpbXBvcnQgZCBmcm9tICJtb2QiYCwgb3IgYW5vdGhlciBtb2R1bGUgZm9ybWF0IGluc3RlYWQuRXhwb3J0IGFzc2lnbm1lbnQgY2Fubm90IGJlIHVzZWQgd2hlbiB0YXJnZXRpbmcgRUNNQVNjcmlwdCBtb2R1bGVzLiBDb25zaWRlciB1c2luZyBgZXhwb3J0IGRlZmF1bHRgIG9yIGFub3RoZXIgbW9kdWxlIGZvcm1hdCBpbnN0ZWFkLi9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3N3Y19lY21hX3RyYW5zZm9ybXNfdHlwZXNjcmlwdC03LjAuMC9zcmMvdHlwZXNjcmlwdC5ycwAAALbhFwB7AAAAPQAAACwAAAAqAwAADAAAAAQAAABOAwAATwMAAC0DAEHkxN8AC54DAQAAAC4DAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9zd2NfZWNtYV90cmFuc2Zvcm1zX3R5cGVzY3JpcHQtNy4wLjAvc3JjL3RzX2VudW0ucnNOYU4AbOIXAHgAAACvAAAAEgAAAGziFwB4AAAA2QAAABoAAAAgBQAABAAAAAQAAAA3AQAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvc3djX2VjbWFfdHJhbnNmb3Jtc190eXBlc2NyaXB0LTcuMC4wL3NyYy9zdHJpcF90eXBlLnJzABjjFwB7AAAAyQAAACkAAABzdHJ1Y3QgQ29uZmlnZW51bSBUc0ltcG9ydEV4cG9ydEFzc2lnbkNvbmZpZ2VudW0gSW1wb3J0c05vdFVzZWRBc1ZhbHVlcwAqAwAADAAAAAQAAABOAwAATwMAACcEAEGMyN8AC4oEAQAAAC4DAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9zd2NfZWNtYV91dGlscy03LjAuMC9zcmMvbGliLnJzXwAAAAEAAAAAAAAAeOQXAAEA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AAAtAwBBxK7gAAv+DgEAAAAuAwAASWRlbnRBcnJheVJlc3RPYmplY3RBc3NpZ25JbnZhbGlkRXhwcgAAAAAAAAAEAAAAAAAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3N3Y19lY21hX2NvZGVnZW4tNS4wLjEvc3JjL3RleHRfd3JpdGVyL2Jhc2ljX2ltcGwucnM7IHZhcmxldGNvbnN0KyF+dHlwZW9mdm9pZGRlbGV0ZT0rPS09Kj0vPSU9PDw9Pj49Pj4+PXw9Xj0mPSoqPSYmPXx8PT8/PT09IT09PT0hPT08PD0+Pj08PD4+Pj4+Ki8lfF4mfHwmJioqPz8rKy0tL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmVnZXgtYXV0b21hdGEtMC40Ljcvc3JjL3V0aWwvaXRlci5yc3VuZXhwZWN0ZWQgcmVnZXggZmluZCBlcnJvcjogCnRvIGhhbmRsZSBmaW5kIGVycm9ycywgdXNlICd0cnknIG9yICdzZWFyY2gnIG1ldGhvZHMAAADTGBgAHQAAAPAYGAA1AAAAaRgYAGoAAAB+AQAAGQAAAGArGABqAAAAXgIAABwAAABgKxgAagAAAGsCAAAyAAAAAgAAAGArGABqAAAAAQMAABUAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yZWdleC1hdXRvbWF0YS0wLjQuNy9zcmMvdXRpbC9zZWFyY2gucnNpbnZhbGlkIHNwYW4gIGZvciBoYXlzdGFjayBvZiBsZW5ndGggAAAA6BkYAA0AAAD1GRgAGAAAAHwZGABsAAAAqgEAAAkAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9zd2NfZWNtYV9jb2RlZ2VuLTUuMC4xL3NyYy90eXBlc2NyaXB0LnJzYXMoPT57fWRlY2xhcmVuYW1lc3BhY2VgAAAAMBoYAG0AAAC2AQAAIgAAACR7AAAwGhgAbQAAALkBAAAhAAAAZXh0ZW5kcz86ZW51bS4uLl1pbmZlcnJlYWRvbmx5b3V0aW1wb3J0Lm1vZHVsZWdsb2JhbGFueXVua25vd25udW1iZXJvYmplY3Rib29sZWFuYmlnaW50c3RyaW5nc3ltYm9sdW5kZWZpbmVkbnVsbG5ldmVyaW50cmluc2lja2V5b2Z1bmlxdWVpbnRlcmZhY2VleHBvcnRzYXRpc2ZpZXNhc3NlcnRzaXN0eXBlYWJzdHJhY3RuZXdyZXF1aXJlgBcYAHkAAABxAAAAGgAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3N3Y19lY21hX2NvZGVnZW4tNS4wLjEvc3JjL2xpYi5ycwAArBsYAGYAAADlBwAALwAAAKwbGABmAAAA3wcAADAAAABzdXBlcmRlZmVyLGZyb213aXRoYXNzZXJ0YXNzZXJ0aW9uIGZhaWxlZDogbi5zcGVjaWZpZXJzLmxlbigpIDw9IDIAAKwbGABmAAAAaAEAABUAAAAjIQAArBsYAGYAAAByDgAAEgAAAG4tMHidHBgAAwAAADB4AACoHBgAAgAAAGZ1bmN0aW9uYXN5bmNpZmVsc2U8aW52YWxpZD51c2Ugc3RyaWN0c2NyaXB0PCEtLVx4M2MhLS0tLT4tLVx4M2WsGxgAZgAAAL0HAAAiAAAArBsYAGYAAADABwAAIQAAAGZvcnRyeWZpbmFsbHlAPy5hd2FpdGJyZWFrY2xhc3N0aHJvd3doaWxleWllbGRvZnJldHVybmNhc2VkZWZhdWx0AAAArBsYAGYAAAB/DQAAGgAAAKwbGABmAAAAgg0AADsAAABzd2l0Y2hjYXRjaCNwdWJsaWNwcm90ZWN0ZWRwcml2YXRlYWNjZXNzb3Jjb250aW51ZWRlYnVnZ2VyZG9pbXBsZW1lbnRzbmV3LnRhcmdldGltcG9ydC5tZXRhbm90IGltcGxlbWVudGVkOiBjb2RlZ2VuIG9mIGBleHBvcnQgZGVmYXVsdCBmcm9tICdmb28nO2AA0x0YADgAAACsGxgAZgAAALYBAAARAAAArBsYAGYAAADjAgAANAAAAEluZmluaXR5ZWNvbnN0cnVjdG9yrBsYAGYAAAAgCgAASAAAAKwbGABmAAAAIQoAACgAAACsGxgAZgAAAAkIAABMAAAArBsYAGYAAAAMCAAAJwAAAGZhbHNldHJ1ZTwvPC8+PD51c2luZy8vLyoqLyNfX1BVUkVfXyoDAAAMAAAABAAAAE4DAABDBQAALQMAQcy94AALHgEAAAAuAwAAKgMAAAwAAAAEAAAATgMAAE8DAAAtAwBB9L3gAAudBgEAAAAuAwAAYSBEaXNwbGF5IGltcGxlbWVudGF0aW9uIHJldHVybmVkIGFuIGVycm9yIHVuZXhwZWN0ZWRseS9ydXN0Yy85MGIzNWE2MjM5YzNkOGJkYWJjNTMwYTZhMDgxNmY3ZmY4OWEwYWFmL2xpYnJhcnkvYWxsb2Mvc3JjL3N0cmluZy5ycwAAMx8YAEsAAAB7CgAADgAAAE0FAAAIAAAABAAAAE4FAABPBQAABAAAAAQAAABQBQAAW10gALAfGAABAAAAsR8YAAIAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9zd2NfZmFzdF90c19zdHJpcC03LjEuMC9zcmMvbGliLnJzAFEFAAAIAAAABAAAAFIFAABTBQAAVAUAAFUFAABWBQAAVwUAAFgFAABZBQAAWgUAAFsFAABcBQAAXQUAAF4FAABfBQAAU3ludGF4IGVycm9yxB8YAGcAAADzAAAASQAAAMQfGABnAAAAPgEAABUAAADEHxgAZwAAABEBAAAlAAAAxB8YAGcAAAAgAQAAJQAAAMQfGABnAAAAJAEAACUAAADEHxgAZwAAACUBAAAlAAAAxB8YAGcAAAApAQAAJQAAAMQfGABnAAAAKgEAACUAAADEHxgAZwAAACsBAAAlAAAAxB8YAGcAAAAxAQAAJQAAAMQfGABnAAAAMwEAACUAAADEHxgAZwAAADQBAAAlAAAAxB8YAGcAAAA1AQAAJQAAAFVuc3VwcG9ydGVkIHN5bnRheAAAxB8YAGcAAAB+AQAAMAAAAGdlbmVyYXRlZCBjb2RlIHdhcyBub3QgdXRmLThmYWlsZWQgdG8gd3JpdGUgc291cmNlIG1hcHNvdXJjZSBtYXAgd2FzIG5vdCB1dGY4AAAAxB8YAGcAAAC3AQAAEgAAAMQfGABnAAAAwwEAABUAAADEHxgAZwAAAM8BAAAVAAAAxB8YAGcAAADdAQAAGQAAAMQfGABnAAAA6QEAABkAAAAPAEGoxOAAC4EBECIYAMQfGABnAAAADQIAABkAAADEHxgAZwAAABcCAABAAAAAxB8YAGcAAAAbAgAAJAAAAG92ZXJyaWRlXCIYAAgAAADEHxgAZwAAAFECAAA8AAAAxB8YAGcAAACqAgAAGAAAAGluaW5zdGFuY2VvZmdldHNldHN0YXRpYwAAAAAQAEHAxeAAC8kldGhpc8QfGABnAAAA/wQAACQAAABzdHJ1Y3QgT3B0aW9uc3ZhcmlhbnQgaWRlbnRpZmllcmVudW0gTW9kZUludmFsaWRTeW50YXhVbnN1cHBvcnRlZFN5bnRheFVua25vd24vcnVzdGMvOTBiMzVhNjIzOWMzZDhiZGFiYzUzMGE2YTA4MTZmN2ZmODlhMGFhZi9saWJyYXJ5L2NvcmUvc3JjL3NsaWNlL3NvcnQvc3RhYmxlL2RyaWZ0LnJzAAAAIiMYAFsAAAD/AAAAGQAAACIjGABbAAAA8gAAABIAAAAiIxgAWwAAAM4AAAAkAAAAIiMYAFsAAADRAAAAJAAAACIjGABbAAAAQAAAACIAAAAgICAgaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZTogIGlzIGFscmVhZHkgcmVuYW1lZCB0byAsIGJ1dCBpdCdzIHJlbmFtZWQgYXMgANQjGAAqAAAA/iMYABcAAAAVJBgAFgAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3N3Y19lY21hX3RyYW5zZm9ybXNfYmFzZS03LjAuMC9zcmMvcmVuYW1lL21vZC5ycwAAAEQkGAB1AAAA1QAAABkAAABjYW5ub3QgYWNjZXNzIGEgc2NvcGVkIHRocmVhZCBsb2NhbCB2YXJpYWJsZSB3aXRob3V0IGNhbGxpbmcgYHNldGAgZmlyc3QvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9zY29wZWQtdGxzLTEuMC4xL3NyYy9saWIucnMUJRgAYAAAAKgAAAAJAAAAZGVzY3JpcHRpb24oKSBpcyBkZXByZWNhdGVkOyB1c2UgRGlzcGxheUlvVXRmOEJhZEpzb25WbHFMZWZ0b3ZlclZscU5vVmFsdWVzVmxxT3ZlcmZsb3dCYWRTZWdtZW50U2l6ZUJhZFNvdXJjZVJlZmVyZW5jZUJhZE5hbWVSZWZlcmVuY2VJbmNvbXBhdGlibGVTb3VyY2VNYXBJbnZhbGlkRGF0YVVybENhbm5vdEZsYXR0ZW5JbnZhbGlkUmFtQnVuZGxlTWFnaWNJbnZhbGlkUmFtQnVuZGxlSW5kZXhJbnZhbGlkUmFtQnVuZGxlRW50cnlOb3RBUmFtQnVuZGxlSW52YWxpZFJhbmdlTWFwcGluZ0luZGV4SW52YWxpZEJhc2U2NABNBQAACAAAAAQAAABgBQAATQUAAAgAAAAEAAAATgUAAGAFAACsJhgAYQUAAGIFAABjBQAAZAUAALwCAAAAAAAACAAAAAQAAABlBQAAAAAAAAgAAAAEAAAA6wIAAGUFAADoJhgAwAIAAGYFAABnBQAAwAIAALwCAABoBQAABAAAAAQAAABpBQAAaAUAAAQAAAAEAAAAagUAAGkFAAAkJxgAawUAAGwFAAC6AgAAbQUAALwCAAAAAAAABAAAAAQAAAAyAAAARnJvbVV0ZjhFcnJvcmJ5dGVzZXJyb3JpbnZhbGlkIHV0Zi04OiBjb3JydXB0IGNvbnRlbnRzaW52YWxpZCB1dGYtOABuBQAAFAAAAAQAAABvBQAAbgUAABQAAAAEAAAAcAUAAG8FAAC0JxgAcQUAAHIFAAC6AgAAcQUAALwCAABzBQAAHAAAAAQAAAB0BQAAcwUAABwAAAAEAAAAdQUAAHQFAADwJxgAdgUAAHcFAAC6AgAAdgUAALwCAAB4BQAAMAAAAAQAAADDAgAAeAUAADAAAAAEAAAAxAIAAMMCAAAsKBgAxQIAAHkFAADHAgAAxQIAAMgCAAB6BQAAOAAAAAQAAADDAgAAegUAADgAAAAEAAAAxAIAAMMCAABoKBgAxQIAAHsFAADHAgAAxQIAAMgCAABFcnJvcmNvbnRleHRzb3VyY2UAAE0DAAAUAAAABAAAAHwFAABNAwAAFAAAAAQAAACrAgAAfAUAALgoGADAAgAAfQUAAH4FAADAAgAAvAIAAH8FAAAMAAAABAAAAIAFAAB/BQAADAAAAAQAAACqAgAAgAUAAPQoGADAAgAAgQUAALoCAACCBQAAvAIAAFRva2VuQW5kU3BhbnRva2VuaGFkX2xpbmVfYnJlYWtzcGFuAFEFAAAIAAAABAAAAFIFAABTBQAAVAUAAFUFAABWBQAAVwUAAFgFAABZBQAAWgUAAFsFAABcBQAAXQUAAF4FAABfBQAAVHlwZVNjcmlwdCBleHBvcnQgYXNzaWdubWVudCBpcyBub3Qgc3VwcG9ydGVkIGluIHN0cmlwLW9ubHkgbW9kZVR5cGVTY3JpcHQgaW1wb3J0IGVxdWFscyBkZWNsYXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGluIHN0cmlwLW9ubHkgbW9kZVR5cGVTY3JpcHQgZW51bSBpcyBub3Qgc3VwcG9ydGVkIGluIHN0cmlwLW9ubHkgbW9kZVR5cGVTY3JpcHQgbmFtZXNwYWNlIGRlY2xhcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgaW4gc3RyaXAtb25seSBtb2RlVHlwZVNjcmlwdCBwYXJhbWV0ZXIgcHJvcGVydHkgaXMgbm90IHN1cHBvcnRlZCBpbiBzdHJpcC1vbmx5IG1vZGVUaGUgYW5nbGUtYnJhY2tldCBzeW50YXggZm9yIHR5cGUgYXNzZXJ0aW9ucywgYDxUPmV4cHJgLCBpcyBub3Qgc3VwcG9ydGVkIGluIHR5cGUgc3RyaXAgbW9kZS4gSW5zdGVhZCwgdXNlIHRoZSAnYXMnIHN5bnRheDogYGV4cHIgYXMgVGAuL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmVnZXgtYXV0b21hdGEtMC40Ljcvc3JjL3V0aWwvcG9vbC5ycwAAYCsYAGoAAAA9AgAAHAAAAGludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGU6IE1vZHVsZSBpcyBoYW5kbGVkIGFib3ZlAAAA3CsYAEEAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9zd2NfZWNtYV9wYXJzZXItNi4wLjIvc3JjL3BhcnNlci9tb2QucnMoLBgAbAAAALQAAAAyAAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvc3djX2VjbWFfcGFyc2VyLTYuMC4yL3NyYy9wYXJzZXIvcGF0LnJzpCwYAGwAAACaAgAAKgAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3N3Y19lY21hX3BhcnNlci02LjAuMi9zcmMvcGFyc2VyL2V4cHIucnMAAAAgLRgAbQAAAKcDAAAaAAAAgwUAAIQFAACFBQAAhgUAAIcFAADWAgAAiAUAAIkFAACKBQAAiwUAAIwFAADWAgAAZXZhbC9ydXN0Yy85MGIzNWE2MjM5YzNkOGJkYWJjNTMwYTZhMDgxNmY3ZmY4OWEwYWFmL2xpYnJhcnkvY29yZS9zcmMvc2xpY2Uvc29ydC9zdGFibGUvcXVpY2tzb3J0LnJzbWlkID4gbGVuMy4YAAkAAADULRgAXwAAAEwAAAAfAAAA1C0YAF8AAABGAAAAFwAAAEhhc2ggdGFibGUgY2FwYWNpdHkgb3ZlcmZsb3dkLhgAHAAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2hhc2hicm93bi0wLjE0LjUvc3JjL3Jhdy9tb2QucnOILhgAZAAAAFYAAAAoAAAAAAAAAAwAAAAEAAAAjQUAAI4FAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9zd2NfZWNtYV9wYXJzZXItNi4wLjIvc3JjL3BhcnNlci9pbnB1dC5ycwAAEC8YAG4AAADPAAAAKwAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3N3Y19lY21hX3BhcnNlci02LjAuMi9zcmMvbGV4ZXIvc3RhdGUucnMAAACQLxgAbQAAAH8AAAAuAAAAkC8YAG0AAACAAAAAOAAAAJAvGABtAAAAgQAAABkAAAAQLxgAbgAAALkBAAAnAAAAEC8YAG4AAAC/AQAAIwAAADxlb2Y+UmVmQ2VsbHZhbHVlPGJvcnJvd2VkPgBhMBgACgAAAC9ydXN0Yy85MGIzNWE2MjM5YzNkOGJkYWJjNTMwYTZhMDgxNmY3ZmY4OWEwYWFmL2xpYnJhcnkvYWxsb2Mvc3JjL3ZlYy9tb2QucnN0MBgATAAAALQHAAANAAAAeDEYAGAAAAArAQAAKQAAAHgxGABgAAAAOgEAACUAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi91bmljb2RlLXdpZHRoLTAuMS4xMy9zcmMvdGFibGVzLnJzAPAwGABnAAAAJwAAABkAAADwMBgAZwAAAC0AAAAdAAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvdGV4dHdyYXAtMC4xNi4xL3NyYy9jb3JlLnJzeDEYAGAAAAAMAQAAHgAAAKQ5GABqAAAAwQAAACgAAACkORgAagAAAMMAAAAlAAAApDkYAGoAAADEAAAALwAAAC0AAACkORgAagAAAM4AAAAlAAAApDkYAGoAAADPAAAALwAAAAAAAAAcAAAABAAAAI8FAACQBQAAkQUAAJIFAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi90ZXh0d3JhcC0wLjE2LjEvc3JjL3dvcmRfc2VwYXJhdG9ycy5ycwBYMhgAawAAANwAAAAoAAAAWDIYAGsAAADSAAAALAAAAJMFAAAsAAAABAAAAJQFAACQBQAAlQUAAJYFAABYMhgAawAAABYBAAAcAAAAWDIYAGsAAAA1AQAAKAAAAFgyGABrAAAALgEAACwAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9zbWF3ay0wLjMuMi9zcmMvbGliLnJzADAzGABbAAAAHgEAABsAAAAwMxgAWwAAACIBAAAUAAAAMDMYAFsAAAAiAQAADQAAADAzGABbAAAAIAEAABEAAAAwMxgAWwAAACwBAAAJAAAAMDMYAFsAAAAnAQAAFwAAADAzGABbAAAACAEAABwAAAAwMxgAWwAAAAgBAAAvAAAAKGksIGopIG5vdCBhYm92ZSBkaWFnb25hbDogKCwgAAAMNBgAHAAAACg0GAACAAAA4NAYAAEAAAAwMxgAWwAAAIYBAAAUAAAAKGksIGopIG91dCBvZiBib3VuZHM6ICgpLCBzaXplOiBUNBgAFwAAACg0GAACAAAAazQYAAkAAAAwMxgAWwAAAIcBAAAZAAAAMDMYAFsAAACSAQAADAAAADAzGABbAAAAkgEAACoAAAAwMxgAWwAAAIgBAAATAAAAMDMYAFsAAAB1AQAAIQAAADAzGABbAAAAdgEAABkAAAAwMxgAWwAAAHkBAAAlAAAAMDMYAFsAAAB6AQAAGwAAADAzGABbAAAAcwEAACEAAADAOhgAdwAAAEsBAAAgAAAAwDoYAHcAAABLAQAALAAAAMA6GAB3AAAASwEAADIAAADAOhgAdwAAAFMBAAAYAAAAQzkYAE8AAADIBQAAFAAAAEM5GABPAAAAyAUAACEAAABDORgATwAAALwFAAAhAEGU6+AAC70FAQAAAJcFAABjYWxsZWQgYFJlc3VsdDo6dW53cmFwKClgIG9uIGFuIGBFcnJgIHZhbHVlAEM5GABPAAAATAQAACQAAAAFNxgAawAAALkAAABGAAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvdGV4dHdyYXAtMC4xNi4xL3NyYy93cmFwLnJz6DUYAGAAAAAXAQAAGAAAAE92ZXJmbG93RXJyb3JpbnRlcm5hbCBlcnJvcjogZW50ZXJlZCB1bnJlYWNoYWJsZSBjb2RlL3J1c3RjLzkwYjM1YTYyMzljM2Q4YmRhYmM1MzBhNmEwODE2ZjdmZjg5YTBhYWYvbGlicmFyeS9hbGxvYy9zcmMvYm9ycm93LnJzjTYYAEsAAAAVAQAAJQAAAFV0ZjhFcnJvcnZhbGlkX3VwX3RvZXJyb3JfbGVuL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvdGV4dHdyYXAtMC4xNi4xL3NyYy93cmFwX2FsZ29yaXRobXMucnMFNxgAawAAAHEBAAAaAAAABTcYAGsAAABrAQAAIgAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3VuaWNvZGUtbGluZWJyZWFrLTAuMS41L3NyYy9saWIucnMAkDcYAGcAAABhAAAAFwAAAJA3GABnAAAANQAAABgAAACQNxgAZwAAADkAAAAaAAAAkDcYAGcAAAA+AAAABQAAAE5vbmVTb21lDQoKAgICAgICAgICAwMBAQEAQePw4AALEAEAAAAAAAAAAgIAAAAAAAIAQaLx4AALAQIAQcjx4AALAQEAQePx4AALAQEAQcPy4AAL4QcvcnVzdGMvOTBiMzVhNjIzOWMzZDhiZGFiYzUzMGE2YTA4MTZmN2ZmODlhMGFhZi9saWJyYXJ5L2NvcmUvc3JjL3N0ci9wYXR0ZXJuLnJzAABDORgATwAAAL4BAAA3AAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvdGV4dHdyYXAtMC4xNi4xL3NyYy93b3JkX3NwbGl0dGVycy5ycwAApDkYAGoAAACZAAAAJAAAAKQ5GABqAAAAmgAAACQAAAAvcnVzdGMvOTBiMzVhNjIzOWMzZDhiZGFiYzUzMGE2YTA4MTZmN2ZmODlhMGFhZi9saWJyYXJ5L2NvcmUvc3JjL3NsaWNlL21vZC5ycwAAADA6GABNAAAA4QMAACEAAAAwOhgATQAAAOEDAAAuAAAAMDoYAE0AAADlAwAAIAAAADA6GABNAAAA5QMAACsAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi90ZXh0d3JhcC0wLjE2LjEvc3JjL3dyYXBfYWxnb3JpdGhtcy9vcHRpbWFsX2ZpdC5ycwDAOhgAdwAAAK4AAAAhAAAAwDoYAHcAAAC0AAAAGwAAAMA6GAB3AAAAtAAAACMAAADAOhgAdwAAAK8AAAApAAAAwDoYAHcAAACwAAAALAAAAMA6GAB3AAAAsQAAAB8AAADAOhgAdwAAAHsBAAAaAAAAwDoYAHcAAAB8AQAAHgAAAC9ydXN0Yy85MGIzNWE2MjM5YzNkOGJkYWJjNTMwYTZhMDgxNmY3ZmY4OWEwYWFmL2xpYnJhcnkvYWxsb2Mvc3JjL3N5bmMucnMAAAABAAAAAAAAAExhenkgaW5zdGFuY2UgaGFzIHByZXZpb3VzbHkgYmVlbiBwb2lzb25lZAAADDwYACoAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9vbmNlX2NlbGwtMS4xOS4wL3NyYy9saWIucnNAPBgAYAAAAB8FAAAZAAAA/////wAAAAAECw8TFxsfIyctMTQ4PEACRQAAAAAASQBNAAUFBQUFBQUFBQUFBQYFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFUVRYXAUFBQUFBQUFBQUFBQUFBQUFBQUFBQkAQbT64AALKAFgKGRobHArdHZ6foKGio6SlpygBTKkAAAAAJcFBaYAAAAAAAAABawAQez64AALEwWvALMFBQUFBQUFBQUFBUMFBbcAQY/74AALCJpSuQAAAAC8AEGi++AAC5oCxMYAAACtzNDUutgAANwAAAAAAAAAAAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF3gUFBQUFBQXf4QUFBQUFBQUFBQXkBQUFBQUFBQUFBQUFBeIF5wAAAAAF6QAABQUFBQUFBQUF5QUFBQUFBQXrAAAAAAAACA0RFRkdISUqLzE2Oj5CAkcAAAAAAEsATwAFBQUFBQUFBQUFBQUGBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVFWWl4FBQUFBQUFBQUFBQUFBQUFBQUFBQUJAEHM/eAACygBYihmam5yK3R4fICEiIyQlJmeogUypAAAAACXBQWpAAAAAAAAAAWsAEGE/uAACxMFsQC1BQUFBQUFBQUFBQVDBQW3AEGn/uAAC7sBmlK5AAAAAL8AAAAAAAAAAKeqwsTIAMoArc7S1rraAADcAAAAAAC9AAAFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBd4FBQUFBQUF3+EFBQUFBQUFBQUF5AUFBQUFBQUFBQUFBQXiBecAAAAABekAAAUFBQUFBQUFBeUFBQUFBQUF6wBB0IrhAAsBwABBwIvhAAtA/////////////////////////////////////////////z8//////z8//6r///8/////////31/cH88P/x/cHwBBlYzhAAtjBCAE//9/////f///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AEGVjeEAC2kEoAT//3////9///////////////////////////////////////////////////////////////////////8PAP//f/j//////w/////////////////////////////////D/wMAH1AAQY6O4QALhAbfvEDX///7////////////v//////////////////////////////////D/wMAH1AAAP//////////////////37zA1///+////////////7///////////////////////wP8///////////////////////////+////fwL//////wEAAAAAAAAAAP///4cHAP/////////////////////7/P///////////////////////////v///38C//////8B/v////+/tgD///+HBwAAAAAA//////8HAAAAwP7//////////////y8AYMAAnAAA/f///wAAAOD/////////////PwACAAD8////BzAEAAD/B////////////8P////////////////vn//9/58AAP/////////n////////////////AwD///////8/JP//PwQQAQAA////Af8H////fgAA//////8DAAAAAAAA8P///////yMAAAH/AwD+/+Gf+f///cUjAEAAsAMAAxD//////z8AAP///w//B////34A////////////+////////////////////8///v/vn/n///3F8595gLDP/wNQ4If5///9bQMAAABeAAAcAOC/+////e0jAAABAAMAAALgn/n///3tIwAAALADAAIA6Mc91hjH/wMAAAEAAAAAAO6H+f///W3ThzkCXsD/PwDuv/v///3t8787AQDP/wD+7p/5///97fOfOeCwz/8CAOzHPdYYx//Dxz2BAMD/AADg3/3///3/IwAAACcDAAAA4d/9///97yMAAABgAwAGAPDf/f////8nAEBwgAMAAPzg/3/8///7L38AAAAAAAAA/9/9///9//PfPWAnz/8AAO/f/f///e/z3z1gYM//DgD/3/3//////9998IDP/wD87v9//P//+y9/hF//wP8MAP7//////w0AfwAAAAAAAADW9///r/8NIF8AAPAAAAAAAQAAAAAAAAD//v///x8AAAAfAEGglOEAC9QD/v///////wf/f/8DAAAAANb3//+v//8/X3//8wAAAAABAAAD/wOgwv/+////H/7/3////v///x9AAAAAAAAAAP//////BwCAAAA/PGLA4f8DQAAA/////78g///////3////////////////////////////////////////////////////PwAA///////////8////////AAAAAAD/D////////////wP///////////8//////78g///////3//////////////////////////////////////////////////9/AP//PwD/AAAAv////////QcAAAAAAAAAAP///////////z1/Pf//////Pf////89fz3/f/////////89//////////8HAAAAAP//AAD/////////////Pz////////////89fz3//////z3/////PX89/3//////////Pf//////////5wD+AwD//wAA/////////////z8//v////////////////////////////////////////////////////////////////////////////////////////////////////////////8DAEGAmOEAC4sC/////////////////5////7//wf////////////H/wH//wOA//8DAP//AwD/3wEA////////DwAAAIAQAAAAAP////////////////+f///+//8H////////////x/8B//8/gP//HwD//w8A/98NAP////////////+PMP8DAAAAAAAA//////////////8B//////8F//////////8/AP///38AAAAAAAD///8/HwD//////w////8DAAAAAAAAALj/A///////////////Af//////B///////////PwD///9//w//D8D/////Px8A//////8P////A/8HAAAAAP//fwD///////8fAEGUmuEACwGAAEGgmuEAC/8B4P//////DwDgHwAAAAAAAPj///8BwAD8/////z8AAAD///8P/////////3////+f/wP/A4AA/7//fwAAAAAAAP///////////x//AwD4DwD//////////////////w8A/////w8AAAAA4AD8////P/8B///////nAAAAAADebwT///////////////////////////////8AAAAAAAAAAP////////8A/+P//////z//Af//////5wAA9/////8H////////////////////////////////////////////////////////////////////////////////////AEGunOEACwYCgAAA/x8AQcCc4QALEoT8Lz9Q/f/z4EMAAP//////AQBB4ZzhAAsxMAAAAAAAgAEAEAAAAAKAAAD/HwAAAAAAAP8f4v8BAIT8Lz9Q/f/z4EMAAP//////AQBBoJ3hAAvgBv////////////////////////////////////8feAwA/////78g/////////4AAAP//fwB/f39/f39/fwAAAAD/////////////////////////////////////H/gPAP////+/IP////////+AAID//38Af39/f39/f3//////4AAAAP4DPh/+////////////f/j+//////////////fg///////+/////////////38AAP////8AAAAAAAD//+AAAAD+/z4f/v///////////3/+/v/////////////34P///////v////////////9/AAD/////AAAAAAAA/////////////////////////x8AAAAAAAAAAP//////P////////////////////////////////////////////////wcABAAAACcA8AD/////////////////////////H///AAwAAP//////fwCA////P/////////////8AAAAAgP/8////////////////+f////////8H6wMAAPz//x////8PAAD////////wv///////////////////AwAAAID//P////////////////n/////////B+sDAAD8/7v3//8HAAAA////////DwD8//////8PAAAAAAAAAPxoAPz//z8A//9/AAAA////H/D//////wcAAIAAAN//AHz//////xAAAP///////w8A//////////8/AP8D////6P//////P/////8PAP///x///////////wGA/wP///9///////8BAAD3DwAA//9/xP///////2I+BQAAOP8HHAB+fn4Af3////////f/A///////////////////BwAAAP///////38A/z//A///f/z//////////wcAADj//3wAfn5+AH9////////3/wP///////////////////83/wP/////////////////P/////////////////8DAAAAAH8A+KD//X9f2/////////////////8DAAAA+P///////////////////////z//////////////////AwAAAAB/APjg//1/X9v/////////////////AwAAAPj//////wBBjqThAAuhAd//////////////////////HwAAAAD+//8H/v//B8D/////////////f/z8/BwAAAAA//8AAP//GAAA4AAAAADf/////////////////////x8AAP8D/v//h/7//wfA/////////////3/8/PwcAAAAAP/v//9///+3/z//PwAAAAD///////////////////8HAAAAAAAAAAD///////8fAEHApeEACy//7///f///t/8//z8AAAAA////////////////////BwAAAAAAAAAA////////HwBB/6XhAAsBIABBkKbhAAsr////H////////wEAAAAAAP////8A4P///wf/////PwD///8//////w//PgBB0KbhAAujAv///x////////8BAAEAAAD/////AOD///8H//////8H////P/////8P/z4AAAAAAP////////////////////////8/AAD/////D/////8P//////8A////////DwD/9//3t//7//sbAAAAAAAAAAD/////////////////////////P/8D/////w//////D///////AP///////w8A//f/97f/+//7GwAAAAAAAAAAP/3/////v5H//z8A//9/AP///38AAAAAAAAAAP//NwD//z8A////AwAAAAAAAAAA/////////8AAAAAAAAAAAAEA7/7//z8AAAAAAP///x////8fAAAAAP/+//8fAAAA////////PwD//z8A//8HAP//AwBBgKnhAAszb/Dv/v//P4cAAAAA////H////x8AAAAA//7//38AAAD///////8/AP//PwD//wcA//8DAEHAqeEACyX///////////8BAAAAAAAA////////BwD///////8HAP////8PAEGAquEACyj///////////8BAAAAAAAA////////BwD///////8HAP//////AP8DAEHQquEACwf//////wMDAEHgquEACx////8fgAD//z8AAAAAAP//AwAAAAAA//8fAAAA//9/AEGQq+EAC90B//////8bAwAAAAAAAAAA4P///x+AAP////8BAAAA//8/AAAAAAD//x8AAAD//38A+P///////wAAAAAAAAAmAPj//////wAAAAD///8BAAD4////fwAAAJAA/////0cA+P//////BwAeAAAUAAAAAP//////////fwAAAMD/P4D/////////BwQA////Af8D////////3//wAP////9PAP//////////H97/FwAAAAD///v//w8AgAEAAAAAAAAAf73/v/8B//////9/AAAAAOCf+f///e0jAAAB4AMAQYCt4QALL///+//////AAwAAAAAAAAB/vf+//wH/////////B/8D75/5///97fufOYHgzx8fAEHAreEACxn///////8fAIAHAIADAAAA////////AACwAEHwreEACyz//////38AAAAAAA8AAAAA////////////B//DAwAAAP//////////vwD/AwBBsK7hAAs5////////P/8BAAA/AAAAAP///////wAAEAAAAAAAAAD//////wcAAQAAAAAAAAAA////BwAAAAB/AEGAr+EACyn//////////xEA/wMAAAAA/////////wH/AwAAAAAAAP///+f/D/8DfwBBwK/hAAsG//////8PAEHUr+EACxX//////////wAAAIB/8m////8AgAIAQfSv4QALFP/8/////wEACgAAAP////////8HAEGUsOEAC0z///////////8DAIB/8m////+/+Q8A/wMAAAAAAAAAAP/8///////8GwAAAAH4/////wcEAAAB8P//////AwAgAAD///////////8BAEGSseEACy7///////////////8BAP////////9/gAD///////////8jAAD///////////8BAEH+seEACxTvb//9////fwAAAQAAAAAA/P///wBBoLLhAAsUf/v/////AQBAAAAAv/3///8DAAEAQcCy4QALF//9/////3//AQD/AwAA/P////z///5/AEHgsuEACxZ/+/////9/tP8A/wO//f///3/7Af8DAEGcs+EACwv//wcA9P/9////DwBBtrPhAAsBAQBB3LPhAAsQ//9/AP///f/////HBwD/AwBB9rPhAAsBAQBBgLThAAsp/////////////////38AAP///////////////////////////////w8AQcC04QALCf///////wAAfgBBgLXhAAsJ//////8///9/AEGgteEACwv///////8AAP//PwBB7LXhAAsK4OMH+OcPAAAAPABBgLbhAAsJ//////////9/AEHAtuEACwb///9/4AcAQeC24QALMv////////8B////fwAA////////////fwAA////PwAA////////AAAPAAAA+P//4P//AEGgt+EACzL/////////Af///3//A////////////3//A////z8fAP///////38ADwD/A/j//+D//wBB6LfhAAsI//////////8AQYC44QALHf///////////wcBAAAAAAAAAPj/AAAAAAAAAAALAEGouOEACwj//////////wBBwLjhAAtC////////////h/////////+A//8AAAAAAAAAABsAAwD//////////////////////////////////z8AAAAAAP8BAEGgueEACyD/////////////////////////////////////////DwBB/LnhAAsYf2//f/////////////////8H/x//Af8DAEHeuuEACxb/A/////////////////8H/x//Af9jAEGgu+EACx7///////////////////////////////////////8AQci74QALARwAQYC84QAL1gH/////////////3///////////32Te/+vv/////////7/n39////97X/z9//////////////////////////////////////////////////////8//////f//9/////f//9/////f//9/////f/////3////9///3DwAAAAAAAP//////////////////////////P/////3///f////3///f////3///f////3/////9/////f//98////////////////9/+P//////HyAAEAAA+P7/AEGGvuEACwj/////////PwBBoL7hAAsK//////8fgD8AQABBwL7hAAsSf///+dsH/////////z8AAACAAEHgvuEACwr//////x//P/9DAEGSv+EACwz///8/AAD//////w8AQdK/4QALDv///38AAP////////8DAEGawOEACwT///8PAEHawOEACwb//////wMAQYDB4QALKv///////////////////////////////x8AAAAAAAAA//////////8PCABBwMHhAAss////////////////////////////////HwB/AAAAAAD///////////8P/wMAQYDC4QALGO////+W/vcKhOqWqpb3917/+/8P7vv/DwBBwMLhAAusAv////////////////////////////////////8AAAAA////////////////////////////////////////////////////A////////////////////////////////////z//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AQD/////////////////////////////AwD///////////////////////////////////////////////////////////////////8H////////////////////////////////////////////PwBBoMXhAAsE////PwBB4MXhAAs2////////////////////////////////////////////////////////////////////////AEHCxuEAC5akAUAAfwC/APcA9wD3APcA9wD3APcAMAFwAaEB4QH3APcA9wAeAvcALgJfApYC1gIWA0sD9wB8A7YD6wMFBEUEhQTFBPYELAVoBaYF5QUjBmIGoAbfBh0HXQebB9kHFwhXCJUI1AgSCVIJkAnQCRAKTwqPCs4KDgtOC44LyAsIDEgMiAy4DPIMMg1SDXINmg33ANoNEQ5PDn4Oow7GDuYOJg/3APcA9wD3APcA9wD3APcA9wBmD4YPxg8GEEgMRhCGEKYQ5hAWEVYRlhHWEQwSNRJWEpYSxxIHE0ITghO8E/gTOBR4FLUU9wD3APcA9RT3APcA9wD3ADUVbxUpAq8V7xUtFm0WqxbrFhcXURd/F78X/Rc7GHsYsxj3APcA3hgSGVIZchlzGXIZphnmGSIaYhqiGuIaHxtcG4Ubuxv2G/cA9wD3APcA9wD3ADMcWxz3APcA9wD3APcAmRzPHPcA9wD3APcA5hwmHVYdlh22HfYdNh52HpEe0R7RHtEe+x47H3sfuB/1HzUg0R6BHmYgRiCmINEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe9wDRHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEg0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHgQhPSH3APcA9wD3AH0hvSH7IRsi9wD3APcAWyKZItkiGSNTI5MjzCMMJEskiyTLJEgMCCVHJXcl9wCnJecl7yX3Jf8l6yXzJfsl5yXvJfcl/yXrJfMl+yXnJe8l9yX/Jesl8yX7Jecl7yX3Jf8l6yXzJfsl5yXvJfcl/yXrJfMl+yXnJe8l9yX/Jesl8yX7Jecl7yX3Jf8l6yXzJfsl5yXvJfcl/yXrJfMl+yXnJe8l9yX/Jesl8yX7Jecl7yX3Jf8l6yXzJfsl5yXvJfcl/yXrJfMl+yXnJe8l9yX/Jesl8yX7Jecl7yX3Jf8l6yXzJfsl5yXvJfcl/yXrJfMl+yXnJe8l9yX/Jesl8yX7Jecl7yX3Jf8l6yXzJfsl5yXvJfcl/yXrJfMl+yXnJe8l9yX/Jesl8yX7Jecl7yX3Jf8l6yXzJfsl5yXvJfcl/yXrJfMl+yXnJe8l9yX/Jesl8yX7Jecl7yX3Jf8l6yXzJfsl5yXvJfcl/yXrJfMl+yXnJe8l9yX/Jesl8yX7Jecl7yX3Jf8l6yXzJTMmbCasJqwmrCasJqwmrCasJqwmrCasJqwmrCasJqwmrCasJqwmrCasJqwmrCasJqwmrCasJqwmrCasJqwmrCasJqwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbRHtEe0R7RHtEe0R7RHtEeLCdsJ/cAqSf3APcA9wD3ALwn9wD8JzQodCiwKPcA5igmKWQplSnUKWAKfgqbCroK2graCtoK2wraCtoK2grbCvsK+wr7CvsK+wr7CvsK+wr7CvsK+wr7CvsK+wr7CvsK+wr7CvsK+wr7CvsK+wr7CvsK+wr7CvsK+wr7CvsK+wr7CvsK+wr7CvsK+wr7CvsKGwv3AfcA/AEUKmgCaALsJuwm9wD3APcA9wD3APcA9wDlBCQq9wD3AOMJ9wD3APcA9wD0AdoJLQfsJuwm9wD3ACsq7CbsJuwm7CbsJuwm7CbsJvcA2gn3APcA9wAtBycCBwj3APcAqR33AOUE9wD3ADsq9wBLKvcA9wCfJVoq7CbsJvcA9wD3APcA9wD3APcA9wD3AGgCuwj3APcAnyX3AAcI9wD3AMsH9wD3APcAXCr4AfgBayoBAnkq7CbsJuwm7Cb3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3AEUR9wBGEcsH7Cb9AfcA9wCJKuwm7CbsJuwmmSr3APcAoyr3ALIq9wD3APcA9AEPA+wm7CbsJvcAvyr3AMoq9wDmBOwm7CbsJuwm9wD3APcAmyX3AHYC9wD3ANoq6Qb3AOoqtg/6KvcA9wD3APcA7CbsJvcA9wAKKxor9wD3APcAKiv3AHAC9wDtBPcAOisNA+wm7CbsJuwm7Cb3APcA9wD3ALYP7CbsJuwm9wD3APcANhn3APcA9wC8D/cA9wDUD7sI7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm9wD0AfcA9wBKKzcZ7CbsJuwm+hL3APcAywf3AGoBWivsJvcAaivsJuwm9wAHCOwm9wBFESUC9wD3AGgBeit2AmgLiislAvcA9wCZK6cr9wC2D7sIJQL3AGkBtyvHK/cA9wDXKyUC9wD3AG0B5yv3K+4BNBn3AAECZAEHLBYs7CbsJuwmJiz1ATUs9wD3AGEByxK7CEUsdQL6AVQsmwdkLHIs0RLsJuwm7CbsJuwm7CbsJuwm9wD3APcAawGCLJIsNxnsJvcA9wD3AHABoiy7COwm7CbsJuwm7CbsJuwm7CbsJuwm9wD3AGEBsizBLMos7CbsJvcA9wD3AHAB2iy7COos7Cb3APcAZQH6LLsI7CbsJuwmSAwBC34KCi0EJewm7CbsJuwm7CbsJuwm7CbsJuwm7Cb3APcAZAErBOwm7CbsJuwm7CbsJvcA9wD3APcArAMwJxotJi33ADYtRC27COwm7CbsJuwmbgL3APcAVC1jLewm8CH3APcAcy2DLZMt9wD3AGYBoy2yLfcA9wD3APcAtg/CLewm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJvoB9wBhAdkL0i2sA9oJ4i33AL0L2AvPEuwm7CbsJuwmCQf3APcA8S0ALrsIEC73AEISIC67COwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7Cb3ADAuQC7tAfcATC5aLrsI7CbsJuwm7CbsJi0H9wBqLnkuhy73APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA1g7sJuwm7CbsJuwm7Cb3APcA9wD3APcA9wD0AZYu9wD3APcA9wD3APcA9wD3APcA9wD3APcANRnsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJvcA9wD3APcA9wD3ADYZ9wD3APcA9wD3AKYu9wD3ALQu9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3AL4u9wD3APcA9wD3APcA9wD3AM4u3i7QEuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7Cb3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3AHMP9wD3APcA9wBFEewm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJvcA9wD3ALYP9wD0Ae4u9wD3APcA9wD0AbsI9wBoAv4u9wD3APcADi8aLyovAQLoBPcA7CbsJuwm7CbsJuwm7Cb3APcA9wD3APcANS/sJuwm7CbsJuwm7Cb3APcA9wD3AAgIbwFwAXABRS8lAuwm7CbsJuwmVS/UEtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEevR7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHvcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcARhHsJuwmvB7sJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJocG0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEeDh9jL+wmcy9/L9Ee0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHrke7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7Cb3APcA9wD3APcA9wDlBNoJtg+PL9IS7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwmcAFwAegDcAHPEvcA9wD3APcA9wD3APcANRnsJuwm7Cb3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wBGEfcA9wBvAvcA9wD3AJ8vcAGsL/cAuC/3APcA9wDlBOwm9wD3APcA9wDGL+wm7CbsJuwm7CbsJuwm9wA1GfcANRn3APcA9wD3APcARRH3ALYP7CbsJuwm7CbsJuwm7CbsJvcA9wD3APcA9wD+AfcA9wD3APYB1C/iL/8B9wD3APcA3Q2GBvcAEA7vL+0B9wD3APcA9wD3APcA9wD3APcA9wBwAvcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD5LwcwBzAHMHABcAFwAZgtcAFwAcQBFzAjMPwSpgLsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7Cb3APQBLzDsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJtkLPzBNMPcA9wD3AGgC7Cb4Euwm7CbsJuwm7CbsJuwm9wD3ANoJXTBbJOwm7CbsJuwm7CbsJuwm7CbsJuwm7Cb3AG0w7Cb3APcAZAF9MOwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm9wBkAbsI7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwmjTD0AfcA9wD3APcA9wD3APcA9wD3APcA9wD3AHECzxLsJuwm9wD3APcA9wCdMK0w7CbsJuwm7CbsJuwm7CbsJuwm7CbuAfcA9wBkKL0w7CbsJuwm7CbuAfcA9wBoAuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJv8B9wDMMNkw5zD3MAUxDTH5AQcIHDEHCOwm7CbsJjcZ7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbRHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHiwxchmkGXIZchlyGTwxchlyGXIZLDHRHtEe0R5JMU8x0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEeXzFlMdEebDF6MdEe0R6HMdEe0R7RHtEelzGmMbAxtzHGMdQx5DHyMdEe0R7RHtEeGBtjLgIyEBkVG9Ee0R4OMtEeHjLRHtEe0R4qMtEeNjLRHtEe0R7RHkEy9wD3AFEy0R7RHmExYTJnMtEe0R7RHvcA9wD3APcA9wD3APcAdzL3APcA9wD3APcAAjLRHtEeAhn3APcA9wAXGxUb9wD3ABcb9wAAGdEe0R7RHtEe0R6HMq4xzzGWMtEe0R7RHs4x0R7RHtEepTKpMbQy0R7RHvcA9wD3APcA9wB3MtEe0R7RHtEe0R7RHmIy0R7RHp4x9wD3APcA9wD3APcA9wD3APcAAAL3APcA5QTsJuwmuwjRHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHrceLQjsJnABcAFwAXABcAFwAewm7CbsJuwm7CbsJuwm7CZwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAHsJjUEVQR1BJUEtQTVBPUEDwUvBU8FbwWPBa8FzwXvBQoGKgYxBlEGgAOAA4ADgANmBioGhgajBoADgAOAA4ADgAPDBuAGgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAMqBgAHgAMcB8oAygDKAMoAygDKAMoAygA8B8oAXAdvB4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAegB7cHgAOAA4ADgAPXB4ADgAOAA4ADgAOAA4AD5wcHCCcIRwhdCCoGfQiAA40IrQjECNcI5wgHCYADIAlACWAJgAmgCcAJ4AkACsoAIArKAMoAygDKAMoAygDKAMoAygDKAMoAygDKAMoAygDKAMoAygDKAMoAygDKAMoAygDKAMoAygDKAMoAygDKAMoAIAqAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADQAoDAwMDAwMDAwMMAgAAAQMDAwMDAwMDAwMDAwMDAwMDAwkSFh0aGR0WFREdGhcOFxsYGBgYGBgYGBgYFxcdHR0SHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dFRoRHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0VDBAdAwMDAwMEAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMIFRkaGhodHBwdHBYdDB0dGRocHA0dHBwcHBwWHBwcFR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHB0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0cHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRwNHBwcDRwdHRwdHR0dHR0dHBwcHB0cHQ0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHQMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMIAwMDAwMDAwMDAwMDCAgICAgICAMDAwMDAwMDAwMDAwMdHR0dHR0dHSoqHR0dHRcdKioqKh0dHR0dHR0qHSodHR0dHR0dHR0dHR0dHR0dHR0dHSodHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHQMDAwMDAwMdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0qHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0qKh0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRcMKiodHRoqAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDDAMdAwMdAwMSAyoqKioqKioqIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjKioqKiMjIyMdHSoqKioqKioqKioqHR0dHR0dHR0dGRkZFxcdHQMDAwMDAwMDAwMDEgMSEhIdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHQMDAwMDAwMDAwMDAwMDAwMDAwMDAxgYGBgYGBgYGBgZGBgdHR0DHR0dHR0dHR0dHR0dHR0dHR0dHR0SHQMDAwMDAwMdHQMDAwMDAx0dAwMdAwMDAx0dGBgYGBgYGBgYGB0dHR0dHR0dHR0dHR0dKh0dAx0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHQMDAwMDAwMDAwMDAwMDAwMqKh0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHQMDAwMDAwMDAwMDHSoqKioqKioqKioqKioqGBgYGBgYGBgYGB0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHQMDAwMDAwMDAx0dHR0XEh0qKgMaGh0dHR0dHR0dHR0dHR0dHR0dHR0dHR0DAwMDHQMDAwMDAwMDAx0DAwMdAwMDAwMqKh0dHR0dHR0dHR0dHR0dHSodHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dAwMDKiodKh0dHR0dHR0dHR0dKioqKiodHR0dHR0dHR0dHR0dHR0dKh0dKioqKioqAwMDAwMDAwMdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHQMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAx0DAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAx0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHQMDAx0DAwMDAwMDAwMDAwMDAwMDHQMDAwMDAwMdHR0dHR0dHR0dAwMMDBgYGBgYGBgYGBgdHR0dHR0dHR0dHR0dHR0dAwMDKh0dHR0dHR0dKiodHSoqHR0dHR0dHR0dHR0dHR0dHR0dHR0dHSodHR0dHR0dKh0qKiodHR0dKioDHQMDAwMDKioDAyoqAwMDHSoqKioqKioqAyoqKiodHSodHR0DAyoqGBgYGBgYGBgYGB0dGRkdHR0dHRkdGh0dAyoDAwMqHR0dHR0dKioqKh0dKiodHR0dHR0dHR0dHR0dHR0dHR0dHR0dKh0dHR0dHR0qHR0qHR0qHR0qKgMqAwMDKioqKgMDKioDAwMqKioDKioqKioqKh0dHR0qHSoqKioqKioYGBgYGBgYGBgYAwMdHR0DHSoqKioqKioqKgMDAyodHR0dHR0dHR0qHR0dKh0dHR0dHR0dHR0dHR0dHR0dHR0dHR0qHR0dHR0dHSodHSodHR0dHSoqAx0DAwMDAwMqAwMDKgMDAyoqHSoqKioqKioqKioqKioqKh0dAwMqKhgYGBgYGBgYGBgdGioqKioqKiodAwMDAwMDKgMDAyodHR0dHR0dHSoqHR0qKh0dHR0dHR0dHR0dHR0dHR0dHR0dHR0qHR0dHR0dHSodHSodHR0dHSoqAx0DAwMDAyoqAwMqKgMDAyoqKioqKioDAwMqKioqHR0qHR0dAwMqKhgYGBgYGBgYGBgdHR0dHR0dHSoqKioqKioqAx0qHR0dHR0dKioqHR0dKh0dHR0qKiodHSodKh0dKioqHR0qKiodHR0qKiodHR0dHR0dHR0dHR0qKioqAwMDKioqAwMDKgMDAwMqKh0qKioqKioDKioqKioqKioqKioqKioYGBgYGBgYGBgYHR0dHR0dHR0dGh0qKioqKgMDAwMDHR0dHR0dHR0qHR0dKh0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dKh0dHR0dHR0dHR0dHR0dHR0qKgMdAwMDAwMqAwMDKgMDAwMqKioqKioqAwMqHR0dKiodKiodHQMDKioYGBgYGBgYGBgYKioqKioqKg0dHR0dHR0dHQMDAw0dHR0dHR0dHSodHR0qHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0qHR0dHR0dHR0dHSodHR0dHSoqAx0DAwMDAyoDAwMqAwMDAyoqKioqKioDAyoqKioqKh0dKh0dAwMqKhgYGBgYGBgYGBgqHR0DKioqKioqKioqKioqAwMDAx0dHR0dHR0dHSodHR0qHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0DAx0DAwMDAyoDAwMqAwMDAx0dKioqKh0dHQMdHR0dHR0dHR0dAwMqKhgYGBgYGBgYGBgdHR0dHR0dHR0ZHR0dHR0dKgMDAyodHR0dHR0dHR0dHR0dHR0dHR0qKiodHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0qHR0dHR0dHR0dKh0qKh0dHR0dHR0qKioDKioqKgMDAwMDAyoDKgMDAwMDAwMDKioqKioqGBgYGBgYGBgYGCoqAwMdKioqKioqKioqKiopKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKioqKhopKSkpKSkpKSkpKSkpKSkdGBgYGBgYGBgYGAwMKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKSkqKSopKSkpKSopKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkqKSopKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSoqKSkpKSkqKSopKSkpKSkpKhgYGBgYGBgYGBgqKikpKSkqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKh0NDQ0NHQ0NCA0NDAgSEhISEggdEh0dHQMDHR0dHR0dGBgYGBgYGBgYGB0dHR0dHR0dHR0MAx0DHQMVEBUQAwMdHR0dHR0dHSodHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0qKioqAwMDAwMDAwMDAwMDAwMMAwMdHR0dHQMDAwMDAwMDAwMDKgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyoMDB0dHR0dHQMdHR0dHR0qHR0NDQwNHR0dHR0ICCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpGBgYGBgYGBgYGAwMHR0dHSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKRgYGBgYGBgYGBgpKSkpKSkdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHSodKioqKiodKiodHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0lJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJicnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycdHR0dHR0dHR0qHR0dHSoqHR0dHR0dHSodKh0dHR0qKh0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dKh0dHR0qKh0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHSodHR0dKiodHR0dHR0dKh0dHR0qKh0dHR0dHR0dHR0dHR0dHSodHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dKh0dHR0qKh0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0qKgMDAx0MHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dKioqKioqHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dKiodHR0dHR0qKgwdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0MHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0VECoqKh0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0MDAwdHR0dHR0dHR0dHSoqKioqKiodHR0dHR0dHR0dHR0dHR0dHR0DAwMDKioqKioqKioqHR0dHR0dHR0dHR0dHR0dHR0dHQMDAwwMKioqKioqKioqHR0dHR0dHR0dHR0dHR0dHR0dAwMqKioqKioqKioqKiodHR0dHR0dHR0dHR0dKh0dHSoDAyoqKioqKioqKioqKikpKSkpKSkpKSkpKSkpKSkpKSkpDAwUKQwdDBopKSoqGBgYGBgYGBgYGCoqKioqKh0dHR0dHR0dHR0qKioqKiodHRISDAwNHRISHQMDAwgDGBgYGBgYGBgYGCoqKioqKh0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHSoqKioqKiodHR0dHQMDHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHQMdKioqKiodHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0qKioqKioqKioqHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHSoDAwMDAwMDAwMDAwMqKioqAwMDAwMDAwMDAwMDKioqKh0qKioSEhgYGBgYGBgYGBgpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkqKikpKSkpKioqKioqKioqKiopKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSoqKiopKSkpKSkpKSkpKSkpKSkpKioqKioqGBgYGBgYGBgYGCkqKiopKR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dAwMDAwMqKh0dKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkqKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkqKgMYGBgYGBgYGBgYKioqKioqGBgYGBgYGBgYGCoqKioqKikpKSkpKSkpKSkpKSkpKioDAwMDAwMDAwMDAwMDAwMDKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgMDAwMDHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0DAwMDAwMDAwMDAwMdHR0dHR0dHSoqKhgYGBgYGBgYGBgMDB0MDAwMHR0dHR0dHR0dHQMDAwMDAwMDAx0dHR0dHR0dHQwMKgMDAx0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHQMDAwMDAwMDAwMDAwMdHRgYGBgYGBgYGBgdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHQMDAwMDAwMDAwMDAwMDKioqKioqKiodHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0DAwMDAwMDAwMDAwMDAwMDAwMDAyoqKgwMDAwMGBgYGBgYGBgYGCoqKh0dHRgYGBgYGBgYGBgdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0MDB0dHR0dHR0dHSoqKioqKiodHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dKiodHR0dHR0dHSoqKioqKioqAwMDHQMDAwMDAwMDAwMDAwMDAwMDAwMDAx0dHR0DHR0dHR0dAx0dAwMDHSoqKioqAwMDAwMDAwMDAwMDAwgDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDCAMDAx0dHR0dHR0dHR0dHR0dHR0dHR0dHR0qKh0dHR0dHSoqHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0qKh0dHR0dHSoqHR0dHR0dHR0qHSodKh0qHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHSoqHR0dHR0qHR0dHR0dHR0dHR0dHR0qKh0dHR0dHSodHR0dHR0dHR0dHR0dHR0dHR0dKiodHR0qHR0dHR0dHQ0dKgwMDAwMDAwIDAwMBwMKAwMMCAwMCxwcHRYWFRYWFhUWHBwdHRMTEwwAAAMDAwMDCBkZGRkZGRkZHRYWHBQUHR0dHRcVEBQUFB0dHR0dHR0dHR0dHQwZDAwMDB0MDAwGHR0dHSoDAwMDAwMDAwMDHR0qKhwdHR0dHR0dHRUQHB0cHBwcHR0dHR0dHR0VECodHR0dHR0dHR0dHR0dKioqGhoaGhoaGhkaGhoaGhoaGhoaGhoaGhkaGhoaGRoaGRoaGhoaGhoaGhoaGhoaGgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyoqKioqKioqKioqKioqKh0dHRkdHB0dHRkdHR0dHR0dHR0cHR0aHR0dHR0dHR0dHRwcHR0dHR0dHR0cHR0dHR0dHR0dHR0dHR0dHR0dHR0cHB0dHR0dHB0dHB0cHBwcHBwcHBwcHBwdHR0dHBwcHBwcHBwcHB0dHR0dHR0dHRwdHSoqKiocHBwcHBwcHBwcHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0cHRwdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHB0cHB0dHRwcHR0cHR0dHB0cGhodHB0dHR0cHR0cHBwcHR0cHRwdHBwcHBwcHRwdHR0dHRwcHBwdHR0dHBwdHR0dHR0dHRwdHR0cHR0dHR0cHR0dHR0dHR0dHR0dHRwcHR0cHBwcHR0cHB0dHBwdHR0dHR0dHR0dHR0dHR0dHBwdHRwcHR0dHR0dHR0dHR0dHRwdHR0cHR0dHR0dHR0dHR0cHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRwdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRMdHR0dHR0dHR0dHR0dHR0dFRAVEB0dHR0dHRwdHR0dHR0dJCQdHR0dHR0dHR0dHR0dFRAdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0kJCQkHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dKioqKioqKioqKioqKioqKioqKioqKioqKh0dHR0dHR0dHR0dKioqKioqKioqKioqKioqKioqKioqHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHB0dHR0cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHR0dHR0dHR0dHR0cHBwcHBwcHBwcHBwcHBwcHR0cHBwcHR0dHR0dHR0dHRwcHRwcHBwcHBwdHR0dHR0dHRwcHR0cHB0dHR0cHB0dHR0cHBwdHRwdHRwcHBwdHR0dHR0dHR0dHR0dHR0dHBwcHB0dHR0dHR0dHRwdHR0dHR0dHR0dHR0dHR0dJCQkJB0cHB0dHB0dHR0cHB0dHR0kJBwcJB0kJCQfJCQdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dJCQkHR0dHRwdHB0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHBwdHBwcHRwkHBwdHBwdHB0dHR0dHR0dHR0dHR0dHSQdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0cHB0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dJCQkJCQkJCQkHBwcHCQdJCQkHCQkHBwcJCQcHCQcHCQkJB0cHR0dHRwcJBwcHBwcHCQkJCQkHCQkHyQcHCQkJCQkHR0dJCQfHx8fHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0cHR0dFhYWFhYWHRISJB0dHRUQFRAVEBUQFRAVEBUQHBwcHBwcHBwcHBwcHBwcHBwcHBwdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRUQHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRUQFRAVEBUQFRAdHR0dHR0dHR0dHR0dHR0dFRAVEBUQFRAVEBUQFRAVEBUQFRAVEB0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRUQFRAdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRUQHR0dHR0dHR0dHR0dHR0dHR0dHR0dHBwcHBwdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHSoqHR0dHR0dHR0dHR0dHR0dHR0dHR0dHSodHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHQMDAx0dKioqKioSDAwMHRIMHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0qHSoqKioqHSoqHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHSoqKioqKiodDCoqKioqKioqKioqKioqAx0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dKioqKioqKioqHR0dHR0dHSodHR0dHR0dKh0dHR0dHR0qHR0dHR0dHSoDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxYWFhYWFhYWFhYWFhYWDAwMDAwMDAwdDBUMHR0WFh0dFhYVEBUQFRAVEAwMDAwSHQwMHQwMHR0dHR0LCwwMDB0MDBUMDAwMDAwMDB0MHQwMHR0dEhIVEBUQFRAVEAwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQqJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCoqKioqKioqKioqKiQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQqKioqKioqKioqKioqKioqKioqKioqKioqKiQkJCQkJCQkJCQkJCoqKioMEBAkJBQkJBUQFRAVEBUQFRAkJBUQFRAVEBUQFBUQECQkJCQkJCQkJCQDAwMDAwMkJCQkJAMkJCQkJBQUJCQkKh4kHiQeJB4kHiQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQeJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJB4kHiQeJCQkJCQkHiQkJCQkJB4eKioDAxQUFBQkFB4kHiQeJB4kHiQkJCQkJCQkJCQkJCQkJCQkJCQkJCQeJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJB4kHiQeJCQkJCQkHiQkJCQkJB4eJCQkJBQeFBQkKioqKiokJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKiQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCoqKioqKioqKioqKh4eHh4eHh4eHh4eHh4eHh4kJCQkJCQkJBwcHBwcHBwcJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkFCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCoqKiQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCoqKioqKioqKh0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0MDB0dHR0dHR0dHR0dHR0MEgwdHR0dHR0dHR0dHR0dHR0dGBgYGBgYGBgYGB0dKioqKioqKioqKioqKioqKioqKiodHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHQMDAwMdAwMDAwMDAwMDAx0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHQMDHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dAwMdDAwMDAwqKioqKioqKh0dHR0dHR0dHR0dKioqKiodHSodKh0dHR0dKioqKioqKioqKioqKioqKioqKioqKioqHR0dHR0dHR0dHR0dHR0DHR0dAx0dHR0DHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0DAwMDAx0dHR0DKioqHR0dHR0dHR0ZHSoqKioqKh0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0NDRISKioqKioqKioDAx0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dAwMDAwMDAwMDAwMDKioqKioqKioMDBgYGBgYGBgYGBgqKioqKioDAwMDAwMDAwMDAwMDAwMDAwMdHR0dHR0dHR0dDR0dAxgYGBgYGBgYGBgdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dAwMDAwMDAwMMDB0dHR0dHR0dHR0dHR0dHR0DAwMDAwMDAwMDAwMDKioqKioqKioqKiodJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUqKioDAwMDHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0DAwMDAwMDAwMDAwMDHR0dHR0dDAwMHR0dHSodGBgYGBgYGBgYGCoqKiodHSkpKSkpKSkpKSkpKSkpKSkYGBgYGBgYGBgYKSkpKSkqHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0DAwMDAwMDAwMDAwMDAyoqKioqKioqKh0dHQMdHR0dHR0dHQMDKioYGBgYGBgYGBgYKiodDAwMKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkqKioqKioqKioqKioqKioqKioqKioqKiopKSkpKR0dHR0dHR0dHR0dAwMDAwMMDB0dHQMDKioqKioqKioqHR0dHR0dKiodHR0dHR0qKh0dHR0dHSoqKioqKioqKh0dHR0dHR0qHR0dHR0dHSodHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHSoqKiodHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHQMDAwMDAwMDDAMDKioYGBgYGBgYGBgYKioqKioqISIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiEiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIhIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiISIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIioqKioqKioqKioqKiYmJiYmJiYmJiYmJiYmJiYqKioqJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJyoqKioFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKh0dHR0dHR0qKioqKioqKioqKiodHR0dHSoqKioqIwMjIyMjIyMjIyMjHSMjIyMjIyMjIyMjIyMqIyMjIyMqIyojIyojIyojIyMjIyMjIyMjHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dKioqKioqKioqKioqKioqKh0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dEBUdHR0dHR0dHR0dHR0dHR0dKiodHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dKioqKioqKh0qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKh0dHR0dHR0dHR0dHRkdHR0DAwMDAwMDAwMDAwMDAwMDFxAQFxcSEhUQEyoqKioqKgMDAwMDAwMDAwMDAwMDAwMkJCQkJBUQFRAVEBUQFRAVECQkFRAkJCQkJCQkECQQKhQUEhIkFRAVEBUQJCQkJCQkJCQqJBoZJCoqKiodHR0dHSodHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dKioGKhIkJBoZJCQVECQkECQQJCQkJCQkJCQkJCQUFCQkJBIkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQVJBAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQVJBAkFRAQFRAQFCQeHh4eHh4eHh4eJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkFBQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKiokJCQkJCQqKiQkJCQkJCoqJCQkJCQkKiokJCQqKioZGiQkJBoaKh0dHR0dHR0qKioqKioqKioqAwMDDxwqKh0dHR0dHR0dHR0dKh0dKh0MDAwqKioqHR0dHR0dHR0dHR0dHQMqKh0dHR0dHQMDAwMDKioqKiodHR0dHR0dHR0dHR0dHSoMHR0dHR0qKioqKioqKioqKh0dHSodHSodHR0dHR0dHR0qHR0dHR0dHSodHSoqKh0qHR0dHR0dHR0dKioqKiodHR0dHR0qKh0qHR0dHR0dKh0dKioqHSoqHR0dHR0dKgwdHR0dHR0dHSodHSoqKioqHR0dHR0dHR0dHR0dKioqDB0DAwMqAwMqKioqKgMDAwMdHR0dHR0qKgMDAyoqKioDDAwMDAwMDAwdKioqKioqKh0dHR0dAwMqKioqHR0dHR0MDAwMDAwTKioqKioqKioqHR0dHR0dKioqDAwMDAwMDB0dKioqKioqKh0dHR0qKiodHR0dHR0dHR0dKgMDDCoqAx0dHR0dHR0dHSoqKioqKh0dAwMDAx0dHR0qKioqKioDAwMDAwMDDAwdHR0dHSoqAx0dAwMdKioqKioqKioqAwMDAwMDAwMDAwMdHR0MDAMqKioqKioqKioqHSoqAwMDAwMqGBgYGBgYGBgYGAwMDAwdAwMdKioqKioqKiodHR0DHQ0dKioqKioqKioqAx0dHR0MDB0MAwMDAx0DAxgYGBgYGBgYGBgdDR0MDAwDAwMDAwMDAwwMHQwMHQMdAyoqKioqKioqKioqKioqHR0dHR0dHSodKh0dHR0qHR0dHR0dHR0dDCoqKioqKgMDAwMqHR0dHR0dHR0qKh0qHR0qHR0dHR0qAwMdAwMdKioqKioqAyoqKioqHR0dAwMqKgMDAwMDAwMqKioDAwMDAwMDHR0dHQwMDAwdGBgYGBgYGBgYGAwMKh0DHQMDAwMdHR0dKioqKioqKioDAwMDAwMqKgMDAwMDAwMDDQwMEhIdHR0MDAwMDAwMDB0dHR0DAyoqAwwMHR0qKioqKioqKioqKg0NDQ0NDQ0NDQ0NDQ0qKioDAwMDAwMDAx0dKioqKioqGBgYGBgYGBgYGCkpDAwMKR0dHR0dHR0qKh0qKh0dHR0qHR0qHR0dHR0dHR0DAwMDAwMqAwMqKgMDAwMdAwMMDAwqKioqKioqKiodAwMDAwMDAyoqAwMDAwMDHQ0dAyoqKioqKioqKioqHR0dAwMDAwMDAx0DAwMDDR0MDAwMDR0DKioqKioqKiodAwMDAwMDAwMDAwMdHR0dAwMDAwMDAwMDAwwMDB0NDQwMKioqKioqKioqKioqKg0NDQ0NDQ0NDQ0qKioqKiodDAwMDAwqKioqKioqKioqDRIdHR0dHR0dHR0dHR0dHQMDAwMDAyoqKgMqAwMqAwMDAwMDHQMqKioqKioqKh0dHR0dHSodHSodHR0dHR0DAyoDAwMDAx0qKioqKioqHR0dAwMDAx0dKioqKioqKgMDHQMdHR0dHR0dHR0dHR0DAwMDAwMDKioqAwMDDAwkJCQkJCQkJCQkJB0dHR0dHR0dHR0dHR0ZGRkdHR0dHR0dHR0dHR0dHR0qKioqKioqKioqKioqDAwMDAwqKioqKioqKioqKh0dHR0dHR0dFRUVEBAQHR0QHR0dFRAVEB0dHR0dHR0dHRUQEB0dHR0ICAgICAgIFRAICAgVEBUQAx0dHR0dHQMDAwMDAwMDAxgYGBgYGBgYGBgqKioqDAwDAwMDAwwqKioqKioqKioqAwMDAwMDAwwMDB0dHR0dHQwdKioqKioqKioqKhgYGBgYGBgYGBgqHR0dHR0dHQwMHR0qKioqKgMDAwMDAwMDKioqKioqKgMUFBQUCCoqKioqKioqKioqHioqKioqKioqKioqKioeHh4qKh4qKioqKioqKioqHh4eHioqKioqKioqHR0dHR0dHR0dHSoqHQMDDB0dHR0dAwMDAwMdHR0DAwMdHQMDAwMDAwMdHR0dHR0dHR0dAwMDAx0dAwMDHSoqKioqKioqKiodKiodHSoqHR0dHSodHR0dHR0dHR0dKh0qHR0dHR0qHSoqKh0dHR0dHR0dHR0dHSoqGBgYGBgYGBgYGBgYGBgYGB0dHR0dAx0dHR0dHR0dHR0DHR0MDAwMHSoqKioqHR0dHR0dKioqKioDAwMDAwMDAwMqKgMDAwMDKgMDKgMDAwMDKioqKioDAwMDAwMDHR0dHR0dHSoqHR0dHR0dHR0dHR0dHR0DKhgYGBgYGBgYGBgqKioqKhodHR0dHR0dKh0dHR0qHR0qHR0dHQMDAwMDAwMdKioqKhgYGBgYGBgYGBgqKioqFRUZHR0dHSoqKioqKioqKioqHR0qHSoqHSodHR0dHR0dKh0dHR0qHSodKioqKh0qKioqHSodKh0qHR0dKh0dKh0qKh0qHSodKh0qHR0qHSoqHR0dHSodHR0dKh0dHR0qHSodHR0qHR0dHR0qHR0dHR0cHBwcHBwcHBwcHBwcJCQkHBwcHBwcHBwcHB0dHSQkJCQkJCgoKCgoKCgoKCgoKCgoKCgkJCQkJB8kJCQkJCQkJCQkJCQdHSQkJCQkHSQkJB8fHyQkHyQkHx8fJCQkJCQkJCQkJCQgICAgICQkHx8kJB8fHx8fHx8fHx8kJCQkJCQkJCQkJCQkJCQfHx8fHx8fHx8fJCQkHyQkJB8fHyQfHx8kJCQkJCQkHyQkJCQkJCQkJCQkJCQkHSQdJB0kJCQkJB8kJCQkHR0kJCQkJCQkJCQkJCQkHR0dHR0kJCQkJCQkJCQkJB8fJCQkJB8kJCQkJB8kJCQkHx8kJCQkJCQkJCQdHR0dHR0dHSQkJCQdHR0dHR0kJCQkJCQfHx8kJCQfHx8fHx0dHR0dHRYWFhQUFB0dHR0kJCQkHx8fJCQkJCQkJCQkJCQfJCQkHR0dHSQkJCQkJCQkJCQkJB0dHR0dHR0dHR0dHR8kJB8fHx8fHx8fHx8kJB8fHyQkJCQkHx8kHx8kHyQkJCQfHx8fHx8fHx8fHx8fJCTAwcLdxN3Gx8jJ3cvMzc7P0NHS09TV1tfY2drb3d3U3+Dh4uPk5ebn6N3d68DBAt3E3cbHyMndy8zNzs/Q0dLT1NXW19jZ2tvd3dTf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AM/QAAAAAAAAANAAQaP74gALA9EA0gBBwPviAAss0wAA1NXW1wDY2QAA2tvc3d7fM+Dh4uPkM+Uz5gAAAOcAAAAA6OkzMwDq6+wAQYD84gALwAEzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMz4QQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAQYD+4gALwAJVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVXtVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVXddVcf/1Xf9VVVVVVdVVVVVVVVVV1VVVVdX9XVdVVVVVVVVVVVVVVQBB3IDjAAspVVVVVVXVVVVVVVVVVVVVVVVVVVUVAFBVVVVVVVVVVVVVVVVVVVVVVQEAQY+B4wALtAEQQRBVVVVVVVVVVVVVVVVVVVVRVVUAAEBUVVVVVVVVVVVVVRUAAAAAAFVVVVVUVVVVVVVVVVUFABQAFARQVVVVVVVVVRVRVVVVVVVVVQAAAAAAAEBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVBQAAVFVVVVVVVVVVVVVVVVUVAABVVVFVVVVVVQUQAAABAVBVVVVVVVVVVVVVAVVVVVVVVVVVVVVVVVVQVQAAVVVVVVVVVVVVVQUAQdCC4wAL4w1AVVVVVVVVVVVVVVVVVUVUAQBUUQEAVVUFVVVVVVVVVVFVVVVVVVVVVVVVVVVVVUQBVFVRVRVVVQVVVVVVVVVFQVVVVVVVVVVVVVVVVVVVVEEVFFBRVVVVVVVVVVBRVVUBEFRRVVVVVQVVVVVVVQUAUVVVVVVVVVVVVVVVVVVVBAFUVVFVAVVVBVVVVVVVVVVFVVVVVVVVVVVVVVVVVVVFVFVVUVUVVVVVVVVVVVVVVVRUVVVVVVVVVVVVVVVVVQRUBQRQVUFVVQVVVVVVVVVVUVVVVVVVVVVVVVVVVVVVFEQFBFBVQVVVBVVVVVVVVVVQVVVVVVVVVVVVVVVVVRVEAVRVUVUVVVUFVVVVVVVVVVFVVVVVVVVVVVVVVVVVVVVVVUUVBURVFVVVVVVVVVVVVVVVVVVVVVVVVVVVUQBAVVUVAEBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVRAABUVVUAQFVVVVVVVVVVVVVVVVVVVVVVVVBVVVVVVVURUVVVVVVVVVVVVVVVVVUBAABAAARVAQAAAQAAAAAAAAAAVFVFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQEEAEFBVVVVVVVVUAVUVVVVAVRVVUVBVVFVVVVRVVVVVVVVVVWqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqoAAAAAAAAAAFVVVVVVVVUBVVVVVVVVVVVVVVVVBVRVVVVVVVUFVVVVVVVVVQVVVVVVVVVVBVVVVVVVVVVVVVVVVVVVVVUQAFBVRQEAAFVVUVVVVVVVVVVVVVUVAFVVVVVVVVVVVVVVVVVBVVVVVVVVVVVRVVVVVVVVVVVVVVVVVUAVVFVFVQFVVVVVVVUVFFVVVVVVVVVVVVVVVVVVRQBARAEAVBUAABRVVVVVVVVVVVVVVVUAAAAAAAAAQFVVVVVVVVVVVVVVVQBVVVVVVVVVVVVVVVUAAFAFVVVVVVVVVVVVFQAAVVVVUFVVVVVVVVUFUBBQVVVVVVVVVVVVVVVVVUVQEVBVVVVVVVVVVVVVVVVVVQAABVVVVVVVVUAAAAAEAFRRVVRQVVVVFQDXf19ff/8FQPdd1XVVVVVVVVVVVQAAAABVV1VV/VdVVVVVVVVVVVVXVVVVVVVVVVUAAAAAAAAAAFRVVVXVXV1V1XVVVX1VVVVVVVVVVVVVVdVX1X////9V//9fVVVVXVX///9VVVVVdVVVX1VVVVX1dVdVVVXVVVVVVVVV99ff111ddf3X//93Vf9VX11VX1d1VVVVf//19V9VVVX1/19VVV1dVVVdVVVVVVXVVVVVVXVVpVVVVWlVVVVVVVVVVVVVVVVVVVWpVpZVVVVVVVVVVVVVVf/////////////////////////////////////////////f//////////9V////////////VVVV//////VfVVXf/19V9fVVX1/11/VfVVVV9V9V1VVVVWlVfV31VVpVd1VVVVVVVVVVd1WqqqpVVVXf33/fVVVVlVVVVVWVVVX1WVWlVVVVVelV+v/v//7//99V7/+v++/7VVmlVVVVVVVVVVZVVVVVXVVVVWaVmlVVVVVVVVX1//9VVVVVValVVVVVVVVWVVWVVVVVVVVVlVZVVVVVVVVVVVVVVVVW+V9VVVVVVVVVVVVVVVVVVVVVVVVVVRVQVVVVVVVVVVVVVVVVVVVVVVVVFVVVVVVVVVVVAAAAAAAAAACqqqqqqqqaqqqqqqqqqqqqqqqqqqqqqqqqqqqqqlVVVaqqqqqqWlVVVVVVVaqqqqqqqqqqqqqqqqqqCgCqqqpqqaqqqqqqqqqqqqqqqqqqqqqqqqqqaoGqqqqqqqqqqqpVqaqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqKqqqqqqqqqqqmqqqqqqqqqqqqqqqqqqqqqqqqqqqqpVVZWqqqqqqqqqqqqqqmqqqqqqqqqqqqqq//+qqqqqqqqqqqqqqqqqqqpWqqqqqqqqqqqqqqqqqmpVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVFUAAAFBVVVVVVVVVBVVVVVVVVVVVVVVVVVVVVVVVVVVVUFVVVUVFFVVVVVVVVUFVVFVVVVVVUFVVVVVVVQAAAABQVUUVVVVVVVVVVVVVBQBQVVVVVVUVAABQVVVVqqqqqqqqqlZAVVVVVVVVVVVVVVUVBVBQVVVVVVVVVVVVUVVVVVVVVVVVVVVVVVVVVVUBQEFBVVUVVVVUVVVVVVVVVVVVVVVUVVVVVVVVVVVVVVVVBBRUBVFVVVVVVVVVVVVVUFVFVVVVVVVVVVVVVVVRVFFVVVVVqqqqqqqqqqqqVVVVAAAAAABAFQBBv5DjAAuhCFVVVVVVVVVVRVVVVVVVVVVVAAAAAKqqWlUAAAAAqqqqqqqqqqpqqqqqqmqqVVVVVVWqqqqqqqqqqlZVVVVVVVVVVVVVVVVVVQVUVVVVVVVVVVVVVVVVVVVVqmpVVQAAVF1VVVVVVVVVVVVVVVVVVVVRVVVVVVVVVVVUVVVVVVVVVVVVVVVVVVVVVVVVVVUFQFUBQVUAVVVVVVVVVVVVVUAVVVVVVVVVVVVVQVVVVVVVVVVVVVVVVVVVVQBVVVVVVVVVVVVVVVVVVVVVFVRVVVVVVVVVVVVVVVVVVVVVVVVVAVUFAABUVVVVVVVVVVVVVVUFUFVVVVVVVVVVVVVVVVVVUVVVVVVVVVVVVVVVVVUAAABAVVVVVVVVVVVVVRRUVRVQVVVVVVVVVVVVVVUVQEFVRVVVVVVVVVVVVVVVVVVVVUBVVVVVVVVVVRUAAQBUVVVVVVVVVVVVVVVVVVUVVVVVUFVVVVVVVVVVVVVVVQUAQFVVARRVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVRVQBFVFVVVVVVVVVRUVAEBVVVVVVVRVVVVVFVVVVQUAVABUVVVVVVVVVVVVVVVVVVVVVQAABURVVVVVVUVVVVVVVVVVVVVVVVVVVVVVVVVVVRQARBEEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUVBVBVEFRVVVVVVVVQVVVVVVVVVVVVVVVVVVVVVVVVVVUVAEARVFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUVUQAQVVVVVVVVVVVVAQUQAFVVVVVVVVVVVVVVVVVVVVUVAABBVVVVVVVVVVVVVVVVVVRVFUQVVVVVVVVVVVVVVVVVVVVVVVVVVVUABVVUVVVVVVVVVQEAQFVVVVVVVVVVVRUAFEBVFVVVAUABVVVVVVVVVVVVVVUFAABAUFVVVVVVVVVVVVVVVVVVVVVVVVVVVQBAABBVVVVVBQAAAAAABQAEQVVVVVVVVVVVVVVVVVVVAUBFEAAQVVVVVVVVVVVVVVVVVVVVVVVVUBFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVFVRVVVBVVVVVVVVVVVVVVVUFQFVEVVVVVVVVVVVVVVVVVVVVVBUAAABQVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQBUVVVVVVVVVVVVVVVVVVUAQFVVVVVVFVVVVVVVVVVVVVVVVVVVVRVAVVVVVVVVVVVVVVVVVVVVVVVVVapUVVVaVVVVqqqqqqqqqqqqqqqqqqpVVaqqqqqqWlVVVVVVVVVVVVWqqlZVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVqqmqaaqqqqqqqqqqalVVVWVVVVVVVVVVallVVVWqVVWqqqqqqqqqqqqqqqqqqqqqqqqqVVVVVVVVVVVBAFVVVVVVVVUAQeuY4wALRVAAAAAAAEBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVRFQBQAAAABAAQBVVVVVVVVVBVBVVVVVBVRVVVVVVVVVVVVVVVVVVQBBvZnjAAsCQBUAQcuZ4wAL+AZUVVFVVVVUVVVVVRUAAQAAAFVVVVUAQAAAAAAUABAEQFVVVVVVVVVVVVVVVVVVVVVFVVVVVVVVVVVVVVVVVVVVAFVVVVVVVVVVAEBVVVVVVVVVVVVVVQBAVVVVVVVVVVVVVVVVVVVWVVVVVVVVVVVVVVVVVVVVVVWVVVVVVVVVVVVVVVVV//9/Vf////////9f//////////////////9fVf/////////vq6rq/////1dVVVVValVVVaqqqqqqqqqqqqqqVaqqVlVaVVVVqlpVVVVVVVWqqqqqqqqqqlZVVamqmqqqqqqqqqqqqqqqqqqqqqqqpqqqqqqqVVVVqqqqqqqqqqqqqmqVqlVVVaqqqqpWVqqqqqqqqqqqqqqqqqqqqqqqaqaqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqWqqqqqqqqqqqqqqqqqqqqWlVVlWqqqqqqqqpVVVVVZVVVVVVVVWlVVVVWVVVVVVVVVVVVVVVVVVVVVVVVVVWVqqqqqqpVVVVVVVVVVVVVVVWqWlVWaqlVqlVVlVZVqqpWVVVVVVVVVVWqqqpVVlVVVVVVVaqqqqqqqqqqqqqqaqqqmqqqqqqqqqqqqqqqqqqqVVVVVVVVVVVVVVVVqqqqVqqqVlWqqqqqqqqqqqqqqpqqWlWlqqqqVaqqVlWqqlZV////////////////////X0VtcHR5SW52YWxpZERpZ2l0UG9zT3ZlcmZsb3dOZWdPdmVyZmxvd1plcm8wMTIzNDU2Nzg5YWJjZGVmL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvdXVpZC0xLjEwLjAvc3JjL2ZtdC5ycwAAG88YAFsAAAC5AAAADQAAABvPGABbAAAAsQAAABUAAAAbzxgAWwAAALQAAAANAAAAG88YAFsAAAC1AAAADQAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3dhc20tYmluZGdlbi0wLjIuOTkvc3JjL2NhY2hlL2ludGVybi5yc7jPGABsAAAAGwAAACsAAAAAAAAA//////////840BgAQdCg4wALtgRUcmllZCB0byBzaHJpbmsgdG8gYSBsYXJnZXIgY2FwYWNpdHlQ0BgAJAAAAC9ydXN0Yy85MGIzNWE2MjM5YzNkOGJkYWJjNTMwYTZhMDgxNmY3ZmY4OWEwYWFmL2xpYnJhcnkvYWxsb2Mvc3JjL3Jhd192ZWMucnN80BgATAAAAKYCAAAJAAAASnNWYWx1ZSgpAAAA2NAYAAgAAADg0BgAAQAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3dhc20tYmluZGdlbi1mdXR1cmVzLTAuNC40OS9zcmMvcXVldWUucnMAAAD00BgAbQAAACUAAAAuAAAA9NAYAG0AAAAoAAAAKQAAAPTQGABtAAAAPgAAABoAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi93YXNtLWJpbmRnZW4tZnV0dXJlcy0wLjQuNDkvc3JjL3Rhc2svc2luZ2xldGhyZWFkLnJzAAAAlNEYAHkAAAAiAAAAFQAAAJgFAACZBQAAmgUAAJsFAACU0RgAeQAAAGcAAAAlAAAAY2xvc3VyZSBpbnZva2VkIHJlY3Vyc2l2ZWx5IG9yIGFmdGVyIGJlaW5nIGRyb3BwZWQAAJwFAAAEAAAABAAAAJ0FAACeBQBBkKXjAAu0AQEAAACfBQAAY2Fubm90IGFjY2VzcyBhIFRocmVhZCBMb2NhbCBTdG9yYWdlIHZhbHVlIGR1cmluZyBvciBhZnRlciBkZXN0cnVjdGlvbi9ydXN0Yy85MGIzNWE2MjM5YzNkOGJkYWJjNTMwYTZhMDgxNmY3ZmY4OWEwYWFmL2xpYnJhcnkvc3RkL3NyYy90aHJlYWQvbG9jYWwucnMAAADe0hgATwAAAAQBAAAaAAAAAAAAgABB3KbjAAv8UwECAgIAAAABAQICAggAAAANAAAADwAAAGvxEABz8RAAgPEQAAAAAAABAAAAAQAAAAgAAAANAAAADwAAAGvxEABz8RAAgPEQAAgAAAANAAAADwAAAGvxEABz8RAAgPEQAAYAAAAGAAAACAAAAAcAAADQexAAuiUSANZ7EADeexAAUJsQAFKbEABUmxAAVpsQAFibEABamxAAXJsQAF6bEABgmxAAYpsQAGSbEABmmxAAaJsQAGqbEABsmxAAbpsQAHCbEAAsoxAAPKMQAEyjEABcoxAAXKMQAGyjEAB8oxAAjKMQAJyjEACsoxAAvKMQAMyjEADcoxAA7KMQAPyjEAAMpBAAHKQQACykEAA8pBAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACcmxAAnJsQAJybEACsmxAAvJsQAMybEADcmxAA7JsQAPybEAAMnBAAHJwQACycEAA8nBAATJwQAFycEABsnBAAfJwQAIycEACcnBAArJwQALycEADMnBAA3JwQAOycEAD8nBAADJ0QAAydEAAcnRAALJ0QADydEABMnRAAXJ0QAGydEAB8nRAAjJ0QAJydEACsnRAAvJ0QALydEADMnRAA3J0Q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ANazEADesxAA5rMQAO6zEAD2sxAA/rMQAAa0EAAOtBAAFrQQAB60EAAmtBAALrQQADa0EAA+tBAARrQQAE60EABWtBAAXrQQAGa0EAButBAAdrQQAH60EACGtBAA/KwQAAKtEAAIrRAADq0QABStEAAarRAAIK0QACatEAAsrRAAMq0QADitEAA/rRAARq0QAE2tEABUrRAAW60QAGKtEABprRAAcK0QAHetEAB+rRAAha0QAIytEACTrRAAmq0QAKGtEACorRAAr60QALatEAC9rRAAxK0QAMutEADSrRAA2a0QAOCtEADnrRAA7q0QAPWtEAD8rRAAA64QAAquEAARrhAAGK4QAB+uEAAmrhAALa4QADSuEAA7rhAAQq4QAEmuEABQrhAAV64QAF6uEABlrhAAbK4QAHOuEAB6rhAAga4QAIiuEACPrhAAlq4QAJ2uEACkrhAAq64QALKuEAC5rhAAwK4QAMeuEADOrhAA1a4QANyuEADjrhAA6q4QAPGuEAD4rhAA/64QAAavEAANrxAAFK8QABuvEAAirxAAKa8QADCvEAA3rxAAPq8QAEWvEABMrxAAU68QAFqvEABhrxAAaK8QAG+vEAB2rxAAfa8QAISvEACLrxAAkq8QAJmvEACgrxAAp68QAK6vEAC2rxAAvq8QAMavEADOrxAA1q8QAN6vEADmrxAA7q8QAPavEAD+rxAABrAQAA6wEAAWsBAAHrAQACawEAAusBAANrAQAD6wEABGsBAATrAQAFawEABesBAAZrAQAG6wEAB2sBAAfrAQAIawEAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAHKbEAB0mxAAdpsQAHibEAB6mxAAfJsQAH6bEACAmxAAgpsQAISbEACHmxAAipsQAI2bEACQmxAAk5sQAJabEACZmxAA3KsQAOyrEAD8qxAADKwQAAysEAAcrBAALKwQADysEABMrBAAXKwQAGysEAB8rBAAjKwQAJysEACsrBAAvKwQAMysEADcrBAA7KwQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAATKQQAEykEABMpBAAXKQQAGykEAB8pBAAjKQQAJykEACspBAAvKQQAMykEADcpBAA7KQQAPykEAAMpRAAHKUQACylEAA8pRAATKUQAFylEABspRAAfKUQAIylEACcpRAArKUQALylEAC8pRAAzKUQANylEADspRAA/KUQAAymEAAcphAALKYQADymEABMphAAXKYQAGymEABsphAAfKYQAIymEACcphAArKYQALymEAC8phAAzKYQANymEADsphAA/KYQAAynEAAcpxAALKcQADynEABMpxAAXKcQAFynEABspxAAfKcQAIynEACcpxAArKcQALynEADMpxAA3KcQAOynEAD8pxAADKgQAByoEAAsqBAAPKgQAEyoEABcqBAAbKgQAGyoEAB8qBAAjKgQAJyoEACsqBAAvKgQAMyoEADMqBAA3KgQAOyoEAD8qBAADKkQABypEAAMpxAALKkQADypEABMqRAAXKkQAGypEAB8qRAAjKkQAJypEACsqRAAvKkQAMypEADcqRAA7KkQAPypEAAMqhAAHKoQACyqEAA8qhAATKoQAFyqEABsqhAAfKoQAIyqEACcqhAArKoQALyqEADMqhAA3KoQAOyqEAD8qhAADKsQAByrEAAsqxAAPKsQAEyrEABcqxAAbKsQAHyrEACMqxAAnKsQAKyrEAC8qxAAzKsQAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAguBAAKLgQADC4EAA4uBAAQLgQAEi4EABQuBAAWLgQAGC4EABouBAAcLgQAHi4EACAuBAAiLgQAJC4EACYuBAAoLgQAKi4EACwuBAAuLgQAMC4EADIuBAA0LgQANi4EADguBAA6LgQAPC4EAD4uBAAALkQAAi5EAAQuRAAGLkQACC5EAAouRAAMLkQADi5EABAuRAASLkQAFC5EABYuRAAYLkQAGi5EABwuRAAeLkQAIC5EACIuRAAkLkQAJi5EACguRAAqLkQALC5EAC4uRAAwLkQAMi5EADQuRAA2LkQAOC5EADouRAA8LkQAPi5EAAAuhAACLoQABC6EAAYuhAAILoQACi6EAAwuhAAOLoQAEC6EABIuhAAULoQAFi6EABguhAAaLoQAHC6EAB4uhAAgLoQAIi6EACQuhAAmLoQAKC6EACouhAAsLoQALi6EADAuhAAyLoQANC6EADYuhAA4LoQAOi6EADwuhAA+LoQAAC7EAAIuxAAELsQABi7EAAguxAAKLsQADC7EAA4uxAAQLsQAEi7EABQuxAAWLsQAGC7EABouxAAcLsQAHi7EACAuxAAiLsQAJC7EACYuxAAoLsQAKi7EACwuxAAuLsQAMC7EADIuxAA0LsQANi7EADguxAA6LsQAPC7EAD4uxAAALwQAAi8EAAQvBAAGLwQAI60EACUtBAAmrQQAKC0EACmtBAArLQQALK0EAC4tBAAvrQQAMS0EADKtBAA0bQQANi0EADftBAA5rQQAO20EAD0tBAA+7QQAAK1EAAJtRAAELUQABe1EAAetRAAJbUQACy1EAAztRAAOrUQAEG1EABItRAAT7UQAFa1EABdtRAAZLUQAGu1EABytRAAebUQAIC1EACHtRAAjrUQAJW1EACctRAAo7UQAKq1EACxtRAAuLUQAL+1EADGtRAAzbUQANS1EADbtRAA4rUQAOm1EADwtRAA97UQAP61EAAFthAADLYQABO2EAAathAAIbYQACi2EAAvthAANrYQAD22EABEthAAS7YQAFK2EABZthAAYLYQAGe2EAButhAAdbYQAHy2EACDthAAirYQ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", "base64"); + var bytes = Buffer2.from("AGFzbQEAAAABuARGYAJ/fwF/YAJ/fwBgAX8AYAN/f38Bf2ADf39/AGABfwF/YAR/f39/AGAFf39/f38AYAZ/f39/f38AYAABfmAEf39/fwF/YAABf2AHf39/f39/fwBgA39/fwF+YAAAYAJ/fwF+YAF/AX5gA39+fgBgA39+fgF/YAd/f39/f39/AX9gA39+fwBgAn5/AGAFf39/f38Bf2AGf39/f39/AX9gAn9+AGAEf35/fwBgBH5+f38BfmABfgBgAX4BfmAEf3x/fwF/YA1/f39/f39/f39/f39/AGAGf39/f35/AGACf3wAYAN/fn8Bf2AEf39/fgBgBH9/fn8AYAJ+fgF+YAJ+fgBgDn9/f39/f39/f39/f39/AX9gBn9/fn9+fwBgCX9/f39/f39/fwBgBX9/f35/AX9gCX9/f39/f35+fgBgBX9/f39/AXxgAXwBfGADfn9/AX9gBX9/f39+AGAEf35/fgF+YAZ/f39+f38AYAN/f38BfGAXf39/f39/f39/f39/f39/f39/f39/f38Bf2ATf39/f39/f39/f39/f39/f39/fwF/YA9/f39/f39/f39/f39/f38Bf2ACf34Bf2ALf39/f39/f39/f38Bf2AEf39/fABgBH5+fn8BfmADf39+AX9gAX8BfGAEf35+fwBgB35+fn9/f38BfmACfn8BfmADf39+AGACfn8Bf2ADf3x/AGAFf399f38AYAR/fX9/AGAFf398f38AYAR/fH9/AGAFf39+f38AAqITLBhfX3diaW5kZ2VuX3BsYWNlaG9sZGVyX18VX193YmluZGdlbl9zdHJpbmdfZ2V0AAEYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fFF9fd2JpbmRnZW5faXNfc3RyaW5nAAUYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fFF9fd2JpbmRnZW5faXNfb2JqZWN0AAUYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fF19fd2JpbmRnZW5faXNfdW5kZWZpbmVkAAUYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fDV9fd2JpbmRnZW5faW4AABhfX3diaW5kZ2VuX3BsYWNlaG9sZGVyX18aX193YmdfbmV3XzIzYTI2NjVmYWM4M2M2MTEAABhfX3diaW5kZ2VuX3BsYWNlaG9sZGVyX18TX193YmluZGdlbl9pc19mYWxzeQAFGF9fd2JpbmRnZW5fcGxhY2Vob2xkZXJfXyRfX3diZ19nZXR3aXRocmVma2V5XzFkYzM2MWJkMTAwNTNiZmUAABhfX3diaW5kZ2VuX3BsYWNlaG9sZGVyX18dX193YmdfbGVuZ3RoX2UyZDJhNDkxMzJjMWIyNTYABRhfX3diaW5kZ2VuX3BsYWNlaG9sZGVyX18aX193YmdfZ2V0X2I5YjkzMDQ3ZmUzY2Y0NWIAABhfX3diaW5kZ2VuX3BsYWNlaG9sZGVyX18VX193YmluZGdlbl9zdHJpbmdfbmV3AAAYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fH19fd2JnX3RvU3RyaW5nXzUyODU1OTc5NjA2NzZiN2IABRhfX3diaW5kZ2VuX3BsYWNlaG9sZGVyX18aX193YmdfbmV3XzQwNWUyMmYzOTA1NzZjZTIACxhfX3diaW5kZ2VuX3BsYWNlaG9sZGVyX18aX193Ymdfc2V0XzNmMWQwYjk4NGVkMjcyZWQABBhfX3diaW5kZ2VuX3BsYWNlaG9sZGVyX18WX193YmluZGdlbl9ib29sZWFuX2dldAAFGF9fd2JpbmRnZW5fcGxhY2Vob2xkZXJfXyBfX3diZ19uZXdub2FyZ3NfMTA1ZWQ0NzE0NzVhYWY1MAAAGF9fd2JpbmRnZW5fcGxhY2Vob2xkZXJfXxtfX3diZ19jYWxsXzY3MmE0ZDIxNjM0ZDRhMjQAABhfX3diaW5kZ2VuX3BsYWNlaG9sZGVyX18tX193Ymdfc3RhdGljX2FjY2Vzc29yX0dMT0JBTF84OGE5MDJkMTNhNTU3ZDA3AAsYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fMl9fd2JnX3N0YXRpY19hY2Nlc3Nvcl9HTE9CQUxfVEhJU181NjU3OGJlN2U5ZjgzMmIwAAsYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fLV9fd2JnX3N0YXRpY19hY2Nlc3Nvcl9XSU5ET1dfNWRlMzcwNDNhOTFhOWM0MAALGF9fd2JpbmRnZW5fcGxhY2Vob2xkZXJfXytfX3diZ19zdGF0aWNfYWNjZXNzb3JfU0VMRl8zN2M1ZDQxOGU0YmY1ODE5AAsYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fG19fd2JnX2NhbGxfN2NjY2RkNjllMDc5MWFlMgADGF9fd2JpbmRnZW5fcGxhY2Vob2xkZXJfXx1fX3diZ19sZW5ndGhfYTQ0NjE5M2RjMjJjMTJmOAAFGF9fd2JpbmRnZW5fcGxhY2Vob2xkZXJfXxFfX3diaW5kZ2VuX21lbW9yeQALGF9fd2JpbmRnZW5fcGxhY2Vob2xkZXJfXx1fX3diZ19idWZmZXJfNjA5Y2MzZWVlNTFlZDE1OAAFGF9fd2JpbmRnZW5fcGxhY2Vob2xkZXJfXxpfX3diZ19uZXdfYTEyMDAyYTdmOTFjNzViZQAFGF9fd2JpbmRnZW5fcGxhY2Vob2xkZXJfXxpfX3diZ19zZXRfNjU1OTViZGQ4NjhiMzAwOQAEGF9fd2JpbmRnZW5fcGxhY2Vob2xkZXJfXyxfX3diZ19pbnN0YW5jZW9mX1VpbnQ4QXJyYXlfMTcxNTZiY2YxMTgwODZhOQAFGF9fd2JpbmRnZW5fcGxhY2Vob2xkZXJfXxpfX3diaW5kZ2VuX29iamVjdF9kcm9wX3JlZgACGF9fd2JpbmRnZW5fcGxhY2Vob2xkZXJfXxtfX3diaW5kZ2VuX29iamVjdF9jbG9uZV9yZWYABRhfX3diaW5kZ2VuX3BsYWNlaG9sZGVyX18UX193YmluZGdlbl9lcnJvcl9uZXcAABhfX3diaW5kZ2VuX3BsYWNlaG9sZGVyX18ZX193YmluZGdlbl9qc3ZhbF9sb29zZV9lcQAAGF9fd2JpbmRnZW5fcGxhY2Vob2xkZXJfXxVfX3diaW5kZ2VuX251bWJlcl9nZXQAARhfX3diaW5kZ2VuX3BsYWNlaG9sZGVyX18tX193YmdfaW5zdGFuY2VvZl9BcnJheUJ1ZmZlcl9lMTQ1ODU0MzJlMzczN2ZjAAUYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fHl9fd2JnX2VudHJpZXNfMzI2NWQ0MTU4YjMzZTVkYwAFGF9fd2JpbmRnZW5fcGxhY2Vob2xkZXJfXxBfX3diaW5kZ2VuX3Rocm93AAEYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fF19fd2JpbmRnZW5fZGVidWdfc3RyaW5nAAEYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fG19fd2JnX3RoZW5fNDRiNzM5NDZkMmZiM2U3ZAAAGF9fd2JpbmRnZW5fcGxhY2Vob2xkZXJfXyVfX3diZ19xdWV1ZU1pY3JvdGFza185N2Q5MmI0ZmNjOGE2MWM1AAIYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fJV9fd2JnX3F1ZXVlTWljcm90YXNrX2QzMjE5ZGVmODI1NTI0ODUABRhfX3diaW5kZ2VuX3BsYWNlaG9sZGVyX18WX193YmluZGdlbl9pc19mdW5jdGlvbgAFGF9fd2JpbmRnZW5fcGxhY2Vob2xkZXJfXx5fX3diZ19yZXNvbHZlXzQ4NTE3ODVjOWM1ZjU3M2QABRhfX3diaW5kZ2VuX3BsYWNlaG9sZGVyX18SX193YmluZGdlbl9jYl9kcm9wAAUYX193YmluZGdlbl9wbGFjZWhvbGRlcl9fHl9fd2JpbmRnZW5fY2xvc3VyZV93cmFwcGVyODM2OQADA5QzkjMCCAcGAQEBBggBAQYEFwQEBAEGAQcEBAcBAQQGAQQGCB0BBAYEBgEEBgEEAQQGBAEBDAYZBgEBBwQBAQAIAQYGBAEEBwAAAQQHCAEKAQEBCAYBBAYDAQQBBQYIAQQBHgUECAQHBgQBAQEIDAABBwABHwQCAQICAgICAQYAAAEGAgEIBgYCBAQGAQEBAQQCAgQGBgIBBgEGBAICAgICBAECAgEBAgIBAgICAgICAAQEAgEBHgECAgIEAQgBCgcGAgIEAQEBAAEBCAgIBwABBgICBAcCAgIIAgQEAQECAQEIBAEEBwEBIAICAgICBgECBgAFHwEGBgEBAgcZAQQBAQwAAgQGBAQDAQEAAgwBAgcEAQEBAQEGDAwABAEMAQEBBwcBAQcTCAYBAQcBAQYHBwEAAgIGAQEBAQEBBgcBAgICAQEBBgEEBAYAAgICAQEAAQYBAgEFAQgIBQICAgICAgIKAgEEAQAAAAABAgYBAgQBAQEGBgICAgICBgEFAQQEAAcBAwEBCAUBAggBBAQACAcBAQEEAgICBAECAQEBAQYAAQIMBAcLAQQEBgEBBAIGBAYCBAEBBAEBAQQCBgUCAgICJgsGAgEBBgcABgEHAgQBAAECAgICAgICAgICAgICAgICAgICAgICAgICAgIECAIEAwEEBgEEAgICAQICAgIDAQEBAgYGAQECBwEBAgQBBAcCAQEEDAcBCgYGBAIMCgUGAQQBAQIBAQECAgABAAUBAQEBAQYBBAwEDAEABQQEAQEFBAcGAQEBAQcMDAEBDAgCCAYBAQEBAQUCAQEDBgIBAAgAAgICAgICAgEBEwECAgICAgYAAwUBAgoCAQQHAQEGBAMBBgoBAQEDAAEBBQEGBwECAQQBAgIEBAADAwcCAQEEAQEBBAYCAQoBBAMAAAAABgIBBgABBAQCAQEDAQABBwIBAAEGBAEFHQAAAAABBgEBBAQDBwcBAQQEAQECAAAFFwEGAwEIAAEGAgQBAAgEAScoBgMEBgoCBgQEBAMBCAAGAgABAQQCAQMECAEEEAABAQYBAQQDCAEDAAEBCAYGAgEBAQECAQQBIQAKABQhAQEBBgEUAQECBBQIAQEBAQEGBAACAgICBgEEAQICAQgDKQACAgABAQECAgICAhcEAQYHGAIMAQICBAAEBAYEAQgECAEMAAEECBoaAQEBBwcBCAQBGgECAgwECAcMAgEBAQEBAQEBEQQCBgEKBAACAgICAgEABAEEBgUFBQEBAQEBAQIBAgIEBQ4BBgQBAAEBAQEPBwIBFQIBBAAABgAEAQcFAwEKAQYEAQIIAQMEASoABAABAgEEBwEBBAEFAgAEAAAAAAQEAAABAQEBAQQEAAEBAgEFBAAAAQEBAQYGAQEEAQQBAQQBAwYQAiIBBisGAQYAAgEEABcBAAQFAQEEAgICAgECAQECLAAEAQAGBAgFAQEAEwEBBAQBBgACFgUFBAwBAQEBAQMtBAAAAQMAAQEBBwQACAABAAgIBAEIAAEDBAEHAAoBBAcBIwIBAQABBy4AAgICAAIAAQIAAgEEAQAGBAECAgEBAgEBBAEABgYBAQEGBgAEBgQBAgYBAQEBBAYGAQQABAEAAQICAQEvAQECAgYGAQIFAAgICAQFBwEBAAICAgECAgECAQEAAgcBCAgBAwIBBwAAAAAAAgMCBgEABAUCMAECAAIBAQoAAAAKAgABAwABAQExAwYAARQCAQEABAUFAQEDAQQEBwMDCAACAQoDCAoCBwICAgICAgAAAQEBAAIEAAEIAQgQAQQBAQAAAQABAAYCAQECAgECBQIICAYGBgQCBwECAQEEBAoEAQAAEAEAAQEAAQAIEwgAAAEBAgIEAQEAAAQAAQAAAAEBBgYAAgEBAQICAAQAAQAEAAEABAIEAQQIAQQABgEGAgICAgICAgICAgEBAgUEAQQEAQcBAQAABAAAAQQEAAAAAAMDBAICAgICAgICAgIBAQIIBAYBIwUACAQGBgoKAwEBAQEBAgIBAQICAQEBAQIEAQEGAwMBAgIBAgIAAAABAgICAgEBAQIBAQEDBgYCAQQEAgYCAQEBAgIBBAEBBAEBAQQEGAICAgsBAQUEAgMQBAEDAQQFAQAAAAICAAABCAgEAgICAgICAgICAQICAgICAgICAgIBAAQEBAQDBAQEDwYBGAICAgECAAACAjIGAgEBAQEBAQMBBAYCAQQEAQAHBgEHBgoAAQAAAggAAgQBBAAEAAAAAAAAAQEABRMAAwAAAAAAAgACAQICAAAAAgEBAAEAADMGAgoPBAICAQIFAwICAgICAgIBAQICAgICAgICAgICAgICAgIEAgoEAQAFBAEFAgIEBAECARYBAgADBwIBAAQCBwAAAQICAAACBQIABwQBAgIBAQEBAgUBAQEBAgIBAQYBADQEAAEGBgQBAAABAAACAgABAAYADAAEBAQCAgIEAgICAgICAgICAgICAgICAgICAgIHBAQBAQE1AgIBAAYCAAIABQIABQMEDwIBAgICAgICAgICAgICAQICAgICAgECAgEBAQICAgICAgICAgIBBgEBCAABAAIBBDYBAwQBAQIEBAICAgICAAUGCAADBgMFAQwDAQMBAQEFBQICAgICAQICAgICAgICAQICCAEIAAIBAAQFBAYBAQABEwQAAAIFAAAAAAAAAAAAAAABAAQBAAwCAgICAgEBAQEBBQUWAAACBgYAAAIAAAEGAAICAQAAAAEAAAABAgQBAAABBQICAgICAgEBBggBAQEBBAUEAQICAgICAQYCAQEBBgcABgUBAAAAAAAAFAEBAAABBAQFAAICBQECAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAIAAAACAgAAAAAAAAAAAAAAAAACAAICAAAAAAEAAQAFBgEGAQEEAQIBAQEABggCAwcCAQAAAAABBAEMAQIAAgICAgICAgEBBgABAAIEBQAAAAAAAQEBBAAAAAAAAAAAAAAAAAIGAgEBAAUAAQAAAAAACgUBAQEKAAAAAAEBAAABAQQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEBAAAAAAAABAEAAAAAAAAAAAAAAAEBAQIBAQsFAAAGAQEAAAABAQEAAAAEBgAAAAECAgICAgICAgICAgICAgICAgUCAgICAQICAgICAgICAgICAgICAgICAgICAgICAgIDAgIFAAEFAgYEAAUAAAQBAQ0BAgEIAQIIBAEBAgAAAQECBAEHAgMEAgANAgECAwMDAwABAgAAAwMDAwAAAQADAwMDAAAAAAEBAAAAAAEBAQABAQEDAQEBAgEAAQQFAQEGBAIBAQIAAgACAAIFAQACBwACAgIBBgICAgICAgIBAgIVAgICAgICAgICAgIBAQECAxEHAwAENwAAAgAGAQABBAMBBwA4AQAGBgYGCAIBAQICAQECBQoBBAIKAQEABQICBQUABQIIAwE5AQMBAAUAAQEQBwAGAQACAgICAgUFAQABAAQBBQABBAIKBAEBAQICAgEFAQIFBAUIBwoBBQQVAgEBAQEHBAUBAAgAAAABAAUCAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAFAQEBAQEDBAEIBAEAAQIBAQECBAQCAgICAgICAgIKAQERAAEIBgUBAQUCAgECAAAAAAICAAEAAQAAAgEBAAAAAQEAAgEBAQIGAAAAADoABwQBBwEBCgYCAwIAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAAACAgACAAAAAAAAAAAAAgIAAAAAAQECBwAAAAAAAQAAAAAAAAAAAAAFBAQEBAEEBAQBBAMAAQUBAgIBAQIBAAIBCAoECgcCBAIAAQQBAQMBAQABAQAAAQABAAECAAQBAAIDBwMAAAEAAAQABgYGAAEBAgACAgIAAAEABAECAgEDAgIBBAAAAAAAAAAAAgAAAAACAAAAAAAAAAABAQABAAIAAAAAAAAAAAEBAgAAAQEBAQEAAAAAAAAAAQAAADsBAQIBBAQCCgoFAQUCAAAAAAAAAQAAAAEBAAAAAQIBAAEBAAAABAQAAAACCAEDBgAAAgEFBAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAEEAwACAQYBAhsCAQIBAQIBAQIBAQEBBgECAgEBAAEABAACHAEBBwICAAABAgIHAgEBAQIAAAAAAgAAAAAAAQEAAAAFBAQAAAAAAAABAQEGAQAEAAAAAAACAgAAAAAAAAAAAQEABgABAgEAAAIAAAAAAAACAAEBAQQBAAEAAAEAAAACAAAAAAACAQAEAAAAAAAAAAACAQEBBAoBAQACAQUEBgEEBAQEGwECAgEBAgEBAQEBBAEBAgAHBwECAAAAAAAAAAAAAgABAQcHBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQAAAAAAAAAAAQAAAAAAAAABAAAAAgIAAAAAAgAAAAAAAAAAAAABAQEAAAAAAAAAAgQEAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAQBAQQEAAEFAAIBAwAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAEBAAAAAAAAAAAAAAAAAAEAAAACAAAAAQAAAAAAAAIAAQAAAAAAAAAAAAABAQAAAAAAAAAAAgAAAAIAAAAAAAACAgACAgAAAAAAAAAAAAAAAAAAAQAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABgYEAQABCAsFAQcAAAAAAgACAAAAAAAAAAIBAAAAAAEAAAIQAAAAAAAAAAACAgcBAAAAAAAAAAICAQQAAAIEAQQCAgEBAQICAgIAAAQEAQYCBAQCAQUABgYAAQAAAQEGAQQBAQABAQEAAQMBCwECAQACBAcDBAQBAQEBAgEBAQEBBAIHBgQEAgIBBgQCAgEFBAECAgUBAQEBAQECAQEBAQEBAQEFBAICAQEAAgAAAQYAAgEBAQEBAQABAQIBAwAIAgQCAAAAAAIAAAABAAECAgAAAAACAAAAAgICAAEAAAIBAg0AAAAAAAQEAAAAAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAgABAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQACAQACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAEAAAAAAAEAgAAAAAAAAAAAAAAAAAAAAACAAIAAgICCAICAwMCAgIAAgEBAgICAgICAgICAgUCBwILAgIBAgICAgICAQICAQAAAAcAAAACAAEBBwAKBgAAAAAAAAAACAAAAAABAgcCAAEAAAAAAQEBAAAAAQEBAQACAgIBAQABAQEBAgQCAQIBAgcBDwEAAAICAgAFAQQCBQIBBQIBAQACCgIBAQI8AgAAAQICAQICAgECAQICAQQBBQQBBAABCAQEAQYAAAAJCQkJCQkJAwkAAQICAgQCAgICAgECAgICAgABAAwGAQEJBAIBAgQEBwMFAAICAQICAQEBAQICAQEBAgQCAgECAgIBAgQBAQECAgAEAAUAAAAABAoCAgEADwIADQ0GAwAECgUGAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBBgICAgIBAQEBAQEBAQYCAgICEhIBBQAABQEDBhYAAQECAAABAQAAAQEBAQQAJAAAAAUAAAAABgYGBgAAAAAAAAACAgICAAEBAQEBAQABAQEBAQAAAQEBAQEBAQAAAQAAAAEBBQEBAQEBAQEHAAcEAAACDwcDAQIABQABBgAAAAAAAAAGAAADAAYEAAABAQUNAQAAAAAAAAAFAgICAAIRAAISAAEAAQ4OAgACAg4ODgEgAQUDDg4FAAMAAAIAAAoEAAAAAAAAAAAAAQMAAQAAAgEBAAIAAQEBAQEBAAAABwcFAAAGAAAABgcCAgACAAAAAAAAAAAAAAABBQAAAgAFBQcHBwAFAgMFAAAAAAEBAQEBAQEBAQEBAgICAgICAgIBAQECAgUCAQEBBhwEAwEGAgcCBAIEBAECAQEBAQECBAQCCgIBBQEBAQEBBSQEAQECAQEEBQMBAQEAAAEBAQECAQECAgECAQQBAhEEAQICACIHBQEPAQICAgIAAAcFPQIBAgICAgICAgEBCwIBBAQAAgEAAAIBBQEFAAA+AgAAAAAKAgAAAAAHAAICAAAAAAIBAgAABAAAAgECAgACAQAAAAMBAQAAAAEBAAIAAAAMBgQFBAUCAgQBBAAABgYGABAACgYGBgYCAgEBAgECAgUCAgICAgAAAAIDARQBAQECAgEBAgcGBAUKAAAGAgECAgIHAgICAAEFBQYEPwAADQYAAAAAAAUGAgIAAAEBAgICBgEBDQECAQECAAECCAACAQIBAQcBAQoAAgICAQEFAgEBAgEBAgYBAQECAQICDwICAgEBAgEBAQEBAQECAQEBAQICAgICAgEBAQEBAQIcAgICAQECAQEBAQEBAQECAgICAgICQAIBAQEBAQECAgEBBAENAQECAQEDCgoKCgIKAwcHAhcDCgIAAhgKAAoGAAUNAAEBAAEBAQIKBwcBAQQKAAoEAgUEAQIHFkFDRQMBAgoEAAABAQQEBgYGDQEAAgACDwEAAgQNAQEBBAUBABIEBAsLAAAKABIGAQEAAgUBBQABAgABARUEAgICAgIEBAQCAgICAgAEBAUCBQQEAQIAAQMKAQQDAgAFAAAEAwcECwsLCwsLCwsLCwsLAgsAAgIAAQEBAgEBAQICAgICAgICAgICAQICAgICAgIEAAQCAgQCCgIAAAUEAwAAAgIGBgEBAQECAQICAgICAgIBAQECAgICAgICBAQBAQEBAQEBAQECAQICAgECAgICAgICAgIGAQIAAgICAwcBBAIEAAUAAQEBAQEBAQEBAQICAQECEAIBAQEBAQICAgICAgIBAQECAQEBAQECAQEBAQIBAQEBAQEBAQICAgILAQEBAQIBAQIBAQEBAQICAQICAgICDQIBAQIBAgUBAQECAgICAAAAAAAFCwACAgICCwIDBAQDBw0ABAACAhUCDgICAgICAgICAQEBAQEBAQEBAQEBAQEBAQEBAQECAQEBAQIBAQICAgIBAQECAAAAAAAAAgQBAREDAQAAAAAAAAARAQACAQQEAAABAAAAAQAEAAICAgECAgICAgICAgIAAgICAgICAAAAAAAGAAAAAAICAgAAAAAAAgIAAgICAAAAAAACAgABAgIBAgICAgICAgICAgICAgICAgAAAAACAgICAgICAgACAgACAQICAgICAgICAgICAAICAgIEAQEBAQQCAgICAQEEAQQBAQEBAgICAgIBAQEBAQICAgICAgICAgIBAQEBAgICAgIDAgMBAQIBAQECAQEBAAICBQUFAwUABwACAQICAAUKAgICAwIGAgICAgEBAQECAgICAgICAgICAgICAgIbAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBAgICAQECAgEBAgICAgEBAQEBAgICAgICAgEBAQECAgICAgICAgICAgIBAQEBAQICAQEAAAAAAAAAAQIBAQQBAwAGAgICAQACBAICAgQEAAAAAAAAAAAFAgICAgICAgICAgICAAAA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OCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIIDAILENkwAAtBzPDZABDWHQALIAYtAAkEQEHUqOQAQdSo5AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQAKBEBB6KjkAEHoqOQAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0ACwRAQfyo5ABB/KjkABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAiDjcDACABQRhqIAFByABqKQMAIg83AwAgAUEQaiABQUBrKQMAIhA3AwAgASABKQM4IhE3AwggAkEoaiAMNwMAIAJBIGogDTcDACACQRhqIA43AwAgAkEQaiAPNwMAIAJBCGogEDcDACACIBE3AwAgAkEwaiECIAVBMGohBSADQQFrIgMNAAsgByECCyAAIAI2AggLIAYtAAwEQEGQqeQAQZCp5AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQANBEBBpKnkAEGkqeQAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0ADgRAQbip5ABBuKnkABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAiDjcDACABQRhqIAFByABqKQMAIg83AwAgAUEQaiABQUBrKQMAIhA3AwAgASABKQM4IhE3AwggAkEoaiAMNwMAIAJBIGogDTcDACACQRhqIA43AwAgAkEQaiAPNwMAIAJBCGogEDcDACACIBE3AwAgAkEwaiECIAVBMGohBSADQQFrIgMNAAsgByECCyAAIAI2AggLIAYtAA8EQEHMqeQAQcyp5AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQAQBEBB4KnkAEHgqeQAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0AEQRAQfSp5ABB9KnkABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAiDjcDACABQRhqIAFByABqKQMAIg83AwAgAUEQaiABQUBrKQMAIhA3AwAgASABKQM4IhE3AwggAkEoaiAMNwMAIAJBIGogDTcDACACQRhqIA43AwAgAkEQaiAPNwMAIAJBCGogEDcDACACIBE3AwAgAkEwaiECIAVBMGohBSADQQFrIgMNAAsgByECCyAAIAI2AggLIAYtABIEQEGIquQAQYiq5AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQATBEBBnKrkAEGcquQAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0AFARAQbCq5ABBsKrkABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAiDjcDACABQRhqIAFByABqKQMAIg83AwAgAUEQaiABQUBrKQMAIhA3AwAgASABKQM4IhE3AwggAkEoaiAMNwMAIAJBIGogDTcDACACQRhqIA43AwAgAkEQaiAPNwMAIAJBCGogEDcDACACIBE3AwAgAkEwaiECIAVBMGohBSADQQFrIgMNAAsgByECCyAAIAI2AggLIAYtABUEQEHEquQAQcSq5AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQAWBEBB2KrkAEHYquQAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0AFwRAQeyq5ABB7KrkABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAiDjcDACABQRhqIAFByABqKQMAIg83AwAgAUEQaiABQUBrKQMAIhA3AwAgASABKQM4IhE3AwggAkEoaiAMNwMAIAJBIGogDTcDACACQRhqIA43AwAgAkEQaiAPNwMAIAJBCGogEDcDACACIBE3AwAgAkEwaiECIAVBMGohBSADQQFrIgMNAAsgByECCyAAIAI2AggLIAYtABgEQEGAq+QAQYCr5AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQAZBEBBlKvkAEGUq+QAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0AGgRAQair5ABBqKvkABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAiDjcDACABQRhqIAFByABqKQMAIg83AwAgAUEQaiABQUBrKQMAIhA3AwAgASABKQM4IhE3AwggAkEoaiAMNwMAIAJBIGogDTcDACACQRhqIA43AwAgAkEQaiAPNwMAIAJBCGogEDcDACACIBE3AwAgAkEwaiECIAVBMGohBSADQQFrIgMNAAsgByECCyAAIAI2AggLIAYtABsEQEG8q+QAQbyr5AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQAcBEBB0KvkAEHQq+QAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0AHQRAQeSr5ABB5KvkABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAiDjcDACABQRhqIAFByABqKQMAIg83AwAgAUEQaiABQUBrKQMAIhA3AwAgASABKQM4IhE3AwggAkEoaiAMNwMAIAJBIGogDTcDACACQRhqIA43AwAgAkEQaiAPNwMAIAJBCGogEDcDACACIBE3AwAgAkEwaiECIAVBMGohBSADQQFrIgMNAAsgByECCyAAIAI2AggLIAYtAB4EQEH4q+QAQfir5AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQAfBEBBjKzkAEGMrOQAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0AIARAQaCs5ABBoKzkABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAiDjcDACABQRhqIAFByABqKQMAIg83AwAgAUEQaiABQUBrKQMAIhA3AwAgASABKQM4IhE3AwggAkEoaiAMNwMAIAJBIGogDTcDACACQRhqIA43AwAgAkEQaiAPNwMAIAJBCGogEDcDACACIBE3AwAgAkEwaiECIAVBMGohBSADQQFrIgMNAAsgByECCyAAIAI2AggLIAYtACEEQEG0rOQAQbSs5AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQAiBEBByKzkAEHIrOQAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0AIwRAQdys5ABB3KzkABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAiDjcDACABQRhqIAFByABqKQMAIg83AwAgAUEQaiABQUBrKQMAIhA3AwAgASABKQM4IhE3AwggAkEoaiAMNwMAIAJBIGogDTcDACACQRhqIA43AwAgAkEQaiAPNwMAIAJBCGogEDcDACACIBE3AwAgAkEwaiECIAVBMGohBSADQQFrIgMNAAsgByECCyAAIAI2AggLIAYtACQEQEHwrOQAQfCs5AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQAlBEBBhK3kAEGEreQAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0AJgRAQZit5ABBmK3kABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAiDjcDACABQRhqIAFByABqKQMAIg83AwAgAUEQaiABQUBrKQMAIhA3AwAgASABKQM4IhE3AwggAkEoaiAMNwMAIAJBIGogDTcDACACQRhqIA43AwAgAkEQaiAPNwMAIAJBCGogEDcDACACIBE3AwAgAkEwaiECIAVBMGohBSADQQFrIgMNAAsgByECCyAAIAI2AggLIAYtACcEQEGsreQAQayt5AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQAoBEBBwK3kAEHAreQAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0AKQRAQdSt5ABB1K3kABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAiDjcDACABQRhqIAFByABqKQMAIg83AwAgAUEQaiABQUBrKQMAIhA3AwAgASABKQM4IhE3AwggAkEoaiAMNwMAIAJBIGogDTcDACACQRhqIA43AwAgAkEQaiAPNwMAIAJBCGogEDcDACACIBE3AwAgAkEwaiECIAVBMGohBSADQQFrIgMNAAsgByECCyAAIAI2AggLIAYtACoEQEHoreQAQeit5AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQArBEBB/K3kAEH8reQAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0ALARAQZCu5ABBkK7kABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAiDjcDACABQRhqIAFByABqKQMAIg83AwAgAUEQaiABQUBrKQMAIhA3AwAgASABKQM4IhE3AwggAkEoaiAMNwMAIAJBIGogDTcDACACQRhqIA43AwAgAkEQaiAPNwMAIAJBCGogEDcDACACIBE3AwAgAkEwaiECIAVBMGohBSADQQFrIgMNAAsgByECCyAAIAI2AggLIAYtAC0EQEGkruQAQaSu5AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQAuBEBBuK7kAEG4ruQAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0ALwRAQcyu5ABBzK7kABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAiDjcDACABQRhqIAFByABqKQMAIg83AwAgAUEQaiABQUBrKQMAIhA3AwAgASABKQM4IhE3AwggAkEoaiAMNwMAIAJBIGogDTcDACACQRhqIA43AwAgAkEQaiAPNwMAIAJBCGogEDcDACACIBE3AwAgAkEwaiECIAVBMGohBSADQQFrIgMNAAsgByECCyAAIAI2AggLIAYtADAEQEHgruQAQeCu5AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQAxBEBB9K7kAEH0ruQAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0AMgRAQYiv5ABBiK/kABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAiDjcDACABQRhqIAFByABqKQMAIg83AwAgAUEQaiABQUBrKQMAIhA3AwAgASABKQM4IhE3AwggAkEoaiAMNwMAIAJBIGogDTcDACACQRhqIA43AwAgAkEQaiAPNwMAIAJBCGogEDcDACACIBE3AwAgAkEwaiECIAVBMGohBSADQQFrIgMNAAsgByECCyAAIAI2AggLIAYtADMEQEGcr+QAQZyv5AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQA0BEBBsK/kAEGwr+QAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0ANQRAQcSv5ABBxK/kABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAiDjcDACABQRhqIAFByABqKQMAIg83AwAgAUEQaiABQUBrKQMAIhA3AwAgASABKQM4IhE3AwggAkEoaiAMNwMAIAJBIGogDTcDACACQRhqIA43AwAgAkEQaiAPNwMAIAJBCGogEDcDACACIBE3AwAgAkEwaiECIAVBMGohBSADQQFrIgMNAAsgByECCyAAIAI2AggLIAYtADYEQEHYr+QAQdiv5AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQA3BEBB7K/kAEHsr+QAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0AOARAQYCw5ABBgLDkABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAiDjcDACABQRhqIAFByABqKQMAIg83AwAgAUEQaiABQUBrKQMAIhA3AwAgASABKQM4IhE3AwggAkEoaiAMNwMAIAJBIGogDTcDACACQRhqIA43AwAgAkEQaiAPNwMAIAJBCGogEDcDACACIBE3AwAgAkEwaiECIAVBMGohBSADQQFrIgMNAAsgByECCyAAIAI2AggLIAYtADkEQEGUsOQAQZSw5AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQA6BEBBqLDkAEGosOQAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0AOwRAQbyw5ABBvLDkABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAiDjcDACABQRhqIAFByABqKQMAIg83AwAgAUEQaiABQUBrKQMAIhA3AwAgASABKQM4IhE3AwggAkEoaiAMNwMAIAJBIGogDTcDACACQRhqIA43AwAgAkEQaiAPNwMAIAJBCGogEDcDACACIBE3AwAgAkEwaiECIAVBMGohBSADQQFrIgMNAAsgByECCyAAIAI2AggLIAYtADwEQEHQsOQAQdCw5AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQA9BEBB5LDkAEHksOQAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0APgRAQfiw5ABB+LDkABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAiDjcDACABQRhqIAFByABqKQMAIg83AwAgAUEQaiABQUBrKQMAIhA3AwAgASABKQM4IhE3AwggAkEoaiAMNwMAIAJBIGogDTcDACACQRhqIA43AwAgAkEQaiAPNwMAIAJBCGogEDcDACACIBE3AwAgAkEwaiECIAVBMGohBSADQQFrIgMNAAsgByECCyAAIAI2AggLIAYtAD8EQEGMseQAQYyx5AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQBABEBBoLHkAEGgseQAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0AQQRAQbSx5ABBtLHkABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAiDjcDACABQRhqIAFByABqKQMAIg83AwAgAUEQaiABQUBrKQMAIhA3AwAgASABKQM4IhE3AwggAkEoaiAMNwMAIAJBIGogDTcDACACQRhqIA43AwAgAkEQaiAPNwMAIAJBCGogEDcDACACIBE3AwAgAkEwaiECIAVBMGohBSADQQFrIgMNAAsgByECCyAAIAI2AggLIAYtAEIEQEHIseQAQcix5AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQBDBEBB3LHkAEHcseQAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0ARARAQfCx5ABB8LHkABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAiDjcDACABQRhqIAFByABqKQMAIg83AwAgAUEQaiABQUBrKQMAIhA3AwAgASABKQM4IhE3AwggAkEoaiAMNwMAIAJBIGogDTcDACACQRhqIA43AwAgAkEQaiAPNwMAIAJBCGogEDcDACACIBE3AwAgAkEwaiECIAVBMGohBSADQQFrIgMNAAsgByECCyAAIAI2AggLIAYtAEUEQEGEsuQAQYSy5AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQBGBEBBmLLkAEGYsuQAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0ARwRAQayy5ABBrLLkABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAiDjcDACABQRhqIAFByABqKQMAIg83AwAgAUEQaiABQUBrKQMAIhA3AwAgASABKQM4IhE3AwggAkEoaiAMNwMAIAJBIGogDTcDACACQRhqIA43AwAgAkEQaiAPNwMAIAJBCGogEDcDACACIBE3AwAgAkEwaiECIAVBMGohBSADQQFrIgMNAAsgByECCyAAIAI2AggLIAYtAEgEQEHAsuQAQcCy5AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQBJBEBB1LLkAEHUsuQAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0ASgRAQeiy5ABB6LLkABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAiDjcDACABQRhqIAFByABqKQMAIg83AwAgAUEQaiABQUBrKQMAIhA3AwAgASABKQM4IhE3AwggAkEoaiAMNwMAIAJBIGogDTcDACACQRhqIA43AwAgAkEQaiAPNwMAIAJBCGogEDcDACACIBE3AwAgAkEwaiECIAVBMGohBSADQQFrIgMNAAsgByECCyAAIAI2AggLIAYtAEsEQEH8suQAQfyy5AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQBMBEBBkLPkAEGQs+QAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0ATQRAQaSz5ABBpLPkABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAiDjcDACABQRhqIAFByABqKQMAIg83AwAgAUEQaiABQUBrKQMAIhA3AwAgASABKQM4IhE3AwggAkEoaiAMNwMAIAJBIGogDTcDACACQRhqIA43AwAgAkEQaiAPNwMAIAJBCGogEDcDACACIBE3AwAgAkEwaiECIAVBMGohBSADQQFrIgMNAAsgByECCyAAIAI2AggLIAYtAE4EQEG4s+QAQbiz5AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQBPBEBBzLPkAEHMs+QAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0AUARAQeCz5ABB4LPkABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAiDjcDACABQRhqIAFByABqKQMAIg83AwAgAUEQaiABQUBrKQMAIhA3AwAgASABKQM4IhE3AwggAkEoaiAMNwMAIAJBIGogDTcDACACQRhqIA43AwAgAkEQaiAPNwMAIAJBCGogEDcDACACIBE3AwAgAkEwaiECIAVBMGohBSADQQFrIgMNAAsgByECCyAAIAI2AggLIAYtAFEEQEH0s+QAQfSz5AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQBSBEBBiLTkAEGItOQAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0AUwRAQZy05ABBnLTkABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAiDjcDACABQRhqIAFByABqKQMAIg83AwAgAUEQaiABQUBrKQMAIhA3AwAgASABKQM4IhE3AwggAkEoaiAMNwMAIAJBIGogDTcDACACQRhqIA43AwAgAkEQaiAPNwMAIAJBCGogEDcDACACIBE3AwAgAkEwaiECIAVBMGohBSADQQFrIgMNAAsgByECCyAAIAI2AggLIAYtAFQEQEGwtOQAQbC05AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQBVBEBBxLTkAEHEtOQAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0AVgRAQdi05ABB2LTkABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAiDjcDACABQRhqIAFByABqKQMAIg83AwAgAUEQaiABQUBrKQMAIhA3AwAgASABKQM4IhE3AwggAkEoaiAMNwMAIAJBIGogDTcDACACQRhqIA43AwAgAkEQaiAPNwMAIAJBCGogEDcDACACIBE3AwAgAkEwaiECIAVBMGohBSADQQFrIgMNAAsgByECCyAAIAI2AggLIAYtAFcEQEHstOQAQey05AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQBYBEBBgLXkAEGAteQAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0AWQRAQZS15ABBlLXkABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAiDjcDACABQRhqIAFByABqKQMAIg83AwAgAUEQaiABQUBrKQMAIhA3AwAgASABKQM4IhE3AwggAkEoaiAMNwMAIAJBIGogDTcDACACQRhqIA43AwAgAkEQaiAPNwMAIAJBCGogEDcDACACIBE3AwAgAkEwaiECIAVBMGohBSADQQFrIgMNAAsgByECCyAAIAI2AggLIAYtAFoEQEGoteQAQai15AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQBbBEBBvLXkAEG8teQAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0AXARAQdC15ABB0LXkABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAiDjcDACABQRhqIAFByABqKQMAIg83AwAgAUEQaiABQUBrKQMAIhA3AwAgASABKQM4IhE3AwggAkEoaiAMNwMAIAJBIGogDTcDACACQRhqIA43AwAgAkEQaiAPNwMAIAJBCGogEDcDACACIBE3AwAgAkEwaiECIAVBMGohBSADQQFrIgMNAAsgByECCyAAIAI2AggLIAYtAF0EQEHkteQAQeS15AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQBeBEBB+LXkAEH4teQAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0AXwRAQYy25ABBjLbkABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAiDjcDACABQRhqIAFByABqKQMAIg83AwAgAUEQaiABQUBrKQMAIhA3AwAgASABKQM4IhE3AwggAkEoaiAMNwMAIAJBIGogDTcDACACQRhqIA43AwAgAkEQaiAPNwMAIAJBCGogEDcDACACIBE3AwAgAkEwaiECIAVBMGohBSADQQFrIgMNAAsgByECCyAAIAI2AggLIAYtAGAEQEGgtuQAQaC25AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQBhBEBBtLbkAEG0tuQAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0AYgRAQci25ABByLbkABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAiDjcDACABQRhqIAFByABqKQMAIg83AwAgAUEQaiABQUBrKQMAIhA3AwAgASABKQM4IhE3AwggAkEoaiAMNwMAIAJBIGogDTcDACACQRhqIA43AwAgAkEQaiAPNwMAIAJBCGogEDcDACACIBE3AwAgAkEwaiECIAVBMGohBSADQQFrIgMNAAsgByECCyAAIAI2AggLIAYtAGMEQEHctuQAQdy25AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQBkBEBB8LbkAEHwtuQAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0AZQRAQYS35ABBhLfkABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAiDjcDACABQRhqIAFByABqKQMAIg83AwAgAUEQaiABQUBrKQMAIhA3AwAgASABKQM4IhE3AwggAkEoaiAMNwMAIAJBIGogDTcDACACQRhqIA43AwAgAkEQaiAPNwMAIAJBCGogEDcDACACIBE3AwAgAkEwaiECIAVBMGohBSADQQFrIgMNAAsgByECCyAAIAI2AggLIAYtAGYEQEGYt+QAQZi35AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQBnBEBBrLfkAEGst+QAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0AaARAQcC35ABBwLfkABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAiDjcDACABQRhqIAFByABqKQMAIg83AwAgAUEQaiABQUBrKQMAIhA3AwAgASABKQM4IhE3AwggAkEoaiAMNwMAIAJBIGogDTcDACACQRhqIA43AwAgAkEQaiAPNwMAIAJBCGogEDcDACACIBE3AwAgAkEwaiECIAVBMGohBSADQQFrIgMNAAsgByECCyAAIAI2AggLIAYtAGkEQEHUt+QAQdS35AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQBqBEBB6LfkAEHot+QAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0AawRAQfy35ABB/LfkABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAiDjcDACABQRhqIAFByABqKQMAIg83AwAgAUEQaiABQUBrKQMAIhA3AwAgASABKQM4IhE3AwggAkEoaiAMNwMAIAJBIGogDTcDACACQRhqIA43AwAgAkEQaiAPNwMAIAJBCGogEDcDACACIBE3AwAgAkEwaiECIAVBMGohBSADQQFrIgMNAAsgByECCyAAIAI2AggLIAYtAGwEQEGQuOQAQZC45AAQzykiAigCBCEFAkACfyACKAIIIgMgACgCACAAKAIIIgJrSwRAIAAgAiADQQhBMBCCCyAAKAIIIQIgACgCBAwBCyADRQ0BIAAoAgQLIAIgA2ohByACQTBsaiECQbi14wApAwAhCkGwteMAKQMAIQsDQCABQThqIgggBRA/QQAgBigCABCYBiEEQQBBABCFGBCYBiEJIAFB8ABqIAo3AwAgASAENgJ4IAEgCTYCfCABIAs3A2ggCCABQegAaiIEENoEIAQQoQogAUEwaiABQeAAaikDACIMNwMAIAFBKGogAUHYAGopAwAiDTcDACABQSBqIAFB0ABqKQMAIg43AwAgAUEYaiABQcgAaikDACIPNwMAIAFBEGogAUFAaykDACIQNwMAIAEgASkDOCIRNwMIIAJBKGogDDcDACACQSBqIA03AwAgAkEYaiAONwMAIAJBEGogDzcDACACQQhqIBA3AwAgAiARNwMAIAJBMGohAiAFQTBqIQUgA0EBayIDDQALIAchAgsgACACNgIICyAGLQBtBEBBpLjkAEGkuOQAEM8pIgIoAgQhBQJAAn8gAigCCCIDIAAoAgAgACgCCCICa0sEQCAAIAIgA0EIQTAQggsgACgCCCECIAAoAgQMAQsgA0UNASAAKAIECyACIANqIQcgAkEwbGohAkG4teMAKQMAIQpBsLXjACkDACELA0AgAUE4aiIIIAUQP0EAIAYoAgAQmAYhBEEAQQAQhRgQmAYhCSABQfAAaiAKNwMAIAEgBDYCeCABIAk2AnwgASALNwNoIAggAUHoAGoiBBDaBCAEEKEKIAFBMGogAUHgAGopAwAiDDcDACABQShqIAFB2ABqKQMAIg03AwAgAUEgaiABQdAAaikDACIONwMAIAFBGGogAUHIAGopAwAiDzcDACABQRBqIAFBQGspAwAiEDcDACABIAEpAzgiETcDCCACQShqIAw3AwAgAkEgaiANNwMAIAJBGGogDjcDACACQRBqIA83AwAgAkEIaiAQNwMAIAIgETcDACACQTBqIQIgBUEwaiEFIANBAWsiAw0ACyAHIQILIAAgAjYCCAsgBi0AbgRAQbi45ABBuLjkABDPKSICKAIEIQUCQAJ/IAIoAggiAyAAKAIAIAAoAggiAmtLBEAgACACIANBCEEwEIILIAAoAgghAiAAKAIEDAELIANFDQEgACgCBAsgAiADaiEHIAJBMGxqIQJBuLXjACkDACEKQbC14wApAwAhCwNAIAFBOGoiCCAFED9BACAGKAIAEJgGIQRBAEEAEIUYEJgGIQkgAUHwAGogCjcDACABIAQ2AnggASAJNgJ8IAEgCzcDaCAIIAFB6ABqIgQQ2gQgBBChCiABQTBqIAFB4ABqKQMAIgw3AwAgAUEoaiABQdgAaikDACINNwMAIAFBIGogAUHQAGopAwAi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kgM7AOgGIAYgASkBlgM3AOwGIAZB6QdqIAFBggNqIgJBFWopAAA3AAAgCiACQRBqKQEANwIAIAkgAkEIaikBADcCACAGIAIpAQA3AtQHIAggBkHYBmoQ7wogBiABNgLQByAGQZgIaiICIAEQ3i8gBigCmAhBE0cEQCACEPsuIQIgBBDlLCAAIAI2AgggACAGKAKwBjYCBCAAQQM2AgAgACADIAEoAnwiASABIANJGzYCECAAIAMgASABIANLGzYCDAwnCyAAIAYoApwINgIEIABBEzYCACAGQdAHahDlLAwHCyABIAEpA0A3A3ggASgCKCABQSU2AihBJEcNAyABIAEoAiwQxRAMBQsgASABKQNANwN4IAEoAiggAUElNgIoQSRHDQMgASABKAIsEMUQDAYLQYmE4QBBKEGAieAAENUhAAsgAEETNgIAIAAgBDYCBCAGQdAHahDlLAwiC0GJhOEAQShBkIngABDVIQALQYmE4QBBKEGgieAAENUhAAsgAEETNgIAIAAgAjYCBAsgBkGwBmoQ5CwMHgsgAEETNgIAIAAgAjYCBAwdCyAHEKETGiABQfwAQcAAIAEoAihBJUYbaigCACEDIAcQoRMiAkUEQCABKALYAiEBIAZBADoA0AcgASABIAZB0AdqEO8bIQEgAEETNgIAIAAgATYCBAwdCwJAAkACQAJAAkACQAJAIAIoAgBBJEYEQCABIAEpA0A3A3ggASgCKCABQSU2AihBJEcNASABKAIsIQEgAEETNgIAIAAgATYCBAwkCyABKAIoIQIgAUElNgIoIAEgASkDQDcDeCAGQdwHaiABQTRqKQIANwIAIAZB5AdqIAFBPGooAgA2AgAgBiABKQIsNwLUByAGIAI2AtAHIAZB0AdqEI4OAkACQCAHEKETIgIEQCACKAIAQQlGDQELIAZB2AdqIAcQiQogBkGIA2ogBxC3HiAGQZjN3wA2AtQHIAZBNDoA0AcgBigCiAMgBigCjAMgBkHQB2oQ7xshAiAHEKETIgNFDQggAygCAEEkRg0BDAgLIAEoAighBCABQSU2AiggASABKQNANwN4IAZB3AdqIgggAUEsaiICQQhqKQIANwIAIAZB5AdqIgkgAkEQaigCADYCACAGIAIpAgA3AtQHIAYgBDYC0AcgBkHQB2oiChCODiAGQekHaiABQZcDaikAADcA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ADcDACAcKAIAIhFBJUYNAQsgEUEURw0BIBAtAMwCQQRHDQEgAkHIAGogEEEAQQEQaiACKAJMIQQgAigCSEUNAgwKCyAQKALwAiERIBBBJTYC8AICQCARQSVHBEAgCCAQKQL0AjcCACAIQSBqIBBBlANqKAIANgIAIAhBGGogEEGMA2opAgA3AgAgGiAQQYQDaikCADcCACAHIBBB/AJqKQIANwIAIAIgETYC4AIMAQsgAkHgAmogDBAyIBwoAgBBJUYNACAcEOgDCyAcIAIpA+ACNwMAIBIgDykDADcDACANIAYpAwA3AwAgBSAEKQMANwMAIAEgFSkDADcDACAcKAIAIhFBJUcNAEEAIQQMAQsgEUEhRwRAQQAhBAwBCyAQKALAASIGIREgEEHAAWoiBCEBIAZBgQFPBEAgECgCQCERIBBBQGshAQsgEQRAIAEgEUEBazYCACAEKAIAIQYLIAZBgQFPBEAgECgCQCEGIBBBQGshBAsgBgRAIAQgBkEBazYCAAsgAkFAayAQQQBBARBqIAIoAkQhBCACKAJADQgLIAJBiARqEPUKCyADQShqIQ0gA0HIAmohDwJAAkACQCADKALIAiIFQSVGBEAgAygC8AIhASADQSU2AvACAkAgAUElRwRAIAggAykC9AI3AgAgCEEgaiADQZQDaigCADYCACAIQRhqIANBjANqKQIANwIAIBogA0GEA2opAgA3AgAgByADQfwCaikCADcCACACIAE2AuACDAELIAJB4AJqIA0QMiAPKAIAQSVGDQAgDxDoAwsgDyACKQPgAjcDACAPQSBqIAJBgANqKQMANwMAIA9BGGogAkH4AmopAwA3AwAgD0EQaiACQfACaikDADcDACAPQQhqIBUpAwA3AwAgDygCACIFQSVGDQELIAVBCUYNAQsgFSANEN0HIAJBmM3fADYC5AIgAkE0OgDgAiANQfACQbgCIA8oAgBBJUYiARtqKAIAIgUgDUH0AkG8AiABG2ooAgAiASABIAVLGyAFIAEgASAFSRsgAkHgAmoQ7xshASAPKAIAIgVBJUYEQCADKALwAiEFIANBJTYC8AICQCAFQSVHBEAgCCADKQL0AjcCACAIQSBqIANBlANqKAIANgIAIAhBGGogA0GMA2opAgA3AgAgGiADQYQDaikCADcCACAHIANB/AJqKQIANwIAIAIgBTYC4AIMAQsgAkHgAmogDRAyIA8oAgBBJUYNACAPEOgDCyAPIAIpA+ACNwMAIA9BIGogAkGAA2opAwA3AwAgD0EYaiACQfgCaikDADcDACAPQRBqIAJB8AJqKQMANwMAIA9BCGogFSkDADcDACAPKAIAIgVBJUYNAgsgBUEkRw0BIANBJTYCyAIgAyADKQPgAjcDmAMgAyADKALMAhDACAwBCyADQSU2AsgCIAggAykCzAI3AgAgAyADKQPgAjcDmAMgGiADQdwCaigCADYCACAHIANB1AJqKQIANwIAIAJBCTYC4AIgAkHgAmoiARDoAyACQQA6AJsEIAJBAToAnQQgAkGAAjsAjwQgAiADLQCwAjoAjgQgAiADLQC+AjoAnAQgAiADLQDGAjoApAQgAiADKAGqAjYAiAQgAiADLwGuAjsAjAQgAiADKQCzAjcAkQQgAiADLwC7AjsAmQQgAiADKALAAjYAngQgAiADLwHEAjsAogQgASADIAJBiARqEL8IIAJBkANqIAIoAuACEHYgAigCkAMhHCACKAKYAyEQIAIoApQDIREgARD1CiAcQYCAgIB4RgRAIBEhAQwBCwJAAkACQCAPKAIAIgVBJUYEQCADKALwAiEBIANBJTYC8AICQCABQSVHBEAgCCADKQL0AjcCACAIQSBqIANBlANqKAIANgIAIAhBGGogA0GMA2opAgA3AgAgGiADQYQDaikCADcCACAHIANB/AJqKQIANwIAIAIgATYC4AIMAQsgAkHgAmogDRAyIA8oAgBBJUYNACAPEOgDCyAPIAIpA+ACNwMAIA9BIGogAkGAA2opAwA3AwAgD0EYaiACQfgCaikDADcDACAPQRBqIAJB8AJqKQMANwMAIA9BCGogFSkDADcDACAPKAIAIgVBJUYNAQsgBUEKRg0BCyAVIA0Q3QcgAkHwzN8ANgLkAiACQTQ6AOACIA1B8AJBuAIgDygCAEElRiIBG2ooAgAiBSANQfQCQbwCIAEbaigCACIBIAEgBUsbIAUgASABIAVJGyACQeACahDvGyEBIA8oAgAiBUElRgRAIAMoAvACIQUgA0ElNgLwAgJAIAVBJUcEQCAIIAMpAvQCNwIAIAhBIGogA0GUA2ooAgA2AgAgCEEYaiADQYwDaikCADcCACAaIANBhANqKQIANwIAIAcgA0H8AmopAgA3AgAgAiAFNgLgAgwBCyACQeACaiANEDIgDygCAEElRg0AIA8Q6AMLIA8gAikD4AI3AwAgD0EgaiACQYADaikDADcDACAPQRhqIAJB+AJqKQMANwMAIA9BEGogAkHwAmopAwA3AwAgD0EIaiAVKQMANwMAIA8oAgAiBUElRg0CCyAFQSRHDQEgA0ElNgLIAiADIAMpA+ACNwOYAyADIAMoAswCEMAIDAELIANBJTYCyAIgCCADQcwCaiIBKQIANwIAIAMgAykD4AI3A5gDIBogAUEQaigCADYCACAHIAFBCGopAgA3AgAgAkEKNgLgAiACQeACahDoA0EAIQVBACEBAkAgAy0AoAJBAkcNACAPKAIAIgZBJUYEQCADKALwAiEBIANBJTYC8AICQCABQSVHBEAgCCADKQL0AjcCACAIQSBqIANBlANqKAIANgIAIAhBGGogA0GMA2opAgA3AgAgGiADQYQDaikCADcCACAHIANB/AJqKQIANwIAIAIgATYC4AIMAQsgAkHgAmogDRAyIA8oAgBBJUYNACAPEOgDCyAPIAIpA+ACNwMAIA9BIGogAkGAA2opAwA3AwAgD0EYaiACQfgCaikDADcDACAPQRBqIAJB8AJqKQMANwMAIA9BCGogFSkDADcDAEEAIQEgDygCACIGQSVGDQELIAZBE0cNACACQThqIANBoMffABB+IAIoAjwhASACKAI4DQELIBBBBnQhBgNAIAUgBkYiD0UEQCAFIBFqIAVBQGshBSgCAEUNAQsLIAJB4AJqIANBAEEBIA8QzgIgAigC5AIhDSACKALgAiIHQYGAgIB4RwRAIAJBuARqIgwgEykCADcDACACIBUpAgA3A7AEAkAgB0GAgICAeEcNACAQRSADLQCgAkECR3INACARIQUDQCAFKAIAQQRGBEAgBSgCECESIAUoAgwhDyACQakBOgDgAiADIA8gEiACQeACahDpIgsgBUFAayEFIAZBQGoiBg0ACwtBoL/kAC0AABogAygCnAMhBkHIABCEASIFRQ0pIAUgDTYCHCAFIAc2AhggBUEANgIUIAVCgICAgMAANwIMIAUgEDYCCCAFIBE2AgQgBSAcNgIAIAUgAikDsAQ3AiAgBUEBOwFEIAUgATYCQCAFIAQ2AjwgBUEANgI4IAVBKGogDCkDADcCACAFIBsgBiAGIBtJGzYCNCAFIBsgBiAGIBtLGzYCMCAFIQRBAQwLCyABBEAgASgCACIFEP4DIAVB4ABBCBCiGCABQQxBBBCiGAsgDSEBCyARIBAQ6ScgHCAREMEqCyAERQRAIAEhBAwICyAEEPsOIAQoAgAgBEEEaigCABDCKiAEQRRBBBCiGCABIQQMBwsgAiAKNgKsASACQQE2AqgBDCcLIAIoAuQCIQEgAkEBNgKoASACIAE2AqwBDCYLIAIgATYCrAEgAkEBNgKoAQwlCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAZBJUYEQCAJKALwAiEBIAlBJTYC8AICQCABQSVHBEAgCCAOKQIANwIAIAhBIGogDkEgaigCADYCACAIQRhqIA5BGGopAgA3AgAgCEEQaiAOQRBqKQIANwIAIAhBCGogDkEIaikCADcCACACIAE2AuACDAELIAJB4AJqIBcQMiALKAIAQSVGDQAgCxDoAwsgCyACKQPgAjcDACALQSBqIhkgAkGAA2oiFCkDADcDACALQRhqIhYgAkH4AmoiEykDADcDACALQRBqIgwgAkHwAmoiBSkDADcDACALQQhqIgQgFSkDADcDACALKAIAIgZBJUYNAQtBCSEEIAZBCUcNAQwZCyAJKALwAiEBIAlBJTYC8AICQCABQSVHBEAgCCAOKQIANwIAIAhBIGogDkEgaigCADYCACAIQRhqIA5BGGopAgA3AgAgCEEQaiAOQRBqKQIANwIAIAhBCGogDkEIaikCADcCACACIAE2AuACDAELIAJB4AJqIBcQMiALKAIAQSVGDQAgCxDoAwsgCyACKQPgAjcDACAZIBQpAwA3AwAgFiATKQMANwMAIAwgBSkDADcDACAEIBUpAwA3AwAgCygCACIGQSVGDQELQQshBCAGQQtGDRcMAQsgCSgC8AIhASAJQSU2AvACAkAgAUElRwRAIAggDikCADcCACAIQSBqIA5BIGooAgA2AgAgCEEYaiAOQRhqKQIANwIAIAhBEGogDkEQaikCADcCACAIQQhqIA5BCGopAgA3AgAgAiABNgLgAgwBCyACQeACaiAXEDIgCygCAEElRg0AIAsQ6AMLIAsgAikD4AI3AwAgGSAUKQMANwMAIBYgEykDADcDACAMIAUpAwA3AwAgBCAVKQMANwMAIAsoAgAiBkElRg0BCyAGQRNHDQEMFwsgCSgC8AIhASAJQSU2AvACAkAgAUElRwRAIAggDikCADcCACAIQSBqIA5BIGooAgA2AgAgCEEYaiAOQRhqKQIANwIAIAhBEGogDkEQaikCADcCACAIQQhqIA5BCGopAgA3AgAgAiABNgLgAgwBCyACQeACaiAXEDIgCygCAEElRg0AIAsQ6AMLIAsgAikD4AI3AwAgGSAUKQMANwMAIBYgEykDADcDACAMIAUpAwA3AwAgBCAVKQMANwMAIAsoAgAiBkElRg0BC0EQIQQgBkEQRg0TDAELIAkoAvACIQEgCUElNgLwAgJAIAFBJUcEQCAIIA4pAgA3AgAgCEEgaiAOQSBqKAIANgIAIAhBGGogDkEYaikCADcCACAIQRBqIA5BEGopAgA3AgAgCEEIaiAOQQhqKQIANwIAIAIgATYC4AIMAQsgAkHgAmogFxAyIAsoAgBBJUYNACALEOgDCyALIAIpA+ACNwMAIBkgFCkDADcDACAWIBMpAwA3AwAgDCAFKQMANwMAIAQgFSkDADcDACALKAIAIgZBJUYNAQtBFyEEIAZBF0YNEQwBCyAJKALwAiEBIAlBJTYC8AICQCABQSVHBEAgCCAOKQIANwIAIAhBIGogDkEgaigCADYCACAIQRhqIA5BGGopAgA3AgAgCEEQaiAOQRBqKQIANwIAIAhBCGogDkEIaikCADcCACACIAE2AuACDAELIAJB4AJqIBcQMiALKAIAQSVGDQAgCxDoAwsgCyACKQPgAjcDACAZIBQpAwA3AwAgFiATKQMANwMAIAwgBSkDADcDACAEIBUpAwA3AwAgCygCACIGQSVGDQELIAZBFUcNASAYLQAADQFBFSEEDA8LIAkoAvACIQEgCUElNgLwAgJAIAFBJUcEQCAIIA4pAgA3AgAgCEEgaiAOQSBqKAIANgIAIAhBGGogDkEYaikCADcCACAIQRBqIA5BEGopAgA3AgAgCEEIaiAOQQhqKQIANwIAIAIgATYC4AIMAQsgAkHgAmogFxAyIAsoAgBBJUYNACALEOgDCyALIAIpA+ACNwMAIBkgFCkDADcDACAWIBMpAwA3AwAgDCAFKQMANwMAIAQgFSkDADcDACALKAIAIgZBJUYNAQsgBkEURw0BIBgtAABBDUcNAUEUIQQMDQsgCSgC8AIhASAJQSU2AvACAkAgAUElRwRAIAggDikCADcCACAIQSBqIA5BIGooAgA2AgAgCEEYaiAOQRhqKQIANwIAIAhBEGogDkEQaikCADcCACAIQQhqIA5BCGopAgA3AgAgAiABNgLgAgwBCyACQeACaiAXEDIgCygCAEElRg0AIAsQ6AMLIAsgAikD4AI3AwAgGSAUKQMANwMAIBYgEykDADcDACAMIAUpAwA3AwAgBCAVKQMANwMAIAsoAgAiBkElRg0BC0ECIQQgBkECRg0LDAELIAkoAvACIQEgCUElNgLwAgJAIAFBJUcEQCAIIA4pAgA3AgAgCEEgaiAOQSBqKAIANgIAIAhBGGogDkEYaikCADcCACAIQRBqIA5BEGopAgA3AgAgCEEIaiAOQQhqKQIANwIAIAIgATYC4AIMAQsgAkHgAmogFxAyIAsoAgBBJUYNACALEOgDCyALIAIpA+ACNwMAIBkgFCkDADcDACAWIBMpAwA3AwAgDCAFKQMANwMAIAQgFSkDADcDACALKAIAIgZBJUYNAQtBGyEEIAZBG0YNCQwBCyAJKALwAiEBIAlBJTYC8AICQCABQSVHBEAgCCAOKQIANwIAIAhBIGogDkEgaigCADYCACAIQRhqIA5BGGopAgA3AgAgCEEQaiAOQRBqKQIANwIAIAhBCGogDkEIaikCADcCACACIAE2AuACDAELIAJB4AJqIBcQMiALKAIAQSVGDQAgCxDoAwsgCyACKQPgAjcDACAZIBQpAwA3AwAgFiATKQMANwMAIAwgBSkDADcDACAEIBUpAwA3AwAgCygCACIGQSVGDQELQR0hBCAGQR1GDQcLIAktAKACQQJHDQEgFxC/CiIBRQ0BIAEoAgBBFEcNASABLQAEQQRHDQEgCygCACEEDAULIAlBJTYCyAIgGCkCACEnIBggAikCuAE3AgAgAkH0AmogGEEQaiIEKAIANgIAIAJB7AJqIBhBCGoiASkCADcCACABIAJBwAFqKQIANwIAIAkpA+ACISUgBCACQcgBaikCADcCACAYQRhqIAJB0AFqKQIANwIAIBhBIGogAkHYAWooAgA2AgAgAiAnNwLkAiACQQ42AuACIAkgJTcDmAMgAkHgAmoiBBDoAyAfIAkoApwDIgUgBSAfSRshASAfIAUgBSAfSxshBSAkBEAgBCAJQRRqIAUgJqcgJkIgiKcQjAcLIABBDjYCACAAIAIpApwBNwIEIAAgATYCFCAAIAU2AhAgAEEMaiACQaQBaigCADYCAAwnCwJAIAsoAgAiBkElRgRAIAkoAvACIQEgCUElNgLwAgJAIAFBJUcEQCAIIA4pAgA3AgAgCEEgaiAOQSBqKAIANgIAIAhBGGogDkEYaikCADcCACAIQRBqIA5BEGopAgA3AgAgCEEIaiAOQQhqKQIANwIAIAIgATYC4AIMAQsgAkHgAmogFxAyIAsoAgBBJUYNACALEOgDCyALIAIpA+ACNwMAIAtBIGogAkGAA2opAwA3AwAgC0EYaiACQfgCaikDADcDACALQRBqIAJB8AJqKQMANwMAIAtBCGogFSkDADcDAEElIQEgCygCACIGQSVGDQELQQ4hBCAGQQ5HBEAgBiEBDAELIAYhASAKRQ0FCyAXQfACQbgCIAFBJUYiARtqKAIAIQQgF0H0AkG8AiABG2ooAgAhASACQfUAOgDgAiAJIAQgASABIARLGyAEIAEgASAESRsgAkHgAmoQ6SJBoL/kAC0AABogCSgCnAMhBSACKALcASEEQcAAEIQBIgFFDSAgAUExNgIAIB0gAikDmAI3AgAgASAEIAUgBCAFSxs2AgggASAEIAUgBCAFSRs2AgQgHUEIaiAeKQMANwIAIB1BEGogAkGoAmopAwA3AgAgHUEYaiACQbACaikDADcCAEGgv+QALQAAGkHwABCEASIERQ0gIARBBjYCACAEIAIpAuACNwIEIAQgATYCKCAEQQxqIBUpAgA3AgAgBEEUaiACQfACaikCADcCACAEQRxqIAJB+AJqKQIANwIAIARBJGogAkGAA2ooAgA2AgAgAiAENgKwASACQgA3AqgBDCILIAJBiARqEPUKC0EEQQAQkiVBAEEEEMAqQQALIQEgAkGwA2oQ9QogICACKQPgATcDACAgQQhqIBYpAwA3AwAgIEEQaiAUKQMANwMAIAIgCjYC/AEgAiAZNgL4AQJAIAFFBEAgAkEBNgKoASACIAQ2AqwBIAJB+AFqEO4MDAELIB0gAikD+AE3AgAgHUEYaiACQZACaikDADcCACAdQRBqIAJBiAJqKQMANwIAIB1BCGogICkDADcCAEGgv+QALQAAGkHwABCEASIBRQ0eIAFBCjYCACABIAIpAuACNwIEIAEgBDYCKCABQQxqIBUpAgA3AgAgAUEUaiACQfACaikCADcCACABQRxqIAJB+AJqKQIANwIAIAFBJGogAkGAA2ooAgA2AgAgAiABNgKwASACQgA3AqgBCyACQbgCahD1CgwfCwJAIARBJUcNACAJKALwAiEBIAlBJTYC8AICQCABQSVHBEAgCCAOKQIANwIAIAhBIGogDkEgaigCADYCACAIQRhqIA5BGGopAgA3AgAgCEEQaiAOQRBqKQIANwIAIAhBCGogDkEIaikCADcCACACIAE2AuACDAELIAJB4AJqIBcQMiALKAIAQSVGDQAgCxDoAwsgCyACKQPgAjcDACALQSBqIhkgAkGAA2oiFCkDADcDACALQRhqIhYgAkH4AmoiEykDADcDACALQRBqIgwgAkHwAmoiBikDADcDACALQQhqIgUgFSkDADcDACALKAIAIgRBJUcNACAJKALwAiEEIAktAKACQQJGBEAgCUElNgLwAgJAIARBJUcEQCAIIA4pAgA3AgAgCEEgaiAOQSBqKAIANgIAIAhBGGogDkEYaikCADcCACAIQRBqIA5BEGopAgA3AgAgCEEIaiAOQQhqKQIANwIAIAIgBDYC4AIMAQsgAkHgAmogFxAyIAsoAgBBJUYNACALEOgDCyALIAIpA+ACNwMAIBkgFCkDADcDACAWIBMpAwA3AwAgDCAGKQMANwMAIAUgFSkDADcDACALKAIAIgRBJUcNAyAJKALwAiEECyAJQSU2AvACAkAgBEElRwRAIAggDikCADcCACAIQSBqIA5BIGooAgA2AgAgCEEYaiAOQRhqKQIANwIAIAhBEGogDkEQaikCADcCACAIQQhqIA5BCGopAgA3AgAgAiAENgLgAgwBCyACQeACaiAXEDIgCygCAEElRg0AIAsQ6AMLIAsgAikD4AI3AwAgGSAUKQMANwMAIBYgEykDADcDACAMIAYpAwA3AwAgBSAVKQMANwMAIAsoAgAiBEElRw0EIAoNByACQcACaiAHKQMANwMAIAIgHikDADcDuAIgCSgC8AIhASAJQSU2AvACAkAgAUElRwRAIAggDikCADcCACAIQSBqIA5BIGooAgA2AgAgCEEYaiAOQRhqKQIANwIAIAhBEGogDkEQaikCADcCACAIQQhqIA5BCGopAgA3AgAgAiABNgLgAgwBCyACQeACaiAXEDIgCygCAEElRg0A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jANqKQIANwIAIA8gB0GEA2opAgA3AgAgDSAHQfwCaikCADcCACACIAE2AuACDAELIAJB4AJqIAwQMiATKAIAQSVGDQAgExDoAwsgEyACKQPgAjcDACATQSBqIAJBgANqKQMANwMAIBNBGGogAkH4AmopAwA3AwAgE0EQaiACQfACaikDADcDACATQQhqIBUpAwA3AwAgEygCACIFQSVGDQELIAVBCkYNAQsgFSAMEN0HIAJB8MzfADYC5AIgAkE0OgDgAiAMQfACQbgCIBMoAgBBJUYiARtqKAIAIgUgDEH0AkG8AiABG2ooAgAiASABIAVLGyAFIAEgASAFSRsgAkHgAmoQ7xshASATKAIAIgVBJUYEQCAHKALwAiEFIAdBJTYC8AICQCAFQSVHBEAgCCAHKQL0AjcCACAIQSBqIAdBlANqKAIANgIAIAhBGGogB0GMA2opAgA3AgAgDyAHQYQDaikCADcCACANIAdB/AJqKQIANwIAIAIgBTYC4AIMAQsgAkHgAmogDBAyIBMoAgBBJUYNACATEOgDCyATIAIpA+ACNwMAIBNBIGogAkGAA2opAwA3AwAgE0EYaiACQfgCaikDADcDACATQRBqIAJB8AJqKQMANwMAIBNBCGogFSkDADcDACATKAIAIgVBJUYNAgsgBUEkRw0BIAdBJTYCyAIgByAHKQPgAjcDmAMgByAHKALMAhDACAwBCyAHQSU2AsgCIAggB0HMAmoiASkCADcCACAHIAcpA+ACNwOYAyAPIAFBEGooAgA2AgAgDSABQQhqKQIANwIAIAJBCjYC4AIgAkHgAmoQ6ANBACEFQQAhAQJAIActAKACQQJHDQAgEygCACIGQSVGBEAgBygC8AIhASAHQSU2AvACAkAgAUElRwRAIAggBykC9AI3AgAgCEEgaiAHQZQDaigCADYCACAIQRhqIAdBjANqKQIANwIAIA8gB0GEA2opAgA3AgAgDSAHQfwCaikCADcCACACIAE2AuACDAELIAJB4AJqIAwQMiATKAIAQSVGDQAgExDoAwsgEyACKQPgAjcDACATQSBqIAJBgANqKQMANwMAIBNBGGogAkH4AmopAwA3AwAgE0EQaiACQfACaikDADcDACATQQhqIBUpAwA3AwBBACEBIBMoAgAiBkElRg0BCyAGQRNHDQAgAkEIaiAHQaDH3wAQ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AmopAwA3AwAgBkEIaiADQcACaikDADcDACAGKAIAIgVBJUcNAAwBCyAFQSFHDQAgDSgCwAEiECEFIA1BwAFqIhEhDyAQQYEBTwRAIA1BQGshDyANKAJAIQULIAUEQCAPIAVBAWs2AgAgESgCACEQCyAQQYEBTwRAIA0oAkAhECANQUBrIRELIBAEQCARIBBBAWs2AgALIANBCGogDUEAQQEQaiADKAIMIREgAygCCA0MCyADQdAAahD1CgsgB0EoaiESIAdByAJqIQwCQAJAAkAgBygCyAIiBEElRgRAIAcoAvACIQEgB0ElNgLwAgJAIAFBJUcEQCADQdwCaiAHQZQDaigCADYCACADQdQCaiAHQYwDaikCADcCACADQcwCaiAHQYQDaikCADcCACADQcQCaiAHQfwCaikCADcCACADIAE2ArgCIAMgBykC9AI3ArwCDAELIANBuAJqIBIQMiAMKAIAQSVGDQAgDBDoAwsgDCADKQO4AjcDACAMQSBqIANB2AJqKQMANwMAIAxBGGogA0HQAmopAwA3AwAgDEEQaiADQcgCaikDADcDACAMQQhqIANBwAJqKQMANwMAIAwoAgAiBEElRg0BCyAEQQlGDQELIANBwAJqIBIQ3QcgA0GYzd8ANgK8AiADQTQ6ALgCIBJB8AJBuAIgDCgCAEElRiIBG2ooAgAiBCASQfQCQbwCIAEbaigCACIBIAEgBEsbIAQgASABIARJGyADQbgCahDvGyEBIAwoAgAiBEElRgRAIAcoAvACIQQgB0ElNgLwAgJAIARBJUcEQCADQdwCaiAHQZQDaigCADYCACADQdQCaiAHQYwDaikCADcCACADQcwCaiAHQYQDaikCADcCACADQcQCaiAHQfwCaikCADcCACADIAQ2ArgCIAMgBykC9AI3ArwCDAELIANBuAJqIBIQMiAMKAIAQSVGDQAgDBDoAwsgDCADKQO4AjcDACAMQSBqIANB2AJqKQMANwMAIAxBGGogA0HQAmopAwA3AwAgDEEQaiADQcgCaikDADcDACAMQQhqIANBwAJqKQMANwMAIAwoAgAiBEElRg0CCyAEQSRHDQEgB0ElNgLIAiAHIAcpA+ACNwOYAyAHIAcoAswCEMAIDAELIAdBJTYCyAIgByAHKQPgAjcDmAMgA0HMAmogB0HcAmooAgA2AgAgA0HE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ANMBIAMgGykAswI3ANgBIAMgGykAuwI3AOABIAMgGygAwwI2AOgBIANB7AFqIBsgA0HPAWoQvwggAygC7AEiCi0AoAJBAkYEQCADQQE6AMQCIAMgCikBqgI3ALgCIAMgCigBsgI2AMACIAMgCikAtwI3AMUCIAMgCikAvwI3AM0CIANB0ABqIAogA0G4AmoQvwgCQAJAAkAgAygCUCINKALIAiIFQSVGBEAgDUHIAmohBiANQShqIQQgDSgC8AIhASANQSU2AvACAkAgAUElRwRAIANB3AJqIA1BlANqKAIANgIAIANB1AJqIA1BjANqKQIANwIAIANBzAJqIA1BhANqKQIANwIAIANBxAJqIA1B/AJqKQIANwIAIAMgATYCuAIgAyANKQL0AjcCvAIMAQsgA0G4AmogBBAyIAYoAgBBJUYNACAGEOgDCyAGIAMpA7gCNwMAIAZBIGogA0HYAmopAwA3AwAgBkEYaiADQdACaikDADcDACAGQRBqIANByAJqKQMANwMAIAZBCGogA0HAAmopAwA3AwAgBigCACIFQSVGDQELIAVBFEcNASANLQDMAkEERw0BIANBKGogDUEAQQEQaiADKAIsIREgAygCKEUNAgwKCyANKALwAiEBIA1BJTYC8AICQCABQSVHBEAgA0HcAmogDUGUA2ooAgA2AgAgA0HUAmogDUGMA2opAgA3AgAgA0HMAmogDUGEA2opAgA3AgAgA0HEAmogDUH8AmopAgA3AgAgAyABNgK4AiADIA0pAvQCNwK8AgwBCyADQbgCaiAEEDIgBigCAEElRg0AIAYQ6AMLIAYgAykDuAI3AwAgBkEgaiADQdgCaikDADcDACAGQRhqIANB0AJqKQMANwMAIAZBEGogA0HIAmopAwA3AwAgBkEIaiADQcACaikDADcDACAGKAIAIgVBJUcNAAwBCyAFQSFHDQAgDSgCwAEiECEFIA1BwAFqIhEhDyAQQYEBTwRAIA1BQGshDyANKAJAIQULIAUEQCAPIAVBAWs2AgAgESgCACEQCyAQQYEBTwRAIA0oAkAhECANQUBrIRELIBAEQCARIBBBAWs2AgALIANBIGogDUEAQQEQaiADKAIkIREgAygCIA0ICyADQdAAahD1CgsgCkEoaiESIApByAJqIQwCQAJAAkAgCigCyAIiBkElRgRAIAooAvACIQEgCkElNgLwAgJAIAFBJUcEQCADQdwCaiAKQZQDaigCADYCACADQdQCaiAKQYwDaikCADcCACADQcwCaiAKQYQDaikCADcCACADQcQCaiAKQfwCaikCADcCACADIAE2ArgCIAMgCikC9AI3ArwCDAELIANBuAJqIBIQMiAMKAIAQSVGDQAgDBDoAwsgDCADKQO4AjcDACAMQSBqIANB2AJqKQMANwMAIAxBGGogA0HQAmopAwA3AwAgDEEQaiADQcgCaikDADcDACAMQQhqIANBwAJqKQMANwMAIAwoAgAiBkElRg0BCyAGQQlGDQELIANBwAJqIBIQ3QcgA0GYzd8ANgK8AiADQTQ6ALgCIBJB8AJBuAIgDCgCAEElRiIBG2ooAgAiBCASQfQCQbwCIAEbaigCACIBIAEgBEsbIAQgASABIARJGyADQbgCahDvGyEBIAwoAgAiBkElRgRAIAooAvACIQQgCkElNgLwAgJAIARBJUcEQCADQdwCaiAKQZQDaigCADYCACADQdQCaiAKQYwDaikCADcCACADQcwCaiAKQYQDaikCADcCACADQcQCaiAKQfwCaikCADcCACADIAQ2ArgCIAMgCikC9AI3ArwCDAELIANBuAJqIBIQMiAMKAIAQSVGDQAgDBDoAwsgDCADKQO4AjcDACAMQSBqIANB2AJqKQMANwMAIAxBGGogA0HQAmopAwA3AwAgDEEQaiADQcgCaikDADcDACAMQQhqIANBwAJqKQMANwMAIAwoAgAiBkElRg0CCyAGQSRHDQEgCkElNgLIAiAKIAopA+ACNwOYAyAKIAooAswCEMAIDAELIApBJTYCyAIgCiAKKQPgAjcDmAMgA0HMAmogCkHcAmooAgA2AgAgA0HEAmogCkHUAmopAgA3AgAgA0EJNgK4AiADIAopAswCNwK8AiADQbgCaiIBEOgDIANBADoA4wMgA0EBOgDlAyADQQA7ANcDIAMgCi0AsAI6ANYDIAMgCi0AvgI6AOQDIAMgCi0AxgI6AOwDIAMgCigBqgI2ANADIAMgCi8BrgI7ANQDIAMgCikAswI3ANkDIAMgCi8AuwI7AOEDIAMgCigCwAI2AOYDIAMgCi8BxAI7AOoDIAEgCiADQdADahC/CCADQdAAaiADKAK4AiIPEHYgAygCVCEEIAMoAlAiFkGAgICAeEcE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AwA3AwAgB0EYaiADQdACaikDADcDACAHQRBqIANByAJqKQMANwMAIAdBCGogA0HAAmopAwA3AwAgBygCACIEQSVGDQELIARBCUYNAQsgA0HAAmogEhDdByADQZjN3wA2ArwCIANBNDoAuAIgEkHwAkG4AiAHKAIAQSVGIgEbaigCACIEIBJB9AJBvAIgARtqKAIAIgEgASAESxsgBCABIAEgBEkbIANBuAJqEO8bIQEgBygCACIEQSVGBEAgCigC8AIhBCAKQSU2AvACAkAgBEElRwRAIANB3AJqIApBlANqKAIANgIAIANB1AJqIApBjANqKQIANwIAIANBzAJqIApBhANqKQIANwIAIANBxAJqIApB/AJqKQIANwIAIAMgBDYCuAIgAyAKKQL0AjcCvAIMAQsgA0G4AmogEhAyIAcoAgBBJUYNACAHEOgDCyAHIAMpA7gCNwMAIAdBIGogA0HYAmopAwA3AwAgB0EYaiADQdACaikDADcDACAHQRBqIANByAJqKQMANwMAIAdBCGogA0HAAmopAwA3AwAgBygCACIEQSVGDQILIARBJEcNASAKQSU2AsgCIAogCikD4AI3A5gDIAogCigCzAIQwAgMAQsgCkElNgLIAiAKIAopA+ACNwOYAyADQcwCaiAKQdwCaigCADYCACADQcQCaiAKQdQCaikCADcCACADQQk2ArgCIAMgCikCzAI3ArwCIANBuAJqIgEQ6AMgA0EBOgDXAyADQQA6AOMDIANBAToA5QMgAyAWOgDYAyADIAotALACOgDWAyADIAotAL4COgDkAyADIAotAMYCOgDsAyADIAooAaoCNgDQAyADIAovAa4COwDUAyADIAopALMCNwDZAyADIAovALsCOwDhAyADIAooAsACNgDmAyADIAovAcQCOwDqAyABIAogA0HQA2oQvwggA0HQAGogAygCuAIQdiADKAJQIQwgAygCWCEZIAMoAlQhBiABEPUKIAxBgICAgHhGBEAgBiEBDAELAkACQAJAIAcoAgAiBEElRgRAIAooAvACIQEgCkElNgLwAgJAIAFBJUcEQCADQdwCaiAKQZQDaigCADYCACADQdQCaiAKQYwDaikCADcCACADQcwCaiAKQYQDaikCADcCACADQcQCaiAKQfwCaikCADcCACADIAE2ArgCIAMgCikC9AI3ArwCDAELIANBuAJqIBIQMiAHKAIAQSVGDQAgBxDoAwsgByADKQO4AjcDACAHQSBqIANB2AJqKQMANwMAIAdBGGogA0HQAmopAwA3AwAgB0EQaiADQcgCaikDADcDACAHQQhqIANBwAJqKQMANwMAIAcoAgAiBEElRg0BCyAEQQpGDQELIANBwAJqIBIQ3QcgA0HwzN8ANgK8AiADQTQ6ALgCIBJB8AJBuAIgBygCAEElRiIBG2ooAgAiBCASQfQCQbwCIAEbaigCACIBIAEgBEsbIAQgASABIARJGyADQbgCahDvGyEBIAcoAgAiBEElRgRAIAooAvACIQQgCkElNgLwAgJAIARBJUcEQCADQdwCaiAKQZQDaigCADYCACADQdQCaiAKQYwDaikCADcCACADQcwCaiAKQYQDaikCADcCACADQcQCaiAKQfwCaikCADcCACADIAQ2ArgCIAMgCikC9AI3ArwCDAELIANBuAJqIBIQMiAHKAIAQSVGDQAgBxDoAwsgByADKQO4AjcDACAHQSBqIANB2AJqKQMANwMAIAdBGGogA0HQAmopAwA3AwAgB0EQaiADQcgCaikDADcDACAHQQhqIANBwAJqKQMANwMAIAcoAgAiBEElRg0CCyAEQSRHDQEgCkElNgLIAiAKIAopA+ACNwOYAyAKIAooAswCEMAIDAELIApBJTYCyAIgCiAKKQPgAjcDmAMgA0HMAmoiDSAKQcwCaiIBQRBqKAIANgIAIANBxAJqIhEgAUEIaikCADcCACADQQo2ArgCIAMgASkCADcCvAIgA0G4AmoQ6ANBACEEQQAhAQJAIAotAKACQQJHDQAgBygCACIPQSVGBEAgCigC8AIhASAKQSU2AvACAkAgAUElRwRAIANB3AJqIApBlANqKAIANgIAIANB1AJqIApBjANqKQIANwIAIA0gCkGEA2opAgA3AgAgESAKQfwCaikCADcCACADIAE2ArgCIAMgCikC9AI3ArwCDAELIANBuAJqIBIQMiAHKAIAQSVGDQAgBxDoAwsgByADKQO4AjcDACAHQSBqIANB2AJqKQMANwMAIAdBGGogA0HQAmopAwA3AwAgB0EQaiADQcgCaikDADcDACAHQQhqIANBwAJqKQMANwMAQQAhASAHKAIAIg9BJUYNAQsgD0ETRw0AIANBMGogCkGgx98AEH4g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AgQgEiAFNgJIIBJBDGogA0HAAmopAgA3AgAgEkEUaiADQcgCaikCADcCACASQRxqIANB0AJqKQIANwIAIBJBJGogA0HYAmopAgA3AgAgEkEsaiADQeACaikCADcCACASQTRqIANB6AJqKQIANwIAIBJBPGogA0HwAmooAgA2AgAgEiABIAQgASAESxs2AkQgEiABIAQgASAESRs2AkAgFiAREOknIBYQwSogFCAPEJIlIBQQwCogBwRAIAcQ+w4gBygCACAHQQRqKAIAEMIqIAdBFEEEEKIYCyAcIBI2AgggHEIANwIADAcLIANB0ABqEPUKC0EEQQAQkiVBAEEEEMAqIANB7AFqEPUKIBxBATYCACAcIAU2AgQgGhDuDAwFCyADQdAAahD1CgtBBEEAEJIlQQBBBBDAKiADQewBahD1CiAcIBE2AgQgHEEBNgIAIANB2ABqIBpBCGopAwA3AwAgA0HgAGogGkEQaikDADcDACADQegAaiAaQRhqKQMANwMAIAMgFDYCeCADIAc2AnQgAyAbNgJwIAMgGikDADcDUCADQdAAahDuDAwDCwALIANB0ABqEPUKC0EEQQAQkiVBAEEEEMAqIANB7AFqEPUKIBwgETYCBCAcQQE2AgAgA0HYAGogGkEIaikDADcDACADQeAAaiAaQRBqKQMANwMAIANB6ABqIBpBGGopAwA3AwAgAyAZNgJ4IAMgCjYCdCADIBs2AnAgAyAaKQMANwNQIANB0ABqEO4MCyADQYAEaiQAIBMQ9QogAikDuAIiJUIDg1BFDQUgAiAlpyIENgLgAiAaENAGIAQgBCgCACIBQQFrNgIAIAFBAUYEQCAEIAQoAiAQjScLIAIoApgCRQ0FIAJBmAJqEO4MDAULIAIgDzYCrAEgAkEBNgKoAQsgAikDuAIiJUIDg1BFDQMgAiAlpyIENgLgAiACQeACahDQBiAEIAQoAgAiAUEBazYCACABQQFGBEAgBCAEKAIgEI0nCyACKAKYAkUNAyACQZgCahDuDAwDCyACQbgDaiACQcACaikDADcDACACIAIpA7gCNwOwAyACQYgEaiACQbADahCTFCAdQRBqIAJBmARqKQMANwIAIB1BCGogAkGQBGopAwA3AgAgHSACKQOIBDcCAEGgv+QALQAAGkHwABCEASIBRQ0AIAFBBTYCACABIAIpAuAC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AnQhBCAFIQIDQCAQIAIoAgAQnAMgAkEEaiECIARBBGsiBA0ACwsgBSAIEK4yIAEoAsABIQIgASgCxAEhDkEBIRJBACELIAEoAtABIgghCQsgAiAORw0BCwsgCSABKALUASIDayECIAggA2shBSABKALMASEEIAEoAsgBIQMCfiASRQRAIAEgAyAEajYCxAEgASACIANqNgLAASABKALoAUEIaiADIAVqIAIgBWsQrxMMAQsgASADIARqNgLEASABIAIgA2o2AsABIBAgAiAFayICEOonIA0oAhAgDSgCFGogAyAFaiACEIEJGiANIA0oAhQgAmoiAzYCFCABKALoAUEIaiANKAIQIAMQrxMLIhhCgICAgHCDIRkgGKchBUEADAMLQaz32AAQ1R0ACwALQQELIA0gDSgCCEEBajYCCCANEKMdDQMgGSAFrYQiGEIAUg0BCxCnIiEYCyAHIBg3AxAgByAXNwMIIBdCCIinIQ8gF6chDkEcIQoLIAcgBykBCjcDGCAHIAdBEGopAQA3AR4gCkElRw0CIABBJTYCAAwDCyAXQgODQgBSDQAgByAXpyIDNgIoIAdBKGoQ0AYgAyADKAIAIgJBAWs2AgAgAkEBRw0AIAMgAygCIBCNJwsgByAHKQEoNwMYIAcgB0EuaikBADcBHkEkIQoLIAEoAtABIRYgASgCAARAIAdByABqIAFBBGoiAhD4BiAHKAJMIgggBygCVCIDRwRAIANBGGshBCAHQTlqIgZBA2ohCQNAIAQiA0EQai0AACILQQJHBEAgB0EwaiADQQhqKQMANwMAIAYgA0ERaigAADYAACAJIANBFGooAAA2AAAgB0EAOgBEIAcgFDYCQCAHIAs6ADggByADKQMANwMoIAIgB0EoahD4FiADQRhrIQQgAyAIRw0BCwsgByADNgJUCyAHQcgAahChEAtBBSEEAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQEEQIApBAmsiAiACQSNPG0EBaw4iIgECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gIQALIA8hCEEEIA5BAmtB/wFxIgIgAkEETxsiBEEBaw4EISEhIiMLQQYhBAwgC0EHIQQM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mAMgBkH8AWogAUHUAmopAgA3AgAgBkGEAmogAUHcAmooAgA2AgAgBiABKQLMAjcC9AEgBiADNgLwASAGQfABahDoAyAKEL8KIgRFDR4gAUHMAmohAyAEKAIAQQ5rDgIeCgsLIwBB0AFrIgIkACABQcgCaiEDIAFBKGohCAJAAkACQCABKALIAiIEQSVHBEAgAUGcA2ohDQwBCyABKALwAiEEIAFBJTYC8AICQCAEQSVHBEAgAkHMAWogAUGUA2ooAgA2AgAgAkHEAWogAUGMA2opAgA3AgAgAkG8AWogAUGEA2opAgA3AgAgAkG0AWogAUH8AmopAgA3AgAgAiAENgKoASACIAEpAvQCNwKsAQwBCyACQagBaiAIEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDqAE3AwAgA0EgaiACQcgBaikDADcDACADQRhqIAJBwAFqKQMANwMAIANBEGogAkG4AWopAwA3AwAgA0EIaiACQbABaikDADcDACABQZwDaiENIAEoAsgCIgRBJUcNACABKAKcAyEKIAEoAvACIQQgAUElNgLwAgJAIARBJUcEQCACQcwBaiABQZQDaigCADYCACACQcQBaiABQYwDaikCADcCACACQbwBaiABQYQDaikCADcCACACQbQBaiABQfwCaikCADcCACACIAQ2AqgBIAIgASkC9AI3AqwBDAELIAJBqAFqIAgQMiADKAIAQSVGDQAgAxDoAwsgAyACKQOoATcDACADQSBqIAJByAFqKQMANwMAIANBGGogAkHAAWopAwA3AwAgA0EQaiACQbgBaikDADcDACADQQhqIAJBsAFqKQMANwMAIAMoAgAiBEElRw0BIAEoAoACIQEgAkEAOgCoASABIAEgAkGoAWoQ7xshASAAQRM2AgAgACABNgIEDAILIAEoAuACIQoLAkACQAJAAkACQAJAAkACQAJAAkACQCAEQSRHBEAgAUElNgLIAiABIAEpA+ACNwOYAyACQbwBaiIMIAFB3AJqKAIANgIAIAJBtAFqIgcgAUHUAmopAgA3AgAgAiAENgKoASACIAEpAswCNwKsASACQagBaiIJEOgDIAJBgQI7AB0gAiABLQDGAjoALyACIAEpAaoCNwATIAIgAS8BsgI7ABsgAiABKQG2AjcAHyACIAEpAb4CNwAnIAkgASACQRNqEL8IIAJBMGogAigCqAFBAEEAELMBIAIoAjBBE0YNBUGgv+QALQAAGkEwEIQBIgtFDQQgAUHMAmohBCALIAIpAzA3AwAgC0EoaiACQdgAaikDADcDACALQSBqIAJB0ABqKQMANwMAIAtBGGogAkHIAGopAwA3AwAgC0EQaiACQUBrKQMANwMAIAtBCGogAkE4aikDADcDACAJEPUKAkACQCADKAIAIglBJUYEQCABKALwAiEJIAFBJTYC8AICQCAJQSVHBEAgAkHMAWogAUGUA2ooAgA2AgAgAkHEAWogAUGMA2opAgA3AgAgDCABQYQDaikCADcCACAHIAFB/AJqKQIANwIAIAIgCTYCqAEgAiABKQL0AjcCrAEMAQsgAkGoAWogCBAyIAMoAgBBJUYNACADEOgDCyADIAIpA6gBNwMAIANBIGogAkHIAWopAwA3AwAgA0EYaiACQcABaikDADcDACADQRBqIAJBuAFqKQMANwMAIANBCGogAkGwAWopAwA3AwAgAygCACIJQSVGDQELIAlBAkcNACABLQDQAkECRw0AIAEtANECQRRGDQELIAJBsAFqIAgQ3QcgAkGohuAANgKsASACQTQ6AKgBIAhB8AJBuAIgAygCAEElRiIJG2ooAgAiCiAIQfQCQbwCIAkbaigCACIJIAkgCksbIAogCSAJIApJGyACQagBahDvGyEJIAMoAgAiCkElRgRAIAEoAvACIQogAUElNgLwAgJAIApBJUcEQCACQcwBaiABQZQDaigCADYCACACQcQBaiABQYwDaikCADcCACACQbwBaiABQYQDaikCADcCACACQbQBaiABQfwCaikCADcCACACIAo2AqgBIAIgASkC9AI3AqwBDAELIAJBqAFqIAgQMiADKAIAQSVGDQAgAxDoAwsgAyACKQOoATcDACADQSBqIAJByAFqKQMANwMAIANBGGogAkHAAWopAwA3AwAgA0EQaiACQbgBaikDADcDACADQQhqIAJBsAFqKQMANwMAIAMoAgAiCkElRg0MCyAKQSRGDQQMCwsgAUElNgLIAiAEKQIAISMgBCACKQJkNwIAIAJBvAFqIgwgBEEQaiIJKAIANgIAIAJBtAFqIgcgBEEIaiIPKQIANwIAIA8gAkHsAGopAgA3AgAgASkD4AIhJCAJIAJB9ABqKQIANwIAIARBGGogAkH8AGopAgA3AgAgBEEgaiACQYQBaigCADYCACACICM3AqwBIAJBAjYCqAEgASAkNwOYAyACQagBahDoAwJAAkAgASgCyAIiCUElRgRAIAEoAvACIQkgAUElNgLwAgJAIAlBJUcEQCACQcwBaiABQZQDaigCADYCACACQcQBaiABQYwDaikCADcCACAMIAFBhANqKQIANwIAIAcgAUH8AmopAgA3AgAgAiAJNgKoASACIAEpAvQCNwKsAQwBCyACQagBaiAIEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDqAE3AwAgA0EgaiACQcgBaikDADcDACADQRhqIAJBwAFqKQMANwMAIANBEGogAkG4AWopAwA3AwAgA0EIaiACQbABaikDADcDACADKAIAIglBJUYNAQsgCUEJRg0BCyACQbABaiAIEN0HIAJBmM3fADYCrAEgAkE0OgCoASAIQfACQbgCIAMoAgBBJUYiCRtqKAIAIgogCEH0AkG8AiAJG2ooAgAiCSAJIApLGyAKIAkgCSAKSRsgAkGoAWoQ7xshCSADKAIAIgpBJUYEQCABKALwAiEKIAFBJTYC8AICQCAKQSVHBEAgAkHMAWogAUGUA2ooAgA2AgAgAkHEAWogAUGMA2opAgA3AgAgAkG8AWogAUGEA2opAgA3AgAgAkG0AWogAUH8AmopAgA3AgAgAiAKNgKoASACIAEpAvQCNwKsAQwBCyACQagBaiAIEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDqAE3AwAgA0EgaiACQcgBaikDADcDACADQRhqIAJBwAFqKQMANwMAIANBEGogAkG4AWopAwA3AwAgA0EIaiACQbABaikDADcDACADKAIAIgpBJUYNCwsgCkEkRg0DDAoLIAFBJTYCyAIgBCkCACEjIAQgAikCZDcCACACQbwBaiIHIARBEGoiCSgCADYCACACQbQBaiIPIARBCGoiDCkCADcCACAMIAJB7ABqKQIANwIAIAEpA+ACISQgCSACQfQAaikCADcCACAEQRhqIAJB/ABqKQIANwIAIARBIGogAkGEAWooAgA2AgAgAiAjNwKsASACQQk2AqgBIAEgJDcDmAMgAkGoAWoiCRDoAyACQQE6AJEBIAIgASgBqgI2AIsBIAIgAS8BrgI7AI8BIAIgASkAsQI3AJIBIAIgASkAuQI3AJoBIAIgASgAwQI2AKIBIAIgAS8AxQI7AKYBIAkgASACQYsBahC/CCACQQhqIAIoAqgBENoCIAIoAgwhDCACKAIIDQEgAiAMNgJgIAkQ9QoCQAJAIAMoAgAiCUElRgRAIAEoAvACIQkgAUElNgLwAgJAIAlBJUcEQCACQcwBaiABQZQDaigCADYCACACQcQBaiABQYwDaikCADcCACAHIAFBhANqKQIANwIAIA8gAUH8AmopAgA3AgAgAiAJNgKoASACIAEpAvQCNwKsAQwBCyACQagBaiAIEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDqAE3AwAgA0EgaiACQcgBaikDADcDACADQRhqIAJBwAFqKQMANwMAIANBEGogAkG4AWopAwA3AwAgA0EIaiACQbABaikDADcDACADKAIAIglBJUYNAQsgCUEKRw0AIAFBJTYCyAIgBCkCACEjIAQgAikCZDcCACACQbwBaiIHIARBEGoiCSgCADYCACACQbQBaiIPIARBCGoiDikCADcCACAOIAJB7ABqKQIANwIAIAEpA+ACISQgCSACQfQAaikCADcCACAEQRhqIAJB/ABqKQIANwIAIARBIGogAkGEAWooAgA2AgAgAiAjNwKsASACQQo2AqgBIAEgJDcDmAMgAkGoAWoQ6AMgASgCyAIiCUElRw0BIAEoAvACIQkgAUElNgLwAgJAIAlBJUcEQCACQcwBaiABQZQDaigCADYCACACQcQBaiABQYwDaikCADcCACAHIAFBhANqKQIANwIAIA8gAUH8AmopAgA3AgAgAiAJNgKoASACIAEpAvQCNwKsAQwBCyACQagBaiAIEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDqAE3AwAgA0EgaiACQcgBaikDADcDACADQRhqIAJBwAFqKQMANwMAIANBEGogAkG4AWopAwA3AwAgA0EIaiACQbABaikDADcDACADKAIAIglBJUcNAQwKCyACQbABaiAIEN0HIAJB8MzfADYCrAEgAkE0OgCoASAIQfACQbgCIAMoAgBBJUYiChtqKAIAIgMgCEH0AkG8AiAKG2ooAgAiCiADIApJGyADIAogAyAKSxsgAkGoAWoQ7xshAyAIEL8KIghFDQggCCgCAEEkRw0IIAEoAsgCIAFBJTYCyAIgASgCzAIhCiAEIAIpAmQ3AgAgASABKQPg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ADcDACADQRhqIAdB8AJqKQMANwMAIANBEGogB0HoAmopAwA3AwAgA0EIaiAHQeACaikDADcDACADKAIAIgBBJUYNAQsgAEECRw0BIAItANACQQJHDQEgAi0A0QJBEUYNDAwBCyACKALwAiEAIAJBJTYC8AICQCAAQSVHBEAgB0H8AmogAkGUA2ooAgA2AgAgB0H0AmogAkGMA2opAgA3AgAgB0HsAmogAkGEA2opAgA3AgAgB0HkAmogAkH8AmopAgA3AgAgByAANgLYAiAHIAIpAvQCNwLcAgwBCyAHQdgCaiAEEDIgAygCAEElRg0AIAMQ6AMLIAMgBykD2AI3AwAgA0EgaiAHQfgCaikDADcDACADQRhqIAdB8AJqKQMANwMAIANBEGogB0HoAmopAwA3AwAgA0EIaiAHQeACaikDADcDACADKAIAIgBBJUYNAQsCQCAAQQJHDQAgAi0A0AJBAkcNACACLQDRAkESRw0AIAQQ9A8iAEUNAAJAIAAQlggiAEEFa0H/AXEiAUEBakEAIAFBIkkbDgwAAQEBAQEBAQEMAQwBCwJAIABB/wFxDgUAAQEBDAELIABBgP4DcUEIdiIAQR1LDQBBASAAdEGBgJCAAnENCwsgAygCACIAQSVHDQELIAIoAvACIQAgAkElNgLwAgJAIABBJUcEQCAHQfwCaiACQZQDaigCADYCACAHQfQCaiACQYwDaikCADcCACAHQewCaiACQYQDaikCADcCACAHQeQCaiACQfwCaikCADcCACAHIAA2AtgCIAcgAikC9AI3AtwCDAELIAdB2AJqIAQQMiADKAIAQSVGDQAgAxDoAwsgAyAHKQPYAjcDACADQSBqIAdB+AJqKQMANwMAIANBGGogB0HwAmopAwA3AwAgA0EQaiAHQegCaikDADcDACADQQhqIAdB4AJqKQMANwMAIAMoAgAiAEElRg0BCyAAQQ9HDQEgAkElNgLIAiACIAIpA+ACNwOYAyAHQewCaiACQdwCaigCADYCACAHQeQCaiACQdQCaikCADcCACAHQQ82AtgCIAcgAikCzAI3AtwCIAdB2AJqEOgDIAdBxABqIAJBAiAHEK4CDAkLIAIoAvACIQAgAkElNgLwAgJAIABBJUcEQCAHQfwCaiACQZQDaigCADYCACAHQfQCaiACQYwDaikCADcCACAHQewCaiACQYQDaikCADcCACAHQeQCaiACQfwCaikCADcCACAHIAA2AtgCIAcgAikC9AI3AtwCDAELIAdB2AJqIAQQMiADKAIAQSVGDQAgAxDoAwsgAyAHKQPYAjcDACADQSBqIAdB+AJqKQMANwMAIANBGGogB0HwAmopAwA3AwAgA0EQaiAHQegCaikDADcDACADQQhqIAdB4AJqKQMANwMAIAMoAgAhAAsgAkGcA0HgAiAAQSVGG2ooAgAhCSAHQQA6AJYCIAcgAigBqgI2AJACIAcgAi8BrgI7AJQCIAcgAikAsQI3AJcCIAcgAikAuQI3AJ8CIAcgAigAwQI2AKcCIAcgAi8AxQI7AKsCIAdB2AJqIgEgAiAHQZACahC/CCAHQRBqIAcoAtgCENoCIAcoAhQhACAHKAIQIAEQ9QoNEwJAAkAgAi0AoAJBAkcEQCACLQCpAkEBcUUNAQsCfyAAKAIAIgFBGkYEf0EAIABBCGpBwKPgAEEFEMwkDQEaIAAoAgAFIAELQSJHDQEgACgCBCIBKAIAQRpHDQEgAUEIakHAo+AAQQUQzCRFDQFBAQshGgJAIAMoAgAiAUElRgRAIAIoAvACIQEgAkElNgLwAgJAIAFBJUcEQCAHQfwCaiACQZQDaigCADYCACAHQfQCaiACQYwDaikCADcCACAHQewCaiACQYQDaikCADcCACAHQeQCaiACQfwCaikCADcCACAHIAE2AtgCIAcgAikC9AI3AtwCDAELIAdB2AJqIAQQMiADKAIAQSVGDQAgAxDoAwsgAyAHKQPYAjcDACADQSBqIAdB+AJqKQMANwMAIANBGGogB0HwAmopAwA3AwAgA0EQaiAHQegCaikDADcDACADQQhqIAdB4AJqKQMANwMAIAMoAgAiAUElRg0BCyABQQJHDQAgAi0A0AINACACLQDRAkEERg0BCwJAIAQQ9A8iAUUNACABKAIAQQJHDQAgAS0ACA0AIAEtAAlBBEYNAgsgBBD0DyIBRQ0AIAEoAgBBAkcNACABLQAIQQJHDQAgAS0ACUEeRg0BCwJAAkACQAJAAkAgAygCACIBQSVGBEAgAigC8AIhASACQSU2AvACAkAgAUElRwRAIAdB/AJqIAJBlANqKAIANgIAIAdB9AJqIAJBjANqKQIANwIAIAdB7AJqIAJBhANqKQIANwIAIAdB5AJqIAJB/AJqKQIANwIAIAcgATYC2AIgByACKQL0AjcC3AIMAQsgB0HYAmogBBAyIAMoAgBBJUYNACADEOgDCyADIAcpA9gCNwMAIANBIGogB0H4AmopAwA3AwAgA0EYaiAHQfACaikDADcDACADQRBqIAdB6AJqKQMANwMAIANBCGogB0HgAmopAwA3AwAgAygCACIBQSVGDQELIAFBAkcNASACLQDQAg0BIAItANECQQRHDQEMCwsgAigC8AIhASACQSU2AvACAkAgAUElRwRAIAdB/AJqIAJBlANqKAIANgIAIAdB9AJqIAJBjANqKQIANwIAIAdB7AJqIAJBhANqKQIANwIAIAdB5AJqIAJB/AJqKQIANwIAIAcgATYC2AIgByACKQL0AjcC3AIMAQsgB0HYAmogBBAyIAMoAgBBJUYNACADEOgDCyADIAcpA9gCNwMAIANBIGogB0H4AmopAwA3AwAgA0EYaiAHQfACaikDADcDACADQRBqIAdB6AJqKQMANwMAIANBCGogB0HgAmopAwA3AwAgAygCACIBQSVGDQELIAFBAkcNASACLQDQAkECRw0BIAItANECQR5GDQkMAQsgAigC8AIhASACQSU2AvACAkAgAUElRwRAIAdB/AJqIAJBlANqKAIANgIAIAdB9AJqIAJBjANqKQIANwIAIAdB7AJqIAJBhANqKQIANwIAIAdB5AJqIAJB/AJqKQIANwIAIAcgATYC2AIgByACKQL0AjcC3AIMAQsgB0HYAmogBBAyIAMoAgBBJUYNACADEOgDCyADIAcpA9gCNwMAIANBIGogB0H4AmopAwA3AwAgA0EYaiAHQfACaikDADcDACADQRBqIAdB6AJqKQMANwMAIANBCGogB0HgAmopAwA3AwAgAygCACIBQSVGDQELIAFBD0cNACACQSU2AsgCIAIgAikD4AI3A5gDIAdB7AJqIAJB3AJqKAIANgIAIAdB5AJqIAJB1AJqKQIANwIAIAdBDzYC2AIgByACKQLMAjcC3AIgB0HYAmoQ6AMgB0HEAGogAkEBIAAQrgIMCQsgB0HgAmogBBDdByAHQcDo4AA2AtwCIAdBNDoA2AIgBEHwAkG4AiADKAIAQSVGIgMbaigCACIBIARB9AJBvAIgAxtqKAIAIgMgASADSRsgASADIAEgA0sbIAdB2AJqEO8bIQEgBBC/CiIDRQ0EIAMoAgBBJEcNBCACIAIpA+ACNwOYAyACKALIAiACQSU2AsgCQSRHDQIgAiACKALMAhDACAwECyAHQdgCaiACQQAQzgMgBygC2AIhFyAHLQDsAiIWQQJGDQIgB0GIAmoiEyAHQeQCaiIVKQIANwMAIAcgBykC3AI3A4ACIAcgBykA7QI3A/ABIAcgB0H0AmoiGSgAADYA9wFBoL/kAC0AABogAigCnAMhDkE4EIQBIgFFDQkgASAXNgIIIAFBADYCACABIAcpA4ACNwIMIAEgFjoAHCABIAcpA/ABNwAdIAFBADoANCABQQA2AjAgASAJIA4gCSAOSxsiFzYCLCABIAkgDiAJIA5JGyIONgIoIAFBJGogBygA9wE2AAAgAUEUaiATKQMANwIAQaC/5AAtAAAaQRgQhAEiCUUNCSAJIBo6ABQgCSAXNgIQIAkgDjYCDCAJQQE2AgggCSABNgIEIAlBATYCAAJ/AkAgAygCACIBQSVHDQAgAigC8AIhASACQSU2AvACAkAgAUElRwRAIAdB/AJqIAJBlANqKAIANgIAIBkgAkGMA2opAgA3AgAgB0HsAmogAkGEA2opAgA3AgAgFSACQfwCaikCADcCACAHIAE2AtgCIAcgAikC9AI3AtwCDAELIAdB2AJqIAQQMiADKAIAQSVGDQAgAxDoAwsgAyAHKQPYAjcDACADQSBqIAdB+AJqKQMANwMAIANBGGogB0HwAmopAwA3AwAgA0EQaiAHQegCaikDADcDACADQQhqIAdB4AJqKQMANwMAIAMoAgAiAUElRw0AIAJBgAJqKAIAIQEgB0EAOgDYAiABIAEgB0HYAmoQ7xsMAQsgAUEkRwRAIAdBxABqIAJBASAJEJcHDAYLIAJBJTYCyAIgAiACKQPgAjcDmAMgAigCzAILIQEgB0EFNgJEIAcgATYCSCAJQQRqIgEoAgAgCUEIaigCABCvISAJKAIAIAEoAgAQxyogCUEYQQQQohgMBAsgCEElNgLIAiAIKALMAiEAIAsgBykCzAE3AgAgCCAIKQPgAjcDmAMgC0EIaiAHQdQBaikCADcCACALQRBqIAdB3AFqKQIANwIAIAtBGGogB0HkAWopAgA3AgAgC0EgaiAHQewBaigCADYCACAIIAAQwAgMEwtBiYThAEEoQeCH4AAQ1SEACyAHIBc2AkggB0EFNgJEDAELIAdBBTYCRCAHIAE2AkgLIAAQkgIgAEHAAEEIEKIYDAILQQAhAQJAIAQQvwoiA0UNACADKAIAQQJHDQAgAy0ACEECRw0AIAMtAAlBHkYhAQsgB0HYAmogAkECIAAQVCAHKALcAiEDAkAgBygC2AIiBEEHRwRAIAdB0AJqIAdB+AJqKQMAIiM3AwAgB0HIAmogB0HwAmopAwAiJDcDACAHQcACaiAHQegCaikDACIlNwMAIAdBoAJqICU3AwAgB0GoAmogJDcDACAHQbACaiAjNwMAIAcgBykD4AIiIzcDuAIgByADNgKUAiAHIAQ2ApACIAcgIzcDmAIgASACLQCgAkECRnFFDQECQCAEDgcCAAAAAAACAAsgB0EIaiAHQZACahDRAyAHKAIMIQAgBygCCCEBIAdBsAE6ANgCIAIgASAAIAdB2AJqEOkiDAELIAcgAzYCSCAHQQU2AkQMAgtBoL/kAC0AABpBKBCEASIARQ0DIAAgAzYCBCAAIAQ2AgAgACAHKQO4AjcDCCAAQRBqIAdBwAJqKQMANwMAIABBGGogB0HIAmopAwA3AwAgAEEgaiAHQdACaikDADcDACAHQcQAaiACQQIgABCXBwwBCyAHQThqIAJBARBWIAcoAjwhASAHKAI4BEAgASEADA0LAkACQAJAAkACQAJAAkACQAJAIAMoAgAiAEElRgRAIAIoAvACIQAgAkElNgLwAgJAIABBJUcEQCAHQfwCaiACQZQDaigCADYCACAHQfQCaiACQYwDaikCADcCACAHQewCaiACQYQDaikCADcCACAHQeQCaiACQfwCaikCADcCACAHIAA2AtgCIAcgAikC9AI3AtwCDAELIAdB2AJqIAQQMiADKAIAQSVGDQAgAxDoAwsgAyAHKQPYAjcDACADQSBqIAdB+AJqKQMANwMAIANBGGogB0HwAmopAwA3AwAgA0EQaiAHQegCaikDADcDACADQQhqIAdB4AJqKQMANwMAIAMoAgAiAEElRg0BCyAAQQJHDQEgAi0A0AINASACLQDRAkEERw0BDAgLIAIoAvACIQAgAkElNgLwAgJAIABBJUcEQCAHQfwCaiACQZQDaigCADYCACAHQfQCaiACQYwDaikCADcCACAHQewCaiACQYQDaikCADcCACAHQeQCaiACQfwCaikCADcC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IAFB/AJqKQIANwIAIAIgBDYCWCACIAEpAvQCNwJcDAELIAJB2ABqIAkQMiADKAIAQSVGDQAgAxDoAwsgAyACKQNYNwMAIANBIGogAkH4AGopAwA3AwAgA0EYaiACQfAAaikDADcDACADQRBqIAJB6ABqKQMANwMAIANBCGogAkHgAGopAwA3AwAgAUGcA2ohDCABKALIAiIIQSVHDQAgASgCnAMhCiABKALwAiEEIAFBJTYC8AICQCAEQSVHBEAgAkH8AGogAUGUA2ooAgA2AgAgAkH0AGogAUGMA2opAgA3AgAgAkHsAGogAUGEA2opAgA3AgAgAkHkAGogAUH8AmopAgA3AgAgAiAENgJYIAIgASkC9AI3AlwMAQsgAkHYAGogCRAyIAMoAgBBJUYNACADEOgDCyADIAIpA1g3AwAgA0EgaiACQfgAaikDADcDACADQRhqIAJB8ABqKQMANwMAIANBEGogAkHoAGopAwA3AwAgA0EIaiACQeAAaikDADcDACADKAIAIghBJUcNASABKAKAAiEDIAJBADoAWCADIAMgAkHYAGoQ7xshAyAAQRM2AgAgACADNgIEDAILIAEoAuACIQoLAkACQAJAIAhBJEcEQCABQSU2AsgCIAEpAswCISMgASACKQIUNwLMAiACQewAaiILIAFB3AJqIgQoAgA2AgAgAkHkAGoiDSABQdQCaiIHKQIANwIAIAcgAkEcaikCADcCACABKQPgAiEkIAQgAkEkaikCADcCACABQeQCaiACQSxqKQIANwIAIAFB7AJqIAJBNGooAgA2AgAgAiAjNwJcIAIgCDYCWCABICQ3A5gDIAJB2ABqEOgDAkACQCABKALIAiIIQSVGBEAgASgC8AIhBCABQSU2AvACAkAgBEElRwRAIAJB/ABqIAFBlANqKAIANgIAIAJB9ABqIAFBjANqKQIANwIAIAsgAUGEA2opAgA3AgAgDSABQfwCaikCADcCACACIAQ2AlggAiABKQL0AjcCXAwBCyACQdgAaiAJEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDWDcDACADQSBqIAJB+ABqKQMANwMAIANBGGogAkHwAGopAwA3AwAgA0EQaiACQegAaikDADcDACADQQhqIAJB4ABqKQMANwMAQQAhCyADKAIAIghBJUYNAQtBACELIAhBPnFBDkYNASABLQDoAg0BIAJBAToAQSACIAEoAaoCNgA7IAIgAS8BrgI7AD8gAiABKQCxAjcAQiACIAEpALkCNwBKIAIgASgAwQI2AFIgAiABLwDFAjsAViACQdgAaiIEIAEgAkE7ahC/CCACQQhqIAIoAlgQ2gIgAigCDCELIAIoAggEQCAAQRM2AgAgACALNgIEIAQQ9QoMBwsgAkHYAGoQ9QogAygCACIIQSVHDQELIAEoAvACIQQgAUElNgLwAgJAIARBJUcEQCACQfwAaiABQZQDaigCADYCACACQfQAaiABQYwDaikCADcCACACQewAaiABQYQDaikCADcCACACQeQAaiABQfwCaikCADcCACACIAQ2AlggAiABKQL0AjcCXAwBCyACQdgAaiAJEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDWDcDACADQSBqIAJB+ABqKQMANwMAIANBGGogAkHwAGopAwA3AwAgA0EQaiACQegAaikDADcDACADQQhqIAJB4ABqKQMANwMAIAMoAgAiCEElRg0ECyABQcwCaiEEAkACQCAIQQ5rDgIFAAELIAFBJTYCyAIgBCkCACEjIAQgAikCFDcCACACQewAaiAEQRBqIgMoAgA2AgAgAkHkAGogBEEIaiIIKQIANwIAIAggAkEcaikCADcCACABKQPgAiEkIAMgAkEkaikCADcCACAEQRhqIAJBLGopAgA3AgAgBEEgaiACQTRqKAIANgIAIAIgIzcCXCACQQ82AlggASAkNwOYAyACQdgAahDoAwwECyABLQDoAg0DIAJB4ABqIAkQ3QcgAkHA6OAANgJcIAJBNDoAWCAJQfACQbgCIAMoAgBBJUYiCBtqKAIAIgMgCUH0AkG8AiAIG2ooAgAiCCADIAhJGyADIAggAyAISxsgAkHYAGoQ7xshAyAJEL8KIghFDQIgCCgCAEEkRw0CIAEoAsgCIAFBJTYCyAIgASgCzAIhCSAEIAIpAhQ3AgAgASABKQPgAjcDmAMgBEEIaiACQRxqKQIANwIAIARBEGogAkEkaikCADcCACAEQRhqIAJBLGopAgA3AgAgBEEgaiACQTRqKAIANgIAQSRHDQEgASAJEMAIDAILIAFBJTYCyAIgAEETNgIAIAEgASkD4AI3A5gDIAAgASgCzAI2AgQMAwtBiYThAEEoQeCL4AAQ1SEACyAAQRM2AgAgACADNgIEIAsQzyoMAQsgACALNgIMIABBBDYCACAAIAogDCgCACIDIAMgCkkbNgIIIAAgCiADIAMgCksbNgIECwJAIAEtAL0CQQFxDQAgAS0AoAJBAkcEQCABLQCnAkEBcQ0BCyABKAKcAyEAIAJBywA6AFggASAKIAAgACAKSxsgCiAAIAAgCkkbIAJB2ABqEOkiCyACQYABaiQADC0LIAAhAiMAQbACayIEJAAgAUHIAmohCCABQShqIQwCQAJAAkAgASgCyAIiAEElRw0AIAEoAvACIQAgAUElNgLwAgJAIABBJUcEQCAEQbQBaiABQZQDaigCADYCACAEQawBaiABQYwDaikCADcCACAEQaQBaiABQYQDaikCADcCACAEQZwBaiABQfwCaikCADcCACAEIAA2ApABIAQgASkC9AI3ApQBDAELIARBkAFqIAwQMiAIKAIAQSVGDQAgCBDoAwsgCCAEKQOQATcDACAIQSBqIARBsAFqKQMANwMAIAhBGGogBEGoAWopAwA3AwAgCEEQaiAEQaABaikDADcDACAIQQhqIARBmAFqKQMANwMAIAEoAsgCIgBBJUcNACABKAKcAyEXIAEoAvACIQAgAUElNgLwAgJAIABBJUcEQCAEQbQBaiABQZQDaigCADYCACAEQawBaiABQYwDaikCADcCACAEQaQBaiABQYQDaikCADcCACAEQZwBaiABQfwCaikCADcCACAEIAA2ApABIAQgASkC9AI3ApQBDAELIARBkAFqIAwQMiAIKAIAQSVGDQAgCBDoAwsgCCAEKQOQATcDACAIQSBqIARBsAFqKQMANwMAIAhBGGogBEGoAWopAwA3AwAgCEEQaiAEQaABaikDADcDACAIQQhqIARBmAFqKQMANwMAIAgoAgAiAEElRw0BIAEoAoACIQAgBEEAOgCQASAAIAAgBEGQAWoQ7xshACACQRM2AgAgAiAANgIEDAILIAEoAuACIRcLAkACQAJAAkACQAJAAkAgAEEkRwRAIAFBJTYCyAIgASABKQPgAjcDmAMgBEGkAWoiAyABQdwCaigCADYCACAEQZwBaiIKIAFB1AJqKQIANwIAIAQgADYCkAEgBCABKQLMAjcClAEgAUHMAmohCSAEQZABahDoAwJAAkACQAJAIAEoAsgCIgBBJUYEQCABKALwAiEAIAFBJTYC8AICQCAAQSVHBEAgBEG0AWogAUGUA2ooAgA2AgAgBEGsAWogAUGMA2opAgA3AgAgAyABQYQDaikCADcCACAKIAFB/AJqKQIANwIAIAQgADYCkAEgBCABKQL0AjcClAEMAQsgBEGQAWogDBAyIAgoAgBBJUYNACAIEOgDCyAIIAQpA5ABNwMAIAhBIGogBEGwAWopAwA3AwAgCEEYaiAEQagBaikDADcDACAIQRBqIARBoAFqKQMANwMAIAhBCGogBEGYAWopAwA3AwAgCCgCACIAQSVGDQELIABBCUYNAQsgBEGYAWogDBDdByAEQZjN3wA2ApQBIARBNDoAkAEgDEHwAkG4AiAIKAIAQSVGIgMbaigCACIAIAxB9AJBvAIgAxtqKAIAIgMgACADSRsgACADIAAgA0sbIARBkAFqEO8bIQMgCCgCACIAQSVGBEAgASgC8AIhACABQSU2AvACAkAgAEElRwRAIARBtAFqIAFBlANqKAIANgIAIARBrAFqIAFBjANqKQIANwIAIARBpAFqIAFBhANqKQIANwIAIARBnAFqIAFB/AJqKQIANwIAIAQgADYCkAEgBCABKQL0AjcClAEMAQsgBEGQAWogDBAyIAgoAgBBJUYNACAIEOgDCyAIIAQpA5ABNwMAIAhBIGogBEGwAWopAwA3AwAgCEEYaiAEQagBaikDADcDACAIQRBqIARBoAFqKQMANwMAIAhBCGogBEGYAWopAwA3AwAgCCgCACIAQSVGDQsLIABBJEYNAQwKCyABQSU2AsgCIAEgASkD4AI3A5gDIARBpAFqIgMgCUEQaigCADYCACAEQZwBaiIKIAlBCGopAgA3AgAgBEEJNgKQASAEIAkpAgA3ApQBIARBkAFqIgAQ6AMgBEEBOgDGASAEIAEoAaoCNgDAASAEIAEvAa4COwDEASAEIAEpALECNwDHASAEIAEpALkCNwDPASAEIAEoAMECNgDXASAEIAEvAMUCOwDbASAAIAEgBEHAAWoQvwggBEEIaiAEKAKQARDaAiAEKAIMIRogBCgCCEUEQCAAEPUKAkACQCAIKAIAIgBBJUYEQCABKALwAiEAIAFBJTYC8AICQCAAQSVHBEAgBEG0AWogAUGUA2ooAgA2AgAgBEGsAWogAUGMA2opAgA3AgAgAyABQYQDaikCADcCACAKIAFB/AJqKQIANwIAIAQgADYCkAEgBCABKQL0AjcClAEMAQsgBEGQAWogDBAyIAgoAgBBJUYNACAIEOgDCyAIIAQpA5ABNwMAIAhBIGogBEGwAWopAwA3AwAgCEEYaiAEQagBaikDADcDACAIQRBqIARBoAFqKQMANwMAIAhBCGogBEGYAWopAwA3AwAgCCgCACIAQSVGDQELIABBCkYNAQsgBEGYAWogDBDdByAEQfDM3wA2ApQBIARBNDoAkAEgDEHwAkG4AiAIKAIAQSVGIgMbaigCACIAIAxB9AJBvAIgAxtqKAIAIgMgACADSRsgACADIAAgA0sbIARBkAFqEO8bIQMgCCgCACIAQSVGBEAgASgC8AIhACABQSU2AvACAkAgAEElRwRAIARBtAFqIAFBlANqKAIANgIAIARBrAFqIAFBjANqKQIANwIAIARBpAFqIAFBhANqKQIANwIAIARBnAFqIAFB/AJqKQIANwIAIAQgADYCkAEgBCABKQL0AjcClAEMAQsgBEGQAWogDBAyIAgoAgBBJUYNACAIEOgDCyAIIAQpA5ABNwMAIAhBIGogBEGwAWopAwA3AwAgCEEYaiAEQagBaikDADcDACAIQRBqIARBoAFqKQMANwMAIAhBCGogBEGYAWopAwA3AwAgCCgCACIAQSVGDQoLIABBJEYNAwwJCyABQSU2AsgCIAkpAgAhIyAJIAQpAmA3AgAgBEGkAWoiAyAJQRBqIgAoAgA2AgAgBEGcAWoiCiAJQQhqIgspAgA3AgAgCyAEQegAaikCADcCACABKQPgAiEkIAAgBEHwAGopAgA3AgAgCUEYaiAEQfgAaikCADcCACAJQSBqIARBgAFqKAIANgIAIAQgIzcClAEgBEEKNgKQASABICQ3A5gDIARBkAFqEOgDIARBADYCGCAEQoCAgIDAADcCECABKALIAiIAQSVGBEAgASgC8AIhACABQSU2AvACAkAgAEElRwRAIARBtAFqIAFBlANqKAIANgIAIARBrAFqIAFBjANqKQIANwIAIAMgAUGEA2opAgA3AgAgCiABQfwCaikCADcCACAEIAA2ApABIAQgASkC9AI3ApQBDAELIARBkAFqIAwQMiAIKAIAQSVGDQAgCBDoAwsgCCAEKQOQATcDACAIQSBqIARBsAFqKQMANwMAIAhBGGogBEGoAWopAwA3AwAgCEEQaiAEQaABaikDADcDACAIQQhqIARBmAFqKQMANwMAIAgoAgAiAEElRg0FCyAAQQ1HDQQgAUElNgLIAiAJKQIAISMgCSAEKQJgNwIAIARBpAFqIAlBEGoiACgCADYCACAEQZwBaiAJQQhqIgMpAgA3AgAgAyAEQegAaikCADcCACABKQPgAiEkIAAgBEHwAGopAgA3AgAgCUEYaiAEQfgAaikCADcCACAJQSBqIARBgAFqKAIANgIAIAQgIzcClAEgBEENNgKQASABICQ3A5gDIARBkAFqIgAQ6AMgBEEBOgAqIAQgAS0AtAI6ACkgBCABLQDGAjoAOyAEIAEpAaoCNwAfIAQgAS8BsgI7ACcgBCABKQG2AjcAKyAEIAEpAb4CNwAzIARBPGogASAEQR9qEL8IIAQoAjwiCkHMAmohDyAKQfQCaiEHIApByAJqIQsgCkEoaiEQIARBmAFqIRIgAEEEciENIApBgAJqIR4DQAJAAkACQAJAAkACQAJ/AkACQCALKAIAIgBBJUYEQCAKKALwAiEAIApBJTYC8AICQCAAQSVHBEAgDSAHKQIANwIAIA1BIGogB0EgaigCADYCACANQRhqIAdBGGopAgA3AgAgDUEQaiAHQRBqKQIANwIAIA1BCGogB0EIaikCADcCACAEIAA2ApABDAELIARBkAFqIBAQMiALKAIAQSVGDQAgCxDoAwsgCyAEKQOQATcDACALQSBqIgMgBEGwAWoiDikDADcDACALQRhqIhQgBEGoAWoiESkDADcDACALQRBqIhYgBEGgAWoiEykDADcDACALQQhqIhUgEikDADcDACALKAIAIgBBJUYNAQsgAEECRw0BIAotANACQQJHDQEgCi0A0QJBAkcNAUEBDAILIAooAvACIQAgCkElNgLwAgJAIABBJUcEQCANIAcpAgA3AgAgDUEgaiAHQSBqKAIANgIAIA1BGGogB0EYaikCADcCACANQRBqIAdBEGopAgA3AgAgDUEIaiAHQQhqKQIANwIAIAQgADYCkAEMAQsgBEGQAWogEBAyIAsoAgBBJUYNACALEOgDCyALIAQpA5ABNwMAIAMgDikDADcDACAUIBEpAwA3AwAgFiATKQMANwMAIBUgEikDADcDACALKAIAIgBBJUYNAgsgAEECRw0BIAotANACQQJHDQEgCi0A0QJB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aikDADcDACADKAIAIglBJUcNASABKAKAAiEBIAJBADoAWCABIAEgAkHYAGoQ7xshASAAQRM2AgAgACABNgIEDAILIAEoAuACIQoLAkACQAJAAkACQAJAAn8CQCAJQSRHBEAgAUElNgLIAiABIAEpA+ACNwOYAyACQewAaiIMIAFB3AJqKAIANgIAIAJB5ABqIg0gAUHUAmopAgA3AgAgAiAJNgJYIAIgASkCzAI3AlwgAUHMAmohBCACQdgAahDoAyABKALIAkElRw0BIAEoAvACIQkgAUElNgLwAgJAIAlBJUcEQCACQfwAaiABQZQDaigCADYCACACQfQAaiABQYwDaikCADcCACAMIAFBhANqKQIANwIAIA0gAUH8AmopAgA3AgAgAiAJNgJYIAIgASkC9AI3AlwMAQsgAkHYAGogCBAyIAMoAgBBJUYNACADEOgDCyADIAIpA1g3AwAgA0EgaiACQfgAaikDADcDACADQRhqIAJB8ABqKQMANwMAIANBEGogAkHoAGopAwA3AwAgA0EIaiACQeAAaikDADcDACADKAIAQSVHDQFB9AIhCkHwAgwCCyABQSU2AsgCIABBEzYCACABIAEpA+ACNwOYAyAAIAEoAswCNgIEDAgLIAEtAOgCQQFHDQFBvAIhCkG4AgsgCGooAgAhCSAIIApqKAIAIQogAkEuOgBYIAkgCiAJIApJGyAJIAogCSAKSxsgAkHYAGoQ7xshCyADKAIAIglBJUYEQCABKALwAiEKIAFBJTYC8AICQCAKQSVHBEAgAkH8AGogAUGUA2ooAgA2AgAgAkH0AGogAUGMA2opAgA3AgAgAkHsAGogAUGEA2opAgA3AgAgAkHkAGogAUH8AmopAgA3AgAgAiAKNgJYIAIgASkC9AI3AlwMAQsgAkHYAGogCBAyIAMoAgBBJUYNACADEOgDCyADIAIpA1g3AwAgA0EgaiACQfgAaikDADcDACADQRhqIAJB8ABqKQMANwMAIANBEGogAkHoAGopAwA3AwAgA0EIaiACQeAAaikDADcDACADKAIAIglBJUYNBgsgCUEkRg0BDAULIAJBAToAQSACIAEoAaoCNgA7IAIgAS8BrgI7AD8gAiABKQCxAjcAQiACIAEpALkCNwBKIAIgASgAwQI2AFIgAiABLwDFAjsAViACQdgAaiIMIAEgAkE7ahC/CCACQQhqIAIoAlgQ2gIgAigCDCEJIAIoAghFBEAgAiAJNgIQIAwQ9QogAygCACIMQSVGBEAgASgC8AIhDCABQSU2AvACAkAgDEElRwRAIAJB/ABqIAFBlANqKAIANgIAIAJB9ABqIAFBjANqKQIANwIAIAJB7ABqIAFBhANqKQIANwIAIAJB5ABqIAFB/AJqKQIANwIAIAIgDDYCWCACIAEpAvQCNwJcDAELIAJB2ABqIAgQMiADKAIAQSVGDQAgAxDoAwsgAyACKQNYNwMAIANBIGogAkH4AGopAwA3AwAgA0EYaiACQfAAaikDADcDACADQRBqIAJB6ABqKQMANwMAIANBCGogAkHgAGopAwA3AwAgAygCACIMQSVGDQULAkACQCAMQQ5rDgIGAAELIAFBJTYCyAIgBCkCACEjIAQgAikCFDcCACACQewAaiAEQRBqIgMoAgA2AgAgAkHkAGogBEEIaiIIKQIANwIAIAggAkEcaikCADcCACABKQPgAiEkIAMgAkEkaikCADcCACAEQRhqIAJBLGopAgA3AgAgBEEgaiACQTRqKAIANgIAIAIgIzcCXCACQQ82AlggASAkNwOYAyACQdgAahDoAwwFCyABLQDoAg0EIAJB4ABqIAgQ3QcgAkHA6OAANgJcIAJBNDoAWCAIQfACQbgCIAMoAgBBJUYiChtqKAIAIgMgCEH0AkG8AiAKG2ooAgAiCiADIApJGyADIAogAyAKSxsgAkHYAGoQ7xshAyAIEL8KIghFDQMgCCgCAEEkRw0DIAEoAsgCIAFBJTYCyAIgASgCzAIhCiAEIAIpAhQ3AgAgASABKQPgAjcDmAMgBEEIaiACQRxqKQIANwIAIARBEGogAkEkaikCADcCACAEQRhqIAJBLGopAgA3AgAgBEEgaiACQTRqKAIANgIAQSRHDQIgASAKEMAIDAMLIABBEzYCACAAIAk2AgQgAkHYAGoQ9QoMBQsgAUElNgLIAiABKALMAiEDIAQgAikCFDcCACABIAEpA+ACNwOYAyAEQQhqIAJBHGopAgA3AgAgBEEQaiACQSRqKQIANwIAIARBGGogAkEsaikCADcCACAEQSBqIAJBNGooAgA2AgAgASADEMAIDAMLQYmE4QBBKEHgiuAAENUhAAsgAEETNgIAIAAgAzYCBCACQRBqEKksDAILIAAgCTYCBCAAQQo2AgAgACAKIAsoAgAiASABIApJGzYCDCAAIAogASABIApLGzYCCAwBCyAAQRM2AgAgACALNgIECyACQYABaiQADCsLIwBBsAFrIgIkACABQcgCaiEDIAFBKGohCgJAAkACQCABKALIAiIIQSVHBEAgAUHgAmohCSABQZwDaiELDAELIAEoAvACIQQgAUElNgLwAgJAIARBJUcEQCACQfwAaiABQZQDaigCADYCACACQfQAaiABQYwDaikCADcCACACQewAaiABQYQDaikCADcCACACQeQAaiABQfwCaikCADcCACACIAQ2AlggAiABKQL0AjcCXAwBCyACQdgAaiAKEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDWDcDACADQSBqIAJB+ABqKQMANwMAIANBGGogAkHwAGopAwA3AwAgA0EQaiACQegAaikDADcDACADQQhqIAJB4ABqKQMANwMAIAFB4AJqIQkgAUGcA2ohCyABKALIAiIIQSVHDQAgASgCnAMhBCABKALwAiEIIAFBJTYC8AICQCAIQSVHBEAgAkH8AGogAUGUA2ooAgA2AgAgAkH0AGogAUGMA2opAgA3AgAgAkHsAGogAUGEA2opAgA3AgAgAkHkAGogAUH8AmopAgA3AgAgAiAINgJYIAIgASkC9AI3AlwMAQsgAkHYAGogChAyIAMoAgBBJUYNACADEOgDCyADIAIpA1g3AwAgA0EgaiACQfgAaikDADcDACADQRhqIAJB8ABqKQMANwMAIANBEGogAkHoAGopAwA3AwAgA0EIaiACQeAAaikDADcDACADKAIAIghBJUcNASABKAKAAiEBIAJBADoAWCABIAEgAkHYAGoQ7xshASAAQRM2AgAgACABNgIEDAILIAEoAuACIQQLAkACQAJAAkAgCEEkRwRAIAFBJTYCyAIgASABKQPgAjcDmAMgAkHsAGoiDSABQdwCaigCADYCACACQeQAaiABQdQCaikCADcCACACIAg2AlggAiABKQLMAjcCXCACQdgAaiIIEOgDIAggAUEAEMIDIAIoAlwhCCACKAJYIgxBgICAgHhGDQMgAkEIaiANKAIANgIAIAIgAikCZDcDACACKAJgIQ0CfyADKAIAQSVHBEAgCSgCAAwBCyABKALwAiEHIAFBJTYC8AICQCAHQSVHBEAgAkH8AGogAUGUA2ooAgA2AgAgAkH0AGogAUGMA2opAgA3AgAgAkHsAGogAUGEA2opAgA3AgAgAkHkAGogAUH8AmopAgA3AgAgAiAHNgJYIAIgASkC9AI3AlwMAQsgAkHYAGogChAyIAMoAgBBJUYNACADEOgDCyADIAIpA1g3AwAgA0EgaiACQfgAaikDADcDACADQRhqIAJB8ABqKQMANwMAIANBEGogAkHoAGopAwA3AwAgA0EIaiACQeAAaikDADcDACALIAkgAygCAEElRhsoAgALIQogAkHYAGoiByABEJsBIAIoAlwhCSACKAJYIgNBCUYNASACQdAAaiACQZgBaikDADcDACACQcgAaiACQZABaikDADcDACACQUBrIAJBiAFqKQMANwMAIAJBOGogAkGAAWopAwA3AwAgAkEwaiACQfgAaikDADcDACACQShqIAJB8ABqKQMANwMAIAJBIGogAkHoAGoiDykDADcDACACIAIpA2A3AxggAiAJNgIUIAIgAzYCECAHIAEQ5wYgAigCXCEJAkAgAigCWCIHQYGAgIB4RwRAIAJBqAFqIA8pAgA3AwAgAiACKQJgNwOgASAHQYCAgIB4Rw0GIANBCEYNAQwGCyAAQRM2AgAgACAJNgIEAkACQCADQQdrDgIBBQALIAJBEGoQywsLIAIoAjwiACACKAJAEOYnIAIoAjggABDCKgwDCyACQfUAOgBYIAEgCiAKIAJB2ABqEOkiDAQLIAFBJTYCyAIgAEETNgIAIAEgASkD4AI3A5gDIAAgASgCzAI2AgQMBAsgAEETNgIAIAAgCTYCBAsgCCANEOYnIAwgCBDCKgwCCyAAQRM2AgAgACAINgIEDAELQaC/5AAtAAAaIAsoAgAhA0GAARCEASIBBEAgASACQRBqQcgAEIEJIgEgDTYCUCABIAg2AkwgASAMNgJIIAEgCTYCZCABIAc2AmAgACABNgIEIABBCzYCACABIAIpAwA3AlQgAUHcAGogAkEIaigCADYCACABIAIpA6ABNwNoIAFB8ABqIAJBqAFqKQMANwMAIAEgBCADIAMgBEkbNgJ8IAEgBCADIAMgBEsbNgJ4DAELAAsgAkGwAWokAAwqCyMAQdABayICJAAgAUHIAmohAyABQShqIQgCQAJAAkAgASgCyAIiBEElRwRAIAFBnANqIQsMAQsgASgC8AIhBCABQSU2AvACAkAgBEElRwRAIAJBzAFqIAFBlANqKAIANgIAIAJBxAFqIAFBjANqKQIANwIAIAJBvAFqIAFBhANqKQIANwIAIAJBtAFqIAFB/AJqKQIANwIAIAIgBDYCqAEgAiABKQL0AjcCrAEMAQsgAkGoAWogCBAyIAMoAgBBJUYNACADEOgDCyADIAIpA6gBNwMAIANBIGogAkHIAWopAwA3AwAgA0EYaiACQcABaikDADcDACADQRBqIAJBuAFqKQMANwMAIANBCGogAkGwAWopAwA3AwAgAUGcA2ohCyABKALIAiIEQSVHDQAgASgCnAMhCiABKALwAiEEIAFBJTYC8AICQCAEQSVHBEAgAkHMAWogAUGUA2ooAgA2AgAgAkHEAWogAUGMA2opAgA3AgAgAkG8AWogAUGEA2opAgA3AgAgAkG0AWogAUH8AmopAgA3AgAgAiAENgKoASACIAEpAvQCNwKsAQwBCyACQagBaiAIEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDqAE3AwAgA0EgaiACQcgBaikDADcDACADQRhqIAJBwAFqKQMANwMAIANBEGogAkG4AWopAwA3AwAgA0EIaiACQbABaikDADcDACADKAIAIgRBJUcNASABKAKAAiEBIAJBADoAqAEgASABIAJBqAFqEO8bIQEgAEETNgIAIAAgATYCBAwCCyABKALgAiEKCwJAAkACQAJAAkACQAJAAkAgBEEkRwRAIAFBJTYCyAIgASABKQPgAjcDmAMgAkG8AWoiDCABQdwCaigCADYCACACQbQBaiINIAFB1AJqKQIANwIAIAIgBDYCqAEgAiABKQLMAjcCrAEgAUHMAmohBCACQagBahDoAwJAAkAgASgCyAIiCUElRgRAIAEoAvACIQkgAUElNgLwAgJAIAlBJUcEQCACQcwBaiABQZQDaigCADYCACACQcQBaiABQYwDaikCADcCACAMIAFBhANqKQIANwIAIA0gAUH8AmopAgA3AgAgAiAJNgKoASACIAEpAvQCNwKsAQwBCyACQagBaiAIEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDqAE3AwAgA0EgaiACQcgBaikDADcDACADQRhqIAJBwAFqKQMANwMAIANBEGogAkG4AWopAwA3AwAgA0EIaiACQbABaikDADcDACADKAIAIglBJUYNAQsgCUEJRg0BCyACQbABaiAIEN0HIAJBmM3fADYCrAEgAkE0OgCoASAIQfACQbgCIAMoAgBBJUYiCRtqKAIAIgogCEH0AkG8AiAJG2ooAgAiCSAJIApLGyAKIAkgCSAKSRsgAkGoAWoQ7xshCSADKAIAIgpBJUYEQCABKALwAiEKIAFBJTYC8AICQCAKQSVHBEAgAkHMAWogAUGUA2ooAgA2AgAgAkHEAWogAUGMA2opAgA3AgAgAkG8AWogAUGEA2opAgA3AgAgAkG0AWogAUH8AmopAgA3AgAgAiAKNgKoASACIAEpAvQCNwKsAQwBCyACQagBaiAIEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDqAE3AwAgA0EgaiACQcgBaikDADcDACADQRhqIAJBwAFqKQMANwMAIANBEGogAkG4AWopAwA3AwAgA0EIaiACQbABaikDADcDACADKAIAIgpBJUYNCgsgCkEkRg0EDAkLIAFBJTYCyAIgASABKQPgAjcDmAMgAkG8AWoiDSAEQRBqKAIANgIAIAJBtAFqIgcgBEEIaikCADcCACACQQk2AqgBIAIgBCkCADcCrAEgAkGoAWoiDBDoAyACQQE6AJEBIAIgASgBqgI2AIsBIAIgAS8BrgI7AI8BIAIgASkAsQI3AJIBIAIgASkAuQI3AJoBIAIgASgAwQI2AKIBIAIgAS8AxQI7AKYBIAwgASACQYsBahC/CCACQQhqIAIoAqgBENoCIAIoAgwhCSACKAIIDQQgDBD1CgJAAkAgAygCACIMQSVGBEAgASgC8AIhDCABQSU2AvACAkAgDEElRwRAIAJBzAFqIAFBlANqKAIANgIAIAJBxAFqIAFBjANqKQIANwIAIA0gAUGEA2opAgA3AgAgByABQfwCaikCADcCACACIAw2AqgBIAIgASkC9AI3AqwBDAELIAJBqAFqIAgQMiADKAIAQSVGDQAgAxDoAwsgAyACKQOoATcDACADQSBqIAJByAFqKQMANwMAIANBGGogAkHAAWopAwA3AwAgA0EQaiACQbgBaikDADcDACADQQhqIAJBsAFqKQMANwMAIAMoAgAiDEElRg0BCyAMQQpGDQELIAJBsAFqIAgQ3QcgAkHwzN8ANgKsASACQTQ6AKgBIAhB8AJBuAIgAygCAEElRiILG2ooAgAiCiAIQfQCQbwCIAsbaigCACILIAogC0kbIAogCyAKIAtLGyACQagBahDvGyELIAMoAgAiCkElRgRAIAEoAvACIQogAUElNgLwAgJAIApBJUcEQCACQcwBaiABQZQDaigCADYCACACQcQBaiABQYwDaikCADcCACACQbwBaiABQYQDaikCADcCACACQbQBaiABQfwCaikCADcCACACIAo2AqgBIAIgASkC9AI3AqwBDAELIAJBqAFqIAgQMiADKAIAQSVGDQAgAxDoAwsgAyACKQOoATcDACADQSBqIAJByAFqKQMANwMAIANBGGogAkHAAWopAwA3AwAgA0EQaiACQbgBaikDADcDACADQQhqIAJBsAFqKQMANwMAIAMoAgAiCkElRg0ICyAKQSRGDQMMBwsgAUElNgLIAiAEKQIAISMgBCACKQJkNwIAIAJBvAFqIARBEGoiAygCADYCACACQbQBaiAEQQhqIggpAgA3AgAgCCACQewAaikCADcCACABKQPgAiEkIAMgAkH0AGopAgA3AgAgBEEYaiACQfwAaikCADcCACAEQSBqIAJBhAFqKAIANgIAIAIgIzcCrAEgAkEKNgKoASABICQ3A5gDIAJBqAFqIgMQ6AMgAkGBAjsAHSACIAEtAMYCOgAvIAIgASkBqgI3ABMgAiABLwGyAjsAGyACIAEpAbYCNwAfIAIgASkBvgI3ACcgAyABIAJBE2oQvwggAkEwaiACKAKoAUEAQQAQswEgAigCMEETRg0BQaC/5AAtAAAaQTAQhAEiAUUNBSABIAIpAzA3AwAgAUEoaiACQdgAaikDADcDACABQSBqIAJB0ABqKQMANwMAIAFBGGogAkHIAGopAwA3AwAgAUEQaiACQUBrKQMANwMAIAFBCGogAkE4aikDADcDACADEPUKIAAgATYCCCAAIAk2AgQgAEEMNgIAIAAgCiALKAIAIgEgASAKSRs2AhAgACAKIAEgASAKSxs2AgwMCQsgAUElNgLIAiAAQRM2AgAgASABKQPgAjcDmAMgACABKALMAjYCBAwICyAAIAIoAjQ2AgQgAEETNgIAIAJBqAFqEPUKDAULIAFBJTYCyAIgASgCzAIhAyAEIAIpAmQ3AgAgASABKQPgAjcDmAMgBEEIaiACQewAaikCADcCACAEQRBqIAJB9ABqKQIANwIAIARBGGogAkH8AGopAgA3AgAgBEEgaiACQYQBaigCADYCACABIAMQwAgMAwsgAUElNgLIAiABKALMAiEDIAQgAikCZDcCACABIAEpA+ACNwOYAyAEQQhqIAJB7ABqKQIANwIAIARBEGogAkH0AGopAgA3AgAgBEEYaiACQfwAaikCADcCACAEQSBqIAJBhAFqKAIANgIAIAEgAxDACAwECyAAQRM2AgAgACAJNgIEIAJBqAFqEPUKDAQLAAsgAEETNgIAIAAgCzYCBAsgCRCSAiAJQcAAQQgQohgMAQsgAEETNgIAIAAgCTYCBAsgAkHQAWokAAwpCyMAQdABayICJAAgAUEoaiEIIAEtAKACQQJGBEAgCEHwAkG4AiABKALIAkElRiIEG2ooAgAhAyAIQfQCQbwCIAQbaigCACEEIAJBqwE6AKgBIAEgAyAEIAMgBEkbIAMgBCADIARLGyACQagBahDpIgsgCEHwAkG4AiABKALIAkElRiIEG2ooAgAhAyAIQfQCQbwCIAQbaigCACEEIAJBygA6AKgBIAEgAyAEIAMgBEkbIAMgBCADIARLGyACQagBahCmJyABQcgCaiEDAkACQAJAIAEoAsgCIgRBJUcEQCABQZwDaiELDAELIAEoAvACIQQgAUElNgLwAgJAIARBJUcEQCACQcwBaiABQZQDaigCADYCACACQcQBaiABQYwDaikCADcCACACQbwBaiABQYQDaikCADcCACACQbQBaiABQfwCaikCADcCACACIAQ2AqgBIAIgASkC9AI3AqwBDAELIAJBqAFqIAgQMiADKAIAQSVGDQAgAxDoAwsgAyACKQOoATcDACADQSBqIAJByAFqKQMANwMAIANBGGogAkHAAWopAwA3AwAgA0EQaiACQbgBaikDADcDACADQQhqIAJBsAFqKQMANwMAIAFBnANqIQsgASgCyAIiBEElRw0AIAEoApwDIQogASgC8AIhBCABQSU2AvACAkAgBEElRwRAIAJBzAFqIAFBlANqKAIANgIAIAJBxAFqIAFBjANqKQIANwIAIAJBvAFqIAFBhANqKQIANwIAIAJBtAFqIAFB/AJqKQIANwIAIAIgBDYCqAEgAiABKQL0AjcCrAEMAQsgAkGoAWogCBAyIAMoAgBBJUYNACADEOgDCyADIAIpA6gBNwMAIANBIGogAkHIAWopAwA3AwAgA0EYaiACQcABaikDADcDACADQRBqIAJBuAFqKQMANwMAIANBCGogAkGwAWopAwA3AwAgAygCACIEQSVHDQEgASgCgAIhASACQQA6AKgBIAEgASACQagBahDvGyEBIABBEzYCACAAIAE2AgQMAgsgASgC4AIhCgsCQAJAAkACQAJAAkACQAJAIARBJEcEQCABQSU2AsgCIAEgASkD4AI3A5gDIAJBvAFqIgwgAUHcAmooAgA2AgAgAkG0AWoiDSABQdQCaikCADcCACACIAQ2AqgBIAIgASkCzAI3AqwBIAFBzAJqIQQgAkGoAWoQ6AMCQAJAIAEoAsgCIglBJUYEQCABKALwAiEJIAFBJTYC8AICQCAJQSVHBEAgAkHMAWogAUGUA2ooAgA2AgAgAkHEAWogAUGMA2opAgA3AgAgDCABQYQDaikCADcCACANIAFB/AJqKQIANwIAIAIgCTYCqAEgAiABKQL0AjcCrAEMAQsgAkGoAWogCBAyIAMoAgBBJUYNACADEOgDCyADIAIpA6gBNwMAIANBIGogAkHIAWopAwA3AwAgA0EYaiACQcABaikDADcDACADQRBqIAJBuAFqKQMANwMAIANBCGogAkGwAWopAwA3AwAgAygCACIJQSVGDQELIAlBCUYNAQsgAkGwAWogCBDdByACQZjN3wA2AqwBIAJBNDoAqAEgCEHwAkG4AiADKAIAQSVGIgkbaigCACIKIAhB9AJBvAIgCRtqKAIAIgkgCSAKSxsgCiAJIAkgCkkbIAJBqAFqEO8bIQkgAygCACIKQSVGBEAgASgC8AIhCiABQSU2AvACAkAgCkElRwRAIAJBzAFqIAFBlANqKAIANgIAIAJBxAFqIAFBjANqKQIANwIAIAJBvAFqIAFBhANqKQIANwIAIAJBtAFqIAFB/AJqKQIANwIAIAIgCjYCqAEgAiABKQL0AjcCrAEMAQsgAkGoAWogCBAyIAMoAgBBJUYNACADEOgDCyADIAIpA6gBNwMAIANBIGogAkHIAWopAwA3AwAgA0EYaiACQcABaikDADcDACADQRBqIAJBuAFqKQMANwMAIANBCGogAkGwAWopAwA3AwAgAygCACIKQSVGDQoLIApBJEYNBAwJCyABQSU2AsgCIAQpAgAhIyAEIAIpAmQ3AgAgAkG8AWoiDSAEQRBqIgkoAgA2AgAgAkG0AWoiByAEQQhqIgwpAgA3AgAgDCACQewAaikCADcCACABKQPgAiEkIAkgAkH0AGopAgA3AgAgBEEYaiACQfwAaikCADcCACAEQSBqIAJBhAFqKAIANgIAIAIgIzcCrAEgAkEJNgKoASABICQ3A5gDIAJBqAFqIgwQ6AMgAkEBOgCRASACIAEoAaoCNgCLASACIAEvAa4COwCPASACIAEpALECNwCSASACIAEpALkCNwCaASACIAEoAMECNgCiASACIAEvAMUCOwCmASAMIAEgAkGLAWoQvwggAkEIaiACKAKoARDaAiACKAIMIQkgAigCCA0EIAwQ9QoCQAJAIAMoAgAiDEElRgRAIAEoAvACIQwgAUElNgLwAgJAIAxBJUcEQCACQcwBaiABQZQDaigCADYCACACQcQBaiABQYwDaikCADcCACANIAFBhANqKQIANwIAIAcgAUH8AmopAgA3AgAgAiAMNgKoASACIAEpAvQCNwKsAQwBCyACQagBaiAIEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDqAE3AwAgA0EgaiACQcgBaikDADcDACADQRhqIAJBwAFqKQMANwMAIANBEGogAkG4AWopAwA3AwAgA0EIaiACQbABaikDADcDACADKAIAIgxBJUYNAQsgDEEKRg0BCyACQbABaiAIEN0HIAJB8MzfADYCrAEgAkE0OgCoASAIQfACQbgCIAMoAgBBJUYiCxtqKAIAIgogCEH0AkG8AiALG2ooAgAiCyAKIAtJGyAKIAsgCiALSxsgAkGoAWoQ7xshCyADKAIAIgpBJUYEQCABKALwAiEKIAFBJTYC8AICQCAKQSVHBEAgAkHMAWogAUGUA2ooAgA2AgAgAkHEAWogAUGMA2opAgA3AgAgAkG8AWogAUGEA2opAgA3AgAgAkG0AWogAUH8AmopAgA3AgAgAiAKNgKoASACIAEpAvQCNwKsAQwBCyACQagBaiAIEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDqAE3AwAgA0EgaiACQcgBaikDADcDACADQRhqIAJBwAFqKQMANwMAIANBEGogAkG4AWopAwA3AwAgA0EIaiACQbABaikDADcDACADKAIAIgpBJUYNCAsgCkEkRg0DDAcLIAFBJTYCyAIgBCkCACEjIAQgAikCZDcCACACQbwBaiAEQRBqIgMoAgA2AgAgAkG0AWogBEEIaiIIKQIANwIAIAggAkHsAGopAgA3AgAgASkD4AIhJCADIAJB9ABqKQIANwIAIARBGGogAkH8AGopAgA3AgAgBEEgaiACQYQBaigCADYCACACICM3AqwBIAJBCjYCqAEgASAkNwOYAyACQagBaiIDEOgDIAJBAToAJiACIAEtALwCOgAlIAIgAS0AxgI6AC8gAiABKQGqAjcAEyACIAEpAbICNwAbIAIgAS8BugI7ACMgAiABKQG+AjcAJyADIAEgAkETahC/CCACQTBqIAIoAqgBQQBBABCzASACKAIwQRNGDQFBoL/kAC0AABpBMBCEASIBRQ0FIAEgAikDMDcDACABQShqIAJB2ABqKQMANwMAIAFBIGogAkHQAGopAwA3AwAgAUEYaiACQcgAaikDADcDACABQRBqIAJBQGspAwA3AwAgAUEIaiACQThqKQMANwMAIAMQ9QogACABNgIIIAAgCTYCBCAAQQM2AgAgACAKIAsoAgAiASABIApJGzYCECAAIAogASABIApLGzYCDAwJCyABQSU2AsgCIABBEzYCACABIAEpA+ACNwOYAyAAIAEoAswCNgIEDAgLIAAgAigCNDYCBCAAQRM2AgAgAkGoAWoQ9QoMBQsgAUElNgLIAiABKALMAiEDIAQgAikCZDcCACABIAEpA+ACNwOYAyAEQQhqIAJB7ABqKQIANwIAIARBEGogAkH0AGopAgA3AgAgBEEYaiACQfwAaikCADcCACAEQSBqIAJBhAFqKAIANgIAIAEgAxDACAwDCyABQSU2AsgCIAEoAswCIQMgBCACKQJkNwIAIAEgASkD4AI3A5gDIARBCGogAkHsAGopAgA3AgAgBEEQaiACQfQAaikCADcCACAEQRhqIAJB/ABqKQIANwIAIARBIGogAkGEAWooAgA2AgAgASADEMAIDAQLIABBEzYCACAAIAk2AgQgAkGoAWoQ9QoMBAsACyAAQRM2AgAgACALNgIECyAJEJICIAlBwABBCBCiGAwBCyAAQRM2AgAgACAJNgIECyACQdABaiQADCgLAkAgA0UEQCAERQ0mDAELIARFDSMLIAFBAToAJCABLQCsAkEBcUUNDgwiCyABKALgAiECIAEoAuQCIQMgBkH1ADoA8AEgASACIAMgAiADSRsiBCACIAMgAiADSxsiAyAGQfABaiICEOkiIAIgARCbAQJAAkACQAJAIAIoAgBBB2sOAwEDAgALIAIQywsLIAIoAiwiCCACKAIwEOYnIAIoAiggCBDCKgwBCyACKAIEIghBCGoQiAMgCEEgQQgQohgLIAIgARDnBiACEO4hQaC/5AAtAAAaQcAAEIQBIgENIAwkCyABKALIAiEEIAFBJTYCyAIgASABKQPgAjcDmAMgBkH8AWogA0EIaikCADcCACAGQYQCaiADQRBqKAIANgIAIAYgAykCADcC9AEgBiAENgLwASAGQfABahDoAwwTCyAKEL8KGiAIKAIAQSVHDREMEgsgAUElNgLIAiABIAEpA+ACNwOYAyAGQYQCaiABQdwCaigCADYCACAGQfwBaiABQdQCaikCADcCACAGQQI2AvABIAYgASkCzAI3AvQBIAZB8AFqEOgDIAoQvwoiAw0MDA0LIAEoAuACIQIgASgC5AIhAyAGQfUAOgDwASABIAIgAyACIANJGyIEIAIgAyACIANLGyICIAZB8AFqIgMQ6SIgAyABEOcGIAMQ7iFBoL/kAC0AABpBwAAQhAEiAUUNICABIAI2AgggASAENgIEIAFBMTYCACAAIAI2AgwgACAENgIIIAAgATYCBCAAQRI2AgAMIgsgA0UEQCABKALgAiECIAEoAuQCIQMgBkEBOgDwASABIAIgAyACIANJGyACIAMgAiADSxsgBkHwAWoQ6SILIAZBoAFqIAFBACAGIAUQuwQgBigCoAFBCEYNBiAGQfwBaiAGQagBaikDADcCACAGQYQCaiAGQbABaikDADcCACAGQYwCaiAGQbgBaikDADcCACAGQZQCaiAGQcABaikDADcCACAGIAYpA6ABNwL0ASAAIAYpAvABNwIEIABBDGogBkH4AWopAgA3AgAgAEEUaiAGQYACaikCADcCACAAQRxqIAZBiAJqKQIANwIAIABBJGogBkGQAmopAgA3AgAgAEEsaiAGQZgCaigCADYCACAAQRE2AgAMIgsgBkHwAWogARBXIABBBGohASAGKALwAQRAIAEgBikC8AE3AgAgAUEQaiAGQYACaigCADYCACABQQhqIAZB+AFqKQIANwIAIABBCDYCAAwhCyABIAYoAvQBNgIAIABBEzYCAAwgCyAGQeAAaiABQQAQViAGKAJkIQEgBigCYEUN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BUEBayIFDQALCyAAIAw2AhQgACANNgIQIAAgCjYCDCAAIAs2AgggACADNgIEIABBDTYCAAwtCyABKAIQIQMgASgCFCEFIAJBkAFqIAFBBGoQvwEgAEEUaiAFNgIAIABBDjYCACAAIAIpApABNwIEIAIgAzYCnAEgAEEMaiACQZgBaikCADcCAAwsCwJAIAEtABwiCUECRg0AIAEoAhghCyABKAIUIQogASgCECEIIAEpAwgiHEIDg0IAUg0AIBynIgMgAygCACIDQQFqNgIAIANBAEgNJQsgASgCICEEEMMpIQEgAkGAAWogBBDWCSACQSBqIARBDGoQvQlBgICAgHghByAEKAI4IQwgBCgCNCENIAQoAjAhDyAEKAIYQYCAgIB4RwRAIAQoAiwhAyAEKQIkIR0gAkGQAWogBEEYahCbCyACQdgAaiAdNwMAIAJB4ABqIAM2AgAgAiACKQKUATcDUCACKAKQASEHCyAELQBFIQ4gBC0ARCEQQQAhAyAEKAI8IgYEQBDEKSEDIAYoAgwhESAGKAIQIRIgAkGQAWogBhC9ByADQRBqIBI2AgAgAyACKQKQATcCACACIBE2ApwBIANBCGogAkGYAWopAgA3AgALIAQoAkAiBARAEL8pIQUgBCkCBCEdIAQoAgAhBBDAKSACQZABaiIRIAQQfSARQeAAEIEJIQQgBSAdNwIEIAUgBDYCAAsgAkGYAWoiBCACQYgBaigCADYCACACQaQBaiACQShqKAIANgIAIAIgAikCgAEiHTcDkAEgAiACKQIgNwKcASABQRBqIAJBoAFqKQMANwIAIAFBCGogBCkDADcCACABIB03AgAgASAHNgIYIAEgDjoARSABIBA6AEQgASAFNgJAIAEgAzYCPCABIAw2AjggASANNgI0IAEgDzYCMCABIAIpA1A3AhwgAUEkaiACQdgAaikDADcCACABQSxqIAJB4ABqKAIANgIAIAAgATYCICAAIAk6ABwgACALNgIYIAAgCjYCFCAAIAg2AhAgACAcNwMIIABBDzYCAAwrCyABKQMIIRwgAS0AECEFEL4pIQMgAkGQAWogASgCBBA1IANBOGogAkHIAWopAwA3AwAgA0EwaiACQcABaikDADcDACADQShqIAJBuAFqKQMANwMAIANBIGogAkGwAWopAwA3AwAgA0EYaiACQagBaikD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AgwQNSADQThqIAopAwA3AwAgA0EwaiALKQMANwMAIANBKGogCSkDADcDACADQSBqIAwpAwA3AwAgA0EYaiANKQMANwMAIANBEGogDykDADcDACADQQhqIA4pAwA3AwAgAyACKQOQATcDACARCyAINgIAIAAgBjYCECAAIAM2AgwgACAQNgIIIAAgCjYCGCAAIAU2AiggACAENgIkIAAgBzYCICAAQRQ2AgAgACACKAKQATYCFCAAIAIoAlA2AhwMJgsgASgCLCEDIAEoAighBSABKAIkIQQgASgCICEKAkAgASgCCEUEQCABKAIcIQcgASgCGCEGIAEpAxAiHEIDg1BFDQEgHKciASABKAIAIgtBAWo2AgAgC0EATg0BDCALIAEpAxAhHEEBIQggAUEMahDfECEBCyAAIAM2AiwgACAFNgIoIAAgBDYCJCAAIAo2AiAgACAHNgIcIAAgBjYCGCAAIBw3AxAgACABNgIMIAAgCDYCCCAAQRU2AgAMJQsgASkDECEcEL4pIQMgAkGQAWoiBiABKAIEEDUgA0E4aiACQcgBaiIHKQMANwMAIANBMGogAkHAAWoiCCkDADcDACADQShqIAJBuAFqIgopAwA3AwAgA0EgaiACQbABaiILKQMANwMAIANBGGogAkGoAWoiCSkDADcDACADQRBqIAJBoAFqIgwpAwA3AwAgA0EIaiACQZgBaiINKQMANwMAIAMgAikDkAE3AwAQvikhBSAGIAEoAggQNSAFQThqIAcpAwA3AwAgBUEwaiAIKQMANwMAIAVBKGogCikDADcDACAFQSBqIAspAwA3AwAgBUEYaiAJKQMANwMAIAVBEGogDCkDADcDACAFQQhqIA0pAwA3AwAgBSACKQOQATcDABC+KSEEIAYgASgCDBA1IARBOGogBykDADcDACAEQTBqIAgpAwA3AwAgBEEoaiAKKQMANwMAIARBIGogCykDADcDACAEQRhqIAkpAwA3AwAgBEEQaiAMKQMANwMAIARBCGogDSkDADcDACAEIAIpA5ABNwMAIAAgHDcDECAAIAQ2AgwgACAFNgIIIAAgAzYCBCAAQRY2AgAMJAtBAyEDIAFBBGohBiABKAIkIQcgASgCICEKIAEoAhwhCwJAAkACQAJAQQEgAS0AGCIFQQNrIgQgBEH/AXFBA08bQf8BcUEBaw4CAQIACyABKAIUIQggASgCECEEDAILIAEoAhQhCCABKAIQIQQgBSEDDAELEL4pIQQgAkGQAWogASgCEBA1IARBOGogAkHIAWopAwA3AwAgBEEwaiACQcABaikDADcDACAEQShqIAJBuAFqKQMANwMAIARBIGogAkGwAWopAwA3AwAgBEEYaiACQagBaikDADcDACAEQRBqIAJBoAFqKQMANwMAIARBCGogAkGYAWopAwA3AwAgBCACKQOQATcDAEEFIQMLIAJBBGogBhCRCSABKAIoIgEEfyABEIcYBUEACyEBIAAgAikCBDcCBCAAIAE2AiggACAHNgIkIAAgCjYCICAAIAs2AhwgACADOgAYIAAgCDYCFCAAIAQ2AhAgAEEXNgIAIABBDGogAkEMaigCADYCAAwjCyABKAIcIQQgASgCGCEGIAEoAhQhBxC+KSEFIAJBkAFqIgggASgCEBA1IAVBOGogAkHIAWopAwA3AwAgBUEwaiACQcABaikDADcDACAFQShqIAJBuAFqKQMANwMAIAVBIGogAkGwAWopAwA3AwAgBUEYaiACQagBaikDADcDACAFQRBqIAJBoAFqKQMANwMAIAVBCGogAkGYAWopAwA3AwAgBSACKQOQATcDAEGAgICAeCEDIAEoAgRBgICAgHhHBEAgCCABQQRqEJEJIAIpApQBIRwgAigCkAEhAwsgACABKAIgIgEEfyABEIcYBUEACzYCICAAIAQ2AhwgACAGNgIYIAAgBzYCFCAAIAU2AhAgACAcNwMIIAAgAzYCBCAAQRg2AgAMIgsgASgCECEDIAEoAhQhBSACQZABaiABQQRqEOkJIABBFGogBTYCACAAQRk2AgAgACACKQKQATcCBCACIAM2ApwBIABBDGogAkGYAWopAgA3AgAMIQsgASgCGCEDIAEoAhQhBSABKAIQIQQgASkDCCIcQgODUARAIBynIgYgBigCACIGQQFqNgIAIAZBAEgNGgsgACADNgIYIAAgBTYCFCAAIAQ2AhAgACAcNwMIIABBGjYCACAAIAEtABw6ABwMIAsCfwJAAkACQAJAAkACQAJAIAEoAggiC0EBaw4GAQIDBAUGAAsgASgCHCEGIAEoAhghBCABKQMQIhxCA4NQBEAgHKciAyADKAIAIgNBAWo2AgAgA0EASA0gCyABKAIkIQcgASgCICEDIAEpAyAiHVAgHUIDg1BFckUEQCAdpyIBIAEoAgAiAUEBajYCACABQQBIDSALIBxCIIinIQUgHKchCCAcQiiIpwwGCyABLQAUIQUgASgCECEIIAEoAgwhCkEADAULIAEoAhAhCCABKAIMIQpBAAwECyABKAIkIQcgASgCICEDIAEpAxghHCABKAIUIQUgASgCECEIIAEpAyAiHVAgHUIDg1BFckUEQCAdpyIBIAEoAgAiAUEBajYCACABQQBIDR0LIBxCIIinIQYgHKchBCAFQQh2DAMLIAEoAiAhBCABKAIUIQUgASgCECEIEMIpIQMgBC0ADCEHIAJBkAFqIARBBGooAgAgBEEIaigCABCnFyADIAIpApABNwIAIAIgBzoAnAEgA0EIaiACQZgBaikCADcCACABKQMYIhynIQQgHEIDg1BFIBxQckUEQCAEIAQoAgAiAUEBajYCACABQQBIDRwLIBxCIIinIQYgBUEIdgwCCyABKAIkIQcgASgCICEDIAEpAxAiHEIDg1AEQCAcpyIFIAUoAgAiBUEBajYCACAFQQBIDRsLIAEpAxgiHachBCAdQgODUARAIAQgBCgCACIBQQFqNgIAIAFBAEgNGwsgHUIgiKchBiAcQiCIpyEFIBynIQggHEIoiKcMAQsgASgCJCEHIAEoAiAhAyABKQMQIhxCA4NQBEAgHKciBSAFKAIAIgVBAWo2AgAgBUEASA0aCyABKQMYIh2nIQQgHUIDg1AEQCAEIAQoAgAiAUEBajYCACABQQBIDRoLIB1CIIinIQYgHEIgiKchBSAcpyEIIBxCKIinCyEBIAAgBzYCJCAAIAM2AiAgACAKNgIMIAAgCzYCCCAAQRs2AgAgACAErSAGrUIghoQ3AxggACAIrSAFQf8BcSABQQh0cq1CIIaENwMQDB8LIAEpAhwhHCACQZABaiABQQRqEOkJIAJBnAFqIAEoAhQgASgCGBDQCSAAQRxqIBw3AgAgAEEcNgIAIAAgAikCkAE3AgQgAEEMaiACQZgBaikCADcCACAAQRRqIAJBoAFqKQIANwIADB4LIAEoAhQhBiABKAIQIQcgASgCDCEIEL4pIQMgAkGQAWogASgCBBA1IANBOGogAkHIAWopAwA3AwAgA0EwaiACQcABaikDADcDACADQShqIAJBuAFqKQMANwMAIANBIGogAkGwAWopAwA3AwAgA0EYaiACQagBaikDADcDACADQRBqIAJBoAFqKQMANwMAIANBCGogAkGYAWopAwA3AwAgAyACKQOQATcDACABKAIYIgQEQCAEEIcYIQULQaC/5AAtAAAaIAEoAgghBEEgEIQBIgFFDRYgBCkCGCEcIAJBkAFqIAQQ6QkgAkGcAWogBEEQaigCACAEQRRqKAIAENAJIAFBGGogHDcCACABIAIpApABNwIAIAFBCGogAkGYAWopAgA3AgAgAUEQaiACQaABaikCADcCACAAIAU2AhggACAGNgIUIAAgBzYCECAAIAg2AgwgACABNgIIIAAgAzYCBCAAQR02AgAMHQsgASgCCCEDIAEoAhwhDCABKAIYIQ0gASgCFCEPIAJBkAFqIAEoAgwiCUEIQSgQ3hAgAigClAEhByACKAKQAUEBRg0UIAIoApgBIQgCQCAHRQ0AIAlBKGwhBSAIIQQgByEGA0AgBUUNASACQZABaiADEJcDIARBIGogAkGwAWopAwA3AwAgBEEYaiACQagBaikDADcDACAEQRBqIAJBoAFqKQMANwMAIARBCGogAkGYAWopAwA3AwAgBCACKQOQATcDACAFQShrIQUgBEEoaiEEIANBKGohAyAGQQFrIgYNAAsLQaC/5AAtAAAaQRgQhAEiCkUNFUGAgICAeCEGAkAgASgCECIFKAIAQYCAgIB4RwRAIAUpAgwhHCAFKAIUIQMgAkGQAWogBRCbCyACIAM2AqQBIAIgHDcCnAEgAkHYAGogAkGgAWopAgA3AwAgAiACKQKYATcDUCACKAKQASEGIAIoApQBIQMMAQsQvikhAyACQZABaiAFKAIEEDUgA0E4aiACQcgBaikDADcDACADQTBqIAJBwAFqKQMANwMAIANBKGogAkG4AWopAwA3AwAgA0EgaiACQbABaikDADcDACADQRhqIAJBqAFqKQMANwMAIANBEGogAkGgAWopAwA3AwAgA0EIaiACQZgBaikDADcDACADIAIpA5ABNwMACyAKIAM2AgQgCiAGNgIAIAogAikDUDcCCCAKQRBqIAJB2ABqKQMANwIAIAEtACkhDiABLQAoIRBBACEDQQAhBSABKAIgIgQEQCMAQSBrIgYkABDEKSELIAQiBSgCDCEEIAUoAhAhESAGQQxqIAUQvQcgC0EQaiARNgIAIAsgBikCDDcCACAGIAQ2AhggC0EIaiAGQRRqKQIANwIAIAZBIGokACALIQULIAEoAiQiBARAIwBB4ABrIgEkABC/KSEDIAQpAgQhHCAEKAIAIQQQwCkgASAEEH0gAUHgABCBCSEEIAMgHDcCBCADIAQ2AgAgAUHgAGokAAsgACAOOgApIAAgEDoAKCAAIAM2AiQgACAFNgIgIAAgDDYCHCAAIA02AhggACAPNgIUIAAgCjYCECAAIAk2AgwgACAINgIIIAAgBzYCBCAAQR42AgAMHAsCQCABLQAcIglBAkYNACABKAIYIQsgASgCFCEKIAEoAhAhCCABKQMIIhxCA4NCAFINACAcpyIDIAMoAgAiA0EBajYCACADQQBIDRULEL4pIQQgASgCICIBKAIsIQwgASgCKCENIAEoAiQhDyACQSBqIAEQvQkgAkHQAGogAUEMahB4QQAhAyABKAIwIgYEQBC+KSEDIAJBkAFqIAYQNSADQThqIAJByAFqKQMANwMAIANBMGogAkHAAWopAwA3AwAgA0EoaiACQbgBaikDADcDACADQSBqIAJBsAFqKQMANwMAIANBGGogAkGoAWopAwA3AwAgA0EQaiACQaABaikDADcDACADQQhqIAJBmAFqKQMANwMAIAMgAikDkAE3AwALIAEtADwhDiABKAI0IgYEQBDEKSEFIAYoAgwhByAGKAIQIRAgAkGQAWogBhC9ByAFQRBqIBA2AgAgBSACKQKQATcCACACIAc2ApwBIAVBCGogAkGYAWopAgA3AgALAkAgASgCOCIHRQRAQQAhBgwBCxDEKSEGIAcoAgwhECAHKAIQIREgAkGQAWogBxDJDiAGQRBqIBE2AgAgBiACKQKQATcCACACIBA2ApwBIAZBCGogAkGYAWopAgA3AgALIAJBqAFqIgcgAUEYahC/BiACQZgBaiIBIAJBKGooAgA2AgAgAkGkAWogAkHYAGooAgA2AgAgAiACKQIgIh03A5ABIAIgAikCUDcCnAEgBEEgaiACQbABaigCADYCACAEQRhqIAcpAwA3AgAgBEEQaiACQaABaikDADcCACAEQQhqIAEpAwA3AgAgBCAdNwIAIAQgDjoAPCAEIAY2AjggBCAFNgI0IAQgAzYCMCAEIAw2AiwgBCANNgIoIAQgDzYCJCAAIAQ2AiAgACAJOgAcIAAgCzYCGCAAIAo2AhQgACAINgIQIAAgHDcDCCAAQR82AgAMGwsgASgCCCEDIAEoAgQhBSAAIAEoAgwEfyABQQxqEN8QBUEACzYCDCAAIAM2AgggACAFNgIEIABBIDYCACAAIAEtABA6ABAMGgsgAEEhNgIAIAAgAS0ADDoADCAAIAEpAgQ3AgQMGQsgASkDCCEcEL4pIQMgAkGQAWogASgCBBA1IANBOGogAkHIAWopAwA3AwAgA0EwaiACQcABaikDADcDACADQShqIAJBuAFqKQMANwMAIANBIGogAkGwAWopAwA3AwAgA0EYaiACQagBaikDADcDACADQRBqIAJBoAFqKQMANwMAIANBCGogAkGYAWopAwA3AwAgAyACKQOQATcDACAAIBw3AwggACADNgIEIABBIjYCAAwYCyABKQMIIRwQvikhAyACQZABaiABKAIEEDUgA0E4aiACQcgBaikDADcDACADQTBqIAJBwAFqKQMANwMAIANBKGogAkG4AWopAwA3AwAgA0EgaiACQbABaikDADcDACADQRhqIAJBqAFqKQMANwMAIANBEGogAkGgAWopAwA3AwAgA0EIaiACQZgBaikDADcDACADIAIpA5ABNwMAIAAgHDcDCCAAIAM2AgQgAEEjNgIADBcLIAEoAhwhAyABKAIYIQUgAkGQAWogAUEgahDvCCABKAIUIQQgASgCECEGIAEpAwgiHEIDg1AEQCAcpyIBIAEoAgAiAUEBajYCACABQQBIDRALIAAgAikDkAE3AyAgAEEwaiACQaABaikDADcDACAAQShqIAJBmAFqKQMANwMAIAAgAzYCHCAAIAU2AhggACAENgIUIAAgBjYCECAAIBw3AwggAEEkNgIADBYLIAEoAhQhAyABKAIQIQUgASgCLCEEIAEoAighBiABKQMIIhxCA4NQBEAgHKciByAHKAIAIgdBAWo2AgAgB0EASA0PCyABKAIkIQcgASgCICEIIAEpAxgiHUIDg1AEQCAdpyIBIAEoAgAiAUEBajYCACABQQBIDQ8LIAAgBDYCLCAAIAY2AiggACAHNgIkIAAgCDYCICAAIB03AxggACADNgIUIAAgBTYCECAAIBw3AwggAEElNgIADBULIABBJjYCACAAIAEpAgQ3AgQMFAsgASgCBCEEEMkpIQEgBCgCBCEIIAQoAgAhCiACQZABaiAEQUBrEPMGIAQoAnQhCyAEKAJwIQkgAkGAAWogBEH8AGoQgAMgBC0AiAEhDAJAIAQoAngiBUUEQEEAIQMMAQsQxCkhAyAFKAIMIQYgBSgCECEHIAJB0ABqIAUQyQ4gA0EQaiAHNgIAIAMgAikCUDcCACACIAY2AlwgA0EIaiACQdgAaikCADcCAAsgAkEQaiAEQZABahCYAUEGIQUgBC0APEEGRwRAIAQoAgwhByAEKAIIIQYgAkHQAGogBEEQahDzBiACQcgAaiACQfgAaigCADYCACACQUBrIAJB8ABqKQMANwMAIAJBOGogAkHoAGopAwA3AwAgAkEwaiACQeAAaikDADcDACACQShqIAJB2ABqKQMANwMAIAJBHmogAkH/AGotAAA6AAAgAiACKQNQNwMgIAIgAi8AfTsBHCACLQB8IQULIAJB3wBqIgQgAkEYaigCADYAACACIAIpAhA3AFcgASAHNgIMIAEgBjYCCCABIAg2AgQgASAKNgIAIAEgAikDIDcDECABQRhqIAJBKGopAwA3AwAgAUEgaiACQTBqKQMANwMAIAFBKGogAkE4aikDADcDACABQTBqIAJBQGspAwA3AwAgAUE4aiACQcgAaigCADYCACABIAU6ADwgASADNgJ4IAEgCzYCdCABIAk2AnAgASACLwEcOwA9IAFBP2ogAkEeai0AADoAACABQegAaiACQbgBaikDADcDACABQeAAaiACQbABaikDADcDACABQdgAaiACQagBaikDADcDACABQdAAaiACQaABaikDADcDACABQcgAaiACQZgBaikDADcDACABIAIpA5ABNwNAIAFBhAFqIAJBiAFqKAIANgIAIAEgAikCgAE3AnwgASAMOgCIASABQZgBaiAEKAAANgAAIAFBkQFqIAJB2ABqKQAANwAAIAEgAikAUDcAiQEgAEEnNgIAIAAgATYCBAwTCyABKAIQIQMgASkCFCEcIAEoAhwhBSACQZABaiABQQRqEJgBIAJBqAFqIgQgBTYCACAAQRRqIBw3AgAgAEEoNgIAIAAgAikCkAE3AgQgAEEkaiABKAIkNgIAIAIgAzYCnAEgAEEMaiACQZgBaikCADcCACACIAEoAiA2AqwBIABBHGogBCkCADcCAAwSCyABKQIMIRwQvikhAyACQZABaiIFIAEoAgQQNSADQThqIAJByAFqKQMANwMAIANBMGogAkHAAWopAwA3AwAgA0EoaiACQbgBaikDADcDACADQSBqIAJBsAFqKQMANwMAIANBGGogAkGoAWopAwA3AwAgA0EQaiACQaABaikDADcDACADQQhqIAJBmAFqKQMANwMAIAMgAikDkAE3AwAgASgCCCEBEMApIAUgARB9IAVB4AAQgQkhASAAIBw3AgwgACABNgIIIAAgAzYCBCAAQSk2AgAMEQsgASkDCCEcEL4pIQMgAkGQAWogASgCBBA1IANBOGogAkHIAWopAwA3AwAgA0EwaiACQcABaikDADcDACADQShqIAJBuAFqKQMANwMAIANBIGogAkGwAWopAwA3AwAgA0EYaiACQagBaikDADcDACADQRBqIAJBoAFqKQMANwMAIANBCGogAkGYAWopAwA3AwAgAyACKQOQATcDACAAIBw3AwggACADNgIEIABBKjYCAAwQCyABKQMIIRwQvikhAyACQZABaiABKAIEEDUgA0E4aiACQcgBaikDADcDACADQTBqIAJBwAFqKQMANwMAIANBKGogAkG4AWopAwA3AwAgA0EgaiACQbABaikDADcDACADQRhqIAJBqAFqKQMANwMAIANBEGogAkGgAWopAwA3AwAgA0EIaiACQZgBaikDADcDACADIAIpA5ABNwMAIAAgHDcDCCAAIAM2AgQgAEErNgIADA8LIAEpAgwhHBC+KSEDIAJBkAFqIgUgASgCBBA1IANBOGogAkHIAWopAwA3AwAgA0EwaiACQcABaikDADcDACADQShqIAJBuAFqKQMANwMAIANBIGogAkGwAWopAwA3AwAgA0EYaiACQagBaikDADcDACADQRBqIAJBoAFqKQMANwMAIANBCGogAkGYAWopAwA3AwAgAyACKQOQATcDACABKAIIIQEQwCkgBSABEH0gBUHgABCBCSEBIAAgHDcCDCAAIAE2AgggACADNgIEIABBLDYCAAwOCyABKQIMIRwQvikhAyACQZABaiIEIAEoAgQQNSADQThqIAJByAFqKQMANwMAIANBMGogAkHAAWopAwA3AwAgA0EoaiACQbgBaikDADcDACADQSBqIAJBsAFqKQMANwMAIANBGGogAkGoAWopAwA3AwAgA0EQaiACQaABaikDADcDACADQQhqIAJBmAFqIgYpAwA3AwAgAyACKQOQATcDACABKAIIIQUQxCkhASAFKAIMIQcgBSgCECEIIAQgBRDJDiABQRBqIAg2AgAgASACKQKQATcCACACIAc2ApwBIAFBCGogBikCADcCACAAIBw3AgwgACABNgIIIAAgAzYCBCAAQS02AgAMDQsgASkCDCEcEL4pIQMgAkGQAWoiBSABKAIEEDUgA0E4aiACQcgBaikDADcDACADQTBqIAJBwAFqKQMANwMAIANBKGogAkG4AWopAwA3AwAgA0EgaiACQbABaikDADcDACADQRhqIAJBqAFqKQMANwMAIANBEGogAkGgAWopAwA3AwAgA0EIaiACQZgBaikDADcDACADIAIpA5ABNwMAIAEoAgghARDAKSAFIAEQfSAFQeAAEIEJIQEgACAcNwIMIAAgATYCCCAAIAM2AgQgAEEuNgIADAwLIAEoAhQhAyABKAIQIQUgASkDCCIcQgODUARAIBynIgEgASgCACIBQQFqNgIAIAFBAEgNBQsgACADNgIUIAAgBTYCECAAIBw3AwggAEEvNgIADAsLIAEtABAhDCABKAIMIQ0gASgCCCEPEMEpIQhBAyEGAkAgASgCBCIDKAIAQQNHBEAgAygCHCEKIAMoAhghCxC+KSEBIAJBkAFqIgUgAygCIBA1IAFBOGogAkHIAWopAwA3AwAgAUEwaiACQcABaikDADcDACABQShqIAJBuAFqKQMANwMAIAFBIGogAkGwAWopAwA3AwAgAUEYaiACQagBaikDADcDACABQRBqIAJBoAFqKQMANwMAIAFBCGogAkGYAWopAwA3AwAgASACKQOQATcDACMAQUBqIgQkAAJ/AkACQAJAAkACQCADKAIAIg5BAWsOAgECAAsgAygCFCEHIAMoAhAhCSADKQMIIhxCA4NQBEAgHKciAyADKAIAIgNBAWo2AgAgA0EASA0DCwwDCyADKAIUIQcgAygCECEJIAMpAwgiHEIDg1AEQCAcpyIDIAMoAgAiA0EBajYCACADQQBIDQILDAILIAMoAgwhByADKAIIIQkQvikhBiAEIAMoAgQQNSAGQThqIARBOGopAwA3AwAgBkEwaiAEQTBqKQMANwMAIAZBKGogBEEoaikDADcDACAGQSBqIARBIGopAwA3AwAgBkEYaiAEQRhqKQMANwMAIAZBEGogBEEQaikDADcDAEEIIQMgBkEIaiAEQQhqKQMANwMAIAYgBCkDADcDACAFIAY2AgRBDAwCCwALIAUgHDcDCEEQIQNBFAshBiADIAVqIAk2AgAgBSAONgIAIAUgBmogBzYCACAEQUBrJAAgAkH4AWogAkGcAWooAgA2AgAgAiACKQKUATcD8AEgAigCkAEhBiACKAKgASEFIAIoAqQBIQcMAQsgAygCHCEKIAMoAhghCyADKAIUIQcQvikhBSACQZABaiADKAIQEDUgBUE4aiACQcgBaikDADcDACAFQTBqIAJBwAFqKQMANwMAIAVBKGogAkG4AWopAwA3AwAgBUEgaiACQbABaikDADcDACAFQRhqIAJBqAFqKQMANwMAIAVBEGogAkGgAWopAwA3AwAgBUEIaiACQZgBaiIEKQMANwMAIAUgAikDkAE3AwAgAkHwAWogA0EEahCRCSADKAIgIgNFBEBBACEBDAELEMQpIQEgAygCDCEJIAMoAhAhDiACQZABaiADEMkOIAFBEGogDjYCACABIAIpApABNwIAIAIgCTYCnAEgAUEIaiAEKQIANwIACyAIIAY2AgAgCCACKQPwATcCBCAIIAE2AiAgCCAKNgIcIAggCzYCGCAIIAc2AhQgCCAFNgIQIAAgDDoAECAAIA02AgwgACAPNgIIIAAgCDYCBCAAQTA2AgAgCEEMaiACQfgBaigCADYCAAwKCyAAQTE2AgAgACABKQIENwIEDAkLIAMgAigCmAEQoy8ACyAHIAIoApgBEKMvAAsACyABLQAgIQggASgCHCIEBEAQvykhBSAEKQIEIRwgBCgCACEEEMApIAJBkAFqIgcgBBB9IAdB4AAQgQkhBCAFIBw3AgQgBSAENgIACyACQdAAaiEEIAIoAlghByACKAJUCyEGIAQoAgAMAwsgAigCnAEhByACKAKYASEGIAIoApABIQkgAigClAEMAgsjAEFAaiIEJAAgAUEEaiIJKQIEIR0QvikhBiAEIAkoAgAQNSAGQThqIARBOGopAwA3AwAgBkEwaiAEQTBqKQMANwMAIAZBKGogBEEoaikDADcDACAGQSBqIARBIGopAwA3AwAgBkEYaiAEQRhqKQMANwMAIAZBEGogBEEQaikDADcDACAGQQhqIARBCGopAwA3AwAgBiAEKQMANwMAIAJBkAFqIgkgBjYCACAJIB03AgQgBEFAayQAIAIoApgBIQYgAigCkAEhCSACKAKUAQwBCyACQY4BaiACQasBai0AADoAACACIAIvAKkBOwGMASACLQCoASEIIAIoAqQBIQUgAigCoAEhCiACKAKcASELIAIoApgBIQcgAigClAEhBiACKAKsASEPIAIpA7ABIRwgAigCkAELIQwQvikhBCACQZABaiABKAI4EDUgBEE4aiACQcgBaikDADcDACAEQTBqIAJBwAFqKQMANwMAIARBKGogAkG4AWopAwA3AwAgBEEgaiACQbABaikDADcDACAEQRhqIAJBqAFqKQMANwMAIARBEGogAkGgAWopAwA3AwAgBEEIaiACQZgBaikDADcDACAEIAIpA5ABNwMAIAAgCDoAICAAIAU2AhwgACAKNgIYIAAgCzYCFCAAIAc2AhAgACAGNgIMIAAgDDYCCCAAIAk2AgQgACADNgIAIAAgEzoAPCAAIAQ2AjggACAUNgI0IAAgFTYCMCAAIBw3AyggACAPNgIkIAAgAi8BjAE7ACEgAEEjaiACQY4Bai0AADoAAAsgAkGAAmokAAuzXwJIfwN+IwBBsAdrIgIkACABQcgCaiEHIAFBKGohFQJAAkACQAJAAkAgASgCyAIiC0ElRgRAIAEoAvACIQMgAUElNgLwAgJAIANBJUcEQCACQbQEaiABQZQDaigCADYCACACQawEaiABQYwDaikCADcCACACQaQEaiABQYQDaikCADcCACACQZwEaiABQfwCaikCADcCACACIAM2ApAEIAIgASkC9AI3ApQEDAELIAJBkARqIBUQMiAHKAIAQSVGDQAgBxDoAwsgByACKQOQBDcDACAHQSBqIAJBsARqKQMANwMAIAdBGGogAkGoBGopAwA3AwAgB0EQaiACQaAEaikDADcDACAHQQhqIAJBmARqKQMANwMAIAcoAgAiC0ElRg0BCyALQQ1GDQELIAJBmARqIBUQ3QcgAkHYyN8ANgKUBCACQTQ6AJAEIBVB8AJBuAIgBygCAEElRiIEG2ooAgAiAyAVQfQCQbwCIAQbaigCACIEIAMgBEkbIAMgBCADIARLGyACQZAEahDvGyEEIAcoAgAiC0ElRgRAIAEoAvACIQMgAUElNgLwAgJAIANBJUcEQCACQbQEaiABQZQDaigCADYCACACQawEaiABQYwDaikCADcCACACQaQE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AigCgAchBiACQSU2AoAHAkAgBkElRwRAIBwgGikCADcCACAcQSBqIBpBIGooAgA2AgAgHEEYaiAaQRhqKQIANwIAIAQgGkEQaikCADcCACADIBpBCGopAgA3AgAgAiAGNgJgDAELIAJB4ABqICkQMiACKALYBkElRg0AIB4Q6AMLIB4gAikDYDcDACAeQSBqIgggAkGAAWoiDSkDADcDACAeQRhqIg4gAkH4AGoiDykDADcDACAeQRBqIhMgAkHwAGoiFCkDADcDACAeQQhqIhkgAkHoAGoiECkDADcDAAJAAkACQAJAIAIoAtgGIgtBJUcEQCALQQlHDQEgAkGQBGoQwxEMBAsgAigCgAchBiACQSU2AoAHAkAgBkElRwRAIBwgGikCADcCACAcQSBqIBpBIGooAgA2AgAgHEEYaiAaQRhqKQIANwIAIAQgGkEQaikCADcCACADIBpBCGopAgA3AgAgAiAGNgJgDAELIAJB4ABqICkQMiACKALYBkElRg0AIB4Q6AMLIB4gAikDYDcDACAIIA0pAwA3AwAgDiAPKQMANwMAIBMgFCkDADcDACAZIBApAwA3AwAgAigC2AYiC0ElRg0BCyALQRRGDQELIAJBkARqEMMRDAULIAItANwGIAJBkARqEMMRQQRHDQQLIAJBkARqIAFBARC4ASACKAKQBCIDQQJGDQlBBUEEIANBAXEbDAcLQYy04AAQ1h0AC0H8s+AAENUdAAtB7LPgABDVHQALIAcoAgAiC0ElRw0BCyABKALwAiEDIAFBJTYC8AICQCADQSVHBEAgBSAJKQIANwIAIAVBIGogCUEgaigCADYCACAFQRhqIAlBGGopAgA3AgAgBUEQaiAJQRBqKQIANwIAIAVBCGogCUEIaikCADcCACACIAM2ApAEDAELIAJBkARqIBUQMiAHKAIAQSVGDQAgBxDoAwsgByACKQOQBDcDACAHQSBqIAJBsARqKQMANwMAIAdBGGogAkGoBGopAwA3AwAgB0EQaiACQaAEaikDADcDACAHQQhqIBEpAwA3AwAgBygCACELCyABQZwDQeACIAtBJUYbaigCACEZIAJBkARqIgQgAUHgzt8AQQFBABDoASACKAKUBCILIAIoApAEDQYaIAQgASAZIAtBAEciLEEAEG8gAigClAQhAwJAIAIoApAEIhNBgYCAgHhH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ADYC8AMgAkIBNwL8AyACICg3A4ACIAIgAkGAAmo2AvgDIAJB8AJqIAJB8ANqEL0IIAIoApgCIAIoApwCEIEsIAJBoAJqIAJB+AJqKAIANgIAIAIgAikC8AI3A5gCCyACQfgDaiACQaACaigCADYCACACIAIpA5gCNwPwAyACQfADahDgJiEmIAIgGDYC+AEgAiAZNgL0ASACIBo2AvABIAJBADoA/AEgAiAmNwPoASACQQhqIAJB6AFqEK0hIAIoAhAhBCACKQMIIScgASgCcCIDIAEoAmhGBEAgIBCxDAsgASgCbCADQQR0aiIIIAQ2AgggCCAnNwMAIAEgA0EBajYCcEGgv+QALQAAGkHAABCEASIDRQ0GIANBADYCCCADQjE3AwAgBigCDCEEIAYgAzYCDCAmQgODUARAICanIgMgAygCACIDQQFqNgIAIANBAEgNBwsgAiAYNgKQAiACIBk2AowCIAIgGjYCiAIgAkEAOgCUAiACICY3A4ACIAJBmAJqIAJBgAJqEK0TIBZBGGogAkGwAmopAwA3AgAgFkEQaiACQagCaikDADcCACAWQQhqIAJBoAJqKQMANwIAIBYgAikDmAI3AgAgAkH4AmoiCCACQfgDaikCADcDACACQYADaiIFIAJBgARqKQIANwMAIAJBiANqIgkgAkGIBGopAgA3AwAgAkGQA2oiCyACQZAEaigCADYCACACIAIpAvADNwPwAiAGKAIMENUBIAYoAgwiA0EANgIAIAMgAikD8AI3AgQgA0EAOgA8IAMgBDYCOCADQgA3AzAgA0EMaiAIKQMANwIAIANBFGogBSkDADcCACADQRxqIAkpAwA3AgAgA0EkaiALKAIANgIAIAYoAhQhAyAGKAIQIQQgDSACKQPoATcCACANQQhqIAJB8AFqKQMANwIAIA1BEGogAkH4AWopAwA3AgBBoL/kAC0AABpBwAAQhAEiCEUNBiAIQRo2AgAgCCACKQLIAzcCBCAIQQxqIAJB0ANqKQIANwIAIAhBFGogAkHYA2opAgA3AgAgCEEcaiACQeADaigCADYCAAtBAwshBSACIBU2AowDIAIgDzYCiAMgAiAINgL0AiACIAU2AvACIAIgFK0gEa1CIIaENwOAAyACIAStIAOtQiCGhDcD+AIgBigCPCEDIAZBADYCPCADBEAgAkGoBGogA0E4aikDADcDACACQaAEaiADQTBqKQMANwMAIAJBmARqIANBKGopAwA3AwAgAkGQBGogA0EgaikDADcDACACQYgEaiADQRhqKQMANwMAIAJBgARqIANBEGopAwA3AwAgAkH4A2ogA0EIaikDADcDACACIAMpAwA3A/ADIAJB8AJqIAJB8ANqEIsFIQkgAigCjAEiBCACKAKEAUYEQCACQYQBahCqDAsgAigCiAEiBSAEQQJ0aiAJNgIAIAIgBEEBaiILNgKMASADQcAAQQgQohgMAwtBjKjfABChLwALIAJB8AJqICJB1AAQgQkaCwJAIAIoApABQQVGDQAgAkGQAWoQ9gwgAigC1AEiCiACKALYARCLKCACKALQASAKEMEqIAIoArABIgpBgICAgHhGDQAgAigCtAEiAyACKAK4ARCFKCAKIAMQwioLIAIgBDYCkAEgISACQfACakHUABCBCRogByEKCyAHQQFqIQcgHyAGQdgAaiIGRw0ACwwCCwALIAAoAhRB2ABsIQYgACgCEEHYAGshBwJAA0AgBkUNASAGQdgAayEGIAdB2ABqIgcoAgBBBU8NAAsgAiALNgL4AyACIAU2AvQDIAIgBDYC8AMgByACQfADaiIHEI8DIAJB8AJqIBsQwBUgAkGABGogAkGAA2ooAgA2AgAgAkH4A2ogAkH4AmopAgA3AwAgAiAMIBBBBHRqNgKQBCACIBM2AowEIAIgDDYCiAQgAiAMNgKEBCACIAIpAvACNwPwAyAHEJcIIAcQ3AMgAkGEBGoQ0REMBAsgAkHwAmogGxDAFSACQYAEaiACQYADaigCADYCACACQfgDaiACQfgCaikCADcDACACIAwgEEEEdGo2ApAEIAIgEzYCjAQgAiAMNgKIBCACIAw2AoQEIAIgAikC8AI3A/ADIAJB8ANqIgcQlwggBxDcAyACQYQEahDRESAFIAsQoiUgBCAFEMMqDAMLIAIoApABQQVGDQAgAkGYAmoiBCACQZABakHYABCBCRogBCACQYQBahCPAyAAKAIQIQYCQCAKIAAoAhQiA08NACAGIApB2ABsaiIHKAIAQQpHDQAgBygCBCACKALQAkcNACAHKAIIIAIoAtQCRw0AIAJB8ANqIgogBEHYABCBCRogBxDBBSAHIApB2AAQgQkaQQEMAgsgAkHwAmogAkGYAmpB2AAQgQkaIBsoAgAgA0YEfyAbEPULIAAoAhAFIAYLIANB2ABsaiACQfACakHYABCBCRogACADQQFqNgIUQQEMAQtBAAsgAkGYAmogGxDAFSACIBM2ArQCIAIgDDYCsAIgAiAMNgKsAiACIAwgEEEEdGo2ArgCAkAgAigCmAIiBiACKAKcAiIHRg0AIAJB8ANqQQRyIQoDQCAGKAIAIgNBDUYNASAKIAZBBGpB1AAQgQkaIAIgAzYC8AMgAkHwA2oQwgUgBkHYAGoiBiAHRw0ACwsgAkGsAmohCiACQoiAgICAATcCmAIgAigCoAIhBwJAIAIoAqgCRQRAIAcgChCCCAwBCyAHIAIoAqQCIAoQ/AdFDQACfyACKAK4AiIDIAIoArACIgdGBEAgBwwBCyACQZgCaiADIAdrQQR2EOcXIAIoAqACIAIoAqQCIAoQ/AdFDQEgAigCuAIhByACKAKwAgshAyACQfADaiIGIAcgA2tBBHZBCEHYABDeECACKAL0AyEHIAIoAvADQQFGDQIgAkEANgKIAiACIAIoAvgDNgKEAiACIAc2AoACIAJBgAJqIAoQggggAiACKAKAAjYC+AMgAiACKAKEAiIHNgLwAyACIAc2AvQDIAIgByACKAKIAiIDQdgAbGo2AvwDIAMEQCACQZgCaiADEOcXIAIoAqACIAIoAqQCIAYQuQ8LIAJB8ANqELwECyACQZgCahDcAyAKENERDQAgAigCiAEiByALEKIlIAIoAoQBIAcQwyoLIAAoAjAiAARAIAEgABDBAQsgAkHQBGokAA8LIAcgAigC+AMQoy8ACyAJIAIoAvgDEKMvAAusTAIYfwJ+IwBBgAJrIgQkAAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJ/AkACQAJAAkACQAJ/AkACQAJAAkACfwJAAkAgAygCECIFIAMoAhQiCk0EQAJAIAMoAgAiEUEBa0ECTwRAQciXxAAgAUFAayABLQBMQQNGGyIGLQAMIgdBAkcNAQsgAy0AGEUEQCAEQcQBaiADEIMeIAQoAsgBIQggBCgCxAEhCUECIAQtAMwBQQFHDRUaIAQtAM0BIQYgAUHYBGoiBxDBL0UNEwwUCyAEQcQBaiADEIMeIAQoAsgBIQggBCgCxAEhCUECIAQtAMwBQQFHDQ8aIAQtAM0BIQYgAUHYBGoiBxDBL0UNDQwOCyADKAIEIQ4gBkEAIAdBAkcbIQ8gAy0AGCINRQRAIAEoAvgEIhIoArQCIRUgBEHEAWogAxCDHiAEKALIASEHIAQoAsQBIQlBAiAELQDMAUEBRw0JGiAELQDNASEGIAFB2ARqIggQwS9FDQcMCAsgASgC+AQiECgCtAIhEiAEQcQBaiADEIMeIAQoAsgBIQcgBCgCxAEhCUECIAQtAMwBQQFHDQMaIAQtAM0BIQYgAUHYBGoiCBDBL0UNAQwCCyAAQQA2AgAMFQsgCCAGEL4eRQ0AIAQgBq1CIIZCBIQ3A7gBDAILIAEgBmpB2ABqLQAACyIIQf8BcSEGAn8CQAJAAkAgCUEBaw4CAAECCyAGQQZqIQYMAQsgAS0AUUEBcUUEQCAEIAetQiCGQgKENwO4AQwDCyAQKALUAiAHSwRAIAdBBmwgBmpBDGohBgwBCyABEOsbDAELIAIoAogBIgsgBk0NFSACKAKEASAGQQJ0aigCAAsiBkEATgRAIARBBTYCuAEgBCAGNgK8AQwCCyAEIAI2AuwBIAQgATYC6AEgBEG4AWogBEHoAWogCSAHIAgQjwEgBCgCuAFBBUYNAQsgBCkDuAEiHEIgiKchAQJ/AkACQAJAQQIgHKciAkEDayIDIANBAk8bQQFrDgIBAgALIAUQ1SUMAgsgBUUNFiABIAVBAWsQhiQMAQsgAiABEIIkCyEFIABBAjYCACAAIAU2AgQMEQsgBCgCvAEhCCAEQegBaiAPKAIAIA8oAgQiBigCCEEBa0F4cWpBCGogAygCCCILIAMoAgwiAyAFIAogBigCIBEIAEEAIQYCQAJAIAAgBCgC6AEEfyAEKALsASEGIBJFDQIgBCAKNgLYASAEIAU2AtQBIAQgAzYC0AEgBCALNgLMASAEIA06ANwBIAQgDjYCyAEgBCARNgLEASAEQcQBaiAGELMRAkACfwJAIAQoAtQBIgwEQCAMQQFrIgUgBCgC0AFJDQELIAQoAsgBIQkgBCgCxAEhB0ECDAELIAQoAswBIAVqLQAAIQUgBCgCyAEhCSAEKALEASEHAkAgAUHYBGoiCBDBLw0AIAggBRC+HkUNACAEIAWtQiCGQgSENwPgAQwCCyABIAVqQdgAai0AAAsiCEH/AXEhBQJ/AkACQAJAIAdBAWsOAgEAAgsgAS0AUUEBcUUEQCAEIAmtQiCGQgKENwPgAQwECyAQKALUAiAJSwRAIAlBBmwgBWpBDGohBQwCCyABEOsbDAILIAVBBmohBQsgAigCiAEiDSAFTQ0DIAIoAoQBIAVBAnRqKAIACyIFQQBOBEAgBEEFNgLgASAEIAU2AuQBDAELIAQgAjYCvAEgBCABNgK4ASAEQeABaiAEQbgBaiAHIAkgCBCPAQsgBEGIAWogBEHgAWogDBDKESAEKAKMASEIIAQoAogBRQ0CIAAgCDYCBEECBSAGCzYCAAwSCyAFIA1BzOvDABDnFgALIAIoArABQQFxBEAgAiACKAJwIAIoArQBIgUgAigCuAEiB2sgByAFayAFIAdLG2o2AnALIAIgBjYCuAEgAiAGNgK0ASACQQE2ArABIAYgCkkEQCABQdgAaiEVIAFB2ARqIRMgCkEBaiEWIAFB2AJqIQwgDkEGbEEMaiEXIA6tQiCGQgKEIRwgAS0AUUEBcSEYA0ACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQCAIQf///z9NBEAgBiAKTw0PIAIoAnwhFCACKAJ4IQ0CQAJAA0AgBkEDaiIHIApPIA0gCCAMIAYgC2oiCS0AAGotAABqQQJ0aigCACIFQYCAgMAAT3INBCANIAUgDCAJQQFqLQAAai0AAGpBAnRqKAIAIghB////P0sNASANIAggDCAJQQJqLQAAai0AAGpBAnRqKAIAIgVB////P0sNAiANIAUgDCAJQQNqLQAAai0AAGpBAnRqKAIAIghB////P00EQCAGQQRqIgYgCkkNAQwTCwsgBSEJIAghBQwECyAGQQFqIQcgBSEJIAghBQwDCyAGQQJqIQcgCCEJDAILAkAgAigCsAEEQCACIAY2ArgBIAMgBk0EQCAGIANBzOzDABDnFgALIAIoAnwiByAMIAYgC2otAAAiCWotAAAgCEH///8/cWoiBU0NASACKAJ4IAVBAnRqKAIAIgVBAE4EQCAGIQcgBSEIDAULIAQgAjYCyAEgBCABNgLEASAEQfgAaiAEQcQBaiAIIAlBCHQQhQEgBCgCeEEBcUUEQCAEKAJ8IQggBiEHDAULIAYQ1SUhASAAQQI2AgAgACABNgIEDCQLDCcLDCcLIAghCSAGIQcLIAVBAE4EQCAFIQgMAQsgAigCsAFFDSQgAiAHNgK4ASAUIAkgDCAHIAtqLQAAIgVqLQAAaiIGTQ0CIA0gBkECdGooAgAiCEEATg0AIAQgAjYCyAEgBCABNgLEASAEQYABaiAEQcQBaiAJIAVBCHQQhQEgBCgCgAFBAXENASAEKAKEASEICwJAIAhB////P0sEQCAIQYCAgIABcUUEQCAIQYCAgMAAcQ0FIAhBgICAgARxDQYgCEGAgICAAnFFDSggAiAHEM0eIAMgB0sEQCAHIAtqLQAAIAcQhiQhASAAQQI2AgAgACABNgIEDCMLIAcgA0G47cMAEOcWAAsgBEG4AWogDygCACAPKAIEIgYoAghBAWtBeHFqQQhqIAsgAyAHIAogBigCIBEIACAEKAK4AUUEQCACIAoQzR5BACEFDA0LIAQoArwBIgYgB0sNAQsgByEGDAwLIBJFDQwgBCAGNgLgASAEIAo2AuQBIAMgCkkgBiAWS3INJkECIAZBAWsiByADTw0GGiAHIAtqLQAAIQUgExDBL0UNBAwFCyAHENUlIQEgAEECNgIAIAAgATYCBAweCyAGIBRB6OnDABDnFgALIAEgAiAIENYlIQEgAiAHEM0eIAAgBzYCCCAAIAE2AgQgAEEBNgIADBwLIAIgBxDNHiAAQQA2AgAMGwsgEyAFEL4eRQ0AIAQgBa1CIIZCBIQ3A+gBDAILIAUgFWotAAALIghB/wFxIQUCfwJAAkACQCARQQFrDgIAAQILIAVBBmohBQwBCyAYRQRAIAQgHDcD6AEMAwsgECgC1AIgDksEQCAFIBdqIQUMAQsgARDrGwwBCyACKAKIASIJIAVNDQIgAigChAEgBUECdGooAgALIgVBAE4EQCAEQQU2AugBIAQgBTYC7AEMAwsgBCACNgLIASAEIAE2AsQBIARB6AFqIARBxAFqIBEgDiAIEI8BIAQoAugBQQVGDQILIAQpA+gBIh1CIIghHCAAAn8CQAJAAkBBAiAdpyIBQQNrIgIgAkECTxtBAWsOAgABAgsgHKcgBxCGJAwCCyABIBynEIIkDAELIAYQ1SULNgIEQQIhBQwCCyAFIAlBzOvDABDnFgALIAQoAuwBIQgMAgsgACAFNgIADBQLIAZBAWohBgsgBiAKSQ0ACwsCfwJAAn8CQAJAAkAgAyAKTQRAIARB8ABqIAEgAiAIELQRIAQoAnBBAXENAiAEKAJ0IgZBgICAwABxDQEMBQsgBEHoAGogASACIAggCiALai0AACIFENwQIAQoAmhBAXENAiAKIQMgBCgCbCIGQYCAgMAAcQ0AIAZBgICAgAJxRQ0EIAUgChCGJAwDCyABIAIgBhDWJSEGQQEMBAsgAxDVJQwBCyAKENUlCyEFIABBAjYCACAAIAU2AgQMEgtBAAshBSACIAoQzR4gACADNgIIIAAgBjYCBCAAIAU2AgAMEAsgCCAGEL4eRQ0AIAQgBq1CIIZCBIQ3A7gBDAILIAEgBmpB2ABqLQAACyIIQf8BcSEGAn8CQAJAAkAgCUEBaw4CAAECCyAGQQZqIQYMAQsgAS0AUUEBcUUEQCAEIAetQiCGQgKENwO4AQwDCyASKALUAiAHSwRAIAdBBmwgBmpBDGohBgwBCyABEOsbDAELIAIoAogBIgwgBk0NAiACKAKEASAGQQJ0aigCAAsiBkEATgRAIARBBTYCuAEgBCAGNgK8AQwDCyAEIAI2AuwBIAQgATYC6AEgBEG4AWogBEHoAWogCSAHIAgQjwEgBCgCuAFBBUYNAgsgBCkDuAEiHEIgiKchAQJ/AkACQAJAQQIgHKciAkEDayIDIANBAk8bQQFrDgIBAgALIAUQ1SUMAgsgBUUNESABIAVBAWsQhiQMAQsgAiABEIIkCyEFIABBAjYCACAAIAU2AgQMDAsgBiAMQczrwwAQ5xYACyAEKAK8ASEJIARB6AFqIA8oAgAgDygCBCIGKAIIQQFrQXhxakEIaiADKAIIIgwgAygCDCIDIAUgCiAGKAIgEQgAQQAhBgJAAkAgACAEKALoAQR/IAQoAuwBIQYgFUUNAiAEIAo2AtgBIAQgBTYC1AEgBCADNgLQASAEIAw2AswBIAQgDToA3AEgBCAONgLIASAEIBE2AsQBIARBxAFqIAYQsxECQAJ/AkAgBCgC1AEiDQRAIA1BAWsiBSAEKALQAUkNAQsgBCgCyAEhCSAEKALEASEHQQIMAQsgBCgCzAEgBWotAAAhBSAEKALIASEJIAQoAsQBIQcCQCABQdgEaiIIEMEvDQAgCCAFEL4eRQ0AIAQgBa1CIIZCBIQ3A+ABDAILIAEgBWpB2ABqLQAACyIIQf8BcSEFAn8CQAJAAkAgB0EBaw4CAQACCyABLQBRQQFxRQRAIAQgCa1CIIZCAoQ3A+ABDAQLIBIoAtQCIAlLBEAgCUEGbCAFakEMaiEFDAILIAEQ6xsMAgsgBUEGaiEFCyACKAKIASIQIAVNDQMgAigChAEgBUECdGooAgALIgVBAE4EQCAEQQU2AuABIAQgBTYC5AEMAQsgBCACNgK8ASAEIAE2ArgBIARB4AFqIARBuAFqIAcgCSAIEI8BCyAEQbABaiAEQeABaiANEMoRIAQoArQBIQkgBCgCsAFFDQIgACAJNgIEQQIFIAYLNgIADAwLIAUgEEHM68MAEOcWAAsgAigCsAFBAXEEQCACIAIoAnAgAigCtAEiBSACKAK4ASIHayAHIAVrIAUgB0sbajYCcAsgAiAGNgK4ASACIAY2ArQBIAJBATYCsAECQAJAAkAgBiAKTwRADAELIAFB2ABqIRggAUHYBGohFiAKQQFqIRkgAUHYAmohDSAOQQZsQQxqIRogDq1CIIZCAoQhHCABLQBRQQFxIRsDQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkAgCUH///8/TQRAIAYgCkkNAQwTCyACKAKwAUUNJiACIAY2ArgBIAMgBksNASAGIANBzOzDABDnFgALIAIoAnwhFyACKAJ4IRADQCAGQQNqIgcgCk8gECAJIA0gBiAMaiIILQAAai0AAGpBAnRqKAIAIgVBgICAwABPcg0FIBAgBSANIAhBAWotAABqLQAAakECdGooAgAiCUH///8/Sw0DIBAgCSANIAhBAmotAABqLQAAakECdGooAgAiBUH///8/Sw0EIBAgBSANIAhBA2otAABqLQAAakECdGooAgAiCUH///8/Sw0CIAogBkEEaiIGSw0ACwwRCyACKAJ8IgcgDSAGIAxqLQAAIghqLQAAIAlB////P3FqIgVNDSUgAigCeCAFQQJ0aigCACIFQQBOBEAgBiEHIAUhCQwGCyAEIAI2AsgBIAQgATYCxAEgBEGgAWogBEHEAWogCSAIQQh0EIUBIAQoAqABQQFxRQRAIAQoAqQBIQkgBiEHDAYLIAYQ1SUhASAAQQI2AgAgACABNgIEDCALIAUhCCAJIQUMAwsgBkEBaiEHIAUhCCAJIQUMAgsgBkECaiEHIAkhCAwBCyAJIQggBiEHCyAFQQBOBEAgBSEJDAELIAIoArABRQ0fIAIgBzYCuAEgFyAIIA0gByAMai0AACIFai0AAGoiBk0NASAQIAZBAnRqKAIAIglBAE4NACAEIAI2AsgBIAQgATYCxAEgBEGoAWogBEHEAWogCCAFQQh0EIUBIAQoAqgBQQFxDQIgBCgCrAEhCQsgCUH///8/TQ0LIAlBgICAgAFxRQRAAkACQCAJQYCAgMAAcUUEQCAJQYCAgIAEcQ0BIAlBgICAgAJxDQIMJAtBASETQQAhFCASKALUAkEBRg0MIAEgAiAJEIgkIgYoAgAgBigCBEEAEOkUIRQMDAsgAiAHEM0eDBELIAIgBxDNHiADIAdLBEAgByAMai0AACAHEIYkIQEgAEECNgIAIAAgATYCBAwcCyAHIANBuO3DABDnFgALIARBuAFqIA8oAgAgDygCBCIGKAIIQQFrQXhxakEIaiAMIAMgByAKIAYoAiARCAAgBCgCuAFFDQ4gBCgCvAEiBiAHTQ0LIBVFDQggBCAGNgLgASAEIAo2AuQBIAMgCkkgBiAZS3INIUECIAZBAWsiCCADTw0EGiAIIAxqLQAAIQUgFhDBL0UNAgwDCyAGIBdB6OnDABDnFgALIAcQ1SUhASAAQQI2AgAgACABNgIEDBgLIBYgBRC+HkUNACAEIAWtQiCGQgSENwPoAQwCCyAFIBhqLQAACyIHQf8BcSEFAn8CQAJAAkAgEUEBaw4CAAECCyAFQQZqIQUMAQsgG0UEQCAEIBw3A+gBDAMLIBIoAtQCIA5LBEAgBSAaaiEFDAELIAEQ6xsMAQsgAigCiAEiCSAFTQ0CIAIoAoQBIAVBAnRqKAIACyIFQQBOBEAgBEEFNgLoASAEIAU2AuwBDAMLIAQgAjYCyAEgBCABNgLEASAEQegBaiAEQcQBaiARIA4gBxCPASAEKALoAUEFRg0CCyAEKQPoASIdQiCIIRwCfwJAAkACQEECIB2nIgFBA2siAiACQQJPG0EBaw4CAAECCyAcpyAIEIYkDAILIAEgHKcQgiQMAQsgBhDVJQshBSAAQQI2AgAgACAFNgIEDBQLIAUgCUHM68MAEOcWAAsgBCgC7AEhCQsgBiAKTw0EDAMLIAchCwwBCyAGIQcLIAdBAWoiBiAKSQ0ACwsCQAJ/AkACQCADIApNBEAgBEGYAWogASACIAkQtBEgBCgCmAFBAXENASAEKAKcASIFQYCAgMAAcUUNBQwECyAEQZABaiABIAIgCSAKIAxqLQAAIgYQ3BAgBCgCkAFBAXENASAKIQMgBCgClAEiBUGAgIDAAHENAyAFQYCAgIACcUUNBCAGIAoQhiQMAgsgAxDVJQwBCyAKENUlCyEFIABBAjYCACAAIAU2AgQMDQtBASETIAEgAiAFENYlIRQgAyELCyACIAoQzR4LIAAgCzYCCCAAIBQ2AgQgACATNgIADAoLIARBKGogByAGQQN2QRBxaiIHKQMAIAdBCGopAwAgBkH/AHEQ+xcgBCkDKEIBg1ANACAEIAatQiCGQgSENwO4AQwCCyABIAZqQdgAai0AAAsiB0H/AXEhBgJ/AkACQAJAIAlBAWsOAgABAgsgBkEGaiEGDAELIAEtAFFBAXFFBEAgBCAIrUIghkIChDcDuAEMAwsgASgC+AQoAtQCIAhLBEAgCEEGbCAGakEMaiEGDAELIAEQ6xsMAQsgAigCiAEiCyAGTQ0KIAIoAoQBIAZBAnRqKAIACyIGQQBOBEAgBEEFNgK4ASAEIAY2ArwBDAILIAQgAjYC7AEgBCABNgLoASAEQbgBaiAEQegBaiAJIAggBxCPASAEKAK4AUEFRg0BCyAEKQO4ASIcQiCIpyEBAn8CQAJAAkBBAiAcpyICQQNrIgMgA0ECTxtBAWsOAgABAgsgBUUNDCABIAVBAWsQhiQMAgsgAiABEIIkDAELIAUQ1SULIQUgAEECNgIAIAAgBTYCBAwGCyACKAKwAUEBcQRAIAIgAigCcCACKAK0ASIGIAIoArgBIgdrIAcgBmsgBiAHSxtqNgJwCyAEKAK8ASEJIAIgBTYCuAEgAiAFNgK0ASACQQE2ArABAkAgBSAKTwRAIAMoAgwhCwwBCyABQdgCaiEOIAMoAgwhCyADKAIIIQwDQAJAAkACQAJAAkACQAJAAkACQCAJQf///z9NBEAgBSAKTw0JIAIoAnwhESACKAJ4IQ8CQAJAA0AgBUEDaiIHIApPIA8gCSAOIAUgDGoiCC0AAGotAABqQQJ0aigCACIGQYCAgMAAT3INBCAPIAYgDiAIQQFqLQAAai0AAGpBAnRqKAIAIglB////P0sNASAPIAkgDiAIQQJqLQAAai0AAGpBAnRqKAIAIgZB////P0sNAiAPIAYgDiAIQQNqLQAAai0AAGpBAnRqKAIAIglB////P00EQCAFQQRqIgUgCkkNAQwNCwsgBiEIIAkhBgwECyAFQQFqIQcgBiEIIAkhBgwDCyAFQQJqIQcgCSEIDAILAkACQCACKAKwAQRAIAIgBTYCuAEgBSALTwRAIAUgC0HM7MMAEOcWAAsgAigCfCIHIA4gBSAMai0AACIIai0AACAJQf///z9xaiIGTQ0BIAIoAnggBkECdGooAgAiBkEATg0CIAQgAjYCyAEgBCABNgLEASAEQRhqIARBxAFqIAkgCEEIdBCFASAEKAIYQQFxRQRAIAQoAhwhBgwDCyAFENUlIQEgAEECNgIAIAAgATYCBAwTCwwWCyAGIAdB6OnDABDnFgALIAUhBwwCCyAJIQggBSEHCyAGQQBODQAgAigCsAFFDRIgAiAHNgK4ASARIAggDiAHIAxqLQAAIgVqLQAAaiIGTQ0BIA8gBkECdGooAgAiBkEATg0AIAQgAjYCyAEgBCABNgLEASAEQSBqIARBxAFqIAggBUEIdBCFASAEKAIgQQFxDQIgBCgCJCEGCyAGQYCAgIABcSAGQYCAgMAASXINBCAGQYCAgMAAcQ0CIAZBgICAgARxDQMgBkGAgICAAnFFDRMgAiAHEM0eIAcgC0kEQCAHIAxqLQAAIAcQhiQhASAAQQI2AgAgACABNgIEDA4LIAcgC0G47cMAEOcWAAsgBiARQejpwwAQ5xYACyAHENUlIQEgAEECNgIAIAAgATYCBAwLCyABIAIgBhDWJSEBIAIgBxDNHiAAIAc2AgggACABNgIEIABBATYCAAwKCyACIAcQzR4gAEEANgIADAkLIAYhCSAHIQULIAVBAWoiBSAKSQ0ACwsCfwJAAkACQAJ/AkACQAJAAkAgCiALTwRAIAIoAnwiCCABLQDXBEEBaiIGIAlB////P3FqIgNNDQYgAigCeCADQQJ0aigCACIFQQBIBEAgBCACNgLIASAEIAE2AsQBIARBEGogBEHEAWogCSAGQRB0QQFyEIUBIAQoAhBBAXENBSAEKAIUIQULIAVBgICAwABxDQEMCAsgAigCfCIIIAEgAygCCCAKai0AACIDakHYAmotAAAgCUH///8/cWoiBk0NBiACKAJ4IAZBAnRqKAIAIgVBAEgEQCAEIAI2AsgBIAQgATYCxAEgBEEIaiAEQcQBaiAJIANBCHQQhQEgBCgCCEEBcQ0CIAQoAgwhBQsgBUGAgIDAAHFFDQIgCiELCyABIAIgBRDWJSEIQQEMBwsgChDVJQwCCyAFQYCAgIACcUUNBCADIAoQhiQMAQsgCxDVJQshBSAAQQI2AgAgACAFNgIEDAkLIAMgCEH46cMAEOcWAAsgBiAIQejpwwAQ5xYAC0EACyEGIAIoArABIAJBADYCsAFBAXEEQCACKAK0ASEBIAAgCzYCCCAAIAg2AgQgACAGNgIAIAIgAigCcCABIAprIAogAWsgASAKSxtqNgJwDAYLQZzrwwBBH0G868MAEMkZAAsgBEHYAGogByAGQQN2QRBxaiIHKQMAIAdBCGopAwAgBkH/AHEQ+xcgBCkDWEIBg1ANACAEIAatQiCGQgSENwO4AQwCCyABIAZqQdgAai0AAAsiB0H/AXEhBgJ/AkACQAJAIAlBAWsOAgABAgsgBkEGaiEGDAELIAEtAFFBAXFFBEAgBCAIrUIghkIChDcDuAEMAwsgASgC+AQoAtQCIAhLBEAgCEEGbCAGakEMaiEGDAELIAEQ6xsMAQsgAigCiAEiCyAGTQ0FIAIoAoQBIAZBAnRqKAIACyIGQQBOBEAgBEEFNgK4ASAEIAY2ArwBDAILIAQgAjYC7AEgBCABNgLoASAEQbgBaiAEQegBaiAJIAggBxCPASAEKAK4AUEFRg0BCyAEKQO4ASIcQiCIpyEBAn8CQAJAAkBBAiAcpyICQQNrIgMgA0ECTxtBAWsOAgABAgsgBUUNByABIAVBAWsQhiQMAgsgAiABEIIkDAELIAUQ1SULIQUgAEECNgIAIAAgBTYCBAwBCyACKAKwAUEBcQRAIAIgAigCcCACKAK0ASIGIAIoArgBIgdrIAcgBmsgBiAHSxtqNgJwCyAEKAK8ASEGIAIgBTYCuAEgAiAFNgK0ASACQQE2ArABAkAgBSAKTwRAIAMoAgwhCwwBCyABQdgCaiEPIAEoAvgEIRMgAygCDCELIAMoAgghDQNAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAGQf///z9NBEAgBSAKSQ0BDA0LIAIoArABRQ0UIAIgBTYCuAEgBSALSQ0BIAUgC0HM7MMAEOcWAAsgAigCfCESIAIoAnghEQNAIAVBA2oiByAKTyARIAYgDyAFIA1qIggtAABqLQAAakECdGooAgAiCUGAgIDAAE9yDQYgESAJIA8gCEEBai0AAGotAABqQQJ0aigCACIGQf///z9LDQQgESAGIA8gCEECai0AAGotAABqQQJ0aigCACIJQf///z9LDQUgESAJIA8gCEEDai0AAGotAABqQQJ0aigCACIGQf///z9LDQMgCiAFQQRqIgVLDQALDAsLIAIoAnwiCCAPIAUgDWotAAAiCWotAAAgBkH///8/cWoiB00NACACKAJ4IAdBAnRqKAIAIgdBAE4EQCAHIQYgBSEHDAcLIAQgAjYCyAEgBCABNgLEASAEQcgAaiAEQcQBaiAGIAlBCHQQhQEgBCgCSEEBcUUEQCAEKAJMIQYgBSEHDAcLIAUQ1SUhASAAQQI2AgAgACABNgIEDA4LIAcgCEHo6cMAEOcWAAsgBiEIIAkhBgwDCyAFQQFqIQcgBiEIIAkhBgwCCyAFQQJqIQcgCSEIDAELIAkhCCAFIQcLIAhBAE4EQCAIIQYMAQsgAigCsAFFDQwgAiAHNgK4ASASIAYgDyAHIA1qLQAAIghqLQAAaiIFTQ0BIBEgBUECdGooAgAiBUEATgRAIAUhBgwBCyAEIAI2AsgBIAQgATYCxAEgBEHQAGogBEHEAWogBiAIQQh0EIUBIAQoAlBBAXENAiAEKAJUIQYLIAZBgICAgAFxIAZBgICAwABJcg0EAkACQCAGQYCAgMAAcUUEQCAGQYCAgIAEcQ0BIAZBgICAgAJxDQIMEAtBASEMQQAhECATKALUAkEBRg0EIAEgAiAGEIgkIgUoAgAgBSgCBEEAEOkUIRAMBAsgAiAHEM0eIAAgDjYCCCAAIBA2AgQgACAMNgIADAgLIAIgBxDNHiAHIAtJBEAgByANai0AACAHEIYkIQEgAEECNgIAIAAgATYCBAwICyAHIAtBuO3DABDnFgALIAUgEkHo6cMAEOcWAAsgBxDVJSEBIABBAjYCACAAIAE2AgQMBQsgByEODAELIAUhBwsgB0EBaiIFIApJDQALCwJAAkACQAJ/AkAgCiALTwRAIAIoAnwiBSABLQDXBEEBaiIHIAZB////P3FqIgNNDQMgAigCeCADQQJ0aigCACIFQQBIBEAgBCACNgLIASAEIAE2AsQBIARBQGsgBEHEAWogBiAHQRB0QQFyEIUBIAQoAkBBAXENAiAEKAJEIQULIAVBgICAwABxRQ0FDAQLIAIoAnwiByABIAMoAgggCmotAAAiA2pB2AJqLQAAIAZB////P3FqIgVNDQoCQAJAIAIoAnggBUECdGooAgAiBUEASARAIAQgAjYCyAEgBCABNgLEASAEQThqIARBxAFqIAYgA0EIdBCFASAEKAI4QQFxDQEgBCgCPCEFCyAFQYCAgMAAcUUNASAKIQsMBQsgChDVJQwCCyAFQYCAgIACcUUNBCADIAoQhiQMAQsgCxDVJQshBSAAQQI2AgAgACAFNgIEDAMLIAMgBUH46cMAEOcWAAtBASEMIAEgAiAFENYlIRAgCyEOCyACKAKwASACQQA2ArABQQFxRQ0BIAIoArQBIQEgACAONgIIIAAgEDYCBCAAIAw2AgAgAiACKAJwIAEgCmsgCiABayABIApLG2o2AnALIARBgAJqJAAPC0Gc68MAQR9BvOvDABDJGQALIAYgC0HM68MAEOcWAAtBiOrDAEEkQazqwwAQyRkAC0Hs6sMAQR9BjOvDABDJGQALIAUgB0Ho6cMAEOcWAAsgBEEBNgLIASAEQaDtwwA2AsQBIARCADcC0AEgBCAEQfwBajYCzAEgBEHEAWpBqO3DABCSJgALIARBAjYCyAEgBEGIm+AANgLEASAEQgI3AtABIARBDDYC9AEgBEGAATYC7AEgBCADNgL4ASAEIARB6AFqNgLMASAEIARB+AFqNgLwASAEIARB4AFqNgLoASAEQcQBakGYm+AAEJImAAvVSQIVfwR+IwBBwAFrIgIkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABKAIAQQFrDhIBAgMEBQYHCAkKCwwNDg8QERIACyABKAIYIQMgASkDECEXIAJBOGogAUEEahCbCyAAQQA2AgAgACACKQI4NwIEIAIgFzcCRCAAQQxqIAJBQGspAgA3AgAgAiADNgJMIABBFGogAkHIAGopAgA3AgAMGQsgAEEBNgIAIAAgASkCBDcCBAwYCyAAQQI2AgAgACABKQIENwIEDBcLIAEpAgwhFyABKAIEIQMQvikhCCACQThqIgsgAxA1IAhBOGogAkHwAGopAwA3AwAgCEEwaiACQegAaikDADcDACAIQShqIAJB4ABqIgQpAwA3AwAgCEEgaiACQdgAaiIFKQMANwMAIAhBGGogAkHQAGoiBykDADcDACAIQRBqIAJByABqIgopAwA3AwAgCEEIaiACQUBrIgMpAwA3AwAgCCACKQM4NwMAEMcpIQkgCyABKAIIED8gCUEoaiAEKQMANwMAIAlBIGogBSkDADcDACAJQRhqIAcpAwA3AwAgCUEQaiAKKQMANwMAIAlBCGogAykDADcDACAJIAIpAzg3AwAgACAXNwIMIAAgCTYCCCAAIAg2AgQgAEEDNgIADBYLIAEoAgghByABKAIEIQoCQCABKAIMIgNFBEBBACEBDAELEL4pIQEgAkE4aiADEDUgAUE4aiACQfAAaikDADcDACABQTBqIAJB6ABqKQMANwMAIAFBKGogAkHgAGopAwA3AwAgAUEgaiACQdgAaikDADcDACABQRhqIAJB0ABqKQMANwMAIAFBEGogAkHIAGopAwA3AwAgAUEIaiACQUBrKQMANwMAIAEgAikDODcDAAsgACABNgIMIAAgBzYCCCAAIAo2AgQgAEEENgIADBULIAEoAiAhCSABKAIcIQQgASgCGCEFIAEoAgwhByABKAIIIQogASkDECIXQgODUARAIBenIgMgAygCACIDQQFqNgIAIANBAEgNEgsgAS0AJCEDEMcpIQggAkE4aiABKAIoED8gCEEoaiACQeAAaikDADcDACAIQSBqIAJB2ABqKQMANwMAIAhBGGogAkHQAGopAwA3AwAgCEEQaiACQcgAaikDADcDACAIQQhqIAJBQGspAwA3AwAgCCACKQM4NwMAIAAgCDYCKCAAIAM6ACQgACAJNgIgIAAgBDYCHCAAIAU2AhggACAXNwMQIAAgBzYCDCAAIAo2AgggAEEFNgIADBQLIAEoAgwhByABKAIIIQogAS0AJCIDQQJHDQwMDQsgASgCDCEHIAEoAgghCiABLQAkIgNBAkcNDQwOCyABKAIQIQcgASgCDCEKIAEoAgQhAxC+KSENIAJBOGoiCyADEDUgDUE4aiACQfAAaikDADcDACANQTBqIAJB6ABqKQMANwMAIA1BKGogAkHgAGoiEikDADcDACANQSBqIAJB2ABqIggpAwA3AwAgDUEYaiACQdAAaiIJKQMANwMAIA1BEGogAkHIAGoiBCkDADcDACANQQhqIAJBQGsiBSkDADcDACANIAIpAzg3AwAQxykhFCALIAEoAggQPyAUQShqIBIpAwA3AwAgFEEgaiAIKQMANwMAIBRBGGogCSkDADcDACAUQRBqIAQpAwA3AwAgFEEIaiAFKQMANwMAIBQgAikDODcDAAJAIAEoAhQiA0UEQEEAIQEMAQsQxykhASACQThqIAMQPyABQShqIBIpAwA3AwAgAUEgaiAIKQMANwMAIAFBGGogCSkDADcDACABQRBqIAQpAwA3AwAgAUEIaiAFKQMANwMAIAEgAikDODcDAAsgACABNgIUIAAgBzYCECAAIAo2AgwgACAUNgIIIAAgDTYCBCAAQQg2AgAMEQsgASgCGCENIAEoAhQhFCABKAIQIQMQvikhFiACQThqIgQgAxA1IBZBOGogAkHwAGopAwA3AwAgFkEwaiACQegAaikDADcDACAWQShqIAJB4ABqKQMANwMAIBZBIGogAkHYAGopAwA3AwAgFkEYaiACQdAAaikDADcDACAWQRBqIAJByABqKQMANwMAIBZBCGogAkFAaykDADcDACAWIAIpAzg3AwAgASgCCCEMIAQgASgCDCIVQQRBGBDeECACKAI8IQcgAigCOEEBRg0OIAIoAkAhDgJAIAdFDQAgDCAVQRhsaiESIAchBQNAIAwgEkYNASAMKAIQIQggDCgCDCEJAkAgDCgCFCIBRQRAQQAhCwwBCxC+KSELIAJBOGogARA1IAtBOGogAkHwAGopAwA3AwAgC0EwaiACQegAaikDADcDACALQShqIAJB4ABqKQMANwMAIAtBIGogAkHYAGopAwA3AwAgC0EYaiACQdAAaikDADcDACALQRBqIAJByABqKQMANwMAIAtBCGogAkFAaykDADcDACALIAIpAzg3AwALIAwoAgQhBiACQThqIAwoAggiD0EIQTAQ3hAgAigCPCEKIAIoAjhBAUYNESAOIBNBGGxqIREgAigCQCEDAkAgCkUNACAPQTBsIRAgAyEBIAohBANAIBBFDQEgAkE4aiAGED8gAUEoaiACQeAAaikDADcDACABQSBqIAJB2ABqKQMANwMAIAFBGGogAkHQAGopAwA3AwAgAUEQaiACQcgAaikDADcDACABQQhqIAJBQGspAwA3AwAgASACKQM4NwMAIBBBMGshECABQTBqIQEgBkEwaiEGIARBAWsiBA0ACwsgE0EBaiETIAxBGGohDCARIAs2AhQgESAINgIQIBEgCTYCDCARIA82AgggESADNgIEIBEgCjYCACAFQQFrIgUNAAsLIAAgDTYCGCAAIBQ2AhQgACAWNgIQIAAgFTYCDCAAIA42AgggACAHNgIEIABBCTYCAAwQCyABKQMIIRcgASgCBCEBEL4pIQMgAkE4aiABEDUgA0E4aiACQfAAaikDADcDACADQTBqIAJB6ABqKQMANwMAIANBKGogAkHgAGopAwA3AwAgA0EgaiACQdgAaikDADcDACADQRhqIAJB0ABqKQMANwMAIANBEGogAkHIAGopAwA3AwAgA0EIaiACQUBrKQMANwMAIAMgAikDODcDACAAIBc3AwggACADNgIEIABBCjYCAAwPC0Ggv+QALQAAGiABKAIEIQdBgAEQhAEiBUUNCyAHKAJ8IQogBygCeCEDIAcpAlQhFyAHKAJcIQEgAkEIaiAHQcgAahCbCyACIAE2AhwgAiAXNwIUQQghECAHKAIAIgFBCEcEQEEHIRAgBygCRCEMIAcoAkAhBCABQQdHBEAgAkE4aiAHEJcDIAJBoAFqIAJBxABqKQIANwMAIAJBqAFqIAJBzABqKQIANwMAIAJBsAFqIAJB1ABqKQIANwMAIAJBuAFqIAJB3ABqKAIANgIAIAIgAikCPDcDmAEgAigCOCEQCyAHKAI8IQEgBykCNCEXIAJBIGogB0EoahCbCyACQUBrIAJBoAFqKQMANwMAIAJByABqIAJBqAFqKQMANwMAIAJB0ABqIAJBsAFqKQMANwMAIAJB2ABqIAJBuAFqKAIANgIAIAIgFzcCLCACQeQAaiACQShqKQIANwIAIAIgATYCNCACQewAaiACQTBqKQIANwIAIAIgAikDmAE3AzggAiACKQIgNwJcC0GAgICAeCELIAcoAmBBgICAgHhHBEAgBygCdCEBIAcpAmwhFyACQZgBaiAHQeAAahCbCyACQShqIBc3AwAgAkEwaiABNgIAIAIgAikCnAE3AyAgAigCmAEhCwsgBSAQNgIAIAUgAikDODcCBCAFIAw2AkQgBSAENgJAIAVBDGogAkFAaykDADcCACAFQRRqIAJByABqKQMANwIAIAVBHGogAkHQAGopAwA3AgAgBUEkaiACQdgAaikDADcCACAFQSxqIAJB4ABqKQMANwIAIAVBNGogAkHoAGopAwA3AgAgBUE8aiACQfAAaigCADYCACAFIAs2AmAgBSAKNgJ8IAUgAzYCeCAFQdgAaiACQRhqKQMANwMAIAVB0ABqIAJBEGopAwA3AwAgBSACKQMINwNIIAVB9ABqIAJBMGooAgA2AgAgBUHsAGogAkEoaikDADcCACAFIAIpAyA3AmQgAEELNgIAIAAgBTYCBAwOCyABKQIMIRcgASgCBCEDEL4pIQggAkE4aiILIAMQNSAIQThqIAJB8ABqKQMANwMAIAhBMGogAkHoAGopAwA3AwAgCEEoaiACQeAAaiIEKQMANwMAIAhBIGogAkHYAGoiBSkDADcDACAIQRhqIAJB0ABqIgcpAwA3AwAgCEEQaiACQcgAaiIKKQMANwMAIAhBCGogAkFAayIDKQMANwMAIAggAikDODcDABDHKSEJIAsgASgCCBA/IAlBKGogBCkDADcDACAJQSBqIAUpAwA3AwAgCUEYaiAHKQMANwMAIAlBEGogCikDADcDACAJQQhqIAMpAwA3AwAgCSACKQM4NwMAIAAgFzcCDCAAIAk2AgggACAINgIEIABBDDYCAAwNCyABKQIMIRcgASgCBCEDEL4pIQggAkE4aiILIAMQNSAIQThqIAJB8ABqKQMANwMAIAhBMGogAkHoAGopAwA3AwAgCEEoaiACQeAAaiIEKQMANwMAIAhBIGogAkHYAGoiBSkDADcDACAIQRhqIAJB0ABqIgcpAwA3AwAgCEEQaiACQcgAaiIKKQMANwMAIAhBCGogAkFAayIDKQMANwMAIAggAikDODcDABDHKSEJIAsgASgCCBA/IAlBKGogBCkDADcDACAJQSBqIAUpAwA3AwAgCUEYaiAHKQMANwMAIAlBEGogCikDADcDACAJQQhqIAMpAwA3AwAgCSACKQM4NwMAIAAgFzcCDCAAIAk2AgggACAINgIEIABBDTYCAAwMC0ECIQsgASgCFCEJIAEoAhAhBQJAIAEoAgQiA0ECRg0AQQEhCyABKAIIIQQgA0EBcUUEQBDFKSEMIAQoAhQhByAEKQIMIRcgBC8BGCEKIAJBOGogBBCvBiACQdAAaiIDIAo7AQAgDCACKQI4NwIAIAIgFzcCRCAMQQhqIAJBQGspAgA3AgAgAiAHNgJMIAxBEGogAkHIAGopAgA3AgAgDEEYaiADKAIANgIAQQAhCwwBCxC+KSEMIAJBOGogBBA1IAxBOGogAkHwAGopAwA3AwAgDEEwaiACQegAaikDADcDACAMQShqIAJB4ABqKQMANwMAIAxBIGogAkHYAGopAwA3AwAgDEEYaiACQdAAaikDADcDACAMQRBqIAJByABqKQMANwMAIAxBCGogAkFAaykDADcDACAMIAIpAzg3AwALQQAhBCABKAIYIgMEQBC+KSEEIAJBOGogAxA1IARBOGogAkHwAGopAwA3AwAgBEEwaiACQegAaikDADcDACAEQShqIAJB4ABqKQMANwMAIARBIGogAkHYAGopAwA3AwAgBEEYaiACQdAAaikDADcDACAEQRBqIAJByABqKQMANwMAIARBCGogAkFAaykDADcDACAEIAIpAzg3AwALIAEoAhwiAwRAEL4pIRAgAkE4aiADEDUgEEE4aiACQfAAaikDADcDACAQQTBqIAJB6ABqKQMANwMAIBBBKGogAkHgAGopAwA3AwAgEEEgaiACQdgAaikDADcDACAQQRhqIAJB0ABqKQMANwMAIBBBEGogAkHIAGopAwA3AwAgEEEIaiACQUBrKQMANwMAIBAgAikDODcDAAsQxykhAyACQThqIAEoAgwQPyADQShqIAJB4ABqKQMANwMAIANBIGogAkHYAGopAwA3AwAgA0EYaiACQdAAaikDADcDACADQRBqIAJByABqKQMANwMAIANBCGogAkFAaykDADcDACADIAIpAzg3AwAgACAQNgIcIAAgBDYCGCAAIAk2AhQgACAFNgIQIAAgAzYCDCAAIAw2AgggACALNgIEIABBDjYCAAwLCyABKAIIIQUgASgCGCEUIAEoAhQhEgJAAkACQAJAIAEoAgQiCEEBaw4CAQIACxDFKSEEIAUoAhQhByAFKQIMIRcgBS8BGCEKIAJBOGogBRCvBiACQdAAaiIDIAo7AQAgBCACKQI4NwIAIAIgFzcCRCAEQQhqIAJBQGspAgA3AgAgAiAHNgJMIARBEGogAkHIAGopAgA3AgAgBEEYaiADKAIANgIADAILEMYpIQQgBS0AFCEDIAUpAgwhFyACQThqIAUQrwYgBCACKQI4NwIAIAIgFzcCRCAEQQhqIAJBQGspAgA3AgAgAiADOgBMIARBEGogAkHIAGopAgA3AgAMAQsQwSkhBCACQThqIAUQlwMgBEEgaiACQdgAaikDADcDACAEQRhqIAJB0ABqKQMANwMAIARBEGogAkHIAGopAwA3AwAgBEEIaiACQUBrKQMANwMAIAQgAikDODcDAAsgASgCDCEDEL4pIQ8gAkE4aiILIAMQNSAPQThqIAJB8ABqKQMANwMAIA9BMGogAkHoAGopAwA3AwAgD0EoaiACQeAAaiIJKQMANwMAIA9BIGogAkHYAGoiBSkDADcDACAPQRhqIAJB0ABqIgcpAwA3AwAgD0EQaiACQcgAaiIKKQMANwMAIA9BCGogAkFAayIDKQMANwMAIA8gAikDODcDABDHKSENIAsgASgCEBA/IA1BKGogCSkDADcDACANQSBqIAUpAwA3AwAgDUEYaiAHKQMANwMAIA1BEGogCikDADcDACANQQhqIAMpAwA3AwAgDSACKQM4NwMAIAAgFDYCGCAAIBI2AhQgACANNgIQIAAgDzYCDCAAIAQ2AgggACAINgIEIABBDzYCAAwKCyABKAIIIQUgAS0AHCENIAEoAhghFCABKAIUIRICQAJAAkACQCABKAIEIghBAWsOAgECAAsQxSkhBCAFKAIUIQcgBSkCDCEXIAUvARghCiACQThqIAUQrwYgAkHQAGoiAyAKOwEAIAQgAikCODcCACACIBc3AkQgBEEIaiACQUBrKQIANwIAIAIgBzYCTCAEQRBqIAJByABqKQIANwIAIARBGGogAygCADYCAAwCCxDGKSEEIAUtABQhAyAFKQIMIRcgAkE4aiAFEK8GIAQgAikCODcCACACIBc3AkQgBEEIaiACQUBrKQIANwIAIAIgAzoATCAEQRBqIAJByABqKQIANwIADAELEMEpIQQgAkE4aiAFEJcDIARBIGogAkHYAGopAwA3AwAgBEEYaiACQdAAaikDADcDACAEQRBqIAJByABqKQMANwMAIARBCGogAkFAaykDADcDACAEIAIpAzg3AwALIAEoAgwhAxC+KSEOIAJBOGoiCyADEDUgDkE4aiACQfAAaikDADcDACAOQTBqIAJB6ABqKQMANwMAIA5BKGogAkHgAGoiCSkDADcDACAOQSBqIAJB2ABqIgUpAwA3AwAgDkEYaiACQdAAaiIHKQMANwMAIA5BEGogAkHIAGoiCikDADcDACAOQQhqIAJBQGsiAykDADcDACAOIAIpAzg3AwAQxykhDyALIAEoAhAQPyAPQShqIAkpAwA3AwAgD0EgaiAFKQMANwMAIA9BGGogBykDADcDACAPQRBqIAopAwA3AwAgD0EIaiADKQMANwMAIA8gAikDODcDACAAIA06ABwgACAUNgIYIAAgEjYCFCAAIA82AhAgACAONgIMIAAgBDYCCCAAIAg2AgQgAEEQNgIADAkLAkACQAJAAkACQAJAAkACQAJAIAEoAggiFEEBaw4HAQIDBAUGBwALIAEoAiAhBCABKAIcIQwgASgCGCELIAEpAxAiGEIDg1AEQCAYpyIDIAMoAgAiA0EBajYCACADQQBIDQ4LIAEtACwhESABLQAkIRUgASgCKCEOEL4pIQYgDigCLCESIA4oAighCiAOKAIkIQggAkEgaiAOEL0JIAJBmAFqIA5BDGoQeCAOKAIwIgEEQBC+KSETIAJBOGogARA1IBNBOGogAkHwAGopAwA3AwAgE0EwaiACQegAaikDADcDACATQShqIAJB4ABqKQMANwMAIBNBIGogAkHYAGopAwA3AwAgE0EYaiACQdAAaikDADcDACATQRBqIAJByABqKQMANwMAIBNBCGogAkFAaykDADcDACATIAIpAzg3AwALIA4tADwhCSAOKAI0IgcEQBDEKSEPIAcoAgwhAyAHKAIQIQEgAkE4aiAHEL0HIA9BEGogATYCACAPIAIpAjg3AgAgAiADNgJEIA9BCGogAkFAaykCADcCAAsCQCAOKAI4IgdFBEAMAQsQxCkhDSAHKAIMIQMgBygCECEBIAJBOGogBxDJDiANQRBqIAE2AgAgDSACKQI4NwIAIAIgAzYCRCANQQhqIAJBQGspAgA3AgALIAJB0ABqIgUgDkEYahC/BiACQeAAaiIBIAo2AgAgAkFAayIHIAJBKGooAgA2AgAgAkHMAGogAkGgAWooAgA2AgAgAkHoAGoiCiATNgIAIAJB8ABqIgMgDTYCACACIBI2AmQgAiAINgJcIAIgAikCICIXNwM4IAIgAikCmAE3AkQgAiAJOgB0IAIgDzYCbCAGQThqIAMpAwA3AgAgBkEwaiAKKQMANwIAIAZBKGogASkDADcCACAGQSBqIAJB2ABqKQMANwIAIAZBGGogBSkDADcCACAGQRBqIAJByABqKQMANwIAIAZBCGogBykDADcCACAGIBc3AgAMBwsgASgCICEEIAEoAhwhDCABKAIYIQsgASkDECIYQgODUARAIBinIgMgAygCACIDQQFqNgIAIANBAEgNDQsgAS0ALCERIAEtACQhFSABKAIoIQ4QwykhBiACQQhqIA4Q1gkgAkEgaiAOQQxqEL0JQYCAgIB4IQUgDigCOCESIA4oAjQhCCAOKAIwIQkgDigCGEGAgICAeEcEQCAOKAIsIQEgDikCJCEXIAJBOGogDkEYahCbCyACQaABaiAXNwMAIAJBqAFqIAE2AgAgAiACKQI8NwOYASACKAI4IQULIA4tAEUhByAOLQBEIQogDigCPCINBEAQxCkhEyANKAIMIQMgDSgCECEBIAJBOGogDRC9ByATQRBqIAE2AgAgEyACKQI4NwIAIAIgAzYCRCATQQhqIAJBQGspAgA3AgALIA4oAkAiAQRAEL8pIQ8gASkCBCEXIAEoAgAhAxDAKSACQThqIhAgAxB9IBBB4AAQgQkhASAPIBc3AgQgDyABNgIACyACQUBrIgEgAkEQaigCADYCACACQcwAaiACQShqKAIANgIAIAIgAikCCCIXNwM4IAIgAikCIDcCRCAGQRBqIAJByABqKQMANwIAIAZBCGogASkDADcCACAGIBc3AgAgBiAFNgIYIAYgBzoARSAGIAo6AEQgBiAPNgJAIAYgEzYCPCAGIBI2AjggBiAINgI0IAYgCTYCMCAGIAIpA5gBNwIcIAZBJGogAkGgAWopAwA3AgAgBkEsaiACQagBaigCADYCAAwGCyABKAIMIQMQxSkhASADKAIUIQQgAykCDCEYIAMvARghDCACQThqIAMQrwYgAkHQAGoiBiAMOwEAIAEgAikCODcCACACIBg3AkQgAUEIaiACQUBrKQIANwIAIAIgBDYCTCABQRBqIAJByABqKQIANwIAIAFBGGogBigCADYCAAwFCyABKAIMIQYQxikhASAGLQAUIQQgBikCDCEYIAJBOGogBhCvBiABIAIpAjg3AgAgAiAYNwJEIAFBCGogAkFAaykCADcCACACIAQ6AEwgAUEQaiACQcgAaikCADcCAAwECyABKAIMIQYQwykhASAGKAIYIQsgBigCFCERIAYoAhAhFSAGKAIEIQggBigCACEJIAYpAwgiGEIDg1AEQCAYpyIDIAMoAgAiA0EBajYCACADQQBIDQoLIAYtAEQhBSAGLQAcIQcCQCAGKAIgIhJFBEAMAQsQxCkhBCASKAIMIQogEigCECEDIAJBOGogEhC9ByAEQRBqIAM2AgAgBCACKQI4NwIAIAIgCjYCRCAEQQhqIAJBQGspAgA3AgALIAJB8ABqIAZBOGoQvwYgBigCMCEMIAYoAjQhAyACQZgBaiAGQSRqEKwBIAJB7ABqIAM2AgAgAiAMNgKkASACQeQAaiACQaABaikCADcCACACIAU6AHwgAiAHOgBUIAIgCzYCUCACIBE2AkwgAiAVNgJIIAIgGDcDQCACIAg2AjwgAiAJNgI4IAIgBDYCWCACIAIpApgBNwJcIAEgAkE4akHIABCBCRoMAwsgASgCDCENEMcpIQEgDSgCGCELIA0oAhQhESANKAIQIRUgDS0AKCEIIA0oAgQhCSANKAIAIQUgDSkDCCIYQgODUARAIBinIgMgAygCACIDQQFqNgIAIANBAEgNCQsgDS0AHCEHAkAgDSgCICISRQRADAELEMQpIQQgEigCDCEKIBIoAhAhAyACQThqIBIQvQcgBEEQaiADNgIAIAQgAikCODcCACACIAo2AkQgBEEIaiACQUBrKQIANwIACyANKAIkIQMQwCkhDCACQThqIhAgAxB9IAwgEEHgABCBCSEGIAEgCDoAKCABIAY2AiQgASAENgIgIAEgBzoAHCABIAs2AhggASARNgIUIAEgFTYCECABIBg3AwggASAJNgIEIAEgBTYCAAwCCyABKAIMIQgQxykhASAIKAIQIQkgCCgCDCEMIAgoAgghBCAILQAtIREgCC0ALCEVIAgoAhwhBSAIKAIYIQcgCCkDACIYQgODUARAIBinIgMgAygCACIDQQFqNgIAIANBAEgNCAsgCC0AFCEKIAJB2ABqIgMgCEEgahCNBiACQUBrIgYgBDYCACACQcgAaiILIAk2AgAgAkHQAGoiBCAHNgIAIAEgGDcDACABQSBqIAMpAwA3AwAgAiAMNgJEIAFBCGogBikDADcDACACIAo6AEwgAUEQaiALKQMANwMAIAIgBTYCVCABQRhqIAQpAwA3AwAgAiAROgBlIAIgFToAZCABQShqIAJB4ABqKQMANwMADAELIAEoAgwhBhDIKSEBIAYoAhQhCyAGKAIQIREgBi0AUiEVIAYtAFEhCSAGLQBQIQUgBigCTCEHIAYoAkghCgJAIAYoAgBFBEAgBjUCGCEXIAYpAwgiGUIDg1AEQCAZpyIDIAMoAgAiA0EBajYCACADQQBIDQkLIAYxABxCIIYgF4QhGAwBCyAGKQMIIhlCA4NQBEAgGaciAyADKAIAIgNBAWo2AgAgA0EASA0IC0IBIRogBikDGCIYUCAYQgODQgBScg0AIBinIgMgAygCACIDQQFqNgIAIANBAEgNBwtBAyEEIAYtAEVBA0cEQCACQThqIAZBIGoQxgggAkG1AWogAkHVAGopAAA3AAAgAkGwAWogAkHQAGopAwA3AwAgAkGoAWogAkHIAGopAwA3AwAgAkGgAWogAkFAaykDADcDACACIAIpAzg3A5gBIAIvAV4hDCACLQBdIQQLIAEgGDcDGCABIAs2AhQgASARNgIQIAEgGTcDCCABIBo3AwAgASACKQOYATcDICABIBU6AFIgASAJOgBRIAEgBToAUCABIAc2AkwgASAKNgJIIAEgDDsBRiABIAQ6AEUgAUEoaiACQaABaikDADcDACABQTBqIAJBqAFqKQMANwMAIAFBOGogAkGwAWopAwA3AwAgAUE9aiACQbUBaikAADcAAAsgACAVOgAkIAAgBDYCICAAIAw2AhwgACALNgIYIAAgGDcDECAAIAE2AgwgACAUNgIIIAAgAi8AODsAJSAAIBE6ACwgACAGNgIoIAAgAi8AmAE7AC0gAEERNgIAIABBJ2ogAkE6ai0AADoAACAAQS9qIAJBmgFqLQAAOgAADAgLIAEpAwghFyABKAIEIQEQvikhAyACQThqIAEQNSADQThqIAJB8ABqKQMANwMAIANBMGogAkHoAGopAwA3AwAgA0EoaiACQeAAaikDADcDACADQSBqIAJB2ABqKQMANwMAIANBGGogAkHQAGopAwA3AwAgA0EQaiACQcgAaikDADcDACADQQhqIAJBQGspAwA3AwAgAyACKQM4NwMAIAAgFzcDCCAAIAM2AgQgAEESNgIADAcLIAEoAiAhESABKAIcIQsgASgCGCEMIAEpAxAiGEIDg0IAUg0AIBinIgEgASgCACIBQQFqNgIAIAFBAEgNAwsgACADOgAkIAAgETYCICAAIAs2AhwgACAMNgIYIAAgGDcDECAAIAc2AgwgACAKNgIIIABBBjYCAAwFCyABKAIgIREgASgCHCELIAEoAhghDCABKQMQIhhCA4NCAFINACAYpyIBIAEoAgAiAUEBajYCACABQQBIDQELIAAgAzoAJCAAIBE2AiAgACALNgIcIAAgDDYCGCAAIBg3AxAgACAHNgIMIAAgCjYCCCAAQQc2AgAMAwsACyAHIAIo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IQkDQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEoAgAiAkEZaw4LAQICAgICAgICAgACCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAQQcgCSgCACIDKAIAQQxrIgIgAkEmTxtBAWsOJQECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUACyADQQhqIQIgA0EEaiEEDCwLIANBFGohAiADQRBqIQQMKwsgA0EUaiECIANBEGohBAwqCyADKAIgIgNBNGohAiADQTBqIQQMKQsgA0EMaiECIANBCGohBAwoCyADQQhqIQIgA0EEaiEEDCcLIANBEGohAiADQQxqIQQMJgsgA0E0aiECIANBMGohBAwlCyADQSRqIQIgA0EgaiEEDCQLIANBJGohAiADQSBqIQQMIwsgA0EUaiECIANBEGohBAwiCyADQSBqIQIgA0EcaiEEDCELIANBGGohAiADQRRqIQQMIAsgA0EUaiECIANBEGohBAwfCyADQRRqIQIgA0EQaiEEDB4LIAMoAghBAWsOBhcYGRobHBYLIANBIGohAiADQRxqIQQMHAsgA0EQaiECIANBDGohBAwbCyADQRhqIQIgA0EUaiEEDBoLIAMoAiAiA0EoaiECIANBJGohBAwZCyADQQhqIQIgA0EEaiEEDBgLIANBCGohAiADQQRqIQQMFwsgA0EMaiECIANBCGohBAwWCyADQQxqIQIgA0EIaiEEDBULIANBHGohAiADQRhqIQQMFAsgA0EsaiECIANBKGohBAwTCyADQQhqIQIgA0EEaiEEDBILIAMoAgQiBEEEaiECDBELIANBFGohAiADQRBqIQQMEAsgA0EQaiECIANBDGohBAwPCyADQQxqIQIgA0EIaiEEDA4LIANBDGohAiADQQhqIQQMDQsgA0EQaiECIANBDGohBAwMCyADQRBqIQIgA0EMaiEEDAsLIANBEGohAiADQQxqIQQMCgsgA0EUaiECIANBEGohBAwJCyADQQxqIQIgA0EIaiEEDAgL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0CgNABpBwgcgAiADQfTK2QBBBhDQKA0AGkHDByACIANB+srZAEEFENAoDQAaQcQHIAIgA0H/ytkAQQMQ0CgNABpBxQcgAiADQYLL2QBBBxDQKA0AGkHGByACIANBicvZAEEDENAoDQAaQccHIAIgA0GMy9kAQQMQ0CgNABpByAcgAiADQY/L2QBBAxDQKA0AGkHJByACIANBksvZAEEFENAoDQAaQdEHIAIgA0GXy9kAQQgQ0CgNABpB0gcgAiADQZ/L2QBBBRDQKA0AGkHWByACIANBpMvZAEEDENAoDQAaQYLAACACIANBp8vZAEEEENAoDQAaQYPAACACIANBq8vZAEEEENAoDQAaQYnAACACIANBr8vZAEEGENAoDQAaQYzAACACIANBtcvZAEEEENAoDQAaQY3AACACIANBucvZAEEDENAoDQAaQY7AACACIANBvMvZAEEDENAoDQAaQY/AACACIANBv8vZAEEDENAoDQAaQZPAACACIANBwsvZAEEFENAoDQAaQZTAACACIANBx8vZAEEFENAoDQAaQZjAACACIANBzMvZAEEFENAoDQAaQZnAACACIANB0cvZAEEFENAoDQAaQZrAACACIANB1svZAEEFENAoDQAaQZzAACACIANB28vZAEEFENAoDQAaQZ3AACACIANB4MvZAEEFENAoDQAaQZ7AACACIANB5cvZAEEFENAoDQAaQaDAACACIANB6svZAEEGENAoDQAaQaHAACACIANB8MvZAEEGENAoDQAaQaLAACACIANB9svZAEEEENAoDQAaQabAACACIANB+svZAEEGENAoDQAaQbDAACACIANBgMzZAEEGENAoDQAaQbLAACACIANBhszZAEEFENAoDQAaQbPAACACIANBi8zZAEEFENAoDQAaQbnAACACIANBkMzZAEEGENAoDQAaQbrAACACIANBlszZAEEGENAoDQAaQb7AACACIANBnMzZAEEFENAoDQAaQcTAACACIANBoczZAEEFENAoDQAaQazBACACIANBpszZAEEEENAoDQAaQZHCACACIANBqszZAEEFENAoDQAaQZjCACACIANBr8zZAEEGENAoDQAaQZzCACACIANBtczZAEEEENAoDQAaQaLCACACIANBuczZAEEFENAoDQAaQbXCACACIANBvszZAEEHENAoDQAaQZDDACACIANBxczZAEEEENAoDQAaQZHDACACIANByczZAEEEENAoDQAaQZLDACACIANBzczZAEEEENAoDQAaQZPDACACIANB0czZAEEEENAoDQAaQZTDACACIANB1czZAEEEENAoDQAaQbXDACACIANB2czZAEEFENAoDQAaQdDDACACIANB3szZAEEEENAoDQAaQdHDACACIANB4szZAEEEENAoDQAaQdLDACACIANB5szZAEEEENAoDQAaQdPDACACIANB6szZAEEEENAoDQAaQdTDACACIANB7szZAEEEENAoDQAaQYDEACACIANB8szZAEEGENAoDQAaQYLEACACIANB+MzZAEEEENAoDQAaQYPEACACIANB/MzZAEEFENAoDQAaQYXEACACIANBgc3ZAEEFENAoDQAaQYfEACACIANBhs3ZAEEFENAoDQAaQYjEACACIANBi83ZAEEEENAoDQAaQYnEACACIANBj83ZAEEFENAoDQAaQYvEACACIANBlM3ZAEECENAoDQAaQY/EACACIANBls3ZAEEEENAoDQAaQZHEACACIANBms3ZAEEDENAoDQAaQZLEACACIANBnc3ZAEEFENAoDQAaQZfEACACIANBos3ZAEEGENAoDQAaQZrEACACIANBqM3ZAEEFENAoDQAaQZ3EACACIANBsu7gAEEEENAoDQAaQZ7EACACIANBrc3ZAEEFENAoDQAaQaDEACACIANBss3ZAEEDENAoDQAaQafEACACIANBtc3ZAEEDENAoDQAaQajEACACIANBuM3ZAEECENAoDQAaQanEACACIANBus3ZAEEDENAoDQAaQarEACACIANBvc3ZAEEDENAoDQAaQavEACACIANBwM3ZAEEDENAoDQAaQbTEACACIANBw83ZAEEGENAoDQAaQbzEACACIANByc3ZAEEDENAoDQAaQcXEACACIANBzM3ZAEEEENAoDQAaQcjEACACIANB0M3ZAEEFENAoDQAaQeDEACACIANB1c3ZAEECENAoDQAaQeHEACACIANB183ZAEEFENAoDQAaQeTEACACIANB3M3ZAEECENAoDQAaQeXEACACIANB3s3ZAEECENAoDQAaQYLFACACIANB4M3ZAEEDENAoDQAaQYPFACACIANB483ZAEEDENAoDQAaQYTFACACIANB5s3ZAEEEENAoDQAa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AkAgBigCACINQSVHDQAgBSgC8AIhASAFQSU2AvACAkAgAUElRwRAIAkgCCkCADcCACAJQSBqIAhBIGooAgA2AgAgCUEYaiAIQRhqKQIANwIAIAlBEGogCEEQaikCADcCACAJQQhqIAhBCGopAgA3AgAgAyABNgLoAQwBCyADQegBaiAHEDIgBigCAEElRg0AIAYQ6AMLIAYgAykD6AE3AwAgBkEgaiADQYgCaikDADcDACAGQRhqIANBgAJqKQMANwMAIAZBEGogA0H4AWopAwA3AwAgBkEIaiADQfABaikDADcDACAGKAIAIg1BJUcNACAFQYACaigCACEBIANBADoA6AEgASABIANB6AFqEO8bIQEgAEGBgICAeDYCkAEgACABNgIADBYLAkACQAJAAkACQAJAIA1BDWsOGAEFBQUFBQUFBQUFBQUFBQUFBQUCAwUFAAULIAVBJTYCyAIgAEGBgICAeDYCkAEgBSAFKQPgAjcDmAMgACAFKALMAjYCAAwaCwJAAkAgBxD0DyIBBEAgASgCAEEHRg0BCyADQegBaiAFEIkCIAMoAugBIgJBAkYNASADQcgDaiIOIBBBCGopAgA3AwAgAyAQKQIANwPAAyADKAKkASAMRgRAIANBpAFqEPALCyADKAKoASIRIBVqIgFBATYCACABQQRqIAI2AgAgAUEIaiADKQPAAzcDACABQRBqIA4pAwA3AwAgAUEYaiADQdADaikDADcDACABQSBqIANB2ANqKQMANwMADAQLAkACQAJAIAYoAgAiEUElRwRAIAsoAgAhDQwBCyAFKALwAiEBIAVBJTYC8AICQCABQSVHBEAgCSAIKQIANwIAIAlBIGogCEEgaigCADYCACAJQRhqIAhBGGopAgA3AgAgCUEQaiAIQRBqKQIANwIAIAlBCGogCEEIaikCADcCACADIAE2AugBDAELIANB6AFqIAcQMiAGKAIAQSVGDQAgBhDoAwsgBiADKQPoATcDACAGQSBqIgIgA0GIAmoiDikDADcDACAGQRhqIhggA0GAAmoiEikDADcDACAGQRBqIhkgA0H4AWoiGykDADcDACAGQQhqIhQgA0HwAWoiHCkDADcDACAXIAsgBigCACIRQSVGGygCACENIBFBJUcNACAFKALwAiEBIAVBJTYC8AICQCABQSVHBEAgCSAIKQIANwIAIAlBIGogCEEgaigCADYCACAJQRhqIAhBGGopAgA3AgAgCUEQaiAIQRBqKQIANwIAIAlBCGogCEEIaikCADcCACADIAE2AugBDAELIANB6AFqIAcQMiAGKAIAQSVGDQAgBhDoAwsgBiADKQPoATcDACACIA4pAwA3AwAgGCASKQMANwMAIBkgGykDADcDACAUIBwpAwA3AwAgBigCACIRQSVGDQELIBFBDUYNAQsgA0HwAWogBxDdByADQdjI3wA2AuwBIANBNDoA6AEgB0HwAkG4AiAGKAIAQSVGIgIbaigCACIBIAdB9AJBvAIgAhtqKAIAIgIgASACSRsgASACIAEgAksbIANB6AFqEO8bIRggBigCACICQSVGBEAgBSgC8AIhASAFQSU2AvACAkAgAUElRwRAIANBjAJqIAhBIGooAgA2AgAgA0GEAmogCEEYaikCADcCACADQfwBaiAIQRBqKQIANwIAIANB9AFqIAhBCGopAgA3AgAgAyABNgLoASADIAgpAgA3AuwBDAELIANB6AFqIAcQMiAGKAIAQSVGDQAgBhDoAwsgBiADKQPoATcDACAGQSBqIANBiAJqKQMANwMAIAZBGGogA0GAAmopAwA3AwAgBkEQaiADQfgBaikDADcDACAGQQhqIANB8AFqKQMANwMAIAYoAgAiAkElRg0bCyACQSRGDRkMGgsgBUElNgLIAiAJIAopAgA3AgAgBSAFKQPgAjcDmAMgCUEQaiIBIApBEGoiESgCADYCACAJQQhqIgIgCkEIaiISKQIANwIAIANBDTYC6AEgA0HoAWoQ6AMCQAJAIAUoAsgCIg5BJUYEQCAFKALwAiEOIAVBJTYC8AICQCAOQSVHBEAgCSAIKQIANwIAIAlBIGogCEEgaigCADYCACAJQRhqIAhBGGopAgA3AgAgASAIQRBqKQIANwIAIAIgCEEIaikCADcCACADIA42AugBDAELIANB6AFqIAcQMiAGKAIAQSVGDQAgBhDoAwsgBiADKQPoATcDACAGQSBqIANBiAJqKQMANwMAIAZBGGogA0GAAmopAwA3AwAgBkEQaiADQfgBaikDADcDACAGQQhqIANB8AFqKQMANwMAIAYoAgAiDkElRg0BCyAOQQdGDQELIANB8AFqIAcQ3QcgA0Gw5t8ANgLsASADQTQ6AOgBIAdB8AJBuAIgBigCAEElRiICG2ooAgAiASAHQfQCQbwCIAIbaigCACICIAEgAkkbIAEgAiABIAJLGyADQegBahDvGyEYIAYoAgAiAkElRgRAIAUoAvACIQEgBUElNgLwAgJAIAFBJUcEQCADQYwCaiAIQSBqKAIANgIAIANBhAJqIAhBGGopAgA3AgAgA0H8AWogCEEQaikCADcCACADQfQBaiAIQQhqKQIANwIAIAMgATYC6AEgAyAIKQIANwLsAQwBCyADQegBaiAHEDIgBigCAEElRg0AIAYQ6AMLIAYgAykD6AE3AwAgBkEgaiADQYgCaikDADcDACAGQRhqIANBgAJqKQMANwMAIAZBEGogA0H4AWopAwA3AwAgBkEIaiADQfABaikDADcDACAGKAIAIgJBJUYNGwsgAkEkRg0ZDBoLIAVBJTYCyAIgCSAKKQIANwIAIAUgBSkD4AI3A5gDIAEgESgCADYCACACIBIpAgA3AgAgA0EHNgLoASADQegBahDoAyADIAUQ2gIgAygCBCEYIAMoAgANGQJAAkAgBigCACIOQSVGBEAgBSgC8AIhDiAFQSU2AvACAkAgDkElRwRAIAkgCCkCADcCACAJQSBqIAhBIGooAgA2AgAgCUEYaiAIQRhqKQIANwIAIAEgCEEQaikCADcCACACIAhBCGopAgA3AgAgAyAONgLoAQwBCyADQegBaiAHEDIgBigCAEElRg0AIAYQ6AMLIAYgAykD6AE3AwAgBkEgaiADQYgCaikDADcDACAGQRhqIANBgAJqKQMANwMAIAZBEGogA0H4AWopAwA3AwAgBkEIaiADQfABaikDADcDACAGKAIAIg5BJUYNAQsgDkEORg0BCyADQfABaiAHEN0HIANBsMjfADYC7AEgA0E0OgDoASAHQfACQbgCIAYoAgBBJUYiAhtqKAIAIgEgB0H0AkG8AiACG2ooAgAiAiABIAJJGyABIAIgASACSxsgA0HoAWoQ7xshCSAGKAIAIgJBJUYEQCAFKALwAiEBIAVBJTYC8AICQCABQSVHBEAgA0GMAmogCEEgaigCADYCACADQYQCaiAIQRhqKQIANwIAIANB/AFqIAhBEGopAgA3AgAgA0H0AWogCEEIaikCADcCACADIAE2AugBIAMgCCkCADcC7AEMAQsgA0HoAWogBxAyIAYoAgBBJUYNACAGEOgDCyAGIAMpA+gBNwMAIAZBIGogA0GIAmopAwA3AwAgBkEYaiADQYACaikDADcDACAGQRBqIANB+AFqKQMANwMAIAZBCGogA0HwAWopAwA3AwAgBigCACICQSVGDRkLIAJBJEcNGCAFQSU2AsgCIAUgBSkD4AI3A5gDIAUgBSgCzAIQwAgMGAsgBUElNgLIAiAJIAopAgA3AgAgBSAFKQPgAjcDmAMgASARKAIANgIAIAIgEikCADcCACADQQ42AugBIANB6AFqEOgDIANBsANqIg4gA0HIBGopAwA3AwAgA0G4A2oiEiADQdAEaikDADcDACADIAMpA8AENwOoAyANIAUoApwDIgIgAiANSRshGSADKAKkASAMRgRAIANBpAFqEPALCyADKAKoASIRIBVqIgFBAjYCACABQQxqIBk2AgAgAUEIaiANIAIgAiANSxs2AgAgAUEEaiAYNgIAIAFBEGogAykDqAM3AwAgAUEYaiAOKQMANwMAIAFBIGogEikDADcDAAwDCyADKALsASEBIABBgYCAgHg2ApABIAAgATYCAAwZCyAFQSU2AsgCIAUgBSgC5AIiDjYCnAMgBSAFKALgAiINNgKYAyAFKALYAiECIAUpA9ACIi5QDQUgBSgC3AIhEiADKAKkASAMRgRAIANBpAFqEPALCyADKAKoASIRIBVqIgFBADYCACABQRxqIA42AgAgAUEYaiANNgIAIAFBFGogEjYCACABQRBqIAI2AgAgAUEIaiAuNwMADAELIAsoAgAhAgJAAkACQCAHEPQPIgFFDQAgASgCAEEURw0AIAEtAARBDkYNAQsgA0HoAWogBSACEEYgAygC6AEhAiADKAL4AiIOQYGAgIB4Rw0BIABBgYCAgHg2ApABIAAgAjYCAAwZCyAKKQIAIS4gCiADKQKcBTcCACAFKALIAiEBIAVBJTYCyAIgCkEIaiIGKQIAIS8gBiADQaQFaikCADcCACADQfQBaiAvNwIAIApBEGoiBigCACEIIAUpA+ACIS8gBiADQawFaikCADcCACADQfwBaiAINgIAIApBGGogA0G0BWopAgA3AgAgCkEgaiADQbwFaigCADYCACADIC43AuwBIAMgATYC6AEgBSAvNwOYAyADQegBaiIGEOgDIAcQvwoiAUUEQCAFQYACaigCACEBIANBADoA6AEgASABIAYQ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KQLMAjcCNCAGQTBqEOgDIAEgBikDADcDCCABQRBqIAZBCGopAwA3AwAgAUEYaiAGQRBqKQMANwMAIAFBIGogBkEYaikDADcDACABQShqIAZBIGopAwA3AwAgAUEwaiAGQShqKQMANwMAIAEgBSgCnAMiCCACIAIgCEkbNgIEIAEgCCACIAIgCEsbNgIADAELIAFBBzoANCABIAo2AgAgBhDuEgsgBkHgAGokACADKALoASEVIAMtAJwCIglBB0YNCCADQdwBaiADQZQCaikCADcCACADQdQBaiADQYwCaikCADcCACADQcwBaiADQYQCaikCADcCACADQcQBaiAHKQIANwIAIANBvAFqIA4pAgA3AgAgA0HnAWogA0GfAmotAAA6AAAgAyADKQLsATcCtAEgAyADLwCdAjsA5QEgAyAJOgDkASADIBU2ArABDAsLAn8gDkGAgICAeEYEQCADQdgEaiAJQRhqKQIANwMAIANB0ARqIAlBEGopAgA3AwAgA0HIBGogCUEIaikCADcDACADIAkpAgA3A8AEQQQMAQtBoL/kAC0AABpBoAEQhAEiAUUNDCABIAI2AgAgASAJKQIANwIEIAFBDGogCUEIaikCADcCACABQRRqIAlBEGopAgA3AgAgAUEcaiAJQRhqKQIANwIAIAFBJGogFkHsABCBCRogASAONgKQASABIBMpAgA3ApQBIAFBnAFqIBNBCGooAgA2AgAgASECQQMLIQ4gA0GgA2oiDSADQdgEaikDADcDACADQZgDaiISIANB0ARqKQMANwMAIANBkANqIhggA0HIBGopAwA3AwAgAyADKQPABDcDiAMgAygCpAEgDEYEQCADQaQBahDwCyADKAKoASERCyARIBVqIgEgDjYCACABQQRqIAI2AgAgAUEIaiADKQOIAzcDACABQRBqIBgpAwA3AwAgAUEYaiASKQMANwMAIAFBIGogDSkDADcDAAsgAyAMQQFqIgw2AqwBIBVBKGohFQwBCwsgA0H0AWogBxDdByADQSA2AvABIANB6OjfADYC7AEgA0EwOgDoASAHQfACQbgCIAYoAgBBJUYiAhtqKAIAIgEgB0H0AkG8AiACG2ooAgAiAiABIAJJGyABIAIgASACSxsgA0HoAWoQ7xshASAHEL8KIgJFDQYgAigCAEEkRw0GIAUgBSkD4AI3A5gDIAUoAsgCIAVBJTYCyAJBJEcNBSAFIAUoAswCEMAIDAYLIABBgYCAgHg2ApABIAAgBDYCAAwUCyAAQYGAgIB4NgKQASAAIAI2AgAMEgtBiYThAEEoQYjo3wAQ1SEAC0GJhOEAQShBmOjfABDVIQALIABBgYCAgHg2ApABIAAgFTYCAAwPC0GJhOEAQShBiOnfABDVIQALIABBgYCAgHg2ApABIAAgATYCAAwNCyAhIAUoApwDIgEgASAhSRshBiAhIAEgASAhSxshCCAFQShqIQ4gA0HlAWohByADQbgBaiEKIAMoArQBIQ0gAygCVCELAkACQCAPQYCAgIB4RgRAAkAgCUEGRwRAIAlBB0cNAUGJhOEAQShBuOjfABDVIQALQYCAgIB4IQEgAygCqAEhCSADKAKkASECIAghESAGIQoMCwsgA0H4AWogCkEIaikDADcDACADQYACaiAKQRBqKQMANwMAIANBiAJqIApBGGopAwA3AwAgA0GQAmogCkEgaikDADcDACADQZgCaiAKQShqKAIANgIAIANBnwJqIAdBAmotAAA6AAAgAyANNgLsASADIBU2AugBIAMgCToAnAIgAyAKKQMANwPwASADIAcvAAA7AJ0CIANB1wA6AMAEIBUgDSADQcAEahDvGyEBIA4QvwoiAkUNCCACKAIAQSRHDQggBSAFKQPgAjcDmAMgBSgCyAIgBUElNgLIAkEkRw0BIAUgBSgCzAIQwAgMCAsgA0GQAWohDCADQdgAaiEBIAlBBmsOAgUGAQtBiYThAEEoQajo3wAQ1SEACyADQfgBaiABQQhqKQMANwMAIANBgAJqIAFBEGopAwA3AwAgA0GIAmogAUEYaikDADcDACADQZACaiABQSBqKQMANwMAIANBmAJqIAFBKGopAwA3AwAgA0GgAmogAUEwaigCADYCACADQbACaiAMQQhqKQMANwMAIAMgCzYC7AEgAyAENgLoASADIA82AqQCIAMgASkDADcD8AEgAyAMKQMANwOoAiADQdAEaiAKQQhqKQMANwMAIANB2ARqIApBEGopAwA3AwAgA0HgBGogCkEYaikDADcDACADQegEaiAKQSBqKQMANwMAIANB8ARqIApBKGooAgA2AgAgA0H3BGogB0ECai0AADoAACADIA02AsQEIAMgFTYCwAQgAyAJOgD0BCADIAopAwA3A8gEIAMgBy8AADsA9QQgAyADQcgEaiIBEMMINwP4BCADIANB6AFqEMMIIi43A4AFIANB+ARqIANBgAVqIgIQyA8gLhDQGiADKQP4BBDQGg0CIAMoAsQEIQYgAygCwAQgA0HoAWoQwwghLiADQdgAOgCABSADIC43A4gFIAYgAhDvGyECIA4QvwoiBkUNASAGKAIAQSRHDQEgBSAFKQPgAjcDmAMgBSgCyAIgBUElNgLIAkEkRgRAIAUgBSgCzAIQwAgMAgtBiYThAEEoQdjo3wAQ1SELAAsgAEGBgICAeDYCkAEgACACNgIAIAEQ7hIgA0HoAWoQ+yAMBAsgA0H4A2ogA0HwAWoiAUEIaikDADcDACADQYAEaiABQRBqKQMANwMAIANBiARqIAFBGGopAwA3AwAgA0GQBGogAUEgaikDADcDACADQZgEaiABQShqKQMANwMAIANBoARqIAFBMGooAgA2AgAgAyABKQMANwPwAyADKALsASEOIAMoAugBIQcgAygCpAIhDyADQegDaiADQagCaiIBQQhqKQMANwMAIANBuARqIANB7ARqKQIANwMAIANBsARqIANB5ARqKQIANwMAIAMgASkDADcD4AMgAyADKQLcBDcDqAQgAygC2AQhDSADKALUBCEVIAMoAtAEIQsgAygCzAQhBCADKALIBCEKIAMoAsQEIREgAygCwAQhDCADKQKoASEvIAMoAqQBIQEgAy0A9AQhGCADQaYEaiADQfUEaiICQQJqLQAAOgAAIAMgAi8AADsBpAQgCCECIAYhCQwECyADQfgBaiABQQhqKQMANwMAIANBgAJqIAFBEGopAwA3AwAgA0GIAmogAUEYaikDADcDACADQZACaiABQSBqKQMANwMAIANBmAJqIAFBKGopAwA3AwAgA0GgAmogAUEwaigCADYCACADQbACaiAMQQhqKQMANwMAIAMgCzYC7AEgAyAENgLoASADIA82AqQCIAMgASkDADcD8AEgAyAMKQMANwOoAiADQegBahDDCCEuIANB2AA6AMAEIAMgLjcDyAQgFSANIANBwARqEO8bIQECQCAOEL8KIgJFDQAgAigCAEEkRw0AIAUgBSkD4AI3A5gDIAUoAsgCIAVBJTYCyAJBJEYEQCAFIAUoAswCEMAIDAELQYmE4QBBKEHI6N8AENUhAAsgAEGB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IARB+AZqQfymwwAQ7yMACyADIQYLIARBzAZqEKIjIAQoAtgDIAQoAtwDEKAvIAQoAswDIAQoAtADEKgvIAQoAqwDIgIgBCgCsAMQ7RIgBCgCqAMgAhCmLyAEKAK0AyAEKAK4AxCgLyAEKAKkAyICIAIoAgAiAkEBazYCACACQQFGBEAgBCgCpAMQ1xQLIAAgJDcDECAAIAY2AgwgACAFNgIIIABBGGogBEEwakEoEIEJGiAAQSM2AgAgASABKAIgQQFqNgIgCyAEQbAJaiQADwsgBSAEKAKABxCjLwAL5D8CCX8BfiMAQZABayICJAAgAUHIAmohAyABQShqIQcgASgCyAIiBUElRgRAIAEoAvACIQUgAUElNgLwAgJAIAVBJUcEQCACQYwBaiABQZQDaigCADYCACACQYQBaiABQYwDaikCADcCACACQfwAaiABQYQDaikCADcCACACQfQAaiABQfwCaikCADcCACACIAU2AmggAiABKQL0AjcCbAwBCyACQegAaiAHEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDaDcDACADQSBqIAJBiAFqKQMANwMAIANBGGogAkGAAWopAwA3AwAgA0EQaiACQfgAaikDADcDACADQQhqIAJB8ABqKQMANwMAIAMoAgAhBQsgAUGcA0HgAiAFQSVGIgobaigCACEJAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEtAKACIgRBAkciBg0AIAQgAS0AoQIgBhtBAXENACAKBEAgASgC8AIhBSABQSU2AvACAkAgBUElRwRAIAJBjAFqIAFBlANqKAIANgIAIAJBhAFqIAFBjANqKQIANwIAIAJB/ABqIAFBhANqKQIANwIAIAJB9ABqIAFB/AJqKQIANwIAIAIgBTYCaCACIAEpAvQCNwJsDAELIAJB6ABqIAcQMiADKAIAQSVGDQAgAxDoAwsgAyACKQNoNwMAIANBIGogAkGIAWopAwA3AwAgA0EYaiACQYABaikDADcDACADQRBqIAJB+ABqKQMANwMAIANBCGogAkHwAGopAwA3AwAgAygCACIFQSVGDQILIAVBFEcNAiABLQDMAkEERw0CIAFBJTYCyAIgASABKQPgAjcDmAMgAUHMAmoiBUEQaigCACEEIAJBFDYCaCACQfwAaiIIIAQ2AgAgAkH0AGoiCiAFQQhqKQIANwIAIAIgBSkCADcCbCACQegAahDoAwJAAkAgASgCyAIiBkElRgRAIAEoAvACIQQgAUElNgLwAgJAIARBJUcEQCACQYwBaiABQZQDaigCADYCACACQYQBaiABQYwDaikCADcCACAIIAFBhANqKQIANwIAIAogAUH8AmopAgA3AgAgAiAENgJoIAIgASkC9AI3AmwMAQsgAkHoAGogBxAyIAMoAgBBJUYNACADEOgDCyADIAIpA2g3AwAgA0EgaiACQYgBaikDADcDACADQRhqIAJBgAFqKQMANwMAIANBEGogAkH4AGopAwA3AwAgA0EIaiACQfAAaikDADcDACADKAIAIgZBJUYNAQsgBkECRw0AIAEtANACQQJHDQAgAS0A0QJBE0YNAQsCQCABLQCgAkECRw0AIAEtAKUCQQFxRQ0AIAEoApwDIQQgAkG5AToAaCABIAQgCSAEIAlJGyAEIAkgBCAJSxsgAkHoAGoQ6SILQQEhBiACQQE6AFcgAiABKQGqAjcASyACIAEoAbICNgBTIAIgASkAtwI3AFggAiABKQC/AjcAYCACQegAaiIKIAEgAkHLAGoQvwggAkE4aiACKAJoELMCIAIoAjwhBCACKAI4IAoQ9QoEQCAEIQUMIgsCQAJAIAMoAgAiCEElRgRAIAEoAvACIQggAUElNgLwAgJAIAhBJUcEQCACQYwBaiABQZQDaigCADYCACACQYQBaiABQYwDaikCADcCACACQfwAaiABQYQDaikCADcCACACQfQAaiABQfwCaikCADcCACACIAg2AmggAiABKQL0AjcCbAwBCyACQegAaiAHEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDaDcDACADQSBqIAJBiAFqKQMANwMAIANBGGogAkGAAWopAwA3AwAgA0EQaiACQfgAaikDADcDACADQQhqIAJB8ABqKQMANwMAIAMoAgAiCEElRg0BCyAIQRRHDQAgBS0AAEEGRg0BCyACQfAAaiAHEN0HIAJBgMnfADYCbCACQTQ6AGggB0HwAkG4AiADKAIAQSVGIgMbaigCACIFIAdB9AJBvAIgAxtqKAIAIgMgAyAFSxsgBSADIAMgBUkbIAJB6ABqEO8bIQUgBxC/CiIDRQ0hIAMoAgBBJEcNISABIAEpA+ACNwOYAyABKALIAiABQSU2AsgCQSRHDRkgASABKALMAhDACAwhCyABQSU2AsgCIAEgASkD4AI3A5gDIAVBEGooAgAhAyACQRQ2AmggAkH8AGogAzYCACACQfQAaiAFQQhqKQIANwIAIAIgBSkCADcCbCACQegAahDoAyACQTBqIAEQSCACKAI0IQMgAigCMARAIAMhBQwhC0EAIQZBoL/kAC0AABogASgCnAMhAUHAABCEASIFRQ0fIAUgBDYCCCAFIAM2AgQgBUEpNgIAIAUgASAJIAEgCUsbNgIQIAUgASAJIAEgCUkbNgIMDCELIAFBJTYCyAIgASABKQPgAjcDmAMgAkH8AGoiCCAFQRBqKAIANgIAIAJB9ABqIgogBUEIaikCADcCACACQQI2AmggAiAFKQIANwJsIAJB6ABqEOgDAkACQCABKALIAiIGQSVGBEAgASgC8AIhBCABQSU2AvACAkAgBEElRwRAIAJBjAFqIAFBlANqKAIANgIAIAJBhAFqIAFBjANqKQIANwIAIAggAUGEA2opAgA3AgAgCiABQfwCaikCADcCACACIAQ2AmggAiABKQL0AjcCbAwBCyACQegAaiAHEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDaDcDACADQSBqIAJBiAFqKQMANwMAIANBGGogAkGAAWopAwA3AwAgA0EQaiACQfgAaikDADcDACADQQhqIAJB8ABqKQMANwMAIAMoAgAiBkElRg0BCyAGQRRHDQAgBS0AAEEGRg0BCyACQfAAaiAHEN0HIAJBgMnfADYCbCACQTQ6AGggB0HwAkG4AiADKAIAQSVGIgQbaigCACIFIAdB9AJBvAIgBBtqKAIAIgQgBCAFSxsgBSAEIAQgBUkbIAJB6ABqEO8bIQVBASEGIAcQvwoiBEUNISAEKAIAQSRHDSEgASABKQPgAjcDmAMgASgCyAIgAUElNgLIAkEkRw0ZIAEgASgCzAIQwAgMIQsgAUElNgLIAiABIAEpA+ACNwOYAyAFQRBqKAIAIQQgAkEUNgJoIAJB/ABqIAQ2AgAgAkH0AGogBUEIaikCADcCACACIAUpAgA3AmwgAkHoAGoQ6AMgAkFAayABEEggAigCRCEFIAIoAkAEQEEBIQYMIQtBACEGQaC/5AAtAAAaIAEoApwDIQRBwAAQhAEiAUUNHiABIAU2AgQgAUEqNgIAIAEgCSAEIAQgCUkbNgIMIAEgCSAEIAQgCUsbNgIIIAEhBQwgCyAFQSVHDQELIAEoAvACIQUgAUElNgLwAgJAIAVBJUcEQCACQYwBaiABQZQDaigCADYCACACQYQBaiABQYwDaikCADcCACACQfwAaiABQYQDaikCADcCACACQfQAaiABQfwCaikCADcCACACIAU2AmggAiABKQL0AjcCbAwBCyACQegAaiAHEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDaDcDACADQSBqIAJBiAFqKQMANwMAIANBGGogAkGAAWopAwA3AwAgA0EQaiACQfgAaikDADcDACADQQhqIAJB8ABqKQMANwMAIAMoAgAiBUElRg0BC0EYIQYgBUEYRw0BDBoLIAEoAvACIQUgAUElNgLwAgJAIAVBJUcEQCACQYwBaiABQZQDaigCADYCACACQYQBaiABQYwDaikCADcCACACQfwAaiABQYQDaikCADcCACACQfQAaiABQfwCaikCADcCACACIAU2AmggAiABKQL0AjcCbAwBCyACQegAaiAHEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDaDcDACADQSBqIAJBiAFqKQMANwMAIANBGGogAkGAAWopAwA3AwAgA0EQaiACQfgAaikDADcDACADQQhqIAJB8ABqKQMANwMAIAMoAgAiBUElRg0BC0EZIQYgBUEZRg0YDAELIAEoAvACIQUgAUElNgLwAgJAIAVBJUcEQCACQYwBaiABQZQDaigCADYCACACQYQBaiABQYwDaikCADcCACACQfwAaiABQYQDaikCADcCACACQfQAaiABQfwCaikCADcCACACIAU2AmggAiABKQL0AjcCbAwBCyACQegAaiAHEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDaDcDACADQSBqIAJBiAFqKQMANwMAIANBGGogAkGAAWopAwA3AwAgA0EQaiACQfgAaikDADcDACADQQhqIAJB8ABqKQMANwMAIAMoAgAiBUElRg0BCyAFQQJHIAEtANACIgZBAkdyIAEtANECIghBIkdyDQEMEwsgASgC8AIhBSABQSU2AvACAkAgBUElRwRAIAJBjAFqIAFBlANqKAIANgIAIAJBhAFqIAFBjANqKQIA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AkHoAGogBxAyIAMoAgBBJUYNACADEOgDCyADIAIpA2g3AwAgA0EgaiACQYgBaikDADcDACADQRhqIAJBgAFqKQMANwMAIANBEGogAkH4AGopAwA3AwAgA0EIaiACQfAAaikDADcDACADKAIAIgVBJUYNAQsgBUECRw0AIAEtANACQQJHDQAgAS0A0QJFDQELIAJBCGogARBpIAIoAgwhBSACKAIIBEBBASEGDAsLIAUoAgBBHkYEQEEAIQYMCwtBACEGQQAhBCADKAIAQSVGBH8gASgC8AIhBCABQSU2AvACAkAgBEElRwRAIAJBjAFqIAFBlANqKAIANgIAIAJBhAFqIAFBjANqKQIANwIAIAJB/ABqIAFBhANqKQIANwIAIAJB9ABqIAFB/AJqKQIANwIAIAIgBDYCaCACIAEpAvQCNwJsDAELIAJB6ABqIAcQMiADKAIAQSVGDQAgAxDoAwsgAyACKQNoNwMAIANBIGogAkGIAWopAwA3AwAgA0EYaiACQYABaikDADcDACADQRBqIAJB+ABqKQMANwMAIANBCGogAkHwAGopAwA3AwAgAygCAEElRgUgBAsNCiABLQDoAkEBcQ0KAkAgBxC/CiIEBEAgBCgCAEEYRg0BCyAHEL8KIgRFDQsgBCgCAEEZRw0LCyABIAVBABC3AyACQfQAaiABQdQCaikCADcCACACQfwAaiABQdwCaigCADYCACABKALIAiEEIAFBJTYCyAIgASABKQPgAjcDmAMgAiABKQLMAjcCbCACIAQ2AmggAkHoAGoiBEGo798AEJIGIQcgBBDoAyACIAUQrARBoL/kAC0AABogASgCnAMhBCACKAIAIQNBwAAQhAEiAUUNCCABQQA6ABEgASAFNgIMIAFBETYCACABIAdBAXM6ABAgASADIAQgAyAESxs2AgggASADIAQgAyAESRs2AgQgASEFDAoLIAJBEGogAUEAIAIQwgEgAigCFCEFIAIoAhAhBgwJC0GJhOEAQShBoNbfABDVIQALQYmE4QBBKEGU798AENUhAAsgAUElNgLIAiABIAEpA+ACNwOYAyACQfQAaiABQdQCaikCADcCACABQdwCaigCACEFIAJBFDYCaCACQfwAaiAFNgIAIAIgASkCzAIiCzcCbEEBIQhBACEFAkAgC6dB/wFxQQtrDgICAAMLQQAhCAwB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0AFqIgEgA0HAAmoQrhAgARDgJiEhIABBADYCACAAICE3AwggAygCiAIgAygCjAIQgSwgAykDqAEQ0BpBAAwTCyAGQQtGDQFBACEHDCYLIAMrA4gBIRsgAysDeCEaIAZBCGsOEAIDBAUGBwgJCgsMAQEBAQ0BCyADKwN4IRogAyADKQOIATcDqAEgA0GIAmoiASAaEJECIANBAjYCxAIgA0HEs98ANgLAAiADQgI3AswCIAMgA0GoAWqtQoCAgICwLoQ3A/ABIAMgAa1CgICAgMA6hDcD6AEgAyADQegBajYCyAIgA0HQAWoiASADQcACahCuECABEOAmISEgAEEANgIAIAAgITcDCCADKAKIAiADKAKMAhCBLAwPC0GJhOEAQShB1LPfABDVIQALIBq9Qv///////////wCDQv/////////3/wBYBH9BfwJ/IBqdIhogGkQAAAAAAADwPaKdRAAAAAAAAPBBoqEgGqYiGkQAAAAAAADwQaAgGiAaRAAAAAAAAAAAYxsiGkQAAAAAAADwQWMgGkQAAAAAAAAAAGYiAXEEQCAaqwwBC0EAC0EAIAEbIBpEAADg////70FkGwVBAAsgG71C////////////AINC//////////f/AFgEf0F/An8gG50iGiAaRAAAAAAAAPA9op1EAAAAAAAA8EGioSAapiIaRAAAAAAAAPBBoCAaIBpEAAAAAAAAAABjGyIaRAAAAAAAAPBBYyAaRAAAAAAAAAAAZiIBcQRAIBqrDAELQQALQQAgARsgGkQAAOD////vQWQbQR9xBUEAC3S3DAsLIBq9Qv///////////wCDQv/////////3/wBYBH9BfwJ/IBqdIhogGkQAAAAAAADwPaKdRAAAAAAAAPBBoqEgGqYiGkQAAAAAAADwQaAgGiAaRAAAAAAAAAAAYxsiGkQAAAAAAADwQWMgGkQAAAAAAAAAAGYiAXEEQCAaqwwBC0EAC0EAIAEbIBpEAADg////70FkGwVBAAsgG71C////////////AINC//////////f/AFgEf0F/An8gG50iGiAaRAAAAAAAAPA9op1EAAAAAAAA8EGioSAapiIaRAAAAAAAAPBBoCAaIBpEAAAAAAAAAABjGyIaRAAAAAAAAPBBYyAaRAAAAAAAAAAAZiIBcQRAIBqrDAELQQALQQAgARsgGkQAAOD////vQWQbQR9xBUEAC3W3DAoLIBq9Qv///////////wCDQv/////////3/wBYBH9BfwJ/IBqdIhogGkQAAAAAAADwPaKdRAAAAAAAAPBBoqEgGqYiGkQAAAAAAADwQaAgGiAaRAAAAAAAAAAAYxsiGkQAAAAAAADwQWMgGkQAAAAAAAAAAGYiAXEEQCAaqwwBC0EAC0EAIAEbIBpEAADg////70FkGwVBAAsgG71C////////////AINC//////////f/AFgEf0F/An8gG50iGiAaRAAAAAAAAPA9op1EAAAAAAAA8EGioSAapiIaRAAAAAAAAPBBoCAaIBpEAAAAAAAAAABjGyIaRAAAAAAAAPBBYyAaRAAAAAAAAAAAZiIBcQRAIBqrDAELQQALQQAgARsgGkQAAOD////vQWQbQR9xBUEAC3a4DAkLIBogG6AMCAsgGiAboQwHCyAaIBuiDAYLIBogG6MMBQsCfAJAIBq9IiZCNIhC/w+DIiNC/w9RIBsgG2JyRQRAIBu9IiRCAYYiIUIAUg0BCyAaIBuiIhogGqMMAQsCfgJAICEgJkIBhiIiVARAICRCNIhC/w+DISUgI1BFDQFCACEjICZCDIYiIUIAWQRAA0AgI0IBfSEjICFCAYYiIUIAWQ0ACwsgJkIBICN9hgwCCyAaRAAAAAAAAAAAoiAaICEgIlEbDAILICZC/////////weDQoCAgICAgIAIhAshIUIAISICfiAlUARAICRCDIYiJUIAWQRAA0AgIkIBfSEiICVCAYYiJUIAWQ0ACwsgJEIBICJ9hgwBCyAlISIgJEL/////////B4NCgICAgICAgAiECyEkICIgI1MEQANAAkAgISAkfSIlQgBTDQAgJSIhQgBSDQAgGkQAAAAAAAAAAKIMAwsgIUIBhiEhICNCAX0iIyAiVQ0ACyAiISMLAkAgISAkfSIiQgBTDQAgIiIhQgBSDQAgGkQAAAAAAAAAAKIMAQsCQCAhQv////////8HVgRAICEhIgwBCwNAICNCAX0hIyAhQoCAgICAgIAEVCAhQgGGIiIhIQ0ACwsgJkKAgICAgICAgIB/gyAiQgEgI32IICJCgICAgICAgAh9ICNCNIaEICNCAFcbhL8LDAQLQQAhBCAavUL///////////8Ag0L/////////9/8AWARAQX8CfyAanSIaIBpEAAAAAAAA8D2inUQAAAAAAADwQaKhIBqmIhpEAAAAAAAA8EGgIBogGkQAAAAAAAAAAGMbIhpEAAAAAAAA8EFjIBpEAAAAAAAAAABmIgFxBEAgGqsMAQtBAAtBACABGyAaRAAA4P///+9BZBshBAsgG71C////////////AINC//////////f/AFgEf0F/An8gG50iGiAaRAAAAAAAAPA9op1EAAAAAAAA8EGioSAapiIaRAAAAAAAAPBBoCAaIBpEAAAAAAAAAABjGyIaRAAAAAAAAPBBYyAaRAAAAAAAAAAAZiIBcQRAIBqrDAELQQALQQAgARsgGkQAAOD////vQWQbBUEACyAEcrcMAwtBACEEIBq9Qv///////////wCDQv/////////3/wBYBEBBfwJ/IBqdIhogGkQAAAAAAADwPaKdRAAAAAAAAPBBoqEgGqYiGkQAAAAAAADwQaAgGiAaRAAAAAAAAAAAYxsiGkQAAAAAAADwQWMgGkQAAAAAAAAAAGYiAXEEQCAaqwwBC0EAC0EAIAEbIBpEAADg////70FkGyEECyAbvUL///////////8Ag0L/////////9/8AWAR/QX8CfyAbnSIaIBpEAAAAAAAA8D2inUQAAAAAAADwQaKhIBqmIhpEAAAAAAAA8EGgIBogGkQAAAAAAAAAAGMbIhpEAAAAAAAA8EFjIBpEAAAAAAAAAABmIgFxBEAgGqsMAQtBAAtBACABGyAaRAAA4P///+9BZBsFQQALIARztwwCC0EAIQQgGr1C////////////AINC//////////f/AFgEQEF/An8gGp0iGiAaRAAAAAAAAPA9op1EAAAAAAAA8EGioSAapiIaRAAAAAAAAPBBoCAaIBpEAAAAAAAAAABjGyIaRAAAAAAAAPBBYyAaRAAAAAAAAAAAZiIBcQRAIBqrDAELQQALQQAgARsgGkQAAOD////vQWQbIQQLIBu9Qv///////////wCDQv/////////3/wBYBH9BfwJ/IBudIhogGkQAAAAAAADwPaKdRAAAAAAAAPBBoqEgGqYiGkQAAAAAAADwQaAgGiAaRAAAAAAAAAAAYxsiGkQAAAAAAADwQWMgGkQAAAAAAAAAAGYiAXEEQCAaqwwBC0EAC0EAIAEbIBpEAADg////70FkGwVBAAsg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IRwMAQtEAAAAAAAA8D8gHKMgHCAhQgBTGyEcICJCAFkNACAEIAZBgIDA/wNrckUEQCAcIByhIhogGqMMBAsgHJogHCAEQQFGGwwDCyAcDAILIB9EWfP4wh9upQGiRFnz+MIfbqUBogwBCyAfRJx1AIg85Dd+okScdQCIPOQ3fqILCwshGiAAQQE2AgAgACAaOQMIQQAMAgsgAyADKQN4NwOoASADIAMpA4gBNwOIAiADQQI2AsQCIANBxLPfADYCwAIgA0ICNwLMAiADIANBiAJqrUKAgICAsC6ENwPwASADIANBqAFqrUKAgICAsC6ENwPoASADIANB6AFqNgLIAiADQdABaiIBIANBwAJqEK4QIAEQ4CYhISAAQQA2AgAgACAhNwMIIAMpA4gCENAaCyADKQOoARDQGkEBCyEAIAUQ4QEgBUHAAEEIEKIYIAgQ4QEgCEHAAEEIEKIYIA4NBAwSCyADQdgAaiACQShqKQMANwMAIANB0ABqIAJBIGopAwA3AwAgA0HIAGogAkEYaikDADcDACADQUBrIAJBEGopAwA3AwAgAyACKQMIIiE3AzggIaciCkEBRgRAIANB5AJqIAJBCGoiAUEgaikCADcCACADQdwCaiABQRhqKQIANwIAIANB1AJqIAFBEGopAgA3AgAgA0HMAmogAUEIaikCADcCAEGgv+QALQAAGiADIAEpAgA3AsQCQcAAEIQBIgFFDRUgAUEUNgIAIAEgAykCwAI3AgQgACABNgIEIABBAjYCACABQQxqIANByAJqKQIANwIAIAFBFGogA0HQAmopAgA3AgAgAUEcaiADQdgCaikCADcCACABQSRqIANB4AJqKQIANwIAIAFBLGogA0HoAmooAgA2AgAMEQsgAygCVCENIAMoAlAhDCADKAJYIQkQvikhBiADQcACaiAJEDUgBkE4aiADQfgCaiIEKQMANwMAIAZBMGogA0HwAmoiCykDADcDACAGQShqIANB6AJqKQMANwMAIAZBIGogA0HgAmopAwA3AwAgBkEYaiADQdgCaikDADcDACAGQRBqIANB0AJqKQMANwMAIAZBCGogA0HIAmopAwA3AwAgBiADKQPAAjcDAAJ/IApFBEAgAygCRCEIIAMoAkAhByADKAJMIQUgAygCSCELIAMpA0AiIUIDg1AEQCAhpyIEIAQoAgAiBEEB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HGooAAA2AAAgAyAEOgCIASADIAUpAwA3A3AgAygC1AIiCSADKALcAkYEQCADQfAAahDCEAwOCyADQdgBaiAMKQMAIiE3AwAgA0HgAWogDSkDACIiNwMAIAMgCUEEajYC1AIgAyAFKQMAIiM3A9ABIAMgBUEZaiIFKAAANgLIASADIAVBA2ooAAA2AMsBIAkoAgAhBSADQfgBaiAiNwMAIANB8AFqICE3AwAgBiADKALIATYAACAGQQNqIAMoAMsBNgAAIAMgIzcD6AEgAyAEOgCAAiADQYgCaiABIAUQSQJ/AkACQAJAIAMoAogCDgIBAgALIAAgAykDmAE3AwAgAEEIaiADQaABaikDADcDACADQYgCahD6FCADQegBahDCECADQcACahDDDCAIEN8cIAMoArwBIAcQgSwMEQsgAyADKQOQAjcDqAIgA0EANgK8AiADQoCAgIAQNwK0AiADQQM6AJABIANBIDYCgAEgA0EANgKMASADQaCy3wA2AogBIANBADYCeCADQQA2AnAgAyADQbQCajYChAEgA0GoAmogA0HwAGoiBRCKJUUEQCADQaACaiADQbwCaigCADYCACADIAMpArQCNwOYAkEAIAMpA6gCIiFCA4NCAFINAhogAyAhpyIENgJwIAUQ0AYgBCAEKAIAIgVBAWs2AgAgBUEBRgRAIAQgBCgCIBCNJwsgAygCiAIMAgsMIQsgA0GYAmogAysDkAIQkQJBAQsgAygCnAIhBCADQbwBaiIHIAMoAqACIgUQ6icgAygCxAEiDSADKALAAWogBCAFEIEJGiADIAUgDWo2AsQBIANBKGogA0HoAWoQyhAgAygCKCENIAcgAygCLCIFEOonIAMoAsABIgcgAygCxAEiDGogDSAFEIEJGiADIAUgDGo2AsQBIAMoApgCIAQQgSwEQCADQYgCahD6FAsgA0HoAWoQwhAgAygCxAIiBSADKALMAkcNAAsMDAsMHQsgByADKALIAhCjLwALIAsgAygCyAIQoy8ACyAFEOEBDAoLIANB8ABqEPoUDA0LIABBAjYCACAAIAI2AgQMFwsgAEEBNgIAIAAgAisDGDkDCCACKQMgIiFQICFCA4NCAFJyDQIgAyAhpyIANgLAAiADQcACahDQBiAAIAAoAgAiAUEBazYCACABQQFHDQIgACAAKAIgEI0nDAILIABBADYCACAAIAIpAxA3AwggAikDICIhUCAhQgODQgBScg0BIAMgIaciADYCwAIgA0HAAmoQ0AYgACAAKAIAIgFBAWs2AgAgAUEBRw0BIAAgACgCIBCNJwwBCyADQSBqIAJBCGoiBBDKEAJAAkACQCADKAIgIAMoAiRBuLLfAEEDENAoBEAgAigCGCABKAIIRg0BCyADQRhqIAQQyhAgAygCGCADKAIcQdyi4ABBCBDQKARAIAIoAhggASgCCEYNAgsgASgCBCABKAIAIgYpAwAiIUIDg1AEQCAhpyIBIAEoAgAiAUEBajYCACABQQBIDRALIAYoAgghASAEKQMAIiJCA4NQBEAgIqciBCAEKAIAIgRBAWo2AgAgBEEASA0QCyADICI3A4ABIAMgATYCeCADICE3A3AgA0HwAGoiARCoCSIFDQIgAEECNgIAIAAgAjYCBCABEPEQDBcLIABCgICAgICAgPz/ADcDCCAAQQE2AgAgBCkDACIhQgODQgBSDQIgAyAhpyIANgLAAiADQcACahDQBiAAIAAoAgAiAUEBazYCACABQQFHDQIgACAAKAIgEI0nDAILIABCgICAgICAgPj/ADcDCCAAQQE2AgAgBCkDACIhQgODQgBSDQEgAyAhpyIANgLAAiADQcACahDQBiAAIAAoAgAiAUEBazYCACABQQFHDQEgACAAKAIgEI0nDAELAkACQAJAAkACQCAFKAIYIghBAWsOAwMBAgALIAUpAyAiIUIDg0IAUg0DICGnIgUgBSgCACIBQQFqNgIAIAFBAE4NAwwQCyAFKAIcIQQQvikhASADQcACaiAEEDUgAUE4aiADQfgCaikDADcDACABQTBqIANB8AJqKQMANwMAIAFBKGogA0HoAmopAwA3AwAgAUEgaiADQeACaikDADcDACABQRhqIANB2AJqKQMANwMAIAFBEGogA0HQAmopAwA3AwAgAUEIaiADQcgCaikDADcDACABIAMpA8ACNwMAIAMgATYC7AELIAMgCDYC6AEgBikDACIhQgODUARAICGnIgEgASgCACIBQQFqNgIAIAFBAEgNDwsgAigCFCEEIAIoAhAhCCAGKAIIIQUgAikDCCIiQgODUARAICKnIgEgASgCACIBQQFqNgIAIAFBAEgNDwtBoL/kAC0AABpBwAAQhAEiAUUNDiABQQA6ABwgASAFNgIYIAFCADcCECABICE3AgggAUEaNgIAQaC/5AAtAAAaQcAAEIQBIgVFDQ4gBSABNgIoIAVCADcDICAFIAQ2AhwgBSAINgIYIAUgIjcDECAFQQA2AgggBUEUNgIAIANB6AFqEPoUQQIhCAwBCyAFKQMgISELIAAgITcDCCAAIAU2AgQgACAINgIAIAIQ4QEgAkHAAEEIEKIYIANB8ABqEPEQDBQLIAIoAgBBEGsiAEETSw0QQQEgAHRBlaggcQ0SIABBC0YNDwwQCyAAIAEgAigCBBBJIAIoAgBBEGsiAEETSw0PQQEgAHRBlaggcQ0RIABBC0YNDgwPCyAAIAMpA5gBNwMAIABBCGogA0GgAWopAwA3AwAgA0GoAWoQwwwgCiAREKIlIBMgChDDKgwBCyADQcACahDDDCAIEN8cIANBvAFqEOAmISEgAEEANgIAIAAgITcDCCADQZgBahD6FAsgAigCAEEQayIAQRNLDQxBASAAdEGVqCBxDQ4gAEELRw0MDAsLIAVBwABBCBCiGEEAIQZBAQshCAJAAkACQAJAIAkoAgBBGkYEQCADQYABaiAJQRhqKQMANwMAIANB+ABqIAlBEGopAwA3AwAgAyAJKQMINwNwIAEoAgQgA0EIaiADQfAAahCtISADICE3A9ACIAMgAygCEDYCyAIgAyADKQMINwPAAiADQcACahCoCSIFRQ0CIANB6AFqIQgjAEFAaiIBJAACQAJAAkACQAJAAkAgBUEYaiIFKAIAIgZBAWsOAwECAwALIAUpAwgiIUIDg1AEQCAhpyIFIAUoAgAiBUEBajYCACAFQQBIDQQLIAggITcDCAwCCyAIIAUrAwg5AwgMAQsgBSgCBCEHEL4pIQUgASAHEDUgBUE4aiABQThqKQMANwMAIAVBMGogAUEwaikDADcDACAFQShqIAFBKGopAwA3AwAgBUEgaiABQSBqKQMANwMAIAVBGGogAUEYaikDADcDACAFQRBqIAFBEGopAwA3AwAgBUEIaiABQQhqKQMANwMAIAUgASkDADcDACAIIAU2AgQLIAggBjYCACABQUBrJAAMAQsACyADKALoASIBQQNrDgIBAgMLIAAgBDYCBCAAQQI2AgAgIUIDg0IAUg0EIAMgIaciADYCwAIgA0HAAmoQ0AYgACAAKAIAIgFBAWs2AgAgAUEBRw0EIAAgACgCIBCNJwwECyADQegBahD6FAsgAEEIaiADQfABaikDADcDACADIAQ2AuwBIANBAjYC6AEgACADKQPoATcDAAwBCyAAIAMpAuwBNwIEIABBDGogA0H0AWooAgA2AgAgACABNgIAIAMgBDYC7AEgA0ECNgLoASADQegBahD6FAsCQCADKQNwIiFCA4NCAFINACADICGnIgA2AugBIANB6AFqENAGIAAgACgCACIBQQFrNgIAIAFBAUcNACAAIAAoAiAQjScLIANBwAJqEPEQIAkoAgBBGkcEQCAJEOEBCyAJQcAAQQgQohgMAQsCQCAJKAIAQRpHBEAgCRDhAQwBCyAJKQMIIiFCA4NCAFINACADICGnIgA2AsACIANBwAJqENAGIAAgACgCACIBQQFrNgIAIAFBAUcNACAAIAAoAiAQjScLIAMoAlhBwABBCBCiGAJAAkACQCAKQQFrDgIAAgELIANBOGoQqw8MAgsgCEUNASADKQNAIiFCA4NCAFINASADICGnIgA2AsACIANBwAJqENAGIAAgACgCACIBQQFrNgIAIAFBAUcNASAAIAAoAiAQjScMAQsgBkUNACADKAI8IgAQ4QEgAEHAAEEIEKIYCyACKAIAQRBrIgBBE0sNCEEBIAB0QZWoIHENCiAAQQtGDQcMCAsgAA0FDAQLIANBwAJqIANB8ABqEL0EQaC/5AAtAAAaQcAAEIQBIgFFDQEgDkEBSyELIAEgAykDwAI3AwAgAUE4aiADQfgCaikDADcDACABQTBqIANB8AJqKQMANwMAIAFBKGogA0HoAmopAwA3AwAgAUEgaiADQeACaikDADcDACABQRhqIANB2AJqKQMANwMAIAFBEGogA0HQAmopAwA3AwAgAUEIaiADQcgCaikDADcDACAFEOEBIAVBwABBCBCiGCABIQULAkAgB0EBSwRAIAghBAwBCyADQcACaiANEL0EQaC/5AAtAAAaQcAAEIQBIgRFDQEgBCADKQPAAjcDACAEQThqIANB+AJqKQMANwMAIARBMGogA0HwAmopAwA3AwAgBEEoaiADQegCaikDADcDACAEQSBqIANB4AJqKQMANwMAIARBGGogA0HYAmopAwA3AwAgBEEQaiADQdACaikDADcDACAEQQhqIANByAJqKQMANwMAIAgQ4QEgCEHAAEEIEKIYC0Ggv+QA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ABpBwAAQhAEiAUUNAyAEKALgASEFIAQoAtwBIQggBCgC2AEhByAEKQPQASIZQgODUARAIBmnIgogCigCACIKQQFqNgIAIApBAEgNBAsgBCAFNgLQAyAEIAg2AswDIAQgBzYCyAMgBCAELQDkAToA1AMgBCAZNwPAAyAEQeAAaiIFIARBwANqIgcQrRMgBEGsA2ogBEH4AGoiDSkDADcCACAEQaQDaiAEQfAAaiIOKQMANwIAIARBnANqIARB6ABqIg8pAwA3AgAgBCAEKQNgNwKUAyABQQA2AgAgASAEKQKQAzcCBCABQQxqIARBmANqKQIANwIAIAFBFGogBEGgA2opAgA3AgAgAUEcaiAEQagDaikCADcCACABQSRqIARBsANqKAIANgIAIAFBADYCOCABQoCAgIDAADcDMCABQgA3AyggBEEBNgLoAiAEIAE2AuQCIARBATYC4AIgBEEANgLUAyAEQgA3AswDIAQgCzYCyAMgBCAJNgLEAyAEIAY2AsADIAUgBEHgAmoiCSAHEMATQaC/5AAtAAAaQRAQhAEiC0UNAyALIAQpApAENwIAIAtBCGogBEGYBGopAgA3AgBBoL/kAC0AABpByAAQhAEiAUUNAyABIAVByAAQgQkhAUGgv+QALQAAGkHAABCEASIFRQ0DIAUgATYCICAFQQI6ABwgBUEPNgIAIARCADcC2AMgBEEDOgDUAyAEQQA2AtADIARCADcC4AMgBEIANwLIAyAEQoCAgIDAADcCwAMgBxDxIUEAQQQQvyogDEUEQCAEQfACaiIGIARB4AFqKQMANwMAIARB6AJqIgggBEHYAWopAwA3AwAgBCAEKQPQATcD4AIgByAJEK0TIARB/ABqIARB2ANqIgkpAwA3AgAgBEH0AGogBEHQA2oiBykDADcCACAEQewAaiAEQcgDaiIKKQMANwIAIAQgBCkDwAM3AmRBoL/kAC0AABpBwAAQhAEiAUUNBCABQQU6ABggASAFNgIQIAFBATYCDCABIAs2AgggAUKXgICAEDcDACABIAQvAPADOwAZIAFCADcCJCABQv7///9vNwIcIAEgBCkC4AI3AiwgAUEbaiAEQfIDai0AADoAACABQTRqIAgpAgA3AgAgAUE8aiAGKAIANgIAIARB4ANqIgsgBEGAAWooAgA2AgAgCSANKQIANwMAIAcgDikC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AwAgBEEQaiADQUBrKQMANwMAIARBCGogA0E4aikDADcDACAFIAZBAWo2AggLIAgtAAoEQCADQeAAaiANQfad2gBBECAIKAIAEO4EIAUoAggiBiAFKAIARgRAIAUQ7wsLIAUoAgQgBkEwbGoiBCADKQNgNwMAIARBKGogA0GIAWopAwA3AwAgBEEgaiADQYABaikDADcDACAEQRhqIANB+ABqKQMANwMAIARBEGogA0HwAGopAwA3AwAgBEEIaiADQegAaikDADcDACAFIAZBAWo2AggLIAgtAAsEQCADQZABaiANQYae2gBBEyAIKAIAEO4EIAUoAggiBiAFKAIARgRAIAUQ7wsLIAUoAgQgBkEwbGoiBCADKQOQATcDACAEQShqIANBuAFqKQMANwMAIARBIGogA0GwAWopAwA3AwAgBEEYaiADQagBaikDADcDACAEQRBqIANBoAFqKQMANwMAIARBCGogA0GYAWopAwA3AwAgBSAGQQFqNgIICyAILQAMBEAgA0HAAWogDUGZntoAQRcgCCgCABDuBCAFKAIIIgYgBSgCAEYEQCAFEO8LCyAFKAIEIAZBMGxqIgQgAykDwAE3AwAgBEEoaiADQegBaikDADcDACAEQSBqIANB4AFqKQMANwMAIARBGGogA0HYAWopAwA3AwAgBEEQaiADQdABaikDADcDACAEQQhqIANByAFqKQMANwMAIAUgBkEBajYCCAsgCC0ADQRAIANB8AFqIA1BsJ7aAEEPIAgoAgAQ7gQgBSgCCCIGIAUoAgBGBEAgBRDvCwsgBSgCBCAGQTBsaiIEIAMpA/ABNwMAIARBKGogA0GYAmopAwA3AwAgBEEgaiADQZACaikDADcDACAEQRhqIANBiAJqKQMANwMAIARBEGogA0GAAmopAwA3AwAgBEEIaiADQfgBaikDADcDACAFIAZBAWo2AggLIAgtAA4EQCADQaACaiANQb+e2gBBGCAIKAIAEO4EIAUoAggiBiAFKAIARgRAIAUQ7wsLIAUoAgQgBkEwbGoiBCADKQOgAjcDACAEQShqIANByAJqKQMANwMAIARBIGogA0HAAmopAwA3AwAgBEEYaiADQbgCaikDADcDACAEQRBqIANBsAJqKQMANwMAIARBCGogA0GoAmopAwA3AwAgBSAGQQFqNgIICyAILQAPBEAgA0HQAmogDUHXntoAQQ4gCCgCABDuBCAFKAIIIgYgBSgCAEYEQCAFEO8LCyAFKAIEIAZBMGxqIgQgAykD0AI3AwAgBEEoaiADQfgCaikDADcDACAEQSBqIANB8AJqKQMANwMAIARBGGogA0HoAmopAwA3AwAgBEEQaiADQeACaikDADcDACAEQQhqIANB2AJqKQMANwMAIAUgBkEBajYCCAsgCC0AEARAIANBgANqIA1B5Z7aAEESIAgoAgAQ7gQgBSgCCCIGIAUoAgBGBEAgBRDvCwsgBSgCBCAGQTBsaiIEIAMpA4ADNwMAIARBKGogA0GoA2opAwA3AwAgBEEgaiADQaADaikDADcDACAEQRhqIANBmANqKQMANwMAIARBEGogA0GQA2opAwA3AwAgBEEIaiADQYgDaikDADcDACAFIAZBAWo2AggLIAgtABEEQCADQbADaiANQfee2gBBFSAIKAIAEO4EIAUoAggiBiAFKAIARgRAIAUQ7wsLIAUoAgQgBkEwbGoiBCADKQOwAzcDACAEQShqIANB2ANqKQMANwMAIARBIGogA0HQA2opAwA3AwAgBEEYaiADQcgDaikDADcDACAEQRBqIANBwANqKQMANwMAIARBCGogA0G4A2opAwA3AwAgBSAGQQFqNgIICyAILQASBEAgA0HgA2ogDUGMn9oAQQsgCCgCABDuBCAFKAIIIgYgBSgCAEYEQCAFEO8LCyAFKAIEIAZBMGxqIgQgAykD4AM3AwAgBEEoaiADQYgEaikDADcDACAEQSBqIANBgARqKQMANwMAIARBGGogA0H4A2opAwA3AwAgBEEQaiADQfADaikDADcDACAEQQhqIANB6ANqKQMANwMAIAUgBkEBajYCCAsgCC0AEwRAIANBkARqIA1Bl5/aAEEKIAgoAgAQ7gQgBSgCCCIGIAUoAgBGBEAgBRDvCwsgBSgCBCAGQTBsaiIEIAMpA5AENwMAIARBKGogA0G4BGopAwA3AwAgBEEgaiADQbAEaikDADcDACAEQRhqIANBqARqKQMANwMAIARBEGogA0GgBGopAwA3AwAgBEEIaiADQZgEaikDADcDACAFIAZBAWo2AggLIAgtABQEQCADQcAEaiANQaGf2gBBGyAIKAIAEO4EIAUoAggiBiAFKAIARgRAIAUQ7wsLIAUoAgQgBkEwbGoiBCADKQPABDcDACAEQShqIANB6ARqKQMANwMAIARBIGogA0HgBGopAwA3AwAgBEEYaiADQdgEaikDADcDACAEQRBqIANB0ARqKQMANwMAIARBCGogA0HIBGopAwA3AwAgBSAGQQFqNgIICyAILQAVBEAgA0HwBGogDUG8n9oAQSIgCCgCABDuBCAFKAIIIgYgBSgCAEYEQCAFEO8LCyAFKAIEIAZBMGxqIgQgAykD8AQ3AwAgBEEoaiADQZgFaikDADcDACAEQSBqIANBkAVqKQMANwMAIARBGGogA0GIBWopAwA3AwAgBEEQaiADQYAFaikDADcDACAEQQhqIANB+ARqKQMANwMAIAUgBkEBajYCCAsgCC0AFgRAIANBoAVqIA1B3p/aAEEaIAgoAgAQ7gQgBSgCCCIGIAUoAgBGBEAgBRDvCwsgBSgCBCAGQTBsaiIEIAMpA6AFNwMAIARBKGogA0HIBWopAwA3AwAgBEEgaiADQcAFaikDADcDACAEQRhqIANBuAVqKQMANwMAIARBEGogA0GwBWopAwA3AwAgBEEIaiADQagFaikDADcDACAFIAZBAWo2AggLIAgtABcEQCADQdAFaiANQfif2gBBGiAIKAIAEO4EIAUoAggiBiAFKAIARgRAIAUQ7wsLIAUoAgQgBkEwbGoiBCADKQPQBTcDACAEQShqIANB+AVqKQMANwMAIARBIGogA0HwBWopAwA3AwAgBEEYaiADQegFaikDADcDACAEQRBqIANB4AVqKQMANwMAIARBCGogA0HYBWopAwA3AwAgBSAGQQFqNgIICyAILQAYBEAgA0GABmogDUGSoNoAQR0gCCgCABDuBCAFKAIIIgYgBSgCAEYEQCAFEO8LCyAFKAIEIAZBMGxqIgQgAykDgAY3AwAgBEEoaiADQagGaikDADcDACAEQSBqIANBoAZqKQMANwMAIARBGGogA0GYBmopAwA3AwAgBEEQaiADQZAGaikDADcDACAEQQhqIANBiAZqKQMANwMAIAUgBkEBajYCCAsgCC0AGQRAIANBsAZqIA1Br6DaAEEQIAgoAgAQ7gQgBSgCCCIGIAUoAgBGBEAgBRDvCwsgBSgCBCAGQTBsaiIEIAMpA7AGNwMAIARBKGogA0HYBmopAwA3AwAgBEEgaiADQdAGaikDADcDACAEQRhqIANByAZqKQMANwMAIARBEGogA0HABmopAwA3AwAgBEEIaiADQbgGaikDADcDACAFIAZBAWo2AggLIAgtABoEQCADQeAGaiANQb+g2gBBKyAIKAIAEO4EIAUoAggiBiAFKAIARgRAIAUQ7wsLIAUoAgQgBkEwbGoiBCADKQPgBjcDACAEQShqIANBiAdqKQMANwMAIARBIGogA0GAB2opAwA3AwAgBEEYaiADQfgGaikDADcDACAEQRBqIANB8AZqKQMANwMAIARBCGogA0HoBmopAwA3AwAgBSAGQQFqNgIICyAILQAbBEAgA0GQB2ogDUHqoNoAQR4gCCgCABDuBCAFKAIIIgYgBSgCAEYEQCAFEO8LCyAFKAIEIAZBMGxqIgQgAykDkAc3AwAgBEEoaiADQbgHaikDADcDACAEQSBqIANBsAdqKQMANwMAIARBGGogA0GoB2opAwA3AwAgBEEQaiADQaAHaikDADcDACAEQQhqIANBmAdqKQMANwMAIAUgBkEBajYCCAsgCC0AHARAIANBwAdqIA1BiKHaAEEUIAgoAgAQ7gQgBSgCCCIGIAUoAgBGBEAgBRDvCwsgBSgCBCAGQTBsaiIEIAMpA8AHNwMAIARBKGogA0HoB2opAwA3AwAgBEEgaiADQeAHaikDADcDACAEQRhqIANB2AdqKQMANwMAIARBEGogA0HQB2opAwA3AwAgBEEIaiADQcgHaikDADcDACAFIAZBAWo2AggLIAgtAB0EQCADQfAHaiANQZyh2gBBFyAIKAIAEO4EIAUoAggiBiAFKAIARgRAIAUQ7wsLIAUoAgQgBkEwbGoiBCADKQPwBzcDACAEQShqIANBmAhqKQMANwMAIARBIGogA0GQCGopAwA3AwAgBEEYaiADQYgIaikDADcDACAEQRBqIANBgAhqKQMANwMAIARBCGogA0H4B2opAwA3AwAgBSAGQQFqNgIICyAILQAeBEAgA0GgCGogDUGzodoAQRggCCgCABDuBCAFKAIIIgYgBSgCAEYEQCAFEO8LCyAFKAIEIAZBMGxqIgQgAykDoAg3AwAgBEEoaiADQcgIaikDADcDACAEQSBqIANBwAhqKQMANwMAIARBGGogA0G4CGopAwA3AwAgBEEQaiADQbAIaikDADcDACAEQQhqIANBqAhqKQMANwMAIAUgBkEBajYCCAsgCC0AHwRAIANB0AhqIA1By6HaAEEeIAgoAgAQ7gQgBSgCCCIGIAUoAgBGBEAgBRDvCwsgBSgCBCAGQTBsaiIEIAMpA9AINwMAIARBKGogA0H4CGopAwA3AwAgBEEgaiADQfAIaikDADcDACAEQRhqIANB6AhqKQMANwMAIARBEGogA0HgCGopAwA3AwAgBEEIaiADQdgIaikDADcDACAFIAZBAWo2AggLIAgtACAEQCADQYAJaiANQemh2gBBHSAIKAIAEO4EIAUoAggiBiAFKAIARgRAIAUQ7wsLIAUoAgQgBkEwbGoiBCADKQOACTcDACAEQShqIANBqAlqKQMANwMAIARBIGogA0GgCWopAwA3AwAgBEEYaiADQZgJaikDADcDACAEQRBqIANBkAlqKQMANwMAIARBCGogA0GICWopAwA3AwAgBSAGQQFqNgIICyAILQAhBEAgA0GwCWogDUGGotoAQRcgCCgCABDuBCAFKAIIIgYgBSgCAEYEQCAFEO8LCyAFKAIEIAZBMGxqIgQgAykDsAk3AwAgBEEoaiADQdgJaikDADcDACAEQSBqIANB0AlqKQMANwMAIARBGGogA0HICWopAwA3AwAgBEEQaiADQcAJaikDADcDACAEQQhqIANBuAlqKQMANwMAIAUgBkEBajYCCAsgCC0AIgRAIANB4AlqIA1BnaLaAEEaIAgoAgAQ7gQgBSgCCCIGIAUoAgBGBEAgBRDvCwsgBSgCBCAGQTBsaiIEIAMpA+AJNwMAIARBKGogA0GICmopAwA3AwAgBEEgaiADQYAKaikDADcDACAEQRhqIANB+AlqKQMANwMAIARBEGogA0HwCWopAwA3AwAgBEEIaiADQegJaikDADcDACAFIAZBAWo2AggLIAgtACMEQCADQZAKaiANQbei2gBBGCAIKAIAEO4EIAUoAggiBiAFKAIARgRAIAUQ7wsLIAUoAgQgBkEwbGoiBCADKQOQCjcDACAEQShqIANBuApqKQMANwMAIARBIGogA0GwCmopAwA3AwAgBEEYaiADQagKaikDADcDACAEQRBqIANBoApqKQMANwMAIARBCGogA0GYCmopAwA3AwAgBSAGQQFqNgIICyAILQAkBEAgA0HACmogDUHPotoAQRkgCCgCABDuBCAFKAIIIgYgBSgCAEYEQCAFEO8LCyAFKAIEIAZBMGxqIgQgAykDwAo3AwAgBEEoaiADQegKaikDADcDACAEQSBqIANB4ApqKQMANwMAIARBGGogA0HYCmopAwA3AwAgBEEQaiADQdAKaikDADcDACAEQQhqIANByApqKQMANwMAIAUgBkEBajYCCAsgCC0AJQRAIANB8ApqIA1B6KLaAEEYIAgoAgAQ7gQgBSgCCCIGIAUoAgBGBEAgBRDvCwsgBSgCBCAGQTBsaiIEIAMpA/AKNwMAIARBKGogA0GYC2opAwA3AwAgBEEgaiADQZALaikDADcDACAEQRhqIANBiAtqKQMANwMAIARBEGogA0GAC2opAwA3AwAgBEEIaiADQfgKaikDADcDACAFIAZBAWo2AggLIAgtACYEQCADQaALaiANQYCj2gBBIyAIKAIAEO4EIAUoAggiBiAFKAIARgRAIAUQ7wsLIAUoAgQgBkEwbGoiBCADKQOgCzcDACAEQShqIANByAtqKQMANwMAIARBIGogA0HAC2opAwA3AwAgBEEYaiADQbgLaikDADcDACAEQRBqIANBsAtqKQMANwMAIARBCGogA0GoC2opAwA3AwAgBSAGQQFqNgIICyAILQAnBEAgA0HQC2ogDUGjo9oAQSMgCCgCABDuBCAFKAIIIgYgBSgCAEYEQCAFEO8LCyAFKAIEIAZBMGxqIgQgAykD0As3AwAgBEEoaiADQfgLaikDADcDACAEQSBqIANB8AtqKQMANwMAIARBGGogA0HoC2opAwA3AwAgBEEQaiADQeALaikDADcDACAEQQhqIANB2AtqKQMANwMAIAUgBkEBajYCCAsgCC0AKARAIANBgAxqIA1BxqPaAEEhIAgoAgAQ7gQgBSgCCCIGIAUoAgBGBEAgBRDvCwsgBSgCBCAGQTBsaiIEIAMpA4AMNwMAIARBKGogA0GoDGopAwA3AwAgBEEgaiADQaAMaikDADcDACAEQRhqIANBmAxqKQMANwMAIARBEGogA0GQDGopAwA3AwAgBEEIaiADQYgMaikDADcDACAFIAZBAWo2AggLIAgtACkEQCADQbAMaiANQeej2gBBCSAIKAIAEO4EIAUoAggiBiAFKAIARgRAIAUQ7wsLIAUoAgQgBkEwbGoiBCADKQOwDDcDACAEQShqIANB2AxqKQMANwMAIARBIGogA0HQDGopAwA3AwAgBEEYaiADQcgMaikDADcDACAEQRBqIANBwAxqKQMANwMAIARBCGogA0G4DGopAwA3AwAgBSAGQQFqNgIICyAILQAqBEAgA0HgDGogDUHwo9oAQQwgCCgCABDuBCAFKAIIIgYgBSgCAEYEQCAFEO8LCyAFKAIEIAZBMGxqIgQgAykD4Aw3AwAgBEEoaiADQYgNaikDADcDACAEQSBqIANBgA1qKQMANwMAIARBGGogA0H4DGopAwA3AwAgBEEQaiADQfAMaikDADcDACAEQQhqIANB6AxqKQMANwMAIAUgBkEBajYCCAsgCC0AKwRAIANBkA1qIA1B/KPaAEEIIAgoAgAQ7gQgBSgCCCIGIAUoAgBGBEAgBRDvCwsgBSgCBCAGQTBsaiIEIAMpA5ANNwMAIARBKGogA0G4DWopAwA3AwAgBEEgaiADQbANaikDADcDACAEQRhqIANBqA1qKQMANwMAIARBEGogA0GgDWopAwA3AwAgBEEIaiADQZgNaikDADcDACAFIAZBAWo2AggLIAgtACwEQCADQcANaiANQYSk2gBBCCAIKAIAEO4EIAUoAggiBiAFKAIARgRAIAUQ7wsLIAUoAgQgBkEwbGoiBCADKQPADTcDACAEQShqIANB6A1qKQMANwMAIARBIGogA0HgDWopAwA3AwAgBEEYaiADQdgNaikDADcDACAEQRBqIANB0A1qKQMANwMAIARBCGogA0HIDWopAwA3AwAgBSAGQQFqNgIICyAILQAtBEAgA0HwDWogDUGMpNoAQRwgCCgCABDuBCAFKAIIIgYgBSgCAEYEQCAFEO8LCyAFKAIEIAZBMGxqIgQgAykD8A03AwAgBEEoaiADQZgOaikDADcDACAEQSBqIANBkA5qKQMANwMAIARBGGogA0GIDmopAwA3AwAgBEEQaiADQYAOaikDADcDACAEQQhqIANB+A1qKQMANwMAIAUgBkEBajYCCAsgCC0ALgRAIANBoA5qIA1BqKTaAEEPIAgoAgAQ7gQgBSgCCCIGIAUoAgBGBEAgBRDvCwsgBSgCBCAGQTBsaiIEIAMpA6AONwMAIARBKGogA0HIDmopAwA3AwAgBEEgaiADQcAOaikDADcDACAEQRhqIANBuA5qKQMANwMAIARBEGogA0GwDmopAwA3AwAgBEEIaiADQagOaikDADcDACAFIAZBAWo2AggLIAgtAC8EQCADQdAOaiANQbek2gBBCyAIKAIAEO4EIAUoAggiBiAFKAIARgRAIAUQ7wsLIAUoAgQgBkEwbGoiBCADKQPQDjcDACAEQShqIANB+A5qKQMANwMAIARBIGogA0HwDmopAwA3AwAgBEEYaiADQegOaikDADcDACAEQRBqIANB4A5qKQMANwMAIARBCGogA0HYDmopAwA3AwAgBSAGQQFqNgIICyAILQAwBEAgA0GAD2ogDUGUy+AAQQcgCCgCABDuBCAFKAIIIgYgBSgCAEYEQCAFEO8LCyAFKAIEIAZBMGxqIgQgAykDgA83AwAgBEEoaiADQagPaikDADcDACAEQSBqIANBoA9qKQMANwMAIARBGGogA0GYD2opAwA3AwAgBEEQaiADQZAPaikDADcDACAEQQhqIANBiA9qKQMANwMAIAUgBkEBajYCCAsgCC0AMQRAIANBsA9qIA1ByOngAEEDIAgoAgAQ7gQgBSgCCCIGIAUoAgBGBEAgBRDvCwsgBSgCBCAGQTBsaiIEIAMpA7APNwMAIARBKGogA0HYD2opAwA3AwAgBEEgaiADQdAPaikDADcDACAEQRhqIANByA9qKQMANwMAIARBEGogA0HAD2opAwA3AwAgBEEIaiADQbgPaikDADcDACAFIAZBAWo2AggLIAgtADIEQCADQeAPaiANQcKk2gBBECAIKAIAEO4EIAUoAggiBiAFKAIARgRAIAUQ7wsLIAUoAgQgBkEwbGoiBCADKQPgDzcDACAEQShqIANBiBBqKQMANwMAIARBIGogA0GAEGopAwA3AwAgBEEYaiADQfgPaikDADcDACAEQRBqIANB8A9qKQMANwMAIARBCGogA0HoD2opAwA3AwAgBSAGQQFqNgIICyAILQAzBEAgA0GQEGogDUHSpNoAQQggCCgCABDuBCAFKAIIIgYgBSgCAEYEQCAFEO8LCyAFKAIEIAZBMGxqIgQgAykDkBA3AwAgBEEoaiADQbgQaikDADcDACAEQSBqIANBsBBqKQMANwMAIARBGGogA0GoEGopAwA3AwAgBEEQaiADQaAQaikDADcDACAEQQhqIANBmBBqKQMANwMAIAUgBkEBajYCCAsgCC0ANARAIANBwBBqIA1B2qTaAEEOIAgoAgAQ7gQgBSgCCCIGIAUoAgBGBEAgBRDvCwsgBSgCBCAGQTBsaiIEIAMpA8AQNwMAIARBKGogA0HoEGopAwA3AwAgBEEgaiADQeAQaikDADcDACAEQRhqIANB2BBqKQMANwMAIARBEGogA0HQEGopAwA3AwAgBEEIaiADQcgQaikDADcDACAFIAZBAWo2AggLIAgtADUEQCADQfAQaiANQeik2gBBGyAIKAIAEO4EIAUoAggiBiAFKAIARgRAIAUQ7wsLIAUoAgQgBkEwbGoiBCADKQPwEDcDACAEQShqIANBmBFqKQMANwMAIARBIGogA0GQEWopAwA3AwAgBEEYaiADQYgRaikDADcDACAEQRBqIANBgBFqKQMANwMAIARBCGogA0H4EGopAwA3AwAgBSAGQQFqNgIICyAILQA2BEAgA0GgEWogDUGDpdoAQRogCCgCABDuBCAFKAIIIgYgBSgCAEYEQCAFEO8LCyAFKAIEIAZBMGxqIgQgAykDoBE3AwAgBEEoaiADQcgRaikDADcDACAEQSBqIANBwBFqKQMANwMAIARBGGogA0G4EWopAwA3AwAgBEEQaiADQbARaikDADcDACAEQQhqIANBqBFqKQMANwMAIAUgBkEBajYCCAsgCC0ANwRAIANB0BFqIA1BvungAEEKIAgoAgAQ7gQgBSgCCCIGIAUoAgBGBEAgBRDvCwsgBSgCBCAGQTBsaiIEIAMpA9ARNwMAIARBKGogA0H4EWopAwA3AwAgBEEgaiADQfARaikDADcDACAEQRhqIANB6BFqKQMANwMAIARBEGogA0HgEWopAwA3AwAgBEEIaiADQdgRaikDADcDACAFIAZBAWo2AggLIAgtADgEQCADQYASaiANQZ2l2gBBFyAIKAIAEO4EIAUoAggiBiAFKAIARgRAIAUQ7wsLIAUoAgQgBkEwbGoiBCADKQOAEjcDACAEQShqIANBqBJqKQMANwMAIARBIGogA0GgEmopAwA3AwAgBEEYaiADQZgSaikDADcDACAEQRBqIANBkBJqKQMANwMAIARBCGogA0GIEmopAwA3AwAgBSAGQQFqNgIICyAILQA5BEAgA0GwEmogDUG0pdoAQRggCCgCABDuBCAFKAIIIgYgBSgCAEYEQCAFEO8LCyAFKAIEIAZBMGxqIgQgAykDsBI3AwAgBEEoaiADQdgSaikDADcDACAEQSBqIANB0BJqKQMANwMAIARBGGogA0HIEmopAwA3AwAgBEEQaiADQcASaikDADcDACAEQQhqIANBuBJqKQMANwMAIAUgBkEBajYCCAsgCC0AOgRAIANB4BJqIA1BzKXaAEESIAgoAgAQ7gQgBSgCCCIGIAUoAgBGBEAgBRDvCwsgBSgCBCAGQTBsaiIEIAMpA+ASNwMAIARBKGogA0GIE2opAwA3AwAgBEEgaiADQYATaikDADcDACAEQRhqIANB+BJqKQMANwMAIARBEGogA0HwEmopAwA3AwAgBEEIaiADQegSaikDADcDACAFIAZBAWo2AggLIAgtADsEQCADQZATaiANQd6l2gBBESAIKAIAEO4EIAUoAggiBiAFKAIARgRAIAUQ7wsLIAUoAgQgBkEwbGoiBCADKQOQEzcDACAEQShqIANBuBNqKQMANwMAIARBIGogA0GwE2opAwA3AwAgBEEYaiADQagTaikDADcDACAEQRBqIANBoBNqKQMANwMAIARBCGogA0GYE2opAwA3AwAgBSAGQQFqNgIICyAILQA8BEAgA0HAE2ogDUHvpdoAQRcgCCgCABDuBCAFKAIIIgYgBSgCAEYEQCAFEO8LCyAFKAIEIAZBMGxqIgQgAykDwBM3AwAgBEEoaiADQegTaikDADcDACAEQSBqIANB4BNqKQMANwMAIARBGGogA0HYE2opAwA3AwAgBEEQaiADQdATaikDADcDACAEQQhqIANByBNqKQMANwMAIAUgBkEBajYCCAsgCC0APQRAIANB8BNqIA1BhqbaAEEdIAgoAgAQ7gQgBSgCCCIGIAUoAgBGBEAgBRDvCwsgBSgCBCAGQTBsaiIEIAMpA/ATNwMAIARBKGogA0GYFGopAwA3AwAgBEEgaiADQZAUaikDADcDACAEQRhqIANBiBRqKQMANwMAIARBEGogA0GAFGopAwA3AwAgBEEIaiADQfgTaikDADcDACAFIAZBAWo2AggLIAgtAD4EQCADQaAUaiANQaOm2gBBAyAIKAIAEO4EIAUoAggiBiAFKAIARgRAIAUQ7wsLIAUoAgQgBkEwbGoiBCADKQOgFDcDACAEQShqIANByBRqKQMANwMAIARBIGogA0HAFGopAwA3AwAgBEEYaiADQbgUaikDADcDACAEQRBqIANBsBRqKQMANwMAIARBCGogA0GoFGopAwA3AwAgBSAGQQFqNgII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QRhqIANByBhqKQMANwMAIARBEGogA0HAGGopAwA3AwAgBEEIaiADQbgYaikDADcDACAFIAZBAWo2AggLIAgtAEoEQCADQeAYaiANQfWn2gBBECAIKAIAEO4EIAUoAggiBiAFKAIARgRAIAUQ7wsLIAUoAgQgBkEwbGoiBCADKQPgGDcDACAEQShqIANBiBlqKQMANwMAIARBIGogA0GAGWopAwA3AwAgBEEYaiADQfgYaikDADcDACAEQRBqIANB8BhqKQMANwMAIARBCGogA0HoGGopAwA3AwAgBSAGQQFqNgIICyAILQBLBEAgA0GQGWogDUGFqNoAQRkgCCgCABDuBCAFKAIIIgYgBSgCAEYEQCAFEO8LCyAFKAIEIAZBMGxqIgQgAykDkBk3AwAgBEEoaiADQbgZaikDADcDACAEQSBqIANBsBlqKQMANwMAIARBGGogA0GoGWopAwA3AwAgBEEQaiADQaAZaikDADcDACAEQQhqIANBmBlqKQMANwMAIAUgBkEBajYCCAsgCC0ATARAIANBwBlqIA1BnqjaAEEPIAgoAgAQ7gQgBSgCCCIGIAUoAgBGBEAgBRDvCwsgBSgCBCAGQTBsaiIEIAMpA8AZNwMAIARBKGogA0HoGWopAwA3AwAgBEEgaiADQeAZaikDADcDACAEQRhqIANB2BlqKQMANwMAIARBEGogA0HQGWopAwA3AwAgBEEIaiADQcgZaikDADcDACAFIAZBAWo2AggLIAgtAE0EQCADQfAZaiANQa2o2gBBFSAIKAIAEO4EIAUoAggiBiAFKAIARgRAIAUQ7wsLIAUoAgQgBkEwbGoiBCADKQPwGTcDACAEQShqIANBmBpqKQMANwMAIARBIGogA0GQGmopAwA3AwAgBEEYaiADQYgaaikDADcDACAEQRBqIANBgBpqKQMANwMAIARBCGogA0H4GWopAwA3AwAgBSAGQQFqNgIICyAILQBOBEAgA0GgGmogDUHCqNoAQQ8gCCgCABDuBCAFKAIIIgYgBSgCAEYEQCAFEO8LCyAFKAIEIAZBMGxqIgQgAykDoBo3AwAgBEEoaiADQcgaaikDADcDACAEQSBqIANBwBpqKQMANwMAIARBGGogA0G4GmopAwA3AwAgBEEQaiADQbAaaikDADcDACAEQQhqIANBqBpqKQMANwMAIAUgBkEBajYCCAsgCC0ATwRAIANB0BpqIA1B0ajaAEEXIAgoAgAQ7gQgBSgCCCIGIAUoAgBGBEAgBRDvCwsgBSgCBCAGQTBsaiIEIAMpA9AaNwMAIARBKGogA0H4GmopAwA3AwAgBEEgaiADQfAaaikDADcDACAEQRhqIANB6BpqKQMANwMAIARBEGogA0HgGmopAwA3AwAgBEEIaiADQdgaaikDADcDACAFIAZBAWo2AggLIAgtAFAEQCADQYAbaiANQeio2gBBHSAIKAIAEO4EIAUoAggiBiAFKAIARgRAIAUQ7wsLIAUoAgQgBkEwbGoiBCADKQOAGzcDACAEQShqIANBqBtqKQMANwMAIARBIGogA0GgG2opAwA3AwAgBEEYaiADQZgbaikDADcDACAEQRBqIANBkBtqKQMANwMAIARBCGogA0GIG2opAwA3AwAgBSAGQQFqNgIICyAILQBRBEAgA0GwG2ogDUHtoOAAQQUgCCgCABDuBCAFKAIIIgYgBSgCAEYEQCAFEO8LCyAFKAIEIAZBMGxqIgQgAykDsBs3AwAgBEEoaiADQdgbaikDADcDACAEQSBqIANB0BtqKQMANwMAIARBGGogA0HIG2opAwA3AwAgBEEQaiADQcAbaikDADcDACAEQQhqIANBuBtqKQMANwMAIAUgBkEBajYCCAsgCC0AUgRAIANB4BtqIA1BhanaAEEIIAgoAgAQ7gQgBSgCCCIGIAUoAgBGBEAgBRDvCwsgBSgCBCAGQTBsaiIEIAMpA+AbNwMAIARBKGogA0GIHGopAwA3AwAgBEEgaiADQYAcaikDADcDACAEQRhqIANB+BtqKQMANwMAIARBEGogA0HwG2opAwA3AwAgBEEIaiADQegbaikDADcDACAFIAZBAWo2AggLIAgtAFMEQCADQZAcaiANQY2p2gBBEyAIKAIAEO4EIAUoAggiBiAFKAIARgRAIAUQ7wsLIAUoAgQgBkEwbGoiBCADKQOQHDcDACAEQShqIANBuBxqKQMANwMAIARBIGogA0GwHGopAwA3AwAgBEEYaiADQagcaikDADcDACAEQRBqIANBoBxqKQMANwMAIARBCGogA0GYHGopAwA3AwAgBSAGQQFqNgIICyAILQBUBEAgA0HAHGogDUGgqdoAQQwgCCgCABDuBCAFKAIIIgYgBSgCAEYEQCAFEO8LCyAFKAIEIAZBMGxqIgQgAykDwBw3AwAgBEEoaiADQegcaikDADcDACAEQSBqIANB4BxqKQMANwMAIARBGGogA0HYHGopAwA3AwAgBEEQaiADQdAcaikDADcDACAEQQhqIANByBxqKQMANwMAIAUgBkEBajYCCAsgCC0AVQRAIANB8BxqIA1BrKnaAEEPIAgoAgAQ7gQgBSgCCCIGIAUoAgBGBEAgBRDvCwsgBSgCBCAGQTBsaiIEIAMpA/AcNwMAIARBKGogA0GYHWopAwA3AwAgBEEgaiADQZAdaikDADcDACAEQRhqIANBiB1qKQMANwMAIARBEGogA0GAHWopAwA3AwAgBEEIaiADQfgcaikDADcDACAFIAZBAWo2AggLIAgtAFYEQCADQaAdaiANQb274ABBBiAIKAIAEO4EIAUoAggiBiAFKAIARgRAIAUQ7wsLIAUoAgQgBkEwbGoiBCADKQOgHTcDACAEQShqIANByB1qKQMANwMAIARBIGogA0HAHWopAwA3AwAgBEEYaiADQbgdaikDADcDACAEQRBqIANBsB1qKQMANwMAIARBCGogA0GoHWopAwA3AwAgBSAGQQFqNgIICyAILQBXBEAgA0HQHWogDUG7qdoAQQcgCCgCABDuBCAFKAIIIgYgBSgCAEYEQCAFEO8LCyAFKAIEIAZBMGxqIgQgAykD0B03AwAgBEEoaiADQfgdaikDADcDACAEQSBqIANB8B1qKQMANwMAIARBGGogA0HoHWopAwA3AwAgBEEQaiADQeAdaikDADcDACAEQQhqIANB2B1qKQMANwMAIAUgBkEBajYCCAsgCC0AWARAIANBgB5qIA1BwqnaAEEdIAgoAgAQ7gQgBSgCCCIGIAUoAgBGBEAgBRDvCwsgBSgCBCAGQTBsaiIEIAMpA4AeNwMAIARBKGogA0GoHmopAwA3AwAgBEEgaiADQaAeaikDADcDACAEQRhqIANBmB5qKQMANwMAIARBEGogA0GQHmopAwA3AwAgBEEIaiADQYgeaikDADcDACAFIAZBAWo2AggLIAgtAFkEQCADQbAeaiANQd+p2gBBFCAIKAIAEO4EIAUoAggiBiAFKAIARgRAIAUQ7wsLIAUoAgQgBkEwbGoiBCADKQOwHjcDACAEQShqIANB2B5qKQMANwMAIARBIGogA0HQHmopAwA3AwAgBEEYaiADQcgeaikDADcDACAEQRBqIANBwB5qKQMANwMAIARBCGogA0G4HmopAwA3AwAgBSAGQQFqNgIICyAILQBaBEAgA0HgHmogDUHzqdoAQREgCCgCABDuBCAFKAIIIgYgBSgCAEYEQCAFEO8LCyAFKAIEIAZBMGxqIgQgAykD4B43AwAgBEEoaiADQYgfaikDADcDACAEQSBqIANBgB9qKQMANwMAIARBGGogA0H4HmopAwA3AwAgBEEQaiADQfAeaikDADcDACAEQQhqIANB6B5qKQMANwMAIAUgBkEBajYCCAsgCC0AWwRAIANBkB9qIA1BhKraAEEQIAgoAgAQ7gQgBSgCCCIGIAUoAgBGBEAgBRDvCwsgBSgCBCAGQTBsaiIEIAMpA5AfNwMAIARBKGogA0G4H2opAwA3AwAgBEEgaiADQbAfaikDADcDACAEQRhqIANBqB9qKQMANwMAIARBEGogA0GgH2opAwA3AwAgBEEIaiADQZgfaikDADcDACAFIAZBAWo2AggLIAgtAFwEQCADQcAfaiANQZSq2gBBHyAIKAIAEO4EIAUoAggiBiAFKAIARgRAIAUQ7wsLIAUoAgQgBkEwbGoiBCADKQPAHzcDACAEQShqIANB6B9qKQMANwMAIARBIGogA0HgH2opAwA3AwAgBEEYaiADQdgfaikDADcDACAEQRBqIANB0B9qKQMANwMAIARBCGogA0HIH2opAwA3AwAgBSAGQQFqNgIICyAILQBdBEAgA0HwH2ogDUGzqtoAQSYgCCgCABDuBCAFKAIIIgYgBSgCAEYEQCAFEO8LCyAFKAIEIAZBMGxqIgQgAykD8B83AwAgBEEoaiADQZggaikDADcDACAEQSBqIANBkCBqKQMANwMAIARBGGogA0GIIGopAwA3AwAgBEEQaiADQYAgaikDADcDACAEQQhqIANB+B9qKQMANwMAIAUgBkEBajYCCAsgCC0AXgRAIANBoCBqIA1B2araAEEfIAgoAgAQ7gQgBSgCCCIGIAUoAgBGBEAgBRDvCwsgBSgCBCAGQTBsaiIEIAMpA6AgNwMAIARBKGogA0HIIGopAwA3AwAgBEEgaiADQcAgaikDADcDACAEQRhqIANBuCBqKQMANwMAIARBEGogA0GwIGopAwA3AwAgBEEIaiADQaggaikDADcDACAFIAZBAWo2AggLIAgtAF8EQCADQdAgaiANQfiq2gBBISAIKAIAEO4EIAUoAggiBiAFKAIARgRAIAUQ7wsLIAUoAgQgBkEwbGoiBCADKQPQIDcDACAEQShqIANB+CBqKQMANwMAIARBIGogA0HwIGopAwA3AwAgBEEYaiADQeggaikDADcDACAEQRBqIANB4CBqKQMANwMAIARBCGogA0HYIGopAwA3AwAgBSAGQQFqNgIICyAILQBgBEAgA0GAIWogDUGZq9oAQRsgCCgCABDuBCAFKAIIIgYgBSgCAEYEQCAFEO8LCyAFKAIEIAZBMGxqIgQgAykDgCE3AwAgBEEoaiADQaghaikDADcDACAEQSBqIANBoCFqKQMANwMAIARBGGogA0GYIWopAwA3AwAgBEEQaiADQZAhaikDADcDACAEQQhqIANBiCFqKQMANwMAIAUgBkEBajYCCAsgCC0AYQRAIANBsCFqIA1BtKvaAEEMIAgoAgAQ7gQgBSgCCCIGIAUoAgBGBEAgBRDvCwsgBSgCBCAGQTBsaiIEIAMpA7AhNwMAIARBKGogA0HYIWopAwA3AwAgBEEgaiADQdAhaikDADcDACAEQRhqIANByCFqKQMANwMAIARBEGogA0HAIWopAwA3AwAgBEEIaiADQbghaikDADcDACAFIAZBAWo2AggLIAgtAGIEQCADQeAhaiANQcCr2gBBIyAIKAIAEO4EIAUoAggiBiAFKAIARgRAIAUQ7wsLIAUoAgQgBkEwbGoiBCADKQPgITcDACAEQShqIANBiCJqKQMANwMAIARBIGogA0GAImopAwA3AwAgBEEYaiADQfghaikDADcDACAEQRBqIANB8CFqKQMANwMAIARBCGogA0HoIWopAwA3AwAgBSAGQQFqNgIICyAILQBjBEAgA0GQImogDUHjq9oAQQsgCCgCABDuBCAFKAIIIgYgBSgCAEYEQCAFEO8LCyAFKAIEIAZBMGxqIgQgAykDkCI3AwAgBEEoaiADQbgiaikDADcDACAEQSBqIANBsCJqKQMANwMAIARBGGogA0GoImopAwA3AwAgBEEQaiADQaAiaikDADcDACAEQQhqIANBmCJqKQMANwMAIAUgBkEBajYCCAsgCC0AZARAIANBwCJqIA1B7qvaAEEMIAgoAgAQ7gQgBSgCCCIGIAUoAgBGBEAgBRDvCwsgBSgCBCAGQTBsaiIEIAMpA8AiNwMAIARBKGogA0HoImopAwA3AwAgBEEgaiADQeAiaikDADcDACAEQRhqIANB2CJqKQMANwMAIARBEGogA0HQImopAwA3AwAgBEEIaiADQcgiaikDADcDACAFIAZBAWo2AggLIAgtAGUEQCADQfAiaiANQfqr2gBBCyAIKAIAEO4EIAUoAggiBiAFKAIARgRAIAUQ7wsLIAUoAgQgBkEwbGoiBCADKQPwIjcDACAEQShqIANBmCNqKQMANwMAIARBIGogA0GQI2opAwA3AwAgBEEYaiADQYgjaikDADcDACAEQRBqIANBgCNqKQMANwMAIARBCGogA0H4ImopAwA3AwAgBSAGQQFqNgIICyAILQBmBEAgA0GgI2ogDUGFrNoAQQggCCgCABDuBCAFKAIIIgYgBSgCAEYEQCAFEO8LCyAFKAIEIAZBMGxqIgQgAykDoCM3AwAgBEEoaiADQcgjaikDADcDACAEQSBqIANBwCNqKQMANwMAIARBGGogA0G4I2opAwA3AwAgBEEQaiADQbAjaikDADcDACAEQQhqIANBqCNqKQMANwMAIAUgBkEBajYCCAsgCC0AZwRAIANB0CNqIA1BjazaAEEJIAgoAgAQ7gQgBSgCCCIGIAUoAgBGBEAgBRDvCwsgBSgCBCAGQTBsaiIEIAMpA9AjNwMAIARBKGogA0H4I2opAwA3AwAgBEEgaiADQfAjaikDADcDACAEQRhqIANB6CNqKQMANwMAIARBEGogA0HgI2opAwA3AwAgBEEIaiADQdgjaikDADcDACAFIAZBAWo2AggLIAgtAGgEQCADQYAkaiANQZas2gBBGiAIKAIAEO4EIAUoAggiBiAFKAIARgRAIAUQ7wsLIAUoAgQgBkEwbGoiBCADKQOAJDcDACAEQShqIANBqCRqKQMANwMAIARBIGogA0GgJGopAwA3AwAgBEEYaiADQZgkaikDADcDACAEQRBqIANBkCRqKQMANwMAIARBCGogA0GIJGopAwA3AwAgBSAGQQFqNgIICyAILQBpBEAgA0GwJGogDUGwrNoAQRQgCCgCABDuBCAFKAIIIgYgBSgCAEYEQCAFEO8LCyAFKAIEIAZBMGxqIgQgAykDsCQ3AwAgBEEoaiADQdgkaikDADcDACAEQSBqIANB0CRqKQMANwMAIARBGGogA0HIJGopAwA3AwAgBEEQaiADQcAkaikDADcDACAEQQhqIANBuCRqKQMANwMAIAUgBkEBajYCCAsgCC0AagRAIANB4CRqIA1BxKzaAEERIAgoAgAQ7gQgBSgCCCIGIAUoAgBGBEAgBRDvCwsgBSgCBCAGQTBsaiIEIAMpA+AkNwMAIARBKGogA0GIJWopAwA3AwAgBEEgaiADQYAlaikDADcDACAEQRhqIANB+CRqKQMANwMAIARBEGogA0HwJGopAwA3AwAgBEEIaiADQegkaikDADcDACAFIAZBAWo2AggLIAgtAGsEQCADQZAlaiANQdWs2gBBCCAIKAIAEO4EIAUoAggiBiAFKAIARgRAIAUQ7wsLIAUoAgQgBkEwbGoiBCADKQOQJTcDACAEQShqIANBuCVqKQMANwMAIARBIGogA0GwJWopAwA3AwAgBEEYaiADQaglaikDADcDACAEQRBqIANBoCVqKQMANwMAIARBCGogA0GYJWopAwA3AwAgBSAGQQFqNgIICyAILQBsBEAgA0HAJWogDUHdrNoAQQcgCCgCABDuBCAFKAIIIgYgBSgCAEYEQCAFEO8LCyAFKAIEIAZBMGxqIgQgAykDwCU3AwAgBEEoaiADQeglaikDADcDACAEQSBqIANB4CVqKQMANwMAIARBGGogA0HYJWopAwA3AwAgBEEQaiADQdAlaikDADcDACAEQQhqIANByCVqKQMANwMAIAUgBkEBajYCCAsgCC0AbQRAIANB8CVqIA1BwKPgAEEFIAgoAgAQ7gQgBSgCCCIGIAUoAgBGBEAgBRDvCwsgBSgCBCAGQTBsaiIEIAMpA/AlNwMAIARBKGogA0GYJmopAwA3AwAgBEEgaiADQZAmaikDADcDACAEQRhqIANBiCZqKQMANwMAIARBEGogA0GAJmopAwA3AwAgBEEIaiADQfglaikDADcDACAFIAZBAWo2AggLIAgtAG4EQCADQaAmaiANQeSs2gBBCSAIKAIAEO4EIAUoAggiBiAFKAIARgRAIAUQ7wsLIAUoAgQgBkEwbGoiBCADKQOgJjcDACAEQShqIANByCZqKQMANwMAIARBIGogA0HAJmopAwA3AwAgBEEYaiADQbgmaikDADcDACAEQRBqIANBsCZqKQMANwMAIARBCGogA0GoJmopAwA3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IANBBGooAgAgA0EIaigCABCdLwsgA0EcahCxKCADQThqIggoAgAgA0E8aigCABCYFyADQTRqKAIAIAgoAgAQry8gA0HEAGoiCCgCACADQcgAaigCABDmGyADQUBrKAIAIAgoAgAQsC8gA0HQAGohAyAFQQFrIQUMAAsACyAMQdAFaiIOIANBBGpBzAAQgQkaQaC/5AAtAAAaQdAAEIQBIgNFDQMgAyALNgIAIANBBGogDkHMABCBCRogDEEBOgCYByAMIAM2ApQHIAwgDEHcA2o2ApAHIAxBkAdqIgMQrAIgAxCtGSAMKAKUByIDQRRqIgsoAgAgA0EYaigCABDKJSADKAIQIAsoAgAQsS8gAygCAEECRwRAIAMoAgQgA0EIaigCABCdLwsgAygCHCADQSBqKAIAEKgvIANBLGoiCygCACADQTBqKAIAEMslIAMoAiggCygCABCmLyADQThqIgsoAgAgA0E8aigCABCYFyADKAI0IAsoAgAQry8gA0HEAGoiCygCACADQcgAaigCABDmGyADKAJAIAsoAgAQsC8gA0HQAEEEEKIYIAVB0ABrIQUgCCEDDAELCyAMQagHaiIDKAIQIggEQCADKAIMIg4gAygCCCIFKAIIIgtHBEAgBSgCBCIKIAtB0ABsaiAKIA5B0ABsaiAIQdAAbBCgMhogAygCECEICyAFIAggC2o2AggLIAkNAiAxEMAnCyAMKALkAyEDIAwoAugDIgUoAgAiCARAIAMgCBECAAsgBSgCBCIIBEAgAyAIIAUoAggQohgLIAwoAvgDIQUgDCgC9AMhAwNAIAUEQCADQRRqIggoAgAgA0EYaigCABDKJSADQRBqKAIAIAgoAgAQsS8gAygCAEECRwRAIANBBGooAgAgA0EIaigCABCdLwsgA0EcaigCACADQSBqKAIAEKgvIANBLGoiCCgCACADQTBqKAIAEMslIANBKGooAgAgCCgCABCmLyADQThqIggoAgAgA0E8aigCABCYFyADQTRqKAIAIAgoAgAQry8gA0HEAGoiCCgCACADQcgAaigCABDmGyADQUBrKAIAIAgoAgAQsC8gBUEBayEFIANB0ABqIQMMAQsLIAwoAvADIAwoAvQDQQRB0AAQryogDEGABGoQpQwgDEGUBGoQpQwgDCgCrAQiAwRAIAxB0AVqQRBBCCADQQFqEKYT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IARBqANqIARBwAFqKAIANgIAIARBoANqIARBuAFqKQIANwMAIARBmANqIARBsAFqKQIANwMAIAQgBCkCqAE3A5ADIARB+AJqIgUgBEGQA2oiBhDyFSABIAIgAy0AcCAFENwmIAQoAqgBIgNBgICAgHhGBEAgBEGcA2ogBEGAA2opAgA3AgAgBCAEKQL4AjcClAMgBEEANgKQAyABIAYQwAwgAiABEP0hDBULIABBBGogBEGsAWpBJBCBCRogACADNgIAIAQoAvgCIAQoAvwCEKgvDBYLIARBADYCxAIgBEKAgICAwAA3ArwCIAEoAgAhAyAEQZQDaiEBIARBrAFqIQUCQANAAkAgBEGoAWogAxDZECAEKAKoASICQRBGDQAgASAFKQIANwIAIAFBEGogBUEQaikCADcCACABQQhqIgYgBUEIaikCADcCACAEIAI2ApADAkACQAJAAkACQAJAAkACQAJAAkAgAkEHa0EAIAJBCE8bQQFrDggAAQIDBAUGBwgLIARBgANqIAYoAgA2AgAgBCABKQIANwP4AiAEQcgCaiAEQfgCahCLFwwICyAEQQE2AqwBIARBrM/EADYCqAEgBEIANwK0ASAEIARB0ABqNgKwASAEQagBakG0z8QAEJImAAsgBEEBNgKsASAEQZTQxAA2AqgBIARCADcCtAEgBCAEQdAAajYCsAEgBEGoAWpBnNDEABCSJgALIARBATYCrAEgBEH80MQANgKoASAEQgA3ArQBIAQgBEHQAGo2ArABIARBqAFqQYTRxAAQkiYACyAEQQE2AqwBIARB4NHEADYCqAEgBEIANwK0ASAEIARB0ABqNgKwASAEQagBakHo0cQAEJImAAsgBEEBNgKsASAEQczSxAA2AqgBIARCADcCtAEgBCAEQdAAajYCsAEgBEGoAWpB1NLEABCSJgALIARBCDYCyAIMAgsgBEEBNgKsASAEQbzTxAA2AqgBIARCADcCtAEgBCAEQdAAajYCsAEgBEGoAWpBxNPEABCSJgALIARB4AJqIARBqANqKAIANgIAIARB2AJqIARBoANqKQIANwMAIARB0AJqIARBmANqKQIANwMAIAQgBCkCkAM3A8gCCyACQQlPBEAgBEGQA2oQ5B0LIAQoAsgCQQhGDQIgBEGoAWogAxDZECAEKAKoAUEQRg0NIARBqANqIARBwAFqKAIANgIAIARBoANqIARBuAFqKQIANwMAIARBmANqIARBsAFqKQIANwMAIAQgBCkCqAEiFjcDkAMgFqdBD0cNDiAEQZADahDkHSAEQbwCaiAEQcgCahDzFgwBCwsgBEEINgLIAgsgBEHIAmoQlSwgBCgCwAIgBCgCxAIQ8wogBEGoAWoiASAEQbwCahB6IAMgARD9IQwTCyAEQQA2ApwCIARCgICAgMAANwKUAiABKAIAIQUgBEGUA2ohASAEQawBaiEDA0AgBEGoAWogBRDZEAJAAkAgBCgCqAEiAkEQRwRAIAEgAykCADcCACABQRBqIANBEGopAgA3AgAgAUEIaiIGIANBCGopAgA3AgAgBCACNgKQAwJAAkACQAJAAkACQAJAAkACQAJAIAJBB2tBACACQQhPG0EBaw4IAAECAwQFBgcICyAEQYADaiAGKAIANgIAIAQgASkCADcD+AIgBEGgAmogBEH4AmoQixcMCAsgBEEBNgKsASAEQajKxAA2AqgBIARCADcCtAEgBCAEQdAAajYCsAEgBEGoAWpBsMrEABCSJgALIARBATYCrAEgBEGUy8QANgKoASAEQgA3ArQBIAQgBEHQAGo2ArABIARBqAFqQZzLxAAQkiYACyAEQQE2AqwBIARBgMzEADYCqAEgBEIANwK0ASAEIARB0ABqNgKwASAEQagBakGIzMQAEJImAAsgBEEBNgKsASAEQeTMxAA2AqgBIARCADcCtAEgBCAEQdAAajYCsAEgBEGoAWpB7MzEABCSJgALIARBCDYCoAIMAwsgBEEBNgKsASAEQdDNxAA2AqgBIARCADcCtAEgBCAEQdAAajYCsAEgBEGoAWpB2M3EABCSJgALIARBATYCrAEgBEHAzsQANgKoASAEQgA3ArQBIAQgBEHQAGo2ArABIARBqAFqQcjOxAAQkiYACyAEQbgCaiAEQagDaigCADYCACAEQbACaiAEQaADaikCADcDACAEQagCaiAEQZgDaikCADcDACAEIAQpApADNwOgAgsgAkEJTwRAIARBkANqEOQdCyAEKAKgAkEIRg0BIARBwAFqIARBuAJqKAIANgIAIARBuAFqIARBsAJqKQMANwMAIARBsAFqIARBqAJqKQMANwMAIAQgBCkDoAIiFjcDqAEgFqdFDQIgBEGUAmogBEGgAmoQ8xYMAwsgBEEI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IAQpA+ABNwMAIAUgAzoALSAFQQA6ACwgBSANNgIoIAUgDzYCJCAFIAk2AiAgBUEQaiAEQfABaikDADcDACAFQQhqIARB6AFqKQMANwMAIAUgASACIAEgAksbNgIcIAUgASACIAEgAkkbNgIYCyAAIAU2AgQgACAXNgIAIARBkAJqJAAPCwAL8zICC38CfiMAQZAEayICJAAgAUHIAmohBSABQShqIQgCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgASgCyAIiA0ElRgRAIAEoAvACIQMgAUElNgLwAgJAIANBJUcEQCACQTxqIAFBlANqKAIANgIAIAJBNGogAUGMA2opAgA3AgAgAkEsaiABQYQDaikCADcCACACQSRqIAFB/AJqKQIANwIAIAIgAzYCGCACIAEpAvQCNwIcDAELIAJBGGogCBAyIAUoAgBBJUYNACAFEOgDCyAFIAIpAxg3AwAgBUEgaiACQThqKQMANwMAIAVBGGogAkEwaikDADcDACAFQRBqIAJBKGopAwA3AwAgBUEIaiACQSBqKQMANwMAIAUoAgAiA0ElRg0BCyADQRRHDQEgAS0AzAJBBEcNAQwMCyABKALwAiEDIAFBJTYC8AICQCADQSVHBEAgAkE8aiABQZQDaigCADYCACACQTRqIAFBjANqKQIANwIAIAJBLGogAUGEA2opAgA3AgAgAkEkaiABQfwCaikCADcCACACIAM2AhggAiABKQL0AjcCHAwBCyACQRhqIAgQMiAFKAIAQSVGDQAgBRDoAwsgBSACKQMYNwMAIAVBIGogAkE4aikDADcDACAFQRhqIAJBMGopAwA3AwAgBUEQaiACQShqKQMANwMAIAVBCGogAkEgaikDADcDACAFKAIAIgNBJUYNAQsgA0EJRw0BIAJBGGogARDIAgJAAkACQAJAAkACQAJAAkAgAi0AwwJBAXFFDQAgAigCoAIiBCgCCCIDQf7///8HSw0BIAQoAhRFDQAgAw0CIARBfzYCCCACKAKcAiIDKAIIDQMgA0F/NgIIIAQoAhAhByADQQxqIAQoAhQiBhDkJyADKAIQIAMoAhRBAnRqIAcgBkECdBCBCRogAyAGIAMoAhRqNgIUIARBADYCFCADIAMoAghBAWo2AgggBCAEKAIIQQFqNgIICyACQUBrIQYgAkEBOgDCAiACQeACaiEEAn8CQCACKALgAiIDQSVHDQAgAigCiAMhAyACQSU2AogDAkAgA0ElRwRAIAJBjARqIAJBrANqKAIANgIAIAJBhARqIAJBpANqKQIANwIAIAJB/ANqIAJBnANqKQIANwIAIAJB9ANqIAJBlANqKQIANwIAIAIgAikCjAM3AuwDIAIgAzYC6AMMAQsgAkHoA2ogBhAyIAIoAuACQSVGDQAgBBDoAwsgBCACKQPoAzcDACAEQSBqIAJBiARqKQMANwMAIARBGGogAkGABGopAwA3AwAgBEEQaiACQfgDaikDADcDACAEQQhqIAJB8ANqKQMANwMAIAIoAuACIgNBJUcNACACKAKYAiEBIAJBADoA6AMgASABIAJB6ANqEO8bDAELIANBJEcEQCACQfwDaiIHIAJB9AJqKAIANgIAIAJB9ANqIgkgAkHsAmopAgA3AgAgAiACKQLkAjcC7AMgAiADNgLoAyACIAIpA/gCNwOwAyACQSU2AuACIAJB6ANqEOgDAkACQAJAIAIoAuACIgNBJUYEQCACKAKIAyEDIAJBJTYCiAMCQCADQSVHBEAgAkGMBGogAkGsA2ooAgA2AgAgAkGEBGogAkGkA2opAgA3AgAgByACQZwDaikCADcCACAJIAJBlANqKQIANwIAIAIgAikCjAM3AuwDIAIgAzYC6AMMAQsgAkHoA2ogBhAyIAIoAuACQSVGDQAgBBDoAwsgBCACKQPoAzcDACAEQSBqIAJBiARqKQMANwMAIARBGGogAkGABGopAwA3AwAgBEEQaiACQfgDaikDADcDACAEQQhqIAJB8ANqKQMANwMAIAIoAuACIgNBJUYNAQsgA0EKRw0BDBULIAIoAogDIQMgAkElNgKIAwJAIANBJUcEQCACQYwEaiACQawDaigCADYCACACQYQEaiACQaQDaikCADcCACACQfwDaiACQZwDaikCADcCACACQfQDaiACQZQDaikCADcCACACIAIpAowDNwLsAyACIAM2AugDDAELIAJB6ANqIAYQMiACKALgAkElRg0AIAQQ6AMLIAQgAikD6AM3AwAgBEEgaiACQYgEaikDADcDACAEQRhqIAJBgARqKQMANwMAIARBEGogAkH4A2opAwA3AwAgBEEIaiACQfADaikDADcDACACKALgAiIDQSVGDQELIANBB0YNEwsgAkHoA2ogAkEYahDhBiACLQDoA0UEQCACQeQCaiEHAkACQAJAAkACQAJAIAIoAuACIgNBJUYEQCACKAKIAyEDIAJBJTYCiAMCQCADQSVHBEAgAkGMBGogAkGsA2ooAgA2AgAgAkGEBGogAkGkA2opAgA3AgAgAkH8A2ogAkGcA2opAgA3AgAgAkH0A2ogAkGUA2opAgA3AgAgAiACKQKMAzcC7AMgAiADNgLoAwwBCyACQegDaiAGEDIgAigC4AJBJUYNACAEEOgDCyAEIAIpA+gDNwMAIARBIGogAkGIBGopAwA3AwAgBEEYaiACQYAEaikDADcDACAEQRBqIAJB+ANqKQMANwMAIARBCGogAkHwA2opAwA3AwAgAigC4AIiA0ElRg0BCyADQQJHDQEMDQsgAigCiAMhAyACQSU2AogDAkAgA0ElRwRAIAJBjARqIAJBrANqKAIANgIAIAJBhARqIAJBpANqKQIANwIAIAJB/ANqIAJBnANqKQIANwIAIAJB9ANqIAJBlANqKQIANwIAIAIgAikCjAM3AuwDIAIgAzYC6AMMAQsgAkHoA2ogBhAyIAIoAuACQSVGDQAgBBDoAwsgBCACKQPoAzcDACAEQSBqIAJBiARqKQMANwMAIARBGGogAkGABGopAwA3AwAgBEEQaiACQfgDaikDADcDACAEQQhqIAJB8ANqKQMANwMAIAIoAuACIgNBJUYNAQsgA0ECRw0BIAItAOgCQQJHDQEgAi0A6QJBF0YNCwwBCyACKAKIAyEDIAJBJTYCiAMCQCADQSVHBEAgAkGMBGogAkGsA2ooAgA2AgAgAkGEBGogAkGkA2opAgA3AgAgAkH8A2ogAkGcA2opAgA3AgAgAkH0A2ogAkGUA2opAgA3AgAgAiACKQKMAzcC7AMgAiADNgLoAwwBCyACQegDaiAGEDIgAigC4AJBJUYNACAEEOgDCyAEIAIpA+gDNwMAIARBIGogAkGIBGopAwA3AwAgBEEYaiACQYAEaikDADcDACAEQRBqIAJB+ANqKQMANwMAIARBCGogAkHwA2opAwA3AwAgAigC4AIiA0ElRg0BCyADQQ1HDQEMCAsgAigCiAMhAyACQSU2AogDAkAgA0ElRwRAIAJBjARqIAJBrANqKAIANgIAIAJBhARqIAJBpANqKQIANwIAIAJB/ANqIAJBnANqKQIANwIAIAJB9ANqIAJBlANqKQIANwIAIAIgAikCjAM3AuwDIAIgAzYC6AMMAQsgAkHoA2ogBhAyIAIoAuACQSVGDQAgBBDoAwsgBCACKQPoAzcDACAEQSBqIAJBiARqKQMANwMAIARBGGogAkGABGopAwA3AwAgBEEQaiACQfgDaikDADcDACAEQQhqIAJB8ANqKQMANwMAIAIoAuACIgNBJUYNCgsgA0ELRg0GDAkLIAIoAuwDDAELIAIgAikD+AI3A7ADIAJBJTYC4AIgAigC5AILIQMgAkEYahDDEUEBIQUMEwtBjLTgABDWHQALQfyz4AAQ1R0AC0Hss+AAENUdDA8LIAJB6ANqIgMgAkEYakEAEGQgAigC6AMCQCADKAIAQQdHBEAgAxDLCwwBCyADKAIEIgNBCGoQiAMgA0EgQQgQohgLQQdHDQEMAgsgAkH8A2ogB0EQaigCADYCACACQfQDaiAHQQhqKQIANwIAIAJBJTYC4AIgAkECNgLoAyACIAIpA/gCNwOwAyACIAcpAgA3AuwDIAJB6ANqEOgDCwJAAkACQAJAAkAgAigC4AIiA0ElRgRAIAIoAogDIQMgAkElNgKIAwJAIANBJUcEQCACQYwEaiACQawDaigCADYCACACQYQEaiACQaQDaikCADcCACACQfwDaiACQZwDaikCADcCACACQfQDaiACQZQDaikCADcCACACIAIpAowDNwLsAyACIAM2AugDDAELIAJB6ANqIAYQMiACKALgAkElRg0AIAQQ6AMLIAQgAikD6AM3AwAgBEEgaiACQYgEaikDADcDACAEQRhqIAJBgARqKQMANwMAIARBEGogAkH4A2opAwA3AwAgBEEIaiACQfADaikDADcDACACKALgAiIDQSVGDQELIANBE0YNDwwBCyACKAKIAyEDIAJBJTYCiAMCQCADQSVHBEAgAkGMBGogAkGsA2ooAgA2AgAgAkGEBGogAkGkA2opAgA3AgAgAkH8A2ogAkGcA2opAgA3AgAgAkH0A2ogAkGUA2opAgA3AgAgAiACKQKMAzcC7AMgAiADNgLoAwwBCyACQegDaiAGEDIgAigC4AJBJUYNACAEEOgDCyAEIAIpA+gDNwMAIARBIGogAkGIBGopAwA3AwAgBEEYaiACQYAEaikDADcDACAEQRBqIAJB+ANqKQMANwMA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ByADQQhqIQYMKAsgA0EIaiEHIANBBGohBgwnCyADQRBqIQcgA0EMaiEGDCYLIANBNGohByADQTBqIQYMJQsgA0EkaiEHIANBIGohBgwkCyADQSRqIQcgA0EgaiEGDCMLIANBFGohByADQRBqIQYMIgsgA0EgaiEHIANBHGohBgwhCyADQRhqIQcgA0EUaiEGDCALIANBFGohByADQRBqIQYMHwsgA0EUaiEHIANBEGohBgweCyADKAIIQQFrDgYXGBkaGxwWCyADQSBqIQcgA0EcaiEGDBwLIANBEGohByADQQxqIQYMGwsgA0EYaiEHIANBFGohBgwaCyADKAIgIgtBKGohByALQSRqIQYMGQsgA0EIaiEHIANBBGohBgwYCyADQQhqIQcgA0EEaiEGDBcLIANBDGohByADQQhqIQYMFgsgA0EMaiEHIANBCGohBgwVCyADQRxqIQcgA0EYaiEGDBQLIANBLGohByADQShqIQYMEwsgA0EIaiEHIANBBGohBgwSCyADKAIEIgZBBGohBwwRCyADQRRqIQcgA0EQaiEGDBALIANBEGohByADQQxqIQYMDwsgA0EMaiEHIANBCGohBgwOCyADQQxqIQcgA0EIaiEGDA0LIANBEGohByADQQxqIQYMDAsgA0EQaiEHIANBDGohBgwLCyADQRBqIQcgA0EMaiEGDAoLIANBFGohByADQRBqIQYMCQsgA0EMaiEHIANBCGohBgwICyADQQhqIQcgA0EEaiEGDAcLIANBHGohByADQRhqIQYMBgsgA0EQaiEHIANBDGohBgwFCyADQRBqIQcgA0EMaiEGDAQLIANBFGohByADQRBqIQYMAwsgA0EUaiEHIANBEGohBgwCCyADQSRqIQcgA0EgaiEGDAELIANBJGohByADQSBqIQYLIAcoAgAhDSAGKAIAIQsCQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAIAJB/wFxQQJrDgIAAQMLIAVBDWtBAkkNAgJAAkAgBUEaaw4KAwAAAAAAAAAAAQALIAAgAzYCBCAAQQY2AgAMEQsgACADNgIEIABBBjYCAAwQCwJAIApBAWsiB0EfTQRAQQEgB3QiB0GE25OCeHENASAHQcMAcQ0DCyAEQT46ANgDIAEgCyANIARB2ANqEOkiIAMoAgAiBUEMayEJDAIL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QSVGBEAgASgC8AIhAyABQSU2AvACAkAgA0ElRwRAIAVB9ANqIAFBlANqKAIANgIAIAVB7ANqIAFBjANqKQIANwIAIAVB5ANqIAFBhANqKQIANwIAIAVB3ANqIAFB/AJqKQIANwIAIAUgAzYC0AMgBSABKQL0AjcC1AMMAQsgBUHQA2ogHRAyIBEoAgBBJUYNACAREOgDCyARIAUpA9ADNwMAIBFBIGogBUHwA2opAwA3AwAgEUEYaiAFQegDaikDADcDACARQRBqIAVB4ANqKQMANwMAIBFBCGogBUHYA2opAwA3AwAgESgCACITQSVGDQELIBNBAkcNASABLQDQAiIDQQFLIANBAXEiA3INASABLQDRAkELRw0BIANFDQogBUHYA2ogHRDdByAFQcjS3wA2AtQDIAVBNDoA0AMgHUHwAkG4AiARKAIAQSVGIgMbaigCACIEIB1B9AJBvAIgAxtqKAIAIgMgAyAESxsgBCADIAMgBEkbIAVB0ANqEO8bIRMgESgCACIVQSVHDQkgASgC8AIhAyABQSU2AvACIANBJUYNByAFQfQDaiABQZQDaigCADYCACAFQewDaiABQYwDaikCADcCACAFQeQDaiABQYQDaikCADcCACAFQdwDaiABQfwCaikCADcCACAFIAM2AtADIAUgASkC9AI3AtQDDAgLIAEoAvACIQMgAUElNgLwAgJAIANBJUcEQCAFQfQDaiABQZQDaigCADYCACAFQewDaiABQYwDaikCADcCACAFQeQDaiABQYQDaikCADcCACAFQdwDaiABQfwCaikCADcCACAFIAM2AtADIAUgASkC9AI3AtQDDAELIAVB0ANqIB0QMiARKAIAQSVGDQAgERDoAwsgESAFKQPQAzcDACARQSBqIAVB8ANqKQMANwMAIBFBGGogBUHoA2opAwA3AwAgEUEQaiAFQeADaikDADcDACARQQhqIAVB2ANqKQMANwMAIBEoAgAiE0ElRg0BCyATQQJHDQEgAS0A0AIiA0EBSyADQQFxIgNyDQEgAS0A0QJBCkcNAUEBIQQgA0UNDiAFQdgDaiAdEN0HIAVB8NLfADYC1AMgBUE0OgDQAyAdQfACQbgCIBEoAgBBJUYiAxtqKAIAIgQgHUH0AkG8AiADG2ooAgAiAyADIARLGyAEIAMgAyAESRsgBUHQA2oQ7xshEyARKAIAIhVBJUcNCyABKALwAiEDIAFBJTYC8AIgA0ElRg0JIAVB9ANqIAFBlANqKAIANgIAIAVB7ANqIAFBjANqKQIANwIAIAVB5ANqIAFBhANqKQIANwIAIAVB3ANqIAFB/AJqKQIANwIAIAUgAzYC0AMgBSABKQL0AjcC1AMMCgsgASgC8AIhAyABQSU2AvACAkAgA0ElRwRAIAVB9ANqIAFBlANqKAIANgIAIAVB7ANqIAFBjANqKQIANwIAIAVB5ANqIAFBhANqKQIANwIAIAVB3ANqIAFB/AJqKQIANwIAIAUgAzYC0AMgBSABKQL0AjcC1AMMAQsgBUHQA2ogHRAyIBEoAgBBJUYNACAREOgDCyARIAUpA9ADNwMAIBFBIGogBUHwA2opAwA3AwAgEUEYaiAFQegDaikDADcDACARQRBqIAVB4ANqKQMANwMAIBFBCGogBUHYA2opAwA3AwAgESgCACITQSVGDQELIBNBAkcNASABLQDQAg0BIAEtANECQQlHDQEgASgC4AIhCCABQSU2AsgCIAEgCDYCmAMgBUHkA2ogAUHcAmooAgA2AgAgBUHcA2ogAUHUAmopAgA3AgAgASABKALkAjYCnANBAiEEIAVBAjYC0AMgBSABKQLMAjcC1AMgAUGcA2ohAwwVCyABKALwAiEDIAFBJTYC8AICQCADQSVHBEAgBUH0A2ogAUGUA2ooAgA2AgAgBUHsA2ogAUGMA2opAgA3AgAgBUHkA2ogAUGEA2opAgA3AgAgBUHcA2ogAUH8AmopAgA3AgAgBSADNgLQAyAFIAEpAvQCNwLUAwwBCyAFQdADaiAdEDIgESgCAEElRg0AIBEQ6AMLIBEgBSkD0AM3AwAgEUEgaiAFQfADaikDADcDACARQRhqIAVB6ANqKQMANwMAIBFBEGogBUHgA2opAwA3AwAgEUEIaiAFQdgDaikDADcDACARKAIAIhNBJUYNAQsgE0ECRw0AIAEtANACIgNBAUsgA0EBcXINACABLQDRAkEPRg0IC0EBIRUgBUHQA2ogAUHgzt8AQQFBABDoASAFKALUAyETIAUoAtADDRYgBUEIaiE+IwBB4AhrIgIkACABQcgCaiEGIAFBKGohDQJAAkACQCABKALIAiIKQSVHBEAgAUHgAmohCSABQZwDaiEiDAELIAEoAvACIQMgAUElNgLwAgJAIANBJUcEQCACQYwFaiABQZQDaigCADYCACACQYQFaiABQYwDaikCADcCACACQfwEaiABQYQDaikCADcCACACQfQEaiABQfwCaikCADcCACACIAM2AugEIAIgASkC9AI3AuwEDAELIAJB6ARqIA0QMiAGKAIAQSVGDQAgBhDoAwsgBiACKQPoBDcDACAGQSBqIAJBiAVqKQMANwMAIAZBGGogAkGABWopAwA3AwAgBkEQaiACQfgEaikDADcDACAGQQhqIAJB8ARqKQMANwMAIAFB4AJqIQkgAUGcA2ohIiABKALIAiIKQSVHDQAgASgCnAMhCyABKALwAiEDIAFBJTYC8AICQCADQSVHBEAgAkGMBWogAUGUA2ooAgA2AgAgAkGEBWogAUGMA2opAgA3AgAgAkH8BGogAUGEA2opAgA3AgAgAkH0BGogAUH8AmopAgA3AgAgAiADNgLoBCACIAEpAvQCNwLsBAwBCyACQegEaiANEDIgBigCAEElRg0AIAYQ6AMLIAYgAikD6AQ3AwAgBkEgaiACQYgFaikDADcDACAGQRhqIAJBgAVqKQMANwMAIAZBEGogAkH4BGopAwA3AwAgBkEIaiACQfAEaikDADcDACAGKAIAIgpBJUcNASABKAKAAiEDIAJBADoA6AQgAyADIAJB6ARqEO8bIQNBASEKDAILIAEoAuACIQsLAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkAgCkECaw4jARoaGhoaGgIaAxoWGhoaChoaABoaGhoaGgoaCgoaGhoaGhsaCyABLQDMAkEMRg0EDBkLQQQgAS0A0AIiCEECa0H/AXEiAyADQQRPG0EBaw4EBgkJBgULIAEoAuACIQkgAUElNgLIAiABIAk2ApgDIAJB/ARqIAFB3AJqKAIANgIAIAJB9ARqIAFB1AJqKQIANwIAIAEgASgC5AI2ApwDIAJBCTYC6AQgAiABKQLMAjcC7AQgAkHoBGoQ6AMgAkEQaiABELMCQQEhCiACKAIUIQQgAigCEARAIAQhAwwaCwJAIAYoAgAiA0ElRgRAIAEoAvACIQMgAUElNgLwAgJAIANBJUcEQCACQYwFaiABQZQDaigCADYCACACQYQFaiABQYwDaikCADcCACACQfwEaiABQYQDaikCADcCACACQfQEaiABQfwCaikCADcCACACIAM2AugEIAIgASkC9AI3AuwEDAELIAJB6ARqIA0QMiAGKAIAQSVGDQAgBhDoAwsgBiACKQPoBDcDACAGQSBqIAJBiAVqKQMANwMAIAZBGGogAkGABWopAwA3AwAgBkEQaiACQfgEaikDADcDACAGQQhqIAJB8ARqKQMANwMAIAYoAgAiA0ElRg0BCyADQQpGDQQLIAJB8ARqIA0Q3QcgAkHwzN8ANgLsBCACQTQ6AOgEIA1B8AJBuAIgBigCAEElRiIDG2ooAgAiCCANQfQCQbwCIAMbaigCACIDIAMgCEsbIAggAyADIAhJGyACQegEahDvGyEDAkAgDRC/CiIIBEAgCCgCAEEkRg0BCyAEEMouDBoLIAEgASkD4AI3A5gDIAEoAsgCIAFBJTYCyAJBJEcNASABIAEoAswCEMAIIAQQyi4MGQsgASgC4AIhJSABQSU2AsgCIAEgJTYCmAMgAkH8BGoiPyABQdwCaigCADYCACACQfQEaiABQdQCaikCADcCACABIAEoAuQCNgKcAyACQQs2AugEIAIgASkCzAI3AuwEIAJB6ARqIgMQ6AMgAkEANgJcIAJCgICAgIABNwJUIAFB9AJqIRcgAUHMAmohHyADQQRyIQ8gAkG8AWohQCACQagBaiEgIAJB7ARqIS4gAkG1CGohQSACQc0IaiEjIAJB/QRqISQgAkGUBGohJiACQbwEaiEbIAJBkARqIRogAkHwAWohKyACQawEaiEnIAJB4ARqIS8DQAJAAkAgBigCACIJQSVGBEAgASgC8AIhAyABQSU2AvACAkAgA0ElRwRAIA8gFykCADcCACAPQSBqIBdBIGooAgA2AgAgD0EYaiAXQRhqKQIANwIAIA9BEGogF0EQaikCADcCACAPQQhqIBdBCGopAgA3AgAgAiADNgLoBAwBCyACQegEaiANEDIgBigCAEElRg0AIAYQ6AMLIAYgAikD6AQ3AwAgBkEgaiIUIAJBiAVqIhYpAwA3AwAgBkEYaiIQIAJBgAVqIg4pAwA3AwAgBkEQaiIHIAJB+ARqIgspAwA3AwAgBkEIaiIMIAJB8ARqIgQpAwA3AwAgBigCACIJQSVGDQELIAlBDEcNASACKAJcIRggAigCWCEODBcLIAEoAvACIQMgAUElNgLwAgJAIANBJUcEQCAPIBcpAgA3AgAgD0EgaiAXQSBqKAIANgIAIA9BGGogF0EYaikCADcCACAPQRBqIBdBEGopAgA3AgAgD0EIaiAXQQhqKQIANwIAIAIgAzYC6AQMAQsgAkHoBGogDRAyIAYoAgBBJUYNACAGEOgDCyAGIAIpA+gENwMAIBQgFikDADcDACAQIA4pAwA3AwAgByALKQMANwMAIAwgBCkDADcDACAGKAIAIglBJUcNACABKALwAiEDIAFBJTYC8AICQCADQSVHBEAgDyAXKQIANwIAIA9BIGogF0EgaigCADYCACAPQRhqIBdBGGopAgA3AgAgD0EQaiAXQRBqKQIANwIAIA9BCGogF0EIaikCADcCACACIAM2AugEDAELIAJB6ARqIA0QMiAGKAIAQSVGDQAgBhDoAwsgBiACKQPoBDcDACAUIBYpAwA3AwAgECAOKQMANwMAIAcgCykDADcDACAMIAQpAwA3AwAgBigCACEJCyABQZwDQeACIAlBJUYbaigCACEhAkACfwJAAkACQAJAIAEtAKACQQJGBEAgAS0AqgIhMCACQcgBaiABEMgCIAEtAMYCIQQgAS0AxQIhGCABLQDEAiExIAEtAMMCITIgAS0AwgIhMyABLQDBAiE0IAEtAMACITUgAS0AvwIhNiABLQC+AiE3IAEtAL0CITggAS0AvAIhOSABLQC7AiE6IAEtALoCITsgAS0AuQIhPCABLQC4AiE9IAEtALcCIRwgAS0AtgIhHiABLQC1AiEKIAEtALQCIRkgAS0AswIhEiABLQCyAiEUIAEtALECIRYgAS0AsAIhECABLQCvAiEOIAEtAK4CIQcgAS0ArQIhCyABLQCsAiEMAkAgAS0AqwIiCUEBcUUNACACKALQAyIqKAIIIgNB/v///wdLDTkgKigCFEUNACADDTogKkF/NgIIIAIoAswDIigoAggNAiAoQX82AgggKigCECEDIChBDGogKigCFCIpEOQnICgoAhAgKCgCFEECdGogAyApQQJ0EIEJGiAoICkgKCgCFGo2AhQgKkEANgIUICggKCgCCEEBajYCCCAqICooAghBAWo2AggLIAIgBDoAjgQgAiAYOgCNBCACIDE6AIwEIAIgMjoAiwQgAiAzOgCKBCACIDQ6AIkEIAIgNToAiAQgAiA2OgCHBCACIDc6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IBAgECgCCEEBajYCCCAOIA4oAghBAWo2AggLIAcgMDoAqgIgQCACKQOgCDcCACBAQQhqIAJBqAhqKAIANgIAIAIgDDYCuAEgAiAENgK0ASACIBg2ArABIAIgEjYCrAEgAiAcNgKoASACIAk2AqQBIAIgGTYCoAEMAwtB7LPgABDVHQALIAdBA3ENACACIAc2AugEIAJB6ARqENAGIAcgBygCACIDQQFrNgIAIANBAUcNACAHIAcoAiAQjScLIAJBBzYCoAEgCUEIahCIAyAJQSBBCBCiGCACQcgBahDDEQsgBigCACEJCwJAAkACQAJAAkAgCUElRgRAIAEoAvACIQMgAUElNgLwAgJAIANBJUcEQCAPIBcpAgA3AgAgD0EgaiAXQSBqKAIANgIAIA9BGGogF0EYaikCADcCACAPQRBqIBdBEGopAgA3AgAgD0EIaiAXQQhqKQIANwIAIAIgAzYC6AQMAQsgAkHoBGogDRAyIAYoAgBBJUYNACAGEOgDCyAGIAIpA+gENwMAIAZBIGogAkGIBWopAwA3AwAgBkEYaiACQYAFaikDADcDACAGQRBqIAJB+ARqKQMANwMAIAZBCGogAkHwBGopAwA3AwAgBigCACIJQSVGDQELIAlBB0YNAQsgAkEYaiABELMCIAIoAhwhBCACKAIYRQ0BIAIoAqABIRgMAgsgAUElNgLIAiAPIB8pAgA3AgAgASABKQPgAjcDmAMgD0EQaiAfQRBqKAIANgIAIA9BCGogH0EIaikCADcCACACQQc2AugEIAJB6ARqEOgDIAJBIGogARCzAiACKAKgASEYIAIoAiQhCSACKAIgBEAgCSEEDAILQaC/5AAtAAAaICIoAgAhCCACKAKkASEDQeAAEIQBIgRFDRkgBCAJNgIEIARBCTYCACAEICEgCCAIICFJGyIsNgIMIAQgISAIIAggIUsbIi02AgggAkGIAWogIEEIaikDADcDACACQZABaiAgQRBqKQMANwMAIAJBmAFqICBBGGopAwA3AwAgAiAgKQMANwOAAQwCCwJAAkAgBigCACIJQSVGBEAgASgC8AIhAyABQSU2AvACAkAgA0ElRwRAIA8gFykCADcCACAPQSBqIBdBIGooAgA2AgAgD0EYaiAXQRhqKQIANwIAIA9BEGogF0EQaikCADcCACAPQQhqIBdBCGopAgA3AgAgAiADNgLoBAwBCyACQegEaiANEDIgBigCAEElRg0AIAYQ6AMLIAYgAikD6AQ3AwAgBkEgaiACQYgFaikDADcDACAGQRhqIAJBgAVqKQMANwMAIAZBEGogAkH4BGopAwA3AwAgBkEIaiACQfAEaikDADcDACAGKAIAIglBJUYNAQsgCUEXRg0BCyACQYgBaiAgQQhqKQMANwMAIAJBkAFqICBBEGopAwA3AwAgAkGYAWogIEEYaikDADcDACACICApAwA3A4ABICEgIigCACIDIAMgIUkbISwgISADIAMgIUsbIS0gAigCpAEhAyACKAKgASEYDAILIAFBJTYCyAIgDyAfKQIANwIAIAEgASkD4AI3A5gDIA9BEGogH0EQaigCADYCACAPQQhqIB9BCGopAgA3AgAgAkEXNgLoBCACQegEahDoA0Ggv+QALQAAGiABKAKcAyEJIAIoAqQBIQMgAigCoAEhGEHgABCEASIIRQ0YIAggBDYCBCAIQQg2AgAgCCAhIAkgCSAhSRsiLDYCDCAIICEgCSAJICFLGyItNgIIIAJBiAFqICBBCGopAwA3AwAgAkGQAWogIEEQaikDADcDACACQZgBaiAgQRhqKQMANwMAIAIgICkDADcDgAEgCCEEDAELIBhBB0ZBCCEYRQRAIAJBoAFqEMsLCyAEIQMgCCEECwJAAkAgGEEIRwRAIAJB+ABqIgwgAkGYAWopAwA3AwAgAkHwAGoiCSACQZABaikDADcDACACQegAaiIIIAJBiAFqKQMANwMAIAIgAikDgAE3A2AgAigCXCILIAIoAlRGBEAgAkHUAGoQ8QsLIAIoAlgiDiALQThsaiIHIAIpA2A3AgggByADNgIEIAcgGDYCACAHIAQ2AjAgByAsNgIsIAcgLTYCKCAHQSBqIAwpAwA3AgAgB0EYaiAJKQMANwIAIAdBEGogCCkDADcCACACIAtBAWoiGDYCXAJAAkACQAJAAkAgBigCACIJQSVGBEAgASgC8AIhAyABQSU2AvACAkAgA0ElRwRAIA8gFykCADcCACAPQSBqIBdBIGooAgA2AgAgD0EYaiAXQRhqKQIANwIAIA9BEGogF0EQaikCADcCACAPQQhqIBdBCGopAgA3AgAgAiADNgLoBAwBCyACQegEaiANEDIgBigCAEElRg0AIAYQ6AMLIAYgAikD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FRUVFRUAFRUVFQEDFRUCAxULIA0QvwoaIAFBnANB4AIgASgCyAJBJUYbaigCACEEIAJB6ARqIAEQhQUgAigC7AQhAyACKALoBARAQQEhCgwXCyACKALwBCEIIA0QvwoaAkAgASgCyAJBJUYNACABLQDoAkEBcQ0AIA0QvwoiCUUNACAJKAIAQQJHDQAgCS0ACA0AIAktAAlBDkcNACACQcgBaiABIARBACADIAgQjAUgAi0A7AFBAkYNBCACQYwFaiACQegBaikDADcCACACQYQFaiACQeABaikDADcCACACQfwEaiACQdgBaikDADcCACACQfQEaiACQdABaikDADcCACACIAIpA8gBNwLsBEGgv+QALQAAGkHgABCEASIDRQ0UIANBEjYCACADIAIpAugENwIEIANBDGogAkHwBGopAgA3AgAgA0EUaiACQfgEaikCADcCACADQRxqIAJBgAVqKQIANwIAIANBJGogAkGIBWopAgA3AgAgA0EsaiACQZAFaigCADYCAEEAIQoMFwtBACEKQaC/5AAtAAAaQeAAEIQBIgRFDRMgBCAINgIIIAQgAzYCBCAEQQE2AgAgBCEDDBYLIAJByAFqIgMgARBbIAItAPwBQQRGDQIgAkHsBGogA0HIABCBCRpBACEKQaC/5AAtAAAaQeAAEIQBIgNFDRIgA0ETNgIAIANBBGogAkHoBGpBzAAQgQkaDBULIAJByAFqIQwjAEHAAWsiByQAIAFByAJqIQsgAUEoaiEJAkACQAJAAkACQAJAAkAgASgCyAIiCEElRwRAIAFBnANqIRwgASgC4AIhCgwBCyABKALwAiEDIAFBJTYC8AICQCADQSVHBEAgB0H8AGogAUGUA2ooAgA2AgAgB0H0AGogAUGMA2opAgA3AgAgB0HsAGogAUGEA2opAgA3AgAgB0HkAGogAUH8AmopAgA3AgAgByADNgJYIAcgASkC9AI3AlwMAQsgB0HYAGogCRAyIAsoAgBBJUYNACALEOgDCyALIAcpA1g3AwAgC0EgaiAHQfgAaikDADcDACALQRhqIAdB8ABqKQMANwMAIAtBEGogB0HoAGopAwA3AwAgC0EIaiAHQeAAaikDADcDACABQZwDaiEcIAEoAsgCIghBJUcEQCABKALgAiEKDAELIAEoApwDIQogASgC8AIhAyABQSU2AvAC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cg0BIAEtANECQSFHDQFBCCEEDBMLIAEoAvACIQMgAUElNgLwAgJAIANBJUcEQCACQYwFaiABQZQDaigCADYCACACQYQFaiABQYwDaikCADcCACACQfwEaiABQYQDaikCADcCACACQfQEaiABQfwCaikCADcCACACIAM2AugEIAIgASkC9AI3AuwEDAELIAJB6ARqIA0QMiAGKAIAQSVGDQAgBhDoAwsgBiACKQPoBDcDACAGQSBqIAJBiAVqKQMANwMAIAZBGGogAkGABWopAwA3AwAgBkEQaiACQfgEaikDADcDACAGQQhqIAJB8ARqKQMANwMAIAYoAgAiCkElRg0BIAEtANACIQMLIApBAkcgA0H/AXFBA0dyDQFBCiEEDBELIAEoAvACIQMgAUElNgLwAgJAIANBJUcEQCACQYwFaiABQZQDaigCADYCACACQYQFaiABQYwDaikCADcCACACQfwEaiABQYQDaikCADcCACACQfQEaiABQfwCaikCADcCACACIAM2AugEIAIgASkC9AI3AuwEDAELIAJB6ARqIA0QMiAGKAIAQSVGDQAgBhDoAwsgBiACKQPoBDcDACAGQSBqIAJBiAVqKQMANwMAIAZBGGogAkGABWopAwA3AwAgBkEQaiACQfgEaikDADcDACAGQQhqIAJB8ARqKQMANwMAIAYoAgAiCkElRg0BCyAKQQJHDQEgAS0A0AIiA0EBSyADQQFxcg0BIAEtANECQRhHDQEMDwsgASgC8AIhAyABQSU2AvACAkAgA0ElRwRAIAJBjAVqIAFBlANqKAIANgIAIAJBhAVqIAFBjANqKQIANwIAIAJB/ARqIAFBhANqKQIANwIAIAJB9ARqIAFB/AJqKQIANwIAIAIgAzYC6AQgAiABKQL0AjcC7AQMAQsgAkHoBGogDRAyIAYoAgBBJUYNACAGEOgDCyAGIAIpA+gENwMAIAZBIGogAkGIBWopAwA3AwAgBkEYaiACQYAFaikDADcDACAGQRBqIAJB+ARqKQMANwMAIAZBCGogAkHwBGopAwA3AwAgBigCACIKQSVGDQELIApBAkcNASABLQDQAiIDQQFLIANBAXFyDQEgAS0A0QJBH0cNAUEEIQQMDQsgASgC8AIhAyABQSU2AvACAkAgA0ElRwRAIAJBjAVqIAFBlANqKAIANgIAIAJBhAVqIAFBjANqKQIANwIAIAJB/ARqIAFBhANqKQIANwIAIAJB9ARqIAFB/AJqKQIANwIAIAIgAzYC6AQgAiABKQL0AjcC7AQMAQsgAkHoBGogDRAyIAYoAgBBJUYNACAGEOgDCyAGIAIpA+gENwMAIAZBIGogAkGIBWopAwA3AwAgBkEYaiACQYAFaikDADcDACAGQRBqIAJB+ARqKQMANwMAIAZBCGogAkHwBGopAwA3AwAgBigCACIKQSVGDQELIApBAkcNASABLQDQAiIDQQFLIANBAXFyDQEgAS0A0QJBHkcNAUEFIQQMCwsgASgC8AIhAyABQSU2AvACAkAgA0ElRwRAIAJBjAVqIAFBlANqKAIANgIAIAJBhAVqIAFBjANqKQIANwIAIAJB/ARqIAFBhANqKQIANwIAIAJB9ARqIAFB/AJqKQIANwIAIAIgAzYC6AQgAiABKQL0AjcC7AQMAQsgAkHoBGogDRAyIAYoAgBBJUYNACAGEOgDCyAGIAIpA+gENwMAIAZBIGogAkGIBWopAwA3AwAgBkEYaiACQYAFaikDADcDACAGQRBqIAJB+ARqKQMANwMAIAZBCGogAkHwBGopAwA3AwAgBigCACIKQSVGDQELIApBAkcNASABLQDQAiIDQQFLIANBAXFyDQEgAS0A0QJBIEcNAUELIQQMCQsgASgC8AIhAyABQSU2AvACAkAgA0ElRwRAIAJBjAVqIAFBlANqKAIANgIAIAJBhAVqIAFBjANqKQIANwIAIAJB/ARqIAFBhANqKQIANwIAIAJB9ARqIAFB/AJqKQIANwIAIAIgAzYC6AQgAiABKQL0AjcC7AQMAQsgAkHoBGogDRAyIAYoAgBBJUYNACAGEOgDCyAGIAIpA+gENwMAIAZBIGogAkGIBWopAwA3AwAgBkEYaiACQYAFaikDADcDACAGQRBqIAJB+ARqKQMANwMAIAZBCGogAkHwBGopAwA3AwAgBigCACIKQSVGDQELQQIhBCAKQQJHDQEgAS0A0AIiA0EBSyADQQFxcg0BIAEtANECQR1GDQcMAQsgASgC8AIhAyABQSU2AvACAkAgA0ElRwRAIAJBjAVqIAFBlANqKAIANgIAIAJBhAVqIAFBjANqKQIANwIAIAJB/ARqIAFBhANqKQIANwIAIAJB9ARqIAFB/AJqKQIANwIAIAIgAzYC6AQgAiABKQL0AjcC7AQMAQsgAkHoBGogDRAyIAYoAgBBJUYNACAGEOgDCyAGIAIpA+gENwMAIAZBIGogAkGIBWopAwA3AwAgBkEYaiACQYAFaikDADcDACAGQRBqIAJB+ARqKQMANwMAIAZBCGogAkHwBGopAwA3AwAgBigCACIKQSVGDQELIApBAkcNASABLQDQAiIDQQFLIANBAXFyDQEgAS0A0QJBHEcNAUEDIQQMBQsgASgC8AIhAyABQSU2AvACAkAgA0ElRwRAIAJBjAVqIAFBlANqKAIANgIAIAJBhAVqIAFBjANqKQIANwIAIAJB/ARqIAFBhANqKQIANwIAIAJB9ARqIAFB/AJqKQIANwIAIAIgAzYC6AQgAiABKQL0AjcC7AQMAQsgAkHoBGogDRAyIAYoAgBBJUYNACAGEOgDCyAGIAIpA+gENwMAIAZBIGogAkGIBWopAwA3AwAgBkEYaiACQYAFaikDADcDACAGQRBqIAJB+ARqKQMANwMAIAZBCGogAkHwBGopAwA3AwAgBigCACIKQSVGDQELIApBAkcNASABLQDQAiIDQQFLIANBAXFyDQEgAS0A0QJBG0cNAUEGIQQMAwsgASgC8AIhAyABQSU2AvACAkAgA0ElRwRAIAJBjAVqIAFBlANqKAIANgIAIAJBhAVqIAFBjANqKQIANwIAIAJB/ARqIAFBhANqKQIANwIAIAJB9ARqIAFB/AJqKQIANwIAIAIgAzYC6AQgAiABKQL0AjcC7AQMAQsgAkHoBGogDRAyIAYoAgBBJUYNACAGEOgDCyAGIAIpA+gENwMAIAZBIGogAkGIBWopAwA3AwAgBkEYaiACQYAFaikDADcDACAGQRBqIAJB+ARqKQMANwMAIAZBCGogAkHwBGopAwA3AwAgBigCACIKQSVGDQELIApBAkcNACABLQDQAiIDQQFLIANBAXFyDQAgAS0A0QJBEEcNAEEHIQQMAQsCQCANEL8KIgNFDQAgAygCAEECRw0AIAMtAAgNACADLQAJQRpHDQBBASEEDAELAkAgDRC/CiIDRQ0AIAMoAgBBAkcNACADLQAIDQAgAy0ACUERRw0AQQkhBAwBC0ENIQQgDRC/CiIDRQ0AIAMoAgBBAkcNACADLQAIDQBBDEENIAMtAAlBGUYbIQQLAkACQAJAIA0Q9A8iAwR/IAMoAgBBBkYFQQALRSAEQQ1HcUUEQAJ/IAYoAgBBJUcEQCAJKAIADAELIAEoAvACIQMgAUElNgLwAgJAIANBJUcEQCACQYwFaiABQZQDaigCADYCACACQYQFaiABQYwDaikCADcCACACQfwEaiABQYQDaikCADcCACACQfQEaiABQfwCaikCADcCACACIAM2AugEIAIgASkC9AI3AuwEDAELIAJB6ARqIA0QMiAGKAIAQSVGDQAgBhDoAwsgBiACKQPoBDcDACAGQSBqIAJBiAVqKQMANwMAIAZBGGogAkGABWopAwA3AwAgBkEQaiACQfgEaikDADcDACAGQQhqIAJB8ARqKQMANwMAICIgCSAGKAIAQSVGGygCAAshDiACQegEaiABEOEGIAItAOgEBEAgAigC7AQhA0EBIQoMGAsgAi0A6QQgAkHoBGoiCSABQQEQ2QEgAigC6AQhAyACLQD8BCILQQNGDQIgAkGsAWogAkH0BGopAgA3AgAgAkG3AWogAkH/BGotAAA6AAAgAiACKQLsBDcCpAEgAiACLwD9BDsAtQEgAiALOgC0ASACIAM2AqABIA0QvwoaQQAhBAJAIAYoAgBBJUYNACABLQDoAg0AIA0QvwoiA0UNACADKAIAQRRHDQAgAy0ABEEERw0AIAJBADoA1QEgAiABLQC2AjoA1AEgAiABLQDGAjoA5AEgAiABKQGqAjcAyAEgAiABKAGyAjYA0AEgAiABKQO4AjcA1gEgAiABKALAAjYA3gEgAiABLwHEAjsA4gEgCSABIAJByAFqEL8IIAJBCGogAigC6AQQciACKAIMIQMgAigCCCAJEPUKDQIgAyEECyACQbUBaiEDQQFxRQ0DIAEoApwDIQggAkGoAToA6AQgASAOIAggCCAOSxsgDiAIIAggDkkbIAJB6ARqEOkiDAMLIAEoAsgCIQMgAUElNgLIAiABIAEpA+ACNwOYAyACQfQEaiABQdQCaikCADcCACACQfwEaiABQdwCaigCADYCACACIAEpAswCNwLsBCACIAM2AugEIAJB6ARqEOgDQQAhCkGgv+QALQAAGiABKAKcAyEIQeAAEIQBIgNFDRMgAyAEOgAMIANBADYCACADIAsgCCAIIAtJGzYCCCADIAsgCCAIIAtLGzYCBAwWCyACQaABahDbDgtBASEKDBQLICIoAgAhByAC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IAIgCikCADcDoAEgAiAHKAAANgKgCCACIAwoAAA2AKMIIAIoAogBIhAgAigCgAFGBEAgAkGAAWoQqwwLIAIoAoQBIgsgEEEFdGoiEiADNgIAIBIgAikDoAE3AgQgEiAWOgAYIBIgAigCoAg2ABkgEkEMaiAIKQMANwIAIBJBFGogCSgCADYCACASQRxqIAIoAKMINgAAIAIgEEEBaiIcNgKIASAYQQRqIRggFkEBcUUNAAsgAigCZCEJIAIoAmAiGEGAgICAeEcNASAJIQNBASEKDBoLQQQMBwsgAigCgAEhDgsgAiAENgKoASACIAk2AqQBIAIgGDYCoAECQAJAIAYoAgAiCkElRgRAIAEoAvACIQMgAUElNgLwAgJAIANBJUcEQCACQYwFaiABQZQDaigCADYCACACQYQFaiABQYwDaikCADcCACACQfwEaiABQYQDaikCADcCACACQfQEaiABQfwCaikCADcCACACIAM2AugEIAIgASkC9AI3AuwEDAELIAJB6ARqIA0QMiAGKAIAQSVGDQAgBhDoAwsgBiACKQPoBDcDACAGQSBqIAJBiAVqKQMANwMAIAZBGGogAkGABWopAwA3AwAgBkEQaiACQfgEaikDADcDACAGQQhqIAJB8ARqKQMANwMAIAYoAgAiCkElRg0BCyAKQRFGDQELIAJB8ARqIA0Q3QcgAkHw0d8ANgLsBCACQTQ6AOgEIA1B8AJBuAIgBigCAEElRiIDG2ooAgAiBCANQfQCQbwCIAMbaigCACIDIAMgBEsbIAQgAyADIARJGyACQegEahDvGyEDIAYoAgAiCkElRgRAIAEoAvACIQQgAUElNgLwAgJAIARBJUcEQCACQYwFaiABQZQDaigCADYCACACQYQFaiABQYwDaikCADcCACACQfwEaiABQYQDaikCADcCACACQfQEaiABQfwCaikCADcCACACIAQ2AugEIAIgASkC9AI3AuwEDAELIAJB6ARqIA0QMiAGKAIAQSVGDQAgBhDoAwsgBiACKQPoBDcDACAGQSBqIAJBiAVqKQMANwMAIAZBGGogAkGABWopAwA3AwAgBkEQaiACQfgEaikDADcDACAGQQhqIAJB8ARqKQMANwMAIAYoAgAiCkElRg0FCyAKQSRGDQMMBAsgAUElNgLIAiAeKQIAIUMgHiACKQLIATcCACACQfwEaiAeQRBqIggoAgA2AgAgAkH0BGogHkEIaiIDKQIANwIAIAMgAkHQAWopAgA3AgAgASkD4AIhQiAIIAJB2AFqKQIANwIAIB5BGGogAkHgAWopAgA3AgAgHkEgaiACQegBaigCADYCACACIEM3AuwEIAJBETYC6AQgASBCNwOYAyACQegEahDoAyAYQYSAgIB4Rg0IIAStIA6tQiCGhCFDIAutIBytQiCGhCFCIBQgASgCnAMiAyADIBRJGyIHIQYgFCADIAMgFEsbIgshBAwQC0GJhOEAQShBwNffABDVIQALQYmE4QBBKEHo198AENUhAAsgAUElNgLIAiABKALMAiEEIB4gAikCyAE3AgAgASABKQPgAjcDmAMgHkEIaiACQdABaikCADcCACAeQRBqIAJB2AFqKQIANwIAIB5BGGogAkHgAWopAgA3AgAgHkEgaiACQegBaigCADYCACABIAQQwAgLIAsgHBCuDiAOIAsQxCogAkGgAWoQsyIgGCAJEMMqQQEhCgwTCyACKAKEASIEIAIoAogBEK4OIAIoAoABIAQQxCogAigCYCEJIAIoAmQLIQQgAkHgAGoQsyIgCSAEEMMqQQEhCgwRCyAJKAIACyEIIAJB6ARqIAEQ9wIgAigC7AQhCSACKALoBCIDQQdGDQAgAkHgAWogAkGABWopAwA3AwAgAkHYAWogAkH4BGopAwA3AwAgAiACKQPwBDcD0AEgAiAJNgLMASACIAM2AsgBIAMOBQIFAQMEAQtBASEKIAkhAwwOC0GJhOEAQShBmNLfABDVIQALQYGAgIB4IRgMAwtBgICAgHghGAwCC0GDgICAeCEYDAELIAIpA9ABIUMgAkHIAWoQjghBgoCAgHghGAwBCyACKALkASEGIAIoAuABIQQgAikD2AEhQiACKQPQASFDCyAIICIoAgAiAyADIAhLGyELIAggAyADIAhJGyEHC0EAIQpBoL/kAC0AABpB4AAQhAEiA0UNAyADIAc2AiwgAyALNgIoIAMgBjYCJCADIAQ2AiAgAyBCNwMYIAMgQzcDECADIAk2AgwgAyAYNgIIIAMgCTYCBCADQRE2AgAMBgsgAkHoBGogARDIAgJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAItAJMHQQFxRQ0AIAIoAvAGIggoAggiA0H+////B0sNLSAIKAIURQ0AIAMNLiAIQX82AgggAigC7AYiDCgCCA0BIAxBfzYCCCAIKAIQIQMgDEEMaiAIKAIUIgQQ5CcgDCgCECAMKAIUQQJ0aiADIARBAnQQgQkaIAwgBCAMKAIUajYCFCAIQQA2AhQgDCAMKAIIQQFqNgIIIAggCCgCCEEBajYCCAsgAkGQBWohByACQQE6AJIHIAJB1AFqIgQgAkG8B2opAgA3AgAgAkHcAWoiAyACQcQHaigCADYCACACIAIpA8gHNwOACCACIAIpArQHNwLMASACIAIoArAHNgLIASACQSU2ArAHIAJByAFqEOgDIAJBtAdqIQ4gAkGwB2ohEAJAAkACQAJAAkACQAJAIAIoArAHIgtBJUYEQCACKALYByEIIAJBJTYC2AcCQCAIQSVHBEAgAkHsAWogAkH8B2ooAgA2AgAgAkHkAWogAkH0B2opAgA3AgAgAyACQewHaikCADcCACAEIAJB5AdqKQIANwIAIAIgAikC3Ac3AswBIAIgCDYCyAEMAQsgAkHIAWogBxAyIAIoArAHQSVGDQAgEBDoAwsgECACKQPIATcDACAQQSBqIAJB6AFqKQMANwMAIBBBGGogAkHgAWopAwA3AwAgEEEQaiACQdgBaikDADcDACAQQQhqIAJB0AFqKQMANwMAIAIoArAHIgtBJUYNAQsgC0EURyACLQC0ByIEQQtHcg0BDAgLIAIoAtgHIQMgAkElNgLYBwJAIANBJUcEQCACQewBaiACQfwHaigCADYCACACQeQBaiACQfQHaikCADcCACACQdwBaiACQewHaikCADcCACACQdQBaiACQeQHaikCADcCACACIAIpAtwHNwLMASACIAM2AsgBDAELIAJByAFqIAcQMiACKAKwB0ElRg0AIBAQ6AMLIBAgAikDyAE3AwAgEEEgaiACQegBaikDADcDACAQQRhqIAJB4AFqKQMANwMAIBBBEGogAkHYAWopAwA3AwAgEEEIaiACQdABaikDADcDACACKAKwByILQSVGDQEgAi0AtAchBAsgC0EURyAEQf8BcUEMR3INAQwGCyACKALYByEDIAJBJTYC2AcCQCADQSVHBEAgAkHsAWogAkH8B2ooAgA2AgAgAkHkAWogAkH0B2opAgA3AgAgAkHcAWogAkHsB2opAgA3AgAgAkHUAWogAkHkB2opAgA3AgAgAiACKQLcBzcCzAEgAiADNgLIAQwBCyACQcgBaiAHEDIgAigCsAdBJUYNACAQEOgDCyAQIAIpA8gBNwMAIBBBIGogAkHoAWopAwA3AwAgEEEYaiACQeABaikDADcDACAQQRBqIAJB2AFqKQMANwMAIBBBCGogAkHQAWopAwA3AwAgAigCsAciC0ElRg0BCyALQQJHDQEgAi0AuAciA0EBSyADQQFxcg0CIAItALkHQQlHDQIgAkHcAWogDkEQaigCADYCACACQdQBaiAOQQhqKQIANwIAIAJBAjYCyAEgAiACKQPIBzcDgAggAiAOKQIANwLMASACQSU2ArAHIAJByAFqEOgDIAIoArAHIgtBJUcNAQsgAigC2AchAyACQSU2AtgHAkAgA0ElRwRAIAJB7AFqIAJB/AdqKAIANgIAIAJB5AFqIAJB9AdqKQIANwIAIAJB3AFqIAJB7AdqKQIANwIAIAJB1AFqIAJB5AdqKQIANwIAIAIgAikC3Ac3AswBIAIgAzYCyAEMAQsgAkHIAWogBxAyIAIoArAHQSVGDQAgEBDoAwsgECACKQPIATcDACAQQSBqIAJB6AFqKQMANwMAIBBBGGogAkHgAWopAwA3AwAgEEEQaiACQdgBaikDADcDACAQQQhqIAJB0AFqKQMANwMAIAIoArAHIgtBJUYNAQsgC0ELRw0AIA4pAgAhQyAOIAIpAqABNwIAIAJB3AFqIgwgDkEQaiIIKAIANgIAIAJB1AFqIgQgDkEIaiIDKQIANwIAIAMgAkGoAWopAgA3AgAgAikDyAchQiAIIAJBsAFqKQIANwIAIA5BGGogAkG4AWopAgA3AgAgDkEgaiACQcABaigCADYCACACIEM3AswBIAJBJTYCsAcgAkELNgLIASACIEI3A4AIIAJByAFqEOgDIAJBwAhqIAJBkgdqIgNBCGopAAA3AwAgAkHICGogA0EQaikAADcDACACQc0IaiADQRVqKQAANwAAIAIgAykAADcDuAggAigCsAciC0ElRgRAIAIoAtgHIQMgAkElNgLYBwJAIANBJUcEQCACQewBaiACQfwHaigCADYCACACQeQBaiACQfQHaikCADcCACAMIAJB7AdqKQIANwIAIAQgAkHkB2opAgA3AgAgAiACKQLcBzcCzAEgAiADNgLIAQwBCyACQcgBaiAHEDIgAigCsAdBJUYNACAQEOgDCyAQIAIpA8gBNwMAIBBBIGogAkHoAWopAwA3AwAgEEEYaiACQeABaikDADcDACAQQRBqIAJB2AFqKQMANwMAIBBBCGogAkHQAWopAwA3AwAgAigCsAciC0ElRg0BCyALQQJHDQAgAkG4CGogAi0AuAcgAi0AuQcQ2AwNACAOKQIAIUMgDiACKQKgATcCACACQdwBaiIMIA5BEGoiCCgCADYCACACQdQBaiIEIA5BCGoiAykCADcCACADIAJBqAFqKQIANwIAIAIpA8gHIUIgCCACQbABaikCADcCACAOQRhqIAJBuAFqKQIANwIAIA5BIGogAkHAAWooAgA2AgAgAiBDNwLMASACQSU2ArAHIAJBAjYCyAEgAiBCNwOACCACQcgBahDoAyACKAKwByIDQSVGBEAgAigC2AchAyACQSU2AtgHAkAgA0ElRwRAIAJB7AFqIAJB/AdqKAIANgIAIAJB5AFqIAJB9AdqKQIANwIAIAwgAkHsB2opAgA3AgAgBCACQeQHaikCADcCACACIAIpAtwHNwLMASACIAM2AsgBDAELIAJByAFqIAcQMiACKAKwB0ElRg0AIBAQ6AMLIBAgAikDyAE3AwAgEEEgaiACQegBaikDADcDACAQQRhqIAJB4AFqKQMANwMAIBBBEGogAkHYAWopAwA3AwAgEEEIaiACQdABaikDADcDACACKAKwByIDQSVGDQULIANBAkcNBCACLQC4B0ECRw0EIAItALkHIAJB6ARqEMMRQR5GDQMMBQsgAkHoBGoQwxEMBAtB7LPgABDVHQALIA5BEGooAgAhAyACQRQ2AsgBIAJB3AFqIgggAzYCACACQdQBaiIEIA5BCGopAgA3AgAgAkElNgKwByACIAIpA8gHNwOACCACIA4pAgA3AswBIAJByAFqEOgDIAIoArAHIgNBJUYEQCACKALYByEDIAJBJTYC2AcCQCADQSVHBEAgAkHsAWogAkH8B2ooAgA2AgAgAkHkAWogAkH0B2opAgA3AgAgCCACQewHaikCADcCACAEIAJB5AdqKQIANwIAIAIgAikC3Ac3AswBIAIgAzYCyAEMAQsgAkHIAWogBxAyIAIoArAHQSVGDQAgEBDoAwsgECACKQPIATcDACAQQSBqIAJB6AFqKQMANwMAIBBBGGogAkHgAWopAwA3AwAgEEEQaiACQdgBaikDADcDACAQQQhqIAJB0AFqKQMANwMAIAIoArAHIgNBJUYNAgsgA0ECRw0BIAItALgHDQEgAi0AuQcgAkHoBGoQwxFBCUcNAgsgBigCACIKQSVGDQIgCSgCACELDAMLIAJB6ARqEMMRC0EAIQkgBigCAEElRgRAIAEoAvACIQMgAUElNgLwAgJAIANBJUcEQCACQYwFaiABQZQDaigCADYCACACQYQFaiABQYwDaikCADcCACACQfwEaiABQYQDaikCADcCACACQfQEaiABQfwCaikCADcCACACIAM2AugEIAIgASkC9AI3AuwEDAELIAJB6ARqIA0QMiAGKAIAQSVGDQAgBhDoAwsgBiACKQPoBDcDACAGQSBqIAJBiAVqKQMANwMAIAZBGGogAkGABWopAwA3AwAgBkEQaiACQfgEaikDADcDACAGQQhqIAJB8ARqKQMANwMAIAYoAgBBJUYhCQsgASgC4AIhByABKAKcAyELIAJB6ARqIAEQNiACKALsBCEEIAIoAugEIgxBgICAgHhGDQVBACEKQaC/5AAtAAAaIAIoAvAEIQggIigCACEOQeAAEIQBIgNFDQwgAyAINgIMIAMgBDYCCCADIAw2AgQgA0EFNgIAIAMgCyAHIAkbIgQgDiAEIA5LGzYCFCADIAQgDiAEIA5JGzYCEAwPCyABKALwAiEDIAFBJTYC8AICQCADQSVHBEAgAkGMBWogAUGUA2ooAgA2AgAgAkGEBWogAUGMA2opAgA3AgAgAkH8BGogAUGEA2opAgA3AgAgAkH0BGogAUH8AmopAgA3AgAgAiADNgLoBCACIAEpAvQCNwLsBAwBCyACQegEaiANEDIgBigCAEElRg0AIAYQ6AMLIAYgAikD6AQ3AwAgBkEgaiACQYgFaikDADcDACAGQRhqIAJBgAVqKQMANwMAIAZBEGogAkH4BGopAwA3AwAgBkEIaiACQfAEaikDADcDACAGKAIAIgpBJUcEQCAJKAIAIQsMAQsgIigCACELIAEoAvACIQMgAUElNgLwAgJAIANBJUcEQCACQYwFaiABQZQDaigCADYCACACQYQFaiABQYwDaikCADcCACACQfwEaiABQYQDaikCADcCACACQfQEaiABQfwCaikCADcCACACIAM2AugEIAIgASkC9AI3AuwEDAELIAJB6ARqIA0QMiAGKAIAQSVGDQAgBhDoAwsgBiACKQPoBDcDACAGQSBqIAJBiAVqKQMANwMAIAZBGGogAkGABWopAwA3AwAgBkEQaiACQfgEaikDADcDACAGQQhqIAJB8ARqKQMANwMAIAYoAgAiCkElRg0BCyAKQQ1GDQELIAJB8ARqIA0Q3QcgAkHYyN8ANgLsBCACQTQ6AOgEIA1B8AJBuAIgBigCAEElRiIDG2ooAgAiBCANQfQCQbwCIAMbaigCACIDIAMgBEsbIAQgAyADIARJGyACQegEahDvGyEDIA0QvwoiBEUNBiAEKAIAQSRHDQYgASABKQPgAjcDmAMgASgCyAIgAUElNgLIAkEkRw0BIAEgASgCzAIQwAhBASEKDAwLIAFBJTYCyAIgASABKQPgAjcDmAMgAkH8BGoiBCABQdwCaigCADYCACACQfQEaiIDIAFB1AJqKQIANwIAIAJBDTYC6AQgAiABKQLMAjcC7AQgAUHMAmohCiACQegEahDoAwJAAkACQAJAAkACQAJAAkACQCABKALIAiIJQSVGBEAgASgC8AIhCCABQSU2AvACAkAgCEElRwRAIAJBjAVqIAFBlANqKAIANgIAIAJBhAVqIAFBjANqKQIANwIAIAQgAUGEA2opAgA3AgAgAyABQfwCaikCADcCACACIAg2AugEIAIgASkC9AI3AuwEDAELIAJB6ARqIA0QMiAGKAIAQSVGDQAgBhDoAwsgBiACKQPoBDcDACAGQSBqIAJBiAVqKQMANwMAIAZBGGogAkGABWopAwA3AwAgBkEQaiACQfgEaikDADcDACAGQQhqIAJB8ARqKQMANwMAIAYoAgAiCUElRg0BCyAJQRRHDQAgCi0AAEELRg0BCyANEL8KIgNFDQEgAygCAEEURw0BIAMtAARBDEcNAQtBAiEEAkAgDRC/CiIDRQ0AIAMoAgBBFEcNAEEBQQIgAy0ABEELRhshBAsgASgCyAIhAyABQSU2AsgCIAEgASkD4AI3A5gDIAJB9ARqIApBCGopAgA3AgAgAkH8BGogCkEQaigCADYCACACIAopAgA3AuwEIAIgAzYC6AQgAkHoBGoQ6AMCQCANEL8KIgNFDQAgAygCAEECRw0AIAMtAAgNACADLQAJQQlGDQILIAJB8ARqIA0Q3QcgAkHAzd8ANgLsBCACQTQ6AOgEIA1B8AJBuAIgBigCAEElRiIDG2ooAgAiBCANQfQCQbwCIAMbaigCACIDIAMgBEsbIAQgAyADIARJGyACQegEahDvGyEDIA0QvwoiBEUNDCAEKAIAQSRHDQwgASABKQPgAjcDmAMgASgCyAIgAUElNgLIAkEkRw0DIAEgASgCzAIQwAgMDAtBAyEEIA0QvwoiA0UNASADKAIAQQJHDQEgAy0ACA0BIAMtAAlBCUcNASABKALIAiEDIAFBJTYCyAIgASABKQPgAjcDmAMgAkH0BGogCkEIaikCADcCACACQfwEaiAKQRBqKAIANgIAIAIgCikCADcC7AQgAiADNgLoBCACQegEahDoA0EAIQQMAQsgASgCyAIhAyABQSU2AsgCIAEgASkD4AI3A5gDIAJB9ARqIApBCGopAgA3AgAgAkH8BGogCkEQaigCADYCACACIAopAgA3AuwEIAIgAzYC6AQgAkHoBGoQ6AMLAkACQAJAIA0QvwoiA0UNACADKAIAQQtHDQAgASgCyAIhAyABQSU2AsgCIAEgASkD4AI3A5gDIAJB9ARqIhAgCkEIaikCADcCACACQfwEaiIOIApBEGooAgA2AgAgAiAKKQIANwLsBCACIAM2AugEIAJB6ARqIggQ6AMjAEEwayISJAACfyABKALIAkElRwRAIAFBnANqIRwgASgC4AIMAQsgAUHIAmohCSABKALwAiEDIAFBJTYC8AICQCADQSVHBEAgEkEsaiABQZQDaigCADYCACASQSRqIAFBjANqKQIANwIAIBJBHGogAUGEA2opAgA3AgAgEkEUaiABQfwCaikCADcCACASIAM2AgggEiABKQL0AjcCDAwBCyASQQhqIAFBKGoQMiAJKAIAQSVGDQAgCRDoAwsgCSASKQMINwMAIAlBIGogEkEoaikDADcDACAJQRhqIBJBIGopAwA3AwAgCUEQaiASQRhqKQMANwMAIAlBCGogEkEQaikDADcDACABQZwDaiIcIAFB4AJqIAEoAsgCQSVGGygCAAshFCASQQhqIgkgARDGAyASKAIQIQcCQCASKQMIIkJQRQRAIBIoAhQhAyASIAFBiNffAEG86eAAQQIQqwMgEigCBCEMIBIoAgBFBEAgHCgCACEWIBIgAzYCFCASIAc2AhAgEiBCNwMIIAhBCGogCRCT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A2pB4AAQgQkaQQAhFQwECyAFQdADahDoAyAFQRhqIAEQVSAFKAIcIRMgBSgCGA0AQaC/5AAtAAAaIAMoAgAhA0HgABCEASIBRQ0BIAEgBDoAECABIBM2AgQgAUEONgIAIAEgCCADIAMgCEkbNgIMIAEgCCADIAMgCEsbNgIIIAEhEwwDC0EBIRUMAgsACyABQSU2AsgCIAEgASkD4AI3A5gDIAEgASgCzAIQwAhBASEVCyAAIBM2AgQgACAVNgIAIAVB8AZqJAAPC0GMtOAAENYdAAtB/LPgABDVHQAL+y8CNH8CfiMAQeAEayIDJAAgAUHIAmohBSABQShqIQwgASgCyAIiBEElRgRAIAEoAvACIQQgAUElNgLwAgJAIARBJUcEQCADQbwBaiABQZQDaigCADYCACADQbQBaiABQYwDaikCADcCACADQawBaiABQYQDaikCADcCACADQaQBaiABQfwCaikCADcCACADIAQ2ApgBIAMgASkC9AI3ApwBDAELIANBmAFqIAwQMiAFKAIAQSVGDQAgBRDoAwsgBSADKQOYATcDACAFQSBqIANBuAFqKQMANwMAIAVBGGogA0GwAWopAwA3AwAgBUEQaiADQagBaikDADcDACAFQQhqIANBoAFqKQMANwMAIAUoAgAhBAsgASgC4AIhCiABQSU2AsgCIAEgCjYCmAMgA0GsAWoiBiABQdwCaigCADYCACADQaQBaiIHIAFB1AJqKQIANwIAIAEgASgC5AI2ApwDIAMgASkCzAI3ApwBIAMgBDYCmAECQAJAAkACQAJAIARBAkcNACADLQCgAUECRw0AIAMtAKEBQRFrIg5B/wFxQQJLDQAgA0GYAWoQ6AMgCiABKAKcAyIJIAkgCkkbIQ0gAkUgAS0AoAJBAkdyDQICQAJAIAUoAgAiBEElRgRAIAEoAvACIQQgAUElNgLwAgJAIARBJUcEQCADQbwBaiABQZQDaigCADYCACADQbQBaiABQYwDaikCADcCACAGIAFBhANqKQIANwIAIAcgAUH8AmopAgA3AgAgAyAENgKYASADIAEpAvQCNwKcAQwBCyADQZgBaiAMEDIgBSgCAEElRg0AIAUQ6AMLIAUgAykDmAE3AwAgBUEgaiADQbgBaikDADcDACAFQRhqIANBsAFqKQMANwMAIAVBEGogA0GoAWopAwA3AwAgBUEIaiADQaABaikDADcDACAFKAIAIgRBJUYNAQsgBEECRw0BIAEtANACQQJHDQEgAS0A0QJBHkcNAQwDCyABKALwAiEEIAFBJTYC8AICQCAEQSVHBEAgA0G8AWogAUGUA2ooAgA2AgAgA0G0AWogAUGMA2opAgA3AgAgA0GsAWogAUGEA2opAgA3AgAgA0GkAWogAUH8AmopAgA3AgAgAyAENgKYASADIAEpAvQCNwKcAQwBCyADQZgBaiAMEDIgBSgCAEElRg0AIAUQ6AMLIAUgAykDmAE3AwAgBUEgaiADQbgBaikDADcDACAFQRhqIANBsAFqKQMANwMAIAVBEGogA0GoAWopAwA3AwAgBUEIaiADQaABaikDADcDACAFKAIAIgRBJUYNAwsgBEECRw0CIAEtANACIgRBAUsgBEEBcXINAiABLQDRAkEERw0CDAELQYmE4QBBKEHgiOAAENUhAAsgA0GYAWogARDIAgJAAkACQAJAAkACQCADLQDDA0EBcUUNACADKAKgAyIGKAIIIgRB/v///wdLDQEgBigCFEUNACAEDQIgBkF/NgIIIAMoApwDIgQoAggNAyAEQX82AgggBigCECEIIARBDGogBigCFCIHEOQnIAQoAhAgBCgCFEECdGogCCAHQQJ0EIEJGiAEIAcgBCgCFGo2AhQgBkEANgIUIAQgBCgCCEEBajYCCCAGIAYoAghBAWo2AggLIANBwAFqIQcgA0EBOgDCAyADQeADaiEEAkACQCADKALgAyIGQSVGBEAgAygCiAQhBiADQSU2AogEAkAgBkElRwRAIANB3ARqIANBrARqKAIANgIAIANB1ARqIANBpARqKQIANwIAIANBzARqIANBnARqKQIANwIAIANBxARqIANBlARqKQIANwIAIAMgAykCjAQ3ArwEIAMgBjYCuAQMAQsgA0G4BGogBxAyIAMoAuADQSVGDQAgBBDoAwsgBCADKQO4BDcDACAEQSBqIANB2ARqKQMANwMAIARBGGogA0HQBGopAwA3AwAgBEEQaiADQcgEaikDADcDACAEQQhqIANBwARqKQMANwMAIAMoAuADIgZBJUYNAQsgBkECRw0BIAMtAOgDIghBAUsgCEEBcXINASADLQDpA0EERw0BDAYLIAMoAogEIQYgA0ElNgKIBAJAIAZBJUcEQCADQdwEaiADQawEaigCADYCACADQdQEaiADQaQEaikCADcCACADQcwEaiADQZwEaikCADcCACADQcQEaiADQZQEaikCADcCACADIAMpAowENwK8BCADIAY2ArgEDAELIANBuARqIAcQMiADKALgA0ElRg0AIAQQ6AMLIAQgAykDuAQ3AwAgBEEgaiADQdgEaikDADcDACAEQRhqIANB0ARqKQMANwMAIARBEGogA0HIBGopAwA3AwAgBEEIaiADQcAEaikDADcDACADKALgAyIGQSVGDQQLIAZBAkcNAyADLQDoA0ECRw0DIAMtAOkDQR5HDQMMBAtBjLTgABDWHQALQfyz4AAQ1R0AC0Hss+AAENUdAAsgA0GYAWoQwxEMAQsgA0HMBGoiDyADQfQDaigCADYCACADQcQEaiIIIANB7ANqKQIANwIAIAMgAykC5AM3ArwEIANBJTYC4AMgA0ECNgK4BCADIAMpA/gDNwOwBCADQbgEahDoAyADQQhqIANBmAFqEI0DIAMoAgwhBgJAAkACQCADKAIIDQAgBhCSAiAGQcAAQQgQohgCQCADKALgAyIGQSVGBEAgAygCiAQhBiADQSU2AogEAkAgBkElRwRAIANB3ARqIANBrARqKAIANgIAIANB1ARqIANBpARqKQIANwIAIA8gA0GcBGopAgA3AgAgCCADQZQEaikCADcCACADIAMpAowENwK8BCADIAY2ArgEDAELIANBuARqIAcQMiADKALgA0ElRg0AIAQQ6AMLIAQgAykDuAQ3AwAgBEEgaiADQdgEaikDADcDACAEQRhqIANB0ARqKQMANwMAIARBEGogA0HIBGopAwA3AwAgBEEIaiADQcAEaikDADcDACADKALgAyIGQSVGDQELIAZBCkYNAgsgA0HABGogA0HAAWoQ3QcgA0HwzN8ANgK8BCADQTQ6ALgEIANBsARqIANB+ANqIAMoAuADQSVGIgYbKAIAIgQgA0G0BGogA0H8A2ogBhsoAgAiBiAEIAZJGyAEIAYgBCAGSxsgA0G4BGoQ7xshBiAHEL8KIgRFDQAgBCgCAEEkRw0AIAMgAykD+AM3A7AEIAMoAuADIANBJTYC4ANBJEcNAiADQZgBaiADKALkAxDACAsgA0GYAWoQwxEgBkEIahCIAyAGQSBBCBCiGAwCCyADQcwEaiADQfQDaigCADYC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AgAgAyAENgKYAQwBCyADQZgBaiAMEDIgBSgCAEElRg0AIAUQ6AMLIAUgAykDmAE3AwAgBUEgaiADQbgBaikDADcDACAFQRhqIANBsAFqKQMANwMAIAVBEGogA0GoAWopAwA3AwAgBUEIaiAJKQMANwMAIAUoAgAiBEElRg0BCyAEQRBHDQAgAUElNgLIAiAGIAgpAgA3AgAgCCADKQJ0NwIAIAZBEGogCEEQaiIEKAIANgIAIAZBCGogCEEIaiILKQIANwIAIAsgA0H8AGopAgA3AgAgASkD4AIhNyAEIANBhAFqKQIANwIAIAhBGGogA0GMAWopAgA3AgAgCEEgaiADQZQBaigCADYCACADQRA2ApgBIAEgNzcDmAMgEEE4aiEQIANBmAFqEOgDDAELCwJAIAINACAFKAIAIgRBJUYEQCABKALwAiECIAFBJTYC8AICQCACQSVHBEAgA0G8AWogB0EgaigCADYCACADQbQBaiAHQRhqKQIANwIAIANBrAFqIAdBEGopAgA3AgAgA0GkAWogB0EIaikCADcCACADIAI2ApgBIAMgBykCADcCnAEMAQsgA0GYAWogDBAyIAUoAgBBJUYNACAFEOgDCyAFIAMpA5gBNwMAIAVBIGogA0G4AWopAwA3AwAgBUEYaiADQbABaikDADcDACAFQRBqIANBqAFqKQMANwMAIAVBCGogA0GgAWopAwA3AwAgBSgCACIEQSVGDQELAkACQCAEQQ5rDgICAAELIAFBJTYCyAIgCCkCACE3IAggAykCdDcCACADQawBaiAIQRBqIgIoAgA2AgAgA0GkAWogCEEIaiIEKQIANwIAIAQgA0H8AGopAgA3AgAgASkD4AIhOCACIANBhAFqKQIANwIAIAhBGGogA0GMAWopAgA3AgAgCEEgaiADQZQBaigCADYCACADIDc3ApwBIANBDzYCmAEgASA4NwOYAyADQZgBahDoAwwBCyABLQDoAg0AIAEoAuACIQIgASgC5AIhBCADQfUAOgCYASABIAIgBCACIARJGyACIAQgAiAESxsgA0GYAWoiBBDpIiADIAEQ2gIgAygCBCICAn8gAygCAEUEQCACEJICQcAADAELIAJBCGoQiANBIAtBCBCiGCAEQQRyIQIgASgCyAIhBANAIARBJUYEQCABKALwAiEEIAFBJTYC8AICQCAEQSVHBEAgAiAHKQIANwIAIAJBIGogB0EgaigCADYCACACQRhqIAdBGGopAgA3AgAgAkEQaiAHQRBqKQIANwIAIAJBCGogB0EIaikCADcCACADIAQ2ApgBDAELIANBmAFqIAwQMiAFKAIAQSVGDQAgBRDoAwsgBSADKQOYATcDACAFQSBqIANBuAFqKQMANwMAIAVBGGogA0GwAWopAwA3AwAgBUEQaiADQagBaikDADcDACAFQQhqIANBoAFqKQMANwMAIAUoAgAiBEElRg0CCwJAAkAgBEEOaw4CAwABCyABQSU2AsgCIAgpAgAhNyAIIAMpAnQ3AgAgA0GsAWogCEEQaiICKAIANgIAIANBpAFqIAhBCGoiBCkCADcCACAEIANB/ABqKQIANwIAIAEpA+ACITggAiADQYQBaikCADcCACAIQRhqIANBjAFqKQIANwIAIAhBIGogA0GUAWooAgA2AgAgAyA3NwKcASADQQ82ApgBIAEgODcDmAMgA0GYAWoQ6AMMAgsgAS0A6AINASABQSU2AsgCIAIgCCkCADcCACAIIAMpAnQ3AgAgAkEQaiIJIAhBEGoiBigCADYCACACQQhqIgsgCEEIaiINKQIANwIAIA0gA0H8AGopAgA3AgAgASkD4AIhNyAGIANBhAFqKQIANwIAIAhBGGogA0GMAWopAgA3AgAgCEEgaiADQZQBaigCADYCACADIAQ2ApgBIAEgNzcDmAMgA0GYAWoQ6AMgASgCyAIiBkElRgRAIAEoAvACIQQgAUElNgLwAgJAIARBJUcEQCACIAcpAgA3AgAgAkEgaiAHQSBqKAIANgIAIAJBGGogB0EYaikCADcCACAJIAdBEGopAgA3AgAgCyAHQQhqKQIANwIAIAMgBDYCmAEMAQsgA0GYAWogDBAyIAUoAgBBJUYNACAFEOgDCyAFIAMpA5gBNwMAIAVBIGogA0G4AWopAwA3AwAgBUEYaiADQbABaikDADcDACAFQRBqIANBqAFqKQMANwMAIAVBCGogA0GgAWopAwA3AwBBJSEEIAUoAgAiBkElRg0BCyAGIgRBJEcNAAsLQQAhAkGgv+QALQAAGiABKAKcAyEBQRwQhAEiBEUNACAEIAMpAhQ3AgAgBCAOOgAZIARBADoAGCAEQQA2AhQgBEEIaiADQRxqKAIANgIAIAQgCiABIAEgCkkbNgIQIAQgCiABIAEgCksbNgIMQQhBABCvIUEAQQgQxyoMAQsACyAAIAQ2AgQgACACNgIAIANB4ARqJAAL1DACMn8CfiMAQZADayICJAAgAUHIAmohAyABQShqIQkCQAJAAkAgASgCyAIiBEElRwRAIAFBnANqIRMMAQsgASgC8AIhBSABQSU2AvACAkAgBUElRwRAIAJB3AFqIAFBlANqKAIANgIAIAJB1AFqIAFBjANqKQIANwIAIAJBzAFqIAFBhANqKQIANwIAIAJBxAFqIAFB/AJqKQIANwIAIAIgBTYCuAEgAiABKQL0AjcCvAEMAQsgAkG4AWogCRAyIAMoAgBBJUYNACADEOgDCyADIAIpA7gBNwMAIANBIGogAkHYAWopAwA3AwAgA0EYaiACQdABaikDADcDACADQRBqIAJByAFqKQMANwMAIANBCGogAkHAAWopAwA3AwAgAUGcA2ohEyABKALIAiIEQSVHDQAgASgCnAMhEiABKALwAiEFIAFBJTYC8AICQCAFQSVHBEAgAkHcAWogAUGUA2ooAgA2AgAgAkHUAWogAUGMA2opAgA3AgAgAkHMAWogAUGEA2opAgA3AgAgAkHEAWogAUH8AmopAgA3AgAgAiAFNgK4ASACIAEpAvQCNwK8AQwBCyACQbgBaiAJEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDuAE3AwAgA0EgaiACQdgBaikDADcDACADQRhqIAJB0AFqKQMANwMAIANBEGogAkHIAWopAwA3AwAgA0EIaiACQcABaikDADcDACADKAIAIgRBJUcNASABKAKAAiEBIAJBADoAuAEgASABIAJBuAFqEO8bIQEgAEEANgIAIAAgATYCBAwCCyABKALgAiESCwJAAkACQAJAAkACQAJAAkACQAJAIARBJEcEQCABQSU2AsgCIAEgASkD4AI3A5gDIAJBzAFqIgYgAUHcAmooAgA2AgAgAkHEAWoiCCABQdQCaikCADcCACACIAQ2ArgBIAIgASkCzAI3ArwBIAFBzAJqIQcgAkG4AWoQ6AMgASgCnAMhCiABKAKYAyELAkACQCABKALIAiIEQSVGBEAgASgC8AIhBSABQSU2AvACAkAgBUElRwRAIAJB3AFqIAFBlANqKAIANgIAIAJB1AFqIAFBjANqKQIANwIAIAYgAUGEA2op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AQsgAkG4AWogCRAyIAMoAgBBJUYNACADEOgDCyADIAIpA7gBNwMAIANBIGogAkHYAWopAwA3AwAgA0EYaiACQdABaikDADcDACADQRBqIAJByAFqKQMANwMAIANBCGogAkHAAWopAwA3AwAgAS0ArQIhBAsgAkEAOgCGAiACIAQ6AO8BIAIgAS0ArAI6AO4BIAIgAS8BqgI7AOwBIAIgASkBrgI3APABIAIgASkBtgI3APgBIAIgASgBvgI2AIACIAIgAS8BwgI7AIQCIAIgAS8AxQI7AIcCIAJBuAFqIgUgASACQewBahC/CCACQeACaiACKAK4AUEAQQAQswEgAigC4AJBE0YNBEGgv+QALQAAGkEwEIQBIhBFDQogECACKQPgAjcDACAQQShqIAJBiANqKQMANwMAIBBBIGogAkGAA2opAwA3AwAgEEEYaiACQfgCaikDADcDACAQQRBqIAJB8AJqKQMANwMAIBBBCGogAkHoAmopAwA3AwAgBRD1CkEAIQQgAS0AxAJBAXENByACQQA2AlwgAUH0AmohCyACQeQAaiEUIAJByAJqIRUgBUEEciEKIAEtAMYCIRYgAS0AxQIhFyABLQDDAiEYIAEtAMICIRkgAS0AwQIhGiABLQDAAiEbIAEtAL8CIRwgAS0AvgIhHSABLQC9AiEeIAEtALwCIR8gAS0AuwIhICABLQC6AiEhIAEtALkCISIgAS0AuAIhIyABLQC3AiEkIAEtALYCISUgAS0AtQIhJiABLQC0AiEnIAEtALMCISggAS0AsgIhKSABLQCxAiEqIAEtALACISsgAS0ArwIhLCABLQCuAiEtIAEtAK0CIS4gAS0ArAIhLyABLQCrAiEwIAEtAKoCITEgAigCYCEGQQAhBQNAIAIoAmghDSACKAJkIQ4CQAJAA0ACQAJAAkACQAJAAkAgAygCACIEQSVGBEAgASgC8AIhBCABQSU2AvACAkAgBEElRwRAIAogCykCADcCACAKQSBqIAtBIGooAgA2AgAgCkEYaiALQRhqKQIANwIAIApBEGogC0EQaikCADcCACAKQQhqIAtBCGopAgA3AgAgAiAENgK4AQwBCyACQbgBaiAJEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDuAE3AwAgA0EgaiACQdgBaikDADcDACADQRhqIAJB0AFqKQMANwMAIANBEGogAkHIAWopAwA3AwAgA0EIaiACQcABaikDADcDACADKAIAIgRBJUYNAQsgBEECRw0AIAEtANACQQJHDQAgAS0A0QJBCEcNACABQSU2AsgCIAogBykCADcCACAHIAIpApwCNwIAIApBEGoiCCAHQRBqIgQoAgA2AgAgCkEIaiIMIAdBCGoiDykCADcCACAPIAJBpAJqKQIANwIAIAEpA+ACITQgBCACQawCaikCADcCACAHQRhqIAJBtAJqKQIANwIAIAdBIGogAkG8AmooAgA2AgAgAkECNgK4ASABIDQ3A5gDIAJBuAFqEOgDAkAgASgCyAIiBEElRgRAIAEoAvACIQQgAUElNgLwAgJAIARBJUcEQCAKIAspAgA3AgAgCkEgaiALQSBqKAIANgIAIApBGGogC0EYaikCADcCACAIIAtBEGopAgA3AgAgDCALQQhqKQIANwIAIAIgBDYCuAEMAQsgAkG4AWogCRAyIAMoAgBBJUYNACADEOgDCyADIAIpA7gBNwMAIANBIGogAkHYAWopAwA3AwAgA0EYaiACQdABaikDADcDACADQRBqIAJByAFqKQMANwMAIANBCGogAkHAAWopAwA3AwAgAygCACIEQSVGDQELIARBAkcNACABLQDQAkECRw0AIAEtANECQQxGDQYLIAIgDTYCaCACIA42AmQgAiAGNgJgIAIgBTYCXCACQQA6ALUBIAIgASkBqgI3AJsBIAIgASkBsgI3AKMBIAIgASkBugI3AKsBIAIgAS8BwgI7ALMBIAIgAS8AxQI7ALYBIAJB7AFqIgQgASACQZsBahC/CCACQbgBaiACKALsAUEAQQAQswEgAigCvAEhASACKAK4ASIIQRNGDQQgAkGQAWoiBiACQeABaikDADcDACACQYgBaiIDIAJB2AFqKQMANwMAIAJBgAFqIgcgAkHQAWopAwA3AwAgAkH4AGoiCSACQcgBaiIKKQMANwMAIAIgAikDwAE3A3AgBBD1CiAFDQEgAkHQAGogBikDADcDACACQcgAaiADKQMANwMAIAJBQGsgBykDADcDACACQThqIAkpAwA3AwAgAiACKQNwNwMwDBALIAIgDTYCaCACIA42AmQgAiAGNgJgIAIgBTYCXCAFDQFBACEEDBALIAogAkHsAGooAgA2AgAgAkHAAWogAkHkAGopAgA3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OCEpCyAkIClqIgsgFDYCACALQQxqIAY2AgAgC0EIaiACNgIAIAtBBGogBTYCACALQRhqICIpAwA3AwAgC0EQaiAEKQN4NwMAICEpAwAhMCALQUBrIC43AwAgC0E4aiAvNwMAIAtBMGogLDcDACALQSxqIB42AgAgC0EoaiAdNgIAIAtBIGogMDcDACALQcgAaiAEKQNoNwMAIAtB0ABqICMpAwA3AwAgJEHYAGohJCAXQQFqIRcMAQsLIAMoAoQDIg9BgICAgHhGBEAgAygCyAIhDAwCCyADKALMAiERIAMoAsgCIRIgA0HABWogA0HQAmpBNBCBCRogA0GgBmogA0GQA2opAwA3AwAgAyADKQOIAzcDmAYMAwsgA0HwBGoQ5SwLIABBgYCAgHg2ApABIAAgDDYCAAwCCyABKAIoIQUgAUElNgIoIAEgASkDQDcDeCADQdQCaiAQQQhqKQIANwIAIANB3AJqIBBBEGooAgA2AgAgAyAQKQIANwLMAiADIAU2AsgCIANByAJqEI4OIAEoAnwiBSACIAIgBUsbIRIgBSACIAIgBUkbIRFBgICAgHghDwsgAyARNgKEASADQYgBaiADQcAFakE0EIEJGiADQcgBaiADQaAGaikDADcDACADIAMpA5gGNwPAASADIBI2AoABIAMgDzYCvAEgA0EANgLcASADQoCAgICAATcC1AEgA0EHOgCUAgJAAkACQAJAAkACQAJAAkACQCAPQYCAgIB4Rg0AIAMtAMgBQQFHDQBBByEGQQAhDCADKALkASENDAELIANB0AJqIRwgA0HIAmpBBHIhByADQcwCaiEEIANB3ANqIQogA0HsAmohDkEAIQJBACEMAkACQAJAAkACQAJAAkACQAJAAkACQANAIAkQoRMiBUUEQCABKALYAiEBIANBADoAyAIgASABIANByAJqEO8bIQUMDAsCQAJAAkACQAJAAkACQAJAIAUoAgAiBUEgaw4FBAUCAgABCyABIAEpA0A3A3ggASgCKCABQSU2AihBJEYEQCABKAIsIQUMEwtBiYThAEEoQfjn3wAQ1SEACyAFQQ1GDQELIANB1AJqIAkQiQogA0EIaiAJELceIANBIDYC0AIgA0Ho6N8ANgLMAiADQTA6AMgCIAMoAgggAygCDCADQcgCahDvGyEFIAkQoRMiAkUNECACKAIAQSRHDRAgASABKQNANwN4IAEoAiggAUElNgIoQSRHDQsgASABKAIsEMUQDBALIAkQoRMaAkACQCAJEOwZIgUEQCAFKAIAQQdGDQELIANByAJqIAEQ5gUgAygCyAIiBkECRg0BIANByARqIgggBEEIaikCADcDACADIAQpAgA3A8AEIAMoAtQBIAxGBEAgA0HUAWoQgCELIAMoAtgBIAJqIgVBATYCACAFQQRqIAY2AgAgBUEIaiADKQPABDcDACAFQRBqIAgpAwA3AwAgBUEYaiADQdAEaikDADcDACAFQSBqIANB2ARqKQMANwMADAQLIAkQoRMaIAFB/ABBwAAgASgCKEElRhtqKAIAIRMCQCAJEKETIgUEQCAFKAIAQQ1GDQELIANB0AJqIAkQiQogA0EQaiAJELceIANB2MjfADYCzAIgA0E0OgDIAiADKAIQIAMoAhQgA0HIAmoQ7xshBSAJEKETIgJFDREgAigCAEEkRw0RIAEgASkDQDcDeCABKAIoIAFBJTYCKEEkRw0IIAEgASgCLBDFEAwRCyAHIBApAgA3AgAgASgCKCEFIAFBJTYCKCABIAEpA0A3A3ggB0EIaiIGIBBBCGoiCCkCADcCACAHQRBqIg0gEEEQaiIYKAIANgIAIAMgBTYCyAIgA0HIAmoQjg4CQCAJEKETIgUEQCAFKAIAQQdGDQELIANB0AJqIAkQiQogA0EYaiAJELceIANBsObfADYCzAIgA0E0OgDIAiADKAIYIAMoAhwgA0HIAmoQ7xshBSAJEKETIgJFDREgAigCAEEkRw0RIAEgASkDQDcDeCABKAIoIAFBJTYCKEEkRw0HIAEgASgCLBDFEAwRCyAHIBApAgA3AgAgASgCKCEFIAFBJTYCKCABIAEpA0A3A3ggBiAIKQIANwIAIA0gGCgCADYCACADIAU2AsgCIANByAJqEI4OIANBKGogARC6ByADKAIsIQUgAygCKA0QIAMgBTYCwAUCQCAJEKETIgsEQCALKAIAQQ5GDQELIBwgCRCJCiADQSBqIAkQtx4gA0GwyN8ANgLMAiADQTQ6AMgCIAMoAiAgAygCJCADQcgCahDvGyEFIAkQoRMiAkUNECACKAIAQSRHDRAgASABKQNANwN4IAEoAiggAUElNgIoQSRHDQUgASABKAIsEMUQDBALIAcgECkCADcCACABKAIoIQsgAUElNgIoIAEgASkDQDcDeCAGIAgpAgA3AgAgDSAYKAIANgIAIAMgCzYCyAIgA0HIAmoQjg4gEyABKAJ8Ig0gDSATSxshBiAFRQRAIAYhBQwRCyADKALUASAMRgRAIANB1AFqEIAhCyADKALYASACaiIIQQI2AgAgCEEMaiATIA0gDSATSRs2AgAgCEEIaiAGNgIAIAhBBGogBTYCACAIQRBqIAMpA6gENwMAIAhBGGogA0GwBGopAwA3AwAgCEEgaiADQbgEaikDADcDAAwDCyADKALMAiEFDA8LIANByAJqIAEQjBkgAykDyAJQDQYgA0GYBGoiBiADQdgCaikDADcDACADQZAEaiIIIBwpAwA3AwAgAyADKQPIAjcDiAQgAygC1AEgDEYEQCADQdQBahCAIQsgAygC2AEgAmoiBUEANgIAIAVBCGogAykDiAQ3AwAgBUEQaiAIKQMANwMAIAVBGGogBikDADcDACAFQSBqIANBoARqKQMANwMADAELIAkQoRMaIAFB/ABBwAAgASgCKEElRhtqKAIAIQgCfwJAAkACQCAJEOwZIgVFDQAgBSgCAEEURw0AIAUtAARBDkYNAQsgA0HIAmogASAIEFggAygCyAIhBSADKALYAyIIQYGAgIB4Rg0QIAhBgICAgHhHDQEgA0HYBWogB0EYaikCADcDACADQdAFaiAHQRBqKQIANwMAIANByAVqIAdBCGopAgA3AwAgAyAHKQIANwPABUEEDAILIAEoAighBSABQSU2AiggA0HUAmogEEEIaikCADcCACADQdwCaiAQQRBqKAIANgIAIAMgECkCADcCzAIgASkDQCEsIBAgA0GYBmpBJBCBCSECIAEgLDcDeCADIAU2AsgCIANByAJqIgUQjg4gCRChEyIGRQRAIAEoAtgCIQEgA0EAOgDIAiABIAEgBRDvGyEFDBALIAYoAgBBJEYEQCABKAIoIAFBJTYCKCABKAIsIQUgASkDQCEsIAIgA0GYBmpBJBCBCRogASAsNwN4QSRGDRBBiYThAEEoQYjo3wAQ1SEACyAJEKETIgVFDQ0gBSgCAEEkRgRAIAEoAiggAUElNgIoIAEoAiwhBSABKQNAISwgAiADQZgGakEkEIEJGiABICw3A3hBJEYNEEGJhOEAQShBmOjfABDVIQALIAEoAighBSABQSU2Aigg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AMAFIAMgLDcDyAUgFiANIANBwAVqEO8bIQIgCRChEyIFRQ0HIAUoAgBBJEcNByABIAEpA0A3A3ggASgCKCABQSU2AihBJEcNAiABIAEoAiwQxRAMBwsgAyARNgLMAiADIBI2AsgCIANB0AJqIAdBNBCBCSERIANBkANqIAxBCGopAwA3AwAgAyAPNgKEAyADIAwpAwA3A4gDIAMgDTYCxAUgAyAWNgLABSADQcgFaiATQSwQgQkhByADQfcFaiAIQQJqLQAAOgAAIAMgBjoA9AUgAyAILwAAOwD1BSADIAcQwwg3A/gFIAMgA0HIAmoQwwgiLDcDgAYgA0H4BWogA0GABmoiBhDIDyAsENAaIAMpA/gFENAaDQUgAygCxAUhAiADKALABSADQcgCahDDCCEsIANB2AA6AIAGIAMgLDcDiAYgAiAGEO8bIQIgCRChEyIFRQ0EIAUoAgBBJEcNBCABIAEpA0A3A3ggASgCKCABQSU2AihBJEcNAiABIAEoAiwQxRAMBAtBiYThAEEoQajo3wAQ1SEAC0GJhOEAQShByOjfABDVIQALQYmE4QBBKEHY6N8AENUhCwALIABBgYCAgHg2ApABIAAgAjYCACAHELkhIANByAJqELsrDAMLIAMoAswCIRAgAygCyAIhGCADQfAEaiARQTQQgQkaIANB6ARqIANBiANqIgFBCGopAwA3AwAgA0GwBWogA0HkBWopAgA3AwAgA0G4BWogA0HsBWopAgA3AwAgAyABKQMANwPgBCADIAMpAtwFNwOoBSADKAKEAyEPIAMoAtQBIQEgAykC2AEhLSADKALABSEMIAMoAsQFIQggAygCyAUhEyADKALMBSESIAMoAtAFIREgAygC1AUhFiADKALYBSENIANBpgVqIANB9QVqIgZBAmotAAA6AAAgAyAGLwAAOwGkBSADLQD0BSEcIAUhBiACIQcMAwsgAEGBgICAeDYCkAEgACACNgIAIANByAJqELsrDAELIABBgYCAgHg2ApABIAAgBTYCACACELkhCyADQdQBahDaLQwBCyAAIA02AiAgACAWNgIcIAAgETYCGCAAIBI2AhQgACATNgIQIAAgCDYCDCAAIAw2AgggACAHNgIEIAAgBjYCACAAIAMpA6gFNwIkIAAgHDoAPCAAIAMvAaQFOwA9IABBLGogA0GwBWopAwA3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oAFqKAIANgIAIARB+ABqIARBmAFqKQIANwMAIARB8ABqIARBkAFqKQIANwMAIAQgBCkCiAE3A2ggBEGwAWoiASAEQegAahDyFSADIAUgAigCBC0AcCABENwmIAQoAogBIgFBgICAgHhGDQEgBC0AjAEhBSAEQSBqIARBjQFqQSMQgQkaIAQoArABIAQoArQBEKgvDAQLIARBiAFqIgIgBRDZECAEKAKIAUEQRg0NIARBgAFqIARBoAFqKAIANgIAIARB+ABqIARBmAFqKQIANwMAIARB8ABqIARBkAFqKQIANwMAIAQgBCkCiAE3A2ggBEHAAWoiASAEQegAahDxFSABIARBsAFqEOMhIARBlAFqIARByAFqKQIANwIAIAQgBCkCwAE3AowBIARBCjYCiAEgBSACEP0hIAQoArABIAQoArQBELsvDBcLIARBiAFqIgIgBRDZECAEKAKIAUEQRg0NIARBgAFqIARBoAFqKAIANgIAIARB+ABqIARBmAFqKQIANwMAIARB8ABqIARBkAFqKQIANwMAIAQgBCkCiAE3A2ggBEHAAWoiASAEQegAahDyFSABIARBsAFqEOIhIARBlAFqIARByAFqKQIANwIAIAQgBCkCwAE3AowBIARBCTYCiAEgBSACEP0hIAQoArABIAQoArQBEKgvDBYLAkACQAJAAkACQAJAAkACQCADKAIAIgEtABQiA0ECRiADQQFxckUEQCAEQYgBaiILIAEQ2RAgBCgCiAFBEEYNFiAEQThqIg0iAyAEQaABaiIOIgUoAgA2AgAgBEEwaiIHIARBmAFqIgYpAgA3AwAgBEEoaiIIIARBkAFqIgopAgA3AwAgBCAEKQKIATcDICAEQbABaiIJIARBIGoiDBDxFSALIAEQ2RAgBCgCiAFBEEYNFyADIAUoAgA2AgAgByIDIAYiBSkCADcDACAIIAopAgA3AwAgBCAEKQKIATcDICAEQcABaiIGIAwQ8RUgCyABENkQIAQoAogBQRBGDRggDSAOKAIANgIAIAMgBSkCADcDACAIIAopAgA3AwAgBCAEKQKIATcDICAEQegAaiAMEPEVIAEtABBBAXEEQCAJEJkNIAYQmQ0LIAItACBBAWsOAgIDAQsgBEGIAWoiCyABENkQIAQoAogBQRBGDRggBEE4aiINIgMgBEGgAWoiDiIFKAIANgIA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ACABKQNAIRwgBCADQdgBakEkEIEJGiABIBw3A3ggAyAHNgKgASADQaABaiIMEI4OIAEoAnwhECAMIAFBABBaIAMoAqQBIQYgAygCoAEiDEEHRg0NIANBiAFqIg4gC0EYaikDADcDACADQYABaiIRIAtBEGopAwA3AwAgA0H4AGoiEyALQQhqKQMANwMAIAMgCykDADcDcCABKAJ8IQdBCEEoELkuIghFDQsgCSAHIAcgCUkbIQ8gCSAHIAcgCUsbIQcgCCAGNgIEIAggDDYCACAIIAMpA3A3AwggCEEQaiATKQMANwMAIAhBGGogESkDADcDACAIQSBqIA4pAwA3AwAgAygC8AIgAkYEQCADQfACahCAIQsgAygC9AIiDCACQShsaiIGQQA2AhggBiAJIBAgCSAQSxs2AhQgBiAJIBAgCSAQSRs2AhAgBiAPNgIMIAYgBzYCCCAGIAg2AgQgBkECNgIAQQELIAMgAkEBaiICNgL4AiAFEKETIggEQCAIKAIAQQxGDQILAkAgBRChEyIIBEAgCCgCAEEQRg0BCyADQagBaiAFEIkKIANBEGogBRC3HiADQdjp4AA2AqQBIANBNDoAoAEgAygCECADKAIUIANBoAFqEO8bIQYgBRChEyICRQ0NIAIoAgBBJEcNDSABKAIoIAFBJTYCKCABKAIsIQUgASkDQCEcIAQgA0HYAWpBJBCBCRogASAcNwN4QSRHDQYgASAFEMUQDA0LIAogBCkCADcCACABKAIoIQggAUElNgIoIApBCGogBEEIaikCADcCACAKQRBqIARBEGooAgA2AgAgASkDQCEcIAQgA0HYAWpBJBCBCRogASAcNwN4IAMgCDYCoAEgA0GgAWoiEhCODkUNASAFEKETIglFDQEgCSgCAEEMRw0BIAEoAnwhCSABKAJ4IQggA0E6OgCgASABIAggCSASEI8jDAELCyADQagBaiAFEIkKIANBCGogBRC3HiADQdjL3wA2AqQBIANBNDoAoAEgAygCCCADKAIMIANBoAFqEO8bIQYgBRChEyICRQ0KIAIoAgBBJEcNCiABKAIoIAFBJTYCKCABKAIsIQUgASkDQCEcIAQgA0HYAWpBJBCBCRogASAcNwN4QSRHDQIgASAFEMUQDAoLQQAhBCAFEKETIgVFDQogBSgCAEEXRw0KIAEoAighBSABQSU2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NwMAIAhBGGogA0HAAmopAwA3AgAgCEEQaiADQbgCaikDADcCACAIQQhqIA0pAwA3AgAgCCADKQOoAjcCAEEAIQcgA0EANgKgASAQIBRBJBCBCRogAyAENgLIAQwLCyAZIAUQiQogA0EoaiAFELceIANBDTYC0AIgA0GYkuAANgLMAiADQTA6AMgCIAMoAiggAygCLCADQcgCahDvGyECIAUQoRMiBUUNByAFKAIAQSRHDQcgASABKQNANwN4IAEoAiggAUElNgIoQSRHDQMgASABKAIsEMUQDAcLIAMgBzYCpAEgBg0HIAMpA7ACENAaDAoLIAEoAighBCABQSU2AiggASABKQNANwN4IANBrAFqIAJBCGopAgA3AgAgA0G0AWogAkEQaigCADYCACADIAIpAgA3AqQBIAMgBDYCoAEgA0GgAWoQjg4gDCABKAJ8IgQgBCAMSRshCyAMIAQgBCAMSxshCCADKAKcASIEQThsIQcgBEEBayEJIBxCIIinIQYgHKchDSADKAKYASEEIBFBAXEhDANAIAdFBEACQCABLQD4AkECRgRAIAEtAPsCQQFxDQELQQAhBCABLQCQA0EBcUUNBwtBACEEIAUQoRMiBUUNBiAFKAIAQRdHDQYgASgCKCEFIAFBJTYCKCABIAEpA0A3A3ggA0GsAWogAkEIaikCADcCACADQbQBaiACQRBqKAIANgIAIAMgAikCADcCpAEgAyAFNgKgASADQaABahCODkEBIQQMBgsgBCgCACEKAkACQCAJBEAgCkECRw0BIAQoAgwhCiAEKAIIIQ8gA0E7OgCgASABIA8gCiADQaABahCPIwwBCyAKQQJHDQAgBCgCBCgCAA0BIAxFDQAgA0E6OgCgASABIA0gBiADQaABahCPIwsgBEE4aiEEIAdBOGshByAJQQFrIQkMAQsLIAQoAgwhAiAEKAIIIANB7QA6AKABIAIgA0GgAWoQ7xshAiAFEKETIgVFDQMgBSgCAEEkRw0DIAEgASkDQDcDeCABKAIoIAFBJTYCKEEkRw0CIAEgASgCLBDFEAwDCyADIAc2AqQBIANByAJqEOUsIAMpA7ACENAaDAYLQYmE4QBBKEGokuAAENUhAAtBiYThAEEoQYiS4AAQ1SEACyAAQQc2AgAgACACNgIEIANBlAFqEOwtDBQLIAAgAykClAE3AgQgACAEOgAcIABBADYCGCAAIAs2AhQgACAINgIQIABBAzYCACAAQQxqIANBnAFqKAIANgIADBMLIAMgAjYCpAELIANBqAJqEJ0gCyADKAKkASEHDAELIAMoAqQBIQYgA0HYAWogG0EwEIEJGiADKAKUASAJRgRAIANBlAFqEIEhIAMoApgBIRILIBIgE2oiBCAHNgIAIARBBGogBjYCACAEQQhqIANB2AFqQTAQgQkaIAMgCUEBaiIJNgKcASAFEKETIgQEQCAEKAIAQQ5GDQMLIAUQoRMiBARAIAQoAgBBEEYNAgsgA0GoAWogBRCJCiADQRhqIAUQtx4gA0HY6eAANgKkASADQTQ6AKABIAMoAhggAygCHCADQaABahDvGyEHIAUQoRMiAkUNACACKAIAQSRHDQAgASABKQNANwN4IAEoAiggAUElNgIoQSRHDQUgASABKAIsEMUQCyAAQQc2AgAgACAHNgIEIANBlAFqEOwtDA4LIBAgAikCADcCACABKAIoIQQgAUElNgIoIAEgASkDQDcDeCAQQQhqIAJBCGopAgA3AgAgEEEQaiACQRBqKAIANgIAIAMgBDYCoAEgA0GgAWoQjg4gBRChEyIEDQELIBNBOGohEwwBCwtBASARIAQoAgBBDkYiBBshESABKQN4IBwgBBshHAwBCwtBiYThAEEoQaSU4AAQ1SEACyABKAIsIQEgAEEHNgIAIAAgATYCBAwHC0GJhOEAQShB5OzfABDVIQALQYmE4QBBKEHU7N8AENUhAAtBiYThAEEoQcTs3wAQ1SEAC0GJhOEAQShBpO3fABDVIQALIANBrAFqIAUQiQogAyAFELceIANBHDYCqAEgA0G07d8ANgKkASADQTA6AKABIAMoAgAgAygCBCADQaABahDvGyECAkAgBRChEyIFRQ0AIAUoAgBBJEcNACABIAEpA0A3A3ggASgCKCABQSU2AihBJEYEQCABIAEoAiwQxRAMAQtBiYThAEEoQdDt3wAQ1SEACyAAQQc2AgAgACACNgIEDAULIANBMGogASACEKcGIAACfyADLQBEQQJHBEAgA0G8AWogA0HIAGopAwA3AgAgA0G0AWogA0FAaykDADcCACADQawBaiADQThqKQMANwIAIAMgAykDMDcCpAEgAEEEaiADQaABakEkEIEJGkEADAELIAAgAygCMDYCBEEHCzYCAAwECwALIANB8ABqEOUsDAILIABBBzYCACAAIAY2AgQgA0HwAmoQ7S0MAQsgACADKQLwAjcCBCAAIAQ6ABwgAEEANgIYIABBATYCACAAQQxqIANB+AJqKAIANgIAIAAgDSABKAJ8IgEgASANSRs2AhQgACANIAEgASANSxs2AhALIANBsANqJAALwEsCEX8CfiMAQbABayIDJAAgAUHIAmohBSABQShqIQsCQAJAAkAgASgCyAIiAkElRwRAIAFBnANqIRAMAQsgASgC8AIhAiABQSU2AvACAkAgAkElRwRAIANBrAFqIAFBlANqKAIANgIAIANBpAFqIAFBjANqKQIANwIAIANBnAFqIAFBhANqKQIANwIAIANBlAFqIAFB/AJqKQIANwIAIAMgAjYCiAEgAyABKQL0AjcCjAEMAQsgA0GIAWogCxAyIAUoAgBBJUYNACAFEOgDCyAFIAMpA4gBNwMAIAVBIGogA0GoAWopAwA3AwAgBUEYaiADQaABaikDADcDACAFQRBqIANBmAFqKQMANwMAIAVBCGogA0GQAWopAwA3AwAgAUGcA2ohECABKALIAiICQSVHDQAgASgCnAMhDyABKALwAiECIAFBJTYC8AICQCACQSVHBEAgA0GsAWogAUGUA2ooAgA2AgAgA0GkAWogAUGMA2opAgA3AgAgA0GcAWogAUGEA2opAgA3AgAgA0GUAWogAUH8AmopAgA3AgAgAyACNgKIASADIAEpAvQCNwKMAQwBCyADQYgBaiALEDIgBSgCAEElRg0AIAUQ6AMLIAUgAykDiAE3AwAgBUEgaiADQagBaikDADcDACAFQRhqIANBoAFqKQMANwMAIAVBEGogA0GYAWopAwA3AwAgBUEIaiADQZABaikDADcDACAFKAIAIgJBJUcNASABKAKAAiEBIANBADoAiAEgASABIANBiAFqEO8bIQEgAEEEOgA0IAAgATYCAAwCCyABKALgAiEPCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAJBJEcEQCABQSU2AsgCIAEgASkD4AI3A5gDIANBnAFqIgQgAUHcAmooAgA2AgAgA0GUAWoiCiABQdQCaikCADcCACADIAI2AogBIAMgASkCzAI3AowBIAFBzAJqIQggA0GIAWoQ6AMCQAJAIAEoAsgCIgZBJUYEQCABKALwAiECIAFBJTYC8AICQCACQSVHBEAgA0GsAWogAUGUA2ooAgA2AgAgA0GkAWogAUGMA2opAgA3AgAgBCABQYQDaikCADcCACAKIAFB/AJqKQIANwIAIAMgAjYCiAEgAyABKQL0AjcCjAEMAQsgA0GIAWogCxAyIAUoAgBBJUYNACAFEOgDCyAFIAMpA4gBNwMAIAVBIGogA0GoAWopAwA3AwAgBUEYaiADQaABaikDADcDACAFQRBqIANBmAFqKQMANwMAIAVBCGogA0GQAWopAwA3AwAgBSgCACIGQSVGDQELIAZBCUYNAQsgA0GQAWogCxDdByADQZjN3wA2AowBIANBNDoAiAEgC0HwAkG4AiAFKAIAQSVGIgQbaigCACICIAtB9AJBvAIgBBtqKAIAIgQgAiAESRsgAiAEIAIgBEsbIANBiAFqEO8bIQQgBSgCACIGQSVGBEAgASgC8AIhAiABQSU2AvACAkAgAkElRwRAIANBrAFqIAFBlANqKAIANgIAIANBpAFqIAFBjANqKQIANwIAIANBnAFqIAFBhANqKQIANwIAIANBlAFqIAFB/AJqKQIANwIAIAMgAjYCiAEgAyABKQL0AjcCjAEMAQsgA0GIAWogCxAyIAUoAgBBJUYNACAFEOgDCyAFIAMpA4gBNwMAIAVBIGogA0GoAWopAwA3AwAgBUEYaiADQaABaikDADcDACAFQRBqIANBmAFqKQMANwMAIAVBCGogA0GQAWopAwA3AwAgBSgCACIGQSVGDQ8LIAZBJEYNAgwOCyABQSU2AsgCIAEgASkD4AI3A5gDIANBnAFqIgQgCEEQaigCADYCACADQZQBaiIKIAhBCGopAgA3AgAgA0EJNgKIASADIAgpAgA3AowBIANBiAFqEOgDAkAgASgCyAIiBkElRw0AIAEoAvACIQIgAUElNgLwAgJAIAJBJUcEQCADQawBaiABQZQDaigCADYCACADQaQBaiABQYwDaikCADcCACAEIAFBhANqKQIANwIAIAogAUH8AmopAgA3AgAgAyACNgKIASADIAEpAvQCNwKMAQwBCyADQYgBaiALEDIgBSgCAEElRg0AIAUQ6AMLIAUgAykDiAE3AwAgBUEgaiADQagBaikDADcDACAFQRhqIANBoAFqKQMANwMAIAVBEGogA0GYAWopAwA3AwAgBUEIaiADQZABaikDADcDACAFKAIAIgZBJUcNACABKAKAAiECIANBADoAiAEgAiACIANBiAFqEO8bIgJBCGoQiAMgAkEgQQgQohggASgCyAIhBgsgC0H0AkG8AiAGQSVGIgQbaigCACECIAtB8AJBuAIgBBtqKAIAIQQCQCAGQSVHDQAgASgC8AIhBiABQSU2AvACAkAgBkElRwRAIANBrAFqIAFBlANqKAIANgIAIANBpAFqIAFBjANqKQIANwIAIANBnAFqIAFBhANqKQIANwIAIANBlAFqIAFB/AJqKQIANwIAIAMgBjYCiAEgAyABKQL0AjcCjAEMAQsgA0GIAWogCxAyIAUoAgBBJUYNACAFEOgDCyAFIAMpA4gBNwMAIAVBIGogA0GoAWopAwA3AwAgBUEYaiADQaABaikDADcDACAFQRBqIANBmAFqKQMANwMAIAVBCGogA0GQAWopAwA3AwAgBSgCACIGQSVHDQAgASgCgAIhASADQQA6AIgBIAEgASADQYgBahDvGyEBIABBBDoANCAAIAE2AgAMDwsgBCACIAIgBEsbIQogBCACIAIgBEkbIQICQAJAAkACQAJAIAZBG2sOCgECAgICAgICAgACCyABQSU2AsgCIABBBDoANCABKALMAiECIAggAykCZDcCACABIAEpA+ACNwOYAyAAIAI2AgAgCEEIaiADQewAaikCADcCACAIQRBqIANB9ABqKQIANwIAIAhBGGogA0H8AGopAgA3AgAgCEEgaiADQYQBaigCADYCAAwSCyABQSU2AsgCIAEpA9ACIRMgCCADKQJkNwIAIAEgASkD4AI3A5gDIAEpA9gCIRQgCEEIaiADQewAaikCADcCACAIQRBqIANB9ABqKQIANwIAIAhBGGogA0H8AGopAgA3AgAgCEEgaiADQYQBaigCADYCACADIAo2AhggAyACNgIcIAMgFDcDICADIBM3AxAMAQsgAUElNgLIAiAIKQIAIRMgCCADKQJkNwIAIANBnAFqIAhBEGoiBCgCADYCACADQZQBaiAIQQhqIgwpAgA3AgAgDCADQewAaikCADcCACABKQPgAiEUIAQgA0H0AGopAgA3AgAgCEEYaiADQfwAaikCADcCACAIQSBqIANBhAFqKAIANgIAIAMgEzcCjAEgAyAGNgKIASABIBQ3A5gDIANBiAFqIgQQ6AMgA0GRAToAiAEgASAKIAIgBBDpIkEBQQAQiQ8hE0HozN8AQQIQiQ8hFCADIAI2AhwgAyAKNgIYIAMgFDcDICADIBM3AxAgASgCyAIiAkElRw0BCyABKALwAiECIAFBJTYC8AICQCACQSVHBEAgA0GsAWogAUGUA2ooAgA2AgAgA0GkAWogAUGMA2opAgA3AgAgA0GcAWogAUGEA2opAgA3AgAgA0GUAWogAUH8AmopAgA3AgAgAyACNgKIASADIAEpAvQCNwKMAQwBCyADQYgBaiALEDIgBSgCAEElRg0AIAUQ6AMLIAUgAykDiAE3AwAgBUEgaiADQagBaikDADcDACAFQRhqIANBoAFqKQMANwMAIAVBEGogA0GYAWopAwA3AwAgBUEIaiADQZABaikDADcDACAFKAIAIgJBJUYNBAtBACEGIAJBEEcNAiABQSU2AsgCIAgpAgAhEyAIIAMpAmQ3AgAgA0GcAWogCEEQaiICKAIANgIAIANBlAFqIAhBCGoiBCkCADcCACAEIANB7ABqKQIANwIAIAEpA+ACIRQgAiADQfQAaikCADcCACAIQRhqIANB/ABqKQIANwIAIAhBIGogA0GEAWooAgA2AgAgAyATNwKMASADQRA2AogBIAEgFDcDmAMgA0GIAWoQ6AMgAS0AoAJBAkcEQCABLQClAkEBcUUNAwsgBSgCACICQSVGBEAgASgC8AIhAiABQSU2AvACAkAgAkElRwRAIANBrAFqIAFBlANqKAIANgIAIANBpAFqIAFBjANqKQIANwIAIANBnAFqIAFBhANqKQIANwIAIANBlAFqIAFB/AJqKQIANwIAIAMgAjYCiAEgAyABKQL0AjcCjAEMAQsgA0GIAWogCxAyIAUoAgBBJUYNACAFEOgDCyAFIAMpA4gBNwMAIAVBIGogA0GoAWopAwA3AwAgBUEYaiADQaABaikDADcDACAFQRBqIANBmAFqKQMANwMAIAVBCGogA0GQAWopAwA3AwAgBSgCACICQSVGDQQLIAJBDUcNAiADQYgBaiEMIwBBwAFrIgIkACABQcgCaiEEIAFBKGohCgJAAkACQCABKALIAiIGQSVHDQAgASgC8AIhBiABQSU2AvACAkAgBkElRwRAIAJB/ABqIAFBlANqKAIANgIAIAJB9ABqIAFBjANqKQIANwIAIAJB7ABqIAFBhANqKQIANwIAIAJB5ABqIAFB/AJqKQIANwIAIAIgBjYCWCACIAEpAvQCNwJcDAELIAJB2ABqIAoQMiAEKAIAQSVGDQAgBBDoAwsgBCACKQNYNwMAIARBIGogAkH4AGopAwA3AwAgBEEYaiACQfAAaikDADcDACAEQRBqIAJB6ABqKQMANwMAIARBCGogAkHgAGopAwA3AwAgASgCyAIiBkElRw0AIAEoApwDIQkgASgC8AIhBiABQSU2AvACAkAgBkElRwRAIAJB/ABqIAFBlANqKAIANgIAIAJB9ABqIAFBjANqKQIANwIAIAJB7ABqIAFBhANqKQIANwIAIAJB5ABqIAFB/AJqKQIANwIAIAIgBjYCWCACIAEpAvQCNwJcDAELIAJB2ABqIAoQMiAEKAIAQSVGDQAgBBDoAwsgBCACKQNYNwMAIARBIGogAkH4AGopAwA3AwAgBEEYaiACQfAAaikDADcDACAEQRBqIAJB6ABqKQMANwMAIARBCGogAkHgAGopAwA3AwAgBCgCACIGQSVHDQEgASgCgAIhBCACQQA6AFggBCAEIAJB2ABqEO8bIQQgDEEANgIAIAwgBDYCBAwCCyABKALgAiEJCwJAAkACQAJAAkACQAJAAkAgBkEkRwRAIAFBJTYCyAIgASABKQPgAjcDmAMgAkHsAGoiDSABQdwCaigCADYCACACQeQAaiIOIAFB1AJqKQIANwIAIAIgBjYCWCACIAEpAswCNwJcIAFBzAJqIQYgAkHYAGoQ6AMCQAJAIAEoAsgCIgdBJUYEQCABKALwAiEHIAFBJTYC8AICQCAHQSVHBEAgAkH8AGogAUGUA2ooAgA2AgAgAkH0AGogAUGMA2opAgA3AgAgDSABQYQDaikCADcCACAOIAFB/AJqKQIANwIAIAIgBzYCWCACIAEpAvQCNwJcDAELIAJB2ABqIAoQMiAEKAIAQSVGDQAgBBDoAwsgBCACKQNYNwMAIARBIGogAkH4AGopAwA3AwAgBEEYaiACQfAAaikDADcDACAEQRBqIAJB6ABqKQMANwMAIARBCGogAkHgAGopAwA3AwAgBCgCACIHQSVGDQELIAdBAkcNACABLQDQAkECRw0AIAEtANECQRVGDQELIAJB4ABqIAoQ3QcgAkGo0d8ANgJcIAJBNDoAWCAKQfACQbgCIAQoAgBBJUYiBxtqKAIAIgkgCkH0AkG8AiAHG2ooAgAiByAHIAlLGyAJIAcgByAJSRsgAkHYAGoQ7xshByAEKAIAIglBJUYEQCABKALwAiEJIAFBJTYC8AICQCAJQSVHBEAgAkH8AGogAUGUA2ooAgA2AgAgAkH0AGogAUGMA2opAgA3AgAgAkHsAGogAUGEA2opAgA3AgAgAkHkAGogAUH8AmopAgA3AgAgAiAJNgJYIAIgASkC9AI3AlwMAQsgAkHYAGogChAyIAQoAgBBJUYNACAEEOgDCyAEIAIpA1g3AwAgBEEgaiACQfgAaikDADcDACAEQRhqIAJB8ABqKQMANwMAIARBEGogAkHoAGopAwA3AwAgBEEIaiACQeAAaikDADcDACAEKAIAIglBJUYNCgsgCUEkRg0DDAkLIAFBJTYCyAIgASABKQPgAjcDmAMgAkHsAGoiDSAGQRBqKAIANgIAIAJB5ABqIg4gBkEIaikCADcCACACQQI2AlggAiAGKQIANwJcIAJB2ABqEOgDAkACQCABKALIAiIHQSVGBEAgASgC8AIhByABQSU2AvACAkAgB0ElRwRAIAJB/ABqIAFBlANqKAIANgIAIAJB9ABqIAFBjANqKQIANwIAIA0gAUGEA2opAgA3AgAgDiABQfwCaikCADcCACACIAc2AlggAiABKQL0AjcCXAwBCyACQdgAaiAKEDIgBCgCAEElRg0AIAQQ6AMLIAQgAikDWDcDACAEQSBqIAJB+ABqKQMANwMAIARBGGogAkHwAGopAwA3AwAgBEEQaiACQegAaikDADcDACAEQQhqIAJB4ABqKQMANwMAIAQoAgAiB0ElRg0BCyAHQRNGDQELIAJB4ABqIAoQ3QcgAkGgx98ANgJcIAJBNDoAWCAKQfACQbgCIAQoAgBBJUYiBxtqKAIAIgkgCkH0AkG8AiAHG2ooAgAiByAHIAlLGyAJIAcgByAJSRsgAkHYAGoQ7xshByAEKAIAIglBJUYEQCABKALwAiEJIAFBJTYC8AICQCAJQSVHBEAgAkH8AGogAUGUA2ooAgA2AgAgAkH0AGogAUGMA2opAgA3AgAgAkHsAGogAUGEA2opAgA3AgAgAkHkAGogAUH8AmopAgA3AgAgAiAJNgJYIAIgASkC9AI3AlwMAQsgAkHYAGogChAyIAQoAgBBJUYNACAEEOgDCyAEIAIpA1g3AwAgBEEgaiACQfgAaikDADcDACAEQRhqIAJB8ABqKQMANwMAIARBEGogAkHoAGopAwA3AwAgBEEIaiACQeAAaikDADcDACAEKAIAIglBJUYNCQsgCUEkRg0CDAgLIAFBJTYCyAIgBikCACETIAYgAikCnAE3AgAgAkHsAGoiDiAGQRBqIgcoAgA2AgAgAkHkAGoiESAGQQhqIg0pAgA3AgAgDSACQaQBaikCADcCACABKQPgAiEUIAcgAkGsAWopAgA3AgAgBkEYaiACQbQBaikCADcCACAGQSBqIAJBvAFqKAIANgIAIAIgEzcCXCACQRM2AlggASAUNwOYAyACQdgAaiIHEOgDIAcgARAwIAIoAlwhDSACKAJYIgdBMkYNAyACQdAAaiACQZABaikDADcDACACQcgAaiACQYgBaikDADcDACACQUBrIAJBgAFqKQMANwMAIAJBOGogAkH4AGopAwA3AwAgAkEwaiACQfAAaikDADcDACACQShqIhIgAkHoAGopAwA3AwAgAiACKQNgNwMgIAdBDkcNBCACQRhqIBIpAwA3AgAgAiACKQMgNwIQIAIgDTYCDAJAAkACQAJAIAQoAgAiB0ElRgRAIAEoAvACIQcgAUElNgLwAgJAIAdBJUcEQCACQfwAaiABQZQDaigCADYCACACQfQAaiABQYwDaikCADcCACAOIAFBhANqKQIANwIAIBEgAUH8AmopAgA3AgAgAiAHNgJYIAIgASkC9AI3AlwMAQsgAkHYAGogChAyIAQoAgBBJUYNACAEEOgDCyAEIAIpA1g3AwAgBEEgaiACQfgAaikDADcDACAEQRhqIAJB8ABqKQMANwMAIARBEGogAkHoAGopAwA3AwAgBEEIaiACQeAAaikDADcDACAEKAIAIgdBJUYNAQsgB0EQRw0BIAFBJTYCyAIgBikCACETIAYgAikCnAE3AgAgAkHsAGogBkEQaiIHKAIANgIAIAJB5ABqIAZBCGoiDikCADcCACAOIAJBpAFqKQIANwIAIAEpA+ACIRQgByACQawBaikCADcCACAGQRhqIAJBtAFqKQIANwIAIAZBIGogAkG8AWooAgA2AgAgAiATNwJcIAJBEDYCWCABIBQ3A5gDIAJB2ABqEOgDIAEoAsgCIgdBJUcNAQsgASgC8AIhByABQSU2AvACAkAgB0ElRwRAIAJB/ABqIAFBlANqKAIANgIAIAJB9ABqIAFBjANqKQIANwIAIAJB7ABqIAFBhANqKQIANwIAIAJB5ABqIAFB/AJqKQIANwIAIAIgBzYCWCACIAEpAvQCNwJcDAELIAJB2ABqIAoQMiAEKAIAQSVGDQAgBBDoAwsgBCACKQNYNwMAIARBIGogAkH4AGopAwA3AwAgBEEYaiACQfAAaikDADcDACAEQRBqIAJB6ABqKQMANwMAIARBCGogAkHgAGopAwA3AwAgBCgCACIHQSVGDQELIAdBDkcNACABQSU2AsgCIAYpAgAhEyAGIAIpApwBNwIAIAJB7ABqIAZBEGoiBCgCADYCACACQeQAaiAGQQhqIgopAgA3AgAgCiACQaQBaikCADcCACABKQPgAiEUIAQgAkGsAWopAgA3AgAgBkEYaiACQbQBaikCADcCACAGQSBqIAJBvAFqKAIANgIAIAIgEzcCXCACQQ42AlggASAUNwOYAyACQdgAahDoA0Ggv+QALQAAGiABKAKcAyEEQRQQhAEiBkUNASAGIAIpAgw3AgAgDCAGNgIAIAZBEGogAkEcaigCADYCACAGQQhqIAJBFGopAgA3AgAgDCAJIAQgBCAJSRs2AgggDCAJIAQgBCAJSxs2AgQMCwsgAkHgAGogChDdByACQbDI3wA2AlwgAkE0OgBYIApB8AJBuAIgBCgCAEElRiIJG2ooAgAiBCAKQfQCQbwCIAkbaigCACIJIAQgCUkbIAQgCSAEIAlLGyACQdgAahDvGyEEIAoQvwoiCkUNByAKKAIAQSRHDQcgASgCyAIgAUElNgLIAiABKALMAiEJIAYgAikCnAE3AgAgASABKQPgAjcDmAMgBkEIaiACQaQBaikCADcCACAGQRBqIAJBrAFqKQIANwIAIAZBGGogAkG0AWopAgA3AgAgBkEgaiACQbwBaigCADYCAEEkRw0GIAEgCRDACAwHCwALIAFBJTYCyAIgDEEANgIAIAEgASkD4AI3A5gDIAwgASgCzAI2AgQMCAsgAUElNgLIAiABKALMAiEEIAYgAikCnAE3AgAgASABKQPgAjcDmAMgBkEIaiACQaQBaikCADcCACAGQRBqIAJBrAFqKQIANwIAIAZBGGogAkG0AWopAgA3AgAgBkEgaiACQbwBaigCADYCACABIAQQwAgMBQsgAUElNgLIAiABKALMAiEEIAYgAikCnAE3AgAgASABKQPgAjcDmAMgBkEIaiACQaQBaikCADcCACAGQRBqIAJBrAFqKQIANwIAIAZBGGogAkG0AWopAgA3AgAgBkEgaiACQbwBaigCADYCACABIAQQwAgMBQsgDEEANgIAIAwgDTYCBAwFC0GJhOEAQShBhNHfABDVIQALQYmE4QBBKEH00N8AENUhAAsgDEEANgIAIAwgBDYCBCACQQxqELMZIA0gAigCEBDAKgwCCyAMQQA2AgAgDCAHNgIEDAELIAxBADYCACAMIAc2AgQLIAJBwAFqJAAgAygCjAEhCiADKAKIASIGBEAgAygCkAEhDAwDCyAAQQQ6ADQgACAKNgIADAwLIAFBJTYCyAIgAEEEOgA0IAEgASkD4AI3A5gDIAAgASgCzAI2AgAMDQsgAUElNgLIAiABKALMAiECIAggAykCZDcCACABIAEpA+ACNwOYAyAIQQhqIANB7ABqKQIANwIAIAhBEGogA0H0AGopAgA3AgAgCEEYaiADQfwAaikCADcCACAIQSBqIANBhAFqKAIANgIAIAEgAhDACAwLCyAFKAIAIgJBJUcNAgwBC0EAIQYLIAEoAvACIQIgAUElNgLwAgJAIAJBJUcEQCADQawBaiABQZQDaigCADYCACADQaQBaiABQYwDaikCADcCACADQZwBaiABQYQDaikCADcCACADQZQBaiABQfwCaikCADcCACADIAI2AogBIAMgASkC9AI3AowBDAELIANBiAFqIAsQMiAFKAIAQSVGDQAgBRDoAwsgBSADKQOIATcDACAFQSBqIANBqAFqKQMANwMAIAVBGGogA0GgAWopAwA3AwAgBUEQaiADQZgBaikDADcDACAFQQhqIANBkAFqKQMANwMAIAUoAgAiAkElRg0BCyACQQpHDQAgAUElNgLIAiAIKQIAIRMgCCADKQJkNwIAIANBnAFqIgkgCEEQaiICKAIANgIAIANBlAFqIgcgCEEIaiIEKQIANwIAIAQgA0HsAGopAgA3AgAgASkD4AIhFCACIANB9ABqKQIANwIAIAhBGGogA0H8AGopAgA3AgAgCEEgaiADQYQBaigCADYCACADIBM3AowBIANBCjYCiAEgASAUNwOYAyADQYgBahDoAyABKALIAiIEQSVHDQEgASgC8AIhAiABQSU2AvACAkAgAkElRwRAIANBrAFqIAFBlANqKAIANgIAIANBpAFqIAFBjANqKQIANwIAIAkgAUGEA2opAgA3AgAgByABQfwCaikCADcCACADIAI2AogBIAMgASkC9AI3AowBDAELIANBiAFqIAsQMiAFKAIAQSVGDQAgBRDoAwsgBSADKQOIATcDACAFQSBqIANBqAFqKQMANwMAIAVBGGogA0GgAWopAwA3AwAgBUEQaiADQZgBaikDADcDACAFQQhqIANBkAFqKQMANwMAQSUhAiAFKAIAIgRBJUcNAQwCCyADQZABaiALEN0HIANB8MzfADYCjAEgA0E0OgCIASALQfACQbgCIAUoAgBBJUYiBBtqKAIAIgIgC0H0AkG8AiAEG2ooAgAiBCACIARJGyACIAQgAiAESxsgA0GIAWoQ7xshBAJAIAUoAgAiAkElRgRAIAEoAvACIQIgAUElNgLwAgJAIAJBJUcEQCADQawBaiABQZQDaigCADYCACADQaQBaiABQYwDaikCADcCACADQZwBaiABQYQDaikCADcCACADQZQBaiABQfwCaikCADcCACADIAI2AogBIAMgASkC9AI3AowBDAELIANBiAFqIAsQMiAFKAIAQSVGDQAgBRDoAwsgBSADKQOIATcDACAFQSBqIANBqAFqKQMANwMAIAVBGGogA0GgAWopAwA3AwAgBUEQaiADQZgBaikDADcDACAFQQhqIANBkAFqKQMANwMAIAUoAgAiAkElRg0BCyACQSRHDQAgAUElNgLIAiABKALMAiECIAggAykCZDcCACABIAEpA+ACNwOYAyAIQQhqIANB7ABqKQIANwIAIAhBEGogA0H0AGopAgA3AgAgCEEYaiADQfwAaikCADcCACAIQSBqIANBhAFqKAIANgIAIAEgAhDACAsgAEEEOgA0IAAgBDYCAAwECyAEIgJBBkcNACABQSU2AsgCIAgpAgAhEyAIIAMpAmQ3AgAgA0GcAWogCEEQaiICKAIANgIAIANBlAFqIgQgCEEIaiIJKQIANwIAIAkgA0HsAGopAgA3AgAgASkD4AIhFCACIANB9ABqKQIANwIAIAhBGGogA0H8AGopAgA3AgAgCEEgaiADQYQBaigCADYCACADIBM3AowBIANBBjYCiAEgASAUNwOYAyADQYgBaiICEOgDIAIgAUEAENkBIAMoAogBIQIgAy0AnAEiCUEDRg0CIANBNGogBCkCADcCACADQT9qIANBnwFqLQAAOgAAIAMgAykCjAE3AiwgAyADLwCdATsAPSADIAk6ADwgAyACNgIoIAUoAgAhAgwBCyADQQM6ADwLAkACQCACQSVGBEAgASgC8AIhAiABQSU2AvACAkAgAkElRwRAIANBrAFqIAFBlANqKAIANgIAIANBpAFqIAFBjANqKQIANwIAIANBnAFqIAFBhANqKQIANwIAIANBlAFqIAFB/AJqKQIANwIAIAMgAjYCiAEgAyABKQL0AjcCjAEMAQsgA0GIAWogCxAyIAUoAgBBJUYNACAFEOgDCyAFIAMpA4gBNwMAIAVBIGogA0GoAWopAwA3AwAgBUEYaiADQaABaikDADcDACAFQRBqIANBmAFqKQMANwMAIAVBCGogA0GQAWopAwA3AwBBACEEIAUoAgAiAkElRg0BC0EAIQQgAkEURw0AIAgtAABBBEcNACADQQA6AFQgAyABLQC2AjoAUyADIAEtAMYCOgBjIAMgASkBqgI3AEcgAyABKAGyAjYATyADIAEpA7gCNwBVIAMgASgCwAI2AF0gAyABLwHEAjsAYSADQYgBaiICIAEgA0HHAGoQvwggA0EIaiADKAKIARByIAMoAgwhBCADKAIIDQEgAhD1CgsgACADKQMQNwMIIAAgAykDKDcDICAAIAw2AkQgACAKNgJAIAAgBjYCPCAAIAQ2AjggAEEQaiADQRhqKQMANwMAIABBGGogA0EgaikDADcDACAAQShqIANBMGopAwA3AwAgAEEwaiADQThqKQMANwMAIAAgDyAQKAIAIgEgASAPSRs2AgQgACAPIAEgASAPSxs2AgAMBQsgAEEEOgA0IAAgBDYCACADQYgBahD1CiADLQA8QQNGDQEgA0EoahDbDgwBCyAAQQQ6ADQgACACNgIACyAGRQ0AIAYQsxkgBigCACAGQQRqKAIAEMAqIAZBFEEEEKIYCyADQRBqEL8QDAELIABBBDoANCAAIAQ2AgALIANBsAFqJAAL0zABJ38jAEHQB2siAiQAIAFBKGohByABQcgCaiEGAkACfwJAIAEtAKACQQJHDQAgB0H0AkG8AiABKALIAiIFQSVGIgMbaigCACEJIAdB8AJBuAIgAxtqKAIA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A0EBIQUgBxC/CiIERQ0LIAQoAgBBJEcNCyABIAEpA+ACNwOYAyABKALIAiABQSU2AsgCQSRHDQIgASABKALMAhDACAwLC0EAIQgCQAJAIANBAmsOCAEFBQUFBQUEAAsgA0EkRw0EIAFBJTYCyAIgASABKQPgAjcDmAMgASgCzAIhA0EBIQUMCwsgAS0A0AIhAwtBACEIAkBBBCADQQJrQf8BcSIDIANBBE8bDgUAAwMDAgMLIAEtANECQR1GDQEMAgtBiYThAEEoQdj03wAQ1SEACyABKALgAiEFQQEhCAsgASAFNgIEIAEgCDYCACABKALgAiEIIAJBIGogARDrBCACKAIkIQUgAigCIARAIAUhA0EBIQUMBwsCQAJAAkACQAJAAkAgBSgCAEEeRgRAIAUhBAwBCwJAIAYoAgAiA0ElRw0AIAEoAvACIQMgAUElNgLwAgJAIANBJUcEQCACQcwEaiABQZQDaigCADYCACACQcQEaiABQYwDaikCADcCACACQbwEaiABQYQDaikCADcCACACQbQEaiABQfwCaikCADcCACACIAM2AqgEIAIgASkC9AI3AqwEDAELIAJBqARqIAcQMiAGKAIAQSVGDQAgBhDoAwsgBiACKQOoBDcDACAGQSBqIAJByARqKQMANwMAIAZBGGogAkHABGopAwA3AwAgBkEQaiACQbgEaikDADcDACAGQQhqIAJBsARqKQMANwMAIAYoAgAiA0ElRw0AIAUhBAwBCyADQRdHBEAgBSEEDAELIAFBJTYCyAIgASABKQPgAjcDmAMgAkG8BGoiCSABQdwCaigCADYCACACQbQEaiIKIAFB1AJqKQIANwIAIAJBFzYCqAQgAiABKQLMAjcCrAQgAkGoBGoiBBDoAyACQQE6AGogAkGBAjsAcyACIAEoAaoCNgBkIAIgAS8BrgI7AGggAiABKQCxAjcAayACIAEpALsCNwB1IAIgASgAwwI2AH0gBCABIAJB5ABqEL8IIAJBGGogAigCqAQQjQMgAigCHCEDIAIoAhgNASACIAM2AswHIAQQ9QoCQAJAIAYoAgAiBEElRgRAIAEoAvACIQQgAUElNgLwAgJAIARBJUcEQCACQcwEaiABQZQDaigCADYCACACQcQEaiABQYwDaikCADcCACAJIAFBhANqKQIANwIAIAogAUH8AmopAgA3AgAgAiAENgKoBCACIAEpAvQCNwKsBAwBCyACQagEaiAHEDIgBigCAEElRg0AIAYQ6AMLIAYgAikDqAQ3AwAgBkEgaiACQcgEaikDADcDACAGQRhqIAJBwARqKQMANwMAIAZBEGogAkG4BGopAwA3AwAgBkEIaiACQbAEaikDADcDACAGKAIAIgRBJUYNAQsgBEETRg0BCyACQbAEaiAHEN0HIAJBoMffADYCrAQgAkE0OgCoBCAHQfACQbgCIAYoAgBBJUYiBBtqKAIAIgMgB0H0AkG8AiAEG2ooAgAiBCADIARJGyADIAQgAyAESxsgAkGoBGoQ7xshAyAHEL8KIgRFDQUgBCgCAEEkRw0FIAEgASkD4AI3A5gDIAEoAsgCIAFBJTYCyAJBJEcNBCABIAEoAswCEMAIDAULIAFBJTYCyAIgASABKQPgAjcDmAMgAkG8BGogAUHMAmoiBEEQaigCADYCACACQbQEaiAEQQhqKQIANwIAIAJBEzYCqAQgAiAEKQIANwKsBCACQagEaiIEEOgDIAJBATsAlwEgAiABLQC4AjoAlgEgAiABKQGqAjcAiAEgAiABKAGyAjYAkAEgAiABLwG2AjsAlAEgAiABKQC7AjcAmQEgAiABKADDAjYAoQEgBCABIAJBiAFqEL8IIAJBEGogAigCqAQQjQMgAigCFCEGIAIoAhAgBBD1CgRAIAYhAwwFCyACQQhqIAYQrARBoL/kAC0AABogAigCDCEHQcAAEIQBIgRFDQogBCAGNgIMIAQgAzYCCCAEIAU2AgQgBEEWNgIAIAQgCCAHIAcgCEkbNgIUIAQgCCAHIAcgCEsbNgIQCyAEKAIAIgNBHksNAUEAIQVBASADdEGAgJyCBHFFDQEgBCEDDAsLIAJBqARqEPUKDAMLIAIgASAIIAQQ1wIgAigCBCEDIAIoAgAhBQwJC0GJhOEAQShBkPHfABDVIQALIAJBzAdqEKksCyAFEJICIAVBwABBCBCiGEEBIQUMBgsgA0E+cUEORg0AIAEtAOgCDQACQCAHEL8KIgNFDQAgAygCAEEURw0AIAMtAARBBEYNAwsCQCAHEL8KIgNFDQAgAygCAEEURw0AIAMtAARBDUYNAwsCQCAHEL8KIgNFDQAgAygCAEEURw0AIAMtAARBDkYNAwsCQCAHEL8KIgNFDQAgAygCAEEVRw0AIAMtAARBBEYNAwsgBxC/CiIDRQ0BAn8CQAJ/QQAgAxCWCCIGQQVrQf8BcSIDQQFqQQAgA0EiSRsiA0EfSw0AGkEBIAN0QcCVwv55cQ0BIAZBgP4DcUEIdiEFIAMEQEEAIANBEkcNARogBUELa0H/AXFBAkkMAwtBASAGQf8BcQ0AGkEAIAVBIksNABpCgZCCnvMAIAWtiKcLQQFxDAELQQELDQILQQAhBUGgv+QALQAAGiABKAKcAyEBQcAAEIQBIgNFDQIgA0EAOgAQIANBADYCDCADQSA2AgAgAyAEIAEgASAESRs2AgggAyAEIAEgASAESxs2AgQMBAsgASgCgAIhAyACQQA6AKgEIAMgAyACQagEahDvGyIDQQhqEIgDIANBIEEIEKIYC0EAIQgCQCAHEL8KIgNFDQAgAygCAEEURw0AIAMtAARBDUcNACABKALIAiEFIAFBJTYCyAIgASABKQPgAjcDmAMgAkG0BGogAUHMAmoiA0EIaikCADcCACACQbwEaiADQRBqKAIANgIAIAIgAykCADcCrAQgAiAFNgKoBCACQagEahDoA0EBIQgLIAIgBCABKAKcAyIDIAMgBEkbNgKsBCACIAQgAyADIARLGzYCqAQgAkEoaiABEI0DIAIoAiwhBiACKAIoDQFBACEFQaC/5AAtAAAaIAEoApwDIQFBwAAQhAEiA0UNACADIAg6ABAgAyAGNgIMIANBIDYCACADIAQgASABIARJGzYCCCADIAQgASABIARLGzYCBAwCCwALAn8gAkGoBGohBCMAQSBrIgEkAEGgv+QALQAAGiAGKAIEIQUgBigCACEHQQQQhAEiAwRAIAMgBjYCACABIAM2AhQgAUEjNgIcIAFB6PTfADYCGCABQbgBOgAIIAEgBCkCADcCDCAHIAUgAUEIahDvGyABQSBqJAAMAQsACyEDQQEhBQsgACADNgIEIAAgBTYCACACQdAHaiQAC8UtAhF/An4jAEHAAmsiByQAIAFBKGohCwJAAkACQAJAAkACQCACQQFxRQRAIAFByAJqIQkgASgCyAIiCkElRw0CIAEoAvACIQMgAUElNgLwAgJAIANBJUcEQCAHQbwCaiABQZQDaigCADYCACAHQbQCaiABQYwDaikCADcCACAHQawCaiABQYQDaikCADcCACAHQaQCaiABQfwCaikCADcCACAHIAM2ApgCIAcgASkC9AI3ApwCDAELIAdBmAJqIAsQMiAJKAIAQSVGDQAgCRDoAwsgCSAHKQOYAjcDACAJQSBqIAdBuAJqKQMANwMAIAlBGGogB0GwAmopAwA3AwAgCUEQaiAHQagCaikDADcDACAJQQhqIAdBoAJqKQMANwMAIAkoAgAiCkElRw0CIAEoApwDIQMMAQsgAUHIAmohCSABKALIAiIKQSVHDQILIAEoAvACIQogAUElNgLwAgJAIApBJUcEQCAHQbwCaiABQZQDaigCADYCACAHQbQCaiABQYwDaikCADcCACAHQawCaiABQYQDaikCADcCACAHQaQCaiABQfwCaikCADcCACAHIAo2ApgCIAcgASkC9AI3ApwCDAELIAdBmAJqIAsQMiAJKAIAQSVGDQAgCRDoAwsgCSAHKQOYAjcDACAJQSBqIAdBuAJqKQMANwMAIAlBGGogB0GwAmopAwA3AwAgCUEQaiAHQagCaikDADcDACAJQQhqIAdBoAJqKQMANwMAIAkoAgAiCkElRw0BIAEoAoACIQEgB0EAOgCYAiABIAEgB0GYAmoQ7xshASAAQQM6ABQgACABNgIADAILIAEoAuACIQMLAkACQCAKQSRHBEAgAUElNgLIAiAHQdABaiIIIAFB3AJqIgwoAgA2AgAgB0HIAWoiDSABQdQCaiIOKQIANwMAIAEpAswCIRggASAHKQJUNwLMAiAOIAdB3ABqKQIANwIAIAEpA+ACIRkgDCAHQeQAaikCADcCACABQeQCaiAHQewAaikCADcCACABQewCaiAHQfQAaigCADYCACAHIBg3A8ABIAcgCjYCmAIgB0GsAmoiDCAIKAIANgIAIAdBpAJqIgggDSkDADcCACAHIAcpA8ABNwKcAiABIBk3A5gDIAdBmAJqEOgDAkAgASgCyAIiCkElRgRAIAEoAvACIQogAUElNgLwAgJAIApBJUcEQCAHQbwCaiABQZQDaigCADYCACAHQbQCaiABQYwDaikCADcCACAMIAFBhANqKQIANwIAIAggAUH8AmopAgA3AgAgByAKNgKYAiAHIAEpAvQCNwKcAgwBCyAHQZgCaiALEDIgCSgCAEElRg0AIAkQ6AMLIAkgBykDmAI3AwAgCUEgaiAHQbgCaikDADcDACAJQRhqIAdBsAJqKQMANwMAIAlB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IAQgBzYChAMgBCAJNgKAAyAEQeAAaiABQQAgBCAEQYADahC7BCAEKAJgIgZBCEYNBCAGQQFHDQIgBEGIA2oiBSAEKAKAASIDQQhqKAIANgIAIARBlANqIANBFGooAgA2AgAgBEGgA2oiByADQSBqKQIANwMAIARBqANqIgggA0EoaikCADcDACAEIAMpAgA3A4ADIAQgAykCDDcCjAMgBCADKQIYNwOYAyADKAI0IQkgAygCOCEKIAMtAEQhCyADLQBFIQwgAygCPCENIAMoAkAhDkGgv+QALQAAGkHIABCEASIBRQ0fIAEgBCkDgAM3AgAgASAMOgBFIAEgCzoARCABIA42AkAgASANNgI8IAEgCjYCOCABIAk2AjQgASACNgIwIAFBKGogCCkDADcCACABQSBqIAcpAwA3AgAgAUEYaiAEQZgDaikDADcCACABQRBqIARBkANqKQMANwIAIAFBCGogBSkDADcCACAEQfABaiAEQfgAaikDADcDACAEQegBaiAEQfAAaikDADcDACAEIAQpA2g3A+ABIANByABBBBCiGEEBDAMLIAEoAvACIQMgAUElNgLwAgJAIANBJUcEQCAEQaQDaiABQZQDaigCADYCACAEQZwDaiABQYwDaikCADcCACAEQZQDaiABQYQDaikCADcCACAEQYwDaiABQfwCaikCADcCACAEIAM2AoADIAQgASkC9AI3AoQDDAELIARBgANqIAYQMiAFKAIAQSVGDQAgBRDoAwsgBSAEKQOAAzcDACAFQSBqIARBoANqKQMANwMAIAVBGGogBEGYA2opAwA3AwAgBUEQaiAEQZADaikDADcDACAFQQhqIARBiANqKQMANwMAIAUoAgAiA0ElRg0ECyADQQJHDQQgAS0A0AJBAkcNBCABLQDRAkEZRw0EIAQgCDYCiAMgBCAHNgKEAyAEIAk2AoADIARBiAFqIAEgAiAEQYADakEAEMEEIAQoAogBIgZBCEYNCCAGDQYgBEGIA2oiBSAEKAKoASIDQQhqKAIANgIAIARBlANqIANBFGooAgA2AgAgBEGgA2oiByADQSBqKAIANgIAIAQgAykCADcDgAMgBCADKQIMNwKMAyAEIAMpAhg3A5gDIAMoAiwhCCADKAIoIQkgAygCMCEKIAMtADwhCyADKAI0IQwgAygCOCENQaC/5AAtAAAaQcAAEIQBIgFFDR0gASAEKQOAAzcCACABIAs6ADwgASANNgI4IAEgDDYCNCABIAo2AjAgASAINgIsIAEgCTYCKCABIAI2AiQgAUEgaiAHKAIANgIAIAFBGGogBEGYA2opAwA3AgAgAUEQaiAEQZADaikDADcCACABQQhqIAUpAwA3AgAgBEGQAmogBEGgAWopAwA3AwAgBEGIAmogBEGYAWopAwA3AwAgBCAEKQOQATcDgAIgA0HAAEEEEKIYQQEMBwsgBEHoAWogBEHwAGopAwA3AwAgBEHwAWogBEH4AGopAwA3AwAgBEHeAWogBEGHAWotAAA6AAAgBCAEKQNoNwPgASAEIAQvAIUBOwHcASAEKAKAASEBIAQoAmQhAiAELQCEAQshBSAAIAQpA+ABNwMIIAAgBToAJCAAIAE2AiAgACAELwHcATsAJSAAIAI2AgQgACAGNgIAIABBGGogBEHwAWopAwA3AwAgAEEQaiAEQegBaikDADcDACAAQSdqIARB3gFqLQAAOgAADB8LIAAgBCgCZDYCBCAAQQk2AgAMHgsgASgC8AIhAyABQSU2AvACAkAgA0ElRwRAIARBpANqIAFBlANqKAIANgIAIARBnANqIAFBjANqKQIANwIAIARBlANqIAFBhANqKQIANwIAIARBjANqIAFB/AJqKQIANwIAIAQgAzYCgAMgBCABKQL0AjcChAMMAQsgBEGAA2ogBhAyIAUoAgBBJUYNACAFEOgDCyAFIAQpA4ADNwMAIAVBIGogBEGgA2opAwA3AwAgBUEYaiAEQZgDaikDADcDACAFQRBqIARBkANqKQMANwMAIAVBCGogBEGIA2opAwA3AwAgBSgCACIDQSVGDQELAkAgA0ECRw0AIAEtANACQQJHDQAgAS0A0QJBE0cNACAGEPQPIgNFDQAgAygCAEECRw0AIAMtAAgNACADLQAJQQ1GDQULIAUoAgAiA0ElRw0HCyABKALwAiEDIAFBJTYC8AIgA0ElRg0EIARBpANqIAFBlANqKAIANgIAIARBnANqIAFBjANqKQIANwIAIARBlANqIAFBhANqKQIANwIAIARBjANqIAFB/AJqKQIANwIAIAQgAzYCgAMgBCABKQL0AjcChAMMBQsgBEGIAmogBEGYAWopAwA3AwAgBEGQAmogBEGgAWopAwA3AwAgBEH+AWogBEGvAWotAAA6AAAgBCAEKQOQATcDgAIgBCAELwCtATsB/AEgBCgCqAEhASAEKAKMASECIAQtAKwBCyEFIAAgBCkDgAI3AwggACAFOgAkIAAgATYCICAAIAQvAfwBOwAlIAAgAjYCBCAAIAY2AgAgAEEYaiAEQZACaikDADcDACAAQRBqIARBiAJqKQMANwMAIABBJ2ogBEH+AWotAAA6AAAMGQsgACAEKAKMATYCBCAAQQk2AgAMGAsgBhC/CiIDRQRAIAFBgAJqKAIAIQEgBEEAOgCAAyABIAEgBEGAA2oQ7xshASAAQQk2AgAgACABNgIEDBcLIAMoAgBBJEYEQCABIAEpA+ACNwOYAyABKALIAiABQSU2AsgCQSRHDQ8gASgCzAIhASAAQQk2AgAgACABNgIEDBcLIAEoAsgCIQMgAUElNgLIAiABIAEpA+ACNwOYAyAEQYwDaiABQdQCaikCADcCACAEQZQDaiABQdwCaigCADYCACAEIAEpAswCNwKEAyAEIAM2AoADIARBgANqEOgDIAYQvwoiA0UNFSADKAIAQSRGBEAgASABKQPgAjcDmAMgASgCyAIgAUElNgLIAkEkRw0QIAEoAswCIQEgAEEJNgIAIAAgATYCBAwXCyAGEL8KIgNFDRQgAygCAEEkRgRAIAEgASkD4AI3A5gDIAEoAsgCIAFBJTYCyAJBJEYNEUGJhOEAQShBtNDfABDVIQALIAEoAsgCIQUgAUElNgLIAiABIAEpA+ACNwOYAyAEQYwDaiABQcwCaiIDQQhqKQIANwIAIARBlANqIANBEGooAgA2AgAgBCADKQIANwKEAyAEIAU2AoADIARBgANqEOgDIARBEGogASACQQEQUSAEKAIUIQECQCAEKAIQRQRAIAEoAgAhAyAEQaACaiABQQxqKQIANwMAIARBqAJqIAFBFGooAgA2AgAgBCABKQIENwOYAiABLQAtIQYgASgCHCEKIAEpAiQhDyABKAIgIQUgAUEwQQgQohggBUGAgICAeEcNASADIQELIABBCTYCACAAIAE2AgQMFwtBoL/kAC0AABpBMBCEASIBRQ0TIAEgAzYCACABIAQpA5gCNwIEIAEgBjoALSABQQE6ACwgASAPNwIkIAEgBTYCICABIAo2AhwgASACNgIYIAAgATYCBCAAQQY2AgAgAUEMaiAEQaACaikDADcCACABQRRqIARBqAJqKAIANgIADBYLIARBgANqIAYQMiAFKAIAQSVGDQAgBRDoAwsgBSAEKQOAAzcDACAFQSBqIARBoANqKQMANwMAIAVBGGogBEGYA2opAwA3AwAgBUEQaiAEQZADaikDADcDACAFQQhqIARBiANqKQMANwMAIAUoAgAiA0ElRg0BCyADQQJHDQEgAS0A0AJBAkcNASABLQDRAkETRw0BDA8LIAEoAvACIQMgAUElNgLwAgJAIANBJUcEQCAEQaQDaiABQZQDaigCADYCACAEQZwDaiABQYwDaikCADcCACAEQZQDaiABQYQDaikCADcCACAEQYwDaiABQfwCaikCADcCACAEIAM2AoADIAQgASkC9AI3AoQDDAELIARBgANqIAYQMiAFKAIAQSVGDQAgBRDoAwsgBSAEKQOAAzcDACAFQSBqIARBoANqKQMANwMAIAVBGGogBEGYA2opAwA3AwAgBUEQaiAEQZADaikDADcDACAFQQhqIARBiANqKQMANwMAIAUoAgAiA0ElRg0BCyADQQJHDQEgAS0A0AJBAkcNASABLQDRAkERRg0NDAELIAEoAvACIQMgAUElNgLwAgJAIANBJUcEQCAEQaQDaiABQZQDaigCADYCACAEQZwDaiABQYwDaikCADcCACAEQZQDaiABQYQDaikCADcCACAEQYwDaiABQfwCaikCADcCACAEIAM2AoADIAQgASkC9AI3AoQDDAELIARBgANqIAYQMiAFKAIAQSVGDQAgBRDoAwsgBSAEKQOAAzcDACAFQSBqIARBoANqKQMANwMAIAVBGGogBEGYA2opAwA3AwAgBUEQaiAEQZADaikDADcDACAFQQhqIARBiANqKQMANwMAIAUoAgAiA0ElRg0BCyADQQJHDQEgAS0A0AJBAkcNASABLQDRAkESRg0LDAELIAEoAvACIQMgAUElNgLwAgJAIANBJUcEQCAEQaQDaiABQZQDaigCADYCACAEQZwDaiABQYwDaikCADcCACAEQZQDaiABQYQDaikCADcCACAEQYwDaiABQfwCaikCADcCACAEIAM2AoADIAQgASkC9AI3AoQDDAELIARBgANqIAYQMiAFKAIAQSVGDQAgBRDoAwsgBSAEKQOAAzcDACAFQSBqIARBoANqKQMANwMAIAVBGGogBEGY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aiEUDAELIAUoAvACIQAgBUElNgLwAgJAIABBJUcEQCADQfwBaiAFQZQDaigCADYCACADQfQBaiAFQYwDaikCADcCACADQewBaiAFQYQDaikCADcCACADQeQBaiAFQfwCaikCADcCACADIAA2AtgBIAMgBSkC9AI3AtwBDAELIANB2AFqIAwQMiAGKAIAQSVGDQAgBhDoAwsgBiADKQPYATcDACAGQSBqIANB+AFqKQMANwMAIAZBGGogA0HwAWopAwA3AwAgBkEQaiADQegBaikDADcDACAGQQhqIANB4AFqKQMANwMAIAVB4AJqIRggBUGcA2ohFCAFKALIAiIAQSVHDQAgBSgCnAMhFyAFKALwAiEAIAVBJTYC8AICQCAAQSVHBEAgA0H8AWogBUGUA2ooAgA2AgAgA0H0AWogBUGMA2opAgA3AgAgA0HsAWogBUGEA2opAgA3AgAgA0HkAWogBUH8AmopAgA3AgAgAyAANgLYASADIAUpAvQCNwLcAQwBCyADQdgBaiAMEDIgBigCAEElRg0AIAYQ6AMLIAYgAykD2AE3AwAgBkEgaiADQfgBaikDADcDACAGQRhqIANB8AFqKQMANwMAIAZBEGogA0HoAWopAwA3AwAgBkEIaiADQeABaikDADcDACAGKAIAIgBBJUcNASAFKAKAAiEAIANBADoA2AEgACAAIANB2AFqEO8bIQAgB0EHNgIAIAcgADYCBAwCCyAFKALgAiEXCyAAQSRHBEAgBUElNgLIAiAFIAUpA+ACNwOYAyADQewBaiAFQdwCaigCADYCACADQeQBaiIdIAVB1AJqKQIANwIAIAMgADYC2AEgAyAFKQLMAjcC3AEgA0HYAWoiABDoAyADQQA2AhQgA0KAgICAgAE3AgwgBUH0AmohCiAFQcwCaiELIABBBHIhCSADQYwBaiEeIANB4AFqIQ4gA0GAAWohGSAFKALIAiECQQghHwNAIBFBOGwhGgNAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAkElRgRAIAUoAvACIQAgBUElNgLwAgJAIABBJUcEQCAJIAopAgA3AgAgCUEgaiAKQSBqKAIANgIAIAlBGGogCkEYaikCADcCACAJQRBqIApBEGopAgA3AgAgCUEIaiAK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aikCADcCACADQewBaiAKQRBqKQIANwIAIANB5AFqIApBCGopAgA3AgAgAyAANgLYASADIAopAgA3AtwBDAELIANB2AFqIAwQMiAGKAIAQSVGDQAgBhDoAwsgBiADKQPYATcDACAGQSBqIANB+AFqKQMANwMAIAZBGGogA0HwAWopAwA3AwAgBkEQaiADQegBaikDADcDACAGQQhqIANB4AFqKQMANwMAIAYoAgAiEEElRg0CCyAQQRdHDQEgBUElNgLIAiAFIAUpA+ACNwOYAyADQewBaiALQRBqKAIANgIAIANB5AFqIAtBCGopAgA3AgAgA0EXNgLYASADIAspAgA3AtwBIANB2AFqEOgDQQEMAgsgACgCDCECIAAoAgggA0HtADoA2AEgAiADQdgBahDvGyEAAkAgDBC/CiICRQ0AIAIoAgBBJEcNACAFIAUpA+ACNwOYAyAFKALIAiAFQSU2AsgCQSRGBEAgBSAFKALMAhDACAwBC0GJhOEAQShBiJLgABDVIQALIAdBBzYCACAHIAA2AgQgA0EMahDAECAOIAEQxyoMDgtBAAshACAHIAMpAgw3AgQgByAAOgAcIAdBADYCGCAHIAI2AhQgByABNgIQIAdBAzYCACAHQQxqIANBFGooAgA2AgAMDAsgAykDiAEhJyADKQOAASElIAUoAvACIQEgBUElNgLwAgJAIAFBJUcEQCAJIAopAgA3AgAgCUEgaiAKQSBqKAIANgIAIAlBGGogCkEYaikCADcCACAJQRBqIApBEGopAgA3AgAgCUEIaiAKQQhqKQIANwIAIAMgATYC2AEMAQsgA0HYAWogDBAyIAYoAgBBJUYNACAGEOgDCyAGIAMpA9gBNwMAIBIgEykDADcDACAbICEpAwA3AwAgIiAjKQMANwMAICQgDikDADcDAEEAIQEgBigCACINQSVGDQELQQAhASANQRVHDQAgCy0AAA0AIAVBJTYCyAIgCSALKQIANwIAIAUgBSkD4AI3A5gDIAlBEGogC0EQaigCADYCACAJQQhqIAtBCGopAgA3AgAgA0EVNgLYASADQdgBaiICEOgDIANBAToAvgEgAyAFKAGqAjYAuAEgAyAFLwGuAjsAvAEgAyAFKQCxAjcAvwEgAyAFKQC5AjcAxwEgAyAFKADBAjYAzwEgAyAFLwDFAjsA0wEgAiAFIANBuAFqEL8IIAMgAygC2AEQjQMgAygCBCEBIAMoAgAgAhD1CkUNACAlQgODQgBSDQMgAyAlpyIANgLYASACENAGIAAgACgCACICQQFrNgIAIAJBAUYEQCAAIAAoAiAQjScLIAMoAngNAQwDCyAUKAIAIQggAyAnNwPAASADICU3A7gBIANB2AFqIANBuAFqEI4XIANBIGogHUEIaigCADYCACADIB0pAgA3AxggACAIIAAgCEkbIQIgACAIIAAgCEsbIQggAygC2AEhFiADKALcASEVIAMoAuABIRMgAygC8AEhDSADKAL0ASEQQQEhEgwBCyADQfgAahDuDAwBCyADQTBqIhsgA0EgaigCADYCACADIAMpAxg3AyggAygCDCARRgRAIANBDGoQ8QsgAygCECEfCyAaIB9qIgAgEjYCACAAQRhqIBM2AgAgAEEUaiAVNgIAIABBEGogFjYCACAAQQxqIAg2AgAgAEEIaiACNgIAIABBBGogDzYCACAAQRxqIAMpAyg3AgAgAEEkaiAbKAIANgIAIABBMGogATYCACAAQSxqIBA2AgAgAEEoaiANNgIAIAMgEUEBaiIRNgIUAkACQAJAIAYoAgAiAEElRgRAIAUoAvACIQAgBUElNgLwAgJAIABBJUcEQCAJIAopAgA3AgAgCUEgaiAKQSBqKAIANgIAIAlBGGogCkEYaikCADcCACAJQRBqIApBEGopAgA3AgAgCUEIaiAKQQhqKQIANwIAIAMgADYC2AEMAQsgA0HYAWogDBAyIAYoAgBBJUYNACAGEOgDCyAGIAMpA9gBNwMAIAZBIGoiAiADQfgBaiIIKQMANwMAIAZBGGoiDSADQfABaiIVKQMANwMAIAZBEGoiFiADQegBaiISKQMANwMAIAZBCGoiEyAOKQMANwMAIAYoAgAiAEElRg0BC0EOIQIgAEEORw0BDAULIAUoAvACIQAgBUElNgLwAgJAIABBJUcEQCAJIAopAgA3AgAgCUEgaiAKQSBqKAIANgIAIAlBGGogCkEYaikCADcCACAJQRBqIApBEGopAgA3AgAgCUEIaiAKQQhqKQIANwIAIAMgADYC2AEMAQsgA0HYAWogDBAyIAYoAgBBJUYNACAGEOgDCyAGIAMpA9gBNwMAIAIgCCkDADcDACANIBUpAwA3AwAgFiASKQMANwMAIBMgDikDADcDACAGKAIAIgBBJUYNAQsgAEEQRg0CCyADQeABaiAMEN0HIANB2OngADYC3AEgA0E0OgDYASAMQfACQbgCIAYoAgBBJUYiARtqKAIAIgAgDEH0AkG8AiABG2ooAgAiASAAIAFJGyAAIAEgACABSxsgA0HYAWoQ7xshASAGKAIAIgBBJUYEQCAFKALwAiEAIAVBJTYC8AICQCAAQSVHBEAgA0H8AWogCkEgaigCADYCACADQfQBaiAKQRhqKQIANwIAIANB7AFqIApBEGopAgA3AgAgA0HkAWogCkEIaikCADcCACADIAA2AtgBIAMgCikCADcC3AEMAQsgA0HYAWogDBAyIAYoAgBBJUYNACAGEOgDCyAGIAMpA9gBNwMAIAZBIGogA0H4AWopAwA3AwAgBkEYaiADQfABaikDADcDACAGQRBqIANB6AFqKQMANwMAIAZBCGogA0HgAWopAwA3AwAgBigCACIAQSVGDQELIABBJEcNACAFQSU2AsgCIAUoAswCIQAgCyADKQI0NwIAIAUgBSkD4AI3A5gDIAtBCGogA0E8aikCADcCACALQRBqIANBxABqKQIANwIAIAtBGGogA0HMAGopAgA3AgAgC0EgaiADQdQAaigCADYCACAFIAAQwAgLIAdBBzYCACAHIAE2AgQgA0EMahDAECADKAIMIAMoAhAQxyoMBgsgBUElNgLIAiAJIAspAgA3AgAgCyADKQI0NwIAIAlBEGoiAiALQRBqIgAoAgA2AgAgCUEIaiIIIAtBCGoiDSkCADcCACANIANBPGopAgA3AgAgBSkD4AIhJSAAIANBxABqKQIANwIAIAtBGGogA0HMAGopAgA3AgAgC0EgaiADQdQAaigCADYCACADQRA2AtgBIAUgJTcDmAMgA0HYAWoQ6AMgBSgCyAIiAEElRgRAIAUoAvACIQAgBUElNgLwAgJAIABBJUcEQCAJIAopAgA3AgAgCUEgaiAKQSBqKAIANgIAIAlBGGogCkEYaikCADcCACACIApBEGopAgA3AgAgCCAKQQhqKQIANwIAIAMgADYC2AEMAQsgA0HYAWogDBAyIAYoAgBBJUYNACAGEOgDCyAGIAMpA9gBNwMAIAZBIGogA0H4AWopAwA3AwAgBkEYaiADQfABaikDADcDACAGQRBqIANB6AFqKQMANwMAIAZBCGog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NwIAIARBDzYCoAMgBCABKQLMAjcCpAMgBEGgA2oQ6AMMMwsgBEEgaiABENoCIAQoAiQhAyAEKAIgDQcgBigCACICQSVGBEAgASgC8AIhBSABQSU2AvACAkAgBUElRwRAIARBxANqIAFBlANqKAIANgIAIARBvANqIAFBjANqKQIANwIAIARBtANqIAFBhANqKQIANwIAIARBrANqIAFB/AJqKQIANwIAIAQgBTYCoAMgBCABKQL0AjcCpAMMAQsgBEGgA2ogDRAyIAYoAgBBJUYNACAGEOgDCyAGIAQpA6ADNwMAIAZBIGogBEHAA2opAwA3AwAgBkEYaiAEQbgDaikDADcDACAGQRBqIARBsANqKQMANwMAIAZBCGogBEGoA2opAwA3AwAgBigCACICQSVGDTILIAJBD0cNMSABQSU2AsgCIAEgASkD4AI3A5gDIARBtANqIAFB3AJqKAIANgIAIARBrANqIAFB1AJqKQIANwIAIARBDzYCoAMgBCABKQLMAjcCpAMgBEGgA2oQ6AMMMQsgBEGgA2ogDRAyIAYoAgBBJUYNACAGEOgDCyAGIAQpA6ADNwMAIAZBIGogBEHAA2opAwA3AwAgBkEYaiAEQbgDaikDADcDACAGQRBqIARBsANqKQMANwMAIAZBCGogBEGoA2opAwA3AwAgBigCACIJQSVGDQELIAlBAkcNACABLQDQAkECRw0AIAEtANECQRxHDQAgAUGqAmohAiABQSU2AsgCIAEgASkD4AI3A5gDIARBtANqIgwgAUHcAmooAgA2AgAgBEGsA2oiByABQdQCaikCADcCACAEQQI2AqADIAQgASkCzAI3AqQDIAFBzAJqIQ4gBEGgA2oQ6AMgASgCyAIiCUElRw0GIAEoAvACIQUgAUElNgLwAgJAIAVBJUcEQCAEQcQDaiABQZQDaigCADYCACAEQbwDaiABQYwDaikCADcCACAMIAFBhANqKQIANwIAIAcgAUH8AmopAgA3AgAgBCAFNgKgAyAEIAEpAvQCNwKkAwwBCyAEQaADaiANEDIgBigCAEElRg0AIAYQ6AMLIAYgBCkDoAM3AwAgBkEgaiAEQcADaikDADcDACAGQRhqIARBuANqKQMANwMAIAZBEGogBEGwA2opAwA3AwAgBkEIaiAEQagDaikDADcDACABKALIAiIJQSVHDQYg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KAIAIglBJUYNACABKALgAiECDAELIAEoAvACIQUgAUElNgLwAgJAIAVBJUcEQCAEQcQDaiABQZQDaigCADYCACAEQbwDaiABQYwDaikCADcCACAEQbQDaiABQYQDaikCADcCACAEQawDaiABQfwCaikCADcCACAEIAU2AqADIAQgASkC9AI3AqQDDAELIARBoANqIA0QMiAGKAIAQSVGDQAgBhDoAwsgBiAEKQOgAzcDACAGQSBqIARBwANqKQMANwMAIAZBGGogBEG4A2opAwA3AwAgBkEQaiAEQbADaikDADcDACAGQQhqIARBqANqKQMANwMAIAEoAsgCIglBJUcEQCABKALgAiECDAELIAEoApwDIQIgASgC8AIhBSABQSU2AvACAkAgBUElRwRAIARBxANqIAFBlANqKAIANgIAIARBvANqIAFBjANqKQIANwIAIARBtANqIAFBhANqKQIANwIAIARBrANqIAFB/AJqKQIANwIAIAQgBTYCoAMgBCABKQL0AjcCpAMMAQsgBEGgA2ogDRAyIAYoAgBBJUYNACAGEOgDCyAGIAQpA6ADNwMAIAZBIGogBEHAA2opAwA3AwAgBkEYaiAEQbgDaikDADcDACAGQRBqIARBsANqKQMANwMAIAZBCGogBEGoA2opAwA3AwAgBigCACIJQSVGDQELIAlBFEcNASAOLQAAQQ1HDQEgAUElNgLIAiABIAEpA+ACNwOYAyAOQRBqKAIAIQMgBEEUNgKgAyAEQbQDaiIFIAM2AgAgBEGsA2oiCCAOQQhqKQIANwIAIAQgDikCADcCpAMgBEGgA2oQ6AMgASgCyAIiCUElRgRAIAEoAvACIQMgAUElNgLwAgJAIANBJUcEQCAEQcQDaiABQZQDaigCADYCACAEQbwDaiABQYwDaikCADcCACAFIAFBhANqKQIANwIAIAggAUH8AmopAgA3AgAgBCADNgKgAyAEIAEpAvQCNwKkAwwBCyAEQaADaiANEDIgBigCAEElRg0AIAYQ6AMLIAYgBCkDoAM3AwAgBkEgaiAEQcADaikDADcDACAGQRhqIARBuANqKQMANwMAIAZBEGogBEGwA2opAwA3AwAgBkEIaiAEQagDaikDADcDACAGKAIAIglBJUYNBwsgCUECRw0GIAEtANACIgNBAUsgA0EBcXINBiABLQDRAkEBRw0GIAFBJTYCyAIgASABKQPgAjcDmAMgBEG0A2ogDkEQaigCADYCACAEQawDaiIDIA5BCGopAgA3AgAgBCAOKQIANwKkAyAEQQI2AqADIARBoANqIgUQ6AMgBSABENwLIAQoAqADIQggBC0AtAMiFkECRg0FIARBoAJqIAMpAgA3AwAgBEGWAmogBEG3A2otAAA6AAAgBCAEKQKkAzcDmAIgBCAELwC1AzsBlAIgAiABKAKcAyIFIAIgBUsbIRQgBCgCPCIJIAQoAjRGBEAgBEE0ahDzCwsgBCgCOCAJQcgAbGoiAyAINgIQIAMgFDYCDCADIAIgBSACIAVJGzYCCCADQgQ3AwAgAyAEKQOYAjcCFCADIBY6ACQgAyAELwGUAjsAJSADQRxqIARBoAJqKQMANwIAIANBJ2ogBEGWAmotAAA6AAAgBCAJQQFqNgI8DAILIAEoAvACIQUgAUElNgLwAgJAIAVBJUcEQCAEQcQDaiABQZQDaigCADYCACAEQbwDaiABQYwDaikCADcCACAEQbQDaiABQYQDaikCADcCACAEQawDaiABQfwCaikCADcCACAEIAU2AqADIAQgASkC9AI3AqQDDAELIARBoANqIA0QMiAGKAIAQSVGDQAgBhDoAwsgBiAEKQOgAzcDACAGQSBqIARBwANqKQMANwMAIAZBGGogBEG4A2opAwA3AwAgBkEQaiAEQbADaikDADcDACAGQQhqIARBqANqKQMANwMAIAYoAgAiCUElRg0CCyAJQQ1HDQAgAUElNgLIAiABIAEpA+ACNwOYAyAEQbQDaiAOQRBqIigoAgA2AgAgBEGsA2ogDkEIaiIdKQIANwIAIARBDTYCoAMgBCAOKQIANwKkAyABQfQCaiETIARBoANqIgUQ6AMgBUEEciESIARBjQZqISQgBEG1A2ohISAEQfgFakEEciErIARB1QVqISwgBEHABWpBBHIhLSAEQZ0FaiEuIARBiAVqQQRyITAgBEHVBGohMSAEQcAEakEEciEyIARB/QJqITMgBEHoAmpBBHIhNCAEQawCaiE1AkADQAJAAkACfgJAAkACQAJAAkACQAJAAkACQAJAIAYoAgAiCUElRgRAIAEoAvACIQUgAUElNgLwAgJAIAVBJUcEQCASIBMpAgA3AgAgEkEgaiATQSBqKAIANgIAIBJBGGogE0EYaikCADcCACASQRBqIBNBEGopAgA3AgAgEkEIaiATQQhqKQIANwIAIAQgBTYCoAMMAQsgBEGgA2ogDRAyIAYoAgBBJUYNACAGEOgDCyAGIAQpA6ADNwMAIAZBIGogBEHAA2opAwA3AwAgBkEYaiAEQbgDaikDADcDACAGQRBqIARBsANqKQMANwMAIAZBCGogBEGoA2opAwA3AwAgBigCACIJQSVGDQELIAlBDkYNDiABKALgAiEVIARBoANqIAEQ3gMgBCgCqAMhCSAEKQOgAyJbQgJRDQEgBCkDuAMhWiAEKAK0AyECIAQoArADIQcgBCgCrAMhCgJAAkACQAJAIFtQBEAgBCBaNwO4BCAEIAI2ArQEIAQgBzYCsAQgBCAKNgKsBCAEIAk2AqgEQQAhBSABLQCgAkECRw0KIARBqARqQdOd4ABBBBDMJEUNCiAGKAIAIgdBJUYNAQwJCyAGKAIAIgNBJUYEQCABKALwAiEDIAFBJTYC8AICQCADQSVHBEAgEiATKQIANwIAIBJBIGogE0EgaigCADYCACASQRhqIBNBGGopAgA3AgAgEkEQaiATQRBqKQIANwIAIBJBCGogE0EIaikCADcCACAEIAM2AqADDAELIARBoANqIA0QMiAGKAIAQSVGDQAgBhDoAwsgBiAEKQOgAzcDACAGQSBqIARBwANqKQMANwMAIAZBGGogBEG4A2opAwA3AwAgBkEQaiAEQbADaikDADcDACAGQQhqIARBqANqKQMANwMAIAYoAgAiA0ElRg0CCyADQQJHDQEgAS0A0AIiA0EBSyADQQFxcg0BIAEtANECQQFHDQEgAUElNgLIAiASIA4pAgA3AgAgASABKQPgAjcDmAMgEkEQaiAoKAIANgIAIBJBCGoiBSAdKQIANwIAIARBAjYCoAMgBEGgA2oiAxDoAyADIAFBABDOAyAEKAKgAyEDIAQtALQDIghBAkYNAiA0IBIpAgA3AgAgMyAhKQAANwAAIDRBCGogBSkCADcCACAzQQdqICFBB2ooAAA2AAAgBCAIOgD8AiAEIAM2AugCIARBmAZqIARB6AJqEO4bIARBuAJqIARBoAZqKQMANwMAIARBwAJqIARBqAZqKQMANwMAIAQgBCkDmAY3A7ACIBUgBCgCpAYiAyADIBVJGyEiIBUgAyADIBVLGyEZQQAhBUIBIVsgWiFZIAIhFCAHIRYgCiEgIAkhAwwQCyABKALwAiEFIAFBJTYC8AICQCAFQSVHBEAgEiATKQIANwIAIBJBIGogE0EgaigCADYCACASQRhqIBNBGGopAgA3AgAgEkEQaiATQRBqKQIANwIAIBJBCGogE0EIaikCADcCACAEIAU2AqADDAELIARBoANqIA0QMiAGKAIAQSVGDQAgBhDoAwsgBiAEKQOgAzcDACAGQSBqIARBwANqKQMANwMAIAZBGGogBEG4A2opAwA3AwAgBkEQaiAEQbADaikDADcDACAGQQhqIARBqANqKQMANwMAQQAhBSAGKAIAIgdBJUcNBwwJCyAEIAo2AqwDIAQgCTYCqAMgBEHvADoAoAMgByACIARBoANqEO8bIQMgBigCACIJQSVGBEAgASgC8AIhBSABQSU2AvACAkAgBUElRwRAIARBxANqIBNBIGooAgA2AgAgBEG8A2ogE0EYaikCADcCACAEQbQDaiATQRBqKQIANwIAIARBrANqIBNBCGopAgA3AgAgBCAFNgKgAyAEIBMpAgA3AqQDDAELIARBoANqIA0QMiAGKAIAQSVGDQAgBhDoAwsgBiAEKQOgAzcDACAGQSBqIARBwANqKQMANwMAIAZBGGogBEG4A2opAwA3AwAgBkEQaiAEQbADaikDADcDACAGQQhqIARBqANqKQMANwMAIAYoAgAiCUElRg0CCyAJQSRHDQEgAUElNgLIAiABIAEpA+ACNwOYAyABIAEoAswCEMAIDAELIAlBA3ENACAEIAk2AqADIARBoANqENAGIAkgCSgCACIFQQFrNgIAIAVBAUcNACAJIAkoAiAQjScLIFpQIFpCA4NCAFJyDQsgBCBapyIFNgKgAyAEQaADahDQBiAFIAUoAgAiCEEBazYCACAIQQFHDQsgBSAFKAIgEI0nDAsLIAEoAoACIQMgBEEAOgCgAyADIAMgBEGgA2oQ7xsiA0EIahCIAyADQSBBCBCiGAJAIAEoAsgCIglBJUYEQCABKALwAiEDIAFBJTYC8AICQCADQSVHBEAgBEHEA2ogE0EgaigCADYCACAEQbwDaiATQRhqKQIANwIAIARBtANqIBNBEGopAgA3AgAgBEGsA2ogE0EIaikCADcCACAEIAM2AqADIAQgEykCADcCpAMMAQsgBEGgA2ogDRAyIAYoAgBB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IBNBCGopAgA3AgAgBCAINgKgAwwBCyAEQaADaiANEDIgBigCAEElRg0AIAYQ6AMLIAYgBCkDoAM3AwAgBkEgaiICIARBwANqIgcpAwA3AwAgBkEYaiIKIARBuANqIhUpAwA3AwAgBkEQaiI2IARBsANqIiYpAwA3AwAgBkEIaiIpIARBqANqIiopAwA3AwAgBigCACIJQSVGDQELIAlBDkcNAQwECyABKALwAiEIIAFBJTYC8AICQCAIQSVHBEAgEiATKQIANwIAIBJBIGogE0EgaigCADYCACASQRhqIBNBGGopAgA3AgAgEkEQaiATQRBqKQIANwIAIBJBCGogE0EIaikCADcCACAEIAg2AqADDAELIARBoANqIA0QMiAGKAIAQSVGDQAgBhDoAwsgBiAEKQOgAzcDACACIAcpAwA3AwAgCiAVKQMANwMAIDYgJikDADcDACApICopAwA3AwAgBigCACIJQSVGDQELIAlBEEcNACABQSU2AsgCIBIgDikCADcCACABIAEpA+ACNwOYAyASQQhqIB0pAgA3AgAgBEEQNgKgAyASQRBqICgoAgA2AgAgBEGgA2oQ6AMgBSEIDAELCyAEQagDaiANEN0HIARB2OngADYCpAMgBEE0OgCgAyANQfACQbgCIAYoAgBBJUYiBRtqKAIAIgMgDUH0AkG8AiAFG2ooAgAiBSADIAVJGyADIAUgAyAFSxsgBEGgA2oQ7xshAyANEL8KIgVFDRQgBSgCAEEkRw0UIAEgASkD4AI3A5gDIAEoAsgCIAFBJTYCyAJBJEcNAyABIAEoAswCEMAIDBQLIAFBJTYCyAIgASABKQPgAjcDmAMgBEG0A2ogDkEQaigCADYCACAEQawDaiAOQQhqKQIANwIAIARBDjYCoAMgBCAOKQIANwKkAyAEQaADahDoAwsgBigCACIJQSVHDQQLIAEoAvACIQMgAUElNgLwAgJAIANBJUcEQCAEQcQDaiABQZQDaigCADYCACAEQbwDaiABQYwDaikCADcCACAEQbQDaiABQYQDaikCADcCACAEQawDaiABQfwCaikCADcCACAEIAM2AqADIAQgASkC9AI3AqQDDAELIARBoANqIA0QMiAGKAIAQSVGDQAgBhDoAwsgBiAEKQOgAzcDACAGQSBqIARBwANqKQMANwMAIAZBGGogBEG4A2opAwA3AwAgBkEQaiAEQbADaikDADcDACAGQQhqIARBqANqKQMANwMAIAYoAgAiCUElRw0DDAQLQYmE4QBBKEHog+AAENUhAAsgEEEKNgIAIBAgCDYCBAwQCyAEQagDaiANEN0HIARB0IHgADYCpAMgBEE0OgCgAyANQfACQbgCIAYoAgBBJUYiBRtqKAIAIgMgDUH0AkG8AiAFG2ooAgAiBSADIAVJGyADIAUgAyAFSxsgBEGgA2oQ7xshAwJAIA0QvwoiBUUNACAFKAIAQSRHDQAgASABKQPgAjcDmAMgASgCyAIgAUElNgLIAkEkRgRAIAEgASgCzAIQwAgMAQtBiYThAEEoQYiE4AAQ1SEACyAQQQo2AgAgECADNgIEDA8LIAlBAkcNACABLQDQAiIDQQFLIANBAXFyDQAgAS0A0QJBA0cNACABQSU2AsgCIAEgASkD4AI3A5gDIARBtANqIA5BEGooAgA2AgAgBEGsA2ogDkEIaikCADcCACAEQQI2AqADIAQgDikCADcCpAMgBEGgA2oQ6AMgASgCyAIiAkElRg0BDAYLIARBqANqIA0Q3QcgBEH4geAANgKkAyAEQTQ6AKADIA1B8AJBuAIgBigCAEElRiIFG2ooAgAiAyANQfQCQbwCIAUbaigCACIFIAMgBUkbIAMgBSADIAVLGyAEQaADahDvGyEFIAYoAgAiCUElRw0DIAEoAvACIQMgAUElNgLwAiADQSVGDQEgBEHEA2ogAUGUA2ooAgA2AgAgBEG8A2ogAUGMA2opAgA3AgAgBEG0A2ogAUGEA2opAgA3AgAgBEGsA2ogAUH8AmopAgA3AgAgBCADNgKgAyAEIAEpAvQCNwKkAwwCCyABKALwAiEDIAFBJTYC8AICQCADQSVHBEAgBEHEA2ogAUGUA2ooAgA2AgAgBEG8A2ogAUGMA2opAgA3AgAgBEG0A2ogAUGEA2opAgA3AgAgBEGsA2ogAUH8AmopAgA3AgAgBCADNgKgAyAEIAEpAvQCNwKkAwwBCyAEQaADaiANEDIgBigCAEElRg0AIAYQ6AMLIAYgBCkDoAM3AwAgBkEgaiAEQcADaikDADcDACAGQRhqIARBuANqKQMANwMAIAZBEGogBEGwA2opAwA3AwAgBkEIaiAEQagDaikDADcDACABKALIAiICQSVHDQQgASgCnAMhCSABKALwAiEDIAFBJTYC8AICQCADQSVHBEAgBEHEA2ogAUGUA2ooAgA2AgAgBEG8A2ogAUGMA2opAgA3AgAgBEG0A2ogAUGEA2opAgA3AgAgBEGsA2ogAUH8AmopAgA3AgAgBCADNgKgAyAEIAEpAvQCNwKkAwwBCyAEQaADaiANEDIgBigCAEElRg0AIAYQ6AMLIAYgBCkDoAM3AwAgBkEgaiAEQcADaikDADcDACAGQRhqIARBuANqKQMANwMAIAZBEGogBEGwA2opAwA3AwAgBkEIaiAEQagDaikDADcDACAGKAIAIgJBJUcNBSABKAKAAiEDIARBADoAoAMgAyADIARBoANqEO8bIQMgEEEKNgIAIBAgAzYCBAwMCyAEQaADaiANEDIgBigCAEElRg0AIAYQ6AMLIAYgBCkDoAM3AwAgBkEgaiAEQcADaikDADcDACAGQRhqIARBuANqKQMANwMAIAZBEGogBEGwA2opAwA3AwAgBkEIaiAEQagDaikDADcDACAGKAIAIglBJUYNAQsgCUEkRw0AIAFBJTYCyAIgASABKQPgAjcDmAMgASABKALMAhDACAsgEEEKNgIAIBAgBTYCBAwICyABKALgAiEJCwJAAkACQAJAAkACQAJAIAJBG2sOCgECAgICAgICAgACCyABQSU2AsgCIBBBCjYCACABIAEpA+ACNwOYAyAQIAEoAswCNgIEDAwLIAFBJTYCyAIgASkD0AIhWSAOIAQpAoQENwIAIAEgASgC5AIiBTYCnAMgASABKALgAjYCmAMgASkD2AIhWiAOQQhqIARBjARqKQIANwIAIA5BEGogBEGUBGopAgA3AgAgDkEYaiAEQZwEaikCADcCACAOQSBqIARBpARqKAIANgIAQaC/5AAtAAAaQRgQhAEiA0UNBSADIFo3AxAgAyBZNwMAIAMgCSAFIAUgCUkbNgIMIAMgCSAFIAUgCUsbNgIIAkAgBigCAEElRw0AIAEoAvACIQUgAUElNgLwAgJAIAVBJUcEQCAEQcQDaiABQZQDaigCADYCACAEQbwDaiABQYwDaikCADcCACAEQbQDaiABQYQDaikCADcCACAEQawDaiABQfwCaikCADcCACAEIAU2AqADIAQgASkC9AI3AqQDDAELIARBoANqIA0QMiAGKAIAQSVGDQAgBhDoAwsgBiAEKQOgAzcDACAGQSBqIARBwANqKQMANwMAIAZBGGogBEG4A2opAwA3AwAgBkEQaiAEQbADaikDADcDACAGQQhqIARBqANqKQMANwMAIAYoAgBBJUcNACABKAKAAiEFIARBADoAoAMgBSAFIARBoANqEO8bIgVBCGoQiAMgBUEgQQgQohgLQQAhBSABLQCgAkECRwRAIAEtAKUCQQFxRQ0DCyAGKAIAIghBJUYEfyABKALwAiEIIAFBJTYC8AICQCAIQSVHBEAgBEHEA2ogAUGUA2ooAgA2AgAgBEG8A2ogAUGMA2opAgA3AgAgBEG0A2ogAUGEA2opAgA3AgAgBEGsA2ogAUH8AmopAgA3AgAgBCAINgKgAyAEIAEpAvQCNwKkAwwBCyAEQaADaiANEDIgBigCAEElRg0AIAYQ6AMLIAYgBCkDoAM3AwAgBkEgaiAEQcADaikDADcDACAGQRhqIARBuANqKQMANwMAIAZBEGogBEGwA2opAwA3AwAgBkEIaiAEQagDaikDADcDACAGKAIABSAIC0ElRg0CIAEtAOgCQQFxDQICQCANEL8KIghFDQAgCCgCAEECRw0AIAgtAAgNACAILQAJQSFHDQAMAgsgDRC/CiIIRQ0CIAgoAgBBAkcNAiAILQAIQQJHDQIgCC0ACUEVRw0CDAELIARBrANqIA0Q3QcgBEEQNgKoAyAEQejY3wA2AqQDIARBMDoAoAMgDUHwAkG4AiAGKAIAQSVGIgUbaigCACIDIA1B9AJBvAIgBRtqKAIAIgUgAyAFSRsgAyAFIAMgBUsbIARBoANqEO8bIQMCQCANEL8KIgVFDQAgBSgCAEEkRw0AIAEgASkD4AI3A5gDIAEoAsgCIAFBJTYCyAJBJEYEQCABIAEoAswCEMAIDAELQYmE4QBBKEHohOAAENUhAAsgEEEKNgIAIBAgAzYCBAwKCyAOKQIAIVkgDiAEKQKEBDcCACABKALIAiEFIAFBJTYCyAIgDkEIaiIIKQIAIVogCCAEQYwEaikCADcCACAEQawDaiBaNwIAIA5BEGoiCCgCACEJIAEpA+ACIVogCCAEQZQEaikCADcCACAEQbQDaiAJNgIAIA5BGGogBEGcBGopAgA3AgAgDkEgaiAEQaQEaigCADYCACAEIFk3AqQDIAQgBTYCoAMgASBaNwOYAyAEQaADaiIFEOgDIAUgARAwIAQoAqQDIQggBCgCoAMiBUEyRg0BIARBmANqIARB2ANqKQMANwMAIARBkANqIARB0ANqKQMANwMAIARBiANqIARByANqKQMANwMAIARBgANqIARBwANqKQMANwMAIARB+AJqIARBuANqKQMANwMAIARB8AJqIgkgBEGwA2opAwA3AwAgBCAEKQOoAzcD6AIgBUEORw0CQaC/5AAtAAAaQRQQhAEiBUUNAyAFIAg2AgAgBSAEKQPoAjcCBCAFQQxqIAkpAwA3AgALIAYoAgAiCUElRw0DIAEoAvACIQggAUElNgLwAgJAIAhBJUcEQCAEQcQDaiABQZQDaigCADYCACAEQbwDaiABQYwDaikCADcCACAEQbQDaiABQYQDaikCADcCACAEQawDaiABQfwCaikCADcCACAEIAg2AqADIAQgASkC9AI3AqQDDAELIARBoANqIA0QMiAGKAIAQSVGDQAgBhDoAwsgBiAEKQOgAzcDACAGQSBqIARBwANqKQMANwMAIAZBGGogBEG4A2opAwA3AwAgBkEQaiAEQbADaikDADcDACAGQQhqIARBqANqKQMANwMAIAYoAgAiCUElRw0DDAQLIBBBCjYCACAQIAg2AgQgAxDLLgwHC0GJhOEAQShBuITgABDVIQsACwJAAkAgCUEOaw4CAgABCyABQSU2AsgCIA4pAgAhWSAOIAQpAoQENwIAIARBtANqIA5BEGoiCCgCADYCACAEQawDaiAOQQhqIgkpAgA3AgAgCSAEQYwEaikCADcCACABKQPgAiFaIAggBEGUBGopAgA3AgAgDkEYaiAEQZwEaikCADcCACAOQSBqIARBpARqKAIANgIAIAQgWTcCpAMgBEEPNgKgAyABIFo3A5gDIARBoANqEOgDDAELIA0QvwoaIAYoAgBBJUYNACABLQDoAg0AIARBqANqIA0Q3QcgBEHA6OAANgKkAyAEQTQ6AKADIA1B8AJBuAIgBigCAEElRiIJG2ooAgAiCCANQfQCQbwCIAkbaigCACIJIAggCUkbIAggCSAIIAlLGyAEQaADahDvGyEIIA0QvwoiCUUNAiAJKAIAQSRGDQEMAgsgECAEKQI0NwIEIBAgDDoAISAQICM6ACAgECAFNgIcIBAgAzYCECAQQQA2AgAgEEEMaiAEQTxqKAIANgIAIBAgFyABKAKcAyIDIAMgF0kbNgIYIBAgFyADIAMgF0sbNgIUDAYLIAEoAsgCIAFBJTYCyAIgASgCzAIhDCAOIAQpAoQENwIAIAEgASkD4AI3A5gDIA5BCGogBEGMBGopAgA3AgAgDkEQaiAEQZQEaikCADcCACAOQRhqIARBnARqKQIANwIAIA5BIGogBEGkBGooAgA2AgBBJEYEQCABIAwQwAgMAQtBiYThAEEoQciE4AAQ1SEACyAQQQo2AgAgECAINgIEIAUQpycgAxDLLgwBCyAQQQo2AgAgECADNgIECyAEKAI4IgMgBCgCPBDdCSAEKAI0IAMQ0SoMAgsgECADNgIMIBBBEjYCCCAQQQk2AgAgECAXIAEoApwDIgMgAyAXSRs2AhQgECAXIAMgAyAXSxs2AhAMAQsgECADNgIMIBBBEjYCCCAQQQk2AgAgECAXIAEoApwDIgMgAyAXSRs2AhQgECAXIAMgAyAXSxs2AhALIARBsAZqJAAgCygC/AEhAyALKAL4ASIMQQpGDQQgC0HgAWogG0EoaikDACJZNwMAIAtB2AFqIBtBIGopAwAiWjcDACALQdABaiAbQRhqKQMAIls3AwAgC0HgAGogG0EIaikDADcDACALQegAaiAbQRBqKQMANwMAIAtB8ABqIFs3AwAgC0H4AGogWjcDACALQYABaiBZNwMAIAsgGykDADcDWCAPIB8QkiUgJyAPEMAqDAMLIAEoAvACIQUgAUElNgLwAgJAIAVBJUcEQCAcIBgpAgA3AgAgHEEgaiAYQSBqKAIANgIAIBxBGGogGEEYaikCADcCACAcQRBqIBhBEGopAgA3AgAgHEEIaiAYQQhqKQIANwIAIAsgBTYC+AEMAQsgC0H4AWogJRAyIBEoAgBBJUYNACAREOgDCyARIAspA/gBNwMAIAMgCSkDADcDACAMIBQpAwA3AwAgICACKQMANwMAIAcgGykDADcDACARKAIAIhZBJUYNASABLQDRAiEMIAEtANACIQMLIBZBAkcgA0H/AXFBAkdyIAxB/wFxQRtHcg0AIAtB8AFqIAtBlAFqKAIANgIAIAsgCykCjAE3A+gBIAtB+AFqIQQgC0HoAWohDkIAIVlBACEPQgAhWkEAIRRBACEVQQAhICMAQZALayICJAACQAJAAkACQAJAIAEtAKsCQQFxRQRAIAEoAogCIgUoAggiA0H+////B0sNESAFKAIUBEAgAw0TIAVBfzYCCCABKAKEAiIDKAIIDRQgA0F/NgIIIAUoAhAhCSADQQxqIAUoAhQiCBDkJyADKAIQIAMoAhRBAnRqIAkgCEECdBCBCRogAyAIIAMoAhRqNgIUIAVBADYCFCADIAMoAghBAWo2AgggBSAFKAIIQQFqNgIICyABQQE6AK0CIAFBAToAqwILIAFBKGohBiABQcgCaiEHIAEoAsgCIgNBJUcEQCABQeACaiEIIAFBnANqIRAMAQsgASgC8AIhAyABQSU2AvACAkAgA0ElRwRAIAJBlAhqIAFBlANqKAIANgIAIAJBjAhqIAFBjANqKQIANwIAIAJBhAhqIAFBhANqKQIANwIAIAJB/AdqIAFB/AJqKQIANwIAIAIgAzYC8AcgAiABKQL0AjcC9AcMAQsgAkHwB2ogBhAyIAcoAgBBJUYNACAHEOgDCyAHIAIpA/AHNwMAIAdBIGogAkGQCGopAwA3AwAgB0EYaiACQYgIaikDADcDACAHQRBqIAJBgAhqKQMANwMAIAdBCGogAkH4B2opAwA3AwAgAUHgAmohCCABQZwDaiEQIAEoAsgCIgNBJUcNACABKAKcAyENIAEoAvACIQMgAUElNgLwAgJAIANBJUcEQCACQZQIaiABQZQDaigCADYCACACQYwIaiABQYwDaikCADcCACACQYQIaiABQYQDaikCADcCACACQfwHaiABQfwCaikCADcCACACIAM2AvAHIAIgASkC9AI3AvQHDAELIAJB8AdqIAYQMiAHKAIAQSVGDQAgBxDoAwsgByACKQPwBzcDACAHQSBqIAJBkAhqKQMANwMAIAdBGGogAkGICGopAwA3AwAgB0EQaiACQYAIaikDADcDACAHQQhqIAJB+AdqKQMANwMAIAcoAgAiA0ElRw0BIAEoAoACIQMgAkEAOgDwByADIAMgAkHwB2oQ7xshAyAEQQk2AgAgBCADNgIEDAILIAEoAuACIQ0LAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADQSRHBEAgAUElNgLIAiABIAEpA+ACNwOYAyACQYQIaiIFIAFB3AJqKAIANgIAIAJB/AdqIgkgAUHUAmopAgA3AgAgAiADNgLwByACIAEpAswCNwL0ByACQfAHahDoAwJAIAEoAsgCIgNBJUcNACABKALwAiEDIAFBJTYC8AICQCADQSVHBEAgAkGUCGogAUGUA2ooAgA2AgAgAkGMCGogAUGMA2opAgA3AgAgBSABQYQDaikCADcCACAJIAFB/AJqKQIANwIAIAIgAzYC8AcgAiABKQL0AjcC9AcMAQsgAkHwB2ogBhAyIAcoAgBBJUYNACAHEOgDCyAHIAIpA/AHNwMAIAdBIGogAkGQCGopAwA3AwAgB0EYaiACQYgIaikDADcDACAHQRBqIAJBgAhqKQMANwMAIAdBCGogAkH4B2opAwA3AwAgBygCACIDQSVHDQAgASgCgAIhAyACQQA6APAHIAMgAyACQfAHahDvGyEDIARBCTYCACAEIAM2AgQMVQsgA0EkRg0BIAFBzAJqIQogASgC4AIhCSABLQCgAkECRgRAIAFBqgJqIQwCQAJAAkAgA0ECRw0AIAEtANACIgNBAUsgA0EBcXINASABLQDRAkEMRw0BIAFBJTYCyAIgASAJNgKYAyABIAEoAuQCNgKcAyACQYQIaiAKQRBqKAIANgIAIAJB/AdqIApBCGopAgA3AgAgAkECNgLwByACIAopAgA3AvQHIAJB8AdqIgMQ6AMgAkHQB2oiBSAOKAIEIA4oAggQ3gkgAyABIAkgBRBeIAIoAvQHIQMgAigC8AciBUEJRg0GIAJByARqIgkgAkGQCGopAwA3AwAgAkHABGoiFiACQYgIaikDADcDACACQbgEaiISIAJBgAhqKQMANwMAIAIgAikD+Ac3A7AEIAVBCEcEQCAEIAIpA7AENwMQIAQgAzYCDCAEIAU2AgggBEEBNgIAIARBKGogCSkDADcDACAEQSBqIBYpAwA3AwAgBEEYaiASKQMANwMAIAQgDSAQKAIAIgMgAyANSRs2AjQgBCANIAMgAyANSxs2AjAMWQsgASgCyAIhAyABLQCgAkECRw0QIANBJUcNACABKALwAiEDIAFBJTYC8AICQCADQSVHBEAgAkGUCGogAUGUA2ooAgA2AgAgAkGMCGogAUGMA2opAgA3AgAgAkGECGogAUGEA2opAgA3AgAgAkH8B2ogAUH8AmopAgA3AgAgAiADNgLwByACIAEpAvQCNwL0BwwBCyACQfAHaiAGEDIgBygCAEElRg0AIAcQ6AMLIAcgAikD8Ac3AwAgB0EgaiACQZAIaikDADcDACAHQRhqIAJBiAhqKQMANwMAIAdBEGogAkGACGopAwA3AwAgB0EIaiACQfgHaikDADcDACAHKAIAIgNBJUYNAgsgA0ECRw0HIAEtANACIQMLAkACQAJAAkACQEEEIANBAmtB/wFxIgUgBUEETxtBAWsOBAABAgQDCyACQQM6APAHDAkLIAJBBDoA8AcMCAsgAkEFOgDwBwwHCyACQQI6APAHIAIgAS0A0QI6APEHDAYLQQEhCQJAIANBAXFFBEAgAS0A0QIhA0EAIQkMAQsgASkD2AIiWUIDg1BFDQAgWaciAyADKAIAIgVBAWo2AgAgBUEASA0+CyACIFk3A/gHIAIgAzoA8QcgAiAJOgDwBwwFCyABLQCgAkECRw0ODAYLIAMhBQwbCyABQSU2AsgCIARBCTYCACABIAEpA+ACNwOYAyAEIAEoAswCNgIEDFMLIAFBJTYCyAIgBEEJNgIAIAEgASkD4AI3A5gDIAQgASgCzAI2AgQMUgsgBEEJNgIAIAQgAzYCBAxRCyACQfAHahDwFCFZIAJBqANqIhYgDigCBCAOKAIIEN4JIAIgWTcDoAMCQAJAAkAgAS0AoAJBAkYEQCABLQCqAiESIAJBsARqIAEQyAIgAS0AxgIhFSABLQDFAiEPIAEtAMQCIRMgAS0AwwIhFyABLQDCAiEUIAEtAMECIRkgAS0AwAIhISABLQC/AiEiIAEtAL4CISMgAS0AvQIhJyABLQC8AiEoIAEtALsCIR0gAS0AugIhHyABLQC5AiEkIAEtALgCISAgAS0AtwIhKyABLQC2AiEsIAEtALUCIS0gAS0AtAIhLiABLQCzAiEwIAEtALICITEgAS0AsQIhMiABLQCwAiEzIAEtAK8CITQgAS0ArgIhNSABLQCtAiE2IAEtAKwCISYCQCABLQCrAiIpQQFxRQ0AIAIoArgGIgUoAggiA0H+////B0sNYyAFKAIURQ0AIAMNZCAFQX82AgggAigCtAYiAygCCA1lIANBfzYCCCAFKAIQISogA0EMaiAFKAIUIgkQ5CcgAygCECADKAIUQQJ0aiAqIAlBAnQQgQkaIAMgCSADKAIUajYCFCAFQQA2AhQgAyADKAIIQQFqNgIIIAUgBSgCCEEBajYCCAsgAiAVOgD2BiACIA86APUGIAIgEzoA9AYgAiAXOgDzBiACIBQ6APIGIAIgGToA8QYgAiAhOgDwBiACICI6AO8GIAIgIzoA7gYgAiAnOgDtBiACICg6AOwGIAIgHToA6wYgAiAfOgDqBiACICQ6AOkGIAIgIDoA6AYgAiArOgDnBiACICw6AOYGIAIgLToA5QYgAiAuOgDkBiACIDA6AOMGIAIgMToA4gYgAiAyOgDhBiACIDM6AOAGIAIgNDoA3wYgAiA1OgDeBiACIDY6AN0GIAIgJjoA3AYgAiApOgDbBiACQQE6ANoGIAJB8AdqIAJBsARqIgkgAigC+AZBJUYEfyACQfgGaiEDIAIoAqAHIQUgAkElNgKgBwJAIAVBJUcEQCACQZQIaiACQcQHaigCADYCACACQYwIaiACQbwHaikCADcCACACQYQIaiACQbQHaikCADcCACACQfwHaiACQawHaikCADcCACACIAIpAqQHNwL0ByACIAU2AvAHDAELIAJB8AdqIAJB2ARqEDIgAigC+AZBJUYNACADEOgDCyADIAIpA/AHNwMAIANBIGogAkGQCGopAwA3AwAgA0EYaiACQYgIaikDADcDACADQRBqIAJBgAhqKQMANwMAIANBCGogAkH4B2opAwA3AwBBnANB4AIgAigC+AZBJUYbBUHgAgsgCWooAgAgFiBZQQEQnAEgAigC9AchCSACKALwByIWQQlHDQEgCUEIahCIAyAJQSBBCBCiGAwCCyACKAKsAyIDIAIoArADEJIlIAIoAqgDIAMQwCogWUIDg0IAUg0CIAIgWaciAzYC8AcgAkHwB2oQ0AYgAyADKAIAIgVBAWs2AgAgBUEBRw0CIAMgAygCIBCNJwwCCyACQegHaiACQZAIaikDADcDACACQeAHaiACQYgIaikDADcDACACQdgHaiACQYAIaikDADcDACACIAIpA/gHNwPQByAWQQhHDVELIAJBsARqEMMRCyAHKAIAIQMLIAEtAKACQQJHDQcgA0ElRw0BCyABKALwAiEDIAFBJTYC8AICQCADQSVHBEAgAkGUCGogAUGUA2ooAgA2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AkHkAmopAgA3AgAgCkEgaiACQewCaigCADYCACACIFk3AvQHIAIgAzYC8AcgASBaNwOYAyACQfAHahDoAwwBC0GJhOEAQShBsIDgABDVIQALIAYQvwoiA0UNACADKAIAQQJHDQAgAy0ACA0AIAMtAAlBEkcNACAGEL8KGiAQIAggBygCAEElRhsoAgAhAyAGEL8KIgVFBEAgASgCgAIhAyACQQA6APAHIAMgAyACQfAHahDvGyEDIARBCTYCACAEIAM2AgQMLwsCQAJAIAUoAgBBJEYEQCABKALIAiABQSU2AsgCIAEoAswCIQUgCiACKQLMAjcCACABIAEpA+ACNwOYAyAKQQhqIAJB1AJqKQIANwIAIApBEGogAkHcAmopAgA3AgAgCkEYaiACQeQCaikCADcCACAKQSBqIAJB7AJqKAIANgIAQSRHDQEgBEEJNgIAIAQgBTYCBAwxCyAKKQIAIVkgCiACKQLMAjcCACABKALIAiEFIAFBJTYCyAIgCkEIaiIIKQIAIVogCCACQdQCaikCADcCACACQfwHaiBaNwIAIApBEGoiCCgCACEJIAEpA+ACIVogCCACQdwCaikCADcCACACQYQIaiAJNgIAIApBGGogAkHkAmopAgA3AgAgCkEgaiACQewCaigCADYCACACIFk3AvQHIAIgBTYC8AcgASBaNwOYAyACQfAHahDoAyACQShqIAEgAxDDASACKAIsIQMgAigCKEUNASAEQQk2AgAgBCADNgIEDDALQYmE4QBBKEHQgOAAENUhAAsgBCADNgIMIARBAjYCCCAEQQM2AgAgBCANIBAoAgAiAyADIA1JGzYCNCAEIA0gAyADIA1LGzYCMAwuCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAcoAgAiA0ElRgRAIAEoAvACIQMgAUElNgLwAgJAIANBJUcEQCACQZQIaiABQZQDaigCADYCACACQYwIaiABQYwDaikCADcCACACQYQIaiABQYQDaikCADcCACACQfwHaiABQfwCaikCADcCACACIAM2AvAHIAIgASkC9AI3AvQHDAELIAJB8AdqIAYQMiAHKAIAQSVGDQAgBxDoAwsgByACKQPwBzcDACAHQSBqIAJBkAhqKQMANwMAIAdBGGogAkGICGopAwA3AwAgB0EQaiACQYAIaikDADcDACAHQQhqIAJB+AdqKQMANwMAIAcoAgAiA0ElRg0BCyADQQJHIAEtANACIgVBAkdyIAEtANECIgxBGUdyDQEgBhC/ChogAkHwB2ogASANIAFBnANB4AIgASgCyAJBJUYbaigCACAOQQAQnAcgAigC9AchAyACKALwByIFQQNGDQIgBCACKQP4BzcDECAEQTBqIAJBmAhqKQMANwMAIARBKGogAkGQCGopAwA3AwAgBEEgaiACQYgIaikDADcDACAEQRhqIAJBgAhqKQMANwMAIAQgAzYCDCAEIAU2AgggBEEDNgIADDsLIAEoAvACIQMgAUElNgLwAgJAIANBJUcEQCACQZQIaiABQZQDaigCADYCACACQYwIaiABQYwDaikCADcCACACQYQIaiABQYQDaikCADcCACACQfwHaiABQfwCaikCADcCACACIAM2AvAHIAIgASkC9AI3AvQHDAELIAJB8AdqIAYQMiAHKAIAQSVGDQAgBxDoAwsgByACKQPwBzcDACAHQSBqIAJBkAhqKQMANwMAIAdBGGogAkGICGopAwA3AwAgB0EQaiACQYAIaikDADcDACAHQQhqIAJB+AdqKQMANwMAIAcoAgAiA0ElRg0DIAEtANECIQwgAS0A0AIhBQsgBUH/AXEgA0ECR3IgDEH/AXFBAkdyDQEgBhD0DyIDRQ0BIAMoAgBBAkcNASADLQAIQQJHDQEgAy0ACUELRw0BIAYQ9A8aIAEoAvACQSVGDQEgAS0AkANBAXENASACQfAHaiEIIwBBMGsiAyQAIAFByAJqIQUgAUEoaiEJAkACQAJAAkACQAJAIAEoAsgCIgxBJUcEQCABKALgAiEPDAELIAEoAvACIQwgAUElNgLwAgJAIAxBJUcEQCADQSxqIAFBlANqKAIANgIAIANBJGogAUGMA2opAgA3AgAgA0EcaiABQYQDaikCADcCACADQRRqIAFB/AJqKQIANwIAIAMgDDYCCCADIAEpAvQCNwIMDAELIANBCGogCRAyIAUoAgBBJUYNACAFEOgDCyAFIAMpAwg3AwAgBUEgaiADQShqKQMANwMAIAVBGGogA0EgaikDADcDACAFQRBqIANBGGopAwA3AwAgBUEIaiADQRBqKQMANwMAIAEoAsgCIgxBJUcEQCABKALgAiEPDAELIAEoApwDIQ8gASgC8AIhDCABQSU2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Sxs2AggMLwsgASgCyAIgAUElNgLIAiABKALMAiEIIAogAikCzAI3AgAgASABKQPgAjcDmAMgCkEIaiACQdQCaikCADcCACAKQRBqIAJB3AJqKQIANwIAIApBGGogAkHkAmopAgA3AgAgCkEgaiACQewCaigCADYCAEEkRgRAIAEgCBDACAwBC0GJhOEAQShBwIDgABDVIQALIARBCTYCACAEIAM2AgQgAkHQB2oQqSwMLQsgBygCACIFQSVHDQELIAEoAvACIQUgAUElNgLwAgJAIAVBJUcEQCACQZQIaiABQZQDaigCADYCACACQYwIaiABQYwDaikCADcCACACQYQIaiABQYQDaikCADcCACACQfwHaiABQfwCaikCADcCACACIAU2AvAHIAIgASkC9AI3AvQHDAELIAJB8AdqIAYQMiAHKAIAQSVGDQAgBxDoAwsgByACKQPwBzcDACAHQSBqIAJBkAhqKQMANwMAIAdBGGogAkGICGopAwA3AwAgB0EQaiACQYAIaikDADcDACAHQQhqIAJB+AdqKQMANwMAQSUgBygCACIFQSVGDQEaCyAFQQVGDQEgBQshDCADDQEMAwsgASgC4AIhBSACQfAHaiABQQAQbiACKAL0ByEMIAIoAvAHIhJBgICAgHhGDRcgAigC+AchEyAOKAIIDQMgDigCBCIFQQAQkiUgDigCACAFEMAqIA4gEzYCCCAOIAw2AgQgDiASNgIAIANFDQELQQEhEwwNCyAHKAIAIQwLAkACQAJAAkACQCAMQSVGBEAgASgC8AIhAyABQSU2AvACAkAgA0ElRwRAIAJBlAhqIAFBlANqKAIANgIAIAJBjAhqIAFBjANqKQIANwIAIAJBhAhqIAFBhANqKQIANwIAIAJB/AdqIAFB/AJqKQIANwIAIAIgAzYC8AcgAiABKQL0AjcC9AcMAQsgAkHwB2ogBhAyIAcoAgBBJUYNACAHEOgDCyAHIAIpA/AHNwMAIAdBIGogAkGQCGopAwA3AwAgB0EYaiACQYgIaikDADcDACAHQRBqIAJBgAhqKQMANwMAIAdBCGogAkH4B2opAwA3AwAgBygCACIMQSVGDQELIAxBAkcNASABLQDQAkECRw0BIAEtANECQRlHDQFBACEDIAJB8AdqIAEgASgC4AIgDkEAEMEEIAIoAvQHIQggAigC8AciBUEIRwRAIAJBwAFqIAJBkAhqKQMANwMAIAJBuAFqIAJBiAhqKQMANwMAIAJBsAFqIAJBgAhqKQMANwMAIAIgAikD+Ac3A6gBDBALDA4LIAEoAvACIQMgAUElNgLwAgJAIANBJUcEQCACQZQIaiABQZQDaigCADYCACACQYwIaiABQYwDaikCADcCACACQYQIaiABQYQDaikCADcCACACQfwHaiABQfwCaikCADcCACACIAM2AvAHIAIgASkC9AI3AvQHDAELIAJB8AdqIAYQMiAHKAIAQSVGDQAgBxDoAwsgByACKQPwBzcDACAHQSBqIAJBkAhqKQMANwMAIAdBGGogAkGICGopAwA3AwAgB0EQaiACQYAIaikDADcDACAHQQhqIAJB+AdqKQMANwMAIAcoAgAiDEElRg0BCwJAIAxBAkcNACABLQDQAiIDQQFLIANBAXFyDQAgAS0A0QJBAkcNACAGEPQPIgNFDQAgAygCAEECRw0AIAMtAAhBAkcNACADLQAJQQtHDQAgBhD0DxogASgC8AJBJUYNACABLQCQA0EBcQ0AIAJB8AdqIAEgDhDTAyACKAL0ByEIIAIoAvAHIgVBCEcEQCACQcABaiACQZAIaikDADcDACACQbgBaiACQYgIaikDADcDACACQbABaiACQYAIaikDADcDACACIAIpA/gHNwOoAUEAIQMMDwsMDQsgBygCACIDQSVHDQELIAEoAvACIQMgAUElNgLwAgJAIANBJUcEQCACQZQIaiABQZQDaigCADYCACACQYwIaiABQYwDaikCADcCACACQYQIaiABQYQDaikCADcCACACQfwHaiABQfwCaikCADcCACACIAM2AvAHIAIgASkC9AI3AvQHDAELIAJB8AdqIAYQMiAHKAIAQSVGDQAgBxDoAwsgByACKQPwBzcDACAHQSBqIAJBkAhqKQMANwMAIAdBGGogAkGICGopAwA3AwAgB0EQaiACQYAIaikDADcDACAHQQhqIAJB+AdqKQMANwMAIAcoAgAiA0ElRg0BCyADQQJHDQAgAS0A0AJBAkcNACABLQDRAkELRw0AQQAhAyACQfAHaiABQQAgAiAOELsEIAIoAvQHIQggAigC8AciBUEIRwRAIAJBwAFqIAJBkAhqKQMANwMAIAJBuAFqIAJBiAhqKQMANwMAIAJBsAFqIAJBgAhqKQMANwMAIAIgAikD+Ac3A6gBDAwLDAoLAkAgAS0AoAJBAkcNACAGEL8KIgNFDQAgAygCAEECRw0AIAMtAAhBAkcNACADLQAJQRNHDQAgBhD0DyIDRQ0AIAMoAgBBAkcNACADLQAIDQAgAy0ACUENRw0AIAYQvwoaIBAgCCAHKAIAQSVGGygCACEIIAYQvwoiA0UEQCABKAKAAiEDQQAhEiACQQA6APAHIAMgAyACQfAHahDvGyEDIARBCTYCACAEIAM2AgQMGQsgAygCAEEkRgRAIAEoAsgCIAFBJTYCyAIgASgCzAIhBSAKIAIpAswCNwIAIAEgASkD4AI3A5gDIApBCGogAkHUAmopAgA3AgAgCkEQaiACQdwCaikCADcCACAKQRhqIAJB5AJqKQIANwIAIApBIGogAkHsAmooAgA2AgBBJEcNAyAEQQk2AgAgBCAFNgIEQQAhEgwZCyAKKQIAIVkgCiACKQLMAjcCACABKALIAiEJIAFBJTYCyAIgCkEIaiIDKQIAIVsgAyACQdQCaikCADcCACACQfwHaiBbNwIAIApBEGoiBSgCACEMIAEpA+ACIVsgBSACQdwCaikCADcCACACQYQIaiAMNgIAIApBGGoiDCACQeQCaikCADcCACAKQSBqIg8gAkHsAmooAgA2AgAgAiBZNwL0ByACIAk2AvAHIAEgWzcDmAMgAkHwB2oQ6AMgBhC/CiIJRQ0XIAkoAgBBJEYEQCABKALIAiABQSU2AsgCIAEoAswCIQkgCiACKQLMAjcCACABIAEpA+ACNwOYAyADIAJB1AJqKQIANwIAIAUgAkHcAmopAgA3AgAgDCACQeQCaikCADcCACAPIAJB7AJqKAIANgIAQSRHDQQgBEEJNgIAIAQgCTYCBEEAIRIMGQsgBhC/CiIDRQ0JIAMoAgBBJEYEQCABKALIAiABQSU2AsgCIAEoAswCIQUgCiACKQLMAjcCACABIAEpA+ACNwOYAyAKQQhqIAJB1AJqKQIANwIAIApBEGogAkHcAmopAgA3AgAgCkEYaiACQeQCaikCADcCACAKQSBqIAJB7AJqKAIANgIAQSRHDQUgBEEJNgIAIAQgBTYCBEEAIRIMGQsgCikCACFZIAogAikCzAI3AgAgASgCyAIhAyABQSU2AsgCIApBCGoiBSkCACFbIAUgAkHUAmopAgA3AgAgAkH8B2ogWzcCACAKQRBqIgUoAgAhCSABKQPgAiFbIAUgAkHcAmopAgA3AgAgAkGECGogCTYCACAKQRhqIAJB5AJqKQIANwIAIApBIGogAkHsAmooAgA2AgAgAiBZNwL0ByACIAM2AvAHIAEgWzcDmAMgAkHwB2oQ6ANBASEFIAJBGGogASAIQQEQUSACKAIcIQMgAigCGEUNByAEIAM2AgRBCSEFDAgLAkACQAJAAkACQCAHKAIAIgNBJUYEQCABKALwAiEDIAFBJTYC8AICQCADQSVHBEAgAkGUCGogAUGUA2ooAgA2AgAgAkGMCGogAUGMA2opAgA3AgAgAkGECGogAUGEA2opAgA3AgAgAkH8B2ogAUH8AmopAgA3AgAgAiADNgLwByACIAEpAvQCNwL0BwwBCyACQfAHaiAGEDIgBygCAEElRg0AIAcQ6AMLIAcgAikD8Ac3AwAgB0EgaiACQZAIaikDADcDACAHQRhqIAJBiAhqKQMANwMAIAdBEGogAkGACGopAwA3AwAgB0EIaiACQfgHaikDADcDACAHKAIAIgNBJUYNAQsgA0ECRyABLQDQAiIFQQJHciABLQDRAiIMQRFHcg0BDAQLIAEoAvACIQMgAUElNgLwAgJAIANBJUcEQCACQZQIaiABQZQDaigCADYCACACQYwIaiABQYwDaikCADcCACACQYQIaiABQYQDaikCADcCACACQfwHaiABQfwCaikCADcCACACIAM2AvAHIAIgASkC9AI3AvQHDAELIAJB8AdqIAYQMiAHKAIAQSVGDQAgBxDoAwsgByACKQPwBzcDACAHQSBqIAJBkAhqKQMANwMAIAdBGGogAkGICGopAwA3AwAgB0EQaiACQYAIaikDADcDACAHQQhqIAJB+AdqKQMANwMAIAcoAgAiA0ElRg0BIAEtANECIQwgAS0A0AIhBQsgA0ECRyAFQf8BcUECR3IgDEH/AXFBE0dyDQEMAgsgASgC8AIhAyABQSU2AvACAkAgA0ElRwRAIAJBlAhqIAFBlANqKAIANgIAIAJBjAhqIAFBjANqKQIANwIAIAJBhAhqIAFBhANqKQIANwIAIAJB/AdqIAFB/AJqKQIANwIAIAIgAzYC8AcgAiABKQL0AjcC9AcMAQsgAkHwB2ogBhAyIAcoAgBBJUYNACAHEOgDCyAHIAIpA/AHNwMAIAdBIGogAkGQCGopAwA3AwAgB0EYaiACQYgIaikDADcDACAHQRBqIAJBgAhqKQMANwMAIAdBCGogAkH4B2opAwA3AwAgBygCACIDQSVGBEBBACETDA4LIAEtANECIQwgAS0A0AIhBQtBACETIANBAkcgBUH/AXFBAkdyIAxB/wFxQRJHcg0MIAYQ9A8iA0UNDAJAIAMQlggiA0EFa0H/AXEiBUEBakEAIAVBIkkbDgwADQ0NDQ0NDQ0BDQENCwJAIANB/wFxDgUADQ0NAQ0LIANBgP4DcUEIdiIDQR1LQQEgA3RBgYCQgAJxRXINDAtBACESIAJBEGogAUEAEFYgAigCFCEIIAIoAhBFBEBBASEDQQIhBQwLCyAEQQk2AgAgBCAINgIEDBcLIBAoAgAhAyACQbQBOgDwByAFIAMgAyAFSxsgBSADIAMgBUkbIAJB8AdqEO8bIQMgBhC/CiIFRQ0EIAUoAgBBJEcNBCABKALIAiABQSU2AsgCIAEoAswCIQggCiACKQLMAjcCACABIAEpA+ACNwOYAyAKQQhqIAJB1AJqKQIANwIAIApBEGogAkHcAmopAgA3AgAgCkEYaiACQeQCaikCADcCACAKQSBqIAJB7AJqKAIANgIAQSRHDQMgASAIEMAIDAQLQYmE4QBBKEHwgOAAENUhAAtBiYThAEEoQYCB4AAQ1SEAC0GJhOEAQShBkIHgABDVIQALQYmE4QBBKEHgguAAENUhAAsgBEEJNgIAIAQgAzYCBCAMIBMQkiUgEiAMEMAqDA8LIAQgAzYCDCAEQQY2AgggBCANIBAoAgAiAyADIA1JGzYCNCAEIA0gAyADIA1LGzYCMAsgBCAFNgIAQQAhEgwPCyABKAKAAiEDQQAhEiACQQA6APAHIAMgAyACQfAHahDvGyEDIARBCTYCACAEIAM2AgQMDgsgBEEJNgIAIAQgCDYCBEEAIRJBAAwOCyAEIAg2AgwgBCAFNgIIIARBATYCACAEIAIpA6gBNwMQIARBGGogAkGwAWopAwA3AwAgBEEgaiACQbgBaikDADcDACAEQShqIAJBwAFqKQMANwMAIAQgDSAQKAIAIgUgBSANSRs2AjQgBCANIAUgBSANSxs2AjACQCAWQQJGIFpCA4NCAFJyDQAgAiBapyIFNgLwByACQfAHahDQBiAFIAUoAgAiCEEBazYCACAIQQFHDQAgBSAFKAIgEI0nCyADRQ0bIA4oAgQiAyAOKAIIEJIlIA4oAgAgAxDAKgwbCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/IBZBAkciEkUEQCABKALIAiEDAkACQAJAIAEtAKACQQJGDQAgAS0ApAJBAXFFDQAgA0ElRgRAIAEoAvACIQMgAUElNgLwAgJAIANBJUcEQCACQZQIaiABQZQDaigCADYCACACQYwIaiABQYwDaikCADcCACACQYQIaiABQYQDaikCADcCACACQfwHaiABQfwCaikCADcCACACIAM2AvAHIAIgASkC9AI3AvQHDAELIAJB8AdqIAYQMiAHKAIAQSVGDQAgBxDoAwsgByACKQPwBzcDACAHQSBqIAJBkAhqKQMANwMAIAdBGGogAkGICGopAwA3AwAgB0EQaiACQYAIaikDADcDACAHQQhqIAJB+AdqKQMANwMAIAcoAgAiA0ElRg0CCyADQQJHDQIgAkHwB2ogAUEAQQAQ+QEgAigC8AchBSACLQCECCIMQQJHBEAgAkHKAWogAkGHCGotAAA6AAAgAiACLwCFCDsByAEgAigC/AchDyACKAL4ByEVIAIoAvQHIRcgAigCgAgMBQsgBEEJNgIAIAQgBTYCBAw2CyADQSVHDQELIAEoAvACIQMgAUElNgLwAgJAIANBJUcEQCACQZQIaiABQZQDaigCADYCACACQYwIaiABQYwDaikCADcCACACQYQIaiABQYQDaikCADcCACACQfwHaiABQfwCaikCADcCACACIAM2AvAHIAIgASkC9AI3AvQHDAELIAJB8AdqIAYQMiAHKAIAQSVGDQAgBxDoAwsgByACKQPwBzcDACAHQSBqIAJBkAhqKQMANwMAIAdBGGogAkGICGopAwA3AwAgB0EQaiACQYAIaikDADcDACAHQQhqIAJB+AdqKQMANwMAIAcoAgAiA0ElRw0AIAJBADYC1AEgAkKAgICAgAE3AswBDAQLIANBFEcNAiAKLQAAQQ1HDQICQCAGEPQPIgNFDQAgAygCAEECRw0AIAMtAAgNACADLQAJQQFGDQMLIAYQvwoiA0UEQCABKAKAAiEDIAJBADoA8AcgAyADIAJB8AdqEO8bIQMgBEEJNgIAIAQgAzYCBAw0CyADKAIAQSRGBEAgASgCyAIgAUElNgLIAiABKALMAiEFIAogAikCzAI3AgAgASABKQPgAjcDmAMgCkEIaiACQdQCaikCADcCACAKQRBqIAJB3AJqKQIANwIAIApBGGogAkHkAmopAgA3AgAgCkEgaiACQewCaigCADYCAEEkRw0MIARBCTYCACAEIAU2AgQMNAsgCikCACFZIAogAikCzAI3AgAgASgCyAIhAyABQSU2AsgCIApBCGoiBSkCACFaIAUgAkHUAmopAgA3AgAgAkH8B2ogWjcCACAKQRBqIgUoAgAhCCABKQPgAiFaIAUgAkHcAmopAgA3AgAgAkGECGogCDYCACAKQRhqIAJB5AJqKQIANwIAIApBIGogAkHsAmooAgA2AgAgAiBZNwL0ByACIAM2AvAHIAEgWjcDmAMgAkHwB2oiAxDoAyADIAEQhwEgAigC9AchAyACKALwByIFBEAgBCATOgAUIAQgAzYCECAEIAU2AgQgBEEFNgIAIAQgDSAQKAIAIgMgAyANSRs2AgwgBCANIAMgAyANSxs2AggMNAsgBEEJNgIAIAQgAzYCBAwzCyACQcoBaiACQfcAai0AADoAACACIAIvAHU7AcgBIFpCIIinIRcgWqchBSAWIQxBAAshGSACQQA2AtQBIAJCgICAgIABNwLMASACQcwBahD0CyACKALQASIDIAIvAcgBOwAdIAMgDDoAHCADIBk2AhggAyAPNgIUIAMgFTYCECADIBc2AgwgAyAFNgIIIANCAzcDACADQR9qIAJBygFqLQAAOgAAIAJBATYC1AEgBygCACIDQSVGBEAgASgC8AIhAyABQSU2AvACAkAgA0ElRwRAIAJBlAhqIAFBlANqKAIANgIAIAJBjAhqIAFBjANqKQIANwIAIAJBhAhqIAFBhANqKQIANwIAIAJB/AdqIAFB/AJqKQIANwIAIAIgAzYC8AcgAiABKQL0AjcC9AcMAQsgAkHwB2ogBhAyIAcoAgBBJUYNACAHEOgDCyAHIAIpA/AHNwMAIAdBIGogAkGQCGopAwA3AwAgB0EYaiACQYgIaikDADcDACAHQRBqIAJBgAhqKQMANwMAIAdBCGogAkH4B2opAwA3AwAgBygCACIDQSVGDQgLIANBEEcNBSAGEPQPIgNFDQUgAygCAEEURw0FIAMtAARBDUcNBSAGEL8KIgMNAyABKAKAAiEDIAJBADoA8AcgAyADIAJB8AdqEO8bIQ8MHgsgBygCACEDIAJBADYC1AEgAkKAgICAgAE3AswBIANBJUcNAQsgASgC8AIhAyABQSU2AvACAkAgA0ElRwRAIAJBlAhqIAFBlANqKAIANgIAIAJBjAhqIAFBjANqKQIANwIAIAJBhAhqIAFBhANqKQIANwIAIAJB/AdqIAFB/AJqKQIANwIAIAIgAzYC8AcgAiABKQL0AjcC9AcMAQsgAkHwB2ogBhAyIAcoAgBBJUYNACAHEOgDCyAHIAIpA/AHNwMAIAdBIGogAkGQCGopAwA3AwAgB0EYaiACQYgIaikDADcDACAHQRBqIAJBgAhqKQMANwMAIAdBCGogAkH4B2opAwA3AwAgBygCACIDQSVGDRQLIANBFEcNFCAKLQAAQQ1HDRQgCCgCACEIQRQhAwwBCyADKAIAQSRGBEAgASgCyAIgAUElNgLIAiABKALMAiEPIAogAikCzAI3AgAgASABKQPgAjcDmAMgCkEIaiACQdQCaikCADcCACAKQRBqIAJB3AJqKQIANwIAIApBGGogAkHkAmopAgA3AgAgCkEgaiACQewCaigCADYCAEEkRg0bQYmE4QBBKEGwgeAAENUhAAsgCikCACFZIAogAikCzAI3AgAgASgCyAIhAyABQSU2AsgCIApBCGoiBSkCACFbIAUgAkHUAmopAgA3AgAgAkH8B2oiBSBbNwIAIApBEGoiDCgCACEPIAEpA+ACIVsgDCACQdwCaikCADcCACACQYQIaiIMIA82AgAgCkEYaiACQeQCaikCADcCACAKQSBqIAJB7AJqKAIANgIAIAIgWTcC9AcgAiADNgLwByABIFs3A5gDIAJB8AdqEOgDAkAgASgCyAIiA0ElRw0AIAEoAvACIQMgAUElNgLwAgJAIANBJUcEQCACQZQIaiABQZQDaigCADYCACACQYwIaiABQYwDaikCADcCACAMIAFBhANqKQIANwIAIAUgAUH8AmopAgA3AgAgAiADNgLwByACIAEpAvQCNwL0BwwBCyACQfAHaiAGEDIgBygCAEElRg0AIAcQ6AMLIAcgAikD8Ac3AwAgB0EgaiACQZAIaikDADcDACAHQRhqIAJBiAhqKQMANwMAIAdBEGogAkGACGopAwA3AwAgB0EIaiACQfgHaikDADcDACAHKAIAIgNBJUcNACABKAKAAiEDIAJBADoA8AcgAyADIAJB8AdqEO8bIQ8MGwsgCCgCACEIIANBJEYNBAsgAUElNgLIAiAKKQIAIVkgCiACKQLMAjcCACACQYQIaiIFIApBEGoiDCgCADYCACACQfwHaiIPIApBCGoiFSkCADcCACABKALkAiEXIApBIGogAkHsAmooAgA2AgAgCkEYaiACQeQCaikCADcCACAVIAJB1AJqKQIANwIAIAwgAkHcAmopAgA3AgAgAiBZNwL0ByACIAM2AvAHIAEgFzYCnAMgASAINgKYAyACQfAHahDoAyABKALIAiIDQSVGBEAgASgC8AIhAyABQSU2AvACAkAgA0ElRwRAIAJBlAhqIAFBlANqKAIANgIAIAJBjAhqIAFBjANqKQIANwIAIAUgAUGEA2opAgA3AgAgDyABQfwCaikCADcCACACIAM2AvAHIAIgASkC9AI3AvQHDAELIAJB8AdqIAYQMiAHKAIAQSVGDQAgBxDoAwsgByACKQPwBzcDACAHQSBqIAJBkAhqKQMANwMAIAdBGGogAkGICGopAwA3AwAgB0EQaiACQYAIaikDADcDACAHQQhqIAJB+AdqKQMANwMAIAcoAgAiA0ElRg0CCyADQQJHDQEgAS0A0AIiA0EBSyADQQFxcg0BIAEtANECQQFHDQEgAUElNgLIAiAKKQIAIVkgCiACKQLMAjcCACACQYQIaiIDIApBEGoiBSgCADYCACACQfwHaiAKQQhqIggpAgA3AgAgCCACQdQCaikCADcCACABKQPgAiFbIAUgAkHcAmopAgA3AgAgCkEYaiACQeQCaikCADcCACAKQSBqIAJB7AJqKAIANgIAIAIgWTcC9AcgAkECNgLwByABIFs3A5gDIAJB8AdqIgUQ6AMgBSABEN4DIAIoAvgHIQ8gAikD8AciWUICUQ0ZIAJB6AFqIAJBjAhqKAIANgIAIAJB4AFqIAMpAgA3AwAgAiACKQL8BzcD2AEgCSAQKAIAIgUgBSAJSRshDCACKALUASIIIAIoAswBRgRAIAJBzAFqEPQLCyACKALQASAIQdAAbGoiAyAPNgIQIAMgWTcDCCADQgI3AwAgAyACKQPYATcCFCADIAw2AiwgAyAJIAUgBSAJSxs2AiggA0EcaiACQeABaikDADcCACADQSRqIAJB6AFqKAIANgIAIAIgCEEBajYC1AELIAcoAgAiCEElRg0BDAULIAJB+AdqIAYQ3QcgAkHQgeAANgL0ByACQTQ6APAHIAZB8AJBuAIgBygCAEElRiIFG2ooAgAiAyAGQfQCQbwCIAUbaigCACIFIAMgBUkbIAMgBSADIAVLGyACQfAHahDvGyEPIAYQvwoiA0UNFyADKAIAQSRHDRcgASgCyAIgAUElNgLIAiABKALMAiEFIAogAikCzAI3AgAgASABKQPgAjcDmAMgCkEIaiACQdQCaikCADcCACAKQRBqIAJB3AJqKQIANwIAIApBGGogAkHkAmopAgA3AgAgCkEgaiACQewCaigCADYCAEEkRw0DIAEgBRDACAwXCyABKALwAiEDIAFBJTYC8AICQCADQSVHBEAgAkGUCGogAUGUA2ooAgA2AgAgAkGMCGogAUGMA2opAgA3AgAgAkGECGogAUGEA2opAgA3AgAgAkH8B2ogAUH8AmopAgA3AgAgAiADNgLwByACIAEpAvQCNwL0BwwBCyACQfAHaiAGEDIgBygCAEElRg0AIAcQ6AMLIAcgAikD8Ac3AwAgB0EgaiACQZAIaikDADcDACAHQRhqIAJBiAhqKQMANwMAIAdBEGogAkGACGopAwA3AwAgB0EIaiACQfgHaikDADcDAEElIQMgBygCACIIQSVHDQMMBAsgAUElNgLIAiABIAg2ApgDIAEoAswCIQ8gCiACKQLMAjcCACABIAEoAuQCNgKcAyAKQQhqIAJB1AJqKQIANwIAIApBEGogAkHcAmopAgA3AgAgCkEYaiACQeQCaikCADcCACAKQSBqIAJB7AJqKAIANgIADBULQYmE4QBBKEGggeAAENUhAAtBiYThAEEoQeiB4AAQ1SEACyAIIgNBAkcNACABLQDQAiIDQQFLBEBBAiEDDAELIANBAXEEQEECIQMMAQtBAiEDIAEtANECQQNGDQELAkAgAS0AoAJBAkcEQCABLQCkAkEBcQ0BCyAGEL8KIgNFDQIgAygCAEECRw0CIAMtAAgNAiADLQAJQQNHDQIgCikCACFZIAogAikCzAI3AgAgASgCyAIhAyABQSU2AsgCIApBCGoiBSkCACFbIAUgAkHUAmopAgA3AgAgAkH8B2ogWzcCACAKQRBqIgUoAgAhCCABKQPgAiFbIAUgAkHcAmopAgA3AgAgAkGECGogCDYCACAKQRhqIAJB5AJqKQIANwIAIApBIGogAkHsAmooAgA2AgAgAiBZNwL0ByACIAM2AvAHIAEgWzcDmAMgAkHwB2oQ6AMgASgCyAIhAwsgA0ElRw0EIAEoAvACIQMgAUElNgLwAiADQSVGDQIgAkGUCGogAUGUA2ooAgA2AgAgAkGMCGogAUGMA2opAgA3AgAgAkGECGogAUGEA2opAgA3AgAgAkH8B2ogAUH8AmopAgA3AgAgAiADNgLwByACIAEpAvQCNwL0BwwDCyACQfAHaiABEIcBIAIoAvQHIQ8gAigC8AciA0UNECAEIAIpAswBNwIEIAQgEzoAICAEIA82AhwgBCADNgIYIARBAjYCACAEQQxqIAJB1AFqKAIANgIAIAQgDSAQKAIAIgMgAyANSRs2AhQgBCANIAMgAyANSxs2AhAMFQsgAkH4B2ogBhDdByACQfiB4AA2AvQHIAJBNDoA8AcgBkHwAkG4AiAHKAIAQSVGIgUbaigCACIDIAZB9AJBvAIgBRtqKAIAIgUgAyAFSRsgAyAFIAMgBUsbIAJB8AdqEO8bIQ8gBhC/CiIDRQ0PIAMoAgBBJEcNDyABKALIAiABQSU2AsgCIAEoAswCIQUgCiACKQLMAjcCACABIAEpA+ACNwOYAyAKQQhqIAJB1AJqKQIANwIAIApBEGogAkHcAmopAgA3AgAgCkEYaiACQeQCaikCADcCACAKQSBqIAJB7AJqKAIANgIAQSRHDQQgASAFEMAIDA8LIAJB8AdqIAYQMiAHKAIAQSVGDQAgBxDoAwsgByACKQPwBzcDACAHQSBqIAJBkAhqKQMANwMAIAdBGGogAkGICGopAwA3AwAgB0EQaiACQYAIaikDADcDACAHQQhqIAJB+AdqKQMANwMAIAcoAgAiA0ElRg0BCyADQRBGDQMLIAJB+AdqIAYQ3QcgAkHY6eAANgL0ByACQTQ6APAHIAZB8AJBuAIgBygCAEElRiIFG2ooAgAiAyAGQfQCQbwCIAUbaigCACIFIAMgBUkbIAMgBSADIAVLGyACQfAHahDvGyEPIAYQvwoiA0UNCyADKAIAQSRHDQsgASgCyAIgAUElNgLIAiABKALMAiEFIAogAikCzAI3AgAgASABKQPgAjcDmAMgCkEIaiACQdQCaikCADcCACAKQRBqIAJB3AJqKQIANwIAIApBGGogAkHkAmopAgA3AgAgCkEgaiACQewCaigCADYCAEEkRw0BIAEgBRDACAwLC0GJhOEAQShBkILgABDVIQALQYmE4QBBKEGgguAAENUhAAsgAUElNgLIAiAKKQIAIVkgCiACKQLMAjcCACACQYQIaiAKQRBqIgMoAgA2AgAgAkH8B2ogCkEIaiIFKQIANwIAIAUgAkHUAmopAgA3AgAgASkD4AIhWyADIAJB3AJqKQIANwIAIApBGGogAkHkAmopAgA3AgAgCkEgaiACQewCaigCADYCACACIFk3AvQHIAJBEDYC8AcgASBbNwOYAyACQfAHahDoAyABKALIAiIDQSVHDQELIAEoAvACIQMgAUElNgLwAgJAIANBJUcEQCACQZQIaiABQZQDaigCADYCACACQYwIaiABQYwDaikCADcCACACQYQIaiABQYQDaikCADcCACACQfwHaiABQfwCaikCADcCACACIAM2AvAHIAIgASkC9AI3AvQHDAELIAJB8AdqIAYQMiAHKAIAQSVGDQAgBxDoAwsgByACKQPwBzcDACAHQSBqIAJBkAhqKQMANwMAIAdBGGogAkGICGopAwA3AwAgB0EQaiACQYAIaikDADcDACAHQQhqIAJB+AdqKQMANwMAIAcoAgAiA0ElRg0GCyADQQ1HDQUgAUElNgLIAiAKKQIAIVkgCiACKQLMAjcCACACQYQIaiAKQRBqIiEoAgA2AgAgAkH8B2oiIiAKQQhqIiMpAgA3AgAgIyACQdQCaiIwKQIANwIAIAEpA+ACIVsgISACQdwCaiIxKQIANwIAIApBGGoiMiACQeQCaiIzKQIANwIAIApBIGoiNCACQewCaiI1KAIANgIAIAIgWTcC9AcgAkENNgLwByABIFs3A5gDIAFB9AJqIQUgAkHwB2oiAxDoAyADQQRyIQggAkGNCGohLSACQYUIaiEnIAJB5QdqISsgAkHQB2pBBHIhLCACQbUDaiEuIAJBoANqQQRyIRcgAkGIA2pBBHIhKCACQbwEaiEZIAJBuARqIRUgAkHwAWohNgJAAkADQAJAAn8CQAJAAkACQAJ+AkACQAJAAkAgBygCACIDQSVGBEAgASgC8AIhAyABQSU2AvACAkAgA0ElRwRAIAggBSkCADcC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aiBaNwMAIAtBgAFqIFk3AwAgCyAbKQMANwNYDAELIAtBADoAqwEgC0EBOgC3ASALIAEtAMUCOgC2ASALIAEpAaoCNwCbASALIAEpAbICNwCjASALIAEpALsCNwCsASALIAEvAMMCOwC0ASALQbgBaiIFIAEgC0GbAWoQvwggC0H4AWogCygCuAEgCEEBQQEgC0GMAWoQNCALKAL4AUETRgRAIAsoAvwBIQ8gBRD1CgwECyALQYABaiALQaACaikDADcDACALQfgAaiALQZgCaikDADcDACALQfAAaiALQZACaikDADcDACALQegAaiALQYgCaikDADcDACALQeAAaiAbKQMANwMAIAsgCykD+AE3A1ggC0G4AWoQ9QpBCSEMCyALQdAAaiIIIAtBgAFqKQMANwMAIAtByABqIgkgC0H4AGopAwA3AwAgC0FAayIPIAtB8ABqKQMANwMAIAtBOGoiFiALQegAaikDADcDACALQTBqIhQgC0HgAGopAwA3AwAgCyALKQNYNwMoIDtFDQNBjMXfABDVHQALIA8gHxCSJSAnIA8QwCoLIAMhDwsgCygCFCIBIBoQ7ScgCygCECABEMcqIAsoAiAhCCALKAIkIgwEQEEAIQUDQCAIIAVBDGxqIglBBGoiGigCACEBIAkoAggiAwRAA0AgARCRByABQThqIQEgA0EBayIDDQALIBooAgAhAQsgCSgCACABEMcqIAVBAWoiBSAMRw0ACwsgCygCHCAIEMAqDAQLAkAgCygCECIFIBpLBEAgCygCFCAaQThsaiIFIAM2AgQgBSAMNgIAIAUgCykDKDcDCCAFQRBqIBQpAwA3AwAgBUEYaiAWKQMANwMAIAVBIGogDykDADcDACAFQShqIAkpAwA3AwAgBUEwaiAIKQMANwMADAELIAtBfzYCDCAFIBpHBEAgCygCFCAaQThsaiIFIAM2AgQgBSAMNgIAIAUgCykDKDcCCCAFQRBqIBQpAwA3AgAgBUEYaiAWKQMANwIAIAVBIGogDykDADcCACAFQShqIAkpAwA3AgAgBUEwaiAIKQMANwIADAELIwBBIGsiBSQAAkACQCAeKAIAIhpBAE4EQCAFQRRqQQEgGkEBdCIaIBpBAU0bQQhBOBDeECAFKAIYIRogBSgCFEEBRg0BIAUoAhwhICAFQRBqIB5BCGoiAigCADYC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QYABaiAJEN0HIAZBwOjgADYCfCAGQTQ6AHggCUHwAkG4AiAHKAIAQSVGIgQbaigCACICIAlB9AJBvAIgBBtqKAIAIgQgAiAESRsgAiAEIAIgBEsbIAZB+ABqEO8bIQggCRC/CiICRQ0GIAIoAgBBJEcNBiABIAEpA+ACNwOYAyABKALIAiABQSU2AsgCQSRHDQQgASABKALMAhDACAwGCyAGKAJ8IQgMCAtBiYThAEEoQdjY3wAQ1SEAC0GJhOEAQShByNjfABDVIQALQYmE4QBBKEH42N8AENUhAAtBiYThAEEoQfjX3wAQ1SEACyABQSU2AsgCIAEgASkD4AI3A5gDIAEoAswCIQgMAwsCQCAGQQhqIgEpAwBQBEAgAUEIahDbDgwBCyABEL8QCwwCC0EAIQdBoL/kAC0AABogASgCnAMhAUHIABCEASIIBEAgCCAGKQMINwMAIAggBToAQSAIIAQ6AEAgCCADKQMANwMoIAhBGGogBkEgaikDADcDACAIQRBqIAZBGGopAwA3AwAgCEEIaiAGQRBqKQMANwMAIAggASACIAEgAksbNgIkIAggASACIAEgAkkbNgIgIAhBMGogA0EIaikDADcDACAIQThqIANBEGopAwA3AwAMAwsACyAGQcgAahC/EAtBASEHIAMpAwAiDkIDg0IAUg0AIAYgDqciATYCeCAGQfgAahDQBiABIAEoAgAiAkEBazYCACACQQFHDQAgASABKAIgEI0nCyAAIAg2AgQgACAHNgIAIAZBoAFqJAALkDICJ38BfiMAQdADayICJAAgAUHIAmohAyABQShqIQggASgCyAIiBUElRgRAIAEoAvACIQcgAUElNgLwAgJAIAdBJUcEQCACQcwDaiABQZQDaigCADYCACACQcQDaiABQYwDaikCADcCACACQbwDaiABQYQDaikCADcCACACQbQDaiABQfwCaikCADcCACACIAc2AqgDIAIgASkC9AI3AqwDDAELIAJBqANqIAgQMiADKAIAQSVGDQAgAxDoAwsgAyACKQOoAzcDACADQSBqIAJByANqKQMANwMAIANBGGogAkHAA2opAwA3AwAgA0EQaiACQbgDaikDADcDACADQQhqIAJBsANqKQMANwMAIAMoAgAhBQsgAUGcA0HgAiAFQSVGG2ooAgAhCgJAAkACQAJAAkACQAJAAkACfwJAAkACQCABLQChAiABLQCgAiIHIAdBAkYbQQFxRQ0AAkAgBUElRw0AIAEoAvACIQcgAUElNgLwAgJAIAdBJUcEQCACQcwDaiABQZQDaigCADYCACACQcQDaiABQYwDaikCADcCACACQbwDaiABQYQDaikCADcCACACQbQDaiABQfwCaikCADcCACACIAc2AqgDIAIgASkC9AI3AqwDDAELIAJBqANqIAgQMiADKAIAQSVGDQAgAxDoAwsgAyACKQOoAzcDACADQSBqIAJByANqKQMANwMAIANBGGogAkHAA2opAwA3AwAgA0EQaiACQbgDaikDADcDACADQQhqIAJBsANqKQMANwMAIAMoAgAiBUElRw0AIAEoAoACIQEgAkEAOgCoAyABIAEgAkGoA2oQ7xshAwwICwJAAkACQAJAIAVBIGsOBQABAgIDAgsgAUElNgLIAiABIAEoAuQCIgQ2ApwDIAEgASgC4AIiCDYCmAMgASgC2AIhByABKQPQAiIpUEUEQCABKALcAiEBQQAhBUGgv+QALQAAGkHAABCEASIDRQ0FIAMgBDYCJCADIAg2AiAgAyABNgIcIAMgBzYCGCADICk3AxAgA0EGNgIIIANBGzYCAAwPC0EBIQUgByEDDA4LIAJBKGoiAyABEKUIIAIoArgBQYGAgIB4RwRAQQAhBSADEIAQIQMMDgtBASEFIAIoAighAwwNCyAFQRRHDQEgAS0AzAJBBEcNAQJAIAgQ9A8iB0UNACAHKAIAQQhHDQAgAygCACEFDAILIAJByAFqIgMgARClCCACKALYAkGBgICAeEcEQEEAIQUgAxCAECEDDA0LQQEhBSACKALIASEDDAwLIAFBJTYCyAIgASABKQPgAjcDmAMgASgCzAIhAwwHCwJAAkACQAJAAkAgBUElRgRAIAEoAvACIQcgAUElNgLwAgJAIAdBJUcEQCACQcwDaiABQZQDaigCADYCACACQcQDaiABQYwDaikCADcCACACQbwDaiABQYQDaikCADcCACACQbQDaiABQfwCaikCADcCACACIAc2AqgDIAIgASkC9AI3AqwDDAELIAJBqANqIAgQMiADKAIAQSVGDQAgAxDoAwsgAyACKQOoAzcDACADQSBqIAJByANqKQMANwMAIANBGGogAkHAA2opAwA3AwAgA0EQaiACQbgD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A2ogAUGEA2opAgA3AgAgAkG0A2ogAUH8AmopAgA3AgAgAiAENgKoAyACIAEpAvQCNwKsAwwBCyACQagDaiAIEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDqAM3AwAgA0EgaiACQcgDaikDADcDACADQRhqIAJBwANqKQMANwMAIANBEGogAkG4A2opAwA3AwAgA0EIaiACQbADaikDADcDACADKAIAIgVBJUcNAUEAIQUgBg0CIAchAwwSCyACQZADaiAHQQRqIgRBGGopAgA3AwAgAkGIA2ogBEEQaikCADcDACACQYADaiAEQQhqKQIANwMAIAIgBCkCADcD+AICQCAGBEACQAJAIAMoAgAiBUElRgRAIAEoAvACIQQgAUElNgLwAgJAIARBJUcEQCACQcwDaiABQZQDaigCADYCACACQcQDaiABQYwDaikCADcCACACQbwDaiABQYQDaikCADcCACACQbQDaiABQfwCaikCADcCACACIAQ2AqgDIAIgASkC9AI3AqwDDAELIAJBqANqIAgQMiADKAIAQSVGDQAgAxDoAwsgAyACKQOoAzcDACADQSBqIAJByANqKQMANwMAIANBGGogAkHAA2opAwA3AwAgA0EQaiACQbgDaikDADcDACADQQhqIAJBsANqKQMANwMAIAMoAgAiBUElRg0BCyAFQQlGDQELIAJBsANqIAgQ3QcgAkGYzd8ANgKsAyACQTQ6AKgDIAhB8AJBuAIgAygCAEElRiIEG2ooAgAiAyAIQfQCQbwCIAQbaigCACIEIAMgBEkbIAMgBCADIARLGyACQagDahDvGyEDAkAgCBC/CiIERQ0AIAQoAgBBJEcNACABIAEpA+ACNwOYAyABKALIAiABQSU2AsgCQSRHDQggASABKALMAhDACAsgAkGEA2oQqSwgAkH4AmoiASgCACIEQYCAgIB4RwRAIAEQ7SEgBCABKAIEEL8qC0EBIQUMAgsgAUElNgLIAiABIAEpA+ACNwOYAyACQbwDaiABQdwCaigCADYCACACQbQDaiABQdQCaikCADcCACACQQk2AqgDIAIgASkCzAI3AqwDIAJBqANqEOgDC0EAIQVBoL/kAC0AABogAigChAMhASACKAKQAyEEIAIoAowDIQggAigCiAMhCkHAABCEASIDRQ0IIANBGDYCACADIAIpA/gCNwIE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KQL0AjcC5AMMAQsgA0HgA2ogBRAyIAcoAgBBJUYNACAHEOgDCyAHIAMpA+ADNwMAIAdBIGogA0GABGopAwA3AwAgB0EYaiADQfgDaikDADcDACAHQRBqIANB8ANqKQMANwMAIAdBCGogA0HoA2opAwA3AwAgBygCACIJQSVGDQELIAlBFEcNASABLQDMAkEERw0BDAILIAEoAvACIQQgAUElNgLwAgJAIARBJUcEQCADQYQEaiABQZQDaigCADYCACADQfwDaiABQYwDaikCADcCACADQfQDaiABQYQDaikCADcCACADQewDaiABQfwCaikCADcCACADIAQ2AuADIAMgASkC9AI3AuQDDAELIANB4ANqIAUQMiAHKAIAQSVGDQAgBxDoAwsgByADKQPgAzcDACAHQSBqIANBgARqKQMANwMAIAdBGGogA0H4A2opAwA3AwAgB0EQaiADQfADaikDADcDACAHQQhqIANB6ANqKQMANwMAIAcoAgAiCUElRg0CCyAJQSFHDQELIAEtAKACQQJHDQAgAS0AqgIhFiADQUBrIAEQyAIgAS0AxgIhGCABLQDFAiEZIAEtAMQCIRogAS0AwwIhGyABLQDCAiEcIAEtAMECIR0gAS0AwAIhHiABLQC/AiEfIAEtAL4CISAgAS0AvQIhISABLQC8AiEiIAEtALsCISMgAS0AugIhJCABLQC5AiEGIAEtALgCIQkgAS0AtwIhDSABLQC2AiERIAEtALUCIRIgAS0AtAIhEyABLQCzAiEUIAEtALICIRUgAS0AsQIhDiABLQCwAiELIAEtAK8CIQogAS0ArgIhCCABLQCtAiEMIAEtAKwCIQcCQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAS0AqwIiBUEBcUUNACADKALIAiIQKAIIIgRB/v///wdLDQEgECgCFEUNACAEDQIgEEF/NgIIIAMoAsQCIg8oAggNAyAPQX82AgggECgCECEEIA9BDGogECgCFCIXEOQnIA8oAhAgDygCFEECdGogBCAXQQJ0EIEJGiAPIBcgDygCFGo2AhQgEEEANgIUIA8gDygCCEEBajYCCCAQIBAoAghBAWo2AggLIAMgGDoAhgMgAyAZOgCFAyADIBo6AIQDIAMgGzoAgwMgAyAcOgCCAyADIB06AIEDIAMgHjoAgAMgAyAfOgD/AiADICA6AP4CIAMgIToA/QIgAyAiOgD8AiADICM6APsCIAMgJDoA+gIgAyAGOgD5AiADIAk6APgCIAMgDToA9wIgAyAROgD2AiADIBI6APUCIAMgEzoA9AIgAyAUOgDzAiADIBU6APICIAMgDjoA8QIgAyALOgDwAiADIAo6AO8CIAMgCDoA7gIgAyAMOgDtAiADIAc6AOwCIAMgBToA6wIgA0EBOgDqAiADQRhqIANBQGtBAEEAEGogAygCHCEMAkACQCADKAIYRQRAIANB6ABqIQ0gA0GIA2ohBgJAAkAgAygCiAMiBUElRgRAIAMoArADIQQgA0ElNgKwAwJAIARBJUcEQCADQYQEaiADQdQDaigCADYCACADQfwDaiADQcwDaikCADcCACADQfQDaiADQcQDaikCADcCACADQewDaiADQbwDaikCADcCACADIAMpArQDNwLkAyADIAQ2AuADDAELIANB4ANqIA0QMiADKAKIA0ElRg0AIAYQ6AMLIAYgAykD4AM3AwAgBkEgaiADQYAEaikDADcDACAGQRhqIANB+ANqKQMANwMAIAZBEGogA0HwA2opAwA3AwAgBkEIaiADQegDaikDADcDACADKAKIAyIFQSVGDQELIAVBCUYNAQsgA0HoA2ogA0HoAGoQ3QcgA0GYzd8ANgLkAyADQTQ6AOADIANB2ANqIANBoANqIAMoAogDQSVGIgEbKAIAIgIgA0HcA2ogA0GkA2ogARsoAgAiASABIAJLGyACIAEgASACSRsgA0HgA2oQ7xshBCADKAKIAyIBQSVGBEAgAygCsAMhASADQSU2ArADAkAgAUElRwRAIANBhARqIANB1ANqKAIANgIAIANB/ANqIANBzANqKQIANwIAIANB9ANqIANBxANqKQIANwIAIANB7ANqIANBvANqKQIANwIAIAMgAykCtAM3AuQDIAMgATYC4AMMAQsgA0HgA2ogDRAyIAMoAogDQSVGDQAgBhDoAwsgBiADKQPgAzcDACAGQSBqIANBgARqKQMANwMAIAZBGGogA0H4A2opAwA3AwAgBkEQaiADQfADaikDADcDACAGQQhqIANB6ANqKQMANwMAIAMoAogDIgFBJUYNDgsgAUEkRw0NIAMgAykDoAM3A9gDIANBJTYCiAMgA0FAayADKAKMAxDACAwNCyADQfQDaiADQZwDaigCADYCACADQewDaiADQZQDaikCADcCACADIAMpAowDNwLkAyADQSU2AogDIANBCTYC4AMgAyADKQOgAzcD2AMgA0HgA2oiBBDoAyAEIANBQGsQdiADKALkAyEEIAMoAuADIhNBgICAgHhGDQwgE0EGdCISQShuIREgBCADKALoAyIIQQZ0aiEHIAQiBSEJIAgEQANAIANBiARqIAVBKGopAwA3AwAgA0GABGoiFCAFQSBqKQMANwMAIANB+ANqIhUgBUEYaikDADcDACADQfADaiIOIAVBEGopAwA3AwAgA0HoA2oiCyAFQQhqKQMANwMAIAMgBSkDADcD4AMgBSgCMCAFKAI0IgggBSgCOBCSJSAIEMAqIAlBIGogFCkDADcDACAJQRhqIBUpAwA3AwAgCUEQaiAOKQMANwMAIAlBCGogCykDADcDACAJIAMpA+ADNwMAIAlBKGohCSAFQUBrIgUgB0cNAAsgByEFCyADQQg2AoAHIANBADYCiAdBAEEIEMEqIANBCDYCjAcgA0EINgKEByAFIAdHBEAgByAFa0EGdiEHA0AgBUE0aiIIKAIAIAVBOGooAgAQkiUgBUEwaigCACAIKAIAEMAqIAUQzAsgBUFAayEFIAdBAWsiBw0ACwsgBCEHAkAgE0UNACASIBFBKGwiBUYNACASRQRAQQghBwwBCyAEIBJBCCAFEMkEIgdFDQcLIAkgBGtBKG4hDiADQYAHahD3FgJAAkAgAygCiAMiBUElRgRAIAMoArADIQQgA0ElNgKwAwJAIARBJUcEQCADQYQEaiADQdQDaigCADYCACADQfwDaiADQcwDaikCADcCACADQfQDaiADQcQDaikCADcCACADQewDaiADQbwDaikCADcCACADIAMpArQDNwLkAyADIAQ2AuADDAELIANB4ANqIA0QMiADKAKIA0ElRg0AIAYQ6AMLIAYgAykD4AM3AwAgBkEgaiADQYAEaikDADcDACAGQRhqIANB+ANqKQMANwMAIAZBEGogA0HwA2opAwA3AwAgBkEIaiADQegDaikDADcDACADKAKIAyIFQSVGDQELIAVBCkYNAQsgA0HoA2ogA0HoAGoQ3QcgA0HwzN8ANgLkAyADQTQ6AOADIANB2ANqIANBoANqIAMoAogDQSVGIgEbKAIAIgIgA0HcA2ogA0GkA2ogARsoAgAiASABIAJLGyACIAEgASACSRsgA0HgA2oQ7xshBCADKAKIAyIBQSVGBEAgAygCsAMhASADQSU2ArADAkAgAUElRwRAIANBhARqIANB1ANqKAIANgIAIANB/ANqIANBzANqKQIANwIAIANB9ANqIANBxANqKQIANwIAIANB7ANqIANBvANqKQIANwIAIAMgAykCtAM3AuQDIAMgATYC4AMMAQsgA0HgA2ogDRAyIAMoAogDQSVGDQAgBhDoAwsgBiADKQPgAzcDACAGQSBqIANBgARqKQMANwMAIAZBGGogA0H4A2opAwA3AwAgBkEQaiADQfADaikDADcDACAGQQhqIANB6ANqKQMANwMAIAMoAogDIgFBJUYNDQsgAUEkRw0MIAMgAykDoAM3A9gDIANBJTYCiAMgA0FAayADKAKMAxDACAwMCyADQfQDaiIFIANBjANqIgpBEGooAgA2AgAgA0HsA2oiBCAKQQhqKQIANwIAIANBCjYC4AMgAyADKQOgAzcD2AMgAyAKKQIANwLkAyADQSU2AogDIANB4ANqEOgDAkACQAJAAkAgAygCiAMiCUElRgRAIAMoArADIQggA0ElNgKwAwJAIAhBJUcEQCADQYQEaiADQdQDaigCADYCACADQfwDaiADQcwDaikCADcCACAFIANBxANqKQIANwIAIAQgA0G8A2opAgA3AgAgAyADKQK0AzcC5AMgAyAINgLgAwwBCyADQeADaiANEDIgAygCiANBJUYNACAGEOgDCyAGIAMpA+ADNwMAIAZBIGogA0GABGopAwA3AwAgBkEYaiADQfgDaikDADcDACAGQRBqIANB8ANqKQMANwMAIAZBCGogA0HoA2opAwA3AwBBACEFIAMoAogDIglBJUYNAQtBACEFIAlBE0cNASADQRBqIANBQGtBoMffABB+IAMoAhQhBSADKAIQBEAgBSEEDBALIAMoAogDIglBJUcNAQsgAygCsAMhBCADQSU2ArADAkAgBEElRwRAIANBhARqIANB1ANqKAIANgIAIANB/ANqIANBzANqKQIANwIAIANB9ANqIANBxANqKQIANwIAIANB7ANqIANBvANqKQIANwIAIAMgAykCtAM3AuQDIAMgBDYC4AMMAQsgA0HgA2ogDRAyIAMoAogDQSVGDQAgBhDoAwsgBiADKQPgAzcDACAGQSBqIANBgARqKQMANwMAIAZBGGogA0H4A2opAwA3AwAgBkEQaiADQfADaikDADcDACAGQQhqIANB6ANqKQMANwMAIAMoAogDIglBJUYNAQsgCUEDRg0BCyADQegDaiADQegAahDdByADQfDa3wA2AuQDIANBNDoA4AMgA0HYA2ogA0GgA2ogAygCiANBJUYiARsoAgAiAiADQdwDaiADQaQDaiABGygCACIBIAEgAksbIAIgASABIAJJGyADQeADahDvGyEEIA0QvwoiAUUNCyABKAIAQSRHDQsgAyADKQOgAzcD2AMgAygCiAMgA0ElNgKIA0EkRw0IIANBQGsgAygCjAMQwAgMCwsgA0H0A2ogCkEQaigCADYCACADQewDaiAKQQhqKQIANwIAIANBJTYCiAMgA0EDNgLgAyADIAMpA6ADNwPYAyADIAopAgA3AuQDIANB4ANqIgQQ6AMgBCADQUBrQaADEIEJGiABEMMRAkACQCABIARBoAMQgQkiCy0AqwIiCUEBcUUNACALKAKIAiIIKAIIIgFB/v///wdLDQogCCgCFEUNACABDQsgCEF/NgIIIAsoAoQCIgooAggNASAKQX82AgggCCgCECEBIApBDGogCCgCFCIEEOQnIAooAhAgCigCFEECdGogASAEQQJ0EIEJGiAKIAQgCigCFGo2AhQgCEEANgIUIAogCigCCEEBajYCCCAIIAgoAghBAWo2AgggCy0AqwIhCQsgCyAWOgCqAiADIBY6ACMgA0EBOwAqIAMgCToAJCADIAstALACOgApIAMgCygCrAI2ACUgAyALKQCzAjcALCADIAspALsCNwA0IAMgCygAwwI2ADwgA0FAayALIANBI2oQvwggDkEobCEKQQAhASADKAJAIQsDQCABIApGIghFBEAgASAHaiABQShqIQEoAgBFDQELCyADQQhqIAtBASAIEJ0DIAMoAgwhASADKAIIDQJBoL/kAC0AABogCygCnAMhCEEYEIQBIgRFDQcgBEIANwIIIARCgICAgIABNwIAIABBATsBJCAAIAU2AiAgACAMNgIcIABBADYCGCAAIAE2AgwgACAONgIIIAAgBzYCBCAAIBE2AgAgBEEQakIANwIAIANBhARqQQA7AQAgACACIAggAiAISxs2AhQgACACIAggAiAISRs2AhAgA0EANgL4AyAD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aiAHQSBqKAIANgIAIAhBGGogB0EYaikCADcCACAMIAdBEGopAgA3AgAgCSAHQQhqKQIANwIAIAMgBDYCaAwBCyADQegAaiAKEDIgBSgCAEElRg0AIAUQ6AMLIAUgAykDaDcDACAFQSBqIANBiAFqKQMANwMAIAVBGGogA0GAAWopAwA3AwAgBUEQaiADQfgAaikDADcDACAFQQhqIANB8ABqKQMANwMAIAUoAgAiBkElRg0BCyAGQQlGDQELIANBKGogAUEAQQAQ+QEgAy0APEECRw0BIAMoAighBAwQCyABQSU2AsgCIAggCykCADcCACABIAEpA+ACNwOYAyAMIA0oAgA2AgAgCSAOKQIANwIAIANBCTYCaCADQegAahDoAyADQRBqIAEQ2gIgAygCFCEEIAMoAhANDwJAAkACQCAFKAIAIgZBJUYEQCABKALwAiEGIAFBJTYC8AICQCAGQSVHBEAgCCAHKQIANwIAIAhBIGogB0EgaigCADYCACAIQRhqIAdBGGopAgA3AgAgDCAHQRBqKQIANwIAIAkgB0EIaikCADcCACADIAY2AmgMAQsgA0HoAGogChAyIAUoAgBBJUYNACAFEOgDCyAFIAMpA2g3AwAgBUEgaiADQYgBaikDADcDACAFQRhqIANBgAFqKQMANwMAIAVBEGogA0H4AGopAwA3AwAgBUEIaiADQfAAaikDADcDACAFKAIAIgZBJUYNAQsgBkEKRg0BCyADQfAAaiAKEN0HIANB8MzfADYCbCADQTQ6AGggCkHwAkG4AiAFKAIAQSVGIgYbaigCACICIApB9AJBvAIgBhtqKAIAIgYgAiAGSRsgAiAGIAIgBksbIANB6ABqEO8bIQIgBSgCACIGQSVGBEAgASgC8AIhBiABQSU2AvACAkAgBkElRwRAIANBjAFqIAdBIGooAgA2AgAgA0GEAWogB0EYaikCADcCACADQfwAaiAHQRBqKQIANwIAIANB9ABqIAdBCGopAgA3AgAgAyAGNgJoIAMgBykCADcCbAwBCyADQegAaiAKEDIgBSgCAEElRg0AIAUQ6AMLIAUgAykDaDcDACAFQSBqIANBiAFqKQMANwMAIAVBGGogA0GAAWopAwA3AwAgBUEQaiADQfgAaikDADcDACAFQQhqIANB8ABqKQMANwMAIAUoAgAiBkElRg0RCyAGQSRGDQEMEAsgAUElNgLIAiAIIAspAgA3AgAgCyADKQJENwIAIAwgDSgCADYCACAJIA4pAgA3AgAgDiADQcwAaikCADcCACABKQPgAiEXIA0gA0HUAGopAgA3AgAgC0EYaiADQdwAaikCADcCACALQSBqIANB5ABqKAIANgIAIANBCjYCaCABIBc3A5gDIANB6ABqEOgDDAsLIAFBJTYCyAIgASgCzAIhBiALIAMpAkQ3AgAgASABKQPgAjcDmAMgC0EIaiADQcwAaikCADcCACALQRBqIANB1ABqKQIANwIAIAtBGGogA0HcAGopAgA3AgAgC0EgaiADQeQAaigCADYCACABIAYQwAgMDgsgA0H4AGoiBiADQThqKQMANwMAIANB8ABqIg0gA0EwaikDADcDACADIAMpAyg3A2hBoL/kAC0AABpBwAAQhAEiBEUNDCAEQRo2AgAgBCADKQNoNwMIIARBEGogDSkDADcDACAEQRhqIAYpAwA3AwAgBEEgaiADQYABaikDADcDACAEQShqIANBiAFqKQMANwMAIARBMGogA0GQAWopAwA3AwAgBEE4aiADQZgBaikDADcDACADQQU6AHAgAyAENgJoIANBCGogASADQegAakEAQQEQqAUgAygCDCEEIAMoAghFDQkMDgsgDw0BCyAAIAMpAhw3AgAgAEEIaiADQSRqKAIANgIADA0LIAEoAvACIQQgAUElNgLwAgJAIARBJUcEQCADQYwBaiAHQSBqKAIANgIAIANBhAFqIAdBGGopAgA3AgAgA0H8AGogB0EQaikCADcCACADQfQAaiAHQQhqKQIANwIAIAMgBDYCaCADIAcpAgA3AmwMAQsgA0HoAGogChAyIAUoAgBBJUYNACAFEOgDCyAFIAMpA2g3AwAgBUEgaiADQYgBaikDADcDACAFQRhqIANBgAFqKQMANwMAIAVBEGogA0H4AGopAwA3AwAgBUEIaiADQfAAaikDADcDACAFKAIAIgZBJUYNAQsgBkECRw0EIAEtANACQQJHDQQgAS0A0QJBG0cNBCABLQC7AkEBcQ0EIAIgAS0AvQIiAkEBcXINASABKALgAiECIAEoAuQCIQQgA0EOOgBoIAIgBCACIARJGyACIAQgAiAESxsgA0HoAGoQ7xshBCAKEL8KIgJFDQogAigCAEEkRw0KIAEgASkD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AkACQAJAAkACQAJAIAFBAWtBD08EQCABQfD//wBxQRBGDQEgAUEga0HfAEkNAiABQf8Aa0GBAUkNCiABQajAAGsOAgQFAwsgA0GQAWoiBEGw6dgAQQMQ4wYgA0EBNgKkASADQaiP4QA2AqABIANCATcCrAEgA0HnATYC5AEgAyABOgCQAiADIANB4AFqNgKoASADIANBkAJqNgLgASAEIANBoAFqEIAVRQ0QQcCC4QBBKyADQa8CakHs5dgAQbTr2AAQsRQACyADQZABaiIEQdbo2ABBAhDjBiADQQE2AqQBIANBqI/hADYCoAEgA0IBNwKsASADQecBNgLkASADIAE6AJACIAMgA0HgAWo2AqgBIAMgA0GQAmo2AuABIAQgA0GgAWoQgBVFDQ9BwILhAEErIANBrwJqQezl2ABBpOvYABCxFAALIANBkAFqIAEQ9yMMDgsgAUH//QNGDQIgAUGAAUkNAyABQf//A0sNBSAKQQFxDQQgA0GQAWogARD3IwwNCyADQZABakHE6NgAQQYQ4wYMDAsgA0GQAWpByujYAEEGEOMGDAsLIANBkAFqQdDo2ABBBhDjBgwKCyADQZABaiABEPcjDAkLIANBuQI2ApQCIAMgATsBhAEgA0EBNgL0ASADQQE2AuQBIANB9OnYADYC4AEgA0EBNgLsASADIANBhAFqNgKQAiADQQM6ALwBIANBCDYCuAEgA0IgNwKwASADQoCAgIDAADcCqAEgA0ECNgKgASADIANBoAFqNgLwASADIANBkAJqNgLoASADQZABaiADQeABahCAFUUNCEHAguEAQSsgA0GvAmpB7OXYAEHU6tgAELEUAAsCQCALRQRAIApBAXENASADQZABaiABEPcjDAkLIAMgAUGAgARrQQp2QYCwA2o2ApwBIAMgAUH/B3FBgLgDcjYChAEgA0HOADYCnAIgA0HOADYClAIgA0ECNgL0ASADQQI2AuQBIANB9OrYADYC4AEgAyADQYQBajYCmAIgAyADQZwBajYCkAIgA0EDOgDcASADQQg2AtgBIANCoICAgBA3AtABIANCgICAgMAANwLIASADQQI2AsABIANBAzoAvAEgA0EINgK4ASADQiA3ArABIANCgICAgMAANwKoASADQQI2AqABIAMgA0GgAWo2AvABIANBAjYC7AEgAyADQZACajYC6AEgA0GQAWogA0HgAWoQgBVFDQhBwILhAEErIANBrwJqQezl2ABBhOvYABCxFAALIANBzgA2ApQCIAMgATYChAEgA0EBNgL0ASADQQI2AuQBIANBgOrYADYC4AEgA0EBNgLsASADIANBhAFqNgKQAiADQQM6ALwBIANBCDYCuAEgA0IgNwKwASADQoCAgIDAADcCqAEgA0ECNgKgASADIANBoAFqNgLwASADIANBkAJqNgLoASADQZABaiADQeABahCAFUUNB0HAguEAQSsgA0GvAmpB7OXYAEHk6tgAELEUAAsgDA0CIANBkAFqIAEQ9yMMBgsgA0HgAWoiARClJxogARD+JSEBDAILIANBkAFqIgFB3AAQ9yMgASAIEPcjDAQLIANBkAFqIgRB1ujYAEECEOMGIANBATYCpAEgA0Goj+EANgKgASADQgE3AqwBIANB5wE2AuQBIAMgAToAkAIgAyADQeABajYCqAEgAyADQZACajYC4AEgBCADQaABahCAFUUNA0HAguEAQSsgA0GvAmpB7OXYAEGU69gAELEUAAsCQAJAAkACQCABBEAgASgCAEEgckHkAEYNAQsgBg0BIANBkAFqQdwAEPcjDAYLIANBOGpBCBDoHSADQQA2AqgBIAMgAykDODcCoAEgA0GgAWoiBEHcABCxCiAEQfUAELEKIAYNAQwCCyADQZABakHg6dgAQQIQ4wYMBAsgA0GgAWpB+wAQsQoLIANBoAFqIAEoAgAQsQogA0HgAWoQpScaQQMhBAJAAkACQAJAAkACQANAIARFBEAgBkUNAgwDCyADQeABahClJyIBQYCAxABGIAFBMGtBCkkgAUHhAGtBBklyRSABQcEAa0EFS3FyRQRAIANBoAFqIAEQsQogBEEBayEEDAELCyAGDQEMAgtBBiEFQQIhASADKAKoASEHIAMoAqQBIQQMAgsgA0GgAWpB/QAQsQogBA0AQQMhASADKAKkASEEIAMoAqgBIgdBAWsiBUEDTw0BDAMLIANBkAFqQeDp2ABBAhDjBiADKAKkASEEDAELAkAgASAHSQRAIAEgBGosAABBv39MDQMMAQsgASAHRw0CCwJAIAUgB0kEQCAEIAVqLAAAQb9/TA0DDAELIAUgB0cNAgsgA0GQAmogASAEaiAFIAFrQRAQyQYgAy0AkAJFBEAgAygClAIiAUH//wNN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BEAgBiAFKQIANwIAIAZBIGogBUEgaigCADYCACAGQRhqIAVBGGopAgA3AgAgBkEQaiAFQRBqKQIANwIAIAZBCGogBUEIaikCADcCACACIAQ2AmgMAQsgAkHoAGogDBAyIAMoAgBBJUYNACADEOgDCyADIAIpA2g3AwAgA0EgaiACQYgBaikDADcDACADQRhqIAJBgAFqKQMANwMAIANBEGogAkH4AGopAwA3AwAgA0EIaiANKQMANwMAIAMoAgAhCQsgAUGcA0HgAiAJQSVGG2ooAgAhFyACQegAaiABQQAQbiACKAJsIRggAigCaCIdQYCAgIB4RwRAIAIoAnAhHgJAAkACQAJAIAMoAgAiC0ElRwRAIAEoAuACIQgMAQsgASgC8AIhBCABQSU2AvACAkAgBEElRwRAIAYgBSkCADcCACAGQSBqIAVBIGooAgA2AgAgBkEYaiAFQRhqKQIANwIAIAZBEGogBUEQaikCADcCACAGQQhqIAVBCGopAgA3AgAgAiAENgJoDAELIAJB6ABqIAwQMiADKAIAQSVGDQAgAxDoAwsgAyACKQNoNwMAIANBIGoiFCACQYgBaiIKKQMANwMAIANBGGoiFiACQYABaiIQKQMANwMAIANBEGoiESACQfgAaiIHKQMANwMAIANBCGoiBCANKQMANwMAIAEoAsgCIgtBJUcEQCABKALgAiEIDAELIAEoApwDIQggASgC8AIhCSABQSU2AvACAkAgCUElRwRAIAYgBSkCADcCACAGQSBqIAVBIGooAgA2AgAgBkEYaiAFQRhqKQIANwIAIAZBEGogBUEQaikCADcCACAGQQhqIAVBCGopAgA3AgAgAiAJNgJoDAELIAJB6ABqIAwQMiADKAIAQSVGDQAgAxDoAwsgAyACKQNoNwMAIBQgCikDADcDACAWIBApAwA3AwAgESAHKQMANwMAIAQgDSkDADcDACADKAIAIgtBJUYNAQsgC0EHRg0BCyACQegAaiABEJIBIAIoAmwhCyACKAJoIhpBB0YNByACQThqIBtBCGooAgA2AgAgAiAbKQIANwMwIAIoAoABIQkgAigCfCEWIAIoAnghECACKAJ0IQcgAigCcCEEDAELIAFBJTYCyAIgBiASKQIANwIAIAEgASkD4AI3A5gDIAZBEGoiFCASQRBqIhEoAgA2AgAgBkEIaiIKIBJBCGoiEykCADcCACACQQc2AmggAkHoAGoiBBDoAyABKAKcAyEOIAQgAUEAEGQgAigCbCEHIAIoAmgiBEEHRg0DIBUgDSkDADcDACAVQRhqIA1BGGopAwA3AwAgFUEQaiANQRBqKQMANwMAIBVBCGogDUEIaikDADcDACACIAc2AkQgAiAENgJAAkAgAygCACILQSVGBEAgASgC8AIhBCABQSU2AvACAkAgBEElRwRAIAYgBSkCADcCACAGQSBqIAVBIGooAgA2AgAgBkEYaiAFQRhqKQIANwIAIBQgBUEQaikCADcCACAKIAVBCGopAgA3AgAgAiAENgJoDAELIAJB6ABqIAwQMiADKAIAQSVGDQAgAxDoAwsgAyACKQNoNwMAIANBIGogAkGIAWopAwA3AwAgA0EYaiACQYABaikDADcDACADQRBqIAJB+ABqKQMANwMAIANBCGogDSkDADcDACADKAIAIgtBJUYNAQsgC0EVRw0AIBItAAANACABQSU2AsgCIAYgEikCADcCACABIAEpA+ACNwOYAyAUIBEoAgA2AgAgCiATKQIANwIAIAJBFTYCaCACQegAaiILEOgDIAJBGGogARCNAyACKAIcIQkgAigCGA0FIAJBEGogAkFAaxDRAyACKAIUIQcgAigCECEEIAJB/wA6AGggASAEIAcgCxDpIkGgv+QALQAAGiABKAKcAyEHQSgQhAEiEEUNBiAQIAIpA0A3AwAgEEEgaiACQeAAaikDADcDACAQQRhqIAJB2ABqKQMANwMAIBBBEGogAkHQAGoiBCkDADcDACAQQQhqIBUpAwA3AwAgBCAIIAcgByAISRs2AgAgFSAJNgIAIAIgEDYCRCACQQQ2AkAgAiAIIAcgByAISxs2AkwLQQAhCQJAIAEtAKACQQJHDQAgAygCACILQSVGBEAgASgC8AIhBCABQSU2AvACAkAgBEElRwRAIAYgBSkCADcCACAGQSBqIAVBIGooAgA2AgAgBkEYaiAFQRhqKQIANwIAIBQgBUEQaikCADcCACAKIAVBCGopAgA3AgAgAiAENgJoDAELIAJB6ABqIAwQMiADKAIAQSVGDQAgAxDoAwsgAyACKQNoNwMAIANBIGogAkGIAWopAwA3AwAgA0EYaiACQYABaikDADcDACADQRBqIAJB+ABqKQMANwMAIANBCGogDSkDADcDACADKAIAIgtBJUYNAQsgC0ETRw0AIAJBCGogAUEBIAEoAuACEJ4GIAIoAgwhCSACKAIIDQULQaC/5AAtAAAaIAEoApwDIQRBKBCEASILRQ0FIAggDiAIIA5JGyEQIAggDiAIIA5LGyEWIAggBCAEIAhJGyEHIAggBCAEIAhLGyEEIAsgAikDQDcDACALQSBqIAJB4ABqKQMANwMAIAtBGGogAkHYAGopAwA3AwAgC0EQaiACQdAAaikDADcDACALQQhqIBUpAwA3AwBBAiEaAkAgAS0AoAJBAkcNACADKAIAIghBJUYEQCABKALwAiEOIAFBJTYC8AICQCAOQSVHBEAgBiAFKQIANwIAIAZBIGogBUEgaigCADYCACAGQRhqIAVBGGopAgA3AgAgFCAFQRBqKQIANwIAIAogBUEIaikCADcCACACIA42AmgMAQsgAkHoAGogDBAyIAMoAgBBJUYNACADEOgDCyADIAIpA2g3AwAgA0EgaiACQYgBaikDADcDACADQRhqIAJBgAFqKQMANwMAIANBEGogAkH4AGopAwA3AwAgA0EIaiANKQMANwMAIAMoAgAiCEElRg0BCyAIQRdHDQAgAUElNgLIAiAGIBIpAgA3AgAgASABKQPgAjcDmAMgFCARKAIANgIAIAogEykCADcCACACQRc2AmggAkHoAGoiCBDoAyABKAKcAyETIAEoApgDIQ4gAkH+ADoAaCABIA4gEyAIEOkiCyAHIQ4gBCETCyAXIAEoApwDIhEgESAXSRshCCACKAIkIA9GBEAgAkEkahCsDCACKAIoIRwLIBkgHGoiCiAaNgIAIApBGGogCTYCACAKQRRqIBY2AgAgCkEQaiAQNgIAIApBDGogBzYCACAKQQhqIAQ2AgAgCkEEaiALNgIAIApBHGogAikDMDcCACAKQSRqIAJBOGooAgA2AgAgCkE4aiAeNgIAIApBNGogGDYCACAKQTBqIB02AgAgCkEsaiAINgIAIApBKGogFyARIBEgF0sbNgIAIAIgD0EBaiIINgIsAkACQAJAIAMoAgAiCUElRgRAIAEoAvACIQQgAUElNgLwAgJAIARBJUcEQCAGIAUpAgA3AgAgBkEgaiAFQSBqKAIANgIAIAZBGGogBUEYaikCADcCACAGQRBqIAVBEGopAgA3AgAgBkEIaiAFQQhqKQIANwIAIAIgBDYCaAwBCyACQegAaiAMEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDaDcDACADQSBqIhQgAkGIAWoiCikDADcDACADQRhqIhYgAkGAAWoiECkDADcDACADQRBqIhEgAkH4AGoiBykDADcDACADQQhqIgQgDSkDADcDACADKAIAIglBJUYNAQsgCUEKRw0BDAILIAEoAvACIQkgAUElNgLwAgJAIAlBJUcEQCAGIAUpAgA3AgAgBkEgaiAFQSBqKAIANgIAIAZBGGogBUEYaikCADcCACAGQRBqIAVBEGopAgA3AgAgBkEIaiAFQQhqKQIANwIAIAIgCTYCaAwBCyACQegAaiAMEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDaDcDACAUIAopAwA3AwAgFiAQKQMANwMAIBEgBykDADcDACAEIA0pAwA3AwAgAygCACIJQSVGDQkLIAlBEEcEQAwJCyABQSU2AsgCIAYgEikCADcCACABIAEpA+ACNwOYAyAGQQhqIgcgEkEIaikCADcCACACQRA2AmggBkEQaiIEIBJBEGooAgA2AgAgAkHoAGoQ6AMgGkECRw0AIAMoAgAiD0ElRgRAIAEoAvACIQ8gAUElNgLwAgJAIA9BJUcEQCAGIAUpAgA3AgAgBkEgaiAFQSBqKAIANgIAIAZBGGogBUEYaikCADcCACAEIAVBEGopAgA3AgAgByAFQQhqKQIANwIAIAIgDzYCaAwBCyACQegAaiAMEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDaDcDACADQSBqIAJBiAFqKQMANwMAIANBGGogAkGAAWopAwA3AwAgA0EQaiACQfgAaikDADcDACADQQhqIA0pAwA3AwAgAygCACIPQSVGDQELIA9BCkcNACABKAKcAyEHIAEoApgDIQQgAkE6OgBoIAEgBCAHIAJB6ABqEOkiCyAZQUBrIRkMAQsLIABBgICAgHg2AgAgACAYNgIEDAYLIABBgICAgHg2AgAgACAHNgIEDAMLIABBgICAgHg2AgAgACAJNgIEIAJBQGsQywsMAgsACyAAQYCAgIB4NgIAIAAgCzYCBAwACyAYIB4QkiUgHSAYEMAqDAELIA9BAWohDyACQfAAaiAMEN0HIAJB2OngADYCbCACQTQ6AGggDEHwAkG4AiADKAIAQSVGIgQbaigCACIHIAxB9AJBvAIgBBtqKAIAIgQgBCAHSxsgByAEIAQgB0kbIAJB6ABqEO8bIQcCQCAMEL8KIgRFDQAgBCgCAEEkRw0AIAEgASkD4AI3A5gDIAEoAsgCIAFBJTYCyAJBJEYEQCABIAEoAswCEMAIDAELQYmE4QBBKEHM698AENUhAAsgAEGAgICAeDYCACAAIAc2AgQLIAIoAigiACAPEOknIAIoAiQgABDBKgwBCyAAIAIpAiQ3AgAgAEEIaiACQSxqKAIANgIACyACQZABaiQAC8UiAhR/An4jAEGQAWsiBCQAIANBADYCAAJAAkACQAJAAkAgAigCECIGIAIoAhQiCUsNAAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAIAIoAgAiEEEBa0ECTwRAQciXxAAgAEFAayAALQBMQQNGGyIOLQAMIg9BAkcNAQsgAygCDEUEQCADIAY2AhwgBEHgAGogAhCDHiAEKAJkIQcgBCgCYCEKQQIgBC0AaEEBRw0OGiAELQBpIQUgAEHYBGoiCBDBL0UNDAwNCyADKAIQIQcCQCADKAIUBEAgB0GAgIDAAHFFDQMgAygCGCIIIAAgASAHEIgkIgUoAgAgBSgCBBCEHkkNAQsgAyADKAIcQQFqIgY2AhxBACEFIAYgCU0NFAwXCyADQQE2AhQgAyAIQQFqNgIYQQAhBUEAIQYgAyAAKAL4BCgC1AJBAUcEfyAAIAEgBxCIJCIAKAIAIAAoAgQgCBDpFAUgBgs2AgQgA0EBNgIAIAMgAygCHDYCCAwWCyACKAIEIQogACgC+AQiDSgCtAIhESADKAIMRQRAIAMgBjYCHCAEQeAAaiACEIMeIAQoAmQhCCAEKAJgIQtBAiAELQBoQQFHDQUaIAQtAGkhByAAQdgEaiIFEMEvRQ0DDAQLIAMoAhAhBwJAIAMoAhQEQCAHQYCAgMAAcUUNAyADKAIYIgggACABIAcQiCQiBSgCACAFKAIEEIQeSQ0BCyADIAMoAhxBAWoiBjYCHEEAIQUgBiAJTQ0KDBYLIANBATYCFCADIAhBAWo2AhhBACEFQQAhBiADIA0oAtQCQQFHBH8gACABIAcQiCQiACgCACAAKAIEIAgQ6RQFIAYLNgIEIANBATYCACADIAMoAhw2AggMFQtBvOrDAEEfQdzqwwAQ1SEAC0G86sMAQR9B3OrDABDVIQALIAUgBxC+HkUNACAEIAetQiCGQgSENwNIDAILIAAgB2pB2ABqLQAACyIHIQUCfwJAAkACQCALQQFrDgIAAQILIAVBBmohBQwBCyAALQBRQQFxRQRAIAQgCK1CIIZCAoQ3A0gMAwsgDSgC1AIgCEsEQCAIQQZsIAVqQQxqIQUMAQsgABDrGwwBCyABKAKIASIMIAVNDQIgASgChAEgBUECdGooAgALIgVBAE4EQCAEQQU2AkggBCAFNgJMDAQLIAQgATYCfCAEIAA2AnggBEHIAGogBEH4AGogCyAIIAcQjwEgBCgCSEEFRg0DCyAEKQNIIhhCIIinIQACQAJAQQIgGKciAUEDayICIAJBAk8bQQFrDgIAAQoLIAZFDQIgACAGQQFrEIYkIQUMEAsgASAAEIIkIQUMDwsgBSAMQczrwwAQ5xYAC0GI6sMAQSRBrOrDABDJGQALIAQoAkwhByADKAIcIQYLIAEoArABQQFxBEAgASABKAJwIAEoArQBIgUgASgCuAEiCGsgCCAFayAFIAhLG2o2AnALIAEgBjYCuAEgASAGNgK0ASABQQE2ArABAkAgBiAJTwRAIAIoAgwhCAwBCyAOQQAgD0ECRxshDiAAQdgAaiESIABB2ARqIQ8gCUEBaiETIABB2AJqIRQgCkEGbEEMaiEVIAqtQiCGQgKEIRggAigCDCEIIAIoAgghCyAALQBRQQFxIRYDQAJAAn8CQAJAAkACQAJAAkACfwJAAkAgBiAISQRAAkACQCABKAJ8IgwgFCAGIAtqLQAAIgZqLQAAIAdB////P3FqIgVLBEAgASgCeCAFQQJ0aigCACIFQQBIBEAgBCABNgJkIAQgADYCYCAEQUBrIARB4ABqIAcgBkEIdBCFASAEKAJAQQFxDQMgBCgCRCEFCyAFQf///z9NBEAgAygCHCEHDAwLIAMgBTYCECADQQE2AgwgBUGAgICAAXFFDQogBEHIAGogDigCACAOKAIEIgcoAghBAWtBeHFqQQhqIAsgCCADKAIcIAkgBygCIBEIACAEKAJIQQFHDRogBCgCTCIGIAMoAhwiB00NCyADIAY2AhwgEUUNDCAEIAY2AlggBCAJNgJcIAggCUkgBiATS3INAUECIAZBAWsiDCAITw0GGiALIAxqLQAAIQcgDxDBL0UNBAwFCyAFIAxB6OnDABDnFgALIARBAjYCZCAEQYib4AA2AmAgBEICNwJsIARBDDYChAEgBEGAATYCfCAEIAg2AogBIAQgBEH4AGo2AmggBCAEQYgBajYCgAEgBCAEQdgAajYCeCAEQeAAakGYm+AAEJImAAsgAygCHBDVJSEFDBkLIAYgCEH47cMAEOcWAAsgDyAHEL4eRQ0AIAQgB61CIIZCBIQ3A3gMAgsgByASai0AAAsiB0H/AXEhBQJ/AkACQAJAIBBBAWsOAgABAgsgBUEGaiEFDAELIBZFBEAgBCAYNwN4DAMLIA0oAtQCIApLBEAgBSAVaiEFDAELIAAQ6xsMAQsgASgCiAEiFyAFTQ0CIAEoAoQBIAVBAnRqKAIACyIFQQBOBEAgBEEFNgJ4IAQgBTYCfAwDCyAEIAE2AmQgBCAANgJgIARB+ABqIARB4ABqIBAgCiAHEI8BIAQoAnhBBUYNAgsgBCkDeCIZQiCIIRgCQAJAAkBBAiAZpyIAQQNrIgEgAUECTxtBAWsOAgECAAsgBhDVJSEFDBYLIBinIAwQhiQhBQwVCyAAIBinEIIkIQUMFAsgBSAXQczrwwAQ5xYACyADKAIcIQYgBCgCfAwDCwJAAkAgBUGAgIDAAHFFBEAgBUGAgICABHENASAFQYCAgIACcUUNAiABIAMoAhwQzR4gCCADKAIcIgBLBEAgACALai0AACAAEIYkIQUMFQsgACAIQZjuwwAQ5xYACyADQoGAgIAQNwIUIAMgACABIAUQ1iU2AgQgA0EBNgIAIAMgAygCHCIANgIIIAEgABDNHgwRCyABIAMoAhwQzR4MEAsMFQsgAyAHQQFqIgY2AhwgASgCsAFFDQIgASAGNgK4AQsgBQshByAGIAlJDQEMAgsLQezqwwBBH0GM68MAEMkZAAsCQAJAAkACQAJ/AkACQAJAAkAgCCAJTQRAIAEoAnwiBSAALQDXBEEBaiIKIAdB////P3FqIgJNDQYgASgCeCACQQJ0aigCACIGQQBIBEAgBCABNgJkIAQgADYCYCAEQThqIARB4ABqIAcgCkEQdEEBchCFASAEKAI4QQFxDQIgBCgCPCEGC0EAIQUgBkGAgIDAAHENAgwICyABKAJ8IgYgACACKAIIIAlqLQAAIgJqQdgCai0AACAHQf///z9xaiIFTQ0GIAEoAnggBUECdGooAgAiBkEASARAIAQgATYCZCAEIAA2AmAgBEEwaiAEQeAAaiAHIAJBCHQQhQEgBCgCMEEBcQ0DIAQoAjQhBgsgBkGAgIDAAHENA0EAIAZBgICAgAJxRQ0EGiACIAkQhiQMBAsgCBDVJSEFDAcLIAAgASAGENYlIQAgAyAINgIIIAMgADYCBCADQQE2AgAMBQsgCRDVJSEFDAULIAAgASAGENYlIQAgAyAJNgIIIAMgADYCBCADQQE2AgBBAAshBSAGIQcMAwsgAiAFQfjpwwAQ5xYACyAFIAZB6OnDABDnFgALIAYhBwsgAyAHNgIQIANBATYCDCADKAIABEAgA0KBgICAEDcCFAsgASgCsAEgAUEANgKwAUEBcQRAIAEgASgCcCABKAK0ASIAIAlrIAkgAGsgACAJSxtqNgJwDAwLQZzrwwBBH0G868MAEMkZAAsgBEEgaiAIIAVBA3ZBEHFqIggpAwAgCEEIaikDACAFQf8AcRD7FyAEKQMgQgGDUA0AIAQgBa1CIIZCBIQ3A0gMAgsgACAFakHYAGotAAALIghB/wFxIQUCfwJAAkACQCAKQQFrDgIAAQILIAVBBmohBQwBCyAALQBRQQFxRQRAIAQgB61CIIZCAoQ3A0gMAwsgACgC+AQoAtQCIAdLBEAgB0EGbCAFakEMaiEFDAELIAAQ6xsMAQsgASgCiAEiCyAFTQ0DIAEoAoQBIAVBAnRqKAIACyIFQQBOBEAgBEEFNgJIIAQgBTYCTAwFCyAEIAE2AnwgBCAANgJ4IARByABqIARB+ABqIAogByAIEI8BIAQoAkhBBUYNBAsgBCkDSCIYQiCIpyEAAkACQEECIBinIgFBA2siAiACQQJPG0EBaw4CAAECCyAGRQ0DIAAgBkEBaxCGJCEFDAgLIAEgABCCJCEFDAcLIAYQ1SUhBQwGCyAFIAtBzOvDABDnFgALQYjqwwBBJEGs6sMAEMkZAAsgBCgCTCEHIAMoAhwhBgsgASgCsAFBAXEEQCABIAEoAnAgASgCtAEiBSABKAK4ASIIayAIIAVrIAUgCEsbajYCcAsgASAGNgK4ASABIAY2ArQBIAFBATYCsAEgBiAJTwRAIAIoAgwhCAwCCyAAQdgCaiELIAIoAgwhCCACKAIIIQoCQAJAAkACQAJAAkACQANAIAYgCE8NByABKAJ8Ig0gCyAGIApqLQAAIgZqLQAAIAdB////P3FqIgVNDQIgASgCeCAFQQJ0aigCACIFQQBIBEAgBCABNgJkIAQgADYCYCAEQRhqIARB4ABqIAcgBkEIdBCFASAEKAIYQQFxDQQgBCgCHCEFCyAFQf///z9LBEAgAyAFNgIQIANBATYCDCAFQYCAgIABcUUNAgsgAyADKAIcQQFqIgY2AhwgASgCsAFFDQQgASAGNgK4ASAFIQcgBiAJSQ0ACwwICyAFQYCAgMAAcQ0DIAVBgICAgARxDQQgBUGAgICAAnFFDQwgASADKAIcEM0eIAggAygCHCIASwRAIAAgCmotAAAgABCGJCEFDAkLIAAgCEGY7sMAEOcWAAsgBSANQejpwwAQ5xYACyADKAIcENUlIQUMBgtB7OrDAEEfQYzrwwAQyRkACyADQoGAgIAQNwIUIAMgACABIAUQ1iU2AgQgA0EBNgIAIAMgAygCHCIANgIIIAEgABDNHgwCCyABIAMoAhwQzR4MAQsgBiAIQfjtwwAQ5xYAC0EAIQUMAQsCQAJAAkACQCAIIAlNBEAgASgCfCIFIAAtANcEQQFqIgogB0H///8/cWoiAk0NBiABKAJ4IAJBAnRqKAIAIgZBAEgEQCAEIAE2AmQgBCAANgJgIARBEGogBEHgAGogByAKQRB0QQFyEIUBIAQoAhBBAXENAiAEKAIUIQYLQQAhBSAGQYCAgMAAcUUNBCAAIAEgBhDWJSEAIAMgCDYCCCADIAA2AgQgA0EBNgIADAQLIAEoAnwiBiAAIAIoAgggCWotAAAiAmpB2AJqLQAAIAdB////P3FqIgVNDQYgASgCeCAFQQJ0aigCACIGQQBIBEAgBCABNgJkIAQgADYCYCAEQQhqIARB4ABqIAcgAkEIdBCFASAEKAIIQQFxDQIgBCgCDCEGCyAGQYCAgMAAcQ0CQQAhBSAGQYCAgIACcUUNAyACIAkQhiQhBQwDCyAIENUlIQUgByEGDAILIAkQ1SUhBSAHIQYMAQtBACEFQQAhByAAKAL4BCgC1AJBAUcEQCAAIAEgBhCIJCIAKAIAIAAoAgRBABDpFCEHCyADIAk2AgggAyAHNgIEIANBATYCAAsgAyAGNgIQIANBATYCDCADKAIABEAgA0KBgICAEDcCFAsgASgCsAEgAUEANgKwAUEBcUUNAyABIAEoAnAgASgCtAEiACAJayAJIABrIAAgCUsbajYCcAsgBEGQAWokACAFDwsgAiAFQfjpwwAQ5xYACyAFIAZB6OnDABDnFgALQZzrwwBBH0G868MAEMkZAAsgBEEBNgJkIARBoO3DADYCYCAEQgA3AmwgBCAEQYwBajYCaCAEQeAAakGI7sMAEJImAAueIAIsfwJ+IwBBsAJrIgIkACABKAIEIQMgAkHQAWogASgCCCIaQQhB2AAQ3hAgAigC1AEhEwJAAkACQAJAIAIoAtABQQFHBEAgAigC2AEhGwJAIBNFDQAgAyAaQdgAbGohIyACQe0BaiEcIAJBgAJqIQ8gAkGAAWohFCACQfwAaiEkIAJBBHIhJSACQQhqIQwgEyEdQQAhAQNAIAMgI0YNASABIR4CQAJAAkACQAJAAkACQAJAAkACQCADKAIAIgFBBGtBACABQQVrQQhJG0EBaw4IAQIDBAUGBwgACyADKAJMISYgAygCPCEnIAMoAjghKCACQdgAaiADELcFIAMoAkQhKSACQdABaiADKAJIIh9BCEHAABDeECACKALUASEFIAIoAtABQQFGDQwgAigC2AEhIAJAIAVFDQAgH0EGdCEqQQAhBiAFIREDQCAGICpGDQECfyAGIClqIgsoAgBBB0YEQCALQSxqKAIAIRUgC0EoaigCACEIIAJBsAFqIAtBMGoQvQkgC0E9ai0AACESIAtBPGotAAAhISALQT5qLQAAISICQCALQRxqIg4tAAAiDUECRwRAIAtBCGoiASgCACEJIAtBFGooAgAhFiALQRBqKAIAIRcgC0EMaigCACEHIAtBGGooAgAhCiABKQMAIi5CA4NQBEAgLqciASABKAIAIgFBAWo2AgAgAUEASA0WIA4tAAAhDQsgC0EgaigCACIQRQRAQQAhAQwCCxC/KSEBIBApAgQhLiAQKAIAIRgQwCkgAkHQAWoiBCAYEH0gBEHgABCBCSEQIAEgLjcCBCABIBA2AgAMAQsgC0EUaigCACEWIAtBEGooAgAhFyALQQhqKAIAIQEQwSkhCSACQdABaiINIAEQlwMgCUEgaiACQfABaiIZKQMANwMAIAlBGGogAkHoAWoiBCkDADcDACAJQRBqIAJB4AFqIg4pAwA3AwAgCUEIaiACQdgBaiIKKQMANwMAIAkgAikD0AE3AwAgC0EMaigCACEBEL4pIQcgDSABEDUgB0E4aiACQYgCaikDADcDACAHQTBqIA8pAwA3AwAgB0EoaiACQfgBaikDADcDACAHQSBqIBkpAwA3AwAgB0EYaiAEKQMANwMAIAdBEGogDikDADcDACAHQQhqIAopAwA3AwAgByACKQPQATcDAEECIQ0gGCEBIBAhCgsgAkGoAWogAkG4AWooAgA2AgAgAiACKQOwATcDoAEgASEYIAohEEEHDAELIAtBKGooAgAhCCALQSxqKAIAIRUgDyALQTBqEL0JIAJB0AFqIAsQlwMgAkGuAWogHEECai0AADoAACACQagBaiAPQQhqKAIANgIAIAIgFTYC/AEgAiAINgL4ASACIBwvAAA7AawBIAIgDykDADcDoAEgAigC1AEhKyACKALYASEJIAIoAtwBIQcgAigC4AEhFyACKALkASEWIAIoAugBIQogAi0A7AEhDSACKALwASEBIAIoAvQBISwgAi0AjwIhLSACLQCOAiEiIAItAI0CIRIgAi0AjAIhISACKALQAQshDiAGICBqIgQgDjYCACAEQRxqIA06AAAgBEEYaiAKNgIAIARBFGogFjYCACAEQRBqIBc2AgAgBEEMaiAHNgIAIARBCGogCTYCACAEQQRqICs2AgAgBEEdaiACLwGsATsAACAEQR9qIAJBrgFqLQAAOgAAIARBLGogFTYCACAEQShqIAg2AgAgBEEkaiAsNgIAIARBIGogATYCACAEQTBqIAIpA6ABNwMAIARBOGogAkGoAWooAgA2AgAgBEE/aiAtOgAAIARBPmogIjoAACAEQT1qIBI6AAAgBEE8aiAhOgAAIAZBQGshBiARQQFrIhENAAsLQYCAgIB4IQgCQCADKAIgQYCAgIB4Rg0AIAMoAiQhDiADKAI0IRIgAygCMCERIAMoAiwhDSACQdABaiADKAIoIgpBCEEwEN4QIAIoAtQBIQggAigC0AFBAUYNDiACKALYASEJIAhFBEBBACEIDAELIApBMGwhAUEAIQYgCCEHA0AgASAGRg0BIAJB0AFqIAYgDmoQPyAGIAlqIgRBKGogAkH4AWopAwA3AwAgBEEgaiACQfABaikDADcDACAEQRhqIAJB6AFqKQMANwMAIARBEGogAkHgAWopAwA3AwAgBEEIaiACQdgBaikDADcDACAEIAIpA9ABNwMAIAZBMGohBiAHQQFrIgcNAAsLIAwgAkHgAGopAwA3AwAgAkEQaiACQegAaikDADcDACACQRhqIAJB8ABqKQMANwMAIAIgAikDWDcDACACICY2AkwgAiAfNgJIIAIgIDYCRCACIAU2AkAgAiAnNgI8IAIgKDYCOCACIBI2AjQgAiARNgIwIAIgDTYCLCACIAo2AiggAiAJNgIkIAIgCDYCICACIAMvAVA7AVAMCAsgAykDKCEuIAJB0AFqIANBCGoQtwUgAkH4AWoiASADKAIwELgFNgIAIAJB8AFqIC43AwAgDEEgaiAuNwMAIAwgAikD0AE3AwAgDEEIaiACQdgBaikDADcDACAMQRBqIAJB4AFqKQMANwMAIAxBGGogAkHoAWopAwA3AwAgAiADLQA0OgD8ASACIAMoADU2AP0BIAxBKGogASkDADcDACACIAMtADk6AIECIAxBMGogDykDADcDACACQQU2AgAMBwsgAygCFCEHIAMoAhAhCCADKAIcIQUgAygCGCEJIAMpAwgiLkIDg1AEQCAupyIBIAEoAgAiAUEBajYCACABQQBIDQ4LIAIgAygCIBC4BTYCICACIAU2AhwgAiAJNgIYIAIgBzYCFCACIAg2AhAgAiAuNwMIIAJBBjYCACACIAMvASg7ASggAiADKAIkNgIkDAYLIAMoAiwhCSADKAIoIQcgAkGwAWogA0EIahC3BUEAIQZBACEBIAMoAjwiBQRAEL4pIQEgAkHQAWogBRA1IAFBOGogAkGIAmopAwA3AwAgAUEwaiAPKQMANwMAIAFBKGogAkH4AWopAwA3AwAgAUEgaiACQfABaikDADcDACABQRhqIAJB6AFqKQMANwMAIAFBEGogAkHgAWopAwA3AwAgAUEIaiACQdgBaikDADcDACABIAIpA9ABNwMACyADKAJAIgUEQBC/KSEGIAUpAgQhLiAFKAIAIQgQwCkgAkHQAWoiBCAIEH0gBEHgABCBCSEFIAYgLjcCBCAGIAU2AgALIAMtAEQhBSAUIANBMGoQvQkgAkHgAGogAkG4AWopAwA3AwAgAkHoAGogAkHAAWopAwA3AwAgAkHwAGogAkHIAWopAwA3AwAgAiAJNgJ8IAIgBzYCeCACIAU6AJQBIAIgBjYCkAEgAiABNgKMASACIAIpA7ABNwNYIAIgAy0ASzoAmwEgAiADLwBJOwCZASACIAMoAEU2AJUBIAwgAkHYAGpByAAQgQkaIAJBBzYCAAwFCyADKAIUIQkgAygCECEHIAMoAiAhGSADKAIcIQQgAygCGCEIIAMpAwgiL0IDg1AEQCAvpyIBIAEoAgAiAUEBajYCACABQQBIDQwLQQAhBkEAIQEgAygCJCIKBEAQvikhASACQdABaiAKEDUgAUE4aiACQYgCaikDADcDACABQTBqIA8pAwA3AwAgAUEoaiACQfgBaikDADcDACABQSBqIAJB8AFqKQMANwMAIAFBGGogAkHoAWopAwA3AwAgAUEQaiACQeABaikDADcDACABQQhqIAJB2AFqKQMANwMAIAEgAikD0AE3AwALIAMoAigiCgRAEL8pIQYgCikCBCEuIAooAgAhBRDAKSACQdABaiINIAUQfSANQeAAEIEJIQogBiAuNwIEIAYgCjYCAAsgAy0AOSEOICQgA0EsahC9CSACQeAAaiINIAc2AgAgAkHoAGoiByAINgIAIAJB8ABqIgogGTYCACACQfgAaiIIIAY2AgAgAkGIAWoiBSADLQA4OgAAIAwgLzcDACAMQShqIBQpAwA3AwAgAiAJNgJkIAxBCGogDSkDADcDACACIAQ2AmwgDEEQaiAHKQMANwMAIAIgATYCdCAMQRhqIAopAwA3AwAgDEEgaiAIKQMANwMAIAIgDjoAiQEgAiADKAE6NgGKASAMQTBqIAUpAwA3AwAgAiAvNwNYIAJBCDYCAAwECyAlIANBBGoQnAkgAkEJNgIADAMLIAJBCjYCACACIAMpAgQ3AgQMAgsgAygCCCEGIAMoAhghCiADKAIUIQ0gAygCECERIAMoAiAhEiADKAIcIQ4gAkHQAWogAygCDCIEQQhBMBDeECACKALUASEIIAIoAtABQQFGDQcgAigC2AEhBQJAIAhFDQAgBEEwbCEHIAUhASAIIQkDQCAHRQ0BIAJB0AFqIAYQPyABQShqIAJB+AFqKQMANwMAIAFBIGogAkHwAWopAwA3AwAgAUEYaiACQegBaikDADcDACABQRBqIAJB4AFqKQMANwMAIAFBCGogAkHYAWopAwA3AwAgASACKQPQATcDACAHQTBrIQcgAUEwaiEBIAZBMGohBiAJQQFrIgkNAAsLIAIgEjYCICACIA42AhwgAiAKNgIYIAIgDTYCFCACIBE2AhAgAiAENgIMIAIgBTYCCCACIAg2AgQgAkELNgIADAELIAMoAiwhCSADKAIoIQcCQCADKAIIQQVGBEAgAygCHCEIIAMoAhghBSADKQMQIi5CA4NQBEAgLqciASABKAIAIgFBAWo2AgAgAUEASA0KCyACIAg2AsQBIAIgBTYCwAEgAiAuNwO4ASACQQU2ArABDAELIAJBsAFqIANBCGoQtwULQQAhBkEAIQEgAygCPCIFBEAQvikhASACQdABaiAFEDUgAUE4aiACQYgCaikDADcDACABQTBqIA8pAwA3AwAgAUEoaiACQfgBaikDADcDACABQSBqIAJB8AFqKQMANwMAIAFBGGogAkHoAWopAwA3AwAgAUEQaiACQeABaikDADcDACABQQhqIAJB2AFqKQMANwMAIAEgAikD0AE3AwALIAMoAkAiBQRAEL8pIQYgBSkCBCEuIAUoAgAhCBDAKSACQdABaiIEIAgQfSAEQeAAEIEJIQUgBiAuNwIEIAYgBTYCAAsgAy0ARCEFIBQgA0EwahC9CSACQeAAaiACQbgBaikDADcDACACQegAaiACQcABaikDADcDACACQfAAaiACQcgBaikDADcDACACIAk2AnwgAiAHNgJ4IAIgBToAlAEgAiAGNgKQASACIAE2AowBIAIgAikDsAE3A1ggAiADKABFNgCVASAMIAJB2ABqQcgAEIEJGiACQQw2AgALIB5BAWohASADQdgAaiEDIBsgHkHYAGxqIAJB2AAQgQkaIB1BAWsiHQ0ACwsgACAaNgIIIAAgGzYCBCAAIBM2AgAgAkGwAmokAA8LIBMgAigC2AEQoy8ACyAFIAIoAtgBEKMvAAsgCCACKALYARCjLwALIAggAigC2AEQoy8LAAv+HgIWfwN+IwBBoANrIgIkAEEDIQ4CQCABKAIEIgMgASgCDEYNACABKAIkIRcgASgCECEUIAJBiAFqIREgAkGAAWohCSACQfgAakEEciEPIAJBGGpBBHIhEiACQSRqIRMCQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACfwJAA0AgASADQQxqNgIEIAMoAgQhBQJ/AkAgAygCACIEBEAgAygCCCEVAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJA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ACACIAkpAwA3A0ggASABKAIQQQFqIhQ2AhAgBkEERwRAIAJBQGsgBykDADcDACACQThqIAgpAwA3AwAgAkEwaiALKQMANwMAIAJBKGogCikDADcDACACQSBqIBApAwA3AwAgAiACKQNINwMYIAYhDgwSCyABKAIEIgMgASgCDEcNAAsMEQsgBSgCFCEGIAUoAhALIQcCQAJAAkACQAJAIANBBWsOAwEEAgALIAhBAWsOBQcICQoLBgsgAkHAAWogBUEYaikDADcDACACQbgBaiAFQRBqKQMAIhg3AwAgAiAFKQMINwOwASARIAJBsAFqEK0TIAJBADYCqAEgAiAYNwOAAQwBCyACQZgDaiAFQSBqKQMANwMAIAJBkANqIAVBGGopAwA3AwAgAiAFKQMQNwOIAyAFKAIoIQMgESACQYgDahCtEyACIAM2AqgBIAIgBjYChAEgAiAHNgKAAQtBASEODAwLIAJBqAJqIhEgBUEgaikDADcDACACQaACaiIVIAVBGGopAwA3AwAgAkGYAmoiECAFQRBqKQMANwMAIAIgBSkDCDcDkAIgAkEYaiABKAIUQQNBASABKAIYLQAAQQFLGyAFKAIoEFQgAigCHCEHIAIoAhgiBkEHRg0BIAJByAJqIgggAkE4aikDADcDACACQcACaiIKIAJBMGopAwA3AwAgAkG4AmoiCyACQShqKQMANwMAIAIgAikDIDcDsAJBACEOQaC/5AAtAAAaQSgQhAEiA0UNACADIAc2AgQgAyAGNgIAIAMgAikDsAI3AwggA0EQaiALKQMANwMAIANBGGogCikDADcDACADQSBqIAgpAwA3AwAgAkH4AWoiByAQKQMANwMAIAJBgAJqIgYgFSkDADcDACACQYgCaiIIIBEpAwA3AwAgAiACKQOQAjcD8AEgAkHoAWogCCkDADcCACACQeABaiAGKQMANwIAIAJB2AFqIAcpAwA3AgAgAiACKQPwATcC0AEgD0EgaiACQewBaigCADYCACAPQRhqIAJB5AFqKQIANwIAIA9BEGogAkHcAWopAgA3AgAgD0EIaiACQdQBaikCADcCACAPIAIpAswBNwIAIAIgAzYCoAEMCwsACyACQZACahDxDEEAIQMMBwsgBSgCFCEDIAUoAhAMBQsgAkEIaiAFQQhqEIcGIAIoAgwhAyACKAIIDAQLIAUo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QagBahC/CCADKAIcIgRByAJqIQUgBEEoaiEGAkACQAJAAkACQAJAAkACQAJAAkACQCAEKALIAkElRwRAIARB4AJqIQsgBEGcA2ohDCAEKALgAiEJDAELIAQoAvACIQEgBEElNgLwAgJAIAFBJUcEQCADQcwBaiAEQZQDaigCADYCACADQcQBaiAEQYwDaikCADcCACADQbwBaiAEQYQDaikCADcCACADQbQBaiAEQfwCaikCADcCACADIAE2AqgBIAMgBCkC9AI3AqwBDAELIANBqAFqIAYQMiAFKAIAQSVGDQAgBRDoAwsgBSADKQOoATcDACAFQSBqIANByAFqKQMANwMAIAVBGGogA0HAAWopAwA3AwAgBUEQaiADQbgBaikDADcDACAFQQhqIANBsAFqKQMANwMAIARB4AJqIQsgBEGcA2ohDCAEQZwDQeACIAQoAsgCIgFBJUYbaigCACEJIAFBJUcNACAEKALwAiEBIARBJTYC8AICQCABQSVHBEAgA0HMAWogBEGUA2ooAgA2AgAgA0HEAWogBEGMA2opAgA3AgAgA0G8AWogBEGEA2opAgA3AgAgA0G0AWogBEH8AmopAgA3AgAgAyABNgKoASADIAQpAvQCNwKsAQwBCyADQagBaiAGEDIgBSgCAEElRg0AIAUQ6AMLIAUgAykDqAE3AwAgBUEgaiADQcgBaikDADcDACAFQRhqIANBwAFqKQMANwMAIAVBEGogA0G4AWopAwA3AwAgBUEIaiADQbABaikDADcDACAFKAIAQSVGDQELIAIgBRCSBg0CIAUoAgBBJUcNAQsgBCgC8AIhASAEQSU2AvACAkAgAUElRwRAIANBzAFqIARBlANqKAIANgIAIANBxAFqIARBjANqKQIANwIAIANBvAFqIARBhANqKQIANwIAIANBtAFqIARB/AJqKQIANwIAIAMgATYCqAEgAyAEKQL0AjcCrAEMAQsgA0GoAWogBhAyIAUoAgBBJUYNACAFEOgDCyAFIAMpA6gBNwMAIAVBIGogA0HIAWopAwA3AwAgBUEYaiADQcABaikDADcDACAFQRBqIANBuAFqKQMANwMAIAVBCGogA0GwAWopAwA3AwAgBSgCAEElRg0CCyADIAU2AoABDAYLIAQoAsgCIQEgBEElNgLIAiAEIAQpA+ACNwOYAyADQbQBaiAEQdQCaikCADcCACADQbwBaiAEQdwCaigCADYCACADIAQpAswCNwKsASADIAE2AqgBIARBzAJqIQogA0GoAWoQ6AMgBCgCyAIiAkElRwRAIAsoAgAhDQwCCyAEKALwAiEBIARBJTYC8AICQCABQSVHBEAgA0HMAWogBEGUA2ooAgA2AgAgA0HEAWogBEGMA2opAgA3AgAgA0G8AWogBEGEA2opAgA3AgAgA0G0AWogBEH8AmopAgA3AgAgAyABNgKoASADIAQpAvQCNwKsAQwBCyADQagBaiAGEDIgBSgCAEElRg0AIAUQ6AMLIAUgAykDqAE3AwAgBUEgaiADQcgBaikDADcDACAFQRhqIANBwAFqKQMANwMAIAVBEGogA0G4AWopAwA3AwAgBUEIaiADQbABaikDADcDACAMIAsgBSgCACICQSVGGygCACENIAJBJUcNASAEKALwAiEBIARBJTYC8AICQCABQSVHBEAgA0HMAWogBEGUA2ooAgA2AgAgA0HEAWogBEGMA2opAgA3AgAgA0G8AWogBEGEA2opAgA3AgAgA0G0AWogBEH8AmopAgA3AgAgAyABNgKoASADIAQpAvQCNwKsAQwBCyADQagBaiAGEDIgBSgCAEElRg0AIAUQ6AMLIAUgAykDqAE3AwAgBUEgaiADQcgBaikDADcDACAFQRhqIANBwAFqKQMANwMAIAVBEGogA0G4AWopAwA3AwAgBUEIaiADQbABaikDADcDACAFKAIAIgJBJUcNASADQfUAaiAEQb8CaikAADcAACADQfAAaiAEQboCaikAADcDACADQegAaiAEQbICaikAADcDACADIAQpAKoCNwNgDAILIARBgAJqKAIAIQEgA0EAOgCoASABIAEgA0GoAWoQ7xshASADQQA2AoABIAFBCGoQiAMgAUEgQQgQohgMBAsCQCACQQJHDQAgBC0A0AINACAELQDRAkEURw0AIANB1QBqIARBvwJqKQAANwAAIANB0ABqIARBugJqKQAANwMAIANByABqIARBsgJqKQAANwMAIAMgBCkAqgI3A0AgBhD0DyIBRQ0AIAEoAgBBAkcNACADQUBrIAEtAAggAUEJai0AABDYDA0AIAYQvwoiAUUEQCAEQYACaigCACEBIANBADoAqAEgASABIANBqAFqEO8bIQJBASEIDAYLIAEoAgBBJEYEQCAEIAQpA+ACNwOYAyAEKALIAiAEQSU2AsgCQSRGBEAgBCgCzAIhAkEBIQgMBwtBiYThAEEoQcDc3wAQ1SEACyAEKALIAiEBIARBJTYCyAIgBCAEKQPgAjcDmAMgA0G0AWogCkEIaikCADcCACADQbwBaiAKQRBqKAIANgIAIAMgCikCADcCrAEgAyABNgKoASADQagBaiICEOgDQQEhDiAGEL8KDQAgBEGAAmooAgAhASADQQA6AKgBIAEgASACEO8bIQJBASEIDAULIANB6ABqIARBsgJqKQAANwMAIANB8ABqIARBugJqKQAANwMAIANB9QBqIARBvwJqKQAANwAAIAMgBCkAqgI3A2AgBCgCyAIiAkElRw0BCyAEKALwAiEBIARBJTYC8AICQCABQSVHBEAgA0HMAWogBEGUA2ooAgA2AgAgA0HEAWogBEGMA2opAgA3AgAgA0G8AWogBEGEA2opAgA3AgAgA0G0AWogBEH8AmopAgA3AgAgAyABNgKoASADIAQpAvQCNwKsAQwBCyADQagBaiAGEDIgBSgCAEElRg0AIAUQ6AMLIAUgAykDqAE3AwAgBUEgaiADQcgBaikDADcDACAFQRhqIANBwAFqKQMANwMAIAVBEGogA0G4AWopAwA3AwAgBUEIaiADQbABaikDADcDACAFKAIAIgJBJUYNAQsgAkECRw0AIANB4ABqIAQtANACIARB0QJqLQAAENgMDQAgBhD0DyIBRQ0AIAEoAgBBAkcNACABLQAIDQAgAS0ACUEORw0AIAYQ9A8aIAQtAJADQQFzIAQoAvACQSVHcSEHCyAHIA5yRQRAIANBEGogBEEAIAkQngYgAygCFCECIAMoAhAhCAwCCyADQagBaiAEEMYDIAMoArABIQFBASEIIAMpA6gBIhFQBEAgASECDAILIAMoArQBIQ9BACECAkACfwJAIAcEQAJAIAUoAgAiAkElRw0AIAQoAvACIQIgBEElNgLwAgJAIAJBJUcEQCADQcwBaiAEQZQDaigCADYCACADQcQBaiAEQYwDaikCADcCACADQbwBaiAEQYQDaikCADcCACADQbQBaiAEQfwCaikCADcCACADIAI2AqgBIAMgBCkC9AI3AqwBDAELIANBqAFqIAYQMiAFKAIAQSVGDQAgBRDoAwsgBSADKQOoATcDACAFQSBq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aikDACEaIAMpAxghGyADQagCakIANwMAIANBoAJqQgA3AwAgA0GYAmpCADcDACADQgA3A5ACIANC88rRy6eM2bL0ADcDiAIgA0KD35Hzlszct+QANwOAAiADQuHklfPW7Nm87AA3A/gBIANC9crNg9es27fzADcD8AEgAiADQfABaiIEEMMGIANBCGogBBCgDCADQRBqKQMAIRwgAykDCCEdQfAAQQgQgykiBCAcNwMgIAQgHTcDGCAEIBo3AxAgBCAbNwMIIAQgGToAaCAEIAUgBmo2AmQgBCAFNgJgIARBADYCXCAEIAE2AlggBCAONgJUIAQgAjYCUCAEQoCAgICAgICAgH83AyggBEKCgICAEDcCACAAKAJsIgEgACgCZEYEQCAAQeQAahD0IAsgACgCaCABQQJ0aiAENgIAIAAgAUEBajYCbCADQagCakIANwMAIANBoAJqQgA3AwAgA0GYAmpCADcDACADQgA3A5ACIANC88rRy6eM2bL0ADcDiAIgA0KD35Hzlszct+QANwOAAiADQuHklfPW7Nm87AA3A/gBIANC9crNg9es27fzADcD8AEgAiADQfABaiIBEMMGIAEgBC0AaBDNESABIAQoAlgiAkEARxDNESACBEAgAiABEMMGCyADKQOgAiEaIAM1AqgCIRsgA0HAAWoiAiADQYACaikDADcDACADQbgBaiIBIANB+AFqKQMANwMAIANByAFqIgUgGiAbQjiGhCIaIANBiAJqKQMAhTcDACADIAMpA/ABNwOwASADQbABaiIGEMAPIAEgASkDAELuAYU3AwAgAyADKQOwASAahTcDsAEgBhClCSACIAIpAwAiGkLdAYU3AwAgBSkDACEbIAEpAwAhHCADKQOwASEdIAYQpQkgBSkDACEeIAEpAwAhHyACKQMAISAgAykDsAEhISAEIAQoAgAiAUEBajYCACABQQBIDQAgAyAgICGFIB+FIB6FIh43A/gBIAMgHCAdhSAbhSAahSIaNwPwASAAQfAAaiEBIBogHhCvIyEbIAMgA0HwAWo2AnwgACgCeEUEQAJAQQAhByMAQUBqIgIkACACIABBgAFqNgIMIAEoAgwhBSACIAJBDGo2AhAgBUF/RwRAAn8CQCABKAIEIgYgBkEBakEDdkEHbCAGQQhJGyIGQQF2IAVNBEAgAkEwakEYIAUgBiAF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AyAFIQYDQCADRQ0DIAJBwAJqIgcgBkE4EIEJGiACQbADaiILIAdBOBCBCRogAiACQbQCajYC7AMgAiACQZgBaiIQNgLoAyALIAJB6ANqELkMIAIoAuADIgcEQCAHIBAQzAQLIAJB+AJqIgcgAkGwA2pBOBCBCRogA0EBayEDIAYgB0E4EIEJQThqIQYMAAsACxCGIiEfIAJBiANqIgQgCkEQaikDADcDACAJIApBCGopAwA3AwAgGUIANwMAIBpCADcAACACIAopAwA3A/gCIAIgHzcDcEHAAEEEELIqIgNCADcCICADQoCAgIDAADcCGCADQgg3AhAgA0IANwIIIANCgICAgMAANwIAIANBKGpCADcCACADQTBqQgA3AgAgA0E1akIANwAAIAIoAogBIQUgAiADNgKIASAFIAJBmAFqIhEQ2wcgBCgCACEGIAkoAgAhDyACKAKEAyEHIAIpA/gCEKwlIR8gAi0AjAMhCyACKAK8ASACQfgCahCYCA0DIAIpA4ADISAgAigCiAMhECACKQP4AhCsJSEhIAItAIwDIRJBwABBBBCyKiIDQgA3AiAgA0KAgICAwAA3AhggA0IINwIQIANCADcCCCADQoCAgIDAADcCACADQShqQgA3AgAgA0EwakIANwIAIANBNWpCADcAACACIAM2AsACIAItAIwBIQMgAkHgAGoQ+AogAiADOgCUASACIAU2ApABIAIgEjoAjAEgAiAQNgKIASACICA3A4ABIAIgITcDeCACQQA2AnAgAkERNgJoIAJBCTYCYEEIQdAAELkuIgNFDQIQhiIhICADQgA3AwAgAyALOgA8IAMgBjYCOCADIAc2AjQgAyAPNgIwIAMgHzcDKCADQgA3AyAgAkHAA2ogBCkDACIfNwMAIAggCSkDACIhNwMAIAlCADcDACAJQQVqQgA3AAAgAyACKQP4AiIiNwMIIANBEGogITcDACADQRhqIB83AwAgAiAiNwOwAyACICA3A/gCIANByABqQQA6AAAgA0IANwNAIAIoAqABIgUgAigCmAFGBEAgERCBIQsgAigCnAEgBUE4bGoiBEIANwIYIAQgDDYCFCAEIA02AhAgBEEBNgIMIAQgAzYCCCAEQoKAgIAQNwMAIARBIGpBADoAACACIAVBAWo2AqABDAULEIYiIR8gAkHAA2oiBCAKQRBqKQMANwMAIAggCkEIaikDADcDACAZQgA3AwAgGkIANwAAIAIgCikDADcDsAMgAiAfNwNwQcgAQQQQsioiA0IANwIwIANBgICAgHg2AhggA0IENwIQIANCADcCCCADQoCAgICAATcCACADQThqQgA3AgAgA0E+akIANwEAIAIoAogBIQUgAiADNgKIASAFIAJBmAFqIhEQlB4gBCgCACEGIAgoAgAhDyACKAK8AyEHIAIpA7ADEKwlIR8gAi0AxAMhCyACKAK8ASACQbADahCYCA0DIAIpA7gDISAgAigCwAMhAyACKQOwAxCsJSEhIAItAMQDIRAgAi0AjAEhEiACQeAAahD4CiACIBI6AJQBIAIgBTYCkAEgAiAQOgCMASACIAM2AogBIAIgIDcDgAEgAiAhNwN4IAJBATYCcCACQRE2AmggAkEJNgJgQQhB0AAQuS4iA0UNASADQgA3AwAgAyACKQOwAzcDCCADQgA3A0AgAyALOgA8IAMgBjYCOCADIAc2AjQgAyAPNgIwIAMgHzcDKCADQgA3AyAgA0HIAGpBADoAACADQRBqIAgpAwA3AwAgA0EYaiAEKQMANwMAIAIoAqABIgUgAigCmAFGBEAgERCBIQsgAigCnAEgBUE4bGoiBEIANwIYIAQgDDYCFCAEIA02AhAgBEEBNgIMIAQgAzYCCCAEQoKAgIAQNwMAIARBIGpBADoAACACIAVBAWo2AqABDA0LIAIoArwCQRxBBBCyKiIDQgA3AgggA0KAgICAgAE3AgAgA0EYakEAOwEAIANBEGpCADcCACACKAJsIQYgAiADNgJsIAYtABghByAGLQAZIQsgBigCFCEQIAYoAhAhEiAGKAIMIRFBBEEcELkuIQMEQCADRQ0BIAMgCzoAGSADIAc6ABggAyAQNgIUIAMgEjYCECADIBE2AgwgAyAENgIIIAMgBTYCBCADIA82AgAgAkHgAGoQ+AogAiADNgJ0IAJBAjYCcCACQRE2AmggAkEJNgJgIAYQ4i4gCCACQbwCaigCADYCACACIAIpArQCNwOwAyACKAKgASIEIAIoApgBRgRAIAJBmAFqEIEhCyACKAKcASAEQThsaiIDIAIpA7ADNwIEIANBAjYCACADQgA3AxggAyAMNgIUIAMgDTYCECADQQxqIAgoAgA2AgAgA0EgakEAOgAAIAIgBEEBajYCoAEMDQsgA0UNACADIAs6ABkgAyAHOgAYIAMgEDYCFCADIBI2AhAgAyARNgIMIAMgBDYCCCADIAU2AgQgAyAPNgIAIAJB4ABqEPgKIAIgDDYClAEgAiANNgKQASACIAM2AmwgAkECNgJoIAJBATYCYCAGEOIuIAJBtAJqEJErDAwLAAsgAikDkAEhIBCGIiEhIAJBwANqIgYgBCkDADcDACAIIAkpAwA3AwAgCUIANwMAIAlBBWpCADcAACACIAIpA/gCNwOwAyACICE3A/gCQcAAQQQQsioiA0IANwIgIANCgICAgMAANwIYIANCCDcCECADQgA3AgggA0KAgICAwAA3AgAgA0EoakIANwIAIANBMGpCADcCACADQTVqQgA3AAAgFCACKQOwAzcCACAUQQhqIAgpAwA3AgAgFEEQaiAGKQMANwIAIAIgAzYCwAIgAi0AjAEhAyACQeAAahD4CiAOIAIpAvwBNwIAIA5BCGogAkGEAmopAgA3AgAgDkEQaiACQYwCaikCADcCACAOQRhqIAJBlAJqKAIANgIAIAJBADYCaCACQQE2AmAgAiAgNwOQASACIAM6AIwBIAIgBTYCiAEgHxDQGgwBCyAVIAIpA7ADNwIAIBVBCGogCCkDADcCACAVQRBqIAQpAwA3AgAgAi0AjAEhAyACKQOQASEgIAJB4ABqEPgKIA4gAikCmAI3AgAgDkEIaiACQaACaikCADcCACAOQRBqIAJBqAJqKQIANwIAIA5BGGogAkGwAmooAgA2AgAgAkEBNgJoIAJBATYCYCACICA3A5ABIAIgAzoAjAEgAiAFNgKIASAfENAaDAkLIAJBwAJqEO0eIAIpA/gCENAaDAgLIBcgAkGYAWoQxgYMBwsgAyAKEJgIGgwGCyACKAJkIAJBmAFqEMwEDAULIAMgAigCZEEoahCYCBoMBAsgCiACQZgBahDaKwwDCyACKAJkIAJBmAFqEMwEDAILAkACQCACKAJoQQFrDgIBAwALIAJBmAFqIAoQrREMAgsgCiACQZgBahDMKAwBCyACKAJ4DQAgAigCbEHQAGwhD0EAIQMgAigCaCEHA0ACQCADIA9HBEACQAJAAkBCAiADIAdqIgQpAwAiH0ICfSIgICBCAlobp0EBaw4CAQIACyAEQQhqIAIoArwBEJIrDAMLIAIoArwBIARBCGoQmAgaDAILIARBIGoiBSkDAEICUgRAIAQgAigCvAEQkisMAgsgBEEIaiEGIARBFGooAgAhDCAEQRBqKAIAIQ0gAgJ+IB+nQQFxRQRAIARBGGooAgAhCyAGKQMAEKwlIR8gAiALNgKQAyACIAw2AowDIAIgDTYCiAMgAiAfNwOAAyACIARBHGotAAA6AJQDQgAMAQsgBikDABCsJSEgIARBGGopAwAiH1BFBEAgHxCsJRoLIAIgHzcDkAMgAiAMNgKMAyACIA02AogDIAIgIDcDgANCAQsiHzcD+AICQCAEKAIADQAgAigCvAEgBhCYCA0AAkAgH1AEQCAGIAkQyA8NAQsgAkHIA2oiBCACQZADaikDADcDACACQcADaiIGIAJBiANqKQMANwMAIAggCSkDADcDACACIAIpA/gCNwOwAyAFEMwsIAVBGGogBCkDADcDACAFQRBqIAYpAwA3AwAgBUEIaiAIKQMANwMAIAUgAikDsAM3AwAMAwsgAkH4AmoQ7ygMAgsgAkH4AmoQ7ygMAQsgFiACQZgBahDaKwwCCyADQdAAaiEDDAALAAsgAkHAAWogAkHgAGpBOBCBCRogAigCGCIDIAIoAhBGBEAgAkEQahCBIQsgAigCFCADQThsaiACQcABakE4EIEJGiACIANBAWo2AhggAkEQaiACKAKcASACKAKgARC0JSACQQA2AqABIAJBmAFqEIUvIBMhAwwACwALjR8CDn8BfiMAQeAAayIDJAAgAigCECEIIANB0ABqIAEgAigCDCIKQQAQwAICQAJ/An8CQAJAIAMtAFBBBEcEQCADKQNQIhFC/wGDQgRSDQELAkACQAJAAkAgCkUNACADQdAAaiABIAoQrSUgAy0AUEEERg0AIAMpA1AiEUL/AYNCBFINAQsgA0EANgI4IANB0ABqIAEgA0E4akGanOAAQQEQ8w4gAy0AUEEERwRAIAMpA1AiEUL/AYNCBFINAgsgAigCCCEGQZCHkAEhByABLQBNRQ0CQQAMBQsgACARNwIADAYLIAAgETcCAAwFCyAGRQRAQQAgCiAIIAEoAkQgASgCSBDnIg0EGgsgA0HQAGogARDtFyADLQBQQQRGDQEgAykDUCIRQv8Bg0IEUQ0BIAAgETcCAAwECyAAIBE3AgAMAwtB0YeQASEHQQELIQ8gBgshBiACKAIEIQIgA0HQAGogCiAGIAcgBhDJIQJAAkACQAJAIAMtAFBBBUcEQCADKQNQIREMAQsgAygCVBoCQAJAIAYEQCADQQE6AEYgAS0ATSEJIAdBAXFFBEAgCUEBcQ0CIANB0ABqIAEQ1xIgAy0AUEEERg0CIAMpA1AiEUL/AYNCBFINBAwCCwJAIAlBAXENACADQdAAaiABEO0XIAMtAFBBBEYNACADKQNQIhFC/wGDQgRSDQQLIANBADoARgwBCyAHQQFxRQ0BIAEtAE0NASADQdAAaiABEO0XIAMtAFBBBEYNASADKQNQIhFC/wGDQgRRDQEMAgsCQCAHQcAAcUUNACABLQBNQQFGDQAgASABKAIsQQFqNgIsCyADQQA6AEcgBiEJA0AgCUUEQCADQdAAaiABIAogCCAHIAQgEUIgiKcQxgIgAy0AUEEERg0CIAMpA1AiEUL/AYNCBFINAwwCCyADIBE3AlQgAyAENgJQIANBMGogAhCeDSADQcgAaiABIAggByADQdAAaiADKAIwIAMoAjQgA0HHAGogA0HGAGoQnQYgAy0ASEEERwRAIAMpA0giEUL/AYNCBFINAwsCQAJAIAIoAgAEQCADQdAAaiABIAIQvAggAy0AUEEERg0CIAMpA1AiEUL/AYNCBFINAQwCCwJAAkACQAJAAkACQAJAAkACQAJAAkBBBCACQQRqKAIAIgQoAgBBBWsiBSAFQQZPG0EBaw4FAQIDBAUACyADQdAAaiAEQQhqIAEQ7hkgAy0AUEEERg0LIAMpA1AiEUL/AYNCBFINCQwLCyADQShqIARBCGoiCxC+GSADQdAAaiABIAMoAihBABDAAiADLQBQQQRHBEAgAykDUCIRQv8Bg0IEUg0ICyADQSBqIAsQryUgA0EYaiAEKAIoEKwEIAMoAhwhDCADKAIYIQUCQCADKAIgIg1B/v97SyADKAIkIhAgDXJFciIODQAgA0HQAGogASANEK0lIAMtAFBBBEYNACADKQNQIhFC/wGDQgRSDQgLIANB0ABqIAEgCxCxBiADLQBQQQRHBEAgAykDUCIRQv8Bg0IEUg0ICyAFQf7/e01BACAFIAxyGyAOcg0GIANB0ABqIAEgEBCtJSADLQBQQQRGDQYgAykDUCIRQv8Bg0IEUQ0GDAcLIANB0ABqIAEgBCgCCCIFQQAQwAICQCADLQBQQQRHBEAgAykDUCIRQv8Bg0IEUg0BCwJAIAVFDQAgA0HQAGogASAFEK0lIAMtAFBBBEYNACADKQNQIhFC/wGDQgRSDQELIANB0ABqIARBEGogARDuGSADLQBQQQRHBEAgAykDUCIRQv8Bg0IEUg0BCyADQQA2AlAgA0HIAGogASADQdAAakGRl+AAQQEQ8w4gAy0ASEEERwRAIAMpA0giEUL/AYNCBFINAQsgA0HQAGogBEEoaiABEOAvIAMtAFBBBEYNCiADKQNQIhFC/wGDQgRRDQoLIBFC/wGDQgRSDQcMCQsgA0HIAGogASAEKAJAIgVBABDAAgJAIAMtAEhBBEcEQCADKQNIIhFC/wGDQgRSDQELAkAgBUUNACADQcgAaiABIAUQrSUgAy0ASEEERg0AIAMpA0giEUL/AYNCBFINAQsgA0EANgJQIANByABqIAEgA0HQAGpByOngAEEDEPMOIAMtAEhBBEcEQCADKQNIIhFC/wGDQgRSDQELAkACQAJAIARBCGoiBSgCAEEBaw4DAQABAAsgA0HIAGogARDXEiADLQBIQQRGDQEgAykDSCIRQv8Bg0IEUQ0BDAILIAEtAE0NACADQcgAaiABENcSIAMtAEhBBEYNACADKQNIIhFC/wGDQgRSDQELIANByABqIAEgBRCxBiADLQBIQQRHBEAgAykDSCIRQv8Bg0IEUg0BCwJAIAEtAE0NACADQcgAaiABENcSIAMtAEhBBEYNACADKQNIIhFC/wGDQgRSDQELIANByABqIAEgA0HQAGpBl5zgAEEBEPMOIAMtAEhBBEcEQCADKQNIIhFC/wGDQgRSDQELIANByABqIAEgA0HQAGpBlLXjAEEBEPMOIAMtAEhBBEcEQCADKQNIIhFC/wGDQgRSDQELAkAgAS0ATQ0AIANByABqIAEQ1xIgAy0ASEEERg0AIAMpA0giEUL/AYNCBFINAQsgA0HIAGogBEEoaiABEPQoIAMtAEhBBEYNCSADKQNIIhFC/wGDQgRRDQkLIBFC/wGDQgRSDQYMCAsgA0HIAGogASAEKAJgIgVBABDAAiADLQBIQQRHBEAgAykDSCIRQv8Bg0IEUg0DCwJAIAVFDQAgA0HIAGogASAFEK0lIAMtAEhBBEYNACADKQNIIhFC/wGDQgRSDQMLIANBADYCUCADQcgAaiABIANB0ABqQcvp4ABBAxDzDiADLQBIQQRHBEAgAykDSCIRQv8Bg0IEUg0DCwJAAkACQCAEKAIAQQFrDgMBAAEACyADQcgAaiABENcSIAMtAEhBBEYNASADKQNIIhFC/wGDQgRRDQEMBAsgAS0ATQ0AIANByABqIAEQ1xIgAy0ASEEERg0AIAMpA0giEUL/AYNCBFINAwsgA0HIAGogASAEELEGIAMtAEhBBEcEQCADKQNIIhFC/wGDQgRSDQMLAkAgAS0ATQ0AIANByABqIAEQ1xIgAy0ASEEERg0AIAMpA0giEUL/AYNCBFINAwsgA0HIAGogASADQdAAakGXnOAAQQEQ8w4gAy0ASEEERwRAIAMpA0giEUL/AYNCBFINAwsgBCgCIEEHRg0BIANByABqIAEgBEEgahCYByADLQBIQQRHBEAgAykDSCIRQv8Bg0IEUg0DCyADQcgAaiABIANB0ABqQdyc4ABBARDzDiADLQBIQQRHBEAgAykDSCIRQv8Bg0IEUg0DCyABLQBNDQEgA0HIAGogARDXEiADLQBIQQRGDQEgAykDSCIRQv8Bg0IEUQ0BDAILIANB0ABqIAEgBCgCKCIFKAIwQQAQwAICQCADLQBQQQRHBEAgAykDUCIRQv8Bg0IEUg0BCwJAIAUoAjAiC0UNACADQdAAaiABIAsQrSUgAy0AUEEERg0AIAMpA1AiEUL/AYNCBFINAQsCQCAFLQBFRQ0AIANBADYCUCADQcgAaiABIANB0ABqQYCg4ABBBRDzDiADLQBIQQRHBEAgAykDSCIRQv8Bg0IEUg0CCyADQdAAaiABENcSIAMtAFBBBEYNACADKQNQIhFC/wGDQgRSDQELAkAgBS0AREUNACADQQA2AlAgA0HIAGogASADQdAAakHPl+AAQQEQ8w4gAy0ASEEERg0AIAMpA0giEUL/AYNCBFINAQsgA0HQAGogASAEQQhqELEGIAMtAFBBBEcEQCADKQNQIhFC/wGDQgRSDQELAkAgAS0ATQ0AIANB0ABqIAEQ1xIgAy0AUEEERg0AIAMpA1AiEUL/AYNCBFINAQsgA0HQAGogASAFEIQGIAMtAFBBBEYNByADKQNQIhFC/wGDQgRRDQcLIBFC/wGDQgRRDQYMBAsgA0HIAGogBEHoAGogARDkLyADLQBIQQRHBEAgAykDSCIRQv8Bg0IEUg0BCyADQcgAaiABIANB0ABqQZS14wBBARDzDiADLQBIQQRHBEAgAykDSCIRQv8Bg0IEUg0BCyADQcgAaiAEQcgAaiABEPQoIAMtAEhBBEYNBSADKQNIIhFC/wGDQgRRDQULIBFC/wGDQgRSDQIMBAsgA0EANgJQIANByABqIAEgA0HQAGpBxZzgAEEBEPMOIAMtAEhBBEcEQCADKQNIIhFC/wGDQgRSDQELAkAgAS0ATQ0AIANB0ABqIAEQ1xIgAy0AUEEERg0AIAMpA1AiEUL/AYNCBFINAQsCQCAFIAxyRSAORSAFQf7/e0tycg0AIANB0ABqIAEgBRCtJSADLQBQQQRGDQAgAykDUCIRQv8Bg0IEUg0BCyADQdAAaiAEQShqIAEQ4C8gAy0AUEEERg0DIAMpA1AiEUL/AYNCBFENAwsgEUL/AYNCBFENAgsgEUL/AYNCBFENAQsgEUL/AYNCBFINAwsCQCADLQBGRQRAIANBAToARgwBCyABKAJERQ0AIANB0ABqIAECfyACKAIAIgQEQCADQRBqIAQQrAQgAkEEaigCACIEIAMoAhQiBSAEIAVLGwwBCwJAAkACQAJAAkACQEEEIAJBBGooAgAiBCgCAEEFayIFIAVBBk8bQQFrDgUBAgMEBQALIAQoAhQMBQsgA0EIaiAEKAIoEKwEIAQoAghBAnRB0JDkAGooAgAgBEEIamooAgAiBCADKAIMIgUgBCAFSxsMBAsgBCgCDAwDCyAEKAJEDAILIAQoAmQMAQsgBCgCKCgCNAtBABCwBCADLQBQQQRGDQAgAykDUCIRQv8Bg0IEUg0DCyADLQBHBEAgASABKAIsQQFrNgIsIANBADoARwsgCUEBayEJIAMgAhCeDSACQQxqIQJBASEEIAMpAwAhEQwACwALIANB0ABqIAEgCCAGRSAHEKMVIAMtAFBBBEYNASADKQNQIhFC/wGDQgRRDQELIBFC/wGDQgRSDQELIA9FDQEgA0HQAGogARDtFyADLQBQQQRGDQEgAykDUCIRQv8Bg0IEUQ0BIAAgETcCAAwCCyAAIBE3AgAMAQsCQAJAIAhFDQAgA0HQAGogASAIQQFrEK0lIAMtAFBBBEYNACADKQNQIhFC/wGDQgRSDQELIANB0ABqIAEgA0E4akGbnOAAQQEQ8w4CQCADLQBQQQRHBEAgAykDUCIRQv8Bg0IEUg0BCyAAQQQ6AAAMAgsgACARNwIADAELIAAgETcCAAsgA0HgAGokAAuBwwECLn8EfiMAQcABayIHJAAgB0EBOgBUIAcgAS0AtgI6AFMgByABLQDGAjoAYyAHIAEpAaoCNwBHIAcgASgBsgI2AE8gByABKQO4AjcAVSAHIAEoAsACNgBdIAcgAS8BxAI7AGEgB0HkAGogASAHQccAahC/CCAHKAJkIgNByAJqIQogA0EoaiEUAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAMoAsgCIgFBJUcEQCADQZwDaiEdIAMoAuACIREMAQsgAygC8AIhASADQSU2AvACAkAgAUElRwRAIAdBvAFqIANBlANqKAIANgIAIAdBtAFqIANBjANqKQIANwIAIAdBrAFqIANBhANqKQIANwIAIAdBpAFqIANB/AJqKQIANwIAIAcgATYCmAEgByADKQL0AjcCnAEMAQsgB0GYAWogFBAyIAooAgBBJUYNACAKEOgDCyAKIAcpA5gBNwMAIApBIGogB0G4AWopAwA3AwAgCkEYaiAHQbABaikDADcDACAKQRBqIAdBqAFqKQMANwMAIApBCGogB0GgAWopAwA3AwAgA0GcA2ohHSADQZwDQeACIAMoAsgCIgFBJUYbaigCACERIAFBJUcNACADKALwAiEBIANBJTYC8AICQCABQSVHBEAgB0G8AWogA0GUA2ooAgA2AgAgB0G0AWogA0GMA2opAgA3AgAgB0GsAWogA0GEA2opAgA3AgAgB0GkAWogA0H8AmopAgA3AgAgByABNgKYASAHIAMpAvQCNwKcAQwBCyAHQZgBaiAUEDIgCigCAEElRg0AIAoQ6AMLIAogBykDmAE3AwAgCkEgaiAHQbgBaikDADcDACAKQRhqIAdBsAFqKQMANwMAIApBEGogB0GoAWopAwA3AwAgCkEIaiAHQaABaikDADcDACAKKAIAIgFBJUYNAQsgAUECRw0BIAMtANACQQJHDQEgAy0A0QJBFkcNASADQSU2AsgCIAMgAykD4AI3A5gDIAdBrAFqIgUgA0HcAmooAgA2AgAgB0GkAWoiBCADQdQCaikCADcCACAHQQI2ApgBIAcgAykCzAI3ApwBIAdBmAFqEOgDIAMoAsgCIgFBJUcNBCADKALwAiEBIANBJTYC8AIg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IANBjANqKQIANwIAIAdBrAFqIANBhANqKQIANwIAIAdBpAFqIANB/AJqKQIANwIAIAcgATYCmAEgByADKQL0AjcCnAEMAQsgB0GYAWogFBAyIAooAgBBJUYNACAKEOgDCyAKIAcpA5gBNwMAIApBIGogB0G4AWopAwA3AwAgCkEYaiAHQbABaikDADcDACAKQRBqIAdBqAFqKQMANwMAIApBCGogB0GgAWopAwA3AwAgCigCACIBQSVGDQELIAFBAkcNACADLQDQAkECRw0AIAMtANECQRxHDQAgA0ElNgLIAiADIAMpA+ACNwOYAyAHQawBaiADQdwCaigCADYCACAHQaQBaiADQdQCaikCADcCACAHQQI2ApgBIAcgAykCzAI3ApwBIAdBmAFqEOgDIAdBGGogAyARQQEQ5gMgBygCHCEBIAcoAhghBQwICyAHQRBqISMjAEHQBWsiAiQAIANByAJqIQQgA0EoaiEIAkAgAygCyAIiCUElRw0AIAMoAvACIQEgA0ElNgLwAgJAIAFBJUcEQCACQcwFaiADQZQDaigCADYCACACQcQFaiADQYwDaikCADcCACACQbwFaiADQYQDaikCADcCACACQbQFaiADQfwCaikCADcCACACIAE2AqgFIAIgAykC9AI3AqwFDAELIAJBqAVqIAgQMiAEKAIAQSVGDQAgBBDoAwsgBCACKQOoBTcDACAEQSBqIAJByAVqKQMANwMAIARBGGogAkHABWopAwA3AwAgBEEQaiACQbgFaikDADcDACAEQQhqIAJBsAVqKQMANwMAIAQoAgAiCUElRw0AIAMoAvACIQEgA0ElNgLwAgJAIAFBJUcEQCACQcwFaiADQZQDaigCADYCACACQcQFaiADQYwDaikCADcCACACQbwFaiADQYQDaikCADcCACACQbQFaiADQfwCaikCADcCACACIAE2AqgFIAIgAykC9AI3AqwFDAELIAJBqAVqIAgQMiAEKAIAQSVGDQAgBBDoAwsgBCACKQOoBTcDACAEQSBqIAJByAVqKQMANwMAIARBGGogAkHABWopAwA3AwAgBEEQaiACQbgFaikDADcDACAEQQhqIAJBsAVqKQMANwMAIAQoAgAhCQsgAygCACADQZwDQeACIAlBJUYiARtqKAIAIgwgAygCBEZxIQsCQAJAAkACQAJAAkAgAQRAIAMoAvACIQEgA0ElNgLwAgJAIAFBJUcEQCACQcwFaiADQZQDaigCADYCACACQcQFaiADQYwDaikCADcCACACQbwFaiADQYQDaikCADcCACACQbQFaiADQfwCaikCADcCACACIAE2AqgFIAIgAykC9AI3AqwFDAELIAJBqAVqIAgQMiAEKAIAQSVGDQAgBBDoAwsgBCACKQOoBTcDACAEQSBqIAJByAVqKQMANwMAIARBGGogAkHABWopAwA3AwAgBEEQaiACQbgFaikDADcDACAEQQhqIAJBsAVqKQMANwMAIAQoAgAiCUElRg0BCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAlBAmsOHQETExMTExMOEwITCBMTEwkTEwoAExMTExMPEw8PEwsgAy0AzAJBBEYNCgwSC0EEIAMtANACIgFBAmtB/wFxIgUgBUEETxtBAWsOBA0NDQIBCyACQQA6AJsBIAIgAykBqgI3AIsBIAIgAykBsgI3AJMBIAIgAykAuwI3AJwBIAIgAygAwwI2AKQBIAJBqAFqIAMgAkGLAWoQvwggAigCqAEiBEHIAmohBiAEQShqIQwgBCgCyAIiBUElRwRAIAQoAuACIQ0MDgsgBCgC8AIhASAEQSU2AvACAkAgAUElRwRAIAJBzAVqIARBlANqKAIANgIAIAJBxAVqIARBjANqKQIANwIAIAJBvAVqIARBhANqKQIANwIAIAJBtAVqIARB/AJqKQIANwIAIAIgATYCqAUgAiAEKQL0AjcCrAUMAQsgAkGoBWogDBAyIAYoAgBBJUYNACAGEOgDCyAGIAIpA6gFNwMAIAZBIGogAkHIBWopAwA3AwAgBkEYaiACQcAFaikDADcDACAGQRBqIAJBuAVqKQMANwMAIAZBCGogAkGwBWopAwA3AwAgBEGcA0HgAiAEKALIAiIFQSVGG2ooAgAhDSAFQSVHDQ0gBCgC8AIhASAEQSU2AvACAkAgAUElRwRAIAJBzAVqIARBlANqKAIANgIAIAJBxAVqIARBjANqKQIANwIAIAJBvAVqIARBhANqKQIANwIAIAJBtAVqIARB/AJqKQIANwIAIAIgATYCqAUgAiAEKQL0AjcCrAUMAQsgAkGoBWogDBAyIAYoAgBBJUYNACAGEOgDCyAGIAIpA6gFNwMAIAZBIGogAkHIBWopAwA3AwAgBkEYaiACQcAFaikDADcDACAGQRBqIAJBuAVqKQMANwMAIAZBCGogAkGwBWopAwA3AwAgBigCACIFQSVHDQ0gBEGAAmooAgAhASACQQA6AKgFIAEgASACQagFahDvGyEBDA4LIAMtANECQQtrIgFFDQEgAUEMRg0CDA8LIAFBAXENDiADLQDRAkECRw0OIAgQ9A8iAUUNAiABKAIAQQJHDQIgAS0ACEECRw0CIAEtAAlBC0cNAiAIEPQPGiADKALwAkElRg0CIAMtAJADDQIgAkHIAGohCSMAQTBrIgEkACADQcgCaiEFIANBKGohBgJAAkACQAJAIAMoAsgCIgRBJUcEQCADKALgAiEIDAELIAMoAvACIQQgA0ElNgLwAgJAIARBJUcEQCABQSxqIANBlANqKAIANgIAIAFBJGogA0GMA2opAgA3AgAgAUEcaiADQYQDaikCADcCACABQRRqIANB/AJqKQIANwIAIAEgBDYCCCABIAMpAvQCNwIMDAELIAFBCGogBhAyIAUoAgBBJUYNACAFEOgDCyAFIAEpAwg3AwAgBUEgaiABQShqKQMANwMAIAVBGGogAUEgaikDADcDACAFQRBqIAFBGGopAwA3AwAgBUEIaiABQRBqKQMANwMAIAMoAsgCIgRBJUcEQCADKALgAiEIDAELIAMoApwDIQggAygC8AIhBCADQSU2AvACAkAgBEElRwRAIAFBLGogA0GUA2ooAgA2AgAgAUEkaiADQYwDaikCADcCACABQRxqIANBhANqKQIANwIAIAFBFGogA0H8AmopAgA3AgAgASAENgIIIAEgAykC9AI3AgwMAQsgAUEIaiAGEDIgBSgCAEElRg0AIAUQ6AMLIAUgASkDCDcDACAFQSBqIAFBKGopAwA3AwAgBUEYaiABQSBqKQMANwMAIAVBEGogAUEYaikDADcDACAFQQhqIAFBEGopAwA3AwAgBSgCACIEQSVGDQELIARBAkcNACADLQDQAiIEQQFLIARBAXFyDQAgAy0A0QJBAkYNAQsgAUEQaiAGEN0HIAFBqOHfADYCDCABQTQ6AAggBkHwAkG4AiAFKAIAQSVGIggbaigCACIEIAZB9AJBvAIgCBtqKAIAIgggBCAISRsgBCAIIAQgCEsbIAFBCGoQ7xshCCAFKAIAIgxBJUYEQCADKALwAiEEIANBJTYC8AICQCAEQSVHBEAgAUEsaiADQZQDaigCADYCACABQSRqIANBjANqKQIANwIAIAFBHGogA0GEA2opAgA3AgAgAUEUaiADQfwCaikCADcCACABIAQ2AgggASADKQL0AjcCDAwBCyABQQhqIAYQMiAFKAIAQSVGDQAgBRDoAwsgBSABKQMINwMAIAVBIGogAUEoaikDADcDACAFQRhqIAFBIGopAwA3AwAgBUEQaiABQRhqKQMANwMAIAVBCGogAUEQaikDADcDAEEBIQQgBSgCACIMQSVGDQILQQEhBCAMQSRHDQEgA0ElNgLIAiADIAMpA+ACNwOYAyADIAMoAswCEMAIDAELIANBJTYCyAIgAyADKQPgAjcDmAMgAUEcaiADQdwCaigCADYCACABQRRqIANB1AJqKQIANwIAIAFBAjYCCCABIAMpAswCNwIMIAFBCGoiBRDoAyABQQA2AhAgAUKAgICAwAA3AgggASADQQEgCCAFEPQEIAEoAgQhCCABKAIAIQQLIAkgCDYCBCAJIAQ2AgAgAUEwaiQAIAIoAkwhASACKAJIIQUMEwsjAEEgayIBJAAgAUEANgIcIAFCgICAgMAANwIUIAFBCGogA0EAIAEgAUEUahD0BCACQThqIAEpAwg3AwAgAUEgaiQAIAIoAjwhASACKAI4IQUMEgsgA0ElNgLIAiADIAMpA+ACNwOYAyACQbwFaiADQdwCaigCADYCACACQbQFaiADQdQCaikCADcCACACQQI2AqgFIAIgAykCzAI3AqwFIAJBqAVqEOgDQQAhBUGgv+QALQAAGiADKAKcAyEEQcAAEIQBIgFFDQ0gAUEMNgIAIAEgDCAEIAQgDEkbNgIIIAEgDCAEIAQgDEsbNgIEDBELIAtFDQsCQCADLQCgAkECRw0AIAgQ9A8iAUUNACABKAIAQRRHDQAgAS0ABEEERw0AIAJB4ABqIQYjAEHwBmsiASQAAkACQAJAAkACQAJAAkACQCADLQCgAkECRgRAIAMtAKoCIRAgAUEIaiADEMgCIAMtAMYCIQ4gAy0AxQIhDyADLQDEAiESIAMtAMMCIRUgAy0AwgIhFyADLQDBAiEWIAMtAMACIRMgAy0AvwIhGSADLQC+AiEaIAMtAL0CIR4gAy0AvAIhHyADLQC7AiEgIAMtALoCIRsgAy0AuQIhHCADLQC4AiEYIAMtALcCISEgAy0AtgIhIiADLQC1AiEkIAMtALQCISUgAy0AswIhJiADLQCyAiEnIAMtALECISggAy0AsAIhKSADLQCvAiEqIAMtAK4CISsgAy0ArQIhLCADLQCsAiEtAkAgAy0AqwIiLkEBcUUNACABKAKQAiIJKAIIIgVB/v///wdLDSQgCSgCFEUNACAFDSUgCUF/NgIIIAEoAowCIgUoAggNJiAFQX82AgggCSgCECEvIAVBDGogCSgCFCINEOQnIAUoAhAgBSgCFEECdGogLyANQQJ0EIEJGiAFIA0gBSgCFGo2AhQgCUEANgIUIAUgBSgCCEEBajYCCCAJIAkoAghBAWo2AggLIAEgDjoAzgIgASAPOgDNAiABIBI6AMwCIAEgFToAywIgASAXOgDKAiABIBY6AMkCIAEgEzoAyAIgASAZOgDHAiABIBo6AMYCIAEgHjoAxQIgASAfOgDEAiABICA6AMMCIAEgGzoAwgIgASAcOgDBAiABIBg6AMACIAEgIToAvwIgASAiOgC+AiABICQ6AL0CIAEgJToAvAIgASAmOgC7AiABICc6ALoCIAEgKDoAuQIgASApOgC4AiABICo6ALcCIAEgKzoAtgIgASAsOgC1AiABIC06ALQCIAEgLjoAswIgAUEBOgCyAiABKALQAiIJQSVHDQEgAUEwaiENIAFB0AJqIQUgASgC+AIhCSABQSU2AvgCAkAgCUElRwRAIAFB9ANqIAFBnANqKAIANgIAIAFB7ANqIAFBlANqKQIANwIAIAFB5ANqIAFBjANqKQIANwIAIAFB3ANqIAFBhANqKQIANwIAIAEgASkC/AI3AtQDIAEgCTYC0AMMAQsgAUHQA2ogDRAyIAEoAtACQSVGDQAgBRDoAwsgBSABKQPQAzcDACAFQSBqIAFB8ANqKQMANwMAIAVBGGogAUHoA2opAwA3AwAgBUEQaiABQeADaikDADcDACAFQQhqIAFB2ANqKQMANwMAIAEoAtACIglBJUcNASABKAKkAyEOIAEoAvgCIQkgAUElNgL4AgJAIAlBJUcEQCABQfQDaiABQZwDaigCADYCACABQewDaiABQZQDaikCADcCACABQeQDaiABQYwDaikCADcCACABQdwDaiABQYQDaikCADcCACABIAEpAvwCNwLU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aigCACIFIAEgBUkbIAEgBSABIAVLGyACQZAFahDvGyEBIAQoAgAiCUElRgRAIAMoAvACIQUgA0ElNgLwAgJAIAVBJUcEQCACQcwFaiADQZQDaigCADYCACACQcQFaiADQYwDaikCADcCACACQbwFaiADQYQDaikCADcCACACQbQFaiADQfwCaikCADcCACACIAU2AqgFIAIgAykC9AI3AqwFDAELIAJBqAVqIAgQMiAEKAIAQSVGDQAgBBDoAwsgBCACKQOoBTcDACAEQSBqIAJByAVqKQMANwMAIARBGGogAkHABWopAwA3AwAgBEEQaiACQbgFaikDADcDACAEQQhqIAJBsAVqKQMANwMAQQEhBSAEKAIAIglBJUYNGAtBASEFIAlBJEcNFyADQSU2AsgCIAMgAykD4AI3A5gDIAMgAygCzAIQwAgMFwsgAkGoBWoQ9QoMFgsgAygC8AIhASADQSU2AvACAkAgAUElRwRAIAJBzAVqIANBlANqKAIANgIAIAJBxAVqIANBjANqKQIANwIAIAJBvAVqIANBhANqKQIANwIAIAJBtAVqIANB/AJqKQIANwIAIAIgATYCqAUgAiADKQL0AjcCrAUMAQsgAkGoBWogCBAyIAQoAgBBJUYNACAEEOgDCyAEIAIpA6gFNwMAIARBIGogAkHIBWopAwA3AwAgBEEYaiACQcAFaikDADcDACAEQRBqIAJBuAVqKQMANwMAIARBCGogAkGwBWopAwA3AwAgBCgCACIFQSVGDQEgAy0A0QIhECADLQDQAiEBCyAFQQJHIAFB/wFxQQJHckUgEEH/AXFBEkZxDQUgAy0AoAJBAkcNAyACQc0CaiADQb8CaikAADcAACACQcgCaiADQboCaikAADcDACACQcACaiADQbICaikAADcDACACIAMpAKoCNwO4AgwBCyADQaoCaiEBIAMtAKACQQJGBEAgAkHNAmogAUEVaikAADcAACACQcgCaiABQRBqKQAANwMAIAJBwAJqIAFBCGopAAA3AwAgAiABKQAANwO4AiADKALwAiEFIANBJTYC8AICQCAFQSVHBEAgAkHMBWogA0GUA2ooAgA2AgAgAkHEBWogA0GMA2opAgA3AgAgAkG8BWogA0GEA2opAgA3AgAgAkG0BWogA0H8AmopAgA3AgAgAiAFNgKoBSACIAMpAvQCNwKsBQwBCyACQagFaiAIEDIgBCgCAEElRg0AIAQQ6AMLIAQgAikDqAU3AwAgBEEgaiACQcgFaikDADcDACAEQRhqIAJBwAVqKQMANwMAIARBEGogAkG4BWopAwA3AwAgBEEIaiACQbAFaikDADcDACAEKAIAIgVBJUcNASADKALwAiEFIANBJTYC8AICQCAFQSVHBEAgAkHMBWogA0GUA2ooAgA2AgAgAkHEBWogA0GMA2opAgA3AgAgAkG8BWogA0GEA2opAgA3AgAgAkG0BWogA0H8AmopAgA3AgAgAiAFNgKoBSACIAMpAvQCNwKsBQwBCyACQagFaiAIEDIgBCgCAEElRg0AIAQQ6AMLIAQgAikDqAU3AwAgBEEgaiACQcgFaikDADcDACAEQRhqIAJBwAVqKQMANwMAIARBEGogAkG4BWopAwA3AwAgBEEIaiACQbAFaikDADcDACAEKAIAIgVBJUcNAgsgAkHtAmogAUEVaikAADcAACACQegCaiABQRBqKQAANwMAIAJB4AJqIAFBCGopAAA3AwAgAiABKQAANwPYAiADKALwAiEBIANBJTYC8AICQCABQSVHBEAgAkHMBWogA0GUA2ooAgA2AgAgAkHEBWogA0GMA2opAgA3AgAgAkG8BWogA0GEA2opAgA3AgAgAkG0BWogA0H8AmopAgA3AgAgAiABNgKoBSACIAMpAvQCNwKsBQwBCyACQagFaiAIEDIgBCgCAEElRg0AIAQQ6AMLIAQgAikDqAU3AwAgBEEgaiACQcgFaikDADcDACAEQRhqIAJBwAVqKQMANwMAIARBEGogAkG4BWopAwA3AwAgBEEIaiACQbAFaikDADcDACAEKAIAIgVBJUcNAyADKALwAiEBIANBJTYC8AICQCABQSVHBEAgAkHMBWogA0GUA2ooAgA2AgAgAkHEBWogA0GMA2opAgA3AgAgAkG8BWogA0GEA2opAgA3AgAgAkG0BWogA0H8AmopAgA3AgAgAiABNgKoBSACIAMpAvQCNwKsBQwBCyACQagFaiAIEDIgBCgCAEElRg0AIAQQ6AMLIAQgAikDqAU3AwAgBEEgaiACQcgFaikDADcDACAEQRhqIAJBwAVqKQMANwMAIARBEGogAkG4BWopAwA3AwAgBEEIaiACQbAFaikDADcDAEElIQEgBCgCACIFQSVGDQYMBQsgBUECRw0AIAJBuAJqIAMtANACIAMtANECENgMRQ0DCyAFQQJHDQAgAy0A0AJBAkcNACADLQDRAkUNAgsgAkHtAmogA0G/AmopAAA3AAAgAkHoAmogA0G6AmopAAA3AwAgAkHgAmogA0GyAmopAAA3AwAgAiADKQCqAjcD2AILIAVBAkcNASACQdgCaiADLQDQAiADLQDRAhDYDA0BC0EBIQUgAy0ArwIhCSADLQCuAiACQagFaiADIAMtALICQX9zQQFxIAMtALECQX9zQQFxEPkBIAIoAqgFIQEgAi0AvAUiD0ECRg0MIAJB/ARqIAJBtAVqKQIANwIAIAJBhwVqIAJBvwVqLQAAOgAAIAIgAikCrAU3AvQEIAIgAi8AvQU7AIUFIAIgDzoAhAUgAiABNgLwBAJAAkACQCADLQCrAkEBcUUNACADLQC4AkEBcQ0AIAJBMGogAkHwBGoQyhAgAigCMCACKAI0QcjN4ABBBRDQKA0BCyACQShqIAJB8ARqEMoQIAJBIGpB0M3gACACKAIoIAIoAiwQ8gMgAigCIEUNASACKAIkRQ0BCyADKAKcAyEBIAMoApgDIQUgAikD8AQiMEIDg1AEQCAwpyIPIA8oAgAiD0EBajYCACAPQQBIDQwLIAJBJzoAqAUgAiAwNwOwBSADIAUgASACQagFahCmJwsgC0UNBSACQfAEakGAoOAAQQUQzCRFDQQgCBC/ChogAygCyAJBJUYNBCADLQDoAkEBcQ0EIAJBjQNqIANBqgJqIgFBFWopAAA3AAAgAkGIA2ogAUEQaikAADcDACACQYADaiABQQhqKQAANwMAIAIgASkAADcD+AIgCBC/CiIBRQ0EIAEoAgBBAkcNBCACQfgCaiABLQAIIAFBCWotAAAQ2AwNBEEBcQ0DDAkLIAUiAUEERw0AIANBJTYCyAIgAyADKQPgAjcDmAMgAkG8BWogA0HcAmooAgA2AgAgAkG0BWogA0HUAmopAgA3AgAgAkEENgKoBSACIAMpAswCNwKsBSACQagFaiIBEOgDIAEgAxDGAyACKQOoBSIwUEUNASACKAKwBSEBQQEhBQwLCyAIQfACQbgCIAFBJUYiBRtqKAIAIQEgCEH0AkG8AiAFG2ooAgAhBSACQYsBOgCoBSABIAUgASAFSRsgASAFIAEgBUsbIAJBqAVqEO8bIQFBASEFIAgQvwoiBEUNCiAEKAIAQSRHDQogAyADKQPgAjcDmAMgAygCyAIgA0ElNgLIAkEkRw0EIAMgAygCzAIQwAgMCgtBACEFQaC/5AAtAAAaIAMoApwDIQRBwAAQhAEiAUUNByABIDA3AwggAUEvNgIAIAEgDCAEIAQgDEkbNgIUIAEgDCAEIAQgDEsbNgIQDAkLIAgQvwoiAUUNBSABKAIAQQJHDQUgAS0ACA0FIAEtAAlBBEcNBSAIEPQPIgEEQCABKAIAQQNGDQYLIAlBAXFFBEAgAygCnAMhASADKAKYAyEFIAJBiQE6AKgFIAMgBSABIAJBqAVqEOkiCyACQYgEaiACQYAFaikDADcCACACQYAEaiACQfgEaikDADcCACACIAIpA/AENwL4A0EAIQVBoL/kAC0AABpBwAAQhAEiAUUNBiABQRo2AgAgASACKQL0AzcCBCABQQxqIAJB/ANqKQIANwIAIAFBFGogAkGEBGopAgA3AgAgAUEcaiACQYwEaigCADYCAAwICyAEKAIAQSVGBH8gAygC8AIhASADQSU2AvACAkAgAUElRwRAIAJBzAVqIANBlANqKAIANgIAIAJBxAVqIANBjANqKQIANwIAIAJBvAVqIANBhANqKQIANwIAIAJBtAVqIANB/AJqKQIANwIAIAIgATYCqAUgAiADKQL0AjcCrAUMAQsgAkGoBWogCBAyIAQoAgBBJUYNACAEEOgDCyAEIAIpA6gFNwMAIARBIGogAkHIBWopAwA3AwAgBEEYaiACQcAFaikDADcDACAEQRBqIAJBuAVqKQMANwMAIARBCGogAkGwBWopAwA3AwAgBCgCAEElRgVBAAsNACADLQDoAkEBcQ0AIAgQvwoiAUUNACABKAIAQQNHDQAgAygCyAIhASADQSU2AsgCIAMgAykD4AI3A5gDIAJBtAVqIANB1AJqKQIANwIAIAJBvAVqIANB3AJqKAIANgIAIAIgAykCzAI3AqwFIAIgATYCqAUgAkGoBWoQ6AMgAy0ArQJBAXFFDQMgAkHwBGoQqB4NAgwDCyACQaQEaiACQYAFaikDADcCACACQZwEaiACQfgEaikDADcCACACIAIpA/AENwKUBEEAIQVBoL/kAC0AABpBwAAQhAEiAUUNBCABQRo2AgAgASACKQKQBDcCBCABQQxqIAJBmARqKQIANwIAIAFBFGogAkGgBGopAgA3AgAgAUEcaiACQagEaigCADYCAAwGC0GJhOEAQShB8PXfABDVIQALIAIoAvwEIQEgAigC+AQhBSACQSk6AKgFIAMgBSABIAJBqAVqEKYnC0EAIQVBoL/kAC0AABpBKBCEASIIRQ0BIAJBuAFqIAJBgAVqKQMANwMAIAJBsAFqIAJB+ARqKQMANwMAIAIgAikD8AQ3A6gBIAJByARqIAJBqAFqEK0TIAJBxAVqIAJB4ARqKQMANwIAIAJBvAVqIAJB2ARqKQMANwIAIAJBtAVqIAJB0ARqKQMANwIAIAIgAikDyAQ3AqwFIAhBADYCACAIIAIpAqgFNwIEIAhBDGogAkGwBWopAgA3AgAgCEEUaiACQbgFaikCADcCACAIQRxqIAJBwAVqKQIANwIAIAhBJGogAkHIBWooAgA2AgADQCAFIgFBKEcEQCABQShqIQUgASAIaigCAEUNAQsLIAJBCGogA0EAIAFBKEYQnQMgAigCDCEEIAIoAggiBUUEQEGgv+QALQAAGiADKAKcAyEJQRgQhAEiC0UNAiALQgA3AgggC0KAgICAgAE3AgAgC0EQakIANwIAQaC/5AAtAAAaQcAAEIQBIgFFDQIgAUIANwIcIAEgDCAJIAkgDEkbNgIYIAEgDCAJIAkgDEsbNgIUIAEgBDYCECABQQE2AgwgASAINgIIIAFCnoCAgBA3AwAgAUEiakIANwEAQQhBABDlJ0EAQQgQxSogCxClHQwECyAIQQEQ5SdBASAIEMUqIAQhAQwDCyACQagFaiADQQAQzgMgAigCqAUhAQJAAkAgAi0AvAUiBUECRwRAIAJB1ARqIAJBtAVqKQIANwIAIAJB5ARqIAJBxAVqKAAANgAAIAIgAikCrAU3AswEIAIgAikAvQU3AN0EIAIgBToA3AQgAiABNgLIBCADLQCgAkECRw0CIAJByARqQZWc4ABBAhDMJEUNAiAIEL8KIgEEQCABKAIAQQNGDQMLQQEhBSACQQE6ALQBIAIgAykBqgI3AKgBIAIgAygBsgI2ALABIAIgAykAtwI3ALUBIAIgAykAvwI3AL0BIAJBqAVqIgQgAyACQagBahC/CCACQRBqIAIoAqgFELMCIAIoAhQhASACKAIQIAQQ9QoNASADKAKcAyEIIAJBvAVqIAJBgAVqKQMANwIAIAJBtAVqIAJB+ARqKQMANwIAQaC/5AAtAAAaIAIgAikD8AQ3AqwFQcAAEIQBIgVFDQMgBUEaNgIAIAUgAikCqAU3AgQgBUEMaiACQbAFaikCADcCACAFQRRqIAJBuAVqKQIANwIAIAVBHGogAkHABWooAgA2AgBBoL/kAC0AABpBwAAQhAEiBEUNAyAEIAwgCCAIIAxJGzYCECAEIAwgCCAIIAxLGzYCDCAEIAE2AgggBCAFNgIEIARBLDYCACACQcgEahCVFEEAIQUgBCEBDAULQQEhBQwDCyACQcgEahCVFAwCCyACQbgDaiACQeAEaikDADcCACACQbADaiACQdgEaikDADcCACACQagDaiACQdAEaikDADcCACACIAIpA8gENwKgA0Ggv+QALQAAGkEoEIQBIglFDQAgCUEANgIAIAkgAikCnAM3AgQgCUEMaiACQaQDaikCADcCACAJQRRqIAJBrANqKQIANwIAIAlBHGogAkG0A2opAgA3AgAgCUEkaiACQbwDaigCADYCAAJAAkACQCAIEL8KIgFFDQAgASgCAEEDRw0AIAMoAsgCIQEgA0ElNgLIAiADIAMpA+ACNwOYAyACQbQFaiADQdQCaikCADcCACACQbwFaiADQdwCaigCADYCACACIAMpAswCNwKsBSACIAE2AqgFIAJBqAVqEOgDQQAhBQNAIAUiAUEoRwRAIAFBKGohBSABIAlqKAIARQ0BCwsgAkEYaiADQQEgAUEoRhCdAyACKAIcIQQgAigCGEUNAiAEIQEMAQsgAkGwBWogCBDdByACQfDa3wA2AqwFIAJBNDoAqAUgCEHwAkG4AiAEKAIAQSVGIgUbaigCACIBIAhB9AJBvAIgBRtqKAIAIgUgASAFSRsgASAFIAEgBUsbIAJBqAVqEO8bIQEgCBC/CiIFRQ0AIAUoAgBBJEcNACADIAMpA+ACNwOYAyADKALIAiADQSU2AsgCQSRHDQUgAyADKALMAhDACAtBASEFIAlBARDlJ0EBIAkQxSoMAgtBoL/kAC0AABogAygCnAMhCEEYEIQBIgtFDQAgC0IANwIIIAtCgICAgIABNwIAIAtBEGpCADcCAEGgv+QALQAAGkHAABCEASIBRQ0AIAFBATsBKEEAIQUgAUEANgIkIAFCADcCHCABIAwgCCAIIAxJGzYCGCABIAwgCCAIIAxLGzYCFCABIAQ2AhAgAUEBNgIMIAEgCTYCCCABQp6AgIAQNwMAQQhBABDlJ0EAQQgQxSogCxClHQwBCwALIAIpA/AEENAaCyAGIA4QkiUgDSAGEMAqDAELQYmE4QBBKEGA9t8AENUhAAsgIyABNgIEICMgBTYCACACQdAFaiQAIAcoAhQhASAHKAIQBEBBASEFDAgLIAEoAgBBHkYEQEEAIQUMCAsCQCADLQCgAkECRwRAIAEhBQwBCwJAIAooAgAiBEElRw0AIAMoAvACIQUgA0ElNgLwAgJAIAVBJUcEQCAHQbwBaiADQZQDaigCADYCACAHQbQBaiADQYwDaikCADcCACAHQawBaiADQYQDaikCADcCACAHQaQBaiADQfwCaikCADcCACAHIAU2ApgBIAcgAykC9AI3ApwBDAELIAdBmAFqIBQQMiAKKAIAQSVGDQAgChDoAwsgCiAHKQOYATcDACAKQSBqIAdBuAFqKQMANwMAIApBGGogB0GwAWopAwA3AwAgCkEQaiAHQagBaikDADcDACAKQQhqIAdBoAFqKQMANwMAIAooAgAiBEElRw0AIAEhBQwBCyAEQRRHBEAgASEFDAELIAMtAMwCQQRHBEAgASEFDAELIAMQiwEiBkUEQCABIQUMAQtBoL/kAC0AABogHSgCACEEQcAAEIQBIgVFDQYgBSAGNgIIIAUgATYCBCAFQS02AgAgBSARIAQgBCARSRs2AhAgBSARIAQgBCARSxs2AgwLIAdBBToAoAEgByAFNgKYASAHQQhqIAMgB0GYAWpBAUEAEKgFIAcoAgwhASAHKAIIIQUMBwtBiYThAEEoQeD63wAQ1SEAC0GJhOEAQShB8PrfABDVIQALQYmE4QBBKEGA+98AENUhDAILQQAhBQJAIAMtAKACQQJHDQAgFBC/CiIERQ0AIAQoAgBBFEcNACAELQAEQQRHDQAjAEHwBmsiBiQAAkAgAy0AoAJBAkcNACADLQCqAiEmIAZBEGogAxDIAiADLQDGAiEIIAMtAMUCIQIgAy0AxAIhCSADLQDDAiEKIAMtAMICIQwgAy0AwQIhCyADLQDAAiENIAMtAL8CIQ4gAy0AvgIhECADLQC9AiEPIAMtALwCIRIgAy0AuwIhFSADLQC6AiEXIAMtALkCIRYgAy0AuAIhEyADLQC3AiEnIAMtALYCISMgAy0AtQIhGSADLQC0AiEaIAMtALMCIR4gAy0AsgIhHyADLQCxAiEgIAMtALACIRsgAy0ArwIhHCADLQCuAiEYIAMtAK0CISEgAy0ArAIhIgJAAkACQAJAIAMtAKsCIiRBAXFFDQAgBigCmAIiBCgCCCIFQf7///8HSw0KIAQoAhRFDQAgBQ0LIARBfzYCCCAGKAKUAiIFKAIIDQwgBUF/NgIIIAQoAhAhKCAFQQxqIAQoAhQiJRDkJyAFKAIQIAUoAhRBAnRqICggJUECdBCBCRogBSAlIAUoAhRqNgIUIARBADYCFCAFIAUoAghBAWo2AgggBCAEKAIIQQFqNgIICyAGIAg6ANYCIAYgAjoA1QIgBiAJOgDUAiAGIAo6ANMCIAYgDDoA0gIgBiALOgDRAiAGIA06ANACIAYgDjoAzwIgBiAQOgDOAiAGIA86AM0CIAYgEjoAzAIgBiAVOgDLAiAGIBc6AMoCIAYgFjoAyQIgBiATOgDIAiAGICc6AMcCIAYgIzoAxgIgBiAZOgDFAiAGIBo6AMQCIAYgHjoAwwIgBiAfOgDCAiAGICA6AMECIAYgGzoAwAIgBiAcOgC/AiAGIBg6AL4CIAYgIToAvQIgBiAiOgC8AiAGICQ6ALsCIAZBAToAugIgBiAIOgDvBiAGIAI6AO4GIAYgCToA7QYgBiAKOgDsBiAGIAw6AOsGIAYgCzoA6gYgBiANOgDpBiAGIA46AOgGIAYgEDoA5wYgBiAPOgDmBiAGIBI6AOUGIAYgFToA5AYgBiAXOgDjBiAGIBY6AOIGIAYgEzoA4QYgBkEAOgDgBiAGICM6AN8GIAYgGToA3gYgBiAaOgDdBiAGIB46ANwGIAYgHzoA2wYgBiAgOgDaBiAGIBs6ANkGIAYgHDoA2AYgBiAYOgDXBiAGICE6ANYGIAYgIjoA1QYgBiAkOgDUBiAGQQE6ANMGIAZBsANqIgQgBkEQaiAGQdMGahC/CCAGQQhqIAYoArADEHIgBigCDCEFIAYoAgggBBD1CgRAIAUhBAwDCyAGQThqIQICQAJAAkACQAJAIAYoAtgCIghBJUYEQCAGQdgCaiEEIAYoAoADIQggBkElNgKAAwJAIAhBJUcEQCAGQdQDaiAGQaQDaigCADYCACAGQcwDaiAGQZwDaikCADcCACAGQcQDaiAGQZQDaikCADcCACAGQbwDaiAGQYwDaikCADcCACAGIAYpAoQDNwK0AyAGIAg2ArADDAELIAZBsANqIAIQMiAGKALYAkElRg0AIAQQ6AMLIAQgBikDsAM3AwAgBEEgaiAGQdADaikDADcDACAEQRhqIAZByANqKQMANwMAIARBEGogBkHAA2opAwA3AwAgBEEIaiAGQbgDaikDADcDACAGKALYAiIIQSVGDQELIAhBCUcNAQwECyAGKAKAAyEIIAZBJTYCgAMCQCAIQSVHBEAgBkHUA2ogBkGkA2ooAgA2AgAgBkHMA2ogBkGcA2opAgA3AgAgBkHEA2ogBkGUA2opAgA3AgAgBkG8A2ogBkGMA2opAgA3AgAgBiAGKQKEAzcCtAMgBiAINgKwAwwBCyAGQbADaiACEDIgBigC2AJBJUYNACAEEOgDCyAEIAYpA7ADNwMAIARBIGogBkHQA2opAwA3AwAgBEEYaiAGQcgDaikDADcDACAEQRBqIAZBwANqKQMANwMAIARBCGogBkG4A2opAwA3AwAgBigC2AIiCEElRg0BCyAIQQlGDQELIAZBuANqIAZBOGoQ3QcgBkGYzd8ANgK0AyAGQTQ6ALADIAZBqANqIAZB8AJqIAYoAtgCQSVGIggbKAIAIgQgBkGsA2ogBkH0AmogCBsoAgAiCCAEIAhJGyAEIAggBCAISxsgBkGwA2oQ7xshBCACEL8KIghFDQMgCCgCAEEkRw0DIAYgBikD8AI3A6gDIAYoAtgCIAZBJTYC2AJBJEcNAiAGQRBqIAYoAtwCEMAIDAMLIAZBxANqIAZB7AJqKAIANgIAIAZBvANqIAZB5AJqKQIANwIAIAYgBikC3AI3ArQDIAZBJTYC2AIgBkEJNgKwAyAGIAYpA/ACNwOoAyAGQbADahDoAwsgBkGwA2oiBCAGQRBqQaADEIEJGiADEMMRAkAgAyAEQaADEIEJIgItAKsCQQFxRQ0AIAIoAogCIggoAggiBEH+////B0sNCiAIKAIURQ0AIAQNCyAIQX82AgggAigChAIiBCgCCA0MIARBfzYCCCAIKAIQIQogBEEMaiAIKAIUIgkQ5CcgBCgCECAEKAIUQQJ0aiAKIAlBAnQQgQkaIAQgCSAEKAIUajYCFCAIQQA2AhQgBCAEKAIIQQFqNgIIIAggCCgCCEEBajYCCAsgAiAmOgCqAgwDC0GJhOEAQShBkPvfABDVIQALIAUQkSkLIARBCGoQiAMgBEEgQQgQohggBkEQahDDEUEAIQULIAZB8AZqJAALAkAgFBC/CiIEBEAgBCgCAEEJRg0BC0Ggv+QALQAAGiAdKAIAIQNBwAAQhAEiBEUNAiAEQQA2AgggBEIxNwMAIAdCADcCqAEgByAENgKkASAHQgA3ArABIAdBgICAgHg2ApgBQaC/5AAtAAAaQcAAEIQBIgRFDQIgBCAFNgIgQQAhBSAEQQA2AhwgBCARIAMgAyARSRs2AhggBCARIAMgAyARSxs2AhQgBCABNgIQIARCmICAgICAgICAfzcDACAHQZgBahDTGiAEIQEMBAsgB0GYAWoiAiADQQAQnQEgBygCnAEhBCAHKAKYASIJQYCAgIB4RwRAQaC/5AAtAAAaIAcoAqABIQogHSgCACEIQcAAEIQBIgZFDQIgBkEANgIIIAZCMTcDACAHQgA3AqgBIAcgBjYCpAEgB0IANwKwASAHQYCAgIB4NgKYAUGgv+QALQAAGkHAABCEASIGRQ0CIAYgBTYCICAGQQA2AhwgBiARIAggCCARSRs2AhggBiARIAggCCARSxs2AhQgBiABNgIQIAYgCjYCDCAGIAQ2AgggBiAJNgIEIAZBGDYCACAHQQU6AJQBIAcgBjYCjAEgAhDTGiAHQShqIAMgB0GMAWpBAUEAEKgFIAcoAiwhASAHKAIoIQUMBAsgBRCoJyAEIQELIAdBiAFqEKksQQEhBQwCCwALIAdBBToAoAEgByABNgKYASAHQThqIAMgB0GYAWpBAUEAEKgFIAcoAjwhASAHKAI4IQULIAdB5ABqEPUKIAAgATYCBCAAIAU2AgAgB0HAAWokAA8LQYy04AAQ1h0AC0H8s+AAENUdAAtB7LPgABDVHQAL6iICCH8BfgJAAkACQAJAAkACQAJAAkAgAEH1AU8EQCAAQc3/e08NBSAAQQtqIgFBeHEhBUH0veQAKAIAIghFDQRBHyEHQQAgBWshAyAAQfT//wdNBEAgBUEGIAFBCHZnIgBrdkEBcSAAQQF0a0E+aiEHCyAHQQJ0Qdi65ABqKAIAIgFFBEBBACEADAILQQAhACAFQRkgB0EBdmtBACAHQR9HG3QhBANAAkAgASgCBEF4cSIGIAVJDQAgBiAFayIGIANPDQAgASECIAYiAw0AQQAhAyABIQAMBAsgASgCFCIGIAAgBiABIARBHXZBBHFqQRBqKAIAIgFHGyAAIAYbIQAgBEEBdCEEIAENAAsMAQtB8L3kACgCACIEQRAgAEELakH4A3EgAEELSRsiBUEDdiIAdiIBQQNxBEACQCABQX9zQQFxIABqIgVBA3QiAEHou+QAaiICIABB8LvkAGooAgAiASgCCCIDRwRAIAMgAjYCDCACIAM2AggMAQtB8L3kACAEQX4gBXdxNgIACyABIABBA3I2AgQgACABaiIAIAAoAgRBAXI2AgQMCAsgBUH4veQAKAIATQ0DAkACQCABRQRAQfS95AAoAgAiAEUNBiAAaEECdEHYuuQAaigCACICKAIEQXhxIAVrIQMgAiEBA0ACQCACKAIQIgANACACKAIUIgANACABKAIYIQcCQAJAIAEgASgCDCIARgRAIAFBFEEQIAEoAhQiABtqKAIAIgINAUEAIQAMAgsgASgCCCICIAA2AgwgACACNgIIDAELIAFBFGogAUEQaiAAGyEEA0AgBCEGIAIiAEEUaiAAQRBqIAAoAhQiAhshBCAAQRRBECACG2ooAgAiAg0ACyAGQQA2AgALIAdFDQQgASABKAIcQQJ0Qdi65ABqIgIoAgBHBEAgB0EQQRQgBygCECABRhtqIAA2AgAgAEUNBQwECyACIAA2AgAgAA0DQfS95ABB9L3kACgCAEF+IAEoAhx3cTYCAAwECyAAKAIEQXhxIAVrIgIgAyACIANJIgIbIQMgACABIAIbIQEgACECDAALAAsCQEECIAB0IgJBACACa3IgASAAdHFoIgZBA3QiAEHou+QAaiIBIABB8LvkAGooAgAiAigCCCIDRwRAIAMgATYCDCABIAM2AggMAQtB8L3kACAEQX4gBndxNgIACyACIAVBA3I2AgQgAiAFaiIGIAAgBWsiA0EBcjYCBCAAIAJqIAM2AgBB+L3kACgCACIBBEAgAUF4cUHou+QAaiEAQYC+5AAoAgAhBAJ/QfC95AAoAgAiBUEBIAFBA3Z0IgFxRQRAQfC95AAgASAFcjYCACAADAELIAAoAggLIQEgACAENgIIIAEgBDYCDCAEIAA2AgwgBCABNgIIC0GAvuQAIAY2AgBB+L3kACADNgIAIAJBCGoPCyAAIAc2AhggASgCECICBEAgACACNgIQIAIgADYCGAsgASgCFCICRQ0AIAAgAjYCFCACIAA2AhgLAkACQCADQRBPBEAgASAFQQNyNgIEIAEgBWoiBSADQQFyNgIEIAMgBWogAzYCAEH4veQAKAIAIgRFDQEgBEF4cUHou+QAaiEAQYC+5AAoAgAhAgJ/QfC95AAoAgAiBkEBIARBA3Z0IgRxRQRAQfC95AAgBCAGcjYCACAADAELIAAoAggLIQQgACACNgIIIAQgAjYCDCACIAA2AgwgAiAENgIIDAELIAEgAyAFaiIAQQNyNgIEIAAgAWoiACAAKAIEQQFyNgIEDAELQYC+5AAgBTYCAEH4veQAIAM2AgALDAcLIAAgAnJFBEBBACECQQIgB3QiAEEAIABrciAIcSIARQ0DIABoQQJ0Qdi65ABqKAIAIQALIABFDQELA0AgACACIAAoAgRBeHEiBCAFayIGIANJIgcbIQggACgCECIBRQRAIAAoAhQhAQsgAiAIIAQgBUkiABshAiADIAYgAyAHGyAAGyEDIAEiAA0ACwsgAkUNACAFQfi95AAoAgAiAE0gAyAAIAVrT3ENACACKAIYIQcCQAJAIAIgAigCDCIARgRAIAJBFEEQIAIoAhQiABtqKAIAIgENAUEAIQAMAgsgAigCCCIBIAA2AgwgACABNgIIDAELIAJBFGogAkEQaiAAGyEEA0AgBCEGIAEiAEEUaiAAQRBqIAAoAhQiARshBCAAQRRBECABG2ooAgAiAQ0ACyAGQQA2AgALIAdFDQMgAiACKAIcQQJ0Qdi65ABqIgEoAgBHBEAgB0EQQRQgBygCECACRhtqIAA2AgAgAEUNBAwDCyABIAA2AgAgAA0CQfS95ABB9L3kACgCAEF+IAIoAhx3cTYCAAwDCwJAAkACQAJAIAVB+L3kACgCACIBSwRAIAVB/L3kACgCACIATwRAQQAhAyAFQa+ABGoiAEEQdkAAIgFBf0YiAg0GIAFBEHQiAUUNBkGIvuQAQQAgAEGAgHxxIAIbIgNBiL7kACgCAGoiADYCAEGMvuQAQYy+5AAoAgAiAiAAIAAgAkkbNgIAAkACQEGEvuQAKAIAIgIEQEHYu+QAIQADQCAAKAIAIgQgACgCBCIGaiABRg0CIAAoAggiAA0ACwwCC0GUvuQAKAIAIgBBACAAIAFNG0UEQEGUvuQAIAE2AgALQZi+5ABB/x82AgBB3LvkACADNgIAQdi75AAgATYCAEH0u+QAQei75AA2AgBB/LvkAEHwu+QANgIAQfC75ABB6LvkADYCAEGEvOQAQfi75AA2AgBB+LvkAEHwu+QANgIAQYy85ABBgLzkADYCAEGAvOQAQfi75AA2AgBBlLzkAEGIvOQANgIAQYi85ABBgLzkADYCAEGcvOQAQZC85AA2AgBBkLzkAEGIvOQANgIAQaS85ABBmLzkADYCAEGYvOQAQZC85AA2AgBBrLzkAEGgvOQANgIAQaC85ABBmLzkADYCAEHku+QAQQA2AgBBtLzkAEGovOQANgIAQai85ABBoLzkADYCAEGwvOQAQai85AA2AgBBvLzkAEGwvOQANgIAQbi85ABBsLzkADYCAEHEvOQAQbi85AA2AgBBwLzkAEG4vOQANgIAQcy85ABBwLzkADYCAEHIvOQAQcC85AA2AgBB1LzkAEHIvOQANgIAQdC85ABByLzkADYCAEHcvOQAQdC85AA2AgBB2LzkAEHQvOQANgIAQeS85ABB2LzkADYCAEHgvOQAQdi85AA2AgBB7LzkAEHgvOQANgIAQei85ABB4LzkADYCAEH0vOQAQei85AA2AgBB/LzkAEHwvOQANgIAQfC85ABB6LzkADYCAEGEveQAQfi85AA2AgBB+LzkAEHwvOQANgIAQYy95ABBgL3kADYCAEGAveQAQfi85AA2AgBBlL3kAEGIveQANgIAQYi95ABBgL3kADYCAEGcveQAQZC95AA2AgBBkL3kAEGIveQANgIAQaS95ABBmL3kADYCAEGYveQAQZC95AA2AgBBrL3kAEGgveQANgIAQaC95ABBmL3kADYCAEG0veQAQai95AA2AgBBqL3kAEGgveQANgIAQby95ABBsL3kADYCAEGwveQAQai95AA2AgBBxL3kAEG4veQANgIAQbi95ABBsL3kADYCAEHMveQAQcC95AA2AgBBwL3kAEG4veQANgIAQdS95ABByL3kADYCAEHIveQAQcC95AA2AgBB3L3kAEHQveQANgIAQdC95ABByL3kADYCAEHkveQAQdi95AA2AgBB2L3kAEHQveQANgIAQey95ABB4L3kADYCAEHgveQAQdi95AA2AgBBhL7kACABNgIAQei95ABB4L3kADYCAEH8veQAIANBKGsiADYCACABIABBAXI2AgQgACABakEoNgIE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NwIAIAJBzABqIAFBhANqKQIANwIAIAJBxABqIAFB/AJqKQIANwIAIAIgBDYCOCACIAEpAvQCNwI8DAELIAJBOGogBxAyIAMoAgBBJUYNACADEOgDCyADIAIpAzg3AwAgA0EgaiACQdgAaikDADcDACADQRhqIAJB0ABqKQMANwMAIANBEGogAkHIAGopAwA3AwAgA0EIaiACQUBrKQMANwMAIAMoAgAiBEElRg0FCyAEQSRGDQEMBAsgAUElNgLIAiABIAEpA+ACNwOYAyACQcwAaiIFIAFB3AJqKAIANgIAIAJBxABqIgYgAUHUAmopAgA3AgAgAkECNgI4IAIgASkCzAI3AjwgAkE4ahDoAyABKALIAiIEQSVHDQEgASgC8AIhBCABQSU2AvACAkAgBEElRwRAIAJB3ABqIAFBlANqKAIANgIAIAJB1ABqIAFBjANqKQIANwIAIAUgAUGEA2opAgA3AgAgBiABQfwCaikCADcCACACIAQ2AjggAiABKQL0AjcCPAwBCyACQThqIAcQMiADKAIAQSVGDQAgAxDoAwsgAyACKQM4NwMAIANBIGogAkHYAGopAwA3AwAgA0EYaiACQdAAaikDADcDACADQRBqIAJByABqKQMANwMAIANBCGogAkFAaykDADcDACABKALIAiIEQSVHDQEgASgCnAMhBSABKALwAiEEIAFBJTYC8AICQCAEQSVHBEAgAkHcAGogAUGUA2ooAgA2AgAgAkHUAGogAUGMA2opAgA3AgAgAkHMAGogAUGEA2opAgA3AgAgAkHEAGogAUH8AmopAgA3AgAgAiAENgI4IAIgASkC9AI3AjwMAQsgAkE4aiAHEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDODcDACADQSBqIAJB2ABqKQMANwMAIANBGGogAkHQAGopAwA3AwAgA0EQaiACQcgAaikDADcDACADQQhqIAJBQGspAwA3AwAgAygCACIEQSVHDQIgASgCgAIhASACQQA6ADggASABIAJBOGoQ7xshASAAQQA2AgAgACABNgIEDAQLIAFBJTYCyAIgASABKQPgAjcDmAMgASABKALMAhDACAwCCyABKALgAiEFCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIARBG2sOCgEAAAAAAAAAAAIACyACQcQAaiIGIAcQ3QcgAkEQNgJAIAJB6NjfADYCPCACQTA6ADggB0HwAkG4AiADKAIAQSVGIgUbaigCACIEIAdB9AJBvAIgBRtqKAIAIgUgBCAFSRsgBCAFIAQgBUsbIAJBOGoQ7xshBSADKAIAIgRBJUYEQCABKALwAiEEIAFBJTYC8AICQCAEQSVHBEAgAkHcAGogAUGUA2ooAgA2AgAgAkHUAGogAUGMA2opAgA3AgAgAkHMAGogAUGEA2opAgA3AgAgBiABQfwCaikCADcCACACIAQ2AjggAiABKQL0AjcCPAwBCyACQThqIAcQMiADKAIAQSVGDQAgAxDoAwsgAyACKQM4NwMAIANBIGogAkHYAGopAwA3AwAgA0EYaiACQdAAaikDADcDACADQRBqIAJByABqKQMANwMAIANBCGogAkFAaykDADcDACADKAIAIgRBJUYNDwsgBEEkRg0CDA4LIAFBJTYCyAIgASABKALkAiIENgKcAyABIAEoAuACNgKYA0Ggv+QALQAAGiABKQPYAiEKIAEpA9ACIQtBGBCEASIIRQ0HIAggCjcDECAIIAs3AwAgCCAFIAQgBCAFSRs2AgwgCCAFIAQgBCAFSxs2AggCQCADKAIAQSVHDQAgASgC8AIhBCABQSU2AvACAkAgBEElRwRAIAJB3ABqIAFBlANqKAIANgIAIAJB1ABqIAFBjANqKQIANwIAIAJBzABqIAFBhANqKQIANwIAIAJBxABqIAFB/AJqKQIANwIAIAIgBDYCOCACIAEpAvQCNwI8DAELIAJBOGogBxAyIAMoAgBBJUYNACADEOgDCyADIAIpAzg3AwAgA0EgaiACQdgAaikDADcDACADQRhqIAJB0ABqKQMANwMAIANBEGogAkHIAGopAwA3AwAgA0EIaiACQUBrKQMANwMAIAMoAgBBJUcNACABKAKAAiEEIAJBADoAOCAEIAQgAkE4ahDvGyIEQQhqEIgDIARBIEEIEKIYCyABQcwCaiEEIAEtAKACQQJHBEBBACEFIAEtAKUCQQFxRQ0ECyADKAIAIgZBJUYEQCABKALwAiEFIAFBJTYC8AICQCAFQSVHBEAgAkHcAGogAUGUA2ooAgA2AgAgAkHUAGogAUGMA2opAgA3AgAgAkHMAGogAUGEA2opAgA3AgAgAkHEAGogAUH8AmopAgA3AgAgAiAFNgI4IAIgASkC9AI3AjwMAQsgAkE4aiAHEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDODcDACADQSBqIAJB2ABqKQMANwMAIANBGGogAkHQAGopAwA3AwAgA0EQaiACQcgAaikDADcDACADQQhqIAJBQGspAwA3AwBBACEFIAMoAgAiBkElRg0FC0EAIQUgBkECRw0DIAEtAOgCQQFxDQMgAS0A0AIiBkEBSyAGQQFxciABLQDRAiIGQSFHckUEQAwDCyABLQDQAkECRyAGQRVHcg0DDAILIAFBJTYCyAIgAEEANgIAIAEgASkD4AI3A5gDIAAgASgCzAI2AgQMDgsgAUElNgLIAiABIAEpA+ACNwOYAyABIAEoAswCEMAIDAsLIAFBJTYCyAIgBCkCACEKIAQgAikCfDcCACACQcwAaiAEQRBqIgUoAgA2AgAgAkHEAGogBEEIaiIGKQIANwIAIAYgAkGEAWopAgA3AgAgASkD4AIhCyAFIAJBjAFqKQIANwIAIARBGGogAkGUAWopAgA3AgAgBEEgaiACQZwBaigCADYCACACIAo3AjwgAkECNgI4IAEgCzcDmAMgAkE4ahDoAyACQThqIAEQMCACKAI8IQYgAigCOCIFQTJGDQIgAkEwaiACQfAAaikDADcDACACQShqIAJB6ABqKQMANwMAIAJBIGogAkHgAGopAwA3AwAgAkEYaiACQdgAaikDADcDACACQRBqIAJB0ABqKQMANwMAIAJBCGoiCSACQcgAaikDADcDACACIAIpA0A3AwAgBUEORw0DQaC/5AAtAAAaQRQQhAEiBUUNBCAFIAY2AgAgBSACKQMANwIEIAVBDGogCSkDADcCAAsgAygCACIGQSVHDQQLIAEoAvACIQYgAUElNgLwAgJAIAZBJUcEQCACQdwAaiABQZQDaigCADYCACACQdQAaiABQYwDaikCADcCACACQcwAaiABQYQDaikCADcCACACQcQAaiABQfwCaikCADcCACACIAY2AjggAiABKQL0AjcCPAwBCyACQThqIAcQMiADKAIAQSVGDQAgAxDoAwsgAyACKQM4NwMAIANBIGogAkHYAGopAwA3AwAgA0EYaiACQdAAaikDADcDACADQRBqIAJByABqKQMANwMAIANBCGogAkFAaykDADcDACADKAIAIgZBJUcNAwwECyAAQQA2AgAg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xgI6AKQBIAIgBjYAoAEgAkEBOgCfASACIAU6AJ4BIAIgBDsAnAEgAiADNgCYASACIBA3AJABIAIgDzcAiAEgAkEQaiABIAJBiAFqEL8IIAIoAhAiAUHIAmohAyABQShqIQgCQAJAIAEoAsgCIgRBJUcEQCABKALgAiEFDAELIAEoAvACIQQgAUElNgLwAgJAIARBJUcEQCACQawBaiABQZQDaigCADYCACACQaQBaiABQYwDaikCADcCACACQZwBaiABQYQDaikCADcCACACQZQBaiABQfwCaikCADcCACACIAQ2AogBIAIgASkC9AI3AowBDAELIAJBiAFqIAgQMiADKAIAQSVGDQAgAxDoAwsgAyACKQOIATcDACADQSBqIAJBqAFqKQMANwMAIANBGGogAkGgAWopAwA3AwAgA0EQaiACQZgBaikDADcDACADQQhqIAJBkAFqKQMANwMAIAFBnANB4AIgASgCyAIiBEElRhtqKAIAIQUgBEElRw0AIAEoAvACIQQgAUElNgLwAgJAIARBJUcEQCACQawBaiABQZQDaigCADYCACACQaQBaiABQYwDaikCADcCACACQZwBaiABQYQDaikCADcCACACQZQBaiABQfwCaikCADcCACACIAQ2AogBIAIgASkC9AI3AowBDAELIAJBiAFqIAgQMiADKAIAQSVGDQAgAxDoAwsgAyACKQOIATcDACADQSBqIAJBqAFqKQMANwMAIANBGGogAkGgAWopAwA3AwAgA0EQaiACQZgBaikDADcDACADQQhqIAJBkAFqKQMANwMAIAMoAgAiBEElRw0AIAFBgAJqKAIAIQEgAkEAOgCIASABIAEgAkGIAWoQ7xshASAAQQU2AgAgACABNgIEDAELAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBEECaw4jAQkJCQkJCQkJAAkJCQkJCQkJCQkJCQkJCQYJBwgJCQkJCQoJCyABQSU2AsgCIAEgASkD4AI3A5gDIAJBnAFqIgogAUHcAmooAgA2AgAgAkGUAWoiBiABQdQCaikCADcCACACQQs2AogBIAIgASkCzAI3AowBIAJBiAFqEOgDIAFBnANB4AIgASgCyAIiBEElRgR/IAEoAvACIQQgAUElNgLwAgJAIARBJUcEQCACQawB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KAIAIgpBJUYNAQsgCkEkRw0AIAFBJTYCyAIgASABKQPgAjcDmAMgASABKALMAhDACAsgAEENNgIAIAAgBjYCBAwBCyABQShqIQQCQAJAIAEtAKACQQJHDQAgDS0AGQ0AAkACQCABKALIAiIKQSVGBEAgAUHIAmohAiABKALwAiEGIAFBJTYC8AICQCAGQSVHBEAgDUGEAWogAUGUA2ooAgA2AgAgDUH8AGogAUGMA2opAgA3AgAgDUH0AGogAUGEA2opAgA3AgAgDUHsAGogAUH8AmopAgA3AgAgDSAGNgJgIA0gASkC9AI3AmQMAQsgDUHgAGogBBAyIAIoAgBBJUYNACACEOgDCyACIA0pA2A3AwAgAkEgaiANQYABaikDADcDACACQRhqIA1B+ABqKQMANwMAIAJBEGogDUHwAGopAwA3AwAgAkEIaiANQegAaikDADcDACACKAIAIgpBJUYNAQsgCkEIRg0BCyANQQA6AB4MAgsgAUElNgLIAiABIAEpA+ACNwOYAyANQfQAaiABQdwCaigCADYCACANQewAaiABQdQCaikCADcCACANQQg2AmAgDSABKQLMAjcCZCANQeAAahDoAyANQQE6AB4MAQsgDUEAOgAeCwJAAkACQCABKALIAiIKQSVHDQAgAUHIAmohAiABKALwAiEGIAFBJTYC8AICQCAGQSVHBEAgDUGEAWogAUGUA2ooAgA2AgAgDUH8AGogAUGMA2opAgA3AgAgDUH0AGogAUGEA2opAgA3AgAgDUHsAGogAUH8AmopAgA3AgAgDSAGNgJgIA0gASkC9AI3AmQMAQsgDUHgAGogBBAyIAIoAgBBJUYNACACEOgDCyACIA0pA2A3AwAgAkEgaiANQYABaikDADcDACACQRhqIA1B+ABqKQMANwMAIAJBEGogDUHwAGopAwA3AwAgAkEIaiANQegAaikDADcDACACKAIAIgpBJUcNAEEAIQoMAQsgCkETRwRAQQAhCgwBCyANQQhqIAFBASABKALgAhCeBiANKAIMIQogDSgCCA0BCyANQQE6ACUgDUEBOgAxIA0gAS0AuwI6ADAgDSABKAGqAjYAHyANIAEvAa4COwAjIA0gASkAsQI3ACYgDSABLwC5AjsALiANIAEpAL0CNwAyIA0gAS8AxQI7ADogDUE8aiABIA1BH2oQvwggDSgCPCEBIA1B6ABqIAVBCGopAwA3AwAgDUHwAGogBUEQaikDADcDACANQfgAaiAFQRhqKQMANwMAIA1BiAFqIANBCGooAgA2AgAgDSAHNgKMASANIAo2ArQBIA0gBSkDADcDYCANIAMpAgA3A4ABIAFByAJqIQIgAUEoaiEEIA0gDUEQajYCkAEgDSANQRhqNgKUASANIA1BG2o2ArABIA0gDUEaajYCrAEgDSANQRlqNgKoASANIA1BHmo2AqQBIA0gDUEdajYCoAEgDSANQRxqNgKcASANIA1BF2o2ApgBAkACQAJAAkACQAJAIAEoAsgCIgtBJUYEQCABKALwAiEDIAFBJTYC8AICQCADQSVHBEAgDUHcAWogAUGUA2ooAgA2AgAgDUHUAWogAUGMA2opAgA3AgAgDUHMAWogAUGEA2opAgA3AgAgDUHEAWogAUH8AmopAgA3AgAgDSADNgK4ASANIAEpAvQCNwK8AQwBCyANQbgBaiAEEDIgAigCAEElRg0AIAIQ6AMLIAIgDSkDuAE3AwAgAkEgaiANQdgBaikDADcDACACQRhqIA1B0AFqKQMANwMAIAJBEGogDUHIAWopAwA3AwAgAkEIaiANQcABaikDADcDAEEAIQMgAigCACILQSVGDQELQQAhAyALQRVHDQEgAS0AzAINAiABQSU2AsgCIAEgASkD4AI3A5gDIA1BzAFqIAFBzAJqIgNBEGooAgA2AgAgDUHEAWogA0EIaikCADcCACANQRU2ArgBIA0gAykCADcCvAEgDUG4AWoQ6AMgDSABEI0DIA0oAgQhAyANKAIADQQgAigCACILQSVHDQELIAEoAvACIQUgAUElNgLwAgJAIAVBJUcEQCANQdwBaiABQZQDaigCADYCACANQdQBaiABQYwDaikCADcCACANQcwBaiABQYQDaikCADcCACANQcQBaiABQfwCaikCADcCACANIAU2ArgBIA0gASkC9AI3ArwBDAELIA1BuAFqIAQQMiACKAIAQSVGDQAgAhDoAwsgAiANKQO4ATcDACACQSBqIA1B2AFqKQMANwMAIAJBGGogDUHQAWopAwA3AwAgAkEQaiANQcgBaikDADcDACACQQhqIA1BwAFqKQMANwMAIAIoAgAiC0ElRg0CCwJAIAtBDmsOAgIAAQsgAUElNgLIAiABIAEpA+ACNwOY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IAJBFEcNASABQQZGDRgMAQsgBCgCgAMhAiAEQSU2AoADAkAgAkElRwRAIARB1ANqIARBpANqKAIANgIAIARBzANqIARBnANqKQIANwIAIARBxANqIARBlANqKQIANwIAIARBvANqIARBjANqKQIANwIAIAQgBCkChAM3ArQDIAQgAjYCsAMMAQsgBEGwA2ogAxAyIAQoAtgCQSVGDQAgARDoAwsgASAEKQOwAzcDACABQSBqIARB0ANqKQMANwMAIAFBGGogBEHIA2opAwA3AwAgAUEQaiAEQcADaikDADcDACABQQhqIARBuANqKQMANwMAIAQoAtgCIgJBJUYNASAELQDcAiEBCyACQRVHDQEgAUUNFgwBCyAEKAKAAyECIARBJTYCgAMCQCACQSVHBEAgBEHUA2ogBEGkA2ooAgA2AgAgBEHMA2ogBEGcA2opAgA3AgAgBEHEA2ogBEGUA2opAgA3AgAgBEG8A2ogBEGMA2opAgA3AgAgBCAEKQKEAzcCtAMgBCACNgKwAwwBCyAEQbADaiADEDIgBCgC2AJBJUYNACABEOgDCyABIAQpA7ADNwMAIAFBIGogBEHQA2opAwA3AwAgAUEYaiAEQcgDaikDADcDACABQRBqIARBwANqKQMANwMAIAFBCGogBEG4A2opAwA3AwAgBCgC2AIiAkElRg0BIAQtANwCIQELIAJBFEcNASABQQlGDRQMAQsgBCgCgAMhAiAEQSU2AoADAkAgAkElRwRAIARB1ANqIARBpANqKAIANgIAIARBzANqIARBnANqKQIANwIAIARBxANqIARBlANqKQIANwIAIARBvANqIARBjANqKQIANwIAIAQgBCkChAM3ArQDIAQgAjYCsAMMAQsgBEGwA2ogAxAyIAQoAtgCQSVGDQAgARDoAwsgASAEKQOwAzcDACABQSBqIARB0ANqKQMANwMAIAFBGGogBEHIA2opAwA3AwAgAUEQaiAEQcADaikDADcDACABQQhqIARBuANqKQMANwMAIAQoAtgCIgJBJUYNASAELQDcAiEBCyACQRRHDQEgAUEHRg0SDAELIAQoAoADIQIgBEElNgKAAwJAIAJBJUcEQCAEQdQDaiAEQaQDaigCADYCACAEQcwDaiAEQZwDaikCADcCACAEQcQDaiAEQZQDaikCADcCACAEQbwDaiAEQYwDaikCADcCACAEIAQpAoQDNwK0AyAEIAI2ArADDAELIARBsANqIAMQMiAEKALYAkElRg0AIAEQ6AMLIAEgBCkDsAM3AwAgAUEgaiAEQdADaikDADcDACABQRhqIARByANqKQMANwMAIAFBEGogBEHAA2opAwA3AwAgAUEIaiAEQbgDaikDADcDACAEKALYAiICQSVGDQEgBC0A3AIhAQsgAkEURw0BIAFBC0YNEAwBCyAEKAKAAyECIARBJTYCgAMCQCACQSVHBEAgBEHUA2ogBEGkA2ooAgA2AgAgBEHMA2ogBEGcA2opAgA3AgAgBEHEA2ogBEGUA2opAgA3AgAgBEG8A2ogBEGMA2opAgA3AgAgBCAEKQKEAzcCtAMgBCACNgKwAwwBCyAEQbADaiADEDIgBCgC2AJBJUYNACABEOgDCyABIAQpA7ADNwMAIAFBIGogBEHQA2opAwA3AwAgAUEYaiAEQcgDaikDADcDACABQRBqIARBwANqKQMANwMAIAFBCGogBEG4A2opAwA3AwAgBCgC2AIiAkElRg0BIAQtANwCIQELIAJBFEcNASABQQxGDQ4MAQsgBCgCgAMhAiAEQSU2AoADAkAgAkElRwRAIARB1ANqIARBpANqKAIANgIAIARBzANqIARBnANqKQIANwIAIARBxANqIARBlANqKQIANwIAIARBvANqIARBjANqKQIANwIAIAQgBCkChAM3ArQDIAQgAjYCsAMMAQsgBEGwA2ogAxAyIAQoAtgCQSVGDQAgARDoAwsgASAEKQOwAzcDACABQSBqIARB0ANqKQMANwMAIAFBGGogBEHIA2opAwA3AwAgAUEQaiAEQcADaikDADcDACABQQhqIARBuANqKQMANwMAIAQoAtgCIgJBJUYNAQsgAkEJRg0MDAELIAQoAoADIQIgBEElNgKAAwJAIAJBJUcEQCAEQdQDaiAEQaQDaigCADYCACAEQcwDaiAEQZwDaikCADcCACAEQcQDaiAEQZQDaikCADcCACAEQbwDaiAEQYwDaikCADcCACAEIAQpAoQDNwK0AyAEIAI2ArADDAELIARBsANqIAMQMiAEKALYAkElRg0AIAEQ6AMLIAEgBCkDsAM3AwAgAUEgaiAEQdADaikDADcDACABQRhqIARByANqKQMANwMAIAFBEGogBEHAA2opAwA3AwAgAUEIaiAEQbgDaikDADcDACAEKALYAiICQSVGDQELIAJBEUYNCgwBCyAEKAKAAyECIARBJTYCgAMCQCACQSVHBEAgBEHUA2ogBEGkA2ooAgA2AgAgBEHMA2ogBEGcA2opAgA3AgAgBEHEA2ogBEGUA2opAgA3AgAgBEG8A2ogBEGMA2opAgA3AgAgBCAEKQKEAzcCtAMgBCACNgKwAwwBCyAEQbADaiADEDIgBCgC2AJBJUYNACABEOgDCyABIAQpA7ADNwMAIAFBIGogBEHQA2opAwA3AwAgAUEYaiAEQcgDaikDADcDACABQRBqIARBwANqKQMANwMAIAFBCGogBEG4A2opAwA3AwAgBCgC2AJBJUYNAQsgBC0A+AINAAJAIAMQvwoiAUUEQCAEKAKQAiEBIARBADoAsAMgASABIARBsANqEO8bIgFBCGoQiAMgAUEgQQgQohgMAQsgASgCAEEURg0BCyAEQbADaiEKIwBB0ABrIgEkACAEQRBqIgJByAJqIQMgAkEoaiEGAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAIoAsgCIgVBJUYEQCACKALwAiEFIAJBJTYC8AICQCAFQSVHBEAgAUHMAGogAkGUA2ooAgA2AgAgAUHEAGogAkGMA2opAgA3AgAgAUE8aiACQYQDaikCADcCACABQTRqIAJB/AJqKQIANwIAIAEgBTYCKCABIAIpAvQCNwIsDAELIAFBKGogBhAyIAMoAgBBJUYNACADEOgDCyADIAEpAyg3AwAgA0EgaiABQcgAaikDADcDACADQRhqIAFBQGspAwA3AwAgA0EQaiABQThqKQMANwMAIANBCGogAUEwaikDADcDACADKAIAIgVBJUYNAQsgBUECRyACLQDQAiIIQQJHciACLQDRAiIHQRdHcg0BDB8LIAIoAvACIQUgAkElNgLwAgJAIAVBJUcEQCABQcwAaiACQZQDaigCADYCACABQcQAaiACQYwDaikCADcCACABQTxqIAJBhANqKQIANwIAIAFBNGogAkH8AmopAgA3AgAgASAFNgIoIAEgAikC9AI3AiwMAQsgAUEoaiAGEDIgAygCAEElRg0AIAMQ6AMLIAMgASkDKDcDACADQSBqIAFByABqKQMANwMAIANBGGogAUFAaykDADcDACADQRBqIAFBOGopAwA3AwAgA0EIaiABQTBqKQMANwMAIAMoAgAiBUElRg0BIAItANECIQcgAi0A0AIhCAsgBUECRyAIQQJHcg0BIAdBGEYNHQwBCyACKALwAiEFIAJBJTYC8AICQCAFQSVHBEAgAUHMAGogAkGUA2ooAgA2AgAgAUHEAGogAkGMA2opAgA3AgAgAUE8aiACQYQDaikCADcCACABQTRqIAJB/AJqKQIANwIAIAEgBTYCKCABIAIpAvQCNwIsDAELIAFBKGogBhAyIAMoAgBBJUYNACADEOgDCyADIAEpAyg3AwAgA0EgaiABQcgAaikDADcDACADQRhqIAFBQGspAwA3AwAgA0EQaiABQThqKQMANwMAIANBCGogAUEwaikDADcDACADKAIAIgVBJUYNASACLQDQAiEICyAFQQJHDQEgCEEDRg0bDAELIAIoAvACIQUgAkElNgLwAgJAIAVBJUcEQCABQcwAaiACQZQDaigCADYCACABQcQAaiACQYwDaikCADcCACABQTxqIAJBhANqKQIANwIAIAFBNGogAkH8AmopAgA3AgAgASAFNgIoIAEgAikC9AI3AiwMAQsgAUEoaiAGEDIgAygCAEElRg0AIAMQ6AMLIAMgASkDKDcDACADQSBqIAFByABqKQMANwMAIANBGGogAUFAaykDADcDACADQRBqIAFBOGopAwA3AwAgA0EIaiABQTBqKQMANwMAIAMoAgAiBUElRg0BIAItANACIQgLIAVBAkcNASAIQQRGDRkMAQsgAigC8AIhBSACQSU2AvACAkAgBUElRwRAIAFBzABqIAJBlANqKAIANgIAIAFBxABqIAJBjANqKQIANwIAIAFBPGogAkGEA2opAgA3AgAgAUE0aiACQfwCaikCADcCACABIAU2AiggASACKQL0AjcCLAwBCyABQShqIAYQMiADKAIAQSVGDQAgAxDoAwsgAyABKQMoNwMAIANBIGogAUHIAGopAwA3AwAgA0EYaiABQUBrKQMANwMAIANBEGogAUE4aikDADcDACADQQhqIAFBMGopAwA3AwAgAygCACIFQSVGDQEgAi0A0AIhCAsgBUECRw0BIAhBBUYNFwwBCyACKALwAiEFIAJBJTYC8AICQCAFQSVHBEAgAUHMAGogAkGUA2ooAgA2AgAgAUHEAGogAkGMA2opAgA3AgAgAUE8aiACQYQDaikCADcCACABQTRqIAJB/AJqKQIANwIAIAEgBTYCKCABIAIpAvQCNwIsDAELIAFBKGogBhAyIAMoAgBBJUYNACADEOgDCyADIAEpAyg3AwAgA0EgaiABQcgAaikDADcDACADQRhqIAFBQGspAwA3AwAgA0EQaiABQThqKQMANwMAIANBCGogAUEwaikDADcDACADKAIAIgVBJUYNAQsgBUEdRg0VDAELIAIoAvACIQUgAkElNgLwAgJAIAVBJUcEQCABQcwAaiACQZQDaigCADYCACABQcQAaiACQYwDaikCADcCACABQTxqIAJBhANqKQIANwIAIAFBNGogAkH8AmopAgA3AgAgASAFNgIoIAEgAikC9AI3AiwMAQsgAUEoaiAGEDIgAygCAEElRg0AIAMQ6AMLIAMgASkDKDcDACADQSBqIAFByABqKQMANwMAIANBGGogAUFAaykDADcDACADQRBqIAFBOGopAwA3AwAgA0EIaiABQTBqKQMANwMAIAMoAgAiBUElRg0BCyAFQR5GDRMMAQsgAigC8AIhBSACQSU2AvACAkAgBUElRwRAIAFBzABqIAJBlANqKAIANgIAIAFBxABqIAJBjANqKQIANwIAIAFBPGogAkGEA2opAgA3AgAgAUE0aiACQfwCaikCADcCACABIAU2AiggASACKQL0AjcCLAwBCyABQShqIAYQMiADKAIAQSVGDQAgAxDoAwsgAyABKQMoNwMAIANBIGogAUHIAGopAwA3AwAgA0EYaiABQUBrKQMANwMAIANBEGogAUE4aikDADcDACADQQhqIAFBMGopAwA3AwAgAygCACIFQSVGDQELIAVBG0YNEQwBCyACKALwAiEFIAJBJTYC8AICQCAFQSVHBEAgAUHMAGogAkGUA2ooAgA2AgAgAUHEAGogAkGMA2opAgA3AgAgAUE8aiACQYQDaikCADcCACABQTRqIAJB/AJqKQIANwIAIAEgBTYCKCABIAIpAvQCNwIsDAELIAFBKGogBhAyIAMoAgBBJUYNACADEOgDCyADIAEpAyg3AwAgA0EgaiABQcgAaikDADcDACADQRhqIAFBQGspAwA3AwAgA0EQaiABQThqKQMANwMAIANBCGogAUEwaikDADcDACADKAIAIgVBJUYNAQsgBUERRg0PDAELIAIoAvACIQUgAkElNgLwAgJAIAVBJUcEQCABQcwAaiACQZQDaigCADYCACABQcQAaiACQYwDaikCADcCACABQTxqIAJBhANqKQIANwIAIAFBNGogAkH8AmopAgA3AgAgASAFNgIoIAEgAikC9AI3AiwMAQsgAUEoaiAGEDIgAygCAEElRg0AIAMQ6AMLIAMgASkDKDcDACADQSBqIAFByABqKQMANwMAIANBGGogAUFAaykDADcDACADQRBqIAFBOGopAwA3AwAgA0EIaiABQTBqKQMANwMAIAMoAgAiBUElRg0BCyAFQQlGDQ0MAQsgAigC8AIhBSACQSU2AvACAkAgBUElRwRAIAFBzABqIAJBlANqKAIANgIAIAFBxABqIAJBjANqKQIANwIAIAFBPGogAkGEA2opAgA3AgAgAUE0aiACQfwCaikCADcCACABIAU2AiggASACKQL0AjcCLAwBCyABQShqIAYQMiADKAIAQSVGDQAgAxDoAwsgAyABKQMoNwMAIANBIGogAUHIAGopAwA3AwAgA0EYaiABQUBrKQMANwMAIANBEGogAUE4aikDADcDACADQQhqIAFBMGopAwA3AwAgAygCACIFQSVGDQELIAVBC0YNCwwBCyACKALwAiEFIAJBJTYC8AICQCAFQSVHBEAgAUHMAGogAkGUA2ooAgA2AgAgAUHEAGogAkGMA2opAgA3AgAgAUE8aiACQYQDaikCADcCACABQTRqIAJB/AJqKQIANwIAIAEgBTYCKCABIAIpAvQCNwIsDAELIAFBKGogBhAyIAMoAgBBJUYNACADEOgDCyADIAEpAyg3AwAgA0EgaiABQcgAaikDADcDACADQRhqIAFBQGspAwA3AwAgA0EQaiABQThqKQMANwMAIANBCGogAUEwaikDADcDACADKAIAIgVBJUYNAQsgBUENRg0JDAELIAIoAvACIQUgAkElNgLwAgJAIAVBJUcEQCABQcwAaiACQZQDaigCADYCACABQcQAaiACQYwDaikCADcCACABQTxqIAJBhANqKQIANwIAIAFBNGogAkH8AmopAgA3AgAgASAFNgIoIAEgAikC9AI3AiwMAQsgAUEoaiAGEDIgAygCAEElRg0AIAMQ6AMLIAMgASkDKDcDACADQSBqIAFByABqKQMANwMAIANBGGogAUFAaykDADcDACADQRBqIAFBOGopAwA3AwAgA0EIaiABQTBqKQMANwMAIAMoAgAiBUElRg0BCyACLQDRAiEHIAVBAkcgAi0A0AIiCEECR3INASAHQQtGDQcMAQsgAigC8AIhBSACQSU2AvACAkAgBUElRwRAIAFBzABqIAJBlANqKAIANgIAIAFBxABqIAJBjANqKQIANwIAIAFBPGogAkGEA2opAgA3AgAgAUE0aiACQfwCaikCADcCACABIAU2AiggASACKQL0AjcCLAwBCyABQShqIAYQMiADKAIAQSVGDQAgAxDoAwsgAyABKQMoNwMAIANBIGogAUHIAGopAwA3AwAgA0EYaiABQUBrKQMANwMAIANBEGogAUE4aikDADcDACADQQhqIAFBMGopAwA3AwAgAygCACIFQSVGDQEgAi0A0QIhByACLQDQAiEICyAFQQJHIAhBAkdyDQEgB0EZRg0FDAELIAIoAvACIQUgAkElNgLwAgJAIAVBJUcEQCABQcwAaiACQZQDaigCADYCACABQcQAaiACQYwDaikCADcCACABQTxqIAJBhANqKQIANwIAIAFBNGogAkH8AmopAgA3AgAgASAFNgIoIAEgAikC9AI3AiwMAQsgAUEoaiAGEDIgAygCAEElRg0AIAMQ6AMLIAMgASkDKDcDACADQSBqIAFByABqKQMANwMAIANBGGogAUFAaykDADcDACADQRBqIAFBOGopAwA3AwAgA0EIaiABQTBqKQMANwMAIAMoAgAiBUElRg0BIAItANECIQcgAi0A0AIhCAsgBUECRyAIQQJHcg0BIAdBFkYNAwwBCyACKALwAiEFIAJBJTYC8AICQCAFQSVHBEAgAUHMAGogAkGUA2ooAgA2AgAgAUHEAGogAkGMA2opAgA3AgAgAUE8aiACQYQDaikCADcCACABQTRqIAJB/AJqKQIANwIAIAEgBTYCKCABIAIpAvQCNwIsDAELIAFBKGogBhAyIAMoAgBBJUYNACADEOgDCyADIAEpAyg3AwAgA0EgaiABQcgAaikDADcDACADQRhqIAFBQGspAwA3AwAgA0EQaiABQThqKQMANwMAIANBCGogAUEwaikDADcDACADKAIAIgVBJUYNAQsgBUEcRg0BCyABQR1qIAJBvwJqKQAANwAAIAFBGGogAkG6AmopAAA3AwAgAUEQaiACQbICaikAADcDACABIAIpAKoCNwMIAkAgBhC/CiIFRQ0AIAUoAgBBAkcNACABQQhqIAUtAAggBUEJai0AABDYDEUNAQsCQCAGEL8KIgVFDQAgBSgCAEECRw0AIAUtAAhBAkcNACAFLQAJQRxHDQAgBhD0DyIFBEAgBSgCAEEJRg0CCwJAIAYQ9A8iBUUNACAFKAIAQRRHDQAgBS0ABEEERg0CCyAGEPQPIgVFDQAgBSgCAEEGRw0AQQEhAwwCCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADKAIAIgVBJUYEQCACKALwAiEFIAJBJTYC8AICQCAFQSVHBEAgAUHMAGogAkGUA2ooAgA2AgAgAUHEAGogAkGMA2opAgA3AgAgAUE8aiACQYQDaikCADcCACABQTRqIAJB/AJqKQIANwIAIAEgBTYCKCABIAIpAvQCNwIsDAELIAFBKGogBhAyIAMoAgBBJUYNACADEOgDCyADIAEpAyg3AwAgA0EgaiABQcgAaikDADcDACADQRhqIAFBQGspAwA3AwAgA0EQaiABQThqKQMANwMAIANBCGogAUEwaikDADcDACADKAIAIgVBJUYNAQsgBUEURyACLQDMAiIHQQtHcg0BQQEhAwwZCyACKALwAiEFIAJBJTYC8AICQCAFQSVHBEAgAUHMAGogAkGUA2ooAgA2AgAgAUHEAGogAkGMA2opAgA3AgAgAUE8aiACQYQDaikCADcCACABQTRqIAJB/AJqKQIANwIAIAEgBTYCKCABIAIpAvQCNwIsDAELIAFBKGogBhAyIAMoAgBBJUYNACADEOgDCyADIAEpAyg3AwAgA0EgaiABQcgAaikDADcDACADQRhqIAFBQGspAwA3AwAgA0EQaiABQThqKQMANwMAIANBCGogAUEwaikDADcDACADKAIAIgVBJUYNASACLQDMAiEHCyAFQRRHIAdBDEdyDQFBASEDDBcLIAIoAvACIQUgAkElNgLwAgJAIAVBJUcEQCABQcwAaiACQZQDaigCADYCACABQcQAaiACQYwDaikCADcCACABQTxqIAJBhANqKQIANwIAIAFBNGogAkH8AmopAgA3AgAgASAFNgIoIAEgAikC9AI3AiwMAQsgAUEoaiAGEDIgAygCAEElRg0AIAMQ6AMLIAMgASkDKDcDACADQSBqIAFByABqKQMANwMAIANBGGogAUFAaykDADcDACADQRBqIAFBOGopAwA3AwAgA0EIaiABQTBqKQMANwMAIAMoAgAiBUElRg0BCyAFQRpHDQFBASEDDBULIAIoAvACIQUgAkElNgLwAgJAIAVBJUcEQCABQcwAaiACQZQDaigCADYCACABQcQAaiACQYwDaikCADcCACABQTxqIAJBhANqKQIANwIAIAFBNGogAkH8AmopAgA3AgAgASAFNgIoIAEgAikC9AI3AiwMAQsgAUEoaiAGEDIgAygCAEElRg0AIAMQ6AMLIAMgASkDKDcDACADQSBqIAFByABqKQMANwMAIANBGGogAUFAaykDADcDACADQRBqIAFBOGopAwA3AwAgA0EIaiABQTBqKQMANwMAIAMoAgAiBUElRg0BCyAFQQhHDQFBASEDDBMLIAIoAvACIQUgAkElNgLwAgJAIAVBJUcEQCABQcwAaiACQZQDaigCADYCACABQcQAaiACQYwDaikCADcCACABQTxqIAJBhANqKQIANwIAIAFBNGogAkH8AmopAgA3AgAgASAFNgIoIAEgAikC9AI3AiwMAQsgAUEoaiAGEDIgAygCAEElRg0AIAMQ6AMLIAMgASkDKDcDACADQSBqIAFByABqKQMANwMAIANBGGogAUFAaykDADcDACADQRBqIAFBOGopAwA3AwAgA0EIaiABQTBqKQMANwMAIAMoAgAiBUElRg0BCyAFQQJHIAItANACIgdBAkdyIAItANECIghBIkdyDQFBASEDDBELIAIoAvACIQUgAkElNgLwAgJAIAVBJUcEQCABQcwAaiACQZQDaigCADYCACABQcQAaiACQYwDaikCADcCACABQTxqIAJBhANqKQIANwIAIAFBNGogAkH8AmopAgA3AgAgASAFNgIoIAEgAikC9AI3AiwMAQsgAUEoaiAGEDIgAygCAEElRg0AIAMQ6AMLIAMgASkDKDcDACADQSBqIAFByABqKQMANwMAIANBGGogAUFAaykDADcDACADQRBqIAFBOGopAwA3AwAgA0EIaiABQTBqKQMANwMAIAMoAgAiBUElRg0BIAItANECIQggAi0A0AIhBwsgBUECRyAHQQJHciAIQSBHcg0BQQEhAwwPCyACKALwAiEFIAJBJTYC8AICQCAFQSVHBEAgAUHMAGogAkGUA2ooAgA2AgAgAUHEAGogAkGMA2opAgA3AgAgAUE8aiACQYQDaikCADcCACABQTRqIAJB/AJqKQIANwIAIAEgBTYCKCABIAIpAvQCNwIsDAELIAFBKGogBhAyIAMoAgBBJUYNACADEOgDCyADIAEpAyg3AwAgA0EgaiABQcgAaikDADcDACADQRhqIAFBQGspAwA3AwAgA0EQaiABQThqKQMANwMAIANBCGogAUEwaikDADcDACADKAIAIgVBJUYNASACLQDRAiEIIAItANACIQcLIAVBAkcgB0ECR3IgCEEhR3INAUEBIQMMDQsgAigC8AIhBSACQSU2AvACAkAgBUElRwRAIAFBzABqIAJBlANqKAIANgIAIAFBxABqIAJBjANqKQIANwIAIAFBPGogAkGEA2opAgA3AgAgAUE0aiACQfwCaikCADcCACABIAU2AiggASACKQL0AjcCLAwBCyABQShqIAYQMiADKAIAQSVGDQAgAxDoAwsgAyABKQMoNwMAIANBIGogAUHIAGopAwA3AwAgA0EYaiABQUBrKQMANwMAIANBEGogAUE4aikDADcDACADQQhqIAFBMGopAwA3AwAgAygCACIFQSVGDQELIAVBGEcNAUEBIQMMCwsgAigC8AIhBSACQSU2AvACAkAgBUElRwRAIAFBzABqIAJBlANqKAIANgIAIAFBxABqIAJBjANqKQIANwIAIAFBPGogAkGEA2opAgA3AgAgAUE0aiACQfwCaikCADcCACABIAU2AiggASACKQL0AjcCLAwBCyABQShqIAYQMiADKAIAQSVGDQAgAxDoAwsgAyABKQMoNwMAIANBIGogAUHIAGopAwA3AwAgA0EYaiABQUBrKQMANwMAIANBEGogAUE4aikDADcDACADQQhqIAFBMGopAwA3AwAgAygCACIFQSVGDQELIAVBGUcNAUEBIQMMCQsgAigC8AIhBSACQSU2AvACAkAgBUElRwRAIAFBzABqIAJBlANqKAIANgIAIAFBxABqIAJBjANqKQIANwIAIAFBPGogAkGEA2opAgA3AgAgAUE0aiACQfwCaikCADcCACABIAU2AiggASACKQL0AjcCLAwBCyABQShqIAYQMiADKAIAQSVGDQAgAxDoAwsgAyABKQMoNwMAIANBIGogAUHIAGopAwA3AwAgA0EYaiABQUBrKQMANwMAIANBEGogAUE4aikDADcDACADQQhqIAFBMGopAwA3AwAgAygCACIFQSVGDQELIAVBFEcNASACLQDMAkEERw0BQQEhAwwHCyACKALwAiEFIAJBJTYC8AICQCAFQSVHBEAgAUHMAGogAkGUA2ooAgA2AgAgAUHEAGogAkGMA2opAgA3AgAgAUE8aiACQYQDaikCADcCACABQTRqIAJB/AJqKQIANwIAIAEgBTYCKCABIAIpAvQCNwIsDAELIAFBKGogBhAyIAMoAgBBJUYNACADEOgDCyADIAEpAyg3AwAgA0EgaiABQcgAaikDADcDACADQRhqIAFBQGspAwA3AwAgA0EQaiABQThqKQMANwMAIANBCGogAUEwaikDADcDACADKAIAIgVBJUYNAQsgAi0A0QIiByAFQQJHIAItANACIgNBAkdycg0BQQEhAwwFCyACKALwAiEFIAJBJTYC8AICQCAFQSVHBEAgAUHMAGogAkGUA2ooAgA2AgAgAUHEAGogAkGMA2opAgA3AgAgAUE8aiACQYQDaikCADcCACABQTRqIAJB/AJqKQIANwIAIAEgBTYCKCABIAIpAvQCNwIsDAELIAFBKGogBhAyIAMoAgBBJUYNACADEOgDCyADIAEpAyg3AwAgA0EgaiABQcgAaikDADcDACADQRhqIAFBQGspAwA3AwAgA0EQaiABQThqKQMANwMAIANBCGogAUEwaikDADcDACADKAIAIgVBJUYNASACLQDRAiEHIAItANACIQMLIAVBAkcgA0ECR3IgB0EdR3INAUEBIQMMAwsgAigC8AIhBSACQSU2AvACAkAgBUElRwRAIAFBzABqIAJBlANqKAIANgIAIAFBxABqIAJBjANqKQIANwIAIAFBPGogAkGEA2opAgA3AgAgAUE0aiACQfwCaikCADcCACABIAU2AiggASACKQL0AjcCLAwBCyABQShqIAYQMiADKAIAQSVGDQAgAxDoAwsgAyABKQMoNwMAIANBIGogAUHIAGopAwA3AwAgA0EYaiABQUBrKQMANwMAIANBEGogAUE4aikDADcDACADQQhqIAFBMGopAwA3AwAgAygCACIFQSVHDQBBACEDDAILQQAhAyAFQQRHDQEg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aikCADcDACAEQdgCaiABQShqKQIANwMAIAQgASkCADcDsAIgBCABKQIMNwK8AiAEIAEpAhg3A8gCIAEoAkAhBSABKAI8IQggAS0ARSEJIAEtAEQhCiABKAI4IQsgASgCNCEMIAQoAighDUEEQcgAELkuIgJFDQQgAiAOQTAQgQkiAiAJOgBFIAIgCjoARCACIAU2AkAgAiAINgI8IAIgCzYCOCACIAw2AjQgAiANNgIwIARBwAFqIANBCGopAwA3AwAgBEHIAWogA0EQaikDADcDACAEIAMpAwA3A7gBIAFByABBBBCiGEEBIQUgAiEBDAELIAQtAKwCIQUgBEHIAWogA0EQaikDADcDACAEQcABaiADQQhqKQMANwMAIARBtgFqIARBrwJqLQAAOgAAIAQgBC8ArQI7AbQBIAQgAykDADcDuAELIAAgBjYCBCAAIAc2AgAgACAEKQO4ATcDCCAAIAU6ACQgACABNgIgIAAgBC8BtAE7ACUgAEEQaiAEQcABaikDADcDACAAQRhqIARByAFqKQMANwMAIABBJ2ogBEG2AWotAAA6AAAMFQsgAEEJNgIAIAAgBjYCBAwUCyAEQbACaiABIAQoAiQiASABIANBABCRBiAEKAK0AiEGIAQoArACIgdBCEYNAyAEQbgCaiEDIAQoAtACIQEgBw0BIARBkAJqIAFBCGooAgA2AgAgBEGcAmogAUEUaigCADYCACAEQagCaiABQSBqKAIANgIAIAQgASkCADcDiAIgBCABKQIMNwKUAiAEIAEpAhg3A6ACIAEoAjghBSABKAI0IQggAS0APCEJIAEoAjAhCiABKAIsIQsgASgCKCEMIAQoAighDUEEQcAAELkuIgJFDQAgAiAEQYgCakEkEIEJIgIgCToAPCACIAU2AjggAiAINgI0IAIgCjYCMCACIAs2AiwgAiAMNgIoIAIgDTYCJCAEQeABaiADQQhqKQMANwMAIARB6AFqIANBEGopAwA3AwAgBCADKQMANwPYASABQcAAQQQQohhBASEFIAIhAQwCCwALIAQtANQCIQUgBEHoAWogA0EQaikDADcDACAEQeABaiADQQhqKQMANwMAIARB1gFqIARB1wJqLQAAOgAAIAQgBC8A1QI7AdQBIAQgAykDADcD2AELIAAgBjYCBCAAIAc2AgAgACAEKQPYATcDCCAA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ASgC2AIhASAEQQA6ALACIAEgASAEQbACahDvGyEBIABBCTYCACAAIAE2AgQMAQsgASgC2AIhASAEQQA6ALACIAEgASAEQbACahDvGyEBIABBCTYCACAAIAE2AgQLIARB8ABqEOAtCyAEQcwAahDlLAsgBEHgAmokAAvTHAITfwJ+IwBB0AFrIgMkACABQcgCaiEEIAFBKGohCQJAAkACQCABKALIAiIFQSVHDQAgASgC8AIhBiABQSU2AvACAkAgBkElRwRAIANBzAFqIAFBlANqKAIANgIAIANBxAFqIAFBjANqKQIANwIAIANBvAFqIAFBhANqKQIANwIAIANBtAFqIAFB/AJqKQIANwIAIAMgBjYCqAEgAyABKQL0AjcCrAEMAQsgA0GoAWogCRAyIAQoAgBBJUYNACAEEOgDCyAEIAMpA6gBNwMAIARBIGogA0HIAWopAwA3AwAgBEEYaiADQcABaikDADcDACAEQRBqIANBuAFqKQMANwMAIARBCGogA0GwAWopAwA3AwAgASgCyAIiBUElRw0AIAEoApwDIQ8gASgC8AIhBiABQSU2AvACAkAgBkElRwRAIANBzAFqIAFBlANqKAIANgIAIANBxAFqIAFBjANqKQIANwIAIANBvAFqIAFBhANqKQIANwIAIANBtAFqIAFB/AJqKQIANwIAIAMgBjYCqAEgAyABKQL0AjcCrAEMAQsgA0GoAWogCRAyIAQoAgBBJUYNACAEEOgDCyAEIAMpA6gBNwMAIARBIGogA0HIAWopAwA3AwAgBEEYaiADQcABaikDADcDACAEQRBqIANBuAFqKQMANwMAIARBCGogA0GwAWopAwA3AwAgBCgCACIFQSVHDQEgASgCgAIhASADQQA6AKgBIAEgASADQagBahDvGyEBIABBgICAgHg2AgAgACABNgIEDAILIAEoAuACIQ8LAkACQAJAAn8CQAJAAkACQCAFQSRHBEAgAUElNgLIAiABIAEpA+ACNwOYAyADQbwBaiIGIAFB3AJqKAIANgIAIANBtAFqIgogAUHUAmopAgA3AgAgAyAFNgKoASADIAEpAswCNwKsASADQagBaiIQEOgDIANBADYCPCADQoCAgIDAADcCNCAQIAEgAhC6AiADKAKoASEIIAMtAMABIgVBAkcEQCADQdgAaiIHIAYoAgA2AgAgA0HQAGoiBiAKKQIANwMAIAMgAykCrAE3A0ggAyADKADBATYCQCADIANBxAFqKAAANgBDQaC/5AAtAAAaAkBBIBCEASILBEAgAUHMAmohCiALIAg2AgAgCyADKQNINwIEIAsgBToAGCALIAMoAkA2ABkgC0EcaiADKABDNgAAIAtBDGogBikDADcCACALQRRqIAcoAgA2AgBBASEGIANBATYCZCADIAs2AmAgA0EBNgJcIAVBAXFFDQFBBCEIQQAhB0EBIQ0MCwsACyABQfQCaiEMIANBqAFqQQRyIQUgA0HBAWoiE0EDaiEUQQQhEEEAIQYCQANAAkACQCAEKAIAIghBJUYEQCABKALwAiEHIAFBJTYC8AICQCAHQSVHBEAgBSAMKQIANwIAIAVBIGogDEEgaigCADYCACAFQRhqIAxBGGopAgA3AgAgBUEQaiAMQRBqKQIANwIAIAVBCGogDEEIaikCADcCACADIAc2AqgBDAELIANBqAFqIAkQMiAEKAIAQSVGDQAgBBDoAwsgBCADKQOoATcDACAEQSBqIANByAFqKQMANwMAIARBGGogA0HAAWopAwA3AwAgBEEQaiADQbgBaikDADcDACAEQQhqIANBsAFqKQMANwMAIAQoAgAiCEElRg0BCyAIQRZGDQELIANBsAFqIAkQ3QcgA0HQ198ANgKsASADQTQ6AKgBIAlB8AJBuAIgBCgCAEElRiIHG2ooAgAiAiAJQfQCQbwCIAcbaigCACIHIAIgB0kbIAIgByACIAdLGyADQagBahDvGyEIIAkQvwoiAkUNCCACKAIAQSRHDQggASABKQPgAjcDmAMgASgCyAIgAUElNgLIAkEkRw0GIAEgASgCzAIQwAgMCAsgAUElNgLIAiAFIAopAgA3AgAgASABKQPgAjcDmAMgBUEQaiILIApBEGoiESgCADYCACAFQQhqIg0gCkEIaiISKQIANwIAIANBFjYCqAEgA0GoAWoiBxDoAyADQQE6AJEBIAMgASgBqgI2AIsBIAMgAS8BrgI7AI8BIAMgASkAsQI3AJIBIAMgASkAuQI3AJoBIAMgASgAwQI2AKIBIAMgAS8AxQI7AKYBIAcgASADQYsBahC/CCADQQhqIAMoAqgBENoCIAMoAgwhCCADKAIIDQEgAygCNCAGRgRAIANBNGoQqgwgAygCOCEQCyAOIBBqIAg2AgAgAyAGQQFqIgc2AjwgA0GoAWoQ9QogBCgCACIIQSVGBEAgASgC8AIhCCABQSU2AvACAkAgCEElRwRAIAUgDCkCADcCACAFQSBqIAxBIGooAgA2AgAgBUEYaiAMQRhqKQIANwIAIAsgDEEQaikCADcCACANIAxBCGopAgA3AgAgAyAINgKoAQwBCyADQagBaiAJEDIgBCgCAEElRg0AIAQQ6AMLIAQgAykDqAE3AwAgBEEgaiADQcgBaikDADcDACAEQRhqIANBwAFqKQMANwMAIARBEGogA0G4AWopAwA3AwAgBEEIaiADQbABaikDADcDACAEKAIAIghBJUYNBwsgCEEORwRADAcLIAFBJTYCyAIgBSAKKQIANwIAIAEgASkD4AI3A5gDIAsgESgCADYCACANIBIpAgA3AgAgA0EONgKoASADQagBaiIGEOgDIAYgASACELoCIAMoAqgBIQggAy0AwAEiEUECRg0EIANBgAFqIhIgCygCADYCACADQfgAaiIVIA0pAgA3AwAgAyAFKQIANwNwIAMgEygAADYCaCADIBQoAAA2AGsgAygCZCINIAMoAlxGBEAgA0HcAGoQqwwLIAMoAmAiCyANQQV0aiIGIAg2AgAgBiADKQNwNwIEIAYgEToAGCAGIAMoAmg2ABkgBkEMaiAVKQMANwIAIAZBFGogEigCADYCACAGQRxqIAMoAGs2AAAgAyANQQFqIg02AmQgDkEEaiEOIAchBiARQQFxRQ0ACyADKAI4IQggAygCNCIOQYCAgIB4Rg0IIAMoAlwhBgwKCyADQagBahD1CgwFC0EAIQZBBAwFCyABQSU2AsgCIABBgICAgHg2AgAgASABKQPgAjcDmAMgACABKALMAjYCBAwICyAHIQYMAgtBiYThAEEoQbD23wAQ1SEACyAGQQFqIQYgA0GwAWogCRDdByADQbDI3wA2AqwBIANBNDoAqAEgCUHwAkG4AiAEKAIAQSVGIgcbaigCACICIAlB9AJBvAIgBxtqKAIAIgcgAiAHSRsgAiAHIAIgB0sbIANBqAFqEO8bIQggCRC/CiICRQ0AIAIoAgBBJEcNACABIAEpA+ACNwOYAyABKALIAiABQSU2AsgCQSRHDQMgASABKALMAhDACAsgAygCYCIBIAMoAmQQrg4gAygCXCABEMQqIAMoAjQhByADKAI4CyIBIAYQkSUgByABEMMqCyAAQYCAgIB4NgIAIAAgCDYCBAwCC0GJhOEAQShBoPbfABDVIQALAkACQAJAAkAgBCgCACIFQSVGBEAgASgC8AIhAiABQSU2AvACAkAgAkElRwRAIANBzAFqIAFBlANqKAIANgIAIANBxAFqIAFBjANqKQIANwIAIANBvAFqIAFBhANqKQIANwIAIANBtAFqIAFB/AJqKQIANwIAIAMgAjYCqAEgAyABKQL0AjcCrAEMAQsgA0GoAWogCRAyIAQoAgBBJUYNACAEEOgDCyAEIAMpA6gBNwMAIARBIGogA0HIAWopAwA3AwAgBEEYaiADQcABaikDADcDACAEQRBqIANBuAFqKQMANwMAIARBCGogA0GwAWopAwA3AwAgBCgCACIFQSVGDQELIAVBEUYNAQsgA0GwAWogCRDdByADQfDR3wA2AqwBIANBNDoAqAEgCUHwAkG4AiAEKAIAQSVGIgUbaigCACICIAlB9AJBvAIgBRtqKAIAIgUgAiAFSRsgAiAFIAIgBUsbIANBqAFqEO8bIQwgBCgCACIFQSVGBEAgASgC8AIhAiABQSU2AvACAkAgAkElRwRAIANBzAFqIAFBlANqKAIANgIAIANBxAFqIAFBjANqKQIANwIAIANBvAFqIAFBhANqKQIANwIAIANBtAFqIAFB/AJqKQIANwIAIAMgAjYCqAEgAyABKQL0AjcCrAEMAQsgA0GoAWogCRAyIAQoAgBBJUYNACAEEOgDCyAEIAMpA6gBNwMAIARBIGogA0HIAWopAwA3AwAgBEEYaiADQcABaikDADcDACAEQRBqIANBuAFqKQMANwMAIARBCGogA0GwAWopAwA3AwAgBCgCACIFQSVGDQMLIAVBJEYNAQwCCyABQSU2AsgCIAopAgAhFiAKIAMpAhA3AgAgA0G8AWogCkEQaiICKAIANgIAIANBtAFqIApBCGoiBCkCADcCACAEIANBGGopAgA3AgAgASkD4AIhFyACIANBIGopAgA3AgAgCkEYaiADQShqKQIANwIAIApBIGogA0EwaigCADYCACADIBY3AqwBIANBETYCqAEgASAXNwOYAyADQagBahDoAyAAIA02AhQgACALNgIQIAAgBjYCDCAAIAc2AgggACAINgIEIAAgDjYCACAAIA8gASgCnAMiASABIA9JGzYCHCAAIA8gASABIA9LGzYCGAwCCyABQSU2AsgCIAEoAswCIQIgCiADKQIQNwIAIAEgASkD4AI3A5gDIApBCGogA0EYaikCADcCACAKQRBqIANBIGopAgA3AgAgCkEYaiADQShqKQIANwIAIApBIGogA0EwaigCADYCACABIAIQwAgLIABBgICAgHg2AgAgACAMNgIEIAsgDRCuDiAGIAsQxCogCCAHEJElIA4gCBDDKgsgA0HQAWokAAvPGwIMfwR+IwBBkAFrIgIkACABQcgCaiEDIAFBKGohBiABQZwDQeACIAEoAsgCIgVBJUYEfyABKALwAiEFIAFBJTYC8AICQCAFQSVHBEAgAkGMAWogAUGUA2ooAgA2AgAgAkGEAWogAUGMA2opAgA3AgAgAkH8AGogAUGEA2opAgA3AgAgAkH0AGogAUH8AmopAgA3AgAgAiAFNgJoIAIgASkC9AI3AmwMAQsgAkHoAGogBhAyIAMoAgBBJUYNACADEOgDCyADIAIpA2g3AwAgA0EgaiACQYgBaikDADcDACADQRhqIAJBgAFqKQMANwMAIANBEGogAkH4AGopAwA3AwAgA0EIaiACQfAAaikDADcDACADKAIABSAFC0ElRhtqKAIAIQggAkHoAGogARDhBgJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkAgAi0AaEUEQCACLQBpIQ0gAUGcA0HgAiADKAIAIgVBJUYEfyABKALwAiEFIAFBJTYC8AICQCAFQSVHBEAgAkGMAWogAUGUA2ooAgA2AgAgAkGEAWogAUGMA2opAgA3AgAgAkH8AGogAUGEA2opAgA3AgAgAkH0AGogAUH8AmopAgA3AgAgAiAFNgJoIAIgASkC9AI3AmwMAQsgAkHoAGogBhAyIAMoAgBBJUYNACADEOgDCyADIAIpA2g3AwAgA0EgaiACQYgBaikDADcDACADQRhqIAJBgAFqKQMANwMAIANBEGogAkH4AGopAwA3AwAgA0EIaiACQfAAaikDADcDACADKAIABSAFC0ElRhtqKAIAIQcgAkHoAGogARCbAyACKAJsIQUgAigCaCIJQQdGDQEgAkHIAGogAkGIAWopAwA3AwAgAkFAayACQYABaikDADcDACACQThqIAJB+ABqKQMANwMAIAIgAikDcDcDMCACIAU2AiwgAiAJNgIoIAEtAKACQQJHDQQCfwJAAkACQAJAAkACQAJAAkAgAygCACIEQSVGBEAgASgC8AIhBCABQSU2AvACAkAgBEElRwRAIAJBjAFqIAFBlANqKAIANgIAIAJBhAFqIAFBjANqKQIANwIAIAJB/ABqIAFBhANqKQIANwIAIAJB9ABqIAFB/AJqKQIANwIAIAIgBDYCaCACIAEpAvQCNwJsDAELIAJB6ABqIAYQMiADKAIAQSVGDQAgAxDoAwsgAyACKQNoNwMAIANBIGogAkGIAWopAwA3AwAgA0EYaiACQYABaikDADcDACADQRBqIAJB+ABqKQMANwMAIANBCGogAkHwAGopAwA3AwAgAygCACIEQSVGDQELIARBF0cNACABQSU2AsgCIAEgASkD4AI3A5gDIAJB/ABqIAFB3AJqKAIANgIAIAJB9ABqIAFB1AJqKQIANwIAIAJBFzYCaCACIAEpAswCNwJsIAJB6ABqEOgDIAlBAkcgCUEDTXFFBEAgAS0AoAJBAkYEQCABLQCjAkEBcQ0CCyABLQC4AkEBcQ0BIAEoApwDIQMgASgCmAMgAkHmADoAaCADIAJB6ABqEO8bIQMgBhC/CiIFRQ0WIAUoAgBBJEYNAgwWC0EBIQsgAkEBOgBECyAJQQFrDgYGAgMEDAUBCyABIAEpA+ACNwOYAyABKALIAiABQSU2AsgCQSRHDQkgASABKALMAhDACAwTCwJAAkAgAygCACIEQSVGBEAgASgC8AIhBCABQSU2AvACAkAgBEElRwRAIAJBjAFqIAFBlANqKAIANgIAIAJBhAFqIAFBjANqKQIANwIAIAJB/ABqIAFBhANqKQIANwIAIAJB9ABqIAFB/AJqKQIANwIAIAIgBDYCaCACIAEpAvQCNwJsDAELIAJB6ABqIAYQMiADKAIAQSVGDQAgAxDoAwsgAyACKQNoNwMAIANBIGogAkGIAWopAwA3AwAgA0EYaiACQYABaikDADcDACADQRBqIAJB+ABqKQMANwMAIANBCGogAkHwAGopAwA3AwAgAygCACIEQSVGDQELIARBE0YNAQtBACEEDAoLIAYQvwoaIAJBEGogAUEBIAFBnANB4AIgASgCyAJBJUYbaigCABCeBiACKAIUIQQgAigCEEUNCSAAQQc2AgAgACAENgIEDBMLIAJBMGoMBAsgAkE4agwDCyADKAIAIgRBJUYEQCABKALwAiEEIAFBJTYC8AICQCAEQSVHBEAgAkGMAWogAUGUA2ooAgA2AgAgAkGEAWogAUGMA2opAgA3AgAgAkH8AGogAUGEA2opAgA3AgAgAkH0AGogAUH8AmopAgA3AgAgAiAENgJoIAIgASkC9AI3AmwMAQsgAkHoAGogBhAyIAMoAgBBJUYNACADEOgDCyADIAIpA2g3AwAgA0EgaiACQYgBaikDADcDACADQRhqIAJBgAFqKQMANwMAIANBEGogAkH4AGopAwA3AwAgA0EIaiACQfAAaikDADcDACADKAIAIgRBJUYNCQsgBEETRw0HIAYQvwoaIAJBIGogAUEBIAFBnANB4AIgASgCyAJBJUYbaigCABCeBiACKAIkIQQgAigCIARAIABBBzYCACAAIAQ2AgQMEQsgBBDrJyACIAcgASgCnAMiBCAEIAdJGyIKNgI4IAIgByAEIAQgB0sbIgQ2AjQgAkG2AToAaCABIAQgCiACQegAahDpIgwHCyACQQE2AmwgAkGs7N8ANgJoIAJCATcCdCACIAJBKGqtQoCAgIDQLIQ3A1AgAiACQdAAajYCcCACQegAakG07N8AEJImAAsgAkE4agshCgJAAkAgAygCACIEQSVHDQAgASgC8AIhBCABQSU2AvACAkAgBEElRwRAIAJBjAFqIAFBlANqKAIANgIAIAJBhAFqIAFBjANqKQIANwIAIAJB/ABqIAFBhANqKQIANwIAIAJB9ABqIAFB/AJqKQIANwIAIAIgBDYCaCACIAEpAvQCNwJsDAELIAJB6ABqIAYQMiADKAIAQSVGDQAgAxDoAwsgAyACKQNoNwMAIANBIGogAkGIAWopAwA3AwAgA0EYaiACQYABaikDADcDACADQRBqIAJB+ABqKQMANwMAIANBCGogAkHwAGopAwA3AwAgAygCACIEQSVHDQBBACEEDAELIARBE0cEQEEAIQQMAQsgAkEYaiABQQEgASgC4AIQngYgAigCHCEEIAIoAhgEQCAAQQc2AgAgACAENgIEDA8LIAogByABKAKcAyIMIAcgDEsbNgIEIAogByAMIAcgDEkbNgIACyACKAJAIgcEQCAHKAIAIgoQ/gMgCkHgAEEIEKIYIAdBDEEEEKIYCyACIAQ2AkAMBAsgAigCbCEBIABBBzYCACAA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ACACQaABaiIBIAJBsAJqKQIANwMAIAJBqAFqIgUgAkG4AmopAgA3AwAgAkGwAWoiBiACQcACaikCADcDACACIAIpAqgCNwOYASACKAKkAiIEQSJGDQcgACACKQLIAjcCJCAAQTxqIAJB4AJqKAIANgIAIABBNGogAkHYAmopAgA3AgAgAEEsaiACQdACaikCADcCACAAQRxqIAYpAwA3AgAgAEEUaiAFKQMANwIAIABBDGogASkDADcCACAAIAIpA5gBNwIEDAgLIAJBpAJqIQhBACEFIwBBgAJrIgMkAAJAAn8CQAJAAkAgARCxEUHwAEcEQCABELERQdAARw0BCyADQdgAaiABKAIAIgtBQGtBtLLEABCOJiADKAJcIREgAygCWCIGQQA2AgggARCxESETIAEQlydFBEAgA0GUAWogC0HYAGooAgAiBTYCACADQYgBaiAFNgIAIAMgCykCUCIcNwKMASADIBw3A4ABIANBCjYCwAEgCCABKAIEIAEoAgggA0GAAWogA0HAAWoQmBUMBQsgARCxEUH7AEYEQCADQcABaiABEMUOIANB6ABqIANB1AFqKAIANgIAIAMgAykCzAE3A2ADQCABEJcnRQ0EIAEQsRFB/QBGDQQgBiABELEREI4SDAALAAsgA0H4AGogC0HYAGooAgA2AgAgAyALKQJQNwNwIAEQsREiB0HcAEYNASABEJcnGkGAgICAeCEBIANB8ABqDAMLQbSzxABBOkHws8QAENUhAAsgA0GAAWoiBSABEMUOIANBHzYCwAEgCCABKAIEIAEoAgggBSADQcABahCYFQwCCwJAAkAgCygCUCIFIAEoAghHBEAgAyABELERIgU2AmwgBUH9AEcEQCADQQA2AsABIANB7ABqQZywxAAgA0HAAWpBpLPEABCKJAALIAEQ1wsaIANBwAFqIAYoAgQiCSAGKAIIIgpBupfgAEECENQCAkAgAygCwAFFBEAgAy0AzgENAyADKAL0ASEFIAMoAvABIQYgAy0AzAEhASADKALEASEHA0AgAyABQX9zQQFxOgDMASADQdAAaiAHIAYgBRDKGiADKAJQIgRFDQIgAygCVCEMIAMgBDYCgAEgAyAEIAxqNgKEASADQcgAaiADQYABahCMDSADKAJIRQRAIAFBAXFFDQUMBgsgAUEBcQ0FIAMtAMwBQQFxIQECf0EBIAMoAkwiBEGAAUkNABpBA0EEIARBgIAESRsgBEGAEE8NABpBAgsgB2ohBwwACwALIAMoAvwBIg0gAygC2AEiFGshBSANQQFrIRUgAygC0AEhBiADKQPIASEcIAMoAtwBIQcgAygC+AEhEiADKAL0ASEMIAMoAvABIQ8gAygC5AEiFiEBA0AgBiAGIAEgASAGSRsgFkF/RiIQGyIEIA0gBCANSxshF0EAIAEgEBshGANAIAcgFWoiASAMTw0EAn8gHCABIA9qMQAAiEIBg1BFBEAgByAPaiEOIAQhAQJAAkACQANAIAEgF0YEQCAGIQEDQCABIBhNDQ0gAUEBayIBIA1PDQMgASAHaiIOIAxPDQQgASASai0AACAOIA9qLQAARg0ACyAHIBRqIQcgEA0HIAUhAQwICyABIAdqIhkgDE8NAyABIA5qIRogASASaiABQQFqIQEtAAAgGi0AAEYNAAsgGSAGa0EBagwECyABIA1BgILhABDnFgALIA4gDEGQguEAEOcWAAsgDCAEIAdqIgAgACAMSRsgDEGgguEAEOcWAAsgByANagshByAQDQALQQAhAQwACwALIAYgBSAHIAVB7ILhABC5LQALIANBlAFqIAtB0ABqIgZBCGooAgAiBDYCACADQYgBaiAENgIAIAMgBikCACIcNwKMASADIBw3A4ABIANBCjYCwAEgCCABKAIEIAUgA0GAAWogA0HAAWoQmBUMAwsgA0FAayAJIApBOhD0CEEBIQUgAygCQEEBRgRAIANBIGogCSAKIAMoAkQiAUHkssQAEIceIANBgAFqIAMoAiAgAygCJBCBGCADQRhqIAkgCiABQQFqQfSyxAAQnh0gA0HAAWogAygCGCADKAIcEIEYIAM1AogBIAM1AsABQiCGhCEcIAMpAsQBIR0gAygChAEhByADKAKAASEBIANB4ABqDAILIANBOGogCSAKQT0Q9AggAygCOEEBRgRAIANBMGogCSAKIAMoAjwiAUGEs8QAEIceIANBgAFqIAMoAjAgAygCNBCBGCADQShqIAkgCiABQQFqQZSzxAAQnh0gA0HAAWogAygCKCADKAIsEIEYIAM1AogBIAM1AsABQiCGhCEcIAMpAsQBIR0gAygChAEhByADKAKAASEBQQAhBSADQeAAagwCCyADQcABaiAJIAoQgRggAykCxAEh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gAJqKQMANwIAIABBFGogAkH4AWopAwA3AgAMEAsgACACKQPwATcCDCAAQYYCOwEkIABBDDYCCCAAQqKAgICggICAgH83AgAgAEEcaiACQYACaikDADcCACAAQRRqIAJB+AFqKQMANwIADA8LIAAgAikD8AE3AgwgAEGGBDsBJCAAQQk2AgggAEKigICAoICAgIB/NwIAIABBHGogAkGAAmopAwA3AgAgAEEUaiACQfgBaikDADcCAAwOCyAAIAIpA/ABNwIMIABBhgY7ASQgAEEKNgIIIABCooCAgKCAgICAfzcCACAAQRxqIAJBgAJqKQMANwIAIABBFGogAkH4AWopAwA3AgAMDQsgACACKQPwATcCDCAAQYYIOwEkIABBDTYCCCAAQqKAgICggICAgH83AgAgAEEcaiACQYACaikDADcCACAAQRRqIAJB+AFqKQMANwIADAwLIAAgAikD8AE3AgwgAEGGCjsBJCAAQQs2AgggAEKigICAoICAgIB/NwIAIABBHGogAkGAAmopAwA3AgAgAEEUaiACQfgBaikDADcCAAwLCyAAIAIpA/ABNwIIIABBAjoAICAAQqKAgICwgICAgH83AgAgAEEYaiACQYACaikDADcCACAAQRBqIAJB+AFqKQMANwIADAoLIAAgAikD8AE3AgggAEEDOgAgIABCooCAgLCAgICAfzcCACAAQRhqIAJBgAJqKQMANwIAIABBEGogAkH4AWopAwA3AgAMCQsgAkGYAmoiCiACQYACaikDADcDACACQZACaiILIAJB+AFqKQMANwMAIAIgAikD8AE3A4gCQQQhBSABKAIIIgMgBigCAEYNByABELERQfsARw0HIAIgARCxESIHNgLkAiAHQfsARw0EIAJB8AJqIAZBCGoiBygCADYCACACIAYpAgA3A+gCIAEQlycNAyACQawDaiAHKAIANgIAIAJBoANqIAJBGGooAgA2AgAgAiACKQMQNwOYAyACIAYpAgA3AqQDIAJBHjYCmAEgAkGkAmogASgCBCADIAJBmANqIAJBmAFqEJgVDAYLIAAgAikD8AE3AgggAEEFOgAgIABCooCAgLCAgICAfzcCACAAQRhqIAJBgAJqKQMANwIAIABBEGogAkH4AWopAwA3AgAMBwsgACACKQPwATcCCCAAQQg6ACAgAEKigICAsICAgIB/NwIAIABBGGogAkGAAmopAwA3AgAgAEEQaiACQfgBaikDADcCAAwGCyAAIAIpA/ABNwIIIABBCToAICAAQqKAgICwgICAgH83AgAgAEEYaiACQYACaikDADcCACAAQRBqIAJB+AFqKQMANwIADAULIAJBgANqIAcoAgA2AgAgAiAGKQIANwP4AiABELERIgdBLUYgB0Hf//8AcUHBAGtBGklyRQRAIAYgAikD6AI3AgAgBkEIaiACQfACaigCADYCAAwECyACIARBQGtBjK3EABCOJiACKAIEIQQgAigCACIHQQA2AggDQAJAAkACQAJAIAYoAgAgA0YNACABELERIghBLUYgCEHf//8AcUHBAGtBGklyDQMgBigCACADRg0AIAEQsRFB/QBGDQELIAJBrANqIAZBCGooAgA2AgAgAkGgA2ogAkHwAmooAgA2AgAgAiACKQPoAjcDmAMgAiAGKQIANwKkAyACQRw2ApgBDAELIAJBkANqIAZBCGooAgA2AgAgAiAGKQIANwOIAyABENcLGiAHKAIEIgggBygCCCIJQcm4xABBBRDQKARAQQYhBwwFCyAIIAlBzrjEAEEDENAoBEBBByEHDAULQQohByAIIAlBnK3EAEEKENAoDQQgCCAJQaatxABBCBDQKARAQQshBwwFCyACQaADaiACQYADaigCADYCACACQawDaiACQZADaigCADYCACACIAIpA/gCNwOYAyACIAIpA4gDNwKkAyACQR02ApgBCyACQaQCaiABKAIEIAMgAkGYA2ogAkGYAWoQmBUgBCAEKAIAQQFqNgIADAQLIAcgARCxERCOEiABEJcnGgwACwALIAJBADYCmAEgAkHkAmpBtOjYACACQZgBakGwrcQAEIokAAsgAkEiNgKkAiACIAc6AKgCIAQgBCgCAEEBajYCAAsgAi0AqAIhASACKAKkAiIEQSJGBEAgAUEMRg0BIAJBnAJqIAZBCGooAgA2AgAgAiAGKQIANwKUAiABIQUMAQsgAEEFaiACQakCakE7EIEJGiAAIAE6AAQgACAENgIADAELIAAgAikDiAI3AgggACAFOgAgIABCooCAgLCAgICAfzcCACAAQRhqIAopAwA3AgAgAEEQaiALKQMANwIACyACQbADaiQAC6sbAhR/AX4jAEHQAWsiBiQAAkACQAJAAkACQAJAAkAg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aiAKELceIAdBmM3fADYC7AEgB0E0OgDoASAHKAIQIAcoAhQgB0HoAWoQ7xshBCAKEKETIgJFDQEgAigCAEEkRw0BIAEgASkDQDcDeCABKAIoIAFBJTYCKEEkRw0DIAEgASgCLBDFEAwBCyABKAIoIQMgAUElNgIoIAEgASkDQDcDeCAHQfQBaiIEIAlBCGopAgA3AgAgB0H8AWoiCyAJQRBqKAIANgIAIAcgCSkCADcC7AEgByADNgLoASAHQegBaiIMEI4OIAdBADoAswIgB0EBOgC1AiAHIActAHw6AKcCIAcgBy0AfToAqAIgByABLQCIAzoApgIgByABLQCWAzoAtAIgByABLQCeAzoAvAIgByABKAGCAzYAoAIgByABLwGGAzsApAIgByABKQCLAzcAqQIgByABLwCTAzsAsQIgByABKAKYAzYAtgIgByABLwGcAzsAugIgB0GBAmogAkEVaikAADcAACALIAJBEGopAQA3AgAgBCACQQhqKQEANwIAIAcgAikBADcC7AEgDSAHQaACahDvCiAHIAE2AugBIAdBkAJqIAEQjAIgBygClAIhAiAHKAKQAiIDQYCAgIB4RwRAIAcgBygCmAIiCzYC5AEgByACNgLgASAHIAM2AtwBIAwQ5SwCQAJAIAoQoRMiAwRAIAMoAgBBCkYNAQsgB0HwAWogChCJCiAHQRhqIAoQtx4gB0HwzN8ANgLsASAHQTQ6AOgBIAcoAhggBygCHCAHQegBahDvGyEEIAoQoRMiAkUNASACKAIAQSRHDQEgASABKQNANwN4IAEoAiggAUElNgIoQSRHDQQgASABKAIsEMUQDAELIAEoAighAyABQSU2AiggASABKQNANwN4IAdB9AFqIAlBCGopAgA3AgAgB0H8AWogCUEQaigCADYCACAHIAkpAgA3AuwBIAcgAzYC6AEgB0HoAWoQjg5BACEEAkAgAS0A+AJBAkcNACAKEKETIgNFDQAgAygCAEETRw0AIAdBIGogAUGgx98AEK8CIAcoAiQhBCAHKAIgDQELIAcgBDYCjAIgB0HoAWogASAHKALMASIMLQAAIAcoAtABIg4tAAAgAiALEOoiELQEIAcoAuwBIQMgBygC6AEiDUGBgICAeEcEQCAHQZgCaiAHQfgBaikCADcDACAHIAcpAvABNwOQAiABLQD4AkECRyANQYCAgIB4R3INBiALQQZ0IQkDQCAJRQ0HIAIoAgBBBEYEQCACKAIQIQsgAigCDCEPIAdBqQE6AOgBIAEgDyALIAdB6AFqEI8jCyACQUBrIQIgCUFAaiEJDAALAAsgB0GMAmoQ8S0gAyEECyAHQdwBahDwLQwBCyAHQegBahDlLCACIQQLIAgQ7i4MAwtBiYThAEEoQYjh3wAQ1SEAC0GJhOEAQShBmOHfABDVIQALIAdB/AFqIAdByAFqKAIANgIAIAdB8AFqIg8gB0HkAWooAgA2AgAgByAHKQPAATcC9AEgByAHKQLcATcD6AEgDi0AACEOIAwtAAAhDCABKAJ8IQkgBygC1AEoAgAhC0EEQcgAELkuIgIEQCACIAcpA+gBNwIAIAIgAzYCHCACIA02AhggAiAHKQOQAjcCICACIAw6AEUgAiAOOgBEIAIgBDYCQCACIAg2AjwgAkEANgI4IAJBEGogB0H4AWopAwA3AgAgAkEIaiAPKQMANwIAIAJBKGogB0GYAmopAwA3AgAgAiALIAkgCSALSRs2AjQgAiALIAkgCSALSxs2AjAgAiEEQQEMAgsACyAHQcABahDgLUEACyEJIAdBnAFqEOUsAkACQAJAAkACQCAJBEAgBUUNBCAEKAIYQYCAgIB4Rw0EIAdB9AFqIAoQiQogB0EIaiAKELceIAdBATYC8AEgB0GanOAANgLsASAHQTA6AOgBIAcoAgggBygCDCAHQegBahDvGyECIAoQoRMiA0UNAiADKAIAQSRHDQIgASABKQNANwN4IAEoAiggAUElNgIoQSRHDQEgASABKAIsEMUQDAILIABBAzoAFCAAIAQ2AgAMAgtBiYThAEEoQezf3wAQ1SEACyAAQQM6ABQgACACNgIAIAQQ5CULIAatIBGtQiCGhCAQELUrDAELIAAgETYCBCAAIAY2AgAgACAHKQNANwMIIAAgEDoAFCAAIAcvATw7ABUgACAENgIYIABBEGogB0HIAGooAgA2AgAgAEEXaiAHQT5qLQAAOgAACyAHQdAAahDlLAsgB0HAAmokAAuoGwIhfwF+IwBBoAFrIgIkACACQQA2AlBBASEFIAJBATYCRCACQYijwAA2AkAgAkIENwJIAkACQCABKAIUIg0gASgCGCIOIAJBQGsQ7ysNACAAQShqIRogACgCKCIVQQJqIQ8gASgCGCEHIAEoAhQhCCAAKALAAiEbIAAoArwCIRwgACgCuAIhFiAAKAIIIRkgACgCBCEdAkACQAJAA0ACQCACQSBqIAsgHSAZQZCjwAAQ4SQCQAJAIAIoAiQiCQRAIAIoAiAhCgJ/AkACQCALRQRAIAooAgAiAUH/AXEhDEEAIRcMAQsgCigCACIBQf8BcSEMQQAhFyALIBZNDQELQQAMAQsCQCAMQf8BRwRAIAwgDEECdmogAUEDcUEAR2pBAmoiAyAJSQ0BIAMgCUHghsQAEOcWAAsgCSAPIgNNDQsLQQEhF0EBIAogA0ECdGooAgAiBCAEQQBIGwshHgJ/AkACQAJAAkACQAJAIAFB/wFxQf4Baw4CAAQBCyAJQQFrDgIBAgQLIAlBAUcEQCAKKAIEIQMgAkEQakECIAogCUHop8AAEOEkIAxBAnYgAUEDcUEAR2oiECACKAIUIgFLDQwgAigCECERIAJBCGogEEECaiAKIAlBiKjAABDhJCAMIAIoAgwiAUsNCyACKAIIIR9BAAwFC0EBQQFB2KfAABDnFgALQQFBAUGoqMAAEOcWAAtBAkECQbiowAAQ5xYACyAJQQFHBEAgCigCBCEDIAJBGGpBAiAKIAlB2KjAABDhJCACKAIcIgEgFUkNBiACKAIYIREgFSEQQQIMAgtBAUEBQciowAAQ5xYACyABQQh2ISAgCigCCCERIAooAgQhA0EBCyEhIAsEQCALIBxGIAsgG0ZyIQEgCyAWSwRAIAENAyACQQA2AlAgAkEBNgJEIAJBjKzAADYCQCACQgQ3AkggDSAOIAJBQGsQ7ytFDQQMCgsgAUUEQCACQQA2AlAgAkEBNgJEIAJBoKzAADYCQCACQgQ3AkggDSAOIAJBQGsQ7ytFDQQMCgsgAkEANgJQIAJBATYCRCACQayswAA2AkAgAkIENwJIIA0gDiACQUBrEO8rRQ0DDAkLIAJBADYCUCACQQE2AkQgAkG0rMAANgJAIAJCBDcCSCANIA4gAkFAaxDvK0UNAgwICyACQQI2AkQgAkGUpMAANgJAIAJCATcCTCACQSs2AowBIAIgAEHEAmo2AogBIAIgAkGIAWoiBjYCSCAIIAcgAkFAaxDvKw0HIAJBAjYCRCACQbCkwAA2AkAgAkIBNwJMIAJBEjYCjAEgAiAAKAIcIgRBAEc6ACwgAiAGNgJIIAIgAkEsaiIDNgKIASAIIAcgAkFAaxDvKw0HIAJBAjYCRCACQZykwwA2AkAgAkIBNwJMIAJBEzYCjAEgAiAAQRhqNgKIASACIAY2AkggCCAHIAJBQGsQ7ysNByACQQI2AkQgAkG8pMMANgJAIAJCATcCTCACQRM2AowBIAIgACgCFCIBNgIsIAIgBjYCSCACIAM2AogBIAggByACQUBrEO8rDQcgAkECNgJEIAJB3KTAADYCQCACQgE3AkwgAkETNgKMASACIABBrAJqNgKIASACIAY2AkggCCAHIAJBQGsQ7ysNByACQQI2AkQgAkGEpcAANgJAIAJCATcCTCACQRM2AowBIAIgAEGwAmo2AogBIAIgBjYCSCAIIAcgAkFAaxDvKw0HIAJBAjYCRCACQailwAA2AkAgAkIBNwJMIAJBEzYCjAEgAiAaNgKIASACIAY2AkggCCAHIAJBQGsQ7ysNByACQQI2AkQgAkHIpcAANgJAIAJCATcCTCACQSo2AowBIAIgAEEsajYCiAEgAiAGNgJIIAggByACQUBrEO8rDQcgAkHopcAANgJAIAJCATcCTCACQRM2AowBIAAoAiQhACACQQI2AkQgAiABIBlqQQJ0IABBACAEG2o2AiwgAiAGNgJIIAIgAzYCiAEgCCAHIAJBQGsQ7ysNByACQQA2AlAgAkEBNgJEIAJBzKTDADYCQCACQgQ3AkggCCAHIAJBQGsQ7yshBQwHCyACQQA2AlAgAkEBNgJEIAJBmKzAADYCQCACQgQ3AkggDSAOIAJBQGsQ7ysNBgsgAiALNgI8IAJBDDYCOCACQQw2AjAgAiADNgKEASACIAJBhAFqNgI0IAIgAkE8ajYCLCACQQM6AHwgAkEINgJ4IAJCoICAgBA3AnAgAkKAgICA4AA3AmggAkECNgJgIAJBAzoAXCACQQg2AlggAkIgNwJQIAJCgICAgOAANwJIIAJBAjYCQCACQQI2ApwBIAJBAzYCjAEgAkGgo8AANgKIASACIAJBQGs2ApgBIAJBAjYClAEgAiACQSxqNgKQASANIA4gAkGIAWoQ7ysNBEEAIQZBACEEQQAhGEEAIQFBACESA0AgBiEDIAQhEyAiIRQDQAJAAkACQAJAAkACfwJ/An8CQAJAAkACQAJAICFBAWsOAgABAgtBASEFICAhBCARIAFFDQUaDAILIAEgEE8NASARIQYgAQwDCyABIAxJDQELIBIEQEEAIRIgAyEGIBMhBCAUDAQLIAJBADYCUEEBIQUgAkEBNgJEIAJBpIXCADYCQCACQgQ3AkggCCAHIAJBQGsQ7ysNEAJAIAsEQCALIBZLDQEgAkEANgJQIAJBATYCRCACQcyjwAA2AkAgAkIENwJIIAggByACQUBrEO8rDRJBACEBA0AgASAeRgRAIAJBADYCUCACQQE2AkQgAkGkhcIANgJAIAJCBDcCSCAIIAcgAkFAaxDvK0UNAwwUCyACIAE2AogBIA8hAyAKLQAAIgRB/wFHBEAgBCAEQQJ2aiAEQQNxQQBHakECaiEDCyADIAlJBEACQAJAAkAgCiADQQJ0aigCACIEQQBOBEAgASADakEBaiIEIAlJDQEgBCAJQbCGxAAQ5xYACyABRQ0BIAJBADYCQEEAQdz13wAgAkGIAWogAkFAa0HAhsQAEO8jAAsgCiAEQQJ0aigCACEDIAFFDQEgAkEANgJQIAJBATYCRCACQaiuwAA2AkAgAkIENwJIIAggByACQUBrEO8rRQ0BDBYLIARB/////wdxIQMLIAJBATYCRCACQaiP4QA2AkAgAkIBNwJMIAJBDDYCjAEgAiADNgIsIAFBAWohASACIAJBiAFqNgJIIAIgAkEsajYCiAEgCCAHIAJBQGsQ7ytFDQEMFAsLIAMgCUGghsQAEOcWAAsgAkEMNgIwIAJBATYChAEgAkEBNgKcASACQQI2AowBIAJB2KPAADYCiAEgAkEBNgKUASACIAJBhAFqNgIsIAJBAzoAXCACQQg2AlggAkIgNwJQIAJCgICAgOAANwJIIAJBAjYCQCACIAJBQGs2ApgBIAIgAkEsajYCkAEgCCAHIAJBiAFqEO8rDRELQQIhBiAVIQQCQAJAAkAgCi0AACIBQf4Baw4CAQIACyABQQJ2IAFBA3FBAEdqQQJqIQYgASEEDAELQQEhBAtBACEDAkACQAJAAkAgF0UNAAJAAkAgAUH/AUcEQCABIAFBAnZqIAFBA3FBAEdqQQJqIgEgCUkNASABIAlB4IbEABDnFgALIAkgD00NA0EBIQMgCiAPQQJ0aigCACIBQQBIDQIgAUEBRw0BDAILQQEhAyAKIAFBAnRqKAIAIgFBAEggAUEBRnINAQsgAUEBaiEDCyALIAQgBmogA2pqIgEgC0kNASACQUBrIAEQxSUgAigCQEEBRg0CIAIoAkQhCwwPCyAPIAlB8IbEABDnFgALQeijwAAQoS8ACyACIAIpA0g3A4gBQcCC4QBBKyACQYgBakHkosAAQfijwAAQsRQACyABQQJ2IgQgEE8NAyACIBEgBEECdGooAgA2AkAgHyEGIAJBQGsgAUEDcXItAAALIQQgAUEBaiEFIAYgAUECdGooAgALIQYgEkUEQCAGrUIghiAErUL/AYMiI0IIhoQgI4QhIwwGCyADIAZGDQJBASESIAUhASAECyEiIANBAUYNBiAYDQIMAwsgBCAQQYSqwAAQ5xYACyAUrUL/AYMgA61CIIYgBK1C/wGDQgiGhIQhIwwCCyACQQA2AlBBASEFIAJBATYCRCACQaiuwAA2AkAgAkIENwJIIAggByACQUBrEO8rDQkLIBhBAWohGCAUQf8BcSATQf8BcUcEQCACIBQ6ADwgAiATOgCEASACQQM2AowBIAJBkM/DADYCiAEgAkIDNwKUASACQRM2AlQgAkEUNgJMIAJBFDYCRCACIAM2AiwgAiACQUBrNgKQASACIAJBLGo2AlAgAiACQYQBajYCSCACIAJBPGo2AkAgCCAHIAJBiAFqEO8rDQgMAwsgAiATOgCEASACQQI2AkQgAkHkzcMANgJAIAJCAjcCTCACQRM2ApQBIAJBFDYCjAEgAiADNgIsIAIgAkGIAWo2AkggAiACQSxqNgKQASACIAJBhAFqNgKIASAIIAcgAkFAaxDvKw0HDAILICNCIIinIQMgI0IIiKchEyAjpyEUQQEhEiAFIQEMAAsACwALCyAVIAFB6KjAABDpFgALIAwgAUGYqMAAEOkWAAsgECABQfinwAAQ6RYAC0EBIQULIAJBoAFqJAAgBQ8LIA8gCUHwhsQAEOcWAAutGQI0fwZ+IwBB0AJrIgIkACABKAIEIQYgAkGwAWogASgCCCIbQQhBKBDeECACKAK0ASEUAkACQAJAIAIoArABQQFHBEAgAigCuAEhHAJAIBRFDQAgBiAbQShsaiEoIAJB3QFqIR0gAkGDAWohKSAUIR4DQCAGIChGDQEgBSEfAkACQAJAAkACQAJAIAYoAgAiKkEBaw4EAQIDBAALIAYoAhwhICAGKAIYISEgBikDCCI3QgODUARAIDenIgEgASgCACIBQQFqNgIAIAFBAEgNCwsgBikDECI4QgODQgBSDQQgOKciASABKAIAIgFBAWo2AgAgAUEATg0EDAoLIAYpAhAhOAJ/IAYoAgRFBEAgBigCDCEFIAYoAgghAUEADAELIAYoAgghBRC+KSEBIAJBsAFqIAUQNSABQThqIAJB6AFqKQMANwMAIAFBMGogAkHgAWopAwA3AwAgAUEoaiACQdgBaikDADcDACABQSBqIAJB0AFqKQMANwMAIAFBGGogAkHIAWopAwA3AwAgAUEQaiACQcABaikDADcDACABQQhqIAJBuAFqKQMANwMAIAEgAikDsAE3AwBBAQshBCABrSAFrUIghoQhNwwDCyAGKQIIITcgBigCBCEBEL4pIQQgAkGwAWogARA1IARBOGogAkHoAWopAwA3AwAgBEEwaiACQeABaikDADcDACAEQShqIAJB2AFqKQMANwMAIARBIGogAkHQAWopAwA3AwAgBEEYaiACQcgBaikDADcDACAEQRBqIAJBwAFqKQMANwMAIARBCGogAkG4AWopAwA3AwAgBCACKQOwATcDAAwCCxDJKSEEIAYoAgQiBygCBCErIAcoAgAhLCACQYABaiAHQUBrEPMGIAcoAoABIQ0gBygCdCEtIAcoAnAhLiACQbABaiAHKAKEASIiQQhB2AAQ3hAgAigCtAEhFSACKAKwAUEBRg0FIAIoArgBISMCQCAVRQ0AICJB2ABsIRBBACEJIBUhDANAIAkgEEYNAQJAIAkgDWoiAygCAEEFRwRAIANBLGooAgAhLyADQShqKAIAITACQCADQTBqKQMAIjZQBEAgA0HEAGooAgAhCyADQUBrKAIAIQUgA0E4aikDACI2pyEBIDZCA4NQBEAgASABKAIAIghBAWo2AgAgCEEASA0OCyA2QiCIpyEIQgAhNgwBCyADQTxqKAIAIQggA0E4aigCACEBIANB1ABqKAIAITEgA0HQAGooAgAhMiA2QgODUARAIDanIgUgBSgCACIFQQFqNgIAIAVBAEgNDQsgA0HMAGooAgAhMyADQcgAaigCACE0IANBQGspAwAiOachBSA5QgODUARAIAUgBSgCACILQQFqNgIAIAtBAEgNDQsgOUIgiKchCwsCQAJAAkACQAJAIAMoAgAiFkEBaw4EAQIDBAALIAJBsAFqIANBCGoQmAUgAigCzAEhJCACKALIASElIAIoAsQBISYgAigCwAEhJyACKAK8ASEXIAIoArgBIRggAigCtAEhGSACKAKwASEKDAMLIANBFGooAgAhFyADQRBqKAIAIRggA0EEaigCAEUEQCADQQhqKAIAIQogA0EMaigCACEZQQAhDgwDCyADQQhqKAIAIQ4QvikhCiACQbABaiAOEDUgCkE4aiACQegBaikDADcDACAKQTBqIAJB4AFqKQMANwMAIApBKGogAkHYAWopAwA3AwAgCkEgaiACQdABaikDADcDACAKQRhqIAJByAFqKQMANwMAIApBEGogAkHAAWopAwA3AwAgCkEIaiACQbgBaikDADcDACAKIAIpA7ABNwMAQQEhDgwCCxDJKSEOIAJBsAFqIg8gA0EEaigCABCxBCAOIA9BoAEQgQkaDAELIANBHGooAgAhJiADQRhqKAIAIScgA0EUaigCACEXIANBEGooAgAhGCACQbABaiADQQRqEJgBIANBJGooAgAhJCADQSBqKAIAISUgAigCuAEhGSACKAK0ASEKIAIoArABIQ4LIAWtIAutQiCGhCE5IAGtIAitQiCGhCE6IA4hBSAKIQEgGSEIDAELIANBDGooAgAhCCADQQhqKAIAIQEgA0EEaigCACEDEL4pIQUgAkGwAWogAxA1IAVBOGogAkHoAWopAwA3AwAgBUEwaiACQeABaikDADcDACAFQShqIAJB2AFqKQMANwMAIAVBIGogAkHQAWopAwA3AwAgBUEYaiACQcgBaikDADcDACAFQRBqIAJBwAFqKQMANwMAIAVBCGogAkG4AWopAwA3AwAgBSACKQOwATcDAEEFIRYLIAkgI2oiAyAWNgIAIANB1ABqIDE2AgAgA0HQAGogMjYCACADQcwAaiAzNgIAIANByABqIDQ2AgAgA0FAayA5NwMAIANBOGogOjcDACADQTBqIDY3AwAgA0EsaiAvNgIAIANBKGogMDYCACADQSRqICQ2AgAgA0EgaiAlNgIAIANBHGogJjYCACADQRhqICc2AgAgA0EUaiAXNgIAIANBEGogGDYCACADQQxqIAg2AgAgA0EIaiABNgIAIANBBGogBTYCACAJQdgAaiEJIAxBAWsiDA0ACwsgBy0AiAEhFgJAIAcoAngiBUUEQEEAIQgMAQsQxCkhCCAFKAIEIQEgBSgCECELIAUoAgwhDyACQbAB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kNgAai8AADsAAAwBCyADQQFrIgMgAkEIamogAEEwajoAAAsgAkE4aiIAIAEoAgAgAkEIaiADakEUIANrEKIsIAAQsCIhAQsgAkFAayQAIAELmhkCC38GfiMAQcACayICJAAgAUHIAmohAyABQShqIQcCQAJAAkACQAJAIAEoAsgCIgRBJUcEQCACIAEoAuACNgIUIAFBnANqIQwMAQsgASgC8AIhBCABQSU2AvACAkAgBEElRwRAIAJBPGogAUGUA2ooAgA2AgAgAkE0aiABQYwDaikCADcCACACQSxqIAFBhANqKQIANwIAIAJBJGogAUH8AmopAgA3AgAgAiAENgIYIAIgASkC9AI3AhwMAQsgAkEYaiAHEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDGDcDACADQSBqIAJBOGopAwA3AwAgA0EYaiACQTBqKQMANwMAIANBEGogAkEoaikDADcDACADQQhqIAJBIGopAwA3AwAgAiABQZwDaiIMIAFB4AJqIAEoAsgCIgRBJUYbKAIANgIUIARBJUcNACABKALwAiEEIAFBJTYC8AICQCAEQSVHBEAgAkG0AWogAUGUA2ooAgA2AgAgAkGsAWogAUGMA2opAgA3AgAgAkGkAWogAUGEA2opAgA3AgAgAkGcAWogAUH8AmopAgA3AgAgAiAENgKQASACIAEpAvQCNwKUAQwBCyACQZABaiAHEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDkAE3AwAgA0EgaiACQbABaikDADcDACADQRhqIAJBqAFqKQMANwMAIANBEGogAkGgAWopAwA3AwBBCCEIIANBCGogAkGYAWopAwA3AwAgAygCACIEQSVGDQELQQghCCAEQQJHDQAgAS0A0AJBAkcNACABLQDRAkEDRw0AIAFBJTYCyAIgASABKQPgAjcDmAMgAkGkAWoiBiABQdwCaigCADYCACACQZwBaiIFIAFB1AJqKQIANwIAIAJBAjYCkAEgAiABKQLMAjcClAEgAkGQAWoQ6AMCQAJAAkAgASgCyAIiBEElRgRAIAEoAvACIQQgAUElNgLwAgJAIARBJUcEQCACQbQBaiABQZQDaigCADYCACACQawBaiABQYwDaikCADcCACAGIAFBhANqKQIANwIAIAUgAUH8AmopAgA3AgAgAiAENgKQASACIAEpAvQCNwKUAQwBCyACQZABaiAHEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDkAE3AwAgA0EgaiACQbABaikDADcDACADQRhqIAJBqAFqKQMANwMAIANBEGogAkGgAWopAwA3AwAgA0EIaiACQZgBaikDADcDACADKAIAIgRBJUYNAQsgBEEJRg0BC0EHIQgMAQsgAUElNgLIAiABIAEpA+ACNwOYAyACQaQBaiIFIAFBzAJqIglBEGooAgA2AgAgAkGcAWoiCiAJQQhqKQIANwIAIAJBCTYCkAEgAiAJKQIANwKUASACQZABaiIGEOgDIAYgAUEAEGQgAigClAEhBiACKAKQASIIQQdGDQMgAkGYAmogAkGwAWopAwA3AwAgAkGQAmogAkGoAWopAwA3AwAgAkGIAmogAkGgAWopAwA3AwAgAiACKQOYATcDgAIgAiAGNgL8ASACIAg2AvgBIAMoAgAiBkElRgRAIAEoAvACIQQgAUElNgLwAgJAIARBJUcEQCACQbQBaiABQZQDaigCADYCACACQawBaiABQYwDaikCADcCACAFIAFBhANqKQIANwIAIAogAUH8AmopAgA3AgAgAiAENgKQASACIAEpAvQCNwKUAQwBCyACQZABaiAHEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDkAE3AwAgA0EgaiACQbABaikDADcDACADQRhqIAJBqAFqKQMANwMAIANBEGogAkGgAWopAwA3AwAgA0EIaiACQZgBaikDADcDACADKAIAIQYLAkACQAJAAkACQAJAIAEtAKACQQJHDQAgAUGcA0HgAiAGQSVGIgQbaigCACEKIAQEQCABKALwAiEEIAFBJTYC8AICQCAEQSVHBEAgAkG0AWogAUGUA2ooAgA2AgAgAkGsAWogAUGMA2opAgA3AgAgAkGkAWogAUGEA2opAgA3AgAgAkGcAWogAUH8AmopAgA3AgAgAiAENgKQASACIAEpAvQCNwKUAQwBCyACQZABaiAHEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDkAE3AwAgA0EgaiACQbABaikDADcDACADQRhqIAJBqAFqKQMANwMAIANBEGogAkGgAWopAwA3AwAgA0EIaiACQZgBaikDADcDACADKAIAIgZBJUYNAgsgBkETRw0AIAFBJTYCyAIgASABKQPgAjcDmAMgAkGk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QQkhAQsgACABNgIAIAAgAjYCBCAGKQNAIgRCA4NCAFINBiAGIASnIgA2AugBIAZB6AFqENAGIAAgACgCACIBQQFrNgIAIAFBAUcNBiAAIAAoAiAQjScMBgsgBkEIaiABIAJBABBRIAYoAgghASAAIAYoAgw2AgQgAEEJQQYgARs2AgAMBAsgBkEQaiABIAIQwwEgBigCECEBIAAgBigCFDYCBCAAQQlBBCABGzYCAAwDCyAGQShqIAEgAkEBEN4CIAYoAighASAAIAYoAiw2AgQgAEEJQQcgARs2AgAMAgsgAEEINgIAAkAgBikDQCIEQgODQgBSDQAgBiAEpyIANgLoASAGQegBahDQBiAAIAAoAgAiAUEBazYCACABQQFHDQAgACAAKAIgEI0nCyADKAIEIgAgAygCCBCSJSADKAIAIAAQwCoMAgsgBkEwaiABIAIQqAMgBigCMCEBIAAgBigCNDYCBCAAQQlBBSABGzYCAAsCQCAGKQNAIgRCA4NCAFINACAGIASnIgA2AugBIAZB6AFqENAGIAAgACgCACIBQQFrNgIAIAFBAUcNACAAIAAoAiAQjScLIAMoAgQiACADKAIIEJIlIAMoAgAgABDAKgsgBkGQAmokAAuEGgIOfwF+IwBBoAFrIgMkACADQQA6ABsgAyABKQGqAjcACyADIAEpAbICNwATIAMgASkAuwI3ABwgAyABKADDAjYAJCADQShqIAEgA0ELahC/CCADKAIoIgFByAJqIQQgAUEoaiEHAkACQAJAAkACQAJAIAEoAsgCIgZBJUcEQCABQZwDaiEPIAEoAuACIQsMAQsgASgC8AIhBSABQSU2AvACAkAgBUElRwRAIANBnAFqIAFBlANqKAIANgIAIANBlAFqIAFBjANqKQIANwIAIANBjAFqIAFBhANqKQIANwIAIANBhAFqIAFB/AJqKQIANwIAIAMgBTYCeCADIAEpAvQCNwJ8DAELIANB+ABqIAcQMiAEKAIAQSVGDQAgBBDoAwsgBCADKQN4NwMAIARBIGogA0GYAWopAwA3AwAgBEEYaiADQZABaikDADcDACAEQRBqIANBiAFqKQMANwMAIARBCGogA0GAAWopAwA3AwAgAUGcA2ohDyABQZwDQeACIAEoAsgCIgZBJUYbaigCACELIAZBJUcNACABKALwAiEFIAFBJTYC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AS0ApQJBAXENByAPKAIAIQIgA0HqADoAeCALIAIgAiALSxsgCyACIAIgC0kbIANB+ABqEO8bIQIgBxC/CiIERQ0FIAQoAgBBJEcNBSABIAEpA+ACNwOYAyABKALIAiABQSU2AsgCQSRHDQIgASABKALMAhDACAwFCyABIAEpA+ACNwOYAyABKALIAiABQSU2AsgCQSRHDQIgASABKALMAhDACAwFCyADQYABaiAHEN0HIANB8MzfADYCfCADQTQ6AHggB0HwAkG4AiAEKAIAQSVGIgYbaigCACICIAdB9AJBvAIgBhtqKAIAIgYgAiAGSRsgAiAGIAIgBksbIANB+ABqEO8bIQkgBCgCACIGQSVGBEAgASgC8AIhAiABQSU2AvACAkAgAkElRwRAIANBnAFqIAVBIGooAgA2AgAgA0GUAWogBUEYaikCADcCACADQYwBaiAFQRBqKQIANwIAIANBhAFqIAVBCGopAgA3AgAgAyACNgJ4IAMgBSkCADcCfAwBCyADQfgAaiAHEDIgBCgCAEElRg0AIAQQ6AMLIAQgAykDeDcDACAEQSBqIANBmAFqKQMANwMAIARBGGogA0GQAWopAwA3AwAgBEEQaiADQYgBaikDADcDACAEQQhqIANBgAFqKQMANwMAIAQoAgAiBkElRg0DCyAGQSRHDQIgAUElNgLIAiABIAEpA+ACNwOYAyABIAEoAswCEMAIDAILQYmE4QBBKEHg798AENUhAAtBiYThAEEoQfDv3wAQ1SEACyAAQYCAgIB4NgIAIAAgCTYCBAwFCyAAQYCAgIB4NgIAIAAgAjYCBAwECyAAQYCAgIB4NgIAIAAgAjYCBAwDCyABQSU2AsgCIAEgASkD4AI3A5gDIANBjAFqIAlBEGooAgA2AgAgA0GEAWogCUEIaikCADcCACADQQo2AnggAyAJKQIANwJ8IANB+ABqEOgDIABBCGogA0HUAGooAgA2AgAgACADKQJMNwIADAYLIANBAToAXiADIAEoAaoCNgBYIAMgAS8BrgI7AFwgAyABKQCxAjcAXyADIAEpALkCNwBnIAMgASgAwQI2AG8gAyABLwDFAjsAcyADQfgAaiABIANB2ABqIggQvwggCCADKAJ4EK0EIAMoAlwhCCADKAJYIg5BAkcEQCADKQJgIREgAygCTCAMRgRAIANBzABqEK0MIAMoAlAhEAsgDSAQaiIKIBE3AgAgCkEEayAINgIAIApBCGsgDjYCACADIAxBAWoiDDYCVCANQRBqIQ0gA0H4AGoQ9QpBACEKDAELCyAAQYCAgIB4NgIAIAAgCDYCBCADQfgAahD1CgsgA0HMAGoQ7SEgAygCTCADKAJQEL8qDAMLIAUgAygCgAEQoy8ACyABQSU2AsgCIAEgASkD4AI3A5gDIAEgASgCzAIQwAgLIABBgICAgHg2AgAgACAFNgIECyADQShqEPUKIANBoAFqJAAL6iQCCX8BfiMAQRBrIgYkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkBBByAAKAIAIgFBDGsiAiACQSZPG0EBaw4kAAECAwQFBgcICQoLDA0ODxAREhMiFBUWFyIYGRobHB0eHyAhIgsgACgCCCECIAAoAgwiAwRAIAIhAQNAIAEoAgBBAkcEQCABQQxqKAIAIgQQngEgBEHAAEEIEKIYCyABQRBqIQEgA0EBayIDDQALCyAAKAIEIAIQvyoMIQsgACgCCCECIAAoAgwiAwRAIAIhAQNAAkAgASgCACIEBEAgBBCeASAEQcAAQQgQohgMAQsgAUEEaigCACIEEJEFIARB8ABBCBCiGAsgAUEMaiEBIANBAWsiAw0ACwsgACgCBCACEMAqDCALAkAgAC0AHEECRg0AIAApAwgiCkIDg0IAUg0AIAYgCqciATYCDCAGQQxqENAGIAEgASgCACICQQFrNgIAIAJBAUcNACABIAEoAiAQjScLIAAoAiAiAkEEaigCACEAIAIoAggiAQRAA0AgABDbCCAAQUBrIQAgAUEBayIBDQALIAJBBGooAgAhAAsgAigCACAAEMEqIAJBEGooAgAhACACKAIUIgEEQANAIAAoAgAiAxCeASADQcAAQQgQohggAEEMaiEAIAFBAWsiAQ0ACyACQRBqKAIAIQALIAIoAgwgABDAKiACKAIYIgNBgICAgHhHBEAgAkEcaigCACEAIAIoAiAiAQRAA0AgABCFAyAAQTBqIQAgAUEBayIBDQALIAIoAhghAyACQRxqKAIAIQALIAMgABDCKgsgAigCPCIABEAgABD/DiAAKAIAIABBBGooAgAQwiogAEEUQQQQohgLIAIoAkAiAARAIAAoAgAiARDqAiABQeAAQQgQohggAEEMQQQQohgLIAJByABBBBCiGAwfCyAAKAIEIgAQngEgAEHAAEEIEKIYDB4LIAAoAgwiABCeASAAQcAAQQgQohgMHQsgACgCBCIBEJ4BIAFBwABBCBCiGCAAKAIIIgAQngEgAEHAAEEIEKIYDBwLAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEODAABAgMEBQYHCAkLCgsLIABBCGoQmhQMCgsgAEEIahDwDQwJCyMAQRBrIgIkAAJAIABBCGoiASgCAEUEQCABKQMIIgpCA4NCAFINASACIAqnIgE2AgwgAkEMahDQBiABIAEoAgAiA0EBazYCACADQQFHDQEgASABKAIgEI0nDAELIAEoAgQiARCeASABQcAAQQgQohgLIAJBEGokAAwICyAAQQRqELosDAcLAkAgAEEEaigCACICKAIAQQNHBEAgAigCICIBEJ4BIAFBwABBCBCiGCACEJYPDAELIAIoAhAiARCeASABQcAAQQgQohggAkEIaigCACEBIAIoAgwiAwRAIAFBDGohAQNAIAEoAgAiBBCeASAEQcAAQQgQohggAUEQaiEBIANBAWsiAw0ACyACQQhqKAIAIQELIAIoAgQgARC/KiACKAIgIgRFDQAgBEEEaigCACEBIAQoAggiAwRAA0AgASgCACIFEOoCIAVB4ABBCBCiGCABQQRqIQEgA0EBayIDDQALIARBBGooAgAhAQsgBCgCACABEMMqIARBFEEEEKIYCyACQShBCBCiGAwGCyAAQQRqEPUnDAULIABBBGoQ9ScMBAsgAEEEahC6LAwDCyAAQQRqEPUnDAILIABBBGoiASgCACICEJ4BIAJBwABBCBCiGCABKAIEIgJBBGooAgAhASACKAIIIgMEQANAIAEoAgAiBBDqAiAEQeAAQQgQohggAUEEaiEBIANBAWsiAw0ACyACQQRqKAIAIQELIAIoAgAgARDDKiACQRRBBBCiGAwBCwJAAkAgACgCBA4CAAECCyAAQQhqIgMoAgQhAiADKAIIIgQEQCACIQEDQCABKAIAQQdHBEAgARDKBwsgAUEoaiEBIARBAWsiBA0ACwsgAygCACACEMUqIAMoAhQiAQRAIAEoAgAiAhDqAiACQeAAQQgQohggAUEMQQQQohgLDAELIABBCGoiAygCBCECIAMoAggiBARAIAIhAQNAAkACQAJAAkAgASgCAA4CAQIACyABQQRqKAIAIgUQygcgBUEoQQgQohggAUEYaigCACIFRQ0CIAUoAgAiBxDqAiAHQeAAQQgQohggBUEMQQQQohgMAgsgAUEIahDyDCABQShqKAIAIgUQygcgBUEoQQgQohgMAQsgAUEQahCaFCABQTBqKAIAIgVFDQAgBRCeASAFQcAAQQgQohgLIAFBOGohASAEQQFrIgQNAAsLIAMoAgAgAhDHKiADKAIUIgEEQCABKAIAIgIQ6gIgAkHgAEEIEKIYIAFBDEEEEKIYCwsgACgCOCIAEJ4BIABBwABBCBCiGAwbCyAAKAIoIgEQngEgAUHAAEEIEKIYIABBCGoQlg8MGgsgACgCCEUEQCAAKQMQIgpCA4NCAFINGiAGIAqnIgA2AgwgBkEMahDQBiAAIAAoAgAiAUEBazYCACABQQFHDRogACAAKAIgEI0nDBoLIAAoAgwiABCeASAAQcAAQQgQohgMGQsgACgCBCIBEJ4BIAFBwABBCBCiGCAAKAIIIgEQngEgAUHAAEEIEKIYIAAoAgwiABCeASAAQcAAQQgQohgMGAsgAC0AGEEFRgRAIAAoAhAiARCeASABQcAAQQgQohgLIAAoAgghAiAAKAIMIgMEQCACQQxqIQEDQCABKAIAIgQQngEgBEHAAEEIEKIYIAFBEGohASADQQFrIgMNAAsLIAAoAgQgAhC/KiAAKAIoIgBFDRcgABDbHiAAQRRBBBCiGAwXCyAAKAIQIgEQngEgAUHAAEEIEKIYIAAoAgQiAUGAgICAeEcEQCAAQQRqEO8hIAEgACgCCBC/KgsgACgCICIARQ0WIAAQ2x4gAEEUQQQQohgMFgsgACgCCCECIAAoAgwiAwRAIAIhAQNAIAEoAgAiBBCeASAEQcAAQQgQohggAUEEaiEBIANBAWsiAw0ACwsgACgCBCACEMMqDBULIAApAwgiCkIDg0IAUg0UIAYgCqciADYCDCAGQQxqENAGIAAgACgCACIBQQFrNgIAIAFBAUcNFCAAIAAoAiAQjScMFAsgAEEIahDLCgwTCyAAKAIIIQIgACgCDCIDBEAgAiEBA0AgASgCACIEEJ4BIARBwABBCBCiGCABQQRqIQEgA0EBayIDDQALCyAAKAIEIAIQwyogACgCFCIBIAAoAhgQrg4gACgCECABEMQqDBILIAAoAgQiARCeASABQcAAQQgQohggACgCGCIBBEAgARDbHiABQRRBBBCiGAsgACgCCCICQQRqKAIAIQAgAigCCCIBBEADQCAAKAIAIgMQngEgA0HAAEEIEKIYIABBBGohACABQQFrIgENAAsgAkEEaigCACEACyACKAIAIAAQwyogAkEQaiIAKAIAIAJBFGooAgAQrg4gAigCDCAAKAIAEMQqIAJBIEEEEKIYDBELIAAoAgghAiAAKAIMIgMEQCACIQEDQCABEMoHIAFBKGohASADQQFrIgMNAAsLIAAoAgQgAhDFKgJAIAAoAhAiASgCAEGAgICAeEcEQCABKAIEIQMgASgCCCIEBEAgAyECA0AgAhCFAyACQTBqIQIgBEEBayIEDQALCyABKAIAIAMQwioMAQsgAUEEahC6LAsgAUEYQQQQohggACgCICIBBEAjAEEQayIEJAAgASgCBCECIAEoAggiBQRAIAJBJGohAgNAAkAgAkEcaykDACIKQgODQgBSDQAgBCAKpyIDNgIMIARBDGoQ0AYgAyADKAIAIgdBAWs2AgAgB0EBRw0AIAMgAygCIBCNJwsgAkEEaygCACIDBEAgAxDqAiADQeAAQQgQohgLIAIoAgAiAwRAIAMQ6gIgA0HgAEEIEKIYCyACQTBqIQIgBUEBayIFDQALIAEoAgQhAgsgASgCACACEMIqIARBEGokACABQRRBBBCiGAsgACgCJCIARQ0QIAAoAgAiARDqAiABQeAAQQgQohggAEEMQQQQohgMEAsCQCAALQAcQQJGDQAgACkDCCIKQgODQgBSDQAgBiAKpyIBNgIMIAZBDGoQ0AYgASABKAIAIgJBAWs2AgAgAkEBRw0AIAEgASgCIBCNJwsgACgCICICQQRqKAIAIQAgAigCCCIBBEADQCAAKAIAIgMQngEgA0HAAEEIEKIYIABBDGohACABQQFrIgENAAsgAkEEaigCACEACyACKAIAIAAQwCogAkEQaigCACEAIAIoAhQiAQRAA0AgABC4AiAAQdgAaiEAIAFBAWsiAQ0ACyACQRBqKAIAIQALIAIoAgwgABDGKiACKAIwIgAEQCAAEJ4BIABBwABBCBCiGAsgAigCNCIABEAgABD/DiAAKAIAIABBBGooAgAQwiogAEEUQQQQohgLIAIoAjgiAARAIAAQtSIgACgCACAAQQRqKAIAEMMqIABBFEEEEKIYCyACQRxqKAIAIQQgAigCICIHBEADQCAEIAVBBHRqIgAoAgAiARCeASABQcAAQQgQohggACgCDCIDBEAgA0EEaiIIKAIAIQAgAygCCCIBBEADQCAAKAIAIgkQ6gIgCUHgAEEIEKIYIABBBGohACABQQFrIgENAAsgCCgCACEACyADKAIAIAAQwyogA0EUQQQQohgLIAVBAWoiBSAHRw0ACyACQRxqKAIAIQQLIAIoAhggBBC/KiACQcAAQQQQohgMDwsgACgCDCIARQ0OIAAQngEgAEHAAEEIEKIYDA4LIAAoAgQiABCeASAAQcAAQQgQohgMDQsgACgCBCIAEJ4BIABBwABBCBCiGAwMCyAAQQhqEI0PDAsLIABBCGoQ8RAMCgsgACgCBCICQUBrEO4SIAJBgAFqKAIAIQAgAigChAEiAQRAA0ACQCAAKAIAQQVHBEAgAEEwahD1FQJAAkACQAJAIAAoAgBBAWsOBAIDAAUBCyAAQQRqIgMQgBMgAygCACAAQQhqKAIAEMUqDAQLIABBCGoQywoMAwsgAEEEaigCAEUNAiAAQQhqKAIAIgMQngEgA0HAAEEIEKIYDAILIABBBGoQsQkMAQsgAEEEaigCACIDEJ4BIANBwABBCBCiGAsgAEHYAGohACABQQFrIgENAAsgAkGAAWooAgAhAAsgAigCfCAAEMYqIAIoAngiAARAIAAQtSIgACgCACAAQQRqKAIAEMMqIABBFEEEEKIYCyACQZABahCAEyACKAKQASACQZQBaigCABDFKiACLQA8QQZHBEAgAkEQahDuEgsgAkGgAUEIEKIYDAkLIAAoAgghAiAAKAIMIgMEQCACIQEDQCABEPENIAFBKGohASADQQFrIgMNAAsLIAAoAgQgAhDFKgwICyAAKAIEIgEQngEgAUHAAEEIEKIYIAAoAggiABDqAiAAQeAAQQgQohgMBwsgACgCBCIAEJ4BIABBwABBCBCiGAwGCyAAKAIEIgAQngEgAEHAAEEIEKIYDAULIAAoAgQiARCeASABQcAAQQgQohggACgCCCIAEOoCIABB4ABBCBCiGAwECyAAKAIEIgEQngEgAUHAAEEIEKIYIAAoAggiAkEEaigCACEAIAIoAggiAQRAA0AgACgCACIDEOoCIANB4ABBCBCiGCAAQQRqIQAgAUEBayIBDQALIAJBBGooAgAhAAsgAigCACAAEMMqIAJBFEEEEKIYDAMLIAAoAgQiARCeASABQcAAQQgQohggACgCCCIAEOoCIABB4ABBCBCiGAwCCyAAKQMIIgpCA4NCAFINASAGIAqnIgA2AgwgBkEMahDQBiAAIAAoAgAiAUEBazYCACABQQFHDQEgACAAKAIgEI0nDAELAkAgACgCBCIDKAIAQQNHBEAgAxDwDQwBCyADQQRqIgIoAgwiABCeASAAQcAAQQgQohggAigCBCEEIAIoAggiAQRAIARBDGohAANAIAAoAgAiBRCeASAFQcAAQQgQohggAEEQaiEAIAFBAWsiAQ0ACwsgAigCACAEEL8qIAIoAhwiAgRAIAJBBGooAgAhACACKAIIIgEEQANAIAAoAgAiBBDqAiAEQeAAQQgQohggAEEEaiEAIAFBAWsiAQ0ACyACQQRqKAIAIQALIAIoAgAgABDDKiACQRRBBBCiGAsLIANBKEEIEKIYCyAGQRBqJAALgBsCDn8DfiMAQfABayICJAAgAUEoaiIDEKETGiABQfwAQcAAIAEoAihBJUYbaigCACEJAkAgAxChEyIFRQRAIAEoAtgCIQEgAkEAOgCwASABIAEgAkGwAWoQ7xshASAAQQQ6ADQgACABNgIADAELAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAUoAgBBJEYEQCABIAEpA0A3A3ggASgCKCABQSU2AihBJEcNASABKAIsIQEgAEEEOgA0IAAgATYCAAwNCyABKAIoIQUgAUElNgIoIAEgASkDQDcDeCACQbwBaiABQTRqKQIANwIAIAJBxAFqIAFBPGooAgA2AgAgAiABKQIsNwK0ASACIAU2ArABIAJBsAFqEI4OAkACQCADEKETIgUEQCAFKAIAQQlGDQELIAJBuAFqIAMQiQogAiADELceIAJBmM3fADYCtAEgAkE0OgCwASACKAIAIAIoAgQgAkGwAWoQ7xshBSADEKETIgNFDQ0gAygCAEEkRg0BDA0LIAEoAighBCABQSU2AiggASABKQNANwN4IAJBvAFqIAFBLGoiBUEIaikCADcCACACQcQBaiAFQRBqKAIANgIAIAIgBSkCADcCtAEgAiAENgKwASACQbAB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AiggAUElNgIoQSRHDQYgASABKAIsEMUQDAsLQYmE4QBBKEG4zN8AENUhAAtBiYThAEEoQcjM3wAQ1SEAC0GJhOEAQShBhNHfABDVIQALQYmE4QBBKEH00N8AENUhAAtBiYThAEEoQZTR3wAQ1SEAC0GJhOEAQShBwNHfABDVIQALQYmE4QBBKEGwzd8AENUhAAsgAkE4ahDTLQsgAEEEOgA0IAAgBDYCAAwBCwJAAkACQAJAAkAgAxChEyIGRQ0AIAYoAgBBCkcNACABKAIoIQYgAUElNgIoIAJBvAFqIgsgBUEIaikCADcCACACQcQBaiIPIAVBEGooAgA2AgAgAiAFKQIANwK0ASABKQNAIRAgBSACQdQAakEkEIEJIQUgASAQNwN4IAIgBjYCsAEgAkGwAWoiChCODkEDIQYCQCADEKETIgdFDQAgBygCAEEGRw0AIAEoAighBiABQSU2AiggCyIHIAVBCGopAgA3AgAgDyAFQRBqKAIANgIAIAIgBSkCADcCtAEgASkDQCEQIAUgAkHUAGpBJBCBCRogASAQNwN4IAIgBjYCsAEgChCODiAKIAFBABDgAyACKAKwASEFIAItAMQBIgZBA0YNAiACQcQAaiAHKQIANwIAIAJBzwBqIAJBxwFqLQAAOgAAIAIgAikCtAE3AjwgAiACLwDFATsATSACIAU2AjgLIAIgBjoATEEAIQUCQCADEKETIgNFDQAgAygCAEEURw0AIAMtAARBBEcNACACQckBaiABQZcDaikAADcAACACQcQBaiABQZIDaikBADcCACACQbwBaiABQYoDaiIDKQEANwIAIAJBADoAhQEgAiABLQCOAzoAhAEgAiABLQCeAzoAlAEgAiABKQGCAyIQNwB4IAIgAygBADYAgAEgAiABKQOQAzcAhgEgAiABKAKYAzYAjgEgAiABLwGcAzsAkgEgAiAQNwK0ASABQYABaiACQfgAahDvCiACIAE2ArABIAJBEGogARCyAiACKAIUIQUgAigCEA0DIAJBsAFqEOUsCyAAIBI3AxggACAMNgIUIAAgDTYCECAAIBE3AwggACACKQM4NwMgIAAgCDYCRCAAIA42AkAgACAENgI8IAAgBTYCOCAAQShqIAJBQGspAwA3AwAgAEEwaiACQcgAaikDADcDACAAIAkgASgCfCIBIAEgCUkbNgIE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FgsgACgCCCECIAAoAgwiAwRAIAIhAQNAIAEoAgAiBBChASAEQcAAQQgQohggAUEEaiEBIANBAWsiAw0ACwsgACgCBCACEMMqDBULIAApAwgiCkIDg0IAUg0UIAYgCqciADYCDCAGQQxqENAGIAAgACgCACIBQQFrNgIAIAFBAUcNFCAAIAAoAiAQjScMFAsgAEEIahDLCgwTCyAAKAIIIQIgACgCDCIDBEAgAiEBA0AgASgCACIEEKEBIARBwABBCBCiGCABQQRqIQEgA0EBayIDDQALCyAAKAIEIAIQwyogACgCFCIBIAAoAhgQrg4gACgCECABEMQqDBILIAAoAgQiARChASABQcAAQQgQohggACgCGCIBBEAgARDWHiABQRRBBBCiGAsgACgCCCICQQRqKAIAIQAgAigCCCIBBEADQCAAKAIAIgMQoQEgA0HAAEEIEKIYIABBBGohACABQQFrIgENAAsgAkEEaigCACEACyACKAIAIAAQwyogAkEQaiIAKAIAIAJBFGooAgAQrg4gAigCDCAAKAIAEMQqIAJBIEEEEKIYDBELIAAoAgghAiAAKAIMIgMEQCACIQEDQCABEMkHIAFBKGohASADQQFrIgMNAAsLIAAoAgQgAhDFKgJAIAAoAhAiASgCAEGAgICAeEcEQCABKAIEIQMgASgCCCIEBEAgAyECA0AgAhCEAyACQTBqIQIgBEEBayIEDQALCyABKAIAIAMQwioMAQsgAUEEahCvLAsgAUEYQQQQohggACgCICIBBEAjAEEQayIEJAAgASgCBCECIAEoAggiBQRAIAJBJGohAgNAAkAgAkEcaykDACIKQgODQgBSDQAgBCAKpyIDNgIMIARBDGoQ0AYgAyADKAIAIgdBAWs2AgAgB0EBRw0AIAMgAygCIBCNJwsgAkEEaygCACIDBEAgAxDpAiADQeAAQQgQohgLIAIoAgAiAwRAIAMQ6QIgA0HgAEEIEKIYCyACQTBqIQIgBUEBayIFDQALIAEoAgQhAgsgASgCACACEMIqIARBEGokACABQRRBBBCiGAsgACgCJCIARQ0QIAAoAgAiARDpAiABQeAAQQgQohggAEEMQQQQohgMEAsCQCAALQAcQQJGDQAgACkDCCIKQgODQgBSDQAgBiAKpyIBNgIMIAZBDGoQ0AYgASABKAIAIgJBAWs2AgAg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IAIhAQNAAkAgASgCACIEBEAgBBCiASAEQcAAQQgQohgMAQsgAUEEaigCACIEEJQFIARB8ABBCBCiGAsgAUEMaiEBIANBAWsiAw0ACwsgACgCBCACEMAqDCALAkAgAC0AHEECRg0AIAApAwgiCkIDg0IAUg0AIAYgCqciATYCDCAGQQxqENAGIAEgASgCACICQQFrNgIAIAJBAUcNACABIAEoAiAQjScLIAAoAiAiAkEEaigCACEAIAIoAggiAQRAA0AgABDcCCAAQUBrIQAgAUEBayIBDQALIAJBBGooAgAhAAsgAigCACAAEMEqIAJBEGooAgAhACACKAIUIgEEQANAIAAoAgAiAxCiASADQcAAQQgQohggAEEMaiEAIAFBAWsiAQ0ACyACQRBqKAIAIQALIAIoAgwgABDAKiACKAIYIgNBgICAgHhHBEAgAkEcaigCACEAIAIoAiAiAQRAA0AgABCGAyAAQTBqIQAgAUEBayIBDQALIAIoAhghAyACQRxqKAIAIQALIAMgABDCKgsgAigCPCIABEAgABCBDyAAKAIAIABBBGooAgAQwiogAEEUQQQQohgLIAIoAkAiAARAIAAoAgAiARC1AiABQeAAQQgQohggAEEMQQQQohgLIAJByABBBBCiGAwfCyAAKAIEIgAQogEgAEHAAEEIEKIYDB4LIAAoAgwiABCiASAAQcAAQQgQohgMHQsgACgCBCIBEKIBIAFBwABBCBCiGCAAKAIIIgAQogEgAEHAAEEIEKIYDBwLAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEODAABAgMEBQYHCAkLCgsLIABBCGoQpBQMCgsgAEEIahD4DQwJCyMAQRBrIgIkAAJAIABBCGoiASgCAEUEQCABKQMIIgpCA4NCAFINASACIAqnIgE2AgwgAkEMahDQBiABIAEoAgAiA0EBazYCACADQQFHDQEgASABKAIgEI0nDAELIAEoAgQiARCiASABQcAAQQgQohgLIAJBEGokAAwICyAAQQRqENUsDAcLAkAgAEEEaigCACICKAIAQQNHBEAgAigCICIBEKIBIAFBwABBCBCiGCACEKAPDAELIAIoAhAiARCiASABQcAAQQgQohggAkEIaigCACEBIAIoAgwiAwRAIAFBDGohAQNAIAEoAgAiBBCiASAEQcAAQQgQohggAUEQaiEBIANBAWsiAw0ACyACQQhqKAIAIQELIAIoAgQgARC/KiACKAIgIgRFDQAgBEEEaigCACEBIAQoAggiAwRAA0AgASgCACIFELUCIAVB4ABBCBCiGCABQQRqIQEgA0EBayIDDQALIARBBGooAgAhAQsgBCgCACABEMMqIARBFEEEEKIYCyACQShBCBCiGAwGCyAAQQRqEIwoDAULIABBBGoQjCgMBAsgAEEEahDVLAwDCyAAQQRqEIwoDAILIABBBGoiASgCACICEKIBIAJBwABBCBCiGCABKAIEIgJBBGooAgAhASACKAIIIgMEQANAIAEoAgAiBBC1AiAEQeAAQQgQohggAUEEaiEBIANBAWsiAw0ACyACQQRqKAIAIQELIAIoAgAgARDDKiACQRRBBBCiGAwBCwJAAkAgACgCBA4CAAECCyAAQQhqIgMoAgQhAiADKAIIIgQEQCACIQEDQCABKAIAQQdHBEAgARDLBwsgAUEoaiEBIARBAWsiBA0ACwsgAygCACACEMUqIAMoAhQiAQRAIAEoAgAiAhC1AiACQeAAQQgQohggAUEMQQQQohgLDAELIABBCGoiAygCBCECIAMoAggiBARAIAIhAQNAAkACQAJAAkAgASgCAA4CAQIACyABQQRqKAIAIgUQywcgBUEoQQgQohggAUEYaigCACIFRQ0CIAUoAgAiBxC1AiAHQeAAQQgQohggBUEMQQQQohgMAgsgAUEIahCUDAwBCyABQRBqEKQUIAFBMGooAgAiBUUNACAFEKIBIAVBwABBCBCiGAsgAUE4aiEBIARBAWsiBA0ACwsgAygCACACEMcqIAMoAhQiAQRAIAEoAgAiAhC1AiACQeAAQQgQohggAUEMQQQQohgLCyAAKAI4IgAQogEgAEHAAEEIEKIYDBsLIAAoAigiARCiASABQcAAQQgQohggAEEIahCgDwwaCyAAKAIIRQRAIAApAxAiCkIDg0IAUg0aIAYgCqciADYCDCAGQQxqENAGIAAgACgCACIBQQFrNgIAIAFBAUcNGiAAIAAoAiAQjScMGgsgAEEMahDVLAwZCyAAKAIEIgEQogEgAUHAAEEIEKIYIAAoAggiARCiASABQcAAQQgQohggACgCDCIAEKIBIABBwABBCBCiGAwYCyAALQAYQQVGBEAgACgCECIBEKIBIAFBwABBCBCi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AEEEahC0CQwBCyAAQQRqKAIAIgMQogEgA0HAAEEIEKIYCyAAQdgAaiEAIAFBAWsiAQ0ACyACQYABaigCACEACyACKAJ8IAAQxiogAigCeCIABEAgABC8IiAAKAIAIABBBGooAgAQwyogAEEUQQQQohgLIAJBkAFqEI0TIAIoApABIAJBlAFqKAIAEMUqIAItADxBBkcEQCACQRBqEO4SCyACQaABQQgQohgMCQsgACgCCCECIAAoAgwiAwRAIAIhAQNAIAEQ+Q0gAUEoaiEBIANBAWsiAw0ACwsgACgCBCACEMUqDAgLIAAoAgQiARCiASABQcAAQQgQohggACgCCCIAELUCIABB4ABBCBCiGAwHCyAAKAIEIgAQogEgAEHAAEEIEKIYDAYLIAAoAgQiABCiASAAQcAAQQgQohgMBQsgACgCBCIBEKIBIAFBwABBCBCiGCAAKAIIIgAQtQIgAEHgAEEIEKIYDAQLIAAoAgQiARCiASABQcAAQQgQohggACgCCCICQQRqKAIAIQAgAigCCCIBBEADQCAAKAIAIgMQtQIgA0HgAEEIEKIYIABBBGohACABQQFrIgENAAsgAkEEaigCACEACyACKAIAIAAQwyogAkEUQQQQohgMAwsgACgCBCIBEKIBIAFBwABBCBCiGCAAKAIIIgAQtQIgAEHgAEEIEKIYDAILIAApAwgiCkIDg0IAUg0BIAYgCqciADYCDCAGQQxqENAGIAAgACgCACIBQQFrNgIAIAFBAUcNASAAIAAoAiAQjScMAQsCQCAAKAIEIgMoAgBBA0cEQCADEPgNDAELIANBBGoiAigCDCIAEKIBIABBwABBCBCiGCACKAIEIQQgAigCCCIBBEAgBEEMaiEAA0AgACgCACIFEKIBIAVBwABBCBCiGCAAQRBqIQAgAUEBayIBDQALCyACKAIAIAQQvyogAigCHCICBEAgAkEEaigCACEAIAIoAggiAQRAA0AgACgCACIEELUCIARB4ABBCBCiGCAAQQRqIQAgAUEBayIBDQALIAJBBGooAgAhAAsgAigCACAAEMMqIAJBFEEEEKIYCwsgA0EoQQgQohgLIAZBEGokAAuYJAIJfwF+IwBBEGsiBiQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJA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ohgLIAJBEGokAAwlCyAAQQRqEKgsDCQLAkAgAEEEaigCACIBKAIAQQNHBEAgASgCICICEKQBIAJBwABBCBCiGCABEI4PDAELIAEoAhAiAhCkASACQcAAQQgQohggAUEEahDrISABKAIEIAFBCGooAgAQvyogASgCICICRQ0AIAIQsiIgAigCACACQQRqKAIAEMMqIAJBFEEEEKIYCyABQShBCBCiGAwjCyAAQQRqEOMnDCILIABBBGoQ4ycMIQsgAEEEahCoLAwgCyAAQQRqEOMnDB8LIABBBGoiASgCACICEKQBIAJBwABBCBCiGCABKAIEIgEQsiIgASgCACABQQRqKAIAEMMqIAFBFEEEEKIYDB4LAkACQCAAKAIEDgIAAR8LIAAoAgwiASAAKAIQEI8lIAAoAgggARDFKgwdCyAAQQhqEL4QIAAoAgggACgCDBDHKgwcCyAAQQhqEJIUDBwLIAAoAigiARCkASABQcAAQQgQohggAEEIahCODwwcCyAAKAIIRQRAIAApAxAiCkIDg0IAUg0cIAMgCqciADYCDCADQQxqENAGIAAgACgCACIBQQFrNgIAIAFBAUcNHCAAIAAoAiAQjScMHAsgAEEMahCoLAwbCyAAKAIEIgEQpAEgAUHAAEEIEKIYIAAoAggiARCkASABQcAAQQgQohggACgCDCIAEKQBIABBwABBCBCiGAwaCyAALQAYQQVGBEAgACgCECIBEKQBIAFBwABBCBCiGAsgAEEEahDrISAAKAIEIAAoAggQvyogACgCKCIARQ0ZIAAQsiIgACgCACAAQQRqKAIAEMMqIABBFEEEEKIYDBkLIAAoAhAiARCkASABQcAAQQgQohggACgCBCIBQYCAgIB4RwRAIABBBGoQ6yEgASAAKAIIEL8qCyAAKAIgIgBFDRggABCyIiAAKAIAIABBBGooAgAQwyogAEEUQQQQohgMGAsgACgCCCIBIAAoAgwQkCUgACgCBCABEMMqDBcLIAApAwgiCkIDg0IAUg0WIAMgCqciADYCDCADQQxqENAGIAAgACgCACIBQQFrNgIAIAFBAUcNFiAAIAAoAiAQjScMFgsCQAJAAkACQAJAIAAoAggOBgEaGgIDBAALAkAgACkDECIKQgODQgBSDQAgAyAKpyIBNgIMIANBDGoQ0AYgASABKAIAIgJBAWs2AgAg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Aa8BsAGxAbIBswG0AbUBtgG3AbgBuQG6AQALIAJBADoAAAy6AQsgAkEBOgAADLkBCyACQQI6AAAMuAELIAJBAzoAAAy3AQsgAkEEOgAADLYBCyACQQU6AAAMtQELIAJBBjoAAAy0AQsgAkEHOgAADLMBCyACQQg6AAAMsgELIAJBCToAAAyxAQsgAkEKOgAADLABCyACQQs6AAAMrwELIAJBDDoAAAyuAQsgAkENOgAADK0BCyACQQ46AAAMrAELIAJBDzoAAAyrAQsgAkEQOgAADKoBCyACQRE6AAAMqQELIAJBEjoAAAyoAQsgAkETOgAADKcBCyACQRQ6AAAMpgELIAJBFToAAAylAQsgAkEWOgAADKQBCyAAQRc6AAggACABLQAJOgAJDKMBCyACQRg6AAAMogELIAJBGToAAAyhAQsgAkEaOgAADKABCyACQRs6AAAMnwELIAJBHDoAAAyeAQsgASkDECIHQgODUARAIAenIgEgASgCACIBQQFqNgIAIAFBAEgNnwELIABBHToACCAAIAc3AxAMnQELIAJBHjoAAAycAQsgAkEfOgAADJsBCyACQSA6AAAMmgELIABBIToACCAAIAEoAgw2AgwMmQELIAJBIjoAAAyYAQsgAkEjOgAADJcBCyAAQSQ6AAggACABKQIMNwIMDJYBCyACQSU6AAAMlQELIAJBJjoAAAyUAQsgASkDECIHQgODUARAIAenIgEgASgCACIBQQFqNgIAIAFBAEgNlQELIABBJzoACCAAIAc3AxAMkwELIAJBKDoAAAySAQsgAkEpOgAADJEBCyACQSo6AAAMkAELIAJBKzoAAAyPAQsgA0EEaiABKAIYIAEoAhwQ5BsgAEEsOgAIIAAgAykCBDcCFCAAQRxqIANBDGooAgA2AgAgACABKQIMNwIMDI4BCyACQS06AAAMjQELIAJBLjoAAAyMAQsgAkEvOgAADIsBCyADQQRqIAEoAhggASgCHBDkGyAAQTA6AAggACADKQIENwIUIABBHGogA0EMaigCADYCACAAIAEpAgw3AgwMigELIANBBGohAiABKAIQIQUgASgCFCEEIwBBEGsiASQAIAFBBGogBEEEQQgQ3hAgASgCCCEGIAEoAgRBAUYEQCAGIAEoAgwQoy8ACyABKAIMIAUgBEEDdBCBCSEFIAIgBDYCCCACIAU2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IAAoAgQiARCrASABQcAAQQgQohggACgCCCIAEKsBIABBwABBCBCiGAweCwJAAkACQAJAAkACQAJAAkACQAJAAkAgAQ4MCgABAgMEBQYHCCcJJwsgAEEIahCCDgwmCyMAQRBrIgIkAAJAIABBCGoiASgCAEUEQCABKQMIIgZCA4NCAFINASACIAanIgE2AgwgAkEMahDQBiABIAEoAgAiBEEBazYCACAEQQFHDQEgASABKAIgEI0nDAELIAEoAgQiARCrASABQcAAQQgQohgLIAJBEGokAAwlCyAAQQRqEN8sDCQLAkAgAEEEaigCACIBKAIAQQNHBEAgASgCICICEKsBIAJBwABBCBCiGCABEK0PDAELIAEoAhAiAhCrASACQcAAQQgQohggAUEEahDzISABKAIEIgIEQCABKAIIIAJBBHRBBBCiGAsgASgCICICRQ0AIAIQwCIgAigCACIEBEAgAigCBCAEQQJ0QQQQohgLIAJBFEEEEKIYCyABQShBCBCiGAwjCyAAQQRqEJsoDCILIABBBGoQmygMIQsgAEEEahDfLAwgCyAAQQRqEJsoDB8LIABBBGoiASgCACICEKsBIAJBwABBCBCiGCABKAIEIgEQwCIgASgCACICBEAgASgCBCACQQJ0QQQQohgLIAFBFEEEEKIYDB4LAkACQCAAKAIEDgIAAR8LIAAoAgwiASAAKAIQEKolIAAoAggiAkUNHSABIAJBKGxBCBCiGAwdCyAAQQhqEMMQIAAoAggiAUUNHCAAKAIMIAFBOGxBCBCiGAwcCyMAQRBrIgIkAAJAIABBCGoiBCkDACIGQgODQgBSDQAgAiAGpyIBNgIMIAJBDGoQ0AYgASABKAIAIgVBAWs2AgAgBUEBRw0AIAEgASgCIBCNJwsgBCgCGCIBBEAgASgCACIEEMEDIARB4ABBCBCiGCABQQxBBBCiGAsgAkEQaiQADBwLIAAoAigiARCrASABQcAAQQgQohggAEEIahCtDwwcCyAAKAIIRQRAIAApAxAiBkIDg0IAUg0cIAMgBqciADYCDCADQQxqENAGIAAgACgCACIBQQFrNgIAIAFBAUcNHCAAIAAoAiAQjScMHAsgAEEMahDfLAwbCyAAKAIEIgEQqwEgAUHAAEEIEKIYIAAoAggiARCrASABQcAAQQgQohggACgCDCIAEKsBIABB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IAFBEGogAkHQAGopAwA3AwAgAUEIaiACQcgAaikDADcDACABIAIpA0A3AwAgCkEoayEKIAFBKGohASAFQShqIQUgBEEBayIEDQALC0EAIQFBACEFIAMoAhgiBARAEL8pIQUgBCkCBCEaIAQoAgAhCRDAKSACQUBrIgogCRB9IApB4AAQgQkhBCAFIBo3AgQgBSAENgIACyADKAIcIgwEQBDEKSEBIAwoAgwhCSAMKAIQIQQgAkFAayAMEL0HIAFBEGogBDYCACABIAIpAkA3AgAgAiAJNgJMIAFBCGogAkHIAGopAgA3AgALIAIgATYCJCACIAU2AiAgAiAONgIcIAIgBjYCGCACIAc2AhQgAiALNgIQIAIgCDYCDCACQQQ2AggMBgsgAygCCCEFIAMoAhQhDiADKAIQIQYgAkFAayADKAIMIgdBCEEoEN4QIAIoAkQhCCACKAJAQQFGDQkgAigCSCELAkAgCEUNACAHQShsIQogCyEBIAghBANAIApFDQEgAkFAayAFEPEDIAFBIGogAkHgAGopAwA3AwAgAUEYaiACQdgAaikDADcDACABQRBqIAJB0ABqKQMANwMAIAFBCGogAkHIAGopAwA3AwAgASACKQNANwMAIApBKGshCiABQShqIQEgBUEoaiEFIARBAWsiBA0ACwtBACEBQQAhBSADKAIYIgQEQBC/KSEFIAQpAgQhGiAEKAIAIQkQwCkgAkFAayIKIAkQfSAKQeAAEIEJIQQgBSAaNwIEIAUgBDYCAAsgAygCHCIMBEAQxCkhASAMKAIMIQkgDCgCECEEIAJBQGsgDBC9ByABQRBqIAQ2AgAgASACKQJANwIAIAIgCTYCTCABQQhqIAJByABqKQIANwIACyACIAE2AiQgAiAFNgIgIAIgDjYCHCACIAY2AhggAiAHNgIUIAIgCzYCECACIAg2AgwgAkEFNgIIDAULIAMtABQhDiADKAIIIQYgAygCBCEJIAMoAhAhARC+KSEHIAJBQGsgARA1IAdBOGogAkH4AGopAwA3AwAgB0EwaiACQfAAaikDADcDACAHQShqIAJB6ABqKQMANwMAIAdBIGogAkHgAGopAwA3AwAgB0EYaiACQdgAaikDADcDACAHQRBqIAJB0ABqKQMANwMAIAdBCGogAkHIAGopAwA3AwAgByACKQNANwMAIAMtABYhCCADLQAVIQsCQCADKAIMIgFFBEBBACEFDAELEL8pIQUgASkCBCEaIAEoAgAhBBDAKSACQUBrIgogBBB9IApB4AAQgQkhASAFIBo3AgQgBSABNgIACyACIAg6AB4gAiALOgAdIAIgDjoAHCACIAc2AhggAiAFNgIUIAIgBjYCECACIAk2AgwgAkEGNgIIDAQLIAMoAgwhCSADKAIIIQggAygCBCEBEL4pIQYgAkFAayABEDUgBkE4aiACQfgAaikDADcDACAGQTBqIAJB8ABqKQMANwMAIAZBKGogAkHoAGopAwA3AwAgBkEgaiACQeAAaikDADcDACAGQRhqIAJB2ABqKQMANwMAIAZBEGogAkHQAGopAwA3AwAgBkEIaiACQcgAaikDADcDACAGIAIpA0A3AwAgAy0AFCELAkAgAygCECIBRQRAQQAhBQwBCxC/KSEFIAEpAgQhGiABKAIAIQQQwCkgAkFAayIHIAQQfSAHQeAAEIEJIQEgBSAaNwIEIAUgATYCAAsgAiALOgAcIAIgBTYCGCACIAk2AhQgAiAINgIQIAIgBjYCDCACQQc2AggMAwsgAykDKCEaIAMoAjAhARC+KSEGIAJBQGsiByABEDUgBkE4aiACQfgAaikDADcDACAGQTBqIAJB8ABqIgkpAwA3AwAgBkEoaiACQegAaikDADcDACAGQSBqIAJB4ABqIgUpAwA3AwAgBkEYaiACQdgAaiIIKQMANwMAIAZBEGogAkHQAGoiCykDADcDACAGQQhqIAJByABqIgQpAwA3AwAgBiACKQNANwMAIAMtADQhASAHIAMQ8QMgCSAGNgIAIAJBMGogGjcDACACQRBqIAQpAwA3AwAgAkEYaiALKQMANwMAIAJBIGogCCkDADcDACACQShqIAUpAwA3AwAgAiABOgB0IAJBOGogCSkDADcDACACIAIpA0A3AwgMAgsgAygCGCEYIAMoAhQhGSADKAIQIQEQvikhDSACQUBrIgQgARA1IA1BOGogAkH4AGopAwA3AwAgDUEwaiACQfAAaikDADcDACANQShqIAJB6ABqKQMANwMAIA1BIGogAkHgAGoiDCkDADcDACANQRhqIAJB2ABqIgcpAwA3AwAgDUEQaiACQdAAaiIJKQMANwMAIA1BCGogAkHIAGoiFCkDADcDACANIAIpA0A3AwAgAygC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KGoQ7xshBSAEKAIAIgZBJUcNBCABKALwAiECIAFBJTYC8AIgAkElRg0CIANBzABqIAFBlANqKAIANgIAIANBxABqIAFBjANqKQIANwIAIANBPGogAUGEA2opAgA3AgAgA0E0aiABQfwCaikCADcCACADIAI2AiggAyABKQL0AjcCLAwDCyABQSU2AsgCIAEgASkD4AI3A5gDIANBPGogAUHcAmooAgA2AgAgA0E0aiABQdQCaikCADcCACADQQI2AiggAyABKQLMAjcCLCADQShqEOgDIAEoAsgCIQYLAkAgBkElRgRAIAEoAvACIQUgAUElNgLwAgJAIAVBJUcEQCADQcwAaiABQZQDaigCADYCACADQcQAaiABQYwDaikCADcCACADQTxqIAFBhANqKQIANwIAIANBNGogAUH8AmopAgA3AgAgAyAFNgIoIAMgASkC9AI3AiwMAQsgA0EoaiAHEDIgBCgCAEElRg0AIAQQ6AMLIAQgAykDKDcDACAEQSBqIANByABqKQMANwMAIARBGGogA0FAaykDADcDACAEQRBqIANBOGopAwA3AwAgBEEIaiADQTBqKQMANwMAQQAhBSAEKAIAIgZBJUYNAQtBACEFIAZBFEcNBiABLQDMAkEERw0GIANBEGogAUEAQQEQaiADKAIUIQUgAygCEA0KIAQoAgAiBkElRw0GCyABKALwAiEGIAFBJTYC8AIgBkElRg0DIANBzABqIAFBlANqKAIANgIAIANBxABqIAFBjANqKQIANwIAIANBPGogAUGEA2opAgA3AgAgA0E0aiABQfwCaikCADcCACADIAY2AiggAyABKQL0AjcCLAwECyADQShqIAcQMiAEKAIAQSVGDQAgBBDoAwsgBCADKQMoNwMAIARBIGogA0HIAGopAwA3AwAgBEEYaiADQUBrKQMANwMAIARBEGogA0E4aikDADcDACAEQQhqIANBMGopAwA3AwAgBCgCACIGQSVGDQsLIAZBJEcNCiABQSU2AsgCIAEgASkD4AI3A5gDIAEgASgCzAIQwAgMCgsgA0EoaiAHEDIgBCgCAEElRg0AIAQQ6AMLIAQgAykDKDcDACAEQSBqIANByABqKQMANwMAIARBGGogA0FAaykDADcDACAEQRBqIANBOGopAwA3AwAgBEEIaiADQTBqKQMANwMAIAQoAgAiBkElRg0BCyAGQQlGDQELIANBMGogBxDdByADQZjN3wA2AiwgA0E0OgAoIAdB8AJBuAIgBCgCAEElRiIGG2ooAgAiAiAHQfQCQbwCIAYbaigCACIGIAIgBkkbIAIgBiACIAZLGyADQShqEO8bIQkgBCgCACIGQSVGBEAgASgC8AIhAiABQSU2AvACAkAgAkElRwRAIANBzABqIAFBlANqKAIANgIAIANBxABqIAFBjANqKQIANwIAIANBPGogAUGEA2opAgA3AgAgA0E0aiABQfwCaikCADcCACADIAI2AiggAyABKQL0AjcCLAwBCyADQShqIAcQMiAEKAIAQSVGDQAgBBDoAwsgBCADKQMoNwMAIARBIGogA0HIAGopAwA3AwAgBEEYaiADQUBrKQMANwMAIARBEGogA0E4aikDADcDACAEQQhqIANBMGopAwA3AwAgBCgCACIGQSVGDQULIAZBJEYNAQwECyABQSU2AsgCIAEgASkD4AI3A5gDIANBPGogAUHcAmooAgA2AgAgA0E0aiABQdQCaikCADcCACADQQk2AiggAyABKQLMAjcCLCADQShqIgYQ6AMgBiABEKICIAMoAiwhByADKAIoIgZBgICAgHhHBEAgAyADKAIwIgo2AiAgAyAHNgIcIAMgBjYCGCADQQhqIAFB8NrfABB+IAMoAgwhBCADKAIIDQMgASgCnAMhAQJ/IAJFBEAgCCABIAEgCEsbIQcgCCABIAEgCEkbIQIgAykCHCELIAUMAQsgCCABIAEgCEsbIQJBgICAgHghBiADKQMYIQsgBCEHIAUhCSAKIQQgCCABIAEgCEkbCyEBIAAgCTYCHCAAIAE2AhggACACNgIUIAAgBzYCECAAIAQ2AgwgACALNwIEIAAgBjYCAAwHCyAAQYGAgIB4NgIAIAAgBzYCBAwECyABQSU2AsgCIAEgASkD4AI3A5gDIAEgASgCzAIQwAgMAgsgAEGBgICAeDYCACAAIAU2AgQMBAsgAEGBgICAeDYCACAAIAQ2AgQgA0EYahD9CSAGIAcQxSoMAQsgAEGBgICAeDYCACAAIAk2AgQLIAVFDQEgBRD7DiAFKAIAIAVBBGooAgAQwiogBUEUQQQQohgMAQsgAEGBgICAeDYCACAAIAU2AgQLIANB0ABqJAALmBYBCn8jAEGgAWsiBCQAIAFByAJqIQUgAUEoaiEHIAFBnANB4AIgASgCyAIiBkElRgR/IAEoAvACIQYgAUElNgLwAgJAIAZBJUcEQCAEQewAaiABQZQDaigCADYCACAEQeQAaiABQYwDaikCADcCACAEQdwAaiABQYQDaikCADcCACAEQdQAaiABQfwCaikCADcCACAEIAY2AkggBCABKQL0AjcCTAwBCyAEQcgAaiAHEDIgBSgCAEElRg0AIAUQ6AMLIAUgBCkDSDcDACAFQSBqIARB6ABqKQMANwMAIAVBGGogBEHgAGopAwA3AwAgBUEQaiAEQdgAaikDADcDACAFQQhqIARB0ABqKQMANwMAIAUoAgAFIAYLQSVGG2ooAgAhDCAEQcgAaiABQQEQbiAEKAJMIQgCQAJAAkACQAJAAkAgBCgCSCIJQYCAgIB4RwRAIAQgBCgCUCINNgIkIAQgCDYCICAEIAk2AhwCQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBSgCACIGQSVGBEAgASgC8AIhBiABQSU2AvACAkAgBkElRwRAIARB7ABqIAFBlANqKAIANgIAIARB5ABqIAFBjANqKQIANwIAIARB3ABqIAFBhANqKQIANwIAIARB1ABqIAFB/AJqKQIANwIAIAQgBjYCSCAEIAEpAvQCNwJMDAELIARByABqIAcQMiAFKAIAQSVGDQAgBRDoAwsgBSAEKQNINwMAIAVBIGogBEHoAGopAwA3AwAgBUEYaiAEQeAAaikDADcDACAFQRBqIARB2ABqKQMANwMAIAVBCGogBEHQAGopAwA3AwAgBSgCACIGQSVGDQELIAZBAkcgAS0A0AIiCkECR3IgAS0A0QIiC0EcR3INASABKALgAiEGIAcQ9A8iAkUNAiACKAIAQQlHDQIgBEEQaiABENoCIAQoAhQhAyAEKAIQDQogBSgCACICQSVHDQUgASgC8AIhAiABQSU2AvACIAJBJUYNAyAEQewAaiABQZQDaigCADYCACAEQeQAaiABQYwDaikCADcCACAEQdwAaiABQYQDaikCADcCACAEQdQAaiABQfwCaikCADcCACAEIAI2AkggBCABKQL0AjcCTAwECyABKALwAiEGIAFBJTYC8AICQCAGQSVHBEAgBEHsAGogAUGUA2ooAgA2AgAgBEHkAGogAUGMA2opAgA3AgAgBEHcAGogAUGEA2op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aw4CARkACyADIAEQ6BkgAigCACEADBkLIAMgARC7EiACKAIAIQAMGAsgACgCKCABELQBIAAoAghBAkkNFSAAQQxqIAEQzjEMFQsgACgCCEEBRw0UIABBDGogARDOMQwUCyAAKAIEIAEQtAEgACgCCCABELQBIABBDGooAgAhAAwVCyAALQAYQQVGBEAgACgCECABELQBCyAAKAIMIgIEQCACQQR0IQMgACgCCEEMaiECA0AgAigCACABELQBIAJBEGohAiADQRBrIgMNAAsLIAAoAigiAEUNEiAAIAEQvyIMEgsgACgCECABELQBAkAgACgCBEGAgICAeEYNACAAKAIMIgJFDQAgAkEEdCEDIAAoAghBDGohAgNAIAIoAgAgARC0ASACQRBqIQIgA0EQayIDDQALCyAAKAIgIgBFDREgACABEL8iDBELIAAoAgwiAkUNECAAKAIIIQAgAkECdCECA0AgACgCACABELQBIABBBGohACACQQRrIgINAAsMEAsgACgCDCICRQ0PIAAoAgghACACQQJ0IQIDQCAAKAIAIAEQtAEgAEEEaiEAIAJBBGsiAg0ACwwPCyAAKAIEIAEQtAEgACgCGCICBEAgAiABEL8iCyAAKAIIIgBBCGooAgAiAkUNDiAAQQRqKAIAIQAgAkECdCECA0AgACgCACABELQBIABBBGohACACQQRrIgINAAsMDgsgACgCDCIDBEAgACgCCCECIANBKGwhAwNAIAIgARDZCSACQShqIQIgA0EoayIDDQALCyAAKAIQIgIoAgBBgICAgHhGBEAgAigCBCABELQBCyAAKAIgIgIEQCACIAEQlBgLIAAoAiQiAEUNDSABIAAoAgAQ5AEMDQsgACgCICIFKAIIIgIEQCAFKAIEIQAgAkEMbCECA0AgACgCACABELQBIABBDGohACACQQxrIgINAAsLIAUoAhQiAARAIAUoAhAiBCAAQdgAbGohBwNAAkACQAJAAkACQAJAAkACQCAEKAIAIgBBBGtBACAAQQVrQQhJG0EBaw4IAQIDBAUHBwYACyAEIAEQ/iogBCgCSCIARQ0GIAQoAkQiAyAAQQZ0aiEIA0ACQCADKAIAQQdGBEAgAygCOCICBEAgAygCNCEAIAJBDGwhAgNAIAAoAgAgARC0ASAAQQxqIQAgAkEMayICDQALCyADLQAcQQJHBEAgASADQQhqEOIlDAILIAMoAgwgAygCCCABENkJIAEQtAEMAQsgAygCOCICBEAgAygCNCEAIAJBDGwhAgNAIAAoAgAgARC0ASAAQQxqIQAgAkEMayICDQALCyADIAEQ2QkLIANBQGsiAyAIRw0ACwwGCyAEQQhqIAEQ/iogBCgCMCABEMMNDAULIAQoAiAgARDDDQwECyAEQQhqIAEQ/iogBCgCPCIABEAgACABELQBCyAEKAJAIgAEQCABIAAoAgAQ5AELIAQoAjgiAkUNAyAEKAI0IQAgAkEMbCECA0AgACgCACABELQBIABBDGohACACQQxrIgINAAsMAwsgBCgCJCIABEAgACABELQBCyAEKAIoIgAEQCABIAAoAgAQ5AELIAQoAjQiAkUNAiAEKAIwIQAgAkEMbCECA0AgACgCACABELQBIABBDGohACACQQxrIgINAAsMAgsgBEEEaiABEMETDAELIAQoAghBBUcEQCAEQQhqIAEQ/ioLIAQoAjwiAARAIAAgARC0AQsgBCgCQCIABEAgASAAKAIAEOQBCyAEKAI4IgJFDQAgBCgCNCEAIAJBDGwhAgNAIAAoAgAgARC0ASAAQQxqIQAgAkEMayICDQALCyAEQdgAaiIEIAdHDQALCyAFKAIwIgAEQCAAIAEQtAELIAUoAjQiAARAIAAgARCUGAsgBSgCOCIABEAgACABEL8iCyAFKAIgIgBFDQwgBSgCHCIDIABBBHRqIQQDQCADKAIMIQAgAygCACABELQBAkAgAEUNACAAQQhqKAIAIgJFDQAgAEEEaigCACEAIAJBAnQhAgNAIAEgACgCABDkASAAQQRqIQAgAkEEayICDQALCyADQRBqIgMgBEcNAAsMDAsgACgCDCIADQ0MCwsgAEEEaigCACEADAwLIABBBGooAgAhAAwLCyAALQA0QQJHDQggAEEgahDtKAwICyAAKAIEIgRBQGsQ5SogBCgChAEiAARAIABB2ABsIQIgBCgCgAFBBGohAANAAkAgAEEEaygCACIDQQVHBEAgA0EERg0BAkACQAJAIANBAWsOAwABAgQLIAAoAgBBAUcNAyAAQQRqKAIAIAEQtAEMAwsgACgCACABENUFDAILIAAgARCiDwwBCyAAKAIAIAEQtAELIABB2ABqIQAgAkHYAGsiAg0ACwsgBCgCeCIABEAg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wABBsMXDABCxFAALIAEgCUHIxsMAEOcWAAsgAigCRCACKAJIEKMvAAsgAkGAAWokAAvRFgIIfwJ+IwBB0AFrIgMkACABQShqIgQQoRMaIAFB/ABBwAAgASgCKEElRhtqKAIAIQYCQAJAAkACQAJAAkACQAJAAkAgAS0A+AIiAkECRyIHDQAgAiABLQD5AiAHG0EBcQ0AIAQQoRMiAkUNACACKAIAQRRHDQAgAi0ABEEERw0AIAEoAighAiABQSU2AiggASABKQNANwN4IANB9ABqIAFBNGopAgA3AgAgA0H8AGogAUE8aigCADYCACADIAEpAiw3AmwgAyACNgJoIAFBLGohBSADQegAahCODgJAAkAgBBChEyICRQ0AIAIoAgBBAkcNACACLQAIQQJHDQAgAi0ACUETRg0BCwJAIAEtAPgCQQJHDQAgAS0A/QJBAXFFDQAgASgCfCECIANBuQE6AGggASACIAYgAiAGSRsgAiAGIAIgBksbIANB6ABqEI8jCyADQYEBaiABQZcDaikAACIKNwAAIANB/ABqIAFBkgNqKQEANwIAIANB9ABqIAFBigNqIgIpAQA3AgAgA0EBOgC/ASADIAEpAYIDIgs3ALMBIAMgAigBADYAuwEgAyABKQCPAzcAwAEgAyAKNwDIASADIAs3AmwgAUGAAWogA0GzAWoQ7wogAyABNgJoIANB0ABqIAEQpwMgAygCVCECAkAgAygCUEUEQCADIAI2AqwBIANB6ABqEOUsAkACQAJAIAQQoRMiB0UNACAHKAIAQRRHDQAgBy0ABEEGRg0BCyADQfAAaiAEEIkKIANBQGsgBBC3HiADQYDJ3wA2AmwgA0E0OgBoIAMoAkAgAygCRCADQegAahDvGyECIAQQoRMiBEUNASAEKAIAQSRHDQEgASABKQNANwN4IAEoAiggAUElNgIoQSRHDQYgASABKAIsEMUQDAELIAEoAighBCABQSU2AiggASABKQNANwN4IANB9ABqIAVBCGopAgA3AgAgA0H8AGogBUEQaigCADYCACADIAUpAgA3AmwgAyAENgJoIANB6ABqEI4OIANByABqIAEQtwEgAygCTCEEIAMoAkhFDQIgBCECCyADQawBahDCBwwKCyADQegAahDlLAwJCyAERQ0IIAMgASgCfCIBIAYgASAGSxs2AnggAyABIAYgASAGSRs2AnQgAyACNgJwIAMgBDYCbCADQSk2AmggA0HoAGoQ+C4hAkEAIQcMCQsgASgCKCECIAFBJTYCKCABIAEpA0A3A3ggA0H0AGogBUEIaikCADcCACADQfwAaiAFQRBqKAIANgIAIAMgBSkCADcCbCADIAI2AmggA0HoAGoQjg4CQAJAIAQQoRMiAkUNACACKAIAQRRHDQAgAi0ABEEGRg0BCyADQfAAaiAEEIkKIANB2ABqIAQQtx4gA0GAyd8ANgJsIANBNDoAaCADKAJYIAMoAlwgA0HoAGoQ7xshAkEBIQcgBBChEyIERQ0JIAQoAgBBJEcNCSABIAEpA0A3A3ggASgCKCABQSU2AihBJEcNAyABIAEoAiwQxRAMCQsgASgCKCECIAFBJTYCKCABIAEpA0A3A3ggA0H0AGogBUEIaikCADcCACADQfwAaiAFQRBqKAIANgIAIAMgBSkCADcCbCADIAI2AmggA0HoAGoQjg4gA0HgAGogARC3ASADKAJkIQIgAygCYA0HIAEoAnwhBEEIQcAAELkuIgFFDQUgASACNgIEIAFBKjYCACABIAYgBCAEIAZJGzYCDCABIAYgBCAEIAZLGzYCCEEAIQcgASECDAgLAkACQCAEEKETIgIEQCACKAIAQRhGDQELIAQQoRMiAkUNASACKAIAQRlHDQELIAEoAighAiABQSU2AiggASABKQNANwN4IANB9ABqIAFBNGopAgA3AgAgA0H8AGogAUE8aigCADYCACADIAEpAiw3AmwgAyACNgJoIANB6ABqIgJBqO/fABCJBiEIIAIQjg4gA0E4aiABELcBIAMoAjwhBCADKAI4BEAgBCECDAgLIANBMGogBBCsBCADKAI0IQVBACEHIAEgBEEAEJoMQQhBwAAQuS4iAkUNBSACQQE6ABEgAiAIQQFzOgAQIAIgBDYCDCACQRE2AgAgAiAGIAUgBSAGSRs2AgggAiAGIAUgBSAGSxs2AgQMCAsCQAJAAkACQAJAAkAgBBChEyICRQ0AIAIoAgBBAkcNACACLQAIQQJHDQAgAi0ACUEiRg0BCwJAIAQQoRMiAkUNACACKAIAQQJHDQAgAi0ACEECRw0AIAItAAlBIUYNAQsCQCAEEKETIgJFDQAgAigCAEECRw0AIAItAAhBAkcNACACLQAJQSBGDQELAkAgBBChEyICRQ0AIAIoAgBBFEcNACACLQAEQQtGDQELAkAgBBChEyICRQ0AIAIoAgBBFEcNACACLQAEQQxGDQELIAQQoRMiAgRAIAIoAgBBGkYNAQsgBBChEyICBEAgAigCAEEIRg0BCwJAIAQQoRMiAkUNACACKAIAQQJHDQAgAi0ACEECRw0AIAItAAlFDQILIANBCGogARC1ASADKAIMIQIgAygCCA0LQQAhByACKAIAQR5GDQwgBBChExogASgCKEElRg0MIAEtAEhBAXENDAJAIAQQoRMiBQRAIAUoAgBBGEYNAQsgBBChEyIERQ0NIAQoAgBBGUcNDQsgASACQQAQmgwgA0H0AGogAUE0aikCADcCACADQfwAaiABQTxqKAIANgIAIAEoAighBCABQSU2AiggASABKQNANwN4IAMgASkCLDcCbCADIAQ2AmggA0HoAGoiBEGo798AEIkGIQYgBBCODiADIAIQrAQgASgCfCEEIAMoAgAhBUEIQcAAELkuIgFFDQkgAUEAOgARIAEgAjYCDCABQRE2AgAgASAGQQFzOgAQIAEgBSAEIAQgBUkbNgIIIAEgBSAEIAQgBUsbNgIEIAEhAgwMCyABKAIoIQIgAUElNgIoIAEgASkDQDcDeCADQfQAaiABQTRqKQIANwIAIANB/ABqIAFBPGooAgA2AgAgAyABKQIsNwJsIAMgAjYCaEECIQcgAkECRg0DIAJBCEYNByACQRRGDQEgAkEaRg0CDAkLIANBEGogAUEAIAEQxQQgAygCFCECIAMoAhAhBwwKC0EBIQcgAy0AbEELaw4CBQQHC0EDIQcMBAsgAy0AcEECRw0FIAMtAHEiAkEga0H/AXFBAksNBSACQRxrIQdBBCACQQdxdiEFDAMLQYmE4QBBKEGg1t8AENUhAAtBiYThAEEoQZTv3wAQ1SEAC0EAIQcLIANB6ABqEI4OIAQQoRMaIAEoAkAhAiABKAJ8IQggASgCKCEJIANBKGogARC3ASADKAIsIQQgAygCKARAIAEgBBDFEEEIQcAAELkuIgRFDQEgBEExNgIAIAQgCCACIAlBJUYbQQFrIgI2AgggBCACNgIECwJAIAVBAXFFDQAgBCgCAEEaRgRAIAQoAhQhAiAEKAIQIQggA0GHAToAaCABIAggAiADQegAahCwJwsgAS0A+AJBAkYgBXFFDQAgBCECA0AgAiIFKAIAQSNGBEAgAkEEaigCACICDQELCyAFIgIoAgAiCEEURg0AIAhBMEYEQCACKAIEKAIAQQNHDQELIANBIGogAhCsBCADKAIkIQIgAygCICEFIANBsgE6AGggASAFIAIgA0HoAGoQjyMLIANBGGogBBCsBCADKAIcIQFBCEHAABC5LiICRQ0AIAIgBzoAECACIAQ2AgQgAkEQNgIAIAIgBiABIAEgBkkbNgIMIAIgBiABIAEgBksbNgIIQQAhBwwDCwALQYmE4QBBKEHA798AENUhAAtBASEHCyAAIAI2AgQgACAHNgIAIANB0AFqJAALuhUBCn8jAEHQAGsiAyQAIAFByAJqIQQgAUEoaiEGIAEoAsgCIgVBJUYEQCABKALwAiEFIAFBJTYC8AICQCAFQSVHBEAgA0HMAGogAUGUA2ooAgA2AgAgA0HEAGogAUGMA2opAgA3AgAgA0E8aiABQYQDaikCADcCACADQTRqIAFB/AJqKQIANwIAIAMgBTYCKCADIAEpAvQCNwIsDAELIANBKGogBhAyIAQoAgBBJUYNACAEEOgDCyAEIAMpAyg3AwAgBEEgaiADQcgAaikDADcDACAEQRhqIANBQGspAwA3AwAgBEEQaiADQThqKQMANwMAIARBCGogA0EwaikDADcDACAEKAIAIQULIAFBnANB4AIgBUElRiIHG2ooAgAhCAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAIEQAJAAkAgBwRAIAEoAvACIQUgAUElNgLwAgJAIAVBJUcEQCADQcwAaiABQZQDaigCADYCACADQcQAaiABQYwDaikCADcCACADQTxqIAFBhANqKQIANwIAIANBNGogAUH8AmopAgA3AgAgAyAFNgIoIAMgASkC9AI3AiwMAQsgA0EoaiAGEDIgBCgCAEElRg0AIAQQ6AMLIAQgAykDKDcDACAEQSBqIANByABqKQMANwMAIARBGGogA0FAaykDADcDACAEQRBqIANBOGopAwA3AwAgBEEIaiADQTBqKQMANwMAIAQoAgAiBUElRg0BCyAFQQJHDQAgAS0A0AJBAkcNACABLQDRAkEWRg0BCyADQTBqIAYQ3QcgA0HQ1t8ANgIsIANBNDoAKCAGQfACQbgCIAQoAgBBJUYiBRtqKAIAIgIgBkH0AkG8AiAFG2ooAgAiBSACIAVJGyACIAUgAiAFSxsgA0EoahDvGyEHIAQoAgAiBUElRw0EIAEoAvACIQIgAUElNgLwAiACQSVGDQIgA0HMAGogAUGUA2ooAgA2AgAgA0HEAGogAUGMA2opAgA3AgAgA0E8aiABQYQDaikCADcCACADQTRqIAFB/AJqKQIANwIAIAMgAjYCKCADIAEpAvQCNwIsDAMLIAFBJTYCyAIgASABKQPgAjcDmAMgA0E8aiABQdwCaigCADYCACADQTRqIAFB1AJqKQIANwIAIANBAjYCKCADIAEpAswCNwIsIANBKGoQ6AMgASgCyAIhBQsCQCAFQSVGBEAgASgC8AIhBSABQSU2AvACAkAgBUElRwRAIANBzABqIAFBlANqKAIANgIAIANBxABqIAFBjANqKQIANwIAIANBPGogAUGEA2opAgA3AgAgA0E0aiABQfwCaikCADcCACADIAU2AiggAyABKQL0AjcCLAwBCyADQShqIAYQMiAEKAIAQSVGDQAgBBDoAwsgBCADKQMoNwMAIARBIGogA0HIAGopAwA3AwAgBEEYaiADQUBrKQMANwMAIARBEGogA0E4aikDADcDACAEQQhqIANBMGopAwA3AwBBACEHIAQoAgAiBUElRg0BC0EAIQcgBUEURw0GIAEtAMwCQQRHDQYgA0EQaiABQQBBARBqIAMoAhQhByADKAIQDQogBCgCACIFQSVHDQYLIAEoAvACIQUgAUElNgLwAiAFQSVGDQMgA0HMAGogAUGUA2ooAgA2AgAgA0HEAGogAUGMA2opAgA3AgAgA0E8aiABQYQDaikCADcCACADQTRqIAFB/AJqKQIANwIAIAMgBTYCKCADIAEpAvQCNwIsDAQLIANBKGogBhAyIAQoAgBBJUYNACAEEOgDCyAEIAMpAyg3AwAgBEEgaiADQcgAaikDADcDACAEQRhqIANBQGspAwA3AwAgBEEQaiADQThqKQMANwMAIARBCGogA0EwaikDADcDACAEKAIAIgVBJUYNDAsgBUEkRw0LIAFBJTYCyAIgASABKQPgAjcDmAMgASABKALMAhDACAwLCyADQShqIAYQMiAEKAIAQSVGDQAgBBDoAwsgBCADKQMoNwMAIARBIGogA0HIAGopAwA3AwAgBEEYaiADQUBrKQMANwMAIARBEGogA0E4aikDADcDACAEQQhqIANBMGopAwA3AwAgBCgCACIFQSVGDQELIAVBCUYNAQsgA0EwaiAGEN0HIANBmM3fADYCLCADQTQ6ACggBkHwAkG4AiAEKAIAQSVGIgUbaigCACICIAZB9AJBvAIgBRtqKAIAIgUgAiAFSRsgAiAFIAIgBUsbIANBKGoQ7xshCCAEKAIAIgVBJUYEQCABKALwAiECIAFBJTYC8AICQCACQSVHBEAgA0HMAGogAUGUA2ooAgA2AgAgA0HEAGogAUGMA2opAgA3AgAgA0E8aiABQYQDaikCADcCACADQTRqIAFB/AJqKQIANwIAIAMgAjYCKCADIAEpAvQCNwIsDAELIANBKGogBhAyIAQoAgBBJUYNACAEEOgDCyAEIAMpAyg3AwAgBEEgaiADQcgAaikDADcDACAEQRhqIANBQGspAwA3AwAgBEEQaiADQThqKQMANwMAIARBCGogA0EwaikDADcDACAEKAIAIgVBJUYNBgsgBUEkRg0BDAULIAFBJTYCyAIgASABKQPgAjcDmAMgA0E8aiILIAFB3AJqKAIANgIAIANBNGoiDCABQdQCaikCADcCACADQQk2AiggAyABKQLMAjcCLCADQShqIgUQ6AMgBSABEKICIAMoAiwhBSADKAIoIgpBgICAgHhHBEAgAyADKAIwNgIkIAMgBTYCICADIAo2AhwCQAJAIAQoAgAiCUElRgRAIAEoAvACIQkgAUElNgLwAgJAIAlBJUcEQCADQcwAaiABQZQDaigCADYCACADQcQAaiABQYwDaikCADcCACALIAFBhANqKQIANwIAIAwgAUH8AmopAgA3AgAgAyAJNgIoIAMgASkC9AI3AiwMAQsgA0EoaiAGEDIgBCgCAEElRg0AIAQQ6AMLIAQgAykDKDcDACAEQSBqIANByABqKQMANwMAIARBGGogA0FAaykDADcDACAEQRBqIANBOGopAwA3AwAgBEEIaiADQTBqKQMANwMAIAQoAgAiCUElRg0BCyAJQRNGDQELQQAhBAwECyADQQhqIAFBoMffABB+IAMoAgwhBCADKAIIRQ0DIABBAjYCACAAIAQ2AgQMBAsgAEECNgIAIAAgBTYCBAwFCyABQSU2AsgCIAEgASkD4AI3A5gDIAEgASgCzAIQwAgMAwsgAEECNgIAIAAgBzYCBAwFCwJ/AkAgARDZBCIGRQRAIABBBGoiBSADKQIcNwIAIAVBCGogA0EkaigCADYCACABKAKcAyEBIAINASAIIAEgASAISxshBSAIIAEgASAISRshAkEADAILIABBAjYCACAAIAY2AgQgBEUNAiAEKAIAIgAQ/gMgAEHgAEEIEKIYIARBDEEEEKIYDAILIAggASABIAhJGyECIAggASABIAhLGyEFQQELIQEgACAHNgIcIAAgBDYCGCAAIAI2AhQgACAFNgIQIAAgATYCAAwECyADQRxqEP0JIAogBRDFKgwBCyAAQQI2AgAgACAINgIECyAHRQ0BIAcQ+w4gBygCACAHQQRqKAIAEMIqIAdBFEEEEKIYDAELIABBAjYCACAAIAc2AgQLIANB0ABqJAALxxsCBX8BfiMAQRBrIgMkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAQQcgACgCACIBQQxrIgIgAkEmTxtBAWsOJAABAgMEBQYHCAkKCwwNDg8QERITJBQVFhckGBkaGxwdHh8gISQLIAAoAggiASAAKAIMEK4hIAAoAgQgARC/KgwjCyAAQQRqELMZIAAoAgQgACgCCBDAKgwiCwJAIAAtABxBAkYNACAAKQMIIgZCA4NCAFINACADIAanIgE2AgwgA0EMahDQBiABIAEoAgAiAkEBazYCACACQQFHDQAgASABKAIgEI0nCyAAKAIgIgBBBGoiASgCACAAQQhqKAIAEOknIAAoAgAgASgCABDBKiAAQRBqIgEoAgAgAEEUaigCABCSJSAAKAIMIAEoAgAQwCogACgCGEGAgICAeEcEQCAAQRxqIgEoAgAgAEEgaigCABDmJyAAKAIYIAEoAgAQwioLIAAoAjwiAQRAIAEQ+w4gASgCACABQQRqKAIAEMIqIAFBFEEEEKIYCyAAKAJAIgEEQCABKAIAIgIQgAQgAkHgAEEIEKIYIAFBDEEEEKIYCyAAQcgAQQQQohgMIQsgACgCBCIAELkBIABBwABBCBCiGAwgCyAAKAIMIgAQuQEgAEHAAEEIEKIYDB8LIAAoAgQiARC5ASABQcAAQQgQohggACgCCCIAELkBIABBwABBCBCiGAweCwJAAkACQAJAAkACQAJAAkAC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0ABqKQMANwMAIANBEGogAkHIAGopAwA3AwAgA0EIaiACQUBrKQMANwMAIAMgAikDODcDAAwBC0Ggv+QALQAAGiAJKAIEIQNB8AAQhAEiAUUNBAJ/AkACQAJAAkACQAJAQQQgAygCAEEFayIEIARBBk8bQQFrDgUBAgMEBQALIAMoAhghCiADKAIUIQsgAygCECEFIAMpAwgiK6chCCArQgODUARAIAggCCgCACIEQQFqNgIAIARBAEgNCwsgK0IgiKchDCADLQAcIQZBBSEDQQAMBQsgAkEQaiADQQhqELcFIAMoAighBRC+KSEEIAJBOGogBRA1IARBOGogAkHwAGopAwA3AwAgBEEwaiACQegAaikDADcDACAEQShqIAJB4ABqKQMANwMAIARBIGogAkHYAGopAwA3AwAgBEEYaiACQdAAaikDADcDACAEQRBqIAJByABqKQMANwMAIARBCGogAkFAaykDADcDACAEIAIpAzg3AwAgAigCICEKIAIoAighDiACLQAsIRAgAikDECEsIAIpAxghKyACKAIkIQYgDyAVQQJqLQAAOgAAIAIgFS8AADsBDCArQiCIpyELICxCIIinIQwgAigCNCERICunIQUgLKchCEEGIQMgBkGAfnEMBAsgAygCICEOIAMoAhwhBiADKAIYIQogAygCDCEMIAMoAgghCCADKQMQIiunIQUgK0IDg1AEQCAFIAUoAgAiBEEBajYCACAEQQBIDQkLIAMtACQhECADKAIoIRIQvikhBCACQThqIBIQNSAEQThqIAJB8ABqKQMANwMAIARBMGogAkHoAGopAwA3AwAgBEEoaiACQeAAaikDADcDACAEQSBqIAJB2ABqKQMANwMAIARBGGogAkHQAGopAwA3AwAgBEEQaiACQcgAaikDADcDACAEQQhqIAJBQGspAwA3AwAgBCACKQM4NwMAICtCIIinIQtBByEDIAZBgH5xDAMLIAMoAkQhHyADKAJAISAgAkEQaiADQQhqELcFAkAgAygCSCIFRQRAQQAhBwwBCxC/KSEHIAUpAgQhKyAFKAIAIQQQwCkgAkE4aiIGIAQQfSAGQeAAEIEJIQUgByArNwIEIAcgBTYCAAtBgICAgHghBAJAIAMoAihBgICAgHhGDQAgAygCLCENIAMoAjwhISADKAI4ISIgAygCNCEjIAJBOGogAygCMCIYQQhBMBDeECACKAI8IQQgAigCOEEBRg0JIAIoAkAhESAERQRAQQAhBAwBCyAYQTBsIRZBACEGIAQhEwNAIAYgFkYNASACQThqIAYgDWoQPyAGIBFqIgVBKGogAkHgAGopAwA3AwAgBUEgaiACQdgAaikDADcDACAFQRhqIAJB0ABqKQMANwMAIAVBEGogAkHIAGopAwA3AwAgBUEIaiACQUBrKQMANwMAIAUgAikDODcDACAGQTBqIQYgE0EBayITDQALCyAPIBVBAmotAAA6AAAgAiAVLwAAOwEMIAIpAxgiLEIgiKchCyACKQMQIitCIIinIQwgAi0ALCEQIAIoAighDiACKAIgIQogLKchBSArpyEIQQghAyACKAIkIgZBgH5xDAILIAMoAmQhJiADKAJgIScgAkEQaiADELcFQQchDiADKAIgQQdHBEAgAkE4aiADQSBqEJcDIAJBngFqIBxBAmotAAA6AAAgAiAcLwAAOwGcASACLQA8IRAgAigCOCEOIAIoAkQhESACKAJIIRggAigCTCEjIAIoAlAhIiACKAJUISEgAigCWCEgIAIoAlwhHyACKAJAIQQLIAMoAmghBxDBKSENIAJBOGoiBSAHEJcDIA1BIGogAkHYAGoiCCkDADcDACANQRhqIAJB0ABqIgopAwA3AwAgDUEQaiACQcgAaiILKQMANwMAIA1BCGogAkFAayIMKQMANwMAIA0gAikDODcDAEGAgICAeCEHAkAgAygCSEGAgICAeEYNACADKAJMIRIgAygCXCEoIAMoAlghKSADKAJUISogBSADKAJQIhZBCEEwEN4QIAIoAjwhByACKAI4QQFGDQkgAigCQCETIAdFBEBBACEHDAELIBZBMGwhGUEAIQYgByEFA0AgBiAZRg0BIAJBOGogBiASahA/IAYgE2oiA0EoaiACQeAAaikDADcDACADQSBqIAgpAwA3AwAgA0EYaiAKKQMANwMAIANBEGogCykDADcDACADQQhqIAwpAwA3AwAgAyACKQM4NwMAIAZBMGohBiAFQQFrIgUNAAsLIA8gAkGeAWotAAA6AAAgAiACLwGcATsBDCACKQMgIixCIIinIQsgAikDGCIrQiCIpyEMIAIoAighCiACKAIUIRkgAigCECEDICynIQUgK6chCCACKAIsIgZBgH5xDAELIAJB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IAEoAgghAiADQShsIQMDQCAAIAIQiyogAkEoaiECIANBKGsiAw0ACwsgASgCECICKAIAQYCAgIB4RwRAIAAgAhDqBwwPCyAAIAIoAgQQwQEMDgsgASgCICAAED0MDQsgASgCDCICRQ0MIAAgAhDBAQwMCyAAIAEoAgQQwQEMCwsgACABKAIEEMEBDAoLIAAgAUEgahD/BwwJCyABKAIEIAAQpwkMCAsgASgCDCIDRQ0HIAEoAgghAiADQShsIQMDQCACIAAQvxUgAkEoaiECIANBKGsiAw0ACwwHCyAAIAEoAgQQwQEMBgsgACABKAIEEMEBDAULIAAgASgCBBDBAQwECyAAIAEoAgQQwQEMAwsgACABKAIEEMEBDAILIAAgASgCBBDBAQwBCyABKAIEIgIoAgBBA0cEQCAAIAIQ1yQMAQsgACACKAIQEMEBIAIoAgwiA0UNACADQQR0IQMgAigCCEEMaiECA0AgACACKAIAEMEBIAJBEGohAiADQRBrIgMNAAsLAkAgACgCAEUNACABKAIAQRpHDQAgACABQQhqIgIQ6QUiAEUNACAEQYgBaiIDIABBOGopAwA3AwAgBEGAAWoiBSAAQTBqKQMANwMAIARB+ABqIgcgAEEoaikDADcDACAEQfAAaiIGIABBIGopAwA3AwAgBEHoAGoiCCAAQRhqKQMANwMAIARB4ABqIgkgAEEQaikDADcDACAEQdgAaiIKIABBCGopAwA3AwAgBCAAKQMANwNQIAEQ4gEgAUE4aiADKQMANwMAIAFBMGogBSkDADcDACABQShqIAcpAwA3AwAgAUEgaiAGKQMANwMAIAFBGGogCCkDADcDACABQRBqIAkpAwA3AwAgAiAKKQMANwMAIAEgBCkDUDcDACAAQcAAQQgQohgLIARBkAFqJAAPCwAL6RMCCn8BfiMAQTBrIgQkACABQShqIQcCQAJAAkACQAJAAkACQAJAAkACQCACQQFxRQRAAkACQCABKALIAiIGQSVHDQAgAUHIAmohAiABKALwAiEDIAFBJTYC8AICQCADQSVHBEAgBEEsaiABQZQDaigCADYCACAEQSRqIAFBjANqKQIANwIAIARBHGogAUGEA2opAgA3AgAgBEEUaiABQfwCaikCADcCACAEIAM2AgggBCABKQL0AjcCDAwBCyAEQQhqIAcQMiACKAIAQSVGDQAgAhDoAwsgAiAEKQMINwMAIAJBIGogBEEoaikDADcDACACQRhqIARBIGopAwA3AwAgAkEQaiAEQRhqKQMANwMAIAJBCGogBEEQaikDADcDACABKALIAiIGQSVHDQAgASgCnAMhAyABKALwAiEGIAFBJTYC8AICQCAGQSVHBEAgBEEsaiABQZQDaigCADYCACAEQSRqIAFBjANqKQIANwIAIARBHGogAUGEA2opAgA3AgAgBEEUaiABQfwCaikCADcCACAEIAY2AgggBCABKQL0AjcCDAwBCyAEQQhqIAcQMiACKAIAQSVGDQAgAhDoAwsgAiAEKQMINwMAIAJBIGogBEEoaikDADcDACACQRhqIARBIGopAwA3AwAgAkEQaiAEQRhqKQMANwMAIAJBCGogBEEQaikDADcDACACKAIAIgZBJUcNASABKAKAAiEBIARBADoACCABIAEgBEEIahDvGyEGDAkLIAEoAuACIQMLIAZBJEYNASABQSU2AsgCIAEgASkD4AI3A5gDIARBHGogAUHcAmooAgA2AgAgBEEUaiABQdQCaikCADcCACAEIAY2AgggBCABKQLMAjcCDCAEQQhqEOgDCyABQcgCaiEFAkACQAJAAkACQAJAAkACQAJAIAEoAsgCIgJBJUYEQCABKALwAiECIAFBJTYC8AICQCACQSVHBEAgBEEsaiABQZQDaigCADYCACAEQSRqIAFBjANqKQIANwIAIARBHGogAUGEA2opAgA3AgAgBEEUaiABQfwCaikCADcCACAEIAI2AgggBCABKQL0AjcCDAwBCyAEQQhqIAcQMiAFKAIAQSVGDQAgBRDoAwsgBSAEKQMINwMAIAVBIGogBEEoaikDADcDACAFQRhqIARBIGopAwA3AwAgBUEQaiAEQRhqKQMANwMAIAVBCGogBEEQaikDADcDAEElIQYgBSgCACICQSVGDQELIAJBFEcEQCACIQYMAQsgAiEGIAEtAMwCQQ1GDQELIAMgASgCnAMiAiACIANJGyEIIAMgAiACIANLGyEJIAEtAL8CIQsgAS0AvQIhDCABLQCxAiEKIAEtAKsCIQ0gBkElRw0DIAEoAvACIQIgAUElNgLwAiACQSVGDQEgBEEsaiABQZQDaigCADYCACAEQSRqIAFBjANqKQIANwIAIARBHGogAUGEA2opAgA3AgAgBEEUaiABQfwCaikCADcCACAEIAI2AgggBCABKQL0AjcCDAwCCyABKALgAiECIAEoAuQCIQMgBEE2OgAIIAIgAyACIANJGyACIAMgAiADSxsgBEEIahDvGyEGIAEoAsgCIgNBJUYEQCABKALwAiECIAFBJTYC8AICQCACQSVHBEAgBEEsaiABQZQDaigCADYCACAEQSRqIAFBjANqKQIANwIAIARBHGogAUGEA2opAgA3AgAgBEEUaiABQfwCaikCADcCACAEIAI2AgggBCABKQL0AjcCDAwBCyAEQQhqIAcQMiAFKAIAQSVGDQAgBRDoAwsgBSAEKQMINwMAIAVBIGogBEEoaikDADcDACAFQRhqIARBIGopAwA3AwAgBUEQaiAEQRhqKQMANwMAIAVBCGogBEEQaikDADcDACAFKAIAIgNBJUYNDgtBASECIANBJEcNECABQSU2AsgCIAEgASkD4AI3A5gDIAEgASgCzAIQwAgMEAsgBEEIaiAHEDIgBSgCAEElRg0AIAUQ6AMLIAUgBCkDCDcDACAFQSBqIARBKGopAwA3AwAgBUEYaiAEQSBqKQMANwMAIAVBEGogBEEYaikDADcDACAFQQhqIARBEGopAwA3AwAgBSgCACIGQSVGDQELQQohAiAGQQpHDQEMBQsgASgC8AIhAiABQSU2AvACAkAgAkElRwRAIARBLGogAUGUA2ooAgA2AgAgBEEkaiABQYwDaikCADcCACAEQRxqIAFBhANqKQIANwIAIARBFGogAUH8AmopAgA3AgAgBCACNgIIIAQgASkC9AI3AgwMAQsgBEEIaiAHEDIgBSgCAEElRg0AIAUQ6AMLIAUgBCkDCDcDACAFQSBqIARBKGopAwA3AwAgBUEYaiAEQSBqKQMANwMAIAVBEGogBEEYaikDADcDACAFQQhqIARBEGopAwA3AwAgBSgCACIGQSVGDQELQQwhAiAGQQxGDQMMAQsgASgC8AIhAiABQSU2AvACAkAgAkElRwRAIARBLGogAUGUA2ooAgA2AgAgBEEkaiABQYwDaikCADcCACAEQRxqIAFBhANqKQIANwIAIARBFGogAUH8AmopAgA3AgAgBCACNgIIIAQgASkC9AI3AgwMAQsgBEEIaiAHEDIgBSgCAEElRg0AIAUQ6AMLIAUgBCkDCDcDACAFQSBqIARBKGopAwA3AwAgBUEYaiAEQSBqKQMANwMAIAVBEGogBEEYaikDADcDACAFQQhqIARBEGopAwA3AwBBJSECIAUoAgAiBkElRg0CCyAGQT5xQQ5GBEAgBiECDAILIAEtAOgCBEAgBiECDAILQRAhAiAGQRBGDQEMAgsgAUElNgLIAiABIAEpA+ACNwOYAyABKALMAiEGDAULIAIhBiAKQQFxDQAgDUEBcQ0BDAULIAxBAXENASALQQFxRQ0CIARB0QA6AAggASAJIAggBEEIahDpIgwCCyAEQSg6AAggASAJIAggBEEIahDpIgwDCyAKQQFxDQAgB0HwAkG4AiAGQSVGIgYbaigCACECIAdB9AJBvAIgBhtqKAIAIQYgBEHTADoACCABIAIgBiACIAZJGyACIAYgAiAGSxsgBEEIahDpIgsgBCABEEggBCgCBCEGIAQoAgANAEEAIQJBoL/kAC0AABogASgCnAMhBUHAABCEASIBRQ0CIAEgBjYCBCABQSI2AgAgASADIAUgAyAFSxs2AgwgASADIAUgAyAFSRs2AgggASEGDAMLQQEhAgwCC0EAIQJByM3gAEEFEIkPIQ5BoL/kAC0AABpBwAAQhAEiBkUNACAGQQA6ABwgBkEANgIYIAYgCDYCFCAGIAk2AhAgBiAONwMIIAZBGjYCAAwBCwALIAAgBjYCBCAAIAI2AgAgBEEwaiQAC6MUAg5/AX4jAEHwAGsiAyQAIANByABqIAEQxgMgAygCUCEEAkACQCADKQNIIhFQDQAgAyADKAJUNgIkIAMgBDYCICADIBE3AxggA0EQaiADQRhqEMoQAkACQCADKAIQIgQgAygCFCIGQYed4ABBBhDQKA0AIAQgBkGcneAAQQQQ0CgNACAEIAZB7pzgAEEGENAoDQAgBCAGQfSc4ABBBhDQKA0AIAQgBkHknOAAQQMQ0CgNACAEIAZB55zgAEEHENAoDQAgBCAGQfqc4ABBBxDQKA0AIAQgBkGBneAAQQYQ0CgNACAEIAZBjZ3gAEEGENAoDQAgBCAGQYeX4ABBBBDQKA0AIAQgBkGgneAAQQUQ0CgNACAEIAZBpZ3gAEEJENAoRQ0BCyADKAIkIQQgAygCICEGIANBrQE6AEggASAGIAQgA0HIAGoQ6SILIAFByAJqIQQgAUEoaiEHAkACQAJAAkACQAJAAkACQCABKALIAiIFQSVGBEAgASgC8AIhBiABQSU2AvACAkAgBkElRwRAIANB7ABqIAFBlANqKAIANgIAIANB5ABqIAFBjANqKQIANwIAIANB3ABqIAFBhANqKQIANwIAIANB1ABqIAFB/AJqKQIANwIAIAMgBjYCSCADIAEpAvQCNwJMDAELIANByABqIAcQMiAEKAIAQSVGDQAgBBDoAwsgBCADKQNINwMAIARBIGogA0HoAGopAwA3AwAgBEEYaiADQeAAaikDADcDACAEQRBqIANB2ABqKQMANwMAIARBCGogA0HQAGopAwA3AwBBACEGIAQoAgAiBUElRg0BC0EAIQYgBUEURw0BIAEtAMwCQQRHDQEgA0EIaiABQQFBABBqIAMoAgwhBiADKAIIBEAgBiEEDAgLIAQoAgAiBUElRw0BCyABKALwAiEJIAFBJTYC8AICQCAJQSVHBEAgA0HsAGogAUGUA2ooAgA2AgAgA0HkAGogAUGMA2opAgA3AgAgA0HcAGogAUGEA2opAgA3AgAgA0HUAGogAUH8AmopAgA3AgAgAyAJNgJIIAMgASkC9AI3AkwMAQsgA0HIAGogBxAyIAQoAgBBJUYNACAEEOgDCyAEIAMpA0g3AwAgBEEgaiADQegAaikDADcDACAEQRhqIANB4ABqKQMANwMAIARBEGogA0HYAGopAwA3AwAgBEEIaiADQdAAaikDADcDACAEKAIAIgVBJUcNAEEEIQkMAQsCQAJAIAVBAkcNACABLQDQAkECRw0AIAEtANECQRpGDQELQQQhCQwCCyABQSU2AsgCIAEgASkD4AI3A5gDIANB3ABqIAFB3AJqKAIANgIAIANB1ABqIAFB1AJqKQIANwIAIANBAjYCSCADIAEpAswCNwJMIANByABqIgkQ6AMgCSABEN8BIAMoAkwhCSADKAJIIgxBgICAgHhGBEAgCSEEDAULIAMoAlAhDSAEKAIAIgVBJUcNAQsgASgC8AIhBSABQSU2AvACAkAgBUElRwRAIANB7ABqIAFBlANqKAIANgIAIANB5ABqIAFBjANqKQIANwIAIANB3ABqIAFBhANqKQIANwIAIANB1ABqIAFB/AJqKQIANwIAIAMgBTYCSCADIAEpAvQCNwJMDAELIANByABqIAcQMiAEKAIAQSVGDQAgBBDoAwsgBCADKQNINwMAIARBIGogA0HoAGopAwA3AwAgBEEYaiADQeAAaikDADcDACAEQRBqIANB2ABqKQMANwMAIARBCGogA0HQAGopAwA3AwAgBCgCACIFQSVGDQELIAVBAkcNASABLQDQAkECRw0BIAEtANECQRpHDQEgASgC4AIhBSABKALkAiEIIANBlQE6AEggASAFIAggBSAISRsgBSAIIAUgCEsbIANByABqIgUQ6SIgAUHMAmohCyABQfQCaiEIIAVBBHIhBQNAAkAgBCgCACIKQSVGBEAgASgC8AIhCiABQSU2AvACAkAgCkElRwRAIAUgCCkCADcCACAFQSBqIAhBIGooAgA2AgAgBUEYaiAIQRhqKQIANwIAIAVBEGogCEEQaikCADcCACAFQQhqIAhBCGopAgA3AgAgAyAKNgJIDAELIANByABqIAcQMiAEKAIAQSVGDQAgBBDoAwsgBCADKQNINwMAIARBIGogA0HoAGopAwA3AwAgBEEYaiADQeAAaikDADcDACAEQRBqIANB2ABqKQMANwMAIARBCGogA0HQAGopAwA3AwAgBCgCACIKQSVGDQELIApBDUYNAyABQSU2AsgCIAUgCykCADcCACABIAEpA+ACNwOYAyAFQRBqIAtBEGooAgA2AgAgBUEIaiALQQhqKQIANwIAIAMgCjYCSCADQcgAahDoAwwBCwsgASgCgAIhBSADQQA6AEggBSAFIANByABqEO8bIgVBCGoQiAMgBUEgQQgQohggASgCyAJBJUcNAQsgASgC8AIhBSABQSU2AvACAkAgBUElRwRAIANB7ABqIAFBlANqKAIANgIAIANB5ABqIAFBjANqKQIANwIAIANB3ABqIAFBhANqKQIANwIAIANB1ABqIAFB/AJqKQIANwIAIAMgBTYCSCADIAEpAvQCNwJMDAELIANByABqIAcQMiAEKAIAQSVGDQAgBBDoAwsgBCADKQNINwMAIARBIGogA0HoAGopAwA3AwAgBEEYaiADQeAAaikDADcDACAEQRBqIANB2ABqKQMANwMAIARBCGogA0HQAGopAwA3AwAgBCgCAEElRiEOCyABKALgAiELIAEoApwDIQogA0EBOgA0IAMgASkBqgI3ACggAyABKAGyAjYAMCADIAEpALcCNwA1IAMgASkAvwI3AD0gA0HIAGoiBSABIANBKGoiDxC/CCAPIAMo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IANBEGokAAuEGQIEfwF+IwBBEGsiAyQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkBBByAAKAIAIgFBDGsiAiACQSZPG0EBaw4kAAECAwQFBgcICQoLDA0ODxAREhMkFBUWFyQYGRobHB0eHyAhJAsgACgCCCIBIAAoAgwQriEgACgCBCABEL8qDCMLIABBBGoQsxkgACgCBCAAKAIIEMAqDCILAkAgAC0AHEECRg0AIAApAwgiBUIDg0IAUg0AIAMgBaciATYCDCADQQxqENAGIAEgASgCACICQQFrNgIAIAJBAUcNACABIAEoAiAQjScLIAAoAiAQ4A4MIQsgACgCBCIAEMgBIABBwABBCBCiGAwgCyAAKAIMIgAQyAEgAEHAAEEIEKIYDB8LIAAoAgQiARDIASABQcAAQQgQohggACgCCCIAEMgBIABBwABBCBCiGAweCwJAAkACQAJAAkACQAJAAkACQAJAAkAgAQ4MCgABAgMEBQYHCCcJJwsgAEEIahDtDQwmCyMAQRBrIgIkAAJAIABBCGoiASgCAEUEQCABKQMIIgVCA4NCAFINASACIAWnIgE2AgwgAkEMahDQBiABIAEoAgAiBEEBazYCACAEQQFHDQEgASABKAIgEI0nDAELIAEoAgQiARDIASABQcAAQQgQohgLIAJBEGokAAwlCyAAQQRqELAsDCQLAkAgAEEEaigCACIBKAIAQQNHBEAgASgCICICEMgBIAJBwABBCBCiGCABEJEPDAELIAEoAhAiAhDIASACQcAAQQgQohggAUEEahDtISABKAIEIAFBCGooAgAQvyogASgCICICRQ0AIAIQsyIgAigCACACQQRqKAIAEMMqIAJBFEEEEKIYCyABQShBCBCiGAwjCyAAQQRqEPEnDCILIABBBGoQ8ScMIQsgAEEEahCwLAwgCyAAQQRqEPEnDB8LIABBBGoiASgCACICEMgBIAJBwABBCBCiGCABKAIEIgEQsyIgASgCACABQQRqKAIAEMMqIAFBFEEEEKIYDB4LAkACQCAAKAIEDgIAAR8LIAAoAgwiASAAKAIQEJMlIAAoAgggARDFKgwdCyAAQQhqEMAQIAAoAgggACgCDBDHKgwcCyAAQQhq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AEEEahDzEiAAKAIEIAAoAggQxSoMCgsgACgCBCIBEMgBIAFBwABBCBCiGCAAKAIIIgAQ/wMgAEHgAEEIEKIYDAkLIAAoAgQiABDIASAAQcAAQQgQohgMCAsgACgCBCIAEMgBIABBwABBCBCiGAwHCyAAKAIEIgEQyAEgAUHAAEEIEKIYIAAoAggiABD/AyAAQeAAQQgQohgMBgsgACgCBCIBEMgBIAFBwABBCBCiGCAAKAIIIgAQsyIgACgCACAAQQRqKAIAEMMqIABBFEEEEKIYDAULIAAoAgQiARDIASABQcAAQQgQohggACgCCCIAEP8DIABB4ABBCBCiGAwECyAAKQMIIgVCA4NCAFINAyADIAWnIgA2AgwgA0EMahDQBiAAIAAoAgAiAUEBazYCACABQQFHDQMgACAAKAIgEI0nDAMLAkAgACgCBCIBKAIAQQNHBEAgARDtDQwBCyABQQRqIgAoAgwiAhDIASACQcAAQQgQohggABDtISAAKAIAIAAoAgQQvyogACgCHCIABEAgABCzIiAAKAIAIABBBGooAgAQwyogAEEUQQQQohgLCyABQShBCBCiGAwCCyAAKAIcIgFFDQAgASgCACICEP8DIAJB4ABBCBCiGCABQQxBBBCiGAsgACgCOCIAEMgBIABBwABBCBCiGAsgA0EQaiQAC6oVAgl/AX4jAEGQB2siAyQAIANB+ABqQbi14wApAwA3AgAgA0EANgJsIANCgICAgMAANwJkIANBADoAYCADQQE2AoABIANB/MbYADYCXCADQoCAgIAQNwJUIANCgICAgMAANwJMIANBCzYCACADQbC14wApAwA3AnAgA0HAA2oiCUEFQQFBARDeECADKALEAyEGAkACQAJAAkACQCADKALAA0EBRwRAQaC/5AAtAAAaIAMoAsgDIgVBBGpBtK3aAC0AADoAACAFQbCt2gAoAAA2AABB0AAQhAEiBEUNASAEQQU2AhQgBCAFNgIQIAQgBjYCDCAEQQo2AgggBEKBgICAEDcCACAJIAJBAUEBEN4QIAMoAsQDIQYgAygCwANBAUYNAiADKALIAyABIAIQgQkhASADIAI2AsgDIAMgATYCxAMgAyAGNgLAAyADIAMgBCAJEIABIgI2AoQBIANBkAFqQQA7AQAgA0IANwOIASADQQA2ApwBIANCgICAgMAANwKUASAJIAJBCGoQhhggA0GgAWogA0GIAWpBASAJQQAQtQcgAy0AmwMhBSADLQCYAyEHAkAgAy0AowNBAXFFDQAgAygCgAMiBCgCCCIBQf7///8HSw0EIAQoAhRFDQAgAQ0FIARBfzYCCCADKAL8AiIBKAIIDQYgAUF/NgIIIAQoAhAhCCABQQxqIAQoAhQiBhDkJyABKAIQIAEoAhRBAnRqIAggBkECdBCBCRogASAGIAEoAhRqNgIUIARBADYCFCABIAEoAghBAWo2AgggBCAEKAIIQQFqNgIICyADIAdBAkYgBXE6ALADIANB6ANqIANBoAFqQfQBEIEJIQggA0HoBWogA0GYA2oiAUEIaikCADcDACADQfAFaiABQRBqKQIANwMAIANB+AVqIAFBGGopAgA3AwAgA0GABmogAUEgaikCADcDACADQSU2ArAGIANBJTYCiAYgA0EANgLQAyADQoCAgICAATcDyAMgA0EANgLAAyADIAEpAgA3A+AFIAMgAygClAMiATYC3AYgAyABNgLYBiADIAE2AtwFIANB3ANqQbi14wApAwA3AgAgA0EAOgDrBSADQQA6AOQDIANBsLXjACkDADcC1AMgA0HoBmogCBAyIANBiAZqIQcgAygCiAZBJUcEQCAHEOgDCyAHIAMpA+gGNwMAIAdBIGogA0GIB2opAwA3AwAgB0EYaiADQYAHaikDADcDACAHQRBqIANB+AZqKQMANwMAIAdBCGogA0HwBmopAwA3AwAgA0HAA2pBnANB4AIgAygCiAYiBUElRhtqKAIAIQQCfgJAIAVBJUYEQCADKAKwBiEBIANBJTYCsAYCQCABQSVHBEAgA0GMB2ogA0HUBmooAgA2AgAgA0GEB2ogA0HMBmopAgA3AgAgA0H8BmogA0HEBmopAgA3AgAgA0H0BmogA0G8BmopAgA3AgAgAyADKQK0BjcC7AYgAyABNgLoBgwBCyADQegGaiAIEDIgAygCiAZBJUYNACAHEOgDCyAHIAMpA+gGNwMAIAdBIGogA0GIB2opAwA3AwAgB0EYaiADQYAHaikDADcDACAHQRBqIANB+AZqKQMANwMAIAdBCGogA0HwBmopAwA3AwAgAygCiAYiBUElRg0BC0IAIAVBI0cNARogAyADKQOgBjcD2AYgA0ElNgKIBiADKQOQBgwBCyADKALABSEB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ACECIAZBAnQhBQNAIAAgAigCABDKASACQQRqIQIgBUEEayIFDQALDA8LIAEoAgwiAwRAIAEoAgghAiADQShsIQUDQCACIAAQtAwgAkEoaiECIAVBKGsiBQ0ACwsgASgCECIDKAIAQYCAgIB4RwRAIAMgABCOIwwPCyAAIAMoAgQQygEMDgsgASgCICAAENoHDA0LIAEoAgwiA0UNDCAAIAMQygEMDAsgACABKAIEEMoBDAsLIAAgASgCBBDKAQwKCyABLQA0QQJHDQkgAUEgahDtKAwJCyABKAIEIAAQxAkMCAsgASgCDCIDRQ0HIAEoAgghAiADQShsIQUDQCACIAAQyBUgAkEoaiECIAVBKGsiBQ0ACwwHCyAAIAEoAgQQygEMBgsgACABKAIEEMoBDAULIAAgASgCBBDKAQwECyAAIAEoAgQQygEMAwsgACABKAIEEMoBDAILIAAgASgCBBDKAQwBCyABKAIEIAAQxxULIAEoAgAhAgsgACAKOgAMAkACQAJAAkACQCACQRdHDQAgAS0AGEEDRw0AIABBAToADSABKQMAIQwgAUIxNwMAIAFBCGoiAykDACENIANBADYCACAEQQhqIA03AwAgBEEQaiABQRBqKQMANwMAIARBGGogAUEYaikDADcDACAEQSBqIAFBIGopAwA3AwAgBEEoaiABQShqKQMANwMAIARBMGogAUEwaikDADcDACAEQThqIAFBOGopAwA3AwAgBCAMNwMAIAAoAgQhAiAEQUBrIAAoAggiCUEEQQQQ3hAgBCgCRCEIIAQoAkBBAUYNASAEKAJIIQMCQCAIRQ0AIAlBAnQhBSADIQYgCCEAA0AgBUUNAUGgv+QALQAAGiACKAIAIQtBwAAQhAEiB0UNBiAEQUBrIAsQNSAHQThqIARB+ABqKQMANwMAIAdBMGogBEHwAGopAwA3AwAgB0EoaiAEQegAaikDADcDACAHQSBqIARB4ABqKQMANwMAIAdBGGogBEHYAGopAwA3AwAgB0EQaiAEQdAAaikDADcDACAHQQhqIARByABqKQMANwMAIAcgBCkDQDcDACAGIAc2AgAgBUEEayEFIAZBBGohBiACQQRqIQIgAEEBayIADQALC0Ggv+QALQAAGkHAABCEASIARQ0EIAAgBCkDADcDACAAQThqIARBOGopAwA3AwAgAEEwaiAE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IAEgBigCBBCmHAwCCyAGKAIEIAEQ+wUMAQsgBigCDCEFIAYoAgghACACIAE2AhQgBUUNACAFQShsIQQDQCACQRRqIAAQhgkgAEEoaiEAIARBKGsiBA0ACwsgBkEoaiIGIANHDQALCyAHLQA8QQZGDQogB0EQahDlKgwKCyAAQQRqIAEQsggMCQsgASAAKAIEEKYcDAgLIAEgACgCBBCmHAwHCyABIAAoAgQQphwMBgsgASAAKAIEEKYcDAULIAEgACgCBBCmHAwECyABIAAoAgQQphwMAwsgACgCBCIDKAIAQQNHBEAgASADELUWDAMLIAEgAygCEBCmHCADKAIMIgBFDQIgAEEEdCEEIAMoAghBDGohAANAIAEgACgCABCmHCAAQRBqIQAgBEEQayIEDQALDAILIAIoAlghACACKAJUIQMgAiACKAJQNgJ4IAIgAzYCcCACIAM2AnQgAiADIABBBHRqNgJ8IAFBPGogAkHwAGoQkBcLIAJBqAFqIgQgAkHMAGooAgA2AgAgAkGgAWoiBiACQcQAaikCADcDACACQZgBaiIJIAJBPGopAgA3AwAgAkGQAWoiByACQTRqKQIANwMAIAJBiAFqIgUgAkEsaikCADcDACACQYABaiIDIAJBJGopAgA3AwAgAkH4AGoiACACQRxqKQIANwMAIAIgAikCFDcDcCABKAI0IgsgASgCLEYEQCABQSxqEPcLCyABKAIwIAtBPGxqIgggAikDcDcCACAIQThqIAQoAgA2AgAgCEEwaiAGKQMANwIAIAhBKGogCSkDADcCACAIQSBqIAcpAwA3AgAgCEEYaiAFKQMANwIAIAhBEGogAykDADcCACAIQQhqIAApAwA3AgAgASALQQFqNgI0IAoNACACKAJUIAIoAlgQ9BQgAigCUCACKAJUEOYqCyACQbABaiQAC60eAxh/B34BfCMAQaACayICJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCAEEBaw4HAQIDCgoEBQALIAAoAiAgARDNBQwJCyAAKAIgIAEQuA4MCAsgACgCBCIAKAIIIgNFDQcgACgCBCIAIANBOGxqIQQDQCAAIAEQlQwgACgCMCIDBEAgAyABEOECCyAAQThqIgAgBEcNAAsMBwsgACgCBCIAKAIIIgNFDQYgACgCBCIAIANBOGxqIQQDQCAA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ahDQAQwDCyABKQMIIgVCA4NCAFINAiACIAWnIgE2AgwgAkEMahDQBiABIAEoAgAiBEEBazYCACAEQQFHDQIgASABKAIgEI0nDAILIAEpAwgiBUIDg0IAUg0BIAIgBaciATYCDCACQQxqENAGIAEgASgCACIEQQFrNgIAIARBAUcNASABIAEoAiAQjScMAQsgAUEQahDQASABQQRqEPEhIAEoAgQgAUEIaigCABC/KiABKAIgIgFFDQAgARC8IiABKAIAIAFBBGooAgAQwyogAUEUQQQQohgLIAAoAgRBKEEIEKIYDAULIABBBGoQ0AEgACgCCCIBEJAEIAFB4ABBCBCiGAwECyAAQQRqENABIAAoAggiARCQBCABQeAAQQgQohgMAwsgAEEEahDQAQwCCyAAQQRqENABIAAoAggiARCQBCABQeAAQQgQohgMAQsgAEEEahDQASAAKAIIIgEQvCIgASgCACABQQRqKAIAEMMqIAFBFEEEEKIYCyACQRBqJAAMAQsCQAJAAkACQCAAQQRqIgEoAgAOAgABAwsgASgCCCICIAEoAgwQoSUgASgCBCACEMUqDAELIAFBBGoQwRAgASgCBCABKAIIEMcqCyABKAIYIgFFDQAgASgCACICEJAEIAJB4ABBCBCiGCABQQxBBBCiGAsLIABBOGoQ0AEMGwsgAEEoahDQAQJAAkACQCAAKAIIDgIBAgALIABBDGoQ0AEMHAsgACkDEBDQGgwbCyAAKQMQENAaDBoLIAAoAghFBEAgACkDEBDQGgwaCyAAQQxqENABDBkLIABBBGoQ0AEgAEEIahDQASAAQQxqENABDBgLIAAtABhBBUYEQCAAQRBqENABCyAAQQRqEPEhIAAoAgQgAEEIaigCABC/KiAAKAIoIgFFDRcgARC8IiABKAIAIAFBBGooAgAQwyogAUEUQQQQohgMFwsgAEEQahDQASAAKAIEQYCAgIB4RwRAIABBBGoQ8SEgACgCBCAAQQhqKAIAEL8qCyAAKAIgIgFFDRYgARC8IiABKAIAIAFBBGooAgAQwyogAUEUQQQQohgMFgsgAEEIaiIBKAIAIABBDGooAgAQoiUgACgCBCABKAIAEMMqDBULIAApAwgiBUIDg0IAUg0UIAMgBaciATYCDCADQQxqENAGIAEgASgCACICQQFrNgIAIAJBAUcNFCABIAEoAiAQjScMFAsCQAJAAkACQAJAIAAoAggOBgEYGAIDBAALAkAgACkDECIFQgODQgBSDQAgAyAFpyIBNgIMIANBDGoQ0AYgASABKAIAIgJBAWs2AgAgAkEBRw0AIAEgASgCIBCNJwsgACkDGCIFQgODQgBSDRcgAyAFpyIBNgIMIANBDGoQ0AYgASABKAIAIgJBAWs2AgAgAkEBRw0XIAEgASgCIBCNJwwXCyAAQRBqEL8QDBYLIAApAyAiBVAgBUIDg0IAUnINFSADIAWnIgE2AgwgA0EMahDQBiABIAEoAgAiAkEBazYCACACQQFHDRUgASABKAIgEI0nDBULIAApAxggACgCIBCdFQwUCwJAIAApAxAiBUIDg0IAUg0AIAMgBaciATYCDCADQQxqENAGIAEgASgCACICQQFrNgIAIAJBAUcNACABIAEoAiAQjScLIAApAxgiBUIDg0IAUg0TIAMgBaciATYCDCADQQxqENAGIAEgASgCACICQQFrNgIAIAJBAUcNEyABIAEoAiAQjScMEwsgAEEIaiIBKAIAIABBDGooAgAQoiUgACgCBCABKAIAEMMqIABBFGoiASgCACAAQRhqKAIAEK4OIAAoAhAgASgCABDEKgwSCyAAQQRqENABIAAoAhgiAQRAIAEQvCIgASgCACABQQRqKAIAEMMqIAFBFEEEEKIYCyAAKAIIIgFBBGoiAigCACABQQhqKAIAEKIlIAEoAgAgAigCABDDKiABQRBqIgIoAgAgAUEUaigCABCuDiABKAIMIAIoAgAQxCogAUEgQQQQohgMEQsgAEEIaiIBKAIAIABBDGooAgAQhCggACgCBCABKAIAEMUqIAAoAhAiAUEEaiECAkAgASgCAEGAgICAeEcEQCACKAIAIAFBCGooAgAQhSggASgCACACKAIAEMIqDAELIAIQ0AELIAFBGEEEEKIYIAAoAiAiAQRAIAEQgQ8gASgCACABQQRqKAIAEMIqIAFBFEEEEKIYCyAAKAIkIgFFDRAgASgCACICEJAEIAJB4ABBCBCiGCABQQxBBBCiGAwQCwJAIABBHGotAABBAkYNACAAKQMIIgVCA4NCAFINACADIAWnIgE2AgwgA0EMahDQBiABIAEoAgAiAkEBazYCACACQQFHDQAgASABKAIgEI0nCyAAKAIgIgFBBGoiAigCACAB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IARFBEAgBSAORw0BIANByABqENERQQAhASADQQA2AkhBASEEDAQLIAJFIAIgDEZyDQICQANAIAJBQGshBQJAIAIoAgBBAmsOBgACAgICAAILIAUiAiAMRw0ACyADIAI2AmgMAwsgAyAFNgJoIANBADYCfCADQoCAgICAATcCdAJAIAIoAgBBB0YEQCACQQhqIQQgAi0AHEECRwRAIAQgA0H0AGoQixUMAgsgBCgCACADQfQAahDKDAwBCyACIANB9ABqEMoMCyADKAJ0IgJBgICAgHhGDQIgAygCfCEEIAMoAnghASADIAI2AlAgAyABNgJMIAMgATYCSCADIAEgBEEEdGoiDjYCVCAFIQIgASEFDAELIAMgBUEQaiIENgJMIANBCGogBSkDAEEBEN8GIAQhBQwDC0EAIQQMAQsLCyABBEAgA0HIAGoQ0RELIA0EQANAAkAgBygCAEEHRgRAIAcoAjgiAQRAIAcoAjQhAiABQQxsIQQDQCADQQhqIAIoAgAQ0SkgAkEMaiECIARBDGsiBA0ACwsgB0EIaiEBIANBADoAQSAHLQAcQQJHBEAgA0EIaiABEJIbDAILIANBCGogARCsJwwBCyADQQhqIAcQ3x4LIAdBQGsiByAMRw0ACwsgA0EBOgBBIAZBIGoiASgCAEGAgICAeEcEQAJAIAYoAjQNACADKAIsIgJFDQAgBkEAIAIQmAY2AjQLIANBCGogARCPCwsgA0EIahChCiAKEKsKCyAGQdgAaiIGIBBHDQALCyAAIA86AD0gA0GAAWokAAuuGwIGfwF+IwBBEGsiAyQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQEEHIAAoAgAiACgCACIBQQxrIgIgAkEmTxtBAWsOJAABAgMEBQYHCAkKCwwNDg8QERITIhQVFhciGBkaGxwdHh8gISILIABBCGoiASgCACAAQQxqKAIAEK4hIAAoAgQgASgCABC/KgwhCyAAQQRqELMZIAAoAgQgAEEIaigCABDAKgwgCwJAIAAtABxBAkYNACAAKQMIIgdCA4NCAFINACADIAenIgE2AgwgA0EMahDQBiABIAEoAgAiAkEBazYCACACQQFHDQAgASABKAIgEI0nCyAAKAIgIgFB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KAJ8IAIoAgAQxiogASgCeCICBEAgAhCzIiACKAIAIAJBBGooAgAQwyogAkEUQQQQohgLIAFBkAFqEPMSIAEoApABIAFBlAFqKAIAEMUqIAEtADxBBkcEQCABQRBqEPkSCyABQaABQQgQohgMCQsgAEEEahDzEiAAKAIEIABBCGooAgAQxSoMCAsgAEEEahDSASAAKAIIIgEQmAMgAUHgAEEIEKIYDAcLIABBBGoQ0gEMBgsgAEEEahDSAQwFCyAAQQRqENIBIAAoAggiARCYAyABQeAAQQgQohgMBAsgAEEEahDSASAAKAIIIgEQsyIgASgCACABQQRqKAIAEMMqIAFBFEEEEKIYDAMLIABBBGoQ0gEgACgCCCIBEJgDIAFB4ABBCBCiGAwCCyAAKQMIIgdCA4NCAFINASADIAenIgE2AgwgA0EMahDQBiABIAEoAgAiAkEBazYCACACQQFHDQEgASABKAIgEI0nDAELAkAgACgCBCIBKAIAQQNHBEAgAUEgahDSASABENwPDAELIAFBEGoQ0gEgAUEEahDtISABKAIEIAFBCGooAgAQvyogASgCICICRQ0AIAIQsyIgAigCACACQQRqKAIAEMMqIAJBFEEEEKIYCyABQShBCBCiGAsgAEHAAEEIEKIYIANBEGokAAuuGwIGfwF+IwBBEGsiAyQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQEEHIAAoAgAiACgCACIBQQxrIgIgAkEmTxtBAWsOJAABAgMEBQYHCAkKCwwNDg8QERITIhQVFhciGBkaGxwdHh8gISILIABBCGoiASgCACAAQQxqKAIAELMhIAAoAgQgASgCABC/KgwhCyAAQQRqELUZIAAoAgQgAEEIaigCABDAKgwgCwJAIAAtABxBAkYNACAAKQMIIgdCA4NCAFINACADIAenIgE2AgwgA0EMahDQBiABIAEoAgAiAkEBazYCACACQQFHDQAgASABKAIgEI0nCyAAKAIgIgFBBGoiAigCACABQQhqKAIAEPsnIAEoAgAgAigCABDBKiABQRBqIgIoAgAgAUEUaigCABCXJSABKAIMIAIoAgAQwCogASgCGEGAgICAeEcEQCABQRxqIgIoAgAgAUEgaigC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CyABQaABQQgQohgMCQsgAEEEahCAEyAAKAIEIABBCGooAgAQxSoMCAsgAEEEahDTASAAKAIIIgEQiAQgAUHgAEEIEKIYDAcLIABBBGoQ0wEMBgsgAEEEahDTAQwFCyAAQQRqENMBIAAoAggiARCIBCABQeAAQQgQohgMBAsgAEEEahDTASAAKAIIIgEQtSIgASgCACABQQRqKAIAEMMqIAFBFEEEEKIYDAMLIABBBGoQ0wEgACgCCCIBEIgEIAFB4ABBCBCiGAwCCyAAKQMIIgdCA4NCAFINASADIAenIgE2AgwgA0EMahDQBiABIAEoAgAiAkEBazYCACACQQFHDQEgASABKAIgEI0nDAELAkAgACgCBCIBKAIAQQNHBEAgAUEgahDTASABEOIPDAELIAFBEGoQ0wEgAUEEahDvISABKAIEIAFBCGooAgAQvyogASgCICICRQ0AIAIQtSIgAigCACACQQRqKAIAEMMqIAJBFEEEEKIYCyABQShBCBCiGAsgAEHAAEEIEKIYIANBEGokAAuuGwIGfwF+IwBBEGsiAyQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQEEHIAAoAgAiACgCACIBQQxrIgIgAkEmTxtBAWsOJAABAgMEBQYHCAkKCwwNDg8QERITIhQVFhciGBkaGxwdHh8gISILIABBCGoiASgCACAAQQxqKAIAELMhIAAoAgQgASgCABC/KgwhCyAAQQRqELUZIAAoAgQgAEEIaigCABDAKgwgCwJAIAAtABxBAkYNACAAKQMIIgdCA4NCAFINACADIAenIgE2AgwgA0EMahDQBiABIAEoAgAiAkEBazYCACACQQFHDQAgASABKAIgEI0nCyAAKAIgIgFBBGoiAigCACABQQhqKAIAEPsnIAEoAgAgAigCABDBKiABQRBqIgIoAgAgAUEUaigCABCXJSABKAIMIAIoAgAQwCogASgCGEGAgICAeEcEQCABQRxqIgIoAgAgAUEgaigCABD4JyABKAIYIAIoAgAQwioLIAEoAjwiAgRAIAIQ/w4gAigCACACQQRqKAIAEMIqIAJBFEEEEKIYCyABKAJAIgIEQCACKAIAIgQQiwQgBEHgAEEIEKIYIAJBDEEEEKIY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IAMgHjcDGCADIB43AwggAyADQQhqEMoQIAMoAgAgAygCBEGHl+AAQQQQ0ChFDQECfyAEKAIAQSVHBEAgDygCACEFIA4oAgAMAQsgASgC8AIhBSABQSU2AvACAkAgBUElRwRAIANB/ABqIAFBlANqKAIANgIAIANB9ABqIAFBjANqKQIANwIAIANB7ABqIAFBhANqKQIANwIAIANB5ABqIAFB/AJqKQIANwIAIAMgBTYCWCADIAEpAvQCNwJcDAELIANB2ABqIAsQMiAEKAIAQSVGDQAgBBDoAwsgBCADKQNYNwMAIARBIGogA0H4AGopAwA3AwAgBEEYaiADQfAAaikDADcDACAEQRBqIANB6ABqKQMANwMAIARBCGogA0HgAGopAwA3AwAgDygCACIFIA4oAgAgBCgCAEElRhsLIQcgA0H1ADoAWCABIAcgBSAFIAdLGyAHIAUgBSAHSRsgA0HYAGoQ6SIMAQsgAEEDOgAUIAAgBTYCAAwBCyADQdgAaiIGIANBGGoQkxQgA0E4aiIcIANB5ABqKQIANwMAIANBLmoiHSADQe8Aai0AADoAACADIAMpAlw3AzAgAyADLwBtOwEsIAFBzAJqIREgAUH0AmohBSADKAJYIQcgAy0AbCEJIANB1QBqIRIgA0FAa0EEciETIAZBBHIhCANAAkACQCAEKAIAIgZBJUYEQCABKALwAiEGIAFBJTYC8AICQCAGQSVHBEAgCCAFKQIANwIAIAhBIGogBUEgaigCADYCACAIQRhqIAVBGGopAgA3AgAgCEEQaiAFQRBqKQIANwIAIAhBCGogBUEIaikCADcCACADIAY2AlgMAQsgA0HYAGogCxAyIAQoAgBBJUYNACAEEOgDCyAEIAMpA1g3AwAgBEEgaiADQfgAaikDADcDACAEQRhqIANB8ABqKQMANwMAIARBEGogA0HoAGopAwA3AwAgBEEIaiADQeAAaikDADcDACAEKAIAIgZBJUYNAQsgBkEGRg0BCyAAIAMpAzA3AgQgACADLwEsOwAVIAAgCToAFCAAIAc2AgAgAEEMaiADQThqKQMANwIAIABBF2ogA0Euai0AADoAAAwCCyABQSU2AsgCIAggESkCADcCACABIAEpA+ACNwOYAyAIQRBqIgwgEUEQaigCADYCACAIQQhqIg0gEUEIaikCADcCACADQQY2AlggA0HYAGoQ6AMCQAJAAkACQAJAIAEoAsgCIgZBJUcEQCAOKAIAIQoMAQsgASgC8AIhBiABQSU2AvACAkAgBkElRwRAIAggBSkCADcCACAIQSBqIAVBIGooAgA2AgAgCEEYaiAFQRhqKQIANwIAIAwgBUEQaikCADcCACANIAVBCGopAgA3AgAgAyAGNgJYDAELIANB2ABqIAsQMiAEKAIAQSVGDQAgBBDoAwsgBCADKQNYNwMAIARBIGoiFCADQfgAaiIVKQMANwMAIARBGGoiFiADQfAAaiIXKQMANwMAIARBEGoiGCADQegAaiIZKQMANwMAIARBCGoiGiADQeAAaiIbKQMANwMAIAQoAgAiBkElRwRAIA4oAgAhCgwBCyAPKAIAIQogASgC8AIhBiABQSU2AvACAkAgBkElRwRAIAggBSkCADcCACAIQSBqIAVBIGooAgA2AgAgCEEYaiAFQRhqKQIANwIAIAwgBUEQaikCADcCACANIAVBCGopAgA3AgAgAyAGNgJYDAELIANB2ABqIAsQMiAEKAIAQSVGDQAgBBDoAwsgBCADKQNYNwMAIBQgFSkDADcDACAWIBcpAwA3AwAgGCAZKQMANwMAIBogGykDADcDACAEKAIAIgZBJUYNAQsgBkEERw0BDAMLIAEoAvACIQYgAUElNgLwAgJAIAZBJUcEQCAIIAUpAgA3AgAgCEEgaiAFQSBqKAIANgIAIAhBGGogBUEYaikCADcCACAMIAVBEGopAgA3AgAgDSAFQQhqKQIANwIAIAMgBjYCWAwBCyADQdgAaiALEDIgBCgCAEElRg0AIAQQ6AMLIAQgAykDWDcDACAUIBUpAwA3AwAgFiAXKQMANwMAIBggGSkDADcDACAaIBspAwA3AwAgBCgCACIGQSVGDQELIAZBAkYNAQsgA0H0ADoAWCABIAogCiADQdgAahDpIiAAQQxqIANBOGopAwA3AgAgACADKQMwNwIEIAAgAy8BLDsAFSAAQRdqIANBLmotAAA6AAAgACAJOgAUIAAgBzYCAAwCCyATIAMpAzA3AgAgEiADLwEsOwAAIBNBCGogHCkDADcCACASQQJqIB0tAAA6AAAgAyAHNgJAIAMgCToAVAJAAn8CQCACRQRAIANB2ABqIAFBAEEAEPkBIAMtAGxBAkYNASADKAJkIQwgAygCYCEJIAMoAlwhDSADKAJYIQoMAwsgA0HYAGogARDGAyADKAJgIgkgAykDWCIeUA0BGiADKAJkIQwgHkIgiKchDSAepyEKDAILIAMoAlgLIQkgAEEDOgAUIAAgCTYCACADQUBrENsODAILQaC/5AAtAAAaIA8oAgAhBkEwEIQBIgcEQCAHIAw2AgwgByAJNgIIIAcgAykDQDcDGCAHIBAgBiAGIBBJGzYCFCAHIBAgBiAGIBBLGzYCECAHQSBqIANByABqKQMANwMAIAdBKGogA0HQAGopAwA3AwAgByAKrSANrUIghoQ3AwBBAiEJDAELCwALIANBgAFqJAALvxMCB38BfiMAQaABayIDJAAgAUHIAmohBSABQShqIQYCQAJAAkACQAJAAkACQCABKALIAiIEQSVGBEAgASgC8AIhBCABQSU2AvACAkAgBEElRwRAIANBnAFqIAFBlANqKAIANgIAIANBlAFqIAFBjANqKQIANwIAIANBjAFqIAFBhANqKQIANwIAIANBhAFqIAFB/AJqKQIANwIAIAMgBDYCeCADIAEpAvQCNwJ8DAELIANB+ABqIAYQMiAFKAIAQSVGDQAgBRDoAwsgBSADKQN4NwMAIAVBIGogA0GYAWopAwA3AwAgBUEYaiADQZABaikDADcDACAFQRBqIANBiAFqKQMANwMAIAVBCGogA0GAAWopAwA3AwAgBSgCACIEQSVGDQELIARBAkcNASABLQDQAiIHQQFLIAdBAXFyDQEgAS0A0QJBBkcNASADQfgAaiIIIAEQxgMgAygCgAEhBCADKQN4IgpQDQMgAyADKAKEATYCNCADIAQ2AjAgAyAKNwMoIAggA0EoahCTFCADQegAaiADQYQBaikCADcDACADQfAAaiADQYwBaigCADYCACADIAMpAnw3A2AgAygCeCEEQgAhCkEBIQkMAgsgASgC8AIhBCABQSU2AvACAkAgBEElRwRAIANBnAFqIAFBlANqKAIANgIAIANBlAFqIAFBjANqKQIANwIAIANBjAFqIAFBhANqKQIANwIAIANBhAFqIAFB/AJqKQIANwIAIAMgBDYCeCADIAEpAvQCNwJ8DAELIANB+ABqIAYQMiAFKAIAQSVGDQAgBRDoAwsgBSADKQN4NwMAIAVBIGogA0GYAWopAwA3AwAgBUEYaiADQZABaikDADcDACAFQRBqIANBiAFqKQMANwMAIAVBCGogA0GAAWopAwA3AwAgBSgCACIEQSVHDQAgASgCgAIhASADQQA6AHggASABIANB+ABqEO8bIQQMAgsCQAJAAkACQAJAAkAgBEEbaw4KAQICAgICAgICAAILIAFBJTYCyAIgASABKQPgAjcDmAMgASgCzAIhBAwGCyADQfgAaiABEPcCIAMoAngOCAIBAQEBAQEDAQsgA0GEAWoiByAGEN0HIANBGjYCgAEgA0Ho3d8ANgJ8IANBMDoAeCAGQfACQbgCIAUoAgBBJUYiBBtqKAIAIgIgBkH0AkG8AiAEG2ooAgAiBCACIARJGyACIAQgAiAESxsgA0H4AGoQ7xshBCAFKAIAIgJBJUYEQCABKALwAiECIAFBJTYC8AICQCACQSVHBEAgA0GcAWogAUGUA2ooAgA2AgAgA0GUAWogAUGMA2opAgA3AgAgA0GMAWogAUGEA2opAgA3AgAgByABQfwCaikCADcCACADIAI2AnggAyABKQL0AjcCfAwBCyADQfgAaiAGEDIgBSgCAEElRg0AIAUQ6AMLIAUgAykDeDcDACAFQSBqIANBmAFqKQMANwMAIAVBGGogA0GQAWopAwA3AwAgBUEQaiADQYgBaikDADcDACAFQQhqIANBgAFqKQMANwMAIAUoAgAiAkElRg0FCyACQSRHDQQgAUElNgLIAiABIAEpA+ACNwOYAyABIAEoAswCEMAIDAQLQYmE4QBBKEHI3d8AENUhAAsgA0HoAGogA0GMAWopAgA3AwAgA0HwAGogA0GUAWooAgA2AgAgAyADKQKEATcDYCADKAKAASEEQgEhCgwBCyADKAJ8IQQMAQsgA0EcaiADQegAaikDADcCACADQSRqIANB8ABqKAIANgIAIAMgBDYCECADIAo3AwggAyADKQNgNwIUAkACQAJAAkACQAJAIAUoAgAiBEElRw0AIAEoAvACIQQgAUElNgLwAgJAIARBJUcEQCADQZwBaiABQZQDaigCADYCACADQZQBaiABQYwDaikCADcCACADQYwBaiABQYQDaikCADcCACADQYQBaiABQfwCaikCADcCACADIAQ2AnggAyABKQL0AjcCfAwBCyADQfgAaiAGEDIgBSgCAEElRg0AIAUQ6AMLIAUgAykDeDcDACAFQSBqIANBmAFqKQMANwMAIAVBGGogA0GQAWopAwA3AwAgBUEQaiADQYgBaikDADcDACAFQQhqIANBgAFqKQMANwMAIAUoAgAiBEElRw0AIAEoAvACIQQgAUElNgLwAgJAIARBJUcEQCADQZwBaiABQZQDaigCADYCACADQZQBaiABQYwDaikCADcCACADQYwBaiABQYQDaikCADcCACADQYQBaiABQfwCaikCADcCACADIAQ2AnggAyABKQL0AjcCfAwBCyADQfgAaiAGEDIgBSgCAEElRg0AIAUQ6AMLIAUgAykDeDcDACAFQSBqIANBmAFqKQMANwMAIAVBGGogA0GQAWopAwA3AwAgBUEQaiADQYgBaikDADcDACAFQQhqIANBgAFqKQMANwMAIAUoAgAiBEElRw0BQQMhCAwHCyAEQQ1GDQELQQMhCCAEQQ5rDgIFAQILIANB+ABqIAEQZiADKAJ4IgdBgICAgHhHBEAgA0FAayADQYQBaikCADcDACADIAMpAnw3AzhBAiEIDAULIAMoAnwhBAwCCyABQSU2AsgCIAEgASkD4AI3A5gDIANBjAFqIAFB3AJqKAIANgIAIANBhAFqIAFB1AJqKQIANwIAIANBDzYCeCADIAEpAswCNwJ8IANB+ABqEOgDDAMLIAEtAOgCDQIgA0GAAWogBhDdByADQcDo4AA2AnwgA0E0OgB4IAZB8AJBuAIgBSgCAEElRiIFG2ooAgAiAiAGQfQCQbwCIAUbaigCACIFIAIgBUkbIAIgBSACIAVLGyADQfgAahDvGyEEIAYQvwoiAkUNACACKAIAQSRHDQAgASABKQPgAjcDmAMgASgCyAIgAUElNgLIAkEkRgRAIAEgASgCzAIQwAgMAQtBiYThAEEoQdjd3wAQ1SEACyADQQhqEK8VC0EBIQUMAQtBACEFQaC/5AAtAAAaIAEoApwDIQFB2AAQhAEiBEUNASAEIAMpAwg3AwAgBCAHNgIgIAQgAykDODcCJCAEQRhqIANBIGopAwA3AwAgBEEQaiADQRhqKQMANwMAIARBCGogA0EQaikDADcDACAEQSxqIANBQGspAwA3AgAgBEE0aiADQcgAaikDADcCACAEQTxqIANB0ABqKQMANwIAIARBxABqIANB2ABqLQAAOgAAIARBADoAUiAEIAk6AFEgBEEAOgBQIAQgASACIAEgAksbNgJMIAQgASACIAEgAkkbNgJIIAQgCDoARQsgACAENgIEIAAgBTYCACADQaABaiQADwsAC+ESAgl/AX4jAEEQayIFJAACQAJAAkACQAJAAkACQAJAAkAgACgCAEEBaw4HAgMEBQYHAAELIAAoAgQiAkEIaiEAAkAgAigCAEUEQCAAKQMAIgpCA4NCAFINASAFIAqnIgA2AgwgBUEMahDQBiAAIAAoAgAiAUEBazYCACABQQFHDQEgACAAKAIgEI0nDAELIAAQvxALAkAgAi0ARSIAQQNGDQAgAEECRgRAIAJBJGooAgAhACACKAIoIgEEQANAIAAQkgcgAEE4aiEAIAFBAWsiAQ0ACyACQSRqKAIAIQALIAIoAiAgABDHKgwBCwJAIAIpAygiCkIDg0IAUg0AIAUgCqciADYCDCAFQQxqENAGIAAgACgCACIBQQFrNgIAIAFBAUcNACAAIAAoAiAQjScLIAJBQGsQ5Q4LIAJB2ABBCBCiGAwHCwJAIAApAwgiCkIDg0IAUg0AIAUgCqciATYCDCAFQQxqENAGIAEgASgCACICQQFrNgIAIAJBAUcNACABIAEoAiAQjScLIAAoAiAiAkEEaigCACEAIAIoAggiAQRAA0AgACgCACIDEJ4BIANBwABBCBCiGCAAQQxqIQAgAUEBayIBDQALIAJBBGooAgAhAAsgAigCACAAEMAqIAJBEGooAgAhACACKAIUIgEEQANAIAAQuAIgAEHYAGohACABQQFrIgENAAsgAkEQaigCACEACyACKAIMIAAQxiogAigCMCIABEAgABCeASAAQcAAQQgQohgLIAIoAjQiAARAIAAQ/w4gACgCACAAQQRqKAIAEMIqIABBFEEEEKIYCyACKAI4IgMEQCADQQRqKAIAIQAgAygCCCIBBEADQCAAKAIAIgQQ6gIgBEHgAEEIEKIYIABBBGohACABQQFrIgENAAsgA0EEaigCACEACyADKAIAIAAQwyogA0EUQQQQohgLIAJBHGooAgAhAyACKAIgIgcEQEEAIQQDQCADIARBBHRqIgAoAgAiARCeASABQcAAQQgQohggACgCDCIGBEAgBkEEaiIIKAIAIQAgBigCCCIBBEADQCAAKAIAIgkQ6gIgCUHgAEEIEKIYIABBBGohACABQQFrIgENAAsgCCgCACEACyAGKAIAIAAQwyogBkEUQQQQ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/ABBwAAgASgCKEElRhtqKAIAIQ8gBhChEyIDBEAgAygCAEELRg0QCyACQYgHaiAGEIkKIAJB4ABqIAYQtx4gAkHozd8ANgKEByACQTQ6AIAHIAIoAmAgAigCZCACQYAHahDvGyEDIAYQoRMiBEUNOiAEKAIAQSRHDTogASABKQNANwN4IAEoAiggAUElNgIoQSRHDRAgASABKAIsEMUQDDoLIAJBgAdqIAEQ4gIgAkEBOgD4ASACIAIpAIMKNwD5ASACIAIpAIsKNwCBAiACIAIpAJMKNwCJAiACIAIoAJsKNgCRAiACQYAIaiACQfgBahDvCiACQZwDaiACQbQHaikCADcCACACQaQDaiACQbwHaigCADYCACACKAKoByEDIAJBJTYCqAcgAiACKQPABzcD+AcgAiACKQKsBzcClAMgAiADNgKQAyACQZADahCODiACQawHaiEDAkACQCACQagHaiIEEKETIgVFDQAgBSgCAEEURw0AIAUtAARBC0YNAQsCQCAEEKETIgVFDQAgBSgCAEEURw0AIAUtAARBDEYNJAsCQCAEEKETIgVFDQAgBSgCAEECRw0AIAUtAAgNACAFLQAJQQlHDQAgAkGcA2ogA0EIaikCADcCACACQaQDaiADQRBqKAIANgIAIAIoAqgHIQUgAkElNgKoByACIAU2ApADIAIgAikDwAc3A/gHIAIgAykCADcClAMgAkGQA2oQjg4LIAQQoRMiBUUNJSAFKAIAQQtHDSUgAkGcA2oiByADQQhqKQIANwIAIAJBpANqIgogA0EQaigCADYCACACKAKoByEFIAJBJTYCqAcgAiAFNgKQAyACIAIpA8AHNwP4ByACIAMpAgA3ApQDIAJBkANqIgkQjg4gAkHAA2ogAkGCCmoiBUEIaikAADcDACACQcgDaiAFQRBqKQAANwMAIAJBzQNqIAVBFWopAAA3AAAgAiAFKQAANwO4AyAEEKETIgVFDSUgBSgCAEECRw0lIAJBuANqIAUtAAggBUEJai0AABDcDA0lIAcgA0EIaikCADcCACAKIANBEGooAgA2AgAgAigCqAchBSACQSU2AqgHIAIgBTYCkAMgAiACKQPABzcD+AcgAiADKQIANwKUAyAJEI4OIAQQoRMiBEUNJSAEKAIAQQJHDSUgBC0ACEECRw0lQR4MJAsMIgsgBhChExogAUH8AEHAACABKAIoQSVGG2ooAgAhDgJAAkACQAJAAkACQAJAIAYQoRMiAwRAIAMoAgBBEUYNAQsgAkGAB2ogARDwAyACKAKEByEDIAIoAoAHIgVBB0YNPyACQdADaiACQZgHaikDADcDACACQcgDaiACQZAHaikDADcDACACIAIpA4gHNwPAAyACIAM2ArwDIAIgBTYCuAMgBQ4FAgUBAwQBCyAGEKETGiABQfwAQcAAIAEoAihBJUYbaigCACENIAYQoRMiA0UEQCABKALYAiEDIAJBADoAgAcgAyADIAJBgAdqEO8bIQMMPwsgAygCAEEkRgRAIAEgASkDQDcDeCABKAIoIAFBJTYCKEEkRg0+QYmE4QBBKEHg0d8AENUhAAsgASgCKCEDIAFBJTYCKCABIAEpA0A3A3ggAkGMB2oiBCABQTRqKQIANwIAIAJBlAdqIgkgAUE8aigCADYCACACIAEpAiw3AoQHIAIgAzYCgAcgAkGAB2oiBxCODiACQQA2AvAKIAJCgICAgMAANwLoCiAHIAFBABDABiACKAKAByEDIAItAJgHIgpBAkYNJiACQYgCaiILIAkoAgA2AgAgAkGAAmoiESAEKQIANwMAIAIgAikChAc3A/gBIAIgAigAmQc2AuAGIAIgAkGcB2ooAAA2AOMGQQhBIBC5LiIERQ0zIAFBLGohCSAEIAM2AgAgBCACKQP4ATcCBCAEIAo6ABggBCACKALgBjYAGSAEQRxqIAIoAOMGNgAAIARBDGogESkDADcCACAEQRRqIAsoAgA2AgAgAkEBNgKYAyACIAQ2ApQDIAJBATYCkAMgB0EEciELIAJBmQdqIhRBA2ohFkEEIRFBACEHA0AgCkEBcUUEQAJAIAYQoRMiAwRAIAMoAgBBFkYNAQsgAkGIB2ogBhCJCiACQTBqIAYQtx4gAkHQ198ANgKEByACQTQ6AIAHIAIoAjAgAigCNCACQYAHahDvGyEDIAYQoRMiBEUNKCAEKAIAQSRHDSggASABKQNANwN4IAEoAiggAUElNgIoQSRHDRkgASABKAIsEMUQDCgLIAsgCSkCADcCACABKAIoIQMgAUElNgIoIAEgASkDQDcDeCALQQhqIgQgCUEIaiIKKQIANwIAIAtBEGoiDyAJQRBqIhUoAgA2AgAgAiADNgKAByACQYAHahCODiACQUBrIAEQpwMgAigCRCEDIAIoAkANJyACKALoCiAHRgRAIAJB6ApqEOAgIAIoAuwKIRELIAUgEWogAzYCACACIAdBAWoiBzYC8AoCQCAGEKETIgMEQCADKAIAQQ5GDQELIAJBiAdqIAYQiQogAkE4aiAGELceIAJBsMjfADYChAcgAkE0OgCAByACKAI4IAIoAjwgAkGAB2oQ7xshAyAGEKETIgRFDSggBCgCAEEkRw0oIAEgASkDQDcDeCABKAIoIAFBJTYCKEEkRw0YIAEgASgCLBDFEAwoCyALIAkpAgA3AgAgASgCKCEDIAFBJTYCKCABIAEpA0A3A3ggBCAKKQIANwIAIA8gFSgCADYCACACIAM2AoAHIAJBgAdqIgMQjg4gAyABQQAQwAYgAigCgAchAyACLQCYByIKQQJGDScgAkHIA2oiFSAPKAIANgIAIAJBwANqIhcgBCkCADcDACACIAspAgA3A7gDIAIgFCgAADYC0AIgAiAWKAAANgDTAiACKAKYAyIPIAIoApADRgRAIAJBkANqEPAgCyACKAKUAyAPQQV0aiIEIAM2AgAgBCACKQO4AzcCBCAEIAo6ABggBCACKALQAjYAGSAEQQxqIBcpAwA3AgAgBEEUaiAVKAIANgIAIARBHGogAigA0wI2AAAgAiAPQQFqNgKYAyAFQQRqIQUMAQsLIAJB+AJqIgUgAkGYA2ooAgA2AgAgAiACKQKQAzcD8AIgAigC7AohAyACKALoCiIEQYCAgIB4Rg0+IAJBwANqIAUoAgA2AgAgAiACKQPwAjcDuAMgAiAHNgKAAiACIAM2AvwBIAIgBDYC+AEgBhChEyIFBEAgBSgCAEERRg0GCyACQYgHaiAGEIkKIAJBKGogBhC3HiACQfDR3wA2AoQHIAJBNDoAgAcgAigCKCACKAIsIAJBgAdqEO8bIQMgBhChEyIERQ0kIAQoAgBBJEcNJCABIAEpA0A3A3ggASgCKCABQSU2AihBJEcNFyABIAEoAiwQxRAMJAtBiYThAEEoQZjS3wAQ1SEAC0GBgICAeCEEDB8LQYCAgIB4IQQMHgtBg4CAgHghBAwdCyACKQPAAyEoIAJBuANqEOccQYKAgIB4IQQMHQsgASgCKCEFIAFBJTYCKCABIAEpA0A3A3ggAkGMB2ogCUEIaikCADcCACACQZQHaiAJQRBqKAIANgIAIAIgCSkCADcChAcgAiAFNgKAByACQYAHahCODiAEQYSAgIB4Rg04IA0gASgCfCIGIAYgDUsbIQkgDSAGIAYgDUkbIQUgB60gAjUCuANCIIaEISggAikCvAMhKQwdCwJAIAMtAAkiA0EXaw4LAjY2NjYGATY2AwEACyADQQJPDTULIAYQoRMiA0UNByADKAIAQQJHDQcgAy0ACA0HIAMtAAlBFEcNByAGEOwZIgNFDQcgAygCAEECRw0HIAMtAAhBAkcNByADLQAJQRdHDQcgASgCKCEDIAFBJTYCKCABIAEpA0A3A3ggAkGMB2ogAUE0aikCADcCACACQZQHaiABQTxqKAIANgIAIAIgASkCLDcChAcgAiADNgKAByACQYAHaiIDEI4OIAMgARD6CSACKAKEByEDIAIoAoAHDTZBASEEIAJBuANqIAEgCUEBIAMgAigCiAcQ8wkgAi0A3ANBAkcNBiACKAK4AyEDDDcLIAYQoRMaIAFB/ABBwAAgASgCKEElRhtqKAIAIQUgAkGAB2ogARD6CSACKAKEByEDIAIoAoAHDTUgAigCiAchByAGEKETGiABKAIoQSVGDQIgAS0ASEEBcQ0CIAYQoRMiBEUNAiAEKAIAQQJHDQIgBC0ACA0CIAQtAAlBDkcNAkEAIQQgAkG4A2ogASAFQQAgAyAHEPMJIAItANwDQQJHDQEMFwsgBhChExogAUH8AEHAACABKAIoQSVGG2ooAgAhBwJAAkAgBhChEyIDRQ0AIAMoAgBBAkcNACADLQAIQQJHDQAgAy0ACUEgRg0BCyACQYgHaiAGEIkKIAJBGGogBhC3HiACQZDL3wA2AoQHIAJBNDoAgAcgAigCGCACKAIcIAJBgAdqEO8bIQMgBhChEyIERQ01IAQoAgBBJEcNNSABIAEpA0A3A3ggASgCKCABQSU2AihBJEcNDyABIAEoAiwQxRAMNQsgASgCKCEDIAFBJTYCKCABIAEpA0A3A3ggAkGMB2ogAUE0aikCADcCACACQZQHaiABQTxqKAIANgIAIAIgASkCLDcChAcgAiADNgKAByACQYAHahCODgJAAkACQCAGEKETIgNFDQAgAygCAEECRw0AIAMtAAhBAkcNACADLQAJQRxGDQELIAJBgAdqIAFBARDgAyACKAKAByEDIAItAJQHQQNGDTYgAkHMA2ogAkGUB2ooAgA2AgAgAkHEA2ogAkGMB2opAgA3AgAgAiACKQKEBzcCvANBBCEEDAELIAJBgAdqIgUgARCfASACKAKAByEDIAItALQHIgRBBEYNNSACQbgDakEEciAFQQRyQTAQgQkaIAJB/ANqIAJBxAdqKAAANgAAIAJB9QNqIAJBvQdqKQAANwAAIAIgAikAtQc3AO0DCyACIAQ6AOwDIAIgAzYCuAMgBhChExpBACEDAkACQCAGKAIAQSVGDQAgAS0ASA0AIAYQoRMiBUUNACAFKAIAQRRHDQAgBS0ABEEERw0AIAJBADoAnQMgAiABLQCOAzoAnAMgAiABLQCeAzoArAMgAiABKQGCAzcAkAMgAiABKQOQAzcAngMgAiABKAKYAzYApgMgAiABLwGcAzsAqgMgAiABQYoDaiIDKAEANgCYAyACQZkHaiABQZcDaikAADcAACACQZQHaiABQZIDaikBADcCACACQYwHaiADKQEANwIAIAIgASkBggM3AoQHIAFBgAFqIAJBkANqEO8KIAIgATYCgAcgAkEgaiABELICIAIoAiQhAyACKAIgIAJBgAdqEOUsDQEgAi0A7AMhBAsgASgCfCEGIAJB+AFqIAJBuANqQTQQgQkaIAJB9wpqIgogAkH8A2ooAAA2AAAgAkHwCmoiCSACQfUDaikAADcDACACIAIpAO0DNwPoCiAHIAYgBiAHSxshBSAEQf8BcUEFRw0EIAUhAww1CyACQbgDahCQKgw0CyACQYgHaiACQbgDakEoEIEJGiACQRI2AoAHIAJBgAdqEPkuIQMMNAtBCEHgABC5LiIFRQ0nIAUgBzYCCCAFIAM2AgQgBUEBNgIAQQAhBCAFIQMMMwsgAkG4A2oiAyABEJ8BIAItAOwDQQRGDRMgAkGIB2ogA0HIABCBCRogAkETNgKAByACQYAHahD5LiEDDCgLIAIgByAGIAYgB0kbNgKMByACIAU2AogHIAJBkAdqIAJB+AFqQTQQgQkaIAJBzQdqIAkpAwA3AAAgAkHUB2ogCigAADYAACACIAQ6AMQHIAIgAzYC2AcgAiACKQPoCjcAxQcgAkEENgKAByACQYAHahD5LiEDDCcLIAJBiAdqIAJBuANqQSgQgQkaIAJBEjYCgAcgAkGAB2oQ+S4hAwwmCwJAIAYQoRMiA0UNACADKAIAQQJHDQAgAy0ACEECRw0AIAMtAAlBIUcNAEEIIQQMEAsgBhChEyIDDQ0MDgsgAy0ABEEMRw0rIAYQoRMaIAEoAighAyABKAJAIQcgAUElNgIoIAEgBzYCeCACQZQHaiABQTxqKAIANgIAIAJBjAdqIAFBNGopAgA3AgAgASABKAJENgJ8IAIgAzYCgAcgAiABKQIsNwKEByACQYAHaiIEEI4OIAYQoRMiA0UEQCABKALYAiEDIAJBADoAgAcgAyADIAQQ7xshAwwuCyADKAIAIgNBHWtBAk8EQCADQSRGBEAgASABKQNANwN4IAEoAiggAUElNgIoQSRGDS5BiYThAEEoQejT3wAQ1SEACyACQYwHaiAGEIkKIAJB4AFqIAYQtx4gAkEhNgKIByACQfjT3wA2AoQHIAJBMDoAgAcgAigC4AEgAigC5AEgAkGAB2oQ7xshA0EBIQQgBhChEyIFRQ0vIAUoAgBBJEcNLyABIAEpA0A3A3ggASgCKCABQSU2AihBJEcNCSABIAEoAiwQxRAMLwsgAkGAB2ogARDwAyACKAKEByEDIAIoAoAHIgRBB0YNLSACQdADaiACQZgHaikDADcDACACQcgDaiACQZAHaikDADcDACACIAIpA4gHNwPAAyACIAM2ArwDIAIgBDYCuAMCQAJAAkAgBEEDaw4CAQIAC0GJhOEAQShBzNTfABDVIQALIAIoAsQDIQkgAigCwAMhBCACIAIrA8gDIio5A+gKIAIpA9ADISggAkH4AWoiA0G8++AAQQEQuR4CQCAoUEUEQCACICg3A4AHIAJB6AFqIAJBgAdqEMoQIAMgAigC6AEgAigC7AEQ1yYgAikDgAcQ0BoMAQsgAkEBNgKEByACQaiP4QA2AoAHIAJCATcCjAcgAiACQegKaq1CgICAgMAfhDcDkAMgAiACQZADajYCiAcgAkH4AWogAkGAB2oQ7iwNCyACKwPoCiEqCyACQYgHaiACQYACaigCADYCACACIAIpAvgBNwOAByACQYAHahDgJiIpQoCAgIBwgyEoICqaISogKachBUGAgICAeAwMCyACKALEAyEJIAIoAsADIQQgAiACKALQAyIFNgLoCiACKQPIAyEoIAJB+AFqIgNBvPvgAEEBELkeIChQRQRAIAIgKDcDgAcgAkHwAWogAkGAB2oQyhAgAyACKALwASACKAL0ARDXJiACKQOABxDQGgwLCyACQQE2AoQHIAJBqI/hADYCgAcgAkIBNwKMByACIAJB6ApqrUKAgICAwJUBhDcDkAMgAiACQZADajYCiAcgAkH4AWogAkGAB2oQ7ixFBEAgAigC6AohBQwLC0HAguEAQSsgAkGPC2pBqMzfAEG81N8AELEUAAtBiYThAEEoQZjY3wAQ1SEAC0GJhOEAQShBqNjfABDVIQwgCyABKAIoIQMgAUElNgIoIAEgASkDQDcDeCACQYwHaiABQTRqKQIANwIAIAJBlAdqIhsgAUE8aigCADYCACACIAEpAiw3AoQHIAIgAzYCgAcgAkGAB2oiAxCODiACQQA2AswCIAJCgICAgIABNwLEAiABQYABaiEhIAFBLGohCyADQQRyIQkgAkGYA2ohDiACQYgHaiEiIAJBlAJqIRwgAkH4AWpBBHIhIyACQYQHaiEXIAJBvQpqIR0gAkGoCmpBBHIhHiACQZUHaiEfIAJB5ANqIREgAkHgA2ohFCACQbgEaiEkDB4LQYmE4QBBKEGo098AENUhAAtBiYThAEEoQcDX3wAQ1SEAC0GJhOEAQShB6NffABDVIQALQYmE4QBBKEGI0t8AENUhAAtBiYThAEEoQajL3wAQ1SEAC0GJhOEAQShBnNTfABDVIQALQcCC4QBBKyACQY8LakGozN8AQazU3wAQsRQACyACQYgHaiIDIAVBCGooAgA2AgAgAkGSA2oiBiAFQQ9qLQAAOgAAIAIgBSkCADcDgAcgAiAFLwANOwGQAyAFLQAMIQpBBEEQELkuIgVFDRcgBSACKQOABzcCACAFIAIvAZADOwANIAVBAiAKazoADCAFQQhqIAMoAgA2AgAgBUEPaiAGLQAAOgAAIAMgAkGAAmooAgA2AgAgAiACKQL4ATcDgAcgAkGAB2oQ4CYgAigC6ApBEEEEEKIYvyEqQgAhKEGDgICAeAshCiABKAJ8IQZBCEHgABC5LiIDRQ0WIAMgKjkCGCADIAk2AhQgAyAENgIQIAMgCjYCCCADQRE2AgAgAyAHIAYgBiAHSRs2AiwgAyAHIAYgBiAHSxs2AiggAyAoIAWthDcCIAwYCyADKAIAQQJHDQAgAy0ACEEDRw0AQQohBAwBCwJAIAYQoRMiA0UNACADKAIAQQJHDQAgAy0ACA0AIAMtAAlBGEcNAEEAIQQMAQsCQCAGEKETIgNFDQAgAygCAEECRw0AIAMtAAgNACADLQAJQR9HDQBBBCEEDAELAkAgBhChEyIDRQ0AIAMoAgBBAkcNACADLQAIDQAgAy0ACUEeRw0AQQUhBAwBCwJAIAYQoRMiA0UNACADKAIAQQJHDQAgAy0ACA0AIAMtAAlBIEcNAEELIQQMAQsCQCAGEKETIgNFDQAgAygCAEECRw0AIAMtAAgNACADLQAJQR1HDQBBAiEEDAELAkAgBhChEyIDRQ0AIAMoAgBBAkcNACADLQAIDQAgAy0ACUEcRw0AQQMhBAwBCwJAIAYQoRMiA0UNACADKAIAQQJHDQAgAy0ACA0AIAMtAAlBG0cNAEEGIQQMAQsCQCAGEKETIgNFDQAgAygCAEECRw0AIAMtAAgNACADLQAJQRBHDQBBByEEDAELAkAgBhChEyIDRQ0AIAMoAgBBAkcNACADLQAIDQAgAy0ACUEaRw0AQQEhBAwBCwJAIAYQoRMiA0UNACADKAIAQQJHDQAgAy0ACA0AIAMtAAlBEUcNAEEJIQQMAQtBDSEEIAYQoRMiA0UNACADKAIAQQJHDQAgAy0ACA0AQQxBDSADLQAJQRlGGyEECwJAIAYQ7BkiAwR/IAMoAgBBBkYFQQALRSAEQQ1HcUUEQCAGEKETGiABQfwAQcAAIAEoAihBJUYbaigCACEFIAJBgAdqIgQgARC6CiACLQCABw0NIAItAIEHIAQgAUEBEOADIAIoAoAHIQMgAi0AlAciB0EDRg0gIAJBhAJqIAJBjAdqIgkpAgA3AgAgAkGPAmogAkGXB2otAAA6AAAgAiACKQKEBzcC/AEgAiACLwCVBzsAjQIgAiAHOgCMAiACIAM2AvgBIAYQoRMaQQAhAwJAIAYoAgBBJUYNACABLQBIDQAgBhChEyIHRQ0AIAcoAgBBFEcNACAHLQAEQQRHDQAgAkEAOgDFAyACIAEtAI4DOgDEAyACIAEtAJ4DOgDUAyACIAEpAYIDNwC4AyACIAEpA5ADNwDGAyACIAEoApgDNgDOAyACIAEvAZwDOwDSAyACIAFBigNqIgMoAQA2AMADIAJBmQdqIAFBlwNqKQAANwAAIAJBlAdqIAFBkgNqKQEANwIAIAkgAykBADcCACACIAEpAYIDNwKEByABQYABaiACQbgDahDvCiACIAE2AoAHIAJBEGogARCyAiACKAIUIQMgAigCECAEEOUsRQ0AIAJB+AFqENUkDCELQQFxBEAgASgCfCEEIAJBqAE6AIAHIAEgBSAEIAQgBUsbIAUgBCAEIAVJGyACQYAHahCPIwsgAkGYA2oiBiACQYACaikDADcDACACQaADaiIKIAJBiAJqKAIANgIAIAJB6gpqIgkgAkGNAmoiBEECai0AADoAACACIAIpA/gBNwOQAyACIAQvAAA7AegKIAUgASgCfCIHIAUgB0kbIQQgAi0AjAIiC0EDRw0BIAQhAwwgCyABKAIoIQMgAUElNgIoIAEgASkDQDcDeCACQYwHaiABQTRqKQIANwIAIAJBlAdqIAFBPGooAgA2AgAgAiABKQIsNwKEByACIAM2AoAHIAJBgAdqEI4OIAEoAnwhBUEIQeAAELkuIgNFDRQgAyAEOgAMQQAhBCADQQA2AgAgAyAJIAUgBSAJSRs2AgggAyAJIAUgBSAJSxs2AgQMIAsgAkGYB2ogBikDADcDACACQaAHaiAKKAIANgIAIAJBpwdqIAktAAA6AAAgAiAFIAcgBSAHSxs2AowHIAIgBDYCiAcgAiACKQOQAzcDkAcgAiALOgCkByACIAIvAegKOwClByACIAM2AqgHIAJBAzYCgAcgAkGAB2oQ+S4hAwwVCyACKAK4AyEDDB0LIAIoAtQDIQUgAigC0AMhCSACKQPIAyEpIAIpA8ADISgLIAEoAnwhBgsgAiAFNgKkByACIAk2AqAHIAIgKTcDmAcgAiAoNwOQByACIAM2AowHIAIgBDYCiAcgAkERNgKAByACIA4gBiAGIA5JGzYCrAcgAiAOIAYgBiAOSxs2AqgHIAJBgAdqEPkuIQMMEQsgAkG4A2oQ9iogAkH4AWoQ2y0MGQsgAkGQA2oQ9ioLIAJB6ApqENstDBcLIAJBnANqIANBCGopAgA3AgAgAkGkA2ogA0EQaigCADYCACACKAKoByEFIAJBJTYCqAcgAiAFNgKQAyACIAIpA8AHNwP4ByACIAMpAgA3ApQDIAJBkANqEI4OIAQQoRMiBEUNASAEKAIAQQJHDQEgBC0ACA0BQQkLIAQtAAkgAkGAB2oQkRZHDQEgBhChExogAUH8AEHAACABKAIoQSVGG2ooAgAhCyAGEKETIgMEQCADKAIAQQ1GDQQLIAJBiAdqIAYQiQogAkGQAWogBhC3HiACQdjI3wA2AoQHIAJBNDoAgAcgAigCkAEgAigClAEgAkGAB2oQ7xshAyAGEKETIgRFDRUgBCgCAEEkRw0VIAEgASkDQDcDeCABKAIoIAFBJTYCKEEkRw0EIAEgASgCLBDFEAwVCyACQYAHahCRFgsgBhChExogASgCQCEEIAEoAnwhBSABKAIoIQcgAkGAB2ogARBlIAIoAoAHIgZBgICAgHhHDQMLIAIoAoQHIQMMEgsgASgCKCEDIAFBJTYCKCABIAEpA0A3A3ggAkGMB2ogAUE0aikCADcCACACQZQHaiABQTxqKAIANgIAIAIgASkCLDcChAcgAiADNgKAByABQSxqIQcgAkGAB2oQjg4CQAJAAkACQAJAAkACQAJAAkAgBhChEyIDRQ0AIAMoAgBBFEcNACADLQAEQQtGDQELIAYQoRMiA0UNASADKAIAQRRHDQEgAy0ABEEMRw0BC0ECIQkCQCAGEKETIgNFDQAgAygCAEEURw0AQQFBAiADLQAEQQtGGyEJCyABKAIoIQMgAUElNgIoIAEgASkDQDcDeCACQYwHaiAHQQhqKQIANwIAIAJBlAdqIAdBEGooAgA2AgAgAiAHKQIANwKEByACIAM2AoAHIAJBgAdqEI4OAkAgBhChEyIDRQ0AIAMoAgBBAkcNACADLQAIDQAgAy0ACUEJRg0CCyACQYgHaiAGEIkKIAJB2AFqIAYQtx4gAkHAzd8ANgKEByACQTQ6AIAHIAIoAtgBIAIoAtwBIAJBgAdqEO8bIQMgBhChEyIERQ0YIAQoAgBBJEcNGCABIAEpA0A3A3ggASgCKCABQSU2AihBJEcNAyABIAEoAiwQxRAMGAtBAyEJIAYQoRMiA0UNASADKAIAQQJHDQEgAy0ACA0BIAMtAAlBCUcNASABKAIoIQMgAUElNgIoIAEgASkDQDcDeCACQYwHaiAHQQhqKQIANwIAIAJBlAdqIAdBEGooAgA2AgAgAiAHKQIANwKEByACIAM2AoAHIAJBgAdqEI4OQQAhCQwBCyABKAIoIQMgAUElNgIoIAEgASkDQDcDeCACQYwHaiAHQQhqKQIANwIAIAJBlAdqIAdBEGooAgA2AgAgAiAHKQIANwKEByACIAM2AoAHIAJBgAdqEI4OCwJAIAYQoRMiAwRAIAMoAgBBC0YNAQsgAkGIB2ogBhCJCiACQZgBaiAGELceIAJB6M3fADYChAcgAkE0OgCAByACKAKYASACKAKcASACQYAHahDvGyEDIAYQoRMiBEUNFiAEKAIAQSRHDRYgASABKQNANwN4IAEoAiggAUElNgIoQSRHDQIgASABKAIsEMUQDBYLIAEoAighAyABQSU2AiggASABKQNANwN4IAJBjAdqIAdBCGopAgA3AgAgAkGUB2ogB0EQaigCADYCACACIAcpAgA3AoQHIAIgAzYCgAcgAkGAB2oQjg4gBhChExogAUH8AGogAUFAayABKAIoQSVGGygCACEFIAJB6ApqIAEQ2gYgAigC8AohAyACKQPoCiIoUA0VIAIgAigC9Ao2AvwCIAIgAzYC+AIgAiAoNwPwAiACQdABaiABQYjX3wBBvOngAEECEKgHIAIoAtQBIQQgAigC0AEEQCAoENAaIAQhAwwWCyABKAJ8IQogAkGIB2ogAkHwAmoQkxRBACEDIAJBpwdqQQA2AAAgAkEANgKkByACIAQ2AqAHIAIgBSAKIAUgCksbNgKEByACIAUgCiAFIApJGyIENgKAByACQbgDakEEciACQYAHaiIFQQRyQSYQgQkaIAJB5wNqIAJBrwdqLQAAOgAAIAIgAigAqwc2AOMDIAJBADoA4gMgAiAENgK4AwJAIAYQoRMiBEUNACAEKAIAQQJHDQAgBC0ACA0AIAQtAAlBAUcNACABKAIoIQMgAUElNgIoIAEgASkDQDcDeCACQYwHaiAHQQhqKQIANwIAIAJBlAdqIAdBEGooAgA2AgAgAiAHKQIANwKEByACIAM2AoAHIAUQjg4gAkHIAWogARCnAyACKALMASEDIAIoAsgBDQkLIAIgAzYC8AICQAJAIAYQoRMiBEUNACAEKAIAQQxHDQAgASgCKCEEIAFBJTYCKCABIAEpA0A3A3ggAkGMB2ogB0EIaikCADcCACACQZQHaiAHQRBqKAIANgIAIAIgBykCADcChAcgAiAENgKAByACQYAHahCODgJAIAYQoRMiBEUNACAEKAIAQRRHDQAgBC0ABEELRg0CCwJAIAYQoRMiBEUNACAEKAIAQRRHDQAgBC0ABEEMRg0CC0EDIQogBhChEyIERQ0IIAQoAgBBF0cNCCABKAIoIQQgAUElNgIoIAEgASkDQDcDeCACQYwHaiAHQQhqKQIANwIAIAJBlAdqIAdBEGooAgA2AgAgAiAHKQIANwKEByACIAQ2AoAHIAJBgAdqEI4OQQAhCgwICyACQYgHaiAGEIkKIAJBoAFqIAYQtx4gAkHYy98ANgKEByACQTQ6AIAHIAIoAqABIAIoAqQBIAJBgAdqEO8bIQMgBhChEyIERQ0IIAQoAgBBJEcNCCABIAEpA0A3A3ggASgCKCABQSU2AihBJEcNAyABIAEoAiwQxRAMCAtBAiEKAkAgBhChEyIERQ0AIAQoAgBBFEcNAEEBQQIgBC0ABEELRhshCgsgASgCKCEFIAFBJTYCKCACQYwHaiIOIAdBCGopAgA3AgAgAkGUB2oiDSAHQRBqKAIANgIAIAIgBykCADcChAcgASkDQCEoIAcgAkGQA2oiEUEkEIEJIQQgASAoNwN4IAIgBTYCgAcgAkGAB2oiBRCODgJAIAYQoRMiD0UNACAPKAIAQRdHDQAgASgCKCEPIAFBJTYCKCAOIARBCGopAgA3AgAgDSAEQRBqKAIANgIAIAIgBCkCADcChAcgASkDQCEoIAQgEUEkEIEJGiABICg3A3ggAiAPNgKAByAFEI4ODAcLIAJBiAdqIAYQiQogAkHAAWogBhC3HiACQcjH3wA2AoQHIAJBNDoAgAcgAigCwAEgAigCxAEgAkGAB2oQ7xshAyAGEKETIgVFDQcgBSgCAEEkRw0HIAEoAiggAUElNgIoIAEoAiwhByABKQNAISggBCACQZADakEkEIEJGiABICg3A3hBJEcNAyABIAcQxRAMBwtBiYThAEEoQdjN3wAQ1SEAC0GJhOEAQShBgM7fABDVIQALQYmE4QBBKEGQzt8AENUhAAtBiYThAEEoQaDO3wAQ1SEAC0GJhOEAQShB0M7fABDVIQALIAEoAnwhAyACIAIpAoQHNwOIByACIAY2AoQHIAJBBTYCgAcgAiAFIAQgB0ElRhsiBCADIAMgBEkbNgKUByACIAQgAyADIARLGzYCkAcgAkGAB2oQ+S4hAwwGCyACQbgBaiABQaDH3wAQhA4gAigCvAEhBSACKAK4AQRAIAUhAwwBCyACIAU2AugKAkACQAJAAkACQCAGEKETIgRFDQACQAJAIAQoAgBBDmsOAgIAAQsgASgCKCEEIAFBJTYCKCABIAEpA0A3A3ggAkGMB2ogB0EIaikCADcCACACQZQHaiAHQRBqKAIANgIAIAIgBykCADcChAcgAiAENgKAByACQYAHahCODgwBCyAGEKETGiAGKAIAQSVGDQAgAS0ASA0AIAJBiAdqIAYQiQogAkGwAWogBhC3HiACQcDo4AA2AoQHIAJBNDoAgAcgAigCsAEgAigCtAEgAkGAB2oQ7xshAyAGEKETIgRFDQQgBCgCAEEkRw0EIAEgASkDQDcDeCABKAIoIAFBJTYCKEEkRw0BDAMLIAYQoRMiBARAIAQoAgBBDkYNAgsgAkGIB2ogBhCJCiACQagBaiAGELceIAJBsMjfADYChAcgAkE0OgCAByACKAKoASACKAKsASACQYAHahDvGyEDIAYQoRMiBEUNAyAEKAIAQSRHDQMgASABKQNANwN4IAEoAiggAUElNgIoQSRGDQJBiYThAEEoQcDO3wAQ1SEAC0GJhOEAQShBsM7fABDVIQALIAEoAighBCABQSU2AiggASABKQNANwN4IAJBjAdqIAdBCGopAgA3AgAgAkGUB2ogB0EQaigCADYCACACIAcpAgA3AoQHIAIgBDYCgAcgAkGAB2oiBxCODiABKAJ8IQQgAkH4AWoiBiACQbgDakEqEIEJGiACQeQGaiIOIAJB4wNqIg1BBGotAAA6AAAgAiANKAAANgLgBiACIAsgBCAEIAtJGzYCjAcgAiALIAQgBCALSxs2AogHIAJBkAdqIAZBKhCBCRogAkG/B2ogDi0AADoAACACQc4HaiACQdQCai8BADsBAEEAIQQgAkEAOgC6ByACIAo6AMkHIAIgCToAyAcgAiAFNgLEByACIAM2AsAHIAIgAigC4AY2ALsHIAIgAigB0AI2AcoHIAJBEDYCgAcgBxD5LiEDDBELIAEgASgCLBDFEAsgAkHoCmoQ9S0LIAJB8AJqEPUtCyACQbgDahCRKgwMCwNAIAJBgAdqIAFBAhCfCyACLQCABw0HIAItAIEHQQFxBEAgAigCzAIhCiACKALIAiEFDAMLIAYQoRMaIAYQoRMaIAFB/ABBwAAgASgCKEElRhtqKAIAIQ0CQAJAAkACQAJAAn8CQCABLQD4AkECRgRAIAEtAIIDISUgAkG4A2oiAyABEOICIAJBAToA4AYgAiABKQCDAzcA4QYgAiABKQCLAzcA6QYgAiABKQCTAzcA8QYgAiABKACbAzYA+QYgJCACQeAGahDvCiAUEKETGkH8AEHAACACKALgA0ElRhsgA2ooAgAhEkEAIQUCQCAUEKETIgNFDQAgAygCAEEHRw0AIAkgESkCADcCACAJQQhqIBFBCGopAgA3AgAgCUEQaiARQRBqKAIANgIAIAIoAuADIQMgAkElNgLgAyACIAM2AoAHIAIgAikD+AM3A7AEIAJBgAdqEI4OQQEhBSACKAK0BCEEIAIoArAEIQoLIAJByApqIAJBuANqENoGIAIpA8gKUARAIAIoAtAKIQMMBgsgAkGAB2oiEyACQcgKahCTFCACQfAKaiIYIAlBCGoiICkCADcDACACQcYKaiImIB9BAmotAAA6AAAgAiAJKQIANwPoCiACIB8vAAA7AcQKIAIoAoAHIQMgAi0AlAciJ0ECRg0FIB4gAikD6Ao3AgAgHSACLwHECjsAACAeQQhqIBgpAwA3AgAgHUECaiAmLQAAOgAAIAIgJzoAvAogAiADNgKoCgJAIBQQoRMiA0UNACADKAIAQRdHDQAgCSARKQIANwIAICAgEUEIaikCADcCACAJQRBqIBFBEGooAgA2AgAgAigC4AMhAyACQSU2AuADIAIgAzYCgAcgAiACKQP4AzcDsAQgExCODiACQQE6ALwKIAIgAigCsAoiAyACKAK0BCITIAMgE0kbNgKwCiACIAMgEyADIBNLGzYCtAoLAkACQCAUEKETIgMEQCADKAIAQRNGDQELICIgFBCJCiACQYgBaiAUELceIAJBoMffADYChAcgAkE0OgCAByACKAKIASACKAKMASACQYAHahDvGyEDIBQQoRMiBEUNBiAEKAIAQSRGDQEMBgsgCSARKQIANwIAICAgEUEIaikCADcCACAJQRBqIBFBEGooAgA2AgAgAigC4AMhAyACQSU2AuADIAIgAzYCgAcgAiACKQP4AzcDsAQgAkGAB2oiExCODiAFRQ0CIAIoArQEIQUgAkHoCmogAkGoCmoQrRMgF0EYaiACQYALaikDADcCACAXQRBqIAJB+ApqKQMANwIAIBdBCGogGCkDADcCACAXIAIpA+gKNwIAQQhBKBC5LiIDRQ0KIANBADYCACADQQRqIBNBJBCBCRogEiAFIAUgEkkbIRMgEiAFIAUgEksbIQVBAiESQQAMAwsgAiACKQP4AzcDsAQgAigC4AMgAkElNgLgA0EkRw0DIAJBuANqIAIoAuQDEMUQDAQLIAJBBzYCkAMMBgsgAkGAB2ogAkGoCmoQrRMgAkHgCmogG0EIaigCADYCACACIBspAgA3A9gKIAIoAowHIQQgAigCiAchCiACKAKEByETIAIoAoAHIQVBACESIAIoApAHCyEYIBwgAikD2Ao3AgAgHEEIaiACQeAKaigCADYCACACIBg2ApACIAIgBDYCjAIgAiAKNgKIAiACIBM2AoQCIAIgBTYCgAIgAiADNgL8ASACIBI2AvgBIAJBkANqIAJB+AFqQSgQgQkaIAJBgAdqIgMgAkG4A2pBqAMQgQkaIAEQkRYgASADQagDEIEJIQMgAiAlOgDoCiACIAMpAIMDNwDpCiACIAMpAIsDNwDxCiACIAMpAJMDNwD5CiACIAMoAJsDNgCBCyAhIAJB6ApqEO8KDAQLQYmE4QBBKEGY298AENUhAAsgAkEINgL4ASACIAM2AvwBIAIpA6gKENAaDAELIAIgAzYC/AEgAkEINgL4AQsgAkEHNgKQAyAjEIkrIAJBuANqEJEWCwJAAkACQAJ/AkAgBhChEyIDBEAgAygCAEEHRg0BCyACQfgAaiABEKcDIAIoAnwhBCACKAJ4RQ0DIAQMAQsgCSALKQIANwIAIAEoAighAyABQSU2AiggASABKQNANwN4IAlBCGogC0EIaikCADcCACAJQRBqIAtBEGooAgA2AgAgAiADNgKAByACQYAHahCODiACQYABaiABEKcDIAIoAoQBIRIgAigCgAFFDQEgEgshAyACQZADahDvLEEIIQogByEEDAILIAEoAnwhBSACKAKUAyEDIAIoApADIQpBCEHgABC5LiIERQ0DIAQgEjYCBCAEQQk2AgAgBCANIAUgBSANSRsiFjYCDCAEIA0gBSAFIA1LGyIVNgIIIAJB+AJqIA5BCGopAwA3AwAgAkGAA2ogDkEQaikDADcDACACQYgDaiAOQRhqKQMANwMAIAIgDikDADcD8AIMAQsCQCAGEKETIgMEQCADKAIAQRdGDQELIAJB+AJqIA5BCGopAwA3AwAgAkGAA2ogDkEQaikDADcDACACQYgDaiAOQRhqKQMANwMAIAIgDikDADcD8AIgDSABKAJ8IgMgAyANSxshFSANIAMgAyANSRshFiACKAKUAyEDIAIoApADIQoMAQsgCSALKQIANwIAIAEoAighAyAB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QZABahCODgJAAkACQCAMEKETIgUEQCAFKAIAQQxGDQELIAhBGGogARCnAyAIKAIcIQUgCCgCGA0FIAggBTYCWCAMEKETIgsEQCALKAIAQQxGDQILIAggAzYC8AEgCEGYAWogDBCJCiAIQQhqIAwQtx4gCEHYy98ANgKUASAIQTQ6AJABIAgoAgggCCgCDCAIQZABahDvGyEDIAwQoRMiBEUNCyAEKAIAQSRGDQQMCwsgECAHKQIANwIAIAEoAighBSABQSU2AiggASABKQNANwN4IAQgAikCADcCACAGIAooAgA2AgAgCCAFNgKQASAIQZABahCODiAIQSBqIAMQ5REgASgCfCEFIAgoAiAhAkEIQeAAELkuIgRFDQEgBCADNgIEIARBBjYCACAEIAIgBSACIAVLGzYCDCAEIAIgBSACIAVJGzYCCCAEIQMMAgsgECAHKQIANwIAIAEoAighCyABQSU2AiggASABKQNANwN4IAQgAikCADcCACAGIAooAgA2AgAgCCALNgKQASAIQZABahCODiAIQRBqIAMQ5REgASgCfCECIAgoAhAhBkEIQeAAELkuIgRFDQAgBCAJOgAUIAQgBTYCCCAEIAM2AgQgBEEPNgIAIAQgBiACIAIgBkkbNgIQIAQgBiACIAIgBksbNgIMIAQhAwwBCwsACyABIAEpA0A3A3ggASgCKCABQSU2AihBJEcNBSABIAEoAiwQxRAMBgsgCCADNgLwASAFIQMMBgtBiYThAEEoQeDS3wAQ1SEAC0GJhOEAQShBiNPfABDVIQALQYmE4QBBKEGY098AENUhAAtBiYThAEEoQejJ3wAQ1SEAC0GJhOEAQShBkNrfABDVIQALIAhB2ABqEMIHCyAIQfABahDCBwwECyAIQQI6AIoBIAggAzYCWAwCCyABKAIoIQMgAUElNgIoIAEgASkDQDcDeCAIQZwBaiABQTRqKQIANwIAIAhBpAFqIAFBPGooAgA2AgAgCCABKQIsNwKUASAIIAM2ApABIAhBkAFqIgcQjg4gCEFAayABENwBIAgoAkQhAyAIKAJADQEgASgCfCEBIAhBowFqIAhB2gBqLQAAOgAAIAggBToAoAEgCCAILwBYOwChASAIIAQgASABIARJGzYCnAEgCCAEIAEgASAESxs2ApgBIAggAzYClAEgCEEONgKQASAHEPkuIQMLQQAhGQwBC0EBIRkLIAAgAzYCBCAAIBk2AgAgCEGAAmokAAvxEwINfwR+IwBB0AFrIgIkACABQYoDaiIFKQEAIQ8gAUGSA2oiAygBACEEIAEpAYIDIRAgAS8BlgMhByABLQCYAyEGIAEoAZoDIQggAS0AngMhCiACQThqIAUpAQA3AgAgAkFAayADKQEANwIAIAJBxQBqIAFBlwNqKQAANwAAIAIgCjoApAEgAiAINgCgASACQQE6AJ8BIAIgBjoAngEgAiAHOwCcASACIAQ2AJgBIAIgDzcAkAEgAiAQNwCIASACIAEpAYIDNwIwIAFBgAFqIgYgAkGIAWoiCRDvCiACIAE2AiwgAUEoaiIEEKETGiABQfwAQcAAIAEoAihBJUYbaigCACEFAkAgBBChEyIDRQRAIAEoAtgCIQEgAkEAOgCIASABIAEgCRDvGyEBIABBBTYCACAAIAE2AgQMAQsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAygCACIDQRtrDgoFAQYHAQEBAQECAAsgA0ECRg0CIANBC0YNAwsgAkGUAWogBBCJCiACQQhqIAQQtx4gAkHFADYCkAEgAkGUleAANgKMASACQTA6AIgBIAIoAgggAigCDCACQYgBahDvGyEFIAQQoRMiA0UNDyADKAIAQSRGDQYMDwsgASABKQNANwN4IAEoAiggAUElNgIoQSRHDQYgASgCLCEBIABBBTYCACAAIAE2AgQMDwsgASABKQNANwN4IAEoAiggAUElNgIoQQJHDQYgAkGQAWogAUE4aikDADcDACACIAEpAzA3A4gBIAJBiAFqEPAUIQ8gBSABKAJ8IgEgASAFSxshBCAFIAEgASAFSRshBUEAIQFCACEQDAwLIAEoAighAyABQSU2AiggASABKQNANwN4IAJBlAFqIgcgAUE0aikCADcCACACQZwBaiIJIAFBPGooAgA2AgAgAiABKQIsNwKMASACIAM2AogBIAJBiAFqIgsQjg4gBBChExogAUH8AGogAUFAayABKAIoQSVGGygCACEIIAJBoQFqIAFBggNqIgpBFWopAAA3AAAgCSAKQRBqKQEANwIAIAcgCkEIaikBADcCACACQQE6AGYgAiABKAGCAzYAYCACIAEvAYYDOwBkIAIgASkAiQM3AGcgAiABKQCR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QCALRQ0DQRQhCkEQDAELIAUoAhAhBCAFKAIUIQZBu/LgAEEHEIkPIRogDUHhADoAcCANIBo3A3ggASAEIAYgDUHwAGoQjyMgDS0ALEEBcUUNAiAFKAIAQQJ0IgRB4IzkAGooAgAhCiAEQciM5ABqKAIACyELIAUgCmooAgAhBCAFIAtqKAIAIQZB153gAEEIEIkPIRogDUHhADoAcCANIBo3A3ggASAGIAQgDUHwAGoQjyMMAQsgBSACQQJ0IgJBsIzkAGooAgBqKAIAIQQgBSACQZiM5ABqKAIAaigCACANQd8AOgBwIAQgDUHwAGoQ7xshAgJAIAFBKGoQoRMiBEUNACAEKAIAQSRHDQAgASABKQNANwN4IAEoAiggAUElNgIoQSRGBEAgASABKAIsEMUQDAELQYmE4QBBKEG8398AENUhAAsgAEENNgIAIAAgAjYCBAwBCyABQShqIQQCQAJAAkAgAS0A+AJBAkcNACANLQApDQAgBBChEyIGBEAgBigCAEEIRg0CCyANQQA6AC4MAgsgDUEAOgAuDAELIAEoAighBiABQSU2AiggASABKQNANwN4IA1B/ABqIAFBNGopAgA3AgAgDUGEAWogAUE8aigCADYCACANIAEpAiw3AnQgDSAGNgJwIA1B8ABqEI4OIA1BAToALgsgDUEYaiABEOUTIA0oAhwhCiANKAIYRQRAIA1BAToANSANQQE6AEEgDSABLQCTAzoAQCANIAEoAYIDNgAvIA0gAS8BhgM7ADMgDSABKQCJAzcANiANIAEvAJEDOwA+IA0gASkAlQM3AEIgDSABLwCdAzsASiANQeUAaiABQZcDaikAADcAACANQeAAaiABQZIDaikBADcCACANQdgAaiABQYoDaikBADcCACANIAEpAYIDNwJQIAFBgAFqIA1BL2oQ7wogDSABNgJMIA1B+ABqIAVBCGopAwA3AwAgDUGAAWogBUEQaikDADcDACANQYgBaiAFQRhqKQMANwMAIA1BmAFqIANBCGooAgA2AgAgDSAHNgKcASANIAo2AsQBIA0gBSkDADcDcCANIAMpAgA3A5ABIA0gDUEgajYCoAEgDSANQShqNgKkASANIA1BK2o2AsABIA0gDUEqajYCvAEgDSANQSlqNgK4ASANIA1BLmo2ArQBIA0gDUEtajYCsAEgDSANQSxqNgKsASANIA1BJ2o2AqgBQQAhBSAEEKETIgZFDQIgBigCAEEVRw0CIAYtAAQNAgJAIAQQoRMiBUUEQCABKALYAiEBIA1BADoAyAEgASABIA1ByAFqEO8bIQUMAQsgBSgCAEEkRgRAIAEgASkDQDcDeCABKAIoIAFBJTYCKEEkRgRAIAEoAiwhBQwCC0GJhOEAQShBzN/fABDVIQALIAEoAighBSABQSU2AiggASABKQNANwN4IA1B1AFqIAFBNGopAgA3AgAgDUHcAWogAUE8aigCADYCACANIAEpAiw3AswBIA0gBTYCyAEgDUHIAWoQjg4gDUEQaiABELkIIA0oAhQhBSANKAIQRQ0DCyANQZABaiANQcQBaiAAQQ02AgAgACAFNgIEAkAgDSgCcEEFRgRAIA0pA3gQ0BoMAQsgDUHwAGoQnSALEPEtEOAtDAMLIABBDTYCACAAIAo2AgQLIAUQ3ykgAxDgLQwCCwJAIAQQoRMiBkUNAAJAAkAgBigCAEEOaw4CAgABCyABKAIoIQQgAUElNgIoIAEgASkDQDcDeCANQdQBaiABQTRqKQIANwIAIA1B3AFqIAFBPGooAgA2AgAgDSABKQIsNwLMASANIAQ2AsgBIA1ByAFqEI4ODAELIAQQoRMaIAQoAgBBJUYNACABLQBIDQAgDUEIaiAEELceIA0oAgwhBCANKAIIIQYgDUH1ADoAyAEgASAGIAQgDUHIAWoQjyMLIAcoAgBBAUYEQCAAIAMpAgA3AjAgAEE4aiADQQhqKAIANgIAIA1B1AFqIA1B+ABqKQMANwIAIA1B3AFqIA1BgAFqKQMANwIAIA1B5AFqIA1BiAFqKQMANwIAIA0gDSkDcDcCzAEgASgCfCEBIA0oAiAhAiANLQAoIQMgDS0ALCEEIA0tAC0hBiANLQAuIQcgDS0AJyEIIABBDDYCACAAQQRqIA1ByAFqQSQQgQkaIAAgCDoASCAAIAc6AEcgACAGOgBGIAAgBDoARSAAIAM6AEQgACAKNgJAIAAgBTYCPCAAIAIgASABIAJJGzYCLCAAIAIgASABIAJLGzYCKAwBCwJ/AkACQCANKAJwQQVHBEAgDSgCICICIAEoAnwiAyACIANLGyELIAIgAyACIANJGyEEIA0oAowBIQggDSgCiAEhCSANKAKEASEMIA0oAoABIQcgDSgCfCEDIA0tACwiAkEBRw0CIAUNAQwCC0EDIQZBCCEOIA0oAoQBIQMgDS0AJ0EDRwRAIAEoAnwhBCANKAIgIQIgDUG1AToAyAEgASACIAQgAiAESRsiBCADIAMgBEsbIAQgAyADIARJGyANQcgBahCPIyANLQAnIQYLIA1B1AFqIA1B+ABqIgRBCGooAgA2AgAgDSAEKQIANwLMASANKAIgIgQgASgCfCIBIAEgBEsbIQcgBCABIAEgBEkbIQxBACEJIA0tAC0hDyANLQApIRAgDSkClAEhGiANKAKQASELIA0tACghESAFIQggCiEEIA0tACohBSANLQAuDAILIA1BogE6AMgBIAEgBCALIA1ByAFqEI8jIA0tACwhAgsgDUHUAWogDUH4AGooAgA2AgAgDSANKQNwNwLMASAFQRB2IQFBByEOIA0tAC4hEiANLQArIRMgDS0AKiEUIA0tAC0hFSANLQApIRYgDS0AJyEXIA0tAJsBIQ8gDS0AmgEhECANLQCZASERIA0tAJgBIQYgDSkDkAEhGiANLQAoIRggBUEIdgshGSAAIA42AgAgACANKQLIATcCBCAAIBc6AEsgACASOgBKIAAgEzoASSAAIBQ6AEggACAVOgBHIAAgFjoARiAAIAI6AEUgACAYOgBEIAAgCjYCQCAAIAE7AT4gACAZOgA9IAAgBToAPCAAIA86ADsgACAQOgA6IAAgEToAOSAAIAY6ADggACAaNwMwIAAgCzYCLCAAIAQ2AiggACAINgIkIAAgCTYCICAAIAw2AhwgACAHNgIYIAAgAzYCFCAAQQxqIA1B0AFqKQIANwIACyANQcwAahDlLAsgDUHwAWokAAvtEQITfwF+IwBB8ABrIgIkACACQQA2AhwgAkKAgICAwAA3AhQgAUHMAmohDSABQfQCaiEHIAFByAJqIQQgAUEoaiELIAJByABqQQRyIQUgAkHMAGohEUEIIRJBBCETAkACQAJAA0AgAkHIAGogARDSBCACLQBIBEAgAigCTCEGDAILAkACQAJAAkACQCACLQBJQQFxDQACQCAEKAIAIgNBJUcNACABKALwAiEDIAFBJTYC8AICQCADQSVHBEAgBSAHKQIANwIAIAVBIGogB0EgaigCADYCACAFQRhqIAdBGGopAgA3AgAgBUEQaiAHQRBqKQIANwIAIAVBCGogB0EIaikCADcC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AkACQAJAAkAgAQ4MCgABAgMEBQYHCCcJJwsgAEEIahD6DQwmCyMAQRBrIgIkAAJAIABBCGoiASgCAEUEQCABKQMIIgVCA4NCAFINASACIAWnIgE2AgwgAkEMahDQBiABIAEoAgAiBEEBazYCACAEQQFHDQEgASABKAIgEI0nDAELIAEoAgQiARDqASABQcAAQQgQohgLIAJBEGokAAwlCyAAQQRqENcsDCQLAkAgAEEEaigCACIBKAIAQQNHBEAgASgCICICEOoBIAJBwABBCBCiGCABEKUPDAELIAEoAhAiAhDqASACQcAAQQgQohggAUEEahDxISABKAIEIAFBCGooAgAQvyogASgCICICRQ0AIAIQvCIgAigCACACQQRqKAIAEMMqIAJBFEEEEKIYCyABQShBCBCiGAwjCyAAQQRqEI0oDCILIABBBGoQjSgMIQsgAEEEahDXLAwgCyAAQQRqEI0oDB8LIABBBGoiASgCACICEOoBIAJBwABBCBCiGCABKAIEIgEQvCIgASgCACABQQRqKAIAEMMqIAFBFEEEEKIYDB4LAkACQCAAKAIEDgIAAR8LIAAoAgwiASAAKAIQEKElIAAoAgggARDFKgwdCyAAQQhqEMEQIAAoAgggACgCDBDHKgwcCyAAQQhqEKUUDBwLIAAoAigiARDqASABQcAAQQgQohggAEEIahClDwwcCyAAKAIIRQRAIAApAxAiBUIDg0IAUg0cIAMgBaciADYCDCADQQxqENAGIAAgACgCACIBQQFrNgIAIAFBAUcNHCAAIAAoAiAQjScMHAsgAEEMahDXLAwbCyAAKAIEIgEQ6gEgAUHAAEEIEKIYIAAoAggiARDqASABQcAAQQgQohggACgCDCIAEOoBIABBwABBCBCiGAwaCyAALQAYQQVGBEAgACgCECIBEOoBIAFBwABBCBCiGAsgAEEEahDxISAAKAIEIAAoAggQvyogACgCKCIARQ0ZIAAQvCIgACgCACAAQQRqKAIAEMMqIABBFEEEEKIYDBkLIAAoAhAiARDqASABQcAAQQgQohggACgCBCIBQYCAgIB4RwRAIABBBGoQ8SEgASAAKAIIEL8qCyAAKAIgIgBFDRggABC8IiAAKAIAIABBBGooAgAQwyogAEEUQQQQohgMGAsgACgCCCIBIAAoAgwQoiUgACgCBCABEMMq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AkEmTxtBAWsOJAABAgMEBQYHCAkKCwwNDg8QERITJBQVFhckGBkaGxwdHh8gISQLIAAoAggiASAAKAIMEK4hIAAoAgQgARC/KgwjCyAAQQRqELMZIAAoAgQgACgCCBDAKgwiCyMAQRBrIgIkAAJAIABBCGoiAS0AFEECRg0AIAEpAwAiBUIDg0IAUg0AIAIgBaciADYCDCACQQxqENAGIAAgACgCACIEQQFrNgIAIARBAUcNACAAIAAoAiAQjScLIAEoAhgiAEEEaiIBKAIAIABBCGooAgAQ6ScgACgCACABKAIAEMEqIABBEGoiASgCACAAQRRqKAIAEJIlIAAoAgwgASgCABDAKiAAKAIYQYCAgIB4RwRAIABBHGoiASgCACAAQSBqKAIAEOYnIAAoAhggASgCABDCKgsgACgCPCIBBEAgARD7DiABKAIAIAFBBGooAgAQwiogAUEUQQQQohgLIAAoAkAiAQRAIAEoAgAiBBCDBCAEQeAAQQgQohggAUEMQQQQohgLIABByABBBBCiGCACQRBqJAAMIQsgACgCBCIAEOsBIABBwABBCBCiGAwgCyAAKAIMIgAQ6wEgAEHAAEEIEKIYDB8LIAAoAgQiARDrASABQcAAQQgQohggACgCCCIAEOsBIABBwABBCBCiGAweCwJAAkACQAJAAkACQAJAAkACQAJAAkAgAQ4MCgABAgMEBQYHCCcJJwsgAEEIahDvDQwmCyMAQRBrIgIkAAJAIABBCGoiASgCAEUEQCABKQMIIgVCA4NCAFINASACIAWnIgE2AgwgAkEMahDQBiABIAEoAgAiBEEBazYCACAEQQFHDQEgASABKAIgEI0nDAELIAEoAgQiARDrASABQcAAQQgQohgLIAJBEGokAAwlCyAAQQRqELQsDCQLAkAgAEEEaigCACIBKAIAQQNHBEAgASgCICICEOsBIAJBwABBCBCiGCABEJUPDAELIAEoAhAiAhDrASACQcAAQQgQohggAUEEahDtISABKAIEIAFBCGooAgAQvyogASgCICICRQ0AIAIQsyIgAigCACACQQRqKAIAEMMqIAJBFEEEEKIYCyABQShBCBCiGAwjCyAAQQRqEPQnDCILIABBBGoQ9CcMIQsgAEEEahC0LAwgCyAAQQRqEPQnDB8LIABBBGoiASgCACICEOsBIAJBwABBCBCi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GSAAKAJ8IAEoAgAQxiogACgCeCIBBEAgARCzIiABKAIAIAFBBGooAgAQwyogAUEUQQQQohgLIABBkAFqEPMSIAAoApABIABBlAFqKAIAEMUqIAAtADxBBkcEQCAAQRBqEP0SCyAAQaABQQgQohgMCwsgAEEEahDzEiAAKAIEIAAoAggQxSoMCgsgACgCBCIBEOsBIAFBwABBCBCiGCAAKAIIIgAQgwQgAEHgAEEIEKIYDAkLIAAoAgQiABDrASAAQcAAQQgQohgMCAsgACgCBCIAEOsBIABBwABBCBCiGAwHCyAAKAIEIgEQ6wEgAUHAAEEIEKIYIAAoAggiABCDBCAAQeAAQQgQohgMBgsgACgCBCIBEOsBIAFBwABBCBCiGCAAKAIIIgAQsyIgACgCACAAQQRqKAIAEMMqIABBFEEEEKIYDAULIAAoAgQiARDrASABQcAAQQgQohggACgCCCIAEIMEIABB4ABBCBCiGAwECyAAKQMIIgVCA4NCAFINAyADIAWnIgA2AgwgA0EMahDQBiAAIAAoAgAiAUEBazYCACABQQFHDQMgACAAKAIgEI0nDAMLAkAgACgCBCIBKAIAQQNHBEAgARDvDQwBCyABQQRqIgAoAgwiAhDrASACQcAAQQgQohggABDtISAAKAIAIAAoAgQQvyogACgCHCIABEAgABCzIiAAKAIAIABBBGooAgAQwyogAEEUQQQQohgLCyABQShBCBCiGAwCCyAAKAIcIgFFDQAgASgCACICEIMEIAJB4ABBCBCiGCABQQxBBBCiGAsgACgCOCIAEOsBIABBwABBCBCiGAsgA0EQaiQAC6URAQh/IwBB8ABrIgMkAAJAAkACQAJAAkACQAJAA0ACQAJAAkACQAJAIAIoAgBBAWsOBwEGAAIDCAQACyADQQE6AFQgA0EANgJQIANCgICAgBA3AkggACADQcgAahCpIwwLCyACKAIEIQQgA0EIaiACKAIIIgJBAUEBEOMdIAMoAgghBiADKAIMIAQgAhCBCSEEIANBAToAVCADIAI2AlAgAyAENgJMIAMgBjYCSCADQShqIgIgA0HIAGoQqSMgASgCCCABLQAQIAIQuikgAEEIaiADQTBqKAIANgIAIAAgAykCKDcCAAwKCyADQRxqIAEgAigCDBDsASACKAIEIQYgAigCECIERQRAIAItABQCQCAGBEAgAigCCEEBRg0BCyADQRxqEKYhC0EAIQIgA0EANgJQIANCgICAgBA3AkggA0EBOgBUIANBKGogA0HIAGoQqSNBAXENBQNAIAJBDEYNBiADQRxqIAJqIgQoAgAhBiAEIANBKGogAmoiBCgCADYCACAEIAY2AgAgAkEEaiECDAALAAsgBCABKAIEIgcgBCAHSRshBQJAIAZFDQAgBCACKAIIRw0AIANBAToAVCADQQA2AlAgA0KAgICAEDcCSCADQTxqIANByABqEKkjA0ACQCAFRQ0AIANBPGoiBhDwFQ0AIANBMGogA0HEAGooAgA2AgAgAyADKQI8NwMoIANByABqIgIgA0EcahC/DCAGIAEgA0EoaiACEPsCIAVBAWshBSACEJMsDAELCyAEIAdNDQkgA0E8ahCmIQwJCyADQQE6AFQgA0EANgJQIANCgICAgBA3AkggA0E8aiADQcgAahCpIwNAIAVFDQggA0E8aiIEEPAVDQggA0EwaiADQcQAaigCADYCACADIAMpAjw3AyggA0HIAGoiAiADQRxqEL8MIAQgASADQShqIAIQ+wIgBUEBayEFIAIQkywMAAsACyACKAIEIQIMAQsLIAIoAgxBHGwhBSABLQAQIQggASgCDCEKIAIoAgghB0EEIQRBACECA0AgBUUgAkGAgICAeEZyRQRAIAMgBjYCMCADIAQ2AiwgAyACNgIoIANByABqIgkgASAHEOwBIANBPGogCiAIIANBKGogCRCRCCAFQRxrIQUgB0EcaiEHIAMoAjwhAiADKAJAIQQgAygCRCEGIAkQkywMAQsLIAAgBjYCCCAAIAQ2AgQgACACNgIADAYLIAIoAgQNAiACKAIMIgQgAigCEEEDdCIFaiEIIAEoAgAhBiAEIQICQANAIAUEQCAGIAdJDQIgBUEIayEFIAIoAgQgAigCAGsgB2pBAWohByACQQhqIQIMAQsLIAYgB0kNACADQQA2AiQgA0KAgICAwAA3AhwDQCAEIAhGBEAgASgCCCABLQAQIANBHGoQuikgAEEIaiADQSRqKAIANgIAIAAgAykCHDcCAAwIBSAEQQhqIAQoAgQhByAEKAIAIQJBACEFAkADQCAFQQFxIAIgB0tyDQEgA0EANgI4IANBEGogAiADQThqEN4MIAMoAhQhBCADKAIQIANBADYCRCADQoCAgIAQNwI8IANBAzoAaCADQSA2AlggA0EANgJkIANBlLvEADYCYCADQQA2AlAgA0EANgJIIAMgA0E8ajYCXCAEIANByABqEJowRQRAIANBMGogA0HEAGooAgA2AgAgAyADKQI8NwMoIANBAToANCACQYDAAyACQQFqIAJB/68DRhsgAiAHTyIFGyECIANBHGogA0EoahCFFQwBCwtB6OHgAEE3IANBKGpBrLvEAEHs4uAAELEUAAshBAwBCwALAAsgAEGAgICAeDYCAAwFCyADQdAAaiADQSRqKAIANgIAIAMgAykCHDcDSCAAIAEoAgwgAS0AECADQcgAaiADQShqIgAQkQggABCTLAwECyACKAIMIQQgAigCCCEFIAEtABBFBEAgA0EBOgBUIANBADYCUCADQoCAgIAQNwJIIARBHGwhAiADQTxqIANByABqEKkjA0ACQCACRQ0AIANBPGoiBhDwFQ0AIANBMGogA0HEAGooAgA2AgAgAyADKQI8NwMoIANByABqIgQgASAFEOwBIAYgASADQShqIAQQ+wIgAkEcayECIAVBHGohBSAEEJMsDAELCyAAIAMpAjw3AgAgAEEIaiADQcQAaigCADYCAAwECyADQQE6AFQgA0EANgJQIANCgICAgBA3AkggBEEcbCECIAVBHGshBCADQTxqIANByABqEKkjA0ACQCACRQ0AIANBPGoiBRDwFQ0AIANBMGogA0HEAGooAgA2AgAgAyADKQI8NwMoIANByABqIgYgASACIARqEOwBIAUgASADQShqIAYQ+wIgAkEcayECIAYQkywMAQsLIAAgAykCPDcCACAAQQhqIANBxABqKAIANgIADAMLIAIoAgwiBiACKAIQQQF0IgVqIQggASgCACEEIAYhAgJAAkACQANAIAUEQCAEIAdJDQIgAi0AASIKIAItAAAiCUkNBCACQQJqIQIgBUECayEFIAogCWtB/wFxIAdqQQFqIQcMAQsLIAQgB0kNACADQQA2AjAgA0KAgICAwAA3AigMAQsgAEGAgICAeDYCAAwECwNAIAYgCEYEQCABKAIIIAEtABAgA0EoahC6KSAAQQhqIANBMGooAgA2AgAgACADKQIoNwIADAUFIAYtAAEhBSAGLQAAIQJBACEEA0ACQCAEQQFxDQAgBSACQf8BcSIHSQ0AQQFBARCDKSIEIAI6AAAgA0EBOgBUIANBATYCUCADIAQ2AkwgA0EBNgJIIAUgB00hBCACIAUgB0tqIQIgA0EoaiADQcgAahCFFQwBCwsgBkECaiEGDAELAAsAC0HUuMQAEKEvAAsgA0E8ahCmIQsgACADKQI8NwIAIABBCGogA0HEAGooAgA2AgAgA0EcahCTLAsgA0HwAGokAAvvbQIbfwZ+IwBBwAFrIgckACAHQQE6AFggByABLQCOAzoAVyAHIAEtAJ4DOgBnIAcgASkBggM3AEsgByABQYoDaiIDKAEANgBTIAcgASkDkAM3AFkgByABKAKYAzYAYSAHIAEvAZwDOwBlIAdBgQFqIAFBlwNqKQAANwAAIAdB/ABqIAFBkgNqKQEANwIAIAdB9ABqIAMpAQA3AgAgByABKQGCAzcCbCABQYABaiAHQcsAahDvCiAHIAE2AmggAUEoaiINEKETGiABQfwAQcAAIAEoAihBJUYbaigCACEKAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCANEKETIgNFDQAgAygCAEECRw0AIAMtAAhBAkcNACADLQAJQRZGDQELIA0QoRMiA0UNASADKAIAQQJHDQEgAy0ACEECRw0BIAMtAAlBGEcNASABKAIoIQMgAUElNgIoIAEgASkDQDcDeCAHQZwBaiABQTRqKQIANwIAIAdBpAFqIAFBPGooAgA2AgAgByABKQIsNwKUASAHIAM2ApABIAdBkAFqEI4OIAdBAzoAvAEgByAKIAEoAnwiAyADIApJGzYCuAEgByAKIAMgAyAKSxs2ArQBIAdBIGogASAHQbQBakEBQQAQQCAHKAIkIQMgBygCICEGDAwLIAEoAighAyABQSU2AiggASABKQNANwN4IAdBnAFqIAFBNGopAgA3AgAgB0GkAWogAUE8aigCADYCACAHIAEpAiw3ApQBIAcgAzYCkAEgB0GQAWoQjg4CQAJAAkACQCANEKETIgMEQCADKAIAQQZGDQELIAdBMGogARDtAUEBIQYgBygCNCEDIAcoAjANDyAHIAM2AowBIAMoAgAiAkEURg0CIAJBHkcNAQwOCyABKAIoIQQgAUElNgIoIAEgASkDQDcDeCAHQZwBaiICIAFBLGoiA0EIaikCADcCACAHQaQBaiADQRBqKAIANgIAIAcgAykCADcClAEgByAENgKQASAHQZABahCODgJAAkAgDRChEyIERQ0AIAQoAgBBAkcNACAELQAIDQAgBC0ACUElRg0BCyACIA0QiQogB0E4aiANELceIAdBBjYCmAEgB0HY+t8ANgKUASAHQTA6AJABIAcoAjggBygCPCAHQZABahDvGyEDQQEhBiANEKETIgRFDQ8gBCgCAEEkRw0PIAEgASkDQDcDeCABKAIoIAFBJTYCKEEkRw0FIAEgASgCLBDFEAwPCyABKAIoIQQgAUElNgIoIAEgASkDQDcDeCAHQZwBaiADQQhqKQIANwIAIAdBpAFqIANBEGooAgA2AgAgByADKQIANwKUASAHIAQ2ApABIAdBkAFqIgIQjg4gASgCfCEEQQhBwAAQuS4iA0UNCyADQQA6AAwgAyAKIAQgBCAKSRsiBTYCCCADIAogBCAEIApLGyIENgIEIANBITYCACABLQCWA0EBcQ0MIAEtAJcDQQFxDQwgAS0AkwNBAXENDCAHQQs6AJABIAEgBCAFIAIQjyMMDAsgAkEwRg0BDAgLIAMoAigiAigCAEEwRw0HIAItABBBAUcNByACKAIMIQMgAigCCCAHQegAOgCQASADIAdBkAFqEO8bIQMgDRChEyIERQ0IIAQoAgBBJEcNCCABIAEpA0A3A3ggASgCKCABQSU2AihBJEcNAyABIAEoAiwQxRAMCAsgAy0AEEUNBiADKAIMIQQgAygCCCAHQegAOgCQASAEIAdBkAFqEO8bIQMgDRChEyIERQ0HIAQoAgBBJEcNByABIAEpA0A3A3ggASgCKCABQSU2AihBJEcNAyABIAEoAiwQxRAMBwsCQCANEKETIgNFDQAgAygCAEECRw0AIAMtAAhBAkcNACADLQAJQRxHDQAgASgCKCEDIAFBJTYCKCABIAEpA0A3A3ggB0GcAWogAUE0aikCADcCACAHQaQBaiABQTxqKAIANgIAIAcgASkCLDcClAEgByADNgKQASAHQZABahCODiAHQRhqIAEgCkEBEKEGIAcoAhwhAyAHKAIYIQYMCwsgB0EQaiETIwBBwAxrIgIkACABQShqIgQQoRMaIAQQoRMaIAEoAgAgAUH8AEHAACABKAIoQSVGG2ooAgAiBiABKAIERnEhCAJAAkACQAJAAkACQCAEEKETIgNFDQACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAMoAgAiBUEJaw4WEB0BHQUdHR0GHR0HAh0dHR0dER0REQALIAVBAkcNHEEEIAMtAAgiBUECa0H/AXEiCSAJQQRPG0EBaw4EEBAQAwILIAJBADoA2wEgAiABKQGCAzcAywEgAiABKQCTAzcA3AEgAiABKACbAzYA5AEgAiABQYoDaiIDKQEANwDTASACQekIaiABQZcDaikAADcAACACQeQIaiABQZIDaikBADcCACACQdwIaiADKQEANwIAIAIgASkBggM3AtQIIAFBgAFqIhAgAkHLAWoQ7wogAiABNgLQCCAEEKETGiABQfwAQcAAIAEoAihBJUYbaigCACELIAQQoRMiA0UEQCABKALYAiEDIAJBADoA+AggAyADIAJB+AhqEO8bIQNBAQwbCyADKAIAQSRGBEAgASABKQNANwN4IAEoAiggAUElNgIoQSRGBEAgASgCLCEDQQEMHAtBiYThAEEoQdDw3wAQ1SEACyABQYIDaiEOIAEoAighAyABQSU2AiggASABKQNANwN4IAJBhAlqIAFBNGopAgA3AgAgAkGMCWogAUE8aigCADYCACACIAEpAiw3AvwIIAIgAzYC+AggAkH4CGoQjg4gAkEANgKEBSACQoCAgIDAADcC/AQgAUEUaiERIAFBLGohBiACQYwFaiEMIAJBiAVqQQRyIQhBBCEJQQAhBQJAAkADQAJAAkACQCAEEKETIgMEQCACQQA2AqAMIAIgAzYCpAwgAkGgDGoQvSsgBBChEyIDBEAgAygCAEEMRg0CCyAEEKETIgMEQCADKAIAQRBGDQMLIAxBFWogDkEVaikAADcAACAMQRBqIA5BEGopAQA3AQAgDEEIaiAOQQhqKQEANwEAIAwgDikBADcBACACQQE6AKYMIAIgASgBggM2AKAMIAIgAS8BhgM7AKQMIAIgASkAiQM3AKcMIAIgASkAkQM3AK8MIAIgASgAmQM2ALcMIAIgAS8AnQM7ALsMIBAgAkGgDGoQ7wogAiABNgKIBSACQbAIaiABENwGIAIoArQIIQMgAigCsAgiEkECRg0FIAIpArgIIR0gAigC/AQgBUYEQCACQfwEahDxIAsgAigCgAUiCSAFQQR0aiIPIB03AgggDyADNgIEIA8gEjYCACACIAVBAWoi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KAIAQSRGBEAgAiACKQPIBTcDgAYgAigCsAUgAkElNgKwBUEkRw0GIAIoArQFIQMgAkGBgICAeDYC0AggAiADNgLUCAwQCyACQYQJaiACQbwFaikCADcCACACQYwJaiACQcQFaigCADYCACACKAKwBSEJIAJBJTYCsAUgAiACKQK0BTcC/AggAiAJNgL4CCACIAIpA8gFNwOABiACQfgIahCODiACQdAIaiACQYgFaiADEIMCAkACQCACKALQCEGAgICAeGsOAgERAAsgAkGgAWogAkHQCGpBKBCBCRogAkH4CGoiAyACQYgFakGoAxCBCRogARCRFiABIANBqAMQgQkhAyACIAU6AKAMIAIgAykAgwM3AKEMIAIgAykAiwM3AKkMIAIgAykAkwM3ALEMIAIgAygAmwM2ALkMIAFBgAFqIAJBoAxqEO8KDBILIAJBgICAgHg2AqABDBALIAJBgICAgHg2AqABDBELIAJB6AFqIgMgARAxIAIoAugBQTJHBEBBACEFIAMQ+C4hAwwdC0EBIQUgAigC7AEhAwwcCyACQQA6AMcCIAIgASkBggM3ALcCIAIgASkAkwM3AMgCIAIgASgAmwM2ANACIAIgAUGKA2oiAykBADcAvwIgAkGRCWogAUGXA2opAAA3AAAgAkGMCWogAUGSA2opAQA3AgAgAkGECWogAykBADcCACACIAEpAYIDNwL8CCABQYABaiACQbcCahDvCiACIAE2AvgIIAJBiAVqIAFBABCNAiACKAKMBSEDAn8gAigCiAUiBUGAgICAeEcEQCACQbgEaiIGIAJBoAVqKQIANwMAIAJBsARqIgggAkGYBWopAgA3AwAgAiACKQKQBTcDqARBCEHAABC5LiIERQ0ZIAQgAzYCCCAEIAU2AgQgBEEcNgIAIAQgAikDqAQ3AgwgBEEUaiAIKQMANwIAIARBHGogBikDADcCACAEIQNBAAwBC0EBCyEFIAJB+AhqEOUsDBsLIAMtAARBDkcNFQsgASgCKCEDIAFBJTYCKCABIAEpA0A3A3ggAkGECWoiFSABQTRqKQIANwIAIAJBjAlqIAFBPGooAgA2AgAgAiABKQIsNwL8CCACIAM2AvgIIAJB+AhqEI4OIAEgBjYCkAEgAUEBNgKMASAEEKETIgNFDRQgAygCAEEcRw0UIAFBADYCjAEgAkGUBWog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IAVBFGxqIgMoAgwhBiADKAIIIQogAyADQRRqIAIgBUF/c2pBFGwQoDIaIAAgAkEBazYCCAwBCyAFIAJBpKLfABDsFgwCCyABKQMAIREgAUIxNwMAIARBOGoiAiABQThqKQMANwMAIARBMGoiBSABQTBqKQMANwMAIARBKGoiAyABQShqKQMANwMAIARBIGoiByABQSBqKQMANwMAIARBGGoiCSABQRhqKQMANwMAIARBEGoiCCABQRBqKQMANwMAIARBCGoiCyABQQhqIgApAwA3AwAgAEEANgIAQaC/5AAtAAAaIAQgETcDAEHAABCEASIARQ0BIAAgBCkDADcDACAAQThqIAIpAwA3AwAgAEEwaiAFKQMANwMAIABBKGogAykDADcDACAAQSBqIAcpAwA3AwAgAEEYaiAJKQMANwMAIABBEGogCCkDADcDACAAQQhqIAspAwA3AwAgARC+ASABQQAgBiANIAwbIAogDiAMGyICQX5GIgUbNgIMIAFBACACIAUbNgIIIAEgADYCBCABQSM2AgALIARB0ABqJAAPCwALwxECD38DfiMAQaADayICJAACQAJAAkACQCABKAIEIgUgASgCDEcEQCABKAIkIQggASAFQQxqNgIEIAUoAgQhAyABKAIQIQ4CQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkAgBSgCACIKRQRAAn8CQAJAAkACQAJAAkBBBCADKAIAIgdBBWsiBCAEQQZPGyIJQQFrDgUAAQIDBAULIAJBEGogA0EIahDBGSACKAIUIQQgAigCEAwFCyADKAIMIQQgAygCCAwECyADKAJEIQQgAygCQAwDCyADKAJkIQQgAygCYAwCCyADKAIoIgUoAjQhBCAFKAIwDAELIAMoAhQhBCADKAIQCyEFIAdBBWsOAwIFAwELIAUoAgghDyACQRhqIAoQrAQgAyACKAIcIgcgAyAHSxshBSADIAcgAyAHSRshByABKAIUIQsgDiABKAIcKAIAQQFrRg0OIAJBOzoA4AIgCyAHIAUgAkHgAmoQjyMMDwsgCUEBaw4FBQYHCAkECyACQZgBaiADQRhqKQMANwMAIAJBkAFqIANBEGopAwAiETcDACACIAMpAwg3A4gBIAJB4ABqIAJBiAFqEK0TIAJBADYCgAEgAiARNwNYDAELIAJBmANq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DAILIAAoAgwiAgRAIAAoAgghASACQShsIQIDQCADIAEQwCwgAUEoaiEBIAJBKGsiAg0ACwsgAy0ANEEBRgRAIAAoAhAhACADLwA5IQEgA0GBAjsAOSADIAAoAgAQqycgAyABOwA5CyADEKEKIANBEGoQqwoMAQsgACgCECICBEAgACgCDCEBIAJBKGwhAgNAIAMgARDALCABQShqIQEgAkEoayICDQALCyADLQA0QQFGBEAgACgCFCEAIAMvADkhASADQYECOwA5IAMgACgCABCrJyADIAE7ADkLIAMQoQogA0EQahCrCgsgA0HgAGokAAuMEwEDfwJAAkACQANAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAQQcgACgCACIDQQxrIgIgAkEmTxtBAWsOJQABAgMEBQYHCAkKCwwjDQ4PEBESIBMUFRYgFxgkGRokGyQjHB0gCyAAQgA3AhAgACgCDCICRQ0dIAAoAgghACACQQR0IQIDQCAAKAIAIgNBAkcEQCADQQFxBEAgAEIANwIECyAAKAIMIAEQ8gELIABBEGohACACQRBrIgINAAsMHQsgAEIANwIQIAAoAgwiAkUNHCAAKAIIIQAgAkEMbCECA0ACQCAAKAIAIgMEQCAAQgA3AgQgAyABEPIBDAELIAAoAgQgARDoBwsgAEEMaiEAIAJBDGsiAg0ACwwcCyAALQAcQQJHBEAgAEIANwIQCyAAKAIgIAEQkQwPCyAAQgA3AgggAEEEaiECDBsLIABCADcCBCAAQQxqKAIAIQAMHAsgAEIANwIMIAAoAgQgARDyASAAQQhqKAIAIQAMGwsgAEIANwIwIABBOGohAiADQQtHBEACQAJAAkACQAJAAkACQAJAAkACQAJAIANBAWsOCgECAwQFBgcICQoACyAAQQhqIAEQ0CkgAigCACEADCULIABCADcCICAAKAIoIAEQ8gEgACgCCEECRwRAIABCADcCGCACKAIAIQAMJQsgAEEMaiABEM0tIAIoAgAhAAwkCyAAQgA3AyAgAEEoakIANwMAIAAoAghFBEAgAEIANwIYIAIoAgAhAAwkCyAAQQxqIAEQzS0gAigCACEADCMLIABCADcCCCAAKAIEIAEQ8gEgAigCACEADCILIABCADcCCCAAKAIEIgMoAgAiAEEDRwRAIANCADcDGCADKAIgIAEQ8gECQAJAAkAgAEEBaw4CAQIACyADQgA3AxAgAigCACEADCQLIANCADcDECACKAIAIQAMIwsgA0EEaiABEM0tIAIoAgAhAAwiCyADQgA3AhQgAygCECABEPIBIANBDGooAgAiBARAIANBCGooAgAiACAEQQR0aiEEA0AgACgCAEEBRgRAIABCADcCBAsgAEEMaigCACABEPIBIABBEGoiACAERw0ACwsgAygCICIARQ0fIAAgARC1ISACKAIAIQAMIQsgAEEEaiABEP4pIAIoAgAhAAwgCyAAQQRqIAEQ/ikgAigCACEADB8LIABBBGogARDNLSACKAIAIQAMHgsgAEEEaiABEP4pIAIoAgAhAAwdCyAAQQRqIAEQtxkgAigCACEADBwLIABCADcCBCACKAIAIQAMGwsgAEEIaiEDAkACQAJAIAAoAgRBAWsOAgECAAsgAyABENIYIAIoAgAhAAwcCyADIAEQkQ0gAigCACEADBsLIABCADcCCCACKAIAIQAMGgsgAEIANwIgIAAoAiggARDyASAAKAIIQQJHBEAgAEIANwIYDwsMGgsgAEIANwMgIABBKGpCADcDACAAKAIIRQRAIABCADcCGA8LDBkLIABCADcCECAAKAIEIAEQ8gEgACgCCCABEPIBIABBDGooAgAhAAwXCyAAQgA3AhwCQEEBIAAtABhBA2siAiACQf8BcUEDTxtB/wFxQQJHBEAgAEIANwIQDAELIAAoAhAgARDyAQsgACgCDCIDBEAgACgCCCICIANBBHRqIQMDQCACKAIAQQFGBEAgAkIANwIECyACQQxqKAIAIAEQ8gEgAkEQaiICIANHDQALCyAAKAIoIgBFDRMgACABELUhDwsgAEIANwIUIAAoAhAgARDyASAAKAIEQYCAgIB4RwRAIABBBGoiAigCCCIDBEAgAigCBCICIANBBHRqIQMDQCACKAIAQQFGBEAgAkIANwIECyACQQxqKAIAIAEQ8gEgAkEQaiICIANHDQALCwsgACgCICIARQ0SIAAgARC1IQ8LIABCADcCECAAKAIMIgJFDREgACgCCCEAIAJBAnQhAgNAIAAoAgAgARDyASAAQQRqIQAgAkEEayICDQALDBELIABBCGoQrR0PCyAAQgA3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QRhqIgspAwA3AwAgAkEIaiINIANBEGoiDCkDADcDACACIAMpAwg3AwAgDCANKQMANwMAIAsgCikDADcDACAJIAgpAwA3AwAgByAGKQMANwMAIAMgAikDADcDCCADKAIIDQEgA0EUaiAKKQIANwIAIANBHGogCCkCADcCACADQSRqIAYpAgA3AgAgAyACKQIINwIMIAJBKEEIEKIYQaC/5AAtAAAaQSgQhAEiAkUNACACQQA2AgAgAiADKQIINwIEIAJBDGogDCkCADcCACACQRRqIAspAgA3AgAgAkEcaiAJKQIANwIAIAJBJGogBygCADYCAEECIAQQ4xIgACACNgIIIABBAjYCBAwECwALIANBATYCNCADQeCf3wA2AjAgA0IBNwI8IAMgA0EIaq1CgICAgMDVAIQ3A0ggAyADQcgAajYCOCADQTBqQcyg3wAQkiYACyAEKAIAIQILIAJBBkcNACAEKAIEIgAoAgBBGkcNACAAQQhqQYCg4ABBBRDMJEUNACABIAQoAgQQ7gELAkAgBSgCAEEZaw4KAAICAgICAgICAAILIAEgBRDuAQwBCyABIAQ6ACYgACgCGCICBEAgASACEEQLIAAoAhwiAgRAIAEgAhBECyABLwEkIQIgAUEDOgAkIAAoAgwgARD4ASABIAI7ASQLIANB0ABqJAAL6xECCn8BfiMAQeAAayIEJAAgAUHIAmohBSABQShqIQggAAJ/AkACQAJAIAEoAsgCIgZBJUcEQCABQZwDaiEMDAELIAEoAvACIQYgAUElNgLwAgJAIAZBJUcEQCAEQdwAaiABQZQDaigCADYCACAEQdQAaiABQYwDaikCADcCACAEQcwAaiABQYQDaikCADcCACAEQcQAaiABQfwCaikCADcCACAEIAY2AjggBCABKQL0AjcCPAwBCyAEQThqIAgQMiAFKAIAQSVGDQAgBRDoAwsgBSAEKQM4NwMAIAVBIGogBEHYAGopAwA3AwAgBUEYaiAEQdAAaikDADcDACAFQRBqIARByABqKQMANwMAIAVBCGogBEFAaykDADcDACABQZwDaiEMIAEoAsgCIgZBJUcNACABKAKcAyEHIAEoAvACIQYgAUElNgLwAgJAIAZBJUcEQCAEQdwAaiABQZQDaigCADYCACAEQdQAaiABQYwDaikCADcCACAEQcwAaiABQYQD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DQAgASABKAIgEI0nCyAAKAIgIgEEQCABEIEPIAEoAgAgAUEEaigCABDCKiABQRRBBBCiGAsgAEE8aiIBKAIAIABBQGsoAgAQuBEgACgCOCABKAIAEL8qIABBKGoiASgCACAAQSxqKAIAEIcoIAAoAiQgASgCABDHKiAAQcgAQQgQohgMAgsCQCAAKAIMIgEpAwgiBEIDg0IAUg0AIAIgBKciADYCDCACQQxqENAGIAAgACgCACIDQQFrNgIAIANBAUcNACAAIAAoAiAQjScLIAEoAiAiAARAIAAQgQ8gACgCACAAQQRqKAIAEMIqIABBFEEEEKIYCyABKAIkIgAQjQQgAEHgAEEIEKIYIAFBMEEIEKIYDAELAkAgACgCDCIAKQMAIgRCA4NCAFINACACIASnIgE2AgwgAkEMahDQBiABIAEoAgAiA0EBazYCACADQQFHDQAgASABKAIgEI0nCyAAQSBqEOUPIAAoAiAgAEEkaigCABDCKiAAQTBBCBCiGAsgAkEQaiQAC6EPAQx/IwBBQGoiCyQAIAJBGGshEQJAAkADQAJAIAFBIU8EQCAEDQEgACABIAIgA0EBEMsCDAQLIAFBAkkNAyABQRBqIANLDQJBASENIAIgAUEBdiIPQRhsIgNqIQggACADaiEDAkAgAUEHSwRAIAAgAhClByADIAgQpQdBBCENDAELIAIgACkCADcCACACQRBqIABBEGopAgA3AgAgAkEIaiAAQQhqKQIANwIAIAggAykCADcCACAIQQhqIANBCGopAgA3AgAgCEEQaiADQRBqKQIANwIACyALQoCAgIAgNwMwIAsgD61CIIY3AyhBACANayEOIAEgD2shDCAAIA1BGGwiA2ohCSACIANqIQUDQCALQQhqIAtBKGoQ8B4gCygCCEUEQCAIQRhrIQYgACABQRhsQRhrIgNqIQogAiADaiEHA0AgDwRAIAAgCCACIAgoAgAgCEEMaigCACACKAIAIAJBDGooAgAQoiZB/wFxIglB/wFGIgUbIgMpAgA3AgAgAEEQaiADQRBqKQIANwIAIABBCGogA0EIaikCADcCACAKIAYgByAHKAIAIAdBDGooAgAgBigCACAGQQxqKAIAEKImQf8BcSIEQf8BRiIDGyIMKQIANwIAIApBEGogDEEQaikCADcCACAKQQhqIAxBCGopAgA3AgAg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QQRGDQELIAQQoRMiAkUNASACKAIAQSFHDQELIAEtAPgCQQJHDQAgAS0AggMhDiADQdgAaiICIAEQ4gIgA0EBOgCDBCADIAEpAIMDNwCEBCADIAEpAIsDNwCMBCADIAEpAJMDNwCUBCADIAEoAJsDNgCcBCADQdgBaiADQYMEahDvCiADQShqIAJBAEEAELwBIAMoAiwhCAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADKAIoRQRAAkACQAJAIANBgAFqIgUQoRMiAgRAIAIoAgBBCUYNAQsgA0HABGogBRCJCiADIAUQtx4gA0GYzd8ANgK8BCADQTQ6ALgEIAMoAgAgAygCBCADQbgEahDvGyEBIAUQoRMiAkUNDCACKAIAQSRGDQEMDAsgA0HEBGogA0GMAWopAgA3AgAgA0HMBGogA0GUAWooAgA2AgAgAygCgAEhAiADQSU2AoABIAMgAykChAE3ArwEIAMgAjYCuAQgAyADKQOYATcD0AEgA0G4BGoiAhCODiACIANB2ABqEIwCIAMoArwEIQQgAygCuAQiCUGAgICAeEcEQCABQYABaiEMIAFBggNqIQogA0GEAWohBiADKALABEEGdCEPIAlBBnQhCyADQegEaiEQQQAhAgNAIAQgB2ohDSACIA9GRQRAIANBoAhqIhEgAiAEaiISQcAAEIEJGiADQbgEaiASQcAAEIEJGiAQEOAtIA0gEUEoEIEJGiAHQShqIQcgAkFAayECDAELCyADQQg2ApAIIANBADYCmAhBAEEIENYvIANBCDYCnAggA0EINgKUCCALQShuIQcgBCECAkAgCUUNACALIAdBKGwiCUYNACACIAsgCRD5JiICRQ0GCyADIAI2AogIIAMgBzYChAggAyANIARrQShuNgKMCCADQZAIahDCIQJAAkAgBRChEyICBEAgAigCAEEKRg0BCyADQcAEaiAFEIkKIANBCGogBRC3HiADQfDM3wA2ArwEIANBNDoAuAQgAygCCCADKAIMIANBuARqEO8bIQEgBRChEyICRQ0MIAIoAgBBJEYNAQwMCyADQcQEaiAGQQhqKQIANwIAIANBzARqIAZBEGooAgA2AgAgAygCgAEhAiADQSU2AoABIAMgAjYCuAQgAyADKQOYATcD0AEgAyAGKQIANwK8BCADQbgEahCODkEAIQICQAJAIAUQoRMiBEUNACAEKAIAQRNHDQAgA0EgaiADQdgAakGgx98AEK8CIAMoAiQhAiADKAIgDQELIAMgAjYCoAggBRChEyIEBEAgBCgCAEEDRg0FCyADQcAEaiAFEIkKIANBEGogBRC3HiADQfDa3wA2ArwEIANBNDoAuAQgAygCECADKAIUIANBuARqEO8bIQEgBRChEyICRQ0LIAIoAgBBJEcNCyADIAMpA5gBNwPQASADKAKAASADQSU2AoABQSRHDQggA0HYAGogAygChAEQxRAMCwsgA0GBgICAeDYCoAQgAyACNgKkBAwMCyADIAMpA5gBNwPQASADKAKAASADQSU2AoABQSRHDQcgA0HYAGogAygChAEQxRAMCgsgA0GBgICAeDYCoAQgAyAENgKkBAwMCyADIAMpA5gBNwPQASADKAKAASADQSU2AoABQSRHDQYgA0HYAGogAygChAEQxRAMCgsgA0HEBGogBkEIaikCADcCACADQcwEaiAGQRBqKAIANgIAIAMoAoABIQQgA0ElNgKAASADIAQ2ArgEIAMgAykDmAE3A9ABIAMgBikCADcCvAQgA0G4BGoQjg4gA0GoBGogA0GMCGooAgA2AgAgAyACNgKwBCADIAg2AqwEIAMgAykChAgiEzcDoAQgE6ciBEGAgICAeGsOAgwLAQsgA0GBgICAeDYCoAQgAyAINgKkBAwKCyADKQKkBCETIANBuARqIgcgA0HYAGpBqAMQgQkaIAEQkRYgASAHQagDEIEJIQEgAyAOOgDnByADIAEpAIMDNwDoByADIAEpAIsDNwDwByADIAEpAJMDNwD4ByADIAEoAJsDNgCACCAMIANB5wdqEO8KIANBATsAQiADIAEtAIgDOgBBIAMgASgBggM2ADsgAyABLwGGAzsAPyADIAEpAIsDNwBEIAMgASkAkwM3AEwgAyABKACbAzYAVCADQfEAaiAKQRVqKQAANwAAIANB7ABqIApBEGopAQA3AgAgA0HkAGogCkEIaikBADcCACADIAopAQA3AlwgDCADQTtqEO8KIAMgATYCWCADIAI2ArQIIAMgCDYCsAggAyATNwKkCCADIAQ2AqAIIAMgA0E0ajYCrAggA0EYaiABQQEgE6cgE0IgiKcQ6yIQ0QUgAygCHCEGAkAgAygCGEUEQCABKAJ8IQEgAygCNCEEQQRBGBC5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NA0AIAMoAhQNAAJAIAcoAgAiBkEDRg0AIAMtAEQNACAGDQEgBEEYaiACQRBqEMoQIAQoAhgiAyAEKAIcIgZBvOngAEECENAoDQAgAyAGQb7p4ABBChDQKEUNAQsgACAFQTsQ9iELIAcgABCcKiACQTBqIAAQmTIMAAsAC5kQAgt/An4jAEGQAmsiAiQAIAEoAhghBgJAAkACQCABLQAUQQJHBEAgAkHEAGpBuLXjACkDACINNwIAIAJBNGogDTcCACACQbC14wApAwAiDjcCPCACQQA7AW4gAkEANgIoIAJCgICAgIABNwIgIAIgDjcCLCACQQA2AlQgAkEAOgBYIAJBADYCZCACQoCAgIDAADcCTCACQoCAgICAATcCXCACIAAvAUw7AWwgAiAAKAJINgJoIAJBEGogARCtISACQSBqIAIpAxAgAigCGEEBEKUCIAJBlAFqIA03AgAgAkGEAWogDTcCACACIA43AowBIAJBADsBvgEgAiACLwFsOwG8ASACIAIoAmg2ArgBIAJBADYCeCACQoCAgICAATcCcCACIA43AnwgAkEANgKkASACQQA6AKgBIAJBADYCtAEgAkKAgICAwAA3ApwBIAJCgICAgIABNwKsASAGKAIEIgQgBigCCCIHQQZ0IgNqIQggAkHcAGohCSACQcwAaiELIAQhBQJAA0AgA0UNASAFKAIAIQogA0FAaiEDIAVBQGshBQJAIApBAmsOAwABAAELCyACIAEQrSEgAkHwAGogAikDACACKAIIELgKCyAGKAIUIgEEQCAGKAIQIQMgAUEMbCEFA0AgAkHwAGogAygCABCmHCADQQxqIQMgBUEMayIFDQALCyAHBEAgAi0AvgEhASACLQC9ASEHA0AgAkEAOgC9ASACIAItAL8BQQFzOgC+ASAEKAI4IgUEQCAEKAI0IQMgBUEMbCEFA0AgAkHwAGogAygCABCmHCADQQxqIQMgBUEMayIFDQALCyACQQE6AL0BIAQgAkHwAGoQ3QogAiABOgC+ASACIAc6AL0BIARBQGsiBSEEIAUgCEcNAAsLIAZBGGoiASgCAEGAgICAeEcEQCABIAJB8ABqEIEjCyACKAK0ASIFRQ0CIAJBPGogBRCAKiACQcQBaiACKAKwASACKAK0ARDaDCACIAIoAsQBNgLYASACIAIoAsgBIgM2AtABIAIgAzYC1AEgAiADIAIoAswBIgRBBHRqIgE2AtwBIAQEQANAIAJB8ABqIAMpAwAgAygCCBC4CiADQRBqIgMgAUcNAAsgAiABNgLUAQsgAkHQAWoQ0REgAi0AWA0BIAJBIGogAigCtAEQ8RMgAiACKAKsATYC2AEgAiACKAKwASIDNgLQASACIAM2AtQBIAIgAyACKAK0ASIEQQR0aiIBNgLcASAEBEADQCACQSBqIAMpAwAgAygCCEEBEKUCIANBEGoiAyABRw0ACyACIAE2AtQBCyACQdABahDREQwCCyAAIAYQ4QMMAgsgAigCtAEhBCACKAKwASEBIAIgAigCrAE2AtgBIAIgATYC0AEgAiABNgLUASACIAEgBEEEdGo2AtwBIAkgAkHQAWoQkBcLIAJBiAJqIgMgAkGoAWooAgA2AgAgAkGAAmoiBiACQaABaikCADcDACACQfgBaiIHIAJBmAFqKQIANwMAIAJB8AFqIgggAkGQAWopAgA3AwAgAkHoAWoiCSACQYgBaikCADcDACACQeABaiIKIAJBgAFqKQIANwMAIAJB2AFqIgwgAkH4AGopAgA3AwAgAiACKQJwNwPQASACKAJUIgQgAigCTEYEQCALEPcLCyACKAJQIARBPGxqIgEgAikD0AE3AgAgAUE4aiADKAIANgIAIAFBMGogBikDADcCACABQShqIAcpAwA3AgAgAUEgaiAIKQMANwIAIAFBGGogCSkDADcCACABQRBqIAopAwA3AgAgAUEIaiAMKQMANwIAIAIgBEEBajYCVCAFRQRAIAIoArABIAIoArQBEPQUIAIoAqwBIAIoArABEOYqCwJAIAIoAmQiBUUNACAAQRxqIAUQgCogAkHQAWogAigCYCACKAJkENoMIAIgAigC0AE2AnggAiACKALUASIDNgJwIAIgAzYCdCACIAMgAigC2AEiBEEEdGoiATYCfCAEBEADQCACQSBqIAMpAwAgAygCCBC4CiADQRBqIgMgAUcNAAsgAiABNgJ0CyACQfAAahDRESAALQA4RQRAIAAgAigCZBDxEyACIAIoAlw2AnggAiACKAJgIgM2AnAgAiADNgJ0IAIgAyACKAJkIgRBBHRqIgE2AnwgBARAA0AgACADKQMAIAMoAghBARClAiADQRBqIgMgAUcNAAsgAiABNgJ0CyACQfAAahDREQwBCyACKAJkIQQgAigCYCEBIAIgAigCXDYCeCACIAE2AnAgAiABNgJ0IAIgASAEQQR0ajYCfCAAQTxqIAJB8ABqEJAXCyACQagBaiIDIAJB2ABqKAIANgIAIAJBoAFqIgYgAkHQAGopAgA3AwAgAkGYAWoiCyACQcgAaikCADcDACACQZABaiIHIAJBQGspAgA3AwAgAkGIAWoiCCACQThqKQIANwMAIAJBgAFqIgkgAkEwaikCADcDACACQfgAaiIKIAJBKGopAgA3AwAgAiACKQIgNwNwIAAoAjQiBCAAKAIsRgRAIABBLGoQ9wsLIAAoAjAgBEE8bGoiASACKQNwNwIAIAFBOGogAygCADYCACABQTBqIAYpAwA3AgAgAUEoaiALKQMANwIAIAFBIGogBykDADcCACABQRhqIAgpAwA3AgAgAUEQaiAJKQMANwIAIAFBCGogCikDADcCACAAIARBAWo2AjQgBQ0AIAIoAmAgAigCZBD0FCACKAJcIAIoAmAQ5ioLIAJBkAJqJAALrRECA38BfiMAQRBrIgIkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIADhIBERECAwQFBgcICQoLDA0ODxAACyAAKAIEIgAQkgIgAEHAAEEIEKIYDBALIAAoAggiASAAKAIMEOYnIAAoAgQgARDCKgwPCyAAKAIEIgEQkgIgAUHAAEEIEKIYIAAoAggiABCHAiAAQTBBCBCiGAwOCyAAKAIMIgBFDQ0gABCSAiAAQcAAQQgQohgMDQsCQCAAKQMQIgRCA4NCAFINACACIASnIgE2AgwgAkEMahDQBiABIAEoAgAiA0EBazYCACADQQFHDQAgASABKAIgEI0nCyAAKAIoIgAQhwIgAEEwQQgQohgMDAsgAC0AJEECRg0LIAApAxAiBEIDg0IAUg0LIAIgBKciADYCDCACQQxqENAGIAAgACgCACIBQQFrNgIAIAFBAUcNCyAAIAAoAiAQjScMCwsgAC0AJEECRg0KIAApAxAiBEIDg0IAUg0KIAIgBKciADYCDCACQQxqENAGIAAgACgCACIBQQFrNgIAIAFBAUcNCiAAIAAoAiAQjScMCgsgACgCBCIBEJICIAFBwABBCBCiGCAAKAIIIgEQhwIgAUEwQQgQohggACgCFCIARQ0JIAAQhwIgAEEwQQgQohgMCQsgACgCECIBEJICIAFBwABBCBCiGCAAKAIIIgEgACgCDBDvEyAAKAIEIAEQ0CoMCAsgACgCBCIAEJICIABBwABBCBCiGAwHCyAAKAIEIgBBzABqIgEoAgAgAEHQAGooAgAQ5icgACgCSCABKAIAEMIqAkACQAJAIAAoAgBBB2sOAgECAAsgABDLCwsgAEEsaiIBKAIAIABBMGooAgAQ5icgACgCKCABKAIAEMIqCyAAKAJgQYCAgIB4RwRAIABB5ABqIgEoAgAgAEHoAGooAgAQ5icgACgCYCABKAIAEMIqCyAAQYABQQgQohgMBgsgACgCBCIBEJICIAFBwABBCBCiGCAAKAIIIgAQhwIgAEEwQQgQohgMBQsgACgCBCIBEJICIAFBwABBCBCiGCAAKAIIIgAQhwIgAEEwQQgQohgMBAsgACgCCCEBAkACQAJAIAAoAgQOAwABAgELIAFBBGoiAygCACABQQhqKAIAEK8hIAEoAgAgAygCABDHKiABQRxBBBCiGAwBCyABEJICIAFBwABBCBCiGAsgACgCGCIBBEAgARCSAiABQcAAQQgQohgLIAAoAhwiAQRAIAEQkgIgAUHAAEEIEKIYCyAAKAIMIgAQhwIgAEEwQQgQohgMAwsgACgCBCAAKAIIEPYVIAAoAgwiARCSAiABQcAAQQgQohggACgCECIAEIcCIABBMEEIEKIYDAILIAAoAgQgACgCCBD2FSAAKAIMIgEQkgIgAUHAAEEIEKIYIAAoAhAiABCHAiAAQTBBCBCiGAwBCwJAAkACQAJAAkACQAJAAkAgACgCCEEBaw4HAgMEBQYHAAELIAAoAgwiABCvFQJAIAAtAEUiAUEDRg0AIAFBAkYEQCAAQSRqIgEoAgAgAEEoaigCABDtJyAAKAIgIAEoAgAQxyoMAQsCQCAAKQMoIgRCA4NCAFINACACIASnIgE2AgwgAkEMahDQBiABIAEoAgAiA0EBazYCACADQQFHDQAgASABKAIgEI0nCyAAQUBrEPUQCyAAQdgAQQgQohgMBwsCQCAAKQMQIgRCA4NCAFINACACIASnIgE2AgwgAkEMahDQBiABIAEoAgAiA0EBazYCACADQQFHDQAgASABKAIgEI0nCyAAKAIoIgBBBGoiASgCACAAQQhqKAIAEJIlIAAoAgAgASgCABDAKiAAQRBqIgEoAgAgAEEUaigCABDnJyAAKAIMIAEoAgAQxiogACgCMCIBBEAgARCSAiABQcAAQQgQohgLIAAoAjQiAQRAIAEQ+w4gASgCACABQQRqKAIAEMIqIAFBFEEEEKIYCyAAKAI4IgEEQCABELMiIAEoAgAgAUEEaigCABDDKiABQRRBBBCiGAsgAEEcaiIBKAIAIABBIGooAgAQtREgACgCGCABKAIAEL8qIABBwABBBBCiGAwGCwJAIAApAxAiBEIDg0IAUg0AIAIgBKciATYCDCACQQxqENAGIAEgASgCACIDQQFrNgIAIANBAUcNACABIAEoAiAQjScLIAAoAigQ3Q4MBQsgACgCDCIAQQRqIgEoAgAgAEEIaigCABCvISAAKAIAIAEoAgAQxyogAEEcQQQQohgMBAsgACgCDCIAQQRqIgEoAgAgAEEIaigCABCvISAAKAIAIAEoAgAQxyogAEEYQQQQohgMAwsCQCAAKAIMIgApAwgiBEIDg0IAUg0AIAIgBKciATYCDCACQQxqENAGIAEgASgCACIDQQFrNgIAIANBAUcNACABIAEoAiAQjScLIAAoAiAiAQRAIAEQ+w4gASgCACABQQRqKAIAEMIqIAFBFEEEEKIYCyAAQTxqIgEoAgAgAEFAaygCABC1ESAAKAI4IAEoAgAQvyogAEEoaiIBKAIAIABBLGooAgAQ6CcgACgCJCABKAIAEMcqIABByABBCBCiGAwCCwJAIAAoAgwiASkDCCIEQgODQgBSDQAgAiAEpyIANgIMIAJBDGoQ0AYgACAAKAIAIgNBAWs2AgAgA0EBRw0AIAAgACgCIBCNJwsgASgCICIABEAgABD7DiAAKAIAIABBBGooAgAQwiogAEEUQQQQohgLIAEoAiQiABD+AyAAQeAAQQgQohggAUEwQQgQohgMAQsCQCAAKAIMIgApAwAiBEIDg0IAUg0AIAIgBKciATYCDCACQQxqENAGIAEgASgCACIDQQFrNgIAIANBAUcNACABIAEoAiAQjScLIABBIGoQ2w8gACgCICAAQSRqKAIAEMIqIABBMEEIEKIYCyACQRBqJAALvw8CBn8CfiMAQaABayICJAACQAJAAkACQAJAAkACQAJAAkACQCAAKAIAQQFrDggBAgMEBQYHCAALIAAoAgwiAwRAIANByABsIQMDQCADQcgAayIDDQALCyAAKAIcIgBFDQcgACABENgaDAcLQQghAyAAQQhqIAEQzgECQAJAAkACQAJAAkACQAJAAkAgACgCCEECaw4GAA8PDwECDwsgACgCDCEAIAJBADYCWCACQoCAgICAATcCUCAAKAIIIgYEQCAAKAIEIQMgBkE4bCEEA0AgAyACQdAAahDLDCADQThqIQMgBEE4ayIEDQALIAIoAlghBCACKAJQIQUgAigCVCEDCyABKQMQIghQRQ0CDAMLIAIgACgCDBCtISACKAIIIQAgAikDACEJIAEpAxAiCEIAUg0DIAJB0ABqIAFBMGogCSAAQgAgAhCcBgwECyACQRBqIAAoAgwQrh4gAigCGCEAIAIpAxAhCSABKQMQIghCAFINBCACQdAAaiABQTBqIAkgAEIAIAIQnAYMBQsgCEIDg1AEQCAIpyIAIAAoAgAiAEEBajYCACAAQQBIDQ0LIAEoAhghBwsgAUEwaiIGIARB/////wBxIgBBAWpBAXYgACABKAI8GxCMKiACQfQAakIANwIAIAJCADcCbCACIAc2AmggAiAINwNgIAIgAyAEQQR0ajYCXCACIAU2AlggAiADNgJUIAIgAzYCUCAEBEBBASAAIABBAU0bIQQDQCACKAJUIgEgAigCXEYEfkIABSACIAFBEGo2AlQgASgCCCEAIAEpAwALIQgCQCACKQNgIglQBEAgAkGAAWogBiAIIABCACACEJwGDAELIAlCA4NQBEAgCaciASABKAIAIgFBAWo2AgAgAUEASA0PCyACQYABaiAGIAggACAJIAIoAmgQnAYLAkAgAikDgAFQDQAgAikDiAEiCFAgCEIDg0IAUnINACACIAinIgE2ApwBIAJBnAFqENAGIAEgASgCACIAQQFrNgIAIABBAUcNACABIAEoAiAQjScLIARBAWsiBA0ACyACKQNgIQgLIAJB0ABqENERIAhQIAhCA4NCAFJyDQogAiAIpyIANgKAASACQYABahDQBiAAIAAoAgAiAUEBazYCACABQQFHDQogACAAKAIgEI0nDAoLIAhCA4NQBEAgCKciAyADKAIAIgNBAWo2AgAgA0EASA0LCyACQdAAaiABQTBqIAkgACAIIAEoAhgQnAYLIAIpA1BQDQggAikDWCIIUCAIQgODQgBScg0IIAIgCKciADYCgAEgAkGAAWoQ0AYgACAAKAIAIgFBAWs2AgAgAUEBRw0IIAAgACgCIBCNJwwICyAIQgODUARAIAinIgMgAygCACIDQQFqNgIAIANBAEgNCQsgAkHQAGogAUEwaiAJIAAgCCABKAIYEJwGCyACKQNQUA0GIAIpA1giCFAgCEIDg0IAUnINBiACIAinIgA2AoABIAJBgAFqENAGIAAgACgCACIBQQFrNgIAIAFBAUcNBiAAIAAoAiAQjScMBgsgACgCDCIEBEAgACgCCCEDIARB0ABsIQQgAUEwaiEGA0ACQCADKQMAIghCAVYgCKdBAXFyDQAgAkEgaiADQQhqEK0hIAIoAighBSACKQMgIQkCQCABKQMQIghQBEAgAkHQAGogBiAJIAVCACACEJwGDAELIAhCA4NQBEAgCKciByAHKAIAIgdBAWo2AgAgB0EASA0LCyACQdAAaiAGIAkgBSAIIAEoAhgQnAYLIAIpA1BQDQAgAikDWCIIUCAIQgODQgBScg0AIAIgCKciBTYCgAEgAkGAAWoQ0AYgBSAFKAIAIgdBAWs2AgAgB0EBRw0AIAUgBSgCIBCNJwsgA0HQAGohAyAEQdAAayIEDQALCyAAKAIcIgBFDQUgACABENgaDAULAkACQCAAKAIIQQFrDgIBBgALIAAoAiggARDNBQwFCyAAKAIoIAEQuA4MBAsgACgCBCIAIAEQ4QIgACgCAEEaRw0DIAJBMGogAEEIahCtISACKAI4IQAgAikDMCEJAkAgASkDECIIUARAIAJB0ABqIAFBMGogCSAAQgAgAhCcBgwBCyAIQgODUARAIAinIgMgAygCACIDQQFqNgIAIANBAEgNBgsgAkHQAGogAUEwaiAJIAAgCCABKAIYEJwGCyACKQNQUA0DIAIpA1giCFAgCEIDg0IAUnINAyACIAinIgA2AoABIAJBgAFqENAGIAAgACgCACIBQQFrNgIAIAFBAUcNAyAAIAAoAiAQjScMAwsgACgCECIARQ0CIAAgARDYGgwCCyAAKAIEIgAtAEBBAUcNASACQUBrIABBKGoQrSEgAigCSCEAIAIpA0AhCQJAIAEpAxAiCFAEQCACQdAAaiABQTBqIAkgAEIAIAIQnAYMAQsgCEIDg1AEQCAIpyIDIAMoAgAiA0EBajYCACADQQBIDQQLIAJB0ABqIAFBMGogCSAAIAggASgCGBCcBgsgAikDUFANASACKQNYIghQIAhCA4NCAFJyDQEgAiAIpyIANgKAASACQYABahDQBiAAIAAoAgAiAUEBazYCACABQQFHDQEgACAAKAIgEI0nDAELIAAoAgQgARDhAgsgAkGgAWokAA8LAAvZDwIJfwF+IwBB4ABrIgIkACABQcgCaiEDIAFBKGohCCABKALIAiIEQSVGBEAgASgC8AIhBCABQSU2AvACAkAgBEElRwRAIAJB3ABqIAFBlANqKAIANgIAIAJB1ABqIAFBjANqKQIANwIAIAJBzABqIAFBhANqKQIANwIAIAJBxABqIAFB/AJqKQIANwIAIAIgBDYCOCACIAEpAvQCNwI8DAELIAJBOGogCBAyIAMoAgBBJUYNACADEOgDCyADIAIpAzg3AwAgA0EgaiACQdgAaikDADcDACADQRhqIAJB0ABqKQMANwMAIANBEGogAkHIAGopAwA3AwAgA0EIaiACQUBrKQMANwMAIAMoAgAhBAsgASgC4AIhByABQSU2AsgCIAEgBzYCmAMgAkHMAGoiBSABQdwCaigCADYCACACQcQAaiIJIAFB1AJqKQIANwIAIAEgASgC5AI2ApwDIAIgBDYCOCACIAEpAswCNwI8IAFBzAJqIQQgAkE4ahDoAwJAAkACQAJAAkAgASgCyAIiBkElRgRAIAEoAvACIQYgAUElNgLwAgJAIAZBJUcEQCACQdwAaiABQZQDaigCADYCACACQdQAaiABQYwDaikCADcCACAFIAFBhANqKQIANwIAIAkgAUH8AmopAgA3AgAgAiAGNgI4IAIgASkC9AI3AjwMAQsgAkE4aiAIEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDODcDACADQSBqIAJB2ABqKQMANwMAIANBGGogAkHQAGopAwA3AwAgA0EQaiACQcgAaikDADcDACADQQhqIAJBQGspAwA3AwAgAygCACIGQSVGDQELIAZBDkcNAUEAIQggASgC4AIiAyEGDAMLIAEoAvACIQYgAUElNgLwAgJAIAZBJUcEQCACQdwAaiABQZQDaigCADYCACACQdQAaiABQYwDaikCADcCACACQcwAaiABQYQDaikCADcCACACQcQAaiABQfwCaikCADcCACACIAY2AjggAiABKQL0AjcCPAwBCyACQThqIAgQMiADKAIAQSVGDQAg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IAMpA0BCAYNQRQ0ACwwCCyADQYACaiEGQYEBIQRCASEPA0AgBiAGKQMAIA+ENwMAIAZBCGoiByAHKQMAIBCENwMAIAVBAXENAyADQTBqIARB/wBxEPwXIARB/wFxQQFqIgdB/wFxIAdHIQUgA0HwAWogBEEDdkEQcWohBiADQThqKQMAIRAgAykDMCEPIAchBAwACwALIANBiAJqKQMAQgBTDQELIABBsQE2AhAgAEHE98MANgIMQSwhBEEIDAELIANBgAFqIANB/AFqKQIAIg83AwAgA0GIAWogA0GEAmopAgAiEDcDACADQZABaiADQYwCaigCACIENgIAIANB5ABqIA83AgAgA0HsAGogEDcCACADQfQAaiAENgIAIAMgAykC9AEiDzcDeCADIAMoAvABIgo2AlggAyAPNwJcAkAgAS0AUiIEQQJGIARBAXFyRQRAQQAhBiADQZACakEAQYACEIcPGgNAIANBkAJqIAZqIAY6AAAgBkEBaiIGQYACRw0ACwwBCyADQbABaiACQaACaikDADcDACADQagBaiACQZgCaikDADcDACADQaABaiACQZACaikDADcDACADIAIpA4gCNwOYAQJAIANB2ABqEMEvDQBBACEEA0BBgAIgBCAEQYACTRshBQNAIAUgBCIHRg0CIANBIGogA0HYAGogBEEDdkHw////AXFqIgYpAwAgBkEIaikDACAEQf8AcRD7FyAEQQFqIQQgAykDIEIBg1ANAAsCQCAHQf4BSwRAIAchBQwBCyAHIQUDQCADQRBqIANB2ABqIARBA3ZB8P///wFxaiIGKQMAIAZBCGopAwAgBEH/AHEQ+xcgAykDEEIBg1ANASAEIQUgBEEBaiIEQYACRw0AC0H/ASEFQYACIQQLIANBmAFqIAcgBRC9DwwACwALIANBkAJqIANBmAFqENYPC0EYIQcgAS0AUUEBcQRAIAIoAtQCQRhsQRhqIQcLIAIoAsgCIQUgAy0AjwQhBiADQQhqEJ4XIAMgAygCDCIJNgKcASADIAMoAggiBDYCmAEgBCAEKAIAIgRBAWs2AgAgBEEBRgRAIANBmAFqEMUeCwJAIAEoAixBgICAASABKAIoGyIEIAVBBWwgAigC1AJBAnRqQQlqIgggBUEMbEEUQSAgBkEBamdrdGogB2ogCUEDbGpqIAhBAXRqQeQAaiIFSQRAIAEtAFVBAXFFDQEgBSEECyADLQCPBCEGIANBkARqQQBBgAIQhw8aIANByARqQYECOwAAIANB2QRqQoGChIiQoMCAATcAACADQeEEakKBgoSIkKDAgAE3AAAgA0HpBGpBgQI7AAAgA0H5BGpCgYKEiJCgwIABNwAAIANBgQVqQoGChIiQoMCAATcAACADQYkFakGBAjsAACADQQQ6AJ0EIANCgYKEiJCgwIABNwDABCADQoGChIiQoMCAATcA0QQgA0KBgoSIkKDAgAE3APEEIAItANgCIQUgA0EDOgCaBCADQQE6AO8EAkACQCAFQQprDgQBAAABAAsgA0GQBGogBWpBBToAAAsgAS0AUCEJIAEtAEwiBUEDRiAFQQJGcg0DIAEoAkAiByAHKAIAIghBAWo2AgAgCEEASA0CIAEoAkghCyABKAJEIQwMAwsgACAFNgIMIABBKjYCCEEQCyAAaiAENgIAIABCAjcDACACIAIoAgAiAEEBazYCACAAQQFHDQIgA0HUAGoQxhMMAgsACyABLQBTIQggAS0AUiENIAEtAFEhDkIAIQ8gASgCAEEBRgRAIANB6AFqIAFBIGopAwA3AwAgA0HgAWogAUEYaikDADcDACADQdgBaiABQRBqKQMANwMAIAMgASkDCDcD0AFCASEPCyABKQMoIRAgASkDMCERIAEpAzghEiABLwFUIQEgAEHYAGogA0GQBGpBgAIQgQkaIABB2AJqIANBkAJqQYACEIEJGiAAIAo2AtgEIAAgDzcDACAAIAMpA3g3AtwEIABB5ARqIANBgAFqKQMANwIAIABB7ARqIANBiAFqKQMANwIAIABB9ARqIANBkAFqKAIANgIAIAAgAykD0AE3AwggAEEQaiADQdgBaikDADcDACAAQRhqIANB4AFqKQMANwMAIABBIGogA0HoAWopAwA3AwAgACAENgKABSAAQSAgBkEBamdrNgL8BCAAIAI2AvgEIAAgATsBVCAAIAg6AFMgACANOgBSIAAgDjoAUSAAIAk6AFAgACAFOgBMIAAgCzYCSCAAIAw2AkQgACAHNgJAIAAgEjcDOCAAIBE3AzAgACAQNwMoCyADQZAGaiQAC+kPARh/IwBBsAFrIgIkACACQQA2AjAgAkKAgICAgAE3AiggAUEsaiEJIAFBKGohCCACQfgAakEEciEKIAJB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AgQiASgCAEEDRwRAIAFBIGoQlAIgARDjDwwBCyABQRBqEJQCIAFBBGoQ7yEgASgCBCABQQhqKAIAEL8qIAEoAiAiAkUNACACELUiIAIoAgAgAkEEaigCABDDKiACQRRBBBCiGAsgAUEoQQgQohgLIABBwABBCBCiGCADQRBqJAALkA8CCn8BfiMAQRBrIgUkAAJAAkACQAJAAkACQAJAAkACQCAAKAIAQQFrDgcCAwQFBgcAAQsgACgCBCIDQQhqIQECQCADKAIARQRAIAEpAwAiC0IDg0IAUg0BIAUgC6ciATYCDCAFQQxqENAGIAEgASgCACICQQFrNgIAIAJBAUcNASABIAEoAiAQjScMAQsgARC/EAsCQCADLQBFIgFBA0YNACABQQJGBEAgA0EkaigCACEBIAMoAigiAgRAA0AgARCRByABQThqIQEgAkEBayICDQALIANBJGooAgAhAQsgAygCICABEMcqDAELAkAgAykDKCILQgODQgBSDQAgBSALpyIBNgIMIAVBDGoQ0AYgASABKAIAIgJBAWs2AgAgAkEBRw0AIAEgASgCIBCNJwsgA0FAaxDfDgsgACgCBEHYAEEIEKIYDAcLAkAgACkDCCILQgODQgBSDQAgBSALpyIBNgIMIAVBDGoQ0AYgASABKAIAIgJBAWs2AgAgAkEBRw0AIAEgASgCIBCNJwsgACgCICIDQQRqKAIAIQEgAygCCCICBEADQCABKAIAIgAQoQEgAEHAAEEIEKIYIAFBDGohASACQQFrIgINAAsgA0EEaigCACEBCyADKAIAIAEQwCogA0EQaigCACEBIAMoAhQiAgRAA0AgARDqAyABQdgAaiEBIAJBAWsiAg0ACyADQRBqKAIAIQELIAMoAgwgARDGKiADKAIwIgAEQCAAEKEBIABBwABBCBCiGAsgAygCNCIABEAgABD7DiAAKAIAIABBBGooAgAQwiogAEEUQQQQohgLIAMoAjgiAARAIABBBGooAgAhASAAKAIIIgIEQANAIAEoAgAiBBDpAiAEQeAAQQgQohggAUEEaiEBIAJBAWsiAg0ACyAAQQRqKAIAIQELIAAoAgAgARDDKiAAQRRBBBCiGAsgA0EcaigCACEAIAMoAiAiBwRAQQAhBANAIAAgBEEEdGoiASgCACICEKEBIAJBwABBCBCiGCABKAIMIgYEQCAGQQRqIggoAgAhASAGKAIIIgIEQANAIAEoAgAiCRDpAiAJQeAAQQgQohggAUEEaiEBIAJBAWsiAg0ACyAIKAIAIQELIAYoAgAgARDDKiAGQRRBBBCiGAsgBEEBaiIEIAdHDQALIANBHGooAgAhAAsgAygCGCAAEL8qIANBwABBBBCiGAwGCwJAIAApAwgiC0IDg0IAUg0AIAUgC6ciATYCDCAFQQxqENAGIAEgASgCACICQQFrNgIAIAJBAUcNACABIAEoAiAQjScLIABBIGoQ7wYMBQsgACgCBCICQQRqKAIAIQEgAigCCCIABEADQCABEMkHIAFBMGooAgAiAwRAIAMQoQEgA0HAAEEIEKIYCyABQThqIQEgAEEBayIADQALIAJBBGooAgAhAQsgAigCACABEMcqIAJBHEEEEKIYDAQLIAAoAgQiAkEEaigCACEBIAIoAggiAARAA0AgARDJByABQTBqKAIAIgMEQCADEKEBIANBwABBCBCiGAsgAUE4aiEBIABBAWsiAA0ACyACQQRqKAIAIQELIAIoAgAgARDHKiACQRhBBBCiGAwDCwJAIAAoAgQiAykDCCILQgODQgBSDQAgBSALpyIBNgIMIAVBDGoQ0AYgASABKAIAIgJBAWs2AgAgAkEBRw0AIAEgASgCIBCNJwsgAygCICIEBEAgBEEEaigCACEBIAQoAggiAgRAA0AgARD1EiABQTBqIQEgAkEBayICDQALIARBBGooAgAhAQsgBCgCACABEMIqIARBFEEEEKIYCyADQTxqKAIAIQcgAygCQCIIBEBBACEEA0AgByAEQQR0aiIBKAIAIgIQoQEgAkHAAEEIEKIYIAEoAgwiBgRAIAZBBGoiCSgCACEBIAYoAggiAgRAA0AgASgCACIKEOkCIApB4ABBCBCiGCABQQRqIQEgAkEBayICDQALIAkoAgAhAQsgBigCACABEMMqIAZBFEEEEKIYCyAEQQFqIgQgCEcNAAsgA0E8aigCACEHCyADKAI4IAcQvyogA0EoaigCACEBIAMoAiwiAgRAA0AgARCgAyABQThqIQEgAkEBayICDQALIANBKGooAgAhAQsgAygCJCABEMcqIAAoAgRByABBCBCiGAwCCwJAIAAoAgQiBCkDCCILQgODQgBSDQAgBSALpyIBNgIMIAVBDGoQ0AYgASABKAIAIgJBAWs2AgAgAkEBRw0AIAEgASgCIBCNJwsgBCgCICIDBEAgA0EEaigCACEBIAMoAggiAgRAA0AgARD1EiABQTBqIQEgAkEBayICDQALIANBBGooAgAhAQsgAygCACABEMIqIANBFEEEEKIYCyAEKAIkIgEQ6QIgAUHgAEEIEKIYIAAoAgRBMEEIEKIYDAELIAAoAgQiASECIAEpAwAiC0IDg1AEQCAFIAunIgI2AgwgBUEMahDQBiACIAIoAgAiA0EBazYCACADQQFGBEAgAiACKAIgEI0nCyAAKAIEIQILIAFBIGoQ2w8gASgCICABQSRqKAIAEMIqIAJBMEEIEKIYCyAFQRBqJAALkA8CCn8BfiMAQRBrIgUkAAJAAkACQAJAAkACQAJAAkACQCAAKAIAQQFrDgcCAwQFBgcAAQsgACgCBCIDQQhqIQECQCADKAIARQRAIAEpAwAiC0IDg0IAUg0BIAUgC6ciATYCDCAFQQxqENAGIAEgASgCACICQQFrNgIAIAJBAUcNASABIAEoAiAQjScMAQsgARC/EAsCQCADLQBFIgFBA0YNACABQQJGBEAgA0EkaigCACEBIAMoAigiAgRAA0AgARDHBCABQThqIQEgAkEBayICDQALIANBJGooAgAhAQsgAygCICABEMcqDAELAkAgAykDKCILQgODQgBSDQAgBSALpyIBNgIMIAVBDGoQ0AYgASABKAIAIgJBAWs2AgAgAkEBRw0AIAEgASgCIBCNJwsgA0FAaxDsDgsgACgCBEHYAEEIEKIYDAcLAkAgACkDCCILQgODQgBSDQAgBSALpyIBNgIMIAVBDGoQ0AYgASABKAIAIgJBAWs2AgAgAkEBRw0AIAEgASgCIBCNJwsgACgCICIDQQRqKAIAIQEgAygCCCICBEADQCABKAIAIgAQogEgAEHAAEEIEKIYIAFBDGohASACQQFrIgINAAsgA0EEaigCACEBCyADKAIAIAEQwCogA0EQaigCACEBIAMoAhQiAgRAA0AgARDrAyABQdgAaiEBIAJBAWsiAg0ACyADQRBqKAIAIQELIAMoAgwgARDGKiADKAIwIgAEQCAAEKIBIABBwABBCBCiGAsgAygCNCIABEAgABCBDyAAKAIAIABBBGooAgAQwiogAEEUQQQQohgLIAMoAjgiAARAIABBBGooAgAhASAA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KAIAIQAgAigCKCIBBEADQCAAELMDIABBOGohACABQQFrIgENAAsgAkEkaigCACEACyACKAIgIAAQxyoMAQsCQCACKQMoIgpCA4NCAFINACAEIAqnIgA2AgwgBEEMahDQBiAAIAAoAgAiAUEBazYCACABQQFHDQAgACAAKAIgEI0nCyACQUBrEPAOCyACQdgAQQgQohgMBwsCQCAAKQMIIgpCA4NCAFINACAEIAqnIgE2AgwgBEEMahDQBiABIAEoAgAiAkEBazYCACACQQFHDQAgASABKAIgEI0nCyAAKAIgIgJBBGooAgAhACACKAIIIgEEQANAIAAoAgAiAxCjASADQcAAQQgQohggAEEMaiEAIAFBAWsiAQ0ACyACQQRqKAIAIQALIAIoAgAgABDAKiACQRBqKAIAIQAgAigCFCIBBEADQCAAEPUCIABB2ABqIQAgAUEBayIBDQALIAJBEGooAgAhAAsgAigCDCAAEMYqIAIoAjAiAARAIAAQowEgAEHAAEEIEKIYCyACKAI0IgAEQCAAEIQPIAAoAgAgAEEEaigCABDCKiAAQRRBBBCiGAsgAigCOCIDBEAgA0EEaigCACEAIAMoAggiAQRAA0AgACgCACIFENwCIAVB4ABBCBCiGCAAQQRqIQAgAUEBayIBDQALIANBBGooAgAhAAsgAygCACAAEMMqIANBFEEEEKIYCyACQRxqKAIAIQMgAigCICIHBEBBACEFA0AgAyAFQQR0aiIAKAIAIgEQowEgAUHAAEEIEKIYIAAoAgwiBgRAIAZBBGoiCCgCACEAIAYoAggiAQRAA0AgACgCACIJENwCIAlB4ABBCBCiGCAAQQRqIQAgAUEBayIBDQALIAgoAgAhAAsgBigCACAAEMMqIAZBFEEEEKIYCyAFQQFqIgUgB0cNAAsgAkEcaigCACEDCyACKAIYIAMQvyogAkHAAEEEEKIYDAYLAkAgACkDCCIKQgODQgBSDQAgBCAKpyIBNgIMIARBDGoQ0AYgASABKAIAIgJBAWs2AgAgAkEBRw0AIAEgASgCIBCNJwsgAEEgahDxBgwFCyAAKAIEIgJBBGooAgAhACACKAIIIgEEQANAIAAQzAcgAEEwaigCACIDBEAgAxCjASADQcAAQQgQohgLIABBOGohACABQQFrIgENAAsgAkEEaigCACEACyACKAIA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KAIAEKECIAFBBGohASACQQRrIgINAAsMEQsgAUIANwIIAkAgAS0ARCICQQRGBEAgAS0AJEECRgRAIAEoAhAQgCYMAgsgAUIANwIYDAELIAFCADcCICABQgA3AhACQAJAAkAgAkECaw4CAAIBCyABKAIwEIAmDAELIAFCADcCOAsCQCABKAJIIgJFDQAgAkIANwIMIAIoAggiA0UNACACKAIEIQIgA0ECdCEDA0AgACACKAIAEKECIAJBBGohAiADQQRrIgMNAAsLIAEoAkwiAkUNACABQgA3AlAgAiAAENsYCyABKAJYIgFFDRAgAUIANwIMIAFBCGooAgAiAkUNECABQQRqKAIAIQEgAkECdCECA0AgACABKAIAEKECIAFBBGohASACQQRrIgINAAsMEAsgAUIANwIQIAEoAggiAiACIAEoAgxBOGxqIAAQqQMPCyABQgA3AgggAUEEaigCACEBDA0LIAFCADcCECABKAIMIgJFDQ0gASgCCCEBIAJBOGwhAgNAIAFCADcCKCABKAIAQQdHBEAgASAAEOkHCyAAIAEoAjAQoQIgAUE4aiEBIAJBOGsiAg0ACwwNCyABQgA3AgggAUEEaigCACEBDAsLIAFCADcCCCABQQRqKAIAIQEMCgsgAUIANwIUIAEoAgRFBEAgASgCECICRQ0LIAEoAgwhASACQQJ0IQIDQCAAIAEoAgAQoQIgAUEEaiEBIAJBBGsiAg0ACwwLCyABKAIQIgJFDQogASgCDCEBIAJBAnQhAgNAIAAgASgCABChAiABQQRqIQEgAkEEayICDQALDAoLIAFCADcCFCAAIAEoAgQQoQIgACABKAIIEKECIAAgASgCDBChAiABQRBqKAIAIQEMCAsgAUIANwIIIAFCADcCICABQRBqQgA3AgAgASgCMCICBEAgACACEKECCyABKAI0IgENBwwICyABQgA3AgggAUEEaigCACEBDAYLIAFCADcCCCABQQRqKAIAIQEMBQsgAUIANwIMIAAgASgCBBChAiABQQhqKAIAIQEMBAsgAUIANwIIIAFCADcCICABQRBqQgA3AgAgASgCMCICBEAgACACEKECCyABKAI0IgIEQCAAIAIQoQILIAEoAkAiAgRAIAAgAhChAgsgASgCRCIBDQMMBAsgAUIANwIoAkACQAJAAkACQEEEIAEoAghBgICAgHhzIgIgAkEETxtBAWsOBAECAwQACyABQgA3AhAPCyABQgA3AhgPCyABQgA3AgwPCyABQgA3AhAPCyABQQhqIgNCADcCGCADKAIIIgIEQCADKAIEIQEgAkECdCECA0AgACABKAIAEKECIAFBBGohASACQQRrIgINAAsLIAMoAhQiAARAIABBBXQhAiADKAIQQQxqIQEDQCABQQRrQgA3AgAgAUEgaiEBIAJBIGsiAg0ACwsPCyABQQhBECABLQAcQQJGIgIbakEANgIAIAFCADcCICABQQxBFCACG2pBADYCACABKAIoIgFFDQIgAUIANwIEIAEoAgAhAQwBCwsgAUIANwIYIAFCADcCCAJAAkACQCABLQA8QQJrDgIAAgELIAEoAigQgCYMAQsgAUIANwIwCwJAIAEoAkAiAkUNACACQgA3AgwgAkEIaigCACIDRQ0AIAJBBGooAgAhAiADQQJ0IQMDQCAAIAIoAgAQoQIgAkEEaiECIANBBGsiAw0ACwsgASgCRCICRQ0AIAFCADcCSCACIAAQ2xgLC8UOAQ9/IwBBoAFrIgIkACACQSBqIgQgARB2IAIoAiQhAwJAAkACQAJAIAIoAiAiBUGAgICAeEcEQCACKAIoIQYgAkEANgIMIAJCgICAgIABNwIEIAIgAyAGQQZ0IgxqIg02AhwgAiAFNgIYIAIgAzYCFCACIAM2AhAgBkUNAiACQeQAaiEHIARBBHIhBUEEIQhBCCEOA0AgAygCACIJQQdGBEAgA0FAayENDAMLIANBQGshBiAFIANBBGoiBCkCADcCACAFQQhqIARBCGoiCikCADcCACAFQRBqIARBEGoiCykCADcCACAFQRhqIARBGGoiDykCADcCACAFQSBqIARBIGopAgA3AgAgBUEoaiAEQShqKQIANwIAIAVBMGogBEEwaikCADcCACAFQThqIARBOGooAgA2AgAgAiAJNgIgAkACQAJAAkACQAJAIAkOBAQDAgEACyACIAY2AhQgAkGUAWogAUEoaiIDEN0HIAJB1wA2ApABIAJByNvfADYCjAEgAkEwOgCIASADQfACQbgCIAEoAsgCQSVGIgQbaigCACIGIANB9AJBvAIgBBtqKAIAIgQgBCAGSxsgBiAEIAQgBkkbIAJBiAFqEO8bIQYCQCADEL8KIgNFDQAgAygCAEEkRw0AIAEgASkD4AI3A5gDIAEoAsgCIAFBJTYCyAJBJEYEQCABIAEoAswCEMAIDAELQYmE4QBBKEGg3N8AENUhAAsgAEGAgICAeDYCACAAIAY2AgQgAkEgaiIAKAI0IgEgACgCOBCSJSAAKAIwIAEQwCogABDLCyACQRBqEPcWDAkLIAJB+ABqIA8oAgA2AgAgAkHwAGogCykCADcDACACQegAaiAKKQIANwMAIAIgBCkCADcDYAwDCyACQfAAaiALKQIANwMAIAJB6ABqIAopAgA3AwAgAiAEKQIANwNgDAILIAJB+ABqIA8oAgA2AgAgAkHwAGogCykCADcDACACQegAaiAKKQIANwMAIAIgBCkCADcDYAwBCyAHIAMpAgg3AgAgB0EYaiADQSBqKQIANwIAIAdBEGogA0EYaikCADcCACAHQQhqIANBEGopAgA3AgALIAIoAgQgEEYEQCACQQRqEPALIAIoAgghDgsgCCAOaiIDQQRrIAk2AgAgAyACKQNgNwIAIANBCGogAkHoAGopAwA3AgAgA0EQaiACQfAAaikDADcCACADQRhqIAJB+ABqKQMANwIAIANBIGogAkGAAWooAgA2AgAgAiAQQQFqIhA2AgwgAigCVCIDIAIoAlgQkiUgAigCUCADEMAqIAIoAiBBBE8EQCACQSBqEMsLCyAIQShqIQggBiEDIAxBQGoiDA0ACwwBCyAAQYCAgIB4NgIAIAAgAzYCBAwDCyACIA02AhQLIAFByAJqIQMgAUEoaiEGIAJBEGoQ9xYCQAJAAkACQCABKALIAiIEQSVGBEAgASgC8AIhBCABQSU2AvACAkAgBEElRwRAIAJBxABqIAFBlANqKAIANgIAIAJBPGogAUGMA2opAgA3AgAgAkE0aiABQYQDaikCADcCACACQSxqIAFB/AJqKQIANwIAIAIgBDYCICACIAEpAvQCNwIkDAELIAJBIGogBhAyIAMoAgBBJUYNACADEOgDCyADIAIpAyA3AwAgA0EgaiACQUBrKQMANwMAIANBGGogAkE4aikDADcDACADQRBqIAJBMGopAwA3AwAgA0EIaiACQShqKQMANwMAIAMoAgAiBEElRg0BCyAEQQpGDQELIAJBKGogBhDdByACQfDM3wA2AiQgAkE0OgAgIAZB8AJBuAIgAygCAEElRiIFG2ooAgAiBCAGQfQCQbwCIAUbaigCACIFIAQgBUkbIAQgBSAEIAVLGyACQSBqEO8bIQUgAygCACIEQSVGBEAgASgC8AIhBCABQSU2AvACAkAgBEElRwRAIAJBxABqIAFBlANqKAIANgIAIAJBPGogAUGMA2opAgA3AgAgAkE0aiABQYQDaikCADcCACACQSxqIAFB/AJqKQIANwIAIAIgBDYCICACIAEpAvQCNwIkDAELIAJBIGogBhAyIAMoAgBBJUYNACADEOgDCyADIAIpAyA3AwAgA0EgaiACQUBrKQMANwMAIANBGGogAkE4aikDADcDACADQRBqIAJBMGopAwA3AwAgA0EIaiACQShqKQMANwMAIAMoAgAiBEElRg0DCyAEQSRGDQEMAgsgAUElNgLIAiABIAEpA+ACNwOYAyACQTRqIAFB3AJqKAIANgIAIAJBLGogAUHUAmopAgA3AgAgAkEKNgIgIAIgASkCzAI3AiQgAkEgahDoAyAAQQhqIAJBDGooAgA2AgAgACACKQIENwIADAMLIAFBJTYCyAIgASABKQPgAjcDmAMgASABKALMAhDACAsgAEGAgICAeDYCACAAIAU2AgQLIAJBBGoQ/QkgAigCBCACKAIIEMUqCyACQaABaiQAC64PAgN/AX4jAEEQayICJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCAA4SARERAgMEBQYHCAkKCwwNDg8QAAsgAEEEahD6AQwQCyAAKAIIIgEgACgCDBCZKCAAKAIEIAEQwioMDwsgAEEEahD6ASAAKAIIIgAQowIgAEEwQQgQohgMDgsgACgCDEUNDSAAQQxqEPoBDA0LAkAgACkDECIEQgODQgBSDQAgAiAEpyIBNgIMIAJBDGoQ0AYgASABKAIAIgNBAWs2AgAgA0EBRw0AIAEgASgCIBCNJwsgACgCKCIAEKMCIABBMEEIEKIYDAwLIAAtACRBAkYNCyAAKQMQIgRCA4NCAFINCyACIASnIgA2AgwgAkEMahDQBiAAIAAoAgAiAUEBazYCACABQQFHDQsgACAAKAIgEI0nDAsLIAAtACRBAkYNCiAAKQMQIgRCA4NCAFINCiACIASnIgA2AgwgAkEMahDQBiAAIAAoAgAiAUEBazYCACABQQFHDQogACAAKAIgEI0nDAoLIABBBGoQ+gEgACgC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QcQBaiABQYwDaikCADcCACACQbwBaiABQYQDaikCADcCACACQbQBaiABQfwCaikCADcCACACIAM2AqgBIAIgASkC9AI3AqwBDAELIAJBqAFqIAUQMiAEKAIAQSVGDQAgBBDoAwsgBCACKQOoATcDACAEQSBqIAJByAFqKQMANwMAIARBGGogAkHAAWopAwA3AwAgBEEQaiACQbgBaikDADcDACAEQQhqIAJBsAFqKQMANwMAIAQoAgAiA0ElRg0BCyADQQtGDQELIAJBAToANiACIAEtAMACOgA1IAIgAS0AxgI6ADsgAiABKQGqAjcAHyACIAEpAbICNwAnIAIgASgBugI2AC8gAiABLwG+AjsAMyACIAEoAcICNgA3IAJBPGogASACQR9qEL8IAkAgAigCPCIBKALIAiIDQSVHDQAgAUHIAmohAyABKALwAiEEIAFBJTYC8AICQCAEQSVHBEAgAkHMAWogAUGUA2ooAgA2AgAgAkHEAWogAUGMA2opAgA3AgAgAkG8AWogAUGEA2opAgA3AgAgAkG0AWogAUH8AmopAgA3AgAgAiAENgKoASACIAEpAvQCNwKsAQwBCyACQagBaiABQShqEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDqAE3AwAgA0EgaiACQcgBaikDADcDACADQRhqIAJBwAFqKQMANwMAIANBEGogAkG4AWopAwA3AwAgA0EIaiACQbABaikDADcDACADKAIAIgNBJUcNACABQYACaigCACEBIAJBADoAqAEgASABIAJBqAFqEO8bDAULAkAgA0Ebaw4KAgACAAAAAAAABAALIAJB4ABqIAEQuQcgAikDYEICUgRAIAJBiAFqIAJB8ABqKQMANwMAIAJBgAFqIgMgAkHoAGopAwA3AwAgAiACKQNgIgk3A3ggCadBAXFFBEAgAikDgAEhCSACKAKMASEEIAIoAogBIQUgAkEHOgCoASABIAUgBCACQagBahDpIkGgv+QALQAAGkHAABCEASIDRQ0HIAMgBDYCFCADIAU2AhAgAyAJNwMIIANBLzYCAAwECyACQZABaiADEJMUIAJBvAFqIAJBoAFqKQMANwIAIAJBtAFqIAJBmAFqKQMANwIAIAIgAikDkAE3AqwBQaC/5AAtAAAaQcAAEIQBIgNFDQYgA0EaNgIAIAMgAikCqAE3AgQg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AkEAOwFeIAJBADYCGCACQoCAgICAATcCECACIA03AhwgAkEANgJEIAJBAToASCACQQA2AlQgAkKAgICAwAA3AjwgAkKAgICAgAE3AkwgAiAALwFMOwFcIAIgACgCSDYCWCACQRBqIQMgASgCBCEFAkACQAJAAkAgASgCAEEBaw4CAQIACyADIAUQsx0MAgsgBSgCCCIERQ0BIAUoAgQhBSAEQThsIQQDQCADIAUQ+RYgBUE4aiEFIARBOGsiBA0ACwwBCyAFIAMQ3QoLIAItAF0hBSACQQA6AF0gASgCCCIEIAMQzQEgBCgCAEEaRgRAIAIgBEEIahCtISADIAIpAwAgAigCCBC4CgsgAiAFOgBdIAEoAgwhASACQYQBaiAMNwIAIAJB9ABqIAw3AgAgAiANNwJ8IAIgAi0AXDoArAEgAkEAOwGuASACIAU6AK0BIAIgAigCWDYCqAEgAkEANgJoIAJCgICAgIABNwJgIAIgDTcCbCACQoCAgICAATcCnAEgAkKAgICAwAA3AowBIAJBADYCpAEgAkEBOgCYASACQQA2ApQBAkAgASgCAEUEQCABQQRqIAJB4ABqEIEjDAELIAEgAkHgAGoQ1wcLAkAgAigCpAEiBUUNACACQSxqIAUQgCogAkG0AWogAigCoAEgAigCpAEQ2gwgAiACKAK0ATYCyAEgAiACKAK4ASIBNgLAASACIAE2AsQBIAIgASACKAK8ASIEQQR0aiIDNgLMASAEBEADQCACQeAAaiABKQMAIAEoAggQuAogAUEQaiIBIANHDQALIAIgAzYCxAELIAJBwAFqENERIAItAEhFBEAgAkEQaiACKAKkARDxEyACIAIoApwBNgLIASACIAIoAqABIgE2AsABIAIgATYCxAEgAiABIAIoAqQBIgRBBHRqIgM2AswBIAQEQANAIAJBEGogASkDACABKAIIQQEQpQIgAUEQaiIBIANHDQALIAIgAzYCxAELIAJBwAFqENERDAELIAIoAqQBIQMgAigCoAEhASACIAIoApwBNgLIASACIAE2AsABIAIgATYCxAEgAiABIANBBHRqNgLMASACQcwAaiACQcABahCQFwsgAkH4AWoiBCACQZgBaigCADYCACACQfABaiIGIAJBkAFqKQIANwMAIAJB6AFqIgcgAkGIAWopAgA3AwAgAkHgAWoiCCACQYABaikCADcDACACQdgBaiIJIAJB+ABqKQIANwMAIAJB0AFqIgogAkHwAGopAgA3AwAgAkHIAWoiCyACQegAaikCADcDACACIAIpAmA3A8ABIAIoAkQiAyACKAI8RgRAIAJBPGoQ9wsLIAIoAkAgA0E8bGoiASACKQPAATcCACABQThqIAQoAgA2AgAgAUEwaiAGKQMANwIAIAFBKGogBykDADcCACABQSBqIAgpAwA3AgAgAUEYaiAJKQMANwIAIAFBEGogCikDADcCACABQQhqIAspAwA3AgAgAiADQQFqNgJEIAVFBEAgAigCoAEgAigCpAEQ9BQgAigCnAEgAigCoAEQ5ioLAkAgAigCVCIFRQ0AIABBHGogBRCAKiACQcABaiACKAJQIAIoAlQQ2gwgAiACKALAATYCaCACIAIoAsQBIgE2AmAgAiABNgJkIAIgASACKALIASIEQQR0aiIDNgJsIAQEQANAIAJBEGogASkDACABKAIIELgKIAFBEGoiASADRw0ACyACIAM2AmQLIAJB4ABqENERIAAtADhFBEAgACACKAJUEPETIAIgAigCTDYCaCACIAIoAlAiATYCYCACIAE2AmQgAiABIAIoAlQiBEEEdGoiAzYCbCAEBEADQCAAIAEpAwAgASgCCEEBEKUCIAFBEGoiASADRw0ACyACIAM2AmQLIAJB4ABqENERDAELIAIoAlQhAyACKAJQIQEgAiACKAJMNgJoIAIgATYCYCACIAE2AmQgAiABIANBBHRqNgJsIABBPGogAkHgAGoQkBcLIAJBmAFqIgQgAkHIAGooAgA2AgAgAkGQAWoiBiACQUBrKQIANwMAIAJBiAFqIgcgAkE4aikCADcDACACQYABaiIIIAJBMGopAgA3AwAgAkH4AGoiCSACQShqKQIANwMAIAJB8ABqIgogAkEgaikCADcDACACQegAaiILIAJBGGopAgA3AwAgAiACKQIQNwNgIAAoAjQiAyAAKAIsRgRAIABBLGoQ9wsLIAAoAjAgA0E8bGoiASACKQNgNwIAIAFBOGogBCgCADYCACABQTBqIAYpAwA3AgAgAUEoaiAHKQMANwIAIAFBIGogCCkDADcCACABQRhqIAkpAwA3AgAgAUEQaiAKKQMANwIAIAFBCGogCykDADcCACAAIANBAWo2AjQgBUUEQCACKAJQ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IARBssrHAEEOENAoDQMgBSAEQcDKxwBBChDQKA0EIANBgICAgHg2AnAgA0EAOgB0DAoLIANBqAFqEPglQfB8IQQDQCAERQ0FIAcgBiAEQYScygBqKAIAIARBiJzKAGooAgAQ0CgNBiAEQRBqIQQMAAsACyADQRhqQYyyzgBBowEgByAGEKwOIANBgAFqIAMoAhggAygCHBD2KSADKAKAAUGAgICAeEYEQCADQYCAgIB4NgJwIANBAToAdAwJCyADQfgAaiADQYgBaikCADcDACADIAMpAoABNwNwDAgLIANBIGpBzNvUAEENIAcgBhCsDiADQYABaiADKAIgIAMoAiQQ9ikgAygCgAFBgICAgHhGBEAgA0GAgICAeDYCcCADQQE6AHQMCAsgA0H4AGogA0GIAWopAgA3AwAgAyADKQKAATcDcAwHCyADQShqQZy41gBBDiAHIAYQrA4gA0GAAWogAygCKCADKAIsEPYpIAMoAoABQYCAgIB4RgRAIANBgICAgHg2AnAgA0EBOgB0DAcLIANB+ABqIANBiAFqKQIANwMAIAMgAykCgAE3A3AMBgsgA0EwakHkntUAQRIgByAGEKwOIANBgAFqIAMoAjAgAygCNBD2KSADKAKAAUGAgICAeEYEQCADQYCAgIB4NgJwIANBAToAdAwGCyADQfgAaiADQYgBaikCADcDACADIAMpAoABNwNwDAULIANBgICAgHg2AnAgA0EBOgB0IAMoAqgBIAMoAqwBEKgvDAQLIARBoANqIQVB9JjKACEEA0AgBQRAIANBgAFqIgYgBCgCCCAEKAIMEK0OIANBqAFqIAYQ4iEgAygCgAEgAygChAEQqC8gBUEQayEFIARBEGohBAwBBSADQfgAaiADQbABaikCADcDACADIAMpAqgBNwNwDAULAAsACyADQRBqQZTozQBBowEgBSAEEKwOIANBgAFqIAMoAhAgAygCFBD2KSADKAKAAUGAgICAeEYEQCADQYCAgIB4NgJwIANBAToAdAwDCyADQfgAaiADQYgBaikCADcDACADIAMpAoABNwNwDAILIANB8ABqIAUgBBC8CQwBCyAFIARB/8vIAEEOENAoRQRAIAUgBEGznsgAQQsQ0ChFBEAgA0EIakG8/tMAQTwgBSAEEKwOIANBgAFqIAMoAgggAygCDBD2KSADKAKAAUGA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AGogAUE0aikCADcCACADQfwAaiABQTxqKAIANgIAIAMgASkCLDcCbCADIAY2AmggA0HoAGoiBRCODkEBIQYgBBChEw0BIAEoAtgCIQEgA0EAOgBoIAEgASAFEO8bIQJBASEFDAMLIANB6ABqEL0rDAELIANB/QBqIAJBFWopAAA3AAAgA0H4AGogAkEQaikAADcDACADQfAAaiACQQhqKQAANwMAIAMgAikAADcDaAJAIAQQoRMiAkUNACACKAIAQQJHDQAgA0HoAGogAi0ACCACQQlqLQAAENwMDQAgBBDsGSICRQ0AIAIoAgBBAkcNACACLQAIDQAgAi0ACUEORw0AIAQQ7BkaIAEtAHBBAXMgASgCUEElR3EhCQtBASEFIAYgCXJFBEAgA0EQaiABQQAgCBDDByADKAIUIQIgAygCECEFDAILIANBmAFqIgogARDaBiADKAKgASECIAMpA5gBIgtQDQEgAyADKAKkATYClAEgAyACNgKQASADIAs3A4gBQQAhAgJAAkACQCAJBEAgBBChEyICRQRAIAEoAtgCIQEgA0EAOgCYASABIAEgChDvGyECDAQLIAIoAgBBJEYEQCABIAEpA0A3A3ggASgCKCABQSU2AihBJEcNAiABKAIsIQIMBAsgASgCKCECIAFBJTYCKCABIAEpA0A3A3ggA0GkAWogAUE0aikCADcCACADQawBaiABQTxqKAIANgIAIAMgASkCLDcCnAEgAyACNgKYASADQZgBahCODiAEEKETGiADQQhqIAFBACABQfwAaiABQUBrIAEoAihBJUYbKAIAEMMHIAMoAgwhAiADKAIIDQMLIAEoAnwhBSADQbgBaiADQYgBahCTFCADQawBaiADQcgBaikDADcCACADQaQBaiADQcABaikDADcCACADIAMpA7gBNwKcAUEIQeAAELkuIgRFDQEgBEESNgIAIAQgAykCmAE3AgQgBCAGOgAsIAQgAjYCKCAEQQxqIANBoAFqKQIANwIAIARBFGogA0GoAWopAgA3AgAgBEEcaiADQbABaigCADYCACAEIAcgBSAFIAdJGzYCJCAEIAcgBSAFIAdLGzYCICABKAJ8IQFBBEEMELkuIgJFDQEgAiAENgIAIAIgCCABIAEgCEkbNgIIIAIgCCABIAEgCEsbNgIEQQAhBQwEC0GJhOEAQShB0Nzf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BAsgAkEANgIoIAJBATYCHCACQbDJ1gA2AhggAkIENwIgIAEoAhQgASgCGCACQRhqEO8rDAMLIAJBADYCKCACQQE2AhwgAkHYydYANgIYIAJCBDcCICABKAIUIAEoAhggAkEYahDvKwwCCyACQQA2AiggAkEBNgIcIAJBgMrWADYCGCACQgQ3AiAgASgCFCABKAIYIAJBGGoQ7ysMAQsgAkEANgIoIAJBATYCHCACQczK1gA2AhggAkIENwIgIAEoAhQgASgCGCACQRhqEO8rCyACQTBqJAALig4CBX8BfiMAQRBrIgUkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgAOExISAQIDBAUGBwgJCgsMDQ4PEBEACyAAQRBqEL8QIAAtADxBA0cEQCAAQShqENsOCyAAKAJAIgIEQCACQQRqKAIAIQEgAigCCCIDBEADQCABKAIAIgQQtQIgBEHgAEEIEKIYIAFBBGohASADQQFrIgMNAAsgAkEEaigCACEBCyACKAIAIAEQwyogAkEUQQQQohgLIAAoAkQiAEUNESAAQQRqKAIAIQEgACgCCCIDBEADQAJAIAEoAgAiAgRAIAIQogEgAkHAAEEIEKIYDAELIAFBBGooAgAiAhCUBSACQfAAQQgQohgLIAFBDGohASADQQFrIgMNAAsgAEEEaigCACEBCyAAKAIAIAEQwCogAEEUQQQQohgMEQsgACgCBCIBQYCAgIB4RgRAIABBCGoQgAogACgCCCAAKAIMEMUqIAAoAiAEQCAAQSBqEMQcCyAAKAIUIgAoAgAiARC1AiABQeAAQQgQohggAEEMQQQQohgMEQsgAEEEahCACiABIAAoAggQxSogACgCHARAIABBHGoQxBwLIAAoAhAiACgCACIBELUCIAFB4ABBCBCiGCAAQQxBBBCiGAwQCyAAQRBqENsOIAAoAigiAkUNDyACQQRqKAIAIQEgAigCCCIABEADQCABKAIAIgMQtQIgA0HgAEEIEKIYIAFBBGohASAAQQFrIgANAAsgAkEEaigCACEBCyACKAIAIAEQwyogAkEUQQQQohgMDwsCQCAALQBEIgFBBEYEQCAAQRBqENsODAELIABBGGoQvxAgAUEDRwRAIABBMGoQ2w4LIAAoAkgiAQRAIAEQvCIgASgCACABQQRq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KAIgEI0nDAELAkACQAJAAkACQCABDgQBAgMEAAsgACkDGCAAKAIgEJ0VDAQLIAApAxAQ0BoMAwsgAEEQahC/EAwCCyAAKQMgELIZDAELIABBDGoQuiwLIAAoAjwiAQRAIAEQngEgAUHAAEEIEKIYCyAAKAJAIgEEQCABKAIAIgIQ6gIgAkHgAEEIEKIYIAFBDEEEEKIYCyAAKAI0IQIgACgCOCIDBEAgAiEBA0AgASgCACIFEJ4BIAVBwABBCBCiGCABQQxqIQEgA0EBayIDDQALCyAAKAIwIAIQwCoMBwsgABDyDCAAKAJEIQIgACgCSCIDBEAgAiEBA0AgARC/CSABQUBrIQEgA0EBayIDDQALCyAAKAJAIAIQwSogACgCICIDQYCAgIB4Rg0GIAAoAiQhAiAAKAIoIgAEQCACIQEDQCABEIUDIAFBMGohASAAQQFrIgANAAsLIAMgAhDCKgwGCyAAQQhqEPIMIAAoAjAiAkEEaigCACEBIAIoAggiAARAA0AgARDbCCABQUBrIQEgAEEBayIADQALIAJBBGooAgAhAQsgAigCACABEMEqIAJBEGooAgAhASACKAIUIgAEQANAIAEoAgAiAxCeASADQcAAQQgQohggAUEMaiEBIABBAWsiAA0ACyACQRBqKAIAIQELIAIoAgwgARDAKiACKAIYIgNBgICAgHhHBEAgAkEcaigCACEBIAIoAiAiAARAA0AgARCFAyABQTBqIQEgAEEBayIADQALIAIoAhghAyACQRxqKAIAIQELIAMgARDCKgsgAigCPCIABEAgABD/DiAAKAIAIABBBGooAgAQwiogAEEUQQQQohgLIAIoAkAiAARAIAAoAgAiARDqAiABQeAAQQgQohggAEEMQQQQohgLIAJByABBBBCiGAwFCwJAIAApAwgiBkIDg0IAUg0AIAQgBqciATYCCCAEQQhqENAGIAEgASgCACICQQFrNgIAIAJBAUcNACABIAEoAiAQjScLIAAoAiAiAkEEaigCACEBIAIoAggiAARAA0AgARDbCCABQUBrIQEgAEEBayIADQALIAJBBGooAgAhAQsgAigCACABEMEqIAJBEGooAgAhASACKAIUIgAEQANAIAEoAgAiAxCeASADQcAAQQgQohggAUEMaiEBIABBAWsiAA0ACyACQRBqKAIAIQELIAIoAgwgARDAKiACKAIYIgNBgICAgHhHBEAgAkEcaigCACEBIAIoAiAiAARAA0AgARCFAyABQTBqIQEgAEEBayIADQALIAIoAhghAyACQRxqKAIAIQELIAMgARDCKgsgAigCPCIABEAgABD/DiAAKAIAIABBBGooAgAQwiogAEEUQQQQohgLIAIoAkAiAARAIAAoAgAiARDqAiABQeAAQQgQohggAEEMQQQQohgLIAJByABBBBCiGAwECyAAQQhqEPIMIAAoAjwiAQRAIAEQngEgAUHAAEEIEKIYCyAAKAJAIgEEQCABKAIAIgIQ6gIgAkHgAEEIEKIYIAFBDEEEEKIYCyAAKAI0IQIgACgCOCIDBEAgAiEBA0AgASgCACIFEJ4BIAVBwABBCBCiGCABQQxqIQEgA0EBayIDDQALCyAAKAIwIAIQwCoMAwsCQCAAKQMIIgZCA4NCAFINACAEIAanIgE2AgwgBEEMahDQBiABIAEoAgAiAkEBazYCACACQQFHDQAgASABKAIgEI0nCyAAKAIkIgEEQCABEJ4BIAFBwABBCBCiGAsgACgCKCIBBEAgASgCACICEOoCIAJB4ABBCBCiGCABQQxBBBCiGAsgACgCMCECIAAoAjQiAwRAIAIhAQNAIAEoAgAiBRCeASAFQcAAQQgQohggAUEMaiEBIANBAWsiAw0ACwsgACgCLCACEMAqDAILIAAoAgghAiAAKAIMIgMEQCACIQEDQCABENQKIAFBKGohASADQQFrIgMNAAsLIAAoAgQgAhDFKiAAKAIQIgBFDQEgACgCACIBEOoCIAFB4ABBCBCiGCAAQQxBBBCiGAwBCyAAKAIIIQIgACgCDCIDBEAgAiEBA0AgARCFAyABQTBqIQEgA0EBayIDDQALCyAAKAIEIAIQwioLIARBEGokAAvLCwISfwJ+IwBB0AJrIhAkACABrSIXQv//////////P3wgF4AhFwJ/IAFBgSBPBEBBAUEgIAFBAXJna0EBdiIGdCABIAZ2akEBdgwBC0HAACABIAFBAXZrIgYgBkHAAE8bCyETIABBEGshFkEBIQwDQEEAIQ5BASEKIAEgD0sEQCAAIA9BBHRqIQggD60iGAJ/AkAgASAPayINIBNJDQACQCANQQJJBEAgDSEKDAELAn8CQAJAAkAgCCgCFCIGIAgoAhgiByAIKAIEIAgoAggQwCQiBUH/AXEEfyAFBSAILQAcIAgtAAxrC0H/AXFB/wFGIgtFBEBBAiEKIA1BAkYNBSAIIQUDQCAFQSRqKAIAIhEgBUEoaigCACIOIAYgBxDAJCIGQf8BcQR/IAYFIAVBLGotAAAgBUEcai0AAGsLQf8BcUH/AUYNAyAFQRBqIQUgDiEHIBEhBiANIApBAWoiCkcNAAsMAQsgDUECRg0CQQIhCiAIIQUDQCAFQSRqKAIAIhEgBUEoaigCACIOIAYgBxDAJCIGQf8BcQR/IAYFIAVBLGotAAAgBUEcai0AAGsLQf8BcUH/AUcNAiAFQRBqIQUgDiEHIBEhBiANIApBAWoiCkcNAAsLIA0hCgsgCiATSQ0DIAtFIApBAklyDQIgCCAKQQR0aiAKQQF2Ig5BBHRrDAELQQIhCkEBIQ4gCEEQagsgDkEEdGpBEGshC0EAIQYDQEEAIQUDQCAFIAhqIgcoAgAhDSAHIAUgC2oiBygCADYCACAHIA02AgAgBUEEaiIFQRBHDQALIAhBEGohCCALQRBrIQsgBkEBaiIGIA5HDQALCyAKQQF0QQFyDAELIBMgDSANIBNLG0EBdCAERQ0AGiAIQSAgDSANQSBPGyIGIAIgA0EAQQAQrQEgBkEBdEEBcgsiCkEBdiAPaq18IBd+IA8gDEEBdmutIBh8IBd+hXmnIQ4LAkACQCAJQQJJDQAgFiAPQQR0IgZqIREgACAGaiEVA0AgCUEBayINIBBBjgJqai0AACAOSQ0BAn8CQAJAAkAgAyAQQQRqIA1BAnRqKAIAIgVBAXYiBiAMQQF2IgtqIhRPIAUgDHJBAXFFcUUEQCAAIA8gFGtBBHRqIRIgBUEBcUUEQCASIAYgAiADIAZBAXJnQQF0QT5zQQAQrQELIAxBAXFFBEAgEiAGQQR0aiALIAIgAyALQQFyZ0EBdEE+c0EAEK0BCyAFQQJJIAxBAklyDQMgCyAGIAYgC0siCyIFGyIMIANLDQMgAiASIAZBBHRqIgcgEiAFGyIFIAxBBHQiCRCBCSIIIAlqIQkgCwRAIBEhBgNAIAlBDGsoAgAgCUEIaygCACAFQQxrKAIAIAVBCGsoAgAQwCQiB0H/AXFFBEAgCUEEay0AACAFQQRrLQAAayEHCyAGIAVBEGsiBSAJQRBrIgkgB0H/AXEiB0H/AUYiDBsiCykCADcCACAGQQhqIAtBCGopAgA3AgAgCSAMQQR0aiEJIAUgB0H/AUdBBHRqIgUgEkYNAyAGQRBrIQYgCCAJRw0ACwwCCyAMRSAHIBVGcg0BIAghBgNAIAUgByAGIAcoAgQgBygCCCAGKAIEIAYoAggQwCQiC0H/AXEEfyALBSAHLQAMIAYtAAxrC0H/AXEiCEH/AUYiDBsiCykCADcCACAFQQhqIAtBCGopAgA3AgAgBUEQaiEFIAYgCEH/AUdBBHRqIgYgCUYNAyAHIAxBBHRqIgcgFUcNAAsMAgsgFEEBdAwDCyAIIQYLIAUgBiAJIAZrEIEJGgsgFEEBdEEBcgshDEEBIQUgDSIJQQFLDQALDAELIAkhBQsgEEGOAmogBWogDjoAACAQQQRqIAVBAnRqIAw2AgAgASAPSwRAIAVBAWohCSAKQQF2IA9qIQ8gCiEMDAELCyAMQQFxRQRAIAAgASACIAMgAUEBcmdBAXRBPnNBABCtAQsgEEHQAmokAAuIDQIIfwJ+IwBBMGsiAyQAIAFByAJqIQQgAUEoaiEHAkACQAJAIAEoAsgCIgVBJUcEQCABQZwDaiEJDAELIAEoAvACIQUgAUElNgLwAgJAIAVBJUcEQCADQSxqIAFBlANqKAIANgIAIANBJGogAUGMA2opAgA3AgAgA0EcaiABQYQDaikCADcCACADQRRqIAFB/AJqKQIANwIAIAMgBTYCCCADIAEpAvQCNwIMDAELIANBCGogBxAyIAQoAgBBJUYNACAEEOgDCyAEIAMpAwg3AwAgBEEgaiADQShqKQMANwMAIARBGGogA0EgaikDADcDACAEQRBqIANBGGopAwA3AwAgBEEIaiADQRBqKQMANwMAIAFBnANqIQkgASgCyAIiBUElRw0AIAEoApwDIQggASgC8AIhBSABQSU2AvACAkAgBUElRwRAIANBLGogAUGUA2ooAgA2AgAgA0EkaiABQYwDaikCADcCACADQRxqIAFBhANqKQIANwIAIANBFGogAUH8AmopAgA3AgAgAyAFNgIIIAMgASkC9AI3AgwMAQsgA0EIaiAHEDIgBCgCAEElRg0AIAQQ6AMLIAQgAykDCDcDACAEQSBqIANBKGopAwA3AwAgBEEYaiADQSBqKQMANwMAIARBEGogA0EYaikDADcDACAEQQhqIANBEGopAwA3AwAgBCgCACIFQSVHDQEgASgCgAIhASADQQA6AAggASABIANBCGoQ7xshASAAQQI6ABggACABNgIADAILIAEoAuACIQgLAkACQAJAAn8CQAJAAkACQAJAQRAgBUECayIGIAZBI08bQRBrIgoEQCAKQRJHDQEgAUElNgLIAiABIAEpA+ACNwOYAyAFQSRHDQggASgCzAIhASAAQQI6ABggACABNgIADAoLIAFBJTYCyAIgASABKQPgAjcDmAMgA0EcaiABQdwCaigCADYCACADQRRqIAFB1AJqKQIANwIAIAMgBTYCCCADIAEpAswCNwIMIAZBEEcgBkEiTXENASADKQMYIQsgBQ0CIAMpAxAhDAwDCyADQRRqIgggBxDdByADQQ42AhAgA0Gs9d8ANgIMIANBMDoACCAHQfACQbgCIAQoAgBBJUYiBRtqKAIAIgIgB0H0AkG8AiAFG2ooAgAiBSACIAVJGyACIAUgAiAFSxsgA0EIahDvGyEGIAQoAgAiBUElRgRAIAEoAvACIQIgAUElNgLwAgJAIAJBJUcEQCADQSxqIAFBlANqKAIANgIAIANBJGogAUGMA2opAgA3AgAgA0EcaiABQYQDaikCADcCACAIIAFB/AJqKQIANwIAIAMgAjYCCCADIAEpAvQCNwIMDAELIANBCGogBxAyIAQoAgBBJUYNACAEEOgDCyAEIAMpAwg3AwAgBEEgaiADQShqKQMANwMAIARBGGogA0EgaikDADcDACAEQRBqIANBGGopAwA3AwAgBEEIaiADQRBqKQMANwMAIAQoAgAiBUElRg0ICyAFQSRGDQUMBwtBiYThAEEoQZz13wAQ1SEACyADKAIMIQUgAkUEQCAAQQI6ABggACAFNgIAIAtCA4NQBEAgAyALpyIANgIEIANBBGoQ0AYgACAAKAIAIgFBAWs2AgAgAUEBRgRAIAAgACgCIBCNJwsgAygCCEECayEGCyAGQRBGIAZBIktyDQcgA0EIahDoAwwHCyAFQQhqEIgDIAVBIEEIEKIYIAQoAgAiBUElRw0BCyABKALwAiECIAFBJTYC8AICQCACQSVHBEAgA0EsaiABQZQDaigCADYCACADQSRqIAFBjANqKQIANwIAIANBHGogAUGEA2opAgA3AgAgA0EUaiABQfwCaikCADcCACADIAI2AgggAyABKQL0AjcCDAwBCyADQQhqIAcQMiAEKAIAQSVGDQAgBBDoAwsgBCADKQMINwMAIARBIGogA0EoaikDADcDACAEQRhqIANBIGopAwA3AwAgBEEQaiADQRhqKQMANwMAIARBCGogA0EQaikDADcDAEEAIAQoAgAiBUElRg0BGgsgBUERRgshASAAIAE6ABggACAMNwMQIAAgCzcDACAAIAggCSgCACIBIAEgCEkbNgIMIAAgCCABIAEgCEsbNgIIDAMLIAFBJTYCyAIgASABKQPgAjcDmAMgASABKALMAhDACAwBC0GJhOEAQShBjPXfABDVIQALIABBAjoAGCAAIAY2AgALIANBMGokAAu9DgIGfwJ+IwBBwAFrIgIkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCAEEBaw4HAQIDBAUGBwALIAAtACRFDQsgAS0ANA0LDAwLIAAtACRFDQkgAS0ANA0JDAsLIAEgACgCBBCRFwwKCyABIAAoAgQQjh4MCQsgASAAKAIEEOgGDAgLIAEtADohBiABQQE6ADogASAAKAIEIgBBCGpBBBC3ESABLQA0QQFHDQQgACgCJCEHIAAoAiAhACABKAIwEIUYIQMgAkG4AWpBuLXjACkDACIINwMAIAJBsAFqQbC14wApAwAiCTcDACACQagBaiAINwMAIAJBlAFqIAFBNGooAgA2AgAgAkHoAGogCDcDACACQfAAaiAJNwMAIAJB+ABqIAg3AwAgAiAJNwOgASACIAEpAiw3AowBIAIgCTcDYCABLQA4IQQgAS0APSEFIAIgAS8AOzsAmwEgAkGBAjsAmQEgAkEBOgCIASACIAM2AoQBIAIgATYCgAEgAiAFOgCdASACIAQ6AJgBIABFDQMgAi0AlAFBAUcNAyACQQA6AJkBIAAoAggiBARAIARBMGwhBSAAKAIEIgBBCGohAwNAIAJB4ABqIAMQihUgA0EwaiEDIAVBMGsiBQ0ACyAEQTBsIQMDQCACQeAAaiAAENsTIABBMGohACADQTBrIgMNAAsLIAJBAToAmgEMAwsgACgCBCIALQAsRQ0BIAEtADQNAQwGCyAAKAIEIgAtAFAEQCABLQA0RQ0GCyAAKAIARQRAIAEgAEEIakEAELcRCyABKAIwEIUYIQMgAkG4AWpBuLXjACkDACIINwMAIAJBsAFqQbC14wApAwAiCTcDACACQagBaiAINwMAIAJBlAFqIAFBNGooAgA2AgAgAkHoAGogCDcDACACQfAAaiIEIAk3AwAgAkH4AGogCDcDACACIAk3A6ABIAIgASkCLDcCjAEgAiAJNwNgIAEtADghBSABLQA9IQYgAiABLwE6OwGaASACQQE6AJkBIAJBADoAiAEgAiADNgKEASACIAE2AoABIAIgBjoAnQEgAiAFOgCYASACQQE6AJwBIAAtAEVBA0cEQAJAIABBIGohACACQeAAaiEBA0AgAC0AJUECRgRAIAEgABDTBAwCCwJAIAAtACRFDQAgAS0ANA0ADAILIAEgAEEIakEAELcRIAAoAiAhAAwACwALCyACQeAAahChCiAEEKsKDAULIAEgAEEAELcRIAAoAighAyAAKAIkIQQgASgCMBCFGCEAIAJBlAFqIAFBNGooAgA2AgAgAkHoAGpBuLXjACkDACIINwMAIAJB8ABqIgVBsLXjACkDACIJNwMAIAJB+ABqIAg3AwAgAiABNgKAASACIAA2AoQBIAJBAToAmQEgAkEAOgCIASACIAEpAiw3AowBIAIgCTcDYCACIAEoATo2AZoBIAIgAS0AODoAmAEgAkHgAGpBABD/KQJAIAMEQCAEIQEgAyEAA0AgASgCAEUEQCABQQhqKQMAIghCA4NQBEAgCKciBiAGKAIAIgZBAWo2AgAgBkEASA0ECyACQeAAaiAIQQAQ3wYLIAFBMGohASAAQQFrIgANAAsgA0EwbCEAIARBKGohAQNAIAEoAgAiAwRAIAJB4ABqIAMQ0SkLIAFBMGohASAAQTBrIgANAAsLIAJB4ABqEKEKIAUQqwoMBQsACyACLQCUAUEBRgRAIAItAJkBIQAgAkGBAjsAmQEgByACQeAAahDxASACQQE6AJoBIAIgADoAmQELIAJB4ABqEKEKIAJB8ABqEKsKCyABIAY6ADoMAgsgACgCICIEKAIUIgMEQCAEKAIQIQAgA0EMbCEDA0AgASAAKAIAENEpIABBDGohACADQQxrIgMNAAsLIAEoAjAQhRghACACQZQBaiABQTRqKAIANgIAIAJB6ABqQbi14wApAwAiCDcDACACQfAAaiIDQbC14wApAwAiCTcDACACQfgAaiAINwMAIAIgATYCgAEgAiAANgKEASACQQE6AJkBIAJBAToAiAEgAiABKQIsNwKMASAC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IAJB7ABqKAIANgIAIANBEGogAkHkAGopAgA3AgAgA0EIaiACQdwAaikCADcCACACIAQ2AiAgAiAHOgAkIAIgBjYCGCACIAU2AhQgAiADNgIcIAEoAgAiASgCCEEBRw0IIAEoAgwNCCACQQE2AhQgAiAEQQBHIgQ2AiAgAiAFQQFzIAZBAEdyIgY2AhhBAQwJCwUgASgCBCEBDAELCyABKAIIIQQgAkHUAGogASgCDCIDQQBBBEEcEKoNIAIoAlghASACKAJUQQFGDQMgAkEANgJEIAIgAigCXDYCQCACIAE2AjwgAkE8aiADENInIAIoAkQhASACIAMEfyABIANqIAIoAkAgAUEcbGohAQNAIAJB1ABqIAQQvgIgAUEYaiACQewAaigCADYCACABQRBqIAJB5ABqKQIANwIAIAFBCGogAkHcAGopAgA3AgAgASACKQJUNwIAIAFBHGohASAEQRxqIQQgA0EBayIDDQALBSABCzYCRCAAIAJBPGoQjwIMBwsgASgCCCEEIAJB1ABqIAEoAgwiA0EAQQRBHBCqDSACKAJYIQEgAigCVEEBRg0DIAJBADYCUCACIAIoAlw2AkwgAiABNgJIIAJByABqIAMQ0icgAigCUCEBIAIgAwR/IAEgA2ogAigCTCABQRxsaiEBA0AgAkHUAGogBBC+AiABQRhqIAJB7ABqKAIANgIAIAFBEGogAkHkAGopAgA3AgAgAUEIaiACQdwAaikCADcCACABIAIpAlQ3AgAgAUEcaiEBIARBHGohBCADQQFrIgMNAAsFIAELNgJQIAAgAkHIAGoQegwGCyAFIAIoAlwQoy8LAAsgASACKAJcEKMvAAsgASACKAJcEKMvAAsgBQshAQJAAkACQAJAIAQOAgABAgsgAUUgBnINASAAEJsdNgIYIABBADYCACADEKkrDAILIAFFIAZBAUdyDQAgACADKQIANwIAIABBGGogA0EYaigCADYCACAAQRBqIANBEGopAgA3AgAgAEEIaiADQQhqKQIANwIADAELIAAgAkEUahD4CDYCGCAAQQQ2AgAgACACKQIUNwIEIABBFGogAkEkaigCADYCACAAQQxqIAJBHGopAgA3AgAMAQsgA0EcQQQQohgLIAJB8ABqJAALmQ0CB38CfiMAQcABayICJAACQAJAAkACQAJAAkACQAJAAkACQAJA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AkACQAJAAkAgAC0AoAJBAkYEQAJAAkAgACgCyAIiBEElRgRAIABByAJqIQMgACgC8AIhBCAAQSU2AvACAkAgBEElRwRAIAJBLGogAEGUA2ooAgA2AgAgAkEkaiAAQYwDaikCADcCACACQRxqIABBhANqKQIANwIAIAJBFGogAEH8AmopAgA3AgAgAiAENgIIIAIgACkC9AI3AgwMAQsgAkEIaiAFEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDCDcDACADQSBqIAJBKGopAwA3AwAgA0EYaiACQSBqKQMANwMAIANBEGogAkEYaikDADcDACADQQhqIAJBEGopAwA3AwAgAygCACIEQSVGDQELIARBCEcNAQwLCyAAKALwAiEEIABBJTYC8AICQCAEQSVHBEAgAkEsaiAAQZQDaigCADYCACACQSRqIABBjANqKQIANwIAIAJBHGogAEGEA2opAgA3AgAgAkEUaiAAQfwCaikCADcCACACIAQ2AgggAiAAKQL0AjcCDAwBCyACQQhqIAUQMiADKAIAQSVGDQAgAxDoAwsgAyACKQMINwMAIANBIGogAkEoaikDADcDACADQRhqIAJBIGopAwA3AwAgA0EQaiACQRhqKQMANwMAIANBCGogAkEQaikDADcDACADKAIAIgRBJUYNAgsgBEETRw0CDAkLIAAoAsgCIgRBJUcNAQsgACgC8AIhBCAAQSU2AvACIABByAJqIQMCQCAEQSVHBEAgAkEsaiAAQZQDaigCADYCACACQSRqIABBjANqKQIANwIAIAJBHGogAEGEA2opAgA3AgAgAkEUaiAAQfwCaikCADcCACACIAQ2AgggAiAAKQL0AjcCDAwBCyACQQhqIAUQMiADKAIAQSVGDQAgAxDoAwsgAyACKQMINwMAIANBIGogAkEoaikDADcDACADQRhqIAJBIGopAwA3AwAgA0EQaiACQRhqKQMANwMAIANBCGogAkEQaikDADcDACADKAIAIgRBJUYNAQsgBEEVRw0BIAAtAMwCDQEMBgsgACgC8AIhBCAAQSU2AvACAkAgBEElRwRAIAJBLGogAEGUA2ooAgA2AgAgAkEkaiAAQYwDaikCADcCACACQRxqIABBhANqKQIANwIAIAJBFGogAEH8AmopAgA3AgAgAiAENgIIIAIgACkC9AI3AgwMAQsgAkEIaiAFEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDCDcDACADQSBqIAJBKGopAwA3AwAgA0EYaiACQSBqKQMANwMAIANBEGogAkEYaikDADcDACADQQhqIAJBEGopAwA3AwAgAygCACIEQSVGDQELIARBDkcNAQwECyABRQRAIAAoAvACIQEgAEElNgLwAgJAIAFBJUcEQCACQSxqIABBlANqKAIANgIAIAJBJGogAEGMA2opAgA3AgAgAkEcaiAAQYQDaikCADcCACACQRRqIABB/AJqKQIANwIAIAIgATYCCCACIAApAvQCNwIMDAELIAJBCGogBRAyIAMoAgBBJUYNACADEOgDCyADIAIpAwg3AwAgA0EgaiACQShqKQMANwMAIANBGGogAkEgaikDADcDACADQRBqIAJBGGopAwA3AwAgA0EIaiACQRBqKQMANwMAIAMoAgAiBEElRw0DQQAMBQsgACgC8AIhASAAQSU2AvACAkAgAUElRwRAIAJBLGogAEGUA2ooAgA2AgAgAkEkaiAAQYwDaikCADcCACACQRxqIABBhANqKQIANwIAIAJBFGogAEH8AmopAgA3AgAgAiABNgIIIAIgACkC9AI3AgwMAQsgAkEIaiAFEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDCDcDACADQSBqIAJBKGopAwA3AwAgA0EYaiACQSBqKQMANwMAIANBEGogAkEYaikDADcDACADQQhqIAJBEGopAwA3AwAgAygCACIEQSVGDQMMAQsgAUUNAQsgBEE+cUEORg0BIAAtAOgCDAILIARBD0YMAQtBAQsgAkEwaiQAQQFxC+kNAg5/AX4jAEHAAWsiAyQAIANBADoAOyADIAEpAYIDNwArIAMgASkAkwM3ADwgAyABKACbAzYARCADIAFBigNqIgQpAQA3ADMgA0HhAGogAUGXA2opAAA3AAAgA0HcAGogAUGSA2opAQA3AgAgA0HUAGogBCkBADcCACADIAEpAYIDNwJMIAFBgAFqIg8gA0ErahDvCiADIAE2AkggAUEoaiIEEKETGiABQfwAQcAAIAEoAihBJUYbaigCACEIAkACQAJAAkACQAJAAkACQAJAAkACQCAEEKETIgYEQCAGKAIAQQlGDQELIANBgAFqIAQQiQogA0EIaiAEELceIANBmM3fADYCfCADQTQ6AHgg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BRAyIAMoAgBBJUYNACADEOgDCyADIAIpAzg3AwAgA0EgaiACQdgAaikDADcDACADQRhqIAJB0ABqKQMANwMAIANBEGogAkHIAGopAwA3AwAgA0EIaiACQUBrKQMANwMAIAMoAgAiBEElRg0BCyAEQRRHIAEtAMwCIgZBBkdyDQEMAgsgASgC8AIhBCABQSU2AvACAkAgBEElRwRAIAJB3ABqIAFBlANqKAIANgIAIAJB1ABqIAFBjANqKQIANwIAIAJBzABqIAFBhANqKQIANwIAIAJBxABqIAFB/AJqKQIANwIAIAIgBDYCOCACIAEpAvQCNwI8DAELIAJBOGogBRAyIAMoAgBBJUYNACADEOgDCyADIAIpAzg3AwAgA0EgaiACQdgAaikDADcDACADQRhqIAJB0ABqKQMANwMAIANBEGogAkHIAGopAwA3AwAgA0EIaiACQUBrKQMANwMAIAMoAgAiBEElRg0CIAEtAMwCIQYLIARBFEcgBkEER3INAQsgASgC5AIhByABKALgAiEIIAFB8AJqIQQgASgC8AIiBkElRgRAIAJBOGogBRAyIAQoAgBBJUcEQCAEEOkDCyAEIAIpAzg3AwAgBEEgaiACQdgAaikDADcDACAEQRhqIAJB0ABqKQMANwMAIARBEGogAkHIAGopAwA3AwAgBEEIaiACQUBrKQMANwMAIAQoAgAiBkElRg0BCyABKAKIAyAIIAcgByAISRtHDQAgASgCyAIhCSABQSU2AsgCAkACQCAJQSVHBEAgAkEcaiABQcwCaiIFQQhqKQIANwIAIAJBJGogBUEQaikCADcCACACQSxqIAVBGGopAgA3AgAgAkE0aiAFQSBqKAIANgIAIAJBxABqIAFB/AJqKQIANwIAIAJBzABqIAFBhANqKQIANwIAIAJB1ABqIAFBjANqKQIANwIAIAJB3ABqIAFBlANqKAIANgIAIAIgBSkCADcCFCACIAEpAvQCNwI8IAIgCTYCECABQSU2AvACIAIgBjYCOAJAIAlBFEcNAAJAAkACQAJAAkACQAJAAkACQCAGQRRrDgIAAQkLIAItABRBBGsOAwEIAggLIAItABRBBGsOAwUHBgcLQQghBUEUIQYgAi0APEEEaw4CCQEGC0EJIQVBFCEGIAItADxBBmsOBAgBBQIFC0EGIQUMBgtBByEFDAULQQohBQwFCyACLQA8DQFBBSEFQRQhBgwEC0EHIQVBFCEGAkAgAi0APA4IBAEBAQEBAQABC0EIIQUMAgsgAyACKQMQNwMAIAQgAikDODcDACADQSBqIAJBMGopAwA3AwAgA0EYaiACQShqKQMANwMAIANBEGogAkEgaikDADcDACADQQhqIAJBGGopAwA3AwAgBEEIaiACQUBrKQMANwMAIARBEGogAkHIAGopAwA3AwAgBEEYaiACQdAAaikDADcDACAEQSBqIAJB2ABqKQMANwMADAMLQay04AAQoS8AC0EVIQYLIAEgAi0AMDoA6AIgASAFOgDMAiABIAY2AsgCIAEgCCAHIAcgCEsbIgMgAigCVCIEIAMgBEsbNgLkAiABIAMgBCADIARJGzYC4AIgAkE4ahDpAyACQRBqEOkDCyAAIAs2AgAgACAKNgIEIAJB4ABqJAAL3g0CNH8BfiMAQdADayICJAAgASgCDCEGIAJByAJqIAEoAhAiD0EIQQgQ3hAgAigCzAIhCgJAAkAgAigCyAJBAUcEQCACKALQAiEQAkAgCkUNACAPQQN0IQUgECEEIAohAwNAIAVFDQEgBikDACI2QgODUARAIDanIgcgBygCACIHQQFqNgIAIAdBAEgNBAsgBkEIaiEGIAQgNjcDACAFQQhrIQUgBEEIaiEEIANBAWsiAw0ACwsgAS0AJCETIAEoAgQhFCABKAIAIRVBACEHAn8gASgCGCIGRQRAQai14wAhEUEAIQZBAAwBCyAGQQFqrUIMfiI2QiCIpw0DIDanIgRBeEsNAyAEQQdqQXhxIgQgBkEJaiINaiIDIARJIANB+f///wdPcg0DQaC/5AAtAAAaIAMQhAEiA0UNAiADIARqIhEgASgCFCIFIA0QgQkgBkF/c0EMbCIEaiAEIAVqIAZBDGxBDGoQgQkaIAEoAhwhEiABKAIgCyENIAEoApgCIRYgASgClAIhFwJAIAEoAihBAUcNACABKAIwIQUgASgCLCIEBEAgBCAEKAIAQQFqIgM2AgAgA0UNAwsgBUUEQEEBIQdBACEFDAELQQEhByAFIAUoAgBBAWoiAzYCACADRQ0CCyABKALAASIIQYABTQR/IAFBPWoFIAEoAkAhCCABKAJECyEDIAEoApwCIRggASgCgAIhGSABKAL8ASEaIAEoAvQBIRsgASgC8AEhHCABKALsASEdIAEoAugBIR4gASgC+AEhHyABKALUASEgIAEoAtABISEgASgCzAEhIiABKALIASEjIAEoAsQBISQgAS0A5wEhJSABLQDmASEmIAEtAOUBIScgASgCOCEoIAEoAjQhKSABLQDkASEqIAJBADoAyAIgAkEANgLMAyACQcgCaiIJIAMgAyAIahCzByACQcABaiIOIAlBiAEQgQkaIAEtAMcCISsgAS0A4wEhLCABLQDiASEtIAEoAoQCIgMgAygCAEEBaiIINgIAIAhFDQEgASgCiAIiCCAIKAIAQQFqIgs2AgAgC0UNASABKAKMAiILIAsoAgBBAWoiDDYCACAMRQ0BIAEoApACIgwgDCgCAEEBaiIJNgIAIAlFDQEgAkEIaiAOQYgBEIEJGkElIQkgASgCnAMhDiABKAKYAyEuIAEoAsgCQSVGBH9BJQUgAkHIAmogAUHIAmoQ6wIgAkGYAWogAkHUAmopAgA3AwAgAkGgAWogAkHcAmooAgA2AgAgAiACKQLMAjcDkAEgASgC5AIhLyABKALgAiEwIAEtAOgCITEgAigCyAILITIgASgC8AJBJUcEQCACQcgCaiABQfACahDrAiACQbABaiACQdQCaikCADcDACACQbgBaiACQdwCaigCADYCACACIAIpAswCNwOoASABKAKMAyEzIAEoAogDITQgAS0AkAMhNSACKALIAiEJCyAAIBM6ACQgACAoNgI4IAAgKTYCNCAAIAU2AjAgACAENgIsIAAgBzYCKCAAIA02AiAgACASNgIcIAAgBjYCGCAAIBE2AhQgACAPNgIQIAAgEDYCDCAAIAo2AgggACAUNgIEIAAgFTYCACAAIAEpA9gBNwPYASAAIAEpA6ACNwOgAiAAIAEpAaoCNwGqAiAAQeABaiABQeABai8BADsBACAAQagCaiABQagCai8BADsBACAAQbICaiABQbICaikBADcBACAAQboCaiABQboCaikBADcBACAAQb8CaiABQb8CaikAADcAACAAQTxqIAJBCGpBiAEQgQkaIAAgMjYCyAIgACArOgDHAiAAIBg2ApwCIAAgFjYCmAIgACAXNgKUAiAAIAw2ApACIAAgCzYCjAIgACAINgKIAiAAIAM2AoQCIAAgGTYCgAIgACAaNgL8ASAAIB82AvgBIAAgGzYC9AEgACAcNgLwASAA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IAAoAgAEQCAAIAUQoAkLIAUoAjAiBARAIAAgBBDBAQsgBUE4aiEFIAdBOGsiBw0ACwwHCyACQQhqIAAQiAgMBgsgACACQQhqEMMDDAULIAAgAigCBBDBAQwECyACKAIQIgRFDQQgBCAAENcaDAMLIAAgAigCBBDBAQwCCwJAAkACQCACKAIIQQFrDgIBBQALIAItACQhBSACKAIoIAAQPQwBCyACLQAkIQUgAigCKCAAELcOCwJAAkACQCACKAIIQQFrDgIBBAALIAVB/wFxQQJHDQEMAwsgBUH/AXFBAkYNAgsgA0EIaiACQRBqEK0hIBQgAykDCCADKAIQENkGGgwBCyACKAIMIgQEQCAEQdAAbCEFA0AgBUHQAGsiBQ0ACwsgAigCHCIERQ0AIAQgABDXGgsgAigCACIEQQlGIARBAUdyDQAgA0GoAWoQ+iAgA0GQAWoiDiACQQhqIgZBIGoiDykDADcDACADQYgBaiIQIAZBGGoiESkDADcDACADQYABaiISIAZBEGoiBSkDADcDACANIAZBCGoiBykDADcDACAGKQMAIRUgBiADKQOoATcDACAHIANBsAFqKQMANwMAIAUgA0G4AWopAwA3AwAgESADQcABaikDADcDACAPIANByAFqKQMANwMAIAMgFTcDcCADQUBrIAAgA0HwAGpBARBKAkACQAJAQQIgAygCQEETayIEIARBAk8bQQFrDgIBAgALIAIpAwAhFSACQQk2AgAgA0GgAWogAkEwaikDADcDACADQZgBaiACQShqKQMANwMAIA4gAkEgaikDADcDACAQIAJBGGopAwA3AwAgEiACQRBqIgQpAwA3AwAgDSAGKQMANwMAIARBADYCACAGQgE3AwAgAyAVNwNwIBWnQQlHBEAgA0HwAGoQiAYMAwsgDRCiBAwCCyAGEJsFIA8gCUEgaikDADcDACARIAlBGGopAwA3AwAgBSAJQRBqKQMANwMAIAcgCUEIaikDADcDACAGIAkpAwA3AwAMAQsgCiADKQNANwIAIApBKGogA0HoAGopAwA3AgAgCkEgaiADQeAAaikDADcCACAKQRhqIANB2ABqKQMANwIAIApBEGogA0HQAGopAwA3AgAgCkEIaiAJKQMANwIAAkAgAigCAEEJRwRAIAIQiAYMAQsgBhCiBAsgAkEJNgIAIAIgAykCcDcCBCACQQxqIA0pAgA3AgAgAkEUaiASKQIANwIAIAJBHGogECkCADcCACACQSRqIA4pAgA3AgAgAkEsaiADQZgBaikCADcCACACQTRqIANBoAFqKAIANgIACyACQThqIgIgE0cNAAsgACgCbCECIAAoAmghBSALIAMpAxg3AgAgACgCcCEAIAtBCGogA0EgaigCADYCACAARQ0AIAMgBTYCLCADIAI2AiggAyACNgIkIAMgAiAAQQR0ajYCMCADQTRqIANBJGoQkAZBoL/kAC0AABpBHBCEASICBEAgAiADKQI0NwIAIAJCADcCDCACQRJqQgA3AQAgAkEIaiADQTxqKAIANgIAIAEoAgAgDEYEQCABEPELIAEoAgQhCAsgASAMQQFqNgIIIAggDEE4bGoiACACNgIUIABBAjYCECAAQRE2AgggAEEJNgIAQQhBABC8IUEAQQgQxyoMAgsACyACQQAQ9BQgBSACEOYqCyADQdABaiQAC8EMAQ1/IwBBkAJrIgIkACABQShqIgQQoRMaIAIgAUH8AEHAACABKAIoQSVGG2ooAgAiCjYCFAJAAkACQCAEEKETIgNFDQAgAygCAEECRw0AIAMtAAhBAkcNACADLQAJQQNHDQAgASgCKCEDIAFBJTYCKCABIAEpA0A3A3ggAkHkAGogAUE0aikCADcCACACQewAaiABQTxqKAIANgIAIAIgASkCLDcCXCACIAM2AlggAkHYAGoQjg4CQAJAAkACQCAEEKETIgMEQCADKAIAQQlGDQELQQchCAwBCyABKAIoIQMgAUElNgIoIAEgASkDQDcDeCACQeQAaiIFIAFBLGoiB0EIaikCADcCACACQewAaiIJIAdBEGooAgA2AgAgAiAHKQIANwJcIAIgAzYCWCACQdgAaiIMEI4OIAwgAUEAEFogAigCXCEGIAIoAlgiCEEHRg0BIAJB4AFqIg0gAkH4AGopAwA3AwAgAkHYAWoiDiACQfAAaikDADcDACACQdABaiACQegAaikDADcDACACIAIpA2A3A8gBIAIgBjYCxAEgAiAINgLAASAEEKETGgJAAkACQAJAIAEtAPgCQQJHDQAgAUH8AEHAACABKAIoQSVGG2ooAgAhCyAEEKETIgNFDQAgAygCAEETRw0AIAEoAighAyABQSU2AiggASABKQNANwN4IAUgB0EIaikCADcCACAJIgYgB0EQaigCADYCACACIAcpAgA3AlwgAiADNgJYIAwQjg4gAkEBOgD7ASACIAEpAYIDNwDvASACIAFBigNqIgMoAQA2APcBIAIgASkAjwM3APwBIAIgAUGXA2oiCCkAADcAhAIgAkHxAGogCCkAADcAACAGIAFBkgNqKQEANwIAIAUgAykBADcCACACIAEpAYIDNwJcIAFBgAFqIAJB7wFqEO8KIAIgATYCWCACQQhqIAEQpwMgAigCDCEGIAIoAggNASANIQMgDiEFIAIgBjYCjAIgDBDlLAJAAkACQCACKALAASIIQQFrDgYAAAACAgIBCyAFIQMLIAEoAnwhBUEEQQwQuS4iCQRAIAkgBjYCACAJIAsgBSAFIAtJGzYCCCAJIAsgBSAFIAtLGzYCBCADEPEtIAMgCTYCAAwCCwALIAJBjAJqEMIHCyAEEKETIgMEQCADKAIAQQpGDQMLIAJB4ABqIAQQiQogAiAEELceIAJB8MzfADYCXCACQTQ6AFggAigCACACKAIEIAJB2ABqEO8bIQYgBBChEyIDRQ0BIAMoAgBBJEcNASABIAEpA0A3A3ggASgCKCABQSU2AihBJEcNBSABIAEoAiwQxRAMAQsgAkHYAGoQ5SwLIAJBwAFqELsZDAILIAEoAighAyABQSU2AiggASABKQNANwN4IAJB5ABqIAdBCGopAgA3AgAgAkHsAGogB0EQaigCADYCACACIAcpAgA3AlwgAiADNgJYIAJB2ABqEI4OIAJBIGogAkHIAWoiA0EIaikDADcDACACQShqIANBEGopAwA3AwAgAkEwaiADQRhqKQMANwMAIAIgAykDADcDGCACKALEASEGCyACQdAAaiIDIAJBMGopAwA3AwAgAkHIAGoiBSACQShqKQMANwMAIAJBQGsiByACQSBqKQMANwMAIAIgAikDGDcDOCACQcABaiABQQAQmQggAkHoAGogBykDADcDACACQfAAaiAFKQMANwMAIAJB+ABqIAMpAwA3AwAgAiAENgKEASACIAY2AlwgAiAINgJYIAIgAikDODcDYCACKALAASACIAJBFGo2AoABQYCAgIB4RwRAIAJBuAFqIAJB0AFqKQIANwMAIAJBsAFqIAJByAFqKQIANwMAIAJBkAFqIAcpAwA3AwAgAkGYAWogBSkDADcDACACQaAB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AWoQjyMgBUUNAQwHCyAEQTRqEIAhDAULIARBQGsQuxkMBgsACyAAQYCAgIB4NgIAIAAgBzYCBCAEQYgBahD9FiAEQTRqEPItDAYLIABBgICAgHg2AgAgACAINgIEIARBNGoQ8i0MBgsgBCgCNCAGRgRAIARBNGoQgCELIAQoAjgiBSAGQShsIgNqIgIgBCkDgAI3AhwgAiANNgIYIAIgCjYCFCACIAk2AhAgAiALNgIMIAIgDDYCCCACIAg2AgQgAiAHNgIAIAJBJGogBEGIAmooAgA2AgAgBCAGQQFqNgI8AkAgAS0AhQNBAXFFDQAgA0EoaiEGA0AgBkUNASABIAUQwwogBkEoayEGIAVBKGohBQwACwALIAAgBCkCNDcCACAAQQhqIARBPGooAgA2AgAMBQsgBCgCOCIIIAZBKGxqIARBQGtBKBCBCRogBCAGQQFqIgY2AjwgBUUNAQsgCxDkLAsgBCgCiAEhBSAEKAKMASEHDAALAAsgAhDCGwsgBEGQAmokAAurDAEKfyMAQdAAayICJAAgAUHIAmohAyABQShqIQgCQAJAIAEoAsgCQSVHBEAgAUGcA2ohCiABKALgAiEGDAELIAEoAvACIQQgAUElNgLwAgJAIARBJUcEQCACQcwAaiABQZQDaigCADYCACACQcQAaiABQYwDaikCADcCACACQTxqIAFBhANqKQIANwIAIAJBNGogAUH8AmopAgA3AgAgAiAENgIoIAIgASkC9AI3AiwMAQsgAkEoaiAIEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDKDcDACADQSBqIAJByABqKQMANwMAIANBGGogAkFAaykDADcDACADQRBqIAJBOGopAwA3AwAgA0EIaiACQTBqKQMANwMAIAFBnANqIQogASgCyAJBJUcEQCABKALgAiEGDAELIAEoApwDIQYgASgC8AIhBCABQSU2AvACAkAgBEElRwRAIAJBzABqIAFBlANqKAIANgIAIAJBxABqIAFBjANqKQIANwIAIAJBPGogAUGEA2opAgA3AgAgAkE0aiABQfwCaikCADcCACACIAQ2AiggAiABKQL0AjcCLAwBCyACQShqIAgQMiADKAIAQSVGDQAgAxDoAwsgAyACKQMoNwMAIANBIGogAkHIAGopAwA3AwAgA0EYaiACQUBrKQMANwMAIANBEGogAkE4aikDADcDACADQQhqIAJBMGopAwA3AwAgAygCAEElRg0BC0Gg3d8AIAMQkgZFDQAgASgCyAIhBCABQSU2AsgCIAEgASkD4AI3A5gDIAJBNGogAUHUAmopAgA3AgAgAkE8aiABQdwCaigCADYCACACIAEpAswCNwIsIAIgBDYCKCACQShqEOgDCyACQRBqIAEQVSACKAIUIQQCQAJAIAIoAhANAAJAIAMoAgBBJUcNACABKALwAiEFIAFBJTYC8AICQCAFQSVHBEAgAkHMAGogAUGUA2ooAgA2AgAgAkHEAGogAUGMA2opAgA3AgAgAkE8aiABQYQDaikCADcCACACQTRqIAFB/AJqKQIANwIAIAIgBTYCKCACIAEpAvQCNwIsDAELIAJBKGogCBAyIAMoAgBBJUYNACADEOgDCyADIAIpAyg3AwAgA0EgaiACQcgAaikDADcDACADQRhqIAJBQGspAwA3AwAgA0EQaiACQThqKQMANwMAIANBCGogAkEwaikDADcDACADKAIAQSVHDQBBACEBDAILQaDd3wAgAxCSBkUEQEEAIQEMAgtBoL/kAC0AABoCQEEEEIQBIgVFDQAgBSAENgIAIAJBATYCJCACIAU2AiAgAkEBNgIcIAFBzAJqIQkgAUH0AmohByACQShqQQRyIQUDQAJAAkAgAygCAEElRgRAIAEoAvACIQQgAUElNgLwAgJAIARBJUcEQCAFIAcpAgA3AgAgBUEgaiAHQSBqKAIANgIAIAVBGGogB0EYaikCADcCACAFQRBqIAdBEGopAgA3AgAgBUEIaiAHQQhqKQIANwIAIAIgBDYCKAwBCyACQShqIAgQMiADKAIAQSVGDQAgAxDoAwsgAyACKQMoNwMAIANBIGogAkHIAGopAwA3AwAgA0EYaiACQUBrKQMANwMAIANBEGogAkE4aikDADcDACADQQhqIAJBMGopAwA3AwAgAygCAEElRg0BC0Gg3d8AIAMQkgYNAQtBACEBQaC/5AAtAAAaIAooAgAhA0HgABCEASIERQ0CIARCioCAgBA3AwAgBCACKQIcNwIIIARBEGogAkEkaigCADYCACAEIAYgAyADIAZJGzYCGCAEIAYgAyADIAZLGzYCFAwECyAFIAkpAgA3AgAgASgCyAIhBCABQSU2AsgCIAEgASkD4AI3A5gDIAVBCGog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IAM2AgQgACABNgIAIANB9NClmwc2AAAMGQsgAS0AHEECRg0WDBcLIAEoAghBAWsOAhUDAgsgAS0AHEECRw0VDBQLIAEoAgQiASgCACIDQQNGDQQgA0EBaw4CBwkICyACQThqIAEoAigQ1QIgAigCOEGAgICAeEYNECACQTBqIAJBQGsoAgA2AgAgAiACKQI4NwMoDBELIAJByABqIAEoAigQ1QIgAigCSEGAgICAeEYNDSACQSBqIAJB0ABqKAIANgIAIAIgAikCSDcDGAwOCyABKAIIRQRAIAJBATYCTCACQay63wA2AkggAkIBNwJUIAIgAUEQaq1CgICAgLAuhDcDCCACIAJBCGo2AlAgACACQcgAahC9CAwTCyACQQhqIAEoAgwQ1QICQCACKAIIQYCAgIB4RgRAIAJBADYCQCACQoCAgIAQNwM4DAELIAJBQGsgAkEQaigCADYCACACIAIpAgg3AzgLIAJBATYCTCACQay63wA2AkggAkIBNwJUIAIgAkE4aq1CgICAgMA6hDcDKCACIAJBKGo2AlAgACACQcgAahC9CCACKAI4IAIoAjwQgSwMEgsgAS0AGEEFRw0PCyABKAIQIQEMAQsLIAEoAggNDCACQQA2AhAgAkKAgICAEDcCCCACQQM6AGggAkEgNgJYIAJBADYCZCACQbS63wA2AmAgAkEANgJQIAJBADYCSCACIAJBCGo2AlwgAUEQaiACQcgAahCKJUUEQCAAIAIpAgg3AgAgAEEIaiACQRBqKAIANgIADA8LDA8LIABBgICAgHg2AgAMDQsgAkE4aiABKAIgENUCIAIoAjhBgICAgHhGDQQgAkEwaiACQUBrKAIANgIAIAIgAikCODcDKAwFCyACQcgAaiABKAIgENUCIAIoAkhBgICAgHhGDQEgAkEgaiACQdAAaigCADYCACACIAIpAkg3AxgMAgsgASACKAJQEKMvAAsgAkEANgIgIAJCgICAgBA3AxgLIAJBOGogASgCBBDVAgJAIAIoAjhBgICAgHhGBEAgAkEANgIwIAJCgICAgBA3AygMAQsgAkEwaiACQUBrKAIANgIAIAIgAikCODcDKAsgAkECNgJMIAJBlLrfADYCSCACQgI3AlQgAkKAgICAwDoiBCACQShqrYQ3AxAgAiAEIAJBGGqthDcDCCACIAJBCGo2AlAgACACQcgAahC9CCACKAIoIAIoAiwQgSwgAigCGCACKAIcEIEsDAgLIAJBADYCMCACQoCAgIAQNwMoCyACQQI2AkwgAkGUut8ANgJIIAJCAjcCVCACIAFBCGqtQoCAgICwLoQ3AxAgAiACQShqrUKAgICAwDqENwMIIAIgAkEIajYCUCAAIAJByABqEL0IIAIoAiggAigCLBCBLAwGCyACQQA2AiAgAkKAgICAEDcDGAsgAkE4aiABKAIMENUCAkAgAigCOEGAgICAeEYEQCACQQA2AjAgAkKAgICAEDcDKAwBCyACQTBqIAJBQGsoAgA2AgAgAiACKQI4NwMoCyACQQI2AkwgAkGUut8ANgJIIAJCAjcCVCACQoCAgIDAOiIEIAJBKGqthDcDECACIAQgAkEYaq2ENwMIIAIgAkEIajYCUCAAIAJByABqEL0IIAIoAiggAigCLBCBLCACKAIYIAIoAhwQgSwMBAsgAkEANgIwIAJCgICAgBA3AygLIAJBAjYCTCACQZS63wA2AkggAkICNwJUIAIgAUEQaq1CgICAgLAuhDcDECACIAJBKGqtQoCAgIDAOoQ3AwggAiACQQhqNgJQIAAgAkHIAGoQvQggAigCKCACKAIsEIEsDAILIABBgICAgHg2AgAMAQsgAkEANgIQIAJCgICAgBA3AgggAkEDOgBoIAJBIDYCWCACQQA2AmQgAkG0ut8ANgJgIAJBADYCUCACQQA2AkggAiACQQhqNgJcIAFBCGogAkHIAGoQiiVFBEAgACACKQIINwIAIABBCGogAkEQaigCADYCAAwBCwwBCyACQfAAaiQADwtB6OHgAEE3IAJB7wBqQcy63wBB7OLgABCxFAALigwCFH8BfiMAQaABayICJAAgAUHIAmohAyABQShqIQ0CfyABKALIAkElRwRAIAFBnANqIQ4gASgC4AIMAQsgASgC8AIhBSABQSU2AvACAkAgBUElRwRAIAJB1ABqIAFBlANqKAIANgIAIAJBzABqIAFBjANqKQIANwIAIAJBxABqIAFBhANqKQIANwIAIAJBPGogAUH8AmopAgA3AgAgAiAFNgIwIAIgASkC9AI3AjQMAQsgAkEwaiANEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDMDcDACADQSBqIAJB0ABqKQMANwMAIANBGGogAkHIAGopAwA3AwAg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AqwCIQ4CQAJAA0AgByASRgRAQQEhCiADQeaH4QBBASAGEQMADQUgBSgCICIABEAgBSgCHCEBIABBAnQhC0F/IQADQCABKAIAIQgCQCAAQQFqIglFBEAgAkECNgIUIAJB4KTDADYCECACQgE3AhwgAkHuADYCPCACIAg2AlggAiACQThqNgIYIAIgAkHYAGo2AjgMAQsgAiAANgI0IAJBAzYCFCACQYClwwA2AhAgAkICNwIcIAJB7gA2AkQgAkHuADYCPCACIAg2AlggAiACQThqNgIYIAIgAkHYAGo2AkAgAiACQTRqNgI4CyADIAQgAkEQahCfBg0GIAFBBGohASAJIQAgC0EEayILDQALCyACQQI2AhQgAkGcpMMANgIQIAJCATcCHCACQe4ANgI8IAIgEjYCWCACIAJBOGoiCTYCGCACIAJB2ABqIgE2AjggAyAEIAJBEGoiABCfBg0FIAJBAjYCFCACQbykwwA2AhAgAkIBNwIcIAJB7gA2AjwgAiAFKAIkKALUAjYCWCACIAk2AhggAiABNgI4IAMgBCAAEO8rDQUgAkEANgIgIAJBATYCFCACQcykwwA2AhAgAkIENwIYIAMgBCACQRBqEO8rIQoMBQsgB0H/////B0YNAiACIAUgBxDeIiIWNwMIAkACQCAHBEAgFkL///////9+WA0BIANBmKXDAEECIAYRAwANBgwCCyADQZylwwBBAiAGEQMADQUMAQsgA0GapcMAQQIgBhEDAA0ECyACQe4ANgJcIAIgBzYCNEEBIQogAkEBNgJMIAJBATYCPCACQaiP4QA2AjggAkEBNgJEIAIgAkE0ajYCWCACQQM6ACwgAkEINgIoIAJCIDcCICACQoCAgIDgADcCGCACQQI2AhAgAiACQRBqIgE2AkggAiACQdgAajYCQCADIAQgAkE4aiIAEJ8GDQQgAikDCCIWQoCAgICAgH9aIBZC////////AINQcUUEQCACQQI2AhQgAkGgpcMANgIQIAJCATcCHCACQa0BNgI8IAIgADYCGCACIAJBCGo2AjggAyAEIAEQnwYNBQsgA0Hwt9gAQQIgBhEDAA0EIA4gByAUdCIAaiIBIA5JDQEgASARTQRAIAdBAWohByAVIABBA3RqIgAgDkEDdGohD0EAIQxBACELQQAhEANAAkACQCAAIA9GBEAgGCEWIAkh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ASgCDCEFIAIgASgCECIOQQhBCBDzHSACKAIAIg8gDkH/////AXEiAyADIA9LGyEEQQAhAyACKAIEIRADQCAEBEAgAyAQaiADIAVqKQMAEKwlNwMAIARBAWshBCADQQhqIQMMAQsLIAEtACQhEyABKAIEIRQgASgCACEVAn8gASgCGCIDRQRAQai14wAhEUEAIQRBAAwBCyACQcgCakEMIANBAWoQzBAgAigCyAIiESABKAIUIgUgAigCzAIiBEEJahCBCSAEQX9zQQxsaiAFIANBf3NBDGxqIARBDGxBDGoQgQkaIAEoAiAhEiABKAIcCyEWIAEoAvACIRcgASgC7AIhGAJAAkAgASgCgAFBAUcNACABKAKEASIFBEAgBSAFKAIAQQFqIgM2AgAgA0UNAgsgASgCiAEiA0UEQEEBIQ1BACEDDAELQQEhDSADIAMoAgBBAWoiBjYCACAGRQ0BCyABKAKYAiIHQYABTQR/IAFBlQFqBSABKAKYASEHIAEoApwBCyEGIAEoAvQCIRkgASgC2AIhGiABKALUAiEbIAEoAswCIRwgASgCyAIhHSABKALEAiEeIAEoAsACIR8gASgC0AIhICABKAKsAiEhIAEoAqgCISIgASgCpAIhIyABKAKgAiEkIAEoApwCISUgAS0AvwIhJiABLQC+AiEnIAEtAL0CISggASgCkAEhKSABKAKMASEqIAEtALwCISsgAkEAOgDIAiACQQA2AswDIAJByAJqIgkgBiAGIAdqEM8HIAJBwAFqIgggCUGIARCBCRogAS0AnwMhLCABLQC7AiEtIAEtALoCIS4gASgC3AIiBiAGKAIAQQFqIgc2AgAgB0UNACABKALgAiIHIAcoAgBBAWoiCjYCACAKRQ0AIAEoAuQCIgogCigCAEEBaiILNgIAIAtFDQAgASgC6AIiCyALKAIAQQFqIgw2AgAgDEUNACAJIAhBiAEQgQkaIAEoAqADIgwgDCgCAEEBaiIINgIAIAhFDQAgAkEIaiAJQYgBEIEJGkElIQggASgCfCEJIAEoAnghLyABKAIoQSVGBH9BJQUgAkHIAmogAUEoahDwBCACQZgBaiACQdQCaikCADcDACACQaABaiACQdwCaigCADYCACACIAIpAswCNwOQASABKAJEITAgASgCQCExIAEtAEghMiACKALIAgshMyABKAJQ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IAggAEEsaikCADcDACAJIABBJGopAgA3AwAgBiAAKQIcNwMgIAZBADYCHCAGIABBOGoiBTYCGCAGIAs2AhAgACABQRxsIgtqIQ0gBiAGQSBqNgIUA0AgBSANTwRAAkAgBigCDCALakEcayELA0AgBSALRg0BIAAgBkEMaiAGQRBqEIUNIAYoAhghBQwACwALBSAAIAZBDGogBkEQahCFDSAGKAIYIQUMAQsLIAYgBigCFDYCGCAAIAZBDGogBkEQahCFDSAGKAIcIgsgAU8NACACIAooAgA2AgAgCCAHKQIANwMAIAkgDCkCADcDACAGIAApAgA3AyAgACALQRxsaiIFQQhqIg0pAgAhEyAFQRBqIg4pAgAhEiAFQRhqIg8oAgAhECAAIAUpAgA3AgAgCiAQNgIAIAcgEjcCACAMIBM3AgAgDyACKAIANgIAIA4gCCkDADcCACANIAkpAwA3AgAgBSAGKQMgNwIAIAEgC0EBaiICSQRAIAIgAUHAmdgAEOgWAAUgBiABIAJrNgIEIAYgACACQRxsajYCAEEAIQIgBigCBCEBIAYoAgAhAAwCCwALCwALjRABCX8jAEFAaiIEJAACQAJAAkADQAJAIAEoAgAiAkEpa0EFSw0AA0ACQEGgv+QALQAAGkHAABCEASIDRQ0AIANBADYCCCADQjE3AwAgASgCBCECIAEgAzYCBCAEQQhqIgMgAkEIaikDADcDACAEQRBqIgUgAkEQaikDADcDACAEQRhqIgYgAkEYaikDADcDACAEQSBqIgcgAkEgaikDADcDACAEQShqIgggAkEoaikDADcDACAEQTBqIgkgAkEwaikDADcDACAEQThqIgogAkE4aikDADcDACAEIAIpAwA3AwAgARDiASABQThqIAopAwA3AwAgAUEwaiAJKQMANwMAIAFBKGogCCkDADcDACABQSBqIAcpAwA3AwAgAUEYaiAGKQMANwMAIAFBEGogBSkDADcDACABQQhqIAMpAwA3AwAgASAEKQMANwMAIAJBwABBCBCiGCABKAIAIgJBKWtBBkkNAQwCCwsACwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAQQcgAkEMayIDIANBJk8bQQFrDiQAAQIDBAUGBwgJCgsMDRsODxAREhsTExQbGxUW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ATYCAAsgBEHwFGokAAuWCwIIfwF+IwBBMGsiAiQAIAFByAJqIQMgAUEoaiEGAkACQAJAIAEoAsgCIgRBJUcEQCABQeACaiEIIAFBnANqIQkMAQsgASgC8AIhBCABQSU2AvACAkAgBEElRwRAIAJBLGogAUGUA2ooAgA2AgAgAkEkaiABQYwDaikCADcCACACQRxqIAFBhANqKQIANwIAIAJBFGogAUH8AmopAgA3AgAgAiAENgIIIAIgASkC9AI3AgwMAQsgAkEIaiAGEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDCDcDACADQSBqIAJBKGopAwA3AwAgA0EYaiACQSBqKQMANwMAIANBEGogAkEYaikDADcDACADQQhqIAJBEGopAwA3AwAgAUHgAmohCCABQZwDaiEJIAEoAsgCIgRBJUcNACABKAKcAyEFIAEoAvACIQQgAUElNgLwAgJAIARBJUcEQCACQSxqIAFBlANqKAIANgIAIAJBJGogAUGMA2opAgA3AgAgAkEcaiABQYQDaikCADcCACACQRRqIAFB/AJqKQIANwIAIAIgBDYCCCACIAEpAvQCNwIMDAELIAJBCGogBhAyIAMoAgBBJUYNACADEOgDCyADIAIpAwg3AwAgA0EgaiACQShqKQMANwMAIANBGGogAkEgaikDADcDACADQRBqIAJBGGopAwA3AwAgA0EIaiACQRBqKQMANwMAIAMoAgAiBEElRw0BIAEoAoACIQEgAkEAOgAIIAEgASACQQhqEO8bIQEgAEIANwMAIAAgATYCCAwCCyABKALgAiEFCwJAIARBJEcEQCABQSU2AsgCIAEgASkD4AI3A5gDIAJBHGogAUHcAmooAgA2AgAgAkEUaiABQdQCaikCADcCACACIAQ2AgggAiABKQLMAjcCDCACQQhqEOgDIAEoApwDIQcCfyABKALIAkElRwRAIAchBCAIKAIADAELIAEoAvACIQQgAUElNgLwAgJAIARBJUcEQCACQSxqIAFBlANqKAIANgIAIAJBJGogAUGMA2opAgA3AgAgAkEcaiABQYQDaikCADcCACACQRRqIAFB/AJqKQIANwIAIAIgBDYCCCACIAEpAvQCNwIMDAELIAJBCGogBhAyIAMoAgBBJUYNACADEOgDCyADIAIpAwg3AwAgA0EgaiACQShqKQMANwMAIANBGGogAkEgaikDADcDACADQRBqIAJBGGopAwA3AwAgA0EIaiACQRBqKQMANwMAIAkoAgAiBCAIKAIAIAMoAgBBJUYbCyAHRgRAIAJBCGogARDGAyACKQMIIgpQRQRAIAAgCjcDACAAIAUgCSgCACIBIAEgBUkbNgIMIAAgBSABIAEgBUsbNgIIDAQLIAIoAhAhASAAQgA3AwAgACABNgIIDAMLIAJB3QA6AAggBSAEIAQgBUsbIAUgBCAEIAVJGyACQQhqEO8bIQcgAygCACIEQSVGBEAgASgC8AIhBCABQSU2AvACAkAgBEElRwRAIAJBLGogAUGUA2ooAgA2AgAgAkEkaiABQYwDaikCADcCACACQRxqIAFBhANqKQIANwIAIAJBFGogAUH8AmopAgA3AgAgAiAENgIIIAIgASkC9AI3AgwMAQsgAkEIaiAGEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDCDcDACADQSBqIAJBKGopAwA3AwAgA0EYaiACQSBqKQMANwMAIANBEGogAkEYaikDADcDACADQQhqIAJBEGopAwA3AwAgAygCACIEQSVGDQILIARBJEcNASABQSU2AsgCIAEgASkD4AI3A5gDIAEgASgCzAIQwAgMAQsgAUElNgLIAiAAQgA3AwAgASABKQPgAjcDmAMgACABKALMAjYCCAwBCyAAQgA3AwAgACAHNgIICyACQTBqJAALkAsCCH8BfiMAQUBqIgMkACADQTBqIAIgAUEMQQAgAS0AJSIEQQJGG2ooAgBBABDAAgJAAkACQAJAAkACQAJAAkACQCADLQAwQQRHBEAgAykDMCILQv8Bg0IEUg0BCyADQQA2AhggA0EwaiACIANBGGpBmpzgAEEBEPMOAkAgAy0AMEEERg0AIAMpAzAiC0L/AYNCBFENACAAIAs3AgAMCQsgAiACKAIsQQFqNgIsIARBAkcNASABKAIEIQggASgCECEGIANBMGogASgCDCIJIAEoAggiBEGBgAQgBBDJISADLQAwQQVHBEAgAykDMCELDAULIAMoAjQaIARFDQICQCACLQBNDQAgA0EwaiACEO0XIAMtADBBBEYNACADKQMwIgtC/wGDQgRSDQULIANBADoAJiADQQA6ACcgBCEHIAghAQNAIAdFBEAgA0EwaiACIAkgBkGBgAQgBSALQiCIpxDG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QgODUARAIB6nIgEgASgCACIBQQFqNgIAIAFBAEgNBwsgAkHMAGooAgAhHCACQcgAaigCACEdIAJBQGspAwAiH6chASAfQgODUARAIAEgASgCACIIQQFqNgIAIAhBAEgNBwsgH0IgiKchEQsCf0EEIAIoAgAiCEEERg0AGgJAAkACQAJAIAhBAWsOAwECAwALIAMgAkEIahCYBSADKAIcIRIgAygCGCETIAMoAhQhFCADKAIQIRUgAygCDCELIAMoAgghDCADKAIEIQ0gAygCACEEQQAMAwsgAkEUaigCACELIAJBEGooAgAhDCACQQRqKAIARQRAIAJBCGooAgAhBCACQQxqKAIAIQ1BACEHQQEMAwsgAkEIaigCACEHEL4pIQQgAyAHEDUgBEE4aiADQThqKQMANwMAIARBMGogA0EwaikDADcDACAEQShqIANBKGopAwA3AwAgBEEgaiADQSBqKQMANwMAIARBGGogA0EYaikDADcDACAEQRBqIANBEGopAwA3AwAgBEEIaiADQQhqKQMANwMAIAQgAykDADcDAEEBIQdBAQwCCxDJKSEHIAMgAkEEaigCABCxBCAHIANBoAEQgQkaQQIMAQsgAkEcaigCACEUIAJBGGooAgAhFSACQRRqKAIAIQsgAkEQaigCACEMIAMgAkEEahCYASACQSRqKAIAIRIgAkEgaigCACETIAMoAgghDSADKAIEIQQgAygCACEHQQMLIQggAa0gEa1CIIaEIR8gBa0gBq1CIIaEISAgDSEFIAQhBiAHIQEMAQsgAkEMaigCACEFIAJBCGooAgAhBiACQQRqKAIAIQIQvikhASADIAIQNSABQThqIANBOGopAwA3AwAgAUEwaiADQTBqKQMANwMAIAFBKGogA0EoaikDADcDACABQSBqIANBIGopAwA3AwAgAUEYaiADQRhqKQMANwMAIAFBEGogA0EQaikDADcDACABQQhqIANBCGopAwA3AwAgASADKQMANwMAQQUhCAsgCSAPaiICIAg2AgAgAkHUAGogGjYCACACQdAAaiAbNgIAIAJBzABqIBw2AgAgAkHIAGogHTYCACACQUBrIB83AwAgAkE4aiAgNwMAIAJBMGogHjcDACACQSxqIBg2AgAgAkEoaiAZNgIAIAJBJGogEjYCACACQSBqIBM2AgAgAkEcaiAUNgIA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ACgCIBCNJwwICyAAKQMIIgRCA4NCAFINByACIASnIgA2AgwgAkEMahDQBiAAIAAoAgAiAUEBazYCACABQQFHDQcgACAAKAIgEI0nDAcLIAApAwgiBEIDg0IAUg0GIAIgBKciADYCDCACQQxqENAGIAAgACgCACIBQQFrNgIAIAFBAUcNBiAAIAAoAiAQjScMBgsCQCAAKQMIIgRCA4NCAFINACACIASnIgE2AgwgAkEMahDQBiABIAEoAgAiA0EBazYCACADQQFHDQAgASABKAIgEI0nCyAAKQMQIgRCA4NCAFINBSACIASnIgA2AgwgAkEMahDQBiAAIAAoAgAiAUEBazYCACABQQFHDQUgACAAKAIgEI0nDAULIAApAwgiBEIDg0IAUg0EIAIgBKciADYCDCACQQxqENAGIAAgACgCACIBQQFrNgIAIAFBAUcNBCAAIAAoAiAQjScMBAsgACkDCCIEQgODQgBSDQMgAiAEpyIANgIMIAJBDGoQ0AYgACAAKAIAIgFBAWs2AgAgAUEBRw0DIAAgACgCIBCNJwwDCyAAKQMIIgRCA4NCAFINAiACIASnIgA2AgwgAkEMahDQBiAAIAAoAgAiAUEBazYCACABQQFHDQIgACAAKAIgEI0nDAILIAApAwgiBEIDg0IAUg0BIAIgBKciADYCDCACQQxqENAGIAAgACgCACIBQQFrNgIAIAFBAUcNASAAIAAoAiAQjScMAQsgACgCDCIAKAIAIgFBCGoQigMgAUEgQQgQohggAEEEQQQQohgLIAJBEGokAAv3CwEEfyMAQcABayIEJAACQAJAAkACQCACIAMoAjARBQBB/wFxQQFrDgMCAAABCyAEQThqIABBkAFqLwAAOwEAIAQgACkAiAE3AzAMAgsgBEE4aiAAQaQBai8AADsBACAEIAApAJwBNwMwDAELIARBOGogAEGaAWovAAA7AQAgBCAAKQCSATcDMAsgBEEANgJEIARCgICAgBA3AjwCfwJAAkACQAJAAkACQAJAAkACQAJAIAAtAPMBIgVBAUYEQCAEQShqIAIgAygCOCIGEQEAIAQoAigiByAEKAIsELwtIAcNAQsgBEEQaiACIAMoAiwRAQAgBCgCECIGRQ0JIAQoAhQhByAEIAY2AmQgBCAHNgJoIARB/ABqIARBOGovAQA7AQAgBEEBNgKsASAE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IANBCGogAUEBQQAQuhQgAygCDCEJAkAgAygCCARAIAkhBAwBC0EEIQQCQCADAn8CQCABQShqIgUQoRMiBkUNACAGKAIAQQJHDQAgBi0ACEECRw0AQQAgBi0ACUEaRw0BGiABKAIoIQQgAUElNgIoIAEgASkDQDcDeCADQcQAaiABQTRqKQIANwIAIANBzABqIAFBPGooAgA2AgAgAyABKQIsNwI8IAMgBDYCOCADQThqIgQQjg4gBCABELUDIAMoAjwhBCADKAI4IghBgICAgHhGDQIgAygCQAwBC0EACzYCMCADIAQ2AiwgAyAINgIoAkAgBRChEyIERQ0AIAQoAgBBAkcNACAELQAIQQJHDQAgBC0ACUEaRw0AIAMgBRC3HiADKAIEIQQgAygCACEGIANBlQE6ADggASAGIAQgA0E4aiIGEI8jIAFBLGohBCAGQQRyIQYDQCAFEKETIgcEQCADQQA2AmAgAyAHNgJkIANB4ABqEL0rIAUQoRMiBwRAIAcoAgBBDUYNAwsgBiAEKQIANwIAIAEoAighByABQSU2AiggASABKQNANwN4IAZBCGogBEEIaikCADcCACAGQRBqIARBEGooAgA2AgAgAyAHNgI4IANBOGoQjg4MAQsLIAEoAtgCIQQgA0EAOgA4IAMgBCAEIANBOGoQ7xs2AmQgA0EBNgJgIANB4ABqEL0rCyAFEKETGiABKAJAIQcgASgCfCEIIAEoAighCiADQdEAaiABQZcDaikAACINNwAAIANBzABqIAFBkgNqKQEANwIAIANBxABqIAFBigNqIgQpAQA3AgAgA0EBOgBsIAMgASkBggMiDjcAYCADIAQoAQA2AGggAyABKQCPAzcAbSADIA03AHUgAyAONwI8IAFBgAFqIANB4ABqIgUQ7wogAyABNgI4IAUgARBlIAMoAmAhBiADKAJoIQsgAygCZCEEIANBOGoiDBDlLCAGQYCAgIB4RwRAIAEoAnwhASADQegAaiADQSBqKQMANwMAIAMgAykDGDcDYCAMIAUQkxRBCEHIABC5LiIFRQ0EIAUgAykDODcDCCAFIAs2AiwgBSAENgIoIAUgBjYCJCAFIAk2AiAgBSADKQMoNwM4IAUgASACIAEgAksbNgIEIAUgASACIAEgAkkbNgIAIAVBEGogA0FAaykDADcDACAFQRhqIANByABqKQMANwMAIAVBQGsgA0EwaigCADYCACAFIAggByAKQSVGGyICIAEgASACSRs2AjQgBSACIAEgASACSxs2AjBBACEBIAVBADoARCAFIQQMBQsgA0EoahDiLQsgCRDuLgsgAykDGBDQGgtBASEBDAELAAsgACAENgIEIAAgATYCACADQYABaiQAC5sKAhB/BX4jAEHwAGsiAiQAAkAgASgCCEUEQCABKAIEIgBBABCpJSABKAIAIgFFDQEgACABQQJ0QQQQohgMAQsgACgCIEGAgICAeEcEQCACQQhqIAFBCGooAgA2AgAgAkEAOwEMIAIgASkCADcDAEEEQQAQqSUCQAJAAkACQAJAAkACQAJAIAAoAigiAwRAIAAoAiQhASADQTBsIQMDQCABIAIQ8gQgAUEwaiEBIANBMGsiAw0ACyACLQANQQFxDQELIAIoAgghBCACQQA2AgggAigCACEFIAIoAgQhASACQoCAgIDAADcDACAAKAIoIQMgAEEANgIoIAJBADYCHCACIAEgBEECdGo2AjAgAiAFNgIsIAIgATYCKCACIAE2AiQgAiAAQSBqIgA2AhggAkKIgICAgAE3AhAgAiADNgIgIAJBJGohASADRQRAIAAgARDEEAwDCyAAQQAgARCeE0UNAiACKAIwIgAgAigCKCIDRgRAIAMhAAwCCyACQRBqIAAgA2tBAnYQ6xcgAigCGCACKAIcIAEQnhNFDQIgAigCMCEDIAIoAighAAwBCyACKAIAIQAgAigCBCIBIAIoAggQqSUgAEUNCCABIABBAnRBBBCiGAwICyACQUBrIAMgAGtBAnZBCEEwEN4QIAIoAkQhACACKAJAQQFGDQEgAkEANgI8IAIgAigCSDYCOCACIAA2AjQgAkE0aiABEMQQIAIoAjgiCiACKAI8IgBBMGxqIQUgAigCNCAKIQECQCAARQ0AIAJBEGogABDrFyACKAIYIgcoAggiAyACKAIcIgRGDQAgBygCBCIIIARBMGxqIQwgAUEwaiEGIABBMGwhCSAIIANBMGxqIQAgAkHoAGohCCACQeAAaiENIAJB2ABqIQ4gAkHQAGohDyACQcgAaiEQIAEhAwNAIAYhASAJRQRAIAUhAQwCCyADQTBqIQQgAygCACIRQRNGBEAgBCEBDAILIANBLGooAgAhBiADQSRqKQIAIRIgA0EcaikC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IAEtABwhBgJAIAEoAhgiAkUEQEEAIQEMAQsQvykhASACKQIEIQwgAigCACECEMApIANBIGoiCCACEH0gCEHgABCBCSECIAEgDDcCBCABIAI2AgALIAAgAykCCDcCBCAAIAY6ABwgACABNgIYIAAgBDYCFCAAIAU2AhAgAEEMaiADQRBqKAIANgIADAULIAEoAhQhBSABKAIQIQYgASgCDCEHIAEoAgghCBDBKSECIANBIGogASgCBBCXAyACQSBqIANBQGspAwA3AwAgAkEYaiADQThqKQMANwMAIAJBEGogA0EwaikDADcDACACQQhqIANBKGopAwA3AwAgAiADKQMgNwMAAkAgASgCGCIERQRAQQAhAQwBCxC/KSEBIAQpAgQhDCAEKAIAIQQQwCkgA0EgaiILIAQQfSALQeAAEIEJIQQgASAMNwIEIAEgBDYCAAsgACABNgIYIAAgBTYCFCAAIAY2AhAgACAHNgIMIAAgCDYCCCAAIAI2AgQMBAsgASgCFCEEIAEoAhAhBSADQRRqIAFBBGoQsgMgAS0AHCEGAkAgASgCGCICRQRAQQAhAQwBCxC/KSEBIAIpAgQhDCACKAIAIQIQwCkgA0EgaiIIIAIQfSAIQeAAEIEJIQIgASAMNwIEIAEgAjYCAAsgACADKQIUNwIEIAAgBjoAHCAAIAE2AhggACAENgIUIAAgBTYCECAAQQxqIANBHGooAgA2AgAMAwsgASkCDCEMEMEpIQIgA0EgaiIJIAEoAgQQlwMgAkEgaiADQUBrIgQpAwA3AwAgAkEYaiADQThqIgUpAwA3AwAgAkEQaiADQTBqIgYpAwA3AwAgAkEIaiADQShqIgcpAwA3AwAgAiADKQMgNwMAIAEoAgghCBC+KSEBIAkgCBA1IAFBOGogA0HYAGopAwA3AwAgAUEwaiADQdAAaikDADcDACABQShqIANByABqKQMANwMAIAFBIGogBCkDADcDACABQRhqIAUpAwA3AwAgAUEQaiAGKQMANwMAIAFBCGogBykDADcDACABIAMpAyA3AwAgACAMNwIMIAAgATYCCCAAIAI2AgQMAgsgACABKQIENwIEDAELIAEoAgQhAhC+KSEBIANBIGogAhA1IAFBOGogA0HYAGopAwA3AwAgAUEwaiADQdAAaikDADcDACABQShqIANByABqKQMANwMAIAFBIGogA0FAaykDADcDACABQRhqIANBOGopAwA3AwAgAUEQaiADQTBqKQMANwMAIAFBCGogA0EoaikDADcDACABIAMpAyA3AwAgACABNgIECyAAIAo2AgAgA0GAAWokAA8LAAuNDAIEfwF+IwBBEGsiAyQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCAA4TEhIBAgMEBQYHCAkKCwwNDg8QEQALIABBCGoQyhcMEQsgACgCBCIBQYCAgIB4RgRAIABBCGoQ/QkgACgCCCAAKAIMEMUqIAAoAiAiAQRAIAEQ+w4gASgCACABQQRqKAIAEMIqIAFBFEEEEKIYCyAAKAIUIgAoAgAiARCYAyABQeAAQQgQohggAEEMQQQQohgMEQsgAEEEahD9CSABIAAoAggQxSogACgCHCIBBEAgARD7DiABKAIAIAFBBGooAgAQwiogAUEUQQQQohgLIAAoAhAiACgCACIBEJgDIAFB4ABBCBCiGCAAQQxBBBCiGAwQCwJAIAAtACRBAkYEQCAAKAIQIgEQlA8gAUEwQQgQohgMAQsgACkDECIFQgODQgBSDQAgAyAFpyIBNgIMIANBDGoQ0AYgASABKAIAIgJBAWs2AgAgAkEBRw0AIAEgASgCIBCNJwsgACgCKCIARQ0PIAAQsyIgACgCACAAQQRqKAIAEMMqIABBFEEEEKIYDA8LIwBBEGsiAiQAAkAgAEEQaiIBLQA0QQRGBEAgAS0AFEECRgRAIAEoAgAiARCUDyABQTBBCBCiGAwCCyABKQMAIgVCA4NCAFINASACIAWnIgE2AgwgAkEMahDQBiABIAEoAgAiBEEBazYCACAEQQFHDQEgASABKAIgEI0nDAELIAEQyhcLIAJBEGokACAAKAJYIgBFDQ4gABCzIiAAKAIAIABBBGooAgAQwyogAEEUQQQQohgMDgsgACgCCCIBIAAoAgwQ6CcgACgCBCABEMcqDA0LIAAoAgQiABCYAyAAQeAAQQgQohgMDAsgACgCCCIBIAAoAgwQgh8gACgCBCABEMcqDAsLIAAoAgQiABCYAyAAQeAAQQgQohgMCgsgACgCBCIAEJgDIABB4ABBCBCiGAwJCyAAQQhqELMiIAAoAgggACgCDBDDKgwICyAAKAIEIgEQmAMgAUHgAEEIEKIYIAAoAggiARCYAyABQeAAQQgQohggACgCDCIBEJgDIAFB4ABBCBCiGCAAKAIQIgAQmAMgAEHgAEEIEKIYDAcLAkAgACkDGCIFQgODQgBSDQAgAyAFpyIBNgIMIANBDGoQ0AYgASABKAIAIgJBAWs2AgAgAkEBRw0AIAEgASgCIBCNJwsgACgCMCIBBEAgARCYAyABQeAAQQgQohgLIAAoAjQiAEUNBiAAEJgDIABB4ABBCBCiGAwGCyAAKAIEIgAQmAMgAEHgAEEIEKIYDAULIAAoAgQiABCYAyAAQeAAQQgQohgMBAsgACgCBCIBEJgDIAFB4ABBCBCiGCAAKAIIIgAQmAMgAEHgAEEIEKIYDAMLAkAgACkDGCIFQgODQgBSDQAgAyAFpyIBNgIMIANBDGoQ0AYgASABKAIAIgJBAWs2AgAgAkEBRw0AIAEgASgCIBCNJwsgACgCMCIBBEAgARCYAyABQeAAQQgQohgLIAAoAjQiAQRAIAEQmAMgAUHgAEEIEKIYCyAAKAJAIgEEQCABEJgDIAFB4ABBCBCiGAsgACgCRCIARQ0CIAAQmAMgAEHgAEEIEKIYDAILAkACQAJAAkBBBCAAKAIIIgFBgICAgHhzIgIgAkEETxsOBAECBQMACyAAQQhqELMiIAEgACgCDBDDKiAAKAIYIgEgACgCHBCuDiAAKAIUIAEQxCoMBAsgACkDICIFUCAFQgODQgBScg0DIAMgBaciADYCDCADQQxqENAGIAAgACgCACIBQQFrNgIAIAFBAUcNAyAAIAAoAiAQjScMAwsgAEEQahC/EAwCCyAAKQMYIAAoAiAQnRUMAQsCQCAALQAcQQJGDQAgACkDCCIFQgODQgBSDQAgAyAFpyIBNgIMIANBDGoQ0AYgASABKAIAIgJBAWs2AgAgAkEBRw0AIAEgASgCIBCNJwsgACgCKCIARQ0AIAAoAgAiARCYAyABQeAAQQgQohggAEEMQQQQohgLIANBEGokAAuoCQETfyMAQSBrIgskACABKALAASEDIAEoAsQBIQwgASgCnAEhECABKALQASISIQ1BgIDEACEHAkACQANAAkAgAyAMRg0AIAdB9wBKIQogB0HYAGshEyAHQS5GIRQDQCADLAAAIghB/wFxIgYhBAJAIAhBAE4iCQ0AIAMtAAFBP3EhBSAIQR9xIQQgCEFfTQRAIARBBnQgBXIhBAwBCyADLQACQT9xIAVBBnRyIQUgCEFwSQRAIAUgBEEMdHIhBAwBCyAEQRJ0QYCA8ABxIAMtAANBP3EgBUEGdHJyIQQLAkACQAJ/AkAgBEHfAEcEQCAEQYCAxABGDQYgBEEwayIFQQpPBEBBfyAEQSByIgdB1wBrIgUgBSAHQeEAa0kbIgVBEE8NBwtBASEHIAEgA0EBaiIGNgLAASAJRQ0BIAYMAgsgAyAMRg0CIAMgBkGH7tgAai0AAGoiBCAMRg0CAkAgBCwAACIFQQBOBEAgBUH/AXEhBAwBCyAELQABQT9xIQkgBUEfcSEGIAVBX00EQCAGQQZ0IAlyIQQMAQsgBC0AAkE/cSAJQQZ0ciEJIAVBcEkEQCAJIAZBDHRyIQQMAQsgBkESdEGAgPAAcSAELQADQT9xIAlBBnRyciIEQYCAxABGDQMLIARBIHJB4QBrQQVLIARBMGtBCk9xDQICQAJAIApFBEAgEw4IBQICAgICAgUBCyAHQYCAxABGDQQgB0H4AEcNAQwECyAUDQMLAkAgBEHYAGsOCAMEBAQEBAQDAAsgBEEuRiAEQfgARnINAgwDCyABIANBAmoiBjYCwAEgAy0AAUE/cSEKIAhBH3EhCQJAAn8gCUEGdCAKciAIQWBJDQAaIAEgA0EDaiIGNgLAASADLQACQT9xIApBBnRyIQogCiAJQQx0ciAIQXBJDQAaIAEgA0EEaiIGNgLAASAJQRJ0QYCA8ABxIAMtAANBP3EgCkEGdHJyCyIDQYABSQ0AQQIhByADQYAQSQ0AQQNBBCADQYCABEkbIQcLIAYLIQMgASAHIA1qIg02AtABIBFBACAPGyIHQf////8ATQRAQQEhDyAFIAdBBHRyIREgBCEHIA5BAWoiDkH/AXEgAkH/AXFHDQUMBgsgC0EjOgAIIBAgECALQQhqEO8bIQEgAEECNgIAIAAgATYCBAwGCyALQe4AOgAIIAEgEiALQQhqELErIAMtAAAhCAtBASEEIAEgA0EBaiIFNgLAASAIwEEATgR/IAUFIAEgA0ECaiIFNgLAASADLQABQT9xIQkgCEEfcSEGAkACfyAGQQZ0IAlyIAhB/wFxIhVB4AFJDQAaIAEgA0EDaiIFNgLAASADLQACQT9xIAlBBnRyIQggCCAGQQx0ciAVQfABSQ0AGiABIANBBGoiBTYCwAEgBkESdEGAgPAAcSADLQADQT9xIAhBBnRycgsiA0GAAUkNAEECIQQgA0GAEEkNAEEDQQQgA0GAgARJGyEECyAFCyEDIAEgBCANaiINNgLQASADIAxHDQALCwsgAkH/AXEiAUUgDkH/AXEgAUZyDQAgAEEANgIADAELIAAgETYCBCAAIA82AgALIAtBIGokAAuKCQIFfwN+AkACQAJAAkAgAUEITwRAIAFBB3EiAkUNAiAAKAKgASIDQSlPDQMgA0UEQCAAQQA2AqABDAMLIANBAWtB/////wNxIgVBAWoiBEEDcSEGIAJBAnRB5O/AAGooAgAgAnatIQggBUEDSQRAIAAhAgwCCyAEQfz///8HcSEFIAAhAgNAIAIgAjUCACAIfiAHfCIHPgIAIAJBBGoiBCAENQIAIAh+IAdCIIh8Igc+AgAgAkEIaiIEIAQ1AgAgCH4gB0IgiHwiBz4CACACQQxqIgQgBDUCACAIfiAHQiCIfCIJPgIAIAlCIIghByACQRBqIQIgBUEEayIFDQALDAELIAAoAqABIgNBKU8NAiADRQRAIABBADYCoAEPCyABQQJ0QeTvwABqNQIAIQggA0EBa0H/////A3EiAUEBaiICQQNxIQYCQCABQQNJBEAgACECDAELIAJB/P///wdxIQUgACECA0AgAiACNQIAIAh+IAd8Igc+AgAgAkEEaiIBIAE1AgAgCH4gB0IgiHwiBz4CACACQQhqIgEgATUCACAIfiAHQiCIfCIHPgIAIAJBDGoiASABNQIAIAh+IAdCIIh8Igk+AgAgCUIgiCEHIAJBEGohAiAFQQRrIgUNAAsLIAYEQANAIAIgAjUCACAIfiAHfCIJPgIAIAJBBGohAiAJQiCIIQcgBkEBayIGDQALCwJAIAAgCUKAgICAEFoEfyADQShGDQEgACADQQJ0aiAHPgIAIANBAWoFIAMLNgKgAQ8LDAMLIAYEQANAIAIgAjUCACAIfiAHfCIJPgIAIAJBBGohAiAJQiCIIQcgBkEBayIGDQALCwJAIAAgCUKAgICAEFoEfyADQShGDQEgACADQQJ0aiAHPgIAIANBAWoFIAMLNgKgAQwBCwwCCwJAIAFBCHEEQAJAAkAgACgCoAEiA0EpSQRAIANFBEBBACEDDAMLIANBAWtB/////wNxIgJBAWoiBUEDcSEGIAJBA0kEQEIAIQcgACECDAILIAVB/P///wdxIQVCACEHIAAhAgNAIAIgAjUCAELh6xd+IAd8Igc+AgAgAkEEaiIEIAQ1AgBC4esXfiAHQiCIfCIHPgIAIAJBCGoiBCAENQIAQuHrF34gB0IgiHwiBz4CACACQQxqIgQgBDUCAELh6xd+IAdCIIh8Igg+AgAgCEIgiCEHIAJBEGohAiAFQQRrIgUNAAsMAQsMBAsgBgRAA0AgAiACNQIAQuHrF34gB3wiCD4CACACQQRqIQIgCEIgiCEHIAZBAWsiBg0ACwsgCEKAgICAEFQNACADQShGDQIgACADQQJ0aiAHPgIAIANBAWohAwsgACADNgKgAQsgAUEQcQRAIABByN7AAEECEKwFCyABQSBxBEAgAEHQ3sAAQQMQrAULIAFBwABxBEAgAEHc3sAAQQUQrAULIAFBgAFxBEAgAEHw3sAAQQoQrAULIAFBgAJxBEAgAEGY38AAQRMQrAULIAAgARD/BhoPCwwBCyADQShBtI/BABDpFgALQShBKEG0j8EAEOcWAAvWCQEHfyMAQYABayICJAAgAUHIAmohAyABQShqIQYCfyABKALIAkElRwRAIAFBnANqIQcgASgC4AIMAQsgASgC8AIhBSABQSU2AvACAkAgBUElRwRAIAJB/ABqIAFBlANqKAIANgIAIAJB9ABqIAFBjANqKQIANwIAIAJB7ABqIAFBhANqKQIANwIAIAJB5ABqIAFB/AJqKQIANwIAIAIgBTYCWCACIAEpAvQCNwJcDAELIAJB2ABqIAYQMiADKAIAQSVGDQAgAxDoAwsgAyACKQNYNwMAIANBIGogAkH4AGopAwA3AwAgA0EYaiACQfAAaikDADcDACADQRBqIAJB6ABqKQMANwMAIANBCGogAkHgAGopAwA3AwAgAUGcA2oiByABQeACaiABKALIAkElRhsoAgALIQUgAkHYAGogAUEAEGQgAigCXCEEAkACQCACKAJYIghBB0cEQCACQTBqIAJB+ABqKQMANwMAIAJBKGogAkHwAGopAwA3AwAgAkEgaiACQegAaikDADcDACACIAIpA2A3AxggAiAENgIUIAIgCDYCEAJAAkAgAygCACIEQSVGBEAgASgC8AIhBCABQSU2AvACAkAgBEElRwRAIAJB/ABqIAFBlANqKAIANgIAIAJB9ABqIAFB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KGogARDGAyADKAIwIQZBASEKAkACQCADKQMoIgxQBEAgBiEFDAELIAMoAjQhCyABQcgCaiEEIAFBKGohBwJAAn8CQCABKALIAiIIQSVGBEAgASgC8AIhBSABQSU2AvACAkAgBUElRwRAIANBzABqIAFBlANqKAIANgIAIANBxABqIAFBjANqKQIANwIAIANBPGogAUGEA2opAgA3AgAgA0E0aiABQfwCaikCADcCACADIAU2AiggAyABKQL0AjcCLAwBCyADQShqIAcQMiAEKAIAQSVGDQAgBBDoAwsgBCADKQMoNwMAIARBIGogA0HIAGopAwA3AwAgBEEYaiADQUBrKQMANwMAIARBEGogA0E4aikDADcDACAEQQhqIANBMGopAwA3AwBBACEFIAQoAgAiCEElRg0BCyAIQRRHDQAgAS0AzAJBBEcNACADQRBqIAFBAUEAEGogAygCFCIFIAMoAhANARoLIANBCGogAUH4yt8AQZGX4ABBARCrAyADKAIMIQgCQCADKAIIBEAgCCECDAELIAQoAgAiCUElRgRAIAEoAvACIQkgAUElNgLwAgJAIAlBJUcEQCADQcwAaiABQZQDaigCADYCACADQcQAaiABQYwDaikCADcCACADQTxqIAFBhANqKQIANwIAIANBNGogAUH8AmopAgA3AgAgAyAJNgIoIAMgASkC9AI3AiwMAQsgA0EoaiAHEDIgBCgCAEElRg0AIAQQ6AMLIAQgAykDKDcDACAEQSBqIANByABqKQMANwMAIARBGGogA0FAaykDADcDACAEQRBqIANBOGopAwA3AwAgBEEIaiADQTBqKQMANwMAIAQoAgAiCUElRg0DCwJAAkAgCUEOaw4CBAABCyABQSU2AsgCIAEgASkD4AI3A5gDIANBPGogAUHcAmooAgA2AgAgA0E0aiABQdQCaikCADcCACADQQ82AiggAyABKQLMAjcCLCADQShqEOgDDAMLIAEtAOgCDQIgA0EwaiAHEN0HIANBwOjgADYCLCADQTQ6ACggB0HwAkG4AiAEKAIAQSVGIgYbaigCACICIAdB9AJBvAIgBhtqKAIAIgYgAiAGSRsgAiAGIAIgBksbIANBKGoQ7xshAgJAIAcQvwoiBkUNACAGKAIAQSRHDQAgASABKQPgAjcDmAMgASgCyAIgAUElNgLIAkEkRgRAIAEgASgCzAIQwAgMAQtBiYThAEEoQbDW3wAQ1SEACyAIEMouCyAFBEAgBRD7DiAFKAIAIAVBBGooAgAQwiogBUEUQQQQohgLIAILIQUgDEIDg0IAUg0BIAMgDKciATYCKCADQShqENAGIAEgASgCACICQQFrNgIAIAJBAUcNASABIAEoAiAQjScMAQsgASgCnAMhBCADIAs2AiQgAyAGNgIgIAMgDDcDGCADQShqIANBGGoQkxRBACEKQaC/5AAtAAAaQTAQhAEiAUUNASABIAMpAyg3AwggAUEAOgAoIAEgCDYCJCABIAU2AiAgASAEIAIgAiAESRs2AgQgASAEIAIgAiAESxs2AgAgAUEQaiADQTBqKQMANwMAIAFBGGogA0E4aikDADcDACABIQULIAAgBTYCBCAAIAo2AgAgA0HQAGokAA8LAAvuCQEDfyAAIAFHBEADQAJAAkACQAJAAkACQAJAAkBBBCAAKAIAIgNBBGsiBCAEQQdPG0EBaw4GAQIDBAUGAAsgAEIANwIQIABBDGooAgAiBARAIABBCGooAgAhAyAEQShsIQQDQAJAAkACQAJAAkAgAygCAEEBaw4DAQIDAAsgA0EIaiACENApDAMLIANBBGogAhDSGAwCCyADQQRqIAIQ3CUMAQsgA0EEaiACEJENCyADQShqIQMgBEEoayIEDQALCyAAKAIYIgMEQCADQgA3AgQgAiADKAIAEKECCyAAKAIcIgNFDQYgA0IANwIMIANBCGooAgAiBEUNBiADQQRqKAIAIgMgBEEwbGohBANAIANCADcCECADQgA3AgAgA0EgaigCACIFBEAgAiAFEKECCyADQSRqKAIAIgUEQCACIAUQoQILIANBMGoiAyAERw0ACwwGCyAAQgA3AhAgAEEMaigCACIEBEAgAEEIaigCACEDIARBKGwhBANAAkACQAJAAkACQCADKAIAQQFrDgMBAgMACyADQQhqIAIQ0CkMAwsgA0EEaiACENIYDAILIANBBGogAhDcJQwBCyADQQRqIAIQkQ0LIANBKGohAyAEQShrIgQNAAsLIAAoAhgiAwRAIANCADcCBCACIAMoAgAQoQILIAAoAhwiA0UNBSADQgA3AgwgA0EIaigCACIERQ0FIANBBGooAgAiAyAEQTBsaiEEA0AgA0IANwIQIANCADcCACADQSBqKAIAIgUEQCACIAUQoQILIANBJGooAgAiBQRAIAIgBRChAgsgA0EwaiIDIARHDQALDAULIABCADcCBCAAKAIQIAIQ8gEgACgCDCIDRQ0EIANCADcCBCACIAMoAgAQoQIMBAsgAEIANwIIIAAoAgQgAhDyASAAKAIQIgNFDQMgA0IANwIEIAIgAygCABChAgwDCyAAQgA3AiggACgCMCACEPIBAkACQAJAAkAgA0EBaw4DAQIDAAsgAEEIaiACENApDAULIABBBGogAhDSGAwECyAAQQRqIAIQ3CUMAwsgAEEEaiACEJENDAILIABCADcCFCAAKAIQIAIQ8gEgAEEMaigCACIEBEAgAEEIaigCACEDIARBKGwhBANAAkACQAJAAkACQCADKAIAQQFrDgMBAgMACyADQQhqIAIQ0CkMAwsgA0EEaiACENIYDAILIANBBGogAhDcJQwBCyADQQRqIAIQkQ0LIANBKGohAyAEQShrIgQNAAsLIAAoAhwiAwRAIANCADcCBCACIAMoAgAQoQILIAAoAiAiA0UNASADQgA3AgwgA0EIaigCACIERQ0BIANBBGooAgAiAyAEQTBsaiEEA0AgA0IANwIQIANCADcCACADQSBqKAIAIgUEQCACIAUQoQILIANBJGooAgAiBQRAIAIgBRChAgsgA0EwaiIDIARHDQALDAELIABBDGooAgAiBARAIABBCGooAgAhAyAEQShsIQQDQAJAAkACQAJAAkAgAygCAEEBaw4DAQIDAAsgA0EIaiACENApDAMLIANBBGogAhDSGAwCCyADQQRqIAIQ3CUMAQsgA0EEaiACEJENCyADQShqIQMgBEEoayIEDQALCyAAKAIQIgMEQCADQgA3AgQgAiADKAIAEKECCyAAQgA3AhQLIABBOGoiACABRw0ACwsL+wgCCH8BfiMAQeAAayIDJABBASECAkACQAJAAkACQAJAIAEoAgAOCgQFAQUDBQIFBQAFCyABKAIIQRFHDQQgASgCEEEHRw0EIAEoAhQtAEVBA0YNBCAAKAIMIAEQvSIMBAtBACECIAEtACANAyABKAIMIgRFDQMgACgCCCEIIAEoAghB0ABqIQICQAJ/AkADQAJAIAJB0ABrIgApAwAiCkIBVg0AIAJBCGstAABBAXFFIgUgClBxRQRAIApQQQEgBRtFDQEgAAwECyABKAIYDQAgA0EYaiACQcgAaxCtISADIAMoAiA2AlAgAyADKQMYIgo3A0ggCCADQcgAahD0BwJAIApCA4NCAFINACADIAqnIgA2AlwgA0HcAGoQ0AYgACAAKAIAIgdBAWs2AgAgB0EBRw0AIAAgACgCIBCNJwsNAgsgAkHQAGohAiAEIAZBAWoiBkcNAAtBACEADAILIAJB0ABrCxC5EUEBIQAgBkEBaiAERg0AIAZBf3MgBGohBgNAAkACQCACKQMAIgpCAVYNAAJAIAJByABqLQAAQQFxIgVFIApQcUUEQCAFIApQcg0BDAILIAEoAhgNASADQQhqIAJBCGoQrSEgAyADKAIQNgJQIAMgAykDCCIKNwNIIAggA0HIAGoQ9AcCQCAKQgODQgBSDQAgAyAKpyIFNgJcIANB3ABqENAGIAUgBSgCACIJQQFrNgIAIAlBAUcNACAFIAUoAiAQjScLRQ0BCyACELkRIABBAWohAAwBCyACIABBsH9saiACQdAAEIEJGgsgAkHQAGohAiAGQQFrIgYNAAsLIAEgBCAAazYCDCAAIARHIQIMAwtBACECIAEoAgQiAS0AQQ0CQQEhAiABLQBADQIgACgCBCADQThqIAFBKGoQrSEgAyADKAJANgJQIAMgAykDOCIKNwNIIANByABqEJMNIQIgCkIDg0IAUg0CIAMgCqciADYCXCADQdwAahDQBiAAIAAoAgAiAUEBazYCACABQQFHDQIgACAAKAIgEI0nDAILIAEoAgQiASgCAEEaRw0BIAAoAgggA0EoaiABQQhqEK0hIAMgAygCMDYCUCADIAMpAygiCjcDSCADQcgAahD0BwJAIApCA4NCAFINACADIAqnIgA2AlwgA0HcAGoQ0AYgACAAKAIAIgRBAWs2AgAgBEEBRw0AIAAgACgCIBCNJwtBAXMhAgwBCyABLQAgDQAgASgCDCIFRQ0AIAMgACkCBDcCSCABKAIIIQICQAJAA0AgBEEBaiEGIANByABqIAIQ7gVFDQEgAkHIAGohAiAGIgQgBUcNAAtBACEEDAELIAIQ3wogBSAGRgRAQQEhBAwBCyACQcgAaiECIARBf3MgBWohBkEBIQQDQAJAIANByABqIAIQ7gVFBEAgAhDfCiAEQQFqIQQMAQsgAiAEQbh/bGogAkHIABCBCRoLIAJByABqIQIgBkEBayIGDQALCyABIAUgBGs2AgwgACgCAC0AACAEIAVHciECCyADQeAAaiQAIAJBAXEL9gkBBH8jAEGAAWsiBSQAIAVBAToAZCAFIAEpAaoCNwBYIAUgASgBsgI2AGAgBSABKQC3AjcAZSAFIAEpAL8CNwBtIAVBDGogASAFQdgAahC/CCAFKAIMIgFByAJqIQYgAUEoaiEHAkACQAJAAkACQAJAIAEoAsgCQSVGBEAgASgC8AIhCCABQSU2AvACAkAgCEElRwRAIAVB/ABqIAFBlANqKAIANgIAIAVB9ABqIAFBjANqKQIANwIAIAVB7ABqIAFBhANqKQIANwIAIAVB5ABqIAFB/AJqKQIANwIAIAUgCDYCWCAFIAEpAvQCNwJcDAELIAVB2ABqIAcQMiAGKAIAQSVGDQAgBhDoAwsgBiAFKQNYNwMAIAZBIGogBUH4AGopAwA3AwAgBkEYaiAFQfAAaikDADcDACAGQRBqIAVB6ABqKQMANwMAIAZBCGogBUHgAGopAwA3AwAgBigCAEElRg0BCyACIAYQkgYNAiAGKAIAQSVHDQELIAEoAvACIQIgAUElNgLwAgJAIAJBJUcEQCAFQfwAaiABQZQDaigCADYCACAFQfQAaiABQYwDaikCADcCACAFQewAaiABQYQDaikCADcCACAFQeQAaiABQfwCaikCADcCACAFIAI2AlggBSABKQL0AjcCXAwBCyAFQdgAaiAHEDIgBigCAEElRg0AIAYQ6AMLIAYgBSkDWDcDACAGQSBqIAVB+ABqKQMANwMAIAZBGGogBUHwAGopAwA3AwAgBkEQaiAFQegAaikDADcDACAGQQhqIAVB4ABqKQMANwMAIAYoAgBBJUYNAgsgBSAGNgJUDAILIAEoAsgCIQIgAUElNgLIAiABIAEpA+ACNwOYAyAFQeQAaiABQdQCaikCADcCACAFQewAaiABQdwCaigCADYCACAFIAEpAswCNwJcIAUgAjYCWCAFQdgAahDoAyAFIAEQswIgBSgCBCEDIAUoAgAhAgwCCyABQYACaigCACECIAVBADoAWCACIAIgBUHYAGoQ7xshAiAFQQA2AlQgAkEIahCIAyACQSBBCBCiGAtBASECIAVBATYCNCAFQaiP4QA2AjAgBUIBNwI8IAUgBUHUAGqtQoCAgICgLIQ3A0ggBSAFQcgAajYCOCAFQeQAaiIIIAVBMGoQvQggBSAENgJgIAUgAzYCXCAFQTA6AFggB0HwAkG4AiAGKAIAQSVGIgQbaigCACIDIAdB9AJBvAIgBBtqKAIAIgQgAyAESRsgAyAEIAMgBEsbIAVB2ABqEO8bIQMgBigCACIEQSVGBEAgASgC8AIhBCABQSU2AvACAkAgBEElRwRAIAVB/ABqIAFBlANqKAIANgIAIAVB9ABqIAFBjANqKQIANwIAIAVB7ABqIAFBhANqKQIANwIAIAggAUH8AmopAgA3AgAgBSAENgJYIAUgASkC9AI3AlwMAQsgBUHYAGogBxAyIAYoAgBBJUYNACAGEOgDCyAGIAUpA1g3AwAgBkEgaiAFQfgAaikDADcDACAGQRhqIAVB8ABqKQMANwMAIAZBEGogBUHoAGopAwA3AwAgBkEIaiAFQeAAaikDADcDACAGKAIAIgRBJUYNAQsgBEEkRw0AIAFBJTYCyAIgASABKQPgAjcDmAMgASABKALMAhDACAsgBUEMahD1CiAAIAM2AgQgACACNgIAIAVBgAFqJAALkQoCB38CfiMAQeAAayIDJAACQAJAIAAoAgAiAkEJRwRAAkACQAJAAkACQAJAAkACQAJAIAJBAWsOCAECAwQFBgcIAAsgAUEAOgA5IAEtADohBiABIAAtACA6ADogACgCDCICBEAgAkHIAGwhBCAAKAIIQSBqIQIgAUEQaiEHA0AgAUEAOgA5AkAgAkEgaykDACIJQgJ9QgJYBEACQAJAAkAgCUIDfSIJp0EBakEAIAlCAlQbQQFrDgIBAgALIAEgAhCKFSABLQA0QQFHDQMgAikDACIJQgODUARAIAmnIgUgBSgCACIFQQFqNgIAIAVBAEgNEQsgByAJEI0HDAMLIAEgAkEQaxCKFQwCCyABIAJBEGsQihUMAQsgASACEIoVCyABQQA6ADkgAkHIAGohAiAEQcgAayIEDQALCyAAKAIcIgAEQCABIAAQpQQLIAEgBjoAOgwJCyAAQQhqIAEQuwIMCAsgACgCGA0HIAAoAgwiAgRAIAAoAgghBiACQdAAbCEHIAEtADkhBUEAIQIDQCABQQE6ADkCQAJAAkACQEICIAIgBmoiBCkDACIJQgJ9IgogCkICWhunQQFrDgIBAgALIARBCGooAgANAiABIARBEGoQihUMAgsgASAEQQhqEIoVDAELIAmnQQFxRQRAIAEgBEEIahCKFQsgBEEgaikDACIJQgJRIAmnQQFxckUEQCABIARBKGoQihULIAEtADRBAUcNACAEKAIADQAgAyAEQRhqIggoAgA2AgAgAxD/EiABKAIsRgRAIAhBADYCAAsgAUEBOgA6IAEgBEEIahCKFSABQQA6ADoLIAEgBToAOSAHIAJB0ABqIgJHDQALCyAAKAIcIgBFDQcgASAAEKUEDAcLAkACQAJAIAAoAghBAWsOAgIBAAsgASAAKAIoENEBDAgLIAEgACgCDBDoBgwHCyAALQAkQQJHBEAgACgCKCEAIAEoAjAQhRghAiADQTRqIAFBNGooAgA2AgAgA0EIakG4teMAKQMAIgk3AwAgA0EQaiIEQbC14wApAwAiCjcDACADQRhqIAk3AwAgAyABNgIgIAMgAjYCJCADQQE6ADkgA0EBOgAoIAMgASkCLDcCLCADIAo3AwAgAyABKAE6NgE6IAMgAS0AODoAOCADIAAQigUgAxChCiAEEKsKDAcLIAEgAEEQahDTBgwGCyABLQA5IQIgAUEBOgA5IAAoAgQiACABEOYBIAEgAjoAOSABLQA0QQFHDQUgACgCAEEaRw0FIAMgACgCGDYCACADEP8SIAEoAixGBEAgAEEANgIYCyABQQE6ADogASAAQQhqEIoVIAFBADoAOgwFCyAAKAIQIgBFDQQgASAAEKUEDAQLIAEgACgCBCIAQShqQQAQtxEgACkDAEIAUg0DIABBCGohAiAALQAcQQJGBEAgASACKAIAEN0lDAQLIAEgAhCKFQwDCyABLQA5IQQgAUEBOgA5IAAoAgQiAiABEOYBIAEgBDoAOSABLQA0QQFHDQIDQAJAQQQhAAJAAkAgAigCAEEUaw4QAAYGBgYGAgYGBgYGBgYGAQYLQSghAAsgACACaigCACECDAELCyADIAIoAhg2AgAgAxD/EiABKAIsRgRAIAJBADYCGAsgAUEBOgA6IAEgAkEIahCKFSABQQA6ADoMAgsgAS0ANEEBRw0BIAEgAEEQahCKFQwBCyAAQQhqIAEQ5AILIANB4ABqJAAPCwALhwoCF38CfiMAQfAAayIDJAACQAJAAkACfwJAAkACQAJAIAIoAgBBAWtBAk8EQCADQSBqIAAoAqgSIAAoAqwSIgQoAghBAWtBeHFqQQhqIg4gAigCCCIKIAIoAgwiByACKAIQIgUgAigCFCIIIAQoAiAiDxEIACADKAIgQQFHDQYgAUHYAWohECAIQQFqIREgAUEYaiESIABBoA1qIRMgACkDACEaIAApA6ANIRsgAi0AGCELIAAtALwSQQFxIRQgAC0AnA1BAXEhFSAFIQQDQCADKAIkIgkgDEkNCCADKAIoIAMgBTYCRCADIAk2AkgCQAJAAkACQAJAAkACQAJAAkAgByAJSQ0AIAlBAWoiDSAFSQ0AIAMgF0GAfnEgC3IiFzYCHCADIAk2AhggAyAFNgIUIAMgBzYCECADIAo2AgwgA0EBNgIEIBQNASAbQgJRDQMgASgCyAFBAkYNAiADQdgAaiATIBIgA0EEaiAGEKQCIAMoAlwhBiADKAJYIhhBAkYNESAYQQFHBEAgBCAITw0RIAlBf0cNCUHIlcMAEKEvAAsgAyADKAJgIgQ2AjwgAyAINgJAIAcgCEkgBCARS3INBCADIBlBgH5xIAtyIhk2AjggAyAINgI0IAMgBDYCMCADIAc2AiwgAyAKNgIoIAMgBjYCJCADQQI2AiAgFQ0FAkAgGkICUgRAIAEoAsgEQQJGDQggA0HEAGogACAQIANBIGoQ5QIgAygCRCIGQQJGDRMgBg0BIAQgAygCTE0NDSADQQA2AmggA0EBNgJcIANBoKvDADYCWCADQgQ3AmAgA0HYAGpB2JrDABCSJgALIANBATYCXCADQbCWwwA2AlggA0IANwJkIAMgA0E8ajYCYCADQdgAakG4lsMAEJImAAsgCUF/Rg0HIAMoAkghDAwICyADQQI2AiQgA0GIm+AANgIgIANCAjcCLCADQQw2AmQgA0GAATYCXCADIAc2AjwgAyADQdgAajYCKCADIANBPGo2AmAgAyADQcQAajYCWCADQSBqQZib4AAQkiYAC0GJhOEAQShBuJnDABDVIQALQaiZwwAQoS8ACyADQQE2AiQgA0GwlsMANgIgIANCADcCLCADIANBPGo2AiggA0EgakHIlsMAEJImAAsgA0ECNgJcIANBiJvgADYCWCADQgI3AmQgA0EMNgJQIANBgAE2AkggAyAHNgJUIAMgA0HEAGo2AmAgAyADQdQAajYCTCADIANBPGo2AkQgA0HYAGpBmJvgABCSJgALQYmE4QBBKEHomMMAENUhAAtBiJjDABChLwALQdiVwwAQoS8ACyADQSBqIA4gCiAHIA0gCCAPEQgAIA0hBCEGIAMoAiANAAsMBgsgAC0AnA1BAUYNASAAKQMAQgJRDQYgASgCyARBAkYNAiABQdgBaiEEAkAgACgC+AQiBS0A2gJFBEAgA0EgaiAAIAQgAhA+IAMoAiAiBEECRw0BDAULIAUtANsCIANBIGogACAEIAIQPiADKAIgIgZBAkYNBCAGRQ0GQQFxRQ0BIANBBGogAiADKAIkIAMoAigiBSAFIAAgBBCPByADKAIEIgRBAkcNCCADKAIIDAULIARFDQULQQEhBAwGC0GJhOEAQShB2JjDABDVIQALQfiXwwAQoS8ACyADKAIkCxCWFRoMAQtBACEEDAELIAAgASACEMEGIQQLIANB8ABqJAAgBEEBcQvlCQIKfwF+IwBB0AFrIgIkACACQSBqIAEQrSEgACACKQMgIAIoAihBARClAiABKAIYIgYoAghBBnQhBCAGKAIEIQMCQANAIAQiBUUNASADKAIAIQcgBEFAaiEEIANBQGshAwJAIAdBAmsOAwABAAELCyACQRBqIAEQrSEgACACKQMQIAIoAhgQuAoLIAJB2ABqQbi14wApAwAiDDcCACACQcgAaiAMNwIAIAJBsLXjACkDACIMNwJQIAJBADsBggEgAkEANgI8IAJCgICAgIABNwI0IAIgDDcCQCACQQA2AmggAkEAOgBsIAJBADYCeCACQoCAgIDAADcCYCACQoCAgICAATcCcCACIAAvAUw7AYABIAIgACgCSDYCfCAFBEAgAiABEK0hIAJBNGogAikDACACKAIIELgKCyAGKAIUIgEEQCAGKAIQIQMgAUEMbCEEA0AgAkE0aiADKAIAEKYcIANBDGohAyAEQQxrIgQNAAsLIAYoAggiBARAIAYoAgQiASAEQQZ0aiEFIAItAIIBIQcgAi0AgQEhCANAIAJBADoAgQEgAiACLQCDAUEBczoAggEgASgCOCIEBEAgASgCNCEDIARBDGwhBANAIAJBNGogAygCABCmHCADQQxqIQMgBEEMayIEDQALCyACQQE6AIEBIAEgAkE0ahDdCiACIAc6AIIBIAIgCDoAgQEgAUFAayIBIAVHDQALCyAGKAIYQYCAgIB4RwRAIAZBGGogAkE0ahCBIwsCQCACKAJ4IgRFDQAgAEEcaiAEEIAqIAJBhAFqIAIoAnQgAigCeBDaDCACIAIoAoQBNgKYASACIAIoAogBIgM2ApABIAIgAzYClAEgAiADIAIoAowBIgVBBHRqIgE2ApwBIAUEQANAIAJBNGogAykDACADKAIIELgKIANBEGoiAyABRw0ACyACIAE2ApQBCyACQZABahDRESAALQA4RQRAIAAgAigCeBDxEyACIAIoAnA2ApgBIAIgAigCdCIDNgKQASACIAM2ApQBIAIgAyACKAJ4IgVBBHRqIgE2ApwBIAUEQANAIAAgAykDACADKAIIQQEQpQIgA0EQaiIDIAFHDQALIAIgATYClAELIAJBkAFqENERDAELIAIoAnghBSACKAJ0IQEgAiACKAJwNgKYASACIAE2ApABIAIgATYClAEgAiABIAVBBHRqNgKcASAAQTxqIAJBkAFqEJAXCyACQcgBaiIDIAJB7ABqKAIANgIAIAJBwAFqIgYgAkHkAGopAgA3AwAgAkG4AWoiByACQdwAaikCADcDACACQbABaiIIIAJB1ABqKQIANwMAIAJBqAFqIgkgAkHMAGopAgA3AwAgAkGgAWoiCiACQcQAaikCADcDACACQZgBaiILIAJBPGopAgA3AwAgAiACKQI0NwOQASAAKAI0IgUgACgCLEYEQCAAQSxqEPcLCyAAKAIwIAVBPGxqIgEgAikDkAE3AgAgAUE4aiADKAIANgIAIAFBMGogBikDADcCACABQShqIAcpAwA3AgAgAUEgaiAIKQMANwIAIAFBGGogCSkDADcCACABQRBqIAopAwA3AgAgAUEIaiALKQMANwIAIAAgBUEBajYCNCAERQRAIAIoAnQgAigCeBD0FCACKAJwIAIoAnQQ5ioLIAJB0AFqJAALzAkBBn8gAEIANwIkIAAoAggiAwRAIAAoAgQhAiADQQxsIQQDQCACQgA3AgQgAigCACABEPIBIAJBDGohAiAEQQxrIgQNAAsLIAAoAhQiAgRAIAAoAhAiAyACQdgAbGohBgNAAkACQAJAAkACQAJAAkACQAJAAkAgAygCACICQQRrQQAgAkEFa0EISRtBAWsOCAECAwQFBgcIAAsgA0IANwI4IAMgARD8ICADKAJIIgIEQCADKAJEIgUgAkEGdGohBwNAAkAgBSgCAEEHRgRAIAVCADcCKCAFKAI4IgQEQCAFKAI0IQIgBEEMbCEEA0AgAiAB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AgAhAAsgBSgCACAAEMMqIAVBFEEEEKIYCyAGQQFqIgYgCEcNAAsgAUE8aigCACECCyABKAI4IAIQvyogAUEoaigCACEAIAEoAiwiBARAA0AgABCjAyAAQThqIQAgBEEBayIEDQALIAFBKGooAgAhAAsgASgCJCAAEMcqIAFByABBCBCiGCADQRBqJAAMBwsjAEEQayIFJAACQCAAQRBqIgEtABRBAkYNACABKQMAIgtCA4NCAFINACAFIAunIgA2AgwgBUEMahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQAgACAAKAIgEI0nCyABKAIYIgFBBGooAgAhACABKAIIIgIEQANAIAAoAgAiAxCjASADQcAAQQgQohggAEEMaiEAIAJBAWsiAg0ACyABQQRqKAIAIQALIAEoAgAgABDAKiABQRBqKAIAIQAgASgCFCICBEADQCAAEPUCIABB2ABqIQAgAkEBayICDQALIAFBEGooAgAhAAsgASgCDCAAEMYqIAEoAjAiAARAIAAQowEgAEHAAEEIEKIYCyABKAI0IgMEQCADQQRqKAIAIQAgAygCCCICBEADQCAAEJwTIABBMGohACACQQFrIgINAAsgA0EEaigCACEACyADKAIAIAAQwiogA0EUQQQQohgLIAEoAjgiAwRAIANBBGooAgAhACADKAIIIgIEQANAIAAoAgAiBhDcAiAGQeAAQQgQohggAEEEaiEAIAJBAWsiAg0ACyADQQRqKAIAIQALIAMoAgAgABDDKiADQRRBBBCiGAsgAUEcaigCACEGIAEoAiAiCARAA0AgBiAEQQR0aiIAKAIAIgIQowEgAkHAAEEIEKIYIAAoAgwiAwRAIANBBGoiCSgCACEAIAMoAggiAgRAA0AgACgCACIKENwCIApB4ABBCBCiGCAAQQRqIQAgAkEBayICDQALIAkoAgAhAAsgAygCACAAEMMqIANBFEEEEKIYCyAEQQFqIgQgCEcNAAsgAUEcaigCACEGCyABKAIYIAYQvyogAUHAAEEEEKIYIAVBEGokAAwGCyMAQRBrIgUkAAJAIABBEGoiAS0AFEECRg0AIAEpAwAiC0IDg0IAUg0AIAUgC6ciADYCDCAFQQxqENAGIAAgACgCACICQQFrNgIAIAJBAUcNACAAIAAoAiAQjScLIAEoAhgiAUEEaigCACEDIAEoAggiCARAA0AgAyAEQQZ0aiIGQTRqIgkoAgAhACAGKAI4IgIEQANAIAAoAgAiChCjASAKQcAAQQgQohggAEEMaiEAIAJBAWsiAg0ACyAJKAIAIQALIAYoAjAgABDAKiAGEMwHIARBAWoiBCAIRw0ACyABQQRqKAIAIQMLIAEoAgAgAxDBKiABQRBqKAIAIQAgASgCFCICBEADQCAAKAIAIgMQowEgA0HAAEEIEKIYIABBDGohACACQQFrIgINAAsgAUEQaigCACEACyABKAIMIAAQwCogASgCGCIDQYCAgIB4RwRAIAFBHGooAgAhACABKAIgIgIEQANAIAAQhwMgAEEwaiEAIAJBAWsiAg0ACyABKAIYIQMgAUEcaigCACEACyADIAAQwioLIAEoAjwiAwRAIANBBGooAgAhACADKAIIIgIEQANAIAAQnBMgAEEwaiEAIAJBAWsiAg0ACyADQQRqKAIAIQALIAMoAgAgABDCKiADQRRBBBCiGAsgASgCQCIABEAgACgCACICENwCIAJB4ABBCBCiGCAAQQxBBBCiGAsgAUHIAEEEEKIYIAVBEGokAAwFCyAAKAIEIgAQowEgAEHAAEEIEKIYDAQLIAAoAgQiARC/ECABQRhBCBCiGCAAKAIQIgJFDQMgAkEEaigCACEBIAIoAggiAARAA0AgARDLBiABQQxqIQEgAEEBayIADQALIAJBBGooAgAhAQsgAigCACABEMAqIAJBFEEEEKIYDAMLAkAgACgCBCIAKQMoIgtCA4NCAFINACAHIAunIgE2AgwgB0EMahDQBiABIAEoAgAiAkEBazYCACACQQFHDQAgASABKAIgEI0nCwJAIAApAwBQBEAgAEEIahDbDgwBCyAAEL8QCyAAQcgAQQgQohgMAgsgACgCBCIAEKMBIABBwABBCBCiGAwBCyAAQQhqEIcDCyAHQRBqJAALyAgCEH8CfiMAQYADayIJJAAgAa0iFkL//////////z98IBaAIRYCfyABQYEgTwRAIAEQhycMAQtBwAAgASABQQF2ayIIIAhBwABPGwshEiAAQQRrIRRBASEIA0BBACETQQEhECABIA9LBEAgCUEoaiAPIAAgAUGgu+AAEOEkIAkoAighDCAPrSIXAn8CQCAJKAIsIg0gEkkNAEEAIQ4CQAJAIA1BAkkNACAFKAIAIAwoAgQg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AygCMCEAIAJBDGwhAgNAIAEgACgCABCXBiAAQQxqIQAgAkEMayICDQALDAILIANBBGogARCNIwwBCwJAIAMoAghBBUYEQCABQQA6AAQMAQsgASADQQhqEOkPCyADKAI8IgAEQCABIAAQlwYLIAMoAjgiAkUNACADKAI0IQAgAkEMbCECA0AgASAAKAIAEJcGIABBDGohACACQQxrIgINAAsLIANB2ABqIgMgBkcNAAsLIAUoAjAiAEUNBSABIAAQlwYPCyAAKAIEIgAoAggiAkUNBCAAKAIEIgAgAkE4bGohAgNAIAAgARD5CyAAKAIwIgMEQCABIAMQlwYLIABBOGoiACACRw0ACwwECyAAKAIEIgAoAggiAkUNAyAAKAIEIgAgAkE4bGohAgNAIAAgARD5CyAAKAIwIgMEQCABIAMQlwYLIABBOGoiACACRw0ACwwDCyAAKAIEIgAoAigiAkUNAiACQTBsIQIgACgCJEEoaiEAA0AgACgCACIDBEAgASADEJcGCyAAQTBqIQAgAkEwayICDQALDAILIAAoAgQiAC0ARSICQQNGDQEgAkECRgRAIAAoAigiAkUNAiAAKAIkIQAgAkE4bCECA0AgACABEMQMIABBOGohACACQThrIgINAAsMAgsgACgCQCIALQAlQQJHBEADQCAAKAIgIgAtACVBAkcNAAsLIABBCGooAgAiAkUNASAAQQRqKAIAIQAgAkE4bCECA0AgACABEMQMIABBOGohACACQThrIgINAAsMAQsgACgCICABEL0OCwv5CAIKfwF+IwBBoAFrIgIkACACQShqQbi14wApAwAiDDcCACACQRhqIAw3AgAgAkGwteMAKQMAIgw3AiAgAkEAOwFSIAJBADYCDCACQoCAgICAATcCBCACIAw3AhAgAkEANgI4IAJBADoAPCACQQA2AkggAkKAgICAwAA3AjAgAkKAgICAgAE3AkAgAiAALwFMOwFQIAIgACgCSDYCTCABIAJBBGoQ5CogASgCSCIDBEAgASgCRCIFIANBBnRqIQYDQAJAIAUoAgBBB0YEQCAFKAI4IgQEQCAFKAI0IQMgBEEMbCEEA0AgAkEEaiADKAIAEKYcIANBDGohAyAEQQxrIgQNAAsLIAUtABxBAkcEQCACQQRqIAVBCGoQ7h0MAgsgBSgCDCEDIAUoAgggAkEEaiIEEN0KIAQgAxCmHAwBCyACLQBRIQcgAkEAOgBRIAItAFIhCCACIAItAFNBAXM6AFIgBSgCOCIEBEAgBSgCNCEDIARBDGwhBANAIAJBBGogAygCABCmHCADQQxqIQMgBEEMayIEDQALCyACQQE6AFEgBSACQQRqEN0KIAIgCDoAUiACIAc6AFELIAVBQGsiBSAGRw0ACwsgASgCIEGAgICAeEcEQCABQSBqIAJBBGoQgSMLAkAgAigCSCIFRQ0AIABBHGogBRCAKiACQdQAaiACKAJEIAIoAkgQ2gwgAiACKAJUNgJoIAIgAigCWCIDNgJgIAIgAzYCZCACIAMgAigCXCIEQQR0aiIBNgJsIAQEQANAIAJBBGogAykDACADKAIIELgKIANBEGoiAyABRw0ACyACIAE2AmQLIAJB4ABqENERIAAtADhFBEAgACACKAJIEPETIAIgAigCQDYCaCACIAIoAkQiAzYCYCACIAM2AmQgAiADIAIoAkgiBEEEdGoiATYCbCAEBEADQCAAIAMpAwAgAygCCEEBEKUCIANBEGoiAyABRw0ACyACIAE2AmQLIAJB4ABqENERDAELIAIoAkghAyACKAJEIQEgAiACKAJANgJoIAIgATYCYCACIAE2AmQgAiABIANBBHRqNgJsIABBPGogAkHgAGoQkBcLIAJBmAFqIgQgAkE8aigCADYCACACQZABaiIGIAJBNGopAgA3AwAgAkGIAWoiByACQSxqKQIANwMAIAJBgAFqIgggAkEkaikCADcDACACQfgAaiIJIAJBHGopAgA3AwAgAkHwAGoiCiACQRRqKQIANwMAIAJB6ABqIgsgAkEMaikCADcDACACIAIpAgQ3A2AgACgCNCIDIAAoAixGBEAgAEEsahD3CwsgACgCMCADQTxsaiIBIAIpA2A3AgAgAUE4aiAEKAIANgIAIAFBMGogBikDADcCACABQShqIAcpAwA3AgAgAUEgaiAIKQMANwIAIAFBGGogCSkDADcCACABQRBqIAopAwA3AgAgAUEIaiALKQMANwIAIAAgA0EBajYCNCAFRQRAIAIoAkQgAigCSBD0FCACKAJAIAIoAkQQ5ioLIAJBoAFqJAALwwkCBn8BfiMAQaABayIDJAACQAJ/AkACQAJAAkACQAJAIAFBKGoiBRChEyIERQ0AIAQoAgBBAkcNACAE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AiACQAJAIAZFDQAgAygCBA0AIAMoAgghACADKAIMIQQDQCAEBEAgBEEBayEEIAAoAjQhAAwBBSADQgA3AgggAyAANgIEQQEhBgwDCwALAAsgBkUNAyADKAIEIQALIAMoAgwhASADKAIIIQQDQCABIAAvATJJDQQgA0EkaiAAIAQQzh0gAygCJCIARQ0HIAMoAiwhASADKAIoIQQMAAsACyABCyEEA0AgA0EkaiAAIAQQzh0gAygCJCIARQ0EIAMoAighBAwACwALQZST2AAQoS8ACyABQQFqIQECQCAERQRAIAAhBQwBCyAAIAFBAnRqQTRqIQEDQCABKAIAIgVBNGohASAEQQFrIgQNAAtBACEBCyADIAE2AgwgA0EANgIIIAMgBTYCBCAADQALCyADQTBqJAAMAQtBnIvYABChLwALIAIoAjAgAigCNBCgLyACQfAAaiQADwsgAiADIAZBASAFEJceIAIoAgQhBSACKAIAIQQMAAsAC4oJAgZ/AX4jAEFAaiICJAAgAUHIAmohAyABQShqIQYgAS0AtgIhBwJAAkACQCABKALIAiIFQSVHDQAgASgC8AIhBCABQSU2AvACAkAgBEElRwRAIAJBPGogAUGUA2ooAgA2AgAgAkE0aiABQYwDaikCADcCACACQSxqIAFBhANqKQIANwIAIAJBJGogAUH8AmopAgA3AgAgAiAENgIYIAIgASkC9AI3AhwMAQsgAkEYaiAGEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDGDcDACADQSBqIAJBOGopAwA3AwAgA0EYaiACQTBqKQMANwMAIANBEGogAkEoaikDADcDACADQQhqIAJBIGopAwA3AwAgASgCyAIiBUElRw0AIAEoApwDIQQgASgC8AIhBSABQSU2AvACAkAgBUElRwRAIAJBPGogAUGUA2ooAgA2AgAgAkE0aiABQYwDaikCADcCACACQSxqIAFBhANqKQIANwIAIAJBJGogAUH8AmopAgA3AgAgAiAFNgIYIAIgASkC9AI3AhwMAQsgAkEYaiAGEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDGDcDACADQSBqIAJBOGopAwA3AwAgA0EYaiACQTBqKQMANwMAIANBEGogAkEoaikDADcDACADQQhqIAJBIGopAwA3AwAgAygCACIFQSVHDQEgASgCgAIh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AQJAAkACQANAIAEgDUYEQCALIQEDQCABRQ0KIAFBAWshASAMDQUgASAHaiIJIARPDQMgASAFai0AACADIAlqLQAARg0ACyAOIQEMBgsgASAHaiAETw0CIAEgBWotAAAgASAJai0AAEYEQCABQQFqIQEMAQsLIAcgC2sgAWpBAWohBwwGCyAJIARB6ILCABDnFgALIAQgByALaiIAIAAgBEkbIARByILCABDnFgALIAEgBkHYgsIAEOcWAAsgCSAEQbiCwgAQ5xYACyABIAdqIQcMAQsLDAMLQQEhCAwCC0EAIQgMAQtBASEICyAAIAg2AgAgACAHNgIEIApBMGokAAvGCAEFfyMAQeAAayIDJAACQAJAIAJFDQAgAUHIAmohAiABQShqIQUgASgCyAIiBEElRgRAIAEoAvACIQQgAUElNgLwAgJAIARBJUcEQCADQdwAaiABQZQDaigCADYCACADQdQAaiABQYwDaikCADcCACADQcwAaiABQYQDaikCADcCACADQcQAaiABQfwCaikCADcCACADIAQ2AjggAyABKQL0AjcCPAwBCyADQThqIAUQMiACKAIAQSVGDQAgAhDoAwsgAiADKQM4NwMAIAJBIGogA0HYAGopAwA3AwAgAkEYaiADQdAAaikDADcDACACQRBqIANByABqKQMANwMAIAJBCGogA0FAaykDADcDACACKAIAIgRBJUYNAQsgBEECRw0AIAEtANACQQJHDQAgAS0A0QJBEkcNACADQcQAaiIHIAUQ3QcgA0EwNgJAIANBjOvfADYCPCADQTA6ADggBUHwAkG4AiACKAIAQSVGIgYbaigCACIEIAVB9AJBvAIgBhtqKAIAIgYgBCAGSRsgBCAGIAQgBksbIANBOGoQ7xshBgJAIAIoAgAiBEElRgRAIAEoAvACIQQgAUElNgLwAgJAIARBJUcEQCADQdwAaiABQZQDaigCADYCACADQdQAaiABQYwDaikCADcCACADQcwAaiABQYQDaikCADcCACAHIAFB/AJqKQIANwIAIAMgBDYCOCADIAEpAvQCNwI8DAELIANBOGogBRAyIAIoAgBBJUYNACACEOgDCyACIAMpAzg3AwAgAkEgaiADQdgAaikDADcDACACQRhqIANB0ABqKQMANwMAIAJBEGogA0HIAGopAwA3AwAgAkEIaiADQUBr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DQAaQQEgAC0AGw0AGkEBIAAtABwNABpBASAALQAdDQAaQQEgAC0AHg0AGkEBIAAtAB8NABpBASAALQAgDQAaQQEgAC0AIQ0AGkEBIAAtACINABpBASAALQAjDQAaQQEgAC0AJA0AGkEBIAAtACUNABpBASAALQAmDQAaQQEgAC0AJw0AGkEBIAAtACgNABpBASAALQApDQAaQQEgAC0AKg0AGkEBIAAtACsNABpBASAALQAsDQAaQQEgAC0ALQ0AGkEBIAAtAC4NABpBASAALQAvDQAaQQEgAC0AMA0AGkEBIAAtADENABpBASAALQAyDQAaQQEgAC0AMw0AGkEBIAAtADQNABpBASAALQA1DQAaQQEgAC0ANg0AGkEBIAAtADcNABpBASAALQA4DQAaQQEgAC0AOQ0AGkEBIAAtADoNABpBASAALQA7DQAaQQEgAC0APA0AGkEBIAAtAD0NABpBASAALQA+DQAaQQEgAC0APw0AGkEBIAAtAEANABpBASAALQBBDQAaQQEgAC0AQg0AGkEBIAAtAEMNABpBASAALQBEDQAaQQEgAC0ARQ0AGkEBIAAtAEYNABpBASAALQBHDQAaQQEgAC0ASA0AGkEBIAAtAEkNABpBASAALQBKDQAaQQEgAC0ASw0AGkEBIAAtAEwNABpBASAALQBNDQAaQQEgAC0ATg0AGkEBIAAtAE8NABpBASAALQBQDQAaQQEgAC0AUQ0AGkEBIAAtAFINABpBASAALQBTDQAaQQEgAC0AVA0AGkEBIAAtAFUNABpBASAALQBWDQAaQQEgAC0AVw0AGkEBIAAtAFgNABpBASAALQBZDQAaQQEgAC0AWg0AGkEBIAAtAFsNABpBASAALQBcDQAaQQEgAC0AXQ0AGkEBIAAtAF4NABpBASAALQBfDQAaQQEgAC0AYA0AGkEBIAAtAGENABpBASAALQBiDQAaQQEgAC0AYw0AGkEBIAAtAGQNABpBASAALQBlDQAaQQEgAC0AZg0AGkEBIAAtAGcNABpBASAALQBoDQAaQQEgAC0AaQ0AGkEBIAAtAGoNABpBASAALQBrDQAaQQEgAC0AbA0AGkEBIAAtAG0NABogAC0AbgtBAXEPCxDZMAALQczw2QAQ1h0AC8wIAQJ/IwBBEGsiAyQAAn8CQAJAAkACQAJAAkAgASgCAEEBaw4GAgEC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bCEEA0ACQAJAAkACQAJAIAMoAgBBAWsOAwECAwALIANBCGogAhD6KgwDCyADQQRqIAIQ5xkMAgsgA0EEaiACEPEoDAELIANBBGogAhCcDgsgA0EoaiEDIARBKGsiBA0ACwsgACgCHCIDBEAgAiADKAIAEPoCCyAAKAIgIgNFDQEgA0EIaigCACIERQ0BIARBMGwhBCADQQRqKAIAQSRqIQMDQCADQQRrKAIAIgUEQCACIAUQ+gILIAMoAgAiBQRAIAIgBRD6AgsgA0EwaiEDIARBMGsiBA0ACwwBCyAAQQxqKAIAIgQEQCAAQQhqKAIAIQMgBEEobCEEA0ACQAJAAkACQAJAIAMoAgBBAWsOAwECAwALIANBCGogAhD6KgwDCyADQQRqIAIQ5xkMAgsgA0EEaiACEPEoDAELIANBBGogAhCcDgsgA0EoaiEDIARBKGsiBA0ACwsgACgCECIDRQ0AIAIgAygCABD6AgsgAEE4aiIAIAFHDQALCwvDCAEFfyMAQTBrIgMkACABQcgCaiEEIAFBKGohBwJAAkACQAJAAkACQCABKALIAiIFQSVHBEAgASgC4AIhBgwBCyABKALwAiEFIAFBJTYC8AICQCAFQSVHBEAgA0EsaiABQZQDaigCADYCACADQSRqIAFBjANqKQIANwIAIANBHGogAUGEA2opAgA3AgAgA0EUaiABQfwCaikCADcCACADIAU2AgggAyABKQL0AjcCDAwBCyADQQhqIAcQMiAEKAIAQSVGDQAgBBDoAwsgBCADKQMINwMAIARBIGogA0EoaikDADcDACAEQRhqIANBIGopAwA3AwAgBEEQaiADQRhqKQMANwMAIARBCGogA0EQaikDADcDACABKALIAiIFQSVHBEAgASgC4AIhBgwBCyABKAKcAyEGIAEoAvACIQUgAUElNgLwAgJAIAVBJUcEQCADQSxqIAFBlANqKAIANgIAIANBJGogAUGMA2opAgA3AgAgA0EcaiABQYQDaikCADcCACADQRRqIAFB/AJqKQIANwIAIAMgBTYCCCADIAEpAvQCNwIMDAELIANBCGogBxAyIAQoAgBBJUYNACAEEOgDCyAEIAMpAwg3AwAgBEEgaiADQShqKQMANwMAIARBGGogA0EgaikDADcDACAEQRBqIANBGGopAwA3AwAgBEEIaiADQRBqKQMA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IARBBGshBEEAIQEDQCACRQ0BIANBEGogAUEQdCACIARqIgUoAgAiAUEQdnIgBhDOJSADKAIQIQcgA0EIaiABQf//A3EgAygCFEEQdHIgBhDOJSADKAIMIQEgBSADKAIIIAdBEHRyNgIAIAJBBGshAgwACwALIANB6ABqIANBxABqKAIANgIAIAMgAykCPDcDYCADQeAAahCXDiADQdAAakH0leAAKAIANgIAIANB7JXgACkCADcDSCABrSEJA0AgCVBFBEAgA0HIAGogCacQsyRCACEJDAELCyAAIAMpA0g3AgwgAEEUaiADQdAAaigCADYCACAAQQhqIANB6ABqKAIANgIAIAAgAykDYDcCAAwHCyAAQQxqIAEoAgQgBhCfHiAAQQhqQfSV4AAoAgA2AgAgAEHsleAAKQIANwIADAYLQaC/5AAtAAAaQQQQhAEiAUUNBCAAQQE2AgggACABNgIEIABBATYCACABQQE2AgAgAEHsleAAKQIANwIMIABBFGpB9JXgACgCADYCAAwFCyACKAIEIgcgBEECdGpBBGsoAgAiCGciBUUEQCADQcgAaiICIAEoAgQgBhCfHiAAIAIgByAEENQDDAULIANBMGoiBCABIAUQ6BsgA0E8aiACIAUQ6BsgA0HIAGogBCADKAJAIgEgAygCRBDUAyAAQQhqIANB0ABqKAIANgIAIAAgAykCSDcCACADQShqIANB3ABqKAIANgIAIAMgAykCVDcDICADKAI8IAEQoC8gAEEMaiEAIAMoAiQgA0EgaiIBIAMoAiBBgICAgHhGGygCCARAIAAgASAIRSAFQR9xEMkIDAULIAAgA0EgahDqIAwECyADQQA2AlggA0EBNgJMIANBxLfCADYCSCADQgQ3AlAgA0HIAGpB7LfCABCSJgALIABBCGpB9JXgACgCACIBNgIAIABB7JXgACkCACIJNwIAIAAgCTcCDCAAQRRqIAE2AgAMAgsgA0EANgJYIANBATYCTCADQcS3wgA2AkggA0IENwJQIANByABqQcy3wgAQkiYLAAsgA0HwAGokAAvCCAIIfwF+IwBB8ABrIgIkACABQcgCaiEDIAFBKGohBwJAAkACQAJAAkACQAJAAkACQAJ/AkAgASgCyAIiBEElRw0AIAEoAvACIQUgAUElNgLwAgJAIAVBJUcEQCACQewAaiABQZQDaigCADYCACACQeQAaiABQYwDaikCADcCACACQdwAaiABQYQDaikCADcCACACQdQAaiABQfwCaikCADcCACACIAU2AkggAiABKQL0AjcCTAwBCyACQcgAaiAHEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDSDcDACADQSBqIAJB6ABqKQMANwMAIANBGGogAkHgAGopAwA3AwAgA0EQaiACQdgAaikDADcDACADQQhqIAJB0ABqKQMANwMAIAMoAgAiBEElRw0AIAEoAoACIQUgAkEAOgBIIAUgBSACQcgAahDvGwwBCyAEQQJGDQEgBEEbRg0CQQEhCCADCyEFIAJB1ABqIgkgBxDdByACQRQ2AlAgAkH0kOAANgJMIAJBMDoASCAHQfACQbgCIAMoAgBBJUYiBhtqKAIAIgQgB0H0AkG8AiAGG2ooAgAiBiAEIAZJGyAEIAYgBCAGSxsgAkHIAGoQ7xshBiADKAIAIgRBJUcNAyABKALwAiEEIAFBJTYC8AICQCAEQSVHBEAgAkHsAGogAUGUA2ooAgA2AgAgAkHkAGogAUGMA2opAgA3AgAgAkHcAGogAUGEA2opAgA3AgAgCSABQfwCaikCADcCACACIAQ2AkggAiABKQL0AjcCTAwBCyACQcgAaiAHEDIgAygCAEElRg0AIAMQ6AMLIAMgAikDSDcDACADQSBqIAJB6ABqKQMANwMAIANBGGogAkHgAGopAwA3AwAgA0EQaiACQdgAaikDADcDACADQQhqIAJB0ABqKQMANwMAIAMoAgAiBEElRw0DDAcLIAJByABqIAEQxgMgAigCUCEBIAIpA0giClANASACIAIoAlQ2AkQgAiABNgJAIAIgCjcDOCACQQhqIAJBOGoQkxRCACEKDAULIAJByABqIAEQ9wIgAigCSCIBQQdGDQIgAkEwaiIDIAJB4ABqKQMANwMAIAJBKGoiBSACQdgAaikDADcDACACIAIpA1A3AyAgAQ0DIAJBGGogAykDADcDACACQRBqIAUpAwA3AwAgAiACKQMgNwMIQgEhCgwECyAAQgI3AwAgACABNgIIDAULIARBJEcNAyABQSU2AsgCIAEgASkD4AI3A5gDIAEgASgCzAIQwAgMAwsgAigCTCEBIABCAjcDACAAIAE2AggMAwtBiYThAEEoQeSQ4AAQ1SEACyAAIAo3AwAg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9AA6AFggASAKIAYgC0ElRhsiASABIANB2ABqEI8jIABBDGogA0E4aikDADcCACAAIAMpAzA3AgQgACADLwEsOwAVIABBF2ogA0Euai0AADoAACAAIAU6ABQgACAENgIADAILIA8gAykDMDcCACAOIAMvASw7AAAgD0EIaiAQKQMANwIAIA5BAmogES0AADoAACADIAQ2AkAgAyAFOgBUAkACfwJAIAJFBEAgA0HYAGogAUEAQQAQlgMgAy0AbEECRg0BIAMoAmQhCiADKAJgIQUgAygCXCELIAMoAlghBwwDCyADQdgAaiABENoGIAMoAmAiBSADKQNYIhJQDQEaIAMoAmQhCiASQiCIpyELIBKnIQcMAgsgAygCWAshBSAAQQM6ABQgACAFNgIAIANBQGsQ1SQMAgsgASgCfCEGQQhBMBC5LiIEBEAgBCAKNgIMIAQgBTYCCCAEIAMpA0A3AxggBCAJIAYgBiAJSRs2AhQgBCAJIAYgBiAJSxs2AhAgBEEgaiADQcgAaikDADcDACAEQShqIANB0ABqKQMANwMAIAQgB60gC61CIIaENwMAQQIhBQwBCwsACyADQfAAaiQAC6wIAgp/AX4jAEGgAWsiAiQAIAJBKGpBuLXjACkDACIMNwIAIAJBGGogDDcCACACQbC14wApAwAiDDcCICACQQA7AVIgAkEANgIMIAJCgICAgIABNwIEIAIgDDcCECACQQA2AjggAkEAOgA8IAJBADYCSCACQoCAgIDAADcCMCACQoCAgICAATcCQCACIAAvAUw7AVAgAiAAKAJINgJMIAEoAhQiBARAIAEoAhAhAyAEQQxsIQQDQCACQQRqIAMoAgAQphwgA0EMaiEDIARBDGsiBA0ACwsgASgCCCIDBEAgASgCBCIFIANBBnRqIQYgAi0AUiEHIAItAFEhCANAIAJBADoAUSACIAItAFNBAXM6AFIgBSgCOCIEBEAgBSgCNCEDIARBDGwhBANAIAJBBGogAygCABCmHCADQQxqIQMgBEEMayIEDQALCyACQQE6AFEgBSACQQRqEN0KIAIgBzoAUiACIAg6AFEgBUFAayIDIQUgAyAGRw0ACwsgASgCGEGAgICAeEcEQCABQRhqIAJBBGoQgSMLAkAgAigCSCIERQ0AIABBHGogBBCAKiACQdQAaiACKAJEIAIoAkgQ2gwgAiACKAJUNgJoIAIgAigCWCIDNgJgIAIgAzYCZCACIAMgAigCXCIFQQR0aiIBNgJsIAUEQANAIAJBBGogAykDACADKAIIELgKIANBEGoiAyABRw0ACyACIAE2AmQLIAJB4ABqENERIAAtADhFBEAgACACKAJIEPETIAIgAigCQDYCaCACIAIoAkQiAzYCYCACIAM2AmQgAiADIAIoAkgiBUEEdGoiATYCbCAFBEADQCAAIAMpAwAgAygCCEEBEKUCIANBEGoiAyABRw0ACyACIAE2AmQLIAJB4ABqENERDAELIAIoAkghAyACKAJEIQEgAiACKAJANgJoIAIgATYCYCACIAE2AmQgAiABIANBBHRqNgJsIABBPGogAkHgAGoQkBcLIAJBmAFqIgUgAkE8aigCADYCACACQZABaiIGIAJBNGopAgA3AwAgAkGIAWoiByACQSxqKQIANwMAIAJBgAFqIgggAkEkaikCADcDACACQfgAaiIJIAJBHGopAgA3AwAgAkHwAGoiCiACQRRqKQIANwMAIAJB6ABqIgsgAkEMaikCADcDACACIAIpAgQ3A2AgACgCNCIDIAAoAixGBEAgAEEsahD3CwsgACgCMCADQTxsaiIBIAIpA2A3AgAgAUE4aiAFKAIANgIAIAFBMGogBikDADcCACABQShqIAcpAwA3AgAgAUEgaiAIKQMANwIAIAFBGGogCSkDADcCACABQRBqIAopAwA3AgAgAUEIaiALKQMANwIAIAAgA0EBajYCNCAERQRAIAIoAkQgAigCSBD0FCACKAJAIAIoAkQQ5ioLIAJBoAFqJAAL0AgCEX8EfiMAQUBqIgUkAAJAAkACfiABKAIEIgNFBEAgASgCACIBKQMAIhQhEyABKAIQIgghBCABKAIMIgkhAyABKAIIIgohAiAUQgODUARAIBSnIgIgAigCACICQQFqNgIAIAJBAEgNAyABKQMAIRMgASgCECEEIAEoAgwhAyABKAIIIQILIAEtABQiByEGIBNCA4NQBEAgE6ciBiAGKAIAIgZBAWo2AgAgBkEASA0DIAEtABQhBgsgBSAENgIYIAUgAzYCFCAFIAI2AhAgBSAGOgAcIAUgEzcDCCAFQSBqIAVBCGoQrRNBoL/kAC0AABogBSgCPCEMIAUoAjghDSAFKAI0IQYgBSgCMCEOIAUpAyghEyAFKAIkIRIgBSgCICEPQcAAEIQBIgJFDQIgFEKAgICAcIMhFSACQgA3AxAgAkIENwMIIAJCDjcDAEEaIRAgFEL/////D4MMAQsgAykDACITQgODUARAIBOnIgIgAigCACICQQFqNgIAIAJBAEgNAgsgAygCCCEEIAEoAgAiAigCDCEHIAIoAgghCCACKQMAIhRCA4NQBEAgFKciASABKAIAIgFBAWo2AgAgAUEASA0CC0Ggv+QALQAAGkHAABCEASIBRQ0BIAFBADoAHCABIAQ2AhggAUIANwIQIAEgEzcCCCABQRo2AgAgAykDACIWQgODUARAIBanIgQgBCgCACIEQQFqNgIAIARBAEgNAgsgAigCDCEGIAIoAgghDiADKAIIIQQgAikDACITQgODUARAIBOnIgIgAigCACICQQFqNgIAIAJBAEgNAgtBoL/kAC0AABpBwAAQhAEiA0UNASADQQA6ABwgAyAENgIYIANCADcCECADIBY3AgggA0EaNgIAQaC/5AAtAAAaQcAAEIQBIgJFDQEgB0GAfnEhESAUQiCIpyEJIBSnIQogAkIANwMQIAJCBDcDCCACQg43AwBBFCEQQQEhC0IACyEUQaC/5AAtAAAaQcAAEIQBIgRFDQAgBCABNgIoIARCADcDICAEIAg2AhggBCAQNgIAIAQgFCAVhDcDCCAEIBEgB0H/AXFyNgIcIAQgCq0gCa1CIIaENwMQQaC/5AAtAAAaQcAAEIQBIgFFDQAgAUEAOgA8IAEgAjYCOCABQgA3AzAgASADNgIoIAEgDDYCJCABIA02AiAgASAGNgIcIAEgDjYCGCABIBM3AxAgASASNgIMIAEgDzYCCCABIAs2AgBBoL/kAC0AABpBwAAQhAEiAkUNACACQQA2AgggAkIxNwMAQaC/5AAtAAAaQcAAEIQBIgNFDQAgA0EANgIIIANCMTcDACACENUBIAJBwABBCBCiGCADENUBIANBwABBCBCiGEGgv+QALQAAGkHAABCEASICDQELAAsgAkETOgAUIAJCADcCDCACIAE2AgggAiAENgIEIAJBEjYCACAAIAI2AgwgAEEANgIAIAVBQGskAAv9BwITfwF+AkACQAJAAkACQAJAAkACQCABKAIARQRAIAEtAA4NASABIAEtAAwiBUEBczoADCABKAI0IQIgASgCMCEEAkAgASgC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ACACQTxqIABBEGopAgA3AgBBoL/kAC0AABogAiAAKQIINwI0QcAAEIQBIgFFDQkgAUEUNgIAIAEgAikCMDcCBCABQQxqIAJBOGopAgA3AgAgAUEUaiACQUBrKQIANwIAIAFBHGogAkHIAGopAgA3AgAgAUEkaiACQdAAaikCADcCACABQSxqIAJB2ABqKAIANgIADAoLIAJBKGogAEEoaikCADcCACACQSBqIABBIGopAgA3AgAgAkEYaiAAQRhqKQIANwIAIAJBEGogAEEQaikCADcCAEGgv+QALQAAGiACIAApAgg3AghBwAAQhAEiAUUNCCABQRU2AgAgASACKQIENwIEIAFBDGogAkEMaikCADcCACABQRRqIAJBFGopAgA3AgAgAUEcaiACQRxqKQIANwIAIAFBJGogAkEkaikCADcCACABQSxqIAJBLGooAgA2AgAMCQtBoL/kAC0AABpBwAAQhAEiAUUNByABQSM2AgAgASAAKQIENwIEIAFBDGogAEEMaigCADYCAAwIC0Ggv+QALQAAGkHAABCEASIBRQ0GIAFBMDYCACABIAApAgQ3AgQgAUEMaiAAQQxqKQIANwIADAcLQaC/5AAtAAAaQcAAEIQBIgFFDQUgAUEsNgIAIAEgACkCBDcCBCABQQxqIABBDGopAgA3AgAMBgtBoL/kAC0AABpBwAAQhAEiAUUNBCABQS42AgAgASAAKQIENwIEIAFBDGogAEEMaikCADcCAAwFC0Ggv+QALQAAGkHAABCEASIBRQ0DIAFBKzYCACABIAApAgQ3AgQgAUEMaiAAQQxqKAIANgIADAQLQaC/5AAtAAAaQcAAEIQBIgFFDQIgAUEpNgIAIAEgACkCBDcCBCABQQxqIABBDGopAgA3AgAMAwtBoL/kAC0AABpBwAAQhAEiAUUNASABQS02AgAgASAAKQIENwIEIAFBDGogAEEMaikCADcCAAwCC0Ggv+QALQAAGiAAKAIIIQMgACgCBCEAQcAAEIQBIgFFDQAgASADNgIIIAEgADYCBCABQTE2AgAMAQsACyACQZABaiQAIAELxAgCBH8BfiMAQRBrIgIkAAJAAkACQAJAAkACQAJAAkACQAJAAkBBECAAKAIAIgNBAmsiASABQSNPGw4iAQoKCgoKCgoKCgoKCgoKCgIKCgoKCgoKCgMEBQYHCAoK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JgALIAEoAjghByADIAQgAyAESRshAiADIAQgAyAESxsiBEEIdiEDIAEpAzAiCkIgiKchCCAKpyEJQgAhCkEEDAILIAMgBCADIARJGyECIAEpAzAiC0KAgICAcIMhCiADIAQgAyAESxsiBEEIdiEDIAEpAzgiDEIgiKchCCALpyEHIAynIQlBAwwBCyADIAQgAyAESRshCSADIAQgAyAESxshCCABKQM4IgxCgICAgHCDIQogASkDMCILQiiIpyEDIAtCIIinIQQgDKchByALpyECQQALIQYgACADOwANIAAgCDYCFCAAIAk2AhAgACAEOgAMIAAgAjYCCCAAIAE2AgQgACAGNgIAIABBD2ogA0EQdjoAACAAIAogB62ENwMYCyAFQTBqJAALiggCC38CfiMAQfAAayICJAACQAJAAkACQAJAAkACQCABKAIAIgtBAWsOAwECAwALIAEoAhghBiABKAIUIQcgASgCECEIIAEpAwgiDkIDg1AEQCAOpyIEIAQoAgAiBEEBajYCACAEQQBIDQULIAEtABwhCQJAIAEoAiAiAUUEQAwBCxC/KSEDIAEpAgQhDSABKAIAIQQQwCkgAkEQaiIFIAQQfSAFQeAAEIEJIQEgAyANNwIEIAMgATYCAAsgACADNgIgIAAgCToAHCAAIAY2AhggACAHNgIUIAAgCDYCECAAIA43AwgMAwsgASgCCCEFIAEoAhQhDCABKAIQIQYgAkEQaiABKAIMIgpBCEEoEN4QIAIoAhQhCCACKAIQQQFGDQQgAigCGCEJAkAgCEUNACAKQShsIQcgCSEDIAghBANAIAdFDQECQCAFKAIAQQdGBEAgAkEHNgIQDAELIAJBEGogBRCXAwsgBUEoaiEFIAMgAikDEDcDACADQSBqIAJBMGopAwA3AwAgA0EYaiACQShqKQMANwMAIANBEGogAkEgaikDADcDACADQQhqIAJBGGopAwA3AwAgB0EoayEHIANBKGohAyAEQQFrIgQNAAsLIAEtABwhBwJAIAEoAhgiAUUEQEEAIQMMAQsQvykhAyABKQIEIQ0gASgCACEEEMApIAJBEGoiBSAEEH0gBUHgABCBCSEBIAMgDTcCBCADIAE2AgALIAAgBzoAHCAAIAM2AhggACAMNgIUIAAgBjYCECAAIAo2AgwgACAJNgIIIAAgCDYCBAwCCyAB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KQIANwIAIANBPGogAUE8aigCADYCACADIAEpAiw3AiwgAyAENgIoIANBKGoQjg5BASEHCwJAAkAgBRChEyIERQ0AIAQoAgBBAkcNACAELQAIQQJHDQAgBC0ACUEWRg0BCyADQTBqIAUQiQogA0EgaiAFELceIANB0NbfADYCLCADQTQ6ACggAygCICADKAIkIANBKGoQ7xshBCAFEKETIgJFDQsgAigCAEEkRg0CDAsLIAEoAighBCABQSU2AiggASABKQNANwN4IANBNGogAUE0aikCADcCACADQTxqIAFBPGooAgA2AgAgAyABKQIsNwIsIAMgBDYCKCADQShqEI4OCyADQRhqIAFBAEEBELoUIAMoAhwhCCADKAIYDQEgBRChEyIEBEAgBCgCAEEJRg0DCyADQTBqIAUQiQogA0EIaiAFELceIANBmM3fADYCLCADQTQ6ACggAygCCCADKAIMIANBKGoQ7xshBCAFEKETIgJFDQcgAigCAEEkRg0DDAcLIAEgASkDQDcDeCABKAIoIAFBJTYCKEEkRw0DIAEgASgCLBDFEAwICyAAQYGAgIB4NgIAIAAgCDYCBAwICyABKAIoIQQgAUElNgIoIAEgASkDQDcDeCADQTRqIAFBNGopAgA3AgAgA0E8aiABQTxqKAIANgIAIAMgASkCLDcCLCADIAQ2AiggA0EoaiIEEI4OIAQgARDVAyADKAIsIQQgAygCKCIJQYCAgIB4RwRAIAMgAygCMCIKNgJIIAMgBDYCRCADIAk2AkAgA0EQaiABQfDa3wAQrwIgAygCFCEFIAMoAhANAyAGIAEoAnwiASABIAZLGyEEIAYgASABIAZJGyEBAn4gAkUEQCAEIQIgASEEIAghASADKQJEDAELQYCAgIB4IQkgBSECIAghByAKIQUgAykDQAshCyAAIAc2AhwgACABNgIYIAAgBDYCFCAAIAI2AhAgACAFNgIMIAAgCzcCBCAAIAk2AgAMCAsgAEGBgICAeDYCACAAIAQ2AgQMBQsgASABKQNANwN4IAEoAiggAUElNgIoQSRHDQIgASABKAIsEMUQDAMLQYmE4QBBKEHg2t8AENUhAAsgAEGBgICAeDYCACAAIAU2AgQgA0FAaxDcLQwCC0GJhOEAQShBiNvfABDVIQALIABBgYCAgHg2AgAgACAENgIECyAIEO4u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DGooAgAiASkDCCILQgODQgBSDQAgAyALpyIANgIIIANBCGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0AIAAgACgCIBCNJwsgASgCICIEBEAgBEEEaigCACEAIAQoAggiAgRAIABBJGohAANAAkAgAEEcaykDACILQgODQgBSDQAgAyALpyIFNgIMIANBDGoQ0AYgBSAFKAIAIgZBAWs2AgAgBkEBRw0AIAUgBSgCIBCNJwsgAEEEaygCACIFBEAgBRDoAiAFQeAAQQgQohgLIAAoAgAiBQRAIAUQ6AIgBUHgAEEIEKIYCyAAQTBqIQAgAkEBayICDQALIARBBGooAgAhAAsgBCgCACAAEMIqIAEoAiBBFEEEEKIYCyABQTxqKAIAIQIgASgCQCIIBEBBACEGA0AgAiAGQQR0aiIAKAIAIgQQoAEgBEHAAEEIEKIYIAAoAgwiBQRAIAVBBGoiCSgCACEAIAUoAggiBARAA0AgACgCACIKEOgCIApB4ABBCBCiGCAAQQRqIQAgBEEBayIEDQALIAkoAgAhAAsgBSgCACAAEMMqIAVBFEEEEKIYCyAGQQFqIgYgCEcNAAsgAUE8aigCACECCyABKAI4IAIQvyogAUEoaigCACEAIAEoAiwiBARAA0AgABCfAyAAQThqIQAgBEEBayIEDQALIAFBKGooAgAhAAsgASgCJCAAEMcqIAFByABBCBCiGCADQRBqJAAMBwsjAEEQayIFJAACQCAAQRBqIgEtABRBAkYNACABKQMAIgtCA4NCAFINACAFIAunIgA2AgwgBUEMahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQAgACAAKAIgEI0nCyABKAIYIgFBBGooAgAhACABKAIIIgIEQANAIAAoAgAiAxCgASADQcAAQQgQohggAEEMaiEAIAJBAWsiAg0ACyABQQRqKAIAIQALIAEoAgAgABDAKiABQRBqKAIAIQAgASgCFCICBEADQCAAEPQCIABB2ABqIQAgAkEBayICDQALIAFBEGooAgAhAAsgASgCDCAAEMYqIAEoAjAiAARAIAAQoAEgAEHAAEEIEKIYCyABKAI0IgMEQCADQQRqKAIAIQAgAygCCCICBEADQCAAEPASIABBMGohACACQQFrIgINAAsgA0EEaigCACEACyADKAIAIAAQwiogA0EUQQQQohgL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NwIAIAhBCGogB0EIaigCADYCACACQegAaiAMNwMAIAkgBSkDADcDACACQfgAaiACQbgBaikDADcDACACIA03A6ABIAIgDTcDYCACLQA4IQYgAiACKAE6NgGaASACQQE6AIgBIAIgBDYChAEgAiAGOgCYASACQQA6AJkBIAIgAjYCgAEgAygCIEEHRw0BDAILIAMoAghBA0YEQCACIAMoAgwQ0SkLIAMoAighAyACKAIwEIUYIQQgBSANNwIAIAVBCGogDDcCACACQagBaiAMNwMAIAggBykCADcCACAIQQhqIAdBCGooAgA2AgAgAkHoAGogDDcDACAJIAUpAwA3AwAgAkH4AGogAkG4AWopAwA3AwAgAiANNwOgASACIA03A2AgAi0AOCEGIAIgAigBOjYBmgEgAkEBOgCZASACQQE6AIgBIAIgBDYChAEgAiAGOgCYASACIAI2AoABIAJB4ABqIgQgAxCKBSAEEKEKDAILIANBIGogAkHgAGoQshALIAMoAmggAkHgAGoiBBCyECADKAJIQYCAgIB4RwRAIAQgA0HIAGoQ0Q8LIAJB4ABqEKEKCyAJEKsKDAELIAMoAihBgICAgHhGDQAgAiADQShqENEPCyABQQxqIQEgAEEMayIADQALCyACEKEKIAoQqwogAkHAAWokAAvTCAECfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkBBByAAKAIAIgAoAgAiAUEMayICIAJBJk8bQQFrDiQAAQIDBAUGBwgJCgsMDQ4PEBESEyIUFRYXIhgZGhscHR4fICEiCyAAQQRqELghIAAoAgQgAEEIaigCABCxLwwhCyAAQQRqENMtDCALIABBCGoQoC0MHwsgAEEEahCmBAweCyAAQQxqEKYEDB0LIABBBGoQpgQgAEEIahCmBAwcCwJAAkACQAJAAkACQAJAAkACQAJAAkACQCABDgwAAQIDBAUGBwgJCwoLCyAAQQhqEJ8uDAoLIABBCGoQuSUMCQsgAEEIahDmKQwICyAAQQRqEKYEDAcLIABBBGoQySIMBgsgAEEEahCaLwwFCyAAQQRqEJovDAQLIABBBGoQpgQMAwsgAEEEahCaLwwCCyAAQQRqEOwvDAELAkACQCAAKAIE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CyABQZfOyABBASAAEQMAIQMLIAVBEGokACADC78HAgl/AX4jAEEwayICJAAgAUHIAmohAyABQShqIQcCfyABKALIAkElRwRAIAEoAuACDAELIAEoAvACIQQgAUElNgLwAgJAIARBJUcEQCACQSxqIAFBlANqKAIANgIAIAJBJGogAUGMA2opAgA3AgAgAkEcaiABQYQDaikCADcCACACQRRqIAFB/AJqKQIANwIAIAIgBDYCCCACIAEpAvQCNwIMDAELIAJBCGogBxAyIAMoAgBBJUYNACADEOgDCyADIAIpAwg3AwAgA0EgaiACQShqKQMANwMAIANBGGogAkEgaikDADcDACADQRBqIAJBGGopAwA3AwAgA0EIaiACQRBqKQMANwMAIAFBnANB4AIgASgCyAJBJUYbaigCAAshBiACQQhqIAEQ5QUCQAJAIAItABxBAkcEQCACKAIUIQggAigCECEJIAIoAgwhCiACKAIIIQQCQAJAIAMoAgAiBUElRgRAIAEoAvACIQUgAUElNgLwAgJAIAVBJUcEQCACQSxqIAFBlANqKAIANgIAIAJBJGogAUGMA2opAgA3AgAgAkEcaiABQYQDaikCADcCACACQRRqIAFB/AJqKQIANwIAIAIgBTYCCCACIAEpAvQCNwIMDAELIAJBCGogBxAyIAMoAgBBJUYNACADEOgDCyADIAIpAwg3AwAgA0EgaiACQShqKQMANwMAIANBGGogAkEgaikDADcDACADQRBqIAJBGGopAwA3AwAgA0EIaiACQRBqKQMANwMAIAMoAgAiBUElRg0BCyAFQRNGDQELIAAgCDYCHCAAIAk2AhggAEIANwMIIABBADYCACAAIAStIAqtQiCGhDcDEAwDCyABQSU2AsgCIAEgASkD4AI3A5gDIAJBHGogAUHcAmooAgA2AgAgAkEUaiABQdQCaikCADcCACACQRM2AgggAiABKQLMAjcCDCACQQhqIgMQ6AMgAyABEOUFIAItABxBAkYEQCACKAIIIQEMAgsgAigCECEBIAIpAwgiC1ANASAAIAIoAhQiAzYCJCAAIAE2AiAgACALNwMYIAAgCDYCFCAAIAk2AhAgAEEANgIAIAAgBiADIAMgBkkbNgIsIAAgBiADIAMgBksbNgIoIAAgBK0gCq1CIIaENwMIDAILIAIoAgghASAAQQE2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IAJBLGogAkHIAGogAkEwakHkvNYAEP0jAAsgACADOgACIAAgBToAASAAQQA6AAAMBQsgBkHM9+MAaiEHIAQhBiAFIAcoAgAiBEsgAyAETXINAAsgASAEQQFqIAMQrCIgBCEDDAALAAsLIABBBDoAAAsgAkHQAGokAAvGBwIKfwF+IwBBwAFrIgIkAAJAAkACQAJAAkAgASgCAEEBaw4CAQQACyABLQAcQQJHBEAgAiABQQhqEK0hIAAgAikDACACKAIIQQAQpQILIAEoAiAgAkHIAGpBuLXjACkDACIMNwIAIAJBOGogDDcCACACQbC14wApAwAiDDcCQCACQQA7AXIgAkEANgIsIAJCgICAgIABNwIkIAIgDDcCMCACQQA2AlggAkEAOgBcIAJBADYCaCACQoCAgIDAADcCUCACQoCAgICAATcCYCACIAAvAUw7AXAgAiAAKAJINgJsIAJBJGoQvgcgAigCaCIERQ0CIABBHGogBBCAKiACQfQAaiACKAJkIAIoAmgQ2gwgAiACKAJ0NgKIASACIAIoAngiATYCgAEgAiABNgKEASACIAEgAigCfCIFQQR0aiIDNgKMASAFBEADQCACQSRqIAEpAwAgASgCCBC4CiABQRBqIgEgA0cNAAsgAiADNgKEAQsgAkGAAWoQ0REgAC0AOA0BIAAgAigCaBDxEyACIAIoAmA2AogBIAIgAigCZCIBNgKAASACIAE2AoQBIAIgASACKAJoIgVBBHRqIgM2AowBIAUEQANAIAAgASkDACABKAIIQQEQpQIgAUEQaiIBIANHDQALIAIgAzYChAELIAJBgAFqENERDAILIAFBCGohBCABLQAcQQJHBEAgAkEQaiAEEK0hIAAgAikDECACKAIYQQEQpQILIAAgBBCGAgwCCyACKAJoIQMgAigCZCEBIAIgAigCYDYCiAEgAiABNgKAASACIAE2AoQBIAIgASADQQR0ajYCjAEgAEE8aiACQYABahCQFwsgAkG4AWoiBSACQdwAaigCADYCACACQbABaiIGIAJB1ABqKQIANwMAIAJBqAFqIgcgAkHMAGopAgA3AwAgAkGgAWoiCCACQcQAaikCADcDACACQZgBaiIJIAJBPGopAgA3AwAgAkGQAWoiCiACQTRqKQIANwMAIAJBiAFqIgsgAkEsaikCADcDACACIAIpAiQ3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/tgANgIEIANBgICAgHg2AgAMrwELIANBKTYCCCADQZr/2AA2AgQgA0GAgICAeDYCAAyuAQsgA0E1NgIIIANBw//YADYCBCADQYCAgIB4NgIADK0BCyADQTM2AgggA0H4/9gANgIEIANBgICAgHg2AgAMrAELIANBHzYCCCADQauA2QA2AgQgA0GAgICAeDYCAAyrAQsgAS0AAUECayIBQQd0IAFB/gFxQQF2ckH/AXEOCKQBowGjAaUBpgGjAaMBpwGjAQsgA0EoNgIIIANBiILZADYCBCADQYCAgIB4NgIADKkBCyADQSU2AgggA0GwgtkANgIEIANBgICAgHg2AgAMqAELIANBGjYCCCADQdWC2QA2AgQgA0GAgICAeDYCAAynAQsgA0EcNgIIIANB74LZADYCBCADQYCAgIB4NgIADKYBCyADQRc2AgggA0GLg9kANgIEIANBgICAgHg2AgAMpQELIAQgAUEIajYCoAIgBEEBNgK8AiAEQdCD2QA2ArgCIARCATcCxAIgBCAEQaACaq1CgICAgIA6hDcD0AEgBCAEQdABajYCwAIgBEEQaiAEQbgCahCuECADQQhqIARBGGooAgA2AgAgAyAEKQIQNwIADKQBCyADQRs2AgggA0HYg9kANgIEIANBgICAgHg2AgAMowELIANBFTYCCCADQfOD2QA2AgQgA0GAgICAeDYCAAyiAQsgA0EfNgIIIANBiITZADYCBCADQYCAgIB4NgIADKEBCyAEIAFBBGo2AqACIARBATYCvAIgBEG8hNkANgK4AiAEQgE3AsQCIAQgBEGgAmqtQoCAgICgOYQ3A9ABIAQgBEHQAWo2AsACIARBHGogBEG4AmoQrhAgA0EIaiAEQSRqKAIANgIAIAMgBCkCHDcCAAygAQsgA0EVNgIIIANBxITZADYCBCADQYCAgIB4NgIADJ8BCyADQRY2AgggA0HZhNkANgIEIANBgICAgHg2AgAMngELIAQgAUEEajYCoAIgBEEBNgK8AiAEQZiF2QA2ArgCIARCATcCxAIgBCAEQaACaq1CgICAgJA6hDcD0AEgBCAEQdABajYCwAIgBEEoaiAEQbgCahCuECADQQhqIARBMGooAgA2AgAgAyAEKQIoNwIADJ0BCyADQSY2AgggA0GghdkANgIEIANBgICAgHg2AgAMnAELIANBLTYCCCADQcaF2QA2AgQgA0GAgICAeDYCAAybAQsgBCABQQhqNgKgAiAEQQI2ArwCIARBpIbZADYCuAIgBEIBNwLEAiAEIARBoAJqrUKAgICAgDqENwPQASAEIARB0AFqNgLAAiAEQTRqIARBuAJqEK4QIANBCGogBEE8aigCADYCACADIAQpAjQ3AgAMmgELIANBOzYCCCADQbSG2QA2AgQgA0GAgICAeDYCAAyZAQsgA0HMADYCCCADQe+G2QA2AgQgA0GAgICAeDYCAAyYAQsgA0E6NgIIIANBu4fZADYCBCADQYCAgIB4NgIADJcBCyADQcoANgIIIANB9YfZADYCBCADQYCAgIB4NgIADJYBCyADQTE2AgggA0G/iNkANgIEIANBgICAgHg2AgAMlQELIANBFDYCCCADQfCI2QA2AgQgA0GAgICAeDYCAAyUAQsgA0EfNgIIIANBhInZADYCBCADQYCAgIB4NgIADJMBCyADQTI2AgggA0GjidkANgIEIANBgICAgHg2AgAMkgELIAQgAUEMajYCkAIgBCABQQRqNgKgAiAEQQI2ArwCIARB9InZADYCuAIgBEICNwLEAiAEIARBoAJqrUKAgICAkDqENwPYASAEIARBkAJqrUKAgICA0C6ENwPQASAEIARB0AFqNgLAAiAEQUBrIARBuAJqEK4QIANBCGogBEHIAGooAgA2AgAgAyAEKQJANwIADJEBCyADQR42AgggA0HIitkANgIEIANBgICAgHg2AgAMkAELIANBJTYCCCADQeaK2QA2AgQgA0GAgICAeDYCAAyPAQsgBCABQQRqNgKQAiAEIAFBCGo2AqACIARBAzYCvAIgBEGgi9kANgK4AiAEQgI3AsQCIAQgBEGgAmqtQoCAgIDQLoQ3A9gBIAQgBEGQAmqtQoCAgIDALIQ3A9ABIAQgBEHQAWo2AsACIARBzABqIARBuAJqEK4QIANBCGogBEHUAGooAgA2AgAgAyAEKQJMNwIADI4BCyADQRo2AgggA0G4i9kANgIEIANBgICAgHg2AgAMjQELIANB1QA2AgggA0HSi9kANgIEIANBgICAgHg2AgAMjAELIANBMjYCCCADQaeM2QA2AgQgA0GAgICAeDYCAAyLAQsgA0HSADYCCCADQdmM2QA2AgQgA0GAgICAeDYCAAyKAQsgA0EsNgIIIANBq43ZADYCBCADQYCAgIB4NgIADIkBCyADQTM2AgggA0HXjdkANgIEIANBgICAgHg2AgAMiAELIANBIjYCCCADQYqO2QA2AgQgA0GAgICAeDYCAAyHAQsgA0E3NgIIIANBrI7ZADYCBCADQYCAgIB4NgIADIYBCyADQSg2AgggA0HjjtkANgIEIANBgICAgHg2AgAMhQELIANBDTYCCCADQYuP2QA2AgQgA0GAgICAeDYCAAyEAQsgA0ERNgIIIANBmI/ZADYCBCADQYCAgIB4NgIADIMBCyADQRU2AgggA0Gpj9kANgIEIANBgICAgHg2AgAMggELIANBGTYCCCADQb6P2QA2AgQgA0GAgICAeDYCAAyBAQsgA0EONgIIIANB14/ZADYCBCADQYCAgIB4NgIADIABCyADQRo2AgggA0Hlj9kANgIEIANBgICAgHg2AgAMfwsgBCABQQhqNgKgAiAEQQI2ArwCIARBnJDZADYCuAIgBEIBNwLEAiAEIARBoAJqrUKAgICAgDqENwPQASAEIARB0AFqNgLAAiAEQdgAaiAEQbgCahCuECADQQhqIARB4ABqKAIANgIAIAMgBCkCWDcCAAx+CyADQSU2AgggA0GskNkANgIEIANBgICAgHg2AgAMfQsgA0EtNgIIIANB0ZDZADYCBCADQYCAgIB4NgIADHwLIANBPDYCCCADQf6Q2QA2AgQgA0GAgICAeDYCAAx7CyADQTQ2AgggA0G6kdkANgIEIANBgICAgHg2AgAMegsgA0ErNgIIIANB7pHZADYCBCADQYCAgIB4NgIADHkLIANBLTYCCCADQZmS2QA2AgQgA0GAgICAeDYCAAx4CyADQSQ2AgggA0HGktkANgIEIANBgICAgHg2AgAMdwsgA0EdNgIIIANB6pLZADYCBCADQYCAgIB4NgIADHYLIANBKDYCCCADQYeT2QA2AgQgA0GAgICAeDYCAAx1CyADQS42AgggA0Gvk9kANgIEIANBgICAgHg2AgAMdAsgA0EqNgIIIANB3ZPZADYCBCADQYCAgIB4NgIADHMLIANBNjYCCCADQYeU2QA2AgQgA0GAgICAeDYCAAxyCyADQT42AgggA0G9lNkANgIEIANBgICAgHg2AgAMcQsgA0EzNgIIIANB+5TZADYCBCADQYCAgIB4NgIADHALIANBKTYCCCADQa6V2QA2AgQgA0GAgICAeDYCAAxvCyADQRk2AgggA0HXldkANgIEIANBgICAgHg2AgAMbgsgA0E7NgIIIANB8JXZADYCBCADQYCAgIB4NgIADG0LIANBPTYCCCADQauW2QA2AgQgA0GAgICAeDYCAAxsCyADQS02AgggA0HoltkANgIEIANBgICAgHg2AgAMawsgBCABQQhqNgKgAiAEQQI2ArwCIARBxJfZADYCuAIgBEIBNwLEAiAEIARBoAJqrUKAgICAgDqENwPQASAEIARB0AFqNgLAAiAEQeQAaiAEQbgCahCuECADQQhqIARB7ABqKAIANgIAIAMgBCkCZDcCAAxqCyADQTo2AgggA0HUl9kANgIEIANBgICAgHg2AgAMaQsgA0HwADYCCCADQY6Y2QA2AgQgA0GAgICAeDYCAAxoCyADQTU2AgggA0H+mNkANgIEIANBgICAgHg2AgAMZwsgA0HJADYCCCADQbOZ2QA2AgQgA0GAgICAeDYCAAxmCyADQSk2AgggA0H8mdkANgIEIANBgICAgHg2AgAMZQsgA0EmNgIIIANBpZrZADYCBCADQYCAgIB4NgIADGQLIANBOzYCCCADQcua2QA2AgQgA0GAgICAeDYCAAxjCyADQTg2AgggA0GGm9kANgIEIANBgICAgHg2AgAMYgsgBCABQQhqNgKgAiAEQQI2ArwCIARB9JvZADYCuAIgBEIBNwLEAiAEIARBoAJqrUKAgICAgDqENwPQASAEIARB0AFqNgLAAiAEQfAAaiAEQbgCahCuECADQQhqIARB+ABqKAIANgIAIAMgBCkCcDcCAAxhCyADQSc2AgggA0GEnNkANgIEIANBgICAgHg2AgAMYAsgA0EbNgIIIANBq5zZADYCBCADQYCAgIB4NgIADF8LIANBITYCCCADQcac2QA2AgQgA0GAgICAeDYCAAxeCyADQSU2AgggA0HnnNkANgIEIANBgICAgHg2AgAMXQsgA0HOADYCCCADQYyd2QA2AgQgA0GAgICAeDYCAAxcCyADQR02AgggA0HandkANgIEIANBgICAgHg2AgAMWwsgA0E5NgIIIANB953ZADYCBCADQYCAgIB4NgIADFoLIANBOTYCCCADQbCe2QA2AgQgA0GAgICAeDYCAAxZCyADQTk2AgggA0HpntkANgIEIANBgICAgHg2AgAMWAsgA0EuNgIIIANBop/ZADYCBCADQYCAgIB4NgIADFcLIAQgAUEIajYCoAIgBEECNgK8AiAEQfif2QA2ArgCIARCATcCxAIgBCAEQaACaq1CgICAgIA6hDcD0AEgBCAEQdABajYCwAIgBEH8AGogBEG4AmoQrhAgA0EIaiAEQYQBaigCADYCACADIAQpAnw3AgAMVgsgA0E/NgIIIANBiKDZADYCBCADQYCAgIB4NgIADFULIANBNjYCCCADQceg2QA2AgQgA0GAgICAeDYCAAxUCyAEIAFBCGo2AqACIARBAjYCvAIgBEHcodkANgK4AiAEQgE3AsQCIAQgBEGgAmqtQoCAgICAOoQ3A9ABIAQgBEHQAWo2AsACIARBiAFqIARBuAJqEK4QIANBCGogBEGQAWooAgA2AgAgAyAEKQKIATcCAAxTCyADQcYANgIIIANB7KHZADYCBCADQYCAgIB4NgIADFILIANBKDYCCCADQbKi2QA2AgQgA0GAgICAeDYCAAxRCyAEIAFBBGo2AqACIARBAjYCvAIgBEGAo9kANgK4AiAEQgE3AsQCIAQgBEGgAmqtQoCAgICgOoQ3A9ABIAQgBEHQAWo2AsACIARBlAFqIARBuAJqEK4QIANBCGogBEGcAWooAgA2AgAgAyAEKQKUATcCAAxQCyADQSE2AgggA0GQo9kANgIEIANBgICAgHg2AgAMTwsgA0EWNgIIIANBsaPZADYCBCADQYCAgIB4NgIADE4LIANBFDYCCCADQcej2QA2AgQgA0GAgICAeDYCAAxNCyADQR02AgggA0Hbo9kANgIEIANBgICAgHg2AgAMTAsgA0ExNgIIIANB+KPZADYCBCADQYCAgIB4NgIADEsLIANBMzYCCCADQamk2QA2AgQgA0GAgICAeDYCAAxKCyAEIAFBCGo2ApACIAQgAUEQajYCoAIgBEEDNgK8AiAEQYCl2QA2ArgCIARCAjcCxAIgBCAEQaACaq1CgICAgIA6hDcD2AEgBCAEQZACaq1CgICAgIA6hDcD0AEgBCAEQdABajYCwAIgBEGgAWogBEG4AmoQrhAgA0EIaiAEQagBaigCADYCACADIAQpAqABNwIADEkLIAQgAUEIajYCoAIgBEECNgK8AiAEQbCl2QA2ArgCIARCATcCxAIgBCAEQaACaq1CgICAgIA6hDcD0AEgBCAEQdABajYCwAIgBEGsAWogBEG4AmoQrhAgA0EIaiAEQbQBaigCADYCACADIAQpAqwBNwIADEgLIANBPzYCCCADQcCl2QA2AgQgA0GAgICAeDYCAAxHCyADQcUANgIIIANB/6XZADYCBCADQYCAgIB4NgIADEYLIANBJDYCCCADQcSm2QA2AgQgA0GAgICAeDYCAAxFCyADQSM2AgggA0HoptkANgIEIANBgICAgHg2AgAMRAsgA0ErNgIIIANBi6fZADYCBCADQYCAgIB4NgIADEMLIANBODYCCCADQban2QA2AgQgA0GAgICAeDYCAAxCCyADQc4ANgIIIANB7qfZADYCBCADQYCAgIB4NgIADEELIAQgAUEIajYCoAIgBEECNgK8AiAEQfSo2QA2ArgCIARCATcCxAIgBCAEQaACaq1CgICAgIA6hDcD0AEgBCAEQdABajYCwAIgBEG4AWogBEG4AmoQrhAgA0EIaiAEQcABaigCADYCACADIAQpArgBNwIADEALIANBOjYCCCADQYSp2QA2AgQgA0GAgICAeDYCAAw/CyADQTI2AgggA0G+qdkANgIEIANBgICAgHg2AgAMPgsgA0EjNgIIIANB8KnZADYCBCADQYCAgIB4NgIADD0LIANBKTYCCCADQZOq2QA2AgQgA0GAgICAeDYCAAw8CyADQTk2AgggA0G8qtkANgIEIANBgICAgHg2AgAMOwsgA0HWADYCCCADQfWq2QA2AgQgA0GAgICAeDYCAAw6CyADQT82AgggA0HLq9kANgIEIANBgICAgHg2AgAMOQsgA0EqNgIIIANBiqzZADYCBCADQYCAgIB4NgIADDgLIANBEzYCCCADQbSs2QA2AgQgA0GAgICAeDYCAAw3CyADQQ02AgggA0HHrNkANgIEIANBgICAgHg2AgAMNgsgA0EPNgIIIANB1KzZADYCBCADQYCAgIB4NgIADDULIANB0wA2AgggA0HjrNkANgIEIANBgICAgHg2AgAMNAsgA0HGADYCCCADQbat2QA2AgQgA0GAgICAeDYCAAwzCyADQSk2AgggA0H8rdkANgIEIANBgICAgHg2AgAMMgsgA0EyNgIIIANBpa7ZADYCBCADQYCAgIB4NgIADDELIANBLDYCCCADQdeu2QA2AgQgA0GAgICAeDYCAAwwCyADQTA2AgggA0GDr9kANgIEIANBgICAgHg2AgAMLwsgA0E9NgIIIANBs6/ZADYCBCADQYCAgIB4NgIADC4LIANBHjYCCCADQfCv2QA2AgQgA0GAgICAeDYCAAwtCyADQTI2AgggA0GOsNkANgIEIANBgICAgHg2AgAMLAsgA0EmNgIIIANBwLDZADYCBCADQYCAgIB4NgIADCsLIANBIDYCCCADQeaw2QA2AgQgA0GAgICAeDYCAAwqCyADQTg2AgggA0GGsdkANgIEIANBgICAgHg2AgAMKQsgA0EcNgIIIANBvrHZADYCBCADQYCAgIB4NgIADCgLIANBIjYCCCADQdqx2QA2AgQgA0GAgICAeDYCAAwnCyADQTo2AgggA0H8sdkANgIEIANBgICAgHg2AgAMJgsgA0EzNgIIIANBtrLZADYCBCADQYCAgIB4NgIADCULIANBxAA2AgggA0HpstkANgIEIANBgICAgHg2AgAMJAsgBCABQQhqNgKQAiAEIAFBEGo2AqACIARBAzYCvAIgBEHQs9kANgK4AiAEQgI3AsQCIAQgBEGgAmqtQoCAgICAOoQ3A9gBIAQgBEGQAmqtQoCAgICAOoQ3A9ABIAQgBEHQAWo2AsACIARBxAFqIARBuAJqEK4QIANBCGogBEHMAWooAgA2AgAgAyAEKQLEATcCAAwjCyADQTo2AgggA0Hos9kANgIEIANBgICAgHg2AgAMIgsgA0EuNgIIIANBorTZADYCBCADQYCAgIB4NgIADCELIANBLTYCCCADQdC02QA2AgQgA0GAgICAeDYCAAwgCyAEIAFBCGo2AqACIARBAjYCvAIgBEGstdkANgK4AiAEQgE3AsQCIAQgBEGgAmqtQoCAgICAOoQ3A9ABIAQgBEHQAWo2AsACIARB4AFqIARBuAJqEK4QIANBCGogBEHoAWooAgA2AgAgAyAEKQLgATcCAAwfCyAEIAFBCGo2AqACIARBAjYCvAIgBEGQttkANgK4AiAEQgE3AsQCIAQgBEGgAmqtQoCAgICAOoQ3A9ABIAQgBEHQAWo2AsACIARB7AFqIARBuAJqEK4QIANBCGogBEH0AWooAgA2AgAgAyAEKQLsATcCAAweCyAEIAFBCGo2AqACIARBAjYCvAIgBEHwttkANgK4AiAEQgE3AsQCIAQgBEGgAmqtQoCAgICAOoQ3A9ABIAQgBEHQAWo2AsACIARB+AFqIARBuAJqEK4QIANBCGogBEGAAmooAgA2AgAgAyAEKQL4ATcCAAwdCyADQegANgIIIANBgLfZADYCBCADQYCAgIB4NgIADBwLIANB6AA2AgggA0Hot9kANgIEIANBgICAgHg2AgAMGwsgA0HEADYCCCADQdC42QA2AgQgA0GAgICAeDYCAAwaCyADQdMANgIIIANBlLnZADYCBCADQYCAgIB4NgIADBkLIANB1wA2AgggA0HnudkANgIEIANBgICAgHg2AgAMGAsgA0HaADYCCCADQb662QA2AgQgA0GAgICAeDYCAAwXCyADQRI2AgggA0GYu9kANgIEIANBgICAgHg2AgAMFgsgA0EZNgIIIANBqrvZADYCBCADQYCAgIB4NgIADBULIANBKTYCCCADQcO72QA2AgQgA0GAgICAeDYCAAwUCyADQckANgIIIANB7LvZADYCBCADQYCAgIB4NgIADBMLIANBzgA2AgggA0G1vNkANgIEIANBgICAgHg2AgAMEgsgA0HXADYCCCADQYO92QA2AgQgA0GAgICAeDYCAAwRCyADQT42AgggA0HavdkANgIEIANBgICAgHg2AgAMEAsgA0HqADYCCCADQZi+2QA2AgQgA0GAgICAeDYCAAwPCyADQeEANgIIIANBgr/ZADYCBCADQYCAgIB4NgIADA4LIANBwwA2AgggA0Hjv9kANgIEIANBgICAgHg2AgAMDQsgA0E1NgIIIANBpsDZADYCBCADQYCAgIB4NgIADAwLIAQgAUEIajYCoAIgBEECNgK8AiAEQZjB2QA2ArgCIARCATcCxAIgBCAEQaACaq1CgICAgIA6hDcD0AEgBCAEQdABajYCwAIgBEGEAmogBEG4AmoQrhAgA0EIaiAEQYwCaigCADYCACADIAQpAoQCNwIADAsLIAEoAgwoAgBBCGohAQwBCwsgA0HhADYCCCADQajB2QA2AgQgA0GAgICAeDYCAAwICyADQe4ANgIIIANBicLZADYCBCADQYCAgIB4NgIADAcLQYmE4QBBKEH4gdkAENUhAAsgBEHKgNkANgLQAUEIDAMLIARB0oDZADYC0AFBCAwCCyAEQdqA2QA2AtABQQkMAQsgBEHjgNkANgLQAUENCzYC1AEgBEECNgK8AiAEQYCB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A0GgA2pBAEEBIANBPGoQrgEgAygCoANFBEAgA0HICGoiASADQb4Dai8BADsBACADIAMpAbYDNwPACCADLQC1AyECIAMtALQDIQUgAygCsAMhCCADKAKsAyEJIAMoAqgDIQogAygCpAMhCyADQdAIaiIMIANBwANqQcACEIEJGiADQZgLaiINIAEvAQA7AQAgAyADKQPACDcDkAtBoL/kAC0AABpB5AIQhAEiAUUNAiABIAI6ABkgASAFOgAYIAEgCDYCFCABIAk2AhAgASAKNgIMIAEgCzYCCCABQoGAgIAQNwIAIAEgAykDkAs3ARogAUEiaiANLwEAOwEAIAFBJGogDEHAAhCBCRpByITEACECDAULDAILIANBEGogA0G+A2ovAQA7AQAgAyADKQG2AzcDCCADLQC1AyEFIAMtALQDIQYgAygCsAMhAiADKAKsAyEBIAMoAqgDIQgMAgsACyADQRBqIANBvgNqLwEAOwEAIAMgAykBtgM3AwggAy0AtQMhBSADLQC0AyEGIAMoArADIQIgAygCrAMhASADKAKoAyEIIANBPGoQuhcLIAhBA0YNAUEDIQUMAgsgAy0AOSEFIANBPGoQuhcLIAQgBjoACCAEIAI2AgQgBCABNgIAIAQgAy8BCDsBCgsgBCAFOgAJIANBoAtqJAAgBy0AOUEDRwRAIAAgBykCMDcCBCAAQYaAgIB4NgIAIABBDGogB0E4aigCADYCAAwBCyAAQYeAgIB4NgIACyAHQdADaiQAC4IHAQR/IwBB8ABrIgUkACABQShqIQcCQCACQQFxDQAgASgCyAJBJUcNACABQcgCaiEGIAEoAvACIQggAUElNgLwAgJAIAhBJUcEQCAFQewAaiABQZQDaigCADYCACAFQeQAaiABQYwDaikCADcCACAFQdwAaiABQYQDaikCADcCACAFQdQAaiABQfwCaikCADcCACAFIAg2AkggBSABKQL0AjcCTAwBCyAFQcgAaiAHEDIgBigCAEElRg0AIAYQ6AMLIAYgBSkDSDcDACAGQSBqIAVB6ABqKQMANwMAIAZBGGogBUHgAGopAwA3AwAgBkEQaiAFQdgAaikDADcDACAGQQhqIAVB0ABqKQMANwMACyAFQcgAaiABIAIgAyAEQQBBARBdIAUoAkghAgJAAkACQCAFLQBcIgNBA0cEQCAFQTxqIAVB1ABqKQIANwIAIAVBxwBqIAVB3wBqLQAAOgAAIAUgBSkCTDcCNCAFIAUvAF07AEUgBSADOgBEIAUgAjYCMCAFQQhqIAVBMGogBSgCYBCHDSAFKAIIQQhHBEAgACAFKQMINwMAIABBIGogBUEoaikDADcDACAAQRhqIAVBIGopAwA3AwAgAEEQaiAFQRhqKQMANwMAIABBCGogBUEQaikDADcDAAwECyAHQfACQbgCIAEoAsgCQSVGIgMbaigCACICIAdB9AJBvAIgAxtqKAIAIgMgAiADSRsgAiADIAIgA0sbIAVBEGoQ7xshBCABKALIAiICQSVGBEAgAUHIAmohAiABKALwAiEDIAFBJTYC8AICQCADQSVHBEAgBUHsAGogAUGUA2ooAgA2AgAgBUHkAGogAUGMA2opAgA3AgAgBUHcAGogAUGEA2opAgA3AgAgBUHUAGogAUH8AmopAgA3AgAgBSADNgJIIAUgASkC9AI3AkwMAQsgBUHIAGogBxAyIAIoAgBBJUYNACACEOgDCyACIAUpA0g3AwAgAkEgaiAFQegAaikDADcDACACQRhqIAVB4ABqKQMANwMAIAJBEGogBUHYAGopAwA3AwAgAkEIaiAFQdAAaikDADcDACACKAIAIgJBJUYNAwsgAkEkRg0BDAILIABBCDYCACAAIAI2AgQMAgsgAUElNgLIAiABIAEpA+ACNwOYAyABIAEoAswCEMAICyAAQQg2AgAgACAENgIECyAFQfAAaiQAC7oHAgV/AX4jAEEQayIEJAAgACgCDCIBIAAoAgQiAmtB2ABuIQUgASACRwRAA0ACQAJAAkACQAJAAkACQAJAAkAgAigCACIBQQRrQQAgAUEFa0EISRsOCAECAwQFBggHAAsCQCACQQhqIgEoAgBBBUYEQCACQRBqKQMAIgZCA4NCAFINASAEIAanIgE2AgQgBEEEahDQBiABIAEoAgAiA0EBazYCACADQQFHDQEgASABKAIgEI0nDAELIAEQ+gwLIAJBPGooAgAiAQRAIAEQxgEgAUHAAEEIEKIYCyACQUBrKAIAIgEEQCABKAIAIgMQ9gIgA0HgAEEIEKIYIAFBDEEEEKIYCyACQTRqIgEoAgAgAkE4aigCABCjJSACQTBqKAIAIAEoAgAQwCoMBwsgAhD6DCACQcQAaiIBKAIAIAJByABqKAIAEIsoIAJBQGsoAgAgASgCABDBKiACQSBqIgEoAgBBgICAgHhGDQYgAkEkaiIDKAIAIAJBKGooAgAQhSggASgCACADKAIAEMIqDAYLIAJBCGoQ+gwgAkEwaigCABDvDgwFCwJAIAJBCGopAwAiBkIDg0IAUg0AIAQgBqciATYCCCAEQQhqENAGIAEgASgCACIDQQFrNgIAIANBAUcNACABIAEoAiAQjScLIAJBIGooAgAQ7w4MBAsgAkEIahD6DCACQTxqKAIAIgEEQCABEMYBIAFBwABBCBCiGAsgAkFAaygCACIBBEAgASgCACIDEPYCIANB4ABBCBCiGCABQQxBBBCiGAsgAkE0aiIBKAIAIAJBOGooAgAQoyUgAkEwaigCACABKAIAEMAqDAMLAkAgAkEIaikDACIGQgODQgBSDQAgBCAGpyIBNgIMIARBDGoQ0AYgASABKAIAIgNBAWs2AgAgA0EBRw0AIAEgASgCIBCNJwsgAkEkaigCACIBBEAgARDGASABQcAAQQgQohgLIAJBKGooAgAiAQRAIAEoAgAiAxD2AiADQeAAQQgQohggAUEMQQQQohgLIAJBMGoiASgCACACQTRqKAIAEKMlIAJBLGooAgAgASgCABDAKgwCCyACQQRqIgEQgAogASgCACACQQhqKAIAEMUqIAJBEGooAgAiAUUNASABKAIAIgMQ9gIgA0HgAEEIEKIYIAFBDEEEEKIYDAELIAJBCGoiASgCACACQQxqKAIAEIUoIAJBBGooAgAgASgCABDCKgsgAkHYAGohAiAFQQFrIgUNAAsLIAAoAgggACgCABDGKiAEQRBqJAALygcDAn8BfAJ+IwBBMGsiAiQAAkACQAJAAkACQAJAAkAgASgCAEEBaw4DAwECAAsgAEIANwMYIABBADYCCCAAQRs2AgAgACABKQMINwMQIABBIGpCADcDAAwFCyAAIAEoAgQiASkDADcDACAAQQhqIAFBCGopAwA3AwAgAEEQaiABQRBqKQMANwMAIABBGGogAUEYaikDADcDACAAQSBqIAFBIGopAwA3AwAgAEEoaiABQShqKQMANwMAIABBMGogAUEwaikDADcDACAAQThqIAFBOGopAwA3AwAgAUHAAEEIEKIYDAQLQaC/5AAtAAAaQcAAEIQBIgNFDQEgA0IANwMQIANBAzYCCCADQRs2AgAgA0EYakIANwMAIANBIGpCADcDAEGgv+QALQAAGkHAABCEASIBRQ0BIAEgAzYCBCABQRA2AgAgAUEQaiIDQQU6AAAgAUEIakIANwMAIABBCGpCADcDACAAIAEpAwA3AwAgAEEYaiABQRhqKQMANwMAIABBIGogAUEgaikDADcDACAAQShqIAFBKGopAwA3AwAgAEEwaiABQTBqKQMANwMAIABBOGogAUE4aikDADcDACAAQRBqIAMpAwA3AwAgAUHAAEEIEKIYDAMLIAErAwgiBCAEYg0BIASZRAAAAAAAAPB/YgRAIABCADcDICAAIAQ5AxggAEIANwMQIABBAzYCCCAAQRs2AgAMAwtB3KLgAEEIEIkPIQUCQBCnIiIGQgODQgBSDQAgAiAGpyIBNgIsIAJBLGoQ0AYgASABKAIAIgNBAWs2AgAgA0EBRw0AIAEgASgCIBCNJwsgBL1CAFkEQCAAQgA3AxAgACAFNwMIIABBGjYCACAAIAIvACk7AB0gACACKQMINwMgIABBFWpCADcAACAAQR9qIAJBK2otAAA6AAAgAEEoaiACQRBqKQMANwMAIABBMGogAkEYaikDADcDACAAQThqIAJBIGopAwA3AwAMAwtBoL/kAC0AABpBwAAQhAEiAUUNACABQgA3AxAgASAFNwIIIAFBGjYCACABIAIvACk7AB0gASACKQMINwMgIAAgATYCBCAAQgA3AwggAUEVakIANwAAIABBEGpBADoAACABQR9qIAJBK2otAAA6AAAgAUEoaiACQRBqKQMANwMAIAFBMGogAkEYaikDADcDACABQThqIAJBIGopAwA3AwAgAEEQNgIADAILAAtBuLLfAEEDEIkPIQUQpyIgAEIANwMQIAAgBTcDCCAAQRVqQgA3AAAgAEEaNgIAENAaCyACQTBqJAALhgcCCH8BfiABQRxqIQgCQAJAIAEoAgwiAkUNACABKAIUIQYgASgCECEJAkADQCAGIQUCfwJ/AkACQAJAIAIgCUcEQCABIAJBAWoiBDYCDAJAIAItAAAiA8BBAE4NACABIAJBAmoiBDYCDCACLQABQT9xIQcgA0EfcSEGIANB3wFNBEAgBkEGdCAHciEDDAELIAEgAkEDaiIENgIMIAItAAJBP3EgB0EGdHIhByADQfABSQRAIAcgBkEMdHIhAwwBCyABIAJBBGoiBDYCDCAGQRJ0QYCA8ABxIAItAANBP3EgB0EGdHJyIQMLIAEgBCACayAFaiIGNgIUIANBgIAESQ0DQSogA0H/gzhLDQUaIANBDXZB/gFxQbjs4QBqLwEAIANBCXZBH3FqQf//A3EiAkGbFksNASACQQF0QcDc4QBqLwEAIANBBHZBH3FqQf//A3EiAkGcFk8NAiACQQF0QcDc4QBqLwEAIANBD3FqDAQLIAFBADYCDAwHCyACQZwWQayH4QAQ5xYACyACQZwWQbyH4QAQ5xYACyADQQV2Qf7/A3FBwNzhAGovAQAgA0E/cWoLQf//A3EiAkHE5QBPDQIgAkH4iOIAai0AAAshAgJ+AkAgAS0AGCIDQTRNBEAgAkH/AXEiAiADQSxsakG87uIAaiwAACIDQQBIDQFCAAwCCyADQTVBnIfhABDnFgALQoCAgIAQIAEtABlBAUcNABogA0HAAXFBBnatQiCGCyABIANBP3E6ABggASACQQpGOgAZIAQhAkKAgICAEINQDQAgCCAFEMYLRQ0ACyADrUIihkKAgICAgCCDUCECDAILIAJBxOUAQcyH4QAQ5xYAC0EDIQICQCABKAIAIgRBAkYNACABQQA2AgAgBEEBcUUNACABLQAYIgRBNE0EQAJ+AkAgAS0ACCIFQSxJBEAgBUEKRiEGIARBLGwgBWpBvO7iAGosAAAiBEEASA0BQgAMAgsgBUEsQZyH4QAQ5xYAC0KAgICAECABLQAZQQFHDQAaIARBwAFxQQZ2rUIghgshCiABKAIEIQUgASAGOgAZIAEgBEE/cToAGAJAIApCgICAgBCDUEUEQCAIIAUQxgsNAQsgAUEANgIADAMLIAStQiKGQoCAgICAIINQIQIMAgsgBEE1QZyH4QAQ5xYACwsgACAFNgIAIABBAiACQQFxIAJBA0YbOgAEC5sHAgV/BH4jAEGgAWsiAyQAIANBCGogARCtISADKAIQIQYgAykDCCEIIAIoAgAhByADQRhqIAIQvQQCQCAIQgODIgpQBEAgCKciASABKAIAIgFBAWo2AgAgAUEASA0BCyACKQMQIglCA4MiC1AEQCAJpyIBIAEoAgAiAUEBajYCACABQQBIDQELQaC/5AAtAAAaQcAAEIQBIgRFDQAgBEEAOgAcIAQgBjYCGCAEQgA3AxAgBCAINwMIIARBGjYCAEGgv+QALQAAGkHAABCEASIFRQ0AIAVCADcDGCAFIAk3AhAgBUEANgIIIAVBGzYCACAFQSBqQgA3AwBBoL/kAC0AABpBwAAQhAEiAUUNACABIAMpAxg3AwAgAUE4aiADQdAAaikDADcDACABQTBqIANByABqKQMANwMAIAFBKGogA0FAaykDADcDACABQSBqIANBOGopAwA3AwAgAUEYaiADQTBqKQMANwMAIAFBEGogA0EoaikDADcDACABQQhqIANBIGopAwA3AwAgA0EAOgCUASADIAE2ApABIANCADcDiAEgAyAENgKAASADQgA3A3ggA0IANwNoIAMgBTYCZCADQQI2AmAgA0EBNgJYIAcEQCALUARAIAmnIgEgASgCACIBQQFqNgIAIAFBAEgNAgsgClAEQCAIpyIBIAEoAgAiAUEBajYCACABQQBIDQILQaC/5AAtAAAaQcAAEIQBIgRFDQEgBEEAOgAcIAQgBjYCGCAEQgA3AxAgBCAINwMIIARBGjYCACADQdgAahD7ESEFQaC/5AAtAAAaQcAAEIQBIgFFDQEgAUIANwMYIAEgCTcCECABQQA2AgggAUEbNgIAIAFBIGpCADcDAAtBoL/kAC0AABogAigCHCEGIAIoAhghB0HAABCEASICRQ0AIAJCADcDECACIAU2AgwgAkECNgIIIAJBATYCACACQQA6ADwgAiABNgI4IAJCADcDMCACIAQ2AiggACAGNgIMIAAgBzYCCCAAIAI2AgQgAEESNgIAIAJBGGpCADcDACACQSBqQgA3AwACQCALQgBSDQAgAyAJpyIANgKcASADQZwBahDQBiAAIAAoAgAiAUEBazYCACABQQFHDQAgACAAKAIgEI0nCwJAIApCAFINACADIAinIgA2AlggA0HYAGoQ0AYgACAAKAIAIgFBAWs2AgAgAUEBRw0AIAAgACgCIBCNJwsgA0GgAWokAA8LAAvXBgIKfwF+IwBBEGsiDCQAAkACQAJAAkACQAJAAkACQAJAAkAgBEEQTwRAIAZBAWshDyABKAIEIQ0gASgCAEUEQCAGRQ0JIAYgDWshCCABKQMIIREgASgCECELQQAhAkEAIQEDQCACIQkgASIHIAZqIgEgBEsNDCAHIA9qIgogBE8NA0EAIQIgESADIApqMQAAiEIBg1ANACALIAkgCSALSRsiAiAG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NwMAIAIgASkCBDcDCEEFDAMLIAJBEGogAUEMaikCADcDACACIAEpAgQ3AwhBCQwCCyACQRBqIAFBDGopAgA3AwAgAiABKQIENwMIQQYMAQsgAkEQaiABQQxqKQIANwMAIAIgASkCBDcDCEEECzYCACAAIAIpAwg3AgQgAEEMaiACQRBqKQMANwIAIABBFGogAkEYaikDADcCACAAQRxqIAJBIGopAwA3AgAgAEEkaiACQShqKQMANwIAIABBLGogAkEwaigCADYCAAwEC0ECIQMLIAJBFGogAUEQaikCADcCACACQRxqIAFBGGopAgA3AgAgAkEkaiABQSBqKQIANwIAIAJBLGogAUEoaikCADcCACAAIAM2AgAgAiABKQIINwIMIAAgAikDCDcCBCAAQQxqIAJBEGopAwA3AgAgAEEUaiACQRhqKQMANwIAIABBHGogAkEgaikDADcCACAAQSRqIAJBKGopAwA3AgAgAEEsaiACQTBqKAIANgIADAILIAJByABqIAFBGGopAwA3AwAgAkFAayABQRBqKQMANwMAIAIgASkDCDcDOCACQdAAaiACQThqEK0TIAJBJGogAkHoAGopAwA3AgAgAkEcaiACQeAAaikDADcCACACQRRqIAJB2ABqKQMANwIAIAIgAikDUDcCDCAAQQA2AgAgACACKQMINwIEIABBDGogAkEQaikDADcCACAAQRRqIAJBGGopAwA3AgAgAEEcaiACQSBqKQMANwIAIABBJGogAkEoaikDADcCACAAQSxqIAJBMGooAgA2AgAgASgCAEEUayIAQRxNQQBBASAAdEHDgIK9AXEbDQEgARCkAQwBCyAAQQs2AgAgACABNgIEDAELIAFBwABBCBCiGAsgAkHwAGokAAuoBgELfyMAQRBrIggkAEEBIQwCQCACQSIgAygCECINEQAADQACQCABRQRAQQAhAQwBCyAAIQkgASEFAkACQANAIAUgCWohDkEAIQQCQANAIAQgCWoiCi0AACILQf8Aa0H/AXFBoQFJIAtBIkZyIAtB3ABGcg0BIAUgBEEBaiIERw0ACyAFIAdqIQcMAwsCfyAKLAAAIgVBAE4EQCAFQf8BcSEFIApBAWoMAQsgCi0AAUE/cSELIAVBH3EhCSAFQV9NBEAgCUEGdCALciEFIApBAmoMAQsgCi0AAkE/cSALQQZ0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PGogAUE8aigCADYCACADIAEpAiw3AiwgAyAFNgIoIANBKGoQjg4LIANBIGogAUEAQQEQuhQgAygCJCEHIAMoAiANAiAEEKETIgUEQCAFKAIAQQlGDQILIANBMGogBBCJCiADQRBqIAQQtx4gA0GYzd8ANgIsIANBNDoAKCADKAIQIAMoAhQgA0EoahDvGyECIAQQoRMiBEUNCSAEKAIAQSRGDQQMCQsgASABKQNANwN4IAEoAiggAUElNgIoQSRHDQQgASABKAIsEMUQDAoLIAEoAighBSABQSU2AiggASABKQNANwN4IANBNGogAUE0aikCADcCACADQTxqIAFBPGooAgA2AgAgAyABKQIsNwIsIAMgBTYCKCADQShqIgUQjg4gBSABENUDIAMoAiwhBSADKAIoIghBgICAgHhGDQEgAyADKAIwNgJMIAMgBTYCSCADIAg2AkRBACEFAkAgBBChEyIERQ0AIAQoAgBBE0cNACADQRhqIAFBoMffABCvAiADKAIcIQUgAygCGEUNACAAQQI2AgAgACAFNgIEDAcLIAMgBTYCKCABEK4IIgRFDQUgAEECNgIAIAAgBDYCBCADQShqEPEtDAYLIABBAjYCACAAIAc2AgQMCQsgAEECNgIAIAAgBTYCBAwGCyABIAEpA0A3A3ggASgCKCABQSU2AihBJEcNASABIAEoAiwQxRAMBAtBiYThAEEoQejW3wAQ1SEAC0GJhOEAQShB+NbfABDVIQALIABBBGoiBCADKQJENwIAIAAgBzYCHCAAIAU2AhggACACNgIAIARBCGogA0HMAGooAgA2AgAgACAGIAEoAnwiASABIAZJGzYCFCAAIAYgASABIAZLGzYCEAwECyADQcQAahDcLQwBCyAAQQI2AgAgACACNgIECyAHEO4uDAELIABBAjYCACAAIAI2AgQLIANB0ABqJAAL7RQCCn8BfiMAQRBrIgckAAJAIAAoAgAiAUEJRwRAAkACQAJAAkACQAJAAkACQAJAIAEOCAECAwQFBgcIAAsgACkDECILQgODQgBSDQkgByALpyIANgIMIAdBDGoQ0AYgACAAKAIAIgFBAWs2AgAgAUEBRw0JIAAgACgCIBCNJwwJCyAAKAIIIQIgACgCDCIDBEAgAiEBA0AgARDfCiABQcgAaiEBIANBAWsiAw0ACwsgACgCBCACENEqIAAoAhAiARC/ECABQRhBCBCiGCAAKAIcIgFFDQggAUEEaigCACEAIAEoAggiAwRAA0ACQCAAKAIAIgIEQCACEKIBIAJBwABBCBCiGAwBCyAAQQRqKAIAIgIQlAUgAkHwAEEIEKIYCyAAQQxqIQAgA0EBayIDDQALIAFBBGooAgAhAAsgASgCACAAEMAqIAFBFEEEEKIYDAgLIABBCGoQlgIMBwsgACgCCCECIAAoAgwiAwRAIAIhAQNAIAEQuREgAUHQAGohASADQQFrIgMNAAsLIAAoAgQgAhDSKiAAKAIYIgEEQCABEL8QIAFBGEEIEKIYCyAAKAIcIgFFDQYgAUEEaigCACEAIAEoAggiAwRAA0ACQCAAKAIAIgIEQCACEKIBIAJBwABBCBCiGAwBCyAAQQRqKAIAIgIQlAUgAkHwAEEIEKIYCyAAQQxqIQAgA0EBayIDDQALIAFBBGooAgAhAAsgASgCACAAEMAqIAFBFEEEEKIYDAYLAkACQAJAIAAoAggOAgECAAsjAEEQayIDJAACQCAAQQxqKAIAIgEpAwgiC0IDg0IAUg0AIAMgC6ciADYCCCADQQhqENAGIAAgACgCACICQQFrNgIAIAJBAUcNACAAIAAoAiAQjScLIAEoAiAiBQRAIAVBBGooAgAhACAFKAIIIgIEQCAAQSRqIQADQAJAIABBHGspAwAiC0IDg0IAUg0AIAMgC6ciBDYCDCADQQxqENAGIAQgBCgCACIGQQFrNgIAIAZBAUcNACAEIAQoAiAQjScLIABBBGsoAgAiBARAIAQQtQIgBEHgAEEIEKIYCyAAKAIAIgQEQCAEELUCIARB4ABBCBCiGAsgAEEwaiEAIAJBAWsiAg0ACyAFQQRqKAIAIQALIAUoAgAgABDCKiABKAIgQRRBBBCiGAsgAUE8aigCACECIAEoAkAiCARAQQAhBgNAIAIgBkEEdGoiACgCACIFEKIBIAVBwABBCBCiGCAAKAIMIgQEQCAEQQRqIgkoAgAhACAEKAIIIgUEQANAIAAoAgAiChC1AiAKQeAAQQgQohggAEEEaiEAIAVBAWsiBQ0ACyAJKAIAIQALIAQoAgAgABDDKiAEQRRBBBCiGAsgBkEBaiIGIAhHDQALIAFBPGooAgAhAgsgASgCOCACEL8qIAFBKGooAgAhACABKAIsIgUEQANAIAAQogMgAEE4aiEAIAVBAWsiBQ0ACyABQShqKAIAIQALIAEoAiQgABDHKiABQcgAQQgQohggA0EQaiQADAcLIwBBEGsiBCQAAkAgAEEQaiIBLQAUQQJGDQAgASkDACILQgODQgBSDQAgBCALpyIANgIMIARBDGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0AIAAgACgCIBCNJwsgASgCGCIBQQRqKAIAIQAgASgCCCICBEADQCAAKAIAIgMQogEgA0HAAEEIEKIYIABBDGohACACQQFrIgINAAsgAUEEaigCACEACyABKAIAIAAQwCogAUEQaigCACEAIAEoAhQiAgRAA0AgABDrAyAAQdgAaiEAIAJBAWsiAg0ACyABQRBqKAIAIQALIAEoAgwgABDGKiABKAIwIgAEQCAAEKIBIABBwABBCBCiGAsgASgCNCIDBEAgA0EEaigCACEAIAMoAggiAgRAA0AgABCQEyAAQTBqIQAgAkEBayICDQALIANBBGooAgAhAAsgAygCACAAEMIqIANBFEEEEKIYCyABKAI4IgMEQCADQQRqKAIAIQAgAygCCCICBEADQCAAKAIAIgYQtQIgBkHgAEEIEKIYIABBBGohACACQQFrIgINAAsgA0EEaigCACEACyADKAIAIAAQwyogA0EUQQQQohgLIAFBHGooAgAhBiABKAIgIggEQANAIAYgBUEEdGoiACgCACICEKIBIAJBwABBCBCiGCAAKAIMIgMEQCADQQRqIgkoAgAhACADKAIIIgIEQANAIAAoAgAiChC1AiAKQeAAQQgQohggAEEEaiEAIAJBAWsiAg0ACyAJKAIAIQALIAMoAgAgABDDKiADQRRBBBCiGAsgBUEBaiIFIAhHDQALIAFBHGooAgAhBgsgASgCGCAGEL8qIAFBwABBBBCiGCAEQRBqJAAMBgsjAEEQayIEJAACQCAAQRBqIgEtABRBAkYNACABKQMAIgtCA4NCAFINACAEIAunIgA2AgwgBEEMahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQAgACAAKAIgEI0nCyABKAIYIgFBBGooAgAhAyABKAIIIggEQANAIAMgBUEGdGoiBkE0aiIJKAIAIQAgBigCOCICBEADQCAAKAIAIgoQogEgCkHAAEEIEKIYIABBDGohACACQQFrIgINAAsgCSgC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ACACKAIAIgNBJUYNAQsgA0EJRg0CIAAtAKACQQJGBEAgAEGgAmohBgwCCwwGCyAALQCgAkECRw0FIAAoAvACIQMgAEElNgLwAgJAIANBJUcEQCABQSxqIABBlANqKAIANgIAIAFBJGogAEGMA2opAgA3AgAgAUEcaiAAQYQDaikCADcCACABQRRqIABB/AJqKQIANwIAIAEgAzYCCCABIAApAvQCNwIMDAELIAFBCGogBRAyIAIoAgBBJUYNACACEOgDCyAAQaACaiEGIAIgASkDCDcDACACQSBqIAFBKGopAwA3AwAgAkEYaiABQSBqKQMANwMAIAJBEGogAUEYaikDADcDACACQQhqIAFBEGopAwA3AwAgAigCACIDQSVGDQMLIANBFEcNASAALQDMAkEERw0BC0EBIQQMAwsgBi0AAEECRg0BDAILIAYtAABBAkcNASAAKALwAiEDIABBJTYC8AICQCADQSVHBEAgAUEsaiAAQZQDaigCADYCACABQSRqIABBjANqKQIANwIAIAFBHGogAEGEA2opAgA3AgAgAUEUaiAAQfwCaikCADcCACABIAM2AgggASAAKQL0AjcCDAwBCyABQQhqIAUQMiACKAIAQSVGDQAgAhDoAwsgAiABKQMINwMAIAJBIGogAUEoaikDADcDACACQRhqIAFBIGopAwA3AwAgAkEQaiABQRhqKQMANwMAIAJBCGogAUEQaikDADcDACACKAIAIgNBJUYNAQsgA0EhRiEECyABQTBqJAAgBAuXBwIFfwF+IwBB8AFrIgQkAAJAAkAgAigCAA0AIAItAEVBA0YNACAEQSBqIAJBEGopAwA3AwAgBEEoaiACQRhqKQMANwMAIAQgAikDCDcDGCACKAJMIQcgAigCSCEIIARBCGogAkEIahCtISAEQTBqIAQpAwggBCgCECACQSBqEF8gBEEAQQAgAUEQaiABKQMQUCIBG0EAIAMbIAEbNgJcIAQgBEEYajYCWCAEQcgAaiAEQdgAahDiA0Ggv+QALQAAGkHAABCEASIBRQ0BIAQoAighAiAEKAIkIQMgBCgCICEGIAQpAxgiCUIDg1AEQCAJpyIFIAUoAgAiBUEBajYCACAFQQBIDQILIAQgAjYC2AEgBCADNgLUASAEIAY2AtABIAQgBC0ALDoA3AEgBCAJNwPIASAEQdgAaiIF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EKUCIAFBEGoiASADRw0ACyACIAM2AmQLIAJB4ABqENERDAELIAIoAkghAyACKAJEIQEgAiACKAJANgJoIAIgATYCYCACIAE2AmQgAiABIANBBHRqNgJsIABBPGogAkHgAGoQkBcLIAJBmAFqIgQgAkE8aigCADYCACACQZABaiIGIAJBNGopAgA3AwAgAkGIAWoiByACQSxqKQIANwMAIAJBgAFqIgggAkEkaikCADcDACACQfgAaiIJIAJBHGopAgA3AwAgAkHwAGoiCiACQRRqKQIANwMAIAJB6ABqIgsgAkEMaikCADcDACACIAIpAgQ3A2AgACgCNCIDIAAoAixGBEAgAEEsahD3CwsgACgCMCADQTxsaiIBIAIpA2A3AgAgAUE4aiAEKAIANgIAIAFBMGogBikDADcCACABQShqIAcpAwA3AgAgAUEgaiAIKQMANwIAIAFBGGogCSkDADcCACABQRBqIAopAwA3AgAgAUEIaiALKQMANwIAIAAgA0EBajYCNCAFRQRAIAIoAkQgAigCSBD0FCACKAJAIAIoAkQQ5ioLIAJBoAFqJAAL+gYCEX8BfiMAQaABayICJAAgAUEoaiIPEKETGiABQfwAQcAAIAEoAihBJUYbaigCACEFIAJBMGogARDQBwJAAkAgAigCMEUEQCACQfgAaiIEIAJByABqKQMANwMAIAJB6ABqIgMgAkHYAGopAwA3AwAgAiACKQNANwNwIAIgAikDUDcDYCACAn8gAikDOCITUARAIAIgAkHwAGoQkxRBAwwBCyACQRBqIAQpAwA3AwAgAkEgaiADKQMANwMAIAIgAikDcDcDCCACIAIpA2A3AxggAiATNwMAQQULIgQ6ACwgAUEsaiEHIAJBLWohCyACQRxqIQwgAkEVaiENIAJBBHIhDiACQTBqQQRyIQgDQAJAIA8QoRMiAwRAIAMoAgBBBkYNAQsgACACQTAQgQkaDAQLIAggBykCADcCACABKAIoIQMgAUElNgIoIAEgASkDQDcDeCAIQQhqIAdBCGopAgA3AgAgCEEQaiAHQRBqKAIANgIAIAIgAzYCMCACQTBqIgMQjg4gAyABEPIHIAItAERBAkYEQCACKAIwIQkMAwsgAigCOCEJIAIpAzAiE1ANAiACKAI8IRAgASgCfCEGAkACQAJAAkBBASAEQQNrIgMgA0H/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QRRqIAFB/AJqKQIANwIAIAIgBDYCCCACIAEpAvQCNwIMDAELIAJBCGogBRAyIAMoAgBBJUYNACADEOgDCyADIAIpAwg3AwAgA0EgaiACQShqKQMANwMAIANBGGogAkEgaikDADcDACADQRBqIAJBGGopAwA3AwAgA0EIaiACQRBqKQMANwMAIAMoAgAiBEElRg0BCyAEQQ1HDQFBASEDDAQLIAEoAvACIQQgAUElNgLwAgJAIARBJUcEQCACQSxqIAFBlANqKAIANgIAIAJBJGogAUGMA2opAgA3AgAgAkEcaiABQYQDaikCADcCACACQRRqIAFB/AJqKQIANwIAIAIgBDYCCCACIAEpAvQCNwIMDAELIAJBCGogBRAyIAMoAgBBJUYNACADEOgDCyADIAIpAwg3AwAgA0EgaiACQShqKQMANwMAIANBGGogAkEgaikDADcDACADQRBqIAJBGGopAwA3AwAgA0EIaiACQRBqKQMANwMAIAMoAgAiBEElRg0BCyAEQQJHDQFBASEDIAEtANACIgVBAUsgBUEBcXINASABLQDRAkETRg0CDAELIAEoAvACIQQgAUElNgLwAgJAIARBJUcEQCACQSxqIAFBlANqKAIANgIAIAJBJGogAUGMA2opAgA3AgAgAkEcaiABQYQDaikCADcCACACQRRqIAFB/AJqKQIANwIAIAIgBDYCCCACIAEpAvQCNwIMDAELIAJBCGogBRAyIAMoAgBBJUYNACADEOgDCyADIAIpAwg3AwAgA0EgaiACQShqKQMANwMAIANBGGogAkEgaikDADcDACADQRBqIAJBGGopAwA3AwAgA0EIaiACQRBqKQMANwMAIAMoAgAiBEElRw0AQQAhAwwBC0EAIQMgBEECRw0AIAEtANACQQJHDQAgAS0A0QJBGkYhAwsgAEEAOgAAIAAgAzoAASACQTBqJAAL0gcCCn8BfiMAQTBrIgMkAAJAAkACQAJAIAAtADxFBEAgAC0AKEEBRw0BCyADQQA7AC0gA0EQakG4teMAKQMAIgw3AwAgA0EgaiAMNwMAIANBsLXjACkDACIMNwMIIAMgADYCKCADIAAtADg6ACwgAyAMNwMYIANBGGohCSABKAIIIgpFDQEgASgCBCIGIApBOGxqIQsgBiECA0ACQCACKAIAIgFBCUcEQAJAAkACQAJAAkAg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ENwKCyAAKAIMIAEQ4wIgAEEQaigCACEADAgLIAAoAgghAgJAAkACQAJAIAAoAgRBAWsOAgECAAsgAiABEKweDAILIAIgARCsHgwBCyACIAEQ3AoLIAAoAgwgARDjAiAAQRBqKAIAIQAMBwsCQCAAKAIEIgNBAkYNACAAKAIIIQIgA0EBcUUEQCACIAEQrB4MAQsgAiABEOMCCyAAKAIYIgIEQCACIAEQ4wILIABBDGohAiAAKAIcIgBFDQQgACABEOMCIAIoAgAhAAwGCyAAKAIEIgNB0ABqKAIAIgIEQCADQcwAaigCACEAIAJBMGwhAgNAIAAgARDbBCAAQTBqIQAgAkEwayICDQALCwJAAkACQCADKAIAQQdrDgIBAgALIAMgARDcCgsgA0EwaigCACICRQ0AIANBLGooAgAhACACQTBsIQIDQCAAIAEQ2wQgAEEwaiEAIAJBMGsiAg0ACwsgAygCYEGAgICAeEYNACADQegAaigCACICRQ0AIANB5ABqKAIAIQAgAkEwbCECA0AgACABENsEIABBMGohACACQTBrIgINAAsLDwsgACgCBCABEOMCDwsgACgCBCABEOMCIABBCGohAgsgAigCACEADAELCyABIABBEGoQ0iQLjAcBA38DQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIAQQFrDhINDQ8BAgMEBQYODA8PCwoJCAcACyAAKAIMIgJFDQwgACgCCCEAIAJBMGwhAgNAIAAgARDcBCAAQTBqIQAgAkEwayICDQALDAwLIAAoAgwiAEUNCyAAIAEQ0wIPCyAAQRBqIAEQviYgAEEoaigCACEADA8LIAAtACRBAkYNCQwNCyAALQAkQQJGDQgMDAsgACgCBCABENMCIAAoAgggARDcBCAAKAIUIgANDAwHCyAAKAIQIAEQ0wIgACgCDCICRQ0GIAAoAggiAyACQRhsaiEEA0AgAygCFCIABEAgACABENMCCyADQQhqKAIAIgIEQCADQQRqKAIAIQAgAkEwbCECA0AgACABENwEIABBMGohACACQTBrIgINAAsLIAQgA0EYaiIDRw0ACwwGCyAAKAIEIAEQ0wIMBQsgAEEIaiABEIIHDwsgACgCCCECAkACQAJAAkAgACgCBEEBaw4CAQIACyACIAEQsR4MAgsgAiABELEeDAELIAIgARCWDAsgACgCDCABENMCIABBEGooAgAhAAwICyAAKAIIIQICQAJAAkACQCAAKAIEQQFrDgIBAgALIAIgARCxHgwCCyACIAEQsR4MAQsgAiABEJYMCyAAKAIMIAEQ0wIgAEEQaigCACEADAcLAkAgACgCBCIDQQJGDQAgACgCCCECIANBAXFFBEAgAiABELEeDAELIAIgARDTAgsgACgCGCICBEAgAiABENMCCyAAQQxqIQIgACgCHCIARQ0EIAAgARDTAiACKAIAIQAMBgsgACgCBCIDQdAAaigCACICBEAgA0HMAGooAgAhACACQTBsIQIDQCAAIAEQ3AQgAEEwaiEAIAJBMGsiAg0ACwsCQAJAAkAgAygCAEEHaw4CAQIACyADIAEQlgwLIANBMGooAgAiAkUNACADQSxqKAIAIQAgAkEwbCECA0AgACABENwEIABBMGohACACQTBrIgINAAsLIAMoAmBBgICAgHhGDQAgA0HoAGooAgAiAkUNACADQeQAaigCACEAIAJBMGwhAgNAIAAgARDcBCAAQTBqIQAgAkEwayICDQALCw8LIAAoAgQgARDTAg8LIAAoAgQgARDTAiAAQQhqIQILIAIoAgAhAAwBCwsgAEEQaiABEL4mC4wHAQ1/AkACQCABLQAcIgJBA0YNACABLQAdIgxBA0YgAiAMS3INAEEHQQogAS0ACCIHQQNJGyENIAEoAhAiA0EEaiEIIAMgASgCGCIJQQFqQQAgCRtqIgNBCGohCSADQQJqIQsgASgCACEEIAEtAB5BAXEhDiABKAIEIgMhBQNAAkACQAJAAkACQAJAAkACQAJAAkACQCACQf8BcUEBaw4CAQIACyAIIQICQAJAAkACQAJAIAdBAWsOBgAEAgEEAwILIAkhAgwBCyALIQILIAINAQtBASECIAFBAToAHAwKCyABQQE6ABxBBiEDAkACQAJAAkACQAJAIAdBAWsOBQEFAgMEAAsgCCEDDAQLIAkhAwwDCyAIIQMMAgsgCyEDDAELQQIhAwsgAyAFSw0CQQYhAgJAAkACQAJAAkACQCAHQQFrDgUBBQIDBAALIAghAgwECyAJIQIMAwsgCCECDAILIAshAgwBC0ECIQILIAIgBUsNAyAAIAM2AhggACAENgIUIAAgBzoAACABIAUgAms2AgQgASACIARq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EI0EIARB4ABBCBCiGCAAQQxBBBCiGAsgASgCKEGAgICAeEYNASABKAIsIgAgASgCMBCFKCABKAIoIAAQwioMAQsgARD3DCABKAIgQQdHBEAgAUEgahD4CwsgAUHoAGoQ9gogASgCSEGAgICAeEYNACABKAJMIgAgASgCUBCFKCABKAJIIAAQwioLIAEgAzYCKCABIAU2AhwgASAGNgIYIAEgCDcDECABQQA2AgggAUEGNgIAIAEgAikDADcDMCABQThqIAJBCGopAwA3AwAgAUFAayACQRBqKQMANwMAIAFByABqIAJBGGopAwA3AwAgAUHQAGogAkEgaikDADcDACABQdgAaiACQShqKQMANwMAIAFB4ABqIAJBMGopAwA3AwAgAUHoAGogAkE4aikDADcDAAsgAkFAayQAC/cGAQd/IwBBMGsiAyQAIAEtALACIQYgAyABEEggAygCBCEFAkACQCADKAIARQRAIAUhAgwBCwJAAkACQAJAAn8CQCABKALIAiICQSVHDQAgAUHIAmohAiABKALwAiEEIAFBJTYC8AICQCAEQSVHBEAgA0EsaiABQZQDaigCADYCACADQSRqIAFBjANqKQIANwIAIANBHGogAUGEA2opAgA3AgAgA0EUaiABQfwCaikCADcCACADIAQ2AgggAyABKQL0AjcCDAwBCyADQQhqIAFBKGoQMiACKAIAQSVGDQAgAhDoAwsgAiADKQMINwMAIAJBIGogA0EoaikDADcDACACQRhqIANBIGopAwA3AwAgAkEQaiADQRhqKQMANwMAIAJBCGogA0EQaikDADcDACACKAIAIgJBJUcNACABKAKAAiEBIANBADoACCABIAEgA0EIahDvGwwBC0EBIQQCQAJAIAJBFGsOEQQICAgICAgICAgICAgICAgBAAsgAkECRw0HIAEtANACQQJHDQcgAS0A0QJBHmsOAgIDBwsgAUElNgLIAiABIAEpA+ACNwOYAyABKALMAgsgBUEIahCIAyAFQSBBCBCiGEEBIQQhBQwFCyAGQQFxRQ0EIAEoAuACIQIgASgC5AIhBCADQYsBOgAIIAEgAiAEIAIgBEkbIAIgBCACIARLGyADQQhqEOkiQaC/5AAtAAAaIAUoAgQhBCAFKAIAIQZBwAAQhAEiAg0BDAILIAEoAuACIQIgASgC5AIhBCADQYsB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IAIpAwA3AzBBoL/kAC0AABpBwAAQhAEiAEUNAiAAIAIpAzA3AwAgAEEAOgA8IAAgBTYCOCAAQgA3AzAgAEEoaiAGKQMANwMAIABBIGogBykDADcDACAAQRhqIAgpAwA3AwAgAEEQaiAJKQMANwMAIABBCGogCikDADcDACADEOIBIANBwABBCBCiGAsQpyIhCyACQcgAaiAEQRhqKQMANwMAIAJBQGsgBEEQaikDADcDACACQThqIARBCGopAwA3AwAgAUIANwMYIAQpAwAhDCABIAs3AxAgAUEdakIANwAAIAFBADYCKCACIAw3AzAgAiACQTBqEO4bQaC/5AAtAAAaIAIpAwAhCyACKAIMIQUgAigCCCEGQSgQhAEiA0UNASADIAA2AgQgA0EGNgIAIAQQoxQgASADNgIoIAEgBTYCHCABIAY2AhggASALNwMQIAFBADYCCCABQQA2AgAMAgsgAiACKAIENgIwQcCC4QBBKyACQTBqQeir3wBB+KvfABCxFAsACyACQfAAaiQAC+0GAQN/A0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCAEEBaw4SCwsNAQILCwMEDAoNDQkIBwYFAAsgACgCDCICRQ0KIAAoAgghACACQTBsIQIDQCAAIAEQ8gQgAEEwaiEAIAJBMGsiAg0ACwwKCyAAKAIMIgBFDQkgASAAEMoBDwsgAEEoaigCACEADAwLIAEgACgCBBDKASAAKAIIIAEQ8gQgACgCFCIADQsMBwsgASAAKAIQEMoBIAAoAgwiAkUNBiAAKAIIIgMgAkEYbGohBANAIAMoAhQiAARAIAEgABDKAQsgA0EIaigCACICBEAgA0EEaigCACEAIAJBMGwhAgNAIAAgARDyBCAAQTBqIQAgAkEwayICDQALCyAEIANBGGoiA0cNAAsMBgsgAS0ADCECIAFBAToADCABIAAoAgQQygEgASACOgAMDAULIABBCGogARDrBw8LIAAoAgghAgJAAkACQAJAIAAoAgRBAWsOAgECAAsgAiABELYeDAILIAIgARC2HgwBCyACIAEQtAwLIAEgACgCDBDKASAAQRBqKAIAIQAMBwsgACgCCCECAkACQAJAAkAgACgCBEEBaw4CAQIACyACIAEQth4MAgsgAiABELYeDAELIAIgARC0DAsgASAAKAIM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EOURIAlBAWshCSAEQQRqIQRBASEIIAcpAwghCgwACwALIAdBMGogASADIAVFIAYQoxUCQCAHLQAwQQRHBEAgBykDMCIKQv8Bg0IEUg0BCyAAQQQ6AAAMAQsgACAKNwIACyAHQUBrJAALvQYCCn8BfiMAQaABayICJAAgAkEoakG4teMAKQMAIgw3AgAgAkEYaiAMNwIAIAJBsLXjACkDACIMNwIgIAJBADsBUiACQQA2AgwgAkKAgICAgAE3AgQgAiAMNwIQIAJBADYCOCACQQA6ADwgAkEANgJIIAJCgICAgMAANwIwIAJCgICAgIABNwJAIAIgAC8BTDsBUCACIAAoAkg2AkwgASACQQRqEIEjAkAgAigCSCIFRQ0AIABBHGogBRCAKiACQdQAaiACKAJEIAIoAkgQ2gwgAiACKAJUNgJoIAIgAigCWCIBNgJgIAIgATYCZCACIAEgAigCXCIEQQR0aiIDNgJsIAQEQANAIAJBBGogASkDACABKAIIELgKIAFBEGoiASADRw0ACyACIAM2AmQLIAJB4ABqENERIAAtADhFBEAgACACKAJIEPETIAIgAigCQDYCaCACIAIoAkQiATYCYCACIAE2AmQgAiABIAIoAkgiBEEEdGoiAzYCbCAEBEADQCAAIAEpAwAgASgCCEEBEKUCIAFBEGoiASADRw0ACyACIAM2AmQLIAJB4ABqENERDAELIAIoAkghAyACKAJEIQEgAiACKAJANgJoIAIgATYCYCACIAE2AmQgAiABIANBBHRqNgJsIABBPGogAkHgAGoQkBcLIAJBmAFqIgQgAkE8aigCADYCACACQZABaiIGIAJBNGopAgA3AwAgAkGIAWoiByACQSxqKQIANwMAIAJBgAFqIgggAkEkaikCADcDACACQfgAaiIJIAJBHGopAgA3AwAgAkHwAGoiCiACQRRqKQIANwMAIAJB6ABqIgsgAkEMaikCADcDACACIAIpAgQ3A2AgACgCNCIDIAAoAixGBEAgAEEsahD3CwsgACgCMCADQTxsaiIBIAIpA2A3AgAgAUE4aiAEKAIANgIAIAFBMGogBikDADcCACABQShqIAcpAwA3AgAgAUEgaiAIKQMANwIAIAFBGGogCSkDADcCACABQRBqIAopAwA3AgAgAUEIaiALKQMANwIAIAAgA0EBajYCNCAFRQRAIAIoAkQgAigCSBD0FCACKAJAIAIoAkQQ5ioLIAJBoAFqJAALvQYCCn8BfiMAQaABayICJAAgAkEoakG4teMAKQMAIgw3AgAgAkEYaiAMNwIAIAJBsLXjACkDACIMNwIgIAJBADsBUiACQQA2AgwgAkKAgICAgAE3AgQgAiAMNwIQIAJBADYCOCACQQE6ADwgAkEANgJIIAJCgICAgMAANwIwIAJCgICAgIABNwJAIAIgAC8BTDsBUCACIAAoAkg2AkwgASACQQRqEIEjAkAgAigCSCIFRQ0AIABBHGogBRCAKiACQdQAaiACKAJEIAIoAkgQ2gwgAiACKAJUNgJoIAIgAigCWCIBNgJgIAIgATYCZCACIAEgAigCXCIEQQR0aiIDNgJsIAQEQANAIAJBBGogASkDACABKAIIELgKIAFBEGoiASADRw0ACyACIAM2AmQLIAJB4ABqENERIAAtADhFBEAgACACKAJIEPETIAIgAigCQDYCaCACIAIoAkQiATYCYCACIAE2AmQgAiABIAIoAkgiBEEEdGoiAzYCbCAEBEADQCAAIAEpAwAgASgCCEEBEKUCIAFBEGoiASADRw0ACyACIAM2AmQLIAJB4ABqENERDAELIAIoAkghAyACKAJEIQEgAiACKAJANgJoIAIgATYCYCACIAE2AmQgAiABIANBBHRqNgJsIABBPGogAkHgAGoQkBcLIAJBmAFqIgQgAkE8aigCADYCACACQZABaiIGIAJBNGopAgA3AwAgAkGIAWoiByACQSxqKQIANwMAIAJBgAFqIgggAkEkaikCADcDACACQfgAaiIJIAJBHGopAgA3AwAgAkHwAGoiCiACQRRqKQIANwMAIAJB6ABqIgsgAkEMaikCADcDACACIAIpAgQ3A2AgACgCNCIDIAAoAixGBEAgAEEsahD3CwsgACgCMCADQTxsaiIBIAIpA2A3AgAgAUE4aiAEKAIANgIAIAFBMGogBikDADcCACABQShqIAcpAwA3AgAgAUEgaiAIKQMANwIAIAFBGGogCSkDADcCACABQRBqIAopAwA3AgAgAUEIaiALKQMANwIAIAAgA0EBajYCNCAFRQRAIAIoAkQgAigCSBD0FCACKAJAIAIoAkQQ5ioLIAJBoAFqJAALqwYCA38BfiMAQUBqIgckACAHQTBqIAIgBSAGIAUQySEC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sh4MAQsgAiABEJUMCyAAKAIMIAEQ4QIgAEEQaigCACEADAcLIAAoAgghAgJAAkACQAJAIAAoAgRBAWsOAgECAAsgAiABELIeDAILIAIgARCyHgwBCyACIAEQlQwLIAAoAgwgARDhAiAAQRBqKAIAIQAMBgsCQCAAKAIEIgNBAkYNACAAKAIIIQIgA0EBcUUEQCACIAEQsh4MAQsgAiABEOECCyAAKAIYIgIEQCACIAEQ4QILIABBDGohAiAAKAIcIgBFDQQgACABEOECIAIoAgAhAAwFCyAAKAIEIgNB0ABqKAIAIgIEQCADQcwAaigCACEAIAJBMGwhAgNAIAAgARD/BCAAQTBqIQAgAkEwayICDQALCwJAAkACQCADKAIAQQdrDgIBAgALIAMgARCVDAsgA0EwaigCACICRQ0AIANBLGooAgAhACACQTBsIQIDQCAAIAEQ/wQgAEEwaiEAIAJBMGsiAg0ACwsgAygCYEGAgICAeEYNACADQegAaigCACICRQ0AIANB5ABqKAIAIQAgAkEwbCECA0AgACABEP8EIABBMGohACACQTBrIgINAAsLDwsgACgCBCABEOECDwsgACgCBCABEOECIABBCGohAgsgAigCACEADAALAAvyEwIKfwF+A0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCAEEBaw4SCwsNAQILCwMEDAoNDQkIBwYFAAsgACgCDCICRQ0KIAAoAgghACACQTBsIQIDQCAAIAEQgAUgAEEwaiEAIAJBMGsiAg0ACwwKCyAAKAIMIgBFDQkgACABEOACDwsgAEEoaigCACEADAwLIAAoAgQgARDgAiAAKAIIIAEQgAUgACgCFCIADQsMBwsgACgCECABEOACIAAoAgwiAkUNBiAAKAIIIgUgAkEYbGohAwNAIAUoAhQiAARAIAAgARDgAgsgBUEIaigCACICBEAgBUEEaigCACEAIAJBMGwhAgNAIAAgARCABSAAQTBqIQAgAkEwayICDQALCyADIAVBGGoiBUcNAAsMBgsgACgCBCABEOACDAULQQAhAiMAQeAAayIEJAACQAJAAkACQAJAAkACQAJAAkAgAEEIaiIAKAIAQQFrDgcBAgMEBQYHAAsgACgCICABEN8DDAcLIAAoAiAgARCjDAwGCyAAKAIEIgAoAggiAkUNBSAAKAIEIgAgAkE4bGohAwNAIAAgARC4CCAAKAIwIgIEQCACIAEQ4AILIABBOGoiACADRw0ACwwFCyAAKAIEIgAoAggiAkUNBCAAKAIEIgAgAkE4bGohAwNAIAAgARC4CCAAKAIwIgIEQCACIAEQ4AILIABBOGoiACADRw0ACwwECwJAIAAoAgQiBSgCICIDRQ0AIANBCGooAgAiAEUNACAAQTBsIQIgA0EEaigCAEEkaiEAA0AgAEEEaygCACIDBEAgASADEPoCCyAAKAIAIgMEQCABIAMQ+gILIABBMGohACACQTBrIgINAAsLIAUoAkAiAARAIAUoAjwiByAAQQR0aiEDA0AgB0EMaigCACEAIAcoAgAgARDgAgJAIABFDQAgAEEIaigCACICRQ0AIABBBGooAgAhACACQQJ0IQIDQCABIAAoAgAQ+gIgAEEEaiEAIAJBBGsiAg0ACwsgB0EQaiIHIANHDQALCyAFKAIoIgAgACAFKAIsQThsaiABENIDDAMLAkAgACgCBCIFKAIgIgNFDQAgA0EIaigCACIARQ0AIABBMGwhAiADQQRqKAIAQSRqIQADQCAAQQRrKAIAIgMEQCABIAMQ+gILIAAoAgAiAwRAIAEgAxD6AgsgAEEwaiEAIAJBMGsiAg0ACwsgASAFKAIkEPoCDAILIAAoAgQiAygCKCIARQ0BIABBMGwhAiADKAIkQShqIQADQCAAKAIAIgMEQCADIAEQ4AILIABBMGohACACQTBrIgINAAsMAQsgACgCBCIAQSBqIQcCQAJAIAAtAEVBAmsOAgECAAsgACgCQCIHLQAlQQJGDQADQCAHKAIgIgctACVBAkcNAAsLIAcoAggiBkE4bCEFIAcoAgQhAAJAAkACQAJAAkADQCACIAVGIgkNASAAIAJqIAJBOGohAigCAEEGRw0ACyAGRQ0BDAILIAYNAQwEC0EAIQYgBEEwakG4teMAKQMAIgw3AwAgBEFAayAMNwMAIARBsLXjACkDACIMNwMoIAQgDDcDOCAEQThqIQtBASEJDAELIAZBOGwhA0EAIQICfwJAA0ACQCAAIAJqIgUoAgBBCUcNACAFQQhqKAIAQRFHDQAgBUEQaigCAEEHRg0CCyADIAJBOGoiAkcNAAsgCQ0EQQEMAQsgCQ0CQQALIQkgBEEwakG4teMAKQMAIgw3AwAgBEFAayAMNwMAIARBsLXjACkDACIMNwMoIAQgDDcDOCAGQThsIQogBEE4aiELIAAhAgNAIAIgBEEoahDGKCACQThqIQIgCkE4ayIKDQALIAZFBEBBACEGDAELQQAhAgJAAkADQAJAIAAoAgBBBkcNACAAQQRqKAIAIgMtAEENAiADLQBADQAgBEEYaiADQShqEK0hIAQgBCgCIDYCUCAEIAQpAxgiDDcDSCAEQShqIARByABqEJMNAkAgDEIDg0IAUg0AIAQgDKciCDYCXCAEQdwAahDQBiAIIAgoAgAiA0EBazYCACADQQFHDQAgCCAIKAIgEI0nC0UNAgsgAEE4aiEAIAYgAkEBaiICRw0AC0EAIQgMAQsgABDHBEEBIQggAkEBaiAGRg0AIABBOGohACACQX9zIAZqIQoDQAJAAkAgACgCAEEGRw0AIABBBGooAgAiAi0AQUUEQCACLQBADQEgBEEIaiACQShqEK0hIAQgBCgCEDYCUCAEIAQpAwgiDDcDSCAEQShqIARByABqEJMNAkAgDEIDg0IAUg0AIAQgDKciBTYCXCAEQdwAahDQBiAFIAUoAgAiAkEBazYCACACQQFHDQAgBSAFKAIgEI0nCw0BCyAAEMcEIAhBAWohCAwBCyAAIAhBSGxqIgIgACkDADcDACACQTBqIABBMGopAwA3AwAgAkEoaiAAQShqKQMANwMAIAJBIGogAEEgaikDADcDACACQRhqIABBGGopAwA3AwAgAkEQaiAAQRBqKQMANwMAIAJBCGogAEEIaikDADcDAAsgAEE4aiEAIApBAWsiCg0ACwsgByAGIAhrIgY2AggLIARBKGoQoQogCxDTDSAJDQEgBygCBCEACyAGRQ0AIAZBOGwhAgNAIAEgABC9IiAAQThqIQAgAkE4ayICDQALCyAEQeAAaiQADwsgACgCCCECAkACQAJAAkAgACgCBEEBaw4CAQIACyACIAEQsx4MAgsgAiABELMeDAELIAIgARC4CAsgACgCDCABEOACIABBEGooAgAhAAwHCyAAKAIIIQICQAJAAkACQCAAKAIEQQFrDgIBAgALIAIgARCzHgwCCyACIAEQsx4MAQsgAiABELgICyAAKAIMIAEQ4AIgAEEQaigCACEADAYLAkAgACgCBCICQQJGDQAgACgCCCEDIAJBAXFFBEAgAyABELMeDAELIAMgARDgAgsgACgCGCICBEAgAiABEOACCyAAQQxqIQIgACgCHCIARQ0EIAAgARDgAiACKAIAIQAMBQsgACgCBCIDQdAAaigCACICBEAgA0HMAGooAgAhACACQTBsIQIDQCAAIAEQgAUgAEEwaiEAIAJBMGsiAg0ACwsCQAJAAkAgAygCAEEHaw4CAQIACyADIAEQuAgLIANBMGooAgAiAkUNACADQSxqKAIAIQAgAkEwbCECA0AgACABEIAFIABBMGohACACQTBrIgINAAsLIAMoAmBBgICAgHhGDQAgA0HoAGooAgAiAkUNACADQeQAaigCACEAIAJBMGwhAgNAIAAgARCABSAAQTBqIQAgAkEwayICDQALCw8LIAAoAgQgARDgAg8LIAAoAgQgARDgAiAAQQhqIQILIAIoAgAhAAwACwAL2AYBA38DQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIAQQFrDhILCw0BAgsLAwQMCg0NCQgHBgUACyAAKAIMIgJFDQogACgCCCEAIAJBMGwhAgNAIAAgARCBBSAAQTBqIQAgAkEwayICDQALDAoLIAAoAgwiAEUNCSABIAAQxQIPCyAAQShqKAIAIQAMDAsgASAAKAIEEMUCIAAoAgggARCBBSAAKAIUIgANCwwHCyABIAAoAhAQxQIgACgCDCICRQ0GIAAoAggiAyACQRhsaiEEA0AgAygCFCIABEAgASAAEMUCCyADQQhqKAIAIgIEQCADQQRqKAIAIQAgAkEwbCECA0AgACABEIEFIABBMGohACACQTBrIgINAAsLIAQgA0EYaiIDRw0ACwwGCyABIAAoAgQQxQIMBQsgAEEIaiABENkHDwsgACgCCCECAkACQAJAAkAgACgCBEEBaw4CAQIACyACIAEQtB4MAgsgAiABELQeDAELIAIgARCXDAsgASAAKAIMEMUCIABBEGooAgAhAAwHCyAAKAIIIQICQAJAAkACQCAAKAIEQQFrDgIBAgALIAIgARC0HgwCCyACIAEQtB4MAQsgAiABEJcMCyABIAAoAgwQxQIgAEEQaigCACEADAYLAkAgACgCBCIDQQJGDQAgACgCCCECIANBAXFFBEAgAiABELQeDAELIAEgAhDFAgsgACgCGCICBEAgASACEMUCCyAAQQxqIQIgACgCHCIARQ0EIAEgABDFAiACKAIAIQAMBQsgACgCBCIDQdAAaigCACICBEAgA0HMAGooAgAhACACQTBsIQIDQCAAIAEQgQUgAEEwaiEAIAJBMGsiAg0ACwsCQAJAAkAgAygCAEEHaw4CAQIACyADIAEQlwwLIANBMGooAgAiAkUNACADQSxqKAIAIQAgAkEwbCECA0AgACABEIEFIABBMGohACACQTBrIgINAAsLIAMoAmBBgICAgHhGDQAgA0HoAGooAgAiAkUNACADQeQAaigCACEAIAJBMGwhAgNAIAAgARCBBSAAQTBqIQAgAkEwayICDQALCw8LIAEgACgCBBDFAg8LIAEgACgCBBDFAiAAQQhqIQILIAIoAgAhAAwACwAL2AYBA38DQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIAQQFrDhILCw0BAgsLAwQMCg0NCQgHBgUACyAAKAIMIgJFDQogACgCCCEAIAJBMGwhAgNAIAAgARCCBSAAQTBqIQAgAkEwayICDQALDAoLIAAoAgwiAEUNCSABIAAQlwYPCyAAQShqKAIAIQAMDAsgASAAKAIEEJcGIAAoAgggARCCBSAAKAIUIgANCwwHCyABIAAoAhAQlwYgACgCDCICRQ0GIAAoAggiAyACQRhsaiEEA0AgAygCFCIABEAgASAAEJcGCyADQQhqKAIAIgIEQCADQQRqKAIAIQAgAkEwbCECA0AgACABEIIFIABBMGohACACQTBrIgINAAsLIAQgA0EYaiIDRw0ACwwGCyABIAAoAgQQlwYMBQsgAEEIaiABELwDDwsgACgCCCECAkACQAJAAkAgACgCBEEBaw4CAQIACyACIAEQtR4MAgsgAiABELUeDAELIAIgARD5CwsgASAAKAIMEJcGIABBEGooAgAhAAwHCyAAKAIIIQICQAJAAkACQCAAKAIEQQFrDgIBAgALIAIgARC1HgwCCyACIAEQtR4MAQsgAiABEPkLCyABIAAoAgwQlwYgAEEQaigCACEADAYLAkAgACgCBCIDQQJGDQAgACgCCCECIANBAXFFBEAgAiABELUeDAELIAEgAhCXBgsgACgCGCICBEAgASACEJcGCyAAQQxqIQIgACgCHCIARQ0EIAEgABCXBiACKAIAIQAMBQsgACgCBCIDQdAAaigCACICBEAgA0HM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ACADQRxqIAJBFGopAgA3AgAgA0EkaiACQRxqKAIANgIAQQILIQBBoL/kAC0AABpBwAAQhAEiBEUNACAEIAEpAwA3AwAgBEE4aiABQThqKQMANwMAIARBMGogAUEwaikDADcDACAEQShqIAFBKGopAwA3AwAgBEEgaiABQSBqKQMANwMAIARBGGogAUEYaikDADcDACAEQRBqIAFBEGopAwA3AwAgBEEIaiABQQhqKQMANwMAQaC/5AAtAAAaQcAAEIQBIgFFDQAgAUEAOgA8IAEgBDYCOCABQgA3AzAgASAGNgIoIAFCADcDICABIAg3AhggASAFNgIUIAEgBzYCECABIAM2AgwgASAANgIIIAFBATYCACACQSBqJAAgAQ8LAAuABgEFfyMAQTBrIgYkACABQcgCaiEHIAFBKGohCgJAAkAgASgCyAIiCUElRgRAIAEoAvACIQggAUElNgLwAgJAIAhBJUcEQCAGQSxqIAFBlANqKAIANgIAIAZBJGogAUGMA2opAgA3AgAgBkEcaiABQYQDaikCADcCACAGQRRqIAFB/AJqKQIANwIAIAYgCDYCCCAGIAEpAvQCNwIMDAELIAZBCGogChAyIAcoAgBBJUYNACAHEOgDCyAHIAYpAwg3AwAgB0EgaiAGQShqKQMANwMAIAdBGGogBkEgaikDADcDACAHQRBqIAZBGGopAwA3AwAgB0EIaiAGQRBqKQMANwMAQQAhCCAHKAIAIglBJUYNAQsgCUECRw0AIAEtANACIglBAUsgCUEBcXINACABLQDRAkEORw0AIAFBJTYCyAIgASABKQPgAjcDmAMgBkEcaiABQdwCaigCADYCACAGQRRqIAFB1AJqKQIANwIAIAZBAjYCCCAGIAEpAswCNwIMIAZBCGoQ6AMgBiABQQACfyABKALIAkElRwRAIAEoAuACDAELIAEoAvACIQggAUElNgLwAgJAIAhBJUcEQCAGQSxqIAFBlANqKAIANgIAIAZBJGogAUGMA2opAgA3AgAgBkEcaiABQYQDaikCADcCACAGQRRqIAFB/AJqKQIANwIAIAYgCDYCCCAGIAEpAvQCNwIMDAELIAZBCGogChAyIAcoAgBBJUYNACAHEOgDCyAHIAYpAwg3AwAgB0EgaiAGQShqKQMANwMAIAdBGGogBkEgaikDADcDACAHQRBqIAZB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IgINAAsgAUEQaigCACEACyABKAIMIAAQwCogASgCGCIDQYCAgIB4RwRAIAFBHGooAgAhACABKAIgIgIEQANAIAAQhQMgAEEwaiEAIAJBAWsiAg0ACyABKAIYIQMgAUEcaigCACEACyADIAAQwioLIAEoAjwiAARAIAAQ/w4gACgCACAAQQRqKAIAEMIqIABBFEEEEKIYCyABKAJAIgAEQCAAKAIAIgIQ6gIgAkHgAEEIEKIYIABBDEEEEKIYCyABQcgAQQQQohgMBQsgACkDCCIFQgODQgBSDQQgBCAFpyIANgIIIARBCGoQ0AYgACAAKAIAIgFBAWs2AgAgAUEBRw0EIAAgACgCIBCNJwwECyAAQQhqEPIMIAAoAigiABCeASAAQcAAQQgQohgMAwsCQCAAKQMQIgVCA4NCAFINACAEIAWnIgE2AgwgBEEMahDQBiABIAEoAgAiAkEBazYCACACQQFHDQAgASABKAIgEI0nCyAAKAIoIgAQngEgAEHAAEEIEKIYDAILIABBCGoQ8gwgACgCSCIBBEAgASgCACICEOoCIAJB4ABBCBCiGCABQQxBBBCiGAsgACgCKCIDQYCAgIB4Rg0BIAAoAiwhASAAKAIwIgIEQCABIQADQCAAEIUDIABBMGohACACQQFrIgINAAsLIAMgARDCKgwBCyAAEPIMIAAoAiBBB0cEQCAAQSBqEMoHCyAAKAJoIgEQygcgAUEoQQgQohggACgCSCIDQYCAgIB4Rg0AIAAoAkwhASAAKAJQIgIEQCABIQADQCAAEIUDIABBMGohACACQQFrIgINAAsLIAMgARDCKgsgBEEQaiQAC8YGAgN/AX4jAEEQayICJAACQAJAAkACQAJAAkACQAJAAkAgACgCAEEBaw4HAgMEBQYHAAELIAAoAgQiAEEIaiEBAkAgACgCAEUEQCABKQMAIgRCA4NCAFINASACIASnIgE2AgwgAkEMahDQBiABIAEoAgAiA0EBazYCACADQQFHDQEgASABKAIgEI0nDAELIAEQvxALAkAgAC0ARSIBQQNGDQAgAUECRgRAIABBJGoiASgCACAAQShqKAIAEPknIAAoAiAgASgCABDHKgwBCwJAIAApAygiBEIDg0IAUg0AIAIgBKciATYCDCACQQxqENAGIAEgASgCACIDQQFrNgIAIANBAUcNACABIAEoAiAQjScLIABBQGsQkhELIABB2ABBCBCiGAwHCwJAIAApAwgiBEIDg0IAUg0AIAIgBKciATYCDCACQQxqENAGIAEgASgCACIDQQFrNgIAIANBAUcNACABIAEoAiAQjScLIAAoAiAiABDRECAAQcAAQQQQohgMBgsCQCAAKQMIIgRCA4NCAFINACACIASnIgE2AgwgAkEMahDQBiABIAEoAgAiA0EBazYCACADQQFHDQAgASABKAIgEI0nCyAAKAIgEOYODAULIAAoAgQiAEEEaiIBKAIAIABBCGooAgAQtCEgACgCACABKAIAEMcqIABBHEEEEKIYDAQLIAAoAgQiAEEEaiIBKAIAIABBCGooAgAQtCEgACgCACABKAIAEMcqIABBGEEEEKIYDAMLIAAoAgQQpA4MAgsCQCAAKAIEIgEpAwgiBEIDg0IAUg0AIAIgBKciADYCDCACQQxqENAGIAAgACgCACIDQQFrNgIAIANBAUcNACAAIAAoAiAQjScLIAEoAiAiAARAIAAQ/w4gACgCACAAQQRqKAIAEMIqIABBFEEEEKIYCyABKAIkIgAQhwQgAEHgAEEIEKIYIAFBMEEIEKIYDAELAkAgACgCBCIAKQMAIgRCA4NCAFINACACIASnIgE2AgwgAkEMahDQBiABIAEoAgAiA0EBazYCACADQQFHDQAgASABKAIgEI0nCyAAQSBqEN8PIAAoAiAgAEEkaigCABDCKiAAQTBBCBCiGAsgAkEQaiQAC8YGAgN/AX4jAEEQayICJAACQAJAAkACQAJAAkACQAJAAkAgACgCAEEBaw4HAgMEBQYHAAELIAAoAgQiAEEIaiEBAkAgACgCAEUEQCABKQMAIgRCA4NCAFINASACIASnIgE2AgwgAkEMahDQBiABIAEoAgAiA0EBazYCACADQQFHDQEgASABKAIgEI0nDAELIAEQvxALAkAgAC0ARSIBQQNGDQAgAUECRgRAIABBJGoiASgCACAAQShqKAIAEPknIAAoAiAgASgCABDHKgwBCwJAIAApAygiBEIDg0IAUg0AIAIgBKciATYCDCACQQxqENAGIAEgASgCACIDQQFrNgIAIANBAUcNACABIAEoAiAQjScLIABBQGsQlhELIABB2ABBCBCiGAwHCwJAIAApAwgiBEIDg0IAUg0AIAIgBKciATYCDCACQQxqENAGIAEgASgCACIDQQFrNgIAIANBAUcNACABIAEoAiAQjScLIAAoAiAiABDSECAAQcAAQQQQohgMBgsCQCAAKQMIIgRCA4NCAFINACACIASnIgE2AgwgAkEMahDQBiABIAEoAgAiA0EBazYCACADQQFHDQAgASABKAIgEI0nCyAAKAIgEOcODAULIAAoAgQiAEEEaiIBKAIAIABBCGooAgAQtCEgACgCACABKAIAEMcqIABBHEEEEKIYDAQLIAAoAgQiAEEEaiIBKAIAIABBCGooAgAQtCEgACgCACABKAIAEMcqIABBGEEEEKIYDAMLIAAoAgQQpA4MAgsCQCAAKAIEIgEpAwgiBEIDg0IAUg0AIAIgBKciADYCDCACQQxqENAGIAAgACgCACIDQQFrNgIAIANBAUcNACAAIAAoAiAQjScLIAEoAiAiAARAIAAQ/w4gACgCACAAQQRqKAIAEMIqIABBFEEEEKIYCyABKAIkIgAQiQQgAEHgAEEIEKIYIAFBMEEIEKIYDAELAkAgACgCBCIAKQMAIgRCA4NCAFINACACIASnIgE2AgwgAkEMahDQBiABIAEoAgAiA0EBazYCACADQQFHDQAgASABKAIgEI0nCyAAQSBqEN8PIAAoAiAgAEEkaigCABDCKiAAQTBBCBCiGAsgAkEQaiQAC7AGAgR/AX4jAEEQayIEJAACQAJAAkACQAJAAkACQEEEIAAoAgBBBWsiASABQQZPGw4FAQIDBAUACyAAQQhqEPgMIAAoAigiAUEEaigCACEAIAEoAggiAgRAA0AgABDcCCAAQUBrIQAgAkEBayICDQALIAFBBGooAgAhAAsgASgCACAAEMEqIAFBEGooAgAhACABKAIUIgIEQANAIAAoAgAiAxCiASADQcAAQQgQohggAEEMaiEAIAJBAWsiAg0ACyABQRBqKAIAIQALIAEoAgwgABDAKiABKAIYIgNBgICAgHhHBEAgAUEcaigCACEAIAEoAiAiAgRAA0AgABCGAyAAQTBqIQAgAkEBayICDQALIAEoAhghAyABQRxqKAIAIQALIAMgABDCKgsgASgCPCIABEAgABCBDyAAKAIAIABBBGooAgAQwiogAEEUQQQQohgLIAEoAkAiAARAIAAoAgAiAhC1AiACQeAAQQgQohggAEEMQQQQohgLIAFByABBBBCiGAwF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BSADENcmIAIoAlQgAigCXCEMIAIoAlghAyACKAJIIAUQnS8gAkEMaiIFIAMgDBDXJiADEJ0vIAVB8LfYAEECENcmCyACQQxqIgMgBiAEENcmIANBChCwCiABIAlJBEAgCiABQQxsaiIGKAIIRQ0BIAJBADYCXCACQoCAgIAQNwJUIAchAQNAIAEEQCACQdQAakEgELAKIAFBAWshAQwBBSAGKAIEIgMgBigCCEEYbGohBkEAIQELCwNAAkAgAyAGRwRAIAEgAygCCCIEQQFrIgUgASAFSxsiBSABayEBA0AgAQRAIAJB1ABqQSAQsAogAUEBayEBDAEFQQEgAygCFCIBIARrIgRBACABIARPGyIBIAFBAU0bIgQhAQNAIAFFDQQgAkHUAGpB3gAQsAogAUEBayEBDAALAAsACwALIAIoAlQiAUGAgICAeEYNAyACQQxqIgQgAikCWCINpyIDIA1CIIinENcmIARBChCwCiABIAMQnS8MAwsgBCAFaiEBIANBGGohAwwACwALCyABIAlB5M/WABDnFgALQfTP1gAQoS8ACyAAIAIpAgw3AgAgAEEIaiACQRRqKAIANgIAIAJB4ABqJAALgwYBCH8jAEEwayICJAADQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIAQQFrDhINDQENAg0NAwQNBQEBBgcICQ0ACyABIABBBGoQ0ikMDAsgAEEIaiEDDAwLIABBKGooAgAhAAwMCyAAKAIIIAEQsgUgACgCFCIADQsMCQsgAS0AJSEEIAFBAToAJSAAKAIMIgMEQCAAKAIIIQAgA0EYbCEDA0AgASAAEOISIABBGGohACADQRhrIgMNAAsLIAEgBDoAJQwICyABIAAoAgQiBEHIAGoQ0ikgBEHgAGohB0EIIQAgBCgCACIDQQhGDQYgAiABEKsIIAEQqwogAUEIakG4teMAKQMANwIAIAFBsLXjACkDADcCACABLQAmIQkgAkEANgIoIAJCgICAgIABNwIgIANBB0cNBAwFCyAAQQxqIQMgACgCBCIEQQJGIARBAXFyDQcgACgCCC0AGUEBa0H/AXFBAkkNByABIAAoAggQxBEgAygCACEADAgLIAEgACgCBCAAQQhqKAIAELUmIABBEGooAgAhAAwHCyABIAAoAgQgAEEIaigCABC1JiAAQRBq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0CgL6AUBA38CQAJAAkACQAJAAkACQAJAAkAgACgCAEEBaw4HAAECAwQFBgcLIABCADcDECAAKAIgIAEQkQwPCyAAKAIEIgBCADcCDCAAKAIIIgJFDQYgACgCBCEAIAJBOGwhAgNAIABCADcCKCAAIAEQ6QcgACgCMCIDBEAgAyABEPIBCyAAQThqIQAgAkE4ayICDQALDAYLIAAoAgQiAEIANwIMIAAoAggiAkUNBSAAKAIEIQAgAkE4bCECA0AgAEIANwIoIAAgARDpByAAKAIwIgMEQCADIAEQ8gELIABBOGohACACQThrIgINAAsMBQsgACgCBCABEP8JDwsgACgCBCICQgA3AxAgAkIANwMAAkAgAigCICIARQ0AIABCADcCDCAAQQhqKAIAIgNFDQAgAEEEaigCACIAIANBMGxqIQMDQCAAQgA3AhAgAEIANwIAIABBIGooAgAiBARAIAEgBBChAgsgAEEkaigCACIEBEAgASAEEKECCyAAQTBqIgAgA0cNAAsLIAEgAigCJBChAg8LIAAoAgQiAEIANwMYIABCADcDCCAAKAIoIgJFDQIgAkEwbCECIAAoAiRBKGohAANAIABBGGtCADcCACAAQQhrQgA3AgAgACgCACIDBEAgAyABEPIBCyAAQTBqIQAgAkEwayICDQALDAILIAAoAgQiAEIANwNIIABCADcDECAALQBFIgJBA0YNASACQQJGBEAgAEIANwIsIAAoAigiAkUNAiAAKAIkIQAgAkE4bCECA0AgACABENMFIABBOGohACACQThrIgINAAsMAgsgAEIANwMwIABCADcDICAAKAJAIgAtACVBAkcEQANAIABCADcDECAAQgA3AwAgACgCICIALQAlQQJHDQALCyAAQgA3AgwgACgCCCICRQ0BIAAoAgQhACACQThsIQIDQCAAIAEQ0wUgAEE4aiEAIAJBOGsiAg0ACwwBCyAAQgA3AxAgACgCICABEK8DCwvjBQMCfgl/AXwjAEFAaiIEJAACQAJAAkACQAJAAkACQAJAIAEoAgAiCUEBaw4EAQIEAwALIAEoAhQhBSABKAIQIQYgASkDCCICQgODUARAIAKnIgEgASgCACIBQQFqNgIAIAFBAEgNBgsgACAFNgIUIAAgBjYCECAAIAI3AwgMBAsgASgCFCEFIAEoAhAhBiABKQMIIgNCA4NQBEAgA6ciByAHKAIAIgdBAWo2AgAgB0EASA0FCyABKQMYIgJQIAJCA4NQRXJFBEAgAqciASABKAIAIgFBAWo2AgAgAUEASA0FCyAAIAI3AxggACAFNgIUIAAgBjYCECAAIAM3AwgMAwsgASsDECENIAEoAgwhBSABKAIIIQYgASkDGCICUCACQgODUEVyRQRAIAKnIgEgASgCACIBQQFqNgIAIAFBAEgNBAsgACACNwMYIAAgDTkDECAAIAU2AgwgACAGNgIIDAILIAEoAgwhCiABKAIIIQsgASgCGCEGEMIpIQUgBigCBCEIIAYtAAwhDCAEIAYoAggiBkEEQQQQ3hAgBCgCBCEHIAQoAgBBAUYNAyAEKAIIIAggBkECdBCBCSEIIAUgDDoADCAFIAY2AgggBSAINgIEIAUgBzYCACABKQMQIgJQIAJCA4NQRXJFBEAgAqciASABKAIAIgFBAWo2AgAgAUEASA0DCyAAIAU2AhggACACNwMQIAAgCjYCDCAAIAs2AggMAQsgASkDCCECIAEoAgQhBRC+KSEBIAQgBRA1IAFBOGogBEE4aikDADcDACABQTBqIARBMGopAwA3AwAgAUEoaiAEQShqKQMANwMAIAFBIGogBEEgaikDADcDACABQRhqIARBGGopAwA3AwAgAUEQaiAEQRBqKQMANwMAIAFBCGogBEEIaikDADcDACABIAQpAwA3AwAgACACNwMIIAAgATYCBAsgACAJNgIAIARBQGskAA8LAAsgByAEKAIIEKMvAAu5BQISfwF+IwBBgAFrIgEkABDDKSECIAFBCGogABDWCSABQRRqIABBDGoQvQlBgICAgHghBiAAKAI4IQwgACgCNCENIAAoAjAhDgJAAkAgACgCGEGAgICAeEYNACAAKAIcIQcgACgCLCEPIAAoAighECAAKAIkIREgAUEgaiAAKAIgIgpBCEEwEN4QIAEoAiQhBiABKAIgQQFGDQEgASgCKCELIAZFBEBBACEGDAELIApBMGwhCCAGIQUDQCAEIAhGDQEgAUEgaiAEIAdqED8gBCALaiIDQShqIAFByABqKQMANwMAIANBIGogAUFAaykDADcDACADQRhqIAFBOGopAwA3AwAgA0EQaiABQTBqKQMANwMAIANBCGogAUEoaikDADcDACADIAEpAyA3AwAgBEEwaiEE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0ABrIgIkACAAQQRqKAIAIQQgACgCACEAAkACQAJAAkACQCABKQMAQgN9IgWnQQFqQQAgBUICVBtBAWsOAgECAAsgAS0AQA0DIAJBCGogAUEgahCtISACIAIoAhA2AkAgAiACKQMIIgU3AzggBCACQThqIgEQlA1FBEAgACABEJMNIQMgAikDOCIFQgODQgBSDQQgAiAFpyIANgJMIAJBzABqENAGIAAgACgCACIBQQFrNgIAIAFBAUcNBCAAIAAoAiAQjScMBAsgBUIDg0IAUg0DIAIgBaciADYCTCACQcwAahDQBiAAIAAoAgAiAUEBazYCACABQQFHDQMgACAAKAIgEI0nDAMLIAJBGGogAUEQahCtISACIAIoAiA2AkAgAiACKQMYIgU3AzggBCACQThqIgEQlA1FBEAgACABEJMNIQMgAikDOCIFQgODQgBSDQMgAiAFpyIANgJMIAJBzABqENAGIAAgACgCACIBQQFrNgIAIAFBAUcNAyAAIAAoAiAQjScMAwsgBUIDg0IAUg0BIAIgBaciADYCTCACQcwAahDQBiAAIAAoAgAiAUEBazYCACABQQFHDQEgACAAKAIgEI0nDAELIAJBKGogAUEQahCtISACIAIoAjA2AkAgAiACKQMoIgU3AzggBCACQThqIgEQlA1FBEAgACABEJMNIQMgAikDOCIFQgODQgBSDQIgAiAFpyIANgJMIAJBzABqENAGIAAgACgCACIBQQFrNgIAIAFBAUcNAiAAIAAoAiAQjScMAgsgBUIDg0IAUg0AIAIgBaciADYCTCACQcwAahDQBiAAIAAoAgAiAUEBazYCACABQQFHDQAgACAAKAIgEI0nCwsgAkHQAGokACADC8oFAQp/IwBBEGsiCCQAIAEgAEFAaxCyCiAAKAKEASICBEAgAkHYAGwhBCAAKAKAAUEEaiECA0ACQCACQQRrKAIAIgNBBUcEQCADQQRGDQECQAJAAkAgA0EBaw4DAAECBAsgAigCAEEBRw0DIAJBBGooAgAgARDTAgwDCyACKAIAIAEQ7wUMAgsgAiABEKQPDAELIAIoAgAgARDTAgsgAkHYAGohAiAEQdgAayIEDQALCyAAKAKYASICBEAgACgClAEiAyACQShsaiEJA0ACQAJAAkACQAJAIAMoAgBBAWsOBAABAgMECyADKAIEQQFHDQMg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QQUgAkEMakGZAxCVDgwGCyACIABBBGo2AgwgAUGSwuAAQQcgAkEMakGaAxCVDgwFCyACIABBBGo2AgwgAUGZwuAAQQMgAkEMakGbAxCVDgwECyACIABBBGo2AgwgAUGcwuAAQQUgAkEMakGcAxCVDgwDCyACIABBBGo2AgwgAUGhwuAAQQUgAkEMakGdAxCVDgwCCyACIABBCGo2AgwgAUGmwuAAQQQgAkEMakGeAxCVDgwBCyACIABBBGo2AgwgAUHr6uAAQQQgAkEMakGfAxCVDgsgAkEQaiQAC9AFAQF/IwBBEGsiAiQAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIAIgAoAgBBAWsOEgECAwQFBgcICQoLDA0ODxAREgALIAIgAEEEajYCDCABQdLB4ABBBSACQQxqQbYFEJUODBILIAIgAEEEajYCDCABQY/04ABBBSACQQxqQY4DEJUODBELIAIgAEEEajYCDCABQdfB4ABBCCACQQxqQY8DEJUODBALIAIgAEEEajYCDCABQd/B4ABBBCACQQxqQbcFEJUODA8LIAIgAEEEajYCDCABQePB4ABBBiACQQxqQbgFEJUODA4LIAIgAEEIajYCDCABQenB4ABBByACQQxqQbkFEJUODA0LIAIgAEEIajYCDCABQfDB4ABBBSACQQxqQZMDEJUODAwLIAIgAEEIajYCDCABQfXB4ABBCCACQQxqQZQDEJUODAsLIAIgAEEEajYCDCABQf3B4ABBAiACQQxqQboFEJUODAoLIAIgAEEEajYCDCABQf/B4ABBBiACQQxqQbsFEJUODAkLIAIgAEEEajYCDCABQYXC4ABBBSACQQxqQbwFEJUODAgLIAIgAEEEajYCDCABQYrC4ABBAyACQQxqQb0FEJUODAcLIAIgAEEEajYCDCABQY3C4ABBBSACQQxqQb4FEJUODAYLIAIgAEEEajYCDCABQZLC4ABBByACQQxqQb8FEJUODAULIAIgAEEEajYCDCABQZnC4ABBAyACQQxqQcAFEJUODAQLIAIgAEEEajYCDCABQZzC4ABBBSACQQxqQcEFEJUODAMLIAIgAEEEajYCDCABQaHC4ABBBSACQQxqQcIFEJUODAILIAIgAEEIajYCDCABQabC4ABBBCACQQxqQcMFEJUODAELIAIgAEEEajYCDCABQevq4ABBBCACQQxqQcQFEJUOCyACQRBqJAAL0AUBAX8jAEEQayICJAACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgAiACgCAEEBaw4SAQIDBAUGBwgJCgsMDQ4PEBESAAsgAiAAQQRqNgIMIAFB0sHgAEEFIAJBDGpBrQcQlQ4MEgsgAiAAQQRqNgIMIAFBj/TgAEEFIAJBDGpBjgMQlQ4MEQsgAiAAQQRqNgIMIAFB18HgAEEIIAJBDGpBjwMQlQ4MEAsgAiAAQQRqNgIMIAFB38HgAEEEIAJBDGpBrgcQlQ4MDwsgAiAAQQRqNgIMIAFB48HgAEEGIAJBDGpBrwcQlQ4MDgsgAiAAQQhqNgIMIAFB6cHgAEEHIAJBDGpBsAcQlQ4MDQsgAiAAQQhqNgIMIAFB8MHgAEEFIAJBDGpBkwMQlQ4MDAsgAiAAQQhqNgIMIAFB9cHgAEEIIAJBDGpBlAMQlQ4MCwsgAiAAQQRqNgIMIAFB/cHgAEECIAJBDGpBsQcQlQ4MCgsgAiAAQQRqNgIMIAFB/8HgAEEGIAJBDGpBsgcQlQ4MCQsgAiAAQQRqNgIMIAFBhcLgAEEFIAJBDGpBswcQlQ4MCAsgAiAAQQRqNgIMIAFBisLgAEEDIAJBDGpBtAcQlQ4MBwsgAiAAQQRqNgIMIAFBjcLgAEEFIAJBDGpBtQcQlQ4MBgsgAiAAQQRqNgIMIAFBksLgAEEHIAJBDGpBtgcQlQ4MBQsgAiAAQQRqNgIMIAFBmcLgAEEDIAJBDGpBtwcQlQ4MBAsgAiAAQQRqNgIMIAFBnMLgAEEFIAJBDGpBuAcQlQ4MAwsgAiAAQQRqNgIMIAFBocLgAEEFIAJBDGpBuQcQlQ4MAgsgAiAAQQhqNgIMIAFBpsLgAEEEIAJBDGpBugcQlQ4MAQsgAiAAQQRqNgIMIAFB6+rgAEEEIAJBDGpBuwcQlQ4LIAJBEGokAAvQBQEBfyMAQRBrIgIkAAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCACIAKAIAQQFrDhIBAgMEBQYHCAkKCwwNDg8QERIACyACIABBBGo2AgwgAUHSweAAQQUgAkEMakGgChCVDgwSCyACIABBBGo2AgwgAUGP9OAAQQUgAkEMakHBChCVDgwRCyACIABBBGo2AgwgAUHXweAAQQggAkEMakHCChCVDgwQCyACIABBBGo2AgwgAUHfweAAQQQgAkEMakHDChCVDgwPCyACIABBBGo2AgwgAUHjweAAQQYgAkEMakHEChCVDgwOCyACIABBCGo2AgwgAUHpweAAQQcgAkEMakHFChCVDgwNCyACIABBCGo2AgwgAUHwweAAQQUgAkEMakHGChCVDgwMCyACIABBCGo2AgwgAUH1weAAQQggAkEMakHHChCVDgwLCyACIABBBGo2AgwgAUH9weAAQQIgAkEMakHIChCVDgwKCyACIABBBGo2AgwgAUH/weAAQQYgAkEMakHJChCVDgwJCyACIABBBGo2AgwgAUGFwuAAQQUgAkEMakHKChCVDgwICyACIABBBGo2AgwgAUGKwuAAQQMgAkEMakHLChCVDgwHCyACIABBBGo2AgwgAUGNwuAAQQUgAkEMakHMChCVDgwGCyACIABBBGo2AgwgAUGSwuAAQQcgAkEMakHNChCVDgwFCyACIABBBGo2AgwgAUGZwuAAQQMgAkEMakHOChCVDgwECyACIABBBGo2AgwgAUGcwuAAQQUgAkEMakHPChCVDgwDCyACIABBBGo2AgwgAUGhwuAAQQUgAkEMakHQChCVDgwCCyACIABBCGo2AgwgAUGmwuAAQQQgAkEMakHRChCVDgwBCyACIABBBGo2AgwgAUHr6uAAQQQgAkEMakHSChCVDgsgAkEQaiQAC/oFAg9/CX4jAEGQAWsiAiQAIAEoAuQBIQYgAS0A8wEhByABKQIQIREgASkCGCESIAEpAiAhEyABKQIoIRQgASkCMCEVIAEpAjghFiABKQJAIRcgASkCSCEYIAEpAlAhGSACQewAaiABKAJcIAEoAmAQ5BsgAkH4AGogASgCaCABKAJsEOQbIAJBhAFqIAEoAnQgASgCeBDkGyACIBk3AmQgAiAYNwJcIAIgFzcCVCACIBY3AkwgAiAVNwJEIAIgFDcCPCACIBM3AjQgAiASNwIsIAIgETcCJCABKAKAASEDIAJBEGogASgChAEiBUEBQQoQlR0gAigCECEIIAIoAhQgAyAFQQpsEIEJIQkgAkEYaiABQcQBahDEJyABKALcASIDIAMoAgAiBEEBajYCACAEQQBIBEAACyAB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8AIhBSABQSU2AvACAkAgBUElRwRAIARB3ABqIAFBlANqKAIANgIAIARB1ABqIAFBjANqKQIANwIAIARBzABqIAFBhANqKQIANwIAIARBxABqIAFB/AJqKQIANwIAIAQgBTYCOCAEIAEpAvQCNwI8DAELIARBOGogAUEoahAyIAIoAgBBJUYNACACEOgDCyACIAQpAzg3AwAgAkEgaiAEQdgAaikDADcDACACQRhqIARB0ABqKQMANwMAIAJBEGogBEHIAGopAwA3AwAgAkEIaiAEQUBrKQMANwMAIAIoAgAiAkElRw0AIAFBgAJqKAIAIQEgBEEAOgA4IAEgASAEQThqEO8bIQEMAgsgAkEkRwRAIAFBJTYCyAIgASABKQPgAjcDmAMgBEHMAGogAUHcAmooAgA2AgAgBEHEAGogAUHUAmopAgA3AgAgBCACNgI4IAQgASkCzAI3AjwgBEE4ahDoAwwBCyABQSU2AsgCIAEgASkD4AI3A5gDIAEoAswCIQEMAQsgBEEIaiABELMCIAQoAgwhAiAEKAIIBEAgAiEBDAELQQAhBkGgv+QALQAAGiABKAKcAyEFQQwQhAEiAQRAIAEgAjYCACABIAUgAyADIAVJGzYCCCABIAUgAyADIAVLGzYCBAwBCwALIARBFGoQ9QogACABNgIEIAAgBjYCACAEQeAAaiQAC+sEAQp/IwBBMGsiAyQAIANBAzoALCADQSA2AhwgA0EANgIoIAMgATYCJCADIAA2AiAgA0EANgIUIANBADYCDAJ/AkACQAJAIAIoAhAiCkUEQCACKAIMIgBFDQEgAigCCCIBIABBA3RqIQQgAEEBa0H/////AXFBAWohByACKAIAIQADQCAAQQRqKAIAIgUEQCADKAIgIAAoAgAgBSADKAIkKAIMEQMADQQLIAEoAgAgA0EMaiABKAIEEQAADQMgAEEIaiEAIAFBCGoiASAERw0ACwwBCyACKAIUIgBFDQAgAEEFdCELIABBAWtB////P3FBAWohByACKAIIIQUgAigCACEAA0AgAEEEaigCACIBBEAgAygCICAAKAIAIAEgAygCJCgCDBEDAA0DCyADIAggCmoiAUEQaigCADYCHCADIAFBHGotAAA6ACwgAyABQRhqKAIANgIoIAFBDGooAgAhBEEAIQlBACEGAkACQAJAIAFBCGooAgBB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BzYCRCAAIAU2AkAgACAVNgI8IAAgHCATIBQbNgI4IAAgEjYCNCAAIBsgECARGzYCMCAAIBc2AiwgAEEBIBogFhs2AiggACAZIAEgAUECRhs6AFUgACAYIAsgC0ECRhs6AFQgACAPIAogCkECRhs6AFMgACAOIAkgCUECRhs6AFIgACANIAggCEECRhs6AFEgACAMIAYgBkECRhs6AFAgACACLwEsOwBNIABBzwBqIAJBLmotAAA6AAAgAkEwaiQAIAALlgQCC38FfiMAQfAAayICJAAgASgCBCEEIAJBMGogASgCCCIIQQhBOBDeECACKAI0IQUgAigCMEEBRwRAIAIoAjghCQJAIAVFDQAgCEE4bCEGIAkhASAFIQoDQCAGRQ0BIAQoAiwhCyAEKAIoIQwgAkEIaiAEEJcDAkAgBCgCMCIHRQRAQQAhAwwBCxC+KSEDIAJBMGogBxA1IANBOGogAkHoAGopAwA3AwAgA0EwaiACQeAAaikDADcDACADQShqIAJB2ABqKQMANwMAIANBIGogAkHQAGopAwA3AwAgA0EYaiACQcgAaikDADcDACADQRBqIAJBQGspAwA3AwAgA0EIaiACQThqKQMANwMAIAMgAikDMDcDAAsgBC0ANCEHIAJB0ABqIAJBKGopAwAiDTcDACACQcgAaiACQSBqKQMAIg43AwAgAkFAayACQRhqKQMAIg83AwAgAkE4aiACQRBqKQMAIhA3AwAgAiACKQMIIhE3AzAgAUEgaiANNwMAIAFBGGogDjcDACABQRBqIA83AwAgAUEIaiAQNwMAIAEgETcDACABQTRqIAc6AAAgAUEwaiADNgIAIAFBLGogCzYCACABQShqIAw2AgAgBkE4ayEGIAFBOGohASAEQThqIQQgCkEBayIKDQALCyAAIAg2AgggACAJNgIEIAAgBTYCACACQfAAaiQADwsgBSACKAI4EKMvAAvcBAEBfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgASgCAEEBaw4SAQIDBAUGBwgJCgsMDQ4PEBESAAsgAUEUaiECIAFBEGohAQwSCyABQQhqIQIgAUEEaiEBDBELIAFBCGohAiABQQRqIQEMEAsgAUEQaiECIAFBDGohAQwPCyABQQhqIQIgAUEEaiEBDA4LIAFBDGohAiAB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IAIoAgQgAkFAaxDvGyEDIAQQoRMiBEUNByAEKAIAQSRGDQIMBwsgAkFAayABENoGIAIoAkghASACKQNAIgVQRQRAIAIgAigCTDYCbCACIAE2AmggAiAFNwNgIAJBCGogAkHgAGoQkxRCACEFDAYLIABCAjcDACAAIAE2AggMBwsgAkFAayABEPADIAIoAkAiAUEHRg0BIAJBOGoiBCACQdgAaikDADcDACACQTBqIgMgAkHQAGopAwA3AwAgAiACKQNINwMoIAENAiACQRhqIAQpAwA3AwAgAkEQaiADKQMANwMAIAIgAikDKDcDCEIBIQUMBAsgASABKQNANwN4IAEoAiggAUElNgIoQSRHDQIgASABKAIsEMUQDAQLIAIoAkQhASAAQgI3AwAgACABNgIIDAQLQYmE4QBBKEHkkOAAENUhAAtBiYThAEEoQYiR4AAQ1SEACyACQSBqEL0rIAAgBTcDACAAIAIpAwg3AwggAEEQaiACQRBqKQMANwMAIABBGGogAkEYaikDADcDAAwCCyAAQgI3AwAgACADNgIICyACQSBqEL0rCyACQfAAaiQAC/oEAQJ/IwBBMGsiAyQAAn8CQAJAAkACQAJAAkACQAJAAkBBBiAAKAIAQQJrIgQgBEEJTxtBAWsOCAECAwQFBgcIAAsgA0EBNgIUIANBqI/hADYCECADQgE3AhwgA0GzAjYCDCADIAApAgg3AiggAyADQQhqNgIYIAMgA0EoajYCCCABIAIgA0EQahDvKwwICyADIABBBGo2AgggA0ECNgIUIANBmM7YADYCECADQgE3AhwgA0EJNgIsIAMgA0EoajYCGCADIANBCGo2AiggASACIANBEGoQ7ysMBwsgA0EANgIgIANBATYCFCADQbzO2AA2AhAgA0IENwIYIAEgAiADQRBqEO8rDAYLIANBADYCICADQQE2AhQgA0HMztgANgIQIANCBDcCGCABIAIgA0EQahDvKwwFCyADQQA2AiAgA0EBNgIUIANB6M7YADYCECADQgQ3AhggASACIANBEGoQ7ysMBAsgA0EANgIgIANBATYCFCADQYjP2AA2AhAgA0IENwIYIAEgAiADQRBqEO8rDAMLIAMgADYCCCADQQE2AhQgA0Goj+EANgIQIANCATcCHCADQbQCNgIsIAMgA0EoajYCGCADIANBCGo2Aigg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IIh+QiCJIAhC/////w+DIAdCIIh+hSEHIABBEGohACAJIQgMAQsACwALAkACQCACQQdNBEAgAkEDSw0BIAINAkLE5sGb4MXijBMhB0LTkYytiNHanyQMAwsgAykAACABIAJBCGsgAyACQezT2AAQ8iUgASgCBEEIRw0FIAEoAgApAABCxObBm+DF4owThSEHQtORjK2I0dqfJIUMAgsgAzUAACABQQhqIAJBBGsgAyACQczT2AAQ8iUgASgCDEEERw0FIAEoAgg1AABCxObBm+DF4owThSEHQtORjK2I0dqfJIUMAQsgAyACQQF2ajEAACACIANqQQFrMQAAQgiGhELE5sGb4MXijBOFIQcgAzEAAELTkYytiNHanySFCyEIIAFBIGokACACrSAIQv////8PgyAHQiCIfoUgB0L/////D4MgCEIgiH5CIImFIgmnIAVB3cvdnnlsakHdy92eeWwgCUIgiKdqQcnB+P0AbEGj7rmcBGpBD3etDwtBCCAAQazT2AAQ6RYAC0EQIABBvNPYABDpFgALQcCC4QBBKyABQR9qQYzU2ABB/NPYABCxFAALQcCC4QBBKyABQR9qQYzU2ABB3NPYABCxFAALvgQBCX8jAEEQayIEJAACQAJAAn8CQCAAKAIAQQFGBEAgACgCBCEGIAQgASgCDCIDNgIMIAQgASgCCCICNgIIIAQgASgCBCIFNgIEIAQgASgCACIBNgIAIAAtACAhCSAAKAIQIQogAC0AHEEIcQ0BIAohCCAJDAILIAAoAhQgACgCGCABEMQGIQIMAwsgACgCFCABIAUgACgCGCgCDBEDAA0BIABBAToAIEEwIQggAEEwNgIQIARCATcCACAGIAVrIQFBACEFIAFBACABIAZNGyEGQQELIQcgAwRAIANBDGwhAwNAAn8CQAJAAkAgAi8BAEEBaw4CAgEACyACKAIEDAILIAIoAggMAQsgAi8BAiIBQegHTwRAQQRBBSABQZDOAEkbDAELQQEgAUEKSQ0AGkECQQMgAUHkAEkbCyACQQxqIQIgBWohBSADQQxrIgMNAAsLAn8CQCAFIAZJBEAgBiAFayEDAkACQAJAIAdB/wFxIgJBAWsOAwABAAILIAMhAkEAIQMMAQsgA0EBdiECIANBAWpBAXYhAwsgAkEBaiECIAAoAhghByAAKAIUIQEDQCACQQFrIgJFDQIgASAIIAcoAhARAABFDQALDAMLIAAoAhQgACgCGCAEEMQGDAELIAEgByAEEMQGDQFBACECAn8DQCADIAIgA0YNARogAkEBaiECIAEgCCAHKAIQEQAARQ0ACyACQQFrCyADSQshAiAAIAk6ACAgACAKNgIQDAELQQEhAgsgBEEQaiQAIAILywQCBH8EfiMAQdAAayICJAACQAJAIAACfwJAAkACQAJAAkAgASgCAA4HBAEAAgADBgALIABBDDYCACAAIAEpAwA3AwggAEEoaiABQSBqKQMANwMAIABBIGogAUEYaikDADcDACAAQRhqIAFBEGopAwA3AwAgAEEQaiABQQhqKQMANwMADAYLIAJBEGogAUEQaikCADcDACACQRhqIAFBGGopAgA3AwAgAiABKQIINwMIQQshAyABKAIEDAMLIAJBEGogAUEQaikCADcDACACQRhqIAFBGGopAgA3AwAgAiABKQIINwMIQQshA0EBIQQgASgCBAwCCyAAQQo2AgAgACABKQIENwIEIAEQygsMAwsgAkEQaiABQRRqKQIANwMAIAJBGGogAUEcaikCADcDACACIAEpAgw3AwggASgCJCEFIAEoAggLNgIIIAAgBDYCBCAAIAM2AgAgACACKQMINwIMIAAgBTYCJCAAQRRqIAJBEGopAwA3AgAgAEEcaiACQRhqKQMANwIADAELIAJBIGogASgCBBDCBCACKAIkIQEgAigCICIDQQtHBEAgAkEQaiACQTRqKQIAIgY3AwAgAkEYaiACQTxqKQIAIgc3AwAgAiACKQIsIgg3AwggAigCRCEEIAIpA0ghCSAAIAIoAig2AgggACABNgIEIAAgAzYCACAAIAg3AgwgAEEUaiAGNwIAIABBHGogBzcCACAAIAk3AyggACAENgIkDAELIAAgATYCDCAAQQY2AgggAEEMNgIACyACQdAAaiQAC58EAgl/BH4CQCAAKAIAIgJFDQACQAJAAkAgAUE/cSIIQQF0IgFB6M7AAGovAQAiA0H/D3EiBEGdCkkEQCADQQt2IQNBACACayEFIABBCGohCSAEIAFB6s7AAGovAQBB/w9xayEKQeR1IQEDQCABIApqQeR1Rg0EIAEgBGoiBkUNBCABIAVqQeR1Rg0CIAFB5HtGDQMgASAJaiABQQFqIQFBnApqLQAAIgcgBkGG2sAAai0AACIGRg0ACyADIAYgB0trIQMMAwsgBEGcCkGI2sAAEOgWAAsgA0EBayEDDAELQYAGQYAGQZjawAAQ5xYACyAAQQdqIgQgA2ohBSAIrSEOA0AgAiIBQQFrIQICQAJAIAFBgQZJBEAgASAEajEAACAOhiANfCILIAtCCoAiDUJ2fnwhDCACIANqQYAGSQ0BIAxQDQIgAEEBOgCIBgwCCyACQYAGQZjOwAAQ5xYACyABIAVqIAw8AAALIAINAAsgC0IKWgRAIANBB2ohAgNAIA0iCyALQgqAIg1Cdn58IQwCQCACQQhrQYAGTwRAIAxQDQEgAEEBOgCIBgwBCyAAIAJqIAw8AAALIAJBAWshAiALQgpaDQALCyAAIAAoAgQgA2o2AgQgAEGABiAAKAIAIANqIgEgAUGABk8bIgI2AgAgAUUNACACQQdqIQIDQCAAIAJqLQAADQEgACACQQhrNgIAIAJBAWsiAkEHRw0ACwsLnAQCDH8BfiAAKAIEQQFqIglBA3YgCUEHcUEAR2ohBSAAKAIAIgchBANAIAUEQCAEIAQpAwAiEEJ/hUIHiEKBgoSIkKDAgAGDIBBC//79+/fv37//AIR8NwMAIARBCGohBCAFQQFrIQUMAQUCQCAJQQhPBEAgByAJaiAHKQAANwAADAELIAdBCGogByAJEKAyGgtBACADayEHA0ACQAJAIAYgCUcEQCAAKAIAIgQgBmotAABBgAFHDQIgBCALaiENIAQgBkF/cyADbGohDgNAIAYgASAAIAYgAhENACIQpyIIIAAoAgQiBHEiDGsgACgCACIFIAQgEBDnFCIKIAxrcyAEcUEISQ0CIAUgCmoiDC0AACAMIAhBGXYiCDoAACAAKAIAIApBCGsgBHFqQQhqIAg6AAAgBSAKQX9zIANsaiEFQf8BRwRAIAchBANAIARFDQIgBCANaiIKLQAAIQggCiAFLQAAOgAAIAUgCDoAACAFQQFqIQUgBEEBaiEEDAALAAsLIAAoAgQhBCAAKAIAIAZqQf8BOgAAIAAoAgAgBCAGQQhrcWpBCGpB/wE6AAAgBSAOIAMQgQkaDAILIAAgACgCBCIBIAFBAWpBA3ZBB2wgAUEISRsgACgCDGs2AggPCyAFIAZqIAhBGXYiBToAACAAKAIAIAQgBkEIa3FqQQhqIAU6AAALIAZBAWohBiALIANrIQsMAAsACwALAAvLBAEDfyMAQRBrIgMkAAJAAkACQAJAAkACQAJAIAAoAgBBAWsOBwABAgYGAwQFC0EAQQAQhRgQmAYhAiABKAIUIQQgASACNgIUIAMgARCiCCABIABBCGoQ5wogACgCICABEIQTIAEQoQogASAENgIUIAFBCGogA0EIaikCADcCACABIAMpAgA3AgAMBQsgACgCBCIAKAIIIgJFDQQgACgCBCEAIAJBOGwhAgNAIAEgABD5CSAAQThqIQAgAkE4ayICDQALDAQLIAAoAgQiACgCCCICRQ0DIAAoAgQhACACQThsIQIDQCABIAAQ+QkgAEE4aiEAIAJBOGsiAg0ACwwDCyABIAAoAgQiABDnCiAAKAIoIgJFDQIgACgCJCIAIAJBMGxqIQIDQCAAKAIARQRAIAEgAEEIahDnCgsgAEEoaigCACIEBEAgBCABEN8CCyAAQTBqIgAgAkcNAAsMAgsgACgCBCIAKAIARQRAIAEgAEEIahDnCgsgAC0ARSICQQNGDQEgAkECRgRAIAAoAigiAkUNAiAAKAIkIQAgAkE4bCECA0AgACABEKcHIABBOGohACACQThrIgINAAsMAgsgASAAQShqEOcKIAAoAkAiAC0AJUECRwRAA0AgASAAQQhqEOcKIAAoAiAiAC0AJUECRw0ACwsgAEEIaigCACICRQ0BIABBBGooAgAhACACQThsIQIDQCAAIAEQpwcgAEE4aiEAIAJBOGsiAg0ACwwBCyABIABBCGoQ5wogACgCICABEPIFCyADQRBqJAALwQQBFn8jAEHgAGsiAiQAIAEoAgQhBSACIAEoAggiC0EEQRAQ3hAgAigCBCEHAkAgAigCAEEBRwRAIAIoAgghDAJAIAdFDQAgBSALQQR0aiERIAchDQNAIAUgEUYNASAFKAIIIRIgBSgCBCETIAUoAgAhARC+KSEDIAIgARA1IANBOGogAkE4aikDADcDACADQTBqIAJBMGopAwA3AwAgA0EoaiACQShqKQMANwMAIANBIGogAkEgaikDADcDACADQRhqIAJBGGopAwA3AwAgA0EQaiACQRBqKQMANwMAIANBCGogAkEIaikDADcDACADIAIpAwA3AwACQCAFKAIMIgRFBEBBACEGDAELEMQpIQYgBCgCBCEBIAQoAhAhFCAEKAIMIRUgAiAEKAIIIg5BBEEEEN4QIAIoAgQhBCACKAIAQQFGDQQgAigCCCEPAkAgBEUNACAOQQJ0IQkgDyEKIAQhEANAIAlFDQEgASgCACEWEMApIRcgAiAWEH0gCiAXIAJB4AAQgQk2AgAgCUEEayEJIApBBGohCiABQQRqIQEgEEEBayIQDQALCyAGIBQ2AhAgBiAVNgIMIAYgDjYCCCAGIA82AgQgBiAENgIACyAFQRBqIQUgDCAIQQR0aiIBIAY2AgwgASASNgIIIAEgEzYCBCABIAM2AgAgCEEBaiEIIA1BAWsiDQ0ACwsgACALNgIIIAAgDDYCBCAAIAc2AgAgAkHgAGokAA8LIAcgAigCCBCjLwALIAQgAigCCBCjLwALzAQCBn8CfiMAQSBrIgMkACABQShqIgQQoRMaIAFB/ABBwAAgASgCKEElRhtqKAIAIQYCQCAEEKETIgVFBEAgASgC2AIhASADQQA6AAggASABIANBCGoQ7xshASAAQQI6ABggACABNgIADAELAkACQAJAAkACQAJAQRAgBSgCAEECayIFIAVBI08bIgVBEEcEQCAFQSJHDQEgASABKQNANwN4IAEoAiggAUElNgIoQSRHDQIgASgCLCEBIABBAjoAGCAAIAE2AgAMBwsgASABKQNANwN4IAEoAighBSABQSU2AiggASkDOCEKIAEpAzAhCSABKAIsIQcgBUECayIIQSJNIAhBEEdxDQIgBQRAIAMgBzYCCCACRQ0EIANBCGoQiStCACEJCyAAIAQQoRMiAgR/IAIoAgBBEUYFQQALOgAYIAAgCTcDECAAIAo3AwAgACAGIAEoAnwiASABIAZJGzYCDCAAIAYgASABIAZLGzYCCAwGCyADQRRqIAQQiQogAyAEELceIANBDjYCECADQaz13wA2AgwgA0EwOgAIIAMoAgAgAygCBCADQQhqEO8bIQIgBBChEyIERQ0EIAQoAgBBJEcNBCABIAEpA0A3A3ggASgCKCABQSU2AihBJEcNAyABIAEoAiwQxRAMBAtBiYThAEEoQYz13wAQ1SEAC0GJhOEAQShBnPXfABDVIQALIABBAjoAGCAAIAc2AgAgChDQGgwCC0GJhOEAQShBvPXfABDVIQALIABBAjoAGCAAIAI2AgALIANBIGokAAvpBAIHfwN+IwBBMGsiAyQAAkACQAJAAkACQAJAAkAgACgC1ApBA0YNACACKAIAQQFrQQJPBEAgACgC+AoiBSgCqAIgBSgCrAJHDQELIAEoAtgEQYCAgIB4Rg0BIANBFGogAEHUCmogAUHYBGogAkEEQQAQjwkgAygCFCICQQJHDQYgAyADKAIYNgIMQcCC4QBBKyADQQxqQZSIwwBB2JfDABCxFAALAkAgACgCuAoiBEECRg0AIAItABhBAUYgAigCDCIFQYABS3ENACAAKALQCigCyAIiBkUNAiACKAIUIgcgAigCECIIayIJQQAgByAJTxtBfyAAKAK8CkEDdEGAgIABIARBAXEbIgRBBXYgBEEYcUEAR2oiBEEFdCAEQf///z9LGyAGbiIEQQFrIgZBACAEIAZPG0sNACABKALUBUGAgICAeEYNAyACKQIAIQogAigCCCECIANBAToALCADIAc2AiggAyAINgIkIAMgBTYCICADIAI2AhwgAyAKNwIUIANBDGogAEG4CmogAUHUBWogA0EUakEEQQAQtAcgAygCDCICQQJGDQQMBgsgASgC6ARBgICAgHhGDQQgAikCACEKIAIpAgghCyACKQIQIQwgA0EBOgAsIAMgDDcCJCADIAs3AhwgAyAKNwIUIAMgAEGgCmogAUHoBGogA0EUakEEQQAQlwkgAygCACECDAULQciXwwAQoS8AC0HImcMAEKokAAtBiJfDABChLwALIAMgAygCEDYCFEHAguEAQSsgA0EUakGUiMMAQZiXwwAQsRQAC0HYlsMAEKEvAAsgA0EwaiQAIAJBAXELwQQBCX8CQAJAAn8CQAJAAkAgBCAFTQRAIAMgBUkNASAFIARrIgNBAEwNBiABLQACIQggAS0AASEJIAEtAAAhCiACIARqIQcgA0EDTQRAIAchAQNAIAEtAAAiAiAIRiACIApGciACIAlGcg0HIAFBAWohASADQQFrIgMNAAsMBwtBgIKECCAHKAAAIgYgCkGBgoQIbCIMcyIBayABckGAgYKEeHFBgIGChHhHDQNBgIKECCAGIAlBgYKECGwiDXMiAWsgAXJBgIGChHhxQYCBgoR4Rw0DIAciAUGAgoQIIAYgCEGBgoQIbCIOcyIGayAGckGAgYKEeHFBgIGChHhHDQQaIAFBfHFBBGoiASACIAVqIgJBBGsiBUsNAgNAQYCChAggASgCACIDIAxzIgZrIAZyQYCBgoR4cUGAgYKEeEcNA0GAgoQIIAMgDXMiBmsgBnJBgIGChHhxQYCBgoR4Rw0DQYCChAggAyAOcyIDayADckGAgYKEeHFBgIGChHhHDQMgAUEEaiIBIAVNDQALDAILIAQgBUHEr8MAEOoWAAsgBSADQcSvwwAQ6RYACyABIAJPDQMgAiABayEFA0AgAS0AACICIAhGIAIgCkZyIAIgCUZyDQMgAUEBaiEBIAVBAWsiBQ0ACwwDCyAHCyEBA0AgAS0AACICIAhGIAIgCkZyIAIgCUZyDQEgAUEBaiEBIANBAWsiAw0ACwwBCyAAIAEgB2sgBGoiATYCBEEBIQsgACABQQFqNgIICyAAIAs2AgALugQCBn8CfiMAQSBrIgIkACABQQYgACgCCEECayIDIANBCU8bIgMQjSkCQAJAAkACQAJAAkAgAw4JAAQFBQUFAwIBBQtBACEDIAJBGGpBACAAKAIQIAAoAhRBiNrYABDyJSACKAIcIQYgAigCGCEHA0ACfwJAAkACQAJAIAMiACAGRgRAIAUgBkkEQCACQQhqIAUgByAGQZja2AAQ8iUgASACKAIIIAIoAgwiABDCCyAAIARqQR53IQQLIAEgASgCOEEIajYCOCABIAEpAzAgBK0iCSABKAI8IgBBA3QiA0E4ca2GhCIINwMwIABBCEsNASABIAEpAxggCIU3AxggARDADyABKQMwIQggASAJQcAAIANrrYhCACAAGzcDMCABIAggASkDAIU3AwAMAgsgAEEBaiEDIAAgB2otAABBL0cNBSAAIAVLBEAgASAFIAdqIAAgBWsiABDCCyAAIARqQR53IQQLIAJBEGogAyAHIAZBqNrYABDyJSACKAIQIQACQAJAIAIoAhQOAgQAAQsgAC0AAEEuRw0DDAQLIAAtAABBLkcNAiAALQABQS9GDQMMAgsgAEEIaiEACyABIAA2AjwMCAtBAAwBC0EBCyADaiEFDAALAAsgAEEQaigCACAAQRRqKAIAIAEQpAsMAwsgAEEQaigCACAAQRRqKAIAIAEQpAsMAgsgAEEcaigCACAAQSBqKAIAIAEQpAsMAQsgAEEQaigCACAAQRRqKAIAIAEQpAsLIAJBIGokAAuDBAEJfyMAQRBrIgQkAAJ/AkAgAigCBCIDRQ0AIAAgAigCACADIAEoAgwRAwBFDQBBAQwBCyACKAIMIgMEQCACKAIIIgUgA0EMbGohCCAEQQxqIQkDQAJAAkACQAJAIAUvAQBBAWsOAgIBAAsCQCAFKAIEIgJBwQBPBEAgAUEMaigCACEDA0BBASAAQaj4wABBwAAgAxEDAA0IGiACQUBqIgJBwABLDQALDAELIAJFDQMgAUEMaigCACEDCyAAQaj4wAAgAiADEQMARQ0CQQEMBQsgACAFKAIEIAUoAgggAUEMaigCABEDAEUNAUEBDAQLIAUvAQIhAiAJQQA6AAAgBEEANgIIAn9BBEEFIAJBkM4ASRsgAkHoB08NABpBASACQQpJDQAaQQJBAyACQeQASRsLIgMgBEEIaiIKaiIHQQFrIgYgAkEKbiILQfYBbCACakEwcjoAAAJAIAYgCkYNACAHQQJrIgYgC0EKcEEwcjoAACAEQQhqIAZGDQAgB0EDayIGIAJB5ABuQQpwQTByOgAAIARBCGogBkYNACAHQQRrIgYgAkHoB25BCnBBMHI6AAAgBEEIaiAGRg0AIAdBBWsgAkGQzgBuQTByOgAACyAAIARBCGogAyABQQxqKAIAEQMARQ0AQQEMAwsgBUEMaiIFIAhHDQALC0EACyAEQRBqJAAL2AQCBn8BfiMAQdAAayICJAACQAJAAkACfwJAIAAoAgAiA0ECRwRAQQEhBSADQQFxRQRAIAEoAhQiAyAAKAIQIAAoAhQgASgCGCgCDCIBEQMADQYMBQsgAiAAQQRqNgIAIAEoAhwgAiABNgIMIAJCgICAgIDI0Ac3AgQgAq1CgICAgKAihCEIQQRxRQ0BIAIgCDcDKCACQQE2AiQgAkEBNgIUIAJBqI/hADYCECACQQE2AhwgAkEDOgBMIAJBBDYCSCACQiA3AkAgAkECNgI4IAJBAjYCMCACIAJBMGo2AiAgAiACQShqNgIYIAJBBGpB7NTWACACQRBqEJ8GDAILIAAoAiQiA0UNBCAAKAIgIQADQCACQTBqIAAgAxDEBQJAAkAgAigCMEUEQCABIAIoAjQgAigCOBCHBQ0BDAgLIAItADkhBCACLQA4IQYgAigCNCEHIAFB2brYAEEDEIcFRQ0BC0EBIQUMBgsgBkEBcUUNBSAEIAdqIgQgA00EQCAAIARqIQAgAyAEayIDDQEMBgsLIAQgA0GIu9gAEOgWAAsgAkEBNgI0IAJBqI/hADYCMCACQgE3AjwgAiAINwMQIAIgAkEQajYCOCACQQRqQezU1gAgAkEwahCfBgsiA0EAIAIoAgQiBBtFBEAgAw0DIARFDQFB1N7WAEE3IAJBMGpBxN7WAEGM39YAELEUAAsgASgCFEGw3tYAQRQgASgCGCgCDBEDAA0CCyABKAIUIQMgASgCGCgCDCEBCyADIAAoAhggACgCHCABEQMAIQULIAJB0ABqJAAgBQu3BAECfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCAEEBaw4SCgoLAQIMDAMEBQYLCwcNDQgJAAsgASAAQQRqEMwGDwsgAEEMaiABEIwtDwsgASgCJCAAQRBqEJgIGiAAQShqIAEQgjIPCyAAQQRqIAEQ4TEgAEEIaiABEIIyIAAoAhRFDQYgAEEUaiABEIIyDwsgAEEQaiABEOExIAAoAgxBGGwhAiAAKAIIIQADQCACRQ0GIABBFGogARCMLSABIAAQzAYgAkEYayECIABBGGohAAwACwALIABBBGogARDhMQ8LIAEgACgCBCIAQcgAahDMBiAAQeAAaiECAkACQAJAIAAoAgBBB2sOAgECAAsgACABEO4XCyABIABBKGoQzAYLIAIoAgBBgICAgHhGDQMgASACEMwGDwsCQCAAKAIEIgNBAkYNACAAQQhqIQIgA0EBcUUEQCACIAEQgzIMAQsgAiABEOExCyAAQRhqIAEQjC0gAEEcaiABEIwtIABBDGogARCCMg8LIAEgAEEIahCVBQ8LIABBBGogARDhMQsPCyAAQQRqIAEQ4TEgAEEIaiABEIIyDwsgASgCJCEBIABBEGoiAC0AFEECRwRAIAEgABCYCBoLDwsgAEEEaiIDQQRqIQICQAJAAkACQCADKAIAQQFrDgIBAgALIAIgARCDMgwCCyABIAIoAgAQ+h0MAQsgAigCACABEO4XCyAAQQxqIAEQ4TEgAEEQaiABEIIyC44EAQh/IwBBMGsiAiQAAkACQAJAIAEoAgBBgICAgHhGBEAgAEGAgICAeDYCAAwBCwJAIAEoAggiBkUEQCACQQA2AgggAkKAgICAEDcDAAwBCyAGQQxsIgNBDGsiCEEMbiEGIAEoAgQiBSEEAkADQCADRQ0BIANBDGshAyAGIAQoAgggBmoiBk0gBEEMaiEEDQALQZTu2QBBNUGU79kAEMkZAAsgAkEYaiAGQQBBAUEBEKoNIAIoAhwhBCACKAIYQQFGDQIgAkEANgIUIAIgAigCIDYCECACIAQ2AgwgBSgCBCEEIAJBDGogBSgCCCIDEMEnIAIoAhAiByACKAIUIglqIAQgAxCBCRogBUEUaiEEIAYgAyAJaiIFayEDIAUgB2ohBwNAIAgEQCADRQ0FIARBBGsoAgAhCSAEKAIAIQUgB0EKOgAAIANBAWsiAyAFSQ0FIAhBDGshCCAEQQxqIQQgAyAFayEDIAdBAWogCSAFEIEJIAVqIQcMAQsLIAJBCGogBiADazYCACACIAIpAgw3AwALIAJBJGogAUEcai8BADsBACACIAEpAhQ3AhwgAiACNgIYIAAgAkEYahCFEiACKAIAIAIoAgQQnS8LIAJBMGokAA8LIAQgAigCIBCjLwALIAJBADYCKCACQQE2AhwgAkHgr+AANgIYIAJCBDcCICACQRhqQaTv2QAQkiYAC8oEAgV/An4jAEGAAWsiBiQAIAZBwQBqIAFBlwNqKQAANwAAIAZBPGogAUGSA2oiBykBADcCACAGQTRqIAFBigNqKQEAIgs3AgAgBkEBOgBgIAYgBy0AADoAXyAGIAEtAJ4DOgBrIAYgASkBggMiDDcATyAGIAs3AFcgBiABKQKUAzcAYSAGIAEvAZwDOwBpIAYgDDcCLCABQYABaiAGQc8AahDvCiAGIAE2AiggBkEIaiABIAMgBEEAEHQgBigCCCEIAkACQAJAIAYtABwiCUEDRwRAIAZB+ABqIAZBFGopAgA3AwAgBkHuAGogBkEfai0AADoAACAGIAYpAgw3A3AgBiAGLwAdOwFsIAYoAiAhByAGQShqEOUsIAUNASAHKAIUQdgAbCEDIAcoAhAhBANAIANFDQMCQAJAAkACQCAEKAIAIgVBBGtBACAFQQVrQQhJG0EBaw4DAAMBAwsgBC0ANQ0BDAILIAQtAEVBAUcNAQsgBCgCLCEFIAQoAighCiAGQaABOgAoIAEgCiAFIAZBKGoQjyMLIARB2ABqIQQgA0HYAGshAwwACwALIABBAzYCACAAIAg2AgQgBkEoahDlLAwCCyAHQQE6ADwLIAAgCDYCCCAAQQA2AgAgACAGKQNwNwIMIAAgCToAHCAAIAYvAWw7AB0gACAHNgIgIABBFGogBkH4AGopAwA3AgAgAEEfaiAGQe4Aai0AADoAACAAIAEoAnwiASACIAEgAksbNgIsIAAgASACIAEgAkkbNgIoCyAGQYABaiQAC/gDAgN/An4CQAJAAkACQAJAAkACQAJAAkAgAg4CAAECCyAAQQA6AAEMBwtBASECIAEtAABBK2sOAwUBBQELIAEtAABBK0YEQCABQQFqIQEgAkEKSSACQQFrIQINAQwCCyACQQhLDQELIANBCksNAUEAIQQDQCABLQAAQTBrIgUgA08NBCABQQFqIQEgBSADIARsaiEEIAJBAWsiAg0ACwwCCwJAAkAgA0EKTQRAIAOtIQdBACEEA0AgAkUNBSABLQAAQTBrIgUgA08NBiAErSAHfiIIQiCIpw0DIAFBAWohASACQQFrIQIgBSAIpyIGaiIEIAZPDQALDAELIAOtIQdBACEEA0AgAkUNBCABLQAAIgZBMGsiBUEKTwRAQX8gBkEgciIFQdcAayIGIAYgBUHhAGtJGyIFIANPDQYLIAStIAd+IghCIIinDQIgAUEBaiEBIAJBAWshAiAFIAinIgZqIgQgBk8NAAsLIABBAjoAAQwECyAAQQI6AAEMAwtBACEEA0AgAS0AACIGQTBrIgVBCk8EQEF/IAZBIHIiBUHXAGsiBiAGIAVB4QBrSRsiBSADTw0DCyABQQFqIQEgBSADIARsaiEEIAJBAWsiAg0ACwsgACAENgIEIABBADoAAA8LIABBAToAASAAQQE6AAAPCyAAQQE6AAALlgoCEn8EfiMAQRBrIgwkACAMIAI2AgwgDCABNgIIIAApAxAgACkDGCABIAIQpAchFyAAKAIIRQRAIwBBQGoiBSQAIAUgAEEQajYCDCAAKAIMIQcgBSAFQQxqNgIQAn8CQAJAIAVBMGpBDAJ/AkACQCAHQX9GDQAgByAAKAIEIgQgBEEBakEDdkEHbCAEQQhJGyIEQQF2SQ0DIAcgBCAEIAdJGyIEQQdJDQEgBEH+////AUsNAEF/IARBA3RBCGpBB25BAWtndkEBagwCCxCvJAALQQRBCCAEQQNJGwsQzBAgBSgCNCIKIAUoAjAiBEUNAhogBSgCOCEQIAUoAjwhBiAEQf8BIApBCWoQhw8hBCAFIAY2AiwgBSAQNgIoIAUgCjYCJCAFIAQ2AiAgBUKMgICAgAE3AhggBSAAQRBqNgIUIAcEQCAEQQxrIREgBEEIaiESIAAoAgAiCCkDAEJ/hUKAgYKEiJCgwIB/gyEWA0AgFlAEQANAIA5BCGohDiAIKQMIIAhBCGohCEKAgYKEiJCgwIB/gyIWQoCBgoSIkKDAgH9RDQALIBZCgIGChIiQoMCAf4UhFgsgBCAKIAUoAgwiBikDACAGQQhqKQMAIAAoAgAgFnqnQQN2IA5qIhNBdGxqIgZBDGsoAgAgBkEIaygCABCkB6ciFHEiCWopAABCgIGChIiQoMCAf4MiGFAEQEEIIQYDQCAGIAlqIQkgBkEIaiEGIAQgCSAKcSIJaikAAEKAgYKEiJCgwIB/gyIYUA0ACwsgFkIBfSAWgyEWIAQgGHqnQQN2IAlqIApxIgZqLAAAQQBOBEAgBCkDAEKAgYKEiJCgwIB/g3qnQQN2IQYLIAQgBmogFEEZdiIJOgAAIBIgBkEIayAKcWogCToAACARIAZBdGxqIgYgACgCACATQXRsakEMayIJKQAANwAAIAZBCGogCUEIaigAADYAACAHQQFrIgcNAAsgACgCDCEICyAFIAg2AiwgBSAQIAhrNgIoA0AgACANaiIEKAIAIQYgBCAFIA1qQSBqIgQoAgA2AgAgBCAGNgIAIA1BBGoiDUEQRw0ACyAFQRRqEO4aDAELIAAgBUEQakHRARC/BQtBAAsaIAVBQGskAAsgAUEIaiEIIAAoAgQiByAXp3EhBiAXQhmIIhhC/wCDQoGChIiQoMCAAX4hGSAAKAIAIQQCQAJAA0AgBCAGaikAACIXIBmFIhZCf4UgFkKBgoSIkKDAgAF9g0KAgYKEiJCgwIB/gyIWUEUEQANAIAggAiAEIBZ6p0EDdiAGaiAHcUF0bGoiBUEMaygCAEEIaiAFQQhrKAIAENAoDQMgFkIBfSAWgyIWUEUNAAsLIBdCgIGChIiQoMCAf4MhFkEBIQUgD0EBRwRAIBZ6p0EDdiAGaiAHcSELIBZCAFIhBQsgFiAXQgGGg1AEQCAGIBVBCGoiFWogB3EhBiAFIQ8MAQsLIAQgC2osAAAiBUEATgRAIAQgBCkDAEKAgYKEiJCgwIB/g3qnQQN2IgtqLQAAIQULIAQgC2ogGKdB/wBxIg86AAAgBCAHIAtBCGtxakEIaiAPOgAAIAAgACgCCCAFQQFxazYCCCAAIAAoAgxBAWo2AgwgBCALQXRsaiIAQQxrIAE2AgAgAEEIayACNgIAIABBBGsgAzYCAAwBCyAFQQRrIAM2AgAgASABKAIAIgBBAWs2AgAgAEEBRw0AIAxBCGoQxR4LIAxBEGokAAvFBAIEfwF+IwBBEGsiAyQAAkAgACgCACIBBEAgARCjASABQcAAQQgQohgMAQsCQAJAAkACQAJAAkACQEEEIAAoAgQiASgCAEEFayIAIABBBk8bDgUBAgMEBQALIAFBCGoQ/gwgAUEoahDxBgwFCyABKQMIIgVCA4NCAFINBCADIAWnIgA2AgggA0EIahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQQgACAAKAIgEI0nDAQLIAFBCGoQ/gwgASgCKCIAEKMBIABBwABBCBCiGAwDCwJAIAEpAxAiBUIDg0IAUg0AIAMgBaciADYCDCADQQxqENAGIAAgACgCACICQQFrNgIAIAJBAUcNACAAIAAoAiAQjScLIAEoAigiABCjASAAQcAAQQgQohgMAgsgAUEIahD+DCABKAJIIgAEQCAAKAIAIgIQ3AIgAkHgAEEIEKIYIABBDEEEEKIYCyABKAIoIgJBgICAgHhGDQEgAUEsaigCACEAIAEoAjAiBARAA0AgABCHAyAAQTBqIQAgBEEBayIEDQALIAEoAighAiABQSxqKAIAIQALIAIgABDCKgwBCyABEP4MIAEoAiBBB0cEQCABQSBqEMwHCyABKAJoIgAQzAcgAEEoQQgQohggASgCSCICQYCAgIB4Rg0AIAFBzABqKAIAIQAgASgCUCIEBEADQCAAEIcDIABBMGohACAEQQFrIgQNAAsgASgCSCECIAFBzABqKAIAIQALIAIgABDCKgsgAUHwAEEIEKIYCyADQRBqJAALmwQBEH8jAEHgAWsiAiQAIAJBCGogASgCCCIDQTAQ9R0gASgCACEKIAIoAgghBCACKAIMIQcgAUEANgIAIAEoAgQhBSABQQg2AgQgAUEANgIIIAJBADYCGCACIAc2AhQgAiAENgIQIABBDGohCyAFIANBMGwiDGohBCACQYQBaiEJIAJByABqQQRyIQ0gAC0AISEOIAAoAhwhDyAALQAgIRAgACgCJCERQQAhACAFIQMDQAJAIAQgACAMRgR/IAQFIAMoAgAhBiACQRxqIANBBGpBLBCBCRogBkETRw0BIAAgBWpBMGoLIgBrQTBuIQMDQCADBEAgA0EBayEDIAAQ3QUgAEEwaiEADAELCyAKIAUQ1S8gARDXLSABQQhqIAJBGGooAgA2AgAgASACKQIQNwIAIAJB4AFqJAAPCyACIAY2AkggDSACQRxqQSwQgQkaIAJB0AFqIAsQvAsgCSACKQLQATcCACAJQQhqIAJB2AFqKQIANwIAIAIgETYCnAEgAiAOOgCZASACIBA6AJgBIAIgDzYClAEgAkEANgKAASACQoCAgICAATcCeCACQcgAaiIGIAJB+ABqEMYGIAJBoAFqIAZBMBCBCRogA0EwaiEDIAIoAhAgCEYEQCACQRBqEP8gIAIoAhQhBwsgACAHaiACQaABakEwEIEJGiACIAhBAWoiCDYCGCAAQTBqIQAgAkH4AGoQhS8MAAsAC54EAQJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIAQQFrDhIKCgsBAgwMAwQFBgsLBw0NCAkACyAAQQRqIAEQ2CMPCyAAQQxqIAEQji0PCyABIABBEGoQ0iQgAEEoaiABEIcyDwsgAEEEaiABEN8xIABBCGogARCHMiAAKAIURQ0GIABBFGogARCHMg8LIABBEGogARDfMSAAKAIMQRhsIQIgACgCCCEAA0AgAkUNBiAAQRRqIAEQji0gACABENgjIAJBGGshAiAAQRhqIQAMAAsACyAAQQRqIAEQ3zEPCyAAKAIEIgBByABqIAEQ2CMgAEHgAGohAgJAAkACQCAAKAIAQQdrDgIBAgALIAAgARCdGAsgAEEoaiABENgjCyACKAIAQYCAgIB4Rg0DIAIgARDYIw8LAkAgACgCBCIDQQJGDQAgAEEIaiECIANBAXFFBEAgAiABEIgyDAELIAIgARDfMQsgAEEYaiABEI4tIABBHGogARCOLSAAQQxqIAEQhzIPCyAAQQhqIAEQxA0PCyAAQQRqIAEQ3zELDwsgAEEEaiABEN8xIABBCGogARCHMg8LIABBEGogARDWKw8LIABBBGoiA0EEaiECAkACQAJAAkAgAygCAEEBaw4CAQIACyACIAEQiDIMAgsgAigCACABENYbDAELIAIoAgAgARCdGAsgAEEMaiABEN8xIABBEGogARCHMgutBAEGfyAAQgA3AwAgAEFAaxDdFCAAQgA3A3AgACgChAEiAwRAIAAoAoABIgIgA0HYAGxqIQUDQAJAIAIoAgBBBUcEQCACQgA3AiggAikDMFAEfyACQThqBSACQgA3AjggAkIANwJQIAJBQGsLQgA3AgggAigCACIDQQRGDQECQAJAAkACQCADQQFrDgMBAgMACyACQQhqEK0dDAQLIAJCADcCECACKAIERQRAIAJCADcCCAwECyACKAIIIAEQ8gEMAwsgAigCBCABEM4GDAILIAJCADcCECACQRhqQgA3AgAgAigCDCIDBEAgAigCCCEGIANBKGwhB0EAIQQDQAJAAkACQAJAAkACQCAEIAZqIgMoAgBBAWsOBAECAwQACyADQRhqQgA3AgAMBAsgA0EQakIANwIAIANBBGooAgBFBEAgA0EIakEANgIAIANBDGpBADYCAAwECyADQQhqKAIAIAEQ8gEMAwsgA0EIakIANwIAIANBBGooAgAgARDyAQwCCyADQQRqKAIAIAEQzgYMAQsgA0EEaiABEK4dCyAHIARBKGoiBEcNAAsLIAJCADcCIAwBCyACQQRqIAEQzS0LIAJB2ABqIgIgBUcNAAsLIAAoAngiAgRAIAIgARC1IQsgACgCmAEiAwRAIAAoApQBIQIgA0EobCEEA0AgAiABENsXIAJBKGohAiAEQShrIgQNAAsLIAAtADxBBkcEQCAAQgA3AwggAEEQahDdFAsLnwQBAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIAQQFrDhIKCgsBAgoKAwQFBgsLBwwMCAkACyAAQQRqIAEQ1yMPCyAAQQxqIAEQjy0PCyAAQShqIAEQijIPCyAAQQRqIAEQ3jEgAEEIaiABEIoyIAAoAhRFDQYgAEEUaiABEIoyDwsgAEEQaiABEN4xIAAoAgxBGGwhAiAAKAIIIQADQCACRQ0GIABBFGogARCPLSAAIAEQ1yMgAkEYayECIABBGGohAAwACwALIABBBGogARDeMQ8LIAAoAgQiAEHIAGogARDXIyAAKAIAIgJBCEcEQCABLQAoIQMgAUEBOgAoIAJBB0cEQCAAIAEQnBgLIAFBADoAKCAAQShqIAEQ1yMgASADOgAoCyAAQeAAaiIAKAIAQYCAgIB4Rg0DIAAgARDXIw8LAkAgACgCBCIDQQJGDQAgAEEIaiECIANBAXFFBEAgAiABEIsyDAELIAIgARDeMQsgAEEYaiABEI8tIABBHGogARCPLSAAQQxqIAEQijIPCyAAQQhqIAEQ2BAPCyAAQQRqIAEQ3jELDwsgAEEEaiABEN4xIABBCGogARCKMg8LIABBBGoiA0EEaiECAkACQAJAAkAgAygCAEEBaw4CAQIACyACIAEQizIMAgsgAigCACABEPcXDAELIAIoAgAgARCcGAsgAEEMaiABEN4xIABBEGogARCKMgvfBAIKfwR+IwBBEGsiAiQAAkAgACgCACIALQAQQQFHDQAgACgCAEECRw0AENIMGkHkueQAKAIARQRAQeS55ABBfzYCACAAQShqIQhB6LnkACgCACIEQQRrIQlB7LnkACgCACIFIAApAwgiC6dxIQMgC0IZiEL/AINCgYKEiJCgwIABfiENA0AgAiADIARqKQAAIgwgDYUiDkJ/hSAOQoGChIiQoMCAAX2DQoCBgoSIkKDAgH+DNwMIAkADQCACIAJBCGoQkCEgAigCAEUEQCAMIAxCAYaDQoCBgoSIkKDAgH+DUA0CQeS55ABBADYCAAwFCyAJIAIoAgQgA2ogBXEiBkECdGsoAgAiASAARwRAIAsgASkDCFINASAALQAQIAEtABBHDQEgACgCGCABKAIYRw0BIAAoAiAiByABKAIgRw0BIAggByABQShqIAcQ0ChFDQELC0GAASEAIAQgBkECdEECdSIBaiIDKQAAIgsgC0IBhoNCgIGChIiQoMCAf4N6p0EDdiAEIAFBCGsgBXFqIgEpAAAiCyALQgGGg0KAgYKEiJCgwIB/g3mnQQN2akEHTQRAQfC55ABB8LnkACgCAEEBajYCAEH/ASEACyADIAA6AAAgAUEIaiAAOgAAQfS55ABB9LnkACgCAEEBazYCACAEQQAgBmtBAnRqQQRrKAIAIQBB5LnkAEHkueQAKAIAQQFqNgIAIAAgACgCACIBQQFrNgIAIAFBAUYEQCAAIAAoAiAQjScLDAMLIAMgCkEIaiIKaiAFcSEDDAALAAtBpIDCABDVHQALIAJBEGokAAvbBAIHfwJ+IwBBsAJrIgIkACACQQhqEMYaIAIpAxAhCSACKQMIIQogASgC+AQoAsgCIQMgAkIENwIoIAJCADcCICACQoCAgIDAADcCGCADQQBIBEAgAkEBNgLcASACQZydxAA2AtgBIAJCATcC5AEgAkHuADYCmAIgAkH0nMQANgKUAiACIAJBlAJqNgLgASACQdgBakGUnsQAEJImAAsgAkEwaiIEQQA2AgAgAkEYaiIFIAMQyycgAkEkaiADEMsnIAJB8AFqIAQoAgA2AgAgAkHoAWogAkEoaikCADcDACACQeABaiACQSBqIgQpAgA3AwAgAiACKQIYNwPYASACQawCaiIGQQA2AgAgAkGkAmoiB0IENwIAIAJBnAJqIghCADcCACACQoCAgIDAADcClAIgAkGUAmogAxDLJyACQaACaiADEMsnIAJBjAJqIAYoAgA2AgAgAkGEAmogBykCADcCACACQfwBaiAIKQIANwIAIARBuLXjACkDADcDACACIAIpApQCNwL0ASACQQA2AsQBIAJCgICAgBA3ArwBIAJBADYCrAEgAkKAgICAwAA3AqQBIAJCBDcCnAEgAkIANwKUASACQoCAgIDAADcCjAEgAkGwteMAKQMANwMYIAIgCTcDMCACIAo3AyggAkHIAGogAkHYAWoiA0E4EIEJGiACQQA2ArgBIAJCgICAgMAANwOwASACQQA2AsgBIAJBADYCiAEgAkIANwOAASACQQA2AjggAiABNgLYASACIAU2AtwBIAMQ3QIgACAFQcABEIEJGiACQbACaiQAC68EAgR/AX4jAEEgayIDJAAgA0EQaiABIAIoAgwiBUEAEMACAkACQCADLQAQQQRGDQAgAykDECIHQv8Bg0IEUQ0AIAAgBzcCAAwBCwJAAkACQAJAIAVFDQAgA0EQaiABIAUQrSUgAy0AEEEERg0AIAMpAxAiB0L/AYNCBFINAQsgAi0AGA0BDAILIAAgBzcCAAwCCyADQQA2AhAgA0EIaiABIANBEGpBu/LgAEEHEPMOAkAgAy0ACEEERwRAIAMpAwgiB0L/AYNCBFINAQsgA0EQaiABENcSIAMtABBBBEYNASADKQMQIgdC/wGDQgRRDQEgACAHNwIADAILIAAgBzcCAAwBCyADQQA2AhAgA0EIaiABIANBEGogAi0AGUECdCIEQbyS5ABqKAIAIARBsJLkAGooAgAQ8w4CQAJAAkAgAy0ACEEERwRAIAMpAwgiB0L/AYNCBFINAQsgAigCBCEEIAIoAggiBkUNASAEKAIAQQFrQQNPDQEgAS0ATQ0CIANBEGogARDXEiADLQAQQQRGDQIgAykDECIHQv8Bg0IEUQ0CIAAgBzcCAAwDCyAAIAc3AgAMAgsgA0EQaiABENcSIAMtABBBBEYNACADKQMQIgdC/wGDQgRRDQAgACAHNwIADAELIANBEGogASAFIAIoAhAgBCAGEPwEAkAgAy0AEEEERwRAIAMpAxAiB0L/AYNCBFINAQsgAEEEOgAADAELIAAgBzcCAAsgA0EgaiQAC9IEAgZ/An4jAEHgAWsiAiQAIAEoAhgiBSgCFCIDBEAgBSgCECEEIANBDGwhAwNAIAAgBCgCABDRKSAEQQxqIQQgA0EMayIDDQALCyAAQSxqIQQCQCABLQAUQQJHBEAgACgCMBCFGCEDIAJBNGoiBiAEQQhqKAIANgIAIAJBCGpBuLXjACkDACIINwMAIAJBEGoiB0GwteMAKQMAIgk3AwAgAkEYaiAINwMAIAIgADYCICACIAM2AiQgAkEBOgA5IAJBAToAKCACIAQpAgA3AiwgAiAJNwMAIAIgACgBOjYBOiACIAAtADg6ADggAiABQQMQtxEgAigCMBCFGCEAIAJBtAFqIAYoAgA2AgAgAkGIAWogCDcDACACQZABaiIBIAk3AwAgAkGYAWogCDcDACACIAA2AqQBIAJBAToAuQEgAkEBOgCoASACIAIpAiw3AqwBIAIgCTcDgAEgAiACKAE6NgG6ASACIAItADg6ALgBIAIgAjYCoAEgAkGAAWoiACAFEIoFIAAQoQogARCrCiACEKEKIAcQqwoMAQsgACgCMBCFGCEBIAJBtAFqIARBCGooAgA2AgAgAkGIAWpBuLXjACkDACIINwMAIAJBkAFqIgNBsLXjACkDACIJNwMAIAJBmAFqIAg3AwAgAiAANgKgASACIAE2AqQBIAJBAToAuQEgAkEBOgCoASACIAQpAgA3AqwBIAIgCTcDgAEgAiAAKAE6NgG6ASACIAAtADg6ALgBIAJBgAFqIgAgBRCKBSAAEKEKIAMQqwoLIAJB4AFqJAALrgwCEn8EfiMAQSBrIggkACAIIAI2AhAgCCABNwMIIAEgAhD/JSEVIAAoAghFBEAjAEEwayIEJAACfwJAAkAgBEEgakEQAn8CQAJAIAAoAgwiDEF/Rg0AIAwgACgCBCIHIAdBAWoiCUEDdiICQQdsIAdBCEkbIgpBAXZJDQMgDCAKIAogDEkbIgJBB0kNASACQf7///8BSw0AQX8gAkEDdEEIakEHbkEBa2d2QQFqDAILEK8kAAtBBEEIIAJBA0kbCxDMECAEKAIkIgcgBCgCICICRQ0CGiAEKAIoIQkgBCgCLCEDIAJB/wEgB0EJahCHDyEGIAQgAzYCHCAEIAk2AhggBCAHNgIUIAQgBjYCECAEQQg2AgwgBkEIaiEOIAAoAgAiAykDAEJ/hUKAgYKEiJCgwIB/gyEBIAMhAgNAAkAgDARAA0AgAUIAUg0CIAVBCGohBSACKQMIQn+FQoCBgoSIkKDAgH+DIQEgAkEIaiECDAALAAsgBCAAKAIMIgI2AhwgBCAJIAJrNgIYQQAhAgNAIAJBEEcEQCAAIAJqIgMoAgAhBSADIAIgBGpBEGoiAygCADYCACADIAU2AgAgAkEEaiECDAELCyAEKAIUIgJFDQMgBEEgakEQIAJBAWoQvhQgBCgCECAEKAIoayAEKAIgIAQoAiQQ6ysMAwsgBiAGIAcgAyABeqdBA3YgBWoiDRDwKCIWEOcUIgpqIBZCGYinIhE6AAAgDiAKQQhrIAdxaiAROgAAIAYgCkEEdGtBEGsiCkEIaiADIA1BBHRrQRBrIg1BCGopAAA3AAAgCiANKQAANwAAIAxBAWshDCABQgF9IAGDIQEMAAsACyACIAlBB3FBAEdqIQUgACgCACIDIQIDQCAFBEAgAiACKQMAIgFCf4VCB4hCgYKEiJCgwIABgyABQv/+/fv379+//wCEfDcDACACQQhqIQIgBUEBayEFDAEFAkAgCUEITwRAIAMgCWogAykAADcAAAwBCyADQQhqIAMgCRCgMhoLIANBCGohDiADIQUDQAJAAkAgBiAJRwRAIAMgBmoiDS0AAEGAAUcNAiADIAZBBHRrQRBrIREDQCAGIAcgAyAGEPAoIgGncSILayADIAcgARDnFCICIAtrcyAHcUEISQ0CIAIgA2oiCy0AACALIAFCGYinIgs6AAAgDiACQQhrIAdxaiALOgAAIAMgAkEEdGshC0H/AUcEQEFwIQIDQCACRQ0CIAIgBWoiDy0AACETIA8gAiALaiIPLQAAOgAAIA8gEzoAACACQQFqIQIMAAsACwsgDUH/AToAACAOIAZBCGsgB3FqQf8BOgAAIAtBEGsiAkEIaiARQQhqKQAANwAAIAIgESkAADcAAAwCCyAAIAogDGs2AggMBQsgDSABQhmIpyICOgAAIA4gBkEIayAHcWogAjoAAAsgBkEBaiEGIAVBEGshBQwACwALAAsAC0EACxogBEEwaiQACyAVQhmIIhdCgYKEiJCgwIABfiEYIAAoAgQiBSAVp3EhAiAAKAIAIQQCQAJAA0AgAiAEaikAACIWIBiFIgFCf4UgAUKBgoSIkKDAgAF9g0KAgYKEiJCgwIB/gyEBA0AgAVBFBEAgCEEIaiAAKAIAIAF6p0EDdiACaiAFcUEEdGtBEGsQwygNAyABQgF9IAGDIQEMAQsLIBZCgIGChIiQoMCAf4MhFUEBIQMgEkEBRwRAIBV6p0EDdiACaiAFcSEQIBVCAFIhAwsgFSAWQgGGg1AEQCACIBRBCGoiFGogBXEhAiADIRIMAQsLIAQgEGosAABBAE4EQCAEKQMAQoCBgoSIkKDAgH+DeqdBA3YhEAsgACgCACICIBBqIgMtAAAhEiAIKQMIIRUgCCgCECEFIAMgF6ciAzoAACACIAAoAgQgEEEIa3FqQQhqIAM6AAAgACAAKAIMQQFqNgIMIAAgACgCCCASQQFxazYCCCACIBBBBHRrIgBBCGsgBTYCACAAQRBrIBU3AwAMAQsgCCkDCCIVQgODQgBSDQAgCCAVpyIANgIcIAhBHGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0AIAAgACgCIBCNJwsgCEEgaiQAIAFCAFIL8wQBAn8jAEEQayICJAACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQEELIAAoAgBBgICAgHhzIgMgA0ESTxtBAWsOEQECAwQFBgcICQoLDA0ODxARAAsgAiAAQQRqNgIMIAFBrs7gAEECIAJBDGpB6AAQlQ4MEQsgAiAAQQRqNgIMIAFBsM7gAEEEIAJBDGpBwwAQlQ4MEAsgAiAAQQRqNgIMIAFBtM7gAEEHIAJBDGpBoQsQlQ4MDwsgASgCFEG7zuAAQQsgASgCGCgCDBEDAAwOCyABKAIUQcbO4ABBCyABKAIYKAIMEQMADA0LIAEoAhRB0c7gAEELIAEoAhgoAgwRAwAMDAsgAiAAQQRqNgIMIAFB3M7gAEEOIAJBDGpBPhCVDgwLCyACIABBBGo2AgwgAUHqzuAAQRIgAkEMakE+EJUODAoLIAIgAEEEajYCDCABQfzO4ABBECACQQxqQT4QlQ4MCQsgASgCFEGMz+AAQRUgASgCGCgCDBEDAAwICyABKAIUQaHP4ABBDiABKAIYKAIMEQMADAcLIAIgADYCDCABQa/P4ABBDSACQQxqQaUBEJUODAYLIAEoAhRBvM/gAEEVIAEoAhgoAgwRAwAMBQsgASgCFEHRz+AAQRUgASgCGCgCDBEDAAwECyABKAIUQebP4ABBFSABKAIYKAIMEQMADAMLIAEoAhRB+8/gAEENIAEoAhgoAgwRAwAMAgsgAiAAQQRqNgIMIAFBiNDgAEEYIAJBDGpBogsQlQ4MAQsgAiAAQQRqNgIMIAFBoNDgAEENIAJBDGpBowsQlQ4LIAJBEGokAAuYBAEJfyMAQRBrIgckACAAIANB/wFxakEsai0AACIGQQJqIQwgACgCCCEDIAAoAgQhAANAAkACfwJAAkACQAJAAkACQAJAAkACQAJAIAAgAyACQdiKxAAQqCgoAgAiBEH/AXFB/gFrDgICAAELIAAgAyACIAxqQdiLxAAQqCgoAgAiBEEBRyABcg0DDAoLIAdBCGogACADIAJBAmoiCEHoisQAEOAkIARBAnZBP3EgBEEDcUEAR2oiBCAHKAIMIgVLDQMgBygCCCEJIARBAnQhCkF/IQUDQCAKRQ0CIAVBAWohBSAGIAkoAgAiC0H/AXFGDQUgBiALQQh2Qf8BcUYNBiAGIAtBEHZB/wFxRg0HIAlBBGohCSAKQQRrIQogBiALQRh2Rw0ACyAAIAMgBCAIaiAFQQJ0akEDakGIi8QAEKgoKAIADAgLIAYgACADIAJBjLTAABCoKC0AAUYNBgsgAUUNB0EADAYLIARBACAEQQFHGwwFCyAEIAVB+IrEABDpFgALIAAgAyAEIAhqIAVBAnRqQbiLxAAQqCgoAgAMAwsgACADIAQgCGogBUECdGpBAWpBqIvEABCoKCgCAAwCCyAAIAMgBCAIaiAFQQJ0akECakGYi8QAEKgoKAIADAELIAAgAyACQQJqQciLxAAQqCgoAgALIAdBEGokAA8LIAAgAyACQQFqQeiLxAAQqCgoAgAhAgwACwAL1AQBCX8jAEEQayIGJAACQAJAAkACQAJAAkACQAJAIAEoAgAiB0EBaw4IAQIDBwcEBwcACyAAQYACaiABLQAIIAEtAAkQvQ8MBgsgASgCCCICRQ0FIAJBA3QhAiABKAIEQQVqIQMgAEGAAmohBQNAIAUgA0EBay0AACADLQAAEL0PIANBCGohAyACQQhrIgINAAsMBQtBiYThAEEoQezKwwAQ1SEACyAAQYACaiEEAkAgASgCCCIIaCICQQZrQQxPBEBBASACdCICQQNxDQQgAkEMcUUNASAEIAAtANACIgIgAhC9DwwECwNAQf8BIANB//8DcSICIAJB/wFNGyEJIAJBtJ/EAGohCgNAIAkgAiIFRg0EIAJBAWohAiAKLQAAIAVBtZ/EAGotAABGDQALIAQgAyAFEL0PIAIhAwwACwALIAQgBCkDAEKA7ACENwMADAILIABBAToA0QIMAgsgBCADQf8BEL0PCyAAIAAoAqgCIAhyNgKoAgsgACgCwAIiA0H/////B0kEQEEAIQICQAJAAkACQCAHQQFrDgQAAQMCAwsgASgCCEEDdCECDAILQYAIIQIMAQsgASgCCEECdCECCyAAIAAoArACIAJqNgKwAiAAKAK4AiADRgRAIABBuAJqEN4gCyAAIANBAWo2AsACIAAoArwCIANBFGxqIgAgASkCADcCACAAQQhqIAFBCGopAgA3AgAgAEEQaiABQRBqKAIANgIAIAZBEGokACADDwsgBiADrTcDCEHAguEAQSsgBkEIakHMysMAQfzKwwAQsRQAC9kOAhR/A34jAEEQayINJAAgDSABNwMAIAEQ/SchGSAAKAIIRQRAAkACQAJAAkAgACgCDCIHQX9GDQACQCAAAn8CQAJAIAAoAgQiCSAJQQFqIgxBA3YiA0EHbCIOIAlBCEkbIgZBAXYgB00EQCAHIAYgBiAHSRsiA0EHSQ0BIANB/v///wFLDQVBfyADQQN0QQhqQQduQQFrZ3YiA0H+////AEsNBSADQQFqIQMMBAsgACgCACEEIAMgDEEHcUEAR2oiCARAIAQhAwNAIAMgAykDACIBQn+FQgeIQoGChIiQoMCAAYMgAUL//v379+/fv/8AhHw3AwAgA0EIaiEDIAhBAWsiCA0ACwsgDEEITwRAIAQgDGogBCkAADcAAAwCCyAEQQhqIAQgDBCgMhogDA0BQQAMAgtBBEEIIANBA0kbIQMMAgsgBEEIaiELIARBEGshEyAEIQZBACEDA0ACQCAEIAMiBWoiDC0AAEGAAUcNACATIANBBHRrIRQgBCADQX9zQQR0aiERAkADQCAJIBQpAwAQzBkiAadB3cvdnnlsIAFCIIinakHdy92eeWxBD3ciD3EiECEIIAQgEGopAABCgIGChIiQoMCAf4MiGFAEQEEIIQMDQCADIAhqIQogA0EIaiEDIAQgCSAKcSIIaikAAEKAgYKEiJCgwIB/gyIYUA0ACwsgD60hASAEIBh6p0EDdiAIaiAJcSIDaiwAAEEATgRAIAQpAwBCgIGChIiQoMCAf4N6p0EDdiEDCyADIBBrIAUgEGtzIAlxQQhJDQEgAyAEaiIKLQAAIAogAUIZiKciCjoAACALIANBCGsgCXFqIAo6AABB/wFHBEAgBCADQQR0ayEQQXAhAwNAIAMgBmoiCi0AACEPIAogAyAQaiIKLQAAOgAAIAogDzoAACADQQFqIgMNAAsMAQsLIAxB/wE6AAAgCyAJIAVBCGtxakH/AToAACAEIANBf3NBBHRqIgNBCGogEUEIaikAADcAACADIBEpAAA3AAAMAQsgDCABQhmIpyIDOgAAIAsgCSAFQQhrcWogAzoAAAsgBUEBaiEDIAZBEGshBiAFIAlHDQALIAkgDiAJQQhJGwsgB2s2AggMBAsgA0EEdCIFIANBCGoiBGoiBiAFSSAGQfn///8HT3INAEGgv+QALQAAGiAGEIQBIgZFDQEgBSAGakH/ASAEEIcPIQsgA0EBayIOIANBA3ZBB2wgA0EJSRshEyAHRQRAIAAoAgAhBgwDCyALQQhqIRQgACgCACIGQRBrIRAgBikDAEJ/hUKAgYKEiJCgwIB/gyEXIAYhAyAHIQQDQCAXUARAA0AgEUEIaiERIAMpAwggA0EIaiEDQoCBgoSIkKDAgH+DIgFCgIGChIiQoMCAf1ENAAsgAUKAgYKEiJCgwIB/hSEXCyALIBAgF3qnQQN2IBFqIg9BBHRrKQMAEMwZIgGnQd3L3Z55bCABQiCIp2pB3cvdnnlsQQ93IgogDnEiBWopAABCgIGChIiQoMCAf4MiGFAEQEEIIQgDQCAFIAhqIQUgCEEIaiEIIAsgBSAOcSIFaikAAEKAgYKEiJCgwIB/gyIYUA0ACwsgF0IBfSAXgyEXIAsgGHqnQQN2IAVqIA5xIghqLAAAQQBOBEAgCykDAEKAgYKEiJCgwIB/g3qnQQN2IQgLIAggC2ogCkEZdiIFOgAAIBQgCEEIayAOcWogBToAACALIAhBf3NBBHRqIgpBCGogBiAPQX9zQQR0aiIFQQhqKQAANwAAIAogBSkAADcAACAEQQFrIgQNAAsMAgsQryQLAAsgACAONgIEIAAgCzYCACAAIBMgB2s2AgggCUUNACAGIAxBBHQiA2sgAyAJakEJakEIEKIYCwsgACgCACIHQRBrIQYgGUIZiCIXQoGChIiQoMCAAX4hGCAZpyEEIAAoAgQhBQJAAkADQCAHIAQgBXEiBGopAAAiGSAYhSIBQn+FIAFCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiAVBFBEADQCANIAYgAXqnQQN2IARqIAVxIgNBBHRrEMgPDQMgAUIBfSABgyIBUEUNAAsLIBlCgIGChIiQoMCAf4MhAUEBIQMgFUEBRwRAIAF6p0EDdiAEaiAFcSESIAFCAFIhAwsgASAZQgGGg1AEQCAEIBZBCGoiFmohBCADIRUMAQsLIAcgEmosAAAiBEEATgRAIAcgBykDAEKAgYKEiJCgwIB/g3qnQQN2IhJqLQAAIQQLIA0pAwAhASAHIBJqIBenIgM6AAAgByAFIBJBCGtxakEIaiADOgAAIAAgACgCCCAEQQFxazYCCCAAIAAoAgxBAWo2AgwgByASQQR0ayIAQQhrIAI2AgAgAEEQayABNwMADAELIAdBACADa0EEdGpBCGsgAjYCACANKQMAIgFCA4NCAFINACANIAGnIgI2AgwgDUEMahDQBiACIAIoAgAiAEEBazYCACAAQQFHDQAgAiACKAIgEI0nCyANQRBqJAALgwQCCH8DfiMAQSBrIgMkACADIAI2AhAgAyABNwMIIAEgAhD/JSEBIABBARCNKiABQhmIIgxCgYKEiJCgwIABfiENIAAoAgAiBUEQayEKIAGnIQIgACgCBCEIAkACQANAIAUgAiAIcSICaikAACILIA2FIgFCf4UgAUKBgoSIkKDAgAF9g0KAgYKEiJCgwIB/gyIBUEUEQANAIANBCGogCiABeqdBA3YgAmogCHFBBHRrELIrDQMgAUIBfSABgyIBUEUNAAsLIAtCgIGChIiQoMCAf4MhAUEBIQYgBEEBRwRAIAF6p0EDdiACaiAIcSEHIAFCAFIhBgsgASALQgGGg1AEQCACIAlBCGoiCWohAiAGIQQMAQsLQQAhAiAFIAdqLAAAIgRBAE4EQCAFIAUpAwBCgIGChIiQoMCAf4N6p0EDdiIHai0AACEECyADKQMIIQEgAygCECEGIAUgB2ogDKciCToAACAFIAggB0EIa3FqQQhqIAk6AAAgACAAKAIIIARBAXFrNgIIIAAgACgCDEEBajYCDCAFIAdBBHRrIgBBCGsgBjYCACAAQRBrIAE3AwAMAQtBASECIAMpAwgiAUIDg0IAUg0AIAMgAaciADYCHCADQRxqENAGIAAgACgCACIEQQFrNgIAIARBAUcNACAAIAAoAiAQjScLIANBIGokACACC7oEAgV/AX4jAEEwayIDJAAgAS0AjgMhBiABQShqIgIQoRMaIAFB/ABBwAAgASgCKEElRhtqKAIAIQQCQCACEKETIgVFBEAgASgC2AIhASADQQA6ABggASABIANBGGoQ7xshASAAQgA3AwAgACABNgIIDAELAkACQAJAAkACQAJAAkAgBSgCACIFQQJHBEACQCAFQR9HBEAgBUEkRw0BIAEgASkDQDcDeCABKAIoIAFBJTYCKEEkRw0FIAEoAiwhASAAQgA3AwAgACABNgIIDAoLIAZBAXENAgsgAyACELceIAMoAgQhBCADKAIAIANBwgA6ABggBCADQRhqEO8bIQQgAhChEyICRQ0HIAIoAgBBJEYNAgwHCyABIAEpA0A3A3ggASgCKCABQSU2AihBAkcNAyADQRBqIAFBOGopAwA3AwAgAyABKQMwNwMIIANBCGoQ8BQhByABKAJ8IQIMBQsgASABKAJEIgI2AnwgASABKAJANgJ4IAEoAiggAUElNgIoQR9GBEAgASkDMCEHDAULQYmE4QBBKEGkkOAAENUhAAsgASABKQNANwN4IAEoAiggAUElNgIoQSRHDQIgASABKAIsEMUQDAQLQYmE4QBBKEGEkOAAENUhAAtBiYThAEEoQZSQ4AAQ1SEAC0GJhOEAQShBtJDgABDVIQALIAAgBzcDACAAIAQgAiACIARJGzYCDCAAIAQgAiACIARLGzYCCAwBCyAAQgA3AwAgACAENgIICyADQTBqJAALkQQCBH8BfiMAQUBqIgIkAAJAAkACQAJAAkAgASgCyAIiA0ElRgRAIAFByAJqIQMgASgC8AIhBCABQSU2AvACAkAgBEElRwRAIAJBPGogAUGUA2ooAgA2AgAgAkE0aiABQYwDaikCADcCACACQSxqIAFBhANqKQIANwIAIAJBJGogAUH8AmopAgA3AgAgAiAENgIYIAIgASkC9AI3AhwMAQsgAkEYaiABQShqEDIgAygCAEEl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QCACIAQQngIgBEE4aiEEIANBOGsiAw0ACwsgAhChCiACQRBqEKsKCyAAIAg6ADkgACAHOgA6IAJB4ABqJAALjwQBAn8CQAJAAkACQAJAAkACQCAAKAIAQQFrDgcAAQIGBgMEBQsgASAAQQhqENIkIAAoAiAgARCxDg8LIAAoAgQiACgCCCICRQ0EIAAoAgQiACACQThsaiECA0AgACABENwKIAAoAjAiAwRAIAMgARDjAgsgAEE4aiIAIAJHDQALDAQLIAAoAgQiACgCCCICRQ0DIAAoAgQiACACQThsaiECA0AgACABENwKIAAoAjAiAwRAIAMgARDjAgsgAEE4aiIAIAJHDQALDAMLIAEgACgCBCIAENIkIAAoAigiAkUNAiAAKAIkIgAgAkEwbGohAgNAIAAoAgBFBEAgASAAQQhqENIkCyAAQShqKAIAIgMEQCADIAEQ4wILIABBMGoiACACRw0ACwwCCyAAKAIEIgAoAgBFBEAgASAAQQhqENIkCyAALQBFIgJBA0YNASACQQJGBEAgACgCKCICRQ0CIAAoAiQhACACQThsIQIDQCAAIAEQ6gkgAEE4aiEAIAJBOGsiAg0ACwwCCyABIABBKGoQ0iQgACgCQCIALQAlQQJHBEADQCABIABBCGoQ0iQgACgCICIALQAlQQJHDQALCyAAQQhqKAIAIgJFDQEgAEEEaigCACEAIAJBOGwhAgNAIAAgARDqCSAAQThqIQAgAkE4ayICDQALDAELIAEgAEEIahDSJCAAKAIgIAEQvAULC54EAgV/AX4jAEEgayIDJAAgAUEoaiIFEKETGiABQfwAQcAAIAEoAihBJUYbaigCACEEAkAgBRChEyICRQRAIAEoAtgCIQEgA0EAOgAIIAEgASADQQhqEO8bIQEgAEIANwMAIAAgATYCCAwBCwJAAkACQCACKAIAQSRGBEAgASABKQNANwN4IAEoAiggAUElNgIoQSRHDQEgASgCLCEBIABCADcDACAAIAE2AggMBAsgASgCKCECIAFBJTYCKCABIAEpA0A3A3ggA0EUaiABQTRqKQIANwIAIANBHGogAUE8aigCADYCACADIAEpAiw3AgwgAyACNgIIIANBCGoiBhCODiABKAJ8IQIgBRChExoCQCACIAEoAnwiAiABKAJAIAEoAihBJUYbRwRAIANB3QA6AAgg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wIB/g1AEQCAHIAlBCGoiCWogBnEhBwwCBUIAIQMMAwsACwtBgAEhAiAIIAtBBXRBBXUiB2oiCSkAACIDIANCAYaDQoCBgoSIkKDAgH+DeqdBA3YgCCAHQQhrIAZxaiIGKQAAIgMgA0IBhoNCgIGChIiQoMCAf4N5p0EDdmpBB00EQCABIAEoAghBAWo2AghB/wEhAgsgCSACOgAAIAZBCGogAjoAACABIAEoAgxBAWs2AgwgCEEAIAtrQQV0aiIBQQhrKAIAIQYgAUEQaykDACEDIAFBIGspAwAiBFAiASAEQgODQgBSckUEQCAKIASnIgE2AgwgCkEMahDQBiABIAEoAgAiAkEBazYCACACQQFHDQEgASABKAIgEI0nDAELIAFFDQBCACEDCyAAIAY2AgggACADNwMAIApBEGokAAuFBAECfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgBBAWsOEgoKCwECCgoDBAUGCwsHDAwICQALIABBBGogARDbIw8LIABBDGogARCLLQ8LIABBKGogARCAMg8LIABBBGogARDiMSAAQQhqIAEQgDIgACgCFEUNBiAAQRRqIAEQgDIPCyAAQRBqIAEQ4jEgACgCDEEYbCECIAAoAgghAANAIAJFDQYgAEEUaiABEIstIAAgARDbIyACQRhrIQIgAEEYaiEADAALAAsgAEEEaiABEOIxDwsgACgCBCIAQcgAaiABENsjIABB4ABqIQICQAJAAkAgACgCAEEHaw4CAQIACyAAIAEQ+RwLIABBKGogARDbIwsgAigCAEGAgICAeEYNAyACIAEQ2yMPCwJAIAAoAgQiA0ECRg0AIABBCGohAiADQQFxRQRAIAIgARCBMgwBCyACIAEQ4jELIABBGGogARCLLSAAQRxqIAEQiy0gAEEMaiABEIAyDwsgAEEIaiABEG0PCyAAQQRqIAEQ4jELDwsgAEEEaiABEOIxIABBCGogARCAMg8LIABBBGoiA0EEaiECAkACQAJAAkAgAygCAEEBaw4CAQIACyACIAEQgTIMAgsgAigCACABENMbDAELIAIoAgAgARD5HAsgAEEMaiABEOIxIABBEGogARCAMgvBBAEBfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgAiACgCAA4TEhIBAgME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IAJBAUcNACAAIAAoAiAQjScLIAEoAhgiAUEEaigCACEAIAEoAggiAgRAA0AgACgCACIDEJ4BIANBwABBCBCiGCAAQQxqIQAgAkEBayICDQALIAFBBGooAgAhAAsgASgCACAAEMAqIAFBEGooAgAhACABKAIUIgIEQANAIAAQuAIgAEHYAGohACACQQFrIgINAAsgAUEQaigCACEACyABKAIMIAAQxiogASgCMCIABEAgABCeASAAQcAAQQgQohgLIAEoAjQiAwRAIANBBGooAgAhACADKAIIIgIEQANAIAAQgRMgAEEwaiEAIAJBAWsiAg0ACyADQQRqKAIAIQALIAMoAgAgABDCKiADQRRBBBCiGAsgASgCOCIDBEAgA0EEaigCACEAIAMoAggiAgRAA0AgACgCACIGEOoCIAZB4ABBCBCiGCAAQQRqIQAgAkEBayICDQALIANBBGooAgAhAAsgAygCACAAEMMqIANBFEEEEKIYCyABQRxqKAIAIQYgASgCICIIBEADQCAGIAVBBHRqIgAoAgAiAhCeASACQcAAQQgQohggACgCDCIDBEAgA0EEaiIJKAIAIQAgAygCCCICBEADQCAAKAIAIgoQ6gIgCkHgAEEIEKIYIABBBGohACACQQFrIgINAAsgCSgCACEACyADKAIAIAAQwyogA0EUQQQQohgLIAVBAWoiBSAIRw0ACyABQRxqKAIAIQYLIAEoAhggBhC/KiABQcAAQQQQohggBEEQaiQADAYLIwBBEGsiAyQAAkAgAEEQaiIBLQAUQQJGDQAgASkDACILQgODQgBSDQAgAyALpyIANgIIIANBCGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0AIAAgACgCIBCNJwsgASgCGCIBQQRqKAIAIQAgASgCCCICBEADQCAAENsIIABBQGshACACQQFrIgINAAsgAUEEaigCACEACyABKAIAIAAQwSogAUEQaigCACEAIAEoAhQiAgRAA0AgACgCACIFEJ4BIAVBwABBCBCiGCAAQQxqIQAgAkEBayICDQALIAFBEGooAgAhAAsgASgCDCAAEMAqIAEoAhgiBUGAgICAeEcEQCABQRxqKAIAIQAgASgCICICBEADQCAAEIUDIABBMGohACACQQFrIgINAAsgASgCGCEFIAFBHGooAgAhAAsgBSAAEMIqCyAB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ACIFQgJWBH9BIAUgAkEANgIwIAWnQQFxIAVCAlFyDQJBGAsgAmpBADYCAAwBCwwMCyACQcgAaiECIANByABrIQMMAAsACyAAQQhqIAEQ3gYMBgsgAEEANgIgDwsgACgCBCABEIozDwsgACgCBEEANgI4DwsgAEEQaiABEOkKDwsgACgCBCABEIozDwsCQAJAIAAoAghBAWsOAgECAAsgAC0AJEECRwRAIABBADYCIAsgACgCKCABEKAHDwsgAC0AJEECRwRAIABBADYCIAsgACgCKCABEPsdDwsPCyAAKAIMQdAAbCEDIAAoAgghAgNAIAMEQEEYIQQCQAJAAkACQEICIAIpAwAiBUICfSIGIAZCAlobp0EBaw4CAgEACyACKAIIDQJBICEEDAELIAWnQQFxRQRAIAJBADYCGAsgAikDICIFQgJRIAWnQQFxcg0BQTghBAsgAiAEakEANgIACyACQdAAaiECIANB0ABrIQMMAQsLDAELIABBCGogARDfCw8LIABBHGogARDpCguQBAEEfyMAQTBrIgEkAAJAAkACQAJAAkACQCAAKAIAIgRBCGsOBAABAgMFCyAAKAIEIgIoAiQoAgBBBk0NBAwDCyAAKAIEIgIoAiwoAgBBBk0NAwwCCyAAKAIEIgIoAggNAQwCCyAAKAIEIgIoAghFDQELQQgQpykhAyAAEPkgNgIEIABBADYCACADIAI2AgQgAyAENgIAIAFBATYCECABIAM2AgwgAUEBNgIIA0AgASABQQhqEM4eAkACQAJAAkACQCABKAIAIgJBDEcEQCABIAEoAgQiADYCGCABIAI2AhQgAkEIaw4EAQIDBAULIAFBCGoQvi0MBgsgACgCJCEAEPkgIQIgACgCBCEDIAAgAjYCBCAAKAIAIQIgAEEANgIAIAFBCGogAiADEKwiDAMLIAAoAiwhABD5ICECIAAoAgQhAyAAIAI2AgQgACgCACECIABBADYCACABQQhqIAIgAxCsIgwCCyAAKAIIIQIgAEEANgIIIAFBADYCLCABIAA2AiQgASACNgIoIAEgACgCBCIANgIcIAEgACACQQN0ajYCICABQQhqIAFBHGoQwQwMAQsgACgCCCECIABBADYCCCABQQA2AiwgASAANgIkIAEgAjYCKCABIAAoAgQiADYCHCABIAAgAkEDdGo2AiAgAUEIaiAB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/AECQCAaLQBIIgVBAkcgBUEBcUVxRQRAIBotAEIiBUECRiAFQQFxcg0BC0ECISsgDEECRg0CIBsgGygCACIFQQFrNgIAIAVBAUcNAiACQfABahC1EwwCCyACQQA2AoACQQMhBSACQQM6AJQCIAJBiAJqENoiIAJBmAJqIhQQmAogAkEDOgCUAiACQQA2AoACAkAgAi0A/AEiAUEDRgRAIAJB8AFqENoiDAELIAIoAvABIQcgAigC9AEhAyACKAL4ASEIIAEhBQsgAigChAIhASACQYgCaiIOENoiIAYgBigCACItQQFqNgIAIAIgBToAlAIgAiAINgKQAiACIAM2AowCIAIgBzYCiAIgAiABNgKEAiACQQA2AoACIC1BAEgNDSAFQf4BcUECRwRAIAcgBygCACIBQQFqNgIAIAFBAEgNDgsgDhDaIiAUEIoPQQAhKwwBCyACQY8aai0AACEKIAJBlxpqLQAAIRIgAkGfGmotAAAhCyACQacaai0AACEHIAItAKQaIdsBIAIoAqAaIRAgAi0AnBohNSACKAKYGiEvIAItAJQaITkgAigCkBohDiACLQCMGiEwIAIoAogaIRQgAigChBohCCACKAKAGiHaASACKAL8GSHZASACKAL4GSHYASACKAL0GSEdIAIoAvAZIS0gAigC7BkhJiACLwCNGiACLwCVGiACLwCdGiACLwClGiFAIAkQig8gQCAHQRB0ciEMIAtBEHRyIRsgEkEQdHIhBSAKQRB0ciEHDAELIAJB5wFqIAJBggJqLQAAOgAAIAIgBToA5AEgAiAINgLgASACIAM2AtwBIAIgBzYC2AEgAiArNgLQASACIAIvAIACOwDlASACIAY2AugBQQMhAwJAIBotAEciAUECRyABQQFxRXENACAaKAJYIgEoAixFBEAgAS8AGUGzBnFFDQELIBotAEIhCyAaLQBJIQggGigCHCEFIBooAhghBiACQeQUaiI5EJgKIAJBAToA4RQgAigCtAEiCiAKKAIAIgFBAWo2AgAgAkGAgMAAIAUgBkECRiIFGyIUNgLcFCACIAggCEECRnJBAXEiBzoA4hQgAiALIAtBAkZyQQFxIgs6AOAUIAJBASAGIAUbIgg2AtgUIAFBAEgNDCACIAo2AvQfAn8gB0UEQEEAIQEgAkGAAmpBAEGAAhCHDxoDQCACQYACaiIF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IbcCIAIoApAKIbgCIAItAIwKIbkCIAIoAogKIboCIAItAIQKIbsCIAIoAoAKIbwCIAItAPwJIb0CIAIoAvgJIb4CIAItAPQJIb8CIAIoAvAJIcACIAItAOwJIcECIAIoAugJIcICIAItAOQJIcMCIAIoAuAJIcQCIAItANwJIcUCIAIoAtgJIcYCIAItANQJIccCIAIoAtAJIcgCIAItAMwJIckCIAIoAsgJIcoCIAItAMQJIcsCIAIoAsAJIcwCIAItALwJIc0CIAIoArgJIc4CIAItALQJIc8CIAIoArAJIdACIAItAKwJIdECIAIoAqgJIdICIAItAKQJIdMCIAIoAqAJIdQCIAItAJwJIdUCIAIoApgJIdYCIAItAJQJIdcCIAIoApAJIdgCIAItAIwJIdkCIAIoAogJIdoCIAItAIQJIdsCIAIoAoAJIdwCIAItAPwIId0CIAIoAvgIId4CIAItAPQIId8CIAIoAvAIIeACIAItAOwIIeECIAIoAugIIeICIAItAOQIIeMCIAIoAuAIIeQCIAItANwIIeUCIAIoAtgIIeYCIAItANQIIecCIAIoAtAIIegCIAItAMwIIekCIAIoAsgIIeoCIAItAMQIIesCIAIoAsAIIewCIAItALwIIe0CIAIoArgIIe4CIAItALQIIe8CIAIoArAIIfACIAItAKwIIfECIAIoAqgIIfICIAItAKQIIfMCIAIoAqAIIfQCIAItAJwIIfUCIAIoApgIIfYCIAItAJQIIfcCIAIoApAIIfgCIAItAIwIIfkCIAIoAogIIfoCIAItAIQIIfsCIAIoAoAIIfwCIAItAPwHIf0CIAIoAvgHIf4CIAItAPQHIf8CIAIoAvAHIYADIAItAOwHIYEDIAIoAugHIYIDIAItAOQHIYMDIAIoAuAHIYQDIAItANwHIYUDIAIoAtgHIYYDIAItANQHIYcDIAIoAtAHIYgDIAItAMwHIYkDIAIoAsgHIYoDIAItAMQHIYsDIAIoAsAHIYwDIAItALwHIY0DIAIoArgHIY4DIAItALQHIY8DIAIoArAHIZADIAItAKwHIZEDIAIoAqgHIZIDIAItAKQHIZMDIAIoAqAHIZQDIAItAJwHIZUDIAIoApgHIZYDIAItAJQHIZcDIAIoApAHIZgDIAItAIwHIZkDIAIoAogHIZoDIAItAIQHIZsDIAIoAoAHIZwDIAItAPwGIZ0DIAIoAvgGIZ4DIAItAPQGIZ8DIAIoAvAGIaADIAItAOwGIaEDIAIoAugGIaIDIAItAOQGIaMDIAIoAuAGIaQDIAItANwGIaUDIAIoAtgGIaYDIAItANQGIacDIAIoAtAGIagDIAItAMwGIakDIAIoAsgGIaoDIAItAMQGIasDIAIoAsAGIawDIAItALwGIa0DIAIoArgGIa4DIAItALQGIa8DIAIoArAGIbADIAItAKwGIbEDIAIoAqgGIbIDIAItAKQGIbMDIAIoAqAGIbQDIAItAJwGIbUDIAIoApgGIbYDIAItAJQGIbcDIAIoApAGIbgDIAItAIwGIbkDIAIoAogGIboDIAItAIQGIbsDIAIoAoAGIbwDIAItAPwFIb0DIAIoAvgFIb4DIAItAPQFIb8DIAIoAvAFIcADIAItAOwFIcEDIAIoAugFIcIDIAItAOQFIcMDIAIoAuAFIcQDIAItANwFIcUDIAIoAtgFIcYDIAItANQFIccDIAIoAtAFIcgDIAItAMwFIckDIAIoAsgFIcoDIAItAMQFIcsDIAIoAsAFIcwDIAItALwFIc0DIAIoArgFIc4DIAItALQFIc8DIAIoArAFIdADIAItAKwFIdEDIAIoAqgFIdIDIAItAKQFIdMDIAIoAqAFIdQDIAItAJwFIdUDIAIoApgFIdYDIAItAJQFIdcDIAIoApAFIdgDIAItAIwFIdkDIAIoAogFIdoDIAItAIQFIdsDIAIoAoAFIdwDIAItAPwEId0DIAIoAvgEId4DIAItAPQEId8DIAIoAvAEIeADIAItAOwEIeEDIAIoAugEIeIDIAItAOQEIeMDIAIoAuAEIeQDIAItANwEIeUDIAIoAtgEIeYDIAItANQEIecDIAIoAtAEIegDIAItAMwEIekDIAIoAsgEIeoDIAItAMQEIesDIAIoAsAEIewDIAItALwEIe0DIAIoArgEIe4DIAItALQEIe8DIAIoArAEIfADIAItAKwEIfEDIAIoAqgEIfIDIAItAKQEIfMDIAIoAqAEIfQDIAItAJwEIfUDIAIoApgEIfYDIAItAJQEIfcDIAIoApAEIfgDIAItAIwEIfkDIAIoAogEIfoDIAItAIQEIfsDIAIoAoAEIfwDIAItAPwDIf0DIAIoAvgDIf4DIAItAPQDIf8DIAIoAvADIYAEIAItAOwDIYEEIAIoAugDIYIEIAItAOQDIYMEIAIoAuADIYQEIAItANwDIYUEIAIoAtgDIYYEIAItANQDIYcEIAIoAtADIYgEIAItAMwDIYkEIAIoAsgDIYoEIAItAMQDIYsEIAIoAsADIYwEIAItALwDIY0EIAIoArgDIY4EIAItALQDIY8EIAIoArADIZAEIAItAKwDIZEEIAIoAqgDIZIEIAItAKQDIZMEIAIoAqADIZQEIAItAJwDIZUEIAIoApgDIZYEIAItAJQDIZcEIAIoApADIZgEIAItAIwDIZkEIAIoAogDIZoEIAItAIQDIZsEIAIoAoADIZwEIAItAPwCIZ0EIAIoAvgCIZ4EIAItAPQCIZ8EIAIoAvACIaAEIAItAOwCIaEEIAIoAugCIaIEIAItAOQCIaMEIAIoAuACIaQEIAItANwCIaUEIAIoAtgCIaYEIAItANQCIacEIAIoAtACIagEIAItAMwCIdsBIAIoAsgCIRAgAi0AxAIhNSACKALAAiEvIAItALwCITkgAigCuAIhDiACLQC0AiEwIAIoArACIRQgAigCrAIhCCACKAKoAiHaASACKAKkAiHZASACKAKgAiHYASACKAKcAiEdIAIoApgCIS0gAigClAIhJiACKAKQAiEDIAIoAowCIUALIPcEQgNRDQAgAi8A6RkgAi0A6xlBEHRyIT0gAi8A4RogAkHjGmotAABBEHRyIT8gAi8A2RogAkHbGmotAABBEHRyITcgAi8A0RogAkHTGmotAABBEHRyIdwBIAIvAMkaIAJByxpqLQAAQRB0ciHdASACLwDBGiACQcMaai0AAEEQdHIh3gEgAi8AuRogAkG7GmotAABBEHRyId8BIAIvALEaIAJBsxpqLQAAQRB0ciHgASACLwCpGiACQasaai0AAEEQdHIh4QEgAi8AoRogAkGjGmotAABBEHRyIeIBIAIvAJkaIAJBmxpqLQAAQRB0ciHjASACLwCRGiACQZMaai0AAEEQdHIh5AEgAi8AiRogAkGLGmotAABBEHRyIeUBIAIvAIEaIAJBgxpqLQAAQRB0ciHmASACLwD5GSACQfsZai0AAEEQdHIh5wEgAi8A8RkgAkHzGWotAABBEHRyIegBIAIvAOUBIAJB5wFqLQAAQRB0ciHpASACLwDdASACQd8Bai0AAEEQdHIh6gEgAi8A1QEgAkHXAWotAABBEHRyIesBIAIvAM0BIAJBzwFqLQAAQRB0ciHsASACLwDFASACQccBai0AAEEQdHIh7QEgAi8AvQEgAkG/AWotAABBEHRyIe4BIAIvAGUgAkHnAGotAABBEHRyIe8BIAIvAF0gAkHfAGotAABBEHRyIfABIAIoAqAcIaoEIAIoApwcIasEIAIoApgcIawEIAIoApQcIa0EIAIoApAcIa4EIAIoAowcIa8EIAIoAogcIbAEIAIoAoQcIbEEIAIoAoAcIbIEIAIoAvwbIbMEIAIoAvgbIbQEIAIoAvQbIbUEIAIoAvAbIbYEIAIoAuwbIbcEIAIoAugbIbgEIAIoAuQbIbkEIAIoAuAbIboEIAIoAtwbIbsEIAIoAtgbIbwEIAIoAtQbIb0EIAIoAtAbIb4EIAIoAswbIb8EIAIoAsgbIcAEIAIoAsQbIcEEIAIoAsAbIcIEIAIoArwbIcMEIAIoArgbIcQEIAIoArQbIcUEIAIoArAbIcYEIAIoAqwbIccEIAIoAqgbIcgEIAIoAqQbIckEIAIoAqAbIcoEIAIoApwbIcsEIAIoApgbIcwEIAIoApQbIc0EIAIoApAbIc4EIAIoAowbIc8EIAIoAogbIdAEIAIoAoQbIdEEIAIoAoAbIdIEIAIoAvwaIdMEIAIoAvgaIdQEIAIoAvQaIdUEIAIoAvAaIdYEIAIoAuwaIdcEIAIoAugaIdgEIAIoAuQaIdkEIAItAOAaIfEBIAIoAtwaIdoEIAItANgaIdsEIAIoAtQaIdwEIAItANAaId0EIAIoAswaId4EIAItAMgaId8EIAIoAsQaIeAEIAItAMAaIeEEIAIoArwaIeIEIAItALgaIeMEIAIoArQaIeQEIAItALAaIeUEIAIoAqwaIeYEIAItAKgaIecEIAIoAqQaIegEIAItAKAaIekEIAIoApwaIeoEIAItAJgaIesEIAIoApQaIewEIAItAJAaIe0EIAIoAowaIe4EIAItAIgaIe8EIAIoAoQaITMgAi0AgBoh9QEgAigC/Bkh+AEgAi0A+BkhFiACKAL0GSEcIAItAPAZIR4gAigC7BkhHyACLQDoGSEuIAIoAugBITEgAi0A5AEhNCACKALgASE2IAItANwBITggAigC2AEhvgEgAi0A1AEhIyACKALQASENIAItAMwBISEgAigCyAEhJyACLQDEASEVIAIoAsABIRcgAi0AvAEhGCACKAK4ASERIAIoArQBIfAEIAItAGQh8gEgAigCYCEPIAItAFwhGSACKAJYISwCQCAaKAJYIgYtACBBAnFFDQAgBi0AHEEBcQ0AIPcEQgJSDQILIBotAEQiAUECRiABQQFxcg0CDAMLICUgDDsARSAlIBs7AD0gJSAFOwA1ICUgBzsALSAlINsBOgBEICUgEDYCQCAlIDU6ADwgJSAvNgI4ICUgOToANCAlIA42AjAgJSAwOgAsICUgFDYCKCAlIAg2AiQgJSDaATYCICAlINkBNgIcICUg2AE2AhggJSAdNgIUICUgLTYCECAlICY2AgwgJSADNgIIICUgQDYCBCAlQccAaiAMQRB2OgAAICVBP2ogG0EQdjoAACAlQTdqIAVBEHY6AAAgJUEvaiAHQRB2OgAADAYLQaC/5AAtAAAaQagNEIQBIgFFDQMgASA/OwDVCyABIDc7AM0LIAEg3AE7AMULIAEg3QE7AL0LIAEg3gE7ALULIAEg3wE7AK0LIAEg4AE7AKULIAEg4QE7AJ0LIAEg4gE7AJULIAEg4wE7AI0LIAEg5AE7AIULIAEg5QE7AP0KIAEg5gE7APUKIAEg5wE7AO0KIAEg6AE7AOUKIAEgPTsA3QogASDpATsA1QogASDqATsAzQogASDrATsAxQogASDsATsAvQogASDtATsAtQogASDuATsArQogASDvATsApQogASDwATsAnQogASA7OwCVCiABIDw7AI0KIAEgwAE7AIUKIAEgwQE7AP0JIAEgwgE7APUJIAEgwwE7AO0JIAEgxAE7AOUJIAEgxQE7AN0JIAEgxgE7ANUJIAEgxwE7AM0JIAEgyAE7AMUJIAEgyQE7AL0JIAEgygE7ALUJIAEgywE7AK0JIAEgzAE7AKUJIAEgzQE7AJ0JIAEgzgE7AJUJIAEgzwE7AI0JIAEg0AE7AIUJIAEg0QE7AP0IIAEg0gE7APUIIAEg0wE7AO0IIAEg1AE7AOUIIAEg1QE7AN0IIAEg1gE7ANUIIAEg1wE7AM0IIAEgQTsAxQggASBCOwC9CCABIEM7ALUIIAEgRDsArQggASBFOwClCCABIEY7AJ0IIAEgRzsAlQggASBIOwCNCCABIEk7AIUIIAEgSjsA/QcgASBLOwD1ByABIEw7AO0HIAEgTTsA5QcgASBOOwDdByABIE87ANUHIAEgUDsAzQcgASBROwDFByABIFI7AL0HIAEgUzsAtQcgASBUOwCtByABIFU7AKUHIAEgVjsAnQcgASBXOwCVByABIFg7AI0HIAEgWTsAhQcgASBaOwD9BiABIFs7APUGIAEgXDsA7QYgASBdOwDlBiABIF47AN0GIAEgXzsA1QYgASBgOwDNBiABIGE7AMUGIAEgYjsAvQYgASBjOwC1BiABIGQ7AK0GIAEgZTsApQYgASBmOwCdBiABIGc7AJUGIAEgaDsAjQYgASBpOwCFBiABIGo7AP0FIAEgazsA9QUgASBsOwDtBSABIG07AOUFIAEgbjsA3QUgASBvOwDVBSABIHA7AM0FIAEgcTsAxQUgASByOwC9BSABIHM7ALUFIAEgdDsArQUgASB1OwClBSABIHY7AJ0FIAEgdzsAlQUgASB4OwCNBSABIHk7AIUFIAEgejsA/QQgASB7OwD1BCABIHw7AO0EIAEgfTsA5QQgASB+OwDdBCABIH87ANUEIAEggAE7AM0EIAEggQE7AMUEIAEgggE7AL0EIAEggwE7ALUEIAEghAE7AK0EIAEghQE7AKUEIAEghgE7AJ0EIAEghwE7AJUEIAEgiAE7AI0EIAEgiQE7AIUEIAEgigE7AP0DIAEgiwE7APUDIAEgjAE7AO0DIAEgjQE7AOUDIAEgjgE7AN0DIAEgjwE7ANUDIAEgkAE7AM0DIAEgkQE7AMUDIAEgkgE7AL0DIAEgkwE7ALUDIAEglAE7AK0DIAEglQE7AKUDIAEglgE7AJ0DIAEglwE7AJUDIAEgmAE7AI0DIAEgmQE7AIUDIAEgmgE7AP0CIAEgmwE7APUCIAEgnAE7AO0CIAEgnQE7AOUCIAEgngE7AN0CIAEgnwE7ANUCIAEgoAE7AM0CIAEgoQE7AMUCIAEgogE7AL0CIAEgowE7ALUCIAEgpAE7AK0CIAEgpQE7AKUCIAEgpgE7AJ0CIAEgpwE7AJUCIAEgqAE7AI0CIAEgqQE7AIUCIAEgqgE7AP0BIAEgqwE7APUBIAEgrAE7AO0BIAEgrQE7AOUBIAEgrgE7AN0BIAEgrwE7ANUBIAEgsAE7AM0BIAEgsQE7AMUBIAEgsgE7AL0BIAEgswE7ALUBIAEgtAE7AK0BIAEgtQE7AKUBIAEgtgE7AJ0BIAEgtwE7AJUBIAEguAE7AI0BIAEguQE7AIUBIAEgugE7AH0gASC7ATsAdSABILwBOwBtIAEgvQE7AGUgASD0ATsAXSABIAw7AFUgASAbOwBNIAEgBTsARSABQQA6AKQNIAEg8wE2AqANIAEg8AQ2ApwNIAEgGjYCmA0gASCqBDYClA0gASCrBDYCkA0gASCsBDYCjA0gASCtBDYCiA0gASCuBDYChA0gASCvBDYCgA0gASCwBDYC/AwgASCxBDYC+AwgASCyBDYC9AwgASCzBDYC8AwgASC0BDYC7AwgASC1BDYC6AwgASC2BDYC5AwgASC3BDYC4AwgASC4BDYC3AwgASC5BDYC2AwgASC6BDYC1AwgASC7BDYC0AwgASC8BDYCzAwgASC9BDYCyAwgASC+BDYCxAwgASC/BDYCwAwgASDABDYCvAwgASDBBDYCuAwgASDCBDYCtAwgASDDBDYCsAwgASDEBDYCrAwgASDFBDYCqAwgASDGBDYCpAwgASDHBDYCoAwgASDIBDYCnAwgASDJBDYCmAwgASDKBDYClAwgASDLBDYCkAwgASDMBDYCjAwgASDNBDYCiAwgASDOBDYChAwgASDPBDYCgAwgASDQBDYC/AsgASDRBDYC+AsgASDSBDYC9AsgASDTBDYC8AsgASDUBDYC7AsgASDVBDYC6AsgASDWBDYC5AsgASDXBDYC4AsgASDYBDYC3AsgASDZBDYC2AsgASDxAToA1AsgASDaBDYC0AsgASDbBDoAzAsgASDcBDYCyAsgASDdBDoAxAsgASDeBDYCwAsgASDfBDoAvAsgASDgBDYCuAsgASDhBDoAtAsgASDiBDYCsAsgASDjBDoArAsgASDkBDYCqAsgASDlBDoApAsgASDmBDYCoAsgASDnBDoAnAsgASDoBDYCmAsgASDpBDoAlAsgASDqBDYCkAsgASDrBDoAjAsgASDsBDYCiAsgASDtBDoAhAsgASDuBDYCgAsgASDvBDoA/AogASAzNgL4CiABIPUBOgD0CiABIPgBNgLwCiABIBY6AOwKIAEgHDYC6AogASAeOgDkCiABIB82AuAKIAEgLjoA3AogASAxNgLYCiABIDQ6ANQKIAEgNjYC0AogASA4OgDMCiABIL4BNgLICiABICM6AMQKIAEgDTYCwAogASAhOgC8CiABICc2ArgKIAEgFToAtAogASAXNgKwCiABIBg6AKwKIAEgETYCqAogASDyAToApAogASAPNgKgCiABIBk6AJwKIAEgLDYCmAogASD5AToAlAogASD6ATYCkAogASD7AToAjAogASD8ATYCiAogASD9AToAhAogASD+ATYCgAogASD/AToA/AkgASCAAjYC+AkgASCBAjoA9AkgASCCAjYC8AkgASCDAjoA7AkgASCEAjYC6AkgASCFAjoA5AkgASCGAjYC4AkgASCHAjoA3AkgASCIAjYC2AkgASCJAjoA1AkgASCKAjYC0AkgASCLAjoAzAkgASCMAjYCyAkgASCNAjoAxAkgASCOAjYCwAkgASCPAjoAvAkgASCQAjYCuAkgASCRAjoAtAkgASCSAjYCsAkgASCTAjoArAkgASCUAjYCqAkgASCVAjoApAkgASCWAjYCoAkgASCXAjoAnAkgASCYAjYCmAkgASCZAjoAlAkgASCaAjYCkAkgASCbAjoAjAkgASCcAjYCiAkgASCdAjoAhAkgASCeAjYCgAkgASCfAjoA/AggASCgAjYC+AggASChAjoA9AggASCiAjYC8AggASCjAjoA7AggASCkAjYC6AggASClAjoA5AggASCmAjYC4AggASCnAjoA3AggASCoAjYC2AggASCpAjoA1AggASCqAjYC0AggASCrAjoAzAggASCsAjYCyAggASCtAjoAxAggASCuAjYCwAggASCvAjoAvAggASCwAjYCuAggASCxAjoAtAggASCyAjYCsAggASCzAjoArAggASC0AjYCqAggASC1AjoApAggASC2AjYCoAggASC3AjoAnAggASC4AjYCmAggASC5AjoAlAggASC6AjYCkAggASC7AjoAjAggASC8AjYCiAggASC9AjoAhAggASC+AjYCgAggASC/AjoA/AcgASDAAjYC+AcgASDBAjoA9AcgASDCAjYC8AcgASDDAjoA7AcgASDEAjYC6AcgASDFAjoA5AcgASDGAjYC4AcgASDHAjoA3AcgASDIAjYC2AcgASDJAjoA1AcgASDKAjYC0AcgASDLAjoAzAcgASDMAjYCyAcgASDNAjoAxAcgASDOAjYCwAcgASDPAjoAvAcgASDQAjYCuAcgASDRAjoAtAcgASDSAjYCsAcgASDTAjoA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ayEqQQAhASAKISQCQANAIAEgBkYNASAJICpqLQAAICQtAABHBEAgASEGDAILICpBAWshKiAkQQFrISQgCSABQQFqIgFHDQALIAkhBgtBACEqQQEhASAGDQEMAwsLICAgBmsgIEHkvcQAEOgWAAsgICAGayEBIAYgIEsEQCABICBB1L3EABDoFgALIAZFDQAgAiAGNgKkFyACIAEgOmo2AqAXIAJBgAJqISQgAkGgF2ohCyMAQfADayIgJABBBCEBAkACQAJAAkADQCABQQxGDQEgASALaiABQQhqIQEoAgANAAsgJEECOgAMDAELAkAgCygCBCIJQQFGBEAgIEGAgICAeDYCCCAgIAsoAgAtAAA6AAwMAQsgIEEIaiALKAIAIAkQ+QMgICgCSCEqICAoAkQhBgJAICAoAkBBAXEEQCAGIQEMAQsgIEHEA2ogKkEAQQFBARCqDSAgKALEA0EBRg0DICAoAswDIgEgBiAqEIEJGgsgICkDMCH4BCAgKAI4IQogIEGYA2oiCyAgQQhqIgZBKBCBCRogIEHIA2ogC0EoEIEJGiAgQYOAgIB4NgIIIAZBBHIgIEHEA2pBLBCBCRogICAqNgJQICAgATYCTCAgQQE2AkggICAKNgJAICAg+AQ3AzgLICQgIEEIaiAJEMEHCyAgQfADaiQADAELICAoAsgDICAoAswDEKMvAAsgAi0AjAJBAkYNACACQfAZaiACQYgCaikCADcDACACIAIpAoACNwPoGSACLQD0GQ0BIAIoAugZIgEgASgCACIBQQFrNgIAIAFBAUcNACACQegZahC1EwsgAkHwEWoQyicMAQsgAikD8Bkh+AQgAi0A7BkhEiACKALoGSELIAIvAO0ZIQcgAi0A7xkhBiACQfARahDKJ0Ggv+QALQAAGkG4DRCEASIBRQ0CIAEgByAGQRB0ciIGOwCtDSABIPMEOwDdCyABID87ANULIAEgNzsAzQsgASDcATsAxQsgASDdATsAvQsgASDeATsAtQsgASDfATsArQsgASDgATsApQsgASDhATsAnQsgASDiATsAlQsgASDjATsAjQsgASDkATsAhQsgASDlATsA/QogASDmATsA9QogASDnATsA7QogASDoATsA5QogASA9OwDdCiABIOkBOwDVCiABIOoBOwDNCiABIOsBOwDFCiABIOwBOwC9CiABIO0BOwC1CiABIO4BOwCtCiABIO8BOwClCiABIPABOwCdCiABIDs7AJUKIAEgPDsAjQogASDAATsAhQogASDBATsA/QkgASDCATsA9QkgASDDATsA7QkgASDEATsA5QkgASDFATsA3QkgASDGATsA1QkgASDHATsAzQkgASDIATsAxQkgASDJATsAvQkgASDKATsAtQkgASDLATsArQkgASDMATsApQkgASDNATsAnQkgASDOATsAlQkgASDPATsAjQkgASDQATsAhQkgASDRATsA/QggASDSATsA9QggASDTATsA7QggASDUATsA5QggASDVATsA3QggASDWATsA1QggASDXATsAzQggASBBOwDFCCABIEI7AL0IIAEgQzsAtQggASBEOwCtCCABIEU7AKUIIAEgRjsAnQggASBHOwCVCCABIEg7AI0IIAEgSTsAhQggASBKOwD9ByABIEs7APUHIAEgTDsA7QcgASBNOwDlByABIE47AN0HIAEgTzsA1QcgASBQOwDNByABIFE7AMUHIAEgUjsAvQcgASBTOwC1ByABIFQ7AK0HIAEgVTsApQcgASBWOwCdByABIFc7AJUHIAEgWDsAjQcgASBZOwCFByABIFo7AP0GIAEgWzsA9QYgASBcOwDtBiABIF07AOUGIAEgXjsA3QYgASBfOwDVBiABIGA7AM0GIAEgYTsAxQYgASBiOwC9BiABIGM7ALUGIAEgZDsArQYgASBlOwClBiABIGY7AJ0GIAEgZzsAlQYgASBoOwCNBiABIGk7AIUGIAEgajsA/QUgASBrOwD1BSABIGw7AO0FIAEgbTsA5QUgASBuOwDdBSABIG87ANUFIAEgcDsAzQUgASBxOwDFBSABIHI7AL0FIAEgczsAtQUgASB0OwCtBSABIHU7AKUFIAEgdjsAnQUgASB3OwCVBSABIHg7AI0FIAEgeTsAhQUgASB6OwD9BCABIHs7APUEIAEgfDsA7QQgASB9OwDlBCABIH47AN0EIAEgfzsA1QQgASCAATsAzQQgASCBATsAxQQgASCCATsAvQQgASCDATsAtQQgASCEATsArQQgASCFATsApQQgASCGATsAnQQgASCHATsAlQQgASCIATsAjQQgASCJATsAhQQgASCKATsA/QMgASCLATsA9QMgASCMATsA7QMgASCNATsA5QMgASCOATsA3QMgASCPATsA1QMgASCQATsAzQMgASCRATsAxQMgASCSATsAvQMgASCTATsAtQMgASCUATsArQMgASCVATsApQMgASCWATsAnQMgASCXATsAlQMgASCYATsAjQMgASCZATsAhQMgASCaATsA/QIgASCbATsA9QIgASCcATsA7QIgASCdATsA5QIgASCeATsA3QIgASCfATsA1QIgASCgATsAzQIgASChATsAxQIgASCiATsAvQIgASCjATsAtQIgASCkATsArQIgASClATsApQIgASCmATsAnQIgASCnATsAlQIgASCoATsAjQIgASCpATsAhQIgASCqATsA/QEgASCrATsA9QEgASCsATsA7QEgASCtATsA5QEgASCuATsA3QEgASCvATsA1QEgASCwATsAzQEgASCxATsAxQEgASCyATsAvQEgASCzATsAtQEgASC0ATsArQEgASC1ATsApQEgASC2ATsAnQEgASC3ATsAlQEgASC4ATsAjQEgASC5ATsAhQEgASC6ATsAfSABILsBOwB1IAEgvAE7AG0gASC9ATsAZSABIPQBOwBdIAEgDDsAVSABIBs7AE0gASAFOwBFIAEg+AQ3A7ANIAEgEjoArA0gASALNgKoDSABQQA2AqQNIAEg8wE2AqANIAEg8AQ2ApwNIAEgGjYCmA0gASCqBDYAlA0gASCrBDYAkA0gASCsBDYAjA0gASCtBDYAiA0gASCuBDYAhA0gASCvBDYAgA0gASCwBDYA/AwgASCxBDYA+AwgASCyBDYA9AwgASCzBDYA8AwgASC0BDYA7AwgASC1BDYA6AwgASC2BDYA5AwgASC3BDYA4AwgASC4BDYA3AwgASC5BDYA2AwgASC6BDYA1AwgASC7BDYA0AwgASC8BDYAzAwgASC9BDYAyAwgASC+BDYAxAwgASC/BDYAwAwgASDABDYAvAwgASDBBDYAuAwgASDCBDYAtAwgASDDBDYAsAwgASDEBDYArAwgASDFBDYAqAwgASDGBDYApAwgASDHBDYAoAwgASDIBDYAnAwgASDJBDYAmAwgASDKBDYAlAwgASDLBDYAkAwgASDMBDYAjAwgASDNBDYAiAwgASDOBDYAhAwgASDPBDYAgAwgASDQBDYA/AsgASDRBDYA+AsgASDSBDYA9AsgASDTBDYA8AsgASDUBDYA7AsgASDVBDYA6AsgASDWBDYA5AsgASDXBDYA4AsgASDYBDoA3AsgASDZBDYA2AsgASDxAToA1AsgASDaBDYA0AsgASDbBDoAzAsgASDcBDYAyAsgASDdBDoAxAsgASDeBDYAwAsgASDfBDoAvAsgASDgBDYAuAsgASDhBDoAtAsgASDiBDYAsAsgASDjBDoArAsgASDkBDYAqAsgASDlBDoApAsgASDmBDYAoAsgASDnBDoAnAsgASDoBDYAmAsgASDpBDoAlAsgASDqBDYAkAsgASDrBDoAjAsgASDsBDYAiAsgASDtBDoAhAsgASDuBDYAgAsgASDvBDoA/AogASAzNgD4CiABIPUBOgD0CiABIPgBNgDwCiABIBY6AOwKIAEgHDYA6AogASAeOgDkCiABIB82AOAKIAEgLjoA3AogASAxNgDYCiABIDQ6ANQKIAEgNjYA0AogASA4OgDMCiABIL4BNgDICiABICM6AMQKIAEgDTYAwAogASAhOgC8CiABICc2ALgKIAEgFToAtAogASAXNgCwCiABIBg6AKwKIAEgETYAqAogASDyAToApAogASAPNgKgCiABIBk6AJwKIAEgLDYCmAogASD5AToAlAogASD6ATYCkAogASD7AToAjAogASD8ATYCiAogASD9AToAhAogASD+ATYCgAogASD/AToA/AkgASCAAjYC+AkgASCBAjoA9AkgASCCAjYC8AkgASCDAjoA7AkgASCEAjYC6AkgASCFAjoA5AkgASCGAjYC4AkgASCHAjoA3AkgASCIAjYC2AkgASCJAjoA1AkgASCKAjYC0AkgASCLAjoAzAkgASCMAjYCyAkgASCNAjoAxAkgASCOAjYCwAkgASCPAjoAvAkgASCQAjYCuAkgASCRAjoAtAkgASCSAjYCsAkgASCTAjoArAkgASCUAjYCqAkgASCVAjoApAkgASCWAjYCoAkgASCXAjoAnAkgASCYAjYCmAkgASCZAjoAlAkgASCaAjYCkAkgASCbAjoAjAkgASCcAjYCiAkgASCdAjoAhAkgASCeAjYCgAkgASCfAjoA/AggASCgAjYC+AggASChAjoA9AggASCiAjYC8AggASCjAjoA7AggASCkAjYC6AggASClAjoA5AggASCmAjYC4AggASCnAjoA3AggASCoAjYC2AggASCpAjoA1AggASCqAjYC0AggASCrAjoAzAggASCsAjYCyAggASCtAjoAxAggASCuAjYCwAggASCvAjoAvAggASCwAjYCuAggASCxAjoAtAggASCyAjYCsAggASCzAjoArAggASC0AjYCqAggASC1AjoApAggASC2AjYCoAggASC3AjoAnAggASC4AjYCmAggASC5AjoAlAggASC6AjYCkAggASC7AjoAjAggASC8AjYCiAggASC9AjoAhAggASC+AjYCgAggASC/AjoA/AcgASDAAjYC+AcgASDBAjoA9AcgASDCAjYC8AcgASDDAjoA7AcgASDEAjYC6AcgASDFAjoA5AcgASDGAjYC4AcgASDHAjoA3AcgASDIAjYC2AcgASDJAjoA1AcgASDKAjYC0AcgASDLAjoAzAcgASDMAjYCyAcgASDNAjoAxAcgASDOAjYCwAcgASDPAjoAvAcgASDQAjYCuAcgASDRAjoAtAcgASDSAjYCsAcgASDTAjoArAcgASDUAjYCqAcgASDVAjoApAcgASDWAjYCoAcgASDXAjoAnAcgASDYAjYCmAcgASDZAjoAlAcgASDaAjYCkAcgASDbAjoAjAcgASDcAjYCiAcgASDdAjoAhAcgASDeAjYCgAcgASDfAjoA/AYgASDgAjYC+AYgASDhAjoA9AYgASDiAjYC8AYgASDjAjoA7AYgASDkAjYC6AYgASDlAjoA5AYgASDmAjYC4AYgASDnAjoA3AYgASDoAjYC2AYgASDpAjoA1AYgASDqAjYC0AYgASDrAjoAzAYgASDsAjYCyAYgASDtAjoAxAYgASDuAjYCwAYgASDvAjoAvAYgASDwAjYCuAYgASDxAjoAtAYgASDyAjYCsAYgASDzAjoArAYgASD0AjYCqAYgASD1AjoApAYgASD2AjYCoAYgASD3AjoAnAYgASD4AjYCmAYgASD5AjoAlAYgASD6AjYCkAYgASD7AjoAjAYgASD8AjYCiAYgASD9AjoAhAYgASD+AjYCgAYgASD/AjoA/AUgASCAAzYC+AUgASCBAzoA9AUgASCCAzYC8AUgASCDAzoA7AUgASCEAzYC6AUgASCFAzoA5AUgASCGAzYC4AUgASCHAzoA3AUgASCIAzYC2AUgASCJAzoA1AUgASCKAzYC0AUgASCLAzoAzAUgASCMAzYCyAUgASCNAzoAxAUgASCO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IAogCUHoAGpBLBCBCRogCUGYAWoQqSsMBgsgCUHQAGogASkCACL3BDcDACAJIAkpAlgi+AQ3A0ggCUGAAWogCUHEAGooAgA2AgAgCUH4AGogCUE8aikCADcDACAGIAlBNGopAgA3AwAgCUGMAWog9wQ3AgAgCSAJKQIsNwNoIAkg+AQ3AoQBIAogCUHoAGpBLBCBCRogCUGYAWoQqSsgCSgCGCIBIAEoAgAiAUEBazYCACABQQFHDQUgCUEYahC1EwwFCyABIAkoAnAQoy8ACyAgIAtByNTDABDnFgALIAYgCSgCcBCjLwALIAkoAgwhICAJKAIQCyEBIApBCDYCACAJQQxqEOskICAgARCwLwsgCUHAAWokACA/QQh0IPEBciACKALoGUEIRg0FGiACQYgSaiACQYAaaigCADYCACACQYASaiACQfgZaikCADcDACACQfgRaiACQfAZaikCADcDACACIAIpAugZNwPwESACQeAUaiACQYwaaikCADcDACACIAIpAoQaNwPYFCAaKAIUIQsgGigCECEKIBotAEMhEiAaLQBBIQYgGi0AQCEBIAJBATsAqxcgAkEBOgCoFyACIAZBCiABGzoAqRcgAkECOgCtFyACIBIgEkECRnJBAXE6AKoXIAJBgICABSALIApBAkYiARutQiCGQQEgCiABG62ENwOgFyACQegZaiIBEJgKIAEgAkGgF2oQtA8hASMAQRBrIgYkACAGIAJB8BFqNgIMIAJBkAxqIAEgBkEMakEBEEcgBkEQaiQAIAEQig8gAigCkAxBKkYEQCACKAKUDCEJIBotAEUiAUECRiABQQFxcg0CIAJCAjcDgAJBAiEkQQAhPkEADAMLAkACQAJAIAJBkAxqIgYoAgAiAUEia0EAIAFBI2tBB0kbDgIAAQILIAZBBEEcIAFBIkYbaiIBKAIAIAFBBGooAgAQnS8MAQsgBkEIahDyKQsgAigC2BQiASABKAIAIgFBAWs2AgAgAUEBRgRAIAJB2BRqELUTCyACQfARahDhDSA/QQh0IPEBcgwFCyA/QQh0IPEBcgwECyACQYACaiESIwBBwAtrIiQkAAJAAkACQCAaLQBFIgFBAkcEQEICIfcEIAFBAXFFDQELICRBAzoArAYgJEIANwPgBSAkQYIEOwG0BiAkQQA2AogGICRBgISIEDYCsAYgJEEC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ByADIFY7AJ0HIAMgVzsAlQcgAyBYOwCNByADIFk7AIUHIAMgWjsA/QYgAyBbOwD1BiADIFw7AO0GIAMgXTsA5QYgAyBeOwDdBiADIF87ANUGIAMgYDsAzQYgAyBhOwDFBiADIGI7AL0GIAMgYzsAtQYgAyBkOwCtBiADIGU7AKUGIAMgZjsAnQYgAyBnOwCVBiADIGg7AI0GIAMgaTsAhQYgAyBqOwD9BSADIGs7APUFIAMgbDsA7QUgAyBtOwDlBSADIG47AN0FIAMgbzsA1QUgAyBwOwDNBSADIHE7AMUFIAMgcjsAvQUgAyBzOwC1BSADIHQ7AK0FIAMgdTsApQUgAyB2OwCdBSADIHc7AJUFIAMgeDsAjQUgAyB5OwCFBSADIHo7AP0EIAMgezsA9QQgAyB8OwDtBCADIH07AOUEIAMgfjsA3QQgAyB/OwDVBCADIIABOwDNBCADIIEBOwDFBCADIIIBOwC9BCADIIMBOwC1BCADIIQBOwCtBCADIIUBOwClBCADIIYBOwCdBCADIIcBOwCVBCADIIgBOwCNBCADIIkBOwCFBCADIIoBOwD9AyADIIsBOwD1AyADIIwBOwDtAyADII0BOwDlAyADII4BOwDdAyADII8BOwDVAyADIJABOwDNAyADIJEBOwDFAyADIJIBOwC9AyADIJMBOwC1AyADIJQBOwCtAyADIJUBOwClAyADIJYBOwCdAyADIJcBOwCVAyADIJgBOwCNAyADIJkBOwCFAyADIJoBOwD9AiADIJsBOwD1AiADIJwBOwDtAiADIJ0BOwDlAiADIJ4BOwDdAiADIJ8BOwDVAiADIKABOwDNAiADIKEBOwDFAiADIKIBOwC9AiADIKMBOwC1AiADIKQBOwCtAiADIKUBOwClAiADIKYBOwCdAiADIKcBOwCVAiADIKgBOwCNAiADIKkBOwCFAiADIKoBOwD9ASADIKsBOwD1ASADIKwBOwDtASADIK0BOwDlASADIK4BOwDdASADIK8BOwDVASADILABOwDNASADILEBOwDFASADILIBOwC9ASADILMBOwC1ASADILQBOwCtASADILUBOwClASADILYBOwCdASADILcBOwCVASADILgBOwCNASADILkBOwCFASADILoBOwB9IAMguwE7AHUgAyC8ATsAbSADIL0BOwBlIAMgIDsAXSADIAw7AFUgAyAbOwBNIAMgBTsARSADICo7AD0gAyA+OgCkDSADICQ2AqANIAMg8AQ2ApwNIAMgGjYCmA0gAyCqBDYClA0gAyCrBDYCkA0gAyCsBDYCjA0gAyCtBDYCiA0gAyCuBDYChA0gAyCvBDYCgA0gAyCwBDYC/AwgAyCxBDYC+AwgAyCyBDYC9AwgAyCzBDYC8AwgAyC0BDYC7AwgAyC1BDYC6AwgAyC2BDYC5AwgAyC3BDYC4AwgAyC4BDYC3AwgAyC5BDYC2AwgAyC6BDYC1AwgAyC7BDYC0AwgAyC8BDYCzAwgAyC9BDYCyAwgAyC+BDYCxAwgAyC/BDYCwAwgAyDABDYCvAwgAyDBBDYCuAwgAyDCBDYCtAwgAyDDBDYCsAwgAyDEBDYCrAwgAyDFBDYCqAwgAyDGBDYCpAwgAyDHBDYCoAwgAyDIBDYCnAwgAyDJBDYCmAwgAyDKBDYClAwgAyDLBDYCkAwgAyDMBDYCjAwgAyDNBDYCiAwgAyDOBDYChAwgAyDPBDYCgAwgAyDQBDYC/AsgAyDRBDYC+AsgAyDSBDYC9AsgAyDTBDYC8AsgAyDUBDYC7AsgAyDVBDYC6AsgAyDWBDYC5AsgAyDXBDYC4AsgAyAKNgLcCyADINkENgLYCyADIAY2AtQLIAMg2gQ2AtALIAMg2wQ6AMwLIAMg3AQ2AsgLIAMg3QQ6AMQLIAMg3gQ2AsALIAMg3wQ6ALwLIAMg4AQ2ArgLIAMg4QQ6ALQLIAMg4gQ2ArALIAMg4wQ6AKwLIAMg5AQ2AqgLIAMg5QQ6AKQLIAMg5gQ2AqALIAMg5wQ6AJwLIAMg6AQ2ApgLIAMg6QQ6AJQLIAMg6gQ2ApALIAMg6wQ6AIwLIAMg7AQ2AogLIAMg7QQ6AIQLIAMg7gQ2AoALIAMg7wQ6APwKIAMgMzYC+AogAyD1AToA9AogAyD4ATYC8AogAyAWOgDsCiADIBw2AugKIAMgHjoA5AogAyAfNgLgCiADIC46ANwKIAMgMTYC2AogAyA0OgDUCiADIDY2AtAKIAMgODoAzAogAyC+ATYCyAogAyAjOgDECiADIA02AsAKIAMgIToAvAogAyAnNgK4CiADIBU6ALQKIAMgFzYCsAogAyAYOgCsCiADIBE2AqgKIAMg8gE6AKQKIAMgDzYCoAogAyAZOgCcCiADICw2ApgKIAMg+QE6AJQKIAMg+gE2ApAKIAMg+wE6AIwKIAMg/AE2AogKIAMg/QE6AIQKIAMg/gE2AoAKIAMg/wE6APwJIAMggAI2AvgJIAMggQI6APQJIAMgggI2AvAJIAMggwI6AOwJIAMghAI2AugJIAMghQI6AOQJIAMghgI2AuAJIAMghwI6ANwJIAMgiAI2AtgJIAMgiQI6ANQJIAMgigI2AtAJIAMgiwI6AMwJIAMgjAI2AsgJIAMgjQI6AMQJIAMgjgI2AsAJIAMgjwI6ALwJIAMgkAI2ArgJIAMgkQI6ALQJIAMgkgI2ArAJIAMgkwI6AKwJIAMglAI2AqgJIAMglQI6AKQJIAMglgI2AqAJIAMglwI6AJwJIAMgmAI2ApgJIAMgmQI6AJQJIAMgmgI2ApAJIAMgmwI6AIwJIAMgnAI2AogJIAMgnQI6AIQJIAMgngI2AoAJIAMgnwI6APwIIAMgoAI2AvgIIAMgoQI6APQIIAMgogI2AvAIIAMgowI6AOwIIAMgpAI2AugIIAMgpQI6AOQIIAMgpgI2AuAIIAMgpwI6ANwIIAMgqAI2AtgIIAMgqQI6ANQIIAMgqgI2AtAIIAMgqwI6AMwIIAMgrAI2AsgIIAMgrQI6AMQIIAMgrgI2AsAIIAMgrwI6ALwIIAMgsAI2ArgIIAMgsQI6ALQIIAMgsgI2ArAIIAMgswI6AKwIIAMgtAI2AqgIIAMgtQI6AKQIIAMgtgI2AqAIIAMgtwI6AJwIIAMguAI2ApgIIAMguQI6AJQIIAMgugI2ApAIIAMguwI6AIwIIAMgvAI2AogIIAMgvQI6AIQIIAMgvgI2AoAIIAMgvwI6APwHIAMgwAI2AvgHIAMgwQI6APQHIAMgwgI2AvAHIAMgwwI6AOwHIAMgxAI2AugHIAMgxQI6AOQHIAMgxgI2AuAHIAMgxwI6ANwHIAMgyAI2AtgHIAMgyQI6ANQHIAMgygI2AtAHIAMgywI6AMwHIAMgzAI2AsgHIAMgzQI6AMQHIAMgzgI2AsAHIAMgzwI6ALwHIAMg0AI2ArgHIAMg0QI6ALQHIAMg0gI2ArAHIAMg0wI6AKwHIAMg1AI2AqgHIAMg1QI6AKQHIAMg1gI2AqAHIAMg1wI6AJwHIAMg2AI2ApgHIAMg2QI6AJQHIAMg2gI2ApAHIAMg2wI6AIwHIAMg3AI2AogHIAMg3QI6AIQHIAMg3gI2AoAHIAMg3wI6APwGIAMg4AI2AvgGIAMg4QI6APQGIAMg4gI2AvAGIAMg4wI6AOwGIAMg5AI2AugGIAMg5QI6AOQGIAMg5gI2AuAGIAMg5wI6ANwGIAMg6AI2AtgGIAMg6QI6ANQGIAMg6gI2AtAGIAMg6wI6AMwGIAMg7AI2AsgGIAMg7QI6AMQGIAMg7gI2AsAGIAMg7wI6ALwGIAMg8AI2ArgGIAMg8QI6ALQGIAMg8gI2ArAGIAMg8wI6AKwGIAMg9AI2AqgGIAMg9QI6AKQGIAMg9gI2AqAGIAMg9wI6AJwGIAMg+AI2ApgGIAMg+QI6AJQGIAMg+gI2ApAGIAMg+wI6AIwGIAMg/AI2AogGIAMg/QI6AIQGIAMg/gI2AoAGIAMg/wI6APwFIAMggAM2AvgFIAMggQM6APQFIAMgggM2AvAFIAMggwM6AOwFIAMghAM2AugFIAMghQM6AOQFIAMghgM2AuAFIAMghwM6ANwFIAMgiAM2AtgFIAMgiQM6ANQFIAMgigM2AtAFIAMgiwM6AMwFIAMgjAM2AsgFIAMgjQM6AMQFIAMgjgM2AsAFIAMgjwM6ALwFIAMgkAM2ArgFIAMgkQM6ALQFIAMgkgM2ArAFIAMgkwM6AKwFIAMglAM2AqgFIAMglQM6AKQFIAMglgM2AqAFIAMglwM6AJwFIAMgmAM2ApgFIAMgmQM6AJQFIAMgmgM2ApAFIAMgmwM6AIwFIAMgnAM2AogFIAMgnQM6AIQFIAMgngM2AoAFIAMgnwM6APwEIAMgoAM2AvgEIAMgoQM6APQEIAMgogM2AvAEIAMgowM6AOwEIAMgpAM2AugEIAMgpQM6AOQEIAMgpgM2AuAEIAMgpwM6ANwEIAMgqAM2AtgEIAMgqQM6ANQEIAMgqgM2AtAEIAMgqwM6AMwEIAMgrAM2AsgEIAMgrQM6AMQEIAMgrgM2AsAEIAMgrwM6ALwEIAMgsAM2ArgEIAMgsQM6ALQEIAMgsgM2ArAEIAMgswM6AKwEIAMgtAM2AqgEIAMgtQM6AKQEIAMgtgM2AqAEIAMgtwM6AJwEIAMguAM2ApgEIAMguQM6AJQEIAMgugM2ApAEIAMguwM6AIwEIAMgvAM2AogEIAMgvQM6AIQEIAMgvgM2AoAEIAMgvwM6APwDIAMgwAM2AvgDIAMgwQM6APQDIAMgwgM2AvADIAMgwwM6AOwDIAMgxAM2AugDIAMgxQM6AOQDIAMgxgM2AuADIAMgxwM6ANwDIAMgyAM2AtgDIAMgyQM6ANQDIAMgygM2AtADIAMgywM6AMwDIAMgzAM2AsgDIAMgzQM6AMQDIAMgzgM2AsADIAMgzwM6ALwDIAMg0AM2ArgDIAMg0QM6ALQDIAMg0gM2ArADIAMg0wM6AKwDIAMg1AM2AqgDIAMg1QM6AKQDIAMg1gM2AqADIAMg1wM6AJwDIAMg2AM2ApgDIAMg2QM6AJQDIAMg2gM2ApADIAMg2wM6AIwDIAMg3AM2AogDIAMg3QM6AIQDIAMg3gM2AoADIAMg3wM6APwCIAMg4AM2AvgCIAMg4QM6APQCIAMg4gM2AvACIAMg4wM6AOwCIAMg5AM2AugCIAMg5QM6AOQCIAMg5gM2AuACIAMg5wM6ANwCIAMg6AM2AtgCIAMg6QM6ANQCIAMg6gM2AtACIAMg6wM6AMwCIAMg7AM2AsgCIAMg7QM6AMQCIAMg7gM2AsACIAMg7wM6ALwCIAMg8AM2ArgCIAMg8QM6ALQCIAMg8gM2ArACIAMg8wM6AKwCIAMg9AM2AqgCIAMg9QM6AKQCIAMg9gM2AqACIAMg9wM6AJwCIAMg+AM2ApgCIAMg+QM6AJQCIAMg+gM2ApACIAMg+wM6AIwCIAMg/AM2AogCIAMg/QM6AIQCIAMg/gM2AoACIAMg/wM6APwBIAMggAQ2AvgBIAMggQQ6APQBIAMgggQ2AvABIAMggwQ6AOwBIAMghAQ2AugBIAMghQQ6AOQBIAMghgQ2AuABIAMghwQ6ANwBIAMgiAQ2AtgBIAMgiQQ6ANQBIAMgigQ2AtABIAMgiwQ6AMwBIAMgjAQ2AsgBIAMgjQQ6AMQBIAMgjgQ2AsABIAMgjwQ6ALwBIAMgkAQ2ArgBIAMgkQQ6ALQBIAMgkgQ2ArABIAMgkwQ6AKwBIAMglAQ2AqgBIAMglQQ6AKQBIAMglgQ2AqABIAMglwQ6AJwBIAMgmAQ2ApgBIAMgmQQ6AJQBIAMgmgQ2ApABIAMgmwQ6AIwBIAMgnAQ2AogBIAMgnQQ6AIQBIAMgngQ2AoABIAMgnwQ6AHwgAyCgBDYCeCADIKEEOgB0IAMgogQ2AnAgAyCjBDoAbCADIKQENgJoIAMgpQQ6AGQgAyCmBDYCYCADIAk6AFwgAyALNgJYIAMg2wE6AFQgAyAQNgJQIAMgNToATCADIC82AkggAyA5OgBEIAMgDjYCQCADIAE6ADwgAyAUNgI4IAMg2gE2AjAgAyDZATYCLCADINgBNgIoIAMgHTYCJCADIC02AiAgAyAmNgIcIAMgEjYCGCADIEA2AhQgAyArNgIQIAMg+QQ3AwggA0EBNgIEIANBATYCACADQacNaiA6QRB2OgAAIANBzwtqIDdBEHY6AAAgA0HHC2og3AFBEHY6AAAgA0G/C2og3QFBEHY6AAAgA0G3C2og3gFBEHY6AAAgA0GvC2og3wFBEHY6AAAgA0GnC2og4AFBEHY6AAAgA0GfC2og4QFBEHY6AAAgA0GXC2og4gFBEHY6AAAgA0GPC2og4wFBEHY6AAAgA0GHC2og5AFBEHY6AAAgA0H/Cmog5QFBEHY6AAAgA0H3Cmog5gFBEHY6AAAgA0HvCmog5wFBEHY6AAAgA0HnCmog6AFBEHY6AAAgA0HfCmogPUEQdjoAACADQdcKaiDpAUEQdjoAACADQc8KaiDqAUEQdjoAACADQccKaiDrAUEQdjoAACADQb8KaiDsAUEQdjoAACADQbcKaiDtAUEQdjoAACADQa8KaiDuAUEQdjoAACADQacKaiDvAUEQdjoAACADQZ8KaiDwAUEQdjoAACADQZcKaiA7QRB2OgAAIANBjwpqIDxBEHY6AAAgA0GHCmogwAFBEHY6AAAgA0H/CWogwQFBEHY6AAAgA0H3CWogwgFBEHY6AAAgA0HvCWogwwFBEHY6AAAgA0HnCWogxAFBEHY6AAAgA0HfCWogxQFBEHY6AAAgA0HXCWogxgFBEHY6AAAgA0HPCWogxwFBEHY6AAAgA0HHCWogyAFBEHY6AAAgA0G/CWogyQFBEHY6AAAgA0G3CWogygFBEHY6AAAgA0GvCWogywFBEHY6AAAgA0GnCWogzAFBEHY6AAAgA0GfCWogzQFBEHY6AAAgA0GXCWogzgFBEHY6AAAgA0GPCWogzwFBEHY6AAAgA0GHCWog0AFBEHY6AAAgA0H/CGog0QFBEHY6AAAgA0H3CGog0gFBEHY6AAAgA0HvCGog0wFBEHY6AAAgA0HnCGog1AFBEHY6AAAgA0HfCGog1QFBEHY6AAAgA0HXCGog1gFBEHY6AAAgA0HPCGog1wFBEHY6AAAgA0HHCGogQUEQdjoAACADQb8IaiBCQRB2OgAAIANBtwhqIENBEHY6AAAgA0GvCGogREEQdjoAACADQacIaiBFQRB2OgAAIANBnwhqIEZBEHY6AAAgA0GXCGogR0EQdjoAACADQY8IaiBIQRB2OgAAIANBhwhqIElBEHY6AAAgA0H/B2ogSkEQdjoAACADQfcHaiBLQRB2OgAAIANB7wdqIExBEHY6AAAgA0HnB2ogTUEQdjoAACADQd8HaiBOQRB2OgAAIANB1wdqIE9BEHY6AAAgA0HPB2ogUEEQdjoAACADQccHaiBRQRB2OgAAIANBvwdqIFJBEHY6AAAgA0G3B2ogU0EQdjoAACADQa8HaiBUQRB2OgAAIANBpwdqIFVBEHY6AAAgA0GfB2ogVkEQdjoAACADQZcHaiBXQRB2OgAAIANBjwdqIFhBEHY6AAAgA0GHB2ogWUEQdjoAACADQf8GaiBaQRB2OgAAIANB9wZqIFtBEHY6AAAgA0HvBmogXEEQdjoAACADQecGaiBdQRB2OgAAIANB3wZqIF5BEHY6AAAgA0HXBmogX0EQdjoAACADQc8GaiBgQRB2OgAAIANBxwZqIGFBEHY6AAAgA0G/BmogYkEQdjoAACADQbcGaiBjQRB2OgAAIANBrwZqIGRBEHY6AAAgA0GnBmogZUEQdjoAACADQZ8GaiBmQRB2OgAAIANBlwZqIGdBEHY6AAAgA0GPBmogaEEQdjoAACADQYcGaiBpQRB2OgAAIANB/wVqIGpBEHY6AAAgA0H3BWoga0EQdjoAACADQe8FaiBsQRB2OgAAIANB5wVqIG1BEHY6AAAgA0HfBWogbkEQdjoAACADQdcFaiBvQRB2OgAAIANBzwVqIHBBEHY6AAAgA0HHBWogcUEQdjoAACADQb8FaiByQRB2OgAAIANBtwVqIHNBEHY6AAAgA0GvBWogdEEQdjoAACADQacFaiB1QRB2OgAAIANBnwVqIHZBEHY6AAAgA0GXBWogd0EQdjoAACADQY8FaiB4QRB2OgAAIANBhwVqIHlBEHY6AAAgA0H/BGogekEQdjoAACADQfcEaiB7QRB2OgAAIANB7wRqIHxBEHY6AAAgA0HnBGogfUEQdjoAACADQd8EaiB+QRB2OgAAIANB1wRqIH9BEHY6AAAgA0HPBGoggAFBEHY6AAAgA0HHBGoggQFBEHY6AAAgA0G/BGogggFBEHY6AAAgA0G3BGoggwFBEHY6AAAgA0GvBGoghAFBEHY6AAAgA0GnBGoghQFBEHY6AAAgA0GfBGoghgFBEHY6AAAgA0GXBGoghwFBEHY6AAAgA0GPBGogiAFBEHY6AAAgA0GHBGogiQFBEHY6AAAgA0H/A2ogigFBEHY6AAAgA0H3A2ogiwFBEHY6AAAgA0HvA2ogjAFBEHY6AAAgA0HnA2ogjQFBEHY6AAAgA0HfA2ogjgFBEHY6AAAgA0HXA2ogjwFBEHY6AAAgA0HPA2ogkAFBEHY6AAAgA0HHA2ogkQFBEHY6AAAgA0G/A2ogkgFBEHY6AAAgA0G3A2ogkwFBEHY6AAAgA0GvA2oglAFBEHY6AAAgA0GnA2oglQFBEHY6AAAgA0GfA2oglgFBEHY6AAAgA0GXA2oglwFBEHY6AAAgA0GPA2ogmAFBEHY6AAAgA0GHA2ogmQFBEHY6AAAgA0H/AmogmgFBEHY6AAAgA0H3AmogmwFBEHY6AAAgA0HvAmognAFBEHY6AAAgA0HnAmognQFBEHY6AAAgA0HfAmogngFBEHY6AAAgA0HXAmognwFBEHY6AAAgA0HPAmogoAFBEHY6AAAgA0HHAmogoQFBEHY6AAAgA0G/AmogogFBEHY6AAAgA0G3AmogowFBEHY6AAAgA0GvAmogpAFBEHY6AAAgA0GnAmogpQFBEHY6AAAgA0GfAmogpgFBEHY6AAAgA0GXAmogpwFBEHY6AAAgA0GPAmogqAFBEHY6AAAgA0GHAmogqQFBEHY6AAAgA0H/AWogqgFBEHY6AAAgA0H3AWogqwFBEHY6AAAgA0HvAWogrAFBEHY6AAAgA0HnAWogrQFBEHY6AAAgA0HfAWogrgFBEHY6AAAgA0HXAWogrwFBEHY6AAAgA0HPAWogsAFBEHY6AAAgA0HHAWogsQFBEHY6AAAgA0G/AWogsgFBEHY6AAAgA0G3AWogswFBEHY6AAAgA0GvAWogtAFBEHY6AAAgA0GnAWogtQFBEHY6AAAgA0GfAWogtgFBEHY6AAAgA0GXAWogtwFBEHY6AAAgA0GPAWoguAFBEHY6AAAgA0GHAWoguQFBEHY6AAAgA0H/AGogugFBEHY6AAAgA0H3AGoguwFBEHY6AAAgA0Hv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ATYCKCAAIAU2AiQgACAGNgIgIABBFDYCACACIAIpAxg3AnAgACACKQJsNwIMIABBFGogAkH0AGopAgA3AgAgAEEcaiACQfwAaigCADYCACADQTBBCBCiGAwCCwALIABBGjYCACAAIAEpAwA3AwggAEEYaiABQRBqKQMANwMAIABBEGogAUEIaikDADcDAAsgAkGAAWokAAu9AwEDfyMAQTBrIgIkAAJAAkACQAJAIAEoAsgCIgNBJUYEQCABQcgCaiEDIAEoAvACIQQgAUElNgLwAgJAIARBJUcEQCACQSxqIAFBlANqKAIANgIAIAJBJGogAUGMA2opAgA3AgAgAkEcaiABQYQDaikCADcCACACQRRqIAFB/AJqKQIANwIAIAIgBDYCCCACIAEpAvQCNwIMDAELIAJBCGogAUEoahAyIAMoAgBBJUYNACADEOgDCyADIAIpAwg3AwAgA0EgaiACQShqKQMANwMAIANBGGogAkEgaikDADcDACADQRBqIAJBGGopAwA3AwAgA0EIaiACQRBqKQMANwMAIAMoAgAiA0ElRg0BCyADQQRGDQELIAJBCGogARDGAyAAQQhqIQEgAikDCFANASABIAIpAwg3AwAgAUEIaiACQRBqKQMANwMAIABCATcDAAwCCyACQQhqIAEQ7wIgAEEIaiEBIAACfiACKQMIUEUEQCABIAIpAwg3AwAgAUEIaiACQRBqKQMANwMAQgAMAQsgASACKAIQNgIAQgILNwMADAELIAEgAigCEDYCACAAQgI3AwALIAJBMGokAAvSAwEKfyMAQUBqIgIkACACQRBqIAEQuQhBASEGIAIoAhQhAwJAIAIoAhANACACQQhqIAMQrARBACEGIAIoAgghBSABQShqIgsQoRMiBEUNACAEKAIAQRBHDQACQAJAQQRBBBC5LiIERQ0AIAQgAzYCACACQQE2AiQgAiAENgIgIAJBATYCHCABQSxqIQcgAkEoakEEciEIQQQhCUEBIQoDQAJAIAsQoRMiAwRAIAMoAgBBEEYNAQsgASgCfCEBQQhBwAAQuS4iA0UNAiADQRk2AgAgAyACKQIcNwIEIANBDGogAkEkaigCADYCACADIAUgASABIAVJGzYCFCADIAUgASABIAVLGzYCEAwECyAIIAcpAgA3AgAgASgCKCEDIAFBJTYCKCABIAEpA0A3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ByAAKALMASEJIAAoAsgBIQogBCAALQDyAToAfSAEIANBBGsiC0EAIAMgC08bNgJ4IARBAjYCdCAEQZilwwA2AnAgBEECNgJsIARBmKXDADYCaCAEIAc2AmQgBCAGNgJcIARCmYCAgJADNwJQIARCxJOAgMAANwJIIARCgYCAgID9ADcCQCAEQQE6AHwgBEEBIAUgBUEDRhs2AmAgBEEBIAIgAkEDRhs2AlggBEE0aiICIAAtAPEBIAogCSAIEEMgBEELNgIwIARBAjYCGCAEQezO1gA2AhQgBEIBNwIgIAQgAjYCLCAEIARBLGo2AhwgASAEQRRqEIYsIQUgBCgCNCAEKAI4EJ0vCyAEQYABaiQAIAULywMCAn8BfiMAQSBrIgMkACADQRBqIAEgAigCGCIEQQAQwAICQAJAAkACQCADLQAQQQRHBEAgAykDECIFQv8Bg0IEUg0BCwJAAkACQAJAAkACQCAERQ0AIANBEGogASAEEK0lIAMtABBBBEYNACADKQMQIgVC/wGDQgRSDQELIANBEGogAigCICACKAIkIAEQkhYgAy0AEEEERwRAIAMpAxAiBUL/AYNCBFINAgsgAigCAA0CAkAgAigCECIERQ0AIANBEGogASAEQQFrQQAQwAIgAy0AEEEERg0AIAMpAxAiBUL/AYNCBFINBwsgA0EANgIQIANBCGogASADQRBqQd2c4ABBARDzDiADLQAIQQRHBEAgAykDCCIFQv8Bg0IEUg0ICyADQRBqIAJBCGogARC0GiADLQAQQQRGDQMgAykDECIFQv8Bg0IEUQ0DIAAgBTcCAAwICyAAIAU3AgAMBwsgACAFNwIADAYLIANBEGogASACQQRqEMUJIAMtABBBBEYNACADKQMQIgVC/wGDQgRSDQELIABBBDoAAAwECyAAIAU3AgAMAwsgACAFNwIADAILIAAgBTcCAAwBCyAAIAU3AgALIANBIGokAAuLDwIUfwR+IwBBIGsiBCQAAkBBmLrkACgCACICDQAgBEEIaiIHQbi14wApAwA3AwAgBEGwteMAKQMANwMAQZy65ABBADYCAEGYuuQAQQE2AgBBpLrkACgCACEFQaC65AAoAgAhA0GguuQAIAQpAwA3AgBBrLrkACgCACEIQai65AAgBykDADcCACACRSAFRXINAAJAIAhFDQAgA0EIaiEHIAMp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AxoLIABBADoABCAAQQA2AgBBAAwCCyAHQgF8CxD5DgsgBEEQaiQAC70DAQV/IwBBQGoiACQAAkACQEHYueQALQAAQQJGBEBB3LnkACgCACEBQdy55ABBADYCACABRQ0BIABBKGogARECACAAQSBqIgIgAEE4aigCADYCACAAQRhqIgMgAEEwaikCADcDACAAQQ5qIgQgAEE/ai0AADoAACAAIAApAig3AxAgACAALwA9OwEMIAAtADwhAQJAQdi55AAtAABBAkYEQEHEueQAIAApAxA3AgBB2LnkACABOgAAQdm55AAgAC8BDDsAAEHUueQAIAIoAgA2AgBBzLnkACADKQMANwIAQdu55AAgBC0AADoAAAwBCyABQQJHDQMLIABBAjoAPCAAQShqEMQlCyAAQUBrJAAPCyAAQQA2AjggAEEBNgIsIABBwLzjADYCKCAAQgQ3AjAgAEEoakGoveMAEJImAAsgAEE/aiAAQQ5qLQAAOgAAIABBMGogAEEYaikDADcDACAAQThqIABBIGooAgA2AgAgACAALwEMOwA9IAAgACkDEDcDKCAAIAE6ADwgAEEoaiIBEMQlIABBADYCOCAAQQE2AiwgAEHIveMANgIoIABCBDcCMCABQdC94wAQkiYAC6QDAgV/AX4jAEFAaiICJABBDCEFAkACfwJAIAAoAgRBDCAALQALIgNBQGtB/wFxIgQgBEEMTxsgA0H+AUYbIgYgAWoiBCAGTwRAAkAgA0H+AUcNACAAKAIIIgVBGHYhAyAFQf///3dHBEAgBUH///8HcSEFDAELIAAoAgBBBGsoAAAhBQsgBCAFSQ0DIARBDUkNASADQf4BRwRAIAJBEGogABDZISACQRhqIgMgAigCECACKAIUIAEQ4A0gAwwDCyAAQf////8HIAatQgN+IgenQQF2IAdCIIinGyIDQX8gBCAEIAZJGyIEIAMgBEsbEKsGQQFxRQ0DIAJBCGogABDZISACQSRqIgMgAigCCCACKAIMIAEQ4A0gAwwCC0GA5NgAQSxBrOTYABDJGQALIAIgABDZISACQgA3AzAgAkEANgA3IAIgAigCBCIBQcABcjoAOyACQTBqIgMgAigCACABEIEJGiADCyEDIAAtAAtB/gFGBEAgACgCACAAKAIIEOgMCyAAIAMpAgA3AgAgAEEIaiADQQhqKAIANgIA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ARDpByAAKAIIIAEQ8gEPCyAAQgA3AgQPCyAAKAIEIAEQ8gELqQMCBn8BfiMAQTBrIgIkACAAKQJoIQggAEKAgICAgAE3A2hBCCEDIAJBEGoiBSAAQfAAaiIGKAIANgIAIAZBADYCACACIAg3AwggAEHoAGohBgJAAkACQCABKAIIIgcEQCABKAIEIQUgB0EwbCEDA0AgACAEIAVqEMMDIAMgBEEwaiIERw0ACyAAKAJsIQMgACgCaCEEIAYgAikDCDcCACAAKAJwIQAgBkEIaiACQRBqKAIANgIAIABFDQEgAiAENgIcIAIgAzYCGCACIAM2AhQgAiADIABBBHRqNgIgIAJBJGogAkEUahCQBkGgv+QALQAAGkEcEIQBIgBFDQIgACACKQIkNwIAIABCADcCDCAAQRJqQgA3AQAgAEEIaiACQSxqKAIANgIAIAEoAgAgB0YEQCABEO8LIAEoAgQhBQsgASAHQQFqNgIIIAUgB0EwbGoiASAANgIMIAFBAjYCCCABQRE2AgBBCEEAELwhQQBBCBDHKgwDCyAGIAIpAwg3AgAgBkEIaiAFKAIANgIACyADQQAQ9BQgBCADEOYqDAELAAsgAkEwaiQAC68DAQJ/AkACQAJAAkACQAJAIAAoAgBBAWsOBwUAAQUFAgMECyAAKAIEIgAoAggiAkUNBCAAKAIEIgAgAkE4bGohAgNAIAAgARC0DCAAKAIwIgMEQCABIAMQygELIABBOGoiACACRw0ACwwECyAAKAIEIgAoAggiAkUNAyAAKAIEIgAgAkE4bGohAgNAIAAgARC0DCAAKAIwIgMEQCABIAMQygELIABBOGoiACACRw0ACwwDCyAAKAIEIgAoAigiAkUNAiACQTBsIQIgACgCJEEoaiEAA0AgACgCACIDBEAgASADEMoBCyAAQTBqIQAgAkEwayICDQALDAILIAAoAgQiAC0ARSICQQNGDQEgAkECRgRAIAAoAigiAkUNAiAAKAIkIQAgAkE4bCECA0AgACABEIANIABBOGohACACQThrIgINAAsMAgsgACgCQCIALQAlQQJHBEADQCAAKAIgIgAtACVBAkcNAAsLIABBCGooAgAiAkUNASAAQQRqKAIAIQAgAkE4bCECA0AgACABEIANIABBOGohACACQThrIgINAAsMAQsgACgCICABENoHCwvfAwID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hHhxQYCBgoR4Rw0AQYCChAggByAIcyIIayAIckGAgYKEeHFBgIGChHhGDQELIAFB/wFxIQEDQCAEIAZPDQUgBC0AACIFIAFGIAUgAkH/AXFGcg0EIARBAWohBAwACwALIARBBGohBAwACwALA0AgBCAGTw0CIAQtAAAiBSABQf8BcUYgBSACQf8BcUZyDQEgBEEBaiEEDAALAAsgBCADayEEQQEhCQsgACAENgIEIAAgCTYCAAufAwEJfyMAQeAAayIBJAACQAJAAkAgACgCMCICRQRAIAAQ0AtBACEADAELIAAoAiwhAyAAKAIoIQQgASAAELsGIAEoAgBBDEYNASABQdgAaiIFIAFBKGopAwA3AwAgAUHQAGoiBiABQSBqKQMANwMAIAFByABqIgcgAUEYaikDADcDACABQUBrIgggAUEQaikDADcDACABQThqIgkgAUEIaikDADcDACABIAEpAwA3AzBBoL/kAC0AABpBwAAQhAEiAEUNAiAAIAEpAzA3AwAgAEEAOgA8IAAgAjYCOCAAIAM2AjQgACAENgIwIABBKGogBSkDADcDACAAQSBqIAYpAwA3AwAgAEEYaiAHKQMANwMAIABBEGogCCkDADcDACAAQQhqIAkpAwA3AwALIAFB4ABqJAAgAA8LIAFB0ABqIAFBKGopAwA3AwAgAUHIAGogAUEgaikDADcDACABQUBrIAFBGGopAwA3AwAgAUE4aiABQRBqKQMANwMAIAEgASkDCDcDMEHAguEAQSsgAUEwakHsp98AQfyn3wAQsRQLAAujAwIKfwJ+IwBB8ABrIgMkAEEBIQYCQCAAKAIIIgQgAUYNACAAKAIEIgUgAUHYAGxqIQkgBSAEQdgAbGohASACKAIEIQQgA0HQAGohByADQdwAaiEIIAIoAgwhCiADQeUAaiILQQRqIQwDQCAEIApHBEAgAiAEQRBqIgU2AgQgBCkDACEOEKciIQ0gCEIANwIAIAhBCGpBADoAACALQQA2AAAgDEEAOwAAIANBADYCUCADQgQ3AlQgA0EgaiIEIAdBCGooAgA2AgAgA0IANwM4IAMgDTcDMCADQgA3A0ggA0EANgIoIANBAzoAayADIAcpAwA3AxggA0EoahD2DCADQRBqIAQoAgAiBDYCACADIAMpAxgiDTcDCCABQgA3AhggASAONwIQIAFBADYCCCABQQc2AgAgAUEgakIANwIAIAFBKGpCADcCACABIA03AjAgAUE4aiAENgIAIAFCADcCPCABQcMAakIANwAAIAFBAzoASyAAIAAoAghBAWo2AgggBSEEIAFB2ABqIgEgCUcNAQwCCwtBACEGCyADQfAAaiQAIAYLkQMBCX8jAEEQayIFJAACQCABKAIIIghFDQACQCABKAIEIgQoAgAEQCAIIQIMAQsgBUEIaiAEQQhqEMoQIAUoAgggBSgCDEHw6eAAQQQQ0ChFBEAgCCECDAELIAVBAEEBIAgQgiMgBSgCBCEGIAEgBSgCACICNgIIIAggBmshCQJAAkACQCAGQQZ0IgcgAkEGdCIDRwRAIAcgA2tBBnYhByADIARqIQMDQCADQTRqIgooAgAgA0E4aigCABCjJSADQTBqKAIAIAooAgAQwCogAxDRCyADQUBrIQMgB0EBayIHDQALIAYgCEYNAyACIAZHDQEMAgsgBiAIRg0CIAIgBkYNAQsgBCACQQZ0aiAEIAZBBnRqIAlBBnQQoDIaCyABIAIgCWoiAjYCCAsgAkUNAQsgBCACQQZ0aiEBA0AgBCgCOCICBEAgBCgCNCEDIAJBDGwhBwNAIAAgAygCABDnAiADQQxqIQMgB0EMayIHDQALCyAEIAAQ0BQgBEFAayICIQQgASACRw0ACwsgBUEQaiQAC5kDAQV/QQEhBQJAIAFB/wFxQQ9GDQACQAJAIAFBAmsiB0H/AXEiBkECRw0AIAAoAoQBIgRBgAFNBH8gAEEBagUgACgCBCEEIAAoAggLIQggBEUNACAEIAhqQQFrLQAAQQJrDgICAQALIAFBgP4DcUEIdiEEAkACQAJAAn8CQAJAAkACQEENIAYgBkENTxtBA2sOCgAJCQECBwcHBwkHCwJ/IAAoAoQBIgFBgAFNBEAgASEDIABBAWoMAQsgACgCBCEDIAAoAggLIANFDQQgA2pBAWstAABBA0cNBCABQYABSw0CIAEhAyAAQQFqDAMLIARBBGsOAwcFBwULIARBCGsOFgYEBAQEAwQEBAQEBAQEBAQEBAQEBAMECyAAKAIEIQMgACgCCAsgA0ECSQ0AIANqQQJrLQAAQQpGDQQLIAFBgAFNBH8gAEEBagUgACgCBCEBIAAoAggLIQUgAUUNAiABIAVqQQFrLQAAQQJGDwsgAg8LIAJFIAdB/wFxQQ1JckUEQCABQQFxRQ0CCyADQQFzDwtBACEFCyAFC6ADAQN/IwBB0ABrIgIkAAJAIAEtABRBAkYEQCAAIAEoAgBBGGoQ/wcgACgCABoMAQsgACgCAEUNACACQQhqIAAgARCgBiACLQA0IgNBBkYNAAJAAkACQAJAQQEgA0EDayIAIABBA08bQf8BcUEBaw4CAgABC0HIq98AQQ9B2KvfABDVIQALIAItABwhBCACKAIIIQAgAkHIAGogAkEUaikCADcDACACQT5qIAJBH2otAAA6AAAgAiACKQIMNwNAIAIgAi8AHTsBPAwBC0Ggv+QALQAAGkEwEIQBIgAEQCAAIAIpAwg3AwAgAEEoaiACQTBqKQMANwMAIABBIGogAkEoaikDADcDACAAQRhqIAJBIGopAwA3AwAgAEEQaiACQRhqKQMANwMAIABBCGogAkEQaikDADcDAEECIQQMAQsACyABEN4UIAEgADYCACABIAQ6ABQgASACKQNANwIEIAFBDGogAkHIAGopAwA3AgAgASACLwE8OwAVIAFBF2ogAkE+ai0AADoAACADQQVHDQAgAkEIahCPEwsgAkHQAGokAAuxAwEIfyMAQdAAayIEJAAgBCACNgIUIARBCGogAhCsBCAEKAIIIQYgBEEYaiIJIAFBARCNAiAEKAIcIQUCQCAEKAIYIghBgICAgHhHBEAgBEHIAGoiCiAEQTBqKQIANwMAIARBQGsiCyAEQShqKQIANwMAIAQgBCkCIDcDOAJAQQRBIBC5LiIHRQ0AIAcgBTYCBCAHIAg2AgAgByAEKQM4NwIIIAdBEGogCykDADcCACAHQRhqIAopAwA3AgAgBiABKAJ8IgUgBSAGSxshCCAGIAUgBSAGSRshBSACKAIAQTBGBEAgBEHpADoAGCABIAggBSAJEI8jC0EIQcAAELkuIgZFDQAgBkEANgIIIAZCMTcDAEEgQQQQsioiAUIANwIYIAFCCDcCECABQgA3AgggAUKAgICAwAA3AgAgACADNgIUIABBADYCECAAIAU2AgwgACAINgIIIAAgBzYCBCAAIAI2AgAgBEIANwIgIARCADcCKCAEIAY2AhggBCABNgIcIARBGGoQmCkMAgsACyAAQQA2AgAgACAFNgIEIAMQ4C4gBEEUahDkLAsgBEHQAGokAAupAwIDfgZ/IAEoAgAiBkEQayEJIAEoAgQiCCACKAIAIgtB3cvdnnlsQQ93IgdxIQIgB0EZdq1CgYKEiJCgwIABfiEFQQAhByAAAn8DQCACIAZqKQAAIgQgBYUiA0J/hSADQoGChIiQoMCAAX2DQoCBgoSIkKDAgH+DIQMCQANAIANQRQRAIAsgCSADeqdBA3YgAmogCHEiCkEEdGsoAgBGDQIgA0IBfSADgyEDDAELC0GAgICAeCAEIARCAYaDQoCBgoSIkKDAgH+DUEUNAhogAiAHQQhqIgdqIAhxIQIMAQsLQYABIQIgBiAKQQR0QQR1IgdqIgkpAAAiAyADQgGGg0KAgYKEiJCgwIB/g3qnQQN2IAYgCCAHQQhrcWoiCCkAACIDIANCAYaDQoCBgoSIkKDAgH+DeadBA3ZqQQdNBEAgASABKAIIQQFqNgIIQf8BIQILIAkgAjoAACAIQQhqIAI6AAAgASABKAIMQQFrNgIMQYCAgIB4IAZBACAKa0EEdGoiBkEMaygCACIBQYCAgIB4Rg0AGiAAIAZBCGspAgA3AgQgAQs2AgALmwMCCn8CfiMAQeAAayICJAAgASgCDCIHIAEoAgQiBWtBBHYiBiAAKAIAIAAoAggiBGtLBEAgACAEIAZBCEHYABDSCiAAKAIIIQQLIAUgB0cEQCAAKAIEIARB2ABsaiEDIAJBMGohCCACQTxqIQkgAkHFAGoiCkEEaiELA0AgASAFQRBqIgY2AgQgBSkDACEMEKciIQ0gCUIANwIAIAlBCGpBADoAACAKQQA2AAAgC0EAOwAAIAJCADcDGCACIA03AxAgAkEANgIwIAJCADcDKCACQQA2AgggAkEDOgBLIAJCBDcCNCACQdgAaiIFIAhBCGooAgA2AgAgAiAIKQMANwNQIAJBCGoQ+gwgA0EoakIANwIAIANBGGpCADcCACADQRBqIAw3AgAgA0EIakEANgIAIANBBzYCACADQTBqIAIpA1A3AgAgA0E4aiAFKAIANgIAIANBPGpCADcCACADQcMAakIANwAAIANBywBqQQM6AAAgA0HYAGohAyAEQQFqIQQgBiIFIAdHDQALCyAAIAQ2AgggAkHgAGokAAvAAwECfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIADhIBDAwNAgMEBQYHCAkNDQoODgsACyAAQQRqELMEDwsgAEEEahDXLQwKCyAAQQxqEJguDwsgAEEQahDhGSAAQShqEJctDwsgAEEQahD7LA8LIABBEGoQ+ywPCyAAQQRqELMEIABBCGoQly0gACgCFEUNBSAAQRRqEJctDwsgAEEQahCzBCAAQQRqEIYjIAAoAgQgACgCCBDGLw8LIABBBGoQswQPCyAAKAIEIgBByABqENctAkACQAJAIAAoAgBBB2sOAgECAAsgABCzFwsgAEEoahDXLQsgAEHgAGoQyCwgAEGAAUEIEKIYDwsCQCAAKAIEIgJBAkYNACAAQQhqIQEgAkUEQCABKAIAEOIuDAELIAEQswQLIABBGGoQmC4gAEEcahCYLiAAQQxqEJctDwsgAEEIahCPDgsPCyAAQQRqELMEIABBCGoQly0PCyAAQQRqIgJBBGohAQJAAkACQAJAIAIoAgAOAgECAAsgARCVLQwCCyABKAIAEOIuDAELIAEoAgAQ4y4LIABBDGoQswQgAEEQahCXLQuoAwEDfyMAQTBrIgYkAAJAAkACQAJAAkACQAJAIAEoAhwiBwRAIAYgAiADIAQgBUGkrMMAEN8gIAEoAigiCCAGKAIETQ0BIAZBCGogASACIAMgBCAFELwnDAILIAMgBUkNAiAGQQhqIAEgAiAFIAQQgQYMAQsgAyAFSQ0CIAQgBUsNAyAFIARrIAhJDQQgBkEYaiAHIAEoAiAiASgCCEEBa0F4cWpBCGogAiAEaiACIAVqIAEoAiARBgAgBigCGEEBRgRAIAYoAiAgAmsiASAGKAIkIAJrIgJLDQYgBiAGKAIcNgIUIAYgAjYCECAGIAE2AgwgBkEBNgIIDAELIAZBADYCCAtBACEFIAAgBigCCEEBRgR/IAAgBikCDDcCBCAAQQxqIAZBFGooAgA2AgBBAQUgBQs2AgAgBkEwaiQADwsgBSADQbSswwAQ6RYACyAFIANBkJLAABDpFgALIAQgBUGUk8AAEOgWAAtBpJPAAEE6QeCTwAAQ1SEACyAGQQA2AiggBkEBNgIcIAZBoKvDADYCGCAGQgQ3AiAgBkEYakGoq8MAEJImAAuOAwENfyMAQRBrIgYkAAJAAkAgAS0AJQ0AIAFBFGohDCABIAEtABgiBWpBE2ohDSABKAIMIQMgASgCCCEJIAEoAhAhByABKAIEIQggBUEFSSEOAkACfwJAAkADQCAHIAlLIAMgB0tyDQIgAyAIaiEKIA0tAAAhBAJAIAcgA2siC0EHTQRAQQAhAgNAIAIgC0YNBCACIApqLQAAIARGDQIgAkEBaiECDAALAAsgBkEIaiAEIAogCxDOCSAGKAIIQQFHDQIgBigCDCECCyABIAIgA2pBAWoiAzYCDCADIAVJIAMgCUtyDQAgDkUNBCAIIAMgBWsiBGogBSAMIAUQ0ChFDQALIAEoAhwhAiABIAM2AhwgBCACawwCCyABIAc2AgwLIAFBAToAJQJAIAEtACRBAUYEQCABKAIgIQQgASgCHCECDAELIAEoAiAiBCABKAIcIgJGDQMLIAQgAmsLIQQgACACIAhqIAQQmh4MAgsgBUEEQbiK4QAQ6RYACyAAQYCAgIB4NgIACyAGQRBqJAALgQMBBX8jAEEgayIDJABBASEEAkACQAJAAkAgASACTQ0AAkAgACACaiIFLAAAIgBBAE4EQCAAQf8BcSECDAELQQAhBCAAQUBxQYB/Rg0CAn9BAiAAQWBJDQAaQQMgAEFwSQ0AGiAAQXdLDQNBBAshBiAGIAEgAmsiB0sNAiADQRRqIAUgBhDEBSADKAIUQQFGDQIgAygCHEUNBCADKAIYIgEsAAAiAkEATiACQWBJciACQXBJckUEQCACQf8BcUESdEGAgPAAcSABLQADQT9xIAEtAAFBP3FBDHQgAS0AAkE/cUEGdHJyckGAgMQARg0FC0EBIQRBAkEDQQQgAEFwSRsgAEFgSRsiACAHSw0BIANBFGogBSAAEMQFIAMoAhQNASADIAMoAhgiACADKAIcajYCECADIAA2AgwgA0EMahCpDiICQYCAxABGDQMLIAIQnRBB/wFxQQFzIQQLIARBAXEhBAsgA0EgaiQAIAQPC0GgosQAEKEvAAtBoKLEABChLwALtQMBB38jAEEQayIHJABBByEEAkACQAJ/IAEoAiAiA0EHTQRAIAFBBGohBiADDAELIAEoAgghBiADIQQgASgCBAsiCCACTQRAAkACQAJAAkAgAkEITwRAQYGAgIB4IQUgAiAERg0HQQAhBSACQf////8DSyACQQJ0IglB/P///wdLcg0HIANBCEkNASAEQQJ0IQMgBEH/////A00NAiADIQkMBwtBgYCAgHghBSADQQdNDQYgAUEANgIAIAFBBGogBiAIQQJ0EIEJGiABIAg2AiAgBEECdCIBQf3///8HSSAEQf////8DTXENAyAHIAE2AgwgB0EANgIIQcCC4QBBKyAHQQhqQfzU2QBBxMzgABCxFAALQaC/5AAtAAAaIAkQhAEiAw0BQQQhBQwFCyADQf3///8HTw0EQQQhBSAGIANBBCAJEMkEIgNFDQQMAwsgAyAGIAhBAnQQgQkaDAILIAYgAUEEEKIYDAILQeTM4ABBIEGEzeAAENUhAAsgASACNgIgIAEgAzYCCCABIAg2AgQgAUEBNgIAQYGAgIB4IQULIAAgCTYCBCAAIAU2AgAgB0EQaiQAC64DAgN/An4jAEEgayIDJAACQAJAAkACQAJAAkACQCAAKAIAQQFrDgcBAgMGBgQFAAsgACgCICABED0MBQsgACgCICABELcODAQLIAAoAgQiACgCCCICRQ0DIAAoAgQhACACQThsIQIDQCABIAAQ9BMgAEE4aiEAIAJBOGsiAg0ACwwDCyAAKAIEIgAoAggiAkUNAiAAKAIEIQAgAkE4bCECA0AgASAAEPQTIABBOGohACACQThrIgINAAsMAgsgACgCBCIAKAIoIgJFDQEgAkEwbCECIAAoAiRBKGohAANAIAAoAgAiBARAIAEgBBDBAQsgAEEwaiEAIAJBMGsiAg0ACwwBCyADQQhqIAAoAgQiABCuHiABKAIYIQIgAykDCCEFIAEgAygCEDYCGCABKQMQIQYgASAFNwMQIAAtAEVBA0cEQCAAQSBqIAEQuA8gASkDECEFCwJAIAVQIAVCA4NCAFJyDQAgAyAFpyIANgIcIANBHGoQ0AYgACAAKAIAIgRBAWs2AgAgBEEBRw0AIAAgACgCIBCNJwsgASACNgIYIAEgBjcDEAsgA0EgaiQAC/sCAQV/AkACQAJAAkACQAJAAn8CQCAHIAhWBEAgByAIfSAIWA0DAkAgBiAHIAZ9VCAHIAZCAYZ9IAhCAYZacUUEQCAGIAhWDQEMCgsgAiADSQ0FDAgLIAcgBiAIfSIGfSAGVg0IIAIgA0kNBSABIANqIQ1BfyEKIAMhCQJAA0AgCSILRQ0BIApBAWohCiALQQFrIgkgAWoiDC0AAEE5Rg0ACyAMIAwtAABBAWo6AAAgAyALTQ0HIAEgC2pBMCAKEIcPGgwHC0ExIANFDQIaIAFBMToAACADQQFHDQFBMAwCCyAAQQA2AgAPCyABQQFqQTAgA0EBaxCHDxpBMAshCSAEQQFqwSIEIAXBTCACIANNcg0DIA0gCToAACADQQFqIQMMAwsgAEEANgIADwsgAyACQczwwAAQ6RYACyADIAJBrPDAABDpFgALIAIgA08NACADIAJBvPDAABDpFgALIAAgBDsBCCAAIAM2AgQgACABNgIADwsgAEEANgIAC9gDAQJ/IwBBMGsiAiQAAn8CQAJAAkACQAJAAkACQCAAKAIAIgAtAABBAWsOAwABAgMLIAIgACgCBDYCLCACQQE2AhggAkGs1sMANgIUIAJCATcCICACQQw2AgQgAiACNgIcIAIgAkEsajYCACABKAIUIAEoAhggAkEUahCfBgwGCyACIAAoAgQ2AiwgAkECNgIYIAJB1NbDADYCFCACQgE3AiAgAkEMNgIEIAIgAjYCHCACIAJBLGo2AgAgASgCFCABKAIYIAJBFGoQnwYMBQsgACgCBEEBaw4CAgMBCyAALQABIQMgAiAAKAIENgIsIAJBAjYCGCACQYDWwwA2AhQgAkICNwIgIAJBDDYCDCACQa4BNgIEIAIgAzoAEyACIAI2AhwgAiACQSxqNgIIIAIgAkETajYCACABKAIUIAEoAhggAkEUahCfBgwDCyABKAIUQeTWwwBBMCABKAIYKAIMEQMADAILIAEoAhRBlNfDAEEuIAEoAhgoAgwRAwAMAQsgACgCCCEAIAJBAjYCGCACQezXwwA2AhQgAkIBNwIgIAJBDDYCBCACIAA2AiwgAiACNgIcIAIgAkEsajYCACABKAIUIAEoAhggAkEUahCfBgsgAkEwaiQAC7EDAQZ/IwBB8AJrIgMkACADQQhqIAFBIGpBqKrEABCOJgJAAkACQAJAIAMoAggiASgCCCIERQ0AIAMoAgwhBiABIARBAWsiBDYCCCABKAIEIARBmAFsaiIEQQRqIQcgBC0AXCEIIAQoAgAiBUGJgMQAaw4CAgABC0GJhOEAQShBuKrEABDVIQALIAMgBTYCwAEgA0HEAWogB0HYABCBCRogAyAIOgCcAiADQZ0CaiAEQd0AakE7EIEJGiABIANBwAFqEKYjIAAgAkHYABCBCRoMAQsgA0HoAGoiBSAHQdgAEIEJGiADQRBqIgQgBUHYABCBCRogA0HgAmoiASAEELcpIgRBCGooAgA2AgAgAyAEKQIANwPYAiADQewCaiACELcpIgRBFGooAgA2AgAgAyAEKQIMNwLkAkHYABCnKSAFQdgAEIEJIQQgAEHYABCnKSACQdgAEIEJNgIIIAAgBDYCBCAAIAg6ACQgAEGIgMQANgIAIAAgAykD2AI3AgwgAEEUaiABKQMANwIAIABBHGogA0HoAmopAwA3AgALIAYgBigCAEEBajYCACADQfACaiQAC+oCAQV/AkBBzf97QRAgACAAQRBNGyIAayABTQ0AIABBECABQQtqQXhxIAFBC0kbIgRqQQxqEIQBIgJFDQAgAkEIayEBAkAgAEEBayIDIAJxRQRAIAEhAAwBCyACQQRrIgUoAgAiBkF4cSACIANqQQAgAGtxQQhrIgIgAEEAIAIgAWtBEE0baiIAIAFrIgJrIQMgBkEDcQRAIAAgAyAAKAIEQQFxckECcjYCBCAAIANqIgMgAygCBEEBcjYCBCAFIAIgBSgCAEEBcXJBAnI2AgAgASACaiIDIAMoAgRBAXI2AgQgASACELwHDAELIAEoAgAhASAAIAM2AgQgACABIAJqNgIACwJAIAAoAgQiAUEDcUUNACABQXhxIgIgBEEQak0NACAAIAQgAUEBcXJBAnI2AgQgACAEaiIBIAIgBGsiBEEDcjYCBCAAIAJqIgIgAigCBEEBcjYCBCABIAQQvAcLIABBCGohAwsgAwuiAwEGfyMAQdAAayICJAAgAiABKAIAIgNBQGtBsLDEABCOJiACKAIEIQYgAigCACIFQQA2AgggA0HQAGohAyABKAIIIQQDQAJAAkAgBCADKAIARwRAIAEQsREQzRANAQsgAkEQaiADQQhqKAIANgIAIAIgAykCADcDCANAIAMoAgAgBEYNAiABELERQS9NDQIgARCxEUE5Sw0CIAUgARCxERCOEiABEJcnGgwACwALIAEQ1wsaDAELCyACQSxqIANBCGooAgA2AgAgAkEgaiACQRBqKAIANgIAIAIgAikDCDcDGCACIAMpAgA3AiQCQAJAA0ACQAJAIAQgAygCAEcEQCABELEREM0QDQELIAUoAggiA0UNASACQTRqIgcgBSgCBCADQQoQyQYgAi0ANEUNAyACQQY2AjQgACABKAIEIAQgAkEYaiAHEJgVDAQLIAEQlycaDAELCyACQQU2AjQgACABKAIEIAQgAkEYaiACQTRqEJgVDAELIAIoAjghASAAQSI2AgAgACABNgIECyAGIAYoAgBBAWo2AgAgAkHQAGokAAuiAwIDfwF+IwBBEGsiAiQAAkACQAJAAkACQAJAIAAoAgAOBgEFBQIDBAALAkAgACkDCCIEQgODQgBSDQAgAiAEpyIBNgIMIAJBDGoQ0AYgASABKAIAIgNBAWs2AgAgA0EBRw0AIAEgASgCIBCNJwsgACkDECIEQgODQgBSDQQgAiAEpyIANgIMIAJBDGoQ0AYgACAAKAIAIgFBAWs2AgAgAUEBRw0EIAAgACgCIBCNJwwECyAAQQhqEL8QDAMLIAApAxgiBFAgBEIDg0IAUnINAiACIASnIgA2AgwgAkEMahDQBiAAIAAoAgAiAUEBazYCACABQQFHDQIgACAAKAIgEI0nDAILIAApAxAgACgCGBCdFQwBCwJAIAApAwgiBEIDg0IAUg0AIAIgBKciATYCDCACQQxqENAGIAEgASgCACIDQQFrNgIAIANBAUcNACABIAEoAiAQjScLIAApAxAiBEIDg0IAUg0AIAIgBKciADYCDCACQQxqENAGIAAgACgCACIBQQFrNgIAIAFBAUcNACAAIAAoAiAQjScLIAJBEGokAAugAwECfwJAAkACQAJAAkACQAJAIAAoAgBBAWsOBwABAgYGAwQFCyAAKAIgIAEQkBEPCyAAKAIEIgAoAggiAkUNBCAAKAIEIQAgAkE4bCECA0AgASAAELoiIABBOGohACACQThrIgINAAsMBAsgACgCBCIAKAIIIgJFDQMgACgCBCEAIAJBOGwhAgNAIAEgABC6IiAAQThqIQAgAkE4ayICDQALDAMLIAAoAgQiACgCKCICRQ0CIAJBMGwhAiAAKAIkQShqIQADQCAAKAIAIgMEQCABIAMQRAsgAEEwaiEAIAJBMGsiAg0ACwwCCyAAKAIEIgAtAEUiAkEDRg0BIAJBAkYEQCAAKAIoIgJFDQIgACgCJCEAIAJBOGwhAgNAIAAgARDCKCAAQThqIQAgAkE4ayICDQALDAILIAAoAkAiAC0AJUECRwRAA0AgACgCICIALQAlQQJHDQALCyAAQQhqKAIAIgJFDQEgAEEEaigCACEAIAJBOGwhAgNAIAAgARDCKCAAQThqIQAgAkE4ayICDQALDAELIAEgACgCIBDXBAsLggMBA38jAEEQayIFJAACQAJAIAJFBEAgAEECOgAADAELAkAgASwAACIDQQBIBEACQAJAIANBQHFBgH9HBEACQCADQWBJBH9BAgUgA0FwTw0BQQMLIgQgAksNAwwFCyADQXhJDQELIAAgAzoAASAAQQE6AAAMBAtBBCEEIAJBA0sNAgsgACADOgABIABBAToAAAwCCyAAIANB/wFxNgIEIABBADoAAAwBCyAFQQRqIAEgBBDEBSAFKAIERQRAIAUoAgxFDQICQCAFKAIIIgIsAAAiAUEATgRAIAFB/wFxIQIMAQsgAi0AAUE/cSEEIAFBH3EhAyABQV9NBEAgA0EGdCAEciECDAELIAItAAJBP3EgBEEGdHIhBCABQXBJBEAgBCADQQx0ciECDAELIANBEnRBgIDwAHEgAi0AA0E/cSAEQQZ0cnIiAkGAgMQARg0DCyAAIAI2AgQgAEEAOgAADAELIAAgAzoAASAAQQE6AAALIAVBEGokAA8LQejT1gAQoS8AC6UDAQN/IwBBQGoiBSQAIAVBCGogAygCACIHIAMoAgggBCgCACIGIAQoAggQ/SUCQCAFKAIIQQFxRQ0AIAUoAgwgAU0NAAJAIAJBAXFFBEAgA0EEELAZIARBBBCwGQwBCyADQQQQ0xIgBEEEENMSCyADEJQsIAQQlCwgBSADKAIAIgcgAygCCCAEKAIAIgYgBCgCCBD9JSAFKAIAQQFxRQ0AIAUoAgQgAU0NACAEEMcvIAQoAgAhBgsCQCAGQYCAgIB4RgRAIAMQxy8MAQsgBCgCCCECIARBADYCCCAFQQA2AiQgBSAENgIcIAUgAjYCICAFIAQoAgQiBDYCFCAFIAQgAkEEdGo2AhggB0GAgICAeEYEQCAFQRRqENAZDAELIAVBOGogBUEkaigCADYCACAFQTBqIAVBHGopAgA3AwAgBSAFKQIUNwMoIAMgBUEoahC7CiADEJQsCwJAIAMoAgBBgICAgHhGDQAgAygCCCABTQ0AQa68xABBxABBhL3EABDVIQALIAAgAykCADcCACAAQQhqIANBCGooAgA2AgAgBUFAayQAC5cDAgZ/AX4jAEEgayICJAAgAiABQQhqNgIQIAEoAgAhAyABKAIEIQQCQAJAAkADQCADIARGDQEgASADQTBqIgY2AgAgAkEQaiIHIAMQ2yUhBSAGIQMgBUUNAAsgB0EEQQRBBBDeECACKAIUIQMgAigCEEEBRg0BIAIoAhgiBCAFNgIAIAJBATYCDCACIAQ2AgggAiADNgIEIAJBGGoiBSABQQhqKAIANgIAIAIgASkCACIINwMQIAIgBTYCHAJAIAinIgMgAigCFCIHRg0AQQEhAQNAIANBMGohBiACQRxqIAMQ2yUiA0UEQCAGIgMgB0YNAgwBCyACIAY2AhAgAigCBCABRgRAIAJBBGogAUEBQQRBBBCCCyACKAIIIQQLIAQgAUECdGogAzYCACACIAFBAWoiATYCDCACIAU2AhwgAigCECIDIAIoAhQiB0cNAAsLIAAgAikCBDcCACAAQQhqIAJBDGooAgA2AgAMAgsgAEEANgIIIABCgICAgMAANwIADAELIAMgAigCGBCjLwALIAJBIGokAAupAwEHfyMAQRBrIgYkACAAKAIIIgIEQCAAKAIEIgMgAkEobGohBwNAAkACQAJAAkACQCADKAIAQQFrDgQAAQIDBAsgAygCBEEBRw0DIAMoAgggARC0AQwDCyADKAIEIAEQtAEMAgsgAygCBCIFQUBrEOUqIAUoAoQBIgIEQCAFKAKAASEAIAJB2ABsIQQDQCAAIAEQuBsgAEHYAGohACAEQdgAayIEDQALCyAFKAJ4IgAEQCAAIAEQvyILIAVBmAFqKAIAIgAEQCAFQZQBaigCACICIABBKGxqIQgDQAJAAkACQAJAAkAgAigCAEEBaw4EAAECAwQLIAIoAgRBAUcNAyACKAIIIAEQtAEMAwsgAigCBCABELQBDAILIAIoAgQgARDVBQwBCyACKAIMIQQgAigCCCEAIAYgATYCDCAERQ0AIARBKGwhBANAIAZBDGogABDgCCAAQShqIQAgBEEoayIEDQALCyACQShqIgIgCEcNAAsLIAUtADxBBkYNASAFQRBqEOUqDAELIANBBGogARCTCAsgA0EoaiIDIAdHDQALCyAGQRBqJAALqQMBBH8jAEEgayIDJAACQCACLQAMIgRBAUYEQCAAIAEpAgA3AgAgAEEIaiABQQhqKQIANwIAIAIoAgAgAigCBBCgLwwBCwJAAkACQAJAAkACQAJAAkACQCABLQAMIgVBAWsOAgACAQsgACACKQIANwIAIABBAiAEazoADCAAIAIvAA07AA0gAEEIaiACQQhqKAIANgIAIABBD2ogAkEPai0AADoAACABKAIEIQQMBwsgBEUN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CwuPAwEDfyMAQdAAayICJABB4AIhAyABKALIAkElRgRAIAFByAJqIQMgASgC8AIhBCABQSU2AvACAkAgBEElRwRAIAJBzABqIAFBlANqKAIANgIAIAJBxABqIAFBjANqKQIANwIAIAJBPGogAUGEA2opAgA3AgAgAkE0aiABQfwCaikCADcCACACIAQ2AiggAiABKQL0AjcCLAwBCyACQShqIAFBKGoQMiADKAIAQSVGDQAgAxDoAwsgAyACKQMoNwMAIANBIGogAkHIAGopAwA3AwAgA0EYaiACQUBrKQMANwMAIANBEGogAkE4aikDADcDACADQQhqIAJBMGopAwA3AwBBnANB4AIgAygCAEElRhshAwsgAkEAOwAaIAIgAS0AuAI6ABkgAiABKQGqAjcACyACIAEoAbICNgATIAIgAS8BtgI7ABcgAiABKQC7AjcAHCACIAEoAMMCNgAkIAEgA2ooAgAhAyACQShqIgQgASACQQtqEL8IIAAgAigCKCADEEYgBBD1CiACQdAAaiQAC5wDAQd/IwBBEGsiBiQAIAAoAggiAgRAIAAoAgQiAyACQShsaiEHA0ACQAJAAkACQAJAIAMoAgBBAWsOBAABAgMECyADKAIEQQFHDQMgAygCCCABENMCDAMLIAMoAgQgARDTAgwCCyABIAMoAgQiBUFAaxCyCiAFKAKEASICBEAgBSgCgAEhACACQdgAbCEEA0AgACABELkbIABB2ABqIQAgBEHYAGsiBA0ACwsgBUGYAWooAgAiAARAIAVBlAFqKAIAIgIgAEEobGohCANAAkACQAJAAkACQCACKAIAQQFrDgQAAQIDBAsgAigCBEEBRw0DIAIoAgggARDTAgwDCyACKAIEIAEQ0wIMAgsgAigCBCABEO8FDAELIAIoAgwhBCACKAIIIQAgBiABNgIMIARFDQAgBEEobCEEA0AgBkEMaiAAEP4IIABBKGohACAEQShrIgQNAAsLIAJBKGoiAiAIRw0ACwsgBS0APEEGRg0BIAEgBUEQahCyCgwBCyADQQRqIAEQpggLIANBKGoiAyAHRw0ACwsgBkEQaiQAC6QDAQR/IwBBIGsiAyQAAkAgAi0ADCIEQQFGBEAgACABKQIANwIAIABBCGogAUEIaikCADcCAAwBCwJAAkACQAJAAkACQAJAAkACQCABLQAMIgVBAWsOAgACAQsgAyACELIpIAAgAykCADcCACADQQIgAy0ADGs6AAwgAEEIaiADQQhqKQIANwIAIAEoAgQhBAwHCyAERQ0BDAILIARFDQELIAEoAgQiBCABKAIIIAIoAgQiBiACKAIIIgIQuC9B/wFxDgICAwELIANBCGogAUEIaigCADYCACADIAEpAgA3AwAgA0EUaiIBIAMgAigCBCACKAIIEMkLIAAgBSABEPsZDAQLIANBCGogAUEIaigCADYCACADIAEpAgA3AwAgA0EUaiIBIAYgAiADEKwGIABBAiAFayABEPsZDAMLIABBCGpB2I7CACkCADcCACAAQdCOwgApAgA3AgAMAQsgA0EIaiABQQhqKAIANgIAIAMgASkCADcDACADQRRqIgEgAyAGIAIQ6SQgACAFIAEQ+xkMAQsgASgCACAEEKAvCyADQSBqJAALiwMBCH8jAEEwayIDJAACQAJAIAEoAgAiCi0AFCIEQQJGIARBAXFyRQRAIANBCGogAi0AGEECdEHA9uMAaigCAC0AABDXJSADIAMoAgwiByADKAIIIgVrQQF2IgZBAUECEOMdIANBADYCLCADIAMpAwA3AiQgA0EkaiAGENcnIAMoAiwhBCADIAUgB0cEfyAEIAZqIAMoAiggBEEBdGohBANAIARBAWogBS0AACIIIAVBAWotAAAiCSAIIAlLGzoAACAEIAggCSAIIAlJGzoAACAFQQJqIQUgBEECaiEEIAZBAWsiBg0ACwUgBAs2AiwgA0EUaiADQSRqEPEaIAItABkNAQwCC0GO1MQAQSlBuNTEABDVIQALIANBFGoQ1woLAkACQCAKLQAXBEAgAygCGCADKAIcELooRQ0BCyAAIAMpAhQ3AgQgAEGAgICAeDYCACAAQQxqIANBHGopAgA3AgAMAQsgACABKAIEIAEoAgggAkEBEK4iIAMoAhQgAygCGBC7LwsgA0EwaiQAC7MDAQF/IwBBQGoiAiQAAkACQAJAAkACQAJAIAAtAABBAWsOAwECAwALIAIgACgCBDYCBEGgv+QALQAAGkEUEIQBIgBFDQQgAEEQakGUwNgAKAAANgAAIABBCGpBjMDYACkAADcAACAAQYTA2AApAAA3AAAgAkEUNgIQIAIgADYCDCACQRQ2AgggAkEDNgIsIAJB2LfYADYCKCACQgI3AjQgAiACQQRqrUKAgICA0B+ENwMgIAIgAkEIaq1CgICAgOAfhDcDGCACIAJBGGo2AjAgASgCFCABKAIYIAJBKGoQnwYhACACKAIIIgFFDQMgAigCDCABQQEQohgMAwsgAC0AASEAIAJBATYCLCACQaiP4QA2AiggAkIBNwI0IAIgAkEYaq1CgICAgOABhDcDCCACIABBAnQiAEGMwdgAaigCADYCHCACIABBtMLYAGooAgA2AhggAiACQQhqNgIwIAEoAhQgASgCGCACQShqEJ8GIQAMAgsgASAAKAIEIgAoAgAgACgCBBCHBSEADAELIAAoAgQiACgCACABIAAoAgQoAhARAAAhAAsgAkFAayQAIAAPCwAL7QIBBX8jAEEwayIEJAACfwJ/AkAgASgCwAEiBSwAACIDQQBIBEAgA0EfcSECIAUtAAFBP3EhBiADQV9NDQEgBS0AAkE/cSAGQQZ0ciEGIANBb00EQCAGIAJBDHRyIQJBAwwDCyACQRJ0QYCA8ABxIAUtAANBP3EgBkEGdHJyIQJBBAwCCyADQf8BcSECIAEgBUEBajYCwAEgAUHQAWohBSABKALQASEBQQEMAgsgAkEGdCAGciECQQILIQMgASADIAVqNgLAASABQdABaiEFIAEoAtABIQFBASACQYABSQ0AGkECIAJBgBBJDQAaQQNBBCACQYCABEkbCyEDIAUgASADajYCACAEQSE6ABggBCACNgIcIAQgASABIARBGGoQ/SkgBCgCBCEDAkAgBCgCACIBQSdHBEAgACAEKQMINwMIIABBEGogBEEQaikDADcDAAwBC0EmIQELIAAgATYCACAAIAM2AgQgBEEwaiQAC44DAgp/An4gASgCBCIGRQRAIABBCGpBuLXjACkDADcCACAAQbC14wApAwA3AgAPCwJAAkAgBkEBaiICQf////8BSw0AIAJBA3QiAyAGQQlqIgRqIgIgA0kgAkH5////B09yDQBBoL/kAC0AABogAhCEASICRQ0BIAIgA2ogASgCACIFIAQQgQkhCSABKAIMIgMEQCAJQQhrIQogBUEIaiECIAUpAwBCf4VCgIGChIiQoMCAf4MhDCADIQQgBSEHA0AgDFAEQANAIAdBQGohByACKQMAIAJBCGohAkKAgYKEiJCgwIB/gyINQoCBgoSIkKDAgH9RDQALIA1CgIGChIiQoMCAf4UhDAsgByAMeqdB+ABxayILQQhrKQMAIg1CA4NQBEAgDaciCCAIKAIAIghBAWo2AgAgCEEASA0ECyAMQgF9IAyDIQwgCkEAIAUgC2tBA3VrQQN0aiANNwMAIARBAWsiBA0ACwsgACADNgIMIAAgBjYCBCAAIAk2AgAgACABKAIINgIIDwsQryQLAAucAwICfwF+IAAoAgghAiAAKAIEIQADQCACBEACQCAAKAIAIgFBCUcEQAJAAkACQAJAAkACQAJAAkACQCABDggBAgMEBQYHCAALIABBEGopAwAQ0BoMCQsgAEEIaiIBKAIAIABBDGooAgAQhRYgAEEEaigCACABKAIAENgvIABBEGooAgAQhyogAEEcahDjLQwICyAAQQhqEJMMDAcLIABBCGoiASgCACAAQQxqKAIAEK4XIABBBGooAgAgASgCABDZLyAAQRhqKAIAIgEEQCABEIcqCyAAQRxqEOMtDAYLAkACQAJAIABBCGooAgAOAgECAAsgAEEMahDgJQwHCyAAQRBqELQrDAYLIABBEGoQsysMBQsgAEEEahD7BAwECyAAQQRqKAIAEIcqIABBEGoQ4y0MAwsgAEEEaigCACIBKQMoENAaAkAgASkDACIDUARAIAFBCGoQ1SQMAQsgAyABQRBqKQMAEMsxCyABQcgAQQgQohgMAgsgAEEEahD7BAwBCyAAQQhqEPEHCyACQQFrIQIgAEE4aiEADAELCwucAwECfyMAQeAAayICJAACQAJAAkACQAJAAkACQAJAAkAgACgCAEEBaw4HAQIDBAUGBwALIAIgAEEIahCtISABQRBqIAIpAwAgAigCCBDZBhoMBwsgAkEQaiAAQQhqEK0hIAFBEGogAikDECACKAIYENkGGgwGCyAAKAIEIgAoAggiA0UNBSAAKAIEIQAgA0E4bCEDA0AgACABENkJIABBOGohACADQThrIgMNAAsMBQsgACgCBCIAKAIIIgNFDQQgACgCBCEAIANBOGwhAwNAIAAgARDZCSAAQThqIQAgA0E4ayIDDQALDAQLIAJBIGogACgCBEEIahCtISABIAIpAyAgAigCKBDZBhoMAwsgAkEwaiAAKAIEQQhqEK0hIAEgAikDMCACKAI4ENkGGgwCCyACQUBrIAAoAgQQrSEgAUEQaiACKQNAIAIoAkgQ2QYaDAELIAAoAgQiAC0AUQ0AIAAoAgANACAAEN8UIQMgAkHQAGogAEEIahCtISABQRBBACADG2ogAikDUCACKAJYENkGGgsgAkHgAGokAAubAwEEfyMAQSBrIgEkAAJAAkACQAJAIABBKGoiAhChEyIDBEAgAygCAEEQRg0BC0EAIQMgAhChEyIERQ0DAkAgBCgCAEEOaw4CBAIACyACEKETGiACKAIAQSVGDQMgAC0ASA0DIAFBEGogAhCJCiABIAIQtx4gAUHA6OAANgIMIAFBNDoACCABKAIAIAEoAgQgAUEIahDvGyEDIAIQoRMiAkUNAyACKAIAQSRHDQMgACAAKQNANwN4IAAoAiggAEElNgIoQSRHDQIgACAAKAIsEMUQDAMLIAAoAighAiAAQSU2AiggACAAKQNANwN4IAFBFGogAEE0aikCADcCACABQRxqIABBPGooAgA2AgAgASAAKQIsNwIMIAEgAjYCCCABQQhqEI4OQQAhAwwCCyAAKAIoIQIgAEElNgIoIAAgACkDQDcDeCABQRRqIABBNGopAgA3AgAgAUEcaiAAQTxqKAIANgIAIAEgACkCLDcCDCABIAI2AgggAUEIahCODgwBC0GJhOEAQShB0NrfABDVIQALIAFBIGokACADC4sDAgN/AX4jAEEgayIDJAAgAigCCCEEIANBGGogASACKAIEIgVBABDAAgJAAkACQAJAIAMtABhBBEcEQCADKQMYIgZC/wGDQgRSDQELAkACQAJAIAVFDQAgA0EYaiABIAUQrSUgAy0AGEEERg0AIAMpAxgiBkL/AYNCBFINAQsgA0EANgIMIANBGGogASADQQxqQZec4ABBARDzDiADLQAYQQRGDQEgAykDGCIGQv8Bg0IEUQ0BIAAgBjcCAAwFCyAAIAY3AgAMBAsgA0EYaiACIAEQ4C8gAy0AGEEERwRAIAMpAxgiBkL/AYNCBFINAgsCQCAERQ0AIANBGGogASAEQQFrEK0lIAMtABhBBEYNACADKQMYIgZC/wGDQgRSDQMLIANBGGogASADQQxqQZS14wBBARDzDgJAIAMtABhBBEcEQCADKQMYIgZC/wGDQgRSDQELIABBBDoAAAwECyAAIAY3AgAMAwsgACAGNwIADAILIAAgBjcCAAwBCyAAIAY3AgALIANBIGokAAv2AgEDfyMAQRBrIgIkACACIAA2Aggg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ACkCADcCACACKAIAIAcQoC8MAQsgA0EYaiABQQhqKAIANgIAIAMgASkCADcDECADQQRqIgEgA0EQaiACELMpIAAgBSABEPsZDAELIAEoAgAgBhCgLwsgA0EgaiQAC/MCAQJ/AkACQAJAAkACQAJAAkAgACgCAEEBaw4HAAECBgYDBAULIAEgAEEIahCuAw8LIAEgACgCBBCzHQ8LIAAoAgQiACgCCCICRQ0DIAAoAgQhACACQThsIQIDQCABIAAQ+RYgAEE4aiEAIAJBOGsiAg0ACwwDCyAAKAIEIgAoAigiAkUNAiACQTBsIQIgACgCJEEoaiEAA0AgACgCACIDBEAgASADEKYcCyAAQTBqIQAgAkEwayICDQALDAILIAAoAgQiAC0ARSICQQNGDQEgAkECRgRAIAAoAigiAkUNAiAAKAIkIQAgAkE4bCECA0AgACABELALIABBOGohACACQThrIgINAAsMAgsgACgCQCIALQAlQQJHBEADQCAAKAIgIgAtACVBAkcNAAsLIABBCGooAgAiAkUNASAAQQRqKAIAIQAgAkE4bCECA0AgACABELALIABBOGohACACQThrIgINAAsMAQsgASAAQQhqENMkCwuTAwEGfyMAQTBrIgIkACAAKAIAIQMCQAJAAkACQAJAIAAoAgQiAA4DBAECAAtBASEEIAEoAhQiBUGQi9gAQQcgASgCGCIGKAIMIgcRAwANAiAAQQN0IQBBACEBA0AgAEUEQEEAIQQMBAsgAiADNgIUIAEEQCAFQcz/4ABBAiAHEQMADQQLIAJBAjYCHCACQeCK2AA2AhggAkIBNwIkIAJByQA2AgggAiACQQRqNgIgIAIgAkEUajYCBCAFIAYgAkEYahDvKw0DIANBCGohAyABQQFrIQEgAEEIayEADAALAAsgAkECNgIcIAJB4IrYADYCGCACQgE3AiQgAkECNgIIIAIgAzYCBCACIAJBBGo2AiAgASgCFCABKAIYIAJBGGoQ7yshBAwBCyACQQM2AhwgAkH4itgANgIYIAJCAjcCJCACQQI2AhAgAkECNgIIIAIgAzYCBCACIANBCGo2AgwgAiACQQRqNgIgIAEoAhQgASgCGCACQRhqEO8rIQQLIAJBMGokACAEDwtB0orYAEEOEKMwAAvXAgEOfyADQRxsIQMgAS0AFSEMIAEtABQhDSAB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BEAgBigCICACayIBIAYoAiQgAmsiAksNBSAGIAI2AhAgBiABNgIMIAZBATYCCAwBCyAGQQA2AggLQQAhBSAAIAYoAghBAUYEfyAAIAYpAgw3AgRBAQUgBQs2AgAgBkEwaiQADwsgBCAFQaSswwAQ6hYACyAFIANBpKzDABDpFgALIAUgA0G0rMMAEOkWAAsgBkEANgIoIAZBATYCHCAGQaCrwwA2AhggBkIENwIgIAZBGGpBqKvDABCSJgAL2AIBCH8jAEEgayIDJAAgA0EMaiACQQBBBEEUEKoNIAMoAhAhBAJAAkAgAygCDEEBRwRAIANBADYCCCADIAMoAhQiBTYCBCADIAQ2AgACQCACQQJPBEAgAkEBayEEIAEoAgghBiABKAIEIQcgASgCDCEIIAEvARAhCQNAIANBDGogByAGEIkXIANBHGoiCiAJOwEAIAUgAykCDDcCACADIAg2AhggBUEIaiADQRRqKQIANwIAIAVBEGogCigCADYCACAFQRRqIQUgBEEBayIEDQALIAIhBAwBC0EBIQQgAkUNAgsgBSABKQIANwIAIAVBEGogAUEQaigCADYCACAFQQhqIAFBCGopAgA3AgAgAyAENgIIDAILIAQgAygCFBCjLwALIANBADYCCCABKAIAIAEoAgQQqC8LIAAgAykCADcCACAAQQhqIANBCGooAgA2AgAgA0EgaiQAC8wCAQl/IAAgACgCJCIDIAAoAgwiBElBGGxqIgUgAEHIAEEwIAAoAlQgACgCPEkiBhtqIgIgACADIARPQRhsaiIDIABBMEHIACAGG2oiACgCDCADKAIMSSIEGyACKAIMIAUoAgxJIgYbIgcoAgwhCSAAIAMgAiAGGyAEGyIIKAIMIQogAUEQaiACIAUgBhsiAkEQaikCADcCACABQQhqIAJBCGopAgA3AgAgASACKQIANwIAIAEgCCAHIAkgCksiBRsiAikCADcCGCABQShqIAJBEGopAgA3AgAgAUEgaiACQQhqKQIANwIAIAFBQGsgByAIIAUbIgJBEGopAgA3AgAgAUE4aiACQQhqKQIANwIAIAEgAikCADcCMCABIAMgACAEGyIAKQIANwJIIAFB0ABqIABBCGopAgA3AgAgAUHYAGogAEEQaikCADcCAAvnAgEDfyMAQTBrIgYkAAJAAkACQAJAAkAgASgCACIH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uRwLC9YCAgV/AX4jAEEQayIEJAACQCAAKAIAQQdGBEAgACgCNCECIAAoAjgiAwRAIAIhAQNAIAEoAgAiBRCiASAFQcAAQQgQohggAUEMaiEBIANBAWsiAw0ACwsgACgCMCACEMAqIAAtABxBAkcEQAJAIAApAwgiBkIDg0IAUg0AIAQgBqciATYCDCAEQQxqENAGIAEgASgCACICQQFrNgIAIAJBAUcNACABIAEoAiAQjScLIAAoAiAiAEUNAiAAKAIAIgEQtQIgAUHgAEEIEKIYIABBDEEEEKIYDAILIAAoAggiARDLByABQShBCBCiGCAAKAIMIgAQogEgAEHAAEEIEKIYDAELIAAoAjQhAiAAKAI4IgMEQCACIQEDQCABKAIAIgUQogEgBUHAAEEIEKIYIAFBDGohASADQQFrIgMNAAsLIAAoAjAgAhDAKiAAEMsHCyAEQRBqJAALigMBBn8gAEFAaxDlKiAAKAKEASICBEAgACgCgAEiAyACQdgAbGohBwNAAkAgAygCACICQQVHBEAgAkEERg0BAkACQAJAIAJBAWsOAwABAgQLIAMoAgRBAUcNAyABIAMoAggQxQIMAwsgAygCBCABEMMJDAILIAMoAgwiAkUNASACQShsIQYgAygCCEEEaiECA0ACQAJAAkACQAJAIAJBBGsoAgBBAWsOBAABAgMECyACKAIAQQFHDQMgASACQQRqKAIAEMUCDAMLIAEgAigCABDFAgwCCyACKAIAIAEQwwkMAQsgAigCCCIEBEAgAigCBCEFIARBKGwhBANAIAUgARDGFSAFQShqIQUgBEEoayIEDQALCwsgAkEoaiECIAZBKGsiBg0ACwwBCyABIAMoAgQQxQILIANB2ABqIgMgB0cNAAsLIAAoApgBIgMEQCAAKAKUASECIANBKGwhAwNAIAIgARDGFSACQShqIQIgA0EoayIDDQALCyAALQA8QQZHBEAgAEEQahDlKgsLigMBBn8gAEFAaxDlKiAAKAKEASICBEAgACgCgAEiAyACQdgAbGohBwNAAkAgAygCACICQQVHBEAgAkEERg0BAkACQAJAIAJBAWsOAwABAgQLIAMoAgRBAUcNAyABIAMoAggQygEMAwsgAygCBCABEMQJDAILIAMoAgwiAkUNASACQShsIQYgAygCCEEEaiECA0ACQAJAAkACQAJA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AgwgACADNgIIIAAgATYCBEEBBSADCzYCAAwBCyAAQQA2AgAMAAsgAkEwaiQADwsgAkEANgIoIAJBATYCHCACQaCrwwA2AhggAkIENwIgIAJBGGpB2JrDABCSJgALowIBAn8jAEEwayICJAACQAJAIAMoAhAiBCADKAIUIgVNBEAgAygCAEEBa0ECTwRAIAJBDGogASADKAIIIAMoAgwgBCAFEJQJQQAhAyAAIAIoAgxBAUYEfyACKAIQIgEgAigCFCIDSw0EIABBADYCDCAAIAM2AgggACABNgIEQQEFIAMLNgIADAILIAJBDGogASADKAIIIAMoAgwgBCAFEM8KQQAhAyAAIAIoAgxBAUYEfyACKAIQIgEgAigCFCIDSw0DIABBADYCDCAAIAM2AgggACABNgIEQQEFIAMLNgIADAELIABBADYCAAwACyACQTBqJAAPCyACQQA2AiggAkEBNgIcIAJBoKvDADYCGCACQgQ3AiAgAkEYakHYmsMAEJImAAu3AgIDfwJ+IwBBEGsiAyQAIAEEQANAAkACQAJAAkAgACkDACIFQgN9IganQQFqQQAgBkICVBsOAgECAAsgAEEQaikDACIFQgODQgBSDQIgAyAFpyICNgIEIANBBGoQ0AYgAiACKAIAIgRBAWs2AgAgBEEBRw0CIAIgAigCIBCNJwwCCwJAIABBIGopAwAiBkIDg0IAUg0AIAMgBqciAjYCCCADQQhqENAGIAIgAigCACIEQQFrNgIAIARBAUcNACACIAIoAiAQjScLIAVCAlENASAAEK8VDAELIABBEGopAwAiBUIDg0IAUg0AIAMgBaciAjYCDCADQQxqENAGIAIgAigCACIEQQFrNgIAIARBAUcNACACIAIoAiAQjScLIABByABqIQAgAUEBayIBDQALCyADQRBqJAALvAICCH8BfiMAQUBqIgMkACADIAJBBEEMEN4QIAMoAgQhBSADKAIAQQFHBEAgAygCCCEIAkAgBUUNACACQQxsIQcgCCEGIAUhCQNAIAdFDQEgASkCBCELIAEoAgAhChC+KSEEIAMgChA1IARBOGogA0E4aikDADcDACAEQTBqIANBMGopAwA3AwAgBEEoaiADQShqKQMANwMAIARBIGogA0EgaikDADcDACAEQRhqIANBGGopAwA3AwAgBEEQaiADQRBqKQMANwMAIARBCGogA0EIaikDADcDACAEIAMpAwA3AwAgBkEEaiALNwIAIAYgBDYCACAHQQxrIQcgBkEMaiEGIAFBDGohASAJQQFrIgkNAAsLIAAgAjYCCCAAIAg2AgQgACAFNgIAIANBQGskAA8LIAUgAygCCBCjLwALqwIBA38jAEEQayICJAACQCABQYABTwRAIAJBADYCDAJ/IAFBgBBPBEAgAUGAgARPBEAgAkEMakEDciEEIAIgAUESdkHwAXI6AAwgAiABQQZ2QT9xQYABcjoADiACIAFBDHZBP3FBgAFyOgANQQQMAgsgAkEMakECciEEIAIgAUEMdkHgAXI6AAwgAiABQQZ2QT9xQYABcjoADUEDDAELIAJBDGpBAXIhBCACIAFBBnZBwAFyOgAMQQILIQMgBCABQT9xQYABcjoAACAAIAMQ6icgACgCCCIBIAAoAgRqIAJBDGogAxCBCRogACABIANqNgIIDAELIAAoAggiAyAAKAIARgRAIAAQmw4LIAAgA0EBajYCCCAAKAIEIANqIAE6AAALIAJBEGokAEEAC8ECAgF/AX4jAEEgayIDJAAgA0EYaiABIAIoAghBABDAAgJAAkACQAJAAkAgAy0AGEEERwRAIAMpAxgiBEL/AYNCBFINAQsgA0EANgIMIANBGGogASADQQxqQcKX4ABBARDzDiADLQAYQQRHBEAgAykDGCIEQv8Bg0IEUg0CCyADQRhqIAJBBGogARA8IAMtABhBBEcEQCADKQMYIgRC/wGDQgRSDQMLIANBGGogASADQQxqQcWX4ABBARDzDiADLQAYQQRHBEAgAykDGCIEQv8Bg0IEUg0ECyADQRhqIAIgARDgLwJAIAMtABhBBEcEQCADKQMYIgRC/wGDQgRSDQELIABBBDoAAAwFCyAAIAQ3AgAMBAsgACAENwIADAMLIAAgBDcCAAwCCyAAIAQ3AgAMAQsgACAENwIACyADQSBqJAAL1QIBCn8jAEEwayICJAAgASgCgAYhBSACQRBqIAFBpANqIgQgASgC/AUiB0EAIAIQlx4gASgCuAMhCCABKAK0AyEJIAIoAhQhBiACKAIQIQoDQCACQQhqIAQgBSADIAsQlx4gAigCCCEDAkACQAJAAkAgCkUEQCADDQEgAkEYaiAEIAcgBRDtCSACKAIYIgRBA0cNAiABKAKoAyABKAKsAyAFQbSQwAAQqShBADYCDAwDCyADQQFGDQMLQYmE4QBBKEHkkMAAENUhAAsgACACKQIcNwIEIABBFGogAkEsaigCADYCACAAQQxqIAJBJGopAgA3AgALIAAgBDYCACACQTBqJAAPCyACKAIMIQsgCSAIIAZBxJDAABCqKCgAASEDIAkgCCALQdSQwAAQqiggAzYAAUEBIQMgAiAEIAdBASAGEJceIAIoAgQhBiACKAIAIQoMAAsAC/4CAQF/IwBBkAFrIgIkACACQcDS4AA2AogBIAJBmObDADYCgAEgAkGY5sMANgJ4IAJBmObDADYCcCACQcjmwwA2AmggAkHI5sMANgJgIAJBmObDADYCWCACQZjmwwA2AlAgAkHY5sMANgJIIAJByObDADYCQCACQcjmwwA2AjggAkG45sMANgIwIAJBqObDADYCKCACQZjmwwA2AiAgAkGY5sMANgIYIAJBiObDADYCECACIAA2AkQgAiAAQcEAajYCfCACIABBQGs2AnQgAiAAQT9qNgJsIAIgAEEgajYCZCACIABBGGo2AlwgAiAAQT5qNgJUIAIgAEE9ajYCTCACIABBEGo2AjwgAiAAQQhqNgI0IAIgAEHCAGo2AiwgAiAAQShqNgIkIAIgAEE8ajYCHCACIABBO2o2AhQgAiAAQTpqNgIMIAIgAEE4ajYCjAEgAiACQYwBajYChAEgAUHGo8QAQQZBhOjDAEEQIAJBDGpBEBCXCyACQZABaiQAC4IDAgV/A34jAEEwayIDJAAgACABKAIEIAEoAgBrQRxuENInIAAoAgQgACgCCCEEIANBEGogAUEQaigCADYCACADQQhqIAFBCGopAgA3AwAgAyABKQIAIgc3AwAgBEEcbGohAiAHpyEBIAMoAgQhBQJAA0AgASAFRg0BIAEoAgAiBkEIRwRAIAFBFGopAgAhByABQQxqKQIAIQggASkCBCEJIAIgBjYCACACQQRqIAk3AgAgAkEMaiAINwIAIAJBFGogBzcCACACQRxqIQIgBEEBaiEEIAFBHGohAQwBCwsgAUEcaiEBCyAAIAQ2AgggA0KEgICAwAA3AwAgBSABa0EcbiECAkAgASAFRg0AA0AgAkUNASACQQFrIQIgARCSECABQRxqIQEMAAsACyADKAIQIgAEQCADKAIMIgQgAygCCCIBKAIIIgJHBEAg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AAusAgEEfwJAIAAoAgAiAEUNACAAKAIIQQxsIQMgACgCBCEAA0AgA0UNAQJAIAAoAgAiAgRAIAEgAhCUAwwBCwJAAkACQAJAAkACQEEEIAAoAgQiAigCACIEQQVrIgUgBUEGTxtBAWsOBQECAwQFAAsgAkEANgIYDAULIAIoAgggAkEMaigCACABEIEtIAIoAiggARCKMwwECyACQQA2AiAgAigCKCABEIozDAMLIAIoAgggAkEMaigCACABEIEtIAJBKGogARDPKwwCCyAEIAJBBGooAgAgARCBLSACQSBqIAEQySsgAkHoAGogARD4MSACQcgAaiABEM8rDAELIAIoAgggAkEMaigCACABEIEtIAIoAiggARD7HQsgAEEMaiEAIANBDGshAwwACwALC4kCAQZ/IwBBMGsiAiQAAkAgASgCAEGAgICAeEYEQCAAQYCAgIB4NgIADAELIAEoAgQhBSACIAEoAggiBEEEQQwQlR0gAkEANgIQIAIgAikDADcCCCACQQhqIAQQxScgAigCECEDIAQEQCADIARqIAFBFGohBiACKAIMIANBDGxqIQEgAkEkaiEDA0AgA0EIaiAGQQhqLwEAOwEAIAMgBikCADcCACACIAU2AiAgAkEUaiACQSBqEIYSIAFBCGogAkEcaigCADYCACABIAIpAhQ3AgAgAUEMaiEBIAVBDGohBSAEQQFrIgQNAAshAwsgACACKQIINwIAIABBCGogAzYCAAsgAkEwaiQAC8YCAQF/IwBB8ABrIgIkACAAKAIAIQAgAkGA7NkANgJoIAJBoOzZADYCYCACIABBwQBqNgJcIAJBoOzZADYCWCACIABBQGs2AlQgAkGg7NkANgJQIAIgAEE/ajYCTCACQaDs2QA2AkggAiAAQT5qNgJEIAJBoOzZADYCQCACIABBPWo2AjwgAkHw7NkANgI4IAIgAEHDAGo2AjQgAkHg7NkANgIwIAIgAEEoajYCLCACQaDs2QA2AiggAiAAQTxqNgIkIAJB0OzZADYCICACIABBOGo2AhwgAkGw7NkANgIYIAIgAEE0ajYCFCACQcDs2QA2AhAgAiAANgIMIAJB1PDgADYCCCACIABBIGo2AgQgAiAAQcIAajYCbCACIAJB7ABqNgJkIAFBtPPgAEEJQczy4ABBDSACQQRqQQ0QlwsgAkHwAGokAAvG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FEUNACABDQIgA0F/NgIIIAIoAoQCIgEoAggNAyABQX82AgggAygCECEHIAFBDGogAygCFCIEEOQnIAEoAhAgASgCFEECdGogByAEQQJ0EIEJGiABIAQgASgCFGo2AhQgA0EANgIUIAEgASgCCEEBajYCCCADIAMoAghBAWo2AggLIAIgBjoAqwIgAiAFOgCqAiACIAApAQY3AawCIAJBtAJqIABBDmopAQA3AQAgAkG8AmogAEEWaikBADcBACACQcMCaiAAQR1qKAAANgAADwtBjLTgABDWHQALQfyz4AAQ1R0AC0Hss+AAENUdAAu5AgECfwJAAkACQAJAAkACQAJAIAAoAgAiACgCAA4GAQIDBAUGAAsgACgCBCIBEOIBIAFBwABBCBCiGAwFCyAAQQhqEKMUDAQLIABBCGoiASgCACAAQQxqKAIAEKElIAAoAgQgASgCABDFKiAAKAIYIgFFDQMgASgCACICEI0EIAJB4ABBCBCiGCABQQxBBBCiGAwDCyAAKAIEIgEQ+AsgAUEoQQgQohggACgCGCIBRQ0CIAEoAgAiAhCNBCACQeAAQQgQohggAUEMQQQQohgMAgsgAEEEahDBECAAKAIEIABBCGooAgAQxyogACgCGCIBRQ0BIAEoAgAiAhCNBCACQeAAQQgQohggAUEMQQQQohgMAQsgAEEEahD2CiAAKAIIIgEQ4gEgAUHAAEEIEKIYCyAAQShBCBCiGAudAgEDfyAALQA0QQNHBEAgAEEgaiABEPomCyABIABBOGoQwSsCQCAAKAI8IgBFDQAgACgCCEEMbCEDIAAoAgQhAANAIANFDQECQCAAKAIAIgIEQCACIAEQhjMMAQsCQAJAAkACQAJAAkBBBCAAKAIEIgIoAgBBBWsiBCAEQQZPG0EBaw4FAQIDBAUACyABKAIkIAJBCGoQmAgaDAULIAIoAgggAkEMaigCACABEPgsIAIoAiggARCGMwwECyABKAIkIAJBEGoQmAgaIAIoAiggARCGMwwDCyACQQhqIAEQoigMAgsgAiABEIkmDAELIAIoAgggAkEMaigCACABEPgsIAIoAiggARDvFwsgAEEMaiEAIANBDGshAwwACwALC60CAgF/AX4gACgCACIBQQlHBEACQAJAAkACQAJAAkACQAJAAkAgAQ4IAQIDBAUGBwgACyAAKQMQENAa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gIB4RwRAAkAgAygCFCIFIAMoAhgiBEGAgMAAQQoQ0CgEQAwBCyAFIARBysPAAEEJENAoBEBBASEHDAELQQEhBiAFIARBjIDAAEECENQUIQQLIAggBRCdLyABELItIAYNASADIAIQvxpBASECIAMoAgQhBCADKAIAIQEgBw0CIAENBEEAIQIMAwsgA0EMaiADQR9qQfjEwAAQ+gYhBCABELItCyACELItDAILIAENAQsgACACOgABQQAMAQsgACAENgIEQQELOgAAIANBIGokAAuEAgEGfyMAQSBrIgMkACADIAE2AgwgA0EQaiABEMUZIAACfwJAAkACQAJAIAMoAhAiCEGAgICAeEcEQAJAIAMoAhQiBSADKAIYIgRB9IHAAEEGENAoBEAMAQsgBSAEQfqBwABBCBDQKARAQQEhBwwBC0EBIQYgBSAEQYSCwABBAhDUFCEECyAIIAUQnS8gARCyLSAGDQEgAyACEL8aQQEhAiADKAIEIQQgAygCACEBIAcNAiABDQRBACECDAMLIANBDGogA0EfakGoxMAAEPoGIQQgARCyLQsgAhCyLQwCCyABDQELIAAgAjoAAUEADAELIAAgBDYCBEEBCzoAACADQSBqJAAL6gEBBn8jAEEgayIEJAACQCABIANPBEAgACADQQJ0aiEGIAMhBwNAIAcEQCAAIAUgACgCACIIIAIoAgBqIgVqIgk2AgAgBSAISSAFIAlLciEFIAdBAWshByACQQRqIQIgAEEEaiEADAELC0EAIQIgBUUNASABQQJ0IANBAnRrIQADQCAARQRAQQEhAgwDCyAGIAYoAgBBAWoiATYCACAAQQRrIQAgBkEEaiEGIAFFDQALDAELIARBADYCGCAEQQE2AgwgBEHgr+AANgIIIARCBDcCECAEQQhqQaC8wgAQkiYACyAEQSBqJAAgAgusAgEEfyMAQRBrIgMkAAJAIAItAAwiBEEBRgRAIAAgARCyKQwBCwJAAkACQAJAAkACQAJAAkAgAS0ADCIFQQFrDgIHAQALIARFDQEMAgsgBEUNAQsgASgCBCIEIAEoAggiASACKAIEIgYgAigCCCICELgvQf8BcQ4CAgMBCyADIAEoAgQgASgCCCACKAIEIAIoAggQzxkgACAFIAMQ+xkMBAsgAyAGIAIgBCABEOokIABBAiAFayADEPsZDAMLIABB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AEGAgICAeCEEAkACQCABQShqEKETIgNFDQAgAygCAEECRw0AIAMtAAhBAkcNACADLQAJQQlHDQAgASgCKCEDIAFBJTYCKCABIAEpA0A3A3ggAkEkaiABQTRqKQIANwIAIAJBLGogAUE8aigCADYCACACIAEpAiw3AhwgAiADNgIYIAJBGGoiAxCODiADIAFBABCZCCACKAIcIQUgAigCGCIEQYCAgIB4RwRAIAJBEGogAkEoaikCADcDACACIAIpAiA3AwgMAQsgAEGBgICAeDYCACAAIAU2AgQMAQsgACAFNgIEIAAgBDYCACAAIAIpAwg3AgggAEEQaiACQRBqKQMANwIACyACQTBqJAALkwICA38BfgJAAkAgACgCACICQQlHBEACQAJAAkACQAJAAkAgAkEBaw4IAQgCAwQHBQcACyAAKAIMQcgAbCEDIAAoAgghAgNAIAMEQCABIAIgAikDAEIDfSIFp0EBakEAIAVCAlQbQQJ0IgRB9JPkAGooAgBqKQMAIAIgBEGAlOQAaigCAGooAgAQ+yYgA0HIAGshAyACQcgAaiECDAELCwwHCyAAQQhqIAEQ2BAPCwJAAkAgACgCCEEBaw4CAQYACyABIABBEGoQyCYPCyABIABBEGoQySYPCyABIAAoAgQQhgUPCyAAQRBqIAEQ1ysPCyAAQQRqIAEQ3jEPCyAAQQhqIAEQzwYLDwsgAEEcaiABENcrC6ACAQF/IwBBEGsiAiQAAn8CQAJAAkACQAJAAkACQCAAKAIAIgAoAgBBAWsOBgECAwQFBgALIAIgAEEIajYCDCABQbvw4ABBBSACQQxqQa8JEJUODAYLIAIgAEEEajYCDCABQcrv4ABBBSACQQxqQbAJEJUODAULIAIgAEEEajYCDCABQaTO4ABBBCACQQxqQbEJEJUODAQLIAIgAEEEajYCDCABQc/v4ABBBiACQQxqQbIJEJUODAMLIAIgAEEEajYCDCABQajO4ABBBiACQQxqQbMJEJUODAILIAIgAEEEajYCDCABQdXv4ABBByACQQxqQaoJEJUODAELIAIgAEEEajYCDCABQevq4ABBBCACQQxqQbQJEJUOCyACQRBqJAALngIBA38CQAJAAkACQAJAAkACQCAAKAIAQQFrDgYBAgMGBQQACyABIABBCGoQ7h0PCyAAKAIMQShsIQIgACgC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BEF4cSEFA0AgAyAFT0UEQCACIAAgA2opAAAiBiACKQMYhTcDGCACEMAPIAIgBiACKQMAhTcDACADQQhqIQMMAQsLIAIgACADIARBB3EiABDIEzcDMAsgAiAANgI8IAJB/wEQzRELmwIBAX8jAEEQayICJAACfwJAAkACQAJAAkACQAJAIAAoAgBBAWsOBgECAwQFBgALIAIgAEEIajYCDCABQbvw4ABBBSACQQxqQeYCEJUODAYLIAIgAEEEajYCDCABQcrv4ABBBSACQQxqQecCEJUODAULIAIgAEEEajYCDCABQaTO4ABBBCACQQxqQegCEJUODAQLIAIgAEEEajYCDCABQc/v4ABBBiACQQxqQekCEJUODAMLIAIgAEEEajYCDCABQajO4ABBBiACQQxqQeoCEJUODAILIAIgAEEEajYCDCABQdXv4ABBByACQQxqQeECEJUODAELIAIgAEEEajYCDCABQevq4ABBBCACQQxqQesCEJUOCyACQRBqJAAL/QEBCH8jAEEQayICJAAgASgCDCEGAkACQCABKAIAIgQgASgCBCIDRgRAIAYgBGtBKG4hBSABKAIIIQEMAQsgBiADayIIQShuIgUgASgCCCIBQQF2TwRAIAQgAyAIEKAyGgwBCyACQQA2AgwgAkKAgICAgAE3AgRBCCEJIAMgBkcEQCACQQRqQQAgBUEIQSgQ0gogAigCCCEJIAIoAgwhBwsgCSAHQShsaiADIAgQgQkaIAJBDGoiAyAFIAdqNgIAIAEgBBDFKiAAQQhqIAMoAgA2AgAgACACKQIENwIADAELIAAgBTYCCCAAIAQ2AgQgACABNgIACyACQRBqJAALmwIBAX8jAEEQayICJAACfwJAAkACQAJAAkACQAJAIAAoAgBBAWsOBgECAwQFBgALIAIgAEEIajYCDCABQbvw4ABBBSACQQxqQeEFEJUODAYLIAIgAEEEajYCDCABQcrv4ABBBSACQQxqQeIFEJUODAULIAIgAEEEajYCDCABQaTO4ABBBCACQQxqQd4FEJUODAQLIAIgAEEEajYCDCABQc/v4ABBBiACQQxqQeMFEJUODAMLIAIgAEEEajYCDCABQajO4ABBBiACQQxqQcsGEJUODAILIAIgAEEEajYCDCABQdXv4ABBByACQQxqQeECEJUODAELIAIgAEEEajYCDCABQevq4ABBBCACQQxqQZwFEJUOCyACQRBqJAALmwIBAX8jAEEQayICJAACfwJAAkACQAJAAkACQAJAIAAoAgBBAWsOBgECAwQFBgALIAIgAEEIajYCDCABQbvw4ABBBSACQQxqQZMHEJUODAYLIAIgAEEEajYCDCABQcrv4ABBBSACQQxqQZQHEJUODAULIAIgAEEEajYCDCABQaTO4ABBBCACQQxqQZUHEJUODAQLIAIgAEEEajYCDCABQc/v4ABBBiACQQxqQZYHEJUODAMLIAIgAEEEajYCDCABQajO4ABBBiACQQxqQZcHEJUODAILIAIgAEEEajYCDCABQdXv4ABBByACQQxqQeECEJUODAELIAIgAEEEajYCDCABQevq4ABBBCACQQxqQZgHEJUOCyACQRBqJAALmwIBAX8jAEEQayICJAACfwJAAkACQAJAAkACQAJAIAAoAgBBAWsOBgECAwQFBgALIAIgAEEIajYCDCABQbvw4ABBBSACQQxqQa8JEJUODAYLIAIgAEEEajYCDCABQcrv4ABBBSACQQxqQbAJEJUODAULIAIgAEEEajYCDCABQaTO4ABBBCACQQxqQbEJEJUODAQLIAIgAEEEajYCDCABQc/v4ABBBiACQQxqQbIJEJUODAMLIAIgAEEEajYCDCABQajO4ABBBiACQQxqQbMJEJUODAILIAIgAEEEajYCDCABQdXv4ABBByACQQxqQaoJEJUODAELIAIgAEEEajYCDCABQevq4ABBBCACQQxqQbQJEJUOCyACQRBqJAAL/QEBCH8jAEEQayICJAAgASgCDCEGAkACQCABKAIAIgQgASgCBCIDRgRAIAYgBGtBKG4hBSABKAIIIQEMAQsgBiADayIIQShuIgUgASgCCCIBQQF2TwRAIAQgAyAIEKAyGgwBCyACQQA2AgwgAkKAgICAgAE3AgRBCCEJIAMgBkcEQCACQQRqQQAgBUEIQSgQiiEgAigCCCEJIAIoAgwhBwsgCSAHQShsaiADIAgQgQkaIAJBDGoiAyAFIAdqNgIAIAEgBBDTLyAAQQhqIAMoAgA2AgAgACACKQIENwIADAELIAAgBTYCCCAAIAQ2AgQgACABNgIACyACQRBqJAALmQIBAX8jAEEwayICJAAgAiAANgIMIAIgATYCCAJAIAAoAiBBAUcNACAAKAIoIgEgASgCACIBQQFrNgIAIAFBAUcNACAAQShqEMUeCyAAQQA2AiAgACACKQIQNwIkIABBLGogAkEYaigCADYCACACQQhqEIkFIAIoAggoAvgEKALIAiIBQQBIBEAgAkEBNgIUIAJBnJ3EADYCECACQgE3AhwgAkHuADYCLCACQfScxAA2AiggAiACQShqNgIYIAJBEGpBlJ7EABCSJgALIABBADYCSCAAQTBqIAEQyycgAEE8aiABEMsnIABBADYCZCAAQcwAaiABEMsnIABB2ABqIAEQyycgAEEANgKwASAAQQA2AmwgAkEwaiQAC+cBAQN/IwBBMGsiAiQAAkACQCADKAIQIgUgAygCFCIGSw0AAkAgAygCAEEBa0ECTwRAIAJBDGogASADKAIIIAMoAgwgBSAGEMsPIAIoAgxBAUcNAiACKAIUIgMgAigCEE8NAQwDCyACQQxqIAEgAygCCCADKAIMIAUgBhDuFSACKAIMQQFHDQEgAigCFCIDIAIoAhBJDQILIAAgAzYCCCAAQQA2AgRBASEECyAAIAQ2AgAgAkEwaiQADwsgAkEANgIoIAJBATYCHCACQaCrwwA2AhggAkIENwIgIAJBGGpB2JrDABCSJgAL5wEBA38jAEEwayICJAACQAJAIAMoAhAiBSADKAIUIgZLDQACQCADKAIAQQFrQQJPBEAgAkEMaiABIAMoAgggAygCDCAFIAYQlAkgAigCDEEBRw0CIAIoAhQiAyACKAIQTw0BDAMLIAJBDGogASADKAIIIAMoAgwgBSAGEM8KIAIoAgxBAUcNASACKAIUIgMgAigCEEkNAgsgACADNgIIIABBADYCBEEBIQQLIAAgBDYCACACQTBqJAAPCyACQQA2AiggAkEBNgIcIAJBoKvDADYCGCACQgQ3AiAgAkEYakHYmsMAEJImAAuyAgEBfyMAQfAAayICJAAgACgCACgCACEAIAJB1NDWADYCaCACQcSywwA2AmAgAiAAQTFqNgJcIAJBpLLDADYCWCACIABBEGo2AlQgAkHUssMANgJQIAIgAEEsajYCTCACQcSywwA2AkggAiAAQTBqNgJEIAJBtLLDADYCQCACIABBKGo2AjwgAkG0ssMANgI4IAIgAEEkajYCNCACQbSywwA2AjAgAiAAQSBqNgIsIAJBtLLDADYCKCACIABBHGo2AiQgAkG0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QeAAQQgQohggAEEMQQQQohgLDwsgACgCBCIBENMLIAFBKEEIEKIYIAAoAggiABDHASAAQcAAQQgQohgPCyAAKAIAIgEQlgQgAUHgAEEIEKIYIABBDEEEEKIYC/YBAQp/IwBBEGsiBCQAIAFBFGohCSABIAEtABgiA2pBE2ohCiABKAIMIQIgASgCBCEHIAEoAgghCCABKAIQIQUgA0EFSSELAkACQAJAA0BBACEGIAUgCEsgAiAFS3INAyAEQQhqIAotAAAgAiAHaiAFIAJrENwSIAQoAghBAUcNASABIAQoAgwgAmpBAWoiAjYCDCACIANJIAIgCEtyDQAgC0UNAiAHIAIgA2siBmogAyAJIAMQ0ChFDQALIAAgAjYCCCAAIAY2AgRBASEGDAILIAEgBTYCDAwBCyADQQRBuIrhABDpFgALIAAgBjYCACAEQRBqJAALkQIBA38CQAJAAkACQAJAAkACQCAAKAIAQQFrDgYBAgMGBQQACyAAQQA2AhgPCyAAKAIMQShsIQIgACgCCCEAA0AgAkUNBCAAIAEQySsgAkEoayECIABBKGohAAwACwALIABBBGogARCRMw8LIAAoAgxBOGwhAyAAKAIIIQQDQCACIANGDQICQAJAAkACQCACIARqIgAoAgBBAWsOAgECAAsgAEEIaigCACAAQQxqKAIAIAEQgS0gAEEoaiABEPgxDAILIABBIGpBADYCACAAQTBqKAIAIgBFDQEgACABEIozDAELIABBBGogARCRMwsgAkE4aiECDAALAAsgACgCBCABEIozCw8LIABBBGogARCFLgugAgEKfyMAQRBrIgEkACAAKAKoAyAAKAKsAyAAKAL8BSIDQZSRwAAQqSghAgJAIAAoAqADLQAERQ0AIAIoAghFDQAgAigCBCEFIAFBCGogAEGkA2oiByADQQAgABCXHiAAQewDaiEIIAAoAsQDIQkgACgCwAMhCiAAKAK4AyECIAAoArQDIQQgASgCDCEAIAEoAgghBgNAIAZBAUcNAQJAIAQgAiAAQaSRwAAQqigoAAEgA0cNACAEIAIgAEG0kcAAEKooQQA2AAEgBUUNACAKIAkgBSAIIAQgAiAAQcSRwAAQqigtAABqLQAAakHUkcAAEKgoQQA2AgALIAEgByADQQEgABCXHiABKAIEIQAgASgCACEGDAALAAsgAUEQ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aiAAIANBOGwiBWogAxCIDCEAIAEgASAEaiABIAVqIAMQiAwhASACIAIgBGogAiAFaiADEIgMIQILAn8gACgCACIDIAEoAgAiBEcEQCADIARJDAELIAAoAgQgASgCBEkLIQUCfyACKAIAIgYgA0cEQCADIAZJDAELIAAoAgQgAigCBEkLIAVGBH8gAiABIAQgBkcEfyAEIAZJBSABKAIEIAIoAgRJCyAFcxsFIAALC/cBAQR/IAIoAgghAyACKAIEIQQgABCbFSEFAkACQCABIAIoAgBJBEADQCADRQRAQQAhAAwECyAFKAIQIAUoAhQgA0EBayIAQfTI2AAQqygiBigCACABSQ0CIARBAiAGLQAEIgNBAWsgA0EERhtB/wFxayEEIAAhAwwACwALIAMgBSgCFCIAIAAgA0kbIQADQCAAIANGDQIgBSgCECAFKAIUIANBhMnYABCrKCIGKAIAIAFPDQEgBEECIAYtAAQiBkEBayAGQQRGG0H/AXFqIQQgA0EBaiEDDAALAAsgAyEACyACIAA2AgggAiAENgIEIAIgATYCACAEC4wCAQR/AkACQAJAAkAgAS0AAUUNACAAKALgASIDKAIIIgJB/v///wdLDQEgAygCFEUNACACDQIgA0F/NgIIIAAoAtwBIgIoAggNAyACQX82AgggAygCECEFIAJBDGogAygCFCIEEOQnIAIoAhAgAigCFEECdGogBSAEQQJ0EIEJGiACIAQgAigCFGo2AhQgA0EANgIUIAIgAigCCEEBajYCCCADIAMoAghBAWo2AggLIAAgASkAADcAggIgAEGXAmogAUEVaikAADcAACAAQZICaiABQRBqKQAANwAAIABBigJqIAFBCGopAAA3AAAPC0GMtOAAENYdAAtB/LPgABDVHQALQeyz4AAQ1R0AC/YBAgJ/An4jAEEgayICJAACQCAAKAIAIgNBAE4EQCACQQhqIAEQ6SUgAigCCEEBcUUNASACIANBAXQiAyACKAIMIgEgASADSRtBMBD1HSAAQQhqIgEoAgAhAyACKQMAIQQgAUEANgIAIAJBGGoiASADNgIAIAApAgAhBSAAIAQ3AgAgAiAFNwMQIAAoAhQiAyAAKAIMRgRAIABBDGoQ4SALIAAgA0EBajYCFCAAKAIQIANBDGxqIgAgAikDEDcCACAAQQhqIAEoAgA2AgAgAkEgaiQADwtB8NvgAEERQZDA4AAQyRkAC0Hw2+AAQRFBoMDgABDJGQAL9gECAn8CfiMAQSBrIgIkAAJAIAAoAgAiA0EATgRAIAJBCGogARDpJSACKAIIQQFxRQ0BIAIgA0EBdCIDIAIoAgwiASABIANJG0E4EPUdIABBCGoiASgCACEDIAIpAwAhBCABQQA2AgAgAkEYaiIBIAM2AgAgACkCACEFIAAgBDcCACACIAU3AxAgACgCFCIDIAAoAgxGBEAgAEEMahDhIAsgACADQQFqNgIUIAAoAhAgA0EMbGoiACACKQMQNwIAIABBCGogASgCADYCACACQSBqJAAPC0Hw2+AAQRFBkMDgABDJGQALQfDb4ABBEUGgwOAAEMkZAAuHAgICfwF+AkAgACgCACICQQlHBEACQAJAAkACQAJAAkACQCACQQFrDggBAgMEBQgGCAALIAAoAgxByABsIQMgACgCCCECA0AgAwRAAkACQAJAAkAgAikDAEIDfSIEp0EBakEAIARCAlQbQQFrDgIBAgALIAEgAhDeJQwCCyABIAJBCGoQ3yUMAQsgASACQQhqEN8lCyACQcgAaiECIANByABrIQMMAQsLIAAoAhwgARDdGg8LIABBCGogARCSDg8LIAEgAEEEahDkEg8LIAEgAEEIahC2BA8LIAEgACgCBBCmHA8LIAAoAhAgARDdGg8LIAAoAgQgARCIMw8LIABBCGogARDSCAsL4wECBX8BfiABKAIMIgQgAUEMaygCAEkEQCMAQRBrIgNBCGogAUEIaigCADYCACADIAEpAgA3AwAgAUEkayECIAEpAhAhBwJ/AkADQCACIgFBNGogAUEcaikCADcCACABQSxqIAFBFGopAgA3AgAgAUEkaiIFIAFBDGoiBiICKQIANwIAIAAgAkYNASABQRhrIQIgBCABKAIASQ0ACyAGIQIgBQwBCyABQQxqIQIgAUEkagshASACIAMpAwA3AgAgAkEIaiADQQhqKAIANgIAIAFBCGsgBzcCACABQQxrIAQ2AgALC/4BAgN/AX4jAEEQayICJAACQAJAAkACQAJAAkAgACgCAA4EAQIDBAALIAApAxAgACgCGBCdFQwECyAAKQMIIgRCA4NCAFINAyACIASnIgE2AgwgAkEMahDQBiABIAEoAgAiA0EBazYCACADQQFHDQMgASABKAIgEI0nDAMLIABBCGoQvxAMAgsgACkDGCIEUCAEQgODQgBScg0BIAIgBKciATYCCCACQQhqENAGIAEgASgCACIDQQFrNgIAIANBAUcNASABIAEoAiAQjScMAQsgACgCBCIBEKABIAFBwABBCBCiGAsgACgCICIAEMgHIABBKEEIEKIYIAJBEGokAAv+AQIDfwF+IwBBEGsiAiQAAkACQAJAAkACQAJAIAAoAgAOBAECAwQACyAAKQMQIAAoAhgQnRUMBAsgACkDCCIEQgODQgBSDQMgAiAEpyIBNgIMIAJBDGoQ0AYgASABKAIAIgNBAWs2AgAgA0EBRw0DIAEgASgCIBCNJwwDCyAAQQhqEL8QDAILIAApAxgiBFAgBEIDg0IAUnINASACIASnIgE2AgggAkEIahDQBiABIAEoAgAiA0EBazYCACADQQFHDQEgASABKAIgEI0nDAELIAAoAgQiARChASABQcAAQQgQohgLIAAoAiAiABDJByAAQShBCBCiGCACQRBqJAAL5AEBBH8gACgCCCICBEAgACgCBCIDIAJBBnRqIQUDQCADQgA3AiggAygCOCIEBEAgAygCNCECIARBDGwhBANAIAIgARDNLSACQQxqIQIgBEEMayIEDQALCyADIAEQ6QcgA0FAayICIQMgAiAFRw0ACwsgACgCFCIDBEAgACgCECECIANBDGwhBANAIAIgARDNLSACQQxqIQIgBEEMayIEDQALCyAAQgA3AjAgACgCGEGAgICAeEcEQCAAQRhqIAEQ8CELIAAoAjwiAgRAIAIgARC2FQsgACgCQCIABEAgACABEM4tCwvHAgECfwJAAkAgACgCACICQQlHBEACQAJAAkACQAJAAkACQCACQQFrDggBAgMEBQgGCAALIAAoAgwiAgRAIAJByABsIQIDQCACQcgAayICDQALCyAAKAIcIgBFDQcMCAsgAEEIaiABENYHDwsgACgCDCICBEAgAkHQAGwhAgNAIAJB0ABrIgINAAsLIAAoAhwiAEUNBQwGCwJAAkAgACgCCEEBaw4CAQYACyAAQRBqKAIYIAEQywUPCyAAQRBqKAIYIAEQsw4PCyABIAAoAgQQ7AIPCyAAKAIQIgBFDQIMAwsgASAAKAIEEOwCDwsgAEEIaiABEP4ECw8LIAAoAggiAgRAIAAoAgQhACACQQxsIQID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AQF/IwBB4ABrIgIkACACQfT9wwA2AlggAkHk/cMANgJQIAJBtP3DADYCSCACQdT9wwA2AkAgAkG0/cMANgI4IAJBxP3DADYCMCACQbT9wwA2AiggAkG0/cMANgIgIAJBtP3DADYCGCACQaT9wwA2AhAgAkGU/cMANgIIIAIgADYCLCACIABBMGo2AkwgAiAAQdUAajYCRCACIABBKGo2AjwgAiAAQdQAajYCNCACIABB0wBqNgIkIAIgAEHSAGo2AhwgAiAAQdEAajYCFCACIABBQGs2AgwgAiAAQdAAajYCBCACIABBOGo2AlwgAiACQdwAajYCVCABQcajxABBBkGc/8MAQQsgAkEEakELEJcLIAJB4ABqJAAL2QEBB38gASgCCCICIAEoAgQiBCACIARLGyEIIAEoAgAhBSACIQYCQAJAA0AgCCAGIgNGDQEgASADQQFqIgY2AgggAyAFai0AACIHQTBrQf8BcUEKSSAHQeEAa0H/AXFBBklyDQALIAdB3wBHDQACQCACBEAgAiAESQRAIAIgBWosAABBQEggAyAES3INBAwCCyADIARNDQEMAwsgAyAESw0CCyAAIAMgAms2AgQgACACIAVqNgIADwsgAEEANgIAIABBADoABA8LIAUgBCACIANB9NvWABC5LQAL1wEBBX8jAEEgayIBJAAgACgCACICQX9GBEBBAEEAEKMvAAsgAkEBdCIDIAJBAWoiBSADIAVLGyIDQf////8DSwRAQQBBABCjLwALAkBBBCADIANBBE0bIgNBAnQiBUH8////B00EfyABIAIEfyABIAJBAnQ2AhwgASAAKAIENgIUQQQFQQALNgIYIAFBCGpBBCAFIAFBFGoQ8xQgASgCCEEBRw0BIAEoAhAhBCABKAIMBSAECyAEEKMvAAsgASgCDCECIAAgAzYCACAAIAI2AgQgAUEgaiQAC9YBAQV/IwBBIGsiASQAIAAoAgAiAkF/RgRAQQBBABCjLwALIAJBAXQiAyACQQFqIgUgAyAFSxsiA0H///8/SwRAQQBBABCjLwALAkBBBCADIANBBE0bIgNBBXQiBUH4////B00EfyABIAIEfyABIAJBBXQ2AhwgASAAKAIENgIUQQgFQQALNgIYIAFBCGpBCCAFIAFBFGoQ8xQgASgCCEEBRw0BIAEoAhAhBCABKAIMBSAECyAE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AgAQmDAPCyABKAIAIgAQzx4gAEE4QQQQohgPCyABEJEsDwsgASgCACIAQSRqEJAsIABBxABBBBCiGA8LIAEoAgAiABDfISAAQcgAQQQQohgPCyABKAIAIgAQvi0gAEEkQQQQohgPCyABKAIAQRxBBBCiGAvpAQIHfwF+IwBBIGsiAiQAQYCAgIB4IQQCQCABKAIAQYCAgIB4Rg0AIAEoAgQhCCACQQhqIAEoAggiBkEEQRAQ4x0gAigCCCIEIAZB/////wBxIgEgASAESxshBUEAIQEgAigCDCEHA0AgBUUNASACQRBqIAEgCGoiA0EEaigCACADQQhqKAIAEKQeIAIgA0EMai0AADoAHCACKQIQIQkgASAHaiIDQQhqIAJBGGopAgA3AgAgAyAJNwIAIAVBAWshBSABQRBqIQEMAAsACyAAIAY2AgggACAHNgIEIAAgBDYCACACQSBqJAAL7gEBAX8jAEEgayICJAACQAJAIAEQqzJFBEAgAkEMaiABEIUKIAIoAgxBgICAgHhHBEAgAkEIaiACQRRqKAIANgIAIAIgAikCDDcDACAAIAIQixcMAgsgACABEJ0KNgIYIABBAjYCACAAQRRqIAFBEGooAgA2AgAgAEEMaiABQQhqKQIANwIAIAAgASkCADcCBAwCCyACQRBqEPclIAJBATYCDCAAIAJBDGoQnQo2AhggAEECNgIAIABBFGogAkEcaigCADYCACAAQQxqIAJBFGopAgA3AgAgACACKQIMNwIECyABEJQnCyACQSBqJAALpgICBX8BfiMAQSBrIgQkACABKAIEIAEoAgBrQQN2IgIgACgCACAAKAIIIgNrSwRAIAAgAyACQQRBCBClISAAKAIIIQMLIAAoAgQgBEEYaiABQRBqKAIANgIAIARBEGogAUEIaikCADcDACAEIAEpAgAiBzcDCCADQQN0aiECIAMgBCgCDCIFIAenIgFrQQN2aiEDA0AgASAFRwRAIAIgASkCADcCACABQQhqIQEgAkEIaiECDAELCyAAIAM2AgggBEKEgICAwAA3AwggBEEIaiIAKAIQIgEEQCAAKAIMIgUgACgCCCIDKAIIIgJHBEAgAygCBCIGIAJBA3RqIAYgBUEDdGogAUEDdBCgMhogACgCECEBCyADIAEgAmo2AggLIARBIGokAAvoAQIDfwF+IwBBEGsiAiQAIABBCGoQvxACQCAALQA0IgFBA0YNACABQQJGBEAgACgCICIBEKoPIAFBMEEIEKIYDAELIAApAyAiBEIDg0IAUg0AIAIgBKciATYCDCACQQxqENAGIAEgASgCACIDQQFrNgIAIANBAUcNACABIAEoAiAQjScLIAAoAjgiAQRAIAEQvCIgASgCACABQQRqKAIAEMMqIAFBFEEEEKIYCyAAKAI8IgAEQCAAQQRqIgEoAgAgAEEIaigCABC9HCAAKAIAIAEoAgAQwCogAEEUQQQQohgLIAJBEGokAAvhAQIFfwF+IwBBEGsiAiQAIAAoAgwiASAAKAIEIgNHBEAgASADa0EFdiEFA0ACQCADQRBqKQMAIgZQIAZCA4NCAFJyDQAgAiAGpyIBNgIIIAJBCGoQ0AYgASABKAIAIgRBAWs2AgAgBEEBRw0AIAEgASgCIBCNJwsCQCADKQMAIgZCA4NCAFINACACIAanIgE2AgwgAkEMahDQBiABIAEoAgAiBEEBazYCACAEQQFHDQAgASABKAIgEI0nCyADQSBqIQMgBUEBayIFDQALCyAAKAIIIAAoAgAQxCogAkEQaiQAC7kCAQF/AkACQCAAKAIAIgJBCUcEQAJAAkACQAJAAkACQAJAIAJBAWsOCAECAwQFCAYIAAsgACgCDCICBEAgAkHIAGwhAgNAIAJByABrIgINAAsLIAAoAhwiAEUNBwwICyAAQQhqIAEQvAMPCyAAKAIMIgIEQCACQdAAbCECA0AgAkHQAGsiAg0ACwsgACgCHCIARQ0FDAYLAkACQCAAKAIIQQFrDgIBBgALIAFBADoABA8LIAFBADoABA8LIAEgACgCBBCXBg8LIAAoAhAiAEUNAgwDCyABIAAoAgQQlwYPCyAAQQhqIAEQggULDwsgACgCCCICBEAgACgCBCEAIAJBDGwhAgNAAkAgACgCAARAIAFBADoABAwBCyAAQQRqKAIAIAEQ2wwLIABBDGohACACQQxrIgINAAsLC+kBAQN/IwBBEGsiAyQAIAAoAggiBUGAgARJBEAgACgCFCIEIAAoAgxGBEAgAEEMahDgIAsgACAEQQFqNgIUIAAoAhAgBEECdGogBTYCACADQQhqIAJBAUEBEJUdIAMoAgghBCADKAIMIAEgAhCBCSEFIAAoAggiASAAKAIARgRAIAAQ4SALIAAgAUEBajYCCCAAKAIEIAFBDGxqIgEgAjYCCCABIAU2AgQgASAENgIAIAAgACgCHCACajYCHCAAIAAoAhgiACACIAAgAkkbNgIYIANBEGokAA8LQcyswABBN0GErcAAENUhAAviAQEGfyMAQRBrIgIkACACQQhqIAFBAXYiAyAAIANBpIzhABCEJyACKAIMIQYgAigCCCEFIAIgAyAAIAFBAnRqIANBAnQiAGsgA0G0jOEAEIQnIAAgAigCAGpBBGshAEEAIQEgAigCBCEHAkACQANAIAEgA2oiBEUNASABIAZqRQ0CIAcgBEEBayIESwRAIAUoAgAhBCAFIAAoAgA2AgAgACAENgIAIAVBBGohBSAAQQRrIQAgAUEBayEBDAELCyAEIAdB1IzhABDnFgALIAJBEGokAA8LIAYgBkHEjOEAEOcWAAuHAgEBfyMAQSBrIgIkAAJAAkACQAJAAkACQAJAAkACQCABKAIAQQFrDgcBAgMEBQYHAAsgAUEBOgAkDAcLIAFBAToAJAwGCyABKAIEQQE6ABgMBQsgAkEBNgIIIAJB8OnZADYCBCACQgA3AhAgAiACQRxqNgIMIAJBBGpB+OnZABCSJgALIAEoAgRBAToARAwDCyABKAIEQQE6ACgMAgsgASgCBEEBOgAsDAELIAEoAgRBAToAUAsgACABKQMANwMAIABBIGogAUEgaikDADcDACAAQRhqIAFBGGopAwA3AwAgAEEQaiABQRBqKQMANwMAIABBCGogAUEIaikDADcDACACQSBqJAAL5QEBAX8jAEEgayIDJAAgA0HCADoAACAAAn8gAS0AFEECRgRAIAAgAykDADcDCCAAQRhqIANBEGopAwA3AwAgAEEQaiADQQhqKQMANwMAIAIQ0BAgAkHAAEEEEKIYQQgMAQsgAxCKAyADQQxqIAFBCGopAgA3AgAgA0EUaiABQRBqKQIANwIAIABBADoAJCAAIAI2AiAgAyABKQIANwIEIAAgAykCADcCBCAAQQxqIANBCGopAgA3AgAgAEEUaiADQRBqKQIANwIAIABBHGogA0EYaigCADYCAEEACzYCACADQSBqJAALjgIBBH8jAEEQayIEJAACQCABLQAUQQJGDQAgBEEIaiABEMoQAkAgBCgCCCICIAQoAgwiA0GHneAAQQYQ0CgNACACIANBnJ3gAEEEENAo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KAIgEI0nDAMLIABBCGoQvxAMAgsgACkDGCIDUCADQgODQgBScg0BIAEgA6ciADYCDCABQQxqENAGIAAgACgCACICQQFrNgIAIAJBAUcNASAAIAAoAiAQjScMAQsgACgCBCIAENYBIABBwABBCBCiGAsgAUEQaiQAC+sBAgJ/AX4jAEEQayIBJAACQAJAAkACQAJAAkAgACgCAA4EAQIDBAALIAApAxAgACgCGBCdFQwECyAAKQMIIgNCA4NCAFINAyABIAOnIgA2AgggAUEIahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQMgACAAKAIgEI0nDAMLIABBCGoQvxAMAgsgACkDGCIDUCADQgODQgBScg0BIAEgA6ciADYCDCABQQxqENAGIAAgACgCACICQQFrNgIAIAJBAUcNASAAIAAoAiAQjScMAQsgACgCBCIAEMQBIABBwABBCBCiGAsgAUEQaiQAC+sBAgJ/AX4jAEEQayIBJAACQAJAAkACQAJAAkAgACgCAA4EAQIDBAALIAApAxAgACgCGBCdFQwECyAAKQMIIgNCA4NCAFINAyABIAOnIgA2AgggAUEIahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQMgACAAKAIgEI0nDAMLIABBCGoQvxAMAgsgACkDGCIDUCADQgODQgBScg0BIAEgA6ciADYCDCABQQxqENAGIAAgACgCACICQQFrNgIAIAJBAUcNASAAIAAoAiAQjScMAQsgACgCBCIAEKMBIABBwABBCBCiGAsgAUEQaiQAC+0BAQN/AkACQAJAAkACQCAAKAIAQQFrDgMCAwABCyAAKAIIIQMgACgCDCICBEAgAyEBA0AgARCBDiABQShqIQEgAkEBayICDQALCyAAKAIEIAMQxSoPCyAAQQhqEMsKDwsgACgCBEUNASAAKAIIIgAQowEgAEHAAEEIEKIYDwsgACgCBCIAQUBrEJUNIABBlAFqKAIAIQEgACgCmAEiAgRAA0AgARCBDiABQShqIQEgAkEBayICDQALIABBlAFqKAIAIQELIAAoApABIAEQxSogAC0APEEGRwRAIABBEGoQ7hILIABBoAFBCBCiGAsLrQIBAn8CQAJAIAAoAgAiAkEJRwRAAkACQAJAAkACQAJAAkAgAkEBaw4IAQIDBAUIBggACyAAKAIMIgIEQCACQcgAbCECA0AgAkHIAGsiAg0ACwsgACgCHCIARQ0HDAgLIABBCGogARDrBw8LIAAoAgwiAgRAIAJB0ABsIQIDQCACQdAAayICDQALCyAAKAIcIgBFDQUMBgsgACgCCA0EIABBEGooAhggARDaBw8LIAEgACgCBBDKAQ8LIAAoAhAiAEUNAgwDCyABIAAoAgQQygEPCyAAQQhqIAEQ8gQLDwsgACgCCCICBEAgACgCBCEAIAJBDGwhAgNAAkAgACgCACIDBEAgASADEMoBDAELIABBBGooAgAgARD7FgsgAEEMaiEAIAJBDGsiAg0ACwsL2AEBAn8gAEEoaiEDAkACQAJAIAAtAPgCQQJHDQAgAxChEyICBEAgAigCAEEIRg0CCyADEKETIgJFDQAgAigCAEETRg0BCwJAIAMQoRMiAkUNACACKAIAQRVHDQAgAi0ABEUNAQsgAxChEyICBEAgAigCAEEORg0BCyADEKETIQICQCABRQRAIAINAUEAIQEMAwtBASEBIAJFDQIgAigCAEE+cUEORg0CIAMQoRMaIAMoAgBBJUYNAiAALQBIIQEMAgsgAigCAEEPRiEBDAELQQEhAQsgAUEBcQvjAQIBfwF+IwBBIGsiAyQAIANBADYCDCADQRhqIAEgA0EMakGanOAAQQEQ8w4CQAJAAkAgAy0AGEEERwRAIAMpAxgiBEL/AYNCBFINAQsCQCACKAIAQQFHDQAgA0EYaiACQQRqIAEQ4C8gAy0AGEEERg0AIAMpAxgiBEL/AYNCBFINAgsgA0EYaiABIANBDGpBm5zgAEEBEPMOAkAgAy0AGEEERwRAIAMpAxgiBEL/AYNCBFINAQsgAEEEOgAADAMLIAAgBDcCAAwCCyAAIAQ3AgAMAQsgACAENwIACyADQSBqJAAL5gECAX8BfiMAQRBrIgMkAAJAAkACQAJAAkACQCABKAIAQQFrDgIBAgALIAMgAUEEajYCBCADQQhqIANBBGogAhDcGiADLQAIQQRGDQIgAykDCCIEQv8Bg0IEUQ0CIAAgBDcCAAwECyADIAFBBGo2AgQgA0EIaiADQQRqIAIQngggAy0ACEEERg0BIAMpAwgiBEL/AYNCBFENASAAIAQ3AgAMAwsgA0EIaiABQQRqIAIQ5C8gAy0ACEEERg0AIAMpAwgiBEL/AYNCBFINAQsgAEEEOgAADAELIAAgBDcCAAsgA0EQaiQAC+IBAgp/An4gASgCACACKAIMIgZBHGxqIgNBCGoiBykCACENIANBEGoiCCkCACEOIANBGGoiCSgCACEKIAAoAgQhCyACKAIIIgEoAgQhDCAAKAIAIQQgASgCACEFIAIoAgAiACADKQIANwIAIABBGGogCjYCACAAQRBqIA43AgAgAEEIaiANNwIAIAkgAUEYaigCADYCACAIIAFBEGopAgA3AgAgByABQQhqKQIANwIAIAMgASkCADcCACACIAYgCyAMSyAEIAVLIAQgBUYbajYCDCACIAE2AgAgAiABQRxqNgIIC+IBAgp/An4gASgCACACKAIMIgZBHGxqIgNBCGoiBykCACENIANBEGoiCCkCACEOIANBGGoiCSgCACEKIAAoAgQhCyACKAIIIgEoAgQhDCAAKAIAIQQgASgCACEFIAIoAgAiACADKQIANwIAIABBGGogCjYCACAAQRBqIA43AgAgAEEIaiANNwIAIAkgAUEYaigCADYCACAIIAFBEGopAgA3AgAgByABQQhqKQIANwIAIAMgASkCADcCACACIAYgCyAMTyAEIAVPIAQgBUYbajYCDCACIAE2AgAgAiABQRxqNgIIC90BAQN/IwBBEGsiAyQAAn8gAigCAEEBcQRAQdC62AAhBEEJDAELIANBBGogAigCBCACKAIIEMQFQdC62AAgAygCCCADKAIEIgIbIQRBCSADKAIMIAIbCyECIAQgAiABEM8PAkAgACgCACIBQYCAgIB4RwRAIAFFDQEgACgCBCABQQEQohgMAQsgAC0ABEEDRw0AIAAoAggiACgCACEBIABBBGooAgAiAigCACIFBEAgASAFEQIACyACKAIEIgUEQCABIAUgAigCCBCiGAsgAEEMQQQQohgLIANBEGokAAvbAQEBfyMAQSBrIgMkACADQcIAOgAAIAACfyABLQAUQQJGBEAgACADKQMANwMIIABBGGogA0EQaikDADcDACAAQRBqIANBCGopAwA3AwAgAhDiDkEIDAELIAMQigMgA0EMaiABQQhqKQIANwIAIANBFGogAUEQaikCADcCACAAQQA6ACQgACACNgIgIAMgASkCADcCBCAAIAMpAgA3AgQgAEEMaiADQQhqKQIANwIAIABBFGogA0EQaikCADcCACAAQRxqIANBGGooAgA2AgBBAQs2AgAgA0EgaiQAC9UBAgh/AX4jAEEwayIDJAAgAyACQQhBKBDzHSACQShsIQggAygCBCEHIAMoAgAiCSEGA0AgBkUgBCAIRnJFBEACQCABIARqIgUoAgBBB0YEQCAFQQRqKQIAIQsgBUEMaigCACEKIAMgBUEQaigCABDlIzYCGCADIAo2AhQgAyALNwIMIANBBzYCCAwBCyADQQhqIAUQlwMLIAQgB2ogA0EIakEoEKAyGiAGQQFrIQYgBEEoaiEEDAELCyAAIAI2AgggACAHNgIEIAAgCTYCACADQTBqJAALywEBBX8jAEEgayIDJAAgA0EIaiACIAFrIgRBACACIARPGyIEQQRBBBCVHSADQQA2AhwgAyADKAIMIgY2AhggAyADKAIIIgc2AhQgBCAHSwRAIANBFGpBACAEQQRBBBCSISADKAIYIQYgAygCHCEFCyAGIAVBAnRqIQQgBSACIAEgASACSRsiAmogAWshBQNAIAEgAkZFBEAgBCABNgIAIARBBGohBCABQQFqIQEMAQsLIAAgAykCFDcCACAAQQhqIAU2AgAgA0EgaiQAC8IBAgd+An8CQAJAAkAgAQ4CAgABCyAAQQFBAEH0lMIAEKgoNQIAIQIMAQsgAUECdCEJIABBBGshCiAAIAEQ9SUhBQNAIAlFDQFCwAAgBH0iByAFQgF9Qh+DIghCAXwiBiAGIAdWGyEDIAkgCmohACAEQsAAUgRAIAIgA4YgADUCACAGIAN9iIQhAgsgByAIWARAIAIgADUCACADIAZ9hkIAUq2EIQILIAlBBGshCSAFIAN9IQUgAyAEfCEEDAALAAsgAgvdAQECfyMAQUBqIgQkACAEIAM2AhAgBCACNgIMIAIgA0EBak0gASgCDCIFIANPcUUEQCAEQQI2AhggBEGIm+AANgIUIARCAjcCICAEQQw2AjggBEGAATYCMCAEIAU2AjwgBCAEQSxqNgIcIAQgBEE8ajYCNCAEIARBDGo2AiwgBEEUakGYm+AAEJImAAsgASADNgIUIAFBEGoiAyACNgIAIABBGGogAUEYaigCADYCACAAQRBqIAMpAgA3AgAgAEEIaiABQQhqKQIANwIAIAAgASkCADcCACAEQUBrJAALxwEBBX8CQCABKAIAIgIgASgCBEYEQAwBC0EBIQYgASACQQFqNgIAIAItAAAiA8BBAE4NACABIAJBAmo2AgAgAi0AAUE/cSEEIANBH3EhBSADQd8BTQRAIAVBBnQgBHIhAwwBCyABIAJBA2o2AgAgAi0AAkE/cSAEQQZ0ciEEIANB8AFJBEAgBCAFQQx0ciEDDAELIAEgAkEEajYCACAFQRJ0QYCA8ABxIAItAANBP3EgBEEGdHJyIQMLIAAgAzYCBCAAIAY2AgALywEBBn8jAEEgayICJAAgAkEIakEBQQRBCBDjHSACQQA2AhggAiACKQMINwMQIAJBEGpBARDWJyACKAIYIgNBAWohBSACKAIUIANBA3RqIQMgAUIgiKchBiABpyEHA0AgBEUEQCADIAc2AgAgA0EEaiAGNgIAIANBCGohA0EBIQQMAQsLIAIpAxAhASACQRhqIgMgBTYCACACIAVFOgAcIAIgATcDECACQRBqEIMHIABBCGogAykDADcCACAAIAIpAxA3AgAgAkEgaiQAC9wBAQR/IAAQ7hIgACgCQCECIAAoAkQiAwRAIAIhAQNAAkAgASgCAEEFRwRAIAFBMGoQ9RUgASgCAEEERg0BIAEQ7QwMAQsgAUEEaigCACIEEKABIARBwABBCBCiGAsgAUHYAGohASADQQFrIgMNAAsLIAAoAjwgAhDGKiAAKAI4IgIEQCACQQRqKAIAIQEgAigCCCIDBEADQCABKAIAIgAQ6AIgAEHgAEEIEKIYIAFBBGohASADQQFrIgMNAAsgAkEEaigCACEBCyACKAIAIAEQwyogAkEUQQQQohgLC9wBAQR/IAAQ7hIgACgCQCECIAAoAkQiAwRAIAIhAQNAAkAgASgCAEEFRwRAIAFBMGoQ9RUgASgCAEEERg0BIAEQ7wwMAQsgAUEEaigCACIEEKEBIARBwABBCBCiGAsgAUHYAGohASADQQFrIgMNAAsLIAAoAjwgAhDGKiAAKAI4IgIEQCACQQRqKAIAIQEgAigCCCIDBEADQCABKAIAIgAQ6QIgAEHgAEEIEKIYIAFBBGohASADQQFrIgMNAAsgAkEEaigCACEBCyACKAIAIAEQwyogAkEUQQQQohgLC9wBAQR/IAAQ7hIgACgCQCECIAAoAkQiAwRAIAIhAQNAAkAgASgCAEEFRwRAIAFBMGoQ9RUgASgCAEEERg0BIAEQ8wwMAQsgAUEEaigCACIEEJ4BIARBwABBCBCiGAsgAUHYAGohASADQQFrIgMNAAsLIAAoAjwgAhDGKiAAKAI4IgIEQCACQQRqKAIAIQEgAigCCCIDBEADQCABKAIAIgAQ6gIgAEHgAEEIEKIYIAFBBGohASADQQFrIgMNAAsgAkEEaigCACEBCyACKAIAIAEQwyogAkEUQQQQohgLC9kBAQR/IABCADcCDCAAKAIIIgIEQCAAKAIEIQQgAkE4bCEFA0ACQAJAAkACQCADIARqIgIoAgBBAWsOAgECAAsgAkEIaiABEPwgIAJBKGooAgAgARDpBwwCCyACQQhqQgA3AgAgAkEQaiABENApIAJBMGooAgAiAkUNASACIAEQ8gEMAQsgAkEQakIANwMAIAJBCGpCADcDACACQQRqKAIAIAEQ6QcgAkEYaigCACICRQ0AIAIgARDOLQsgBSADQThqIgNHDQALCyAAKAIUIgAEQCAAIAEQzi0LC9wBAQR/IAAQ7hIgACgCQCECIAAoAkQiAwRAIAIhAQNAAkAgASgCAEEFRwRAIAFBMGoQ9RUgASgCAEEERg0BIAEQ+QwMAQsgAUEEaigCACIEEKIBIARBwABBCBCiGAsgAUHYAGohASADQQFrIgMNAAsLIAAoAjwgAhDGKiAAKAI4IgIEQCACQQRqKAIAIQEgAigCCCIDBEADQCABKAIAIgAQtQIgAEHgAEEIEKIYIAFBBGohASADQQFrIgMNAAsgAkEEaigCACEBCyACKAIAIAEQwyogAkEUQQQQohgLC9wBAgN+BH8CQCAAKAIMRQ0AIAEpAwAgASgCCBD/JSECIAAoAgAiB0EQayEIIAJCGYhCgYKEiJCgwIABfiEEIAAoAgQiBSACp3EhAANAIAAgB2opAAAiAyAEhSICQn+FIAJCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiAlBFBEADQCABIAggAnqnQQN2IABqIAVxQQR0axCyKwRAQQEPCyACQgF9IAKDIgJQRQ0ACwsgAyADQgGGg0KAgYKEiJCgwIB/g1BFDQEgACAGQQhqIgZqIAVxIQAMAAsAC0EAC9wBAgN+BH8CQCAAKAIcRQ0AIAEpAwAgASgCCBD/JSECIAAoAhAiB0EQayEIIAJCGYhCgYKEiJCgwIABfiEEIAAoAhQiBSACp3EhAANAIAAgB2opAAAiAyAEhSICQn+FIAJCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiAlBFBEADQCABIAggAnqnQQN2IABqIAVxQQR0axCyKwRAQQEPCyACQgF9IAKDIgJQRQ0ACwsgAyADQgGGg0KAgYKEiJCgwIB/g1BFDQEgACAGQQhqIgZqIAVxIQAMAAsAC0EAC9wBAQR/IAAQ7hIgACgCQCECIAAoAkQiAwRAIAIhAQNAAkAgASgCAEEFRwRAIAFBMGoQ9RUgASgCAEEERg0BIAEQ/wwMAQsgAUEEaigCACIEEKMBIARBwABBCBCiGAsgAUHYAGohASADQQFrIgMNAAsLIAAoAjwgAhDGKiAAKAI4IgIEQCACQQRqKAIAIQEgAigCCCIDBEADQCABKAIAIgAQ3AIgAEHgAEEIEKIYIAFBBGohASADQQFrIgMNAAsgAkEEaigCACEBCyACKAIAIAEQwyogAkEUQQQQohgLC/0BAAJAAkACQAJAAkACQAJAAkAgACgCAEEBaw4HAgMEBQYHAAELIAAoAgQiABDvKCAALQBFQQNHBEAgAEEgahCHJgsgAEHYAEEIEKIYDwsgACkDCBDQGiAAQSBqEOgsDwsgACkDCBDQGiAAKAIgEOQlDwsgACgCBBDiLg8LIAAoAgQQ4y4PCyAAKAIEIgApAwgQ0BogACgCIBDuLiAAQThqEOItIABBJGoQ3S0gAEHIAEEIEKIYDwsgACgCBCIAKQMIENAaIAAoAiAQ7i4gAEEkahDCByAAQTBBCBCiGA8LIAAoAgQiACkDABDQGiAAQSBqEPotIABBMEEIEKIYC+gBAQF/IwBBEGsiFyQAIAAoAhQgASACIAAoAhgoAgwRAwAhASAXQQA6AA0gFyABOgAMIBcgADYCCCAXQQhqIAMgBCAFIAYQ9wggByAIIAkgChD3CCALIAwgDSAOEPcIIA8gECARIBIQ9wggEyAUIBUgFhD3CCEBIBctAA0iAiAXLQAMIgNyIQACQCADQQFxIAJBAUdyDQAgASgCACIALQAcQQRxRQRAIAAoAhRBx93WAEECIAAoAhgoAgwRAwAhAAwBCyAAKAIUQZuc4ABBASAAKAIYKAIMEQMAIQALIBdBEGokACAAQQFxC9sBAQN/IwBBMGsiAiQAAkAgAygCECIEIAMoAhQiBksNACABQQRqIQECQCADKAIAQQFrQQJPBEAgAkEMaiABIAMoAgggAygCDCAEIAYQqwcgAigCDEEBRw0CIAIoAhQiAyACKAIQTw0BIAJBADYCKCACQQE2AhwgAkGgq8MANgIYIAJCBDcCICACQRhqQdiawwAQkiYACyAEIAMoAgxPDQEgAS0AACADKAIIIARqLQAARw0BIARBAWohAwsgACADNgIIIABBADYCBEEBIQULIAAgBTYCACACQTBqJAAL0AEBBn8CQCAALQAMDQAgACgCCCEGA0AgBSAGRgRAIAAQ9wYgAEEBOgAMDAILQeEAIAAoAgQgACgCCCAFQbzCxwAQuygiAS0AACICIAJB4QBNGyIDQfoAIAEtAAEiASABQfoATxsiBE0EQCAAIANBIGtB/wFxIgMgBEEga0H/AXEiBCADIARJGyADIAQgAyAESxsQrSILQcEAIAIgAkHBAE0bIgJB2gAgASABQdoATxsiAU0EQCAAIAJBIGogAUEgahCtIgsgBUEBaiEFDAALAAsL4QECBn8BfiMAQSBrIgIkACACQQhqIAFB4OHfAEEFQQAQ6AEgAigCDCEDIAACfyACKAIIRQRAQQMhBAJAIANFDQAgAyACKAIQIgVBtKHgAEEGENAoBEBBACEEDAELIAMgBUG6oeAAQQkQ0CgEQEEBIQQMAQsgAyAFQcOh4ABBBxDQKARAQQIhBAwBCyABKAKcAyEGIAEoApgDIQcgAyAFEIkPIQggAkGkAToACCACIAg3AxAgASAHIAYgAkEIahDpIgsgACAEOgABQQAMAQsgACADNgIEQQELOgAAIAJBIGokAAvkAQEFfyAAKAIAQQNHBEAgASAAEL0TDwsgAS0AJSEEIAEtACQhBSABQQE7ASQgAS0AJyEGIAFBAToAJyABIAAoAhAiAhBEAkAgAigCAEEOayIDQRRLDQACQEEBIAN0QZWC2ABxDQAgA0ENRw0BIAIoAggOBAEAAAEACyABIAIQ7gELIAFBAjoAJCABIAY6ACcgAS0AJiEDIAFBADoAJiAAKAIMIgIEQCAAKAIIIQAgAkEEdCECA0AgASAAELEmIABBEGohACACQRBrIgINAAsLIAEgBDoAJSABIAU6ACQgASADOgAmC98BAgZ/AX4jAEEgayICJAAgAkEIaiABQeDh3wBBBUEAEM8DIAIoAgwhAyAAAn8gAigCCEUEQEEDIQQCQCADRQ0AIAMgAigCECIFQbSh4ABBBhDQKARAQQAhBAwBCyADIAVBuqHgAEEJENAoBEBBASEEDAELIAMgBUHDoeAAQQcQ0CgEQEECIQQMAQsgASgCfCEGIAEoAnghByADIAUQiQ8hCCACQaQBOgAIIAIgCDcDECABIAcgBiACQQhqEI8jCyAAIAQ6AAFBAAwBCyAAIAM2AgRBAQs6AAAgAkEgaiQAC8wBAQF/An8CQAJAAkACQAJAAkACQAJAAkAgASgCAEEBaw4IAQIDBAUGBwgACyABQRhqIQIgAUEUagwICyABQTRqIQIgAUEwagwHCyABQRRqIQIgAUEQagwGCyABQTRqIQIgAUEwagwFCyABQQxqIQIgAUEIagwECyABQQxqIQIgAUEIagwDCyABKAIEIgFBJGohAiABQSBqDAILIAFBDGohAiABQQhqDAELIAFBDGohAiABQQhqCyEBIAAgAigCADYCBCAAIAEoAgA2AgAL4wEBAn8jAEEQayIDJAACfyABKAIAIgIEQCADQQhqIAIgASgCBBCfICADKAIMIQEgAygCCAwBCwJAAkACQAJAAkACQEEEIAEoAgQiAigCAEEFayIBIAFBBk8bQQFrDgUEAwIBAAULIAIoAigiAigCNCEBIAIoAjAMBQsgAigCZCEBIAIoAmAMBAsgAigCRCEBIAIoAkAMAwsgAigCDCEBIAIoAggMAgsgAyACQQhqEL4ZIAMoAgQhASADKAIADAELIAIoAhQhASACKAIQCyECIAAgATYCBCAAIAI2AgAgA0EQaiQAC9wBAQR/IAEtABgEQCAAAn8gASgCFCIDBEAgACgCHCAAKAIgIAMoAgRBAWsQrxQMAQsgACgCHCAAKAIgIAEoAhAQ0BULEIInCyABKAIIQThsIQQgASgCBCEFQQAhAwNAAkAgAyAERwRAAkACQAJAIAMgBWoiAigCAEEBaw4CAQIACyACQQhqIAAQnCogAkEoaiAAEPAxDAMLIAJBEGogABCUFyACQTBqIgIoAgBFDQIgAiAAEOMxDAILIAJBBGogABCALgwBCyABKAIUIAAQ9ygPCyADQThqIQMMAAsAC+8BAQJ/IwBBEGsiBCQAAkACQAJAIAJBAE4EQCACQdn///8HTw0BIAJBJ2pB+P///wdxIgNB8f///wdPDQJBCCADQQ9qQXhxELkuIgNFDQMgA0EBNgIAIAMgAjYCICADIAApAwA3AwggA0EQaiAAQQhqKQMANwMAIANBGGogAEEQaikDADcDACADQShqIAEgAhCBCRogBEEQaiQAIAMPC0HAguEAQSsgBEEPakHw/MEAQfD9wQAQsRQAC0HAguEAQSsgBEEPakHw/MEAQYD+wQAQsRQAC0HAguEAQSsgBEEPakHw/MEAQeD9wQAQsRQLAAvMAQIFfwF+IwBBIGsiAiQAIAJBCGpBAUEBQQIQ4x0gAkEANgIYIAIgAikDCDcDECACQRBqQQEQ1ycgAUGA/gNxQQh2IQYgAigCGCIDQQFqIQUgAigCFCADQQF0aiEDA0AgBEUEQCADIAE6AABBASEEIANBAWogBjoAACADQQJqIQMMAQsLIAIpAxAhByACQRhqIgEgBTYCACACIAVFOgAcIAIgBzcDECACQRBqEPcGIABBCGogASkDADcCACAAIAIpAxA3AgAgAkEgaiQAC9sBAQJ/IwBBIGsiAyQAQQMhBCAAAn8CQAJAAn9B2f/HACABIAJB5JzgAEEDENAoDQAaQQghBEHR/8cAIAEgAkG0/8cAQQgQ0CgNABpBBSEEQcz/xwAgASACQeHL1gBBBRDQKA0AGiADQRRqQezJxwBBEBDbCyADLQAUDQIgAygCGCIERQ0BIANBCGogBCADKAIcIAEgAhCaDiADKAIMIQQgAygCCAshAiAAIAQ2AgggACACNgIEQQAMAgtBvP/HABChLwALIAAgAy0AFToAAUEBCzoAACADQSBqJAALgwIAAkACQAJAAkACQAJAAkAgAiADQYWg4ABBAhDQKEUEQCACIANB1pzgAEEGENAoDQEgAiADQbzp4ABBAhDQKA0CIAIgA0G+6eAAQQoQ0CgNAyACIANB0Z3gAEECENAoDQQgAiADQc6c4ABBBRDQKA0FIAIgA0G5neAAQQkQ0CgNBiACIANBuMPgAEEKENAoDQcgAiADQaWd4ABBCRDQKEUEQCAAQQY6AAAPCyAAQYAyOwEADwsgAEGCGDsBAA8LIABBgjg7AQAPCyAAQYI8OwEADwsgAEGCPjsBAA8LIABBgBw7AQAPCyAAQYAeOwEADwsgAEGAJDsBAA8LIABBgCY7AQAL3wECAn8BfiMAQRBrIgEkAAJAAkACQAJAAkACQCAAKAIADgQBAgMEAAsgACkDECAAKAIYEJ0VDAQLIAApAwgiA0IDg0IAUg0DIAEgA6ciADYCCCABQQhqENAGIAAgACgCACICQQFrNgIAIAJBAUcNAyAAIAAoAiAQjScMAwsgAEEIahC/EAwCCyAAKQMYIgNQIANCA4NCAFJyDQEgASADpyIANgIMIAFBDGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0BIAAgACgCIBCNJwwBCyAAQQRqEPsBCyABQRBqJAAL7QEBAX8CQAJAAkACQAJAAkAgACgCAEEBaw4GAAECAwUEBQsgACgCDCICRQ0EIAAoAgghACACQShsIQIDQCAAKAIAQQdHBEAgACABEKUNCyAAQShqIQAgAkEoayICDQALDAQLIAAoAgQgARClDQ8LIAAoAgwiAkUNAiAAKAIIIQAgAkE4bCECA0ACQAJAAkACQCAAKAIAQQFrDgIBAgALIAEgAEEIahC1HAwCCyABIABBCGoQ4R4MAQsgACgCBCABEKUNCyAAQThqIQAgAkE4ayICDQALDAILIAEgAEEEahC5Ig8LIAEgACgCBBBECwvaAQIBfwF+IwBBIGsiAyQAAkACQCACKAIAQQFHDQAgA0EQaiABIAIoAgRBABDAAgJAIAMtABBBBEYNACADKQMQIgRC/wGDQgRRDQAgACAENwIADAILIANBADYCECADQQhqIAEgA0EQakHKnOAAQQMQ8w4gAy0ACEEERg0AIAMpAwgiBEL/AYNCBFENACAAIAQ3AgAMAQsgA0EQaiACQQxqIAEQ4C8CQCADLQAQQQRHBEAgAykDECIEQv8Bg0IEUg0BCyAAQQQ6AAAMAQsgACAENwIACyADQSBqJAAL3gECAn8BfiMAQRBrIgMkAAJAAkACQAJAAkACQEEBIAEtACxBA2siBCAEQf8BcUEDTxtB/wFxQQFrDgIBAgALIANBCGogASACEO4ZIAMtAAhBBEYNAiADKQMIIgVC/wGDQgRRDQIgACAFNwIADAQLIANBCGogASACEOAKIAMtAAhBBEYNASADKQMIIgVC/wGDQgRRDQEgACAFNwIADAMLIANBCGogASACEJEOIAMtAAhBBEYNACADKQMIIgVC/wGDQgRSDQELIABBBDoAAAwBCyAAIAU3AgALIANBEGokAAvuAQECfwJAAkACQAJAAkACQCAAKAIAQQFrDgYAAQIFBAMECyAAKAIMQShsIQIgACgCCCEDA0AgAkUNBCABIAMQyCsgAkEoayECIANBKGohAwwACwALIABBBGogARCOMw8LIAAoAgxBOGwhAyAAKAIIIQIDQCADRQ0CAkACQAJAAkAgAigCAEEBaw4CAQIACyABIAJBCGoQ6yogAkEoaiABEPQxDAILIAIoAjAiAEUNASAAIAEQiTMMAQsgAkEEaiABEI4zCyACQThqIQIgA0E4ayEDDAALAAsgACgCBCABEIkzCw8LIABBBGogARCELgvEAQIEfwF+IwBBgAFrIgMkACAAKAIAIQACfwJAIAEoAhwiAkEQcUUEQCACQSBxRQRAIAAgARCpLwwDCyAAKQMAIQZB/wAhAANAIAMgACICaiIEIAanQQ9xIgBBMHIgAEE3aiAAQQpJGzoAACACQQFrIQAgBkIQVCAGQgSIIQZFDQALDAELIAAgARC9EQwBCyACQYEBTwRAIAJBgAFBmPjAABDoFgALIAFBAUH0n+AAQQIgBEGAASACaxCMBgsgA0GAAWokAAvDAQIBfwF+IwBBEGsiBSQAIAACfwJAIAMgBGpBAWtBACADa3GtIAGtfiIGQiCIpw0AIAanIgRBgICAgHggA2tLDQAgBEUEQCAAIAM2AgggAEEANgIEQQAMAgsCfyACRQRAIAVBCGogAyAEENEiIAUoAggMAQsgBSADIARBARCdIyAFKAIACyICBEAgACACNgIIIAAgATYCBEEADAILIAAgBDYCCCAAIAM2AgRBAQwBCyAAQQA2AgRBAQs2AgAgBUEQaiQAC8MCAQR/IwBBIGsiBSQAAn9BACACIAIgA2oiA0sNABpBAEEIIAEoAgAiBEEBdCICIAMgAiADSxsiAiACQQhNGyICQQBIDQAaIAUgBAR/IAUgBDYCHCAFIAEoAgQ2AhRBAQVBAAs2AhggBUEIaiEGIwBBEGsiAyQAAn8gBUEUaiIEKAIEBEAgBCgCCCIHRQRAIANBCGogAhCsKSADKAIIIQQgAygCDAwCCyAEKAIAIAdBASACEMkEIQQgAgwBCyADIAIQrCkgAygCACEEIAMoAgQLIQcgBiAEQQEgBBs2AgQgBiAERTYCACAGIAcgAiAEGzYCCCADQRBqJAAgBSgCCEUEQCAFKAIMIQMgASACNgIAIAEgAzYCBEGBgICAeAwBCyAFKAIQIQEgBSgCDAshAiAAIAE2AgQgACACNgIAIAVBIGokAAvgAQECfyMAQTBrIgIkAAJAAkACQAJAIAEoAgAiA0EHa0EAIANBCE8bDgIBAgALIAJBATYCFCACQdjBxAA2AhAgAkIBNwIcIAJB7AA2AiwgAiABNgIoIAIgAkEoajYCGCACQRBqQczCxAAQkiYACyAAIAEpAgA3AgAgAEEYaiABQRhqKAIANgIAIABBEGogAUEQaikCADcCACAAQQhqIAFBCGopAgA3AgAMAQsgAkEIaiABQQxqKAIANgIAIAIgASkCBDcDACAAIAIQixcLIANBCU8EQCABEOQdCyACQTBqJAAL2gEBAn8jAEFAaiIFJAAgASgCICEGAkACQCACQQFxRQRAIAZFDQFBuqDDAEEsQeigwwAQ1SEACyAGIANBAWpHDQELIAUgASAEENgLIAUoAgQhAgJAIAUoAgAiA0EwRgRAIAEoAiAiAyABKAIYRgRAIAFBGGoQ4CALIAAgAjYCBCAAQTA2AgAgASADQQFqNgIgIAEoAhwgA0ECdGogAjYCAAwBCyAAQQhqIAVBCGpBOBCBCRogACACNgIEIAAgAzYCAAsgBUFAayQADwtB+KDDAEE5QbShwwAQ1SEAC9cBAQN/IwBBMGsiAiQAAkAgAygCECIEIAMoAhQiBksNAAJAIAMoAgBBAWtBAk8EQCACQQxqIAEgAygCCCADKAIMIAQgBhC/ESACKAIMQQFHDQIgAigCFCIDIAIoAhBPDQEgAkEANgIoIAJBATYCHCACQaCrwwA2AhggAkIENwIgIAJBGGpB2JrDABCSJgALIAQgAygCDE8NASABIAMoAgggBGotAABqLQAAQQFHDQEgBEEBaiEDCyAAIAM2AgggAEEANgIEQQEhBQsgACAFNgIAIAJBMGokAAvLAQEEfyADQfj///8BcQRAIAAgACADQQN2IgNB4ABsIgRqIAAgA0GoAWwiBWogAxCvDSEAIAEgASAEaiABIAVqIAMQrw0hASACIAIgBGogAiAFaiADEK8NIQILIAAoAgAiAyAAQQxqKAIAIgQgASgCACIFIAFBDGooAgAiBhCiJkH/AXFB/wFGIgcgAyAEIAIoAgAiAyACQQxqKAIAIgQQoiZB/wFxQf8BRnMEfyAABSACIAEgByAFIAYgAyAEEKImQf8BcUH/AUZzGwsL5gEBAn8jAEEQayICJAACfwJAAkACQAJAAkBBBCAAKAIAIgAoAgBBgICAgHhzIgMgA0EETxtBAWsOBAECAwQACyACIABBCGo2AgwgAUHo0OAAQQYgAkEMakGHBBCVDgwECyACIABBCGo2AgwgAUHA8OAAQQMgAkEMakHcAxCVDgwDCyACIABBBGo2AgwgAUGQzuAAQQQgAkEMakGFBBCVDgwCCyACIABBCGo2AgwgAUHO8OAAQQYgAkEMakGIBBCVDgwBCyACIAA2AgwgAUHS6uAAQQMgAkEMakHkBBCVDgsgAkEQaiQAC+YBAgJ/An4jAEHgAGsiAiQAIAAoAjAQhRghAyACQTRqIABBNGooAgA2AgAgAkEAOgAoIAJBCGpBuLXjACkDACIENwMAIAJBEGpBsLXjACkDACIFNwMAIAJBGGogBDcDACACIAA2AiAgAiADNgIkIAJBAToAOSACIAApAiw3AiwgAiAAKAE6NgE6IAIgAC0AODoAOCACIAU3AwACQCABKAIARQRAIAEoAhggA0VyRQRAIAFBACADEJgGNgIYCyACIAFBBGoQjwsMAQsgASACEOQCCyACEKEKIAJBEGoQqwogAkHgAGokAAvmAQECfyMAQRBrIgIkAAJ/AkACQAJAAkACQEEEIAAoAgAiACgCAEGAgICAeHMiAyADQQRPG0EBaw4EAQIDBAALIAIgAEEIajYCDCABQejQ4ABBBiACQQxqQYcEEJUODAQLIAIgAEEIajYCDCABQcDw4ABBAyACQQxqQdwDEJUODAMLIAIgAEEEajYCDCABQZDO4ABBBCACQQxqQYUEEJUODAILIAIgAEEIajYCDCABQc7w4ABBBiACQQxqQYgEEJUODAELIAIgADYCDCABQdLq4ABBAyACQQxqQeoGEJUOCyACQRBqJAAL5gEBAn8jAEEQayICJAACfwJAAkACQAJAAkBBBCAAKAIAIgAoAgBBgICAgHhzIgMgA0EETxtBAWsOBAECAwQACyACIABBCGo2AgwgAUHo0OAAQQYgAkEMakGHBBCVDgwECyACIABBCGo2AgwgAUHA8OAAQQMgAkEMakHcAxCVDgwDCyACIABBBGo2AgwgAUGQzuAAQQQgAkEMakGFBBCVDgwCCyACIABBCGo2AgwgAUHO8OAAQQYgAkEMakGIBBCVDgwBCyACIAA2AgwgAUHS6uAAQQMgAkEMakHQCBCVDgsgAkEQaiQAC+IBAQF/IAAoAgAiAEEEaiIBKAIAIABBCGooAgAQoyUgACgCACABKAIAEMAqIABBEGoiASgCACAAQRRqKAIAEIYoIAAoAgwgASgCABDGKiAAKAIwIgEEQCABEOoBIAFBwABBCBCiGAsgACgCNCIBBEAgARCBDyABKAIAIAFBBGooAgAQwiogAUEUQQQQohgLIAAoAjgiAQRAIAEQvCIgASgCACABQQRqKAIAEMMqIAFBFEEEEKIYCyAAQRxqIgEoAgAgAEEgaigCABC4ESAAKAIYIAEoAgAQvyogAEHAAEEEEKIYC9UBAQF/IwBBIGsiBiQAIANBAXFFBEAgAUEoahChExoLIAYgASADIAQgBUEAQQAQlgFBAyEDIAYoAgAhBAJAIAYtABQiBUEDRwRAIAAgBikCBDcCDCAAIAYvABU7AB0gAEEUaiAGQQxqKQIANwIAIABBH2ogBkEXai0AADoAACAAIAYoAhg2AiAgACAFOgAcIAAgBDYCCCAAIAIgASgCfCIBIAEgAkkbNgIsIAAgAiABIAEgAksbNgIoQQEhAwwBCyAAIAQ2AgQLIAAgAzYCACAGQSBqJAAL5gEBAn8jAEEQayICJAACfwJAAkACQAJAAkBBBCAAKAIAIgAoAgBBgICAgHhzIgMgA0EETxtBAWsOBAECAwQACyACIABBCGo2AgwgAUHo0OAAQQYgAkEMakGKChCVDgwECyACIABBCGo2AgwgAUHA8OAAQQMgAkEMakHvCRCVDgwDCyACIABBBGo2AgwgAUGQzuAAQQQgAkEMakGLChCVDgwCCyACIABBCGo2AgwgAUHO8OAAQQYgAkEMakGMChCVDgwBCyACIAA2AgwgAUHS6uAAQQMgAkEMakGNChCVDgsgAkEQaiQAC8UBAQJ/AkACQAJAIAAoAgAiAUElRg0AAkACQAJAAkACQEEQIAFBAmsiAiACQSNPGw4iAQUFBQUFBQUFBQUFBQUFBQIFBQUFBQUFBQYGBwMHBgUFBAALIABBBGoQxAgPCyAALQAIIgFBBU0gAUEBR3ENAyAAKQMQENAaDwsgACkDEBDQGiABRQRADAULIABBBGoQxAgPCyAAKAIQEI8qDAMLIAApAwgQ0BoLDwsgACkDCBDQGiAAKQMQENAaDwsgACkDCBDQGgu+AQEGfyAAKAIAIgRBBGogBC8BMiIFQQFqIgcgACgCCCIDIAEQmB4gA0EBaiEAIARBNGohASADQQJqIgggBUECaiIGSQRAIAEgCEECdGogASAAQQJ0aiAFIANrQQJ0EKAyGgsgASAAQQJ0aiACNgIAIAQgBzsBMiAGIAAgACAGSRshAiADQQJ0IARqQThqIQEDQCAAIAJGRQRAIAEoAgAiAyAAOwEwIAMgBDYCACABQQRqIQEgAEEBaiEADAELCwvBAQEEfyMAQSBrIgIkACABKAKABiEDIAJBCGoiBCABQaQDaiIFIAEoAvwFQQEQywgCQCACKAIIIgFBA0YEQCAEIAUgA0EBEMsIIAIoAggiAUEDRgRAQQMhAQwCCyAAIAIpAgw3AgQgAEEUaiACQRxqKAIANgIAIABBDGogAkEUaikCADcCAAwBCyAAIAIpAgw3AgQgAEEUaiACQRxqKAIANgIAIABBDGogAkEUaikCADcCAAsgACABNgIAIAJBIGokAAvQAQEHfyACIAAoAgQgACgCABCcIyEDIABBDEEIIAIgACgCDCAAKAIIEJwjIgQbaiEFIAIgAEEIQQwgBBtqIgYgACADQQFzQQJ0aiIEIAUgAiAFKAIAIAAgA0ECdGoiACgCABCcIyIDGyACIAYoAgAgBCgCABCcIyICGyIHKAIAIAAgBSAEIAIbIAMbIggoAgAQnCMhCSABIAUgACADGygCADYCACABIAcgCCAJGygCADYCBCABIAggByAJGygCADYCCCABIAQgBiACGygCADYCDAv4AQECfyMAQTBrIgIkAAJAIAApAwBC////////////AINCgICAgICAgPj/AFoEQCACQQE2AhQgAkGoj+EANgIQIAJCATcCHCACQfwBNgIsIAIgADYCKCACIAJBKGo2AhggASgCFCABKAIYIAJBEGoQ7yshAwwBCyACQQA6AAwgAiABNgIIQQEhAyACQQE2AhQgAkGoj+EANgIQIAJCATcCHCACQfwBNgIsIAIgADYCKCACIAJBKGo2AhggAkEIaiACQRBqEJ4sDQAgAi0ADEUEQCABKAIUQZeL2ABBAiABKAIYKAIMEQMADQELQQAhAwsgAkEwaiQAIAMLyAECAn8BfiABQRRsIQEDQCABBEAgACgCDCAAQRBqKAIAIAIQyS4gAiAAKAIEIAAoAggQwgsgAiACKAI4QQFqNgI4IAIgAikDMEL/ASACKAI8IgNBA3RBOHGthoQi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AiwgACABIAQQWCACQSxqEOUsIAJB0ABqJAAL9QEBAX8jAEHQAGsiAiQAIAAoAgAhACACQbzs4AA2AkggAkHswuAANgJAIAIgAEE8ajYCPCACQdzC4AA2AjggAiAAQcUAajYCNCACQdzC4AA2AjAgAiAAQcQAajYCLCACQYTG4AA2AiggAiAAQRhqNgIkIAJBrPXgADYCICACIABBOGo2AhwgAkHU8OAANgIYIAIgAEEwajYCFCACQazC4AA2AhAgAiAAQQxqNgIMIAJB9MXgADYCCCACIAA2AgQgAiAAQUBrNgJMIAIgAkHMAGo2AkQgAUHcxuAAQQhBlMbgAEEJIAJBBGpBCRCXCyACQdAAaiQAC98BAQF/AkACQAJAAkACQAJAAkACQAJAIAEoAgBBAWsOBwECAwQFBgcACyABKAIgIgJBKGohASACQSRqIQIMBwsgASgCICICQTRqIQEgAkEwaiECDAYLIAEoAgQiAkEQaiEBIAJBDGohAgwFCyABKAIEIgJBEGohASACQQxqIQIMBAsgASgCBCICQQRqIQEMAwsgASgCBCICQQRqIQEMAgsgASgCBCICQRxqIQEgAkEYaiECDAELIAEoAgQiAkHMAGohASACQcgAaiECCyAAIAEoAgA2AgQgACACKAIANgIAC/MBAQF/IwBB0ABrIgIkACAAKAIAIQAgAkHc8eAANgJIIAJBvPHgADYCQCACIABBLmo2AjwgAkG88eAANgI4IAIgAEEtajYCNCACQczx4AA2AjAgAiAAQTFqNgIsIAJBvPHgADYCKCACIABBLGo2AiQgAkG89OAANgIgIAIgAEEwajYCHCACQaz04AA2AhggAiAAQShqNgIUIAJBjPHgADYCECACIAA2AgwgAkHU8OAANgIIIAIgAEEgajYCBCACIABBL2o2AkwgAiACQcwAajYCRCABQaD14ABBC0HY9OAAQQkgAkEEakEJEJcLIAJB0ABqJAAL8wEBAX8jAEHQAGsiAiQAIAAoAgAhACACQdzx4AA2AkggAkG88eAANgJAIAIgAEEgajYCPCACQbzx4AA2AjggAiAAQR9qNgI0IAJBzPHgADYCMCACIABBHGo2AiwgAkG88eAANgIoIAIgAEEeajYCJCACQbz04AA2AiAgAiAAQR1qNgIcIAJBrPTgADYCGCACIABBGGo2AhQgAkGk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CwvWAQIDfwF+IwBB4ABrIgIkACABKQIIIQUQvikhAyACIAEoAgAQNSADQThqIAJBOGopAwA3AwAgA0EwaiACQTBqKQMANwMAIANBKGogAkEoaikDADcDACADQSBqIAJBIGopAwA3AwAgA0EYaiACQRhqKQMANwMAIANBEGogAkEQaikDADcDACADQQhqIAJBCGopAwA3AwAgAyACKQMANwMAIAEoAgQhARDAKSEEIAIgARB9IAAgBCACQeAAEIEJNgIEIAAgAzYCACAAIAU3AgggAkHgAGokAAvaAQICfwF+IwBBEGsiASQAIAAoAiAiAhCkASACQcAAQQgQohgCQAJAAkACQCAAKAIADgIBAgALIAAoAgQiABCkASAAQcAAQQgQohgMAgsgACkDCCIDQgODQgBSDQEgASADpyIANgIMIAFBDGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0BIAAgACgCIBCNJwwBCyAAKQMIIgNCA4NCAFINACABIAOnIgA2AgggAUEIahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQAgACAAKAIgEI0nCyABQRBqJAAL2AEBBH8jAEEgayIBJABBBSEDQQEhAgJAAkACQCAAKAIAQQFrDgIAAgELQQMhAgsgAUEQaiAAQRxqKAIANgIAIAFBCGogAEEUaikCADcDACABIAApAgw3AwAgAiEDCyAAKAIIIQIgACgCBCEEQaC/5AAtAAAaQSgQhAEiAARAIAAgAjYCCCAAIAQ2AgQgACADNgIAIAAgASkDADcCDCAAQRRqIAFBCGopAwA3AgAgAEEcaiABQRBqKQMANwIAIABBJGogAUEYaigCADYCACABQSBqJAAgAA8LAAvNAQECfyMAQSBrIgMkACADQQxqIAAgAiABEQQAAn8gAygCDEGAgICAeEcEQCADKAIQIgIgAygCFEEYbGohBAJAA0AgAiAERg0BAkAgAi0AEEUNACACQRhqIAMgAhDKECADIAMoAgAiATYCGCADIAEgAygCBGo2AhwDQAJAIANBGGoQ+iMiAUEKaw4EAgEBAgALIAFBqMAAa0ECSQ0BIAFBgIDEAEcNAAshAgwBCwsgA0EMahDJKkEBDAILIANBDGoQySoLQQALIANBIGokAAvhAQECfwJAAkACQAJAAkACQCAAKAIADgQBAgMEAAsgAEEEahDzEiAAKAIEIAAoAggQxSoPCyAAQQhqEPIQDwsgACgCBEUNAiAAKAIIIgAQoQEgAEHAAEEIEKIYDwsgACgCBCIAEKEBIABBwABBCBCiGA8LIAAoAgQiAUFAaxCPDSABQZQBaigCACEAIAEoApgBIgIEQANAIAAQ6w0gAEEoaiEAIAJBAWsiAg0ACyABQZQBaigCACEACyABKAKQASAAEMUqIAEtADxBBkcEQCABQRBqEO4SCyABQaABQQgQohgLC9oBAgJ/AX4jAEEQayIBJAAgACgCICICEKEBIAJBwABBCBCiGAJAAkACQAJAIAAoAgAOAgECAAsgACgCBCIAEKEBIABBwABBCBCiGAwCCyAAKQMIIgNCA4NCAFINASABIAOnIgA2AgwgAUEMahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQEgACAAKAIgEI0nDAELIAApAwgiA0IDg0IAUg0AIAEgA6ciADYCCCABQQhqENAGIAAgACgCACICQQFrNgIAIAJBAUcNACAAIAAoAiAQjScLIAFBEGokAAvaAQICfwF+IwBBEGsiASQAIAAoAiAiAhDIASACQcAAQQgQohgCQAJAAkACQCAAKAIADgIBAgALIAAoAgQiABDIASAAQcAAQQgQohgMAgsgACkDCCIDQgODQgBSDQEgASADpyIANgIMIAFBDGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0BIAAgACgCIBCNJwwBCyAAKQMIIgNCA4NCAFINACABIAOnIgA2AgggAUEIahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQAgACAAKAIgEI0nCyABQRBqJAAL2gECAn8BfiMAQRBrIgEkACAAKAIgIgIQuQEgAkHAAEEIEKIYAkACQAJAAkAgACgCAA4CAQIACyAAKAIEIgAQuQEgAEHAAEEIEKIYDAILIAApAwgiA0IDg0IAUg0BIAEgA6ciADYCDCABQQxqENAGIAAgACgCACICQQFrNgIAIAJBAUcNASAAIAAoAiAQjScMAQsgACkDCCIDQgODQgBSDQAgASADpyIANgIIIAFBCGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0AIAAgACgCIBCNJwsgAUEQaiQAC9oBAgJ/AX4jAEEQayIBJAAgACgCICICEOsBIAJBwABBCBCiGAJAAkACQAJAIAAoAgAOAgECAAsgACgCBCIAEOsBIABBwABBCBCiGAwCCyAAKQMIIgNCA4NCAFINASABIAOnIgA2AgwgAUEMahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQEgACAAKAIgEI0nDAELIAApAwgiA0IDg0IAUg0AIAEgA6ciADYCCCABQQhqENAGIAAgACgCACICQQFrNgIAIAJBAUcNACAAIAAoAiAQjScLIAFBEGokAAvaAQICfwF+IwBBEGsiASQAIAAoAiAiAhCeASACQcAAQQgQohgCQAJAAkACQCAAKAIADgIBAgALIAAoAgQiABCeASAAQcAAQQgQohgMAgsgACkDCCIDQgODQgBSDQEgASADpyIANgIMIAFBDGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0BIAAgACgCIBCNJwwBCyAAKQMIIgNCA4NCAFINACABIAOnIgA2AgggAUEIahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQAgACAAKAIgEI0nCyABQRBqJAAL4QEBAn8CQAJAAkACQAJAAkAgACgCAA4EAQIDBAALIABBBGoQgBMgACgCBCAAKAIIEMUqDwsgAEEIahDyEA8LIAAoAgRFDQIgACgCCCIAEJ4BIABBwABBCBCiGA8LIAAoAgQiABCeASAAQcAAQQgQohgPCyAAKAIEIgFBQGsQkA0gAUGUAWooAgAhACABKAKYASICBEADQCAAEPENIABBKGohACACQQFrIgINAAsgAUGUAWooAgAhAAsgASgCkAEgABDFKiABLQA8QQZHBEAgAUEQahDuEgsgAUGgAUEIEKIYCwviAQEBfwJAAkACQAJAAkACQAJAQQQgACgCAEEFayICIAJBBk8bQQFrDgUBAgMEBQALIAEgAEEIahDnCg8LIAEgAEEIahDeKiAAKAIoIAEQ3wIPCyABIABBEGoQ5wogACgCKCABEN8CDwsgASAAQQhqEN4qIAAoAihBgICAgHhGDQIgAEEoaiABEPgiDwsgASAAEN4qIAAoAiBBB0cEQCAAQSBqIAEQ2woLIAAoAmggARDbCiAAKAJIQYCAgIB4Rg0BIABByABqIAEQ+CIPCyABIABBCGoQ3iogACgCKCABEIQTCwviAQEBfwJAAkACQAJAAkACQAJAQQQgACgCAEEFayICIAJBBk8bQQFrDgUBAgMEBQALIAEgAEEIahDSJA8LIAEgAEEIahDiKiAAKAIoIAEQ4wIPCyABIABBEGoQ0iQgACgCKCABEOMCDwsgASAAQQhqEOIqIAAoAihBgICAgHhGDQIgAEEoaiABEPoiDwsgASAAEOIqIAAoAiBBB0cEQCAAQSBqIAEQ3AoLIAAoAmggARDcCiAAKAJIQYCAgIB4Rg0BIABByABqIAEQ+iIPCyABIABBCGoQ4iogACgCKCABELEOCwvaAQICfwF+IwBBEGsiASQAIAAoAiAiAhC6ASACQcAAQQgQohgCQAJAAkACQCAAKAIADgIBAgALIAAoAgQiABC6ASAAQcAAQQgQohgMAgsgACkDCCIDQgODQgBSDQEgASADpyIANgIMIAFBDGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0BIAAgACgCIBCNJwwBCyAAKQMIIgNCA4NCAFINACABIAOnIgA2AgggAUEIahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQAgACAAKAIgEI0nCyABQRBqJAAL2gECAn8BfiMAQRBrIgEkACAAKAIgIgIQxQEgAkHAAEEIEKIYAkACQAJAAkAgACgCAA4CAQIACyAAKAIEIgAQxQEgAEHAAEEIEKIYDAILIAApAwgiA0IDg0IAUg0BIAEgA6ciADYCDCABQQxqENAGIAAgACgCACICQQFrNgIAIAJBAUcNASAAIAAoAiAQjScMAQsgACkDCCIDQgODQgBSDQAgASADpyIANgIIIAFBCGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0AIAAgACgCIBCNJwsgAUEQaiQAC9oBAgJ/AX4jAEEQayIBJAAgACgCICICENcBIAJBwABBCBCiGAJAAkACQAJAIAAoAgAOAgECAAsgACgCBCIAENcBIABBwABBCBCiGAwCCyAAKQMIIgNCA4NCAFINASABIAOnIgA2AgwgAUEMahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQEgACAAKAIgEI0nDAELIAApAwgiA0IDg0IAUg0AIAEgA6ciADYCCCABQQhqENAGIAAgACgCACICQQFrNgIAIAJBAUcNACAAIAAoAiAQjScLIAFBEGokAAvaAQICfwF+IwBBEGsiASQAIAAoAiAiAhDVASACQcAAQQgQohgCQAJAAkACQCAAKAIADgIBAgALIAAoAgQiABDVASAAQcAAQQgQohgMAgsgACkDCCIDQgODQgBSDQEgASADpyIANgIMIAFBDGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0BIAAgACgCIBCNJwwBCyAAKQMIIgNCA4NCAFINACABIAOnIgA2AgggAUEIahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQAgACAAKAIgEI0nCyABQRBqJAAL2gECAn8BfiMAQRBrIgEkACAAKAIgIgIQogEgAkHAAEEIEKIYAkACQAJAAkAgACgCAA4CAQIACyAAKAIEIgAQogEgAEHAAEEIEKIYDAILIAApAwgiA0IDg0IAUg0BIAEgA6ciADYCDCABQQxqENAGIAAgACgCACICQQFrNgIAIAJBAUcNASAAIAAoAiAQjScMAQsgACkDCCIDQgODQgBSDQAgASADpyIANgIIIAFBCGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0AIAAgACgCIBCNJwsgAUEQaiQAC+EBAQJ/AkACQAJAAkACQAJAIAAoAgAOBAECAwQACyAAQQRqEI0TIAAoAgQgACgCCBDFKg8LIABBCGoQ8hAPCyAAKAIERQ0CIAAoAggiABCiASAAQcAAQQgQohgPCyAAKAIEIgAQogEgAEHAAEEIEKIYDwsgACgCBCIBQUBrEJINIAFBlAFqKAIAIQAgASgCmAEiAgRAA0AgABD5DSAAQShqIQAgAkEBayICDQALIAFBlAFqKAIAIQALIAEoApABIAAQxSogAS0APEEGRwRAIAFBEGoQ7hILIAFBoAFBCBCiGAsL2gECAn8BfiMAQRBrIgEkACAAKAIgIgIQ6gEgAkHAAEEIEKIYAkACQAJAAkAgACgCAA4CAQIACyAAKAIEIgAQ6gEgAEHAAEEIEKIYDAILIAApAwgiA0IDg0IAUg0BIAEgA6ciADYCDCABQQxqENAGIAAgACgCACICQQFrNgIAIAJBAUcNASAAIAAoAiAQjScMAQsgACkDCCIDQgODQgBSDQAgASADpyIANgIIIAFBCGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0AIAAgACgCIBCNJwsgAUEQaiQAC9oBAgJ/AX4jAEEQayIBJAAgACgCICICENYBIAJBwABBCBCiGAJAAkACQAJAIAAoAgAOAgECAAsgACgCBCIAENYBIABBwABBCBCiGAwCCyAAKQMIIgNCA4NCAFINASABIAOnIgA2AgwgAUEMahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQEgACAAKAIgEI0nDAELIAApAwgiA0IDg0IAUg0AIAEgA6ciADYCCCABQQhqENAGIAAgACgCACICQQFrNgIAIAJBAUcNACAAIAAoAiAQjScLIAFBEGokAAvaAQICfwF+IwBBEGsiASQAIAAoAiAiAhDiASACQcAAQQgQohgCQAJAAkACQCAAKAIADgIBAgALIAAoAgQiABDiASAAQcAAQQgQohgMAgsgACkDCCIDQgODQgBSDQEgASADpyIANgIMIAFBDGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0BIAAgACgCIBCNJwwBCyAAKQMIIgNCA4NCAFINACABIAOnIgA2AgggAUEIahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQAgACAAKAIgEI0nCyABQRBqJAAL2gECAn8BfiMAQRBrIgEkACAAKAIgIgIQxAEgAkHAAEEIEKIYAkACQAJAAkAgACgCAA4CAQIACyAAKAIEIgAQxAEgAEHAAEEIEKIYDAILIAApAwgiA0IDg0IAUg0BIAEgA6ciADYCDCABQQxqENAGIAAgACgCACICQQFrNgIAIAJBAUcNASAAIAAoAiAQjScMAQsgACkDCCIDQgODQgBSDQAgASADpyIANgIIIAFBCGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0AIAAgACgCIBCNJwsgAUEQaiQAC9oBAgJ/AX4jAEEQayIBJAAgACgCICICEMYBIAJBwABBCBCiGAJAAkACQAJAIAAoAgAOAgECAAsgACgCBCIAEMYBIABBwABBCBCiGAwCCyAAKQMIIgNCA4NCAFINASABIAOnIgA2AgwgAUEMahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQEgACAAKAIgEI0nDAELIAApAwgiA0IDg0IAUg0AIAEgA6ciADYCCCABQQhqENAGIAAgACgCACICQQFrNgIAIAJBAUcNACAAIAAoAiAQjScLIAFBEGokAAvaAQICfwF+IwBBEGsiASQAIAAoAiAiAhDhASACQcAAQQgQohgCQAJAAkACQCAAKAIADgIBAgALIAAoAgQiABDhASAAQcAAQQgQohgMAgsgACkDCCIDQgODQgBSDQEgASADpyIA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QYYFEJUODAELIAIgAEEIajYCDCABQc7w4ABBBiACQQxqQYgEEJUOCyACQRBqJAALzQECBn8BfkGAASEDIAEoAgwiAigCACIEIAQgASgCCCIGa0ECdSIFaiIHKQAAIgggCEIBhoNCgIGChIiQoMCAf4N6p0EDdiAEIAIoAgQgBUEIa3FqIgQpAAAiCCAIQgGGg0KAgYKEiJCgwIB/g3mnQQN2akEHTQRAIAIgAigCCEEBajYCCEH/ASEDCyAHIAM6AAAgBEEIaiADOgAAIAAgAjYCFCAAIAU2AhAgACABKQMANwMIIAIgAigCDEEBazYCDCAAIAZBBGsoAgA2AgAL0wEBAX8jAEEQayICJAACfwJAAkACQAJAAkAgACgCAEEBaw4EAQIDBAALIAIgAEEIajYCDCABQbvw4ABBBSACQQxqQewDEJUODAQLIAIgAEEIajYCDCABQcDw4ABBAyACQQxqQdwDEJUODAMLIAIgAEEIajYCDCABQcPw4ABBAyACQQxqQYcEEJUODAILIAIgAEEEajYCDCABQcbw4ABBCCACQQxqQYoGEJUODAELIAIgAEEIajYCDCABQc7w4ABBBiACQQxqQYgEEJUOCyACQRBqJAAL0wEBAX8jAEEQayICJAACfwJAAkACQAJAAkAgACgCAEEBaw4EAQIDBAALIAIgAEEIajYCDCABQbvw4ABBBSACQQxqQewDEJUODAQLIAIgAEEIajYCDCABQcDw4ABBAyACQQxqQdwDEJUODAMLIAIgAEEIajYCDCABQcPw4ABBAyACQQxqQYcEEJUODAILIAIgAEEEajYCDCABQcbw4ABBCCACQQxqQZwIEJUODAELIAIgAEEIajYCDCABQc7w4ABBBiACQQxqQYgEEJUOCyACQRBqJAALzgECBH8BfiMAQSBrIgEkACAAKAIEIgMEQCAAKAIAIQICQCAAKAIMIgBFDQAgAikDACEFIAEgADYCGCABIAI2AhBBASEAIAEgAiADakEBajYCDCABIAJBCGo2AgggASAFQn+FQoCBgoSIkKDAgH+DNwMAA0AgAEUNASABEMoVIQQgASABKAIYQQFrIgA2AhggBEUNASAEQQhrKQMAENAaDAALAAsgAUEIQQggA0EBahCmEyACIAEoAghrIAEoAgAgASgCBBDrKwsgAUEgaiQAC84BAgR/AX4jAEEg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QAwBCyABKAIEIQQgBSEBA0AgAUEBTQRAAkAgBCADQQJ0aigCACIBIAJHIgQEfyADIAEgAklqBSADCyAEayIBIAVODQAgAUF/c0EfdiEDDAMLBSADIAFBAXYiBiADaiIDIAQgA0ECdGooAgAgAksbIQMgASAGayEBDAELC0GH0NgAQTxBxNDYABDVIQALIAAgATYCBCAAIAM2AgALtgEBAX8jAEFAaiIDJAAgA0EMaiAAIAEQiR4gAygCDEGAgICAeEcEQCADQSBqIANBFGooAgA2AgAgAyADKQIMNwMYAkAgASACTw0AIAAgAhClF0UNACADQTRqIAAgAhCJHiADKAI0QYCAgIB4RwRAIANBMGogA0E8aigCADYCACADIAMpAjQ3AyggA0EYaiADQShqEKQXDAELQcTV2AAQoS8ACyAAIAIgA0EYahDNGgsgA0FAayQAC7YBAQF/IwBBQGoiAyQAIANBDGogACABEIoeIAMoAgxBgICAgHhHBEAgA0EgaiADQRRqKAIANgIAIAMgAykCDDcDGAJAIAEgAk8NACAAIAIQphdFDQAgA0E0aiAAIAIQih4gAygCNEGAgICAeEcEQCADQTBqIANBPGooAgA2AgAgAyADKQI0NwMoIANBGGogA0EoahCkFwwBC0Gk1tgAEKEvAAsgACACIANBGGoQzxoLIANBQGskAAvBAQIDfwF+IwBBEGsiASQAAkAgAC0AFEECRgRAIAAoAgAiAkEYahDbDgJAIAIpAwAiBEIDg0IAUg0AIAEgBKciADYCDCABQQxqENAGIAAgACgCACIDQQFrNgIAIANBAUcNACAAIAAoAiAQjScLIAJBMEEIEKIYDAELIAApAwAiBEIDg0IAUg0AIAEgBKciADYCCCABQQhqENAGIAAgACgCACICQQFrNgIAIAJBAUcNACAAIAAoAiAQjScLIAFBEGokAAvAAQIDfwF+IwBBEGsiAyQAAkAgACgCACIBLQAlQQJGBEAgAUEEaigCACEAIAEoAggiAgRAA0AgABCaBCAAQThqIQAgAkEBayICDQALIAFBBGooAgAhAAsgASgCACAAEMcqDAELAkAgASkDCCIEQgODQgBSDQAgAyAEpyIANgIMIANBDGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0AIAAgACgCIBCNJwsgAUEgahDcDgsgAUEoQQgQohggA0EQaiQAC9IBAQJ/IABBBGoiASgCACAAQQhqKAIAEOknIAAoAgAgASgCABDBKiAAQRBqIgEoAgAgAEEUaigCABCSJSAAKAIMIAEoAgAQwCogACgCGEGAgICAeEcEQCAAQRxqIgEoAgAgAEEgaigCABDmJyAAKAIYIAEoAgAQwioLIAAoAjwiAQRAIAEQ+w4gASgCACABQQRqKAIAEMIqIAFBFEEEEKIYCyAAKAJAIgEEQCABKAIAIgIQ/gMgAkHgAEEIEKIYIAFBDEEEEKIYCyAAQcgAQQQQohgLugEBBn8jAEEgayIDJAACfwNAIANBCGoiBiABIAIgBBBgIAMoAgghAgJAIAMtAAwiB0ECRwRAIAMtAA0hBCACKAIAQRJHDQEgAi0AFEETa0H/AXFBAk8NASACKAIEIgUoAgBBEkcNASAFLQAUQRhHDQEgAigCECEFIAIoAgwhCCADQTg6AAggASAIIAUgBhDpIgwBC0EBDAILIAdBAXENAAtBAAshBCAAIAI2AgQgACAENgIAIANBIGokAAvAAQIDfwF+IwBBEGsiAyQAAkAgACgCACIBLQAlQQJGBEAgAUEEaigCACEAIAEoAggiAgRAA0AgABCRByAAQThqIQAgAkEBayICDQALIAFBBGooAgAhAAsgASgCACAAEMcqDAELAkAgASkDCCIEQgODQgBSDQAgAyAEpyIANgIMIANBDGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0AIAAgACgCIBCNJwsgAUEgahDfDgsgAUEoQQgQohggA0EQaiQAC9IBAQJ/IABBBGoiASgCACAAQQhqKAIAEOknIAAoAgAgASgCABDBKiAAQRBqIgEoAgAgAEEUaigCABCSJSAAKAIMIAEoAgAQwCogACgCGEGAgICAeEcEQCAAQRxqIgEoAgAgAEEgaigCABDmJyAAKAIYIAEoAgAQwioLIAAoAjwiAQRAIAEQ+w4gASgCACABQQRqKAIAEMIqIAFBFEEEEKIYCyAAKAJAIgEEQCABKAIAIgIQ/wMgAkHgAEEIEKIYIAFBDEEEEKIYCyAAQcgAQQQQohgLwQECA38BfiMAQRBrIgEkAAJAIAAtABRBAkYEQCAAKAIAIgJBGGoQ4Q4CQCACKQMAIgRCA4NCAFINACABIASnIgA2AgwgAUEMahDQBiAAIAAoAgAiA0EBazYCACADQQFHDQAgACAAKAIgEI0nCyACQTBBCBCiGAwBCyAAKQMAIgRCA4NCAFINACABIASnIgA2AgggAUEIahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQAgACAAKAIgEI0nCyABQRBqJAAL0gEBAn8gAEEEaiIBKAIAIABBCGooAgAQ6ScgACgCACABKAIAEMEqIABBEGoiASgCACAAQRRqKAIAEJIlIAAoAgwgASgCABDAKiAAKAIYQYCAgIB4RwRAIABBHGoiASgCACAAQSBqKAIAEOYnIAAoAhggASgCABDCKgsgACgCPCIBBEAgARD7DiABKAIAIAFBBGooAgAQwiogAUEUQQQQohgLIAAoAkAiAQRAIAEoAgAiAhCBBCACQeAAQQgQohggAUEMQQQQohgLIABByABBBBCiGAvBAQIDfwF+IwBBEGsiASQAAkAgAC0AFEECRgRAIAAoAgAiAkEYahDjDgJAIAIpAwAiBEIDg0IAUg0AIAEgBKciADYCDCABQQxqENAGIAAgACgCACIDQQFrNgIAIANBAUcNACAAIAAoAiAQjScLIAJBMEEIEKIYDAELIAApAwAiBEIDg0IAUg0AIAEgBKciADYCCCABQQhqENAGIAAgACgCACICQQFrNgIAIAJBAUcNACAAIAAoAiAQjScLIAFBEGokAAvBAQIDfwF+IwBBEGsiASQAAkAgAC0AFEECRgRAIAAoAgAiAkEYahDkDgJAIAIpAwAiBEIDg0IAUg0AIAEgBKciADYCDCABQQxqENAGIAAgACgCACIDQQFrNgIAIANBAUcNACAAIAAoAiAQjScLIAJBMEEIEKIYDAELIAApAwAiBEIDg0IAUg0AIAEgBKciADYCCCABQQhqENAGIAAgACgCACICQQFrNgIAIAJBAUcNACAAIAAoAiAQjScLIAFBEGokAAvAAQIDfwF+IwBBEGsiAyQAAkAgACgCACIBLQAlQQJGBEAgAUEEaigCACEAIAEoAggiAgRAA0AgABCSByAAQThqIQAgAkEBayICDQALIAFBBGooAgAhAAsgASgCACAAEMcqDAELAkAgASkDCCIEQgODQgBSDQAgAyAEpyIANgIMIANBDGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0AIAAgACgCIBCNJwsgAUEgahDlDgsgAUEoQQgQohggA0EQaiQAC9IBAQJ/IABBBGoiASgCACAAQQhqKAIAEPsnIAAoAgAgASgCABDBKiAAQRBqIgEoAgAgAEEUaigCABCXJSAAKAIMIAEoAgAQwCogACgCGEGAgICAeEcEQCAAQRxqIgEoAgAgAEEgaigCABD4JyAAKAIYIAEoAgAQwioLIAAoAjwiAQRAIAEQ/w4gASgCACABQQRqKAIAEMIqIAFBFEEEEKIYCyAAKAJAIgEEQCABKAIAIgIQhwQgAkHgAEEIEKIYIAFBDEEEEKIYCyAAQcgAQQQQohgL0gEBAn8gAEEEaiIBKAIAIABBCGooAgAQ+ycgACgCACABKAIAEMEqIABBEGoiASgCACAAQRRqKAIAEJclIAAoAgwgASgCABDAKiAAKAIYQYCAgIB4RwRAIABBHGoiASgCACAAQSBqKAIAEPgnIAAoAhggASgCABDCKgsgACgCPCIBBEAgARD/DiABKAIAIAFBBGooAgAQwiogAUEUQQQQohgLIAAoAkAiAQRAIAEoAgAiAhCJBCACQeAAQQgQohggAUEMQQQQohgLIABByABBBBCiGAvBAQIDfwF+IwBBEGsiASQAAkAgAC0AFEECRgRAIAAoAgAiAkEYahDoDgJAIAIpAwAiBEIDg0IAUg0AIAEgBKciADYCDCABQQxqENAGIAAgACgCACIDQQFrNgIAIANBAUcNACAAIAAoAiAQjScLIAJBMEEIEKIYDAELIAApAwAiBEIDg0IAUg0AIAEgBKciADYCCCABQQhqENAGIAAgACgCACICQQFrNgIAIAJBAUcNACAAIAAoAiAQjScLIAFBEGokAAvSAQECfyAAQQRqIgEoAgAgAEEIaigCABD7JyAAKAIAIAEoAgAQwSogAEEQaiIBKAIAIABBFGooAgAQlyUgACgCDCABKAIAEMAqIAAoAhhBgICAgHhHBEAgAEEcaiIBKAIAIABBIGooAgAQ+CcgACgCGCABKAIAEMIqCyAAKAI8IgEEQCABEP8OIAEoAgAgAUEEaigCABDCKiABQRRBBBCiGAsgACgCQCIBBEAgASgCACICEIoEIAJB4ABBCBCiGCABQQxBBBCiGAsgAEHIAEEEEKIYC9IBAQJ/IABBBGoiASgCACAAQQhqKAIAEMwUIAAoAgAgASgCABDBKiAAQRBqIgEoAgAgAEEUaigCABCjJSAAKAIMIAEoAgAQwCogACgCGEGAgICAeEcEQCAAQRxqIgEoAgAgAEEgaigCABCFKCAAKAIYIAEoAgAQwioLIAAoAjwiAQRAIAEQgQ8gASgCACABQQRqKAIAEMIqIAFBFEEEEKIYCyAAKAJAIgEEQCABKAIAIgIQjAQgAkHgAEEIEKIYIAFBDEEEEKIYCyAAQcgAQQQQohgL0gEBAn8gAEEEaiIBKAIAIABBCGooAgAQzBQgACgCACABKAIAEMEqIABBEGoiASgCACAAQRRqKAIAEKMlIAAoAgwgASgCABDAKiAAKAIYQYCAgIB4RwRAIABBHGoiASgCACAAQSBqKAIAEIUoIAAoAhggASgCABDCKgsgACgCPCIBBEAgARCBDyABKAIAIAFBBGooAgAQwiogAUEUQQQQohgLIAAoAkAiAQRAIAEoAgAiAhCNBCACQeAAQQgQohggAUEMQQQQohgLIABByABBBBCiGAvAAQIDfwF+IwBBEGsiAyQAAkAgACgCACIBLQAlQQJGBEAgAUEEaigCACEAIAEoAggiAgRAA0AgABDHBCAAQThqIQAgAkEBayICDQALIAFBBGooAgAhAAsgASgCACAAEMcqDAELAkAgASkDCCIEQgODQgBSDQAgAyAEpyIANgIMIANBDGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0AIAAgACgCIBCNJwsgAUEgahDsDgsgAUEoQQgQohggA0EQaiQAC9IBAQJ/IABBBGoiASgCACAAQQhqKAIAEMwUIAAoAgAgASgCABDBKiAAQRBqIgEoAgAgAEEUaigCABCjJSAAKAIMIAEoAgAQwCogACgCGEGAgICAeEcEQCAAQRxqIgEoAgAgAEEgaigCABCFKCAAKAIYIAEoAgAQwioLIAAoAjwiAQRAIAEQgQ8gASgCACABQQRqKAIAEMIqIAFBFEEEEKIYCyAAKAJAIgEEQCABKAIAIgIQkQQgAkHgAEEIEKIYIAFBDEEEEKIYCyAAQcgAQQQQohgL0gEBAn8gAEEEaiIBKAIAIABBCGooAgAQzBQgACgCACABKAIAEMEqIABBEGoiASgCACAAQRRqKAIAEKMlIAAoAgwgASgCABDAKiAAKAIYQYCAgIB4RwRAIABBHGoiASgCACAAQSBqKAIAEIUoIAAoAhggASgCABDCKgsgACgCPCIBBEAgARCBDyABKAIAIAFBBGooAgAQwiogAUEUQQQQohgLIAAoAkAiAQRAIAEoAgAiAhCSBCACQeAAQQgQohggAUEMQQQQohgLIABByABBBBCiGAvSAQECfyAAQQRqIgEoAgAgAEEIaigCABDMFCAAKAIAIAEoAgAQwSogAEEQaiIBKAIAIABBFGooAgAQoyUgACgCDCABKAIAEMAqIAAoAhhBgICAgHhHBEAgAEEcaiIBKAIAIABBIGooAgAQhSggACgCGCABKAIAEMIqCyAAKAI8IgEEQCABEIEPIAEoAgAgAUEEaigCABDCKiABQRRBBBCiGAsgACgCQCIBBEAgASgCACICEPYCIAJB4ABBCBCiGCABQQxBBBCiGAsgAEHIAEEEEKIYC8ABAgN/AX4jAEEQayIDJAACQCAAKAIAIgEtACVBAkYEQCABQQRqKAIAIQAgASgCCCICBEADQCAAELMDIABBOGohACACQQFrIgINAAsgAUEEaigCACEACyABKAIAIAAQxyoMAQsCQCABKQMIIgRCA4NCAFINACADIASnIgA2AgwgA0EMahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQAgACAAKAIgEI0nCyABQSBqEPAOCyABQShBCBCiGCADQRBqJAAL0gEBAn8gAEEEaiIBKAIAIABBCGooAgAQ0RQgACgCACABKAIAEMEqIABBEGoiASgCACAAQRRqKAIAEKglIAAoAgwgASgCABDAKiAAKAIYQYCAgIB4RwRAIABBHGoiASgCACAAQSBqKAIAEJkoIAAoAhggASgCABDCKgsgACgCPCIBBEAgARCEDyABKAIAIAFBBGooAgAQwiogAUEUQQQQohgLIAAoAkAiAQRAIAEoAgAiAhCVBCACQeAAQQgQohggAUEMQQQQohgLIABByABBBBCiGAvSAQECfyAAQQRqIgEoAgAgAEEIaigCABDRFCAAKAIAIAEoAgAQwSogAEEQaiIBKAIAIABBFGooAgAQqCUgACgCDCABKAIAEMAqIAAoAhhBgICAgHhHBEAgAEEcaiIBKAIAIABBIGooAgAQmSggACgCGCABKAIAEMIqCyAAKAI8IgEEQCABEIQPIAEoAgAgAUEEaigCABDCKiABQRRBBBCiGAsgACgCQCIBBEAgASgCACICEJYEIAJB4ABBCBCiGCABQQxBBBCiGAsgAEHIAEEEEKIYC8kBAgJ/AX4jAEEQayIFJAACQAJAIAEtADxFDQAgBUEIaiABELwZAkAgBS0ACEEERwRAIAUpAwgiB0L/AYNCBFINAQsgAUEAOgA8IAEoAgAgAUEANgIARQ0BIAEgASgCBBCpBgwBCyAAIAc3AgAMAQsCQCACKAIABEAgASACKAIEEKkGIAEoAiggAyAEEIEVIAEgAyAEEKwHIAEgAigCCBCpBgwBCyABKAIoIAMgBBCBFSABIAMgBBCsBwsgAEEEOgAACyAFQRBqJAAL1QECAn8BfiMAQRBrIgMkAAJAAkAgAS0APEUNACADQQhqIAEQvBkCQCADLQAIQQRHBEAgAykDCCIFQv8Bg0IEUg0BCyABQQA6ADwgASgCACABQQA2AgBFDQEgASABKAIEEKkGDAELIAAgBTcCAAwBCwJAIAIoAgAEQCABIAIoAgQQqQYgASgCKEHxluAAQQEQgRUgAUHxluAAQQEQrAcgASACKAIIEKkGDAELIAEoAihB8ZbgAEEBEIEVIAFB8ZbgAEEBEKwHCyAAQQQ6AAALIANBEGokAAvBAQIBfwF+IwBBEGsiAyQAIANBCGogASACKAIIQQAQwAICQAJAAkAgAy0ACEEERwRAIAMpAwgiBEL/AYNCBFINAQsgA0EIaiACIAEQ4C8gAy0ACEEERwRAIAMpAwgiBEL/AYNCBFINAgsgA0EIaiACQQRqIAEQ4i8CQCADLQAIQQRHBEAgAykDCCIEQv8Bg0IEUg0BCyAAQQQ6AAAMAwsgACAENwIADAILIAAgBDcCAAwBCyAAIAQ3AgALIANBEGokAAvMAQEDfyAAQUBrEKApIABBkAFqIQQgACgChAFB2ABsIQMgACgCgAEhAgNAAkAgAwRAAkACQAJAAkAgAigCAEEBaw4FAAECBQMFCyACQQRqIAEQmSoMBAsgAkEEaiABEO0xDAMLIAJBBGogARDNFQwCCyACQQRqIAEQ4zEMAQsgACgCeCICBEAgASACQQxqKAIAIAJBEGooAgAQ+SgLIAQgARDNFSAALQA8QQZHBEAgAEEQahCgKQsPCyACQdgAaiECIANB2ABrIQMMAAsAC/sBAQJ/AkACQAJAAkACQAJAIAAoAgBBAWsOBwEFBQQEAgMACyAAQQhqIAEQjjIPCyAAQQhqIAEQjzIPCyAAKAIEIgIoAihBMGwhACACKAIkIQIDQCAARQ0CIAIoAigiAwRAIAMgARCJMwsgAkEwaiECIABBMGshAAwACwALIAAoAgQiAC0ARUEDRg0AIABBIGohAANAIAAtACVBAkYEQAJAIAAoAghBOGwhAiAAKAIEIQADQCACRQ0BIAAgARCjEyACQThrIQIgAEE4aiEADAALAAsFIAAoAiAhAAwBCwsLDwsgACgCBCIAQQRqKAIAIABBCGooAgAgARDGIAvPAQEFfyAAKAIEIQICQAJAAkACQCAAKAIIIgZFDQAgAigCAA0AIAJBCGpB8OngAEEEEMwkRQ0AIAIoAighBCABKAIcIAEoAiAgAigCLCIDEKMtIgVB2OngABCKBg0BIAQhBQwCCyACIAYgARDsJQwCCyAEIAUoAhwiAyADIARLGyEFIAQgAyADIARJGyEDCyABIAUgAxDKIiACQUBrIAZBAWsgARDsJQsgAEEMaiABEOYjIABBGGogARDSKyAAKAI8IAEQ+CggACgCQCABEPcoC8EBAgN/AX4jAEEQayIEJAACQCAAKAIQIgNFBEAMAQtBASECIANBnYvZAEEBEIcFDQAgAVAEQCADQZG63wBBARCHBSECDAELAkAgASAANQIUIgVYBEAgBSABfSIBQhpUDQEgA0GRut8AQQEQhwUNAiABQQEgAxCCCSECDAILIANBxNzWAEEQEIcFDQFBACECIABBADoABCAAQQA2AgAMAQsgBCABp0HhAGo2AgwgBEEMaiADEJEKIQILIARBEGokACACC7kBAgR/AX4jAEEQayICJAAgACgCCCIDBEAgACgCBEEkaiEAA0ACQCAAQRxrKQMAIgVCA4NCAFINACACIAWnIgE2AgwgAkEMahDQBiABIAEoAgAiBEEBazYCACAEQQFHDQAgASABKAIgEI0nCyAAQQRrKAIAIgEEQCABEOgCIAFB4ABBCBCiGAsgACgCACIBBEAgARDoAiABQeAAQQgQohgLIABBMGohACADQQFrIgMNAAsLIAJBEGokAAu5AQIEfwF+IwBBEGsiAiQAIAAoAggiAwRAIAAoAgRBJGohAANAAkAgAEEcaykDACIFQgODQgBSDQAgAiAFpyIBNgIMIAJBDGoQ0AYgASABKAIAIgRBAWs2AgAgBEEBRw0AIAEgASgCIBCNJwsgAEEEaygCACIBBEAgARDp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KQMIIgNCA4NCAFINASABIAOnIgA2AgggAUEIahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQEgACAAKAIgEI0nDAELIAApAwgiA0IDg0IAUg0AIAEgA6ciADYCDCABQQxqENAGIAAgACgCACICQQFrNgIAIAJBAUcNACAAIAAoAiAQjScLIAFBEGokAAvGAQICfwF+IwBBEGsiASQAAkACQAJAAkAgACgCAA4CAQIACyAAKAIEIgAQxQEgAEHAAEEIEKIYDAILIAApAwgiA0IDg0IAUg0BIAEgA6ciADYCCCABQQhqENAGIAAgACgCACICQQFrNgIAIAJBAUcNASAAIAAoAiAQjScMAQsgACkDCCIDQgODQgBSDQAgASADpyIANgIMIAFBDGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0AIAAgACgCIBCNJwsgAUEQaiQAC8YBAgJ/AX4jAEEQayIBJAACQAJAAkACQCAAKAIADgIBAgALIAAoAgQiABC+ASAAQcAAQQgQohgMAgsgACkDCCIDQgODQgBSDQEgASADpyIANgIIIAFBCGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0BIAAgACgCIBCNJwwBCyAAKQMIIgNCA4NCAFINACABIAOnIgA2AgwgAUEMahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQAgACAAKAIgEI0nCyABQRBqJAALxgECAn8BfiMAQRBrIgEkAAJAAkACQAJAIAAoAgAOAgECAAsgACgCBCIAENcBIABBwABBCBCiGAwCCyAAKQMIIgNCA4NCAFINASABIAOnIgA2AgggAUEIahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQEgACAAKAIgEI0nDAELIAApAwgiA0IDg0IAUg0AIAEgA6ciADYCDCABQQxqENAGIAAgACgCACICQQFrNgIAIAJBAUcNACAAIAAoAiAQjScLIAFBEGokAAu+AQIDfwF+IwBBEGsiAiQAAkAgAC0ALEECRgRAIAAoAhgiARCdDyABQTBBCBCiGAwBCyAAKQMYIgRCA4NCAFINACACIASnIgE2AgwgAkEMahDQBiABIAEoAgAiA0EBazYCACADQQFHDQAgASABKAIgEI0nCwJAIAApAwAiBEIDg0IAUg0AIAIgBKciADYCCCACQQhqENAGIAAgACgCACIBQQFrNgIAIAFBAUcNACAAIAAoAiAQjScLIAJBEGokAAvGAQICfwF+IwBBEGsiASQAAkACQAJAAkAgACgCAA4CAQIACyAAKAIEIgAQ1QEgAEHAAEEIEKIYDAILIAApAwgiA0IDg0IAUg0BIAEgA6ciADYCCCABQQhqENAGIAAgACgCACICQQFrNgIAIAJBAUcNASAAIAAoAiAQjScMAQsgACkDCCIDQgODQgBSDQAgASADpyIANgIMIAFBDGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0AIAAgACgCIBCNJwsgAUEQaiQAC7kBAQJ/IwBBMGsiAiQAIAEtACwiA0EESyADQQNGckUEQCAAIAFBGGoQ/wcLAkAgACgCAEUNACABLQAsQQNHDQAgAiAAIAEQoAYgAi0ALEEGRg0AIAEQjxMgAUEoaiACQShqKQMANwMAIAFBIGogAkEgaikDADcDACABQRhqIAJBGGopAwA3AwAgAUEQaiACQRBqKQMANwMAIAFBCGogAkEIaikDADcDACABIAIpAwA3AwALIAJBMGokAAvGAQICfwF+IwBBEGsiASQAAkACQAJAAkAgACgCAA4CAQIACyAAKAIEIgAQogEgAEHAAEEIEKIYDAILIAApAwgiA0IDg0IAUg0BIAEgA6ciADYCCCABQQhqENAGIAAgACgCACICQQFrNgIAIAJBAUcNASAAIAAoAiAQjScMAQsgACkDCCIDQgODQgBSDQAgASADpyIANgIMIAFBDGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0AIAAgACgCIBCNJwsgAUEQaiQAC8YBAgJ/AX4jAEEQayIBJAACQAJAAkACQCAAKAIADgIBAgALIAAoAgQiABDLASAAQcAAQQgQohgMAgsgACkDCCIDQgODQgBSDQEgASADpyIANgIIIAFBCGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0BIAAgACgCIBCNJwwBCyAAKQMIIgNCA4NCAFINACABIAOnIgA2AgwgAUEMahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQAgACAAKAIgEI0nCyABQRBqJAALxgEBBH8jAEEQayIEJAAgACgCCCIDBEAgACgCBCICIANBKGxqIQUDQAJAAkACQAJAAkAgAigCAEEBaw4EAAECAwQLIAIoAgRBAUcNAyACKAIIIAEQtAEMAwsgAigCBCABELQBDAILIAIoAgQgARDVBQwBCyACKAIMIQMgAigCCCEAIAQgATYCDCADRQ0AIANBKGwhAwNAIARBDGogABDgCCAAQShqIQAgA0EoayIDDQALCyACQShqIgIgBUcNAAsLIARBEGokAAvGAQEEfyMAQRBrIgQkACAAKAIIIgMEQCAAKAIEIgIgA0EobGohBQNAAkACQAJAAkACQCACKAIAQQFrDgQAAQIDBAsgAigCBEEBRw0DIAIoAgggARDhAgwDCyACKAIEIAEQ4QIMAgsgAigCBCABEPwFDAELIAIoAgwhAyACKAIIIQAgBCABNgIMIANFDQAgA0EobCEDA0AgBEEMaiAAEIoJIABBKGohACADQShrIgMNAAsLIAJBKGoiAiAFRw0ACwsgBEEQaiQAC8YBAQR/IwBBEGsiBCQAIAAoAggiAwRAIAAoAgQiAiADQShsaiEFA0ACQAJAAkACQAJAIAIoAgBBAWsOBAABAgMECyACKAIEQQFHDQMgAigCCCABENMCDAMLIAIoAgQgARDTAgwCCyACKAIEIAEQ7wUMAQsgAigCDCEDIAIoAgghACAEIAE2AgwgA0UNACADQShsIQMDQCAEQQxqIAAQ/gggAEEoaiEAIANBKGsiAw0ACwsgAkEoaiICIAVHDQALCyAEQRBqJAALxgECAn8BfiMAQRBrIgEkAAJAAkACQAJAIAAoAgAOAgECAAsgACgCBCIAEOoBIABBwABBCBCiGAwCCyAAKQMIIgNCA4NCAFINASABIAOnIgA2AgggAUEIahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQEgACAAKAIgEI0nDAELIAApAwgiA0IDg0IAUg0AIAEgA6ciADYCDCABQQxqENAGIAAgACgCACICQQFrNgIAIAJBAUcNACAAIAAoAiAQjScLIAFBEGokAAvGAQICfwF+IwBBEGsiASQAAkACQAJAAkAgACgCAA4CAQIACyAAKAIEIgAQ1gEgAEHAAEEIEKIYDAILIAApAwgiA0IDg0IAUg0BIAEgA6ciADYCCCABQQhqENAGIAAgACgCACICQQFrNgIAIAJBAUcNASAAIAAoAiAQjScMAQsgACkDCCIDQgODQgBSDQAgASADpyIANgIMIAFBDGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0AIAAgACgCIBCNJwsgAUEQaiQAC8YBAgJ/AX4jAEEQayIBJAACQAJAAkACQCAAKAIADgIBAgALIAAoAgQiABDiASAAQcAAQQgQohgMAgsgACkDCCIDQgODQgBSDQEgASADpyIANgIIIAFBCGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0BIAAgACgCIBCNJwwBCyAAKQMIIgNCA4NCAFINACABIAOnIgA2AgwgAUEMahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQAgACAAKAIgEI0nCyABQRBqJAALxgECAn8BfiMAQRBrIgEkAAJAAkACQAJAIAAoAgAOAgECAAsgACgCBCIAEMQBIABBwABBCBCiGAwCCyAAKQMIIgNCA4NCAFINASABIAOnIgA2AgggAUEIahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQEgACAAKAIgEI0nDAELIAApAwgiA0IDg0IAUg0AIAEgA6ciADYCDCABQQxqENAGIAAgACgCACICQQFrNgIAIAJBAUcNACAAIAAoAiAQjScLIAFBEGokAAvGAQICfwF+IwBBEGsiASQAAkACQAJAAkAgACgCAA4CAQIACyAAKAIEIgAQxgEgAEHAAEEIEKIYDAILIAApAwgiA0IDg0IAUg0BIAEgA6ciADYCCCABQQhqENAGIAAgACgCACICQQFrNgIAIAJBAUcNASAAIAAoAiAQjScMAQsgACkDCCIDQgODQgBSDQAgASADpyIANgIMIAFBDGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0AIAAgACgCIBCNJwsgAUEQaiQAC74BAgN/AX4jAEEQayICJAACQCAALQAsQQJGBEAgACgCGCIBEKoPIAFBMEEIEKIYDAELIAApAxgiBEIDg0IAUg0AIAIgBKciATYCCCACQQhqENAGIAEgASgCACIDQQFrNgIAIANBAUcNACABIAEoAiAQjScLAkAgACkDACIEQgODQgBSDQAgAiAEpyIANgIMIAJBDGoQ0AYgACAAKAIAIgFBAWs2AgAgAUEBRw0AIAAgACgCIBCNJwsgAkEQaiQAC8YBAgJ/AX4jAEEQayIBJAACQAJAAkACQCAAKAIADgIBAgALIAAoAgQiABDhASAAQcAAQQgQohgMAgsgACkDCCIDQgODQgBSDQEgASADpyIANgIIIAFBCGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0BIAAgACgCIBCNJwwBCyAAKQMIIgNCA4NCAFINACABIAOnIgA2AgwgAUEMahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQAgACAAKAIgEI0nCyABQRBqJAALxgECAn8BfiMAQRBrIgEkAAJAAkACQAJAIAAoAgAOAgECAAsgACgCBCIAEKMBIABBwABBCBCiGAwCCyAAKQMIIgNCA4NCAFINASABIAOnIgA2AgggAUEIahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQEgACAAKAIgEI0nDAELIAApAwgiA0IDg0IAUg0AIAEgA6ciADYCDCABQQxqENAGIAAgACgCACICQQFrNgIAIAJBAUcNACAAIAAoAiAQjScLIAFBEGokAAvGAQICfwF+IwBBEGsiASQAAkACQAJAAkAgACgCAA4CAQIACyAAKAIEIgAQqwEgAEHAAEEIEKIYDAILIAApAwgiA0IDg0IAUg0BIAEgA6ciADYCCCABQQhqENAGIAAgACgCACICQQFrNgIAIAJBAUcNASAAIAAoAiAQjScMAQsgACkDCCIDQgODQgBSDQAgASADpyIANgIMIAFBDGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0AIAAgACgCIBCNJwsgAUEQaiQAC8YBAgJ/AX4jAEEQayIBJAACQAJAAkACQCAAKAIADgIBAgALIAAoAgQiABDHASAAQcAAQQgQohgMAgsgACkDCCIDQgODQgBSDQEgASADpyIANgIIIAFBCGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0BIAAgACgCIBCNJwwBCyAAKQMIIgNCA4NCAFINACABIAOnIgA2AgwgAUEMahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQAgACAAKAIgEI0nCyABQRBqJAALxgEBBH8jAEEQayIEJAAgACgCCCIDBEAgACgCBCICIANBKGxqIQUDQAJAAkACQAJAAkAgAigCAEEBaw4EAAECAwQLIAIoAgRBAUcNAyABIAIoAggQlwYMAwsgASACKAIEEJcGDAILIAIoAgQgARDtBQwBCyACKAIMIQMgAigCCCEAIAQgATYCDCADRQ0AIANBKGwhAwNAIARBDGogABCLCSAAQShqIQAgA0EoayIDDQALCyACQShqIgIgBUcNAAsLIARBEGokAAu7AQEFfyMAQSBrIgQkAAJ/A0AgBEEIaiIGIAEgAiADEJcCIAQoAgghAgJAIAQtAAwiB0ECRwRAIAQtAA0hAyACKAIAQRJHDQEgAi0AFEETa0H/AXFBAk8NASACKAIEIgUoAgBBEkcNASAFLQAUQRhHDQEgAigCECEFIAIoAgwhCCAEQTg6AAggASAIIAUgBhCPIwwBC0EBDAILIAdBAXENAAtBAAshAyAAIAI2AgQgACADNgIAIARBIGokAAvHAQIFfwF+IwBBIGsiAyQAIAAoAghBOGwhBCAAKAIEIQVBACEAA0ACQAJAAkAgACAERwRAAkACQAJAIAAgBWoiAigCAEEBaw4CAQIACyACQQhqIAEQnSogAkEoaiABEPExDAULIAJBMGooAgAiBg0CDAMLIAJBBGogARCLMwwDCyADQSBqJAAPCyABIAYQhgULIAEtAChFDQAgA0EIaiACQRBqEI0XIAEgAykDCCIHIAMoAhgQ+yYgBxDQGgsgAEE4aiEADAALAAvNAQEDfwJAIAAoAgAiAEUNACAAKAIIQQxsIQMgACgCBCEAA0AgA0UNAQJAIAAoAgAiAgRAIAIgARCJMwwBCwJAAkACQAJAAkBBBCAAKAIEIgIoAgBBBWsiBCAEQQZPG0EBaw4FAAECAwQFCyABIAJBCGoQ6yogAigCKCABEIkzDAQLIAIoAiggARCJMwwDCyACQQhqIAEQgy0MAgsgAiABEPwmDAELIAEgAkEIahDrKiACKAIoIAEQ+R0LIABBDGohACADQQxrIQMMAAsACwu4AQEEfyMAQRBrIgYkACABLQCCAiEHIAEtAIECIQggAS0AgAIhCSAGQQhqIAIgAyAEIAVB1JbAABDfICAGIAkgCCAHIAYoAgggBigCDBDlBiAAAn8CQCAGKAIAQQFxBEAgBigCBCAEaiIFIANJDQEgBSADQeSWwAAQ5xYAC0EADAELIAAgBCAFIAEgAiAFai0AAGotAABrIgFBACABIAVNGyIBIAEgBEkbNgIEQQILNgIAIAZBEGokAAu6AQECfyAAIAAtAA0gAS0ADSICIAJBA0YbOgANIAAgAC0ADCABLQAMIgIgAkECRhs6AAwgACAALQALIAEtAAsiAiACQQJGGzoACyAAIAAtAAogAS0ACiICIAJBAkYbOgAKIAAgAUEJaiAAQQlqIAEtAAgiAhstAAA6AAkgACAAKAIAIAEoAgAiAyADQQJGIgMbNgIAIAAgAiAALQAIckEBcToACCAAIABBBGogAUEEaiADGygCADYCBCAAC7gBAgF+A38gAQRAIABBCGohAyAAKQMAQn+FQoCBgoSIkKDAgH+DIQIDQCACUARAA0AgAEHgAGshACADKQMAIANBCGohA0KAgYKEiJCgwIB/gyICQoCBgoSIkKDAgH9RDQALIAJCgIGChIiQoMCAf4UhAgsgACACeqdBA3ZBdGxqQQxrIgUoAgAiBCAEKAIAIgRBAWs2AgAgBEEBRgRAIAUQxR4LIAJCAX0gAoMhAiABQQFrIgENAAsLC7UBAQJ/AkACQCABIAAoAggiAk0EQCABIAJGDQEgAiABayECAkAgACgCBCABQQJ0aiIDLQAAIgFB/wFHBEAgASABQQJ2aiABQQNxQQBHakECaiIBIAJJDQEgASACQeCGxAAQ5xYACyAAKAIoQQJqIgEgAk8NAwtBASADIAFBAnRqKAIAIgAgAEEASBsPCyABIAJBmIzEABDoFgALQQBBAEHQhsQAEOcWAAsgASACQfCGxAAQ5xYAC8UBAgN/AX4jAEEQayICJAACQCAAKQMQIgRCA4NCAFINACACIASnIgE2AgggAkEIahDQBiABIAEoAgAiA0EBazYCACADQQFHDQAgASABKAIgEI0nCwJAAkACQCAAKAIADgMAAgECCyAAKQMIIgRCA4NCAFINASACIASnIgA2AgwgAkEMahDQBiAAIAAoAgAiAUEBazYCACABQQFHDQEgACAAKAIgEI0nDAELIAAoAgQiABDGASAAQcAAQQgQohgLIAJBEGokAAvAAQIDfwJ+IwBBIGsiAiQAAkAgAC0AJUECRgRAIAEgABDMAgwBCyACQQhqIABBCGoQrSEgASgCGCEDIAIpAwghBSABIAIoAhA2AhggASkDECEGIAEgBTcDECAAKAIgIAEQuA8CQCABKQMQIgVQIAVCA4NCAFJyDQAgAiAFpyIANgIcIAJBHGoQ0AYgACAAKAIAIgRBAWs2AgAgBEEBRw0AIAAgACgCIBCNJwsgASADNgIYIAEgBjcDEAsgAkEgaiQAC7cBAQd/IwBB4ABrIgUkAAJAIAAoAggiBCABRg0AIAAoAgQiAyABQdgAbGohBiADIARB2ABsaiEDIAIoAgQhASACKAIMIQcDQCABIAdGDQEgAiABQdgAaiIENgIEIAEoAgAiCEENRg0BIAVBDGoiCSABQQRqQdQAEIEJGiADIAg2AgAgA0EEaiAJQdQAEIEJGiAAIAAoAghBAWo2AgggBCEBIANB2ABqIgMgBkcNAAsLIAVB4ABqJAALxwEBAX8jAEEQayILJAAgACgCFCABIAIgACgCGCgCDBEDACEBIAtBADoADSALIAE6AAwgCyAANgIIIAtBCGogAyAEIAUgBhD3CCAHIAggCSAKEPcIIQEgCy0ADSICIAstAAwiA3IhAAJAIANBAXEgAkEBR3INACABKAIAIgAtABxBBHFFBEAgACgCFEHH3dYAQQIgACgCGCgCDBEDACEADAELIAAoAhRBm5zgAEEBIAAoAhgoAgwRAwAhAAsgC0EQaiQAIABBAXELtQEBBX8jAEEgayICJAAgAkEIaiABQQRBBBCVHSACQQA2AhwgAiACKQMINwIUIAJBFGogARC6J0EBIAEgAUEBTRsiBUEBayEDIAIoAhggAigCHCIGQQJ0aiEEAkADQCADBEAgBEEANgIAIANBAWshAyAEQQRqIQQMAQUCQCAFIAZqIQMgAQ0AIANBAWshAwwDCwsLIARBADYCAAsgACACKQIUNwIAIABBCGogAzYCACACQSBqJAALugEBA38jAEEwayIBJAACQCACKAIQIgQgAigCFCIFSw0AIABBBGohACACKAIAQQFrQQJPBEAgAUEMaiAAIAIoAgggAigCDCAEIAUQqwcgASgCDCIDQQFHDQEgASgCECABKAIUTQ0BIAFBADYCKCABQQE2AhwgAUGgq8MANgIYIAFCBDcCICABQRhqQdiawwAQkiYACyAEIAIoAgxPDQAgAC0AACACKAIIIARqLQAARiEDCyABQTBqJAAgAwujAQEBfyMAQSBrIgMkACABQf8BcQRAIANBEGogAUEBayIBQf8AcRD8FyAAIAFBgAFxQQN2aiIBIAEpAwAgAykDEIQ3AwAgAUEIaiIBIAEpAwAgA0EYaikDAIQ3AwALIAMgAkH/AHEQ/BcgACACQYABcUEDdmoiACAAKQMAIAMpAwCENwMAIABBCGoiACAAKQMAIANBCGopAwCENwMAIANBIGokAAvNAQECfyMAQSBrIgIkACACQQA6ABAgAkLkgICAoB83AgggAkKKgICAoAE3AgAgAkEUaiACIAEQ7AECQCACKAIUQYCAgIB4Rg0AIAIoAhwiAUUNACABQQR0IQMgAigCGEEMaiEBA0AgAUEAOgAAIAFBEGohASADQRBrIgMNAAsLIAJBFGpBARC7AwJAIAIoAhQiAUGAgICAeEYEQCAAQQI6AAwMAQsgACACKAIYIgAgAigCHCIDEN4RIAAgAxDKJSABIAAQsS8LIAJBIGokAAumAQEDfwJAAkAgAS0AACIDIAFBAmstAAAiAkYEQCABLQABIgIgAUEBay0AAEkNAQwCCyACIANNDQEgAS0AASECCyABQQRrIQEDQAJAIAFBBGogAUECaiIELwAAOwAAIAAgBEYNAAJAIAEtAAAiBCADRgRAIAIgAUEBai0AAEkNAQwCCyADIARPDQELIAFBAmshAQwBCwsgAUECaiACQQh0IANyOwAACwugAQEFfiAAIAApAxgiAUIQiSABIAApAwh8IgGFIgJCFYkgAiAAKQMQIgMgACkDAHwiBEIgiXwiAoUiBUIQiSAFIAEgA0INiSAEhSIDfCIBQiCJfCIEhSIFIAIgASADQhGJhSIBfCICQiCJfCIDNwMAIAAgBUIViSADhTcDGCAAIAFCDYkgAoUiAUIRiSABIAR8IgGFNwMQIAAgAUIgiTcDCAurAQEBfyMAQSBrIgMkACADQRhqIAFBEGopAgA3AgAgA0EQaiABQQhqKQIANwIAQaC/5AAtAAAaIAMgASkCADcCCEHAABCEASIBBEAgAUEfNgIAIAEgAykCBDcCBCABIAI2AiAgACABNgIEIABBuwE6AAAgAUEMaiADQQxqKQIANwIAIAFBFGogA0EUaikCADcCACABQRxqIANBHGooAgA2AgAgA0EgaiQADwsAC6sBAQF/IwBBIGsiAyQAIANBGGogAUEQaikCADcCACADQRBqIAFBCGopAgA3AgBBoL/kAC0AABogAyABKQIANwIIQcAAEIQBIgEEQCABQQ82AgAgASADKQIENwIEIAEgAjYCICAAIAE2AgQgAEG7AToAACABQQxqIANBDGopAgA3AgAgAUEUaiADQRRqKQIANwIAIAFBHGogA0EcaigCADYCACADQSBqJAAPCwALtwECA38BfiMAQRBrIgIkACAAQRhqIQECQCAALQAsQQJGBEAgARCvDgwBCyABKQMAIgRC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KAE6NgE6IAIgAC0AODoAOCACIAY3AwAgASgCFCADRXJFBEAgAUEAIAMQmAY2AhQLIAIgARCPCyACEKEKIAQQqwogAkHgAGokAAuvAQEDfyMAQeAAayIHJAAgB0EANgIMIAdCgICAgBA3AgQgB0EQaiABIAIgAyAEENQCA0AgB0HUAGogB0EQahC7CCAHKAJUBEAgBygCWCAIayEDIAEgCGohBCAHKAJcIQggB0EEaiIJIAQgAxDXJiAJIAUgBhDXJgwBBSAHQQRqIAEgCGogAiAIaxDXJiAAQQhqIAdBDGooAgA2AgAgACAHKQIENwIAIAdB4ABqJAALCwvTAQEBfyMAQfAAayIDJAAgAyACNgIsIANBADYCKCADQeQANgIkIAMgAEEcajYCICADQQI2AhwgA0Goj+EANgIYIANBAjYCFCADQQM2AgQgA0H8icIANgIAIANBAzoAbCADQQA2AmggA0KggICAEDcCYCADQoKAgIAgNwJYIANBAjYCUCADQQM6AEwgA0EANgJIIANCIDcCQCADQoGAgIAgNwI4IANBAjYCMCADIANBMGo2AhAgA0EDNgIMIAMgA0EYajYCCCABIAMQhiwgA0HwAGokAAvDAQEDfyMAQbAHayICJAAgASgClA0oArwCIgMgAygCACIEQQFqNgIAIARBAE4EQCACIAMQ3SEgAkHoBGogASgCoAoQ9B4gAkHUBWogASgCuAoQzCcgAkHYBGogASgC1AogASgC+AoQ1hQgAkHYAWogARCBHgJAIAEpA6ANQgJRBEAgAkECNgKgBwwBCyACQfAFaiABQaANahDRBgsgAkEYaiACQfAFakHAARCBCRogACACQfAFEIEJGiACQbAHaiQADwsAC7YBAQN/IwBBMGsiASQAAkAgAigCECIEIAIoAhQiBUsNACACKAIAQQFrQQJPBEAgAUEMaiAAIAIoAgggAigCDCAEIAUQvxEgASgCDCIDQQFHDQEgASgCECABKAIUTQ0BIAFBADYCKCABQQE2AhwgAUGgq8MANgIYIAFCBDcCICABQRhqQdiawwAQkiYACyAEIAIoAgxPDQAgACACKAIIIARqLQAAai0AACEDCyABQTBqJAAgA0EBcQuoAQEFfyMAQZACayICJAAgAkEQakEAQYACEIcPGkEBIQQCQANAIAIgASAEQQFrIgVBA3ZBEHFqIgYpAwAgBkEIaikDACAFQf8AcRD7FyACKQMAQgGDUEUEQCADQf8BcUEBaiIDQf8BcSADRw0CCyACQRBqIgUgBGogAzoAACAEQQFqIgRBgAJHDQALIAAgBUGAAhCBCRogAkGQAmokAA8LQZC9wwAQoS8AC7cBAQV/IwBBIGsiAiQAAkACQCABKAIIIgMEQCABKAIEIgQtAABBAnEEQCACIANBDWsiBUEDcSIGNgIEIAYNAyADQQxNDQIgBCAFQQJ2NgAJCyAAQQA2AgwgACABKQIANwIAIABBCGogAUEIaigCADYCACACQSBqJAAPC0EAQQBBoOPDABDnFgALQQ0gA0Gg5cMAEOkWAAsgAkEANgIIQQAgAkEEakHc9d8AIAJBCGpBsOXDABDvIwALqAEBA38CQAJAIAEoAgAiAyABQQhrKAIAIgJGBEAgASgCBCICIAFBBGsoAgBJDQEMAgsgAiADTQ0BIAEoAgQhAgsgAUEQayEBA0ACQCABQRBqIAFBCGoiBCkCADcCACAAIARGDQACQCABKAIAIgQgA0YEQCACIAFBBGooAgBJDQEMAgsgAyAETw0BCyABQQhrIQEMAQsLIAFBCGogA60gAq1CIIaENwIACwu9AQEDfyMAQSBrIgEkACAAKAIAIgIoAgAhAyACQQA2AgAgAygCECECIANBADYCECACBEAgAUEIaiACEQIAIAAoAgQiAygCACIAKAIAIgJBgoCAgHhOBEAgAiAAQQRqKAIAEJ0vIAMoAgAhAAsgACABKQIINwIAIABBCGogAUEQaigCADYCACABQSBqJABBAQ8LIAFBADYCGCABQQE2AgwgAUHAvOMANgIIIAFCBDcCECABQQhqQbCP4QAQkiYAC74BAQN/IwBB0ABrIgEkACAAKAIAIgIoAgAhAyACQQA2AgAgAygCUCECIANBADYCUCACBEAgAUEIaiACEQIAAkAgACgCBCIDKAIAIgAoAjgiAkECRiACRXINACAAKAJAIgJFDQAgACgCPCACQQEQohggAygCACEACyAAIAFBCGpByAAQgQkaIAFB0ABqJABBAQ8LIAFBADYCGCABQQE2AgwgAUHAvOMANgIIIAFCBDcCECABQQhqQbCP4QAQkiYAC7EBAgR/AX4jAEEQayICJAAgACgCCCIDBEAgACgCBCEAA0AgAEEIaiEBAkAgACgCAEUEQCABKQMAIgVCA4NCAFINASACIAWnIgE2AgwgAkEMahDQBiABIAEoAgAiBEEBazYCACAEQQFHDQEgASABKAIgEI0nDAELIAEQvxALIABBKGooAgAiAQRAIAEQoQEgAUHAAEEIEKIYCyAAQTBqIQAgA0EBayIDDQALCyACQRBqJAALugECAn8BfiMAQRBrIgEkAAJAAkACQAJAIAAoAgAOAgECAAsgAEEEahDSAQwCCyAAKQMIIgNCA4NCAFINASABIAOnIgA2AgggAUEIahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQEgACAAKAIgEI0nDAELIAApAwgiA0IDg0IAUg0AIAEgA6ciADYCDCABQQxqENAGIAAgACgCACICQQFrNgIAIAJBAUcNACAAIAAoAiAQjScLIAFBEGokAAu6AQICfwF+IwBBEGsiASQAAkACQAJAAkAgACgCAA4CAQIACyAAQQRqEP4BDAILIAApAwgiA0IDg0IAUg0BIAEgA6ciADYCCCABQQhqENAGIAAgACgCACICQQFrNgIAIAJBAUcNASAAIAAoAiAQjScMAQsgACkDCCIDQgODQgBSDQAgASADpyIANgIMIAFBDGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0AIAAgACgCIBCNJwsgAUEQaiQAC7oBAgJ/AX4jAEEQayIBJAACQAJAAkACQCAAKAIADgIBAgALIABBBGoQ+wEMAgsgACkDCCIDQgODQgBSDQEgASADpyIANgIIIAFBCGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0BIAAgACgCIBCNJwwBCyAAKQMIIgNCA4NCAFINACABIAOnIgA2AgwgAUEMahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQAgACAAKAIgEI0nCyABQRBqJAALsQECBH8BfiMAQRBrIgIkACAAKAIIIgMEQCAAKAIEIQADQCAAQQhqIQECQCAAKAIARQRAIAEpAwAiBUIDg0IAUg0BIAIgBaciATYCDCACQQxqENAGIAEgASgCACIEQQFrNgIAIARBAUcNASABIAEoAiAQjScMAQsgARC/EAsgAEEoaigCACIBBEAgARCeASABQcAAQQgQohgLIABBMGohACADQQFrIgMNAAsLIAJBEGokAAvKAQEBfwJAAkACQAJAAkACQEEEIAAoAgBBBWsiAiACQQZPG0EBaw4FAAECAwQFCyABIABBCGoQ6yogASAAKAIoEPwCDwsgASAAKAIoEPwCDwsgASAAQQhqEOsqIAAoAihBgICAgHhGDQIgAEEoaiABEP0iDwsgASAAEOsqIAAoAiBBB0cEQCAAQSBqIAEQsAwLIAAoAmggARCwDCAAKAJIQYCAgIB4Rg0BIABByABqIAEQ/SIPCyABIABBCGoQ6yogACgCKCABELIOCwu6AQICfwF+IwBBEGsiASQAAkACQAJAAkAgACgCAA4CAQIACyAAQQRqEJMCDAILIAApAwgiA0IDg0IAUg0BIAEgA6ciADYCCCABQQhqENAGIAAgACgCACICQQFrNgIAIAJBAUcNASAAIAAoAiAQjScMAQsgACkDCCIDQgODQgBSDQAgASADpyIANgIMIAFBDGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0AIAAgACgCIBCNJwsgAUEQaiQAC7oBAgJ/AX4jAEEQayIBJAACQAJAAkACQCAAKAIADgIBAgALIABBBGoQ0wEMAgsgACkDCCIDQgODQgBSDQEgASADpyIANgIIIAFBCGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0BIAAgACgCIBCNJwwBCyAAKQMIIgNCA4NCAFINACABIAOnIgA2AgwgAUEMahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQAgACAAKAIgEI0nCyABQRBqJAALugECAn8BfiMAQRBrIgEkAAJAAkACQAJAIAAoAgAOAgECAAsgAEEEahCUAgwCCyAAKQMIIgNCA4NCAFINASABIAOnIgA2AgggAUEIahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQEgACAAKAIgEI0nDAELIAApAwgiA0IDg0IAUg0AIAEgA6ciADYCDCABQQxqENAGIAAgACgCACICQQFrNgIAIAJBAUcNACAAIAAoAiAQjScLIAFBEGokAAu6AQICfwF+IwBBEGsiASQAAkACQAJAAkAgACgCAA4CAQIACyAAQQRqENQBDAILIAApAwgiA0IDg0IAUg0BIAEgA6ciADYCCCABQQhqENAGIAAgACgCACICQQFrNgIAIAJBAUcNASAAIAAoAiAQjScMAQsgACkDCCIDQgODQgBSDQAgASADpyIANgIMIAFBDGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0AIAAgACgCIBCNJwsgAUEQaiQAC7EBAgR/AX4jAEEQayICJAAgACgCCCIDBEAgACgCBCEAA0AgAEEIaiEBAkAgACgCAEUEQCABKQMAIgVCA4NCAFINASACIAWnIgE2AgwgAkEMahDQBiABIAEoAgAiBEEBazYCACAEQQFHDQEgASABKAIgEI0nDAELIAEQvxALIABBKGooAgAiAQRAIAEQogEgAUHAAEEIEKIYCyAAQTBqIQAgA0EBayIDDQALCyACQRBqJAALugECAn8BfiMAQRBrIgEkAAJAAkACQAJAIAAoAgAOAgECAAsgAEEEahDPAQwCCyAAKQMIIgNCA4NCAFINASABIAOnIgA2AgggAUEIahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQEgACAAKAIgEI0nDAELIAApAwgiA0IDg0IAUg0AIAEgA6ciADYCDCABQQxqENAGIAAgACgCACICQQFrNgIAIAJBAUcNACAAIAAoAiAQjScLIAFBEGokAAu6AQICfwF+IwBBEGsiASQAAkACQAJAAkAgACgCAA4CAQIACyAAQQRqENABDAILIAApAwgiA0IDg0IAUg0BIAEgA6ciADYCCCABQQhqENAGIAAgACgCACICQQFrNgIAIAJBAUcNASAAIAAoAiAQjScMAQsgACkDCCIDQgODQgBSDQAgASADpyIANgIMIAFBDGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0AIAAgACgCIBCNJwsgAUEQaiQAC7oBAgJ/AX4jAEEQayIBJAACQAJAAkACQCAAKAIADgIBAgALIABBBGoQsAEMAgsgACkDCCIDQgODQgBSDQEgASADpyIANgIIIAFBCGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0BIAAgACgCIBCNJwwBCyAAKQMIIgNCA4NCAFINACABIAOnIgA2AgwgAUEMahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQAgACAAKAIgEI0nCyABQRBqJAALzAEBAX8jAEEQayICJAACQCAALQAEQQFHDQACQAJAAkACQAJAIAEoAgBBAWsOBAIAAwQBCwJAIAAtAAUNACABKwMQmUQAAAAAAADwf2INACAAQQA6AAQLIAAgACgCAEEFajYCAAwECyACIAFBCGoQyhAgACACKAIEIAAoAgBq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AWogAkH/////AU0NARoQryQAC0EEQQggAkEESRsLEKwTIAMoAgghBCADKAIEIQECQCADKAIAIgIEQCADKAIMIQUgAkH/ASABQQlqEIcPGiAAIAU2AgwMAQtBACECCyAAIAQ2AgggACABNgIEIAAgAjYCACADQRBqJAALnQEBAn8jAEEwayICJAAgAEHIAmohASAAKALIAkElRgRAIAJBCGogABAyIAAoAsgCQSVHBEAgARDpAwsgASACKQMINwMAIAFBIGogAkEoaikDADcDACABQRhqIAJBIGopAwA3AwAgAUEQaiACQRhqKQMANwMAIAFBCGogAkEQaikDADcDACABQQAgASgCAEElRxshAQsgAkEwaiQAIAELpAEBA38jAEEQayIDJAAgAyABAn8gAkEITwRAQX8gAkEDdEEHbkEBa2d2QQFqIAJB/////wFNDQEaEK8kAAtBBEEIIAJBBEkbCxDMECADKAIIIQQgAygCBCEBAkAgAygCACICBEAgAygCDCEFIAJB/wEgAUEJahCHDxogACAFNgIMDAELQQAhAgsgACAENgIIIAAgATYCBCAAIAI2AgAgA0EQaiQAC7gBAQJ/IwBBMGsiASQAAkAgAigCECIEIAIoAhQiBUsNAAJAIAIoAgBBAWtBAk8EQCABQQxqIAAgAigCCCACKAIMIAQgBRC/ESABKAIMQQFHDQIgASgCECABKAIUTQ0BIAFBADYCKCABQQE2AhwgAUGgq8MANgIYIAFCBDcCICABQRhqQdiawwAQkiYACyAEIAIoAgxPDQEgACACKAIIIARqLQAAai0AAEUNAQsgAxDRGQsgAUEwaiQAC6UBAQR/AkAgASAAKAIMayICQQF0IAJBH3VzIgNB/wBNBEAgACgCCCECDAELIAAoAgghBANAIAAoAgAgBEYEQCAAEO8gCyAAIARBAWoiAjYCCCAAKAIEIARqIANBgH9yOgAAIANB//8ASyACIQQgA0EHdiEDDQALCyAAKAIAIAJGBEAgABDvIAsgACABNgIMIAAgAkEBajYCCCAAKAIEIAJqIAM6AAALtwEBAX8jAEEgayICJAACQAJAIAEQqzJFBEAgAkEEaiABEIUKIAIoAgRBgICAgHhHBEAgAkEYaiACQQxqKAIANgIAIAIgAikCBDcDECAAIAJBEGoQrhgMAgtBgICAgHggAigC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ahCXFCAAQTBqKAIAIgFFDQAgARChASABQcAAQQgQohgLIABBOGohACACQQFrIgINAAsLC64BAQN/IAAoAggiAgRAIAAoAgQhAANAAkACQAJAAkAgACgCAA4CAQIACyAAQQRqKAIAIgEQywcgAUEoQQgQohggAEEYaigCACIBRQ0CIAEoAgAiAxC1AiADQeAAQQgQohggAUEMQQQQohgMAgsgAEEIahCUDAwBCyAAQRBqEKQUIABBMGooAgAiAUUNACABEKIBIAFBwABBCBCiGAsgAEE4aiEAIAJBAWsiAg0ACwsLogECA38BfiMAQRBrIgIkAAJAIAApAxAiBFAgBEIDg0IAUnINACACIASnIgE2AgggAkEIahDQBiABIAEoAgAiA0EBazYCACADQQFHDQAgASABKAIgEI0nCwJAIAApAwAiBEIDg0IAUg0AIAIgBKciADYCDCACQQxqENAGIAAgACgCACIBQQFrNgIAIAFBAUcNACAAIAAoAiAQjScLIAJBEGokAAuuAQEDfyAAKAIIIgIEQCAAKAIEIQADQAJAAkACQAJAIAAoAgAOAgECAAsgAEEEaigCACIBEMwHIAFBKEEIEKIYIABBGGooAgAiAUUNAiABKAIAIgMQ3AIgA0HgAEEIEKIYIAFBDEEEEKIYDAILIABBCGoQmQwMAQsgAEEQahCoFCAAQTBqKAIAIgFFDQAgARCjASABQcAAQQgQohgLIABBOGohACACQQFrIgINAAsLC58BAQV/IAEoAgwiBSABKAIEIgRrQQJ2IgIgACgCACAAKAIIIgNrSwRAIAAgAyACQQhBMBDSCiAAKAIIIQMLIAQgBUcEQCAAKAIEIANBMGxqIQIDQCAEKAIAIQYgAkEIakIANwMAIAJBBGogBjYCACACQRI2AgAgAkEwaiECIANBAWohAyAEQQRqIgQgBUcNAAsgASAENgIECyAAIAM2AggLsAEBAn8jAEEQayICJAAgAiABNgIMAkACQAJAIAAtAIIDQQFxDQAgAC0A+AJBAkYEQCAALQD8AkEBcQ0BCwJAIABBKGoQoRMiA0UNACADKAIAQSRHDQAgACAAKQNANwN4IAAoAiggAEElNgIoQSRHDQIgACgC3AIgACgCLBDbGQsgACgC3AIgARDbGQwCCyACQQxqEIkrDAELQYmE4QBBKEGM5d8AENUhAAsg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QcEASRC5AiAAQQAQyiUgAyAAELEvDAELIAAgASACQYACIAFBwQBJELkCCyACQYAgaiQADwsgAyACKAIIEKMvAAucAQEBfyMAQUBqIgQkACABKAIgRQRAIAFBfzYCICAEIAFBJGogA61C/wGDQiiGIAKtQv8Bg0IghoQQnCYgASABKAIgQQFqNgIgIABBCGohASAEKAIEIQICQCAEKAIAIgNBKkYEQCABIAI2AgAMAQsgASAEQQhqQTgQgQkaCyAAIAM2AgAgACACNgIEIARBQGskAA8LQbTBwwAQ1R0AC58BAQR/IwBBEGsiBSQAIAIoAnwiByABIARB/wFxIghqQdgCai0AACADQf///z9xaiIGSwRAQQAhBCACKAJ4IAZBAnRqKAIAIgZBAEgEQCAFIAI2AgwgBSABNgIIIAUgBUEIaiADIAhBCHQQhQEgBSgCBCEGIAUoAgAhBAsgACAGNgIEIAAgBDYCACAFQRBqJAAPCyAGIAdB6OnDABDnFgALpgEBBX8jAEEgayICJABBASEDAkAgAEEBaiABEKEIDQAgAkEANgIYIAJBATYCDCACQdDHxwA2AgggAkIENwIQIAEoAhQiBCABKAIYIgUgAkEIaiIGEO8rDQAgAEECaiABEKEIDQBBACEDIAAtAABBAUcNACACQQA2AhggAkEBNgIMIAJB5MfHADYCCCACQgQ3AhAgBCAFIAYQ7yshAwsgAkEgaiQAIAMLoAECAX4BfwJAIAIgA2pBAWtBACACa3GtIAGtfiIEQiCIpw0AIASnIgNBgICAgHggAmtLDQAgA0UEQCAAIAI2AgggAEEANgIEIABBADYCAA8LQaC/5AAtAAAaIAMgAhDrKSIFBEAgACAFNgIIIAAgATYCBCAAQQA2AgAPCyAAIAM2AgggACACNgIEIABBATYCAA8LIABBADYCBCAAQQE2AgALngEBAn8jAEFAaiIBJAAQvikhAiABIAAoAgAQNSACQThqIAFBOGopAwA3AwAgAkEwaiABQTBqKQMANwMAIAJBKGogAUEoaikDADcDACACQSBqIAFBIGopAwA3AwAgAkEYaiABQRhqKQMANwMAIAJBEGogAUEQaikDADcDACACQQhqIAFBCGopAwA3AwAgAiABKQMANwMAIAFBQGskACACC6sBAQV/IwBBIGsiAyQAAkAgASgCwAEiAiABKALEAUYEQCAAQSU2AgAMAQsgAi0AACIEQQJ0QczV2QBqKAIAIgIEQCAAIAEgAhEBAAwBCyABIAEoAtABIgJBAWoiBTYC0AEgASABKALIASIGIAEoAswBajYCxAEgASAGIAUgASgC1AFrajYCwAEgA0EhOgAIIAMgBDYCDCAAIAIgAiADQQhqEPwpCyADQSBqJAALuwEBAX8jAEFAaiICJAAgACgCACgCACEAIAJB7NPZADYCOCACQdzT2QA2AjAgAiAANgIsIAJB7NLZADYCKCACIABB0gBqNgIkIAJB7NLZADYCICACIABB0QBqNgIcIAJB7NLZADYCGCACIABB0ABqNgIUIAJB1PDgADYCECACIABByABqNgIMIAIgAEEgajYCPCACIAJBPGo2AjQgAUHoyuAAQQxBuMrgAEEGIAJBDGpBBhCXCyACQUBrJAALuAEBAX8jAEFAaiICJAAgACgCACgCACEAIAJBjNTZADYCOCACQfzT2QA2AjAgAiAAQThqNgIsIAJB/NLZADYCKCACIABBIGo2AiQgAkHs0tkANgIgIAIgAEHEAGo2AhwgAkHM09kANgIYIAIgAEEIajYCFCACQdTw4AA2AhAgAiAANgIMIAIgAEEkajYCPCACIAJBPGo2AjQgAUG82OAAQQ9BnMvgAEEGIAJBDGpBBhCXCyACQUBrJAALuAEBAX8jAEFAaiICJAAgACgCACgCACEAIAJBuKXfADYCOCACQail3wA2AjAgAiAAQThqNgIsIAJBiKTfADYCKCACIABBIGo2AiQgAkH4o98ANgIgIAIgAEHEAGo2AhwgAkG4pN8ANgIYIAIgAEEIajYCFCACQdTw4AA2AhAgAiAANgIMIAIgAEEkajYCPCACIAJBPGo2AjQgAUG82OAAQQ9BnMvgAEEGIAJBDGpBBhCXCyACQUBrJAALuwEBAX8jAEFAaiICJAAgACgCACgCACEAIAJBmKXfADYCOCACQYil3wA2AjAgAiAANgIsIAJB+KPfADYCKCACIABB0gBqNgIkIAJB+KPfADYCICACIABB0QBqNgIcIAJB+KPfADYCGCACIABB0ABqNgIUIAJB1PDgADYCECACIABByABqNgIMIAIgAEEgajYCPCACIAJBPGo2AjQgAUHoyuAAQQxBuMrgAEEGIAJBDGpBBhCXCyACQUBrJAALuAEB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OgAJIAIgBDoACCACIAE2AgQgAwRAIANBOGwhAQNAIAIgADYCDCACQQRqIAJBDGpBgwMQtAoaIABBOGohACABQThrIgENAAsLIAJBBGoQxiUgAkEQaiQAC5oBAQN/IwBBEGsiAiQAIAAoAgAiAEEIaigCACEDIABBBGooAgAhACABKAIUQbHj4ABBASABKAIYKAIMEQMAIQQgAkEAOgAJIAIgBDoACCACIAE2AgQgAwRAIANBMGwhAQNAIAIgADYCDCACQQRqIAJBDGpBhgMQtAoaIABBMGohACABQTBrIgENAAsLIAJBBGoQxiUgAkEQaiQAC5oBAQN/IwBBEGsiAiQAIAAoAgAiAEEIaigCACEDIABBBGooAgAhACABKAIUQbHj4ABBASABKAIYKAIMEQMAIQQgAkEAOgAJIAIgBDoACCACIAE2AgQgAwRAIANBGGwhAQNAIAIgADYCDCACQQRqIAJBDGpBhwMQtAoaIABBGGohACABQRhrIgENAAsLIAJBBGoQxiUgAkEQaiQAC5oBAQN/IwBBEGsiAiQAIAAoAgAiAEEIaigCACEDIABBBGooAgAhACABKAIUQbHj4ABBASABKAIYKAIMEQMAIQQgAkEAOgAJIAIgBDoACCACIAE2AgQgAwRAIANBMGwhAQNAIAIgADYCDCACQQRqIAJBDGpBigMQtAoaIABBMGohACABQTBrIgENAAsLIAJBBGoQxiUgAkEQaiQAC5oBAQN/IwBBEGsiAiQAIAAoAgAiAEEIaigCACEDIABBBGooAgAhACABKAIUQbHj4ABBASABKAIYKAIMEQMAIQQgAkEAOgAJIAIgBDoACCACIAE2AgQgAwRAIANBMGwhAQNAIAIgADYCDCACQQRqIAJBDGpB/AIQtAoaIABBMGohACABQTBrIgENAAsLIAJBBGoQxiUgAkEQaiQAC5oBAQN/IwBBEGsiAiQAIAAoAgAiAEEIaigCACEDIABBBGooAgAhACABKAIUQbHj4ABBASABKAIYKAIMEQMAIQQgAkEAOgAJIAIgBDoACCACIAE2AgQgAwRAIANBOGwhAQNAIAIgADYCDCACQQRqIAJBDGpBoAMQtAoaIABBOGohACABQThrIgENAAsLIAJBBGoQxiUgAkEQaiQAC5oBAQN/IwBBEGsiAiQAIAAoAgAiAEEIaigCACEDIABB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AiQAIAAoAgAiAEEIaigCACEDIABBBGooAgAhACABKAIUQbHj4ABBASABKAIYKAIMEQMAIQQgAkEAOgAJIAIgBDoACCACIAE2AgQgAwRAIANBOGwhAQNAIAIgADYCDCACQQRqIAJBDGpBqQUQtAoaIABBOGohACABQThrIgENAAsLIAJBBGoQxiUgAkEQaiQAC5oBAQN/IwBBEGsiAiQAIAAoAgAiAEEIaigCACEDIABBBGooAgAhACABKAIUQbHj4ABBASABKAIYKAIMEQMAIQQgAkEAOgAJIAIgBDoACCACIAE2AgQgAwRAIANBOGwhAQNAIAIgADYCDCACQQRqIAJBDGpBqwUQtAoaIABBOGohACABQThrIgENAAsLIAJBBGoQxiUgAkEQaiQAC5oBAQN/IwBBEGsiAiQAIAAoAgAiAEEIaigCACEDIABBBGooAgAhACABKAIUQbHj4ABBASABKAIYKAIMEQMAIQQgAkEAOgAJIAIgBDoACCACIAE2AgQgAwRAIANBMGwhAQNAIAIgADYCDCACQQRqIAJBDGpBrQUQtAoaIABBMGohACABQTBrIgENAAsLIAJBBGoQxiUgAkEQaiQAC5oBAQN/IwBBEGsiAiQAIAAoAgAiAEEIaigCACEDIABBBGooAgAhACABKAIUQbHj4ABBASABKAIYKAIMEQMAIQQgAkEAOgAJIAIgBDoACCACIAE2AgQgAwRAIANBOGwhAQNAIAIgADYCDCACQQRqIAJBDGpBrgUQtAoaIABBOGohACABQThrIgENAAsLIAJBBGoQxiUgAkEQaiQAC5oBAQN/IwBBEGsiAiQAIAAoAgAiAEEIaigCACEDIABBBGooAgAhACABKAIUQbHj4ABBASABKAIYKAIMEQMAIQQgAkEAOgAJIAIgBDoACCACIAE2AgQgAwRAIANBMGwhAQNAIAIgADYCDCACQQRqIAJBDGpBmwUQtAoaIABBMGohACABQTBrIgENAAsLIAJBBGoQxiUgAkEQaiQAC5oBAQN/IAEtACYhBCABQQA6ACYgACgCCCICBEAgACgCBCEDIAJBBnQhAgNAIAEgAxCPGCADQUBrIQMgAkFAaiICDQALCyABIAQ6ACYgACgCFCICBEAgACgCECEDIAJBDGwhAgNAIAEgAygCABBEIANBDGohAyACQQxrIgINAAsLIABBGGoiACgCAEGAgICAeEcEQCABIAAQjR4LC7QBAQF/IwBBQGoiAiQAIAAoAgAhACACQcSd3wA2AjggAkG0nd8ANgIwIAIgAEE1ajYCLCACQbSd3wA2AiggAiAAQTRqNgIkIAJBpJ3fADYCICACIABBNmo2AhwgAkGUnd8ANgIYIAIgAEEoajYCFCACQdTw4AA2AhAgAiAAQSBqNgIMIAIgADYCPCACIAJBPGo2AjQgAUGE+OAAQQtBxKbgAEEGIAJBDGpBBhCXCyACQUBrJAALogECA38BfiMAQRBrIgIkAAJAIAAoAgAiAC0AJUECRgRAIABBBGoiASgCACAAQQhqKAIAEPknIAAoAgAgASgCABDHKgwBCwJAIAApAwgiBEIDg0IAUg0AIAIgBKciATYCDCACQQxqENAGIAEgASgCACIDQQFrNgIAIANBAUcNACABIAEoAiAQjScLIABBIGoQkhELIABBKEEIEKIYIAJBEGokAAu1AQEBfyMAQUBqIgIkACAAKAIAIQAgAkH0nd8ANgI4IAJBhJ7fADYCMCACIABBwQBqNgIsIAJB5J3fADYCKCACIABBOGo2AiQgAkGUnt8ANgIgIAIgAEEIajYCHCACQYSe3wA2AhggAiAAQUBrNgIUIAJB1PDgADYCECACIAA2AgwgAiAAQTxqNgI8IAIgAkE8ajYCNCABQcTI4ABBDEH0qOAAQQYgAkEMakEGEJcLIAJBQGskAAu0AQEBfyMAQUBqIgIkACAAKAIAIQAgAkHYpN8ANgI4IAJBtJ3fADYCMCACIABBEmo2AiwgAkG0nd8ANgIoIAIgAEERajYCJCACQfSc3wA2AiAgAiAAQQxqNgIcIAJBtJ3fADYCGCACIABBEGo2AhQgAkHU8OAANgIQIAIgADYCDCACIABBCGo2AjwgAiACQTxqNgI0IAFB/qngAEETQbCu4ABBBiACQQxqQQYQlwsgAkFAayQAC7QBAQF/IwBBQGoiAiQAIAAoAgAhACACQZSf3wA2AjggAkGEn98ANgIwIAIgAEEYajYCLCACQeSe3wA2AiggAiAAQRxqNgIkIAJB1J7fADYCICACIABBDGo2AhwgAkH0nt8ANgIYIAIgADYCFCACQdTw4AA2AhAgAiAAQRBqNgIMIAIgAEEdajYCPCACIAJBPGo2AjQgAUHU1+AAQQpBpNfgAEEGIAJBDGpBBhCXCyACQUBrJAALogECA38BfiMAQRBrIgIkAAJAIAAoAgAiAC0AJUECRgRAIABBBGoiASgCACAAQQhqKAIAEPknIAAoAgAgASgCABDHKgwBCwJAIAApAwgiBEIDg0IAUg0AIAIgBKciATYCDCACQQxqENAGIAEgASgCACIDQQFrNgIAIANBAUcNACABIAEoAiAQjScLIABBIGoQlhELIABBKEEIEKIYIAJBEGokAAuiAQIDfwF+IwBBEGsiAiQAAkAgACgCACIALQAlQQJGBEAgAEEEaiIBKAIAIABBCGooAgAQiiggACgCACABKAIAEMcqDAELAkAgACkDCCIEQgODQgBSDQAgAiAEpyIBNgIMIAJBDGoQ0AYgASABKAIAIgNBAWs2AgAgA0EBRw0AIAEgASgCIBCNJwsgAEEgahCXEQsgAEEoQQgQohggAkEQaiQAC5oBAQN/IwBBEGsiAiQAIAAoAgAiAEEIaigCACEDIABBBGooAgAhACABKAIUQbHj4ABBASABKAIYKAIMEQMAIQQgAkEAOgAJIAIgBDoACCACIAE2AgQgAwRAIANBMGwhAQNAIAIgADYCDCACQQRqIAJBDGpBrAcQtAoaIABBMGohACABQTBrIgENAAsLIAJBBGoQxiUgAkEQaiQAC5oBAQN/IwBBEGsiAiQAIAAoAgAiAEEIaigCACEDIABBBGooAgAhACABKAIUQbHj4ABBASABKAIYKAIMEQMAIQQgAkEAOgAJIAIgBDoACCACIAE2AgQgAwRAIANBMGwhAQNAIAIgADYCDCACQQRqIAJBDGpBvAcQtAoaIABBMGohACABQTBrIgENAAsLIAJBBGoQxiUgAkEQaiQAC5oBAQN/IwBBEGsiAiQAIAAoAgAiAEEIaigCACEDIABBBGooAgAhACABKAIUQbHj4ABBASABKAIYKAIMEQMAIQQgAkEAOgAJIAIgBDoACCACIAE2AgQgAwRAIANBGGwhAQNAIAIgADYCDCACQQRqIAJBDGpBvgcQtAoaIABBGGohACABQRhrIgENAAsLIAJBBGoQxiUgAkEQaiQAC5oBAQN/IwBBEGsiAiQAIAAoAgAiAEEIaigCACEDIABBBGooAgAhACABKAIUQbHj4ABBASABKAIYKAIMEQMAIQQgAkEAOgAJIAIgBDoACCACIAE2AgQgAwRAIANBOGwhAQNAIAIgADYCDCACQQRqIAJBDGpBwgcQtAoaIABBOGohACABQThrIgENAAsLIAJBBGoQxiUgAkEQaiQAC5oBAQN/IwBBEGsiAiQAIAAoAgAiAEEIaigCACEDIABBBGooAgAhACABKAIUQbHj4ABBASABKAIYKAIMEQMAIQQgAkEAOgAJIAIgBDoACCACIAE2AgQgAwRAIANBOGwhAQNAIAIgADYCDCACQQRqIAJBDGpBxAcQtAoaIABBOGohACABQThrIgENAAsLIAJBBGoQxiUgAkEQaiQAC5oBAQN/IwBBEGsiAiQAIAAoAgAiAEEIaigCACEDIABBBGooAgAhACABKAIUQbHj4ABBASABKAIYKAIMEQMAIQQgAkEAOgAJIAIgBDoACCACIAE2AgQgAwRAIANBBHQhAQNAIAIgADYCDCACQQRqIAJBDGpBxgcQtAoaIABBEGohACABQRBrIgENAAsLIAJBBGoQxiUgAkEQaiQAC5oBAQN/IwBBEGsiAiQAIAAoAgAiAEEIaigCACEDIABBBGooAgAhACABKAIUQbHj4ABBASABKAIYKAIMEQMAIQQgAkEAOgAJIAIgBDoACCACIAE2AgQgAwRAIANBMGwhAQNAIAIgADYCDCACQQRqIAJBDGpByAcQtAoaIABBMGohACABQTBrIgENAAsLIAJBBGoQxiUgAkEQaiQAC5oBAQN/IwBBEGsiAiQAIAAoAgAiAEEIaigCACEDIABBBGooAgAhACABKAIUQbHj4ABBASABKAIYKAIMEQMAIQQgAkEAOgAJIAIgBDoACCACIAE2AgQgAwRAIANBOGwhAQNAIAIgADYCDCACQQRqIAJBDGpByQcQtAoaIABBOGohACABQThrIgENAAsLIAJBBGoQxiUgAkEQaiQAC5oBAQN/IwBBEGsiAiQAIAAoAgAiAEEIaigCACEDIABBBGooAgAhACABKAIUQbHj4ABBASABKAIYKAIMEQMAIQQgAkEAOgAJIAIgBDoACCACIAE2AgQgAwRAIANBDGwhAQNAIAIgADYCDCACQQRqIAJBDGpBywcQtAoaIABBDGohACABQQxrIgENAAsLIAJBBGoQxiUgAkEQaiQAC5oBAQN/IwBBEGsiAiQAIAAoAgAiAEEIaigCACEDIABBBGooAgAhACABKAIUQbHj4ABB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BEAgASgCACICQYCAgIB4RwRAIAIgAUEEaigCABCdLwsgAUEYaigCACECIAFBHGooAgAiBSgCACIEBEAgAiAEEQIACyAFKAIEIgQEQCACIAQgBSgCCBCiGAsgA0EBayEDIAFBIGohAQwBCwsgACgCCCAAKAIAELcvC40BAQN/IAEgACgCACAAKAIIIgJrSwRAIAAgAiABQQRBBBCKISAAKAIIIQILIAAoAgQgAkECdGohAwJAAkAgAUECTwRAIAFBAWshBANAIANBADYCACADQQRqIQMgBEEBayIEDQALIAEgAmpBAWshAgwBCyABRQ0BCyADQQA2AgAgAkEBaiECCyAAIAI2AggLiQECAn4BfyABIAEoAjhBBGo2AjggASABKQMwIACtIgMgASgCPCIAQQN0QThxrYaEIgI3AzAgAQJ/QQggAGsiBEEETQRAIAEgASkDGCAChTcDGCABEMAPIAEpAzAhAiABIAMgBEEDdK2INwMwIAEgAiABKQMAhTcDACAAQQRrDAELIABBBGoLNgI8C50BAgF/AX4jAEEQayICJAACfwJAAkACQEICIAAoAgAiACkDAEICfSIDIANCAlobp0EBaw4CAQIACyACIABBCGo2AgQgAUHr2OAAQQkgAkEEakHYBRCVDgwCCyACIABBCGo2AgggAUH02OAAQQcgAkEIakHZBRCVDgwBCyACIAA2AgwgAUH72OAAQQUgAkEMakHaBRCVDgsgAkEQaiQAC5YBAQF/QaC/5AAtAAAaQcAAEIQBIgFFBEAACyABIAApAwA3AwAgAUE4aiAAQThqKQMANwMAIAFBMGogAEEwaikDADcDACABQShqIABBKGopAwA3AwAgAUEgaiAAQSBqKQMANwMAIAFBGGogAEEYaikDADcDACABQRBqIABBEGopAwA3AwAgAUEIaiAAQQhqKQMANwMAIAELnQECAX8BfiMAQRBrIgIkAAJ/AkACQAJAQgIgACgCACIAKQMAQgJ9IgMgA0ICWhunQQFrDgIBAgALIAIgAEEIajYCBCABQevY4ABBCSACQQRqQZkLEJUODAILIAIgAEEIajYCCCABQfTY4ABBByACQQhqQZoLEJUODAELIAIgADYCDCABQfvY4ABBBSACQQxqQZsLEJUOCyACQRBqJAALmgEBBH8jAEEQayICJAAgAiABKAIUIgMQxSUCQCACKAIARQRAIAIoAgQhBCABQQxqIgUoAgAgA0YEQCAFENwgCyAAIAQ2AgQgAEEDNgIAIAEgA0EBajYCFCABKAIQIANBCWxqIgBCADcAACAAQQhqQQA6AAAMAQsgACACKQMINwMQIABC/v///wc3AwggAEEANgIACyACQRBqJAALigEBA38jAEEQayICJAAgACgCBCEDIAAoAgggASgCFEGx4+AAQQEgASgCGCgCDBEDACEEIAJBADoACSACIAQ6AAggAiABNgIEQQJ0IQEDQCABBEAgAiADNgIMIAJBBGogAkEMakEfELQKGiABQQRrIQEgA0EEaiEDDAELCyACQQRqEMYlIAJBEGokAAuKAQEDfyMAQRBrIgIkACAAKAIEIQMgACgCCCABKAIUQbHj4ABBASABKAIYKAIMEQMAIQQgAkEAOgAJIAIgBDoACCACIAE2AgRBDGwhAQNAIAEEQCACIAM2AgwgAkEEaiACQQxqQS4QtAoaIAFBDGshASADQQxqIQMMAQsLIAJBBGoQxiUgAkEQaiQAC4oBAQN/IwBBEGsiAiQAIAAoAgQhAyAAKAIIIAEoAhRBsePgAEEBIAEoAhgoAgwRAwAhBCACQQA6AAkgAiAEOgAIIAIgATYCBEEMbCEBA0AgAQRAIAIgAzYCDCACQQRqIAJBDGpBLxC0ChogAUEMayEBIANBDGohAwwBCwsgAkEEahDGJSACQRBqJAALigEBA38jAEEQayICJAAgACgCBCEDIAAoAgggASgCFEGx4+AAQQEgASgCGCgCDBEDACEEIAJBADoACSACIAQ6AAggAiABNgIEQQJ0IQEDQCABBEAgAiADNgIMIAJBBGogAkEMakEtELQKGiABQQRrIQEgA0EEaiEDDAELCyACQQRqEMYlIAJBEGokAAuHAQEFfyMAQYABayIEJABB/wAhAgNAIAQgAiIDaiIFIABBD3EiAkEwciACQTdqIAJBCkkbOgAAIANBAWshAiAAQf8BcSIGQQR2IQAgBkEQTw0ACyADQYEBTwRAIANBgAFBmPjAABDoFgALIAFBAUH0n+AAQQIgBUGAASADaxCMBiAEQYABaiQAC4QBAQJ/IANB+P///wFxBEAgACAAIANBA3YiA0EEdCIEaiAAIANBHGwiBWogAxCDEiEAIAEgASAEaiABIAVqIAMQgxIhASACIAIgBGogAiAFaiADEIMSIQILIAAgAiABIAAoAgAiACABKAIAIgFJIgMgASACKAIAIgJJcxsgAyAAIAJJcxsLjQEBAn8jAEEgayIBJAAgASAAQX9zQR92IABB7MvAABD2IyIAQfj///8HTQR/IAFBBDYCHCABIABBBGo2AhhBBAUgAgs2AhQgAUEIaiABQRRqQYjMwAAQ1B0gASgCCCICIAIgASgCDGpBAWtBACACa3EQuS4iAkUEQAALIAIgADYAACABQSBqJAAgAkEEagugAQEBfyMAQUBqIgIkACACQQA2AhQgAkKAgICAEDcCDCACQQM6ADggAkEgNgIoIAJBADYCNCACQeyEwgA2AjAgAkEANgIgIAJBADYCGCACIAJBDGo2AiwgASACQRhqEJMhRQRAIAAgAikCDDcCACAAQQhqIAJBFGooAgA2AgAgAkFAayQADwtB6OHgAEE3IAJBP2pBhIXCAEHs4uAAELEUAAugAQEBfyMAQUBqIgIkACACQQA2AhQgAkKAgICAEDcCDCACQQM6ADggAkEgNgIoIAJBADYCNCACQeCLwgA2AjAgAkEANgIgIAJBADYCGCACIAJBDGo2AiwgASACQRhqEJMhRQRAIAAgAikCDDcCACAAQQhqIAJBFGooAgA2AgAgAkFAayQADwtB6OHgAEE3IAJBP2pB+IvCAEHs4uAAELEUAAugAQEBfyMAQUBqIgIkACACQQA2AhQgAkKAgICAEDcCDCACQQM6ADggAkEgNgIoIAJBADYCNCACQeyEwgA2AjAgAkEANgIgIAJBADYCGCACIAJBDGo2AiwgASACQRhqENYiRQRAIAAgAikCDDcCACAAQQhqIAJBFGooAgA2AgAgAkFAayQADwtB6OHgAEE3IAJBP2pBhIXCAEHs4uAAELEUAAuGAQECfyADQfj///8BcQRAIAAgACADQQN2IgNB4ABsIgRqIAAgA0GoAWwiBWogAxCIEiEAIAEgASAEaiABIAVqIAMQiBIhASACIAIgBGogAiAFaiADEIgSIQILIAAgAiABIAAoAgwiACABKAIMIgFJIgMgASACKAIMIgJJcxsgAyAAIAJJcxsLjwEBA38jAEEQayICJAAgACgCCCEDIAAoAgQhACABKAIUQbHj4ABBASABKAIYKAIMEQMAIQQgAkEAOgAJIAIgBDoACCACIAE2AgQg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GiAAQUBrIQAgAUFAaiIBDQALCyACQQRqEMYlIAJBEGokAAucAQEDfyAAKAIIIgMEQCAAKAIEIQIgA0E4bCEDA0ACQAJAAkACQCACKAIAQQFrDgIBAgALIAJBCGogARD+KiACKAIoIAEQ2QkMAgsgASACQQhqENgkDAELIAIoAgQgARDZCSACKAIYIgRFDQAgASAEKAIAEOQBCyACQThqIQIgA0E4ayIDDQALCyAAKAIUIgAEQCABIAAoAgAQ5AELC5wBAQJ/IwBBEGsiAiQAAn8CQAJAAkBBASAAKAIAIgAtACxBA2siAyADQf8BcUEDTxtB/wFxQQFrDgIBAgALIAIgADYCBCABQbvw4ABBBSACQQRqQcoCEJUODAILIAIgADYCCCABQdLE4ABBDSACQQhqQY0IEJUODAELIAIgADYCDCABQYPB4ABBESACQQxqQdUCEJUOCyACQRBqJAALoAEBAX8jAEFAaiICJAAgAkEANgIUIAJCgICAgBA3AgwgAkEDOgA4IAJBIDYCKCACQQA2AjQgAkHUo+AANgIwIAJBADYCICACQQA2AhggAiACQQxqNgIsIAEgAkEYahCyMEUEQCAAIAIpAgw3AgAgAEEIaiACQRRqKAIANgIAIAJBQGskAA8LQejh4ABBNyACQT9qQeyj4ABB7OLgABCxFAALoAEBAX8jAEFAaiICJAAgAkEANgIUIAJCgICAgBA3AgwgAkEDOgA4IAJBIDYCKCACQQA2AjQgAkHUo+AANgIwIAJBADYCICACQQA2AhggAiACQQxqNgIsIAEgAkEYahDUIkUEQCAAIAIpAgw3AgAgAEEIaiACQRRqKAIANgIAIAJBQGskAA8LQejh4ABBNyACQT9qQeyj4ABB7OLgABCxFAALiwEBA38jAEEQayICJAAgACgCBCEDIAAoAgggASgCFEGx4+AAQQEgASgCGCgCDBEDACEEIAJBADoACSACIAQ6AAggAiABNgIEQShsIQEDQCABBEAgAiADNgIMIAJBBGogAkEMakHzCRC0ChogAUEoayEBIANBKGohAwwBCwsgAkEEahDGJSACQRBqJAALiwEBA38jAEEQayICJAAgACgCBCEDIAAoAgggASgCFEGx4+AAQQEgASgCGCgCDBEDACEEIAJBADoACSACIAQ6AAggAiABNgIEQQJ0IQEDQCABBEAg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RQ0BAkAgAEEEayIEKAIAIgIgAU0NACAAQQA6AAAgAiABayACELkpIQIgBEEANgIAIAFFDQAgAEEIaygCACIFIAIgBWogARCgMhogBCABNgIACyADQRBrIQMgAEEQaiEADAALAAsLkAEBAn8jAEEwayICJAAgAiABEMIEIAIoAgQhAwJAIAIoAgAiAUELRwRAIAAgAikDCDcDCCAAQShqIAJBKGopAwA3AwAgAEEgaiACQSBqKQMANwMAIABBGGogAkEYaikDADcDACAAQRBqIAJBEGopAwA3AwAMAQtBDCEBCyAAIAE2AgAgACADNgIEIAJBMGokAAupAQICfwF+IAAoAigiASkDACEDIAEgACkCADcDACAAIAM3AgAgASkDCCEDIAEgACkCCDcDCCAAIAM3AgggACkCECEDIAAgASkDEDcCECABIAM3AxAgACkCGCEDIAAgASgCGDYCGCABKAIcIQIgASADNwMYIAAgAjYCHCABKAIgIQIgASAAKAIgNgIgIAAgAjYCICABKAIkIQIgASAAKAIkNgIkIAAgAjYCJAuWAQIDfwF+QYABIQIgACgCACIDIAFqIgQpAAAiBSAFQgGGg0KAgYKEiJCgwIB/g3qnQQN2IAMgACgCBCABQQhrcWoiASkAACIFIAVCAYaDQoCBgoSIkKDAgH+DeadBA3ZqQQdNBEAgACAAKAIIQQFqNgIIQf8BIQILIAQgAjoAACABQQhqIAI6AAAgACAAKAIMQQFrNgIMC5kBAgJ/AX4jAEEQayICJAACQAJAAkAgAS0APEEBRw0AIAJBCGogARC8GSACLQAIQQRHBEAgAikDCCIEQv8Bg0IEUg0CCyABQQA6ADwgASgCACABQQA2AgBFDQAgASABKAIEEKkGCyABKAIoQfKW4ABBARCBFSABQfKW4ABBARCsByAAQQQ6AAAMAQsgACAENwIACyACQRBqJAALhAEBAn8jAEEgayIAJAACQEHIvuQAKAIARQRAQdyW5ABB3JbkACgCACIBQQFqNgIAIAFFDQFBzL7kACABNgIAQci+5ABBATYCAAsgAEEgaiQAQcy+5AAPCyAAQQA2AhggAEEBNgIMIABB5IDEADYCCCAAQgQ3AhAgAEEIakHsgMQAEJImAAuYAQEDfyAALQAIIQECQCAAKAIAIgNFBEAgASECDAELQQEhAgJAIAFB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CyAAKAIgIgEEQCABEIoEIAFB4ABBCBCiGAsgACgCJCIABEAgABCKBCAAQeAAQQgQohgLIAJBEGokAAuQAQICfwF+IwBBEGsiASQAAkACQAJAAkBBASAALQAsQQNrIgIgAkH/AXFBA08bQf8BcQ4CAQIACyAAEPEQDAILIAApAwAiA0IDg0IAUg0BIAEgA6ciADYCDCABQQxqENAGIAAgACgCACICQQFrNgIAIAJBAUcNASAAIAAoAiAQjScMAQsgABCdDwsgAUEQaiQAC4wBAgN/AX4jAEEQayICJAACQCAAKQMIIgRCA4NCAFINACACIASnIgE2AgwgAkEMahDQBiABIAEoAgAiA0EBazYCACADQQFHDQAgASABKAIgEI0nCyAAKAIgIgEEQCABEIsEIAFB4ABBCBCiGAsgACgCJCIABEAgABCLBCAAQeAAQQgQohgLIAJBEGokAAuZAQECfyAAKAIIIgIEQCAAKAIEQQRqIQADQAJAAkACQAJAAkACQCAAQQRrKAIADgQBAgMEAAsgABDTEQwECyAAQQRqEPIQDAMLIAAoAgBFDQIgAEEEaigCACIBEKIBIAFBwABBCBCiGAwCCyAAKAIAIgEQogEgAUHAAEEIEKIYDAELIAAQtAkLIABBKGohACACQQFrIgINAAsLC4wBAgN/AX4jAEEQayICJAACQCAAKQMIIgRCA4NCAFINACACIASnIgE2AgwgAkEMahDQBiABIAEoAgAiA0EBazYCACADQQFHDQAgASABKAIgEI0nCyAAKAIgIgEEQCABEIwEIAFB4ABBCBCiGAsgACgCJCIABEAgABCMBCAAQeAAQQgQohgLIAJBEGokAAuQAQICfwF+IwBBEGsiASQAAkACQAJAAkBBASAALQAsQQNrIgIgAkH/AXFBA08bQf8BcQ4CAQIACyAAEPEQDAILIAApAwAiA0IDg0IAUg0BIAEgA6ciADYCDCABQQxqENAGIAAgACgCACICQQFrNgIAIAJBAUcNASAAIAAoAiAQjScMAQsgABDoFwsgAUEQaiQAC4wBAgN/AX4jAEEQayICJAACQCAAKQMIIgRCA4NCAFINACACIASnIgE2AgwgAkEMahDQBiABIAEoAgAiA0EBazYCACADQQFHDQAgASABKAIgEI0nCyAAKAIgIgEEQCABELUCIAFB4ABBCBCiGAsgACgCJCIABEAgABC1AiAAQeAAQQgQohgLIAJBEGokAAuMAQIDfwF+IwBBEGsiAiQAAkAgACkDCCIEQgODQgBSDQAgAiAEpyIBNgIMIAJBDGoQ0AYgASABKAIAIgNBAWs2AgAgA0EBRw0AIAEgASgCIBCNJwsgACgCICIBBEAgARCOBCABQeAAQQgQohgLIAAoAiQiAARAIAAQjgQgAEHgAEEIEKIYCyACQRBqJAALjAECA38BfiMAQRBrIgIkAAJAIAApAwgiBEIDg0IAUg0AIAIgBKciATYCDCACQQxqENAGIAEgASgCACIDQQFrNgIAIANBAUcNACABIAEoAiAQjScLIAAoAiAiAQRAIAEQjwQgAUHgAEEIEKIYCyAAKAIkIgAEQCAAEI8EIABB4ABBCBCiGAsgAkEQaiQAC4wBAgN/AX4jAEEQayICJAACQCAAKQMIIgRCA4NCAFINACACIASnIgE2AgwgAkEMahDQBiABIAEoAgAiA0EBazYCACADQQFHDQAgASABKAIgEI0nCyAAKAIgIgEEQCABEJAEIAFB4ABBCBCiGAsgACgCJCIABEAgABCQBCAAQeAAQQgQohgLIAJBEGokAAuMAQIDfwF+IwBBEGsiAiQAAkAgACkDCCIEQgODQgBSDQAgAiAEpyIBNgIMIAJBDGoQ0AYgASABKAIAIgNBAWs2AgAgA0EBRw0AIAEgASgCIBCNJwsgACgCICIBBEAgARCRBCABQeAAQQgQohgLIAAoAiQiAARAIAAQkQQgAEHgAEEIEKIYCyACQRBqJAALjAECA38BfiMAQRBrIgIkAAJAIAApAwgiBEIDg0IAUg0AIAIgBKciATYCDCACQQxqENAGIAEgASgCACIDQQFrNgIAIANBAUcNACABIAEoAiAQjScLIAAoAiAiAQRAIAEQkgQgAUHgAEEIEKIYCyAAKAIkIgAEQCAAEJIEIABB4ABBCBCiGAsgAkEQaiQAC4wBAgN/AX4jAEEQayICJAACQCAAKQMIIgRCA4NCAFINACACIASnIgE2AgwgAkEMahDQBiABIAEoAgAiA0EBazYCACADQQFHDQAgASABKAIgEI0nCyAAKAIgIgEEQCABEI0EIAFB4ABBCBCiGAsgACgCJCIABEAgABCNBCAAQeAAQQgQohgLIAJBEGokAAuMAQIDfwF+IwBBEGsiAiQAAkAgACkDCCIEQgODQgBSDQAgAiAEpyIBNgIMIAJBDGoQ0AYgASABKAIAIgNBAWs2AgAgA0EBRw0AIAEgASgCIBCNJwsgACgCICIBBEAgARDAAyABQeAAQQgQohgLIAAoAiQiAARAIAAQwAMgAEHgAEEIEKIYCyACQRBqJAALjAECA38BfiMAQRBrIgIkAAJAIAApAwgiBEIDg0IAUg0AIAIgBKciATYCDCACQQxqENAGIAEgASgCACIDQQFrNgIAIANBAUcNACABIAEoAiAQjScLIAAoAiAiAQRAIAEQkwQgAUHgAEEIEKIYCyAAKAIkIgAEQCAAEJMEIABB4ABBCBCiGAsgAkEQaiQAC5ABAgJ/AX4jAEEQayIBJAACQAJAAkACQEEBIAAtACxBA2siAiACQf8BcUEDTxtB/wFxDgIBAgALIAAQ8RAMAgsgACkDACIDQgODQgBSDQEgASADpyIANgIMIAFBDGoQ0AYgACAAKAIAIgJBAWs2AgAgAkEBRw0BIAAgACgCIBCNJwwBCyAAEMUPCyABQRBqJAALjAECA38BfiMAQRBrIgIkAAJAIAApAwgiBEIDg0IAUg0AIAIgBKciATYCDCACQQxqENAGIAEgASgCACIDQQFrNgIAIANBAUcNACABIAEoAiAQjScLIAAoAiAiAQRAIAEQlAQgAUHgAEEIEKIYCyAAKAIkIgAEQCAAEJQEIABB4ABBCBCiGAsgAkEQaiQAC5kBAQJ/IAAoAggiAgRAIAAoAgRBBGohAANAAkACQAJAAkACQAJAIABBBGsoAgAOBAECAwQACyAAENURDAQLIABBBGoQ8hAMAwsgACgCAEUNAiAAQQRqKAIAIgEQowEgAUHAAEEIEKIYDAILIAAoAgAiARCjASABQcAAQQgQohgMAQsgABC2CQsgAEEoaiEAIAJBAWsiAg0ACwsLjAECA38BfiMAQRBrIgIkAAJAIAApAwgiBEIDg0IAUg0AIAIgBKciATYCDCACQQxqENAGIAEgASgCACIDQQFrNgIAIANBAUcNACABIAEoAiAQjScLIAAoAiAiAQRAIAEQ3AIgAUHgAEEIEKIYCyAAKAIkIgAEQCAAENwCIABB4ABBCBCiGAsgAkEQaiQAC4wBAgN/AX4jAEEQayICJAACQCAAKQMIIgRCA4NCAFINACACIASnIgE2AgwgAkEMahDQBiABIAEoAgAiA0EBazYCACADQQFHDQAgASABKAIgEI0nCyAAKAIgIgEEQCABEJUEIAFB4ABBCBCiGAsgACgCJCIABEAgABCVBCAAQeAAQQgQohgLIAJBEGokAAuKAQEEf0EBIQQCQCAAKAIIIgMgAUYNACAAKAIEIgQgAUEwbGohBSAEIANBMGxqIQEgAigCBCEDIAIoAgwhBgNAIAMgBkciBEUNASABIAMoAgA2AgQgAUESNgIAIAFCADcDCCACIANBBGoiAzYCBCAAIAAoAghBAWo2AgggAUEwaiIBIAVHDQALCyAEC4wBAgN/AX4jAEEQayICJAACQCAAKQMIIgRCA4NCAFINACACIASnIgE2AgwgAkEMahDQBiABIAEoAgAiA0EBazYCACADQQFHDQAgASABKAIgEI0nCyAAKAIgIgEEQCABEMEDIAFB4ABBCBCiGAsgACgCJCIABEAgABDBAyAAQeAAQQgQohgLIAJBEGokAAuMAQIDfwF+IwBBEGsiAiQAAkAgACkDCCIEQgODQgBSDQAgAiAEpyIBNgIMIAJBDGoQ0AYgASABKAIAIgNBAWs2AgAgA0EBRw0AIAEgASgCIBCNJwsgACgCICIBBEAgARCWBCABQeAAQQgQohgLIAAoAiQiAARAIAAQlgQgAEHgAEEIEKIYCyACQRBqJAALhgEBAn8jAEHQAGsiASQAIAAoAgBBJUYEQCABQShqIgIgAEEoakEoEIEJGiAAQSU2AigCQCABKAIoQSVGBEAgASAAQdgAahClAyACEOMsDAELIAEgAUEoakEoEIEJGgsgABDjLCAAIAFBKBCBCSIAQQAgACgCAEElRxshAAsgAUHQAGokACAAC4IBAQN/IwBBIGsiAiQAAkAgABChEyIERQ0AIAEgBBCJBkUNACAAKAIAIQEgAEElNgIAIAAgACkDGDcDUCACQRRqIABBDGopAgA3AgAgAkEcaiAAQRRqKAIANgIAIAIgACkCBDcCDCACIAE2AgggAkEIahCODkEBIQMLIAJBIGokACADC6YBAAJAAkACQAJAAkACQAJAAkACQCAAKAIAQQFrDgkBAgMEBQgGCAcACyAAQRxqIAEQsg8PCyAAQQhqIAEQ9w4PCyABIABBBGoQ1SkPCwJAAkAgACgCCEEBaw4CAQYACyAAKAIoIAEQjwoPCyAAKAIoIAEQ+R0PCyAAKAIEIAEQiTMPCyAAQRBqIAEQsg8PCyAAKAIEIAEQiTMPCyAAQQhqIAEQgAcLC4YBAQJ/IwBB0ABrIgEkACAAKAIAQSVGBEAgAUEoaiICIABBKGpBKBCBCRogAEElNgIoAkAgASgCKEElRgRAIAEgAEHYAGoQpQMgAhC3DQwBCyABIAFBKGpBKBCBCRoLIAAQtw0gACABQSgQgQkiAEEAIAAoAgBBJUcbIQALIAFB0ABqJAAgAAuVAQEBfwJAAkACQAJAAkACQEEEIAAoAgBBBWsiASABQQZPGw4FAQIDBAUACyAAQQhqELUgIAAoAigQmCIPCyAAKQMIENAaDwsgAEEIahCDLw8LIABBCGoQhi4PCyAAQQhqELUgIABByABqEIsuIABBKGoQyCwPCyAAELUgIABBIGoQhy0gAEHoAGoQiC0gAEHIAGoQyCwLgAECAX4BfwJAAkAgAa0gA61+IgRCIIinDQAgBKciASACQQFraiIFIAFJDQAgBUEAIAJrcSIBIANBCGpqIgMgAUkNAUGAgICAeCACayADTwRAIAAgATYCCCAAIAM2AgQgACACNgIADwsgAEEANgIADwsgAEEANgIADwsgAEEANgIAC5ABAQN/IwBBEGsiAyQAAkAgASgCACIEIAIoAgAiBUkEQCADQQhqIAJBCGooAgA2AgAgAyACKQIANwMAIAAgAyABKAIEIgAgASgCCBDJCwwBCyADQQhqIAFBCGooAgA2AgAgAyABKQIANwMAIAAgAyACKAIEIgAgAigCCBDJCyAFIQQLIAQgABCgLyADQRBqJAALhwEBA38jAEEQayICJAAgACgCCCEDIAAoAgQhACABKAIUQbHj4ABBASABKAIYKAIMEQMAIQQgAkEAOgAJIAIgBDoACCACIAE2AgQDQCADBEAgAiAANgIMIAJBBGogAkEMakEVELQKGiADQQFrIQMgAEEBaiEADAELCyACQQRqEMYlIAJBEGokAAuFAQEDfwJ/AkAgACgCACIBRQ0AA0ACQCAAKAIIIgMgACgCBE8NACABIANqLQAAQcUARw0AIAAgA0EBajYCCAwCCwJAIAJFDQAgACgCECIBRQ0AIAFBzP/gAEECEIcFRQ0AQQEPC0EBIABBARCrAg0CGiACQQFrIQIgACgCACIBDQALC0EACwuIAQEDfyMAQRBrIgIkACAAKAIEIQMgACgCACEAIAEoAhRBsePgAEEBIAEoAhgoAgwRAwAhBCACQQA6AAkgAiAEOgAIIAIgATYCBCADBEADQCACIAA2AgwgAkEEaiACQQxqQfcBELQKGiAAQQFqIQAgA0EBayIDDQALCyACQQRqEMYlIAJBEGokAAuQAQEBfyMAQTBrIgIkAAJ/IAAoAgAiACgCDEUEQCAAIAEQ7QYMAQsgAkEDNgIEIAJBnJDYADYCACACQgM3AgwgAkEMNgIsIAJBDDYCJCACIABBDGo2AiAgAkH/ATYCHCACIAA2AhggAiAAQRBqNgIoIAIgAkEYajYCCCABKAIUIAEoAhggAhDvKwsgAkEwaiQAC4MBAQN/IwBBIGsiAyQAIANBFGogASACEL4UAkAgAygCFCIBBEAgAygCHCEEIANBCGogASADKAIYEJonIAMoAggiBQ0BAAsQryQACyAAQQA2AgwgACACQQFrIgE2AgQgACAEIAVqNgIAIAAgASACQQN2QQdsIAFBCEkbNgIIIANBIGokAAuLAQIBfwF+IwBBEGsiAiQAEKciIQMgAEEANgIYIAAgASkDADcDACAAQRBqIAFBEGopAwA3AwAgAEEIaiABQQhqKQMANwMAAkAgA0IDg0IAUg0AIAIgA6ciADYCDCACQQxqENAGIAAgACgCACIBQQFrNgIAIAFBAUcNACAAIAAoAiAQjScLIAJBEGokAAuYAQEDfyMAQRBrIgMkACABKAIMIQICQAJAAkACQAJAIAEoAgQOAgABAgsgAg0BQQEhAkEAIQEMAgsgAg0AIAEoAgAiAigCBCEBIAIoAgAhAgwBCyAAIAEQvQgMAQsgA0EIaiABEOgdIAMoAgghBCADKAIMIAIgARCBCSECIAAgATYCCCAAIAI2AgQgACAENgIACyADQRBqJAALfAIBfwF+IwBBEGsiAyQAAn4gAkEHTwRAIAAgASACIAEgAhDsB0EAEPsGrQwBCyADQgA8AA4gA0IAPQEMIANCAD4CCCADQQhqIAEgAhCBCRogAkEEdEEBcq0gAzUCCCADMQAOQjCGIAMzAQxCIIaEhEIIhoQLIANBEGokAAuTAQEIfyABIAEoAtABIgVBAWoiAjYC0AEgASABKALIASIDIAEoAswBIgZqNgLEASABIAMgAiABKALUASIHayIIaiIJNgLAAUEUIQJBESEEAkAgBiAIRg0AIAktAABBPUcNACABIAVBAmoiAjYC0AEgASADIAIgB2tqNgLAAUEVIQJBCiEECyAAIAQ6AAQgACACNgIAC4oBAgN/AX4jAEEQayICJAAgAEEIaiEBAkAgACgCAEUEQCABKQMAIgRCA4NCAFINASACIASnIgE2AgwgAkEMahDQBiABIAEoAgAiA0EBazYCACADQQFHDQEgASABKAIgEI0nDAELIAEQvxALIAAoAigiAARAIAAQxgEgAEHAAEEIEKIYCyACQRBqJAALjwEBA38gACgCCEE4bCEDIAAoAgQhBEEAIQADQAJAIAAgA0cEQAJAAkACQCAAIARqIgIoAgBBAWsOAgECAAsgASACQQhqEOIqIAJBKGogARDyMQwDCyACQRBqIAEQgzMgAkEwaiICKAIARQ0CIAIgARDfMQwCCyACQQRqIAEQjDMMAQsPCyAAQThqIQAMAAsAC4MBAQJ/IwBBEGsiBiQAIAEtAAAhByAGQQhqIAIgAyAEIAVBpJbAABDfICAGIAcgBigCCCAGKAIMELYIQQAhBSAAIAYoAgBBAXEEfyAAIAQgBigCBCAEaiICIAEtAAFrIgFBACABIAJNGyIBIAEgBEkbNgIEQQIFIAULNgIAIAZBEGokAAuAAQECfyABQf8BcUGcjcEAaiwAACIDQf8AcSECIAACf0EBIANBAE4NABogAkUEQCABQfABcUEEdkHgs+MAai0AAEEQdCABQQ9xQeCz4wBqLQAAQRh0ckHc8AFyIQJBBAwBCyACQQh0QdwAciECQQILOgAFIABBADoABCAAIAI2AAALfQEDfyAAKAIAIQEgACgCBCICKAIIIQAgAigCACIDBEAgASAAQQFrQXhxakEIaiADEQIACwJAIAFBf0YNACABIAEoAgQiA0EBazYCBCADQQFHDQBBBCAAIABBBE0bIgAgAigCBGpBB2pBACAAa3EiAkUNACABIAIgABCiGAsLfAACQAJAIAMgBEsNAAJAIANFDQAgAiADSwRAIAEgA2osAABBv39KDQEMAgsgAiADRw0BCyAERQ0BIAIgBEsEQCABIARqLAAAQb9/TA0BDAILIAIgBEYNAQsgASACIAMgBCAFELktAAsgACAEIANrNgIEIAAgASADajYCAAuAAQECfyACIAFrQQJ2IgQgACgCACAAKAII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QRBqJAALgQECA38BfiMAQRBrIgIkAAJAIAApAwAiBEIDg0IAUg0AIAIgBKciATYCDCACQQxqENAGIAEgASgCACIDQQFrNgIAIANBAUcNACABIAEoAiAQjScLIAAoAhgiAARAIAAoAgAiARDpAiABQeAAQQgQohggAEEMQQQQohgLIAJBEGokAAuCAQEDfyAAKAIAIgFBBGooAgAhACABKAIIIgMEQANAAkAgACgCACICBEAgAhChASACQcAAQQgQohgMAQsgAEEEaigCACICEJAFIAJB8ABBCBCiGAsgAEEMaiEAIANBAWsiAw0ACyABQQRqKAIAIQALIAEoAgAgABDAKiABQRRBBBCiGAuBAQIDfwF+IwBBEGsiAiQAAkAgACkDACIEQgODQgBSDQAgAiAEpyIBNgIMIAJBDGoQ0AYgASABKAIAIgNBAWs2AgAgA0EBRw0AIAEgASgCIBCNJwsgACgCGCIABEAgACgCACIBEIMEIAFB4ABBCBCiGCAAQQxBBBCiGAsgAkEQaiQAC4EBAgN/AX4jAEEQayICJAACQCAAKQMAIgRCA4NCAFINACACIASnIgE2AgwgAkEMahDQBiABIAEoAgAiA0EBazYCACADQQFHDQAgASABKAIgEI0nCyAAKAIYIgAEQCAAKAIAIgEQ6gIgAUHgAEEIEKIYIABBDEEEEKIYCyACQRBqJAALggEBA38gACgCACIBQQRqKAIAIQAgASgCCCIDBEADQAJAIAAoAgAiAgRAIAIQngEgAkHAAEEIEKIYDAELIABBBGooAgAiAhCRBSACQfAAQQgQohgLIABBDGohACADQQFrIgMNAAsgAUEEaigCACEACyABKAIAIAAQwCogAUEUQQQQohgLkQEBAn8CQAJAAkACQEEHIAEoAgAiAkEMayIDIANBJk8bQQJrDhICAgMDAwADAwMDAwEDAwMDAwIDCyACQQtHDQIgASgCBEEBRg0BDAILIAEoAgwiA0UNASABKAIIIQIgA0EBayEBA0AgAUUNAiAAIAIoAgAQnBQgAUEBayEBIAJBBGohAgwACwALIAAgARDuAQsLgQECA38BfiMAQRBrIgIkAAJAIAApAwAiBEIDg0IAUg0AIAIgBKciATYCDCACQQxqENAGIAEgASgCACIDQQFrNgIAIANBAUcNACABIAEoAiAQjScLIAAoAhgi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DAELIAIgA0EIQQAQpAULIAEgASgCAEEBazYCACAEQRBqJAALbwEDfyACQTBsIQMgAUEwayECAkADQCADRQ0BIAJBMGoiASgCAEESRw0BIAJBNGooAgAiBSgCAEEbRw0BIAUoAggNASADQTBrIQMgASECQRIgBRCiHUUNAAsgACACKQIINwIEQQEhBAsgACAENgIAC4QBAQF/IwBBEGsiAiQAAkAgASgCEA0AAkACQCAALQA5QQFrDgIBAgALIAAgASAALQA4ELcRDAELIAJBCGogACABQQAQrwUgAigCCEEBRgRAIAFBACACKAIMEJgGNgIQDAELIAFBACAAKAIsEJgGNgIQIAAgASAALQA4ELcRCyACQRBqJAALcQIBfwF+AkAgACkDACIDQgODUARAIAOnIgIgAigCACICQQFqNgIAIAJBAEgNAQsgACgCECECIAEoAggiACABKAIARgRAIAEQsQwLIAEgAEEBajYCCCABKAIEIABBBHRqIgAgAjYCCCAAIAM3AwAPCwALgwEBA38gAC0AJiEDIABBAToAJiABKAIEIQICQAJAAkACQCABKAIAQQFrDgIBAgALIAIgABCAIyAAIAM6ACYPCyACKAIIIgRFDQEgAigCBCEBIARBOGwhAgNAIAAgARC6IiABQThqIQEgAkE4ayICDQALDAELIAIgABClDQsgACADOgAmC3gCA38BfiMAQRBrIgIkAAJAIAAtABRBAkYNACAAKQMAIgRCA4NCAFINACACIASnIgE2AgwgAkEMahDQBiABIAEoAgAiA0EBazYCACADQQFHDQAgASABKAIgEI0nCyAAKAIYIgAQ0RAgAEHAAEEEEKIYIAJBEGokAAt4AgN/AX4jAEEQayICJAACQCAALQAUQQJGDQAgACkDACIEQgODQgBSDQAgAiAEpyIBNgIMIAJBDGoQ0AYgASABKAIAIgNBAWs2AgAgA0EBRw0AIAEgASgCIBCNJwsgACgCGCIAENIQIABBwABBBBCiGCACQRBqJAALeQICfwF+IwBBEGsiASQAAkAgACgCAEUEQCAAKQMIIgNCA4NCAFINASABIAOnIgA2AgwgAUEMahDQBiAAIAAoAgAiAkEBazYCACACQQFHDQEgACAAKAIgEI0nDAELIAAoAgQiABDiASAAQcAAQQgQohgLIAFBEGokAAtxAgF/AX4CQCABKQMAIgNCA4NQBEAgA6ciAiACKAIAIgJBAWo2AgAgAkEASA0BCyABKAIQIQIgACgCCCIBIAAoAgBGBEAgABCxDAsgACABQQFqNgIIIAAoAgQgAUEEdGoiACACNgIIIAAgAzcDAA8LAAt6AgF+A38gACgCECECIAAoAgghAyAAKQMAIQEDfyABUAR/IAAgAkGAAWsiAjYCECAAIANBCGoiBDYCCCAAIAMpAwBCf4VCgIGChIiQoMCAf4MiATcDACAEIQMMAQUgACABQgF9IAGDNwMAIAIgAXqnQQF0QfABcWsLCwt4AQF/IAAoAghBOGwhAiAAKAIEIQADQAJAIAIEQAJAIAAtADRBAUcNACAAKAIADQAgASABKAIcIAEoAiAgACgCFBDQFRCBJwsgACABENsWIAAoAjBFDQEgAEEwaiABEOMxDAELDwsgAEE4aiEAIAJBOGshAgwACwALcQECfyMAQZACayIBJAAgAUEMakEAQYACEIcPGiABQf8BOgCOAiABQQA7AYwCA0AgAUEIaiABQYwCahD5GSABLQAIBEAgAS0ACSICIAFBDGpqIAI6AAAMAQUgACABQQxqQYACEIEJGiABQZACaiQACwsLfAEBfyMAQUBqIgEkACABQaTGwAA2AhQgAUGcxsAANgIQIAEgADYCDCABQQI2AhwgAUHkycAANgIYIAFCAjcCJCABQcQANgI8IAFBDDYCNCABIAFBMGo2AiAgASABQRBqNgI4IAEgAUEMajYCMCABQRhqENMiIAFBQGskAAt6AQR/An9BgYCAgHggASgCACIDRQ0AGiADQQJ0IQQgASgCBCEFAkAgAkUEQEEEIQYgBSAEQQQQohgMAQtBBCAFIARBBCACQQJ0IgMQyQQiBkUNARoLIAEgAjYCACABIAY2AgRBgYCAgHgLIQEgACADNgIEIAAgATYCAAt2AQJ/IwBBMGsiASQAIAEgADYCDCAALQAAQQJPBEAgAUEBNgIUIAFBvLbDADYCECABQgE3AhwgAUGBATYCLCABIAFBKGo2AhggASABQQxqNgIoIAFBEGpBsLfDABCSJgALIAAoAgQgAEEMQQQQohggAUEwaiQAC2YAIAEgAksEQCAAIAJBDGxqIgAoAggiASAAKAIARgRAIAAQ3SALIAAoAgQgAUEDdGogBa0gBK1C/wGDQiiGIAOtQv8Bg0IghoSENwIAIAAgAUEBajYCCA8LIAIgAUGMusMAEOcWAAtyACAAQRxqIAEgAhCBGCAAQRhqIARBGGooAgA2AgAgAEEQaiAEQRBqKQIANwIAIABBCGogBEEIaikCADcCACAAIAQpAgA3AgAgACADKQIANwIoIABBMGogA0EIaikCADcCACAAQThqIANBEGopAgA3AgALWwECfwJAIAEgA0cNACABQQFqIQEDQCABQQFrIgFFIQQgAUUNASAALQAAIAItAABHDQEgAkEBaiEDIABBAWogAEECaiEAIAJBAmohAi0AACADLQAARg0ACwsgBAtpAQR/IwBBEGsiAiQAIAJBCGogASgCACIDQRBqKAIAIANBFGooAgAgASgCBCIDEIIiIAAgAigCCCIEBH8gAigCDCEFIAEgA0EBajYCBCAAQQRqIAQgBRCBGEEDBUEGCzoAACACQRBqJAALcAECfyMAQSBrIgEkAAJAIAAoAiBBAkYEQCAAQSRqIQIMAQsgASAANgIIIAEgAEEkaiICNgIMIAEgAUEfajYCGCABIAFBDGo2AhQgASABQQhqNgIQIABBIGogAUEQakHg3NgAEOwGCyABQSBqJAAgAgtqAQJ/IAFBBHQhAQNAIAEEQCAAQQRqKAIAIABBCGooAgAgAhCkCyACQQsgAC0ADCIEQQlrIgMgA0H/AXFBDU8bQf8BcSIDEI0pIANBC0YEQCAEIAIQzS8LIABBEGohACABQRBrIQEMAQsLC3ABAn8jAEEQayICJAAgASgCACABQQRqKAIAEMMqIAFBEEEEEKIYAkAgAFAgAEIDg0IAUnINACACIACnIgE2AgwgAkEMahDQBiABIAEoAgAiA0EBazYCACADQQFHDQAgASABKAIgEI0nCyACQRBqJAALdQEDfyAAKAIMIgEgACgCBCICa0EMbiEDIAEgAkcEQANAAkAgAigCACIBBEAgARDIASABQcAAQQgQohgMAQsgAkEEaigCACIBEK8JIAFB8ABBCBCiGAsgAkEMaiECIANBAWsiAw0ACwsgACgCCCAAKAIAEMAqC2sBAX8jAEEgayICJAAgAkEIaiABQSUQtQYCQCACKAIIQSVHBEAgACACKQMINwMAIABBEGogAkEYaikDADcDACAAQQhqIAJBEGopAwA3AwAMAQsgACACKAIMNgIEIABBJjYCAAsg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IAI2AgQgACABNgIAC2QBAX8jAEEgayICJAAgAkEIaiABQaQDakEAQQAQywggAigCCCIBQQNHBEAgACACKQIMNwIEIABBFGogAkEcaigCADYCACAAQQxqIAJBFGopAgA3AgALIAAgATYCACACQSBqJAALcAECfyMAQRBrIgYkACABLQABIQcgAS0AACEBIAZBCGogAiADIAQgBUGQmMAAEN8gIAYgASAHIAYoAgggBigCDBD6B0EAIQEgACAGKAIAQQFxBH8gACAGKAIEIARqNgIEQQIFIAELNgIAIAZBEGokAAt4AQF/IwBBIGsiAyQAAkAgASAAKAIATQRAIAMgACABQQQgAhCZFiADKAIAIgBBgYCAgHhHDQEgA0EgaiQADwsgA0EANgIYIANBATYCDCADQeS14wA2AgggA0IENwIQIANBCGpBuLbjABCSJgALIAAgAygCBBCjLwALeAEBfyMAQSBrIgIkAAJAIAEgACgCAE0EQCACIAAgAUEEQQQQmRYgAigCACIAQYGAgIB4Rw0BIAJBIGokAA8LIAJBADYCGCACQQE2AgwgAkHkteMANgIIIAJCBDcCECACQQhqQbi24wAQkiYACyAAIAIoAgQQoy8AC3UBAX8jAEEQayICJAAgAiAAKAIAIgBBJGo2AgwgAUHatMAAQQhB1PTgAEEEIABBKGpBNkHitMAAQQUgAEEIakE3Qee0wABBBSAAQRRqQThB9IjEAEELIABBIGpBE0HstMAAQRMgAkEMakEkEJcNIAJBEGokAAtpAQN/IwBBEGsiAiQAIAIgATYCCAJAQQFBAiABEA4iA0EBRhtBACADGyIDQQJHBEAgACADOgABDAELIAAgAkEIaiACQQ9qQZjFwAAQ+gY2AgRBASEECyAAIAQ6AAAgARCyLSACQRBqJAALZgEFfiAAIAApAxgiAUIQiSABIAApAwh8IgGFIgIgACkDECIDIAApAwB8IgRCIIl8IgU3AwAgACACQhWJIAWFNwMYIAAgASADQg2JIASFIgJ8IgEgAkIRiYU3AxAgACABQiCJNwMIC3ABAn8jAEEQayICJAACQCABQYABTwRAIAJBADYCDCACIAEgAkEMahDeDCAAIAIoAgAgAigCBBDTJgwBCyAAKAIIIgMgACgCAEYEQCAAEOQgCyAAIANBAWo2AgggACgCBCADaiABOgAA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ADYCACADQQM2AgwgA0HI/MAANgIIIANCAjcCFCADQoCAgIDAASIEIAOthDcDKCADIAQgA0EEaq2ENwMgIAMgA0EgajYCECADQQhqIAIQkiYAC2sBAn8jAEEQayIDJAADQAJAIAMgATYCCCADIAEgAiIEajYCDCADIANBCGoQ3QwgAygCAEUEQEEAIQQMAQsgAygCDCADKAIIayECIAMoAgRBIEYNAQsLIAAgBDYCBCAAIAE2AgAgA0EQaiQAC6QBAQN/IAAoAggiAyAAKAIARgRAIwBBEGsiAiQAIAJBCGogACAAKAIAQQFBBEEgEOMKIAIoAggiBEGBgICAeEcEQCAEIAIoAgwQoy8ACyACQRBqJAALIAAgA0EBajYCCCAAKAIEIANBBXRqIgAgASkCADcCACAAQQhqIAFBCGopAgA3AgAgAEEQaiABQRBqKQIANwIAIABBGGogAUEYaikCADcCAAtlAQF/IwBBEGsiAyQAIANBADYCDCADQoCAgIAQNwIEIANBBGogAhDPJyACBEADQCADQQRqIAEQ2xUgAkEBayICDQALCyAAIAMpAgQ3AgAgAEEIaiADQQxqKAIANgIAIANBEGokAAtvAQJ/IwBBEGsiAyQAIANBCGogACgCBCAAKAIIIAAoAgAoAlBBjKbEABCeHQJAIAMoAgggAygCDCABIAIQ3ygiBEUNACABIAIQxA4hAgNAIAJFDQEgABDXCxogAkEBayECDAALAAsgA0EQaiQAIAQLYAEDfwJAIAAoAgAiAigCCCIDIAEoAgAiACgCCEcNACAAKAIEIQAgAigCBCECIANBAWohAQNAIAFBAWsiAUUhBCABRQ0BIAIgABDgBSACQRxqIQIgAEEcaiEADQALCyAEC2gBAX8gACgCCCICIAAoAgBGBEAgABDsIAsgACACQQFqNgIIIAAoAgQgAkEcbGoiACABKQIANwIAIABBCGogAUEIaikCADcCACAAQRBqIAFBEGopAgA3AgAgAEEYaiABQRhqKAIANgIAC1wBBH8jAEEQayIBJAAgAUEIaiAAEN0oAkAgASgCCCICRQRADAELIAEoAgxBBHQhAANAIABFIQMgAEUNASAAQRBrIQAgAi0ADCACQRBqIQINAAsLIAFBEGokACADC2QBA38gASgCACECIAFBADYCAAJAIAIEQCABKAIIIQMgASgC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KAIIQQJHBEAgASAANgIIIAEgADYCDCABIAFBH2o2AhggASABQQxqNgIUIAEgAUEIajYCECAAQQhqIAFBEGpBkP7BABDsBgsgAUEgaiQAC2MBAn8CQCABKAIUIgJFBEAgASgCCCEDQQAhAgwBCyABKAIIIgMgASgCECACQQN0akEEaygCACICTw0AIAIgA0G0jsQAEOgWAAsgACADIAJrNgIEIAAgASgCBCACQQN0ajYCAAtjAQN/AkAgASgCDCACbCICIAEoAhAiBGoiAyACTwRAIAEoAggiBSADSQ0BIAEoAgQhASAAIAQ2AgQgACABIAJBAnRqNgIADwsgAiADQbiaxAAQ6hYACyADIAVBuJrEABDpFgALYgECfyMAQRBrIgMkACADQQRqIAJBAUEBEM4PIAMoAgghBCADKAIEQQFGBEAgBCADKAIMEKMvAAsgAygCDCABIAIQgQkhASAAIAI2AgggACABNgIEIAAgBDYCACADQRBqJAALYQEBfyMAQSBrIgEkACABQRBqEPclIAFBATYCDCAAIAFBDGoQnQo2AhggAEECNgIAIABBFGogAUEcaigCADYCACAAQQxqIAFBFGopAgA3AgAgACABKQIMNwIEIAFBIGokAAtiAQF/IwBBEGsiBCQAAkAgACABIAIQoRciAg0AIARBCGoiASAAKAIAIgAoAgAQyi8gARCwIiICDQAgAyAAKAIAEL0oIgINACAEQQQ6AAggBEEIahCwIiECCyAEQRBqJAAgAgtiAQF/IwBBEGsiBCQAAkAgACABIAIQoRciAg0AIARBCGoiASAAKAIAIgAoAgAQyi8gARCwIiICDQAgAyAAKAIAEKwJIgINACAEQQQ6AAggBEEIahCwIiECCyAEQRBqJAAgAgthAQN/Qby+5AAoAgAiAQRAIAFBIGoiAxDWKCABKAIsIgIgASgCJEYEQCABQSRqEPQgCyABKAIoIAJBAnRqIAA2AgAgASACQQFqNgIsIAMQwCcgAg8LQaba4ABByAAQqTAAC20BA38gASgCWCICIAEoAlwiBEsEQEH03NgAQR5B9N3YABDVIQALIAEoAkwiASgCECEDIAEoAgwhASAAIAQ2AhggACACNgIUIAAgAzYCDCAAIAE2AgggACABNgIAIAAgAjYCECAAIAEgA2o2AgQLXgEEfyMAQSBrIgEkABDEKSEC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AkEMajYCHCACQRxqQeSAwAAQBSACKAIMBEAgAkEQahCtKgsgAkEgaiQAC5ABACAAQcgAakH4ABDZHSAAQdQAakEhENkdIABB4ABqQT4Q2R0gAEL8gICA4As3AkAgAEL8gICAwA83AjggAELbgICA0As3AjAgAEKngICA4As3AiggAEKugICAgAw3AiAgAEKsgICA4A43AhggAELegICA4Ac3AhAgAEKrgICAoAc3AgggAEKtgICAwA83AgALZgECfyMAQSBrIgEkAAJAAkACQCAApyICQQNxQQFrDgICAAELIAFBATYCCCABQbD/wQA2AgQgAUIANwIQIAEgAUEcajYCDCABQQRqQbj/wQAQkiYACyACKQMIIQALIAFBIGokACAAC1YBAX8jAEEgayICJAAgAkEANgIQIAJBCGogASACQRBqEN4MIAJBFGogAigCCCACKAIMEJoeIABBCGogAkEcaigCADYCACAAIAIpAhQ3AgAgAkEgaiQAC1YBAX8jAEEgayICJAAgAkEANgIQIAJBCGogASACQRBqEN4MIAJBFGogAigCCCACKAIMELgXIABBCGogAkEcaigCADYCACAAIAIpAhQ3AgAgAkEgaiQAC1MBAn8jAEEQayIFJAACQCACIARJBEAgBUEEaiIGIAMgBBCfHiAAIAYgASACEMkLDAELIAVBBGoiBiABIAIQnx4gACAGIAMgBBDJCwsgBUEQaiQAC2ABAn8gACgCBCEBIAAoAgAhAiAAQoSAgIDAADcCAAJAIAEgAkYNACABIAJrQQR2IQEDQCABRQ0BIAIoAgAgAkEEaigCABCdLyABQQFrIQEgAkEQaiECDAALAAsgABDYGQtgAQJ/IwBBEGsiASQAIAAoAgQEQCAAKAIAIgItAABFBEAgAkEBOgAAIAAgACgCCEEBajYCCAsgAUEQaiQADwsgAUIANwIIQZjVwwBBKiABQQhqQfTSwwBBxNXDABCxFAALYQEBfyMAQRBrIgIkACACIABBLGo2AgwgAUHQiMQAQQhB2IjEAEEIIABBGGpBIUHgiMQAQQkgAEGZAUHpiMQAQQsgAEEcakGaAUH0iMQAQQsgAkEMakEkEN8NIAJBEGokAAtgAQF/IwBBEGsiAiQAIAIgAEEUajYCDCABQYSJxABBCUHYiMQAQQggAEEMakEhQcCKxABBByAAQTpB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gANrIgIkAAJAIAEpAwBCAlEEQCACQQI2AvACDAELIAIgARDRBiACQcABaiABQYgFahDRBgsgACACQYADEIEJGiACQYADaiQAC0wBAX8gACgCBCIBIAEoAgAiAUEBazYCACABQQFGBEAgAEEEahCNFAsgACgCACIBIAEoAgAiAUEBazYCACABQQFGBEAgACgCABDXFAsLSQEDfwJAIAEoAhAiAkUNACACQQFrIgIgASgCDE8NACABKAIIIAJqLQAAIQRBASEDCyAAIAQ6AAkgACADOgAIIAAgASkCADcCAAtBAQF/IAEEQAJ/QQAgAEEIaiIALQAAIgJBAXFFDQAaQQEgAkECcUUNABogACABEMweCw8LQQBBAEGQ48MAEOcWAAtMAQJ/IwBBEGsiASQAQaC/5AAtAAAaIAFBADoAD0EBEIQBIgJFBEAACyACQQFBARCiGCAAIAKtNwMIIAAgAUEPaq03AwAgAUEQaiQAC00AAn8CQCACRQRAQQAgASgC0AIiAQ0CGkEBIQIMAQtBACECIAEoAtQCIgFFDQBBAAwBCyACELctIQFBAQshAiAAIAE2AgQgACACNgIAC0gAAkAgA0UNAAJAIAIgA0sEQCABIANqLAAAQb9/TA0BDAILIAIgA0YNAQsgASACQQAgAyAEELktAAsgACADNgIEIAAgATYCAAtEAQJ/IwBBEGsiAyQAIAEEQCADQQhqIAFBAWsgACABQYTQ1gAQ8iUgAkEBIAMoAgggAygCDBDQKCEECyADQRBqJAAgBAtQAQF/IwBBEGsiAyQAIAMgAjYCDCADIAEoAgBBCGpB1NXYABCOJiADKAIEIQEgACADKAIAIANBDGoQgQggASABKAIAQQFqNgIAIANBEGokAAtQAQF/IwBBEGsiAyQAIAMgAjYCDCADIAEoAgRBCGpBtNbYABCOJiADKAIEIQEgACADKAIAIANBDGoQgQggASABKAIAQQFqNgIAIANBEGokAAtNAQJ/IAEoAgghAgJAIAEoAhgiA0UEQCABKAIMIQMMAQsgAiADKAIIIgEgASACSRshAyACIAEgASACSxshAgsgACADNgIEIAAgAjYCAAtYAQJ/AkAgAC0ANEUEQCAALQA5IQIMAQsgAC0AOSECIAAtADohAyAAQYECOwA5IAEoAgQgABDxASAAIAM6ADoLIABBAToAOSAB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IgIkACACIAAoAgAiADYCDCABQcex4ABBEEH58OAAQQQgAEEEakGeAkHG8+AAQQQgAkEMakGcBRC6DyACQRBqJAALSgEBfyMAQRBrIgIkACACIAAoAgAiAEEMajYCDCABQebu4ABBDEHy7uAAQQYgAEGMBUHG8+AAQQQgAkEMakGcBRC6DyACQRBqJAALSgEBfyMAQRBrIgIkACACIAAoAgAiAEEYajYCDCABQc3t4ABBCUH16uAAQQUgAEH3A0HW7eAAQQUgAkEMakGNBhC6DyACQRBqJAALSgEBfyMAQRBrIgIkACACIAAoAgAiAEEYajYCDCABQbHW4ABBDEG91uAAQQIgAEHsAkH08eAAQQggAkEMakGSBhC6DyACQRBqJAALSgEBfyMAQRBrIgIkACACIAAoAgAiADYCDCABQent4ABBCUH58OAAQQQgAEEEakGeAkHG8+AAQQQgAkEMakGcBRC6DyACQRBqJAALSgEBfyMAQRBrIgIkACACIAAoAgAiADYCDCABQcap4ABBDUH58OAAQQQgAEEEakGeAkHG8+AAQQQgAkEMakGcBRC6DyACQRBqJAALSgEBfyMAQRBrIgIkACACIAAoAgAiADYCDCABQcTr4ABBB0H58OAAQQQgAEEMakGeAkHV6uAAQQUgAkEMakGYBhC6DyACQRBqJAALSgEBfyMAQRBrIgIkACACIAAoAgAiADYCDCABQcHt4ABBCUH58OAAQQQgAEEEakGeAkHK7eAAQQMgAkEMakGcBRC6DyACQRBqJAALSgEBfyMAQRBrIgIkACACIAAoAgAiADYCDCABQdvt4ABBCUH58OAAQQQgAEEMakGeAkHk7eAAQQUgAkEMakGZBhC6DyACQRBqJAALSgEBfyMAQRBrIgIkACACIAAoAgAiAEEIajYCDCABQeXq4ABBBkH58OAAQQQgAEGeAkGM6+AAQQUgAkEMakGfBhC6DyACQRBqJAALSgEBfyMAQRBrIgIkACACIAAoAgAiAEEYajYCDCABQe/q4ABBBkH16uAAQQUgAEH3A0HM9OAAQQggAkEMakGgBhC6DyACQRBqJAALSgEBfyMAQRBrIgIkACACIAAoAgAiADYCDCABQcvr4ABBCEH58OAAQQQgAEEMakGeAkHT6+AAQQUgAkEMakGmBhC6DyACQRBqJAALSgEBfyMAQRBr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1AFrajYCwAELQwEBfyAAQQs2AgAgASABKALQAUEBaiIANgLQASABIAEoAsgBIgIgASgCzAFqNgLEASABIAIgACABKALUAWtqNgLAAQtDAQF/IABBDDYCACABIAEoAtABQQFqIgA2AtABIAEgASgCyAEiAiABKALMAWo2AsQBIAEgAiAAIAEoAtQBa2o2AsABC0MBAX8gAEERNgIAIAEgASgC0AFBAWoiADYC0AEgASABKALIASICIAEoAswBajYCxAEgASACIAAgASgC1AFrajYCwAELQwEBfyAAQQ02AgAgASABKALQAUEBaiIANgLQASABIAEoAsgBIgIgASgCzAFqNgLEASABIAIgACABKALUAWtqNgLAAQtDAQF/IABBDjYCACABIAEoAtABQQFqIgA2AtABIAEgASgCyAEiAiABKALMAWo2AsQBIAEgAiAAIAEoAtQBa2o2AsABC0MBAX8gAEEaNgIAIAEgASgC0AFBAWoiADYC0AEgASABKALIASICIAEoAswBajYCxAEgASACIAAgASgC1AFrajYCwAELNgEBfyAAKAIIIgIEQCAAKAIEIQAgAkEwbCECA0AgACABENoEIABBMGohACACQTBrIgINAAsLCzYBAX8gACgCCCICBEAgACgCBCEAIAJBKGwhAgNAIAAgARC9FSAAQShqIQAgAkEoayICDQALCws2AQF/IAAoAggiAgRAIAAoAgQhACACQTBsIQIDQCAAIAEQ2wQgAEEwaiEAIAJBMGsiAg0ACwsLNgEBfyAAKAIIIgIEQCAAKAIEIQAgAkEobCECA0AgACABEL4VIABBKGohACACQShrIgINAAsLCzYBAX8gACgCCCICBEAgACgCBCEAIAJBMGwhAgNAIAAgARD+BCAAQTBqIQAgAkEwayICDQALCws2AQF/IAAoAggiAgRAIAAoAgQhACACQTBsIQIDQCAAIAEQ8wQgAEEwaiEAIAJBMGsiAg0ACwsLNgEBfyAAKAIIIgIEQCAAKAIEIQAgAkEwbCECA0AgACABEOAEIABBMGohACACQTBrIgINAAsLCzYBAX8gACgCCCICBEAgACgCBCEAIAJBOGwhAgNAIAEgABD5CSAAQThqIQAgAkE4ayICDQALCws2AQF/IAAoAggiAgRAIAAoAgQhACACQThsIQIDQCABIAAQuiIgAEE4aiEA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CSECCyACCzcBAX8jAEEgayIBJAAgAUEANgIYIAFBATYCDCABQfz9wAA2AgggAUIENwIQIAFBCGogABCSJgALNwEBfyMAQSBrIgEkACABQQA2AhggAUEBNgIMIAFBhOLBADYCCCABQgQ3AhAgAUEIaiAAEJImAAs6AQF/IwBBIGsiACQAIABBADYCGCAAQQE2AgwgAEGYpOAANgIIIABCBDcCECAAQQhqQaT8wQAQkiYACzoBAX8jAEEgayIAJAAgAEEANgIYIABBATYCDCAAQZik4AA2AgggAEIENwIQIABBCGpB4PzBABCSJgALOgEBfyMAQSBrIgAkACAAQQA2AhggAEEBNgIMIABBmKTgADYCCCAAQgQ3AhAgAEEIakGEpeAAEJImAAszAQF/AkAgAEUNACABKAIAIgIEQCAAIAIRAgALIAEoAgQiAkUNACAAIAIgASgCCBCiGAsLbwEDfyAAKAIIIgMgACgCAEYEQCMAQRBrIgIkACACQQhqIAAgACgCAEEBQQhBCBDjCiACKAIIIgRBgYCAgHhHBEAgBCACKAIMEKMvAAsgAkEQaiQACyAAIANBAWo2AgggACgCBCADQQN0aiABOQMACzMBAX8gACgCCCICIAAoAgBGBEAgABDoIAsgACACQQFqNgIIIAAoAgQgAkECdGogATYCAAssAQF/AkAgAC0AAUEERw0AIAAtAAVBBEcNACAALQAADQAgAC0ACUUhAQsgAQsuAQF/IwBBEGsiAyQAIANBADYCDCADIAI6AAwgACABIANBDGoQtiogA0EQaiQACzoBAX8jAEEgayIAJAAgAEEANgIYIABBATYCDCAAQbiFwwA2AgggAEIENwIQIABBCGpBuIbDABCSJgALOgEBfyMAQSBrIgAkACAAQQA2AhggAEEBNgIMIABBuIXDADYCCCAAQgQ3AhAgAEEIakHIhsMAEJImAAs9AQF/IABBBGohAQJAAkACQCAAKAIAQQFrDgMBAgIACyABKAIAQSRqIQEMAQsgASgCAEEsaiEBCyABKAIACzIBAX8jAEEQayICJAAgAiAAKAIANgIMIAFB0KLEAEEMIAJBDGpB9gAQlQ4gAkEQaiQACygBAX8gASACSwR/IAAgAkEDdGoiACgCBCAAKAIAa0EBdkEBagUgAwsLMgEBfyMAQRBrIgIkACACIAAoAgA2Agwg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ACABQQFrIgENAAsLCzABAX8gAQRAA0AgACgCACICEKMBIAJBwABBCBCiGCAAQQRqIQAgAUEBayIBDQALCwsqACABBEADQCAAKAIAQQdHBEAgABDMBwsgAEEoaiEAIAFBAWsiAQ0ACwsLNwEBfyABKAIEIQQCQCABKAIARQRAIAEoAgghAwwBCyAEEPYTIAIhBAsgACADNgIEIAAgBDYCAAstAQF/AkAgAEIDg0IAUg0AIACnIgEgASgCACIBQQFqNgIAIAFBAE4NAAALIAALNAACQCABKAI4RQ0AIAEtADxFBEAgASACEKkGDAELIAEgAjYCBCABQQE2AgALIABBBDoAAAsqAQF/IwBBEGsiAyQAIANBCGogAiAAIAEQ3BIgAygCCCADQRBqJABBAUYLOAEBfyAAIAEgASgCAEECdCICQYiO5ABqKAIAaigCADYCBCAAIAEgAkH0jeQAaigCAGooAgA2AgALLgAgASADSwRAIAEgA0H4r+AAEOgWAAsgACADIAFrNgIEIAAgAiABQShsajYCAAs3ACAAQSBqEOYsAkACQAJAIAAoAgAOAgECAAsgAEEEahDmLA8LIAApAwgQ0BoPCyAAKQMIENAaCysAIAEgA0sEQCABIAMgBBDoFgALIAAgAyABazYCBCAAIAIgAUEobGo2AgALNwAgAEEgahCnBAJAAkACQCAAKAIADgIBAgALIABBBGoQpwQPCyAAKQMIENAaDwsgACkDCBDQGgswAQF/IAAgAhCgKCAAKAIEIAAoAggiA0E4bGogASACQThsEIEJGiAAIAIgA2o2AggLMQAgABDwLSAAQQxqEOAtIABBGGoQyCwgAEE8ahC7JiAAQUBrEJcuIABByABBBBCiGAsrACABQQxsIQEDQCABBEAgACgCACACEIgzIAFBDGshASAAQQxqIQAMAQsLCysAIAFBDGwhAQNAIAEEQCAAKAIAIAIQhjMgAUEMayEBIABBDGohAAwBCwsLLgAgACgCACIAKAIAQQNHBEAgACABEKMoDwsgAEEQaiABEN4xIABBBGogARDIIgs3ACAAQSBqEKYEAkACQAJAIAAoAgAOAgECAAsgAEEEahCmBA8LIAApAwgQ0BoPCyAAKQMIENAaCzgBAX8gACABIAEoAgBBAnQiAkG0leQAaigCAGooAgA2AgQgACABIAJBoJXkAGooAgBqKAIANgIACy4BAn8gACABKAIIIgJBAWsiAyACIAIgA0sbIAMgAiACIANJGxDKIiABIAAQ4zELLgAgACgCACIAKAIAQQNHBEAgACABEKUoDwsgAEEQaiABEOIxIABBBGogARDLIgsuACAAKAIAIgAoAgBBA0cEQCABIAAQyygPCyAAQRBqIAEQ4TEgASAAQQRqEPchCy4AIAAoAgAiACgCAEEDRwRAIAAgARCnLQ8LIABBEGogARDfMSAAQQRqIAEQzSILNwAgAEEgahDQBAJAAkACQCAAKAIADgIBAgALIABBBGoQ0AQPCyAAKQMIENAaDwsgACkDCBDQGgsrACABQQxsIQEDQCABBEAgACgCACACEIkzIAFBDGshASAAQQxqIQAMAQsLCysAIAFBDGwhAQNAIAEEQCAAKAIAIAIQijMgAUEMayEBIABBDGohAAwBCwsLNwAgAEEgahDMAwJAAkACQCAAKAIADgIBAgALIABBBGoQzAMPCyAAKQMIENAaDwsgACkDCBDQGgsuAAJAIANpQQFHQYCAgIB4IANrIAFJckUEQCAAIAEgAyACEMkEIgANAQsACyAACzYAAkAgAC0AFEECRg0AIAAoAgAQtAsgACgCEBCyLSAAKAIMECpFDQAgACgCBCAAKAIIEPQlCwsrACAAAn8gAUH+////B00EQCAAIAE2AgRBAAwBCyAAIAGtNwMIQQELNgIACzgBAX9BASEBIAAtAARFBEAgACgCACIBKAIUQc2c4ABBASABKAIYKAIMEQMAIQELIAAgAToABCABCyoAA0AgAQRAIAAoAgAgAEEEaigCABCdLyABQQFrIQEgAEEMaiEADAELCwsqAANAIAEEQCAAKAIAIABBBGooAgAQoC8gAUEBayEBIABBDGohAAwBCwsLLwEBf0EBIQICQCABEAJBAUcEQEEAIQIMAQsgARAiIQELIAAgATYCBCAAIAI2AgALKgADQCABBEAgACgCACAAQQRqKAIAEJ0vIAFBAWshASAAQRBqIQAMAQsLCyoAA0AgAQRAIAAoAgAgAEEEaigCABCdLyABQQFrIQEgAEEUaiEADAELCws4AQF/QQEhASAALQAERQRAIAAoAgAiASgCFEGbnOAAQQEgASgCGCgCDBEDACEBCyAAIAE6AAQgAQsmAQF+IAFQRQRAIAAgAYAiAiAAIAEgAn5SrXwPC0GUk8IAEKokAAssAQF/IAIEQCAAIAEgAm4iAzYCACAAIAEgAiADbGs2AgQPC0GYtsIAEKokAAswAQF/IAAoAggiAiAAKAIARgRAIAAQ5CALIAAgAkEBajYCCCAAKAIEIAJqIAE6AAALKgADQCABBEAgACgCACAAQQRqKAIAEJ0vIAFBAWshASAAQSRqIQAMAQsLCzEBAX8CQCAALQAMQQJGDQAgACgCACIBIAEoAgAiAUEBazYCACABQQFHDQAgABC1EwsLKgAgAQRAA0AgACgCACAAQQRqKAIAEKgvIABBFGohACABQQFrIgENAAsLCyoAIAEEQANAIAAoAgAgAEEEaigCABCoLyAAQQxqIQAgAUEBayIBDQALCwszAQF/QQgQri8iA0UEQAALIAMgAjYCBCADIAE2AgAgAEEBNgIIIAAgAzYCBCAAQQE2AgALKgEBfyMAQRBrIgEkACABQQE6AAQgASAANgIIIAFBBGoQ+yQgAUEQaiQACy8BAX8gACgC+AQoAtQCQQFHBH8gACABIAIQiCQiACgCACAAKAIEQQAQ6RQFIAMLCzIBAX8gACABwEECdCIBQYT34wBqKAIAIgI2AgAgACACIAFBzPbjAGooAgBBAXRqNgIECyoAA0AgAQRAIAAoAgAgAEEEaigCABDwKyABQQFrIQEgAEEMaiEADAELCwswAQF/IAAoAggiAiAAKAIARgRAIAAQ2CELIAAgAkEBajYCCCAAKAIEIAJqIAE6AAALKQEBfyMAQRBrIgIkACACQSs2AgwgACABIAJBDGpBARDfKCACQRBqJAALLwACQCABKAIAQRFHDQAgASgCCEEBa0EBSw0AIAEgACgCACgCABCyBUEAIQELIAELLgAgAEIANwIEIABBDGpCADcCACAAKAIAIAEQ6QcgACgCFCIABEAgACABEM4tCwsxAQF/IABBAToAOQNAIAFBGGohAiABLQAsQQJHRQRAIAIoAgAhAQwBCwsgACACEIoVCy8BAX8jAEEQayICJAAgAiABQSBqEK0hIAAgAikDACACKAIIQQEQpQIgAkEQaiQACy8BAX8jAEEQayICJAAgAiABQQhqEK0hIAAgAikDACACKAIIQQEQpQIgAkEQaiQACzEAIAAoAgAiACkDCBDQGiAAQSBqELsmIABBOGoQ4i0gAEEkahDdLSAA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AgAiAUEBazYCACABQQFHDQAgABDGEwsLKAEBfyABQQR0IQJBECEBA0AgACAAIAFqEP8IIAIgAUEQaiIBRw0ACwsnAQF/IwBBEGsiASQAIAFBCGogACgC1AIQqBggASgCDCABQRBqJAALLgAgACgCAEGAgICAeEYEQEHwk8QAEKEvAAsgAEEMaiABEIsLIABBPGogARCLCwsrACAAEPcJIAAoAqANIAAoAqQNIgAoAghBAWtBeHFqQQhqIAAoAigRBQBqCzMAIAEoAhQgACgCAC0AAEECdCIAQYT04wBqKAIAIABB+PPjAGooAgAgASgCGCgCDBEDAAszACABKAIUIAAoAgAtAABBAnQiAEGE8eMAaigCACAAQfjw4wBqKAIAIAEoAhgoAgwRAwALKwEBfyMAQRBrIgMkACADQQE2AgAgAyACNwIEIAAgASADEP0LIANBEGokAAsrACAAEK4EIAAoAgBBiIDEAEcEQCAAEOQhDwsgAEEEahCSLCAAQQhqEJIsCywBAX8gASAAKAIUIgJPBEAgASACQfiLxAAQ5xYACyAAKAIQIAFBAnRqKAIACywBAX8gASAAKAIgIgJPBEAgASACQYCKxAAQ5xYACyAAKAIcIAFBAnRqKAIACywBAX8gASAAKAI4IgJPBEAgASACQaiMxAAQ5xYACyAAKAI0IAFBAnRqKAIACzMAIAEoAhQgACgCAC0AAEECdCIAQdz34wBqKAIAIABByPfjAGooAgAgASgCGCgCDBEDAAshAEF/IAAgAkcgACACSRsiAEF/IAEgA0cgASADSRsgABsLKwAgABCuBCAAKAIAQYiAxABHBEAgABCmHg8LIABBBGoQmCwgAEEIahCYLAszACABKAIUIAAoAgAtAABBAnQiAEHE39YAaigCACAAQbDf1gBqKAIAIAEoAhgoAgwRAwALMwAgASgCFCAAKAIALQAAQQJ0IgBBgPjjAGooAgAgAEHw9+MAaigCACABKAIYKAIMEQMACzMAIAEoAhQgACgCAC0AAEECdCIAQbT44wBqKAIAIABBkPjjAGooAgAgASgCGCgCDBEDAAskAQF/IAAgAXJFIQIgAEUgAUVyBH8gAgUgACgCACABKAIARgsLKAAgASACIAMgBBDfKCEDIAAgAiAEazYCBCAAIAEgBGpBACADGzYCAAszACABKAIUIAAoAgAtAABBAnQiAEHshuQAaigCACAAQdiG5ABqKAIAIAEoAhgoAgwRAwALKgAgACgCACIABEAgABD7DiAAKAIAIABBBGooAgAQwiogAEEUQQQQohgLCyoAIAAoAgAiAARAIAAQsyIgACgCACAAQQRqKAIAEMMqIABBFEEEEKIYCwszACABKAIUIAAoAgAtAABBAnQiAEG0heQAaigCACAAQaiF5ABqKAIAIAEoAhgoAgwRAwALMwAgASgCFCAAKAIALQAAQQJ0IgBBzIXkAGooAgAgAEHAheQAaigCACABKAIYKAIMEQMACzMAIAEoAhQgACgCAC0AAEECdCIAQeSF5ABqKAIAIABB2IXkAGooAgAgASgCGCgCDBEDAAszACABKAIUIAAoAgAtAABBAnQiAEGkhuQAaigCACAAQfCF5ABqKAIAIAEoAhgoAgwRAwALKgAgACgCACIABEAgABCzGSAAKAIAIABBBGooAgAQwCogAEEUQQQQohgLCy4BAX8gASgCACECIAAgASgCDCIBEEQCQCACDQAgASgCAEEgRw0AIAAgARDuAQsLKgAgACgCACIABEAgABD/DiAAKAIAIABBBGooAgAQwiogAEEUQQQQohgLCzMAIAEoAhQgACgCAC0AAEECdCIAQbyI5ABqKAIAIABBsIjkAGooAgAgASgCGCgCDBEDAAszACABKAIUIAAoAgAtAABBAnQiAEGkh+QAaigCACAAQZiH5ABqKAIAIAEoAhgoAgwRAwALJwACQCABQQFrQQJJDQAgAi0AGUEBa0H/AXFBAU0NACAAIAIQxBELCzMAIAEoAhQgACgCAC0AAEECdCIAQeSH5ABqKAIAIABBsIfkAGooAgAgASgCGCgCDBEDAAszACABKAIUIAAoAgAtAABBAnQiAEGkiOQAaigCACAAQZiI5ABqKAIAIAEoAhgoAgwRAwALKgAgACgCACIABEAgABC1GSAAKAIAIABBBGooAgAQwCogAEEUQQQQohgLCywAIAEgABCDKgJAIAEoAgBBA0cNACABKAIEIgEoAgBBGUcNACAAIAEQ7gELCyoAIAAoAgAiAARAIAAQtSIgACgCACAAQQRqKAIAEMMqIABBFEEEEKIYCwsqACAAKAIAIgAEQCAAEJwlIAAoAgAgAEEEaigCABDVLyAAQRRBBBCiGAsLMwAgASgCFCAAKAIALQAAQQJ0IgBB7IrkAGooAgAgAEHgiuQAaigCACABKAIYKAIMEQMACyoAIAAoAgAiAARAIAAQgQ8gACgCACAAQQRqKAIAEMIqIABBFEEEEKIYCwsrAQF/IwBBEGsiAiQAIAIgABCtISABIAIpAwAgAigCCBDZBhogAkEQaiQACzMAIAEoAhQgACgCAC0AAEECdCIAQdSJ5ABqKAIAIABByInkAGooAgAgASgCGCgCDBEDAAszACABKAIUIAAoAgAtAABBAnQiAEHsieQAaigCACAAQeCJ5ABqKAIAIAEoAhgoAgwRAwALMwAgASgCFCAAKAIALQAAQQJ0IgBBrIrkAGooAgAgAEH4ieQAaigCACABKAIYKAIMEQMACywBAX8gACACEOonIAAoAggiAyAAKAIEaiABIAIQgQkaIAAgAiADajYCCEEACzQAIAAgASkC9AE3AgAgAUKAgICAwAA3AvQBIABBCGogAUH8AWoiACgCADYCACAAQQA2AgALKAAgACABEOMxIAAoAgwiAARAIAEgAEEMaigCACAAQRBqKAIAEPkoCwszACABKAIUIAAoAgAtAABBAnQiAEH8kuQAaigCACAAQciS5ABqKAIAIAEoAhgoAgwRAwALMwAgASgCFCAAKAIALQAAQQJ0IgBBvJPkAGooAgAgAEGwk+QAaigCACABKAIYKAIMEQMACzMAIAEoAhQgACgCAC0AAEECdCIAQdST5ABqKAIAIABByJPkAGooAgAgASgCGCgCDBEDAAsrAQF/IAEtABQgAUEYaigCACAAEIYLQQJHBEAgACABKQMAIAEoAhAQ+yYLCygBAX8gAS0AFCABQRhqIAAQkzJBAkcEQCAAIAEpAwAgASgCEBD7JgsLMwAgASgCFCAAKAIALQAAQQJ0IgBBzJTkAGooAgAgAEHAlOQAaigCACABKAIYKAIMEQMACywBAX8CQCAAKAIAIgFFDQAgASABKAIAIgFBAWs2AgAgAUEBRw0AIAAQxR4LCzAAIAEoAhQgAC0AAEECdCIAQZS+4wBqKAIAIABBiL7jAGooAgAgASgCGCgCDBEDAAswACABKAIUIAAtAABBAnQiAEG4vuMAaigCACAAQay+4wBqKAIAIAEoAhgoAgwRAwALMAAgASgCFCAALQAAQQJ0IgBB0L7jAGooAgAgAEHEvuMAaigCACABKAIYKAIMEQMACyUAIAAgASACKAIIQQFrQXhxakEIaiADIAQgBSAGIAIoAhARCAALJwAgAiADTQRAIAMgAkGUrcAAEOcWAAsgACABIANBDGxqKQIENwMACyoBAX8gACACENUoIAAoAggiAyAAKAIEaiABIAIQgQkaIAAgAiADajYCCAsoAQF/QQQhASAABEBBoL/kAC0AABogAEEEEOspIQELIAEEQCABDwsACyoBAX8gACACEMEnIAAoAggiAyAAKAIEaiABIAIQgQkaIAAgAiADajYCCAsjAQF/IwBBEGsiASQAIAFBCGogABD6CyABKAIMIAFBEGokAAuXAgEEfyAAIAAoAgAiAUEBazYCACABQQJxIAFBBElyRQRAAkAgACICKAIAIQADQCAAQQJxIAAiAUEESXINASACIABBAnIgAigCACIAIAAgAUYbNgIAIAAgAUcNAAsDQAJAIAFBfHEiBCEAA0AgACgCACIDBEACQCAEIAM2AgAgAUEBcUUEQCADKAIEIgAEQCAEIAA2AgAgAiACKAIAQX1xNgIADAULA0AgAiABQQFxIAIoAgAiACAAIAFGIgEbNgIAIAENBSAAIQEgAEEESQ0ACwwBCyACIAFBfXEgAigCACIAIAAgAUYiARs2AgAgAUUNAAwFCwUgACgCCCIDIAA2AgQgAyEADAELCyAAIQEMAQsLELckAAsLCyoAAkAgACgCAEGJgMQARwRAIABB9ABqEMItDAELIABBBGohAAsgABC+FwsqAQF/IAAgAhDPJyAAKAIIIgMgACgCBGogASACEIEJGiAAIAIgA2o2AggLLAACQCABQQJHBEAgACgCAEGAgICAeEYNASAAQQA2AhQLDwtBgJTEABChLwALLAACQCABQQNHBEAgACgCAEGAgICAeEYNASAAIAIQmR0LDwtBkJTEABChLwALMAAgASgCFCAALQAAQQJ0IgBB4PDjAGooAgAgAEHI8OMAaigCACABKAIYKAIMEQMACywBAX9BASECAkAgAUGAgICAeEYNACAAEOsbIAFGDQAgABCjHiABRiECCyACCycAIAEtABBBAXEEQCADENIFCyACBEAgAxD6CgsgAEGAgICAeDYCAAsmACACRQRAQQFBACADEOgWAAsgACACQQFrNgIEIAAgAUEIajYCAAsjACAAIAJBB3EgA0EDdHI2AgQgACAC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ACABBEADQCAAEJIHIABBOGohACABQQFrIgENAAsLCx8AIAEEQANAIAAQygcgAEEoaiEAIAFBAWsiAQ0ACwsLHwAgAQRAA0AgABDbCCAAQUBrIQAgAUEBayIBDQALCwssAQF/IAAoAgAiARC6ASABQcAAQQgQohggACgCBCIAEIUEIABB4ABBCBCiGAsjACAAEMwZIgCnQd3L3Z55bCAAQiCIp2pB3cvdnnlsQQ93rQssAQF/IAAoAgAiARDFASABQcAAQQgQohggACgCBCIAEIYEIABB4ABBCBCiGAsrAQJ/IAAoAgAiAUGAgICAeEcEQCAAKAIEIgIgACgCCBD4JyABIAIQwioLCywBAX8gACgCACIBENcBIAFBwABBCBCiGCAAKAIEIgAQigQgAEHgAEEIEKIYCyQBAX8gASAAKAIAIAAoAggiAmtLBEAgACACIAFBCEEwEIohCwsfAANAIAEEQCABQQFrIQEgABDECCAAQQRqIQAMAQsLCywBAX8gACgCACIBENUBIAFBwABBCBCiGCAAKAIEIgAQjAQgAEHgAEEIEKIYCx8AIAEEQANAIAAQywcgAEEoaiEAIAFBAWsiAQ0ACwsLHwAgAQRAA0AgABCGAyAAQTBqIQAgAUEBayIBDQALCwsgACABBEADQCAAEOsDIABB2ABqIQAgAUEBayIBDQALCwsfACABBEADQCAAEKIDIABBOGohACABQQFrIgENAAsLCyAAIAEEQANAIAAQ3wogAEHIAGohACABQQFrIgENAAsLCyAAIAEEQANAIAAQuREgAEHQAGohACABQQFrIgENAAsLCx8AIAEEQANAIAAQxwQgAEE4aiEAIAFBAWsiAQ0ACwsLHwAgAQRAA0AgABDCCSAAQUBrIQAgAUEBayIBDQALCwssAQF/IAAoAgAiARCiASABQcAAQQgQohggACgCBCIAELUCIABB4ABBCBCiGAssAQF/IAAoAgAiARDqASABQcAAQQgQohggACgCBCIAEJEEIABB4ABBCBCiGAssAQF/IAAoAgAiARDWASABQcAAQQgQohggACgCBCIAEJIEIABB4ABBCBCiGAssAQF/IAAoAgAiARDEASABQcAAQQgQohggACgCBCIAEJMEIABB4ABBCBCiGAsrAQJ/IAAoAgAiAUGAgICAeEcEQCAAKAIEIgIgACgCCBCFKCABIAIQwioLCywBAX8gACgCACIBEMYBIAFBwABBCBCiGCAAKAIEIgAQ9gIgAEHgAEEIEKIYCywBAX8gACgCACIBEOEBIAFBwABBCBCiGCAAKAIEIgAQlAQgAEHgAEEIEKIYCygAAkAgAEEDRw0AIAItAAUgAZlEAAAAAAAA8H9icg0AIAJBADoABAsLLAEBfyAAKAIAIgEQowEgAUHAAEEIEKIYIAAoAgQiABDcAiAAQeAAQQgQohgLHwAgAQRAA0AgABDLBiAAQQxqIQAgAUEBayIBDQALCwsfACABBEADQCAAEMwHIABBKGohACABQQFrIgENAAsLCx8AIAEEQANAIAAQswMgAEE4aiEAIAFBAWsiAQ0ACwsLHwAgAQRAA0AgABCjAyAAQThqIQAgAUEBayIBDQALCwsfACABBEADQCAAEIcDIABBMGohACABQQFrIgENAAsLCyAAIAEEQANAIAAQ9QIgAEHYAGohACABQQFrIgENAAsLCywBAX8gACgCACIBEKsBIAFBwABBCBCiGCAAKAIEIgAQwQMgAEHgAEEIEKIYCywBAX8gACgCACIBEMcBIAFBwABBCBCiGCAAKAIEIgAQlgQgAEHgAEEIEKIYCyUAIABBATYCBCAAIAEoAgwgASgCBGtBGG4iATYCCCAAIAE2AgALJQAgAEEBNgIEIAAgASgCBCABKAIAa0EMbiIBNgIIIAAgATYCAAslACABIAJLBEAgASACQZzc4AAQ6hYACyAAIAI2AgQgACABNgIACyQBAX8gASAAKAIAIAAoAggiAmtLBEAgACACIAFBCEE4EIohCwseACABKAIAIAJBdGxqQQxrKAIAQd3L3Z55bEEPd60LJQAgACgCACAAKAIEIAEQ+CwgAEFAayABEMMrIABBIGogARDiKQshACAAQSBqIAEQ3jEgACgCAEECTwRAIABBBGogARDeMQsLJQEBfyAAKAIAIgEgASgCACIBQQFrNgIAIAFBAUYEQCAAEOohCwshACAAQSBqIAEQ4jEgACgCAEECTwRAIABBBGogARDiMQsLIQAgAEEgaiABEOMxIAAoAgBBAk8EQCAAQQRqIAEQ4zELCyUAIABBBGooAgAgAEEIaigCACACIAEoAgB2QYCSwAAQqCgoAgALHAAgASACTQRAIAIgASADEOcWAAsgACACQQJ0agscACABIAJN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AiABRnILGQAgACgCACAAKAIEIAEoAhQgASgCGBDDBAsSACAAQYEBEB9BgQEQsi1BAEcLEgEBf0EsEK4vIgAEQCAADwsACxEAIAEEfyAAIAEQuS4FIAALCxcBAX8gABARIgE2AgQgACABQQBHNgIACxcBAX8gABASIgE2AgQgACABQQBHNgIACxcBAX8gABATIgE2AgQgACABQQBHNgIACxcBAX8gABAUIgE2AgQgACABQQBHNgIACxIBAX9BNBCuLyIABEAgAA8LAAsYACAAEI4FIAAQwBEgACgCGEE0QQQQohgLFAAgAUUEQEEAQQAgAhDnFgALIAALFwAgACABIAIQrCIgABCDByAAQQA6AAwLFwAgACABIAIQrSIgABD3BiAAQQA6AAwLFgAgASACIAAoAgAgAEEEaigCABDAJAsXACAAQQA2AhAgAEIBNwIAIABBADYCCAsTACABKAIAIAJBBHRrQRBrELkGCxcAIAAoAgBBCGogASgCFCABKAIYELQGCxsAIAAoAtwBIAAtAIICIAEgACgC0AEgAhDxFAsVACAAIAEQyA8gACgCCCABKAIIRnELFwAgACkDACAALQAUELUrIABBGGoQ/SALFwAgACkDACAALQAUELUrIABBGGoQjx4LEwAgAUH/AXFBAkcEQCAAENAaCwsSACAAKAIABEAgAEEEahD7BAsLbwEBf0GIueQAKAIAQQJHBEAjAEEgayIAJAAgAEGAueQANgIIIABBgLnkADYCDCAAIABBH2o2AhggACAAQQxqNgIUIAAgAEEIajYCEEGIueQAIABBEGpB8LzfABDsBiAAQSBqJAALQYS55AAoAgAaCxIAIAAtAAAEQCAAQQRqEIkrCwsXACAAQQxqEOksIAAQ1S0gACgCJBDgLgsXACAAQQxqEOQsIAAQ6iwgACgCHBDgLgsXACAAELkhIABBPGoQ8y0gACgCOBDgLgsXACAAQQxqEOQsIAAQ1S0gACgCHBDgLgsSACAAKAIABEAgAEEEahCJKwsLFwAgAEEIahCLKyAAKAIUIAAoAhgQgyELEgAgACgCAARAIABBBGoQ5CwLCxMAIAEoAgAiAQRAIAEgABDMIwsLEwAgASgCACIBBEAgASAAEMojCwsUACAAKAIAQQdHBEAgACABEO4XCwsTACAAKAIAIgAEQCAAIAEQogULCxYAIAAo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AgBBgICAgHhHBEAgABC1KgsLFgAgACgCAEGAgICAeEcEQCAAEPsLCwsSACAAKAIAQQhHBEAgABC6EwsLFAAgASgCBBogAEHsutYAIAEQnwYLFQAgACgCACIAEJIQIABBHEEEEKIYCxYAIAAoAgAiABCjJiAAQdgAQQQQohgLFgAgACgCACIAEL8XIABB9ABBBBCiGAsVACAAKAIAIgAQngogAEEIQQQQohgLFgAgACgCACIAEL8XIABB2ABBBBCiGAsVACAAKAIAIgAQlBAgAEEcQQQQohgLGQAgASgCFEGc39YAQRIgASgCGCgCDBEDAAsUACABKAIEGiAAQbiI2AAgARCfBgsUACABKAIEGiAAQcST2AAgARCfBgsZACABKAIUQdCI2ABBBCABKAIYKAIMEQMAC4QBAQJ/IAAoAgAoAgAhAiABKAIUIAEoAhgjAEEwayIAJAAgAEEDNgIEIABBnPLAADYCACAAQgI3AgwgACAAQSxqrUKAgICAoAmENwMgIAAgAEEoaq1CgICAgLAJhDcDGCAAIAI2AiggACACaDYCLCAAIABBGGo2AgggABCfBiAAQTBqJAALFQAgASgCACACIAMQgRUgAEEEOgAACxkAIAEoAhRB7KPYAEEMIAEoAhgoAgwRAwALGQAgASgCFEHdiNgAQQggASgCGCgCDBEDAAsUACABKAIEGiAAQazG2AAgARCfBgsWACABIAAoAgAiACgCFCAAKAIYEIcFCxYAIAAoAgAiABCgASAAQcAAQQgQohgLFgAgACgCACIAEKQBIABBwABBCBCiGAsWACAAKAIAIgAQkgIgAEHAAEEIEKIYCxQAIAEoAgQaIABBwO3YACABEJ8GCxYAIAAoAgAiACgCBCAAKAIIIAEQzBMLFgAgACgCACIAKAIEIAAoAgggARDNEwsWACAAKAIAIgAoAgQgACgCCCABEM4TCxYAIAAoAgAiACgCBCAAKAIIIAEQzxMLFgAgACgCACIAEKEBIABBwABBCBCiGAsWACAAKAIAIgAQyAEgAEHAAEEIEKIYCxYAIAEgACgCACIAKAIAIAAoAgQQhwULFgAgACgCACIAELkBIABBwABBCBCiGAsVACAAKAIAIgAQvxAgAEEYQQgQohgLFgAgACgCACIAEOsBIABBwABBCBCiGAsUACABKAIEGiAAQbTv2QAgARCf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FQAgACgCACIAEIUHIABBDEEEEKIYCxUAIAAoAgAiABDeByAAQTBBCBCiGAsRACAAKAIABEAgACABEOIxCwsRACAAKAIABEAgACABEOExCwsRACAAKAIABEAgACABEOMxCwsRACAAKAIABEAgACABEN8xCwsRACAAKAIABEAgACABEN4xCwsVACAAKAIAIgAQhgcgAEEMQQQQohgLFwAgACkDACAALQAUELUrIAAoAhgQmSILEgAgACgCAEEHRwRAIAAQwxkLCxUAIAAoAgAiABDDGSAAQShBCBCiGAsVACAAKAIAIgAQ3wcgAEEwQQgQohgLFQAgACgCACIAELMXIABBKEEIEKIYCxUAIAAoAgAiABCOByAAQQxBBBCiGAsVACAAKAIAIgAQgwggAEEwQQgQohgLEQAgACgCACIABEAgABD3LgsLFQAgACgCACIAEP8uIABBGEEIEKIYCxYAIABB9NXgADYCBCAAIAFBCGo2AgALFgAgAEG41eAANgIEIAAgAUEIajYCAAsWACAAQbjT4AA2AgQgACABQRxqNgIACxYAIABB9NPgADYCBCAAIAFBHGo2AgALEgAgAEEEahCuKiAAQSRqEMsdCxUAIAAoAgAiABDcByAAQTBBCBCiGAsXACAAKQMAIAAtABQQtSsgACgCGBCdIgsVACAAKAIAIgAQshcgAEEoQQgQohgLFQAgACgCACIAEIcHIABBDEEEEKIYCxcAIAAgASAAIAEgAhDQFUGA6OAAEM4oCxIAIAAoAgBBJUcEQCAAEOUMCwsXACAAIAEgACABIAIQrxRBkOjgABDOKAsTACAAQTBqIAEQ5iMgACABENsWCxMAIABBIGogARDfMSABIAAQ4CoLFQAgACgCACIAEP4GIABBDEEEEKIYCxMAIABBMGogARDqIyAAIAEQnRgLEwAgAEEwaiABEOwjIAAgARDuFwsTACAAQTBqIAEQ6yMgACABEPkcCxUAIAAoAgAiABD2BiAAQQxBBBCiGAsTACABIAAQ6yogAEEoaiABEJwyCxMAIAAgARCdKiAAQShqIAEQkzILEwAgASAAEOIqIABBKGogARCbMgsZACABKAIUQfyD4QBBDSABKAIYKAIMEQMACxMAQdC+5AAgAK1CIIZCAYQ3AwALDwAgAEGEAU8EQCAAEBwLCw8AIABBPGpBACAAKAI8GwsP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EKcECwsPACAAKAIABEAgABCQLQsLDwAgACgCAARAIAAQhgcLCxIAIAApAwAQ0BogAEEYahCULgsPACAAKAIABEAgABCWLQsLDwAgACgCAARAIAAQswQLCw8AIAAoAgAEQCAAEI4HCwsOACAABEAgACABEKoHCwsTACABIAAQ0iQgACgCGCABEIULCxMAIAEgABDSJCAAKAIYIAEQkR4LDgAgAARAIAAgARCGMwsLDwAgACgCAARAIAAQpgQLCxIAIAApAwAQ0BogAEEYahCgLgsPACAAKAIABEAgABCiLQsLDwAgACgCAARAIAAQhwcLCw8AIAAoAgAEQCAAEKgtCwsSACAAKQMAENAaIABBEGoQ3ysLDwAgACgCAARAIAAQ0AQLCw8AIAAoAgAEQCAAEP4GCwsPACAAKAIABEAgABCsLQsLDwAgACgCAARAIAAQzAMLCw8AIAAoAgAEQCAAEPYGCwsTACAAKAIIIAAoAgBBBEEIEK8qCxMAIABBKDYCBCAAQejN4AA2AgALIQAgAELRnvaVn920lgo3AwggAELJyd+Gv5HizKN/NwMACyIAIABCt8PQrrbJhvjQADcDCCAAQsaEkdy11uOCvH83AwALIAAgAELFz6Xckfzq8E03AwggAEKQx+vpnpz53nE3AwALIgAgAEK03fjZjcmr/P0ANwMIIABCsYKesvCAx+GZfzcDAAsQACAAEOorIABBLEEEEKIYCxAAIAAQmysgAEEsQQQQohgLEwAgAEGUhMAANgIEIAAgATYCAAsTACAAQdCEwAA2AgQgACABNgIACxEAIAEgACgCBCAAKAIIEIcFCxEAIAAoAgQgACgCCCABELIUCxEAIAEgACgCACAAKAIEEIcFCw4AIAAoAtQCIAFBAWtLCw4AIAAoArgCIAFBAWtLCw4AIAAoAswCIAFBAWtLCxIAQaC/5AAtAAAaIAEgABDrKQshACAAQuahgtqeg7TG8wA3AwggAELc3obh5cybqDI3AwALEAAgABCbKyAAQShBBBCiGAsTACAAQcy/wAA2AgQgACABNgIACyEAIABC3bzStoOrnOpgNwMIIABCkIfa8K6qicmIfzcDAAsQACAAIAI2AgQgACABNgIACwwAIAAEQCABELItCwsQACAAKAIAIAEgAhDDDkEACxEAIAEoAhQgASgCGCAAEJ8GCxMAIABBtI3CADYCBCAAQQE2AgALDwAgABCBGiAAQTBqEIIaCxEAIAAQmx02AhggAEEANgIACxEAIAAoAgAiABC6EyAAEJwwCyEAIABC+dXx07+OmLFVNwMIIABCy9nWpL/Ko4H1ADcDAAsRACAAKAIAIAAoAgQgARDPDwsXACAAQYCAgIB4NgIAQQJBrNnYABDXHQsQACAAIAIQ+REgASACEPkRCxEAIAAQ/gMgAEHgAEEIEKIYCxAAIAAQvxAgAEEYQQgQohgLEQAgABCSAiAAQcAAQQgQohgL3wEBAX8CQCAAKALQASEDIAAtAIUCRQRAIAEgAyACEO8bIQICQAJAAkACfyAALQCDAkUEQCAAKALgASIAKAIIDQQgAEF/NgIIIAAoAhQiASAAKAIMRw0CIABBDGoMAQsgACgC3AEiACgCCA0CIABBfzYCCCAAKAIUIgEgACgCDEcNASAAQQxqCxCqDAsgACgCECABQQJ0aiACNgIAIAAgAUEBajYCFCAAIAAoAghBAWo2AggMAwtBuPTYABDVHQALQcj02AAQ1R0ACyAAKALcASAALQCCAiABIAMgAhDxFAsLugEAAkAgASAAKALQASACEO8bIQICQAJAAkACfyAALQCDAkUEQCAAKALgASIAKAIIDQQgAEF/NgIIIAAoAhQiASAAKAIMRw0CIABBDGoMAQsgACgC3AEiACgCCA0CIABBfzYCCCAAKAIUIgEgACgCDEcNASAAQQxqCxCqDAsgACgCECABQQJ0aiACNgIAIAAgAUEBajYCFCAAIAAoAghBAWo2AggMAgtBuPTYABDVHQALQcj02AAQ1R0ACwsRACAAKAIEIAAoAgggARDMEwsRACAAKAIEIAAoAgggARDNEwsRACAAKAIEIAAoAgggARDPEwsRACAAKAIEIAAoAgggARDOEwsRACAAKAIEIAAoAgggARDXEwsRACAAKAIEIAAoAgggARDVEwsRACAAKAIEIAAoAgggARDYEwsRACAAKAIEIAAoAgggARDWEwsRACAAQf8BcUGsieQAai0AAAsPACAAEPsEIABBBGoQ/QYLDwAgABD7BCAAQQRqEMMsCw8AIAAQ1i0gAEEMahD2KgsPACAAEMcsIABBFGoQ2C0LDwAgABDHLCAAQQRqEPsECw8AIAAQ3C0gAEEMahDYLQsPACAAQTBqEOAtIAAQqBsLDwAgABCXBCAAQQRqEIQHCwwAIAAEQCAAEOEuCwsQACAAENstIABBFEEEEKIYCxAAIAAQ4S0gAEEcQQQQohgLEAAgABDhLSAAQRhBBBCiGAsRACAAKAIEIAAoAgggARDfEwsRACAAKAIEIAAoAgggARDeEwsRACAAKAIEIAAoAgggARDdEwsRACAAKAIEIAAoAgggARDgEwshACAAQvrC7Ij6qO7L0QA3AwggAEKtk/TPlNH7rUY3AwALEQAgACgCCC0APBDqLkH/AXELEQAgAEH/AXFBtIvkAGotAAALEwAgAEH0v98ANgIEIAAgATYCAAsiACAAQquO9MXqzrOpywA3AwggAEKO2r7iyd7/odoANwMACxEAIAAoAhQtAEwQ6i5B/wFxCwwAIAAEQCAAEO8uCwsQACAAEPYtIABBFEEEEKIYCw8AIAAQtxAgAEE4ahDkLAsPACAAEO0tIABBFGoQ8S0LDwAgABDnLCAAQRRqEPEtCw8AIAAQ7C0gAEEUahDxLQsPACAAQSBqEOQsIAAQ+CYLDwAgABDkLCAAQQRqEMIHCwwAIAAEQCAAEPcuCwsQACAAENMtIABBFEEEEKIYCxIAQcAAQQgQsiogAEHAABCBCQsSAEHgAEEIELIqIABB4AAQgQkLDwAgABCILSAAQRRqEIsuCxAAQTBBCBCyKiAAQTAQgQkLDwAgACABQQAgAiACEIwJCxAAIAAQ/y4gAEEYQQgQohgLDwAgABD7LCAAQRhqEJwiCw8AIAAQ4RkgAEEQahD6LAsRACAAIAIgASgCACgCABDDBQsPACAAEMQDIABBBGoQsQcLDwAgABDhGSAAQRBqEOEZCw8AIAAQtSAgAEEgahDmLAsPACAAEOYsIABBBGoQhQcLDwAgAEEMahDPDiAAEPwtCw8AIAAQpwQgAEEEahCGBwsPACAAEJMtIABBFGoQlC4LDwAgABDhGSAAQRhqEJcuCw8AIAAQswQgAEEEahCOBws2AQF/AkAgAEEYaiIBLQAUQQJGBEAgASgCACIBEIovIAFBMEEIEKIYDAELIAEQ4RkLIAAQ4RkLIQAgAEKUsN6O8JW57Cc3AwggAEKD6rTzvNrohP8ANwMACyEAIABCuIeZw6vhpJwxNwMIIABCudCC5oG3na3VADcDAAsTACAAQR82AgQgAEHn0uAANgIACyIAIABCjd/i29uY9siIfzcDCCAAQrTBspr266W0xgA3AwALEwAgAEENNgIEIABBj9PgADYCAAshACAAQqHqw6jImIWvqH83AwggAEKTm/rvsOqY42E3AwALHwAgAEKlt6iw9LLgRjcDCCAAQvSN5o+b7figBzcDAAsiACAAQsOO0djw8fyS6gA3AwggAELdgeDK0PLI2vIANwMACyEAIABC++LRjeDZlKQPNwMIIABCrP+pmMquiPDMADcDAAsQACAAEJ4tIABBMEEEEKIYCxAAIAAQ3CsgAEE4QQQQohgLEwAgAEGw1OAANgIEIAAgATYCAAsTACAAQezU4AA2AgQgACABNgIACxIAIAAoAgAQgwogACgCBBCDCgsfACAAQo6h7Z7+iefBETcDCCAAQvbP7rqIjPV3NwMACw8AIAAQpgQgAEEEahCHBwsPACAAENAEIABBBGoQ/gYLDwAgABDMAyAAQQRqEPYGCw0AIAAgAUEBQQEQryoLDwAgACgCACAAKAIEEJ0vC84SARB/IAAhBCMAQbABayIDJAAgAkEANgIAAkACQAJAIAEiACgCACIFIAEoAgQiCUsNACACQQRqIQcCQAJAAkAgBCgCPCIIBEAgAS0AEEEBRw0BCwJAAkAgAigCEEUEQCAEQdwCQdgCIAAtABAbaigCACIBRQ0EIAEgBCgC1AJNDQEMBAsgAigCFCEBIAIoAhgNASACKAIgIQUMBAsgAigCHCEGIAIoAhghCCADQUBrIAQgARD/KCADKAJAIAMoAkQQwB4gBkEAIAgbIgZNDQIgAkEBNgIYIAIgBkEBajYCHCADQThqIAQgARD/KCADIAMpAzg3ApgBIANBMGogA0GYAWoiACAGEJoWIAMoAjBBAXFFDQUgACADKAI0IgAgBSAEQTRqKAIAIARBOGooAgAgAEGojMQAEKgoKAIAayAFEPgZIAJBATYCACAHIAMpApgBNwIAIAdBCGogA0GgAWooAgA2AgAMBAsgAigCHCEFIANBKGogBCABEP8oIAMoAiggAygCLBDAHiAFTQRAIAJBADYCGCACQQA2AgAgAiACKAIgQQFqIgU2AiAMAwsgAkEBNgIYIAIgBUEBajYCHCACKAIgIQAgA0EIaiAEIAEQ/yggAyADKQMINwKYASADIANBmAFqIgEgBRCaFiADKAIAQQFxRQ0EIAEgAygCBCIBIABBAWoiACAEQTRqKAIAIARBOGooAgAgAUGojMQAEKgoKAIAayAAEPgZIAJBATYCACAHIAMpApgBNwIAIAdBCGogA0GgAWooAgA2AgAMAwsCQAJAAkACQCACKAIQRQRAIAQoAtgCIgFFDQMgASAEKALUAk0NAQwDCyACKAIUIQEgAigCGA0BIAIoAiAhBQwDCyACKAIcIQYgAigCGCEKIANBkAFqIAQgARD/KCADKAKQASADKAKUARDAHiAGQQAgChsiBk0NASACQQE2AhggAiAGQQFqNgIcIANBiAFqIAQgARD/KCADIAMpA4gBNwKYASADQYABaiADQZgBaiIAIAYQmhYgAygCgAFBAXFFDQYgACADKAKEASIAIAUgBEE0aigCACAEQThqKAIAIABBqIzEABCoKCgCAGsgBRD4GSACQQE2AgAgByADKQKYATcCACAHQQhqIANBoAFqKAIANgIADAULIAIoAhwhBSADQfgAaiAEIAEQ/yggAygCeCADKAJ8EMAeIAVNBEAgAkEANgIYIAJBADYCACACIAIoAiBBAWoiBTYCIAwCCyACQQE2AhggAiAFQQFqNgIcIAIoAiAhACADQdAAaiAEIAEQ/yggAyADKQNQNwKYASADQcgAaiADQZgBaiIBIAUQmhYgAygCSEEBcUUNBSABIAMoAkwiASAAQQFqIgAgBEE0aigCACAEQThqKAIAIAFBqIzEABCoKCgCAGsgABD4GSACQQE2AgAgByADKQKYATcCACAHQQhqIANBoAFqKAIANgIADAQLIAJBADYCGCACIAE2AhQgAkEBNgIQIAIgBTYCICACQQA2AgALIARBPGpBACAIGyEIIARByABqIQ4gACgCDCEGIAAoAgghCiAEQQhqIQsgBEEEaiEMIARBIGohDyAEQRxqIRADQCAFIAlPBEAgAiABNgIUIAJBATYCEAwECwJAAkACQCAFIAZJBEAgDiAFIApqLQAAIg1qIREgASEAA0ACQAJAAn8gDCgCACALKAIAIABBkIjEABCpKCgCBCIBBEAgECgCACAPKAIAIAEgES0AAGpBoIjEABCoKCgCAAwBCyADQfAAaiAEIAAQ/iggAyADKQNwNwKoAQNAIANBmAFqIANBqAFqEP0UIAMtAJgBRQ0CIAMtAJkBIgEgDUkNAAsgASANRw0BIAMoAJoBCyIBQQFHDQEL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IABBAWoiEiARKAIAIBAoAgAgDUGAisQAEKgoKAIAayASEPgZDAELIAggAUHsq8AAEOcWAAsgAEEBaiEADAALAAtBARC3LSEAIAVBAjYCACAFIAA2AgQMBgsgBQJ/AkAgAygC0AIiBgRAIAYgAygCzAJNDQEgAigCDCIBIAAgACABSRshByADQUBrIQggAigCCCECIANBCGohCSADQQRqIQoDQCAAIAtGBEAgBUEANgIADAoLAkAgACAHRwRAIAooAgAgCSgCACAGIAggACACai0AAGotAABqQfCJxAAQqCgoAgAiBiADKALIAksNAUEAIAZFDQUaIAYgAygCzAJLDQEgAEEBaiEADAQLIAcgAUHsq8AAEOcWAAsgAEEBaiEADAALAAtBARC3LSEAIAVBAjYCACAFIAA2AgQMBwsgBEEgaiADQRBqKAIAIANBFGooAgAgBiADKAI8dkECa0GQisQAEK0oIgEoAgQgASgCCEEAEK4oKAIAIgEgACADQRxqKAIAIANBIGooAgAgAUGAisQAEKgoKAIAayAAEPgZIAVBDGogBEEoaigCADYCACAFIAQpAiA3AgRBAQs2AgAMBQsCQAJAAkACQCADKALQAiIGBEAgAygCzAIgBk8EQCAEQRBqIANBEGooAgAgA0EUaigCACAGIAMoAjx2QQJrQZCKxAAQrSgiASgCBCABKAIIQQAQrigoAgAiASAAIANBHGooAgAgA0EgaigCACABQYCKxAAQqCgoAgBrIAAQ+BkgBUEBNgIAIAVBDGogBEEYaigCADYCACAFIAQpAhA3AgQMCgsgBEEgaiAIIANBLGoiCCgCACACKAIIIgcgAigCDCICIAAgCxDPJgJAIAQoAiAiAEEBaw4CBAAFCyADQUBrIQkgBCgCJCEAIANBCGohCiADQQRqIQwDQCALIAAiAU0EQCAFQQA2AgAMCwsgASACTw0CAkAgDCgCACAKKAIAIAYgCSABIAdqLQAAai0AAGpB8InEABCoKCgCACIGIAMoAsgCTQRAIAZFDQUgBiADKALMAk0NASAEQSBqIAMoAiggCCgCACAHIAIgASALEM8mIAQgBCgCICAEKAIkEOwpIAQoAgBFBEAgBUEANgIADA0LIAQoAgQiACABSw0CCyABQQFqIQAMAQsLIARBEGogA0EQaigCACADQRRqKAIAIAYgAygCPHZBAmtBkIrEABCtKCIAKAIEIAAoAghBABCuKCgCACIAIAFBAWoiASADQRxqKAIAIANBIGooAgAgAEGAisQAEKgoKAIAayABEPgZIAVBATYCACAFQQxqIARBGGooAgA2AgAgBSAEKQIQNwIEDAkLQQEQty0hACAFQQI2AgAgBSAANgIEDAgLIAEgAkHsq8AAEOcWAAsgBUEANgIADAYLIAUgBCkCJDcCBCAFQQxqIARBLGooAgA2AgALIAUgADYCAAwECyAFIAQpAiQ3AgQgBUEMaiAEQSxqKAIANgIACyAFIAA2AgAMAgsgA0FAayEKIAQoAiQhACADQQhqIQwgA0EEaiEOIANBFGohDyADQRBqIRAgA0EgaiERIANBHGohDQNAAkACQAJAAkAgCyAAIgFLBEAgACACTw0CIA4oAgAgDCgCACAGIAogACAIai0AAGotAABqQfCJxAAQqCgoAgAiBiADKALIAksNAyAGRQ0EIAYgAygCzAJNDQEgBEEgaiADKAIoIAkoAgAgCCACIAAgCxDPJiAEQQhqIAQoAiAgBCgCJBDsKSAEKAIIRQRAIAVBADYCAAwICyAEKAIMIgAgAU0NAwwFCyAFIAQpAhA3AgQgBSAHNgIAIAVBDGogBEEYaigCADYCAAwGC0EBIQcgBEEQaiAQKAIAIA8oAgAgBiADKAI8dkECa0GQisQAEK0oIgAoAgQgACgCCEEAEK4oKAIAIhIgAUEBaiIAIA0oAgAgESgCACASQYCKxAAQqCgoAgBrIAAQ+BkMAwsgASACQeyrwAAQ5xYACyABQQFqIQAMAQsLIAUgBCkCEDcCBCAFIAc2AgAgBUEMaiAEQRhqKAIANgIADAELIAUgCDYCACAFIAEpAgA3AgQgBUEMaiABQQhqKAIANgIACyAEQTBqJAAL1w8BDH8jAEEgayIFJAAgAkEANgIAAkAgASIDKAIAIgEgAygCBCILSw0AIAJBBGohCAJAAkACQAJAAkACQAJAAkAgACgCKCIJBEAgAy0AEEEBRw0BCwJAAkACQCACKAIQRQRAIAMtABANASAAKALQAiIEDQIMCwsgAigCFCEEIAIoAhgNAiACKAIgIQEMCAsgACgC1AIiBEUNAwsgBCAAKALMAksNBSACKAIcQQAgAigCGBsiBiAAQRBqIgkoAgAgAEEUaiIKKAIAIAQgACgCPHZBAmtBsIrEABCtKCgCCE8NBSACQQE2AhggAiAGQQFqNgIcIAVBEGogCSgCACAKKAIAIAQgACgCPHZBAmtBkIrEABCtKCIDKAIEIAMoAgggBhCuKCgCACIDIAEgAEEcaigCACAAQSBqKAIAIANBgIrEABCoKCgCAGsgARD4GSACQQE2AgAgCCAFKQIQNwIAIAhBCGogBUEYaigCADYCAAwJCyACKAIcIgEgAEEQaiIHKAIAIABBFGoiBigCACAEIAAoAjx2QQJrQbCKxAAQrSgoAghPBEAgAkEANgIYIAJBADYCACACIAIoAiBBAWoiATYCIAwGCyACQQE2AhggAiABQQFqNgIcIAIoAiAhAyAFQRBqIAcoAgAgBigCACAEIAAoAjx2QQJrQZCKxAAQrSgiBCgCBCAEKAIIIAEQrigoAgAiASADQQFqIgMgAEEcaigCACAAQSBqKAIAIAFBgIrEABCoKCgCAGsgAxD4GSACQQE2AgAgCCAFKQIQNwIAIAhBCGogBUEYaigCADYCAAwGCwJAAkAgAigCEEUEQCAAKALQAiIERQ0JIAQgACgCzAJNDQEMBAsgAigCFCEEIAIoAhgNASACKAIgIQEMBAsgAigCHEEAIAIoAhgbIgYgAEEQaiIKKAIAIABBFGoiDCgCACAEIAAoAjx2QQJrQbCKxAAQrSgoAghPDQIgAkEBNgIYIAIgBkEBajYCHCAFQRBqIAooAgAgDCgCACAEIAAoAjx2QQJrQZCKxAAQrSgiAygCBCADKAIIIAYQrigoAgAiAyABIABBHGooAgAgAEEgaigCACADQYCKxAAQqCgoAgBrIAEQ+BkgAkEBNgIAIAggBSkCEDcCACAIQQhqIAVBGGooAgA2AgAMCAsgAigCHCIBIABBEGoiBygCACAAQRRqIgYoAgAgBCAAKAI8dkECa0GwisQAEK0oKAIITwRAIAJBADYCGCACQQA2AgAgAiACKAIgQQFqIgE2AiAMAwsgAkEBNgIYIAIgAUEBajYCHCACKAIgIQMgBUEQaiAHKAIAIAYoAgAgBCAAKAI8dkECa0GQisQAEK0oIgQoAgQgBCgCCCABEK4oKAIAIgEgA0EBaiIDIABBHGooAgAgAEEgaigCACABQYCKxAAQqCgoAgBrIAMQ+BkgAkEBNgIAIAggBSkCEDcCACAIQQhqIAVBGGooAgA2AgAMBQtBABC3LSEHDAYLIAJBADYCGCACIAQ2AhQgAkEBNgIQIAIgATYCICACQQA2AgALIABBKGpBACAJGyEJIABBQGshDCADKAIMIQYgAygCCCEKIABBCGohDSAAQQRqIQ4DQCABIAtPBEAgAiAENgIUIAJBATYCEAwECwJAAkACQCABIAZJBEAgDigCACANKAIAIAQgDCABIApqLQAAai0AAGpB8InEABCoKCgCACIEIAAoAsgCTQ0BIAEhAwwCCyABIAZB/KvAABDnFgALIAIgBDYCFCACQQE2AhBBACEHIARFDQcgACgCzAIgBE8EQCACQoGAgIAQNwIYIAVBEGogAEEQaigCACAAQRRqKAIAIAQgACgCPHZBAmtBkIrEABCtKCIDKAIEIAMoAghBABCuKCgCACIDIAFBAWoiASAAQRxqKAIAIABBIGooAgAgA0GAisQAEKgoKAIAayABEPgZIAJBATYCACAIIAUpAhA3AgAgCEEIaiAFQRhqKAIANgIADAgLIAVBEGogCSgCACAJQQRqKAIAIAogBiABIAsQzyYgBUEIaiAFKAIQIAUoAhQQ7CkgBSgCCEUNByAFKAIMIgEgAigCICIDSw0BCyADQQFqIQELIAIgATYCIAwACwALIAJBADYCGCACIAQ2AhQgAkEBNgIQIAIgATYCICACQQA2AgALIAEgCyABIAtLGyEGIAEgAygCDCIHIAEgB0sbIQsgAEFAayEJIAMoAgghAyAAQQhqIQogAEEEaiEMA0AgASAGRgRAIAIgBDYCFCACQQE2AhAMAgsCQCABIAtHBEAgDCgCACAKKAIAIAQgCSABIANqLQAAai0AAGpB8InEABCoKCgCACIEIAAoAsgCSw0BIAIgBDYCFCACQQE2AhAgBEUNAyAEIAAoAswCSw0BIAJCgYCAgBA3AhhBACEHIAVBEGogAEEQaigCACAAQRRqKAIAIAQgACgCPHZBAmtBkIrEABCtKCIDKAIEIAMoAghBABCuKCgCACIDIAFBAWoiASAAQRxqKAIAIABBIGooAgAgA0GAisQAEKgoKAIAayABEPgZIAJBATYCACAIIAUpAhA3AgAgCEEIaiAFQRhqKAIANgIADAULIAsgB0H8q8AAEOcWAAsgAiABQQFqIgE2AiAMAAsAC0EAIQcMAQtBARC3LSEHCyAFQSBqJAAgBwvhMwETfwJAIAAhCCABIQUjAEGwAWsiAyQAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkAgAigCACIGIAIoAgQiFU0EQCACLQARIAEtAMQCRXIhByACLQAQRQRAIAEoAhwiBEUNAiAHQQFxDQMgASgCvAIiAUUNBiABIAUoArgCSw0GIAUoAighACADQYgBaiAFQQRqKAIAIAVBCGooAgAgAUGIjMQAEOAkIAMoAowBIg1FDQogAygCiAEiDi0AACIEQf8BRg0EIAQgBEECdmogBEEDcUEAR2pBAmoMBQsCQAJAIAUoAsACIgFFDQAgASAFKAK4AksNACAFKAIoIQAgA0EYaiAFQQRqKAIAIAVBCGooAgAgAUGIjMQAEOAkIAMoAhwiDUUNASANAn8gAygCGCITLQAAIgRB/wFHBEAgBCAEQQJ2aiAEQQNxQQBHakECagwBCyAAQQJqCyIETQ0MIANBkAFqIgACfyATIARBAnRqKAIAIg5BAE4EQCANIARBAWoiBEsEQCATIARBAnRqKAIADAILDAwLIA5B/////wdxCyIEIAYgBUEQaigCACAFQRRqKAIAIARB+IvEABCoKCgCAGsgBhD4GUEBIREgB0EBcUUNAAwICyACKAIMIg8gBiAGIA9JGyEQIAVBLGohEiACKAIIIRQgBUEIaiEKIAVBBGohCyAFQRRqIRMgBiEEA0AgBCAVRgRAIAggAykDkAE3AgQgCCARNgIAIAhBDGogA0GYAWooAgA2AgAMCgsCQAJAIAQgEEcEQCASIAQgFGotAABqLQAAIQwCQAJAIAsoAgAgCigCACABQdiKxAAQqCgoAgAiAEH/AXFB/gFrDgIDAAELIAsoAgAgCigCACABIAxqQQJqQdiLxAAQqCgoAgAiAUEBRw0DIANBkAFqIQAMDAsgA0EQaiALKAIAIAooAgAgAUECaiIBQeiKxAAQ4CQCQAJAAkAgAEECdkE/cSAAQQNxQQBHaiICIAMoAhQiAE0EQCABIAJqIQ4gAygCECEAIAJBAnQhDUF/IQEDQCANRQRAIANBkAFqIQAMEQsgAUEBaiEBIAwgACgCACICQf8BcUYNAiAMIAJBCHZB/wFxRg0DIAwgAkEQdkH/AXFGDQQgAEEEaiEAIA1BBGshDSAMIAJBGHZHDQALIAsoAgAgCigCACAOIAFBAnRqQQNqQYiLxAAQqCgoAgAhAQwGCyACIABB+IrEABDpFgALIAsoAgAgCigCACABQQJ0IA5qQbiLxAAQqCgoAgAhAQwECyALKAIAIAooAgAgDiABQQJ0akEBakGoi8QAEKgoKAIAIQEMAwsgCygCACAKKAIAIA4gAUECdGpBAmpBmIvEABCoKCgCACEBDAILIBAgD0Hsq8AAEOcWAAsgCygCACAKKAIAIAFBjLTAABCoKC0AASAMRwRAIANBkAFqIQAMCgsgCygCACAKKAIAIAFBAmpByIvEABCoKCgCACEBCwJAIAEgBSgCtAJLDQAgAUUEQCADQZABaiEADAoLIAEgBSgCuAJLDQAgBSgCKCEAIANBCGogCygCACAKKAIAIAFBiIzEABDgJAJAIAMoAgwiCQRAIAkCfyADKAIIIg4tAAAiAkH/AUcEQCACIAJBAnZqIAJBA3FBAEdqQQJqDAELIABBAmoLIgxNDQEgA0GgAWoiAAJ/IA4gDEECdGooAgAiAkEATgRAIAkgDEEBaiICSwRAIA4gAkECdGooAgAMAgsgAiAJQbCGxAAQ5xYACyACQf////8HcQsiDiAEQQFqIgIgBUEQaigCACATKAIAIA5B+IvEABCoKCgCAGsgAhD4GSADKAKgASAGSw0CIANBmAFqIANBqAFqKAIANgIAIAMgAykCoAE3A5ABQQEhESAHQQFxRQ0CDAsLDA0LIAwgCUGghsQAEOcWAAsgBEEBaiEEDAALAAsMCQsgCEEANgIADAYLIAdBAXFFBEACf0EAIAUoArwCIgFFDQAaQQAgASAFKAK4AksNABogBSgCKCEAIANByABqIAVBBGooAgAgBUEIaigCACABQYiMxAAQ4CQgAygCTCINRQ0JIA0CfyADKAJIIg4tAAAiBEH/AUcEQCAEIARBAnZqIARBA3FBAEdqQQJqDAELIABBAmoLIgRNDQogA0GgAWoCfyAOIARBAnRqKAIAIgBBAE4EQCANIARBAWoiBEsEQCAOIARBAnRqKAIADAILDAoLIABB/////wdxCyIAIAYgBUEQaigCACAFQRRqKAIAIABB+IvEABCoKCgCAGsgBhD4GUEBCyERIAIoAgwiECAGIAYgEEkbIRIgBUEsaiEUIAIoAgghEyAFQQhqIQsgBUEEaiEHIAVBFGohDgNAIAYgFUYEQCAIIAMpAqABNwIEIAggETYCACAIQQxqIANBqAFqKAIANgIADAgLAkACQCAGIBJHBEAgFCAGIBNqLQAAai0AACIJQQJqIQIgASEAA0ACQAJAAkACQAJAAkACQCAHKAIAIAsoAgAgAEHYisQAEKgoKAIAIgFB/wFxQf4Baw4CAQIACyADQUBrIAcoAgAgCygCACAAQQJqIgxB6IrEABDgJCABQQJ2QT9xIAFBA3FBAEdqIgogAygCRCIBSw0VIAMoAkAhDSAKQQJ0IQRBfyEBA0AgBEUNBiABQQFqIQEgCSANKAIAIg9B/wFxRg0DIAkgD0EIdkH/AXFGDQQgCSAPQRB2Qf8BcUYNBSANQQRqIQ0gBEEEayEEIAkgD0EYdkcNAAsgBygCACALKAIAIAogDGogAUECdGpBA2pBiIvEABCoKCgCACEBDAkLIAkgBygCACALKAIAIABBjLTAABCoKC0AAUYNBwwECyAHKAIAIAsoAgAgACACakHYi8QAEKgoKAIAIgFBAUYNAwwHCyAHKAIAIAsoAgAgCiAMaiABQQJ0akG4i8QAEKgoKAIAIQEMBgsgBygCACALKAIAIAogDGogAUECdGpBAWpBqIvEABCoKCgCACEBDAULIAcoAgAgCygCACAKIAxqIAFBAnRqQQJqQZiLxAAQqCgoAgAhAQwECyAHKAIAIAsoAgAgAEEBakHoi8QAEKgoKAIAIQAMAAsACyASIBBB7KvAABDnFgALIAcoAgAgCygCACAAQQJqQciLxAAQqCgoAgAhAQsCQCABIAUoArQCSw0AAkAgAQRAIAEgBSgCuAJNDQEMAgsgCCADKQKgATcCBCAIIBE2AgAgCEEMaiADQagBaigCADYCAAwJCyAFKAIoIQAgA0E4aiAHKAIAIAsoAgAgAUGIjMQAEOAkAkAgAygCPCIPBEAgDwJ/IAMoAjgiAi0AACIEQf8BRwRAIAQgBEECdmogBEEDcUEAR2pBAmoMAQsgAEECagsiBE0NASADQaABagJ/IAIgBEECdGooAgAiAEEATgRAIA8gBEEBaiIASwRAIAIgAEECdGooAgAMAgsgACAPQbCGxAAQ5xYACyAAQf////8HcQsiAiAGQQFqIgAgBUEQaigCACAOKAIAIAJB+IvEABCoKCgCAGsgABD4GUEBIREMAgsMCwsgBCAPQaCGxAAQ5xYACyAGQQFqIQYMAAsACyAIAn8CQAJAIAUoArwCIgFFDQAgASAFKAK4AksNACAFKAIoIQAgA0EwaiAFQQRqKAIAIAVBCGooAgAgAUGIjMQAEOAkIAMoAjQiAUUNCiABAn8gAygCMCIELQAAIgJB/wFHBEAgAiACQQJ2aiACQQNxQQBHakECagwBCyAAQQJqCyIATQ0OIANBoAFqAn8gBCAAQQJ0aigCACICQQBOBEAgASAAQQFqIgBLBEAgBCAAQQJ0aigCAAwCCwwPCyACQf////8HcQsiACAGIAVBEGooAgAgBUEUaigCACAAQfiLxAAQqCgoAgBrIAYQ+BkMAQsgAigCDCISIAYgBiASSRshFCAFQSxqIRMgAigCCCEOIAVBCGohByAFQQRqIQkDQCAGIBVGBEAgCEEANgIADAkLAkACQCAGIBRHBEAgEyAGIA5qLQAAai0AACIMQQJqIQIgASEAA0ACQAJAAkACQAJAAkACQCAJKAIAIAcoAgAgAEHYisQAEKgoKAIAIgFB/wFxQf4Baw4CAQIACyADQShqIAkoAgAgBygCACAAQQJqIg9B6IrEABDgJCABQQJ2QT9xIAFBA3FBAEdqIgogAygCLCIBSw0WIAMoAighDSAKQQJ0IQRBfyEBA0AgBEUNBiABQQFqIQEgDCANKAIAIhBB/wFxRg0DIAwgEEEIdkH/AXFGDQQgDCAQQRB2Qf8BcUYNBSANQQRqIQ0gBEEEayEEIAwgEEEYdkcNAAsgCSgCACAHKAIAIAogD2ogAUECdGpBA2pBiIvEABCoKCgCACEBDAkLIAwgCSgCACAHKAIAIABBjLTAABCoKC0AAUYNBwwECyAJKAIAIAcoAgAgACACakHYi8QAEKgoKAIAIgFBAUYNAwwHCyAJKAIAIAcoAgAgCiAPaiABQQJ0akG4i8QAEKgoKAIAIQEMBgsgCSgCACAHKAIAIAogD2ogAUECdGpBAWpBqIvEABCoKCgCACEBDAULIAkoAgAgBygCACAKIA9qIAFBAnRqQQJqQZiLxAAQqCgoAgAhAQwECyAJKAIAIAcoAgAgAEEBakHoi8QAEKgoKAIAIQAMAAsACyAUIBJB7KvAABDnFgALIAkoAgAgBygCACAAQQJqQciLxAAQqCgoAgAhAQsCQCABIAUoArQCSw0AQQAgAUUNAxogASAFKAK4AksNACAFKAIoIQAgA0EgaiAFQQRqKAIAIAVBCGooAgAgAUGIjMQAEOAkAkAgAygCJCIBBEAgAQJ/IAMoAiAiBC0AACICQf8BRwRAIAIgAkECdmogAkEDcUEAR2pBAmoMAQsgAEECagsiAE0NASADQaABagJ/IAQgAEECdGooAgAiAkEATgRAIAEgAEEBaiIASwRAIAQgAEECdGooAgAMAgsMEgsgAkH/////B3ELIgEgBkEBaiIAIAVBEGooAgAgBUEUaigCACABQfiLxAAQqCgoAgBrIAAQ+BkMBAsMDAsMDwsgBkEBaiEGDAALAAsgCCADKQKgATcCBCAIQQxqIANBqAFqKAIANgIAQQELNgIADAULAkAgBSgCvAIiAUUNACABIAUoArgCSw0AIAUoAighACADQegAaiAFQQRqKAIAIAVBCGooAgAgAUGIjMQAEOAkIAMoAmwiAUUNByABAn8gAygCaCIELQAAIgJB/wFHBEAgAiACQQJ2aiACQQNxQQBHakECagwBCyAAQQJqCyIATQ0LIANBkAFqAn8gBCAAQQJ0aigCACICQQBOBEAgASAAQQFqIgBLBEAgBCAAQQJ0aigCAAwCCwwMCyACQf////8HcQsiACAGIAVBEGooAgAgBUEUaigCACAAQfiLxAAQqCgoAgBrIAYQ+BkgCEEBNgIAIAhBDGogA0GYAWooAgA2AgAgCCADKQKQATcCBAwFCyADQaABaiAEIAVBIGoiEygCACACKAIIIhQgAigCDCIQIAYgFRDPJgJAAkACQCADKAKgASIAQQFrDgIBAAILIAVBLGohDiADKAKkASEAIAVBCGohByAFQQRqIQkCQAJAIANBkAFqAn8DQCAVIAAiAk0EQCAIQQA2AgAMCwsCQAJAIAIgEEkEQCAOIAIgFGotAABqLQAAIgxBAmohBiABIQADQAJAAkACQAJAAkACQAJAIAkoAgAgBygCACAAQdiKxAAQqCgoAgAiAUH/AXFB/gFrDgIBAgALIANB4ABqIAkoAgAgBygCACAAQQJqIg9B6IrEABDgJCABQQJ2QT9xIAFBA3FBAEdqIgogAygCZCIBSw0YIAMoAmAhDSAKQQJ0IQRBfyEBA0AgBEUNBiABQQFqIQEgDCANKAIAIhJB/wFxRg0DIAwgEkEIdkH/AXFGDQQgDCASQRB2Qf8BcUYNBSANQQRqIQ0gBEEEayEEIAwgEkEYdkcNAAsgCSgCACAHKAIAIAogD2ogAUECdGpBA2pBiIvEABCoKCgCACEBDAkLIAwgCSgCACAHKAIAIABBjLTAABCoKC0AAUYNBwwECyAJKAIAIAcoAgAgACAGakHYi8QAEKgoKAIAIgFBAUYNAwwHCyAJKAIAIAcoAgAgCiAPaiABQQJ0akG4i8QAEKgoKAIAIQEMBgsgCSgCACAHKAIAIAogD2ogAUECdGpBAWpBqIvEABCoKCgCACEBDAULIAkoAgAgBygCACAKIA9qIAFBAnRqQQJqQZiLxAAQqCgoAgAhAQwECyAJKAIAIAcoAgAgAEEBakHoi8QAEKgoKAIAIQAMAAsACyACIBBB7KvAABDnFgALIAkoAgAgBygCACAAQQJqQciLxAAQqCgoAgAhAQsCQCAFKAK0AiABTwRAIAFFDQQgBSgCuAIgAU8EQCAFKAIoIQAgA0HYAGogBUEEaigCACAFQQhqKAIAIAFBiIzEABDgJCADKAJcIgFFDQ8gAQJ/IAMoAlgiBC0AACIGQf8BRwRAIAYgBkECdmogBkEDcUEAR2pBAmoMAQsgAEECagsiAE0NBiAEIABBAnRqKAIAIgZBAEgNAiABIABBAWoiAEsEQCAEIABBAnRqKAIADAULDBILIANBoAFqIAUoAhwgEygCACAUIBAgAiAVEM8mIANB0ABqIAMoAqABIAMoAqQBEOwpIAMoAlBFBEAgCEEANgIADA0LIAMoAlQiACACSw0CCyACQQFqIQAMAQsLIAZB/////wdxCyIBIAJBAWoiACAFQRBqKAIAIAVBFGooAgAgAUH4i8QAEKgoKAIAayAAEPgZIAhBATYCACAIQQxqIANBmAFqKAIANgIAIAggAykCkAE3AgQMCAsgCEEANgIADAcLDAwLIAggAykCpAE3AgQgCEEMaiADQawBaigCADYCAAsgCCAANgIADAQLIABBAmoLIgQgDU8NBSADQZABagJ/IA4gBEECdGooAgAiAEEATgRAIA0gBEEBaiIESwRAIA4gBEECdGooAgAMAgsMBQsgAEH/////B3ELIgAgBiAFQRBqKAIAIAVBFGooAgAgAEH4i8QAEKgoKAIAayAGEPgZIAUoAhwhBEEBIQkLIANBoAFqIAQgBUEgaiIUKAIAIAIoAggiEiACKAIMIg8gBiAVEM8mAkACQAJAAkAgAygCoAEiAEEBaw4CAQACCyAFQSxqIRMgAygCpAEhACAFQQhqIQsgBUEEaiERIAVBFGohDgwCCyAIIAMpAqQBNwIEIAhBDGogA0GsAWooAgA2AgALIAggADYCAAwCCwJAA0ACQAJAIBUgACICSwRAIAAgD0kEQCATIAAgEmotAABqLQAAIgdBAmohBiABIQADQAJAAkACQAJAAkACQAJAIBEoAgAgCygCACAAQdiKxAAQqCgoAgAiAUH/AXFB/gFrDgIBAgALIANBgAFqIBEoAgAgCygCACAAQQJqIgxB6IrEABDgJCABQQJ2QT9xIAFBA3FBAEdqIgogAygChAEiAUsNEiADKAKAASENIApBAnQhBEF/IQEDQCAERQ0GIAFBAWohASAHIA0oAgAiEEH/AXFGDQMgByAQQQh2Qf8BcUYNBCAHIBBBEHZB/wFxRg0FIA1BBGohDSAEQQRrIQQgByAQQRh2Rw0ACyARKAIAIAsoAgAgCiAMaiABQQJ0akEDakGIi8QAEKgoKAIAIQEMCgsgByARKAIAIAsoAgAgAEGMtMAAEKgoLQABRg0IDAQLIBEoAgAgCygCACAAIAZqQdiLxAAQqCgoAgAiAUEBRg0DDAgLIBEoAgAgCygCACAKIAxqIAFBAnRqQbiLxAAQqCgoAgAhAQwHCyARKAIAIAsoAgAgCiAMaiABQQJ0akEBakGoi8QAEKgoKAIAIQEMBgsgESgCACALKAIAIAogDGogAUECdGpBAmpBmIvEABCoKCgCACEBDAULIBEoAgAgCygCACAAQQFqQeiLxAAQqCgoAgAhAAwACwALIAIgD0Hsq8AAEOcWAAsgCCADKQKQATcCBCAIIAk2AgAgCEEMaiADQZgBaigCADYCAAwFCyARKAIAIAsoAgAgAEECakHIi8QAEKgoKAIAIQELAkACQCABIAUoArQCSw0AIAFFDQEgA0GQAWoCfwJAIAUoArgCIAFPBEAgBSgCKCEAIANB+ABqIBEoAgAgCygCACABQYiMxAAQ4CQgAygCfCIQRQ0KIBACfyADKAJ4IgYtAAAiBEH/AUcEQCAEIARBAnZqIARBA3FBAEdqQQJqDAELIABBAmoLIgRNDQYgBiAEQQJ0aigCACIAQQBIDQEgECAEQQFqIgBLBEAgBiAAQQJ0aigCAAwDCyAAIBBBsIbEABDnFgALIANBoAFqIAUoAhwgFCgCACASIA8gAiAVEM8mIANB8ABqIAMoAqABIAMoAqQBEOwpIAMoAnBFBEAgCEEANgIADAgLIAMoAnQiACACTQ0CDAQLIABB/////wdxCyIGIAJBAWoiACAFQRBqKAIAIA4oAgAgBkH4i8QAEKgoKAIAayAAEPgZQQEhCQwCCyACQQFqIQAMAQsLIAggAykCkAE3AgQgCCAJNgIAIAhBDGogA0GYAWooAgA2AgAMAgsgBCAQQaCGxAAQ5xYACyAIIBE2AgAgCCAAKQIANwIEIAhBDGogAEEIaigCADYCAAsgA0GwAWokAAwGCyAEIA1BsIbEABDnFgALQQBBAEHQhsQAEOcWAAsgBCANQaCGxAAQ5xYACyAKIAFB+IrEABDpFgALIAAgAUGwhsQAEOcWAAsgACABQaCGxAAQ5xYACwsMACAAKAIAIAEQtC4LDAAgACgCACABEKQkCwsAIAAoAtACIAFPCwsAIAAoArQCIAFPCwsAIAAoAsgCIAFPCw4AIAFB+NPWAEECEIcFCw4AIABBsLrAACABEJ8GCwkAIAAQAUEBRgsJACAAEAJBAUYLCQAgABADQQFGCw4AIABBtMbAACABEJ8GCwkAIAAQG0EARwsMACAAKAIAIAEQ2hILDAAgACgCACABEIAVCw4AIABBpPbAACABEJ8GCwwAIAAoAgAgARDHCQsKACAAEIoOGkEBCwsAIAAgARDZFUEACwwAIAAoAgAgARC1LgsMACAAKAIAIAEQzgcLDAAgACgCACABEI0QCwwAIAAoAgAgARDbEgsMACAAKAIAIAEQvAoLCwAgAC0AnApBAXELDAAgACgClA1BvAJqCwsAIAAoAowDQQJLCwoAIABBBGoQzScLDAAgACgCACABEIQaCwoAIABBQGsQ2iILDAAgACgCACABEIIpCwwAIAAoAgAgARCDGgsMACAAKAIAIAEQogsLCwAgAEEYQQQQohgLCwAgAEE0QQQQohgLCwAgAiAAIAEQhwULDAAgACgCACABEKgTCwsAIABBHEEEEKIYCw4AIABB5PrHAEEKEK0OCw8AIABBtPvHAEHAABCtDgsMACAAKAIAIAEQiyELCwAgACABENsVQQALCwAgACABELAKQQALDgAgAEHs1NYAIAEQnwYLKwEBfyMAQRBrIgIkACACIAE2AgwgAiAANgIIIAJBCGpBwgtBAUEAEKAWAAsMACAAKAIAIAEQqxMLCwAgAiAAIAEQiCULDAAgACgCACABEKkICwwAIAAoAgAgARCJDgvnAQEIfwJ/IAAoAgAhAiMAQYABayIFJAAgASgCBCEHIAEoAgAhBiABKAIcIgQhAAJAIARBBHFFDQAgBEEIciEAIAYNACABQoGAgICgATcCAAsgASAAQQRyNgIcQf8AIQADQCAFIAAiA2oiCCACQQ9xIgBBMHIgAEHXAGogAEEKSRs6AAAgA0EBayEAIAJBEEkgAkEEdiECRQ0ACyADQYEBSQRAIAFBAUH0n+AAQQIgCEGAASADaxCMBiABIAQ2AhwgASAHNgIEIAEgBjYCACAFQYABaiQADAELIANBgAFBmPjAABDoFgALCwoAIAAgARCjMAALDAAgACABKQIANwMACw4AQQJBrNnYABDXHUEACwwAIAAoAgAgARCjFwsKACAAENkPGkEBCwoAIAAQpgMaQQELDAAgACgCACABEMEuCwsAIAAgARCxCkEACwoAIAAQ2g8aQQELDAAgACgCACABEK8KCwwAIAAoAgAgARCbAgsMACAAKAIAIAEQkAMLCwAgASAAIAIQtjALCwAgACABIAIQ7xsLDAAgACgCACABEK4jCwwAIAAoAgAgARCKJQsMACAAKAIAIAEQkQoLDAAgACgCACABENQiCwwAIAAoAgAgARDYBQsMACAAKAIAIAEQjAsLDAAgACgCACABEPUFCwsAIAAgAUEhEJYGCwsAIAAgAUErEM0ECwsAIAAgAUEtEM0ECwsAIAAgAUE9EJYGCwwAIAAgAUHGBBDjAQsMACAAIAFBxwQQ4wELDAAgACABQcgEEOMBCwwAIAAgAUHJBBDjAQsMACAAIAFBygQQ4wELDAAgACABQcsEEOMBCwwAIAAgAUHMBBDjAQsMACAAIAFBzQQQ4wELDAAgACABQc4EEOMBCwwAIAAgAUHPBBDjAQsMACAAIAFB0AQQ4wELDAAgACABQdEEEOMBCwwAIAAgAUHSBBDjAQsMACAAIAFB0wQQ4wELDAAgACABQdQEEOMBCwwAIAAgAUHVBBDjAQsMACAAIAFB1gQQ4wELDAAgACABQdcEEOMBCwwAIAAgAUHYBBDjAQsMACAAIAFB2QQQ4wELDAAgACABQdoEEOMBCwsAIABBAToADEEBCwwAIAAoAgAgARDLDgsvAQF/IwBBEGsiACQAIABByAA2AgwgAEGm2uAANgIIIABBCGpBiwdBAUEAEKAWAAsMACAAKAIAIAEQpwsLDAAgACgCACABEJEDCw8AIABBwK/aAEHtCBDJAQsPACAAQa242gBBwwEQyQELDwAgAEHwudoAQcwAEMkBCw8AIABBvLraAEHlABDJAQsPACAAQaG72gBBvQEQyQELDwAgAEHevNoAQcUQEMkBCw8AIABBo83aAEGGCBDJAQsPACAAQanV2gBBtQ0QyQELDwAgAEHe4toAQeAGEMkBCw8AIABBvunaAEHPABDJAQsOACAAQY3q2gBBOxDJAQsPACAAQcjq2gBBqAMQyQELDwAgAEHw7doAQc0BEMkBCw8AIABBve/aAEGzBRDJAQsPACAAQfD02gBBqgEQyQELDwAgAEGa9toAQe4DEMkBCw8AIABBiPraAEGbBxDJAQsPACAAQaOB2wBBrAEQyQELDwAgAEHPgtsAQeABEMkBCw8AIABBr4TbAEH1ARDJAQsPACAAQaSG2wBBiAEQyQELDwAgAEGsh9sAQc0BEMkBCw8AIABB+YjbAEGSARDJAQsPACAAQYuK2wBB9AEQyQELDwAgAEH/i9sAQesAEMkBCw8AIABB6ozbAEHmARDJAQsPACAAQdCO2wBB1gEQyQELDwAgAEGmkNsAQcoBEMkBCw8AIABB8JHbAEGFARDJAQsPACAAQfWS2wBB6gAQyQELDwAgAEHfk9sAQaECEMkBCw8AIABBgJbbAEG6AhDJAQsPACAAQbqY2wBBpQIQyQELDwAgAEHfmtsAQZcEEMkBCw8AIABB9p7bAEHTBBDJAQsQACAAQcmj2wBBsOAAEMkBCw8AIABB+YPcAEH/AhDJAQsPACAAQfiG3ABBvgUQyQELDwAgAEG2jNwAQfMBEMkBCw8AIABBqY7cAEH3AhDJAQsPACAAQaCR3ABBuQMQyQELDwAgAEHZlNwAQbcEEMkBCw8AIABBkJncAEHnARDJAQsPACAAQfea3ABBqAMQyQELDwAgAEGfntwAQcUBEMkBCw8AIABB5J/cAEH7AhDJAQsPACAAQd+i3ABB+QIQyQELDwAgAEHYpdwAQegBEMkBCw8AIABBwKfcAEHmABDJAQsPACAAQaao3ABBxwoQyQELDwAgAEHtstwAQewAEMkBCw8AIABB2bPcAEGlARDJAQsPACAAQf603ABBmQUQyQELDwAgAEGXutwAQegCEMkBCw8AIABB/7zcAEHhCBDJAQsPACAAQeDF3ABBogEQyQELDwAgAEGCx9wAQdcBEMkBCw8AIABB2cjcAEHUARDJAQsPACAAQa3K3ABBjgEQyQELDwAgAEG7y9wAQfgEEMkBCw8AIABBs9DcAEHVBhDJAQsPACAAQYjX3ABB0gQQyQELDwAgAEHa29wAQesCEMkBCw8AIABBxd7cAEHLARDJAQsPACAAQZDg3ABB3gAQyQELDwAgAEHu4NwAQagKEMkBCw8AIABBluvcAEHMARDJAQsPACAAQeLs3ABBnQEQyQELDwAgAEH/7dwAQa8BEMkBCw8AIABBru/cAEHDARDJAQsPACAAQfHw3ABB3wEQyQELDwAgAEHQ8twAQc4BEMkBCw8AIABBnvTcAEGbARDJAQsOACAAQbn13ABBJBDJAQsPACAAQd313ABBmQEQyQELDwAgAEH29twAQakBEMkBCw8AIABBn/jcAEGtAxDJAQsPACAAQcz73ABBigEQyQELDwAgAEHW/NwAQYECEMkBCw8AIABB1/7cAEGfARDJAQsPACAAQfb/3ABBwgMQyQELDwAgAEG4g90AQYYBEMkBCw8AIABBvoTdAEGfBxDJAQsPACAAQd2L3QBB4AAQyQELDwAgAEG9jN0AQd0BEMkBCw8AIABBmo7dAEGsAhDJAQsPACAAQcaQ3QBBqQEQyQELDwAgAEHvkd0AQcUBEMkBCw8AIABBtJPdAEGPBRDJAQsPACAAQcOY3QBBjAQQyQELDwAgAEHPnN0AQZIGEMkBCw8AIABB4aLdAEGYBBDJAQsPACAAQfmm3QBB3A0QyQELDwAgAEHVtN0AQY0BEMkBCw8AIABB4rXdAEH3ABDJAQsPACAAQdm23QBBrAMQyQELDwAgAEGFut0AQfEHEMkBCw8AIABB9sHdAEHUChDJAQsQACAAQcrM3QBByZMBEMkBCw4AIABBk+DeAEEkEMkBCw8AIABBt+DeAEGkChDJAQsPACAAQdvq3gBBhgYQyQELDwAgAEHh8N4AQbkUEMkBCwwAIAEgACgCABDsAgsMACAAKAIAIAEQzQ4LDAAgACgCACABEPYFCwwAIAAoAgAgARCiLwsMACABIAAoAgAQ/AILDAAgASAAKAIAEJQDCwwAIAAoAgAgARDZBQsMACAAENAaIAEQ0BoLDAAgABDQGiABEN8tCwwAIAAoAgAgARCSAwsMACAAKAIAIAEQ4AILDAAgACgCACABELQBCwwAIAAoAgAgARDhAgsMACAAKAIAIAEQ0wILDAAgASAAKAIAEMUCCwwAIAAoAgAgARDaBQsMACABIAAoAgAQ5wILDAAgACgCACABEM4OCwwAIAAoAgAgARD3BQsMACAAKAIAIAEQkAsLDAAgASAAKAIAEJcGCwwAIAEgACgCABDKAQsMACAAIAEpAhA3AwALDAAgARCPKiAAEN8tCwwAIAAoAgAgARCzMAsMACAAKAIAIAEQkwMLCgAgACABIAIQcwsMACABIAAoAgAQhgUL2AUBAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkBBByAAKAIAIgAoAgAiAkEMayIDIANBJk8bQQFrDiQAAQITFAMEBQYHCAkWChcWCwwNDhcTEw8XFxARExMTExMTFxIXCyAAKAIMQQR0IQIgACgCCCEAA0AgAkUNFyAAKAIAQQJHBEAgAEEMaiABEN8xCyAAQRBqIQAgAkEQayECDAALAAsgAEEEaiABEL4ODBULIABBCGogARCSLgwUCyAAQQRqIAEQvSwMEwsgAEE4agJAAkACQAJAAkACQAJAAkACQAJAAkACQCACQQFrDgsBAgMEBQYHCAkLCgALIABBCGogARCDMwwKCyAAQQhqIAEQpy0MCQsgASAAQQhqEOEqDAgLIABBBGogARDfMQwHCyAAQQRqIAEQviUMBgsgAEEEaiABEN8xDAULIABBBGogARDfMQwECyAAQQRqIAEQ3zEMAwsgAEEEaiABEN8xDAILIABBBGogARDfMQwBCyAAQQhqIQICQAJAIAAoAgRBAWsOAgECAAsgAiABENEjDAELIAIgARCyEwsgARDfMQwSCyAAQQhqIAEQpy0MEQsgASAAQQhqEOEqDBALIABBBGogARDfMSAAQQhqIAEQ3zEMDAsgAC0AGEEFRgRAIABBEGogARDfMQsMDAsgAEEQaiABEN8xIAAoAgRBgICAgHhGDQ0MCwsgASAAQQhqENIkDAwLIABBBGogARDfMSAAKAIIIAEQ6CMMCwsgAEEEaiABEPUZDAoLIABBCGogARCRLgwJCyAAKAIMRQ0IDAULIAEgAEEIahDpJgwHCyAAKAIEIAEQyBAMBgsgAEEEaiABEMwVDAULIABBBGogARC+JQwECyAAQQRqIAEQ3zEMAwsgAEEMaiABEN8xDAILIABBBGogARDNIgwBCyAAQQRqIAEQ6CMLCwwAIAAoAgAgARCiBQsMACAAKAIAIAEQzAQLpyUCB38FfgJAIAAoAgAhAyMAQaADayIAJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQEEHIAMoAgAiAkEMayIEIARBJk8bQQFrDiQAAQIDBAUGBwgJCgsMICANDg8QESASExQgIBUWFxgZGhscIB0gCyADKAIMQQR0IQIgAygCCCEDA0AgAkUNICADKAIAQQJHBEAgA0EMaiABEOIxCyADQRBqIQMgAkEQayECDAALAAsgA0EEaiABEGIMHgsCQAJAIAEtAFVFBEAgAEGAAjsA2AEgAygCICAAQdgBahCTMyAALQDYAQ0BCyABKAJQIQJBABCFGBogAEH8AWpBuLXjACkDACIJNwIAIABB7AFqIAk3AgAgAEEAOgCkAiAAQQA6AKcCIABBADsApQIgACACNgKgAiAAQQA2AuABIABCgICAgIABNwLYASAAQQA2ApwCIABCgICAgIABNwKUAiAAQQA6AJACIABBADYCjAIgAEKAgICAwAA3AoQCIABBsLXjACkDACIKNwL0ASAAIAo3AuQBIABB2AFqIgIgA0EIaiIHEIYCIABB1ABqIgQgAkE8EIEJGiAAQZQCahCOKyAEEOQJIABBmAFqIAk3AwAgACAKNwOQASAAQaABaiABQSBqELwLIABB4AFqIgQgCTcDACAAIAo3A9gBIAcgAhCSLiAAQdgCaiAEKQMANwMAIAAgACkD2AE3A9ACIABB6AFqIgQgCTcCACAAQfgBaiIFIAk3AgAgACAKNwLgASAAIAo3AvABIABBADoAgAIgAEEANgLYASACIAcQySYgAEH4AmogBCkCACIMNwMAIABBiANqIAUpAgAiCzcDACAAQegCaiALNwMAIAAgACkC4AEiCzcD8AIgACAAKQLwASINNwOAAyAAQdABaiAMNwMAIAAgDTcD4AIgACALNwPIASACIABB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BgAAIQYAACIGAAAjBgAAJAYAACUGAAAmBgAAJwYAACgGAAApBgAAKgYAACsGAAAbBgAAiBkQAJgZEACYGRAAmBkQAJgZEACwAhEAbQAAANMAAAAhAAAAgAMRAHAAAABwAgAAHgBBtLTAAAu1BgEAAAAsBgAAAAAAAAQAAAAEAAAALQYAAENvd0J5dGVzbmVlZGxlUGF0dGVybnNieV9pZG9yZGVydG90YWxfcGF0dGVybl9ieXRlc2Fzc2VydGlvbiBmYWlsZWQ6IHBhdHRlcm5zLmxlbigpID49IDEvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9haG8tY29yYXNpY2stMS4xLjMvc3JjL3BhY2tlZC9yYWJpbmthcnAucnMApBoQAG8AAAA9AAAACQAAAGFzc2VydGlvbiBmYWlsZWQ6IGhhc2hfbGVuID49IDEApBoQAG8AAAA/AAAACQAAAKQaEABvAAAATQAAACwAAACkGhAAbwAAAE8AAAAXAAAAQAAAAKQaEABvAAAAYAAAACsAAACkGhAAbwAAAG8AAAARAAAApBoQAG8AAABbAAAACQAAAKQaEABvAAAAjgAAACMAAACkGhAAbwAAAJcAAAAJAAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvYWhvLWNvcmFzaWNrLTEuMS4zL3NyYy91dGlsL3JlbWFwcGVyLnJzyBsQAGwAAAByAAAAEgAAAMgbEABsAAAAjAAAACQAAADIGxAAbAAAAJEAAAAgAAAAyBsQAGwAAACTAAAAHQAAAEJvcnJvd2VkT3duZWQvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9haG8tY29yYXNpY2stMS4xLjMvc3JjL3BhY2tlZC9wYXR0ZXJuLnJzAACBHBAAbQAAAF0AAAAaAAAAgRwQAG0AAABdAAAAMAAAALjVEABpAAAAhwIAACkAAABpbXBtZW1vcnlfdXNhZ2UALgYAAAwAAAAEAAAALwYAADAGAAAxBgAAYWxsb2Mvc3JjL3Jhd192ZWMucnNIHRAAFAAAABgAAAAFAEH0usAAC30BAAAAMgYAAGEgZm9ybWF0dGluZyB0cmFpdCBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCBhbiBlcnJvciB3aGVuIHRoZSB1bmRlcmx5aW5nIHN0cmVhbSBkaWQgbm90YWxsb2Mvc3JjL2ZtdC5ycwAA0h0QABAAAAB+AgAADgBB/LvAAAvyAgEAAAAzBgAAYWxsb2Mvc3JjL3NsaWNlLnJzAAAEHhAAEgAAADUCAAAyAAAAYWxsb2Mvc3JjL3N5bmMucnMAAAAoHhAAEQAAAG4BAAAyAAAAKSBzaG91bGQgYmUgPCBsZW4gKGlzIGluc2VydGlvbiBpbmRleCAoaXMgKSBzaG91bGQgYmUgPD0gbGVuIChpcyAAAABiHhAAFAAAAHYeEAAXAAAAlNoYAAEAAAByZW1vdmFsIGluZGV4IChpcyAAAKgeEAASAAAATB4QABYAAACU2hgAAQAAAGBhdGAgc3BsaXQgaW5kZXggKGlzIAAAANQeEAAVAAAAdh4QABcAAACU2hgAAQAAAGFzc2VydGlvbiBmYWlsZWQ6IHNlbGYuaXNfY2hhcl9ib3VuZGFyeShuKQAAHzEYAEsAAADMBwAAHQAAADQGAAAMAAAABAAAADUGAAA2BgAANwYAADQGAAAMAAAABAAAADUGAAA2BgAANwYAQfi+wAAL/QQBAAAAOAYAADQGAAAMAAAABAAAADkGAAA0BgAADAAAAAQAAAA6BgAAOQYAAIAfEADWBQAAOwYAANAFAADWBQAA0gUAADwGAAAoAAAABAAAANkFAAA8BgAAKAAAAAQAAADaBQAA2QUAALwfEADbBQAAPQYAAN0FAADbBQAA3gUAAGJhY2t0cmFjZSBjYXB0dXJlIGZhaWxlZC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2FueWhvdy0xLjAuOTMvc3JjL2Vycm9yLnJzABAgEABfAAAAqAMAAA4AAADwGxYAAgAAAAoKQ2F1c2VkIGJ5OoggEAAMAAAACgoAAJwgEAACAAAAc3RhY2sgYmFja3RyYWNlOlN0YWNrIGJhY2t0cmFjZToKAAAAuCAQABEAAAAAAAAAEAAAAAQAAAA+BgAAPwYAAEAGAABpbnRlcm5hbCBlcnJvcjogZW50ZXJlZCB1bnJlYWNoYWJsZSBjb2RlOiBpbnZhbGlkIE9uY2Ugc3RhdGXsIBAAPAAAAC9ydXN0Yy85MGIzNWE2MjM5YzNkOGJkYWJjNTMwYTZhMDgxNmY3ZmY4OWEwYWFmL2xpYnJhcnkvc3RkL3NyYy9zeXMvc3luYy9vbmNlL25vX3RocmVhZHMucnMAMCEQAFsAAAA2AAAAEgAAACAgICAgICAAQQYAAEIGAABDBgAARAYAAEUGAABGBgAAZmlsZW5hbWVwYXJzZXJ0cmFuc2Zvcm1kZXByZWNhdGVkVHNNb2R1bGVBc0Vycm9yc291cmNlTWFwAEGAxMAACwYBAAAARwYAQZDEwAALBgEAAABIBgBBoMTAAAsGAQAAAEkGAEGwxMAACwYBAAAASgYAQcDEwAALBgEAAABLBgBB0MTAAAsGAQAAAEwGAEHgxMAACwYBAAAASgYAQfDEwAALBgEAAABNBgBBgMXAAAsGAQAAAEoGAEGQxcAACwYBAAAATgYAQaDFwAAL8gIBAAAATwYAAHZlcmJhdGltTW9kdWxlU3ludGF4bmF0aXZlQ2xhc3NQcm9wZXJ0aWVzaW1wb3J0Tm90VXNlZEFzVmFsdWVzbm9FbXB0eUV4cG9ydGltcG9ydEV4cG9ydEFzc2lnbkNvbmZpZ3RzRW51bUlzTXV0YWJsZQAAGqEQAAEAAAAAAAAACAAAAAQAAABQBgAAUQYAAAQAAAAEAAAAUgYAAFMGAABUBgAAVQYAABABAAAEAAAAVgYAAFcGAABYBgAAZXJyb3Igc3RyaW5nIHNob3VsZCBiZSB1dGY4L2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvc3djX2Vycm9yX3JlcG9ydGVycy05LjAuMC9zcmMvaGFuZGxlci5yc38jEABtAAAAbwAAACwAAAA0BgAADAAAAAQAAABZBgAAWgYAADcGAEGcyMAAC74DAQAAADgGAABbBgAAFAAAAAQAAAClBQAAXAYAAAQAAAAEAAAAXQYAAGJpbmRpbmdfdHlwZXNjcmlwdF93YXNtL3NyYy9saWIucnMAAEQkEAAiAAAAUQAAAAoAAABJbnB1dCBpcyBub3QgYSBzdHJpbmcgb3IgVWludDhBcnJheUlucHV0IFVpbnQ4QXJyYXkgaXMgbm90IHZhbGlkIHV0Zi04dHN4AAAAviQQAAMAAAB9OBgACgAAAGludmFsaWQgbGVuZ3RoIADUJBAADwAAAOoJFgALAAAAZHVwbGljYXRlIGZpZWxkIGAAAAD0JBAAEQAAABwOGAABAAAAdW5rbm93biB2YXJpYW50IGBgLCBleHBlY3RlZCAAAAAYJRAAEQAAACklEAAMAAAAXgYAAF8GAABgBgAAYQYAAGIGAABjBgAAZAYAAGUGAABmBgAAZwYAAGgGAABGBgAAY2FsbGVkIGBPcHRpb246OnVud3JhcF90aHJvdygpYCBvbiBhIGBOb25lYCB2YWx1ZWNhbGxlZCBgUmVzdWx0Ojp1bndyYXBfdGhyb3coKWAgb24gYW4gYEVycmAgdmFsdWUAQeTLwAALQQEAAABpBgAAWjIWAGcAAAB2AQAAQgAAAHZhbGlkIGxheW91dFoyFgBnAAAAeQEAAA4AAABaMhYAZwAAAKwBAAAOAEGwzMAAC4sOAQAAAGkGAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9jb21wYWN0X3N0ci0wLjcuMS9zcmMvbGliLnJzaWR4IG11c3QgbGllIG9uIGNoYXIgYm91bmRhcnkAAJkmEAAdAAAAOCYQAGEAAACJAwAACQAAAAAAAAAEAAAABAAAAGoGAABrBgAAbAYAAGNvcmUvc3JjL251bS9kZWMyZmx0L2RlY2ltYWwucnMA6CYQAB8AAABRAAAAJwAAAOgmEAAfAAAAfQAAABMAAADoJhAAHwAAAKEAAAAgAAAA6CYQAB8AAAC4AAAAJQAAAOgmEAAfAAAA5QAAABUAAADoJhAAHwAAAO8AAAAYAAAAAAAACAEIAwgGEAkQDRASGBcYHRgkICsgMyA8IEYoUChbKGcwczCAMI44nDirOLs4zEDdQO9AAkkVSSlJPlFTUWlRgFGYWbBZyVnjYf1hGGI0alBqbWqLaqpyyXLpcgp7K3tNe3CDk4O3g9yDAowojE+Md5SflMiU8pwcBRwFHAUcBQUCBQECBQYCBQMBAgUBBQYCBQcIAQIFAwkABgIFAQkFAwECBQkHBgUGAgUECAgCCAECBQIEBAEEAAYCBQECAgAHAAMBAgUGAQADBQEFBgIFAwAFAQcFBwgBAgUBBQIFCAcICQAGAgUHBgIJAwkEBQMBAgUDCAEEBgkHAgYFBgIFAQkABwMECAYDAggBAgUJBQMGBwQDAQYEAAYCBQQHBggDBwEFCAIAAwECBQIDCAQBCAUHCQEAAQUGAgUBAQkCAAkCCAkFBQAHCAECBQUJBgAEBgQEBwcFAwkABgIFAgkIAAIDAgIDCAcGCQUDAQIFAQQJAAEBBgEBCQMIBAcGBQYCBQcEBQAFCAAFCQYJAgMIAggBAgUDBwIFAgkAAgkIBAYBCQEEAAYCBQEIBgIGBAUBBAkCAwAJBQcAAwECBQkDAQMCAgUHBAYBBQQHCAUBBQYCBQQGBQYGAQIIBwMABwcDCQIFBwgBAgUCAwIIAwAGBAMGBQMIBgkGAggJAAYCBQEBBgQBBQMCAQgCBgkDBAgBBAQFAwECBQUIAgAHBgYACQEDBAYHBAAHAgIGBQYCBQIJAQADCAMABAUGBwMDBwADBgEDAggBAgUBBAUFAQkBBQICCAMGBggFAQgABgYEAAYCBQcCBwUJBQcGAQQBCAMEAgUJAAMDAgADAQIFAwYDBwkHCAgABwAJAQcBAgkFAQYGAAEFBgIFAQgBCAkICQQAAwUEBQgFBgQHBQgDAAAHCAECBQkACQQJBAcAAQcHAgkCCAIDBwkBBQADCQAGAgUEBQQHBAcDBQAICAYEBgQBAQgJBQcFAQkFAwECBQICBwMHAwYHBQQEAwIDAgAFCQQHCAcFCQcGBQYCBQEBAwYIBggDBwcCAQYBBgACCQcDCQMHCQgIAggBAgUFBggEAwQBCAgGAAgACAABBAgGCQYICQkEAQQABgIFAggEAgEHAAkEAwAEAAQAAAcEAwQIBAQJBwAHAAMBAgUBBAIBAAgFBAcBBQIAAgAAAwcBBwQCAgQIBQMFAQUGAgUHAQAFBAIHAwUHBgABAAABCAUIBwEBAgQCBgcFBwgBAgUDBQUCBwEDBgcICAAABQAACQIJAwUFBgIBAwMHCAkABgIFAQcHBgMFBggDCQQAAAIFAAQGBAYHBwgBAAYGCAkEBQMBAgUICAgBBwgEAQkHAAABAgUCAwIDAwgJAAUDAwQEBwIGBQYC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CgAKVh3jCkYKAApmFQBvAAoAClYKhgoBBwAKABcACgAUDBRsGQAyAAoACgAK9woACYAKADsBAwEETC0BDwANAAoAaW52YWxpZCBsZW5ndGhpbnZhbGlkIHN5bWJvbG5vbi16ZXJvIHRyYWlsaW5nIGJpdHNpbnZhbGlkIHBhZGRpbmcgbGVuZ3RoIGF0IAAAAAEAAAAAAAAAgX0QAAQAAABMZW5ndGhUcmFpbGluZ1BhZGRpbmdEZWNvZGVFcnJvcnBvc2l0aW9uL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvaGFzaGJyb3duLTAuMTUuMi9zcmMvcmF3L21vZC5yc8B9EABkAAAAIwAAACgAAAAvcnVzdC9kZXBzL2hhc2hicm93bi0wLjE1LjAvc3JjL3Jhdy9tb2QucnMAADR+EAAqAAAAVAAAACgAQfj8wQALmQMBAAAAaQYAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3RyaW9tcGhlLTAuMS4xMy9zcmMvYXJjLnJzAIB+EABfAAAANQEAAA4AAACAfhAAXwAAAG4BAAAtAAAAgH4QAF8AAABvAQAADgAAAAAAAAAMAAAABAAAAHIGAABzBgAAsGcWAF4AAABvAAAAIAAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2hzdHItMS4wLjAvc3JjL2xpYi5yc25vdCB5ZXQgaW1wbGVtZW50ZWQ6IHN0YXRpYyBoYXNoAACOfxAAIAAAADR/EABaAAAA9QAAABEAAABub3QgeWV0IGltcGxlbWVudGVkOiBzdGF0aWMgYXNfc3RyAADIfxAAIgAAADR/EABaAAAACAEAABEAAAA0fxAAWgAAAA0BAAA8AEGcgMIAC+YEAQAAAHUGAACwZxYAXgAAAF4AAAAoAAAAcmV0dXJuIHRoaXMAKzYWAHAAAABNAAAALgAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRl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AHycEABqAAAASgAAACMAAABuZWdhdGl2ZSB2YWx1ZXMgYXJlIG5vbi16ZXJvL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvbnVtLWJpZ2ludC0wLjQuNi9zcmMvYmlnaW50L3NoaWZ0LnJzAAAAJJ0QAGkAAABmAAAAKAAAAAAAAAAEAAAABAAAAD4AAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9udW0tYmlnaW50LTAuNC42L3NyYy9iaWd1aW50L2FkZGl0aW9uLnJzAAAAsJ0QAG0AAAA7AAAAGgAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL251bS1iaWdpbnQtMC40LjYvc3JjL2JpZ3VpbnQvc3VidHJhY3Rpb24ucnMwnhAAcAAAADQAAAAaAAAAMJ4QAHAAAAA1AAAAGgAAAENhbm5vdCBzdWJ0cmFjdCBiIGZyb20gYSBiZWNhdXNlIGIgaXMgbGFyZ2VyIHRoYW4gYS7AnhAANAAAADCeEABwAAAARQAAAAUAAAAwnhAAcAAAAF0AAAAaAAAAMJ4QAHAAAABeAAAAGgAAAGFzc2VydGlvbiBmYWlsZWQ6IGFfaGkuaXNfZW1wdHkoKQAAADCeEABwAAAAYgAAAAUAAAAwnhAAcAAAAGUAAAAFAAAAL3J1c3RjLzkwYjM1YTYyMzljM2Q4YmRhYmM1MzBhNmEwODE2ZjdmZjg5YTBhYWYvbGlicmFyeS9jb3JlL3NyYy9zbGljZS9pdGVyLnJzAABwnxAATgAAAPEFAAAVAAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvbnVtLWludGVnZXItMC4xLjQ2L3NyYy9yb290cy5yc9CfEABkAAAAgwEAAAEAAAAAAAAABAAAAAQAAAA+AAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvb25jZV9jZWxsLTEuMTkuMC9zcmMvaW1wX3N0ZC5yc1SgEABkAAAAoQAAADYAAABUoBAAZAAAAJsAAAAJAAAAMzg7MjsAAADYoBAABQAAAHELGAABAAAAcQsYAAEAAAA0ODsyOwAAAPigEAAFAAAAcQsYAAEAAABxCxgAAQAAABtbMTIzNDU2Nzg5G1swbQAjoRAABAAAADMwMzEzMjMzMzQzNTM2MzczOTkwOTE5MjkzOTQ5NTk2OTc0MDQxNDI0MzQ0NDU0NjQ3NDkxMDAxMDExMDIxMDMxMDQxMDUxMDYxMDczODsyOzI0MDsyNDg7MjU1Mzg7MjsyNTA7MjM1OzIxNTM4OzI7MDAwOzI1NTsyNTUzODsyOzEyNzsyNTU7MjEyMzg7MjsyNDA7MjU1OzI1NTM4OzI7MjQ1OzI0NTsyMjAzODsyOzI1NTsyMjg7MTk2Mzg7MjswMDA7MDAwOzAwMDM4OzI7MjU1OzIzNTsyMDUzODsyOzAwMDswMDA7MjU1Mzg7MjsxMzg7MDQzOzIyNjM4OzI7MTY1OzA0MjswNDIzODsyOzIyMjsxODQ7MTM1Mzg7MjswOTU7MTU4OzE2MDM4OzI7MTI3OzI1NTswMDAzODsyOzIxMDsxMDU7MDMwMzg7MjsyNTU7MTI3OzA4MDM4OzI7MTAwOzE0OTsyMzczODsyOzI1NTsyNDg7MjIwMzg7MjsyMjA7MDIwOzA2MDM4OzI7MDAwOzAwMDsxMzkzODsyOzAwMDsxMzk7MTM5Mzg7MjsxODQ7MTM0OzAxMTM4OzI7MTY5OzE2OTsxNjkzODsyOzAwMDsxMDA7MDAwMzg7MjsxODk7MTgzOzEwNzM4OzI7MTM5OzAwMDsxMzkzODsyOzA4NTsxMDc7MDQ3Mzg7MjsyNTU7MTQwOzAwMDM4OzI7MTUzOzA1MDsyMDQzODsyOzEzOTswMDA7MDAwMzg7MjsyMzM7MTUwOzEyMjM4OzI7MTQzOzE4ODsxNDMzODsyOzA3MjswNjE7MTM5Mzg7MjswNDc7MDc5OzA3OTM4OzI7MDAwOzIwNjsyMDkzODsyOzE0ODswMDA7MjExMzg7MjsyNTU7MDIwOzE0NzM4OzI7MDAwOzE5MTsyNTUzODsyOzEwNTsxMDU7MTA1Mzg7MjswMzA7MTQ0OzI1NTM4OzI7MTc4OzAzNDswMzQzODsyOzI1NTsyNTA7MjQwMzg7MjswMzQ7MTM5OzAzNDM4OzI7MjU1OzAwMDsyNTUzODsyOzIyMDsyMjA7MjIwMzg7MjsyNDg7MjQ4OzI1NTM4OzI7MjU1OzIxNTswMDAzODsyOzIxODsxNjU7MDMyMzg7MjsxMjg7MTI4OzEyODM4OzI7MDAwOzEyODswMDAzODsyOzE3MzsyNTU7MDQ3Mzg7MjsyNDA7MjU1OzI0MDM4OzI7MjU1OzEwNTsxODAzODsyOzIwNTswOTI7MDkyMzg7MjswNzU7MDAwOzEzMDM4OzI7MjU1OzI1NTsyNDAzODsyOzI0MDsyMzA7MTQwMzg7MjsyMzA7MjMwOzI1MDM4OzI7MjU1OzI0MDsyNDUzODsyOzEyNDsyNTI7MDAwMzg7MjsyNTU7MjUwOzIwNTM4OzI7MTczOzIxNjsyMzAzODsyOzI0MDsxMjg7MTI4Mzg7MjsyMjQ7MjU1OzI1NTM4OzI7MjUwOzI1MDsyMTAzODsyOzIxMTsyMTE7MjExMzg7MjsxNDQ7MjM4OzE0NDM4OzI7MjU1OzE4MjsxOTMzODsyOzI1NTsxNjA7MTIyMzg7MjswMzI7MTc4OzE3MDM4OzI7MTM1OzIwNjsyNTAzODsyOzExOTsxMzY7MTUzMzg7MjsxNzY7MTk2OzIyMjM4OzI7MjU1OzI1NTsyMjQzODsyOzAwMDsyNTU7MDAwMzg7MjswNTA7MjA1OzA1MDM4OzI7MjUwOzI0MDsyMzAzODsyOzEyODswMDA7MDAwMzg7MjsxMDI7MjA1OzE3MDM4OzI7MDAwOzAwMDsyMDUzODsyOzE4NjswODU7MjExMzg7MjsxNDc7MTEyOzIxOTM4OzI7MDYwOzE3OTsxMTMzODsyOzEyMzsxMDQ7MjM4Mzg7MjswMDA7MjUwOzE1NDM4OzI7MDcyOzIwOTsyMDQzODsyOzE5OTswMjE7MTMzMzg7MjswMjU7MDI1OzExMjM4OzI7MjQ1OzI1NTsyNTAzODsyOzI1NTsyMjg7MjI1Mzg7MjsyNTU7MjI4OzE4MTM4OzI7MjU1OzIyMjsxNzMzODsyOzAwMDswMDA7MTI4Mzg7MjsyNTM7MjQ1OzIzMDM4OzI7MTI4OzEyODswMDAzODsyOzEwNzsxNDI7MDM1Mzg7MjsyNTU7MTY1OzAwMDM4OzI7MjU1OzA2OTswMDAzODsyOzIxODsxMTI7MjE0Mzg7MjsyMzg7MjMyOzE3MDM4OzI7MTUyOzI1MTsxNTIzODsyOzE3NTsyMzg7MjM4Mzg7MjsyMTk7MTEyOzE0NzM4OzI7MjU1OzIzOTsyMTMzODsyOzI1NTsyMTg7MTg1Mzg7MjsyMDU7MTMzOzA2MzM4OzI7MjU1OzE5MjsyMDMzODsyOzIyMTsxNjA7MjIxMzg7MjsxNzY7MjI0OzIzMDM4OzI7MTI4OzAwMDsxMjgzODsyOzEwMjswNTE7MTUzMzg7MjsyNTU7MDAwOzAwMDM4OzI7MTg4OzE0MzsxNDMzODsyOzA2NTsxMDU7MjI1Mzg7MjsxMzk7MDY5OzAxOTM4OzI7MjUwOzEyODsxMTQzODsyOzI0NDsxNjQ7MDk2Mzg7MjswNDY7MTM5OzA4NzM4OzI7MjU1OzI0NTsyMzgzODsyOzE2MDswODI7MDQ1Mzg7MjsxOTI7MTkyOzE5MjM4OzI7MTM1OzIwNjsyMzUzODsyOzEwNjswOTA7MjA1Mzg7MjsxMTI7MTI4OzE0NDM4OzI7MjU1OzI1MDsyNTAzODsyOzAwMDsyNTU7MTI3Mzg7MjswNzA7MTMwOzE4MDM4OzI7MjEwOzE4MDsxNDAzODsyOzAwMDsxMjg7MTI4Mzg7MjsyMTY7MTkxOzIxNjM4OzI7MjU1OzA5OTswNzEzODsyOzA2NDsyMjQ7MjA4Mzg7MjsyMzg7MTMwOzIzODM4OzI7MjQ1OzIyMjsxNzkzODsyOzI1NTsyNTU7MjU1Mzg7MjsyNDU7MjQ1OzI0NTM4OzI7MjU1OzI1NTswMDAzODsyOzE1NDsyMDU7MDUwNDg7MjsyNDA7MjQ4OzI1NTQ4OzI7MjUwOzIzNTsyMTU0ODsyOzAwMDsyNTU7MjU1NDg7MjsxMjc7MjU1OzIxMjQ4OzI7MjQwOzI1NTsyNTU0ODsyOzI0NTsyNDU7MjIwNDg7MjsyNTU7MjI4OzE5NjQ4OzI7MDAwOzAwMDswMDA0ODsyOzI1NTsyMzU7MjA1NDg7MjswMDA7MDAwOzI1NTQ4OzI7MTM4OzA0MzsyMjY0ODsyOzE2NTswNDI7MDQyNDg7MjsyMjI7MTg0OzEzNTQ4OzI7MDk1OzE1ODsxNjA0ODsyOzEyNzsyNTU7MDAwNDg7MjsyMTA7MTA1OzAzMDQ4OzI7MjU1OzEyNzswODA0ODsyOzEwMDsxNDk7MjM3NDg7MjsyNTU7MjQ4OzIyMDQ4OzI7MjIwOzAyMDswNjA0ODsyOzAwMDswMDA7MTM5NDg7MjswMDA7MTM5OzEzOTQ4OzI7MTg0OzEzNDswMTE0ODsyOzE2OTsxNjk7MTY5NDg7MjswMDA7MTAwOzAwMDQ4OzI7MTg5OzE4MzsxMDc0ODsyOzEzOTswMDA7MTM5NDg7MjswODU7MTA3OzA0NzQ4OzI7MjU1OzE0MDswMDA0ODsyOzE1MzswNTA7MjA0NDg7MjsxMzk7MDAwOzAwMDQ4OzI7MjMzOzE1MDsxMjI0ODsyOzE0MzsxODg7MTQzNDg7MjswNzI7MDYxOzEzOTQ4OzI7MDQ3OzA3OTswNzk0ODsyOzAwMDsyMDY7MjA5NDg7MjsxNDg7MDAwOzIxMTQ4OzI7MjU1OzAyMDsxNDc0ODsyOzAwMDsxOTE7MjU1NDg7MjsxMDU7MTA1OzEwNTQ4OzI7MDMwOzE0NDsyNTU0ODsyOzE3ODswMzQ7MDM0NDg7MjsyNTU7MjUwOzI0MDQ4OzI7MDM0OzEzOTswMzQ0ODsyOzI1NTswMDA7MjU1NDg7MjsyMjA7MjIwOzIyMDQ4OzI7MjQ4OzI0ODsyNTU0ODsyOzI1NTsyMTU7MDAwNDg7MjsyMTg7MTY1OzAzMjQ4OzI7MTI4OzEyODsxMjg0ODsyOzAwMDsxMjg7MDAwNDg7MjsxNzM7MjU1OzA0NzQ4OzI7MjQwOzI1NTsyNDA0ODsyOzI1NTsxMDU7MTgwNDg7MjsyMDU7MDkyOzA5MjQ4OzI7MDc1OzAwMDsxMzA0ODsyOzI1NTsyNTU7MjQwNDg7MjsyNDA7MjMwOzE0MDQ4OzI7MjMwOzIzMDsyNTA0ODsyOzI1NTsyNDA7MjQ1NDg7MjsxMjQ7MjUyOzAwMDQ4OzI7MjU1OzI1MDsyMDU0ODsyOzE3MzsyMTY7MjMwNDg7MjsyNDA7MTI4OzEyODQ4OzI7MjI0OzI1NTsyNTU0ODsyOzI1MDsyNTA7MjEwNDg7MjsyMTE7MjExOzIxMTQ4OzI7MTQ0OzIzODsxNDQ0ODsyOzI1NTsxODI7MTkzNDg7MjsyNTU7MTYwOzEyMjQ4OzI7MDMyOzE3ODsxNzA0ODsyOzEzNTsyMDY7MjUwNDg7MjsxMTk7MTM2OzE1MzQ4OzI7MTc2OzE5NjsyMjI0ODsyOzI1NTsyNTU7MjI0NDg7MjswMDA7MjU1OzAwMDQ4OzI7MDUwOzIwNTswNTA0ODsyOzI1MDsyNDA7MjMwNDg7MjsxMjg7MDAwOzAwMDQ4OzI7MTAyOzIwNTsxNzA0ODsyOzAwMDswMDA7MjA1NDg7MjsxODY7MDg1OzIxMTQ4OzI7MTQ3OzExMjsyMTk0ODsyOzA2MDsxNzk7MTEzNDg7MjsxMjM7MTA0OzIzODQ4OzI7MDAwOzI1MDsxNTQ0ODsyOzA3MjsyMDk7MjA0NDg7MjsxOTk7MDIxOzEzMzQ4OzI7MDI1OzAyNTsxMTI0ODsyOzI0NTsyNTU7MjUwNDg7MjsyNTU7MjI4OzIyNTQ4OzI7MjU1OzIyODsxODE0ODsyOzI1NTsyMjI7MTczNDg7MjswMDA7MDAwOzEyODQ4OzI7MjUzOzI0NTsyMzA0ODsyOzEyODsxMjg7MDAwNDg7MjsxMDc7MTQyOzAzNTQ4OzI7MjU1OzE2NTswMDA0ODsyOzI1NTswNjk7MDAwNDg7MjsyMTg7MTEyOzIxNDQ4OzI7MjM4OzIzMjsxNzA0ODsyOzE1MjsyNTE7MTUyNDg7MjsxNzU7MjM4OzIzODQ4OzI7MjE5OzExMjsxNDc0ODsyOzI1NTsyMzk7MjEzNDg7MjsyNTU7MjE4OzE4NTQ4OzI7MjA1OzEzMzswNjM0ODsyOzI1NTsxOTI7MjAzNDg7MjsyMjE7MTYwOzIyMTQ4OzI7MTc2OzIyNDsyMzA0ODsyOzEyODswMDA7MTI4NDg7MjsxMDI7MDUxOzE1MzQ4OzI7MjU1OzAwMDswMDA0ODsyOzE4ODsxNDM7MTQzNDg7MjswNjU7MTA1OzIyNTQ4OzI7MTM5OzA2OTswMTk0ODsyOzI1MDsxMjg7MTE0NDg7MjsyNDQ7MTY0OzA5NjQ4OzI7MDQ2OzEzOTswODc0ODsyOzI1NTsyNDU7MjM4NDg7MjsxNjA7MDgyOzA0NTQ4OzI7MTkyOzE5MjsxOTI0ODsyOzEzNTsyMDY7MjM1NDg7MjsxMDY7MDkwOzIwNTQ4OzI7MTEyOzEyODsxNDQ0ODsyOzI1NTsyNTA7MjUwNDg7MjswMDA7MjU1OzEyNzQ4OzI7MDcwOzEzMDsxODA0ODsyOzIxMDsxODA7MTQwNDg7MjswMDA7MTI4OzEyODQ4OzI7MjE2OzE5MTsyMTY0ODsyOzI1NTswOTk7MDcxNDg7MjswNjQ7MjI0OzIwODQ4OzI7MjM4OzEzMDsyMzg0ODsyOzI0NTsyMjI7MTc5NDg7MjsyNTU7MjU1OzI1NTQ4OzI7MjQ1OzI0NTsyNDU0ODsyOzI1NTsyNTU7MDAwNDg7MjsxNTQ7MjA1OzA1MDM4OzU7MDM4OzU7MTM4OzU7MjM4OzU7MzM4OzU7NDM4OzU7NTM4OzU7NjM4OzU7NzM4OzU7ODM4OzU7OTM4OzU7MTAzODs1OzExMzg7NTsxMjM4OzU7MTMzODs1OzE0Mzg7NTsxNTM4OzU7MTYzODs1OzE3Mzg7NTsxODM4OzU7MTkzODs1OzIwMzg7NTsyMTM4OzU7MjIzODs1OzIzMzg7NTsyNDM4OzU7MjUzODs1OzI2Mzg7NTsyNzM4OzU7MjgzODs1OzI5Mzg7NTszMDM4OzU7MzEzODs1OzMyMzg7NTszMzM4OzU7MzQzODs1OzM1Mzg7NTszNjM4OzU7MzczODs1OzM4Mzg7NTszOTM4OzU7NDAzODs1OzQxMzg7NTs0MjM4OzU7NDMzODs1OzQ0Mzg7NTs0NTM4OzU7NDYzODs1OzQ3Mzg7NTs0ODM4OzU7NDkzODs1OzUwMzg7NTs1MTM4OzU7NTIzODs1OzUzMzg7NTs1NDM4OzU7NTUzODs1OzU2Mzg7NTs1NzM4OzU7NTgzODs1OzU5Mzg7NTs2MDM4OzU7NjEzODs1OzYyMzg7NTs2MzM4OzU7NjQzODs1OzY1Mzg7NTs2NjM4OzU7NjczODs1OzY4Mzg7NTs2OTM4OzU7NzAzODs1OzcxMzg7NTs3MjM4OzU7NzMzODs1Ozc0Mzg7NTs3NTM4OzU7NzYzODs1Ozc3Mzg7NTs3ODM4OzU7NzkzODs1OzgwMzg7NTs4MTM4OzU7ODIzODs1OzgzMzg7NTs4NDM4OzU7ODUzODs1Ozg2Mzg7NTs4NzM4OzU7ODgzODs1Ozg5Mzg7NTs5MDM4OzU7OTEzODs1OzkyMzg7NTs5MzM4OzU7OTQzODs1Ozk1Mzg7NTs5NjM4OzU7OTczODs1Ozk4Mzg7NTs5OTM4OzU7MTAwMzg7NTsxMDEzODs1OzEwMjM4OzU7MTAzMzg7NTsxMDQzODs1OzEwNTM4OzU7MTA2Mzg7NTsxMDczODs1OzEwODM4OzU7MTA5Mzg7NTsxMTAzODs1OzExMTM4OzU7MTEyMzg7NTsxMTMzODs1OzExNDM4OzU7MTE1Mzg7NTsxMTYzODs1OzExNzM4OzU7MTE4Mzg7NTsxMTkzODs1OzEyMDM4OzU7MTIxMzg7NTsxMjIzODs1OzEyMzM4OzU7MTI0Mzg7NTsxMjUzODs1OzEyNjM4OzU7MTI3Mzg7NTsxMjgzODs1OzEyOTM4OzU7MTMwMzg7NTsxMzEzODs1OzEzMjM4OzU7MTMzMzg7NTsxMzQzODs1OzEzNTM4OzU7MTM2Mzg7NTsxMzczODs1OzEzODM4OzU7MTM5Mzg7NTsxNDAzODs1OzE0MTM4OzU7MTQyMzg7NTsxNDMzODs1OzE0NDM4OzU7MTQ1Mzg7NTsxNDYzODs1OzE0NzM4OzU7MTQ4Mzg7NTsxNDkzODs1OzE1MDM4OzU7MTUxMzg7NTsxNTIzODs1OzE1MzM4OzU7MTU0Mzg7NTsxNTUzODs1OzE1NjM4OzU7MTU3Mzg7NTsxNTgzODs1OzE1OTM4OzU7MTYwMzg7NTsxNjEzODs1OzE2MjM4OzU7MTYzMzg7NTsxNjQzODs1OzE2NTM4OzU7MTY2Mzg7NTsxNjczODs1OzE2ODM4OzU7MTY5Mzg7NTsxNzAzODs1OzE3MTM4OzU7MTcyMzg7NTsxNzMzODs1OzE3NDM4OzU7MTc1Mzg7NTsxNzYzODs1OzE3NzM4OzU7MTc4Mzg7NTsxNzkzODs1OzE4MDM4OzU7MTgxMzg7NTsxODIzODs1OzE4MzM4OzU7MTg0Mzg7NTsxODUzODs1OzE4NjM4OzU7MTg3Mzg7NTsxODgzODs1OzE4OTM4OzU7MTkwMzg7NTsxOTEzODs1OzE5MjM4OzU7MTkzMzg7NTsxOTQzODs1OzE5NTM4OzU7MTk2Mzg7NTsxOTczODs1OzE5ODM4OzU7MTk5Mzg7NTsyMDAzODs1OzIwMTM4OzU7MjAyMzg7NTsyMDMzODs1OzIwNDM4OzU7MjA1Mzg7NTsyMDYzODs1OzIwNzM4OzU7MjA4Mzg7NTsyMDkzODs1OzIxMDM4OzU7MjExMzg7NTsyMTIzODs1OzIxMzM4OzU7MjE0Mzg7NTsyMTUzODs1OzIxNjM4OzU7MjE3Mzg7NTsyMTgzODs1OzIxOTM4OzU7MjIwMzg7NTsyMjEzODs1OzIyMjM4OzU7MjIzMzg7NTsyMjQzODs1OzIyNTM4OzU7MjI2Mzg7NTsyMjczODs1OzIyODM4OzU7MjI5Mzg7NTsyMzAzODs1OzIzMTM4OzU7MjMyMzg7NTsyMzMzODs1OzIzNDM4OzU7MjM1Mzg7NTsyMzYzODs1OzIzNzM4OzU7MjM4Mzg7NTsyMzkzODs1OzI0MDM4OzU7MjQxMzg7NTsyNDIzODs1OzI0MzM4OzU7MjQ0Mzg7NTsyNDUzODs1OzI0NjM4OzU7MjQ3Mzg7NTsyNDgzODs1OzI0OTM4OzU7MjUwMzg7NTsyNTEzODs1OzI1MjM4OzU7MjUzMzg7NTsyNTQzODs1OzI1NTQ4OzU7MDQ4OzU7MTQ4OzU7MjQ4OzU7MzQ4OzU7NDQ4OzU7NTQ4OzU7NjQ4OzU7NzQ4OzU7ODQ4OzU7OTQ4OzU7MTA0ODs1OzExNDg7NTsxMjQ4OzU7MTM0ODs1OzE0NDg7NTsxNTQ4OzU7MTY0ODs1OzE3NDg7NTsxODQ4OzU7MTk0ODs1OzIwNDg7NTsyMTQ4OzU7MjI0ODs1OzIzNDg7NTsyNDQ4OzU7MjU0ODs1OzI2NDg7NTsyNzQ4OzU7Mjg0ODs1OzI5NDg7NTszMDQ4OzU7MzE0ODs1OzMyNDg7NTszMzQ4OzU7MzQ0ODs1OzM1NDg7NTszNjQ4OzU7Mzc0ODs1OzM4NDg7NTszOTQ4OzU7NDA0ODs1OzQxNDg7NTs0MjQ4OzU7NDM0ODs1OzQ0NDg7NTs0NTQ4OzU7NDY0ODs1OzQ3NDg7NTs0ODQ4OzU7NDk0ODs1OzUwNDg7NTs1MTQ4OzU7NTI0ODs1OzUzNDg7NTs1NDQ4OzU7NTU0ODs1OzU2NDg7NTs1NzQ4OzU7NTg0ODs1OzU5NDg7NTs2MDQ4OzU7NjE0ODs1OzYyNDg7NTs2MzQ4OzU7NjQ0ODs1OzY1NDg7NTs2NjQ4OzU7Njc0ODs1OzY4NDg7NTs2OTQ4OzU7NzA0ODs1OzcxNDg7NTs3MjQ4OzU7NzM0ODs1Ozc0NDg7NTs3NTQ4OzU7NzY0ODs1Ozc3NDg7NTs3ODQ4OzU7Nzk0ODs1OzgwNDg7NTs4MTQ4OzU7ODI0ODs1OzgzNDg7NTs4NDQ4OzU7ODU0ODs1Ozg2NDg7NTs4NzQ4OzU7ODg0ODs1Ozg5NDg7NTs5MDQ4OzU7OTE0ODs1OzkyNDg7NTs5MzQ4OzU7OTQ0ODs1Ozk1NDg7NTs5NjQ4OzU7OTc0ODs1Ozk4NDg7NTs5OTQ4OzU7MTAwNDg7NTsxMDE0ODs1OzEwMjQ4OzU7MTAzNDg7NTsxMDQ0ODs1OzEwNTQ4OzU7MTA2NDg7NTsxMDc0ODs1OzEwODQ4OzU7MTA5NDg7NTsxMTA0ODs1OzExMTQ4OzU7MTEyNDg7NTsxMTM0ODs1OzExNDQ4OzU7MTE1NDg7NTsxMTY0ODs1OzExNzQ4OzU7MTE4NDg7NTsxMTk0ODs1OzEyMDQ4OzU7MTIxNDg7NTsxMjI0ODs1OzEyMzQ4OzU7MTI0NDg7NTsxMjU0ODs1OzEyNjQ4OzU7MTI3NDg7NTsxMjg0ODs1OzEyOTQ4OzU7MTMwNDg7NTsxMzE0ODs1OzEzMjQ4OzU7MTMzNDg7NTsxMzQ0ODs1OzEzNTQ4OzU7MTM2NDg7NTsxMzc0ODs1OzEzODQ4OzU7MTM5NDg7NTsxNDA0ODs1OzE0MTQ4OzU7MTQyNDg7NTsxNDM0ODs1OzE0NDQ4OzU7MTQ1NDg7NTsxNDY0ODs1OzE0NzQ4OzU7MTQ4NDg7NTsxNDk0ODs1OzE1MDQ4OzU7MTUxNDg7NTsxNTI0ODs1OzE1MzQ4OzU7MTU0NDg7NTsxNTU0ODs1OzE1NjQ4OzU7MTU3NDg7NTsxNTg0ODs1OzE1OTQ4OzU7MTYwNDg7NTsxNjE0ODs1OzE2MjQ4OzU7MTYzNDg7NTsxNjQ0ODs1OzE2NTQ4OzU7MTY2NDg7NTsxNjc0ODs1OzE2ODQ4OzU7MTY5NDg7NTsxNzA0ODs1OzE3MTQ4OzU7MTcyNDg7NTsxNzM0ODs1OzE3NDQ4OzU7MTc1NDg7NTsxNzY0ODs1OzE3NzQ4OzU7MTc4NDg7NTsxNzk0ODs1OzE4MDQ4OzU7MTgxNDg7NTsxODI0ODs1OzE4MzQ4OzU7MTg0NDg7NTsxODU0ODs1OzE4NjQ4OzU7MTg3NDg7NTsxODg0ODs1OzE4OTQ4OzU7MTkwNDg7NTsxOTE0ODs1OzE5MjQ4OzU7MTkzNDg7NTsxOTQ0ODs1OzE5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eC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9haG8tY29yYXNpY2stMS4xLjMvc3JjL3V0aWwvc2VhcmNoLnJzAAAQ1RAAagAAAE4BAAAJAAAAaW52YWxpZCBtYXRjaCBzcGFuAACM1RAAEgAAABDVEABqAAAAWwMAAAkAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9haG8tY29yYXNpY2stMS4xLjMvc3JjL3BhY2tlZC9hcGkucnMAAAC41RAAaQAAABkCAAAcAAAAuNUQAGkAAAAfAgAAMQAAAAkHAAAEAAAABAAAAAoHAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yZWdleC1hdXRvbWF0YS0wLjQuNy9zcmMvdXRpbC9wcmVmaWx0ZXIvYnl0ZXNldC5ycwBU1hAAdwAAACMAAAARAAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmVnZXgtYXV0b21hdGEtMC40Ljcvc3JjL3V0aWwvcHJlZmlsdGVyL21lbWNoci5ycwAA3NYQAHYAAAAnAAAALQAAANzWEAB2AAAAVQAAABYAAADc1hAAdgAAAFYAAAAWAAAA3NYQAHYAAABkAAAANgAAANzWEAB2AAAAkgAAABYAAADc1hAAdgAAAJMAAAAWAAAA3NYQAHYAAACUAAAAFgAAANzWEAB2AAAAogAAAD4AAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yZWdleC1hdXRvbWF0YS0wLjQuNy9zcmMvdXRpbC9wcmVmaWx0ZXIvbWVtbWVtLnJzAADU1xAAdgAAACsAAAAnAAAA1NcQAHYAAAA7AAAAGAAAAGFoby1jb3Jhc2ljayBERkEgc2hvdWxkIG5ldmVyIGZhaWwvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yZWdleC1hdXRvbWF0YS0wLjQuNy9zcmMvdXRpbC9wcmVmaWx0ZXIvdGVkZHkucnMAjtgQAHUAAABxAAAAEgBBnLLDAAv/CwEAAAALBwAAAAAAAAgAAAAEAAAADAcAAAAAAAAEAAAABAAAAA0HAAAAAAAAAQAAAAEAAAB6AAAAAAAAAAQAAAAEAAAAbgAAAG1heGltdW1fbGVubG9va19zZXRsb29rX3NldF9wcmVmaXhsb29rX3NldF9zdWZmaXhsb29rX3NldF9wcmVmaXhfYW55bG9va19zZXRfc3VmZml4X2FueXV0ZjhleHBsaWNpdF9jYXB0dXJlc19sZW5zdGF0aWNfZXhwbGljaXRfY2FwdHVyZXNfbGVubGl0ZXJhbGFsdGVybmF0aW9uX2xpdGVyYWwAAHQEEQALAAAAZNkQAAsAAABv2RAACAAAAHfZEAAPAAAAhtkQAA8AAACV2RAAEwAAAKjZEAATAAAAu9kQAAQAAAC/2RAAFQAAANTZEAAcAAAA8NkQAAcAAAD32RAAEwAAAFByb3BlcnRpZXNJSW52YWxpZElucHV0QW5jaG9yZWRJbnZhbGlkSW5wdXRVbmFuY2hvcmVkVW5zdXBwb3J0ZWRTdHJlYW1VbnN1cHBvcnRlZE92ZXJsYXBwaW5nVW5zdXBwb3J0ZWRFbXB0eWVycm9yIGJ1aWxkaW5nIE5GQWludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGU6IGZvdW5kIGltcG9zc2libGUgZXJyb3IgaW4gbWV0YSBlbmdpbmU6IADq2hAAUQAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3JlZ2V4LWF1dG9tYXRhLTAuNC43L3NyYy9tZXRhL2Vycm9yLnJzAETbEABrAAAA7QAAABEAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yZWdleC1hdXRvbWF0YS0wLjQuNy9zcmMvbmZhL3Rob21wc29uL3JhbmdlX3RyaWUucnPA2xAAeAAAAPoAAAApAAAAwNsQAHgAAAD8AAAAKwAAAMDbEAB4AAAASwEAADsAAABhc3NlcnRpb24gZmFpbGVkOiAhcmFuZ2VzLmlzX2VtcHR5KCnA2xAAeAAAADEBAAANAAAAdG9vIG1hbnkgc2VxdWVuY2VzIGFkZGVkIHRvIHJhbmdlIHRyaWUAAJzcEAAmAAAAwNsQAHgAAAC0AQAAEQAAAMDbEAB4AAAA4AEAADcAAADA2xAAeAAAABkCAAAsAAAAwNsQAHgAAAAeAgAAFQAAAMDbEAB4AAAAIwIAABkAAADA2xAAeAAAAEkCAAAaAAAAYXNzZXJ0aW9uIGZhaWxlZDogbGVuID4gMAAAAMDbEAB4AAAAhgIAAAkAAABhc3NlcnRpb24gZmFpbGVkOiBsZW4gPD0gNAAAwNsQAHgAAACHAgAACQAAAMDbEAB4AAAApwIAABUAAADA2xAAeAAAAEUDAAANAAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmVnZXgtYXV0b21hdGEtMC40Ljcvc3JjL3V0aWwvYWxwaGFiZXQucnNFT0lCeXRlQ2xhc3NlcygAAACU2hgAAQAAACA9PiBbAAAAAQAAAAAAAAAs3hAABQAAAAEAAAAAAAAAvD0YAAEAAABCeXRlQ2xhc3Nlcyh7c2luZ2xldG9uc30pAAAApN0QAG4AAAAaAgAALgAAAKTdEABuAAAANgIAADQAAACk3RAAbgAAANwCAAAuAAAAU3RhcnRCeXRlTWFwe05vbldvcmRCeXRlV29yZEJ5dGVUZXh0TGluZUxGTGluZUNSQ3VzdG9tTGluZVRlcm1pbmF0b3JRdWl0Ynl0ZUdhdmVVcEhheXN0YWNrVG9vTG9uZ2xlblVuc3VwcG9ydGVkQW5jaG9yZWRtb2RlAEGkvsMAC9kjAQAAAAsHAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yZWdleC1hdXRvbWF0YS0wLjQuNy9zcmMvbmZhL3Rob21wc29uL2NvbXBpbGVyLnJzAAAs3xAAdgAAALUDAAAWAAAALN8QAHYAAAC2AwAAFgAAACzf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AACU2hgAAQAAAGRlbnNlKCA9PiAAAAEAAAAAAAAA3uYQAAQAAAB1bmlvbigAAPTmEAAGAAAAlNoYAAEAAABiaW5hcnktdW5pb24oAAAADOcQAA0AAADMPxgAAgAAAJTaGAABAAAAY2FwdHVyZShwaWQ9LCBncm91cD0sIHNsb3Q9KSA9PiA05xAADAAAAEDnEAAIAAAASOcQAAcAAABP5xAABQAAAEZBSUxNQVRDSCgAAHjnEAAGAAAAlNoYAAEAAAABAAAAAAAAALw9GAABAAAA3uYQAAQAAABhc3NlcnRpb24gZmFpbGVkOiBzdGFjay5pc19lbXB0eSgpL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmVnZXgtYXV0b21hdGEtMC40Ljcvc3JjL3V0aWwvZGV0ZXJtaW5pemUvbW9kLnJzAMrnEAB1AAAAeAEAAAUAAABTbWFsbEluZGV4UGF0dGVybklEY2Fubm90IGNyZWF0ZSBpdGVyYXRvciBmb3IgUGF0dGVybklEIHdoZW4gbnVtYmVyIG9mIGVsZW1lbnRzIGV4Y2VlZCAAY+gQAEQAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yZWdleC1hdXRvbWF0YS0wLjQuNy9zcmMvdXRpbC9wcmltaXRpdmVzLnJzsOgQAHAAAADxAgAAAQAAAFBhdHRlcm5JREVycm9yU3RhdGVJRAAAALDoEABwAAAA8gIAAAEAAABTdGF0ZUlERXJyb3IAAAAABAAAAAQAAAAWBwAAAAAAAAgAAAAEAAAAFwcAAAAAAAAEAAAABAAAABgHAABQcm9wZXJ0aWVzKSBhcmUgbm90IHN1cHBvcnRlZCBvciBlbmFibGVkGQcAAAgAAAAEAAAAGgcAABsHAAAbBwAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmVnZXgtYXV0b21hdGEtMC40Ljcvc3JjL21ldGEvcmV2ZXJzZV9pbm5lci5ycwDU6RAAcwAAAEsAAAAaAAAAYXNzZXJ0aW9uIGZhaWxlZDogbS5pc19lbXB0eSgpAADhCxgAagAAAKUCAAAJAAAA4QsYAGoAAACmAgAAQAAAAFBhdHRlcm5TZXQgc2hvdWxkIGhhdmUgc3VmZmljaWVudCBjYXBhY2l0eQAA9AwYAGwAAADLBAAADgAAAHF1aXQgc2VhcmNoIGFmdGVyIG9ic2VydmluZyBieXRlICBhdCBvZmZzZXQg1OoQACEAAAD16hAACwAAAGdhdmUgdXAgc2VhcmNoaW5nIGF0IG9mZnNldCAQ6xAAHAAAAGhheXN0YWNrIG9mIGxlbmd0aCAgaXMgdG9vIGxvbmcANOsQABMAAABH6xAADAAAAHVuYW5jaG9yZWQgc2VhcmNoZXMgYXJlIG5vdCBzdXBwb3J0ZWQgb3IgZW5hYmxlZGFuY2hvcmVkIHNlYXJjaGVzIGFyZSBub3Qgc3VwcG9ydGVkIG9yIGVuYWJsZWRhbmNob3JlZCBzZWFyY2hlcyBmb3IgYSBzcGVjaWZpYyBwYXR0ZXJuICjC6xAAKgAAAJ7pEAAeAAAAUGF0dGVyblNldEluc2VydEVycm9yY2FwYWNpdHlOb1llc1BhdHRlcm5BbGwAAAAACAAAAAgAAAAIBwAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmVnZXgtYXV0b21hdGEtMC40Ljcvc3JjL2RmYS9yZW1hcHBlci5ycwAAADjsEABtAAAAbgAAABIAAAA47BAAbQAAAI0AAAAgAAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmVnZXgtYXV0b21hdGEtMC40Ljcvc3JjL25mYS90aG9tcHNvbi9idWlsZGVyLnJzbXVzdCBjYWxsICdmaW5pc2hfcGF0dGVybicgZmlyc3QAAAA97RAAIAAAAMjsEAB1AAAAnwEAAAkAAADI7BAAdQAAADICAAAYAAAAyOwQAHUAAAA7AgAALwAAAMjsEAB1AAAAPgIAACQAAADI7BAAdQAAAD4CAAASAAAAyOwQAHUAAABIAgAALwAAAMjsEAB1AAAASQIAABYA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b25nZXN0AOD4EABrAAAAxwQAAB4AAADg+BAAawAAAOkFAAAeAAAAbm8gcXVpdCBpbiBzdGFydCB3aXRob3V0IGxvb2stYmVoaW5k4PgQAGsAAABFBgAAFgAAAGFzc2VydGlvbiBmYWlsZWQ6IGlkLmlzX21hdGNoKCkA4PgQAGsAAAC1BgAACQAAAG5vIGluLXByb2dyZXNzIHNlYXJjaCB0byB1cGRhdGUA4PgQAGsAAAC3BwAAJAAAAG5vIGluLXByb2dyZXNzIHNlYXJjaCB0byBmaW5pc2gA4PgQAGsAAADDBwAAIgAAAOD4EABrAAAAjgoAAB0AAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yZWdleC1hdXRvbWF0YS0wLjQuNy9zcmMvaHlicmlkL3NlYXJjaC5ycwAA3PUQAG4AAABZAAAAKQAAAGludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGU6IHNpZCBiZWluZyB1bmtub3duIGlzIGEgYnVnXPYQAEQAAADc9RAAbgAAAB0BAAARAAAA3PUQAG4AAAAaAQAALQAAANz1EABuAAAAVwEAACkAAADc9RAAbgAAAK0BAAARAAAA3PUQAG4AAACqAQAALQAAANz1EABuAAAA+wEAACUAAADc9RAAbgAAACICAAARAAAA3PUQAG4AAAAdAgAAFQAAANz1EABuAAAA4gIAABQAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yZWdleC1hdXRvbWF0YS0wLjQuNy9zcmMvbWV0YS9saW1pdGVkLnJzAAAAOPcQAG0AAACOAAAAJQAAADj3EABtAAAA6AAAABQAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yZWdleC1hdXRvbWF0YS0wLjQuNy9zcmMvbWV0YS9zdG9wYXQucnPI9xAAbAAAAG4AAAAlAAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmVnZXgtYXV0b21hdGEtMC40Ljcvc3JjL3V0aWwvZW1wdHkucnMARPgQAGsAAAD5AAAAOgBByPHDAAvlCQEAAAAeBwAAAAAAAAgAAAAIAAAAHwcAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3JlZ2V4LWF1dG9tYXRhLTAuNC43L3NyYy9oeWJyaWQvZGZhLnJzAOD4EABrAAAAUwgAAB8AAADg+BAAawAAABYJAAA6AAAAYWRkaW5nIG9uZSBzdGF0ZSBhZnRlciBjYWNoZSBjbGVhciBtdXN0IHdvcmvg+BAAawAAALwJAAASAAAAY2Fubm90IHNhdmUgc2VudGluZWwgc3RhdGUAAKj5EAAaAAAA4PgQAGsAAACpCQAADQAAAOD4EABrAAAA5gkAAEAAAADg+BAAawAAAOcJAABHAAAA4PgQAGsAAADoCQAARwAAAOD4EABrAAAA6QkAAAkAAADg+BAAawAAAOoJAAAJAAAA4PgQAGsAAADrCQAACQAAAHN0YXRlIHNhdmVyIGRvZXMgbm90IGhhdmUgc2F2ZWQgc3RhdGUgSUTg+BAAawAAABQKAAAOAAAAaW52YWxpZCAnZnJvbScgaWQ6IAB0+hAAEwAAAOD4EABrAAAAKQoAAAkAAABpbnZhbGlkICd0bycgaWQ6IAAAAKD6EAARAAAA4PgQAGsAAAAqCgAACQAAAOD4EABrAAAALQoAABkAAABhc3NlcnRpb24gZmFpbGVkOiBzZWxmLmFzX3JlZigpLmlzX3ZhbGlkKGlkKeD4EABrAAAAOwoAAAkAAABhdHRlbXB0ZWQgdG8gc2VhcmNoIGZvciBhIHNwZWNpZmljIHBhdHRlcm4gd2l0aG91dCBlbmFibGluZyBzdGFydHNfZm9yX2VhY2hfcGF0dGVybgAY+xAAUwAAAOD4EABrAAAAQQoAABEAAADg+BAAawAAAEoKAAAaAAAA4PgQAGsAAACWCgAAGwAAAOD4EABrAAAAsgoAADMAAADg+BAAawAAALsKAAAzAAAAY2Fubm90IGJ1aWxkIGxhenkgREZBcyBmb3IgcmVnZXhlcyB3aXRoIFVuaWNvZGUgd29yZCBib3VuZGFyaWVzOyBzd2l0Y2ggdG8gQVNDSUkgd29yZCBib3VuZGFyaWVzLCBvciBoZXVyaXN0aWNhbGx5IGVuYWJsZSBVbmljb2RlIHdvcmQgYm91bmRhcmllcyBvciB1c2UgYSBkaWZmZXJlbnQgcmVnZXggZW5naW5lL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmVnZXgtYXV0b21hdGEtMC40Ljcvc3JjL21ldGEvbGl0ZXJhbC5ycwAAdfwQAG0AAAAeAAAADQAAAGludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGU6IGV4cGVjdGVkIGxpdGVyYWwsIGdvdCD0/BAAQAAAAHX8EABtAAAAOAAAAB4AAABpbnRlcm5hbCBlcnJvcjogZW50ZXJlZCB1bnJlYWNoYWJsZSBjb2RlOiBleHBlY3RlZCBsaXRlcmFsIG9yIGNvbmNhdCwgZ290IAAATP0QAEoAAAB1/BAAbQAAADwAAAASAEHQ+8MAC/UbDwcAAFgAAAAIAAAAIAcAAPsGAAAEAAAABAAAAIcAAAAAAAAABAAAAAQAAABuAAAAAAAAAAABAAABAAAAIQcAAAAAAAAAAQAAAQAAAM0AAAAAAAAAIAAAAAgAAAARBwAAc3RyaWRlMnN0YXJ0X21hcGNsYXNzZXNxdWl0c2V0Y2FjaGVfY2FwYWNpdHnfEREABgAAAOUREQADAAAAMP4QAAcAAAA3/hAACQAAAED+EAAHAAAAR/4QAAcAAABO/hAADgAAAAAAAAABAAAAAQAAANQAAAASBwAAEAAAAAQAAADCAAAAAAAAAAEAAAABAAAAEwcAAAAAAAAoAAAACAAAABQHAAAAAAAACAAAAAQAAAAMBwAAAAAAAAgAAAAEAAAAFQcAAAAAAAAEAAAABAAAACIHAABzdGFydHNfZm9yX2VhY2hfcGF0dGVybmJ5dGVfY2xhc3Nlc3VuaWNvZGVfd29yZF9ib3VuZGFyeXNwZWNpYWxpemVfc3RhcnRfc3RhdGVzc2tpcF9jYWNoZV9jYXBhY2l0eV9jaGVja21pbmltdW1fY2FjaGVfY2xlYXJfY291bnRtaW5p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AAAA+wEAAB0AAACACREAbgAAAB8DAAAdAAAAgAkRAG4AAAAsBAAADQAAAIAJEQBuAAAAtAQAAB0AAACACREAbgAAAEQFAAANAAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmVnZXgtYXV0b21hdGEtMC40Ljcvc3JjL25mYS90aG9tcHNvbi9tYXAucnMAAABgChEAcQAAAJYAAAAJAAAAYAoRAHEAAACfAAAAHgAAAGAKEQBxAAAAtgAAABEAAABgChEAcQAAAAgBAAAJAAAAYAoRAHEAAAAUAQAAHgAAAGAKEQBxAAAAJQEAABEAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yZWdleC1hdXRvbWF0YS0wLjQuNy9zcmMvbmZhL3Rob21wc29uL25mYS5ycwAAADQLEQBxAAAAeQIAABcAAAA0CxEAcQAAAIMHAAAUAEHUl8QAC90HAgAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3JlZ2V4LWF1dG9tYXRhLTAuNC43L3NyYy9uZmEvdGhvbXBzb24vcGlrZXZtLnJz2AsRAHQAAACFBAAACgAAAGJ5dGUgc2xpY2UgbGVuZ3RocyBtdXN0IGJlIGxlc3MgdGhhbiB1c2l6ZSBNQVgAAFwMEQAuAAAA2AsRAHQAAADYBAAACQAAANgLEQB0AAAAhwUAAAkAAADYCxEAdAAAAMwFAAATAAAA2AsRAHQAAABcBgAAHwAAANgLEQB0AAAAzwYAAEYAAADYCxEAdAAAAJwGAAA0AAAA2AsRAHQAAAAwCAAALgAAAHNsb3QgdGFibGUgbGVuZ3RoIGRvZXNuJ3Qgb3ZlcmZsb3cAANgLEQB0AAAAPQgAAA4AAADYCxEAdAAAAGUIAAAYAAAA2AsRAHQAAABuCAAAGAAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3Jl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v53Cqr2ioZbBjomrsLmnunCvwLycjI97hYCTipJy35f52O7s/ePa5veHtPHp9vTni/Xz++vJxPDWmLbNtX8b1NPS1eTFqZ+DrGlQYmBhUc+RdHOQgpl5a4RtbnxvUmx2jXGBd32ldVxqU0hjXUFPpu2jx77h0cvG2dvO6vie7/////////////////////////////////////////////////////////////////////////////////////90cmllZCB0byB1bndyYXAgZXhwciBmcm9tIEhpckZyYW1lLCBnb3Q6IAAAAKwgEQApAAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmVnZXgtc3ludGF4LTAuOC40L3NyYy9oaXIvdHJhbnNsYXRlLnJz4CARAGwAAAABAQAAEgAAAHRyaWVkIHRvIHVud3JhcCBVbmljb2RlIGNsYXNzIGZyb20gSGlyRnJhbWUsIGdvdDogAABcIREAMgAAAOAgEQBsAAAACgEAABIAAAB0cmllZCB0byB1bndyYXAgYnl0ZSBjbGFzcyBmcm9tIEhpckZyYW1lLCBnb3Q6IACoIREALwAAAOAgEQBsAAAAFwEAABIAAAB0cmllZCB0byB1bndyYXAgcmVwZXRpdGlvbiBmcm9tIEhpckZyYW1lLCBnb3Q6IADwIREALwAAAOAgEQBsAAAAJQEAABEAAAB0cmllZCB0byB1bndyYXAgZ3JvdXAgZnJvbSBIaXJGcmFtZSwgZ290OiAAADgiEQAqAAAA4CARAGwAAAA0AQAAEQAAAHRyaWVkIHRvIHVud3JhcCBhbHQgcGlwZSBmcm9tIEhpckZyYW1lLCBnb3Q6IAAAAHwiEQAtAAAA4CARAGwAAAA/AQAAEQAAAOAgEQBsAAAATgEAACcAAADgIBEAbAAAAE8BAAAXAAAA4CARAGwAAABOAQAACQAAAOAgEQBsAAAArAEAAC4AAADgIBEAbAAAAKMBAAAuAAAA4CARAGwAAAC3AQAAJwAAAOAgEQBsAAAAuAEAABwAAADgIBEAbAAAALwBAAAnAAAA4CARAGwAAAC9AQAALAAAAOAgEQBsAAAAzgEAACAAAADgIBEAbAAAAP4BAAAuAAAA4CARAGwAAAD6AQAALgAAAOAgEQBsAAAACgIAAC4AAADgIBEAbAAAAAYCAAAuAAAA4CARAGwAAAAZAgAALgAAAOAgEQBsAAAAFAIAAC4AAADgIBEAbAAAACACAAAqAAAA4CARAGwAAAAsAgAALgAAAOAgEQBsAAAAJwIAAC4AAADgIBEAbAAAAD4CAAAvAAAA4CARAGwAAABFAgAALwAAAOAgEQBsAAAAMwIAAC8AAADgIBEAbAAAADoCAAAvAAAA4CARAGwAAACMAgAAJgAAAOAgEQBsAAAAjQIAACYAAADgIBEAbAAAAI4CAAAmAAAA4CARAGwAAABzAgAAJgAAAOAgEQBsAAAAdAIAACYAAADgIBEAbAAAAHUCAAAmAAAA4CARAGwAAAC4AgAAHAAAAOAgEQBsAAAAwwIAACwAAADgIBEAbAAAANECAAAsAAAA4CARAGwAAADbAgAAHAAAAGludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGU6IGV4cGVjdGVkIGV4cHIgb3IgY29uY2F0LCBnb3QgVW5pY29kZSBjbGFzc9QkEQBUAAAA4CARAGwAAADpAgAAEQAAAGludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGU6IGV4cGVjdGVkIGV4cHIgb3IgY29uY2F0LCBnb3QgYnl0ZSBjbGFzcwAAAEAlEQBRAAAA4CARAGwAAADsAgAAEQAAAGludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGU6IGV4cGVjdGVkIGV4cHIgb3IgY29uY2F0LCBnb3QgcmVwZXRpdGlvbgAAAKwlEQBRAAAA4CARAGwAAADvAgAAEQAAAGludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGU6IGV4cGVjdGVkIGV4cHIgb3IgY29uY2F0LCBnb3QgZ3JvdXAYJhEATAAAAOAgEQBsAAAA8gIAABEAAABpbnRlcm5hbCBlcnJvcjogZW50ZXJlZCB1bnJlYWNoYWJsZSBjb2RlOiBleHBlY3RlZCBleHByIG9yIGNvbmNhdCwgZ290IGFsdCBtYXJrZXIAAAB8JhEAUQAAAOAgEQBsAAAA9QIAABEAAABpbnRlcm5hbCBlcnJvcjogZW50ZXJlZCB1bnJlYWNoYWJsZSBjb2RlOiBleHBlY3RlZCBleHByIG9yIGNvbmNhdCwgZ290IGFsdCBicmFuY2ggbWFya2Vy6CYRAFgAAADgIBEAbAAAAPgCAAARAAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZTogZXhwZWN0ZWQgZXhwciBvciBhbHQsIGdvdCBVbmljb2RlIGNsYXNzAAAAWCcRAFEAAADgIBEAbAAAAAgDAAARAAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZTogZXhwZWN0ZWQgZXhwciBvciBhbHQsIGdvdCBieXRlIGNsYXNzAADEJxEATgAAAOAgEQBsAAAACwMAABEAAABpbnRlcm5hbCBlcnJvcjogZW50ZXJlZCB1bnJlYWNoYWJsZSBjb2RlOiBleHBlY3RlZCBleHByIG9yIGFsdCwgZ290IHJlcGV0aXRpb24AACwoEQBOAAAA4CARAGwAAAAOAwAAEQAAAGludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGU6IGV4cGVjdGVkIGV4cHIgb3IgYWx0LCBnb3QgZ3JvdXAAAACUKBEASQAAAOAgEQBsAAAAEQMAABEAAABpbnRlcm5hbCBlcnJvcjogZW50ZXJlZCB1bnJlYWNoYWJsZSBjb2RlOiBleHBlY3RlZCBleHByIG9yIGFsdCwgZ290IGNvbmNhdCBtYXJrZXIAAAD4KBEAUQAAAOAgEQBsAAAAFAMAABEAAABpbnRlcm5hbCBlcnJvcjogZW50ZXJlZCB1bnJlYWNoYWJsZSBjb2RlOiBleHBlY3RlZCBleHByIG9yIGFsdCwgZ290IGFsdCBicmFuY2ggbWFya2VyAAAAZCkRAFUAAADgIBEAbAAAABcDAAARAAAAYXNzZXJ0aW9uIGZhaWxlZDogc2VsZi5mbGFncygpLnVuaWNvZGUoKeAgEQBsAAAAQwQAAAkAAAAFDGFzc2VydGlvbiBmYWlsZWQ6ICFzZWxmLmZsYWdzKCkudW5pY29kZSgpAOAgEQBsAAAAWQQAAAkAAAAwOUFaYXpBWmF6AH8JCSAgAB9/fzA5IX5heiB+IS86QFtge34JCQoKCwsMDA0NICBBWjA5QVpfX2F6MDlBRmFmYQAAAGIAAABjAAAAZQAAAGYAAABnAAAAaAAAAGkAAABqAAAAawAAACohAABsAAAAbQAAAG4AAABvAAAAcAAAAHEAAAByAAAAcwAAAH8BAAB0AAAAdQAAAHYAAAB3AAAAeAAAAHkAAAB6AAAAQQAAAEIAAABDAAAARQAAAEYAAABHAAAASAAAAEkAAABKAAAASwAAACohAABMAAAATQAAAE4AAABPAAAAUAAAAFEAAABSAAAAUwAAAH8BAABUAAAAVQAAAFYAAABXAAAAWAAAAFkAAABaAAAAnAMAALwDAADgAAAA4QAAAOIAAADjAAAA5AAAAOUAAAArIQAA5gAAAOcAAADoAAAA6QAAAOoAAADrAAAA7AAAAO0AAADuAAAA7wAAAPAAAADxAAAA8gAAAPMAAAD0AAAA9QAAAPYAAAD4AAAA+QAAAPoAAAD7AAAA/AAAAP0AAAD+AAAAnh4AAMAAAADBAAAAwgAAAMMAAADEAAAAxQAAACshAADGAAAAxwAAAMgAAADJAAAAygAAAMsAAADMAAAAzQAAAM4AAADPAAAA0AAAANEAAADSAAAA0wAAANQAAADVAAAA1gAAANgAAADZAAAA2gAAANsAAADcAAAA3QAAAN4AAAB4AQAAAQEAAAABAAADAQAAAgEAAAUBAAAEAQAABwEAAAYBAAAJAQAACAEAAAsBAAAKAQAADQEAAAwBAAAPAQAADgEAABEBAAAQAQAAEwEAABIBAAAVAQAAFAEAABcBAAAWAQAAGQEAABgBAAAbAQAAGgEAAB0BAAAcAQAAHwEAAB4BAAAhAQAAIAEAACMBAAAiAQAAJQEAACQBAAAnAQAAJgEAACkBAAAoAQAAKwEAACoBAAAtAQAALAEAAC8BAAAuAQAAMwEAADIBAAA1AQAANAEAADcBAAA2AQAAOgEAADkBAAA8AQAAOwEAAD4BAAA9AQAAQAEAAD8BAABCAQAAQQEAAEQBAABDAQAARgEAAEUBAABIAQAARwEAAEsBAABKAQAATQEAAEwBAABPAQAATgEAAFEBAABQAQAAUwEAAFIBAABVAQAAVAEAAFcBAABWAQAAWQEAAFgBAABbAQAAWgEAAF0BAABcAQAAXwEAAF4BAABhAQAAYAEAAGMBAABiAQAAZQEAAGQBAABnAQAAZgEAAGkBAABoAQAAawEAAGoBAABtAQAAbAEAAG8BAABuAQAAcQEAAHABAABzAQAAcgEAAHUBAAB0AQAAdwEAAHYBAAD/AAAAegEAAHkBAAB8AQAAewEAAH4BAAB9AQAAUwAAAHMAAABDAgAAUwIAAIMBAACCAQAAhQEAAIQBAABUAgAAiAEAAIcBAABWAgAAVwIAAIwBAACLAQAA3QEAAFkCAABbAgAAkgEAAJEBAABgAgAAYwIAAPYBAABpAgAAaAIAAJkBAACYAQAAPQIAAG8CAAByAgAAIAIAAHUCAAChAQAAoAEAAKMBAACiAQAApQEAAKQBAACAAgAAqAEAAKcBAACDAgAArQEAAKwBAACIAgAAsAEAAK8BAACKAgAAiwIAALQBAACzAQAAtgEAALUBAACSAgAAuQEAALgBAAC9AQAAvAEAAPcBAADFAQAAxgEAAMQBAADGAQAAxAEAAMUBAADIAQAAyQEAAMcBAADJAQAAxwEAAMgBAADLAQAAzAEAAMoBAADMAQAAygEAAMsBAADOAQAAzQEAANABAADPAQAA0gEAANEBAADUAQAA0wEAANYBAADVAQAA2AEAANcBAADaAQAA2QEAANwBAADbAQAAjgEAAN8BAADeAQAA4QEAAOABAADjAQAA4gEAAOUBAADkAQAA5wEAAOYBAADpAQAA6AEAAOsBAADqAQAA7QEAAOwBAADvAQAA7gEAAPIBAADzAQAA8QEAAPMBAADxAQAA8gEAAPUBAAD0AQAAlQEAAL8BAAD5AQAA+AEAAPsBAAD6AQAA/QEAAPwBAAD/AQAA/gEAAAECAAAAAgAAAwIAAAICAAAFAgAABAIAAAcCAAAGAgAACQIAAAgCAAALAgAACgIAAA0CAAAMAgAADwIAAA4CAAARAgAAEAIAABMCAAASAgAAFQIAABQCAAAXAgAAFgIAABkCAAAYAgAAGwIAABoCAAAdAgAAHAIAAB8CAAAeAgAAngEAACMCAAAiAgAAJQIAACQCAAAnAgAAJgIAACkCAAAoAgAAKwIAACoCAAAtAgAALAIAAC8CAAAuAgAAMQIAADACAAAzAgAAMgIAAGUsAAA8AgAAOwIAAJoBAABmLAAAfiwAAH8sAABCAgAAQQIAAIABAACJAgAAjAIAAEcCAABGAgAASQIAAEgCAABLAgAASgIAAE0CAABMAgAATwIAAE4CAABvLAAAbSwAAHAsAACBAQAAhgEAAIkBAACKAQAAjwEAAJABAACrpwAAkwEAAKynAACUAQAAjacAAKqnAACXAQAAlgEAAK6nAABiLAAAracAAJwBAABuLAAAnQEAAJ8BAABkLAAApgEAAMWnAACpAQAAsacAAK4BAABEAgAAsQEAALIBAABFAgAAtwEAALKnAACwpwAAmQMAALkDAAC+HwAAcQMAAHADAABzAwAAcgMAAHcDAAB2AwAA/QMAAP4DAAD/AwAA8wMAAKwDAACtAwAArgMAAK8DAADMAwAAzQMAAM4DAACxAwAAsgMAANADAACzAwAAtAMAALUDAAD1AwAAtgMAALcDAAC4AwAA0QMAAPQDAABFAwAAuQMAAL4fAAC6AwAA8AMAALsDAAC1AAAAvAMAAL0DAAC+AwAAvwMAAMADAADWAwAAwQMAAPEDAADCAwAAwwMAAMQDAADFAwAAxgMAANUDAADHAwAAyAMAAMkDAAAmIQAAygMAAMsDAACGAwAAiAMAAIkDAACKAwAAkQMAAJIDAADQAwAAkwMAAJQDAACVAwAA9QMAAJYDAACXAwAAmAMAANEDAAD0AwAARQMAAJkDAAC+HwAAmgMAAPADAACbAwAAtQAAAJwDAACdAwAAngMAAJ8DAACgAwAA1gMAAKEDAADxAwAAowMAAMMDAACjAwAAwgMAAKQDAAClAwAApgMAANUDAACnAwAAqAMAAKkDAAAmIQAAqgMAAKsDAACMAwAAjgMAAI8DAADXAwAAkgMAALIDAACYAwAAuAMAAPQDAACmAwAAxgMAAKADAADAAwAAzwMAANkDAADYAwAA2wMAANoDAADdAwAA3AMAAN8DAADeAwAA4QMAAOADAADjAwAA4gMAAOUDAADkAwAA5wMAAOYDAADpAwAA6AMAAOsDAADqAwAA7QMAAOwDAADvAwAA7gMAAJoDAAC6AwAAoQMAAMEDAAD5AwAAfwMAAJgDAAC4AwAA0QMAAJUDAAC1AwAA+AMAAPcDAADyAwAA+wMAAPoDAAB7AwAAfAMAAH0DAABQBAAAUQQAAFIEAABTBAAAVAQAAFUEAABWBAAAVwQAAFgEAABZBAAAWgQAAFsEAABcBAAAXQQAAF4EAABfBAAAMAQAADEEAAAyBAAAgBwAADMEAAA0BAAAgRwAADUEAAA2BAAANwQAADgEAAA5BAAAOgQAADsEAAA8BAAAPQQAAD4EAACCHAAAPwQAAEAEAABBBAAAgxwAAEIEAACEHAAAhRwAAEMEAABEBAAARQQAAEYEAABHBAAASAQAAEkEAABKBAAAhhwAAEsEAABMBAAATQQAAE4EAABPBAAAEAQAABEEAAASBAAAgBwAABMEAAAUBAAAgRwAABUEAAAWBAAAFwQAABgEAAAZBAAAGgQAABsEAAAcBAAAHQQAAB4EAACCHAAAHwQAACAEAAAhBAAAgxwAACIEAACEHAAAhRwAACMEAAAkBAAAJQQAACYEAAAnBAAAKAQAACkEAAAqBAAAhhwAACsEAAAsBAAALQQAAC4EAAAvBAAAAAQAAAEEAAACBAAAAwQAAAQEAAAFBAAABgQAAAcEAAAIBAAACQQAAAoEAAALBAAADAQAAA0EAAAOBAAADwQAAGEEAABgBAAAYwQAAIccAABiBAAAhxwAAGUEAABkBAAAZwQAAGYEAABpBAAAaAQAAGsEAABqBAAAbQQAAGwEAABvBAAAbgQAAHEEAABwBAAAcwQAAHIEAAB1BAAAdAQAAHcEAAB2BAAAeQQAAHgEAAB7BAAAegQAAH0EAAB8BAAAfwQAAH4EAACBBAAAgAQAAIsEAACKBAAAjQQAAIwEAACPBAAAjgQAAJEEAACQBAAAkwQAAJIEAACVBAAAlAQAAJcEAACWBAAAmQQAAJgEAACbBAAAmgQAAJ0EAACcBAAAnwQAAJ4EAAChBAAAoAQAAKMEAACiBAAApQQAAKQEAACnBAAApgQAAKkEAACoBAAAqwQAAKoEAACtBAAArAQAAK8EAACuBAAAsQQAALAEAACzBAAAsgQAALUEAAC0BAAAtwQAALYEAAC5BAAAuAQAALsEAAC6BAAAvQQAALwEAAC/BAAAvgQAAM8EAADCBAAAwQQAAMQEAADDBAAAxgQAAMUEAADIBAAAxwQAAMoEAADJBAAAzAQAAMsEAADOBAAAzQQAAMAEAADRBAAA0AQAANMEAADSBAAA1QQAANQEAADXBAAA1gQAANkEAADYBAAA2wQAANoEAADdBAAA3AQAAN8EAADeBAAA4QQAAOAEAADjBAAA4gQAAOUEAADkBAAA5wQAAOYEAADpBAAA6AQAAOsEAADqBAAA7QQAAOwEAADvBAAA7gQAAPEEAADwBAAA8wQAAPIEAAD1BAAA9AQAAPcEAAD2BAAA+QQAAPgEAAD7BAAA+gQAAP0EAAD8BAAA/wQAAP4EAAABBQAAAAUAAAMFAAACBQAABQUAAAQFAAAHBQAABgUAAAkFAAAIBQAACwUAAAoFAAANBQAADAUAAA8FAAAOBQAAEQUAABAFAAATBQAAEgUAABUFAAAUBQAAFwUAABYFAAAZBQAAGAUAABsFAAAaBQAAHQUAABwFAAAfBQAAHgUAACEFAAAgBQAAIwUAACIFAAAlBQAAJAUAACcFAAAmBQAAKQUAACgFAAArBQAAKgUAAC0FAAAsBQAALwUAAC4FAABhBQAAYgUAAGMFAABkBQAAZQUAAGYFAABnBQAAaAUAAGkFAABqBQAAawUAAGwFAABtBQAAbgUAAG8FAABwBQAAcQUAAHIFAABzBQAAdAUAAHUFAAB2BQAAdwUAAHgFAAB5BQAAegUAAHsFAAB8BQAAfQUAAH4FAAB/BQAAgAUAAIEFAACCBQAAgwUAAIQFAACFBQAAhgUAADEFAAAyBQAAMwUAADQFAAA1BQAANgUAADcFAAA4BQAAOQUAADoFAAA7BQAAPAUAAD0FAAA+BQAAPwUAAEAFAABBBQAAQgUAAEMFAABEBQAARQUAAEYFAABHBQAASAUAAEkFAABKBQAASwUAAEwFAABNBQAATgUAAE8FAABQBQAAUQUAAFIFAABTBQAAVAUAAFUFAABWBQAAAC0AAAEtAAACLQAAAy0AAAQtAAAFLQAABi0AAActAAAILQAACS0AAAotAAALLQAADC0AAA0tAAAOLQAADy0AABAtAAARLQAAEi0AABMtAAAULQAAFS0AABYtAAAXLQAAGC0AABktAAAaLQAAGy0AABwtAAAdLQAAHi0AAB8tAAAgLQAAIS0AACItAAAjLQAAJC0AACUtAAAnLQAALS0AAJAcAACRHAAAkhwAAJMcAACUHAAAlRwAAJYcAACXHAAAmBwAAJkcAACaHAAAmxwAAJwcAACdHAAAnhwAAJ8cAACgHAAAoRwAAKIcAACjHAAApBwAAKUcAACmHAAApxwAAKgcAACpHAAAqhwAAKscAACsHAAArRwAAK4cAACvHAAAsBwAALEcAACyHAAAsxwAALQcAAC1HAAAthwAALccAAC4HAAAuRwAALocAAC9HAAAvhwAAL8cAABwqwAAcasAAHKrAABzqwAAdKsAAHWrAAB2qwAAd6sAAHirAAB5qwAAeqsAAHurAAB8qwAAfasAAH6rAAB/qwAAgKsAAIGrAACCqwAAg6sAAISrAACFqwAAhqsAAIerAACIqwAAiasAAIqrAACLqwAAjKsAAI2rAACOqwAAj6sAAJCrAACRqwAAkqsAAJOrAACUqwAAlasAAJarAACXqwAAmKsAAJmrAACaqwAAm6sAAJyrAACdqwAAnqsAAJ+rAACgqwAAoasAAKKrAACjqwAApKsAAKWrAACmqwAAp6sAAKirAACpqwAAqqsAAKurAACsqwAArasAAK6rAACvqwAAsKsAALGrAACyqwAAs6sAALSrAAC1qwAAtqsAALerAAC4qwAAuasAALqrAAC7qwAAvKsAAL2rAAC+qwAAv6sAAPgTAAD5EwAA+hMAAPsTAAD8EwAA/RMAAPATAADxEwAA8hMAAPMTAAD0EwAA9RMAABIEAAAyBAAAFAQAADQEAAAeBAAAPgQAACEEAABBBAAAIgQAAEIEAACFHAAAIgQAAEIEAACEHAAAKgQAAEoEAABiBAAAYwQAAEqmAABLpgAA0BAAANEQAADSEAAA0xAAANQQAADVEAAA1hAAANcQAADYEAAA2RAAANoQAADbEAAA3BAAAN0QAADeEAAA3xAAAOAQAADhEAAA4hAAAOMQAADkEAAA5RAAAOYQAADnEAAA6BAAAOkQAADqEAAA6xAAAOwQAADtEAAA7hAAAO8QAADwEAAA8RAAAPIQAADzEAAA9BAAAPUQAAD2EAAA9xAAAPgQAAD5EAAA+hAAAP0QAAD+EAAA/xAAAH2nAABjLAAAxqcAAAEeAAAAHgAAAx4AAAIeAAAFHgAABB4AAAceAAAGHgAACR4AAAgeAAALHgAACh4AAA0eAAAMHgAADx4AAA4eAAARHgAAEB4AABMeAAASHgAAFR4AABQeAAAXHgAAFh4AABkeAAAYHgAAGx4AABoeAAAdHgAAHB4AAB8eAAAeHgAAIR4AACAeAAAjHgAAIh4AACUeAAAkHgAAJx4AACYeAAApHgAAKB4AACseAAAqHgAALR4AACweAAAvHgAALh4AADEeAAAwHgAAMx4AADIeAAA1HgAANB4AADceAAA2HgAAOR4AADgeAAA7HgAAOh4AAD0eAAA8HgAAPx4AAD4eAABBHgAAQB4AAEMeAABCHgAARR4AAEQeAABHHgAARh4AAEkeAABIHgAASx4AAEoeAABNHgAATB4AAE8eAABOHgAAUR4AAFAeAABTHgAAUh4AAFUeAABUHgAAVx4AAFYeAABZHgAAWB4AAFseAABaHgAAXR4AAFweAABfHgAAXh4AAGEeAACbHgAAYB4AAJseAABjHgAAYh4AAGUeAABkHgAAZx4AAGYeAABpHgAAaB4AAGseAABqHgAAbR4AAGweAABvHgAAbh4AAHEeAABwHgAAcx4AAHIeAAB1HgAAdB4AAHceAAB2HgAAeR4AAHgeAAB7HgAAeh4AAH0eAAB8HgAAfx4AAH4eAACBHgAAgB4AAIMeAACCHgAAhR4AAIQeAACHHgAAhh4AAIkeAACIHgAAix4AAIoeAACNHgAAjB4AAI8eAACOHgAAkR4AAJAeAACTHgAAkh4AAJUeAACUHgAAYB4AAGEeAADfAAAAoR4AAKAeAACjHgAAoh4AAKUeAACkHgAApx4AAKYeAACpHgAAqB4AAKseAACqHgAArR4AAKweAACvHgAArh4AALEeAACwHgAAsx4AALIeAAC1HgAAtB4AALceAAC2HgAAuR4AALgeAAC7HgAAuh4AAL0eAAC8HgAAvx4AAL4eAADBHgAAwB4AAMMeAADCHgAAxR4AAMQeAADHHgAAxh4AAMkeAADIHgAAyx4AAMoeAADNHgAAzB4AAM8eAADOHgAA0R4AANAeAADTHgAA0h4AANUeAADUHgAA1x4AANYeAADZHgAA2B4AANseAADaHgAA3R4AANweAADfHgAA3h4AAOEeAADgHgAA4x4AAOIeAADlHgAA5B4AAOceAADmHgAA6R4AAOgeAADrHgAA6h4AAO0eAADsHgAA7x4AAO4eAADxHgAA8B4AAPMeAADyHgAA9R4AAPQeAAD3HgAA9h4AAPkeAAD4HgAA+x4AAPoeAAD9HgAA/B4AAP8eAAD+HgAACB8AAAkfAAAKHwAACx8AAAwfAAANHwAADh8AAA8fAAAAHwAAAR8AAAIfAAADHwAABB8AAAUfAAAGHwAABx8AABgfAAAZHwAAGh8AABsfAAAcHwAAHR8AABAfAAARHwAAEh8AABMfAAAUHwAAFR8AACgfAAApHwAAKh8AACsfAAAsHwAALR8AAC4fAAAvHwAAIB8AACEfAAAiHwAAIx8AACQfAAAlHwAAJh8AACcfAAA4HwAAOR8AADofAAA7HwAAPB8AAD0fAAA+HwAAPx8AADAfAAAxHwAAMh8AADMfAAA0HwAANR8AADYfAAA3HwAASB8AAEkfAABKHwAASx8AAEwfAABNHwAAQB8AAEEfAABCHwAAQx8AAEQfAABFHwAAWR8AAFsfAABdHwAAXx8AAFEfAABTHwAAVR8AAFcfAABoHwAAaR8AAGofAABrHwAAbB8AAG0fAABuHwAAbx8AAGAfAABhHwAAYh8AAGMfAABkHwAAZR8AAGYfAABnHwAAuh8AALsfAADIHwAAyR8AAMofAADLHwAA2h8AANsfAAD4HwAA+R8AAOofAADrHwAA+h8AAPsfAACIHwAAiR8AAIofAACLHwAAjB8AAI0fAACOHwAAjx8AAIAfAACBHwAAgh8AAIMfAACEHwAAhR8AAIYfAACHHwAAmB8AAJkfAACaHwAAmx8AAJwfAACdHwAAnh8AAJ8fAACQHwAAkR8AAJIfAACTHwAAlB8AAJUfAACWHwAAlx8AAKgfAACpHwAAqh8AAKsfAACsHwAArR8AAK4fAACvHwAAoB8AAKEfAACiHwAAox8AAKQfAAClHwAAph8AAKcfAAC4HwAAuR8AALwfAACwHwAAsR8AAHAfAABxHwAAsx8AAEUDAACZAwAAuQMAAMwfAAByHwAAcx8AAHQfAAB1HwAAwx8AANgfAADZHwAA0B8AANEfAAB2HwAAdx8AAOgfAADpHwAA7B8AAOAfAADhHwAAeh8AAHsfAADlHwAA/B8AAHgfAAB5HwAAfB8AAH0fAADzHwAAqQMAAMkDAABLAAAAawAAAMUAAADlAAAATiEAADIhAABwIQAAcSEAAHIhAABzIQAAdCEAAHUhAAB2IQAAdyEAAHghAAB5IQAAeiEAAHshAAB8IQAAfSEAAH4hAAB/IQAAYCEAAGEhAABiIQAAYyEAAGQhAABlIQAAZiEAAGchAABoIQAAaSEAAGohAABrIQAAbCEAAG0hAABuIQAAbyEAAIQhAACDIQAA0CQAANEkAADSJAAA0yQAANQkAADVJAAA1iQAANckAADYJAAA2SQAANokAADbJAAA3CQAAN0kAADeJAAA3yQAAOAkAADhJAAA4iQAAOMkAADkJAAA5SQAAOYkAADnJAAA6CQAAOkkAAC2JAAAtyQAALgkAAC5JAAAuiQAALskAAC8JAAAvSQAAL4kAAC/JAAAwCQAAMEkAADCJAAAwyQAAMQkAADFJAAAxiQAAMckAADIJAAAySQAAMokAADLJAAAzCQAAM0kAADOJAAAzyQAADAsAAAxLAAAMiwAADMsAAA0LAAANSwAADYsAAA3LAAAOCwAADksAAA6LAAAOywAADwsAAA9LAAAPiwAAD8sAABALAAAQSwAAEIsAABDLAAARCwAAEUsAABGLAAARywAAEgsAABJLAAASiwAAEssAABMLAAATSwAAE4sAABPLAAAUCwAAFEsAABSLAAAUywAAFQsAABVLAAAViwAAFcsAABYLAAAWSwAAFosAABbLAAAXCwAAF0sAABeLAAAXywAAAAsAAABLAAAAiwAAAMsAAAELAAABSwAAAYsAAAHLAAACCwAAAksAAAKLAAACywAAAwsAAANLAAADiwAAA8sAAAQLAAAESwAABIsAAATLAAAFCwAABUsAAAWLAAAFywAABgsAAAZLAAAGiwAABssAAAcLAAAHSwAAB4sAAAfLAAAICwAACEsAAAiLAAAIywAACQsAAAlLAAAJiwAACcsAAAoLAAAKSwAACosAAArLAAALCwAAC0sAAAuLAAALywAAGEsAABgLAAAawIAAH0dAAB9AgAAOgIAAD4CAABoLAAAZywAAGosAABpLAAAbCwAAGssAABRAgAAcQIAAFACAABSAgAAcywAAHIsAAB2LAAAdSwAAD8CAABAAgAAgSwAAIAsAACDLAAAgiwAAIUsAACELAAAhywAAIYsAACJLAAAiCwAAIssAACKLAAAjSwAAIwsAACPLAAAjiwAAJEsAACQLAAAkywAAJIsAACVLAAAlCwAAJcsAACWLAAAmSwAAJgsAACbLAAAmiwAAJ0sAACcLAAAnywAAJ4sAAChLAAAoCwAAKMsAACiLAAApSwAAKQsAACnLAAApiwAAKksAACoLAAAqywAAKosAACtLAAArCwAAK8sAACuLAAAsSwAALAsAACzLAAAsiwAALUsAAC0LAAAtywAALYsAAC5LAAAuCwAALssAAC6LAAAvSwAALwsAAC/LAAAviwAAMEsAADALAAAwywAAMIsAADFLAAAxCwAAMcsAADGLAAAySwAAMgsAADLLAAAyiwAAM0sAADMLAAAzywAAM4sAADRLAAA0CwAANMsAADSLAAA1SwAANQsAADXLAAA1iwAANksAADYLAAA2ywAANosAADdLAAA3CwAAN8sAADeLAAA4SwAAOAsAADjLAAA4iwAAOwsAADrLAAA7iwAAO0sAADzLAAA8iwAAKAQAAChEAAAohAAAKMQAACkEAAApRAAAKYQAACnEAAAqBAAAKkQAACqEAAAqxAAAKwQAACtEAAArhAAAK8QAACwEAAAsRAAALIQAACzEAAAtBAAALUQAAC2EAAAtxAAALgQAAC5EAAAuhAAALsQAAC8EAAAvRAAAL4QAAC/EAAAwBAAAMEQAADCEAAAwxAAAMQQAADFEAAAxxAAAM0QAABBpgAAQKYAAEOmAABCpgAARaYAAESmAABHpgAARqYAAEmmAABIpgAAiBwAAEumAACIHAAASqYAAE2mAABMpgAAT6YAAE6mAABRpgAAUKYAAFOmAABSpgAAVaYAAFSmAABXpgAAVqYAAFmmAABYpgAAW6YAAFqmAABdpgAAXKYAAF+mAABepgAAYaYAAGCmAABjpgAAYqYAAGWmAABkpgAAZ6YAAGamAABppgAAaKYAAGumAABqpgAAbaYAAGymAACBpgAAgKYAAIOmAACCpgAAhaYAAISmAACHpgAAhqYAAImmAACIpgAAi6YAAIqmAACNpgAAjKYAAI+mAACOpgAAkaYAAJCmAACTpgAAkqYAAJWmAACUpgAAl6YAAJamAACZpgAAmKYAAJumAACapgAAI6cAACKnAAAlpwAAJKcAACenAAAmpwAAKacAACinAAArpwAAKqcAAC2nAAAspwAAL6cAAC6nAAAzpwAAMqcAADWnAAA0pwAAN6cAADanAAA5pwAAOKcAADunAAA6pwAAPacAADynAAA/pwAAPqcAAEGnAABApwAAQ6cAAEKnAABFpwAARKcAAEenAABGpwAASacAAEinAABLpwAASqcAAE2nAABMpwAAT6cAAE6nAABRpwAAUKcAAFOnAABSpwAAVacAAFSnAABXpwAAVqcAAFmnAABYpwAAW6cAAFqnAABdpwAAXKcAAF+nAABepwAAYacAAGCnAABjpwAAYqcAAGWnAABkpwAAZ6cAAGanAABppwAAaKcAAGunAABqpwAAbacAAGynAABvpwAAbqcAAHqnAAB5pwAAfKcAAHunAAB5HQAAf6cAAH6nAACBpwAAgKcAAIOnAACCpwAAhacAAISnAACHpwAAhqcAAIynAACLpwAAZQIAAJGnAACQpwAAk6cAAJKnAADEpwAAl6cAAJanAACZpwAAmKcAAJunAACapwAAnacAAJynAACfpwAAnqcAAKGnAACgpwAAo6cAAKKnAAClpwAApKcAAKenAACmpwAAqacAAKinAABmAgAAXAIAAGECAABsAgAAagIAAJ4CAACHAgAAnQIAAFOrAAC1pwAAtKcAALenAAC2pwAAuacAALinAAC7pwAAuqcAAL2nAAC8pwAAv6cAAL6nAADBpwAAwKcAAMOnAADCpwAAlKcAAIICAACOHQAAyKcAAMenAADKpwAAyacAANGnAADQpwAA16cAANanAADZpwAA2KcAAPanAAD1pwAAs6cAAKATAAChEwAAohMAAKMTAACkEwAApRMAAKYTAACnEwAAqBMAAKkTAACqEwAAqxMAAKwTAACtEwAArhMAAK8TAACwEwAAsRMAALITAACzEwAAtBMAALUTAAC2EwAAtxMAALgTAAC5EwAAuhMAALsTAAC8EwAAvRMAAL4TAAC/EwAAwBMAAMETAADCEwAAwxMAAMQTAADFEwAAxhMAAMcTAADIEwAAyRMAAMoTAADLEwAAzBMAAM0TAADOEwAAzxMAANATAADREwAA0hMAANMTAADUEwAA1RMAANYTAADXEwAA2BMAANkTAADaEwAA2xMAANwTAADdEwAA3hMAAN8TAADgEwAA4RMAAOITAADjEwAA5BMAAOUTAADmEwAA5xMAAOgTAADpEwAA6hMAAOsTAADsEwAA7RMAAO4TAADvEwAAQf8AAEL/AABD/wAARP8AAEX/AABG/wAAR/8AAEj/AABJ/wAASv8AAEv/AABM/wAATf8AAE7/AABP/wAAUP8AAFH/AABS/wAAU/8AAFT/AABV/wAAVv8AAFf/AABY/wAAWf8AAFr/AAAh/wAAIv8AACP/AAAk/wAAJf8AACb/AAAn/wAAKP8AACn/AAAq/wAAK/8AACz/AAAt/wAALv8AAC//AAAw/wAAMf8AADL/AAAz/wAANP8AADX/AAA2/wAAN/8AADj/AAA5/wAAOv8AACgEAQApBAEAKgQBACsEAQAsBAEALQQBAC4EAQAvBAEAMAQBADEEAQAyBAEAMwQBADQEAQA1BAEANgQBADcEAQA4BAEAOQQBADoEAQA7BAEAPAQBAD0EAQA+BAEAPwQBAEAEAQBBBAEAQgQBAEMEAQBEBAEARQQBAEYEAQBHBAEASAQBAEkEAQBKBAEASwQBAEwEAQBNBAEATgQBAE8EAQAABAEAAQQBAAIEAQADBAEABAQBAAUEAQAGBAEABwQBAAgEAQAJBAEACgQBAAsEAQAMBAEADQQBAA4EAQAPBAEAEAQBABEEAQASBAEAEwQBABQEAQAVBAEAFgQBABcEAQAYBAEAGQQBABoEAQAbBAEAHAQBAB0EAQAeBAEAHwQBACAEAQAhBAEAIgQBACMEAQAkBAEAJQQBACYEAQAnBAEA2AQBANkEAQDaBAEA2wQBANwEAQDdBAEA3gQBAN8EAQDgBAEA4QQBAOIEAQDjBAEA5AQBAOUEAQDmBAEA5wQBAOgEAQDpBAEA6gQBAOsEAQDsBAEA7QQBAO4EAQDvBAEA8AQBAPEEAQDyBAEA8wQBAPQEAQD1BAEA9gQBAPcEAQD4BAEA+QQBAPoEAQD7BAEAsAQBALEEAQCyBAEAswQBALQEAQC1BAEAtgQBALcEAQC4BAEAuQQBALoEAQC7BAEAvAQBAL0EAQC+BAEAvwQBAMAEAQDBBAEAwgQBAMMEAQDEBAEAxQQBAMYEAQDHBAEAyAQBAMkEAQDKBAEAywQBAMwEAQDNBAEAzgQBAM8EAQDQBAEA0QQBANIEAQDTBAEAlwUBAJgFAQCZBQEAmgUBAJsFAQCcBQEAnQUBAJ4FAQCfBQEAoAUBAKEFAQCjBQEApAUBAKUFAQCmBQEApwUBAKgFAQCpBQEAqgUBAKsFAQCsBQEArQUBAK4FAQCvBQEAsAUBALEFAQCzBQEAtAUBALUFAQC2BQEAtwUBALgFAQC5BQEAuwUBALwFAQBwBQEAcQUBAHIFAQBzBQEAdAUBAHUFAQB2BQEAdwUBAHgFAQB5BQEAegUBAHwFAQB9BQEAfgUBAH8FAQCABQEAgQUBAIIFAQCDBQEAhAUBAIUFAQCGBQEAhwUBAIgFAQCJBQEAigUBAIwFAQCNBQEAjgUBAI8FAQCQBQEAkQUBAJIFAQCUBQEAlQUBAMAMAQDBDAEAwgwBAMMMAQDEDAEAxQwBAMYMAQDHDAEAyAwBAMkMAQDKDAEAywwBAMwMAQDNDAEAzgwBAM8MAQDQDAEA0QwBANIMAQDTDAEA1AwBANUMAQDWDAEA1wwBANgMAQDZDAEA2gwBANsMAQDcDAEA3QwBAN4MAQDfDAEA4AwBAOEMAQDiDAEA4wwBAOQMAQDlDAEA5gwBAOcMAQDoDAEA6QwBAOoMAQDrDAEA7AwBAO0MAQDuDAEA7wwBAPAMAQDxDAEA8gwBAIAMAQCBDAEAggwBAIMMAQCEDAEAhQwBAIYMAQCHDAEAiAwBAIkMAQCKDAEAiwwBAIwMAQCNDAEAjgwBAI8MAQCQDAEAkQwBAJIMAQCTDAEAlAwBAJUMAQCWDAEAlwwBAJgMAQCZDAEAmgwBAJsMAQCcDAEAnQwBAJ4MAQCfDAEAoAwBAKEMAQCiDAEAowwBAKQMAQClDAEApgwBAKcMAQCoDAEAqQwBAKoMAQCrDAEArAwBAK0MAQCuDAEArwwBALAMAQCxDAEAsgwBAMAYAQDBGAEAwhgBAMMYAQDEGAEAxRgBAMYYAQDHGAEAyBgBAMkYAQDKGAEAyxgBAMwYAQDNGAEAzhgBAM8YAQDQGAEA0RgBANIYAQDTGAEA1BgBANUYAQDWGAEA1xgBANgYAQDZGAEA2hgBANsYAQDcGAEA3RgBAN4YAQDfGAEAoBgBAKEYAQCiGAEAoxgBAKQYAQClGAEAphgBAKcYAQCoGAEAqRgBAKoYAQCrGAEArBgBAK0YAQCuGAEArxgBALAYAQCxGAEAshgBALMYAQC0GAEAtRgBALYYAQC3GAEAuBgBALkYAQC6GAEAuxgBALwYAQC9GAEAvhgBAL8YAQBgbgEAYW4BAGJuAQBjbgEAZG4BAGVuAQBmbgEAZ24BAGhuAQBpbgEAam4BAGtuAQBsbgEAbW4BAG5uAQBvbgEAcG4BAHFuAQBybgEAc24BAHRuAQB1bgEAdm4BAHduAQB4bgEAeW4BAHpuAQB7bgEAfG4BAH1uAQB+bgEAf24BAEBuAQBBbgEAQm4BAENuAQBEbgEARW4BAEZuAQBHbgEASG4BAEluAQBKbgEAS24BAExuAQBNbgEATm4BAE9uAQBQbgEAUW4BAFJuAQBTbgEAVG4BAFVuAQBWbgEAV24BAFhuAQBZbgEAWm4BAFtuAQBcbgEAXW4BAF5uAQBfbgEAIukBACPpAQAk6QEAJekBACbpAQAn6QEAKOkBACnpAQAq6QEAK+kBACzpAQAt6QEALukBAC/pAQAw6QEAMekBADLpAQAz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AgAAaDARAAEAAAAEAgAAbDARAAEAAAAFAgAAcDARAAEAAAAGAgAAdDARAAEAAAAHAgAAeDARAAEAAAAIAgAAfDARAAEAAAAJAgAAgDARAAEAAAAKAgAAhDARAAEAAAALAgAAiDARAAEAAAAMAgAAjDARAAEAAAANAgAAkDARAAEAAAAOAgAAlDARAAEAAAAPAgAAmDARAAEAAAAQAgAAnDARAAEAAAARAgAAoDARAAEAAAASAgAApDARAAEAAAATAgAAqDARAAEAAAAUAgAArDARAAEAAAAVAgAAsDARAAEAAAAWAgAAtDARAAEAAAAXAgAAuDARAAEAAAAYAgAAvDARAAEAAAAZAgAAwDARAAEAAAAaAgAAxDARAAEAAAAbAgAAyDARAAEAAAAcAgAAzDARAAEAAAAdAgAA0DARAAEAAAAeAgAA1DARAAEAAAAfAgAA2DARAAEAAAAgAgAA3DARAAEAAAAiAgAA4DARAAEAAAAjAgAA5DARAAEAAAAkAgAA6DARAAEAAAAlAgAA7DARAAEAAAAmAgAA8DARAAEAAAAnAgAA9DARAAEAAAAoAgAA+DARAAEAAAApAgAA/DARAAEAAAAqAgAAADERAAEAAAArAgAABDERAAEAAAAsAgAACDERAAEAAAAtAgAADDERAAEAAAAuAgAAEDERAAEAAAAvAgAAFDERAAEAAAAwAgAAGDERAAEAAAAxAgAAHDERAAEAAAAyAgAAIDERAAEAAAAzAgAAJDERAAEAAAA6AgAAKDERAAEAAAA7AgAALDERAAEAAAA8AgAAMDERAAEAAAA9AgAANDERAAEAAAA+AgAAODERAAEAAAA/AgAAPDERAAEAAABAAgAAQDERAAEAAABBAgAARDERAAEAAABCAgAASDERAAEAAABDAgAATDERAAEAAABEAgAAUDERAAEAAABFAgAAVDERAAEAAABGAgAAWDERAAEAAABHAgAAXDERAAEAAABIAgAAYDERAAEAAABJAgAAZDERAAEAAABKAgAAaDERAAEAAABLAgAAbDERAAEAAABMAgAAcDERAAEAAABNAgAAdDERAAEAAABOAgAAeDERAAEAAABPAgAAfDERAAEAAABQAgAAgDERAAEAAABRAgAAhDERAAEAAABSAgAAiDERAAEAAABTAgAAjDERAAEAAABUAgAAkDERAAEAAABW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HgAAgD8RAAEAAABAHgAAhD8RAAEAAABBHgAAiD8RAAEAAABCHgAAjD8RAAEAAABDHgAAkD8RAAEAAABEHgAAlD8RAAEAAABFHgAAmD8RAAEAAABGHgAAnD8RAAEAAABHHgAAoD8RAAEAAABIHgAApD8RAAEAAABJHgAAqD8RAAEAAABKHgAArD8RAAEAAABLHgAAsD8RAAEAAABMHgAAtD8RAAEAAABNHgAAuD8RAAEAAABOHgAAvD8RAAEAAABPHgAAwD8RAAEAAABQHgAAxD8RAAEAAABRHgAAyD8RAAEAAABSHgAAzD8RAAEAAABTHgAA0D8RAAEAAABUHgAA1D8RAAEAAABVHgAA2D8RAAEAAABWHgAA3D8RAAEAAABXHgAA4D8RAAEAAABYHgAA5D8RAAEAAABZHgAA6D8RAAEAAABaHgAA7D8RAAEAAABbHgAA8D8RAAEAAABcHgAA9D8RAAEAAABdHgAA+D8RAAEAAABeHgAA/D8RAAEAAABfHgAAAEARAAEAAABgHgAABEARAAIAAABhHgAADEARAAIAAABiHgAAFEARAAEAAABjHgAAGEARAAEAAABkHgAAHEARAAEAAABlHgAAIEARAAEAAABmHgAAJEARAAEAAABnHgAAKEARAAEAAABoHgAALEARAAEAAABpHgAAMEARAAEAAABqHgAANEARAAEAAABrHgAAOEARAAEAAABsHgAAPEARAAEAAABtHgAAQEARAAEAAABuHgAAREARAAEAAABvHgAASEARAAEAAABwHgAATEARAAEAAABxHgAAUEARAAEAAAByHgAAVEARAAEAAABzHgAAWEARAAEAAAB0HgAAXEARAAEAAAB1HgAAYEARAAEAAAB2HgAAZEARAAEAAAB3HgAAaEARAAEAAAB4HgAAbEARAAEAAAB5HgAAcEARAAEAAAB6HgAAdEARAAEAAAB7HgAAeEARAAEAAAB8HgAAfEARAAEAAAB9HgAAgEARAAEAAAB+HgAAhEARAAEAAAB/HgAAiEARAAEAAACAHgAAjEARAAEAAACBHgAAkEARAAEAAACCHgAAlEARAAEAAACDHgAAmEARAAEAAACEHgAAnEARAAEAAACFHgAAoEARAAEAAACGHgAApEARAAEAAACHHgAAqEARAAEAAACIHgAArEARAAEAAACJHgAAsEARAAEAAACKHgAAtEARAAEAAACLHgAAuEARAAEAAACMHgAAvEARAAEAAACNHgAAwEARAAEAAACOHgAAxEARAAEAAACPHgAAyEARAAEAAACQHgAAzEARAAEAAACRHgAA0EARAAEAAACSHgAA1EARAAEAAACTHgAA2EARAAEAAACUHgAA3EARAAEAAACVHgAA4EARAAEAAACbHgAA5EARAAIAAACeHgAA7EARAAEAAACgHgAA8EARAAEAAAChHgAA9EARAAEAAACiHgAA+EARAAEAAACjHgAA/EARAAEAAACkHgAAAEERAAEAAAClHgAABEERAAEAAACmHgAACEERAAEAAACnHgAADEERAAEAAACoHgAAEEERAAEAAACpHgAAFEERAAEAAACqHgAAGEERAAEAAACrHgAAHEERAAEAAACsHgAAIEERAAEAAACtHgAAJEERAAEAAACuHgAAKEERAAEAAACvHgAALEERAAEAAACwHgAAMEERAAEAAACxHgAANEERAAEAAACyHgAAOEERAAEAAACzHgAAPEERAAEAAAC0HgAAQEERAAEAAAC1HgAAREERAAEAAAC2HgAASEERAAEAAAC3HgAATEERAAEAAAC4HgAAUEERAAEAAAC5HgAAVEERAAEAAAC6HgAAWEERAAEAAAC7HgAAXEERAAEAAAC8HgAAYEERAAEAAAC9HgAAZEERAAEAAAC+HgAAaEERAAEAAAC/HgAAbEERAAEAAADAHgAAcEERAAEAAADBHgAAdEERAAEAAADCHgAAeEERAAEAAADDHgAAfEERAAEAAADEHgAAgEERAAEAAADFHgAAhEERAAEAAADGHgAAiEERAAEAAADHHgAAjEERAAEAAADIHgAAkEERAAEAAADJHgAAlEERAAEAAADKHgAAmEERAAEAAADLHgAAnEERAAEAAADMHgAAoEERAAEAAADNHgAApEERAAEAAADOHgAAqEERAAEAAADPHgAArEERAAEAAADQHgAAsEERAAEAAADRHgAAtEERAAEAAADSHgAAuEERAAEAAADTHgAAvEERAAEAAADUHgAAwEERAAEAAADVHgAAxEERAAEAAADWHgAAyEERAAEAAADXHgAAzEERAAEAAADYHgAA0EERAAEAAADZHgAA1EERAAEAAADaHgAA2EERAAEAAADbHgAA3EERAAEAAADcHgAA4EERAAEAAADdHgAA5EERAAEAAADeHgAA6EERAAEAAADfHgAA7EERAAEAAADgHgAA8EERAAEAAADhHgAA9EERAAEAAADiHgAA+EERAAEAAADjHgAA/EERAAEAAADkHgAAAEIRAAEAAADlHgAABEIRAAEAAADmHgAACEIRAAEAAADnHgAADEIRAAEAAADoHgAAEEIRAAEAAADpHgAAFEIRAAEAAADqHgAAGEIRAAEAAADrHgAAHEIRAAEAAADsHgAAIEIRAAEAAADtHgAAJEIRAAEAAADuHgAAKEIRAAEAAADvHgAALEIRAAEAAADwHgAAMEIRAAEAAADxHgAANEIRAAEAAADyHgAAOEIRAAEAAADzHgAAPEIRAAEAAAD0HgAAQEIRAAEAAAD1HgAAREIRAAEAAAD2HgAASEIRAAEAAAD3HgAATEIRAAEAAAD4HgAAUEIRAAEAAAD5HgAAVEIRAAEAAAD6HgAAWEIRAAEAAAD7HgAAXEIRAAEAAAD8HgAAYEIRAAEAAAD9HgAAZEIRAAEAAAD+HgAAaEIRAAEAAAD/HgAAbEIRAAEAAAAAHwAAcEIRAAEAAAABHwAAdEIRAAEAAAACHwAAeEIRAAEAAAADHwAAfEIRAAEAAAAEHwAAgEIRAAEAAAAFHwAAhEIRAAEAAAAGHwAAiEIRAAEAAAAHHwAAjEIRAAEAAAAIHwAAkEIRAAEAAAAJHwAAlEIRAAEAAAAKHwAAmEIRAAEAAAALHwAAnEIRAAEAAAAMHwAAoEIRAAEAAAANHwAApEIRAAEAAAAOHwAAqEIRAAEAAAAPHwAArEIRAAEAAAAQHwAAsEIRAAEAAAARHwAAtEIRAAEAAAASHwAAuEIRAAEAAAATHwAAvEIRAAEAAAAUHwAAwEIRAAEAAAAVHwAAxEIRAAEAAAAYHwAAyEIRAAEAAAAZHwAAzEIRAAEAAAAaHwAA0EIRAAEAAAAbHwAA1EIRAAEAAAAcHwAA2EIRAAEAAAAdHwAA3EIRAAEAAAAgHwAA4EIRAAEAAAAhHwAA5EIRAAEAAAAiHwAA6EIRAAEAAAAjHwAA7EIRAAEAAAAkHwAA8EIRAAEAAAAlHwAA9EIRAAEAAAAmHwAA+EIRAAEAAAAnHwAA/EIRAAEAAAAoHwAAAEMRAAEAAAApHwAABEMRAAEAAAAqHwAACEMRAAEAAAArHwAADEMRAAEAAAAsHwAAEEMRAAEAAAAtHwAAFEMRAAEAAAAuHwAAGEMRAAEAAAAvHwAAHEMRAAEAAAAwHwAAIEMRAAEAAAAxHwAAJEMRAAEAAAAyHwAAKEMRAAEAAAAzHwAALEMRAAEAAAA0HwAAMEMRAAEAAAA1HwAANEMRAAEAAAA2HwAAOEMRAAEAAAA3HwAAPEMRAAEAAAA4HwAAQEMRAAEAAAA5HwAAREMRAAEAAAA6HwAASEMRAAEAAAA7HwAATEMRAAEAAAA8HwAAUEMRAAEAAAA9HwAAVEMRAAEAAAA+HwAAWEMRAAEAAAA/HwAAXEMRAAEAAABAHwAAYEMRAAEAAABBHwAAZEMRAAEAAABCHwAAaEMRAAEAAABDHwAAbEMRAAEAAABEHwAAcEMRAAEAAABFHwAAdEMRAAEAAABIHwAAeEMRAAEAAABJHwAAfEMRAAEAAABKHwAAgEMRAAEAAABLHwAAhEMRAAEAAABMHwAAiEMRAAEAAABNHwAAjEMRAAEAAABRHwAAkEMRAAEAAABTHwAAlEMRAAEAAABVHwAAmEMRAAEAAABXHwAAnEMRAAEAAABZHwAAoEMRAAEAAABbHwAApEMRAAEAAABdHwAAqEMRAAEAAABfHwAArEMRAAEAAABgHwAAsEMRAAEAAABhHwAAtEMRAAEAAABiHwAAuEMRAAEAAABjHwAAvEMRAAEAAABkHwAAwEMRAAEAAABlHwAAxEMRAAEAAABmHwAAyEMRAAEAAABnHwAAzEMRAAEAAABoHwAA0EMRAAEAAABpHwAA1EMRAAEAAABqHwAA2EMRAAEAAABrHwAA3EMRAAEAAABsHwAA4EMRAAEAAABtHwAA5EMRAAEAAABuHwAA6EMRAAEAAABvHwAA7EMRAAEAAABwHwAA8EMRAAEAAABxHwAA9EMRAAEAAAByHwAA+EMRAAEAAABzHwAA/EMRAAEAAAB0HwAAAEQRAAEAAAB1HwAABEQRAAEAAAB2HwAACEQRAAEAAAB3HwAADEQRAAEAAAB4HwAAEEQRAAEAAAB5HwAAFEQRAAEAAAB6HwAAGEQRAAEAAAB7HwAAHEQRAAEAAAB8HwAAIEQRAAEAAAB9HwAAJEQRAAEAAACAHwAAKEQRAAEAAACBHwAALEQRAAEAAACCHwAAMEQRAAEAAACDHwAANEQRAAEAAACEHwAAOEQRAAEAAACFHwAAPEQRAAEAAACGHwAAQEQRAAEAAACHHwAAREQRAAEAAACIHwAASEQRAAEAAACJHwAATEQRAAEAAACKHwAAUEQRAAEAAACLHwAAVEQRAAEAAACMHwAAWEQRAAEAAACNHwAAXEQRAAEAAACOHwAAYEQRAAEAAACPHwAAZEQRAAEAAACQHwAAaEQRAAEAAACRHwAAbEQRAAEAAACSHwAAcEQRAAEAAACTHwAAdEQRAAEAAACUHwAAeEQRAAEAAACVHwAAfEQRAAEAAACWHwAAgEQRAAEAAACXHwAAhEQRAAEAAACYHwAAiEQRAAEAAACZHwAAjEQRAAEAAACaHwAAkEQRAAEAAACbHwAAlEQRAAEAAACcHwAAmEQRAAEAAACdHwAAnEQRAAEAAACeHwAAoEQRAAEAAACfHwAApEQRAAEAAACgHwAAqEQRAAEAAAChHwAArEQRAAEAAACiHwAAsEQRAAEAAACjHwAAtEQRAAEAAACkHwAAuEQRAAEAAAClHwAAvEQRAAEAAACmHwAAwEQRAAEAAACnHwAAxEQRAAEAAACoHwAAyEQRAAEAAACpHwAAzEQRAAEAAACqHwAA0EQRAAEAAACrHwAA1EQRAAEAAACsHwAA2EQRAAEAAACtHwAA3EQRAAEAAACuHwAA4EQRAAEAAACvHwAA5EQRAAEAAACwHwAA6EQRAAEAAACxHwAA7EQRAAEAAACzHwAA8EQRAAEAAAC4HwAA9EQRAAEAAAC5HwAA+EQRAAEAAAC6HwAA/EQRAAEAAAC7HwAAAEURAAEAAAC8HwAABEURAAEAAAC+HwAACEURAAMAAADDHwAAFEURAAEAAADIHwAAGEURAAEAAADJHwAAHEURAAEAAADKHwAAIEURAAEAAADLHwAAJEURAAEAAADMHwAAKEURAAEAAADQHwAALEURAAEAAADRHwAAMEURAAEAAADYHwAANEURAAEAAADZHwAAOEURAAEAAADaHwAAPEURAAEAAADbHwAAQEURAAEAAADgHwAAREURAAEAAADhHwAASEURAAEAAADlHwAATEURAAEAAADoHwAAUEURAAEAAADpHwAAVEURAAEAAADqHwAAWEURAAEAAADrHwAAXEURAAEAAADsHwAAYEURAAEAAADzHwAAZEURAAEAAAD4HwAAaEURAAEAAAD5HwAAbEURAAEAAAD6HwAAcEURAAEAAAD7HwAAdEURAAEAAAD8HwAAeEURAAEAAAAmIQAAfEURAAIAAAAqIQAAhEURAAIAAAArIQAAjEURAAIAAAAyIQAAlEURAAEAAABOIQAAmEURAAEAAABgIQAAnEURAAEAAABhIQAAoEURAAEAAABiIQAApEURAAEAAABjIQAAqEURAAEAAABkIQAArEURAAEAAABlIQAAsEURAAEAAABmIQAAtEURAAEAAABnIQAAuEURAAEAAABoIQAAvEURAAEAAABpIQAAwEURAAEAAABqIQAAxEURAAEAAABrIQAAyEURAAEAAABsIQAAzEURAAEAAABtIQAA0EURAAEAAABuIQAA1EURAAEAAABvIQAA2EURAAEAAABwIQAA3EURAAEAAABxIQAA4EURAAEAAAByIQAA5EURAAEAAABzIQAA6EURAAEAAAB0IQAA7EURAAEAAAB1IQAA8EURAAEAAAB2IQAA9EURAAEAAAB3IQAA+EURAAEAAAB4IQAA/EURAAEAAAB5IQAAAEYRAAEAAAB6IQAABEYRAAEAAAB7IQAACEYRAAEAAAB8IQAADEYRAAEAAAB9IQAAEEYRAAEAAAB+IQAAFEYRAAEAAAB/IQAAGEYRAAEAAACDIQAAHEYRAAEAAACEIQAAIEYRAAEAAAC2JAAAJEYRAAEAAAC3JAAAKEYRAAEAAAC4JAAALEYRAAEAAAC5JAAAMEYRAAEAAAC6JAAANEYRAAEAAAC7JAAAOEYRAAEAAAC8JAAAPEYRAAEAAAC9JAAAQEYRAAEAAAC+JAAAREYRAAEAAAC/JAAASEYRAAEAAADAJAAATEYRAAEAAADBJAAAUEYRAAEAAADCJAAAVEYRAAEAAADDJAAAWEYRAAEAAADEJAAAXEYRAAEAAADFJAAAYEYRAAEAAADGJAAAZEYRAAEAAADHJAAAaEYRAAEAAADIJAAAbEYRAAEAAADJJAAAcEYRAAEAAADKJAAAdEYRAAEAAADLJAAAeEYRAAEAAADMJAAAfEYRAAEAAADNJAAAgEYRAAEAAADOJAAAhEYRAAEAAADPJAAAiEYRAAEAAADQJAAAjEYRAAEAAADRJAAAkEYRAAEAAADSJAAAlEYRAAEAAADTJAAAmEYRAAEAAADUJAAAnEYRAAEAAADVJAAAoEYRAAEAAADWJAAApEYRAAEAAADXJAAAqEYRAAEAAADYJAAArEYRAAEAAADZJAAAsEYRAAEAAADaJAAAtEYRAAEAAADbJAAAuEYRAAEAAADcJAAAvEYRAAEAAADdJAAAwEYRAAEAAADeJAAAxEYRAAEAAADfJAAAyEYRAAEAAADgJAAAzEYRAAEAAADhJAAA0EYRAAEAAADiJAAA1EYRAAEAAADjJAAA2EYRAAEAAADkJAAA3EYRAAEAAADlJAAA4EYRAAEAAADmJAAA5EYRAAEAAADnJAAA6EYRAAEAAADoJAAA7EYRAAEAAADpJAAA8EYRAAEAAAAALAAA9EYRAAEAAAABLAAA+EYRAAEAAAACLAAA/EYRAAEAAAADLAAAAEcRAAEAAAAELAAABEcRAAEAAAAFLAAACEcRAAEAAAAGLAAADEcRAAEAAAAHLAAAEEcRAAEAAAAILAAAFEcRAAEAAAAJLAAAGEcRAAEAAAAKLAAAHEcRAAEAAAALLAAAIEcRAAEAAAAMLAAAJEcRAAEAAAANLAAAKEcRAAEAAAAOLAAALEcRAAEAAAAPLAAAMEcRAAEAAAAQLAAANEcRAAEAAAARLAAAOEcRAAEAAAASLAAAPEcRAAEAAAATLAAAQEcRAAEAAAAULAAAREcRAAEAAAAVLAAASEcRAAEAAAAWLAAATEcRAAEAAAAXLAAAUEcRAAEAAAAYLAAAVEcRAAEAAAAZLAAAWEcRAAEAAAAaLAAAXEcRAAEAAAAbLAAAYEcRAAEAAAAcLAAAZEcRAAEAAAAdLAAAaEcRAAEAAAAeLAAAbEcRAAEAAAAfLAAAcEcRAAEAAAAgLAAAdEcRAAEAAAAhLAAAeEcRAAEAAAAiLAAAfEcRAAEAAAAjLAAAgEcRAAEAAAAkLAAAhEcRAAEAAAAlLAAAiEcRAAEAAAAmLAAAjEcRAAEAAAAnLAAAkEcRAAEAAAAoLAAAlEcRAAEAAAApLAAAmEcRAAEAAAAqLAAAnEcRAAEAAAArLAAAoEcRAAEAAAAsLAAApEcRAAEAAAAtLAAAqEcRAAEAAAAuLAAArEcRAAEAAAAvLAAAsEcRAAEAAAAwLAAAtEcRAAEAAAAxLAAAuEcRAAEAAAAyLAAAvEcRAAEAAAAzLAAAwEcRAAEAAAA0LAAAxEcRAAEAAAA1LAAAyEcRAAEAAAA2LAAAzEcRAAEAAAA3LAAA0EcRAAEAAAA4LAAA1EcRAAEAAAA5LAAA2EcRAAEAAAA6LAAA3EcRAAEAAAA7LAAA4EcRAAEAAAA8LAAA5EcRAAEAAAA9LAAA6EcRAAEAAAA+LAAA7EcRAAEAAAA/LAAA8EcRAAEAAABALAAA9EcRAAEAAABBLAAA+EcRAAEAAABCLAAA/EcRAAEAAABDLAAAAEgRAAEAAABELAAABEgRAAEAAABFLAAACEgRAAEAAABGLAAADEgRAAEAAABHLAAAEEgRAAEAAABILAAAFEgRAAEAAABJLAAAGEgRAAEAAABKLAAAHEgRAAEAAABLLAAAIEgRAAEAAABMLAAAJEgRAAEAAABNLAAAKEgRAAEAAABOLAAALEgRAAEAAABPLAAAMEgRAAEAAABQLAAANEgRAAEAAABRLAAAOEgRAAEAAABSLAAAPEgRAAEAAABTLAAAQEgRAAEAAABULAAAREgRAAEAAABVLAAASEgRAAEAAABWLAAATEgRAAEAAABXLAAAUEgRAAEAAABYLAAAVEgRAAEAAABZLAAAWEgRAAEAAABaLAAAXEgRAAEAAABbLAAAYEgRAAEAAABcLAAAZEgRAAEAAABdLAAAaEgRAAEAAABeLAAAbEgRAAEAAABfLAAAcEgRAAEAAABgLAAAdEgRAAEAAABhLAAAeEgRAAEAAABiLAAAfEgRAAEAAABjLAAAgEgRAAEAAABkLAAAhEgRAAEAAABlLAAAiEgRAAEAAABmLAAAjEgRAAEAAABnLAAAkEgRAAEAAABoLAAAlEgRAAEAAABpLAAAmEgRAAEAAABqLAAAnEgRAAEAAABrLAAAoEgRAAEAAABsLAAApEgRAAEAAABtLAAAqEgRAAEAAABuLAAArEgRAAEAAABvLAAAsEgRAAEAAABwLAAAtEgRAAEAAAByLAAAuEgRAAEAAABzLAAAvEgRAAEAAAB1LAAAwEgRAAEAAAB2LAAAxEgRAAEAAAB+LAAAyEgRAAEAAAB/LAAAzEgRAAEAAACALAAA0EgRAAEAAACBLAAA1EgRAAEAAACCLAAA2EgRAAEAAACDLAAA3EgRAAEAAACELAAA4EgRAAEAAACFLAAA5EgRAAEAAACGLAAA6EgRAAEAAACHLAAA7EgRAAEAAACILAAA8EgRAAEAAACJLAAA9EgRAAEAAACKLAAA+EgRAAEAAACLLAAA/EgRAAEAAACMLAAAAEkRAAEAAACNLAAABEkRAAEAAACOLAAACEkRAAEAAACPLAAADEkRAAEAAACQLAAAEEkRAAEAAACRLAAAFEkRAAEAAACSLAAAGEkRAAEAAACTLAAAHEkRAAEAAACULAAAIEkRAAEAAACVLAAAJEkRAAEAAACWLAAAKEkRAAEAAACXLAAALEkRAAEAAACYLAAAMEkRAAEAAACZLAAANEkRAAEAAACaLAAAOEkRAAEAAACbLAAAPEkRAAEAAACcLAAAQEkRAAEAAACdLAAAREkRAAEAAACeLAAASEkRAAEAAACfLAAATEkRAAEAAACgLAAAUEkRAAEAAAChLAAAVEkRAAEAAACiLAAAWEkRAAEAAACjLAAAXEkRAAEAAACkLAAAYEkRAAEAAAClLAAAZEkRAAEAAACmLAAAaEkRAAEAAACnLAAAbEkRAAEAAACoLAAAcEkRAAEAAACpLAAAdEkRAAEAAACqLAAAeEkRAAEAAACrLAAAfEkRAAEAAACsLAAAgEkRAAEAAACtLAAAhEkRAAEAAACuLAAAiEkRAAEAAACvLAAAjEkRAAEAAACwLAAAkEkRAAEAAACxLAAAlEkRAAEAAACyLAAAmEkRAAEAAACzLAAAnEkRAAEAAAC0LAAAoEkRAAEAAAC1LAAApEkRAAEAAAC2LAAAqEkRAAEAAAC3LAAArEkRAAEAAAC4LAAAsEkRAAEAAAC5LAAAtEkRAAEAAAC6LAAAuEkRAAEAAAC7LAAAvEkRAAEAAAC8LAAAwEkRAAEAAAC9LAAAxEkRAAEAAAC+LAAAyEkRAAEAAAC/LAAAzEkRAAEAAADALAAA0EkRAAEAAADBLAAA1EkRAAEAAADCLAAA2EkRAAEAAADDLAAA3EkRAAEAAADELAAA4EkRAAEAAADFLAAA5EkRAAEAAADGLAAA6EkRAAEAAADHLAAA7EkRAAEAAADILAAA8EkRAAEAAADJLAAA9EkRAAEAAADKLAAA+EkRAAEAAADLLAAA/EkRAAEAAADMLAAAAEoRAAEAAADNLAAABEoRAAEAAADOLAAACEoRAAEAAADPLAAADEoRAAEAAADQLAAAEEoRAAEAAADRLAAAFEoRAAEAAADSLAAAGEoRAAEAAADTLAAAHEoRAAEAAADULAAAIEoRAAEAAADVLAAAJEoRAAEAAADWLAAAKEoRAAEAAADXLAAALEoRAAEAAADYLAAAMEoRAAEAAADZLAAANEoRAAEAAADaLAAAOEoRAAEAAADbLAAAPEoRAAEAAADcLAAAQEoRAAEAAADdLAAAREoRAAEAAADeLAAASEoRAAEAAADfLAAATEoRAAEAAADgLAAAUEoRAAEAAADhLAAAVEoRAAEAAADiLAAAWEoRAAEAAADjLAAAXEoRAAEAAADrLAAAYEoRAAEAAADsLAAAZEoRAAEAAADtLAAAaEoRAAEAAADuLAAAbEoRAAEAAADyLAAAcEoRAAEAAADzLAAAdEoRAAEAAAAALQAAeEoRAAEAAAABLQAAfEoRAAEAAAACLQAAgEoRAAEAAAADLQAAhEoRAAEAAAAELQAAiEoRAAEAAAAFLQAAjEoRAAEAAAAGLQAAkEoRAAEAAAAHLQAAlEoRAAEAAAAILQAAmEoRAAEAAAAJLQAAnEoRAAEAAAAKLQAAoEoRAAEAAAALLQAApEoRAAEAAAAMLQAAqEoRAAEAAAANLQAArEoRAAEAAAAOLQAAsEoRAAEAAAAPLQAAtEoRAAEAAAAQLQAAuEoRAAEAAAARLQAAvEoRAAEAAAASLQAAwEoRAAEAAAATLQAAxEoRAAEAAAAULQAAyEoRAAEAAAAVLQAAzEoRAAEAAAAWLQAA0EoRAAEAAAAXLQAA1EoRAAEAAAAYLQAA2EoRAAEAAAAZLQAA3EoRAAEAAAAaLQAA4EoRAAEAAAAbLQAA5EoRAAEAAAAcLQAA6EoRAAEAAAAdLQAA7EoRAAEAAAAeLQAA8EoRAAEAAAAfLQAA9EoRAAEAAAAgLQAA+EoRAAEAAAAhLQAA/EoRAAEAAAAiLQAAAEsRAAEAAAAjLQAABEsRAAEAAAAkLQAACEsRAAEAAAAlLQAADEsRAAEAAAAnLQAAEEsRAAEAAAAtLQAAFEsRAAEAAABApgAAGEsRAAEAAABBpgAAHEsRAAEAAABCpgAAIEsRAAEAAABDpgAAJEsRAAEAAABEpgAAKEsRAAEAAABFpgAALEsRAAEAAABGpgAAMEsRAAEAAABHpgAANEsRAAEAAABIpgAAOEsRAAEAAABJpgAAPEsRAAEAAABKpgAAQEsRAAIAAABLpgAASEsRAAIAAABMpgAAUEsRAAEAAABNpgAAVEsRAAEAAABOpgAAWEsRAAEAAABPpgAAXEsRAAEAAABQpgAAYEsRAAEAAABRpgAAZEsRAAEAAABSpgAAaEsRAAEAAABTpgAAbEsRAAEAAABUpgAAcEsRAAEAAABVpgAAdEsRAAEAAABWpgAAeEsRAAEAAABXpgAAfEsRAAEAAABYpgAAgEsRAAEAAABZpgAAhEsRAAEAAABapgAAiEsRAAEAAABbpgAAjEsRAAEAAABcpgAAkEsRAAEAAABdpgAAlEsRAAEAAABepgAAmEsRAAEAAABfpgAAnEsRAAEAAABgpgAAoEsRAAEAAABhpgAApEsRAAEAAABipgAAqEsRAAEAAABjpgAArEsRAAEAAABkpgAAsEsRAAEAAABlpgAAtEsRAAEAAABmpgAAuEsRAAEAAABnpgAAvEsRAAEAAABopgAAwEsRAAEAAABppgAAxEsRAAEAAABqpgAAyEsRAAEAAABrpgAAzEsRAAEAAABspgAA0EsRAAEAAABtpgAA1EsRAAEAAACApgAA2EsRAAEAAACBpgAA3EsRAAEAAACCpgAA4EsRAAEAAACDpgAA5EsRAAEAAACEpgAA6EsRAAEAAACFpgAA7EsRAAEAAACGpgAA8EsRAAEAAACHpgAA9EsRAAEAAACIpgAA+EsRAAEAAACJpgAA/EsRAAEAAACKpgAAAEwRAAEAAACLpgAABEwRAAEAAACMpgAACEwRAAEAAACNpgAADEwRAAEAAACOpgAAEEwRAAEAAACPpgAAFEwRAAEAAACQpgAAGEwRAAEAAACRpgAAHEwRAAEAAACSpgAAIEwRAAEAAACTpgAAJEwRAAEAAACUpgAAKEwRAAEAAACVpgAALEwRAAEAAACWpgAAMEwRAAEAAACXpgAANEwRAAEAAACYpgAAOEwRAAEAAACZpgAAPEwRAAEAAACapgAAQEwRAAEAAACbpgAAREwRAAEAAAAipwAASEwRAAEAAAAjpwAATEwRAAEAAAAkpwAAUEwRAAEAAAAlpwAAVEwRAAEAAAAmpwAAWEwRAAEAAAAnpwAAXEwRAAEAAAAopwAAYEwRAAEAAAAppwAAZEwRAAEAAAAqpwAAaEwRAAEAAAArpwAAbEwRAAEAAAAspwAAcEwRAAEAAAAtpwAAdEwRAAEAAAAupwAAeEwRAAEAAAAvpwAAfEwRAAEAAAAypwAAgEwRAAEAAAAzpwAAhEwRAAEAAAA0pwAAiEwRAAEAAAA1pwAAjEwRAAEAAAA2pwAAkEwRAAEAAAA3pwAAlEwRAAEAAAA4pwAAmEwRAAEAAAA5pwAAnEwRAAEAAAA6pwAAoEwRAAEAAAA7pwAApEwRAAEAAAA8pwAAqEwRAAEAAAA9pwAArEwRAAEAAAA+pwAAsEwRAAEAAAA/pwAAtEwRAAEAAABApwAAuEwRAAEAAABBpwAAvEwRAAEAAABCpwAAwEwRAAEAAABDpwAAxEwRAAEAAABEpwAAyEwRAAEAAABFpwAAzEwRAAEAAABGpwAA0EwRAAEAAABHpwAA1EwRAAEAAABIpwAA2EwRAAEAAABJpwAA3EwRAAEAAABKpwAA4EwRAAEAAABLpwAA5EwRAAEAAABMpwAA6EwRAAEAAABNpwAA7EwRAAEAAABOpwAA8EwRAAEAAABPpwAA9EwRAAEAAABQpwAA+EwRAAEAAABRpwAA/EwRAAEAAABSpwAAAE0RAAEAAABTpwAABE0RAAEAAABUpwAACE0RAAEAAABVpwAADE0RAAEAAABWpwAAEE0RAAEAAABXpwAAFE0RAAEAAABYpwAAGE0RAAEAAABZpwAAHE0RAAEAAABapwAAIE0RAAEAAABbpwAAJE0RAAEAAABcpwAAKE0RAAEAAABdpwAALE0RAAEAAABepwAAME0RAAEAAABfpwAANE0RAAEAAABgpwAAOE0RAAEAAABhpwAAPE0RAAEAAABipwAAQE0RAAEAAABjpwAARE0RAAEAAABkpwAASE0RAAEAAABlpwAATE0RAAEAAABmpwAAUE0RAAEAAABnpwAAVE0RAAEAAABopwAAWE0RAAEAAABppwAAXE0RAAEAAABqpwAAYE0RAAEAAABrpwAAZE0RAAEAAABspwAAaE0RAAEAAABtpwAAbE0RAAEAAABupwAAcE0RAAEAAABvpwAAdE0RAAEAAAB5pwAAeE0RAAEAAAB6pwAAfE0RAAEAAAB7pwAAgE0RAAEAAAB8pwAAhE0RAAEAAAB9pwAAiE0RAAEAAAB+pwAAjE0RAAEAAAB/pwAAkE0RAAEAAACApwAAlE0RAAEAAACBpwAAmE0RAAEAAACCpwAAnE0RAAEAAACDpwAAoE0RAAEAAACEpwAApE0RAAEAAACFpwAAqE0RAAEAAACGpwAArE0RAAEAAACHpwAAsE0RAAEAAACLpwAAtE0RAAEAAACMpwAAuE0RAAEAAACNpwAAvE0RAAEAAACQpwAAwE0RAAEAAACRpwAAxE0RAAEAAACSpwAAyE0RAAEAAACTpwAAzE0RAAEAAACUpwAA0E0RAAEAAACWpwAA1E0RAAEAAACXpwAA2E0RAAEAAACYpwAA3E0RAAEAAACZpwAA4E0RAAEAAACapwAA5E0RAAEAAACbpwAA6E0RAAEAAACcpwAA7E0RAAEAAACdpwAA8E0RAAEAAACepwAA9E0RAAEAAACfpwAA+E0RAAEAAACgpwAA/E0RAAEAAAChpwAAAE4RAAEAAACipwAABE4RAAEAAACjpwAACE4RAAEAAACkpwAADE4RAAEAAAClpwAAEE4RAAEAAACmpwAAFE4RAAEAAACnpwAAGE4RAAEAAACopwAAHE4RAAEAAACppwAAIE4RAAEAAACqpwAAJE4RAAEAAACrpwAAKE4RAAEAAACspwAALE4RAAEAAACtpwAAME4RAAEAAACupwAANE4RAAEAAACwpwAAOE4RAAEAAACxpwAAPE4RAAEAAACypwAAQE4RAAEAAACzpwAARE4RAAEAAAC0pwAASE4RAAEAAAC1pwAATE4RAAEAAAC2pwAAUE4RAAEAAAC3pwAAVE4RAAEAAAC4pwAAWE4RAAEAAAC5pwAAXE4RAAEAAAC6pwAAYE4RAAEAAAC7pwAAZE4RAAEAAAC8pwAAaE4RAAEAAAC9pwAAbE4RAAEAAAC+pwAAcE4RAAEAAAC/pwAAdE4RAAEAAADApwAAeE4RAAEAAADBpwAAfE4RAAEAAADCpwAAgE4RAAEAAADDpwAAhE4RAAEAAADEpwAAiE4RAAEAAADFpwAAjE4RAAEAAADGpwAAkE4RAAEAAADHpwAAlE4RAAEAAADIpwAAmE4RAAEAAADJpwAAnE4RAAEAAADKpwAAoE4RAAEAAADQpwAApE4RAAEAAADRpwAAqE4RAAEAAADWpwAArE4RAAEAAADXpwAAsE4RAAEAAADYpwAAtE4RAAEAAADZpwAAuE4RAAEAAAD1pwAAvE4RAAEAAAD2pwAAwE4RAAEAAABTqwAAxE4RAAEAAABwqwAAyE4RAAEAAABxqwAAzE4RAAEAAAByqwAA0E4RAAEAAABzqwAA1E4RAAEAAAB0qwAA2E4RAAEAAAB1qwAA3E4RAAEAAAB2qwAA4E4RAAEAAAB3qwAA5E4RAAEAAAB4qwAA6E4RAAEAAAB5qwAA7E4RAAEAAAB6qwAA8E4RAAEAAAB7qwAA9E4RAAEAAAB8qwAA+E4RAAEAAAB9qwAA/E4RAAEAAAB+qwAAAE8RAAEAAAB/qwAABE8RAAEAAACAqwAACE8RAAEAAACBqwAADE8RAAEAAACCqwAAEE8RAAEAAACDqwAAFE8RAAEAAACEqwAAGE8RAAEAAACFqwAAHE8RAAEAAACGqwAAIE8RAAEAAACHqwAAJE8RAAEAAACIqwAAKE8RAAEAAACJqwAALE8RAAEAAACKqwAAME8RAAEAAACLqwAANE8RAAEAAACMqwAAOE8RAAEAAACNqwAAPE8RAAEAAACOqwAAQE8RAAEAAACPqwAARE8RAAEAAACQqwAASE8RAAEAAACRqwAATE8RAAEAAACSqwAAUE8RAAEAAACTqwAAVE8RAAEAAACUqwAAWE8RAAEAAACVqwAAXE8RAAEAAACWqwAAYE8RAAEAAACXqwAAZE8RAAEAAACYqwAAaE8RAAEAAACZqwAAbE8RAAEAAACaqwAAcE8RAAEAAACbqwAAdE8RAAEAAACcqwAAeE8RAAEAAACdqwAAfE8RAAEAAACeqwAAgE8RAAEAAACfqwAAhE8RAAEAAACgqwAAiE8RAAEAAAChqwAAjE8RAAEAAACiqwAAkE8RAAEAAACjqwAAlE8RAAEAAACkqwAAmE8RAAEAAAClqwAAnE8RAAEAAACmqwAAoE8RAAEAAACnqwAApE8RAAEAAACoqwAAqE8RAAEAAACpqwAArE8RAAEAAACqqwAAsE8RAAEAAACrqwAAtE8RAAEAAACsqwAAuE8RAAEAAACtqwAAvE8RAAEAAACuqwAAwE8RAAEAAACvqwAAxE8RAAEAAACwqwAAyE8RAAEAAACxqwAAzE8RAAEAAACyqwAA0E8RAAEAAACzqwAA1E8RAAEAAAC0qwAA2E8RAAEAAAC1qwAA3E8RAAEAAAC2qwAA4E8RAAEAAAC3qwAA5E8RAAEAAAC4qwAA6E8RAAEAAAC5qwAA7E8RAAEAAAC6qwAA8E8RAAEAAAC7qwAA9E8RAAEAAAC8qwAA+E8RAAEAAAC9qwAA/E8RAAEAAAC+qwAAAFARAAEAAAC/qwAABFARAAEAAAAh/wAACFARAAEAAAAi/wAADFARAAEAAAAj/wAAEFARAAEAAAAk/wAAFFARAAEAAAAl/wAAGFARAAEAAAAm/wAAHFARAAEAAAAn/wAAIFARAAEAAAAo/wAAJFARAAEAAAAp/wAAKFARAAEAAAAq/wAALFARAAEAAAAr/wAAMFARAAEAAAAs/wAANFARAAEAAAAt/wAAOFARAAEAAAAu/wAAPFARAAEAAAAv/wAAQFARAAEAAAAw/wAARFARAAEAAAAx/wAASFARAAEAAAAy/wAATFARAAEAAAAz/wAAUFARAAEAAAA0/wAAVFARAAEAAAA1/wAAWFARAAEAAAA2/wAAXFARAAEAAAA3/wAAYFARAAEAAAA4/wAAZFARAAEAAAA5/wAAaFARAAEAAAA6/wAAbFARAAEAAABB/wAAcFARAAEAAABC/wAAdFARAAEAAABD/wAAeFARAAEAAABE/wAAfFARAAEAAABF/wAAgFARAAEAAABG/wAAhFARAAEAAABH/wAAiFARAAEAAABI/wAAjFARAAEAAABJ/wAAkFARAAEAAABK/wAAlFARAAEAAABL/wAAmFARAAEAAABM/wAAnFARAAEAAABN/wAAoFARAAEAAABO/wAApFARAAEAAABP/wAAqFARAAEAAABQ/wAArFARAAEAAABR/wAAsFARAAEAAABS/wAAtFARAAEAAABT/wAAuFARAAEAAABU/wAAvFARAAEAAABV/wAAwFARAAEAAABW/wAAxFARAAEAAABX/wAAyFARAAEAAABY/wAAzFARAAEAAABZ/wAA0FARAAEAAABa/wAA1FARAAEAAAAABAEA2FARAAEAAAABBAEA3FARAAEAAAACBAEA4FARAAEAAAADBAEA5FARAAEAAAAEBAEA6FARAAEAAAAFBAEA7FARAAEAAAAGBAEA8FARAAEAAAAHBAEA9FARAAEAAAAIBAEA+FARAAEAAAAJBAEA/FARAAEAAAAKBAEAAFERAAEAAAALBAEABFERAAEAAAAMBAEACFERAAEAAAANBAEADFERAAEAAAAOBAEAEFERAAEAAAAPBAEAFFERAAEAAAAQBAEAGFERAAEAAAARBAEAHFERAAEAAAASBAEAIFERAAEAAAATBAEAJFERAAEAAAAUBAEAKFERAAEAAAAVBAEALFERAAEAAAAWBAEAMFERAAEAAAAXBAEANFERAAEAAAAYBAEAOFERAAEAAAAZ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DAEAwFQRAAEAAACdDAEAxFQRAAEAAACeDAEAyFQRAAEAAACfDAEAzFQRAAEAAACgDAEA0FQRAAEAAAChDAEA1FQRAAEAAACiDAEA2FQRAAEAAACjDAEA3FQRAAEAAACkDAEA4FQRAAEAAAClDAEA5FQRAAEAAACmDAEA6FQRAAEAAACnDAEA7FQRAAEAAACoDAEA8FQRAAEAAACpDAEA9FQRAAEAAACqDAEA+FQRAAEAAACrDAEA/FQRAAEAAACsDAEAAFURAAEAAACtDAEABFURAAEAAACuDAEACFURAAEAAACvDAEADFURAAEAAACwDAEAEFURAAEAAACxDAEAFFURAAEAAACyDAEAGFURAAEAAADADAEAHFURAAEAAADBDAEAIFURAAEAAADCDAEAJFURAAEAAADDDAEAKFURAAEAAADEDAEALFURAAEAAADFDAEAMFURAAEAAADGDAEANFURAAEAAADHDAEAOFURAAEAAADIDAEAPFURAAEAAADJDAEAQFURAAEAAADKDAEARFURAAEAAADLDAEASFURAAEAAADMDAEATFURAAEAAADNDAEAUFURAAEAAADODAEAVFURAAEAAADPDAEAWFURAAEAAADQDAEAXFURAAEAAADRDAEAYFURAAEAAADSDAEAZFURAAEAAADTDAEAaFURAAEAAADUDAEAbFURAAEAAADVDAEAcFURAAEAAADWDAEAdFURAAEAAADXDAEAeFURAAEAAADYDAEAfFURAAEAAADZDAEAgFURAAEAAADaDAEAhFURAAEAAADbDAEAiFURAAEAAADcDAEAjFURAAEAAADdDAEAkFURAAEAAADeDAEAlFURAAEAAADfDAEAmFURAAEAAADgDAEAnFURAAEAAADhDAEAoFURAAEAAADiDAEApFURAAEAAADjDAEAqFURAAEAAADkDAEArFURAAEAAADlDAEAsFURAAEAAADmDAEAtFURAAEAAADnDAEAuFURAAEAAADoDAEAvFURAAEAAADpDAEAwFURAAEAAADqDAEAxFURAAEAAADrDAEAyFURAAEAAADsDAEAzFURAAEAAADtDAEA0FURAAEAAADuDAEA1FURAAEAAADvDAEA2FURAAEAAADwDAEA3FURAAEAAADxDAEA4FURAAEAAADyDAEA5FURAAEAAACgGAEA6FURAAEAAACh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5BEAZgAAAJsAAAARAAAANOQRAGYAAAC1AAAACQAAAEdlbmVyYWxfQ2F0ZWdvcnlTY3JpcHRjZnNjbGNBZ2VTY3JpcHRfRXh0ZW5zaW9uc0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWtTZW50ZW5jZV9CcmVha1dvcmRfQnJlYWsAADAAAAA5AAAAQQAAAFoAAABfAAAAXwAAAGEAAAB6AAAAqgAAAKoAAAC1AAAAtQAAALoAAAC6AAAAwAAAANYAAADYAAAA9gAAAPgAAADBAgAAxgIAANECAADgAgAA5AIAAOwCAADsAgAA7gIAAO4CAAAAAwAAdAMAAHYDAAB3AwAAegMAAH0DAAB/AwAAfwMAAIYDAACGAwAAiAMAAIoDAACMAwAAjAMAAI4DAAChAwAAowMAAPUDAAD3AwAAgQQAAIMEAAAvBQAAMQUAAFYFAABZBQAAWQUAAGAFAACIBQAAkQUAAL0FAAC/BQAAvwUAAMEFAADCBQAAxAUAAMUFAADHBQAAxwUAANAFAADqBQAA7wUAAPIFAAAQBgAAGgYAACAGAABpBgAAbgYAANMGAADVBgAA3AYAAN8GAADoBgAA6gYAAPwGAAD/BgAA/wYAABAHAABKBwAATQcAALEHAADABwAA9QcAAPoHAAD6BwAA/QcAAP0HAAAACAAALQgAAEAIAABbCAAAYAgAAGoIAABwCAAAhwgAAIkIAACOCAAAmAgAAOEIAADjCAAAYwkAAGYJAABvCQAAcQkAAIMJAACFCQAAjAkAAI8JAACQCQAAkwkAAKgJAACqCQAAsAkAALIJAACyCQAAtgkAALkJAAC8CQAAxAkAAMcJAADICQAAywkAAM4JAADXCQAA1wkAANwJAADdCQAA3wkAAOMJAADmCQAA8QkAAPwJAAD8CQAA/gkAAP4JAAABCgAAAwoAAAUKAAAKCgAADwoAABAKAAATCgAAKAoAACoKAAAwCgAAMgoAADMKAAA1CgAANgoAADgKAAA5CgAAPAoAADwKAAA+CgAAQgoAAEcKAABICgAASwoAAE0KAABRCgAAUQoAAFkKAABcCgAAXgoAAF4KAABmCgAAdQoAAIEKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvAoAAMUKAADHCgAAyQoAAMsKAADNCgAA0AoAANAKAADgCgAA4woAAOYKAADvCgAA+QoAAP8KAAABCwAAAwsAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAADwLAABECwAARwsAAEgLAABLCwAATQsAAFULAABXCwAAXAsAAF0LAABfCwAAYwsAAGYLAABvCwAAcQsAAHELAACCCwAAgwsAAIULAACKCwAAjgsAAJALAACSCwAAlQsAAJkLAACaCwAAnAsAAJwLAACeCwAAnwsAAKMLAACkCwAAqAsAAKoLAACuCwAAuQsAAL4LAADCCwAAxgsAAMgLAADKCwAAzQsAANALAADQCwAA1wsAANcLAADmCwAA7wsAAAAMAAAMDAAADgwAABAMAAASDAAAKAwAACoMAAA5DAAAPAwAAEQMAABGDAAASAwAAEoMAABNDAAAVQwAAFYMAABYDAAAWgwAAF0MAABdDAAAYAwAAGMMAABmDAAAbwwAAIAMAACDDAAAhQwAAIwMAACODAAAkAwAAJIMAACoDAAAqgwAALMMAAC1DAAAuQwAALwMAADEDAAAxgwAAMgMAADKDAAAzQwAANUMAADWDAAA3QwAAN4MAADgDAAA4wwAAOYMAADvDAAA8QwAAPMMAAAADQAADA0AAA4NAAAQDQAAEg0AAEQNAABGDQAASA0AAEoNAABODQAAVA0AAFcNAABfDQAAYw0AAGYNAABvDQAAeg0AAH8NAACBDQAAgw0AAIUNAACWDQAAmg0AALENAACzDQAAuw0AAL0NAAC9DQAAwA0AAMYNAADKDQAAyg0AAM8NAADUDQAA1g0AANYNAADYDQAA3w0AAOYNAADvDQAA8g0AAPMNAAABDgAAOg4AAEAOAABODgAAUA4AAFkOAACBDgAAgg4AAIQOAACEDgAAhg4AAIoOAACMDgAAow4AAKUOAAClDgAApw4AAL0OAADADgAAxA4AAMYOAADGDgAAyA4AAM4OAADQDgAA2Q4AANwOAADfDgAAAA8AAAAPAAAYDwAAGQ8AACAPAAApDwAANQ8AADUPAAA3DwAANw8AADkPAAA5DwAAPg8AAEcPAABJDwAAbA8AAHEPAACEDwAAhg8AAJcPAACZDwAAvA8AAMYPAADGDwAAABAAAEkQAABQEAAAnRAAAKAQAADFEAAAxxAAAMcQAADN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bWdicGJicHRjYW5vbmljYWxjb21iaW5pbmdjbGFzc0Nhbm9uaWNhbF9Db21iaW5pbmdfQ2xhc3NjYXNlZENhc2VkY2FzZWZvbGRpbmdDYXNlX0ZvbGRpbmdjYXNlaWdub3JhYmxlQ2FzZV9JZ25vcmFibGVjY2NjZUNvbXBvc2l0aW9uX0V4Y2x1c2lvbmNoYW5nZXN3aGVuY2FzZWZvbGRlZENoYW5nZXNfV2hlbl9DYXNlZm9sZGVkY2hhbmdlc3doZW5jYXNlbWFwcGVkQ2hhbmdlc19XaGVuX0Nhc2VtYXBwZWRjaGFuZ2Vzd2hlbmxvd2VyY2FzZWRDaGFuZ2VzX1doZW5fTG93ZXJjYXNlZGNoYW5nZXN3aGVubmZrY2Nhc2Vmb2xkZWRDaGFuZ2VzX1doZW5fTkZLQ19DYXNlZm9sZGVkY2hhbmdlc3doZW50aXRsZWNhc2VkQ2hhbmdlc19XaGVuX1RpdGxlY2FzZWRjaGFuZ2Vzd2hlbnVwcGVyY2FzZWRDaGFuZ2VzX1doZW5fVXBwZXJjYXNlZGNpY2prYWNjb3VudGluZ251bWVyaWNrQWNjb3VudGluZ051bWVyaWNjamtjb21wYXRpYmlsaXR5dmFyaWFudGtDb21wYXRpYmlsaXR5VmFyaWFudGNqa2lpY29yZWtJSUNvcmVjamtpcmdnc291cmNla0lSR19HU291cmNlY2praXJnaHNvdXJjZWtJUkdfSFNvdXJjZWNqa2lyZ2pzb3VyY2VrSVJHX0pTb3VyY2VjamtpcmdrcHNvdXJjZWtJUkdfS1BTb3VyY2Vjamtpcmdrc291cmNla0lSR19LU291cmNlY2praXJnbXNvdXJjZWtJUkdfTVNvdXJjZWNqa2lyZ3Nzb3VyY2VrSVJHX1NTb3VyY2Vjamtpcmd0c291cmNla0lSR19UU291cmNlY2praXJndWtzb3VyY2VrSVJHX1VLU291cmNlY2praXJndXNvdXJjZWtJUkdfVVNvdXJjZWNqa2lyZ3Zzb3VyY2VrSVJHX1ZTb3VyY2VjamtvdGhlcm51bWVyaWNrT3RoZXJOdW1lcmljY2prcHJpbWFyeW51bWVyaWNrUHJpbWFyeU51bWVyaWNjamtyc3VuaWNvZGVrUlNVbmljb2RlY29tcGV4RnVsbF9Db21wb3NpdGlvbl9FeGNsdXNpb25jb21wb3NpdGlvbmV4Y2x1c2lvbmN3Y2Zjd2NtY3drY2Zjd2xjd3Rjd3VkYXNoRGFzaGRlY29tcG9zaXRpb25tYXBwaW5nRGVjb21wb3NpdGlvbl9NYXBwaW5nZGVjb21wb3NpdGlvbnR5cGVEZWNvbXBvc2l0aW9uX1R5cGVkZWZhdWx0aWdub3JhYmxlY29kZXBvaW50RGVmYXVsdF9JZ25vcmFibGVfQ29kZV9Qb2ludGRlcERlcHJlY2F0ZWRkZXByZWNhdGVkZGlkaWFEaWFjcml0aWNkaWFjcml0aWNkbWR0ZWFFYXN0X0FzaWFuX1dpZHRoZWFzdGFzaWFud2lkdGhlYmFzZUVtb2ppX01vZGlmaWVyX0Jhc2VlY29tcEVtb2ppX0NvbXBvbmVudGVtb2RFbW9qaV9Nb2RpZmllcmVtb2ppRW1vamllbW9qaWNvbXBvbmVudGVtb2ppbW9kaWZpZXJlbW9qaW1vZGlmaWVyYmFzZWVtb2ppcHJlc2VudGF0aW9uRW1vamlfUHJlc2VudGF0aW9uZXByZXNlcXVpZGVvRXF1aXZhbGVudF9VbmlmaWVkX0lkZW9ncmFwaGVxdWl2YWxlbnR1bmlmaWVkaWRlb2dyYXBoZXhwYW5kc29ubmZjRXhwYW5kc19Pbl9ORkNleHBhbmRzb25uZmRFeHBhbmRzX09uX05GRGV4cGFuZHNvbm5ma2NFeHBhbmRzX09uX05GS0NleHBhbmRzb25uZmtkRXhwYW5kc19Pbl9ORktEZXh0RXh0ZW5kZXJleHRlbmRlZHBpY3RvZ3JhcGhpY0V4dGVuZGVkX1BpY3RvZ3JhcGhpY2V4dGVuZGVyZXh0cGljdGZjbmZrY0ZDX05GS0NfQ2xvc3VyZWZjbmZrY2Nsb3N1cmVmdWxsY29tcG9zaXRpb25leGNsdXNpb25nY2djYmdlbmVyYWxjYXRlZ29yeWdyYXBoZW1lYmFzZUdyYXBoZW1lX0Jhc2VncmFwaGVtZWNsdXN0ZXJicmVha2dyYXBoZW1lZXh0ZW5kR3JhcGhlbWVfRXh0ZW5kZ3JhcGhlbWVsaW5rR3JhcGhlbWVfTGlua2dyYmFzZWdyZXh0Z3JsaW5raGFuZ3Vsc3lsbGFibGV0eXBlSGFuZ3VsX1N5bGxhYmxlX1R5cGVoZXhIZXhfRGlnaXRoZXhkaWdpdGhzdGh5cGhlbkh5cGhlbmlkY0lEX0NvbnRpbnVlaWRjb250aW51ZWlkZW9JZGVvZ3JhcGhpY2lkZW9ncmFwaGljaWRzSURfU3RhcnRpZHNiSURTX0JpbmFyeV9PcGVyYXRvcmlkc2JpbmFyeW9wZXJhdG9yaWRzdElEU19UcmluYXJ5X09wZXJhdG9yaWRzdGFydGlkc3RyaW5hcnlvcGVyYXRvcmluZGljcG9zaXRpb25hbGNhdGVnb3J5SW5kaWNfUG9zaXRpb25hbF9DYXRlZ29yeWluZGljc3lsbGFiaWNjYXRlZ29yeUluZGljX1N5bGxhYmljX0NhdGVnb3J5aW5wY2luc2Npc2NJU09fQ29tbWVudGphbW9zaG9ydG5hbWVKYW1vX1Nob3J0X05hbWVqZ0pvaW5pbmdfR3JvdXBqb2luY0pvaW5fQ29udHJvbGpvaW5jb250cm9sam9pbmluZ2dyb3Vwam9pbmluZ3R5cGVKb2luaW5nX1R5cGVqc25qdGthY2NvdW50aW5nbnVtZXJpY2tjb21wYXRpYmlsaXR5dmFyaWFudGtpaWNvcmVraXJnZ3NvdXJjZWtpcmdoc291cmNla2lyZ2pzb3VyY2VraXJna3Bzb3VyY2VraXJna3NvdXJjZWtpcmdtc291cmNla2lyZ3Nzb3VyY2VraXJndHNvdXJjZWtpcmd1a3NvdXJjZWtpcmd1c291cmNla2lyZ3Zzb3VyY2Vrb3RoZXJudW1lcmlja3ByaW1hcnludW1lcmlja3JzdW5pY29kZWxiTGluZV9CcmVha0xvd2VyY2FzZV9NYXBwaW5nbGluZWJyZWFrbG9lTG9naWNhbF9PcmRlcl9FeGNlcHRpb25sb2dpY2Fsb3JkZXJleGNlcHRpb25Mb3dlcmNhc2Vsb3dlcmNhc2Vsb3dlcmNhc2VtYXBwaW5nbWF0aE1hdGhuYU5hbWVuYTFVbmljb2RlXzFfTmFtZW5hbWVhbGlhc05hbWVfQWxpYXNuY2hhck5vbmNoYXJhY3Rlcl9Db2RlX1BvaW50bmZjcWNORkNfUXVpY2tfQ2hlY2tuZmNxdWlja2NoZWNrbmZkcWNORkRfUXVpY2tfQ2hlY2tuZmRxdWlja2NoZWNrbmZrY2Nhc2Vmb2xkTkZLQ19DYXNlZm9sZG5ma2NjZm5ma2NxY05GS0NfUXVpY2tfQ2hlY2tuZmtjcXVpY2tjaGVja25ma2RxY05GS0RfUXVpY2tfQ2hlY2tuZmtkcXVpY2tjaGVja25vbmNoYXJhY3RlcmNvZGVwb2ludG50TnVtZXJpY19UeXBlbnVtZXJpY3R5cGVudW1lcmljdmFsdWVOdW1lcmljX1ZhbHVlbnZvYWxwaGFPdGhlcl9BbHBoYWJldGljb2NvbW1lbnRvZGlPdGhlcl9EZWZhdWx0X0lnbm9yYWJsZV9Db2RlX1BvaW50b2dyZXh0T3RoZXJfR3JhcGhlbWVfRXh0ZW5kb2lkY090aGVyX0lEX0NvbnRpbnVlb2lkc090aGVyX0lEX1N0YXJ0b2xvd2VyT3RoZXJfTG93ZXJjYXNlb21hdGhPdGhlcl9NYXRob3RoZXJhbHBoYWJldGljb3RoZXJkZWZhdWx0aWdub3JhYmxlY29kZXBvaW50b3RoZXJncmFwaGVtZWV4dGVuZG90aGVyaWRjb250aW51ZW90aGVyaWRzdGFydG90aGVybG93ZXJjYXNlb3RoZXJtYXRob3RoZXJ1cHBlcmNhc2VPdGhlcl9VcHBlcmNhc2VvdXBwZXJwYXRzeW5QYXR0ZXJuX1N5bnRheHBhdHRlcm5zeW50YXhwYXR0ZXJud2hpdGVzcGFjZVBhdHRlcm5fV2hpdGVfU3BhY2VwYXR3c3BjbVByZXBlbmRlZF9Db25jYXRlbmF0aW9uX01hcmtwcmVwZW5kZWRjb25jYXRlbmF0aW9ubWFya3FtYXJrUXVvdGF0aW9uX01hcmtxdW90YXRpb25tYXJrcmFkaWNhbFJhZGljYWxyZWdpb25hbGluZGljYXRvclJlZ2lvbmFsX0luZGljYXRvcnJpc2JzY2ZTaW1wbGVfQ2FzZV9Gb2xkaW5nc2NyaXB0ZXh0ZW5zaW9uc3NjeHNkU29mdF9Eb3R0ZWRzZW50ZW5jZWJyZWFrc2VudGVuY2V0ZXJtaW5hbFNlbnRlbmNlX1Rlcm1pbmFsc2Zjc2ltcGxlY2FzZWZvbGRpbmdzaW1wbGVsb3dlcmNhc2VtYXBwaW5nU2ltcGxlX0xvd2VyY2FzZV9NYXBwaW5nc2ltcGxldGl0bGVjYXNlbWFwcGluZ1NpbXBsZV9UaXRsZWNhc2VfTWFwcGluZ3NpbXBsZXVwcGVyY2FzZW1hcHBpbmdTaW1wbGVfVXBwZXJjYXNlX01hcHBpbmdzbGNzb2Z0ZG90dGVkV2hpdGVfU3BhY2VzdGNzdGVybXN1Y3RjVGl0bGVjYXNlX01hcHBpbmd0ZXJtVGVybWluYWxfUHVuY3R1YXRpb250ZXJtaW5hbHB1bmN0dWF0aW9udGl0bGVjYXNlbWFwcGluZ3VjVXBwZXJjYXNlX01hcHBpbmd1aWRlb1VuaWZpZWRfSWRlb2dyYXBodW5pY29kZTFuYW1ldW5pY29kZXJhZGljYWxzdHJva2V1bmlmaWVkaWRlb2dyYXBoVXBwZXJjYXNldXBwZXJjYXNldXBwZXJjYXNlbWFwcGluZ3Vyc3ZhcmlhdGlvbnNlbGVjdG9yVmFyaWF0aW9uX1NlbGVjdG9ydmVydGljYWxvcmllbnRhdGlvblZlcnRpY2FsX09yaWVudGF0aW9udm92c3did2hpdGVzcGFjZXdvcmRicmVha3dzcGFjZXhpZGNYSURfQ29udGludWV4aWRjb250aW51ZXhpZHNYSURfU3RhcnR4aWRzdGFydHhvbmZjeG9uZmR4b25ma2N4b25ma2Ts/xEAAwAAAAjlEQADAAAA7/8RAAQAAADz/xEADwAAAC1lFgAFAAAAAgASAAoAAAAMABIACgAAAAIAEgAKAAAAFgASAA0AAADz/xEADwAAACMAEgACAAAAJQASAAoAAAAvABIABQAAADQAEgAMAAAAQAASAAkAAAAlABIACgAAAEkAEgALAAAANAASAAwAAABUABIABQAAAFkAEgANAAAAZgASAAwAAABZABIADQAAAHIAEgASAAAAhAASABQAAACYABIAEQAAAKkAEgATAAAAvAASABUAAADRABIAGAAAAOkAEgADAAAA0iAYAAUAAAAfIhgABQAAANIgGAAFAAAA7AASAAMAAACEABIAFAAAAO8AEgADAAAAqQASABMAAADyABIAAwAAANEAEgAYAAAA9QASABcAAAAMARIAGQAAACUBEgAFAAAAKgESAAUAAAAvARIACwAAADoBEgAMAAAARgESAA0AAABTARIADgAAAGEBEgADAAAADAESABkAAABkARIAAgAAAGYBEgAVAAAAAuURAAIAAAA6ARIADAAAAHsBEgAVAAAAkAESABcAAACnARIAFQAAALwBEgAXAAAA0wESABUAAADoARIAFwAAAP8BEgAZAAAAGAISABwAAAA0AhIAFQAAAEkCEgAXAAAAYAISABUAAAB1AhIAFwAAAIwCEgACAAAAUwESAA4AAACOAhIAFAAAAKICEgASAAAAtAISABcAAADLAhIAFQAAAOACEgAJAAAA6QISAAcAAADwAhIADQAAAP0CEgAMAAAACQMSAA0AAAAWAxIADAAAACIDEgANAAAALwMSAAwAAAA7AxIADgAAAEkDEgANAAAAVgMSAA0AAABjAxIADAAAAG8DEgANAAAAfAMSAAwAAACIAxIADQAAAJUDEgAMAAAAoQMSAA0AAACuAxIADAAAALoDEgAOAAAAyAMSAA0AAADVAxIADQAAAOIDEgAMAAAA7gMSAA0AAAD7AxIADAAAAAcEEgAPAAAAFgQSAA0AAAAjBBIAEQAAADQEEgAPAAAAQwQSAAwAAABPBBIACgAAAFkEEgAGAAAAXwQSABoAAAB5BBIAFAAAAGYBEgAVAAAAjQQSAAQAAACQARIAFwAAAJEEEgAEAAAAvAESABcAAACVBBIABQAAABgCEgAcAAAAmgQSAAMAAADoARIAFwAAAJ0EEgADAAAASQISABcAAACgBBIAAwAAAHUCEgAXAAAAowQSAAQAAACnBBIABAAAAKsEEgAUAAAAvwQSABUAAADUBBIAEQAAAOUEEgASAAAA9wQSABkAAAAQBRIAHAAAACwFEgADAAAALwUSAAoAAAA5BRIACgAAAC8FEgAKAAAAQwUSAAIAAAAQBRIAHAAAAEUFEgADAAAASAUSAAkAAABRBRIACQAAAEgFEgAJAAAAWgUSAAIAAAC/BBIAFQAAAFwFEgACAAAA5QQSABIAAABeBRIAAgAAAGAFEgAQAAAAcAUSAA4AAABgBRIAEAAAAH4FEgAFAAAAgwUSABMAAACWBRIABQAAAJsFEgAPAAAAqgUSAAQAAACuBRIADgAAALwFEgAFAAAAwQUSAAUAAADGBRIADgAAAJsFEgAPAAAA1AUSAA0AAACuBRIADgAAAOEFEgARAAAAgwUSABMAAADyBRIAEQAAAAMGEgASAAAAFQYSAAUAAAADBhIAEgAAABoGEgAHAAAAIQYSABwAAAA9BhIAGgAAACEGEgAcAAAAVwYSAAwAAABjBhIADgAAAHEGEgAMAAAAfQYSAA4AAACLBhIADQAAAJgGEgAPAAAApwYSAA0AAAC0BhIADwAAAMMGEgADAAAAxgYSAAgAAADOBhIAFAAAAOIGEgAVAAAA9wYSAAgAAADGBhIACAAAAP8GEgAHAAAA4gYSABUAAAAGBxIABgAAAAwHEgAPAAAAGwcSAA0AAAAMBxIADwAAACgHEgAYAAAAXwQSABoAAABABxIAAgAAAOzkEQAQAAAAQgcSAAMAAAAc5REAFgAAAEUHEgAPAAAA7OQRABAAAABUBxIADAAAAGAHEgANAAAAbQcSABQAAAAc5REAFgAAAIEHEgAOAAAAjwcSAA8AAACeBxIADAAAAKoHEgANAAAAtwcSAAYAAABgBxIADQAAAL0HEgAFAAAAjwcSAA8AAADCBxIABgAAAKoHEgANAAAAyAcSABIAAADaBxIAFAAAAO4HEgADAAAA8QcSAAkAAAD6BxIACAAAAPEHEgAJAAAAAggSAAMAAADaBxIAFAAAAAUIEgAGAAAACwgSAAYAAAARCBIAAwAAABQIEgALAAAAHwgSAAoAAAAUCBIACwAAACkIEgAEAAAALQgSAAsAAAA4CBIACwAAAC0IEgALAAAAQwgSAAMAAABGCBIACAAAAE4IEgAEAAAAUggSABMAAABlCBIAEQAAAFIIEgATAAAAdggSAAQAAAB6CBIAFAAAAI4IEgAHAAAARggSAAgAAACVCBIAEgAAAHoIEgAUAAAApwgSABcAAAC+CBIAGQAAANcIEgAVAAAA7AgSABcAAAADCRIABAAAAL4IEgAZAAAABwkSAAQAAADsCBIAFwAAAAsJEgADAAAADgkSAAsAAAAZCRIADQAAACYJEgAPAAAANQkSAAIAAAA3CRIADQAAAEQJEgAFAAAASQkSAAwAAABVCRIACwAAAEkJEgAMAAAAYAkSAAwAAAA3CRIADQAAAGwJEgALAAAAdwkSAAwAAACDCRIAAwAAACYJEgAPAAAAhgkSAAIAAAB3CRIADAAAAIgJEgASAAAAogISABIAAACaCRIAFQAAAMsCEgAVAAAArwkSAAcAAADpAhIABwAAALYJEgALAAAA/QISAAwAAADBCRIACwAAABYDEgAMAAAAzAkSAAsAAAAvAxIADAAAANcJEgAMAAAASQMSAA0AAADjCRIACwAAAGMDEgAMAAAA7gkSAAsAAAB8AxIADAAAAPkJEgAL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AAAApyESAAMAAAAEIRIABAAAAKohEgADAAAACyESAAQAAACtIRIAAwAAABIhEgAEAAAAsCESAAMAAAAZIRIABAAAALMhEgADAAAAICESAAQAAAC2IRIAAwAAACchEgAEAAAAuSESAAMAAAAuIRIABAAAALwhEgADAAAANSESAAQAAAC/IRIAAwAAADwhEgAEAAAAwiESAAMAAABDIRIABAAAAMUhEgADAAAASiESAAQAAADIIRIAAwAAAFEhEgAEAAAAyyESAAMAAABYIRIABAAAAM4hEgADAAAAXyESAAQAAADRIRIAAwAAAGYhEgAEAAAA1CESAAMAAABtIRIABAAAAGNhc2VkbGV0dGVyQ2FzZWRfTGV0dGVyY2NDb250cm9sRm9ybWF0Y2xvc2VwdW5jdHVhdGlvbkNsb3NlX1B1bmN0dWF0aW9uY25jb1ByaXZhdGVfVXNlY29tYmluaW5nbWFya2Nvbm5lY3RvcnB1bmN0dWF0aW9uQ29ubmVjdG9yX1B1bmN0dWF0aW9uY29udHJvbGNzU3Vycm9nYXRlY3VycmVuY3lzeW1ib2xDdXJyZW5jeV9TeW1ib2xkYXNocHVuY3R1YXRpb25EYXNoX1B1bmN0dWF0aW9uZGVjaW1hbG51bWJlckRlY2ltYWxfTnVtYmVyZW5jbG9zaW5nbWFya0VuY2xvc2luZ19NYXJrZmluYWxwdW5jdHVhdGlvbkZpbmFsX1B1bmN0dWF0aW9uZm9ybWF0aW5pdGlhbHB1bmN0dWF0aW9uSW5pdGlhbF9QdW5jdHVhdGlvbmxMZXR0ZXJsZXR0ZXJsZXR0ZXJudW1iZXJMZXR0ZXJfTnVtYmVybGluZXNlcGFyYXRvckxpbmVfU2VwYXJhdG9ybGxMb3dlcmNhc2VfTGV0dGVybG1Nb2RpZmllcl9MZXR0ZXJsb090aGVyX0xldHRlcmxvd2VyY2FzZWxldHRlclRpdGxlY2FzZV9MZXR0ZXJsdVVwcGVyY2FzZV9MZXR0ZXJtbWFya21hdGhzeW1ib2xNYXRoX1N5bWJvbG1jU3BhY2luZ19NYXJrbWVtbk5vbnNwYWNpbmdfTWFya21vZGlmaWVybGV0dGVybW9kaWZpZXJzeW1ib2xNb2RpZmllcl9TeW1ib2xuZG5sbm9PdGhlcl9OdW1iZXJub25zcGFjaW5n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AAAA3i0SAAYAAAB+BRIABQAAAN4tEgAGAAAA5C0SAAgAAADsLRIACgAAAPYtEgADAAAA7C0SAAoAAAD5LRIAAgAAAPstEgAKAAAABS4SAAkAAAD7LRIACgAAAA4uEgACAAAAEC4SAAYAAAAWLhIABgAAABAuEgAGAAAAHC4SAAMAAAAfLhIADgAAAC0uEgAMAAAAHy4SAA4AAAB0JhIAAQAAADkuEgABAAAAOi4SAAIAAAA8LhIAAgAAAD4uEgACAAAAQC4SAAIAAABCLhIAAwAAAEUuEgADAAAAvCcSAAUAAADyHxYABQAAAEguEgACAAAASi4SAAcAAABRLhIABwAAAEouEgAHAAAA/Q0SABEAAAAODhIAEgAAACAOEgACAAAADg4SABIAAAB8KBIAAgAAAFguEgALAAAAnSgSAAsAAABYLhIACwAAAGMuEgABAAAAZC4SAAEAAABlLhIAAQAAAGYuEgABAAAAZy4SAAIAAADyHxYABQAAALllFgADAAAAaS4SAAMAAABhZGxhbUFkbGFtYWRsbWFnaGJDYXVjYXNpYW5fQWxiYW5pYW5haG9tQWhvbWFuYXRvbGlhbmhpZXJvZ2x5cGhzQW5hdG9saWFuX0hpZXJvZ2x5cGhzYXJhYkFyYWJpY2FyYWJpY2FybWVuaWFuQXJtZW5pYW5hcm1pSW1wZXJpYWxfQXJhbWFpY2FybW5hdmVzdGFuQXZlc3RhbmF2c3RiYWxpQmFsaW5lc2ViYWxpbmVzZWJhbXVCYW11bWJhbXVtYmFzc0Jhc3NhX1ZhaGJhc3NhdmFoYmF0YWtCYXRha2JhdGtiZW5nQmVuZ2FsaWJlbmdhbGliaGFpa3N1a2lCaGFpa3N1a2liaGtzYm9wb0JvcG9tb2ZvYm9wb21vZm9icmFoQnJhaG1pYnJhaG1pYnJhaUJyYWlsbGVicmFpbGxlYnVnaUJ1Z2luZXNlYnVnaW5lc2VidWhkQnVoaWRidWhpZGNha21DaGFrbWFjYW5hZGlhbmFib3JpZ2luYWxDYW5hZGlhbl9BYm9yaWdpbmFsY2Fuc2NhcmlDYXJpYW5jYXJpYW5jYXVjYXNpYW5hbGJhbmlhbmNoYWttYWNoYW1DaGFtY2hlckNoZXJva2VlY2hlcm9rZWVjaG9yYXNtaWFuQ2hvcmFzbWlhbmNocnNjb21tb25Db21tb25jb3B0Q29wdGljY29wdGljY3BtbkN5cHJvX01pbm9hbmNwcnRDeXByaW90Y3VuZWlmb3JtQ3VuZWlmb3JtY3lwcmlvdGN5cHJvbWlub2FuY3lyaWxsaWNDeXJpbGxpY2N5cmxkZXNlcmV0RGVzZXJldGRldmFEZXZhbmFnYXJpZGV2YW5hZ2FyaWRpYWtEaXZlc19Ba3VydWRpdmVzYWt1cnVkb2dyRG9ncmFkb2dyYWRzcnRkdXBsRHVwbG95YW5kdXBsb3lhbmVneXBFZ3lwdGlhbl9IaWVyb2dseXBoc2VneXB0aWFuaGllcm9nbHlwaHNlbGJhRWxiYXNhbmVsYmFzYW5lbHltRWx5bWFpY2VseW1haWNldGhpRXRoaW9waWNldGhpb3BpY2dlb3JHZW9yZ2lhbmdlb3JnaWFuZ2xhZ0dsYWdvbGl0aWNnbGFnb2xpdGljZ29uZ0d1bmphbGFfR29uZGlnb25tTWFzYXJhbV9Hb25kaWdvdGhHb3RoaWNnb3RoaWNncmFuR3JhbnRoYWdyYW50aGFncmVla0dyZWVrZ3Jla2d1amFyYXRpR3VqYXJhdGlndWpyZ3VuamFsYWdvbmRpZ3VybXVraGlHdXJtdWtoaWd1cnVoYW5IYW5oYW5nSGFuZ3VsaGFuZ3VsaGFuaWhhbmlmaXJvaGluZ3lhSGFuaWZpX1JvaGluZ3lhaGFub0hhbnVub29oYW51bm9vaGF0ckhhdHJhbmhhdHJhbmhlYnJIZWJyZXdoZWJyZXdoaXJhSGlyYWdhbmFoaXJhZ2FuYWhsdXdobW5nUGFoYXdoX0htb25naG1ucE55aWFrZW5nX1B1YWNodWVfSG1vbmdocmt0S2F0YWthbmFfT3JfSGlyYWdhbmFodW5nT2xkX0h1bmdhcmlhbmltcGVyaWFsYXJhbWFpY2luaGVyaXRlZEluaGVyaXRlZGluc2NyaXB0aW9uYWxwYWhsYXZpSW5zY3JpcHRpb25hbF9QYWhsYXZpaW5zY3JpcHRpb25hbHBhcnRoaWFuSW5zY3JpcHRpb25hbF9QYXJ0aGlhbml0YWxPbGRfSXRhbGljamF2YUphdmFuZXNlamF2YW5lc2VrYWl0aGlLYWl0aGlrYWxpS2F5YWhfTGlrYW5hS2F0YWthbmFrYW5uYWRhS2FubmFkYWthdGFrYW5ha2F0YWthbmFvcmhpcmFnYW5ha2F3aUthd2lrYXlhaGxpa2hhcktoYXJvc2h0aGlraGFyb3NodGhpa2hpdGFuc21hbGxzY3JpcHRLaGl0YW5fU21hbGxfU2NyaXB0a2htZXJLaG1lcmtobXJraG9qS2hvamtpa2hvamtpa2h1ZGF3YWRpS2h1ZGF3YWRpa2l0c2tuZGFrdGhpbGFuYVRhaV9UaGFtbGFvTGFvbGFvb2xhdGluTGF0aW5sYXRubGVwY0xlcGNoYWxlcGNoYWxpbWJMaW1idWxpbWJ1bGluYUxpbmVhcl9BbGluYkxpbmVhcl9CbGluZWFyYWxpbmVhcmJsaXN1TGlzdWx5Y2lMeWNpYW5seWNpYW5seWRpTHlkaWFubHlkaWFubWFoYWphbmlNYWhhamFuaW1haGptYWthTWFrYXNhcm1ha2FzYXJtYWxheWFsYW1NYWxheWFsYW1tYW5kTWFuZGFpY21hbmRhaWNtYW5pTWFuaWNoYWVhbm1hbmljaGFlYW5tYXJjTWFyY2hlbm1hcmNoZW5tYXNhcmFtZ29uZGltZWRlZmFpZHJpbk1lZGVmYWlkcmlubWVkZm1lZXRlaW1heWVrTWVldGVpX01heWVrbWVuZE1lbmRlX0tpa2FrdWltZW5kZWtpa2FrdWltZXJjTWVyb2l0aWNfQ3Vyc2l2ZW1lcm9NZXJvaXRpY19IaWVyb2dseXBoc21lcm9pdGljY3Vyc2l2ZW1lcm9pdGljaGllcm9nbHlwaHNtaWFvTWlhb21seW1tb2RpTW9kaW1vbmdNb25nb2xpYW5tb25nb2xpYW5tcm9Ncm9tcm9vbXRlaW11bHRNdWx0YW5pbXVsdGFuaW15YW5tYXJNeWFubWFybXltcm5hYmF0YWVhbk5hYmF0YWVhbm5hZ21OYWdfTXVuZGFyaW5hZ211bmRhcmluYW5kTmFuZGluYWdhcmluYW5kaW5hZ2FyaW5hcmJPbGRfTm9ydGhfQXJhYmlhbm5iYXRuZXdhTmV3YW5ld3RhaWx1ZU5ld19UYWlfTHVlbmtvTmtvbmtvb25zaHVOdXNodW51c2h1bnlpYWtlbmdwdWFjaHVlaG1vbmdvZ2FtT2doYW1vZ2hhbW9sY2hpa2lPbF9DaGlraW9sY2tvbGRodW5nYXJpYW5vbGRpdGFsaWNvbGRub3J0aGFyYWJpYW5vbGRwZXJtaWNPbGRfUGVybWljb2xkcGVyc2lhbk9sZF9QZXJzaWFub2xkc29nZGlhbk9sZF9Tb2dkaWFub2xkc291dGhhcmFiaWFuT2xkX1NvdXRoX0FyYWJpYW5vbGR0dXJraWNPbGRfVHVya2ljb2xkdXlnaHVyT2xkX1V5Z2h1cm9yaXlhT3JpeWFvcmtob3J5YW9zYWdlT3NhZ2Vvc2dlb3NtYU9zbWFueWFvc21hbnlhb3VncnBhaGF3aGhtb25ncGFsbVBhbG15cmVuZXBhbG15cmVuZXBhdWNQYXVfQ2luX0hhdXBhdWNpbmhhdXBlcm1waGFnUGhhZ3NfUGFwaGFnc3BhcGhsaXBobHBQc2FsdGVyX1BhaGxhdmlwaG54UGhvZW5pY2lhbnBob2VuaWNpYW5wbHJkcHJ0aXBzYWx0ZXJwYWhsYXZpcWFhY3FhYWlyZWphbmdSZWphbmdyam5ncm9oZ3J1bmljUnVuaWNydW5yc2FtYXJpdGFuU2FtYXJpdGFuc2FtcnNhcmJzYXVyU2F1cmFzaHRyYXNhdXJhc2h0cmFzZ253U2lnbldyaXRpbmdzaGFyYWRhU2hhcmFkYXNoYXZpYW5TaGF2aWFuc2hhd3NocmRzaWRkU2lkZGhhbXNpZGRoYW1zaWdud3JpdGluZ3NpbmRzaW5oU2luaGFsYXNpbmhhbGFzb2dkU29nZGlhbnNvZ2RpYW5zb2dvc29yYVNvcmFfU29tcGVuZ3NvcmFzb21wZW5nc295b1NveW9tYm9zb3lvbWJvc3VuZFN1bmRhbmVzZXN1bmRhbmVzZXN5bG9TeWxvdGlfTmFncmlzeWxvdGluYWdyaXN5cmNTeXJpYWNzeXJpYWN0YWdhbG9nVGFnYWxvZ3RhZ2JUYWdiYW53YXRhZ2JhbndhdGFpbGVUYWlfTGV0YWl0aGFtdGFpdmlldFRhaV9WaWV0dGFrclRha3JpdGFrcml0YWxldGFsdXRhbWlsVGFtaWx0YW1sdGFuZ1Rhbmd1dHRhbmdzYVRhbmdzYXRhbmd1dHRhdnR0ZWx1VGVsdWd1dGVsdWd1dGZuZ1RpZmluYWdodGdsZ3RoYWFUaGFhbmF0aGFhbmF0aGFpVGhhaXRpYmV0YW5UaWJldGFudGlidHRpZmluYWdodGlyaFRpcmh1dGF0aXJodXRhdG5zYXRvdG9Ub3RvdWdhclVnYXJpdGljdWdhcml0aWN2YWlWYWl2YWlpdml0aFZpdGhrdXFpdml0aGt1cWl3YW5jaG9XYW5jaG93YXJhV2FyYW5nX0NpdGl3YXJhbmdjaXRpd2Nob3hwZW94c3V4eWV6aVllemlkaXllemlkaXlpWWl5aWlpemFuYWJhemFyc3F1YXJlWmFuYWJhemFyX1NxdWFyZXphbmJ6aW5oenl5eXp6enoAAAAsMBIABQAAADEwEgAFAAAANjASAAQAAAAxMBIABQAAADowEgAEAAAAPjASABIAAABQMBIABAAAAFQwEgAEAAAAWDASABQAAABsMBIAFQAAAIEwEgAEAAAAhTASAAYAAACLMBIABgAAAIUwEgAGAAAAkTASAAgAAACZMBIACAAAAKEwEgAEAAAApTASABAAAAC1MBIABAAAAJkwEgAIAAAAuTASAAcAAADAMBIABwAAAMcwEgAEAAAAwDASAAcAAADLMBIABAAAAM8wEgAIAAAA1zASAAgAAADPMBIACAAAAN8wEgAEAAAA4zASAAUAAADoMBIABQAAAOMwEgAFAAAA7TASAAQAAADxMBIACQAAAPowEgAIAAAA8TASAAkAAAACMRIABQAAAAcxEgAFAAAADDESAAQAAAAHMRIABQAAABAxEgAEAAAAFDESAAcAAAAbMRIABwAAABQxEgAHAAAAIjESAAkAAAArMRIACQAAADQxEgAEAAAAKzESAAkAAAA4MRIABAAAADwxEgAIAAAARDESAAgAAAA8MRIACAAAAEwxEgAEAAAAUDESAAYAAABWMRIABgAAAFAxEgAGAAAAXDESAAQAAABgMRIABwAAAGcxEgAHAAAAYDESAAcAAABuMRIABAAAAHIxEgAIAAAAejESAAgAAAByMRIACAAAAIIxEgAEAAAAhjESAAUAAACLMRIABQAAAIYxEgAFAAAAkDESAAQAAACUMRIABgAAAJoxEgASAAAArDESABMAAAC/MRIABAAAAKwxEgATAAAAwzESAAQAAADHMRIABgAAAM0xEgAGAAAAxzESAAYAAADTMRIAEQAAAD4wEgASAAAA5DESAAYAAACUMRIABgAAAOoxEgAEAAAA7jESAAQAAADyMRIABAAAAPYxEgAIAAAA/jESAAgAAAD2MRIACAAAAAYyEgAKAAAAEDISAAoAAAAaMhIABAAAABAyEgAKAAAAHjISAAYAAAAkMhIABgAAACoyEgAEAAAALjISAAYAAAA0MhIABgAAAC4yEgAGAAAAOjISAAQAAAA+MhIADAAAAEoyEgAEAAAATjISAAcAAABVMhIACQAAAF4yEgAJAAAAZzISAAcAAABOMhIABwAAAG4yEgALAAAAPjISAAwAAAB5MhIACAAAAIEyEgAIAAAAiTISAAQAAACBMhIACAAAAI0yEgAHAAAAlDISAAcAAACbMhIABAAAAJ8yEgAKAAAAqTISAAoAAACfMhIACgAAALMyEgAEAAAAtzISAAsAAADCMhIACgAAALcyEgALAAAAzDISAAQAAADQMhIABQAAANUyEgAFAAAA0DISAAUAAADaMhIABAAAAJQyEgAHAAAA3jISAAQAAADiMhIACAAAAOoyEgAIAAAA4jISAAgAAADyMhIABAAAAPYyEgAUAAAACjMSABMAAAD2MhIAFAAAAB0zEgAEAAAAITMSAAcAAAAoMxIABwAAACEzEgAHAAAALzMSAAQAAAAzMxIABwAAADozEgAHAAAAMzMSAAcAAABBMxIABAAAAEUzEgAIAAAATTMSAAgAAABFMxIACAAAAFUzEgAEAAAAWTMSAAgAAABhMxIACAAAAFkzEgAIAAAAaTMSAAQAAABtMxIACgAAAHczEgAKAAAAbTMSAAoAAACBMxIABAAAAIUzEgANAAAAkjMSAAQAAACWMxIADQAAAKMzEgAEAAAApzMSAAYAAACtMxIABgAAAKczEgAGAAAAszMSAAQAAAC3MxIABwAAAL4zEgAHAAAAtzMSAAcAAADFMxIABQAAAMozEgAFAAAAzzMSAAQAAADKMxIABQAAANMzEgAIAAAA2zMSAAgAAADjMxIABAAAANszEgAIAAAA5zMSAAwAAACFMxIADQAAAPMzEgAIAAAA+zMSAAgAAAADNBIABAAAAPszEgAIAAAABzQSAAMAAAAKNBIAAwAAAA00EgAEAAAAETQSAAYAAAAXNBIABgAAABE0EgAGAAAAHTQSAAQAAAAKNBIAAwAAACE0EgAOAAAALzQSAA8AAAA+NBIABAAAAEI0EgAHAAAASTQSAAcAAABCNBIABwAAAFA0EgAEAAAAVDQSAAYAAABaNBIABgAAAFQ0EgAGAAAAYDQSAAQAAABkNBIABgAAAGo0EgAGAAAAZDQSAAYAAABwNBIABAAAAHQ0EgAIAAAAfDQSAAgAAAB0NBIACAAAAIQ0EgAEAAAAbDASABUAAACINBIABAAAAIw0EgAMAAAAmDQSAAQAAACcNBIAFgAAALI0EgAEAAAAtjQSABQAAADKNBIABAAAAM40EgANAAAA2zQSAA8AAAClMBIAEAAAAOo0EgAJAAAA8zQSAAkAAAD8NBIAFAAAABA1EgAVAAAAJTUSABUAAAA6NRIAFgAAAFA1EgAEAAAAVDUSAAoAAABeNRIABAAAAGI1EgAIAAAAajUSAAgAAABiNRIACAAAAHI1EgAGAAAAeDUSAAYAAAB+NRIABAAAAII1EgAIAAAAijUSAAQAAACONRIACAAAAJY1EgAHAAAAnTUSAAcAAACkNRIACAAAAI41EgAIAAAArDUSABIAAAC2NBIAFAAAAL41EgAEAAAAwjUSAAQAAADGNRIABwAAAII1EgAIAAAAzTUSAAQAAADRNRIACgAAANs1EgAKAAAA0TUSAAoAAADlNRIAEQAAAPY1EgATAAAACTYSAAUAAAAONhIABQAAABM2EgAEAAAADjYSAAUAAAAXNhIABAAAABs2EgAGAAAAITYSAAYAAAAbNhIABgAAACc2EgAJAAAAMDYSAAkAAAA5NhIABAAAAPY1EgATAAAAPTYSAAQAAACdNRIABwAAAEE2EgAEAAAAeDUSAAYAAABFNhIABAAAAEk2EgAIAAAAUTYSAAMAAABUNhIAAwAAAFc2EgAEAAAAVDYSAAMAAABbNhIABQAAAGA2EgAFAAAAZTYSAAQAAABgNhIABQAAAGk2EgAEAAAAbTYSAAYAAABzNhIABgAAAG02EgAGAAAAeTYSAAQAAAB9NhIABQAAAII2EgAFAAAAfTYSAAUAAACHNhIABAAAAIs2EgAIAAAAkzYSAAQAAACXNhIACAAAAJ82EgAHAAAAizYSAAgAAACmNhIABwAAAJc2EgAIAAAArTYSAAQAAACxNhIABAAAALU2EgAEAAAAuTYSAAYAAAC/NhIABgAAALk2EgAGAAAAxTYSAAQAAADJNhIABgAAAM82EgAGAAAAyTYSAAYAAADVNhIACAAAAN02EgAIAAAA5TYSAAQAAADdNhIACAAAAOk2EgAEAAAA7TYSAAcAAAD0NhIABwAAAO02EgAHAAAA+zYSAAkAAAAENxIACQAAAA03EgAEAAAAETcSAAcAAAAYNxIABwAAABE3EgAHAAAAHzcSAAQAAAAjNxIACgAAAC03EgAKAAAAIzcSAAoAAAA3NxIABAAAADs3EgAHAAAAQjcSAAcAAAA7NxIABwAAAEk3EgAMAAAAljMSAA0AAABVNxIACwAAAGA3EgALAAAAazcSAAQAAABgNxIACwAAAG83EgALAAAAejcSAAwAAACGNxIABAAAAIo3EgANAAAAlzcSAAwAAACKNxIADQAAAKM3EgAEAAAApzcSABAAAAC3NxIABAAAALs3EgAUAAAAzzcSAA8AAACnNxIAEAAAAN43EgATAAAAuzcSABQAAADxNxIABAAAAPU3EgAEAAAA+TcSAAQAAAAENxIACQAAAP03EgAEAAAAATgSAAQAAAAFOBIABAAAAAk4EgAJAAAAEjgSAAkAAAAJOBIACQAAABs4EgADAAAAHjgSAAMAAAAhOBIABAAAAB44EgADAAAAJTgSAAQAAAB6NxIADAAAACk4EgAEAAAALTgSAAcAAAA0OBIABwAAAC04EgAHAAAAOzgSAAcAAABCOBIABwAAAEk4EgAEAAAAQjgSAAcAAABNOBIACQAAAFY4EgAJAAAAXzgSAAQAAABjOBIACwAAAG44EgAKAAAAYzgSAAsAAAB4OBIABAAAAHw4EgALAAAAhzgSAAsAAAB8OBIACwAAAJI4EgAEAAAAljgSABEAAACnOBIABAAAAFY4EgAJAAAAqzgSAAQAAACvOBIABAAAALM4EgAJAAAAvDgSAAsAAADHOBIAAwAAAMo4EgADAAAAzTgSAAQAAADKOBIAAwAAANE4EgAEAAAA1TgSAAUAAADaOBIABQAAANU4EgAFAAAA3zgSABQAAACcNBIAFgAAAPM4EgAEAAAA9zgSAAUAAAD8OBIABQAAAPc4EgAFAAAAATkSAAcAAAAIORIACAAAABA5EgAEAAAACDkSAAgAAAAUORIADAAAAM40EgANAAAAIDkSAAkAAABUNRIACgAAACk5EgAPAAAAljgSABEAAAA4ORIACQAAAEE5EgAKAAAASzkSAAoAAABVORIACwAAAGA5EgAKAAAAajkSAAsAAAB1ORIADwAAAIQ5EgARAAAAlTkSAAkAAACeORIACgAAAKg5EgAJAAAAsTkSAAoAAAC7ORIABQAAAMA5EgAFAAAAxTkSAAQAAACeORIACgAAAMk5EgAEAAAAwDkSAAUAAADNORIABQAAANI5EgAFAAAA1zkSAAQAAADSORIABQAAANs5EgAEAAAA3zkSAAcAAADmORIABwAAAN85EgAHAAAA7TkSAAQAAACxORIACgAAAPE5EgALAAAAjDQSAAwAAAD8ORIABAAAAAA6EgAJAAAACToSAAkAAAAAOhIACQAAABI6EgAEAAAAFjoSAAsAAAAhOhIACQAAABY6EgALAAAAKjoSAAQAAABBORIACgAAAC46EgAEAAAAMjoSAAgAAAA6OhIABwAAADI6EgAIAAAAQToSAAQAAAAQNRIAFQAAAEU6EgAEAAAASToSAA8AAABYOhIABAAAAFw6EgAKAAAAZjoSAAoAAABcOhIACgAAAHA6EgAEAAAA9TcSAAQAAAB0OhIABAAAADo1EgAWAAAAeDoSAA4AAABJOhIADwAAAIY6EgAEAAAALjISAAYAAACKOhIABAAAAPM0EgAJAAAAjjoSAAYAAACUOhIABgAAAJo6EgAEAAAAlDoSAAYAAACeOhIABAAAAC80EgAPAAAAojoSAAUAAACnOhIABQAAAKw6EgAEAAAApzoSAAUAAACwOhIACQAAALk6EgAJAAAAwjoSAAQAAAC5OhIACQAAAMY6EgAEAAAAhDkSABEAAADKOhIABAAAAM46EgAKAAAA2DoSAAoAAADOOhIACgAAAOI6EgAEAAAA5joSAAsAAADxOhIABwAAAPg6EgAHAAAA/zoSAAcAAAAGOxIABwAAAA07EgAEAAAABjsSAAcAAAAROxIABAAAAPg6EgAHAAAAFTsSAAQAAAAZOxIABwAAACA7EgAHAAAAGTsSAAcAAAAnOxIACwAAAOY6EgALAAAAMjsSAAQAAAAwNhIACQAAADY7EgAEAAAAOjsSAAcAAABBOxIABwAAADo7EgAHAAAASDsSAAQAAABMOxIABwAAAFM7EgAHAAAATDsSAAcAAABaOxIABAAAAGo5EgALAAAAXjsSAAQAAABiOxIADAAAAG47EgALAAAAYjsSAAwAAAB5OxIABAAAAH07EgAHAAAAhDsSAAcAAAB9OxIABwAAAIs7EgAEAAAAjzsSAAkAAACYOxIACQAAAI87EgAJAAAAoTsSAAQAAAClOxIADAAAALE7EgALAAAApTsSAAwAAAC8OxIABAAAAMA7EgAGAAAAxjsSAAYAAADAOxIABgAAAMw7EgAHAAAA0zsSAAcAAADaOxIABAAAAN47EgAIAAAA5jsSAAgAAADeOxIACAAAAO47EgAFAAAA8zsSAAYAAAD5OxIABwAAAEk2EgAIAAAAADwSAAcAAAAHPBIACAAAAA88EgAEAAAAEzwSAAUAAAAYPBIABQAAABM8EgAFAAAAHTwSAAQAAADzOxIABgAAACE8EgAEAAAAvDgSAAsAAAAlPBIABQAAACo8EgAFAAAALzwSAAQAAAAqPBIABQAAADM8EgAEAAAANzwSAAYAAAA9PBIABgAAAEM8EgAGAAAASTwSAAYAAAA3PBIABgAAAE88EgAEAAAABzwSAAgAAABTPBIABAAAAFc8EgAGAAAAXTwSAAYAAABXPBIABgAAAGM8EgAEAAAAZzwSAAgAAABvPBIABAAAANM7EgAHAAAAczwSAAQAAAB3PBIABgAAAH08EgAGAAAAdzwSAAYAAACDPBIABAAAAIc8EgAEAAAAizwSAAcAAACSPBIABwAAAJk8EgAEAAAAkjwSAAcAAACdPBIACAAAAGc8EgAIAAAApTwSAAQAAACpPBIABwAAALA8EgAHAAAAqTwSAAcAAAC3PBIABAAAAEM8EgAGAAAAuzwSAAQAAAC/PBIABAAAAMM8EgAEAAAAxzwSAAgAAADPPBIACAAAAMc8EgAIAAAAZw4YAAcAAABLNRgABwAAANc8EgADAAAA2jwSAAMAAADdPBIABAAAANo8EgADAAAA4TwSAAQAAADlPBIACAAAAO08EgAIAAAA5TwSAAgAAAD1PBIABgAAAPs8EgAGAAAAAT0SAAQAAAAFPRIACwAAABA9EgAKAAAABT0SAAsAAAAaPRIABAAAAPs8EgAGAAAAHj0SAAQAAABVORIACwAAACI9EgAEAAAAXjISAAkAAAAmPRIABAAAACo9EgAGAAAAMD0SAAYAAAAqPRIABgAAADY9EgACAAAAOD0SAAIAAAA6PRIABAAAADg9EgACAAAAPj0SAA8AAABNPRIAEAAAAF09EgAEAAAATT0SABAAAABhPRIABAAAAPM0EgAJAAAAZT0SAAQAAAAkMhIABgAAAGk9EgAEAAAASzUYAAcAAABhdEFUZXJtYXRlcm1jbENsb3NlY2xvc2Vmb09MZXR0ZXJMb3dlck51bWVyaWNudW1lcmljb2xldHRlclNDb250aW51ZXNjb250aW51ZXNlU2Vwc2Vwc3BTcHN0U1Rlcm11cFVwcGVyALBREgACAAAAslESAAUAAAC3URIABQAAALJREgAFAAAAvFESAAIAAAC+URIABQAAAMNREgAFAAAAvlESAAUAAADYLRIAAgAAANotEgACAAAADi4SAAIAAAAQLhIABgAAABYuEgAGAAAAEC4SAAYAAADIURIAAgAAADglEgAGAAAASSYSAAYAAAA4JRIABgAAANxmFgACAAAAylESAAcAAAA6LhIAAgAAADwuEgACAAAA2CYSAAIAAADRURIABQAAAPqlFQAFAAAA0VESAAUAAABkZRYAAgAAANZREgAHAAAA3VESAAcAAADWURIABwAAAORREgAHAAAAylESAAcAAAC8JxIABQAAAPIfFgAFAAAABOURAAIAAADrURIACQAAAPRREgAJAAAA61ESAAkAAAD9URIAAgAAAP9REgADAAAAAlISAAMAAAD/URIAAwAAAAVSEgACAAAAB1ISAAIAAAAJUhIAAgAAAAtSEgAFAAAAQQ8SAAUAAAALUhIABQAAABBSEgACAAAAElISAAUAAAAOphUABQAAABJSEgAFAAAAZy4SAAIAAADyHxYABQAAAGFsZXR0ZXJBTGV0dGVyZG91YmxlcXVvdGVEb3VibGVfUXVvdGVkcUV4dGVuZE51bUxldGV4dGVuZG51bWxldGhlYnJld2xldHRlckhlYnJld19MZXR0ZXJobGthbWJNaWROdW1MZXRtaWRsZXR0ZXJNaWRMZXR0ZXJtaWRudW1NaWROdW1taWRudW1sZXRtbG5ld2xpbmVOZXdsaW5lc2luZ2xlcXVvdGVTaW5nbGVfUXVvdGVzcXdzZWdzcGFjZVdTZWdTcGFjZQAAAMhTEgAHAAAAz1MSAAcAAADYLRIAAgAAANotEgACAAAA1lMSAAsAAADhUxIADAAAAO1TEgACAAAA4VMSAAwAAADcLRIAAgAAAN4tEgAGAAAAfgUSAAUAAADeLRIABgAAAOQtEgAIAAAA7C0SAAoAAAD2LRIAAwAAAOwtEgAKAAAA+S0SAAIAAAD7LRIACgAAAAUuEgAJAAAA+y0SAAoAAAAOLhIAAgAAAO9TEgAMAAAAFi4SAAYAAAAQLhIABgAAAPtTEgAMAAAA71MSAAwAAADIURIAAgAAADglEgAGAAAASSYSAAYAAAA4JRIABgAAABwuEgADAAAAHy4SAA4AAAAtLhIADAAAAB8uEgAOAAAAB1QSAAwAAAATVBIADQAAACBUEgACAAAAE1QSAA0AAAAiVBIAAgAAAI41EgAIAAAApDUSAAgAAACONRIACAAAANxmFgACAAAAz1MSAAcAAAA6LhIAAgAAADwuEgACAAAAJFQSAAIAAAAmVBIACQAAAC9UEgAJAAAAOFQSAAkAAABBVBIABgAAAEdUEgAGAAAATVQSAAkAAAAmVBIACQAAAFZUEgACAAAAOFQSAAkAAABBJxIAAgAAAEdUEgAGAAAAWFQSAAcAAABfVBIABwAAAH8nEgACAAAAX1QSAAcAAABkZRYAAgAAANZREgAHAAAA3VESAAcAAADWURIABwAAALwnEgAFAAAA8h8WAAUAAAD9DRIAEQAAAA4OEgASAAAAIA4SAAIAAAAODhIAEgAAAGZUEgALAAAAcVQSAAwAAAB9VBIAAgAAAHFUEgAMAAAAf1QSAAkAAACIVBIACQAAAGcuEgACAAAA8h8WAAUAAAC5ZRYAAwAAAGkuEgADAAAACOURAAMAAADYIRIANAAAAOzkEQAQAAAA2CgSAFAAAAAc5REAFgAAAGwuEgAcAAAA/OQRAAYAAABwPRIARAEAAAvlEQARAAAAcD0SAEQBAAAy5READgAAABhSEgAbAAAAQOURAAoAAACUVBIAKQAAADTkEQBmAAAAaAIAABYAAAAAAAAA9QEAAPoBAAAXAgAAUAIAAKgCAACwAgAA3gIAAOACAADpAgAAAAMAAEUDAABgAwAAYQMAAHQDAAB1AwAAegMAAHoDAAB+AwAAfgMAAIQDAACKAwAAjAMAAIwDAACOAwAAoQMAAKMDAADOAwAA0AMAANYDAADaAwAA2gMAANwDAADcAwAA3gMAAN4DAADgAwAA4AMAAOIDAADzAwAAAQQAAAwEAAAOBAAATwQAAFEEAABcBAAAXgQAAIYEAACQBAAAxAQAAMcEAADIBAAAywQAAMwEAADQBAAA6wQAAO4EAAD1BAAA+AQAAPkEAAAxBQAAVgUAAFkFAABfBQAAYQUAAIcFAACJBQAAiQUAALAFAAC5BQAAuwUAAMMFAADQBQAA6gUAAPAFAAD0BQAADAYAAAwGAAAbBgAAGwYAAB8GAAAfBgAAIQYAADoGAABABgAAUgYAAGAGAABtBgAAcAYAALcGAAC6BgAAvgYAAMAGAADOBgAA0AYAAO0GAADwBgAA+QYAAAEJAAADCQAABQkAADkJAAA8CQAATQkAAFAJAABUCQAAWAkAAHAJAACBCQAAgwkAAIUJAACMCQAAjwkAAJAJAACTCQAAqAkAAKoJAACwCQAAsgkAALIJAAC2CQAAuQkAALwJAAC8CQAAvgkAAMQJAADHCQAAyAkAAMsJAADNCQAA1wkAANcJAADcCQAA3QkAAN8JAADjCQAA5gkAAPoJAAACCgAAAgoAAAUKAAAKCgAADwoAABAKAAATCgAAKAoAACoKAAAwCgAAMgoAADMKAAA1CgAANgoAADgKAAA5CgAAPAoAADwKAAA+CgAAQgoAAEcKAABICgAASwoAAE0KAABZCgAAXAoAAF4KAABeCgAAZgoAAHQKAACBCgAAgwoAAIUKAACLCgAAjQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvAoAAMUKAADHCgAAyQoAAMsKAADNCgAA0AoAANAKAADgCgAA4AoAAOYKAADvCgAAAQsAAAMLAAAFCwAADAsAAA8LAAAQCwAAEwsAACgLAAAqCwAAMAsAADILAAAzCwAANgsAADkLAAA8CwAAQwsAAEcLAABICwAASwsAAE0LAABWCwAAVwsAAFwLAABdCwAAXwsAAGELAABmCwAAcAsAAIILAACDCwAAhQsAAIoLAACOCwAAkAsAAJILAACVCwAAmQsAAJoLAACcCwAAnAsAAJ4LAACfCwAAowsAAKQLAACoCwAAqgsAAK4LAAC1CwAAtwsAALkLAAC+CwAAwgsAAMYLAADICwAAygsAAM0LAADXCwAA1wsAAOcLAADyCwAAAQwAAAMMAAAFDAAADAwAAA4MAAAQDAAAEgwAACgMAAAqDAAAMwwAADUMAAA5DAAAPgwAAEQMAABGDAAASAwAAEoMAABNDAAAVQwAAFYMAABgDAAAYQwAAGYMAABvDAAAggwAAIMMAACFDAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvgwAAMQMAADGDAAAyAwAAMoMAADNDAAA1QwAANYMAADe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AgAA4AIAAOQCAADsAgAA7AIAAO4CAADuAgAAcAMAAHQDAAB2AwAAdwMAAHoDAAB9AwAAfwMAAH8DAACGAwAAhgMAAIgDAACKAwAAjAMAAIwDAACOAwAAoQMAAKMDAAD1AwAA9wMAAIEEAACKBAAALwUAADEFAABWBQAAWQUAAFkFAABgBQAAiAUAANAFAADqBQAA7wUAAPIFAAAgBgAASgYAAG4GAABvBgAAcQYAANMGAADVBgAA1QYAAOUGAADmBgAA7gYAAO8GAAD6BgAA/AYAAP8GAAD/BgAAEAcAABAHAAASBwAALwcAAE0HAAClBwAAsQcAALEHAADKBwAA6gcAAPQHAAD1BwAA+gcAAPoHAAAACAAAFQgAABoIAAAaCAAAJAgAACQIAAAoCAAAKAgAAEAIAABYCAAAYAgAAGoIAABwCAAAhwgAAIkIAACOCAAAoAgAAMkIAAAECQAAOQkAAD0JAAA9CQAAUAkAAFAJAABYCQAAYQkAAHEJAACACQAAhQkAAIwJAACPCQAAkAkAAJMJAACoCQAAqgkAALAJAACyCQAAsgkAALYJAAC5CQAAvQkAAL0JAADOCQAAzgkAANwJAADdCQAA3wkAAOEJAADwCQAA8QkAAPwJAAD8CQAABQoAAAoKAAAPCgAAEAoAABMKAAAoCgAAKgoAADAKAAAyCgAAMwoAADUKAAA2CgAAOAoAADkKAABZCgAAXAoAAF4KAABeCgAAcgoAAHQKAACFCgAAjQoAAI8KAACRCgAAkwoAAKgKAACqCgAAsAoAALIKAACzCgAAtQoAALkKAAC9CgAAvQoAANAKAADQCgAA4AoAAOEKAAD5CgAA+QoAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAAD0LAAA9CwAAXAsAAF0LAABfCwAAYQsAAHELAABxCwAAgwsAAIMLAACFCwAAigsAAI4LAACQCwAAkgsAAJULAACZCwAAmgsAAJwLAACcCwAAngsAAJ8LAACjCwAApAsAAKgLAACqCwAArgsAALkLAADQCwAA0AsAAAUMAAAMDAAADgwAABAMAAASDAAAKAwAACoMAAA5DAAAPQwAAD0MAABYDAAAWgwAAF0MAABdDAAAYAwAAGEMAACADAAAgAwAAIUMAACMDAAAjgwAAJAMAACS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AQAAEQEAABEBAAATAQAAEwEAABUBAAAVAQAAFwEAABcBAAAZAQAAGQEAABsBAAAbAQAAHQEAAB0BAAAfAQAAHwEAACEBAAAhAQAAIwEAACMBAAAlAQAAJQEAACcBAAAnAQAAKQEAACkBAAArAQAAKwEAAC0BAAAtAQAALwEAAC8BAAAxAQAAMQEAADMBAAAzAQAANQEAADUBAAA3AQAAOAEAADoBAAA6AQAAPAEAADwBAAA+AQAAPgEAAEABAABAAQAAQgEAAEIBAABEAQAARAEAAEYBAABGAQAASAEAAEkBAABLAQAASwEAAE0BAABNAQAATwEAAE8BAABRAQAAUQEAAFMBAABTAQAAVQEAAFUBAABXAQAAVwEAAFkBAABZAQAAWwEAAFsBAABdAQAAXQEAAF8BAABfAQAAYQEAAGEBAABjAQAAYwEAAGUBAABlAQAAZwEAAGcBAABpAQAAaQEAAGsBAABrAQAAbQEAAG0BAABvAQAAbwEAAHEBAABxAQAAcwEAAHMBAAB1AQAAdQEAAHcBAAB3AQAAegEAAHoBAAB8AQAAfAEAAH4BAACAAQAAgwEAAIMBAACFAQAAhQEAAIgBAACIAQAAjAEAAI0BAACSAQAAkgEAAJUBAACVAQAAmQEAAJsBAACeAQAAngEAAKEBAAChAQAAowEAAKMBAAClAQAApQEAAKgBAACoAQAAqgEAAKsBAACtAQAArQEAALABAACwAQAAtAEAALQBAAC2AQAAtgEAALkBAAC6AQAAvQEAAL8BAADGAQAAxgEAAMkBAADJAQAAzAEAAMwBAADOAQAAzgEAANABAADQAQAA0gEAANIBAADUAQAA1AEAANYBAADWAQAA2AEAANgBAADaAQAA2gEAANwBAADdAQAA3wEAAN8BAADhAQAA4QEAAOMBAADjAQAA5QEAAOUBAADnAQAA5wEAAOkBAADpAQAA6wEAAOsBAADtAQAA7QEAAO8BAADwAQAA8wEAAPMBAAD1AQAA9QEAAPkBAAD5AQAA+wEAAPsBAAD9AQAA/QEAAP8BAAD/AQAAAQIAAAECAAADAgAAAwIAAAUCAAAFAgAABwIAAAcCAAAJAgAACQIAAAsCAAALAgAADQIAAA0CAAAPAgAADwIAABECAAARAgAAEwIAABMCAAAVAgAAFQIAABcCAAAXAgAAGQIAABkCAAAbAgAAGwIAAB0CAAAdAgAAHwIAAB8CAAAhAgAAIQIAACMCAAAjAgAAJQIAACUCAAAnAgAAJwIAACkCAAApAgAAKwIAACsCAAAtAgAALQIAAC8CAAAvAgAAMQIAADECAAAzAgAAOQIAADwCAAA8AgAAPwIAAEACAABCAgAAQgIAAEcCAABHAgAASQIAAEkCAABLAgAASwIAAE0CAABNAgAATwIAAJMCAACVAgAArwIAAHEDAABxAwAAcwMAAHMDAAB3AwAAdwMAAHsDAAB9AwAAkAMAAJADAACsAwAAzgMAANADAADRAwAA1QMAANcDAADZAwAA2QMAANsDAADbAwAA3QMAAN0DAADfAwAA3wMAAOEDAADhAwAA4wMAAOMDAADlAwAA5QMAAOcDAADnAwAA6QMAAOkDAADrAwAA6wMAAO0DAADtAwAA7wMAAPMDAAD1AwAA9QMAAPgDAAD4AwAA+wMAAPwDAAAwBAAAXwQAAGEEAABhBAAAYwQAAGMEAABlBAAAZQQAAGcEAABnBAAAaQQAAGkEAABrBAAAawQAAG0EAABtBAAAbwQAAG8EAABxBAAAcQQAAHMEAABzBAAAdQQAAHUEAAB3BAAAdwQAAHkEAAB5BAAAewQAAHsEAAB9BAAAfQQAAH8EAAB/BAAAgQQAAIEEAACLBAAAiwQAAI0EAACNBAAAjwQAAI8EAACRBAAAkQQAAJMEAACTBAAAlQQAAJUEAACXBAAAlwQAAJkEAACZBAAAmwQAAJsEAACdBAAAnQQAAJ8EAACfBAAAoQQAAKEEAACjBAAAowQAAKUEAAClBAAApwQAAKcEAACpBAAAqQQAAKsEAACrBAAArQQAAK0EAACvBAAArwQAALEEAACxBAAAswQAALMEAAC1BAAAtQQAALcEAAC3BAAAuQQAALkEAAC7BAAAuwQAAL0EAAC9BAAAvwQAAL8EAADCBAAAwgQAAMQEAADEBAAAxgQAAMYEAADIBAAAyAQAAMoEAADKBAAAzAQAAMwEAADOBAAAzwQAANEEAADRBAAA0wQAANMEAADVBAAA1QQAANcEAADXBAAA2QQAANkEAADbBAAA2wQAAN0EAADdBAAA3wQAAN8EAADhBAAA4QQAAOMEAADjBAAA5QQAAOUEAADnBAAA5wQAAOkEAADpBAAA6wQAAOsEAADtBAAA7QQAAO8EAADvBAAA8QQAAPEEAADzBAAA8wQAAPUEAAD1BAAA9wQAAPcEAAD5BAAA+QQAAPsEAAD7BAAA/QQAAP0EAAD/BAAA/wQAAAEFAAABBQAAAwUAAAMFAAAFBQAABQUAAAcFAAAHBQAACQUAAAkFAAALBQAACwUAAA0FAAANBQAADwUAAA8FAAARBQAAEQUAABMFAAATBQAAFQUAABUFAAAXBQAAFwUAABkFAAAZBQAAGwUAABsFAAAdBQAAHQUAAB8FAAAfBQAAIQUAACEFAAAjBQAAIwUAACUFAAAlBQAAJwUAACcFAAApBQAAKQUAACsFAAArBQAALQUAAC0FAAAvBQAALwUAAGAFAACIBQAA0BAAAPoQAAD9EAAA/xAAAPgTAAD9EwAAgBwAAIgcAAAAHQAAKx0AAGsdAAB3HQAAeR0AAJodAAABHgAAAR4AAAMeAAADHgAABR4AAAUeAAAHHgAABx4AAAkeAAAJHgAACx4AAAseAAANHgAADR4AAA8eAAAPHgAAER4AABEeAAATHgAAEx4AABUeAAAVHgAAFx4AABceAAAZHgAAGR4AABseAAAbHgAAHR4AAB0eAAAfHgAAHx4AACEeAAAhHgAAIx4AACMeAAAlHgAAJR4AACceAAAnHgAAKR4AACkeAAArHgAAKx4AAC0eAAAtHgAALx4AAC8eAAAxHgAAMR4AADMeAAAzHgAANR4AADUeAAA3HgAANx4AADkeAAA5HgAAOx4AADseAAA9HgAAPR4AAD8eAAA/HgAAQR4AAEEeAABDHgAAQx4AAEUeAABFHgAARx4AAEceAABJHgAASR4AAEseAABLHgAATR4AAE0eAABPHgAATx4AAFEeAABRHgAAUx4AAFMeAABVHgAAVR4AAFceAABXHgAAWR4AAFkeAABbHgAAWx4AAF0eAABdHgAAXx4AAF8eAABhHgAAYR4AAGMeAABjHgAAZR4AAGUeAABnHgAAZx4AAGkeAABpHgAAax4AAGseAABtHgAAbR4AAG8eAABvHgAAcR4AAHEeAABzHgAAcx4AAHUeAAB1HgAAdx4AAHceAAB5HgAAeR4AAHseAAB7HgAAfR4AAH0eAAB/HgAAfx4AAIEeAACBHgAAgx4AAIMeAACFHgAAhR4AAIceAACHHgAAiR4AAIkeAACLHgAAix4AAI0eAACNHgAAjx4AAI8eAACRHgAAkR4AAJMeAACTHgAAlR4AAJ0eAACfHgAAnx4AAKEeAAChHgAAox4AAKMeAAClHgAApR4AAKceAACnHgAAqR4AAKkeAACrHgAAqx4AAK0eAACtHgAArx4AAK8eAACxHgAAsR4AALMeAACzHgAAtR4AALUeAAC3HgAAtx4AALkeAAC5HgAAux4AALseAAC9HgAAvR4AAL8eAAC/HgAAwR4AAMEeAADDHgAAwx4AAMUeAADFHgAAxx4AAMceAADJHgAAyR4AAMseAADLHgAAzR4AAM0eAADPHgAAzx4AANEeAADRHgAA0x4AANMeAADVHgAA1R4AANceAADXHgAA2R4AANkeAADbHgAA2x4AAN0eAADdHgAA3x4AAN8eAADhHgAA4R4AAOMeAADjHgAA5R4AAOUeAADnHgAA5x4AAOkeAADpHgAA6x4AAOseAADtHgAA7R4AAO8eAADvHgAA8R4AAPEeAADzHgAA8x4AAPUeAAD1HgAA9x4AAPceAAD5HgAA+R4AAPseAAD7HgAA/R4AAP0eAAD/HgAABx8AABAfAAAVHwAAIB8AACcfAAAwHwAANx8AAEAfAABFHwAAUB8AAFcfAABgHwAAZx8AAHAfAAB9HwAAgB8AAIcfAACQHwAAlx8AAKAfAACnHwAAsB8AALQfAAC2HwAAtx8AAL4fAAC+HwAAwh8AAMQfAADGHwAAxx8AANAfAADTHwAA1h8AANcfAADgHwAA5x8AAPIfAAD0HwAA9h8AAPcfAAAKIQAACiEAAA4hAAAPIQAAEyEAABMhAAAvIQAALyEAADQhAAA0IQAAOSEAADkhAAA8IQAAPSEAAEYhAABJIQAATiEAAE4hAACEIQAAhCEAADAsAABfLAAAYSwAAGEsAABlLAAAZiwAAGgsAABoLAAAaiwAAGosAABsLAAAbCwAAHEsAABxLAAAcywAAHQsAAB2LAAAeywAAIEsAACBLAAAgywAAIMsAACFLAAAhSwAAIcsAACHLAAAiSwAAIksAACLLAAAiywAAI0sAACNLAAAjywAAI8sAACRLAAAkSwAAJMsAACTLAAAlSwAAJUsAACXLAAAlywAAJksAACZLAAAmywAAJssAACdLAAAnSwAAJ8sAACfLAAAoSwAAKEsAACjLAAAoywAAKUsAAClLAAApywAAKcsAACpLAAAqSwAAKssAACrLAAArSwAAK0sAACvLAAArywAALEsAACxLAAAsywAALMsAAC1LAAAtSwAALcsAAC3LAAAuSwAALksAAC7LAAAuywAAL0sAAC9LAAAvywAAL8sAADBLAAAwSwAAMMsAADDLAAAxSwAAMUsAADHLAAAxywAAMksAADJLAAAyywAAMssAADNLAAAzSwAAM8sAADPLAAA0SwAANEsAADTLAAA0ywAANUsAADVLAAA1ywAANcsAADZLAAA2SwAANssAADbLAAA3SwAAN0sAADfLAAA3ywAAOEsAADhLAAA4ywAAOQsAADsLAAA7CwAAO4sAADuLAAA8ywAAPMsAAAALQAAJS0AACctAAAnLQAALS0AAC0tAABBpgAAQaYAAEOmAABDpgAARaYAAEWmAABHpgAAR6YAAEmmAABJpgAAS6YAAEumAABNpgAATaYAAE+mAABPpgAAUaYAAFGmAABTpgAAU6YAAFWmAABVpgAAV6YAAFemAABZpgAAWaYAAFumAABbpgAAXaYAAF2mAABfpgAAX6YAAGGmAABhpgAAY6YAAGOmAABlpgAAZaYAAGemAABnpgAAaaYAAGmmAABrpgAAa6YAAG2mAABtpgAAgaYAAIGmAACDpgAAg6YAAIWmAACFpgAAh6YAAIemAACJpgAAiaYAAIumAACLpgAAjaYAAI2mAACPpgAAj6YAAJGmAACRpgAAk6YAAJOmAACVpgAAlaYAAJemAACXpgAAmaYAAJmmAACbpgAAm6YAACOnAAAjpwAAJacAACWnAAAnpwAAJ6cAACmnAAAppwAAK6cAACunAAAtpwAALacAAC+nAAAxpwAAM6cAADOnAAA1pwAANacAADenAAA3pwAAOacAADmnAAA7pwAAO6cAAD2nAAA9pwAAP6cAAD+nAABBpwAAQacAAEOnAABDpwAARacAAEWnAABHpwAAR6cAAEmnAABJpwAAS6cAAEunAABNpwAATacAAE+nAABPpwAAUacAAFGnAABTpwAAU6cAAFWnAABVpwAAV6cAAFenAABZpwAAWacAAFunAABbpwAAXacAAF2nAABfpwAAX6cAAGGnAABhpwAAY6cAAGOnAABlpwAAZacAAGenAABnpwAAaacAAGmnAABrpwAAa6cAAG2nAABtpwAAb6cAAG+nAABxpwAAeKcAAHqnAAB6pwAAfKcAAHynAAB/pwAAf6cAAIGnAACBpwAAg6cAAIOnAACFpwAAhacAAIenAACHpwAAjKcAAIynAACOpwAAjqcAAJGnAACRpwAAk6cAAJWnAACXpwAAl6cAAJmnAACZpwAAm6cAAJunAACdpwAAnacAAJ+nAACfpwAAoacAAKGnAACjpwAAo6cAAKWnAAClpwAAp6cAAKenAACppwAAqacAAK+nAACvpwAAtacAALWnAAC3pwAAt6cAALmnAAC5pwAAu6cAALunAAC9pwAAvacAAL+nAAC/pwAAwacAAMGnAADDpwAAw6cAAMinAADIpwAAyqcAAMqnAADRpwAA0acAANOnAADTpwAA1acAANWnAADXpwAA16cAANmnAADZpwAA9qcAAPanAAD6pwAA+qcAADCrAABaqwAAYKsAAGirAABwqwAAv6sAAAD7AAAG+wAAE/sAABf7AABB/wAAWv8AACgEAQBPBAEA2AQBAPsEAQCXBQEAoQUBAKMFAQCxBQEAswUBALkFAQC7BQEAvAUBAMAMAQDyDAEAwBgBAN8YAQBgbgEAf24BABrUAQAz1AEATtQBAFTUAQBW1AEAZ9QBAILUAQCb1AEAttQBALnUAQC71AEAu9QBAL3UAQDD1AEAxdQBAM/UAQDq1AEAA9UBAB7VAQA31QEAUtUBAGvVAQCG1QEAn9UBALrVAQDT1QEA7tUBAAfWAQAi1gEAO9YBAFbWAQBv1gEAitYBAKXWAQDC1gEA2tYBANzWAQDh1gEA/NYBABTXAQAW1wEAG9cBADbXAQBO1wEAUNcBAFXXAQBw1wEAiNcBAIrXAQCP1wEAqtcBAMLXAQDE1wEAydcBAMvXAQDL1wEAAN8BAAnfAQAL3wEAHt8BACXfAQAq3wEAIukBAEPpAQAAAwAAbwMAAIMEAACJBAAAkQUAAL0FAAC/BQAAvwUAAMEFAADCBQAAxAUAAMUFAADHBQAAxwUAABAGAAAaBgAASwYAAF8GAABwBgAAcAYAANYGAADcBgAA3wYAAOQGAADnBgAA6AYAAOoGAADtBgAAEQcAABEHAAAwBwAASgcAAKYHAACwBwAA6wcAAPMHAAD9BwAA/QcAABYIAAAZCAAAGwgAACMIAAAlCAAAJwgAACkIAAAtCAAAWQgAAFsIAACYCAAAnwgAAMoIAADhCAAA4wgAAAMJAAA6CQAAPAkAAD4JAABP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AwAAeQMAAIADAACDAwAAiwMAAIsDAACNAwAAjQMAAKIDAACiAwAAMAUAADAFAABXBQAAWAUAAIsFAACMBQAAkAUAAJAFAADIBQAAzwUAAOsFAADuBQAA9QUAAAUGAAAcBgAAHAYAAN0GAADdBgAADgcAAA8HAABLBwAATAcAALIHAAC/BwAA+wcAAPwHAAAuCAAALwgAAD8IAAA/CAAAXAgAAF0IAABfCAAAXwgAAGsIAABvCAAAjwgAAJcIAADiCAAA4ggAAIQJAACECQAAjQkAAI4JAACRCQAAkgkAAKkJAACpCQAAsQkAALEJAACzCQAAtQkAALoJAAC7CQAAxQkAAMYJAADJCQAAygkAAM8JAADWCQAA2AkAANsJAADeCQAA3gkAAOQJAADlCQAA/wkAAAAKAAAECgAABAoAAAsKAAAOCgAAEQoAABIKAAApCgAAKQoAADEKAAAxCgAANAoAADQKAAA3CgAANwoAADoKAAA7CgAAPQoAAD0KAABDCgAARgoAAEkKAABKCgAATgoAAFAKAABSCgAAWAoAAF0KAABdCgAAXwoAAGUKAAB3CgAAgAoAAIQKAACECgAAjgoAAI4KAACSCgAAkgoAAKkKAACpCgAAsQoAALEKAAC0CgAAtAoAALoKAAC7CgAAxgoAAMYKAADKCgAAygoAAM4KAADPCgAA0QoAAN8KAADkCgAA5QoAAPIKAAD4CgAAAAsAAAALAAAECwAABAsAAA0LAAAOCwAAEQsAABILAAApCwAAKQsAADELAAAxCwAANAsAADQLAAA6CwAAOwsAAEULAABGCwAASQsAAEoLAABOCwAAVAsAAFgLAABbCwAAXgsAAF4LAABkCwAAZQsAAHgLAACBCwAAhAsAAIQLAACLCwAAjQsAAJELAACRCwAAlgsAAJgLAACbCwAAmwsAAJ0LAACdCwAAoAsAAKILAAClCwAApwsAAKsLAACtCwAAugsAAL0LAADDCwAAxQsAAMkLAADJCwAAzgsAAM8LAADRCwAA1gsAANgLAADlCwAA+wsAAP8LAAANDAAADQwAABEMAAARDAAAKQwAACkMAAA6DAAAOwwAAEUMAABFDAAASQwAAEkMAABODAAAVAwAAFcMAABXDAAAWwwAAFwMAABeDAAAXwwAAGQMAABlDAAAcAwAAHYMAACNDAAAjQwAAJEMAACR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EwAAfxMAAJoTAACfEwAA9hMAAPcTAAD+EwAA/xMAAJ0WAACfFgAA+RYAAP8WAAAWFwAAHhcAADcXAAA/FwAAVBcAAF8XAABtFwAAbRcAAHEXAABxFwAAdBcAAH8XAADeFwAA3xcAAOoXAADvFwAA+hcAAP8XAAAaGAAAHxgAAHkYAAB/GAAAqxgAAK8YAAD2GAAA/xgAAB8ZAAAfGQAALBkAAC8ZAAA8GQAAPxkAAEEZAABDGQAAbhkAAG8ZAAB1GQAAfxkAAKwZAACvGQAAyhkAAM8ZAADbGQAA3RkAABwaAAAdGgAAXxoAAF8aAAB9GgAAfhoAAIoaAACPGgAAmhoAAJ8aAACuGgAArxoAAM8aAAD/GgAATRsAAE8bAAB/GwAAfxsAAPQbAAD7GwAAOBwAADocAABKHAAATBwAAIkcAACPHAAAuxwAALwcAADIHAAAzxwAAPscAAD/HAAAFh8AABcfAAAeHwAAHx8AAEYfAABHHwAATh8AAE8fAABYHwAAWB8AAFofAABaHwAAXB8AAFwfAABeHwAAXh8AAH4fAAB/HwAAtR8AALUfAADFHwAAxR8AANQfAADVHwAA3B8AANwfAADwHwAA8R8AAPUfAAD1HwAA/x8AAP8fAABlIAAAZSAAAHIgAABzIAAAjyAAAI8gAACdIAAAnyAAAMEgAADPIAAA8SAAAP8gAACMIQAAjyEAACckAAA/JAAASyQAAF8kAAB0KwAAdSsAAJYrAACWKwAA9CwAAPgsAAAmLQAAJi0AACgtAAAsLQAALi0AAC8tAABoLQAAbi0AAHEtAAB+LQAAly0AAJ8tAACnLQAApy0AAK8tAACvLQAAty0AALctAAC/LQAAvy0AAMctAADHLQAAzy0AAM8tAADXLQAA1y0AAN8tAADfLQAAXi4AAH8uAACaLgAAmi4AAPQuAAD/LgAA1i8AAO8vAAD8LwAA/y8AAEAwAABAMAAAlzAAAJgwAAAAMQAABDEAADAxAAAwMQAAjzEAAI8xAADkMQAA7zEAAB8yAAAfMgAAjaQAAI+kAADHpAAAz6QAACymAAA/pgAA+KYAAP+mAADLpwAAz6cAANKnAADSpwAA1KcAANSnAADapwAA8acAAC2oAAAvqAAAOqgAAD+oAAB4qAAAf6gAAMaoAADNqAAA2qgAAN+oAABUqQAAXqkAAH2pAAB/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AQAAQQEAAEEBAABDAQAAQwEAAEUBAABFAQAARwEAAEcBAABKAQAASgEAAEwBAABMAQAATgEAAE4BAABQAQAAUAEAAFIBAABSAQAAVAEAAFQBAABWAQAAVgEAAFgBAABYAQAAWgEAAFoBAABcAQAAXAEAAF4BAABeAQAAYAEAAGABAABiAQAAYgEAAGQBAABkAQAAZgEAAGYBAABoAQAAaAEAAGoBAABqAQAAbAEAAGwBAABuAQAAbgEAAHABAABwAQAAcgEAAHIBAAB0AQAAdAEAAHYBAAB2AQAAeAEAAHkBAAB7AQAAewEAAH0BAAB9AQAAgQEAAIIBAACEAQAAhAEAAIYBAACHAQAAiQEAAIsBAACOAQAAkQEAAJMBAACUAQAAlgEAAJgBAACcAQAAnQEAAJ8BAACgAQAAogEAAKIBAACkAQAApAEAAKYBAACnAQAAqQEAAKkBAACsAQAArAEAAK4BAACvAQAAsQEAALMBAAC1AQAAtQEAALcBAAC4AQAAvAEAALwBAADEAQAAxAEAAMcBAADHAQAAygEAAMoBAADNAQAAzQEAAM8BAADPAQAA0QEAANEBAADTAQAA0wEAANUBAADVAQAA1wEAANcBAADZAQAA2QEAANsBAADbAQAA3gEAAN4BAADgAQAA4AEAAOIBAADiAQAA5AEAAOQBAADmAQAA5gEAAOgBAADoAQAA6gEAAOoBAADsAQAA7AEAAO4BAADuAQAA8QEAAPEBAAD0AQAA9AEAAPYBAAD4AQAA+gEAAPoBAAD8AQAA/AEAAP4BAAD+AQAAAAIAAAACAAACAgAAAgIAAAQCAAAEAgAABgIAAAYCAAAIAgAACAIAAAoCAAAKAgAADAIAAAwCAAAOAgAADgIAABACAAAQAgAAEgIAABICAAAUAgAAFAIAABYCAAAWAgAAGAIAABgCAAAaAgAAGgIAABwCAAAcAgAAHgIAAB4CAAAgAgAAIAIAACICAAAiAgAAJAIAACQCAAAmAgAAJgIAACgCAAAoAgAAKgIAACoCAAAsAgAALAIAAC4CAAAuAgAAMAIAADACAAAyAgAAMgIAADoCAAA7AgAAPQIAAD4CAABBAgAAQQIAAEMCAABGAgAASAIAAEgCAABKAgAASgIAAEwCAABMAgAATgIAAE4CAABwAwAAcAMAAHIDAAByAwAAdgMAAHYDAAB/AwAAfwMAAIYDAACGAwAAiAMAAIoDAACMAwAAjAMAAI4DAACPAwAAkQMAAKEDAACjAwAAqwMAAM8DAADPAwAA0gMAANQDAADYAwAA2AMAANoDAADaAwAA3AMAANwDAADeAwAA3gMAAOADAADgAwAA4gMAAOIDAADkAwAA5AMAAOYDAADmAwAA6AMAAOgDAADqAwAA6gMAAOwDAADsAwAA7gMAAO4DAAD0AwAA9AMAAPcDAAD3AwAA+QMAAPoDAAD9AwAALwQAAGAEAABgBAAAYgQAAGIEAABkBAAAZAQAAGYEAABmBAAAaAQAAGgEAABqBAAAagQAAGwEAABsBAAAbgQAAG4EAABwBAAAcAQAAHIEAAByBAAAdAQAAHQEAAB2BAAAdgQAAHgEAAB4BAAAegQAAHoEAAB8BAAAfAQAAH4EAAB+BAAAgAQAAIAEAACKBAAAigQAAIwEAACMBAAAjgQAAI4EAACQBAAAkAQAAJIEAACSBAAAlAQAAJQEAACWBAAAlgQAAJgEAACYBAAAmgQAAJoEAACcBAAAnAQAAJ4EAACeBAAAoAQAAKAEAACiBAAAogQAAKQEAACkBAAApgQAAKYEAACoBAAAqAQAAKoEAACqBAAArAQAAKwEAACuBAAArgQAALAEAACwBAAAsgQAALIEAAC0BAAAtAQAALYEAAC2BAAAuAQAALgEAAC6BAAAugQAALwEAAC8BAAAvgQAAL4EAADABAAAwQQAAMMEAADDBAAAxQQAAMUEAADHBAAAxwQAAMkEAADJBAAAywQAAMsEAADNBAAAzQQAANAEAADQBAAA0gQAANIEAADUBAAA1AQAANYEAADWBAAA2AQAANgEAADaBAAA2gQAANwEAADcBAAA3gQAAN4EAADgBAAA4AQAAOIEAADiBAAA5AQAAOQEAADmBAAA5gQAAOgEAADoBAAA6gQAAOoEAADsBAAA7AQAAO4EAADuBAAA8AQAAPAEAADyBAAA8gQAAPQEAAD0BAAA9gQAAPYEAAD4BAAA+AQAAPoEAAD6BAAA/AQAAPwEAAD+BAAA/gQAAAAFAAAABQAAAgUAAAIFAAAEBQAABAUAAAYFAAAGBQAACAUAAAgFAAAKBQAACgUAAAwFAAAMBQAADgUAAA4FAAAQBQAAEAUAABIFAAASBQAAFAUAABQFAAAWBQAAFgUAABgFAAAYBQAAGgUAABoFAAAcBQAAHAUAAB4FAAAeBQAAIAUAACAFAAAiBQAAIgUAACQFAAAkBQAAJgUAACYFAAAoBQAAKAUAACoFAAAqBQAALAUAACwFAAAuBQAALgUAADEFAABWBQAAoBAAAMUQAADHEAAAxxAAAM0QAADNEAAAoBMAAPUTAACQHAAAuhwAAL0cAAC/HAAAAB4AAAAeAAACHgAAAh4AAAQeAAAEHgAABh4AAAYeAAAIHgAACB4AAAoeAAAKHgAADB4AAAweAAAOHgAADh4AABAeAAAQHgAAEh4AABIeAAAUHgAAFB4AABYeAAAWHgAAGB4AABgeAAAaHgAAGh4AABweAAAcHgAAHh4AAB4eAAAgHgAAIB4AACIeAAAiHgAAJB4AACQeAAAmHgAAJh4AACgeAAAoHgAAKh4AACoeAAAsHgAALB4AAC4eAAAuHgAAMB4AADAeAAAyHgAAMh4AADQeAAA0HgAANh4AADYeAAA4HgAAOB4AADoeAAA6HgAAPB4AADweAAA+HgAAPh4AAEAeAABAHgAAQh4AAEIeAABEHgAARB4AAEYeAABGHgAASB4AAEgeAABKHgAASh4AAEweAABMHgAATh4AAE4eAABQHgAAUB4AAFIeAABSHgAAVB4AAFQeAABWHgAAVh4AAFgeAABYHgAAWh4AAFoeAABcHgAAXB4AAF4eAABeHgAAYB4AAGAeAABiHgAAYh4AAGQeAABkHgAAZh4AAGYeAABoHgAAaB4AAGoeAABqHgAAbB4AAGweAABuHgAAbh4AAHAeAABwHgAAch4AAHIeAAB0HgAAdB4AAHYeAAB2HgAAeB4AAHgeAAB6HgAAeh4AAHweAAB8HgAAfh4AAH4eAACAHgAAgB4AAIIeAACCHgAAhB4AAIQeAACGHgAAhh4AAIgeAACIHgAAih4AAIoeAACMHgAAjB4AAI4eAACOHgAAkB4AAJAeAACSHgAAkh4AAJQeAACUHgAAnh4AAJ4eAACgHgAAoB4AAKIeAACiHgAApB4AAKQeAACmHgAAph4AAKgeAACoHgAAqh4AAKoeAACsHgAArB4AAK4eAACuHgAAsB4AALAeAACyHgAAsh4AALQeAAC0HgAAth4AALYeAAC4HgAAuB4AALoeAAC6HgAAvB4AALweAAC+HgAAvh4AAMAeAADAHgAAwh4AAMIeAADEHgAAxB4AAMYeAADGHgAAyB4AAMgeAADKHgAAyh4AAMweAADMHgAAzh4AAM4eAADQHgAA0B4AANIeAADSHgAA1B4AANQeAADWHgAA1h4AANgeAADYHgAA2h4AANoeAADcHgAA3B4AAN4eAADeHgAA4B4AAOAeAADiHgAA4h4AAOQeAADkHgAA5h4AAOYeAADoHgAA6B4AAOoeAADqHgAA7B4AAOweAADuHgAA7h4AAPAeAADwHgAA8h4AAPIeAAD0HgAA9B4AAPYeAAD2HgAA+B4AAPgeAAD6HgAA+h4AAPweAAD8HgAA/h4AAP4eAAAIHwAADx8AABgfAAAdHwAAKB8AAC8fAAA4HwAAPx8AAEgfAABNHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAF8fAABoHwAAbx8AALgfAAC7HwAAyB8AAMsfAADYHwAA2x8AAOgfAADsHwAA+B8AAPsfAAACIQAAAiEAAAchAAAHIQAACyEAAA0hAAAQIQAAEiEAABUhAAAVIQAAGSEAAB0hAAAkIQAAJCEAACYhAAAmIQAAKCEAACghAAAqIQAALSEAADAhAAAzIQAAPiEAAD8hAABFIQAARSEAAIMhAACDIQAAACwAAC8sAABgLAAAYCwAAGIsAABkLAAAZywAAGcsAABpLAAAaSwAAGssAABrLAAAbSwAAHAsAAByLAAAciwAAHUsAAB1LAAAfiwAAIAsAACCLAAAgiwAAIQsAACELAAAhiwAAIYsAACILAAAiCwAAIosAACKLAAAjCwAAIwsAACOLAAAjiwAAJAsAACQLAAAkiwAAJIsAACULAAAlCwAAJYsAACWLAAAmCwAAJgsAACaLAAAmiwAAJwsAACcLAAAniwAAJ4sAACgLAAAoCwAAKIsAACiLAAApCwAAKQsAACmLAAApiwAAKgsAACoLAAAqiwAAKosAACsLAAArCwAAK4sAACuLAAAsCwAALAsAACyLAAAsiwAALQsAAC0LAAAtiwAALYsAAC4LAAAuCwAALosAAC6LAAAvCwAALwsAAC+LAAAviwAAMAsAADALAAAwiwAAMIsAADELAAAxCwAAMYsAADGLAAAyCwAAMgsAADKLAAAyiwAAMwsAADMLAAAziwAAM4sAADQLAAA0CwAANIsAADSLAAA1CwAANQsAADWLAAA1iwAANgsAADYLAAA2iwAANosAADcLAAA3CwAAN4sAADeLAAA4CwAAOAsAADiLAAA4iwAAOssAADrLAAA7SwAAO0sAADyLAAA8iwAAECmAABApgAAQqYAAEKmAABEpgAARKYAAEamAABGpgAASKYAAEimAABKpgAASqYAAEymAABMpgAATqYAAE6mAABQpgAAUKYAAFKmAABSpgAAVKYAAFSmAABWpgAAVqYAAFimAABYpgAAWqYAAFqmAABcpgAAXKYAAF6mAABepgAAYKYAAGCmAABipgAAYqYAAGSmAABkpgAAZqYAAGamAABopgAAaKYAAGqmAABqpgAAbKYAAGymAACApgAAgKYAAIKmAACCpgAAhKYAAISmAACGpgAAhqYAAIimAACIpgAAiqYAAIqmAACMpgAAjKYAAI6mAACOpgAAkKYAAJCmAACSpgAAkqYAAJSmAACUpgAAlqYAAJamAACYpgAAmKYAAJqmAACapgAAIqcAACKnAAAkpwAAJKcAACanAAAmpwAAKKcAACinAAAqpwAAKqcAACynAAAspwAALqcAAC6nAAAypwAAMqcAADSnAAA0pwAANqcAADanAAA4pwAAOKcAADqnAAA6pwAAPKcAADynAAA+pwAAPqcAAECnAABApwAAQqcAAEKnAABEpwAARKcAAEanAABGpwAASKcAAEinAABKpwAASqcAAEynAABMpwAATqcAAE6nAABQpwAAUKcAAFKnAABSpwAAVKcAAFSnAABWpwAAVqcAAFinAABYpwAAWqcAAFqnAABcpwAAXKcAAF6nAABepwAAYKcAAGCnAABipwAAYqcAAGSnAABkpwAAZqcAAGanAABopwAAaKcAAGqnAABqpwAAbKcAAGynAABupwAAbqcAAHmnAAB5pwAAe6cAAHunAAB9pwAAfqcAAICnAACApwAAgqcAAIKnAACEpwAAhKcAAIanAACGpwAAi6cAAIunAACNpwAAjacAAJCnAACQpwAAkqcAAJKnAACWpwAAlqcAAJinAACYpwAAmqcAAJqnAACcpwAAnKcAAJ6nAACepwAAoKcAAKCnAACipwAAoqcAAKSnAACkpwAApqcAAKanAACopwAAqKcAAKqnAACupwAAsKcAALSnAAC2pwAAtqcAALinAAC4pwAAuqcAALqnAAC8pwAAvKcAAL6nAAC+pwAAwKcAAMCnAADC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CwEAmQsBAJwLAQCpCwEArwsBAFEJAABRCQAA1xwAANccAADZHAAA2RwAANwcAADdHAAA4BwAAOAcAACAEQEA3xEBAGQJAABlCQAAgQ0AAIMNAACFDQAAlg0AAJoNAACxDQAAsw0AALsNAAC9DQAAvQ0AAMANAADGDQAAyg0AAMoNAADPDQAA1A0AANYNAADWDQAA2A0AAN8NAADmDQAA7w0AAPINAAD0DQAA4REBAPQRAQBABgAAQAYAADAPAQBZDwEAZAkAAGUJAADmCQAA7wkAAACoAAAsqAAADAYAAAwGAAAbBgAAHAYAAB8GAAAfBgAAQAYAAEAGAABLBgAAVQYAAHAGAABwBgAAAAcAAA0HAAAPBwAASgcAAE0HAABPBwAAYAgAAGoIAAD4HQAA+B0AAPodAAD6HQAAABcAABUXAAAfFwAAHxcAADUXAAA2FwAANRcAADYXAABgFwAAbBcAAG4XAABwFwAAchcAAHMXAABAEAAASRAAAFAZAABtGQAAcBkAAHQZAABkCQAAZQkAADCoAAA5qAAAgBYBALkWAQDAFgEAyRYBAFEJAABSCQAAZAkAAGUJAACCCwAAgwsAAIULAACKCwAAjgsAAJALAACSCwAAlQsAAJkLAACaCwAAnAsAAJwLAACeCwAAnwsAAKMLAACkCwAAqAsAAKoLAACuCwAAuQsAAL4LAADCCwAAxgsAAMgLAADKCwAAzQsAANALAADQCwAA1wsAANcLAADmCwAA+gsAANocAADaHAAA86gAAPOoAAABEwEAARMBAAMTAQADEwEAOxMBADwTAQDAHwEA8R8BAP8fAQD/HwEAUQkAAFIJAABkCQAAZQkAAAAMAAAMDAAADgwAABAMAAASDAAAKAwAACoMAAA5DAAAPAwAAEQMAABGDAAASAwAAEoMAABNDAAAVQwAAFYMAABYDAAAWgwAAF0MAABdDAAAYAwAAGMMAABmDAAAbwwAAHcMAAB/DAAA2hwAANocAADyHAAA8hwAAAwGAAAMBgAAGwYAABwGAAAfBgAAHwYAAGAGAABpBgAAgAcAALEHAADy/QAA8v0AAP39AAD9/QAAUQkAAFIJAABkCQAAZQkAAPIcAADyHAAAMKgAADmoAACAFAEAxxQBANAUAQDZFAEADAYAAAwGAAAbBgAAGwYAAB8GAAAfBgAAYAYAAGkGAACA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AAAAYQAAAGYAAABBAAAAWgAAAGEAAAB6AAAAqgAAAKoAAAC1AAAAtQAAALoAAAC6AAAAwAAAANYAAADYAAAA9gAAAPgAAADBAgAAxgIAANECAADgAgAA5AIAAOwCAADsAgAA7gIAAO4CAABFAwAARQMAAHADAAB0AwAAdgMAAHcDAAB6AwAAfQMAAH8DAAB/AwAAhgMAAIYDAACIAwAAigMAAIwDAACMAwAAjgMAAKEDAACjAwAA9QMAAPcDAACBBAAAigQAAC8FAAAxBQAAVgUAAFkFAABZBQAAYAUAAIgFAACwBQAAvQUAAL8FAAC/BQAAwQUAAMIFAADEBQAAxQUAAMcFAADHBQAA0AUAAOoFAADvBQAA8gUAABAGAAAaBgAAIAYAAFcGAABZBgAAXwYAAG4GAADTBgAA1QYAANwGAADhBgAA6AYAAO0GAADvBgAA+gYAAPwGAAD/BgAA/wYAABAHAAA/BwAATQcAALEHAADKBwAA6gcAAPQHAAD1BwAA+gcAAPoHAAAACAAAFwgAABoIAAAsCAAAQAgAAFgIAABgCAAAaggAAHAIAACHCAAAiQgAAI4IAACgCAAAyQgAANQIAADfCAAA4wgAAOkIAADwCAAAOwkAAD0JAABMCQAATgkAAFAJAABVCQAAYwkAAHEJAACDCQAAhQkAAIwJAACPCQAAkAkAAJMJAACoCQAAqgkAALAJAACyCQAAsgkAALYJAAC5CQAAvQkAAMQJAADHCQAAyAkAAMsJAADMCQAAzgkAAM4JAADXCQAA1wkAANwJAADdCQAA3wkAAOMJAADwCQAA8QkAAPwJAAD8CQAAAQoAAAMKAAAFCgAACgoAAA8KAAAQCgAAEwoAACgKAAAqCgAAMAoAADIKAAAzCgAANQoAADYKAAA4CgAAOQoAAD4KAABCCgAARwoAAEgKAABLCgAATAoAAFEKAABRCgAAWQoAAFwKAABeCgAAXgoAAHAKAAB1CgAAgQoAAIMKAACFCgAAjQoAAI8KAACRCgAAkwoAAKgKAACqCgAAsAoAALIKAACzCgAAtQoAALkKAAC9CgAAxQoAAMcKAADJCgAAywoAAMwKAADQCgAA0AoAAOAKAADjCgAA+QoAAPwKAAABCwAAAwsAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAAD0LAABECwAARwsAAEgLAABLCwAATAsAAFYLAABXCwAAXAsAAF0LAABfCwAAYwsAAHELAABxCwAAggsAAIMLAACFCwAAigsAAI4LAACQCwAAkgsAAJULAACZCwAAmgsAAJwLAACcCwAAngsAAJ8LAACjCwAApAsAAKgLAACqCwAArgsAALkLAAC+CwAAwgsAAMYLAADICwAAygsAAMwLAADQCwAA0AsAANcLAADXCwAAAAwAAAwMAAAODAAAEAwAABIMAAAoDAAAKgwAADkMAAA9DAAARAwAAEYMAABIDAAASgwAAEwMAABVDAAAVgwAAFgMAABaDAAAXQwAAF0MAABgDAAAYwwAAIAMAACDDAAAhQwAAIwMAACODAAAkAwAAJIMAACoDAAAqgwAALMMAAC1DAAAuQwAAL0MAADEDAAAxgwAAMgMAADKDAAAzAwAANUMAADWDAAA3QwAAN4MAADgDAAA4wwAAPEMAADzDAAAAA0AAAwNAAAODQAAEA0AABINAAA6DQAAPQ0AAEQNAABGDQAASA0AAEoNAABMDQAATg0AAE4NAABUDQAAVw0AAF8NAABjDQAAeg0AAH8NAACBDQAAgw0AAIUNAACWDQAAmg0AALENAACzDQAAuw0AAL0NAAC9DQAAwA0AAMYNAADPDQAA1A0AANYNAADWDQAA2A0AAN8NAADyDQAA8w0AAAEOAAA6DgAAQA4AAEYOAABNDgAATQ4AAIEOAACCDgAAhA4AAIQOAACGDgAAig4AAIwOAACjDgAApQ4AAKUOAACnDgAAuQ4AALsOAAC9DgAAwA4AAMQOAADGDgAAxg4AAM0OAADNDgAA3A4AAN8OAAAADwAAAA8AAEAPAABHDwAASQ8AAGwPAABxDwAAgw8AAIgPAACXDwAAmQ8AALwPAAAAEAAANhAAADgQAAA4EAAAOxAAAD8QAABQEAAAjxAAAJoQAACdEAAAoBAAAMUQAADHEAAAxxAAAM0QAADNEAAA0BAAAPoQAAD8EAAASBIAAEoSAABNEgAAUBIAAFYSAABYEgAAWBIAAFoSAABdEgAAYBIAAIgSAACKEgAAjRIAAJASAACwEgAAshIAALUSAAC4EgAAvhIAAMASAADAEgAAwhIAAMUSAADIEgAA1hIAANgSAAAQEwAAEhMAABUTAAAYEwAAWhMAAIATAACPEwAAoBMAAPUTAAD4EwAA/RMAAAEUAABsFgAAbxYAAH8WAACBFgAAmhYAAKAWAADqFgAA7hYAAPgWAAAAFwAAExcAAB8XAAAzFwAAQBcAAFMXAABgFwAAbBcAAG4XAABwFwAAchcAAHMXAACAFwAAsxcAALYXAADIFwAA1xcAANcXAADcFwAA3BcAACAYAAB4GAAAgBgAAKoYAACwGAAA9RgAAAAZAAAeGQAAIBkAACsZAAAwGQAAOBkAAFAZAABtGQAAcBkAAHQZAACAGQAAqxkAALAZAADJGQAAABoAABsaAAAgGgAAXhoAAGEaAAB0GgAApxoAAKcaAAC/GgAAwBoAAMwaAADOGgAAABsAADMbAAA1GwAAQxsAAEUbAABMGwAAgBsAAKkbAACsGwAArxsAALobAADlGwAA5xsAAPEbAAAAHAAANhwAAE0cAABPHAAAWhwAAH0cAACAHAAAiBwAAJAcAAC6HAAAvRwAAL8cAADpHAAA7BwAAO4cAADzHAAA9RwAAPYcAAD6HAAA+hwAAAAdAAC/HQAA5x0AAPQdAAAAHgAAFR8AABgfAAAdHwAAIB8AAEUfAABIHwAATR8AAFAfAABXHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAH0fAACAHwAAtB8AALYfAAC8HwAAvh8AAL4fAADCHwAAxB8AAMYfAADMHwAA0B8AANMfAADWHwAA2x8AAOAfAADsHwAA8h8AAPQfAAD2HwAA/B8AAHEgAABxIAAAfyAAAH8gAACQIAAAnCAAAAIhAAACIQAAByEAAAchAAAKIQAAEyEAABUhAAAVIQAAGSEAAB0hAAAkIQAAJCEAACYhAAAmIQAAKCEAACghAAAqIQAALSEAAC8hAAA5IQAAPCEAAD8hAABFIQAASSEAAE4hAABOIQAAYCEAAIghAAC2JAAA6SQAAAAsAADkLAAA6ywAAO4sAADyLAAA8ywAAAAtAAAlLQAAJy0AACctAAAtLQAALS0AADAtAABnLQAAby0AAG8tAACALQAAli0AAKAtAACmLQAAqC0AAK4tAACwLQAAti0AALgtAAC+LQAAwC0AAMYtAADILQAAzi0AANAtAADWLQAA2C0AAN4tAADgLQAA/y0AAC8uAAAvLgAABTAAAAcwAAAhMAAAKTAAADEwAAA1MAAAODAAADwwAABB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AQAAGgEAABwBAAAcAQAAHgEAAB4BAAAgAQAAIAEAACIBAAAiAQAAJAEAACQBAAAmAQAAJgEAACgBAAAoAQAAKgEAACoBAAAsAQAALAEAAC4BAAAuAQAAMAEAADABAAAyAQAAMgEAADQBAAA0AQAANgEAADYBAAA5AQAAOQEAADsBAAA7AQAAPQEAAD0BAAA/AQAAPwEAAEEBAABBAQAAQwEAAEMBAABFAQAARQEAAEcBAABHAQAASQEAAEoBAABMAQAATAEAAE4BAABOAQAAUAEAAFABAABSAQAAUgEAAFQBAABUAQAAVgEAAFYBAABYAQAAWAEAAFoBAABaAQAAXAEAAFwBAABeAQAAXgEAAGABAABgAQAAYgEAAGIBAABkAQAAZAEAAGYBAABmAQAAaAEAAGgBAABqAQAAagEAAGwBAABsAQAAbgEAAG4BAABwAQAAcAEAAHIBAAByAQAAdAEAAHQBAAB2AQAAdgEAAHgBAAB5AQAAewEAAHsBAAB9AQAAfQEAAH8BAAB/AQAAgQEAAIIBAACEAQAAhAEAAIYBAACHAQAAiQEAAIsBAACOAQAAkQEAAJMBAACUAQAAlgEAAJgBAACcAQAAnQEAAJ8BAACgAQAAogEAAKIBAACkAQAApAEAAKYBAACnAQAAqQEAAKkBAACsAQAArAEAAK4BAACvAQAAsQEAALMBAAC1AQAAtQEAALcBAAC4AQAAvAEAALwBAADEAQAAxQEAAMcBAADIAQAAygEAAMsBAADNAQAAzQEAAM8BAADPAQAA0QEAANEBAADTAQAA0wEAANUBAADVAQAA1wEAANcBAADZAQAA2QEAANsBAADbAQAA3gEAAN4BAADgAQAA4AEAAOIBAADiAQAA5AEAAOQBAADmAQAA5gEAAOgBAADoAQAA6gEAAOoBAADsAQAA7AEAAO4BAADuAQAA8QEAAPIBAAD0AQAA9AEAAPYBAAD4AQAA+gEAAPoBAAD8AQAA/AEAAP4BAAD+AQAAAAIAAAACAAACAgAAAgIAAAQCAAAEAgAABgIAAAYCAAAIAgAACAIAAAoCAAAKAgAADAIAAAwCAAAOAgAADgIAABACAAAQAgAAEgIAABICAAAUAgAAFAIAABYCAAAWAgAAGAIAABgCAAAaAgAAGgIAABwCAAAcAgAAHgIAAB4CAAAgAgAAIAIAACICAAAiAgAAJAIAACQCAAAmAgAAJgIAACgCAAAoAgAAKgIAACoCAAAsAgAALAIAAC4CAAAuAgAAMAIAADACAAAyAgAAMgIAADoCAAA7AgAAPQIAAD4CAABBAgAAQQIAAEMCAABGAgAASAIAAEgCAABKAgAASgIAAEwCAABMAgAATgIAAE4CAABFAwAARQMAAHADAABwAwAAcgMAAHIDAAB2AwAAdgMAAH8DAAB/AwAAhgMAAIYDAACIAwAAigMAAIwDAACMAwAAjgMAAI8DAACRAwAAoQMAAKMDAACrAwAAwgMAAMIDAADPAwAA0QMAANUDAADWAwAA2AMAANgDAADaAwAA2gMAANwDAADcAwAA3gMAAN4DAADgAwAA4AMAAOIDAADiAwAA5AMAAOQDAADmAwAA5gMAAOgDAADoAwAA6gMAAOoDAADsAwAA7AMAAO4DAADuAwAA8AMAAPEDAAD0AwAA9QMAAPcDAAD3AwAA+QMAAPoDAAD9AwAALwQAAGAEAABgBAAAYgQAAGIEAABkBAAAZAQAAGYEAABmBAAAaAQAAGgEAABqBAAAagQAAGwEAABsBAAAbgQAAG4EAABwBAAAcAQAAHIEAAByBAAAdAQAAHQEAAB2BAAAdgQAAHgEAAB4BAAAegQAAHoEAAB8BAAAfAQAAH4EAAB+BAAAgAQAAIAEAACKBAAAigQAAIwEAACMBAAAjgQAAI4EAACQBAAAkAQAAJIEAACSBAAAlAQAAJQEAACWBAAAlgQAAJgEAACYBAAAmgQAAJoEAACcBAAAnAQAAJ4EAACeBAAAoAQAAKAEAACiBAAAogQAAKQEAACkBAAApgQAAKYEAACoBAAAqAQAAKoEAACqBAAArAQAAKwEAACuBAAArgQAALAEAACwBAAAsgQAALIEAAC0BAAAtAQAALYEAAC2BAAAuAQAALgEAAC6BAAAugQAALwEAAC8BAAAvgQAAL4EAADABAAAwQQAAMMEAADDBAAAxQQAAMUEAADHBAAAxwQAAMkEAADJBAAAywQAAMsEAADNBAAAzQQAANAEAADQBAAA0gQAANIEAADUBAAA1AQAANYEAADWBAAA2AQAANgEAADaBAAA2gQAANwEAADcBAAA3gQAAN4EAADgBAAA4AQAAOIEAADiBAAA5AQAAOQEAADmBAAA5gQAAOgEAADoBAAA6gQAAOoEAADsBAAA7AQAAO4EAADuBAAA8AQAAPAEAADyBAAA8gQAAPQEAAD0BAAA9gQAAPYEAAD4BAAA+AQAAPoEAAD6BAAA/AQAAPwEAAD+BAAA/gQAAAAFAAAABQAAAgUAAAIFAAAEBQAABAUAAAYFAAAGBQAACAUAAAgFAAAKBQAACgUAAAwFAAAMBQAADgUAAA4FAAAQBQAAEAUAABIFAAASBQAAFAUAABQFAAAWBQAAFgUAABgFAAAYBQAAGgUAABoFAAAcBQAAHAUAAB4FAAAeBQAAIAUAACAFAAAiBQAAIgUAACQFAAAkBQAAJgUAACYFAAAoBQAAKAUAACoFAAAqBQAALAUAACwFAAAuBQAALgUAADEFAABWBQAAhwUAAIcFAACgEAAAxRAAAMcQAADHEAAAzRAAAM0QAAD4EwAA/RMAAIAcAACIHAAAkBwAALocAAC9HAAAvxwAAAAeAAAAHgAAAh4AAAIeAAAEHgAABB4AAAYeAAAGHgAACB4AAAgeAAAKHgAACh4AAAweAAAMHgAADh4AAA4eAAAQHgAAEB4AABIeAAASHgAAFB4AABQeAAAWHgAAFh4AABgeAAAYHgAAGh4AABoeAAAcHgAAHB4AAB4eAAAeHgAAIB4AACAeAAAiHgAAIh4AACQeAAAkHgAAJh4AACYeAAAoHgAAKB4AACoeAAAqHgAALB4AACweAAAuHgAALh4AADAeAAAwHgAAMh4AADIeAAA0HgAANB4AADYeAAA2HgAAOB4AADgeAAA6HgAAOh4AADweAAA8HgAAPh4AAD4eAABAHgAAQB4AAEIeAABCHgAARB4AAEQeAABGHgAARh4AAEgeAABIHgAASh4AAEoeAABMHgAATB4AAE4eAABOHgAAUB4AAFAeAABSHgAAUh4AAFQeAABUHgAAVh4AAFYeAABYHgAAWB4AAFoeAABaHgAAXB4AAFweAABeHgAAXh4AAGAeAABgHgAAYh4AAGIeAABkHgAAZB4AAGYeAABmHgAAaB4AAGgeAABqHgAAah4AAGweAABsHgAAbh4AAG4eAABwHgAAcB4AAHIeAAByHgAAdB4AAHQeAAB2HgAAdh4AAHgeAAB4HgAAeh4AAHoeAAB8HgAAfB4AAH4eAAB+HgAAgB4AAIAeAACCHgAAgh4AAIQeAACEHgAAhh4AAIYeAACIHgAAiB4AAIoeAACKHgAAjB4AAIweAACOHgAAjh4AAJAeAACQHgAAkh4AAJIeAACUHgAAlB4AAJoeAACbHgAAnh4AAJ4eAACgHgAAoB4AAKIeAACiHgAApB4AAKQeAACmHgAAph4AAKgeAACoHgAAqh4AAKoeAACsHgAArB4AAK4eAACuHgAAsB4AALAeAACyHgAAsh4AALQeAAC0HgAAth4AALYeAAC4HgAAuB4AALoeAAC6HgAAvB4AALweAAC+HgAAvh4AAMAeAADAHgAAwh4AAMIeAADEHgAAxB4AAMYeAADGHgAAyB4AAMgeAADKHgAAyh4AAMweAADMHgAAzh4AAM4eAADQHgAA0B4AANIeAADSHgAA1B4AANQeAADWHgAA1h4AANgeAADYHgAA2h4AANoeAADcHgAA3B4AAN4eAADeHgAA4B4AAOAeAADiHgAA4h4AAOQeAADkHgAA5h4AAOYeAADoHgAA6B4AAOoeAADqHgAA7B4AAOweAADuHgAA7h4AAPAeAADwHgAA8h4AAPIeAAD0HgAA9B4AAPYeAAD2HgAA+B4AAPgeAAD6HgAA+h4AAPweAAD8HgAA/h4AAP4eAAAIHwAADx8AABgfAAAdHwAAKB8AAC8fAAA4HwAAPx8AAEgfAABNHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAF8fAABoHwAAbx8AAIAfAACvHwAAsh8AALQfAAC3HwAAvB8AAMIfAADEHwAAxx8AAMwfAADYHwAA2x8AAOgfAADsHwAA8h8AAPQfAAD3HwAA/B8AACYhAAAmIQAAKiEAACshAAAyIQAAMiEAAGAhAABvIQAAgyEAAIMhAAC2JAAAzyQAAAAsAAAvLAAAYCwAAGAsAABiLAAAZCwAAGcsAABnLAAAaSwAAGksAABrLAAAaywAAG0sAABwLAAAciwAAHIsAAB1LAAAdSwAAH4sAACALAAAgiwAAIIsAACELAAAhCwAAIYsAACGLAAAiCwAAIgsAACKLAAAiiwAAIwsAACMLAAAjiwAAI4sAACQLAAAkCwAAJIsAACSLAAAlCwAAJQsAACWLAAAliwAAJgsAACYLAAAmiwAAJosAACcLAAAnCwAAJ4sAACeLAAAoCwAAKAsAACiLAAAoiwAAKQsAACkLAAApiwAAKYsAACoLAAAqCwAAKosAACqLAAArCwAAKwsAACuLAAAriwAALAsAACwLAAAsiwAALIsAAC0LAAAtCwAALYsAAC2LAAAuCwAALgsAAC6LAAAuiwAALwsAAC8LAAAviwAAL4sAADALAAAwCwAAMIsAADCLAAAxCwAAMQsAADGLAAAxiwAAMgsAADILAAAyiwAAMosAADMLAAAzCwAAM4sAADOLAAA0CwAANAsAADSLAAA0iwAANQsAADULAAA1iwAANYsAADYLAAA2CwAANosAADaLAAA3CwAANwsAADeLAAA3iwAAOAsAADgLAAA4iwAAOIsAADrLAAA6ywAAO0sAADtLAAA8iwAAPIsAABApgAAQKYAAEKmAABCpgAARKYAAESmAABGpgAARqYAAEimAABIpgAASqYAAEqmAABMpgAATKYAAE6mAABOpgAAUKYAAFCmAABSpgAAUqYAAFSmAABUpgAAVqYAAFamAABYpgAAWKYAAFqmAABapgAAXKYAAFymAABepgAAXqYAAGCmAABgpgAAYqYAAGKmAABkpgAAZKYAAGamAABmpgAAaKYAAGimAABqpgAAaqYAAGymAABspgAAgKYAAICmAACCpgAAgqYAAISmAACEpgAAhqYAAIamAACIpgAAiKYAAIqmAACKpgAAjKYAAIymAACOpgAAjqYAAJCmAACQpgAAkqYAAJKmAACUpgAAlKYAAJamAACWpgAAmKYAAJimAACapgAAmqYAACKnAAAipwAAJKcAACSnAAAmpwAAJqcAACinAAAopwAAKqcAACqnAAAspwAALKcAAC6nAAAupwAAMqcAADKnAAA0pwAANKcAADanAAA2pwAAOKcAADinAAA6pwAAOqcAADynAAA8pwAAPqcAAD6nAABApwAAQKcAAEKnAABCpwAARKcAAESnAABGpwAARqcAAEinAABIpwAASqcAAEqnAABMpwAATKcAAE6nAABOpwAAUKcAAFCnAABSpwAAUqcAAFSnAABUpwAAVqcAAFanAABYpwAAWKcAAFqnAABapwAAXKcAAFynAABepwAAXqcAAGCnAABgpwAAYqcAAGKnAABkpwAAZKcAAGanAABmpwAAaKcAAGinAABqpwAAaqcAAGynAABspwAAbqcAAG6nAAB5pwAAeacAAHunAAB7pwAAfacAAH6nAACApwAAgKcAAIKnAACCpwAAhKcAAISnAACGpwAAhqcAAIunAACL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AQAAZAEAAGQBAABmAQAAZgEAAGgBAABoAQAAagEAAGoBAABsAQAAbAEAAG4BAABuAQAAcAEAAHABAAByAQAAcgEAAHQBAAB0AQAAdgEAAHYBAAB4AQAAeQEAAHsBAAB7AQAAfQEAAH0BAACBAQAAggEAAIQBAACEAQAAhgEAAIcBAACJAQAAiwEAAI4BAACRAQAAkwEAAJQBAACWAQAAmAEAAJwBAACdAQAAnwEAAKABAACiAQAAogEAAKQBAACkAQAApgEAAKcBAACpAQAAqQEAAKwBAACsAQAArgEAAK8BAACxAQAAswEAALUBAAC1AQAAtwEAALgBAAC8AQAAvAEAAMQBAADFAQAAxwEAAMgBAADKAQAAywEAAM0BAADNAQAAzwEAAM8BAADRAQAA0QEAANMBAADTAQAA1QEAANUBAADXAQAA1wEAANkBAADZAQAA2wEAANsBAADeAQAA3gEAAOABAADgAQAA4gEAAOIBAADkAQAA5AEAAOYBAADmAQAA6AEAAOgBAADqAQAA6gEAAOwBAADsAQAA7gEAAO4BAADxAQAA8gEAAPQBAAD0AQAA9gEAAPgBAAD6AQAA+gEAAPwBAAD8AQAA/gEAAP4BAAAAAgAAAAIAAAICAAACAgAABAIAAAQCAAAGAgAABgIAAAgCAAAIAgAACgIAAAoCAAAMAgAADAIAAA4CAAAOAgAAEAIAABACAAASAgAAEgIAABQCAAAUAgAAFgIAABYCAAAYAgAAGAIAABoCAAAaAgAAHAIAABwCAAAeAgAAHgIAACACAAAgAgAAIgIAACICAAAkAgAAJAIAACYCAAAmAgAAKAIAACgCAAAqAgAAKgIAACwCAAAsAgAALgIAAC4CAAAwAgAAMAIAADICAAAyAgAAOgIAADsCAAA9AgAAPgIAAEECAABBAgAAQwIAAEYCAABIAgAASAIAAEoCAABKAgAATAIAAEwCAABOAgAATgIAAHADAABwAwAAcgMAAHIDAAB2AwAAdgMAAH8DAAB/AwAAhgMAAIYDAACIAwAAigMAAIwDAACMAwAAjgMAAI8DAACRAwAAoQMAAKMDAACrAwAAzwMAAM8DAADYAwAA2AMAANoDAADaAwAA3AMAANwDAADeAwAA3gMAAOADAADgAwAA4gMAAOIDAADkAwAA5AMAAOYDAADmAwAA6AMAAOgDAADqAwAA6gMAAOwDAADsAwAA7gMAAO4DAAD0AwAA9AMAAPcDAAD3AwAA+QMAAPoDAAD9AwAALwQAAGAEAABgBAAAYgQAAGIEAABkBAAAZAQAAGYEAABmBAAAaAQAAGgEAABqBAAAagQAAGwEAABsBAAAbgQAAG4EAABwBAAAcAQAAHIEAAByBAAAdAQAAHQEAAB2BAAAdgQAAHgEAAB4BAAAegQAAHoEAAB8BAAAfAQAAH4EAAB+BAAAgAQAAIAEAACKBAAAigQAAIwEAACMBAAAjgQAAI4EAACQBAAAkAQAAJIEAACSBAAAlAQAAJQEAACWBAAAlgQAAJgEAACYBAAAmgQAAJoEAACcBAAAnAQAAJ4EAACeBAAAoAQAAKAEAACiBAAAogQAAKQEAACkBAAApgQAAKYEAACoBAAAqAQAAKoEAACqBAAArAQAAKwEAACuBAAArgQAALAEAACwBAAAsgQAALIEAAC0BAAAtAQAALYEAAC2BAAAuAQAALgEAAC6BAAAugQAALwEAAC8BAAAvgQAAL4EAADABAAAwQQAAMMEAADDBAAAxQQAAMUEAADHBAAAxwQAAMkEAADJBAAAywQAAMsEAADNBAAAzQQAANAEAADQBAAA0gQAANIEAADUBAAA1AQAANYEAADWBAAA2AQAANgEAADaBAAA2gQAANwEAADcBAAA3gQAAN4EAADgBAAA4AQAAOIEAADiBAAA5AQAAOQEAADmBAAA5gQAAOgEAADoBAAA6gQAAOoEAADsBAAA7AQAAO4EAADuBAAA8AQAAPAEAADyBAAA8gQAAPQEAAD0BAAA9gQAAPYEAAD4BAAA+AQAAPoEAAD6BAAA/AQAAPwEAAD+BAAA/gQAAAAFAAAABQAAAgUAAAIFAAAEBQAABAUAAAYFAAAGBQAACAUAAAgFAAAKBQAACgUAAAwFAAAMBQAADgUAAA4FAAAQBQAAEAUAABIFAAASBQAAFAUAABQFAAAWBQAAFgUAABgFAAAYBQAAGgUAABoFAAAcBQAAHAUAAB4FAAAeBQAAIAUAACAFAAAiBQAAIgUAACQFAAAkBQAAJgUAACYFAAAoBQAAKAUAACoFAAAqBQAALAUAACwFAAAuBQAALgUAADEFAABWBQAAoBAAAMUQAADHEAAAxxAAAM0QAADNEAAAoBMAAPUTAACQHAAAuhwAAL0cAAC/HAAAAB4AAAAeAAACHgAAAh4AAAQeAAAEHgAABh4AAAYeAAAIHgAACB4AAAoeAAAKHgAADB4AAAweAAAOHgAADh4AABAeAAAQHgAAEh4AABIeAAAUHgAAFB4AABYeAAAWHgAAGB4AABgeAAAaHgAAGh4AABweAAAcHgAAHh4AAB4eAAAgHgAAIB4AACIeAAAiHgAAJB4AACQeAAAmHgAAJh4AACgeAAAoHgAAKh4AACoeAAAsHgAALB4AAC4eAAAuHgAAMB4AADAeAAAyHgAAMh4AADQeAAA0HgAANh4AADYeAAA4HgAAOB4AADoeAAA6HgAAPB4AADweAAA+HgAAPh4AAEAeAABAHgAAQh4AAEIeAABEHgAARB4AAEYeAABGHgAASB4AAEgeAABKHgAASh4AAEweAABMHgAATh4AAE4eAABQHgAAUB4AAFIeAABSHgAAVB4AAFQeAABWHgAAVh4AAFgeAABYHgAAWh4AAFoeAABcHgAAXB4AAF4eAABeHgAAYB4AAGAeAABiHgAAYh4AAGQeAABkHgAAZh4AAGYeAABoHgAAaB4AAGoeAABqHgAAbB4AAGweAABuHgAAbh4AAHAeAABwHgAAch4AAHIeAAB0HgAAdB4AAHYeAAB2HgAAeB4AAHgeAAB6HgAAeh4AAHweAAB8HgAAfh4AAH4eAACAHgAAgB4AAIIeAACCHgAAhB4AAIQeAACGHgAAhh4AAIgeAACIHgAAih4AAIoeAACMHgAAjB4AAI4eAACOHgAAkB4AAJAeAACSHgAAkh4AAJQeAACUHgAAnh4AAJ4eAACgHgAAoB4AAKIeAACiHgAApB4AAKQeAACmHgAAph4AAKgeAACoHgAAqh4AAKoeAACsHgAArB4AAK4eAACuHgAAsB4AALAeAACyHgAAsh4AALQeAAC0HgAAth4AALYeAAC4HgAAuB4AALoeAAC6HgAAvB4AALweAAC+HgAAvh4AAMAeAADAHgAAwh4AAMIeAADEHgAAxB4AAMYeAADGHgAAyB4AAMgeAADKHgAAyh4AAMweAADMHgAAzh4AAM4eAADQHgAA0B4AANIeAADSHgAA1B4AANQeAADWHgAA1h4AANgeAADYHgAA2h4AANoeAADcHgAA3B4AAN4eAADeHgAA4B4AAOAeAADiHgAA4h4AAOQeAADkHgAA5h4AAOYeAADoHgAA6B4AAOoeAADqHgAA7B4AAOweAADuHgAA7h4AAPAeAADwHgAA8h4AAPIeAAD0HgAA9B4AAPYeAAD2HgAA+B4AAPgeAAD6HgAA+h4AAPweAAD8HgAA/h4AAP4eAAAIHwAADx8AABgfAAAdHwAAKB8AAC8fAAA4HwAAPx8AAEgfAABNHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAF8fAABoHwAAbx8AAIgfAACPHwAAmB8AAJ8fAACoHwAArx8AALgfAAC8HwAAyB8AAMwfAADYHwAA2x8AAOgfAADsHwAA+B8AAPwfAAAmIQAAJiEAACohAAArIQAAMiEAADIhAABgIQAAbyEAAIMhAACDIQAAtiQAAM8kAAAALAAALywAAGAsAABgLAAAYiwAAGQsAABnLAAAZywAAGksAABpLAAAaywAAGssAABtLAAAcCwAAHIsAAByLAAAdSwAAHUsAAB+LAAAgCwAAIIsAACCLAAAhCwAAIQsAACGLAAAhiwAAIgsAACILAAAiiwAAIosAACMLAAAjCwAAI4sAACOLAAAkCwAAJAsAACSLAAAkiwAAJQsAACULAAAliwAAJYsAACYLAAAmCwAAJosAACaLAAAnCwAAJwsAACeLAAAniwAAKAsAACgLAAAoiwAAKIsAACkLAAApCwAAKYsAACmLAAAqCwAAKgsAACqLAAAqiwAAKwsAACsLAAAriwAAK4sAACwLAAAsCwAALIsAACyLAAAtCwAALQsAAC2LAAAtiwAALgsAAC4LAAAuiwAALosAAC8LAAAvCwAAL4sAAC+LAAAwCwAAMAsAADCLAAAwiwAAMQsAADELAAAxiwAAMYsAADILAAAyCwAAMosAADKLAAAzCwAAMwsAADOLAAAziwAANAsAADQLAAA0iwAANIsAADULAAA1CwAANYsAADWLAAA2CwAANgsAADaLAAA2iwAANwsAADcLAAA3iwAAN4sAADgLAAA4CwAAOIsAADiLAAA6ywAAOssAADtLAAA7SwAAPIsAADyLAAAQKYAAECmAABCpgAAQqYAAESmAABEpgAARqYAAEamAABIpgAASKYAAEqmAABKpgAATKYAAEymAABOpgAATqYAAFCmAABQpgAAUqYAAFKmAABUpgAAVKYAAFamAABWpgAAWKYAAFimAABapgAAWqYAAFymAABcpgAAXqYAAF6mAABgpgAAYKYAAGKmAABipgAAZKYAAGSmAABmpgAAZqYAAGimAABopgAAaqYAAGqmAABspgAAbKYAAICmAACApgAAgqYAAIKmAACEpgAAhKYAAIamAACGpgAAiKYAAIimAACKpgAAiqYAAIymAACMpgAAjqYAAI6mAACQpgAAkKYAAJKmAACSpgAAlKYAAJSmAACWpgAAlqYAAJimAACYpgAAmqYAAJqmAAAipwAAIqcAACSnAAAkpwAAJqcAACanAAAopwAAKKcAACqnAAAqpwAALKcAACynAAAupwAALqcAADKnAAAypwAANKcAADSnAAA2pwAANqcAADinAAA4pwAAOqcAADqnAAA8pwAAPKcAAD6nAAA+pwAAQKcAAECnAABCpwAAQqcAAESnAABEpwAARqcAAEanAABIpwAASKcAAEqnAABKpwAATKcAAEynAABOpwAATqcAAFCnAABQpwAAUqcAAFKnAABUpwAAVKcAAFanAABWpwAAWKcAAFinAABapwAAWqcAAFynAABcpwAAXqcAAF6nAABgpwAAYKcAAGKnAABipwAAZKcAAGSnAABmpwAAZqcAAGinAABopwAAaqcAAGqnAABspwAAbKcAAG6nAABupwAAeacAAHmnAAB7pwAAe6cAAH2nAAB+pwAAgKcAAICnAACCpwAAgqcAAISnAACEpwAAhqcAAIanAACLpwAAi6cAAI2nAACNpwAAkKcAAJCnAACSpwAAkqcAAJanAACWpwAAmKcAAJinAACapwAAmqcAAJynAACcpwAAnqcAAJ6nAACgpwAAoKcAAKKnAACipwAApKcAAKSnAACmpwAApqcAAKinAACopwAAqqcAAK6nAACwpwAAtKcAALanAAC2pwAAuKcAALinAAC6pwAAuqcAALynAAC8pwAAvqcAAL6nAADApwAAwKcAAMKnAADCpwAAxKcAAMenAADJpwAAyacAANCnAADQpwAA1qcAANanAADYpwAA2KcAAPWnAAD1pwAAIf8AADr/AAAABAEAJwQBALAEAQDTBAEAcAUBAHoFAQB8BQEAigUBAIwFAQCSBQEAlAUBAJUFAQCADAEAsgwBAKAYAQC/GAEAQG4BAF9uAQAA6QEAIekBAGEAAAB6AAAAtQAAALUAAADfAAAA9gAAAPgAAAD/AAAAAQEAAAEBAAADAQAAAwEAAAUBAAAFAQAABwEAAAcBAAAJAQAACQEAAAsBAAALAQAADQEAAA0BAAAPAQAADwEAABEBAAARAQAAEwEAABMBAAAVAQAAFQEAABcBAAAXAQAAGQEAABkBAAAbAQAAGwEAAB0BAAAdAQAAHwEAAB8BAAAhAQAAIQEAACMBAAAjAQAAJQEAACUBAAAnAQAAJwEAACkBAAApAQAAKwEAACsBAAAtAQAALQEAAC8BAAAvAQAAMQEAADEBAAAzAQAAMwEAADUBAAA1AQAANwEAADcBAAA6AQAAOgEAADwBAAA8AQAAPgEAAD4BAABAAQAAQAEAAEIBAABCAQAARAEAAEQBAABGAQAARgEAAEgBAABJAQAASwEAAEsBAABNAQAATQEAAE8BAABPAQAAUQEAAFEBAABTAQAAUwEAAFUBAABVAQAAVwEAAFcBAABZAQAAWQEAAFsBAABbAQAAXQEAAF0BAABfAQAAXwEAAGEBAABhAQAAYwEAAGMBAABlAQAAZQEAAGcBAABnAQAAaQEAAGkBAABrAQAAawEAAG0BAABtAQAAbwEAAG8BAABxAQAAcQEAAHMBAABzAQAAdQEAAHUBAAB3AQAAdwEAAHoBAAB6AQAAfAEAAHwBAAB+AQAAgAEAAIMBAACDAQAAhQEAAIUBAACIAQAAiAEAAIwBAACMAQAAkgEAAJIBAACVAQAAlQEAAJkBAACaAQAAngEAAJ4BAAChAQAAoQEAAKMBAACjAQAApQEAAKUBAACoAQAAqAEAAK0BAACtAQAAsAEAALABAAC0AQAAtAEAALYBAAC2AQAAuQEAALkBAAC9AQAAvQEAAL8BAAC/AQAAxAEAAMQBAADGAQAAxwEAAMkBAADKAQAAzAEAAMwBAADOAQAAzgEAANABAADQAQAA0gEAANIBAADUAQAA1AEAANYBAADWAQAA2AEAANgBAADaAQAA2gEAANwBAADdAQAA3wEAAN8BAADhAQAA4QEAAOMBAADjAQAA5QEAAOUBAADnAQAA5wEAAOkBAADpAQAA6wEAAOsBAADtAQAA7QEAAO8BAADxAQAA8wEAAPMBAAD1AQAA9QEAAPkBAAD5AQAA+wEAAPsBAAD9AQAA/QEAAP8BAAD/AQAAAQIAAAECAAADAgAAAwIAAAUCAAAFAgAABwIAAAcCAAAJAgAACQIAAAsCAAALAgAADQIAAA0CAAAPAgAADwIAABECAAARAgAAEwIAABMCAAAVAgAAFQIAABcCAAAXAgAAGQIAABkCAAAbAgAAGwIAAB0CAAAdAgAAHwIAAB8CAAAjAgAAIwIAACUCAAAlAgAAJwIAACcCAAApAgAAKQIAACsCAAArAgAALQIAAC0CAAAvAgAALwIAADECAAAxAgAAMwIAADMCAAA8AgAAPAIAAD8CAABAAgAAQgIAAEICAABHAgAARwIAAEkCAABJAgAASwIAAEsCAABNAgAATQIAAE8CAABUAgAAVgIAAFcCAABZAgAAWQIAAFsCAABcAgAAYAIAAGECAABjAgAAYwIAAGUCAABmAgAAaAIAAGwCAABvAgAAbwIAAHECAAByAgAAdQIAAHUCAAB9AgAAfQIAAIACAACAAgAAggIAAIMCAACHAgAAjAIAAJICAACSAgAAnQIAAJ4CAABFAwAARQMAAHEDAABxAwAAcwMAAHMDAAB3AwAAdwMAAHsDAAB9AwAAkAMAAJADAACsAwAAzgMAANADAADRAwAA1QMAANcDAADZAwAA2QMAANsDAADbAwAA3QMAAN0DAADfAwAA3wMAAOEDAADhAwAA4wMAAOMDAADlAwAA5QMAAOcDAADnAwAA6QMAAOkDAADrAwAA6wMAAO0DAADtAwAA7wMAAPMDAAD1AwAA9QMAAPgDAAD4AwAA+wMAAPsDAAAwBAAAXwQAAGEEAABhBAAAYwQAAGMEAABlBAAAZQQAAGcEAABnBAAAaQQAAGkEAABrBAAAawQAAG0EAABtBAAAbwQAAG8EAABxBAAAcQQAAHMEAABzBAAAdQQAAHUEAAB3BAAAdwQAAHkEAAB5BAAAewQAAHsEAAB9BAAAfQQAAH8EAAB/BAAAgQQAAIEEAACLBAAAiwQAAI0EAACNBAAAjwQAAI8EAACRBAAAkQQAAJMEAACTBAAAlQQAAJUEAACXBAAAlwQAAJkEAACZBAAAmwQAAJsEAACdBAAAnQQAAJ8EAACfBAAAoQQAAKEEAACjBAAAowQAAKUEAAClBAAApwQAAKcEAACpBAAAqQQAAKsEAACrBAAArQQAAK0EAACvBAAArwQAALEEAACxBAAAswQAALMEAAC1BAAAtQQAALcEAAC3BAAAuQQAALkEAAC7BAAAuwQAAL0EAAC9BAAAvwQAAL8EAADCBAAAwgQAAMQEAADEBAAAxgQAAMYEAADIBAAAyAQAAMoEAADKBAAAzAQAAMwEAADOBAAAzwQAANEEAADRBAAA0wQAANMEAADVBAAA1QQAANcEAADXBAAA2QQAANkEAADbBAAA2wQAAN0EAADdBAAA3wQAAN8EAADhBAAA4QQAAOMEAADjBAAA5QQAAOUEAADnBAAA5wQAAOkEAADpBAAA6wQAAOsEAADtBAAA7QQAAO8EAADvBAAA8QQAAPEEAADzBAAA8wQAAPUEAAD1BAAA9wQAAPcEAAD5BAAA+QQAAPsEAAD7BAAA/QQAAP0EAAD/BAAA/wQAAAEFAAABBQAAAwUAAAMFAAAFBQAABQUAAAcFAAAHBQAACQUAAAkFAAALBQAACwUAAA0FAAANBQAADwUAAA8FAAARBQAAEQUAABMFAAATBQAAFQUAABUFAAAXBQAAFwUAABkFAAAZBQAAGwUAABsFAAAdBQAAHQUAAB8FAAAfBQAAIQUAACEFAAAjBQAAIwUAACUFAAAlBQAAJwUAACcFAAApBQAAKQUAACsFAAArBQAALQUAAC0FAAAvBQAALwUAAGEFAACHBQAA+BMAAP0TAACAHAAAiBwAAHkdAAB5HQAAfR0AAH0dAACOHQAAjh0AAAEeAAABHgAAAx4AAAMeAAAFHgAABR4AAAceAAAHHgAACR4AAAkeAAALHgAACx4AAA0eAAANHgAADx4AAA8eAAARHgAAER4AABMeAAATHgAAFR4AABUeAAAXHgAAFx4AABkeAAAZHgAAGx4AABseAAAdHgAAHR4AAB8eAAAfHgAAIR4AACEeAAAjHgAAIx4AACUeAAAlHgAAJx4AACceAAApHgAAKR4AACseAAArHgAALR4AAC0eAAAvHgAALx4AADEeAAAxHgAAMx4AADMeAAA1HgAANR4AADceAAA3HgAAOR4AADkeAAA7HgAAOx4AAD0eAAA9HgAAPx4AAD8eAABBHgAAQR4AAEMeAABDHgAARR4AAEUeAABHHgAARx4AAEkeAABJHgAASx4AAEseAABNHgAATR4AAE8eAABPHgAAUR4AAFEeAABTHgAAUx4AAFUeAABVHgAAVx4AAFceAABZHgAAWR4AAFseAABbHgAAXR4AAF0eAABfHgAAXx4AAGEeAABhHgAAYx4AAGMeAABlHgAAZR4AAGceAABnHgAAaR4AAGkeAABrHgAAax4AAG0eAABtHgAAbx4AAG8eAABxHgAAcR4AAHMeAABzHgAAdR4AAHUeAAB3HgAAdx4AAHkeAAB5HgAAex4AAHseAAB9HgAAfR4AAH8eAAB/HgAAgR4AAIEeAACDHgAAgx4AAIUeAACFHgAAhx4AAIceAACJHgAAiR4AAIseAACLHgAAjR4AAI0eAACPHgAAjx4AAJEeAACRHgAAkx4AAJMeAACVHgAAmx4AAKEeAAChHgAAox4AAKMeAAClHgAApR4AAKceAACnHgAAqR4AAKkeAACrHgAAqx4AAK0eAACtHgAArx4AAK8eAACxHgAAsR4AALMeAACzHgAAtR4AALUeAAC3HgAAtx4AALkeAAC5HgAAux4AALseAAC9HgAAvR4AAL8eAAC/HgAAwR4AAMEeAADDHgAAwx4AAMUeAADFHgAAxx4AAMceAADJHgAAyR4AAMseAADLHgAAzR4AAM0eAADPHgAAzx4AANEeAADRHgAA0x4AANMeAADVHgAA1R4AANceAADXHgAA2R4AANkeAADbHgAA2x4AAN0eAADdHgAA3x4AAN8eAADhHgAA4R4AAOMeAADjHgAA5R4AAOUeAADnHgAA5x4AAOkeAADpHgAA6x4AAOseAADtHgAA7R4AAO8eAADvHgAA8R4AAPEeAADzHgAA8x4AAPUeAAD1HgAA9x4AAPceAAD5HgAA+R4AAPseAAD7HgAA/R4AAP0eAAD/HgAABx8AABAfAAAVHwAAIB8AACcfAAAwHwAANx8AAEAfAABFHwAAUB8AAFcfAABgHwAAZx8AAHAfAAB9HwAAgB8AAIcfAACQHwAAlx8AAKAfAACnHwAAsB8AALQfAAC2HwAAtx8AAL4fAAC+HwAAwh8AAMQfAADGHwAAxx8AANAfAADTHwAA1h8AANcfAADgHwAA5x8AAPIfAAD0HwAA9h8AAPcfAABOIQAATiEAAHAhAAB/IQAAhCEAAIQhAADQJAAA6SQAADAsAABfLAAAYSwAAGEsAABlLAAAZiwAAGgsAABoLAAAaiwAAGosAABsLAAAbCwAAHMsAABzLAAAdiwAAHYsAACBLAAAgSwAAIMsAACDLAAAhSwAAIUsAACHLAAAhywAAIksAACJLAAAiywAAIssAACNLAAAjSwAAI8sAACPLAAAkSwAAJEsAACTLAAAkywAAJUsAACVLAAAlywAAJcsAACZLAAAmSwAAJssAACbLAAAnSwAAJ0sAACfLAAAnywAAKEsAAChLAAAoywAAKMsAAClLAAApSwAAKcsAACnLAAAqSwAAKksAACrLAAAqywAAK0sAACtLAAArywAAK8sAACxLAAAsSwAALMsAACzLAAAtSwAALUsAAC3LAAAtywAALksAAC5LAAAuywAALssAAC9LAAAvSwAAL8sAAC/LAAAwSwAAMEsAADDLAAAwywAAMUsAADFLAAAxywAAMcsAADJLAAAySwAAMssAADLLAAAzSwAAM0sAADPLAAAzywAANEsAADRLAAA0ywAANMsAADVLAAA1SwAANcsAADXLAAA2SwAANksAADbLAAA2ywAAN0sAADdLAAA3ywAAN8sAADhLAAA4SwAAOMsAADjLAAA7CwAAOwsAADuLAAA7iwAAPMsAADzLAAAAC0AACUtAAAnLQAAJy0AAC0tAAAtLQAAQaYAAEGmAABDpgAAQ6YAAEWmAABFpgAAR6YAAEemAABJpgAASaYAAEumAABLpgAATaYAAE2mAABPpgAAT6YAAFGmAABRpgAAU6YAAFOmAABVpgAAVaYAAFemAABXpgAAWaYAAFmmAABbpgAAW6YAAF2mAABdpgAAX6YAAF+mAABhpgAAYaYAAGOmAABjpgAAZaYAAGWmAABnpgAAZ6YAAGmmAABppgAAa6YAAGumAABtpgAAbaYAAIGmAACBpgAAg6YAAIOmAACFpgAAhaYAAIemAACHpgAAiaYAAImmAACLpgAAi6YAAI2mAACNpgAAj6YAAI+mAACRpgAAkaYAAJOmAACTpgAAlaYAAJWmAACXpgAAl6YAAJmmAACZpgAAm6YAAJumAAAjpwAAI6cAACWnAAAlpwAAJ6cAACenAAAppwAAKacAACunAAArpwAALacAAC2nAAAvpwAAL6cAADOnAAAzpwAANacAADWnAAA3pwAAN6cAADmnAAA5pwAAO6cAADunAAA9pwAAPacAAD+nAAA/pwAAQacAAEGnAABDpwAAQ6cAAEWnAABFpwAAR6cAAEenAABJpwAASacAAEunAABLpwAATacAAE2nAABPpwAAT6cAAFGnAABRpwAAU6cAAFOnAABVpwAAVacAAFenAABXpwAAWacAAFmnAABbpwAAW6cAAF2nAABdpwAAX6cAAF+nAABhpwAAYacAAGOnAABjpwAAZacAAGWnAABnpwAAZ6cAAGmnAABppwAAa6cAAGunAABtpwAAbacAAG+nAABvpwAAeqcAAHqnAAB8pwAAfKcAAH+nAAB/pwAAgacAAIGnAACDpwAAg6cAAIWnAACFpwAAh6cAAIenAACMpwAAjKcAAJGnAACRpwAAk6cAAJSnAACXpwAAl6cAAJmnAACZpwAAm6cAAJunAACdpwAAnacAAJ+nAACfpwAAoacAAKGnAACjpwAAo6cAAKWnAAClpwAAp6cAAKenAACppwAAqacAALWnAAC1pwAAt6cAALenAAC5pwAAuacAALunAAC7pwAAvacAAL2nAAC/pwAAv6cAAMGnAADBpwAAw6cAAMOnAADIpwAAyKcAAMqnAADKpwAA0acAANGnAADXpwAA16cAANmnAADZpwAA9qcAAPanAABTqwAAU6sAAHCrAAC/qwAAAPsAAAb7AAAT+wAAF/sAAEH/AABa/wAAKAQBAE8EAQDYBAEA+wQBAJcFAQChBQEAowUBALEFAQCzBQEAuQUBALsFAQC8BQEAwAwBAPIMAQDAGAEA3xgBAGBuAQB/bgEAIukBAEPpAQBhAAAAegAAALUAAAC1AAAA3wAAAPYAAAD4AAAA/wAAAAEBAAABAQAAAwEAAAMBAAAFAQAABQEAAAcBAAAHAQAACQEAAAkBAAALAQAACwEAAA0BAAANAQAADwEAAA8BAAARAQAAEQEAABMBAAATAQAAFQEAABUBAAAXAQAAFwEAABkBAAAZAQAAGwEAABsBAAAdAQAAHQEAAB8BAAAfAQAAIQEAACEBAAAjAQAAIwEAACUBAAAlAQAAJwEAACcBAAApAQAAKQEAACsBAAArAQAALQEAAC0BAAAvAQAALwEAADEBAAAxAQAAMwEAADMBAAA1AQAANQEAADcBAAA3AQAAOgEAADoBAAA8AQAAPAEAAD4BAAA+AQAAQAEAAEABAABCAQAAQgEAAEQBAABEAQAARgEAAEYBAABIAQAASQEAAEsBAABLAQAATQEAAE0BAABPAQAATwEAAFEBAABRAQAAUwEAAFMBAABVAQAAVQEAAFcBAABXAQAAWQEAAFkBAABbAQAAWwEAAF0BAABdAQAAXwEAAF8BAABhAQAAYQEAAGMBAABjAQAAZQEAAGUBAABnAQAAZwEAAGkBAABpAQAAawEAAGsBAABtAQAAbQEAAG8BAABvAQAAcQEAAHEBAABzAQAAcwEAAHUBAAB1AQAAdwEAAHcBAAB6AQAAegEAAHwBAAB8AQAAfgEAAIABAACDAQAAgwEAAIUBAACFAQAAiAEAAIgBAACMAQAAjAEAAJIBAACSAQAAlQEAAJUBAACZAQAAmgEAAJ4BAACeAQAAoQEAAKEBAACjAQAAowEAAKUBAAClAQAAqAEAAKgBAACtAQAArQEAALABAACwAQAAtAEAALQBAAC2AQAAtgEAALkBAAC5AQAAvQEAAL0BAAC/AQAAvwEAAMUBAADGAQAAyAEAAMkBAADLAQAAzAEAAM4BAADOAQAA0AEAANABAADSAQAA0gEAANQBAADUAQAA1gEAANYBAADYAQAA2AEAANoBAADaAQAA3AEAAN0BAADfAQAA3wEAAOEBAADhAQAA4wEAAOMBAADlAQAA5QEAAOcBAADnAQAA6QEAAOkBAADrAQAA6wEAAO0BAADtAQAA7wEAAPABAADyAQAA8wEAAPUBAAD1AQAA+QEAAPkBAAD7AQAA+wEAAP0BAAD9AQAA/wEAAP8BAAABAgAAAQIAAAMCAAADAgAABQIAAAUCAAAHAgAABwIAAAkCAAAJAgAACwIAAAsCAAANAgAADQIAAA8CAAAPAgAAEQIAABECAAATAgAAEwIAABUCAAAVAgAAFwIAABcCAAAZAgAAGQIAABsCAAAbAgAAHQIAAB0CAAAfAgAAHwIAACMCAAAjAgAAJQIAACUCAAAnAgAAJwIAACkCAAApAgAAKwIAACsCAAAtAgAALQIAAC8CAAAvAgAAMQIAADECAAAzAgAAMwIAADwCAAA8AgAAPwIAAEACAABCAgAAQgIAAEcCAABHAgAASQIAAEkCAABLAgAASwIAAE0CAABNAgAATwIAAFQCAABWAgAAVwIAAFkCAABZAgAAWwIAAFwCAABgAgAAYQIAAGMCAABjAgAAZQIAAGYCAABoAgAAbAIAAG8CAABvAgAAcQIAAHICAAB1AgAAdQIAAH0CAAB9AgAAgAIAAIACAACCAgAAgwIAAIcCAACMAgAAkgIAAJICAACdAgAAngIAAEUDAABFAwAAcQMAAHEDAABzAwAAcwMAAHcDAAB3AwAAewMAAH0DAACQAwAAkAMAAKwDAADOAwAA0AMAANEDAADVAwAA1wMAANkDAADZAwAA2wMAANsDAADdAwAA3QMAAN8DAADfAwAA4QMAAOEDAADjAwAA4wMAAOUDAADlAwAA5wMAAOcDAADpAwAA6QMAAOsDAADrAwAA7QMAAO0DAADvAwAA8wMAAPUDAAD1AwAA+AMAAPgDAAD7AwAA+wMAADAEAABfBAAAYQQAAGEEAABjBAAAYwQAAGUEAABlBAAAZwQAAGcEAABpBAAAaQQAAGsEAABrBAAAbQQAAG0EAABvBAAAbwQAAHEEAABxBAAAcwQAAHMEAAB1BAAAdQQAAHcEAAB3BAAAeQQAAHkEAAB7BAAAewQAAH0EAAB9BAAAfwQAAH8EAACBBAAAgQQAAIsEAACLBAAAjQQAAI0EAACPBAAAjwQAAJEEAACRBAAAkwQAAJMEAACVBAAAlQQAAJcEAACXBAAAmQQAAJkEAACbBAAAmwQAAJ0EAACdBAAAnwQAAJ8EAAChBAAAoQQAAKMEAACjBAAApQQAAKUEAACnBAAApwQAAKkEAACpBAAAqwQAAKsEAACtBAAArQQAAK8EAACvBAAAsQQAALEEAACzBAAAswQAALUEAAC1BAAAtwQAALcEAAC5BAAAuQQAALsEAAC7BAAAvQQAAL0EAAC/BAAAvwQAAMIEAADCBAAAxAQAAMQEAADGBAAAxgQAAMgEAADIBAAAygQAAMoEAADMBAAAzAQAAM4EAADPBAAA0QQAANEEAADTBAAA0wQAANUEAADVBAAA1wQAANcEAADZBAAA2QQAANsEAADbBAAA3QQAAN0EAADfBAAA3wQAAOEEAADhBAAA4wQAAOMEAADlBAAA5QQAAOcEAADnBAAA6QQAAOkEAADrBAAA6wQAAO0EAADtBAAA7wQAAO8EAADxBAAA8QQAAPMEAADzBAAA9QQAAPUEAAD3BAAA9wQAAPkEAAD5BAAA+wQAAPsEAAD9BAAA/QQAAP8EAAD/BAAAAQUAAAEFAAADBQAAAwUAAAUFAAAFBQAABwUAAAcFAAAJBQAACQUAAAsFAAALBQAADQUAAA0FAAAPBQAADwUAABEFAAARBQAAEwUAABMFAAAVBQAAFQUAABcFAAAXBQAAGQUAABkFAAAbBQAAGwUAAB0FAAAdBQAAHwUAAB8FAAAhBQAAIQUAACMFAAAjBQAAJQUAACUFAAAnBQAAJwUAACkFAAApBQAAKwUAACsFAAAtBQAALQUAAC8FAAAvBQAAYQUAAIcFAADQEAAA+hAAAP0QAAD/EAAA+BMAAP0TAACAHAAAiBwAAHkdAAB5HQAAfR0AAH0dAACOHQAAjh0AAAEeAAABHgAAAx4AAAMeAAAFHgAABR4AAAceAAAHHgAACR4AAAkeAAALHgAACx4AAA0eAAANHgAADx4AAA8eAAARHgAAER4AABMeAAATHgAAFR4AABUeAAAXHgAAFx4AABkeAAAZHgAAGx4AABseAAAdHgAAHR4AAB8eAAAfHgAAIR4AACEeAAAjHgAAIx4AACUeAAAlHgAAJx4AACceAAApHgAAKR4AACseAAArHgAALR4AAC0eAAAvHgAALx4AADEeAAAxHgAAMx4AADMeAAA1HgAANR4AADceAAA3HgAAOR4AADkeAAA7HgAAOx4AAD0eAAA9HgAAPx4AAD8eAABBHgAAQR4AAEMeAABDHgAARR4AAEUeAABHHgAARx4AAEkeAABJHgAASx4AAEseAABNHgAATR4AAE8eAABPHgAAUR4AAFEeAABTHgAAUx4AAFUeAABVHgAAVx4AAFceAABZHgAAWR4AAFseAABbHgAAXR4AAF0eAABfHgAAXx4AAGEeAABhHgAAYx4AAGMeAABlHgAAZR4AAGceAABnHgAAaR4AAGkeAABrHgAAax4AAG0eAABtHgAAbx4AAG8eAABxHgAAcR4AAHMeAABzHgAAdR4AAHUeAAB3HgAAdx4AAHkeAAB5HgAAex4AAHseAAB9HgAAfR4AAH8eAAB/HgAAgR4AAIEeAACDHgAAgx4AAIUeAACFHgAAhx4AAIceAACJHgAAiR4AAIseAACLHgAAjR4AAI0eAACPHgAAjx4AAJEeAACRHgAAkx4AAJMeAACVHgAAmx4AAKEeAAChHgAAox4AAKMeAAClHgAApR4AAKceAACnHgAAqR4AAKkeAACrHgAAqx4AAK0eAACtHgAArx4AAK8eAACxHgAAsR4AALMeAACzHgAAtR4AALUeAAC3HgAAtx4AALkeAAC5HgAAux4AALseAAC9HgAAvR4AAL8eAAC/HgAAwR4AAMEeAADDHgAAwx4AAMUeAADFHgAAxx4AAMceAADJHgAAyR4AAMseAADLHgAAzR4AAM0eAADPHgAAzx4AANEeAADRHgAA0x4AANMeAADVHgAA1R4AANceAADXHgAA2R4AANkeAADbHgAA2x4AAN0eAADdHgAA3x4AAN8eAADhHgAA4R4AAOMeAADjHgAA5R4AAOUeAADnHgAA5x4AAOkeAADpHgAA6x4AAOseAADtHgAA7R4AAO8eAADvHgAA8R4AAPEeAADzHgAA8x4AAPUeAAD1HgAA9x4AAPceAAD5HgAA+R4AAPseAAD7HgAA/R4AAP0eAAD/HgAABx8AABAfAAAVHwAAIB8AACcfAAAwHwAANx8AAEAfAABFHwAAUB8AAFcfAABgHwAAZx8AAHAfAAB9HwAAgB8AALQfAAC2HwAAtx8AALwfAAC8HwAAvh8AAL4fAADCHwAAxB8AAMYfAADHHwAAzB8AAMwfAADQHwAA0x8AANYfAADXHwAA4B8AAOcfAADyHwAA9B8AAPYfAAD3HwAA/B8AAPwfAABOIQAATiEAAHAhAAB/IQAAhCEAAIQhAADQJAAA6SQAADAsAABfLAAAYSwAAGEsAABlLAAAZiwAAGgsAABoLAAAaiwAAGosAABsLAAAbCwAAHMsAABzLAAAdiwAAHYsAACBLAAAgSwAAIMsAACDLAAAhSwAAIUsAACHLAAAhywAAIksAACJLAAAiywAAIssAACNLAAAjSwAAI8sAACPLAAAkSwAAJEsAACTLAAAkywAAJUsAACVLAAAlywAAJcsAACZLAAAmSwAAJssAACbLAAAnSwAAJ0sAACfLAAAnywAAKEsAAChLAAAoywAAKMsAAClLAAApSwAAKcsAACnLAAAqSwAAKksAACrLAAAqywAAK0sAACtLAAArywAAK8sAACxLAAAsSwAALMsAACzLAAAtSwAALUsAAC3LAAAtywAALksAAC5LAAAuywAALssAAC9LAAAvSwAAL8sAAC/LAAAwSwAAMEsAADDLAAAwywAAMUsAADFLAAAxywAAMcsAADJLAAAySwAAMssAADLLAAAzSwAAM0sAADPLAAAzywAANEsAADRLAAA0ywAANMsAADVLAAA1SwAANcsAADXLAAA2SwAANksAADbLAAA2ywAAN0sAADdLAAA3ywAAN8sAADhLAAA4SwAAOMsAADjLAAA7CwAAOwsAADuLAAA7iwAAPMsAADzLAAAAC0AACUtAAAnLQAAJy0AAC0tAAAtLQAAQaYAAEGmAABDpgAAQ6YAAEWmAABFpgAAR6YAAEemAABJpgAASaYAAEumAABLpgAATaYAAE2mAABPpgAAT6YAAFGmAABRpgAAU6YAAFOmAABVpgAAVaYAAFemAABXpgAAWaYAAFmmAABbpgAAW6YAAF2mAABdpgAAX6YAAF+mAABhpgAAYaYAAGOmAABjpgAAZaYAAGWmAABnpgAAZ6YAAGmmAABppgAAa6YAAGumAABtpgAAbaYAAIGmAACBpgAAg6YAAIOmAACFpgAAhaYAAIemAACHpgAAiaYAAImmAACLpgAAi6YAAI2mAACNpgAAj6YAAI+mAACRpgAAkaYAAJOmAACTpgAAlaYAAJWmAACXpgAAl6YAAJmmAACZpgAAm6YAAJumAAAjpwAAI6cAACWnAAAlpwAAJ6cAACenAAAppwAAKacAACunAAArpwAALacAAC2nAAAvpwAAL6cAADOnAAAzpwAANacAADWnAAA3pwAAN6cAADmnAAA5pwAAO6cAADunAAA9pwAAPacAAD+nAAA/pwAAQacAAEGnAABDpwAAQ6cAAEWnAABFpwAAR6cAAEenAABJpwAASacAAEunAABLpwAATacAAE2nAABPpwAAT6cAAFGnAABRpwAAU6cAAFOnAABVpwAAVacAAFenAABXpwAAWacAAFmnAABbpwAAW6cAAF2nAABdpwAAX6cAAF+nAABhpwAAYacAAGOnAABjpwAAZacAAGWnAABnpwAAZ6cAAGmnAABppwAAa6cAAGunAABtpwAAbacAAG+nAABvpwAAeqcAAHqnAAB8pwAAfKcAAH+nAAB/pwAAgacAAIGnAACDpwAAg6cAAIWnAACFpwAAh6cAAIenAACMpwAAjKcAAJGnAACRpwAAk6cAAJSnAACXpwAAl6cAAJmnAACZpwAAm6cAAJunAACdpwAAnacAAJ+nAACfpwAAoacAAKGnAACjpwAAo6cAAKWnAAClpwAAp6cAAKenAACppwAAqacAALWnAAC1pwAAt6cAALenAAC5pwAAuacAALunAAC7pwAAvacAAL2nAAC/pwAAv6cAAMGnAADBpwAAw6cAAMOnAADIpwAAyKcAAMqnAADKpwAA0acAANGnAADXpwAA16cAANmnAADZpwAA9qcAAPanAABTqwAAU6sAAHCrAAC/qwAAAPsAAAb7AAAT+wAAF/sAAEH/AABa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GgEARxoBAEcaAQCZGgEAmRoBAD8cAQA/HAEAQh0BAEIdAQBEHQEARR0BAJcdAQCXHQEARzQBAFU0AQDwagEA9GoBADBrAQA2awEAj28BAJ9vAQDwbwEA8W8BAPCvAQDzrwEA9a8BAPuvAQD9rwEA/q8BAADPAQAtzwEAMM8BAEbPAQBn0QEAadEBAG3RAQBy0QEAe9EBAILRAQCF0QEAi9EBAKrRAQCt0QEAMOABAG3gAQAw4QEANuEBAK7iAQCu4gEA7OIBAO/iAQDQ6AEA1ugBAETpAQBG6QEASOkBAErpAQAjAAAAIwAAACoAAAAqAAAAMAAAADkAAACpAAAAqQAAAK4AAACuAAAAPCAAADwgAABJIAAASSAAACIhAAAiIQAAOSEAADkhAACUIQAAmSEAAKkhAACqIQAAGiMAABsjAAAoIwAAKCMAAM8jAADPIwAA6SMAAPMjAAD4IwAA+iMAAMIkAADCJAAAqiUAAKslAAC2JQAAtiUAAMAlAADAJQAA+yUAAP4lAAAAJgAABCYAAA4mAAAOJgAAESYAABEmAAAUJgAAFSYAABgmAAAYJgAAHSYAAB0mAAAgJgAAICYAACImAAAjJgAAJiYAACYmAAAqJgAAKiYAAC4mAAAvJgAAOCYAADomAABAJgAAQCYAAEImAABCJgAASCYAAFMmAABfJgAAYCYAAGMmAABjJgAAZSYAAGYmAABoJgAAaCYAAHsmAAB7JgAAfiYAAH8mAACSJgAAlyYAAJkmAACZJgAAmyYAAJwmAACgJgAAoSYAAKcmAACnJgAAqiYAAKsmAACwJgAAsSYAAL0mAAC+JgAAxCYAAMUmAADIJgAAyCYAAM4mAADPJgAA0SYAANEmAADTJgAA1CYAAOkmAADqJgAA8CYAAPUmAAD3JgAA+iYAAP0mAAD9JgAAAicAAAInAAAFJwAABScAAAgnAAANJwAADycAAA8nAAASJwAAEicAABQnAAAUJwAAFicAABYnAAAdJwAAHScAACEnAAAhJwAAKCcAACgnAAAzJwAANCcAAEQnAABEJwAARycAAEcnAABMJwAATCcAAE4nAABOJwAAUycAAFUnAABXJwAAVycAAGMnAABkJwAAlScAAJcnAAChJwAAoScAALAnAACwJwAAvycAAL8nAAA0KQAANSkAAAUrAAAHKwAAGysAABwrAABQ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BwAAEAcAABAHAAASBwAALwcAAE0HAAClBwAAsQcAALEHAADABwAA6gcAAPQHAAD6BwAA/gcAABUIAAAaCAAAGggAACQIAAAkCAAAKAgAACgIAAAwCAAAPggAAEAIAABYCAAAXggAAF4IAABgCAAAaggAAHAIAACOCAAAoAgAAMkIAAADCQAAOQkAADsJAAA7CQAAPQkAAEAJAABJCQAATAkAAE4JAABQCQAAWAkAAGEJAABkCQAAgAkAAIIJAACDCQAAhQkAAIwJAACPCQAAkAkAAJMJAACoCQAAqgkAALAJAACyCQAAsgkAALYJAAC5CQAAvQkAAL0JAAC/CQAAwAkAAMcJAADICQAAywkAAMwJAADOCQAAzgkAANwJAADdCQAA3wkAAOEJAADmCQAA/QkAAAMKAAADCgAABQoAAAoKAAAPCgAAEAoAABMKAAAoCgAAKgoAADAKAAAyCgAAMwoAADUKAAA2CgAAOAoAADkKAAA+CgAAQAoAAFkKAABcCgAAXgoAAF4KAABmCgAAbwoAAHIKAAB0CgAAdgoAAHYKAACDCgAAgwoAAIUKAACNCgAAjwoAAJEKAACTCgAAqAoAAKoKAACwCgAAsgoAALMKAAC1CgAAuQoAAL0KAADACgAAyQoAAMkKAADLCgAAzAoAANAKAADQCgAA4AoAAOEKAADmCgAA8QoAAPkKAAD5CgAAAgsAAAMLAAAFCwAADAsAAA8LAAAQCwAAEwsAACgLAAAqCwAAMAsAADILAAAzCwAANQsAADkLAAA9CwAAPQsAAEALAABACwAARwsAAEgLAABLCwAATAsAAFwLAABdCwAAXwsAAGELAABmCwAAdwsAAIMLAACDCwAAhQsAAIoLAACOCwAAkAsAAJILAACVCwAAmQsAAJoLAACcCwAAnAsAAJ4LAACfCwAAowsAAKQLAACoCwAAqgsAAK4LAAC5CwAAvwsAAL8LAADBCwAAwgsAAMYLAADICwAAygsAAMwLAADQCwAA0AsAAOYLAAD6CwAAAQwAAAMMAAAFDAAADAwAAA4MAAAQDAAAEgwAACgMAAAqDAAAOQwAAD0MAAA9DAAAQQwAAEQMAABYDAAAWgwAAF0MAABdDAAAYAwAAGEMAABmDAAAbwwAAHcMAACADAAAggwAAIwMAACODAAAkAwAAJIMAACoDAAAqgwAALMMAAC1DAAAuQwAAL0MAAC+DAAAwAwAAMEMAADDDAAAxAwAAMcMAADIDAAAygwAAMsMAADdDAAA3gwAAOAMAADhDAAA5gwAAO8MAADxDAAA8wwAAAINAAAMDQAADg0AABANAAASDQAAOg0AAD0NAAA9DQAAPw0AAEANAABGDQAASA0AAEoNAABMDQAATg0AAE8NAABUDQAAVg0AAFgNAABhDQAAZg0AAH8NAACCDQAAgw0AAIUNAACWDQAAmg0AALENAACzDQAAuw0AAL0NAAC9DQAAwA0AAMYNAADQDQAA0Q0AANgNAADeDQAA5g0AAO8NAADyDQAA9A0AAAEOAAAwDgAAMg4AADMOAAA/DgAARg4AAE8OAABbDgAAgQ4AAIIOAACEDgAAhA4AAIYOAACKDgAAjA4AAKMOAAClDgAApQ4AAKcOAACwDgAAsg4AALMOAAC9DgAAvQ4AAMAOAADEDgAAxg4AAMYOAADQDgAA2Q4AANwOAADfDgAAAA8AABcPAAAaDwAANA8AADYPAAA2DwAAOA8AADgPAAA6DwAARw8AAEkPAABsDwAAfw8AAH8PAACFDwAAhQ8AAIgPAACMDwAAvg8AAMUPAADHDwAAzA8AAM4PAADaDwAAABAAACwQAAAxEAAAMRAAADgQAAA4EAAAOxAAADwQAAA/EAAAVxAAAFoQAABdEAAAYRAAAHAQAAB1EAAAgRAAAIMQAACEEAAAhxAAAIwQAACOEAAAnBAAAJ4QAADFEAAAxxAAAMcQAADNEAAAzRAAANAQAABIEgAAShIAAE0SAABQEgAAVhIAAFgSAABYEgAAWhIAAF0SAABgEgAAiBIAAIoSAACNEgAAkBIAALASAACyEgAAtRIAALgSAAC+EgAAwBIAAMASAADCEgAAxRIAAMgSAADWEgAA2BIAABATAAASEwAAFRMAABgTAABaEwAAYBMAAHwTAACAEwAAmRMAAKATAAD1EwAA+BMAAP0TAAAAFAAAnBYAAKAWAAD4FgAAABcAABEXAAAVFwAAFRcAAB8XAAAxFwAANBcAADYXAABAFwAAURcAAGAXAABsFwAAbhcAAHAXAACAFwAAsxcAALYXAAC2FwAAvhcAAMUXAADHFwAAyBcAANQXAADcFwAA4BcAAOkXAADwFwAA+RcAAAAYAAAKGAAAEBgAABkYAAAgGAAAeBgAAIAYAACEGAAAhxgAAKgYAACqGAAAqhgAALAYAAD1GAAAABkAAB4ZAAAjGQAAJhkAACkZAAArGQAAMBkAADEZAAAzGQAAOBkAAEAZAABAGQAARBkAAG0ZAABwGQAAdBkAAIAZAACrGQAAsBkAAMkZAADQGQAA2hkAAN4ZAAAWGgAAGRoAABoaAAAeGgAAVRoAAFcaAABXGgAAYRoAAGEaAABjGgAAZBoAAG0aAAByGgAAgBoAAIkaAACQGgAAmRoAAKAaAACtGgAABBsAADMbAAA7GwAAOxsAAD0bAABBGwAAQxsAAEwbAABQGwAAahsAAHQbAAB+GwAAghsAAKEbAACmGwAApxsAAKobAACqGwAArhsAAOUbAADnGwAA5xsAAOobAADsGwAA7hsAAO4bAADyGwAA8xsAAPwbAAArHAAANBwAADUcAAA7HAAASRwAAE0cAACIHAAAkBwAALocAAC9HAAAxxwAANMcAADTHAAA4RwAAOEcAADpHAAA7BwAAO4cAADzHAAA9RwAAPccAAD6HAAA+hwAAAAdAAC/HQAAAB4AABUfAAAYHwAAHR8AACAfAABFHwAASB8AAE0fAABQHwAAVx8AAFkfAABZHwAAWx8AAFsfAABdHwAAXR8AAF8fAAB9HwAAgB8AALQfAAC2HwAAxB8AAMYfAADTHwAA1h8AANsfAADdHwAA7x8AAPIfAAD0HwAA9h8AAP4fAAAAIAAACiAAABAgAAAnIAAALyAAAF8gAABwIAAAcSAAAHQgAACOIAAAkCAAAJwgAACgIAAAwCAAAAAhAACLIQAAkCEAACYkAABAJAAASiQAAGAkAABzKwAAdisAAJUrAACXKwAA7iwAAPIsAADzLAAA+SwAACUtAAAnLQAAJy0AAC0tAAAtLQAAMC0AAGctAABvLQAAcC0AAIAtAACWLQAAoC0AAKYtAACoLQAAri0AALAtAAC2LQAAuC0AAL4tAADALQAAxi0AAMgtAADOLQAA0C0AANYtAADYLQAA3i0AAAAuAABdLgAAgC4AAJkuAACbLgAA8y4AAAAvAADVLwAA8C8AAPsvAAAAMAAAKTAAADAwAAA/MAAAQTAAAJYwAACbMAAA/zAAAAUxAAAvMQAAMTEAAI4xAACQMQAA4zEAAPAxAAAeMgAAIDIAAIykAACQpAAAxqQAANCkAAArpgAAQKYAAG6mAABz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EwEAYxMBAAAUAQA3FAEAQBQBAEEUAQBFFAEARRQBAEcUAQBbFAEAXRQBAF0UAQBfFAEAYRQBAIAUAQCvFAEAsRQBALIUAQC5FAEAuRQBALsUAQC8FAEAvhQBAL4UAQDBFAEAwRQBAMQUAQDHFAEA0BQBANkUAQCAFQEArhUBALAVAQCxFQEAuBUBALsVAQC+FQEAvhUBAMEVAQDbFQEAABYBADIWAQA7FgEAPBYBAD4WAQA+FgEAQRYBAEQWAQBQFgEAWRYBAGAWAQBsFgEAgBYBAKoWAQCsFgEArBYBAK4WAQCvFgEAthYBALYWAQC4FgEAuRYBAMAWAQDJFgEAABcBABoXAQAgFwEAIRcBACYXAQAmFwEAMBcBAEYXAQAAGAEALhgBADgYAQA4GAEAOxgBADsYAQCgGAEA8hgBAP8YAQAGGQEACRkBAAkZAQAMGQEAExkBABUZAQAWGQEAGBkBAC8ZAQAxGQEANRkBADcZAQA4GQEAPRkBAD0ZAQA/GQEAQhkBAEQZAQBGGQEAUBkBAFkZAQCgGQEApxkBAKoZAQDTGQEA3BkBAN8ZAQDhGQEA5BkBAAAaAQAAGgEACxoBADIaAQA5GgEAOhoBAD8aAQBGGgEAUBoBAFAaAQBXGgEAWBoBAFwaAQCJGgEAlxoBAJcaAQCaGgEAohoBALAaAQD4GgEAABsBAAkbAQAAHAEACBwBAAocAQAvHAEAPhwBAD4cAQBAHAEARRwBAFAcAQBsHAEAcBwBAI8cAQCpHAEAqRwBALEcAQCxHAEAtBwBALQcAQAAHQEABh0BAAgdAQAJHQEACx0BADAdAQBGHQEARh0BAFAdAQBZHQEAYB0BAGUdAQBnHQEAaB0BAGodAQCOHQEAkx0BAJQdAQCWHQEAlh0BAJgdAQCYHQEAoB0BAKkdAQDgHgEA8h4BAPUeAQD4HgEAAh8BABAfAQASHwEANR8BAD4fAQA/HwEAQR8BAEEfAQBDHwEAWR8BALAfAQCwHwEAwB8BAPEfAQD/HwEAmSMBAAAkAQBuJAEAcCQBAHQkAQCAJAEAQyUBAJAvAQDyLwEAADABAC80AQBBNAEARjQBAABEAQBGRgEAAGgBADhqAQBAagEAXmoBAGBqAQBpagEAbmoBAL5qAQDAagEAyWoBANBqAQDtagEA9WoBAPVqAQAAawEAL2sBADdrAQBF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CQAAywkAAM4JAADXCQAA1wkAANwJAADdCQAA3wkAAOMJAADmCQAA8QkAAPwJAAD8CQAA/gkAAP4JAAABCgAAAwoAAAUKAAAKCgAADwoAABAKAAATCgAAKAoAACoKAAAwCgAAMgoAADMKAAA1CgAANgoAADgKAAA5CgAAPAoAADwKAAA+CgAAQgoAAEcKAABICgAASwoAAE0KAABRCgAAUQoAAFkKAABcCgAAXgoAAF4KAABmCgAAdQoAAIEKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvAoAAMUKAADHCgAAyQoAAMsKAADNCgAA0AoAANAKAADgCgAA4woAAOYKAADvCgAA+QoAAP8KAAABCwAAAwsAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAADwLAABECwAARwsAAEgLAABLCwAATQsAAFULAABXCwAAXAsAAF0LAABfCwAAYwsAAGYLAABvCwAAcQsAAHELAACCCwAAgwsAAIULAACKCwAAjgsAAJALAACSCwAAlQsAAJkLAACaCwAAnAsAAJwLAACeCwAAnwsAAKMLAACkCwAAqAsAAKoLAACuCwAAuQsAAL4LAADCCwAAxgsAAMgLAADKCwAAzQsAANALAADQCwAA1wsAANcLAADmCwAA7wsAAAAMAAAMDAAADgwAABAMAAASDAAAKAwAACoMAAA5DAAAPAwAAEQMAABGDAAASAwAAEoMAABNDAAAVQwAAFYMAABYDAAAWgwAAF0MAABdDAAAYAwAAGMMAABmDAAAbwwAAIAMAACDDAAAhQwAAIwMAACODAAAkAwAAJIMAACoDAAAqgwAALMMAAC1DAAAuQwAALwMAADEDAAAxgwAAMgMAADKDAAAzQwAANUMAADWDAAA3QwAAN4MAADgDAAA4wwAAOYMAADvDAAA8QwAAPMMAAAADQAADA0AAA4NAAAQDQAAEg0AAEQNAABGDQAASA0AAEoNAABODQAAVA0AAFcNAABfDQAAYw0AAGYNAABvDQAAeg0AAH8NAACBDQAAgw0AAIUNAACWDQAAmg0AALENAACzDQAAuw0AAL0NAAC9DQAAwA0AAMYNAADKDQAAyg0AAM8NAADUDQAA1g0AANYNAADY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FwAAHxcAADEXAABAFwAAURcAAGAXAABsFwAAbhcAAHAXAACAFwAAsxcAANcXAADXFwAA3BcAANwXAAAgGAAAeBgAAIAYAACoGAAAqhgAAKoYAACwGAAA9RgAAAAZAAAeGQAAUBkAAG0ZAABwGQAAdBkAAIAZAACrGQAAsBkAAMkZAAAAGgAAFhoAACAaAABUGgAApxoAAKcaAAAFGwAAMxsAAEUbAABMGwAAgxsAAKAbAACuGwAArxsAALobAADlGwAAABwAACMcAABNHAAATxwAAFocAAB9HAAAgBwAAIgcAACQHAAAuhwAAL0cAAC/HAAA6RwAAOwcAADuHAAA8xwAAPUcAAD2HAAA+hwAAPocAAAAHQAAvx0AAAAeAAAVHwAAGB8AAB0fAAAgHwAARR8AAEgfAABNHwAAUB8AAFcfAABZHwAAWR8AAFsfAABbHwAAXR8AAF0fAABfHwAAfR8AAIAfAAC0HwAAth8AALwfAAC+HwAAvh8AAMIfAADEHwAAxh8AAMwfAADQHwAA0x8AANYfAADbHwAA4B8AAOwfAADyHwAA9B8AAPYfAAD8HwAAcSAAAHEgAAB/IAAAfyAAAJAgAACcIAAAAiEAAAIhAAAHIQAAByEAAAohAAATIQAAFSEAABUhAAAYIQAAHSEAACQhAAAkIQAAJiEAACYhAAAoIQAAKCEAACohAAA5IQAAPCEAAD8hAABFIQAASSEAAE4hAABOIQAAYCEAAIghAAAALAAA5CwAAOssAADuLAAA8iwAAPMsAAAALQAAJS0AACctAAAnLQAALS0AAC0tAAAwLQAAZy0AAG8tAABvLQAAgC0AAJYtAACgLQAApi0AAKgtAACuLQAAsC0AALYtAAC4LQAAvi0AAMAtAADGLQAAyC0AAM4tAADQLQAA1i0AANgtAADeLQAABTAAAAcwAAAhMAAAKTAAADEwAAA1MAAAODAAADwwAABBMAAAljAAAJswAACfMAAAoTAAAPowAAD8MAAA/zAAAAUxAAAvMQAAMTEAAI4xAACgMQAAvzEAAPAxAAD/MQAAADQAAL9NAAAATgAAjKQAANCkAAD9pAAAAKUAAAymAAAQpgAAH6YAACqmAAArpgAAQKYAAG6mAAB/pgAAnaYAAKCmAADvpgAAF6cAAB+nAAAipwAAiKcAAIunAADKpwAA0KcAANGnAADTpwAA06cAANWnAADZpwAA8qcAAAGoAAADqAAABagAAAeoAAAKqAAADKgAACKoAABAqAAAc6gAAIKoAACzqAAA8qgAAPeoAAD7qAAA+6gAAP2oAAD+qAAACqkAACWpAAAwqQAARqkAAGCpAAB8qQAAhKkAALKpAADPqQAAz6kAAOCpAADkqQAA5qkAAO+pAAD6qQAA/qkAAACqAAAoqgAAQKoAAEKqAABEqgAAS6oAAGCqAAB2qgAAeqoAAHqqAAB+qgAAr6oAALGqAACxqgAAtaoAALaqAAC5qgAAvaoAAMCqAADAqgAAwqoAAMKqAADbqgAA3aoAAOCqAADqqgAA8qoAAPSqAAABqwAABqsAAAmrAAAOqwAAEasAABarAAAgqwAAJqsAACirAAAuqwAAMKsAAFqrAABcqwAAaasAAHCrAADiqwAAAKwAAKPXAACw1wAAxtcAAMvXAAD71wAAAPkAAG36AABw+gAA2foAAAD7AAAG+wAAE/sAABf7AAAd+wAAHfsAAB/7AAAo+wAAKvsAADb7AAA4+wAAPPsAAD77AAA++wAAQPsAAEH7AABD+wAARPsAAEb7AACx+wAA0/sAAD39AABQ/QAAj/0AAJL9AADH/QAA8P0AAPv9AABw/gAAdP4AAHb+AAD8/gAAIf8AADr/AABB/wAAWv8AAGb/AAC+/wAAwv8AAMf/AADK/wAAz/8AANL/AADX/wAA2v8AANz/AAAAAAEACwABAA0AAQAmAAEAKAABADoAAQA8AAEAPQABAD8AAQBNAAEAUAABAF0AAQCAAAEA+gABAEABAQB0AQEAgAIBAJwCAQCgAgEA0AIBAAADAQAfAwEALQMBAEoDAQBQAwEAdQMBAIADAQCdAwEAoAMBAMMDAQDIAwEAzwMBANEDAQDVAwEAAAQBAJ0EAQCwBAEA0wQBANgEAQD7BAEAAAUBACcFAQAwBQEAYwUBAHAFAQB6BQEAfAUBAIoFAQCMBQEAkgUBAJQFAQCVBQEAlwUBAKEFAQCjBQEAsQUBALMFAQC5BQEAuwUBALwFAQAABgEANgcBAEAHAQBVBwEAYAcBAGcHAQCABwEAhQcBAIcHAQCwBwEAsgcBALoHAQAACAEABQgBAAgIAQAICAEACggBADUIAQA3CAEAOAgBADwIAQA8CAEAPwgBAFUIAQBgCAEAdggBAIAIAQCeCAEA4AgBAPIIAQD0CAEA9QgBAAAJAQAVCQEAIAkBADkJAQCACQEAtwkBAL4JAQC/CQEAAAoBAAAKAQAQCgEAEwoBABUKAQAXCgEAGQoBADUKAQBgCgEAfAoBAIAKAQCcCgEAwAoBAMcKAQDJCgEA5AoBAAALAQA1CwEAQAsBAFULAQBgCwEAcgsBAIALAQCRCwEAAAwBAEgMAQCADAEAsgwBAMAMAQDyDAEAAA0BACMNAQCADgEAqQ4BALAOAQCxDgEAAA8BABwPAQAnDwEAJw8BADAPAQBFDwEAcA8BAIEPAQCwDwEAxA8BAOAPAQD2DwEAAxABADcQAQBxEAEAchABAHUQAQB1EAEAgxABAK8QAQDQEAEA6BABAAMRAQAmEQEARBEBAEQRAQBHEQEARxEBAFARAQByEQEAdhEBAHYRAQCDEQEAshEBAMERAQDEEQEA2hEBANoRAQDcEQEA3BEBAAASAQAREgEAExIBACsSAQA/EgEAQBIBAIASAQCGEgEAiBIBAIgSAQCKEgEAjRIBAI8SAQCdEgEAnxIBAKgSAQCwEgEA3hIBAAUTAQAMEwEADxMBABATAQATEwEAKBMBACoTAQAwEwEAMhMBADMTAQA1EwEAORMBAD0TAQA9EwEAUBMBAFATAQBdEwEAYRMBAAAUAQA0FAEARxQBAEoUAQBfFAEAYRQBAIAUAQCvFAEAxBQBAMUUAQDHFAEAxxQBAIAVAQCuFQEA2BUBANsVAQAAFgEALxYBAEQWAQBEFgEAgBYBAKoWAQC4FgEAuBYBAAAXAQAaFwEAQBcBAEYXAQAAGAEAKxgBAKAYAQDfGAEA/xgBAAYZAQAJGQEACRkBAAwZAQATGQEAFRkBABYZAQAYGQEALxkBAD8ZAQA/GQEAQRkBAEEZAQCgGQEApxkBAKoZAQDQGQEA4RkBAOEZAQDjGQEA4xkBAAAaAQAAGgEACxoBADIaAQA6GgEAOhoBAFAaAQBQGgEAXBoBAIkaAQCdGgEAnRoBALAaAQD4GgEAABwBAAgcAQAKHAEALhwBAEAcAQBAHAEAchwBAI8cAQAAHQEABh0BAAgdAQAJHQEACx0BADAdAQBGHQEARh0BAGAdAQBlHQEAZx0BAGgdAQBqHQEAiR0BAJgdAQCYHQEA4B4BAPIeAQACHwEAAh8BAAQfAQAQHwEAEh8BADMfAQCwHwEAsB8BAAAgAQCZIwEAACQBAG4kAQCAJAEAQyUBAJAvAQDwLwEAADABAC80AQBBNAEARjQBAABEAQBGRgEAAGgBADhqAQBAagEAXmoBAHBqAQC+agEA0GoBAO1qAQAAawEAL2sBAEBrAQBDawEAY2sBAHdrAQB9awEAj2sBAEBuAQB/bgEAAG8BAEpvAQBQbwEAUG8BAJNvAQCfbwEA4G8BAOFvAQDjbwEA428BAABwAQD3hwEAAIgBANWMAQAAjQEACI0BAPCvAQDzrwEA9a8BAPuvAQD9rwEA/q8BAACwAQAisQEAMrEBADKxAQBQsQEAUrEBAFWxAQBVsQEAZLEBAGexAQBwsQEA+7IBAAC8AQBqvAEAcLwBAHy8AQCAvAEAiLwBAJC8AQCZvAEAANQBAFTUAQBW1AEAnNQBAJ7UAQCf1AEAotQBAKLUAQCl1AEAptQBAKnUAQCs1AEArtQBALnUAQC71AEAu9QBAL3UAQDD1AEAxdQBAAXVAQAH1QEACtUBAA3VAQAU1QEAFtUBABzVAQAe1QEAOdUBADvVAQA+1QEAQNUBAETVAQBG1QEARtUBAErVAQBQ1QEAUtUBAKXWAQCo1gEAwNYBAMLWAQDa1gEA3NYBAPrWAQD81gEAFNcBABbXAQA01wEANtcBAE7XAQBQ1wEAbtcBAHDXAQCI1wEAitcBAKjXAQCq1wEAwtcBAMTXAQDL1wEAAN8BAB7fAQAl3wEAKt8BADDgAQBt4AEAAOEBACzhAQA34QEAPeEBAE7hAQBO4QEAkOIBAK3iAQDA4gEA6+IBANDkAQDr5AEA4OcBAObnAQDo5wEA6+cBAO3nAQDu5wEA8OcBAP7nAQAA6AEAxOgBAADpAQBD6QEAS+kBAEvpAQAA7gEAA+4BAAXuAQAf7gEAIe4BACLuAQAk7gEAJO4BACfuAQAn7gEAKe4BADLuAQA07gEAN+4BADnuAQA57gEAO+4BADvuAQBC7gEAQu4BAEfuAQBH7gEASe4BAEnuAQBL7gEAS+4BAE3uAQBP7gEAUe4BAFLuAQBU7gEAVO4BAFfuAQBX7gEAWe4BAFnuAQBb7gEAW+4BAF3uAQBd7gEAX+4BAF/uAQBh7gEAYu4BAGTuAQBk7gEAZ+4BAGruAQBs7gEAcu4BAHTuAQB37gEAee4BAHzuAQB+7gEAfu4BAIDuAQCJ7gEAi+4BAJvuAQCh7gEAo+4BAKXuAQCp7gEAq+4BALvuAQAAAAIA36YCAACnAgA5twIAQLcCAB24AgAguAIAoc4CALDOAgDg6wIAAPgCAB36AgAAAAMAShMDAFATAwCvIwMABjAAAAcwAAAhMAAAKTAAADgwAAA6MAAAADQAAL9NAAAATgAA/58AAAD5AABt+gAAcPoAANn6AADkbwEA5G8BAABwAQD3hwEAAIgBANWMAQAAjQEACI0BAHCxAQD7sgEAAAACAN+mAgAApwIAObcCAEC3AgAduAIAILgCAKHOAgCwzgIA4OsCAAD4AgAd+gIAAAADAEoTAwBQEwMAryMDAAwgAAANIAAAQA4AAEQOAADADgAAxA4AALUZAAC3GQAAuhkAALoZAAC1qgAAtqoAALmqAAC5qgAAu6oAALyqAABhAAAAegAAAKoAAACqAAAAtQAAALUAAAC6AAAAugAAAN8AAAD2AAAA+AAAAP8AAAABAQAAAQEAAAMBAAADAQAABQEAAAUBAAAHAQAABwEAAAkBAAAJAQAACwEAAAsBAAANAQAADQEAAA8BAAAPAQAAEQEAABEBAAATAQAAEwEAABUBAAAVAQAAFwEAABcBAAAZAQAAGQEAABsBAAAbAQAAHQEAAB0BAAAfAQAAHwEAACEBAAAhAQAAIwEAACMBAAAlAQAAJQEAACcBAAAnAQAAKQEAACkBAAArAQAAKwEAAC0BAAAtAQAALwEAAC8BAAAxAQAAMQEAADMBAAAzAQAANQEAADUBAAA3AQAAOAEAADoBAAA6AQAAPAEAADwBAAA+AQAAPgEAAEABAABAAQAAQgEAAEIBAABEAQAARAEAAEYBAABGAQAASAEAAEkBAABLAQAASwEAAE0BAABNAQAATwEAAE8BAABRAQAAUQEAAFMBAABTAQAAVQEAAFUBAABXAQAAVwEAAFkBAABZAQAAWwEAAFsBAABdAQAAXQEAAF8BAABfAQAAYQEAAGEBAABjAQAAYwEAAGUBAABlAQAAZwEAAGcBAABpAQAAaQEAAGsBAABrAQAAbQEAAG0BAABvAQAAbwEAAHEBAABxAQAAcwEAAHMBAAB1AQAAdQEAAHcBAAB3AQAAegEAAHoBAAB8AQAAfAEAAH4BAACAAQAAgwEAAIMBAACFAQAAhQEAAIgBAACIAQAAjAEAAI0BAACSAQAAkgEAAJUBAACVAQAAmQEAAJsBAACeAQAAngEAAKEBAAChAQAAowEAAKMBAAClAQAApQEAAKgBAACoAQAAqgEAAKsBAACtAQAArQEAALABAACwAQAAtAEAALQBAAC2AQAAtgEAALkBAAC6AQAAvQEAAL8BAADGAQAAxgEAAMkBAADJAQAAzAEAAMwBAADOAQAAzgEAANABAADQAQAA0gEAANIBAADUAQAA1AEAANYBAADWAQAA2AEAANgBAADaAQAA2gEAANwBAADdAQAA3wEAAN8BAADhAQAA4QEAAOMBAADjAQAA5QEAAOUBAADnAQAA5wEAAOkBAADpAQAA6wEAAOsBAADtAQAA7QEAAO8BAADwAQAA8wEAAPMBAAD1AQAA9QEAAPkBAAD5AQAA+wEAAPsBAAD9AQAA/QEAAP8BAAD/AQAAAQIAAAECAAADAgAAAwIAAAUCAAAFAgAABwIAAAcCAAAJAgAACQIAAAsCAAALAgAADQIAAA0CAAAPAgAADwIAABECAAARAgAAEwIAABMCAAAVAgAAFQIAABcCAAAXAgAAGQIAABkCAAAbAgAAGwIAAB0CAAAdAgAAHwIAAB8CAAAhAgAAIQIAACMCAAAjAgAAJQIAACUCAAAnAgAAJwIAACkCAAApAgAAKwIAACsCAAAtAgAALQIAAC8CAAAvAgAAMQIAADECAAAzAgAAOQIAADwCAAA8AgAAPwIAAEACAABCAgAAQgIAAEcCAABHAgAASQIAAEkCAABLAgAASwIAAE0CAABNAgAATwIAAJMCAACVAgAAuAIAAMACAADBAgAA4AIAAOQCAABFAwAARQMAAHEDAABxAwAAcwMAAHMDAAB3AwAAdwMAAHoDAAB9AwAAkAMAAJADAACsAwAAzgMAANADAADRAwAA1QMAANcDAADZAwAA2QMAANsDAADbAwAA3QMAAN0DAADfAwAA3wMAAOEDAADhAwAA4wMAAOMDAADlAwAA5QMAAOcDAADnAwAA6QMAAOkDAADrAwAA6wMAAO0DAADtAwAA7wMAAPMDAAD1AwAA9QMAAPgDAAD4AwAA+wMAAPwDAAAwBAAAXwQAAGEEAABhBAAAYwQAAGMEAABlBAAAZQQAAGcEAABnBAAAaQQAAGkEAABrBAAAawQAAG0EAABtBAAAbwQAAG8EAABxBAAAcQQAAHMEAABzBAAAdQQAAHUEAAB3BAAAdwQAAHkEAAB5BAAAewQAAHsEAAB9BAAAfQQAAH8EAAB/BAAAgQQAAIEEAACLBAAAiwQAAI0EAACNBAAAjwQAAI8EAACRBAAAkQQAAJMEAACTBAAAlQQAAJUEAACXBAAAlwQAAJkEAACZBAAAmwQAAJsEAACdBAAAnQQAAJ8EAACfBAAAoQQAAKEEAACjBAAAowQAAKUEAAClBAAApwQAAKcEAACpBAAAqQQAAKsEAACrBAAArQQAAK0EAACvBAAArwQAALEEAACxBAAAswQAALMEAAC1BAAAtQQAALcEAAC3BAAAuQQAALkEAAC7BAAAuwQAAL0EAAC9BAAAvwQAAL8EAADCBAAAwgQAAMQEAADEBAAAxgQAAMYEAADIBAAAyAQAAMoEAADKBAAAzAQAAMwEAADOBAAAzwQAANEEAADRBAAA0wQAANMEAADVBAAA1QQAANcEAADXBAAA2QQAANkEAADbBAAA2wQAAN0EAADdBAAA3wQAAN8EAADhBAAA4QQAAOMEAADjBAAA5QQAAOUEAADnBAAA5wQAAOkEAADpBAAA6wQAAOsEAADtBAAA7QQAAO8EAADvBAAA8QQAAPEEAADzBAAA8wQAAPUEAAD1BAAA9wQAAPcEAAD5BAAA+QQAAPsEAAD7BAAA/QQAAP0EAAD/BAAA/wQAAAEFAAABBQAAAwUAAAMFAAAFBQAABQUAAAcFAAAHBQAACQUAAAkFAAALBQAACwUAAA0FAAANBQAADwUAAA8FAAARBQAAEQUAABMFAAATBQAAFQUAABUFAAAXBQAAFwUAABkFAAAZBQAAGwUAABsFAAAdBQAAHQUAAB8FAAAfBQAAIQUAACEFAAAjBQAAIwUAACUFAAAlBQAAJwUAACcFAAApBQAAKQUAACsFAAArBQAALQUAAC0FAAAvBQAALwUAAGAFAACIBQAA0BAAAPoQAAD8EAAA/xAAAPgTAAD9EwAAgBwAAIgcAAAAHQAAvx0AAAEeAAABHgAAAx4AAAMeAAAFHgAABR4AAAceAAAHHgAACR4AAAkeAAALHgAACx4AAA0eAAANHgAADx4AAA8eAAARHgAAER4AABMeAAATHgAAFR4AABUeAAAXHgAAFx4AABkeAAAZHgAAGx4AABseAAAdHgAAHR4AAB8eAAAfHgAAIR4AACEeAAAjHgAAIx4AACUeAAAlHgAAJx4AACceAAApHgAAKR4AACseAAArHgAALR4AAC0eAAAvHgAALx4AADEeAAAxHgAAMx4AADMeAAA1HgAANR4AADceAAA3HgAAOR4AADkeAAA7HgAAOx4AAD0eAAA9HgAAPx4AAD8eAABBHgAAQR4AAEMeAABDHgAARR4AAEUeAABHHgAARx4AAEkeAABJHgAASx4AAEseAABNHgAATR4AAE8eAABPHgAAUR4AAFEeAABTHgAAUx4AAFUeAABVHgAAVx4AAFceAABZHgAAWR4AAFseAABbHgAAXR4AAF0eAABfHgAAXx4AAGEeAABhHgAAYx4AAGMeAABlHgAAZR4AAGceAABnHgAAaR4AAGkeAABrHgAAax4AAG0eAABtHgAAbx4AAG8eAABxHgAAcR4AAHMeAABzHgAAdR4AAHUeAAB3HgAAdx4AAHkeAAB5HgAAex4AAHseAAB9HgAAfR4AAH8eAAB/HgAAgR4AAIEeAACDHgAAgx4AAIUeAACFHgAAhx4AAIceAACJHgAAiR4AAIseAACLHgAAjR4AAI0eAACPHgAAjx4AAJEeAACRHgAAkx4AAJMeAACVHgAAnR4AAJ8eAACfHgAAoR4AAKEeAACjHgAAox4AAKUeAAClHgAApx4AAKceAACpHgAAqR4AAKseAACrHgAArR4AAK0eAACvHgAArx4AALEeAACxHgAAsx4AALMeAAC1HgAAtR4AALceAAC3HgAAuR4AALkeAAC7HgAAux4AAL0eAAC9HgAAvx4AAL8eAADBHgAAwR4AAMMeAADDHgAAxR4AAMUeAADHHgAAxx4AAMkeAADJHgAAyx4AAMseAADNHgAAzR4AAM8eAADPHgAA0R4AANEeAADTHgAA0x4AANUeAADVHgAA1x4AANceAADZHgAA2R4AANseAADbHgAA3R4AAN0eAADfHgAA3x4AAOEeAADhHgAA4x4AAOMeAADlHgAA5R4AAOceAADnHgAA6R4AAOkeAADrHgAA6x4AAO0eAADtHgAA7x4AAO8eAADxHgAA8R4AAPMeAADzHgAA9R4AAPUeAAD3HgAA9x4AAPkeAAD5HgAA+x4AAPseAAD9HgAA/R4AAP8eAAAHHwAAEB8AABUfAAAgHwAAJx8AADAfAAA3HwAAQB8AAEUfAABQHwAAVx8AAGAfAABnHwAAcB8AAH0fAACAHwAAhx8AAJAfAACXHwAAoB8AAKcfAACwHwAAtB8AALYfAAC3HwAAvh8AAL4fAADCHwAAxB8AAMYfAADHHwAA0B8AANMfAADWHwAA1x8AAOAfAADnHwAA8h8AAPQfAAD2HwAA9x8AAHEgAABxIAAAfyAAAH8gAACQIAAAnCAAAAohAAAKIQAADiEAAA8hAAATIQAAEyEAAC8hAAAvIQAANCEAADQhAAA5IQAAOSEAADwhAAA9IQAARiEAAEkhAABOIQAATiEAAHAhAAB/IQAAhCEAAIQhAADQJAAA6SQAADAsAABfLAAAYSwAAGEsAABlLAAAZiwAAGgsAABoLAAAaiwAAGosAABsLAAAbCwAAHEsAABxLAAAcywAAHQsAAB2LAAAfSwAAIEsAACBLAAAgywAAIMsAACFLAAAhSwAAIcsAACHLAAAiSwAAIksAACLLAAAiywAAI0sAACNLAAAjywAAI8sAACRLAAAkSwAAJMsAACTLAAAlSwAAJUsAACXLAAAlywAAJksAACZLAAAmywAAJssAACdLAAAnSwAAJ8sAACfLAAAoSwAAKEsAACjLAAAoywAAKUsAAClLAAApywAAKcsAACpLAAAqSwAAKssAACrLAAArSwAAK0sAACvLAAArywAALEsAACxLAAAsywAALMsAAC1LAAAtSwAALcsAAC3LAAAuSwAALksAAC7LAAAuywAAL0sAAC9LAAAvywAAL8sAADBLAAAwSwAAMMsAADDLAAAxSwAAMUsAADHLAAAxywAAMksAADJLAAAyywAAMssAADNLAAAzSwAAM8sAADPLAAA0SwAANEsAADTLAAA0ywAANUsAADVLAAA1ywAANcsAADZLAAA2SwAANssAADbLAAA3SwAAN0sAADfLAAA3ywAAOEsAADhLAAA4ywAAOQsAADsLAAA7CwAAO4sAADuLAAA8ywAAPMsAAAALQAAJS0AACctAAAnLQAALS0AAC0tAABBpgAAQaYAAEOmAABDpgAARaYAAEWmAABHpgAAR6YAAEmmAABJpgAAS6YAAEumAABNpgAATaYAAE+mAABPpgAAUaYAAFGmAABTpgAAU6YAAFWmAABVpgAAV6YAAFemAABZpgAAWaYAAFumAABbpgAAXaYAAF2mAABfpgAAX6YAAGGmAABhpgAAY6YAAGOmAABlpgAAZaYAAGemAABnpgAAaaYAAGmmAABrpgAAa6YAAG2mAABtpgAAgaYAAIGmAACDpgAAg6YAAIWmAACFpgAAh6YAAIemAACJpgAAiaYAAIumAACLpgAAjaYAAI2mAACPpgAAj6YAAJGmAACRpgAAk6YAAJOmAACVpgAAlaYAAJemAACXpgAAmaYAAJmmAACbpgAAnaYAACOnAAAjpwAAJacAACWnAAAnpwAAJ6cAACmnAAAppwAAK6cAACunAAAtpwAALacAAC+nAAAxpwAAM6cAADOnAAA1pwAANacAADenAAA3pwAAOacAADmnAAA7pwAAO6cAAD2nAAA9pwAAP6cAAD+nAABBpwAAQacAAEOnAABDpwAARacAAEWnAABHpwAAR6cAAEmnAABJpwAAS6cAAEunAABNpwAATacAAE+nAABPpwAAUacAAFGnAABTpwAAU6cAAFWnAABVpwAAV6cAAFenAABZpwAAWacAAFunAABbpwAAXacAAF2nAABfpwAAX6cAAGGnAABhpwAAY6cAAGOnAABlpwAAZacAAGenAABnpwAAaacAAGmnAABrpwAAa6cAAG2nAABtpwAAb6cAAHinAAB6pwAAeqcAAHynAAB8pwAAf6cAAH+nAACBpwAAgacAAIOnAACDpwAAhacAAIWnAACHpwAAh6cAAIynAACMpwAAjqcAAI6nAACRpwAAkacAAJOnAACVpwAAl6cAAJenAACZpwAAmacAAJunAACbpwAAnacAAJ2nAACfpwAAn6cAAKGnAAChpwAAo6cAAKOnAAClpwAApacAAKenAACnpwAAqacAAKmnAACvpwAAr6cAALWnAAC1pwAAt6cAALenAAC5pwAAuacAALunAAC7pwAAvacAAL2nAAC/pwAAv6cAAMGnAADBpwAAw6cAAMOnAADIpwAAyKcAAMqnAADKpwAA0acAANGnAADTpwAA06cAANWnAADVpwAA16cAANenAADZpwAA2acAAPKnAAD0pwAA9qcAAPanAAD4pwAA+qcAADCrAABaqwAAXKsAAGmrAABwqwAAv6sAAAD7AAAG+wAAE/sAABf7AABB/wAAWv8AACgEAQBPBAEA2AQBAPsEAQCXBQEAoQUBAKMFAQCxBQEAswUBALkFAQC7BQEAvAUBAIAHAQCABwEAgwcBAIUHAQCHBwEAsAcBALIHAQC6BwEAwAwBAPIMAQDAGAEA3xgBAGBuAQB/bgEAGtQBADPUAQBO1AEAVNQBAFbUAQBn1AEAgtQBAJvUAQC21AEAudQBALvUAQC71AEAvdQBAMPUAQDF1AEAz9QBAOrUAQAD1QEAHtUBADfVAQBS1QEAa9UBAIbVAQCf1QEAutUBANPVAQDu1QEAB9YBACLWAQA71gEAVtYBAG/WAQCK1gEApdYBAMLWAQDa1gEA3NYBAOHWAQD81gEAFNcBABbXAQAb1wEANtcBAE7XAQBQ1wEAVdcBAHDXAQCI1wEAitcBAI/XAQCq1wEAwtcBAMTXAQDJ1wEAy9cBAMvXAQAA3wEACd8BAAvfAQAe3wEAJd8BACrfAQAw4AEAbeABACLpAQBD6QEAKwAAACsAAAA8AAAAPgAAAF4AAABeAAAAfAAAAHwAAAB+AAAAfgAAAKwAAACsAAAAsQAAALEAAADXAAAA1wAAAPcAAAD3AAAA0AMAANIDAADVAwAA1QMAAPADAADxAwAA9AMAAPYDAAAGBgAACAYAABYgAAAWIAAAMiAAADQgAABAIAAAQCAAAEQgAABEIAAAUiAAAFIgAABhIAAAZCAAAHogAAB+IAAAiiAAAI4gAADQIAAA3CAAAOEgAADhIAAA5SAAAOYgAADrIAAA7yAAAAIhAAACIQAAByEAAAchAAAKIQAAEyEAABUhAAAVIQAAGCEAAB0hAAAkIQAAJCEAACghAAApIQAALCEAAC0hAAAvIQAAMSEAADMhAAA4IQAAPCEAAEkhAABLIQAASyEAAJAhAACnIQAAqSEAAK4hAACwIQAAsSEAALYhAAC3IQAAvCEAANshAADdIQAA3SEAAOQhAADlIQAA9CEAAP8iAAAIIwAACyMAACAjAAAhIwAAfCMAAHwjAACbIwAAtSMAALcjAAC3IwAA0CMAANAjAADcIwAA4iMAAKAlAAChJQAAriUAALclAAC8JQAAwSUAAMYlAADHJQAAyiUAAMslAADPJQAA0yUAAOIlAADiJQAA5CUAAOQlAADnJQAA7CUAAPglAAD/JQAABSYAAAYmAABAJgAAQCYAAEImAABCJgAAYCYAAGMmAABtJgAAbyYAAMAnAAD/JwAAACkAAP8qAAAwKwAARCsAAEcrAABMKwAAKfsAACn7AABh/gAAZv4AAGj+AABo/gAAC/8AAAv/AAAc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AQAAogEAAKQBAACkAQAApgEAAKcBAACpAQAAqQEAAKwBAACsAQAArgEAAK8BAACxAQAAswEAALUBAAC1AQAAtwEAALgBAAC8AQAAvAEAAMQBAADEAQAAxwEAAMcBAADKAQAAygEAAM0BAADNAQAAzwEAAM8BAADRAQAA0QEAANMBAADTAQAA1QEAANUBAADXAQAA1wEAANkBAADZAQAA2wEAANsBAADeAQAA3gEAAOABAADgAQAA4gEAAOIBAADkAQAA5AEAAOYBAADmAQAA6AEAAOgBAADqAQAA6gEAAOwBAADsAQAA7gEAAO4BAADxAQAA8QEAAPQBAAD0AQAA9gEAAPgBAAD6AQAA+gEAAPwBAAD8AQAA/gEAAP4BAAAAAgAAAAIAAAICAAACAgAABAIAAAQCAAAGAgAABgIAAAgCAAAIAgAACgIAAAoCAAAMAgAADAIAAA4CAAAOAgAAEAIAABACAAASAgAAEgIAABQCAAAUAgAAFgIAABYCAAAYAgAAGAIAABoCAAAaAgAAHAIAABwCAAAeAgAAHgIAACACAAAgAgAAIgIAACICAAAkAgAAJAIAACYCAAAmAgAAKAIAACgCAAAqAgAAKgIAACwCAAAsAgAALgIAAC4CAAAwAgAAMAIAADICAAAyAgAAOgIAADsCAAA9AgAAPgIAAEECAABBAgAAQwIAAEYCAABIAgAASAIAAEoCAABKAgAATAIAAEwCAABOAgAATgIAAHADAABwAwAAcgMAAHIDAAB2AwAAdgMAAH8DAAB/AwAAhgMAAIYDAACIAwAAigMAAIwDAACMAwAAjgMAAI8DAACRAwAAoQMAAKMDAACrAwAAzwMAAM8DAADSAwAA1AMAANgDAADYAwAA2gMAANoDAADcAwAA3AMAAN4DAADeAwAA4AMAAOADAADiAwAA4gMAAOQDAADkAwAA5gMAAOYDAADoAwAA6AMAAOoDAADqAwAA7AMAAOwDAADuAwAA7gMAAPQDAAD0AwAA9wMAAPcDAAD5AwAA+gMAAP0DAAAvBAAAYAQAAGAEAABiBAAAYgQAAGQEAABkBAAAZgQAAGYEAABoBAAAaAQAAGoEAABqBAAAbAQAAGwEAABuBAAAbgQAAHAEAABwBAAAcgQAAHIEAAB0BAAAdAQAAHYEAAB2BAAAeAQAAHgEAAB6BAAAegQAAHwEAAB8BAAAfgQAAH4EAACABAAAgAQAAIoEAACKBAAAjAQAAIwEAACOBAAAjgQAAJAEAACQBAAAkgQAAJIEAACUBAAAlAQAAJYEAACWBAAAmAQAAJgEAACaBAAAmgQAAJwEAACcBAAAngQAAJ4EAACgBAAAoAQAAKIEAACiBAAApAQAAKQEAACmBAAApgQAAKgEAACoBAAAqgQAAKoEAACsBAAArAQAAK4EAACuBAAAsAQAALAEAACyBAAAsgQAALQEAAC0BAAAtgQAALYEAAC4BAAAuAQAALoEAAC6BAAAvAQAALwEAAC+BAAAvgQAAMAEAADBBAAAwwQAAMMEAADFBAAAxQQAAMcEAADHBAAAyQQAAMkEAADLBAAAywQAAM0EAADNBAAA0AQAANAEAADSBAAA0gQAANQEAADUBAAA1gQAANYEAADYBAAA2AQAANoEAADaBAAA3AQAANwEAADeBAAA3gQAAOAEAADgBAAA4gQAAOIEAADkBAAA5AQAAOYEAADmBAAA6AQAAOgEAADqBAAA6gQAAOwEAADsBAAA7gQAAO4EAADwBAAA8AQAAPIEAADyBAAA9AQAAPQEAAD2BAAA9gQAAPgEAAD4BAAA+gQAAPoEAAD8BAAA/AQAAP4EAAD+BAAAAAUAAAAFAAACBQAAAgUAAAQFAAAEBQAABgUAAAYFAAAIBQAACAUAAAoFAAAKBQAADAUAAAwFAAAOBQAADgUAABAFAAAQBQAAEgUAABIFAAAUBQAAFAUAABYFAAAWBQAAGAUAABgFAAAaBQAAGgUAABwFAAAcBQAAHgUAAB4FAAAgBQAAIAUAACIFAAAiBQAAJAUAACQFAAAmBQAAJgUAACgFAAAoBQAAKgUAACoFAAAsBQAALAUAAC4FAAAuBQAAMQUAAFYFAACgEAAAxRAAAMcQAADHEAAAzRAAAM0QAACgEwAA9RMAAJAcAAC6HAAAvRwAAL8cAAAAHgAAAB4AAAIeAAACHgAABB4AAAQeAAAGHgAABh4AAAgeAAAIHgAACh4AAAoeAAAMHgAADB4AAA4eAAAOHgAAEB4AABAeAAASHgAAEh4AABQeAAAUHgAAFh4AABYeAAAYHgAAGB4AABoeAAAaHgAAHB4AABweAAAeHgAAHh4AACAeAAAgHgAAIh4AACIeAAAkHgAAJB4AACYeAAAmHgAAKB4AACgeAAAqHgAAKh4AACweAAAsHgAALh4AAC4eAAAwHgAAMB4AADIeAAAyHgAANB4AADQeAAA2HgAANh4AADgeAAA4HgAAOh4AADoeAAA8HgAAPB4AAD4eAAA+HgAAQB4AAEAeAABCHgAAQh4AAEQeAABEHgAARh4AAEYeAABIHgAASB4AAEoeAABKHgAATB4AAEweAABOHgAATh4AAFAeAABQHgAAUh4AAFIeAABUHgAAVB4AAFYeAABWHgAAWB4AAFgeAABaHgAAWh4AAFweAABcHgAAXh4AAF4eAABgHgAAYB4AAGIeAABiHgAAZB4AAGQeAABmHgAAZh4AAGgeAABoHgAAah4AAGoeAABsHgAAbB4AAG4eAABuHgAAcB4AAHAeAAByHgAAch4AAHQeAAB0HgAAdh4AAHYeAAB4HgAAeB4AAHoeAAB6HgAAfB4AAHweAAB+HgAAfh4AAIAeAACAHgAAgh4AAIIeAACEHgAAhB4AAIYeAACGHgAAiB4AAIgeAACKHgAAih4AAIweAACMHgAAjh4AAI4eAACQHgAAkB4AAJIeAACSHgAAlB4AAJQeAACeHgAAnh4AAKAeAACgHgAAoh4AAKIeAACkHgAApB4AAKYeAACmHgAAqB4AAKgeAACqHgAAqh4AAKweAACsHgAArh4AAK4eAACwHgAAsB4AALIeAACyHgAAtB4AALQeAAC2HgAAth4AALgeAAC4HgAAuh4AALoeAAC8HgAAvB4AAL4eAAC+HgAAwB4AAMAeAADCHgAAwh4AAMQeAADEHgAAxh4AAMYeAADIHgAAyB4AAMoeAADKHgAAzB4AAMweAADOHgAAzh4AANAeAADQHgAA0h4AANIeAADUHgAA1B4AANYeAADWHgAA2B4AANgeAADaHgAA2h4AANweAADcHgAA3h4AAN4eAADgHgAA4B4AAOIeAADiHgAA5B4AAOQeAADmHgAA5h4AAOgeAADoHgAA6h4AAOoeAADsHgAA7B4AAO4eAADuHgAA8B4AAPAeAADyHgAA8h4AAPQeAAD0HgAA9h4AAPYeAAD4HgAA+B4AAPoeAAD6HgAA/B4AAPweAAD+HgAA/h4AAAgfAAAPHwAAGB8AAB0fAAAoHwAALx8AADgfAAA/HwAASB8AAE0fAABZHwAAWR8AAFsfAABbHwAAXR8AAF0fAABfHwAAXx8AAGgfAABvHwAAuB8AALsfAADIHwAAyx8AANgfAADbHwAA6B8AAOwfAAD4HwAA+x8AAAIhAAACIQAAByEAAAchAAALIQAADSEAABAhAAASIQAAFSEAABUhAAAZIQAAHSEAACQhAAAkIQAAJiEAACYhAAAoIQAAKCEAACohAAAtIQAAMCEAADMhAAA+IQAAPyEAAEUhAABFIQAAYCEAAG8hAACDIQAAgyEAALYkAADPJAAAACwAAC8sAABgLAAAYCwAAGIsAABkLAAAZywAAGcsAABpLAAAaSwAAGssAABrLAAAbSwAAHAsAAByLAAAciwAAHUsAAB1LAAAfiwAAIAsAACCLAAAgiwAAIQsAACELAAAhiwAAIYsAACILAAAiCwAAIosAACKLAAAjCwAAIwsAACOLAAAjiwAAJAsAACQLAAAkiwAAJIsAACULAAAlCwAAJYsAACWLAAAmCwAAJgsAACaLAAAmiwAAJwsAACcLAAAniwAAJ4sAACgLAAAoCwAAKIsAACiLAAApCwAAKQsAACmLAAApiwAAKgsAACoLAAAqiwAAKosAACsLAAArCwAAK4sAACuLAAAsCwAALAsAACyLAAAsiwAALQsAAC0LAAAtiwAALYsAAC4LAAAuCwAALosAAC6LAAAvCwAALwsAAC+LAAAviwAAMAsAADALAAAwiwAAMIsAADELAAAxCwAAMYsAADGLAAAyCwAAMgsAADKLAAAyiwAAMwsAADMLAAAziwAAM4sAADQLAAA0CwAANIsAADSLAAA1CwAANQsAADWLAAA1iwAANgsAADYLAAA2iwAANosAADcLAAA3CwAAN4sAADeLAAA4CwAAOAsAADiLAAA4iwAAOssAADrLAAA7SwAAO0sAADyLAAA8iwAAECmAABApgAAQqYAAEKmAABEpgAARKYAAEamAABGpgAASKYAAEimAABKpgAASqYAAEymAABMpgAATqYAAE6mAABQpgAAUKYAAFKmAABSpgAAVKYAAFSmAABWpgAAVqYAAFimAABYpgAAWqYAAFqmAABcpgAAXKYAAF6mAABepgAAYKYAAGCmAABipgAAYqYAAGSmAABkpgAAZqYAAGamAABopgAAaKYAAGqmAABqpgAAbKYAAGymAACApgAAgKYAAIKmAACCpgAAhKYAAISmAACGpgAAhqYAAIimAACIpgAAiqYAAIqmAACMpgAAjKYAAI6mAACOpgAAkKYAAJCmAACSpgAAkqYAAJSmAACUpgAAlqYAAJamAACYpgAAmKYAAJqmAACapgAAIqcAACKnAAAkpwAAJKcAACanAAAmpwAAKKcAACinAAAqpwAAKqcAACynAAAspwAALqcAAC6nAAAypwAAMqcAADSnAAA0pwAANqcAADanAAA4pwAAOKcAADqnAAA6pwAAPKcAADynAAA+pwAAPqcAAECnAABApwAAQqcAAEKnAABEpwAARKcAAEanAABGpwAASKcAAEinAABKpwAASqcAAEynAABMpwAATqcAAE6nAABQpwAAUKcAAFKnAABSpwAAVKcAAFSnAABWpwAAVqcAAFinAABYpwAAWqcAAFqnAABcpwAAXKcAAF6nAABepwAAYKcAAGCnAABipwAAYqcAAGSnAABkpwAAZqcAAGanAABopwAAaKcAAGqnAABqpwAAbKcAAGynAABupwAAbqcAAHmnAAB5pwAAe6cAAHunAAB9pwAAfqcAAICnAACApwAAgqcAAIKnAACEpwAAhKcAAIanAACGpwAAi6cAAIunAACNpwAAjacAAJCnAACQpwAAkqcAAJKnAACWpwAAlqcAAJinAACYpwAAmqcAAJqnAACcpwAAnKcAAJ6nAACepwAAoKcAAKCnAACipwAAoqcAAKSnAACkpwAApqcAAKanAACopwAAqKcAAKqnAACupwAAsKcAALSnAAC2pwAAtqcAALinAAC4pwAAuqcAALqnAAC8pwAAvKcAAL6nAAC+pwAAwKcAAMCnAADCpwAAwqcAAMSnAADHpwAAyacAAMmnAADQpwAA0KcAANanAADWpwAA2KcAANinAAD1pwAA9acAACH/AAA6/wAAAAQBACcEAQCwBAEA0wQBAHAFAQB6BQEAfAUBAIoFAQCMBQEAkgUBAJQFAQCVBQEAgAwBALIMAQCgGAEAvxgBAEBuAQBfbgEAANQBABnUAQA01AEATdQBAGjUAQCB1AEAnNQBAJzUAQCe1AEAn9QBAKLUAQCi1AEApdQBAKbUAQCp1AEArNQBAK7UAQC11AEA0NQBAOnUAQAE1QEABdUBAAfVAQAK1QEADdUBABTVAQAW1QEAHNUBADjVAQA51QEAO9UBAD7VAQBA1QEARNUBAEbVAQBG1QEAStUBAFDVAQBs1QEAhdUBAKDVAQC51QEA1NUBAO3VAQAI1gEAIdYBADzWAQBV1gEAcNYBAInWAQCo1gEAwNYBAOLWAQD61gEAHNcBADTXAQBW1wEAbtcBAJDXAQCo1wEAytcBAMrXAQAA6QEAIekBADDxAQBJ8QEAUPEBAGnxAQBw8QEAifEBAAsYAAANGAAADxgAAA8YAAAA/gAAD/4AAAABDgDvAQ4AMAAAADkAAABBAAAAWgAAAF8AAABfAAAAYQAAAHoAAACqAAAAqgAAALUAAAC1AAAAtwAAALcAAAC6AAAAugAAAMAAAADWAAAA2AAAAPYAAAD4AAAAwQIAAMYCAADRAgAA4AIAAOQCAADsAgAA7AIAAO4CAADuAgAAAAMAAHQDAAB2AwAAdwMAAHsDAAB9AwAAfwMAAH8DAACGAwAAigMAAIwDAACMAwAAjgMAAKEDAACjAwAA9QMAAPcDAACBBAAAgwQAAIcEAACKBAAALwUAADEFAABWBQAAWQUAAFkFAABgBQAAiAUAAJEFAAC9BQAAvwUAAL8FAADBBQAAwgUAAMQFAADFBQAAxwUAAMcFAADQBQAA6gUAAO8FAADyBQAAEAYAABoGAAAgBgAAaQYAAG4GAADTBgAA1QYAANwGAADfBgAA6AYAAOoGAAD8BgAA/wYAAP8GAAAQBwAASgcAAE0HAACxBwAAwAcAAPUHAAD6BwAA+gcAAP0HAAD9BwAAAAgAAC0IAABACAAAWwgAAGAIAABqCAAAcAgAAIcIAACJCAAAjggAAJgIAADhCAAA4wgAAGMJAABmCQAAbwkAAHEJAACDCQAAhQkAAIwJAACPCQAAkAkAAJMJAACoCQAAqgkAALAJAACyCQAAsgkAALYJAAC5CQAAvAkAAMQJAADHCQAAyAkAAMsJAADOCQAA1wkAANcJAADcCQAA3QkAAN8JAADjCQAA5gkAAPEJAAD8CQAA/AkAAP4JAAD+CQAAAQoAAAMKAAAFCgAACgoAAA8KAAAQCgAAEwoAACgKAAAqCgAAMAoAADIKAAAzCgAANQoAADYKAAA4CgAAOQoAADwKAAA8CgAAPgoAAEIKAABHCgAASAoAAEsKAABNCgAAUQoAAFEKAABZCgAAXAoAAF4KAABeCgAAZgoAAHUKAACBCgAAgwoAAIUKAACNCgAAjwoAAJEKAACTCgAAqAoAAKoKAACwCgAAsgoAALMKAAC1CgAAuQoAALwKAADFCgAAxwoAAMkKAADLCgAAzQoAANAKAADQCgAA4AoAAOMKAADmCgAA7woAAPkKAAD/CgAAAQsAAAMLAAAFCwAADAsAAA8LAAAQCwAAEwsAACgLAAAqCwAAMAsAADILAAAzCwAANQsAADkLAAA8CwAARAsAAEcLAABICwAASwsAAE0LAABVCwAAVwsAAFwLAABdCwAAXwsAAGMLAABmCwAAbwsAAHELAABxCwAAggsAAIMLAACFCwAAigsAAI4LAACQCwAAkgsAAJULAACZCwAAmgsAAJwLAACcCwAAngsAAJ8LAACjCwAApAsAAKgLAACqCwAArgsAALkLAAC+CwAAwgsAAMYLAADICwAAygsAAM0LAADQCwAA0AsAANcLAADXCwAA5gsAAO8LAAAADAAADAwAAA4MAAAQDAAAEgwAACgMAAAqDAAAOQwAADwMAABEDAAARgwAAEgMAABKDAAATQwAAFUMAABWDAAAWAwAAFoMAABdDAAAXQwAAGAMAABjDAAAZgwAAG8MAACADAAAgwwAAIUMAACMDAAAjgwAAJAMAACSDAAAqAwAAKoMAACzDAAAtQwAALkMAAC8DAAAxAwAAMYMAADIDAAAygwAAM0MAADVDAAA1gwAAN0MAADeDAAA4AwAAOMMAADmDAAA7wwAAPEMAADzDAAAAA0AAAwNAAAODQAAEA0AABINAABEDQAARg0AAEgNAABKDQAATg0AAFQNAABXDQAAXw0AAGMNAABmDQAAbw0AAHoNAAB/DQAAgQ0AAIMNAACFDQAAlg0AAJoNAACxDQAAsw0AALsNAAC9DQAAvQ0AAMANAADGDQAAyg0AAMoNAADPDQAA1A0AANYNAADWDQAA2A0AAN8NAADmDQAA7w0AAPINAADzDQAAAQ4AADoOAABADgAATg4AAFAOAABZDgAAgQ4AAIIOAACEDgAAhA4AAIYOAACKDgAAjA4AAKMOAAClDgAApQ4AAKcOAAC9DgAAwA4AAMQOAADGDgAAxg4AAMgOAADODgAA0A4AANkOAADcDgAA3w4AAAAPAAAADwAAGA8AABkPAAAgDwAAKQ8AADUPAAA1DwAANw8AADcPAAA5DwAAOQ8AAD4PAABHDwAASQ8AAGwPAABxDwAAhA8AAIYPAACXDwAAmQ8AALwPAADGDwAAxg8AAAAQAABJ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uAIAoc4CALDOAgDg6wIAAPgCAB36AgAAAAMAShMDAFATAwCvIwMAAAEOAO8BDgBBAAAAWgAAAGEAAAB6AAAAqgAAAKoAAAC1AAAAtQAAALoAAAC6AAAAwAAAANYAAADYAAAA9gAAAPgAAADBAgAAxgIAANECAADgAgAA5AIAAOwCAADsAgAA7gIAAO4CAABwAwAAdAMAAHYDAAB3AwAAewMAAH0DAAB/AwAAfwMAAIYDAACGAwAAiAMAAIoDAACMAwAAjAMAAI4DAAChAwAAowMAAPUDAAD3AwAAgQQAAIoEAAAvBQAAMQUAAFYFAABZBQAAWQUAAGAFAACIBQAA0AUAAOoFAADvBQAA8gUAACAGAABKBgAAbgYAAG8GAABxBgAA0wYAANUGAADVBgAA5QYAAOYGAADuBgAA7wYAAPoGAAD8BgAA/wYAAP8GAAAQBwAAEAcAABIHAAAvBwAATQcAAKUHAACxBwAAsQcAAMoHAADqBwAA9AcAAPUHAAD6BwAA+gcAAAAIAAAVCAAAGggAABoIAAAkCAAAJAgAACgIAAAoCAAAQAgAAFgIAABgCAAAaggAAHAIAACHCAAAiQgAAI4IAACgCAAAyQgAAAQJAAA5CQAAPQkAAD0JAABQCQAAUAkAAFgJAABhCQAAcQkAAIAJAACFCQAAjAkAAI8JAACQCQAAkwkAAKgJAACqCQAAsAkAALIJAACyCQAAtgkAALkJAAC9CQAAvQkAAM4JAADOCQAA3AkAAN0JAADfCQAA4QkAAPAJAADxCQAA/AkAAPwJAAAFCgAACgoAAA8KAAAQCgAAEwoAACgKAAAqCgAAMAoAADIKAAAzCgAANQoAADYKAAA4CgAAOQoAAFkKAABcCgAAXgoAAF4KAAByCgAAdAoAAIUKAACNCgAAjwoAAJEKAACTCgAAqAoAAKoKAACwCgAAsgoAALMKAAC1CgAAuQoAAL0KAAC9CgAA0AoAANAKAADgCgAA4QoAAPkKAAD5CgAABQsAAAwLAAAPCwAAEAsAABMLAAAoCwAAKgsAADALAAAyCwAAMwsAADULAAA5CwAAPQsAAD0LAABcCwAAXQsAAF8LAABhCwAAcQsAAHELAACDCwAAgwsAAIULAACKCwAAjgsAAJALAACSCwAAlQsAAJkLAACaCwAAnAsAAJwLAACeCwAAnwsAAKMLAACk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sgAAdLIAAHSyAACQsgAAkLIAAKyyAACssgAAyLIAAMiyAADksgAA5LIAAACzAAAAswAAHLMAAByzAAA4swAAOLMAAFSzAABUswAAcLMAAHCzAACMswAAjLMAAKizAACoswAAxLMAAMSzAADgswAA4LMAAPyzAAD8swAAGLQAABi0AAA0tAAANLQAAFC0AABQtAAAbLQAAGy0AACItAAAiLQAAKS0AACktAAAwLQAAMC0AADctAAA3LQAAPi0AAD4tAAAFLUAABS1AAAwtQAAMLUAAEy1AABMtQAAaLUAAGi1AACEtQAAhLUAAKC1AACgtQAAvLUAALy1AADYtQAA2LUAAPS1AAD0tQAAELYAABC2AAAstgAALLYAAEi2AABItgAAZLYAAGS2AACAtgAAgLYAAJy2AACctgAAuLYAALi2AADUtgAA1LYAAPC2AADwtgAADLcAAAy3AAAotwAAKLcAAES3AABEtwAAYLcAAGC3AAB8twAAfLcAAJi3AACYtwAAtLcAALS3AADQtwAA0LcAAOy3AADstwAACLgAAAi4AAAkuAAAJLgAAEC4AABAuAAAXLgAAFy4AAB4uAAAeLgAAJS4AACUuAAAsLgAALC4AADMuAAAzLgAAOi4AADouAAABLkAAAS5AAAguQAAILkAADy5AAA8uQAAWLkAAFi5AAB0uQAAdLkAAJC5AACQuQAArLkAAKy5AADIuQAAyLkAAOS5AADkuQAAALoAAAC6AAAcugAAHLoAADi6AAA4ugAAVLoAAFS6AABwugAAcLoAAIy6AACMugAAqLoAAKi6AADEugAAxLoAAOC6AADgugAA/LoAAPy6AAAYuwAAGLsAADS7AAA0uwAAULsAAFC7AABsuwAAbLsAAIi7AACIuwAApLsAAKS7AADAuwAAwLsAANy7AADcuwAA+LsAAPi7AAAUvAAAFLwAADC8AAAwvAAATLwAAEy8AABovAAAaLwAAIS8AACEvAAAoLwAAKC8AAC8vAAAvLwAANi8AADYvAAA9LwAAPS8AAAQvQAAEL0AACy9AAAsvQAASL0AAEi9AABkvQAAZL0AAIC9AACAvQAAnL0AAJy9AAC4vQAAuL0AANS9AADUvQAA8L0AAPC9AAAMvgAADL4AACi+AAAovgAARL4AAES+AABgvgAAYL4AAHy+AAB8vgAAmL4AAJi+AAC0vgAAtL4AANC+AADQvgAA7L4AAOy+AAAIvwAACL8AACS/AAAkvwAAQL8AAEC/AABcvwAAXL8AAHi/AAB4vwAAlL8AAJS/AACwvwAAsL8AAMy/AADMvwAA6L8AAOi/AAAEwAAABMAAACDAAAAgwAAAPMAAADzAAABYwAAAWMAAAHTAAAB0wAAAkMAAAJDAAACswAAArMAAAMjAAADIwAAA5MAAAOTAAAAAwQAAAMEAABzBAAAcwQAAOMEAADjBAABUwQAAVMEAAHDBAABwwQAAjMEAAIzBAACowQAAqMEAAMTBAADEwQAA4MEAAODBAAD8wQAA/MEAABjCAAAYwgAANMIAADTCAABQwgAAUMIAAGzCAABswgAAiMIAAIjCAACkwgAApMIAAMDCAADAwgAA3MIAANzCAAD4wgAA+MIAABTDAAAUwwAAMMMAADDDAABMwwAATMMAAGjDAABowwAAhMMAAITDAACgwwAAoMMAALzDAAC8wwAA2MMAANjDAAD0wwAA9MMAABDEAAAQxAAALMQAACzEAABIxAAASMQAAGTEAABkxAAAgMQAAIDEAACcxAAAnMQAALjEAAC4xAAA1MQAANTEAADwxAAA8MQAAAzFAAAMxQAAKMUAACjFAABExQAARMUAAGDFAABgxQAAfMUAAHzFAACYxQAAmMUAALTFAAC0xQAA0MUAANDFAADsxQAA7MUAAAjGAAAIxgAAJMYAACTGAABAxgAAQMYAAFzGAABcxgAAeMYAAHjGAACUxgAAlMYAALDGAACwxgAAzMYAAMzGAADoxgAA6MYAAATHAAAExwAAIMcAACDHAAA8xwAAPMcAAFjHAABYxwAAdMcAAHTHAACQxwAAkMcAAKzHAACsxwAAyMcAAMjHAADkxwAA5McAAADIAAAAyAAAHMgAABzIAAA4yAAAOMgAAFTIAABUyAAAcMgAAHDIAACMyAAAjMgAAKjIAACoyAAAxMgAAMTIAADgyAAA4MgAAPzIAAD8yAAAGMkAABjJAAA0yQAANMkAAFDJAABQyQAAbMkAAGzJAACIyQAAiMkAAKTJAACkyQAAwMkAAMDJAADcyQAA3MkAAPjJAAD4yQAAFMoAABTKAAAwygAAMMoAAEzKAABMygAAaMoAAGjKAACEygAAhMoAAKDKAACgygAAvMoAALzKAADYygAA2MoAAPTKAAD0ygAAEMsAABDLAAAsywAALMsAAEjLAABIywAAZMsAAGTLAACAywAAgMsAAJzLAACcywAAuMsAALjLAADUywAA1MsAAPDLAADwywAADMwAAAzMAAAozAAAKMwAAETMAABEzAAAYMwAAGDMAAB8zAAAfMwAAJjMAACYzAAAtMwAALTMAADQzAAA0MwAAOzMAADszAAACM0AAAjNAAAkzQAAJM0AAEDNAABAzQAAXM0AAFzNAAB4zQAAeM0AAJTNAACUzQAAsM0AALDNAADMzQAAzM0AAOjNAADozQAABM4AAATOAAAgzgAAIM4AADzOAAA8zgAAWM4AAFjOAAB0zgAAdM4AAJDOAACQzgAArM4AAKzOAADIzgAAyM4AAOTOAADkzgAAAM8AAADPAAAczwAAHM8AADjPAAA4zwAAVM8AAFTPAABwzwAAcM8AAIzPAACMzwAAqM8AAKjPAADEzwAAxM8AAODPAADgzwAA/M8AAPzPAAAY0AAAGNAAADTQAAA00AAAUNAAAFDQAABs0AAAbNAAAIjQAACI0AAApNAAAKTQAADA0AAAwNAAANzQAADc0AAA+NAAAPjQAAAU0QAAFNEAADDRAAAw0QAATNEAAEzRAABo0QAAaNEAAITRAACE0QAAoNEAAKDRAAC80QAAvNEAANjRAADY0QAA9NEAAPTRAAAQ0gAAENIAACzSAAAs0gAASNIAAEjSAABk0gAAZNIAAIDSAACA0gAAnNIAAJzSAAC40gAAuNIAANTSAADU0gAA8NIAAPDSAAAM0wAADNMAACjTAAAo0wAARNMAAETTAABg0wAAYNMAAHzTAAB80wAAmNMAAJjTAAC00wAAtNMAANDTAADQ0wAA7NMAAOzTAAAI1AAACNQAACTUAAAk1AAAQNQAAEDUAABc1AAAXNQAAHjUAAB41AAAlNQAAJTUAACw1AAAsNQAAMzUAADM1AAA6NQAAOjUAAAE1QAABNUAACDVAAAg1QAAPNUAADzVAABY1QAAWNUAAHTVAAB01QAAkNUAAJDVAACs1QAArNUAAMjVAADI1QAA5NUAAOTVAAAA1gAAANYAABzWAAAc1gAAONYAADjWAABU1gAAVNYAAHDWAABw1gAAjNYAAIzWAACo1gAAqNYAAMTWAADE1gAA4NYAAODWAAD81gAA/NYAABjXAAAY1wAANNcAADTXAABQ1wAAUNcAAGzXAABs1wAAiNcAAIjXAAABrAAAG6wAAB2sAAA3rAAAOawAAFOsAABVrAAAb6wAAHGsAACLrAAAjawAAKesAACprAAAw6wAAMWsAADfrAAA4awAAPusAAD9rAAAF60AABmtAAAzrQAANa0AAE+tAABRrQAAa60AAG2tAACHrQAAia0AAKOtAAClrQAAv60AAMGtAADbrQAA3a0AAPetAAD5rQAAE64AABWuAAAvrgAAMa4AAEuuAABNrgAAZ64AAGmuAACDrgAAha4AAJ+uAAChrgAAu64AAL2uAADXrgAA2a4AAPOuAAD1rgAAD68AABGvAAArrwAALa8AAEevAABJrwAAY68AAGWvAAB/rwAAga8AAJuvAACdrwAAt68AALmvAADTrwAA1a8AAO+vAADxrwAAC7AAAA2wAAAnsAAAKbAAAEOwAABFsAAAX7AAAGGwAAB7sAAAfbAAAJewAACZsAAAs7AAALWwAADPsAAA0bAAAOuwAADtsAAAB7EAAAmxAAAjsQAAJbEAAD+xAABBsQAAW7EAAF2xAAB3sQAAebEAAJOxAACVsQAAr7EAALGxAADLsQAAzbEAAOexAADpsQAAA7IAAAWyAAAfsgAAIbIAADuyAAA9sgAAV7IAAFmyAABzsgAAdbIAAI+yAACRsgAAq7IAAK2yAADHsgAAybIAAOOyAADlsgAA/7IAAAGzAAAbswAAHbMAADezAAA5swAAU7MAAFWzAABvswAAcbMAAIuzAACNswAAp7MAAKmzAADDswAAxbMAAN+zAADhswAA+7MAAP2zAAAXtAAAGbQAADO0AAA1tAAAT7QAAFG0AABrtAAAbbQAAIe0AACJtAAAo7QAAKW0AAC/tAAAwbQAANu0AADdtAAA97QAAPm0AAATtQAAFbUAAC+1AAAxtQAAS7UAAE21AABntQAAabUAAIO1AACFtQAAn7UAAKG1AAC7tQAAvbUAANe1AADZtQAA87UAAPW1AAAPtgAAEbYAACu2AAAttgAAR7YAAEm2AABjtgAAZbYAAH+2AACBtgAAm7YAAJ22AAC3tgAAubYAANO2AADVtgAA77YAAPG2AAALtwAADbcAACe3AAAptwAAQ7cAAEW3AABftwAAYbcAAHu3AAB9twAAl7cAAJm3AACztwAAtbcAAM+3AADRtwAA67cAAO23AAAHuAAACbgAACO4AAAluAAAP7gAAEG4AABbuAAAXbgAAHe4AAB5uAAAk7gAAJW4AACvuAAAsbgAAMu4AADNuAAA57gAAOm4AAADuQAABbkAAB+5AAAhuQAAO7kAAD25AABXuQAAWbkAAHO5AAB1uQAAj7kAAJG5AACruQAArbkAAMe5AADJuQAA47kAAOW5AAD/uQAAAboAABu6AAAdugAAN7oAADm6AABTugAAVboAAG+6AABxugAAi7oAAI26AACnugAAqboAAMO6AADFugAA37oAAOG6AAD7ugAA/boAABe7AAAZuwAAM7sAADW7AABPuwAAUbsAAGu7AABtuwAAh7sAAIm7AACjuwAApbsAAL+7AADBuwAA27sAAN27AAD3uwAA+bsAABO8AAAVvAAAL7wAADG8AABLvAAATbwAAGe8AABpvAAAg7wAAIW8AACfvAAAobwAALu8AAC9vAAA17wAANm8AADzvAAA9bwAAA+9AAARvQAAK70AAC29AABHvQAASb0AAGO9AABlvQAAf70AAIG9AACbvQAAnb0AALe9AAC5vQAA070AANW9AADvvQAA8b0AAAu+AAANvgAAJ74AACm+AABDvgAARb4AAF++AABhvgAAe74AAH2+AACXvgAAmb4AALO+AAC1vgAAz74AANG+AADrvgAA7b4AAAe/AAAJvwAAI78AACW/AAA/vwAAQb8AAFu/AABdvwAAd78AAHm/AACTvwAAlb8AAK+/AACxvwAAy78AAM2/AADnvwAA6b8AAAPAAAAFwAAAH8AAACHAAAA7wAAAPcAAAFfAAABZwAAAc8AAAHXAAACPwAAAkcAAAKvAAACtwAAAx8AAAMnAAADjwAAA5cAAAP/AAAABwQAAG8EAAB3BAAA3wQAAOcEAAFPBAABVwQAAb8EAAHHBAACLwQAAjcEAAKfBAACpwQAAw8EAAMXBAADfwQAA4cEAAPvBAAD9wQAAF8IAABnCAAAzwgAANcIAAE/CAABRwgAAa8IAAG3CAACHwgAAicIAAKPCAAClwgAAv8IAAMHCAADbwgAA3cIAAPfCAAD5wgAAE8MAABXDAAAvwwAAMcMAAEvDAABNwwAAZ8MAAGnDAACDwwAAhcMAAJ/DAAChwwAAu8MAAL3DAADXwwAA2cMAAPPDAAD1wwAAD8QAABHEAAArxAAALcQAAEfEAABJxAAAY8QAAGXEAAB/xAAAgcQAAJvEAACdxAAAt8QAALnEAADTxAAA1cQAAO/EAADxxAAAC8UAAA3FAAAnxQAAKcUAAEPFAABFxQAAX8UAAGHFAAB7xQAAfcUAAJfFAACZxQAAs8UAALXFAADPxQAA0cUAAOvFAADtxQAAB8YAAAnGAAAjxgAAJcYAAD/GAABBxgAAW8YAAF3GAAB3xgAAecYAAJPGAACVxgAAr8YAALHGAADLxgAAzcYAAOfGAADpxgAAA8cAAAXHAAAfxwAAIccAADvHAAA9xwAAV8cAAFnHAABzxwAAdccAAI/HAACRxwAAq8cAAK3HAADHxwAAyccAAOPHAADlxwAA/8cAAAHIAAAbyAAAHcgAADfIAAA5yAAAU8gAAFXIAABvyAAAccgAAIvIAACNyAAAp8gAAKnIAADDyAAAxcgAAN/IAADhyAAA+8gAAP3IAAAXyQAAGckAADPJAAA1yQAAT8kAAFHJAABryQAAbckAAIfJAACJyQAAo8kAAKXJAAC/yQAAwckAANvJAADdyQAA98kAAPnJAAATygAAFcoAAC/KAAAxygAAS8oAAE3KAABnygAAacoAAIPKAACFygAAn8oAAKHKAAC7ygAAvcoAANfKAADZygAA88oAAPXKAAAPywAAEcsAACvLAAAtywAAR8sAAEnLAABjywAAZcsAAH/LAACBywAAm8sAAJ3LAAC3ywAAucsAANPLAADVywAA78sAAPHLAAALzAAADcwAACfMAAApzAAAQ8wAAEXMAABfzAAAYcwAAHvMAAB9zAAAl8wAAJnMAACzzAAAtcwAAM/MAADRzAAA68wAAO3MAAAHzQAACc0AACPNAAAlzQAAP80AAEHNAABbzQAAXc0AAHfNAAB5zQAAk80AAJXNAACvzQAAsc0AAMvNAADNzQAA580AAOnNAAADzgAABc4AAB/OAAAhzgAAO84AAD3OAABXzgAAWc4AAHPOAAB1zgAAj84AAJHOAACrzgAArc4AAMfOAADJzgAA484AAOXOAAD/zgAAAc8AABvPAAAdzwAAN88AADnPAABTzwAAVc8AAG/PAABxzwAAi88AAI3PAACnzwAAqc8AAMPPAADFzwAA388AAOHPAAD7zwAA/c8AABfQAAAZ0AAAM9AAADXQAABP0AAAUdAAAGvQAABt0AAAh9AAAInQAACj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AQAAaQEAAGkBAABrAQAAawEAAG0BAABtAQAAbwEAAG8BAABxAQAAcQEAAHMBAABzAQAAdQEAAHUBAAB3AQAAdwEAAHoBAAB6AQAAfAEAAHwBAAB+AQAAgAEAAIMBAACDAQAAhQEAAIUBAACIAQAAiAEAAIwBAACNAQAAkgEAAJIBAACVAQAAlQEAAJkBAACbAQAAngEAAJ4BAAChAQAAoQEAAKMBAACjAQAApQEAAKUBAACoAQAAqAEAAKoBAACrAQAArQEAAK0BAACwAQAAsAEAALQBAAC0AQAAtgEAALYBAAC5AQAAugEAAL0BAAC/AQAAxgEAAMYBAADJAQAAyQEAAMwBAADMAQAAzgEAAM4BAADQAQAA0AEAANIBAADSAQAA1AEAANQBAADWAQAA1gEAANgBAADYAQAA2gEAANoBAADcAQAA3QEAAN8BAADfAQAA4QEAAOEBAADjAQAA4wEAAOUBAADlAQAA5wEAAOcBAADpAQAA6QEAAOsBAADrAQAA7QEAAO0BAADvAQAA8AEAAPMBAADzAQAA9QEAAPUBAAD5AQAA+QEAAPsBAAD7AQAA/QEAAP0BAAD/AQAA/wEAAAECAAABAgAAAwIAAAMCAAAFAgAABQIAAAcCAAAHAgAACQIAAAkCAAALAgAACwIAAA0CAAANAgAADwIAAA8CAAARAgAAEQIAABMCAAATAgAAFQIAABUCAAAXAgAAFwIAABkCAAAZAgAAGwIAABsCAAAdAgAAHQIAAB8CAAAfAgAAIQIAACECAAAjAgAAIwIAACUCAAAlAgAAJwIAACcCAAApAgAAKQIAACsCAAArAgAALQIAAC0CAAAvAgAALwIAADECAAAxAgAAMwIAADkCAAA8AgAAPAIAAD8CAABAAgAAQgIAAEICAABHAgAARwIAAEkCAABJAgAASwIAAEsCAABNAgAATQIAAE8CAACTAgAAlQIAALgCAADAAgAAwQIAAOACAADkAgAAcQMAAHEDAABzAwAAcwMAAHcDAAB3AwAAegMAAH0DAACQAwAAkAMAAKwDAADOAwAA0AMAANEDAADVAwAA1wMAANkDAADZAwAA2wMAANsDAADdAwAA3QMAAN8DAADfAwAA4QMAAOEDAADjAwAA4wMAAOUDAADlAwAA5wMAAOcDAADpAwAA6QMAAOsDAADrAwAA7QMAAO0DAADvAwAA8wMAAPUDAAD1AwAA+AMAAPgDAAD7AwAA/AMAADAEAABfBAAAYQQAAGEEAABjBAAAYwQAAGUEAABlBAAAZwQAAGcEAABpBAAAaQQAAGsEAABrBAAAbQQAAG0EAABvBAAAbwQAAHEEAABxBAAAcwQAAHMEAAB1BAAAdQQAAHcEAAB3BAAAeQQAAHkEAAB7BAAAewQAAH0EAAB9BAAAfwQAAH8EAACBBAAAgQQAAIsEAACLBAAAjQQAAI0EAACPBAAAjwQAAJEEAACRBAAAkwQAAJMEAACVBAAAlQQAAJcEAACXBAAAmQQAAJkEAACbBAAAmwQAAJ0EAACdBAAAnwQAAJ8EAAChBAAAoQQAAKMEAACjBAAApQQAAKUEAACnBAAApwQAAKkEAACpBAAAqwQAAKsEAACtBAAArQQAAK8EAACvBAAAsQQAALEEAACzBAAAswQAALUEAAC1BAAAtwQAALcEAAC5BAAAuQQAALsEAAC7BAAAvQQAAL0EAAC/BAAAvwQAAMIEAADCBAAAxAQAAMQEAADGBAAAxgQAAMgEAADIBAAAygQAAMoEAADMBAAAzAQAAM4EAADPBAAA0QQAANEEAADTBAAA0wQAANUEAADVBAAA1wQAANcEAADZBAAA2QQAANsEAADbBAAA3QQAAN0EAADfBAAA3wQAAOEEAADhBAAA4wQAAOMEAADlBAAA5QQAAOcEAADnBAAA6QQAAOkEAADrBAAA6wQAAO0EAADtBAAA7wQAAO8EAADxBAAA8QQAAPMEAADzBAAA9QQAAPUEAAD3BAAA9wQAAPkEAAD5BAAA+wQAAPsEAAD9BAAA/QQAAP8EAAD/BAAAAQUAAAEFAAADBQAAAwUAAAUFAAAFBQAABwUAAAcFAAAJBQAACQUAAAsFAAALBQAADQUAAA0FAAAPBQAADwUAABEFAAARBQAAEwUAABMFAAAVBQAAFQUAABcFAAAXBQAAGQUAABkFAAAbBQAAGwUAAB0FAAAdBQAAHwUAAB8FAAAhBQAAIQUAACMFAAAjBQAAJQUAACUFAAAnBQAAJwUAACkFAAApBQAAKwUAACsFAAAtBQAALQUAAC8FAAAvBQAAYAUAAIgFAAD8EAAA/BAAAPgTAAD9EwAAgBwAAIgcAAAAHQAAvx0AAAEeAAABHgAAAx4AAAMeAAAFHgAABR4AAAceAAAHHgAACR4AAAkeAAALHgAACx4AAA0eAAANHgAADx4AAA8eAAARHgAAER4AABMeAAATHgAAFR4AABUeAAAXHgAAFx4AABkeAAAZHgAAGx4AABseAAAdHgAAHR4AAB8eAAAfHgAAIR4AACEeAAAjHgAAIx4AACUeAAAlHgAAJx4AACceAAApHgAAKR4AACseAAArHgAALR4AAC0eAAAvHgAALx4AADEeAAAxHgAAMx4AADMeAAA1HgAANR4AADceAAA3HgAAOR4AADkeAAA7HgAAOx4AAD0eAAA9HgAAPx4AAD8eAABBHgAAQR4AAEMeAABDHgAARR4AAEUeAABHHgAARx4AAEkeAABJHgAASx4AAEseAABNHgAATR4AAE8eAABPHgAAUR4AAFEeAABTHgAAUx4AAFUeAABVHgAAVx4AAFceAABZHgAAWR4AAFseAABbHgAAXR4AAF0eAABfHgAAXx4AAGEeAABhHgAAYx4AAGMeAABlHgAAZR4AAGceAABnHgAAaR4AAGkeAABrHgAAax4AAG0eAABtHgAAbx4AAG8eAABxHgAAcR4AAHMeAABzHgAAdR4AAHUeAAB3HgAAdx4AAHkeAAB5HgAAex4AAHseAAB9HgAAfR4AAH8eAAB/HgAAgR4AAIEeAACDHgAAgx4AAIUeAACFHgAAhx4AAIceAACJHgAAiR4AAIseAACLHgAAjR4AAI0eAACPHgAAjx4AAJEeAACRHgAAkx4AAJMeAACVHgAAnR4AAJ8eAACfHgAAoR4AAKEeAACjHgAAox4AAKUeAAClHgAApx4AAKceAACpHgAAqR4AAKseAACrHgAArR4AAK0eAACvHgAArx4AALEeAACxHgAAsx4AALMeAAC1HgAAtR4AALceAAC3HgAAuR4AALkeAAC7HgAAux4AAL0eAAC9HgAAvx4AAL8eAADBHgAAwR4AAMMeAADDHgAAxR4AAMUeAADHHgAAxx4AAMkeAADJHgAAyx4AAMseAADNHgAAzR4AAM8eAADPHgAA0R4AANEeAADTHgAA0x4AANUeAADVHgAA1x4AANceAADZHgAA2R4AANseAADbHgAA3R4AAN0eAADfHgAA3x4AAOEeAADhHgAA4x4AAOMeAADlHgAA5R4AAOceAADnHgAA6R4AAOkeAADrHgAA6x4AAO0eAADtHgAA7x4AAO8eAADxHgAA8R4AAPMeAADzHgAA9R4AAPUeAAD3HgAA9x4AAPkeAAD5HgAA+x4AAPseAAD9HgAA/R4AAP8eAAAHHwAAEB8AABUfAAAgHwAAJx8AADAfAAA3HwAAQB8AAEUfAABQHwAAVx8AAGAfAABnHwAAcB8AAH0fAACAHwAAhx8AAJAfAACXHwAAoB8AAKcfAACwHwAAtB8AALYfAAC3HwAAvh8AAL4fAADCHwAAxB8AAMYfAADHHwAA0B8AANMfAADWHwAA1x8AAOAfAADnHwAA8h8AAPQfAAD2HwAA9x8AAHEgAABxIAAAfyAAAH8gAACQIAAAnCAAAAohAAAKIQAADiEAAA8hAAATIQAAEyEAAC8hAAAvIQAANCEAADQhAAA5IQAAOSEAADwhAAA9IQAARiEAAEkhAABOIQAATiEAAHAhAAB/IQAAhCEAAIQhAADQJAAA6SQAADAsAABfLAAAYSwAAGEsAABlLAAAZiwAAGgsAABoLAAAaiwAAGosAABsLAAAbCwAAHEsAABxLAAAcywAAHQsAAB2LAAAfSwAAIEsAACBLAAAgywAAIMsAACFLAAAhSwAAIcsAACHLAAAiSwAAIksAACLLAAAiywAAI0sAACNLAAAjywAAI8sAACRLAAAkSwAAJMsAACTLAAAlSwAAJUsAACXLAAAlywAAJksAACZLAAAmywAAJssAACdLAAAnSwAAJ8sAACfLAAAoSwAAKEsAACjLAAAoywAAKUsAAClLAAApywAAKcsAACpLAAAqSwAAKssAACrLAAArSwAAK0sAACvLAAArywAALEsAACxLAAAsywAALMsAAC1LAAAtSwAALcsAAC3LAAAuSwAALksAAC7LAAAuywAAL0sAAC9LAAAvywAAL8sAADBLAAAwSwAAMMsAADDLAAAxSwAAMUsAADHLAAAxywAAMksAADJLAAAyywAAMssAADNLAAAzSwAAM8sAADPLAAA0SwAANEsAADTLAAA0ywAANUsAADVLAAA1ywAANcsAADZLAAA2SwAANssAADbLAAA3SwAAN0sAADfLAAA3ywAAOEsAADhLAAA4ywAAOQsAADsLAAA7CwAAO4sAADuLAAA8ywAAPMsAAAALQAAJS0AACctAAAnLQAALS0AAC0tAABBpgAAQaYAAEOmAABDpgAARaYAAEWmAABHpgAAR6YAAEmmAABJpgAAS6YAAEumAABNpgAATaYAAE+mAABPpgAAUaYAAFGmAABTpgAAU6YAAFWmAABVpgAAV6YAAFemAABZpgAAWaYAAFumAABbpgAAXaYAAF2mAABfpgAAX6YAAGGmAABhpgAAY6YAAGOmAABlpgAAZaYAAGemAABnpgAAaaYAAGmmAABrpgAAa6YAAG2mAABtpgAAgaYAAIGmAACDpgAAg6YAAIWmAACFpgAAh6YAAIemAACJpgAAiaYAAIumAACLpgAAjaYAAI2mAACPpgAAj6YAAJGmAACRpgAAk6YAAJOmAACVpgAAlaYAAJemAACXpgAAmaYAAJmmAACbpgAAnaYAACOnAAAjpwAAJacAACWnAAAnpwAAJ6cAACmnAAAppwAAK6cAACunAAAtpwAALacAAC+nAAAxpwAAM6cAADOnAAA1pwAANacAADenAAA3pwAAOacAADmnAAA7pwAAO6cAAD2nAAA9pwAAP6cAAD+nAABBpwAAQacAAEOnAABDpwAARacAAEWnAABHpwAAR6cAAEmnAABJpwAAS6cAAEunAABNpwAATacAAE+nAABPpwAAUacAAFGnAABTpwAAU6cAAFWnAABVpwAAV6cAAFenAABZpwAAWacAAFunAABbpwAAXacAAF2nAABfpwAAX6cAAGGnAABhpwAAY6cAAGOnAABlpwAAZacAAGenAABnpwAAaacAAGmnAABrpwAAa6cAAG2nAABtpwAAb6cAAHinAAB6pwAAeqcAAHynAAB8pwAAf6cAAH+nAACBpwAAgacAAIOnAACDpwAAhacAAIWnAACHpwAAh6cAAIynAACMpwAAjqcAAI6nAACRpwAAkacAAJOnAACVpwAAl6cAAJenAACZpwAAmacAAJunAACbpwAAnacAAJ2nAACfpwAAn6cAAKGnAAChpwAAo6cAAKOnAAClpwAApacAAKenAACnpwAAqacAAKmnAACvpwAAr6cAALWnAAC1pwAAt6cAALenAAC5pwAAuacAALunAAC7pwAAvacAAL2nAAC/pwAAv6cAAMGnAADBpwAAw6cAAMOnAADIpwAAyKcAAMqnAADKpwAA0acAANGnAADTpwAA06cAANWnAADVpwAA16cAANenAADZpwAA2acAAPKnAAD0pwAA9qcAAPanAAD4pwAA+qcAADCrAABaqwAAXKsAAGmrAABwqwAAv6sAAAD7AAAG+wAAE/sAABf7AABB/wAAWv8AACgEAQBPBAEA2AQBAPsEAQCXBQEAoQUBAKMFAQCxBQEAswUBALkFAQC7BQEAvAUBAIAHAQCABwEAgwcBAIUHAQCHBwEAsAcBALIHAQC6BwEAwAwBAPIMAQDAGAEA3xgBAGBuAQB/bgEAGtQBADPUAQBO1AEAVNQBAFbUAQBn1AEAgtQBAJvUAQC21AEAudQBALvUAQC71AEAvdQBAMPUAQDF1AEAz9QBAOrUAQAD1QEAHtUBADfVAQBS1QEAa9UBAIbVAQCf1QEAutUBANPVAQDu1QEAB9YBACLWAQA71gEAVtYBAG/WAQCK1gEApdYBAMLWAQDa1gEA3NYBAOHWAQD81gEAFNcBABbXAQAb1wEANtcBAE7XAQBQ1wEAVdcBAHDXAQCI1wEAitcBAI/XAQCq1wEAwtcBAMTXAQDJ1wEAy9cBAMvXAQAA3wEACd8BAAvfAQAe3wEAJd8BACrfAQAw4AEAbeABACLpAQBD6QEAMAAAADkAAABgBgAAaQYAAGsGAABsBgAA8AYAAPkGAADABwAAyQcAAGYJAABvCQAA5gkAAO8JAABmCgAAbwoAAOYKAADvCgAAZgsAAG8LAADmCwAA7wsAAGYMAABvDAAA5gwAAO8MAABmDQAAbw0AAOYNAADvDQAAUA4AAFkOAADQDgAA2Q4AACAPAAApDwAAQBAAAEkQAACQEAAAmRAAAOAXAADpFwAAEBgAABkYAABGGQAATxkAANAZAADZGQAAgBoAAIkaAACQGgAAmRoAAFAbAABZGwAAsBsAALkbAABAHAAASRwAAFAcAABZHAAAIKYAACmmAADQqAAA2agAAACpAAAJqQAA0KkAANmpAADwqQAA+akAAFCqAABZqgAA8KsAAPmrAAAQ/wAAGf8AAKAEAQCpBAEAMA0BADkNAQBmEAEAbxABAPAQAQD5EAEANhEBAD8RAQDQEQEA2REBAPASAQD5EgEAUBQBAFkUAQDQFAEA2RQBAFAWAQBZFgEAwBYBAMkWAQAwFwEAORcBAOAYAQDpGAEAUBkBAFkZAQBQHAEAWRwBAFAdAQBZHQEAoB0BAKkdAQBQHwEAWR8BAGBqAQBpagEAwGoBAMlqAQBQawEAWWsBAM7XAQD/1wEAQOEBAEnhAQDw4gEA+eIBAPDkAQD55AEAUOkBAFnpAQDw+wEA+fsBALsBAAC7AQAAwAEAAMMBAACUAgAAlAIAALkCAAC/AgAAxgIAANECAADsAgAA7AIAAO4CAADuAgAAdAMAAHQDAABZBQAAWQUAANAFAADqBQAA7wUAAPMFAAAgBgAASgYAAG4GAABvBgAAcQYAANMGAADVBgAA1QYAAOUGAADmBgAA7gYAAO8GAAD6BgAA/AYAAP8GAAD/BgAAEAcAABAHAAASBwAALwcAAE0HAAClBwAAsQcAALEHAADKBwAA6gcAAPQHAAD1BwAA+gcAAPoHAAAACAAAFQgAABoIAAAaCAAAJAgAACQIAAAoCAAAKAgAAEAIAABYCAAAYAgAAGoIAABwCAAAhwgAAIkIAACOCAAAoAgAAMkIAAAECQAAOQkAAD0JAAA9CQAAUAkAAFAJAABYCQAAYQkAAHEJAACACQAAhQkAAIwJAACPCQAAkAkAAJMJAACoCQAAqgkAALAJAACyCQAAsgkAALYJAAC5CQAAvQkAAL0JAADOCQAAzgkAANwJAADdCQAA3wkAAOEJAADwCQAA8QkAAPwJAAD8CQAABQoAAAoKAAAPCgAAEAoAABMKAAAoCgAAKgoAADAKAAAyCgAAMwoAADUKAAA2CgAAOAoAADkKAABZCgAAXAoAAF4KAABeCgAAcgoAAHQKAACFCgAAjQoAAI8KAACRCgAAkwoAAKgKAACqCgAAsAoAALIKAACzCgAAtQoAALkKAAC9CgAAvQoAANAKAADQCgAA4AoAAOEKAAD5CgAA+QoAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAAD0LAAA9CwAAXAsAAF0LAABfCwAAYQsAAHELAABxCwAAgwsAAIMLAACFCwAAigsAAI4LAACQCwAAkgsAAJULAACZCwAAmgsAAJwLAACcCwAAngsAAJ8LAACjCwAApAsAAKgLAACqCwAArgsAALkLAADQCwAA0AsAAAUMAAAMDAAADgwAABAMAAASDAAAKAwAACoMAAA5DAAAPQwAAD0MAABYDAAAWgwAAF0MAABdDAAAYAwAAGEMAACADAAAgAwAAIUMAACMDAAAjgwAAJAMAACSDAAAqAwAAKoMAACzDAAAtQwAALkMAAC9DAAAvQwAAN0MAADeDAAA4AwAAOEMAADx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AQAAKAEAACgBAAAqAQAAKgEAACwBAAAsAQAALgEAAC4BAAAwAQAAMAEAADIBAAAyAQAANAEAADQBAAA2AQAANgEAADkBAAA5AQAAOwEAADsBAAA9AQAAPQEAAD8BAAA/AQAAQQEAAEEBAABDAQAAQwEAAEUBAABFAQAARwEAAEcBAABKAQAASgEAAEwBAABMAQAATgEAAE4BAABQAQAAUAEAAFIBAABSAQAAVAEAAFQBAABWAQAAVgEAAFgBAABYAQAAWgEAAFoBAABcAQAAXAEAAF4BAABeAQAAYAEAAGABAABiAQAAYgEAAGQBAABkAQAAZgEAAGYBAABoAQAAaAEAAGoBAABqAQAAbAEAAGwBAABuAQAAbgEAAHABAABwAQAAcgEAAHIBAAB0AQAAdAEAAHYBAAB2AQAAeAEAAHkBAAB7AQAAewEAAH0BAAB9AQAAgQEAAIIBAACEAQAAhAEAAIYBAACHAQAAiQEAAIsBAACOAQAAkQEAAJMBAACUAQAAlgEAAJgBAACcAQAAnQEAAJ8BAACgAQAAogEAAKIBAACkAQAApAEAAKYBAACnAQAAqQEAAKkBAACsAQAArAEAAK4BAACvAQAAsQEAALMBAAC1AQAAtQEAALcBAAC4AQAAvAEAALwBAADEAQAAxQEAAMcBAADIAQAAygEAAMsBAADNAQAAzQEAAM8BAADPAQAA0QEAANEBAADTAQAA0wEAANUBAADVAQAA1wEAANcBAADZAQAA2QEAANsBAADbAQAA3gEAAN4BAADgAQAA4AEAAOIBAADiAQAA5AEAAOQBAADmAQAA5gEAAOgBAADoAQAA6gEAAOoBAADsAQAA7AEAAO4BAADuAQAA8QEAAPIBAAD0AQAA9AEAAPYBAAD4AQAA+gEAAPoBAAD8AQAA/AEAAP4BAAD+AQAAAAIAAAACAAACAgAAAgIAAAQCAAAEAgAABgIAAAYCAAAIAgAACAIAAAoCAAAKAgAADAIAAAwCAAAOAgAADgIAABACAAAQAgAAEgIAABICAAAUAgAAFAIAABYCAAAWAgAAGAIAABgCAAAaAgAAGgIAABwCAAAcAgAAHgIAAB4CAAAgAgAAIAIAACICAAAiAgAAJAIAACQCAAAmAgAAJgIAACgCAAAoAgAAKgIAACoCAAAsAgAALAIAAC4CAAAuAgAAMAIAADACAAAyAgAAMgIAADoCAAA7AgAAPQIAAD4CAABBAgAAQQIAAEMCAABGAgAASAIAAEgCAABKAgAASgIAAEwCAABMAgAATgIAAE4CAABwAwAAcAMAAHIDAAByAwAAdgMAAHYDAAB/AwAAfwMAAIYDAACGAwAAiAMAAIoDAACMAwAAjAMAAI4DAACPAwAAkQMAAKEDAACjAwAAqwMAAM8DAADPAwAA0gMAANQDAADYAwAA2AMAANoDAADaAwAA3AMAANwDAADeAwAA3gMAAOADAADgAwAA4gMAAOIDAADkAwAA5AMAAOYDAADmAwAA6AMAAOgDAADqAwAA6gMAAOwDAADsAwAA7gMAAO4DAAD0AwAA9AMAAPcDAAD3AwAA+QMAAPoDAAD9AwAALwQAAGAEAABgBAAAYgQAAGIEAABkBAAAZAQAAGYEAABmBAAAaAQAAGgEAABqBAAAagQAAGwEAABsBAAAbgQAAG4EAABwBAAAcAQAAHIEAAByBAAAdAQAAHQEAAB2BAAAdgQAAHgEAAB4BAAAegQAAHoEAAB8BAAAfAQAAH4EAAB+BAAAgAQAAIAEAACKBAAAigQAAIwEAACMBAAAjgQAAI4EAACQBAAAkAQAAJIEAACSBAAAlAQAAJQEAACWBAAAlgQAAJgEAACYBAAAmgQAAJoEAACcBAAAnAQAAJ4EAACeBAAAoAQAAKAEAACiBAAAogQAAKQEAACkBAAApgQAAKYEAACoBAAAqAQAAKoEAACqBAAArAQAAKwEAACuBAAArgQAALAEAACwBAAAsgQAALIEAAC0BAAAtAQAALYEAAC2BAAAuAQAALgEAAC6BAAAugQAALwEAAC8BAAAvgQAAL4EAADABAAAwQQAAMMEAADDBAAAxQQAAMUEAADHBAAAxwQAAMkEAADJBAAAywQAAMsEAADNBAAAzQQAANAEAADQBAAA0gQAANIEAADUBAAA1AQAANYEAADWBAAA2AQAANgEAADaBAAA2gQAANwEAADcBAAA3gQAAN4EAADgBAAA4AQAAOIEAADiBAAA5AQAAOQEAADmBAAA5gQAAOgEAADoBAAA6gQAAOoEAADsBAAA7AQAAO4EAADuBAAA8AQAAPAEAADyBAAA8gQAAPQEAAD0BAAA9gQAAPYEAAD4BAAA+AQAAPoEAAD6BAAA/AQAAPwEAAD+BAAA/gQAAAAFAAAABQAAAgUAAAIFAAAEBQAABAUAAAYFAAAGBQAACAUAAAgFAAAKBQAACgUAAAwFAAAMBQAADgUAAA4FAAAQBQAAEAUAABIFAAASBQAAFAUAABQFAAAWBQAAFgUAABgFAAAYBQAAGgUAABoFAAAcBQAAHAUAAB4FAAAeBQAAIAUAACAFAAAiBQAAIgUAACQFAAAkBQAAJgUAACYFAAAoBQAAKAUAACoFAAAqBQAALAUAACwFAAAuBQAALgUAADEFAABWBQAAoBAAAMUQAADHEAAAxxAAAM0QAADNEAAAoBMAAPUTAAAAHgAAAB4AAAIeAAACHgAABB4AAAQeAAAGHgAABh4AAAgeAAAIHgAACh4AAAoeAAAMHgAADB4AAA4eAAAOHgAAEB4AABAeAAASHgAAEh4AABQeAAAUHgAAFh4AABYeAAAYHgAAGB4AABoeAAAaHgAAHB4AABweAAAeHgAAHh4AACAeAAAgHgAAIh4AACIeAAAkHgAAJB4AACYeAAAmHgAAKB4AACgeAAAqHgAAKh4AACweAAAsHgAALh4AAC4eAAAwHgAAMB4AADIeAAAyHgAANB4AADQeAAA2HgAANh4AADgeAAA4HgAAOh4AADoeAAA8HgAAPB4AAD4eAAA+HgAAQB4AAEAeAABCHgAAQh4AAEQeAABEHgAARh4AAEYeAABIHgAASB4AAEoeAABKHgAATB4AAEweAABOHgAATh4AAFAeAABQHgAAUh4AAFIeAABUHgAAVB4AAFYeAABWHgAAWB4AAFgeAABaHgAAWh4AAFweAABcHgAAXh4AAF4eAABgHgAAYB4AAGIeAABiHgAAZB4AAGQeAABmHgAAZh4AAGgeAABoHgAAah4AAGoeAABsHgAAbB4AAG4eAABuHgAAcB4AAHAeAAByHgAAch4AAHQeAAB0HgAAdh4AAHYeAAB4HgAAeB4AAHoeAAB6HgAAfB4AAHweAAB+HgAAfh4AAIAeAACAHgAAgh4AAIIeAACEHgAAhB4AAIYeAACGHgAAiB4AAIgeAACKHgAAih4AAIweAACMHgAAjh4AAI4eAACQHgAAkB4AAJIeAACSHgAAlB4AAJQeAACeHgAAnh4AAKAeAACgHgAAoh4AAKIeAACkHgAApB4AAKYeAACmHgAAqB4AAKgeAACqHgAAqh4AAKweAACsHgAArh4AAK4eAACwHgAAsB4AALIeAACyHgAAtB4AALQeAAC2HgAAth4AALgeAAC4HgAAuh4AALoeAAC8HgAAvB4AAL4eAAC+HgAAwB4AAMAeAADCHgAAwh4AAMQeAADEHgAAxh4AAMYeAADIHgAAyB4AAMoeAADKHgAAzB4AAMweAADOHgAAzh4AANAeAADQHgAA0h4AANIeAADUHgAA1B4AANYeAADWHgAA2B4AANgeAADaHgAA2h4AANweAADcHgAA3h4AAN4eAADgHgAA4B4AAOIeAADiHgAA5B4AAOQeAADmHgAA5h4AAOgeAADoHgAA6h4AAOoeAADsHgAA7B4AAO4eAADuHgAA8B4AAPAeAADyHgAA8h4AAPQeAAD0HgAA9h4AAPYeAAD4HgAA+B4AAPoeAAD6HgAA/B4AAPweAAD+HgAA/h4AAAgfAAAPHwAAGB8AAB0fAAAoHwAALx8AADgfAAA/HwAASB8AAE0fAABZHwAAWR8AAFsfAABbHwAAXR8AAF0fAABfHwAAXx8AAGgfAABvHwAAiB8AAI8fAACYHwAAnx8AAKgfAACvHwAAuB8AALwfAADIHwAAzB8AANgfAADbHwAA6B8AAOwfAAD4HwAA/B8AAAIhAAACIQAAByEAAAchAAALIQAADSEAABAhAAASIQAAFSEAABUhAAAZIQAAHSEAACQhAAAkIQAAJiEAACYhAAAoIQAAKCEAACohAAAtIQAAMCEAADMhAAA+IQAAPyEAAEUhAABFIQAAYCEAAG8hAACDIQAAgyEAALYkAADPJAAAACwAAC8sAABgLAAAYCwAAGIsAABkLAAAZywAAGcsAABpLAAAaSwAAGssAABrLAAAbSwAAHAsAAByLAAAciwAAHUsAAB1LAAAfiwAAIAsAACCLAAAgiwAAIQsAACELAAAhiwAAIYsAACILAAAiCwAAIosAACKLAAAjCwAAIwsAACOLAAAjiwAAJAsAACQLAAAkiwAAJIsAACULAAAlCwAAJYsAACWLAAAmCwAAJgsAACaLAAAmiwAAJwsAACcLAAAniwAAJ4sAACgLAAAoCwAAKIsAACiLAAApCwAAKQsAACmLAAApiwAAKgsAACoLAAAqiwAAKosAACsLAAArCwAAK4sAACuLAAAsCwAALAsAACyLAAAsiwAALQsAAC0LAAAtiwAALYsAAC4LAAAuCwAALosAAC6LAAAvCwAALwsAAC+LAAAviwAAMAsAADALAAAwiwAAMIsAADELAAAxCwAAMYsAADGLAAAyCwAAMgsAADKLAAAyiwAAMwsAADMLAAAziwAAM4sAADQLAAA0CwAANIsAADSLAAA1CwAANQsAADWLAAA1iwAANgsAADYLAAA2iwAANosAADcLAAA3CwAAN4sAADeLAAA4CwAAOAsAADiLAAA4iwAAOssAADrLAAA7SwAAO0sAADyLAAA8iwAAECmAABApgAAQqYAAEKmAABEpgAARKYAAEamAABGpgAASKYAAEimAABKpgAASqYAAEymAABMpgAATqYAAE6mAABQpgAAUKYAAFKmAABSpgAAVKYAAFSmAABWpgAAVqYAAFimAABYpgAAWqYAAFqmAABcpgAAXKYAAF6mAABepgAAYKYAAGCmAABipgAAYqYAAGSmAABkpgAAZqYAAGamAABopgAAaKYAAGqmAABqpgAAbKYAAGymAACApgAAgKYAAIKmAACCpgAAhKYAAISmAACGpgAAhqYAAIimAACIpgAAiqYAAIqmAACMpgAAjKYAAI6mAACOpgAAkKYAAJCmAACSpgAAkqYAAJSmAACUpgAAlqYAAJamAACYpgAAmKYAAJqmAACapgAAIqcAACKnAAAkpwAAJKcAACanAAAmpwAAKKcAACinAAAqpwAAKqcAACynAAAspwAALqcAAC6nAAAypwAAMqcAADSnAAA0pwAANqcAADanAAA4pwAAOKcAADqnAAA6pwAAPKcAADynAAA+pwAAPqcAAECnAABApwAAQqcAAEKnAABEpwAARKcAAEanAABGpwAASKcAAEinAABKpwAASqcAAEynAABMpwAATqcAAE6nAABQpwAAUKcAAFKnAABSpwAAVKcAAFSnAABWpwAAVqcAAFinAABYpwAAWqcAAFqnAABcpwAAXKcAAF6nAABepwAAYKcAAGCnAABipwAAYqcAAGSnAABkpwAAZqcAAGanAABopwAAaKcAAGqnAABqpwAAbKcAAGynAABupwAAbqcAAHmnAAB5pwAAe6cAAHunAAB9pwAAfqcAAICnAACApwAAgqcAAIKnAACEpwAAhKcAAIanAACGpwAAi6cAAIunAACNpwAAjacAAJCnAACQpwAAkqcAAJKnAACWpwAAlqcAAJinAACYpwAAmqcAAJqnAACcpwAAnKcAAJ6nAACepwAAoKcAAKCnAACipwAAoqcAAKSnAACkpwAApqcAAKanAACopwAAqKcAAKqnAACupwAAsKcAALSnAAC2pwAAtqcAALinAAC4pwAAuqcAALqnAAC8pwAAvKcAAL6nAAC+pwAAwKcAAMCnAADCpwAAwqcAAMSnAADHpwAAyacAAMmnAADQpwAA0KcAANanAADWpwAA2KcAANinAAD1pwAA9acAACH/AAA6/wAAAAQBACcEAQCwBAEA0wQBAHAFAQB6BQEAfAUBAIoFAQCMBQEAkgUBAJQFAQCVBQEAgAwBALIMAQCgGAEAvxgBAEBuAQBfbgEAANQBABnUAQA01AEATdQBAGjUAQCB1AEAnNQBAJzUAQCe1AEAn9QBAKLUAQCi1AEApdQBAKbUAQCp1AEArNQBAK7UAQC11AEA0NQBAOnUAQAE1QEABdUBAAfVAQAK1QEADdUBABTVAQAW1QEAHNUBADjVAQA51QEAO9UBAD7VAQBA1QEARNUBAEbVAQBG1QEAStUBAFDVAQBs1QEAhdUBAKDVAQC51QEA1NUBAO3VAQAI1gEAIdYBADzWAQBV1gEAcNYBAInWAQCo1gEAwNYBAOLWAQD61gEAHNcBADTXAQBW1wEAbtcBAJDXAQCo1wEAytcBAMrXAQAA6QEAIekBADDxAQBJ8QEAUPEBAGnxAQBw8QEAifEBALJREgAFAAAAhFAVAAQAAADaLRIAAgAAAPwCFQABAAAAvlESAAUAAACkUBUALQAAABAuEgAGAAAADFIVADkBAAA4JRIABgAAANRbFQAVAAAAPC4SAAIAAAAMDxUAAQAAANFREgAFAAAAfFwVAJ0CAADWURIABwAAAGRxFQBBAAAAylESAAcAAABscxUAHwIAAOtREgAJAAAAZIQVABMAAAALUhIABQAAAPyEFQBNAAAA/1ESAAMAAABkhxUAAgAAAAdSEgACAAAAdIcVAAkAAAASUhIABQAAALyHFQCMAgAANOQRAGYAAAB3AwAAHAAAADTkEQBmAAAAqAMAAC0AAAA05BEAZgAAAKoDAAAJAAAANOQRAGYAAACrAwAACQAAADTkEQBmAAAArgMAAA8AAAA05BEAZgAAAKADAAANAAAANOQRAGYAAACdAwAADQAAADQGAAAMAAAABAAAAFkGAABuBwAAgwYAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3JlZ2V4LXN5bnRheC0wLjguNC9zcmMvdXRmOC5yc2ludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGU6IGludmFsaWQgZW5jb2RlZCBsZW5ndGg6IAAAAOedFQBCAAAAhJ0VAGMAAACDAAAAEgAAAISdFQBjAAAAtAEAAC0AAACEnRUAYwAAALUBAAArAAAAhJ0VAGMAAAC4AQAACQBB/LzWAAvOEAEAAABvBwAAVHJ5RnJvbUNoYXJFcnJvcmV4Y2VlZGVkIHRoZSBtYXhpbXVtIG51bWJlciBvZiBjYXB0dXJpbmcgZ3JvdXBzICgAAACUnhUAMQAAAJTaGAABAAAAaW52YWxpZCBlc2NhcGUgc2VxdWVuY2UgZm91bmQgaW4gY2hhcmFjdGVyIGNsYXNz2J4VADAAAABpbnZhbGlkIGNoYXJhY3RlciBjbGFzcyByYW5nZSwgdGhlIHN0YXJ0IG11c3QgYmUgPD0gdGhlIGVuZAAQnxUAOwAAAGludmFsaWQgcmFuZ2UgYm91bmRhcnksIG11c3QgYmUgYSBsaXRlcmFsAAAAVJ8VACkAAAB1bmNsb3NlZCBjaGFyYWN0ZXIgY2xhc3OInxUAGAAAAGRlY2ltYWwgbGl0ZXJhbCBlbXB0eQAAAKifFQAVAAAAZGVjaW1hbCBsaXRlcmFsIGludmFsaWQAyJ8VABcAAABoZXhhZGVjaW1hbCBsaXRlcmFsIGVtcHR5AAAA6J8VABkAAABoZXhhZGVjaW1hbCBsaXRlcmFsIGlzIG5vdCBhIFVuaWNvZGUgc2NhbGFyIHZhbHVlAAAADKAVADEAAABpbnZhbGlkIGhleGFkZWNpbWFsIGRpZ2l0AAAASKAVABkAAABpbmNvbXBsZXRlIGVzY2FwZSBzZXF1ZW5jZSwgcmVhY2hlZCBlbmQgb2YgcGF0dGVybiBwcmVtYXR1cmVseQAAbKAVAD4AAAB1bnJlY29nbml6ZWQgZXNjYXBlIHNlcXVlbmNltKAVABwAAABkYW5nbGluZyBmbGFnIG5lZ2F0aW9uIG9wZXJhdG9yANigFQAfAAAAZHVwbGljYXRlIGZsYWcAAAChFQAOAAAAZmxhZyBuZWdhdGlvbiBvcGVyYXRvciByZXBlYXRlZAAYoRUAHwAAAGV4cGVjdGVkIGZsYWcgYnV0IGdvdCBlbmQgb2YgcmVnZXgAAEChFQAiAAAAdW5yZWNvZ25pemVkIGZsYWcAAABsoRUAEQAAAGR1cGxpY2F0ZSBjYXB0dXJlIGdyb3VwIG5hbWWIoRUAHAAAAGVtcHR5IGNhcHR1cmUgZ3JvdXAgbmFtZayhFQAYAAAAaW52YWxpZCBjYXB0dXJlIGdyb3VwIGNoYXJhY3RlcgDMoRUAHwAAAHVuY2xvc2VkIGNhcHR1cmUgZ3JvdXAgbmFtZQD0oRUAGwAAAHVuY2xvc2VkIGdyb3VwAAAYohUADgAAAHVub3BlbmVkIGdyb3VwAAAwohUADgAAAGV4Y2VlZCB0aGUgbWF4aW11bSBudW1iZXIgb2YgbmVzdGVkIHBhcmVudGhlc2VzL2JyYWNrZXRzICgAAEiiFQA6AAAAlNoYAAEAAABpbnZhbGlkIHJlcGV0aXRpb24gY291bnQgcmFuZ2UsIHRoZSBzdGFydCBtdXN0IGJlIDw9IHRoZSBlbmSUohUAPAAAAHJlcGV0aXRpb24gcXVhbnRpZmllciBleHBlY3RzIGEgdmFsaWQgZGVjaW1hbAAAANiiFQAtAAAAdW5jbG9zZWQgY291bnRlZCByZXBldGl0aW9uABCjFQAbAAAAcmVwZXRpdGlvbiBvcGVyYXRvciBtaXNzaW5nIGV4cHJlc3Npb24AADSjFQAmAAAAc3BlY2lhbCB3b3JkIGJvdW5kYXJ5IGFzc2VydGlvbiBpcyBlaXRoZXIgdW5jbG9zZWQgb3IgY29udGFpbnMgYW4gaW52YWxpZCBjaGFyYWN0ZXIAZKMVAFMAAAB1bnJlY29nbml6ZWQgc3BlY2lhbCB3b3JkIGJvdW5kYXJ5IGFzc2VydGlvbiwgdmFsaWQgY2hvaWNlcyBhcmU6IHN0YXJ0LCBlbmQsIHN0YXJ0LWhhbGYgb3IgZW5kLWhhbGYAwKMVAGMAAABmb3VuZCBlaXRoZXIgdGhlIGJlZ2lubmluZyBvZiBhIHNwZWNpYWwgd29yZCBib3VuZGFyeSBvciBhIGJvdW5kZWQgcmVwZXRpdGlvbiBvbiBhIFxiIHdpdGggYW4gb3BlbmluZyBicmFjZSwgYnV0IG5vIGNsb3NpbmcgYnJhY2UAAAAspBUAgQAAAGludmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgY2xhc3MAuKQVAB8AAABiYWNrcmVmZXJlbmNlcyBhcmUgbm90IHN1cHBvcnRlZOCkFQAgAAAAbG9vay1hcm91bmQsIGluY2x1ZGluZyBsb29rLWFoZWFkIGFuZCBsb29rLWJlaGluZCwgaXMgbm90IHN1cHBvcnRlZAAIpRUAQwAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3JlZ2V4LXN5bnRheC0wLjguNC9zcmMvYXN0L21vZC5ycwAAVKUVAGYAAAB/AgAAIgAAAFSlFQBmAAAAmAIAACIAAABhbG51bWFzY2lpYmxhbmtjbnRybGRpZ2l0Z3JhcGhsb3dlcnByaW50cHVuY3RzcGFjZXVwcGVyeGRpZ2l0AAAAVKUVAGYAAADzBAAAIwAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3JlZ2V4LXN5bnRheC0wLjguNC9zcmMvaGlyL21vZC5ycwAALKYVAGYAAAC/BAAALgAAACymFQBmAAAAwAQAACoAAAA0BgAADAAAAAQAAABZBgAAcAcAAIMGAEHUzdYAC4UHAQAAADgGAAByZWdleCBwYXJzZSBlcnJvcjoKANymFQATAAAAZXJyb3I6IAD4phUABwAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3JlZ2V4LXN5bnRheC0wLjguNC9zcmMvZXJyb3IucnMBAAAAAAAAAOZDGAABAAAAb24gbGluZSAgKGNvbHVtbiApIHRocm91Z2ggbGluZSB8pxUACAAAAISnFQAJAAAAjacVAA8AAACEpxUACQAAAJTaGAABAAAACKcVAGQAAAC7AAAAGQAAAAinFQBkAAAAvAAAABkAAAAIpxUAZAAAAN0AAAAiAAAACKcVAGQAAAD4AAAAPwAAANRFGABNAAAAFQoAACIAAAAAAAAA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AAB3BwAAeAcAAHkHAAB1bml0YSBib29sZWFuYSBzdHJpbmdieXRlIGFycmF5Ym9vbGVhbiBgbwQWAAkAAAAcDhgAAQAAAGludGVnZXIgYAAAAIgEFgAJAAAAHA4YAAEAAABmbG9hdGluZyBwb2ludCBgpAQWABAAAAAcDhgAAQAAAGNoYXJhY3RlciBgAMQEFgALAAAAHA4YAAEAAABzdHJpbmcgAOAEFgAHAAAAdW5pdCB2YWx1ZU9wdGlvbiB2YWx1ZW5ld3R5cGUgc3RydWN0c2VxdWVuY2V1bml0IHZhcmlhbnRuZXd0eXBlIHZhcmlhbnR0dXBsZSB2YXJpYW50c3RydWN0IHZhcmlhbnRleHBsaWNpdCBwYW5pYxwOGAABAAAAHA4YAAEAAABgIG9yIGAAABwOGAABAAAAcAUWAAYAAAAcDhgAAQAAAG9uZSBvZiAuMAAAADQJFgBfAAAAWAIAADAAAAA0BgAADAAAAAQAAABZBgAAggYAAHoHAEHMi9gAC7kIAQAAADgGAABFT0Ygd2hpbGUgcGFyc2luZyBhIGxpc3RFT0Ygd2hpbGUgcGFyc2luZyBhbiBvYmplY3RFT0Ygd2hpbGUgcGFyc2luZyBhIHN0cmluZ0VPRiB3aGlsZSBwYXJzaW5nIGEgdmFsdWVleHBlY3RlZCBgOmBleHBlY3RlZCBgLGAgb3IgYF1gZXhwZWN0ZWQgYCxgIG9yIGB9YGV4cGVjdGVkIGlkZW50ZXhwZWN0ZWQgdmFsdWVleHBlY3RlZCBgImBpbnZhbGlkIGVzY2FwZWludmFsaWQgbnVtYmVybnVtYmVyIG91dCBvZiByYW5nZWludmFsaWQgdW5pY29kZSBjb2RlIHBvaW50Y29udHJvbCBjaGFyYWN0ZXIgKFx1MDAwMC1cdTAwMUYpIGZvdW5kIHdoaWxlIHBhcnNpbmcgYSBzdHJpbmdrZXkgbXVzdCBiZSBhIHN0cmluZ2ludmFsaWQgdmFsdWU6IGV4cGVjdGVkIGtleSB0byBiZSBhIG51bWJlciBpbiBxdW90ZXNmbG9hdCBrZXkgbXVzdCBiZSBmaW5pdGUgKGdvdCBOYU4gb3IgKy8taW5mKWxvbmUgbGVhZGluZyBzdXJyb2dhdGUgaW4gaGV4IGVzY2FwZXRyYWlsaW5nIGNvbW1hdHJhaWxpbmcgY2hhcmFjdGVyc3VuZXhwZWN0ZWQgZW5kIG9mIGhleCBlc2NhcGVyZWN1cnNpb24gbGltaXQgZXhjZWVkZWQgYXQgbGluZSAgY29sdW1uIAAAAAEAAAAAAAAACAgWAAkAAAARCBYACAAAAEVycm9yKCwgbGluZTogLCBjb2x1bW46IDQIFgAGAAAAOggWAAgAAABCCBYACgAAAJTaGAABAAAAMDAwMTAyMDMwNDA1MDYwNzA4MDkxMDExMTIxMzE0MTUxNjE3MTgxOTIwMjEyMjIzMjQyNTI2MjcyODI5MzAzMTMyMzMzNDM1MzYzNzM4Mzk0MDQxNDI0MzQ0NDU0NjQ3NDg0OTUwNTE1MjUzNTQ1NTU2NTc1ODU5NjA2MTYyNjM2NDY1NjY2NzY4Njk3MDcxNzI3Mzc0NzU3Njc3Nzg3OTgwODE4MjgzODQ4NTg2ODc4ODg5OTA5MTkyOTM5NDk1OTY5Nzk4OTkvcnVzdGMvOTBiMzVhNjIzOWMzZDhiZGFiYzUzMGE2YTA4MTZmN2ZmODlhMGFhZi9saWJyYXJ5L2FsbG9jL3NyYy9jb2xsZWN0aW9ucy9idHJlZS9uYXZpZ2F0ZS5ycwA0CRYAXwAAAMYAAAAnAAAANAkWAF8AAAAWAgAALwAAADQJFgBfAAAAoQAAACQAAAA0BgAADAAAAAQAAABZBgAAagcAAHoHAABpbnZhbGlkIHR5cGU6ICwgZXhwZWN0ZWQgAAAA3AkWAA4AAADqCRYACwBBkJTYAAt9AQAAAHsHAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9zZXJkZS13YXNtLWJpbmRnZW4tMC42LjUvc3JjL2xpYi5ycxgKFgBoAAAANQAAAA4AQZiV2AALsgIBAAAAaQYAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3NtYXJ0c3RyaW5nLTEuMC4xL3NyYy9pbmxpbmUucnOgChYAZAAAACsAAAArAAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvc21hcnRzdHJpbmctMS4wLjEvc3JjL2JveGVkLnJzABQLFgBjAAAAQQAAAA4AAAAUCxYAYwAAAHYAAAAkAAAAaHR0cDpodHRwczoAAQAAAAAAAADQCxgAAQAAADQGAAAMAAAABAAAAFkGAAB8BwAAegcAQdSX2AALowMBAAAAOAYAAC9ydXN0Yy85MGIzNWE2MjM5YzNkOGJkYWJjNTMwYTZhMDgxNmY3ZmY4OWEwYWFmL2xpYnJhcnkvY29yZS9zcmMvc2xpY2Uvc29ydC91bnN0YWJsZS9oZWFwc29ydC5yc9wLFgBgAAAAFAAAAA8AAADcCxYAYAAAABwAAAAdAAAAL3J1c3RjLzkwYjM1YTYyMzljM2Q4YmRhYmM1MzBhNmEwODE2ZjdmZjg5YTBhYWYvbGlicmFyeS9jb3JlL3NyYy9zbGljZS9zb3J0L3Vuc3RhYmxlL3F1aWNrc29ydC5ycwAAAFwMFgBhAAAANwAAABsAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9zZXJkZV9qc29uLTEuMC4xMzMvc3JjL3Nlci5ycwAA0AwWAGIAAAANBgAAEgAAANAMFgBiAAAAMAgAADMAAAB1dXV1dXV1dWJ0bnVmcnV1dXV1dXV1dXV1dXV1dXV1dQAAIgBBsJvYAAsBXABB1JzYAAulCNAMFgBiAAAAIwgAAEAAAABcIlx0bGluZWNvbHVtbm9mZnNldG1hcG5hbWVzbWFwcGluZ3N2ZXJzaW9uZmlsZXNvdXJjZXNzb3VyY2VSb290c291cmNlc0NvbnRlbnRzZWN0aW9uc3JhbmdlTWFwcGluZ3N4X2ZhY2Vib29rX29mZnNldHN4X21ldHJvX21vZHVsZV9wYXRoc3hfZmFjZWJvb2tfc291cmNlc2RlYnVnX2lkYmFkIGpzb246IAAAAAcPFgAKAAAAbGVmdG92ZXIgY3VyL3NoaWZ0IGluIHZscSBkZWNvZGUcDxYAIAAAAHZscSBkZWNvZGUgZGlkIG5vdCBwcm9kdWNlIGFueSB2YWx1ZXMAAABEDxYAJQAAAHZscSBkZWNvZGUgY2F1c2VkIGFuIG92ZXJmbG93AAAAdA8WAB0AAABnb3QgIHNlZ21lbnRzLCBleHBlY3RlZCA0IG9yIDUAAJwPFgAEAAAAoA8WABoAAABiYWQgcmVmZXJlbmNlIHRvIHNvdXJjZSAjAAAAzA8WABkAAABiYWQgcmVmZXJlbmNlIHRvIG5hbWUgIwDwDxYAFwAAAGVuY291bnRlcmVkIGluY29tcGF0aWJsZSBzb3VyY2VtYXAgZm9ybWF0AAAAEBAWACkAAAB0aGUgcHJvdmlkZWQgZGF0YSBVUkwgaXMgaW52YWxpZEQQFgAgAAAAY2Fubm90IGZsYXR0ZW4gdGhlIGluZGV4ZWQgc291cmNlbWFwOiAAAGwQFgAmAAAAaW52YWxpZCBtYWdpYyBudW1iZXIgZm9yIHJhbSBidW5kbGUAnBAWACMAAABpbnZhbGlkIG1vZHVsZSBpbmRleCBpbiByYW0gYnVuZGxlAADIEBYAIgAAAGludmFsaWQgcmFtIGJ1bmRsZSBtb2R1bGUgZW50cnkA9BAWAB8AAABub3QgYSByYW0gYnVuZGxlHBEWABAAAABpbnZhbGlkIHJhbmdlIG1hcHBpbmcgaW5kZXg6IAAAADQRFgAdAAAAaW52YWxpZCBiYXNlNjQgY2hhcmFjdGVyOiAAAFwRFgAaAAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvd3l6LTAuNS4xL3NyYy9jb211LnJzAACAERYAWgAAACcBAAACAAAATnVsbFB0ckVycm9ydTgvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9ydXN0Yy1oYXNoLTEuMS4wL3NyYy9saWIucnMAAPoRFgBgAAAAZwAAABsAAAD6ERYAYAAAAF8AAAAbAEGEpdgAC9YhAQAAAGkGAABcRxgASQAAANsHAAApAAAATWlzYWxpZ25FcnJvcgAAAAEAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9zb3VyY2VtYXAtOS4wLjAvc3JjL2J1aWxkZXIucnNDYW5ub3Qgc2V0IHNvdXJjZXMgZm9yIHRvbWJzdG9uZSBzb3VyY2UgaWQAAACwEhYAYwAAAHkAAAAJAAAAsBIWAGMAAAB9AAAAHQAAAGNhbm5vdCAgYml0cyBmcm9tIGEgLWJpdCByZWdpb24AYBMWAAcAAAByCxgAAQAAAGcTFgANAAAAdBMWAAsAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9iaXR2ZWMtMS4wLjEvc3JjL2ZpZWxkLnJzAACgExYAXgAAAA4CAAACAAAAcmFuZ2UgIG91dCBvZiBib3VuZHM6IAAAEBQWAAYAAAAWFBYAEAAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2JpdHZlYy0xLjAuMS9zcmMvc2xpY2UvYXBpLnJzAAA4FBYAYgAAAI4KAAABAAAAWwYAABQAAAAEAAAAfQcAAAAAAAAIAAAABAAAAH4HAABJbmNsdWRlZEV4Y2x1ZGVkVW5ib3VuZGVkL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvYml0dmVjLTEuMC4xL3NyYy9zbGljZS5ycwDlFBYAXgAAAE8BAAAjAAAAaW5kZXggIG91dCBvZiByYW5nZTogAAAAVBUWAAYAAABaFRYADwAAAOUUFgBeAAAAMQYAAAMAAABsb2FkQml0U3BhbkVycm9yPD46OpAVFgANAAAAnRUWAAMAAABNaXNhbGlnbmVkVG9vTG9uZ1Rvb0hpZ2gvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9zb3VyY2VtYXAtOS4wLjAvc3JjL2VuY29kZXIucnNpbnZhbGlkIGJ5dGUAyBUWAGMAAAAjAAAAEgAAAGludmFsaWQgdXRmOMgVFgBjAAAAZgAAACEAAABBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvAAAAAAQAAAAEAAAAfwcAAC9ydXN0L2RlcHMvZGxtYWxsb2MtMC4yLjYvc3JjL2RsbWFsbG9jLnJzYXNzZXJ0aW9uIGZhaWxlZDogcHNpemUgPj0gc2l6ZSArIG1pbl9vdmVyaGVhZAC0FhYAKQAAAKgEAAAJAAAAYXNzZXJ0aW9uIGZhaWxlZDogcHNpemUgPD0gc2l6ZSArIG1heF9vdmVyaGVhZAAAtBYWACkAAACuBAAADQAAAHVzZSBvZiBzdGQ6OnRocmVhZDo6Y3VycmVudCgpIGlzIG5vdCBwb3NzaWJsZSBhZnRlciB0aGUgdGhyZWFkJ3MKICAgICAgICAgbG9jYWwgZGF0YSBoYXMgYmVlbiBkZXN0cm95ZWQAXBcWAGcAAABzdGQvc3JjL3RocmVhZC9jdXJyZW50LnJzAAAAzBcWABkAAADtAAAACQAAAEFjY2Vzc0Vycm9yc3RkL3NyYy90aHJlYWQvbW9kLnJzZmFpbGVkIHRvIGdlbmVyYXRlIHVuaXF1ZSB0aHJlYWQgSUQ6IGJpdHNwYWNlIGV4aGF1c3RlZAAYGBYANwAAAAMYFgAVAAAAkwQAAA0AAABzdGQvc3JjL2JhY2t0cmFjZS5yc3Vuc3VwcG9ydGVkIGJhY2t0cmFjZWRpc2FibGVkIGJhY2t0cmFjZQBoGBYAFAAAAIoBAAAdAAAAgAcAABAAAAAEAAAAgQcAAIIHAABlbnRpdHkgbm90IGZvdW5kcGVybWlzc2lvbiBkZW5pZWRjb25uZWN0aW9uIHJlZnVzZWRjb25uZWN0aW9uIHJlc2V0aG9zdCB1bnJlYWNoYWJsZW5ldHdvcmsgdW5yZWFjaGFibGVjb25uZWN0aW9uIGFib3J0ZWRub3QgY29ubmVjdGVkYWRkcmVzcyBpbiB1c2VhZGRyZXNzIG5vdCBhdmFpbGFibGVuZXR3b3JrIGRvd25icm9rZW4gcGlwZWVudGl0eSBhbHJlYWR5IGV4aXN0c29wZXJhdGlvbiB3b3VsZCBibG9ja25vdCBhIGRpcmVjdG9yeWlzIGEgZGlyZWN0b3J5ZGlyZWN0b3J5IG5vdCBlbXB0eXJlYWQtb25seSBmaWxlc3lzdGVtIG9yIHN0b3JhZ2UgbWVkaXVtZmlsZXN5c3RlbSBsb29wIG9yIGluZGlyZWN0aW9uIGxpbWl0IChlLmcuIHN5bWxpbmsgbG9vcClzdGFsZSBuZXR3b3JrIGZpbGUgaGFuZGxlaW52YWxpZCBpbnB1dCBwYXJhbWV0ZXJpbnZhbGlkIGRhdGF0aW1lZCBvdXR3cml0ZSB6ZXJvbm8gc3RvcmFnZSBzcGFjZXNlZWsgb24gdW5zZWVrYWJsZSBmaWxlZmlsZXN5c3RlbSBxdW90YSBleGNlZWRlZGZpbGUgdG9vIGxhcmdlcmVzb3VyY2UgYnVzeWV4ZWN1dGFibGUgZmlsZSBidXN5ZGVhZGxvY2tjcm9zcy1kZXZpY2UgbGluayBvciByZW5hbWV0b28gbWFueSBsaW5rc2ludmFsaWQgZmlsZW5hbWVhcmd1bWVudCBsaXN0IHRvbyBsb25nb3BlcmF0aW9uIGludGVycnVwdGVkdW5zdXBwb3J0ZWR1bmV4cGVjdGVkIGVuZCBvZiBmaWxlb3V0IG9mIG1lbW9yeWluIHByb2dyZXNzb3RoZXIgZXJyb3J1bmNhdGVnb3JpemVkIGVycm9yT3NLaW5kQ3VzdG9tIChvcyBlcnJvciAAAQAAAAAAAADMGxYACwAAAJTaGAABAAAAOiBzdGQvc3JjL3BhdGgucnMAAADyGxYADwAAANICAAAhAAAA8hsWAA8AAAD5AgAALAAAAPIbFgAPAAAA+wIAACYAAADyGxYADwAAAAgDAAAnAAAA8hsWAA8AAAAUAwAAJwAAAPIbFgAPAAAAfgMAACkAAADyGxYADwAAAH8DAAArAAAA8hsWAA8AAACUAwAALwAAAPIbFgAPAAAAjAMAAC8AAADyGxYADwAAAJoDAAArAAAAc3RkL3NyYy9zeW5jL2xhenlfbG9jay5ycwAAAKQcFgAZAAAA0AAAABMAAABjYW5ub3QgcmVjdXJzaXZlbHkgYWNxdWlyZSBtdXRleNAcFgAgAAAAc3RkL3NyYy9zeXMvc3luYy9tdXRleC9ub190aHJlYWRzLnJz+BwWACQAAAAUAAAACQAAAHN0ZC9zcmMvc3luYy9vbmNlLnJzLB0WABQAAADZAAAAFAAAADx1bmtub3duPu+/vXN0ZC9zcmMvLi4vLi4vYmFja3RyYWNlL3NyYy9zeW1ib2xpemUvbW9kLnJzXB0WACwAAABnAQAAMAAAAAEAAAAAAAAA8BsWAAIAAAAgLSAAAQAAAAAAAACoHRYAAwAAACAgICAgICAgICAgICAgICAgICBhdCAAAEUOGAABAAAATm90Rm91bmRQZXJtaXNzaW9uRGVuaWVkQ29ubmVjdGlvblJlZnVzZWRDb25uZWN0aW9uUmVzZXRIb3N0VW5yZWFjaGFibGVOZXR3b3JrVW5yZWFjaGFibGVDb25uZWN0aW9uQWJvcnRlZE5vdENvbm5lY3RlZEFkZHJJblVzZUFkZHJOb3RBdmFpbGFibGVOZXR3b3JrRG93bkJyb2tlblBpcGVBbHJlYWR5RXhpc3RzV291bGRCbG9ja05vdEFEaXJlY3RvcnlJc0FEaXJlY3RvcnlEaXJlY3RvcnlOb3RFbXB0eVJlYWRPbmx5RmlsZXN5c3RlbUZpbGVzeXN0ZW1Mb29wU3RhbGVOZXR3b3JrRmlsZUhhbmRsZUludmFsaWRJbnB1dEludmFsaWREYXRhVGltZWRPdXRXcml0ZVplcm9TdG9yYWdlRnVsbE5vdFNlZWthYmxlRmlsZXN5c3RlbVF1b3RhRXhjZWVkZWRGaWxlVG9vTGFyZ2VSZXNvdXJjZUJ1c3lFeGVjdXRhYmxlRmlsZUJ1c3lEZWFkbG9ja0Nyb3NzZXNEZXZpY2VzVG9vTWFueUxpbmtzSW52YWxpZEZpbGVuYW1lQXJndW1lbnRMaXN0VG9vTG9uZ0ludGVycnVwdGVkVW5zdXBwb3J0ZWRVbmV4cGVjdGVkRW9mT3V0T2ZNZW1vcnlJblByb2dyZXNzT3RoZXJVbmNhdGVnb3JpemVkb3BlcmF0aW9uIHN1Y2Nlc3NmdWxPbmNlIGluc3RhbmNlIGhhcyBwcmV2aW91c2x5IGJlZW4gcG9pc29uZWQAABggFgAqAAAAb25lLXRpbWUgaW5pdGlhbGl6YXRpb24gbWF5IG5vdCBiZSBwZXJmb3JtZWQgcmVjdXJzaXZlbHlMIBYAOAAAABAAAAARAAAAEgAAABAAAAAQAAAAEwAAABIAAAANAAAADgAAABUAAAAMAAAACwAAABUAAAAVAAAADwAAAA4AAAATAAAAJgAAADgAAAAZAAAAFwAAAAwAAAAJAAAACgAAABAAAAAXAAAAGQAAAA4AAAANAAAAFAAAAAgAAAAbAAAADgAAABAAAAAWAAAAFQAAAAsAAAAWAAAADQAAAAsAAAALAAAAEwAAAMgYFgDYGBYA6RgWAPsYFgALGRYAGxkWAC4ZFgBAGRYATRkWAFsZFgBwGRYAfBkWAIcZFgCcGRYAsRkWAMAZFgDOGRYA4RkWAAcaFgA/GhYAWBoWAG8aFgB7GhYAhBoWAI4aFgCeGhYAtRoWAM4aFgDcGhYA6RoWAP0aFgAFGxYAIBsWAC4bFgA+GxYAVBsWAGkbFgB0GxYAihsWAJcbFgCiGxYArRsWAAgAAAAQAAAAEQAAAA8AAAAPAAAAEgAAABEAAAAMAAAACQAAABAAAAALAAAACgAAAA0AAAAKAAAADQAAAAwAAAARAAAAEgAAAA4AAAAWAAAADAAAAAsAAAAIAAAACQAAAAsAAAALAAAAFwAAAAwAAAAMAAAAEgAAAAgAAAAOAAAADAAAAA8AAAATAAAACwAAAAsAAAANAAAACwAAAAoAAAAFAAAADQAAANwdFgDkHRYA9B0WAAUeFgAUHhYAIx4WADUeFgBGHhYAUh4WAFseFgBrHhYAdh4WAIAeFgCNHhYAlx4WAKQeFgCwHhYAwR4WANMeFgDhHhYA9x4WAAMfFgAOHxYAFh8WAB8fFgAqHxYANR8WAEwfFgBYHxYAZB8WAHYfFgB+HxYAjB8WAJgfFgCnHxYAuh8WAMUfFgDQHxYA3R8WAOgfFgDyHxYA9x8WAAAAAAAEAAAABAAAAIMHAACEBwAAhQcAADQGAAAMAAAABAAAAFkGAAB8BwAAegcAQeTG2AALFgEAAAA4BgAAAAAAAAQAAAAEAAAAhgcAQYTH2AALhQ0BAAAAiAcAAIkHAACKBwAA1OAXAGcAAAAeAQAAJwAAANTgFwBnAAAAQwEAADEAAAA6IGJwb3MgPSA7IGxpbmVicG9zID0gAAABAAAAAAAAALQjFgAJAAAAvSMWAA0AAABxCxgAAQAAANTgFwBnAAAARAEAABEAAADU4BcAZwAAAFoBAAAZAAAA1OAXAGcAAAB8AQAARgAAAG1hcC5zdGFydF9wb3MgPSA7IHRvdGFsX2V4dHJhX2J5dGVzID0gOyBicG9zID0gABwkFgAQAAAALCQWABYAAABCJBYACQAAANTgFwBnAAAA5QMAAAkAAADU4BcAZwAAACIEAAA0AAAA1OAXAGcAAAAOBAAANAAAANTgFwBnAAAATwQAABAAAADU4BcAZwAAAA8FAAA6AAAA1OAXAGcAAAAxBQAAKgAAANTgFwBnAAAAcAUAABAAAABOb0ZpbGVGb3JubyBlcnJvcnMgZW5jb3VudGVyZWQgZXZlbiB0aG91Z2ggYGRlbGF5X3NwYW5fYnVnYCBpc3N1ZWQAAN0kFgA5AAAAzCsWAGcAAACYAQAAEQAAAGVuY291bnRlcmVkIGVycm9yIHdpdGggYC1aIHRyZWF0X2Vycl9hc19idWcAMCUWACsAAADMKxYAZwAAAGUCAAANAAAATWFjaGluZUFwcGxpY2FibGVIYXNQbGFjZWhvbGRlcnNNYXliZUluY29ycmVjdFVuc3BlY2lmaWVkQ29kZVN1Z2dlc3Rpb25zdWJzdGl0dXRpb25zbXNnc2hvd19jb2RlX3doZW5faW5saW5lYXBwbGljYWJpbGl0eVN1YnN0aXR1dGlvbnBhcnRzU3Vic3RpdHV0aW9uUGFydHNuaXBwZXQAAACLBwAAYXNzZXJ0aW9uIGZhaWxlZDogc291cmNlX2ZpbGVfZW5kID49IGxhc3RfbGluZV9zdGFydC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3N3Y19jb21tb24tOC4wLjAvc3JjL3N5bnRheF9wb3MvYW5hbHl6ZV9zb3VyY2VfZmlsZS5ycwBQJhYAewAAACoAAAAJAAAAUCYWAHsAAABqAAAAGAAAAFAmFgB7AAAAagAAAC0AAAAuLgAAAQAAAAAAAAD8JhYAAgAAACBtYWNyb3M+wgsYAAEAAAAQJxYACAAAADxxdW90ZSBleHBhbnNpb24+AAAAKCcWABEAAAA8YW5vbj4AAEQnFgAGAAAAPG1hY3JvIGV4cGFuc2lvbj4AAABUJxYAEQAAADxwcm9jLW1hY3JvIHNvdXJjZSBjb2RlPnAnFgAYAAAAwgsYAAEAAADFCxgAAQAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3N3Y19jb21tb24tOC4wLjAvc3JjL3N5bnRheF9wb3MucnNhc3NlcnRpb24gZmFpbGVkOiBsaW5lX2luZGV4IDwgYW5hbHlzaXMubGluZXMubGVuKCkgYXMgaXNpemUAoCcWAGcAAADWAwAACQAAAIwHAABQcmltYXJ5U3BhbkxhYmVsQnl0ZVBvc0Vycm9yIGNvbnN0cnVjdGVkIGJ1dCBub3QgZW1pdHRlZC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3N3Y19jb21tb24tOC4wLjAvc3JjL2Vycm9ycy9kaWFnbm9zdGljX2J1aWxkZXIucnMAAJAoFgB2AAAAWQEAAA0AAABNZXNzYWdlTGludFN1YkRpYWdub3N0aWNyZW5kZXJfc3Bhbi9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3J1c3RjLWhhc2gtMi4xLjAvc3JjL2xpYi5ycwA7KRYAYAAAACMBAAAcAAAAOykWAGAAAAAkAQAAKAAAADspFgBgAAAAJQEAACgAAAA7KRYAYAAAAAgBAAArAAAAOykWAGAAAAAIAQAAQgAAADspFgBgAAAABQEAACsAAAA7KRYAYAAAAAUBAABCAEGU1NgAC9EHAQAAAHUGAABUcnlGcm9tU2xpY2VFcnJvci9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3N3Y19jb21tb24tOC4wLjAvc3JjL2NvbW1lbnRzLnJzAAAtKhYAZQAAAKcBAAAWAAAALSoWAGUAAACsAQAADgAAAC0qFgBlAAAAswEAACcAAAAtKhYAZQAAAL8BAAAyAAAALSoWAGUAAADHAQAAFgAAAC0qFgBlAAAAywEAABYAAAAtKhYAZQAAAM8BAAAXAAAALSoWAGUAAADUAQAADgAAAC0qFgBlAAAA2wEAACgAAAAtKhYAZQAAAOcBAAAzAAAALSoWAGUAAADvAQAAFwAAAC0qFgBlAAAA8wEAABcAAAAtKhYAZQAAAPkBAAAsAAAAY2Fubm90IGFkZCBwdXJlIGNvbW1lbnQgdG8gemVybyBwb3NpdGlvbmQrFgAoAAAALSoWAGUAAAD3AQAACQAAACNfX0BfXwAALSoWAGUAAAAxAgAALQAAAC0qFgBlAAAAZQIAAC4AAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9zd2NfY29tbW9uLTguMC4wL3NyYy9lcnJvcnMvbW9kLnJzAMwrFgBnAAAAUAMAAB8AAADMdxYAbwAAAM4AAAAdAAAAzHcWAG8AAAB9AQAALQAAAAAAAAAEAAAABAAAAI4HAAAAAAAABAAAAAQAAAAbAQAAb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybYQsFgAoAAAAJAAAAAIAAACsLBYAL3J1c3RjLzkwYjM1YTYyMzljM2Q4YmRhYmM1MzBhNmEwODE2ZjdmZjg5YTBhYWYvbGlicmFyeS9zdGQvc3JjL3BhdGgucnMAwCwWAEcAAACYDAAAGwAAAMAsFgBHAAAAuwwAACEAAADALBYARwAAAK4MAAAiAAAATWFpbkhlYWRlck1zZ0hlYWRlck1zZ0xpbmVBbmRDb2x1bW5MaW5lTnVtYmVyUXVvdGF0aW9uVW5kZXJsaW5lUHJpbWFyeVVuZGVybGluZVNlY29uZGFyeUxhYmVsUHJpbWFyeUxhYmVsU2Vjb25kYXJ5T2xkU2Nob29sTm90ZVRleHROb1N0eWxlTGV2ZWxIaWdobGlnaHTMdxYAbwAAAHQBAAANAAAAsxAYAAEAQfDb2AAL6QUBAAAAjwcAAJAHAACRBwAAHzEYAEsAAACWBwAAJAAAAGFzc2VydGlvbiBmYWlsZWQ6IHNlbGYuaXNfY2hhcl9ib3VuZGFyeShlbmQpHzEYAEsAAACYBwAACQAAAAAAAAAMAAAABAAAAJIHAACTBwAAAAAAAAwAAAAEAAAAlAcAAJUHAABhc3NlcnRpb24gZmFpbGVkOiBzdGFydCA8PSBlbmQvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9zd2NfY29tbW9uLTguMC4wL3NyYy9pbnB1dC5yc5IuFgBiAAAAHwAAAAkAAAAidXNlIHN0cmljdCIndXNlIHN0cmljdCcAAAAABwAAABQAAAAaAAAAAQAAAAAAAAASAAAACgAAAAAAAAAeAAAAAQAAAAwAAAAB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YHN1cGVyKClgSW52YWxpZCBhY2Nlc3MgdG8gc3VwZXJJbmRleCBzdXBlciB3aXRoIHByaXZhdGUgbmFtZSBpcyBub3QgYWxsb3dlZCduZXcudGFyZ2V0JyBpcyBvbmx5IGFsbG93ZWQgaW4gdGhlIGJvZHkgb2YgYSBmdW5jdGlvbiBkZWNsYXJhdGlvbiwgZnVuY3Rpb24gZXhwcmVzc2lvbiwgb3IgY2xhc3MuSW1wb3J0IGlzIG5vdCBhbGxvd2VkIGhlcmVBbiBhcnJvdyBmdW5jdGlvbiBpcyBub3QgYWxsb3dlZCBoZXJlYGV4cG9ydGAgaXMgbm90IGFsbG93ZWQgaGVyZUEgZ2V0dGVyIG9yIGEgc2V0dGVyIGNhbm5vdCBiZSByZWFkb25seUEgZ2V0dGVyIG9yIGEgc2V0dGVyIGNhbm5vdCBiZSBvcHRpb25hbEEgYGdldGAgYWNjZXNzb3IgY2Fubm90IGhhdmUgcGFyYW1ldGVyc0EgYHNldGAgYWNjZXNzb3IgbXVzdCBoYXZlIGV4YWN0bHkgb25lIHBhcmFtZXRlcnRvcCBsZXZlbCBhd2FpdCBpcyBvbmx5IGFsbG93ZWQgaW4gbW9kdWxlTGVnYWN5IGRlY2ltYWwgZXNjYXBlIGlzIG5vdCBwZXJtaXR0ZWQgaW4gc3RyaWN0IG1vZGVMZWdhY3kgb2N0YWwgZXNjYXBlIGlzIG5vdCBwZXJtaXR0ZWQgaW4gc3RyaWN0IG1vZGVJbnZhbGlkIGNoYXJhY3RlciBpbiBpZGVudGlmaWVyYSBiaW5hcnlhbiBvY3RhbGEgZGVjaW1hbGEgaGV4YWRlY2ltYWxFeHBlY3RlZCAgZGlnaXQAcEAWAAkAAAB5QBYABgAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3N3Y19lY21hX3BhcnNlci0xMC4wLjAvc3JjL2Vycm9yLnJzkEAWAGgAAABCAQAAGgAAAFNldHRlciBzaG91bGQgaGF2ZSBleGFjdGx5IG9uZSBwYXJhbWV0ZXJSZXN0IHBhdHRlcm4gaXMgbm90IGFsbG93ZWQgaW4gc2V0dGVyVW50ZXJtaW5hdGVkIGJsb2NrIGNvbW1lbnRVbnRlcm1pbmF0ZWQgc3RyaW5nIGNvbnN0YW50RXhwZWN0ZWQgdW5pY29kZSBlc2NhcGVVbmV4cGVjdGVkIGVzY2FwZSBzZXF1ZW5jZSBpbiByZXNlcnZlZCB3b3JkOiAAokEWAC0AAABVbnRlcm1pbmF0ZWQgcmVnZXhwIGxpdGVyYWxVbnRlcm1pbmF0ZWQgdGVtcGxhdGVJZGVudGlmaWVyIGNhbm5vdCBmb2xsb3cgbnVtYmVyVW5leHBlY3RlZCBjaGFyYWN0ZXIgJ0IWABUAAABJbnZhbGlkIHN0cmluZyBlc2NhcGVJbnZhbGlkIHVuaWNvZGUgZXNjYXBlQmFkIGNoYXJhY3RlciBlc2NhcGUgc2VxdWVuY2UsIGV4cGVjdGVkIABvQhYAKAAAAEV4cGVjdGVkICssIC0gb3IgZGVjaW1hbCBkaWdpdCBhZnRlciBlTGVnYWN5IGNvbW1lbnRzIGNhbm5vdCBiZSB1c2VkIGluIG1vZHVsZSBjb2RlYCBjYW5ub3QgYmUgdXNlZCBhcyBhbiBpZGVudGlmaWVyIGluIHN0cmljdCBtb2RlABwOGAABAAAA80IWADAAAABgYXdhaXRgIGNhbm5vdCBiZSB1c2VkIGFzIGFuIGlkZW50aWZpZXIgaW4gYW4gYXN5bmMgY29udGV4dCdldmFsJyBhbmQgJ2FyZ3VtZW50cycgY2Fubm90IGJlIHVzZWQgYXMgYSBiaW5kaW5nIGlkZW50aWZpZXIgaW4gc3RyaWN0IG1vZGUnYXJndW1lbnRzJyBpcyBvbmx5IGFsbG93ZWQgaW4gZnVuY3Rpb25zIGFuZCBjbGFzcyBtZXRob2RzSWxsZWdhbCAndXNlIHN0cmljdCcgZGlyZWN0aXZlIGluIGZ1bmN0aW9uIHdpdGggbm9uLXNpbXBsZSBwYXJhbWV0ZXIgbGlzdC4nKionIGNhbm5vdCBiZSBhcHBsaWVkIHRvIHVuYXJ5L2F3YWl0IGV4cHJlc3Npb24uVW5leHBlY3RlZCB0b2tlbiAnIydMaW5lQnJlYWsgY2Fubm90IGZvbGxvdyAndGhyb3cnVW5leHBlY3RlZCBsaW5lIGJyZWFrIGJldHdlZW4gYXJyb3cgaGVhZCBhbmQgYXJyb3dVbmV4cGVjdGVkIHRva2VuIGBgLiBFeHBlY3RlZCAA1UQWABIAAADnRBYADAAAACAsIG9yIAAAB0UWAAMAAAAgb3IgVW5leHBlY3RlZCB0b2tlbi4gRGlkIHlvdSBtZWFuIAAYRRYAHwAAAEQOGAABAAAAY2Fubm90IGltcG9ydCBhcyByZXNlcnZlZCB3b3JkYXNzaWdubWVudCBwcm9wZXJ0eSBpcyBpbnZhbGlkIHN5bnRheEV4cGVjdGVkICcnLCBnb3QgJycAAItFFgAKAAAAlUUWAAgAAACdRRYAAQAAAEV4cGVjdGVkICc7JywgJ30nIG9yIDxlb2Y+YXdhaXQqIGhhcyBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgYXN5bmMgZnVuY3Rpb25zIHByb3Bvc2FsLiBVc2UgUHJvbWlzZS5hbGwoKSBpbnN0ZWFkLkNhbm5vdCB1c2UgYSByZXNlcnZlZCB3b3JkIGFzIGEgc2hvcnRoYW5kIHByb3BlcnR5TnVsbGlzaCBjb2FsZXNjaW5nIG9wZXJhdG9yKD8/KSByZXF1aXJlcyBwYXJlbnMgd2hlbiBtaXhpbmcgd2l0aCBsb2dpY2FsIG9wZXJhdG9yc0Egc3dpdGNoIGJsb2NrIGNhbm5vdCBoYXZlIG11bHRpcGxlIGRlZmF1bHRzVHJhaWxpbmcgY29tbWEgaXNuJ3QgcGVybWl0dGVkIGFmdGVyIGEgcmVzdCBlbGVtZW50UmVzdCBlbGVtZW50IG11c3QgYmUgZmluYWwgZWxlbWVudFBhcmVudGhlc2l6ZWQgZXhwcmVzc2lvbiBjYW5ub3QgY29udGFpbiBzcHJlYWQgb3BlcmF0b3JQYXJlbnRoZXNpemVkIGV4cHJlc3Npb24gY2Fubm90IGJlIGVtcHR5Tm90IGEgcGF0dGVybk5vdCBhbiBleHByZXNzaW9uQ2Fubm90IGFzc2lnbiB0byB0aGlzSW52YWxpZCBhc3NpZ25tZW50IHRhcmdldEV4cGVjdGVkIGlkZW50RXhwZWN0ZWQgJzsnIG9yIGxpbmUgYnJlYWtMYWJlbCAgaXMgYWxyZWFkeSBkZWNsYXJlZAAAAP9HFgAGAAAABUgWABQAAABBbiBhc3luYyBmdW5jdGlvbiBjYW5ub3QgYmUgZ2VuZXJhdG9yJ2ltcG9ydCcsIGFuZCAnZXhwb3J0JyBhcmUgbm90IHBlcm1pdHRlZCBoZXJlJ2ltcG9ydCcsIGFuZCAnZXhwb3J0JyBjYW5ub3QgYmUgdXNlZCBvdXRzaWRlIG9mIG1vZHVsZSBjb2RlJ2ltcG9ydC5tZXRhJyBjYW5ub3QgYmUgdXNlZCBvdXRzaWRlIG9mIG1vZHVsZSBjb2RlLkRlc3RydWN0dXJpbmcgYmluZGluZ3MgcmVxdWlyZSBpbml0aWFsaXplcnNXaXRoIHN0YXRlbWVudCBhcmUgbm90IGFsbG93ZWQgaW4gc3RyaWN0IG1vZGVSZXR1cm4gc3RhdGVtZW50IGlzIG5vdCBhbGxvd2VkIGhlcmVFeHBlY3RlZCBvbmUgdmFyaWFibGUgYmluZGluZ1VuZXhwZWN0ZWQgaW5pdGlhbGl6ZXIgaW4gZm9yIGluL29mIGxvb3BHZW5lcmF0b3Igb3IgYXN5bmMgZnVuY3Rpb24gY2Fubm90IGJlIGxhYmVsbGVkRnVuY3Rpb24gY2Fubm90IGJlIGxhYmVsbGVkIGluIHN0cmljdCBtb2RlJ3lpZWxkJyBjYW5ub3QgYmUgdXNlZCBhcyBhIHBhcmFtZXRlciB3aXRoaW4gZ2VuZXJhdG9yYGF3YWl0YCBleHByZXNzaW9ucyBjYW5ub3QgYmUgdXNlZCBpbiBhIHBhcmFtZXRlciBpbml0aWFsaXplci5mb3IgYXdhaXQgc3ludGF4IGlzIHZhbGlkIG9ubHkgZm9yIGZvci1vZiBzdGF0ZW1lbnRhd2FpdCBpc24ndCBhbGxvd2VkIGluIG5vbi1hc3luYyBmdW5jdGlvblVudGVybWluYXRlZCBKU1ggY29udGVudHNKU1ggYXR0cmlidXRlcyBtdXN0IG9ubHkgYmUgYXNzaWduZWQgYSBub24tZW1wdHkgZXhwcmVzc2lvbkpTWCB2YWx1ZSBzaG91bGQgYmUgZWl0aGVyIGFuIGV4cHJlc3Npb24gb3IgYSBxdW90ZWQgSlNYIHRleHRFeHBlY3RlZCBjb3JyZXNwb25kaW5nIEpTWCBjbG9zaW5nIHRhZyBmb3IgPD5FeHBlY3RlZCBjb3JyZXNwb25kaW5nIEpTWCBjbG9zaW5nIHRhZyBmb3IgPAAAAJVLFgAsAAAAxQsYAAEAAABMZWFkaW5nIGRlY29yYXRvcnMgbXVzdCBiZSBhdHRhY2hlZCB0byBhIGNsYXNzIGRlY2xhcmF0aW9uVXNpbmcgdGhlIGV4cG9ydCBrZXl3b3JkIGJldHdlZW4gYSBkZWNvcmF0b3IgYW5kIGEgY2xhc3MgaXMgbm90IGFsbG93ZWQuIFBsZWFzZSB1c2UgYGV4cG9ydCBAZGVjIGNsYXNzYCBpbnN0ZWFkLkEgcmVxdWlyZWQgZWxlbWVudCBjYW5ub3QgZm9sbG93IGFuIG9wdGlvbmFsIGVsZW1lbnQuVHlwZXNjcmlwdCBwYXJhbWV0ZXIgcHJvcGVydHkgbXVzdCBiZSBhbiBpZGVudGlmaWVyIG9yIGFzc2lnbm1lbnQgcGF0dGVyblVuZXhwZWN0ZWQgc3BhY2UgYmV0d2VlbiAjIGFuZCBpZGVudGlmaWVyQ29uc3RydWN0b3IgY2FuJ3QgYmUgYW4gYXN5bmMgZnVuY3Rpb25DbGFzc2VzIG1heSBub3QgaGF2ZSBhIG5vbi1zdGF0aWMgZmllbGQgbmFtZWQgJ2NvbnN0cnVjdG9yJ0NsYXNzZXMgY2FuJ3QgaGF2ZSBhIHByaXZhdGUgZmllbGQgbmFtZWQgJyNjb25zdHJ1Y3RvcicuJyBtb2RpZmllciBjYW5ub3QgYmUgdXNlZCB3aXRoIGEgcHJpdmF0ZSBpZGVudGlmaWVyAAAAnUUWAAEAAAC+TRYAMwAAAENsYXNzIGNvbnN0cnVjdG9yIGNhbid0IGJlIGFuIGFjY2Vzc29yLkEgbWV0aG9kIGNhbm5vdCBiZSByZWFkb25seUEgY29uc3RydWN0b3IgY2Fubm90IGJlIGdlbmVyYXRvckEgY2xhc3MgY2FuIG9ubHkgaGF2ZSBvbmUgY29uc3RydWN0b3JBIGJpbmRpbmcgcGF0dGVybiBwYXJhbWV0ZXIgY2Fubm90IGJlIG9wdGlvbmFsIGluIGFuIGltcGxlbWVudGF0aW9uIHNpZ25hdHVyZS5TdXBlciBjYWxsIGNhbm5vdCBiZSBvcHRpb25hbENvbnN0cnVjdG9yIGluL2FmdGVyIGFuIG9wdGlvbmFsIGNoYWluaW5nIGlzIG5vdCBhbGxvd2VkLlRhZ2dlZCB0ZW1wbGF0ZSBsaXRlcmFsIGlzIG5vdCBhbGxvd2VkIGluIG9wdGlvbmFsIGNoYWluLlRyYWlsaW5nIGNvbW1hIGlzIGRpc2FsbG93ZWQgaW5zaWRlIGltcG9ydCguLi4pIGFyZ3VtZW50c2V4cG9ydCBkZWZhdWx0IHN0YXRlbWVudHMgcmVxdWlyZWQgZnJvbSAnLi4uJztgIGNhbm5vdCBiZSB1c2VkIHdpdGhvdXQgYGZyb21gIGNsYXVzZQAAHA4YAAEAAADQTxYAJgAAAGAuLi5gIG11c3QgYmUgZm9sbG93ZWQgYnkgYW4gaWRlbnRpZmllciBpbiBkZWNsYXJhdGlvbiBjb250ZXh0c0EgbnVtZXJpYyBzZXBhcmF0b3IgaXMgb25seSBhbGxvd2VkIGJldHdlZW4gdHdvIGRpZ2l0c0Egc3RyaW5nIGxpdGVyYWwgY2Fubm90IGJlIHVzZWQgYXMgYW4gaW1wb3J0ZWQgYmluZGluZy4KLSBEaWQgeW91IG1lYW4gYGltcG9ydCB7ICIiIGFzIGZvbyB9YD8AfVAWAFIAAADPUBYADAAAAEEgc3RyaW5nIGxpdGVyYWwgY2Fubm90IGJlIHVzZWQgYXMgYW4gZXhwb3J0ZWQgYmluZGluZyB3aXRob3V0IGBmcm9tYC4nY29uc3QnIGRlY2xhcmF0aW9ucyBtdXN0IGJlIGluaXRpYWxpemVkRHVwbGljYXRlZCByZWd1bGFyIGV4cHJlc3Npb24gZmxhZyAnJy5aURYAJAAAAH5RFgACAAAAVW5rbm93biByZWd1bGFyIGV4cHJlc3Npb24gZmxhZ3MuRXhwZWN0ZWQgYW4gaWRlbnRpZmllckV4cGVjdGVkIGEgc2VtaWNvbG9uVHJhaWxpbmcgY29tbWEgaXMgbm90IGFsbG93ZWRBIHJlc3QgcGFyYW1ldGVyIG11c3QgYmUgbGFzdCBpbiBhIHBhcmFtZXRlciBsaXN0UGFyYW1ldGVyIGNhbm5vdCBoYXZlIHF1ZXN0aW9uIG1hcmsgYW5kIGluaXRpYWxpemVyJyBtb2RpZmllciBtdXN0IHByZWNlZGUgJycgbW9kaWZpZXIunUUWAAEAAABcUhYAGQAAAHVSFgALAAAAJyBtb2RpZmllciBhbHJlYWR5IHNlZW4unUUWAAEAAACYUhYAGAAAAGBkZWNsYXJlYCBtb2RpZmllciBjYW5ub3QgYXBwZWFyIG9uIGNsYXNzIGVsZW1lbnRzIG9mIHRoaXMga2luZGBkZWNsYXJlYCBtb2RpZmllciBub3QgYWxsb3dlZCBmb3IgY29kZSBhbHJlYWR5IGluIGFuIGFtYmllbnQgY29udGV4dGBhc3luY2AgbW9kaWZpZXIgY2Fubm90IGJlIHVzZWQgaGVyZUEgcmVzdCBwYXJhbWV0ZXIgY2Fubm90IGJlIG9wdGlvbmFsQSByZXN0IHBhcmFtZXRlciBjYW5ub3QgaGF2ZSBhbiBpbml0aWFsaXplcmpzYy50YXJnZXQgc2hvdWxkIGJlIGVzNSBvciB1cHBlciB0byB1c2UgZ2V0dGVyIC8gc2V0dGVyTGVnYWN5IG9jdGFsIGxpdGVyYWxzIGFyZSBub3QgYXZhaWxhYmxlIHdoZW4gdGFyZ2V0aW5nIEVDTUFTY3JpcHQgNSBhbmQgaGlnaGVyJyBtb2RpZmllciBjYW5ub3QgYXBwZWFyIG9uIGEgY29uc3RydWN0b3IgZGVjbGFyYXRpb24AAACdRRYAAQAAADxUFgA1AAAAVHlwZSBwYXJhbWV0ZXJzIGNhbm5vdCBhcHBlYXIgb24gYSBjb25zdHJ1Y3RvciBkZWNsYXJhdGlvbkFuIGluZGV4IHNpZ25hdHVyZSBtdXN0IGhhdmUgZXhhY3RseSBvbmUgcGFyYW1ldGVyVHlwZSBwYXJhbWV0ZXIgbGlzdCBjYW5ub3QgYmUgZW1wdHlJbnZhbGlkIHVzZSBvZiAnYXJndW1lbnRzJyBpbiBzdHJpY3QgbW9kZSdkZWxldGUnIGNhbm5vdCBiZSBjYWxsZWQgb24gYW4gaWRlbnRpZmllciBpbiBzdHJpY3QgbW9kZUEgJ2JyZWFrJyBzdGF0ZW1lbnQgY2FuIG9ubHkgYmUgdXNlZCB3aXRoaW4gYW4gZW5jbG9zaW5nIGl0ZXJhdGlvbiBvciBzd2l0Y2ggc3RhdGVtZW50VGhlIGxlZnQtaGFuZCBzaWRlIG9mIGEgYGZvci4uLm9mYCBzdGF0ZW1lbnQgbWF5IG5vdCBiZSBgYXN5bmNgSnVtcCB0YXJnZXQgY2Fubm90IGNyb3NzIGZ1bmN0aW9uIGJvdW5kYXJ5RXhwcmVzc2lvbiBleHBlY3RlZHR5cGUgZXhwZWN0ZWREdXBsaWNhdGUgbGFiZWxBICdjb250aW51ZScgc3RhdGVtZW50IGNhbiBvbmx5IGp1bXAgdG8gYSBsYWJlbCBvZiBhbiBlbmNsb3NpbmcgaXRlcmF0aW9uIHN0YXRlbWVudEEgJ2JyZWFrJyBzdGF0ZW1lbnQgY2FuIG9ubHkganVtcCB0byBhIGxhYmVsIG9mIGFuIGVuY2xvc2luZyBzdGF0ZW1lbnRWYXJpYWJsZSBkZWNsYXJhdGlvbiBsaXN0IGNhbm5vdCBiZSBlbXB0eWxpdGVyYWwgaW4gYW4gaW1wb3J0IHR5cGUgc2hvdWxkIGJlIHN0cmluZyBsaXRlcmFsQW4gb2JqZWN0IG1lbWJlciBjYW5ub3QgYmUgZGVjbGFyZWQgb3B0aW9uYWxDb21wdXRlZCBwcm9wZXJ0eSBuYW1lcyBhcmUgbm90IGFsbG93ZWQgaW4gZW51bXNBIGNvbW1hIGV4cHJlc3Npb24gaXMgbm90IGFsbG93ZWQgaW4gYSBjb21wdXRlZCBwcm9wZXJ0eSBuYW1lYGV4dGVuZHNgIGNsYXVzZSBhbHJlYWR5IHNlZW4uJ2V4dGVuZHMnIGNsYXVzZSBtdXN0IHByZWNlZGUgJ2ltcGxlbWVudHMnIGNsYXVzZS5DbGFzc2VzIGNhbiBvbmx5IGV4dGVuZCBhIHNpbmdsZSBjbGFzc2BpbXBsZW1lbnRzYCBjbGF1c2UgYWxyZWFkeSBzZWVuQW4gaW1wbGVtZW50YXRpb24gY2Fubm90IGJlIGRlY2xhcmVkIGluIGFtYmllbnQgY29udGV4dHNNb2RpZmllcnMgY2Fubm90IGFwcGVhciBoZXJlTWVyZ2UgY29uZmxpY3QgbWFya2VyIGVuY291bnRlcmVkLlR5cGUgYW5ub3RhdGlvbiBjYW5ub3QgYXBwZWFyIG9uIGEgY29uc3RydWN0b3IgZGVjbGFyYXRpb25DYXRjaCBjbGF1c2UgdmFyaWFibGUgY2Fubm90IGhhdmUgYSB0eXBlIGFubm90YXRpb25gYWJzdHJhY3RgIG1vZGlmaWVyIGNhbiBvbmx5IGFwcGVhciBvbiBhIGNsYXNzIG9yIG1ldGhvZCBkZWNsYXJhdGlvbicgbW9kaWZpZXIgY2Fubm90IGJlIHVzZWQgd2l0aCAnAAAAnUUWAAEAAACtWRYAIAAAAHVSFgALAAAAQWJzdHJhY3QgbWV0aG9kcyBjYW4gb25seSBhcHBlYXIgd2l0aGluIGFuIGFic3RyYWN0IGNsYXNzLkFic3RyYWN0IG1ldGhvZCBjYW5ub3QgaGF2ZSBhbiBpbXBsZW1lbnRhdGlvbi5BYnN0cmFjdCBwcm9wZXJ0eSBjYW5ub3QgaGF2ZSBhbiBpbml0aWFsaXplci4nIG1vZGlmaWVyIGNhbm5vdCBhcHBlYXIgb24gYSB0eXBlIHBhcmFtZXRlcgAAAJ1FFgABAAAAfVoWACwAAAAnIG1vZGlmaWVyIGNhbiBvbmx5IGFwcGVhciBvbiBhIHR5cGUgcGFyYW1ldGVyIG9mIGEgY2xhc3MsIGludGVyZmFjZSBvciB0eXBlIGFsaWFzAACdRRYAAQAAALxaFgBSAAAAJyBtb2RpZmllciBjYW4gb25seSBhcHBlYXIgb24gYSB0eXBlIHBhcmFtZXRlciBvZiBhIGZ1bmN0aW9uLCBtZXRob2Qgb3IgY2xhc3MAAACdRRYAAQAAACBbFgBNAAAAVGhlICd0eXBlJyBtb2RpZmllciBjYW5ub3QgYmUgdXNlZCBvbiBhIG5hbWVkIGltcG9ydCB3aGVuICdpbXBvcnQgdHlwZScgaXMgdXNlZCBvbiBpdHMgaW1wb3J0IHN0YXRlbWVudC5UaGUgJ3R5cGUnIG1vZGlmaWVyIGNhbm5vdCBiZSB1c2VkIG9uIGEgbmFtZWQgZXhwb3J0IHdoZW4gJ2V4cG9ydCB0eXBlJyBpcyB1c2VkIG9uIGl0cyBleHBvcnQgc3RhdGVtZW50LkEgcGFyYW1ldGVyIHByb3BlcnR5IGlzIG9ubHkgYWxsb3dlZCBpbiBhIGNvbnN0cnVjdG9yIGltcGxlbWVudGF0aW9uQSBwYXJhbWV0ZXIgaW5pdGlhbGl6ZXIgaXMgb25seSBhbGxvd2VkIGluIGEgZnVuY3Rpb24gb3IgY29uc3RydWN0b3IgaW1wbGVtZW50YXRpb25UaGUgbGVmdC1oYW5kIHNpZGUgb2YgYW4gYXNzaWdubWVudCBleHByZXNzaW9uIG11c3QgYmUgYSB2YXJpYWJsZSBvciBhIHByb3BlcnR5IGFjY2Vzcy5UaGUgJ3dpdGgnIHN0YXRlbWVudCBpcyBub3Qgc3VwcG9ydGVkLiBBbGwgc3ltYm9scyBpbiBhICd3aXRoJyBibG9jayB3aWxsIGhhdmUgdHlwZSAnYW55Jy5JbnZhbGlkIGNsYXNzIG5hbWVpbnRlcmZhY2UgbmFtZSBpcyBpbnZhbGlkQW4gZW51bSBtZW1iZXIgY2Fubm90IGhhdmUgYSBudW1lcmljIG5hbWVUaGUgbGVmdC1oYW5kIHNpZGUgb2YgYSAnZm9yLi4ub2YnIHN0YXRlbWVudCBjYW5ub3QgdXNlIGEgdHlwZSBhbm5vdGF0aW9uVGhlIGxlZnQtaGFuZCBzaWRlIG9mIGEgJ2Zvci4uLmluJyBzdGF0ZW1lbnQgY2Fubm90IGJlIGEgZGVzdHJ1Y3R1cmluZyBwYXR0ZXJuQW4gaW50ZXJmYWNlIGNhbiBvbmx5IGV4dGVuZCBhbiBpZGVudGlmaWVyL3F1YWxpZmllZC1uYW1lIHdpdGggb3B0aW9uYWwgdHlwZSBhcmd1bWVudHMuVGhlIG9wZXJhbmQgb2YgYSBkZWxldGUgb3BlcmF0b3IgbXVzdCBiZSBhIHByb3BlcnR5IHJlZmVyZW5jZS5UaGlzIG1lbWJlciBjYW5ub3QgaGF2ZSBhbiAnb3ZlcnJpZGUnIG1vZGlmaWVyIGJlY2F1c2UgaXRzIGNvbnRhaW5pbmcgY2xhc3MgZG9lcyBub3QgZXh0ZW5kIGFub3RoZXIgY2xhc3MuRGVjb3JhdG9ycyBtYXkgbm90IGFwcGVhciBhZnRlciBgZXhwb3J0YCBvciBgZXhwb3J0IGRlZmF1bHRgIGlmIHRoZXkgYWxzbyBhcHBlYXIgYmVmb3JlIGBleHBvcnRgLkFuIGFjY2Vzc2liaWxpdHkgbW9kaWZpZXIgY2Fubm90IGJlIHVzZWQgd2l0aCBhIHByaXZhdGUgaWRlbnRpZmllci5UeXBlIGFubm90YXRpb25zIG11c3QgY29tZSBiZWZvcmUgZGVmYXVsdCBhc3NpZ25tZW50c1R5cGVzY3JpcHQgbm9uLW51bGwgYXNzZXJ0aW9uIG9wZXJhdG9yIGlzIG5vdCBhbGxvd2VkIHdpdGggJwBbYBYAPAAAAJ1FFgABAAAAVGhpcyBzeW50YXggaXMgcmVzZXJ2ZWQgaW4gZmlsZXMgd2l0aCB0aGUgLm10cyBvciAuY3RzIGV4dGVuc2lvbi4gVXNlIGFuIGBhc2AgZXhwcmVzc2lvbiBpbnN0ZWFkLlRoaXMgc3ludGF4IGlzIHJlc2VydmVkIGluIGZpbGVzIHdpdGggdGhlIC5tdHMgb3IgLmN0cyBleHRlbnNpb24uIEFkZCBhIHRyYWlsaW5nIGNvbW1hLCBhcyBpbiBgPFQsPigpID0+IC4uLmAuVGhpcyBpcyB0aGUgZXhwcmVzc2lvbiBwYXJ0IG9mIGFuIGV4cHJlc3Npb24gc3RhdGVtZW50cHJldmlvdXMgZGVmYXVsdCBjYXNlIGlzIGRlY2xhcmVkIGF0IGhlcmVmYWlsZWQgdG8gcGFyc2UgbnVtYmVyIGFzIGNoYXIvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9zd2NfZWNtYV9wYXJzZXItMTAuMC4wL3NyYy9sZXhlci9qc3gucnP0YRYAbAAAAIkAAAAOAAAAAAAAAAEAAAABAAAApQcAAGZhaWxlZCB0byBwYXJzZSBzdHJpbmcgYXMgbnVtYmVy9GEWAGwAAACHAAAALwAAAHF1b3RhbXBhcG9zbHRndG5ic3BpZXhjbGNlbnRwb3VuZGN1cnJlbnllbmJydmJhcnNlY3R1bWxjb3B5b3JkZmxhcXVvbm90c2h5cmVnbWFjcmRlZ3BsdXNtbnN1cDJzdXAzYWN1dGVtaWNyb3BhcmFtaWRkb3RjZWRpbHN1cDFvcmRtcmFxdW9mcmFjMTRmcmFjMTJmcmFjMzRpcXVlc3RBZ3JhdmVBYWN1dGVBY2lyY0F0aWxkZUF1bWxBcmluZ0FFbGlnQ2NlZGlsRWdyYXZlRWFjdXRlRWNpcmNFdW1sSWdyYXZlSWFjdXRlSWNpcmNJdW1sRVRITnRpbGRlT2dyYXZlT2FjdXRlT2NpcmNPdGlsZGVPdW1sdGltZXNPc2xhc2hVZ3JhdmVVYWN1dGVVY2lyY1V1bWxZYWN1dGVUSE9STnN6bGlnYWdyYXZlYWFjdXRlYWNpcmNhdGlsZGVhdW1sYXJpbmdhZWxpZ2NjZWRpbGVncmF2ZWVhY3V0ZWVjaXJjZXVtbGlncmF2ZWlhY3V0ZWljaXJjaXVtbGV0aG50aWxkZW9ncmF2ZW9hY3V0ZW9jaXJjb3RpbGRlb3VtbGRpdmlkZW9zbGFzaHVncmF2ZXVhY3V0ZXVjaXJjdXVtbHlhY3V0ZXRob3JueXVtbE9FbGlnb2VsaWdTY2Fyb25zY2Fyb25ZdW1sZm5vZmNpcmN0aWxkZUFscGhhQmV0YUdhbW1hRGVsdGFFcHNpbG9uWmV0YUV0YVRoZXRhSW90YUthcHBhTGFtYmRhTXVOdVhpT21pY3JvblBpUmhvU2lnbWFUYXVVcHNpbG9uUGhpQ2hpUHNpT21lZ2FhbHBoYWJldGFnYW1tYWRlbHRhZXBzaWxvbnpldGFldGF0aGV0YWlvdGFrYXBwYWxhbWJkYW11bnV4aW9taWNyb25waXJob3NpZ21hZnNpZ21hdGF1dXBzaWxvbnBoaWNoaXBzaW9tZWdhdGhldGFzeW11cHNpaHBpdmVuc3BlbXNwdGhpbnNwenduanp3amxybXJsbW5kYXNobWRhc2hsc3F1b3JzcXVvc2JxdW9sZHF1b3JkcXVvYmRxdW9kYWdnZXJEYWdnZXJidWxsaGVsbGlwcGVybWlscHJpbWVQcmltZWxzYXF1b3JzYXF1b29saW5lZnJhc2xldXJvaW1hZ2V3ZWllcnByZWFsdHJhZGVhbGVmc3ltbGFycnVhcnJyYXJyZGFycmhhcnJjcmFycmxBcnJ1QXJyckFycmRBcnJoQXJyZm9yYWxscGFydGV4aXN0ZW1wdHluYWJsYWlzaW5ub3Rpbm5pcHJvZHN1bW1pbnVzbG93YXN0cmFkaWNpbmZpbmFuZ2FuZG9yY2FwY3VwaW50dGhlcmU0c2ltY29uZ2FzeW1wbmVlcXVpdmxlZ2VzdWJzdXBuc3Vic3ViZXN1cGVvcGx1c290aW1lc3BlcnBzZG90bGNlaWxyY2VpbGxmbG9vcnJmbG9vcmxhbmdyYW5nbG96c3BhZGVzY2x1YnNoZWFydHNkaWFtcy9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3NtYXJ0c3RyaW5nLTEuMC4xL3NyYy9vcHMucnMAAAA8ZxYAYQAAAHoAAAA7AAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvaHN0ci0xLjAuMC9zcmMvZHluYW1pYy5yc3RlbXBsYXRlIHRva2VuICgAAA5oFgAQAAAAlNoYAAEAAABzdHJpbmcgbGl0ZXJhbCAoMGgWABAAAADMPxgAAgAAAJTaGAABAAAAcmVnZXhwIGxpdGVyYWwgKFhoFgAQAAAAzD8YAAIAAACU2hgAAQAAAG51bWVyaWMgbGl0ZXJhbCAoAAAAgGgWABEAAADMPxgAAgAAAJTaGAABAAAAYmlnaW50IGxpdGVyYWwgKKxoFgAQAAAAzD8YAAIAAACU2hgAAQAAAGpzeCBuYW1lICgAANRoFgAKAAAAlNoYAAEAAABqc3ggdGV4dCAoAADwaBYACgAAAJTaGAABAAAAPiAoanN4IHRhZyBlbmQpPGxleGluZyBlcnJvcjogAAAbaRYADwAAAMULGAABAAAA9wcAAAwAAAAEAAAAxAEAAPgHAAAMAAAABAAAAPkHAAD6BwAABAAAAAQAAACIAQAAAAAAAAEAAAABAAAAbwEAAPsHAAAEAAAABAAAADkCAAD8BwAABAAAAAQAAAAKAgAAAAAAAAQAAAAEAAAA/QcAAP4HAAAMAAAABAAAAP8HAAAACAAAGAAAAAQAAAABCAAAAggAABgAAAAIAAAAbAEAAAMIAAAgAAAACAAAAIsBAAAAAAAABAAAAAQAAAAECAAABQgAAAwAAAAEAAAABggAAAAAAAAEAAAABAAAAAcIAABjb250ZXh0LmN1cnJlbnQoKSBpZiBQYXJlblN0bXQsIHNvIHByZXYgdG9rZW4gY2Fubm90IGJlIE5vbmV8GRgAbgAAACsCAAAaAAAAfBkYAG4AAADpAQAALQBBgNXZAAtOCAAAAAQAAAAICAAAlCIYAF8AAABBAQAANgAAAGFzc2VydGlvbiBmYWlsZWQ6IGluZGV4IDwgbGVuAAAAlCIYAF8AAABIBQAADQAAAAkIAEHQ1tkAC4MHCggAAAsIAAAMCAAADQgAAA4IAAAPCAAACwgAABAIAAARCAAAEggAABMIAAAUCAAAFQgAABYIAAAXCAAAGAgAABkIAAAZCAAAGQgAABkIAAAZCAAAGQgAABkIAAAZCAAAGQgAABoIAAAbCAAAHAgAAB0IAAAcCAAAHggAAB8IAAANCAAADQgAAA0IAAANCAAADQgAAA0IAAANCAAADQgAAA0IAAANCAAADQgAAA0IAAANCAAADQgAAA0IAAANCAAADQgAAA0IAAANCAAADQgAAA0IAAANCAAADQgAAA0IAAANCAAADQgAACAIAAANCAAAIQgAACIIAAANCAAAIwgAACQIAAAlCAAAJggAACcIAAAoCAAAKQgAACoIAAANCAAAKwgAAA0IAAAsCAAALQgAAC4IAAAvCAAAMAgAADEIAAANCAAAMggAADMIAAA0CAAANQgAADYIAAA3CAAADQgAADgIAAANCAAAOQgAADoIAAA7CAAAPAgAAD0IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAD4IAAA+CAAAPggAAHBhY2thZ2UAQaTe2QALAQEAQcHe2QALOgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQaTf2QALEj8IAABACAAAPwgAAD8IAABACABBgODZAAsCPwgAQYDj2QAL4dAFQQgAAEEIAABBCAAAQQgAAEEIAABBCAAAQQgAAEEIAABBCAAAQQgAAEEIAABBCAAAQQgAAEEIAABBCAAAQQgAAEEIAABBCAAAQQgAAEEIAABBCAAA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YXlfd2l0aF9ob2xlc0Bzd2MvaGVscGVycy9fL19hcnJheV93aXRoX2hvbGVzX2FycmF5X3dpdGhvdXRfaG9sZXNAc3djL2hlbHBlcnMvXy9fYXJyYXlfd2l0aG91dF9ob2xlc19hc3NlcnRfdGhpc19pbml0aWFsaXplZEBzd2MvaGVscGVycy9fL19hc3NlcnRfdGhpc19pbml0aWFsaXplZF9hc3luY19nZW5lcmF0b3JAc3djL2hlbHBlcnMvXy9fYXN5bmNfZ2VuZXJhdG9yX2FzeW5jX2dlbmVyYXRvcl9kZWxlZ2F0ZUBzd2MvaGVscGVycy9fL19hc3luY19nZW5lcmF0b3JfZGVsZWdhdGVfYXN5bmNfaXRlcmF0b3JAc3djL2hlbHBlcnMvXy9fYXN5bmNfaXRlcmF0b3JfYXN5bmNfdG9fZ2VuZXJhdG9yQHN3Yy9oZWxwZXJzL18vX2FzeW5jX3RvX2dlbmVyYXRvcl9hd2FpdF9hc3luY19nZW5lcmF0b3JAc3djL2hlbHBlcnMvXy9fYXdhaXRfYXN5bmNfZ2VuZXJhdG9yX2F3YWl0X3ZhbHVlQHN3Yy9oZWxwZXJzL18vX2F3YWl0X3ZhbHVlX2NhbGxfc3VwZXJAc3djL2hlbHBlcnMvXy9fY2FsbF9zdXBlcl9jaGVja19wcml2YXRlX3JlZGVjbGFyYXRpb25Ac3djL2hlbHBlcnMvXy9fY2hlY2tfcHJpdmF0ZV9yZWRlY2xhcmF0aW9uX2NsYXNzX2FwcGx5X2Rlc2NyaXB0b3JfZGVzdHJ1Y3R1cmVAc3djL2hlbHBlcnMvXy9fY2xhc3NfYXBwbHlfZGVzY3JpcHRvcl9kZXN0cnVjdHVyZV9jbGFzc19hcHBseV9kZXNjcmlwdG9yX2dldEBzd2MvaGVscGVycy9fL19jbGFzc19hcHBseV9kZXNjcmlwdG9yX2dldF9jbGFzc19hcHBseV9kZXNjcmlwdG9yX3NldEBzd2MvaGVscGVycy9fL19jbGFzc19hcHBseV9kZXNjcmlwdG9yX3NldF9jbGFzc19hcHBseV9kZXNjcmlwdG9yX3VwZGF0ZUBzd2MvaGVscGVycy9fL19jbGFzc19hcHBseV9kZXNjcmlwdG9yX3VwZGF0ZV9jbGFzc19jYWxsX2NoZWNrQHN3Yy9oZWxwZXJzL18vX2NsYXNzX2NhbGxfY2hlY2tfY2xhc3NfY2hlY2tfcHJpdmF0ZV9zdGF0aWNfZmllbGRfZGVzY3JpcHRvckBzd2MvaGVscGVycy9fL19jbGFzc19jaGVja19wcml2YXRlX3N0YXRpY19maWVsZF9kZXNjcmlwdG9yX2NsYXNzX2V4dHJhY3RfZmllbGRfZGVzY3JpcHRvckBzd2MvaGVscGVycy9fL19jbGFzc19leHRyYWN0X2ZpZWxkX2Rlc2NyaXB0b3JfY2xhc3NfbmFtZV90ZHpfZXJyb3JAc3djL2hlbHBlcnMvXy9fY2xhc3NfbmFtZV90ZHpfZXJyb3JfY2xhc3NfcHJpdmF0ZV9maWVsZF9nZXRAc3djL2hlbHBlcnMvXy9fY2xhc3NfcHJpdmF0ZV9maWVsZF9nZXRfY2xhc3NfcHJpdmF0ZV9maWVsZF9pbml0QHN3Yy9oZWxwZXJzL18vX2NsYXNzX3ByaXZhdGVfZmllbGRfaW5pdF9jbGFzc19wcml2YXRlX2ZpZWxkX2xvb3NlX2Jhc2VAc3djL2hlbHBlcnMvXy9fY2xhc3NfcHJpdmF0ZV9maWVsZF9sb29zZV9iYXNlX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2Vfa2V5QHN3Yy9oZWxwZXJzL18vX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2Vfa2V5X2NsYXNzX3ByaXZhdGVfZmllbGRfc2V0QHN3Yy9oZWxwZXJzL18vX2NsYXNzX3ByaXZhdGVfZmllbGRfc2V0X2NsYXNzX3ByaXZhdGVfZmllbGRfdXBkYXRlQHN3Yy9oZWxwZXJzL18vX2NsYXNzX3ByaXZhdGVfZmllbGRfdXBkYXRlX2NsYXNzX3ByaXZhdGVfbWV0aG9kX2dldEBzd2MvaGVscGVycy9fL19jbGFzc19wcml2YXRlX21ldGhvZF9nZXRfY2xhc3NfcHJpdmF0ZV9tZXRob2RfaW5pdEBzd2MvaGVscGVycy9fL19jbGFzc19wcml2YXRlX21ldGhvZF9pbml0X2NsYXNzX3ByaXZhdGVfbWV0aG9kX3NldEBzd2MvaGVscGVycy9fL19jbGFzc19wcml2YXRlX21ldGhvZF9zZXRfY2xhc3Nfc3RhdGljX3ByaXZhdGVfZmllbGRfc3BlY19nZXRAc3djL2hlbHBlcnMvXy9fY2xhc3Nfc3RhdGljX3ByaXZhdGVfZmllbGRfc3BlY19nZXRfY2xhc3Nfc3RhdGljX3ByaXZhdGVfZmllbGRfc3BlY19zZXRAc3djL2hlbHBlcnMvXy9fY2xhc3Nfc3RhdGljX3ByaXZhdGVfZmllbGRfc3BlY19zZXRfY2xhc3Nfc3RhdGljX3ByaXZhdGVfZmllbGRfdXBkYXRlQHN3Yy9oZWxwZXJzL18vX2NsYXNzX3N0YXRpY19wcml2YXRlX2ZpZWxkX3VwZGF0ZV9jb25zdHJ1Y3RAc3djL2hlbHBlcnMvXy9fY29uc3RydWN0X2NyZWF0ZV9jbGFzc0Bzd2MvaGVscGVycy9fL19jcmVhdGVfY2xhc3NfZGVjb3JhdGVAc3djL2hlbHBlcnMvXy9fZGVjb3JhdGVfZGVmYXVsdHNAc3djL2hlbHBlcnMvXy9fZGVmYXVsdHNfZGVmaW5lX2VudW1lcmFibGVfcHJvcGVydGllc0Bzd2MvaGVscGVycy9fL19kZWZpbmVfZW51bWVyYWJsZV9wcm9wZXJ0aWVzX2RlZmluZV9wcm9wZXJ0eUBzd2MvaGVscGVycy9fL19kZWZpbmVfcHJvcGVydHlfZXhwb3J0X3N0YXJAc3djL2hlbHBlcnMvXy9fZXhwb3J0X3N0YXJfZXh0ZW5kc0Bzd2MvaGVscGVycy9fL19leHRlbmRzX2dldEBzd2MvaGVscGVycy9fL19nZXRfZ2V0X3Byb3RvdHlwZV9vZkBzd2MvaGVscGVycy9fL19nZXRfcHJvdG90eXBlX29mX2luaGVyaXRzQHN3Yy9oZWxwZXJzL18vX2luaGVyaXRzX2luaGVyaXRzX2xvb3NlQHN3Yy9oZWxwZXJzL18vX2luaGVyaXRzX2xvb3NlX2luaXRpYWxpemVyX2RlZmluZV9wcm9wZXJ0eUBzd2MvaGVscGVycy9fL19pbml0aWFsaXplcl9kZWZpbmVfcHJvcGVydHlfaW5pdGlhbGl6ZXJfd2FybmluZ19oZWxwZXJAc3djL2hlbHBlcnMvXy9faW5pdGlhbGl6ZXJfd2FybmluZ19oZWxwZXJfaW5zdGFuY2VvZkBzd2MvaGVscGVycy9fL19pbnN0YW5jZW9mX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0QHN3Yy9oZWxwZXJzL18vX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0X2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZEBzd2MvaGVscGVycy9fL19pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmRfaXNfbmF0aXZlX2Z1bmN0aW9uQHN3Yy9oZWxwZXJzL18vX2lzX25hdGl2ZV9mdW5jdGlvbl9pdGVyYWJsZV90b19hcnJheUBzd2MvaGVscGVycy9fL19pdGVyYWJsZV90b19hcnJheV9pdGVyYWJsZV90b19hcnJheV9saW1pdEBzd2MvaGVscGVycy9fL19pdGVyYWJsZV90b19hcnJheV9saW1pdF9pdGVyYWJsZV90b19hcnJheV9saW1pdF9sb29zZUBzd2MvaGVscGVycy9fL19pdGVyYWJsZV90b19hcnJheV9saW1pdF9sb29zZV9qc3hAc3djL2hlbHBlcnMvXy9fanN4X25ld19hcnJvd19jaGVja0Bzd2MvaGVscGVycy9fL19uZXdfYXJyb3dfY2hlY2tfbm9uX2l0ZXJhYmxlX3Jlc3RAc3djL2hlbHBlcnMvXy9fbm9uX2l0ZXJhYmxlX3Jlc3Rfbm9uX2l0ZXJhYmxlX3NwcmVhZEBzd2MvaGVscGVycy9fL19ub25faXRlcmFibGVfc3ByZWFkX29iamVjdF9kZXN0cnVjdHVyaW5nX2VtcHR5QHN3Yy9oZWxwZXJzL18vX29iamVjdF9kZXN0cnVjdHVyaW5nX2VtcHR5X29iamVjdF9zcHJlYWRAc3djL2hlbHBlcnMvXy9fb2JqZWN0X3NwcmVhZF9vYmplY3Rfc3ByZWFkX3Byb3BzQHN3Yy9oZWxwZXJzL18vX29iamVjdF9zcHJlYWRfcHJvcHNfb2JqZWN0X3dpdGhvdXRfcHJvcGVydGllc0Bzd2MvaGVscGVycy9fL19vYmplY3Rfd2l0aG91dF9wcm9wZXJ0aWVzX29iamVjdF93aXRob3V0X3Byb3BlcnRpZXNfbG9vc2VAc3djL2hlbHBlcnMvXy9fb2JqZWN0X3dpdGhvdXRfcHJvcGVydGllc19sb29zZV9wb3NzaWJsZV9jb25zdHJ1Y3Rvcl9yZXR1cm5Ac3djL2hlbHBlcnMvXy9fcG9zc2libGVfY29uc3RydWN0b3JfcmV0dXJuX3JlYWRfb25seV9lcnJvckBzd2MvaGVscGVycy9fL19yZWFkX29ubHlfZXJyb3Jfc2V0QHN3Yy9oZWxwZXJzL18vX3NldF9zZXRfcHJvdG90eXBlX29mQHN3Yy9oZWxwZXJzL18vX3NldF9wcm90b3R5cGVfb2Zfc2tpcF9maXJzdF9nZW5lcmF0b3JfbmV4dEBzd2MvaGVscGVycy9fL19za2lwX2ZpcnN0X2dlbmVyYXRvcl9uZXh0X3NsaWNlZF90b19hcnJheUBzd2MvaGVscGVycy9fL19zbGljZWRfdG9fYXJyYXlfc2xpY2VkX3RvX2FycmF5X2xvb3NlQHN3Yy9oZWxwZXJzL18vX3NsaWNlZF90b19hcnJheV9sb29zZV9zdXBlcl9wcm9wX2Jhc2VAc3djL2hlbHBlcnMvXy9fc3VwZXJfcHJvcF9iYXNlX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsQHN3Yy9oZWxwZXJzL18vX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX2xvb3NlQHN3Yy9oZWxwZXJzL18vX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX2xvb3NlX3Rocm93QHN3Yy9oZWxwZXJzL18vX3Rocm93X3RvX2FycmF5QHN3Yy9oZWxwZXJzL18vX3RvX2FycmF5X3RvX2NvbnN1bWFibGVfYXJyYXlAc3djL2hlbHBlcnMvXy9fdG9fY29uc3VtYWJsZV9hcnJheV90b19wcmltaXRpdmVAc3djL2hlbHBlcnMvXy9fdG9fcHJpbWl0aXZlX3RvX3Byb3BlcnR5X2tleUBzd2MvaGVscGVycy9fL190b19wcm9wZXJ0eV9rZXlfdXBkYXRlQHN3Yy9oZWxwZXJzL18vX3VwZGF0ZV90eXBlX29mQHN3Yy9oZWxwZXJzL18vX3R5cGVfb2ZfdW5zdXBwb3J0ZWRfaXRlcmFibGVfdG9fYXJyYXlAc3djL2hlbHBlcnMvXy9fdW5zdXBwb3J0ZWRfaXRlcmFibGVfdG9fYXJyYXlfd3JhcF9hc3luY19nZW5lcmF0b3JAc3djL2hlbHBlcnMvXy9fd3JhcF9hc3luY19nZW5lcmF0b3Jfd3JhcF9uYXRpdmVfc3VwZXJAc3djL2hlbHBlcnMvXy9fd3JhcF9uYXRpdmVfc3VwZXJfd3JpdGVfb25seV9lcnJvckBzd2MvaGVscGVycy9fL193cml0ZV9vbmx5X2Vycm9yX2NsYXNzX3ByaXZhdGVfZmllbGRfZGVzdHJ1Y3R1cmVAc3djL2hlbHBlcnMvXy9fY2xhc3NfcHJpdmF0ZV9maWVsZF9kZXN0cnVjdHVyZV9jbGFzc19zdGF0aWNfcHJpdmF0ZV9maWVsZF9kZXN0cnVjdHVyZUBzd2MvaGVscGVycy9fL19jbGFzc19zdGF0aWNfcHJpdmF0ZV9maWVsZF9kZXN0cnVjdHVyZV9jbGFzc19zdGF0aWNfcHJpdmF0ZV9tZXRob2RfZ2V0QHN3Yy9oZWxwZXJzL18vX2NsYXNzX3N0YXRpY19wcml2YXRlX21ldGhvZF9nZXRfY2xhc3NfY2hlY2tfcHJpdmF0ZV9zdGF0aWNfYWNjZXNzQHN3Yy9oZWxwZXJzL18vX2NsYXNzX2NoZWNrX3ByaXZhdGVfc3RhdGljX2FjY2Vzc19pc19uYXRpdmVfcmVmbGVjdF9jb25zdHJ1Y3RAc3djL2hlbHBlcnMvXy9faXNfbmF0aXZlX3JlZmxlY3RfY29uc3RydWN0X2NyZWF0ZV9zdXBlckBzd2MvaGVscGVycy9fL19jcmVhdGVfc3VwZXJfY3JlYXRlX2Zvcl9vZl9pdGVyYXRvcl9oZWxwZXJfbG9vc2VAc3djL2hlbHBlcnMvXy9fY3JlYXRlX2Zvcl9vZl9pdGVyYXRvcl9oZWxwZXJfbG9vc2VfdHNfZGVjb3JhdGVAc3djL2hlbHBlcnMvXy9fdHNfZGVjb3JhdGVfdHNfZ2VuZXJhdG9yQHN3Yy9oZWxwZXJzL18vX3RzX2dlbmVyYXRvcl90c19tZXRhZGF0YUBzd2MvaGVscGVycy9fL190c19tZXRhZGF0YV90c19wYXJhbUBzd2MvaGVscGVycy9fL190c19wYXJhbV90c192YWx1ZXNAc3djL2hlbHBlcnMvXy9fdHNfdmFsdWVzX3RzX2FkZF9kaXNwb3NhYmxlX3Jlc291cmNlQHN3Yy9oZWxwZXJzL18vX3RzX2FkZF9kaXNwb3NhYmxlX3Jlc291cmNlX3RzX2Rpc3Bvc2VfcmVzb3VyY2VzQHN3Yy9oZWxwZXJzL18vX3RzX2Rpc3Bvc2VfcmVzb3VyY2VzX2FwcGx5X2RlY3NfMjIwM19yQHN3Yy9oZWxwZXJzL18vX2FwcGx5X2RlY3NfMjIwM19yX2lkZW50aXR5QHN3Yy9oZWxwZXJzL18vX2lkZW50aXR5X2Rpc3Bvc2VAc3djL2hlbHBlcnMvXy9fZGlzcG9zZV91c2luZ0Bzd2MvaGVscGVycy9fL191c2luZ191c2luZ19jdHhAc3djL2hlbHBlcnMvXy9fdXNpbmdfY3R4YXBwbHlfZGVjb3JhdGVkX2Rlc2NyaXB0b3JhcnJheV9saWtlX3RvX2FycmF5YXJyYXlfd2l0aF9ob2xlc2FycmF5X3dpdGhvdXRfaG9sZXNhc3NlcnRfdGhpc19pbml0aWFsaXplZGFzeW5jX2dlbmVyYXRvcmFzeW5jX2dlbmVyYXRvcl9kZWxlZ2F0ZWFzeW5jX2l0ZXJhdG9yYXN5bmNfdG9fZ2VuZXJhdG9yYXdhaXRfYXN5bmNfZ2VuZXJhdG9yYXdhaXRfdmFsdWVjYWxsX3N1cGVyY2hlY2tfcHJpdmF0ZV9yZWRlY2xhcmF0aW9uY2xhc3NfYXBwbHlfZGVzY3JpcHRvcl9kZXN0cnVjdHVyZWNsYXNzX2FwcGx5X2Rlc2NyaXB0b3JfZ2V0Y2xhc3NfYXBwbHlfZGVzY3JpcHRvcl9zZXRjbGFzc19hcHBseV9kZXNjcmlwdG9yX3VwZGF0ZWNsYXNzX2NhbGxfY2hlY2tjbGFzc19jaGVja19wcml2YXRlX3N0YXRpY19maWVsZF9kZXNjcmlwdG9yY2xhc3NfZXh0cmFjdF9maWVsZF9kZXNjcmlwdG9yY2xhc3NfbmFtZV90ZHpfZXJyb3JjbGFzc19wcml2YXRlX2ZpZWxkX2dldGNsYXNzX3ByaXZhdGVfZmllbGRfaW5pdGNsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2VfYmFzZWNsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2Vfa2V5Y2xhc3NfcHJpdmF0ZV9maWVsZF9zZXRjbGFzc19wcml2YXRlX2ZpZWxkX3VwZGF0ZWNsYXNzX3ByaXZhdGVfbWV0aG9kX2dldGNsYXNzX3ByaXZhdGVfbWV0aG9kX2luaXRjbGFzc19wcml2YXRlX21ldGhvZF9zZXRjbGFzc19zdGF0aWNfcHJpdmF0ZV9maWVsZF9zcGVjX2dldGNsYXNzX3N0YXRpY19wcml2YXRlX2ZpZWxkX3NwZWNfc2V0Y2xhc3Nfc3RhdGljX3ByaXZhdGVfZmllbGRfdXBkYXRlY29uc3RydWN0Y3JlYXRlX2NsYXNzZGVjb3JhdGVkZWZhdWx0c2RlZmluZV9lbnVtZXJhYmxlX3Byb3BlcnRpZXNkZWZpbmVfcHJvcGVydHlleHBvcnRfc3RhcmdldF9wcm90b3R5cGVfb2Zpbmhlcml0c2luaGVyaXRzX2xvb3NlaW5pdGlhbGl6ZXJfZGVmaW5lX3Byb3BlcnR5aW5pdGlhbGl6ZXJfd2FybmluZ19oZWxwZXJpbnRlcm9wX3JlcXVpcmVfZGVmYXVsdGludGVyb3BfcmVxdWlyZV93aWxkY2FyZGlzX25hdGl2ZV9mdW5jdGlvbml0ZXJhYmxlX3RvX2FycmF5aXRlcmFibGVfdG9fYXJyYXlfbGltaXRpdGVyYWJsZV90b19hcnJheV9saW1pdF9sb29zZWpzeG5ld19hcnJvd19jaGVja25vbl9pdGVyYWJsZV9yZXN0bm9uX2l0ZXJhYmxlX3NwcmVhZG9iamVjdF9kZXN0cnVjdHVyaW5nX2VtcHR5b2JqZWN0X3NwcmVhZG9iamVjdF9zcHJlYWRfcHJvcHNvYmplY3Rfd2l0aG91dF9wcm9wZXJ0aWVzb2JqZWN0X3dpdGhvdXRfcHJvcGVydGllc19sb29zZXBvc3NpYmxlX2NvbnN0cnVjdG9yX3JldHVybnJlYWRfb25seV9lcnJvcnNldF9wcm90b3R5cGVfb2Zza2lwX2ZpcnN0X2dlbmVyYXRvcl9uZXh0c2xpY2VkX3RvX2FycmF5c2xpY2VkX3RvX2FycmF5X2xvb3Nlc3VwZXJfcHJvcF9iYXNldGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWx0YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZXRvX2FycmF5dG9fY29uc3VtYWJsZV9hcnJheXRvX3ByaW1pdGl2ZXRvX3Byb3BlcnR5X2tleXR5cGVfb2Z1bnN1cHBvcnRlZF9pdGVyYWJsZV90b19hcnJheXdyYXBfYXN5bmNfZ2VuZXJhdG9yd3JhcF9uYXRpdmVfc3VwZXJ3cml0ZV9vbmx5X2Vycm9yY2xhc3NfcHJpdmF0ZV9maWVsZF9kZXN0cnVjdHVyZWNsYXNzX3N0YXRpY19wcml2YXRlX2ZpZWxkX2Rlc3RydWN0dXJlY2xhc3Nfc3RhdGljX3ByaXZhdGVfbWV0aG9kX2dldGNsYXNzX2NoZWNrX3ByaXZhdGVfc3RhdGljX2FjY2Vzc2lzX25hdGl2ZV9yZWZsZWN0X2NvbnN0cnVjdGNyZWF0ZV9zdXBlcmNyZWF0ZV9mb3Jfb2ZfaXRlcmF0b3JfaGVscGVyX2xvb3NldHNfZGVjb3JhdGV0c19nZW5lcmF0b3J0c19tZXRhZGF0YXRzX3BhcmFtdHNfdmFsdWVzdHNfYWRkX2Rpc3Bvc2FibGVfcmVzb3VyY2V0c19kaXNwb3NlX3Jlc291cmNlc2FwcGx5X2RlY3NfMjIwM19yaWRlbnRpdHlkaXNwb3NldXNpbmdfY3R4AAAAYwgAAAwAAAAEAAAAZAgAAGUIAAAEAAAABAAAAGYIAAAAAAAAAQAAAAEAAABvAQAAZwgAAAQAAAAEAAAAcgMAACRuYW1laW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZTogRXJyb3Igb2NjdXJyZWQgd2hpbGUgcGFyc2luZyBlcnJvcjogALWWFgBOAAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvc3djX2VjbWFfdHJhbnNmb3Jtc19iYXNlLTExLjIuMC9zcmMvaGVscGVycy9tb2QucnMADJcWAHcAAAAoAAAACQAAAEBzd2MvaGVscGVycy9fL1+UlxYAEAAAAHJlc291cmNlX19fdHNfAABoCAAAZnVuY3Rpb24gX2FwcGx5X2RlY29yYXRlZF9kZXNjcmlwdG9yKHRhcmdldCwgcHJvcGVydHksIGRlY29yYXRvcnMsIGRlc2NyaXB0b3IsIGNvbnRleHQpIHsKICAgIHZhciBkZXNjID0ge307CiAgICBPYmplY3RbImtlIiArICJ5cyJdKGRlc2NyaXB0b3IpLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7CiAgICAgICAgZGVzY1trZXldID0gZGVzY3JpcHRvcltrZXldOwogICAgfSk7CiAgICBkZXNjLmVudW1lcmFibGUgPSAhIWRlc2MuZW51bWVyYWJsZTsKICAgIGRlc2MuY29uZmlndXJhYmxlID0gISFkZXNjLmNvbmZpZ3VyYWJsZTsKICAgIGlmICgidmFsdWUiIGluIGRlc2MgfHwgZGVzYy5pbml0aWFsaXplcikgewogICAgICAgIGRlc2Mud3JpdGFibGUgPSB0cnVlOwogICAgfQogICAgZGVzYyA9IGRlY29yYXRvcnMuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGRlc2MsIGRlY29yYXRvcikgewogICAgICAgIHJldHVybiBkZWNvcmF0b3IgPyBkZWNvcmF0b3IodGFyZ2V0LCBwcm9wZXJ0eSwgZGVzYykgfHwgZGVzYyA6IGRlc2M7CiAgICB9LCBkZXNjKTsKICAgIHZhciBoYXNBY2Nlc3NvciA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkZXNjLCAiZ2V0IikgfHwgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGRlc2MsICJzZXQiKTsKICAgIGlmIChjb250ZXh0ICYmIGRlc2MuaW5pdGlhbGl6ZXIgIT09IHZvaWQgMCAmJiAhaGFzQWNjZXNzb3IpIHsKICAgICAgICBkZXNjLnZhbHVlID0gZGVzYy5pbml0aWFsaXplciA/IGRlc2MuaW5pdGlhbGl6ZXIuY2FsbChjb250ZXh0KSA6IHZvaWQgMDsKICAgICAgICBkZXNjLmluaXRpYWxpemVyID0gdW5kZWZpbmVkOwogICAgfQogICAgaWYgKGhhc0FjY2Vzc29yKSB7CiAgICAgICAgZGVsZXRlIGRlc2Mud3JpdGFibGU7CiAgICAgICAgZGVsZXRlIGRlc2MuaW5pdGlhbGl6ZXI7CiAgICAgICAgZGVsZXRlIGRlc2MudmFsdWU7CiAgICB9CiAgICBpZiAoZGVzYy5pbml0aWFsaXplciA9PT0gdm9pZCAwKSB7CiAgICAgICAgT2JqZWN0WyJkZWZpbmUiICsgIlByb3BlcnR5Il0odGFyZ2V0LCBwcm9wZXJ0eSwgZGVzYyk7CiAgICAgICAgZGVzYyA9IG51bGw7CiAgICB9CiAgICByZXR1cm4gZGVzYzsKfQpmdW5jdGlvbiBfYXJyYXlfbGlrZV90b19hcnJheShhcnIsIGxlbikgewogICAgaWYgKGxlbiA9PSBudWxsIHx8IGxlbiA+IGFyci5sZW5ndGgpIGxlbiA9IGFyci5sZW5ndGg7CiAgICBmb3IgKHZhciBpID0gMCwgYXJyMiA9IG5ldyBBcnJheShsZW4pOyBpIDwgbGVuOyBpKyspIGFycjJbaV0gPSBhcnJbaV07CiAgICByZXR1cm4gYXJyMjsKfQpmdW5jdGlvbiBfYXJyYXlfd2l0aF9ob2xlcyhhcnIpIHsKICAgIGlmIChBcnJheS5pc0FycmF5KGFycikpIHJldHVybiBhcnI7Cn0KZnVuY3Rpb24gX2FycmF5X3dpdGhvdXRfaG9sZXMoYXJyKSB7CiAgICBpZiAoQXJyYXkuaXNBcnJheShhcnIpKSByZXR1cm4gX2FycmF5X2xpa2VfdG9fYXJyYXkoYXJyKTsKfQpmdW5jdGlvbiBfYXNzZXJ0X3RoaXNfaW5pdGlhbGl6ZWQoc2VsZikgewogICAgaWYgKHNlbGYgPT09IHZvaWQgMCkgewogICAgICAgIHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7CiAgICB9CiAgICByZXR1cm4gc2VsZjsKfQpmdW5jdGlvbiBfYXN5bmNfZ2VuZXJhdG9yKGdlbikgewogICAgdmFyIGZyb250LCBiYWNrOwogICAgZnVuY3Rpb24gc2VuZChrZXksIGFyZykgewogICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAgICAgdmFyIHJlcXVlc3QgPSB7IGtleToga2V5LCBhcmc6IGFyZywgcmVzb2x2ZTogcmVzb2x2ZSwgcmVqZWN0OiByZWplY3QsIG5leHQ6IG51bGwgfTsKICAgICAgICAgICAgaWYgKGJhY2spIHsKICAgICAgICAgICAgICAgIGJhY2sgPSBiYWNrLm5leHQgPSByZXF1ZXN0OwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgZnJvbnQgPSBiYWNrID0gcmVxdWVzdDsKICAgICAgICAgICAgICAgIHJlc3VtZShrZXksIGFyZyk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH0KICAgIGZ1bmN0aW9uIHJlc3VtZShrZXksIGFyZykgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHZhciByZXN1bHQgPSBnZW5ba2V5XShhcmcpOwogICAgICAgICAgICB2YXIgdmFsdWUgPSByZXN1bHQudmFsdWU7CiAgICAgICAgICAgIHZhciB3cmFwcGVkQXdhaXQgPSB2YWx1ZSBpbnN0YW5jZW9mIF9hd2FpdF92YWx1ZTsKICAgICAgICAgICAgUHJvbWlzZS5yZXNvbHZlKHdyYXBwZWRBd2FpdCA/IHZhbHVlLndyYXBwZWQgOiB2YWx1ZSkudGhlbihmdW5jdGlvbihhcmcpIHsKICAgICAgICAgICAgICAgIGlmICh3cmFwcGVkQXdhaXQpIHsKICAgICAgICAgICAgICAgICAgICByZXN1bWUoIm5leHQiLCBhcmcpOwogICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHNldHRsZShyZXN1bHQuZG9uZSA/ICJyZXR1cm4iIDogIm5vcm1hbCIsIGFyZyk7CiAgICAgICAgICAgIH0sIGZ1bmN0aW9uKGVycikgewogICAgICAgICAgICAgICAgcmVzdW1lKCJ0aHJvdyIsIGVycik7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgICAgICBzZXR0bGUoInRocm93IiwgZXJyKTsKICAgICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBzZXR0bGUodHlwZSwgdmFsdWUpIHsKICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgICAgICAgY2FzZSAicmV0dXJuIjoKICAgICAgICAgICAgICAgIGZyb250LnJlc29sdmUoeyB2YWx1ZTogdmFsdWUsIGRvbmU6IHRydWUgfSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidGhyb3ciOgogICAgICAgICAgICAgICAgZnJvbnQucmVqZWN0KHZhbHVlKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgZnJvbnQucmVzb2x2ZSh7IHZhbHVlOiB2YWx1ZSwgZG9uZTogZmFsc2UgfSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgZnJvbnQgPSBmcm9udC5uZXh0OwogICAgICAgIGlmIChmcm9udCkgewogICAgICAgICAgICByZXN1bWUoZnJvbnQua2V5LCBmcm9udC5hcmcpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGJhY2sgPSBudWxsOwogICAgICAgIH0KICAgIH0KICAgIHRoaXMuX2ludm9rZSA9IHNlbmQ7CiAgICBpZiAodHlwZW9mIGdlbi5yZXR1cm4gIT09ICJmdW5jdGlvbiIpIHsKICAgICAgICB0aGlzLnJldHVybiA9IHVuZGVmaW5lZDsKICAgIH0KfQppZiAodHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBTeW1ib2wuYXN5bmNJdGVyYXRvcikgewogICAgX2FzeW5jX2dlbmVyYXRvci5wcm90b3R5cGVbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICB9Owp9Cl9hc3luY19nZW5lcmF0b3IucHJvdG90eXBlLm5leHQgPSBmdW5jdGlvbihhcmcpIHsKICAgIHJldHVybiB0aGlzLl9pbnZva2UoIm5leHQiLCBhcmcpOwp9OwpfYXN5bmNfZ2VuZXJhdG9yLnByb3RvdHlwZS50aHJvdyA9IGZ1bmN0aW9uKGFyZykgewogICAgcmV0dXJuIHRoaXMuX2ludm9rZSgidGhyb3ciLCBhcmcpOwp9OwpfYXN5bmNfZ2VuZXJhdG9yLnByb3RvdHlwZS5yZXR1cm4gPSBmdW5jdGlvbihhcmcpIHsKICAgIHJldHVybiB0aGlzLl9pbnZva2UoInJldHVybiIsIGFyZyk7Cn07CmZ1bmN0aW9uIF9hc3luY19nZW5lcmF0b3JfZGVsZWdhdGUoaW5uZXIsIGF3YWl0V3JhcCkgewogICAgdmFyIGl0ZXIgPSB7fSwgd2FpdGluZyA9IGZhbHNlOwogICAgZnVuY3Rpb24gcHVtcChrZXksIHZhbHVlKSB7CiAgICAgICAgd2FpdGluZyA9IHRydWU7CiAgICAgICAgdmFsdWUgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CiAgICAgICAgICAgIHJlc29sdmUoaW5uZXJba2V5XSh2YWx1ZSkpOwogICAgICAgIH0pOwogICAgICAgIHJldHVybiB7IGRvbmU6IGZhbHNlLCB2YWx1ZTogYXdhaXRXcmFwKHZhbHVlKSB9OwogICAgfQogICAgaWYgKHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgU3ltYm9sLml0ZXJhdG9yKSB7CiAgICAgICAgaXRlcltTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICAgIH07CiAgICB9CiAgICBpdGVyLm5leHQgPSBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgIGlmICh3YWl0aW5nKSB7CiAgICAgICAgICAgIHdhaXRpbmcgPSBmYWxzZTsKICAgICAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcHVtcCgibmV4dCIsIHZhbHVlKTsKICAgIH07CiAgICBpZiAodHlwZW9mIGlubmVyLnRocm93ID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgaXRlci50aHJvdyA9IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICAgIGlmICh3YWl0aW5nKSB7CiAgICAgICAgICAgICAgICB3YWl0aW5nID0gZmFsc2U7CiAgICAgICAgICAgICAgICB0aHJvdyB2YWx1ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gcHVtcCgidGhyb3ciLCB2YWx1ZSk7CiAgICAgICAgfTsKICAgIH0KICAgIGlmICh0eXBlb2YgaW5uZXIucmV0dXJuID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgaXRlci5yZXR1cm4gPSBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgICByZXR1cm4gcHVtcCgicmV0dXJuIiwgdmFsdWUpOwogICAgICAgIH07CiAgICB9CiAgICByZXR1cm4gaXRlcjsKfQpmdW5jdGlvbiBfYXN5bmNfaXRlcmF0b3IoaXRlcmFibGUpIHsKICAgIHZhciBtZXRob2QsIGFzeW5jLCBzeW5jLCByZXRyeSA9IDI7CiAgICBmb3IgKCJ1bmRlZmluZWQiICE9IHR5cGVvZiBTeW1ib2wgJiYgKGFzeW5jID0gU3ltYm9sLmFzeW5jSXRlcmF0b3IsIHN5bmMgPSBTeW1ib2wuaXRlcmF0b3IpOyByZXRyeS0tOykgewogICAgICAgIGlmIChhc3luYyAmJiBudWxsICE9IChtZXRob2QgPSBpdGVyYWJsZVthc3luY10pKSByZXR1cm4gbWV0aG9kLmNhbGwoaXRlcmFibGUpOwogICAgICAgIGlmIChzeW5jICYmIG51bGwgIT0gKG1ldGhvZCA9IGl0ZXJhYmxlW3N5bmNdKSkgcmV0dXJuIG5ldyBBc3luY0Zyb21TeW5jSXRlcmF0b3IobWV0aG9kLmNhbGwoaXRlcmFibGUpKTsKICAgICAgICBhc3luYyA9ICJAQGFzeW5jSXRlcmF0b3IiLCBzeW5jID0gIkBAaXRlcmF0b3IiOwogICAgfQogICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGlzIG5vdCBhc3luYyBpdGVyYWJsZSIpOwp9CmZ1bmN0aW9uIEFzeW5jRnJvbVN5bmNJdGVyYXRvcihzKSB7CiAgICBmdW5jdGlvbiBBc3luY0Zyb21TeW5jSXRlcmF0b3JDb250aW51YXRpb24ocikgewogICAgICAgIGlmIChPYmplY3QocikgIT09IHIpIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgVHlwZUVycm9yKHIgKyAiIGlzIG5vdCBhbiBvYmplY3QuIikpOwogICAgICAgIHZhciBkb25lID0gci5kb25lOwogICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoci52YWx1ZSkudGhlbihmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgICByZXR1cm4geyB2YWx1ZTogdmFsdWUsIGRvbmU6IGRvbmUgfTsKICAgICAgICB9KTsKICAgIH0KICAgIHJldHVybiBBc3luY0Zyb21TeW5jSXRlcmF0b3IgPSBmdW5jdGlvbihzKSB7CiAgICAgICAgdGhpcy5zID0gcywgdGhpcy5uID0gcy5uZXh0OwogICAgfSwKICAgICAgICBBc3luY0Zyb21TeW5jSXRlcmF0b3IucHJvdG90eXBlID0gewogICAgICAgICAgICBzOiBudWxsLAogICAgICAgICAgICBuOiBudWxsLAogICAgICAgICAgICBuZXh0OiBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIHJldHVybiBBc3luY0Zyb21TeW5jSXRlcmF0b3JDb250aW51YXRpb24odGhpcy5uLmFwcGx5KHRoaXMucywgYXJndW1lbnRzKSk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHJldHVybjogZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgICAgICAgIHZhciByZXQgPSB0aGlzLnMucmV0dXJuOwogICAgICAgICAgICAgICAgcmV0dXJuIHZvaWQgMCA9PT0gcmV0CiAgICAgICAgICAgICAgICAgICAgPyBQcm9taXNlLnJlc29sdmUoeyB2YWx1ZTogdmFsdWUsIGRvbmU6ICEwIH0pCiAgICAgICAgICAgICAgICAgICAgOiBBc3luY0Zyb21TeW5jSXRlcmF0b3JDb250aW51YXRpb24ocmV0LmFwcGx5KHRoaXMucywgYXJndW1lbnRzKSk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHRocm93OiBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgICAgICAgdmFyIHRociA9IHRoaXMucy5yZXR1cm47CiAgICAgICAgICAgICAgICByZXR1cm4gdm9pZCAwID09PSB0aHIgPyBQcm9taXNlLnJlamVjdCh2YWx1ZSkgOiBBc3luY0Zyb21TeW5jSXRlcmF0b3JDb250aW51YXRpb24odGhyLmFwcGx5KHRoaXMucywgYXJndW1lbnRzKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIG5ldyBBc3luY0Zyb21TeW5jSXRlcmF0b3Iocyk7Cn0KZnVuY3Rpb24gYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBrZXksIGFyZykgewogICAgdHJ5IHsKICAgICAgICB2YXIgaW5mbyA9IGdlbltrZXldKGFyZyk7CiAgICAgICAgdmFyIHZhbHVlID0gaW5mby52YWx1ZTsKICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgcmVqZWN0KGVycm9yKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBpZiAoaW5mby5kb25lKSB7CiAgICAgICAgcmVzb2x2ZSh2YWx1ZSk7CiAgICB9IGVsc2UgewogICAgICAgIFByb21pc2UucmVzb2x2ZSh2YWx1ZSkudGhlbihfbmV4dCwgX3Rocm93KTsKICAgIH0KfQpmdW5jdGlvbiBfYXN5bmNfdG9fZ2VuZXJhdG9yKGZuKSB7CiAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIHNlbGYgPSB0aGlzLCBhcmdzID0gYXJndW1lbnRzOwogICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAgICAgdmFyIGdlbiA9IGZuLmFwcGx5KHNlbGYsIGFyZ3MpOwogICAgICAgICAgICBmdW5jdGlvbiBfbmV4dCh2YWx1ZSkgewogICAgICAgICAgICAgICAgYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCAibmV4dCIsIHZhbHVlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBfdGhyb3coZXJyKSB7CiAgICAgICAgICAgICAgICBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csICJ0aHJvdyIsIGVycik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgX25leHQodW5kZWZpbmVkKTsKICAgICAgICB9KTsKICAgIH07Cn0KZnVuY3Rpb24gX2F3YWl0X2FzeW5jX2dlbmVyYXRvcih2YWx1ZSkgewogICAgcmV0dXJuIG5ldyBfYXdhaXRfdmFsdWUodmFsdWUpOwp9CmZ1bmN0aW9uIF9hd2FpdF92YWx1ZSh2YWx1ZSkgewogICAgdGhpcy53cmFwcGVkID0gdmFsdWU7Cn0KZnVuY3Rpb24gX2NhbGxfc3VwZXIoX3RoaXMsIGRlcml2ZWQsIGFyZ3MpIHsKICAgIC8vIFN1cGVyCiAgICBkZXJpdmVkID0gX2dldF9wcm90b3R5cGVfb2YoZGVyaXZlZCk7CiAgICByZXR1cm4gX3Bvc3NpYmxlX2NvbnN0cnVjdG9yX3JldHVybigKICAgICAgICBfdGhpcywKICAgICAgICBfaXNfbmF0aXZlX3JlZmxlY3RfY29uc3RydWN0KCkKICAgICAgICAgICAgLy8gTk9URTogVGhpcyBkb2Vzbid0IHdvcmsgaWYgdGhpcy5fX3Byb3RvX18uY29uc3RydWN0b3IgaGFzIGJlZW4gbW9kaWZpZWQuCiAgICAgICAgICAgID8gUmVmbGVjdC5jb25zdHJ1Y3QoZGVyaXZlZCwgYXJncyB8fCBbXSwgX2dldF9wcm90b3R5cGVfb2YoX3RoaXMpLmNvbnN0cnVjdG9yKQogICAgICAgICAgICA6IGRlcml2ZWQuYXBwbHkoX3RoaXMsIGFyZ3MpCiAgICApOwp9CmZ1bmN0aW9uIF9jaGVja19wcml2YXRlX3JlZGVjbGFyYXRpb24ob2JqLCBwcml2YXRlQ29sbGVjdGlvbikgewogICAgaWYgKHByaXZhdGVDb2xsZWN0aW9uLmhhcyhvYmopKSB7CiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKTsKICAgIH0KfQpmdW5jdGlvbiBfY2xhc3NfYXBwbHlfZGVzY3JpcHRvcl9kZXN0cnVjdHVyZShyZWNlaXZlciwgZGVzY3JpcHRvcikgewogICAgaWYgKGRlc2NyaXB0b3Iuc2V0KSB7CiAgICAgICAgaWYgKCEoIl9fZGVzdHJPYmoiIGluIGRlc2NyaXB0b3IpKSB7CiAgICAgICAgICAgIGRlc2NyaXB0b3IuX19kZXN0ck9iaiA9IHsKICAgICAgICAgICAgICAgIHNldCB2YWx1ZSh2KSB7CiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRvci5zZXQuY2FsbChyZWNlaXZlciwgdik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgICAgIHJldHVybiBkZXNjcmlwdG9yLl9fZGVzdHJPYmo7CiAgICB9IGVsc2UgewogICAgICAgIGlmICghZGVzY3JpcHRvci53cml0YWJsZSkgewogICAgICAgICAgICAvLyBUaGlzIHNob3VsZCBvbmx5IHRocm93IGluIHN0cmljdCBtb2RlLCBidXQgY2xhc3MgYm9kaWVzIGFyZQogICAgICAgICAgICAvLyBhbHdheXMgc3RyaWN0IGFuZCBwcml2YXRlIGZpZWxkcyBjYW4gb25seSBiZSB1c2VkIGluc2lkZQogICAgICAgICAgICAvLyBjbGFzcyBib2RpZXMuCiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byBzZXQgcmVhZCBvbmx5IHByaXZhdGUgZmllbGQiKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGRlc2NyaXB0b3I7CiAgICB9Cn0KZnVuY3Rpb24gX2NsYXNzX2FwcGx5X2Rlc2NyaXB0b3JfZ2V0KHJlY2VpdmVyLCBkZXNjcmlwdG9yKSB7CiAgICBpZiAoZGVzY3JpcHRvci5nZXQpIHsKICAgICAgICByZXR1cm4gZGVzY3JpcHRvci5nZXQuY2FsbChyZWNlaXZlcik7CiAgICB9CiAgICByZXR1cm4gZGVzY3JpcHRvci52YWx1ZTsKfQpmdW5jdGlvbiBfY2xhc3NfYXBwbHlfZGVzY3JpcHRvcl9zZXQocmVjZWl2ZXIsIGRlc2NyaXB0b3IsIHZhbHVlKSB7CiAgICBpZiAoZGVzY3JpcHRvci5zZXQpIHsKICAgICAgICBkZXNjcmlwdG9yLnNldC5jYWxsKHJlY2VpdmVyLCB2YWx1ZSk7CiAgICB9IGVsc2UgewogICAgICAgIGlmICghZGVzY3JpcHRvci53cml0YWJsZSkgewogICAgICAgICAgICAvLyBUaGlzIHNob3VsZCBvbmx5IHRocm93IGluIHN0cmljdCBtb2RlLCBidXQgY2xhc3MgYm9kaWVzIGFyZQogICAgICAgICAgICAvLyBhbHdheXMgc3RyaWN0IGFuZCBwcml2YXRlIGZpZWxkcyBjYW4gb25seSBiZSB1c2VkIGluc2lkZQogICAgICAgICAgICAvLyBjbGFzcyBib2RpZXMuCiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byBzZXQgcmVhZCBvbmx5IHByaXZhdGUgZmllbGQiKTsKICAgICAgICB9CiAgICAgICAgZGVzY3JpcHRvci52YWx1ZSA9IHZhbHVlOwogICAgfQp9CmZ1bmN0aW9uIF9jbGFzc19hcHBseV9kZXNjcmlwdG9yX3VwZGF0ZShyZWNlaXZlciwgZGVzY3JpcHRvcikgewogICAgaWYgKGRlc2NyaXB0b3Iuc2V0KSB7CiAgICAgICAgaWYgKCFkZXNjcmlwdG9yLmdldCkgewogICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gcmVhZCBzZXQgb25seSBwcml2YXRlIGZpZWxkIik7CiAgICAgICAgfQogICAgICAgIGlmICghKCJfX2Rlc3RyV3JhcHBlciIgaW4gZGVzY3JpcHRvcikpIHsKICAgICAgICAgICAgZGVzY3JpcHRvci5fX2Rlc3RyV3JhcHBlciA9IHsKICAgICAgICAgICAgICAgIHNldCB2YWx1ZSh2KSB7CiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRvci5zZXQuY2FsbChyZWNlaXZlciwgdik7CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgZ2V0IHZhbHVlKCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBkZXNjcmlwdG9yLmdldC5jYWxsKHJlY2VpdmVyKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGRlc2NyaXB0b3IuX19kZXN0cldyYXBwZXI7CiAgICB9IGVsc2UgewogICAgICAgIGlmICghZGVzY3JpcHRvci53cml0YWJsZSkgewogICAgICAgICAgICAvLyBUaGlzIHNob3VsZCBvbmx5IHRocm93IGluIHN0cmljdCBtb2RlLCBidXQgY2xhc3MgYm9kaWVzIGFyZQogICAgICAgICAgICAvLyBhbHdheXMgc3RyaWN0IGFuZCBwcml2YXRlIGZpZWxkcyBjYW4gb25seSBiZSB1c2VkIGluc2lkZQogICAgICAgICAgICAvLyBjbGFzcyBib2RpZXMuCiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byBzZXQgcmVhZCBvbmx5IHByaXZhdGUgZmllbGQiKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGRlc2NyaXB0b3I7CiAgICB9Cn0KZnVuY3Rpb24gX2NsYXNzX2NhbGxfY2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7CiAgICBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpOwogICAgfQp9CmZ1bmN0aW9uIF9jbGFzc19jaGVja19wcml2YXRlX3N0YXRpY19maWVsZF9kZXNjcmlwdG9yKGRlc2NyaXB0b3IsIGFjdGlvbikgewogICAgaWYgKGRlc2NyaXB0b3IgPT09IHVuZGVmaW5lZCkgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byAiICsgYWN0aW9uICsgIiBwcml2YXRlIHN0YXRpYyBmaWVsZCBiZWZvcmUgaXRzIGRlY2xhcmF0aW9uIik7CiAgICB9Cn0KZnVuY3Rpb24gX2NsYXNzX2V4dHJhY3RfZmllbGRfZGVzY3JpcHRvcihyZWNlaXZlciwgcHJpdmF0ZU1hcCwgYWN0aW9uKSB7CiAgICBpZiAoIXByaXZhdGVNYXAuaGFzKHJlY2VpdmVyKSkgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byAiICsgYWN0aW9uICsgIiBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZSIpOwogICAgfQogICAgcmV0dXJuIHByaXZhdGVNYXAuZ2V0KHJlY2VpdmVyKTsKfQpmdW5jdGlvbiBfY2xhc3NfbmFtZV90ZHpfZXJyb3IobmFtZSkgewogICAgdGhyb3cgbmV3IEVycm9yKCJDbGFzcyBcIiIgKyBuYW1lICsgIlwiIGNhbm5vdCBiZSByZWZlcmVuY2VkIGluIGNvbXB1dGVkIHByb3BlcnR5IGtleXMuIik7Cn0KZnVuY3Rpb24gX2NsYXNzX3ByaXZhdGVfZmllbGRfZ2V0KHJlY2VpdmVyLCBwcml2YXRlTWFwKSB7CiAgICB2YXIgZGVzY3JpcHRvciA9IF9jbGFzc19leHRyYWN0X2ZpZWxkX2Rlc2NyaXB0b3IocmVjZWl2ZXIsIHByaXZhdGVNYXAsICJnZXQiKTsKICAgIHJldHVybiBfY2xhc3NfYXBwbHlfZGVzY3JpcHRvcl9nZXQocmVjZWl2ZXIsIGRlc2NyaXB0b3IpOwp9CmZ1bmN0aW9uIF9jbGFzc19wcml2YXRlX2ZpZWxkX2luaXQob2JqLCBwcml2YXRlTWFwLCB2YWx1ZSkgewogICAgX2NoZWNrX3ByaXZhdGVfcmVkZWNsYXJhdGlvbihvYmosIHByaXZhdGVNYXApOwogICAgcHJpdmF0ZU1hcC5zZXQob2JqLCB2YWx1ZSk7Cn0KZnVuY3Rpb24gX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2VfYmFzZShyZWNlaXZlciwgcHJpdmF0ZUtleSkgewogICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocmVjZWl2ZXIsIHByaXZhdGVLZXkpKSB7CiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvIHVzZSBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZSIpOwogICAgfQogICAgcmV0dXJuIHJlY2VpdmVyOwp9CnZhciBpZCA9IDA7CmZ1bmN0aW9uIF9jbGFzc19wcml2YXRlX2ZpZWxkX2xvb3NlX2tleShuYW1lKSB7CiAgICByZXR1cm4gIl9fcHJpdmF0ZV8iICsgaWQrKyArICJfIiArIG5hbWU7Cn0KZnVuY3Rpb24gX2NsYXNzX3ByaXZhdGVfZmllbGRfc2V0KHJlY2VpdmVyLCBwcml2YXRlTWFwLCB2YWx1ZSkgewogICAgdmFyIGRlc2NyaXB0b3IgPSBfY2xhc3NfZXh0cmFjdF9maWVsZF9kZXNjcmlwdG9yKHJlY2VpdmVyLCBwcml2YXRlTWFwLCAic2V0Iik7CiAgICBfY2xhc3NfYXBwbHlfZGVzY3JpcHRvcl9zZXQocmVjZWl2ZXIsIGRlc2NyaXB0b3IsIHZhbHVlKTsKICAgIHJldHVybiB2YWx1ZTsKfQpmdW5jdGlvbiBfY2xhc3NfcHJpdmF0ZV9maWVsZF91cGRhdGUocmVjZWl2ZXIsIHByaXZhdGVNYXApIHsKICAgIHZhciBkZXNjcmlwdG9yID0gX2NsYXNzX2V4dHJhY3RfZmllbGRfZGVzY3JpcHRvcihyZWNlaXZlciwgcHJpdmF0ZU1hcCwgInVwZGF0ZSIpOwogICAgcmV0dXJuIF9jbGFzc19hcHBseV9kZXNjcmlwdG9yX3VwZGF0ZShyZWNlaXZlciwgZGVzY3JpcHRvcik7Cn0KZnVuY3Rpb24gX2NsYXNzX3ByaXZhdGVfbWV0aG9kX2dldChyZWNlaXZlciwgcHJpdmF0ZVNldCwgZm4pIHsKICAgIGlmICghcHJpdmF0ZVNldC5oYXMocmVjZWl2ZXIpKSB7CiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvIGdldCBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZSIpOwogICAgfQogICAgcmV0dXJuIGZuOwp9CmZ1bmN0aW9uIF9jbGFzc19wcml2YXRlX21ldGhvZF9pbml0KG9iaiwgcHJpdmF0ZVNldCkgewogICAgX2NoZWNrX3ByaXZhdGVfcmVkZWNsYXJhdGlvbihvYmosIHByaXZhdGVTZXQpOwogICAgcHJpdmF0ZVNldC5hZGQob2JqKTsKfQpmdW5jdGlvbiBfY2xhc3NfcHJpdmF0ZV9tZXRob2Rfc2V0KCkgewogICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvIHJlYXNzaWduIHByaXZhdGUgbWV0aG9kIik7Cn0KZnVuY3Rpb24gX2NsYXNzX3N0YXRpY19wcml2YXRlX2ZpZWxkX3NwZWNfZ2V0KHJlY2VpdmVyLCBjbGFzc0NvbnN0cnVjdG9yLCBkZXNjcmlwdG9yKSB7CiAgICBfY2xhc3NfY2hlY2tfcHJpdmF0ZV9zdGF0aWNfYWNjZXNzKHJlY2VpdmVyLCBjbGFzc0NvbnN0cnVjdG9yKTsKICAgIF9jbGFzc19jaGVja19wcml2YXRlX3N0YXRpY19maWVsZF9kZXNjcmlwdG9yKGRlc2NyaXB0b3IsICJnZXQiKTsKICAgIHJldHVybiBfY2xhc3NfYXBwbHlfZGVzY3JpcHRvcl9nZXQocmVjZWl2ZXIsIGRlc2NyaXB0b3IpOwp9CmZ1bmN0aW9uIF9jbGFzc19zdGF0aWNfcHJpdmF0ZV9maWVsZF9zcGVjX3NldChyZWNlaXZlciwgY2xhc3NDb25zdHJ1Y3RvciwgZGVzY3JpcHRvciwgdmFsdWUpIHsKICAgIF9jbGFzc19jaGVja19wcml2YXRlX3N0YXRpY19hY2Nlc3MocmVjZWl2ZXIsIGNsYXNzQ29uc3RydWN0b3IpOwogICAgX2NsYXNzX2NoZWNrX3ByaXZhdGVfc3RhdGljX2ZpZWxkX2Rlc2NyaXB0b3IoZGVzY3JpcHRvciwgInNldCIpOwogICAgX2NsYXNzX2FwcGx5X2Rlc2NyaXB0b3Jfc2V0KHJlY2VpdmVyLCBkZXNjcmlwdG9yLCB2YWx1ZSk7CiAgICByZXR1cm4gdmFsdWU7Cn0KZnVuY3Rpb24gX2NsYXNzX3N0YXRpY19wcml2YXRlX2ZpZWxkX3VwZGF0ZShyZWNlaXZlciwgY2xhc3NDb25zdHJ1Y3RvciwgZGVzY3JpcHRvcikgewogICAgX2NsYXNzX2NoZWNrX3ByaXZhdGVfc3RhdGljX2FjY2VzcyhyZWNlaXZlciwgY2xhc3NDb25zdHJ1Y3Rvcik7CiAgICBfY2xhc3NfY2hlY2tfcHJpdmF0ZV9zdGF0aWNfZmllbGRfZGVzY3JpcHRvcihkZXNjcmlwdG9yLCAidXBkYXRlIik7CiAgICByZXR1cm4gX2NsYXNzX2FwcGx5X2Rlc2NyaXB0b3JfdXBkYXRlKHJlY2VpdmVyLCBkZXNjcmlwdG9yKTsKfQpmdW5jdGlvbiBfY29uc3RydWN0KFBhcmVudCwgYXJncywgQ2xhc3MpIHsKICAgIGlmIChfaXNfbmF0aXZlX3JlZmxlY3RfY29uc3RydWN0KCkpIHsKICAgICAgICBfY29uc3RydWN0ID0gUmVmbGVjdC5jb25zdHJ1Y3Q7CiAgICB9IGVsc2UgewogICAgICAgIF9jb25zdHJ1Y3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3QoUGFyZW50LCBhcmdzLCBDbGFzcykgewogICAgICAgICAgICB2YXIgYSA9IFtudWxsXTsKICAgICAgICAgICAgYS5wdXNoLmFwcGx5KGEsIGFyZ3MpOwogICAgICAgICAgICB2YXIgQ29uc3RydWN0b3IgPSBGdW5jdGlvbi5iaW5kLmFwcGx5KFBhcmVudCwgYSk7CiAgICAgICAgICAgIHZhciBpbnN0YW5jZSA9IG5ldyBDb25zdHJ1Y3RvcigpOwogICAgICAgICAgICBpZiAoQ2xhc3MpIF9zZXRfcHJvdG90eXBlX29mKGluc3RhbmNlLCBDbGFzcy5wcm90b3R5cGUpOwogICAgICAgICAgICByZXR1cm4gaW5zdGFuY2U7CiAgICAgICAgfTsKICAgIH0KICAgIHJldHVybiBfY29uc3RydWN0LmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7Cn0KZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgewogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgewogICAgICAgIHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07CiAgICAgICAgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOwogICAgICAgIGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsKICAgICAgICBpZiAoInZhbHVlIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsKICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7CiAgICB9Cn0KZnVuY3Rpb24gX2NyZWF0ZV9jbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsKICAgIGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOwogICAgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOwogICAgcmV0dXJuIENvbnN0cnVjdG9yOwp9CmZ1bmN0aW9uIF9kZWNvcmF0ZShkZWNvcmF0b3JzLCBmYWN0b3J5LCBzdXBlckNsYXNzKSB7CiAgICB2YXIgciA9IGZhY3RvcnkoZnVuY3Rpb24gaW5pdGlhbGl6ZShPKSB7CiAgICAgICAgX2luaXRpYWxpemVJbnN0YW5jZUVsZW1lbnRzKE8sIGRlY29yYXRlZC5lbGVtZW50cyk7CiAgICB9LCBzdXBlckNsYXNzKTsKICAgIHZhciBkZWNvcmF0ZWQgPSBfZGVjb3JhdGVDbGFzcyhfY29hbGVzY2VDbGFzc0VsZW1lbnRzKHIuZC5tYXAoX2NyZWF0ZUVsZW1lbnREZXNjcmlwdG9yKSksIGRlY29yYXRvcnMpOwogICAgX2luaXRpYWxpemVDbGFzc0VsZW1lbnRzKHIuRiwgZGVjb3JhdGVkLmVsZW1lbnRzKTsKICAgIHJldHVybiBfcnVuQ2xhc3NGaW5pc2hlcnMoci5GLCBkZWNvcmF0ZWQuZmluaXNoZXJzKTsKfQoKZnVuY3Rpb24gX2NyZWF0ZUVsZW1lbnREZXNjcmlwdG9yKGRlZikgewogICAgdmFyIGtleSA9IF90b19wcm9wZXJ0eV9rZXkoZGVmLmtleSk7CiAgICB2YXIgZGVzY3JpcHRvcjsKICAgIGlmIChkZWYua2luZCA9PT0gIm1ldGhvZCIpIHsKICAgICAgICBkZXNjcmlwdG9yID0geyB2YWx1ZTogZGVmLnZhbHVlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiBmYWxzZSB9OwogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkZWYudmFsdWUsICJuYW1lIiwgeyB2YWx1ZTogX3R5cGVfb2Yoa2V5KSA9PT0gInN5bWJvbCIgPyAiIiA6IGtleSwgY29uZmlndXJhYmxlOiB0cnVlIH0pOwogICAgfSBlbHNlIGlmIChkZWYua2luZCA9PT0gImdldCIpIHsKICAgICAgICBkZXNjcmlwdG9yID0geyBnZXQ6IGRlZi52YWx1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiBmYWxzZSB9OwogICAgfSBlbHNlIGlmIChkZWYua2luZCA9PT0gInNldCIpIHsKICAgICAgICBkZXNjcmlwdG9yID0geyBzZXQ6IGRlZi52YWx1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiBmYWxzZSB9OwogICAgfSBlbHNlIGlmIChkZWYua2luZCA9PT0gImZpZWxkIikgewogICAgICAgIGRlc2NyaXB0b3IgPSB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUsIGVudW1lcmFibGU6IHRydWUgfTsKICAgIH0KICAgIHZhciBlbGVtZW50ID0gewogICAgICAgIGtpbmQ6IGRlZi5raW5kID09PSAiZmllbGQiID8gImZpZWxkIiA6ICJtZXRob2QiLAogICAgICAgIGtleToga2V5LAogICAgICAgIHBsYWNlbWVudDogZGVmLnN0YXRpYyA/ICJzdGF0aWMiIDogZGVmLmtpbmQgPT09ICJmaWVsZCIgPyAib3duIiA6ICJwcm90b3R5cGUiLAogICAgICAgIGRlc2NyaXB0b3I6IGRlc2NyaXB0b3IKICAgIH07CiAgICBpZiAoZGVmLmRlY29yYXRvcnMpIGVsZW1lbnQuZGVjb3JhdG9ycyA9IGRlZi5kZWNvcmF0b3JzOwogICAgaWYgKGRlZi5raW5kID09PSAiZmllbGQiKSBlbGVtZW50LmluaXRpYWxpemVyID0gZGVmLnZhbHVlOwogICAgcmV0dXJuIGVsZW1lbnQ7Cn0KZnVuY3Rpb24gX2NvYWxlc2NlR2V0dGVyU2V0dGVyKGVsZW1lbnQsIG90aGVyKSB7CiAgICBpZiAoZWxlbWVudC5kZXNjcmlwdG9yLmdldCAhPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgb3RoZXIuZGVzY3JpcHRvci5nZXQgPSBlbGVtZW50LmRlc2NyaXB0b3IuZ2V0OwogICAgfSBlbHNlIHsKICAgICAgICBvdGhlci5kZXNjcmlwdG9yLnNldCA9IGVsZW1lbnQuZGVzY3JpcHRvci5zZXQ7CiAgICB9Cn0KZnVuY3Rpb24gX2NvYWxlc2NlQ2xhc3NFbGVtZW50cyhlbGVtZW50cykgewogICAgdmFyIG5ld0VsZW1lbnRzID0gW107CiAgICB2YXIgaXNTYW1lRWxlbWVudCA9IGZ1bmN0aW9uIGlzU2FtZUVsZW1lbnQob3RoZXIpIHsKICAgICAgICByZXR1cm4gb3RoZXIua2luZCA9PT0gIm1ldGhvZCIgJiYgb3RoZXIua2V5ID09PSBlbGVtZW50LmtleSAmJiBvdGhlci5wbGFjZW1lbnQgPT09IGVsZW1lbnQucGxhY2VtZW50OwogICAgfTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHsKICAgICAgICB2YXIgZWxlbWVudCA9IGVsZW1lbnRzW2ldOwogICAgICAgIHZhciBvdGhlcjsKICAgICAgICBpZiAoZWxlbWVudC5raW5kID09PSAibWV0aG9kIiAmJiAob3RoZXIgPSBuZXdFbGVtZW50cy5maW5kKGlzU2FtZUVsZW1lbnQpKSkgewogICAgICAgICAgICBpZiAoX2lzRGF0YURlc2NyaXB0b3IoZWxlbWVudC5kZXNjcmlwdG9yKSB8fCBfaXNEYXRhRGVzY3JpcHRvcihvdGhlci5kZXNjcmlwdG9yKSkgewogICAgICAgICAgICAgICAgaWYgKF9oYXNEZWNvcmF0b3JzKGVsZW1lbnQpIHx8IF9oYXNEZWNvcmF0b3JzKG90aGVyKSkgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigiRHVwbGljYXRlZCBtZXRob2RzICgiICsgZWxlbWVudC5rZXkgKyAiKSBjYW4ndCBiZSBkZWNvcmF0ZWQuIik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBvdGhlci5kZXNjcmlwdG9yID0gZWxlbWVudC5kZXNjcmlwdG9yOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaWYgKF9oYXNEZWNvcmF0b3JzKGVsZW1lbnQpKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKF9oYXNEZWNvcmF0b3JzKG90aGVyKSkgewogICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGVjb3JhdG9ycyBjYW4ndCBiZSBwbGFjZWQgb24gZGlmZmVyZW50IGFjY2Vzc29ycyB3aXRoIGZvciAiICsgInRoZSBzYW1lIHByb3BlcnR5ICgiICsgZWxlbWVudC5rZXkgKyAiKS4iCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIG90aGVyLmRlY29yYXRvcnMgPSBlbGVtZW50LmRlY29yYXRvcnM7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBfY29hbGVzY2VHZXR0ZXJTZXR0ZXIoZWxlbWVudCwgb3RoZXIpOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgbmV3RWxlbWVudHMucHVzaChlbGVtZW50KTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gbmV3RWxlbWVudHM7Cn0KZnVuY3Rpb24gX2hhc0RlY29yYXRvcnMoZWxlbWVudCkgewogICAgcmV0dXJuIGVsZW1lbnQuZGVjb3JhdG9ycyAmJiBlbGVtZW50LmRlY29yYXRvcnMubGVuZ3RoOwp9CmZ1bmN0aW9uIF9pc0RhdGFEZXNjcmlwdG9yKGRlc2MpIHsKICAgIHJldHVybiBkZXNjICE9PSB1bmRlZmluZWQgJiYgIShkZXNjLnZhbHVlID09PSB1bmRlZmluZWQgJiYgZGVzYy53cml0YWJsZSA9PT0gdW5kZWZpbmVkKTsKfQpmdW5jdGlvbiBfaW5pdGlhbGl6ZUNsYXNzRWxlbWVudHMoRiwgZWxlbWVudHMpIHsKICAgIHZhciBwcm90byA9IEYucHJvdG90eXBlOwogICAgWyJtZXRob2QiLCAiZmllbGQiXS5mb3JFYWNoKGZ1bmN0aW9uKGtpbmQpIHsKICAgICAgICBlbGVtZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgICAgICAgICAgdmFyIHBsYWNlbWVudCA9IGVsZW1lbnQucGxhY2VtZW50OwogICAgICAgICAgICBpZiAoZWxlbWVudC5raW5kID09PSBraW5kICYmIChwbGFjZW1lbnQgPT09ICJzdGF0aWMiIHx8IHBsYWNlbWVudCA9PT0gInByb3RvdHlwZSIpKSB7CiAgICAgICAgICAgICAgICB2YXIgcmVjZWl2ZXIgPSBwbGFjZW1lbnQgPT09ICJzdGF0aWMiID8gRiA6IHByb3RvOwogICAgICAgICAgICAgICAgX2RlZmluZUNsYXNzRWxlbWVudChyZWNlaXZlciwgZWxlbWVudCk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH0pOwp9CmZ1bmN0aW9uIF9pbml0aWFsaXplSW5zdGFuY2VFbGVtZW50cyhPLCBlbGVtZW50cykgewogICAgWyJtZXRob2QiLCAiZmllbGQiXS5mb3JFYWNoKGZ1bmN0aW9uKGtpbmQpIHsKICAgICAgICBlbGVtZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgICAgICAgICAgaWYgKGVsZW1lbnQua2luZCA9PT0ga2luZCAmJiBlbGVtZW50LnBsYWNlbWVudCA9PT0gIm93biIpIHsKICAgICAgICAgICAgICAgIF9kZWZpbmVDbGFzc0VsZW1lbnQoTywgZWxlbWVudCk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH0pOwp9CmZ1bmN0aW9uIF9kZWZpbmVDbGFzc0VsZW1lbnQocmVjZWl2ZXIsIGVsZW1lbnQpIHsKICAgIHZhciBkZXNjcmlwdG9yID0gZWxlbWVudC5kZXNjcmlwdG9yOwogICAgaWYgKGVsZW1lbnQua2luZCA9PT0gImZpZWxkIikgewogICAgICAgIHZhciBpbml0aWFsaXplciA9IGVsZW1lbnQuaW5pdGlhbGl6ZXI7CiAgICAgICAgZGVzY3JpcHRvciA9IHsKICAgICAgICAgICAgZW51bWVyYWJsZTogZGVzY3JpcHRvci5lbnVtZXJhYmxlLAogICAgICAgICAgICB3cml0YWJsZTogZGVzY3JpcHRvci53cml0YWJsZSwKICAgICAgICAgICAgY29uZmlndXJhYmxlOiBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSwKICAgICAgICAgICAgdmFsdWU6IGluaXRpYWxpemVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBpbml0aWFsaXplci5jYWxsKHJlY2VpdmVyKQogICAgICAgIH07CiAgICB9CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVjZWl2ZXIsIGVsZW1lbnQua2V5LCBkZXNjcmlwdG9yKTsKfQpmdW5jdGlvbiBfZGVjb3JhdGVDbGFzcyhlbGVtZW50cywgZGVjb3JhdG9ycykgewogICAgdmFyIG5ld0VsZW1lbnRzID0gW107CiAgICB2YXIgZmluaXNoZXJzID0gW107CiAgICB2YXIgcGxhY2VtZW50cyA9IHsgc3RhdGljOiBbXSwgcHJvdG90eXBlOiBbXSwgb3duOiBbXSB9OwogICAgZWxlbWVudHMuZm9yRWFjaChmdW5jdGlvbihlbGVtZW50KSB7CiAgICAgICAgX2FkZEVsZW1lbnRQbGFjZW1lbnQoZWxlbWVudCwgcGxhY2VtZW50cyk7CiAgICB9KTsKICAgIGVsZW1lbnRzLmZvckVhY2goZnVuY3Rpb24oZWxlbWVudCkgewogICAgICAgIGlmICghX2hhc0RlY29yYXRvcnMoZWxlbWVudCkpIHJldHVybiBuZXdFbGVtZW50cy5wdXNoKGVsZW1lbnQpOwogICAgICAgIHZhciBlbGVtZW50RmluaXNoZXJzRXh0cmFzID0gX2RlY29yYXRlRWxlbWVudChlbGVtZW50LCBwbGFjZW1lbnRzKTsKICAgICAgICBuZXdFbGVtZW50cy5wdXNoKGVsZW1lbnRGaW5pc2hlcnNFeHRyYXMuZWxlbWVudCk7CiAgICAgICAgbmV3RWxlbWVudHMucHVzaC5hcHBseShuZXdFbGVtZW50cywgZWxlbWVudEZpbmlzaGVyc0V4dHJhcy5leHRyYXMpOwogICAgICAgIGZpbmlzaGVycy5wdXNoLmFwcGx5KGZpbmlzaGVycywgZWxlbWVudEZpbmlzaGVyc0V4dHJhcy5maW5pc2hlcnMpOwogICAgfSk7CiAgICBpZiAoIWRlY29yYXRvcnMpIHsKICAgICAgICByZXR1cm4geyBlbGVtZW50czogbmV3RWxlbWVudHMsIGZpbmlzaGVyczogZmluaXNoZXJzIH07CiAgICB9CiAgICB2YXIgcmVzdWx0ID0gX2RlY29yYXRlQ29uc3RydWN0b3IobmV3RWxlbWVudHMsIGRlY29yYXRvcnMpOwogICAgZmluaXNoZXJzLnB1c2guYXBwbHkoZmluaXNoZXJzLCByZXN1bHQuZmluaXNoZXJzKTsKICAgIHJlc3VsdC5maW5pc2hlcnMgPSBmaW5pc2hlcnM7CiAgICByZXR1cm4gcmVzdWx0Owp9CmZ1bmN0aW9uIF9hZGRFbGVtZW50UGxhY2VtZW50KGVsZW1lbnQsIHBsYWNlbWVudHMsIHNpbGVudCkgewogICAgdmFyIGtleXMgPSBwbGFjZW1lbnRzW2VsZW1lbnQucGxhY2VtZW50XTsKICAgIGlmICghc2lsZW50ICYmIGtleXMuaW5kZXhPZihlbGVtZW50LmtleSkgIT09IC0xKSB7CiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiRHVwbGljYXRlZCBlbGVtZW50ICgiICsgZWxlbWVudC5rZXkgKyAiKSIpOwogICAgfQogICAga2V5cy5wdXNoKGVsZW1lbnQua2V5KTsKfQpmdW5jdGlvbiBfZGVjb3JhdGVFbGVtZW50KGVsZW1lbnQsIHBsYWNlbWVudHMpIHsKICAgIHZhciBleHRyYXMgPSBbXTsKICAgIHZhciBmaW5pc2hlcnMgPSBbXTsKICAgIGZvciAodmFyIGRlY29yYXRvcnMgPSBlbGVtZW50LmRlY29yYXRvcnMsIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgdmFyIGtleXMgPSBwbGFjZW1lbnRzW2VsZW1lbnQucGxhY2VtZW50XTsKICAgICAgICBrZXlzLnNwbGljZShrZXlzLmluZGV4T2YoZWxlbWVudC5rZXkpLCAxKTsKICAgICAgICB2YXIgZWxlbWVudE9iamVjdCA9IF9mcm9tRWxlbWVudERlc2NyaXB0b3IoZWxlbWVudCk7CiAgICAgICAgdmFyIGVsZW1lbnRGaW5pc2hlckV4dHJhcyA9IF90b0VsZW1lbnRGaW5pc2hlckV4dHJhcygoMCwgZGVjb3JhdG9yc1tpXSkoZWxlbWVudE9iamVjdCkgfHwgZWxlbWVudE9iamVjdCk7CiAgICAgICAgZWxlbWVudCA9IGVsZW1lbnRGaW5pc2hlckV4dHJhcy5lbGVtZW50OwogICAgICAgIF9hZGRFbGVtZW50UGxhY2VtZW50KGVsZW1lbnQsIHBsYWNlbWVudHMpOwogICAgICAgIGlmIChlbGVtZW50RmluaXNoZXJFeHRyYXMuZmluaXNoZXIpIHsKICAgICAgICAgICAgZmluaXNoZXJzLnB1c2goZWxlbWVudEZpbmlzaGVyRXh0cmFzLmZpbmlzaGVyKTsKICAgICAgICB9CiAgICAgICAgdmFyIG5ld0V4dHJhcyA9IGVsZW1lbnRGaW5pc2hlckV4dHJhcy5leHRyYXM7CiAgICAgICAgaWYgKG5ld0V4dHJhcykgewogICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IG5ld0V4dHJhcy5sZW5ndGg7IGorKykgewogICAgICAgICAgICAgICAgX2FkZEVsZW1lbnRQbGFjZW1lbnQobmV3RXh0cmFzW2pdLCBwbGFjZW1lbnRzKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBleHRyYXMucHVzaC5hcHBseShleHRyYXMsIG5ld0V4dHJhcyk7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIHsgZWxlbWVudDogZWxlbWVudCwgZmluaXNoZXJzOiBmaW5pc2hlcnMsIGV4dHJhczogZXh0cmFzIH07Cn0KZnVuY3Rpb24gX2RlY29yYXRlQ29uc3RydWN0b3IoZWxlbWVudHMsIGRlY29yYXRvcnMpIHsKICAgIHZhciBmaW5pc2hlcnMgPSBbXTsKICAgIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgdmFyIG9iaiA9IF9mcm9tQ2xhc3NEZXNjcmlwdG9yKGVsZW1lbnRzKTsKICAgICAgICB2YXIgZWxlbWVudHNBbmRGaW5pc2hlciA9IF90b0NsYXNzRGVzY3JpcHRvcigoMCwgZGVjb3JhdG9yc1tpXSkob2JqKSB8fCBvYmopOwogICAgICAgIGlmIChlbGVtZW50c0FuZEZpbmlzaGVyLmZpbmlzaGVyICE9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgZmluaXNoZXJzLnB1c2goZWxlbWVudHNBbmRGaW5pc2hlci5maW5pc2hlcik7CiAgICAgICAgfQogICAgICAgIGlmIChlbGVtZW50c0FuZEZpbmlzaGVyLmVsZW1lbnRzICE9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgZWxlbWVudHMgPSBlbGVtZW50c0FuZEZpbmlzaGVyLmVsZW1lbnRzOwogICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGVsZW1lbnRzLmxlbmd0aCAtIDE7IGorKykgewogICAgICAgICAgICAgICAgZm9yICh2YXIgayA9IGogKyAxOyBrIDwgZWxlbWVudHMubGVuZ3RoOyBrKyspIHsKICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudHNbal0ua2V5ID09PSBlbGVtZW50c1trXS5rZXkgJiYgZWxlbWVudHNbal0ucGxhY2VtZW50ID09PSBlbGVtZW50c1trXS5wbGFjZW1lbnQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiRHVwbGljYXRlZCBlbGVtZW50ICgiICsgZWxlbWVudHNbal0ua2V5ICsgIikiKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICByZXR1cm4geyBlbGVtZW50czogZWxlbWVudHMsIGZpbmlzaGVyczogZmluaXNoZXJzIH07Cn0KZnVuY3Rpb24gX2Zyb21FbGVtZW50RGVzY3JpcHRvcihlbGVtZW50KSB7CiAgICB2YXIgb2JqID0geyBraW5kOiBlbGVtZW50LmtpbmQsIGtleTogZWxlbWVudC5rZXksIHBsYWNlbWVudDogZWxlbWVudC5wbGFjZW1lbnQsIGRlc2NyaXB0b3I6IGVsZW1lbnQuZGVzY3JpcHRvciB9OwogICAgdmFyIGRlc2MgPSB7IHZhbHVlOiAiRGVzY3JpcHRvciIsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgU3ltYm9sLnRvU3RyaW5nVGFnLCBkZXNjKTsKICAgIGlmIChlbGVtZW50LmtpbmQgPT09ICJmaWVsZCIpIG9iai5pbml0aWFsaXplciA9IGVsZW1lbnQuaW5pdGlhbGl6ZXI7CiAgICByZXR1cm4gb2JqOwp9CmZ1bmN0aW9uIF90b0VsZW1lbnREZXNjcmlwdG9ycyhlbGVtZW50T2JqZWN0cykgewogICAgaWYgKGVsZW1lbnRPYmplY3RzID09PSB1bmRlZmluZWQpIHJldHVybjsKICAgIHJldHVybiBfdG9fYXJyYXkoZWxlbWVudE9iamVjdHMpLm1hcChmdW5jdGlvbihlbGVtZW50T2JqZWN0KSB7CiAgICAgICAgdmFyIGVsZW1lbnQgPSBfdG9FbGVtZW50RGVzY3JpcHRvcihlbGVtZW50T2JqZWN0KTsKICAgICAgICBfZGlzYWxsb3dQcm9wZXJ0eShlbGVtZW50T2JqZWN0LCAiZmluaXNoZXIiLCAiQW4gZWxlbWVudCBkZXNjcmlwdG9yIik7CiAgICAgICAgX2Rpc2FsbG93UHJvcGVydHkoZWxlbWVudE9iamVjdCwgImV4dHJhcyIsICJBbiBlbGVtZW50IGRlc2NyaXB0b3IiKTsKICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgIH0pOwp9CmZ1bmN0aW9uIF90b0VsZW1lbnREZXNjcmlwdG9yKGVsZW1lbnRPYmplY3QpIHsKICAgIHZhciBraW5kID0gU3RyaW5nKGVsZW1lbnRPYmplY3Qua2luZCk7CiAgICBpZiAoa2luZCAhPT0gIm1ldGhvZCIgJiYga2luZCAhPT0gImZpZWxkIikgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoCiAgICAgICAgICAgICJBbiBlbGVtZW50IGRlc2NyaXB0b3IncyAua2luZCBwcm9wZXJ0eSBtdXN0IGJlIGVpdGhlciBcIm1ldGhvZFwiIG9yIgogICAgICAgICAgICAgICAgKyAiIFwiZmllbGRcIiwgYnV0IGEgZGVjb3JhdG9yIGNyZWF0ZWQgYW4gZWxlbWVudCBkZXNjcmlwdG9yIHdpdGgiICsgIiAua2luZCBcIiIgKyBraW5kICsgIlwiIgogICAgICAgICk7CiAgICB9CiAgICB2YXIga2V5ID0gX3RvX3Byb3BlcnR5X2tleShlbGVtZW50T2JqZWN0LmtleSk7CiAgICB2YXIgcGxhY2VtZW50ID0gU3RyaW5nKGVsZW1lbnRPYmplY3QucGxhY2VtZW50KTsKICAgIGlmIChwbGFjZW1lbnQgIT09ICJzdGF0aWMiICYmIHBsYWNlbWVudCAhPT0gInByb3RvdHlwZSIgJiYgcGxhY2VtZW50ICE9PSAib3duIikgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoCiAgICAgICAgICAgICJBbiBlbGVtZW50IGRlc2NyaXB0b3IncyAucGxhY2VtZW50IHByb3BlcnR5IG11c3QgYmUgb25lIG9mIFwic3RhdGljXCIsIgogICAgICAgICAgICAgICAgKyAiIFwicHJvdG90eXBlXCIgb3IgXCJvd25cIiwgYnV0IGEgZGVjb3JhdG9yIGNyZWF0ZWQgYW4gZWxlbWVudCBkZXNjcmlwdG9yIiArICIgd2l0aCAucGxhY2VtZW50IFwiIiArIHBsYWNlbWVudCArICJcIiIKICAgICAgICApOwogICAgfQogICAgdmFyIGRlc2NyaXB0b3IgPSBlbGVtZW50T2JqZWN0LmRlc2NyaXB0b3I7CiAgICBfZGlzYWxsb3dQcm9wZXJ0eShlbGVtZW50T2JqZWN0LCAiZWxlbWVudHMiLCAiQW4gZWxlbWVudCBkZXNjcmlwdG9yIik7CiAgICB2YXIgZWxlbWVudCA9IHsga2luZDoga2luZCwga2V5OiBrZXksIHBsYWNlbWVudDogcGxhY2VtZW50LCBkZXNjcmlwdG9yOiBPYmplY3QuYXNzaWduKHt9LCBkZXNjcmlwdG9yKSB9OwogICAgaWYgKGtpbmQgIT09ICJmaWVsZCIpIHsKICAgICAgICBfZGlzYWxsb3dQcm9wZXJ0eShlbGVtZW50T2JqZWN0LCAiaW5pdGlhbGl6ZXIiLCAiQSBtZXRob2QgZGVzY3JpcHRvciIpOwogICAgfSBlbHNlIHsKICAgICAgICBfZGlzYWxsb3dQcm9wZXJ0eShkZXNjcmlwdG9yLCAiZ2V0IiwgIlRoZSBwcm9wZXJ0eSBkZXNjcmlwdG9yIG9mIGEgZmllbGQgZGVzY3JpcHRvciIpOwogICAgICAgIF9kaXNhbGxvd1Byb3BlcnR5KGRlc2NyaXB0b3IsICJzZXQiLCAiVGhlIHByb3BlcnR5IGRlc2NyaXB0b3Igb2YgYSBmaWVsZCBkZXNjcmlwdG9yIik7CiAgICAgICAgX2Rpc2FsbG93UHJvcGVydHkoZGVzY3JpcHRvciwgInZhbHVlIiwgIlRoZSBwcm9wZXJ0eSBkZXNjcmlwdG9yIG9mIGEgZmllbGQgZGVzY3JpcHRvciIpOwogICAgICAgIGVsZW1lbnQuaW5pdGlhbGl6ZXIgPSBlbGVtZW50T2JqZWN0LmluaXRpYWxpemVyOwogICAgfQogICAgcmV0dXJuIGVsZW1lbnQ7Cn0KZnVuY3Rpb24gX3RvRWxlbWVudEZpbmlzaGVyRXh0cmFzKGVsZW1lbnRPYmplY3QpIHsKICAgIHZhciBlbGVtZW50ID0gX3RvRWxlbWVudERlc2NyaXB0b3IoZWxlbWVudE9iamVjdCk7CiAgICB2YXIgZmluaXNoZXIgPSBfb3B0aW9uYWxDYWxsYWJsZVByb3BlcnR5KGVsZW1lbnRPYmplY3QsICJmaW5pc2hlciIpOwogICAgdmFyIGV4dHJhcyA9IF90b0VsZW1lbnREZXNjcmlwdG9ycyhlbGVtZW50T2JqZWN0LmV4dHJhcyk7CiAgICByZXR1cm4geyBlbGVtZW50OiBlbGVtZW50LCBmaW5pc2hlcjogZmluaXNoZXIsIGV4dHJhczogZXh0cmFzIH07Cn0KZnVuY3Rpb24gX2Zyb21DbGFzc0Rlc2NyaXB0b3IoZWxlbWVudHMpIHsKICAgIHZhciBvYmogPSB7IGtpbmQ6ICJjbGFzcyIsIGVsZW1lbnRzOiBlbGVtZW50cy5tYXAoX2Zyb21FbGVtZW50RGVzY3JpcHRvcikgfTsKICAgIHZhciBkZXNjID0geyB2YWx1ZTogIkRlc2NyaXB0b3IiLCBjb25maWd1cmFibGU6IHRydWUgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIFN5bWJvbC50b1N0cmluZ1RhZywgZGVzYyk7CiAgICByZXR1cm4gb2JqOwp9CmZ1bmN0aW9uIF90b0NsYXNzRGVzY3JpcHRvcihvYmopIHsKICAgIHZhciBraW5kID0gU3RyaW5nKG9iai5raW5kKTsKICAgIGlmIChraW5kICE9PSAiY2xhc3MiKSB7CiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigKICAgICAgICAgICAgIkEgY2xhc3MgZGVzY3JpcHRvcidzIC5raW5kIHByb3BlcnR5IG11c3QgYmUgXCJjbGFzc1wiLCBidXQgYSBkZWNvcmF0b3IiICsgIiBjcmVhdGVkIGEgY2xhc3MgZGVzY3JpcHRvciB3aXRoIC5raW5kIFwiIiArIGtpbmQKICAgICAgICAgICAgICAgICsgIlwiIgogICAgICAgICk7CiAgICB9CiAgICBfZGlzYWxsb3dQcm9wZXJ0eShvYmosICJrZXkiLCAiQSBjbGFzcyBkZXNjcmlwdG9yIik7CiAgICBfZGlzYWxsb3dQcm9wZXJ0eShvYmosICJwbGFjZW1lbnQiLCAiQSBjbGFzcyBkZXNjcmlwdG9yIik7CiAgICBfZGlzYWxsb3dQcm9wZXJ0eShvYmosICJkZXNjcmlwdG9yIiwgIkEgY2xhc3MgZGVzY3JpcHRvciIpOwogICAgX2Rpc2FsbG93UHJvcGVydHkob2JqLCAiaW5pdGlhbGl6ZXIiLCAiQSBjbGFzcyBkZXNjcmlwdG9yIik7CiAgICBfZGlzYWxsb3dQcm9wZXJ0eShvYmosICJleHRyYXMiLCAiQSBjbGFzcyBkZXNjcmlwdG9yIik7CiAgICB2YXIgZmluaXNoZXIgPSBfb3B0aW9uYWxDYWxsYWJsZVByb3BlcnR5KG9iaiwgImZpbmlzaGVyIik7CiAgICB2YXIgZWxlbWVudHMgPSBfdG9FbGVtZW50RGVzY3JpcHRvcnMob2JqLmVsZW1lbnRzKTsKICAgIHJldHVybiB7IGVsZW1lbnRzOiBlbGVtZW50cywgZmluaXNoZXI6IGZpbmlzaGVyIH07Cn0KZnVuY3Rpb24gX2Rpc2FsbG93UHJvcGVydHkob2JqLCBuYW1lLCBvYmplY3RUeXBlKSB7CiAgICBpZiAob2JqW25hbWVdICE9PSB1bmRlZmluZWQpIHsKICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKG9iamVjdFR5cGUgKyAiIGNhbid0IGhhdmUgYSAuIiArIG5hbWUgKyAiIHByb3BlcnR5LiIpOwogICAgfQp9CmZ1bmN0aW9uIF9vcHRpb25hbENhbGxhYmxlUHJvcGVydHkob2JqLCBuYW1lKSB7CiAgICB2YXIgdmFsdWUgPSBvYmpbbmFtZV07CiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgdmFsdWUgIT09ICJmdW5jdGlvbiIpIHsKICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCAnIiArIG5hbWUgKyAiJyB0byBiZSBhIGZ1bmN0aW9uIik7CiAgICB9CiAgICByZXR1cm4gdmFsdWU7Cn0KZnVuY3Rpb24gX3J1bkNsYXNzRmluaXNoZXJzKGNvbnN0cnVjdG9yLCBmaW5pc2hlcnMpIHsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmluaXNoZXJzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIG5ld0NvbnN0cnVjdG9yID0gKDAsIGZpbmlzaGVyc1tpXSkoY29uc3RydWN0b3IpOwogICAgICAgIGlmIChuZXdDb25zdHJ1Y3RvciAhPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgbmV3Q29uc3RydWN0b3IgIT09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIkZpbmlzaGVycyBtdXN0IHJldHVybiBhIGNvbnN0cnVjdG9yLiIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnN0cnVjdG9yID0gbmV3Q29uc3RydWN0b3I7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIGNvbnN0cnVjdG9yOwp9CmZ1bmN0aW9uIF9kZWZhdWx0cyhvYmosIGRlZmF1bHRzKSB7CiAgICB2YXIga2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGRlZmF1bHRzKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgewogICAgICAgIHZhciBrZXkgPSBrZXlzW2ldOwogICAgICAgIHZhciB2YWx1ZSA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZGVmYXVsdHMsIGtleSk7CiAgICAgICAgaWYgKHZhbHVlICYmIHZhbHVlLmNvbmZpZ3VyYWJsZSAmJiBvYmpba2V5XSA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBvYmo7Cn0KZnVuY3Rpb24gX2RlZmluZV9lbnVtZXJhYmxlX3Byb3BlcnRpZXMob2JqLCBkZXNjcykgewogICAgZm9yICh2YXIga2V5IGluIGRlc2NzKSB7CiAgICAgICAgdmFyIGRlc2MgPSBkZXNjc1trZXldOwogICAgICAgIGRlc2MuY29uZmlndXJhYmxlID0gZGVzYy5lbnVtZXJhYmxlID0gdHJ1ZTsKICAgICAgICBpZiAoInZhbHVlIiBpbiBkZXNjKSBkZXNjLndyaXRhYmxlID0gdHJ1ZTsKICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIGRlc2MpOwogICAgfQogICAgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsKICAgICAgICB2YXIgb2JqZWN0U3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZGVzY3MpOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb2JqZWN0U3ltYm9scy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICB2YXIgc3ltID0gb2JqZWN0U3ltYm9sc1tpXTsKICAgICAgICAgICAgdmFyIGRlc2MgPSBkZXNjc1tzeW1dOwogICAgICAgICAgICBkZXNjLmNvbmZpZ3VyYWJsZSA9IGRlc2MuZW51bWVyYWJsZSA9IHRydWU7CiAgICAgICAgICAgIGlmICgidmFsdWUiIGluIGRlc2MpIGRlc2Mud3JpdGFibGUgPSB0cnVlOwogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBzeW0sIGRlc2MpOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBvYmo7Cn0KZnVuY3Rpb24gX2RlZmluZV9wcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsKICAgIGlmIChrZXkgaW4gb2JqKSB7CiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsKICAgIH0gZWxzZSB7CiAgICAgICAgb2JqW2tleV0gPSB2YWx1ZTsKICAgIH0KICAgIHJldHVybiBvYmo7Cn0KZnVuY3Rpb24gX2V4cG9ydF9zdGFyKGZyb20sIHRvKSB7CiAgICBPYmplY3Qua2V5cyhmcm9tKS5mb3JFYWNoKGZ1bmN0aW9uKGspIHsKICAgICAgICBpZiAoayAhPT0gImRlZmF1bHQiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodG8sIGspKSB7CiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0bywgaywgewogICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSwKICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZyb21ba107CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgIH0pOwogICAgcmV0dXJuIGZyb207Cn0KZnVuY3Rpb24gX2V4dGVuZHMoKSB7CiAgICBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odGFyZ2V0KSB7CiAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsKICAgICAgICAgICAgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgewogICAgICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsKICAgICAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiB0YXJnZXQ7CiAgICB9OwogICAgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7Cn0KZnVuY3Rpb24gX2dldCh0YXJnZXQsIHByb3BlcnR5LCByZWNlaXZlcikgewogICAgaWYgKHR5cGVvZiBSZWZsZWN0ICE9PSAidW5kZWZpbmVkIiAmJiBSZWZsZWN0LmdldCkgewogICAgICAgIF9nZXQgPSBSZWZsZWN0LmdldDsKICAgIH0gZWxzZSB7CiAgICAgICAgX2dldCA9IGZ1bmN0aW9uIGdldCh0YXJnZXQsIHByb3BlcnR5LCByZWNlaXZlcikgewogICAgICAgICAgICB2YXIgYmFzZSA9IF9zdXBlcl9wcm9wX2Jhc2UodGFyZ2V0LCBwcm9wZXJ0eSk7CiAgICAgICAgICAgIGlmICghYmFzZSkgcmV0dXJuOwogICAgICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYmFzZSwgcHJvcGVydHkpOwogICAgICAgICAgICBpZiAoZGVzYy5nZXQpIHsKICAgICAgICAgICAgICAgIHJldHVybiBkZXNjLmdldC5jYWxsKHJlY2VpdmVyIHx8IHRhcmdldCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIGRlc2MudmFsdWU7CiAgICAgICAgfTsKICAgIH0KICAgIHJldHVybiBfZ2V0KHRhcmdldCwgcHJvcGVydHksIHJlY2VpdmVyIHx8IHRhcmdldCk7Cn0KZnVuY3Rpb24gX2dldF9wcm90b3R5cGVfb2YobykgewogICAgX2dldF9wcm90b3R5cGVfb2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBnZXRQcm90b3R5cGVPZihvKSB7CiAgICAgICAgcmV0dXJuIG8uX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihvKTsKICAgIH07CiAgICByZXR1cm4gX2dldF9wcm90b3R5cGVfb2Yobyk7Cn0KZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7CiAgICBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICJmdW5jdGlvbiIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7CiAgICB9CiAgICBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsKICAgICAgICBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfQogICAgfSk7CiAgICBpZiAoc3VwZXJDbGFzcykgX3NldF9wcm90b3R5cGVfb2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpOwp9CmZ1bmN0aW9uIF9pbmhlcml0c19sb29zZShzdWJDbGFzcywgc3VwZXJDbGFzcykgewogICAgc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzLnByb3RvdHlwZSk7CiAgICBzdWJDbGFzcy5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBzdWJDbGFzczsKICAgIHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7Cn0KZnVuY3Rpb24gX2luaXRpYWxpemVyX2RlZmluZV9wcm9wZXJ0eSh0YXJnZXQsIHByb3BlcnR5LCBkZXNjcmlwdG9yLCBjb250ZXh0KSB7CiAgICBpZiAoIWRlc2NyaXB0b3IpIHJldHVybjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIHByb3BlcnR5LCB7CiAgICAgICAgZW51bWVyYWJsZTogZGVzY3JpcHRvci5lbnVtZXJhYmxlLAogICAgICAgIGNvbmZpZ3VyYWJsZTogZGVzY3JpcHRvci5jb25maWd1cmFibGUsCiAgICAgICAgd3JpdGFibGU6IGRlc2NyaXB0b3Iud3JpdGFibGUsCiAgICAgICAgdmFsdWU6IGRlc2NyaXB0b3IuaW5pdGlhbGl6ZXIgPyBkZXNjcmlwdG9yLmluaXRpYWxpemVyLmNhbGwoY29udGV4dCkgOiB2b2lkIDAKICAgIH0pOwp9CmZ1bmN0aW9uIF9pbml0aWFsaXplcl93YXJuaW5nX2hlbHBlcihkZXNjcmlwdG9yLCBjb250ZXh0KSB7CiAgICB0aHJvdyBuZXcgRXJyb3IoCiAgICAgICAgIkRlY29yYXRpbmcgY2xhc3MgcHJvcGVydHkgZmFpbGVkLiBQbGVhc2UgZW5zdXJlIHRoYXQgIiArICJwcm9wb3NhbC1jbGFzcy1wcm9wZXJ0aWVzIGlzIGVuYWJsZWQgYW5kIHNldCB0byB1c2UgbG9vc2UgbW9kZS4gIgogICAgICAgICAgICArICJUbyB1c2UgcHJvcG9zYWwtY2xhc3MtcHJvcGVydGllcyBpbiBzcGVjIG1vZGUgd2l0aCBkZWNvcmF0b3JzLCB3YWl0IGZvciAiCiAgICAgICAgICAgICsgInRoZSBuZXh0IG1ham9yIHZlcnNpb24gb2YgZGVjb3JhdG9ycyBpbiBzdGFnZSAyLiIKICAgICk7Cn0KZnVuY3Rpb24gX2luc3RhbmNlb2YobGVmdCwgcmlnaHQpIHsKICAgIGlmIChyaWdodCAhPSBudWxsICYmIHR5cGVvZiBTeW1ib2wgIT09ICJ1bmRlZmluZWQiICYmIHJpZ2h0W1N5bWJvbC5oYXNJbnN0YW5jZV0pIHsKICAgICAgICByZXR1cm4gISFyaWdodFtTeW1ib2wuaGFzSW5zdGFuY2VdKGxlZnQpOwogICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gbGVmdCBpbnN0YW5jZW9mIHJpZ2h0OwogICAgfQp9CmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChvYmopIHsKICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9Owp9CmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCkgewogICAgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSAiZnVuY3Rpb24iKSByZXR1cm4gbnVsbDsKICAgIHZhciBjYWNoZUJhYmVsSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7CiAgICB2YXIgY2FjaGVOb2RlSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7CiAgICByZXR1cm4gKF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uKG5vZGVJbnRlcm9wKSB7CiAgICAgICAgcmV0dXJuIG5vZGVJbnRlcm9wID8gY2FjaGVOb2RlSW50ZXJvcCA6IGNhY2hlQmFiZWxJbnRlcm9wOwogICAgfSkobm9kZUludGVyb3ApOwp9CmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQob2JqLCBub2RlSW50ZXJvcCkgewogICAgaWYgKCFub2RlSW50ZXJvcCAmJiBvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsKICAgICAgICByZXR1cm4gb2JqOwogICAgfQogICAgaWYgKG9iaiA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqICE9PSAib2JqZWN0IiAmJiB0eXBlb2Ygb2JqICE9PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgcmV0dXJuIHsgZGVmYXVsdDogb2JqIH07CiAgICB9CiAgICB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApOwogICAgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7CiAgICAgICAgcmV0dXJuIGNhY2hlLmdldChvYmopOwogICAgfQogICAgdmFyIG5ld09iaiA9IHsgX19wcm90b19fOiBudWxsIH07CiAgICB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7CiAgICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7CiAgICAgICAgaWYgKGtleSAhPT0gImRlZmF1bHQiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsKICAgICAgICAgICAgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7CiAgICAgICAgICAgIGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHsKICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBuZXdPYmpba2V5XSA9IG9ialtrZXldOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgbmV3T2JqLmRlZmF1bHQgPSBvYmo7CiAgICBpZiAoY2FjaGUpIHsKICAgICAgICBjYWNoZS5zZXQob2JqLCBuZXdPYmopOwogICAgfQogICAgcmV0dXJuIG5ld09iajsKfQpmdW5jdGlvbiBfaXNfbmF0aXZlX2Z1bmN0aW9uKGZuKSB7CiAgICByZXR1cm4gRnVuY3Rpb24udG9TdHJpbmcuY2FsbChmbikuaW5kZXhPZigiW25hdGl2ZSBjb2RlXSIpICE9PSAtMTsKfQpmdW5jdGlvbiBfaXRlcmFibGVfdG9fYXJyYXkoaXRlcikgewogICAgaWYgKHR5cGVvZiBTeW1ib2wgIT09ICJ1bmRlZmluZWQiICYmIGl0ZXJbU3ltYm9sLml0ZXJhdG9yXSAhPSBudWxsIHx8IGl0ZXJbIkBAaXRlcmF0b3IiXSAhPSBudWxsKSByZXR1cm4gQXJyYXkuZnJvbShpdGVyKTsKfQpmdW5jdGlvbiBfaXRlcmFibGVfdG9fYXJyYXlfbGltaXQoYXJyLCBpKSB7CiAgICB2YXIgX2kgPSBhcnIgPT0gbnVsbCA/IG51bGwgOiB0eXBlb2YgU3ltYm9sICE9PSAidW5kZWZpbmVkIiAmJiBhcnJbU3ltYm9sLml0ZXJhdG9yXSB8fCBhcnJbIkBAaXRlcmF0b3IiXTsKICAgIGlmIChfaSA9PSBudWxsKSByZXR1cm47CiAgICB2YXIgX2FyciA9IFtdOwogICAgdmFyIF9uID0gdHJ1ZTsKICAgIHZhciBfZCA9IGZhbHNlOwogICAgdmFyIF9zLCBfZTsKICAgIHRyeSB7CiAgICAgICAgZm9yIChfaSA9IF9pLmNhbGwoYXJyKTsgIShfbiA9IChfcyA9IF9pLm5leHQoKSkuZG9uZSk7IF9uID0gdHJ1ZSkgewogICAgICAgICAgICBfYXJyLnB1c2goX3MudmFsdWUpOwogICAgICAgICAgICBpZiAoaSAmJiBfYXJyLmxlbmd0aCA9PT0gaSkgYnJlYWs7CiAgICAgICAgfQogICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgX2QgPSB0cnVlOwogICAgICAgIF9lID0gZXJyOwogICAgfSBmaW5hbGx5IHsKICAgICAgICB0cnkgewogICAgICAgICAgICBpZiAoIV9uICYmIF9pWyJyZXR1cm4iXSAhPSBudWxsKSBfaVsicmV0dXJuIl0oKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICBpZiAoX2QpIHRocm93IF9lOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBfYXJyOwp9CmZ1bmN0aW9uIF9pdGVyYWJsZV90b19hcnJheV9saW1pdF9sb29zZShhcnIsIGkpIHsKICAgIHZhciBfaSA9IGFyciAmJiAodHlwZW9mIFN5bWJvbCAhPT0gInVuZGVmaW5lZCIgJiYgYXJyW1N5bWJvbC5pdGVyYXRvcl0gfHwgYXJyWyJAQGl0ZXJhdG9yIl0pOwogICAgaWYgKF9pID09IG51bGwpIHJldHVybjsKICAgIHZhciBfYXJyID0gW107CiAgICBmb3IgKF9pID0gX2kuY2FsbChhcnIpLCBfc3RlcDsgIShfc3RlcCA9IF9pLm5leHQoKSkuZG9uZTspIHsKICAgICAgICBfYXJyLnB1c2goX3N0ZXAudmFsdWUpOwogICAgICAgIGlmIChpICYmIF9hcnIubGVuZ3RoID09PSBpKSBicmVhazsKICAgIH0KICAgIHJldHVybiBfYXJyOwp9CnZhciBSRUFDVF9FTEVNRU5UX1RZUEU7CmZ1bmN0aW9uIF9qc3godHlwZSwgcHJvcHMsIGtleSwgY2hpbGRyZW4pIHsKICAgIGlmICghUkVBQ1RfRUxFTUVOVF9UWVBFKSB7CiAgICAgICAgUkVBQ1RfRUxFTUVOVF9UWVBFID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBTeW1ib2wuZm9yICYmIFN5bWJvbC5mb3IoInJlYWN0LmVsZW1lbnQiKSB8fCAweGVhYzc7CiAgICB9CiAgICB2YXIgZGVmYXVsdFByb3BzID0gdHlwZSAmJiB0eXBlLmRlZmF1bHRQcm9wczsKICAgIHZhciBjaGlsZHJlbkxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGggLSAzOwogICAgaWYgKCFwcm9wcyAmJiBjaGlsZHJlbkxlbmd0aCAhPT0gMCkgewogICAgICAgIHByb3BzID0geyBjaGlsZHJlbjogdm9pZCAwIH07CiAgICB9CiAgICBpZiAocHJvcHMgJiYgZGVmYXVsdFByb3BzKSB7CiAgICAgICAgZm9yICh2YXIgcHJvcE5hbWUgaW4gZGVmYXVsdFByb3BzKSB7CiAgICAgICAgICAgIGlmIChwcm9wc1twcm9wTmFtZV0gPT09IHZvaWQgMCkgewogICAgICAgICAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0gZGVmYXVsdFByb3BzW3Byb3BOYW1lXTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0gZWxzZSBpZiAoIXByb3BzKSB7CiAgICAgICAgcHJvcHMgPSBkZWZhdWx0UHJvcHMgfHwge307CiAgICB9CiAgICBpZiAoY2hpbGRyZW5MZW5ndGggPT09IDEpIHsKICAgICAgICBwcm9wcy5jaGlsZHJlbiA9IGNoaWxkcmVuOwogICAgfSBlbHNlIGlmIChjaGlsZHJlbkxlbmd0aCA+IDEpIHsKICAgICAgICB2YXIgY2hpbGRBcnJheSA9IG5ldyBBcnJheShjaGlsZHJlbkxlbmd0aCk7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbkxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGNoaWxkQXJyYXlbaV0gPSBhcmd1bWVudHNbaSArIDNdOwogICAgICAgIH0KICAgICAgICBwcm9wcy5jaGlsZHJlbiA9IGNoaWxkQXJyYXk7CiAgICB9CiAgICByZXR1cm4geyAkJHR5cGVvZjogUkVBQ1RfRUxFTUVOVF9UWVBFLCB0eXBlOiB0eXBlLCBrZXk6IGtleSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6ICIiICsga2V5LCByZWY6IG51bGwsIHByb3BzOiBwcm9wcywgX293bmVyOiBudWxsIH07Cn0KZnVuY3Rpb24gX25ld19hcnJvd19jaGVjayhpbm5lclRoaXMsIGJvdW5kVGhpcykgewogICAgaWYgKGlubmVyVGhpcyAhPT0gYm91bmRUaGlzKSB7CiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluc3RhbnRpYXRlIGFuIGFycm93IGZ1bmN0aW9uIik7CiAgICB9Cn0KZnVuY3Rpb24gX25vbl9pdGVyYWJsZV9yZXN0KCkgewogICAgdGhyb3cgbmV3IFR5cGVFcnJvcigKICAgICAgICAiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIgogICAgKTsKfQpmdW5jdGlvbiBfbm9uX2l0ZXJhYmxlX3NwcmVhZCgpIHsKICAgIHRocm93IG5ldyBUeXBlRXJyb3IoCiAgICAgICAgIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iCiAgICApOwp9CmZ1bmN0aW9uIF9vYmplY3RfZGVzdHJ1Y3R1cmluZ19lbXB0eShvKSB7CiAgICBpZiAobyA9PT0gbnVsbCB8fCBvID09PSB2b2lkIDApIHRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBkZXN0cnVjdHVyZSAiICsgbyk7CiAgICByZXR1cm4gbzsKfQpmdW5jdGlvbiBfb2JqZWN0X3NwcmVhZCh0YXJnZXQpIHsKICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXSAhPSBudWxsID8gYXJndW1lbnRzW2ldIDoge307CiAgICAgICAgdmFyIG93bktleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpOwogICAgICAgIGlmICh0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICBvd25LZXlzID0gb3duS2V5cy5jb25jYXQoCiAgICAgICAgICAgICAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHNvdXJjZSkuZmlsdGVyKGZ1bmN0aW9uKHN5bSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSwgc3ltKS5lbnVtZXJhYmxlOwogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgb3duS2V5cy5mb3JFYWNoKGZ1bmN0aW9uKGtleSkgewogICAgICAgICAgICBfZGVmaW5lX3Byb3BlcnR5KHRhcmdldCwga2V5LCBzb3VyY2Vba2V5XSk7CiAgICAgICAgfSk7CiAgICB9CiAgICByZXR1cm4gdGFyZ2V0Owp9CmZ1bmN0aW9uIG93bktleXMob2JqZWN0LCBlbnVtZXJhYmxlT25seSkgewogICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpOwogICAgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsKICAgICAgICB2YXIgc3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMob2JqZWN0KTsKICAgICAgICBpZiAoZW51bWVyYWJsZU9ubHkpIHsKICAgICAgICAgICAgc3ltYm9scyA9IHN5bWJvbHMuZmlsdGVyKGZ1bmN0aW9uKHN5bSkgewogICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBzeW0pLmVudW1lcmFibGU7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBrZXlzLnB1c2guYXBwbHkoa2V5cywgc3ltYm9scyk7CiAgICB9CiAgICByZXR1cm4ga2V5czsKfQpmdW5jdGlvbiBfb2JqZWN0X3NwcmVhZF9wcm9wcyh0YXJnZXQsIHNvdXJjZSkgewogICAgc291cmNlID0gc291cmNlICE9IG51bGwgPyBzb3VyY2UgOiB7fTsKICAgIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycykgewogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoc291cmNlKSk7CiAgICB9IGVsc2UgewogICAgICAgIG93bktleXMoT2JqZWN0KHNvdXJjZSkpLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7CiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIGtleSkpOwogICAgICAgIH0pOwogICAgfQogICAgcmV0dXJuIHRhcmdldDsKfQpmdW5jdGlvbiBfb2JqZWN0X3dpdGhvdXRfcHJvcGVydGllcyhzb3VyY2UsIGV4Y2x1ZGVkKSB7CiAgICBpZiAoc291cmNlID09IG51bGwpIHJldHVybiB7fTsKICAgIHZhciB0YXJnZXQgPSBfb2JqZWN0X3dpdGhvdXRfcHJvcGVydGllc19sb29zZShzb3VyY2UsIGV4Y2x1ZGVkKTsKICAgIHZhciBrZXksIGk7CiAgICBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykgewogICAgICAgIHZhciBzb3VyY2VTeW1ib2xLZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzb3VyY2UpOwogICAgICAgIGZvciAoaSA9IDA7IGkgPCBzb3VyY2VTeW1ib2xLZXlzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGtleSA9IHNvdXJjZVN5bWJvbEtleXNbaV07CiAgICAgICAgICAgIGlmIChleGNsdWRlZC5pbmRleE9mKGtleSkgPj0gMCkgY29udGludWU7CiAgICAgICAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHNvdXJjZSwga2V5KSkgY29udGludWU7CiAgICAgICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIHRhcmdldDsKfQpmdW5jdGlvbiBfb2JqZWN0X3dpdGhvdXRfcHJvcGVydGllc19sb29zZShzb3VyY2UsIGV4Y2x1ZGVkKSB7CiAgICBpZiAoc291cmNlID09IG51bGwpIHJldHVybiB7fTsKICAgIHZhciB0YXJnZXQgPSB7fTsKICAgIHZhciBzb3VyY2VLZXlzID0gT2JqZWN0LmtleXMoc291cmNlKTsKICAgIHZhciBrZXksIGk7CiAgICBmb3IgKGkgPSAwOyBpIDwgc291cmNlS2V5cy5sZW5ndGg7IGkrKykgewogICAgICAgIGtleSA9IHNvdXJjZUtleXNbaV07CiAgICAgICAgaWYgKGV4Y2x1ZGVkLmluZGV4T2Yoa2V5KSA+PSAwKSBjb250aW51ZTsKICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOwogICAgfQogICAgcmV0dXJuIHRhcmdldDsKfQpmdW5jdGlvbiBfcG9zc2libGVfY29uc3RydWN0b3JfcmV0dXJuKHNlbGYsIGNhbGwpIHsKICAgIGlmIChjYWxsICYmIChfdHlwZV9vZihjYWxsKSA9PT0gIm9iamVjdCIgfHwgdHlwZW9mIGNhbGwgPT09ICJmdW5jdGlvbiIpKSB7CiAgICAgICAgcmV0dXJuIGNhbGw7CiAgICB9CiAgICByZXR1cm4gX2Fzc2VydF90aGlzX2luaXRpYWxpemVkKHNlbGYpOwp9CmZ1bmN0aW9uIF9yZWFkX29ubHlfZXJyb3IobmFtZSkgewogICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiXCIiICsgbmFtZSArICJcIiBpcyByZWFkLW9ubHkiKTsKfQpmdW5jdGlvbiBzZXQodGFyZ2V0LCBwcm9wZXJ0eSwgdmFsdWUsIHJlY2VpdmVyKSB7CiAgICBpZiAodHlwZW9mIFJlZmxlY3QgIT09ICJ1bmRlZmluZWQiICYmIFJlZmxlY3Quc2V0KSB7CiAgICAgICAgc2V0ID0gUmVmbGVjdC5zZXQ7CiAgICB9IGVsc2UgewogICAgICAgIHNldCA9IGZ1bmN0aW9uIHNldCh0YXJnZXQsIHByb3BlcnR5LCB2YWx1ZSwgcmVjZWl2ZXIpIHsKICAgICAgICAgICAgdmFyIGJhc2UgPSBfc3VwZXJfcHJvcF9iYXNlKHRhcmdldCwgcHJvcGVydHkpOwogICAgICAgICAgICB2YXIgZGVzYzsKICAgICAgICAgICAgaWYgKGJhc2UpIHsKICAgICAgICAgICAgICAgIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGJhc2UsIHByb3BlcnR5KTsKICAgICAgICAgICAgICAgIGlmIChkZXNjLnNldCkgewogICAgICAgICAgICAgICAgICAgIGRlc2Muc2V0LmNhbGwocmVjZWl2ZXIsIHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWRlc2Mud3JpdGFibGUpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocmVjZWl2ZXIsIHByb3BlcnR5KTsKICAgICAgICAgICAgaWYgKGRlc2MpIHsKICAgICAgICAgICAgICAgIGlmICghZGVzYy53cml0YWJsZSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGRlc2MudmFsdWUgPSB2YWx1ZTsKICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyZWNlaXZlciwgcHJvcGVydHksIGRlc2MpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgX2RlZmluZV9wcm9wZXJ0eShyZWNlaXZlciwgcHJvcGVydHksIHZhbHVlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9OwogICAgfQogICAgcmV0dXJuIHNldCh0YXJnZXQsIHByb3BlcnR5LCB2YWx1ZSwgcmVjZWl2ZXIpOwp9CmZ1bmN0aW9uIF9zZXQodGFyZ2V0LCBwcm9wZXJ0eSwgdmFsdWUsIHJlY2VpdmVyLCBpc1N0cmljdCkgewogICAgdmFyIHMgPSBzZXQodGFyZ2V0LCBwcm9wZXJ0eSwgdmFsdWUsIHJlY2VpdmVyIHx8IHRhcmdldCk7CiAgICBpZiAoIXMgJiYgaXNTdHJpY3QpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImZhaWxlZCB0byBzZXQgcHJvcGVydHkiKTsKICAgIH0KICAgIHJldHVybiB2YWx1ZTsKfQpmdW5jdGlvbiBfc2V0X3Byb3RvdHlwZV9vZihvLCBwKSB7CiAgICBfc2V0X3Byb3RvdHlwZV9vZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiBzZXRQcm90b3R5cGVPZihvLCBwKSB7CiAgICAgICAgby5fX3Byb3RvX18gPSBwOwogICAgICAgIHJldHVybiBvOwogICAgfTsKICAgIHJldHVybiBfc2V0X3Byb3RvdHlwZV9vZihvLCBwKTsKfQpmdW5jdGlvbiBfc2tpcF9maXJzdF9nZW5lcmF0b3JfbmV4dChmbikgewogICAgcmV0dXJuIGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBpdCA9IGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgaXQubmV4dCgpOwogICAgICAgIHJldHVybiBpdDsKICAgIH07Cn0KZnVuY3Rpb24gX3NsaWNlZF90b19hcnJheShhcnIsIGkpIHsKICAgIHJldHVybiBfYXJyYXlfd2l0aF9ob2xlcyhhcnIpIHx8IF9pdGVyYWJsZV90b19hcnJheV9saW1pdChhcnIsIGkpIHx8IF91bnN1cHBvcnRlZF9pdGVyYWJsZV90b19hcnJheShhcnIsIGkpIHx8IF9ub25faXRlcmFibGVfcmVzdCgpOwp9CmZ1bmN0aW9uIF9zbGljZWRfdG9fYXJyYXlfbG9vc2UoYXJyLCBpKSB7CiAgICByZXR1cm4gX2FycmF5X3dpdGhfaG9sZXMoYXJyKSB8fCBfaXRlcmFibGVfdG9fYXJyYXlfbGltaXRfbG9vc2UoYXJyLCBpKSB8fCBfdW5zdXBwb3J0ZWRfaXRlcmFibGVfdG9fYXJyYXkoYXJyLCBpKQogICAgICAgIHx8IF9ub25faXRlcmFibGVfcmVzdCgpOwp9CmZ1bmN0aW9uIF9zdXBlcl9wcm9wX2Jhc2Uob2JqZWN0LCBwcm9wZXJ0eSkgewogICAgd2hpbGUgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSkpIHsKICAgICAgICBvYmplY3QgPSBfZ2V0X3Byb3RvdHlwZV9vZihvYmplY3QpOwogICAgICAgIGlmIChvYmplY3QgPT09IG51bGwpIGJyZWFrOwogICAgfQogICAgcmV0dXJuIG9iamVjdDsKfQpmdW5jdGlvbiBfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwoc3RyaW5ncywgcmF3KSB7CiAgICBpZiAoIXJhdykgewogICAgICAgIHJhdyA9IHN0cmluZ3Muc2xpY2UoMCk7CiAgICB9CiAgICByZXR1cm4gT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhzdHJpbmdzLCB7IHJhdzogeyB2YWx1ZTogT2JqZWN0LmZyZWV6ZShyYXcpIH0gfSkpOwp9CmZ1bmN0aW9uIF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZShzdHJpbmdzLCByYXcpIHsKICAgIGlmICghcmF3KSB7CiAgICAgICAgcmF3ID0gc3RyaW5ncy5zbGljZSgwKTsKICAgIH0KICAgIHN0cmluZ3MucmF3ID0gcmF3OwogICAgcmV0dXJuIHN0cmluZ3M7Cn0KZnVuY3Rpb24gX3Rocm93KGUpIHsKICAgIHRocm93IGU7Cn0KZnVuY3Rpb24gX3RvX2FycmF5KGFycikgewogICAgcmV0dXJuIF9hcnJheV93aXRoX2hvbGVzKGFycikgfHwgX2l0ZXJhYmxlX3RvX2FycmF5KGFycikgfHwgX3Vuc3VwcG9ydGVkX2l0ZXJhYmxlX3RvX2FycmF5KGFycikgfHwgX25vbl9pdGVyYWJsZV9yZXN0KCk7Cn0KZnVuY3Rpb24gX3RvX2NvbnN1bWFibGVfYXJyYXkoYXJyKSB7CiAgICByZXR1cm4gX2FycmF5X3dpdGhvdXRfaG9sZXMoYXJyKSB8fCBfaXRlcmFibGVfdG9fYXJyYXkoYXJyKSB8fCBfdW5zdXBwb3J0ZWRfaXRlcmFibGVfdG9fYXJyYXkoYXJyKSB8fCBfbm9uX2l0ZXJhYmxlX3NwcmVhZCgpOwp9CmZ1bmN0aW9uIF90b19wcmltaXRpdmUoaW5wdXQsIGhpbnQpIHsKICAgIGlmIChfdHlwZV9vZihpbnB1dCkgIT09ICJvYmplY3QiIHx8IGlucHV0ID09PSBudWxsKSByZXR1cm4gaW5wdXQ7CiAgICB2YXIgcHJpbSA9IGlucHV0W1N5bWJvbC50b1ByaW1pdGl2ZV07CiAgICBpZiAocHJpbSAhPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgdmFyIHJlcyA9IHByaW0uY2FsbChpbnB1dCwgaGludCB8fCAiZGVmYXVsdCIpOwogICAgICAgIGlmIChfdHlwZV9vZihyZXMpICE9PSAib2JqZWN0IikgcmV0dXJuIHJlczsKICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpOwogICAgfQogICAgcmV0dXJuIChoaW50ID09PSAic3RyaW5nIiA/IFN0cmluZyA6IE51bWJlcikoaW5wdXQpOwp9CmZ1bmN0aW9uIF90b19wcm9wZXJ0eV9rZXkoYXJnKSB7CiAgICB2YXIga2V5ID0gX3RvX3ByaW1pdGl2ZShhcmcsICJzdHJpbmciKTsKICAgIHJldHVybiBfdHlwZV9vZihrZXkpID09PSAic3ltYm9sIiA/IGtleSA6IFN0cmluZyhrZXkpOwp9CmZ1bmN0aW9uIF91cGRhdGUodGFyZ2V0LCBwcm9wZXJ0eSwgcmVjZWl2ZXIsIGlzU3RyaWN0KSB7CiAgICByZXR1cm4gewogICAgICAgIGdldCBfKCkgewogICAgICAgICAgICByZXR1cm4gX2dldCh0YXJnZXQsIHByb3BlcnR5LCByZWNlaXZlcik7CiAgICAgICAgfSwKICAgICAgICBzZXQgXyh2YWx1ZSkgewogICAgICAgICAgICBfc2V0KHRhcmdldCwgcHJvcGVydHksIHZhbHVlLCByZWNlaXZlciwgaXNTdHJpY3QpOwogICAgICAgIH0KICAgIH07Cn0KZnVuY3Rpb24gX3R5cGVfb2Yob2JqKSB7CiAgICAiQHN3Yy9oZWxwZXJzIC0gdHlwZW9mIjsKICAgIHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCAhPT0gInVuZGVmaW5lZCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgPyAic3ltYm9sIiA6IHR5cGVvZiBvYmo7Cn0KZnVuY3Rpb24gX3Vuc3VwcG9ydGVkX2l0ZXJhYmxlX3RvX2FycmF5KG8sIG1pbkxlbikgewogICAgaWYgKCFvKSByZXR1cm47CiAgICBpZiAodHlwZW9mIG8gPT09ICJzdHJpbmciKSByZXR1cm4gX2FycmF5X2xpa2VfdG9fYXJyYXkobywgbWluTGVuKTsKICAgIHZhciBuID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLnNsaWNlKDgsIC0xKTsKICAgIGlmIChuID09PSAiT2JqZWN0IiAmJiBvLmNvbnN0cnVjdG9yKSBuID0gby5jb25zdHJ1Y3Rvci5uYW1lOwogICAgaWYgKG4gPT09ICJNYXAiIHx8IG4gPT09ICJTZXQiKSByZXR1cm4gQXJyYXkuZnJvbShuKTsKICAgIGlmIChuID09PSAiQXJndW1lbnRzIiB8fCAvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSkgcmV0dXJuIF9hcnJheV9saWtlX3RvX2FycmF5KG8sIG1pbkxlbik7Cn0KZnVuY3Rpb24gX3dyYXBfYXN5bmNfZ2VuZXJhdG9yKGZuKSB7CiAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIG5ldyBfYXN5bmNfZ2VuZXJhdG9yKGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpOwogICAgfTsKfQpmdW5jdGlvbiBfd3JhcF9uYXRpdmVfc3VwZXIoQ2xhc3MpIHsKICAgIHZhciBfY2FjaGUgPSB0eXBlb2YgTWFwID09PSAiZnVuY3Rpb24iID8gbmV3IE1hcCgpIDogdW5kZWZpbmVkOwogICAgX3dyYXBfbmF0aXZlX3N1cGVyID0gZnVuY3Rpb24gd3JhcE5hdGl2ZVN1cGVyKENsYXNzKSB7CiAgICAgICAgaWYgKENsYXNzID09PSBudWxsIHx8ICFfaXNfbmF0aXZlX2Z1bmN0aW9uKENsYXNzKSkgcmV0dXJuIENsYXNzOwogICAgICAgIGlmICh0eXBlb2YgQ2xhc3MgIT09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTsKICAgICAgICB9CiAgICAgICAgaWYgKHR5cGVvZiBfY2FjaGUgIT09ICJ1bmRlZmluZWQiKSB7CiAgICAgICAgICAgIGlmIChfY2FjaGUuaGFzKENsYXNzKSkgcmV0dXJuIF9jYWNoZS5nZXQoQ2xhc3MpOwogICAgICAgICAgICBfY2FjaGUuc2V0KENsYXNzLCBXcmFwcGVyKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gV3JhcHBlcigpIHsKICAgICAgICAgICAgcmV0dXJuIF9jb25zdHJ1Y3QoQ2xhc3MsIGFyZ3VtZW50cywgX2dldF9wcm90b3R5cGVfb2YodGhpcykuY29uc3RydWN0b3IpOwogICAgICAgIH0KICAgICAgICBXcmFwcGVyLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoQ2xhc3MucHJvdG90eXBlLCB7CiAgICAgICAgICAgIGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBXcmFwcGVyLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIF9zZXRfcHJvdG90eXBlX29mKFdyYXBwZXIsIENsYXNzKTsKICAgIH07CiAgICByZXR1cm4gX3dyYXBfbmF0aXZlX3N1cGVyKENsYXNzKTsKfQpmdW5jdGlvbiBfd3JpdGVfb25seV9lcnJvcihuYW1lKSB7CiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJcIiIgKyBuYW1lICsgIlwiIGlzIHdyaXRlLW9ubHkiKTsKfQpmdW5jdGlvbiBfY2xhc3NfcHJpdmF0ZV9maWVsZF9kZXN0cnVjdHVyZShyZWNlaXZlciwgcHJpdmF0ZU1hcCkgewogICAgdmFyIGRlc2NyaXB0b3IgPSBfY2xhc3NfZXh0cmFjdF9maWVsZF9kZXNjcmlwdG9yKHJlY2VpdmVyLCBwcml2YXRlTWFwLCAic2V0Iik7CiAgICByZXR1cm4gX2NsYXNzX2FwcGx5X2Rlc2NyaXB0b3JfZGVzdHJ1Y3R1cmUocmVjZWl2ZXIsIGRlc2NyaXB0b3IpOwp9CmZ1bmN0aW9uIF9jbGFzc19zdGF0aWNfcHJpdmF0ZV9maWVsZF9kZXN0cnVjdHVyZShyZWNlaXZlciwgY2xhc3NDb25zdHJ1Y3RvciwgZGVzY3JpcHRvcikgewogICAgX2NsYXNzX2NoZWNrX3ByaXZhdGVfc3RhdGljX2FjY2VzcyhyZWNlaXZlciwgY2xhc3NDb25zdHJ1Y3Rvcik7CiAgICBfY2xhc3NfY2hlY2tfcHJpdmF0ZV9zdGF0aWNfZmllbGRfZGVzY3JpcHRvcihkZXNjcmlwdG9yLCAic2V0Iik7CiAgICByZXR1cm4gX2NsYXNzX2FwcGx5X2Rlc2NyaXB0b3JfZGVzdHJ1Y3R1cmUocmVjZWl2ZXIsIGRlc2NyaXB0b3IpOwp9CmZ1bmN0aW9uIF9jbGFzc19zdGF0aWNfcHJpdmF0ZV9tZXRob2RfZ2V0KHJlY2VpdmVyLCBjbGFzc0NvbnN0cnVjdG9yLCBtZXRob2QpIHsKICAgIF9jbGFzc19jaGVja19wcml2YXRlX3N0YXRpY19hY2Nlc3MocmVjZWl2ZXIsIGNsYXNzQ29uc3RydWN0b3IpOwogICAgcmV0dXJuIG1ldGhvZDsKfQpmdW5jdGlvbiBfY2xhc3NfY2hlY2tfcHJpdmF0ZV9zdGF0aWNfYWNjZXNzKHJlY2VpdmVyLCBjbGFzc0NvbnN0cnVjdG9yKSB7CiAgICBpZiAocmVjZWl2ZXIgIT09IGNsYXNzQ29uc3RydWN0b3IpIHsKICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIHN0YXRpYyBhY2Nlc3Mgb2Ygd3JvbmcgcHJvdmVuYW5jZSIpOwogICAgfQp9CmZ1bmN0aW9uIF9pc19uYXRpdmVfcmVmbGVjdF9jb25zdHJ1Y3QoKSB7CiAgICAvLyBTaW5jZSBSZWZsZWN0LmNvbnN0cnVjdCBjYW4ndCBiZSBwcm9wZXJseSBwb2x5ZmlsbGVkLCBzb21lCiAgICAvLyBpbXBsZW1lbnRhdGlvbnMgKGUuZy4gY29yZS1qc0AyKSBkb24ndCBzZXQgdGhlIGNvcnJlY3QgaW50ZXJuYWwgc2xvdHMuCiAgICAvLyBUaG9zZSBwb2x5ZmlsbHMgZG9uJ3QgYWxsb3cgdXMgdG8gc3ViY2xhc3MgYnVpbHQtaW5zLCBzbyB3ZSBuZWVkIHRvCiAgICAvLyB1c2Ugb3VyIGZhbGxiYWNrIGltcGxlbWVudGF0aW9uLgogICAgdHJ5IHsKICAgICAgICAvLyBJZiB0aGUgaW50ZXJuYWwgc2xvdHMgYXJlbid0IHNldCwgdGhpcyB0aHJvd3MgYW4gZXJyb3Igc2ltaWxhciB0bwogICAgICAgIC8vICAgVHlwZUVycm9yOiB0aGlzIGlzIG5vdCBhIEJvb2xlYW4gb2JqZWN0LgogICAgICAgIHZhciByZXN1bHQgPSAhQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sIFtdLCBmdW5jdGlvbigpIHt9KSk7CiAgICB9IGNhdGNoIChfKSB7fQogICAgcmV0dXJuIChfaXNfbmF0aXZlX3JlZmxlY3RfY29uc3RydWN0ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuICEhcmVzdWx0OwogICAgfSkoKTsKfQpmdW5jdGlvbiBfY3JlYXRlX3N1cGVyKERlcml2ZWQpIHsKICAgIHZhciBoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0ID0gX2lzX25hdGl2ZV9yZWZsZWN0X2NvbnN0cnVjdCgpOwogICAgcmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCkgewogICAgICAgIHZhciBTdXBlciA9IF9nZXRfcHJvdG90eXBlX29mKERlcml2ZWQpLCByZXN1bHQ7CiAgICAgICAgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsKICAgICAgICAgICAgdmFyIE5ld1RhcmdldCA9IF9nZXRfcHJvdG90eXBlX29mKHRoaXMpLmNvbnN0cnVjdG9yOwogICAgICAgICAgICByZXN1bHQgPSBSZWZsZWN0LmNvbnN0cnVjdChTdXBlciwgYXJndW1lbnRzLCBOZXdUYXJnZXQpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBfcG9zc2libGVfY29uc3RydWN0b3JfcmV0dXJuKHRoaXMsIHJlc3VsdCk7CiAgICB9Owp9CmZ1bmN0aW9uIF9jcmVhdGVfZm9yX29mX2l0ZXJhdG9yX2hlbHBlcl9sb29zZShvLCBhbGxvd0FycmF5TGlrZSkgewogICAgdmFyIGl0ID0gdHlwZW9mIFN5bWJvbCAhPT0gInVuZGVmaW5lZCIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdIHx8IG9bIkBAaXRlcmF0b3IiXTsKICAgIGlmIChpdCkgcmV0dXJuIChpdCA9IGl0LmNhbGwobykpLm5leHQuYmluZChpdCk7CiAgICAvLyBGYWxsYmFjayBmb3IgZW5naW5lcyB3aXRob3V0IHN5bWJvbCBzdXBwb3J0CiAgICBpZiAoQXJyYXkuaXNBcnJheShvKSB8fCAoaXQgPSBfdW5zdXBwb3J0ZWRfaXRlcmFibGVfdG9fYXJyYXkobykpIHx8IGFsbG93QXJyYXlMaWtlICYmIG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSAibnVtYmVyIikgewogICAgICAgIGlmIChpdCkgbyA9IGl0OwogICAgICAgIHZhciBpID0gMDsKICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlmIChpID49IG8ubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4geyBkb25lOiB0cnVlIH07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHsgZG9uZTogZmFsc2UsIHZhbHVlOiBvW2krK10gfTsKICAgICAgICB9OwogICAgfQogICAgdGhyb3cgbmV3IFR5cGVFcnJvcigKICAgICAgICAiSW52YWxpZCBhdHRlbXB0IHRvIGl0ZXJhdGUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iCiAgICApOwp9CmZ1bmN0aW9uIF90c19kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYykgewogICAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDsKICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gIm9iamVjdCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09ICJmdW5jdGlvbiIpIHIgPSBSZWZsZWN0LmRlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKTsKICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7CiAgICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByOwp9ZnVuY3Rpb24gX3RzX2dlbmVyYXRvcih0aGlzQXJnLCBib2R5KSB7CiAgICB2YXIgZiwgeSwgdCwgZywgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uICgpIHsgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOyByZXR1cm4gdFsxXTsgfSwgdHJ5czogW10sIG9wczogW10gfTsKICAgIHJldHVybiBnID0geyBuZXh0OiB2ZXJiKDApLCAidGhyb3ciOiB2ZXJiKDEpLCAicmV0dXJuIjogdmVyYigyKSB9LCB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIChnW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9KSwgZzsKICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfQogICAgZnVuY3Rpb24gc3RlcChvcCkgewogICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7CiAgICAgICAgd2hpbGUgKF8pIHRyeSB7CiAgICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbInJldHVybiJdIDogb3BbMF0gPyB5WyJ0aHJvdyJdIHx8ICgodCA9IHlbInJldHVybiJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDsKICAgICAgICAgICAgaWYgKHkgPSAwLCB0KSBvcCA9IFtvcFswXSAmIDIsIHQudmFsdWVdOwogICAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7CiAgICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgNDogXy5sYWJlbCsrOyByZXR1cm4geyB2YWx1ZTogb3BbMV0sIGRvbmU6IGZhbHNlIH07CiAgICAgICAgICAgICAgICBjYXNlIDU6IF8ubGFiZWwrKzsgeSA9IG9wWzFdOyBvcCA9IFswXTsgY29udGludWU7CiAgICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7IF8gPSAwOyBjb250aW51ZTsgfQogICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9CiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSA2ICYmIF8ubGFiZWwgPCB0WzFdKSB7IF8ubGFiZWwgPSB0WzFdOyB0ID0gb3A7IGJyZWFrOyB9CiAgICAgICAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsgXy5sYWJlbCA9IHRbMl07IF8ub3BzLnB1c2gob3ApOyBicmVhazsgfQogICAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTsKICAgICAgICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7IGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pOwogICAgICAgIH0gY2F0Y2ggKGUpIHsgb3AgPSBbNiwgZV07IHkgPSAwOyB9IGZpbmFsbHkgeyBmID0gdCA9IDA7IH0KICAgICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTsKICAgIH0KfWZ1bmN0aW9uIF90c19tZXRhZGF0YShrLCB2KSB7CiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09ICJvYmplY3QiICYmIHR5cGVvZiBSZWZsZWN0Lm1ldGFkYXRhID09PSAiZnVuY3Rpb24iKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShrLCB2KTsKfWZ1bmN0aW9uIF90c19wYXJhbShwYXJhbUluZGV4LCBkZWNvcmF0b3IpIHsKICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0LCBrZXkpIHsgZGVjb3JhdG9yKHRhcmdldCwga2V5LCBwYXJhbUluZGV4KTsgfQp9ZnVuY3Rpb24gX3RzX3ZhbHVlcyhvKSB7CiAgICB2YXIgcyA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDsKICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pOwogICAgaWYgKG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSAibnVtYmVyIikgcmV0dXJuIHsKICAgICAgICBuZXh0OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGlmIChvICYmIGkgPj0gby5sZW5ndGgpIG8gPSB2b2lkIDA7CiAgICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvICYmIG9baSsrXSwgZG9uZTogIW8gfTsKICAgICAgICB9CiAgICB9OwogICAgdGhyb3cgbmV3IFR5cGVFcnJvcihzID8gIk9iamVjdCBpcyBub3QgaXRlcmFibGUuIiA6ICJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7Cn1mdW5jdGlvbiBfdHNfYWRkX2Rpc3Bvc2FibGVfcmVzb3VyY2UoZW52LCB2YWx1ZSwgYXN5bmMpIHsKICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdm9pZCAwKSB7CiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gIm9iamVjdCIgJiYgdHlwZW9mIHZhbHVlICE9PSAiZnVuY3Rpb24iKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQuIik7CiAgICAgICAgdmFyIGRpc3Bvc2UsIGlubmVyOwogICAgICAgIGlmIChhc3luYykgewogICAgICAgICAgICBpZiAoIVN5bWJvbC5hc3luY0Rpc3Bvc2UpIHRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbC5hc3luY0Rpc3Bvc2UgaXMgbm90IGRlZmluZWQuIik7CiAgICAgICAgICAgIGRpc3Bvc2UgPSB2YWx1ZVtTeW1ib2wuYXN5bmNEaXNwb3NlXTsKICAgICAgICB9CiAgICAgICAgaWYgKGRpc3Bvc2UgPT09IHZvaWQgMCkgewogICAgICAgICAgICBpZiAoIVN5bWJvbC5kaXNwb3NlKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuZGlzcG9zZSBpcyBub3QgZGVmaW5lZC4iKTsKICAgICAgICAgICAgZGlzcG9zZSA9IHZhbHVlW1N5bWJvbC5kaXNwb3NlXTsKICAgICAgICAgICAgaWYgKGFzeW5jKSBpbm5lciA9IGRpc3Bvc2U7CiAgICAgICAgfQogICAgICAgIGlmICh0eXBlb2YgZGlzcG9zZSAhPT0gImZ1bmN0aW9uIikgdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IG5vdCBkaXNwb3NhYmxlLiIpOwogICAgICAgIGlmIChpbm5lcikgZGlzcG9zZSA9IGZ1bmN0aW9uICgpIHsgdHJ5IHsgaW5uZXIuY2FsbCh0aGlzKTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gUHJvbWlzZS5yZWplY3QoZSk7IH0gfTsKICAgICAgICBlbnYuc3RhY2sucHVzaCh7IHZhbHVlOiB2YWx1ZSwgZGlzcG9zZTogZGlzcG9zZSwgYXN5bmM6IGFzeW5jIH0pOwogICAgfQogICAgZWxzZSBpZiAoYXN5bmMpIHsKICAgICAgICBlbnYuc3RhY2sucHVzaCh7IGFzeW5jOiB0cnVlIH0pOwogICAgfQogICAgcmV0dXJuIHZhbHVlOwp9ZnVuY3Rpb24gX3RzX2Rpc3Bvc2VfcmVzb3VyY2VzKGVudikgewogICAgdmFyIF9TdXBwcmVzc2VkRXJyb3IgPSB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSAiZnVuY3Rpb24iID8gU3VwcHJlc3NlZEVycm9yIDogZnVuY3Rpb24gKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7CiAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7CiAgICAgICAgcmV0dXJuIGUubmFtZSA9ICJTdXBwcmVzc2VkRXJyb3IiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7CiAgICB9OwoKCiAgICByZXR1cm4gKF90c19kaXNwb3NlX3Jlc291cmNlcyA9IGZ1bmN0aW9uIF90c19kaXNwb3NlX3Jlc291cmNlcyhlbnYpIHsKICAgICAgICBmdW5jdGlvbiBmYWlsKGUpIHsKICAgICAgICAgICAgZW52LmVycm9yID0gZW52Lmhhc0Vycm9yID8gbmV3IF9TdXBwcmVzc2VkRXJyb3IoZSwgZW52LmVycm9yLCAiQW4gZXJyb3Igd2FzIHN1cHByZXNzZWQgZHVyaW5nIGRpc3Bvc2FsLiIpIDogZTsKICAgICAgICAgICAgZW52Lmhhc0Vycm9yID0gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgdmFyIHIsIHMgPSAwOwogICAgICAgIGZ1bmN0aW9uIG5leHQoKSB7CiAgICAgICAgICAgIHdoaWxlIChyID0gZW52LnN0YWNrLnBvcCgpKSB7CiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgIGlmICghci5hc3luYyAmJiBzID09PSAxKSByZXR1cm4gcyA9IDAsIGVudi5zdGFjay5wdXNoKHIpLCBQcm9taXNlLnJlc29sdmUoKS50aGVuKG5leHQpOwogICAgICAgICAgICAgICAgICAgIGlmIChyLmRpc3Bvc2UpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHIuZGlzcG9zZS5jYWxsKHIudmFsdWUpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoci5hc3luYykgcmV0dXJuIHMgfD0gMiwgUHJvbWlzZS5yZXNvbHZlKHJlc3VsdCkudGhlbihuZXh0LCBmdW5jdGlvbiAoZSkgeyBmYWlsKGUpOyByZXR1cm4gbmV4dCgpOyB9KTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSBzIHw9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgIGZhaWwoZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHMgPT09IDEpIHJldHVybiBlbnYuaGFzRXJyb3IgPyBQcm9taXNlLnJlamVjdChlbnYuZXJyb3IpIDogUHJvbWlzZS5yZXNvbHZlKCk7CiAgICAgICAgICAgIGlmIChlbnYuaGFzRXJyb3IpIHRocm93IGVudi5lcnJvcjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG5leHQoKTsKICAgIH0pKGVudik7Cn0vKiBAbWluVmVyc2lvbiA3LjIwLjAgKi8KCi8qKgogIEVudW1zIGFyZSB1c2VkIGluIHRoaXMgZmlsZSwgYnV0IG5vdCBhc3NpZ25lZCB0byB2YXJzIHRvIGF2b2lkIG5vbi1ob2lzdGFibGUgdmFsdWVzCgogIENPTlNUUlVDVE9SID0gMDsKICBQVUJMSUMgPSAxOwogIFBSSVZBVEUgPSAyOwoKICBGSUVMRCA9IDA7CiAgQUNDRVNTT1IgPSAxOwogIE1FVEhPRCA9IDI7CiAgR0VUVEVSID0gMzsKICBTRVRURVIgPSA0OwoKICBTVEFUSUMgPSA1OwoKICBDTEFTUyA9IDEwOyAvLyBvbmx5IHVzZWQgaW4gYXNzZXJ0VmFsaWRSZXR1cm5WYWx1ZQoqLwoKZnVuY3Rpb24gYXBwbHlEZWNzMjIwM1JGYWN0b3J5KCkgewogICAgZnVuY3Rpb24gY3JlYXRlQWRkSW5pdGlhbGl6ZXJNZXRob2QoaW5pdGlhbGl6ZXJzLCBkZWNvcmF0b3JGaW5pc2hlZFJlZikgewogICAgICAgIHJldHVybiBmdW5jdGlvbiBhZGRJbml0aWFsaXplcihpbml0aWFsaXplcikgewogICAgICAgICAgICBhc3NlcnROb3RGaW5pc2hlZChkZWNvcmF0b3JGaW5pc2hlZFJlZiwgImFkZEluaXRpYWxpemVyIik7CiAgICAgICAgICAgIGFzc2VydENhbGxhYmxlKGluaXRpYWxpemVyLCAiQW4gaW5pdGlhbGl6ZXIiKTsKICAgICAgICAgICAgaW5pdGlhbGl6ZXJzLnB1c2goaW5pdGlhbGl6ZXIpOwogICAgICAgIH07CiAgICB9CgogICAgZnVuY3Rpb24gbWVtYmVyRGVjKAogICAgICAgIGRlYywKICAgICAgICBuYW1lLAogICAgICAgIGRlc2MsCiAgICAgICAgaW5pdGlhbGl6ZXJzLAogICAgICAgIGtpbmQsCiAgICAgICAgaXNTdGF0aWMsCiAgICAgICAgaXNQcml2YXRlLAogICAgICAgIG1ldGFkYXRhLAogICAgICAgIHZhbHVlCiAgICApIHsKICAgICAgICB2YXIga2luZFN0cjsKCiAgICAgICAgc3dpdGNoIChraW5kKSB7CiAgICAgICAgICAgIGNhc2UgMSAvKiBBQ0NFU1NPUiAqLzoKICAgICAgICAgICAgICAgIGtpbmRTdHIgPSAiYWNjZXNzb3IiOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMiAvKiBNRVRIT0QgKi86CiAgICAgICAgICAgICAgICBraW5kU3RyID0gIm1ldGhvZCI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAzIC8qIEdFVFRFUiAqLzoKICAgICAgICAgICAgICAgIGtpbmRTdHIgPSAiZ2V0dGVyIjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDQgLyogU0VUVEVSICovOgogICAgICAgICAgICAgICAga2luZFN0ciA9ICJzZXR0ZXIiOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBraW5kU3RyID0gImZpZWxkIjsKICAgICAgICB9CgogICAgICAgIHZhciBjdHggPSB7CiAgICAgICAgICAgIGtpbmQ6IGtpbmRTdHIsCiAgICAgICAgICAgIG5hbWU6IGlzUHJpdmF0ZSA/ICIjIiArIG5hbWUgOiBuYW1lLAogICAgICAgICAgICBzdGF0aWM6IGlzU3RhdGljLAogICAgICAgICAgICBwcml2YXRlOiBpc1ByaXZhdGUsCiAgICAgICAgICAgIG1ldGFkYXRhOiBtZXRhZGF0YSwKICAgICAgICB9OwoKICAgICAgICB2YXIgZGVjb3JhdG9yRmluaXNoZWRSZWYgPSB7IHY6IGZhbHNlIH07CgogICAgICAgIGN0eC5hZGRJbml0aWFsaXplciA9IGNyZWF0ZUFkZEluaXRpYWxpemVyTWV0aG9kKAogICAgICAgICAgICBpbml0aWFsaXplcnMsCiAgICAgICAgICAgIGRlY29yYXRvckZpbmlzaGVkUmVmCiAgICAgICAgKTsKCiAgICAgICAgdmFyIGdldCwgc2V0OwogICAgICAgIGlmIChraW5kID09PSAwIC8qIEZJRUxEICovKSB7CiAgICAgICAgICAgIGlmIChpc1ByaXZhdGUpIHsKICAgICAgICAgICAgICAgIGdldCA9IGRlc2MuZ2V0OwogICAgICAgICAgICAgICAgc2V0ID0gZGVzYy5zZXQ7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBnZXQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXNbbmFtZV07CiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgc2V0ID0gZnVuY3Rpb24gKHYpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzW25hbWVdID0gdjsKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKGtpbmQgPT09IDIgLyogTUVUSE9EICovKSB7CiAgICAgICAgICAgIGdldCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiBkZXNjLnZhbHVlOwogICAgICAgICAgICB9OwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIC8vIHJlcGxhY2Ugd2l0aCB2YWx1ZXMgdGhhdCB3aWxsIGdvIHRocm91Z2ggdGhlIGZpbmFsIGdldHRlciBhbmQgc2V0dGVyCiAgICAgICAgICAgIGlmIChraW5kID09PSAxIC8qIEFDQ0VTU09SICovIHx8IGtpbmQgPT09IDMgLyogR0VUVEVSICovKSB7CiAgICAgICAgICAgICAgICBnZXQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRlc2MuZ2V0LmNhbGwodGhpcyk7CiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoa2luZCA9PT0gMSAvKiBBQ0NFU1NPUiAqLyB8fCBraW5kID09PSA0IC8qIFNFVFRFUiAqLykgewogICAgICAgICAgICAgICAgc2V0ID0gZnVuY3Rpb24gKHYpIHsKICAgICAgICAgICAgICAgICAgICBkZXNjLnNldC5jYWxsKHRoaXMsIHYpOwogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjdHguYWNjZXNzID0KICAgICAgICAgICAgZ2V0ICYmIHNldCA/IHsgZ2V0OiBnZXQsIHNldDogc2V0IH0gOiBnZXQgPyB7IGdldDogZ2V0IH0gOiB7IHNldDogc2V0IH07CgogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBkZWModmFsdWUsIGN0eCk7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgZGVjb3JhdG9yRmluaXNoZWRSZWYudiA9IHRydWU7CiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGFzc2VydE5vdEZpbmlzaGVkKGRlY29yYXRvckZpbmlzaGVkUmVmLCBmbk5hbWUpIHsKICAgICAgICBpZiAoZGVjb3JhdG9yRmluaXNoZWRSZWYudikgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoCiAgICAgICAgICAgICAgICAiYXR0ZW1wdGVkIHRvIGNhbGwgIiArIGZuTmFtZSArICIgYWZ0ZXIgZGVjb3JhdGlvbiB3YXMgZmluaXNoZWQiCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGFzc2VydENhbGxhYmxlKGZuLCBoaW50KSB7CiAgICAgICAgaWYgKHR5cGVvZiBmbiAhPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGhpbnQgKyAiIG11c3QgYmUgYSBmdW5jdGlvbiIpOwogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBhc3NlcnRWYWxpZFJldHVyblZhbHVlKGtpbmQsIHZhbHVlKSB7CiAgICAgICAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7CgogICAgICAgIGlmIChraW5kID09PSAxIC8qIEFDQ0VTU09SICovKSB7CiAgICAgICAgICAgIGlmICh0eXBlICE9PSAib2JqZWN0IiB8fCB2YWx1ZSA9PT0gbnVsbCkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigKICAgICAgICAgICAgICAgICAgICAiYWNjZXNzb3IgZGVjb3JhdG9ycyBtdXN0IHJldHVybiBhbiBvYmplY3Qgd2l0aCBnZXQsIHNldCwgb3IgaW5pdCBwcm9wZXJ0aWVzIG9yIHZvaWQgMCIKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHZhbHVlLmdldCAhPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICBhc3NlcnRDYWxsYWJsZSh2YWx1ZS5nZXQsICJhY2Nlc3Nvci5nZXQiKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAodmFsdWUuc2V0ICE9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgIGFzc2VydENhbGxhYmxlKHZhbHVlLnNldCwgImFjY2Vzc29yLnNldCIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICh2YWx1ZS5pbml0ICE9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgIGFzc2VydENhbGxhYmxlKHZhbHVlLmluaXQsICJhY2Nlc3Nvci5pbml0Iik7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKHR5cGUgIT09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgdmFyIGhpbnQ7CiAgICAgICAgICAgIGlmIChraW5kID09PSAwIC8qIEZJRUxEICovKSB7CiAgICAgICAgICAgICAgICBoaW50ID0gImZpZWxkIjsKICAgICAgICAgICAgfSBlbHNlIGlmIChraW5kID09PSAxMCAvKiBDTEFTUyAqLykgewogICAgICAgICAgICAgICAgaGludCA9ICJjbGFzcyI7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBoaW50ID0gIm1ldGhvZCI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigKICAgICAgICAgICAgICAgIGhpbnQgKyAiIGRlY29yYXRvcnMgbXVzdCByZXR1cm4gYSBmdW5jdGlvbiBvciB2b2lkIDAiCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGFwcGx5TWVtYmVyRGVjKAogICAgICAgIHJldCwKICAgICAgICBiYXNlLAogICAgICAgIGRlY0luZm8sCiAgICAgICAgbmFtZSwKICAgICAgICBraW5kLAogICAgICAgIGlzU3RhdGljLAogICAgICAgIGlzUHJpdmF0ZSwKICAgICAgICBpbml0aWFsaXplcnMsCiAgICAgICAgbWV0YWRhdGEKICAgICkgewogICAgICAgIHZhciBkZWNzID0gZGVjSW5mb1swXTsKCiAgICAgICAgdmFyIGRlc2MsIGluaXQsIHZhbHVlOwoKICAgICAgICBpZiAoaXNQcml2YXRlKSB7CiAgICAgICAgICAgIGlmIChraW5kID09PSAwIC8qIEZJRUxEICovIHx8IGtpbmQgPT09IDEgLyogQUNDRVNTT1IgKi8pIHsKICAgICAgICAgICAgICAgIGRlc2MgPSB7CiAgICAgICAgICAgICAgICAgICAgZ2V0OiBkZWNJbmZvWzNdLAogICAgICAgICAgICAgICAgICAgIHNldDogZGVjSW5mb1s0XSwKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0gZWxzZSBpZiAoa2luZCA9PT0gMyAvKiBHRVRURVIgKi8pIHsKICAgICAgICAgICAgICAgIGRlc2MgPSB7CiAgICAgICAgICAgICAgICAgICAgZ2V0OiBkZWNJbmZvWzNdLAogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfSBlbHNlIGlmIChraW5kID09PSA0IC8qIFNFVFRFUiAqLykgewogICAgICAgICAgICAgICAgZGVzYyA9IHsKICAgICAgICAgICAgICAgICAgICBzZXQ6IGRlY0luZm9bM10sCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgZGVzYyA9IHsKICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZGVjSW5mb1szXSwKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKGtpbmQgIT09IDAgLyogRklFTEQgKi8pIHsKICAgICAgICAgICAgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYmFzZSwgbmFtZSk7CiAgICAgICAgfQoKICAgICAgICBpZiAoa2luZCA9PT0gMSAvKiBBQ0NFU1NPUiAqLykgewogICAgICAgICAgICB2YWx1ZSA9IHsKICAgICAgICAgICAgICAgIGdldDogZGVzYy5nZXQsCiAgICAgICAgICAgICAgICBzZXQ6IGRlc2Muc2V0LAogICAgICAgICAgICB9OwogICAgICAgIH0gZWxzZSBpZiAoa2luZCA9PT0gMiAvKiBNRVRIT0QgKi8pIHsKICAgICAgICAgICAgdmFsdWUgPSBkZXNjLnZhbHVlOwogICAgICAgIH0gZWxzZSBpZiAoa2luZCA9PT0gMyAvKiBHRVRURVIgKi8pIHsKICAgICAgICAgICAgdmFsdWUgPSBkZXNjLmdldDsKICAgICAgICB9IGVsc2UgaWYgKGtpbmQgPT09IDQgLyogU0VUVEVSICovKSB7CiAgICAgICAgICAgIHZhbHVlID0gZGVzYy5zZXQ7CiAgICAgICAgfQoKICAgICAgICB2YXIgbmV3VmFsdWUsIGdldCwgc2V0OwoKICAgICAgICBpZiAodHlwZW9mIGRlY3MgPT09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgbmV3VmFsdWUgPSBtZW1iZXJEZWMoCiAgICAgICAgICAgICAgICBkZWNzLAogICAgICAgICAgICAgICAgbmFtZSwKICAgICAgICAgICAgICAgIGRlc2MsCiAgICAgICAgICAgICAgICBpbml0aWFsaXplcnMsCiAgICAgICAgICAgICAgICBraW5kLAogICAgICAgICAgICAgICAgaXNTdGF0aWMsCiAgICAgICAgICAgICAgICBpc1ByaXZhdGUsCiAgICAgICAgICAgICAgICBtZXRhZGF0YSwKICAgICAgICAgICAgICAgIHZhbHVlCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAobmV3VmFsdWUgIT09IHZvaWQgMCkgewogICAgICAgICAgICAgICAgYXNzZXJ0VmFsaWRSZXR1cm5WYWx1ZShraW5kLCBuZXdWYWx1ZSk7CgogICAgICAgICAgICAgICAgaWYgKGtpbmQgPT09IDAgLyogRklFTEQgKi8pIHsKICAgICAgICAgICAgICAgICAgICBpbml0ID0gbmV3VmFsdWU7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGtpbmQgPT09IDEgLyogQUNDRVNTT1IgKi8pIHsKICAgICAgICAgICAgICAgICAgICBpbml0ID0gbmV3VmFsdWUuaW5pdDsKICAgICAgICAgICAgICAgICAgICBnZXQgPSBuZXdWYWx1ZS5nZXQgfHwgdmFsdWUuZ2V0OwogICAgICAgICAgICAgICAgICAgIHNldCA9IG5ld1ZhbHVlLnNldCB8fCB2YWx1ZS5zZXQ7CgogICAgICAgICAgICAgICAgICAgIHZhbHVlID0geyBnZXQ6IGdldCwgc2V0OiBzZXQgfTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBuZXdWYWx1ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGZvciAodmFyIGkgPSBkZWNzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgICAgICAgICB2YXIgZGVjID0gZGVjc1tpXTsKCiAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IG1lbWJlckRlYygKICAgICAgICAgICAgICAgICAgICBkZWMsCiAgICAgICAgICAgICAgICAgICAgbmFtZSwKICAgICAgICAgICAgICAgICAgICBkZXNjLAogICAgICAgICAgICAgICAgICAgIGluaXRpYWxpemVycywKICAgICAgICAgICAgICAgICAgICBraW5kLAogICAgICAgICAgICAgICAgICAgIGlzU3RhdGljLAogICAgICAgICAgICAgICAgICAgIGlzUHJpdmF0ZSwKICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YSwKICAgICAgICAgICAgICAgICAgICB2YWx1ZQogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBpZiAobmV3VmFsdWUgIT09IHZvaWQgMCkgewogICAgICAgICAgICAgICAgICAgIGFzc2VydFZhbGlkUmV0dXJuVmFsdWUoa2luZCwgbmV3VmFsdWUpOwogICAgICAgICAgICAgICAgICAgIHZhciBuZXdJbml0OwoKICAgICAgICAgICAgICAgICAgICBpZiAoa2luZCA9PT0gMCAvKiBGSUVMRCAqLykgewogICAgICAgICAgICAgICAgICAgICAgICBuZXdJbml0ID0gbmV3VmFsdWU7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChraW5kID09PSAxIC8qIEFDQ0VTU09SICovKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG5ld0luaXQgPSBuZXdWYWx1ZS5pbml0OwogICAgICAgICAgICAgICAgICAgICAgICBnZXQgPSBuZXdWYWx1ZS5nZXQgfHwgdmFsdWUuZ2V0OwogICAgICAgICAgICAgICAgICAgICAgICBzZXQgPSBuZXdWYWx1ZS5zZXQgfHwgdmFsdWUuc2V0OwoKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB7IGdldDogZ2V0LCBzZXQ6IHNldCB9OwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gbmV3VmFsdWU7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBpZiAobmV3SW5pdCAhPT0gdm9pZCAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbml0ID09PSB2b2lkIDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXQgPSBuZXdJbml0OwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBpbml0ID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0ID0gW2luaXQsIG5ld0luaXRdOwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdC5wdXNoKG5ld0luaXQpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoa2luZCA9PT0gMCAvKiBGSUVMRCAqLyB8fCBraW5kID09PSAxIC8qIEFDQ0VTU09SICovKSB7CiAgICAgICAgICAgIGlmIChpbml0ID09PSB2b2lkIDApIHsKICAgICAgICAgICAgICAgIC8vIElmIHRoZSBpbml0aWFsaXplciB3YXMgdm9pZCAwLCBzdWIgaW4gYSBkdW1teSBpbml0aWFsaXplcgogICAgICAgICAgICAgICAgaW5pdCA9IGZ1bmN0aW9uIChpbnN0YW5jZSwgaW5pdCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBpbml0OwogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgaW5pdCAhPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICAgICAgdmFyIG93bkluaXRpYWxpemVycyA9IGluaXQ7CgogICAgICAgICAgICAgICAgaW5pdCA9IGZ1bmN0aW9uIChpbnN0YW5jZSwgaW5pdCkgewogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGluaXQ7CgogICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb3duSW5pdGlhbGl6ZXJzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gb3duSW5pdGlhbGl6ZXJzW2ldLmNhbGwoaW5zdGFuY2UsIHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB2YXIgb3JpZ2luYWxJbml0aWFsaXplciA9IGluaXQ7CgogICAgICAgICAgICAgICAgaW5pdCA9IGZ1bmN0aW9uIChpbnN0YW5jZSwgaW5pdCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBvcmlnaW5hbEluaXRpYWxpemVyLmNhbGwoaW5zdGFuY2UsIGluaXQpOwogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0LnB1c2goaW5pdCk7CiAgICAgICAgfQoKICAgICAgICBpZiAoa2luZCAhPT0gMCAvKiBGSUVMRCAqLykgewogICAgICAgICAgICBpZiAoa2luZCA9PT0gMSAvKiBBQ0NFU1NPUiAqLykgewogICAgICAgICAgICAgICAgZGVzYy5nZXQgPSB2YWx1ZS5nZXQ7CiAgICAgICAgICAgICAgICBkZXNjLnNldCA9IHZhbHVlLnNldDsKICAgICAgICAgICAgfSBlbHNlIGlmIChraW5kID09PSAyIC8qIE1FVEhPRCAqLykgewogICAgICAgICAgICAgICAgZGVzYy52YWx1ZSA9IHZhbHVlOwogICAgICAgICAgICB9IGVsc2UgaWYgKGtpbmQgPT09IDMgLyogR0VUVEVSICovKSB7CiAgICAgICAgICAgICAgICBkZXNjLmdldCA9IHZhbHVlOwogICAgICAgICAgICB9IGVsc2UgaWYgKGtpbmQgPT09IDQgLyogU0VUVEVSICovKSB7CiAgICAgICAgICAgICAgICBkZXNjLnNldCA9IHZhbHVlOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoaXNQcml2YXRlKSB7CiAgICAgICAgICAgICAgICBpZiAoa2luZCA9PT0gMSAvKiBBQ0NFU1NPUiAqLykgewogICAgICAgICAgICAgICAgICAgIHJldC5wdXNoKGZ1bmN0aW9uIChpbnN0YW5jZSwgYXJncykgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuZ2V0LmNhbGwoaW5zdGFuY2UsIGFyZ3MpOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIHJldC5wdXNoKGZ1bmN0aW9uIChpbnN0YW5jZSwgYXJncykgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuc2V0LmNhbGwoaW5zdGFuY2UsIGFyZ3MpOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChraW5kID09PSAyIC8qIE1FVEhPRCAqLykgewogICAgICAgICAgICAgICAgICAgIHJldC5wdXNoKHZhbHVlKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgcmV0LnB1c2goZnVuY3Rpb24gKGluc3RhbmNlLCBhcmdzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS5jYWxsKGluc3RhbmNlLCBhcmdzKTsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShiYXNlLCBuYW1lLCBkZXNjKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBhcHBseU1lbWJlckRlY3MoQ2xhc3MsIGRlY0luZm9zLCBtZXRhZGF0YSkgewogICAgICAgIHZhciByZXQgPSBbXTsKICAgICAgICB2YXIgcHJvdG9Jbml0aWFsaXplcnM7CiAgICAgICAgdmFyIHN0YXRpY0luaXRpYWxpemVyczsKCiAgICAgICAgdmFyIGV4aXN0aW5nUHJvdG9Ob25GaWVsZHMgPSBuZXcgTWFwKCk7CiAgICAgICAgdmFyIGV4aXN0aW5nU3RhdGljTm9uRmllbGRzID0gbmV3IE1hcCgpOwoKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRlY0luZm9zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHZhciBkZWNJbmZvID0gZGVjSW5mb3NbaV07CgogICAgICAgICAgICAvLyBza2lwIGNvbXB1dGVkIHByb3BlcnR5IG5hbWVzCiAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShkZWNJbmZvKSkgY29udGludWU7CgogICAgICAgICAgICB2YXIga2luZCA9IGRlY0luZm9bMV07CiAgICAgICAgICAgIHZhciBuYW1lID0gZGVjSW5mb1syXTsKICAgICAgICAgICAgdmFyIGlzUHJpdmF0ZSA9IGRlY0luZm8ubGVuZ3RoID4gMzsKCiAgICAgICAgICAgIHZhciBpc1N0YXRpYyA9IGtpbmQgPj0gNTsgLyogU1RBVElDICovCiAgICAgICAgICAgIHZhciBiYXNlOwogICAgICAgICAgICB2YXIgaW5pdGlhbGl6ZXJzOwoKICAgICAgICAgICAgaWYgKGlzU3RhdGljKSB7CiAgICAgICAgICAgICAgICBiYXNlID0gQ2xhc3M7CiAgICAgICAgICAgICAgICBraW5kID0ga2luZCAtIDUgLyogU1RBVElDICovOwogICAgICAgICAgICAgICAgLy8gaW5pdGlhbGl6ZSBzdGF0aWNJbml0aWFsaXplcnMgd2hlbiB3ZSBzZWUgYSBub24tZmllbGQgc3RhdGljIG1lbWJlcgogICAgICAgICAgICAgICAgc3RhdGljSW5pdGlhbGl6ZXJzID0gc3RhdGljSW5pdGlhbGl6ZXJzIHx8IFtdOwogICAgICAgICAgICAgICAgaW5pdGlhbGl6ZXJzID0gc3RhdGljSW5pdGlhbGl6ZXJzOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgYmFzZSA9IENsYXNzLnByb3RvdHlwZTsKICAgICAgICAgICAgICAgIC8vIGluaXRpYWxpemUgcHJvdG9Jbml0aWFsaXplcnMgd2hlbiB3ZSBzZWUgYSBub24tZmllbGQgbWVtYmVyCiAgICAgICAgICAgICAgICBwcm90b0luaXRpYWxpemVycyA9IHByb3RvSW5pdGlhbGl6ZXJzIHx8IFtdOwogICAgICAgICAgICAgICAgaW5pdGlhbGl6ZXJzID0gcHJvdG9Jbml0aWFsaXplcnM7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChraW5kICE9PSAwIC8qIEZJRUxEICovICYmICFpc1ByaXZhdGUpIHsKICAgICAgICAgICAgICAgIHZhciBleGlzdGluZ05vbkZpZWxkcyA9IGlzU3RhdGljCiAgICAgICAgICAgICAgICAgICAgPyBleGlzdGluZ1N0YXRpY05vbkZpZWxkcwogICAgICAgICAgICAgICAgICAgIDogZXhpc3RpbmdQcm90b05vbkZpZWxkczsKCiAgICAgICAgICAgICAgICB2YXIgZXhpc3RpbmdLaW5kID0gZXhpc3RpbmdOb25GaWVsZHMuZ2V0KG5hbWUpIHx8IDA7CgogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nS2luZCA9PT0gdHJ1ZSB8fAogICAgICAgICAgICAgICAgICAgIChleGlzdGluZ0tpbmQgPT09IDMgLyogR0VUVEVSICovICYmIGtpbmQgIT09IDQpIC8qIFNFVFRFUiAqLyB8fAogICAgICAgICAgICAgICAgICAgIChleGlzdGluZ0tpbmQgPT09IDQgLyogU0VUVEVSICovICYmIGtpbmQgIT09IDMpIC8qIEdFVFRFUiAqLwogICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKAogICAgICAgICAgICAgICAgICAgICAgICAiQXR0ZW1wdGVkIHRvIGRlY29yYXRlIGEgcHVibGljIG1ldGhvZC9hY2Nlc3NvciB0aGF0IGhhcyB0aGUgc2FtZSBuYW1lIGFzIGEgcHJldmlvdXNseSBkZWNvcmF0ZWQgcHVibGljIG1ldGhvZC9hY2Nlc3Nvci4gVGhpcyBpcyBub3QgY3VycmVudGx5IHN1cHBvcnRlZCBieSB0aGUgZGVjb3JhdG9ycyBwbHVnaW4uIFByb3BlcnR5IG5hbWUgd2FzOiAiICsKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZQogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFleGlzdGluZ0tpbmQgJiYga2luZCA+IDIgLyogTUVUSE9EICovKSB7CiAgICAgICAgICAgICAgICAgICAgZXhpc3RpbmdOb25GaWVsZHMuc2V0KG5hbWUsIGtpbmQpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBleGlzdGluZ05vbkZpZWxkcy5zZXQobmFtZSwgdHJ1ZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGFwcGx5TWVtYmVyRGVjKAogICAgICAgICAgICAgICAgcmV0LAogICAgICAgICAgICAgICAgYmFzZSwKICAgICAgICAgICAgICAgIGRlY0luZm8sCiAgICAgICAgICAgICAgICBuYW1lLAogICAgICAgICAgICAgICAga2luZCwKICAgICAgICAgICAgICAgIGlzU3RhdGljLAogICAgICAgICAgICAgICAgaXNQcml2YXRlLAogICAgICAgICAgICAgICAgaW5pdGlhbGl6ZXJzLAogICAgICAgICAgICAgICAgbWV0YWRhdGEKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIHB1c2hJbml0aWFsaXplcnMocmV0LCBwcm90b0luaXRpYWxpemVycyk7CiAgICAgICAgcHVzaEluaXRpYWxpemVycyhyZXQsIHN0YXRpY0luaXRpYWxpemVycyk7CiAgICAgICAgcmV0dXJuIHJldDsKICAgIH0KCiAgICBmdW5jdGlvbiBwdXNoSW5pdGlhbGl6ZXJzKHJldCwgaW5pdGlhbGl6ZXJzKSB7CiAgICAgICAgaWYgKGluaXRpYWxpemVycykgewogICAgICAgICAgICByZXQucHVzaChmdW5jdGlvbiAoaW5zdGFuY2UpIHsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5pdGlhbGl6ZXJzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgaW5pdGlhbGl6ZXJzW2ldLmNhbGwoaW5zdGFuY2UpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlOwogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gYXBwbHlDbGFzc0RlY3ModGFyZ2V0Q2xhc3MsIGNsYXNzRGVjcywgbWV0YWRhdGEpIHsKICAgICAgICBpZiAoY2xhc3NEZWNzLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgdmFyIGluaXRpYWxpemVycyA9IFtdOwogICAgICAgICAgICB2YXIgbmV3Q2xhc3MgPSB0YXJnZXRDbGFzczsKICAgICAgICAgICAgdmFyIG5hbWUgPSB0YXJnZXRDbGFzcy5uYW1lOwoKICAgICAgICAgICAgZm9yICh2YXIgaSA9IGNsYXNzRGVjcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgewogICAgICAgICAgICAgICAgdmFyIGRlY29yYXRvckZpbmlzaGVkUmVmID0geyB2OiBmYWxzZSB9OwoKICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIG5leHROZXdDbGFzcyA9IGNsYXNzRGVjc1tpXShuZXdDbGFzcywgewogICAgICAgICAgICAgICAgICAgICAgICBraW5kOiAiY2xhc3MiLAogICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICBhZGRJbml0aWFsaXplcjogY3JlYXRlQWRkSW5pdGlhbGl6ZXJNZXRob2QoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsaXplcnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNvcmF0b3JGaW5pc2hlZFJlZgogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YSwKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgICAgICAgZGVjb3JhdG9yRmluaXNoZWRSZWYudiA9IHRydWU7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKG5leHROZXdDbGFzcyAhPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgYXNzZXJ0VmFsaWRSZXR1cm5WYWx1ZSgxMCAvKiBDTEFTUyAqLywgbmV4dE5ld0NsYXNzKTsKICAgICAgICAgICAgICAgICAgICBuZXdDbGFzcyA9IG5leHROZXdDbGFzczsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgICAgIGRlZmluZU1ldGFkYXRhKG5ld0NsYXNzLCBtZXRhZGF0YSksCiAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbml0aWFsaXplcnMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbGl6ZXJzW2ldLmNhbGwobmV3Q2xhc3MpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIF07CiAgICAgICAgfQogICAgICAgIC8vIFRoZSB0cmFuc2Zvcm1lciB3aWxsIG5vdCBlbWl0IGFzc2lnbm1lbnQgd2hlbiB0aGVyZSBhcmUgbm8gY2xhc3MgZGVjb3JhdG9ycywKICAgICAgICAvLyBzbyB3ZSBkb24ndCBoYXZlIHRvIHJldHVybiBhbiBlbXB0eSBhcnJheSBoZXJlLgogICAgfQoKICAgIGZ1bmN0aW9uIGRlZmluZU1ldGFkYXRhKENsYXNzLCBtZXRhZGF0YSkgewogICAgICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoCiAgICAgICAgICAgIENsYXNzLAogICAgICAgICAgICBTeW1ib2wubWV0YWRhdGEgfHwgU3ltYm9sLmZvcigiU3ltYm9sLm1ldGFkYXRhIiksCiAgICAgICAgICAgIHsgY29uZmlndXJhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogbWV0YWRhdGEgfQogICAgICAgICk7CiAgICB9CgogICAgLyoqCiAgICBCYXNpYyB1c2FnZToKICAKICAgIGFwcGx5RGVjcygKICAgICAgQ2xhc3MsCiAgICAgIFsKICAgICAgICAvLyBtZW1iZXIgZGVjb3JhdG9ycwogICAgICAgIFsKICAgICAgICAgIGRlYywgICAgICAgICAgICAgICAgLy8gZGVjIG9yIGFycmF5IG9mIGRlY3MKICAgICAgICAgIDAsICAgICAgICAgICAgICAgICAgLy8ga2luZCBvZiB2YWx1ZSBiZWluZyBkZWNvcmF0ZWQKICAgICAgICAgICdwcm9wJywgICAgICAgICAgICAgLy8gbmFtZSBvZiBwdWJsaWMgcHJvcCBvbiBjbGFzcyBjb250YWluaW5nIHRoZSB2YWx1ZSBiZWluZyBkZWNvcmF0ZWQsCiAgICAgICAgICAnI3AnLCAgICAgICAgICAgICAgIC8vIHRoZSBuYW1lIG9mIHRoZSBwcml2YXRlIHByb3BlcnR5IChpZiBpcyBwcml2YXRlLCB2b2lkIDAgb3RoZXJ3aXNlKSwKICAgICAgICBdCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAvLyBjbGFzcyBkZWNvcmF0b3JzCiAgICAgICAgZGVjMSwgZGVjMgogICAgICBdCiAgICApCiAgICBgYGAKICAKICAgIEZ1bGx5IHRyYW5zcGlsZWQgZXhhbXBsZToKICAKICAgIGBgYGpzCiAgICBAZGVjCiAgICBjbGFzcyBDbGFzcyB7CiAgICAgIEBkZWMKICAgICAgYSA9IDEyMzsKICAKICAgICAgQGRlYwogICAgICAjYSA9IDEyMzsKICAKICAgICAgQGRlYwogICAgICBAZGVjMgogICAgICBhY2Nlc3NvciBiID0gMTIzOwogIAogICAgICBAZGVjCiAgICAgIGFjY2Vzc29yICNiID0gMTIzOwogIAogICAgICBAZGVjCiAgICAgIGMoKSB7IGNvbnNvbGUubG9nKCdjJyk7IH0KICAKICAgICAgQGRlYwogICAgICAjYygpIHsgY29uc29sZS5sb2coJ3ByaXZDJyk7IH0KICAKICAgICAgQGRlYwogICAgICBnZXQgZCgpIHsgY29uc29sZS5sb2coJ2QnKTsgfQogIAogICAgICBAZGVjCiAgICAgIGdldCAjZCgpIHsgY29uc29sZS5sb2coJ3ByaXZEJyk7IH0KICAKICAgICAgQGRlYwogICAgICBzZXQgZSh2KSB7IGNvbnNvbGUubG9nKCdlJyk7IH0KICAKICAgICAgQGRlYwogICAgICBzZXQgI2UodikgeyBjb25zb2xlLmxvZygncHJpdkUnKTsgfQogICAgfQogIAogIAogICAgLy8gYmVjb21lcwogICAgbGV0IGluaXRpYWxpemVJbnN0YW5jZTsKICAgIGxldCBpbml0aWFsaXplQ2xhc3M7CiAgCiAgICBsZXQgaW5pdEE7CiAgICBsZXQgaW5pdFByaXZBOwogIAogICAgbGV0IGluaXRCOwogICAgbGV0IGluaXRQcml2QiwgZ2V0UHJpdkIsIHNldFByaXZCOwogIAogICAgbGV0IHByaXZDOwogICAgbGV0IHByaXZEOwogICAgbGV0IHByaXZFOwogIAogICAgbGV0IENsYXNzOwogICAgY2xhc3MgX0NsYXNzIHsKICAgICAgc3RhdGljIHsKICAgICAgICBsZXQgcmV0ID0gYXBwbHlEZWNzKAogICAgICAgICAgdGhpcywKICAgICAgICAgIFsKICAgICAgICAgICAgW2RlYywgMCwgJ2EnXSwKICAgICAgICAgICAgW2RlYywgMCwgJ2EnLCAoaSkgPT4gaS4jYSwgKGksIHYpID0+IGkuI2EgPSB2XSwKICAgICAgICAgICAgW1tkZWMsIGRlYzJdLCAxLCAnYiddLAogICAgICAgICAgICBbZGVjLCAxLCAnYicsIChpKSA9PiBpLiNwcml2QkRhdGEsIChpLCB2KSA9PiBpLiNwcml2QkRhdGEgPSB2XSwKICAgICAgICAgICAgW2RlYywgMiwgJ2MnXSwKICAgICAgICAgICAgW2RlYywgMiwgJ2MnLCAoKSA9PiBjb25zb2xlLmxvZygncHJpdkMnKV0sCiAgICAgICAgICAgIFtkZWMsIDMsICdkJ10sCiAgICAgICAgICAgIFtkZWMsIDMsICdkJywgKCkgPT4gY29uc29sZS5sb2coJ3ByaXZEJyldLAogICAgICAgICAgICBbZGVjLCA0LCAnZSddLAogICAgICAgICAgICBbZGVjLCA0LCAnZScsICgpID0+IGNvbnNvbGUubG9nKCdwcml2RScpXSwKICAgICAgICAgIF0sCiAgICAgICAgICBbCiAgICAgICAgICAgIGRlYwogICAgICAgICAgXQogICAgICAgICkKICAKICAgICAgICBpbml0QSA9IHJldFswXTsKICAKICAgICAgICBpbml0UHJpdkEgPSByZXRbMV07CiAgCiAgICAgICAgaW5pdEIgPSByZXRbMl07CiAgCiAgICAgICAgaW5pdFByaXZCID0gcmV0WzNdOwogICAgICAgIGdldFByaXZCID0gcmV0WzRdOwogICAgICAgIHNldFByaXZCID0gcmV0WzVdOwogIAogICAgICAgIHByaXZDID0gcmV0WzZdOwogIAogICAgICAgIHByaXZEID0gcmV0WzddOwogIAogICAgICAgIHByaXZFID0gcmV0WzhdOwogIAogICAgICAgIGluaXRpYWxpemVJbnN0YW5jZSA9IHJldFs5XTsKICAKICAgICAgICBDbGFzcyA9IHJldFsxMF0KICAKICAgICAgICBpbml0aWFsaXplQ2xhc3MgPSByZXRbMTFdOwogICAgICB9CiAgCiAgICAgIGEgPSAoaW5pdGlhbGl6ZUluc3RhbmNlKHRoaXMpLCBpbml0QSh0aGlzLCAxMjMpKTsKICAKICAgICAgI2EgPSBpbml0UHJpdkEodGhpcywgMTIzKTsKICAKICAgICAgI2JEYXRhID0gaW5pdEIodGhpcywgMTIzKTsKICAgICAgZ2V0IGIoKSB7IHJldHVybiB0aGlzLiNiRGF0YSB9CiAgICAgIHNldCBiKHYpIHsgdGhpcy4jYkRhdGEgPSB2IH0KICAKICAgICAgI3ByaXZCRGF0YSA9IGluaXRQcml2Qih0aGlzLCAxMjMpOwogICAgICBnZXQgI2IoKSB7IHJldHVybiBnZXRQcml2Qih0aGlzKTsgfQogICAgICBzZXQgI2IodikgeyBzZXRQcml2Qih0aGlzLCB2KTsgfQogIAogICAgICBjKCkgeyBjb25zb2xlLmxvZygnYycpOyB9CiAgCiAgICAgICNjKC4uLmFyZ3MpIHsgcmV0dXJuIHByaXZDKHRoaXMsIC4uLmFyZ3MpIH0KICAKICAgICAgZ2V0IGQoKSB7IGNvbnNvbGUubG9nKCdkJyk7IH0KICAKICAgICAgZ2V0ICNkKCkgeyByZXR1cm4gcHJpdkQodGhpcyk7IH0KICAKICAgICAgc2V0IGUodikgeyBjb25zb2xlLmxvZygnZScpOyB9CiAgCiAgICAgIHNldCAjZSh2KSB7IHByaXZFKHRoaXMsIHYpOyB9CiAgICB9CiAgCiAgICBpbml0aWFsaXplQ2xhc3MoQ2xhc3MpOwogICAqLwoKICAgIHJldHVybiBmdW5jdGlvbiBhcHBseURlY3MyMjAzUih0YXJnZXRDbGFzcywgbWVtYmVyRGVjcywgY2xhc3NEZWNzLCBwYXJlbnRDbGFzcykgewogICAgICAgIGlmIChwYXJlbnRDbGFzcyAhPT0gdm9pZCAwKSB7CiAgICAgICAgICAgIHZhciBwYXJlbnRNZXRhZGF0YSA9CiAgICAgICAgICAgICAgICBwYXJlbnRDbGFzc1tTeW1ib2wubWV0YWRhdGEgfHwgU3ltYm9sLmZvcigiU3ltYm9sLm1ldGFkYXRhIildOwogICAgICAgIH0KICAgICAgICB2YXIgbWV0YWRhdGEgPSBPYmplY3QuY3JlYXRlKAogICAgICAgICAgICBwYXJlbnRNZXRhZGF0YSA9PT0gdm9pZCAwID8gbnVsbCA6IHBhcmVudE1ldGFkYXRhCiAgICAgICAgKTsKICAgICAgICB2YXIgZSA9IGFwcGx5TWVtYmVyRGVjcyh0YXJnZXRDbGFzcywgbWVtYmVyRGVjcywgbWV0YWRhdGEpOwogICAgICAgIGlmICghY2xhc3NEZWNzLmxlbmd0aCkgZGVmaW5lTWV0YWRhdGEodGFyZ2V0Q2xhc3MsIG1ldGFkYXRhKTsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBlOiBlLAogICAgICAgICAgICAvLyBMYXppbHkgYXBwbHkgY2xhc3MgZGVjb3JhdGlvbnMgc28gdGhhdCBtZW1iZXIgaW5pdCBsb2NhbHMgY2FuIGJlIHByb3Blcmx5IGJvdW5kLgogICAgICAgICAgICBnZXQgYygpIHsKICAgICAgICAgICAgICAgIHJldHVybiBhcHBseUNsYXNzRGVjcyh0YXJnZXRDbGFzcywgY2xhc3NEZWNzLCBtZXRhZGF0YSk7CiAgICAgICAgICAgIH0sCiAgICAgICAgfTsKICAgIH07Cn0KCmZ1bmN0aW9uIF9hcHBseV9kZWNzXzIyMDNfcih0YXJnZXRDbGFzcywgbWVtYmVyRGVjcywgY2xhc3NEZWNzLCBwYXJlbnRDbGFzcykgewogICAgcmV0dXJuIChfYXBwbHlfZGVjc18yMjAzX3IgPSBhcHBseURlY3MyMjAzUkZhY3RvcnkoKSkoCiAgICAgICAgdGFyZ2V0Q2xhc3MsCiAgICAgICAgbWVtYmVyRGVjcywKICAgICAgICBjbGFzc0RlY3MsCiAgICAgICAgcGFyZW50Q2xhc3MKICAgICk7Cn0KZnVuY3Rpb24gX2lkZW50aXR5KHgpIHsgcmV0dXJuIHg7IH0KLyogQG1pblZlcnNpb24gNy4yMi4wICovCmZ1bmN0aW9uIGRpc3Bvc2VfU3VwcHJlc3NlZEVycm9yKHN1cHByZXNzZWQsIGVycm9yKSB7CiAgICBpZiAodHlwZW9mIFN1cHByZXNzZWRFcnJvciAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWYKICAgICAgICBkaXNwb3NlX1N1cHByZXNzZWRFcnJvciA9IFN1cHByZXNzZWRFcnJvcjsKICAgIH0gZWxzZSB7CiAgICAgICAgZGlzcG9zZV9TdXBwcmVzc2VkRXJyb3IgPSBmdW5jdGlvbiBTdXBwcmVzc2VkRXJyb3Ioc3VwcHJlc3NlZCwgZXJyb3IpIHsKICAgICAgICAgICAgdGhpcy5zdXBwcmVzc2VkID0gc3VwcHJlc3NlZDsKICAgICAgICAgICAgdGhpcy5lcnJvciA9IGVycm9yOwogICAgICAgICAgICB0aGlzLnN0YWNrID0gbmV3IEVycm9yKCkuc3RhY2s7CiAgICAgICAgfTsKICAgICAgICBkaXNwb3NlX1N1cHByZXNzZWRFcnJvci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEVycm9yLnByb3RvdHlwZSwgewogICAgICAgICAgICBjb25zdHJ1Y3RvcjogewogICAgICAgICAgICAgICAgdmFsdWU6IGRpc3Bvc2VfU3VwcHJlc3NlZEVycm9yLAogICAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSk7CiAgICB9CiAgICByZXR1cm4gbmV3IGRpc3Bvc2VfU3VwcHJlc3NlZEVycm9yKHN1cHByZXNzZWQsIGVycm9yKTsKfQoKZnVuY3Rpb24gX2Rpc3Bvc2Uoc3RhY2ssIGVycm9yLCBoYXNFcnJvcikgewogICAgZnVuY3Rpb24gbmV4dCgpIHsKICAgICAgICB3aGlsZSAoc3RhY2subGVuZ3RoID4gMCkgewogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgdmFyIHIgPSBzdGFjay5wb3AoKTsKICAgICAgICAgICAgICAgIHZhciBwID0gci5kLmNhbGwoci52KTsKICAgICAgICAgICAgICAgIGlmIChyLmEpIHJldHVybiBQcm9taXNlLnJlc29sdmUocCkudGhlbihuZXh0LCBlcnIpOwogICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZXJyKGUpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChoYXNFcnJvcikgdGhyb3cgZXJyb3I7CiAgICB9CgogICAgZnVuY3Rpb24gZXJyKGUpIHsKICAgICAgICBlcnJvciA9IGhhc0Vycm9yID8gbmV3IGRpc3Bvc2VfU3VwcHJlc3NlZEVycm9yKGUsIGVycm9yKSA6IGU7CiAgICAgICAgaGFzRXJyb3IgPSB0cnVlOwoKICAgICAgICByZXR1cm4gbmV4dCgpOwogICAgfQoKICAgIHJldHVybiBuZXh0KCk7Cn1mdW5jdGlvbiBfdXNpbmcoc3RhY2ssIHZhbHVlLCBpc0F3YWl0KSB7CiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHZvaWQgMCkgcmV0dXJuIHZhbHVlOwogICAgaWYgKE9iamVjdCh2YWx1ZSkgIT09IHZhbHVlKSB7CiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigidXNpbmcgZGVjbGFyYXRpb25zIGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBvYmplY3RzLCBmdW5jdGlvbnMsIG51bGwsIG9yIHVuZGVmaW5lZC4iKTsKICAgIH0KICAgIC8vIGNvcmUtanMtcHVyZSB1c2VzIFN5bWJvbC5mb3IgZm9yIHBvbHlmaWxsaW5nIHdlbGwta25vd24gc3ltYm9scwogICAgaWYgKGlzQXdhaXQpIHsKICAgICAgICB2YXIgZGlzcG9zZSA9CiAgICAgICAgICAgIHZhbHVlW1N5bWJvbC5hc3luY0Rpc3Bvc2UgfHwgU3ltYm9sLmZvcigiU3ltYm9sLmFzeW5jRGlzcG9zZSIpXTsKICAgIH0KICAgIGlmIChkaXNwb3NlID09PSBudWxsIHx8IGRpc3Bvc2UgPT09IHZvaWQgMCkgewogICAgICAgIGRpc3Bvc2UgPSB2YWx1ZVtTeW1ib2wuZGlzcG9zZSB8fCBTeW1ib2wuZm9yKCJTeW1ib2wuZGlzcG9zZSIpXTsKICAgIH0KICAgIGlmICh0eXBlb2YgZGlzcG9zZSAhPT0gImZ1bmN0aW9uIikgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYFByb3BlcnR5IFtTeW1ib2wuZGlzcG9zZV0gaXMgbm90IGEgZnVuY3Rpb24uYCk7CiAgICB9CiAgICBzdGFjay5wdXNoKHsgdjogdmFsdWUsIGQ6IGRpc3Bvc2UsIGE6IGlzQXdhaXQgfSk7CiAgICByZXR1cm4gdmFsdWU7Cn1mdW5jdGlvbiBfdXNpbmdfY3R4KCkgewogICAgdmFyIF9kaXNwb3NlU3VwcHJlc3NlZEVycm9yID0KICAgICAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSAiZnVuY3Rpb24iCiAgICAgICAgICAgID8gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmCiAgICAgICAgICAgIFN1cHByZXNzZWRFcnJvcgogICAgICAgICAgICA6IChmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQpIHsKICAgICAgICAgICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoKTsKICAgICAgICAgICAgICAgIGVyci5uYW1lID0gIlN1cHByZXNzZWRFcnJvciI7CiAgICAgICAgICAgICAgICBlcnIuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQ7CiAgICAgICAgICAgICAgICBlcnIuZXJyb3IgPSBlcnJvcjsKICAgICAgICAgICAgICAgIHJldHVybiBlcnI7CiAgICAgICAgICAgIH0pLAogICAgICAgIGVtcHR5ID0ge30sCiAgICAgICAgc3RhY2sgPSBbXTsKICAgIGZ1bmN0aW9uIHVzaW5nKGlzQXdhaXQsIHZhbHVlKSB7CiAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHsKICAgICAgICAgICAgaWYgKE9iamVjdCh2YWx1ZSkgIT09IHZhbHVlKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKAogICAgICAgICAgICAgICAgICAgICJ1c2luZyBkZWNsYXJhdGlvbnMgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIG9iamVjdHMsIGZ1bmN0aW9ucywgbnVsbCwgb3IgdW5kZWZpbmVkLiIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIGNvcmUtanMtcHVyZSB1c2VzIFN5bWJvbC5mb3IgZm9yIHBvbHlmaWxsaW5nIHdlbGwta25vd24gc3ltYm9scwogICAgICAgICAgICBpZiAoaXNBd2FpdCkgewogICAgICAgICAgICAgICAgdmFyIGRpc3Bvc2UgPQogICAgICAgICAgICAgICAgICAgIHZhbHVlW1N5bWJvbC5hc3luY0Rpc3Bvc2UgfHwgU3ltYm9sLmZvcigiU3ltYm9sLmFzeW5jRGlzcG9zZSIpXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoZGlzcG9zZSA9PSBudWxsKSB7CiAgICAgICAgICAgICAgICBkaXNwb3NlID0gdmFsdWVbU3ltYm9sLmRpc3Bvc2UgfHwgU3ltYm9sLmZvcigiU3ltYm9sLmRpc3Bvc2UiKV07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHR5cGVvZiBkaXNwb3NlICE9PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBQcm9wZXJ0eSBbU3ltYm9sLmRpc3Bvc2VdIGlzIG5vdCBhIGZ1bmN0aW9uLmApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHN0YWNrLnB1c2goeyB2OiB2YWx1ZSwgZDogZGlzcG9zZSwgYTogaXNBd2FpdCB9KTsKICAgICAgICB9IGVsc2UgaWYgKGlzQXdhaXQpIHsKICAgICAgICAgICAgLy8gcHJvdmlkZSB0aGUgbnVsbGlzaCBgdmFsdWVgIGFzIGBkYCBmb3IgbWluaWZpY2F0aW9uIGdhaW4KICAgICAgICAgICAgc3RhY2sucHVzaCh7IGQ6IHZhbHVlLCBhOiBpc0F3YWl0IH0pOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdmFsdWU7CiAgICB9CiAgICByZXR1cm4gewogICAgICAgIC8vIGVycm9yCiAgICAgICAgZTogZW1wdHksCiAgICAgICAgLy8gdXNpbmcKICAgICAgICB1OiB1c2luZy5iaW5kKG51bGwsIGZhbHNlKSwKICAgICAgICAvLyBhd2FpdCB1c2luZwogICAgICAgIGE6IHVzaW5nLmJpbmQobnVsbCwgdHJ1ZSksCiAgICAgICAgLy8gZGlzcG9zZQogICAgICAgIGQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIGVycm9yID0gdGhpcy5lOwoKICAgICAgICAgICAgZnVuY3Rpb24gbmV4dCgpIHsKICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlLWJlZm9yZS1kZWZpbmUKICAgICAgICAgICAgICAgIHdoaWxlICgocmVzb3VyY2UgPSBzdGFjay5wb3AoKSkpIHsKICAgICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzb3VyY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwb3NhbFJlc3VsdCA9IHJlc291cmNlLmQgJiYgcmVzb3VyY2UuZC5jYWxsKHJlc291cmNlLnYpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzb3VyY2UuYSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShkaXNwb3NhbFJlc3VsdCkudGhlbihuZXh0LCBlcnIpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXJyKGUpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChlcnJvciAhPT0gZW1wdHkpIHRocm93IGVycm9yOwogICAgICAgICAgICB9CgogICAgICAgICAgICBmdW5jdGlvbiBlcnIoZSkgewogICAgICAgICAgICAgICAgZXJyb3IgPSBlcnJvciAhPT0gZW1wdHkgPyBuZXcgX2Rpc3Bvc2VTdXBwcmVzc2VkRXJyb3IoZXJyb3IsIGUpIDogZTsKCiAgICAgICAgICAgICAgICByZXR1cm4gbmV4dCgpOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gbmV4dCgpOwogICAgICAgIH0sCiAgICB9Owp9AADQCAAAIAAAAAgAAACBAwAA0QgAAAQAAAAEAAAApwIAANIIAAAEAAAABAAAAC0DAAAAAAAAAQAAAAEAAABvAQAA0wgAAAwAAAAEAAAAzQIAAAAAAAABAAAAAQAAANQIAADVCAAABAAAAAQAAADWCAAAAAAAAAEAAAABAAAA1wgAANgIAAAMAAAABAAAANkIAADaCAAAGAAAAAQAAADbCAAAXwgAABAAAAAIAAAAYAgAANwIAAAgAAAACAAAAN0IAABFb2ZEZWNsTm90QWxsb3dlZFVzaW5nRGVjbE5vdEFsbG93ZWRVc2luZ0RlY2xOb3RBbGxvd2VkRm9yRm9ySW5Mb29wVXNpbmdEZWNsTm90RW5hYmxlZEludmFsaWROYW1lSW5Vc2luZ0RlY2xJbml0UmVxdWlyZWRGb3JVc2luZ0RlY2xQcml2YXRlTmFtZUluSW50ZXJmYWNlSW52YWxpZFN1cGVyQ2FsbEludmFsaWRTdXBlckludmFsaWRTdXBlclByaXZhdGVOYW1lSW52YWxpZE5ld1RhcmdldEludmFsaWRJbXBvcnRBcnJvd05vdEFsbG93ZWRFeHBvcnROb3RBbGxvd2VkR2V0dGVyU2V0dGVyQ2Fubm90QmVSZWFkb25seUdldHRlclNldHRlckNhbm5vdEJlT3B0aW9uYWxHZXR0ZXJQYXJhbVNldHRlclBhcmFtVG9wTGV2ZWxBd2FpdEluU2NyaXB0TGVnYWN5RGVjaW1hbExlZ2FjeU9jdGFsSW52YWxpZElkZW50Q2hhckV4cGVjdGVkRGlnaXRyYWRpeFNldHRlclBhcmFtUmVxdWlyZWRSZXN0UGF0SW5TZXR0ZXJVbnRlcm1pbmF0ZWRCbG9ja0NvbW1lbnRVbnRlcm1pbmF0ZWRTdHJMaXRFeHBlY3RlZFVuaWNvZGVFc2NhcGVFc2NhcGVJblJlc2VydmVkV29yZHdvcmRVbnRlcm1pbmF0ZWRSZWdFeHBVbnRlcm1pbmF0ZWRUcGxJZGVudEFmdGVyTnVtVW5leHBlY3RlZENoYXJjSW52YWxpZFN0ckVzY2FwZUludmFsaWRVbmljb2RlRXNjYXBlQmFkQ2hhcmFjdGVyRXNjYXBlU2VxdWVuY2VleHBlY3RlZE51bUxpdFRlcm1pbmF0ZWRXaXRoRXhwTGVnYWN5Q29tbWVudEluTW9kdWxlSW52YWxpZElkZW50SW5TdHJpY3RJbnZhbGlkSWRlbnRJbkFzeW5jRXZhbEFuZEFyZ3VtZW50c0luU3RyaWN0QXJndW1lbnRzSW5DbGFzc0ZpZWxkSWxsZWdhbExhbmd1YWdlTW9kZURpcmVjdGl2ZVVuYXJ5SW5FeHBsZWZ0X3NwYW5IYXNoTGluZUJyZWFrSW5UaHJvd0xpbmVCcmVha0JlZm9yZUFycm93VW5leHBlY3RlZGdvdFVuZXhwZWN0ZWRUb2tlbldpdGhTdWdnZXN0aW9uc2NhbmRpZGF0ZV9saXN0UmVzZXJ2ZWRXb3JkSW5JbXBvcnRBc3NpZ25Qcm9wZXJ0eUV4cGVjdGVkRXhwZWN0ZWRTZW1pRm9yRXhwclN0bXRBd2FpdFN0YXJSZXNlcnZlZFdvcmRJbk9ialNob3J0aGFuZE9yUGF0TnVsbGlzaENvYWxlc2NpbmdXaXRoTG9naWNhbE9wTXVsdGlwbGVEZWZhdWx0cHJldmlvdXNDb21tYUFmdGVyUmVzdEVsZW1lbnROb25MYXN0UmVzdFBhcmFtU3ByZWFkSW5QYXJlbkV4cHJFbXB0eVBhcmVuRXhwckludmFsaWRQYXRJbnZhbGlkRXhwck5vdFNpbXBsZUFzc2lnbkludmFsaWRBc3NpZ25UYXJnZXRFeHBlY3RlZElkZW50RXhwZWN0ZWRTZW1pRHVwbGljYXRlTGFiZWxBc3luY0dlbmVyYXRvck5vblRvcExldmVsSW1wb3J0RXhwb3J0SW1wb3J0RXhwb3J0SW5TY3JpcHRJbXBvcnRNZXRhSW5TY3JpcHRQYXRWYXJXaXRob3V0SW5pdFdpdGhJblN0cmljdFJldHVybk5vdEFsbG93ZWRUb29NYW55VmFySW5Gb3JJbkhlYWRWYXJJbml0aWFsaXplckluRm9ySW5IZWFkTGFiZWxsZWRHZW5lcmF0b3JPckFzeW5jTGFiZWxsZWRGdW5jdGlvbkluU3RyaWN0WWllbGRQYXJhbUluR2VuQXdhaXRQYXJhbUluQXN5bmNBd2FpdEZvclN0bXRBd2FpdEluRnVuY3Rpb25VbnRlcm1pbmF0ZWRKU1hDb250ZW50c0VtcHR5SlNYQXR0ckludmFsaWRKU1hWYWx1ZUpTWEV4cGVjdGVkQ2xvc2luZ1RhZ0Zvckx0R3RKU1hFeHBlY3RlZENsb3NpbmdUYWdJbnZhbGlkTGVhZGluZ0RlY29yYXRvckRlY29yYXRvck9uRXhwb3J0VHNSZXF1aXJlZEFmdGVyT3B0aW9uYWxUc0ludmFsaWRQYXJhbVByb3BQYXRTcGFjZUJldHdlZW5IYXNoQW5kSWRlbnRBc3luY0NvbnN0cnVjdG9yUHJvcGVydHlOYW1lZENvbnN0cnVjdG9yUHJpdmF0ZUNvbnN0cnVjdG9yUHJpdmF0ZU5hbWVNb2RpZmllckNvbnN0cnVjdG9yQWNjZXNzb3JSZWFkT25seU1ldGhvZEdlbmVyYXRvckNvbnN0cnVjdG9yRHVwbGljYXRlQ29uc3RydWN0b3JUc0JpbmRpbmdQYXRDYW5ub3RCZU9wdGlvbmFsU3VwZXJDYWxsT3B0aW9uYWxPcHRDaGFpbkNhbm5vdEZvbGxvd0NvbnN0cnVjdG9yQ2FsbFRhZ2dlZFRwbEluT3B0Q2hhaW5UcmFpbGluZ0NvbW1hSW5zaWRlSW1wb3J0RXhwb3J0RGVmYXVsdFdpdGhPdXRGcm9tRXhwb3J0RXhwZWN0RnJvbURvdHNXaXRob3V0SWRlbnRpZmllck51bWVyaWNTZXBhcmF0b3JJc0FsbG93ZWRPbmx5QmV0d2VlblR3b0RpZ2l0c0ltcG9ydEJpbmRpbmdJc1N0cmluZ0V4cG9ydEJpbmRpbmdJc1N0cmluZ0NvbnN0RGVjbGFyYXRpb25zUmVxdWlyZUluaXRpYWxpemF0aW9uRHVwbGljYXRlZFJlZ0V4cEZsYWdzVW5rbm93blJlZ0V4cEZsYWdzVFMxMDAzVFMxMDA1VFMxMDA5VFMxMDE0VFMxMDE1VFMxMDI5VFMxMDMwVFMxMDMxVFMxMDM4VFMxMDQyVFMxMDQ3VFMxMDQ4VFMxMDU2VFMxMDg1VFMxMDg5VFMxMDkyVFMxMDk2VFMxMDk4VFMxMTAwVFMxMTAyVFMxMTA1VFMxMTA2VFMxMTA3VFMxMTA5VFMxMTEwVFMxMTE0VFMxMTE1VFMxMTE2VFMxMTIzVFMxMTQxVFMxMTYyVFMxMTY0VFMxMTcxVFMxMTcyVFMxMTczVFMxMTc0VFMxMTc1VFMxMTgzVFMxMTg0VFMxMTg1VFMxMDkzVFMxMTk2VFMxMjQyVFMxMjQzVFMxMjQ0VFMxMjQ1VFMxMjY3VFMxMjczVFMxMjc0VFMxMjc3VFMyMjA2VFMyMjA3VFMyMzY5VFMyMzcxVFMyNDA2VFMyNDEwVFMyNDE0VFMyNDI3VFMyNDUyVFMyNDgzVFMyNDkxVFMyNDk5VFMyNzAzVFM0MTEyVFM4MDM4VFMxODAxMFRTVHlwZUFubm90YXRpb25BZnRlckFzc2lnblRzTm9uTnVsbEFzc2VydGlvbk5vdEFs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BAAAABgJAAApCQAAEAAAAAgAAABgCAAAKgkAACAAAAAIAAAAKwkAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3N3Y19lY21hX3RyYW5zZm9ybXNfdHlwZXNjcmlwdC0xMi4wLjAvc3JjL3RyYW5zZm9ybS5ycwCU2BcAewAAALgCAAA4AAAAnwcAAAwAAAAEAAAAoAcAAKEHAAAsCQAATmFOL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvc3djX2VjbWFfdHJhbnNmb3Jtc190eXBlc2NyaXB0LTEyLjAuMC9zcmMvdHNfZW51bS5yczvZFwB5AAAAsAAAABIAAAABAAAAAAAAAAEAAAAAAAAAO9kXAHkAAADaAAAAGgBB7LPfAAveBgEAAACjBwAAAAAAAAQAAAAEAAAAmQMAAEltcG9ydCBkZWNsYXJhdGlvbnMgaW4gYSBuYW1lc3BhY2UgY2Fubm90IHJlZmVyZW5jZSBhIG1vZHVsZS5FU00tc3R5bGUgbW9kdWxlIGRlY2xhcmF0aW9ucyBhcmUgbm90IHBlcm1pdHRlZCBpbiBhIG5hbWVzcGFjZS5JbXBvcnQgYXNzaWdubWVudCBjYW5ub3QgYmUgdXNlZCB3aGVuIHRhcmdldGluZyBFQ01BU2NyaXB0IG1vZHVsZXMuIENvbnNpZGVyIHVzaW5nIGBpbXBvcnQgKiBhcyBucyBmcm9tICJtb2QiYCwgYGltcG9ydCB7YX0gZnJvbSAibW9kImAsIGBpbXBvcnQgZCBmcm9tICJtb2QiYCwgb3IgYW5vdGhlciBtb2R1bGUgZm9ybWF0IGluc3RlYWQuRXhwb3J0IGFzc2lnbm1lbnQgY2Fubm90IGJlIHVzZWQgd2hlbiB0YXJnZXRpbmcgRUNNQVNjcmlwdCBtb2R1bGVzLiBDb25zaWRlciB1c2luZyBgZXhwb3J0IGRlZmF1bHRgIG9yIGFub3RoZXIgbW9kdWxlIGZvcm1hdCBpbnN0ZWFkLi9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3N3Y19lY21hX3RyYW5zZm9ybXNfdHlwZXNjcmlwdC0xMi4wLjAvc3JjL3R5cGVzY3JpcHQucnMAAMbbFwB8AAAASwAAACwAAABzdHJ1Y3QgQ29uZmlnZW51bSBUc0ltcG9ydEV4cG9ydEFzc2lnbkNvbmZpZ2VudW0gSW1wb3J0c05vdFVzZWRBc1ZhbHVlcwAAAAAABAAAAAQAAAChAQAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvc3djX2VjbWFfdXRpbHMtMTEuMC4wL3NyYy9saWIucnNfAAABAAAAAAAAABHdFwABAAAAc3VwZXJfAAAk3RcABgAAAJ8HAAAMAAAABAAAAKAHAAAtCQAALgkAQdS63wAL3gIBAAAAowcAABHdFwABAAAAL3J1c3RjLzkwYjM1YTYyMzljM2Q4YmRhYmM1MzBhNmEwODE2ZjdmZjg5YTBhYWYvbGlicmFyeS9hbGxvYy9zcmMvdmVjL3NwZWNfZnJvbV9pdGVyX25lc3RlZC5ycwAAZN0XAF4AAAA5AAAAEgAAAGNvbnN0cnVjdG9yIHNob3VsZCBoYXZlIGEgYm9keS9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3N3Y19lY21hX3V0aWxzLTExLjAuMC9zcmMvY29uc3RydWN0b3IucnMA8t0XAG0AAAAOAAAAIAAAAAAAAAAMAAAABAAAADAJAAAxCQAAnwcAAAwAAAAEAAAAoAcAAKEHAAAuCQAANAYAAAwAAAAEAAAAWQYAADIJAAA3BgBBvL3fAAvlCQEAAAA4BgAAMwkAACwAAAAEAAAANAkAADUJAAA2CQAANwkAADgJAAA5CQAA1gUAADoJAAAYAAAABAAAADsJAAA6CQAAGAAAAAQAAAA8CQAAOwkAAOzeFwDWBQAAPQkAANAFAADWBQAA0gUAAD4JAAA/CQAAQAkAANYFAABBCQAAQgkAAEMJAADWBQAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVz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eC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9zd2NfZWNtYV9jb2RlZ2VuLTguMC4yL3NyYy90ZXh0X3dyaXRlci9iYXNpY19pbXBsLnJzOyB2YXJsZXRjb25zdCshfnR5cGVvZnZvaWRkZWxldGU9Kz0tPSo9Lz0lPTw8PT4+PT4+Pj18PV49Jj0qKj0mJj18fD0/Pz09PSE9PT09IT09PDw9Pj49PDw+Pj4+PiovJXxeJnx8JiYqKj8/KystLS9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3JlZ2V4LWF1dG9tYXRhLTAuNC43L3NyYy91dGlsL2l0ZXIucnN1bmV4cGVjdGVkIHJlZ2V4IGZpbmQgZXJyb3I6IAp0byBoYW5kbGUgZmluZCBlcnJvcnMsIHVzZSAndHJ5JyBvciAnc2VhcmNoJyBtZXRob2RzAAAASwwYAB0AAABoDBgANQAAAOELGABqAAAAfgEAABkAAACJHhgAagAAAF4CAAAcAAAAiR4YAGoAAABrAgAAMgAAAAIAAACJHhgAagAAAAEDAAAVAAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmVnZXgtYXV0b21hdGEtMC40Ljcvc3JjL3V0aWwvc2VhcmNoLnJzaW52YWxpZCBzcGFuICBmb3IgaGF5c3RhY2sgb2YgbGVuZ3RoIAAAAGANGAANAAAAbQ0YABgAAAD0DBgAbAAAAKoBAAAJAAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvc3djX2VjbWFfY29kZWdlbi04LjAuMi9zcmMvdHlwZXNjcmlwdC5yc2FzKD0+e31gAAAAqA0YAG0AAAC2AQAAIgAAACR7AACoDRgAbQAAALkBAAAhAAAAPzplbnVtLi4uXWluZmVyb3V0aW1wb3J0LC5tb2R1bGVhbnl1bmtub3dubnVtYmVyb2JqZWN0Ym9vbGVhbmJpZ2ludHN0cmluZ3N5bWJvbHVuZGVmaW5lZG51bGxuZXZlcmludHJpbnNpY2tleW9mdW5pcXVlaW50ZXJmYWNlZXhwb3J0c2F0aXNmaWVzaXN0eXBlYWJzdHJhY3RuZXdyZXF1aXJlAAAA+AoYAHkAAAByAAAAGgAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3N3Y19lY21hX2NvZGVnZW4tOC4wLjIvc3JjL2xpYi5ycwAA/A4YAGYAAAABCAAALwAAAPwOGABmAAAA+wcAADAAAABzdXBlcmRlZmVyZnJvbWFzc2VydGFzc2VydGlvbiBmYWlsZWQ6IG4uc3BlY2lmaWVycy5sZW4oKSA8PSAyAAAA/A4YAGYAAAB5AQAAFQAAACMhAAD8DhgAZgAAAJEOAAASAAAAbi0weOkPGAADAAAAMHgAAPQPGAACAAAAYXN5bmNpZmVsc2U8aW52YWxpZD51c2Ugc3RyaWN0c2NyaXB0PCEtLVx4M2MhLS0tLT4tLVx4M2X8DhgAZgAAANkHAAAiAAAA/A4YAGYAAADcBwAAIQAAAGZvcnRyeWZpbmFsbHlAPy5icmVha3Rocm93d2hpbGV5aWVsZG9mcmV0dXJuY2FzZfwOGABmAAAAng0AABoAAAD8DhgAZgAAAKENAAA7AAAAc3dpdGNoY2F0Y2gjcHVibGljcHJvdGVjdGVkcHJpdmF0ZWFjY2Vzc29yY29udGludWVkZWJ1Z2dlcmRvbmV3LnRhcmdldGltcG9ydC5tZXRhbm90IGltcGxlbWVudGVkOiBjb2RlZ2VuIG9mIGBleHBvcnQgZGVmYXVsdCBmcm9tICdmb28nO2AAAAD5EBgAOAAAAPwOGABmAAAAxwEAABEAAAD8DhgAZgAAAP8CAAA0AAAASW5maW5pdHllY29uc3RydWN0b3L8DhgAZgAAADwKAABIAAAA/A4YAGYAAAA9CgAAKAAAAPwOGABmAAAAJQgAAEwAAAD8DhgAZgAAACgIAAAnAAAAZmFsc2V0cnVlPC88Lz48PnVzaW5nLy8vKiovI19fUFVSRV9fNAYAAAwAAAAEAAAAWQYAAFoGAAA3BgBB9KPgAAviPQEAAAA4BgAASGFzaCB0YWJsZSBjYXBhY2l0eSBvdmVyZmxvd/wRGAAcAAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvaGFzaGJyb3duLTAuMTQuNS9zcmMvcmF3L21vZC5ycyASGABkAAAAVgAAACgAAABeCQAABAAAAAQAAACEBAAAVHNBc0V4cHJfCQAADAAAAAQAAADwBAAAVHNGblR5cGVsaXR0eXBlX25hbWVlbGVtX3R5cGV0eXBlX3BhcmFtVHNFbnRpdHlOYW1lVHNFeHRlcm5hbE1vZHVsZVJlZgAAYAkAAAwAAAAEAAAAuAUAAAAAAAABAAAAAQAAAGEJAAAAAAAAAQAAAAEAAAASAAAAAAAAAAQAAAAEAAAAYgkAAHk4GAAEAAAAfTgYAAoAAAAFORgADQAAACg5GAALAAAAMzkYAAgAAABIHhgABQAAAGVsZW1fdHlwZXMAAGMJAAAYAAAACAAAALUEAABkCQAABAAAAAQAAABlCQAAAAAAAAQAAAAEAAAAZgkAAGlzX2luaXNfb3V0Y29uc3RyYWludGRlZmF1bHR5OBgABAAAAJ87GAAEAAAAsBMYAAUAAAC1ExgABgAAAOokGAAIAAAAuxMYAAoAAADFExgABwAAAFRzVHlwZVBhcmFtZXhwcl9uYW1lVHNVbmlvblR5cGV0eXBlc1RzRW51bU1lbWJlcnF1YWxpZmllcmF0dHJpYnV0ZXMAAAAAAAEAAAABAAAAZwkAAGgJAAAwAAAACAAAAGkJAABuYW1lX3R5cGUAAAB5OBgABAAAADM5GAAIAAAA2RIYAAoAAABoFBgACQAAAJA3GAAIAAAA9DgYAAgAAABUc1RwbExpdFR5cGVQcm90ZWN0ZWRUcnVlUGx1c01pbnVzVHNOb25OdWxsRXhwclRzQ2FsbFNpZ25hdHVyZURlY2xUc0NvbnN0cnVjdFNpZ25hdHVyZURlY2xUc1Byb3BlcnR5U2lnbmF0dXJlVHNHZXR0ZXJTaWduYXR1cmVUc1NldHRlclNpZ25hdHVyZVRzTWV0aG9kU2lnbmF0dXJlVHNUdXBsZUVsZW1lbnR0eVRzSW50ZXJmYWNlQm9keVRzU2F0aXNmaWVzRXhwcmFzc2VydHNwYXJhbV9uYW1lAGoJAAAEAAAABAAAAP0EAABjaGVja190eXBlZXh0ZW5kc190eXBldHJ1ZV90eXBlZmFsc2VfdHlwZVRzQ29uc3RydWN0b3JUeXBlY29tcHV0ZWRUc0FueUtleXdvcmRUc1Vua25vd25LZXl3b3JkVHNOdW1iZXJLZXl3b3JkVHNPYmplY3RLZXl3b3JkVHNCb29sZWFuS2V5d29yZFRzQmlnSW50S2V5d29yZFRzU3RyaW5nS2V5d29yZFRzU3ltYm9sS2V5d29yZFRzVm9pZEtleXdvcmRUc1VuZGVmaW5lZEtleXdvcmRUc051bGxLZXl3b3JkVHNOZXZlcktleXdvcmRUc0ludHJpbnNpY0tleXdvcmQAAAAAAAAABAAAAAQAAAD+BAAAeTgYAAQAAADsOBgAAwAAAM4VGAAIAAAAkDcYAAgAAADgOhgABgAAAPQ4GAAIAAAAYDYYAAsAAABUc0V4cHJXaXRoVHlwZUFyZ3NUc0ludGVyc2VjdGlvblR5cGVUc0ltcG9ydENhbGxPcHRpb25zb2JqX3R5cGVpbmRleF90eXBlAAAAeTgYAAQAAAAzORgACAAAAOw4GAADAAAAzhUYAAgAAACQNxgACAAAAPQ4GAAIAAAAVHNOYW1lc3BhY2VFeHBvcnREZWNsL3J1c3RjLzkwYjM1YTYyMzljM2Q4YmRhYmM1MzBhNmEwODE2ZjdmZjg5YTBhYWYvbGlicmFyeS9jb3JlL3NyYy9zbGljZS9zb3J0L3N0YWJsZS9xdWlja3NvcnQucnNtaWQgPiBsZW4AAADUFxgACQAAAHUXGABfAAAATAAAAB8AAAB1FxgAXwAAAEYAAAAXAAAASlNYQXR0ckpTWEVtcHR5RXhwclJlc3RQYXRBcnJheVBhdEFzc2lnblBhdE9iamVjdFBhdEFzc2lnblByb3BHZXR0ZXJQcm9wTWV0aG9kUHJvcFNldHRlclByb3B0aGlzX3BhcmFtSlNYRXhwckNvbnRhaW5lckFzc2lnblBhdFByb3BLZXlWYWx1ZVByb3BKU1hTcHJlYWRDaGlsZEtleVZhbHVlUGF0UHJvcEpTWENsb3NpbmdFbGVtZW50bnNDb21wdXRlZFByb3BOYW1lSlNYQ2xvc2luZ0ZyYWdtZW50SlNYT3BlbmluZ0ZyYWdtZW50L2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvc3djX2VjbWFfcGFyc2VyLTEwLjAuMC9zcmMvcGFyc2VyL2lucHV0LnJzAAD7GBgAbwAAAM8AAAArAAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvc3djX2VjbWFfcGFyc2VyLTEwLjAuMC9zcmMvbGV4ZXIvc3RhdGUucnMAAHwZGABuAAAAgQAAABkAAAB8GRgAbgAAAIAAAAA4AAAAfBkYAG4AAAB/AAAALgAAAPsYGABvAAAAuQEAACcAAAD7GBgAbwAAAL8BAAAjAAAAPGVvZj5pbnRlcm5hbCBlcnJvcjogZW50ZXJlZCB1bnJlYWNoYWJsZSBjb2RlOiAgaXMgYWxyZWFkeSByZW5hbWVkIHRvICwgYnV0IGl0J3MgcmVuYW1lZCBhcyBBGhgAKgAAAGsaGAAXAAAAghoYABYAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9zd2NfZWNtYV90cmFuc2Zvcm1zX2Jhc2UtMTEuMi4wL3NyYy9yZW5hbWUvbW9kLnJzAACwGhgAdgAAANQAAAAZAAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZTogTW9kdWxlIGlzIGhhbmRsZWQgYWJvdmUAAAA4GxgAQQAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3N3Y19lY21hX3BhcnNlci0xMC4wLjAvc3JjL3BhcnNlci9tb2QucnMAAACEGxgAbQAAALUAAAAyAAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvc3djX2VjbWFfcGFyc2VyLTEwLjAuMC9zcmMvcGFyc2VyL3BhdC5ycwAAAAQcGABtAAAAlgIAACoAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9zd2NfZWNtYV9wYXJzZXItMTAuMC4wL3NyYy9wYXJzZXIvZXhwci5ycwAAhBwYAG4AAACmAwAAGgAAAC9ydXN0Yy85MGIzNWE2MjM5YzNkOGJkYWJjNTMwYTZhMDgxNmY3ZmY4OWEwYWFmL2xpYnJhcnkvY29yZS9zcmMvc2xpY2Uvc29ydC9zdGFibGUvZHJpZnQucnMABB0YAFsAAAD/AAAAGQAAAAQdGABbAAAA8gAAABIAAAAEHRgAWwAAAM4AAAAkAAAABB0YAFsAAADRAAAAJAAAAAQdGABbAAAAQAAAACIAAABJZlN0bXRGb3JTdG10dXBkYXRlRXhwclN0bXRXaXRoU3RtdEJyZWFrU3RtdGxhYmVsRW1wdHlTdG10Rm9ySW5TdG10Rm9yT2ZTdG10VGhyb3dTdG10V2hpbGVTdG10UmV0dXJuU3RtdFN3aXRjaENhc2VTd2l0Y2hTdG10ZGlzY3JpbWluYW50Y2FzZXNDYXRjaENsYXVzZXBhcmFtRG9XaGlsZVN0bXRMYWJlbGVkU3RtdE1vZHVsZURlY2xTdG10Q29udGludWVTdG10RGVidWdnZXJTdG10L2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmVnZXgtYXV0b21hdGEtMC40Ljcvc3JjL3V0aWwvcG9vbC5ycwCJHhgAagAAAD0CAAAcAAAAAAAAAAwAAAAEAAAAawkAAGwJAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9waGZfc2hhcmVkLTAuMTEuMi9zcmMvbGliLnJzAAAAGB8YAGEAAAA7AAAABQAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3R5cGVkLWFyZW5hLTIuMC4yL3NyYy9saWIucnMAAACMHxgAYQAAAPoAAABBAAAAjB8YAGEAAADQAAAADgAAAIwfGABhAAAAKwIAAA4AAACMHxgAYQAAAC4CAAAOAAAAAAAAAAgAAAAEAAAAbQkAAFRoaXNVbmFyeVVwZGF0ZUJpbkNvbmRDYWxsTmV3U2VxTGl0QXJyb3dZaWVsZE1ldGFQcm9wQXdhaXRKU1hNZW1iZXJKU1hOYW1lc3BhY2VkTmFtZUpTWEVtcHR5SlNYRWxlbWVudEpTWEZyYWdtZW50VHNDb25zdEFzc2VydGlvblNob3J0aGFuZEtleVZhbHVlQmxvY2tEZWJ1Z2dlcldpdGhSZXR1cm5MYWJlbGVkQnJlYWtDb250aW51ZUlmU3dpdGNoVGhyb3dUcnlXaGlsZURvV2hpbGVGb3JGb3JJbkZvck9mRGVjbAAAYAkAAAwAAAAEAAAAuAUAAG4JAAAMAAAABAAAAG8JAABwCQAABAAAAAQAAABZBQAAAAAAAAEAAAABAAAAEgAAAHEJAAAEAAAABAAAAPEEAAByCQAABAAAAAQAAADJBAAAAAAAAAQAAAAEAAAAcwkAAHN1cGVyX2NsYXNzc3VwZXJfdHlwZV9wYXJhbXNpbXBsZW1lbnRzAAB5OBgABAAAANw6GAAEAAAAfTgYAAoAAADmOhgABAAAAJwhGAALAAAAEjkYAAsAAABgNhgACwAAAKchGAARAAAAuCEYAAoAAABWYXJEZWNsZGVjbHNUcnlTdG10YmxvY2toYW5kbGVyZmluYWxpemVyQ2FwYWNpdHlPdmVyZmxvd0FsbG9jRXJybGF5b3V0SlNYTWVtYmVyRXhwclVzaW5nRGVjbGlzX2F3YWl0b3BlbmluZ2NoaWxkcmVuY2xvc2luZ0Jsb2NrU3RtdHN0bXRzL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvc21hbGx2ZWMtMS4xMy4yL3NyYy9saWIucnMAdAkAAAwAAAAEAAAAdQkAAHYJAAAYAAAABAAAAHcJAADgOhgABgAAAH04GAAKAAAAeTgYAAQAAADcOhgABAAAAOY6GAAEAAAAVDYYAAwAAABMNhgACAAAAGA2GAALAAAAazYYAAsAAABGdW5jdGlvblRzS2V5d29yZFR5cGVUc1RoaXNUeXBlVHNGbk9yQ29uc3RydWN0b3JUeXBlVHNUeXBlUmVmVHNUeXBlUXVlcnlUc1R5cGVMaXRUc0FycmF5VHlwZVRzVHVwbGVUeXBlVHNPcHRpb25hbFR5cGVUc1Jlc3RUeXBlVHNVbmlvbk9ySW50ZXJzZWN0aW9uVHlwZVRzQ29uZGl0aW9uYWxUeXBlVHNJbmZlclR5cGVUc1BhcmVudGhlc2l6ZWRUeXBlVHNUeXBlT3BlcmF0b3JUc0luZGV4ZWRBY2Nlc3NUeXBlVHNNYXBwZWRUeXBlVHNMaXRUeXBlVHNUeXBlUHJlZGljYXRlVHNJbXBvcnRUeXBleAkAAHkJAAB6CQAAewkAAHwJAABGBgAAfQkAAH4JAAB/CQAAgAkAAIEJAABGBgAAVHNUeXBlQW5uSlNYT3BlbmluZ0VsZW1lbnRhdHRyc3NlbGZfY2xvc2luZwBjCQAAGAAAAAgAAAC1BAAAVHNFbnVtRGVjbGlzX2NvbnN0bWVtYmVyc1RzUXVhbGlmaWVkTmFtZYIJAAAgAAAACAAAAO0EAAAAAAAABAAAAAQAAACDCQAAZ2xvYmFsbmFtZXNwYWNlAHk4GAAEAAAAOzkYAAcAAAAoJRgABgAAAC4lGAAJAAAAPSsYAAIAAADmOhgABAAAAFRzTW9kdWxlRGVjbIQJAAAMAAAABAAAAIUJAAAAAAAABAAAAAQAAACGCQAAZXh0ZW5kcwB5OBgABAAAAD0rGAACAAAAOzkYAAcAAABgNhgACwAAAJQlGAAHAAAA5joYAAQAAABUc01vZHVsZUJsb2NrVHNOYW1lc3BhY2VEZWNsVHNUeXBlQWxpYXNEZWNsVHNUeXBlUGFyYW1EZWNsVHNJbXBvcnRFcXVhbHNEZWNsaXNfZXhwb3J0bW9kdWxlX3JlZlRzVHlwZVBhcmFtSW5zdGFudGlhdGlvbgCUIhgAXwAAAFIBAAAuAAAAlCIYAF8AAADOBAAADgAAAGFzc2VydGlvbiBmYWlsZWQ6IG5ld19jYXAgPj0gbGVulCIYAF8AAACZBAAADQAAAAAAAAAcLxYACAAAAFwvFgAlAAAAJ8s929GAN7PcMBYAAQAAAOQwFgACAAAAjX+5rjQzqdZhd2FpdAAAAIQwFgACAAAAlDAWAAkAAAAnyz3b0YA3s2Rlc2NyaXB0aW9uKCkgaXMgZGVwcmVjYXRlZDsgdXNlIERpc3BsYXlCb29sTnVsbFJlZ2V4SlNYVGV4dFJlc3RBc3NpZ25Jb1V0ZjhCYWRKc29uVmxxTGVmdG92ZXJWbHFOb1ZhbHVlc1ZscU92ZXJmbG93QmFkU2VnbWVudFNpemVCYWRTb3VyY2VSZWZlcmVuY2VCYWROYW1lUmVmZXJlbmNlSW5jb21wYXRpYmxlU291cmNlTWFwSW52YWxpZERhdGFVcmxDYW5ub3RGbGF0dGVuSW52YWxpZFJhbUJ1bmRsZU1hZ2ljSW52YWxpZFJhbUJ1bmRsZUluZGV4SW52YWxpZFJhbUJ1bmRsZUVudHJ5Tm90QVJhbUJ1bmRsZUludmFsaWRSYW5nZU1hcHBpbmdJbmRleEludmFsaWRCYXNlNjRDbGFzc0ZuVmFyVXNpbmdUc0ludGVyZmFjZVRzVHlwZUFsaWFzVHNFbnVtVHNNb2R1bGVleHBmbGFnc051bWJlcgAAhwkAAAgAAAAEAAAAiAkAAIcJAAAIAAAABAAAAIkJAACICQAAcCgYAIoJAACLCQAAjAkAAI0JAADSBQAAAAAAAAgAAAAEAAAAjgkAAAAAAAAIAAAABAAAAPUFAACOCQAArCgYANYFAACPCQAAkAkAANYFAADSBQAAkQkAAAQAAAAEAAAAkgkAAJEJAAAEAAAABAAAAJMJAACSCQAA6CgYAJQJAACVCQAA0AUAAJYJAADSBQAAAAAAAAEAAAABAAAAEgAAAEZuRGVjbHN5bQAAAAAAAAAEAAAABAAAADAAAABGcm9tVXRmOEVycm9yYnl0ZXNlcnJvcmludmFsaWQgdXRmLTg6IGNvcnJ1cHQgY29udGVudHNDbGFzc0RlY2xpbnZhbGlkIHV0Zi04SWRlbnROYW1lAAAAlwkAABwAAAAEAAAAmAkAAJcJAAAcAAAABAAAAJkJAACYCQAAqCkYAJoJAACbCQAA0AUAAJoJAADSBQAAnAkAABQAAAAEAAAAnQkAAJwJAAAUAAAABAAAAJ4JAACdCQAA5CkYAJ8JAACgCQAA0AUAAJ8JAADSBQAAoQkAADgAAAAEAAAA2QUAAKEJAAA4AAAABAAAANoFAADZBQAAICoYANsFAACiCQAA3QUAANsFAADeBQAAowkAADAAAAAEAAAA2QUAAKMJAAAwAAAABAAAANoFAADZBQAAXCoYANsFAACkCQAA3QUAANsFAADeBQAAY29udGV4dHNvdXJjZQAAAFsGAAAUAAAABAAAAKUJAABbBgAAFAAAAAQAAAClBQAApQkAAKgqGADWBQAApgkAAKcJAADWBQAA0gUAAKgJAAAMAAAABAAAAKkJAACoCQAADAAAAAQAAACmBQAAqQkAAOQqGADWBQAAqgkAANAFAACrCQAA0gUAAFZhckRlY2xhcmF0b3Jpbml0QmluZGluZ0lkZW50aWQArAkAAAQAAAAEAAAA7wQAAEV4cG9ydEFsbHNyY3R5cGVfb25seXdpdGhFeHBvcnREZWNsZGVjbACtCQAADAAAAAQAAACuCQAArwkAAAQAAAAEAAAAsAkAAHNwZWNpZmllcnMAAHk4GAAEAAAAmCsYAAoAAABZKxgAAwAAAFwrGAAJAAAAZSsYAAQAAACMNRgABQAAAEltcG9ydERlY2xFeHBvcnROYW1lZEV4cG9ydERlZmF1bHREZWNsRXhwb3J0RGVmYXVsdEV4cHJUc0ltcG9ydEVxdWFsc1RzRXhwb3J0QXNzaWdubWVudFRzTmFtZXNwYWNlRXhwb3J0VHNJbnRlcmZhY2VEZWNsRXZhbHVhdGlvblNvdXJjZURlZmVyTmFtZWRFeHBvcnROYW1lc3BhY2VEZWZhdWx0TmFtZWRFeHBvcnROYW1lZFNwZWNpZmllcm9yaWdleHBvcnRlZGlzX3R5cGVfb25seUltcG9ydE5hbWVkU3BlY2lmaWVybG9jYWxpbXBvcnRlZEltcG9ydFN0YXJBc1NwZWNpZmllckV4cG9ydERlZmF1bHRTcGVjaWZpZXJJbXBvcnREZWZhdWx0U3BlY2lmaWVyRXhwb3J0TmFtZXNwYWNlU3BlY2lmaWVyY2Fubm90IGFjY2VzcyBhIHNjb3BlZCB0aHJlYWQgbG9jYWwgdmFyaWFibGUgd2l0aG91dCBjYWxsaW5nIGBzZXRgIGZpcnN0L2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvc2NvcGVkLXRscy0xLjAuMS9zcmMvbGliLnJzAABuLRgAYAAAAKgAAAAJAAAAsQkAAAQAAAAEAAAAsgkAAGNhcGFjaXR5IG92ZXJmbG93AAAA8C0YABEAAAAXPBgATAAAANINAAANAAAAFzwYAEwAAAAtCgAAJAAAAFJlZkNlbGw8Ym9ycm93ZWQ+AAAAMy4YAAoAAABUb2tlbkFuZFNwYW50b2tlbmhhZF9saW5lX2JyZWFrAMQxGABoAAAAbgEAAFEAAACzCQAACAAAAAQAAAC0CQAAtQkAALYJAAC3CQAAuAkAALkJAAC6CQAAuwkAALwJAAC9CQAAvgkAAL8JAADACQAAwQkAAGBtb2R1bGVgIGtleXdvcmQgaXMgbm90IHN1cHBvcnRlZC4gVXNlIGBuYW1lc3BhY2VgIGluc3RlYWQuVHlwZVNjcmlwdCBleHBvcnQgYXNzaWdubWVudCBpcyBub3Qgc3VwcG9ydGVkIGluIHN0cmlwLW9ubHkgbW9kZVR5cGVTY3JpcHQgaW1wb3J0IGVxdWFscyBkZWNsYXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGluIHN0cmlwLW9ubHkgbW9kZVR5cGVTY3JpcHQgZW51bSBpcyBub3Qgc3VwcG9ydGVkIGluIHN0cmlwLW9ubHkgbW9kZVR5cGVTY3JpcHQgbmFtZXNwYWNlIGRlY2xhcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgaW4gc3RyaXAtb25seSBtb2RlVHlwZVNjcmlwdCBwYXJhbWV0ZXIgcHJvcGVydHkgaXMgbm90IHN1cHBvcnRlZCBpbiBzdHJpcC1vbmx5IG1vZGVUaGUgYW5nbGUtYnJhY2tldCBzeW50YXggZm9yIHR5cGUgYXNzZXJ0aW9ucywgYDxUPmV4cHJgLCBpcyBub3Qgc3VwcG9ydGVkIGluIHR5cGUgc3RyaXAgbW9kZS4gSW5zdGVhZCwgdXNlIHRoZSAnYXMnIHN5bnRheDogYGV4cHIgYXMgVGAuADQGAAAMAAAABAAAAFkGAAAyCQAANwYAQeDh4AAL4QYBAAAAOAYAAGEgRGlzcGxheSBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCBhbiBlcnJvciB1bmV4cGVjdGVkbHkvcnVzdGMvOTBiMzVhNjIzOWMzZDhiZGFiYzUzMGE2YTA4MTZmN2ZmODlhMGFhZi9saWJyYXJ5L2FsbG9jL3NyYy9zdHJpbmcucnMAAB8xGABLAAAAewoAAA4AAACHCQAACAAAAAQAAACJCQAAsQkAAAQAAAAEAAAAsgkAAAAAAAAEAAAABAAAABMAAABFcnJvcltdILExGAABAAAAsjEYAAIAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9zd2NfZmFzdF90c19zdHJpcC0xMi4wLjEvc3JjL2xpYi5yc7MJAAAIAAAABAAAALQJAAC1CQAAtgkAALcJAAC4CQAAuQkAALoJAAC7CQAAvAkAAL0JAAC+CQAAvwkAAMAJAADBCQAAU3ludGF4IGVycm9yxDEYAGgAAAD5AAAASQAAAMQxGABoAAAAUgEAABUAAADEMRgAaAAAACUBAAAlAAAAxDEYAGgAAAA0AQAAJQAAAMQxGABoAAAAOAEAACUAAADEMRgAaAAAADkBAAAlAAAAxDEYAGgAAAA9AQAAJQAAAMQxGABoAAAAPgEAACUAAADEMRgAaAAAAD8BAAAlAAAAxDEYAGgAAABFAQAAJQAAAMQxGABoAAAARwEAACUAAADEMRgAaAAAAEgBAAAlAAAAxDEYAGgAAABJAQAAJQAAAFVuc3VwcG9ydGVkIHN5bnRheAAAxDEYAGgAAAClAQAAMAAAAGdlbmVyYXRlZCBjb2RlIHdhcyBub3QgdXRmLThmYWlsZWQgdG8gd3JpdGUgc291cmNlIG1hcHNvdXJjZSBtYXAgd2FzIG5vdCB1dGY4AAAAxDEYAGgAAAD0AQAAEwAAAMQxGABoAAAA5AEAABIAAADEMRgAaAAAAOsBAAA1AAAAxDEYAGgAAAAkAgAAEgAAAMQxGABoAAAAMAIAABUAAADEMRgAaAAAADwCAAAVAAAAxDEYAGgAAABKAgAAGQAAAMQxGABoAAAAVgIAABkAAAAPAEHY6OAAC4EBQDQYAMQxGABoAAAAegIAABkAAADEMRgAaAAAAIQCAABAAAAAxDEYAGgAAACIAgAAJAAAAG92ZXJyaWRljDQYAAgAAADEMRgAaAAAAL4CAAA8AAAAxDEYAGgAAAAuAwAAGAAAAGluaW5zdGFuY2VvZmdldHNldHN0YXRpYwAAAAAQAEHw6eAAC70YdGhpc8QxGABoAAAArwUAACQAAABzdHJ1Y3QgT3B0aW9uc3ZhcmlhbnQgaWRlbnRpZmllcmVudW0gTW9kZUludmFsaWRTeW50YXhVbnN1cHBvcnRlZFN5bnRheFVua25vd25UcGxleHByc3F1YXNpc1N1cGVySW1wb3J0RXhwckZuRXhwcmlkZW50AAAAAAAABAAAAAQAAAC7BQAAcGhhc2VCaW5FeHByb3BsZWZ0cmlnaHROZXdFeHByY2FsbGVlYXJnc3R5cGVfYXJnc09wdENhbGxTZXFFeHByQXJyYXlMaXRlbGVtc0NhbGxFeHByQ29uZEV4cHJ0ZXN0Y29uc2FsdFRoaXNFeHByAMIJAAAMAAAABAAAAMMJAADECQAABAAAAAQAAADFCQAAAAAAAAEAAAABAAAAEgAAAHEJAAAEAAAABAAAAPEEAAAAAAAABAAAAAQAAAC2BAAAaXNfYXN5bmNpc19nZW5lcmF0b3J0eXBlX3BhcmFtc3JldHVybl90eXBlAAB5OBgABAAAANw6GAAEAAAA4DoYAAYAAADmOhgABAAAAEw2GAAIAAAAVDYYAAwAAABgNhgACwAAAGs2GAALAAAAQXJyb3dFeHByQXdhaXRFeHByYXJnQ2xhc3NFeHByY2xhc3NPYmplY3RMaXRwcm9wc1BhcmVuRXhwclRhZ2dlZFRwbHRhZ3RwbFVuYXJ5RXhwcllpZWxkRXhwcmRlbGVnYXRlQXNzaWduRXhwck1lbWJlckV4cHJvYmpwcm9wVHBsRWxlbWVudHRhaWxjb29rZWRyYXdVcGRhdGVFeHBycHJlZml4U2ltcGxlUGF0RXhwck9yU3ByZWFkc3ByZWFkTWV0YVByb3BFeHByT3B0Q2hhaW5FeHByb3B0aW9uYWxiYXNlU3ByZWFkUHJvcFNwcmVhZEVsZW1lbnRkb3QzX3Rva2VuU3VwZXJQcm9wRXhwckFycmF5T2JqZWN0SW52YWxpZE1lbWJlclN1cGVyUHJvcFBhcmVuT3B0Q2hhaW5Uc0FzVHNTYXRpc2ZpZXNUc05vbk51bGxUc1R5cGVBc3NlcnRpb25Uc0luc3RhbnRpYXRpb25Qcml2YXRlUHVibGljSWRlbnRTdHJOdW1Db21wdXRlZEJpZ0ludAAAAAAIAAAABAAAAB4BAABgCQAADAAAAAQAAAC4BQAAUGFyYW1zcGFuZGVjb3JhdG9yc3BhdAAAxgkAACAAAAAIAAAAGQUAAMcJAAAEAAAABAAAAFkFAADICQAABAAAAAQAAAD9BAAAAAAAAAEAAAABAAAAEgAAAAAAAAABAAAAAQAAAGEJAAAAAAAABAAAAAQAAACdAAAAa2V5dmFs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LCBqKSBvdXQgb2YgYm91bmRzOiAoKSwgc2l6ZTog+D8YABcAAADMPxgAAgAAAA9AGAAJAAAA1D4YAFsAAACHAQAAGQAAANQ+GABbAAAAkgEAAAwAAADUPhgAWwAAAJIBAAAqAAAA1D4YAFsAAACIAQAAEwAAANQ+GABbAAAAdQEAACEAAADUPhgAWwAAAHYBAAAZAAAA1D4YAFsAAAB5AQAAJQAAANQ+GABbAAAAegEAABsAAADUPhgAWwAAAHMBAAAhAAAAZEYYAHcAAABLAQAAIAAAAGRGGAB3AAAASwEAACwAAABkRhgAdwAAAEsBAAAyAAAAZEYYAHcAAABTAQAAGAAAAOdEGABPAAAAyAUAABQAAADnRBgATwAAAMgFAAAhAAAA50QYAE8AAAC8BQAAIQBBuILhAAu9BQEAAADbCQAAY2FsbGVkIGBSZXN1bHQ6OnVud3JhcCgpYCBvbiBhbiBgRXJyYCB2YWx1ZQDnRBgATwAAAEwEAAAkAAAAqUIYAGsAAAC5AAAARgAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3RleHR3cmFwLTAuMTYuMS9zcmMvd3JhcC5yc4xBGABgAAAAFwEAABgAAABPdmVyZmxvd0Vycm9yaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZS9ydXN0Yy85MGIzNWE2MjM5YzNkOGJkYWJjNTMwYTZhMDgxNmY3ZmY4OWEwYWFmL2xpYnJhcnkvYWxsb2Mvc3JjL2JvcnJvdy5yczFCGABLAAAAFQEAACUAAABVdGY4RXJyb3J2YWxpZF91cF90b2Vycm9yX2xlbi9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3RleHR3cmFwLTAuMTYuMS9zcmMvd3JhcF9hbGdvcml0aG1zLnJzqUIYAGsAAABxAQAAGgAAAKlCGABrAAAAawEAACIAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi91bmljb2RlLWxpbmVicmVhay0wLjEuNS9zcmMvbGliLnJzADRDGABnAAAAYQAAABcAAAA0QxgAZwAAADUAAAAYAAAANEMYAGcAAAA5AAAAGgAAADRDGABnAAAAPgAAAAUAAABOb25lU29tZQ0KCgICAgICAgICAgMDAQEBAEGHiOEACxABAAAAAAAAAAICAAAAAAACAEHGiOEACwECAEHsiOEACwEBAEGHieEACwEBAEHnieEAC80GL3J1c3RjLzkwYjM1YTYyMzljM2Q4YmRhYmM1MzBhNmEwODE2ZjdmZjg5YTBhYWYvbGlicmFyeS9jb3JlL3NyYy9zdHIvcGF0dGVybi5ycwAA50QYAE8AAAC+AQAANwAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3RleHR3cmFwLTAuMTYuMS9zcmMvd29yZF9zcGxpdHRlcnMucnMAAEhFGABqAAAAmQAAACQAAABIRRgAagAAAJoAAAAkAAAAL3J1c3RjLzkwYjM1YTYyMzljM2Q4YmRhYmM1MzBhNmEwODE2ZjdmZjg5YTBhYWYvbGlicmFyeS9jb3JlL3NyYy9zbGljZS9tb2QucnMAAADURRgATQAAAOEDAAAhAAAA1EUYAE0AAADhAwAALgAAANRFGABNAAAA5QMAACAAAADURRgATQAAAOUDAAArAAAAL2hvbWUvbm9kZS9ob21lLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvdGV4dHdyYXAtMC4xNi4xL3NyYy93cmFwX2FsZ29yaXRobXMvb3B0aW1hbF9maXQucnMAZEYYAHcAAACuAAAAIQAAAGRGGAB3AAAAtAAAABsAAABkRhgAdwAAALQAAAAjAAAAZEYYAHcAAACvAAAAKQAAAGRGGAB3AAAAsAAAACwAAABkRhgAdwAAALEAAAAfAAAAZEYYAHcAAAB7AQAAGgAAAGRGGAB3AAAAfAEAAB4AAAAvcnVzdGMvOTBiMzVhNjIzOWMzZDhiZGFiYzUzMGE2YTA4MTZmN2ZmODlhMGFhZi9saWJyYXJ5L2FsbG9jL3NyYy9zeW5jLnJzAAAAAQAAAAAAAABI3hgAYAAAAB8FAAAZAAAA/////wAAAAAECw8TFxsfIyctMTQ4PEACRQAAAAAASQBNAAUFBQUFBQUFBQUFBQYFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFUVRYXAUFBQUFBQUFBQUFBQUFBQUFBQUFBQkAQcSQ4QALKAFgKGRobHArdHZ6foKGio6SlpygBTKkAAAAAJcFBaYAAAAAAAAABawAQfyQ4QALEwWvALMFBQUFBQUFBQUFBUMFBbcAQZ+R4QALCJpSuQAAAAC8AEGykeEAC5oCxMYAAACtzNDUutgAANwAAAAAAAAAAAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF3gUFBQUFBQXf4QUFBQUFBQUFBQXkBQUFBQUFBQUFBQUFBeIF5wAAAAAF6QAABQUFBQUFBQUF5QUFBQUFBQXrAAAAAAAACA0RFRkdISUqLzE2Oj5CAkcAAAAAAEsATwAFBQUFBQUFBQUFBQUGBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVFWWl4FBQUFBQUFBQUFBQUFBQUFBQUFBQUJAEHck+EACygBYihmam5yK3R4fICEiIyQlJmeogUypAAAAACXBQWpAAAAAAAAAAWsAEGUlOEACxMFsQC1BQUFBQUFBQUFBQVDBQW3AEG3lOEAC7sBmlK5AAAAAL8AAAAAAAAAAKeqwsTIAMoArc7S1rraAADcAAAAAAC9AAAFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBd4FBQUFBQUF3+EFBQUFBQUFBQUF5AUFBQUFBQUFBQUFBQXiBecAAAAABekAAAUFBQUFBQUFBeUFBQUFBQUF6wBB4KDhAAsBwABBwKHhAAtA/////////////////////////////////////////////z8//////z8//6r///8/////////31/cH88P/x/cHwBBlaLhAAtjBCAE//9/////f///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AEGVo+EAC2kEoAT//3////9///////////////////////////////////////////////////////////////////////8PAP//f/j//////w/////////////////////////////////D/wMAH1AAQY6k4QALhAbfvEDX///7////////////v//////////////////////////////////D/wMAH1AAAP//////////////////37zA1///+////////////7///////////////////////wP8///////////////////////////+////fwL//////wEAAAAAAAAAAP///4cHAP/////////////////////7/P///////////////////////////v///38C//////8B/v////+/tgD///+HBwAAAAAA//////8HAAAAwP7//////////////y8AYMAAnAAA/f///wAAAOD/////////////PwACAAD8////BzAEAAD/B////////////8P////////////////vn//9/58AAP/////////n////////////////AwD///////8/JP//PwQQAQAA////Af8H////fgAA//////8DAAAAAAAA8P///////yMAAAH/AwD+/+Gf+f///cUjAEAAsAMAAxD//////z8AAP///w//B////34A////////////+////////////////////8///v/vn/n///3F8595gLDP/wNQ4If5///9bQMAAABeAAAcAOC/+////e0jAAABAAMAAALgn/n///3tIwAAALADAAIA6Mc91hjH/wMAAAEAAAAAAO6H+f///W3ThzkCXsD/PwDuv/v///3t8787AQDP/wD+7p/5///97fOfOeCwz/8CAOzHPdYYx//Dxz2BAMD/AADg3/3///3/IwAAACcDAAAA4d/9///97yMAAABgAwAGAPDf/f////8nAEBwgAMAAPzg/3/8///7L38AAAAAAAAA/9/9///9//PfPWAnz/8AAO/f/f///e/z3z1gYM//DgD/3/3//////9998IDP/wD87v9//P//+y9/hF//wP8MAP7//////w0AfwAAAAAAAADW9///r/8NIF8AAPAAAAAAAQAAAAAAAAD//v///x8AAAAfAEGgquEAC9QD/v///////wf/f/8DAAAAANb3//+v//8/X3//8wAAAAABAAAD/wOgwv/+////H/7/3////v///x9AAAAAAAAAAP//////BwCAAAA/PGLA4f8DQAAA/////78g///////3////////////////////////////////////////////////////PwAA///////////8////////AAAAAAD/D////////////wP///////////8//////78g///////3//////////////////////////////////////////////////9/AP//PwD/AAAAv////////QcAAAAAAAAAAP///////////z1/Pf//////Pf////89fz3/f/////////89//////////8HAAAAAP//AAD/////////////Pz////////////89fz3//////z3/////PX89/3//////////Pf//////////5wD+AwD//wAA/////////////z8//v////////////////////////////////////////////////////////////////////////////////////////////////////////////8DAEGAruEAC4sC/////////////////5////7//wf////////////H/wH//wOA//8DAP//AwD/3wEA////////DwAAAIAQAAAAAP////////////////+f///+//8H////////////x/8B//8/gP//HwD//w8A/98NAP////////////+PMP8DAAAAAAAA//////////////8B//////8F//////////8/AP///38AAAAAAAD///8/HwD//////w////8DAAAAAAAAALj/A///////////////Af//////B///////////PwD///9//w//D8D/////Px8A//////8P////A/8HAAAAAP//fwD///////8fAEGUsOEACwGAAEGgsOEAC/8B4P//////DwDgHwAAAAAAAPj///8BwAD8/////z8AAAD///8P/////////3////+f/wP/A4AA/7//fwAAAAAAAP///////////x//AwD4DwD//////////////////w8A/////w8AAAAA4AD8////P/8B///////nAAAAAADebwT///////////////////////////////8AAAAAAAAAAP////////8A/+P//////z//Af//////5wAA9/////8H////////////////////////////////////////////////////////////////////////////////////AEGusuEACwYCgAAA/x8AQcCy4QALEoT8Lz9Q/f/z4EMAAP//////AQBB4bLhAAsxMAAAAAAAgAEAEAAAAAKAAAD/HwAAAAAAAP8f4v8BAIT8Lz9Q/f/z4EMAAP//////AQBBoLPhAAvgBv////////////////////////////////////8feAwA/////78g/////////4AAAP//fwB/f39/f39/fwAAAAD/////////////////////////////////////H/gPAP////+/IP////////+AAID//38Af39/f39/f3//////4AAAAP4DPh/+////////////f/j+//////////////fg///////+/////////////38AAP////8AAAAAAAD//+AAAAD+/z4f/v///////////3/+/v/////////////34P///////v////////////9/AAD/////AAAAAAAA/////////////////////////x8AAAAAAAAAAP//////P////////////////////////////////////////////////wcABAAAACcA8AD/////////////////////////H///AAwAAP//////fwCA////P/////////////8AAAAAgP/8////////////////+f////////8H6wMAAPz//x////8PAAD////////wv///////////////////AwAAAID//P////////////////n/////////B+sDAAD8/7v3//8HAAAA////////DwD8//////8PAAAAAAAAAPxoAPz//z8A//9/AAAA////H/D//////wcAAIAAAN//AHz//////xAAAP///////w8A//////////8/AP8D////6P//////P/////8PAP///x///////////wGA/wP///9///////8BAAD3DwAA//9/xP///////2I+BQAAOP8HHAB+fn4Af3////////f/A///////////////////BwAAAP///////38A/z//A///f/z//////////wcAADj//3wAfn5+AH9////////3/wP///////////////////83/wP/////////////////P/////////////////8DAAAAAH8A+KD//X9f2/////////////////8DAAAA+P///////////////////////z//////////////////AwAAAAB/APjg//1/X9v/////////////////AwAAAPj//////wBBjrrhAAuhAd//////////////////////HwAAAAD+//8H/v//B8D/////////////f/z8/BwAAAAA//8AAP//GAAA4AAAAADf/////////////////////x8AAP8D/v//h/7//wfA/////////////3/8/PwcAAAAAP/v//9///+3/z//PwAAAAD///////////////////8HAAAAAAAAAAD///////8fAEHAu+EACy//7///f///t/8//z8AAAAA////////////////////BwAAAAAAAAAA////////HwBB/7vhAAsBIABBkLzhAAsr////H////////wEAAAAAAP////8A4P///wf/////PwD///8//////w//PgBB0LzhAAujAv///x////////8BAAEAAAD/////AOD///8H//////8H////P/////8P/z4AAAAAAP////////////////////////8/AAD/////D/////8P//////8A////////DwD/9//3t//7//sbAAAAAAAAAAD/////////////////////////P/8D/////w//////D///////AP///////w8A//f/97f/+//7GwAAAAAAAAAAP/3/////v5H//z8A//9/AP///38AAAAAAAAAAP//NwD//z8A////AwAAAAAAAAAA/////////8AAAAAAAAAAAAEA7/7//z8AAAAAAP///x////8fAAAAAP/+//8fAAAA////////PwD//z8A//8HAP//AwBBgL/hAAszb/Dv/v//P4cAAAAA////H////x8AAAAA//7//38AAAD///////8/AP//PwD//wcA//8DAEHAv+EACyX///////////8BAAAAAAAA////////BwD///////8HAP////8PAEGAwOEACyj///////////8BAAAAAAAA////////BwD///////8HAP//////AP8DAEHQwOEACwf//////wMDAEHgwOEACx////8fgAD//z8AAAAAAP//AwAAAAAA//8fAAAA//9/AEGQweEAC90B//////8bAwAAAAAAAAAA4P///x+AAP////8BAAAA//8/AAAAAAD//x8AAAD//38A+P///////wAAAAAAAAAmAPj//////wAAAAD///8BAAD4////fwAAAJAA/////0cA+P//////BwAeAAAUAAAAAP//////////fwAAAMD/P4D/////////BwQA////Af8D////////3//wAP////9PAP//////////H97/FwAAAAD///v//w8AgAEAAAAAAAAAf73/v/8B//////9/AAAAAOCf+f///e0jAAAB4AMAQYDD4QALL///+//////AAwAAAAAAAAB/vf+//wH/////////B/8D75/5///97fufOYHgzx8fAEHAw+EACxn///////8fAIAHAIADAAAA////////AACwAEHww+EACyz//////38AAAAAAA8AAAAA////////////B//DAwAAAP//////////vwD/AwBBsMThAAs5////////P/8BAAA/AAAAAP///////wAAEAAAAAAAAAD//////wcAAQAAAAAAAAAA////BwAAAAB/AEGAxeEACyn//////////xEA/wMAAAAA/////////wH/AwAAAAAAAP///+f/D/8DfwBBwMXhAAsG//////8PAEHUxeEACxX//////////wAAAIB/8m////8AgAIAQfTF4QALFP/8/////wEACgAAAP////////8HAEGUxuEAC0z///////////8DAIB/8m////+/+Q8A/wMAAAAAAAAAAP/8///////8GwAAAAH4/////wcEAAAB8P//////AwAgAAD///////////8BAEGSx+EACy7///////////////8BAP////////9/gAD///////////8jAAD///////////8BAEH+x+EACxTvb//9////fwAAAQAAAAAA/P///wBBoMjhAAsUf/v/////AQBAAAAAv/3///8DAAEAQcDI4QALF//9/////3//AQD/AwAA/P////z///5/AEHgyOEACxZ/+/////9/tP8A/wO//f///3/7Af8DAEGcyeEACwv//wcA9P/9////DwBBtsnhAAsBAQBB3MnhAAsQ//9/AP///f/////HBwD/AwBB9snhAAsBAQBBgMrhAAsp/////////////////38AAP///////////////////////////////w8AQcDK4QALCf///////wAAfgBBgMvhAAsJ//////8///9/AEGgy+EACwv///////8AAP//PwBB7MvhAAsK4OMH+OcPAAAAPABBgMzhAAsJ//////////9/AEHAzOEACwb///9/4AcAQeDM4QALMv////////8B////fwAA////////////fwAA////PwAA////////AAAPAAAA+P//4P//AEGgzeEACzL/////////Af///3//A////////////3//A////z8fAP///////38ADwD/A/j//+D//wBB6M3hAAsI//////////8AQYDO4QALHf///////////wcBAAAAAAAAAPj/AAAAAAAAAAALAEGozuEACwj//////////wBBwM7hAAtC////////////h/////////+A//8AAAAAAAAAABsAAwD//////////////////////////////////z8AAAAAAP8BAEGgz+EACyD/////////////////////////////////////////DwBB/M/hAAsYf2//f/////////////////8H/x//Af8DAEHe0OEACxb/A/////////////////8H/x//Af9jAEGg0eEACx7///////////////////////////////////////8AQcjR4QALARwAQYDS4QAL1gH/////////////3///////////32Te/+vv/////////7/n39////97X/z9//////////////////////////////////////////////////////8//////f//9/////f//9/////f//9/////f/////3////9///3DwAAAAAAAP//////////////////////////P/////3///f////3///f////3///f////3/////9/////f//98////////////////9/+P//////HyAAEAAA+P7/AEGG1OEACwj/////////PwBBoNThAAsK//////8fgD8AQABBwNThAAsSf///+dsH/////////z8AAACAAEHg1OEACwr//////x//P/9DAEGS1eEACwz///8/AAD//////w8AQdLV4QALDv///38AAP////////8DAEGa1uEACwT///8PAEHa1uEACwb//////wMAQYDX4QALKv///////////////////////////////x8AAAAAAAAA//////////8PCABBwNfhAAss////////////////////////////////HwB/AAAAAAD///////////8P/wMAQYDY4QALGO////+W/vcKhOqWqpb3917/+/8P7vv/DwBBwNjhAAusAv////////////////////////////////////8AAAAA////////////////////////////////////////////////////A////////////////////////////////////z//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AQD/////////////////////////////AwD///////////////////////////////////////////////////////////////////8H////////////////////////////////////////////PwBBoNvhAAsE////PwBB4NvhAAs2////////////////////////////////////////////////////////////////////////AEHC3OEAC5akAUAAfwC/APcA9wD3APcA9wD3APcAMAFwAaEB4QH3APcA9wAeAvcALgJfApYC1gIWA0sD9wB8A7YD6wMFBEUEhQTFBPYELAVoBaYF5QUjBmIGoAbfBh0HXQebB9kHFwhXCJUI1AgSCVIJkAnQCRAKTwqPCs4KDgtOC44LyAsIDEgMiAy4DPIMMg1SDXINmg33ANoNEQ5PDn4Oow7GDuYOJg/3APcA9wD3APcA9wD3APcA9wBmD4YPxg8GEEgMRhCGEKYQ5hAWEVYRlhHWEQwSNRJWEpYSxxIHE0ITghO8E/gTOBR4FLUU9wD3APcA9RT3APcA9wD3ADUVbxUpAq8V7xUtFm0WqxbrFhcXURd/F78X/Rc7GHsYsxj3APcA3hgSGVIZchlzGXIZphnmGSIaYhqiGuIaHxtcG4Ubuxv2G/cA9wD3APcA9wD3ADMcWxz3APcA9wD3APcAmRzPHPcA9wD3APcA5hwmHVYdlh22HfYdNh52HpEe0R7RHtEe+x47H3sfuB/1HzUg0R6BHmYgRiCmINEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe9wDRHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEg0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHgQhPSH3APcA9wD3AH0hvSH7IRsi9wD3APcAWyKZItkiGSNTI5MjzCMMJEskiyTLJEgMCCVHJXcl9wCnJecl7yX3Jf8l6yXzJfsl5yXvJfcl/yXrJfMl+yXnJe8l9yX/Jesl8yX7Jecl7yX3Jf8l6yXzJfsl5yXvJfcl/yXrJfMl+yXnJe8l9yX/Jesl8yX7Jecl7yX3Jf8l6yXzJfsl5yXvJfcl/yXrJfMl+yXnJe8l9yX/Jesl8yX7Jecl7yX3Jf8l6yXzJfsl5yXvJfcl/yXrJfMl+yXnJe8l9yX/Jesl8yX7Jecl7yX3Jf8l6yXzJfsl5yXvJfcl/yXrJfMl+yXnJe8l9yX/Jesl8yX7Jecl7yX3Jf8l6yXzJfsl5yXvJfcl/yXrJfMl+yXnJe8l9yX/Jesl8yX7Jecl7yX3Jf8l6yXzJfsl5yXvJfcl/yXrJfMl+yXnJe8l9yX/Jesl8yX7Jecl7yX3Jf8l6yXzJfsl5yXvJfcl/yXrJfMl+yXnJe8l9yX/Jesl8yX7Jecl7yX3Jf8l6yXzJTMmbCasJqwmrCasJqwmrCasJqwmrCasJqwmrCasJqwmrCasJqwmrCasJqwmrCasJqwmrCasJqwmrCasJqwmrCasJqwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbRHtEe0R7RHtEe0R7RHtEeLCdsJ/cAqSf3APcA9wD3ALwn9wD8JzQodCiwKPcA5igmKWQplSnUKWAKfgqbCroK2graCtoK2wraCtoK2grbCvsK+wr7CvsK+wr7CvsK+wr7CvsK+wr7CvsK+wr7CvsK+wr7CvsK+wr7CvsK+wr7CvsK+wr7CvsK+wr7CvsK+wr7CvsK+wr7CvsK+wr7CvsKGwv3AfcA/AEUKmgCaALsJuwm9wD3APcA9wD3APcA9wDlBCQq9wD3AOMJ9wD3APcA9wD0AdoJLQfsJuwm9wD3ACsq7CbsJuwm7CbsJuwm7CbsJvcA2gn3APcA9wAtBycCBwj3APcAqR33AOUE9wD3ADsq9wBLKvcA9wCfJVoq7CbsJvcA9wD3APcA9wD3APcA9wD3AGgCuwj3APcAnyX3AAcI9wD3AMsH9wD3APcAXCr4AfgBayoBAnkq7CbsJuwm7Cb3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3AEUR9wBGEcsH7Cb9AfcA9wCJKuwm7CbsJuwmmSr3APcAoyr3ALIq9wD3APcA9AEPA+wm7CbsJvcAvyr3AMoq9wDmBOwm7CbsJuwm9wD3APcAmyX3AHYC9wD3ANoq6Qb3AOoqtg/6KvcA9wD3APcA7CbsJvcA9wAKKxor9wD3APcAKiv3AHAC9wDtBPcAOisNA+wm7CbsJuwm7Cb3APcA9wD3ALYP7CbsJuwm9wD3APcANhn3APcA9wC8D/cA9wDUD7sI7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm9wD0AfcA9wBKKzcZ7CbsJuwm+hL3APcAywf3AGoBWivsJvcAaivsJuwm9wAHCOwm9wBFESUC9wD3AGgBeit2AmgLiislAvcA9wCZK6cr9wC2D7sIJQL3AGkBtyvHK/cA9wDXKyUC9wD3AG0B5yv3K+4BNBn3AAECZAEHLBYs7CbsJuwmJiz1ATUs9wD3AGEByxK7CEUsdQL6AVQsmwdkLHIs0RLsJuwm7CbsJuwm7CbsJuwm9wD3APcAawGCLJIsNxnsJvcA9wD3AHABoiy7COwm7CbsJuwm7CbsJuwm7CbsJuwm9wD3AGEBsizBLMos7CbsJvcA9wD3AHAB2iy7COos7Cb3APcAZQH6LLsI7CbsJuwmSAwBC34KCi0EJewm7CbsJuwm7CbsJuwm7CbsJuwm7Cb3APcAZAErBOwm7CbsJuwm7CbsJvcA9wD3APcArAMwJxotJi33ADYtRC27COwm7CbsJuwmbgL3APcAVC1jLewm8CH3APcAcy2DLZMt9wD3AGYBoy2yLfcA9wD3APcAtg/CLewm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJvoB9wBhAdkL0i2sA9oJ4i33AL0L2AvPEuwm7CbsJuwmCQf3APcA8S0ALrsIEC73AEISIC67COwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7Cb3ADAuQC7tAfcATC5aLrsI7CbsJuwm7CbsJi0H9wBqLnkuhy73APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA1g7sJuwm7CbsJuwm7Cb3APcA9wD3APcA9wD0AZYu9wD3APcA9wD3APcA9wD3APcA9wD3APcANRnsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJvcA9wD3APcA9wD3ADYZ9wD3APcA9wD3AKYu9wD3ALQu9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3AL4u9wD3APcA9wD3APcA9wD3AM4u3i7QEuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7Cb3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3AHMP9wD3APcA9wBFEewm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJvcA9wD3ALYP9wD0Ae4u9wD3APcA9wD0AbsI9wBoAv4u9wD3APcADi8aLyovAQLoBPcA7CbsJuwm7CbsJuwm7Cb3APcA9wD3APcANS/sJuwm7CbsJuwm7Cb3APcA9wD3AAgIbwFwAXABRS8lAuwm7CbsJuwmVS/UEtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEevR7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHvcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcARhHsJuwmvB7sJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJocG0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEeDh9jL+wmcy9/L9Ee0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHrke7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7Cb3APcA9wD3APcA9wDlBNoJtg+PL9IS7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwmcAFwAegDcAHPEvcA9wD3APcA9wD3APcANRnsJuwm7Cb3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wBGEfcA9wBvAvcA9wD3AJ8vcAGsL/cAuC/3APcA9wDlBOwm9wD3APcA9wDGL+wm7CbsJuwm7CbsJuwm9wA1GfcANRn3APcA9wD3APcARRH3ALYP7CbsJuwm7CbsJuwm7CbsJvcA9wD3APcA9wD+AfcA9wD3APYB1C/iL/8B9wD3APcA3Q2GBvcAEA7vL+0B9wD3APcA9wD3APcA9wD3APcA9wBwAvcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD5LwcwBzAHMHABcAFwAZgtcAFwAcQBFzAjMPwSpgLsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7Cb3APQBLzDsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJtkLPzBNMPcA9wD3AGgC7Cb4Euwm7CbsJuwm7CbsJuwm9wD3ANoJXTBbJOwm7CbsJuwm7CbsJuwm7CbsJuwm7Cb3AG0w7Cb3APcAZAF9MOwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm9wBkAbsI7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwmjTD0AfcA9wD3APcA9wD3APcA9wD3APcA9wD3AHECzxLsJuwm9wD3APcA9wCdMK0w7CbsJuwm7CbsJuwm7CbsJuwm7CbuAfcA9wBkKL0w7CbsJuwm7CbuAfcA9wBoAuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJv8B9wDMMNkw5zD3MAUxDTH5AQcIHDEHCOwm7CbsJjcZ7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbsJuwm7CbRHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHiwxchmkGXIZchlyGTwxchlyGXIZLDHRHtEe0R5JMU8x0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEeXzFlMdEebDF6MdEe0R6HMdEe0R7RHtEelzGmMbAxtzHGMdQx5DHyMdEe0R7RHtEeGBtjLgIyEBkVG9Ee0R4OMtEeHjLRHtEe0R4qMtEeNjLRHtEe0R7RHkEy9wD3AFEy0R7RHmExYTJnMtEe0R7RHvcA9wD3APcA9wD3APcAdzL3APcA9wD3APcAAjLRHtEeAhn3APcA9wAXGxUb9wD3ABcb9wAAGdEe0R7RHtEe0R6HMq4xzzGWMtEe0R7RHs4x0R7RHtEepTKpMbQy0R7RHvcA9wD3APcA9wB3MtEe0R7RHtEe0R7RHmIy0R7RHp4x9wD3APcA9wD3APcA9wD3APcAAAL3APcA5QTsJuwmuwjRHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHtEe0R7RHrceLQjsJnABcAFwAXABcAFwAewm7CbsJuwm7CbsJuwm7CZwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAHsJjUEVQR1BJUEtQTVBPUEDwUvBU8FbwWPBa8FzwXvBQoGKgYxBlEGgAOAA4ADgANmBioGhgajBoADgAOAA4ADgAPDBuAGgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAMqBgAHgAMcB8oAygDKAMoAygDKAMoAygA8B8oAXAdvB4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAegB7cHgAOAA4ADgAPXB4ADgAOAA4ADgAOAA4AD5wcHCCcIRwhdCCoGfQiAA40IrQjECNcI5wgHCYADIAlACWAJgAmgCcAJ4AkACsoAIArKAMoAygDKAMoAygDKAMoAygDKAMoAygDKAMoAygDKAMoAygDKAMoAygDKAMoAygDKAMoAygDKAMoAygDKAMoAIAqAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADQAoDAwMDAwMDAwMMAgAAAQMDAwMDAwMDAwMDAwMDAwMDAwkSFh0aGR0WFREdGhcOFxsYGBgYGBgYGBgYFxcdHR0SHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dFRoRHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0VDBAdAwMDAwMEAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMIFRkaGhodHBwdHBYdDB0dGRocHA0dHBwcHBwWHBwcFR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHB0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0cHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRwNHBwcDRwdHRwdHR0dHR0dHBwcHB0cHQ0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHQMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMIAwMDAwMDAwMDAwMDCAgICAgICAMDAwMDAwMDAwMDAwMdHR0dHR0dHSoqHR0dHRcdKioqKh0dHR0dHR0qHSodHR0dHR0dHR0dHR0dHR0dHR0dHSodHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHQMDAwMDAwMdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0qHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0qKh0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRcMKiodHRoqAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDDAMdAwMdAwMSAyoqKioqKioqIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjKioqKiMjIyMdHSoqKioqKioqKioqHR0dHR0dHR0dGRkZFxcdHQMDAwMDAwMDAwMDEgMSEhIdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHQMDAwMDAwMDAwMDAwMDAwMDAwMDAxgYGBgYGBgYGBgZGBgdHR0DHR0dHR0dHR0dHR0dHR0dHR0dHR0SHQMDAwMDAwMdHQMDAwMDAx0dAwMdAwMDAx0dGBgYGBgYGBgYGB0dHR0dHR0dHR0dHR0dKh0dAx0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHQMDAwMDAwMDAwMDAwMDAwMqKh0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHQMDAwMDAwMDAwMDHSoqKioqKioqKioqKioqGBgYGBgYGBgYGB0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHQMDAwMDAwMDAx0dHR0XEh0qKgMaGh0dHR0dHR0dHR0dHR0dHR0dHR0dHR0DAwMDHQMDAwMDAwMDAx0DAwMdAwMDAwMqKh0dHR0dHR0dHR0dHR0dHSodHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dAwMDKiodKh0dHR0dHR0dHR0dKioqKiodHR0dHR0dHR0dHR0dHR0dKh0dKioqKioqAwMDAwMDAwMdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHQMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAx0DAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAx0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHQMDAx0DAwMDAwMDAwMDAwMDAwMDHQMDAwMDAwMdHR0dHR0dHR0dAwMMDBgYGBgYGBgYGBgdHR0dHR0dHR0dHR0dHR0dAwMDKh0dHR0dHR0dKiodHSoqHR0dHR0dHR0dHR0dHR0dHR0dHR0dHSodHR0dHR0dKh0qKiodHR0dKioDHQMDAwMDKioDAyoqAwMDHSoqKioqKioqAyoqKiodHSodHR0DAyoqGBgYGBgYGBgYGB0dGRkdHR0dHRkdGh0dAyoDAwMqHR0dHR0dKioqKh0dKiodHR0dHR0dHR0dHR0dHR0dHR0dHR0dKh0dHR0dHR0qHR0qHR0qHR0qKgMqAwMDKioqKgMDKioDAwMqKioDKioqKioqKh0dHR0qHSoqKioqKioYGBgYGBgYGBgYAwMdHR0DHSoqKioqKioqKgMDAyodHR0dHR0dHR0qHR0dKh0dHR0dHR0dHR0dHR0dHR0dHR0dHR0qHR0dHR0dHSodHSodHR0dHSoqAx0DAwMDAwMqAwMDKgMDAyoqHSoqKioqKioqKioqKioqKh0dAwMqKhgYGBgYGBgYGBgdGioqKioqKiodAwMDAwMDKgMDAyodHR0dHR0dHSoqHR0qKh0dHR0dHR0dHR0dHR0dHR0dHR0dHR0qHR0dHR0dHSodHSodHR0dHSoqAx0DAwMDAyoqAwMqKgMDAyoqKioqKioDAwMqKioqHR0qHR0dAwMqKhgYGBgYGBgYGBgdHR0dHR0dHSoqKioqKioqAx0qHR0dHR0dKioqHR0dKh0dHR0qKiodHSodKh0dKioqHR0qKiodHR0qKiodHR0dHR0dHR0dHR0qKioqAwMDKioqAwMDKgMDAwMqKh0qKioqKioDKioqKioqKioqKioqKioYGBgYGBgYGBgYHR0dHR0dHR0dGh0qKioqKgMDAwMDHR0dHR0dHR0qHR0dKh0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dKh0dHR0dHR0dHR0dHR0dHR0qKgMdAwMDAwMqAwMDKgMDAwMqKioqKioqAwMqHR0dKiodKiodHQMDKioYGBgYGBgYGBgYKioqKioqKg0dHR0dHR0dHQMDAw0dHR0dHR0dHSodHR0qHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0qHR0dHR0dHR0dHSodHR0dHSoqAx0DAwMDAyoDAwMqAwMDAyoqKioqKioDAyoqKioqKh0dKh0dAwMqKhgYGBgYGBgYGBgqHR0DKioqKioqKioqKioqAwMDAx0dHR0dHR0dHSodHR0qHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0DAx0DAwMDAyoDAwMqAwMDAx0dKioqKh0dHQMdHR0dHR0dHR0dAwMqKhgYGBgYGBgYGBgdHR0dHR0dHR0ZHR0dHR0dKgMDAyodHR0dHR0dHR0dHR0dHR0dHR0qKiodHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0qHR0dHR0dHR0dKh0qKh0dHR0dHR0qKioDKioqKgMDAwMDAyoDKgMDAwMDAwMDKioqKioqGBgYGBgYGBgYGCoqAwMdKioqKioqKioqKiopKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKioqKhopKSkpKSkpKSkpKSkpKSkdGBgYGBgYGBgYGAwMKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKSkqKSopKSkpKSopKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkqKSopKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSoqKSkpKSkqKSopKSkpKSkpKhgYGBgYGBgYGBgqKikpKSkqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKh0NDQ0NHQ0NCA0NDAgSEhISEggdEh0dHQMDHR0dHR0dGBgYGBgYGBgYGB0dHR0dHR0dHR0MAx0DHQMVEBUQAwMdHR0dHR0dHSodHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0qKioqAwMDAwMDAwMDAwMDAwMMAwMdHR0dHQMDAwMDAwMDAwMDKgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyoMDB0dHR0dHQMdHR0dHR0qHR0NDQwNHR0dHR0ICCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpGBgYGBgYGBgYGAwMHR0dHSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKRgYGBgYGBgYGBgpKSkpKSkdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHSodKioqKiodKiodHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0lJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJicnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycdHR0dHR0dHR0qHR0dHSoqHR0dHR0dHSodKh0dHR0qKh0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dKh0dHR0qKh0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHSodHR0dKiodHR0dHR0dKh0dHR0qKh0dHR0dHR0dHR0dHR0dHSodHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dKh0dHR0qKh0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0qKgMDAx0MHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dKioqKioqHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dKiodHR0dHR0qKgwdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0MHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0VECoqKh0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0MDAwdHR0dHR0dHR0dHSoqKioqKiodHR0dHR0dHR0dHR0dHR0dHR0DAwMDKioqKioqKioqHR0dHR0dHR0dHR0dHR0dHR0dHQMDAwwMKioqKioqKioqHR0dHR0dHR0dHR0dHR0dHR0dAwMqKioqKioqKioqKiodHR0dHR0dHR0dHR0dKh0dHSoDAyoqKioqKioqKioqKikpKSkpKSkpKSkpKSkpKSkpKSkpDAwUKQwdDBopKSoqGBgYGBgYGBgYGCoqKioqKh0dHR0dHR0dHR0qKioqKiodHRISDAwNHRISHQMDAwgDGBgYGBgYGBgYGCoqKioqKh0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHSoqKioqKiodHR0dHQMDHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHQMdKioqKiodHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0qKioqKioqKioqHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHSoDAwMDAwMDAwMDAwMqKioqAwMDAwMDAwMDAwMDKioqKh0qKioSEhgYGBgYGBgYGBgpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkqKikpKSkpKioqKioqKioqKiopKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSoqKiopKSkpKSkpKSkpKSkpKSkpKioqKioqGBgYGBgYGBgYGCkqKiopKR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dAwMDAwMqKh0dKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkqKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkqKgMYGBgYGBgYGBgYKioqKioqGBgYGBgYGBgYGCoqKioqKikpKSkpKSkpKSkpKSkpKioDAwMDAwMDAwMDAwMDAwMDKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgMDAwMDHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0DAwMDAwMDAwMDAwMdHR0dHR0dHSoqKhgYGBgYGBgYGBgMDB0MDAwMHR0dHR0dHR0dHQMDAwMDAwMDAx0dHR0dHR0dHQwMKgMDAx0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHQMDAwMDAwMDAwMDAwMdHRgYGBgYGBgYGBgdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHQMDAwMDAwMDAwMDAwMDKioqKioqKiodHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0DAwMDAwMDAwMDAwMDAwMDAwMDAyoqKgwMDAwMGBgYGBgYGBgYGCoqKh0dHRgYGBgYGBgYGBgdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0MDB0dHR0dHR0dHSoqKioqKiodHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dKiodHR0dHR0dHSoqKioqKioqAwMDHQMDAwMDAwMDAwMDAwMDAwMDAwMDAx0dHR0DHR0dHR0dAx0dAwMDHSoqKioqAwMDAwMDAwMDAwMDAwgDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDCAMDAx0dHR0dHR0dHR0dHR0dHR0dHR0dHR0qKh0dHR0dHSoqHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0qKh0dHR0dHSoqHR0dHR0dHR0qHSodKh0qHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHSoqHR0dHR0qHR0dHR0dHR0dHR0dHR0qKh0dHR0dHSodHR0dHR0dHR0dHR0dHR0dHR0dKiodHR0qHR0dHR0dHQ0dKgwMDAwMDAwIDAwMBwMKAwMMCAwMCxwcHRYWFRYWFhUWHBwdHRMTEwwAAAMDAwMDCBkZGRkZGRkZHRYWHBQUHR0dHRcVEBQUFB0dHR0dHR0dHR0dHQwZDAwMDB0MDAwGHR0dHSoDAwMDAwMDAwMDHR0qKhwdHR0dHR0dHRUQHB0cHBwcHR0dHR0dHR0VECodHR0dHR0dHR0dHR0dKioqGhoaGhoaGhkaGhoaGhoaGhoaGhoaGhkaGhoaGRoaGRoaGhoaGhoaGhoaGhoaGgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyoqKioqKioqKioqKioqKh0dHRkdHB0dHRkdHR0dHR0dHR0cHR0aHR0dHR0dHR0dHRwcHR0dHR0dHR0cHR0dHR0dHR0dHR0dHR0dHR0dHR0cHB0dHR0dHB0dHB0cHBwcHBwcHBwcHBwdHR0dHBwcHBwcHBwcHB0dHR0dHR0dHRwdHSoqKiocHBwcHBwcHBwcHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0cHRwdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHB0cHB0dHRwcHR0cHR0dHB0cGhodHB0dHR0cHR0cHBwcHR0cHRwdHBwcHBwcHRwdHR0dHRwcHBwdHR0dHBwdHR0dHR0dHRwdHR0cHR0dHR0cHR0dHR0dHR0dHR0dHRwcHR0cHBwcHR0cHB0dHBwdHR0dHR0dHR0dHR0dHR0dHBwdHRwcHR0dHR0dHR0dHR0dHRwdHR0cHR0dHR0dHR0dHR0cHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRwdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRMdHR0dHR0dHR0dHR0dHR0dFRAVEB0dHR0dHRwdHR0dHR0dJCQdHR0dHR0dHR0dHR0dFRAdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0kJCQkHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dKioqKioqKioqKioqKioqKioqKioqKioqKh0dHR0dHR0dHR0dKioqKioqKioqKioqKioqKioqKioqHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHB0dHR0cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHR0dHR0dHR0dHR0cHBwcHBwcHBwcHBwcHBwcHR0cHBwcHR0dHR0dHR0dHRwcHRwcHBwcHBwdHR0dHR0dHRwcHR0cHB0dHR0cHB0dHR0cHBwdHRwdHRwcHBwdHR0dHR0dHR0dHR0dHR0dHBwcHB0dHR0dHR0dHRwdHR0dHR0dHR0dHR0dHR0dJCQkJB0cHB0dHB0dHR0cHB0dHR0kJBwcJB0kJCQfJCQdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dJCQkHR0dHRwdHB0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHBwdHBwcHRwkHBwdHBwdHB0dHR0dHR0dHR0dHR0dHSQdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0cHB0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dJCQkJCQkJCQkHBwcHCQdJCQkHCQkHBwcJCQcHCQcHCQkJB0cHR0dHRwcJBwcHBwcHCQkJCQkHCQkHyQcHCQkJCQkHR0dJCQfHx8fHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0cHR0dFhYWFhYWHRISJB0dHRUQFRAVEBUQFRAVEBUQHBwcHBwcHBwcHBwcHBwcHBwcHBwdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRUQHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRUQFRAVEBUQFRAdHR0dHR0dHR0dHR0dHR0dFRAVEBUQFRAVEBUQFRAVEBUQFRAVEB0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRUQFRAdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRUQHR0dHR0dHR0dHR0dHR0dHR0dHR0dHBwcHBwdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHSoqHR0dHR0dHR0dHR0dHR0dHR0dHR0dHSodHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHQMDAx0dKioqKioSDAwMHRIMHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0qHSoqKioqHSoqHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHSoqKioqKiodDCoqKioqKioqKioqKioqAx0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dKioqKioqKioqHR0dHR0dHSodHR0dHR0dKh0dHR0dHR0qHR0dHR0dHSoDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxYWFhYWFhYWFhYWFhYWDAwMDAwMDAwdDBUMHR0WFh0dFhYVEBUQFRAVEAwMDAwSHQwMHQwMHR0dHR0LCwwMDB0MDBUMDAwMDAwMDB0MHQwMHR0dEhIVEBUQFRAVEAwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQqJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCoqKioqKioqKioqKiQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQqKioqKioqKioqKioqKioqKioqKioqKioqKiQkJCQkJCQkJCQkJCoqKioMEBAkJBQkJBUQFRAVEBUQFRAkJBUQFRAVEBUQFBUQECQkJCQkJCQkJCQDAwMDAwMkJCQkJAMkJCQkJBQUJCQkKh4kHiQeJB4kHiQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQeJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJB4kHiQeJCQkJCQkHiQkJCQkJB4eKioDAxQUFBQkFB4kHiQeJB4kHiQkJCQkJCQkJCQkJCQkJCQkJCQkJCQeJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJB4kHiQeJCQkJCQkHiQkJCQkJB4eJCQkJBQeFBQkKioqKiokJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKiQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCoqKioqKioqKioqKh4eHh4eHh4eHh4eHh4eHh4kJCQkJCQkJBwcHBwcHBwcJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkFCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCoqKiQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCoqKioqKioqKh0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0MDB0dHR0dHR0dHR0dHR0MEgwdHR0dHR0dHR0dHR0dHR0dGBgYGBgYGBgYGB0dKioqKioqKioqKioqKioqKioqKiodHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHQMDAwMdAwMDAwMDAwMDAx0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHQMDHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dAwMdDAwMDAwqKioqKioqKh0dHR0dHR0dHR0dKioqKiodHSodKh0dHR0dKioqKioqKioqKioqKioqKioqKioqKioqHR0dHR0dHR0dHR0dHR0DHR0dAx0dHR0DHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0DAwMDAx0dHR0DKioqHR0dHR0dHR0ZHSoqKioqKh0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0NDRISKioqKioqKioDAx0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dAwMDAwMDAwMDAwMDKioqKioqKioMDBgYGBgYGBgYGBgqKioqKioDAwMDAwMDAwMDAwMDAwMDAwMdHR0dHR0dHR0dDR0dAxgYGBgYGBgYGBgdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dAwMDAwMDAwMMDB0dHR0dHR0dHR0dHR0dHR0DAwMDAwMDAwMDAwMDKioqKioqKioqKiodJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUqKioDAwMDHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0DAwMDAwMDAwMDAwMDHR0dHR0dDAwMHR0dHSodGBgYGBgYGBgYGCoqKiodHSkpKSkpKSkpKSkpKSkpKSkYGBgYGBgYGBgYKSkpKSkqHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0DAwMDAwMDAwMDAwMDAyoqKioqKioqKh0dHQMdHR0dHR0dHQMDKioYGBgYGBgYGBgYKiodDAwMKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkqKioqKioqKioqKioqKioqKioqKioqKiopKSkpKR0dHR0dHR0dHR0dAwMDAwMMDB0dHQMDKioqKioqKioqHR0dHR0dKiodHR0dHR0qKh0dHR0dHSoqKioqKioqKh0dHR0dHR0qHR0dHR0dHSodHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHSoqKiodHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHQMDAwMDAwMDDAMDKioYGBgYGBgYGBgYKioqKioqISIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiEiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIhIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiISIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIioqKioqKioqKioqKiYmJiYmJiYmJiYmJiYmJiYqKioqJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJyoqKioFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKh0dHR0dHR0qKioqKioqKioqKiodHR0dHSoqKioqIwMjIyMjIyMjIyMjHSMjIyMjIyMjIyMjIyMqIyMjIyMqIyojIyojIyojIyMjIyMjIyMjHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dKioqKioqKioqKioqKioqKh0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dEBUdHR0dHR0dHR0dHR0dHR0dKiodHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dKioqKioqKh0qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKh0dHR0dHR0dHR0dHRkdHR0DAwMDAwMDAwMDAwMDAwMDFxAQFxcSEhUQEyoqKioqKgMDAwMDAwMDAwMDAwMDAwMkJCQkJBUQFRAVEBUQFRAVECQkFRAkJCQkJCQkECQQKhQUEhIkFRAVEBUQJCQkJCQkJCQqJBoZJCoqKiodHR0dHSodHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dKioGKhIkJBoZJCQVECQkECQQJCQkJCQkJCQkJCQUFCQkJBIkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQVJBAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQVJBAkFRAQFRAQFCQeHh4eHh4eHh4eJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkFBQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKiokJCQkJCQqKiQkJCQkJCoqJCQkJCQkKiokJCQqKioZGiQkJBoaKh0dHR0dHR0qKioqKioqKioqAwMDDxwqKh0dHR0dHR0dHR0dKh0dKh0MDAwqKioqHR0dHR0dHR0dHR0dHQMqKh0dHR0dHQMDAwMDKioqKiodHR0dHR0dHR0dHR0dHSoMHR0dHR0qKioqKioqKioqKh0dHSodHSodHR0dHR0dHR0qHR0dHR0dHSodHSoqKh0qHR0dHR0dHR0dKioqKiodHR0dHR0qKh0qHR0dHR0dKh0dKioqHSoqHR0dHR0dKgwdHR0dHR0dHSodHSoqKioqHR0dHR0dHR0dHR0dKioqDB0DAwMqAwMqKioqKgMDAwMdHR0dHR0qKgMDAyoqKioDDAwMDAwMDAwdKioqKioqKh0dHR0dAwMqKioqHR0dHR0MDAwMDAwTKioqKioqKioqHR0dHR0dKioqDAwMDAwMDB0dKioqKioqKh0dHR0qKiodHR0dHR0dHR0dKgMDDCoqAx0dHR0dHR0dHSoqKioqKh0dAwMDAx0dHR0qKioqKioDAwMDAwMDDAwdHR0dHSoqAx0dAwMdKioqKioqKioqAwMDAwMDAwMDAwMdHR0MDAMqKioqKioqKioqHSoqAwMDAwMqGBgYGBgYGBgYGAwMDAwdAwMdKioqKioqKiodHR0DHQ0dKioqKioqKioqAx0dHR0MDB0MAwMDAx0DAxgYGBgYGBgYGBgdDR0MDAwDAwMDAwMDAwwMHQwMHQMdAyoqKioqKioqKioqKioqHR0dHR0dHSodKh0dHR0qHR0dHR0dHR0dDCoqKioqKgMDAwMqHR0dHR0dHR0qKh0qHR0qHR0dHR0qAwMdAwMdKioqKioqAyoqKioqHR0dAwMqKgMDAwMDAwMqKioDAwMDAwMDHR0dHQwMDAwdGBgYGBgYGBgYGAwMKh0DHQMDAwMdHR0dKioqKioqKioDAwMDAwMqKgMDAwMDAwMDDQwMEhIdHR0MDAwMDAwMDB0dHR0DAyoqAwwMHR0qKioqKioqKioqKg0NDQ0NDQ0NDQ0NDQ0qKioDAwMDAwMDAx0dKioqKioqGBgYGBgYGBgYGCkpDAwMKR0dHR0dHR0qKh0qKh0dHR0qHR0qHR0dHR0dHR0DAwMDAwMqAwMqKgMDAwMdAwMMDAwqKioqKioqKiodAwMDAwMDAyoqAwMDAwMDHQ0dAyoqKioqKioqKioqHR0dAwMDAwMDAx0DAwMDDR0MDAwMDR0DKioqKioqKiodAwMDAwMDAwMDAwMdHR0dAwMDAwMDAwMDAwwMDB0NDQwMKioqKioqKioqKioqKg0NDQ0NDQ0NDQ0qKioqKiodDAwMDAwqKioqKioqKioqDRIdHR0dHR0dHR0dHR0dHQMDAwMDAyoqKgMqAwMqAwMDAwMDHQMqKioqKioqKh0dHR0dHSodHSodHR0dHR0DAyoDAwMDAx0qKioqKioqHR0dAwMDAx0dKioqKioqKgMDHQMdHR0dHR0dHR0dHR0DAwMDAwMDKioqAwMDDAwkJCQkJCQkJCQkJB0dHR0dHR0dHR0dHR0ZGRkdHR0dHR0dHR0dHR0dHR0qKioqKioqKioqKioqDAwMDAwqKioqKioqKioqKh0dHR0dHR0dFRUVEBAQHR0QHR0dFRAVEB0dHR0dHR0dHRUQEB0dHR0ICAgICAgIFRAICAgVEBUQAx0dHR0dHQMDAwMDAwMDAxgYGBgYGBgYGBgqKioqDAwDAwMDAwwqKioqKioqKioqAwMDAwMDAwwMDB0dHR0dHQwdKioqKioqKioqKhgYGBgYGBgYGBgqHR0dHR0dHQwMHR0qKioqKgMDAwMDAwMDKioqKioqKgMUFBQUCCoqKioqKioqKioqHioqKioqKioqKioqKioeHh4qKh4qKioqKioqKioqHh4eHioqKioqKioqHR0dHR0dHR0dHSoqHQMDDB0dHR0dAwMDAwMdHR0DAwMdHQMDAwMDAwMdHR0dHR0dHR0dAwMDAx0dAwMDHSoqKioqKioqKiodKiodHSoqHR0dHSodHR0dHR0dHR0dKh0qHR0dHR0qHSoqKh0dHR0dHR0dHR0dHSoqGBgYGBgYGBgYGBgYGBgYGB0dHR0dAx0dHR0dHR0dHR0DHR0MDAwMHSoqKioqHR0dHR0dKioqKioDAwMDAwMDAwMqKgMDAwMDKgMDKgMDAwMDKioqKioDAwMDAwMDHR0dHR0dHSoqHR0dHR0dHR0dHR0dHR0DKhgYGBgYGBgYGBgqKioqKhodHR0dHR0dKh0dHR0qHR0qHR0dHQMDAwMDAwMdKioqKhgYGBgYGBgYGBgqKioqFRUZHR0dHSoqKioqKioqKioqHR0qHSoqHSodHR0dHR0dKh0dHR0qHSodKioqKh0qKioqHSodKh0qHR0dKh0dKh0qKh0q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VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVXtVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVXddVcf/1Xf9VVVVVVdVVVVVVVVVV1VVVVdX9XVdVVVVVVVVVVVVVVQBB3JbjAAspVVVVVVXVVVVVVVVVVVVVVVVVVVUVAFBVVVVVVVVVVVVVVVVVVVVVVQEAQY+X4wALtAEQQRBVVVVVVVVVVVVVVVVVVVVRVVUAAEBUVVVVVVVVVVVVVRUAAAAAAFVVVVVUVVVVVVVVVVUFABQAFARQVVVVVVVVVRVRVVVVVVVVVQAAAAAAAEBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVBQAAVFVVVVVVVVVVVVVVVVUVAABVVVFVVVVVVQUQAAABAVBVVVVVVVVVVVVVAVVVVVVVVVVVVVVVVVVQVQAAVVVVVVVVVVVVVQUAQdCY4wAL4w1AVVVVVVVVVVVVVVVVVUVUAQBUUQEAVVUFVVVVVVVVVVFVVVVVVVVVVVVVVVVVVUQBVFVRVRVVVQVVVVVVVVVFQVVVVVVVVVVVVVVVVVVVVEEVFFBRVVVVVVVVVVBRVVUBEFRRVVVVVQVVVVVVVQUAUVVVVVVVVVVVVVVVVVVVBAFUVVFVAVVVBVVVVVVVVVVFVVVVVVVVVVVVVVVVVVVFVFVVUVUVVVVVVVVVVVVVVVRUVVVVVVVVVVVVVVVVVQRUBQRQVUFVVQVVVVVVVVVVUVVVVVVVVVVVVVVVVVVVFEQFBFBVQVVVBVVVVVVVVVVQVVVVVVVVVVVVVVVVVRVEAVRVUVUVVVUFVVVVVVVVVVFVVVVVVVVVVVVVVVVVVVVVVUUVBURVFVVVVVVVVVVVVVVVVVVVVVVVVVVVUQBAVVUVAEBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVRAABUVVUAQFVVVVVVVVVVVVVVVVVVVVVVVVBVVVVVVVURUVVVVVVVVVVVVVVVVVUBAABAAARVAQAAAQAAAAAAAAAAVFVFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQEEAEFBVVVVVVVVUAVUVVVVAVRVVUVBVVFVVVVRVVVVVVVVVVWqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqoAAAAAAAAAAFVVVVVVVVUBVVVVVVVVVVVVVVVVBVRVVVVVVVUFVVVVVVVVVQVVVVVVVVVVBVVVVVVVVVVVVVVVVVVVVVUQAFBVRQEAAFVVUVVVVVVVVVVVVVUVAFVVVVVVVVVVVVVVVVVBVVVVVVVVVVVRVVVVVVVVVVVVVVVVVUAVVFVFVQFVVVVVVVUVFFVVVVVVVVVVVVVVVVVVRQBARAEAVBUAABRVVVVVVVVVVVVVVVUAAAAAAAAAQFVVVVVVVVVVVVVVVQBVVVVVVVVVVVVVVVUAAFAFVVVVVVVVVVVVFQAAVVVVUFVVVVVVVVUFUBBQVVVVVVVVVVVVVVVVVUVQEVBVVVVVVVVVVVVVVVVVVQAABVVVVVVVVUAAAAAEAFRRVVRQVVVVFQDXf19ff/8FQPdd1XVVVVVVVVVVVQAAAABVV1VV/VdVVVVVVVVVVVVXVVVVVVVVVVUAAAAAAAAAAFRVVVXVXV1V1XVVVX1VVVVVVVVVVVVVVdVX1X////9V//9fVVVVXVX///9VVVVVdVVVX1VVVVX1dVdVVVXVVVVVVVVV99ff111ddf3X//93Vf9VX11VX1d1VVVVf//19V9VVVX1/19VVV1dVVVdVVVVVVXVVVVVVXVVpVVVVWlVVVVVVVVVVVVVVVVVVVWpVpZVVVVVVVVVVVVVVf/////////////////////////////////////////////f//////////9V////////////VVVV//////VfVVXf/19V9fVVX1/11/VfVVVV9V9V1VVVVWlVfV31VVpVd1VVVVVVVVVVd1WqqqpVVVXf33/fVVVVlVVVVVWVVVX1WVWlVVVVVelV+v/v//7//99V7/+v++/7VVmlVVVVVVVVVVZVVVVVXVVVVWaVmlVVVVVVVVX1//9VVVVVValVVVVVVVVWVVWVVVVVVVVVlVZVVVVVVVVVVVVVVVVW+V9VVVVVVVVVVVVVVVVVVVVVVVVVVRVQVVVVVVVVVVVVVVVVVVVVVVVVFVVVVVVVVVVVAAAAAAAAAACqqqqqqqqaqqqqqqqqqqqqqqqqqqqqqqqqqqqqqlVVVaqqqqqqWlVVVVVVVaqqqqqqqqqqqqqqqqqqCgCqqqpqqaqqqqqqqqqqqqqqqqqqqqqqqqqqaoGqqqqqqqqqqqpVqaqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqKqqqqqqqqqqqmqqqqqqqqqqqqqqqqqqqqqqqqqqqqpVVZWqqqqqqqqqqqqqqmqqqqqqqqqqqqqq//+qqqqqqqqqqqqqqqqqqqpWqqqqqqqqqqqqqqqqqmpVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVFUAAAFBVVVVVVVVVBVVVVVVVVVVVVVVVVVVVVVVVVVVVUFVVVUVFFVVVVVVVVUFVVFVVVVVVUFVVVVVVVQAAAABQVUUVVVVVVVVVVVVVBQBQVVVVVVUVAABQVVVVqqqqqqqqqlZAVVVVVVVVVVVVVVUVBVBQVVVVVVVVVVVVUVVVVVVVVVVVVVVVVVVVVVUBQEFBVVUVVVVUVVVVVVVVVVVVVVVUVVVVVVVVVVVVVVVVBBRUBVFVVVVVVVVVVVVVUFVFVVVVVVVVVVVVVVVRVFFVVVVVqqqqqqqqqqqqVVVVAAAAAABAFQBBv6bjAAuhCFVVVVVVVVVVRVVVVVVVVVVVAAAAAKqqWlUAAAAAqqqqqqqqqqpqqqqqqmqqVVVVVVWqqqqqqqqqqlZVVVVVVVVVVVVVVVVVVQVUVVVVVVVVVVVVVVVVVVVVqmpVVQAAVF1VVVVVVVVVVVVVVVVVVVVRVVVVVVVVVVVUVVVVVVVVVVVVVVVVVVVVVVVVVVUFQFUBQVUAVVVVVVVVVVVVVUAVVVVVVVVVVVVVQVVVVVVVVVVVVVVVVVVVVQBVVVVVVVVVVVVVVVVVVVVVFVRVVVVVVVVVVVVVVVVVVVVVVVVVAVUFAABUVVVVVVVVVVVVVVUFUFVVVVVVVVVVVVVVVVVVUVVVVVVVVVVVVVVVVVUAAABAVVVVVVVVVVVVVRRUVRVQVVVVVVVVVVVVVVUVQEFVRVVVVVVVVVVVVVVVVVVVVUBVVVVVVVVVVRUAAQBUVVVVVVVVVVVVVVVVVVUVVVVVUFVVVVVVVVVVVVVVVQUAQFVVARRVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVRVQBFVFVVVVVVVVVRUVAEBVVVVVVVRVVVVVFVVVVQUAVABUVVVVVVVVVVVVVVVVVVVVVQAABURVVVVVVUVVVVVVVVVVVVVVVVVVVVVVVVVVVRQARBEEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUVBVBVEFRVVVVVVVVQVVVVVVVVVVVVVVVVVVVVVVVVVVUVAEARVFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUVUQAQVVVVVVVVVVVVAQUQAFVVVVVVVVVVVVVVVVVVVVUVAABBVVVVVVVVVVVVVVVVVVRVFUQVVVVVVVVVVVVVVVVVVVVVVVVVVVUABVVUVVVVVVVVVQEAQFVVVVVVVVVVVRUAFEBVFVVVAUABVVVVVVVVVVVVVVUFAABAUFVVVVVVVVVVVVVVVVVVVVVVVVVVVQBAABBVVVVVBQAAAAAABQAEQVVVVVVVVVVVVVVVVVVVAUBFEAAQVVVVVVVVVVVVVVVVVVVVVVVVUBFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVFVRVVVBVVVVVVVVVVVVVVVUFQFVEVVVVVVVVVVVVVVVVVVVVVBUAAABQVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQBUVVVVVVVVVVVVVVVVVVUAQFVVVVVVFVVVVVVVVVVVVVVVVVVVVRVAVVVVVVVVVVVVVVVVVVVVVVVVVapUVVVaVVVVqqqqqqqqqqqqqqqqqqpVVaqqqqqqWlVVVVVVVVVVVVWqqlZVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVqqmqaaqqqqqqqqqqalVVVWVVVVVVVVVVallVVVWqVVWqqqqqqqqqqqqqqqqqqqqqqqqqVVVVVVVVVVVBAFVVVVVVVVUAQeuu4wALRVAAAAAAAEBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVRFQBQAAAABAAQBVVVVVVVVVBVBVVVVVBVRVVVVVVVVVVVVVVVVVVQBBva/jAAsCQBUAQcuv4wAL6AVUVVFVVVVUVVVVVRUAAQAAAFVVVVUAQAAAAAAUABAEQFVVVVVVVVVVVVVVVVVVVVVFVVVVVVVVVVVVVVVVVVVVAFVVVVVVVVVVAEBVVVVVVVVVVVVVVQBAVVVVVVVVVVVVVVVVVVVWVVVVVVVVVVVVVVVVVVVVVVWVVVVVVVVVVVVVVVVV//9/Vf////////9f//////////////////9fVf/////////vq6rq/////1dVVVVValVVVaqqqqqqqqqqqqqqVaqqVlVaVVVVqlpVVVVVVVWqqqqqqqqqqlZVVamqmqqqqqqqqqqqqqqqqqqqqqqqpqqqqqqqVVVVqqqqqqqqqqqqqmqVqlVVVaqqqqpWVqqqqqqqqqqqqqqqqqqqqqqqaqaqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqWqqqqqqqqqqqqqqqqqqqqWlVVlWqqqqqqqqpVVVVVZVVVVVVVVWlVVVVWVVVVVVVVVVVVVVVVVVVVVVVVVVWVqqqqqqpVVVVVVVVVVVVVVVWqWlVWaqlVqlVVlVZVqqpWVVVVVVVVVVWqqqpVVlVVVVVVVaqqqqqqqqqqqqqqaqqqmqqqqqqqqqqqqqqqqqqqVVVVVVVVVVVVVVVVqqqqVqqqVlWqqqqqqqqqqqqqqpqqWlWlqqqqVaqqVlWqqlZV////////////////////XzAxMjM0NTY3ODlhYmNkZWYvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi91dWlkLTEuMTAuMC9zcmMvZm10LnJzAPDZGABbAAAAuQAAAA0AAADw2RgAWwAAALEAAAAVAAAA8NkYAFsAAAC0AAAADQAAAPDZGABbAAAAtQAAAA0AAABKc1ZhbHVlKCkAAACM2hgACAAAAJTaGAABAAAA//////////+o2hgAQcC14wALhQFUcmllZCB0byBzaHJpbmsgdG8gYSBsYXJnZXIgY2FwYWNpdHnA2hgAJAAAAC9ydXN0Yy85MGIzNWE2MjM5YzNkOGJkYWJjNTMwYTZhMDgxNmY3ZmY4OWEwYWFmL2xpYnJhcnkvYWxsb2Mvc3JjL3Jhd192ZWMucnPs2hgATAAAAKYCAAAJAEHQtuMAC5QHAQAAAN0JAABjYW5ub3QgYWNjZXNzIGEgVGhyZWFkIExvY2FsIFN0b3JhZ2UgdmFsdWUgZHVyaW5nIG9yIGFmdGVyIGRlc3RydWN0aW9uL3J1c3RjLzkwYjM1YTYyMzljM2Q4YmRhYmM1MzBhNmEwODE2ZjdmZjg5YTBhYWYvbGlicmFyeS9zdGQvc3JjL3RocmVhZC9sb2NhbC5ycwAAAJ7bGABPAAAABAEAABoAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi93YXNtLWJpbmRnZW4tMC4yLjEwMC9zcmMvY2FjaGUvaW50ZXJuLnJzAAAAANwYAG0AAAAaAAAAKwAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3dhc20tYmluZGdlbi1mdXR1cmVzLTAuNC41MC9zcmMvcXVldWUucnMAAACA3BgAbQAAACUAAAAuAAAAgNwYAG0AAAAoAAAAKQAAAIDcGABtAAAAPgAAABoAAAAvaG9tZS9ub2RlL2hvbWUvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi93YXNtLWJpbmRnZW4tZnV0dXJlcy0wLjQuNTAvc3JjL3Rhc2svc2luZ2xldGhyZWFkLnJzAAAAIN0YAHkAAAAiAAAAFQAAAN8JAADgCQAA4QkAAOIJAAAg3RgAeQAAAGcAAAAlAAAAY2xvc3VyZSBpbnZva2VkIHJlY3Vyc2l2ZWx5IG9yIGFmdGVyIGJlaW5nIGRyb3BwZWQAAOMJAAAEAAAABAAAAOQJAADlCQAATGF6eSBpbnN0YW5jZSBoYXMgcHJldmlvdXNseSBiZWVuIHBvaXNvbmVkAAAU3hgAKgAAAC9ob21lL25vZGUvaG9tZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL29uY2VfY2VsbC0xLjE5LjAvc3JjL2xpYi5yc0jeGABgAAAACAMAABkAAAByZWVudHJhbnQgaW5pdAAAuN4YAA4AAABI3hgAYAAAAHoCAAANAAAAAAAAgABB/L3jAAvXVwECAgIAAAABAQICAggAAAANAAAADwAAAMP0EADL9BAA2PQQAAAAAAABAAAAAQAAAAgAAAANAAAADwAAAMP0EADL9BAA2PQQAAgAAAANAAAADwAAAMP0EADL9BAA2PQQAAYAAAAGAAAACAAAAAcAAACYfRAAYigSAJ59EACmfRAAMKEQADKhEAA0oRAANqEQADihEAA6oRAAPKEQAD6hEABAoRAAQqEQAEShEABGoRAASKEQAEqhEABMoRAATqEQAFChEAAMqRAAHKkQACypEAA8qRAAPKkQAEypEABcqRAAbKkQAHypEACMqRAAnKkQAKypEAC8qRAAzKkQANypEADsqRAA/KkQAAyqEAAcqhAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEAB8oRAAfKEQAHyhEACMoRAAnKEQAKyhEAC8oRAAzKEQANyhEADsoRAA/KEQAAyiEAAcohAALKIQADyiEABMohAAXKIQAGyiEAB8ohAAjKIQAJyiEACsohAAvKIQAMyiEADcohAA7KIQAOyiEAD8ohAADKMQAByjEAAsoxAAPKMQAEyjEABcoxAAbKMQAHyjEACMoxAAnKMQAJyjEACsoxAAvKMQAMyjEADcoxAA7KMQAOyjEAD8oxAADKQQABykEAAspBAAPKQQAEykEABcpBAAbKQQAHykEACMpBAAjKQQAJykEACspBAAvKQQAMykEADcpBAA7KQQAPykEAAMpRAAHKUQACylEAA8pRAATKUQAFylEABspRAAfKUQAIylEACcpRAAnKUQAKylEAC8pRAAzKUQANylEADspRAA/KUQAPylEAAMphAAHKYQACymEAA8phAATKYQADykEABcphAAbKYQAHymEACMphAAnKYQAKymEAC8phAAzKYQANymEADsphAA/KYQAAynEAAcpxAALKcQADynEABMpxAAXKcQAGynEAB8pxAAjKcQAJynEACspxAAvKcQAMynEADcpxAA7KcQAPynEAAMqBAAHKgQACyoEAA8qBAATKgQAFyoEABsqBAAfKgQAIyoEACcqBAArKgQALyoEADMqBAA3KgQAOyoEAD8qBAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAG62EAB2thAAfrYQAIa2EACOthAAlrYQAJ62EACmthAArrYQALa2EAC+thAAxrYQAM62EADWthAA3rYQAOa2EADuthAA9rYQAP62EAAGtxAADrcQABa3EAAetxAAJrcQAC63EAA2txAAPrcQAEa3EABOtxAAVrcQAF63EABmtxAAbrcQAHa3EAB+txAAhrcQAI63EACWtxAAnrcQAKa3EACutxAAtrcQAL63EADGtxAAzrcQANa3EADetxAA5rcQAO63EAD2txAA/rcQAAa4EAAOuBAAFrgQAB64EAAmuBAALrgQADa4EAA+uBAARrgQAE64EABWuBAAXrgQAGa4EABuuBAAdrgQAH64EACGuBAAjrgQAJa4EACeuBAAprgQAK64EAC2uBAAvrgQAMa4EADOuBAA1rgQAN64EADmuBAA7rgQAPa4EAD+uBAABrkQAA65EAAWuRAAHrkQACa5EAAuuRAANrkQAD65EABGuRAATrkQAFa5EABeuRAAZrkQAG65EAB2uRAAfrkQAIa5EACOuRAAlrkQAJ65EACmuRAArrkQALa5EAC+uRAAxrkQAM65EADWuRAA3rkQAOa5EADuuRAA9rkQAP65EAAGuhAADroQABa6EAAeuhAAJroQAC66EAA2uhAAProQAEa6EABOuhAAVroQAF66EABmuhAA3LIQAOKyEADoshAA7rIQAPSyEAD6shAAALMQAAazEAAMsxAAErMQABizEAAfsxAAJrMQAC2zEAA0sxAAO7MQAEKzEABJsxAAULMQAFezEABesxAAZbMQAGyzEABzsxAAerMQAIGzEACIsxAAj7MQAJazEACdsxAApLMQAKuzEACysxAAubMQAMCzEADHsxAAzrMQANWzEADcsxAA47MQAOqzEADxsxAA+LMQAP+zEAAGtBAADbQQABS0EAAbtBAAIrQQACm0EAAwtBAAN7QQAD60EABFtBAATLQQAFO0EABatBAAYbQQAGi0EABvtBAAdrQQAH20EACEtBAAi7QQAJK0EACZtBAAoLQQAKe0EACutBAAtbQQALy0EADDtBAAyrQQANG0EADYtBAA37QQAOa0EADttBAA9LQQAPu0EAACtRAACbUQABC1EAAXtRAAHrUQACW1EAAstRAAM7UQADq1EABBtRAASLUQAE+1EABWtRAAXbUQAGS1EABrtRAAcrUQAHm1EACAtRAAh7UQAI61EACWtRAAnrUQAKa1EACutRAAtrUQAL61EADGtRAAzrUQANa1EADetRAA5rUQAO61EAD2tRAA/rUQAAa2EAAOthAAFrYQAB62EAAmthAALrYQADa2EAA+thAARrYQAE62EABWthAAXrYQAGa2EAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAFKhEABUoRAAVqEQAFihEABaoRAAXKEQAF6hEABgoRAAYqEQAGShEABnoRAAaqEQAG2hEABwoRAAc6EQAHahEAB5oRAAvLEQAMyxEADcsRAA7LEQAOyxEAD8sRAADLIQAByyEAAsshAAPLIQAEyyEABcshAAbLIQAHyyEACMshAAnLIQAKyyEAC8shAAzLIQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAALKoQACyqEAAsqhAAPKoQAEyqEABcqhAAbKoQAHyqEACMqhAAnKoQAKyqEAC8qhAAzKoQANyqEADsqhAA/KoQAAyrEAAcqxAALKsQADyrEABMqxAAXKsQAGyrEAB8qxAAjKsQAJyrEACcqxAArKsQALyrEADMqxAA3KsQAOyrEAD8qxAADKwQABysEAAsrBAAPKwQAEysEABMrBAAXKwQAGysEAB8rBAAjKwQAJysEACcrBAArKwQALysEADMrBAA3KwQAOysEAD8rBAADK0QABytEAAsrRAAPK0QADytEABMrRAAXK0QAGytEAB8rRAAjK0QAJytEACsrRAAvK0QAMytEADcrRAA7K0QAPytEAAMrhAAHK4QACyuEAA8rhAATK4QAEyuEABcrhAAbK4QAHyuEACMrhAAnK4QAKyuEACsrhAAvK4QAMyuEADcrhAA7K4QAPyuEADsrBAADK8QAByvEAAsrxAAPK8QAEyvEABcrxAAbK8QAHyvEACMrxAAnK8QAKyvEAC8rxAAzK8QANyvEADsrxAA/K8QAAywEAAcsBAALLAQADywEABMsBAAXLAQAGywEAB8sBAAjLAQAJywEACssBAAvLAQAMywEADcsBAA7LAQAPywEAAMsRAAHLEQACyxEAA8sRAATLEQAFyxEABssRAAfLEQAIyxEACcsRAArLEQAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAAvhAACL4QABC+EAAYvhAAIL4QACi+EAAwvhAAOL4QAEC+EABIvhAAUL4QAFi+EABgvhAAaL4QAHC+EAB4vhAAgL4QAIi+EACQvhAAmL4QAKC+EACovhAAsL4QALi+EADAvhAAyL4QANC+EADYvhAA4L4QAOi+EADwvhAA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wRQYAAoAAAAGAAAABQAAAEssGABVLBgAWywYAAwAAAAQAAAADwAAAA8AAAAQAAAADwAAAA8AAAAPAAAADQAAABIAAAANAAAADgAAABIAAADWFRgA4hUYAPIVGAABFhgAEBYYACAWGAAvFhgAPhYYAE0WGABaFhgAbBYYAHkWGACHFhgABQAAAAwAAAALAAAACwAAAAQAAAAPOhgAyHUWANR1FgDfdRYA6nUWAMo5GADQORgA1jkYAMo5GADQORgA1jkYAAYAAAAJAAAABwAAADU4GACwFBgALjgYAAwAAAAQAAAADwAAAA8AAAAQAAAADwAAAA8AAAAPAAAADQAAABIAAAANAAAADgAAABIAAADWFRgA4hUYAPIVGAABFhgAEBYYACAWGAAvFhgAPhYYAE0WGABaFhgAbBYYAHkWGACHFhgABAAAAAQAAAAFAAAAuRQYAL0UGADBFBgACgAAAAYAAAAFAAAASywYAFUsGABbLBgABgYGBgcHBwcICAgJCQoKCgMEBQECBwcLAQYGBgYHBwcHCAgICQkKCgoDBAUBAgcHCwEGBgYGBwcHBwgICAkJCgoKAwQFAQIHBwsBBgYGBgcHBwcICAgJCQoKCgMEBQECBwcLAQYGBgYHBwcHCAgICQkKCgoDBAUBAgcHCwEAAAAGAAAACQAAAAcAAAA1OBgAsBQYAC44GAAEAAAABAAAAAUAAAC5FBgAvRQYAMEUGAAMAAAAEAAAAA8AAAAPAAAAEAAAAA8AAAAPAAAADwAAAA0AAAASAAAADQAAAA4AAAASAAAA1hUYAOIVGADyFRgAARYYABAWGAAgFhgALxYYAD4WGABNFhgAWhYYAGwWGAB5FhgAhxYYAAoAAAAGAAAABQAAAEssGABVLBgAWywYAMo5GADQORgA1jkYANz////4////2P////j////Q////0P///+D////8////3P////z////U////1P///wICAgIBAAADAgAAAAMAAAAFAAAACgAAAAUAAAAHAAAABAAAAAQAAAAJAAAACwAAAGzhFwBv4RcAdOEXAKwxGAB+4RcAheEXAInhFwCN4RcAluEXACAAAAAYAAAAGAAAABgAAAAQAAAAEAAAAAgAAAAIAAAACAAAABAAAAAUAAAAFAAAAAwAAAAMAAAADAAAABQAAAAQAAAAEAAAAAgAAAAIAAAA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", "base64"); var wasmModule = new WebAssembly.Module(bytes); var wasmInstance = new WebAssembly.Instance(wasmModule, imports); wasm = wasmInstance.exports; @@ -481,6 +485,7 @@ module.exports = __toCommonJS(src_exports); var import_wasm = __toESM(require_wasm()); var DEFAULT_OPTIONS = { mode: "strip-only", + deprecatedTsModuleAsError: true, // default transform will only work when mode is "transform" transform: { verbatimModuleSyntax: true, diff --git a/deps/amaro/dist/package.json b/deps/amaro/dist/package.json index 23985726c2e4ba..ab5e2a7771b73d 100644 --- a/deps/amaro/dist/package.json +++ b/deps/amaro/dist/package.json @@ -4,7 +4,7 @@ "강동윤 " ], "description": "wasm module for swc", - "version": "1.10.7", + "version": "1.11.5", "license": "Apache-2.0", "repository": { "type": "git", diff --git a/deps/amaro/dist/strip-loader.js b/deps/amaro/dist/strip-loader.js index 1a55bc5a28882b..c2e068c5509547 100644 --- a/deps/amaro/dist/strip-loader.js +++ b/deps/amaro/dist/strip-loader.js @@ -3,7 +3,7 @@ import { isSwcError, wrapAndReThrowSwcError } from "./errors.js"; import { transformSync } from "./index.js"; export async function load(url, context, nextLoad) { const { format } = context; - if (format.endsWith("-typescript")) { + if (format?.endsWith("-typescript")) { try { const { source } = await nextLoad(url, { ...context, diff --git a/deps/amaro/dist/transform-loader.js b/deps/amaro/dist/transform-loader.js index 970a924c14345c..dd7bf7cbd71c36 100644 --- a/deps/amaro/dist/transform-loader.js +++ b/deps/amaro/dist/transform-loader.js @@ -3,7 +3,7 @@ import { isSwcError, wrapAndReThrowSwcError } from "./errors.js"; import { transformSync } from "./index.js"; export async function load(url, context, nextLoad) { const { format } = context; - if (format.endsWith("-typescript")) { + if (format?.endsWith("-typescript")) { try { const { source } = await nextLoad(url, { ...context, diff --git a/deps/amaro/package.json b/deps/amaro/package.json index 0f770288ed6e52..29a26e691fc4ea 100644 --- a/deps/amaro/package.json +++ b/deps/amaro/package.json @@ -1,6 +1,6 @@ { "name": "amaro", - "version": "0.3.0", + "version": "0.4.1", "description": "Node.js TypeScript wrapper", "license": "MIT", "type": "commonjs", diff --git a/deps/brotli/brotli.gyp b/deps/brotli/brotli.gyp index f82660d82c6cfa..f1f487945e5727 100644 --- a/deps/brotli/brotli.gyp +++ b/deps/brotli/brotli.gyp @@ -59,14 +59,15 @@ 'defines': [ 'OS_MACOSX' ] + }, { + 'libraries': [ + '-lm', + ], }], ], 'direct_dependent_settings': { 'include_dirs': [ 'c/include' ] }, - 'libraries': [ - '-lm', - ], 'sources': [ '<@(brotli_sources)', ] diff --git a/deps/brotli/unofficial.gni b/deps/brotli/unofficial.gni index 5e07e106672a04..91001fa43ea480 100644 --- a/deps/brotli/unofficial.gni +++ b/deps/brotli/unofficial.gni @@ -25,7 +25,7 @@ template("brotli_gn_build") { } else if (target_os == "freebsd") { defines = [ "OS_FREEBSD" ] } - if (!is_win) { + if (is_linux) { libs = [ "m" ] } if (is_clang || !is_win) { diff --git a/deps/cares/CMakeLists.txt b/deps/cares/CMakeLists.txt index 139defd8ffd159..49f98cac2688c1 100644 --- a/deps/cares/CMakeLists.txt +++ b/deps/cares/CMakeLists.txt @@ -12,7 +12,7 @@ INCLUDE (CheckCSourceCompiles) INCLUDE (CheckStructHasMember) INCLUDE (CheckLibraryExists) -PROJECT (c-ares LANGUAGES C VERSION "1.34.4" ) +PROJECT (c-ares LANGUAGES C VERSION "1.34.5" ) # Set this version before release SET (CARES_VERSION "${PROJECT_VERSION}") @@ -30,7 +30,7 @@ INCLUDE (GNUInstallDirs) # include this *AFTER* PROJECT(), otherwise paths are w # For example, a version of 4:0:2 would generate output such as: # libname.so -> libname.so.2 # libname.so.2 -> libname.so.2.2.0 -SET (CARES_LIB_VERSIONINFO "21:3:19") +SET (CARES_LIB_VERSIONINFO "21:4:19") OPTION (CARES_STATIC "Build as a static library" OFF) @@ -274,12 +274,14 @@ ELSEIF (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") ELSEIF (CMAKE_SYSTEM_NAME STREQUAL "QNX") LIST (APPEND SYSFLAGS -D_QNX_SOURCE) ELSEIF (WIN32) - LIST (APPEND SYSFLAGS -DWIN32_LEAN_AND_MEAN -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_WIN32_WINNT=0x0602) + LIST (APPEND SYSFLAGS -DWIN32_LEAN_AND_MEAN -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE) + IF (NOT CMAKE_C_FLAGS MATCHES ".*-D_WIN32_WINNT=.*") + LIST (APPEND SYSFLAGS -D_WIN32_WINNT=0x0602) + ENDIF () ENDIF () ADD_DEFINITIONS(${SYSFLAGS}) - # Tell C-Ares about libraries to depend on IF (HAVE_LIBRESOLV) LIST (APPEND CARES_DEPENDENT_LIBS resolv) @@ -426,6 +428,7 @@ CHECK_SYMBOL_EXISTS (getservbyname_r "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_GETSERV CHECK_SYMBOL_EXISTS (gettimeofday "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_GETTIMEOFDAY) CHECK_SYMBOL_EXISTS (if_indextoname "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_IF_INDEXTONAME) CHECK_SYMBOL_EXISTS (if_nametoindex "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_IF_NAMETOINDEX) +CHECK_SYMBOL_EXISTS (GetBestRoute2 "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_GETBESTROUTE2) CHECK_SYMBOL_EXISTS (ConvertInterfaceIndexToLuid "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_CONVERTINTERFACEINDEXTOLUID) CHECK_SYMBOL_EXISTS (ConvertInterfaceLuidToNameA "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_CONVERTINTERFACELUIDTONAMEA) CHECK_SYMBOL_EXISTS (NotifyIpInterfaceChange "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_NOTIFYIPINTERFACECHANGE) @@ -503,11 +506,7 @@ IF (CARES_THREADS) CARES_EXTRAINCLUDE_IFSET (HAVE_PTHREAD_H pthread.h) CARES_EXTRAINCLUDE_IFSET (HAVE_PTHREAD_NP_H pthread_np.h) CHECK_SYMBOL_EXISTS (pthread_init "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_PTHREAD_INIT) - # Make sure libcares.pc.cmake knows about thread libraries on static builds - # The variable set by FIND_PACKAGE(Threads) has a -l prefix on it, we need - # to strip that first since CARES_DEPENDENT_LIBS doesn't expect that. - STRING (REPLACE "-l" "" CARES_THREAD_LIBRARY "${CMAKE_THREAD_LIBS_INIT}") - LIST (APPEND CARES_DEPENDENT_LIBS ${CARES_THREAD_LIBRARY}) + LIST (APPEND CARES_DEPENDENT_LIBS ${CMAKE_THREAD_LIBS_INIT}) ELSE () MESSAGE (WARNING "Threading support not found, disabling...") SET (CARES_THREADS OFF) @@ -777,7 +776,10 @@ IF (CARES_INSTALL) # pkgconfig support for static builds FOREACH (LIB ${CARES_DEPENDENT_LIBS}) - SET (CARES_PRIVATE_LIBS "${CARES_PRIVATE_LIBS} -l${LIB}") + IF (NOT LIB MATCHES "^-") + SET (LIB "-l${LIB}") + ENDIF () + SET (CARES_PRIVATE_LIBS "${CARES_PRIVATE_LIBS} ${LIB}") ENDFOREACH () CONFIGURE_FILE("libcares.pc.cmake" "libcares.pc" @ONLY) diff --git a/deps/cares/Makefile.in b/deps/cares/Makefile.in index 2342125d136526..bf8645bf260933 100644 --- a/deps/cares/Makefile.in +++ b/deps/cares/Makefile.in @@ -329,6 +329,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GCOV = @GCOV@ GENHTML = @GENHTML@ GMOCK112_CFLAGS = @GMOCK112_CFLAGS@ diff --git a/deps/cares/Makefile.m32 b/deps/cares/Makefile.m32 index 7bd85165978208..427b08771e1535 100644 --- a/deps/cares/Makefile.m32 +++ b/deps/cares/Makefile.m32 @@ -19,7 +19,9 @@ RANLIB = $(CROSSPREFIX)ranlib #RM = rm -f CP = cp -afv -CFLAGS = $(CARES_CFLAG_EXTRAS) -O2 -Wall -I./include -I./src/lib -I./src/lib/include -D_WIN32_WINNT=0x0602 +WIN32_WINNT ?= 0x0602 + +CFLAGS = $(CARES_CFLAG_EXTRAS) -O2 -Wall -I./include -I./src/lib -I./src/lib/include -D_WIN32_WINNT=$(WIN32_WINNT) CFLAGS += -DCARES_STATICLIB LDFLAGS = $(CARES_LDFLAG_EXTRAS) -s LIBS = -lws2_32 -liphlpapi diff --git a/deps/cares/RELEASE-NOTES.md b/deps/cares/RELEASE-NOTES.md index 19a204b3ea96bd..1a8d8d2233351c 100644 --- a/deps/cares/RELEASE-NOTES.md +++ b/deps/cares/RELEASE-NOTES.md @@ -1,25 +1,28 @@ -## c-ares version 1.34.4 - December 14 2024 +## c-ares version 1.34.5 - April 8 2025 -This is a bugfix release. +This is a security release. + +Security: +* CVE-2025-31498. A use-after-free bug has been uncovered in read_answers() that + was introduced in v1.32.3. Please see https://github.com/c-ares/c-ares/security/advisories/GHSA-6hxc-62jh-p29v Changes: -* QNX Port: Port to QNX 8, add primary config reading support, add CI build. [PR #934](https://github.com/c-ares/c-ares/pull/934), [PR #937](https://github.com/c-ares/c-ares/pull/937), [PR #938](https://github.com/c-ares/c-ares/pull/938) +* Restore Windows XP support. [PR #958](https://github.com/c-ares/c-ares/pull/958) Bugfixes: -* Empty TXT records were not being preserved. [PR #922](https://github.com/c-ares/c-ares/pull/922) -* docs: update deprecation notices for `ares_create_query()` and `ares_mkquery()`. [PR #910](https://github.com/c-ares/c-ares/pull/910) -* license: some files weren't properly updated. [PR #920](https://github.com/c-ares/c-ares/pull/920) -* Fix bind local device regression from 1.34.0. [PR #929](https://github.com/c-ares/c-ares/pull/929), [PR #931](https://github.com/c-ares/c-ares/pull/931), [PR #935](https://github.com/c-ares/c-ares/pull/935) -* CMake: set policy version to prevent deprecation warnings. [PR #932](https://github.com/c-ares/c-ares/pull/932) -* CMake: shared and static library names should be the same on unix platforms like autotools uses. [PR #933](https://github.com/c-ares/c-ares/pull/933) -* Update to latest autoconf archive macros for enhanced system compatibility. [PR #936](https://github.com/c-ares/c-ares/pull/936) +* A missing mutex initialization would make busy polling for configuration + changes (platforms other than Windows, Linux, MacOS) eat too much CPU + [PR #974](https://github.com/c-ares/c-ares/pull/974) +* Pkgconfig may be generated wrong for static builds in relation to `-pthread` + [PR #965](https://github.com/c-ares/c-ares/pull/965) +* Localhost resolution can fail if only one address family is in `/etc/hosts` + [PR #947](https://github.com/c-ares/c-ares/pull/947) Thanks go to these friendly people for their efforts and contributions for this release: * Brad House (@bradh352) -* Daniel Stenberg (@bagder) -* Gregor Jasny (@gjasny) -* @marcovsz -* Nikolaos Chatzikonstantinou (@createyourpersonalaccount) -* @vlasovsoft1979 +* Erik Lax (@eriklax) +* Florian Pfisterer (@FlorianPfisterer) +* Kai Pastor (@dg0yt) + diff --git a/deps/cares/aminclude_static.am b/deps/cares/aminclude_static.am index ec7a86a43e6829..57c265006f0a91 100644 --- a/deps/cares/aminclude_static.am +++ b/deps/cares/aminclude_static.am @@ -1,6 +1,6 @@ # aminclude_static.am generated automatically by Autoconf -# from AX_AM_MACROS_STATIC on Sat Dec 14 15:15:44 UTC 2024 +# from AX_AM_MACROS_STATIC on Tue Apr 8 12:12:30 UTC 2025 # Code coverage diff --git a/deps/cares/configure b/deps/cares/configure index d02f117d2f0b64..7a29494d6fa976 100755 --- a/deps/cares/configure +++ b/deps/cares/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for c-ares 1.34.4. +# Generated by GNU Autoconf 2.71 for c-ares 1.34.5. # # Report bugs to . # @@ -621,8 +621,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='c-ares' PACKAGE_TARNAME='c-ares' -PACKAGE_VERSION='1.34.4' -PACKAGE_STRING='c-ares 1.34.4' +PACKAGE_VERSION='1.34.5' +PACKAGE_STRING='c-ares 1.34.5' PACKAGE_BUGREPORT='c-ares mailing list: http://lists.haxx.se/listinfo/c-ares' PACKAGE_URL='' @@ -715,6 +715,7 @@ MANIFEST_TOOL RANLIB ac_ct_AR AR +FILECMD LN_S NM ac_ct_DUMPBIN @@ -1424,7 +1425,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures c-ares 1.34.4 to adapt to many kinds of systems. +\`configure' configures c-ares 1.34.5 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1495,7 +1496,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of c-ares 1.34.4:";; + short | recursive ) echo "Configuration of c-ares 1.34.5:";; esac cat <<\_ACEOF @@ -1637,7 +1638,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -c-ares configure 1.34.4 +c-ares configure 1.34.5 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2261,7 +2262,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by c-ares $as_me 1.34.4, which was +It was created by c-ares $as_me 1.34.5, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3235,7 +3236,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -CARES_VERSION_INFO="21:3:19" +CARES_VERSION_INFO="21:4:19" @@ -4755,11 +4756,11 @@ if test x$ac_prog_cxx_stdcxx = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++11 features" >&5 printf %s "checking for $CXX option to enable C++11 features... " >&6; } -if test ${ac_cv_prog_cxx_11+y} +if test ${ac_cv_prog_cxx_cxx11+y} then : printf %s "(cached) " >&6 else $as_nop - ac_cv_prog_cxx_11=no + ac_cv_prog_cxx_cxx11=no ac_save_CXX=$CXX cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -4801,11 +4802,11 @@ if test x$ac_prog_cxx_stdcxx = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++98 features" >&5 printf %s "checking for $CXX option to enable C++98 features... " >&6; } -if test ${ac_cv_prog_cxx_98+y} +if test ${ac_cv_prog_cxx_cxx98+y} then : printf %s "(cached) " >&6 else $as_nop - ac_cv_prog_cxx_98=no + ac_cv_prog_cxx_cxx98=no ac_save_CXX=$CXX cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -5927,7 +5928,7 @@ fi # Define the identity of the package. PACKAGE='c-ares' - VERSION='1.34.4' + VERSION='1.34.5' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -6296,8 +6297,8 @@ esac -macro_version='2.4.6' -macro_revision='2.4.6' +macro_version='2.4.7' +macro_revision='2.4.7' @@ -6925,13 +6926,13 @@ else mingw*) lt_bad_file=conftest.nm/nofile ;; *) lt_bad_file=/dev/null ;; esac - case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in + case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in *$lt_bad_file* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break 2 ;; *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break 2 @@ -7069,7 +7070,7 @@ esac fi fi - case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols -headers" ;; @@ -7173,7 +7174,7 @@ else $as_nop lt_cv_sys_max_cmd_len=8192; ;; - bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) + bitrig* | darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` @@ -7216,7 +7217,7 @@ else $as_nop sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then - lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + lt_cv_sys_max_cmd_len=`echo $kargmax | $SED 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi @@ -7421,6 +7422,114 @@ esac +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}file", so it can be a program name with args. +set dummy ${ac_tool_prefix}file; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_FILECMD+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$FILECMD"; then + ac_cv_prog_FILECMD="$FILECMD" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_FILECMD="${ac_tool_prefix}file" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +FILECMD=$ac_cv_prog_FILECMD +if test -n "$FILECMD"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $FILECMD" >&5 +printf "%s\n" "$FILECMD" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_FILECMD"; then + ac_ct_FILECMD=$FILECMD + # Extract the first word of "file", so it can be a program name with args. +set dummy file; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_FILECMD+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_FILECMD"; then + ac_cv_prog_ac_ct_FILECMD="$ac_ct_FILECMD" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_FILECMD="file" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_FILECMD=$ac_cv_prog_ac_ct_FILECMD +if test -n "$ac_ct_FILECMD"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_FILECMD" >&5 +printf "%s\n" "$ac_ct_FILECMD" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_FILECMD" = x; then + FILECMD=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + FILECMD=$ac_ct_FILECMD + fi +else + FILECMD="$ac_cv_prog_FILECMD" +fi + + + + + + + if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 @@ -7561,7 +7670,7 @@ beos*) bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' - lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_cmd='$FILECMD -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; @@ -7595,14 +7704,14 @@ darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; -freebsd* | dragonfly*) +freebsd* | dragonfly* | midnightbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_cmd=$FILECMD lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac @@ -7616,7 +7725,7 @@ haiku*) ;; hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_cmd=$FILECMD case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' @@ -7663,7 +7772,7 @@ netbsd* | netbsdelf*-gnu) newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_cmd=$FILECMD lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; @@ -8033,13 +8142,29 @@ esac fi : ${AR=ar} -: ${AR_FLAGS=cr} +# Use ARFLAGS variable as AR's operation code to sync the variable naming with +# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have +# higher priority because thats what people were doing historically (setting +# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS +# variable obsoleted/removed. + +test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr} +lt_ar_flags=$AR_FLAGS + + + + + + +# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override +# by AR_FLAGS because that was never working and AR_FLAGS is about to die. + @@ -8456,7 +8581,7 @@ esac if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Gets list of data symbols to import. - lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" + lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'" # Adjust the below global symbol transforms to fixup imported variables. lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" @@ -8474,20 +8599,20 @@ fi # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. -lt_cv_sys_global_symbol_to_cdecl="sed -n"\ +lt_cv_sys_global_symbol_to_cdecl="$SED -n"\ $lt_cdecl_hook\ " -e 's/^T .* \(.*\)$/extern int \1();/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ +lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\ $lt_c_name_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" # Transform an extracted symbol line into symbol name with lib prefix and # symbol address. -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\ $lt_c_name_lib_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ @@ -8511,7 +8636,7 @@ for ac_symprfx in "" "_"; do if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function, # D for any global variable and I for any imported variable. - # Also find C++ and __fastcall symbols from MSVC++, + # Also find C++ and __fastcall symbols from MSVC++ or ICC, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ @@ -8529,9 +8654,9 @@ for ac_symprfx in "" "_"; do " s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi - lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no @@ -8731,7 +8856,7 @@ case $with_sysroot in #( fi ;; #( /*) - lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"` ;; #( no|'') ;; #( @@ -8856,7 +8981,7 @@ ia64-*-hpux*) ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE=32 ;; @@ -8877,7 +9002,7 @@ ia64-*-hpux*) printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test yes = "$lt_cv_prog_gnu_ld"; then - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; @@ -8889,7 +9014,7 @@ ia64-*-hpux*) ;; esac else - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; @@ -8915,7 +9040,7 @@ mips64*-*linux*) printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then emul=elf - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *32-bit*) emul="${emul}32" ;; @@ -8923,7 +9048,7 @@ mips64*-*linux*) emul="${emul}64" ;; esac - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *MSB*) emul="${emul}btsmip" ;; @@ -8931,7 +9056,7 @@ mips64*-*linux*) emul="${emul}ltsmip" ;; esac - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *N32*) emul="${emul}n32" ;; @@ -8955,14 +9080,14 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - case `/usr/bin/file conftest.o` in + case `$FILECMD conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) - case `/usr/bin/file conftest.o` in + case `$FILECMD conftest.o` in *x86-64*) LD="${LD-ld} -m elf32_x86_64" ;; @@ -9070,7 +9195,7 @@ printf "%s\n" "$lt_cv_cc_needs_belf" >&6; } ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - case `/usr/bin/file conftest.o` in + case `$FILECMD conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) @@ -9853,8 +9978,8 @@ int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR cr libconftest.a conftest.o" >&5 - $AR cr libconftest.a conftest.o 2>&5 + echo "$AR $AR_FLAGS libconftest.a conftest.o" >&5 + $AR $AR_FLAGS libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF @@ -9881,17 +10006,12 @@ printf "%s\n" "$lt_cv_ld_force_load" >&6; } _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - darwin*) # darwin 5.x on - # if running on 10.5 or later, the deployment target defaults - # to the OS version, if on x86, and 10.4, the deployment - # target defaults to 10.4. Don't you love it? - case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in - 10.0,*86*-darwin8*|10.0,*-darwin[912]*) - _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; - 10.[012][,.]*) - _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - 10.*|11.*) - _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + darwin*) + case $MACOSX_DEPLOYMENT_TARGET,$host in + 10.[012],*|,*powerpc*-darwin[5-8]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + *) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; esac @@ -10588,8 +10708,8 @@ esac ofile=libtool can_build_shared=yes -# All known linkers require a '.a' archive for static linking (except MSVC, -# which needs '.lib'). +# All known linkers require a '.a' archive for static linking (except MSVC and +# ICC, which need '.lib'). libext=a with_gnu_ld=$lt_cv_prog_gnu_ld @@ -11107,7 +11227,7 @@ lt_prog_compiler_static= lt_prog_compiler_static='-qstaticlink' ;; *) - case `$CC -V 2>&1 | sed 5q` in + case `$CC -V 2>&1 | $SED 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' @@ -11530,15 +11650,15 @@ printf %s "checking whether the $compiler linker ($LD) supports shared libraries case $host_os in cygwin* | mingw* | pw32* | cegcc*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time + # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. + # Microsoft Visual C++ or Intel C++ Compiler. if test yes != "$GCC"; then with_gnu_ld=no fi ;; interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) + # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC) with_gnu_ld=yes ;; openbsd* | bitrig*) @@ -11593,7 +11713,7 @@ printf %s "checking whether the $compiler linker ($LD) supports shared libraries whole_archive_flag_spec= fi supports_anon_versioning=no - case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in + case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... @@ -11705,6 +11825,7 @@ _LT_EOF emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes + file_list_spec='@' ;; interix[3-9]*) @@ -11719,7 +11840,7 @@ _LT_EOF # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) @@ -11762,7 +11883,7 @@ _LT_EOF compiler_needs_object=yes ;; esac - case `$CC -V 2>&1 | sed 5q` in + case `$CC -V 2>&1 | $SED 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object=yes @@ -11774,13 +11895,14 @@ _LT_EOF if test yes = "$supports_anon_versioning"; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi case $cc_basename in tcc*) + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' export_dynamic_flag_spec='-rdynamic' ;; xlf* | bgf* | bgxlf* | mpixlf*) @@ -11790,7 +11912,7 @@ _LT_EOF archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test yes = "$supports_anon_versioning"; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi @@ -11922,7 +12044,7 @@ _LT_EOF if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else - export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no @@ -12193,12 +12315,12 @@ fi cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. + # Microsoft Visual C++ or Intel C++ Compiler. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in - cl*) - # Native MSVC + cl* | icl*) + # Native MSVC or ICC hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported always_export_symbols=yes @@ -12239,7 +12361,7 @@ fi fi' ;; *) - # Assume MSVC wrapper + # Assume MSVC and ICC wrapper hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. @@ -12280,8 +12402,8 @@ fi output_verbose_link_cmd=func_echo_all archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" - archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" - module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + archive_expsym_cmds="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + module_expsym_cmds="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" else ld_shlibs=no @@ -12315,7 +12437,7 @@ fi ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) + freebsd* | dragonfly* | midnightbsd*) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes @@ -12496,6 +12618,7 @@ printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; } # Fabrice Bellard et al's Tiny C Compiler ld_shlibs=yes archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' ;; esac ;; @@ -12567,6 +12690,7 @@ printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; } emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes + file_list_spec='@' ;; osf3*) @@ -13259,7 +13383,7 @@ cygwin* | mingw* | pw32* | cegcc*) case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; @@ -13269,14 +13393,14 @@ cygwin* | mingw* | pw32* | cegcc*) ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; esac dynamic_linker='Win32 ld.exe' ;; - *,cl*) - # Native MSVC + *,cl* | *,icl*) + # Native MSVC or ICC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' @@ -13295,7 +13419,7 @@ cygwin* | mingw* | pw32* | cegcc*) done IFS=$lt_save_ifs # Convert to MSYS style. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form @@ -13332,7 +13456,7 @@ cygwin* | mingw* | pw32* | cegcc*) ;; *) - # Assume MSVC wrapper + # Assume MSVC and ICC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; @@ -13365,7 +13489,7 @@ dgux*) shlibpath_var=LD_LIBRARY_PATH ;; -freebsd* | dragonfly*) +freebsd* | dragonfly* | midnightbsd*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then @@ -14530,30 +14654,41 @@ striplib= old_striplib= { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 printf %s "checking whether stripping libraries is possible... " >&6; } -if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } +if test -z "$STRIP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP"; then + if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + else + case $host_os in + darwin*) + # FIXME - insert some real tests, host_os isn't really good enough striplib="$STRIP -x" old_striplib="$STRIP -S" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 + ;; + freebsd*) + if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } - fi - ;; - *) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 + fi + ;; + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } - ;; - esac + ;; + esac + fi fi @@ -15323,8 +15458,8 @@ fi cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in - ,cl* | no,cl*) - # Native MSVC + ,cl* | no,cl* | ,icl* | no,icl*) + # Native MSVC or ICC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_CXX=' ' @@ -15415,11 +15550,11 @@ fi output_verbose_link_cmd=func_echo_all archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" - archive_expsym_cmds_CXX="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" - module_expsym_cmds_CXX="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + archive_expsym_cmds_CXX="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + module_expsym_cmds_CXX="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" if test yes != "$lt_cv_apple_cc_single_mod"; then archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" - archive_expsym_cmds_CXX="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" + archive_expsym_cmds_CXX="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" fi else @@ -15454,6 +15589,7 @@ fi emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds_CXX='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes_CXX=yes + file_list_spec_CXX='@' ;; dgux*) @@ -15484,7 +15620,7 @@ fi archive_cmds_need_lc_CXX=no ;; - freebsd* | dragonfly*) + freebsd* | dragonfly* | midnightbsd*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes @@ -15621,7 +15757,7 @@ fi # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - archive_expsym_cmds_CXX='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds_CXX='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in @@ -15761,13 +15897,13 @@ fi archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' if test yes = "$supports_anon_versioning"; then archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi ;; *) - case `$CC -V 2>&1 | sed 5q` in + case `$CC -V 2>&1 | $SED 5q` in *Sun\ C*) # Sun C++ 5.9 no_undefined_flag_CXX=' -zdefs' @@ -16424,7 +16560,7 @@ lt_prog_compiler_static_CXX= ;; esac ;; - freebsd* | dragonfly*) + freebsd* | dragonfly* | midnightbsd*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) @@ -16507,7 +16643,7 @@ lt_prog_compiler_static_CXX= lt_prog_compiler_static_CXX='-qstaticlink' ;; *) - case `$CC -V 2>&1 | sed 5q` in + case `$CC -V 2>&1 | $SED 5q` in *Sun\ C*) # Sun C++ 5.9 lt_prog_compiler_pic_CXX='-KPIC' @@ -16894,7 +17030,7 @@ printf %s "checking whether the $compiler linker ($LD) supports shared libraries if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else - export_symbols_cmds_CXX='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + export_symbols_cmds_CXX='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi ;; pw32*) @@ -16902,7 +17038,7 @@ printf %s "checking whether the $compiler linker ($LD) supports shared libraries ;; cygwin* | mingw* | cegcc*) case $cc_basename in - cl*) + cl* | icl*) exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) @@ -17253,7 +17389,7 @@ cygwin* | mingw* | pw32* | cegcc*) case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; mingw* | cegcc*) @@ -17262,14 +17398,14 @@ cygwin* | mingw* | pw32* | cegcc*) ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; esac dynamic_linker='Win32 ld.exe' ;; - *,cl*) - # Native MSVC + *,cl* | *,icl*) + # Native MSVC or ICC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' @@ -17288,7 +17424,7 @@ cygwin* | mingw* | pw32* | cegcc*) done IFS=$lt_save_ifs # Convert to MSYS style. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form @@ -17325,7 +17461,7 @@ cygwin* | mingw* | pw32* | cegcc*) ;; *) - # Assume MSVC wrapper + # Assume MSVC and ICC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; @@ -17357,7 +17493,7 @@ dgux*) shlibpath_var=LD_LIBRARY_PATH ;; -freebsd* | dragonfly*) +freebsd* | dragonfly* | midnightbsd*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then @@ -22706,6 +22842,14 @@ then : printf "%s\n" "#define HAVE_EPOLL 1" >>confdefs.h +fi +ac_fn_check_decl "$LINENO" "GetBestRoute2" "ac_cv_have_decl_GetBestRoute2" "$cares_all_includes +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_GetBestRoute2" = xyes +then : + +printf "%s\n" "#define HAVE_GETBESTROUTE2 1" >>confdefs.h + fi ac_fn_check_decl "$LINENO" "ConvertInterfaceIndexToLuid" "ac_cv_have_decl_ConvertInterfaceIndexToLuid" "$cares_all_includes " "$ac_c_undeclared_builtin_options" "CFLAGS" @@ -26258,7 +26402,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by c-ares $as_me 1.34.4, which was +This file was extended by c-ares $as_me 1.34.5, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -26326,7 +26470,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -c-ares config.status 1.34.4 +c-ares config.status 1.34.5 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" @@ -26492,12 +26636,14 @@ lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_q lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +FILECMD='`$ECHO "$FILECMD" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +lt_ar_flags='`$ECHO "$lt_ar_flags" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' @@ -26675,13 +26821,13 @@ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ +FILECMD \ deplibs_check_method \ file_magic_cmd \ file_magic_glob \ want_nocaseglob \ sharedlib_from_linklib_cmd \ AR \ -AR_FLAGS \ archiver_list_spec \ STRIP \ RANLIB \ @@ -27684,6 +27830,9 @@ to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd +# A file(cmd) program that detects file types. +FILECMD=$lt_FILECMD + # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method @@ -27702,8 +27851,11 @@ sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd # The archiver. AR=$lt_AR +# Flags to create an archive (by configure). +lt_ar_flags=$lt_ar_flags + # Flags to create an archive. -AR_FLAGS=$lt_AR_FLAGS +AR_FLAGS=\${ARFLAGS-"\$lt_ar_flags"} # How to feed a file listing to the archiver. archiver_list_spec=$lt_archiver_list_spec @@ -28093,7 +28245,7 @@ ltmain=$ac_aux_dir/ltmain.sh # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? - sed '$q' "$ltmain" >> "$cfgfile" \ + $SED '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || diff --git a/deps/cares/configure.ac b/deps/cares/configure.ac index 9dacf1fb2e4a40..72c06e7773ef27 100644 --- a/deps/cares/configure.ac +++ b/deps/cares/configure.ac @@ -2,10 +2,10 @@ dnl Copyright (C) The c-ares project and its contributors dnl SPDX-License-Identifier: MIT AC_PREREQ([2.69]) -AC_INIT([c-ares], [1.34.4], +AC_INIT([c-ares], [1.34.5], [c-ares mailing list: http://lists.haxx.se/listinfo/c-ares]) -CARES_VERSION_INFO="21:3:19" +CARES_VERSION_INFO="21:4:19" dnl This flag accepts an argument of the form current[:revision[:age]]. So, dnl passing -version-info 3:12:1 sets current to 3, revision to 12, and age to dnl 1. @@ -594,6 +594,7 @@ AC_CHECK_DECL(pipe, [AC_DEFINE([HAVE_PIPE], 1, [Define t AC_CHECK_DECL(pipe2, [AC_DEFINE([HAVE_PIPE2], 1, [Define to 1 if you have `pipe2`] )], [], $cares_all_includes) AC_CHECK_DECL(kqueue, [AC_DEFINE([HAVE_KQUEUE], 1, [Define to 1 if you have `kqueue`] )], [], $cares_all_includes) AC_CHECK_DECL(epoll_create1, [AC_DEFINE([HAVE_EPOLL], 1, [Define to 1 if you have `epoll_{create1,ctl,wait}`])], [], $cares_all_includes) +AC_CHECK_DECL(GetBestRoute2, [AC_DEFINE([HAVE_GETBESTROUTE2], 1, [Define to 1 if you have `GetBestRoute2`] )], [], $cares_all_includes) AC_CHECK_DECL(ConvertInterfaceIndexToLuid, [AC_DEFINE([HAVE_CONVERTINTERFACEINDEXTOLUID], 1, [Define to 1 if you have `ConvertInterfaceIndexToLuid`])], [], $cares_all_includes) AC_CHECK_DECL(ConvertInterfaceLuidToNameA, [AC_DEFINE([HAVE_CONVERTINTERFACELUIDTONAMEA], 1, [Define to 1 if you have `ConvertInterfaceLuidToNameA`])], [], $cares_all_includes) AC_CHECK_DECL(NotifyIpInterfaceChange, [AC_DEFINE([HAVE_NOTIFYIPINTERFACECHANGE], 1, [Define to 1 if you have `NotifyIpInterfaceChange`] )], [], $cares_all_includes) diff --git a/deps/cares/docs/Makefile.in b/deps/cares/docs/Makefile.in index 0d1873c9662c92..f3e2b35746d3bf 100644 --- a/deps/cares/docs/Makefile.in +++ b/deps/cares/docs/Makefile.in @@ -223,6 +223,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GCOV = @GCOV@ GENHTML = @GENHTML@ GMOCK112_CFLAGS = @GMOCK112_CFLAGS@ diff --git a/deps/cares/include/Makefile.in b/deps/cares/include/Makefile.in index 7dc40eb08fab9c..8c6782a15ecdd6 100644 --- a/deps/cares/include/Makefile.in +++ b/deps/cares/include/Makefile.in @@ -234,6 +234,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GCOV = @GCOV@ GENHTML = @GENHTML@ GMOCK112_CFLAGS = @GMOCK112_CFLAGS@ diff --git a/deps/cares/include/ares_dns_record.h b/deps/cares/include/ares_dns_record.h index 2896eab24b3408..cec9f47f63d8f5 100644 --- a/deps/cares/include/ares_dns_record.h +++ b/deps/cares/include/ares_dns_record.h @@ -1104,7 +1104,7 @@ CARES_EXTERN ares_status_t ares_dns_write(const ares_dns_record_t *dnsrec, * (such as the ttl decrement capability). * * \param[in] dnsrec Pointer to initialized and filled DNS record object. - * \return duplicted DNS record object, or NULL on out of memory. + * \return duplicated DNS record object, or NULL on out of memory. */ CARES_EXTERN ares_dns_record_t * ares_dns_record_duplicate(const ares_dns_record_t *dnsrec); diff --git a/deps/cares/include/ares_version.h b/deps/cares/include/ares_version.h index 782046bd79d844..7da82f2a15b560 100644 --- a/deps/cares/include/ares_version.h +++ b/deps/cares/include/ares_version.h @@ -32,8 +32,8 @@ #define ARES_VERSION_MAJOR 1 #define ARES_VERSION_MINOR 34 -#define ARES_VERSION_PATCH 4 -#define ARES_VERSION_STR "1.34.4" +#define ARES_VERSION_PATCH 5 +#define ARES_VERSION_STR "1.34.5" /* NOTE: We cannot make the version string a C preprocessor stringify operation * due to assumptions made by integrators that aren't properly using diff --git a/deps/cares/m4/libtool.m4 b/deps/cares/m4/libtool.m4 index c4c02946dece79..e7b68334557bd6 100755 --- a/deps/cares/m4/libtool.m4 +++ b/deps/cares/m4/libtool.m4 @@ -1,6 +1,7 @@ # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # -# Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc. +# Copyright (C) 1996-2001, 2003-2019, 2021-2022 Free Software +# Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives @@ -31,7 +32,7 @@ m4_define([_LT_COPYING], [dnl # along with this program. If not, see . ]) -# serial 58 LT_INIT +# serial 59 LT_INIT # LT_PREREQ(VERSION) @@ -181,6 +182,7 @@ m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl +m4_require([_LT_DECL_FILECMD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl @@ -219,8 +221,8 @@ esac ofile=libtool can_build_shared=yes -# All known linkers require a '.a' archive for static linking (except MSVC, -# which needs '.lib'). +# All known linkers require a '.a' archive for static linking (except MSVC and +# ICC, which need '.lib'). libext=a with_gnu_ld=$lt_cv_prog_gnu_ld @@ -777,7 +779,7 @@ _LT_EOF # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? - sed '$q' "$ltmain" >> "$cfgfile" \ + $SED '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || @@ -1041,8 +1043,8 @@ int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD - echo "$AR cr libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD - $AR cr libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$AR $AR_FLAGS libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR $AR_FLAGS libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF @@ -1066,17 +1068,12 @@ _LT_EOF _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - darwin*) # darwin 5.x on - # if running on 10.5 or later, the deployment target defaults - # to the OS version, if on x86, and 10.4, the deployment - # target defaults to 10.4. Don't you love it? - case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in - 10.0,*86*-darwin8*|10.0,*-darwin[[912]]*) - _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; - 10.[[012]][[,.]]*) - _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - 10.*|11.*) - _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + darwin*) + case $MACOSX_DEPLOYMENT_TARGET,$host in + 10.[[012]],*|,*powerpc*-darwin[[5-8]]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + *) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; esac @@ -1125,12 +1122,12 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES], output_verbose_link_cmd=func_echo_all _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" - _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" - _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + _LT_TAGVAR(module_expsym_cmds, $1)="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" m4_if([$1], [CXX], [ if test yes != "$lt_cv_apple_cc_single_mod"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" - _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" fi ],[]) else @@ -1244,7 +1241,8 @@ _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) # _LT_WITH_SYSROOT # ---------------- AC_DEFUN([_LT_WITH_SYSROOT], -[AC_MSG_CHECKING([for sysroot]) +[m4_require([_LT_DECL_SED])dnl +AC_MSG_CHECKING([for sysroot]) AC_ARG_WITH([sysroot], [AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], [Search for dependent libraries within DIR (or the compiler's sysroot @@ -1261,7 +1259,7 @@ case $with_sysroot in #( fi ;; #( /*) - lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"` ;; #( no|'') ;; #( @@ -1291,7 +1289,7 @@ ia64-*-hpux*) # options accordingly. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE=32 ;; @@ -1308,7 +1306,7 @@ ia64-*-hpux*) echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test yes = "$lt_cv_prog_gnu_ld"; then - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; @@ -1320,7 +1318,7 @@ ia64-*-hpux*) ;; esac else - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; @@ -1342,7 +1340,7 @@ mips64*-*linux*) echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then emul=elf - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *32-bit*) emul="${emul}32" ;; @@ -1350,7 +1348,7 @@ mips64*-*linux*) emul="${emul}64" ;; esac - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *MSB*) emul="${emul}btsmip" ;; @@ -1358,7 +1356,7 @@ mips64*-*linux*) emul="${emul}ltsmip" ;; esac - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *N32*) emul="${emul}n32" ;; @@ -1378,14 +1376,14 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # not appear in the list. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.o` in + case `$FILECMD conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) - case `/usr/bin/file conftest.o` in + case `$FILECMD conftest.o` in *x86-64*) LD="${LD-ld} -m elf32_x86_64" ;; @@ -1453,7 +1451,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # options accordingly. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.o` in + case `$FILECMD conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) @@ -1492,9 +1490,22 @@ need_locks=$enable_libtool_lock m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} -: ${AR_FLAGS=cr} _LT_DECL([], [AR], [1], [The archiver]) -_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) + +# Use ARFLAGS variable as AR's operation code to sync the variable naming with +# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have +# higher priority because thats what people were doing historically (setting +# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS +# variable obsoleted/removed. + +test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr} +lt_ar_flags=$AR_FLAGS +_LT_DECL([], [lt_ar_flags], [0], [Flags to create an archive (by configure)]) + +# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override +# by AR_FLAGS because that was never working and AR_FLAGS is about to die. +_LT_DECL([], [AR_FLAGS], [\@S|@{ARFLAGS-"\@S|@lt_ar_flags"}], + [Flags to create an archive]) AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], [lt_cv_ar_at_file=no @@ -1713,7 +1724,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl lt_cv_sys_max_cmd_len=8192; ;; - bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) + bitrig* | darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` @@ -1756,7 +1767,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then - lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + lt_cv_sys_max_cmd_len=`echo $kargmax | $SED 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi @@ -2206,26 +2217,35 @@ m4_defun([_LT_CMD_STRIPLIB], striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) -if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - AC_MSG_RESULT([yes]) +if test -z "$STRIP"; then + AC_MSG_RESULT([no]) else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP"; then + if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) + else + case $host_os in + darwin*) + # FIXME - insert some real tests, host_os isn't really good enough striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) - else + ;; + freebsd*) + if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ;; + *) AC_MSG_RESULT([no]) - fi - ;; - *) - AC_MSG_RESULT([no]) - ;; - esac + ;; + esac + fi fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) @@ -2548,7 +2568,7 @@ cygwin* | mingw* | pw32* | cegcc*) case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; @@ -2558,14 +2578,14 @@ m4_if([$1], [],[ ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' ;; esac dynamic_linker='Win32 ld.exe' ;; - *,cl*) - # Native MSVC + *,cl* | *,icl*) + # Native MSVC or ICC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' @@ -2584,7 +2604,7 @@ m4_if([$1], [],[ done IFS=$lt_save_ifs # Convert to MSYS style. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form @@ -2621,7 +2641,7 @@ m4_if([$1], [],[ ;; *) - # Assume MSVC wrapper + # Assume MSVC and ICC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; @@ -2654,7 +2674,7 @@ dgux*) shlibpath_var=LD_LIBRARY_PATH ;; -freebsd* | dragonfly*) +freebsd* | dragonfly* | midnightbsd*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then @@ -3465,7 +3485,7 @@ beos*) bsdi[[45]]*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' - lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_cmd='$FILECMD -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; @@ -3499,14 +3519,14 @@ darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; -freebsd* | dragonfly*) +freebsd* | dragonfly* | midnightbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_cmd=$FILECMD lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac @@ -3520,7 +3540,7 @@ haiku*) ;; hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_cmd=$FILECMD case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' @@ -3567,7 +3587,7 @@ netbsd* | netbsdelf*-gnu) newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_cmd=$FILECMD lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; @@ -3694,13 +3714,13 @@ else mingw*) lt_bad_file=conftest.nm/nofile ;; *) lt_bad_file=/dev/null ;; esac - case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in + case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in *$lt_bad_file* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break 2 ;; *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break 2 @@ -3726,7 +3746,7 @@ else # Let the user override the test. else AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) - case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols -headers" ;; @@ -3966,7 +3986,7 @@ esac if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Gets list of data symbols to import. - lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" + lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'" # Adjust the below global symbol transforms to fixup imported variables. lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" @@ -3984,20 +4004,20 @@ fi # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. -lt_cv_sys_global_symbol_to_cdecl="sed -n"\ +lt_cv_sys_global_symbol_to_cdecl="$SED -n"\ $lt_cdecl_hook\ " -e 's/^T .* \(.*\)$/extern int \1();/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ +lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\ $lt_c_name_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" # Transform an extracted symbol line into symbol name with lib prefix and # symbol address. -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\ $lt_c_name_lib_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ @@ -4021,7 +4041,7 @@ for ac_symprfx in "" "_"; do if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function, # D for any global variable and I for any imported variable. - # Also find C++ and __fastcall symbols from MSVC++, + # Also find C++ and __fastcall symbols from MSVC++ or ICC, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ @@ -4039,9 +4059,9 @@ for ac_symprfx in "" "_"; do " s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi - lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no @@ -4329,7 +4349,7 @@ m4_if([$1], [CXX], [ ;; esac ;; - freebsd* | dragonfly*) + freebsd* | dragonfly* | midnightbsd*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) @@ -4412,7 +4432,7 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) - case `$CC -V 2>&1 | sed 5q` in + case `$CC -V 2>&1 | $SED 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' @@ -4754,7 +4774,7 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) - case `$CC -V 2>&1 | sed 5q` in + case `$CC -V 2>&1 | $SED 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' @@ -4937,7 +4957,7 @@ m4_if([$1], [CXX], [ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else - _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi ;; pw32*) @@ -4945,7 +4965,7 @@ m4_if([$1], [CXX], [ ;; cygwin* | mingw* | cegcc*) case $cc_basename in - cl*) + cl* | icl*) _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) @@ -5005,15 +5025,15 @@ dnl Note also adjust exclude_expsyms for C++ above. case $host_os in cygwin* | mingw* | pw32* | cegcc*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time + # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. + # Microsoft Visual C++ or Intel C++ Compiler. if test yes != "$GCC"; then with_gnu_ld=no fi ;; interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) + # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC) with_gnu_ld=yes ;; openbsd* | bitrig*) @@ -5068,7 +5088,7 @@ dnl Note also adjust exclude_expsyms for C++ above. _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no - case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in + case `$LD -v | $SED -e 's/([[^)]]\+)\s\+//' 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... @@ -5180,6 +5200,7 @@ _LT_EOF emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' ;; interix[[3-9]]*) @@ -5194,7 +5215,7 @@ _LT_EOF # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) @@ -5237,7 +5258,7 @@ _LT_EOF _LT_TAGVAR(compiler_needs_object, $1)=yes ;; esac - case `$CC -V 2>&1 | sed 5q` in + case `$CC -V 2>&1 | $SED 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes @@ -5249,13 +5270,14 @@ _LT_EOF if test yes = "$supports_anon_versioning"; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi case $cc_basename in tcc*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic' ;; xlf* | bgf* | bgxlf* | mpixlf*) @@ -5265,7 +5287,7 @@ _LT_EOF _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test yes = "$supports_anon_versioning"; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi @@ -5397,7 +5419,7 @@ _LT_EOF if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else - _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no @@ -5580,12 +5602,12 @@ _LT_EOF cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. + # Microsoft Visual C++ or Intel C++ Compiler. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in - cl*) - # Native MSVC + cl* | icl*) + # Native MSVC or ICC _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes @@ -5626,7 +5648,7 @@ _LT_EOF fi' ;; *) - # Assume MSVC wrapper + # Assume MSVC and ICC wrapper _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. @@ -5674,7 +5696,7 @@ _LT_EOF ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) + freebsd* | dragonfly* | midnightbsd*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes @@ -5815,6 +5837,7 @@ _LT_EOF # Fabrice Bellard et al's Tiny C Compiler _LT_TAGVAR(ld_shlibs, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' ;; esac ;; @@ -5886,6 +5909,7 @@ _LT_EOF emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' ;; osf3*) @@ -6656,8 +6680,8 @@ if test yes != "$_lt_caught_CXX_error"; then cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in - ,cl* | no,cl*) - # Native MSVC + ,cl* | no,cl* | ,icl* | no,icl*) + # Native MSVC or ICC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' @@ -6755,6 +6779,7 @@ if test yes != "$_lt_caught_CXX_error"; then emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' ;; dgux*) @@ -6785,7 +6810,7 @@ if test yes != "$_lt_caught_CXX_error"; then _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; - freebsd* | dragonfly*) + freebsd* | dragonfly* | midnightbsd*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes @@ -6922,7 +6947,7 @@ if test yes != "$_lt_caught_CXX_error"; then # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in @@ -7062,13 +7087,13 @@ if test yes != "$_lt_caught_CXX_error"; then _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' if test yes = "$supports_anon_versioning"; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi ;; *) - case `$CC -V 2>&1 | sed 5q` in + case `$CC -V 2>&1 | $SED 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' @@ -8214,6 +8239,14 @@ _LT_DECL([], [DLLTOOL], [1], [DLL creation program]) AC_SUBST([DLLTOOL]) ]) +# _LT_DECL_FILECMD +# ---------------- +# Check for a file(cmd) program that can be used to detect file type and magic +m4_defun([_LT_DECL_FILECMD], +[AC_CHECK_TOOL([FILECMD], [file], [:]) +_LT_DECL([], [FILECMD], [1], [A file(cmd) program that detects file types]) +])# _LD_DECL_FILECMD + # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates diff --git a/deps/cares/m4/ltoptions.m4 b/deps/cares/m4/ltoptions.m4 index 94b082976667c0..b0b5e9c2126062 100755 --- a/deps/cares/m4/ltoptions.m4 +++ b/deps/cares/m4/ltoptions.m4 @@ -1,7 +1,7 @@ # Helper functions for option handling. -*- Autoconf -*- # -# Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software -# Foundation, Inc. +# Copyright (C) 2004-2005, 2007-2009, 2011-2019, 2021-2022 Free +# Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives diff --git a/deps/cares/m4/ltsugar.m4 b/deps/cares/m4/ltsugar.m4 index 48bc9344a4d661..902508bd93aec6 100755 --- a/deps/cares/m4/ltsugar.m4 +++ b/deps/cares/m4/ltsugar.m4 @@ -1,6 +1,6 @@ # ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # -# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software +# Copyright (C) 2004-2005, 2007-2008, 2011-2019, 2021-2022 Free Software # Foundation, Inc. # Written by Gary V. Vaughan, 2004 # diff --git a/deps/cares/m4/ltversion.m4 b/deps/cares/m4/ltversion.m4 index fa04b52a3bf868..b155d0aceca376 100755 --- a/deps/cares/m4/ltversion.m4 +++ b/deps/cares/m4/ltversion.m4 @@ -1,6 +1,7 @@ # ltversion.m4 -- version numbers -*- Autoconf -*- # -# Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. +# Copyright (C) 2004, 2011-2019, 2021-2022 Free Software Foundation, +# Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives @@ -9,15 +10,15 @@ # @configure_input@ -# serial 4179 ltversion.m4 +# serial 4245 ltversion.m4 # This file is part of GNU Libtool -m4_define([LT_PACKAGE_VERSION], [2.4.6]) -m4_define([LT_PACKAGE_REVISION], [2.4.6]) +m4_define([LT_PACKAGE_VERSION], [2.4.7]) +m4_define([LT_PACKAGE_REVISION], [2.4.7]) AC_DEFUN([LTVERSION_VERSION], -[macro_version='2.4.6' -macro_revision='2.4.6' +[macro_version='2.4.7' +macro_revision='2.4.7' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) diff --git a/deps/cares/m4/lt~obsolete.m4 b/deps/cares/m4/lt~obsolete.m4 index c6b26f88f6c3c1..0f7a8759da8d46 100755 --- a/deps/cares/m4/lt~obsolete.m4 +++ b/deps/cares/m4/lt~obsolete.m4 @@ -1,7 +1,7 @@ # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # -# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software -# Foundation, Inc. +# Copyright (C) 2004-2005, 2007, 2009, 2011-2019, 2021-2022 Free +# Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives diff --git a/deps/cares/src/Makefile.in b/deps/cares/src/Makefile.in index 1f286880247aa1..575d391a3fe4b7 100644 --- a/deps/cares/src/Makefile.in +++ b/deps/cares/src/Makefile.in @@ -245,6 +245,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GCOV = @GCOV@ GENHTML = @GENHTML@ GMOCK112_CFLAGS = @GMOCK112_CFLAGS@ diff --git a/deps/cares/src/lib/Makefile.in b/deps/cares/src/lib/Makefile.in index a45fc10b544755..942dae01ccfdff 100644 --- a/deps/cares/src/lib/Makefile.in +++ b/deps/cares/src/lib/Makefile.in @@ -15,7 +15,7 @@ @SET_MAKE@ # aminclude_static.am generated automatically by Autoconf -# from AX_AM_MACROS_STATIC on Sat Dec 14 15:15:44 UTC 2024 +# from AX_AM_MACROS_STATIC on Tue Apr 8 12:12:30 UTC 2025 # Copyright (C) The c-ares project and its contributors # SPDX-License-Identifier: MIT @@ -490,6 +490,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GCOV = @GCOV@ GENHTML = @GENHTML@ GMOCK112_CFLAGS = @GMOCK112_CFLAGS@ diff --git a/deps/cares/src/lib/ares_addrinfo2hostent.c b/deps/cares/src/lib/ares_addrinfo2hostent.c index 2bbc791157b01e..239ca5bce7daec 100644 --- a/deps/cares/src/lib/ares_addrinfo2hostent.c +++ b/deps/cares/src/lib/ares_addrinfo2hostent.c @@ -47,119 +47,154 @@ # include #endif +static size_t hostent_nalias(const struct hostent *host) +{ + size_t i; + for (i=0; host->h_aliases != NULL && host->h_aliases[i] != NULL; i++) + ; + + return i; +} + +static size_t ai_nalias(const struct ares_addrinfo *ai) +{ + const struct ares_addrinfo_cname *cname; + size_t i = 0; + + for (cname = ai->cnames; cname != NULL; cname=cname->next) { + i++; + } + + return i; +} + +static size_t hostent_naddr(const struct hostent *host) +{ + size_t i; + for (i=0; host->h_addr_list != NULL && host->h_addr_list[i] != NULL; i++) + ; + + return i; +} + +static size_t ai_naddr(const struct ares_addrinfo *ai, int af) +{ + const struct ares_addrinfo_node *node; + size_t i = 0; + + for (node = ai->nodes; node != NULL; node=node->ai_next) { + if (af != AF_UNSPEC && af != node->ai_family) + continue; + i++; + } + + return i; +} ares_status_t ares_addrinfo2hostent(const struct ares_addrinfo *ai, int family, struct hostent **host) { struct ares_addrinfo_node *next; - struct ares_addrinfo_cname *next_cname; char **aliases = NULL; - char *addrs = NULL; + char **addrs = NULL; size_t naliases = 0; size_t naddrs = 0; - size_t alias = 0; size_t i; + size_t ealiases = 0; + size_t eaddrs = 0; if (ai == NULL || host == NULL) { return ARES_EBADQUERY; /* LCOV_EXCL_LINE: DefensiveCoding */ } - /* Use the first node of the response as the family, since hostent can only + /* Use either the host set in the passed in hosts to be filled in, or the + * first node of the response as the family, since hostent can only * represent one family. We assume getaddrinfo() returned a sorted list if * the user requested AF_UNSPEC. */ - if (family == AF_UNSPEC && ai->nodes) { - family = ai->nodes->ai_family; + if (family == AF_UNSPEC) { + if (*host != NULL && (*host)->h_addrtype != AF_UNSPEC) { + family = (*host)->h_addrtype; + } else if (ai->nodes != NULL) { + family = ai->nodes->ai_family; + } } if (family != AF_INET && family != AF_INET6) { return ARES_EBADQUERY; /* LCOV_EXCL_LINE: DefensiveCoding */ } - *host = ares_malloc(sizeof(**host)); - if (!(*host)) { - goto enomem; /* LCOV_EXCL_LINE: OutOfMemory */ + if (*host == NULL) { + *host = ares_malloc_zero(sizeof(**host)); + if (!(*host)) { + goto enomem; /* LCOV_EXCL_LINE: OutOfMemory */ + } } - memset(*host, 0, sizeof(**host)); - next = ai->nodes; - while (next) { - if (next->ai_family == family) { - ++naddrs; - } - next = next->ai_next; + (*host)->h_addrtype = (HOSTENT_ADDRTYPE_TYPE)family; + if (family == AF_INET) { + (*host)->h_length = sizeof(struct in_addr); + } else if (family == AF_INET6) { + (*host)->h_length = sizeof(struct ares_in6_addr); } - next_cname = ai->cnames; - while (next_cname) { - if (next_cname->alias) { - ++naliases; + if ((*host)->h_name == NULL) { + if (ai->cnames) { + (*host)->h_name = ares_strdup(ai->cnames->name); + if ((*host)->h_name == NULL && ai->cnames->name) { + goto enomem; /* LCOV_EXCL_LINE: OutOfMemory */ + } + } else { + (*host)->h_name = ares_strdup(ai->name); + if ((*host)->h_name == NULL && ai->name) { + goto enomem; /* LCOV_EXCL_LINE: OutOfMemory */ + } } - next_cname = next_cname->next; } - aliases = ares_malloc((naliases + 1) * sizeof(char *)); + naliases = ai_nalias(ai); + ealiases = hostent_nalias(*host); + aliases = ares_realloc_zero((*host)->h_aliases, + ealiases * sizeof(char *), + (naliases + ealiases + 1) * sizeof(char *)); if (!aliases) { goto enomem; /* LCOV_EXCL_LINE: OutOfMemory */ } (*host)->h_aliases = aliases; - memset(aliases, 0, (naliases + 1) * sizeof(char *)); if (naliases) { - for (next_cname = ai->cnames; next_cname != NULL; - next_cname = next_cname->next) { - if (next_cname->alias == NULL) { + const struct ares_addrinfo_cname *cname; + i = ealiases; + for (cname = ai->cnames; cname != NULL; cname = cname->next) { + if (cname->alias == NULL) { continue; } - aliases[alias] = ares_strdup(next_cname->alias); - if (!aliases[alias]) { + (*host)->h_aliases[i] = ares_strdup(cname->alias); + if ((*host)->h_aliases[i] == NULL) { goto enomem; /* LCOV_EXCL_LINE: OutOfMemory */ } - alias++; + i++; } } - - (*host)->h_addr_list = ares_malloc((naddrs + 1) * sizeof(char *)); - if (!(*host)->h_addr_list) { + naddrs = ai_naddr(ai, family); + eaddrs = hostent_naddr(*host); + addrs = ares_realloc_zero((*host)->h_addr_list, eaddrs * sizeof(char *), + (naddrs + eaddrs + 1) * sizeof(char *)); + if (addrs == NULL) { goto enomem; /* LCOV_EXCL_LINE: OutOfMemory */ } - - memset((*host)->h_addr_list, 0, (naddrs + 1) * sizeof(char *)); - - if (ai->cnames) { - (*host)->h_name = ares_strdup(ai->cnames->name); - if ((*host)->h_name == NULL && ai->cnames->name) { - goto enomem; /* LCOV_EXCL_LINE: OutOfMemory */ - } - } else { - (*host)->h_name = ares_strdup(ai->name); - if ((*host)->h_name == NULL && ai->name) { - goto enomem; /* LCOV_EXCL_LINE: OutOfMemory */ - } - } - - (*host)->h_addrtype = (HOSTENT_ADDRTYPE_TYPE)family; - - if (family == AF_INET) { - (*host)->h_length = sizeof(struct in_addr); - } - - if (family == AF_INET6) { - (*host)->h_length = sizeof(struct ares_in6_addr); - } + (*host)->h_addr_list = addrs; if (naddrs) { - addrs = ares_malloc(naddrs * (size_t)(*host)->h_length); - if (!addrs) { - goto enomem; /* LCOV_EXCL_LINE: OutOfMemory */ - } - - i = 0; + i = eaddrs; for (next = ai->nodes; next != NULL; next = next->ai_next) { if (next->ai_family != family) { continue; } - (*host)->h_addr_list[i] = addrs + (i * (size_t)(*host)->h_length); + (*host)->h_addr_list[i] = ares_malloc_zero((size_t)(*host)->h_length); + if ((*host)->h_addr_list[i] == NULL) { + goto enomem; /* LCOV_EXCL_LINE: OutOfMemory */ + } if (family == AF_INET6) { memcpy((*host)->h_addr_list[i], &(CARES_INADDR_CAST(const struct sockaddr_in6 *, next->ai_addr) @@ -172,15 +207,11 @@ ares_status_t ares_addrinfo2hostent(const struct ares_addrinfo *ai, int family, ->sin_addr), (size_t)(*host)->h_length); } - ++i; - } - - if (i == 0) { - ares_free(addrs); + i++; } } - if (naddrs == 0 && naliases == 0) { + if (naddrs + eaddrs == 0 && naliases + ealiases == 0) { ares_free_hostent(*host); *host = NULL; return ARES_ENODATA; diff --git a/deps/cares/src/lib/ares_addrinfo_localhost.c b/deps/cares/src/lib/ares_addrinfo_localhost.c index 6f4f2a373b3feb..2abb0c48a6f601 100644 --- a/deps/cares/src/lib/ares_addrinfo_localhost.c +++ b/deps/cares/src/lib/ares_addrinfo_localhost.c @@ -49,6 +49,19 @@ # endif #endif +static ares_bool_t ares_ai_has_family(int aftype, + const struct ares_addrinfo_node *nodes) +{ + const struct ares_addrinfo_node *node; + + for (node = nodes; node != NULL; node = node->ai_next) { + if (node->ai_family == aftype) + return ARES_TRUE; + } + + return ARES_FALSE; +} + ares_status_t ares_append_ai_node(int aftype, unsigned short port, unsigned int ttl, const void *adata, struct ares_addrinfo_node **nodes) @@ -107,7 +120,8 @@ static ares_status_t { ares_status_t status = ARES_SUCCESS; - if (aftype == AF_UNSPEC || aftype == AF_INET6) { + if ((aftype == AF_UNSPEC || aftype == AF_INET6) && + !ares_ai_has_family(AF_INET6, *nodes)) { struct ares_in6_addr addr6; ares_inet_pton(AF_INET6, "::1", &addr6); status = ares_append_ai_node(AF_INET6, port, 0, &addr6, nodes); @@ -116,7 +130,8 @@ static ares_status_t } } - if (aftype == AF_UNSPEC || aftype == AF_INET) { + if ((aftype == AF_UNSPEC || aftype == AF_INET) && + !ares_ai_has_family(AF_INET, *nodes)) { struct in_addr addr4; ares_inet_pton(AF_INET, "127.0.0.1", &addr4); status = ares_append_ai_node(AF_INET, port, 0, &addr4, nodes); @@ -150,11 +165,13 @@ static ares_status_t continue; } - if (table->Table[i].Address.si_family == AF_INET) { + if (table->Table[i].Address.si_family == AF_INET && + !ares_ai_has_family(AF_INET, *nodes)) { status = ares_append_ai_node(table->Table[i].Address.si_family, port, 0, &table->Table[i].Address.Ipv4.sin_addr, nodes); - } else if (table->Table[i].Address.si_family == AF_INET6) { + } else if (table->Table[i].Address.si_family == AF_INET6 && + !ares_ai_has_family(AF_INET6, *nodes)) { status = ares_append_ai_node(table->Table[i].Address.si_family, port, 0, &table->Table[i].Address.Ipv6.sin6_addr, nodes); @@ -195,8 +212,7 @@ ares_status_t ares_addrinfo_localhost(const char *name, unsigned short port, const struct ares_addrinfo_hints *hints, struct ares_addrinfo *ai) { - struct ares_addrinfo_node *nodes = NULL; - ares_status_t status; + ares_status_t status; /* Validate family */ switch (hints->ai_family) { @@ -208,26 +224,22 @@ ares_status_t ares_addrinfo_localhost(const char *name, unsigned short port, return ARES_EBADFAMILY; /* LCOV_EXCL_LINE: DefensiveCoding */ } + if (ai->name != NULL) { + ares_free(ai->name); + } ai->name = ares_strdup(name); - if (!ai->name) { - goto enomem; /* LCOV_EXCL_LINE: OutOfMemory */ + if (ai->name == NULL) { + status = ARES_ENOMEM; + goto done; /* LCOV_EXCL_LINE: OutOfMemory */ } - status = ares_system_loopback_addrs(hints->ai_family, port, &nodes); - - if (status == ARES_ENOTFOUND) { - status = ares_default_loopback_addrs(hints->ai_family, port, &nodes); + status = ares_system_loopback_addrs(hints->ai_family, port, &ai->nodes); + if (status != ARES_SUCCESS && status != ARES_ENOTFOUND) { + goto done; } - ares_addrinfo_cat_nodes(&ai->nodes, nodes); + status = ares_default_loopback_addrs(hints->ai_family, port, &ai->nodes); +done: return status; - -/* LCOV_EXCL_START: OutOfMemory */ -enomem: - ares_freeaddrinfo_nodes(nodes); - ares_free(ai->name); - ai->name = NULL; - return ARES_ENOMEM; - /* LCOV_EXCL_STOP */ } diff --git a/deps/cares/src/lib/ares_close_sockets.c b/deps/cares/src/lib/ares_close_sockets.c index fd3bf3c4b1e09e..347f43e6fcd88d 100644 --- a/deps/cares/src/lib/ares_close_sockets.c +++ b/deps/cares/src/lib/ares_close_sockets.c @@ -37,7 +37,7 @@ static void ares_requeue_queries(ares_conn_t *conn, ares_tvnow(&now); while ((query = ares_llist_first_val(conn->queries_to_conn)) != NULL) { - ares_requeue_query(query, &now, requeue_status, ARES_TRUE, NULL); + ares_requeue_query(query, &now, requeue_status, ARES_TRUE, NULL, NULL); } } diff --git a/deps/cares/src/lib/ares_config.h.cmake b/deps/cares/src/lib/ares_config.h.cmake index 51744fe143868c..cff18187212b0b 100644 --- a/deps/cares/src/lib/ares_config.h.cmake +++ b/deps/cares/src/lib/ares_config.h.cmake @@ -145,6 +145,9 @@ /* Define to 1 if you have the `if_nametoindex' function. */ #cmakedefine HAVE_IF_NAMETOINDEX 1 +/* Define to 1 if you have the `GetBestRoute2' function. */ +#cmakedefine HAVE_GETBESTROUTE2 1 + /* Define to 1 if you have the `ConvertInterfaceIndexToLuid' function. */ #cmakedefine HAVE_CONVERTINTERFACEINDEXTOLUID 1 diff --git a/deps/cares/src/lib/ares_config.h.in b/deps/cares/src/lib/ares_config.h.in index a62e17089358aa..0ed9e32be76f55 100644 --- a/deps/cares/src/lib/ares_config.h.in +++ b/deps/cares/src/lib/ares_config.h.in @@ -105,6 +105,9 @@ /* fcntl() with O_NONBLOCK support */ #undef HAVE_FCNTL_O_NONBLOCK +/* Define to 1 if you have `GetBestRoute2` */ +#undef HAVE_GETBESTROUTE2 + /* Define to 1 if you have `getenv` */ #undef HAVE_GETENV diff --git a/deps/cares/src/lib/ares_cookie.c b/deps/cares/src/lib/ares_cookie.c index f31c74e748d974..509e12050e0c00 100644 --- a/deps/cares/src/lib/ares_cookie.c +++ b/deps/cares/src/lib/ares_cookie.c @@ -115,7 +115,7 @@ * - If `cookie.unsupported_ts` evaluates less than * `COOKIE_UNSUPPORTED_TIMEOUT` * - Ensure there is no EDNS cookie opt (10) set (shouldn't be unless - * requestor had put this themselves), then **skip any remaining + * requester had put this themselves), then **skip any remaining * processing** as we don't want to try to send cookies. * - Otherwise: * - clear all cookie settings, set `cookie.state = INITIAL`. @@ -369,7 +369,8 @@ ares_status_t ares_cookie_apply(ares_dns_record_t *dnsrec, ares_conn_t *conn, ares_status_t ares_cookie_validate(ares_query_t *query, const ares_dns_record_t *dnsresp, - ares_conn_t *conn, const ares_timeval_t *now) + ares_conn_t *conn, const ares_timeval_t *now, + ares_array_t **requeue) { ares_server_t *server = conn->server; ares_cookie_t *cookie = &server->cookie; @@ -427,7 +428,8 @@ ares_status_t ares_cookie_validate(ares_query_t *query, /* Resend the request, hopefully it will work the next time as we should * have recorded a server cookie */ ares_requeue_query(query, now, ARES_SUCCESS, - ARES_FALSE /* Don't increment try count */, NULL); + ARES_FALSE /* Don't increment try count */, NULL, + requeue); /* Parent needs to drop this response */ return ARES_EBADRESP; diff --git a/deps/cares/src/lib/ares_free_hostent.c b/deps/cares/src/lib/ares_free_hostent.c index bf2037238b559e..dfcbdf4910b665 100644 --- a/deps/cares/src/lib/ares_free_hostent.c +++ b/deps/cares/src/lib/ares_free_hostent.c @@ -44,9 +44,10 @@ void ares_free_hostent(struct hostent *host) } ares_free(host->h_aliases); if (host->h_addr_list) { - ares_free( - host->h_addr_list[0]); /* no matter if there is one or many entries, - there is only one malloc for all of them */ + size_t i; + for (i=0; host->h_addr_list[i] != NULL; i++) { + ares_free(host->h_addr_list[i]); + } ares_free(host->h_addr_list); } ares_free(host); diff --git a/deps/cares/src/lib/ares_getaddrinfo.c b/deps/cares/src/lib/ares_getaddrinfo.c index 32791dc37dcd6f..eabd17fcbac3b3 100644 --- a/deps/cares/src/lib/ares_getaddrinfo.c +++ b/deps/cares/src/lib/ares_getaddrinfo.c @@ -418,9 +418,13 @@ static ares_status_t file_lookup(struct host_query *hquery) * SHOULD recognize localhost names as special and SHOULD always return the * IP loopback address for address queries". * We will also ignore ALL errors when trying to resolve localhost, such - * as permissions errors reading /etc/hosts or a malformed /etc/hosts */ - if (status != ARES_SUCCESS && status != ARES_ENOMEM && - ares_is_localhost(hquery->name)) { + * as permissions errors reading /etc/hosts or a malformed /etc/hosts. + * + * Also, just because the query itself returned success from /etc/hosts + * lookup doesn't mean it returned everything it needed to for all requested + * address families. As long as we're not on a critical out of memory + * condition pass it through to fill in any other address classes. */ + if (status != ARES_ENOMEM && ares_is_localhost(hquery->name)) { return ares_addrinfo_localhost(hquery->name, hquery->port, &hquery->hints, hquery->ai); } diff --git a/deps/cares/src/lib/ares_gethostbyaddr.c b/deps/cares/src/lib/ares_gethostbyaddr.c index a7acf3c45c9e6d..69c509ab11b977 100644 --- a/deps/cares/src/lib/ares_gethostbyaddr.c +++ b/deps/cares/src/lib/ares_gethostbyaddr.c @@ -120,7 +120,7 @@ static void next_lookup(struct addr_query *aquery) { const char *p; ares_status_t status; - struct hostent *host; + struct hostent *host = NULL; char *name; for (p = aquery->remaining_lookups; *p; p++) { diff --git a/deps/cares/src/lib/ares_gethostbyname.c b/deps/cares/src/lib/ares_gethostbyname.c index 56de729526af34..d451b4685110ec 100644 --- a/deps/cares/src/lib/ares_gethostbyname.c +++ b/deps/cares/src/lib/ares_gethostbyname.c @@ -287,6 +287,8 @@ static ares_status_t ares_gethostbyname_file_int(ares_channel_t *channel, return ARES_ENOTFOUND; } + *host = NULL; + /* Per RFC 7686, reject queries for ".onion" domain names with NXDOMAIN. */ if (ares_is_onion_domain(name)) { return ARES_ENOTFOUND; @@ -307,9 +309,13 @@ static ares_status_t ares_gethostbyname_file_int(ares_channel_t *channel, * SHOULD recognize localhost names as special and SHOULD always return the * IP loopback address for address queries". * We will also ignore ALL errors when trying to resolve localhost, such - * as permissions errors reading /etc/hosts or a malformed /etc/hosts */ - if (status != ARES_SUCCESS && status != ARES_ENOMEM && - ares_is_localhost(name)) { + * as permissions errors reading /etc/hosts or a malformed /etc/hosts. + * + * Also, just because the query itself returned success from /etc/hosts + * lookup doesn't mean it returned everything it needed to for all requested + * address families. As long as we're not on a critical out of memory + * condition pass it through to fill in any other address classes. */ + if (status != ARES_ENOMEM && ares_is_localhost(name)) { return ares_hostent_localhost(name, family, host); } diff --git a/deps/cares/src/lib/ares_hosts_file.c b/deps/cares/src/lib/ares_hosts_file.c index 0439b8e1d476b9..d18863b8f66864 100644 --- a/deps/cares/src/lib/ares_hosts_file.c +++ b/deps/cares/src/lib/ares_hosts_file.c @@ -845,7 +845,7 @@ ares_status_t ares_hosts_entry_to_addrinfo(const ares_hosts_entry_t *entry, ares_bool_t want_cnames, struct ares_addrinfo *ai) { - ares_status_t status; + ares_status_t status = ARES_ENOTFOUND; struct ares_addrinfo_cname *cnames = NULL; struct ares_addrinfo_node *ainodes = NULL; ares_llist_node_t *node; @@ -860,6 +860,7 @@ ares_status_t ares_hosts_entry_to_addrinfo(const ares_hosts_entry_t *entry, } if (name != NULL) { + ares_free(ai->name); ai->name = ares_strdup(name); if (ai->name == NULL) { status = ARES_ENOMEM; /* LCOV_EXCL_LINE: OutOfMemory */ @@ -888,6 +889,11 @@ ares_status_t ares_hosts_entry_to_addrinfo(const ares_hosts_entry_t *entry, } } + /* Might be ARES_ENOTFOUND here if no ips matched requested address family */ + if (status != ARES_SUCCESS) { + goto done; + } + if (want_cnames) { status = ares_hosts_ai_append_cnames(entry, &cnames); if (status != ARES_SUCCESS) { diff --git a/deps/cares/src/lib/ares_ipv6.h b/deps/cares/src/lib/ares_ipv6.h index 5da341b010603f..d2007cc29ec4a0 100644 --- a/deps/cares/src/lib/ares_ipv6.h +++ b/deps/cares/src/lib/ares_ipv6.h @@ -90,6 +90,16 @@ struct addrinfo { # define NS_INT16SZ 2 #endif +/* Windows XP Compatibility with later MSVC/Mingw versions */ +#if defined(_WIN32) +# if !defined(IF_MAX_STRING_SIZE) +# define IF_MAX_STRING_SIZE 256 /* =256 in */ +# endif +# if !defined(NDIS_IF_MAX_STRING_SIZE) +# define NDIS_IF_MAX_STRING_SIZE IF_MAX_STRING_SIZE /* =256 in */ +# endif +#endif + #ifndef IF_NAMESIZE # ifdef IFNAMSIZ # define IF_NAMESIZE IFNAMSIZ diff --git a/deps/cares/src/lib/ares_metrics.c b/deps/cares/src/lib/ares_metrics.c index 13e34decc06ae6..deb3b7febcc48a 100644 --- a/deps/cares/src/lib/ares_metrics.c +++ b/deps/cares/src/lib/ares_metrics.c @@ -197,7 +197,7 @@ void ares_metrics_record(const ares_query_t *query, ares_server_t *server, } if (query_ms > server->metrics[i].latency_max_ms) { - server->metrics[i].latency_min_ms = query_ms; + server->metrics[i].latency_max_ms = query_ms; } server->metrics[i].total_count++; diff --git a/deps/cares/src/lib/ares_private.h b/deps/cares/src/lib/ares_private.h index e6d44e8b8640f9..3d7cea3d3a03c4 100644 --- a/deps/cares/src/lib/ares_private.h +++ b/deps/cares/src/lib/ares_private.h @@ -321,7 +321,8 @@ ares_status_t ares_send_query(ares_server_t *requested_server /* Optional */, ares_status_t ares_requeue_query(ares_query_t *query, const ares_timeval_t *now, ares_status_t status, ares_bool_t inc_try_count, - const ares_dns_record_t *dnsrec); + const ares_dns_record_t *dnsrec, + ares_array_t **requeue); /*! Count the number of labels (dots+1) in a domain */ size_t ares_name_label_cnt(const char *name); @@ -455,8 +456,10 @@ ares_status_t ares_parse_ptr_reply_dnsrec(const ares_dns_record_t *dnsrec, const void *addr, int addrlen, int family, struct hostent **host); +/* host address must be valid or NULL as will create or append */ ares_status_t ares_addrinfo2hostent(const struct ares_addrinfo *ai, int family, struct hostent **host); + ares_status_t ares_addrinfo2addrttl(const struct ares_addrinfo *ai, int family, size_t req_naddrttls, struct ares_addrttl *addrttls, @@ -610,7 +613,8 @@ ares_status_t ares_cookie_apply(ares_dns_record_t *dnsrec, ares_conn_t *conn, ares_status_t ares_cookie_validate(ares_query_t *query, const ares_dns_record_t *dnsresp, ares_conn_t *conn, - const ares_timeval_t *now); + const ares_timeval_t *now, + ares_array_t **requeue); ares_status_t ares_channel_threading_init(ares_channel_t *channel); void ares_channel_threading_destroy(ares_channel_t *channel); diff --git a/deps/cares/src/lib/ares_process.c b/deps/cares/src/lib/ares_process.c index 3d186ea9d58b31..c5834fa100e82c 100644 --- a/deps/cares/src/lib/ares_process.c +++ b/deps/cares/src/lib/ares_process.c @@ -56,7 +56,8 @@ static ares_status_t process_timeouts(ares_channel_t *channel, static ares_status_t process_answer(ares_channel_t *channel, const unsigned char *abuf, size_t alen, ares_conn_t *conn, - const ares_timeval_t *now); + const ares_timeval_t *now, + ares_array_t **requeue); static void handle_conn_error(ares_conn_t *conn, ares_bool_t critical_failure, ares_status_t failure_status); static ares_bool_t same_questions(const ares_query_t *query, @@ -510,10 +511,38 @@ static ares_status_t read_conn_packets(ares_conn_t *conn) return ARES_SUCCESS; } +/* Simple data structure to store a query that needs to be requeued with + * optional server */ +typedef struct { + unsigned short qid; + ares_server_t *server; /* optional */ +} ares_requeue_t; + +static ares_status_t ares_append_requeue(ares_array_t **requeue, + ares_query_t *query, + ares_server_t *server) +{ + ares_requeue_t entry; + + if (*requeue == NULL) { + *requeue = ares_array_create(sizeof(ares_requeue_t), NULL); + if (*requeue == NULL) { + return ARES_ENOMEM; + } + } + + ares_query_remove_from_conn(query); + + entry.qid = query->qid; + entry.server = server; + return ares_array_insertdata_last(*requeue, &entry); +} + static ares_status_t read_answers(ares_conn_t *conn, const ares_timeval_t *now) { ares_status_t status; ares_channel_t *channel = conn->server->channel; + ares_array_t *requeue = NULL; /* Process all queued answers */ while (1) { @@ -550,15 +579,43 @@ static ares_status_t read_answers(ares_conn_t *conn, const ares_timeval_t *now) data_len -= 2; /* We finished reading this answer; process it */ - status = process_answer(channel, data, data_len, conn, now); + status = process_answer(channel, data, data_len, conn, now, &requeue); if (status != ARES_SUCCESS) { handle_conn_error(conn, ARES_TRUE, status); - return status; + goto cleanup; } /* Since we processed the answer, clear the tag so space can be reclaimed */ ares_buf_tag_clear(conn->in_buf); } + +cleanup: + + /* Flush requeue */ + while (ares_array_len(requeue) > 0) { + ares_query_t *query; + ares_requeue_t entry; + ares_status_t internal_status; + + internal_status = ares_array_claim_at(&entry, sizeof(entry), requeue, 0); + if (internal_status != ARES_SUCCESS) { + break; + } + + /* Query disappeared */ + query = ares_htable_szvp_get_direct(channel->queries_by_qid, entry.qid); + if (query == NULL) { + continue; + } + + internal_status = ares_send_query(entry.server, query, now); + /* We only care about ARES_ENOMEM */ + if (internal_status == ARES_ENOMEM) { + status = ARES_ENOMEM; + } + } + ares_array_destroy(requeue); + return status; } @@ -611,7 +668,8 @@ static ares_status_t process_timeouts(ares_channel_t *channel, conn = query->conn; server_increment_failures(conn->server, query->using_tcp); - status = ares_requeue_query(query, now, ARES_ETIMEOUT, ARES_TRUE, NULL); + status = ares_requeue_query(query, now, ARES_ETIMEOUT, ARES_TRUE, NULL, + NULL); if (status == ARES_ENOMEM) { goto done; } @@ -701,7 +759,8 @@ static ares_bool_t issue_might_be_edns(const ares_dns_record_t *req, static ares_status_t process_answer(ares_channel_t *channel, const unsigned char *abuf, size_t alen, ares_conn_t *conn, - const ares_timeval_t *now) + const ares_timeval_t *now, + ares_array_t **requeue) { ares_query_t *query; /* Cache these as once ares_send_query() gets called, it may end up @@ -745,7 +804,8 @@ static ares_status_t process_answer(ares_channel_t *channel, /* Validate DNS cookie in response. This function may need to requeue the * query. */ - if (ares_cookie_validate(query, rdnsrec, conn, now) != ARES_SUCCESS) { + if (ares_cookie_validate(query, rdnsrec, conn, now, requeue) + != ARES_SUCCESS) { /* Drop response and return */ status = ARES_SUCCESS; goto cleanup; @@ -768,9 +828,8 @@ static ares_status_t process_answer(ares_channel_t *channel, goto cleanup; } - /* Send to same server */ - ares_send_query(server, query, now); - status = ARES_SUCCESS; + /* Requeue to same server */ + status = ares_append_requeue(requeue, query, server); goto cleanup; } @@ -782,8 +841,9 @@ static ares_status_t process_answer(ares_channel_t *channel, !(conn->flags & ARES_CONN_FLAG_TCP) && !(channel->flags & ARES_FLAG_IGNTC)) { query->using_tcp = ARES_TRUE; - ares_send_query(NULL, query, now); - status = ARES_SUCCESS; /* Switched to TCP is ok */ + status = ares_append_requeue(requeue, query, NULL); + /* Status will reflect success except on memory error, which is good since + * requeuing to TCP is ok */ goto cleanup; } @@ -809,11 +869,13 @@ static ares_status_t process_answer(ares_channel_t *channel, } server_increment_failures(server, query->using_tcp); - ares_requeue_query(query, now, status, ARES_TRUE, rdnsrec); + status = ares_requeue_query(query, now, status, ARES_TRUE, rdnsrec, requeue); - /* Should any of these cause a connection termination? - * Maybe SERVER_FAILURE? */ - status = ARES_SUCCESS; + if (status != ARES_ENOMEM) { + /* Should any of these cause a connection termination? + * Maybe SERVER_FAILURE? */ + status = ARES_SUCCESS; + } goto cleanup; } } @@ -854,10 +916,14 @@ static void handle_conn_error(ares_conn_t *conn, ares_bool_t critical_failure, ares_close_connection(conn, failure_status); } +/* Requeue query will normally call ares_send_query() but in some circumstances + * this needs to be delayed, so if requeue is not NULL, it will add the query + * to the queue instead */ ares_status_t ares_requeue_query(ares_query_t *query, const ares_timeval_t *now, ares_status_t status, ares_bool_t inc_try_count, - const ares_dns_record_t *dnsrec) + const ares_dns_record_t *dnsrec, + ares_array_t **requeue) { ares_channel_t *channel = query->channel; size_t max_tries = ares_slist_len(channel->servers) * channel->tries; @@ -873,6 +939,9 @@ ares_status_t ares_requeue_query(ares_query_t *query, const ares_timeval_t *now, } if (query->try_count < max_tries && !query->no_retries) { + if (requeue != NULL) { + return ares_append_requeue(requeue, query, NULL); + } return ares_send_query(NULL, query, now); } @@ -1187,7 +1256,7 @@ ares_status_t ares_send_query(ares_server_t *requested_server, case ARES_ECONNREFUSED: case ARES_EBADFAMILY: server_increment_failures(server, query->using_tcp); - return ares_requeue_query(query, now, status, ARES_TRUE, NULL); + return ares_requeue_query(query, now, status, ARES_TRUE, NULL, NULL); /* Anything else is not retryable, likely ENOMEM */ default: @@ -1213,7 +1282,7 @@ ares_status_t ares_send_query(ares_server_t *requested_server, case ARES_ECONNREFUSED: case ARES_EBADFAMILY: handle_conn_error(conn, ARES_TRUE, status); - status = ares_requeue_query(query, now, status, ARES_TRUE, NULL); + status = ares_requeue_query(query, now, status, ARES_TRUE, NULL, NULL); if (status == ARES_ETIMEOUT) { status = ARES_ECONNREFUSED; } @@ -1221,7 +1290,7 @@ ares_status_t ares_send_query(ares_server_t *requested_server, default: server_increment_failures(server, query->using_tcp); - status = ares_requeue_query(query, now, status, ARES_TRUE, NULL); + status = ares_requeue_query(query, now, status, ARES_TRUE, NULL, NULL); return status; } diff --git a/deps/cares/src/lib/ares_sysconfig_win.c b/deps/cares/src/lib/ares_sysconfig_win.c index f6e07f92e47380..01109a89ba404a 100644 --- a/deps/cares/src/lib/ares_sysconfig_win.c +++ b/deps/cares/src/lib/ares_sysconfig_win.c @@ -176,6 +176,7 @@ static int compareAddresses(const void *arg1, const void *arg2) return 0; } +#if defined(HAVE_GETBESTROUTE2) && !defined(__WATCOMC__) /* There can be multiple routes to "the Internet". And there can be different * DNS servers associated with each of the interfaces that offer those routes. * We have to assume that any DNS server can serve any request. But, some DNS @@ -213,18 +214,6 @@ static ULONG getBestRouteMetric(IF_LUID * const luid, /* Can't be const :( */ const SOCKADDR_INET * const dest, const ULONG interfaceMetric) { - /* On this interface, get the best route to that destination. */ -# if defined(__WATCOMC__) - /* OpenWatcom's builtin Windows SDK does not have a definition for - * MIB_IPFORWARD_ROW2, and also does not allow the usage of SOCKADDR_INET - * as a variable. Let's work around this by returning the worst possible - * metric, but only when using the OpenWatcom compiler. - * It may be worth investigating using a different version of the Windows - * SDK with OpenWatcom in the future, though this may be fixed in OpenWatcom - * 2.0. - */ - return (ULONG)-1; -# else MIB_IPFORWARD_ROW2 row; SOCKADDR_INET ignored; if (GetBestRoute2(/* The interface to use. The index is ignored since we are @@ -257,8 +246,8 @@ static ULONG getBestRouteMetric(IF_LUID * const luid, /* Can't be const :( */ * which describes the combination as a "sum". */ return row.Metric + interfaceMetric; -# endif /* __WATCOMC__ */ } +#endif /* * get_DNS_Windows() @@ -379,9 +368,21 @@ static ares_bool_t get_DNS_Windows(char **outptr) addressesSize = newSize; } +# if defined(HAVE_GETBESTROUTE2) && !defined(__WATCOMC__) + /* OpenWatcom's builtin Windows SDK does not have a definition for + * MIB_IPFORWARD_ROW2, and also does not allow the usage of SOCKADDR_INET + * as a variable. Let's work around this by returning the worst possible + * metric, but only when using the OpenWatcom compiler. + * It may be worth investigating using a different version of the Windows + * SDK with OpenWatcom in the future, though this may be fixed in OpenWatcom + * 2.0. + */ addresses[addressesIndex].metric = getBestRouteMetric( &ipaaEntry->Luid, (SOCKADDR_INET *)((void *)(namesrvr.sa)), ipaaEntry->Ipv4Metric); +# else + addresses[addressesIndex].metric = (ULONG)-1; +# endif /* Record insertion index to make qsort stable */ addresses[addressesIndex].orig_idx = addressesIndex; @@ -423,9 +424,13 @@ static ares_bool_t get_DNS_Windows(char **outptr) ll_scope = ipaaEntry->Ipv6IfIndex; } +# if defined(HAVE_GETBESTROUTE2) && !defined(__WATCOMC__) addresses[addressesIndex].metric = getBestRouteMetric( &ipaaEntry->Luid, (SOCKADDR_INET *)((void *)(namesrvr.sa)), ipaaEntry->Ipv6Metric); +# else + addresses[addressesIndex].metric = (ULONG)-1; +# endif /* Record insertion index to make qsort stable */ addresses[addressesIndex].orig_idx = addressesIndex; diff --git a/deps/cares/src/lib/config-win32.h b/deps/cares/src/lib/config-win32.h index be233a2f8b9c2d..fc533c75516ea3 100644 --- a/deps/cares/src/lib/config-win32.h +++ b/deps/cares/src/lib/config-win32.h @@ -237,8 +237,10 @@ # undef HAVE_NETIOAPI_H #endif -/* Threading support enabled */ -#define CARES_THREADS 1 +/* Threading support enabled for Vista+ */ +#if !defined(_WIN32_WINNT) || _WIN32_WINNT >= 0x0600 +# define CARES_THREADS 1 +#endif /* ---------------------------------------------------------------- */ /* TYPEDEF REPLACEMENTS */ @@ -370,6 +372,8 @@ # define HAVE_CONVERTINTERFACELUIDTONAMEA 1 /* Define to 1 if you have the `NotifyIpInterfaceChange' function. */ # define HAVE_NOTIFYIPINTERFACECHANGE 1 +/* Define to 1 if you have the `GetBestRoute2` function */ +# define HAVE_GETBESTROUTE2 1 #endif /* ---------------------------------------------------------------- */ diff --git a/deps/cares/src/lib/event/ares_event.h b/deps/cares/src/lib/event/ares_event.h index 36cd10dcf89152..bf298dfb6196ba 100644 --- a/deps/cares/src/lib/event/ares_event.h +++ b/deps/cares/src/lib/event/ares_event.h @@ -159,30 +159,33 @@ ares_status_t ares_event_update(ares_event_t **event, ares_event_thread_t *e, ares_event_signal_cb_t signal_cb); -#ifdef HAVE_PIPE +#ifdef CARES_THREADS +# ifdef HAVE_PIPE ares_event_t *ares_pipeevent_create(ares_event_thread_t *e); -#endif +# endif -#ifdef HAVE_POLL +# ifdef HAVE_POLL extern const ares_event_sys_t ares_evsys_poll; -#endif +# endif -#ifdef HAVE_KQUEUE +# ifdef HAVE_KQUEUE extern const ares_event_sys_t ares_evsys_kqueue; -#endif +# endif -#ifdef HAVE_EPOLL +# ifdef HAVE_EPOLL extern const ares_event_sys_t ares_evsys_epoll; -#endif +# endif -#ifdef _WIN32 +# ifdef _WIN32 extern const ares_event_sys_t ares_evsys_win32; -#endif +# endif /* All systems have select(), but not all have a way to wake, so we require * pipe() to wake the select() */ -#ifdef HAVE_PIPE +# ifdef HAVE_PIPE extern const ares_event_sys_t ares_evsys_select; +# endif + #endif #endif diff --git a/deps/cares/src/lib/event/ares_event_configchg.c b/deps/cares/src/lib/event/ares_event_configchg.c index 5ecc6888ab719f..2a8c780c2ccb31 100644 --- a/deps/cares/src/lib/event/ares_event_configchg.c +++ b/deps/cares/src/lib/event/ares_event_configchg.c @@ -26,7 +26,7 @@ #include "ares_private.h" #include "ares_event.h" -#ifdef __ANDROID__ +#if defined(__ANDROID__) && defined(CARES_THREADS) ares_status_t ares_event_configchg_init(ares_event_configchg_t **configchg, ares_event_thread_t *e) @@ -43,7 +43,7 @@ void ares_event_configchg_destroy(ares_event_configchg_t *configchg) (void)configchg; } -#elif defined(__linux__) +#elif defined(__linux__) && defined(CARES_THREADS) # include @@ -174,7 +174,7 @@ ares_status_t ares_event_configchg_init(ares_event_configchg_t **configchg, return status; } -#elif defined(USE_WINSOCK) +#elif defined(USE_WINSOCK) && defined(CARES_THREADS) # include # include @@ -379,7 +379,7 @@ ares_status_t ares_event_configchg_init(ares_event_configchg_t **configchg, return status; } -#elif defined(__APPLE__) +#elif defined(__APPLE__) && defined(CARES_THREADS) # include # include @@ -531,7 +531,7 @@ ares_status_t ares_event_configchg_init(ares_event_configchg_t **configchg, return status; } -#elif defined(HAVE_STAT) && !defined(_WIN32) +#elif defined(HAVE_STAT) && !defined(_WIN32) && defined(CARES_THREADS) # ifdef HAVE_SYS_TYPES_H # include # endif @@ -665,6 +665,12 @@ ares_status_t ares_event_configchg_init(ares_event_configchg_t **configchg, goto done; } + c->lock = ares_thread_mutex_create(); + if (c->lock == NULL) { + status = ARES_ENOMEM; + goto done; + } + c->resolvconf_path = c->e->channel->resolvconf_path; if (c->resolvconf_path == NULL) { c->resolvconf_path = PATH_RESOLV_CONF; @@ -722,6 +728,8 @@ void ares_event_configchg_destroy(ares_event_configchg_t *configchg) ares_status_t ares_event_configchg_init(ares_event_configchg_t **configchg, ares_event_thread_t *e) { + (void)configchg; + (void)e; /* No ability */ return ARES_ENOTIMP; } @@ -729,6 +737,7 @@ ares_status_t ares_event_configchg_init(ares_event_configchg_t **configchg, void ares_event_configchg_destroy(ares_event_configchg_t *configchg) { /* No-op */ + (void)configchg; } #endif diff --git a/deps/cares/src/lib/event/ares_event_epoll.c b/deps/cares/src/lib/event/ares_event_epoll.c index 538c38b4f94ab4..d451c86a3d57e8 100644 --- a/deps/cares/src/lib/event/ares_event_epoll.c +++ b/deps/cares/src/lib/event/ares_event_epoll.c @@ -26,6 +26,8 @@ #include "ares_private.h" #include "ares_event.h" +#if defined(HAVE_EPOLL) && defined(CARES_THREADS) + #ifdef HAVE_SYS_EPOLL_H # include #endif @@ -33,8 +35,6 @@ # include #endif -#ifdef HAVE_EPOLL - typedef struct { int epoll_fd; } ares_evsys_epoll_t; diff --git a/deps/cares/src/lib/event/ares_event_kqueue.c b/deps/cares/src/lib/event/ares_event_kqueue.c index dbbd0dbd9f76a6..00cdcbe9c2a912 100644 --- a/deps/cares/src/lib/event/ares_event_kqueue.c +++ b/deps/cares/src/lib/event/ares_event_kqueue.c @@ -26,6 +26,8 @@ #include "ares_private.h" #include "ares_event.h" +#if defined(HAVE_KQUEUE) && defined(CARES_THREADS) + #ifdef HAVE_SYS_TYPES_H # include #endif @@ -39,8 +41,6 @@ # include #endif -#ifdef HAVE_KQUEUE - typedef struct { int kqueue_fd; struct kevent *changelist; diff --git a/deps/cares/src/lib/event/ares_event_poll.c b/deps/cares/src/lib/event/ares_event_poll.c index c6ab4b62072b36..28e3c096576751 100644 --- a/deps/cares/src/lib/event/ares_event_poll.c +++ b/deps/cares/src/lib/event/ares_event_poll.c @@ -25,12 +25,13 @@ */ #include "ares_private.h" #include "ares_event.h" + +#if defined(HAVE_POLL) && defined(CARES_THREADS) + #ifdef HAVE_POLL_H # include #endif -#if defined(HAVE_POLL) - static ares_bool_t ares_evsys_poll_init(ares_event_thread_t *e) { e->ev_signal = ares_pipeevent_create(e); diff --git a/deps/cares/src/lib/event/ares_event_select.c b/deps/cares/src/lib/event/ares_event_select.c index 4d7c085d872088..df758b5a1e5172 100644 --- a/deps/cares/src/lib/event/ares_event_select.c +++ b/deps/cares/src/lib/event/ares_event_select.c @@ -31,13 +31,14 @@ #include "ares_private.h" #include "ares_event.h" -#ifdef HAVE_SYS_SELECT_H -# include -#endif /* All systems have select(), but not all have a way to wake, so we require * pipe() to wake the select() */ -#if defined(HAVE_PIPE) +#if defined(HAVE_PIPE) && defined(CARES_THREADS) + +#ifdef HAVE_SYS_SELECT_H +# include +#endif static ares_bool_t ares_evsys_select_init(ares_event_thread_t *e) { diff --git a/deps/cares/src/lib/event/ares_event_thread.c b/deps/cares/src/lib/event/ares_event_thread.c index d59b7880a411cf..c77514e02c18c8 100644 --- a/deps/cares/src/lib/event/ares_event_thread.c +++ b/deps/cares/src/lib/event/ares_event_thread.c @@ -26,6 +26,7 @@ #include "ares_private.h" #include "ares_event.h" +#ifdef CARES_THREADS static void ares_event_destroy_cb(void *arg) { ares_event_t *event = arg; @@ -549,3 +550,18 @@ ares_status_t ares_event_thread_init(ares_channel_t *channel) return ARES_SUCCESS; } + +#else + +ares_status_t ares_event_thread_init(ares_channel_t *channel) +{ + (void)channel; + return ARES_ENOTIMP; +} + +void ares_event_thread_destroy(ares_channel_t *channel) +{ + (void)channel; +} + +#endif diff --git a/deps/cares/src/lib/event/ares_event_wake_pipe.c b/deps/cares/src/lib/event/ares_event_wake_pipe.c index d3b166a3d6cb78..cd1534bbbd586c 100644 --- a/deps/cares/src/lib/event/ares_event_wake_pipe.c +++ b/deps/cares/src/lib/event/ares_event_wake_pipe.c @@ -25,14 +25,16 @@ */ #include "ares_private.h" #include "ares_event.h" -#ifdef HAVE_UNISTD_H -# include -#endif -#ifdef HAVE_FCNTL_H -# include -#endif -#ifdef HAVE_PIPE +#if defined(HAVE_PIPE) && defined(CARES_THREADS) + +# ifdef HAVE_UNISTD_H +# include +# endif +# ifdef HAVE_FCNTL_H +# include +# endif + typedef struct { int filedes[2]; } ares_pipeevent_t; diff --git a/deps/cares/src/lib/event/ares_event_win32.c b/deps/cares/src/lib/event/ares_event_win32.c index 1531b6d81ddca4..d7d1d65735082d 100644 --- a/deps/cares/src/lib/event/ares_event_win32.c +++ b/deps/cares/src/lib/event/ares_event_win32.c @@ -37,12 +37,14 @@ #include "ares_private.h" #include "ares_event.h" #include "ares_event_win32.h" + + +#if defined(USE_WINSOCK) && defined(CARES_THREADS) + #ifdef HAVE_LIMITS_H # include #endif -#if defined(USE_WINSOCK) - /* IMPLEMENTATION NOTES * ==================== * @@ -667,7 +669,7 @@ static ares_bool_t ares_evsys_win32_afd_cancel(ares_evsys_win32_eventdata_t *ed) /* NtCancelIoFileEx() may return STATUS_NOT_FOUND if the operation completed * just before calling NtCancelIoFileEx(), but we have not yet received the - * notifiction (but it should be queued for the next IOCP event). */ + * notification (but it should be queued for the next IOCP event). */ if (status == STATUS_SUCCESS || status == STATUS_NOT_FOUND) { return ARES_TRUE; } diff --git a/deps/cares/src/lib/legacy/ares_parse_a_reply.c b/deps/cares/src/lib/legacy/ares_parse_a_reply.c index 870aaccf76c0a8..9fd4a07ac0fccc 100644 --- a/deps/cares/src/lib/legacy/ares_parse_a_reply.c +++ b/deps/cares/src/lib/legacy/ares_parse_a_reply.c @@ -77,6 +77,7 @@ int ares_parse_a_reply(const unsigned char *abuf, int alen, } if (host != NULL) { + *host = NULL; status = ares_addrinfo2hostent(&ai, AF_INET, host); if (status != ARES_SUCCESS && status != ARES_ENODATA) { goto fail; /* LCOV_EXCL_LINE: DefensiveCoding */ diff --git a/deps/cares/src/lib/legacy/ares_parse_aaaa_reply.c b/deps/cares/src/lib/legacy/ares_parse_aaaa_reply.c index 278642f0b3e0af..4c177ec9cbbe55 100644 --- a/deps/cares/src/lib/legacy/ares_parse_aaaa_reply.c +++ b/deps/cares/src/lib/legacy/ares_parse_aaaa_reply.c @@ -80,6 +80,7 @@ int ares_parse_aaaa_reply(const unsigned char *abuf, int alen, } if (host != NULL) { + *host = NULL; status = ares_addrinfo2hostent(&ai, AF_INET6, host); if (status != ARES_SUCCESS && status != ARES_ENODATA) { goto fail; /* LCOV_EXCL_LINE: DefensiveCoding */ diff --git a/deps/cares/src/lib/util/ares_iface_ips.c b/deps/cares/src/lib/util/ares_iface_ips.c index 46cb291e300ec2..c5f507f87e1476 100644 --- a/deps/cares/src/lib/util/ares_iface_ips.c +++ b/deps/cares/src/lib/util/ares_iface_ips.c @@ -431,8 +431,14 @@ static ares_status_t ares_iface_ips_enumerate(ares_iface_ips_t *ips, } status = ares_iface_ips_add(ips, addrflag, ifname, &addr, +#if _WIN32_WINNT >= 0x0600 ipaddr->OnLinkPrefixLength /* netmask */, - address->Ipv6IfIndex /* ll_scope */); +#else + ipaddr->Address.lpSockaddr->sa_family + == AF_INET?32:128, +#endif + address->Ipv6IfIndex /* ll_scope */ + ); if (status != ARES_SUCCESS) { goto done; diff --git a/deps/cares/src/lib/util/ares_uri.h b/deps/cares/src/lib/util/ares_uri.h index 6a703cba5b53c5..2d8138fdc3e3d0 100644 --- a/deps/cares/src/lib/util/ares_uri.h +++ b/deps/cares/src/lib/util/ares_uri.h @@ -175,7 +175,7 @@ ares_status_t ares_uri_set_query_key(ares_uri_t *uri, const char *key, */ ares_status_t ares_uri_del_query_key(ares_uri_t *uri, const char *key); -/*! Retrieve the value associted with a query key. Keys are case-insensitive. +/*! Retrieve the value associated with a query key. Keys are case-insensitive. * * \param[in] uri Initialized URI object * \param[in] key Key to retrieve. diff --git a/deps/cares/src/tools/Makefile.in b/deps/cares/src/tools/Makefile.in index 19e99a253378c7..932d1a98375ac9 100644 --- a/deps/cares/src/tools/Makefile.in +++ b/deps/cares/src/tools/Makefile.in @@ -264,6 +264,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GCOV = @GCOV@ GENHTML = @GENHTML@ GMOCK112_CFLAGS = @GMOCK112_CFLAGS@ diff --git a/deps/cjs-module-lexer/LICENSE b/deps/cjs-module-lexer/LICENSE index b31c17aa33cdd9..935b357962d08b 100644 --- a/deps/cjs-module-lexer/LICENSE +++ b/deps/cjs-module-lexer/LICENSE @@ -1,10 +1,10 @@ -MIT License ------------ - -Copyright (C) 2018-2020 Guy Bedford - -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. +MIT License +----------- + +Copyright (C) 2018-2020 Guy Bedford + +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. diff --git a/deps/cjs-module-lexer/README.md b/deps/cjs-module-lexer/README.md index 2af01279ed2f38..addf5edc6b1193 100644 --- a/deps/cjs-module-lexer/README.md +++ b/deps/cjs-module-lexer/README.md @@ -1,462 +1,483 @@ -# CJS Module Lexer - -[![Build Status][travis-image]][travis-url] - -A [very fast](#benchmarks) JS CommonJS module syntax lexer used to detect the most likely list of named exports of a CommonJS module. - -Outputs the list of named exports (`exports.name = ...`) and possible module reexports (`module.exports = require('...')`), including the common transpiler variations of these cases. - -Forked from https://github.com/guybedford/es-module-lexer. - -_Comprehensively handles the JS language grammar while remaining small and fast. - ~90ms per MB of JS cold and ~15ms per MB of JS warm, [see benchmarks](#benchmarks) for more info._ - -### Project Status - -This project is used in Node.js core for detecting the named exports available when importing a CJS module into ESM, and is maintained for this purpose. - -PRs will be accepted and upstreamed for parser bugs, performance improvements or new syntax support only. - -_Detection patterns for this project are **frozen**_. This is because adding any new export detection patterns would result in fragmented backwards-compatibility. Specifically, it would be very difficult to figure out why an ES module named export for CommonJS might work in newer Node.js versions but not older versions. This problem would only be discovered downstream of module authors, with the fix for module authors being to then have to understand which patterns in this project provide full backwards-compatibily. Rather, by fully freezing the detected patterns, if it works in any Node.js version it will work in any other. Build tools can also reliably treat the supported syntax for this project as a part of their output target for ensuring syntax support. - -### Usage - -``` -npm install cjs-module-lexer -``` - -For use in CommonJS: - -```js -const { parse } = require('cjs-module-lexer'); - -// `init` return a promise for parity with the ESM API, but you do not have to call it - -const { exports, reexports } = parse(` - // named exports detection - module.exports.a = 'a'; - (function () { - exports.b = 'b'; - })(); - Object.defineProperty(exports, 'c', { value: 'c' }); - /* exports.d = 'not detected'; */ - - // reexports detection - if (maybe) module.exports = require('./dep1.js'); - if (another) module.exports = require('./dep2.js'); - - // literal exports assignments - module.exports = { a, b: c, d, 'e': f } - - // __esModule detection - Object.defineProperty(module.exports, '__esModule', { value: true }) -`); - -// exports === ['a', 'b', 'c', '__esModule'] -// reexports === ['./dep1.js', './dep2.js'] -``` - -When using the ESM version, Wasm is supported instead: - -```js -import { parse, init } from 'cjs-module-lexer'; -// init() needs to be called and waited upon, or use initSync() to compile -// Wasm blockingly and synchronously. -await init(); -const { exports, reexports } = parse(source); -``` - -The Wasm build is around 1.5x faster and without a cold start. - -### Grammar - -CommonJS exports matches are run against the source token stream. - -The token grammar is: - -``` -IDENTIFIER: As defined by ECMA-262, without support for identifier `\` escapes, filtered to remove strict reserved words: - "implements", "interface", "let", "package", "private", "protected", "public", "static", "yield", "enum" - -STRING_LITERAL: A `"` or `'` bounded ECMA-262 string literal. - -MODULE_EXPORTS: `module` `.` `exports` - -EXPORTS_IDENTIFIER: MODULE_EXPORTS_IDENTIFIER | `exports` - -EXPORTS_DOT_ASSIGN: EXPORTS_IDENTIFIER `.` IDENTIFIER `=` - -EXPORTS_LITERAL_COMPUTED_ASSIGN: EXPORTS_IDENTIFIER `[` STRING_LITERAL `]` `=` - -EXPORTS_LITERAL_PROP: (IDENTIFIER (`:` IDENTIFIER)?) | (STRING_LITERAL `:` IDENTIFIER) - -EXPORTS_SPREAD: `...` (IDENTIFIER | REQUIRE) - -EXPORTS_MEMBER: EXPORTS_DOT_ASSIGN | EXPORTS_LITERAL_COMPUTED_ASSIGN - -EXPORTS_DEFINE: `Object` `.` `defineProperty `(` EXPORTS_IDENFITIER `,` STRING_LITERAL - -EXPORTS_DEFINE_VALUE: EXPORTS_DEFINE `, {` - (`enumerable: true,`)? - ( - `value:` | - `get` (`: function` IDENTIFIER? )? `() {` return IDENTIFIER (`.` IDENTIFIER | `[` STRING_LITERAL `]`)? `;`? `}` `,`? - ) - `})` - -EXPORTS_LITERAL: MODULE_EXPORTS `=` `{` (EXPORTS_LITERAL_PROP | EXPORTS_SPREAD) `,`)+ `}` - -REQUIRE: `require` `(` STRING_LITERAL `)` - -EXPORTS_ASSIGN: (`var` | `const` | `let`) IDENTIFIER `=` (`_interopRequireWildcard (`)? REQUIRE - -MODULE_EXPORTS_ASSIGN: MODULE_EXPORTS `=` REQUIRE - -EXPORT_STAR: (`__export` | `__exportStar`) `(` REQUIRE - -EXPORT_STAR_LIB: `Object.keys(` IDENTIFIER$1 `).forEach(function (` IDENTIFIER$2 `) {` - ( - ( - `if (` IDENTIFIER$2 `===` ( `'default'` | `"default"` ) `||` IDENTIFIER$2 `===` ( '__esModule' | `"__esModule"` ) `) return` `;`? - ( - (`if (Object` `.prototype`? `.hasOwnProperty.call(` IDENTIFIER `, ` IDENTIFIER$2 `)) return` `;`?)? - (`if (` IDENTIFIER$2 `in` EXPORTS_IDENTIFIER `&&` EXPORTS_IDENTIFIER `[` IDENTIFIER$2 `] ===` IDENTIFIER$1 `[` IDENTIFIER$2 `]) return` `;`)? - )? - ) | - `if (` IDENTIFIER$2 `!==` ( `'default'` | `"default"` ) (`&& !` (`Object` `.prototype`? `.hasOwnProperty.call(` IDENTIFIER `, ` IDENTIFIER$2 `)` | IDENTIFIER `.hasOwnProperty(` IDENTIFIER$2 `)`))? `)` - ) - ( - EXPORTS_IDENTIFIER `[` IDENTIFIER$2 `] =` IDENTIFIER$1 `[` IDENTIFIER$2 `]` `;`? | - `Object.defineProperty(` EXPORTS_IDENTIFIER `, ` IDENTIFIER$2 `, { enumerable: true, get` (`: function` IDENTIFIER? )? `() { return ` IDENTIFIER$1 `[` IDENTIFIER$2 `]` `;`? `}` `,`? `})` `;`? - ) - `})` -``` - -Spacing between tokens is taken to be any ECMA-262 whitespace, ECMA-262 block comment or ECMA-262 line comment. - -* The returned export names are taken to be the combination of: - 1. All `IDENTIFIER` and `STRING_LITERAL` slots for `EXPORTS_MEMBER` and `EXPORTS_LITERAL` matches. - 2. The first `STRING_LITERAL` slot for all `EXPORTS_DEFINE_VALUE` matches where that same string is not an `EXPORTS_DEFINE` match that is not also an `EXPORTS_DEFINE_VALUE` match. -* The reexport specifiers are taken to be the combination of: - 1. The `REQUIRE` matches of the last matched of either `MODULE_EXPORTS_ASSIGN` or `EXPORTS_LITERAL`. - 2. All _top-level_ `EXPORT_STAR` `REQUIRE` matches and `EXPORTS_ASSIGN` matches whose `IDENTIFIER` also matches the first `IDENTIFIER` in `EXPORT_STAR_LIB`. - -### Parsing Examples - -#### Named Exports Parsing - -The basic matching rules for named exports are `exports.name`, `exports['name']` or `Object.defineProperty(exports, 'name', ...)`. This matching is done without scope analysis and regardless of the expression position: - -```js -// DETECTS EXPORTS: a, b -(function (exports) { - exports.a = 'a'; - exports['b'] = 'b'; -})(exports); -``` - -Because there is no scope analysis, the above detection may overclassify: - -```js -// DETECTS EXPORTS: a, b, c -(function (exports, Object) { - exports.a = 'a'; - exports['b'] = 'b'; - if (false) - exports.c = 'c'; -})(NOT_EXPORTS, NOT_OBJECT); -``` - -It will in turn underclassify in cases where the identifiers are renamed: - -```js -// DETECTS: NO EXPORTS -(function (e) { - e.a = 'a'; - e['b'] = 'b'; -})(exports); -``` - -#### Getter Exports Parsing - -`Object.defineProperty` is detected for specifically value and getter forms returning an identifier or member expression: - -```js -// DETECTS: a, b, c, d, __esModule -Object.defineProperty(exports, 'a', { - enumerable: true, - get: function () { - return q.p; - } -}); -Object.defineProperty(exports, 'b', { - enumerable: true, - get: function () { - return q['p']; - } -}); -Object.defineProperty(exports, 'c', { - enumerable: true, - get () { - return b; - } -}); -Object.defineProperty(exports, 'd', { value: 'd' }); -Object.defineProperty(exports, '__esModule', { value: true }); -``` - -Value properties are also detected specifically: - -```js -Object.defineProperty(exports, 'a', { - value: 'no problem' -}); -``` - -To avoid matching getters that have side effects, any getter for an export name that does not support the forms above will -opt-out of the getter matching: - -```js -// DETECTS: NO EXPORTS -Object.defineProperty(exports, 'a', { - get () { - return 'nope'; - } -}); - -if (false) { - Object.defineProperty(module.exports, 'a', { - get () { - return dynamic(); - } - }) -} -``` - -Alternative object definition structures or getter function bodies are not detected: - -```js -// DETECTS: NO EXPORTS -Object.defineProperty(exports, 'a', { - enumerable: false, - get () { - return p; - } -}); -Object.defineProperty(exports, 'b', { - configurable: true, - get () { - return p; - } -}); -Object.defineProperty(exports, 'c', { - get: () => p -}); -Object.defineProperty(exports, 'd', { - enumerable: true, - get: function () { - return dynamic(); - } -}); -Object.defineProperty(exports, 'e', { - enumerable: true, - get () { - return 'str'; - } -}); -``` - -`Object.defineProperties` is also not supported. - -#### Exports Object Assignment - -A best-effort is made to detect `module.exports` object assignments, but because this is not a full parser, arbitrary expressions are not handled in the -object parsing process. - -Simple object definitions are supported: - -```js -// DETECTS EXPORTS: a, b, c -module.exports = { - a, - 'b': b, - c: c, - ...d -}; -``` - -Object properties that are not identifiers or string expressions will bail out of the object detection, while spreads are ignored: - -```js -// DETECTS EXPORTS: a, b -module.exports = { - a, - ...d, - b: require('c'), - c: "not detected since require('c') above bails the object detection" -} -``` - -`Object.defineProperties` is not currently supported either. - -#### module.exports reexport assignment - -Any `module.exports = require('mod')` assignment is detected as a reexport, but only the last one is returned: - -```js -// DETECTS REEXPORTS: c -module.exports = require('a'); -(module => module.exports = require('b'))(NOT_MODULE); -if (false) module.exports = require('c'); -``` - -This is to avoid over-classification in Webpack bundles with externals which include `module.exports = require('external')` in their source for every external dependency. - -In exports object assignment, any spread of `require()` are detected as multiple separate reexports: - -```js -// DETECTS REEXPORTS: a, b -module.exports = require('ignored'); -module.exports = { - ...require('a'), - ...require('b') -}; -``` - -#### Transpiler Re-exports - -For named exports, transpiler output works well with the rules described above. - -But for star re-exports, special care is taken to support common patterns of transpiler outputs from Babel and TypeScript as well as bundlers like RollupJS. -These reexport and star reexport patterns are restricted to only be detected at the top-level as provided by the direct output of these tools. - -For example, `export * from 'external'` is output by Babel as: - -```js -"use strict"; - -exports.__esModule = true; - -var _external = require("external"); - -Object.keys(_external).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - exports[key] = _external[key]; -}); -``` - -Where the `var _external = require("external")` is specifically detected as well as the `Object.keys(_external)` statement, down to the exact -for of that entire expression including minor variations of the output. The `_external` and `key` identifiers are carefully matched in this -detection. - -Similarly for TypeScript, `export * from 'external'` is output as: - -```js -"use strict"; -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} -Object.defineProperty(exports, "__esModule", { value: true }); -__export(require("external")); -``` - -Where the `__export(require("external"))` statement is explicitly detected as a reexport, including variations `tslib.__export` and `__exportStar`. - -### Environment Support - -Node.js 10+, and [all browsers with Web Assembly support](https://caniuse.com/#feat=wasm). - -### JS Grammar Support - -* Token state parses all line comments, block comments, strings, template strings, blocks, parens and punctuators. -* Division operator / regex token ambiguity is handled via backtracking checks against punctuator prefixes, including closing brace or paren backtracking. -* Always correctly parses valid JS source, but may parse invalid JS source without errors. - -### Benchmarks - -Benchmarks can be run with `npm run bench`. - -Current results: - -JS Build: - -``` -Module load time -> 4ms -Cold Run, All Samples -test/samples/*.js (3635 KiB) -> 299ms - -Warm Runs (average of 25 runs) -test/samples/angular.js (1410 KiB) -> 13.96ms -test/samples/angular.min.js (303 KiB) -> 4.72ms -test/samples/d3.js (553 KiB) -> 6.76ms -test/samples/d3.min.js (250 KiB) -> 4ms -test/samples/magic-string.js (34 KiB) -> 0.64ms -test/samples/magic-string.min.js (20 KiB) -> 0ms -test/samples/rollup.js (698 KiB) -> 8.48ms -test/samples/rollup.min.js (367 KiB) -> 5.36ms - -Warm Runs, All Samples (average of 25 runs) -test/samples/*.js (3635 KiB) -> 40.28ms -``` - -Wasm Build: -``` -Module load time -> 10ms -Cold Run, All Samples -test/samples/*.js (3635 KiB) -> 43ms - -Warm Runs (average of 25 runs) -test/samples/angular.js (1410 KiB) -> 9.32ms -test/samples/angular.min.js (303 KiB) -> 3.16ms -test/samples/d3.js (553 KiB) -> 5ms -test/samples/d3.min.js (250 KiB) -> 2.32ms -test/samples/magic-string.js (34 KiB) -> 0.16ms -test/samples/magic-string.min.js (20 KiB) -> 0ms -test/samples/rollup.js (698 KiB) -> 6.28ms -test/samples/rollup.min.js (367 KiB) -> 3.6ms - -Warm Runs, All Samples (average of 25 runs) -test/samples/*.js (3635 KiB) -> 27.76ms -``` - -### Wasm Build Steps - -To build download the WASI SDK from https://github.com/WebAssembly/wasi-sdk/releases. - -The Makefile assumes the existence of "wasi-sdk-11.0" and "wabt" (optional) as sibling folders to this project. - -The build through the Makefile is then run via `make lib/lexer.wasm`, which can also be triggered via `npm run build-wasm` to create `dist/lexer.js`. - -On Windows it may be preferable to use the Linux subsystem. - -After the Web Assembly build, the CJS build can be triggered via `npm run build`. - -Optimization passes are run with [Binaryen](https://github.com/WebAssembly/binaryen) prior to publish to reduce the Web Assembly footprint. - -### License - -MIT - -[travis-url]: https://travis-ci.org/guybedford/es-module-lexer -[travis-image]: https://travis-ci.org/guybedford/es-module-lexer.svg?branch=master +# CJS Module Lexer + +[![Build Status][travis-image]][travis-url] + +A [very fast](#benchmarks) JS CommonJS module syntax lexer used to detect the most likely list of named exports of a CommonJS module. + +Outputs the list of named exports (`exports.name = ...`) and possible module reexports (`module.exports = require('...')`), including the common transpiler variations of these cases. + +Forked from https://github.com/guybedford/es-module-lexer. + +_Comprehensively handles the JS language grammar while remaining small and fast. - ~90ms per MB of JS cold and ~15ms per MB of JS warm, [see benchmarks](#benchmarks) for more info._ + +### Project Status + +This project is used in Node.js core for detecting the named exports available when importing a CJS module into ESM, and is maintained for this purpose. + +PRs will be accepted and upstreamed for parser bugs, performance improvements or new syntax support only. + +_Detection patterns for this project are **frozen**_. This is because adding any new export detection patterns would result in fragmented backwards-compatibility. Specifically, it would be very difficult to figure out why an ES module named export for CommonJS might work in newer Node.js versions but not older versions. This problem would only be discovered downstream of module authors, with the fix for module authors being to then have to understand which patterns in this project provide full backwards-compatibily. Rather, by fully freezing the detected patterns, if it works in any Node.js version it will work in any other. Build tools can also reliably treat the supported syntax for this project as a part of their output target for ensuring syntax support. + +### Usage + +``` +npm install cjs-module-lexer +``` + +For use in CommonJS: + +```js +const { parse } = require('cjs-module-lexer'); + +// `init` return a promise for parity with the ESM API, but you do not have to call it + +const { exports, reexports } = parse(` + // named exports detection + module.exports.a = 'a'; + (function () { + exports.b = 'b'; + })(); + Object.defineProperty(exports, 'c', { value: 'c' }); + /* exports.d = 'not detected'; */ + + // reexports detection + if (maybe) module.exports = require('./dep1.js'); + if (another) module.exports = require('./dep2.js'); + + // literal exports assignments + module.exports = { a, b: c, d, 'e': f } + + // __esModule detection + Object.defineProperty(module.exports, '__esModule', { value: true }) +`); + +// exports === ['a', 'b', 'c', '__esModule'] +// reexports === ['./dep1.js', './dep2.js'] +``` + +When using the ESM version, Wasm is supported instead: + +```js +import { parse, init } from 'cjs-module-lexer'; +// init() needs to be called and waited upon, or use initSync() to compile +// Wasm blockingly and synchronously. +await init(); +const { exports, reexports } = parse(source); +``` + +The Wasm build is around 1.5x faster and without a cold start. + +### Grammar + +CommonJS exports matches are run against the source token stream. + +The token grammar is: + +``` +IDENTIFIER: As defined by ECMA-262, without support for identifier `\` escapes, filtered to remove strict reserved words: + "implements", "interface", "let", "package", "private", "protected", "public", "static", "yield", "enum" + +STRING_LITERAL: A `"` or `'` bounded ECMA-262 string literal. + +MODULE_EXPORTS: `module` `.` `exports` + +EXPORTS_IDENTIFIER: MODULE_EXPORTS_IDENTIFIER | `exports` + +EXPORTS_DOT_ASSIGN: EXPORTS_IDENTIFIER `.` IDENTIFIER `=` + +EXPORTS_LITERAL_COMPUTED_ASSIGN: EXPORTS_IDENTIFIER `[` STRING_LITERAL `]` `=` + +EXPORTS_LITERAL_PROP: (IDENTIFIER (`:` IDENTIFIER)?) | (STRING_LITERAL `:` IDENTIFIER) + +EXPORTS_SPREAD: `...` (IDENTIFIER | REQUIRE) + +EXPORTS_MEMBER: EXPORTS_DOT_ASSIGN | EXPORTS_LITERAL_COMPUTED_ASSIGN + +EXPORTS_DEFINE: `Object` `.` `defineProperty `(` EXPORTS_IDENFITIER `,` STRING_LITERAL + +EXPORTS_DEFINE_VALUE: EXPORTS_DEFINE `, {` + (`enumerable: true,`)? + ( + `value:` | + `get` (`: function` IDENTIFIER? )? `() {` return IDENTIFIER (`.` IDENTIFIER | `[` STRING_LITERAL `]`)? `;`? `}` `,`? + ) + `})` + +EXPORTS_LITERAL: MODULE_EXPORTS `=` `{` (EXPORTS_LITERAL_PROP | EXPORTS_SPREAD) `,`)+ `}` + +REQUIRE: `require` `(` STRING_LITERAL `)` + +EXPORTS_ASSIGN: (`var` | `const` | `let`) IDENTIFIER `=` (`_interopRequireWildcard (`)? REQUIRE + +MODULE_EXPORTS_ASSIGN: MODULE_EXPORTS `=` REQUIRE + +EXPORT_STAR: (`__export` | `__exportStar`) `(` REQUIRE + +EXPORT_STAR_LIB: `Object.keys(` IDENTIFIER$1 `).forEach(function (` IDENTIFIER$2 `) {` + ( + ( + `if (` IDENTIFIER$2 `===` ( `'default'` | `"default"` ) `||` IDENTIFIER$2 `===` ( '__esModule' | `"__esModule"` ) `) return` `;`? + ( + (`if (Object` `.prototype`? `.hasOwnProperty.call(` IDENTIFIER `, ` IDENTIFIER$2 `)) return` `;`?)? + (`if (` IDENTIFIER$2 `in` EXPORTS_IDENTIFIER `&&` EXPORTS_IDENTIFIER `[` IDENTIFIER$2 `] ===` IDENTIFIER$1 `[` IDENTIFIER$2 `]) return` `;`)? + )? + ) | + `if (` IDENTIFIER$2 `!==` ( `'default'` | `"default"` ) (`&& !` (`Object` `.prototype`? `.hasOwnProperty.call(` IDENTIFIER `, ` IDENTIFIER$2 `)` | IDENTIFIER `.hasOwnProperty(` IDENTIFIER$2 `)`))? `)` + ) + ( + EXPORTS_IDENTIFIER `[` IDENTIFIER$2 `] =` IDENTIFIER$1 `[` IDENTIFIER$2 `]` `;`? | + `Object.defineProperty(` EXPORTS_IDENTIFIER `, ` IDENTIFIER$2 `, { enumerable: true, get` (`: function` IDENTIFIER? )? `() { return ` IDENTIFIER$1 `[` IDENTIFIER$2 `]` `;`? `}` `,`? `})` `;`? + ) + `})` +``` + +Spacing between tokens is taken to be any ECMA-262 whitespace, ECMA-262 block comment or ECMA-262 line comment. + +* The returned export names are taken to be the combination of: + 1. All `IDENTIFIER` and `STRING_LITERAL` slots for `EXPORTS_MEMBER` and `EXPORTS_LITERAL` matches. + 2. The first `STRING_LITERAL` slot for all `EXPORTS_DEFINE_VALUE` matches where that same string is not an `EXPORTS_DEFINE` match that is not also an `EXPORTS_DEFINE_VALUE` match. +* The reexport specifiers are taken to be the combination of: + 1. The `REQUIRE` matches of the last matched of either `MODULE_EXPORTS_ASSIGN` or `EXPORTS_LITERAL`. + 2. All _top-level_ `EXPORT_STAR` `REQUIRE` matches and `EXPORTS_ASSIGN` matches whose `IDENTIFIER` also matches the first `IDENTIFIER` in `EXPORT_STAR_LIB`. + +### Parsing Examples + +#### Named Exports Parsing + +The basic matching rules for named exports are `exports.name`, `exports['name']` or `Object.defineProperty(exports, 'name', ...)`. This matching is done without scope analysis and regardless of the expression position: + +```js +// DETECTS EXPORTS: a, b +(function (exports) { + exports.a = 'a'; + exports['b'] = 'b'; +})(exports); +``` + +Because there is no scope analysis, the above detection may overclassify: + +```js +// DETECTS EXPORTS: a, b, c +(function (exports, Object) { + exports.a = 'a'; + exports['b'] = 'b'; + if (false) + exports.c = 'c'; +})(NOT_EXPORTS, NOT_OBJECT); +``` + +It will in turn underclassify in cases where the identifiers are renamed: + +```js +// DETECTS: NO EXPORTS +(function (e) { + e.a = 'a'; + e['b'] = 'b'; +})(exports); +``` + +#### Getter Exports Parsing + +`Object.defineProperty` is detected for specifically value and getter forms returning an identifier or member expression: + +```js +// DETECTS: a, b, c, d, __esModule +Object.defineProperty(exports, 'a', { + enumerable: true, + get: function () { + return q.p; + } +}); +Object.defineProperty(exports, 'b', { + enumerable: true, + get: function () { + return q['p']; + } +}); +Object.defineProperty(exports, 'c', { + enumerable: true, + get () { + return b; + } +}); +Object.defineProperty(exports, 'd', { value: 'd' }); +Object.defineProperty(exports, '__esModule', { value: true }); +``` + +Value properties are also detected specifically: + +```js +Object.defineProperty(exports, 'a', { + value: 'no problem' +}); +``` + +To avoid matching getters that have side effects, any getter for an export name that does not support the forms above will +opt-out of the getter matching: + +```js +// DETECTS: NO EXPORTS +Object.defineProperty(exports, 'a', { + get () { + return 'nope'; + } +}); + +if (false) { + Object.defineProperty(module.exports, 'a', { + get () { + return dynamic(); + } + }) +} +``` + +Alternative object definition structures or getter function bodies are not detected: + +```js +// DETECTS: NO EXPORTS +Object.defineProperty(exports, 'a', { + enumerable: false, + get () { + return p; + } +}); +Object.defineProperty(exports, 'b', { + configurable: true, + get () { + return p; + } +}); +Object.defineProperty(exports, 'c', { + get: () => p +}); +Object.defineProperty(exports, 'd', { + enumerable: true, + get: function () { + return dynamic(); + } +}); +Object.defineProperty(exports, 'e', { + enumerable: true, + get () { + return 'str'; + } +}); +``` + +`Object.defineProperties` is also not supported. + +#### Exports Object Assignment + +A best-effort is made to detect `module.exports` object assignments, but because this is not a full parser, arbitrary expressions are not handled in the +object parsing process. + +Simple object definitions are supported: + +```js +// DETECTS EXPORTS: a, b, c +module.exports = { + a, + 'b': b, + c: c, + ...d +}; +``` + +Object properties that are not identifiers or string expressions will bail out of the object detection, while spreads are ignored: + +```js +// DETECTS EXPORTS: a, b +module.exports = { + a, + ...d, + b: require('c'), + c: "not detected since require('c') above bails the object detection" +} +``` + +`Object.defineProperties` is not currently supported either. + +#### module.exports reexport assignment + +Any `module.exports = require('mod')` assignment is detected as a reexport, but only the last one is returned: + +```js +// DETECTS REEXPORTS: c +module.exports = require('a'); +(module => module.exports = require('b'))(NOT_MODULE); +if (false) module.exports = require('c'); +``` + +This is to avoid over-classification in Webpack bundles with externals which include `module.exports = require('external')` in their source for every external dependency. + +In exports object assignment, any spread of `require()` are detected as multiple separate reexports: + +```js +// DETECTS REEXPORTS: a, b +module.exports = require('ignored'); +module.exports = { + ...require('a'), + ...require('b') +}; +``` + +#### Transpiler Re-exports + +For named exports, transpiler output works well with the rules described above. + +But for star re-exports, special care is taken to support common patterns of transpiler outputs from Babel and TypeScript as well as bundlers like RollupJS. +These reexport and star reexport patterns are restricted to only be detected at the top-level as provided by the direct output of these tools. + +For example, `export * from 'external'` is output by Babel as: + +```js +"use strict"; + +exports.__esModule = true; + +var _external = require("external"); + +Object.keys(_external).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + exports[key] = _external[key]; +}); +``` + +Where the `var _external = require("external")` is specifically detected as well as the `Object.keys(_external)` statement, down to the exact +for of that entire expression including minor variations of the output. The `_external` and `key` identifiers are carefully matched in this +detection. + +Similarly for TypeScript, `export * from 'external'` is output as: + +```js +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("external")); +``` + +Where the `__export(require("external"))` statement is explicitly detected as a reexport, including variations `tslib.__export` and `__exportStar`. + +### Environment Support + +Node.js 10+, and [all browsers with Web Assembly support](https://caniuse.com/#feat=wasm). + +### JS Grammar Support + +* Token state parses all line comments, block comments, strings, template strings, blocks, parens and punctuators. +* Division operator / regex token ambiguity is handled via backtracking checks against punctuator prefixes, including closing brace or paren backtracking. +* Always correctly parses valid JS source, but may parse invalid JS source without errors. + +### Benchmarks + +Benchmarks can be run with `npm run bench`. + +Current results: + +JS Build: + +``` +Module load time +> 4ms +Cold Run, All Samples +test/samples/*.js (3635 KiB) +> 299ms + +Warm Runs (average of 25 runs) +test/samples/angular.js (1410 KiB) +> 13.96ms +test/samples/angular.min.js (303 KiB) +> 4.72ms +test/samples/d3.js (553 KiB) +> 6.76ms +test/samples/d3.min.js (250 KiB) +> 4ms +test/samples/magic-string.js (34 KiB) +> 0.64ms +test/samples/magic-string.min.js (20 KiB) +> 0ms +test/samples/rollup.js (698 KiB) +> 8.48ms +test/samples/rollup.min.js (367 KiB) +> 5.36ms + +Warm Runs, All Samples (average of 25 runs) +test/samples/*.js (3635 KiB) +> 40.28ms +``` + +Wasm Build: +``` +Module load time +> 10ms +Cold Run, All Samples +test/samples/*.js (3635 KiB) +> 43ms + +Warm Runs (average of 25 runs) +test/samples/angular.js (1410 KiB) +> 9.32ms +test/samples/angular.min.js (303 KiB) +> 3.16ms +test/samples/d3.js (553 KiB) +> 5ms +test/samples/d3.min.js (250 KiB) +> 2.32ms +test/samples/magic-string.js (34 KiB) +> 0.16ms +test/samples/magic-string.min.js (20 KiB) +> 0ms +test/samples/rollup.js (698 KiB) +> 6.28ms +test/samples/rollup.min.js (367 KiB) +> 3.6ms + +Warm Runs, All Samples (average of 25 runs) +test/samples/*.js (3635 KiB) +> 27.76ms +``` + +### Wasm Build Steps + +The build uses docker and make, they must be installed first. + +To build the lexer wasm run `npm run build-wasm`. + +Optimization passes are run with [Binaryen](https://github.com/WebAssembly/binaryen) +prior to publish to reduce the Web Assembly footprint. + +After building the lexer wasm, build the final distribution components +(lexer.js and lexer.mjs) by running `npm run build`. + +If you need to build lib/lexer.wat (optional) you must first install +[wabt](https://github.com/WebAssembly/wabt) as a sibling folder to this +project. The wat file is then build by running `make lib/lexer.wat` + +### Creating a Release +These are the steps to create and publish a release. You will need docker +installed as well as having installed [wabt](https://github.com/WebAssembly/wabt) +as outlined above: + +- [ ] Figure out if the release should be semver patch, minor or major based on the changes since + the last release and determine the new version. +- [ ] Update the package.json version, and run a full build and test + - npm install + - npm run build + - npm run test +- [ ] Commit and tag the changes, pushing up to main and the tag + - For example + - `git tag -a 1.4.2 -m "1.4.2"` + - `git push origin tag 1.4.2` +- [ ] Create the GitHub release +- [ ] Run npm publish from an account with access (asking somebody with access + the nodejs-foundation account is an option if you don't have access. + +### License + +MIT + +[travis-url]: https://travis-ci.org/guybedford/es-module-lexer +[travis-image]: https://travis-ci.org/guybedford/es-module-lexer.svg?branch=master diff --git a/deps/cjs-module-lexer/dist/lexer-external.js b/deps/cjs-module-lexer/dist/lexer-external.js deleted file mode 100644 index 1e5f49de6221c1..00000000000000 --- a/deps/cjs-module-lexer/dist/lexer-external.js +++ /dev/null @@ -1,91 +0,0 @@ -"use strict"; - -exports.init = init; -exports.parse = parse; -let wasm; -const isLE = new Uint8Array(new Uint16Array([1]).buffer)[0] === 1; -function parse(source, name = '@') { - if (!wasm) throw new Error('Not initialized'); - const len = source.length + 1; - - // need 2 bytes per code point plus analysis space so we double again - const extraMem = (wasm.__heap_base.value || wasm.__heap_base) + len * 4 - wasm.memory.buffer.byteLength; - if (extraMem > 0) wasm.memory.grow(Math.ceil(extraMem / 65536)); - const addr = wasm.sa(len); - (isLE ? copyLE : copyBE)(source, new Uint16Array(wasm.memory.buffer, addr, len)); - const err_code = wasm.parseCJS(addr, source.length, 0, 0, 0); - if (err_code) { - const err = new Error(`Parse error ${name}${wasm.e()}:${source.slice(0, wasm.e()).split('\n').length}:${wasm.e() - source.lastIndexOf('\n', wasm.e() - 1)}`); - Object.assign(err, { - idx: wasm.e() - }); - if (err_code === 5 || err_code === 6 || err_code === 7) Object.assign(err, { - code: 'ERR_LEXER_ESM_SYNTAX' - }); - throw err; - } - let exports = new Set(), - reexports = new Set(), - unsafeGetters = new Set(); - while (wasm.rre()) { - const reexptStr = decode(source.slice(wasm.res(), wasm.ree())); - if (reexptStr) reexports.add(reexptStr); - } - while (wasm.ru()) unsafeGetters.add(decode(source.slice(wasm.us(), wasm.ue()))); - while (wasm.re()) { - let exptStr = decode(source.slice(wasm.es(), wasm.ee())); - if (exptStr !== undefined && !unsafeGetters.has(exptStr)) exports.add(exptStr); - } - return { - exports: [...exports], - reexports: [...reexports] - }; -} -function decode(str) { - if (str[0] === '"' || str[0] === '\'') { - try { - const decoded = (0, eval)(str); - // Filter to exclude non-matching UTF-16 surrogate strings - for (let i = 0; i < decoded.length; i++) { - const surrogatePrefix = decoded.charCodeAt(i) & 0xFC00; - if (surrogatePrefix < 0xD800) { - // Not a surrogate - continue; - } else if (surrogatePrefix === 0xD800) { - // Validate surrogate pair - if ((decoded.charCodeAt(++i) & 0xFC00) !== 0xDC00) return; - } else { - // Out-of-range surrogate code (above 0xD800) - return; - } - } - return decoded; - } catch {} - } else { - return str; - } -} -function copyBE(src, outBuf16) { - const len = src.length; - let i = 0; - while (i < len) { - const ch = src.charCodeAt(i); - outBuf16[i++] = (ch & 0xff) << 8 | ch >>> 8; - } -} -function copyLE(src, outBuf16) { - const len = src.length; - let i = 0; - while (i < len) outBuf16[i] = src.charCodeAt(i++); -} -let initPromise; -function init() { - if (initPromise) return initPromise; - return initPromise = (async () => { - const compiled = await WebAssembly.compile((await import('node:fs')).readFileSync(new URL(import.meta.resolve('../lib/lexer.wasm')))); - const { - exports - } = await WebAssembly.instantiate(compiled); - wasm = exports; - })(); -} \ No newline at end of file diff --git a/deps/cjs-module-lexer/dist/lexer.js b/deps/cjs-module-lexer/dist/lexer.js index 7c9b7124ae224d..d59aaf1bc47851 100644 --- a/deps/cjs-module-lexer/dist/lexer.js +++ b/deps/cjs-module-lexer/dist/lexer.js @@ -1 +1 @@ -"use strict";exports.init=init;exports.initSync=initSync;exports.parse=parse;let A;const Q=1===new Uint8Array(new Uint16Array([1]).buffer)[0];function parse(g,I="@"){if(!A)throw new Error("Not initialized");const D=g.length+1,N=(A.__heap_base.value||A.__heap_base)+4*D-A.memory.buffer.byteLength;N>0&&A.memory.grow(Math.ceil(N/65536));const k=A.sa(D);(Q?C:E)(g,new Uint16Array(A.memory.buffer,k,D));const w=A.parseCJS(k,g.length,0,0,0);if(w){const Q=new Error(`Parse error ${I}${A.e()}:${g.slice(0,A.e()).split("\n").length}:${A.e()-g.lastIndexOf("\n",A.e()-1)}`);throw Object.assign(Q,{idx:A.e()}),5!==w&&6!==w&&7!==w||Object.assign(Q,{code:"ERR_LEXER_ESM_SYNTAX"}),Q}let H=new Set,J=new Set,o=new Set;for(;A.rre();){const Q=B(g.slice(A.res(),A.ree()));Q&&J.add(Q)}for(;A.ru();)o.add(B(g.slice(A.us(),A.ue())));for(;A.re();){let Q=B(g.slice(A.es(),A.ee()));void 0===Q||o.has(Q)||H.add(Q)}return{exports:[...H],reexports:[...J]}}function B(A){if('"'!==A[0]&&"'"!==A[0])return A;try{const Q=(0,eval)(A);for(let A=0;A>>8}}function C(A,Q){const B=A.length;let E=0;for(;EA.charCodeAt(0))}let I;function init(){return I||(I=(async()=>{const Q=await WebAssembly.compile(g()),{exports:B}=await WebAssembly.instantiate(Q);A=B})())}function initSync(){if(A)return;const Q=new WebAssembly.Module(g()),{exports:B}=new WebAssembly.Instance(Q);A=B} \ No newline at end of file +"use strict";exports.init=init;exports.initSync=initSync;exports.parse=parse;let A;const B=1===new Uint8Array(new Uint16Array([1]).buffer)[0];function parse(I,C="@"){if(!A)throw new Error("Not initialized");const w=I.length+1,D=(A.__heap_base.value||A.__heap_base)+4*w-A.memory.buffer.byteLength;D>0&&A.memory.grow(Math.ceil(D/65536));const G=A.sa(w);(B?g:E)(I,new Uint16Array(A.memory.buffer,G,w));const S=A.parseCJS(G,I.length,0,0,0);if(S){const B=new Error(`Parse error ${C}${A.e()}:${I.slice(0,A.e()).split("\n").length}:${A.e()-I.lastIndexOf("\n",A.e()-1)}`);throw Object.assign(B,{idx:A.e()}),5!==S&&6!==S&&7!==S||Object.assign(B,{code:"ERR_LEXER_ESM_SYNTAX"}),B}let R=new Set,o=new Set,H=new Set;for(;A.rre();){const B=Q(I.slice(A.res(),A.ree()));B&&o.add(B)}for(;A.ru();)H.add(Q(I.slice(A.us(),A.ue())));for(;A.re();){let B=Q(I.slice(A.es(),A.ee()));void 0===B||H.has(B)||R.add(B)}return{exports:[...R],reexports:[...o]}}function Q(A){if('"'!==A[0]&&"'"!==A[0])return A;try{const B=(0,eval)(A);for(let A=0;A>>8}}function g(A,B){const Q=A.length;let E=0;for(;EA.charCodeAt(0))}let C;function init(){return C||(C=(async()=>{const B=await WebAssembly.compile(I()),{exports:Q}=await WebAssembly.instantiate(B);A=Q})())}function initSync(){if(A)return;const B=new WebAssembly.Module(I()),{exports:Q}=new WebAssembly.Instance(B);A=Q} \ No newline at end of file diff --git a/deps/cjs-module-lexer/dist/lexer.mjs b/deps/cjs-module-lexer/dist/lexer.mjs index 964b74cfa781b6..b6f5fb548bb73f 100644 --- a/deps/cjs-module-lexer/dist/lexer.mjs +++ b/deps/cjs-module-lexer/dist/lexer.mjs @@ -1,2 +1,2 @@ -/* cjs-module-lexer 1.4.1 */ -let A;const Q=1===new Uint8Array(new Uint16Array([1]).buffer)[0];export function parse(g,I="@"){if(!A)throw new Error("Not initialized");const D=g.length+1,N=(A.__heap_base.value||A.__heap_base)+4*D-A.memory.buffer.byteLength;N>0&&A.memory.grow(Math.ceil(N/65536));const k=A.sa(D);(Q?C:E)(g,new Uint16Array(A.memory.buffer,k,D));const w=A.parseCJS(k,g.length,0,0,0);if(w){const Q=new Error(`Parse error ${I}${A.e()}:${g.slice(0,A.e()).split("\n").length}:${A.e()-g.lastIndexOf("\n",A.e()-1)}`);throw Object.assign(Q,{idx:A.e()}),5!==w&&6!==w&&7!==w||Object.assign(Q,{code:"ERR_LEXER_ESM_SYNTAX"}),Q}let H=new Set,J=new Set,o=new Set;for(;A.rre();){const Q=B(g.slice(A.res(),A.ree()));Q&&J.add(Q)}for(;A.ru();)o.add(B(g.slice(A.us(),A.ue())));for(;A.re();){let Q=B(g.slice(A.es(),A.ee()));void 0===Q||o.has(Q)||H.add(Q)}return{exports:[...H],reexports:[...J]}}function B(A){if('"'!==A[0]&&"'"!==A[0])return A;try{const Q=(0,eval)(A);for(let A=0;A>>8}}function C(A,Q){const B=A.length;let E=0;for(;EA.charCodeAt(0))}let I;export function init(){return I||(I=(async()=>{const Q=await WebAssembly.compile(g()),{exports:B}=await WebAssembly.instantiate(Q);A=B})())}export function initSync(){if(A)return;const Q=new WebAssembly.Module(g()),{exports:B}=new WebAssembly.Instance(Q);A=B} \ No newline at end of file +/* cjs-module-lexer 2.1.0 */ +let A;const B=1===new Uint8Array(new Uint16Array([1]).buffer)[0];export function parse(I,C="@"){if(!A)throw new Error("Not initialized");const w=I.length+1,D=(A.__heap_base.value||A.__heap_base)+4*w-A.memory.buffer.byteLength;D>0&&A.memory.grow(Math.ceil(D/65536));const G=A.sa(w);(B?g:E)(I,new Uint16Array(A.memory.buffer,G,w));const S=A.parseCJS(G,I.length,0,0,0);if(S){const B=new Error(`Parse error ${C}${A.e()}:${I.slice(0,A.e()).split("\n").length}:${A.e()-I.lastIndexOf("\n",A.e()-1)}`);throw Object.assign(B,{idx:A.e()}),5!==S&&6!==S&&7!==S||Object.assign(B,{code:"ERR_LEXER_ESM_SYNTAX"}),B}let R=new Set,o=new Set,H=new Set;for(;A.rre();){const B=Q(I.slice(A.res(),A.ree()));B&&o.add(B)}for(;A.ru();)H.add(Q(I.slice(A.us(),A.ue())));for(;A.re();){let B=Q(I.slice(A.es(),A.ee()));void 0===B||H.has(B)||R.add(B)}return{exports:[...R],reexports:[...o]}}function Q(A){if('"'!==A[0]&&"'"!==A[0])return A;try{const B=(0,eval)(A);for(let A=0;A>>8}}function g(A,B){const Q=A.length;let E=0;for(;EA.charCodeAt(0))}let C;export function init(){return C||(C=(async()=>{const B=await WebAssembly.compile(I()),{exports:Q}=await WebAssembly.instantiate(B);A=Q})())}export function initSync(){if(A)return;const B=new WebAssembly.Module(I()),{exports:Q}=new WebAssembly.Instance(B);A=Q} \ No newline at end of file diff --git a/deps/cjs-module-lexer/lexer.js b/deps/cjs-module-lexer/lexer.js old mode 100644 new mode 100755 diff --git a/deps/cjs-module-lexer/src/.babelrc b/deps/cjs-module-lexer/src/.babelrc new file mode 100755 index 00000000000000..ac89f952694c6e --- /dev/null +++ b/deps/cjs-module-lexer/src/.babelrc @@ -0,0 +1,10 @@ +{ + "plugins": [ + [ + "@babel/plugin-transform-modules-commonjs", + { + "strict": true + }, + ] + ] +} diff --git a/deps/cjs-module-lexer/src/CHANGELOG.md b/deps/cjs-module-lexer/src/CHANGELOG.md new file mode 100644 index 00000000000000..5a24d193fd487f --- /dev/null +++ b/deps/cjs-module-lexer/src/CHANGELOG.md @@ -0,0 +1,40 @@ +1.2.2 +- Fix RollupJS reexports bug (https://github.com/nodejs/cjs-module-lexer/pull/59) + +1.2.1 +- Support Unicode escapes in strings (https://github.com/nodejs/cjs-module-lexer/pull/55) +- Filter export strings to valid surrogate pairs (https://github.com/nodejs/cjs-module-lexer/pull/56) + +1.2.0 +- Support for non-identifier exports (https://github.com/nodejs/cjs-module-lexer/pull/54, @nicolo-ribaudo) + +1.1.1 +- Better support for Babel reexport getter function forms (https://github.com/nodejs/cjs-module-lexer/issues/50) +- Support Babel interopRequireWildcard reexports patterns (https://github.com/nodejs/cjs-module-lexer/issues/52) + +1.1.0 +- Support for Babel reexport conflict filter (https://github.com/nodejs/cjs-module-lexer/issues/36, @nicolo-ribaudo) +- Support trailing commas in getter patterns (https://github.com/nodejs/cjs-module-lexer/issues/31) +- Support for RollupJS reexports property checks (https://github.com/nodejs/cjs-module-lexer/issues/38) + +1.0.0 +- Unsafe getter tracking (https://github.com/nodejs/cjs-module-lexer/pull/29) + +0.6.0 +- API-only breaking change: Unify JS and Wasm interfaces (https://github.com/nodejs/cjs-module-lexer/pull/27) +- Add type definitions (https://github.com/nodejs/cjs-module-lexer/pull/28) + +0.5.2 +- Support named getter functions (https://github.com/nodejs/cjs-module-lexer/pull/26) + +0.5.1: +- Feature: Implement specific reexport getter forms (https://github.com/nodejs/cjs-module-lexer/pull/25) + +0.5.0 +- Breaking Change: No longer emit Object.defineProperty exports (https://github.com/nodejs/cjs-module-lexer/pull/24) +- Doc: Update link to WASI SDK (https://github.com/nodejs/cjs-module-lexer/pull/19) + +0.4.3 +- Support for Babel 7.12 reexports (https://github.com/nodejs/cjs-module-lexer/pull/16) +- Support module.exports = { ...require('x') } reexports (https://github.com/nodejs/cjs-module-lexer/pull/18) +- "if" keyword space parsing in exports matching (https://github.com/nodejs/cjs-module-lexer/pull/17) diff --git a/deps/cjs-module-lexer/src/LICENSE b/deps/cjs-module-lexer/src/LICENSE new file mode 100755 index 00000000000000..935b357962d08b --- /dev/null +++ b/deps/cjs-module-lexer/src/LICENSE @@ -0,0 +1,10 @@ +MIT License +----------- + +Copyright (C) 2018-2020 Guy Bedford + +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. diff --git a/deps/cjs-module-lexer/src/Makefile b/deps/cjs-module-lexer/src/Makefile new file mode 100755 index 00000000000000..9a75850f73ae65 --- /dev/null +++ b/deps/cjs-module-lexer/src/Makefile @@ -0,0 +1,16 @@ +WASM2WAT := ../wabt/bin/wasm2wat +WASM_OPT := ../binaryen/bin/wasm-opt + +.PHONY: optimize clean + +lib/lexer.wat: lib/lexer.wasm + $(WASM2WAT) lib/lexer.wasm -o lib/lexer.wat + +lib/lexer.wasm: include-wasm/cjs-module-lexer.h src/lexer.c | lib/ + node build/wasm.js --docker + +lib/: + @mkdir -p $@ + +clean: + $(RM) lib/* diff --git a/deps/cjs-module-lexer/src/README.md b/deps/cjs-module-lexer/src/README.md new file mode 100755 index 00000000000000..addf5edc6b1193 --- /dev/null +++ b/deps/cjs-module-lexer/src/README.md @@ -0,0 +1,483 @@ +# CJS Module Lexer + +[![Build Status][travis-image]][travis-url] + +A [very fast](#benchmarks) JS CommonJS module syntax lexer used to detect the most likely list of named exports of a CommonJS module. + +Outputs the list of named exports (`exports.name = ...`) and possible module reexports (`module.exports = require('...')`), including the common transpiler variations of these cases. + +Forked from https://github.com/guybedford/es-module-lexer. + +_Comprehensively handles the JS language grammar while remaining small and fast. - ~90ms per MB of JS cold and ~15ms per MB of JS warm, [see benchmarks](#benchmarks) for more info._ + +### Project Status + +This project is used in Node.js core for detecting the named exports available when importing a CJS module into ESM, and is maintained for this purpose. + +PRs will be accepted and upstreamed for parser bugs, performance improvements or new syntax support only. + +_Detection patterns for this project are **frozen**_. This is because adding any new export detection patterns would result in fragmented backwards-compatibility. Specifically, it would be very difficult to figure out why an ES module named export for CommonJS might work in newer Node.js versions but not older versions. This problem would only be discovered downstream of module authors, with the fix for module authors being to then have to understand which patterns in this project provide full backwards-compatibily. Rather, by fully freezing the detected patterns, if it works in any Node.js version it will work in any other. Build tools can also reliably treat the supported syntax for this project as a part of their output target for ensuring syntax support. + +### Usage + +``` +npm install cjs-module-lexer +``` + +For use in CommonJS: + +```js +const { parse } = require('cjs-module-lexer'); + +// `init` return a promise for parity with the ESM API, but you do not have to call it + +const { exports, reexports } = parse(` + // named exports detection + module.exports.a = 'a'; + (function () { + exports.b = 'b'; + })(); + Object.defineProperty(exports, 'c', { value: 'c' }); + /* exports.d = 'not detected'; */ + + // reexports detection + if (maybe) module.exports = require('./dep1.js'); + if (another) module.exports = require('./dep2.js'); + + // literal exports assignments + module.exports = { a, b: c, d, 'e': f } + + // __esModule detection + Object.defineProperty(module.exports, '__esModule', { value: true }) +`); + +// exports === ['a', 'b', 'c', '__esModule'] +// reexports === ['./dep1.js', './dep2.js'] +``` + +When using the ESM version, Wasm is supported instead: + +```js +import { parse, init } from 'cjs-module-lexer'; +// init() needs to be called and waited upon, or use initSync() to compile +// Wasm blockingly and synchronously. +await init(); +const { exports, reexports } = parse(source); +``` + +The Wasm build is around 1.5x faster and without a cold start. + +### Grammar + +CommonJS exports matches are run against the source token stream. + +The token grammar is: + +``` +IDENTIFIER: As defined by ECMA-262, without support for identifier `\` escapes, filtered to remove strict reserved words: + "implements", "interface", "let", "package", "private", "protected", "public", "static", "yield", "enum" + +STRING_LITERAL: A `"` or `'` bounded ECMA-262 string literal. + +MODULE_EXPORTS: `module` `.` `exports` + +EXPORTS_IDENTIFIER: MODULE_EXPORTS_IDENTIFIER | `exports` + +EXPORTS_DOT_ASSIGN: EXPORTS_IDENTIFIER `.` IDENTIFIER `=` + +EXPORTS_LITERAL_COMPUTED_ASSIGN: EXPORTS_IDENTIFIER `[` STRING_LITERAL `]` `=` + +EXPORTS_LITERAL_PROP: (IDENTIFIER (`:` IDENTIFIER)?) | (STRING_LITERAL `:` IDENTIFIER) + +EXPORTS_SPREAD: `...` (IDENTIFIER | REQUIRE) + +EXPORTS_MEMBER: EXPORTS_DOT_ASSIGN | EXPORTS_LITERAL_COMPUTED_ASSIGN + +EXPORTS_DEFINE: `Object` `.` `defineProperty `(` EXPORTS_IDENFITIER `,` STRING_LITERAL + +EXPORTS_DEFINE_VALUE: EXPORTS_DEFINE `, {` + (`enumerable: true,`)? + ( + `value:` | + `get` (`: function` IDENTIFIER? )? `() {` return IDENTIFIER (`.` IDENTIFIER | `[` STRING_LITERAL `]`)? `;`? `}` `,`? + ) + `})` + +EXPORTS_LITERAL: MODULE_EXPORTS `=` `{` (EXPORTS_LITERAL_PROP | EXPORTS_SPREAD) `,`)+ `}` + +REQUIRE: `require` `(` STRING_LITERAL `)` + +EXPORTS_ASSIGN: (`var` | `const` | `let`) IDENTIFIER `=` (`_interopRequireWildcard (`)? REQUIRE + +MODULE_EXPORTS_ASSIGN: MODULE_EXPORTS `=` REQUIRE + +EXPORT_STAR: (`__export` | `__exportStar`) `(` REQUIRE + +EXPORT_STAR_LIB: `Object.keys(` IDENTIFIER$1 `).forEach(function (` IDENTIFIER$2 `) {` + ( + ( + `if (` IDENTIFIER$2 `===` ( `'default'` | `"default"` ) `||` IDENTIFIER$2 `===` ( '__esModule' | `"__esModule"` ) `) return` `;`? + ( + (`if (Object` `.prototype`? `.hasOwnProperty.call(` IDENTIFIER `, ` IDENTIFIER$2 `)) return` `;`?)? + (`if (` IDENTIFIER$2 `in` EXPORTS_IDENTIFIER `&&` EXPORTS_IDENTIFIER `[` IDENTIFIER$2 `] ===` IDENTIFIER$1 `[` IDENTIFIER$2 `]) return` `;`)? + )? + ) | + `if (` IDENTIFIER$2 `!==` ( `'default'` | `"default"` ) (`&& !` (`Object` `.prototype`? `.hasOwnProperty.call(` IDENTIFIER `, ` IDENTIFIER$2 `)` | IDENTIFIER `.hasOwnProperty(` IDENTIFIER$2 `)`))? `)` + ) + ( + EXPORTS_IDENTIFIER `[` IDENTIFIER$2 `] =` IDENTIFIER$1 `[` IDENTIFIER$2 `]` `;`? | + `Object.defineProperty(` EXPORTS_IDENTIFIER `, ` IDENTIFIER$2 `, { enumerable: true, get` (`: function` IDENTIFIER? )? `() { return ` IDENTIFIER$1 `[` IDENTIFIER$2 `]` `;`? `}` `,`? `})` `;`? + ) + `})` +``` + +Spacing between tokens is taken to be any ECMA-262 whitespace, ECMA-262 block comment or ECMA-262 line comment. + +* The returned export names are taken to be the combination of: + 1. All `IDENTIFIER` and `STRING_LITERAL` slots for `EXPORTS_MEMBER` and `EXPORTS_LITERAL` matches. + 2. The first `STRING_LITERAL` slot for all `EXPORTS_DEFINE_VALUE` matches where that same string is not an `EXPORTS_DEFINE` match that is not also an `EXPORTS_DEFINE_VALUE` match. +* The reexport specifiers are taken to be the combination of: + 1. The `REQUIRE` matches of the last matched of either `MODULE_EXPORTS_ASSIGN` or `EXPORTS_LITERAL`. + 2. All _top-level_ `EXPORT_STAR` `REQUIRE` matches and `EXPORTS_ASSIGN` matches whose `IDENTIFIER` also matches the first `IDENTIFIER` in `EXPORT_STAR_LIB`. + +### Parsing Examples + +#### Named Exports Parsing + +The basic matching rules for named exports are `exports.name`, `exports['name']` or `Object.defineProperty(exports, 'name', ...)`. This matching is done without scope analysis and regardless of the expression position: + +```js +// DETECTS EXPORTS: a, b +(function (exports) { + exports.a = 'a'; + exports['b'] = 'b'; +})(exports); +``` + +Because there is no scope analysis, the above detection may overclassify: + +```js +// DETECTS EXPORTS: a, b, c +(function (exports, Object) { + exports.a = 'a'; + exports['b'] = 'b'; + if (false) + exports.c = 'c'; +})(NOT_EXPORTS, NOT_OBJECT); +``` + +It will in turn underclassify in cases where the identifiers are renamed: + +```js +// DETECTS: NO EXPORTS +(function (e) { + e.a = 'a'; + e['b'] = 'b'; +})(exports); +``` + +#### Getter Exports Parsing + +`Object.defineProperty` is detected for specifically value and getter forms returning an identifier or member expression: + +```js +// DETECTS: a, b, c, d, __esModule +Object.defineProperty(exports, 'a', { + enumerable: true, + get: function () { + return q.p; + } +}); +Object.defineProperty(exports, 'b', { + enumerable: true, + get: function () { + return q['p']; + } +}); +Object.defineProperty(exports, 'c', { + enumerable: true, + get () { + return b; + } +}); +Object.defineProperty(exports, 'd', { value: 'd' }); +Object.defineProperty(exports, '__esModule', { value: true }); +``` + +Value properties are also detected specifically: + +```js +Object.defineProperty(exports, 'a', { + value: 'no problem' +}); +``` + +To avoid matching getters that have side effects, any getter for an export name that does not support the forms above will +opt-out of the getter matching: + +```js +// DETECTS: NO EXPORTS +Object.defineProperty(exports, 'a', { + get () { + return 'nope'; + } +}); + +if (false) { + Object.defineProperty(module.exports, 'a', { + get () { + return dynamic(); + } + }) +} +``` + +Alternative object definition structures or getter function bodies are not detected: + +```js +// DETECTS: NO EXPORTS +Object.defineProperty(exports, 'a', { + enumerable: false, + get () { + return p; + } +}); +Object.defineProperty(exports, 'b', { + configurable: true, + get () { + return p; + } +}); +Object.defineProperty(exports, 'c', { + get: () => p +}); +Object.defineProperty(exports, 'd', { + enumerable: true, + get: function () { + return dynamic(); + } +}); +Object.defineProperty(exports, 'e', { + enumerable: true, + get () { + return 'str'; + } +}); +``` + +`Object.defineProperties` is also not supported. + +#### Exports Object Assignment + +A best-effort is made to detect `module.exports` object assignments, but because this is not a full parser, arbitrary expressions are not handled in the +object parsing process. + +Simple object definitions are supported: + +```js +// DETECTS EXPORTS: a, b, c +module.exports = { + a, + 'b': b, + c: c, + ...d +}; +``` + +Object properties that are not identifiers or string expressions will bail out of the object detection, while spreads are ignored: + +```js +// DETECTS EXPORTS: a, b +module.exports = { + a, + ...d, + b: require('c'), + c: "not detected since require('c') above bails the object detection" +} +``` + +`Object.defineProperties` is not currently supported either. + +#### module.exports reexport assignment + +Any `module.exports = require('mod')` assignment is detected as a reexport, but only the last one is returned: + +```js +// DETECTS REEXPORTS: c +module.exports = require('a'); +(module => module.exports = require('b'))(NOT_MODULE); +if (false) module.exports = require('c'); +``` + +This is to avoid over-classification in Webpack bundles with externals which include `module.exports = require('external')` in their source for every external dependency. + +In exports object assignment, any spread of `require()` are detected as multiple separate reexports: + +```js +// DETECTS REEXPORTS: a, b +module.exports = require('ignored'); +module.exports = { + ...require('a'), + ...require('b') +}; +``` + +#### Transpiler Re-exports + +For named exports, transpiler output works well with the rules described above. + +But for star re-exports, special care is taken to support common patterns of transpiler outputs from Babel and TypeScript as well as bundlers like RollupJS. +These reexport and star reexport patterns are restricted to only be detected at the top-level as provided by the direct output of these tools. + +For example, `export * from 'external'` is output by Babel as: + +```js +"use strict"; + +exports.__esModule = true; + +var _external = require("external"); + +Object.keys(_external).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + exports[key] = _external[key]; +}); +``` + +Where the `var _external = require("external")` is specifically detected as well as the `Object.keys(_external)` statement, down to the exact +for of that entire expression including minor variations of the output. The `_external` and `key` identifiers are carefully matched in this +detection. + +Similarly for TypeScript, `export * from 'external'` is output as: + +```js +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("external")); +``` + +Where the `__export(require("external"))` statement is explicitly detected as a reexport, including variations `tslib.__export` and `__exportStar`. + +### Environment Support + +Node.js 10+, and [all browsers with Web Assembly support](https://caniuse.com/#feat=wasm). + +### JS Grammar Support + +* Token state parses all line comments, block comments, strings, template strings, blocks, parens and punctuators. +* Division operator / regex token ambiguity is handled via backtracking checks against punctuator prefixes, including closing brace or paren backtracking. +* Always correctly parses valid JS source, but may parse invalid JS source without errors. + +### Benchmarks + +Benchmarks can be run with `npm run bench`. + +Current results: + +JS Build: + +``` +Module load time +> 4ms +Cold Run, All Samples +test/samples/*.js (3635 KiB) +> 299ms + +Warm Runs (average of 25 runs) +test/samples/angular.js (1410 KiB) +> 13.96ms +test/samples/angular.min.js (303 KiB) +> 4.72ms +test/samples/d3.js (553 KiB) +> 6.76ms +test/samples/d3.min.js (250 KiB) +> 4ms +test/samples/magic-string.js (34 KiB) +> 0.64ms +test/samples/magic-string.min.js (20 KiB) +> 0ms +test/samples/rollup.js (698 KiB) +> 8.48ms +test/samples/rollup.min.js (367 KiB) +> 5.36ms + +Warm Runs, All Samples (average of 25 runs) +test/samples/*.js (3635 KiB) +> 40.28ms +``` + +Wasm Build: +``` +Module load time +> 10ms +Cold Run, All Samples +test/samples/*.js (3635 KiB) +> 43ms + +Warm Runs (average of 25 runs) +test/samples/angular.js (1410 KiB) +> 9.32ms +test/samples/angular.min.js (303 KiB) +> 3.16ms +test/samples/d3.js (553 KiB) +> 5ms +test/samples/d3.min.js (250 KiB) +> 2.32ms +test/samples/magic-string.js (34 KiB) +> 0.16ms +test/samples/magic-string.min.js (20 KiB) +> 0ms +test/samples/rollup.js (698 KiB) +> 6.28ms +test/samples/rollup.min.js (367 KiB) +> 3.6ms + +Warm Runs, All Samples (average of 25 runs) +test/samples/*.js (3635 KiB) +> 27.76ms +``` + +### Wasm Build Steps + +The build uses docker and make, they must be installed first. + +To build the lexer wasm run `npm run build-wasm`. + +Optimization passes are run with [Binaryen](https://github.com/WebAssembly/binaryen) +prior to publish to reduce the Web Assembly footprint. + +After building the lexer wasm, build the final distribution components +(lexer.js and lexer.mjs) by running `npm run build`. + +If you need to build lib/lexer.wat (optional) you must first install +[wabt](https://github.com/WebAssembly/wabt) as a sibling folder to this +project. The wat file is then build by running `make lib/lexer.wat` + +### Creating a Release +These are the steps to create and publish a release. You will need docker +installed as well as having installed [wabt](https://github.com/WebAssembly/wabt) +as outlined above: + +- [ ] Figure out if the release should be semver patch, minor or major based on the changes since + the last release and determine the new version. +- [ ] Update the package.json version, and run a full build and test + - npm install + - npm run build + - npm run test +- [ ] Commit and tag the changes, pushing up to main and the tag + - For example + - `git tag -a 1.4.2 -m "1.4.2"` + - `git push origin tag 1.4.2` +- [ ] Create the GitHub release +- [ ] Run npm publish from an account with access (asking somebody with access + the nodejs-foundation account is an option if you don't have access. + +### License + +MIT + +[travis-url]: https://travis-ci.org/guybedford/es-module-lexer +[travis-image]: https://travis-ci.org/guybedford/es-module-lexer.svg?branch=master diff --git a/deps/cjs-module-lexer/src/build.js b/deps/cjs-module-lexer/src/build.js new file mode 100755 index 00000000000000..da024d1a6cb780 --- /dev/null +++ b/deps/cjs-module-lexer/src/build.js @@ -0,0 +1,25 @@ +const fs = require('fs'); +const terser = require('terser'); + +const MINIFY = true; + +try { fs.mkdirSync('./dist'); } +catch (e) {} + +const wasmBuffer = fs.readFileSync('./lib/lexer.wasm'); +const jsSource = fs.readFileSync('./src/lexer.js').toString(); +const pjson = JSON.parse(fs.readFileSync('./package.json').toString()); + +const jsSourceProcessed = jsSource.replace('WASM_BINARY', wasmBuffer.toString('base64')); + +const minified = MINIFY && terser.minify(jsSourceProcessed, { + module: true, + output: { + preamble: `/* cjs-module-lexer ${pjson.version} */` + } +}); + +if (minified.error) + throw minified.error; + +fs.writeFileSync('./dist/lexer.mjs', minified ? minified.code : jsSourceProcessed); diff --git a/deps/cjs-module-lexer/src/build/Makefile b/deps/cjs-module-lexer/src/build/Makefile new file mode 100755 index 00000000000000..b8e96d82534f7d --- /dev/null +++ b/deps/cjs-module-lexer/src/build/Makefile @@ -0,0 +1,24 @@ +# These flags depend on the system and may be overridden +WASM_CC := clang +WASM_CFLAGS := --sysroot=/usr/share/wasi-sysroot +WASM_LDFLAGS := -nostartfiles + +# These are project-specific and are expected to be kept intact +WASM_TARGET := -target wasm32-unknown-wasi +WASM_EXTRA_CFLAGS := -I include-wasm/ -Wno-logical-op-parentheses -Wno-parentheses -Oz +WASM_EXTRA_LDFLAGS := -Wl,-z,stack-size=13312,--no-entry,--compress-relocations,--strip-all +WASM_EXTRA_LDFLAGS += -Wl,--export=__heap_base,--export=parseCJS,--export=sa +WASM_EXTRA_LDFLAGS += -Wl,--export=e,--export=re,--export=es,--export=ee +WASM_EXTRA_LDFLAGS += -Wl,--export=rre,--export=ree,--export=res,--export=ru,--export=us,--export=ue + +lib/lexer.wasm: include-wasm/cjs-module-lexer.h src/lexer.c + @mkdir -p lib + $(WASM_CC) $(WASM_CFLAGS) $(WASM_TARGET) $(WASM_EXTRA_CFLAGS) \ + src/lexer.c -o lib/lexer.wasm \ + $(WASM_LDFLAGS) $(WASM_EXTRA_LDFLAGS) + +optimize: lib/lexer.wasm + ${WASM_OPT} -Oz lib/lexer.wasm -o lib/lexer.wasm + +clean: + rm lib/* diff --git a/deps/cjs-module-lexer/src/build/wasm.js b/deps/cjs-module-lexer/src/build/wasm.js new file mode 100644 index 00000000000000..58fb64041d7691 --- /dev/null +++ b/deps/cjs-module-lexer/src/build/wasm.js @@ -0,0 +1,54 @@ +'use strict' + +const WASM_BUILDER_CONTAINER = 'ghcr.io/nodejs/wasm-builder@sha256:975f391d907e42a75b8c72eb77c782181e941608687d4d8694c3e9df415a0970' // v0.0.9 + +const WASM_OPT = './wasm-opt' + +const { execSync } = require('node:child_process') +const { writeFileSync, readFileSync, existsSync, mkdirSync } = require('node:fs') +const { join, resolve } = require('node:path') + +const ROOT = resolve(__dirname, '../') + +let platform = process.env.WASM_PLATFORM +if (!platform && process.argv[2]) { + platform = execSync('docker info -f "{{.OSType}}/{{.Architecture}}"').toString().trim() +} + +if (process.argv[2] === '--docker') { + let cmd = `docker run --rm --platform=${platform.toString().trim()} ` + if (process.platform === 'linux') { + cmd += ` --user ${process.getuid()}:${process.getegid()}` + } + + if (!existsSync(`${ROOT}/dist`)){ + mkdirSync(`${ROOT}/dist`); + } + + cmd += ` --mount type=bind,source=${ROOT}/lib,target=/home/node/build/lib \ + --mount type=bind,source=${ROOT}/src,target=/home/node/build/src \ + --mount type=bind,source=${ROOT}/dist,target=/home/node/build/dist \ + --mount type=bind,source=${ROOT}/node_modules,target=/home/node/build/node_modules \ + --mount type=bind,source=${ROOT}/build/wasm.js,target=/home/node/build/wasm.js \ + --mount type=bind,source=${ROOT}/build/Makefile,target=/home/node/build/Makefile \ + --mount type=bind,source=${ROOT}/build.js,target=/home/node/build/build.js \ + --mount type=bind,source=${ROOT}/package.json,target=/home/node/build/package.json \ + --mount type=bind,source=${ROOT}/include-wasm,target=/home/node/build/include-wasm \ + -t ${WASM_BUILDER_CONTAINER} node wasm.js` + console.log(`> ${cmd}\n\n`) + execSync(cmd, { stdio: 'inherit' }) + process.exit(0) +} + +const hasOptimizer = (function () { + try { execSync(`${WASM_OPT} --version`); return true } catch (error) { return false } +})() + +// Build wasm binary +console.log('Building wasm'); +execSync(`make lib/lexer.wasm`, { stdio: 'inherit' }) +if (hasOptimizer) { + console.log('Optimizing wasm'); + execSync(`make optimize`, { stdio: 'inherit' }) +} +execSync(`node build.js`, { stdio: 'inherit' }) diff --git a/deps/cjs-module-lexer/src/include-wasm/cjs-module-lexer.h b/deps/cjs-module-lexer/src/include-wasm/cjs-module-lexer.h new file mode 100755 index 00000000000000..ab2adca3c751ab --- /dev/null +++ b/deps/cjs-module-lexer/src/include-wasm/cjs-module-lexer.h @@ -0,0 +1,238 @@ +#include +#include +#include +#include +#include + +extern unsigned char __heap_base; + +const uint16_t* source = (void*)&__heap_base; +uint32_t parse_error; + +struct Slice { + const uint16_t* start; + const uint16_t* end; + struct Slice* next; +}; +typedef struct Slice Slice; + +struct StarExportBinding { + const uint16_t* specifier_start; + const uint16_t* specifier_end; + const uint16_t* id_start; + const uint16_t* id_end; +}; +typedef struct StarExportBinding StarExportBinding; + +Slice* first_export = NULL; +Slice* export_read_head = NULL; +Slice* export_write_head = NULL; +Slice* first_reexport = NULL; +Slice* reexport_read_head = NULL; +Slice* reexport_write_head = NULL; +Slice* first_unsafe_getter = NULL; +Slice* unsafe_getter_read_head = NULL; +Slice* unsafe_getter_write_head = NULL; +void* analysis_base; +void* analysis_head; + +void bail (uint32_t err); + +// allocateSource +const uint16_t* sa (uint32_t utf16Len) { + const uint16_t* sourceEnd = source + utf16Len + 1; + // ensure source is null terminated + *(uint16_t*)(source + utf16Len) = '\0'; + analysis_base = (void*)sourceEnd; + analysis_head = analysis_base; + first_export = NULL; + export_write_head = NULL; + export_read_head = NULL; + first_reexport = NULL; + reexport_write_head = NULL; + reexport_read_head = NULL; + first_unsafe_getter = NULL; + unsafe_getter_write_head = NULL; + unsafe_getter_read_head = NULL; + return source; +} + +// getErr +uint32_t e () { + return parse_error; +} + +// getExportStart +uint32_t es () { + return export_read_head->start - source; +} +// getExportEnd +uint32_t ee () { + return export_read_head->end - source; +} +// getReexportStart +uint32_t res () { + return reexport_read_head->start - source; +} +// getReexportEnd +uint32_t ree () { + return reexport_read_head->end - source; +} +// getUnsafeGetterStart +uint32_t us () { + return unsafe_getter_read_head->start - source; +} +// getUnsafeGetterEnd +uint32_t ue () { + return unsafe_getter_read_head->end - source; +} +// readExport +bool re () { + if (export_read_head == NULL) + export_read_head = first_export; + else + export_read_head = export_read_head->next; + if (export_read_head == NULL) + return false; + return true; +} +// readReexport +bool rre () { + if (reexport_read_head == NULL) + reexport_read_head = first_reexport; + else + reexport_read_head = reexport_read_head->next; + if (reexport_read_head == NULL) + return false; + return true; +} +// readUnsafeGetter +bool ru () { + if (unsafe_getter_read_head == NULL) + unsafe_getter_read_head = first_unsafe_getter; + else + unsafe_getter_read_head = unsafe_getter_read_head->next; + if (unsafe_getter_read_head == NULL) + return false; + return true; +} + +void _addExport (const uint16_t* start, const uint16_t* end) { + Slice* export = (Slice*)(analysis_head); + analysis_head = analysis_head + sizeof(Slice); + if (export_write_head == NULL) + first_export = export; + else + export_write_head->next = export; + export_write_head = export; + export->start = start; + export->end = end; + export->next = NULL; +} +void _addReexport (const uint16_t* start, const uint16_t* end) { + Slice* reexport = (Slice*)(analysis_head); + analysis_head = analysis_head + sizeof(Slice); + if (reexport_write_head == NULL) + first_reexport = reexport; + else + reexport_write_head->next = reexport; + reexport_write_head = reexport; + reexport->start = start; + reexport->end = end; + reexport->next = NULL; +} +void _addUnsafeGetter (const uint16_t* start, const uint16_t* end) { + Slice* unsafe_getter = (Slice*)(analysis_head); + analysis_head = analysis_head + sizeof(Slice); + if (unsafe_getter_write_head == NULL) + first_unsafe_getter = unsafe_getter; + else + unsafe_getter_write_head->next = unsafe_getter; + unsafe_getter_write_head = unsafe_getter; + unsafe_getter->start = start; + unsafe_getter->end = end; + unsafe_getter->next = NULL; +} +void _clearReexports () { + reexport_write_head = NULL; + first_reexport = NULL; +} +void (*addExport)(const uint16_t*, const uint16_t*) = &_addExport; +void (*addReexport)(const uint16_t*, const uint16_t*) = &_addReexport; +void (*addUnsafeGetter)(const uint16_t*, const uint16_t*) = &_addUnsafeGetter; +void (*clearReexports)() = &_clearReexports; +uint32_t parseCJS (uint16_t* source, uint32_t sourceLen, void (*addExport)(const uint16_t* start, const uint16_t* end), void (*addReexport)(const uint16_t* start, const uint16_t* end), void (*addUnsafeGetter)(const uint16_t*, const uint16_t*), void (*clearReexports)()); + +enum RequireType { + Import, + ExportAssign, + ExportStar +}; + +void tryBacktrackAddStarExportBinding (uint16_t* pos); +bool tryParseRequire (enum RequireType requireType); +void tryParseLiteralExports (); +bool readExportsOrModuleDotExports (uint16_t ch); +void tryParseModuleExportsDotAssign (); +void tryParseExportsDotAssign (bool assign); +void tryParseObjectDefineOrKeys (bool keys); +bool identifier (uint16_t ch); + +void throwIfImportStatement (); +void throwIfExportStatement (); + +void readImportString (const uint16_t* ss, uint16_t ch); +uint16_t readExportAs (uint16_t* startPos, uint16_t* endPos); + +uint16_t commentWhitespace (); +void stringLiteral (uint16_t quote); +void regularExpression (); +void templateString (); +void blockComment (); +void lineComment (); + +uint16_t readToWsOrPunctuator (uint16_t ch); + +uint32_t fullCharCode (uint16_t ch); +uint32_t fullCharCodeAtLast (uint16_t* pos); +bool isIdentifierStart (uint32_t code); +bool isIdentifierChar (uint32_t code); +int charCodeByteLen (uint32_t ch); + +bool isBr (uint16_t c); +bool isBrOrWs (uint16_t c); +bool isBrOrWsOrPunctuator (uint16_t c); +bool isBrOrWsOrPunctuatorNotDot (uint16_t c); + +bool str_eq2 (uint16_t* pos, uint16_t c1, uint16_t c2); +bool str_eq3 (uint16_t* pos, uint16_t c1, uint16_t c2, uint16_t c3); +bool str_eq4 (uint16_t* pos, uint16_t c1, uint16_t c2, uint16_t c3, uint16_t c4); +bool str_eq5 (uint16_t* pos, uint16_t c1, uint16_t c2, uint16_t c3, uint16_t c4, uint16_t c5); +bool str_eq6 (uint16_t* pos, uint16_t c1, uint16_t c2, uint16_t c3, uint16_t c4, uint16_t c5, uint16_t c6); +bool str_eq7 (uint16_t* pos, uint16_t c1, uint16_t c2, uint16_t c3, uint16_t c4, uint16_t c5, uint16_t c6, uint16_t c7); +bool str_eq8 (uint16_t* pos, uint16_t c1, uint16_t c2, uint16_t c3, uint16_t c4, uint16_t c5, uint16_t c6, uint16_t c7, uint16_t c8); +bool str_eq9 (uint16_t* pos, uint16_t c1, uint16_t c2, uint16_t c3, uint16_t c4, uint16_t c5, uint16_t c6, uint16_t c7, uint16_t c8, uint16_t c9); +bool str_eq10 (uint16_t* pos, uint16_t c1, uint16_t c2, uint16_t c3, uint16_t c4, uint16_t c5, uint16_t c6, uint16_t c7, uint16_t c8, uint16_t c9, uint16_t c10); +bool str_eq13 (uint16_t* pos, uint16_t c1, uint16_t c2, uint16_t c3, uint16_t c4, uint16_t c5, uint16_t c6, uint16_t c7, uint16_t c8, uint16_t c9, uint16_t c10, uint16_t c11, uint16_t c12, uint16_t c13); +bool str_eq18 (uint16_t* pos, uint16_t c1, uint16_t c2, uint16_t c3, uint16_t c4, uint16_t c5, uint16_t c6, uint16_t c7, uint16_t c8, uint16_t c9, uint16_t c10, uint16_t c11, uint16_t c12, uint16_t c13, uint16_t c14, uint16_t c15, uint16_t c16, uint16_t c17, uint16_t c18); +bool str_eq22 (uint16_t* pos, uint16_t c1, uint16_t c2, uint16_t c3, uint16_t c4, uint16_t c5, uint16_t c6, uint16_t c7, uint16_t c8, uint16_t c9, uint16_t c10, uint16_t c11, uint16_t c12, uint16_t c13, uint16_t c14, uint16_t c15, uint16_t c16, uint16_t c17, uint16_t c18, uint16_t c19, uint16_t c20, uint16_t c21, uint16_t c22); + +bool readPrecedingKeyword2(uint16_t* pos, uint16_t c1, uint16_t c2); +bool readPrecedingKeyword3(uint16_t* pos, uint16_t c1, uint16_t c2, uint16_t c3); +bool readPrecedingKeyword4(uint16_t* pos, uint16_t c1, uint16_t c2, uint16_t c3, uint16_t c4); +bool readPrecedingKeyword5(uint16_t* pos, uint16_t c1, uint16_t c2, uint16_t c3, uint16_t c4, uint16_t c5); +bool readPrecedingKeyword6(uint16_t* pos, uint16_t c1, uint16_t c2, uint16_t c3, uint16_t c4, uint16_t c5, uint16_t c6); +bool readPrecedingKeyword7(uint16_t* pos, uint16_t c1, uint16_t c2, uint16_t c3, uint16_t c4, uint16_t c5, uint16_t c6, uint16_t c7); + +bool keywordStart (uint16_t* pos); +bool isExpressionKeyword (uint16_t* pos); +bool isParenKeyword (uint16_t* pos); +bool isPunctuator (uint16_t charCode); +bool isExpressionPunctuator (uint16_t charCode); +bool isExpressionTerminator (uint16_t* pos); + +void nextChar (uint16_t ch); +void nextCharSurrogate (uint16_t ch); +uint16_t readChar (); + +void syntaxError (uint32_t code); diff --git a/deps/cjs-module-lexer/src/lexer.d.mts b/deps/cjs-module-lexer/src/lexer.d.mts new file mode 100644 index 00000000000000..98e01424641336 --- /dev/null +++ b/deps/cjs-module-lexer/src/lexer.d.mts @@ -0,0 +1 @@ +export * from './lexer.js' diff --git a/deps/cjs-module-lexer/lexer.d.ts b/deps/cjs-module-lexer/src/lexer.d.ts old mode 100644 new mode 100755 similarity index 96% rename from deps/cjs-module-lexer/lexer.d.ts rename to deps/cjs-module-lexer/src/lexer.d.ts index c7d8a523f36bc6..cda07d80af9d58 --- a/deps/cjs-module-lexer/lexer.d.ts +++ b/deps/cjs-module-lexer/src/lexer.d.ts @@ -1,8 +1,8 @@ -export interface Exports { - exports: string[]; - reexports: string[]; -} - -export declare function parse(source: string, name?: string): Exports; -export declare function init(): Promise; -export declare function initSync(): void; +export interface Exports { + exports: string[]; + reexports: string[]; +} + +export declare function parse(source: string, name?: string): Exports; +export declare function init(): Promise; +export declare function initSync(): void; diff --git a/deps/cjs-module-lexer/src/lexer.js b/deps/cjs-module-lexer/src/lexer.js new file mode 100755 index 00000000000000..aaf7dde807f98e --- /dev/null +++ b/deps/cjs-module-lexer/src/lexer.js @@ -0,0 +1,1443 @@ +let source, pos, end; +let openTokenDepth, + templateDepth, + lastTokenPos, + lastSlashWasDivision, + templateStack, + templateStackDepth, + openTokenPosStack, + openClassPosStack, + nextBraceIsClass, + starExportMap, + lastStarExportSpecifier, + _exports, + unsafeGetters, + reexports; + +function resetState () { + openTokenDepth = 0; + templateDepth = -1; + lastTokenPos = -1; + lastSlashWasDivision = false; + templateStack = new Array(1024); + templateStackDepth = 0; + openTokenPosStack = new Array(1024); + openClassPosStack = new Array(1024); + nextBraceIsClass = false; + starExportMap = Object.create(null); + lastStarExportSpecifier = null; + + _exports = new Set(); + unsafeGetters = new Set(); + reexports = new Set(); +} + +// RequireType +const Import = 0; +const ExportAssign = 1; +const ExportStar = 2; + +function parseCJS (source, name = '@') { + resetState(); + try { + parseSource(source); + } + catch (e) { + e.message += `\n at ${name}:${source.slice(0, pos).split('\n').length}:${pos - source.lastIndexOf('\n', pos - 1)}`; + e.loc = pos; + throw e; + } + const result = { exports: [..._exports].filter(expt => expt !== undefined && !unsafeGetters.has(expt)), reexports: [...reexports].filter(reexpt => reexpt !== undefined) }; + resetState(); + return result; +} + +function decode (str) { + if (str[0] === '"' || str[0] === '\'') { + try { + const decoded = (0, eval)(str); + // Filter to exclude non-matching UTF-16 surrogate strings + for (let i = 0; i < decoded.length; i++) { + const surrogatePrefix = decoded.charCodeAt(i) & 0xFC00; + if (surrogatePrefix < 0xD800) { + // Not a surrogate + continue; + } + else if (surrogatePrefix === 0xD800) { + // Validate surrogate pair + if ((decoded.charCodeAt(++i) & 0xFC00) !== 0xDC00) + return; + } + else { + // Out-of-range surrogate code (above 0xD800) + return; + } + } + return decoded; + } + catch {} + } + else { + return str; + } +} + +function parseSource (cjsSource) { + source = cjsSource; + pos = -1; + end = source.length - 1; + let ch = 0; + + // Handle #! + if (source.charCodeAt(0) === 35/*#*/ && source.charCodeAt(1) === 33/*!*/) { + if (source.length === 2) + return true; + pos += 2; + while (pos++ < end) { + ch = source.charCodeAt(pos); + if (ch === 10/*\n*/ || ch === 13/*\r*/) + break; + } + } + + while (pos++ < end) { + ch = source.charCodeAt(pos); + + if (ch === 32 || ch < 14 && ch > 8) + continue; + + if (openTokenDepth === 0) { + switch (ch) { + case 105/*i*/: + if (source.startsWith('mport', pos + 1) && keywordStart(pos)) + throwIfImportStatement(); + lastTokenPos = pos; + continue; + case 114/*r*/: + const startPos = pos; + if (tryParseRequire(Import) && keywordStart(startPos)) + tryBacktrackAddStarExportBinding(startPos - 1); + lastTokenPos = pos; + continue; + case 95/*_*/: + if (source.startsWith('interopRequireWildcard', pos + 1) && (keywordStart(pos) || source.charCodeAt(pos - 1) === 46/*.*/)) { + const startPos = pos; + pos += 23; + if (source.charCodeAt(pos) === 40/*(*/) { + pos++; + openTokenPosStack[openTokenDepth++] = lastTokenPos; + if (tryParseRequire(Import) && keywordStart(startPos)) { + tryBacktrackAddStarExportBinding(startPos - 1); + } + } + } + else if (source.startsWith('_export', pos + 1) && (keywordStart(pos) || source.charCodeAt(pos - 1) === 46/*.*/)) { + pos += 8; + if (source.startsWith('Star', pos)) + pos += 4; + if (source.charCodeAt(pos) === 40/*(*/) { + openTokenPosStack[openTokenDepth++] = lastTokenPos; + if (source.charCodeAt(++pos) === 114/*r*/) + tryParseRequire(ExportStar); + } + } + lastTokenPos = pos; + continue; + } + } + + switch (ch) { + case 101/*e*/: + if (source.startsWith('xport', pos + 1) && keywordStart(pos)) { + if (source.charCodeAt(pos + 6) === 115/*s*/) + tryParseExportsDotAssign(false); + else if (openTokenDepth === 0) + throwIfExportStatement(); + } + break; + case 99/*c*/: + if (keywordStart(pos) && source.startsWith('lass', pos + 1) && isBrOrWs(source.charCodeAt(pos + 5))) + nextBraceIsClass = true; + break; + case 109/*m*/: + if (source.startsWith('odule', pos + 1) && keywordStart(pos)) + tryParseModuleExportsDotAssign(); + break; + case 79/*O*/: + if (source.startsWith('bject', pos + 1) && keywordStart(pos)) + tryParseObjectDefineOrKeys(openTokenDepth === 0); + break; + case 40/*(*/: + openTokenPosStack[openTokenDepth++] = lastTokenPos; + break; + case 41/*)*/: + if (openTokenDepth === 0) + throw new Error('Unexpected closing bracket.'); + openTokenDepth--; + break; + case 123/*{*/: + openClassPosStack[openTokenDepth] = nextBraceIsClass; + nextBraceIsClass = false; + openTokenPosStack[openTokenDepth++] = lastTokenPos; + break; + case 125/*}*/: + if (openTokenDepth === 0) + throw new Error('Unexpected closing brace.'); + if (openTokenDepth-- === templateDepth) { + templateDepth = templateStack[--templateStackDepth]; + templateString(); + } + else { + if (templateDepth !== -1 && openTokenDepth < templateDepth) + throw new Error('Unexpected closing brace.'); + } + break; + case 60/*>*/: + // TODO: +[CVE-2024-13176]: https://www.openssl.org/news/vulnerabilities.html#CVE-2024-13176 +[CVE-2024-9143]: https://www.openssl.org/news/vulnerabilities.html#CVE-2024-9143 [CVE-2024-6119]: https://www.openssl.org/news/vulnerabilities.html#CVE-2024-6119 [CVE-2024-5535]: https://www.openssl.org/news/vulnerabilities.html#CVE-2024-5535 [CVE-2024-4741]: https://www.openssl.org/news/vulnerabilities.html#CVE-2024-4741 diff --git a/deps/openssl/openssl/Configurations/unix-Makefile.tmpl b/deps/openssl/openssl/Configurations/unix-Makefile.tmpl index 644540397de596..d2b0797a7edf9d 100644 --- a/deps/openssl/openssl/Configurations/unix-Makefile.tmpl +++ b/deps/openssl/openssl/Configurations/unix-Makefile.tmpl @@ -1688,7 +1688,7 @@ EOF } elsif ($makedep_scheme eq 'gcc' && !grep /\.rc$/, @srcs) { $recipe .= <<"EOF"; $obj: $deps - $cmd $incs $defs $cmdflags -MMD -MF $dep.tmp -MT \$\@ -c -o \$\@ $srcs + $cmd $incs $defs $cmdflags -MMD -MF $dep.tmp -c -o \$\@ $srcs \@touch $dep.tmp \@if cmp $dep.tmp $dep > /dev/null 2> /dev/null; then \\ rm -f $dep.tmp; \\ diff --git a/deps/openssl/openssl/Configure b/deps/openssl/openssl/Configure index 1aa660a46c4dc4..0c60d1da1659bd 100755 --- a/deps/openssl/openssl/Configure +++ b/deps/openssl/openssl/Configure @@ -467,7 +467,6 @@ my @disablables = ( "poly1305", "posix-io", "psk", - "quic", "rc2", "rc4", "rc5", @@ -578,7 +577,6 @@ my @disable_cascades = ( "sm3", "sm4", "srp", "srtp", "ssl3-method", "ssl-trace", "ts", "ui-console", "whirlpool", - "quic", "fips-securitychecks" ], sub { $config{processor} eq "386" } => [ "sse2" ], @@ -586,7 +584,7 @@ my @disable_cascades = ( "ssl3-method" => [ "ssl3" ], "zlib" => [ "zlib-dynamic" ], "des" => [ "mdc2" ], - "ec" => [ "ec2m", "ecdsa", "ecdh", "sm2", "gost", "quic" ], + "ec" => [ "ec2m", "ecdsa", "ecdh", "sm2", "gost" ], "dgram" => [ "dtls", "sctp" ], "sock" => [ "dgram" ], "dtls" => [ @dtls ], @@ -637,7 +635,6 @@ my @disable_cascades = ( "legacy" => [ "md2" ], "cmp" => [ "crmf" ], - "tls1_3" => [ "quic" ], "fips" => [ "fips-securitychecks", "acvp-tests" ], diff --git a/deps/openssl/openssl/INSTALL.md b/deps/openssl/openssl/INSTALL.md index 107a9b56e4c689..47d64b1a39d8e2 100644 --- a/deps/openssl/openssl/INSTALL.md +++ b/deps/openssl/openssl/INSTALL.md @@ -829,10 +829,6 @@ Don't use POSIX IO capabilities. Don't build support for Pre-Shared Key based ciphersuites. -### no-quic - -Don't build support for QUIC API from BoringSSL. - ### no-rdrand Don't use hardware RDRAND capabilities. diff --git a/deps/openssl/openssl/NEWS.md b/deps/openssl/openssl/NEWS.md index e0a81703ee8dc3..007fc9786ef810 100644 --- a/deps/openssl/openssl/NEWS.md +++ b/deps/openssl/openssl/NEWS.md @@ -18,6 +18,20 @@ OpenSSL Releases OpenSSL 3.0 ----------- +### Major changes between OpenSSL 3.0.15 and OpenSSL 3.0.16 [11 Feb 2025] + +OpenSSL 3.0.16 is a security patch release. The most severe CVE fixed in this +release is Low. + +This release incorporates the following bug fixes and mitigations: + + * Fixed timing side-channel in ECDSA signature computation. + ([CVE-2024-13176]) + + * Fixed possible OOB memory access with invalid low-level GF(2^m) elliptic + curve parameters. + ([CVE-2024-9143]) + ### Major changes between OpenSSL 3.0.14 and OpenSSL 3.0.15 [3 Sep 2024] OpenSSL 3.0.15 is a security patch release. The most severe CVE fixed in this @@ -1495,6 +1509,8 @@ OpenSSL 0.9.x +[CVE-2024-13176]: https://www.openssl.org/news/vulnerabilities.html#CVE-2024-13176 +[CVE-2024-9143]: https://www.openssl.org/news/vulnerabilities.html#CVE-2024-9143 [CVE-2024-6119]: https://www.openssl.org/news/vulnerabilities.html#CVE-2024-6119 [CVE-2024-5535]: https://www.openssl.org/news/vulnerabilities.html#CVE-2024-5535 [CVE-2024-4741]: https://www.openssl.org/news/vulnerabilities.html#CVE-2024-4741 diff --git a/deps/openssl/openssl/NOTES-NONSTOP.md b/deps/openssl/openssl/NOTES-NONSTOP.md index ab13de7d3a760a..9441647604c7bb 100644 --- a/deps/openssl/openssl/NOTES-NONSTOP.md +++ b/deps/openssl/openssl/NOTES-NONSTOP.md @@ -119,12 +119,9 @@ correctly, you also need the `COMP_ROOT` set, as in: `COMP_ROOT` needs to be in Windows form. -`Configure` must specify the `no-makedepend` option otherwise errors will -result when running the build because the c99 cross-compiler does not support -the `gcc -MT` option. An example of a `Configure` command to be run from the -OpenSSL directory is: +An example of a `Configure` command to be run from the OpenSSL directory is: - ./Configure nonstop-nsx_64 no-makedepend --with-rand-seed=rdcpu + ./Configure nonstop-nsx_64 --with-rand-seed=rdcpu Do not forget to include any OpenSSL cross-compiling prefix and certificate options when creating your libraries. diff --git a/deps/openssl/openssl/README-OpenSSL.md b/deps/openssl/openssl/README-OpenSSL.md deleted file mode 100644 index 5184a461bb17cd..00000000000000 --- a/deps/openssl/openssl/README-OpenSSL.md +++ /dev/null @@ -1,224 +0,0 @@ -Welcome to the OpenSSL Project -============================== - -[![openssl logo]][www.openssl.org] - -[![github actions ci badge]][github actions ci] -[![appveyor badge]][appveyor jobs] - -OpenSSL is a robust, commercial-grade, full-featured Open Source Toolkit -for the Transport Layer Security (TLS) protocol formerly known as the -Secure Sockets Layer (SSL) protocol. The protocol implementation is based -on a full-strength general purpose cryptographic library, which can also -be used stand-alone. - -OpenSSL is descended from the SSLeay library developed by Eric A. Young -and Tim J. Hudson. - -The official Home Page of the OpenSSL Project is [www.openssl.org]. - -Table of Contents -================= - - - [Overview](#overview) - - [Download](#download) - - [Build and Install](#build-and-install) - - [Documentation](#documentation) - - [License](#license) - - [Support](#support) - - [Contributing](#contributing) - - [Legalities](#legalities) - -Overview -======== - -The OpenSSL toolkit includes: - -- **libssl** - an implementation of all TLS protocol versions up to TLSv1.3 ([RFC 8446]). - -- **libcrypto** - a full-strength general purpose cryptographic library. It constitutes the - basis of the TLS implementation, but can also be used independently. - -- **openssl** - the OpenSSL command line tool, a swiss army knife for cryptographic tasks, - testing and analyzing. It can be used for - - creation of key parameters - - creation of X.509 certificates, CSRs and CRLs - - calculation of message digests - - encryption and decryption - - SSL/TLS client and server tests - - handling of S/MIME signed or encrypted mail - - and more... - -Download -======== - -For Production Use ------------------- - -Source code tarballs of the official releases can be downloaded from -[www.openssl.org/source](https://www.openssl.org/source). -The OpenSSL project does not distribute the toolkit in binary form. - -However, for a large variety of operating systems precompiled versions -of the OpenSSL toolkit are available. In particular on Linux and other -Unix operating systems it is normally recommended to link against the -precompiled shared libraries provided by the distributor or vendor. - -For Testing and Development ---------------------------- - -Although testing and development could in theory also be done using -the source tarballs, having a local copy of the git repository with -the entire project history gives you much more insight into the -code base. - -The official OpenSSL Git Repository is located at [git.openssl.org]. -There is a GitHub mirror of the repository at [github.com/openssl/openssl], -which is updated automatically from the former on every commit. - -A local copy of the Git Repository can be obtained by cloning it from -the original OpenSSL repository using - - git clone git://git.openssl.org/openssl.git - -or from the GitHub mirror using - - git clone https://github.com/openssl/openssl.git - -If you intend to contribute to OpenSSL, either to fix bugs or contribute -new features, you need to fork the OpenSSL repository openssl/openssl on -GitHub and clone your public fork instead. - - git clone https://github.com/yourname/openssl.git - -This is necessary, because all development of OpenSSL nowadays is done via -GitHub pull requests. For more details, see [Contributing](#contributing). - -Build and Install -================= - -After obtaining the Source, have a look at the [INSTALL](INSTALL.md) file for -detailed instructions about building and installing OpenSSL. For some -platforms, the installation instructions are amended by a platform specific -document. - - * [Notes for UNIX-like platforms](NOTES-UNIX.md) - * [Notes for Android platforms](NOTES-ANDROID.md) - * [Notes for Windows platforms](NOTES-WINDOWS.md) - * [Notes for the DOS platform with DJGPP](NOTES-DJGPP.md) - * [Notes for the OpenVMS platform](NOTES-VMS.md) - * [Notes on Perl](NOTES-PERL.md) - * [Notes on Valgrind](NOTES-VALGRIND.md) - -Specific notes on upgrading to OpenSSL 3.0 from previous versions can be found -in the [migration_guide(7ossl)] manual page. - -Documentation -============= - -Manual Pages ------------- - -The manual pages for the master branch and all current stable releases are -available online. - -- [OpenSSL master](https://www.openssl.org/docs/manmaster) -- [OpenSSL 3.0](https://www.openssl.org/docs/man3.0) -- [OpenSSL 1.1.1](https://www.openssl.org/docs/man1.1.1) - -Wiki ----- - -There is a Wiki at [wiki.openssl.org] which is currently not very active. -It contains a lot of useful information, not all of which is up to date. - -License -======= - -OpenSSL is licensed under the Apache License 2.0, which means that -you are free to get and use it for commercial and non-commercial -purposes as long as you fulfill its conditions. - -See the [LICENSE.txt](LICENSE.txt) file for more details. - -Support -======= - -There are various ways to get in touch. The correct channel depends on -your requirement. see the [SUPPORT](SUPPORT.md) file for more details. - -Contributing -============ - -If you are interested and willing to contribute to the OpenSSL project, -please take a look at the [CONTRIBUTING](CONTRIBUTING.md) file. - -Legalities -========== - -A number of nations restrict the use or export of cryptography. If you are -potentially subject to such restrictions you should seek legal advice before -attempting to develop or distribute cryptographic code. - -Copyright -========= - -Copyright (c) 1998-2024 The OpenSSL Project - -Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson - -All rights reserved. - - - -[www.openssl.org]: - - "OpenSSL Homepage" - -[git.openssl.org]: - - "OpenSSL Git Repository" - -[git.openssl.org]: - - "OpenSSL Git Repository" - -[github.com/openssl/openssl]: - - "OpenSSL GitHub Mirror" - -[wiki.openssl.org]: - - "OpenSSL Wiki" - -[migration_guide(7ossl)]: - - "OpenSSL Migration Guide" - -[RFC 8446]: - - - - -[openssl logo]: - doc/images/openssl.svg - "OpenSSL Logo" - -[github actions ci badge]: - - "GitHub Actions CI Status" - -[github actions ci]: - - "GitHub Actions CI" - -[appveyor badge]: - - "AppVeyor Build Status" - -[appveyor jobs]: - - "AppVeyor Jobs" diff --git a/deps/openssl/openssl/README.md b/deps/openssl/openssl/README.md index 702cc3979a1826..477f5cbb7d1273 100644 --- a/deps/openssl/openssl/README.md +++ b/deps/openssl/openssl/README.md @@ -1,113 +1,212 @@ -What This Is -============ +Welcome to the OpenSSL Project +============================== -This is a fork of [OpenSSL](https://www.openssl.org) to enable QUIC. In addition -to the website, the official source distribution is at -. The OpenSSL `README` can be found at -[README-OpenSSL.md](https://github.com/quictls/openssl/blob/openssl-3.0.15%2Bquic/README-OpenSSL.md) +[![openssl logo]][www.openssl.org] -This fork adds APIs that can be used by QUIC implementations for connection -handshakes. Quoting the IETF Working group -[charter](https://datatracker.ietf.org/wg/quic/about/), QUIC is a "UDP-based, -stream-multiplexing, encrypted transport protocol." If you don't need QUIC, you -should use the official OpenSSL distributions. +[![github actions ci badge]][github actions ci] +[![appveyor badge]][appveyor jobs] -The APIs here are used by Microsoft's -[MsQuic](https://github.com/microsoft/msquic) and Google's -[Chromium QUIC](https://chromium.googlesource.com/chromium/src/+/master/net/quic/) +OpenSSL is a robust, commercial-grade, full-featured Open Source Toolkit +for the Transport Layer Security (TLS) protocol formerly known as the +Secure Sockets Layer (SSL) protocol. The protocol implementation is based +on a full-strength general purpose cryptographic library, which can also +be used stand-alone. -We are not in competition with OpenSSL project. We informed them of -our plans to fork the code before we went public. We do not speak for the -OpenSSL project, and can only point to a -[blog post](https://www.openssl.org/blog/blog/2020/02/17/QUIC-and-OpenSSL/) and -[openssl-project email](https://github.com/quictls/openssl/discussions/54) -that provides their view of QUIC support. +OpenSSL is descended from the SSLeay library developed by Eric A. Young +and Tim J. Hudson. -As stated in their blog post, the OpenSSL team is focused on their 3.0 release -(released 2021-09-07), and does not intend to add QUIC functionality to 1.1.x. -There is a community need for a QUIC-capable TLS library. This fork is intended -as stopgap solution to enable higher level frameworks and runtimes to use QUIC -with the proven and reliable TLS functionality from OpenSSL. This fork will be -maintained until OpenSSL officially provides reasonable support for QUIC -implementations. +The official Home Page of the OpenSSL Project is [www.openssl.org]. -This fork can be considered a supported version of -[OpenSSL PR 8797](https://github.com/openssl/openssl/pull/8797). -We will endeavor to track OpenSSL releases within a day or so, and there is an -item below about how we'll follow their tagging. +Table of Contents +================= -On to the questions and answers. + - [Overview](#overview) + - [Download](#download) + - [Build and Install](#build-and-install) + - [Documentation](#documentation) + - [License](#license) + - [Support](#support) + - [Contributing](#contributing) + - [Legalities](#legalities) -What about branches? --------------------- +Overview +======== -We don't want to conflict with OpenSSL branch names. Our current plan is to append -`+quic`. Release tags are likely to be the QUIC branch with `-releaseX` appended. -For example, the OpenSSL tag `openssl-3.0.0` would have a branch named -`openssl-3.0.0+quic` and a release tag of `openssl-3.0.0+quic-release1`. +The OpenSSL toolkit includes: -How are you keeping current with OpenSSL? ------------------------------------------ +- **libssl** + an implementation of all TLS protocol versions up to TLSv1.3 ([RFC 8446]). -(In other words, "What about rebasing?") +- **libcrypto** + a full-strength general purpose cryptographic library. It constitutes the + basis of the TLS implementation, but can also be used independently. -Our plan is to always rebase on top of an upstream release tag. In particular: +- **openssl** + the OpenSSL command line tool, a swiss army knife for cryptographic tasks, + testing and analyzing. It can be used for + - creation of key parameters + - creation of X.509 certificates, CSRs and CRLs + - calculation of message digests + - encryption and decryption + - SSL/TLS client and server tests + - handling of S/MIME signed or encrypted mail + - and more... -- The changes for QUIC will always be at the tip of the branch -- you will know what - is from the original OpenSSL and what is for QUIC. -- New versions are quickly created once upstream creates a new tag. -- The use of git commands (such as `cherry`) can be used to ensure that all changes - have moved forward with minimal or no changes. You will be able to see - "QUIC: Add X" on all branches and the commit itself will be nearly identical on - all branches, and any changes to that can be easily identified. +Download +======== -What about library names? -------------------------- +For Production Use +------------------ -Library names will be the same, but will use a different version number. The version -numbers for the current OpenSSL libraries are `1.1` (for the 1.1.0 and 1.1.1 branches) -and `3` (for the 3.0 branch). We will be prefixing `81` (ASCII for 'Q') to -the version numbers to generate a unique version number. +Source code tarballs of the official releases can be downloaded from +[openssl-library.org/source/](https://openssl-library.org/source/). +The OpenSSL project does not distribute the toolkit in binary form. -- `libcrypto.so.81.3` vs `libcrypto.so.3` -- `libcrypto.so.81.1.1` vs `libcrypto.so.1.1` -- `libssl.so.81.3` vs `libssl.so.3` -- `libssl.so.81.1.1` vs `libssl.so.1.1` +However, for a large variety of operating systems precompiled versions +of the OpenSSL toolkit are available. In particular on Linux and other +Unix operating systems it is normally recommended to link against the +precompiled shared libraries provided by the distributor or vendor. -The SONAME of these libraries are all different, guaranteeing the correct library -will be used. +For Testing and Development +--------------------------- -...and the executable? ----------------------- +Although testing and development could in theory also be done using +the source tarballs, having a local copy of the git repository with +the entire project history gives you much more insight into the +code base. -We currently do not have any plans to change the name, mainly because we -haven't made any changes there. If you see a need, please open an issue. +The main OpenSSL Git repository is private. +There is a public GitHub mirror of it at [github.com/openssl/openssl], +which is updated automatically from the former on every commit. -The `openssl version` command will report that it is `+quic` enabled. +A local copy of the Git repository can be obtained by cloning it from +the GitHub mirror using -...and FIPS? ------------- + git clone https://github.com/openssl/openssl.git + +If you intend to contribute to OpenSSL, either to fix bugs or contribute +new features, you need to fork the GitHub mirror and clone your public fork +instead. + + git clone https://github.com/yourname/openssl.git + +This is necessary, because all development of OpenSSL nowadays is done via +GitHub pull requests. For more details, see [Contributing](#contributing). + +Build and Install +================= + +After obtaining the Source, have a look at the [INSTALL](INSTALL.md) file for +detailed instructions about building and installing OpenSSL. For some +platforms, the installation instructions are amended by a platform specific +document. + + * [Notes for UNIX-like platforms](NOTES-UNIX.md) + * [Notes for Android platforms](NOTES-ANDROID.md) + * [Notes for Windows platforms](NOTES-WINDOWS.md) + * [Notes for the DOS platform with DJGPP](NOTES-DJGPP.md) + * [Notes for the OpenVMS platform](NOTES-VMS.md) + * [Notes on Perl](NOTES-PERL.md) + * [Notes on Valgrind](NOTES-VALGRIND.md) + +Specific notes on upgrading to OpenSSL 3.0 from previous versions can be found +in the [migration_guide(7ossl)] manual page. + +Documentation +============= -We are not doing anything with FIPS. This is actually good news: you should -be able to load the OpenSSL 3.0 FIPS module into an application built against -this fork and everything should Just Work™. - -How can I contribute? ---------------------- - -We want any code here to be acceptable to OpenSSL. This means that all contributors -must have signed the appropriate -[contributor license agreements](https://www.openssl.org/policies/cla.html). We -will not ask for copies of any paperwork, you just need to tell us that you've -done so (and we might verify with OpenSSL). We are only interested in making it -easier and better for at least the mentioned QUIC implementations to use a variant -of OpenSSL. If you have a pull request that changes the TLS protocol, or adds -assembly support for a new CPU, or otherwise is not specific to enabling QUIC, -please contribute that to OpenSSL. This fork is intended to be a clean extension -to OpenSSL, with the deltas being specific to QUIC. - -Who are you? +Manual Pages ------------ -This is a collaborative effort between [Akamai](https://www.akamai.com) and -[Microsoft](https://www.microsoft.com). We welcome anyone to contribute! +The manual pages for the master branch and all current stable releases are +available online. + +- [OpenSSL master](https://www.openssl.org/docs/manmaster) +- [OpenSSL 3.0](https://www.openssl.org/docs/man3.0) +- [OpenSSL 1.1.1](https://www.openssl.org/docs/man1.1.1) + +Wiki +---- + +There is a Wiki at [wiki.openssl.org] which is currently not very active. +It contains a lot of useful information, not all of which is up to date. + +License +======= + +OpenSSL is licensed under the Apache License 2.0, which means that +you are free to get and use it for commercial and non-commercial +purposes as long as you fulfill its conditions. + +See the [LICENSE.txt](LICENSE.txt) file for more details. + +Support +======= + +There are various ways to get in touch. The correct channel depends on +your requirement. see the [SUPPORT](SUPPORT.md) file for more details. + +Contributing +============ + +If you are interested and willing to contribute to the OpenSSL project, +please take a look at the [CONTRIBUTING](CONTRIBUTING.md) file. + +Legalities +========== + +A number of nations restrict the use or export of cryptography. If you are +potentially subject to such restrictions you should seek legal advice before +attempting to develop or distribute cryptographic code. + +Copyright +========= + +Copyright (c) 1998-2025 The OpenSSL Project + +Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson + +All rights reserved. + + + +[www.openssl.org]: + + "OpenSSL Homepage" + +[github.com/openssl/openssl]: + + "OpenSSL GitHub Mirror" + +[wiki.openssl.org]: + + "OpenSSL Wiki" + +[migration_guide(7ossl)]: + + "OpenSSL Migration Guide" + +[RFC 8446]: + + + + +[openssl logo]: + doc/images/openssl.svg + "OpenSSL Logo" + +[github actions ci badge]: + + "GitHub Actions CI Status" + +[github actions ci]: + + "GitHub Actions CI" + +[appveyor badge]: + + "AppVeyor Build Status" + +[appveyor jobs]: + + "AppVeyor Jobs" diff --git a/deps/openssl/openssl/VERSION.dat b/deps/openssl/openssl/VERSION.dat index 9f3b18e8899778..4b7eb91a451a90 100644 --- a/deps/openssl/openssl/VERSION.dat +++ b/deps/openssl/openssl/VERSION.dat @@ -1,7 +1,7 @@ MAJOR=3 MINOR=0 -PATCH=15 +PATCH=16 PRE_RELEASE_TAG= -BUILD_METADATA=quic -RELEASE_DATE="3 Sep 2024" -SHLIB_VERSION=81.3 +BUILD_METADATA= +RELEASE_DATE="11 Feb 2025" +SHLIB_VERSION=3 diff --git a/deps/openssl/openssl/apps/asn1parse.c b/deps/openssl/openssl/apps/asn1parse.c index f0bfd1d45fc423..129b867c8cc744 100644 --- a/deps/openssl/openssl/apps/asn1parse.c +++ b/deps/openssl/openssl/apps/asn1parse.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -127,7 +127,8 @@ int asn1parse_main(int argc, char **argv) dump = strtol(opt_arg(), NULL, 0); break; case OPT_STRPARSE: - sk_OPENSSL_STRING_push(osk, opt_arg()); + if (sk_OPENSSL_STRING_push(osk, opt_arg()) <= 0) + goto end; break; case OPT_GENSTR: genstr = opt_arg(); diff --git a/deps/openssl/openssl/apps/cms.c b/deps/openssl/openssl/apps/cms.c index abb9f196a76090..dce227ef2db5ab 100644 --- a/deps/openssl/openssl/apps/cms.c +++ b/deps/openssl/openssl/apps/cms.c @@ -1,5 +1,5 @@ /* - * Copyright 2008-2024 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -494,13 +494,15 @@ int cms_main(int argc, char **argv) if (rr_from == NULL && (rr_from = sk_OPENSSL_STRING_new_null()) == NULL) goto end; - sk_OPENSSL_STRING_push(rr_from, opt_arg()); + if (sk_OPENSSL_STRING_push(rr_from, opt_arg()) <= 0) + goto end; break; case OPT_RR_TO: if (rr_to == NULL && (rr_to = sk_OPENSSL_STRING_new_null()) == NULL) goto end; - sk_OPENSSL_STRING_push(rr_to, opt_arg()); + if (sk_OPENSSL_STRING_push(rr_to, opt_arg()) <= 0) + goto end; break; case OPT_PRINT: noout = print = 1; @@ -577,13 +579,15 @@ int cms_main(int argc, char **argv) if (sksigners == NULL && (sksigners = sk_OPENSSL_STRING_new_null()) == NULL) goto end; - sk_OPENSSL_STRING_push(sksigners, signerfile); + if (sk_OPENSSL_STRING_push(sksigners, signerfile) <= 0) + goto end; if (keyfile == NULL) keyfile = signerfile; if (skkeys == NULL && (skkeys = sk_OPENSSL_STRING_new_null()) == NULL) goto end; - sk_OPENSSL_STRING_push(skkeys, keyfile); + if (sk_OPENSSL_STRING_push(skkeys, keyfile) <= 0) + goto end; keyfile = NULL; } signerfile = opt_arg(); @@ -601,12 +605,14 @@ int cms_main(int argc, char **argv) if (sksigners == NULL && (sksigners = sk_OPENSSL_STRING_new_null()) == NULL) goto end; - sk_OPENSSL_STRING_push(sksigners, signerfile); + if (sk_OPENSSL_STRING_push(sksigners, signerfile) <= 0) + goto end; signerfile = NULL; if (skkeys == NULL && (skkeys = sk_OPENSSL_STRING_new_null()) == NULL) goto end; - sk_OPENSSL_STRING_push(skkeys, keyfile); + if (sk_OPENSSL_STRING_push(skkeys, keyfile) <= 0) + goto end; } keyfile = opt_arg(); break; @@ -660,7 +666,8 @@ int cms_main(int argc, char **argv) key_param->next = nparam; key_param = nparam; } - sk_OPENSSL_STRING_push(key_param->param, opt_arg()); + if (sk_OPENSSL_STRING_push(key_param->param, opt_arg()) <= 0) + goto end; break; case OPT_V_CASES: if (!opt_verify(o, vpm)) @@ -749,12 +756,14 @@ int cms_main(int argc, char **argv) if (sksigners == NULL && (sksigners = sk_OPENSSL_STRING_new_null()) == NULL) goto end; - sk_OPENSSL_STRING_push(sksigners, signerfile); + if (sk_OPENSSL_STRING_push(sksigners, signerfile) <= 0) + goto end; if (skkeys == NULL && (skkeys = sk_OPENSSL_STRING_new_null()) == NULL) goto end; if (keyfile == NULL) keyfile = signerfile; - sk_OPENSSL_STRING_push(skkeys, keyfile); + if (sk_OPENSSL_STRING_push(skkeys, keyfile) <= 0) + goto end; } if (sksigners == NULL) { BIO_printf(bio_err, "No signer certificate specified\n"); @@ -1014,8 +1023,15 @@ int cms_main(int argc, char **argv) pwri_tmp = NULL; } if (!(flags & CMS_STREAM)) { - if (!CMS_final(cms, in, NULL, flags)) + if (!CMS_final(cms, in, NULL, flags)) { + if (originator != NULL + && ERR_GET_REASON(ERR_peek_error()) + == CMS_R_ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT) { + BIO_printf(bio_err, "Cannot use originator for encryption\n"); + goto end; + } goto end; + } } } else if (operation == SMIME_ENCRYPTED_ENCRYPT) { cms = CMS_EncryptedData_encrypt_ex(in, cipher, secret_key, @@ -1261,6 +1277,7 @@ int cms_main(int argc, char **argv) X509_free(cert); X509_free(recip); X509_free(signer); + X509_free(originator); EVP_PKEY_free(key); EVP_CIPHER_free(cipher); EVP_CIPHER_free(wrap_cipher); diff --git a/deps/openssl/openssl/apps/engine.c b/deps/openssl/openssl/apps/engine.c index 1b0f64309c6f97..c83bdfc150c388 100644 --- a/deps/openssl/openssl/apps/engine.c +++ b/deps/openssl/openssl/apps/engine.c @@ -1,5 +1,5 @@ /* - * Copyright 2000-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2000-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -352,10 +352,12 @@ int engine_main(int argc, char **argv) test_avail++; break; case OPT_PRE: - sk_OPENSSL_STRING_push(pre_cmds, opt_arg()); + if (sk_OPENSSL_STRING_push(pre_cmds, opt_arg()) <= 0) + goto end; break; case OPT_POST: - sk_OPENSSL_STRING_push(post_cmds, opt_arg()); + if (sk_OPENSSL_STRING_push(post_cmds, opt_arg()) <= 0) + goto end; break; } } diff --git a/deps/openssl/openssl/apps/info.c b/deps/openssl/openssl/apps/info.c index 66f3ef2587e2ef..c68603652f218b 100644 --- a/deps/openssl/openssl/apps/info.c +++ b/deps/openssl/openssl/apps/info.c @@ -10,15 +10,11 @@ #include #include "apps.h" #include "progs.h" -#include typedef enum OPTION_choice { OPT_COMMON, OPT_CONFIGDIR, OPT_ENGINESDIR, OPT_MODULESDIR, OPT_DSOEXT, OPT_DIRNAMESEP, OPT_LISTSEP, OPT_SEEDS, OPT_CPUSETTINGS -#ifndef OPENSSL_NO_QUIC - , OPT_QUIC -#endif } OPTION_CHOICE; const OPTIONS info_options[] = { @@ -36,9 +32,6 @@ const OPTIONS info_options[] = { {"listsep", OPT_LISTSEP, '-', "List separator character"}, {"seeds", OPT_SEEDS, '-', "Seed sources"}, {"cpusettings", OPT_CPUSETTINGS, '-', "CPU settings info"}, -#ifndef OPENSSL_NO_QUIC - {"quic", OPT_QUIC, '-', "QUIC info"}, -#endif {NULL} }; @@ -91,12 +84,6 @@ int info_main(int argc, char **argv) type = OPENSSL_INFO_CPU_SETTINGS; dirty++; break; -#ifndef OPENSSL_NO_QUIC - case OPT_QUIC: - type = OPENSSL_INFO_QUIC; - dirty++; - break; -#endif } } if (opt_num_rest() != 0) diff --git a/deps/openssl/openssl/apps/lib/http_server.c b/deps/openssl/openssl/apps/lib/http_server.c index a7fe5e1a58b0ab..33ae886d4a1cbe 100644 --- a/deps/openssl/openssl/apps/lib/http_server.c +++ b/deps/openssl/openssl/apps/lib/http_server.c @@ -220,14 +220,17 @@ BIO *http_server_init_bio(const char *prog, const char *port) { BIO *acbio = NULL, *bufbio; int asock; + char name[40]; + snprintf(name, sizeof(name), "[::]:%s", port); /* port may be "0" */ bufbio = BIO_new(BIO_f_buffer()); if (bufbio == NULL) goto err; acbio = BIO_new(BIO_s_accept()); if (acbio == NULL - || BIO_set_bind_mode(acbio, BIO_BIND_REUSEADDR) < 0 - || BIO_set_accept_port(acbio, port) < 0) { + || BIO_set_accept_ip_family(acbio, BIO_FAMILY_IPANY) <= 0 /* IPv4/6 */ + || BIO_set_bind_mode(acbio, BIO_BIND_REUSEADDR) <= 0 + || BIO_set_accept_name(acbio, name) <= 0) { log_message(prog, LOG_ERR, "Error setting up accept BIO"); goto err; } diff --git a/deps/openssl/openssl/apps/lib/s_cb.c b/deps/openssl/openssl/apps/lib/s_cb.c index 6440b496099e2d..9f33c24c4e352f 100644 --- a/deps/openssl/openssl/apps/lib/s_cb.c +++ b/deps/openssl/openssl/apps/lib/s_cb.c @@ -240,10 +240,10 @@ static const char *get_sigtype(int nid) return "ECDSA"; case NID_ED25519: - return "Ed25519"; + return "ed25519"; case NID_ED448: - return "Ed448"; + return "ed448"; case NID_id_GostR3410_2001: return "gost2001"; @@ -288,6 +288,26 @@ static int do_print_sigalgs(BIO *out, SSL *s, int shared) SSL_get_sigalgs(s, i, &sign_nid, &hash_nid, NULL, &rsign, &rhash); if (i) BIO_puts(out, ":"); + switch (rsign | rhash << 8) { + case 0x0809: + BIO_puts(out, "rsa_pss_pss_sha256"); + continue; + case 0x080a: + BIO_puts(out, "rsa_pss_pss_sha384"); + continue; + case 0x080b: + BIO_puts(out, "rsa_pss_pss_sha512"); + continue; + case 0x081a: + BIO_puts(out, "ecdsa_brainpoolP256r1_sha256"); + continue; + case 0x081b: + BIO_puts(out, "ecdsa_brainpoolP384r1_sha384"); + continue; + case 0x081c: + BIO_puts(out, "ecdsa_brainpoolP512r1_sha512"); + continue; + } sstr = get_sigtype(sign_nid); if (sstr) BIO_printf(out, "%s", sstr); diff --git a/deps/openssl/openssl/apps/lib/s_socket.c b/deps/openssl/openssl/apps/lib/s_socket.c index 059afe47b90491..8c6020d01692c7 100644 --- a/deps/openssl/openssl/apps/lib/s_socket.c +++ b/deps/openssl/openssl/apps/lib/s_socket.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -380,6 +380,12 @@ int do_server(int *accept_sock, const char *host, const char *port, BIO_closesocket(asock); break; } + + if (naccept != -1) + naccept--; + if (naccept == 0) + BIO_closesocket(asock); + BIO_set_tcp_ndelay(sock, 1); i = (*cb)(sock, type, protocol, context); @@ -410,11 +416,12 @@ int do_server(int *accept_sock, const char *host, const char *port, BIO_closesocket(sock); } else { + if (naccept != -1) + naccept--; + i = (*cb)(asock, type, protocol, context); } - if (naccept != -1) - naccept--; if (i < 0 || naccept == 0) { BIO_closesocket(asock); ret = i; diff --git a/deps/openssl/openssl/apps/lib/vms_term_sock.c b/deps/openssl/openssl/apps/lib/vms_term_sock.c index 97fb3943265c42..1a413376b20b44 100644 --- a/deps/openssl/openssl/apps/lib/vms_term_sock.c +++ b/deps/openssl/openssl/apps/lib/vms_term_sock.c @@ -353,7 +353,7 @@ static int CreateSocketPair (int SocketFamily, /* ** Get the binary (64-bit) time of the specified timeout value */ - sprintf (AscTimeBuff, "0 0:0:%02d.00", SOCKET_PAIR_TIMEOUT_VALUE); + BIO_snprintf(AscTimeBuff, sizeof(AscTimeBuff), "0 0:0:%02d.00", SOCKET_PAIR_TIMEOUT_VALUE); AscTimeDesc.dsc$w_length = strlen (AscTimeBuff); AscTimeDesc.dsc$a_pointer = AscTimeBuff; status = sys$bintim (&AscTimeDesc, BinTimeBuff); @@ -567,10 +567,10 @@ static void LogMessage (char *msg, ...) /* ** Format the message buffer */ - sprintf (MsgBuff, "%02d-%s-%04d %02d:%02d:%02d [%08X] %s\n", - LocTime->tm_mday, Month[LocTime->tm_mon], - (LocTime->tm_year + 1900), LocTime->tm_hour, LocTime->tm_min, - LocTime->tm_sec, pid, msg); + BIO_snprintf(MsgBuff, sizeof(MsgBuff), "%02d-%s-%04d %02d:%02d:%02d [%08X] %s\n", + LocTime->tm_mday, Month[LocTime->tm_mon], + (LocTime->tm_year + 1900), LocTime->tm_hour, LocTime->tm_min, + LocTime->tm_sec, pid, msg); /* ** Get any variable arguments and add them to the print of the message diff --git a/deps/openssl/openssl/apps/passwd.c b/deps/openssl/openssl/apps/passwd.c index 64b2e76c147ae4..31d8bdd87cb6d9 100644 --- a/deps/openssl/openssl/apps/passwd.c +++ b/deps/openssl/openssl/apps/passwd.c @@ -589,7 +589,8 @@ static char *shacrypt(const char *passwd, const char *magic, const char *salt) OPENSSL_strlcat(out_buf, ascii_dollar, sizeof(out_buf)); if (rounds_custom) { char tmp_buf[80]; /* "rounds=999999999" */ - sprintf(tmp_buf, "rounds=%u", rounds); + + BIO_snprintf(tmp_buf, sizeof(tmp_buf), "rounds=%u", rounds); #ifdef CHARSET_EBCDIC /* In case we're really on a ASCII based platform and just pretend */ if (tmp_buf[0] != 0x72) /* ASCII 'r' */ diff --git a/deps/openssl/openssl/apps/pkcs12.c b/deps/openssl/openssl/apps/pkcs12.c index ab78903ee9cdcf..5146699f1672a5 100644 --- a/deps/openssl/openssl/apps/pkcs12.c +++ b/deps/openssl/openssl/apps/pkcs12.c @@ -1,5 +1,5 @@ /* - * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -305,7 +305,8 @@ int pkcs12_main(int argc, char **argv) if (canames == NULL && (canames = sk_OPENSSL_STRING_new_null()) == NULL) goto end; - sk_OPENSSL_STRING_push(canames, opt_arg()); + if (sk_OPENSSL_STRING_push(canames, opt_arg()) <= 0) + goto end; break; case OPT_IN: infile = opt_arg(); diff --git a/deps/openssl/openssl/apps/pkeyutl.c b/deps/openssl/openssl/apps/pkeyutl.c index 3c9f9025a1609d..5e5047137632b6 100644 --- a/deps/openssl/openssl/apps/pkeyutl.c +++ b/deps/openssl/openssl/apps/pkeyutl.c @@ -81,10 +81,11 @@ const OPTIONS pkeyutl_options[] = { OPT_SECTION("Output"), {"out", OPT_OUT, '>', "Output file - default stdout"}, - {"asn1parse", OPT_ASN1PARSE, '-', "asn1parse the output data"}, + {"asn1parse", OPT_ASN1PARSE, '-', + "parse the output as ASN.1 data to check its DER encoding and print errors"}, {"hexdump", OPT_HEXDUMP, '-', "Hex dump output"}, {"verifyrecover", OPT_VERIFYRECOVER, '-', - "Verify with public key, recover original data"}, + "Verify RSA signature, recovering original signature input data"}, OPT_SECTION("Signing/Derivation"), {"digest", OPT_DIGEST, 's', diff --git a/deps/openssl/openssl/apps/rehash.c b/deps/openssl/openssl/apps/rehash.c index 85eee3857942dd..6e0ca3642c4027 100644 --- a/deps/openssl/openssl/apps/rehash.c +++ b/deps/openssl/openssl/apps/rehash.c @@ -559,6 +559,11 @@ int rehash_main(int argc, char **argv) } else if ((env = getenv(X509_get_default_cert_dir_env())) != NULL) { char lsc[2] = { LIST_SEPARATOR_CHAR, '\0' }; m = OPENSSL_strdup(env); + if (m == NULL) { + BIO_puts(bio_err, "out of memory\n"); + errs = 1; + goto end; + } for (e = strtok(m, lsc); e != NULL; e = strtok(NULL, lsc)) errs += do_dir(e, h); OPENSSL_free(m); diff --git a/deps/openssl/openssl/apps/smime.c b/deps/openssl/openssl/apps/smime.c index 651294e46daa92..790a8d06ad0c3d 100644 --- a/deps/openssl/openssl/apps/smime.c +++ b/deps/openssl/openssl/apps/smime.c @@ -1,5 +1,5 @@ /* - * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -279,13 +279,15 @@ int smime_main(int argc, char **argv) if (sksigners == NULL && (sksigners = sk_OPENSSL_STRING_new_null()) == NULL) goto end; - sk_OPENSSL_STRING_push(sksigners, signerfile); + if (sk_OPENSSL_STRING_push(sksigners, signerfile) <= 0) + goto end; if (keyfile == NULL) keyfile = signerfile; if (skkeys == NULL && (skkeys = sk_OPENSSL_STRING_new_null()) == NULL) goto end; - sk_OPENSSL_STRING_push(skkeys, keyfile); + if (sk_OPENSSL_STRING_push(skkeys, keyfile) <= 0) + goto end; keyfile = NULL; } signerfile = opt_arg(); @@ -310,12 +312,14 @@ int smime_main(int argc, char **argv) if (sksigners == NULL && (sksigners = sk_OPENSSL_STRING_new_null()) == NULL) goto end; - sk_OPENSSL_STRING_push(sksigners, signerfile); + if (sk_OPENSSL_STRING_push(sksigners, signerfile) <= 0) + goto end; signerfile = NULL; if (skkeys == NULL && (skkeys = sk_OPENSSL_STRING_new_null()) == NULL) goto end; - sk_OPENSSL_STRING_push(skkeys, keyfile); + if (sk_OPENSSL_STRING_push(skkeys, keyfile) <= 0) + goto end; } keyfile = opt_arg(); break; @@ -390,12 +394,14 @@ int smime_main(int argc, char **argv) if (sksigners == NULL && (sksigners = sk_OPENSSL_STRING_new_null()) == NULL) goto end; - sk_OPENSSL_STRING_push(sksigners, signerfile); + if (sk_OPENSSL_STRING_push(sksigners, signerfile) <= 0) + goto end; if (!skkeys && (skkeys = sk_OPENSSL_STRING_new_null()) == NULL) goto end; if (!keyfile) keyfile = signerfile; - sk_OPENSSL_STRING_push(skkeys, keyfile); + if (sk_OPENSSL_STRING_push(skkeys, keyfile) <= 0) + goto end; } if (sksigners == NULL) { BIO_printf(bio_err, "No signer certificate specified\n"); diff --git a/deps/openssl/openssl/apps/speed.c b/deps/openssl/openssl/apps/speed.c index d8e2c70e6128b5..bafcacf7775ef6 100644 --- a/deps/openssl/openssl/apps/speed.c +++ b/deps/openssl/openssl/apps/speed.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -456,6 +456,14 @@ static double sm2_results[SM2_NUM][2]; /* 2 ops: sign then verify */ #define COND(unused_cond) (run && count < INT_MAX) #define COUNT(d) (count) +#define TAG_LEN 16 + +static unsigned int mode_op; /* AE Mode of operation */ +static unsigned int aead = 0; /* AEAD flag */ +static unsigned char aead_iv[12]; /* For AEAD modes */ +static unsigned char aad[EVP_AEAD_TLS1_AAD_LEN] = { 0xcc }; +static int aead_ivlen = sizeof(aead_iv); + typedef struct loopargs_st { ASYNC_JOB *inprogress_job; ASYNC_WAIT_CTX *wait_ctx; @@ -464,6 +472,7 @@ typedef struct loopargs_st { unsigned char *buf_malloc; unsigned char *buf2_malloc; unsigned char *key; + unsigned char tag[TAG_LEN]; size_t buflen; size_t sigsize; EVP_PKEY_CTX *rsa_sign_ctx[RSA_NUM]; @@ -727,12 +736,8 @@ static int EVP_Update_loop(void *args) unsigned char *buf = tempargs->buf; EVP_CIPHER_CTX *ctx = tempargs->ctx; int outl, count, rc; - unsigned char faketag[16] = { 0xcc }; if (decrypt) { - if (EVP_CIPHER_get_flags(EVP_CIPHER_CTX_get0_cipher(ctx)) & EVP_CIPH_FLAG_AEAD_CIPHER) { - (void)EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_SET_TAG, sizeof(faketag), faketag); - } for (count = 0; COND(c[D_EVP][testnum]); count++) { rc = EVP_DecryptUpdate(ctx, buf, &outl, buf, lengths[testnum]); if (rc != 1) { @@ -757,74 +762,159 @@ static int EVP_Update_loop(void *args) } /* + * To make AEAD benchmarking more relevant perform TLS-like operations, + * 13-byte AAD followed by payload. But don't use TLS-formatted AAD, as + * payload length is not actually limited by 16KB... * CCM does not support streaming. For the purpose of performance measurement, * each message is encrypted using the same (key,iv)-pair. Do not use this * code in your application. */ -static int EVP_Update_loop_ccm(void *args) +static int EVP_Update_loop_aead_enc(void *args) { loopargs_t *tempargs = *(loopargs_t **) args; unsigned char *buf = tempargs->buf; + unsigned char *key = tempargs->key; EVP_CIPHER_CTX *ctx = tempargs->ctx; - int outl, count; - unsigned char tag[12]; - - if (decrypt) { - for (count = 0; COND(c[D_EVP][testnum]); count++) { - (void)EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_SET_TAG, sizeof(tag), - tag); - /* reset iv */ - (void)EVP_DecryptInit_ex(ctx, NULL, NULL, NULL, iv); - /* counter is reset on every update */ - (void)EVP_DecryptUpdate(ctx, buf, &outl, buf, lengths[testnum]); + int outl, count, realcount = 0; + + for (count = 0; COND(c[D_EVP][testnum]); count++) { + /* Set length of iv (Doesn't apply to SIV mode) */ + if (mode_op != EVP_CIPH_SIV_MODE) { + if (!EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_SET_IVLEN, + aead_ivlen, NULL)) { + BIO_printf(bio_err, "\nFailed to set iv length\n"); + ERR_print_errors(bio_err); + exit(1); + } } - } else { - for (count = 0; COND(c[D_EVP][testnum]); count++) { - /* restore iv length field */ - (void)EVP_EncryptUpdate(ctx, NULL, &outl, NULL, lengths[testnum]); - /* counter is reset on every update */ - (void)EVP_EncryptUpdate(ctx, buf, &outl, buf, lengths[testnum]); + /* Set tag_len (Not for GCM/SIV at encryption stage) */ + if (mode_op != EVP_CIPH_GCM_MODE + && mode_op != EVP_CIPH_SIV_MODE) { + if (!EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_SET_TAG, + TAG_LEN, NULL)) { + BIO_printf(bio_err, "\nFailed to set tag length\n"); + ERR_print_errors(bio_err); + exit(1); + } + } + if (!EVP_CipherInit_ex(ctx, NULL, NULL, key, aead_iv, -1)) { + BIO_printf(bio_err, "\nFailed to set key and iv\n"); + ERR_print_errors(bio_err); + exit(1); + } + /* Set total length of input. Only required for CCM */ + if (mode_op == EVP_CIPH_CCM_MODE) { + if (!EVP_EncryptUpdate(ctx, NULL, &outl, + NULL, lengths[testnum])) { + BIO_printf(bio_err, "\nCouldn't set input text length\n"); + ERR_print_errors(bio_err); + exit(1); + } } + if (aead) { + if (!EVP_EncryptUpdate(ctx, NULL, &outl, aad, sizeof(aad))) { + BIO_printf(bio_err, "\nCouldn't insert AAD when encrypting\n"); + ERR_print_errors(bio_err); + exit(1); + } + } + if (!EVP_EncryptUpdate(ctx, buf, &outl, buf, lengths[testnum])) { + BIO_printf(bio_err, "\nFailed to encrypt the data\n"); + ERR_print_errors(bio_err); + exit(1); + } + if (EVP_EncryptFinal_ex(ctx, buf, &outl)) + realcount++; } - if (decrypt) - (void)EVP_DecryptFinal_ex(ctx, buf, &outl); - else - (void)EVP_EncryptFinal_ex(ctx, buf, &outl); - return count; + return realcount; } /* * To make AEAD benchmarking more relevant perform TLS-like operations, * 13-byte AAD followed by payload. But don't use TLS-formatted AAD, as * payload length is not actually limited by 16KB... + * CCM does not support streaming. For the purpose of performance measurement, + * each message is decrypted using the same (key,iv)-pair. Do not use this + * code in your application. + * For decryption, we will use buf2 to preserve the input text in buf. */ -static int EVP_Update_loop_aead(void *args) +static int EVP_Update_loop_aead_dec(void *args) { loopargs_t *tempargs = *(loopargs_t **) args; unsigned char *buf = tempargs->buf; + unsigned char *outbuf = tempargs->buf2; + unsigned char *key = tempargs->key; + unsigned char tag[TAG_LEN]; EVP_CIPHER_CTX *ctx = tempargs->ctx; - int outl, count; - unsigned char aad[13] = { 0xcc }; - unsigned char faketag[16] = { 0xcc }; + int outl, count, realcount = 0; + + for (count = 0; COND(c[D_EVP][testnum]); count++) { + /* Set the length of iv (Doesn't apply to SIV mode) */ + if (mode_op != EVP_CIPH_SIV_MODE) { + if (!EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_SET_IVLEN, + aead_ivlen, NULL)) { + BIO_printf(bio_err, "\nFailed to set iv length\n"); + ERR_print_errors(bio_err); + exit(1); + } + } - if (decrypt) { - for (count = 0; COND(c[D_EVP][testnum]); count++) { - (void)EVP_DecryptInit_ex(ctx, NULL, NULL, NULL, iv); - (void)EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_SET_TAG, - sizeof(faketag), faketag); - (void)EVP_DecryptUpdate(ctx, NULL, &outl, aad, sizeof(aad)); - (void)EVP_DecryptUpdate(ctx, buf, &outl, buf, lengths[testnum]); - (void)EVP_DecryptFinal_ex(ctx, buf + outl, &outl); + /* Set the tag length (Doesn't apply to SIV mode) */ + if (mode_op != EVP_CIPH_SIV_MODE + && mode_op != EVP_CIPH_GCM_MODE) { + if (!EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_SET_TAG, + TAG_LEN, NULL)) { + BIO_printf(bio_err, "\nFailed to set tag length\n"); + ERR_print_errors(bio_err); + exit(1); + } } - } else { - for (count = 0; COND(c[D_EVP][testnum]); count++) { - (void)EVP_EncryptInit_ex(ctx, NULL, NULL, NULL, iv); - (void)EVP_EncryptUpdate(ctx, NULL, &outl, aad, sizeof(aad)); - (void)EVP_EncryptUpdate(ctx, buf, &outl, buf, lengths[testnum]); - (void)EVP_EncryptFinal_ex(ctx, buf + outl, &outl); + if (!EVP_CipherInit_ex(ctx, NULL, NULL, key, aead_iv, -1)) { + BIO_printf(bio_err, "\nFailed to set key and iv\n"); + ERR_print_errors(bio_err); + exit(1); + } + /* Set iv before decryption (Doesn't apply to SIV mode) */ + if (mode_op != EVP_CIPH_SIV_MODE) { + if (!EVP_DecryptInit_ex(ctx, NULL, NULL, NULL, aead_iv)) { + BIO_printf(bio_err, "\nFailed to set iv\n"); + ERR_print_errors(bio_err); + exit(1); + } + } + memcpy(tag, tempargs->tag, TAG_LEN); + + if (!EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_SET_TAG, + TAG_LEN, tag)) { + BIO_printf(bio_err, "\nFailed to set tag\n"); + ERR_print_errors(bio_err); + exit(1); + } + /* Set the total length of cipher text. Only required for CCM */ + if (mode_op == EVP_CIPH_CCM_MODE) { + if (!EVP_DecryptUpdate(ctx, NULL, &outl, + NULL, lengths[testnum])) { + BIO_printf(bio_err, "\nCouldn't set cipher text length\n"); + ERR_print_errors(bio_err); + exit(1); + } + } + if (aead) { + if (!EVP_DecryptUpdate(ctx, NULL, &outl, aad, sizeof(aad))) { + BIO_printf(bio_err, "\nCouldn't insert AAD when decrypting\n"); + ERR_print_errors(bio_err); + exit(1); + } + } + if (!EVP_DecryptUpdate(ctx, outbuf, &outl, buf, lengths[testnum])) { + BIO_printf(bio_err, "\nFailed to decrypt the data\n"); + ERR_print_errors(bio_err); + exit(1); } + if (EVP_DecryptFinal_ex(ctx, outbuf, &outl)) + realcount++; } - return count; + return realcount; } static long rsa_c[RSA_NUM][2]; /* # RSA iteration test */ @@ -1370,11 +1460,11 @@ int speed_main(int argc, char **argv) OPTION_CHOICE o; int async_init = 0, multiblock = 0, pr_header = 0; uint8_t doit[ALGOR_NUM] = { 0 }; - int ret = 1, misalign = 0, lengths_single = 0, aead = 0; + int ret = 1, misalign = 0, lengths_single = 0; long count = 0; unsigned int size_num = SIZE_NUM; unsigned int i, k, loopargs_len = 0, async_jobs = 0; - int keylen; + int keylen = 0; int buflen; BIGNUM *bn = NULL; EVP_PKEY_CTX *genctx = NULL; @@ -2001,15 +2091,14 @@ int speed_main(int argc, char **argv) if (doit[D_HMAC]) { static const char hmac_key[] = "This is a key..."; int len = strlen(hmac_key); + size_t hmac_name_len = sizeof("hmac()") + strlen(evp_mac_mdname); OSSL_PARAM params[3]; mac = EVP_MAC_fetch(app_get0_libctx(), "HMAC", app_get0_propq()); if (mac == NULL || evp_mac_mdname == NULL) goto end; - - evp_hmac_name = app_malloc(sizeof("hmac()") + strlen(evp_mac_mdname), - "HMAC name"); - sprintf(evp_hmac_name, "hmac(%s)", evp_mac_mdname); + evp_hmac_name = app_malloc(hmac_name_len, "HMAC name"); + BIO_snprintf(evp_hmac_name, hmac_name_len, "hmac(%s)", evp_mac_mdname); names[D_HMAC] = evp_hmac_name; params[0] = @@ -2213,12 +2302,20 @@ int speed_main(int argc, char **argv) } } + /*- + * There are three scenarios for D_EVP: + * 1- Using authenticated encryption (AE) e.g. CCM, GCM, OCB etc. + * 2- Using AE + associated data (AD) i.e. AEAD using CCM, GCM, OCB etc. + * 3- Not using AE or AD e.g. ECB, CBC, CFB etc. + */ if (doit[D_EVP]) { if (evp_cipher != NULL) { - int (*loopfunc) (void *) = EVP_Update_loop; + int (*loopfunc) (void *); + int outlen = 0; + unsigned int ae_mode = 0; - if (multiblock && (EVP_CIPHER_get_flags(evp_cipher) & - EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK)) { + if (multiblock && (EVP_CIPHER_get_flags(evp_cipher) + & EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK)) { multiblock_speed(evp_cipher, lengths_single, &seconds); ret = 0; goto end; @@ -2226,16 +2323,26 @@ int speed_main(int argc, char **argv) names[D_EVP] = EVP_CIPHER_get0_name(evp_cipher); - if (EVP_CIPHER_get_mode(evp_cipher) == EVP_CIPH_CCM_MODE) { - loopfunc = EVP_Update_loop_ccm; - } else if (aead && (EVP_CIPHER_get_flags(evp_cipher) & - EVP_CIPH_FLAG_AEAD_CIPHER)) { - loopfunc = EVP_Update_loop_aead; + mode_op = EVP_CIPHER_get_mode(evp_cipher); + + if (aead) { if (lengths == lengths_list) { lengths = aead_lengths_list; size_num = OSSL_NELEM(aead_lengths_list); } } + if (mode_op == EVP_CIPH_GCM_MODE + || mode_op == EVP_CIPH_CCM_MODE + || mode_op == EVP_CIPH_OCB_MODE + || mode_op == EVP_CIPH_SIV_MODE) { + ae_mode = 1; + if (decrypt) + loopfunc = EVP_Update_loop_aead_dec; + else + loopfunc = EVP_Update_loop_aead_enc; + } else { + loopfunc = EVP_Update_loop; + } for (testnum = 0; testnum < size_num; testnum++) { print_message(names[D_EVP], c[D_EVP][testnum], lengths[testnum], @@ -2247,37 +2354,144 @@ int speed_main(int argc, char **argv) BIO_printf(bio_err, "\nEVP_CIPHER_CTX_new failure\n"); exit(1); } - if (!EVP_CipherInit_ex(loopargs[k].ctx, evp_cipher, NULL, - NULL, iv, decrypt ? 0 : 1)) { - BIO_printf(bio_err, "\nEVP_CipherInit_ex failure\n"); + + /* + * For AE modes, we must first encrypt the data to get + * a valid tag that enables us to decrypt. If we don't + * encrypt first, we won't have a valid tag that enables + * authenticity and hence decryption will fail. + */ + if (!EVP_CipherInit_ex(loopargs[k].ctx, + evp_cipher, NULL, NULL, NULL, + ae_mode ? 1 : !decrypt)) { + BIO_printf(bio_err, "\nCouldn't init the context\n"); ERR_print_errors(bio_err); exit(1); } + /* Padding isn't needed */ EVP_CIPHER_CTX_set_padding(loopargs[k].ctx, 0); keylen = EVP_CIPHER_CTX_get_key_length(loopargs[k].ctx); loopargs[k].key = app_malloc(keylen, "evp_cipher key"); EVP_CIPHER_CTX_rand_key(loopargs[k].ctx, loopargs[k].key); - if (!EVP_CipherInit_ex(loopargs[k].ctx, NULL, NULL, - loopargs[k].key, NULL, -1)) { - BIO_printf(bio_err, "\nEVP_CipherInit_ex failure\n"); - ERR_print_errors(bio_err); - exit(1); - } - OPENSSL_clear_free(loopargs[k].key, keylen); - /* SIV mode only allows for a single Update operation */ - if (EVP_CIPHER_get_mode(evp_cipher) == EVP_CIPH_SIV_MODE) - (void)EVP_CIPHER_CTX_ctrl(loopargs[k].ctx, - EVP_CTRL_SET_SPEED, 1, NULL); + if (!ae_mode) { + if (!EVP_CipherInit_ex(loopargs[k].ctx, NULL, NULL, + loopargs[k].key, iv, -1)) { + BIO_printf(bio_err, "\nFailed to set the key\n"); + ERR_print_errors(bio_err); + exit(1); + } + } else if (mode_op == EVP_CIPH_SIV_MODE) { + EVP_CIPHER_CTX_ctrl(loopargs[k].ctx, + EVP_CTRL_SET_SPEED, 1, NULL); + } + if (ae_mode && decrypt) { + /* Set length of iv (Doesn't apply to SIV mode) */ + if (mode_op != EVP_CIPH_SIV_MODE) { + if (!EVP_CIPHER_CTX_ctrl(loopargs[k].ctx, + EVP_CTRL_AEAD_SET_IVLEN, + aead_ivlen, NULL)) { + BIO_printf(bio_err, "\nFailed to set iv length\n"); + ERR_print_errors(bio_err); + exit(1); + } + } + /* Set tag_len (Not for SIV at encryption stage) */ + if (mode_op != EVP_CIPH_GCM_MODE + && mode_op != EVP_CIPH_SIV_MODE) { + if (!EVP_CIPHER_CTX_ctrl(loopargs[k].ctx, + EVP_CTRL_AEAD_SET_TAG, + TAG_LEN, NULL)) { + BIO_printf(bio_err, + "\nFailed to set tag length\n"); + ERR_print_errors(bio_err); + exit(1); + } + } + if (!EVP_CipherInit_ex(loopargs[k].ctx, NULL, NULL, + loopargs[k].key, aead_iv, -1)) { + BIO_printf(bio_err, "\nFailed to set the key\n"); + ERR_print_errors(bio_err); + exit(1); + } + /* Set total length of input. Only required for CCM */ + if (mode_op == EVP_CIPH_CCM_MODE) { + if (!EVP_EncryptUpdate(loopargs[k].ctx, NULL, + &outlen, NULL, + lengths[testnum])) { + BIO_printf(bio_err, + "\nCouldn't set input text length\n"); + ERR_print_errors(bio_err); + exit(1); + } + } + if (aead) { + if (!EVP_EncryptUpdate(loopargs[k].ctx, NULL, + &outlen, aad, sizeof(aad))) { + BIO_printf(bio_err, + "\nCouldn't insert AAD when encrypting\n"); + ERR_print_errors(bio_err); + exit(1); + } + } + if (!EVP_EncryptUpdate(loopargs[k].ctx, loopargs[k].buf, + &outlen, loopargs[k].buf, + lengths[testnum])) { + BIO_printf(bio_err, + "\nFailed to to encrypt the data\n"); + ERR_print_errors(bio_err); + exit(1); + } + + if (!EVP_EncryptFinal_ex(loopargs[k].ctx, + loopargs[k].buf, &outlen)) { + BIO_printf(bio_err, + "\nFailed finalize the encryption\n"); + ERR_print_errors(bio_err); + exit(1); + } + + if (!EVP_CIPHER_CTX_ctrl(loopargs[k].ctx, + EVP_CTRL_AEAD_GET_TAG, + TAG_LEN, &loopargs[k].tag)) { + BIO_printf(bio_err, "\nFailed to get the tag\n"); + ERR_print_errors(bio_err); + exit(1); + } + + EVP_CIPHER_CTX_free(loopargs[k].ctx); + loopargs[k].ctx = EVP_CIPHER_CTX_new(); + if (loopargs[k].ctx == NULL) { + BIO_printf(bio_err, + "\nEVP_CIPHER_CTX_new failure\n"); + exit(1); + } + if (!EVP_CipherInit_ex(loopargs[k].ctx, evp_cipher, + NULL, NULL, NULL, 0)) { + BIO_printf(bio_err, + "\nFailed initializing the context\n"); + ERR_print_errors(bio_err); + exit(1); + } + + EVP_CIPHER_CTX_set_padding(loopargs[k].ctx, 0); + + /* SIV only allows for one Update operation */ + if (mode_op == EVP_CIPH_SIV_MODE) + EVP_CIPHER_CTX_ctrl(loopargs[k].ctx, + EVP_CTRL_SET_SPEED, 1, NULL); + } } Time_F(START); count = run_benchmark(async_jobs, loopfunc, loopargs); d = Time_F(STOP); - for (k = 0; k < loopargs_len; k++) + for (k = 0; k < loopargs_len; k++) { + OPENSSL_clear_free(loopargs[k].key, keylen); EVP_CIPHER_CTX_free(loopargs[k].ctx); + } print_result(D_EVP, testnum, count, d); } } else if (evp_md_name != NULL) { @@ -2297,6 +2511,7 @@ int speed_main(int argc, char **argv) } if (doit[D_EVP_CMAC]) { + size_t len = sizeof("cmac()") + strlen(evp_mac_ciphername); OSSL_PARAM params[3]; EVP_CIPHER *cipher = NULL; @@ -2312,9 +2527,8 @@ int speed_main(int argc, char **argv) BIO_printf(bio_err, "\nRequested CMAC cipher with unsupported key length.\n"); goto end; } - evp_cmac_name = app_malloc(sizeof("cmac()") - + strlen(evp_mac_ciphername), "CMAC name"); - sprintf(evp_cmac_name, "cmac(%s)", evp_mac_ciphername); + evp_cmac_name = app_malloc(len, "CMAC name"); + BIO_snprintf(evp_cmac_name, len, "cmac(%s)", evp_mac_ciphername); names[D_EVP_CMAC] = evp_cmac_name; params[0] = OSSL_PARAM_construct_utf8_string(OSSL_ALG_PARAM_CIPHER, @@ -3675,7 +3889,6 @@ static void multiblock_speed(const EVP_CIPHER *evp_cipher, int lengths_single, print_message(alg_name, 0, mblengths[j], seconds->sym); Time_F(START); for (count = 0; run && count < INT_MAX; count++) { - unsigned char aad[EVP_AEAD_TLS1_AAD_LEN]; EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM mb_param; size_t len = mblengths[j]; int packlen; diff --git a/deps/openssl/openssl/configdata.pm.in b/deps/openssl/openssl/configdata.pm.in index 04b901144f4779..a4ae907299953f 100644 --- a/deps/openssl/openssl/configdata.pm.in +++ b/deps/openssl/openssl/configdata.pm.in @@ -145,7 +145,7 @@ _____ # defined in one template stick around for the # next, making them combinable PACKAGE => 'OpenSSL::safe') - or die $Text::Template::ERROR; + or die $OpenSSL::Template::ERROR; close BUILDFILE; rename("$buildfile.new", $buildfile) or die "Trying to rename $buildfile.new to $buildfile: $!"; @@ -167,7 +167,7 @@ _____ # defined in one template stick around for the # next, making them combinable PACKAGE => 'OpenSSL::safe') - or die $Text::Template::ERROR; + or die $OpenSSL::Template::ERROR; close CONFIGURATION_H; # When using stat() on Windows, we can get it to perform better by diff --git a/deps/openssl/openssl/crypto/asn1/a_bitstr.c b/deps/openssl/openssl/crypto/asn1/a_bitstr.c index 4930d5022ee393..549c0e88554978 100644 --- a/deps/openssl/openssl/crypto/asn1/a_bitstr.c +++ b/deps/openssl/openssl/crypto/asn1/a_bitstr.c @@ -36,25 +36,30 @@ int ossl_i2c_ASN1_BIT_STRING(ASN1_BIT_STRING *a, unsigned char **pp) if (a->data[len - 1]) break; } - j = a->data[len - 1]; - if (j & 0x01) + + if (len == 0) { bits = 0; - else if (j & 0x02) - bits = 1; - else if (j & 0x04) - bits = 2; - else if (j & 0x08) - bits = 3; - else if (j & 0x10) - bits = 4; - else if (j & 0x20) - bits = 5; - else if (j & 0x40) - bits = 6; - else if (j & 0x80) - bits = 7; - else - bits = 0; /* should not happen */ + } else { + j = a->data[len - 1]; + if (j & 0x01) + bits = 0; + else if (j & 0x02) + bits = 1; + else if (j & 0x04) + bits = 2; + else if (j & 0x08) + bits = 3; + else if (j & 0x10) + bits = 4; + else if (j & 0x20) + bits = 5; + else if (j & 0x40) + bits = 6; + else if (j & 0x80) + bits = 7; + else + bits = 0; /* should not happen */ + } } } else bits = 0; diff --git a/deps/openssl/openssl/crypto/asn1/a_strnid.c b/deps/openssl/openssl/crypto/asn1/a_strnid.c index d052935661d362..20cfabc8a7a41c 100644 --- a/deps/openssl/openssl/crypto/asn1/a_strnid.c +++ b/deps/openssl/openssl/crypto/asn1/a_strnid.c @@ -1,5 +1,5 @@ /* - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,10 +39,10 @@ unsigned long ASN1_STRING_get_default_mask(void) * This function sets the default to various "flavours" of configuration. * based on an ASCII string. Currently this is: * MASK:XXXX : a numerical mask value. - * nobmp : Don't use BMPStrings (just Printable, T61). - * pkix : PKIX recommendation in RFC2459. - * utf8only : only use UTF8Strings (RFC2459 recommendation for 2004). - * default: the default value, Printable, T61, BMP. + * default : use Printable, IA5, T61, BMP, and UTF8 string types + * nombstr : any string type except variable-sized BMPStrings or UTF8Strings + * pkix : PKIX recommendation in RFC2459 + * utf8only : this is the default, use UTF8Strings */ int ASN1_STRING_set_default_mask_asc(const char *p) diff --git a/deps/openssl/openssl/crypto/asn1/a_time.c b/deps/openssl/openssl/crypto/asn1/a_time.c index 9b3074e47e84a5..5ef6d0d1cd1c64 100644 --- a/deps/openssl/openssl/crypto/asn1/a_time.c +++ b/deps/openssl/openssl/crypto/asn1/a_time.c @@ -1,5 +1,5 @@ /* - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -488,9 +488,9 @@ int ASN1_TIME_print_ex(BIO *bp, const ASN1_TIME *tm, unsigned long flags) int ossl_asn1_time_print_ex(BIO *bp, const ASN1_TIME *tm, unsigned long flags) { char *v; - int gmt = 0, l; + int l; struct tm stm; - const char upper_z = 0x5A, period = 0x2E; + const char period = 0x2E; /* ossl_asn1_time_to_tm will check the time type */ if (!ossl_asn1_time_to_tm(&stm, tm)) @@ -498,8 +498,6 @@ int ossl_asn1_time_print_ex(BIO *bp, const ASN1_TIME *tm, unsigned long flags) l = tm->length; v = (char *)tm->data; - if (v[l - 1] == upper_z) - gmt = 1; if (tm->type == V_ASN1_GENERALIZEDTIME) { char *f = NULL; @@ -510,39 +508,36 @@ int ossl_asn1_time_print_ex(BIO *bp, const ASN1_TIME *tm, unsigned long flags) * 'fraction point' in a GeneralizedTime string. */ if (tm->length > 15 && v[14] == period) { - f = &v[14]; - f_len = 1; - while (14 + f_len < l && ossl_ascii_isdigit(f[f_len])) + /* exclude the . itself */ + f = &v[15]; + f_len = 0; + while (15 + f_len < l && ossl_ascii_isdigit(f[f_len])) ++f_len; } - if ((flags & ASN1_DTFLGS_TYPE_MASK) == ASN1_DTFLGS_ISO8601) { - return BIO_printf(bp, "%4d-%02d-%02d %02d:%02d:%02d%.*s%s", - stm.tm_year + 1900, stm.tm_mon + 1, - stm.tm_mday, stm.tm_hour, - stm.tm_min, stm.tm_sec, f_len, f, - (gmt ? "Z" : "")) > 0; - } - else { - return BIO_printf(bp, "%s %2d %02d:%02d:%02d%.*s %d%s", - _asn1_mon[stm.tm_mon], stm.tm_mday, stm.tm_hour, - stm.tm_min, stm.tm_sec, f_len, f, stm.tm_year + 1900, - (gmt ? " GMT" : "")) > 0; + if (f_len > 0) { + if ((flags & ASN1_DTFLGS_TYPE_MASK) == ASN1_DTFLGS_ISO8601) { + return BIO_printf(bp, "%4d-%02d-%02d %02d:%02d:%02d.%.*sZ", + stm.tm_year + 1900, stm.tm_mon + 1, + stm.tm_mday, stm.tm_hour, + stm.tm_min, stm.tm_sec, f_len, f) > 0; + } else { + return BIO_printf(bp, "%s %2d %02d:%02d:%02d.%.*s %d GMT", + _asn1_mon[stm.tm_mon], stm.tm_mday, stm.tm_hour, + stm.tm_min, stm.tm_sec, f_len, f, + stm.tm_year + 1900) > 0; + } } - } else { - if ((flags & ASN1_DTFLGS_TYPE_MASK) == ASN1_DTFLGS_ISO8601) { - return BIO_printf(bp, "%4d-%02d-%02d %02d:%02d:%02d%s", + } + if ((flags & ASN1_DTFLGS_TYPE_MASK) == ASN1_DTFLGS_ISO8601) { + return BIO_printf(bp, "%4d-%02d-%02d %02d:%02d:%02dZ", stm.tm_year + 1900, stm.tm_mon + 1, stm.tm_mday, stm.tm_hour, - stm.tm_min, stm.tm_sec, - (gmt ? "Z" : "")) > 0; - } - else { - return BIO_printf(bp, "%s %2d %02d:%02d:%02d %d%s", + stm.tm_min, stm.tm_sec) > 0; + } else { + return BIO_printf(bp, "%s %2d %02d:%02d:%02d %d GMT", _asn1_mon[stm.tm_mon], stm.tm_mday, stm.tm_hour, - stm.tm_min, stm.tm_sec, stm.tm_year + 1900, - (gmt ? " GMT" : "")) > 0; - } + stm.tm_min, stm.tm_sec, stm.tm_year + 1900) > 0; } } diff --git a/deps/openssl/openssl/crypto/asn1/asn1_gen.c b/deps/openssl/openssl/crypto/asn1/asn1_gen.c index 402ab34e6a46f7..152dc870a5580b 100644 --- a/deps/openssl/openssl/crypto/asn1/asn1_gen.c +++ b/deps/openssl/openssl/crypto/asn1/asn1_gen.c @@ -1,5 +1,5 @@ /* - * Copyright 2002-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2002-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -498,7 +498,8 @@ static int append_exp(tag_exp_arg *arg, int exp_tag, int exp_class, static int asn1_str2tag(const char *tagstr, int len) { unsigned int i; - static const struct tag_name_st *tntmp, tnst[] = { + const struct tag_name_st *tntmp; + static const struct tag_name_st tnst[] = { ASN1_GEN_STR("BOOL", V_ASN1_BOOLEAN), ASN1_GEN_STR("BOOLEAN", V_ASN1_BOOLEAN), ASN1_GEN_STR("NULL", V_ASN1_NULL), diff --git a/deps/openssl/openssl/crypto/asn1/asn_mime.c b/deps/openssl/openssl/crypto/asn1/asn_mime.c index 9fc52d0476264a..8bb7089292d0f3 100644 --- a/deps/openssl/openssl/crypto/asn1/asn_mime.c +++ b/deps/openssl/openssl/crypto/asn1/asn_mime.c @@ -300,6 +300,8 @@ int SMIME_write_ASN1_ex(BIO *bio, ASN1_VALUE *val, BIO *data, int flags, if (ctype_nid == NID_pkcs7_enveloped) { msg_type = "enveloped-data"; + } else if (ctype_nid == NID_id_smime_ct_authEnvelopedData) { + msg_type = "authEnveloped-data"; } else if (ctype_nid == NID_pkcs7_signed) { if (econt_nid == NID_id_smime_ct_receipt) msg_type = "signed-receipt"; diff --git a/deps/openssl/openssl/crypto/bio/bio_addr.c b/deps/openssl/openssl/crypto/bio/bio_addr.c index 04d62f45b198ef..d462f424d3a406 100644 --- a/deps/openssl/openssl/crypto/bio/bio_addr.c +++ b/deps/openssl/openssl/crypto/bio/bio_addr.c @@ -1,5 +1,5 @@ /* - * Copyright 2016-2024 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -547,8 +547,13 @@ int BIO_parse_hostserv(const char *hostserv, char **host, char **service, *service = NULL; } else { *service = OPENSSL_strndup(p, pl); - if (*service == NULL) + if (*service == NULL) { + if (h != NULL && host != NULL) { + OPENSSL_free(*host); + *host = NULL; + } goto memerr; + } } } diff --git a/deps/openssl/openssl/crypto/bio/bio_sock.c b/deps/openssl/openssl/crypto/bio/bio_sock.c index 12e6a68e3a25d8..84496de6f6bda4 100644 --- a/deps/openssl/openssl/crypto/bio/bio_sock.c +++ b/deps/openssl/openssl/crypto/bio/bio_sock.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -222,7 +222,7 @@ int BIO_get_accept_socket(char *host, int bind_mode) return INVALID_SOCKET; if (BIO_sock_init() != 1) - return INVALID_SOCKET; + goto err; if (BIO_lookup(h, p, BIO_LOOKUP_SERVER, AF_UNSPEC, SOCK_STREAM, &res) != 0) goto err; diff --git a/deps/openssl/openssl/crypto/bio/bss_log.c b/deps/openssl/openssl/crypto/bio/bss_log.c index 82abfd5cec6305..63b30e300fec49 100644 --- a/deps/openssl/openssl/crypto/bio/bss_log.c +++ b/deps/openssl/openssl/crypto/bio/bss_log.c @@ -281,7 +281,7 @@ static void xsyslog(BIO *bp, int priority, const char *string) break; } - sprintf(pidbuf, "[%lu] ", GetCurrentProcessId()); + BIO_snprintf(pidbuf, sizeof(pidbuf), "[%lu] ", GetCurrentProcessId()); lpszStrings[0] = pidbuf; lpszStrings[1] = string; diff --git a/deps/openssl/openssl/crypto/bn/asm/armv8-mont.pl b/deps/openssl/openssl/crypto/bn/asm/armv8-mont.pl index 54d2e8245f15a8..3192eab3092a7b 100755 --- a/deps/openssl/openssl/crypto/bn/asm/armv8-mont.pl +++ b/deps/openssl/openssl/crypto/bn/asm/armv8-mont.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2015-2021 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2015-2025 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the Apache License 2.0 (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -84,10 +84,12 @@ cmp $num,#32 b.le .Lscalar_impl #ifndef __KERNEL__ +#ifndef __AARCH64EB__ adrp x17,OPENSSL_armv8_rsa_neonized ldr w17,[x17,#:lo12:OPENSSL_armv8_rsa_neonized] cbnz w17, bn_mul8x_mont_neon #endif +#endif .Lscalar_impl: tst $num,#7 diff --git a/deps/openssl/openssl/crypto/bn/bn_exp.c b/deps/openssl/openssl/crypto/bn/bn_exp.c index 598a592ca13972..0e563ad823c728 100644 --- a/deps/openssl/openssl/crypto/bn/bn_exp.c +++ b/deps/openssl/openssl/crypto/bn/bn_exp.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -606,7 +606,7 @@ static int MOD_EXP_CTIME_COPY_FROM_PREBUF(BIGNUM *b, int top, * out by Colin Percival, * http://www.daemonology.net/hyperthreading-considered-harmful/) */ -int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, +int bn_mod_exp_mont_fixed_top(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *in_mont) { @@ -623,10 +623,6 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, unsigned int t4 = 0; #endif - bn_check_top(a); - bn_check_top(p); - bn_check_top(m); - if (!BN_is_odd(m)) { ERR_raise(ERR_LIB_BN, BN_R_CALLED_WITH_EVEN_MODULUS); return 0; @@ -1146,7 +1142,7 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, goto err; } else #endif - if (!BN_from_montgomery(rr, &tmp, mont, ctx)) + if (!bn_from_mont_fixed_top(rr, &tmp, mont, ctx)) goto err; ret = 1; err: @@ -1160,6 +1156,19 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, return ret; } +int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx, + BN_MONT_CTX *in_mont) +{ + bn_check_top(a); + bn_check_top(p); + bn_check_top(m); + if (!bn_mod_exp_mont_fixed_top(rr, a, p, m, ctx, in_mont)) + return 0; + bn_correct_top(rr); + return 1; +} + int BN_mod_exp_mont_word(BIGNUM *rr, BN_ULONG a, const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *in_mont) { diff --git a/deps/openssl/openssl/crypto/bn/bn_gf2m.c b/deps/openssl/openssl/crypto/bn/bn_gf2m.c index c811ae82d6b15a..bcc66613cc14d7 100644 --- a/deps/openssl/openssl/crypto/bn/bn_gf2m.c +++ b/deps/openssl/openssl/crypto/bn/bn_gf2m.c @@ -15,6 +15,7 @@ #include "bn_local.h" #ifndef OPENSSL_NO_EC2M +# include /* * Maximum number of iterations before BN_GF2m_mod_solve_quad_arr should @@ -1140,16 +1141,26 @@ int BN_GF2m_mod_solve_quad(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, /* * Convert the bit-string representation of a polynomial ( \sum_{i=0}^n a_i * * x^i) into an array of integers corresponding to the bits with non-zero - * coefficient. Array is terminated with -1. Up to max elements of the array - * will be filled. Return value is total number of array elements that would - * be filled if array was large enough. + * coefficient. The array is intended to be suitable for use with + * `BN_GF2m_mod_arr()`, and so the constant term of the polynomial must not be + * zero. This translates to a requirement that the input BIGNUM `a` is odd. + * + * Given sufficient room, the array is terminated with -1. Up to max elements + * of the array will be filled. + * + * The return value is total number of array elements that would be filled if + * array was large enough, including the terminating `-1`. It is `0` when `a` + * is not odd or the constant term is zero contrary to requirement. + * + * The return value is also `0` when the leading exponent exceeds + * `OPENSSL_ECC_MAX_FIELD_BITS`, this guards against CPU exhaustion attacks, */ int BN_GF2m_poly2arr(const BIGNUM *a, int p[], int max) { int i, j, k = 0; BN_ULONG mask; - if (BN_is_zero(a)) + if (!BN_is_odd(a)) return 0; for (i = a->top - 1; i >= 0; i--) { @@ -1167,12 +1178,13 @@ int BN_GF2m_poly2arr(const BIGNUM *a, int p[], int max) } } - if (k < max) { + if (k > 0 && p[0] > OPENSSL_ECC_MAX_FIELD_BITS) + return 0; + + if (k < max) p[k] = -1; - k++; - } - return k; + return k + 1; } /* diff --git a/deps/openssl/openssl/crypto/bn/rsaz_exp_x2.c b/deps/openssl/openssl/crypto/bn/rsaz_exp_x2.c index b19050dfee8c86..4a2a6752f672ed 100644 --- a/deps/openssl/openssl/crypto/bn/rsaz_exp_x2.c +++ b/deps/openssl/openssl/crypto/bn/rsaz_exp_x2.c @@ -1,5 +1,5 @@ /* - * Copyright 2020-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2020, Intel Corporation. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -495,11 +495,7 @@ static void to_words52(BN_ULONG *out, int out_len, out_len--; } - while (out_len > 0) { - *out = 0; - out_len--; - out++; - } + memset(out, 0, out_len * sizeof(BN_ULONG)); } static ossl_inline void put_digit52(uint8_t *pStr, int strLen, uint64_t digit) diff --git a/deps/openssl/openssl/crypto/cmp/cmp_client.c b/deps/openssl/openssl/crypto/cmp/cmp_client.c index df334cc0019822..4c8dbfdcd739ad 100644 --- a/deps/openssl/openssl/crypto/cmp/cmp_client.c +++ b/deps/openssl/openssl/crypto/cmp/cmp_client.c @@ -107,9 +107,12 @@ static int save_statusInfo(OSSL_CMP_CTX *ctx, OSSL_CMP_PKISI *si) ss = si->statusString; /* may be NULL */ for (i = 0; i < sk_ASN1_UTF8STRING_num(ss); i++) { ASN1_UTF8STRING *str = sk_ASN1_UTF8STRING_value(ss, i); + ASN1_UTF8STRING *dup = ASN1_STRING_dup(str); - if (!sk_ASN1_UTF8STRING_push(ctx->statusString, ASN1_STRING_dup(str))) + if (dup == NULL || !sk_ASN1_UTF8STRING_push(ctx->statusString, dup)) { + ASN1_UTF8STRING_free(dup); return 0; + } } return 1; } diff --git a/deps/openssl/openssl/crypto/cms/cms_asn1.c b/deps/openssl/openssl/crypto/cms/cms_asn1.c index 72cd14317d47ea..95095201592323 100644 --- a/deps/openssl/openssl/crypto/cms/cms_asn1.c +++ b/deps/openssl/openssl/crypto/cms/cms_asn1.c @@ -51,6 +51,7 @@ static int cms_si_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, EVP_PKEY_free(si->pkey); X509_free(si->signer); EVP_MD_CTX_free(si->mctx); + EVP_PKEY_CTX_free(si->pctx); } return 1; } @@ -89,11 +90,21 @@ ASN1_SEQUENCE(CMS_OriginatorInfo) = { ASN1_IMP_SET_OF_OPT(CMS_OriginatorInfo, crls, CMS_RevocationInfoChoice, 1) } static_ASN1_SEQUENCE_END(CMS_OriginatorInfo) -ASN1_NDEF_SEQUENCE(CMS_EncryptedContentInfo) = { +static int cms_ec_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, + void *exarg) +{ + CMS_EncryptedContentInfo *ec = (CMS_EncryptedContentInfo *)*pval; + + if (operation == ASN1_OP_FREE_POST) + OPENSSL_clear_free(ec->key, ec->keylen); + return 1; +} + +ASN1_NDEF_SEQUENCE_cb(CMS_EncryptedContentInfo, cms_ec_cb) = { ASN1_SIMPLE(CMS_EncryptedContentInfo, contentType, ASN1_OBJECT), ASN1_SIMPLE(CMS_EncryptedContentInfo, contentEncryptionAlgorithm, X509_ALGOR), ASN1_IMP_OPT(CMS_EncryptedContentInfo, encryptedContent, ASN1_OCTET_STRING_NDEF, 0) -} static_ASN1_NDEF_SEQUENCE_END(CMS_EncryptedContentInfo) +} ASN1_NDEF_SEQUENCE_END_cb(CMS_EncryptedContentInfo, CMS_EncryptedContentInfo) ASN1_SEQUENCE(CMS_KeyTransRecipientInfo) = { ASN1_EMBED(CMS_KeyTransRecipientInfo, version, INT32), @@ -317,6 +328,10 @@ static int cms_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, return 0; break; + case ASN1_OP_FREE_POST: + OPENSSL_free(cms->ctx.propq); + break; + } return 1; } diff --git a/deps/openssl/openssl/crypto/cms/cms_dh.c b/deps/openssl/openssl/crypto/cms/cms_dh.c index 2f54ed2673a988..3f931d6e6fef32 100644 --- a/deps/openssl/openssl/crypto/cms/cms_dh.c +++ b/deps/openssl/openssl/crypto/cms/cms_dh.c @@ -34,7 +34,7 @@ static int dh_cms_set_peerkey(EVP_PKEY_CTX *pctx, if (OBJ_obj2nid(aoid) != NID_dhpublicnumber) goto err; /* Only absent parameters allowed in RFC XXXX */ - if (atype != V_ASN1_UNDEF && atype == V_ASN1_NULL) + if (atype != V_ASN1_UNDEF && atype != V_ASN1_NULL) goto err; pk = EVP_PKEY_CTX_get0_pkey(pctx); diff --git a/deps/openssl/openssl/crypto/cms/cms_env.c b/deps/openssl/openssl/crypto/cms/cms_env.c index 99cf1dcb396ca5..445a16fb771f27 100644 --- a/deps/openssl/openssl/crypto/cms/cms_env.c +++ b/deps/openssl/openssl/crypto/cms/cms_env.c @@ -51,15 +51,6 @@ static int cms_get_enveloped_type(const CMS_ContentInfo *cms) return ret; } -void ossl_cms_env_enc_content_free(const CMS_ContentInfo *cinf) -{ - if (cms_get_enveloped_type_simple(cinf) != 0) { - CMS_EncryptedContentInfo *ec = ossl_cms_get0_env_enc_content(cinf); - if (ec != NULL) - OPENSSL_clear_free(ec->key, ec->keylen); - } -} - CMS_EnvelopedData *ossl_cms_get0_enveloped(CMS_ContentInfo *cms) { if (OBJ_obj2nid(cms->contentType) != NID_pkcs7_enveloped) { diff --git a/deps/openssl/openssl/crypto/cms/cms_err.c b/deps/openssl/openssl/crypto/cms/cms_err.c index 4bd6a0dc1bf101..e67d783be29078 100644 --- a/deps/openssl/openssl/crypto/cms/cms_err.c +++ b/deps/openssl/openssl/crypto/cms/cms_err.c @@ -1,6 +1,6 @@ /* * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -20,77 +20,79 @@ static const ERR_STRING_DATA CMS_str_reasons[] = { {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_ADD_SIGNER_ERROR), "add signer error"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_ATTRIBUTE_ERROR), "attribute error"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_CERTIFICATE_ALREADY_PRESENT), - "certificate already present"}, + "certificate already present"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_CERTIFICATE_HAS_NO_KEYID), - "certificate has no keyid"}, + "certificate has no keyid"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_CERTIFICATE_VERIFY_ERROR), - "certificate verify error"}, + "certificate verify error"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_CIPHER_AEAD_SET_TAG_ERROR), - "cipher aead set tag error"}, + "cipher aead set tag error"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_CIPHER_GET_TAG), "cipher get tag"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_CIPHER_INITIALISATION_ERROR), - "cipher initialisation error"}, + "cipher initialisation error"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR), - "cipher parameter initialisation error"}, + "cipher parameter initialisation error"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_CMS_DATAFINAL_ERROR), - "cms datafinal error"}, + "cms datafinal error"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_CMS_LIB), "cms lib"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_CONTENTIDENTIFIER_MISMATCH), - "contentidentifier mismatch"}, + "contentidentifier mismatch"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_CONTENT_NOT_FOUND), "content not found"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_CONTENT_TYPE_MISMATCH), - "content type mismatch"}, + "content type mismatch"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA), - "content type not compressed data"}, + "content type not compressed data"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA), - "content type not enveloped data"}, + "content type not enveloped data"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA), - "content type not signed data"}, + "content type not signed data"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_CONTENT_VERIFY_ERROR), - "content verify error"}, + "content verify error"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_CTRL_ERROR), "ctrl error"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_CTRL_FAILURE), "ctrl failure"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_DECODE_ERROR), "decode error"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_DECRYPT_ERROR), "decrypt error"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_ERROR_GETTING_PUBLIC_KEY), - "error getting public key"}, + "error getting public key"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE), - "error reading messagedigest attribute"}, + "error reading messagedigest attribute"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_ERROR_SETTING_KEY), "error setting key"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_ERROR_SETTING_RECIPIENTINFO), - "error setting recipientinfo"}, + "error setting recipientinfo"}, + {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT), + "error unsupported static key agreement"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_ESS_SIGNING_CERTID_MISMATCH_ERROR), - "ess signing certid mismatch error"}, + "ess signing certid mismatch error"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_INVALID_ENCRYPTED_KEY_LENGTH), - "invalid encrypted key length"}, + "invalid encrypted key length"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER), - "invalid key encryption parameter"}, + "invalid key encryption parameter"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_INVALID_KEY_LENGTH), "invalid key length"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_INVALID_LABEL), "invalid label"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_INVALID_OAEP_PARAMETERS), - "invalid oaep parameters"}, + "invalid oaep parameters"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_KDF_PARAMETER_ERROR), - "kdf parameter error"}, + "kdf parameter error"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_MD_BIO_INIT_ERROR), "md bio init error"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH), - "messagedigest attribute wrong length"}, + "messagedigest attribute wrong length"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_MESSAGEDIGEST_WRONG_LENGTH), - "messagedigest wrong length"}, + "messagedigest wrong length"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_MSGSIGDIGEST_ERROR), "msgsigdigest error"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE), - "msgsigdigest verification failure"}, + "msgsigdigest verification failure"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_MSGSIGDIGEST_WRONG_LENGTH), - "msgsigdigest wrong length"}, + "msgsigdigest wrong length"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_NEED_ONE_SIGNER), "need one signer"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_NOT_A_SIGNED_RECEIPT), - "not a signed receipt"}, + "not a signed receipt"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_NOT_ENCRYPTED_DATA), "not encrypted data"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_NOT_KEK), "not kek"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_NOT_KEY_AGREEMENT), "not key agreement"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_NOT_KEY_TRANSPORT), "not key transport"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_NOT_PWRI), "not pwri"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE), - "not supported for this key type"}, + "not supported for this key type"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_NO_CIPHER), "no cipher"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_NO_CONTENT), "no content"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_NO_CONTENT_TYPE), "no content type"}, @@ -100,9 +102,9 @@ static const ERR_STRING_DATA CMS_str_reasons[] = { {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_NO_KEY_OR_CERT), "no key or cert"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_NO_MATCHING_DIGEST), "no matching digest"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_NO_MATCHING_RECIPIENT), - "no matching recipient"}, + "no matching recipient"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_NO_MATCHING_SIGNATURE), - "no matching signature"}, + "no matching signature"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_NO_MSGSIGDIGEST), "no msgsigdigest"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_NO_PASSWORD), "no password"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_NO_PRIVATE_KEY), "no private key"}, @@ -111,56 +113,56 @@ static const ERR_STRING_DATA CMS_str_reasons[] = { {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_NO_SIGNERS), "no signers"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_PEER_KEY_ERROR), "peer key error"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE), - "private key does not match certificate"}, + "private key does not match certificate"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_RECEIPT_DECODE_ERROR), - "receipt decode error"}, + "receipt decode error"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_RECIPIENT_ERROR), "recipient error"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_SHARED_INFO_ERROR), "shared info error"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_SIGNER_CERTIFICATE_NOT_FOUND), - "signer certificate not found"}, + "signer certificate not found"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_SIGNFINAL_ERROR), "signfinal error"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_SMIME_TEXT_ERROR), "smime text error"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_STORE_INIT_ERROR), "store init error"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_TYPE_NOT_COMPRESSED_DATA), - "type not compressed data"}, + "type not compressed data"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_TYPE_NOT_DATA), "type not data"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_TYPE_NOT_DIGESTED_DATA), - "type not digested data"}, + "type not digested data"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_TYPE_NOT_ENCRYPTED_DATA), - "type not encrypted data"}, + "type not encrypted data"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_TYPE_NOT_ENVELOPED_DATA), - "type not enveloped data"}, + "type not enveloped data"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_UNABLE_TO_FINALIZE_CONTEXT), - "unable to finalize context"}, + "unable to finalize context"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_UNKNOWN_CIPHER), "unknown cipher"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_UNKNOWN_DIGEST_ALGORITHM), - "unknown digest algorithm"}, + "unknown digest algorithm"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_UNKNOWN_ID), "unknown id"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM), - "unsupported compression algorithm"}, + "unsupported compression algorithm"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM), - "unsupported content encryption algorithm"}, + "unsupported content encryption algorithm"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_UNSUPPORTED_CONTENT_TYPE), - "unsupported content type"}, + "unsupported content type"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_UNSUPPORTED_ENCRYPTION_TYPE), - "unsupported encryption type"}, + "unsupported encryption type"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_UNSUPPORTED_KEK_ALGORITHM), - "unsupported kek algorithm"}, + "unsupported kek algorithm"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM), - "unsupported key encryption algorithm"}, + "unsupported key encryption algorithm"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_UNSUPPORTED_LABEL_SOURCE), - "unsupported label source"}, + "unsupported label source"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE), - "unsupported recipientinfo type"}, + "unsupported recipientinfo type"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_UNSUPPORTED_RECIPIENT_TYPE), - "unsupported recipient type"}, + "unsupported recipient type"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM), - "unsupported signature algorithm"}, + "unsupported signature algorithm"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_UNSUPPORTED_TYPE), "unsupported type"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_UNWRAP_ERROR), "unwrap error"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_UNWRAP_FAILURE), "unwrap failure"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_VERIFICATION_FAILURE), - "verification failure"}, + "verification failure"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_WRAP_ERROR), "wrap error"}, {0, NULL} }; diff --git a/deps/openssl/openssl/crypto/cms/cms_kari.c b/deps/openssl/openssl/crypto/cms/cms_kari.c index a2f422a78d8b5c..8e9e6a5d148c8e 100644 --- a/deps/openssl/openssl/crypto/cms/cms_kari.c +++ b/deps/openssl/openssl/crypto/cms/cms_kari.c @@ -1,5 +1,5 @@ /* - * Copyright 2013-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2013-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -502,6 +502,13 @@ int ossl_cms_RecipientInfo_kari_encrypt(const CMS_ContentInfo *cms, oik->d.originatorKey = M_ASN1_new_of(CMS_OriginatorPublicKey); if (!oik->d.originatorKey) return 0; + } else { + /* + * Currently it is not possible to get public key as it is not stored + * during kari initialization. + */ + ERR_raise(ERR_LIB_CMS, CMS_R_ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT); + return 0; } /* Initialise KDF algorithm */ if (!ossl_cms_env_asn1_ctrl(ri, 0)) diff --git a/deps/openssl/openssl/crypto/cms/cms_lib.c b/deps/openssl/openssl/crypto/cms/cms_lib.c index 8b135e95aacc81..67b35627ba5e6b 100644 --- a/deps/openssl/openssl/crypto/cms/cms_lib.c +++ b/deps/openssl/openssl/crypto/cms/cms_lib.c @@ -22,6 +22,7 @@ static STACK_OF(CMS_CertificateChoices) **cms_get0_certificate_choices(CMS_ContentInfo *cms); +IMPLEMENT_ASN1_ALLOC_FUNCTIONS(CMS_ContentInfo) IMPLEMENT_ASN1_PRINT_FUNCTION(CMS_ContentInfo) CMS_ContentInfo *d2i_CMS_ContentInfo(CMS_ContentInfo **a, @@ -68,20 +69,6 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) return ci; } -CMS_ContentInfo *CMS_ContentInfo_new(void) -{ - return CMS_ContentInfo_new_ex(NULL, NULL); -} - -void CMS_ContentInfo_free(CMS_ContentInfo *cms) -{ - if (cms != NULL) { - ossl_cms_env_enc_content_free(cms); - OPENSSL_free(cms->ctx.propq); - ASN1_item_free((ASN1_VALUE *)cms, ASN1_ITEM_rptr(CMS_ContentInfo)); - } -} - const CMS_CTX *ossl_cms_get0_cmsctx(const CMS_ContentInfo *cms) { return cms != NULL ? &cms->ctx : NULL; diff --git a/deps/openssl/openssl/crypto/cms/cms_local.h b/deps/openssl/openssl/crypto/cms/cms_local.h index 253f6819e43542..1e0e0910d1d181 100644 --- a/deps/openssl/openssl/crypto/cms/cms_local.h +++ b/deps/openssl/openssl/crypto/cms/cms_local.h @@ -368,6 +368,7 @@ struct CMS_Receipt_st { DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_ITEM(CMS_SignerInfo) +DECLARE_ASN1_ITEM(CMS_EncryptedContentInfo) DECLARE_ASN1_ITEM(CMS_IssuerAndSerialNumber) DECLARE_ASN1_ITEM(CMS_Attributes_Sign) DECLARE_ASN1_ITEM(CMS_Attributes_Verify) @@ -444,7 +445,6 @@ BIO *ossl_cms_EnvelopedData_init_bio(CMS_ContentInfo *cms); int ossl_cms_EnvelopedData_final(CMS_ContentInfo *cms, BIO *chain); BIO *ossl_cms_AuthEnvelopedData_init_bio(CMS_ContentInfo *cms); int ossl_cms_AuthEnvelopedData_final(CMS_ContentInfo *cms, BIO *cmsbio); -void ossl_cms_env_enc_content_free(const CMS_ContentInfo *cinf); CMS_EnvelopedData *ossl_cms_get0_enveloped(CMS_ContentInfo *cms); CMS_AuthEnvelopedData *ossl_cms_get0_auth_enveloped(CMS_ContentInfo *cms); CMS_EncryptedContentInfo *ossl_cms_get0_env_enc_content(const CMS_ContentInfo *cms); diff --git a/deps/openssl/openssl/crypto/cms/cms_rsa.c b/deps/openssl/openssl/crypto/cms/cms_rsa.c index 12bc8184389701..5e26e89d501223 100644 --- a/deps/openssl/openssl/crypto/cms/cms_rsa.c +++ b/deps/openssl/openssl/crypto/cms/cms_rsa.c @@ -223,7 +223,10 @@ static int rsa_cms_sign(CMS_SignerInfo *si) os = ossl_rsa_ctx_to_pss_string(pkctx); if (os == NULL) return 0; - return X509_ALGOR_set0(alg, OBJ_nid2obj(EVP_PKEY_RSA_PSS), V_ASN1_SEQUENCE, os); + if (X509_ALGOR_set0(alg, OBJ_nid2obj(EVP_PKEY_RSA_PSS), V_ASN1_SEQUENCE, os)) + return 1; + ASN1_STRING_free(os); + return 0; } params[0] = OSSL_PARAM_construct_octet_string( diff --git a/deps/openssl/openssl/crypto/cms/cms_sd.c b/deps/openssl/openssl/crypto/cms/cms_sd.c index 3a21664e9da212..4758d048386eb0 100644 --- a/deps/openssl/openssl/crypto/cms/cms_sd.c +++ b/deps/openssl/openssl/crypto/cms/cms_sd.c @@ -482,8 +482,12 @@ CMS_SignerInfo *CMS_add1_signer(CMS_ContentInfo *cms, ossl_cms_ctx_get0_libctx(ctx), ossl_cms_ctx_get0_propq(ctx), pk, NULL) <= 0) { + si->pctx = NULL; goto err; } + else { + EVP_MD_CTX_set_flags(si->mctx, EVP_MD_CTX_FLAG_KEEP_PKEY_CTX); + } } if (!sd->signerInfos) @@ -725,6 +729,7 @@ static int cms_SignerInfo_content_sign(CMS_ContentInfo *cms, unsigned int mdlen; pctx = si->pctx; + si->pctx = NULL; if (!EVP_DigestFinal_ex(mctx, md, &mdlen)) goto err; siglen = EVP_PKEY_get_size(si->pkey); @@ -813,6 +818,7 @@ int CMS_SignerInfo_sign(CMS_SignerInfo *si) ossl_cms_ctx_get0_propq(ctx), si->pkey, NULL) <= 0) goto err; + EVP_MD_CTX_set_flags(mctx, EVP_MD_CTX_FLAG_KEEP_PKEY_CTX); si->pctx = pctx; } @@ -884,9 +890,16 @@ int CMS_SignerInfo_verify(CMS_SignerInfo *si) goto err; } mctx = si->mctx; + if (si->pctx != NULL) { + EVP_PKEY_CTX_free(si->pctx); + si->pctx = NULL; + } if (EVP_DigestVerifyInit_ex(mctx, &si->pctx, EVP_MD_get0_name(md), libctx, - propq, si->pkey, NULL) <= 0) + propq, si->pkey, NULL) <= 0) { + si->pctx = NULL; goto err; + } + EVP_MD_CTX_set_flags(mctx, EVP_MD_CTX_FLAG_KEEP_PKEY_CTX); if (!cms_sd_asn1_ctrl(si, 1)) goto err; @@ -1003,8 +1016,11 @@ int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain) if (EVP_PKEY_CTX_set_signature_md(pkctx, md) <= 0) goto err; si->pctx = pkctx; - if (!cms_sd_asn1_ctrl(si, 1)) + if (!cms_sd_asn1_ctrl(si, 1)) { + si->pctx = NULL; goto err; + } + si->pctx = NULL; r = EVP_PKEY_verify(pkctx, si->signature->data, si->signature->length, mval, mlen); if (r <= 0) { diff --git a/deps/openssl/openssl/crypto/cms/cms_smime.c b/deps/openssl/openssl/crypto/cms/cms_smime.c index d7719267c8c83d..65da2452fcea7e 100644 --- a/deps/openssl/openssl/crypto/cms/cms_smime.c +++ b/deps/openssl/openssl/crypto/cms/cms_smime.c @@ -236,7 +236,7 @@ CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, if (cms == NULL) return NULL; if (!CMS_EncryptedData_set1_key(cms, cipher, key, keylen)) - return NULL; + goto err; if (!(flags & CMS_DETACHED)) CMS_set_detached(cms, 0); @@ -245,6 +245,7 @@ CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, || CMS_final(cms, in, NULL, flags)) return cms; + err: CMS_ContentInfo_free(cms); return NULL; } diff --git a/deps/openssl/openssl/crypto/core_fetch.c b/deps/openssl/openssl/crypto/core_fetch.c index 38db36ee1f75e9..c063515fc04d92 100644 --- a/deps/openssl/openssl/crypto/core_fetch.c +++ b/deps/openssl/openssl/crypto/core_fetch.c @@ -1,5 +1,5 @@ /* - * Copyright 2019-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -120,7 +120,8 @@ static void ossl_method_construct_this(OSSL_PROVIDER *provider, * It is *expected* that the put function increments the refcnt * of the passed method. */ - data->mcm->put(data->store, method, provider, algo->algorithm_names, + data->mcm->put(no_store ? data->store : NULL, + method, provider, algo->algorithm_names, algo->property_definition, data->mcm_data); /* refcnt-- because we're dropping the reference */ diff --git a/deps/openssl/openssl/crypto/dso/dso_dl.c b/deps/openssl/openssl/crypto/dso/dso_dl.c index f4e6e5f4573f66..05b63cf1d9c232 100644 --- a/deps/openssl/openssl/crypto/dso/dso_dl.c +++ b/deps/openssl/openssl/crypto/dso/dso_dl.c @@ -235,13 +235,12 @@ static char *dl_name_converter(DSO *dso, const char *filename) ERR_raise(ERR_LIB_DSO, DSO_R_NAME_TRANSLATION_FAILED); return NULL; } - if (transform) { - if ((DSO_flags(dso) & DSO_FLAG_NAME_TRANSLATION_EXT_ONLY) == 0) - sprintf(translated, "lib%s%s", filename, DSO_EXTENSION); - else - sprintf(translated, "%s%s", filename, DSO_EXTENSION); - } else - sprintf(translated, "%s", filename); + if (transform) + BIO_snprintf(translated, rsize, + (DSO_flags(dso) & DSO_FLAG_NAME_TRANSLATION_EXT_ONLY) == 0 + ? "lib%s%s" : "%s%s", filename, DSO_EXTENSION); + else + BIO_snprintf(translated, rsize, "%s", filename); return translated; } diff --git a/deps/openssl/openssl/crypto/dso/dso_dlfcn.c b/deps/openssl/openssl/crypto/dso/dso_dlfcn.c index 6a988cc727913e..1107da5fe6575e 100644 --- a/deps/openssl/openssl/crypto/dso/dso_dlfcn.c +++ b/deps/openssl/openssl/crypto/dso/dso_dlfcn.c @@ -271,11 +271,12 @@ static char *dlfcn_name_converter(DSO *dso, const char *filename) } if (transform) { if ((DSO_flags(dso) & DSO_FLAG_NAME_TRANSLATION_EXT_ONLY) == 0) - sprintf(translated, "lib%s" DSO_EXTENSION, filename); + BIO_snprintf(translated, rsize, "lib%s" DSO_EXTENSION, filename); else - sprintf(translated, "%s" DSO_EXTENSION, filename); - } else - sprintf(translated, "%s", filename); + BIO_snprintf(translated, rsize, "%s" DSO_EXTENSION, filename); + } else { + BIO_snprintf(translated, rsize, "%s", filename); + } return translated; } diff --git a/deps/openssl/openssl/crypto/dso/dso_win32.c b/deps/openssl/openssl/crypto/dso/dso_win32.c index 4d3059d43879f8..91a1a9d9aeb577 100644 --- a/deps/openssl/openssl/crypto/dso/dso_win32.c +++ b/deps/openssl/openssl/crypto/dso/dso_win32.c @@ -454,24 +454,20 @@ static char *win32_name_converter(DSO *dso, const char *filename) char *translated; int len, transform; - len = strlen(filename); transform = ((strstr(filename, "/") == NULL) && (strstr(filename, "\\") == NULL) && (strstr(filename, ":") == NULL)); + /* If transform != 0, then we convert to %s.dll, else just dupe filename */ + + len = strlen(filename) + 1; if (transform) - /* We will convert this to "%s.dll" */ - translated = OPENSSL_malloc(len + 5); - else - /* We will simply duplicate filename */ - translated = OPENSSL_malloc(len + 1); + len += strlen(".dll"); + translated = OPENSSL_malloc(len); if (translated == NULL) { ERR_raise(ERR_LIB_DSO, DSO_R_NAME_TRANSLATION_FAILED); return NULL; } - if (transform) - sprintf(translated, "%s.dll", filename); - else - sprintf(translated, "%s", filename); + BIO_snprintf(translated, len, "%s%s", filename, transform ? ".dll" : ""); return translated; } diff --git a/deps/openssl/openssl/crypto/ec/ec_asn1.c b/deps/openssl/openssl/crypto/ec/ec_asn1.c index 7a0b35a594311b..c018f392894d9e 100644 --- a/deps/openssl/openssl/crypto/ec/ec_asn1.c +++ b/deps/openssl/openssl/crypto/ec/ec_asn1.c @@ -1161,7 +1161,7 @@ int i2o_ECPublicKey(const EC_KEY *a, unsigned char **out) size_t buf_len = 0; int new_buffer = 0; - if (a == NULL) { + if (a == NULL || a->pub_key == NULL) { ERR_raise(ERR_LIB_EC, ERR_R_PASSED_NULL_PARAMETER); return 0; } diff --git a/deps/openssl/openssl/crypto/ec/ec_backend.c b/deps/openssl/openssl/crypto/ec/ec_backend.c index 98e2c418e416c8..cad576fc48a142 100644 --- a/deps/openssl/openssl/crypto/ec/ec_backend.c +++ b/deps/openssl/openssl/crypto/ec/ec_backend.c @@ -616,14 +616,8 @@ EC_KEY *ossl_ec_key_dup(const EC_KEY *src, int selection) || !EC_GROUP_copy(ret->group, src->group)) goto err; - if (src->meth != NULL) { -#if !defined(OPENSSL_NO_ENGINE) && !defined(FIPS_MODULE) - if (src->engine != NULL && ENGINE_init(src->engine) == 0) - goto err; - ret->engine = src->engine; -#endif + if (src->meth != NULL) ret->meth = src->meth; - } } /* copy the public key */ diff --git a/deps/openssl/openssl/crypto/ec/ec_lib.c b/deps/openssl/openssl/crypto/ec/ec_lib.c index b1696d93bd6dd0..a082876fb4798e 100644 --- a/deps/openssl/openssl/crypto/ec/ec_lib.c +++ b/deps/openssl/openssl/crypto/ec/ec_lib.c @@ -1,5 +1,5 @@ /* - * Copyright 2001-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2001-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -20,6 +20,7 @@ #include #include #include "crypto/ec.h" +#include "crypto/bn.h" #include "internal/nelem.h" #include "ec_local.h" @@ -1262,10 +1263,10 @@ static int ec_field_inverse_mod_ord(const EC_GROUP *group, BIGNUM *r, if (!BN_sub(e, group->order, e)) goto err; /*- - * Exponent e is public. - * No need for scatter-gather or BN_FLG_CONSTTIME. + * Although the exponent is public we want the result to be + * fixed top. */ - if (!BN_mod_exp_mont(r, x, e, group->order, ctx, group->mont_data)) + if (!bn_mod_exp_mont_fixed_top(r, x, e, group->order, ctx, group->mont_data)) goto err; ret = 1; diff --git a/deps/openssl/openssl/crypto/ec/ec_oct.c b/deps/openssl/openssl/crypto/ec/ec_oct.c index 790a0b29077176..2b77e9738883e0 100644 --- a/deps/openssl/openssl/crypto/ec/ec_oct.c +++ b/deps/openssl/openssl/crypto/ec/ec_oct.c @@ -74,6 +74,10 @@ size_t EC_POINT_point2oct(const EC_GROUP *group, const EC_POINT *point, point_conversion_form_t form, unsigned char *buf, size_t len, BN_CTX *ctx) { + if (point == NULL) { + ERR_raise(ERR_LIB_EC, ERR_R_PASSED_NULL_PARAMETER); + return 0; + } if (group->meth->point2oct == 0 && !(group->meth->flags & EC_FLAGS_DEFAULT_OCT)) { ERR_raise(ERR_LIB_EC, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); diff --git a/deps/openssl/openssl/crypto/encode_decode/encoder_pkey.c b/deps/openssl/openssl/crypto/encode_decode/encoder_pkey.c index 3a24317cf4d6cf..39266a95309dcd 100644 --- a/deps/openssl/openssl/crypto/encode_decode/encoder_pkey.c +++ b/deps/openssl/openssl/crypto/encode_decode/encoder_pkey.c @@ -186,9 +186,13 @@ encoder_construct_pkey(OSSL_ENCODER_INSTANCE *encoder_inst, void *arg) const OSSL_PROVIDER *e_prov = OSSL_ENCODER_get0_provider(encoder); if (k_prov != e_prov) { + int selection = data->selection; + + if ((selection & OSSL_KEYMGMT_SELECT_PRIVATE_KEY) != 0) + selection |= OSSL_KEYMGMT_SELECT_PUBLIC_KEY; data->encoder_inst = encoder_inst; - if (!evp_keymgmt_export(pk->keymgmt, pk->keydata, data->selection, + if (!evp_keymgmt_export(pk->keymgmt, pk->keydata, selection, &encoder_import_cb, data)) return NULL; data->obj = data->constructed_obj; diff --git a/deps/openssl/openssl/crypto/err/openssl.txt b/deps/openssl/openssl/crypto/err/openssl.txt index 003e2981095676..756fafdfa24aff 100644 --- a/deps/openssl/openssl/crypto/err/openssl.txt +++ b/deps/openssl/openssl/crypto/err/openssl.txt @@ -1,4 +1,4 @@ -# Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the Apache License 2.0 (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -307,6 +307,8 @@ CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE:114:\ error reading messagedigest attribute CMS_R_ERROR_SETTING_KEY:115:error setting key CMS_R_ERROR_SETTING_RECIPIENTINFO:116:error setting recipientinfo +CMS_R_ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT:196:\ + error unsupported static key agreement CMS_R_ESS_SIGNING_CERTID_MISMATCH_ERROR:183:ess signing certid mismatch error CMS_R_INVALID_ENCRYPTED_KEY_LENGTH:117:invalid encrypted key length CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER:176:invalid key encryption parameter @@ -1388,8 +1390,6 @@ SSL_R_MISSING_ECDSA_SIGNING_CERT:381:missing ecdsa signing cert SSL_R_MISSING_FATAL:256:missing fatal SSL_R_MISSING_PARAMETERS:290:missing parameters SSL_R_MISSING_PSK_KEX_MODES_EXTENSION:310:missing psk kex modes extension -SSL_R_MISSING_QUIC_TRANSPORT_PARAMETERS_EXTENSION:801:\ - missing quic transport parameters extension SSL_R_MISSING_RSA_CERTIFICATE:168:missing rsa certificate SSL_R_MISSING_RSA_ENCRYPTING_CERT:169:missing rsa encrypting cert SSL_R_MISSING_RSA_SIGNING_CERT:170:missing rsa signing cert @@ -1540,7 +1540,6 @@ SSL_R_VERSION_TOO_LOW:396:version too low SSL_R_WRONG_CERTIFICATE_TYPE:383:wrong certificate type SSL_R_WRONG_CIPHER_RETURNED:261:wrong cipher returned SSL_R_WRONG_CURVE:378:wrong curve -SSL_R_WRONG_ENCRYPTION_LEVEL_RECEIVED:800:wrong encryption level received SSL_R_WRONG_SIGNATURE_LENGTH:264:wrong signature length SSL_R_WRONG_SIGNATURE_SIZE:265:wrong signature size SSL_R_WRONG_SIGNATURE_TYPE:370:wrong signature type diff --git a/deps/openssl/openssl/crypto/evp/ctrl_params_translate.c b/deps/openssl/openssl/crypto/evp/ctrl_params_translate.c index de6c215e205a22..44d0895bcf1447 100644 --- a/deps/openssl/openssl/crypto/evp/ctrl_params_translate.c +++ b/deps/openssl/openssl/crypto/evp/ctrl_params_translate.c @@ -1210,6 +1210,8 @@ static int fix_ecdh_cofactor(enum state state, /* The initial value for |ctx->action_type| must not be zero. */ if (!ossl_assert(ctx->action_type != NONE)) return 0; + } else if (state == POST_PARAMS_TO_CTRL && ctx->action_type == NONE) { + ctx->action_type = GET; } if ((ret = default_check(state, translation, ctx)) <= 0) @@ -1235,6 +1237,8 @@ static int fix_ecdh_cofactor(enum state state, } } else if (state == PRE_PARAMS_TO_CTRL && ctx->action_type == GET) { ctx->p1 = -2; + } else if (state == POST_PARAMS_TO_CTRL && ctx->action_type == GET) { + ctx->p1 = ret; } return ret; @@ -2800,8 +2804,14 @@ static int evp_pkey_ctx_setget_params_to_ctrl(EVP_PKEY_CTX *pctx, /* * In POST, we pass the return value as p1, allowing the fixup_args * function to put it to good use, or maybe affect it. + * + * NOTE: even though EVP_PKEY_CTX_ctrl return value is documented + * as return positive on Success and 0 or negative on falure. There + * maybe parameters (e.g. ecdh_cofactor), which actually return 0 + * as success value. That is why we do POST_PARAMS_TO_CTRL for 0 + * value as well */ - if (ret > 0) { + if (ret >= 0) { ctx.p1 = ret; fixup(POST_PARAMS_TO_CTRL, translation, &ctx); ret = ctx.p1; diff --git a/deps/openssl/openssl/crypto/evp/m_sigver.c b/deps/openssl/openssl/crypto/evp/m_sigver.c index 76a6814b424bec..efd2c05c85cf09 100644 --- a/deps/openssl/openssl/crypto/evp/m_sigver.c +++ b/deps/openssl/openssl/crypto/evp/m_sigver.c @@ -662,8 +662,12 @@ int EVP_DigestVerify(EVP_MD_CTX *ctx, const unsigned char *sigret, { EVP_PKEY_CTX *pctx = ctx->pctx; - if (pctx != NULL - && pctx->operation == EVP_PKEY_OP_VERIFYCTX + if (pctx == NULL) { + ERR_raise(ERR_LIB_EVP, EVP_R_INITIALIZATION_ERROR); + return -1; + } + + if (pctx->operation == EVP_PKEY_OP_VERIFYCTX && pctx->op.sig.algctx != NULL && pctx->op.sig.signature != NULL) { if (pctx->op.sig.signature->digest_verify != NULL) @@ -672,8 +676,8 @@ int EVP_DigestVerify(EVP_MD_CTX *ctx, const unsigned char *sigret, tbs, tbslen); } else { /* legacy */ - if (ctx->pctx->pmeth != NULL && ctx->pctx->pmeth->digestverify != NULL) - return ctx->pctx->pmeth->digestverify(ctx, sigret, siglen, tbs, tbslen); + if (pctx->pmeth != NULL && pctx->pmeth->digestverify != NULL) + return pctx->pmeth->digestverify(ctx, sigret, siglen, tbs, tbslen); } if (EVP_DigestVerifyUpdate(ctx, tbs, tbslen) <= 0) diff --git a/deps/openssl/openssl/crypto/http/http_client.c b/deps/openssl/openssl/crypto/http/http_client.c index 4b96a6b9e9e240..c86db4405b8f19 100644 --- a/deps/openssl/openssl/crypto/http/http_client.c +++ b/deps/openssl/openssl/crypto/http/http_client.c @@ -851,6 +851,20 @@ int OSSL_HTTP_REQ_CTX_nbio_d2i(OSSL_HTTP_REQ_CTX *rctx, #ifndef OPENSSL_NO_SOCK +static const char *explict_or_default_port(const char *hostserv, const char *port, int use_ssl) +{ + if (port == NULL) { + char *service = NULL; + + if (!BIO_parse_hostserv(hostserv, NULL, &service, BIO_PARSE_PRIO_HOST)) + return NULL; + if (service == NULL) /* implicit port */ + port = use_ssl ? OSSL_HTTPS_PORT : OSSL_HTTP_PORT; + OPENSSL_free(service); + } /* otherwise take the explicitly given port */ + return port; +} + /* set up a new connection BIO, to HTTP server or to HTTP(S) proxy if given */ static BIO *http_new_bio(const char *server /* optionally includes ":port" */, const char *server_port /* explicit server port */, @@ -870,8 +884,7 @@ static BIO *http_new_bio(const char *server /* optionally includes ":port" */, port = proxy_port; } - if (port == NULL && strchr(host, ':') == NULL) - port = use_ssl ? OSSL_HTTPS_PORT : OSSL_HTTP_PORT; + port = explict_or_default_port(host, port, use_ssl); cbio = BIO_new_connect(host /* optionally includes ":port" */); if (cbio == NULL) @@ -958,8 +971,6 @@ OSSL_HTTP_REQ_CTX *OSSL_HTTP_open(const char *server, const char *port, } if (port != NULL && *port == '\0') port = NULL; - if (port == NULL && strchr(server, ':') == NULL) - port = use_ssl ? OSSL_HTTPS_PORT : OSSL_HTTP_PORT; proxy = OSSL_HTTP_adapt_proxy(proxy, no_proxy, server, use_ssl); if (proxy != NULL && !OSSL_HTTP_parse_url(proxy, NULL /* use_ssl */, NULL /* user */, diff --git a/deps/openssl/openssl/crypto/http/http_lib.c b/deps/openssl/openssl/crypto/http/http_lib.c index 30c1cd04fc0052..9c41f57541d74b 100644 --- a/deps/openssl/openssl/crypto/http/http_lib.c +++ b/deps/openssl/openssl/crypto/http/http_lib.c @@ -1,5 +1,5 @@ /* - * Copyright 2001-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2001-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -9,11 +9,18 @@ #include /* for sscanf() */ #include +#ifndef OPENSSL_NO_SOCK +# include "../bio/bio_local.h" /* for NI_MAXHOST */ +#endif #include #include #include /* for BIO_snprintf() */ #include #include "internal/cryptlib.h" /* for ossl_assert() */ +#ifndef NI_MAXHOST +# define NI_MAXHOST 255 +#endif +#include "crypto/ctype.h" /* for ossl_isspace() */ static void init_pstring(char **pstr) { @@ -251,10 +258,17 @@ static int use_proxy(const char *no_proxy, const char *server) { size_t sl; const char *found = NULL; + char host[NI_MAXHOST]; if (!ossl_assert(server != NULL)) return 0; sl = strlen(server); + if (sl >= 2 && sl < sizeof(host) + 2 && server[0] == '[' && server[sl - 1] == ']') { + /* strip leading '[' and trailing ']' from escaped IPv6 address */ + sl -= 2; + strncpy(host, server + 1, sl); + server = host; + } /* * using environment variable names, both lowercase and uppercase variants, @@ -268,8 +282,8 @@ static int use_proxy(const char *no_proxy, const char *server) if (no_proxy != NULL) found = strstr(no_proxy, server); while (found != NULL - && ((found != no_proxy && found[-1] != ' ' && found[-1] != ',') - || (found[sl] != '\0' && found[sl] != ' ' && found[sl] != ','))) + && ((found != no_proxy && !ossl_isspace(found[-1]) && found[-1] != ',') + || (found[sl] != '\0' && !ossl_isspace(found[sl]) && found[sl] != ','))) found = strstr(found + 1, server); return found == NULL; } @@ -285,7 +299,7 @@ const char *OSSL_HTTP_adapt_proxy(const char *proxy, const char *no_proxy, if (proxy == NULL) proxy = ossl_safe_getenv(use_ssl ? "https_proxy" : "http_proxy"); if (proxy == NULL) - proxy = ossl_safe_getenv(use_ssl ? OPENSSL_HTTP_PROXY : OPENSSL_HTTPS_PROXY); + proxy = ossl_safe_getenv(use_ssl ? OPENSSL_HTTPS_PROXY : OPENSSL_HTTP_PROXY); if (proxy == NULL || *proxy == '\0' || !use_proxy(no_proxy, server)) return NULL; diff --git a/deps/openssl/openssl/crypto/info.c b/deps/openssl/openssl/crypto/info.c index f5fa92e1580add..a0dc2e80136f87 100644 --- a/deps/openssl/openssl/crypto/info.c +++ b/deps/openssl/openssl/crypto/info.c @@ -14,7 +14,6 @@ #include "internal/cryptlib.h" #include "e_os.h" #include "buildinf.h" -#include #if defined(__arm__) || defined(__arm) || defined(__aarch64__) # include "arm_arch.h" @@ -200,10 +199,6 @@ const char *OPENSSL_info(int t) if (ossl_cpu_info_str[0] != '\0') return ossl_cpu_info_str + strlen(CPUINFO_PREFIX); break; -#ifndef OPENSSL_NO_QUIC - case OPENSSL_INFO_QUIC: - return "QUIC"; -#endif default: break; } diff --git a/deps/openssl/openssl/crypto/pem/pem_pk8.c b/deps/openssl/openssl/crypto/pem/pem_pk8.c index 1592e351edef16..6e84f0afd05d03 100644 --- a/deps/openssl/openssl/crypto/pem/pem_pk8.c +++ b/deps/openssl/openssl/crypto/pem/pem_pk8.c @@ -173,7 +173,7 @@ EVP_PKEY *d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, X509_SIG *p8 = NULL; int klen; EVP_PKEY *ret; - char psbuf[PEM_BUFSIZE]; + char psbuf[PEM_BUFSIZE + 1]; /* reserve one byte at the end */ p8 = d2i_PKCS8_bio(bp, NULL); if (p8 == NULL) @@ -182,7 +182,7 @@ EVP_PKEY *d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, klen = cb(psbuf, PEM_BUFSIZE, 0, u); else klen = PEM_def_callback(psbuf, PEM_BUFSIZE, 0, u); - if (klen < 0) { + if (klen < 0 || klen > PEM_BUFSIZE) { ERR_raise(ERR_LIB_PEM, PEM_R_BAD_PASSWORD_READ); X509_SIG_free(p8); return NULL; diff --git a/deps/openssl/openssl/crypto/pkcs12/p12_crt.c b/deps/openssl/openssl/crypto/pkcs12/p12_crt.c index 1a48e5c611da5c..3c7d5ff97c52ab 100644 --- a/deps/openssl/openssl/crypto/pkcs12/p12_crt.c +++ b/deps/openssl/openssl/crypto/pkcs12/p12_crt.c @@ -1,5 +1,5 @@ /* - * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -210,8 +210,10 @@ PKCS12_SAFEBAG *PKCS12_add_key_ex(STACK_OF(PKCS12_SAFEBAG) **pbags, /* Make a PKCS#8 structure */ if ((p8 = EVP_PKEY2PKCS8(key)) == NULL) goto err; - if (key_usage && !PKCS8_add_keyusage(p8, key_usage)) + if (key_usage && !PKCS8_add_keyusage(p8, key_usage)) { + PKCS8_PRIV_KEY_INFO_free(p8); goto err; + } if (nid_key != -1) { /* This call does not take ownership of p8 */ bag = PKCS12_SAFEBAG_create_pkcs8_encrypt_ex(nid_key, pass, -1, NULL, 0, diff --git a/deps/openssl/openssl/crypto/pkcs7/pk7_doit.c b/deps/openssl/openssl/crypto/pkcs7/pk7_doit.c index d7791e5c4f4705..e9de097da186be 100644 --- a/deps/openssl/openssl/crypto/pkcs7/pk7_doit.c +++ b/deps/openssl/openssl/crypto/pkcs7/pk7_doit.c @@ -1023,6 +1023,7 @@ int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, STACK_OF(X509_ATTRIBUTE) *sk; BIO *btmp; EVP_PKEY *pkey; + unsigned char *abuf = NULL; const PKCS7_CTX *ctx = ossl_pkcs7_get0_ctx(p7); OSSL_LIB_CTX *libctx = ossl_pkcs7_ctx_get0_libctx(ctx); const char *propq = ossl_pkcs7_ctx_get0_propq(ctx); @@ -1072,7 +1073,7 @@ int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, sk = si->auth_attr; if ((sk != NULL) && (sk_X509_ATTRIBUTE_num(sk) != 0)) { - unsigned char md_dat[EVP_MAX_MD_SIZE], *abuf = NULL; + unsigned char md_dat[EVP_MAX_MD_SIZE]; unsigned int md_len; int alen; ASN1_OCTET_STRING *message_digest; @@ -1114,8 +1115,6 @@ int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, } if (!EVP_VerifyUpdate(mdc_tmp, abuf, alen)) goto err; - - OPENSSL_free(abuf); } os = si->enc_digest; @@ -1133,6 +1132,7 @@ int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, } ret = 1; err: + OPENSSL_free(abuf); EVP_MD_CTX_free(mdc_tmp); EVP_MD_free(fetched_md); return ret; diff --git a/deps/openssl/openssl/crypto/pkcs7/pk7_lib.c b/deps/openssl/openssl/crypto/pkcs7/pk7_lib.c index 5ce591f758f7ff..bdd620526969da 100644 --- a/deps/openssl/openssl/crypto/pkcs7/pk7_lib.c +++ b/deps/openssl/openssl/crypto/pkcs7/pk7_lib.c @@ -28,6 +28,11 @@ long PKCS7_ctrl(PKCS7 *p7, int cmd, long larg, char *parg) /* NOTE(emilia): does not support detached digested data. */ case PKCS7_OP_SET_DETACHED_SIGNATURE: if (nid == NID_pkcs7_signed) { + if (p7->d.sign == NULL) { + ERR_raise(ERR_LIB_PKCS7, PKCS7_R_NO_CONTENT); + ret = 0; + break; + } ret = p7->detached = (int)larg; if (ret && PKCS7_type_is_data(p7->d.sign->contents)) { ASN1_OCTET_STRING *os; diff --git a/deps/openssl/openssl/crypto/sm2/sm2_sign.c b/deps/openssl/openssl/crypto/sm2/sm2_sign.c index 71ccfcfc4c3dee..2097cd2fca8695 100644 --- a/deps/openssl/openssl/crypto/sm2/sm2_sign.c +++ b/deps/openssl/openssl/crypto/sm2/sm2_sign.c @@ -331,12 +331,10 @@ static int sm2_sig_verify(const EC_KEY *key, const ECDSA_SIG *sig, OSSL_LIB_CTX *libctx = ossl_ec_key_get_libctx(key); ctx = BN_CTX_new_ex(libctx); - pt = EC_POINT_new(group); - if (ctx == NULL || pt == NULL) { + if (ctx == NULL) { ERR_raise(ERR_LIB_SM2, ERR_R_MALLOC_FAILURE); goto done; } - BN_CTX_start(ctx); t = BN_CTX_get(ctx); x1 = BN_CTX_get(ctx); @@ -345,6 +343,12 @@ static int sm2_sig_verify(const EC_KEY *key, const ECDSA_SIG *sig, goto done; } + pt = EC_POINT_new(group); + if (pt == NULL) { + ERR_raise(ERR_LIB_SM2, ERR_R_MALLOC_FAILURE); + goto done; + } + /* * B1: verify whether r' in [1,n-1], verification failed if not * B2: verify whether s' in [1,n-1], verification failed if not diff --git a/deps/openssl/openssl/crypto/srp/srp_vfy.c b/deps/openssl/openssl/crypto/srp/srp_vfy.c index 96d511ffe6368e..4b842dfd912973 100644 --- a/deps/openssl/openssl/crypto/srp/srp_vfy.c +++ b/deps/openssl/openssl/crypto/srp/srp_vfy.c @@ -216,6 +216,8 @@ int SRP_user_pwd_set1_ids(SRP_user_pwd *vinfo, const char *id, { OPENSSL_free(vinfo->id); OPENSSL_free(vinfo->info); + vinfo->id = NULL; + vinfo->info = NULL; if (id != NULL && NULL == (vinfo->id = OPENSSL_strdup(id))) return 0; return (info == NULL || NULL != (vinfo->info = OPENSSL_strdup(info))); diff --git a/deps/openssl/openssl/crypto/threads_win.c b/deps/openssl/openssl/crypto/threads_win.c index dbeda74d73a70a..43f36ee6a333ba 100644 --- a/deps/openssl/openssl/crypto/threads_win.c +++ b/deps/openssl/openssl/crypto/threads_win.c @@ -212,7 +212,8 @@ int CRYPTO_THREAD_compare_id(CRYPTO_THREAD_ID a, CRYPTO_THREAD_ID b) int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock) { - *ret = (int)InterlockedExchangeAdd((long volatile *)val, (long)amount) + amount; + *ret = (int)InterlockedExchangeAdd((LONG volatile *)val, (LONG)amount) + + amount; return 1; } diff --git a/deps/openssl/openssl/crypto/trace.c b/deps/openssl/openssl/crypto/trace.c index 3df9b5a51e9941..90a6350bebae5a 100644 --- a/deps/openssl/openssl/crypto/trace.c +++ b/deps/openssl/openssl/crypto/trace.c @@ -473,7 +473,7 @@ BIO *OSSL_trace_begin(int category) char *prefix = NULL; category = ossl_trace_get_category(category); - if (category < 0) + if (category < 0 || !OSSL_trace_enabled(category)) return NULL; channel = trace_channels[category].bio; diff --git a/deps/openssl/openssl/crypto/ui/ui_util.c b/deps/openssl/openssl/crypto/ui/ui_util.c index 59b00b225adfa2..554bf7985659ed 100644 --- a/deps/openssl/openssl/crypto/ui/ui_util.c +++ b/deps/openssl/openssl/crypto/ui/ui_util.c @@ -105,14 +105,18 @@ static int ui_read(UI *ui, UI_STRING *uis) switch (UI_get_string_type(uis)) { case UIT_PROMPT: { - char result[PEM_BUFSIZE + 1]; + int len; + char result[PEM_BUFSIZE + 1]; /* reserve one byte at the end */ const struct pem_password_cb_data *data = UI_method_get_ex_data(UI_get_method(ui), ui_method_data_index); int maxsize = UI_get_result_maxsize(uis); - int len = data->cb(result, - maxsize > PEM_BUFSIZE ? PEM_BUFSIZE : maxsize, - data->rwflag, UI_get0_user_data(ui)); + if (maxsize > PEM_BUFSIZE) + maxsize = PEM_BUFSIZE; + len = data->cb(result, maxsize, data->rwflag, + UI_get0_user_data(ui)); + if (len > maxsize) + return -1; if (len >= 0) result[len] = '\0'; if (len < 0) diff --git a/deps/openssl/openssl/crypto/x509/v3_admis.c b/deps/openssl/openssl/crypto/x509/v3_admis.c index 3bce232ed2fe83..53259c29f569d9 100644 --- a/deps/openssl/openssl/crypto/x509/v3_admis.c +++ b/deps/openssl/openssl/crypto/x509/v3_admis.c @@ -67,11 +67,10 @@ const X509V3_EXT_METHOD ossl_v3_ext_admission = { NULL /* extension-specific data */ }; - static int i2r_NAMING_AUTHORITY(const struct v3_ext_method *method, void *in, BIO *bp, int ind) { - NAMING_AUTHORITY * namingAuthority = (NAMING_AUTHORITY*) in; + NAMING_AUTHORITY *namingAuthority = (NAMING_AUTHORITY *) in; if (namingAuthority == NULL) return 0; @@ -81,14 +80,14 @@ static int i2r_NAMING_AUTHORITY(const struct v3_ext_method *method, void *in, && namingAuthority->namingAuthorityUrl == NULL) return 0; - if (BIO_printf(bp, "%*snamingAuthority: ", ind, "") <= 0) + if (BIO_printf(bp, "%*snamingAuthority:\n", ind, "") <= 0) goto err; if (namingAuthority->namingAuthorityId != NULL) { char objbuf[128]; const char *ln = OBJ_nid2ln(OBJ_obj2nid(namingAuthority->namingAuthorityId)); - if (BIO_printf(bp, "%*s admissionAuthorityId: ", ind, "") <= 0) + if (BIO_printf(bp, "%*s namingAuthorityId: ", ind, "") <= 0) goto err; OBJ_obj2txt(objbuf, sizeof(objbuf), namingAuthority->namingAuthorityId, 1); @@ -130,9 +129,10 @@ static int i2r_ADMISSION_SYNTAX(const struct v3_ext_method *method, void *in, } for (i = 0; i < sk_ADMISSIONS_num(admission->contentsOfAdmissions); i++) { - ADMISSIONS* entry = sk_ADMISSIONS_value(admission->contentsOfAdmissions, i); + ADMISSIONS *entry = sk_ADMISSIONS_value(admission->contentsOfAdmissions, i); - if (BIO_printf(bp, "%*sEntry %0d:\n", ind, "", 1 + i) <= 0) goto err; + if (BIO_printf(bp, "%*sEntry %0d:\n", ind, "", 1 + i) <= 0) + goto err; if (entry->admissionAuthority != NULL) { if (BIO_printf(bp, "%*s admissionAuthority:\n", ind, "") <= 0 @@ -143,12 +143,12 @@ static int i2r_ADMISSION_SYNTAX(const struct v3_ext_method *method, void *in, } if (entry->namingAuthority != NULL) { - if (i2r_NAMING_AUTHORITY(method, entry->namingAuthority, bp, ind) <= 0) + if (i2r_NAMING_AUTHORITY(method, entry->namingAuthority, bp, ind + 2) <= 0) goto err; } for (j = 0; j < sk_PROFESSION_INFO_num(entry->professionInfos); j++) { - PROFESSION_INFO* pinfo = sk_PROFESSION_INFO_value(entry->professionInfos, j); + PROFESSION_INFO *pinfo = sk_PROFESSION_INFO_value(entry->professionInfos, j); if (BIO_printf(bp, "%*s Profession Info Entry %0d:\n", ind, "", 1 + j) <= 0) goto err; @@ -161,7 +161,7 @@ static int i2r_ADMISSION_SYNTAX(const struct v3_ext_method *method, void *in, } if (pinfo->namingAuthority != NULL) { - if (i2r_NAMING_AUTHORITY(method, pinfo->namingAuthority, bp, ind + 2) <= 0) + if (i2r_NAMING_AUTHORITY(method, pinfo->namingAuthority, bp, ind + 4) <= 0) goto err; } @@ -170,7 +170,7 @@ static int i2r_ADMISSION_SYNTAX(const struct v3_ext_method *method, void *in, if (BIO_printf(bp, "%*s Info Entries:\n", ind, "") <= 0) goto err; for (k = 0; k < sk_ASN1_STRING_num(pinfo->professionItems); k++) { - ASN1_STRING* val = sk_ASN1_STRING_value(pinfo->professionItems, k); + ASN1_STRING *val = sk_ASN1_STRING_value(pinfo->professionItems, k); if (BIO_printf(bp, "%*s ", ind, "") <= 0 || ASN1_STRING_print(bp, val) <= 0 @@ -183,7 +183,7 @@ static int i2r_ADMISSION_SYNTAX(const struct v3_ext_method *method, void *in, if (BIO_printf(bp, "%*s Profession OIDs:\n", ind, "") <= 0) goto err; for (k = 0; k < sk_ASN1_OBJECT_num(pinfo->professionOIDs); k++) { - ASN1_OBJECT* obj = sk_ASN1_OBJECT_value(pinfo->professionOIDs, k); + ASN1_OBJECT *obj = sk_ASN1_OBJECT_value(pinfo->professionOIDs, k); const char *ln = OBJ_nid2ln(OBJ_obj2nid(obj)); char objbuf[128]; @@ -207,31 +207,29 @@ const ASN1_OBJECT *NAMING_AUTHORITY_get0_authorityId(const NAMING_AUTHORITY *n) return n->namingAuthorityId; } -void NAMING_AUTHORITY_set0_authorityId(NAMING_AUTHORITY *n, ASN1_OBJECT* id) +void NAMING_AUTHORITY_set0_authorityId(NAMING_AUTHORITY *n, ASN1_OBJECT *id) { ASN1_OBJECT_free(n->namingAuthorityId); n->namingAuthorityId = id; } -const ASN1_IA5STRING *NAMING_AUTHORITY_get0_authorityURL( - const NAMING_AUTHORITY *n) +const ASN1_IA5STRING *NAMING_AUTHORITY_get0_authorityURL(const NAMING_AUTHORITY *n) { return n->namingAuthorityUrl; } -void NAMING_AUTHORITY_set0_authorityURL(NAMING_AUTHORITY *n, ASN1_IA5STRING* u) +void NAMING_AUTHORITY_set0_authorityURL(NAMING_AUTHORITY *n, ASN1_IA5STRING *u) { ASN1_IA5STRING_free(n->namingAuthorityUrl); n->namingAuthorityUrl = u; } -const ASN1_STRING *NAMING_AUTHORITY_get0_authorityText( - const NAMING_AUTHORITY *n) +const ASN1_STRING *NAMING_AUTHORITY_get0_authorityText(const NAMING_AUTHORITY *n) { return n->namingAuthorityText; } -void NAMING_AUTHORITY_set0_authorityText(NAMING_AUTHORITY *n, ASN1_STRING* t) +void NAMING_AUTHORITY_set0_authorityText(NAMING_AUTHORITY *n, ASN1_STRING *t) { ASN1_IA5STRING_free(n->namingAuthorityText); n->namingAuthorityText = t; diff --git a/deps/openssl/openssl/crypto/x509/v3_san.c b/deps/openssl/openssl/crypto/x509/v3_san.c index 34ca16a6d72dae..d4999f1fc6c713 100644 --- a/deps/openssl/openssl/crypto/x509/v3_san.c +++ b/deps/openssl/openssl/crypto/x509/v3_san.c @@ -336,7 +336,7 @@ static GENERAL_NAMES *v2i_issuer_alt(X509V3_EXT_METHOD *method, static int copy_issuer(X509V3_CTX *ctx, GENERAL_NAMES *gens) { - GENERAL_NAMES *ialt; + GENERAL_NAMES *ialt = NULL; GENERAL_NAME *gen; X509_EXTENSION *ext; int i, num; @@ -371,6 +371,7 @@ static int copy_issuer(X509V3_CTX *ctx, GENERAL_NAMES *gens) return 1; err: + sk_GENERAL_NAME_free(ialt); return 0; } diff --git a/deps/openssl/openssl/crypto/x509/x509_cmp.c b/deps/openssl/openssl/crypto/x509/x509_cmp.c index 989fb8faa9f465..f2c3a568198d8f 100644 --- a/deps/openssl/openssl/crypto/x509/x509_cmp.c +++ b/deps/openssl/openssl/crypto/x509/x509_cmp.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -196,6 +196,8 @@ int X509_add_cert(STACK_OF(X509) *sk, X509 *cert, int flags) ERR_raise(ERR_LIB_X509, ERR_R_PASSED_NULL_PARAMETER); return 0; } + if (cert == NULL) + return 0; if ((flags & X509_ADD_FLAG_NO_DUP) != 0) { /* * not using sk_X509_set_cmp_func() and sk_X509_find() diff --git a/deps/openssl/openssl/crypto/x509/x_all.c b/deps/openssl/openssl/crypto/x509/x_all.c index e58c9ab1c117b4..158e11a8649c5f 100644 --- a/deps/openssl/openssl/crypto/x509/x_all.c +++ b/deps/openssl/openssl/crypto/x509/x_all.c @@ -92,11 +92,13 @@ int X509_sign_ctx(X509 *x, EVP_MD_CTX *ctx) static ASN1_VALUE *simple_get_asn1(const char *url, BIO *bio, BIO *rbio, int timeout, const ASN1_ITEM *it) { + size_t max_resp_len = (it == ASN1_ITEM_rptr(X509_CRL)) ? + OSSL_HTTP_DEFAULT_MAX_CRL_LEN : OSSL_HTTP_DEFAULT_MAX_RESP_LEN; BIO *mem = OSSL_HTTP_get(url, NULL /* proxy */, NULL /* no_proxy */, bio, rbio, NULL /* cb */, NULL /* arg */, 1024 /* buf_size */, NULL /* headers */, NULL /* expected_ct */, 1 /* expect_asn1 */, - OSSL_HTTP_DEFAULT_MAX_RESP_LEN, timeout); + max_resp_len, timeout); ASN1_VALUE *res = ASN1_item_d2i_bio(it, mem, NULL); BIO_free(mem); diff --git a/deps/openssl/openssl/demos/cipher/aesccm.c b/deps/openssl/openssl/demos/cipher/aesccm.c index 5a2d4281506e15..f4430e727b2f51 100644 --- a/deps/openssl/openssl/demos/cipher/aesccm.c +++ b/deps/openssl/openssl/demos/cipher/aesccm.c @@ -94,7 +94,7 @@ int aes_ccm_encrypt(void) if ((cipher = EVP_CIPHER_fetch(libctx, "AES-192-CCM", propq)) == NULL) goto err; - /* Set nonce length if default 96 bits is not appropriate */ + /* Default nonce length for AES-CCM is 7 bytes (56 bits). */ params[0] = OSSL_PARAM_construct_size_t(OSSL_CIPHER_PARAM_AEAD_IVLEN, &ccm_nonce_len); /* Set tag length */ diff --git a/deps/openssl/openssl/doc/build.info b/deps/openssl/openssl/doc/build.info index f7791462739589..0279e2390a3242 100644 --- a/deps/openssl/openssl/doc/build.info +++ b/deps/openssl/openssl/doc/build.info @@ -2271,10 +2271,6 @@ DEPEND[html/man3/SSL_CTX_set_psk_client_callback.html]=man3/SSL_CTX_set_psk_clie GENERATE[html/man3/SSL_CTX_set_psk_client_callback.html]=man3/SSL_CTX_set_psk_client_callback.pod DEPEND[man/man3/SSL_CTX_set_psk_client_callback.3]=man3/SSL_CTX_set_psk_client_callback.pod GENERATE[man/man3/SSL_CTX_set_psk_client_callback.3]=man3/SSL_CTX_set_psk_client_callback.pod -DEPEND[html/man3/SSL_CTX_set_quic_method.html]=man3/SSL_CTX_set_quic_method.pod -GENERATE[html/man3/SSL_CTX_set_quic_method.html]=man3/SSL_CTX_set_quic_method.pod -DEPEND[man/man3/SSL_CTX_set_quic_method.3]=man3/SSL_CTX_set_quic_method.pod -GENERATE[man/man3/SSL_CTX_set_quic_method.3]=man3/SSL_CTX_set_quic_method.pod DEPEND[html/man3/SSL_CTX_set_quiet_shutdown.html]=man3/SSL_CTX_set_quiet_shutdown.pod GENERATE[html/man3/SSL_CTX_set_quiet_shutdown.html]=man3/SSL_CTX_set_quiet_shutdown.pod DEPEND[man/man3/SSL_CTX_set_quiet_shutdown.3]=man3/SSL_CTX_set_quiet_shutdown.pod @@ -3355,7 +3351,6 @@ html/man3/SSL_CTX_set_msg_callback.html \ html/man3/SSL_CTX_set_num_tickets.html \ html/man3/SSL_CTX_set_options.html \ html/man3/SSL_CTX_set_psk_client_callback.html \ -html/man3/SSL_CTX_set_quic_method.html \ html/man3/SSL_CTX_set_quiet_shutdown.html \ html/man3/SSL_CTX_set_read_ahead.html \ html/man3/SSL_CTX_set_record_padding_callback.html \ @@ -3964,7 +3959,6 @@ man/man3/SSL_CTX_set_msg_callback.3 \ man/man3/SSL_CTX_set_num_tickets.3 \ man/man3/SSL_CTX_set_options.3 \ man/man3/SSL_CTX_set_psk_client_callback.3 \ -man/man3/SSL_CTX_set_quic_method.3 \ man/man3/SSL_CTX_set_quiet_shutdown.3 \ man/man3/SSL_CTX_set_read_ahead.3 \ man/man3/SSL_CTX_set_record_padding_callback.3 \ diff --git a/deps/openssl/openssl/doc/man1/openssl-ca.pod.in b/deps/openssl/openssl/doc/man1/openssl-ca.pod.in index 1d497e848e796e..1c07db3c8ef167 100644 --- a/deps/openssl/openssl/doc/man1/openssl-ca.pod.in +++ b/deps/openssl/openssl/doc/man1/openssl-ca.pod.in @@ -701,7 +701,7 @@ A sample configuration file with the relevant sections for this command: default_days = 365 # how long to certify for default_crl_days= 30 # how long before next CRL - default_md = md5 # md to use + default_md = sha256 # md to use policy = policy_any # default policy email_in_dn = no # Don't add the email into cert DN diff --git a/deps/openssl/openssl/doc/man1/openssl-cmp.pod.in b/deps/openssl/openssl/doc/man1/openssl-cmp.pod.in index 9240916fce40fe..889a59cd497ecd 100644 --- a/deps/openssl/openssl/doc/man1/openssl-cmp.pod.in +++ b/deps/openssl/openssl/doc/man1/openssl-cmp.pod.in @@ -453,8 +453,11 @@ Reason numbers defined in RFC 5280 are: =item B<-server> I<[http[s]://][userinfo@]host[:port][/path][?query][#fragment]> -The DNS hostname or IP address and optionally port +The I domain name or IP address and optionally I of the CMP server to connect to using HTTP(S). +IP address may be for v4 or v6, such as C<127.0.0.1> or C<[::1]> for localhost. +If the host string is an IPv6 address, it must be enclosed in C<[> and C<]>. + This option excludes I<-port> and I<-use_mock_srv>. It is ignored if I<-rspin> is given with enough filename arguments. @@ -468,6 +471,7 @@ If a path is included it provides the default value for the B<-path> option. The HTTP(S) proxy server to use for reaching the CMP server unless B<-no_proxy> applies, see below. +If the host string is an IPv6 address, it must be enclosed in C<[> and C<]>. The proxy port defaults to 80 or 443 if the scheme is C; apart from that the optional C or C prefix is ignored (note that TLS may be selected by B<-tls_used>), as well as any path, userinfo, and query, and fragment @@ -969,8 +973,9 @@ This excludes the B<-server> and B<-port> options. =item B<-port> I -Act as HTTP-based CMP server mock-up listening on the given port. -This excludes the B<-server> and B<-use_mock_srv> options. +Act as HTTP-based CMP server mock-up listening on the given local port. +The client may address the server via, e.g., C<127.0.0.1> or C<[::1]>. +This option excludes the B<-server> and B<-use_mock_srv> options. The B<-rspin>, B<-rspout>, B<-reqin>, and B<-reqout> options so far are not supported in this mode. diff --git a/deps/openssl/openssl/doc/man1/openssl-cms.pod.in b/deps/openssl/openssl/doc/man1/openssl-cms.pod.in index 65a61ee97f1d6a..f4d12312b7cbcb 100644 --- a/deps/openssl/openssl/doc/man1/openssl-cms.pod.in +++ b/deps/openssl/openssl/doc/man1/openssl-cms.pod.in @@ -191,6 +191,10 @@ to the output file. Verify signed data. Expects a signed data on input and outputs the signed data. Both clear text and opaque signing is supported. +By default, validation of signer certificates and their chain +is done w.r.t. the S/MIME signing (C) purpose. +For details see L. + =item B<-resign> Resign a message: take an existing message and one or more new signers. @@ -374,7 +378,8 @@ See L for details. =item B<-originator> I A certificate of the originator of the encrypted message. Necessary for -decryption when Key Agreement is in use for a shared key. +decryption when Key Agreement is in use for a shared key. Currently, not +allowed for encryption. =item B<-recip> I @@ -902,7 +907,7 @@ The B<-engine> option was deprecated in OpenSSL 3.0. =head1 COPYRIGHT -Copyright 2008-2023 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/deps/openssl/openssl/doc/man1/openssl-fipsinstall.pod.in b/deps/openssl/openssl/doc/man1/openssl-fipsinstall.pod.in index 97e2ae910c170b..57758597cdaeb4 100644 --- a/deps/openssl/openssl/doc/man1/openssl-fipsinstall.pod.in +++ b/deps/openssl/openssl/doc/man1/openssl-fipsinstall.pod.in @@ -239,6 +239,10 @@ L, L, L +=head1 HISTORY + +The B application was added in OpenSSL 3.0. + =head1 COPYRIGHT Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved. diff --git a/deps/openssl/openssl/doc/man1/openssl-info.pod.in b/deps/openssl/openssl/doc/man1/openssl-info.pod.in index fe7abee4867673..0e91bb28ee10d3 100644 --- a/deps/openssl/openssl/doc/man1/openssl-info.pod.in +++ b/deps/openssl/openssl/doc/man1/openssl-info.pod.in @@ -17,7 +17,6 @@ B [B<-listsep>] [B<-seeds>] [B<-cpusettings>] -[B<-quic>] =head1 DESCRIPTION @@ -74,10 +73,6 @@ Outputs the randomness seed sources. Outputs the OpenSSL CPU settings info. -=item B<-quic> - -Outputs the OpenSSL QUIC info. - =back =head1 HISTORY diff --git a/deps/openssl/openssl/doc/man1/openssl-ocsp.pod.in b/deps/openssl/openssl/doc/man1/openssl-ocsp.pod.in index fbad5079af6756..fd23a44df063fd 100644 --- a/deps/openssl/openssl/doc/man1/openssl-ocsp.pod.in +++ b/deps/openssl/openssl/doc/man1/openssl-ocsp.pod.in @@ -30,8 +30,8 @@ B B [B<-respin> I] [B<-url> I] [B<-host> I:I] -[B<-path>] -[B<-proxy> I<[http[s]://][userinfo@]host[:port][/path]>] +[B<-path> I] +[B<-proxy> I<[http[s]://][userinfo@]host[:port][/path][?query][#fragment]>] [B<-no_proxy> I] [B<-header>] [B<-timeout> I] @@ -160,24 +160,32 @@ with B<-serial>, B<-cert> and B<-host> options). =item B<-url> I -Specify the responder URL. Both HTTP and HTTPS (SSL/TLS) URLs can be specified. +Specify the responder host and optionally port and path via a URL. +Both HTTP and HTTPS (SSL/TLS) URLs can be specified. The optional userinfo and fragment components are ignored. Any given query component is handled as part of the path component. +For details, see the B<-host> and B<-path> options described next. -=item B<-host> I:I, B<-path> I +=item B<-host> I:I, B<-path> I If the B<-host> option is present then the OCSP request is sent to the host -I on port I. The B<-path> option specifies the HTTP pathname -to use or "/" by default. This is equivalent to specifying B<-url> with scheme -http:// and the given hostname, port, and pathname. +I on port I. +The I may be a domain name or an IP (v4 or v6) address, +such as C<127.0.0.1> or C<[::1]> for localhost. +If it is an IPv6 address, it must be enclosed in C<[> and C<]>. -=item B<-proxy> I<[http[s]://][userinfo@]host[:port][/path]> +The B<-path> option specifies the HTTP pathname to use or "/" by default. +This is equivalent to specifying B<-url> with scheme +http:// and the given I, I, and optional I. + +=item B<-proxy> I<[http[s]://][userinfo@]host[:port][/path][?query][#fragment]> The HTTP(S) proxy server to use for reaching the OCSP server unless B<-no_proxy> applies, see below. +If the host string is an IPv6 address, it must be enclosed in C<[> and C<]>. The proxy port defaults to 80 or 443 if the scheme is C; apart from that the optional C or C prefix is ignored, -as well as any userinfo and path components. +as well as any userinfo, path, query, and fragment components. Defaults to the environment variable C if set, else C in case no TLS is used, otherwise C if set, else C. @@ -369,8 +377,8 @@ subject name. =item B<-port> I -Port to listen for OCSP requests on. The port may also be specified -using the B option. +Port to listen for OCSP requests on. Both IPv4 and IPv6 are possible. +The port may also be specified using the B<-url> option. A C<0> argument indicates that any available port shall be chosen automatically. =item B<-ignore_err> diff --git a/deps/openssl/openssl/doc/man1/openssl-pkeyutl.pod.in b/deps/openssl/openssl/doc/man1/openssl-pkeyutl.pod.in index cf3427a35c0b35..2f6ef0021d1446 100644 --- a/deps/openssl/openssl/doc/man1/openssl-pkeyutl.pod.in +++ b/deps/openssl/openssl/doc/man1/openssl-pkeyutl.pod.in @@ -44,6 +44,8 @@ B B This command can be used to perform low-level public key operations using any supported algorithm. +By default the signing operation (see B<-sign> option) is assumed. + =head1 OPTIONS =over 4 @@ -59,20 +61,29 @@ if this option is not specified. =item B<-rawin> -This indicates that the input data is raw data, which is not hashed by any -message digest algorithm. The user can specify a digest algorithm by using -the B<-digest> option. This option can only be used with B<-sign> and -B<-verify> and must be used with the Ed25519 and Ed448 algorithms. +This indicates that the signature or verification input data is raw data, +which is not hashed by any message digest algorithm. +Except with EdDSA, +the user can specify a digest algorithm by using the B<-digest> option. +For signature algorithms like RSA, DSA and ECDSA, +the default digest algorithm is SHA-256. For SM2, it is SM3. + +This option can only be used with B<-sign> and B<-verify>. +For EdDSA (the Ed25519 and Ed448 algorithms) this option is required. =item B<-digest> I -This specifies the digest algorithm which is used to hash the input data before -signing or verifying it with the input key. This option could be omitted if the -signature algorithm does not require one (for instance, EdDSA). If this option -is omitted but the signature algorithm requires one, a default value will be -used. For signature algorithms like RSA, DSA and ECDSA, SHA-256 will be the -default digest algorithm. For SM2, it will be SM3. If this option is present, -then the B<-rawin> option must be also specified. +This option can only be used with B<-sign> and B<-verify>. +It specifies the digest algorithm that is used to hash the input data +before signing or verifying it with the input key. This option could be omitted +if the signature algorithm does not require preprocessing the input through +a pluggable hash function before signing (for instance, EdDSA). If this option +is omitted but the signature algorithm requires one and the B<-rawin> option +is given, a default value will be used (see B<-rawin> for details). +If this option is present, then the B<-rawin> option is required. + +At this time, HashEdDSA (the ph or "prehash" variant of EdDSA) is not supported, +so the B<-digest> option cannot be used with EdDSA. =item B<-out> I @@ -81,7 +92,7 @@ default. =item B<-sigfile> I -Signature file, required for B<-verify> operations only +Signature file, required and allowed for B<-verify> operations only =item B<-inkey> I|I @@ -117,21 +128,42 @@ The input is a certificate containing a public key. =item B<-rev> Reverse the order of the input buffer. This is useful for some libraries -(such as CryptoAPI) which represent the buffer in little endian format. +(such as CryptoAPI) which represent the buffer in little-endian format. +This cannot be used in conjunction with B<-rawin>. =item B<-sign> -Sign the input data (which must be a hash) and output the signed result. This -requires a private key. +Sign the input data and output the signed result. This requires a private key. +Using a message digest operation along with this is recommended, +when applicable, see the B<-rawin> and B<-digest> options for details. +Otherwise, the input data given with the B<-in> option is assumed to already +be a digest, but this may then require an additional B<-pkeyopt> CI +in some cases (e.g., RSA with the default PKCS#1 padding mode). +Even for other algorithms like ECDSA, where the additional B<-pkeyopt> option +does not affect signature output, it is recommended, as it enables +checking that the input length is consistent with the intended digest. =item B<-verify> -Verify the input data (which must be a hash) against the signature file and -indicate if the verification succeeded or failed. +Verify the input data against the signature given with the B<-sigfile> option +and indicate if the verification succeeded or failed. +The input data given with the B<-in> option is assumed to be a hash value +unless the B<-rawin> option is specified or implied. +With raw data, when a digest algorithm is applicable, though it may be inferred +from the signature or take a default value, it should also be specified. =item B<-verifyrecover> -Verify the input data (which must be a hash) and output the recovered data. +Verify the given signature and output the recovered data (signature payload). +For example, in case of RSA PKCS#1 the recovered data is the B +DER encoding of the digest algorithm OID and value as specified in +L. + +Note that here the input given with the B<-in> option is not a signature input +(as with the B<-sign> and B<-verify> options) but a signature output value, +typically produced using the B<-sign> option. + +This option is available only for use with RSA keys. =item B<-encrypt> @@ -175,8 +207,9 @@ hex dump the output data. =item B<-asn1parse> -Parse the ASN.1 output data, this is useful when combined with the -B<-verifyrecover> option when an ASN1 structure is signed. +Parse the ASN.1 output data to check its DER encoding and print any errors. +When combined with the B<-verifyrecover> option, this may be useful only in case +an ASN.1 DER-encoded structure had been signed directly (without hashing it). {- $OpenSSL::safe::opt_engine_item -} @@ -200,8 +233,8 @@ engine I for crypto operations. The operations and options supported vary according to the key algorithm and its implementation. The OpenSSL operations and options are indicated below. -Unless otherwise mentioned all algorithms support the BI option -which specifies the digest in use for sign, verify and verifyrecover operations. +Unless otherwise mentioned, all algorithms support the BI option, +which specifies the digest in use for the signing and verification operations. The value I should represent a digest name as used in the EVP_get_digestbyname() function for example B. This value is not used to hash the input data. It is used (by some algorithms) for sanity-checking the diff --git a/deps/openssl/openssl/doc/man1/openssl-req.pod.in b/deps/openssl/openssl/doc/man1/openssl-req.pod.in index a56f548de8ee08..7ba599b54a0696 100644 --- a/deps/openssl/openssl/doc/man1/openssl-req.pod.in +++ b/deps/openssl/openssl/doc/man1/openssl-req.pod.in @@ -638,7 +638,7 @@ Sample configuration file prompting for field values: attributes = req_attributes req_extensions = v3_ca - dirstring_type = nobmp + dirstring_type = nombstr [ req_distinguished_name ] countryName = Country Name (2 letter code) @@ -778,7 +778,7 @@ The <-nodes> option was deprecated in OpenSSL 3.0, too; use B<-noenc> instead. =head1 COPYRIGHT -Copyright 2000-2024 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2025 The OpenSSL Project Authors. All Rights Reserved. Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/deps/openssl/openssl/doc/man1/openssl-s_client.pod.in b/deps/openssl/openssl/doc/man1/openssl-s_client.pod.in index bd6171aa265c69..caebe10bffb8d0 100644 --- a/deps/openssl/openssl/doc/man1/openssl-s_client.pod.in +++ b/deps/openssl/openssl/doc/man1/openssl-s_client.pod.in @@ -10,11 +10,11 @@ openssl-s_client - SSL/TLS client program B B [B<-help>] [B<-ssl_config> I
] -[B<-connect> I] +[B<-connect> I:I] [B<-host> I] [B<-port> I] -[B<-bind> I] -[B<-proxy> I] +[B<-bind> I:I] +[B<-proxy> I:I] [B<-proxy_user> I] [B<-proxy_pass> I] [B<-unix> I] @@ -157,6 +157,7 @@ This specifies the host and optional port to connect to. It is possible to select the host and port using the optional target positional argument instead. If neither this nor the target positional argument are specified then an attempt is made to connect to the local host on port 4433. +If the host string is an IPv6 address, it must be enclosed in C<[> and C<]>. =item B<-host> I @@ -166,17 +167,19 @@ Host to connect to; use B<-connect> instead. Connect to the specified port; use B<-connect> instead. -=item B<-bind> I +=item B<-bind> I:I This specifies the host address and or port to bind as the source for the connection. For Unix-domain sockets the port is ignored and the host is used as the source socket address. +If the host string is an IPv6 address, it must be enclosed in C<[> and C<]>. -=item B<-proxy> I +=item B<-proxy> I:I When used with the B<-connect> flag, the program uses the host and port specified with this flag and issues an HTTP CONNECT command to connect to the desired server. +If the host string is an IPv6 address, it must be enclosed in C<[> and C<]>. =item B<-proxy_user> I @@ -260,7 +263,9 @@ See L for details. =item B<-crl_download> -Download CRL from distribution points in the certificate. +Download CRL from distribution points in the certificate. Note that this option +is ignored if B<-crl_check> option is not provided. Note that the maximum size +of CRL is limited by L function. =item B<-key> I|I @@ -282,14 +287,20 @@ see L. The verify depth to use. This specifies the maximum length of the server certificate chain and turns on server certificate verification. -Currently the verify operation continues after errors so all the problems +Unless the B<-verify_return_error> option is given, +the verify operation continues after errors so all the problems with a certificate chain can be seen. As a side effect the connection will never fail due to a server certificate verify failure. +By default, validation of server certificates and their chain +is done w.r.t. the (D)TLS Server (C) purpose. +For details see L. + =item B<-verify_return_error> -Return verification errors instead of continuing. This will typically -abort the handshake with a fatal error. +Turns on server certificate verification, like with B<-verify>, +but returns verification errors instead of continuing. +This will typically abort the handshake with a fatal error. =item B<-verify_quiet> @@ -799,10 +810,11 @@ proceed unless the B<-verify_return_error> option is used. =item I:I -Rather than providing B<-connect>, the target hostname and optional port may +Rather than providing B<-connect>, the target host and optional port may be provided as a single positional argument after all options. If neither this nor B<-connect> are provided, falls back to attempting to connect to I on port I<4433>. +If the host string is an IPv6 address, it must be enclosed in C<[> and C<]>. =back @@ -881,6 +893,51 @@ option: any verify errors are then returned aborting the handshake. The B<-bind> option may be useful if the server or a firewall requires connections to come from some particular address and or port. +=head2 Note on Non-Interactive Use + +When B is run in a non-interactive environment (e.g., a cron job or +a script without a valid I), it may close the connection prematurely, +especially with TLS 1.3. To prevent this, you can use the B<-ign_eof> flag, +which keeps B running even after reaching EOF from I. + +For example: + + openssl s_client -connect :443 -tls1_3 + -sess_out /path/to/tls_session_params_file + -ign_eof can lead to issues if the server keeps +the connection open, expecting the client to close first. In such cases, the +client may hang indefinitely. This behavior is not uncommon, particularly with +protocols where the server waits for a graceful disconnect from the client. + +For example, when connecting to an SMTP server, the session may pause if the +server expects a QUIT command before closing: + + $ openssl s_client -brief -ign_eof -starttls smtp + -connect :25 :25 + -starttls smtp -brief -ign_eof + +Similarly, for HTTP/1.1 connections, including a `Connection: close` header +ensures the server closes the connection after responding: + + printf 'GET / HTTP/1.1\r\nHost: \r\nConnection: close\r\n\r\n' + | openssl s_client -connect :443 -brief + +These approaches help manage the connection closure gracefully and prevent +hangs caused by the server waiting for the client to initiate the disconnect. + =head1 BUGS Because this program has a lot of options and also because some of the diff --git a/deps/openssl/openssl/doc/man1/openssl-s_server.pod.in b/deps/openssl/openssl/doc/man1/openssl-s_server.pod.in index 99a252a8225453..f0825ad33d1fc3 100644 --- a/deps/openssl/openssl/doc/man1/openssl-s_server.pod.in +++ b/deps/openssl/openssl/doc/man1/openssl-s_server.pod.in @@ -74,7 +74,7 @@ B B [B<-status>] [B<-status_verbose>] [B<-status_timeout> I] -[B<-proxy> I<[http[s]://][userinfo@]host[:port][/path]>] +[B<-proxy> I<[http[s]://][userinfo@]host[:port][/path][?query][#fragment]>] [B<-no_proxy> I] [B<-status_url> I] [B<-status_file> I] @@ -202,6 +202,10 @@ must supply a certificate or an error occurs. If the cipher suite cannot request a client certificate (for example an anonymous cipher suite or PSK) this option has no effect. +By default, validation of any supplied client certificate and its chain +is done w.r.t. the (D)TLS Client (C) purpose. +For details see L. + =item B<-cert> I The certificate to use, most servers cipher suites require the use of a @@ -504,13 +508,14 @@ a verbose printout of the OCSP response. Sets the timeout for OCSP response to I seconds. -=item B<-proxy> I<[http[s]://][userinfo@]host[:port][/path]> +=item B<-proxy> I<[http[s]://][userinfo@]host[:port][/path][?query][#fragment]> The HTTP(S) proxy server to use for reaching the OCSP server unless B<-no_proxy> applies, see below. +If the host string is an IPv6 address, it must be enclosed in C<[> and C<]>. The proxy port defaults to 80 or 443 if the scheme is C; apart from that the optional C or C prefix is ignored, -as well as any userinfo and path components. +as well as any userinfo, path, query, and fragment components. Defaults to the environment variable C if set, else C in case no TLS is used, otherwise C if set, else C. diff --git a/deps/openssl/openssl/doc/man1/openssl-s_time.pod.in b/deps/openssl/openssl/doc/man1/openssl-s_time.pod.in index 2b82cf1e98377d..ca41f59362f942 100644 --- a/deps/openssl/openssl/doc/man1/openssl-s_time.pod.in +++ b/deps/openssl/openssl/doc/man1/openssl-s_time.pod.in @@ -50,6 +50,7 @@ Print out a usage message. =item B<-connect> I:I This specifies the host and optional port to connect to. +If the host string is an IPv6 address, it must be enclosed in C<[> and C<]>. =item B<-www> I diff --git a/deps/openssl/openssl/doc/man1/openssl-smime.pod.in b/deps/openssl/openssl/doc/man1/openssl-smime.pod.in index 0b5dbb5df8f7fc..ffd09704f834e5 100644 --- a/deps/openssl/openssl/doc/man1/openssl-smime.pod.in +++ b/deps/openssl/openssl/doc/man1/openssl-smime.pod.in @@ -394,9 +394,9 @@ Verify a message and extract the signer's certificate if successful: Send encrypted mail using triple DES: - openssl smime -encrypt -in in.txt -from steve@openssl.org \ + openssl smime -encrypt -in in.txt -out mail.msg -from steve@openssl.org \ -to someone@somewhere -subject "Encrypted message" \ - -des3 user.pem -out mail.msg + -des3 user.pem Sign and encrypt mail: diff --git a/deps/openssl/openssl/doc/man1/openssl-ts.pod.in b/deps/openssl/openssl/doc/man1/openssl-ts.pod.in index 5f4895b34d6c4c..cd6dfd5305f037 100644 --- a/deps/openssl/openssl/doc/man1/openssl-ts.pod.in +++ b/deps/openssl/openssl/doc/man1/openssl-ts.pod.in @@ -584,10 +584,12 @@ To verify a timestamp reply that includes the certificate chain: -CAfile cacert.pem To verify a timestamp token against the original data file: + openssl ts -verify -data design2.txt -in design2.tsr \ -CAfile cacert.pem To verify a timestamp token against a message imprint: + openssl ts -verify -digest b7e5d3f93198b38379852f2c04e78d73abdd0f4b \ -in design2.tsr -CAfile cacert.pem diff --git a/deps/openssl/openssl/doc/man1/openssl-verification-options.pod b/deps/openssl/openssl/doc/man1/openssl-verification-options.pod index bf9ed9c1a62e1c..17fcd4eb79f586 100644 --- a/deps/openssl/openssl/doc/man1/openssl-verification-options.pod +++ b/deps/openssl/openssl/doc/man1/openssl-verification-options.pod @@ -24,8 +24,9 @@ The most important of them are detailed in the following sections. In a nutshell, a valid chain of certificates needs to be built up and verified starting from the I that is to be verified and ending in a certificate that due to some policy is trusted. -Verification is done relative to the given I, which is the intended use -of the target certificate, such as SSL server, or by default for any purpose. +Certificate validation can be performed in the context of a I, which +is a high-level specification of the intended use of the target certificate, +such as C for TLS servers, or (by default) for any purpose. The details of how each OpenSSL command handles errors are documented on the specific command page. @@ -150,16 +151,17 @@ the chain components and their links are checked thoroughly. The first step is to check that each certificate is well-formed. Part of these checks are enabled only if the B<-x509_strict> option is given. -The second step is to check the extensions of every untrusted certificate -for consistency with the supplied purpose. -If the B<-purpose> option is not given then no such checks are done -except for SSL/TLS connection setup, -where by default C or C, are checked. -The target or "leaf" certificate, as well as any other untrusted certificates, -must have extensions compatible with the specified purpose. -All certificates except the target or "leaf" must also be valid CA certificates. -The precise extensions required are described in more detail in -L. +The second step is to check the X.509v3 extensions of every certificate +for consistency with the intended specific purpose, if any. +If the B<-purpose> option is not given then no such checks are done except for +CMS signature checking, where by default C is checked, and SSL/(D)TLS +connection setup, where by default C or C are checked. +The X.509v3 extensions of the target or "leaf" certificate +must be compatible with the specified purpose. +All other certificates down the chain are checked to be valid CA certificates, +and possibly also further non-standard checks are performed. +The precise extensions required are described in detail +in the L section below. The third step is to check the trust settings on the last certificate (which typically is a self-signed root CA certificate). @@ -455,13 +457,16 @@ Set policy variable inhibit-policy-mapping (see RFC5280). =item B<-purpose> I -The intended use for the certificate. -Currently defined purposes are C, C, C, +A high-level specification of the intended use of the target certificate. +Currently predefined purposes are C, C, C, C, C, C, C, C, and C. If peer certificate verification is enabled, by default the TLS implementation -as well as the commands B and B check for consistency -with TLS server or TLS client use, respectively. +and thus the commands L and L +check for consistency with +TLS server (C) or TLS client use (C), respectively. +By default, CMS signature validation, which can be done via L, +checks for consistency with S/MIME signing use (C). While IETF RFC 5280 says that B and B are only for WWW use, in practice they are used for all kinds of TLS clients @@ -491,19 +496,20 @@ the subject certificate. =item B<-verify_name> I -Use default verification policies like trust model and required certificate -policies identified by I. +Use a set of verification parameters, also known as verification method, +identified by I. The currently predefined methods are named C, +C, C with alias C, and C. +These mimic the combinations of purpose and trust settings used in SSL/(D)TLS, +and CMS/PKCS7 (including S/MIME). + +The verification parameters include the trust model, various flags that can +partly be set also via other command-line options, and the verification purpose, +which in turn implies certificate key usage and extended key usage requirements. + The trust model determines which auxiliary trust or reject OIDs are applicable to verifying the given certificate chain. They can be given using the B<-addtrust> and B<-addreject> options for L. -Supported policy names include: B, B, B, -B, B. -These mimics the combinations of purpose and trust settings used in SSL, CMS -and S/MIME. -As of OpenSSL 1.1.0, the trust model is inferred from the purpose when not -specified, so the B<-verify_name> options are functionally equivalent to the -corresponding B<-purpose> settings. =back @@ -548,9 +554,8 @@ This option has no effect and is retained for backward compatibility only. =head2 Certificate Extensions -Options like B<-purpose> lead to checking the certificate extensions, -which determine what the target certificate and intermediate CA certificates -can be used for. +Options like B<-purpose> and B<-verify_name> trigger the processing of specific +certificate extensions, which determine what certificates can be used for. =head3 Basic Constraints @@ -574,87 +579,117 @@ keyCertSign bit set if the keyUsage extension is present. =head3 Extended Key Usage -The extKeyUsage (EKU) extension places additional restrictions on the -certificate uses. If this extension is present (whether critical or not) -the key can only be used for the purposes specified. - -A complete description of each check is given below. The comments about +The extKeyUsage (EKU) extension places additional restrictions on +certificate use. If this extension is present (whether critical or not) +in an end-entity certficiate, the key is allowed only for the uses specified, +while the special EKU B allows for all uses. + +Note that according to RFC 5280 section 4.2.1.12, +the Extended Key Usage extension will appear only in end-entity certificates, +and consequently the standard certification path validation described +in its section 6 does not include EKU checks for CA certificates. +The CA/Browser Forum requires for TLS server, S/MIME, and code signing use +the presence of respective EKUs in subordinate CA certificates (while excluding +them for root CA certificates), while taking over from RFC 5280 +the certificate validity concept and certificate path validation. + +For historic reasons, OpenSSL has its own way of interpreting and checking +EKU extensions on CA certificates, which may change in the future. +It does not require the presence of EKU extensions in CA certificates, +but in case the verification purpose is +C, C, C, C, or C, +it checks that any present EKU extension (that does not contain +B) contains the respective EKU as detailed below. +Moreover, it does these checks even for trust anchor certificates. + +=head3 Checks Implied by Specific Predefined Policies + +A specific description of each check is given below. The comments about basicConstraints and keyUsage and X.509v1 certificates above apply to B CA certificates. - =over 4 -=item B +=item B<(D)TLS Client> (C) -The extended key usage extension must be absent or include the "web client -authentication" OID. The keyUsage extension must be absent or it must have the -digitalSignature bit set. The Netscape certificate type must be absent -or it must have the SSL client bit set. +Any given extended key usage extension must allow for C +("TLS WWW client authentication"). -=item B +For target certificates, +the key usage must allow for C and/or C. +The Netscape certificate type must be absent or have the SSL client bit set. -The extended key usage extension must be absent or include the "web client -authentication" OID. -The Netscape certificate type must be absent or it must have the SSL CA bit set. -This is used as a work around if the basicConstraints extension is absent. +For all other certificates the normal CA checks apply. In addition, +the Netscape certificate type must be absent or have the SSL CA bit set. +This is used as a workaround if the basicConstraints extension is absent. -=item B +=item B<(D)TLS Server> (C) -The extended key usage extension must be absent or include the "web server -authentication" and/or one of the SGC OIDs. The keyUsage extension must be -absent or it -must have the digitalSignature, the keyEncipherment set or both bits set. -The Netscape certificate type must be absent or have the SSL server bit set. +Any given extended key usage extension must allow for C +("TLS WWW server authentication") and/or include one of the SGC OIDs. -=item B +For target certificates, the key usage must +allow for C, C, and/or C. +The Netscape certificate type must be absent or have the SSL server bit set. -The extended key usage extension must be absent or include the "web server -authentication" and/or one of the SGC OIDs. The Netscape certificate type must -be absent or the SSL CA bit must be set. -This is used as a work around if the basicConstraints extension is absent. +For all other certificates the normal CA checks apply. In addition, +the Netscape certificate type must be absent or have the SSL CA bit set. +This is used as a workaround if the basicConstraints extension is absent. -=item B +=item B (C) -For Netscape SSL clients to connect to an SSL server it must have the -keyEncipherment bit set if the keyUsage extension is present. This isn't +In addition to what has been described for B, for a Netscape +SSL client to connect to an SSL server, its EE certficate must have the +B bit set if the keyUsage extension is present. This isn't always valid because some cipher suites use the key for digital signing. Otherwise it is the same as a normal SSL server. -=item B +=item B -The extended key usage extension must be absent or include the "email -protection" OID. The Netscape certificate type must be absent or should have the -S/MIME bit set. If the S/MIME bit is not set in the Netscape certificate type +Any given extended key usage extension must allow for C. + +For target certificates, +the Netscape certificate type must be absent or should have the S/MIME bit set. +If the S/MIME bit is not set in the Netscape certificate type then the SSL client bit is tolerated as an alternative but a warning is shown. This is because some Verisign certificates don't set the S/MIME bit. -=item B +For all other certificates the normal CA checks apply. In addition, +the Netscape certificate type must be absent or have the S/MIME CA bit set. +This is used as a workaround if the basicConstraints extension is absent. + +=item B (C) + +In addition to the common S/MIME checks, for target certficiates +the key usage must allow for C and/or B. + +=item B (C) + +In addition to the common S/MIME checks, for target certficiates +the key usage must allow for C. -In addition to the common S/MIME client tests the digitalSignature bit or -the nonRepudiation bit must be set if the keyUsage extension is present. +=item B (C) -=item B +For target certificates, the key usage must allow for C. -In addition to the common S/MIME tests the keyEncipherment bit must be set -if the keyUsage extension is present. +For all other certifcates the normal CA checks apply. +Except in this case the basicConstraints extension must be present. -=item B +=item B (C) -The extended key usage extension must be absent or include the "email -protection" OID. The Netscape certificate type must be absent or must have the -S/MIME CA bit set. -This is used as a work around if the basicConstraints extension is absent. +For target certificates, no checks are performed at this stage, +but special checks apply; see L. -=item B +For all other certifcates the normal CA checks apply. -The keyUsage extension must be absent or it must have the CRL signing bit -set. +=item B (C) -=item B +For target certificates, if the key usage extension is present, it must include +C and/or C and must not include other bits. +The EKU extension must be present and contain C only. +Moreover, it must be marked as critical. -The normal CA tests apply. Except in this case the basicConstraints extension -must be present. +For all other certifcates the normal CA checks apply. =back @@ -671,6 +706,7 @@ only the first one (in the mentioned order of locations) is recognised. =head1 SEE ALSO L, +L, L, L, L, diff --git a/deps/openssl/openssl/doc/man1/openssl.pod b/deps/openssl/openssl/doc/man1/openssl.pod index 201428e8700479..4865e5c33e6eba 100644 --- a/deps/openssl/openssl/doc/man1/openssl.pod +++ b/deps/openssl/openssl/doc/man1/openssl.pod @@ -653,111 +653,22 @@ See L for a more detailed description. =head1 ENVIRONMENT -The OpenSSL library can be take some configuration parameters from the -environment. Some of these variables are listed below. For information -about specific commands, see L, -L, and L. - -For information about the use of environment variables in configuration, -see L. - -For information about querying or specifying CPU architecture flags, see -L, and L. +The OpenSSL libraries can take some configuration parameters from the +environment. For information about all environment variables used by the OpenSSL libraries, +such as B, B, and B, see L. -=over 4 - -=item BI[,...] - -Enable tracing output of OpenSSL library, by name. -This output will only make sense if you know OpenSSL internals well. -Also, it might not give you any output at all, depending on how -OpenSSL was built. - -The value is a comma separated list of names, with the following -available: - -=over 4 - -=item B - -Traces the OpenSSL trace API itself. - -=item B - -Traces OpenSSL library initialization and cleanup. - -=item B - -Traces the TLS/SSL protocol. - -=item B - -Traces the ciphers used by the TLS/SSL protocol. - -=item B - -Show details about provider and engine configuration. - -=item B - -The function that is used by RSA, DSA (etc) code to select registered -ENGINEs, cache defaults and functional references (etc), will generate -debugging summaries. - -=item B - -Reference counts in the ENGINE structure will be monitored with a line -of generated for each change. - -=item B - -Traces PKCS#5 v2 key generation. - -=item B - -Traces PKCS#12 key generation. - -=item B - -Traces PKCS#12 decryption. - -=item B - -Generates the complete policy tree at various points during X.509 v3 -policy evaluation. - -=item B - -Traces BIGNUM context operations. - -=item B - -Traces CMP client and server activity. - -=item B - -Traces STORE operations. - -=item B - -Traces decoder operations. - -=item B - -Traces encoder operations. - -=item B - -Traces decrementing certain ASN.1 structure references. +For information about the use of environment variables in configuration, +see L. -=back +For information about specific commands, see L, +L, and L. -=back +For information about querying or specifying CPU architecture flags, see +L, and L. -=head1 SEE ALSO L, L, diff --git a/deps/openssl/openssl/doc/man3/ASN1_TIME_set.pod b/deps/openssl/openssl/doc/man3/ASN1_TIME_set.pod index 66d9fefe1af6e5..bdef3fdbb15562 100644 --- a/deps/openssl/openssl/doc/man3/ASN1_TIME_set.pod +++ b/deps/openssl/openssl/doc/man3/ASN1_TIME_set.pod @@ -102,8 +102,8 @@ functions check the syntax of the time structure I. The ASN1_TIME_print(), ASN1_UTCTIME_print() and ASN1_GENERALIZEDTIME_print() functions print the time structure I to BIO I in human readable -format. It will be of the format MMM DD HH:MM:SS YYYY [GMT], for example -"Feb 3 00:55:52 2015 GMT", which does not include a newline. +format. It will be of the format MMM DD HH:MM:SS[.s*] YYYY GMT, for example +"Feb E<32>3 00:55:52 2015 GMT", which does not include a newline. If the time structure has invalid format it prints out "Bad time value" and returns an error. The output for generalized time may include a fractional part following the second. @@ -179,6 +179,10 @@ starting with B and B act only on that specific time format. The functions starting with B will operate on either format. +Users familiar with RFC822 should note that when specifying the flag +B the year will be formatted as documented above, +i.e., using 4 digits, not 2 as specified in RFC822. + =head1 BUGS ASN1_TIME_print(), ASN1_UTCTIME_print() and ASN1_GENERALIZEDTIME_print() do @@ -272,7 +276,7 @@ The ASN1_TIME_compare() function was added in OpenSSL 1.1.1. =head1 COPYRIGHT -Copyright 2015-2021 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2015-2025 The OpenSSL Project Authors. All Rights Reserved. Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/deps/openssl/openssl/doc/man3/ASN1_aux_cb.pod b/deps/openssl/openssl/doc/man3/ASN1_aux_cb.pod index f87b51d5efac26..9963ea1350252e 100644 --- a/deps/openssl/openssl/doc/man3/ASN1_aux_cb.pod +++ b/deps/openssl/openssl/doc/man3/ASN1_aux_cb.pod @@ -87,7 +87,7 @@ found for the purposes of reference counting. =item I A callback that will be invoked at various points during the processing of -the the B. See below for further details. +the B. See below for further details. =item I @@ -97,7 +97,7 @@ will be saved if the B flag has been set. =item I A callback that will be invoked at various points during the processing of -the the B. This is used in preference to the I callback if +the B. This is used in preference to the I callback if the B flag is set. See below for further details. =back @@ -274,7 +274,7 @@ B operation types were added in OpenSSL 3.0. =head1 COPYRIGHT -Copyright 2021-2023 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2021-2025 The OpenSSL Project Authors. All Rights Reserved. Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/deps/openssl/openssl/doc/man3/BIO_s_accept.pod b/deps/openssl/openssl/doc/man3/BIO_s_accept.pod index 25a752998caeb5..22b3d35b737488 100644 --- a/deps/openssl/openssl/doc/man3/BIO_s_accept.pod +++ b/deps/openssl/openssl/doc/man3/BIO_s_accept.pod @@ -169,16 +169,16 @@ BIO_set_bind_mode(), BIO_get_bind_mode() and BIO_do_accept() are macros. BIO_do_accept(), BIO_set_accept_name(), BIO_set_accept_port(), BIO_set_nbio_accept(), BIO_set_accept_bios(), BIO_set_accept_ip_family(), and BIO_set_bind_mode() -return 1 for success and <=0 for failure. +return 1 for success and <= 0 for failure. BIO_get_accept_name() returns the accept name or NULL on error. BIO_get_peer_name() returns the peer name or NULL on error. BIO_get_accept_port() returns the accept port as a string or NULL on error. BIO_get_peer_port() returns the peer port as a string or NULL on error. -BIO_get_accept_ip_family() returns the IP family or <=0 on error. +BIO_get_accept_ip_family() returns the IP family or <= 0 on error. -BIO_get_bind_mode() returns the set of B flags, or <=0 on failure. +BIO_get_bind_mode() returns the set of B flags, or <= 0 on failure. BIO_new_accept() returns a BIO or NULL on error. diff --git a/deps/openssl/openssl/doc/man3/BIO_s_connect.pod b/deps/openssl/openssl/doc/man3/BIO_s_connect.pod index ab813b32d03159..a3c9e6428e470d 100644 --- a/deps/openssl/openssl/doc/man3/BIO_s_connect.pod +++ b/deps/openssl/openssl/doc/man3/BIO_s_connect.pod @@ -59,7 +59,7 @@ a single call: that is it creates a new connect BIO with hostname B. BIO_set_conn_hostname() uses the string B to set the hostname. The hostname can be an IP address; if the address is an IPv6 one, it -must be enclosed with brackets C<[> and C<]>. +must be enclosed in brackets C<[> and C<]>. The hostname can also include the port in the form hostname:port; see L and BIO_set_conn_port() for details. diff --git a/deps/openssl/openssl/doc/man3/ECDSA_sign.pod b/deps/openssl/openssl/doc/man3/ECDSA_sign.pod index 7e5646665335a0..88e851885a0108 100644 --- a/deps/openssl/openssl/doc/man3/ECDSA_sign.pod +++ b/deps/openssl/openssl/doc/man3/ECDSA_sign.pod @@ -52,7 +52,7 @@ size use L with a NULL I parameter. ECDSA_sign() computes a digital signature of the I bytes hash value I using the private EC key I. The DER encoded signatures is -stored in I and its length is returned in I. Note: I must +stored in I and its length is returned in I. Note: I must point to ECDSA_size(eckey) bytes of memory. The parameter I is currently ignored. ECDSA_sign() is wrapper function for ECDSA_sign_ex() with I and I set to NULL. @@ -82,7 +82,7 @@ used in a later call to ECDSA_sign_ex() or ECDSA_do_sign_ex(). ECDSA_sign_ex() computes a digital signature of the I bytes hash value I using the private EC key I and the optional pre-computed values I and I. The DER encoded signature is stored in I and its -length is returned in I. Note: I must point to ECDSA_size(eckey) +length is returned in I. Note: I must point to ECDSA_size(eckey) bytes of memory. The parameter I is ignored. ECDSA_do_sign_ex() is similar to ECDSA_sign_ex() except the signature is diff --git a/deps/openssl/openssl/doc/man3/EVP_EncryptInit.pod b/deps/openssl/openssl/doc/man3/EVP_EncryptInit.pod index f037d135c9da06..a4635f994c2f9a 100644 --- a/deps/openssl/openssl/doc/man3/EVP_EncryptInit.pod +++ b/deps/openssl/openssl/doc/man3/EVP_EncryptInit.pod @@ -1284,6 +1284,15 @@ indicates whether the operation was successful. If it does not indicate success, the authentication operation has failed and any output data B be used as it is corrupted. +Please note that the number of authenticated bytes returned by +EVP_CipherUpdate() depends on the cipher used. Stream ciphers, such as ChaCha20 +or ciphers in GCM mode, can handle 1 byte at a time, resulting in an effective +"block" size of 1. Conversely, ciphers in OCB mode must process data one block +at a time, and the block size is returned. + +Regardless of the returned size, it is safe to pass unpadded data to an +EVP_CipherUpdate() call in a single operation. + =head2 GCM and OCB Modes The following Is are supported in GCM and OCB modes. @@ -1319,10 +1328,9 @@ For GCM, this call is only valid when decrypting data. For OCB, this call is valid when decrypting data to set the expected tag, and when encrypting to set the desired tag length. -In OCB mode, calling this when encrypting with C set to C sets the -tag length. The tag length can only be set before specifying an IV. If this is -not called prior to setting the IV during encryption, then a default tag length -is used. +In OCB mode, calling this with C set to C sets the tag length. +The tag length can only be set before specifying an IV. If this is not called +prior to setting the IV, then a default tag length is used. For OCB AES, the default tag length is 16 (i.e. 128 bits). It is also the maximum tag length for OCB. diff --git a/deps/openssl/openssl/doc/man3/EVP_PKEY_decapsulate.pod b/deps/openssl/openssl/doc/man3/EVP_PKEY_decapsulate.pod index 819291627bb8b8..cd6f5f0221a2bb 100644 --- a/deps/openssl/openssl/doc/man3/EVP_PKEY_decapsulate.pod +++ b/deps/openssl/openssl/doc/man3/EVP_PKEY_decapsulate.pod @@ -25,10 +25,13 @@ specifying the private key to use. The EVP_PKEY_decapsulate() function performs a private key decapsulation operation using I. The data to be decapsulated is specified using the I and I parameters. -If I is NULL then the maximum size of the output secret buffer +If I is NULL then the size of the output secret buffer is written to I<*unwrappedlen>. If I is not NULL and the call is successful then the decapsulated secret data is written to I -and the amount of data written to I<*unwrappedlen>. +and the amount of data written to I<*unwrappedlen>. Note that, if I +is not NULL in this call, the value it points to must be initialised to the length of +I, so that the call can validate it is of sufficient size to hold the +result of the operation. =head1 NOTES @@ -57,7 +60,7 @@ Decapsulate data using RSA: unsigned char *secret = NULL;; ctx = EVP_PKEY_CTX_new_from_pkey(libctx, rsa_priv_key, NULL); - if (ctx = NULL) + if (ctx == NULL) /* Error */ if (EVP_PKEY_decapsulate_init(ctx, NULL) <= 0) /* Error */ diff --git a/deps/openssl/openssl/doc/man3/EVP_PKEY_encapsulate.pod b/deps/openssl/openssl/doc/man3/EVP_PKEY_encapsulate.pod index 0ee7d627904d13..eb51836d795122 100644 --- a/deps/openssl/openssl/doc/man3/EVP_PKEY_encapsulate.pod +++ b/deps/openssl/openssl/doc/man3/EVP_PKEY_encapsulate.pod @@ -35,7 +35,10 @@ unless I is NULL. If I is not NULL and the call is successful then the internally generated key is written to I and its size is written to I<*genkeylen>. The encapsulated version of the generated key is written to -I and its size is written to I<*wrappedkeylen>. +I and its size is written to I<*wrappedkeylen>. Note that if +I is not NULL, then the value it points to must initially hold the size of +the I buffer so that its size can be validated by the call, ensuring +it is large enough to hold the result written to I. =head1 NOTES @@ -63,7 +66,7 @@ Encapsulate an RSASVE key (for RSA keys). unsigned char *out = NULL, *secret = NULL; ctx = EVP_PKEY_CTX_new_from_pkey(libctx, rsa_pub_key, NULL); - if (ctx = NULL) + if (ctx == NULL) /* Error */ if (EVP_PKEY_encapsulate_init(ctx, NULL) <= 0) /* Error */ diff --git a/deps/openssl/openssl/doc/man3/OSSL_CMP_CTX_new.pod b/deps/openssl/openssl/doc/man3/OSSL_CMP_CTX_new.pod index cab88ae88c9102..f2a38b0adef44f 100644 --- a/deps/openssl/openssl/doc/man3/OSSL_CMP_CTX_new.pod +++ b/deps/openssl/openssl/doc/man3/OSSL_CMP_CTX_new.pod @@ -355,8 +355,10 @@ If TLS is not used this defaults to the value of the environment variable C if set, else C. Otherwise defaults to the value of C if set, else C. An empty proxy string specifies not to use a proxy. -Else the format is C<[http[s]://]address[:port][/path]>, -where any path given is ignored. +Otherwise the format is +C<[http[s]://][userinfo@]host[:port][/path][?query][#fragment]>, +where any given userinfo, path, query, and fragment is ignored. +If the host string is an IPv6 address, it must be enclosed in C<[> and C<]>. The default port number is 80, or 443 in case C is given. OSSL_CMP_CTX_set1_no_proxy() sets the list of server hostnames not to use diff --git a/deps/openssl/openssl/doc/man3/OSSL_CMP_validate_msg.pod b/deps/openssl/openssl/doc/man3/OSSL_CMP_validate_msg.pod index 555624a4035836..c5e68065beff0f 100644 --- a/deps/openssl/openssl/doc/man3/OSSL_CMP_validate_msg.pod +++ b/deps/openssl/openssl/doc/man3/OSSL_CMP_validate_msg.pod @@ -44,7 +44,7 @@ any self-issued certificate from the I extraCerts field may be used as a trust anchor for the path verification of an 'acceptable' cert if it can be used also to validate the issued certificate returned in the IP message. This is according to TS 33.310 [Network Domain Security (NDS); Authentication Framework -(AF)] document specified by the The 3rd Generation Partnership Project (3GPP). +(AF)] document specified by The 3rd Generation Partnership Project (3GPP). Note that using this option is dangerous as the certificate obtained this way has not been authenticated (at least not at CMP level). Taking it over as a trust anchor implements trust-on-first-use (TOFU). @@ -77,7 +77,7 @@ The OpenSSL CMP support was added in OpenSSL 3.0. =head1 COPYRIGHT -Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/deps/openssl/openssl/doc/man3/OSSL_HTTP_parse_url.pod b/deps/openssl/openssl/doc/man3/OSSL_HTTP_parse_url.pod index 768f0acdb14c72..4379c122d66ac4 100644 --- a/deps/openssl/openssl/doc/man3/OSSL_HTTP_parse_url.pod +++ b/deps/openssl/openssl/doc/man3/OSSL_HTTP_parse_url.pod @@ -42,20 +42,25 @@ take any further default value from the C environment variable, or from C if I is nonzero. If I is NULL, take any default exclusion value from the C environment variable, or else from C. -Return the determined proxy hostname unless the exclusion contains I. +Return the determined proxy host unless the exclusion value, +which is a list of proxy hosts separated by C<,> and/or whitespace, +contains I. Otherwise return NULL. +When I is a string delimited by C<[> and C<]>, which are used for IPv6 +addresses, the enclosing C<[> and C<]> are stripped prior to comparison. OSSL_parse_url() parses its input string I as a URL of the form C<[scheme://][userinfo@]host[:port][/path][?query][#fragment]> and splits it up into scheme, userinfo, host, port, path, query, and fragment components. The host (or server) component may be a DNS name or an IP address -where IPv6 addresses should be enclosed in square brackets C<[> and C<]>. +where IPv6 addresses must be enclosed in square brackets C<[> and C<]>. The port component is optional and defaults to C<0>. If given, it must be in decimal form. If the I argument is not NULL the integer value of the port number is assigned to I<*pport_num> on success. The path component is also optional and defaults to C. Each non-NULL result pointer argument I, I, I, I, I, I, and I, is assigned the respective url component. +Any IPv6 address in I<*phost> is enclosed in C<[> and C<]>. On success, they are guaranteed to contain non-NULL string pointers, else NULL. It is the responsibility of the caller to free them using L. If I is NULL, any given query component is handled as part of the path. @@ -70,7 +75,7 @@ and the scheme is C, else 0. The port component is optional and defaults to C<443> if the scheme is C, else C<80>. Note that relative paths must be given with a leading C, -otherwise the first path element is interpreted as the hostname. +otherwise the first path element is interpreted as the host. Calling the deprecated function OCSP_parse_url(url, host, port, path, ssl) is equivalent to diff --git a/deps/openssl/openssl/doc/man3/OSSL_HTTP_transfer.pod b/deps/openssl/openssl/doc/man3/OSSL_HTTP_transfer.pod index 716e365ef50db0..6da1d91b9f37fa 100644 --- a/deps/openssl/openssl/doc/man3/OSSL_HTTP_transfer.pod +++ b/deps/openssl/openssl/doc/man3/OSSL_HTTP_transfer.pod @@ -77,12 +77,14 @@ If TLS is not used this defaults to the environment variable C if set, else C. If I != 0 it defaults to C if set, else C. An empty proxy string C<""> forbids using a proxy. -Else the format is +Otherwise, the format is C<[http[s]://][userinfo@]host[:port][/path][?query][#fragment]>, where any userinfo, path, query, and fragment given is ignored. +If the host string is an IPv6 address, it must be enclosed in C<[> and C<]>. The default proxy port number is 80, or 443 in case "https:" is given. The HTTP client functions connect via the given proxy unless the I -is found in the optional list I of proxy hostnames (if not NULL; +is found in the optional list I of proxy hostnames or IP addresses +separated by C<,> and/or whitespace (if not NULL; default is the environment variable C if set, else C). Proxying plain HTTP is supported directly, while using a proxy for HTTPS connections requires a suitable callback function diff --git a/deps/openssl/openssl/doc/man3/OSSL_PARAM.pod b/deps/openssl/openssl/doc/man3/OSSL_PARAM.pod index 1e5bf06cf767a7..22fd0f0d7dd7f3 100644 --- a/deps/openssl/openssl/doc/man3/OSSL_PARAM.pod +++ b/deps/openssl/openssl/doc/man3/OSSL_PARAM.pod @@ -11,7 +11,7 @@ OSSL_PARAM - a structure to pass or request object parameters typedef struct ossl_param_st OSSL_PARAM; struct ossl_param_st { const char *key; /* the name of the parameter */ - unsigned char data_type; /* declare what kind of content is in data */ + unsigned int data_type; /* declare what kind of content is in data */ void *data; /* value being passed in or out */ size_t data_size; /* data size */ size_t return_size; /* returned size */ diff --git a/deps/openssl/openssl/doc/man3/OSSL_trace_enabled.pod b/deps/openssl/openssl/doc/man3/OSSL_trace_enabled.pod index f9c9dffd8c6a8a..bad5b15153539f 100644 --- a/deps/openssl/openssl/doc/man3/OSSL_trace_enabled.pod +++ b/deps/openssl/openssl/doc/man3/OSSL_trace_enabled.pod @@ -88,9 +88,10 @@ but rather uses a set of convenience macros, see the L section below. OSSL_trace_enabled() can be used to check if tracing for the given I is enabled. -OSSL_trace_begin() is used to starts a tracing section, and get the -channel for the given I in form of a BIO. +OSSL_trace_begin() is used to start a tracing section, +and get the channel for the given I in form of a BIO. This BIO can only be used for output. +The pointer returned is NULL if the category is invalid or not enabled. OSSL_trace_end() is used to end a tracing section. @@ -187,6 +188,9 @@ expands to =head1 NOTES +It is not needed to guard trace output function calls like +I by I. + If producing the trace output requires carrying out auxiliary calculations, this auxiliary code should be placed inside a conditional block which is executed only if the trace category is enabled. diff --git a/deps/openssl/openssl/doc/man3/OpenSSL_version.pod b/deps/openssl/openssl/doc/man3/OpenSSL_version.pod index 946bb151bafeb1..e1cf16e2a109b9 100644 --- a/deps/openssl/openssl/doc/man3/OpenSSL_version.pod +++ b/deps/openssl/openssl/doc/man3/OpenSSL_version.pod @@ -211,14 +211,6 @@ automatically configured but may be set via an environment variable. The value has the same syntax as the environment variable. For x86 the string looks like C. -=item OPENSSL_INFO_QUIC - -This is only defined when compiling with a QUIC-enabled version of -OpenSSL. At run time, this will return "QUIC" if QUIC is supported. - -This can be used as a build time flag to determine if OpenSSL has -QUIC enabled. - =back For an unknown I, NULL is returned. diff --git a/deps/openssl/openssl/doc/man3/SSL_CIPHER_get_name.pod b/deps/openssl/openssl/doc/man3/SSL_CIPHER_get_name.pod index a55ad4d980f9b9..09b7280bdd581b 100644 --- a/deps/openssl/openssl/doc/man3/SSL_CIPHER_get_name.pod +++ b/deps/openssl/openssl/doc/man3/SSL_CIPHER_get_name.pod @@ -13,7 +13,6 @@ SSL_CIPHER_get_digest_nid, SSL_CIPHER_get_handshake_digest, SSL_CIPHER_get_kx_nid, SSL_CIPHER_get_auth_nid, -SSL_CIPHER_get_prf_nid, SSL_CIPHER_is_aead, SSL_CIPHER_find, SSL_CIPHER_get_id, @@ -35,7 +34,6 @@ SSL_CIPHER_get_protocol_id const EVP_MD *SSL_CIPHER_get_handshake_digest(const SSL_CIPHER *c); int SSL_CIPHER_get_kx_nid(const SSL_CIPHER *c); int SSL_CIPHER_get_auth_nid(const SSL_CIPHER *c); - int SSL_CIPHER_get_prf_nid(const SSL_CIPHER *c); int SSL_CIPHER_is_aead(const SSL_CIPHER *c); const SSL_CIPHER *SSL_CIPHER_find(SSL *ssl, const unsigned char *ptr); uint32_t SSL_CIPHER_get_id(const SSL_CIPHER *c); @@ -93,15 +91,6 @@ TLS 1.3 cipher suites) B is returned. Examples (not comprehensive) NID_auth_ecdsa NID_auth_psk -SSL_CIPHER_get_prf_nid() retuns the pseudo-random function NID for B. If B is -a pre-TLS-1.2 cipher, it returns B but note these ciphers use -SHA-256 in TLS 1.2. Other return values may be treated uniformly in all -applicable versions. Examples (not comprehensive): - - NID_md5_sha1 - NID_sha256 - NID_sha384 - SSL_CIPHER_is_aead() returns 1 if the cipher B is AEAD (e.g. GCM or ChaCha20/Poly1305), and 0 if it is not AEAD. @@ -212,8 +201,6 @@ required to enable this function. The OPENSSL_cipher_name() function was added in OpenSSL 1.1.1. -The SSL_CIPHER_get_prf_nid() function was added in OpenSSL 3.0.0. - =head1 COPYRIGHT Copyright 2000-2024 The OpenSSL Project Authors. All Rights Reserved. diff --git a/deps/openssl/openssl/doc/man3/SSL_CTX_new.pod b/deps/openssl/openssl/doc/man3/SSL_CTX_new.pod index f467f93659b575..627d9e7f0dc36d 100644 --- a/deps/openssl/openssl/doc/man3/SSL_CTX_new.pod +++ b/deps/openssl/openssl/doc/man3/SSL_CTX_new.pod @@ -104,10 +104,12 @@ On session establishment, by default, no peer credentials verification is done. This must be explicitly requested, typically using L. For verifying peer certificates many options can be set using various functions such as L and L. -The L function can be used, also in conjunction -with L, to set the intended purpose of the session. -The default is B on the client side + +The SSL/(D)TLS implementation uses the L +function to prepare checks for B on the client side and B on the server side. +The L function can be used, also in conjunction +with L, to override the default purpose of the session. The SSL_CTX object uses I as the connection method. Three method variants are available: a generic method (for either client or @@ -228,7 +230,7 @@ SSL_CTX_up_ref() returns 1 for success and 0 for failure. =head1 SEE ALSO -L, L, +L, L, L, SSL_CTX_set_verify(3), L, L, L, L, L, L, L diff --git a/deps/openssl/openssl/doc/man3/SSL_CTX_set_quic_method.pod b/deps/openssl/openssl/doc/man3/SSL_CTX_set_quic_method.pod deleted file mode 100644 index aab5e38889b041..00000000000000 --- a/deps/openssl/openssl/doc/man3/SSL_CTX_set_quic_method.pod +++ /dev/null @@ -1,262 +0,0 @@ -=pod - -=head1 NAME - -SSL_QUIC_METHOD, -OSSL_ENCRYPTION_LEVEL, -SSL_CTX_set_quic_method, -SSL_set_quic_method, -SSL_set_quic_transport_params, -SSL_get_peer_quic_transport_params, -SSL_quic_max_handshake_flight_len, -SSL_quic_read_level, -SSL_quic_write_level, -SSL_provide_quic_data, -SSL_process_quic_post_handshake, -SSL_is_quic, -SSL_get_peer_quic_transport_version, -SSL_get_quic_transport_version, -SSL_set_quic_transport_version, -SSL_set_quic_use_legacy_codepoint, -SSL_set_quic_early_data_enabled -- QUIC support - -=head1 SYNOPSIS - - #include - - typedef struct ssl_quic_method_st SSL_QUIC_METHOD; - typedef enum ssl_encryption_level_t OSSL_ENCRYPTION_LEVEL; - - int SSL_CTX_set_quic_method(SSL_CTX *ctx, const SSL_QUIC_METHOD *quic_method); - int SSL_set_quic_method(SSL *ssl, const SSL_QUIC_METHOD *quic_method); - int SSL_set_quic_transport_params(SSL *ssl, - const uint8_t *params, - size_t params_len); - void SSL_get_peer_quic_transport_params(const SSL *ssl, - const uint8_t **out_params, - size_t *out_params_len); - size_t SSL_quic_max_handshake_flight_len(const SSL *ssl, OSSL_ENCRYPTION_LEVEL level); - OSSL_ENCRYPTION_LEVEL SSL_quic_read_level(const SSL *ssl); - OSSL_ENCRYPTION_LEVEL SSL_quic_write_level(const SSL *ssl); - int SSL_provide_quic_data(SSL *ssl, OSSL_ENCRYPTION_LEVEL level, - const uint8_t *data, size_t len); - int SSL_process_quic_post_handshake(SSL *ssl); - int SSL_is_quic(SSL *ssl); - - void SSL_set_quic_use_legacy_codepoint(SSL *ssl, int use_legacy); - void SSL_set_quic_transport_version(SSL *ssl, int version); - int SSL_get_quic_transport_version(const SSL *ssl); - int SSL_get_peer_quic_transport_version(const SSL *ssl); - void SSL_set_quic_early_data_enabled(SSL *ssl, int enabled); - -=head1 DESCRIPTION - -SSL_CTX_set_quic_method() and SSL_set_quic_method() configures the QUIC methods. -This should only be configured with a minimum version of TLS 1.3. B -must remain valid for the lifetime of B or B. Calling this disables -the SSL_OP_ENABLE_MIDDLEBOX_COMPAT option, which is not required for QUIC. - -SSL_set_quic_transport_params() configures B to send B (of length -B) in the quic_transport_parameters extension in either the -ClientHello or EncryptedExtensions handshake message. This extension will -only be sent if the TLS version is at least 1.3, and for a server, only if -the client sent the extension. The buffer pointed to by B only need be -valid for the duration of the call to this function. - -SSL_get_peer_quic_transport_params() provides the caller with the value of the -quic_transport_parameters extension sent by the peer. A pointer to the buffer -containing the TransportParameters will be put in B<*out_params>, and its -length in B<*out_params_len>. This buffer will be valid for the lifetime of the -B. If no params were received from the peer, B<*out_params_len> will be 0. - -SSL_quic_max_handshake_flight_len() returns the maximum number of bytes -that may be received at the given encryption level. This function should be -used to limit buffering in the QUIC implementation. - -See L. - -SSL_quic_read_level() returns the current read encryption level. - -SSL_quic_write_level() returns the current write encryption level. - -SSL_provide_quic_data() is used to provide data from QUIC CRYPTO frames to the -state machine, at a particular encryption level B. It is an error to -call this function with an encryption level less than the current read level. -It returns one on success and zero on error. - -SSL_process_quic_post_handshake() processes any data that QUIC has provided -after the handshake has completed. This includes NewSessionTicket messages -sent by the server. - -SSL_is_quic() indicates whether a connection uses QUIC. A given B -or B can only be used with QUIC or TLS, but not both. - -SSL_set_quic_use_legacy_codepoint() specifies the legacy extension codepoint -in manner compatible with some versions of BoringSSL. - -SSL_set_quic_transport_version() specifies the quic transport version that -allows for backwards and forwards compatibility. If set to 0 (default) the -server will use the highest version the client sent. If set to 0 (default) -the client will send both extensions. - -SSL_get_quic_transport_version() returns the value set by -SSL_set_quic_transport_version(). - -SSL_get_peer_quic_transport_version() returns the version the that was -negotiated. - -SSL_set_quic_early_data_enabled() enables QUIC early data if a nonzero -value is passed. Clients must set a resumed session before calling this -function. Servers must additionally call SSL_CTX_set_max_early_data() or -SSL_set_max_early_data() with 0xffffffffu as the argument, so that any -issued session tickets indicate that server is able to accept early data. - -=head1 NOTES - -These APIs are implementations of BoringSSL's QUIC APIs. - -QUIC acts as an underlying transport for the TLS 1.3 handshake. The following -functions allow a QUIC implementation to serve as the underlying transport as -described in RFC9001. - -When configured for QUIC, SSL_do_handshake() will drive the handshake as -before, but it will not use the configured B. It will call functions from -the configured B to configure secrets and send data. If data -is needed from the peer, it will return B. When received, -the caller should call SSL_provide_quic_data() and then SSL_do_handshake() to -continue the handshake. After the handshake is complete, the caller should call -SSL_provide_quic_data() for any post-handshake data, followed by -SSL_process_quic_post_handshake() to process it. It is an error to call -SSL_read()/SSL_read_ex() and SSL_write()/SSL_write_ex() in QUIC. - -Note that secrets for an encryption level may be available to QUIC before the -level is active in TLS. Callers should use SSL_quic_read_level() to determine -the active read level for SSL_provide_quic_data(). SSL_do_handshake() will -pass the active write level to add_handshake_data() when writing data. Callers -can use SSL_quic_write_level() to query the active write level when -generating their own errors. - -See L for more details. - -To avoid amplifying DoS attacks, the QUIC implementation must limit the amount -of data being queued up. The implementation can call -SSL_quic_max_handshake_flight_len() to get the maximum buffer length at each -encryption level. - -RFC9001 defines a new TLS extension "quic_transport_parameters" -used by QUIC for each endpoint to unilaterally declare its supported -transport parameters. The contents of the extension are specified in -L (as -a sequence of tag/length/value parameters) along with the interpretation of the -various parameters and the rules for their processing. - -OpenSSL handles this extension as an opaque byte string. The caller is -responsible for serializing and parsing it. - -=head2 OSSL_ENCRYPTION_LEVEL - -B (B) represents the -encryption levels: - -=over 4 - -=item ssl_encryption_initial - -The initial encryption level that is used for client and server hellos. - -=item ssl_encryption_early_data - -The encryption level for early data. This is a write-level for the client -and a read-level for the server. - -=item ssl_encryption_handshake - -The encryption level for the remainder of the handshake. - -=item ssl_encryption_application - -The encryption level for the application data. - -=back - -=head2 SSL_QUIC_METHOD - -The B (B) describes the -QUIC methods. - - struct ssl_quic_method_st { - int (*set_encryption_secrets)(SSL *ssl, OSSL_ENCRYPTION_LEVEL level, - const uint8_t *read_secret, - const uint8_t *write_secret, size_t secret_len); - int (*add_handshake_data)(SSL *ssl, OSSL_ENCRYPTION_LEVEL level, - const uint8_t *data, size_t len); - int (*flush_flight)(SSL *ssl); - int (*send_alert)(SSL *ssl, enum ssl_encryption_level_t level, uint8_t alert); - }; - typedef struct ssl_quic_method_st SSL_QUIC_METHOD; - -set_encryption_secrets() configures the read and write secrets for the given -encryption level. This function will always be called before an encryption -level other than B is used. Note, however, that -secrets for a level may be configured before TLS is ready to send or accept -data at that level. - -When reading packets at a given level, the QUIC implementation must send -ACKs at the same level, so this function provides read and write secrets -together. The exception is B, where secrets are -only available in the client to server direction. The other secret will be -NULL. The server acknowledges such data at B, -which will be configured in the same SSL_do_handshake() call. - -add_handshake_data() adds handshake data to the current flight at the given -encryption level. It returns one on success and zero on error. - -OpenSSL will pack data from a single encryption level together, but a -single handshake flight may include multiple encryption levels. Callers -should defer writing data to the network until flush_flight() to better -pack QUIC packets into transport datagrams. - -flush_flight() is called when the current flight is complete and should be -written to the transport. Note a flight may contain data at several -encryption levels. - -send_alert() sends a fatal alert at the specified encryption level. - -All QUIC methods return 1 on success and 0 on error. - -=head1 RETURN VALUES - -SSL_CTX_set_quic_method(), -SSL_set_quic_method(), -SSL_set_quic_transport_params(), and -SSL_process_quic_post_handshake() -return 1 on success, and 0 on error. - -SSL_quic_read_level() and SSL_quic_write_level() return the current -encryption level as an B -(B). - -SSL_quic_max_handshake_flight_len() returns the maximum length in bytes of a -flight for a given encryption level. - -SSL_is_quic() returns 1 if QUIC is being used, 0 if not. - -=head1 SEE ALSO - -L, L, L - -=head1 HISTORY - -These functions were added in OpenSSL 3.0.0. - -=head1 COPYRIGHT - -Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved. - -Licensed under the Apache License 2.0 (the "License"). You may not use -this file except in compliance with the License. You can obtain a copy -in the file LICENSE in the source distribution or at -L. - -=cut diff --git a/deps/openssl/openssl/doc/man3/SSL_get_shared_sigalgs.pod b/deps/openssl/openssl/doc/man3/SSL_get_shared_sigalgs.pod index c18114cdf47200..cb9ce025002fed 100644 --- a/deps/openssl/openssl/doc/man3/SSL_get_shared_sigalgs.pod +++ b/deps/openssl/openssl/doc/man3/SSL_get_shared_sigalgs.pod @@ -64,7 +64,7 @@ ordered according to configuration and peer preferences. The raw values correspond to the on the wire form as defined by RFC5246 et al. The NIDs are OpenSSL equivalents. For example if the peer sent sha256(4) and rsa(1) then B<*rhash> would be 4, B<*rsign> 1, B<*phash> NID_sha256, B<*psig> -NID_rsaEncryption and B<*psighash> NID_sha256WithRSAEncryption. +NID_rsaEncryption and B<*psignhash> NID_sha256WithRSAEncryption. If a signature algorithm is not recognised the corresponding NIDs will be set to B. This may be because the value is not supported, diff --git a/deps/openssl/openssl/doc/man3/SSL_set_bio.pod b/deps/openssl/openssl/doc/man3/SSL_set_bio.pod index c666dc466ecd2d..aaffeedf779b65 100644 --- a/deps/openssl/openssl/doc/man3/SSL_set_bio.pod +++ b/deps/openssl/openssl/doc/man3/SSL_set_bio.pod @@ -23,6 +23,9 @@ function, any existing B that was previously set will also be freed via a call to L (this includes the case where the B is set to the same value as previously). +If using a custom BIO, B must implement either +L or L. + SSL_set0_wbio() works in the same as SSL_set0_rbio() except that it connects the BIO B for the write operations of the B object. Note that if the rbio and wbio are the same then SSL_set0_rbio() and SSL_set0_wbio() each take @@ -30,6 +33,12 @@ ownership of one reference. Therefore, it may be necessary to increment the number of references available using L before calling the set0 functions. +If using a custom BIO, B must implement +L or L. It additionally must +implement L using B and L. +If flushing is unnecessary with B, L should return one and +do nothing. + SSL_set_bio() is similar to SSL_set0_rbio() and SSL_set0_wbio() except that it connects both the B and the B at the same time, and transfers the ownership of B and B to B according to diff --git a/deps/openssl/openssl/doc/man3/X509V3_set_ctx.pod b/deps/openssl/openssl/doc/man3/X509V3_set_ctx.pod index 8287802e41b2f7..7819c344f7510e 100644 --- a/deps/openssl/openssl/doc/man3/X509V3_set_ctx.pod +++ b/deps/openssl/openssl/doc/man3/X509V3_set_ctx.pod @@ -42,8 +42,7 @@ or not) to provide fallback data for the authority key identifier extension. =head1 RETURN VALUES -X509V3_set_ctx() and X509V3_set_issuer_pkey() -return 1 on success and 0 on error. +X509V3_set_issuer_pkey() returns 1 on success and 0 on error. =head1 SEE ALSO @@ -57,7 +56,7 @@ CTX_TEST was deprecated in OpenSSL 3.0; use X509V3_CTX_TEST instead. =head1 COPYRIGHT -Copyright 2015-2021 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2015-2025 The OpenSSL Project Authors. All Rights Reserved. Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/deps/openssl/openssl/doc/man3/X509_STORE_CTX_new.pod b/deps/openssl/openssl/doc/man3/X509_STORE_CTX_new.pod index c508a1d3fc1b88..9929a98e0cf5af 100644 --- a/deps/openssl/openssl/doc/man3/X509_STORE_CTX_new.pod +++ b/deps/openssl/openssl/doc/man3/X509_STORE_CTX_new.pod @@ -74,6 +74,12 @@ X509_STORE_CTX_free() completely frees up I. After this call I is no longer valid. If I is NULL nothing is done. +X509_STORE_CTX_init() sets up I for a subsequent verification operation. + +X509_STORE_CTX_init() initializes the internal state and resources of the +given I. Among others, it sets the verification parameters associcated +with the method name C, which includes the C purpose, +and takes over callback function pointers from I (unless NULL). It must be called before each call to L or L, i.e., a context is only good for one verification. If you want to verify a further certificate or chain with the same I @@ -144,12 +150,13 @@ by I to be I. Ownership of the chain is transferred to I, and so it should not be free'd by the caller. -X509_STORE_CTX_set_default() looks up and sets the default verification -method to I. This uses the function X509_VERIFY_PARAM_lookup() to -find an appropriate set of parameters from the purpose identifier I. -Currently defined purposes are C, C, C, -C, C, C, C, C, -and C. +X509_STORE_CTX_set_default() looks up and sets the default verification method. +This uses the function X509_VERIFY_PARAM_lookup() to find +the set of parameters associated with the given verification method I. +Among others, the parameters determine the trust model and verification purpose. +More detail, including the list of currently predefined methods, +is described for the B<-verify_name> command-line option +in L. X509_STORE_CTX_set_verify() provides the capability for overriding the default verify function. This function is responsible for verifying chain signatures and diff --git a/deps/openssl/openssl/doc/man3/X509_add_cert.pod b/deps/openssl/openssl/doc/man3/X509_add_cert.pod index 907164e9710ef9..f59b93ba54d4bc 100644 --- a/deps/openssl/openssl/doc/man3/X509_add_cert.pod +++ b/deps/openssl/openssl/doc/man3/X509_add_cert.pod @@ -16,6 +16,7 @@ X509 certificate list addition functions =head1 DESCRIPTION X509_add_cert() adds a certificate I to the given list I. +It is an error for the I argument to be NULL. X509_add_certs() adds a list of certificate I to the given list I. The I argument may be NULL, which implies no effect. @@ -66,7 +67,7 @@ were added in OpenSSL 3.0. =head1 COPYRIGHT -Copyright 2019-2023 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/deps/openssl/openssl/doc/man3/X509_load_http.pod b/deps/openssl/openssl/doc/man3/X509_load_http.pod index a147c43caa3fde..e17330b05587f7 100644 --- a/deps/openssl/openssl/doc/man3/X509_load_http.pod +++ b/deps/openssl/openssl/doc/man3/X509_load_http.pod @@ -27,6 +27,9 @@ see L: X509_load_http() and X509_CRL_load_http() loads a certificate or a CRL, respectively, in ASN.1 format using HTTP from the given B. +Maximum size of the HTTP response is 100 kB for certificates and 32 MB for CRLs +and hard coded in the functions. + If B is given and B is NULL then this BIO is used instead of an internal one for connecting, writing the request, and reading the response. If both B and B are given (which may be memory BIOs, for instance) diff --git a/deps/openssl/openssl/doc/man7/EVP_KDF-HKDF.pod b/deps/openssl/openssl/doc/man7/EVP_KDF-HKDF.pod index 5fc0a73241cca4..b563efa5f5d756 100644 --- a/deps/openssl/openssl/doc/man7/EVP_KDF-HKDF.pod +++ b/deps/openssl/openssl/doc/man7/EVP_KDF-HKDF.pod @@ -15,6 +15,8 @@ and "extracts" from it a fixed-length pseudorandom key K. The second stage "expands" the key K into several additional pseudorandom keys (the output of the KDF). +The output is considered to be keying material. + =head2 Identity "HKDF" is the name for this implementation; it diff --git a/deps/openssl/openssl/doc/man7/EVP_KDF-KB.pod b/deps/openssl/openssl/doc/man7/EVP_KDF-KB.pod index 6e25882d674c6e..78b81673a5bdab 100644 --- a/deps/openssl/openssl/doc/man7/EVP_KDF-KB.pod +++ b/deps/openssl/openssl/doc/man7/EVP_KDF-KB.pod @@ -10,6 +10,8 @@ The EVP_KDF-KB algorithm implements the Key-Based key derivation function (KBKDF). KBKDF derives a key from repeated application of a keyed MAC to an input secret (and other optional values). +The output is considered to be keying material. + =head2 Identity "KBKDF" is the name for this implementation; it can be used with the diff --git a/deps/openssl/openssl/doc/man7/EVP_KDF-PBKDF2.pod b/deps/openssl/openssl/doc/man7/EVP_KDF-PBKDF2.pod index e6cadc8b826d35..9a90f7583abe6d 100644 --- a/deps/openssl/openssl/doc/man7/EVP_KDF-PBKDF2.pod +++ b/deps/openssl/openssl/doc/man7/EVP_KDF-PBKDF2.pod @@ -13,6 +13,8 @@ The EVP_KDF-PBKDF2 algorithm implements the PBKDF2 password-based key derivation function, as described in SP800-132; it derives a key from a password using a salt and iteration count. +The output is considered to be a cryptographic key. + =head2 Identity "PBKDF2" is the name for this implementation; it diff --git a/deps/openssl/openssl/doc/man7/EVP_KDF-SS.pod b/deps/openssl/openssl/doc/man7/EVP_KDF-SS.pod index c8d19691a797b8..6640703eef1c01 100644 --- a/deps/openssl/openssl/doc/man7/EVP_KDF-SS.pod +++ b/deps/openssl/openssl/doc/man7/EVP_KDF-SS.pod @@ -11,6 +11,8 @@ SSKDF derives a key using input such as a shared secret key (that was generated during the execution of a key establishment scheme) and fixedinfo. SSKDF is also informally referred to as 'Concat KDF'. +The output is considered to be keying material. + =head2 Auxiliary function The implementation uses a selectable auxiliary function H, which can be one of: diff --git a/deps/openssl/openssl/doc/man7/EVP_KDF-SSHKDF.pod b/deps/openssl/openssl/doc/man7/EVP_KDF-SSHKDF.pod index c7a3263f455ad2..a5b153947558e2 100644 --- a/deps/openssl/openssl/doc/man7/EVP_KDF-SSHKDF.pod +++ b/deps/openssl/openssl/doc/man7/EVP_KDF-SSHKDF.pod @@ -15,6 +15,8 @@ Five inputs are required to perform key derivation: The hashing function (for example SHA256), the Initial Key, the Exchange Hash, the Session ID, and the derivation key type. +The output is considered to be keying material. + =head2 Identity "SSHKDF" is the name for this implementation; it diff --git a/deps/openssl/openssl/doc/man7/EVP_KDF-TLS13_KDF.pod b/deps/openssl/openssl/doc/man7/EVP_KDF-TLS13_KDF.pod index d588b121faf5a3..7fad55ca61f1bc 100644 --- a/deps/openssl/openssl/doc/man7/EVP_KDF-TLS13_KDF.pod +++ b/deps/openssl/openssl/doc/man7/EVP_KDF-TLS13_KDF.pod @@ -12,6 +12,8 @@ the B API. The EVP_KDF-TLS13_KDF algorithm implements the HKDF key derivation function as used by TLS 1.3. +The output is considered to be keying material. + =head2 Identity "TLS13-KDF" is the name for this implementation; it diff --git a/deps/openssl/openssl/doc/man7/EVP_KDF-TLS1_PRF.pod b/deps/openssl/openssl/doc/man7/EVP_KDF-TLS1_PRF.pod index 8a60e97315549c..90b357e70f0bb2 100644 --- a/deps/openssl/openssl/doc/man7/EVP_KDF-TLS1_PRF.pod +++ b/deps/openssl/openssl/doc/man7/EVP_KDF-TLS1_PRF.pod @@ -11,6 +11,8 @@ Support for computing the B PRF through the B API. The EVP_KDF-TLS1_PRF algorithm implements the PRF used by TLS versions up to and including TLS 1.2. +The output is considered to be keying material. + =head2 Identity "TLS1-PRF" is the name for this implementation; it diff --git a/deps/openssl/openssl/doc/man7/EVP_KDF-X942-ASN1.pod b/deps/openssl/openssl/doc/man7/EVP_KDF-X942-ASN1.pod index a5786ab83faa8a..17464738b511b4 100644 --- a/deps/openssl/openssl/doc/man7/EVP_KDF-X942-ASN1.pod +++ b/deps/openssl/openssl/doc/man7/EVP_KDF-X942-ASN1.pod @@ -13,6 +13,8 @@ contains a 32 bit counter as well as optional fields for "partyu-info", "partyv-info", "supp-pubinfo" and "supp-privinfo". This kdf is used by Cryptographic Message Syntax (CMS). +The output is considered to be keying material. + =head2 Identity "X942KDF-ASN1" or "X942KDF" is the name for this implementation; it diff --git a/deps/openssl/openssl/doc/man7/EVP_KDF-X963.pod b/deps/openssl/openssl/doc/man7/EVP_KDF-X963.pod index 3d6f4372cf3122..ca2f7c1df0efcc 100644 --- a/deps/openssl/openssl/doc/man7/EVP_KDF-X963.pod +++ b/deps/openssl/openssl/doc/man7/EVP_KDF-X963.pod @@ -10,6 +10,8 @@ The EVP_KDF-X963 algorithm implements the key derivation function (X963KDF). X963KDF is used by Cryptographic Message Syntax (CMS) for EC KeyAgreement, to derive a key using input such as a shared secret key and shared info. +The output is considered to be keying material. + =head2 Identity "X963KDF" is the name for this implementation; it diff --git a/deps/openssl/openssl/doc/man7/EVP_SIGNATURE-DSA.pod b/deps/openssl/openssl/doc/man7/EVP_SIGNATURE-DSA.pod index 5a42d6b1cd224f..326a86ee0b42cd 100644 --- a/deps/openssl/openssl/doc/man7/EVP_SIGNATURE-DSA.pod +++ b/deps/openssl/openssl/doc/man7/EVP_SIGNATURE-DSA.pod @@ -7,7 +7,9 @@ EVP_SIGNATURE-DSA =head1 DESCRIPTION -Support for computing DSA signatures. +Support for computing DSA signatures. The signature produced with +L is DER encoded ASN.1 in the form described in +RFC 3279, section 2.2.2. See L for information related to DSA keys. =head2 Signature Parameters diff --git a/deps/openssl/openssl/doc/man7/openssl-env.pod b/deps/openssl/openssl/doc/man7/openssl-env.pod index a2443d54d82291..c7dbd2277dc68b 100644 --- a/deps/openssl/openssl/doc/man7/openssl-env.pod +++ b/deps/openssl/openssl/doc/man7/openssl-env.pod @@ -51,6 +51,99 @@ See L. Specifies the directory from which cryptographic providers are loaded. Equivalently, the generic B<-provider-path> command-line option may be used. +=item B + +By default the OpenSSL trace feature is disabled statically. +To enable it, OpenSSL must be built with tracing support, +which may be configured like this: C<./config enable-trace> + +Unless OpenSSL tracing support is generally disabled, +enable trace output of specific parts of OpenSSL libraries, by name. +This output usually makes sense only if you know OpenSSL internals well. + +The value of this environment varialble is a comma-separated list of names, +with the following available: + +=over 4 + +=item B + +Traces the OpenSSL trace API itself. + +=item B + +Traces OpenSSL library initialization and cleanup. + +=item B + +Traces the TLS/SSL protocol. + +=item B + +Traces the ciphers used by the TLS/SSL protocol. + +=item B + +Show details about provider and engine configuration. + +=item B + +The function that is used by RSA, DSA (etc) code to select registered +ENGINEs, cache defaults and functional references (etc), will generate +debugging summaries. + +=item B + +Reference counts in the ENGINE structure will be monitored with a line +of generated for each change. + +=item B + +Traces PKCS#5 v2 key generation. + +=item B + +Traces PKCS#12 key generation. + +=item B + +Traces PKCS#12 decryption. + +=item B + +Generates the complete policy tree at various points during X.509 v3 +policy evaluation. + +=item B + +Traces BIGNUM context operations. + +=item B + +Traces CMP client and server activity. + +=item B + +Traces STORE operations. + +=item B + +Traces decoder operations. + +=item B + +Traces encoder operations. + +=item B + +Traces decrementing certain ASN.1 structure references. + +=item B + +Traces the HTTP client and server, such as messages being sent and received. + +=back + =item B If set, then L returns UTF-8 encoded strings, rather than diff --git a/deps/openssl/openssl/doc/man7/provider.pod b/deps/openssl/openssl/doc/man7/provider.pod index a061fc4709d0bb..08ac1d02907ff5 100644 --- a/deps/openssl/openssl/doc/man7/provider.pod +++ b/deps/openssl/openssl/doc/man7/provider.pod @@ -227,6 +227,18 @@ MODE is only present where applicable. Other aliases may exist for example where standards bodies or common practice use alternative names or names that OpenSSL has used historically. +=head3 Provider dependencies + +Providers may depend for their proper operation on the availability of +(functionality implemented in) other providers. As there is no mechanism to +express such dependencies towards the OpenSSL core, provider authors must +take care that such dependencies are either completely avoided or made visible +to users, e.g., by documentation and/or defensive programming, e.g., +outputting error messages if required external dependencies are not available, +e.g., when no provider implementing the required functionality has been +activated. In particular, provider initialization should not depend on other +providers already having been initialized. + =head1 OPENSSL PROVIDERS OpenSSL provides a number of its own providers. These are the default, base, diff --git a/deps/openssl/openssl/engines/e_afalg.c b/deps/openssl/openssl/engines/e_afalg.c index ec4e21c582c8e8..58d58ef24ec4aa 100644 --- a/deps/openssl/openssl/engines/e_afalg.c +++ b/deps/openssl/openssl/engines/e_afalg.c @@ -1,5 +1,5 @@ /* - * Copyright 2016-2024 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -165,7 +165,7 @@ static ossl_inline int io_getevents(aio_context_t ctx, long min, long max, ts32.tv_sec = (__kernel_long_t) timeout->tv_sec; ts32.tv_nsec = (__kernel_long_t) timeout->tv_nsec; - return syscall(__NR_io_getevents, ctx, min, max, events, ts32); + return syscall(__NR_io_getevents, ctx, min, max, events, &ts32); } else { return syscall(__NR_io_getevents, ctx, min, max, events, NULL); } diff --git a/deps/openssl/openssl/engines/e_loader_attic.c b/deps/openssl/openssl/engines/e_loader_attic.c index a20e04da1a5b47..08c9c16cbbfd3f 100644 --- a/deps/openssl/openssl/engines/e_loader_attic.c +++ b/deps/openssl/openssl/engines/e_loader_attic.c @@ -988,7 +988,7 @@ static OSSL_STORE_LOADER_CTX *file_open_ex #ifdef _WIN32 /* Windows file: URIs with a drive letter start with a / */ if (p[0] == '/' && p[2] == ':' && p[3] == '/') { - char c = tolower(p[1]); + char c = tolower((unsigned char)p[1]); if (c >= 'a' && c <= 'z') { p++; diff --git a/deps/openssl/openssl/include/crypto/bn.h b/deps/openssl/openssl/include/crypto/bn.h index c5f328156d3a9c..0b8489bb75509c 100644 --- a/deps/openssl/openssl/include/crypto/bn.h +++ b/deps/openssl/openssl/include/crypto/bn.h @@ -1,5 +1,5 @@ /* - * Copyright 2014-2024 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2014-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -73,6 +73,9 @@ int bn_set_words(BIGNUM *a, const BN_ULONG *words, int num_words); */ int bn_mul_mont_fixed_top(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_MONT_CTX *mont, BN_CTX *ctx); +int bn_mod_exp_mont_fixed_top(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx, + BN_MONT_CTX *in_mont); int bn_to_mont_fixed_top(BIGNUM *r, const BIGNUM *a, BN_MONT_CTX *mont, BN_CTX *ctx); int bn_from_mont_fixed_top(BIGNUM *r, const BIGNUM *a, BN_MONT_CTX *mont, diff --git a/deps/openssl/openssl/include/crypto/cmserr.h b/deps/openssl/openssl/include/crypto/cmserr.h index 1de2f9c7d51de9..f53530ae235295 100644 --- a/deps/openssl/openssl/include/crypto/cmserr.h +++ b/deps/openssl/openssl/include/crypto/cmserr.h @@ -1,6 +1,6 @@ /* * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy diff --git a/deps/openssl/openssl/include/openssl/cmserr.h b/deps/openssl/openssl/include/openssl/cmserr.h index f2d7708f10c8d6..52a186520fe453 100644 --- a/deps/openssl/openssl/include/openssl/cmserr.h +++ b/deps/openssl/openssl/include/openssl/cmserr.h @@ -1,6 +1,6 @@ /* * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -49,6 +49,7 @@ # define CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE 114 # define CMS_R_ERROR_SETTING_KEY 115 # define CMS_R_ERROR_SETTING_RECIPIENTINFO 116 +# define CMS_R_ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT 196 # define CMS_R_ESS_SIGNING_CERTID_MISMATCH_ERROR 183 # define CMS_R_INVALID_ENCRYPTED_KEY_LENGTH 117 # define CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER 176 diff --git a/deps/openssl/openssl/include/openssl/http.h b/deps/openssl/openssl/include/openssl/http.h index f7ab214265e474..c63762b70deb5c 100644 --- a/deps/openssl/openssl/include/openssl/http.h +++ b/deps/openssl/openssl/include/openssl/http.h @@ -33,8 +33,9 @@ extern "C" { # define OPENSSL_HTTP_PROXY "HTTP_PROXY" # define OPENSSL_HTTPS_PROXY "HTTPS_PROXY" -#define OSSL_HTTP_DEFAULT_MAX_LINE_LEN (4 * 1024) -#define OSSL_HTTP_DEFAULT_MAX_RESP_LEN (100 * 1024) +# define OSSL_HTTP_DEFAULT_MAX_LINE_LEN (4 * 1024) +# define OSSL_HTTP_DEFAULT_MAX_RESP_LEN (100 * 1024) +# define OSSL_HTTP_DEFAULT_MAX_CRL_LEN (32 * 1024 * 1024) /* Low-level HTTP API */ OSSL_HTTP_REQ_CTX *OSSL_HTTP_REQ_CTX_new(BIO *wbio, BIO *rbio, int buf_size); diff --git a/deps/openssl/openssl/include/openssl/quic.h b/deps/openssl/openssl/include/openssl/quic.h deleted file mode 100644 index f95e9e8819e572..00000000000000 --- a/deps/openssl/openssl/include/openssl/quic.h +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright 2018-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_QUIC_H -# define OPENSSL_QUIC_H -# pragma once -# ifndef OPENSSL_NO_QUIC - -/* moved from crypto.h.in to avoid breaking FIPS checksums */ -# define OPENSSL_INFO_QUIC 2000 - -# endif /* OPENSSL_NO_QUIC */ -#endif /* OPENSSL_QUIC_H */ diff --git a/deps/openssl/openssl/include/openssl/ssl.h.in b/deps/openssl/openssl/include/openssl/ssl.h.in index 677a20be15d941..105b4a4a3c8bda 100644 --- a/deps/openssl/openssl/include/openssl/ssl.h.in +++ b/deps/openssl/openssl/include/openssl/ssl.h.in @@ -2521,75 +2521,6 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); -# ifndef OPENSSL_NO_QUIC -/* - * QUIC integration - The QUIC interface matches BoringSSL - * - * ssl_encryption_level_t represents a specific QUIC encryption level used to - * transmit handshake messages. BoringSSL has this as an 'enum'. - */ -#include - -/* Used by Chromium/QUIC - moved from evp.h to avoid breaking FIPS checksums */ -# define X25519_PRIVATE_KEY_LEN 32 -# define X25519_PUBLIC_VALUE_LEN 32 - -/* moved from types.h to avoid breaking FIPS checksums */ -typedef struct ssl_quic_method_st SSL_QUIC_METHOD; - -typedef enum ssl_encryption_level_t { - ssl_encryption_initial = 0, - ssl_encryption_early_data, - ssl_encryption_handshake, - ssl_encryption_application -} OSSL_ENCRYPTION_LEVEL; - -struct ssl_quic_method_st { - int (*set_encryption_secrets)(SSL *ssl, OSSL_ENCRYPTION_LEVEL level, - const uint8_t *read_secret, - const uint8_t *write_secret, size_t secret_len); - int (*add_handshake_data)(SSL *ssl, OSSL_ENCRYPTION_LEVEL level, - const uint8_t *data, size_t len); - int (*flush_flight)(SSL *ssl); - int (*send_alert)(SSL *ssl, enum ssl_encryption_level_t level, uint8_t alert); -}; - -__owur int SSL_CTX_set_quic_method(SSL_CTX *ctx, const SSL_QUIC_METHOD *quic_method); -__owur int SSL_set_quic_method(SSL *ssl, const SSL_QUIC_METHOD *quic_method); -__owur int SSL_set_quic_transport_params(SSL *ssl, - const uint8_t *params, - size_t params_len); -void SSL_get_peer_quic_transport_params(const SSL *ssl, - const uint8_t **out_params, - size_t *out_params_len); -__owur size_t SSL_quic_max_handshake_flight_len(const SSL *ssl, OSSL_ENCRYPTION_LEVEL level); -__owur OSSL_ENCRYPTION_LEVEL SSL_quic_read_level(const SSL *ssl); -__owur OSSL_ENCRYPTION_LEVEL SSL_quic_write_level(const SSL *ssl); -__owur int SSL_provide_quic_data(SSL *ssl, OSSL_ENCRYPTION_LEVEL level, - const uint8_t *data, size_t len); -__owur int SSL_process_quic_post_handshake(SSL *ssl); - -__owur int SSL_is_quic(SSL *ssl); - -/* BoringSSL API */ -void SSL_set_quic_use_legacy_codepoint(SSL *ssl, int use_legacy); - -/* - * Set an explicit value that you want to use - * If 0 (default) the server will use the highest extenstion the client sent - * If 0 (default) the client will send both extensions - */ -void SSL_set_quic_transport_version(SSL *ssl, int version); -__owur int SSL_get_quic_transport_version(const SSL *ssl); -/* Returns the negotiated version, or -1 on error */ -__owur int SSL_get_peer_quic_transport_version(const SSL *ssl); - -int SSL_CIPHER_get_prf_nid(const SSL_CIPHER *c); - -void SSL_set_quic_early_data_enabled(SSL *ssl, int enabled); - -# endif - # ifdef __cplusplus } # endif diff --git a/deps/openssl/openssl/include/openssl/sslerr.h b/deps/openssl/openssl/include/openssl/sslerr.h index b159ef8127c044..1e36405e32c0b7 100644 --- a/deps/openssl/openssl/include/openssl/sslerr.h +++ b/deps/openssl/openssl/include/openssl/sslerr.h @@ -161,7 +161,6 @@ # define SSL_R_MISSING_FATAL 256 # define SSL_R_MISSING_PARAMETERS 290 # define SSL_R_MISSING_PSK_KEX_MODES_EXTENSION 310 -# define SSL_R_MISSING_QUIC_TRANSPORT_PARAMETERS_EXTENSION 801 # define SSL_R_MISSING_RSA_CERTIFICATE 168 # define SSL_R_MISSING_RSA_ENCRYPTING_CERT 169 # define SSL_R_MISSING_RSA_SIGNING_CERT 170 @@ -336,7 +335,6 @@ # define SSL_R_WRONG_CERTIFICATE_TYPE 383 # define SSL_R_WRONG_CIPHER_RETURNED 261 # define SSL_R_WRONG_CURVE 378 -# define SSL_R_WRONG_ENCRYPTION_LEVEL_RECEIVED 800 # define SSL_R_WRONG_SIGNATURE_LENGTH 264 # define SSL_R_WRONG_SIGNATURE_SIZE 265 # define SSL_R_WRONG_SIGNATURE_TYPE 370 diff --git a/deps/openssl/openssl/include/openssl/tls1.h b/deps/openssl/openssl/include/openssl/tls1.h index d005d3c16dfff9..91558fa8d1a5d4 100644 --- a/deps/openssl/openssl/include/openssl/tls1.h +++ b/deps/openssl/openssl/include/openssl/tls1.h @@ -151,10 +151,6 @@ extern "C" { /* Temporary extension type */ # define TLSEXT_TYPE_renegotiate 0xff01 - /* ExtensionType value from RFC9001 */ -# define TLSEXT_TYPE_quic_transport_parameters_draft 0xffa5 -# define TLSEXT_TYPE_quic_transport_parameters 0x0039 - # ifndef OPENSSL_NO_NEXTPROTONEG /* This is not an IANA defined extension number */ # define TLSEXT_TYPE_next_proto_neg 13172 diff --git a/deps/openssl/openssl/providers/fips-sources.checksums b/deps/openssl/openssl/providers/fips-sources.checksums index 2075eca274d6f1..1ab5d0348c6ca2 100644 --- a/deps/openssl/openssl/providers/fips-sources.checksums +++ b/deps/openssl/openssl/providers/fips-sources.checksums @@ -4,71 +4,71 @@ c049a936d74100fcced225f575d46662792a6a0039777d2d4df0cf61eff90a68 crypto/aes/aes c1e674d08683a25bc053f6233f73a0d0b3a90aafe591ff57b702c7da1582e4a5 crypto/aes/aes_local.h a2466f18da5847c7d9fbced17524633c10ce024671a72f53f9c9c55b9b9923dd crypto/aes/aes_misc.c 6979c133f76f4623e62e6e970deae70fa025e713a72b71aead5a048d49e47f6f crypto/aes/asm/aes-586.pl -2eef5f20f1410b48bdaaafa24ded24f56f34c4ca79db1d38fa6bf1b3b19535bf crypto/aes/asm/aes-armv4.pl -38c2cf8ed3910efd89d8721e1b0763a8fde073b91f6529d251165a0496ef9555 crypto/aes/asm/aes-c64xplus.pl +92be9ff608331a432e95247a8f4fb9e46897d0cb76f2b6db809b61d44287964a crypto/aes/asm/aes-armv4.pl +953897f86e2de9fa27ef411155ab3aed133af94885f1507e76449c142da78656 crypto/aes/asm/aes-c64xplus.pl 00196f01f5218ad731e6a058d406078f7228a9756d9d73f51c0d0c2a68f885af crypto/aes/asm/aes-ia64.S -b4ef595194fe1692e1ab2b561f385da01b277cf004902e8fc99e8ac5389bbd35 crypto/aes/asm/aes-mips.pl -123c4498c94040b70708fdd911cb08c6411b020b4cf3eb761d6fa22c583c3e6f crypto/aes/asm/aes-parisc.pl -7a7f2f90791415ef4ffc1ba2a6f6b6fe994bfe0e03d3bf9dab6e428e6874695c crypto/aes/asm/aes-ppc.pl -d139e5ad69560fd0ffd8aa2e72304e463650cea4c657be7a90e0d1eb782d580a crypto/aes/asm/aes-s390x.pl -133ba35d77002abcd430414749c4e98c4a319630da898e45ff8dbc5800176df1 crypto/aes/asm/aes-sparcv9.pl -c98690249d490d23e6fee84f672f1463ffc029427110a4329244a59e4e4aaed8 crypto/aes/asm/aes-x86_64.pl -7ec99947b47e56595f0b085b8bda0b3113112f694e78b1f71b63ecd1f0fa2c67 crypto/aes/asm/aesfx-sparcv9.pl -ab94a27e533e164bcf09898a6f6019f43609d51a3b374cf75482dcf2914d464e crypto/aes/asm/aesni-mb-x86_64.pl -74939261340a0056eb9333fff1c843c8758b9f93de3d94650cd6d2899c6790d8 crypto/aes/asm/aesni-sha1-x86_64.pl -ce91f0893a2a35fdf4c024ccb0fd8329b30fdbd955f0ae011ab948101ee14951 crypto/aes/asm/aesni-sha256-x86_64.pl +88b6f8396cd9d86004743d5c3b0f72b7b8c3d5a2b00b0bbb761ba91ae5a7cdc8 crypto/aes/asm/aes-mips.pl +7ff9c96ef3d591d45d776fa4b244601ea0d9328e289aeab1e1b92436ce7d02ad crypto/aes/asm/aes-parisc.pl +f1244cdeadcb4e48f35bc5df19d4cfaf07e0086ad951b84f07ff6966501faa5b crypto/aes/asm/aes-ppc.pl +ecbfe826f4c514810c3ee20e265f4f621149694c298554b2682e5de4f029f14f crypto/aes/asm/aes-s390x.pl +ee4e8cacef972942d2a89c1a83c984df9cad87c61a54383403c5c4864c403ba1 crypto/aes/asm/aes-sparcv9.pl +2b3b9ac56bf54334d053857a24bdb08592151e8a7a60b89b8195846b7f8ee7b5 crypto/aes/asm/aes-x86_64.pl +c56c324667b67d726e040d70379efba5b270e2937f403c1b5979018b836903c7 crypto/aes/asm/aesfx-sparcv9.pl +14359dc32b7f4e5c08227fb9ac8f9232c1287399463b233fec4a2ab0c19f68d1 crypto/aes/asm/aesni-mb-x86_64.pl +2fe016e8098d1c959b6199ce98e91dfed9a3a543d6b068daf88d4c4c402701ec crypto/aes/asm/aesni-sha1-x86_64.pl +1d3acabadedb88d1327eeb76201ea9b3f4814f44898018ffae6c73e3f400b89b crypto/aes/asm/aesni-sha256-x86_64.pl 4ff74d4e629a88ef5a9e3d3f5b340fc0a4793d16d7cc7f1b70da62512a856248 crypto/aes/asm/aesni-x86.pl -30103cfe3b29d06b34feff48a927e0fa649e9109d35a3db64b09cfeb15426fa2 crypto/aes/asm/aesni-x86_64.pl -f3490c936a80e012c49e577ec6e1d4d36df324dfef6264e788e6225e20b5fd52 crypto/aes/asm/aesp8-ppc.pl -a5807ed92ec8a16d123061487c385bf1f65e50878cee95c8e8096844454129f8 crypto/aes/asm/aest4-sparcv9.pl -d34cf129a8c63e2b77a74117ed4440a4f35408dabd90e21e70eae92d208fa516 crypto/aes/asm/aesv8-armx.pl -a0b578b7d2787c91013547df07dfa73d8d7a420446dd624c66f7c55159817eb2 crypto/aes/asm/bsaes-armv7.pl -34accd08242a6bf4a751105f89b0c4de2cd7e54320753587815647abff7124de crypto/aes/asm/bsaes-x86_64.pl -d9bc047db9b2f54f27fe0d6e2ede9239b4a1f57a14bf89fa3cfba6b836599386 crypto/aes/asm/vpaes-armv8.pl -516421b1a321b842f879ad69e7b82ae3e1f3efc8288c83bb34d6577996e85787 crypto/aes/asm/vpaes-ppc.pl +c7c6694480bb5319690f94826139a93f5c460ebea6dba101b520a76cb956ec93 crypto/aes/asm/aesni-x86_64.pl +0489a10fbb1a8ca3652848d5c1e14e519501e189bad3e5827a573c26df359691 crypto/aes/asm/aesp8-ppc.pl +e397a5781893e97dd90a5a52049633be12a43f379ec5751bca2a6350c39444c8 crypto/aes/asm/aest4-sparcv9.pl +e3955352a92d56905d63e68937e4758f13190a14a10a3dcb1e5c641c49913c0c crypto/aes/asm/aesv8-armx.pl +5e8005fdb6641df465bdda20c3476f7176e6bcd63d5073044a0c02a327c7f172 crypto/aes/asm/bsaes-armv7.pl +0726a2c4c15c27a12b2f7d5e16863df4a1b1daa7b7d9b728f621b2b224d290e6 crypto/aes/asm/bsaes-x86_64.pl +1ff94d6bf6c8ae4809f64657eb89260fe3cb22137f649d3c73f72cb190258196 crypto/aes/asm/vpaes-armv8.pl +c3541865cd02d81101cdbab4877ed82772e6980d2c677b9008b38fa1b26d36d4 crypto/aes/asm/vpaes-ppc.pl 3ec24185750a995377516bc2fb2eae8b1c52094c6fff093bff591837fc12d6c3 crypto/aes/asm/vpaes-x86.pl -47bedbe6a04254eede121e71f11a657b1f1940aee1916bbfc04fa9fb8454f9b8 crypto/aes/asm/vpaes-x86_64.pl -1c9a2a0e8cee4a1283c74b2e306f46f79890f6d236394de2a80d1994fd411d1d crypto/alphacpuid.pl -7a37cadacdbecb50304228dfcb087ad7fbb6e31f6ab69c52dd161e79afb2f9ca crypto/arm64cpuid.pl +060bb6620f50af9afecdf97df051b45b9a50be9daf343dfec1cbb29693ce00a4 crypto/aes/asm/vpaes-x86_64.pl +2bc67270155e2d6c7da87d9070e005ee79cea18311004907edfd6a078003532a crypto/alphacpuid.pl +0255a480b78bdcc71f76676f496962a9828eb900f53b7be13be96ae3f67fe6db crypto/arm64cpuid.pl e0daf54f72dd8fd1bc537d93f34e2a6a887a9ed6027bb33e15a327ef5ff37a42 crypto/armcap.c -24cc7611225df0e20e414c14e80516c36d48bf99659946e85a876d8757356686 crypto/armv4cpuid.pl +a43f2c1eef16146943745f684f2add7d186924932a47abf7fb0760cba02804e6 crypto/armv4cpuid.pl 16739d54200fb81ca7835b5814f965022a2ab41589c7787e2697e3ea72d4fafa crypto/asn1_dsa.c -155eff9d747eed808398cfa2af4b276dfc1f9aac8a0f9d801b314ab3f2bf5b56 crypto/bn/asm/alpha-mont.pl -894cc71b2d783e4e1b54dbef45e9e9280165a2c43981ebdd03282f0e90914928 crypto/bn/asm/armv4-gf2m.pl -0d2e31dc9cdce02c619adfc9ac720ccf7171384e76a84cdf0e686a805dd7006e crypto/bn/asm/armv4-mont.pl -d7df31176f725c1ae7241fee8f681fdcf2ab9eb4d3cc6c80d49c2248ae40a56a crypto/bn/asm/armv8-mont.pl +819c9fd2b0cae9aab81c3cbd1815c2e22949d75f132f649b5883812d0bbaa39a crypto/bn/asm/alpha-mont.pl +0070595128b250b9ebdebe48ce53d2d27ca16ec4f7c6c8bd169ab2e4a913b2d1 crypto/bn/asm/armv4-gf2m.pl +8c1c53a725b8a4f92b8a353bfeeb393be94198df41c912e3270f9e654417b250 crypto/bn/asm/armv4-mont.pl +a0d926004bddb4613552ffa325fac57ab64b085255f2e72881d8478f55890f5a crypto/bn/asm/armv8-mont.pl cb4ad7b7461fcb8e2a0d52881158d0211b79544842d4eae36fc566869a2d62c8 crypto/bn/asm/bn-586.pl -10fb73a6cc1bc064ebdcf6d7fe3c7407ea1c28b0d65ad0123046f8b1518fa75a crypto/bn/asm/c64xplus-gf2m.pl +636da7e2a66272a81f9c99e90b36c6f132ad6236c739e8b9f2e7315f30b72edd crypto/bn/asm/c64xplus-gf2m.pl c86664fb974362ee52a454c83c2c4b23fd5b7d64b3c9e23ef1e0dfd130a46ee5 crypto/bn/asm/co-586.pl -b88190d748056e6a64988bf1a3d19efc4c292e3d338a65f4505cf769a2041077 crypto/bn/asm/ia64-mont.pl +199b9b100f194a2a128c14f2a71be5a04d50d069666d90ca5b69baee1318ccb7 crypto/bn/asm/ia64-mont.pl a511aafbf76647a0c83705d4491c898a5584d300aa449fa6166c8803372946eb crypto/bn/asm/ia64.S -fee42cabeeb87cdf0fa0a6ff3698b2fe98a8a47d10a756052df572097161a8b9 crypto/bn/asm/mips-mont.pl -b197a8e1be79b8c21f8d26b34b9a282ca42ec4bcd1f3212fde3889747082a1f7 crypto/bn/asm/mips.pl -13df09cee06a21669137294f92e5c31b4bf05a8035be6800c1cb4403d7cd8290 crypto/bn/asm/parisc-mont.pl -25c96e545b4981d45557eb14ea5c83aa2d6375ae0df806cb6e6ded2f59ddfed3 crypto/bn/asm/ppc-mont.pl -1c057083546fa1a3bb1b9819dc5110f5a3b11b7bf5a2fb275012323bd7412403 crypto/bn/asm/ppc.pl +687c5d6606fdfd0e242005972d15db74a9cbac2b8a9a54a56fcb1e99d3880ff3 crypto/bn/asm/mips-mont.pl +8aca83d2ec45a40af15e59cff1ac2dc33737a3d25f0a0b74d401fa778a5c5eb8 crypto/bn/asm/mips.pl +b27ec5181e387e812925bb26823b830f49d7a6e4971b6d11ea583f5632a1504b crypto/bn/asm/parisc-mont.pl +9973523b361db963eea4938a7a8a3adc692e1a4e1aec4fa1f1e57dc93da37921 crypto/bn/asm/ppc-mont.pl +59cd27e1e10c4984b7fb684b27f491e7634473b1bcff197a07e0ca653124aa9a crypto/bn/asm/ppc.pl e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 crypto/bn/asm/ppc64-mont-fixed.pl -fe9278a2504fb40257637a4718081775c29c4eb81f87a8528e5c85f8d0c6281a crypto/bn/asm/ppc64-mont.pl -94b2d5cf0faf2efddeb5fb7c575dabc35c1791715cc9299d59a01d9f96cb2d6f crypto/bn/asm/rsaz-avx2.pl -cd0861a565231f67252e172420f6914fe47a324b35916c29f6304491447fe84c crypto/bn/asm/rsaz-avx512.pl -c19c717d87dd1ba74f138af05c044c05f5d025e26323637f46ba54a8c871a378 crypto/bn/asm/rsaz-x86_64.pl -ae26becda9f6d30e9edde8bb89c251a0c40a9a6c879c4cdaec273d8c09af9cd6 crypto/bn/asm/s390x-gf2m.pl -2700337ef133d6688047a1a8e1c671db06016aae777679923ce2b301896762cf crypto/bn/asm/s390x-mont.pl +a25be64867ab837d93855af232e2bfa71b85b2c6f00e35e620fdc5618187fb6f crypto/bn/asm/ppc64-mont.pl +231579e532443665020d4d522d9f11713d9c5d5c814b95b434b0f65452e16de4 crypto/bn/asm/rsaz-avx2.pl +1657600d320ea549b527b2d878a7658533d60d26eeb38f42ea470fc612f9bb53 crypto/bn/asm/rsaz-avx512.pl +31e84dc905b13e38850071528d3abbfcaf8910bbc8b46f38d19c2b386a5f838e crypto/bn/asm/rsaz-x86_64.pl +30fedf48dfc5fec1c2044b6c226dd9fc42a92522cc589797a23a79d452bdd2cf crypto/bn/asm/s390x-gf2m.pl +590388d69d7ac3a0e9af4014792f4f0fdb9552719e8fb48ebc7e5dfca2a491d4 crypto/bn/asm/s390x-mont.pl aa02597f3dc09cfbc190aedb75711859ba0f3efff87067ebfba1ec78ebee40d7 crypto/bn/asm/s390x.S -87d49e83a7df467097fdfc577aa206be9ee622c40fcbbbe5133b35d9783b7816 crypto/bn/asm/sparct4-mont.pl +2f7cbc2c3d93b1bbc4953dda38b9ae0ab3a0a8331a0418d94d9b286183736c9e crypto/bn/asm/sparct4-mont.pl ca21a9ccbc54e19fb7c2e6cdf286ce7cb08b0fba960c777c6edce5c57ccc2101 crypto/bn/asm/sparcv8.S fbc93c8dbbecefe66086f58fe9719ed87b13b2cdc61454a10e841228296fecef crypto/bn/asm/sparcv8plus.S -2ec1497fa06826f7bc574239e425dd8dda0d4a2743e1fe87669ede900291fcb6 crypto/bn/asm/sparcv9-gf2m.pl -1f490fe184c7a51b2d0646a59e69aa659bfe51270ad21594951b8d7b785bac38 crypto/bn/asm/sparcv9-mont.pl -277dcb7faa1913b25fd43946c50039bcdd45cb643fd9ddeedd6c207cefa4dd50 crypto/bn/asm/sparcv9a-mont.pl +127832c1e3d298aad805236776488f5f8836b6a0fdbce3f6b42678163df3909f crypto/bn/asm/sparcv9-gf2m.pl +1622f04a8918724ac0e8804baf285fdafa0eeaaecc36c7facd459d0ff13a8cac crypto/bn/asm/sparcv9-mont.pl +b69083f78b4b4f7097de4462d16649532fb82c453a82cdd9cc1393122661d6e2 crypto/bn/asm/sparcv9a-mont.pl d404375a21d33396824a3da212d6646d4f3150dd141ee4b4a250aefae3482efb crypto/bn/asm/via-mont.pl -d632edf9b9bab7d2cd2d616512a98d15cf4b3ebba7a8e7b83650d654ceb52ecb crypto/bn/asm/vis3-mont.pl +d24f3e97239c8eed5efc721521b025b7256c15e67a54ea6b5c4cf8f7cd0f89ea crypto/bn/asm/vis3-mont.pl 89278854f44d95be916516609ce6f79dcd346bab52574b9b6336a9952aa94bee crypto/bn/asm/x86-gf2m.pl 90d4ae234c08267adce9ed38d56e0edc223f7480cb9605f5d7399d0b3914c6be crypto/bn/asm/x86-mont.pl d444ca73875e97e0ea88b20e4c02f2fcf3850e8b9311e3b67a2d04fe2796d543 crypto/bn/asm/x86_64-gcc.c -a5481ca55d94dc7ebdc93173610d38ae2569cea1fe9b5180debe0ab94e455ce1 crypto/bn/asm/x86_64-gf2m.pl -d8cc080824a72774cb3343a3d50ddf8f41a5b8321203d4c9a764762b62498b96 crypto/bn/asm/x86_64-mont.pl -03788cb685268e6a50ddfa742ea1fe937570c9b86f2ebc88ee35f3304f67c045 crypto/bn/asm/x86_64-mont5.pl +709ddee92e9222ee0ed27bfb90db556e85e2d302e4a9131afa25fdc14c4d858f crypto/bn/asm/x86_64-gf2m.pl +da7f7780d27eed164797e5334cd45b35d9c113e86afaca051463aef9a8fd787c crypto/bn/asm/x86_64-mont.pl +259fb8d7f40c0dba46920b1f169d5b37de03b0fda645463d19e3ae2b56de851d crypto/bn/asm/x86_64-mont5.pl 0ea8185a037a2951bb3d1e590bbbdeac305176d5e618f3e43a04c09733a9de34 crypto/bn/bn_add.c 759c2b9df808b3562fe8b0c7778dbadbf35f261e14fc2d5090d18c35b4181760 crypto/bn/bn_asm.c 14bd5a35c05fcf454854b92fb30b356d7ac618c1eb699dd798f6ad2936d1f5ee crypto/bn/bn_blind.c @@ -77,10 +77,10 @@ d8cc080824a72774cb3343a3d50ddf8f41a5b8321203d4c9a764762b62498b96 crypto/bn/asm/ 2893b6d03d4850d09c15959941b0759bbb50d8c20e873bed088e7cde4e15a65a crypto/bn/bn_ctx.c d94295953ab91469fe2b9da2a542b8ea11ac38551ecde8f8202b7f645c2dea16 crypto/bn/bn_dh.c 74b63a4515894592b7241fb30b91b21510beaa3d397809e3d74bc9a73e879d18 crypto/bn/bn_div.c -49e59eac540db304ab0ca7bee3ba9d45f89548fff98155561bbdb6602d0aab1d crypto/bn/bn_exp.c +46357d2d30109ae59482332adf604a5ef1bd64c7de08cc808db028c45190ba93 crypto/bn/bn_exp.c ec2b6e3af6df473a23e7f1a8522f2554cb0eb5d34e3282458c4a66d242278434 crypto/bn/bn_exp2.c baba7c8ae95af6aa36bc9f4be3a2eed33d500451e568ca4bfc6bc7cb48d4f7ea crypto/bn/bn_gcd.c -5fbb1ab8463cd5544a1d95cf7996b6387ae634984a42256b7a21482ce3ac30a2 crypto/bn/bn_gf2m.c +99325cf50bf72b5d77048c20d7fa4f80a179dc6357023745f9a58c8e914ae136 crypto/bn/bn_gf2m.c 081e8a6abc23599307dab3b1a92113a65e0bf8717cbc40c970c7469350bc4581 crypto/bn/bn_intern.c 602ed46fbfe12c899dfb7d9d99ff0dbfff96b454fce3cd02817f3e2488dd9192 crypto/bn/bn_kron.c 81a4afc27dd1e90c4bfa81c8d385214ce8a2b5884537752944a71ebebd91f4b0 crypto/bn/bn_lib.c @@ -101,14 +101,14 @@ a5c5c9f99961a5a7f22a3dcdce964c8a330f822be17f08652223a20fed747d0a crypto/bn/bn_r 24e62baa56e02f2db6454e10168b7c7fa7638db9221b9acda1803d43f38f36e0 crypto/bn/bn_word.c be27115efd36f0077a3ec26b1ff1f586b0b8969ba05d8ffa34b2ff4badf227bf crypto/bn/rsaz_exp.c c4d64da1cdc732ea918fccd6a7bb2746b03365dd26f7ba1e74e08c307ca4c58e crypto/bn/rsaz_exp.h -5b82cb8dbf3087c2e671871cb0a92e4039223a51af533a2ee996f3bfd47453a7 crypto/bn/rsaz_exp_x2.c +9bc3bf8965f98915f9019d2f516345e73c435c5bd8ad94bb4b7057809a7d1383 crypto/bn/rsaz_exp_x2.c 834db8ff36006e5cb53e09ca6c44290124bd23692f4341ea6563b66fcade4cea crypto/bsearch.c c39334b70e1394e43f378ae8d31b6e6dc125e4d9181e6536d38e649c4eaadb75 crypto/buffer/buffer.c -d2bfdfd96b182741d2d51f91478ffcc48491b0da44662bc1c32bc506b3eef1ba crypto/c64xpluscpuid.pl +5f43844b5d8665de9ab895f93599150a327d73ec2674bbf7d7c512d30163022d crypto/c64xpluscpuid.pl 0e1a41a2d81b5765bca3df448f60bf1fad91e485fe89dd65a7300ffc419e316d crypto/cmac/cmac.c 5113d8d12d884f845cad3d35d92f0a1ee20ebafd7a169273642f4e8178711de9 crypto/context.c c309d81ea991ddf5be4337afad2fd132169f7443c76f863349d3f3c82f3374e4 crypto/core_algorithm.c -f0fd9eb38bf7f196bbb4d26ce8fdf86d0a4f9db219157e66b2c0ffefb4f42005 crypto/core_fetch.c +65ba41169f8fec7cb8466c3458721e3150057fb587db087a70752e5e08201381 crypto/core_fetch.c 799c84d224639c6760c5c28e0e287500a973ca6d0c3d7c1bdcd61b0da4018b3c crypto/core_namemap.c 469e2f53b5f76cd487a60d3d4c44c8fc3a6c4d08405597ba664661ba485508d3 crypto/cpuid.c 71f0fff881eb4c5505fb17662f0ea4bbff24c6858c045a013ad8f786b07da5c4 crypto/cryptlib.c @@ -138,15 +138,15 @@ f4d52d3897219786c6046bf76abb2f174655c584caa50272bf5d281720df5022 crypto/dsa/dsa 196dc024873e413d92672c3a9b6c062ed6269250b0da6d41c0da1c03cfec9ef8 crypto/dsa/dsa_ossl.c 9f501a59c09fc3cb3caafaff25abd44397a94d1062950a4d62e855d2c8986b5a crypto/dsa/dsa_sign.c 53fa10cc87ac63e35df661882852dc46ae68e6fee83b842f1aeefe00b8900ee1 crypto/dsa/dsa_vrf.c -786779d7014bc04846832f80638743784a3850c7ee36e4a8062fe8eb7ac31c9b crypto/ec/asm/ecp_nistp521-ppc64.pl -2e3056ea14fab8b306b0281d6a6f4317a6e86dbf652a79ade726e716cd79bb1e crypto/ec/asm/ecp_nistz256-armv4.pl -a02edef19d22c5aba196080942111ab0172fc2ebe6d6c40db2beb6a1a2d885c6 crypto/ec/asm/ecp_nistz256-armv8.pl -729729f8233c95138158f4647b33a36cf175e707ce29563db0eedc811f324ec0 crypto/ec/asm/ecp_nistz256-ppc64.pl -78a5b172f7c13ae8ac622439ffb9d99b240dbb4bbda3f5c88d1533ae74a445ad crypto/ec/asm/ecp_nistz256-sparcv9.pl +d9722ad8c6b6e209865a921f3cda831d09bf54a55cacd1edd9802edb6559190a crypto/ec/asm/ecp_nistp521-ppc64.pl +78ad06b88fcc8689a3a846b82f9ee01546e5734acd1bccf2494e523b71dc74d1 crypto/ec/asm/ecp_nistz256-armv4.pl +4617351d2de4d0b2abfd358c58050cee00702d0b4c1acca09312ec870e351c7d crypto/ec/asm/ecp_nistz256-armv8.pl +3715ddd921425f3018741037f01455ed26a840ace08691a800708170a66cf4d2 crypto/ec/asm/ecp_nistz256-ppc64.pl +cfe7e75a2fddc87a7251684469a8808b9da82b2f5725eafad5806920f89932bd crypto/ec/asm/ecp_nistz256-sparcv9.pl 922725c4761cfa567af6ed9ecab04f2c7729ae2595f2fc0fa46dc67879dc87b0 crypto/ec/asm/ecp_nistz256-x86.pl -19ba01af58788e2873ebc1d5b503a76604bec0b9b6296fa794946e141fc945a4 crypto/ec/asm/ecp_nistz256-x86_64.pl -e806141073aa3792e2748f6feeee6d3017124b3bc6059a9eca0d53a2f5785346 crypto/ec/asm/x25519-ppc64.pl -a397592dc9fdb13016311db6184b4a3a4f2e198aacb03528f770f30ea4966cc4 crypto/ec/asm/x25519-x86_64.pl +ac327475c7ec828d11aa05628b4e3b81ec3b1400f30fe7bec01daf3cf71f2dc9 crypto/ec/asm/ecp_nistz256-x86_64.pl +cc727533130f5f1a29229929b3d4e8454585d647be25d6344f3c6a0240998368 crypto/ec/asm/x25519-ppc64.pl +ee897e230964511baa0d1bf95fb938312407a40a88ebe01476879c2763e5f732 crypto/ec/asm/x25519-x86_64.pl 340336e01aa04fcde9bfd56536f90c9bc0ad56a002b6cfa321a1e421f1e93ceb crypto/ec/curve25519.c 9a95ec8366154bb20aeb24f4767a8cbb9953ca0380708eb2f39caca6078cd59e crypto/ec/curve448/arch_32/f_impl32.c 063dac1e4a9573c47532123e9e03e3532a7473cc3e146521ba9ec6f486ddf3b1 crypto/ec/curve448/arch_64/arch_intrinsics.h @@ -166,16 +166,16 @@ f6447921a0031fa5beddedd298e82096fb3fdb189b712fab328b61f6beae0c23 crypto/ec/curv ae1637d89287c9d22a34bdc0d67f6e01262a2f8dcef9b61369dba8c334f5a80d crypto/ec/ec2_oct.c 6bbbf570ce31f5b579f7e03ec9f8a774663c7c1eb5e475bd31f8fee94a021ffc crypto/ec/ec2_smpl.c 2a71bd8dbe4f427c117d990581709a4ddce07fa8e530794b5a9574fef7c48a0c crypto/ec/ec_asn1.c -69b1b3acb4295f5fff961b339e8ace913176ca63fcedf4af0da4c27171f24f94 crypto/ec/ec_backend.c +e959960fe9a78ea67346048c9c02428203819d5b443d18fe7bb26cd1ca28fcdc crypto/ec/ec_backend.c 86e2becf9b3870979e2abefa1bd318e1a31820d275e2b50e03b17fc287abb20a crypto/ec/ec_check.c 265f911b9d4aada326a2d52cd8a589b556935c8b641598dcd36c6f85d29ce655 crypto/ec/ec_curve.c 8cfd0dcfb5acbf6105691a2d5e2826dba1ff3906707bc9dd6ff9bffcc306468f crypto/ec/ec_cvt.c 95ce53663ab8a1d05bd6f4999f30113e1edce771fb6d218a772fe02de7bdaf4d crypto/ec/ec_key.c 7e40fc646863e0675bbb90f075b809f61bdf0600d8095c8366858d9533ab7700 crypto/ec/ec_kmeth.c -bbd6f618c3dfe425ce0ba1c6710fe59418130e06351881162a590475e6438c44 crypto/ec/ec_lib.c +fea5cd863cd94b4e543b72942ed8c23175359cfab99ca65203af4ebecb001a15 crypto/ec/ec_lib.c a8a4690e42b4af60aad822aa8b16196df337906af53ea4db926707f7b596ff27 crypto/ec/ec_local.h fa901b996eb0e460359cd470843bdb03af7a77a2f1136c5e1d30daef70f3e4d2 crypto/ec/ec_mult.c -129c6b42417bfcf582f4a959cfd65433e6f85b158274f4fa38f9c62615ac9166 crypto/ec/ec_oct.c +205b17b41e6678f40ec2a92e7856e87904e57121e7dc3120d14a4c4eeafb15b0 crypto/ec/ec_oct.c c7fba2f2c33f67dafa23caef8c3abd12f5336274a9a07d412b83be0366969ee6 crypto/ec/ecdh_kdf.c b2cf8f052a5716137da7b0e857ed7a5df5fb513b6d14534199a05e32f2b5a866 crypto/ec/ecdh_ossl.c 2e00c2e0e6f6d58b81fc23fe500f59e98793dc828ca87d64eba10cc0fddd0dc1 crypto/ec/ecdsa_ossl.c @@ -228,19 +228,19 @@ f897493b50f4e9dd4cacb2a7accda6683c10ece602641874cdff1dac7128a751 crypto/initthr 7290d8d7ec31a98b17618f218d4f27b393501c7606c814a43db8af1975ad1d10 crypto/lhash/lhash.c 5d49ce00fc06df1b64cbc139ef45c71e0faf08a33f966bc608c82d574521a49e crypto/lhash/lhash_local.h f866aafae928db1b439ac950dc90744a2397dfe222672fe68b3798396190c8b0 crypto/mem_clr.c -78a20112586dbce2b8b6e509a0f46f6a36f2a4acf53c3f3511daf7932a71c391 crypto/modes/asm/aes-gcm-armv8_64.pl -e482f02932d77d61142548ca4f3c8d5709d88ec14ab84723d82331444c0f57da crypto/modes/asm/aesni-gcm-x86_64.pl -8fdcb4313fa3a6e541a697525856b9527a06ddf4c794f9393e843f86d67f543c crypto/modes/asm/ghash-alpha.pl -ace8c376b394439301cecaf468d2a9a8adae21eff1d43191cefbf6765023452d crypto/modes/asm/ghash-armv4.pl -c22f4945e7de3bd7bfef73447f09983e40a3e4dd0938244d902a1c44c98a8467 crypto/modes/asm/ghash-c64xplus.pl -315a76491cdba48c88df6549c9efd96b50515400810b185a568b7a871681e03d crypto/modes/asm/ghash-ia64.pl -25e9f494fcb6eb636c04af2f322736fae8aa339037e199332c96b8c9c3a50afa crypto/modes/asm/ghash-parisc.pl -f22d5fa646b4fc2db008b6b05ec07c8790d3ad5485d2b10218fd11d0e81030ba crypto/modes/asm/ghash-s390x.pl -de97107e0c19ff9dd4069f0761eccb00e0b3ced345e1f119ab3b918dd2f9c5f6 crypto/modes/asm/ghash-sparcv9.pl +e14f48d4112c0efe3826b4aa390cc24045a85298cc551ec7f3f36ac4236d7d81 crypto/modes/asm/aes-gcm-armv8_64.pl +1d686af304f94743038f916125effcb51790c025f3165d8d37b526bbeee781f0 crypto/modes/asm/aesni-gcm-x86_64.pl +c2e874a8deb418b5d8c935b2e256370566a5150e040c9fa008cdb5b463c26904 crypto/modes/asm/ghash-alpha.pl +6bc7d63569c73d7020ede481f2de05221ac92403c7cc11e7263ada7644f6aa9b crypto/modes/asm/ghash-armv4.pl +097975df63370de7ebea012d17de14fc1f361fb83acf03b432a99ae7d5bceb24 crypto/modes/asm/ghash-c64xplus.pl +fdde3bc48b37790c6e0006014da71e7a831bbb4fdbfcda2d01dbe0ceb0ba88fa crypto/modes/asm/ghash-ia64.pl +e472d73d06933667a51a0af973479993eed333c71b43af03095450acb36dbeb4 crypto/modes/asm/ghash-parisc.pl +6fb4332ac88113a20915ad4de1931ef88b0114b5379b16e1d967820e1229fbb0 crypto/modes/asm/ghash-s390x.pl +6af1a05981e1d41e4dea51e58938360e3abc4a4f58e179908242466d032b1a8a crypto/modes/asm/ghash-sparcv9.pl 26f55a57e77f774d17dfba93d757f78edfa3a03f68a71ffa37ccf3bfc468b1e2 crypto/modes/asm/ghash-x86.pl -2a0d23a644083e46745c7cb1ca79de393af9336a2e8eab7c85ffeb3b7b1a286f crypto/modes/asm/ghash-x86_64.pl -b407d9fc6ea65fe1a05edc2d139298d78391f3c165314fa6d56dd375b8e453cd crypto/modes/asm/ghashp8-ppc.pl -d8436f6dc43a18d49b1a16999ecb513ccf4483f418f75edc01ce68e777c614a9 crypto/modes/asm/ghashv8-armx.pl +72744131007d2389c09665a59a862f5f6bb61b64bd3456e9b400985cb56586b8 crypto/modes/asm/ghash-x86_64.pl +a4e9f2e496bd9362b17a1b5989aa4682647cefcff6117f0607122a9e11a9dfd9 crypto/modes/asm/ghashp8-ppc.pl +69a13f423ca74c22543900c14aef4a848e3bc75504b65d2f51c6903aebcc17a7 crypto/modes/asm/ghashv8-armx.pl 65112dfe63cd59487e7bdb1706b44acfcf48ecede12cc3ae51daa5b661f41f06 crypto/modes/cbc128.c 1611e73dc1e01b5c2201f51756a7405b7673aa0bb872e2957d1ec80c3530486f crypto/modes/ccm128.c d8c2f256532a4b94db6d03aea5cb609cccc938069f644b2fc77c5015648d148d crypto/modes/cfb128.c @@ -257,7 +257,7 @@ c698d5166d091d6bb6e9df3c211fe1cc916fd43a26ec844f28f547cd708f9c55 crypto/param_b 4fda13f6af05d80b0ab89ec4f5813c274a21a9b4565be958a02d006236cef05c crypto/params_dup.c b6cbfc8791b31587f32a3f9e4c117549793528ebddc34a361bad1ad8cf8d4c42 crypto/params_from_text.c 97cb7414dc2f165d5849ee3b46cdfff0afb067729435d9c01a747e0ca41e230c crypto/ppccap.c -826a78afb376cbf1e87f12a2a67eef2ee47059a0fd3f9cba7ce7f035e34f8052 crypto/ppccpuid.pl +3ca43596a7528dec8ff9d1a3cd0d68b62640f84b1d6a8b5e4842cfd0be1133ad crypto/ppccpuid.pl b4d34272a0bd1fbe6562022bf7ea6259b6a5a021a48222d415be47ef5ef2a905 crypto/property/defn_cache.c c3709986fd2ab18f3c6136d8dd7705a4538986aa789ceafe770c3a376db3c569 crypto/property/property.c 66da4f28d408133fb544b14aeb9ad4913e7c5c67e2826e53f0dc5bf4d8fada26 crypto/property/property_local.h @@ -288,50 +288,50 @@ f01af62704dbf9457e2669c3e7c1d4d740f0388faa49df93611b987a8aa2bf11 crypto/rsa/rsa 3aba73dacebb046faf8d09dc279149b52c629004b524ec33e6d81c8ad0bc31a8 crypto/rsa/rsa_sp800_56b_gen.c 1c1c2aeeb18bf1d69e8f134315b7e50d8f43d30eb1aa5bf42983eec9136a2fdc crypto/rsa/rsa_x931.c 0acbebed48f6242d595c21e3c1ad69da0daa960d62062e8970209deda144f337 crypto/s390xcap.c -370d98549d4d98e04b60677b319b85904259359bd9401dd5385aa728278e6626 crypto/s390xcpuid.pl +22205848cfb55116ebf999dced8331b575886a609ce29e6886e6267b2310c337 crypto/s390xcpuid.pl 5fa59240ca885cbc0c1cd026934b226d44fc9c3fdf0c2e7e3a7bd7f4963ca2e5 crypto/self_test_core.c -58a1a8aeb45421954fa0e4bc87157addb96d086ac4e6aade47da96523cecaa74 crypto/sha/asm/keccak1600-armv4.pl -d6df6cfdd4e2fee52dc16fd31c91768c45c48c22700c486406d70ecb37e8a8bb crypto/sha/asm/keccak1600-armv8.pl -81bfb4484d68a3a3e1d704855f76356090867fe10a75db7707b6f7364e8ee8da crypto/sha/asm/keccak1600-avx2.pl -b7bb35d51d439abbf3810454ccb9bfb5a51e2111eaf389fb95796ad6220a61a0 crypto/sha/asm/keccak1600-avx512.pl -37365dcc576f99006132271968bab990e2bebdab7f4168c726bd449a2fa51c6a crypto/sha/asm/keccak1600-avx512vl.pl -2767ae2f379a7a3d0c6dd1471d4d90dd896545b456cb6efd6c230df29e511d70 crypto/sha/asm/keccak1600-c64x.pl +05c533fde7fdba0c76103e97d881b7224c8427451b453e2f6413552996063e31 crypto/sha/asm/keccak1600-armv4.pl +ca3b2b654f9a8c4bc2fa2538c1f19d17acd4a6b9e0df6a4b81df04efa697e67e crypto/sha/asm/keccak1600-armv8.pl +12b7acce2fba0bc0e1ca07842ec84be6a022f141c86e077abb42c864af1d8d9c crypto/sha/asm/keccak1600-avx2.pl +faf0cccb685d5abc807e08db194f847c67b940da2fc3c235c210dc31d73a5334 crypto/sha/asm/keccak1600-avx512.pl +be1e7dd9998e3f31cfa6e1b17bc198aeec584a8b76820e38f71d51b05f8a9f2a crypto/sha/asm/keccak1600-avx512vl.pl +33bdcc6f7668460c3bdf779633e43bfad62b937042a73acb007b462fc5b0a034 crypto/sha/asm/keccak1600-c64x.pl 09fc831dd39bd90a701e9b16d9e9987cc215252a22e1e0355f5da6c495fca35a crypto/sha/asm/keccak1600-mmx.pl -485dcc50a51705b86c6dc47e6f58d092fec05dfbfcdf4f2785e4235c67cfe742 crypto/sha/asm/keccak1600-ppc64.pl -49535b60a1a981059a2a9636fdeeab22942d2a15e775b1ec9b5af8937a46aa76 crypto/sha/asm/keccak1600-s390x.pl -093751655b460d33b2fa6aa4d63a86e902f7f20b2d2a02ed948b78e5698c0dd5 crypto/sha/asm/keccak1600-x86_64.pl -e0a4a1df82716053a3f01ec0b096c735a0e3c4f6c9d9ec6b2006b37aaac64448 crypto/sha/asm/keccak1600p8-ppc.pl +ce4a58129e5ee3ac4c9dfec5ecc010440570ebf7bf869e3e9977f2121a64b27a crypto/sha/asm/keccak1600-ppc64.pl +a859fc8cb073b2d0012a93f3155a75fb6eb677441462b0de4f8cf8df1445e970 crypto/sha/asm/keccak1600-s390x.pl +618dcd4891b4064d3b8aa6dcd74bea7ef55f4962a64957b05a05448f6e3e0f17 crypto/sha/asm/keccak1600-x86_64.pl +831b8b02ab25d78ba6300ce960d96c13439bfba5844e13061e19c4e25cbacc3d crypto/sha/asm/keccak1600p8-ppc.pl 75d832db9bf0e98e7a5c522169060a6dd276c5118cfb297fc3f1111f55cd4007 crypto/sha/asm/sha1-586.pl -8d937771993f04407f5fdcca8ca8565f9f8a4d9c9a8f7bfd4e9f9121dd0450bb crypto/sha/asm/sha1-alpha.pl -ab7ecd62896324393b1fd9020515b9c0d2b9cc34d559f2efafa35affc9a1485d crypto/sha/asm/sha1-armv4-large.pl -0acc4e40f793d4d2b960af2baaecc91176ba6742ddd62dca0c33ddc838c58772 crypto/sha/asm/sha1-armv8.pl -c36f51761e7f59bdd0f61230297fb802542ac5d2d1c6d2b1096ed937131bd583 crypto/sha/asm/sha1-c64xplus.pl -4ab7c9153b085274a579b388ddff97a4ac7e11585e01811ca95b93a3ec786605 crypto/sha/asm/sha1-ia64.pl -7a392c5ef7dc19c39d67c7080e0c5214e7a80572c85c022be7e7d4378a5f740d crypto/sha/asm/sha1-mb-x86_64.pl -c0fea5a0d32001263c8bcf7fc0757aa68c6a7377f20fef8d28708e1b81de5dec crypto/sha/asm/sha1-mips.pl -f11b75a54c5f42aa3a052de8091bfba47d7cac01920b2fe0ddcb637d4c9d0eb9 crypto/sha/asm/sha1-parisc.pl -d46ef3fc166271a83144d90985034e2c514bd1020b84ec0fe5427ad593bfeb74 crypto/sha/asm/sha1-ppc.pl -a48c7d9403fe99fbd4daec60e96eb22058da766ab9e606d084a63613962851a2 crypto/sha/asm/sha1-s390x.pl -0e2951e0574c64ee055ffddf16ceefdec00823107d60362976605f139ad8ae68 crypto/sha/asm/sha1-sparcv9.pl -5da48400d4fae85e205e95a2fa368e7bf525e51e274b1dd680dfb48645426c85 crypto/sha/asm/sha1-sparcv9a.pl -04b73c902d36c28b5a7eab47cb85f743eb9c648ed5936f64f655524a1010a1b5 crypto/sha/asm/sha1-thumb.pl -f36d7ec7464c932230585a754b91f13cea4cde5a381fc9f798d959256d07910e crypto/sha/asm/sha1-x86_64.pl +c96e87d4f5311cd73bbdf499acc03418588be12426d878e157dd67e0099e0219 crypto/sha/asm/sha1-alpha.pl +4ba6d1c7f12fe76bf39babea966f0a4b7f8769e0c0510cbfc2c46a65dd62d45c crypto/sha/asm/sha1-armv4-large.pl +efc69cb0d867b7fac6b3fa8985c343d1f984d552bc8e75bbbbace0adf9ee5f15 crypto/sha/asm/sha1-armv8.pl +11d332b4e058e9fa418d6633316d2e9f9bf520a08b2d933e877bdf38b2edefcf crypto/sha/asm/sha1-c64xplus.pl +32ff0e701a7b8f25bcfe8477b20795de54f536527bd87d3ce694fd9aaae356d4 crypto/sha/asm/sha1-ia64.pl +471c27efca685b2a82ad7fefe329ca54172df9f49b9785da6d706b913b75e693 crypto/sha/asm/sha1-mb-x86_64.pl +0f5c63cf09e950d1b488935ab3b5562e3e9d5cd1a563fb88a41e3dae90a35e6d crypto/sha/asm/sha1-mips.pl +b5ffd7b6dbb04c05de7efa2945adb67ea845e7e61a3bf163a532f7b6acdf4267 crypto/sha/asm/sha1-parisc.pl +482cd23ca6ec38d6f62b90c68f9f20643579c50f2c0fbb0dab1c10a0e35efe77 crypto/sha/asm/sha1-ppc.pl +28cf69efd53d7a5a8c32e0f8db32c193f41b91faf44f5f59944334bc3f5aa337 crypto/sha/asm/sha1-s390x.pl +7fd355b412ddfa1c510e0ba3284f75b1c0d621b6db2ecb1d2a935d5cdb706628 crypto/sha/asm/sha1-sparcv9.pl +24554e68b0e7b7db7b635ff149549015f623ca0bcd9ae90439586a2076f6ae80 crypto/sha/asm/sha1-sparcv9a.pl +74d197cdd72400cabbff7e173f72c8976723081508b095dc995e8cd1abf3daa6 crypto/sha/asm/sha1-thumb.pl +a59a86293e28f5600609dc8af2b39c5285580ae8636520990b000eeeb67bb889 crypto/sha/asm/sha1-x86_64.pl c099059ef107f548ea2c2bab64a4eb8c277070ce6d74c4d32bb9808dc19c5fa3 crypto/sha/asm/sha256-586.pl -3a8cf38dd398a7ab1d9c6701fa61c428b07c4431a0041ed3a2ddf937897825c1 crypto/sha/asm/sha256-armv4.pl -c394bb5b0ff05595a9e6848b6602a0f29f73a79fc006593740f3ca645ad9d316 crypto/sha/asm/sha256-c64xplus.pl -f33af8e2e2f57b7b63b8c8b35722d7d11ca6ef1f73fb6c4ccebdd3e86912f4b1 crypto/sha/asm/sha256-mb-x86_64.pl +b9cee5c5a283f61f601d2dba68a7a76e7aba10bfafffc1a5c4987f9c0aa6f87d crypto/sha/asm/sha256-armv4.pl +93ddc97651ee3e779144a3c6b3e46a1bc4aa81e75cd7b9df068a2aef8743d25f crypto/sha/asm/sha256-c64xplus.pl +8be5c5d69733ecb16774aa8410b4bcb3623a9f060d2be103d8aa67bf6e4c5843 crypto/sha/asm/sha256-mb-x86_64.pl dd82e1311703abb019975fc7b61fb87d67e1ed916dddd065aced051e851114b9 crypto/sha/asm/sha512-586.pl -1f9ba79b1d591b7aa37b62382422cb025f5b45784d26cc5790c05cf4eb52b792 crypto/sha/asm/sha512-armv4.pl -8136196fce18b736f671a4b4945cd4aa4ab25a28c90c6fc9ab31ff771e8e0d9f crypto/sha/asm/sha512-armv8.pl -5b6796a9978b69fd78ee2ff1adc5cf35d44cad8194a38d1c2aba2023012cf252 crypto/sha/asm/sha512-c64xplus.pl -e8df660671ba61aa2e8f51358baf5d8ca913093e2ee1a40c9cb46d9c2c0851f6 crypto/sha/asm/sha512-ia64.pl -525f253ef8051bfb0e344ac2e40688ce359a42707fe360d23a03f522cc88c81a crypto/sha/asm/sha512-mips.pl -3c3e03529d8514467f8d77c01978348636bb339315feb8041fbde7640565001e crypto/sha/asm/sha512-parisc.pl -952ef1b10e8bbe3f638cc798b91ab9c5b47b66ed8fe94647b1beec9874f2e71e crypto/sha/asm/sha512-ppc.pl -193a0ea240264b29dd68a425f604a6da4b18e28838dcf909dd7e711af880f782 crypto/sha/asm/sha512-s390x.pl -dcb466a1e5938fb64ecb38b0533602192d61334da864ee8dfdcfa12d3cdfa273 crypto/sha/asm/sha512-sparcv9.pl -bb6503967a58b767a3e73441cfabc77f15c8ac747f377e276d4aa63d05f2c3c4 crypto/sha/asm/sha512-x86_64.pl -68d2f3b2dccb978ee42640f4fb4d2eae6b74d071017a3eedd9e7cb77762817dc crypto/sha/asm/sha512p8-ppc.pl +8d84164f3cfd53290c0c14bb5655510b7a9238857866328c0604d64b4e76fe21 crypto/sha/asm/sha512-armv4.pl +dadacb6d66b160913bffb4e1a6c3e5f7be6509b26e2c099701d8d3fdb92c1be0 crypto/sha/asm/sha512-armv8.pl +6f548a088feae3b6faa179653ba449df9d3f5cda1e0561e5b5f120b32274d1eb crypto/sha/asm/sha512-c64xplus.pl +9fa54fbc34fd881f4b344374b9b4f8fb15b641424be7af9a31c71af89ae5d577 crypto/sha/asm/sha512-ia64.pl +fb06844e7c3b014a58dccc8ec6020c71843cfdc5be08288bc7d204f0a840c474 crypto/sha/asm/sha512-mips.pl +11548f06d213947104a80898e000218ec0d6ff3f6913f6582de498476482ce9f crypto/sha/asm/sha512-parisc.pl +7c0c490ce6bb11a228853aecad5e164ce84e5bdabb8a6658ae7184782076c7d3 crypto/sha/asm/sha512-ppc.pl +38e0455fd6a2b93a7a5385379ca92bc6526585ca1eb4af365fac4c78f7285c72 crypto/sha/asm/sha512-s390x.pl +0611845c52091b0208dd41f22ddef9dd1e68d3d92fa4c4360738b840a6314de6 crypto/sha/asm/sha512-sparcv9.pl +f64d16c1e5c3fa4a7969de494a8372127502171a517c14be7a1e3a43a7308699 crypto/sha/asm/sha512-x86_64.pl +8725cabb8d695c576619f19283b034074a3fa0f1c0be952a9dbe9793be15b907 crypto/sha/asm/sha512p8-ppc.pl 57f6cf54b1b5d2cac7a8f622b7b6bd1878f360fff3fa0f02352061c24162ebbb crypto/sha/keccak1600.c 306cacd3f86e5cacaca74c58ef862516515e5c0cafaff48636d537fd84f1c2fb crypto/sha/sha1dgst.c 4d8cf04f5806611e7586aab47fb28165ec1afb00168e2c9876bb36cb5c29bf8b crypto/sha/sha256.c @@ -345,13 +345,13 @@ c50c584c55e56347bb43aca4b796b5344d70daece3061f586b79c871c21f5d1a crypto/sparse_ 7b4efa594d8d1f3ecbf4605cf54f72fb296a3b1d951bdc69e415aaa08f34e5c8 crypto/threads_lib.c a41ae93a755e2ec89b3cb5b4932e2b508fdda92ace2e025a2650a6da0e9e972c crypto/threads_none.c 3729e2bd36f945808b578e0d89fac0fcb3114e4fc9381614bcbd8a9869991716 crypto/threads_pthread.c -88423960f0414f6fd41fba4f4c67f9f7260c2741e4788adcd52493e895ec8027 crypto/threads_win.c -af0af59fe2cb8668a96751f343232d7faa3e7a937beb2bda09ed74fe60b9cb5f crypto/x86_64cpuid.pl +f82715745b668297d71b66d05e6bfc3c817bf80bd967c0f33ca7ffbb6e347645 crypto/threads_win.c +fd6c27cf7c6b5449b17f2b725f4203c4c10207f1973db09fd41571efe5de08fd crypto/x86_64cpuid.pl bbec287bb9bf35379885f8f8998b7fd9e8fc22efee9e1b299109af0f33a7ee16 crypto/x86cpuid.pl acbb841170d4d3eb91d969be1c0e4973b1babfd5fcd76440b0628f509f82fd76 e_os.h 249a0e58e9692920eddc1ada2ac772a0cfd749cfbf618f2f5da08280df545d8f include/crypto/aes_platform.h 8c6f308c1ca774e6127e325c3b80511dbcdc99631f032694d8db53a5c02364ee include/crypto/asn1_dsa.h -2e8c284672c4e8e395b3da56a3abf3e65bb4346313fb6f7358e925d077a2e1e2 include/crypto/bn.h +3bded0eaa7ccdebd0b4217b7fdb82676d5c0762a88aca462dbceaef851fafa99 include/crypto/bn.h 1c46818354d42bd1b1c4e5fdae9e019814936e775fd8c918ca49959c2a6416df include/crypto/bn_conf.h.in 7a43a4898fcc8446065e6c99249bcc14e475716e8c1d40d50408c0ab179520e6 include/crypto/bn_dh.h e69b2b20fb415e24b970941c84a62b752b5d0175bc68126e467f7cc970495504 include/crypto/cryptlib.h @@ -518,7 +518,7 @@ ab298c5f89f3165fa11093fad8063b7bcbff0924b43fb3107148ae66d54adcb5 providers/impl 8ed4a100e4756c31c56147b4b0fab76a4c6e5292aa2f079045f37b5502fd41b9 providers/implementations/ciphers/cipher_aes_gcm_hw_aesni.inc 4c6f3a2818754a5aa7b6db36dae53e248504f9e82cc5af2ed68c723903d4f9d5 providers/implementations/ciphers/cipher_aes_hw.c 89de794c090192459d99d95bc4a422e7782e62192cd0fdb3bdef4128cfedee68 providers/implementations/ciphers/cipher_aes_hw_aesni.inc -fac3a1878dc9c0c363d0ecdd9f74926157df54ca4f40adf8c479927395082008 providers/implementations/ciphers/cipher_aes_ocb.c +0d77239f0cc1a9e1ecdeb45b6fae12cac2637771d29842199be08699e59f87fc providers/implementations/ciphers/cipher_aes_ocb.c 88138a1aff9705e608c0557653be92eb4de65b152555a2b79ec8b2a8fae73e8f providers/implementations/ciphers/cipher_aes_ocb.h 855869ab5a8d7a61a11674cfe5d503dfa67f59e7e393730835d1d8cf0ab85c70 providers/implementations/ciphers/cipher_aes_ocb_hw.c 6a8782c728575d69c86b735c9f47acda5c0daa04e17f1e0faef2c963f23fab20 providers/implementations/ciphers/cipher_aes_wrp.c @@ -557,7 +557,7 @@ b9a61ce951c1904d8315b1bb26c0ab0aaadb47e71d4ead5df0a891608c728c4b providers/impl c95ce5498e724b9b3d58e3c2f4723e7e3e4beb07f9bea9422e43182cbadb43af providers/implementations/include/prov/macsignature.h 29d1a112b799e1f45fdf8bcee8361c2ed67428c250c1cdf408a9fbb7ebf4cce1 providers/implementations/include/prov/names.h 2187713b446d8b6d24ee986748b941ac3e24292c71e07ff9fb53a33021decdda providers/implementations/include/prov/seeding.h -d376c58489ae36fbece94bb88939845ced04a2a0bdd55d6a3562e45a56577ae1 providers/implementations/kdfs/hkdf.c +6091dd22e716fbe6c7c94524cdee6ad4432a572f2d3c4d360dcafafa3902d692 providers/implementations/kdfs/hkdf.c a62e3af09f5af84dcf36f951ba4ac90ca1694adaf3747126186020b155f94186 providers/implementations/kdfs/kbkdf.c e0644e727aacfea4da3cf2c4d2602d7ef0626ebb760b6467432ffd54d5fbb24d providers/implementations/kdfs/pbkdf2.c c0778565abff112c0c5257329a7750ec4605e62f26cc36851fa1fbee6e03c70c providers/implementations/kdfs/pbkdf2.h @@ -566,14 +566,14 @@ abe2b0f3711eaa34846e155cffc9242e4051c45de896f747afd5ac9d87f637dc providers/impl 8571556d77d10e8edc98212473a38f09632e3f19e9995dde89ee6c95f2e84ccf providers/implementations/kdfs/sskdf.c 589f6133799da80760e8bc3ab0191a341ab6d4d2706e92e6eb4a24b0250fefa6 providers/implementations/kdfs/tls1_prf.c 4d4a6d9a562d2dcfec941d3f113a544663b5ac2fbe4accd89ec70c1cc11751d0 providers/implementations/kdfs/x942kdf.c -6b6c776b12664164f3cb54c21df61e1c4477c7855d89431a16fb338cdae58d43 providers/implementations/kem/rsa_kem.c +58acb0ff36bf7e463ba714b347b714eccab9fda77c4ca6bacc3a55e6d2ce5ad9 providers/implementations/kem/rsa_kem.c 11a0d0fb88ed88e965f10b3a0ef6c880f60341df995128f57ad943053aaf15b2 providers/implementations/keymgmt/dh_kmgmt.c -a329f57cb041cd03907e9d996fbc2f378ee116c7f8d7fbf1ea08b7a5df7e0304 providers/implementations/keymgmt/dsa_kmgmt.c +9316fc619e8d8a1d841aa0936fc62c28eb2b4c60cc6c9b2d64b72f8641f28abb providers/implementations/keymgmt/dsa_kmgmt.c 9bc88451d3ae110c7a108ee73d3b3b6bda801ec3494d2dfb9c9970b85c2d34fe providers/implementations/keymgmt/ec_kmgmt.c 258ae17bb2dd87ed1511a8eb3fe99eed9b77f5c2f757215ff6b3d0e8791fc251 providers/implementations/keymgmt/ec_kmgmt_imexport.inc -011c36aad6834729043f23eacab417732541ee23916d9afa5bb9164862be00bb providers/implementations/keymgmt/ecx_kmgmt.c +d0c67b7fbddd51dcfebd96bf99794ca3bc437d50974ebcd56968fb8dd3627b0f providers/implementations/keymgmt/ecx_kmgmt.c 053a2be39a87f50b877ebdbbf799cf5faf8b2de33b04311d819d212ee1ea329b providers/implementations/keymgmt/kdf_legacy_kmgmt.c -1646b477fa231dd0f6c22444c99098f9b447cab0d39ff69b811262469d4dbe09 providers/implementations/keymgmt/mac_legacy_kmgmt.c +37e2f9f904eeabf94b1e4152b67ac236f872aa78dd7e47bf0de1b8f50ac19b6c providers/implementations/keymgmt/mac_legacy_kmgmt.c 19f22fc70a6321441e56d5bd4aab3d01d52d17069d4e4b5cefce0f411ecece75 providers/implementations/keymgmt/rsa_kmgmt.c 5eb96ea2df635cf79c5aeccae270fbe896b5e6384a5b3e4b187ce8c10fe8dfc7 providers/implementations/macs/cmac_prov.c e69aa06f8f3c6f5a26702b9f44a844b8589b99dc0ee590953a29e8b9ef10acbe providers/implementations/macs/gmac_prov.c @@ -588,7 +588,7 @@ f9457255fc57ef5739aa2584e535195e38cc947e31fd044d28d64c28c8a946ce providers/impl 04339b66c10017229ef368cb48077f58a252ebfda9ab12b9f919e4149b1036ed providers/implementations/rands/test_rng.c cafb9e6f54ad15889fcebddac6df61336bff7d78936f7de3bb5aab8aee5728d2 providers/implementations/signature/dsa_sig.c a30dc6308de0ca33406e7ce909f3bcf7580fb84d863b0976b275839f866258df providers/implementations/signature/ecdsa_sig.c -02e833a767afbe98247d6f09dfb1eb5a5cf7304a93f2c5427a9f6af9c8a3b549 providers/implementations/signature/eddsa_sig.c +09647b736980ac3c762f1e7c10cbfee78e2c6ab327ac62e5039968cea034ff3b providers/implementations/signature/eddsa_sig.c 3bb0f342b4cc1b4594ed0986adc47791c0a7b5c1ae7b1888c1fb5edb268a78d9 providers/implementations/signature/mac_legacy_sig.c 166d7e3a049b28ae2c6f94415070720d176a82e46af1613511c4b073ea705476 providers/implementations/signature/rsa_sig.c a14e901b02fe095713624db4080b3aa3ca685d43f9ebec03041f992240973346 ssl/record/tls_pad.c diff --git a/deps/openssl/openssl/providers/fips.checksum b/deps/openssl/openssl/providers/fips.checksum index cbd9c09511796a..0904f6a1029ed9 100644 --- a/deps/openssl/openssl/providers/fips.checksum +++ b/deps/openssl/openssl/providers/fips.checksum @@ -1 +1 @@ -101807560af8f62c064ad796dfa1e4c269d45aaf5303b47ad0b25fdd6cc92466 providers/fips-sources.checksums +01b31117f96429fe4c8efbf7f4f10ef32efa2b11c69851fd227e4194db116b6f providers/fips-sources.checksums diff --git a/deps/openssl/openssl/providers/implementations/ciphers/cipher_aes_ocb.c b/deps/openssl/openssl/providers/implementations/ciphers/cipher_aes_ocb.c index eab315453ef1a3..891e73f6726cac 100644 --- a/deps/openssl/openssl/providers/implementations/ciphers/cipher_aes_ocb.c +++ b/deps/openssl/openssl/providers/implementations/ciphers/cipher_aes_ocb.c @@ -369,12 +369,20 @@ static int aes_ocb_set_ctx_params(void *vctx, const OSSL_PARAM params[]) } if (p->data == NULL) { /* Tag len must be 0 to 16 */ - if (p->data_size > OCB_MAX_TAG_LEN) + if (p->data_size > OCB_MAX_TAG_LEN) { + ERR_raise(ERR_LIB_PROV, PROV_R_INVALID_TAG_LENGTH); return 0; + } ctx->taglen = p->data_size; } else { - if (p->data_size != ctx->taglen || ctx->base.enc) + if (ctx->base.enc) { + ERR_raise(ERR_LIB_PROV, ERR_R_PASSED_INVALID_ARGUMENT); + return 0; + } + if (p->data_size != ctx->taglen) { + ERR_raise(ERR_LIB_PROV, PROV_R_INVALID_TAG_LENGTH); return 0; + } memcpy(ctx->tag, p->data, p->data_size); } } diff --git a/deps/openssl/openssl/providers/implementations/encode_decode/encode_key2text.c b/deps/openssl/openssl/providers/implementations/encode_decode/encode_key2text.c index 3e75a9afb370c6..637fcf6a1214b3 100644 --- a/deps/openssl/openssl/providers/implementations/encode_decode/encode_key2text.c +++ b/deps/openssl/openssl/providers/implementations/encode_decode/encode_key2text.c @@ -112,7 +112,8 @@ static int print_labeled_bignum(BIO *out, const char *label, const BIGNUM *bn) use_sep = 0; /* The first byte on the next line doesnt have a : */ } if (BIO_printf(out, "%s%c%c", use_sep ? ":" : "", - tolower(p[0]), tolower(p[1])) <= 0) + tolower((unsigned char)p[0]), + tolower((unsigned char)p[1])) <= 0) goto err; ++bytes; p += 2; diff --git a/deps/openssl/openssl/providers/implementations/kdfs/hkdf.c b/deps/openssl/openssl/providers/implementations/kdfs/hkdf.c index 3db8b43891a000..69ef565d04fcca 100644 --- a/deps/openssl/openssl/providers/implementations/kdfs/hkdf.c +++ b/deps/openssl/openssl/providers/implementations/kdfs/hkdf.c @@ -669,7 +669,7 @@ static int prov_tls13_hkdf_generate_secret(OSSL_LIB_CTX *libctx, EVP_MD_CTX_free(mctx); /* Generate the pre-extract secret */ - if (!prov_tls13_hkdf_expand(md, prevsecret, mdlen, + if (!prov_tls13_hkdf_expand(md, prevsecret, prevsecretlen, prefix, prefixlen, label, labellen, hash, mdlen, preextractsec, mdlen)) return 0; diff --git a/deps/openssl/openssl/providers/implementations/kdfs/scrypt.c b/deps/openssl/openssl/providers/implementations/kdfs/scrypt.c index a7072f785f0877..6fa4192600fd26 100644 --- a/deps/openssl/openssl/providers/implementations/kdfs/scrypt.c +++ b/deps/openssl/openssl/providers/implementations/kdfs/scrypt.c @@ -1,5 +1,5 @@ /* - * Copyright 2017-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2017-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -88,7 +88,9 @@ static void kdf_scrypt_reset(void *vctx) KDF_SCRYPT *ctx = (KDF_SCRYPT *)vctx; OPENSSL_free(ctx->salt); + ctx->salt = NULL; OPENSSL_clear_free(ctx->pass, ctx->pass_len); + ctx->pass = NULL; kdf_scrypt_init(ctx); } @@ -128,7 +130,6 @@ static int set_digest(KDF_SCRYPT *ctx) EVP_MD_free(ctx->sha256); ctx->sha256 = EVP_MD_fetch(ctx->libctx, "sha256", ctx->propq); if (ctx->sha256 == NULL) { - OPENSSL_free(ctx); ERR_raise(ERR_LIB_PROV, PROV_R_UNABLE_TO_LOAD_SHA256); return 0; } diff --git a/deps/openssl/openssl/providers/implementations/kem/rsa_kem.c b/deps/openssl/openssl/providers/implementations/kem/rsa_kem.c index 882cf161258ab9..94c5bceea597be 100644 --- a/deps/openssl/openssl/providers/implementations/kem/rsa_kem.c +++ b/deps/openssl/openssl/providers/implementations/kem/rsa_kem.c @@ -264,6 +264,17 @@ static int rsasve_generate(PROV_RSA_CTX *prsactx, *secretlen = nlen; return 1; } + + /* + * If outlen is specified, then it must report the length + * of the out buffer on input so that we can confirm + * its size is sufficent for encapsulation + */ + if (outlen != NULL && *outlen < nlen) { + ERR_raise(ERR_LIB_PROV, PROV_R_INVALID_OUTPUT_LENGTH); + return 0; + } + /* * Step (2): Generate a random byte string z of nlen bytes where * 1 < z < n - 1 @@ -285,15 +296,33 @@ static int rsasve_generate(PROV_RSA_CTX *prsactx, return ret; } -/* - * NIST.SP.800-56Br2 +/** + * rsasve_recover - Recovers a secret value from ciphertext using an RSA + * private key. Once, recovered, the secret value is considered to be a + * shared secret. Algorithm is preformed as per + * NIST SP 800-56B Rev 2 * 7.2.1.3 RSASVE Recovery Operation (RSASVE.RECOVER). + * + * This function performs RSA decryption using the private key from the + * provided RSA context (`prsactx`). It takes the input ciphertext, decrypts + * it, and writes the decrypted message to the output buffer. + * + * @prsactx: The RSA context containing the private key. + * @out: The output buffer to store the decrypted message. + * @outlen: On input, the size of the output buffer. On successful + * completion, the actual length of the decrypted message. + * @in: The input buffer containing the ciphertext to be decrypted. + * @inlen: The length of the input ciphertext in bytes. + * + * Returns 1 on success, or 0 on error. In case of error, appropriate + * error messages are raised using the ERR_raise function. */ static int rsasve_recover(PROV_RSA_CTX *prsactx, unsigned char *out, size_t *outlen, const unsigned char *in, size_t inlen) { size_t nlen; + int ret; /* Step (1): get the byte length of n */ nlen = RSA_size(prsactx->rsa); @@ -307,13 +336,30 @@ static int rsasve_recover(PROV_RSA_CTX *prsactx, return 1; } - /* Step (2): check the input ciphertext 'inlen' matches the nlen */ + /* + * Step (2): check the input ciphertext 'inlen' matches the nlen + * and that outlen is at least nlen bytes + */ if (inlen != nlen) { ERR_raise(ERR_LIB_PROV, PROV_R_BAD_LENGTH); return 0; } + + /* + * If outlen is specified, then it must report the length + * of the out buffer, so that we can confirm that it is of + * sufficient size to hold the output of decapsulation + */ + if (outlen != NULL && *outlen < nlen) { + ERR_raise(ERR_LIB_PROV, PROV_R_INVALID_OUTPUT_LENGTH); + return 0; + } + /* Step (3): out = RSADP((n,d), in) */ - return (RSA_private_decrypt(inlen, in, out, prsactx->rsa, RSA_NO_PADDING) > 0); + ret = RSA_private_decrypt(inlen, in, out, prsactx->rsa, RSA_NO_PADDING); + if (ret > 0 && outlen != NULL) + *outlen = ret; + return ret > 0; } static int rsakem_generate(void *vprsactx, unsigned char *out, size_t *outlen, diff --git a/deps/openssl/openssl/providers/implementations/keymgmt/dsa_kmgmt.c b/deps/openssl/openssl/providers/implementations/keymgmt/dsa_kmgmt.c index 2f5742cfcc07ce..e3c3fd6916ed37 100644 --- a/deps/openssl/openssl/providers/implementations/keymgmt/dsa_kmgmt.c +++ b/deps/openssl/openssl/providers/implementations/keymgmt/dsa_kmgmt.c @@ -426,7 +426,7 @@ static void *dsa_gen_init(void *provctx, int selection, gctx->hindex = 0; } if (!dsa_gen_set_params(gctx, params)) { - OPENSSL_free(gctx); + dsa_gen_cleanup(gctx); gctx = NULL; } return gctx; diff --git a/deps/openssl/openssl/providers/implementations/keymgmt/ecx_kmgmt.c b/deps/openssl/openssl/providers/implementations/keymgmt/ecx_kmgmt.c index 987d38456fba41..94e62f755c20de 100644 --- a/deps/openssl/openssl/providers/implementations/keymgmt/ecx_kmgmt.c +++ b/deps/openssl/openssl/providers/implementations/keymgmt/ecx_kmgmt.c @@ -487,7 +487,7 @@ static void *ecx_gen_init(void *provctx, int selection, gctx->selection = selection; } if (!ecx_gen_set_params(gctx, params)) { - OPENSSL_free(gctx); + ecx_gen_cleanup(gctx); gctx = NULL; } return gctx; diff --git a/deps/openssl/openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c b/deps/openssl/openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c index 1fae4407fca609..b02a0a91c6f661 100644 --- a/deps/openssl/openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c +++ b/deps/openssl/openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c @@ -1,5 +1,5 @@ /* - * Copyright 2020-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -399,7 +399,7 @@ static void *mac_gen_init(void *provctx, int selection, struct mac_gen_ctx *gctx = mac_gen_init_common(provctx, selection); if (gctx != NULL && !mac_gen_set_params(gctx, params)) { - OPENSSL_free(gctx); + mac_gen_cleanup(gctx); gctx = NULL; } return gctx; @@ -411,7 +411,7 @@ static void *cmac_gen_init(void *provctx, int selection, struct mac_gen_ctx *gctx = mac_gen_init_common(provctx, selection); if (gctx != NULL && !cmac_gen_set_params(gctx, params)) { - OPENSSL_free(gctx); + mac_gen_cleanup(gctx); gctx = NULL; } return gctx; diff --git a/deps/openssl/openssl/providers/implementations/signature/eddsa_sig.c b/deps/openssl/openssl/providers/implementations/signature/eddsa_sig.c index c78f1fbb5fa6bf..9ec910af2527e7 100644 --- a/deps/openssl/openssl/providers/implementations/signature/eddsa_sig.c +++ b/deps/openssl/openssl/providers/implementations/signature/eddsa_sig.c @@ -1,5 +1,5 @@ /* - * Copyright 2020-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -133,6 +133,7 @@ static int eddsa_digest_signverify_init(void *vpeddsactx, const char *mdname, /* Should never happen */ ERR_raise(ERR_LIB_PROV, ERR_R_INTERNAL_ERROR); ossl_ecx_key_free(edkey); + WPACKET_cleanup(&pkt); return 0; } if (ret && WPACKET_finish(&pkt)) { diff --git a/deps/openssl/openssl/providers/implementations/storemgmt/file_store.c b/deps/openssl/openssl/providers/implementations/storemgmt/file_store.c index bb8b2ab8625a1e..3049a9c81133cc 100644 --- a/deps/openssl/openssl/providers/implementations/storemgmt/file_store.c +++ b/deps/openssl/openssl/providers/implementations/storemgmt/file_store.c @@ -238,7 +238,7 @@ static void *file_open(void *provctx, const char *uri) #ifdef _WIN32 /* Windows file: URIs with a drive letter start with a / */ if (p[0] == '/' && p[2] == ':' && p[3] == '/') { - char c = tolower(p[1]); + char c = tolower((unsigned char)p[1]); if (c >= 'a' && c <= 'z') { p++; diff --git a/deps/openssl/openssl/ssl/build.info b/deps/openssl/openssl/ssl/build.info index d99835c9a0dad8..0851357f81eba5 100644 --- a/deps/openssl/openssl/ssl/build.info +++ b/deps/openssl/openssl/ssl/build.info @@ -37,11 +37,8 @@ IF[{- !$disabled{'deprecated-3.0'} -}] SHARED_SOURCE[../libssl]=s3_cbc.c SOURCE[../libssl]=ssl_rsa_legacy.c ENDIF -DEFINE[../libssl]=$AESDEF -IF[{- !$disabled{quic} -}] - SOURCE[../libssl]=ssl_quic.c statem/statem_quic.c -ENDIF +DEFINE[../libssl]=$AESDEF SOURCE[../providers/libcommon.a]=record/tls_pad.c SOURCE[../providers/libdefault.a ../providers/libfips.a]=s3_cbc.c diff --git a/deps/openssl/openssl/ssl/s3_msg.c b/deps/openssl/openssl/ssl/s3_msg.c index dd2fe040e041d5..c0f0dbc17dcc21 100644 --- a/deps/openssl/openssl/ssl/s3_msg.c +++ b/deps/openssl/openssl/ssl/s3_msg.c @@ -81,16 +81,6 @@ int ssl3_dispatch_alert(SSL *s) s->s3.alert_dispatch = 0; alertlen = 2; -#ifndef OPENSSL_NO_QUIC - if (SSL_IS_QUIC(s)) { - if (!s->quic_method->send_alert(s, s->quic_write_level, - s->s3.send_alert[1])) { - ERR_raise(ERR_LIB_SSL, ERR_R_INTERNAL_ERROR); - return 0; - } - i = 1; - } else -#endif i = do_ssl3_write(s, SSL3_RT_ALERT, &s->s3.send_alert[0], &alertlen, 1, 0, &written); if (i <= 0) { diff --git a/deps/openssl/openssl/ssl/ssl_ciph.c b/deps/openssl/openssl/ssl/ssl_ciph.c index 76a1a8c967e356..9e32417e75d860 100644 --- a/deps/openssl/openssl/ssl/ssl_ciph.c +++ b/deps/openssl/openssl/ssl/ssl_ciph.c @@ -2240,37 +2240,3 @@ const char *OSSL_default_ciphersuites(void) "TLS_CHACHA20_POLY1305_SHA256:" "TLS_AES_128_GCM_SHA256"; } - -#ifndef OPENSSL_NO_QUIC -int SSL_CIPHER_get_prf_nid(const SSL_CIPHER *c) -{ - switch (c->algorithm2 & (0xFF << TLS1_PRF_DGST_SHIFT)) { - default: - break; - case TLS1_PRF_SHA1_MD5: /* TLS1_PRF */ - return NID_md5_sha1; - case TLS1_PRF_SHA256: - return NID_sha256; - case TLS1_PRF_SHA384: - return NID_sha384; - case TLS1_PRF_GOST94: - return NID_id_GostR3411_94_prf; - case TLS1_PRF_GOST12_256: - return NID_id_GostR3411_2012_256; - case TLS1_PRF_GOST12_512: - return NID_id_GostR3411_2012_512; - } - /* TLSv1.3 ciphers don't specify separate PRF */ - switch (c->algorithm2 & SSL_HANDSHAKE_MAC_MASK) { - default: - break; - case SSL_HANDSHAKE_MAC_MD5_SHA1: /* SSL_HANDSHAKE_MAC_DEFAULT */ - return NID_md5_sha1; - case SSL_HANDSHAKE_MAC_SHA256: - return NID_sha256; - case SSL_HANDSHAKE_MAC_SHA384: - return NID_sha384; - } - return NID_undef; -} -#endif diff --git a/deps/openssl/openssl/ssl/ssl_err.c b/deps/openssl/openssl/ssl/ssl_err.c index fe0d9c280f7e55..75be692e0007b4 100644 --- a/deps/openssl/openssl/ssl/ssl_err.c +++ b/deps/openssl/openssl/ssl/ssl_err.c @@ -241,8 +241,6 @@ static const ERR_STRING_DATA SSL_str_reasons[] = { {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_MISSING_PARAMETERS), "missing parameters"}, {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_MISSING_PSK_KEX_MODES_EXTENSION), "missing psk kex modes extension"}, - {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_MISSING_QUIC_TRANSPORT_PARAMETERS_EXTENSION), - "missing quic transport parameters extension"}, {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_MISSING_RSA_CERTIFICATE), "missing rsa certificate"}, {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_MISSING_RSA_ENCRYPTING_CERT), @@ -550,8 +548,6 @@ static const ERR_STRING_DATA SSL_str_reasons[] = { {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_WRONG_CIPHER_RETURNED), "wrong cipher returned"}, {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_WRONG_CURVE), "wrong curve"}, - {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_WRONG_ENCRYPTION_LEVEL_RECEIVED), - "wrong encryption level received"}, {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_WRONG_SIGNATURE_LENGTH), "wrong signature length"}, {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_WRONG_SIGNATURE_SIZE), diff --git a/deps/openssl/openssl/ssl/ssl_lib.c b/deps/openssl/openssl/ssl/ssl_lib.c index 2619636df88372..e628140dfae9a7 100644 --- a/deps/openssl/openssl/ssl/ssl_lib.c +++ b/deps/openssl/openssl/ssl/ssl_lib.c @@ -581,56 +581,7 @@ static void clear_ciphers(SSL *s) ssl_clear_hash_ctx(&s->write_hash); } -#ifndef OPENSSL_NO_QUIC int SSL_clear(SSL *s) -{ - if (!SSL_clear_not_quic(s)) - return 0; - return SSL_clear_quic(s); -} - -int SSL_clear_quic(SSL *s) -{ - OPENSSL_free(s->ext.peer_quic_transport_params_draft); - s->ext.peer_quic_transport_params_draft = NULL; - s->ext.peer_quic_transport_params_draft_len = 0; - OPENSSL_free(s->ext.peer_quic_transport_params); - s->ext.peer_quic_transport_params = NULL; - s->ext.peer_quic_transport_params_len = 0; - s->quic_read_level = ssl_encryption_initial; - s->quic_write_level = ssl_encryption_initial; - s->quic_latest_level_received = ssl_encryption_initial; - while (s->quic_input_data_head != NULL) { - QUIC_DATA *qd; - - qd = s->quic_input_data_head; - s->quic_input_data_head = qd->next; - OPENSSL_free(qd); - } - s->quic_input_data_tail = NULL; - BUF_MEM_free(s->quic_buf); - s->quic_buf = NULL; - s->quic_next_record_start = 0; - memset(s->client_hand_traffic_secret, 0, EVP_MAX_MD_SIZE); - memset(s->server_hand_traffic_secret, 0, EVP_MAX_MD_SIZE); - memset(s->client_early_traffic_secret, 0, EVP_MAX_MD_SIZE); - /* - * CONFIG - DON'T CLEAR - * s->ext.quic_transport_params - * s->ext.quic_transport_params_len - * s->quic_transport_version - * s->quic_method = NULL; - */ - return 1; -} -#endif - -/* Keep this conditional very local */ -#ifndef OPENSSL_NO_QUIC -int SSL_clear_not_quic(SSL *s) -#else -int SSL_clear(SSL *s) -#endif { if (s->method == NULL) { ERR_raise(ERR_LIB_SSL, SSL_R_NO_METHOD_SPECIFIED); @@ -905,10 +856,6 @@ SSL *SSL_new(SSL_CTX *ctx) s->job = NULL; -#ifndef OPENSSL_NO_QUIC - s->quic_method = ctx->quic_method; -#endif - #ifndef OPENSSL_NO_CT if (!SSL_set_ct_validation_callback(s, ctx->ct_validation_callback, ctx->ct_validation_callback_arg)) @@ -1306,20 +1253,6 @@ void SSL_free(SSL *s) OPENSSL_free(s->pha_context); EVP_MD_CTX_free(s->pha_dgst); -#ifndef OPENSSL_NO_QUIC - OPENSSL_free(s->ext.quic_transport_params); - OPENSSL_free(s->ext.peer_quic_transport_params_draft); - OPENSSL_free(s->ext.peer_quic_transport_params); - BUF_MEM_free(s->quic_buf); - while (s->quic_input_data_head != NULL) { - QUIC_DATA *qd; - - qd = s->quic_input_data_head; - s->quic_input_data_head = qd->next; - OPENSSL_free(qd); - } -#endif - sk_X509_NAME_pop_free(s->ca_names, X509_NAME_free); sk_X509_NAME_pop_free(s->client_ca_names, X509_NAME_free); @@ -1919,12 +1852,6 @@ static int ssl_io_intern(void *vargs) int ssl_read_internal(SSL *s, void *buf, size_t num, size_t *readbytes) { -#ifndef OPENSSL_NO_QUIC - if (SSL_IS_QUIC(s)) { - ERR_raise(ERR_LIB_SSL, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); - return -1; - } -#endif if (s->handshake_func == NULL) { ERR_raise(ERR_LIB_SSL, SSL_R_UNINITIALIZED); return -1; @@ -2056,12 +1983,6 @@ int SSL_get_early_data_status(const SSL *s) static int ssl_peek_internal(SSL *s, void *buf, size_t num, size_t *readbytes) { -#ifndef OPENSSL_NO_QUIC - if (SSL_IS_QUIC(s)) { - ERR_raise(ERR_LIB_SSL, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); - return -1; - } -#endif if (s->handshake_func == NULL) { ERR_raise(ERR_LIB_SSL, SSL_R_UNINITIALIZED); return -1; @@ -2122,12 +2043,6 @@ int SSL_peek_ex(SSL *s, void *buf, size_t num, size_t *readbytes) int ssl_write_internal(SSL *s, const void *buf, size_t num, size_t *written) { -#ifndef OPENSSL_NO_QUIC - if (SSL_IS_QUIC(s)) { - ERR_raise(ERR_LIB_SSL, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); - return -1; - } -#endif if (s->handshake_func == NULL) { ERR_raise(ERR_LIB_SSL, SSL_R_UNINITIALIZED); return -1; @@ -3960,11 +3875,6 @@ int SSL_get_error(const SSL *s, int i) } if (SSL_want_read(s)) { -#ifndef OPENSSL_NO_QUIC - if (SSL_IS_QUIC(s)) { - return SSL_ERROR_WANT_READ; - } -#endif bio = SSL_get_rbio(s); if (BIO_should_read(bio)) return SSL_ERROR_WANT_READ; @@ -4064,21 +3974,6 @@ int SSL_do_handshake(SSL *s) ret = s->handshake_func(s); } } -#ifndef OPENSSL_NO_QUIC - if (SSL_IS_QUIC(s) && ret == 1) { - if (s->server) { - if (s->early_data_state == SSL_EARLY_DATA_ACCEPTING) { - s->early_data_state = SSL_EARLY_DATA_FINISHED_READING; - s->rwstate = SSL_READING; - ret = 0; - } - } else if (s->early_data_state == SSL_EARLY_DATA_CONNECTING) { - s->early_data_state = SSL_EARLY_DATA_WRITE_RETRY; - s->rwstate = SSL_READING; - ret = 0; - } - } -#endif return ret; } diff --git a/deps/openssl/openssl/ssl/ssl_local.h b/deps/openssl/openssl/ssl/ssl_local.h index 51c4a77a9ed7c5..5fb1feb801635a 100644 --- a/deps/openssl/openssl/ssl/ssl_local.h +++ b/deps/openssl/openssl/ssl/ssl_local.h @@ -337,13 +337,6 @@ /* Flag used on OpenSSL ciphersuite ids to indicate they are for SSLv3+ */ # define SSL3_CK_CIPHERSUITE_FLAG 0x03000000 -/* Check if an SSL structure is using QUIC (which uses TLSv1.3) */ -# ifndef OPENSSL_NO_QUIC -# define SSL_IS_QUIC(s) (s->quic_method != NULL) -# else -# define SSL_IS_QUIC(s) 0 -# endif - /* Check if an SSL structure is using DTLS */ # define SSL_IS_DTLS(s) (s->method->ssl3_enc->enc_flags & SSL_ENC_FLAG_DTLS) @@ -773,8 +766,6 @@ typedef enum tlsext_index_en { TLSEXT_IDX_cryptopro_bug, TLSEXT_IDX_early_data, TLSEXT_IDX_certificate_authorities, - TLSEXT_IDX_quic_transport_parameters_draft, - TLSEXT_IDX_quic_transport_parameters, TLSEXT_IDX_padding, TLSEXT_IDX_psk, /* Dummy index - must always be the last entry */ @@ -1214,25 +1205,10 @@ struct ssl_ctx_st { uint32_t disabled_mac_mask; uint32_t disabled_mkey_mask; uint32_t disabled_auth_mask; - -#ifndef OPENSSL_NO_QUIC - const SSL_QUIC_METHOD *quic_method; -#endif }; typedef struct cert_pkey_st CERT_PKEY; -#ifndef OPENSSL_NO_QUIC -struct quic_data_st { - struct quic_data_st *next; - OSSL_ENCRYPTION_LEVEL level; - size_t start; /* offset into quic_buf->data */ - size_t length; -}; -typedef struct quic_data_st QUIC_DATA; -int quic_set_encryption_secrets(SSL *ssl, OSSL_ENCRYPTION_LEVEL level); -#endif - struct ssl_st { /* * protocol version (one of SSL2_VERSION, SSL3_VERSION, TLS1_VERSION, @@ -1492,11 +1468,6 @@ struct ssl_st { unsigned char handshake_traffic_hash[EVP_MAX_MD_SIZE]; unsigned char client_app_traffic_secret[EVP_MAX_MD_SIZE]; unsigned char server_app_traffic_secret[EVP_MAX_MD_SIZE]; -# ifndef OPENSSL_NO_QUIC - unsigned char client_hand_traffic_secret[EVP_MAX_MD_SIZE]; - unsigned char server_hand_traffic_secret[EVP_MAX_MD_SIZE]; - unsigned char client_early_traffic_secret[EVP_MAX_MD_SIZE]; -# endif unsigned char exporter_master_secret[EVP_MAX_MD_SIZE]; unsigned char early_exporter_master_secret[EVP_MAX_MD_SIZE]; EVP_CIPHER_CTX *enc_read_ctx; /* cryptographic state */ @@ -1709,35 +1680,8 @@ struct ssl_st { * selected. */ int tick_identity; - -#ifndef OPENSSL_NO_QUIC - uint8_t *quic_transport_params; - size_t quic_transport_params_len; - uint8_t *peer_quic_transport_params_draft; - size_t peer_quic_transport_params_draft_len; - uint8_t *peer_quic_transport_params; - size_t peer_quic_transport_params_len; -#endif } ext; -#ifndef OPENSSL_NO_QUIC - OSSL_ENCRYPTION_LEVEL quic_read_level; - OSSL_ENCRYPTION_LEVEL quic_write_level; - OSSL_ENCRYPTION_LEVEL quic_latest_level_received; - BUF_MEM *quic_buf; /* buffer incoming handshake messages */ - /* - * defaults to 0, but can be set to: - * - TLSEXT_TYPE_quic_transport_parameters_draft - * - TLSEXT_TYPE_quic_transport_parameters - * Client: if 0, send both - * Server: if 0, use same version as client sent - */ - int quic_transport_version; - QUIC_DATA *quic_input_data_head; - QUIC_DATA *quic_input_data_tail; - size_t quic_next_record_start; - const SSL_QUIC_METHOD *quic_method; -#endif /* * Parsed form of the ClientHello, kept around across client_hello_cb * calls. @@ -2867,11 +2811,6 @@ void custom_exts_free(custom_ext_methods *exts); void ssl_comp_free_compression_methods_int(void); -#ifndef OPENSSL_NO_QUIC -__owur int SSL_clear_not_quic(SSL *s); -__owur int SSL_clear_quic(SSL *s); -#endif - /* ssl_mcnf.c */ void ssl_ctx_system_config(SSL_CTX *ctx); diff --git a/deps/openssl/openssl/ssl/ssl_quic.c b/deps/openssl/openssl/ssl/ssl_quic.c deleted file mode 100644 index 987c1e740ca714..00000000000000 --- a/deps/openssl/openssl/ssl/ssl_quic.c +++ /dev/null @@ -1,378 +0,0 @@ -/* - * Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#include "ssl_local.h" -#include "internal/cryptlib.h" -#include "internal/refcount.h" - -int SSL_set_quic_transport_params(SSL *ssl, const uint8_t *params, - size_t params_len) -{ - uint8_t *tmp; - - if (params == NULL || params_len == 0) { - tmp = NULL; - params_len = 0; - } else { - tmp = OPENSSL_memdup(params, params_len); - if (tmp == NULL) - return 0; - } - - OPENSSL_free(ssl->ext.quic_transport_params); - ssl->ext.quic_transport_params = tmp; - ssl->ext.quic_transport_params_len = params_len; - return 1; -} - -void SSL_get_peer_quic_transport_params(const SSL *ssl, - const uint8_t **out_params, - size_t *out_params_len) -{ - if (ssl->ext.peer_quic_transport_params_len) { - *out_params = ssl->ext.peer_quic_transport_params; - *out_params_len = ssl->ext.peer_quic_transport_params_len; - } else { - *out_params = ssl->ext.peer_quic_transport_params_draft; - *out_params_len = ssl->ext.peer_quic_transport_params_draft_len; - } -} - -/* Returns the negotiated version, or -1 on error */ -int SSL_get_peer_quic_transport_version(const SSL *ssl) -{ - if (ssl->ext.peer_quic_transport_params_len != 0 - && ssl->ext.peer_quic_transport_params_draft_len != 0) - return -1; - if (ssl->ext.peer_quic_transport_params_len != 0) - return TLSEXT_TYPE_quic_transport_parameters; - if (ssl->ext.peer_quic_transport_params_draft_len != 0) - return TLSEXT_TYPE_quic_transport_parameters_draft; - - return -1; -} - -void SSL_set_quic_use_legacy_codepoint(SSL *ssl, int use_legacy) -{ - if (use_legacy) - ssl->quic_transport_version = TLSEXT_TYPE_quic_transport_parameters_draft; - else - ssl->quic_transport_version = TLSEXT_TYPE_quic_transport_parameters; -} - -void SSL_set_quic_transport_version(SSL *ssl, int version) -{ - ssl->quic_transport_version = version; -} - -int SSL_get_quic_transport_version(const SSL *ssl) -{ - return ssl->quic_transport_version; -} - -size_t SSL_quic_max_handshake_flight_len(const SSL *ssl, OSSL_ENCRYPTION_LEVEL level) -{ - /* - * Limits flights to 16K by default when there are no large - * (certificate-carrying) messages. - */ - static const size_t DEFAULT_FLIGHT_LIMIT = 16384; - - switch (level) { - case ssl_encryption_initial: - return DEFAULT_FLIGHT_LIMIT; - case ssl_encryption_early_data: - /* QUIC does not send EndOfEarlyData. */ - return 0; - case ssl_encryption_handshake: - if (ssl->server) { - /* - * Servers may receive Certificate message if configured to request - * client certificates. - */ - if ((ssl->verify_mode & SSL_VERIFY_PEER) - && ssl->max_cert_list > DEFAULT_FLIGHT_LIMIT) - return ssl->max_cert_list; - } else { - /* - * Clients may receive both Certificate message and a CertificateRequest - * message. - */ - if (2*ssl->max_cert_list > DEFAULT_FLIGHT_LIMIT) - return 2 * ssl->max_cert_list; - } - return DEFAULT_FLIGHT_LIMIT; - case ssl_encryption_application: - return DEFAULT_FLIGHT_LIMIT; - } - - return 0; -} - -OSSL_ENCRYPTION_LEVEL SSL_quic_read_level(const SSL *ssl) -{ - return ssl->quic_read_level; -} - -OSSL_ENCRYPTION_LEVEL SSL_quic_write_level(const SSL *ssl) -{ - return ssl->quic_write_level; -} - -int SSL_provide_quic_data(SSL *ssl, OSSL_ENCRYPTION_LEVEL level, - const uint8_t *data, size_t len) -{ - size_t l, offset; - - if (!SSL_IS_QUIC(ssl)) { - ERR_raise(ERR_LIB_SSL, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); - return 0; - } - - /* Level can be different than the current read, but not less */ - if (level < ssl->quic_read_level - || (ssl->quic_input_data_tail != NULL && level < ssl->quic_input_data_tail->level) - || level < ssl->quic_latest_level_received) { - ERR_raise(ERR_LIB_SSL, SSL_R_WRONG_ENCRYPTION_LEVEL_RECEIVED); - return 0; - } - - if (len == 0) - return 1; - - if (ssl->quic_buf == NULL) { - BUF_MEM *buf; - if ((buf = BUF_MEM_new()) == NULL) { - ERR_raise(ERR_LIB_SSL, ERR_R_INTERNAL_ERROR); - return 0; - } - if (!BUF_MEM_grow(buf, SSL3_RT_MAX_PLAIN_LENGTH)) { - ERR_raise(ERR_LIB_SSL, ERR_R_INTERNAL_ERROR); - BUF_MEM_free(buf); - return 0; - } - ssl->quic_buf = buf; - /* We preallocated storage, but there's still no *data*. */ - ssl->quic_buf->length = 0; - buf = NULL; - } - - /* A TLS message must not cross an encryption level boundary */ - if (ssl->quic_buf->length != ssl->quic_next_record_start - && level != ssl->quic_latest_level_received) { - ERR_raise(ERR_LIB_SSL, SSL_R_WRONG_ENCRYPTION_LEVEL_RECEIVED); - return 0; - } - ssl->quic_latest_level_received = level; - - offset = ssl->quic_buf->length; - if (!BUF_MEM_grow(ssl->quic_buf, offset + len)) { - ERR_raise(ERR_LIB_SSL, ERR_R_INTERNAL_ERROR); - return 0; - } - memcpy(ssl->quic_buf->data + offset, data, len); - - /* Split on handshake message boundaries */ - while (ssl->quic_buf->length > ssl->quic_next_record_start - + SSL3_HM_HEADER_LENGTH) { - QUIC_DATA *qd; - const uint8_t *p; - - /* TLS Handshake message header has 1-byte type and 3-byte length */ - p = (const uint8_t *)ssl->quic_buf->data - + ssl->quic_next_record_start + 1; - n2l3(p, l); - l += SSL3_HM_HEADER_LENGTH; - /* Don't allocate a QUIC_DATA if we don't have a full record */ - if (l > ssl->quic_buf->length - ssl->quic_next_record_start) - break; - - qd = OPENSSL_zalloc(sizeof(*qd)); - if (qd == NULL) { - ERR_raise(ERR_LIB_SSL, ERR_R_INTERNAL_ERROR); - return 0; - } - - qd->next = NULL; - qd->length = l; - qd->start = ssl->quic_next_record_start; - qd->level = level; - - if (ssl->quic_input_data_tail != NULL) - ssl->quic_input_data_tail->next = qd; - else - ssl->quic_input_data_head = qd; - ssl->quic_input_data_tail = qd; - ssl->quic_next_record_start += l; - } - - return 1; -} - -int SSL_CTX_set_quic_method(SSL_CTX *ctx, const SSL_QUIC_METHOD *quic_method) -{ - if (ctx->method->version != TLS_ANY_VERSION) - return 0; - ctx->quic_method = quic_method; - ctx->options &= ~SSL_OP_ENABLE_MIDDLEBOX_COMPAT; - return 1; -} - -int SSL_set_quic_method(SSL *ssl, const SSL_QUIC_METHOD *quic_method) -{ - if (ssl->method->version != TLS_ANY_VERSION) - return 0; - ssl->quic_method = quic_method; - ssl->options &= ~SSL_OP_ENABLE_MIDDLEBOX_COMPAT; - return 1; -} - -int quic_set_encryption_secrets(SSL *ssl, OSSL_ENCRYPTION_LEVEL level) -{ - uint8_t *c2s_secret = NULL; - uint8_t *s2c_secret = NULL; - size_t len; - const EVP_MD *md; - - if (!SSL_IS_QUIC(ssl)) - return 1; - - /* secrets from the POV of the client */ - switch (level) { - case ssl_encryption_early_data: - c2s_secret = ssl->client_early_traffic_secret; - break; - case ssl_encryption_handshake: - c2s_secret = ssl->client_hand_traffic_secret; - s2c_secret = ssl->server_hand_traffic_secret; - break; - case ssl_encryption_application: - c2s_secret = ssl->client_app_traffic_secret; - s2c_secret = ssl->server_app_traffic_secret; - break; - default: - return 1; - } - - if (level == ssl_encryption_early_data) { - const SSL_CIPHER *c = SSL_SESSION_get0_cipher(ssl->session); - if (ssl->early_data_state == SSL_EARLY_DATA_CONNECTING - && ssl->max_early_data > 0 - && ssl->session->ext.max_early_data == 0) { - if (!ossl_assert(ssl->psksession != NULL - && ssl->max_early_data == - ssl->psksession->ext.max_early_data)) { - SSLfatal(ssl, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); - return 0; - } - c = SSL_SESSION_get0_cipher(ssl->psksession); - } - - if (c == NULL) { - SSLfatal(ssl, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); - return 0; - } - - md = ssl_md(ssl->ctx, c->algorithm2); - } else { - md = ssl_handshake_md(ssl); - if (md == NULL) { - /* May not have selected cipher, yet */ - const SSL_CIPHER *c = NULL; - - /* - * It probably doesn't make sense to use an (external) PSK session, - * but in theory some kinds of external session caches could be - * implemented using it, so allow psksession to be used as well as - * the regular session. - */ - if (ssl->session != NULL) - c = SSL_SESSION_get0_cipher(ssl->session); - else if (ssl->psksession != NULL) - c = SSL_SESSION_get0_cipher(ssl->psksession); - - if (c != NULL) - md = SSL_CIPHER_get_handshake_digest(c); - } - } - - if ((len = EVP_MD_size(md)) <= 0) { - SSLfatal(ssl, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); - return 0; - } - - if (ssl->server) { - if (!ssl->quic_method->set_encryption_secrets(ssl, level, c2s_secret, - s2c_secret, len)) { - SSLfatal(ssl, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); - return 0; - } - } else { - if (!ssl->quic_method->set_encryption_secrets(ssl, level, s2c_secret, - c2s_secret, len)) { - SSLfatal(ssl, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); - return 0; - } - } - - return 1; -} - -int SSL_process_quic_post_handshake(SSL *ssl) -{ - int ret; - - if (SSL_in_init(ssl) || !SSL_IS_QUIC(ssl)) { - ERR_raise(ERR_LIB_SSL, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); - return 0; - } - - /* if there is no data, return success as BoringSSL */ - while (ssl->quic_input_data_head != NULL) { - /* - * This is always safe (we are sure to be at a record boundary) because - * SSL_read()/SSL_write() are never used for QUIC connections -- the - * application data is handled at the QUIC layer instead. - */ - ossl_statem_set_in_init(ssl, 1); - ret = ssl->handshake_func(ssl); - ossl_statem_set_in_init(ssl, 0); - - if (ret <= 0) - return 0; - } - return 1; -} - -int SSL_is_quic(SSL* ssl) -{ - return SSL_IS_QUIC(ssl); -} - -void SSL_set_quic_early_data_enabled(SSL *ssl, int enabled) -{ - if (!SSL_is_quic(ssl) || !SSL_in_before(ssl)) - return; - - if (!enabled) { - ssl->early_data_state = SSL_EARLY_DATA_NONE; - return; - } - - if (ssl->server) { - ssl->early_data_state = SSL_EARLY_DATA_ACCEPTING; - return; - } - - if ((ssl->session == NULL || ssl->session->ext.max_early_data == 0) - && ssl->psk_use_session_cb == NULL) - return; - - ssl->early_data_state = SSL_EARLY_DATA_CONNECTING; -} diff --git a/deps/openssl/openssl/ssl/statem/extensions.c b/deps/openssl/openssl/ssl/statem/extensions.c index ed78744119e209..f8157389b7f18b 100644 --- a/deps/openssl/openssl/ssl/statem/extensions.c +++ b/deps/openssl/openssl/ssl/statem/extensions.c @@ -59,11 +59,6 @@ static int final_early_data(SSL *s, unsigned int context, int sent); static int final_maxfragmentlen(SSL *s, unsigned int context, int sent); static int init_post_handshake_auth(SSL *s, unsigned int context); static int final_psk(SSL *s, unsigned int context, int sent); -#ifndef OPENSSL_NO_QUIC -static int init_quic_transport_params(SSL *s, unsigned int context); -static int final_quic_transport_params_draft(SSL *s, unsigned int context, int sent); -static int final_quic_transport_params(SSL *s, unsigned int context, int sent); -#endif /* Structure to define a built-in extension */ typedef struct extensions_definition_st { @@ -375,29 +370,6 @@ static const EXTENSION_DEFINITION ext_defs[] = { tls_construct_certificate_authorities, tls_construct_certificate_authorities, NULL, }, -#ifndef OPENSSL_NO_QUIC - { - TLSEXT_TYPE_quic_transport_parameters_draft, - SSL_EXT_CLIENT_HELLO | SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS - | SSL_EXT_TLS_IMPLEMENTATION_ONLY | SSL_EXT_TLS1_3_ONLY, - init_quic_transport_params, - tls_parse_ctos_quic_transport_params_draft, tls_parse_stoc_quic_transport_params_draft, - tls_construct_stoc_quic_transport_params_draft, tls_construct_ctos_quic_transport_params_draft, - final_quic_transport_params_draft, - }, - { - TLSEXT_TYPE_quic_transport_parameters, - SSL_EXT_CLIENT_HELLO | SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS - | SSL_EXT_TLS_IMPLEMENTATION_ONLY | SSL_EXT_TLS1_3_ONLY, - init_quic_transport_params, - tls_parse_ctos_quic_transport_params, tls_parse_stoc_quic_transport_params, - tls_construct_stoc_quic_transport_params, tls_construct_ctos_quic_transport_params, - final_quic_transport_params, - }, -#else - INVALID_EXTENSION, - INVALID_EXTENSION, -#endif { /* Must be immediately before pre_shared_key */ TLSEXT_TYPE_padding, @@ -1750,44 +1722,3 @@ static int final_psk(SSL *s, unsigned int context, int sent) return 1; } - -#ifndef OPENSSL_NO_QUIC -static int init_quic_transport_params(SSL *s, unsigned int context) -{ - return 1; -} - -static int final_quic_transport_params_draft(SSL *s, unsigned int context, - int sent) -{ - return 1; -} - -static int final_quic_transport_params(SSL *s, unsigned int context, int sent) -{ - /* called after final_quic_transport_params_draft */ - if (SSL_IS_QUIC(s)) { - if (s->ext.peer_quic_transport_params_len == 0 - && s->ext.peer_quic_transport_params_draft_len == 0) { - SSLfatal(s, SSL_AD_MISSING_EXTENSION, - SSL_R_MISSING_QUIC_TRANSPORT_PARAMETERS_EXTENSION); - return 0; - } - /* if we got both, discard the one we can't use */ - if (s->ext.peer_quic_transport_params_len != 0 - && s->ext.peer_quic_transport_params_draft_len != 0) { - if (s->quic_transport_version == TLSEXT_TYPE_quic_transport_parameters_draft) { - OPENSSL_free(s->ext.peer_quic_transport_params); - s->ext.peer_quic_transport_params = NULL; - s->ext.peer_quic_transport_params_len = 0; - } else { - OPENSSL_free(s->ext.peer_quic_transport_params_draft); - s->ext.peer_quic_transport_params_draft = NULL; - s->ext.peer_quic_transport_params_draft_len = 0; - } - } - } - - return 1; -} -#endif diff --git a/deps/openssl/openssl/ssl/statem/extensions_clnt.c b/deps/openssl/openssl/ssl/statem/extensions_clnt.c index 3b0781fc71c70e..ced88f77ba3c30 100644 --- a/deps/openssl/openssl/ssl/statem/extensions_clnt.c +++ b/deps/openssl/openssl/ssl/statem/extensions_clnt.c @@ -1196,47 +1196,7 @@ EXT_RETURN tls_construct_ctos_post_handshake_auth(SSL *s, WPACKET *pkt, #endif } -#ifndef OPENSSL_NO_QUIC -EXT_RETURN tls_construct_ctos_quic_transport_params_draft(SSL *s, WPACKET *pkt, - unsigned int context, X509 *x, - size_t chainidx) -{ - if (s->quic_transport_version == TLSEXT_TYPE_quic_transport_parameters - || s->ext.quic_transport_params == NULL - || s->ext.quic_transport_params_len == 0) { - return EXT_RETURN_NOT_SENT; - } - - if (!WPACKET_put_bytes_u16(pkt, TLSEXT_TYPE_quic_transport_parameters_draft) - || !WPACKET_sub_memcpy_u16(pkt, s->ext.quic_transport_params, - s->ext.quic_transport_params_len)) { - SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); - return EXT_RETURN_FAIL; - } - - return EXT_RETURN_SENT; -} -EXT_RETURN tls_construct_ctos_quic_transport_params(SSL *s, WPACKET *pkt, - unsigned int context, X509 *x, - size_t chainidx) -{ - if (s->quic_transport_version == TLSEXT_TYPE_quic_transport_parameters_draft - || s->ext.quic_transport_params == NULL - || s->ext.quic_transport_params_len == 0) { - return EXT_RETURN_NOT_SENT; - } - - if (!WPACKET_put_bytes_u16(pkt, TLSEXT_TYPE_quic_transport_parameters) - || !WPACKET_sub_memcpy_u16(pkt, s->ext.quic_transport_params, - s->ext.quic_transport_params_len)) { - SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); - return EXT_RETURN_FAIL; - } - - return EXT_RETURN_SENT; -} -#endif /* * Parse the server's renegotiation binding and abort if it's not right */ @@ -1964,17 +1924,6 @@ int tls_parse_stoc_early_data(SSL *s, PACKET *pkt, unsigned int context, return 0; } -#ifndef OPENSSL_NO_QUIC - /* - * QUIC server must send 0xFFFFFFFF or it's a PROTOCOL_VIOLATION - * per RFC9001 S4.6.1 - */ - if (SSL_IS_QUIC(s) && max_early_data != 0xFFFFFFFF) { - SSLfatal(s, SSL_AD_ILLEGAL_PARAMETER, SSL_R_INVALID_MAX_EARLY_DATA); - return 0; - } -#endif - s->session->ext.max_early_data = max_early_data; return 1; @@ -2057,37 +2006,3 @@ int tls_parse_stoc_psk(SSL *s, PACKET *pkt, unsigned int context, X509 *x, return 1; } -#ifndef OPENSSL_NO_QUIC -int tls_parse_stoc_quic_transport_params_draft(SSL *s, PACKET *pkt, - unsigned int context, X509 *x, - size_t chainidx) -{ - OPENSSL_free(s->ext.peer_quic_transport_params_draft); - s->ext.peer_quic_transport_params_draft = NULL; - s->ext.peer_quic_transport_params_draft_len = 0; - - if (!PACKET_memdup(pkt, - &s->ext.peer_quic_transport_params_draft, - &s->ext.peer_quic_transport_params_draft_len)) { - SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); - return 0; - } - return 1; -} - -int tls_parse_stoc_quic_transport_params(SSL *s, PACKET *pkt, unsigned int context, - X509 *x, size_t chainidx) -{ - OPENSSL_free(s->ext.peer_quic_transport_params); - s->ext.peer_quic_transport_params = NULL; - s->ext.peer_quic_transport_params_len = 0; - - if (!PACKET_memdup(pkt, - &s->ext.peer_quic_transport_params, - &s->ext.peer_quic_transport_params_len)) { - SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); - return 0; - } - return 1; -} -#endif diff --git a/deps/openssl/openssl/ssl/statem/extensions_srvr.c b/deps/openssl/openssl/ssl/statem/extensions_srvr.c index 546d11dd1f73af..72c00574be6863 100644 --- a/deps/openssl/openssl/ssl/statem/extensions_srvr.c +++ b/deps/openssl/openssl/ssl/statem/extensions_srvr.c @@ -1083,7 +1083,7 @@ int tls_parse_ctos_psk(SSL *s, PACKET *pkt, unsigned int context, X509 *x, if (sesstmp == NULL) { SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); - return 0; + goto err; } SSL_SESSION_free(sess); sess = sesstmp; @@ -1237,40 +1237,6 @@ int tls_parse_ctos_post_handshake_auth(SSL *s, PACKET *pkt, return 1; } -#ifndef OPENSSL_NO_QUIC -int tls_parse_ctos_quic_transport_params_draft(SSL *s, PACKET *pkt, unsigned int context, - X509 *x, size_t chainidx) -{ - OPENSSL_free(s->ext.peer_quic_transport_params_draft); - s->ext.peer_quic_transport_params_draft = NULL; - s->ext.peer_quic_transport_params_draft_len = 0; - - if (!PACKET_memdup(pkt, - &s->ext.peer_quic_transport_params_draft, - &s->ext.peer_quic_transport_params_draft_len)) { - SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); - return 0; - } - return 1; -} - -int tls_parse_ctos_quic_transport_params(SSL *s, PACKET *pkt, unsigned int context, - X509 *x, size_t chainidx) -{ - OPENSSL_free(s->ext.peer_quic_transport_params); - s->ext.peer_quic_transport_params = NULL; - s->ext.peer_quic_transport_params_len = 0; - - if (!PACKET_memdup(pkt, - &s->ext.peer_quic_transport_params, - &s->ext.peer_quic_transport_params_len)) { - SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); - return 0; - } - return 1; -} -#endif - /* * Add the server's renegotiation binding */ @@ -1911,20 +1877,12 @@ EXT_RETURN tls_construct_stoc_early_data(SSL *s, WPACKET *pkt, size_t chainidx) { if (context == SSL_EXT_TLS1_3_NEW_SESSION_TICKET) { - uint32_t max_early_data = s->max_early_data; - - if (max_early_data == 0) + if (s->max_early_data == 0) return EXT_RETURN_NOT_SENT; -#ifndef OPENSSL_NO_QUIC - /* QUIC server must always send 0xFFFFFFFF, per RFC9001 S4.6.1 */ - if (SSL_IS_QUIC(s)) - max_early_data = 0xFFFFFFFF; -#endif - if (!WPACKET_put_bytes_u16(pkt, TLSEXT_TYPE_early_data) || !WPACKET_start_sub_packet_u16(pkt) - || !WPACKET_put_bytes_u32(pkt, max_early_data) + || !WPACKET_put_bytes_u32(pkt, s->max_early_data) || !WPACKET_close(pkt)) { SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); return EXT_RETURN_FAIL; @@ -1962,48 +1920,3 @@ EXT_RETURN tls_construct_stoc_psk(SSL *s, WPACKET *pkt, unsigned int context, return EXT_RETURN_SENT; } - -#ifndef OPENSSL_NO_QUIC -EXT_RETURN tls_construct_stoc_quic_transport_params_draft(SSL *s, WPACKET *pkt, - unsigned int context, - X509 *x, - size_t chainidx) -{ - if (s->quic_transport_version == TLSEXT_TYPE_quic_transport_parameters - || s->ext.peer_quic_transport_params_draft_len == 0 - || s->ext.quic_transport_params == NULL - || s->ext.quic_transport_params_len == 0) { - return EXT_RETURN_NOT_SENT; - } - - if (!WPACKET_put_bytes_u16(pkt, TLSEXT_TYPE_quic_transport_parameters_draft) - || !WPACKET_sub_memcpy_u16(pkt, s->ext.quic_transport_params, - s->ext.quic_transport_params_len)) { - SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); - return EXT_RETURN_FAIL; - } - - return EXT_RETURN_SENT; -} - -EXT_RETURN tls_construct_stoc_quic_transport_params(SSL *s, WPACKET *pkt, - unsigned int context, X509 *x, - size_t chainidx) -{ - if (s->quic_transport_version == TLSEXT_TYPE_quic_transport_parameters_draft - || s->ext.peer_quic_transport_params_len == 0 - || s->ext.quic_transport_params == NULL - || s->ext.quic_transport_params_len == 0) { - return EXT_RETURN_NOT_SENT; - } - - if (!WPACKET_put_bytes_u16(pkt, TLSEXT_TYPE_quic_transport_parameters) - || !WPACKET_sub_memcpy_u16(pkt, s->ext.quic_transport_params, - s->ext.quic_transport_params_len)) { - SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); - return EXT_RETURN_FAIL; - } - - return EXT_RETURN_SENT; -} -#endif diff --git a/deps/openssl/openssl/ssl/statem/statem.c b/deps/openssl/openssl/ssl/statem/statem.c index d80d4da2038d1b..553546d93a411f 100644 --- a/deps/openssl/openssl/ssl/statem/statem.c +++ b/deps/openssl/openssl/ssl/statem/statem.c @@ -334,13 +334,8 @@ static int state_machine(SSL *s, int server) * If we are stateless then we already called SSL_clear() - don't do * it again and clear the STATELESS flag itself. */ -#ifndef OPENSSL_NO_QUIC - if ((s->s3.flags & TLS1_FLAGS_STATELESS) == 0 && !SSL_clear_not_quic(s)) - return -1; -#else if ((s->s3.flags & TLS1_FLAGS_STATELESS) == 0 && !SSL_clear(s)) return -1; -#endif } #ifndef OPENSSL_NO_SCTP if (SSL_IS_DTLS(s) && BIO_dgram_is_sctp(SSL_get_wbio(s))) { @@ -588,11 +583,6 @@ static SUB_STATE_RETURN read_state_machine(SSL *s) * In DTLS we get the whole message in one go - header and body */ ret = dtls_get_message(s, &mt); -#ifndef OPENSSL_NO_QUIC - } else if (SSL_IS_QUIC(s)) { - /* QUIC behaves like DTLS -- all in one go. */ - ret = quic_get_message(s, &mt); -#endif } else { ret = tls_get_message_header(s, &mt); } @@ -622,8 +612,8 @@ static SUB_STATE_RETURN read_state_machine(SSL *s) return SUB_STATE_ERROR; } - /* dtls_get_message/quic_get_message already did this */ - if (!SSL_IS_DTLS(s) && !SSL_IS_QUIC(s) + /* dtls_get_message already did this */ + if (!SSL_IS_DTLS(s) && s->s3.tmp.message_size > 0 && !grow_init_buf(s, s->s3.tmp.message_size + SSL3_HM_HEADER_LENGTH)) { @@ -641,10 +631,6 @@ static SUB_STATE_RETURN read_state_machine(SSL *s) * opportunity to do any further processing. */ ret = dtls_get_message_body(s, &len); -#ifndef OPENSSL_NO_QUIC - } else if (SSL_IS_QUIC(s)) { - ret = quic_get_message_body(s, &len); -#endif } else { ret = tls_get_message_body(s, &len); } @@ -935,14 +921,6 @@ static SUB_STATE_RETURN write_state_machine(SSL *s) int statem_flush(SSL *s) { s->rwstate = SSL_WRITING; -#ifndef OPENSSL_NO_QUIC - if (SSL_IS_QUIC(s)) { - if (!s->quic_method->flush_flight(s)) { - ERR_raise(ERR_LIB_SSL, ERR_R_INTERNAL_ERROR); - return 0; - } - } else -#endif if (BIO_flush(s->wbio) <= 0) { return 0; } diff --git a/deps/openssl/openssl/ssl/statem/statem_clnt.c b/deps/openssl/openssl/ssl/statem/statem_clnt.c index 9d925091b6c618..3cd1ee2d3dfe1f 100644 --- a/deps/openssl/openssl/ssl/statem/statem_clnt.c +++ b/deps/openssl/openssl/ssl/statem/statem_clnt.c @@ -904,14 +904,6 @@ int ossl_statem_client_construct_message(SSL *s, WPACKET *pkt, break; case TLS_ST_CW_END_OF_EARLY_DATA: -#ifndef OPENSSL_NO_QUIC - /* QUIC does not send EndOfEarlyData, RFC9001 S8.3 */ - if (SSL_IS_QUIC(s)) { - *confunc = NULL; - *mt = SSL3_MT_DUMMY; - break; - } -#endif *confunc = tls_construct_end_of_early_data; *mt = SSL3_MT_END_OF_EARLY_DATA; break; diff --git a/deps/openssl/openssl/ssl/statem/statem_lib.c b/deps/openssl/openssl/ssl/statem/statem_lib.c index 121929b06f4062..6f0eaa5d6c0d21 100644 --- a/deps/openssl/openssl/ssl/statem/statem_lib.c +++ b/deps/openssl/openssl/ssl/statem/statem_lib.c @@ -45,29 +45,8 @@ int ssl3_do_write(SSL *s, int type) int ret; size_t written = 0; -#ifndef OPENSSL_NO_QUIC - if (SSL_IS_QUIC(s)) { - if (type == SSL3_RT_HANDSHAKE) { - ret = s->quic_method->add_handshake_data(s, s->quic_write_level, - (const uint8_t*)&s->init_buf->data[s->init_off], - s->init_num); - if (!ret) { - ret = -1; - /* QUIC can't sent anything out sice the above failed */ - ERR_raise(ERR_LIB_SSL, ERR_R_INTERNAL_ERROR); - } else { - written = s->init_num; - } - } else { - /* QUIC doesn't use ChangeCipherSpec */ - ret = -1; - ERR_raise(ERR_LIB_SSL, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); - } - } else -#endif - ret = ssl3_write_bytes(s, type, &s->init_buf->data[s->init_off], - s->init_num, &written); - + ret = ssl3_write_bytes(s, type, &s->init_buf->data[s->init_off], + s->init_num, &written); if (ret <= 0) return -1; if (type == SSL3_RT_HANDSHAKE) @@ -666,13 +645,6 @@ int tls_construct_finished(SSL *s, WPACKET *pkt) int tls_construct_key_update(SSL *s, WPACKET *pkt) { -#ifndef OPENSSL_NO_QUIC - if (SSL_is_quic(s)) { - /* TLS KeyUpdate is not used for QUIC, so this is an error. */ - SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); - return 0; - } -#endif if (!WPACKET_put_bytes_u8(pkt, s->key_update)) { SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); return 0; @@ -695,13 +667,6 @@ MSG_PROCESS_RETURN tls_process_key_update(SSL *s, PACKET *pkt) return MSG_PROCESS_ERROR; } -#ifndef OPENSSL_NO_QUIC - if (SSL_is_quic(s)) { - SSLfatal(s, SSL_AD_UNEXPECTED_MESSAGE, SSL_R_UNEXPECTED_MESSAGE); - return MSG_PROCESS_ERROR; - } -#endif - if (!PACKET_get_1(pkt, &updatetype) || PACKET_remaining(pkt) != 0) { SSLfatal(s, SSL_AD_DECODE_ERROR, SSL_R_BAD_KEY_UPDATE); diff --git a/deps/openssl/openssl/ssl/statem/statem_local.h b/deps/openssl/openssl/ssl/statem/statem_local.h index 4203c084e8749b..ad4d93b1e27989 100644 --- a/deps/openssl/openssl/ssl/statem/statem_local.h +++ b/deps/openssl/openssl/ssl/statem/statem_local.h @@ -104,10 +104,6 @@ __owur int tls_get_message_header(SSL *s, int *mt); __owur int tls_get_message_body(SSL *s, size_t *len); __owur int dtls_get_message(SSL *s, int *mt); __owur int dtls_get_message_body(SSL *s, size_t *len); -#ifndef OPENSSL_NO_QUIC -__owur int quic_get_message(SSL *s, int *mt); -__owur int quic_get_message_body(SSL *s, size_t *len); -#endif /* Message construction and processing functions */ __owur int tls_process_initial_server_flight(SSL *s); @@ -255,14 +251,6 @@ int tls_parse_ctos_psk(SSL *s, PACKET *pkt, unsigned int context, X509 *x, size_t chainidx); int tls_parse_ctos_post_handshake_auth(SSL *, PACKET *pkt, unsigned int context, X509 *x, size_t chainidx); -#ifndef OPENSSL_NO_QUIC -int tls_parse_ctos_quic_transport_params_draft(SSL *s, PACKET *pkt, - unsigned int context, X509 *x, - size_t chainidx); - -int tls_parse_ctos_quic_transport_params(SSL *s, PACKET *pkt, unsigned int context, - X509 *x, size_t chainidx); -#endif EXT_RETURN tls_construct_stoc_renegotiate(SSL *s, WPACKET *pkt, unsigned int context, X509 *x, @@ -323,16 +311,6 @@ EXT_RETURN tls_construct_stoc_cryptopro_bug(SSL *s, WPACKET *pkt, size_t chainidx); EXT_RETURN tls_construct_stoc_psk(SSL *s, WPACKET *pkt, unsigned int context, X509 *x, size_t chainidx); -#ifndef OPENSSL_NO_QUIC -EXT_RETURN tls_construct_stoc_quic_transport_params_draft(SSL *s, WPACKET *pkt, - unsigned int context, - X509 *x, - size_t chainidx); - -EXT_RETURN tls_construct_stoc_quic_transport_params(SSL *s, WPACKET *pkt, - unsigned int context, X509 *x, - size_t chainidx); -#endif /* Client Extension processing */ EXT_RETURN tls_construct_ctos_renegotiate(SSL *s, WPACKET *pkt, unsigned int context, @@ -402,15 +380,6 @@ EXT_RETURN tls_construct_ctos_psk(SSL *s, WPACKET *pkt, unsigned int context, X509 *x, size_t chainidx); EXT_RETURN tls_construct_ctos_post_handshake_auth(SSL *s, WPACKET *pkt, unsigned int context, X509 *x, size_t chainidx); -#ifndef OPENSSL_NO_QUIC -EXT_RETURN tls_construct_ctos_quic_transport_params_draft(SSL *s, WPACKET *pkt, - unsigned int context, X509 *x, - size_t chainidx); - -EXT_RETURN tls_construct_ctos_quic_transport_params(SSL *s, WPACKET *pkt, - unsigned int context, X509 *x, - size_t chainidx); -#endif int tls_parse_stoc_renegotiate(SSL *s, PACKET *pkt, unsigned int context, X509 *x, size_t chainidx); @@ -454,14 +423,6 @@ int tls_parse_stoc_cookie(SSL *s, PACKET *pkt, unsigned int context, X509 *x, size_t chainidx); int tls_parse_stoc_psk(SSL *s, PACKET *pkt, unsigned int context, X509 *x, size_t chainidx); -#ifndef OPENSSL_NO_QUIC -int tls_parse_stoc_quic_transport_params_draft(SSL *s, PACKET *pkt, - unsigned int context, X509 *x, - size_t chainidx); - -int tls_parse_stoc_quic_transport_params(SSL *s, PACKET *pkt, unsigned int context, - X509 *x, size_t chainidx); -#endif int tls_handle_alpn(SSL *s); diff --git a/deps/openssl/openssl/ssl/statem/statem_quic.c b/deps/openssl/openssl/ssl/statem/statem_quic.c deleted file mode 100644 index 7bd329c2421546..00000000000000 --- a/deps/openssl/openssl/ssl/statem/statem_quic.c +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#include "../ssl_local.h" -#include "statem_local.h" -#include "internal/cryptlib.h" - -int quic_get_message(SSL *s, int *mt) -{ - size_t l; - QUIC_DATA *qd = s->quic_input_data_head; - uint8_t *p; - - if (qd == NULL) { - s->rwstate = SSL_READING; - *mt = 0; - return 0; - } - - if (!ossl_assert(qd->length >= SSL3_HM_HEADER_LENGTH)) { - SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_R_BAD_LENGTH); - *mt = 0; - return 0; - } - - /* This is where we check for the proper level, not when data is given */ - if (qd->level != s->quic_read_level) { - SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_R_WRONG_ENCRYPTION_LEVEL_RECEIVED); - *mt = 0; - return 0; - } - - if (!BUF_MEM_grow_clean(s->init_buf, (int)qd->length)) { - SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_BUF_LIB); - *mt = 0; - return 0; - } - - /* Copy buffered data */ - memcpy(s->init_buf->data, s->quic_buf->data + qd->start, qd->length); - s->init_buf->length = qd->length; - s->quic_input_data_head = qd->next; - if (s->quic_input_data_head == NULL) - s->quic_input_data_tail = NULL; - OPENSSL_free(qd); - - s->s3.tmp.message_type = *mt = *(s->init_buf->data); - p = (uint8_t*)s->init_buf->data + 1; - n2l3(p, l); - s->init_num = s->s3.tmp.message_size = l; - s->init_msg = s->init_buf->data + SSL3_HM_HEADER_LENGTH; - - return 1; -} - -int quic_get_message_body(SSL *s, size_t *len) -{ - /* No CCS in QUIC/TLSv1.3? */ - if (s->s3.tmp.message_type == SSL3_MT_CHANGE_CIPHER_SPEC) { - SSLfatal(s, SSL_AD_UNEXPECTED_MESSAGE, SSL_R_CCS_RECEIVED_EARLY); - *len = 0; - return 0; - } - /* No KeyUpdate in QUIC */ - if (s->s3.tmp.message_type == SSL3_MT_KEY_UPDATE) { - SSLfatal(s, SSL_AD_UNEXPECTED_MESSAGE, SSL_R_UNEXPECTED_MESSAGE); - *len = 0; - return 0; - } - - /* - * If receiving Finished, record MAC of prior handshake messages for - * Finished verification. - */ - if (s->s3.tmp.message_type == SSL3_MT_FINISHED && !ssl3_take_mac(s)) { - /* SSLfatal() already called */ - *len = 0; - return 0; - } - - /* - * We defer feeding in the HRR until later. We'll do it as part of - * processing the message - * The TLsv1.3 handshake transcript stops at the ClientFinished - * message. - */ -#define SERVER_HELLO_RANDOM_OFFSET (SSL3_HM_HEADER_LENGTH + 2) - /* KeyUpdate and NewSessionTicket do not need to be added */ - if (s->s3.tmp.message_type != SSL3_MT_NEWSESSION_TICKET - && s->s3.tmp.message_type != SSL3_MT_KEY_UPDATE) { - if (s->s3.tmp.message_type != SSL3_MT_SERVER_HELLO - || s->init_num < SERVER_HELLO_RANDOM_OFFSET + SSL3_RANDOM_SIZE - || memcmp(hrrrandom, - s->init_buf->data + SERVER_HELLO_RANDOM_OFFSET, - SSL3_RANDOM_SIZE) != 0) { - if (!ssl3_finish_mac(s, (unsigned char *)s->init_buf->data, - s->init_num + SSL3_HM_HEADER_LENGTH)) { - /* SSLfatal() already called */ - *len = 0; - return 0; - } - } - } - if (s->msg_callback) - s->msg_callback(0, s->version, SSL3_RT_HANDSHAKE, s->init_buf->data, - (size_t)s->init_num + SSL3_HM_HEADER_LENGTH, s, - s->msg_callback_arg); - - *len = s->init_num; - return 1; -} diff --git a/deps/openssl/openssl/ssl/statem/statem_srvr.c b/deps/openssl/openssl/ssl/statem/statem_srvr.c index 92e4f793ab24e9..7d7c198bd63f9e 100644 --- a/deps/openssl/openssl/ssl/statem/statem_srvr.c +++ b/deps/openssl/openssl/ssl/statem/statem_srvr.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -74,8 +74,7 @@ static int ossl_statem_server13_read_transition(SSL *s, int mt) return 1; } break; - } else if (s->ext.early_data == SSL_EARLY_DATA_ACCEPTED - && !SSL_IS_QUIC(s)) { + } else if (s->ext.early_data == SSL_EARLY_DATA_ACCEPTED) { if (mt == SSL3_MT_END_OF_EARLY_DATA) { st->hand_state = TLS_ST_SR_END_OF_EARLY_DATA; return 1; @@ -964,16 +963,6 @@ WORK_STATE ossl_statem_server_post_work(SSL *s, WORK_STATE wst) SSL3_CC_APPLICATION | SSL3_CHANGE_CIPHER_SERVER_WRITE)) /* SSLfatal() already called */ return WORK_ERROR; - -#ifndef OPENSSL_NO_QUIC - if (SSL_IS_QUIC(s) && s->ext.early_data == SSL_EARLY_DATA_ACCEPTED) { - s->early_data_state = SSL_EARLY_DATA_FINISHED_READING; - if (!s->method->ssl3_enc->change_cipher_state( - s, SSL3_CC_HANDSHAKE | SSL3_CHANGE_CIPHER_SERVER_READ)) - /* SSLfatal() already called */ - return WORK_ERROR; - } -#endif } break; @@ -1566,15 +1555,6 @@ MSG_PROCESS_RETURN tls_process_client_hello(SSL *s, PACKET *pkt) goto err; } } -#ifndef OPENSSL_NO_QUIC - if (SSL_IS_QUIC(s)) { - /* Any other QUIC checks on ClientHello here */ - if (clienthello->session_id_len > 0) { - SSLfatal(s, SSL_AD_ILLEGAL_PARAMETER, SSL_R_LENGTH_MISMATCH); - goto err; - } - } -#endif } if (!PACKET_copy_all(&compression, clienthello->compressions, @@ -3005,7 +2985,7 @@ static int tls_process_cke_dhe(SSL *s, PACKET *pkt) } if (!EVP_PKEY_set1_encoded_public_key(ckey, data, i)) { - SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); + SSLfatal(s, SSL_AD_ILLEGAL_PARAMETER, SSL_R_BAD_KEY_SHARE); goto err; } @@ -3059,7 +3039,7 @@ static int tls_process_cke_ecdhe(SSL *s, PACKET *pkt) } if (EVP_PKEY_set1_encoded_public_key(ckey, data, i) <= 0) { - SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_EC_LIB); + SSLfatal(s, SSL_AD_ILLEGAL_PARAMETER, SSL_R_BAD_KEY_SHARE); goto err; } } diff --git a/deps/openssl/openssl/ssl/tls13_enc.c b/deps/openssl/openssl/ssl/tls13_enc.c index 33cf79199fe79d..ddcff5eb89119c 100644 --- a/deps/openssl/openssl/ssl/tls13_enc.c +++ b/deps/openssl/openssl/ssl/tls13_enc.c @@ -400,231 +400,27 @@ static int derive_secret_key_and_iv(SSL *s, int sending, const EVP_MD *md, return 1; } +int tls13_change_cipher_state(SSL *s, int which) +{ #ifdef CHARSET_EBCDIC -static const unsigned char client_early_traffic[] = {0x63, 0x20, 0x65, 0x20, /*traffic*/0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x00}; -static const unsigned char client_handshake_traffic[] = {0x63, 0x20, 0x68, 0x73, 0x20, /*traffic*/0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x00}; -static const unsigned char client_application_traffic[] = {0x63, 0x20, 0x61, 0x70, 0x20, /*traffic*/0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x00}; -static const unsigned char server_handshake_traffic[] = {0x73, 0x20, 0x68, 0x73, 0x20, /*traffic*/0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x00}; -static const unsigned char server_application_traffic[] = {0x73, 0x20, 0x61, 0x70, 0x20, /*traffic*/0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x00}; -static const unsigned char exporter_master_secret[] = {0x65, 0x78, 0x70, 0x20, /* master*/ 0x6D, 0x61, 0x73, 0x74, 0x65, 0x72, 0x00}; -static const unsigned char resumption_master_secret[] = {0x72, 0x65, 0x73, 0x20, /* master*/ 0x6D, 0x61, 0x73, 0x74, 0x65, 0x72, 0x00}; -static const unsigned char early_exporter_master_secret[] = {0x65, 0x20, 0x65, 0x78, 0x70, 0x20, /* master*/ 0x6D, 0x61, 0x73, 0x74, 0x65, 0x72, 0x00}; + static const unsigned char client_early_traffic[] = {0x63, 0x20, 0x65, 0x20, /*traffic*/0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x00}; + static const unsigned char client_handshake_traffic[] = {0x63, 0x20, 0x68, 0x73, 0x20, /*traffic*/0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x00}; + static const unsigned char client_application_traffic[] = {0x63, 0x20, 0x61, 0x70, 0x20, /*traffic*/0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x00}; + static const unsigned char server_handshake_traffic[] = {0x73, 0x20, 0x68, 0x73, 0x20, /*traffic*/0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x00}; + static const unsigned char server_application_traffic[] = {0x73, 0x20, 0x61, 0x70, 0x20, /*traffic*/0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x00}; + static const unsigned char exporter_master_secret[] = {0x65, 0x78, 0x70, 0x20, /* master*/ 0x6D, 0x61, 0x73, 0x74, 0x65, 0x72, 0x00}; + static const unsigned char resumption_master_secret[] = {0x72, 0x65, 0x73, 0x20, /* master*/ 0x6D, 0x61, 0x73, 0x74, 0x65, 0x72, 0x00}; + static const unsigned char early_exporter_master_secret[] = {0x65, 0x20, 0x65, 0x78, 0x70, 0x20, /* master*/ 0x6D, 0x61, 0x73, 0x74, 0x65, 0x72, 0x00}; #else -static const unsigned char client_early_traffic[] = "c e traffic"; -static const unsigned char client_handshake_traffic[] = "c hs traffic"; -static const unsigned char client_application_traffic[] = "c ap traffic"; -static const unsigned char server_handshake_traffic[] = "s hs traffic"; -static const unsigned char server_application_traffic[] = "s ap traffic"; -static const unsigned char exporter_master_secret[] = "exp master"; -static const unsigned char resumption_master_secret[] = "res master"; -static const unsigned char early_exporter_master_secret[] = "e exp master"; + static const unsigned char client_early_traffic[] = "c e traffic"; + static const unsigned char client_handshake_traffic[] = "c hs traffic"; + static const unsigned char client_application_traffic[] = "c ap traffic"; + static const unsigned char server_handshake_traffic[] = "s hs traffic"; + static const unsigned char server_application_traffic[] = "s ap traffic"; + static const unsigned char exporter_master_secret[] = "exp master"; + static const unsigned char resumption_master_secret[] = "res master"; + static const unsigned char early_exporter_master_secret[] = "e exp master"; #endif - -#ifndef OPENSSL_NO_QUIC -static int quic_change_cipher_state(SSL *s, int which) -{ - unsigned char hash[EVP_MAX_MD_SIZE]; - size_t hashlen = 0; - int hashleni; - int ret = 0; - const EVP_MD *md = NULL; - OSSL_ENCRYPTION_LEVEL level; - int is_handshake = ((which & SSL3_CC_HANDSHAKE) == SSL3_CC_HANDSHAKE); - int is_client_read = ((which & SSL3_CHANGE_CIPHER_CLIENT_READ) == SSL3_CHANGE_CIPHER_CLIENT_READ); - int is_server_write = ((which & SSL3_CHANGE_CIPHER_SERVER_WRITE) == SSL3_CHANGE_CIPHER_SERVER_WRITE); - int is_early = (which & SSL3_CC_EARLY); - - if (is_early) { - EVP_MD_CTX *mdctx = NULL; - long handlen; - void *hdata; - unsigned int hashlenui; - const SSL_CIPHER *sslcipher = SSL_SESSION_get0_cipher(s->session); - - handlen = BIO_get_mem_data(s->s3.handshake_buffer, &hdata); - if (handlen <= 0) { - SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_R_BAD_HANDSHAKE_LENGTH); - goto err; - } - - if (s->early_data_state == SSL_EARLY_DATA_CONNECTING - && s->max_early_data > 0 - && s->session->ext.max_early_data == 0) { - /* - * If we are attempting to send early data, and we've decided to - * actually do it but max_early_data in s->session is 0 then we - * must be using an external PSK. - */ - if (!ossl_assert(s->psksession != NULL - && s->max_early_data == - s->psksession->ext.max_early_data)) { - SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); - goto err; - } - sslcipher = SSL_SESSION_get0_cipher(s->psksession); - } - if (sslcipher == NULL) { - SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_R_BAD_PSK); - goto err; - } - - /* - * We need to calculate the handshake digest using the digest from - * the session. We haven't yet selected our ciphersuite so we can't - * use ssl_handshake_md(). - */ - mdctx = EVP_MD_CTX_new(); - if (mdctx == NULL) { - SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_MALLOC_FAILURE); - goto err; - } - md = ssl_md(s->ctx, sslcipher->algorithm2); - if (md == NULL || !EVP_DigestInit_ex(mdctx, md, NULL) - || !EVP_DigestUpdate(mdctx, hdata, handlen) - || !EVP_DigestFinal_ex(mdctx, hash, &hashlenui)) { - SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); - EVP_MD_CTX_free(mdctx); - goto err; - } - hashlen = hashlenui; - EVP_MD_CTX_free(mdctx); - } else { - md = ssl_handshake_md(s); - if (!ssl3_digest_cached_records(s, 1) - || !ssl_handshake_hash(s, hash, sizeof(hash), &hashlen)) { - /* SSLfatal() already called */; - goto err; - } - - /* Ensure cast to size_t is safe */ - hashleni = EVP_MD_size(md); - if (!ossl_assert(hashleni >= 0)) { - SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_EVP_LIB); - goto err; - } - hashlen = (size_t)hashleni; - } - - if (is_client_read || is_server_write) { - if (is_handshake) { - /* - * This looks a bit weird, since the condition is basically "the - * server is writing" but we set both the server *and* client - * handshake traffic keys here. That's because there's only a fixed - * number of change-cipher-state events in the TLS 1.3 handshake, - * and in particular there's not an event in between when the server - * writes encrypted handshake messages and when the client writes - * encrypted handshake messages, so we generate both here. - */ - level = ssl_encryption_handshake; - - if (!tls13_hkdf_expand(s, md, s->handshake_secret, - client_handshake_traffic, - sizeof(client_handshake_traffic)-1, hash, - hashlen, s->client_hand_traffic_secret, - hashlen, 1) - || !ssl_log_secret(s, CLIENT_HANDSHAKE_LABEL, - s->client_hand_traffic_secret, hashlen) - || !tls13_derive_finishedkey(s, md, - s->client_hand_traffic_secret, - s->client_finished_secret, hashlen) - || !tls13_hkdf_expand(s, md, s->handshake_secret, - server_handshake_traffic, - sizeof(server_handshake_traffic)-1, hash, - hashlen, s->server_hand_traffic_secret, - hashlen, 1) - || !ssl_log_secret(s, SERVER_HANDSHAKE_LABEL, - s->server_hand_traffic_secret, hashlen) - || !tls13_derive_finishedkey(s, md, - s->server_hand_traffic_secret, - s->server_finished_secret, - hashlen)) { - /* SSLfatal() already called */ - goto err; - } - } else { - /* - * As above, we generate both sets of application traffic keys at - * the same time. - */ - level = ssl_encryption_application; - - if (!tls13_hkdf_expand(s, md, s->master_secret, - client_application_traffic, - sizeof(client_application_traffic)-1, hash, - hashlen, s->client_app_traffic_secret, - hashlen, 1) - || !ssl_log_secret(s, CLIENT_APPLICATION_LABEL, - s->client_app_traffic_secret, hashlen) - || !tls13_hkdf_expand(s, md, s->master_secret, - server_application_traffic, - sizeof(server_application_traffic)-1, - hash, hashlen, - s->server_app_traffic_secret, hashlen, 1) - || !ssl_log_secret(s, SERVER_APPLICATION_LABEL, - s->server_app_traffic_secret, hashlen)) { - /* SSLfatal() already called */ - goto err; - } - } - if (!quic_set_encryption_secrets(s, level)) { - /* SSLfatal() already called */ - goto err; - } - if (s->server) - s->quic_write_level = level; - else - s->quic_read_level = level; - } else { - /* is_client_write || is_server_read */ - - if (is_early) { - level = ssl_encryption_early_data; - - if (!tls13_hkdf_expand(s, md, s->early_secret, client_early_traffic, - sizeof(client_early_traffic)-1, hash, - hashlen, s->client_early_traffic_secret, - hashlen, 1) - || !ssl_log_secret(s, CLIENT_EARLY_LABEL, - s->client_early_traffic_secret, hashlen) - || !quic_set_encryption_secrets(s, level)) { - /* SSLfatal() already called */ - goto err; - } - } else if (is_handshake) { - level = ssl_encryption_handshake; - } else { - level = ssl_encryption_application; - /* - * We also create the resumption master secret, but this time use the - * hash for the whole handshake including the Client Finished - */ - if (!tls13_hkdf_expand(s, md, s->master_secret, - resumption_master_secret, - sizeof(resumption_master_secret)-1, hash, - hashlen, s->resumption_master_secret, - hashlen, 1)) { - /* SSLfatal() already called */ - goto err; - } - } - - if (level != ssl_encryption_early_data) { - if (s->server) - s->quic_read_level = level; - else - s->quic_write_level = level; - } - } - - ret = 1; - err: - return ret; -} -#endif /* OPENSSL_NO_QUIC */ - -int tls13_change_cipher_state(SSL *s, int which) -{ unsigned char *iv; unsigned char key[EVP_MAX_KEY_LENGTH]; unsigned char secret[EVP_MAX_MD_SIZE]; @@ -645,11 +441,6 @@ int tls13_change_cipher_state(SSL *s, int which) BIO *bio; #endif -#ifndef OPENSSL_NO_QUIC - if (SSL_IS_QUIC(s)) - return quic_change_cipher_state(s, which); -#endif - if (which & SSL3_CC_READ) { if (s->enc_read_ctx != NULL) { EVP_CIPHER_CTX_reset(s->enc_read_ctx); @@ -941,7 +732,6 @@ int tls13_change_cipher_state(SSL *s, int which) skip_ktls: # endif #endif - ret = 1; err: if ((which & SSL3_CC_EARLY) != 0) { diff --git a/deps/openssl/openssl/test/acvp_test.c b/deps/openssl/openssl/test/acvp_test.c index fee880d441b0d5..eccf9d90a021a9 100644 --- a/deps/openssl/openssl/test/acvp_test.c +++ b/deps/openssl/openssl/test/acvp_test.c @@ -1251,7 +1251,7 @@ static int rsa_decryption_primitive_test(int id) BN_CTX *bn_ctx = NULL; const struct rsa_decrypt_prim_st *tst = &rsa_decrypt_prim_data[id]; - if (!TEST_ptr(pkey = EVP_PKEY_Q_keygen(libctx, NULL, "RSA", 2048)) + if (!TEST_ptr(pkey = EVP_PKEY_Q_keygen(libctx, NULL, "RSA", (size_t)2048)) || !TEST_true(pkey_get_bn_bytes(pkey, OSSL_PKEY_PARAM_RSA_N, &n, &n_len)) || !TEST_true(pkey_get_bn_bytes(pkey, OSSL_PKEY_PARAM_RSA_E, &e, &e_len)) || !TEST_ptr(ctx = EVP_PKEY_CTX_new_from_pkey(libctx, pkey, "")) diff --git a/deps/openssl/openssl/test/bio_pw_callback_test.c b/deps/openssl/openssl/test/bio_pw_callback_test.c new file mode 100644 index 00000000000000..e11368454a8c9f --- /dev/null +++ b/deps/openssl/openssl/test/bio_pw_callback_test.c @@ -0,0 +1,402 @@ +/* + * Copyright 2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "testutil.h" + +#include +#include + +/* dummy data that needs to be passed to the callback */ +typedef struct CallbackData { + char magic; + int result; +} CALLBACK_DATA; + +/* constants */ +static const char weak_password[] = "weak_password"; +static const char a0a_password[] = "aaaaaaaa\0aaaaaaaa"; +static const char a0b_password[] = "aaaaaaaa\0bbbbbbbb"; +static const char cb_magic = 'p'; + +/* shared working data for all tests */ +static char *key_file = NULL; +static EVP_PKEY *original_pkey = NULL; + +/* the test performed by the callback */ +typedef enum CallbackTest { + CB_TEST_NEGATIVE = 0, + CB_TEST_ZERO_LENGTH, + CB_TEST_WEAK, + CB_TEST_16ZERO, + CB_TEST_A0A, + CB_TEST_A0B, + CB_TEST_MATCH_SIZE, + CB_TEST_EXCEED_SIZE +} CALLBACK_TEST; +static CALLBACK_TEST callback_test = CB_TEST_NEGATIVE; + +typedef enum KeyEncoding { + KE_PEM = 0, + KE_PKCS8 +} KEY_ENCODING; + +typedef enum ExpectedResult { + ER_FAILURE = 0, + ER_SUCCESS +} EXPECTED_RESULT; + +typedef enum OPTION_choice { + OPT_ERR = -1, + OPT_EOF = 0, + OPT_KEY_FILE, + OPT_TEST_ENUM +} OPTION_CHOICE; + +const OPTIONS *test_get_options(void) +{ + static const OPTIONS test_options[] = { + OPT_TEST_OPTIONS_DEFAULT_USAGE, + { "keyfile", OPT_KEY_FILE, '<', + "The PEM file with the encrypted key to load" }, + { NULL } + }; + return test_options; +} + +static int callback_copy_password(char *buf, int size) +{ + int ret = -1; + + switch (callback_test) { + case CB_TEST_NEGATIVE: + break; + case CB_TEST_ZERO_LENGTH: + ret = 0; + break; + case CB_TEST_WEAK: + ret = sizeof(weak_password) - 1; + memcpy(buf, weak_password, ret); + break; + case CB_TEST_16ZERO: + memset(buf, 0, 16); + ret = 16; + break; + case CB_TEST_A0A: + ret = sizeof(a0a_password) - 1; + memcpy(buf, a0a_password, ret); + break; + case CB_TEST_A0B: + ret = sizeof(a0b_password) - 1; + memcpy(buf, a0b_password, ret); + break; + case CB_TEST_MATCH_SIZE: + memset(buf, 'e', size); + ret = size; + break; + case CB_TEST_EXCEED_SIZE: + memset(buf, 'e', size); + ret = 1000000; + break; + } + return ret; +} + +static int read_callback(char *buf, int size, int rwflag, void *u) +{ + CALLBACK_DATA *cb_data = (CALLBACK_DATA *)u; + int ret = -1; + + /* basic verification of the received data */ + if (!TEST_ptr(cb_data)) + goto err; + if (!TEST_char_eq(cb_data->magic, cb_magic)) + goto err; + if (!TEST_ptr(buf)) + goto err; + if (!TEST_int_gt(size, 0)) + goto err; + if (!TEST_int_eq(rwflag, 0)) + goto err; + ret = callback_copy_password(buf, size); + cb_data->result = 1; +err: + return ret; +} + +static int write_callback(char *buf, int size, int rwflag, void *u) +{ + CALLBACK_DATA *cb_data = (CALLBACK_DATA *)u; + int ret = -1; + + /* basic verification of the received data */ + if (!TEST_ptr(cb_data)) + goto err; + if (!TEST_char_eq(cb_data->magic, cb_magic)) + goto err; + if (!TEST_ptr(buf)) + goto err; + if (!TEST_int_gt(size, 0)) + goto err; + if (!TEST_int_eq(rwflag, 1)) + goto err; + ret = callback_copy_password(buf, size); + cb_data->result = 1; +err: + return ret; +} + +static int re_encrypt_key(char **enc_data, int *enc_data_size, + KEY_ENCODING key_encoding) +{ + CALLBACK_DATA cb_data; + int w_ret = 0; + BUF_MEM *bptr = NULL; + BIO *bio = NULL; + int ret = 0; + + if (!TEST_ptr(enc_data)) + goto err; + if (!TEST_ptr(enc_data_size)) + goto err; + if (!TEST_ptr(bio = BIO_new(BIO_s_mem()))) + goto err; + cb_data.magic = cb_magic; + cb_data.result = 0; + switch (key_encoding) { + case KE_PEM: + w_ret = PEM_write_bio_PrivateKey(bio, original_pkey, EVP_aes_256_cbc(), + NULL, 0, write_callback, &cb_data); + break; + case KE_PKCS8: + w_ret = i2d_PKCS8PrivateKey_bio(bio, original_pkey, EVP_aes_256_cbc(), + NULL, 0, write_callback, &cb_data); + break; + } + if (!TEST_int_ne(w_ret, 0)) + goto err; + if (!TEST_char_eq(cb_data.magic, cb_magic)) + goto err; + if (!TEST_int_eq(cb_data.result, 1)) + goto err; + *enc_data_size = BIO_get_mem_data(bio, enc_data); + BIO_get_mem_ptr(bio, &bptr); + if (!BIO_set_close(bio, BIO_NOCLOSE)) + goto err; + bptr->data = NULL; + ret = 1; +err: + BUF_MEM_free(bptr); + BIO_free(bio); + return ret; +} + +static int decrypt_key(char *enc_data, int enc_data_size, + KEY_ENCODING key_encoding, + EXPECTED_RESULT expected_result) +{ + CALLBACK_DATA cb_data; + EVP_PKEY *r_ret = NULL; + BIO *bio = NULL; + EVP_PKEY *pkey = NULL; + int ret = 0; + + if (!TEST_ptr(bio = BIO_new_mem_buf(enc_data, enc_data_size))) + goto err; + cb_data.magic = cb_magic; + cb_data.result = 0; + switch (key_encoding) { + case KE_PEM: + r_ret = PEM_read_bio_PrivateKey(bio, &pkey, read_callback, &cb_data); + break; + case KE_PKCS8: + r_ret = d2i_PKCS8PrivateKey_bio(bio, &pkey, read_callback, &cb_data); + break; + } + if (expected_result == ER_SUCCESS) { + if (!TEST_ptr(r_ret)) + goto err; + } else { + if (!TEST_ptr_null(r_ret)) + goto err; + } + if (!TEST_char_eq(cb_data.magic, cb_magic)) + goto err; + if (!TEST_int_eq(cb_data.result, 1)) + goto err; + ret = 1; +err: + EVP_PKEY_free(pkey); + BIO_free(bio); + return ret; +} + +static int full_cycle_test(KEY_ENCODING key_encoding, CALLBACK_TEST write_test, + CALLBACK_TEST read_test, + EXPECTED_RESULT expected_read_result) +{ + char *enc_data = NULL; + int enc_data_size = 0; + int ret = 0; + + callback_test = write_test; + if (!re_encrypt_key(&enc_data, &enc_data_size, key_encoding)) + goto err; + callback_test = read_test; + if (!decrypt_key(enc_data, enc_data_size, key_encoding, + expected_read_result)) + goto err; + ret = 1; +err: + OPENSSL_free(enc_data); + return ret; +} + +static int test_pem_negative(void) +{ + return full_cycle_test(KE_PEM, CB_TEST_WEAK, CB_TEST_NEGATIVE, ER_FAILURE); +} + +static int test_pem_zero_length(void) +{ + return full_cycle_test(KE_PEM, CB_TEST_ZERO_LENGTH, CB_TEST_ZERO_LENGTH, + ER_SUCCESS); +} + +static int test_pem_weak(void) +{ + return full_cycle_test(KE_PEM, CB_TEST_WEAK, CB_TEST_WEAK, ER_SUCCESS); +} + +static int test_pem_16zero(void) +{ + return full_cycle_test(KE_PEM, CB_TEST_16ZERO, CB_TEST_16ZERO, ER_SUCCESS); +} + +static int test_pem_a0a(void) +{ + return full_cycle_test(KE_PEM, CB_TEST_A0A, CB_TEST_A0A, ER_SUCCESS); +} + +static int test_pem_a0a_a0b(void) +{ + return full_cycle_test(KE_PEM, CB_TEST_A0A, CB_TEST_A0B, ER_FAILURE); +} + +static int test_pem_match_size(void) +{ + return full_cycle_test(KE_PEM, CB_TEST_MATCH_SIZE, CB_TEST_MATCH_SIZE, + ER_SUCCESS); +} + +static int test_pem_exceed_size(void) +{ + return full_cycle_test(KE_PEM, CB_TEST_MATCH_SIZE, CB_TEST_EXCEED_SIZE, + ER_FAILURE); +} + +static int test_pkcs8_negative(void) +{ + return full_cycle_test(KE_PKCS8, CB_TEST_WEAK, CB_TEST_NEGATIVE, ER_FAILURE); +} + +static int test_pkcs8_zero_length(void) +{ + return full_cycle_test(KE_PKCS8, CB_TEST_ZERO_LENGTH, CB_TEST_ZERO_LENGTH, + ER_SUCCESS); +} + +static int test_pkcs8_weak(void) +{ + return full_cycle_test(KE_PKCS8, CB_TEST_WEAK, CB_TEST_WEAK, ER_SUCCESS); +} + +static int test_pkcs8_16zero(void) +{ + return full_cycle_test(KE_PKCS8, CB_TEST_16ZERO, CB_TEST_16ZERO, + ER_SUCCESS); +} + +static int test_pkcs8_a0a(void) +{ + return full_cycle_test(KE_PKCS8, CB_TEST_A0A, CB_TEST_A0A, ER_SUCCESS); +} + +static int test_pkcs8_a0a_a0b(void) +{ + return full_cycle_test(KE_PKCS8, CB_TEST_A0A, CB_TEST_A0B, ER_FAILURE); +} + +static int test_pkcs8_match_size(void) +{ + return full_cycle_test(KE_PKCS8, CB_TEST_MATCH_SIZE, CB_TEST_MATCH_SIZE, + ER_SUCCESS); +} + +static int test_pkcs8_exceed_size(void) +{ + return full_cycle_test(KE_PKCS8, CB_TEST_MATCH_SIZE, CB_TEST_EXCEED_SIZE, + ER_FAILURE); +} + +static int callback_original_pw(char *buf, int size, int rwflag, void *u) +{ + memcpy(buf, weak_password, sizeof(weak_password) - 1); + return sizeof(weak_password) - 1; +} + +int setup_tests(void) +{ + OPTION_CHOICE o; + BIO *bio = NULL; + + while ((o = opt_next()) != OPT_EOF) { + switch (o) { + case OPT_KEY_FILE: + key_file = opt_arg(); + break; + case OPT_TEST_CASES: + break; + default: + case OPT_ERR: + return 0; + } + } + + /* read the original key */ + if (!TEST_ptr(bio = BIO_new_file(key_file, "r"))) + return 0; + if (!TEST_ptr(PEM_read_bio_PrivateKey(bio, &original_pkey, + callback_original_pw, NULL))) + return 0; + BIO_free(bio); + + /* add all tests */ + ADD_TEST(test_pem_negative); + ADD_TEST(test_pem_zero_length); + ADD_TEST(test_pem_weak); + ADD_TEST(test_pem_16zero); + ADD_TEST(test_pem_a0a); + ADD_TEST(test_pem_a0a_a0b); + ADD_TEST(test_pem_match_size); + ADD_TEST(test_pem_exceed_size); + ADD_TEST(test_pkcs8_negative); + ADD_TEST(test_pkcs8_zero_length); + ADD_TEST(test_pkcs8_weak); + ADD_TEST(test_pkcs8_16zero); + ADD_TEST(test_pkcs8_a0a); + ADD_TEST(test_pkcs8_a0a_a0b); + ADD_TEST(test_pkcs8_match_size); + ADD_TEST(test_pkcs8_exceed_size); + return 1; +} + +void cleanup_tests(void) +{ + EVP_PKEY_free(original_pkey); +} diff --git a/deps/openssl/openssl/test/build.info b/deps/openssl/openssl/test/build.info index 76ff945ab8b390..6089b8c97cf87b 100644 --- a/deps/openssl/openssl/test/build.info +++ b/deps/openssl/openssl/test/build.info @@ -61,7 +61,7 @@ IF[{- !$disabled{tests} -}] keymgmt_internal_test hexstr_test provider_status_test defltfips_test \ bio_readbuffer_test user_property_test pkcs7_test upcallstest \ provfetchtest prov_config_test rand_test fips_version_test \ - nodefltctxtest + nodefltctxtest bio_pw_callback_test IF[{- !$disabled{'deprecated-3.0'} -}] PROGRAMS{noinst}=enginetest @@ -943,6 +943,10 @@ ENDIF INCLUDE[ssl_ctx_test]=../include ../apps/include DEPEND[ssl_ctx_test]=../libcrypto ../libssl libtestutil.a + SOURCE[bio_pw_callback_test]=bio_pw_callback_test.c + INCLUDE[bio_pw_callback_test]=../include ../apps/include + DEPEND[bio_pw_callback_test]=../libcrypto libtestutil.a + {- use File::Spec::Functions; use File::Basename; diff --git a/deps/openssl/openssl/test/cmactest.c b/deps/openssl/openssl/test/cmactest.c index cb2b273b0f4ffd..72f7a0d9366ba9 100644 --- a/deps/openssl/openssl/test/cmactest.c +++ b/deps/openssl/openssl/test/cmactest.c @@ -196,13 +196,15 @@ static int test_cmac_copy(void) return ret; } +#define OSSL_HEX_CHARS_PER_BYTE 2 static char *pt(unsigned char *md, unsigned int len) { unsigned int i; - static char buf[80]; + static char buf[81]; - for (i = 0; i < len; i++) - sprintf(&(buf[i * 2]), "%02x", md[i]); + for (i = 0; i < len && (i + 1) * OSSL_HEX_CHARS_PER_BYTE < sizeof(buf); i++) + BIO_snprintf(buf + i * OSSL_HEX_CHARS_PER_BYTE, + OSSL_HEX_CHARS_PER_BYTE + 1, "%02x", md[i]); return buf; } diff --git a/deps/openssl/openssl/test/conf_include_test.c b/deps/openssl/openssl/test/conf_include_test.c index 2481a2380b7643..f6835d59e79e7d 100644 --- a/deps/openssl/openssl/test/conf_include_test.c +++ b/deps/openssl/openssl/test/conf_include_test.c @@ -158,7 +158,7 @@ static int test_check_overflow(void) char max[(sizeof(long) * 8) / 3 + 3]; char *p; - p = max + sprintf(max, "0%ld", LONG_MAX) - 1; + p = max + BIO_snprintf(max, sizeof(max), "0%ld", LONG_MAX) - 1; setenv("FNORD", max, 1); if (!TEST_true(NCONF_get_number(NULL, "missing", "FNORD", &val)) || !TEST_long_eq(val, LONG_MAX)) diff --git a/deps/openssl/openssl/test/drbgtest.c b/deps/openssl/openssl/test/drbgtest.c index b5122b60bdd478..afbc5511252910 100644 --- a/deps/openssl/openssl/test/drbgtest.c +++ b/deps/openssl/openssl/test/drbgtest.c @@ -423,7 +423,7 @@ static int test_rand_reseed_on_fork(EVP_RAND_CTX *primary, presult[0].pindex = presult[1].pindex = i; - sprintf(presult[0].name, "child %d", i); + BIO_snprintf(presult[0].name, sizeof(presult[0].name), "child %d", i); strcpy(presult[1].name, presult[0].name); /* collect the random output of the children */ diff --git a/deps/openssl/openssl/test/ec_internal_test.c b/deps/openssl/openssl/test/ec_internal_test.c index 8c2cd05631696c..02cfd4e9d88581 100644 --- a/deps/openssl/openssl/test/ec_internal_test.c +++ b/deps/openssl/openssl/test/ec_internal_test.c @@ -155,6 +155,56 @@ static int field_tests_ecp_mont(void) } #ifndef OPENSSL_NO_EC2M +/* Test that decoding of invalid GF2m field parameters fails. */ +static int ec2m_field_sanity(void) +{ + int ret = 0; + BN_CTX *ctx = BN_CTX_new(); + BIGNUM *p, *a, *b; + EC_GROUP *group1 = NULL, *group2 = NULL, *group3 = NULL; + + TEST_info("Testing GF2m hardening\n"); + + BN_CTX_start(ctx); + p = BN_CTX_get(ctx); + a = BN_CTX_get(ctx); + if (!TEST_ptr(b = BN_CTX_get(ctx)) + || !TEST_true(BN_one(a)) + || !TEST_true(BN_one(b))) + goto out; + + /* Even pentanomial value should be rejected */ + if (!TEST_true(BN_set_word(p, 0xf2))) + goto out; + if (!TEST_ptr_null(group1 = EC_GROUP_new_curve_GF2m(p, a, b, ctx))) + TEST_error("Zero constant term accepted in GF2m polynomial"); + + /* Odd hexanomial should also be rejected */ + if (!TEST_true(BN_set_word(p, 0xf3))) + goto out; + if (!TEST_ptr_null(group2 = EC_GROUP_new_curve_GF2m(p, a, b, ctx))) + TEST_error("Hexanomial accepted as GF2m polynomial"); + + /* Excessive polynomial degree should also be rejected */ + if (!TEST_true(BN_set_word(p, 0x71)) + || !TEST_true(BN_set_bit(p, OPENSSL_ECC_MAX_FIELD_BITS + 1))) + goto out; + if (!TEST_ptr_null(group3 = EC_GROUP_new_curve_GF2m(p, a, b, ctx))) + TEST_error("GF2m polynomial degree > %d accepted", + OPENSSL_ECC_MAX_FIELD_BITS); + + ret = group1 == NULL && group2 == NULL && group3 == NULL; + + out: + EC_GROUP_free(group1); + EC_GROUP_free(group2); + EC_GROUP_free(group3); + BN_CTX_end(ctx); + BN_CTX_free(ctx); + + return ret; +} + /* test EC_GF2m_simple_method directly */ static int field_tests_ec2_simple(void) { @@ -443,6 +493,7 @@ int setup_tests(void) ADD_TEST(field_tests_ecp_simple); ADD_TEST(field_tests_ecp_mont); #ifndef OPENSSL_NO_EC2M + ADD_TEST(ec2m_field_sanity); ADD_TEST(field_tests_ec2_simple); #endif ADD_ALL_TESTS(field_tests_default, crv_len); diff --git a/deps/openssl/openssl/test/enginetest.c b/deps/openssl/openssl/test/enginetest.c index 8ba999b0176bc9..79ffb230548587 100644 --- a/deps/openssl/openssl/test/enginetest.c +++ b/deps/openssl/openssl/test/enginetest.c @@ -147,9 +147,9 @@ static int test_engines(void) TEST_info("About to beef up the engine-type list"); for (loop = 0; loop < NUMTOADD; loop++) { - sprintf(buf, "id%d", loop); + BIO_snprintf(buf, sizeof(buf), "id%d", loop); eid[loop] = OPENSSL_strdup(buf); - sprintf(buf, "Fake engine type %d", loop); + BIO_snprintf(buf, sizeof(buf), "Fake engine type %d", loop); ename[loop] = OPENSSL_strdup(buf); if (!TEST_ptr(block[loop] = ENGINE_new()) || !TEST_true(ENGINE_set_id(block[loop], eid[loop])) diff --git a/deps/openssl/openssl/test/evp_kdf_test.c b/deps/openssl/openssl/test/evp_kdf_test.c index 8f35900bdd8b18..0ee1aaea6f3768 100644 --- a/deps/openssl/openssl/test/evp_kdf_test.c +++ b/deps/openssl/openssl/test/evp_kdf_test.c @@ -1,5 +1,5 @@ /* - * Copyright 2018-2024 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2018-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2018-2020, Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -857,7 +857,7 @@ static int test_kdf_pbkdf2_invalid_digest(void) #ifndef OPENSSL_NO_SCRYPT static int test_kdf_scrypt(void) { - int ret; + int i, ret; EVP_KDF_CTX *kctx; OSSL_PARAM params[7], *p = params; unsigned char out[64]; @@ -883,15 +883,21 @@ static int test_kdf_scrypt(void) *p++ = OSSL_PARAM_construct_uint(OSSL_KDF_PARAM_SCRYPT_MAXMEM, &maxmem); *p = OSSL_PARAM_construct_end(); - ret = - TEST_ptr(kctx = get_kdfbyname(OSSL_KDF_NAME_SCRYPT)) - && TEST_true(EVP_KDF_CTX_set_params(kctx, params)) - /* failure test *//* - && TEST_int_le(EVP_KDF_derive(kctx, out, sizeof(out), NULL), 0)*/ - && TEST_true(OSSL_PARAM_set_uint(p - 1, 10 * 1024 * 1024)) - && TEST_true(EVP_KDF_CTX_set_params(kctx, p - 1)) - && TEST_int_gt(EVP_KDF_derive(kctx, out, sizeof(out), NULL), 0) - && TEST_mem_eq(out, sizeof(out), expected, sizeof(expected)); + ret = TEST_ptr(kctx = get_kdfbyname(OSSL_KDF_NAME_SCRYPT)); + for (i = 0; ret && i < 2; ++i) { + ret = ret + && TEST_true(EVP_KDF_CTX_set_params(kctx, params)); + if (i == 0) + ret = ret + && TEST_int_le(EVP_KDF_derive(kctx, out, sizeof(out), NULL), 0) + && TEST_true(OSSL_PARAM_set_uint(p - 1, 10 * 1024 * 1024)) + && TEST_true(EVP_KDF_CTX_set_params(kctx, p - 1)); + ret = ret + && TEST_int_gt(EVP_KDF_derive(kctx, out, sizeof(out), NULL), 0) + && TEST_mem_eq(out, sizeof(out), expected, sizeof(expected)); + if (i == 0) + EVP_KDF_CTX_reset(kctx); + } EVP_KDF_CTX_free(kctx); return ret; diff --git a/deps/openssl/openssl/test/evp_libctx_test.c b/deps/openssl/openssl/test/evp_libctx_test.c index 2448c35a149f60..fd114a118cb2a2 100644 --- a/deps/openssl/openssl/test/evp_libctx_test.c +++ b/deps/openssl/openssl/test/evp_libctx_test.c @@ -501,7 +501,7 @@ static int rsa_keygen(int bits, EVP_PKEY **pub, EVP_PKEY **priv) size_t len = 0; OSSL_ENCODER_CTX *ectx = NULL; - if (!TEST_ptr(*priv = EVP_PKEY_Q_keygen(libctx, NULL, "RSA", bits)) + if (!TEST_ptr(*priv = EVP_PKEY_Q_keygen(libctx, NULL, "RSA", (size_t)bits)) || !TEST_ptr(ectx = OSSL_ENCODER_CTX_new_for_pkey(*priv, EVP_PKEY_PUBLIC_KEY, @@ -536,6 +536,8 @@ static int kem_rsa_gen_recover(void) && TEST_int_eq(EVP_PKEY_encapsulate_init(sctx, NULL), 1) && TEST_int_eq(EVP_PKEY_CTX_set_kem_op(sctx, "RSASVE"), 1) && TEST_ptr(dctx = EVP_PKEY_CTX_dup(sctx)) + /* Test that providing a NULL wrappedlen fails */ + && TEST_int_eq(EVP_PKEY_encapsulate(dctx, NULL, NULL, NULL, NULL), 0) && TEST_int_eq(EVP_PKEY_encapsulate(dctx, NULL, &ctlen, NULL, &secretlen), 1) && TEST_int_eq(ctlen, secretlen) @@ -545,11 +547,26 @@ static int kem_rsa_gen_recover(void) && TEST_ptr(rctx = EVP_PKEY_CTX_new_from_pkey(libctx, priv, NULL)) && TEST_int_eq(EVP_PKEY_decapsulate_init(rctx, NULL), 1) && TEST_int_eq(EVP_PKEY_CTX_set_kem_op(rctx, "RSASVE"), 1) + /* Test that providing a NULL unwrappedlen fails */ + && TEST_int_eq(EVP_PKEY_decapsulate(rctx, NULL, NULL, ct, ctlen), 0) && TEST_int_eq(EVP_PKEY_decapsulate(rctx, NULL, &unwraplen, ct, ctlen), 1) && TEST_int_eq(EVP_PKEY_decapsulate(rctx, unwrap, &unwraplen, ct, ctlen), 1) && TEST_mem_eq(unwrap, unwraplen, secret, secretlen); + + /* Test that providing a too short unwrapped/ctlen fails */ + if (fips_provider_version_match(libctx, ">=3.4.0")) { + ctlen = 1; + if (!TEST_int_eq(EVP_PKEY_encapsulate(dctx, ct, &ctlen, secret, + &secretlen), 0)) + ret = 0; + unwraplen = 1; + if (!TEST_int_eq(EVP_PKEY_decapsulate(rctx, unwrap, &unwraplen, ct, + ctlen), 0)) + ret = 0; + } + EVP_PKEY_free(pub); EVP_PKEY_free(priv); EVP_PKEY_CTX_free(rctx); @@ -596,59 +613,60 @@ static int kem_rsa_params(void) size_t ctlen = 0, secretlen = 0; ret = TEST_true(rsa_keygen(2048, &pub, &priv)) - && TEST_ptr(pubctx = EVP_PKEY_CTX_new_from_pkey(libctx, pub, NULL)) - && TEST_ptr(privctx = EVP_PKEY_CTX_new_from_pkey(libctx, priv, NULL)) - /* Test setting kem op before the init fails */ - && TEST_int_eq(EVP_PKEY_CTX_set_kem_op(pubctx, "RSASVE"), -2) - /* Test NULL ctx passed */ - && TEST_int_eq(EVP_PKEY_encapsulate_init(NULL, NULL), 0) - && TEST_int_eq(EVP_PKEY_encapsulate(NULL, NULL, NULL, NULL, NULL), 0) - && TEST_int_eq(EVP_PKEY_decapsulate_init(NULL, NULL), 0) - && TEST_int_eq(EVP_PKEY_decapsulate(NULL, NULL, NULL, NULL, 0), 0) - /* Test Invalid operation */ - && TEST_int_eq(EVP_PKEY_encapsulate(pubctx, NULL, NULL, NULL, NULL), -1) - && TEST_int_eq(EVP_PKEY_decapsulate(privctx, NULL, NULL, NULL, 0), 0) - /* Wrong key component - no secret should be returned on failure */ - && TEST_int_eq(EVP_PKEY_decapsulate_init(pubctx, NULL), 1) - && TEST_int_eq(EVP_PKEY_CTX_set_kem_op(pubctx, "RSASVE"), 1) - && TEST_int_eq(EVP_PKEY_decapsulate(pubctx, secret, &secretlen, ct, - sizeof(ct)), 0) - && TEST_uchar_eq(secret[0], 0) - /* Test encapsulate fails if the mode is not set */ - && TEST_int_eq(EVP_PKEY_encapsulate_init(pubctx, NULL), 1) - && TEST_int_eq(EVP_PKEY_encapsulate(pubctx, ct, &ctlen, secret, &secretlen), -2) - /* Test setting a bad kem ops fail */ - && TEST_int_eq(EVP_PKEY_CTX_set_kem_op(pubctx, "RSA"), 0) - && TEST_int_eq(EVP_PKEY_CTX_set_kem_op(pubctx, NULL), 0) - && TEST_int_eq(EVP_PKEY_CTX_set_kem_op(NULL, "RSASVE"), 0) - && TEST_int_eq(EVP_PKEY_CTX_set_kem_op(NULL, NULL), 0) - /* Test secretlen is optional */ - && TEST_int_eq(EVP_PKEY_CTX_set_kem_op(pubctx, "RSASVE"), 1) - && TEST_int_eq(EVP_PKEY_encapsulate(pubctx, ct, &ctlen, secret, NULL), 1) - && TEST_int_eq(EVP_PKEY_encapsulate(pubctx, NULL, &ctlen, NULL, NULL), 1) - /* Test outlen is optional */ - && TEST_int_eq(EVP_PKEY_encapsulate(pubctx, NULL, NULL, NULL, &secretlen), 1) - && TEST_int_eq(EVP_PKEY_encapsulate(pubctx, ct, NULL, secret, &secretlen), 1) - /* test that either len must be set if out is NULL */ - && TEST_int_eq(EVP_PKEY_encapsulate(pubctx, NULL, NULL, NULL, NULL), 0) - && TEST_int_eq(EVP_PKEY_encapsulate(pubctx, NULL, &ctlen, NULL, NULL), 1) - && TEST_int_eq(EVP_PKEY_encapsulate(pubctx, NULL, NULL, NULL, &secretlen), 1) - && TEST_int_eq(EVP_PKEY_encapsulate(pubctx, NULL, &ctlen, NULL, &secretlen), 1) - /* Secret buffer should be set if there is an output buffer */ - && TEST_int_eq(EVP_PKEY_encapsulate(pubctx, ct, &ctlen, NULL, NULL), 0) - /* Test that lengths are optional if ct is not NULL */ - && TEST_int_eq(EVP_PKEY_encapsulate(pubctx, ct, NULL, secret, NULL), 1) - /* Pass if secret or secret length are not NULL */ - && TEST_int_eq(EVP_PKEY_decapsulate_init(privctx, NULL), 1) - && TEST_int_eq(EVP_PKEY_CTX_set_kem_op(privctx, "RSASVE"), 1) - && TEST_int_eq(EVP_PKEY_decapsulate(privctx, secret, NULL, ct, sizeof(ct)), 1) - && TEST_int_eq(EVP_PKEY_decapsulate(privctx, NULL, &secretlen, ct, sizeof(ct)), 1) - && TEST_int_eq(secretlen, 256) - /* Fail if passed NULL arguments */ - && TEST_int_eq(EVP_PKEY_decapsulate(privctx, NULL, NULL, ct, sizeof(ct)), 0) - && TEST_int_eq(EVP_PKEY_decapsulate(privctx, secret, &secretlen, NULL, 0), 0) - && TEST_int_eq(EVP_PKEY_decapsulate(privctx, secret, &secretlen, NULL, sizeof(ct)), 0) - && TEST_int_eq(EVP_PKEY_decapsulate(privctx, secret, &secretlen, ct, 0), 0); + && TEST_ptr(pubctx = EVP_PKEY_CTX_new_from_pkey(libctx, pub, NULL)) + && TEST_ptr(privctx = EVP_PKEY_CTX_new_from_pkey(libctx, priv, NULL)) + /* Test setting kem op before the init fails */ + && TEST_int_eq(EVP_PKEY_CTX_set_kem_op(pubctx, "RSASVE"), -2) + /* Test NULL ctx passed */ + && TEST_int_eq(EVP_PKEY_encapsulate_init(NULL, NULL), 0) + && TEST_int_eq(EVP_PKEY_encapsulate(NULL, NULL, NULL, NULL, NULL), 0) + && TEST_int_eq(EVP_PKEY_decapsulate_init(NULL, NULL), 0) + && TEST_int_eq(EVP_PKEY_decapsulate(NULL, NULL, NULL, NULL, 0), 0) + /* Test Invalid operation */ + && TEST_int_eq(EVP_PKEY_encapsulate(pubctx, NULL, NULL, NULL, NULL), -1) + && TEST_int_eq(EVP_PKEY_decapsulate(privctx, NULL, NULL, NULL, 0), 0) + /* Wrong key component - no secret should be returned on failure */ + && TEST_int_eq(EVP_PKEY_decapsulate_init(pubctx, NULL), 1) + && TEST_int_eq(EVP_PKEY_CTX_set_kem_op(pubctx, "RSASVE"), 1) + && TEST_int_eq(EVP_PKEY_decapsulate(pubctx, secret, &secretlen, ct, + sizeof(ct)), 0) + && TEST_uchar_eq(secret[0], 0) + /* Test encapsulate fails if the mode is not set */ + && TEST_int_eq(EVP_PKEY_encapsulate_init(pubctx, NULL), 1) + && TEST_int_eq(EVP_PKEY_encapsulate(pubctx, ct, &ctlen, secret, &secretlen), -2) + /* Test setting a bad kem ops fail */ + && TEST_int_eq(EVP_PKEY_CTX_set_kem_op(pubctx, "RSA"), 0) + && TEST_int_eq(EVP_PKEY_CTX_set_kem_op(pubctx, NULL), 0) + && TEST_int_eq(EVP_PKEY_CTX_set_kem_op(NULL, "RSASVE"), 0) + && TEST_int_eq(EVP_PKEY_CTX_set_kem_op(NULL, NULL), 0) + /* Test secretlen is optional */ + && TEST_int_eq(EVP_PKEY_CTX_set_kem_op(pubctx, "RSASVE"), 1) + && TEST_int_eq(EVP_PKEY_encapsulate(pubctx, NULL, &ctlen, NULL, NULL), 1) + && TEST_int_eq(EVP_PKEY_encapsulate(pubctx, ct, &ctlen, secret, NULL), 1) + && TEST_int_eq(EVP_PKEY_encapsulate(pubctx, NULL, &ctlen, NULL, NULL), 1) + /* Test outlen is optional */ + && TEST_int_eq(EVP_PKEY_encapsulate(pubctx, NULL, NULL, NULL, &secretlen), 1) + && TEST_int_eq(EVP_PKEY_encapsulate(pubctx, ct, NULL, secret, &secretlen), 1) + /* test that either len must be set if out is NULL */ + && TEST_int_eq(EVP_PKEY_encapsulate(pubctx, NULL, NULL, NULL, NULL), 0) + && TEST_int_eq(EVP_PKEY_encapsulate(pubctx, NULL, &ctlen, NULL, NULL), 1) + && TEST_int_eq(EVP_PKEY_encapsulate(pubctx, NULL, NULL, NULL, &secretlen), 1) + && TEST_int_eq(EVP_PKEY_encapsulate(pubctx, NULL, &ctlen, NULL, &secretlen), 1) + /* Secret buffer should be set if there is an output buffer */ + && TEST_int_eq(EVP_PKEY_encapsulate(pubctx, ct, &ctlen, NULL, NULL), 0) + /* Test that lengths are optional if ct is not NULL */ + && TEST_int_eq(EVP_PKEY_encapsulate(pubctx, ct, NULL, secret, NULL), 1) + /* Pass if secret or secret length are not NULL */ + && TEST_int_eq(EVP_PKEY_decapsulate_init(privctx, NULL), 1) + && TEST_int_eq(EVP_PKEY_CTX_set_kem_op(privctx, "RSASVE"), 1) + && TEST_int_eq(EVP_PKEY_decapsulate(privctx, secret, NULL, ct, sizeof(ct)), 1) + && TEST_int_eq(EVP_PKEY_decapsulate(privctx, NULL, &secretlen, ct, sizeof(ct)), 1) + && TEST_int_eq(secretlen, 256) + /* Fail if passed NULL arguments */ + && TEST_int_eq(EVP_PKEY_decapsulate(privctx, NULL, NULL, ct, sizeof(ct)), 0) + && TEST_int_eq(EVP_PKEY_decapsulate(privctx, secret, &secretlen, NULL, 0), 0) + && TEST_int_eq(EVP_PKEY_decapsulate(privctx, secret, &secretlen, NULL, sizeof(ct)), 0) + && TEST_int_eq(EVP_PKEY_decapsulate(privctx, secret, &secretlen, ct, 0), 0); EVP_PKEY_free(pub); EVP_PKEY_free(priv); diff --git a/deps/openssl/openssl/test/ext_internal_test.c b/deps/openssl/openssl/test/ext_internal_test.c index 769b25391d577d..dec6ee61efb35b 100644 --- a/deps/openssl/openssl/test/ext_internal_test.c +++ b/deps/openssl/openssl/test/ext_internal_test.c @@ -69,13 +69,6 @@ static EXT_LIST ext_list[] = { EXT_ENTRY(cryptopro_bug), EXT_ENTRY(early_data), EXT_ENTRY(certificate_authorities), -#ifndef OPENSSL_NO_QUIC - EXT_ENTRY(quic_transport_parameters_draft), - EXT_ENTRY(quic_transport_parameters), -#else - EXT_EXCEPTION(quic_transport_parameters_draft), - EXT_EXCEPTION(quic_transport_parameters), -#endif EXT_ENTRY(padding), EXT_ENTRY(psk), EXT_END(num_builtins) diff --git a/deps/openssl/openssl/test/hmactest.c b/deps/openssl/openssl/test/hmactest.c index 8f5bf32f870899..0a29c58731f60c 100644 --- a/deps/openssl/openssl/test/hmactest.c +++ b/deps/openssl/openssl/test/hmactest.c @@ -275,19 +275,21 @@ static int test_hmac_copy_uninited(void) return res; } -# ifndef OPENSSL_NO_MD5 +#ifndef OPENSSL_NO_MD5 +# define OSSL_HEX_CHARS_PER_BYTE 2 static char *pt(unsigned char *md, unsigned int len) { unsigned int i; - static char buf[80]; + static char buf[201]; if (md == NULL) return NULL; - for (i = 0; i < len; i++) - sprintf(&(buf[i * 2]), "%02x", md[i]); + for (i = 0; i < len && (i + 1) * OSSL_HEX_CHARS_PER_BYTE < sizeof(buf); i++) + BIO_snprintf(buf + i * OSSL_HEX_CHARS_PER_BYTE, + OSSL_HEX_CHARS_PER_BYTE + 1, "%02x", md[i]); return buf; } -# endif +#endif int setup_tests(void) { diff --git a/deps/openssl/openssl/test/memleaktest.c b/deps/openssl/openssl/test/memleaktest.c index 97827b8e9cd3c2..8761686773986c 100644 --- a/deps/openssl/openssl/test/memleaktest.c +++ b/deps/openssl/openssl/test/memleaktest.c @@ -1,5 +1,5 @@ /* - * Copyright 2016-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -44,7 +44,7 @@ int main(int argc, char *argv[]) */ int exitcode = EXIT_FAILURE; #endif - char *lost; + char *volatile lost; lost = OPENSSL_malloc(3); if (!TEST_ptr(lost)) diff --git a/deps/openssl/openssl/test/nocache-and-default.cnf b/deps/openssl/openssl/test/nocache-and-default.cnf new file mode 100644 index 00000000000000..cf5ca8d1141518 --- /dev/null +++ b/deps/openssl/openssl/test/nocache-and-default.cnf @@ -0,0 +1,18 @@ +openssl_conf = openssl_init + +# Comment out the next line to ignore configuration errors +config_diagnostics = 1 + +[openssl_init] +providers = provider_sect + +[provider_sect] +test = test_sect +default = default_sect + +[test_sect] +module = ../test/p_test.so +activate = true + +[default_sect] +activate = true diff --git a/deps/openssl/openssl/test/p_test.c b/deps/openssl/openssl/test/p_test.c index 80f0784dd9d5ab..46f990113fb692 100644 --- a/deps/openssl/openssl/test/p_test.c +++ b/deps/openssl/openssl/test/p_test.c @@ -1,5 +1,5 @@ /* - * Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -16,6 +16,8 @@ #include #include +#include + /* * When built as an object file to link the application with, we get the * init function name through the macro PROVIDER_INIT_FUNCTION_NAME. If @@ -46,6 +48,7 @@ static OSSL_FUNC_core_get_params_fn *c_get_params = NULL; static OSSL_FUNC_core_new_error_fn *c_new_error; static OSSL_FUNC_core_set_error_debug_fn *c_set_error_debug; static OSSL_FUNC_core_vset_error_fn *c_vset_error; +static OSSL_FUNC_BIO_vsnprintf_fn *c_BIO_vsnprintf; /* Tell the core what params we provide and what type they are */ static const OSSL_PARAM p_param_types[] = { @@ -60,6 +63,17 @@ static OSSL_FUNC_provider_get_params_fn p_get_params; static OSSL_FUNC_provider_get_reason_strings_fn p_get_reason_strings; static OSSL_FUNC_provider_teardown_fn p_teardown; +static int local_snprintf(char *buf, size_t n, const char *format, ...) +{ + va_list args; + int ret; + + va_start(args, format); + ret = (*c_BIO_vsnprintf)(buf, n, format, args); + va_end(args); + return ret; +} + static void p_set_error(int lib, int reason, const char *file, int line, const char *func, const char *fmt, ...) { @@ -114,11 +128,11 @@ static int p_get_params(void *provctx, OSSL_PARAM params[]) const char *versionp = *(void **)counter_request[0].data; const char *namep = *(void **)counter_request[1].data; - sprintf(buf, "Hello OpenSSL %.20s, greetings from %s!", - versionp, namep); + local_snprintf(buf, sizeof(buf), "Hello OpenSSL %.20s, greetings from %s!", + versionp, namep); } } else { - sprintf(buf, "Howdy stranger..."); + local_snprintf(buf, sizeof(buf), "Howdy stranger..."); } p->return_size = buf_l = strlen(buf) + 1; @@ -216,12 +230,21 @@ static const OSSL_ITEM *p_get_reason_strings(void *_) return reason_strings; } +static const OSSL_ALGORITHM *p_query(OSSL_PROVIDER *prov, + int operation_id, + int *no_cache) +{ + *no_cache = 1; + return NULL; +} + static const OSSL_DISPATCH p_test_table[] = { { OSSL_FUNC_PROVIDER_GETTABLE_PARAMS, (void (*)(void))p_gettable_params }, { OSSL_FUNC_PROVIDER_GET_PARAMS, (void (*)(void))p_get_params }, { OSSL_FUNC_PROVIDER_GET_REASON_STRINGS, (void (*)(void))p_get_reason_strings}, { OSSL_FUNC_PROVIDER_TEARDOWN, (void (*)(void))p_teardown }, + { OSSL_FUNC_PROVIDER_QUERY_OPERATION, (void (*)(void))p_query }, { 0, NULL } }; @@ -250,6 +273,9 @@ int OSSL_provider_init(const OSSL_CORE_HANDLE *handle, case OSSL_FUNC_CORE_VSET_ERROR: c_vset_error = OSSL_FUNC_core_vset_error(in); break; + case OSSL_FUNC_BIO_VSNPRINTF: + c_BIO_vsnprintf = OSSL_FUNC_BIO_vsnprintf(in); + break; default: /* Just ignore anything we don't understand */ break; diff --git a/deps/openssl/openssl/test/pkcs12_format_test.c b/deps/openssl/openssl/test/pkcs12_format_test.c index c142093f72bbbc..f7ecd7c1e635be 100644 --- a/deps/openssl/openssl/test/pkcs12_format_test.c +++ b/deps/openssl/openssl/test/pkcs12_format_test.c @@ -358,7 +358,8 @@ static int test_single_key(PKCS12_ENC *enc) char fname[80]; PKCS12_BUILDER *pb; - sprintf(fname, "1key_ciph-%s_iter-%d.p12", OBJ_nid2sn(enc->nid), enc->iter); + BIO_snprintf(fname, sizeof(fname), "1key_ciph-%s_iter-%d.p12", + OBJ_nid2sn(enc->nid), enc->iter); pb = new_pkcs12_builder(fname); @@ -457,7 +458,8 @@ static int test_single_cert_mac(PKCS12_ENC *mac) char fname[80]; PKCS12_BUILDER *pb; - sprintf(fname, "1cert_mac-%s_iter-%d.p12", OBJ_nid2sn(mac->nid), mac->iter); + BIO_snprintf(fname, sizeof(fname), "1cert_mac-%s_iter-%d.p12", + OBJ_nid2sn(mac->nid), mac->iter); pb = new_pkcs12_builder(fname); @@ -617,7 +619,8 @@ static int test_single_secret(PKCS12_ENC *enc) char fname[80]; PKCS12_BUILDER *pb; - sprintf(fname, "1secret_ciph-%s_iter-%d.p12", OBJ_nid2sn(enc->nid), enc->iter); + BIO_snprintf(fname, sizeof(fname), "1secret_ciph-%s_iter-%d.p12", + OBJ_nid2sn(enc->nid), enc->iter); pb = new_pkcs12_builder(fname); custom_nid = get_custom_oid(); diff --git a/deps/openssl/openssl/test/property_test.c b/deps/openssl/openssl/test/property_test.c index 88c5342c538eca..1f1171ad90a65b 100644 --- a/deps/openssl/openssl/test/property_test.c +++ b/deps/openssl/openssl/test/property_test.c @@ -1,5 +1,5 @@ /* - * Copyright 2019-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -50,30 +50,37 @@ static void down_ref(void *p) static int test_property_string(void) { - OSSL_METHOD_STORE *store; + OSSL_LIB_CTX *ctx; + OSSL_METHOD_STORE *store = NULL; int res = 0; OSSL_PROPERTY_IDX i, j; - if (TEST_ptr(store = ossl_method_store_new(NULL)) - && TEST_int_eq(ossl_property_name(NULL, "fnord", 0), 0) - && TEST_int_ne(ossl_property_name(NULL, "fnord", 1), 0) - && TEST_int_ne(ossl_property_name(NULL, "name", 1), 0) + /*- + * Use our own library context because we depend on ordering from a + * pristine state. + */ + if (TEST_ptr(ctx = OSSL_LIB_CTX_new()) + && TEST_ptr(store = ossl_method_store_new(ctx)) + && TEST_int_eq(ossl_property_name(ctx, "fnord", 0), 0) + && TEST_int_ne(ossl_property_name(ctx, "fnord", 1), 0) + && TEST_int_ne(ossl_property_name(ctx, "name", 1), 0) /* Property value checks */ - && TEST_int_eq(ossl_property_value(NULL, "fnord", 0), 0) - && TEST_int_ne(i = ossl_property_value(NULL, "no", 0), 0) - && TEST_int_ne(j = ossl_property_value(NULL, "yes", 0), 0) + && TEST_int_eq(ossl_property_value(ctx, "fnord", 0), 0) + && TEST_int_ne(i = ossl_property_value(ctx, "no", 0), 0) + && TEST_int_ne(j = ossl_property_value(ctx, "yes", 0), 0) && TEST_int_ne(i, j) - && TEST_int_eq(ossl_property_value(NULL, "yes", 1), j) - && TEST_int_eq(ossl_property_value(NULL, "no", 1), i) - && TEST_int_ne(i = ossl_property_value(NULL, "illuminati", 1), 0) - && TEST_int_eq(j = ossl_property_value(NULL, "fnord", 1), i + 1) - && TEST_int_eq(ossl_property_value(NULL, "fnord", 1), j) + && TEST_int_eq(ossl_property_value(ctx, "yes", 1), j) + && TEST_int_eq(ossl_property_value(ctx, "no", 1), i) + && TEST_int_ne(i = ossl_property_value(ctx, "illuminati", 1), 0) + && TEST_int_eq(j = ossl_property_value(ctx, "fnord", 1), i + 1) + && TEST_int_eq(ossl_property_value(ctx, "fnord", 1), j) /* Check name and values are distinct */ - && TEST_int_eq(ossl_property_value(NULL, "cold", 0), 0) - && TEST_int_ne(ossl_property_name(NULL, "fnord", 0), - ossl_property_value(NULL, "fnord", 0))) + && TEST_int_eq(ossl_property_value(ctx, "cold", 0), 0) + && TEST_int_ne(ossl_property_name(ctx, "fnord", 0), + ossl_property_value(ctx, "fnord", 0))) res = 1; ossl_method_store_free(store); + OSSL_LIB_CTX_free(ctx); return res; } diff --git a/deps/openssl/openssl/test/recipes/03-test_fipsinstall.t b/deps/openssl/openssl/test/recipes/03-test_fipsinstall.t index 5f514e231b5978..c243b5646d3705 100644 --- a/deps/openssl/openssl/test/recipes/03-test_fipsinstall.t +++ b/deps/openssl/openssl/test/recipes/03-test_fipsinstall.t @@ -253,6 +253,10 @@ SKIP: { SKIP: { skip "Skipping Asymmetric RSA corruption test because of no rsa in this build", 1 if disabled("rsa"); + run(test(["fips_version_test", "-config", $provconf, "<3.5.0"]), + capture => 1, statusvar => \my $exit); + skip "FIPS provider version is too new for Asymmetric RSA corruption test", 1 + if !$exit; ok(!run(app(['openssl', 'fipsinstall', '-out', 'fips.cnf', '-module', $infile, '-corrupt_desc', 'RSA_Encrypt', '-corrupt_type', 'KAT_AsymmetricCipher'])), diff --git a/deps/openssl/openssl/test/recipes/04-test_encoder_decoder.t b/deps/openssl/openssl/test/recipes/04-test_encoder_decoder.t index 19541610a9a9b9..d5d79f3a57541c 100644 --- a/deps/openssl/openssl/test/recipes/04-test_encoder_decoder.t +++ b/deps/openssl/openssl/test/recipes/04-test_encoder_decoder.t @@ -25,9 +25,26 @@ my $no_fips = disabled('fips') || ($ENV{NO_FIPS} // 0); my $rsa_key = srctop_file("test", "certs", "ee-key.pem"); my $pss_key = srctop_file("test", "certs", "ca-pss-key.pem"); -plan tests => ($no_fips ? 0 : 1) + 2; # FIPS install test + test +plan tests => ($no_fips ? 0 : 3) + 2; # FIPS install test + test my $conf = srctop_file("test", "default.cnf"); + +# Check if the specified pattern occurs in the given file +# Returns 1 if the pattern is found and 0 if not +sub find_line_file { + my ($key, $file) = @_; + + open(my $in, $file) or return -1; + while (my $line = <$in>) { + if ($line =~ /$key/) { + close($in); + return 1; + } + } + close($in); + return 0; +} + ok(run(test(["endecode_test", "-rsa", $rsa_key, "-pss", $pss_key, "-config", $conf, @@ -47,5 +64,13 @@ unless ($no_fips) { "-pss", $pss_key, "-config", $conf, "-provider", "fips"]))); +SKIP: { + skip "EC disabled", 2 if disabled("ec"); + ok(run(app([ 'openssl', 'genpkey', '-algorithm', 'EC', + '-pkeyopt', 'group:P-256', '-text', + '-config', $conf, '-provider', 'fips', '-out', 'ec.txt' ])), + 'Print a FIPS provider EC private key'); + ok(find_line_file('NIST CURVE: P-256', 'ec.txt') == 1, + 'Printing an FIPS provider EC private key'); +} } - diff --git a/deps/openssl/openssl/test/recipes/20-test_nocache.t b/deps/openssl/openssl/test/recipes/20-test_nocache.t new file mode 100644 index 00000000000000..f7a956ee05ef2f --- /dev/null +++ b/deps/openssl/openssl/test/recipes/20-test_nocache.t @@ -0,0 +1,34 @@ +#! /usr/bin/env perl +# Copyright 2016-2025 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the Apache License 2.0 (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +use strict; +use warnings; + +use OpenSSL::Test qw/:DEFAULT bldtop_file srctop_file bldtop_dir with/; +use OpenSSL::Test::Utils; + +setup("test_nocache"); + +plan tests => 4; + +ok(run(app(["openssl", "list", "-mac-algorithms"], + stdout => "listout.txt")), +"List mac algorithms - default configuration"); +open DATA, "listout.txt"; +my @match = grep /MAC/, ; +close DATA; +ok(scalar @match > 1 ? 1 : 0, "Several algorithms are listed - default configuration"); + +$ENV{OPENSSL_CONF} = bldtop_file("test", "nocache-and-default.cnf"); +ok(run(app(["openssl", "list", "-mac-algorithms"], + stdout => "listout.txt")), +"List mac algorithms"); +open DATA, "listout.txt"; +my @match = grep /MAC/, ; +close DATA; +ok(scalar @match > 1 ? 1 : 0, "Several algorithms are listed - nocache-and-default"); diff --git a/deps/openssl/openssl/test/recipes/25-test_verify.t b/deps/openssl/openssl/test/recipes/25-test_verify.t index 818c9ac50dd3f8..7fa14d9daa8b3a 100644 --- a/deps/openssl/openssl/test/recipes/25-test_verify.t +++ b/deps/openssl/openssl/test/recipes/25-test_verify.t @@ -61,7 +61,7 @@ ok(verify("ee-cert-ocsp-nocheck", "", ["root-cert"], ["ca-cert"]), ok(verify("ee-cert", "sslserver", [qw(sroot-cert)], [qw(ca-cert)]), "accept server purpose"); ok(!verify("ee-cert", "sslserver", [qw(croot-cert)], [qw(ca-cert)]), - "fail client purpose"); + "fail client purpose"); # beware, questionable non-standard EKU check on trust anchor ok(verify("ee-cert", "sslserver", [qw(root+serverAuth)], [qw(ca-cert)]), "accept server trust"); ok(verify("ee-cert", "sslserver", [qw(sroot+serverAuth)], [qw(ca-cert)]), @@ -81,7 +81,7 @@ ok(verify("ee-cert", "sslserver", [qw(root-clientAuth)], [qw(ca-cert)]), ok(verify("ee-cert", "sslserver", [qw(sroot-clientAuth)], [qw(ca-cert)]), "accept client mistrust with server purpose"); ok(!verify("ee-cert", "sslserver", [qw(croot-clientAuth)], [qw(ca-cert)]), - "fail client mistrust with client purpose"); + "fail client mistrust with client purpose"); # beware, questionable non-standard EKU check on trust anchor # Inapplicable trust ok(!verify("ee-cert", "sslserver", [qw(root+clientAuth)], [qw(ca-cert)]), "fail client trust"); @@ -150,7 +150,7 @@ ok(!verify("ee-cert", "sslserver", [qw(root-expired)], [qw(ca-cert)]), ok(verify("ee-cert", "sslserver", [qw(sca-cert)], [], "-partial_chain"), "accept partial chain with server purpose"); ok(!verify("ee-cert", "sslserver", [qw(cca-cert)], [], "-partial_chain"), - "fail partial chain with client purpose"); + "fail partial chain with client purpose"); # beware, questionable non-standard EKU check on trust anchor ok(verify("ee-cert", "sslserver", [qw(ca+serverAuth)], [], "-partial_chain"), "accept server trust partial chain"); ok(verify("ee-cert", "sslserver", [qw(cca+serverAuth)], [], "-partial_chain"), @@ -188,7 +188,7 @@ ok(verify("ee-cert", "sslserver", [qw(root-cert cca+serverAuth)], [qw(ca-cert)]) ok(verify("ee-cert", "sslserver", [qw(root-cert cca+anyEKU)], [qw(ca-cert)]), "accept wildcard trust and client purpose"); ok(!verify("ee-cert", "sslserver", [qw(root-cert cca-cert)], [qw(ca-cert)]), - "fail client purpose"); + "fail client purpose intermediate trusted"); # beware, questionable non-standard EKU check on trust anchor ok(!verify("ee-cert", "sslserver", [qw(root-cert ca-anyEKU)], [qw(ca-cert)]), "fail wildcard mistrust"); ok(!verify("ee-cert", "sslserver", [qw(root-cert ca-serverAuth)], [qw(ca-cert)]), diff --git a/deps/openssl/openssl/test/recipes/30-test_evp_data/evpkdf_tls13_kdf.txt b/deps/openssl/openssl/test/recipes/30-test_evp_data/evpkdf_tls13_kdf.txt index 9ad8b9fbd2dfad..c7e7b4b5bf9073 100644 --- a/deps/openssl/openssl/test/recipes/30-test_evp_data/evpkdf_tls13_kdf.txt +++ b/deps/openssl/openssl/test/recipes/30-test_evp_data/evpkdf_tls13_kdf.txt @@ -4935,3 +4935,13 @@ Ctrl.mode = mode:EXTRACT_AND_EXPAND Ctrl.digest = digest:SHA256 Result = KDF_CTRL_ERROR +# Test that salt of arbitrary length works +FIPSversion = >=3.4.0 +KDF = TLS13-KDF +Ctrl.mode = mode:EXTRACT_ONLY +Ctrl.digest = digest:SHA2-256 +Ctrl.key = hexkey:f8af6aea2d397baf2948a25b2834200692cff17eee9165e4e27babee9edefd05 +Ctrl.salt = hexsalt:00010203040506070809000102030405060708090001020304050607080900010203040506070809 +Ctrl.prefix = hexprefix:746c73313320 +Ctrl.label = hexlabel:64657269766564 +Output = ef0aa4925ab6f4588759e15dfadcf7602ca7aa39ebb092bd7ab48f6a68c54449 diff --git a/deps/openssl/openssl/test/recipes/61-test_bio_pw_callback.t b/deps/openssl/openssl/test/recipes/61-test_bio_pw_callback.t new file mode 100644 index 00000000000000..4cb1db1f589f98 --- /dev/null +++ b/deps/openssl/openssl/test/recipes/61-test_bio_pw_callback.t @@ -0,0 +1,20 @@ +#! /usr/bin/env perl +# Copyright 2024 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the Apache License 2.0 (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +use strict; +use warnings; + +use OpenSSL::Test qw(:DEFAULT data_file); + +setup('test_bio_pw_callback'); + +plan tests => 1; + +my $private_key_path = data_file("private_key.pem"); +ok(run(test(["bio_pw_callback_test", "-keyfile", $private_key_path])), + "Running bio_pw_callback_test"); diff --git a/deps/openssl/openssl/test/recipes/61-test_bio_pw_callback_data/private_key.pem b/deps/openssl/openssl/test/recipes/61-test_bio_pw_callback_data/private_key.pem new file mode 100644 index 00000000000000..f9c9ae5dbc4a58 --- /dev/null +++ b/deps/openssl/openssl/test/recipes/61-test_bio_pw_callback_data/private_key.pem @@ -0,0 +1,30 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIIFNTBfBgkqhkiG9w0BBQ0wUjAxBgkqhkiG9w0BBQwwJAQQmftpln/ZNiEznncq ++u0FuwICCAAwDAYIKoZIhvcNAgkFADAdBglghkgBZQMEASoEEBO5TGcD0mGTfRS8 +HgafEXYEggTQOasEXPm4ChGPzfXACYhaAtMFnfL9qpI1S30bHMUHsWuXLZDFPNty +7KNKWr35woaq3XFEeul7onszcBBRrRwPkTqOifuv/J01s7oS0uC6jwbvSkAFNjHe +jkgvMMQA3y7nwZ2wSwVjO2K91qasTjNivus3ZaCvGqGpgNckEXILPZJEdWteWP+1 +SN9zLxxeHwgt5SrMfylrTghLB8b119/uq4GnOYHZdhMbp4YmneuGqvlZ7nle7qLY +33tuM5deajk9hINLfbYWGwURaOZ+r++Rvrz4OxISfe70uXT+2fcSZPVkNT5a6B5T +9rCwdF69W/+3au50gfc2VEF/xZBajxLI0PBpMSpxNE3a5/3YLKXAs+z0YJdQKNhN +U+SpOUv8D2GraJVfP7MddO2JvETh8w7tGN/a8qSw07Z91SE3Vfuq0l5PheC/vXJq +/xxU3YSbZC7LCSZn1aXBlj9KbTh2o1ARzdJsVYo1xY2OIFtFpncOjQDuaAmsNcZE +CuB9FUcBwwO/bjooIkv4lJU+DWDxrCR7Si8PZ4hHgXCXXKiXA20SBccUYm0Z4HR3 +i2tm9UTwAuCy1BF7hRmPLIyvlgtlKh2V9Cre5j86GoKTmPh/q5DHdSmNAM8Aakct +GdQgscOXRmHq7/1nec28wEhlbqVyYJ45MZbWhBTrycMru/ch9+ZnsIgPXLfbBA+P +6GHK1DF+onKZtMkH0SNMU3X1arlJKRreVQsvkbgL7aw3mI0veYa4/tJUf7hbkPpA +LArQU5wQ+A9mzC+tYMfz3mrIE05FrpYkHRxiB/odeNvCTMR7DhGoghhnYUN/gSSN +qH5EBG2hQ/pJ5ZSawE+P9+vCLlvcc4n00zgi0s3rMN2AntPZoI3sWKZcbbgJoOIH +cbAmBAKCIiwmlPmI0hjEAIXRBixJzHVGNowuSc3jy5pIiSjmDESnARl+n5imqI3D +po9OuCHpo4nRLcAX0GrJqqKxUG+R1A8g/AooIGEPQgkXk/4v9gwd4aBvwT4YxR44 +onAXdyBMM0T8C+8dUmT6OPvU5w6JHFidJfhBgJhDIdj9JM+wWdr1CW94todjEyKY +Xe3NRG1bGbcN6HBVwbe4UZ39A9p4kKGyiXexlsD+DvFxwaGvSy2rp0lLabz19Kkr +fnLU1Ugb38AnEYTGYJMB9nO19lHW62Mk6+9ky42x8X9vBn81Nif/c0kmvEKsZEfw +UM7m0fIWTZOWSH01DGIXqCoCk7vJ1CSm0wUsAvyKFLm1qnM5eJJNMlBbayDDBsnU +Jj9hx7GWjujVKFwFngUOoFpmFWB72bqeBWenaQJhIVydQa1rolny0TECJIkFOsUK +Wa0y52V4h68Ig5G5p2WHG0RlEVtmcgzSoL1mLE5UdOYaH5oB7nTVM+Z0b8HJFrYc +7Xhym8uNq6UHc4Ae6TT8EA3lA3fDttedKzWxlBFXqX9behl2uBnPzCl3cS2G2Uek +xtexjecZINP8L5i6eIL7bPoVMF5CUsUhIWFA0gzIovRBRvVS91HnTrIDLvqF8YgQ +ToctUU/vS8r3x2/TIR60UBvW0vkoFa+lfzHtsxBnT1nMBZNeeHOCM8QtboyI9Ir9 +UkJbTO+QpJQ5A3ELharpcqr7iywDOnLSV9LZSUZr934zOrRl2oAXx/0= +-----END ENCRYPTED PRIVATE KEY----- diff --git a/deps/openssl/openssl/test/recipes/80-test_cmp_http.t b/deps/openssl/openssl/test/recipes/80-test_cmp_http.t index 0ca547354fc7e3..c704cc758e913d 100644 --- a/deps/openssl/openssl/test/recipes/80-test_cmp_http.t +++ b/deps/openssl/openssl/test/recipes/80-test_cmp_http.t @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2007-2022 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. # Copyright Nokia 2007-2019 # Copyright Siemens AG 2015-2019 # @@ -270,7 +270,7 @@ sub start_mock_server { print "Current directory is ".getcwd()."\n"; print "Launching mock server: $cmd\n"; die "Invalid port: $server_port" unless $server_port =~ m/^\d+$/; - my $pid = open($server_fh, "$cmd|") or die "Trying to $cmd"; + my $pid = open($server_fh, "$cmd 2>".result_dir()."/error.txt |") or die "Trying to $cmd"; print "Pid is: $pid\n"; if ($server_port == 0) { # Find out the actual server port diff --git a/deps/openssl/openssl/test/recipes/80-test_cmp_http_data/test_connection.csv b/deps/openssl/openssl/test/recipes/80-test_cmp_http_data/test_connection.csv index 33a572a29da1ad..cc012411ea5f9a 100644 --- a/deps/openssl/openssl/test/recipes/80-test_cmp_http_data/test_connection.csv +++ b/deps/openssl/openssl/test/recipes/80-test_cmp_http_data/test_connection.csv @@ -2,8 +2,8 @@ expected,description, -section,val, -server,val, -proxy,val, -no_proxy,val, -tls ,Message transfer options:,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,, 1,default config, -section,,,,,,,,BLANK,,,,BLANK,,BLANK,,BLANK, -TBD,Domain name, -section,, -server,_SERVER_CN:_SERVER_PORT,,,,,,,,,,,,,, -TBD,IP address, -section,, -server,_SERVER_IP:_SERVER_PORT,,,,,,,,,,,,,, +1,disabled as not supported by some host IP configurations: server domain name, -section,, -server,localhost:_SERVER_PORT,,,,,,,,,,,,,, +1,disabled as not supported by some host IP configurations: server IPv6 address, -section,, -server,[::1]:_SERVER_PORT,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,, 0,wrong server, -section,, -server,xn--rksmrgs-5wao1o.example.com:_SERVER_PORT,,,,,BLANK,,,, -msg_timeout,1,BLANK,,BLANK, 0,wrong server port, -section,, -server,_SERVER_HOST:99,,,,,BLANK,,,, -msg_timeout,1,BLANK,,BLANK, diff --git a/deps/openssl/openssl/test/recipes/80-test_cms.t b/deps/openssl/openssl/test/recipes/80-test_cms.t index 31f9fbd1280ac1..0e8b0259f1c2ea 100644 --- a/deps/openssl/openssl/test/recipes/80-test_cms.t +++ b/deps/openssl/openssl/test/recipes/80-test_cms.t @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2015-2023 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2015-2025 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the Apache License 2.0 (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,7 @@ use lib srctop_dir('Configurations'); use lib bldtop_dir('.'); my $no_fips = disabled('fips') || ($ENV{NO_FIPS} // 0); +my $old_fips = 0; plan skip_all => "CMS is not supported by this OpenSSL build" if disabled("cms"); @@ -50,13 +51,17 @@ my ($no_des, $no_dh, $no_dsa, $no_ec, $no_ec2m, $no_rc2, $no_zlib) $no_rc2 = 1 if disabled("legacy"); -plan tests => 19; +plan tests => 20; ok(run(test(["pkcs7_test"])), "test pkcs7"); unless ($no_fips) { - @config = ( "-config", srctop_file("test", "fips-and-base.cnf") ); + my $provconf = srctop_file("test", "fips-and-base.cnf"); + @config = ( "-config", $provconf ); $provname = 'fips'; + + run(test(["fips_version_test", "-config", $provconf, "<3.4.0"]), + capture => 1, statusvar => $old_fips); } $ENV{OPENSSL_TEST_LIBCTX} = "1"; @@ -394,6 +399,13 @@ my @smime_cms_tests = ( "-out", "{output}.txt" ], \&final_compare ], + + [ "encrypted content test streaming PEM format -noout, 128 bit AES key", + [ "{cmd1}", @prov, "-EncryptedData_encrypt", "-in", $smcont, "-outform", "PEM", + "-aes128", "-secretkey", "000102030405060708090A0B0C0D0E0F", + "-stream", "-noout" ], + [ "{cmd2}", @prov, "-help" ] + ], ); my @smime_cms_cades_tests = ( @@ -604,6 +616,7 @@ my @smime_cms_param_tests = ( "-stream", "-out", "{output}.cms", "-recip", catfile($smdir, "smec1.pem"), "-aes128", "-keyopt", "ecdh_kdf_md:sha256" ], + sub { my %opts = @_; smimeType_matches("$opts{output}.cms", "enveloped-data"); }, [ "{cmd2}", @prov, "-decrypt", "-recip", catfile($smdir, "smec1.pem"), "-in", "{output}.cms", "-out", "{output}.txt" ], \&final_compare @@ -613,6 +626,7 @@ my @smime_cms_param_tests = ( [ "{cmd1}", @prov, "-encrypt", "-in", $smcont, "-stream", "-out", "{output}.cms", "-recip", catfile($smdir, "smec1.pem"), "-aes-128-gcm", "-keyopt", "ecdh_kdf_md:sha256" ], + sub { my %opts = @_; smimeType_matches("$opts{output}.cms", "authEnveloped-data"); }, [ "{cmd2}", "-decrypt", "-recip", catfile($smdir, "smec1.pem"), "-in", "{output}.cms", "-out", "{output}.txt" ], \&final_compare @@ -626,18 +640,23 @@ my @smime_cms_param_tests = ( [ "{cmd2}", @prov, "-decrypt", "-recip", catfile($smdir, "smec2.pem"), "-in", "{output}.cms", "-out", "{output}.txt" ], \&final_compare - ], - - [ "enveloped content test streaming S/MIME format, X9.42 DH", - [ "{cmd1}", @prov, "-encrypt", "-in", $smcont, - "-stream", "-out", "{output}.cms", - "-recip", catfile($smdir, "smdh.pem"), "-aes128" ], - [ "{cmd2}", @prov, "-decrypt", "-recip", catfile($smdir, "smdh.pem"), - "-in", "{output}.cms", "-out", "{output}.txt" ], - \&final_compare ] ); +if ($no_fips || $old_fips) { + # Only SHA1 supported in dh_cms_encrypt() + push(@smime_cms_param_tests, + [ "enveloped content test streaming S/MIME format, X9.42 DH", + [ "{cmd1}", @prov, "-encrypt", "-in", $smcont, + "-stream", "-out", "{output}.cms", + "-recip", catfile($smdir, "smdh.pem"), "-aes128" ], + [ "{cmd2}", @prov, "-decrypt", "-recip", catfile($smdir, "smdh.pem"), + "-in", "{output}.cms", "-out", "{output}.txt" ], + \&final_compare + ] + ); +} + my @contenttype_cms_test = ( [ "signed content test - check that content type is added to additional signerinfo, RSA keys", [ "{cmd1}", @prov, "-sign", "-binary", "-nodetach", "-stream", "-in", $smcont, @@ -765,6 +784,28 @@ sub contentType_matches { return scalar(@c); } +# Returns 1 if the smime-type matches the passed parameter, otherwise 0. +sub smimeType_matches { + my ($in, $expected_smime_type) = @_; + + # Read the text file + open(my $fh, '<', $in) or die("open failed for $in : $!"); + local $/; + my $content = <$fh>; + close($fh); + + # Extract the Content-Type line with the smime-type attribute + if ($content =~ /Content-Type:\s*application\/pkcs7-mime.*smime-type=([^\s;]+)/) { + my $smime_type = $1; + + # Compare the extracted smime-type with the expected value + return ($smime_type eq $expected_smime_type) ? 1 : 0; + } + + # If no smime-type is found, return 0 + return 0; +} + sub rsapssSaltlen { my ($in) = @_; my $exit = 0; @@ -986,6 +1027,22 @@ ok(!run(app(['openssl', 'cms', '-verify', ])), "issue#19643"); +# Check that kari encryption with originator does not segfault +with({ exit_checker => sub { return shift == 3; } }, + sub { + SKIP: { + skip "EC is not supported in this build", 1 if $no_ec; + + ok(run(app(['openssl', 'cms', '-encrypt', + '-in', srctop_file("test", "smcont.txt"), '-aes128', + '-recip', catfile($smdir, "smec1.pem"), + '-originator', catfile($smdir, "smec3.pem"), + '-inkey', catfile($smdir, "smec3.pem") + ])), + "Check failure for currently not supported kari encryption with static originator"); + } + }); + # Check that we get the expected failure return code with({ exit_checker => sub { return shift == 6; } }, sub { diff --git a/deps/openssl/openssl/test/sslapitest.c b/deps/openssl/openssl/test/sslapitest.c index b0544d4942f7ea..368b15f22b7295 100644 --- a/deps/openssl/openssl/test/sslapitest.c +++ b/deps/openssl/openssl/test/sslapitest.c @@ -1,5 +1,5 @@ /* - * Copyright 2016-2024 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -190,7 +190,7 @@ static int compare_hex_encoded_buffer(const char *hex_encoded, return 1; for (i = j = 0; i < raw_length && j + 1 < hex_length; i++, j += 2) { - sprintf(hexed, "%02x", raw[i]); + BIO_snprintf(hexed, sizeof(hexed), "%02x", raw[i]); if (!TEST_int_eq(hexed[0], hex_encoded[j]) || !TEST_int_eq(hexed[1], hex_encoded[j + 1])) return 1; @@ -10764,364 +10764,6 @@ static int test_multi_resume(int idx) SSL_SESSION_free(sess); return testresult; } -#ifndef OPENSSL_NO_QUIC -static int test_quic_set_encryption_secrets(SSL *ssl, - OSSL_ENCRYPTION_LEVEL level, - const uint8_t *read_secret, - const uint8_t *write_secret, - size_t secret_len) -{ - test_printf_stderr("quic_set_encryption_secrets() %s, lvl=%d, len=%zd\n", - ssl->server ? "server" : "client", level, secret_len); - return 1; -} - -static int test_quic_add_handshake_data(SSL *ssl, OSSL_ENCRYPTION_LEVEL level, - const uint8_t *data, size_t len) -{ - SSL *peer = (SSL*)SSL_get_app_data(ssl); - - TEST_info("quic_add_handshake_data() %s, lvl=%d, *data=0x%02X, len=%zd\n", - ssl->server ? "server" : "client", level, (int)*data, len); - if (!TEST_ptr(peer)) - return 0; - - /* We're called with what is locally written; this gives it to the peer */ - if (!TEST_true(SSL_provide_quic_data(peer, level, data, len))) { - ERR_print_errors_fp(stderr); - return 0; - } - - return 1; -} - -static int test_quic_flush_flight(SSL *ssl) -{ - test_printf_stderr("quic_flush_flight() %s\n", ssl->server ? "server" : "client"); - return 1; -} - -static int test_quic_send_alert(SSL *ssl, enum ssl_encryption_level_t level, uint8_t alert) -{ - test_printf_stderr("quic_send_alert() %s, lvl=%d, alert=%d\n", - ssl->server ? "server" : "client", level, alert); - return 1; -} - -static SSL_QUIC_METHOD quic_method = { - test_quic_set_encryption_secrets, - test_quic_add_handshake_data, - test_quic_flush_flight, - test_quic_send_alert, -}; - -static int test_quic_api_set_versions(SSL *ssl, int ver) -{ - SSL_set_quic_transport_version(ssl, ver); - return 1; -} - -static int test_quic_api_version(int clnt, int srvr) -{ - SSL_CTX *cctx = NULL, *sctx = NULL; - SSL *clientssl = NULL, *serverssl = NULL; - int testresult = 0; - - static const char *server_str = "SERVER"; - static const char *client_str = "CLIENT"; - const uint8_t *peer_str; - size_t peer_str_len; - - TEST_info("original clnt=0x%X, srvr=0x%X\n", clnt, srvr); - - if (!TEST_true(create_ssl_ctx_pair(libctx, - TLS_server_method(), - TLS_client_method(), - TLS1_3_VERSION, 0, - &sctx, &cctx, cert, privkey)) - || !TEST_true(SSL_CTX_set_quic_method(sctx, &quic_method)) - || !TEST_true(SSL_CTX_set_quic_method(cctx, &quic_method)) - || !TEST_true(create_ssl_objects(sctx, cctx, &serverssl, - &clientssl, NULL, NULL)) - || !TEST_true(SSL_set_quic_transport_params(serverssl, - (unsigned char*)server_str, - strlen(server_str)+1)) - || !TEST_true(SSL_set_quic_transport_params(clientssl, - (unsigned char*)client_str, - strlen(client_str)+1)) - || !TEST_true(SSL_set_app_data(serverssl, clientssl)) - || !TEST_true(SSL_set_app_data(clientssl, serverssl)) - || !TEST_true(test_quic_api_set_versions(clientssl, clnt)) - || !TEST_true(test_quic_api_set_versions(serverssl, srvr)) - || !TEST_true(create_bare_ssl_connection(serverssl, clientssl, - SSL_ERROR_NONE, 0)) - || !TEST_true(SSL_version(serverssl) == TLS1_3_VERSION) - || !TEST_true(SSL_version(clientssl) == TLS1_3_VERSION) - || !(TEST_int_eq(SSL_quic_read_level(clientssl), ssl_encryption_application)) - || !(TEST_int_eq(SSL_quic_read_level(serverssl), ssl_encryption_application)) - || !(TEST_int_eq(SSL_quic_write_level(clientssl), ssl_encryption_application)) - || !(TEST_int_eq(SSL_quic_write_level(serverssl), ssl_encryption_application))) - goto end; - - SSL_get_peer_quic_transport_params(serverssl, &peer_str, &peer_str_len); - if (!TEST_mem_eq(peer_str, peer_str_len, client_str, strlen(client_str)+1)) - goto end; - SSL_get_peer_quic_transport_params(clientssl, &peer_str, &peer_str_len); - if (!TEST_mem_eq(peer_str, peer_str_len, server_str, strlen(server_str)+1)) - goto end; - - /* Deal with two NewSessionTickets */ - if (!TEST_true(SSL_process_quic_post_handshake(clientssl))) - goto end; - - /* Dummy handshake call should succeed */ - if (!TEST_true(SSL_do_handshake(clientssl))) - goto end; - /* Test that we (correctly) fail to send KeyUpdate */ - if (!TEST_true(SSL_key_update(clientssl, SSL_KEY_UPDATE_NOT_REQUESTED)) - || !TEST_int_le(SSL_do_handshake(clientssl), 0)) - goto end; - if (!TEST_true(SSL_key_update(serverssl, SSL_KEY_UPDATE_NOT_REQUESTED)) - || !TEST_int_le(SSL_do_handshake(serverssl), 0)) - goto end; - - TEST_info("original clnt=0x%X, srvr=0x%X\n", clnt, srvr); - if (srvr == 0 && clnt == 0) - srvr = clnt = TLSEXT_TYPE_quic_transport_parameters; - else if (srvr == 0) - srvr = clnt; - else if (clnt == 0) - clnt = srvr; - TEST_info("expected clnt=0x%X, srvr=0x%X\n", clnt, srvr); - if (!TEST_int_eq(SSL_get_peer_quic_transport_version(serverssl), clnt)) - goto end; - if (!TEST_int_eq(SSL_get_peer_quic_transport_version(clientssl), srvr)) - goto end; - - testresult = 1; - - end: - SSL_free(serverssl); - SSL_free(clientssl); - SSL_CTX_free(sctx); - SSL_CTX_free(cctx); - - return testresult; -} - -static int test_quic_api(int tst) -{ - SSL_CTX *sctx = NULL; - SSL *serverssl = NULL; - int testresult = 0; - static int clnt_params[] = { 0, - TLSEXT_TYPE_quic_transport_parameters_draft, - TLSEXT_TYPE_quic_transport_parameters, - 0, - TLSEXT_TYPE_quic_transport_parameters_draft, - TLSEXT_TYPE_quic_transport_parameters, - 0, - TLSEXT_TYPE_quic_transport_parameters_draft, - TLSEXT_TYPE_quic_transport_parameters }; - static int srvr_params[] = { 0, - 0, - 0, - TLSEXT_TYPE_quic_transport_parameters_draft, - TLSEXT_TYPE_quic_transport_parameters_draft, - TLSEXT_TYPE_quic_transport_parameters_draft, - TLSEXT_TYPE_quic_transport_parameters, - TLSEXT_TYPE_quic_transport_parameters, - TLSEXT_TYPE_quic_transport_parameters }; - static int results[] = { 1, 1, 1, 1, 1, 0, 1, 0, 1 }; - - /* Failure cases: - * test 6/[5] clnt = parameters, srvr = draft - * test 8/[7] clnt = draft, srvr = parameters - */ - - /* Clean up logging space */ - memset(client_log_buffer, 0, sizeof(client_log_buffer)); - memset(server_log_buffer, 0, sizeof(server_log_buffer)); - client_log_buffer_index = 0; - server_log_buffer_index = 0; - error_writing_log = 0; - - if (!TEST_ptr(sctx = SSL_CTX_new_ex(libctx, NULL, TLS_server_method())) - || !TEST_true(SSL_CTX_set_quic_method(sctx, &quic_method)) - || !TEST_ptr(sctx->quic_method) - || !TEST_ptr(serverssl = SSL_new(sctx)) - || !TEST_true(SSL_IS_QUIC(serverssl)) - || !TEST_true(SSL_set_quic_method(serverssl, NULL)) - || !TEST_false(SSL_IS_QUIC(serverssl)) - || !TEST_true(SSL_set_quic_method(serverssl, &quic_method)) - || !TEST_true(SSL_IS_QUIC(serverssl))) - goto end; - - if (!TEST_int_eq(test_quic_api_version(clnt_params[tst], srvr_params[tst]), results[tst])) - goto end; - - testresult = 1; - -end: - SSL_CTX_free(sctx); - sctx = NULL; - SSL_free(serverssl); - serverssl = NULL; - return testresult; -} - -# ifndef OSSL_NO_USABLE_TLS1_3 -/* - * Helper method to setup objects for QUIC early data test. Caller - * frees objects on error. - */ -static int quic_setupearly_data_test(SSL_CTX **cctx, SSL_CTX **sctx, - SSL **clientssl, SSL **serverssl, - SSL_SESSION **sess, int idx) -{ - static const char *server_str = "SERVER"; - static const char *client_str = "CLIENT"; - - if (*sctx == NULL - && (!TEST_true(create_ssl_ctx_pair(libctx, TLS_server_method(), - TLS_client_method(), - TLS1_3_VERSION, 0, - sctx, cctx, cert, privkey)) - || !TEST_true(SSL_CTX_set_quic_method(*sctx, &quic_method)) - || !TEST_true(SSL_CTX_set_quic_method(*cctx, &quic_method)) - || !TEST_true(SSL_CTX_set_max_early_data(*sctx, 0xffffffffu)))) - return 0; - - if (idx == 1) { - /* When idx == 1 we repeat the tests with read_ahead set */ - SSL_CTX_set_read_ahead(*cctx, 1); - SSL_CTX_set_read_ahead(*sctx, 1); - } else if (idx == 2) { - /* When idx == 2 we are doing early_data with a PSK. Set up callbacks */ - SSL_CTX_set_psk_use_session_callback(*cctx, use_session_cb); - SSL_CTX_set_psk_find_session_callback(*sctx, find_session_cb); - use_session_cb_cnt = 0; - find_session_cb_cnt = 0; - srvid = pskid; - } - - if (!TEST_true(create_ssl_objects(*sctx, *cctx, serverssl, clientssl, - NULL, NULL)) - || !TEST_true(SSL_set_quic_transport_params(*serverssl, - (unsigned char*)server_str, - strlen(server_str)+1)) - || !TEST_true(SSL_set_quic_transport_params(*clientssl, - (unsigned char*)client_str, - strlen(client_str)+1)) - || !TEST_true(SSL_set_app_data(*serverssl, *clientssl)) - || !TEST_true(SSL_set_app_data(*clientssl, *serverssl))) - return 0; - - /* - * For one of the run throughs (doesn't matter which one), we'll try sending - * some SNI data in the initial ClientHello. This will be ignored (because - * there is no SNI cb set up by the server), so it should not impact - * early_data. - */ - if (idx == 1 - && !TEST_true(SSL_set_tlsext_host_name(*clientssl, "localhost"))) - return 0; - - if (idx == 2) { - clientpsk = create_a_psk(*clientssl, SHA256_DIGEST_LENGTH); - if (!TEST_ptr(clientpsk) - || !TEST_true(SSL_SESSION_set_max_early_data(clientpsk, - 0xffffffffu)) - || !TEST_true(SSL_SESSION_up_ref(clientpsk))) { - SSL_SESSION_free(clientpsk); - clientpsk = NULL; - return 0; - } - serverpsk = clientpsk; - - if (sess != NULL) { - if (!TEST_true(SSL_SESSION_up_ref(clientpsk))) { - SSL_SESSION_free(clientpsk); - SSL_SESSION_free(serverpsk); - clientpsk = serverpsk = NULL; - return 0; - } - *sess = clientpsk; - } - - SSL_set_quic_early_data_enabled(*serverssl, 1); - SSL_set_quic_early_data_enabled(*clientssl, 1); - - return 1; - } - - if (sess == NULL) - return 1; - - if (!TEST_true(create_bare_ssl_connection(*serverssl, *clientssl, - SSL_ERROR_NONE, 0))) - return 0; - - /* Deal with two NewSessionTickets */ - if (!TEST_true(SSL_process_quic_post_handshake(*clientssl))) - return 0; - - *sess = SSL_get1_session(*clientssl); - SSL_shutdown(*clientssl); - SSL_shutdown(*serverssl); - SSL_free(*serverssl); - SSL_free(*clientssl); - *serverssl = *clientssl = NULL; - - if (!TEST_true(create_ssl_objects(*sctx, *cctx, serverssl, - clientssl, NULL, NULL)) - || !TEST_true(SSL_set_session(*clientssl, *sess)) - || !TEST_true(SSL_set_quic_transport_params(*serverssl, - (unsigned char*)server_str, - strlen(server_str)+1)) - || !TEST_true(SSL_set_quic_transport_params(*clientssl, - (unsigned char*)client_str, - strlen(client_str)+1)) - || !TEST_true(SSL_set_app_data(*serverssl, *clientssl)) - || !TEST_true(SSL_set_app_data(*clientssl, *serverssl))) - return 0; - - SSL_set_quic_early_data_enabled(*serverssl, 1); - SSL_set_quic_early_data_enabled(*clientssl, 1); - - return 1; -} - -static int test_quic_early_data(int tst) -{ - SSL_CTX *cctx = NULL, *sctx = NULL; - SSL *clientssl = NULL, *serverssl = NULL; - int testresult = 0; - SSL_SESSION *sess = NULL; - - if (!TEST_true(quic_setupearly_data_test(&cctx, &sctx, &clientssl, - &serverssl, &sess, tst))) - goto end; - - if (!TEST_true(create_bare_ssl_connection(serverssl, clientssl, SSL_ERROR_NONE, 0)) - || !TEST_true(SSL_get_early_data_status(serverssl))) - goto end; - - testresult = 1; - - end: - SSL_SESSION_free(sess); - SSL_SESSION_free(clientpsk); - SSL_SESSION_free(serverpsk); - clientpsk = serverpsk = NULL; - SSL_free(serverssl); - SSL_free(clientssl); - SSL_CTX_free(sctx); - SSL_CTX_free(cctx); - return testresult; -} -# endif /* OSSL_NO_USABLE_TLS1_3 */ -#endif /* OPENSSL_NO_QUIC */ static struct next_proto_st { int serverlen; @@ -11276,6 +10918,7 @@ static int npn_advert_cb(SSL *ssl, const unsigned char **out, return SSL_TLSEXT_ERR_OK; case 1: + *out = NULL; *outlen = 0; return SSL_TLSEXT_ERR_OK; @@ -11765,12 +11408,6 @@ int setup_tests(void) ADD_ALL_TESTS(test_npn, 5); #endif ADD_ALL_TESTS(test_alpn, 4); -#ifndef OPENSSL_NO_QUIC - ADD_ALL_TESTS(test_quic_api, 9); -# ifndef OSSL_NO_USABLE_TLS1_3 - ADD_ALL_TESTS(test_quic_early_data, 3); -# endif -#endif return 1; err: diff --git a/deps/openssl/openssl/test/testutil/tests.c b/deps/openssl/openssl/test/testutil/tests.c index ef7e224cd119c3..05526870acd39b 100644 --- a/deps/openssl/openssl/test/testutil/tests.c +++ b/deps/openssl/openssl/test/testutil/tests.c @@ -1,5 +1,5 @@ /* - * Copyright 2017-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2017-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -146,6 +146,7 @@ void test_perror(const char *s) void test_note(const char *fmt, ...) { + test_flush_stdout(); if (fmt != NULL) { va_list ap; diff --git a/deps/openssl/openssl/test/threadstest.c b/deps/openssl/openssl/test/threadstest.c index 289565c14b5d8e..046a9eb80239a6 100644 --- a/deps/openssl/openssl/test/threadstest.c +++ b/deps/openssl/openssl/test/threadstest.c @@ -358,7 +358,7 @@ static void thread_general_worker(void) * Therefore we use an insecure bit length where we can (512). * In the FIPS module though we must use a longer length. */ - pkey = EVP_PKEY_Q_keygen(multi_libctx, NULL, "RSA", isfips ? 2048 : 512); + pkey = EVP_PKEY_Q_keygen(multi_libctx, NULL, "RSA", (size_t)(isfips ? 2048 : 512)); if (!TEST_ptr(pkey)) goto err; diff --git a/deps/openssl/openssl/test/tls13secretstest.c b/deps/openssl/openssl/test/tls13secretstest.c index 8323b23778754a..bf214d3d5ba755 100644 --- a/deps/openssl/openssl/test/tls13secretstest.c +++ b/deps/openssl/openssl/test/tls13secretstest.c @@ -224,13 +224,6 @@ void ssl_evp_md_free(const EVP_MD *md) { } -#ifndef OPENSSL_NO_QUIC -int quic_set_encryption_secrets(SSL *ssl, OSSL_ENCRYPTION_LEVEL level) -{ - return 1; -} -#endif - /* End of mocked out code */ static int test_secret(SSL *s, unsigned char *prk, diff --git a/deps/openssl/openssl/util/check-format-commit.sh b/deps/openssl/openssl/util/check-format-commit.sh index 7e712dc48cf655..206827dd8669a3 100755 --- a/deps/openssl/openssl/util/check-format-commit.sh +++ b/deps/openssl/openssl/util/check-format-commit.sh @@ -6,24 +6,21 @@ # You can obtain a copy in the file LICENSE in the source distribution # or at https://www.openssl.org/source/license.html # -# This script is a wrapper around check-format.pl. It accepts a commit sha -# value as input, and uses it to identify the files and ranges that were -# changed in that commit, filtering check-format.pl output only to lines that -# fall into the commits change ranges. -# - - -# List of Regexes to use when running check-format.pl. -# Style checks don't apply to any of these -EXCLUDED_FILE_REGEX=("\.pod" \ - "\.pl" \ - "\.pm" \ - "\.t" \ - "\.yml" \ - "\.sh") - -# Exit code for the script -EXIT_CODE=0 +# This script is a wrapper around check-format.pl. +# It accepts the same commit revision range as 'git diff' as arguments, +# or just a single commit id, and uses it to identify the files and line ranges +# that were changed in that commit range, filtering check-format.pl output +# only to lines that fall into the change ranges of the changed files. +# examples: +# check-format-commit.sh # check unstaged changes +# check-format-commit.sh HEAD +# check-format-commit.sh @~3.. +# check-format-commit.sh f5981c9629667a5a5d6 +# check-format-commit.sh f5981c9629667a5a5d6..ee0bf38e8709bf71888 + +# Allowlist of files to scan +# Currently this is any .c or .h file (with an optional .in suffix) +FILE_NAME_END_ALLOWLIST=("\.[ch]\(.in\)\?") # Global vars @@ -45,94 +42,107 @@ cleanup() { trap cleanup EXIT -# Get the canonical sha256 sum for the commit we are checking +# Get the list of ids of the commits we are checking, +# or empty for unstaged changes. # This lets us pass in symbolic ref names like master/etc and -# resolve them to sha256 sums easily -COMMIT=$(git rev-parse $1) +# resolve them to commit ids easily +COMMIT_RANGE="$@" +[ -n $COMMIT_RANGE ] && COMMIT_LAST=$(git rev-parse $COMMIT_RANGE) -# Fail gracefully if git rev-parse doesn't produce a valid -# commit +# Fail gracefully if git rev-parse doesn't produce a valid commit if [ $? -ne 0 ] then - echo "$1 is not a valid revision" + echo "$1 is not a valid commit range or commit id" exit 1 fi -# Create a iteratable list of files to check for a -# given commit. It produces output of the format -# , -touch $TEMPDIR/ranges.txt -git show $COMMIT | awk -v mycmt=$COMMIT ' +# If the commit range is exactly one revision, +# git rev-parse will output just the commit id of that one alone. +# In that case, we must manipulate a little to get a desirable result, +# as 'git diff' has a slightly different interpretation of a single commit id: +# it takes that to mean all commits up to HEAD, plus any unstaged changes. +if [ $(echo -n "$COMMIT_LAST" | wc -w) -ne 1 ]; then + COMMIT_LAST=$(echo "$COMMIT_LAST" | head -1) +else + # $COMMIT_RANGE is just one commit, make it an actual range + COMMIT_RANGE=$COMMIT_RANGE^..$COMMIT_RANGE +fi + +# Create an iterable list of files to check formatting on, +# including the line ranges that are changed by the commits +# It produces output of this format: +# , +git diff -U0 $COMMIT_RANGE | awk ' BEGIN {myfile=""} - /+{3}/ { - gsub(/b\//,"",$2); - myfile=$2 - } - /@@/ { - gsub(/+/,"",$3); - printf mycmt " " myfile " " $3 "\n" - }' >> $TEMPDIR/ranges.txt || true - -# filter out anything that matches on a filter regex -for i in ${EXCLUDED_FILE_REGEX[@]} -do - touch $TEMPDIR/ranges.filter - grep -v "$i" $TEMPDIR/ranges.txt >> $TEMPDIR/ranges.filter || true - REMAINING_FILES=$(wc -l $TEMPDIR/ranges.filter | awk '{print $1}') - if [ $REMAINING_FILES -eq 0 ] - then - echo "This commit has no files that require checking" - exit 0 - fi - mv $TEMPDIR/ranges.filter $TEMPDIR/ranges.txt -done + /^\+\+\+/ { sub(/^b./,"",$2); file=$2 } + /^@@/ { sub(/^\+/,"",$3); range=$3; printf file " " range "\n" } + ' > $TEMPDIR/ranges.txt -# check out the files from the commit level. -# For each file name in ranges, we show that file at the commit -# level we are checking, and redirect it to the same path, relative -# to $TEMPDIR/check-format. This give us the full file to run -# check-format.pl on with line numbers matching the ranges in the -# $TEMPDIR/ranges.txt file -for j in $(grep $COMMIT $TEMPDIR/ranges.txt | awk '{print $2}') +# filter in anything that matches on a filter regex +for i in ${FILE_NAME_END_ALLOWLIST[@]} do - FDIR=$(dirname $j) - mkdir -p $TEMPDIR/check-format/$FDIR - git show $COMMIT:$j > $TEMPDIR/check-format/$j + # Note the space after the $i below. This is done because we want + # to match on file name suffixes, but the input file is of the form + # , + # So we can't just match on end of line. The additional space + # here lets us match on suffixes followed by the expected space + # in the input file + grep "$i " $TEMPDIR/ranges.txt >> $TEMPDIR/ranges.filter || true done -# Now for each file in $TEMPDIR/check-format run check-format.pl -# Note that we use the %P formatter in the find utilty. This strips -# off the $TEMPDIR/check-format path prefix, leaving $j with the -# path to the file relative to the root of the source dir, so that -# output from check-format.pl looks correct, relative to the root -# of the git tree. -for j in $(find $TEMPDIR/check-format -type f -printf "%P\n") +REMAINING_FILES=$(wc -l <$TEMPDIR/ranges.filter) +if [ $REMAINING_FILES -eq 0 ] +then + echo "The given commit range has no C source file changes that require checking" + exit 0 +fi + +# unless checking the format of unstaged changes, +# check out the files from the commit range. +if [ -n "$COMMIT_RANGE" ] +then + # For each file name in ranges, we show that file at the commit range + # we are checking, and redirect it to the same path, + # relative to $TEMPDIR/check-format. + # This give us the full file path to run check-format.pl on + # with line numbers matching the ranges in the $TEMPDIR/ranges.filter file + for j in $(awk '{print $1}' $TEMPDIR/ranges.filter | sort -u) + do + FDIR=$(dirname $j) + mkdir -p $TEMPDIR/check-format/$FDIR + git show $COMMIT_LAST:$j > $TEMPDIR/check-format/$j + done +fi + +# Now for each file in $TEMPDIR/ranges.filter, run check-format.pl +for j in $(awk '{print $1}' $TEMPDIR/ranges.filter | sort -u) do range_start=() range_end=() # Get the ranges for this file. Create 2 arrays. range_start contains # the start lines for valid ranges from the commit. the range_end array - # contains the corresponding end line (note, since diff output gives us + # contains the corresponding end line. Note, since diff output gives us # a line count for a change, the range_end[k] entry is actually # range_start[k]+line count - for k in $(grep $COMMIT $TEMPDIR/ranges.txt | grep $j | awk '{print $3}') + for k in $(grep ^$j $TEMPDIR/ranges.filter | awk '{print $2}') do - RANGE=$k - RSTART=$(echo $RANGE | awk -F',' '{print $1}') - RLEN=$(echo $RANGE | awk -F',' '{print $2}') + RSTART=$(echo $k | awk -F',' '{print $1}') + RLEN=$(echo $k | awk -F',' '{print $2}') + # when the hunk is just one line, its length is implied + if [ -z "$RLEN" ]; then RLEN=1; fi let REND=$RSTART+$RLEN range_start+=($RSTART) range_end+=($REND) done - # Go to our checked out tree - cd $TEMPDIR/check-format + # Go to our checked out tree, unless checking unstaged changes + [ -n "$COMMIT_RANGE" ] && cd $TEMPDIR/check-format # Actually run check-format.pl on the file, capturing the output - # in a temporary file. Note the format of check-patch.pl output is - # ::: - $TOPDIR/util/check-format.pl $j > $TEMPDIR/format-results.txt + # in a temporary file. Note the format of check-format.pl output is + # ::: + $TOPDIR/util/check-format.pl $j > $TEMPDIR/results.txt # Now we filter the check-format.pl output based on the changed lines # captured in the range_start/end arrays @@ -146,26 +156,15 @@ do # Check here if any line in that output falls between any of the # start/end ranges defined in the range_start/range_end array. # If it does fall in that range, print the entire line to stdout - # If anything is printed, have awk exit with a non-zero exit code awk -v rstart=$RSTART -v rend=$REND -F':' ' - BEGIN {rc=0} - /:/ { - if (($2 >= rstart) && ($2 <= rend)) { - print $0; - rc=1 - } - } - END {exit rc;} - ' $TEMPDIR/format-results.txt - - # If awk exited with a non-zero code, this script will also exit - # with a non-zero code - if [ $? -ne 0 ] - then - EXIT_CODE=1 - fi + /:/ { if (rstart <= $2 && $2 <= rend) print $0 } + ' $TEMPDIR/results.txt >>$TEMPDIR/results-filtered.txt done done +cat $TEMPDIR/results-filtered.txt -# Exit with the recorded exit code above -exit $EXIT_CODE +# If any findings were in range, exit with a different error code +if [ -s $TEMPDIR/results-filtered.txt ] +then + exit 2 +fi diff --git a/deps/openssl/openssl/util/check-format.pl b/deps/openssl/openssl/util/check-format.pl index ef2c1920e7220a..559b9023d08c2d 100755 --- a/deps/openssl/openssl/util/check-format.pl +++ b/deps/openssl/openssl/util/check-format.pl @@ -791,7 +791,7 @@ sub check_nested_nonblock_indents { # treat remaining blinded comments and string literal contents as (single) space during matching below $intra_line =~ s/@+/ /g; # note that extra SPC has already been handled above $intra_line =~ s/\s+$//; # strip any (resulting) space at EOL - # replace ';;' or '; ;' by ';' in "for(;;)" and in "for (...)" unless "..." contains just SPC and ';' characters: + # replace ';;' or '; ;' by ';' in "for (;;)" and in "for (...)" unless "..." contains just SPC and ';' characters: $intra_line =~ s/((^|\W)for\s*\()([^;]*?)(\s*)(;\s?);(\s*)([^;]*)(\))/ "$1$3$4".("$3$4$5$6$7" eq ";" || $3 ne "" || $7 ne "" ? "" : $5).";$6$7$8"/eg; # strip trailing ';' or '; ' in "for (...)" except in "for (;;)" or "for (;; )": @@ -904,7 +904,7 @@ sub check_nested_nonblock_indents { # handle opening brace '{' after if/else/while/for/switch/do on line before if ($hanging_offset > 0 && m/^[\s@]*{/ && # leading opening '{' $line_before > 0 && - $contents_before_ =~ m/(^|^.*\W)(if|else|while|for|switch|do)(\W.*$|$)/) { + $contents_before_ =~ m/(^|^.*\W)(if|else|while|for|(OSSL_)?LIST_FOREACH(_\w+)?|switch|do)(\W.*$|$)/) { $keyword_opening_brace = $1; $hanging_offset -= INDENT_LEVEL; # cancel newly hanging_offset } @@ -966,7 +966,7 @@ sub check_nested_nonblock_indents { my $outermost_level = $block_indent - $preproc_offset == 0; - report("more than one stmt") if !m/(^|\W)for(\W.*|$)/ && # no 'for' - TODO improve matching + report("more than one stmt") if !m/(^|\W)(for|(OSSL_)?LIST_FOREACH(_\w+)?)(\W.*|$)/ && # no 'for' - TODO improve matching m/;.*;/; # two or more terminators ';', so more than one statement # check for code block containing a single line/statement @@ -1004,7 +1004,7 @@ sub check_nested_nonblock_indents { my $assignment_start = 0; my $tmp = $_; $tmp =~ s/[\!<>=]=/@@/g; # blind (in-)equality symbols like '<=' as '@@' to prevent matching them as '=' below - if (m/^((^|.*\W)(if|while|for|switch))(\W.*|$)$/) { # (last) if/for/while/switch + if (m/^((^|.*\W)(if|while|for|(OSSL_)?LIST_FOREACH(_\w+)?|switch))(\W.*|$)$/) { # (last) if/for/while/switch $paren_expr_start = 1; } elsif (m/^((^|.*\W)(return|enum))(\W.*|$)/ # (last) return/enum && !$in_expr && @nested_indents == 0 && parens_balance($1) == 0) { # not nested enum @@ -1135,7 +1135,7 @@ sub check_nested_nonblock_indents { $line_body_start = $contents =~ m/LONG BODY/ ? 0 : $line if $line_function_start != 0; } } else { - $line_opening_brace = $line if $keyword_opening_brace =~ m/if|do|while|for/; + $line_opening_brace = $line if $keyword_opening_brace =~ m/if|do|while|for|(OSSL_)?LIST_FOREACH(_\w+)?/; # using, not assigning, $keyword_opening_brace here because it could be on an earlier line $line_opening_brace = $line if $keyword_opening_brace eq "else" && $extended_1_stmt && # TODO prevent false positives for if/else where braces around single-statement branches @@ -1148,11 +1148,11 @@ sub check_nested_nonblock_indents { } } - # check for opening brace after if/while/for/switch/do not on same line + # check for opening brace after if/while/for/switch/do missing on same line # note that "missing '{' on same line after '} else'" is handled further below if (/^[\s@]*{/ && # leading '{' $line_before > 0 && !($contents_before_ =~ m/^\s*#/) && # not preprocessor directive '#if - (my ($head, $mid, $tail) = ($contents_before_ =~ m/(^|^.*\W)(if|while|for|switch|do)(\W.*$|$)/))) { + (my ($head, $mid, $tail) = ($contents_before_ =~ m/(^|^.*\W)(if|while|for|(OSSL_)?LIST_FOREACH(_\w+)?|switch|do)(\W.*$|$)/))) { my $brace_after = $tail =~ /^[\s@]*{/; # any whitespace or comments then '{' report("'{' not on same line as preceding '$mid'") if !$brace_after; } diff --git a/deps/openssl/openssl/util/libssl.num b/deps/openssl/openssl/util/libssl.num index 4a9d5b20074af5..f055c967bf1c85 100644 --- a/deps/openssl/openssl/util/libssl.num +++ b/deps/openssl/openssl/util/libssl.num @@ -520,19 +520,3 @@ SSL_load_client_CA_file_ex 520 3_0_0 EXIST::FUNCTION: SSL_set0_tmp_dh_pkey 521 3_0_0 EXIST::FUNCTION: SSL_CTX_set0_tmp_dh_pkey 522 3_0_0 EXIST::FUNCTION: SSL_group_to_name 523 3_0_0 EXIST::FUNCTION: -SSL_quic_read_level 20000 3_0_0 EXIST::FUNCTION:QUIC -SSL_set_quic_transport_params 20001 3_0_0 EXIST::FUNCTION:QUIC -SSL_CIPHER_get_prf_nid 20002 3_0_0 EXIST::FUNCTION:QUIC -SSL_is_quic 20003 3_0_0 EXIST::FUNCTION:QUIC -SSL_get_peer_quic_transport_params 20004 3_0_0 EXIST::FUNCTION:QUIC -SSL_quic_write_level 20005 3_0_0 EXIST::FUNCTION:QUIC -SSL_CTX_set_quic_method 20006 3_0_0 EXIST::FUNCTION:QUIC -SSL_set_quic_method 20007 3_0_0 EXIST::FUNCTION:QUIC -SSL_quic_max_handshake_flight_len 20008 3_0_0 EXIST::FUNCTION:QUIC -SSL_process_quic_post_handshake 20009 3_0_0 EXIST::FUNCTION:QUIC -SSL_provide_quic_data 20010 3_0_0 EXIST::FUNCTION:QUIC -SSL_set_quic_use_legacy_codepoint 20011 3_0_0 EXIST::FUNCTION:QUIC -SSL_set_quic_transport_version 20012 3_0_0 EXIST::FUNCTION:QUIC -SSL_get_peer_quic_transport_version 20013 3_0_0 EXIST::FUNCTION:QUIC -SSL_get_quic_transport_version 20014 3_0_0 EXIST::FUNCTION:QUIC -SSL_set_quic_early_data_enabled 20015 3_0_0 EXIST::FUNCTION:QUIC diff --git a/deps/openssl/openssl/util/mkbuildinf.pl b/deps/openssl/openssl/util/mkbuildinf.pl index 1c273872be11c0..799ed3cdcd0972 100755 --- a/deps/openssl/openssl/util/mkbuildinf.pl +++ b/deps/openssl/openssl/util/mkbuildinf.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2014-2025 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the Apache License 2.0 (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -9,17 +9,21 @@ use strict; use warnings; -my ($cflags, $platform) = @ARGV; +my $platform = pop @ARGV; +my $cflags = join(' ', @ARGV); +$cflags =~ s(\\)(\\\\)g; $cflags = "compiler: $cflags"; -my $date = gmtime($ENV{'SOURCE_DATE_EPOCH'} || time()) . " UTC"; +# Use the value of the envvar SOURCE_DATE_EPOCH, even if it's +# zero or the empty string. +my $date = gmtime($ENV{'SOURCE_DATE_EPOCH'} // time()) . " UTC"; print <<"END_OUTPUT"; /* * WARNING: do not edit! * Generated by util/mkbuildinf.pl * - * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2014-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy diff --git a/deps/openssl/openssl/util/other.syms b/deps/openssl/openssl/util/other.syms index 839d0d2c08c763..ea0a8caac4359c 100644 --- a/deps/openssl/openssl/util/other.syms +++ b/deps/openssl/openssl/util/other.syms @@ -143,8 +143,6 @@ custom_ext_free_cb datatype custom_ext_parse_cb datatype pem_password_cb datatype ssl_ct_validation_cb datatype -OSSL_ENCRYPTION_LEVEL datatype -SSL_QUIC_METHOD datatype # ASN1_BIT_STRING_digest define BIO_append_filename define diff --git a/deps/openssl/openssl/util/perl/OpenSSL/Template.pm b/deps/openssl/openssl/util/perl/OpenSSL/Template.pm index 7411dd8ae8d7a7..ad93278ca7613f 100644 --- a/deps/openssl/openssl/util/perl/OpenSSL/Template.pm +++ b/deps/openssl/openssl/util/perl/OpenSSL/Template.pm @@ -42,6 +42,14 @@ use Text::Template 1.46; our @ISA = qw(Text::Template); # parent +sub tmpl_error { + my (%err_dict) = @_; + + $ERROR = $err_dict{"error"}; + + return undef; +} + sub new { my $class = shift; @@ -66,6 +74,7 @@ sub fill_in { output_on => sub { $self->output_on() }, output_off => sub { $self->output_off() }, %hash }, + BROKEN => \&tmpl_error, %opts); } diff --git a/deps/simdjson/LICENSE b/deps/simdjson/LICENSE index 71f65b598d907f..57fc54cc1f775e 100644 --- a/deps/simdjson/LICENSE +++ b/deps/simdjson/LICENSE @@ -186,7 +186,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright 2018-2023 The simdjson authors + Copyright 2018-2025 The simdjson authors Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/deps/simdjson/simdjson.cpp b/deps/simdjson/simdjson.cpp index d79fc703a815ca..aaeca3fadde29b 100644 --- a/deps/simdjson/simdjson.cpp +++ b/deps/simdjson/simdjson.cpp @@ -1,4 +1,4 @@ -/* auto-generated on 2024-08-26 09:37:03 -0400. Do not edit! */ +/* auto-generated on 2025-02-14 16:11:36 -0500. Do not edit! */ /* including simdjson.cpp: */ /* begin file simdjson.cpp */ #define SIMDJSON_SRC_SIMDJSON_CPP @@ -77,6 +77,30 @@ #endif #endif +#ifdef __has_include +#if __has_include() +#include +#endif +#endif + +#if defined(__apple_build_version__) +#if __apple_build_version__ < 14000000 +#define SIMDJSON_CONCEPT_DISABLED 1 // apple-clang/13 doesn't support std::convertible_to +#endif +#endif + + +#if defined(__cpp_concepts) && !defined(SIMDJSON_CONCEPT_DISABLED) +#if __cpp_concepts >= 201907L +#include +#define SIMDJSON_SUPPORTS_DESERIALIZATION 1 +#else +#define SIMDJSON_SUPPORTS_DESERIALIZATION 0 +#endif +#else // defined(__cpp_concepts) && !defined(SIMDJSON_CONCEPT_DISABLED) +#define SIMDJSON_SUPPORTS_DESERIALIZATION 0 +#endif // defined(__cpp_concepts) && !defined(SIMDJSON_CONCEPT_DISABLED) + #endif // SIMDJSON_COMPILER_CHECK_H /* end file simdjson/compiler_check.h */ /* including simdjson/portability.h: #include "simdjson/portability.h" */ @@ -89,11 +113,15 @@ #include #include #include +#include #ifndef _WIN32 // strcasecmp, strncasecmp #include #endif +static_assert(CHAR_BIT == 8, "simdjson requires 8-bit bytes"); + + // We are using size_t without namespace std:: throughout the project using std::size_t; @@ -127,6 +155,7 @@ using std::size_t; #elif defined(__loongarch_lp64) #define SIMDJSON_IS_LOONGARCH64 1 #elif defined(__PPC64__) || defined(_M_PPC64) +#define SIMDJSON_IS_PPC64 1 #if defined(__ALTIVEC__) #define SIMDJSON_IS_PPC64_VMX 1 #endif // defined(__ALTIVEC__) @@ -284,6 +313,45 @@ using std::size_t; #endif + + +#if defined __BYTE_ORDER__ && defined __ORDER_BIG_ENDIAN__ +#define SIMDJSON_IS_BIG_ENDIAN (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) +#elif defined _WIN32 +#define SIMDJSON_IS_BIG_ENDIAN 0 +#else +#if defined(__APPLE__) || defined(__FreeBSD__) +#include +#elif defined(sun) || defined(__sun) +#include +#elif defined(__MVS__) +#include +#else +#ifdef __has_include +#if __has_include() +#include +#endif //__has_include() +#endif //__has_include +#endif +# +#ifndef __BYTE_ORDER__ +// safe choice +#define SIMDJSON_IS_BIG_ENDIAN 0 +#endif +# +#ifndef __ORDER_LITTLE_ENDIAN__ +// safe choice +#define SIMDJSON_IS_BIG_ENDIAN 0 +#endif +# +#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ +#define SIMDJSON_IS_BIG_ENDIAN 0 +#else +#define SIMDJSON_IS_BIG_ENDIAN 1 +#endif +#endif + + #endif // SIMDJSON_PORTABILITY_H /* end file simdjson/portability.h */ @@ -549,7 +617,6 @@ SIMDJSON_PUSH_DISABLE_ALL_WARNINGS // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#pragma once #ifndef NONSTD_SV_LITE_H_INCLUDED #define NONSTD_SV_LITE_H_INCLUDED @@ -2430,7 +2497,7 @@ struct simdjson_error : public std::exception { */ simdjson_error(error_code error) noexcept : _error{error} { } /** The error message */ - const char *what() const noexcept { return error_message(error()); } + const char *what() const noexcept override { return error_message(error()); } /** The error code */ error_code error() const noexcept { return _error; } private: @@ -2662,6 +2729,122 @@ inline const std::string error_message(int error) noexcept; #endif // SIMDJSON_ERROR_H /* end file simdjson/error.h */ /* skipped duplicate #include "simdjson/portability.h" */ +/* including simdjson/concepts.h: #include "simdjson/concepts.h" */ +/* begin file simdjson/concepts.h */ +#ifndef SIMDJSON_CONCEPTS_H +#define SIMDJSON_CONCEPTS_H +#if SIMDJSON_SUPPORTS_DESERIALIZATION + +#include +#include + +namespace simdjson { +namespace concepts { + +namespace details { +#define SIMDJSON_IMPL_CONCEPT(name, method) \ + template \ + concept supports_##name = !std::is_const_v && requires { \ + typename std::remove_cvref_t::value_type; \ + requires requires(typename std::remove_cvref_t::value_type &&val, \ + T obj) { \ + obj.method(std::move(val)); \ + requires !requires { obj = std::move(val); }; \ + }; \ + }; + +SIMDJSON_IMPL_CONCEPT(emplace_back, emplace_back) +SIMDJSON_IMPL_CONCEPT(emplace, emplace) +SIMDJSON_IMPL_CONCEPT(push_back, push_back) +SIMDJSON_IMPL_CONCEPT(add, add) +SIMDJSON_IMPL_CONCEPT(push, push) +SIMDJSON_IMPL_CONCEPT(append, append) +SIMDJSON_IMPL_CONCEPT(insert, insert) +SIMDJSON_IMPL_CONCEPT(op_append, operator+=) + +#undef SIMDJSON_IMPL_CONCEPT +} // namespace details + +/// Check if T is a container that we can append to, including: +/// std::vector, std::deque, std::list, std::string, ... +template +concept appendable_containers = + details::supports_emplace_back || details::supports_emplace || + details::supports_push_back || details::supports_push || + details::supports_add || details::supports_append || + details::supports_insert; + +/// Insert into the container however possible +template +constexpr decltype(auto) emplace_one(T &vec, Args &&...args) { + if constexpr (details::supports_emplace_back) { + return vec.emplace_back(std::forward(args)...); + } else if constexpr (details::supports_emplace) { + return vec.emplace(std::forward(args)...); + } else if constexpr (details::supports_push_back) { + return vec.push_back(std::forward(args)...); + } else if constexpr (details::supports_push) { + return vec.push(std::forward(args)...); + } else if constexpr (details::supports_add) { + return vec.add(std::forward(args)...); + } else if constexpr (details::supports_append) { + return vec.append(std::forward(args)...); + } else if constexpr (details::supports_insert) { + return vec.insert(std::forward(args)...); + } else if constexpr (details::supports_op_append && sizeof...(Args) == 1) { + return vec.operator+=(std::forward(args)...); + } else { + static_assert(!sizeof(T *), + "We don't know how to add things to this container"); + } +} + +/// This checks if the container will return a reference to the newly added +/// element after an insert which for example `std::vector::emplace_back` does +/// since C++17; this will allow some optimizations. +template +concept returns_reference = appendable_containers && requires { + typename std::remove_cvref_t::reference; + requires requires(typename std::remove_cvref_t::value_type &&val, T obj) { + { + emplace_one(obj, std::move(val)) + } -> std::same_as::reference>; + }; +}; + +template +concept smart_pointer = requires(std::remove_cvref_t ptr) { + // Check if T has a member type named element_type + typename std::remove_cvref_t::element_type; + + // Check if T has a get() member function + { + ptr.get() + } -> std::same_as::element_type *>; + + // Check if T can be dereferenced + { *ptr } -> std::same_as::element_type &>; +}; + +template +concept optional_type = requires(std::remove_cvref_t obj) { + typename std::remove_cvref_t::value_type; + { obj.value() } -> std::same_as::value_type&>; + requires requires(typename std::remove_cvref_t::value_type &&val) { + obj.emplace(std::move(val)); + obj = std::move(val); + { + obj.value_or(val) + } -> std::convertible_to::value_type>; + }; + { static_cast(obj) } -> std::same_as; // convertible to bool +}; + +} // namespace concepts +} // namespace simdjson +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION +#endif // SIMDJSON_CONCEPTS_H +/* end file simdjson/concepts.h */ /** * @brief The top level simdjson namespace, containing everything the library provides. @@ -6447,7 +6630,6 @@ extern SIMDJSON_DLLIMPORTEXPORT const uint64_t thintable_epi8[256]; #endif // SIMDJSON_INTERNAL_SIMDPRUNE_TABLES_H /* end file simdjson/internal/simdprune_tables.h */ - #endif // SIMDJSON_GENERIC_DEPENDENCIES_H /* end file simdjson/generic/dependencies.h */ /* including generic/dependencies.h: #include */ @@ -7623,7 +7805,7 @@ SIMDJSON_NO_SANITIZE_UNDEFINED // See issue https://github.com/simdjson/simdjson/issues/1965 SIMDJSON_NO_SANITIZE_MEMORY simdjson_inline int trailing_zeroes(uint64_t input_num) { -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO unsigned long ret; // Search the mask data from least significant bit (LSB) // to the most significant bit (MSB) for a set bit (1). @@ -7639,9 +7821,15 @@ simdjson_inline uint64_t clear_lowest_bit(uint64_t input_num) { return input_num & (input_num-1); } +// We sometimes call leading_zeroes on inputs that are zero, +// but the algorithms do not end up using the returned value. +// Sadly, sanitizers are not smart enough to figure it out. +// Applies only when SIMDJSON_PREFER_REVERSE_BITS is defined and true. +// (See below.) +SIMDJSON_NO_SANITIZE_UNDEFINED /* result might be undefined when input_num is zero */ simdjson_inline int leading_zeroes(uint64_t input_num) { -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO unsigned long leading_zero = 0; // Search the mask data from most significant bit (MSB) // to least significant bit (LSB) for a set bit (1). @@ -7694,7 +7882,7 @@ simdjson_inline uint64_t zero_leading_bit(uint64_t rev_bits, int leading_zeroes) #endif simdjson_inline bool add_overflow(uint64_t value1, uint64_t value2, uint64_t *result) { -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO *result = value1 + value2; return *result < value1; #else @@ -7811,7 +7999,13 @@ simdjson_inline internal::value128 full_multiplication(uint64_t value1, uint64_t } // namespace arm64 } // namespace simdjson +#ifndef SIMDJSON_SWAR_NUMBER_PARSING +#if SIMDJSON_IS_BIG_ENDIAN +#define SIMDJSON_SWAR_NUMBER_PARSING 0 +#else #define SIMDJSON_SWAR_NUMBER_PARSING 1 +#endif +#endif #endif // SIMDJSON_ARM64_NUMBERPARSING_DEFS_H /* end file simdjson/arm64/numberparsing_defs.h */ @@ -7831,7 +8025,7 @@ namespace arm64 { namespace { namespace simd { -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO namespace { // Start of private section with Visual Studio workaround @@ -7940,7 +8134,7 @@ namespace { // We return uint32_t instead of uint16_t because that seems to be more efficient for most // purposes (cutting it down to uint16_t costs performance in some compilers). simdjson_inline uint32_t to_bitmask() const { -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO const uint8x16_t bit_mask = simdjson_make_uint8x16_t(0x01, 0x02, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80, 0x01, 0x02, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80); #else @@ -7971,7 +8165,7 @@ namespace { // Splat constructor simdjson_inline simd8(uint8_t _value) : simd8(splat(_value)) {} // Member-by-member initialization -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO simdjson_inline simd8( uint8_t v0, uint8_t v1, uint8_t v2, uint8_t v3, uint8_t v4, uint8_t v5, uint8_t v6, uint8_t v7, uint8_t v8, uint8_t v9, uint8_t v10, uint8_t v11, uint8_t v12, uint8_t v13, uint8_t v14, uint8_t v15 @@ -8065,7 +8259,7 @@ namespace { uint64x2_t shufmask64 = {thintable_epi8[mask1], thintable_epi8[mask2]}; uint8x16_t shufmask = vreinterpretq_u8_u64(shufmask64); // we increment by 0x08 the second half of the mask -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO uint8x16_t inc = simdjson_make_uint8x16_t(0, 0, 0, 0, 0, 0, 0, 0, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08); #else uint8x16_t inc = {0, 0, 0, 0, 0, 0, 0, 0, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08}; @@ -8095,7 +8289,7 @@ namespace { uint8x8_t compactmask1 = vcreate_u8(thintable_epi8[mask1]); uint8x8_t compactmask2 = vcreate_u8(thintable_epi8[mask2]); // we increment by 0x08 the second half of the mask -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO uint8x8_t inc = simdjson_make_uint8x8_t(0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08); #else uint8x8_t inc = {0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08}; @@ -8147,7 +8341,7 @@ namespace { // Array constructor simdjson_inline simd8(const int8_t* values) : simd8(load(values)) {} // Member-by-member initialization -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO simdjson_inline simd8( int8_t v0, int8_t v1, int8_t v2, int8_t v3, int8_t v4, int8_t v5, int8_t v6, int8_t v7, int8_t v8, int8_t v9, int8_t v10, int8_t v11, int8_t v12, int8_t v13, int8_t v14, int8_t v15 @@ -8268,7 +8462,7 @@ namespace { } simdjson_inline uint64_t to_bitmask() const { -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO const uint8x16_t bit_mask = simdjson_make_uint8x16_t( 0x01, 0x02, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80, 0x01, 0x02, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80 @@ -9428,7 +9622,6 @@ simdjson_unused simdjson_inline simdjson_result get_number_type(con // Our objective is accurate parsing (ULP of 0) at high speed. template simdjson_inline error_code parse_number(const uint8_t *const src, W &writer) { - // // Check for minus sign // @@ -10379,7 +10572,7 @@ SIMDJSON_NO_SANITIZE_UNDEFINED // See issue https://github.com/simdjson/simdjson/issues/1965 SIMDJSON_NO_SANITIZE_MEMORY simdjson_inline int trailing_zeroes(uint64_t input_num) { -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO unsigned long ret; // Search the mask data from least significant bit (LSB) // to the most significant bit (MSB) for a set bit (1). @@ -10395,9 +10588,15 @@ simdjson_inline uint64_t clear_lowest_bit(uint64_t input_num) { return input_num & (input_num-1); } +// We sometimes call leading_zeroes on inputs that are zero, +// but the algorithms do not end up using the returned value. +// Sadly, sanitizers are not smart enough to figure it out. +// Applies only when SIMDJSON_PREFER_REVERSE_BITS is defined and true. +// (See below.) +SIMDJSON_NO_SANITIZE_UNDEFINED /* result might be undefined when input_num is zero */ simdjson_inline int leading_zeroes(uint64_t input_num) { -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO unsigned long leading_zero = 0; // Search the mask data from most significant bit (MSB) // to least significant bit (LSB) for a set bit (1). @@ -10450,7 +10649,7 @@ simdjson_inline uint64_t zero_leading_bit(uint64_t rev_bits, int leading_zeroes) #endif simdjson_inline bool add_overflow(uint64_t value1, uint64_t value2, uint64_t *result) { -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO *result = value1 + value2; return *result < value1; #else @@ -10567,7 +10766,13 @@ simdjson_inline internal::value128 full_multiplication(uint64_t value1, uint64_t } // namespace arm64 } // namespace simdjson +#ifndef SIMDJSON_SWAR_NUMBER_PARSING +#if SIMDJSON_IS_BIG_ENDIAN +#define SIMDJSON_SWAR_NUMBER_PARSING 0 +#else #define SIMDJSON_SWAR_NUMBER_PARSING 1 +#endif +#endif #endif // SIMDJSON_ARM64_NUMBERPARSING_DEFS_H /* end file simdjson/arm64/numberparsing_defs.h */ @@ -10587,7 +10792,7 @@ namespace arm64 { namespace { namespace simd { -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO namespace { // Start of private section with Visual Studio workaround @@ -10696,7 +10901,7 @@ namespace { // We return uint32_t instead of uint16_t because that seems to be more efficient for most // purposes (cutting it down to uint16_t costs performance in some compilers). simdjson_inline uint32_t to_bitmask() const { -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO const uint8x16_t bit_mask = simdjson_make_uint8x16_t(0x01, 0x02, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80, 0x01, 0x02, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80); #else @@ -10727,7 +10932,7 @@ namespace { // Splat constructor simdjson_inline simd8(uint8_t _value) : simd8(splat(_value)) {} // Member-by-member initialization -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO simdjson_inline simd8( uint8_t v0, uint8_t v1, uint8_t v2, uint8_t v3, uint8_t v4, uint8_t v5, uint8_t v6, uint8_t v7, uint8_t v8, uint8_t v9, uint8_t v10, uint8_t v11, uint8_t v12, uint8_t v13, uint8_t v14, uint8_t v15 @@ -10821,7 +11026,7 @@ namespace { uint64x2_t shufmask64 = {thintable_epi8[mask1], thintable_epi8[mask2]}; uint8x16_t shufmask = vreinterpretq_u8_u64(shufmask64); // we increment by 0x08 the second half of the mask -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO uint8x16_t inc = simdjson_make_uint8x16_t(0, 0, 0, 0, 0, 0, 0, 0, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08); #else uint8x16_t inc = {0, 0, 0, 0, 0, 0, 0, 0, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08}; @@ -10851,7 +11056,7 @@ namespace { uint8x8_t compactmask1 = vcreate_u8(thintable_epi8[mask1]); uint8x8_t compactmask2 = vcreate_u8(thintable_epi8[mask2]); // we increment by 0x08 the second half of the mask -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO uint8x8_t inc = simdjson_make_uint8x8_t(0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08); #else uint8x8_t inc = {0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08}; @@ -10903,7 +11108,7 @@ namespace { // Array constructor simdjson_inline simd8(const int8_t* values) : simd8(load(values)) {} // Member-by-member initialization -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO simdjson_inline simd8( int8_t v0, int8_t v1, int8_t v2, int8_t v3, int8_t v4, int8_t v5, int8_t v6, int8_t v7, int8_t v8, int8_t v9, int8_t v10, int8_t v11, int8_t v12, int8_t v13, int8_t v14, int8_t v15 @@ -11024,7 +11229,7 @@ namespace { } simdjson_inline uint64_t to_bitmask() const { -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO const uint8x16_t bit_mask = simdjson_make_uint8x16_t( 0x01, 0x02, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80, 0x01, 0x02, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80 @@ -13977,6 +14182,7 @@ simdjson_warn_unused error_code dom_parser_implementation::stage2_next(dom::docu return stage2::tape_builder::parse_document(*this, _doc); } +SIMDJSON_NO_SANITIZE_MEMORY simdjson_warn_unused uint8_t *dom_parser_implementation::parse_string(const uint8_t *src, uint8_t *dst, bool allow_replacement) const noexcept { return arm64::stringparsing::parse_string(src, dst, allow_replacement); } @@ -14115,8 +14321,14 @@ static_assert(sizeof(__m256i) <= simdjson::SIMDJSON_PADDING, "insufficient paddi /* end file simdjson/haswell/intrinsics.h */ #if !SIMDJSON_CAN_ALWAYS_RUN_HASWELL +// We enable bmi2 only if LLVM/clang is used, because GCC may not +// make good use of it. See https://github.com/simdjson/simdjson/pull/2243 +#if defined(__clang__) +SIMDJSON_TARGET_REGION("avx2,bmi,bmi2,pclmul,lzcnt,popcnt") +#else SIMDJSON_TARGET_REGION("avx2,bmi,pclmul,lzcnt,popcnt") #endif +#endif /* including simdjson/haswell/bitmanipulation.h: #include "simdjson/haswell/bitmanipulation.h" */ /* begin file simdjson/haswell/bitmanipulation.h */ @@ -15770,7 +15982,6 @@ simdjson_unused simdjson_inline simdjson_result get_number_type(con // Our objective is accurate parsing (ULP of 0) at high speed. template simdjson_inline error_code parse_number(const uint8_t *const src, W &writer) { - // // Check for minus sign // @@ -16748,8 +16959,14 @@ static_assert(sizeof(__m256i) <= simdjson::SIMDJSON_PADDING, "insufficient paddi /* end file simdjson/haswell/intrinsics.h */ #if !SIMDJSON_CAN_ALWAYS_RUN_HASWELL +// We enable bmi2 only if LLVM/clang is used, because GCC may not +// make good use of it. See https://github.com/simdjson/simdjson/pull/2243 +#if defined(__clang__) +SIMDJSON_TARGET_REGION("avx2,bmi,bmi2,pclmul,lzcnt,popcnt") +#else SIMDJSON_TARGET_REGION("avx2,bmi,pclmul,lzcnt,popcnt") #endif +#endif /* including simdjson/haswell/bitmanipulation.h: #include "simdjson/haswell/bitmanipulation.h" */ /* begin file simdjson/haswell/bitmanipulation.h */ @@ -20193,6 +20410,7 @@ simdjson_warn_unused error_code dom_parser_implementation::stage2_next(dom::docu return stage2::tape_builder::parse_document(*this, _doc); } +SIMDJSON_NO_SANITIZE_MEMORY simdjson_warn_unused uint8_t *dom_parser_implementation::parse_string(const uint8_t *src, uint8_t *dst, bool replacement_char) const noexcept { return haswell::stringparsing::parse_string(src, dst, replacement_char); } @@ -20595,14 +20813,18 @@ namespace simd { // Copies to 'output" all bytes corresponding to a 0 in the mask (interpreted as a bitset). // Passing a 0 value for mask would be equivalent to writing out every byte to output. - // Only the first 32 - count_ones(mask) bytes of the result are significant but 32 bytes + // Only the first 64 - count_ones(mask) bytes of the result are significant but 64 bytes // get written. // Design consideration: it seems like a function with the // signature simd8 compress(uint32_t mask) would be // sensible, but the AVX ISA makes this kind of approach difficult. template simdjson_inline void compress(uint64_t mask, L * output) const { - _mm512_mask_compressstoreu_epi8 (output,~mask,*this); + // we deliberately avoid _mm512_mask_compressstoreu_epi8 for portability + // (AMD Zen4 has terrible performance with it, it is effectively broken) + // _mm512_mask_compressstoreu_epi8 (output,~mask,*this); + __m512i compressed = _mm512_maskz_compress_epi8(~mask, *this); + _mm512_storeu_si512(output, compressed); // could use a mask } template @@ -21984,7 +22206,6 @@ simdjson_unused simdjson_inline simdjson_result get_number_type(con // Our objective is accurate parsing (ULP of 0) at high speed. template simdjson_inline error_code parse_number(const uint8_t *const src, W &writer) { - // // Check for minus sign // @@ -23226,14 +23447,18 @@ namespace simd { // Copies to 'output" all bytes corresponding to a 0 in the mask (interpreted as a bitset). // Passing a 0 value for mask would be equivalent to writing out every byte to output. - // Only the first 32 - count_ones(mask) bytes of the result are significant but 32 bytes + // Only the first 64 - count_ones(mask) bytes of the result are significant but 64 bytes // get written. // Design consideration: it seems like a function with the // signature simd8 compress(uint32_t mask) would be // sensible, but the AVX ISA makes this kind of approach difficult. template simdjson_inline void compress(uint64_t mask, L * output) const { - _mm512_mask_compressstoreu_epi8 (output,~mask,*this); + // we deliberately avoid _mm512_mask_compressstoreu_epi8 for portability + // (AMD Zen4 has terrible performance with it, it is effectively broken) + // _mm512_mask_compressstoreu_epi8 (output,~mask,*this); + __m512i compressed = _mm512_maskz_compress_epi8(~mask, *this); + _mm512_storeu_si512(output, compressed); // could use a mask } template @@ -26448,6 +26673,7 @@ simdjson_warn_unused error_code dom_parser_implementation::stage2_next(dom::docu return stage2::tape_builder::parse_document(*this, _doc); } +SIMDJSON_NO_SANITIZE_MEMORY simdjson_warn_unused uint8_t *dom_parser_implementation::parse_string(const uint8_t *src, uint8_t *dst, bool replacement_char) const noexcept { return icelake::stringparsing::parse_string(src, dst, replacement_char); } @@ -26750,7 +26976,13 @@ simdjson_inline internal::value128 full_multiplication(uint64_t value1, uint64_t } // namespace ppc64 } // namespace simdjson +#ifndef SIMDJSON_SWAR_NUMBER_PARSING +#if SIMDJSON_IS_BIG_ENDIAN +#define SIMDJSON_SWAR_NUMBER_PARSING 0 +#else #define SIMDJSON_SWAR_NUMBER_PARSING 1 +#endif +#endif #endif // SIMDJSON_PPC64_NUMBERPARSING_DEFS_H /* end file simdjson/ppc64/numberparsing_defs.h */ @@ -28354,7 +28586,6 @@ simdjson_unused simdjson_inline simdjson_result get_number_type(con // Our objective is accurate parsing (ULP of 0) at high speed. template simdjson_inline error_code parse_number(const uint8_t *const src, W &writer) { - // // Check for minus sign // @@ -29494,7 +29725,13 @@ simdjson_inline internal::value128 full_multiplication(uint64_t value1, uint64_t } // namespace ppc64 } // namespace simdjson +#ifndef SIMDJSON_SWAR_NUMBER_PARSING +#if SIMDJSON_IS_BIG_ENDIAN +#define SIMDJSON_SWAR_NUMBER_PARSING 0 +#else #define SIMDJSON_SWAR_NUMBER_PARSING 1 +#endif +#endif #endif // SIMDJSON_PPC64_NUMBERPARSING_DEFS_H /* end file simdjson/ppc64/numberparsing_defs.h */ @@ -32861,6 +33098,7 @@ simdjson_warn_unused error_code dom_parser_implementation::stage2_next(dom::docu return stage2::tape_builder::parse_document(*this, _doc); } +SIMDJSON_NO_SANITIZE_MEMORY simdjson_warn_unused uint8_t *dom_parser_implementation::parse_string(const uint8_t *src, uint8_t *dst, bool replacement_char) const noexcept { return ppc64::stringparsing::parse_string(src, dst, replacement_char); } @@ -35090,7 +35328,6 @@ simdjson_unused simdjson_inline simdjson_result get_number_type(con // Our objective is accurate parsing (ULP of 0) at high speed. template simdjson_inline error_code parse_number(const uint8_t *const src, W &writer) { - // // Check for minus sign // @@ -39950,6 +40187,7 @@ simdjson_warn_unused error_code dom_parser_implementation::stage2_next(dom::docu return stage2::tape_builder::parse_document(*this, _doc); } +SIMDJSON_NO_SANITIZE_MEMORY simdjson_warn_unused uint8_t *dom_parser_implementation::parse_string(const uint8_t *src, uint8_t *dst, bool replacement_char) const noexcept { return westmere::stringparsing::parse_string(src, dst, replacement_char); } @@ -40176,7 +40414,13 @@ simdjson_inline internal::value128 full_multiplication(uint64_t value1, uint64_t } // namespace lsx } // namespace simdjson +#ifndef SIMDJSON_SWAR_NUMBER_PARSING +#if SIMDJSON_IS_BIG_ENDIAN +#define SIMDJSON_SWAR_NUMBER_PARSING 0 +#else #define SIMDJSON_SWAR_NUMBER_PARSING 1 +#endif +#endif #endif // SIMDJSON_LSX_NUMBERPARSING_DEFS_H /* end file simdjson/lsx/numberparsing_defs.h */ @@ -41650,7 +41894,6 @@ simdjson_unused simdjson_inline simdjson_result get_number_type(con // Our objective is accurate parsing (ULP of 0) at high speed. template simdjson_inline error_code parse_number(const uint8_t *const src, W &writer) { - // // Check for minus sign // @@ -42705,7 +42948,13 @@ simdjson_inline internal::value128 full_multiplication(uint64_t value1, uint64_t } // namespace lsx } // namespace simdjson +#ifndef SIMDJSON_SWAR_NUMBER_PARSING +#if SIMDJSON_IS_BIG_ENDIAN +#define SIMDJSON_SWAR_NUMBER_PARSING 0 +#else #define SIMDJSON_SWAR_NUMBER_PARSING 1 +#endif +#endif #endif // SIMDJSON_LSX_NUMBERPARSING_DEFS_H /* end file simdjson/lsx/numberparsing_defs.h */ @@ -45936,6 +46185,7 @@ simdjson_warn_unused error_code dom_parser_implementation::stage2_next(dom::docu return stage2::tape_builder::parse_document(*this, _doc); } +SIMDJSON_NO_SANITIZE_MEMORY simdjson_warn_unused uint8_t *dom_parser_implementation::parse_string(const uint8_t *src, uint8_t *dst, bool allow_replacement) const noexcept { return lsx::stringparsing::parse_string(src, dst, allow_replacement); } @@ -46159,7 +46409,13 @@ simdjson_inline internal::value128 full_multiplication(uint64_t value1, uint64_t } // namespace lasx } // namespace simdjson +#ifndef SIMDJSON_SWAR_NUMBER_PARSING +#if SIMDJSON_IS_BIG_ENDIAN +#define SIMDJSON_SWAR_NUMBER_PARSING 0 +#else #define SIMDJSON_SWAR_NUMBER_PARSING 1 +#endif +#endif #endif // SIMDJSON_LASX_NUMBERPARSING_DEFS_H /* end file simdjson/lasx/numberparsing_defs.h */ @@ -47649,7 +47905,6 @@ simdjson_unused simdjson_inline simdjson_result get_number_type(con // Our objective is accurate parsing (ULP of 0) at high speed. template simdjson_inline error_code parse_number(const uint8_t *const src, W &writer) { - // // Check for minus sign // @@ -48704,7 +48959,13 @@ simdjson_inline internal::value128 full_multiplication(uint64_t value1, uint64_t } // namespace lasx } // namespace simdjson +#ifndef SIMDJSON_SWAR_NUMBER_PARSING +#if SIMDJSON_IS_BIG_ENDIAN +#define SIMDJSON_SWAR_NUMBER_PARSING 0 +#else #define SIMDJSON_SWAR_NUMBER_PARSING 1 +#endif +#endif #endif // SIMDJSON_LASX_NUMBERPARSING_DEFS_H /* end file simdjson/lasx/numberparsing_defs.h */ @@ -51947,6 +52208,7 @@ simdjson_warn_unused error_code dom_parser_implementation::stage2_next(dom::docu return stage2::tape_builder::parse_document(*this, _doc); } +SIMDJSON_NO_SANITIZE_MEMORY simdjson_warn_unused uint8_t *dom_parser_implementation::parse_string(const uint8_t *src, uint8_t *dst, bool allow_replacement) const noexcept { return lasx::stringparsing::parse_string(src, dst, allow_replacement); } @@ -52188,7 +52450,13 @@ simdjson_inline internal::value128 full_multiplication(uint64_t value1, uint64_t } // namespace fallback } // namespace simdjson +#ifndef SIMDJSON_SWAR_NUMBER_PARSING +#if SIMDJSON_IS_BIG_ENDIAN +#define SIMDJSON_SWAR_NUMBER_PARSING 0 +#else #define SIMDJSON_SWAR_NUMBER_PARSING 1 +#endif +#endif #endif // SIMDJSON_FALLBACK_NUMBERPARSING_DEFS_H /* end file simdjson/fallback/numberparsing_defs.h */ @@ -53247,7 +53515,6 @@ simdjson_unused simdjson_inline simdjson_result get_number_type(con // Our objective is accurate parsing (ULP of 0) at high speed. template simdjson_inline error_code parse_number(const uint8_t *const src, W &writer) { - // // Check for minus sign // @@ -54322,7 +54589,13 @@ simdjson_inline internal::value128 full_multiplication(uint64_t value1, uint64_t } // namespace fallback } // namespace simdjson +#ifndef SIMDJSON_SWAR_NUMBER_PARSING +#if SIMDJSON_IS_BIG_ENDIAN +#define SIMDJSON_SWAR_NUMBER_PARSING 0 +#else #define SIMDJSON_SWAR_NUMBER_PARSING 1 +#endif +#endif #endif // SIMDJSON_FALLBACK_NUMBERPARSING_DEFS_H /* end file simdjson/fallback/numberparsing_defs.h */ @@ -55909,6 +56182,7 @@ simdjson_warn_unused error_code dom_parser_implementation::stage2_next(dom::docu return stage2::tape_builder::parse_document(*this, _doc); } +SIMDJSON_NO_SANITIZE_MEMORY simdjson_warn_unused uint8_t *dom_parser_implementation::parse_string(const uint8_t *src, uint8_t *dst, bool replacement_char) const noexcept { return fallback::stringparsing::parse_string(src, dst, replacement_char); } diff --git a/deps/simdjson/simdjson.h b/deps/simdjson/simdjson.h index f21cd9381eef59..c1535ee81300b9 100644 --- a/deps/simdjson/simdjson.h +++ b/deps/simdjson/simdjson.h @@ -1,4 +1,4 @@ -/* auto-generated on 2024-08-26 09:37:03 -0400. Do not edit! */ +/* auto-generated on 2025-02-14 16:11:36 -0500. Do not edit! */ /* including simdjson.h: */ /* begin file simdjson.h */ #ifndef SIMDJSON_H @@ -97,6 +97,30 @@ #endif #endif +#ifdef __has_include +#if __has_include() +#include +#endif +#endif + +#if defined(__apple_build_version__) +#if __apple_build_version__ < 14000000 +#define SIMDJSON_CONCEPT_DISABLED 1 // apple-clang/13 doesn't support std::convertible_to +#endif +#endif + + +#if defined(__cpp_concepts) && !defined(SIMDJSON_CONCEPT_DISABLED) +#if __cpp_concepts >= 201907L +#include +#define SIMDJSON_SUPPORTS_DESERIALIZATION 1 +#else +#define SIMDJSON_SUPPORTS_DESERIALIZATION 0 +#endif +#else // defined(__cpp_concepts) && !defined(SIMDJSON_CONCEPT_DISABLED) +#define SIMDJSON_SUPPORTS_DESERIALIZATION 0 +#endif // defined(__cpp_concepts) && !defined(SIMDJSON_CONCEPT_DISABLED) + #endif // SIMDJSON_COMPILER_CHECK_H /* end file simdjson/compiler_check.h */ /* including simdjson/portability.h: #include "simdjson/portability.h" */ @@ -109,11 +133,15 @@ #include #include #include +#include #ifndef _WIN32 // strcasecmp, strncasecmp #include #endif +static_assert(CHAR_BIT == 8, "simdjson requires 8-bit bytes"); + + // We are using size_t without namespace std:: throughout the project using std::size_t; @@ -147,6 +175,7 @@ using std::size_t; #elif defined(__loongarch_lp64) #define SIMDJSON_IS_LOONGARCH64 1 #elif defined(__PPC64__) || defined(_M_PPC64) +#define SIMDJSON_IS_PPC64 1 #if defined(__ALTIVEC__) #define SIMDJSON_IS_PPC64_VMX 1 #endif // defined(__ALTIVEC__) @@ -304,6 +333,45 @@ using std::size_t; #endif + + +#if defined __BYTE_ORDER__ && defined __ORDER_BIG_ENDIAN__ +#define SIMDJSON_IS_BIG_ENDIAN (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) +#elif defined _WIN32 +#define SIMDJSON_IS_BIG_ENDIAN 0 +#else +#if defined(__APPLE__) || defined(__FreeBSD__) +#include +#elif defined(sun) || defined(__sun) +#include +#elif defined(__MVS__) +#include +#else +#ifdef __has_include +#if __has_include() +#include +#endif //__has_include() +#endif //__has_include +#endif +# +#ifndef __BYTE_ORDER__ +// safe choice +#define SIMDJSON_IS_BIG_ENDIAN 0 +#endif +# +#ifndef __ORDER_LITTLE_ENDIAN__ +// safe choice +#define SIMDJSON_IS_BIG_ENDIAN 0 +#endif +# +#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ +#define SIMDJSON_IS_BIG_ENDIAN 0 +#else +#define SIMDJSON_IS_BIG_ENDIAN 1 +#endif +#endif + + #endif // SIMDJSON_PORTABILITY_H /* end file simdjson/portability.h */ @@ -569,7 +637,6 @@ SIMDJSON_PUSH_DISABLE_ALL_WARNINGS // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#pragma once #ifndef NONSTD_SV_LITE_H_INCLUDED #define NONSTD_SV_LITE_H_INCLUDED @@ -2370,7 +2437,7 @@ namespace std { #define SIMDJSON_SIMDJSON_VERSION_H /** The version of simdjson being used (major.minor.revision) */ -#define SIMDJSON_VERSION "3.10.1" +#define SIMDJSON_VERSION "3.12.2" namespace simdjson { enum { @@ -2381,11 +2448,11 @@ enum { /** * The minor version (major.MINOR.revision) of simdjson being used. */ - SIMDJSON_VERSION_MINOR = 10, + SIMDJSON_VERSION_MINOR = 12, /** * The revision (major.minor.REVISION) of simdjson being used. */ - SIMDJSON_VERSION_REVISION = 1 + SIMDJSON_VERSION_REVISION = 2 }; } // namespace simdjson @@ -2493,7 +2560,7 @@ struct simdjson_error : public std::exception { */ simdjson_error(error_code error) noexcept : _error{error} { } /** The error message */ - const char *what() const noexcept { return error_message(error()); } + const char *what() const noexcept override { return error_message(error()); } /** The error code */ error_code error() const noexcept { return _error; } private: @@ -2725,6 +2792,122 @@ inline const std::string error_message(int error) noexcept; #endif // SIMDJSON_ERROR_H /* end file simdjson/error.h */ /* skipped duplicate #include "simdjson/portability.h" */ +/* including simdjson/concepts.h: #include "simdjson/concepts.h" */ +/* begin file simdjson/concepts.h */ +#ifndef SIMDJSON_CONCEPTS_H +#define SIMDJSON_CONCEPTS_H +#if SIMDJSON_SUPPORTS_DESERIALIZATION + +#include +#include + +namespace simdjson { +namespace concepts { + +namespace details { +#define SIMDJSON_IMPL_CONCEPT(name, method) \ + template \ + concept supports_##name = !std::is_const_v && requires { \ + typename std::remove_cvref_t::value_type; \ + requires requires(typename std::remove_cvref_t::value_type &&val, \ + T obj) { \ + obj.method(std::move(val)); \ + requires !requires { obj = std::move(val); }; \ + }; \ + }; + +SIMDJSON_IMPL_CONCEPT(emplace_back, emplace_back) +SIMDJSON_IMPL_CONCEPT(emplace, emplace) +SIMDJSON_IMPL_CONCEPT(push_back, push_back) +SIMDJSON_IMPL_CONCEPT(add, add) +SIMDJSON_IMPL_CONCEPT(push, push) +SIMDJSON_IMPL_CONCEPT(append, append) +SIMDJSON_IMPL_CONCEPT(insert, insert) +SIMDJSON_IMPL_CONCEPT(op_append, operator+=) + +#undef SIMDJSON_IMPL_CONCEPT +} // namespace details + +/// Check if T is a container that we can append to, including: +/// std::vector, std::deque, std::list, std::string, ... +template +concept appendable_containers = + details::supports_emplace_back || details::supports_emplace || + details::supports_push_back || details::supports_push || + details::supports_add || details::supports_append || + details::supports_insert; + +/// Insert into the container however possible +template +constexpr decltype(auto) emplace_one(T &vec, Args &&...args) { + if constexpr (details::supports_emplace_back) { + return vec.emplace_back(std::forward(args)...); + } else if constexpr (details::supports_emplace) { + return vec.emplace(std::forward(args)...); + } else if constexpr (details::supports_push_back) { + return vec.push_back(std::forward(args)...); + } else if constexpr (details::supports_push) { + return vec.push(std::forward(args)...); + } else if constexpr (details::supports_add) { + return vec.add(std::forward(args)...); + } else if constexpr (details::supports_append) { + return vec.append(std::forward(args)...); + } else if constexpr (details::supports_insert) { + return vec.insert(std::forward(args)...); + } else if constexpr (details::supports_op_append && sizeof...(Args) == 1) { + return vec.operator+=(std::forward(args)...); + } else { + static_assert(!sizeof(T *), + "We don't know how to add things to this container"); + } +} + +/// This checks if the container will return a reference to the newly added +/// element after an insert which for example `std::vector::emplace_back` does +/// since C++17; this will allow some optimizations. +template +concept returns_reference = appendable_containers && requires { + typename std::remove_cvref_t::reference; + requires requires(typename std::remove_cvref_t::value_type &&val, T obj) { + { + emplace_one(obj, std::move(val)) + } -> std::same_as::reference>; + }; +}; + +template +concept smart_pointer = requires(std::remove_cvref_t ptr) { + // Check if T has a member type named element_type + typename std::remove_cvref_t::element_type; + + // Check if T has a get() member function + { + ptr.get() + } -> std::same_as::element_type *>; + + // Check if T can be dereferenced + { *ptr } -> std::same_as::element_type &>; +}; + +template +concept optional_type = requires(std::remove_cvref_t obj) { + typename std::remove_cvref_t::value_type; + { obj.value() } -> std::same_as::value_type&>; + requires requires(typename std::remove_cvref_t::value_type &&val) { + obj.emplace(std::move(val)); + obj = std::move(val); + { + obj.value_or(val) + } -> std::convertible_to::value_type>; + }; + { static_cast(obj) } -> std::same_as; // convertible to bool +}; + +} // namespace concepts +} // namespace simdjson +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION +#endif // SIMDJSON_CONCEPTS_H +/* end file simdjson/concepts.h */ /** * @brief The top level simdjson namespace, containing everything the library provides. @@ -3655,9 +3838,9 @@ inline std::ostream& operator<<(std::ostream& out, simdjson_result &s) noexcept(false); #endif +/** + * Create a padded_string_view from a string. The string will be padded with SIMDJSON_PADDING + * space characters. The resulting padded_string_view will have a length equal to the original + * string. + * + * @param s The string. + * @return The padded string. + */ +inline padded_string_view pad(std::string& s) noexcept; } // namespace simdjson #endif // SIMDJSON_PADDED_STRING_VIEW_H @@ -3859,6 +4051,11 @@ inline bool padded_string_view::remove_utf8_bom() noexcept { inline std::ostream& operator<<(std::ostream& out, simdjson_result &s) noexcept(false) { return out << s.value(); } #endif +inline padded_string_view pad(std::string& s) noexcept { + const auto len = s.size(); + s.append(SIMDJSON_PADDING, ' '); + return padded_string_view(s.data(), len, s.size()); +} } // namespace simdjson @@ -3911,6 +4108,9 @@ inline padded_string::padded_string(const char *data, size_t length) noexcept if ((data != nullptr) && (data_ptr != nullptr)) { std::memcpy(data_ptr, data, length); } + if (data_ptr == nullptr) { + viable_size = 0; + } } #ifdef __cpp_char8_t inline padded_string::padded_string(const char8_t *data, size_t length) noexcept @@ -3918,12 +4118,17 @@ inline padded_string::padded_string(const char8_t *data, size_t length) noexcept if ((data != nullptr) && (data_ptr != nullptr)) { std::memcpy(data_ptr, reinterpret_cast(data), length); } + if (data_ptr == nullptr) { + viable_size = 0; + } } #endif // note: do not pass std::string arguments by value inline padded_string::padded_string(const std::string & str_ ) noexcept : viable_size(str_.size()), data_ptr(internal::allocate_padded_buffer(str_.size())) { - if (data_ptr != nullptr) { + if (data_ptr == nullptr) { + viable_size = 0; + } else { std::memcpy(data_ptr, str_.data(), str_.size()); } } @@ -4037,11 +4242,11 @@ inline simdjson_result padded_string::load(std::string_view filen } // namespace simdjson -inline simdjson::padded_string operator "" _padded(const char *str, size_t len) { +inline simdjson::padded_string operator ""_padded(const char *str, size_t len) { return simdjson::padded_string(str, len); } #ifdef __cpp_char8_t -inline simdjson::padded_string operator "" _padded(const char8_t *str, size_t len) { +inline simdjson::padded_string operator ""_padded(const char8_t *str, size_t len) { return simdjson::padded_string(reinterpret_cast(str), len); } #endif @@ -4275,6 +4480,21 @@ class array { */ inline simdjson_result at_pointer(std::string_view json_pointer) const noexcept; + /** + * Get the value associated with the given JSONPath expression. We only support + * JSONPath queries that trivially convertible to JSON Pointer queries: key + * names and array indices. + * + * https://datatracker.ietf.org/doc/html/draft-normington-jsonpath-00 + * + * @return The value associated with the given JSONPath expression, or: + * - INVALID_JSON_POINTER if the JSONPath to JSON Pointer conversion fails + * - NO_SUCH_FIELD if a field does not exist in an object + * - INDEX_OUT_OF_BOUNDS if an array index is larger than an array length + * - INCORRECT_TYPE if a non-integer is used to access an array + */ + inline simdjson_result at_path(std::string_view json_path) const noexcept; + /** * Get the value at the given index. This function has linear-time complexity and * is equivalent to the following: @@ -4319,6 +4539,7 @@ struct simdjson_result : public internal::simdjson_result_base at_pointer(std::string_view json_pointer) const noexcept; + inline simdjson_result at_path(std::string_view json_path) const noexcept; inline simdjson_result at(size_t index) const noexcept; #if SIMDJSON_EXCEPTIONS @@ -4654,6 +4875,22 @@ class parser { * simdjson::dom::parser parser; * simdjson::dom::element element = parser.parse(padded_json_copy.get(), json_len, false); * + * ### std::string references + * + * If you pass a mutable std::string reference (std::string&), the parser will seek to extend + * its capacity to SIMDJSON_PADDING bytes beyond the end of the string. + * + * Whenever you pass an std::string reference, the parser will access the bytes beyond the end of + * the string but before the end of the allocated memory (std::string::capacity()). + * If you are using a sanitizer that checks for reading uninitialized bytes or std::string's + * container-overflow checks, you may encounter sanitizer warnings. + * You can safely ignore these warnings. Or you can call simdjson::pad(std::string&) to pad the + * string with SIMDJSON_PADDING spaces: this function returns a simdjson::padding_string_view + * which can be be passed to the parser's parse function: + * + * std::string json = R"({ "foo": 1 } { "foo": 2 } { "foo": 3 } )"; + * element doc = parser.parse(simdjson::pad(json)); + * * ### Parser Capacity * * If the parser's current capacity is less than len, it will allocate enough capacity @@ -5001,9 +5238,14 @@ class parser { /** * The parser instance can use threads when they are available to speed up some * operations. It is enabled by default. Changing this attribute will change the - * behavior of the parser for future operations. + * behavior of the parser for future operations. Set to true by default. */ bool threaded{true}; +#else + /** + * When SIMDJSON_THREADS_ENABLED is not defined, the parser instance cannot use threads. + */ + bool threaded{false}; #endif /** @private Use the new DOM API instead */ class Iterator; @@ -5796,6 +6038,8 @@ class element { * - INCORRECT_TYPE if this is not an object */ inline simdjson_result operator[](const char *key) const noexcept; + simdjson_result operator[](int) const noexcept = delete; + /** * Get the value associated with the given JSON pointer. We use the RFC 6901 @@ -5821,6 +6065,21 @@ class element { */ inline simdjson_result at_pointer(const std::string_view json_pointer) const noexcept; + /** + * Get the value associated with the given JSONPath expression. We only support + * JSONPath queries that trivially convertible to JSON Pointer queries: key + * names and array indices. + * + * https://datatracker.ietf.org/doc/html/draft-normington-jsonpath-00 + * + * @return The value associated with the given JSONPath expression, or: + * - INVALID_JSON_POINTER if the JSONPath to JSON Pointer conversion fails + * - NO_SUCH_FIELD if a field does not exist in an object + * - INDEX_OUT_OF_BOUNDS if an array index is larger than an array length + * - INCORRECT_TYPE if a non-integer is used to access an array + */ + inline simdjson_result at_path(std::string_view json_path) const noexcept; + #ifndef SIMDJSON_DISABLE_DEPRECATED_API /** * @@ -5949,7 +6208,9 @@ struct simdjson_result : public internal::simdjson_result_base operator[](std::string_view key) const noexcept; simdjson_inline simdjson_result operator[](const char *key) const noexcept; + simdjson_result operator[](int) const noexcept = delete; simdjson_inline simdjson_result at_pointer(const std::string_view json_pointer) const noexcept; + simdjson_inline simdjson_result at_path(const std::string_view json_path) const noexcept; [[deprecated("For standard compliance, use at_pointer instead, and prefix your pointers with a slash '/', see RFC6901 ")]] simdjson_inline simdjson_result at(const std::string_view json_pointer) const noexcept; simdjson_inline simdjson_result at(size_t index) const noexcept; @@ -6124,6 +6385,7 @@ class object { * - INCORRECT_TYPE if this is not an object */ inline simdjson_result operator[](const char *key) const noexcept; + simdjson_result operator[](int) const noexcept = delete; /** * Get the value associated with the given JSON pointer. We use the RFC 6901 @@ -6150,6 +6412,21 @@ class object { */ inline simdjson_result at_pointer(std::string_view json_pointer) const noexcept; + /** + * Get the value associated with the given JSONPath expression. We only support + * JSONPath queries that trivially convertible to JSON Pointer queries: key + * names and array indices. + * + * https://datatracker.ietf.org/doc/html/draft-normington-jsonpath-00 + * + * @return The value associated with the given JSONPath expression, or: + * - INVALID_JSON_POINTER if the JSONPath to JSON Pointer conversion fails + * - NO_SUCH_FIELD if a field does not exist in an object + * - INDEX_OUT_OF_BOUNDS if an array index is larger than an array length + * - INCORRECT_TYPE if a non-integer is used to access an array + */ + inline simdjson_result at_path(std::string_view json_path) const noexcept; + /** * Get the value associated with the given key. * @@ -6222,7 +6499,9 @@ struct simdjson_result : public internal::simdjson_result_base operator[](std::string_view key) const noexcept; inline simdjson_result operator[](const char *key) const noexcept; + simdjson_result operator[](int) const noexcept = delete; inline simdjson_result at_pointer(std::string_view json_pointer) const noexcept; + inline simdjson_result at_path(std::string_view json_path) const noexcept; inline simdjson_result at_key(std::string_view key) const noexcept; inline simdjson_result at_key_case_insensitive(std::string_view key) const noexcept; @@ -6529,6 +6808,73 @@ std::string prettify(simdjson_result x) { /* skipped duplicate #include "simdjson/dom/array.h" */ /* skipped duplicate #include "simdjson/dom/element.h" */ /* skipped duplicate #include "simdjson/error-inl.h" */ +/* including simdjson/jsonpathutil.h: #include "simdjson/jsonpathutil.h" */ +/* begin file simdjson/jsonpathutil.h */ +#ifndef SIMDJSON_JSONPATHUTIL_H +#define SIMDJSON_JSONPATHUTIL_H + +#include +#include + +namespace simdjson { +/** + * Converts JSONPath to JSON Pointer. + * @param json_path The JSONPath string to be converted. + * @return A string containing the equivalent JSON Pointer. + */ +inline std::string json_path_to_pointer_conversion(std::string_view json_path) { + size_t i = 0; + + // if JSONPath starts with $, skip it + if (!json_path.empty() && json_path.front() == '$') { + i = 1; + } + if (json_path.empty() || (json_path[i] != '.' && + json_path[i] != '[')) { + return "-1"; // This is just a sentinel value, the caller should check for this and return an error. + } + + std::string result; + // Reserve space to reduce allocations, adjusting for potential increases due + // to escaping. + result.reserve(json_path.size() * 2); + + while (i < json_path.length()) { + if (json_path[i] == '.') { + result += '/'; + } else if (json_path[i] == '[') { + result += '/'; + ++i; // Move past the '[' + while (i < json_path.length() && json_path[i] != ']') { + if (json_path[i] == '~') { + result += "~0"; + } else if (json_path[i] == '/') { + result += "~1"; + } else { + result += json_path[i]; + } + ++i; + } + if (i == json_path.length() || json_path[i] != ']') { + return "-1"; // Using sentinel value that will be handled as an error by the caller. + } + } else { + if (json_path[i] == '~') { + result += "~0"; + } else if (json_path[i] == '/') { + result += "~1"; + } else { + result += json_path[i]; + } + } + ++i; + } + + return result; +} +} // namespace simdjson +#endif // SIMDJSON_JSONPATHUTIL_H +/* end file simdjson/jsonpathutil.h */ /* including simdjson/internal/tape_ref-inl.h: #include "simdjson/internal/tape_ref-inl.h" */ /* begin file simdjson/internal/tape_ref-inl.h */ #ifndef SIMDJSON_TAPE_REF_INL_H @@ -6716,6 +7062,13 @@ inline simdjson_result simdjson_result::at_pointer(std if (error()) { return error(); } return first.at_pointer(json_pointer); } + + inline simdjson_result simdjson_result::at_path(std::string_view json_path) const noexcept { + auto json_pointer = json_path_to_pointer_conversion(json_path); + if (json_pointer == "-1") { return INVALID_JSON_POINTER; } + return at_pointer(json_pointer); + } + inline simdjson_result simdjson_result::at(size_t index) const noexcept { if (error()) { return error(); } return first.at(index); @@ -6785,6 +7138,12 @@ inline simdjson_result array::at_pointer(std::string_view json_pointer) return child; } +inline simdjson_result array::at_path(std::string_view json_path) const noexcept { + auto json_pointer = json_path_to_pointer_conversion(json_path); + if (json_pointer == "-1") { return INVALID_JSON_POINTER; } + return at_pointer(json_pointer); +} + inline simdjson_result array::at(size_t index) const noexcept { SIMDJSON_DEVELOPMENT_ASSERT(tape.usable()); // https://github.com/simdjson/simdjson/issues/1914 size_t i=0; @@ -6861,6 +7220,7 @@ inline bool array::iterator::operator>(const array::iterator& other) const noexc /* skipped duplicate #include "simdjson/dom/element-inl.h" */ /* skipped duplicate #include "simdjson/error-inl.h" */ +/* skipped duplicate #include "simdjson/jsonpathutil.h" */ #include @@ -6888,6 +7248,11 @@ inline simdjson_result simdjson_result::at_pointer(st if (error()) { return error(); } return first.at_pointer(json_pointer); } +inline simdjson_result simdjson_result::at_path(std::string_view json_path) const noexcept { + auto json_pointer = json_path_to_pointer_conversion(json_path); + if (json_pointer == "-1") { return INVALID_JSON_POINTER; } + return at_pointer(json_pointer); +} inline simdjson_result simdjson_result::at_key(std::string_view key) const noexcept { if (error()) { return error(); } return first.at_key(key); @@ -6985,6 +7350,12 @@ inline simdjson_result object::at_pointer(std::string_view json_pointer return child; } +inline simdjson_result object::at_path(std::string_view json_path) const noexcept { + auto json_pointer = json_path_to_pointer_conversion(json_path); + if (json_pointer == "-1") { return INVALID_JSON_POINTER; } + return at_pointer(json_pointer); +} + inline simdjson_result object::at_key(std::string_view key) const noexcept { iterator end_field = end(); for (iterator field = begin(); field != end_field; ++field) { @@ -7117,6 +7488,7 @@ static_assert(std::ranges::sized_range #include @@ -7230,6 +7602,11 @@ simdjson_inline simdjson_result simdjson_result::at_ if (error()) { return error(); } return first.at_pointer(json_pointer); } +simdjson_inline simdjson_result simdjson_result::at_path(const std::string_view json_path) const noexcept { + auto json_pointer = json_path_to_pointer_conversion(json_path); + if (json_pointer == "-1") { return INVALID_JSON_POINTER; } + return at_pointer(json_pointer); +} #ifndef SIMDJSON_DISABLE_DEPRECATED_API [[deprecated("For standard compliance, use at_pointer instead, and prefix your pointers with a slash '/', see RFC6901 ")]] simdjson_inline simdjson_result simdjson_result::at(const std::string_view json_pointer) const noexcept { @@ -7520,6 +7897,11 @@ inline simdjson_result element::at_pointer(std::string_view json_pointe } } } +inline simdjson_result element::at_path(std::string_view json_path) const noexcept { + auto json_pointer = json_path_to_pointer_conversion(json_path); + if (json_pointer == "-1") { return INVALID_JSON_POINTER; } + return at_pointer(json_pointer); +} #ifndef SIMDJSON_DISABLE_DEPRECATED_API [[deprecated("For standard compliance, use at_pointer instead, and prefix your pointers with a slash '/', see RFC6901 ")]] inline simdjson_result element::at(std::string_view json_pointer) const noexcept { @@ -9424,7 +9806,6 @@ extern SIMDJSON_DLLIMPORTEXPORT const uint64_t thintable_epi8[256]; #endif // SIMDJSON_INTERNAL_SIMDPRUNE_TABLES_H /* end file simdjson/internal/simdprune_tables.h */ - #endif // SIMDJSON_GENERIC_DEPENDENCIES_H /* end file simdjson/generic/dependencies.h */ @@ -9838,7 +10219,7 @@ SIMDJSON_NO_SANITIZE_UNDEFINED // See issue https://github.com/simdjson/simdjson/issues/1965 SIMDJSON_NO_SANITIZE_MEMORY simdjson_inline int trailing_zeroes(uint64_t input_num) { -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO unsigned long ret; // Search the mask data from least significant bit (LSB) // to the most significant bit (MSB) for a set bit (1). @@ -9854,9 +10235,15 @@ simdjson_inline uint64_t clear_lowest_bit(uint64_t input_num) { return input_num & (input_num-1); } +// We sometimes call leading_zeroes on inputs that are zero, +// but the algorithms do not end up using the returned value. +// Sadly, sanitizers are not smart enough to figure it out. +// Applies only when SIMDJSON_PREFER_REVERSE_BITS is defined and true. +// (See below.) +SIMDJSON_NO_SANITIZE_UNDEFINED /* result might be undefined when input_num is zero */ simdjson_inline int leading_zeroes(uint64_t input_num) { -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO unsigned long leading_zero = 0; // Search the mask data from most significant bit (MSB) // to least significant bit (LSB) for a set bit (1). @@ -9909,7 +10296,7 @@ simdjson_inline uint64_t zero_leading_bit(uint64_t rev_bits, int leading_zeroes) #endif simdjson_inline bool add_overflow(uint64_t value1, uint64_t value2, uint64_t *result) { -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO *result = value1 + value2; return *result < value1; #else @@ -10026,7 +10413,13 @@ simdjson_inline internal::value128 full_multiplication(uint64_t value1, uint64_t } // namespace arm64 } // namespace simdjson +#ifndef SIMDJSON_SWAR_NUMBER_PARSING +#if SIMDJSON_IS_BIG_ENDIAN +#define SIMDJSON_SWAR_NUMBER_PARSING 0 +#else #define SIMDJSON_SWAR_NUMBER_PARSING 1 +#endif +#endif #endif // SIMDJSON_ARM64_NUMBERPARSING_DEFS_H /* end file simdjson/arm64/numberparsing_defs.h */ @@ -10046,7 +10439,7 @@ namespace arm64 { namespace { namespace simd { -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO namespace { // Start of private section with Visual Studio workaround @@ -10155,7 +10548,7 @@ namespace { // We return uint32_t instead of uint16_t because that seems to be more efficient for most // purposes (cutting it down to uint16_t costs performance in some compilers). simdjson_inline uint32_t to_bitmask() const { -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO const uint8x16_t bit_mask = simdjson_make_uint8x16_t(0x01, 0x02, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80, 0x01, 0x02, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80); #else @@ -10186,7 +10579,7 @@ namespace { // Splat constructor simdjson_inline simd8(uint8_t _value) : simd8(splat(_value)) {} // Member-by-member initialization -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO simdjson_inline simd8( uint8_t v0, uint8_t v1, uint8_t v2, uint8_t v3, uint8_t v4, uint8_t v5, uint8_t v6, uint8_t v7, uint8_t v8, uint8_t v9, uint8_t v10, uint8_t v11, uint8_t v12, uint8_t v13, uint8_t v14, uint8_t v15 @@ -10280,7 +10673,7 @@ namespace { uint64x2_t shufmask64 = {thintable_epi8[mask1], thintable_epi8[mask2]}; uint8x16_t shufmask = vreinterpretq_u8_u64(shufmask64); // we increment by 0x08 the second half of the mask -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO uint8x16_t inc = simdjson_make_uint8x16_t(0, 0, 0, 0, 0, 0, 0, 0, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08); #else uint8x16_t inc = {0, 0, 0, 0, 0, 0, 0, 0, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08}; @@ -10310,7 +10703,7 @@ namespace { uint8x8_t compactmask1 = vcreate_u8(thintable_epi8[mask1]); uint8x8_t compactmask2 = vcreate_u8(thintable_epi8[mask2]); // we increment by 0x08 the second half of the mask -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO uint8x8_t inc = simdjson_make_uint8x8_t(0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08); #else uint8x8_t inc = {0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08}; @@ -10362,7 +10755,7 @@ namespace { // Array constructor simdjson_inline simd8(const int8_t* values) : simd8(load(values)) {} // Member-by-member initialization -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO simdjson_inline simd8( int8_t v0, int8_t v1, int8_t v2, int8_t v3, int8_t v4, int8_t v5, int8_t v6, int8_t v7, int8_t v8, int8_t v9, int8_t v10, int8_t v11, int8_t v12, int8_t v13, int8_t v14, int8_t v15 @@ -10483,7 +10876,7 @@ namespace { } simdjson_inline uint64_t to_bitmask() const { -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO const uint8x16_t bit_mask = simdjson_make_uint8x16_t( 0x01, 0x02, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80, 0x01, 0x02, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80 @@ -11643,7 +12036,6 @@ simdjson_unused simdjson_inline simdjson_result get_number_type(con // Our objective is accurate parsing (ULP of 0) at high speed. template simdjson_inline error_code parse_number(const uint8_t *const src, W &writer) { - // // Check for minus sign // @@ -12687,7 +13079,13 @@ simdjson_inline internal::value128 full_multiplication(uint64_t value1, uint64_t } // namespace fallback } // namespace simdjson +#ifndef SIMDJSON_SWAR_NUMBER_PARSING +#if SIMDJSON_IS_BIG_ENDIAN +#define SIMDJSON_SWAR_NUMBER_PARSING 0 +#else #define SIMDJSON_SWAR_NUMBER_PARSING 1 +#endif +#endif #endif // SIMDJSON_FALLBACK_NUMBERPARSING_DEFS_H /* end file simdjson/fallback/numberparsing_defs.h */ @@ -13746,7 +14144,6 @@ simdjson_unused simdjson_inline simdjson_result get_number_type(con // Our objective is accurate parsing (ULP of 0) at high speed. template simdjson_inline error_code parse_number(const uint8_t *const src, W &writer) { - // // Check for minus sign // @@ -14686,8 +15083,14 @@ static_assert(sizeof(__m256i) <= simdjson::SIMDJSON_PADDING, "insufficient paddi /* end file simdjson/haswell/intrinsics.h */ #if !SIMDJSON_CAN_ALWAYS_RUN_HASWELL +// We enable bmi2 only if LLVM/clang is used, because GCC may not +// make good use of it. See https://github.com/simdjson/simdjson/pull/2243 +#if defined(__clang__) +SIMDJSON_TARGET_REGION("avx2,bmi,bmi2,pclmul,lzcnt,popcnt") +#else SIMDJSON_TARGET_REGION("avx2,bmi,pclmul,lzcnt,popcnt") #endif +#endif /* including simdjson/haswell/bitmanipulation.h: #include "simdjson/haswell/bitmanipulation.h" */ /* begin file simdjson/haswell/bitmanipulation.h */ @@ -16341,7 +16744,6 @@ simdjson_unused simdjson_inline simdjson_result get_number_type(con // Our objective is accurate parsing (ULP of 0) at high speed. template simdjson_inline error_code parse_number(const uint8_t *const src, W &writer) { - // // Check for minus sign // @@ -17546,14 +17948,18 @@ namespace simd { // Copies to 'output" all bytes corresponding to a 0 in the mask (interpreted as a bitset). // Passing a 0 value for mask would be equivalent to writing out every byte to output. - // Only the first 32 - count_ones(mask) bytes of the result are significant but 32 bytes + // Only the first 64 - count_ones(mask) bytes of the result are significant but 64 bytes // get written. // Design consideration: it seems like a function with the // signature simd8 compress(uint32_t mask) would be // sensible, but the AVX ISA makes this kind of approach difficult. template simdjson_inline void compress(uint64_t mask, L * output) const { - _mm512_mask_compressstoreu_epi8 (output,~mask,*this); + // we deliberately avoid _mm512_mask_compressstoreu_epi8 for portability + // (AMD Zen4 has terrible performance with it, it is effectively broken) + // _mm512_mask_compressstoreu_epi8 (output,~mask,*this); + __m512i compressed = _mm512_maskz_compress_epi8(~mask, *this); + _mm512_storeu_si512(output, compressed); // could use a mask } template @@ -18935,7 +19341,6 @@ simdjson_unused simdjson_inline simdjson_result get_number_type(con // Our objective is accurate parsing (ULP of 0) at high speed. template simdjson_inline error_code parse_number(const uint8_t *const src, W &writer) { - // // Check for minus sign // @@ -20040,7 +20445,13 @@ simdjson_inline internal::value128 full_multiplication(uint64_t value1, uint64_t } // namespace ppc64 } // namespace simdjson +#ifndef SIMDJSON_SWAR_NUMBER_PARSING +#if SIMDJSON_IS_BIG_ENDIAN +#define SIMDJSON_SWAR_NUMBER_PARSING 0 +#else #define SIMDJSON_SWAR_NUMBER_PARSING 1 +#endif +#endif #endif // SIMDJSON_PPC64_NUMBERPARSING_DEFS_H /* end file simdjson/ppc64/numberparsing_defs.h */ @@ -21644,7 +22055,6 @@ simdjson_unused simdjson_inline simdjson_result get_number_type(con // Our objective is accurate parsing (ULP of 0) at high speed. template simdjson_inline error_code parse_number(const uint8_t *const src, W &writer) { - // // Check for minus sign // @@ -24676,7 +25086,6 @@ simdjson_unused simdjson_inline simdjson_result get_number_type(con // Our objective is accurate parsing (ULP of 0) at high speed. template simdjson_inline error_code parse_number(const uint8_t *const src, W &writer) { - // // Check for minus sign // @@ -25705,7 +26114,13 @@ simdjson_inline internal::value128 full_multiplication(uint64_t value1, uint64_t } // namespace lsx } // namespace simdjson +#ifndef SIMDJSON_SWAR_NUMBER_PARSING +#if SIMDJSON_IS_BIG_ENDIAN +#define SIMDJSON_SWAR_NUMBER_PARSING 0 +#else #define SIMDJSON_SWAR_NUMBER_PARSING 1 +#endif +#endif #endif // SIMDJSON_LSX_NUMBERPARSING_DEFS_H /* end file simdjson/lsx/numberparsing_defs.h */ @@ -27179,7 +27594,6 @@ simdjson_unused simdjson_inline simdjson_result get_number_type(con // Our objective is accurate parsing (ULP of 0) at high speed. template simdjson_inline error_code parse_number(const uint8_t *const src, W &writer) { - // // Check for minus sign // @@ -28205,7 +28619,13 @@ simdjson_inline internal::value128 full_multiplication(uint64_t value1, uint64_t } // namespace lasx } // namespace simdjson +#ifndef SIMDJSON_SWAR_NUMBER_PARSING +#if SIMDJSON_IS_BIG_ENDIAN +#define SIMDJSON_SWAR_NUMBER_PARSING 0 +#else #define SIMDJSON_SWAR_NUMBER_PARSING 1 +#endif +#endif #endif // SIMDJSON_LASX_NUMBERPARSING_DEFS_H /* end file simdjson/lasx/numberparsing_defs.h */ @@ -29695,7 +30115,6 @@ simdjson_unused simdjson_inline simdjson_result get_number_type(con // Our objective is accurate parsing (ULP of 0) at high speed. template simdjson_inline error_code parse_number(const uint8_t *const src, W &writer) { - // // Check for minus sign // @@ -30566,6 +30985,7 @@ simdjson_inline implementation_simdjson_result_base::implementation_simdjson_ /* skipped duplicate #include "simdjson/padded_string.h" */ /* skipped duplicate #include "simdjson/padded_string_view.h" */ /* skipped duplicate #include "simdjson/internal/dom_parser_implementation.h" */ +/* skipped duplicate #include "simdjson/jsonpathutil.h" */ #endif // SIMDJSON_GENERIC_ONDEMAND_DEPENDENCIES_H /* end file simdjson/generic/ondemand/dependencies.h */ @@ -30652,7 +31072,7 @@ SIMDJSON_NO_SANITIZE_UNDEFINED // See issue https://github.com/simdjson/simdjson/issues/1965 SIMDJSON_NO_SANITIZE_MEMORY simdjson_inline int trailing_zeroes(uint64_t input_num) { -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO unsigned long ret; // Search the mask data from least significant bit (LSB) // to the most significant bit (MSB) for a set bit (1). @@ -30668,9 +31088,15 @@ simdjson_inline uint64_t clear_lowest_bit(uint64_t input_num) { return input_num & (input_num-1); } +// We sometimes call leading_zeroes on inputs that are zero, +// but the algorithms do not end up using the returned value. +// Sadly, sanitizers are not smart enough to figure it out. +// Applies only when SIMDJSON_PREFER_REVERSE_BITS is defined and true. +// (See below.) +SIMDJSON_NO_SANITIZE_UNDEFINED /* result might be undefined when input_num is zero */ simdjson_inline int leading_zeroes(uint64_t input_num) { -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO unsigned long leading_zero = 0; // Search the mask data from most significant bit (MSB) // to least significant bit (LSB) for a set bit (1). @@ -30723,7 +31149,7 @@ simdjson_inline uint64_t zero_leading_bit(uint64_t rev_bits, int leading_zeroes) #endif simdjson_inline bool add_overflow(uint64_t value1, uint64_t value2, uint64_t *result) { -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO *result = value1 + value2; return *result < value1; #else @@ -30840,7 +31266,13 @@ simdjson_inline internal::value128 full_multiplication(uint64_t value1, uint64_t } // namespace arm64 } // namespace simdjson +#ifndef SIMDJSON_SWAR_NUMBER_PARSING +#if SIMDJSON_IS_BIG_ENDIAN +#define SIMDJSON_SWAR_NUMBER_PARSING 0 +#else #define SIMDJSON_SWAR_NUMBER_PARSING 1 +#endif +#endif #endif // SIMDJSON_ARM64_NUMBERPARSING_DEFS_H /* end file simdjson/arm64/numberparsing_defs.h */ @@ -30860,7 +31292,7 @@ namespace arm64 { namespace { namespace simd { -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO namespace { // Start of private section with Visual Studio workaround @@ -30969,7 +31401,7 @@ namespace { // We return uint32_t instead of uint16_t because that seems to be more efficient for most // purposes (cutting it down to uint16_t costs performance in some compilers). simdjson_inline uint32_t to_bitmask() const { -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO const uint8x16_t bit_mask = simdjson_make_uint8x16_t(0x01, 0x02, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80, 0x01, 0x02, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80); #else @@ -31000,7 +31432,7 @@ namespace { // Splat constructor simdjson_inline simd8(uint8_t _value) : simd8(splat(_value)) {} // Member-by-member initialization -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO simdjson_inline simd8( uint8_t v0, uint8_t v1, uint8_t v2, uint8_t v3, uint8_t v4, uint8_t v5, uint8_t v6, uint8_t v7, uint8_t v8, uint8_t v9, uint8_t v10, uint8_t v11, uint8_t v12, uint8_t v13, uint8_t v14, uint8_t v15 @@ -31094,7 +31526,7 @@ namespace { uint64x2_t shufmask64 = {thintable_epi8[mask1], thintable_epi8[mask2]}; uint8x16_t shufmask = vreinterpretq_u8_u64(shufmask64); // we increment by 0x08 the second half of the mask -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO uint8x16_t inc = simdjson_make_uint8x16_t(0, 0, 0, 0, 0, 0, 0, 0, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08); #else uint8x16_t inc = {0, 0, 0, 0, 0, 0, 0, 0, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08}; @@ -31124,7 +31556,7 @@ namespace { uint8x8_t compactmask1 = vcreate_u8(thintable_epi8[mask1]); uint8x8_t compactmask2 = vcreate_u8(thintable_epi8[mask2]); // we increment by 0x08 the second half of the mask -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO uint8x8_t inc = simdjson_make_uint8x8_t(0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08); #else uint8x8_t inc = {0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08}; @@ -31176,7 +31608,7 @@ namespace { // Array constructor simdjson_inline simd8(const int8_t* values) : simd8(load(values)) {} // Member-by-member initialization -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO simdjson_inline simd8( int8_t v0, int8_t v1, int8_t v2, int8_t v3, int8_t v4, int8_t v5, int8_t v6, int8_t v7, int8_t v8, int8_t v9, int8_t v10, int8_t v11, int8_t v12, int8_t v13, int8_t v14, int8_t v15 @@ -31297,7 +31729,7 @@ namespace { } simdjson_inline uint64_t to_bitmask() const { -#ifdef SIMDJSON_REGULAR_VISUAL_STUDIO +#if SIMDJSON_REGULAR_VISUAL_STUDIO const uint8x16_t bit_mask = simdjson_make_uint8x16_t( 0x01, 0x02, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80, 0x01, 0x02, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80 @@ -31460,6 +31892,132 @@ class value_iterator; #endif // SIMDJSON_GENERIC_ONDEMAND_BASE_H /* end file simdjson/generic/ondemand/base.h for arm64 */ +/* including simdjson/generic/ondemand/deserialize.h for arm64: #include "simdjson/generic/ondemand/deserialize.h" */ +/* begin file simdjson/generic/ondemand/deserialize.h for arm64 */ +#if SIMDJSON_SUPPORTS_DESERIALIZATION + +#ifndef SIMDJSON_ONDEMAND_DESERIALIZE_H +/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ +/* amalgamation skipped (editor-only): #define SIMDJSON_ONDEMAND_DESERIALIZE_H */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array.h" */ +/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ + +#include +namespace simdjson { + +namespace tag_invoke_fn_ns { +void tag_invoke(); + +struct tag_invoke_fn { + template + requires requires(Tag tag, Args &&...args) { + tag_invoke(std::forward(tag), std::forward(args)...); + } + constexpr auto operator()(Tag tag, Args &&...args) const + noexcept(noexcept(tag_invoke(std::forward(tag), + std::forward(args)...))) + -> decltype(tag_invoke(std::forward(tag), + std::forward(args)...)) { + return tag_invoke(std::forward(tag), std::forward(args)...); + } +}; +} // namespace tag_invoke_fn_ns + +inline namespace tag_invoke_ns { +inline constexpr tag_invoke_fn_ns::tag_invoke_fn tag_invoke = {}; +} // namespace tag_invoke_ns + +template +concept tag_invocable = requires(Tag tag, Args... args) { + tag_invoke(std::forward(tag), std::forward(args)...); +}; + +template +concept nothrow_tag_invocable = + tag_invocable && requires(Tag tag, Args... args) { + { + tag_invoke(std::forward(tag), std::forward(args)...) + } noexcept; + }; + +template +using tag_invoke_result = + std::invoke_result; + +template +using tag_invoke_result_t = + std::invoke_result_t; + +template using tag_t = std::decay_t; + + +struct deserialize_tag; + +/// These types are deserializable in a built-in way +template struct is_builtin_deserializable : std::false_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; + +template +concept is_builtin_deserializable_v = is_builtin_deserializable::value; + +template +concept custom_deserializable = tag_invocable; + +template +concept deserializable = custom_deserializable || is_builtin_deserializable_v; + +template +concept nothrow_custom_deserializable = nothrow_tag_invocable; + +// built-in types are noexcept and if an error happens, the value simply gets ignored and the error is returned. +template +concept nothrow_deserializable = nothrow_custom_deserializable || is_builtin_deserializable_v; + +/// Deserialize Tag +inline constexpr struct deserialize_tag { + using value_type = arm64::ondemand::value; + using document_type = arm64::ondemand::document; + using document_reference_type = arm64::ondemand::document_reference; + + // Customization Point for value + template + requires custom_deserializable + [[nodiscard]] constexpr /* error_code */ auto operator()(value_type &object, T& output) const noexcept(nothrow_custom_deserializable) { + return tag_invoke(*this, object, output); + } + + // Customization Point for document + template + requires custom_deserializable + [[nodiscard]] constexpr /* error_code */ auto operator()(document_type &object, T& output) const noexcept(nothrow_custom_deserializable) { + return tag_invoke(*this, object, output); + } + + // Customization Point for document reference + template + requires custom_deserializable + [[nodiscard]] constexpr /* error_code */ auto operator()(document_reference_type &object, T& output) const noexcept(nothrow_custom_deserializable) { + return tag_invoke(*this, object, output); + } + + +} deserialize{}; + +} // namespace simdjson + +#endif // SIMDJSON_ONDEMAND_DESERIALIZE_H +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION + +/* end file simdjson/generic/ondemand/deserialize.h for arm64 */ /* including simdjson/generic/ondemand/value_iterator.h for arm64: #include "simdjson/generic/ondemand/value_iterator.h" */ /* begin file simdjson/generic/ondemand/value_iterator.h for arm64 */ #ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_H @@ -31964,12 +32522,15 @@ struct simdjson_result : public arm64::implemen /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/implementation_simdjson_result_base.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/deserialize.h" */ /* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ +#include + namespace simdjson { + namespace arm64 { namespace ondemand { - /** * An ephemeral JSON value returned during iteration. It is only valid for as long as you do * not access more data in the JSON document. @@ -31994,16 +32555,21 @@ class value { * @returns A value of the given type, parsed from the JSON. * @returns INCORRECT_TYPE If the JSON value is not the given type. */ - template simdjson_inline simdjson_result get() noexcept { - // Unless the simdjson library or the user provides an inline implementation, calling this method should - // immediately fail. - static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " - "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " - "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " - " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." - " You may also add support for custom types, see our documentation."); + template + simdjson_inline simdjson_result get() +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(std::is_default_constructible::value, "The specified type is not default constructible."); + T out{}; + SIMDJSON_TRY(get(out)); + return out; } + /** * Get this value as the given type. * @@ -32013,7 +32579,32 @@ class value { * @returns INCORRECT_TYPE If the JSON value is not an object. * @returns SUCCESS If the parse succeeded and the out parameter was set to the value. */ - template simdjson_inline error_code get(T &out) noexcept; + template + simdjson_inline error_code get(T &out) +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { +#if SIMDJSON_SUPPORTS_DESERIALIZATION + if constexpr (custom_deserializable) { + return deserialize(*this, out); + } else { +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION + // Unless the simdjson library or the user provides an inline implementation, calling this method should + // immediately fail. + static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " + "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " + "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " + " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." + " You may also add support for custom types, see our documentation."); + static_cast(out); // to get rid of unused errors + return UNINITIALIZED; +#if SIMDJSON_SUPPORTS_DESERIALIZATION + } +#endif + } /** * Cast this JSON value to an array. @@ -32089,6 +32680,17 @@ class value { * Important: a value should be consumed once. Calling get_string() twice on the same value * is an error. * + * In some instances, you may want to allow replacement of invalid Unicode sequences. + * You may do so by passing the allow_replacement parameter as true. In the following + * example, the string "431924697b\udff0L\u0001Y" is not valid Unicode. By passing true + * to get_string, we allow the replacement of the invalid Unicode sequences with the Unicode + * replacement character (U+FFFD). + * + * simdjson::ondemand::parser parser; + * auto json = R"({"deviceId":"431924697b\udff0L\u0001Y"})"_padded; + * simdjson::ondemand::document doc = parser.iterate(json); + * auto view = doc["deviceId"].get_string(true); + * * @returns An UTF-8 string. The string is stored in the parser and will be invalidated the next * time it parses a document or when it is destroyed. * @returns INCORRECT_TYPE if the JSON value is not a string. @@ -32340,6 +32942,7 @@ class value { simdjson_inline simdjson_result operator[](std::string_view key) noexcept; /** @overload simdjson_inline simdjson_result find_field_unordered(std::string_view key) noexcept; */ simdjson_inline simdjson_result operator[](const char *key) noexcept; + simdjson_result operator[](int) noexcept = delete; /** * Get the type of this JSON value. It does not validate or consume the value. @@ -32707,6 +33310,7 @@ struct simdjson_result : public arm64::implementation_si simdjson_inline simdjson_result operator[](std::string_view key) noexcept; /** @overload simdjson_inline simdjson_result find_field_unordered(std::string_view key) noexcept; */ simdjson_inline simdjson_result operator[](const char *key) noexcept; + simdjson_result operator[](int) noexcept = delete; /** * Get the type of this JSON value. @@ -33762,6 +34366,22 @@ class parser { * using a sanitizer that verifies that no uninitialized byte is read, then you should initialize the * SIMDJSON_PADDING bytes to avoid runtime warnings. * + * ### std::string references + * + * If you pass a mutable std::string reference (std::string&), the parser will seek to extend + * its capacity to SIMDJSON_PADDING bytes beyond the end of the string. + * + * Whenever you pass an std::string reference, the parser will access the bytes beyond the end of + * the string but before the end of the allocated memory (std::string::capacity()). + * If you are using a sanitizer that checks for reading uninitialized bytes or std::string's + * container-overflow checks, you may encounter sanitizer warnings. + * You can safely ignore these warnings. Or you can call simdjson::pad(std::string&) to pad the + * string with SIMDJSON_PADDING spaces: this function returns a simdjson::padding_string_view + * which can be be passed to the parser's iterate function: + * + * std::string json = R"({ "foo": 1 } { "foo": 2 } { "foo": 3 } )"; + * document doc = parser.iterate(simdjson::pad(json)); + * * @param json The JSON to parse. * @param len The length of the JSON. * @param capacity The number of bytes allocated in the JSON (must be at least len+SIMDJSON_PADDING). @@ -33956,8 +34576,12 @@ class parser { * behavior of the parser for future operations. */ bool threaded{true}; + #else + /** + * When SIMDJSON_THREADS_ENABLED is not defined, the parser instance cannot use threads. + */ + bool threaded{false}; #endif - /** * Unescape this JSON string, replacing \\ with \, \n with newline, etc. to a user-provided buffer. * The result must be valid UTF-8. @@ -34099,7 +34723,8 @@ class array { * calling this function, if successful, the array is 'rewinded' at its * beginning as if it had never been accessed. If the JSON is malformed (e.g., * there is a missing comma), then an error is returned and it is no longer - * safe to continue. + * safe to continue. Note that count_elements() does not validate the JSON values, + * only the structure of the array. * * To check that an array is empty, it is more performant to use * the is_empty() method. @@ -34377,8 +35002,11 @@ struct simdjson_result : public arm64::implemen /* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_H */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/deserialize.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ /* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ + namespace simdjson { namespace arm64 { namespace ondemand { @@ -34551,24 +35179,39 @@ class document { * @returns A value of the given type, parsed from the JSON. * @returns INCORRECT_TYPE If the JSON value is not the given type. */ - template simdjson_inline simdjson_result get() & noexcept { - // Unless the simdjson library or the user provides an inline implementation, calling this method should - // immediately fail. - static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " - "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " - "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " - " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." - " You may also add support for custom types, see our documentation."); - } - /** @overload template simdjson_result get() & noexcept */ - template simdjson_deprecated simdjson_inline simdjson_result get() && noexcept { - // Unless the simdjson library or the user provides an inline implementation, calling this method should - // immediately fail. - static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " - "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " - "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " - " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." - " You may also add support for custom types, see our documentation."); + template + simdjson_inline simdjson_result get() & +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(std::is_default_constructible::value, "Cannot initialize the specified type."); + T out{}; + SIMDJSON_TRY(get(out)); + return out; + } + /** + * @overload template simdjson_result get() & noexcept + * + * We disallow the use tag_invoke CPO on a moved document; it may create UB + * if user uses `ondemand::array` or `ondemand::object` in their custom type. + * + * The member function is still remains specialize-able for compatibility + * reasons, but we completely disallow its use when a tag_invoke customization + * is provided. + */ + template + simdjson_inline simdjson_result get() && +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(!std::is_same::value && !std::is_same::value, "You should never hold either an ondemand::array or ondemand::object without a corresponding ondemand::document being alive; that would be Undefined Behaviour."); + return static_cast(*this).get(); } /** @@ -34582,7 +35225,32 @@ class document { * @returns INCORRECT_TYPE If the JSON value is not an object. * @returns SUCCESS If the parse succeeded and the out parameter was set to the value. */ - template simdjson_inline error_code get(T &out) & noexcept; + template + simdjson_inline error_code get(T &out) & +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { +#if SIMDJSON_SUPPORTS_DESERIALIZATION + if constexpr (custom_deserializable) { + return deserialize(*this, out); + } else { +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION + // Unless the simdjson library or the user provides an inline implementation, calling this method should + // immediately fail. + static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " + "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " + "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " + " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." + " You may also add support for custom types, see our documentation."); + static_cast(out); // to get rid of unused errors + return UNINITIALIZED; +#if SIMDJSON_SUPPORTS_DESERIALIZATION + } +#endif + } /** @overload template error_code get(T &out) & noexcept */ template simdjson_deprecated simdjson_inline error_code get(T &out) && noexcept; @@ -34684,7 +35352,8 @@ class document { * calling this function, if successful, the array is 'rewinded' at its * beginning as if it had never been accessed. If the JSON is malformed (e.g., * there is a missing comma), then an error is returned and it is no longer - * safe to continue. + * safe to continue. Note that count_elements() does not validate the JSON values, + * only the structure of the array. */ simdjson_inline simdjson_result count_elements() & noexcept; /** @@ -34796,6 +35465,7 @@ class document { simdjson_inline simdjson_result operator[](std::string_view key) & noexcept; /** @overload simdjson_inline simdjson_result find_field_unordered(std::string_view key) & noexcept; */ simdjson_inline simdjson_result operator[](const char *key) & noexcept; + simdjson_result operator[](int) & noexcept = delete; /** * Get the type of this JSON value. It does not validate or consume the value. @@ -35064,6 +35734,11 @@ class document { /** * A document_reference is a thin wrapper around a document reference instance. + * The document_reference instances are used primarily/solely for streams of JSON + * documents. They differ from document instances when parsing a scalar value + * (a document that is not an array or an object). In the case of a document, + * we expect the document to be fully consumed. In the case of a document_reference, + * we allow trailing content. */ class document_reference { public: @@ -35089,7 +35764,70 @@ class document_reference { simdjson_inline simdjson_result get_value() noexcept; simdjson_inline simdjson_result is_null() noexcept; - template simdjson_inline simdjson_result get() & noexcept; + template + simdjson_inline simdjson_result get() & +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(std::is_default_constructible::value, "Cannot initialize the specified type."); + T out{}; + SIMDJSON_TRY(get(out)); + return out; + } + template + simdjson_inline simdjson_result get() && +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(!std::is_same::value && !std::is_same::value, "You should never hold either an ondemand::array or ondemand::object without a corresponding ondemand::document_reference being alive; that would be Undefined Behaviour."); + return static_cast(*this).get(); + } + + /** + * Get this value as the given type. + * + * Supported types: object, array, raw_json_string, string_view, uint64_t, int64_t, double, bool, value + * + * Be mindful that the document instance must remain in scope while you are accessing object, array and value instances. + * + * @param out This is set to a value of the given type, parsed from the JSON. If there is an error, this may not be initialized. + * @returns INCORRECT_TYPE If the JSON value is not an object. + * @returns SUCCESS If the parse succeeded and the out parameter was set to the value. + */ + template + simdjson_inline error_code get(T &out) & +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { +#if SIMDJSON_SUPPORTS_DESERIALIZATION + if constexpr (custom_deserializable) { + return deserialize(*this, out); + } else { +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION + // Unless the simdjson library or the user provides an inline implementation, calling this method should + // immediately fail. + static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " + "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " + "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " + " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." + " You may also add support for custom types, see our documentation."); + static_cast(out); // to get rid of unused errors + return UNINITIALIZED; +#if SIMDJSON_SUPPORTS_DESERIALIZATION + } +#endif + } + /** @overload template error_code get(T &out) & noexcept */ + template simdjson_inline error_code get(T &out) && noexcept; simdjson_inline simdjson_result raw_json() noexcept; simdjson_inline operator document&() const noexcept; #if SIMDJSON_EXCEPTIONS @@ -35114,6 +35852,7 @@ class document_reference { simdjson_inline simdjson_result find_field(const char *key) & noexcept; simdjson_inline simdjson_result operator[](std::string_view key) & noexcept; simdjson_inline simdjson_result operator[](const char *key) & noexcept; + simdjson_result operator[](int) & noexcept = delete; simdjson_inline simdjson_result find_field_unordered(std::string_view key) & noexcept; simdjson_inline simdjson_result find_field_unordered(const char *key) & noexcept; @@ -35192,6 +35931,7 @@ struct simdjson_result : public arm64::implementation simdjson_inline simdjson_result find_field(const char *key) & noexcept; simdjson_inline simdjson_result operator[](std::string_view key) & noexcept; simdjson_inline simdjson_result operator[](const char *key) & noexcept; + simdjson_result operator[](int) & noexcept = delete; simdjson_inline simdjson_result find_field_unordered(std::string_view key) & noexcept; simdjson_inline simdjson_result find_field_unordered(const char *key) & noexcept; simdjson_inline simdjson_result type() noexcept; @@ -35241,8 +35981,14 @@ struct simdjson_result : public arm64::impl simdjson_inline simdjson_result get_bool() noexcept; simdjson_inline simdjson_result get_value() noexcept; simdjson_inline simdjson_result is_null() noexcept; + + template simdjson_inline simdjson_result get() & noexcept; + template simdjson_inline simdjson_result get() && noexcept; + + template simdjson_inline error_code get(T &out) & noexcept; + template simdjson_inline error_code get(T &out) && noexcept; #if SIMDJSON_EXCEPTIONS - template ::value == false>::type> + template explicit simdjson_inline operator T() noexcept(false); simdjson_inline operator arm64::ondemand::array() & noexcept(false); simdjson_inline operator arm64::ondemand::object() & noexcept(false); @@ -35263,6 +36009,7 @@ struct simdjson_result : public arm64::impl simdjson_inline simdjson_result find_field(const char *key) & noexcept; simdjson_inline simdjson_result operator[](std::string_view key) & noexcept; simdjson_inline simdjson_result operator[](const char *key) & noexcept; + simdjson_result operator[](int) & noexcept = delete; simdjson_inline simdjson_result find_field_unordered(std::string_view key) & noexcept; simdjson_inline simdjson_result find_field_unordered(const char *key) & noexcept; simdjson_inline simdjson_result type() noexcept; @@ -36193,6 +36940,177 @@ inline std::ostream& operator<<(std::ostream& out, simdjson::simdjson_result +#include + +namespace simdjson { +template +constexpr bool require_custom_serialization = false; + +////////////////////////////// +// Number deserialization +////////////////////////////// + +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, auto &val, T &out) noexcept { + using limits = std::numeric_limits; + + uint64_t x; + SIMDJSON_TRY(val.get_uint64().get(x)); + if (x > (limits::max)()) { + return NUMBER_OUT_OF_RANGE; + } + out = static_cast(x); + return SUCCESS; +} + +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, auto &val, T &out) noexcept { + double x; + SIMDJSON_TRY(val.get_double().get(x)); + out = static_cast(x); + return SUCCESS; +} + +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, auto &val, T &out) noexcept { + using limits = std::numeric_limits; + + int64_t x; + SIMDJSON_TRY(val.get_int64().get(x)); + if (x > (limits::max)() || x < (limits::min)()) { + return NUMBER_OUT_OF_RANGE; + } + out = static_cast(x); + return SUCCESS; +} + +/** + * STL containers have several constructors including one that takes a single + * size argument. Thus, some compilers (Visual Studio) will not be able to + * disambiguate between the size and container constructor. Users should + * explicitly specify the type of the container as needed: e.g., + * doc.get>(). + */ +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, ValT &val, T &out) noexcept(false) { + using value_type = typename std::remove_cvref_t::value_type; + static_assert( + deserializable, + "The specified type inside the container must itself be deserializable"); + static_assert( + std::is_default_constructible_v, + "The specified type inside the container must default constructible."); + + arm64::ondemand::array arr; + SIMDJSON_TRY(val.get_array().get(arr)); + for (auto v : arr) { + if constexpr (concepts::returns_reference) { + if (auto const err = v.get().get(concepts::emplace_one(out)); + err) { + // If an error occurs, the empty element that we just inserted gets + // removed. We're not using a temp variable because if T is a heavy + // type, we want the valid path to be the fast path and the slow path be + // the path that has errors in it. + if constexpr (requires { out.pop_back(); }) { + static_cast(out.pop_back()); + } + return err; + } + } else { + value_type temp; + if (auto const err = v.get().get(temp); err) { + return err; + } + concepts::emplace_one(out, std::move(temp)); + } + } + return SUCCESS; +} + + + +/** + * This CPO (Customization Point Object) will help deserialize into + * smart pointers. + * + * If constructing T is nothrow, this conversion should be nothrow as well since + * we return MEMALLOC if we're not able to allocate memory instead of throwing + * the error message. + * + * @tparam T The type inside the smart pointer + * @tparam ValT document/value type + * @param val document/value + * @param out a reference to the smart pointer + * @return status of the conversion + */ +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, ValT &val, T &out) noexcept(nothrow_deserializable::element_type, ValT>) { + using element_type = typename std::remove_cvref_t::element_type; + + // For better error messages, don't use these as constraints on + // the tag_invoke CPO. + static_assert( + deserializable, + "The specified type inside the unique_ptr must itself be deserializable"); + static_assert( + std::is_default_constructible_v, + "The specified type inside the unique_ptr must default constructible."); + + auto ptr = new (std::nothrow) element_type(); + if (ptr == nullptr) { + return MEMALLOC; + } + SIMDJSON_TRY(val.template get(*ptr)); + out.reset(ptr); + return SUCCESS; +} + +/** + * This CPO (Customization Point Object) will help deserialize into optional types. + */ +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, ValT &val, T &out) noexcept(nothrow_deserializable::value_type, ValT>) { + using value_type = typename std::remove_cvref_t::value_type; + + static_assert( + deserializable, + "The specified type inside the unique_ptr must itself be deserializable"); + static_assert( + std::is_default_constructible_v, + "The specified type inside the unique_ptr must default constructible."); + + if (!out) { + out.emplace(); + } + SIMDJSON_TRY(val.template get(out.value())); + return SUCCESS; +} + +} // namespace simdjson + +#endif // SIMDJSON_ONDEMAND_DESERIALIZE_H +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION +/* end file simdjson/generic/ondemand/std_deserialize.h for arm64 */ + // Inline definitions /* including simdjson/generic/ondemand/array-inl.h for arm64: #include "simdjson/generic/ondemand/array-inl.h" */ /* begin file simdjson/generic/ondemand/array-inl.h for arm64 */ @@ -36200,6 +37118,7 @@ inline std::ostream& operator<<(std::ostream& out, simdjson::simdjson_result array::at_pointer(std::string_view json_pointer) n return child; } -inline std::string json_path_to_pointer_conversion(std::string_view json_path) { - if (json_path.empty() || (json_path.front() != '.' && - json_path.front() != '[')) { - return "-1"; // This is just a sentinel value, the caller should check for this and return an error. - } - - std::string result; - // Reserve space to reduce allocations, adjusting for potential increases due - // to escaping. - result.reserve(json_path.size() * 2); - - size_t i = 0; - - while (i < json_path.length()) { - if (json_path[i] == '.') { - result += '/'; - } else if (json_path[i] == '[') { - result += '/'; - ++i; // Move past the '[' - while (i < json_path.length() && json_path[i] != ']') { - if (json_path[i] == '~') { - result += "~0"; - } else if (json_path[i] == '/') { - result += "~1"; - } else { - result += json_path[i]; - } - ++i; - } - if (i == json_path.length() || json_path[i] != ']') { - return "-1"; // Using sentinel value that will be handled as an error by the caller. - } - } else { - if (json_path[i] == '~') { - result += "~0"; - } else if (json_path[i] == '/') { - result += "~1"; - } else { - result += json_path[i]; - } - } - ++i; - } - - return result; -} - inline simdjson_result array::at_path(std::string_view json_path) noexcept { auto json_pointer = json_path_to_pointer_conversion(json_path); if (json_pointer == "-1") { return INVALID_JSON_POINTER; } @@ -36561,313 +37433,276 @@ simdjson_inline simdjson_result &simdjson_resul #endif // SIMDJSON_GENERIC_ONDEMAND_ARRAY_ITERATOR_INL_H /* end file simdjson/generic/ondemand/array_iterator-inl.h for arm64 */ -/* including simdjson/generic/ondemand/document-inl.h for arm64: #include "simdjson/generic/ondemand/document-inl.h" */ -/* begin file simdjson/generic/ondemand/document-inl.h for arm64 */ -#ifndef SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H +/* including simdjson/generic/ondemand/value-inl.h for arm64: #include "simdjson/generic/ondemand/value-inl.h" */ +/* begin file simdjson/generic/ondemand/value-inl.h for arm64 */ +#ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H /* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ -/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H */ +/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array_iterator.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator-inl.h" */ /* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ namespace simdjson { namespace arm64 { namespace ondemand { -simdjson_inline document::document(ondemand::json_iterator &&_iter) noexcept - : iter{std::forward(_iter)} +simdjson_inline value::value(const value_iterator &_iter) noexcept + : iter{_iter} { - logger::log_start_value(iter, "document"); } - -simdjson_inline document document::start(json_iterator &&iter) noexcept { - return document(std::forward(iter)); +simdjson_inline value value::start(const value_iterator &iter) noexcept { + return iter; } - -inline void document::rewind() noexcept { - iter.rewind(); +simdjson_inline value value::resume(const value_iterator &iter) noexcept { + return iter; } -inline std::string document::to_debug_string() noexcept { - return iter.to_string(); +simdjson_inline simdjson_result value::get_array() noexcept { + return array::start(iter); } - -inline simdjson_result document::current_location() const noexcept { - return iter.current_location(); +simdjson_inline simdjson_result value::get_object() noexcept { + return object::start(iter); } - -inline int32_t document::current_depth() const noexcept { - return iter.depth(); +simdjson_inline simdjson_result value::start_or_resume_object() noexcept { + if (iter.at_start()) { + return get_object(); + } else { + return object::resume(iter); + } } -inline bool document::at_end() const noexcept { - return iter.at_end(); +simdjson_inline simdjson_result value::get_raw_json_string() noexcept { + return iter.get_raw_json_string(); } - - -inline bool document::is_alive() noexcept { - return iter.is_alive(); +simdjson_inline simdjson_result value::get_string(bool allow_replacement) noexcept { + return iter.get_string(allow_replacement); } -simdjson_inline value_iterator document::resume_value_iterator() noexcept { - return value_iterator(&iter, 1, iter.root_position()); +template +simdjson_inline error_code value::get_string(string_type& receiver, bool allow_replacement) noexcept { + return iter.get_string(receiver, allow_replacement); } -simdjson_inline value_iterator document::get_root_value_iterator() noexcept { - return resume_value_iterator(); +simdjson_inline simdjson_result value::get_wobbly_string() noexcept { + return iter.get_wobbly_string(); } -simdjson_inline simdjson_result document::start_or_resume_object() noexcept { - if (iter.at_root()) { - return get_object(); - } else { - return object::resume(resume_value_iterator()); - } +simdjson_inline simdjson_result value::get_double() noexcept { + return iter.get_double(); } -simdjson_inline simdjson_result document::get_value() noexcept { - // Make sure we start any arrays or objects before returning, so that start_root_() - // gets called. - - // It is the convention throughout the code that the macro `SIMDJSON_DEVELOPMENT_CHECKS` determines whether - // we check for OUT_OF_ORDER_ITERATION. Proper on::demand code should never trigger this error. -#if SIMDJSON_DEVELOPMENT_CHECKS - if (!iter.at_root()) { return OUT_OF_ORDER_ITERATION; } -#endif - // assert_at_root() serves two purposes: in Debug mode, whether or not - // SIMDJSON_DEVELOPMENT_CHECKS is set or not, it checks that we are at the root of - // the document (this will typically be redundant). In release mode, it generates - // SIMDJSON_ASSUME statements to allow the compiler to make assumptions. - iter.assert_at_root(); - switch (*iter.peek()) { - case '[': { - // The following lines check that the document ends with ]. - auto value_iterator = get_root_value_iterator(); - auto error = value_iterator.check_root_array(); - if(error) { return error; } - return value(get_root_value_iterator()); - } - case '{': { - // The following lines would check that the document ends with }. - auto value_iterator = get_root_value_iterator(); - auto error = value_iterator.check_root_object(); - if(error) { return error; } - return value(get_root_value_iterator()); - } - default: - // Unfortunately, scalar documents are a special case in simdjson and they cannot - // be safely converted to value instances. - return SCALAR_DOCUMENT_AS_VALUE; - } +simdjson_inline simdjson_result value::get_double_in_string() noexcept { + return iter.get_double_in_string(); } -simdjson_inline simdjson_result document::get_array() & noexcept { - auto value = get_root_value_iterator(); - return array::start_root(value); +simdjson_inline simdjson_result value::get_uint64() noexcept { + return iter.get_uint64(); } -simdjson_inline simdjson_result document::get_object() & noexcept { - auto value = get_root_value_iterator(); - return object::start_root(value); +simdjson_inline simdjson_result value::get_uint64_in_string() noexcept { + return iter.get_uint64_in_string(); } - -/** - * We decided that calling 'get_double()' on the JSON document '1.233 blabla' should - * give an error, so we check for trailing content. We want to disallow trailing - * content. - * Thus, in several implementations below, we pass a 'true' parameter value to - * a get_root_value_iterator() method: this indicates that we disallow trailing content. - */ - -simdjson_inline simdjson_result document::get_uint64() noexcept { - return get_root_value_iterator().get_root_uint64(true); +simdjson_inline simdjson_result value::get_int64() noexcept { + return iter.get_int64(); } -simdjson_inline simdjson_result document::get_uint64_in_string() noexcept { - return get_root_value_iterator().get_root_uint64_in_string(true); +simdjson_inline simdjson_result value::get_int64_in_string() noexcept { + return iter.get_int64_in_string(); } -simdjson_inline simdjson_result document::get_int64() noexcept { - return get_root_value_iterator().get_root_int64(true); +simdjson_inline simdjson_result value::get_bool() noexcept { + return iter.get_bool(); } -simdjson_inline simdjson_result document::get_int64_in_string() noexcept { - return get_root_value_iterator().get_root_int64_in_string(true); +simdjson_inline simdjson_result value::is_null() noexcept { + return iter.is_null(); } -simdjson_inline simdjson_result document::get_double() noexcept { - return get_root_value_iterator().get_root_double(true); + +template<> simdjson_inline simdjson_result value::get() noexcept { return get_array(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_object(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_raw_json_string(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_string(false); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_number(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_double(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_uint64(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_int64(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_bool(); } + + +template<> simdjson_inline error_code value::get(array& out) noexcept { return get_array().get(out); } +template<> simdjson_inline error_code value::get(object& out) noexcept { return get_object().get(out); } +template<> simdjson_inline error_code value::get(raw_json_string& out) noexcept { return get_raw_json_string().get(out); } +template<> simdjson_inline error_code value::get(std::string_view& out) noexcept { return get_string(false).get(out); } +template<> simdjson_inline error_code value::get(number& out) noexcept { return get_number().get(out); } +template<> simdjson_inline error_code value::get(double& out) noexcept { return get_double().get(out); } +template<> simdjson_inline error_code value::get(uint64_t& out) noexcept { return get_uint64().get(out); } +template<> simdjson_inline error_code value::get(int64_t& out) noexcept { return get_int64().get(out); } +template<> simdjson_inline error_code value::get(bool& out) noexcept { return get_bool().get(out); } + +#if SIMDJSON_EXCEPTIONS +template +simdjson_inline value::operator T() noexcept(false) { + return get(); } -simdjson_inline simdjson_result document::get_double_in_string() noexcept { - return get_root_value_iterator().get_root_double_in_string(true); +simdjson_inline value::operator array() noexcept(false) { + return get_array(); } -simdjson_inline simdjson_result document::get_string(bool allow_replacement) noexcept { - return get_root_value_iterator().get_root_string(true, allow_replacement); +simdjson_inline value::operator object() noexcept(false) { + return get_object(); } -template -simdjson_inline error_code document::get_string(string_type& receiver, bool allow_replacement) noexcept { - return get_root_value_iterator().get_root_string(receiver, true, allow_replacement); +simdjson_inline value::operator uint64_t() noexcept(false) { + return get_uint64(); } -simdjson_inline simdjson_result document::get_wobbly_string() noexcept { - return get_root_value_iterator().get_root_wobbly_string(true); +simdjson_inline value::operator int64_t() noexcept(false) { + return get_int64(); } -simdjson_inline simdjson_result document::get_raw_json_string() noexcept { - return get_root_value_iterator().get_root_raw_json_string(true); +simdjson_inline value::operator double() noexcept(false) { + return get_double(); } -simdjson_inline simdjson_result document::get_bool() noexcept { - return get_root_value_iterator().get_root_bool(true); +simdjson_inline value::operator std::string_view() noexcept(false) { + return get_string(false); } -simdjson_inline simdjson_result document::is_null() noexcept { - return get_root_value_iterator().is_root_null(true); +simdjson_inline value::operator raw_json_string() noexcept(false) { + return get_raw_json_string(); } +simdjson_inline value::operator bool() noexcept(false) { + return get_bool(); +} +#endif -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_array(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_object(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_raw_json_string(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_string(false); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_double(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_uint64(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_int64(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_bool(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_value(); } - -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_raw_json_string(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_string(false); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_double(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_uint64(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_int64(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_bool(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_value(); } - -template simdjson_inline error_code document::get(T &out) & noexcept { - return get().get(out); +simdjson_inline simdjson_result value::begin() & noexcept { + return get_array().begin(); } -template simdjson_deprecated simdjson_inline error_code document::get(T &out) && noexcept { - return std::forward(*this).get().get(out); +simdjson_inline simdjson_result value::end() & noexcept { + return {}; } - -#if SIMDJSON_EXCEPTIONS -template -simdjson_deprecated simdjson_inline document::operator T() && noexcept(false) { return get(); } -template -simdjson_inline document::operator T() & noexcept(false) { return get(); } -simdjson_inline document::operator array() & noexcept(false) { return get_array(); } -simdjson_inline document::operator object() & noexcept(false) { return get_object(); } -simdjson_inline document::operator uint64_t() noexcept(false) { return get_uint64(); } -simdjson_inline document::operator int64_t() noexcept(false) { return get_int64(); } -simdjson_inline document::operator double() noexcept(false) { return get_double(); } -simdjson_inline document::operator std::string_view() noexcept(false) { return get_string(false); } -simdjson_inline document::operator raw_json_string() noexcept(false) { return get_raw_json_string(); } -simdjson_inline document::operator bool() noexcept(false) { return get_bool(); } -simdjson_inline document::operator value() noexcept(false) { return get_value(); } - -#endif -simdjson_inline simdjson_result document::count_elements() & noexcept { +simdjson_inline simdjson_result value::count_elements() & noexcept { + simdjson_result answer; auto a = get_array(); - simdjson_result answer = a.count_elements(); - /* If there was an array, we are now left pointing at its first element. */ - if(answer.error() == SUCCESS) { rewind(); } + answer = a.count_elements(); + // count_elements leaves you pointing inside the array, at the first element. + // We need to move back so that the user can create a new array (which requires that + // we point at '['). + iter.move_at_start(); return answer; } -simdjson_inline simdjson_result document::count_fields() & noexcept { +simdjson_inline simdjson_result value::count_fields() & noexcept { + simdjson_result answer; auto a = get_object(); - simdjson_result answer = a.count_fields(); - /* If there was an object, we are now left pointing at its first element. */ - if(answer.error() == SUCCESS) { rewind(); } + answer = a.count_fields(); + iter.move_at_start(); return answer; } -simdjson_inline simdjson_result document::at(size_t index) & noexcept { +simdjson_inline simdjson_result value::at(size_t index) noexcept { auto a = get_array(); return a.at(index); } -simdjson_inline simdjson_result document::begin() & noexcept { - return get_array().begin(); -} -simdjson_inline simdjson_result document::end() & noexcept { - return {}; -} -simdjson_inline simdjson_result document::find_field(std::string_view key) & noexcept { +simdjson_inline simdjson_result value::find_field(std::string_view key) noexcept { return start_or_resume_object().find_field(key); } -simdjson_inline simdjson_result document::find_field(const char *key) & noexcept { +simdjson_inline simdjson_result value::find_field(const char *key) noexcept { return start_or_resume_object().find_field(key); } -simdjson_inline simdjson_result document::find_field_unordered(std::string_view key) & noexcept { + +simdjson_inline simdjson_result value::find_field_unordered(std::string_view key) noexcept { return start_or_resume_object().find_field_unordered(key); } -simdjson_inline simdjson_result document::find_field_unordered(const char *key) & noexcept { +simdjson_inline simdjson_result value::find_field_unordered(const char *key) noexcept { return start_or_resume_object().find_field_unordered(key); } -simdjson_inline simdjson_result document::operator[](std::string_view key) & noexcept { + +simdjson_inline simdjson_result value::operator[](std::string_view key) noexcept { return start_or_resume_object()[key]; } -simdjson_inline simdjson_result document::operator[](const char *key) & noexcept { +simdjson_inline simdjson_result value::operator[](const char *key) noexcept { return start_or_resume_object()[key]; } -simdjson_inline error_code document::consume() noexcept { - auto error = iter.skip_child(0); - if(error) { iter.abandon(); } - return error; -} - -simdjson_inline simdjson_result document::raw_json() noexcept { - auto _iter = get_root_value_iterator(); - const uint8_t * starting_point{_iter.peek_start()}; - auto error = consume(); - if(error) { return error; } - // After 'consume()', we could be left pointing just beyond the document, but that - // is ok because we are not going to dereference the final pointer position, we just - // use it to compute the length in bytes. - const uint8_t * final_point{iter.unsafe_pointer()}; - return std::string_view(reinterpret_cast(starting_point), size_t(final_point - starting_point)); -} - -simdjson_inline simdjson_result document::type() noexcept { - return get_root_value_iterator().type(); +simdjson_inline simdjson_result value::type() noexcept { + return iter.type(); } -simdjson_inline simdjson_result document::is_scalar() noexcept { +simdjson_inline simdjson_result value::is_scalar() noexcept { json_type this_type; auto error = type().get(this_type); if(error) { return error; } return ! ((this_type == json_type::array) || (this_type == json_type::object)); } -simdjson_inline simdjson_result document::is_string() noexcept { +simdjson_inline simdjson_result value::is_string() noexcept { json_type this_type; auto error = type().get(this_type); if(error) { return error; } return (this_type == json_type::string); } -simdjson_inline bool document::is_negative() noexcept { - return get_root_value_iterator().is_root_negative(); -} -simdjson_inline simdjson_result document::is_integer() noexcept { - return get_root_value_iterator().is_root_integer(true); +simdjson_inline bool value::is_negative() noexcept { + return iter.is_negative(); } -simdjson_inline simdjson_result document::get_number_type() noexcept { - return get_root_value_iterator().get_root_number_type(true); +simdjson_inline simdjson_result value::is_integer() noexcept { + return iter.is_integer(); +} +simdjson_warn_unused simdjson_inline simdjson_result value::get_number_type() noexcept { + return iter.get_number_type(); +} +simdjson_warn_unused simdjson_inline simdjson_result value::get_number() noexcept { + return iter.get_number(); } -simdjson_inline simdjson_result document::get_number() noexcept { - return get_root_value_iterator().get_root_number(true); +simdjson_inline std::string_view value::raw_json_token() noexcept { + return std::string_view(reinterpret_cast(iter.peek_start()), iter.peek_start_length()); } +simdjson_inline simdjson_result value::raw_json() noexcept { + json_type t; + SIMDJSON_TRY(type().get(t)); + switch (t) + { + case json_type::array: { + ondemand::array array; + SIMDJSON_TRY(get_array().get(array)); + return array.raw_json(); + } + case json_type::object: { + ondemand::object object; + SIMDJSON_TRY(get_object().get(object)); + return object.raw_json(); + } + default: + return raw_json_token(); + } +} -simdjson_inline simdjson_result document::raw_json_token() noexcept { - auto _iter = get_root_value_iterator(); - return std::string_view(reinterpret_cast(_iter.peek_start()), _iter.peek_root_length()); +simdjson_inline simdjson_result value::current_location() noexcept { + return iter.json_iter().current_location(); } -simdjson_inline simdjson_result document::at_pointer(std::string_view json_pointer) noexcept { - rewind(); // Rewind the document each time at_pointer is called - if (json_pointer.empty()) { - return this->get_value(); +simdjson_inline int32_t value::current_depth() const noexcept{ + return iter.json_iter().depth(); +} + +inline bool is_pointer_well_formed(std::string_view json_pointer) noexcept { + if (simdjson_unlikely(json_pointer.empty())) { // can't be + return false; + } + if (simdjson_unlikely(json_pointer[0] != '/')) { + return false; } + size_t escape = json_pointer.find('~'); + if (escape == std::string_view::npos) { + return true; + } + if (escape == json_pointer.size() - 1) { + return false; + } + if (json_pointer[escape + 1] != '0' && json_pointer[escape + 1] != '1') { + return false; + } + return true; +} + +simdjson_inline simdjson_result value::at_pointer(std::string_view json_pointer) noexcept { json_type t; SIMDJSON_TRY(type().get(t)); switch (t) @@ -36877,15 +37712,15 @@ simdjson_inline simdjson_result document::at_pointer(std::string_view jso case json_type::object: return (*this).get_object().at_pointer(json_pointer); default: + // a non-empty string can be invalid, or accessing a primitive (issue 2154) + if (is_pointer_well_formed(json_pointer)) { + return NO_SUCH_FIELD; + } return INVALID_JSON_POINTER; } } -simdjson_inline simdjson_result document::at_path(std::string_view json_path) noexcept { - rewind(); // Rewind the document each time at_pointer is called - if (json_path.empty()) { - return this->get_value(); - } +simdjson_inline simdjson_result value::at_path(std::string_view json_path) noexcept { json_type t; SIMDJSON_TRY(type().get(t)); switch (t) { @@ -36904,614 +37739,1253 @@ simdjson_inline simdjson_result document::at_path(std::string_view json_p namespace simdjson { -simdjson_inline simdjson_result::simdjson_result( - arm64::ondemand::document &&value +simdjson_inline simdjson_result::simdjson_result( + arm64::ondemand::value &&value ) noexcept : - implementation_simdjson_result_base( - std::forward(value) + implementation_simdjson_result_base( + std::forward(value) ) { } -simdjson_inline simdjson_result::simdjson_result( +simdjson_inline simdjson_result::simdjson_result( error_code error ) noexcept : - implementation_simdjson_result_base( - error - ) + implementation_simdjson_result_base(error) { } -simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { +simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { if (error()) { return error(); } return first.count_elements(); } -simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { +simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { if (error()) { return error(); } return first.count_fields(); } -simdjson_inline simdjson_result simdjson_result::at(size_t index) & noexcept { +simdjson_inline simdjson_result simdjson_result::at(size_t index) noexcept { if (error()) { return error(); } return first.at(index); } -simdjson_inline error_code simdjson_result::rewind() noexcept { - if (error()) { return error(); } - first.rewind(); - return SUCCESS; -} -simdjson_inline simdjson_result simdjson_result::begin() & noexcept { +simdjson_inline simdjson_result simdjson_result::begin() & noexcept { if (error()) { return error(); } return first.begin(); } -simdjson_inline simdjson_result simdjson_result::end() & noexcept { +simdjson_inline simdjson_result simdjson_result::end() & noexcept { + if (error()) { return error(); } return {}; } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) & noexcept { + +simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) noexcept { if (error()) { return error(); } - return first.find_field_unordered(key); + return first.find_field(key); } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field(const char *key) noexcept { if (error()) { return error(); } - return first.find_field_unordered(key); + return first.find_field(key); } -simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) & noexcept { + +simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) noexcept { if (error()) { return error(); } - return first[key]; + return first.find_field_unordered(key); } -simdjson_inline simdjson_result simdjson_result::operator[](const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) noexcept { if (error()) { return error(); } - return first[key]; + return first.find_field_unordered(key); } -simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) & noexcept { + +simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) noexcept { if (error()) { return error(); } - return first.find_field(key); + return first[key]; } -simdjson_inline simdjson_result simdjson_result::find_field(const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::operator[](const char *key) noexcept { if (error()) { return error(); } - return first.find_field(key); + return first[key]; } -simdjson_inline simdjson_result simdjson_result::get_array() & noexcept { + +simdjson_inline simdjson_result simdjson_result::get_array() noexcept { if (error()) { return error(); } return first.get_array(); } -simdjson_inline simdjson_result simdjson_result::get_object() & noexcept { +simdjson_inline simdjson_result simdjson_result::get_object() noexcept { if (error()) { return error(); } return first.get_object(); } -simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { +simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { if (error()) { return error(); } return first.get_uint64(); } -simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { if (error()) { return error(); } return first.get_uint64_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { +simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { if (error()) { return error(); } return first.get_int64(); } -simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { if (error()) { return error(); } return first.get_int64_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_double() noexcept { +simdjson_inline simdjson_result simdjson_result::get_double() noexcept { if (error()) { return error(); } return first.get_double(); } -simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { if (error()) { return error(); } return first.get_double_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { +simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { if (error()) { return error(); } return first.get_string(allow_replacement); } template -simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { +simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { if (error()) { return error(); } return first.get_string(receiver, allow_replacement); } -simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { if (error()) { return error(); } return first.get_wobbly_string(); } -simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { if (error()) { return error(); } return first.get_raw_json_string(); } -simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { +simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { if (error()) { return error(); } return first.get_bool(); } -simdjson_inline simdjson_result simdjson_result::get_value() noexcept { - if (error()) { return error(); } - return first.get_value(); -} -simdjson_inline simdjson_result simdjson_result::is_null() noexcept { +simdjson_inline simdjson_result simdjson_result::is_null() noexcept { if (error()) { return error(); } return first.is_null(); } -template -simdjson_inline simdjson_result simdjson_result::get() & noexcept { +template<> simdjson_inline error_code simdjson_result::get(arm64::ondemand::value &out) noexcept { if (error()) { return error(); } - return first.get(); + out = first; + return SUCCESS; } -template -simdjson_deprecated simdjson_inline simdjson_result simdjson_result::get() && noexcept { + +template simdjson_inline simdjson_result simdjson_result::get() noexcept { if (error()) { return error(); } - return std::forward(first).get(); + return first.get(); } -template -simdjson_inline error_code simdjson_result::get(T &out) & noexcept { +template simdjson_inline error_code simdjson_result::get(T &out) noexcept { if (error()) { return error(); } return first.get(out); } -template -simdjson_inline error_code simdjson_result::get(T &out) && noexcept { - if (error()) { return error(); } - return std::forward(first).get(out); -} -template<> simdjson_inline simdjson_result simdjson_result::get() & noexcept = delete; -template<> simdjson_deprecated simdjson_inline simdjson_result simdjson_result::get() && noexcept { - if (error()) { return error(); } - return std::forward(first); -} -template<> simdjson_inline error_code simdjson_result::get(arm64::ondemand::document &out) & noexcept = delete; -template<> simdjson_inline error_code simdjson_result::get(arm64::ondemand::document &out) && noexcept { +template<> simdjson_inline simdjson_result simdjson_result::get() noexcept { if (error()) { return error(); } - out = std::forward(first); - return SUCCESS; + return std::move(first); } -simdjson_inline simdjson_result simdjson_result::type() noexcept { +simdjson_inline simdjson_result simdjson_result::type() noexcept { if (error()) { return error(); } return first.type(); } - -simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { +simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { if (error()) { return error(); } return first.is_scalar(); } - -simdjson_inline simdjson_result simdjson_result::is_string() noexcept { +simdjson_inline simdjson_result simdjson_result::is_string() noexcept { if (error()) { return error(); } return first.is_string(); } - -simdjson_inline bool simdjson_result::is_negative() noexcept { +simdjson_inline simdjson_result simdjson_result::is_negative() noexcept { if (error()) { return error(); } return first.is_negative(); } - -simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { +simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { if (error()) { return error(); } return first.is_integer(); } - -simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { +simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { if (error()) { return error(); } return first.get_number_type(); } - -simdjson_inline simdjson_result simdjson_result::get_number() noexcept { +simdjson_inline simdjson_result simdjson_result::get_number() noexcept { if (error()) { return error(); } return first.get_number(); } - - #if SIMDJSON_EXCEPTIONS -template ::value == false>::type> -simdjson_inline simdjson_result::operator T() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator arm64::ondemand::array() & noexcept(false) { +template +simdjson_inline simdjson_result::operator T() noexcept(false) { if (error()) { throw simdjson_error(error()); } - return first; + return first.get(); } -simdjson_inline simdjson_result::operator arm64::ondemand::object() & noexcept(false) { +simdjson_inline simdjson_result::operator arm64::ondemand::array() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { +simdjson_inline simdjson_result::operator arm64::ondemand::object() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator int64_t() noexcept(false) { +simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator double() noexcept(false) { +simdjson_inline simdjson_result::operator int64_t() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { +simdjson_inline simdjson_result::operator double() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator arm64::ondemand::raw_json_string() noexcept(false) { +simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator bool() noexcept(false) { +simdjson_inline simdjson_result::operator arm64::ondemand::raw_json_string() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator arm64::ondemand::value() noexcept(false) { +simdjson_inline simdjson_result::operator bool() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } #endif - -simdjson_inline simdjson_result simdjson_result::current_location() noexcept { +simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { if (error()) { return error(); } - return first.current_location(); + return first.raw_json_token(); } -simdjson_inline bool simdjson_result::at_end() const noexcept { +simdjson_inline simdjson_result simdjson_result::raw_json() noexcept { if (error()) { return error(); } - return first.at_end(); + return first.raw_json(); } - -simdjson_inline int32_t simdjson_result::current_depth() const noexcept { +simdjson_inline simdjson_result simdjson_result::current_location() noexcept { if (error()) { return error(); } - return first.current_depth(); + return first.current_location(); } -simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { +simdjson_inline simdjson_result simdjson_result::current_depth() const noexcept { if (error()) { return error(); } - return first.raw_json_token(); + return first.current_depth(); } -simdjson_inline simdjson_result simdjson_result::at_pointer(std::string_view json_pointer) noexcept { - if (error()) { return error(); } +simdjson_inline simdjson_result simdjson_result::at_pointer( + std::string_view json_pointer) noexcept { + if (error()) { + return error(); + } return first.at_pointer(json_pointer); } -simdjson_inline simdjson_result simdjson_result::at_path(std::string_view json_path) noexcept { - if (error()) { return error(); } +simdjson_inline simdjson_result simdjson_result::at_path( + std::string_view json_path) noexcept { + if (error()) { + return error(); + } return first.at_path(json_path); } } // namespace simdjson +#endif // SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H +/* end file simdjson/generic/ondemand/value-inl.h for arm64 */ +/* including simdjson/generic/ondemand/document-inl.h for arm64: #include "simdjson/generic/ondemand/document-inl.h" */ +/* begin file simdjson/generic/ondemand/document-inl.h for arm64 */ +#ifndef SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H + +/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ +/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/deserialize.h" */ +/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ namespace simdjson { namespace arm64 { namespace ondemand { -simdjson_inline document_reference::document_reference() noexcept : doc{nullptr} {} -simdjson_inline document_reference::document_reference(document &d) noexcept : doc(&d) {} -simdjson_inline void document_reference::rewind() noexcept { doc->rewind(); } -simdjson_inline simdjson_result document_reference::get_array() & noexcept { return doc->get_array(); } -simdjson_inline simdjson_result document_reference::get_object() & noexcept { return doc->get_object(); } -/** - * The document_reference instances are used primarily/solely for streams of JSON - * documents. - * We decided that calling 'get_double()' on the JSON document '1.233 blabla' should - * give an error, so we check for trailing content. - * - * However, for streams of JSON documents, we want to be able to start from - * "321" "321" "321" - * and parse it successfully as a stream of JSON documents, calling get_uint64_in_string() - * successfully each time. - * - * To achieve this result, we pass a 'false' to a get_root_value_iterator() method: - * this indicates that we allow trailing content. - */ -simdjson_inline simdjson_result document_reference::get_uint64() noexcept { return doc->get_root_value_iterator().get_root_uint64(false); } -simdjson_inline simdjson_result document_reference::get_uint64_in_string() noexcept { return doc->get_root_value_iterator().get_root_uint64_in_string(false); } -simdjson_inline simdjson_result document_reference::get_int64() noexcept { return doc->get_root_value_iterator().get_root_int64(false); } -simdjson_inline simdjson_result document_reference::get_int64_in_string() noexcept { return doc->get_root_value_iterator().get_root_int64_in_string(false); } -simdjson_inline simdjson_result document_reference::get_double() noexcept { return doc->get_root_value_iterator().get_root_double(false); } -simdjson_inline simdjson_result document_reference::get_double_in_string() noexcept { return doc->get_root_value_iterator().get_root_double(false); } -simdjson_inline simdjson_result document_reference::get_string(bool allow_replacement) noexcept { return doc->get_root_value_iterator().get_root_string(false, allow_replacement); } -template -simdjson_inline error_code document_reference::get_string(string_type& receiver, bool allow_replacement) noexcept { return doc->get_root_value_iterator().get_root_string(receiver, false, allow_replacement); } -simdjson_inline simdjson_result document_reference::get_wobbly_string() noexcept { return doc->get_root_value_iterator().get_root_wobbly_string(false); } -simdjson_inline simdjson_result document_reference::get_raw_json_string() noexcept { return doc->get_root_value_iterator().get_root_raw_json_string(false); } -simdjson_inline simdjson_result document_reference::get_bool() noexcept { return doc->get_root_value_iterator().get_root_bool(false); } -simdjson_inline simdjson_result document_reference::get_value() noexcept { return doc->get_value(); } -simdjson_inline simdjson_result document_reference::is_null() noexcept { return doc->get_root_value_iterator().is_root_null(false); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_array(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_object(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_raw_json_string(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_string(false); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_double(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_uint64(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_int64(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_bool(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_value(); } -#if SIMDJSON_EXCEPTIONS -template -simdjson_inline document_reference::operator T() noexcept(false) { return get(); } -simdjson_inline document_reference::operator array() & noexcept(false) { return array(*doc); } -simdjson_inline document_reference::operator object() & noexcept(false) { return object(*doc); } -simdjson_inline document_reference::operator uint64_t() noexcept(false) { return get_uint64(); } -simdjson_inline document_reference::operator int64_t() noexcept(false) { return get_int64(); } -simdjson_inline document_reference::operator double() noexcept(false) { return get_double(); } -simdjson_inline document_reference::operator std::string_view() noexcept(false) { return std::string_view(*doc); } -simdjson_inline document_reference::operator raw_json_string() noexcept(false) { return get_raw_json_string(); } -simdjson_inline document_reference::operator bool() noexcept(false) { return get_bool(); } -simdjson_inline document_reference::operator value() noexcept(false) { return value(*doc); } -#endif -simdjson_inline simdjson_result document_reference::count_elements() & noexcept { return doc->count_elements(); } -simdjson_inline simdjson_result document_reference::count_fields() & noexcept { return doc->count_fields(); } -simdjson_inline simdjson_result document_reference::at(size_t index) & noexcept { return doc->at(index); } -simdjson_inline simdjson_result document_reference::begin() & noexcept { return doc->begin(); } -simdjson_inline simdjson_result document_reference::end() & noexcept { return doc->end(); } -simdjson_inline simdjson_result document_reference::find_field(std::string_view key) & noexcept { return doc->find_field(key); } -simdjson_inline simdjson_result document_reference::find_field(const char *key) & noexcept { return doc->find_field(key); } -simdjson_inline simdjson_result document_reference::operator[](std::string_view key) & noexcept { return (*doc)[key]; } -simdjson_inline simdjson_result document_reference::operator[](const char *key) & noexcept { return (*doc)[key]; } -simdjson_inline simdjson_result document_reference::find_field_unordered(std::string_view key) & noexcept { return doc->find_field_unordered(key); } -simdjson_inline simdjson_result document_reference::find_field_unordered(const char *key) & noexcept { return doc->find_field_unordered(key); } -simdjson_inline simdjson_result document_reference::type() noexcept { return doc->type(); } -simdjson_inline simdjson_result document_reference::is_scalar() noexcept { return doc->is_scalar(); } -simdjson_inline simdjson_result document_reference::is_string() noexcept { return doc->is_string(); } -simdjson_inline simdjson_result document_reference::current_location() noexcept { return doc->current_location(); } -simdjson_inline int32_t document_reference::current_depth() const noexcept { return doc->current_depth(); } -simdjson_inline bool document_reference::is_negative() noexcept { return doc->is_negative(); } -simdjson_inline simdjson_result document_reference::is_integer() noexcept { return doc->get_root_value_iterator().is_root_integer(false); } -simdjson_inline simdjson_result document_reference::get_number_type() noexcept { return doc->get_root_value_iterator().get_root_number_type(false); } -simdjson_inline simdjson_result document_reference::get_number() noexcept { return doc->get_root_value_iterator().get_root_number(false); } -simdjson_inline simdjson_result document_reference::raw_json_token() noexcept { return doc->raw_json_token(); } -simdjson_inline simdjson_result document_reference::at_pointer(std::string_view json_pointer) noexcept { return doc->at_pointer(json_pointer); } -simdjson_inline simdjson_result document_reference::at_path(std::string_view json_path) noexcept { return doc->at_path(json_path); } -simdjson_inline simdjson_result document_reference::raw_json() noexcept { return doc->raw_json();} -simdjson_inline document_reference::operator document&() const noexcept { return *doc; } - -} // namespace ondemand -} // namespace arm64 -} // namespace simdjson +simdjson_inline document::document(ondemand::json_iterator &&_iter) noexcept + : iter{std::forward(_iter)} +{ + logger::log_start_value(iter, "document"); +} +simdjson_inline document document::start(json_iterator &&iter) noexcept { + return document(std::forward(iter)); +} +inline void document::rewind() noexcept { + iter.rewind(); +} -namespace simdjson { -simdjson_inline simdjson_result::simdjson_result(arm64::ondemand::document_reference value, error_code error) - noexcept : implementation_simdjson_result_base(std::forward(value), error) {} +inline std::string document::to_debug_string() noexcept { + return iter.to_string(); +} +inline simdjson_result document::current_location() const noexcept { + return iter.current_location(); +} -simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { - if (error()) { return error(); } - return first.count_elements(); +inline int32_t document::current_depth() const noexcept { + return iter.depth(); } -simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { - if (error()) { return error(); } - return first.count_fields(); + +inline bool document::at_end() const noexcept { + return iter.at_end(); } -simdjson_inline simdjson_result simdjson_result::at(size_t index) & noexcept { - if (error()) { return error(); } - return first.at(index); + + +inline bool document::is_alive() noexcept { + return iter.is_alive(); } -simdjson_inline error_code simdjson_result::rewind() noexcept { - if (error()) { return error(); } - first.rewind(); - return SUCCESS; +simdjson_inline value_iterator document::resume_value_iterator() noexcept { + return value_iterator(&iter, 1, iter.root_position()); } -simdjson_inline simdjson_result simdjson_result::begin() & noexcept { - if (error()) { return error(); } - return first.begin(); +simdjson_inline value_iterator document::get_root_value_iterator() noexcept { + return resume_value_iterator(); } -simdjson_inline simdjson_result simdjson_result::end() & noexcept { - return {}; +simdjson_inline simdjson_result document::start_or_resume_object() noexcept { + if (iter.at_root()) { + return get_object(); + } else { + return object::resume(resume_value_iterator()); + } } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) & noexcept { - if (error()) { return error(); } - return first.find_field_unordered(key); +simdjson_inline simdjson_result document::get_value() noexcept { + // Make sure we start any arrays or objects before returning, so that start_root_() + // gets called. + + // It is the convention throughout the code that the macro `SIMDJSON_DEVELOPMENT_CHECKS` determines whether + // we check for OUT_OF_ORDER_ITERATION. Proper on::demand code should never trigger this error. +#if SIMDJSON_DEVELOPMENT_CHECKS + if (!iter.at_root()) { return OUT_OF_ORDER_ITERATION; } +#endif + // assert_at_root() serves two purposes: in Debug mode, whether or not + // SIMDJSON_DEVELOPMENT_CHECKS is set or not, it checks that we are at the root of + // the document (this will typically be redundant). In release mode, it generates + // SIMDJSON_ASSUME statements to allow the compiler to make assumptions. + iter.assert_at_root(); + switch (*iter.peek()) { + case '[': { + // The following lines check that the document ends with ]. + auto value_iterator = get_root_value_iterator(); + auto error = value_iterator.check_root_array(); + if(error) { return error; } + return value(get_root_value_iterator()); + } + case '{': { + // The following lines would check that the document ends with }. + auto value_iterator = get_root_value_iterator(); + auto error = value_iterator.check_root_object(); + if(error) { return error; } + return value(get_root_value_iterator()); + } + default: + // Unfortunately, scalar documents are a special case in simdjson and they cannot + // be safely converted to value instances. + return SCALAR_DOCUMENT_AS_VALUE; + } } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) & noexcept { - if (error()) { return error(); } - return first.find_field_unordered(key); +simdjson_inline simdjson_result document::get_array() & noexcept { + auto value = get_root_value_iterator(); + return array::start_root(value); } -simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) & noexcept { - if (error()) { return error(); } - return first[key]; +simdjson_inline simdjson_result document::get_object() & noexcept { + auto value = get_root_value_iterator(); + return object::start_root(value); } -simdjson_inline simdjson_result simdjson_result::operator[](const char *key) & noexcept { - if (error()) { return error(); } - return first[key]; + +/** + * We decided that calling 'get_double()' on the JSON document '1.233 blabla' should + * give an error, so we check for trailing content. We want to disallow trailing + * content. + * Thus, in several implementations below, we pass a 'true' parameter value to + * a get_root_value_iterator() method: this indicates that we disallow trailing content. + */ + +simdjson_inline simdjson_result document::get_uint64() noexcept { + return get_root_value_iterator().get_root_uint64(true); } -simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) & noexcept { - if (error()) { return error(); } - return first.find_field(key); +simdjson_inline simdjson_result document::get_uint64_in_string() noexcept { + return get_root_value_iterator().get_root_uint64_in_string(true); } -simdjson_inline simdjson_result simdjson_result::find_field(const char *key) & noexcept { - if (error()) { return error(); } - return first.find_field(key); +simdjson_inline simdjson_result document::get_int64() noexcept { + return get_root_value_iterator().get_root_int64(true); } -simdjson_inline simdjson_result simdjson_result::get_array() & noexcept { - if (error()) { return error(); } - return first.get_array(); +simdjson_inline simdjson_result document::get_int64_in_string() noexcept { + return get_root_value_iterator().get_root_int64_in_string(true); } -simdjson_inline simdjson_result simdjson_result::get_object() & noexcept { +simdjson_inline simdjson_result document::get_double() noexcept { + return get_root_value_iterator().get_root_double(true); +} +simdjson_inline simdjson_result document::get_double_in_string() noexcept { + return get_root_value_iterator().get_root_double_in_string(true); +} +simdjson_inline simdjson_result document::get_string(bool allow_replacement) noexcept { + return get_root_value_iterator().get_root_string(true, allow_replacement); +} +template +simdjson_inline error_code document::get_string(string_type& receiver, bool allow_replacement) noexcept { + return get_root_value_iterator().get_root_string(receiver, true, allow_replacement); +} +simdjson_inline simdjson_result document::get_wobbly_string() noexcept { + return get_root_value_iterator().get_root_wobbly_string(true); +} +simdjson_inline simdjson_result document::get_raw_json_string() noexcept { + return get_root_value_iterator().get_root_raw_json_string(true); +} +simdjson_inline simdjson_result document::get_bool() noexcept { + return get_root_value_iterator().get_root_bool(true); +} +simdjson_inline simdjson_result document::is_null() noexcept { + return get_root_value_iterator().is_root_null(true); +} + +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_array(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_object(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_raw_json_string(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_string(false); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_double(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_uint64(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_int64(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_bool(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_value(); } + +template<> simdjson_inline error_code document::get(array& out) & noexcept { return get_array().get(out); } +template<> simdjson_inline error_code document::get(object& out) & noexcept { return get_object().get(out); } +template<> simdjson_inline error_code document::get(raw_json_string& out) & noexcept { return get_raw_json_string().get(out); } +template<> simdjson_inline error_code document::get(std::string_view& out) & noexcept { return get_string(false).get(out); } +template<> simdjson_inline error_code document::get(double& out) & noexcept { return get_double().get(out); } +template<> simdjson_inline error_code document::get(uint64_t& out) & noexcept { return get_uint64().get(out); } +template<> simdjson_inline error_code document::get(int64_t& out) & noexcept { return get_int64().get(out); } +template<> simdjson_inline error_code document::get(bool& out) & noexcept { return get_bool().get(out); } +template<> simdjson_inline error_code document::get(value& out) & noexcept { return get_value().get(out); } + +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_raw_json_string(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_string(false); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_double(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_uint64(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_int64(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_bool(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_value(); } + +#if SIMDJSON_EXCEPTIONS +template +simdjson_deprecated simdjson_inline document::operator T() && noexcept(false) { return get(); } +template +simdjson_inline document::operator T() & noexcept(false) { return get(); } +simdjson_inline document::operator array() & noexcept(false) { return get_array(); } +simdjson_inline document::operator object() & noexcept(false) { return get_object(); } +simdjson_inline document::operator uint64_t() noexcept(false) { return get_uint64(); } +simdjson_inline document::operator int64_t() noexcept(false) { return get_int64(); } +simdjson_inline document::operator double() noexcept(false) { return get_double(); } +simdjson_inline document::operator std::string_view() noexcept(false) { return get_string(false); } +simdjson_inline document::operator raw_json_string() noexcept(false) { return get_raw_json_string(); } +simdjson_inline document::operator bool() noexcept(false) { return get_bool(); } +simdjson_inline document::operator value() noexcept(false) { return get_value(); } + +#endif +simdjson_inline simdjson_result document::count_elements() & noexcept { + auto a = get_array(); + simdjson_result answer = a.count_elements(); + /* If there was an array, we are now left pointing at its first element. */ + if(answer.error() == SUCCESS) { rewind(); } + return answer; +} +simdjson_inline simdjson_result document::count_fields() & noexcept { + auto a = get_object(); + simdjson_result answer = a.count_fields(); + /* If there was an object, we are now left pointing at its first element. */ + if(answer.error() == SUCCESS) { rewind(); } + return answer; +} +simdjson_inline simdjson_result document::at(size_t index) & noexcept { + auto a = get_array(); + return a.at(index); +} +simdjson_inline simdjson_result document::begin() & noexcept { + return get_array().begin(); +} +simdjson_inline simdjson_result document::end() & noexcept { + return {}; +} + +simdjson_inline simdjson_result document::find_field(std::string_view key) & noexcept { + return start_or_resume_object().find_field(key); +} +simdjson_inline simdjson_result document::find_field(const char *key) & noexcept { + return start_or_resume_object().find_field(key); +} +simdjson_inline simdjson_result document::find_field_unordered(std::string_view key) & noexcept { + return start_or_resume_object().find_field_unordered(key); +} +simdjson_inline simdjson_result document::find_field_unordered(const char *key) & noexcept { + return start_or_resume_object().find_field_unordered(key); +} +simdjson_inline simdjson_result document::operator[](std::string_view key) & noexcept { + return start_or_resume_object()[key]; +} +simdjson_inline simdjson_result document::operator[](const char *key) & noexcept { + return start_or_resume_object()[key]; +} + +simdjson_inline error_code document::consume() noexcept { + bool scalar = false; + auto error = is_scalar().get(scalar); + if(error) { return error; } + if(scalar) { + iter.return_current_and_advance(); + return SUCCESS; + } + error = iter.skip_child(0); + if(error) { iter.abandon(); } + return error; +} + +simdjson_inline simdjson_result document::raw_json() noexcept { + auto _iter = get_root_value_iterator(); + const uint8_t * starting_point{_iter.peek_start()}; + auto error = consume(); + if(error) { return error; } + // After 'consume()', we could be left pointing just beyond the document, but that + // is ok because we are not going to dereference the final pointer position, we just + // use it to compute the length in bytes. + const uint8_t * final_point{iter.unsafe_pointer()}; + return std::string_view(reinterpret_cast(starting_point), size_t(final_point - starting_point)); +} + +simdjson_inline simdjson_result document::type() noexcept { + return get_root_value_iterator().type(); +} + +simdjson_inline simdjson_result document::is_scalar() noexcept { + // For more speed, we could do: + // return iter.is_single_token(); + json_type this_type; + auto error = type().get(this_type); + if(error) { return error; } + return ! ((this_type == json_type::array) || (this_type == json_type::object)); +} + +simdjson_inline simdjson_result document::is_string() noexcept { + json_type this_type; + auto error = type().get(this_type); + if(error) { return error; } + return (this_type == json_type::string); +} + +simdjson_inline bool document::is_negative() noexcept { + return get_root_value_iterator().is_root_negative(); +} + +simdjson_inline simdjson_result document::is_integer() noexcept { + return get_root_value_iterator().is_root_integer(true); +} + +simdjson_inline simdjson_result document::get_number_type() noexcept { + return get_root_value_iterator().get_root_number_type(true); +} + +simdjson_inline simdjson_result document::get_number() noexcept { + return get_root_value_iterator().get_root_number(true); +} + + +simdjson_inline simdjson_result document::raw_json_token() noexcept { + auto _iter = get_root_value_iterator(); + return std::string_view(reinterpret_cast(_iter.peek_start()), _iter.peek_root_length()); +} + +simdjson_inline simdjson_result document::at_pointer(std::string_view json_pointer) noexcept { + rewind(); // Rewind the document each time at_pointer is called + if (json_pointer.empty()) { + return this->get_value(); + } + json_type t; + SIMDJSON_TRY(type().get(t)); + switch (t) + { + case json_type::array: + return (*this).get_array().at_pointer(json_pointer); + case json_type::object: + return (*this).get_object().at_pointer(json_pointer); + default: + return INVALID_JSON_POINTER; + } +} + +simdjson_inline simdjson_result document::at_path(std::string_view json_path) noexcept { + rewind(); // Rewind the document each time at_pointer is called + if (json_path.empty()) { + return this->get_value(); + } + json_type t; + SIMDJSON_TRY(type().get(t)); + switch (t) { + case json_type::array: + return (*this).get_array().at_path(json_path); + case json_type::object: + return (*this).get_object().at_path(json_path); + default: + return INVALID_JSON_POINTER; + } +} + +} // namespace ondemand +} // namespace arm64 +} // namespace simdjson + +namespace simdjson { + +simdjson_inline simdjson_result::simdjson_result( + arm64::ondemand::document &&value +) noexcept : + implementation_simdjson_result_base( + std::forward(value) + ) +{ +} +simdjson_inline simdjson_result::simdjson_result( + error_code error +) noexcept : + implementation_simdjson_result_base( + error + ) +{ +} +simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { + if (error()) { return error(); } + return first.count_elements(); +} +simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { + if (error()) { return error(); } + return first.count_fields(); +} +simdjson_inline simdjson_result simdjson_result::at(size_t index) & noexcept { + if (error()) { return error(); } + return first.at(index); +} +simdjson_inline error_code simdjson_result::rewind() noexcept { + if (error()) { return error(); } + first.rewind(); + return SUCCESS; +} +simdjson_inline simdjson_result simdjson_result::begin() & noexcept { + if (error()) { return error(); } + return first.begin(); +} +simdjson_inline simdjson_result simdjson_result::end() & noexcept { + return {}; +} +simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) & noexcept { + if (error()) { return error(); } + return first.find_field_unordered(key); +} +simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) & noexcept { + if (error()) { return error(); } + return first.find_field_unordered(key); +} +simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) & noexcept { + if (error()) { return error(); } + return first[key]; +} +simdjson_inline simdjson_result simdjson_result::operator[](const char *key) & noexcept { + if (error()) { return error(); } + return first[key]; +} +simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) & noexcept { + if (error()) { return error(); } + return first.find_field(key); +} +simdjson_inline simdjson_result simdjson_result::find_field(const char *key) & noexcept { + if (error()) { return error(); } + return first.find_field(key); +} +simdjson_inline simdjson_result simdjson_result::get_array() & noexcept { + if (error()) { return error(); } + return first.get_array(); +} +simdjson_inline simdjson_result simdjson_result::get_object() & noexcept { if (error()) { return error(); } return first.get_object(); } -simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { +simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { if (error()) { return error(); } return first.get_uint64(); } -simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { if (error()) { return error(); } return first.get_uint64_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { +simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { if (error()) { return error(); } return first.get_int64(); } -simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { if (error()) { return error(); } return first.get_int64_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_double() noexcept { +simdjson_inline simdjson_result simdjson_result::get_double() noexcept { if (error()) { return error(); } return first.get_double(); } -simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { if (error()) { return error(); } return first.get_double_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { +simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { if (error()) { return error(); } return first.get_string(allow_replacement); } template -simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { +simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { if (error()) { return error(); } return first.get_string(receiver, allow_replacement); } -simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { if (error()) { return error(); } return first.get_wobbly_string(); } -simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { if (error()) { return error(); } return first.get_raw_json_string(); } -simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { +simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { if (error()) { return error(); } return first.get_bool(); } -simdjson_inline simdjson_result simdjson_result::get_value() noexcept { +simdjson_inline simdjson_result simdjson_result::get_value() noexcept { if (error()) { return error(); } return first.get_value(); } -simdjson_inline simdjson_result simdjson_result::is_null() noexcept { +simdjson_inline simdjson_result simdjson_result::is_null() noexcept { if (error()) { return error(); } return first.is_null(); } -simdjson_inline simdjson_result simdjson_result::type() noexcept { + +template +simdjson_inline simdjson_result simdjson_result::get() & noexcept { + if (error()) { return error(); } + return first.get(); +} +template +simdjson_deprecated simdjson_inline simdjson_result simdjson_result::get() && noexcept { + if (error()) { return error(); } + return std::forward(first).get(); +} +template +simdjson_inline error_code simdjson_result::get(T &out) & noexcept { + if (error()) { return error(); } + return first.get(out); +} +template +simdjson_inline error_code simdjson_result::get(T &out) && noexcept { + if (error()) { return error(); } + return std::forward(first).get(out); +} + +template<> simdjson_inline simdjson_result simdjson_result::get() & noexcept = delete; +template<> simdjson_deprecated simdjson_inline simdjson_result simdjson_result::get() && noexcept { + if (error()) { return error(); } + return std::forward(first); +} +template<> simdjson_inline error_code simdjson_result::get(arm64::ondemand::document &out) & noexcept = delete; +template<> simdjson_inline error_code simdjson_result::get(arm64::ondemand::document &out) && noexcept { + if (error()) { return error(); } + out = std::forward(first); + return SUCCESS; +} + +simdjson_inline simdjson_result simdjson_result::type() noexcept { if (error()) { return error(); } return first.type(); } -simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { + +simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { if (error()) { return error(); } return first.is_scalar(); } -simdjson_inline simdjson_result simdjson_result::is_string() noexcept { + +simdjson_inline simdjson_result simdjson_result::is_string() noexcept { if (error()) { return error(); } return first.is_string(); } -simdjson_inline simdjson_result simdjson_result::is_negative() noexcept { + +simdjson_inline bool simdjson_result::is_negative() noexcept { if (error()) { return error(); } return first.is_negative(); } -simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { + +simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { if (error()) { return error(); } return first.is_integer(); } -simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { + +simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { if (error()) { return error(); } return first.get_number_type(); } -simdjson_inline simdjson_result simdjson_result::get_number() noexcept { + +simdjson_inline simdjson_result simdjson_result::get_number() noexcept { if (error()) { return error(); } return first.get_number(); } + + #if SIMDJSON_EXCEPTIONS -template ::value == false>::type> -simdjson_inline simdjson_result::operator T() noexcept(false) { +template ::value == false>::type> +simdjson_inline simdjson_result::operator T() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator arm64::ondemand::array() & noexcept(false) { +simdjson_inline simdjson_result::operator arm64::ondemand::array() & noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator arm64::ondemand::object() & noexcept(false) { +simdjson_inline simdjson_result::operator arm64::ondemand::object() & noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { +simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator int64_t() noexcept(false) { +simdjson_inline simdjson_result::operator int64_t() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator double() noexcept(false) { +simdjson_inline simdjson_result::operator double() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { +simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator arm64::ondemand::raw_json_string() noexcept(false) { +simdjson_inline simdjson_result::operator arm64::ondemand::raw_json_string() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator bool() noexcept(false) { +simdjson_inline simdjson_result::operator bool() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator arm64::ondemand::value() noexcept(false) { +simdjson_inline simdjson_result::operator arm64::ondemand::value() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } #endif -simdjson_inline simdjson_result simdjson_result::current_location() noexcept { + +simdjson_inline simdjson_result simdjson_result::current_location() noexcept { if (error()) { return error(); } return first.current_location(); } -simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { +simdjson_inline bool simdjson_result::at_end() const noexcept { + if (error()) { return error(); } + return first.at_end(); +} + + +simdjson_inline int32_t simdjson_result::current_depth() const noexcept { + if (error()) { return error(); } + return first.current_depth(); +} + +simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { if (error()) { return error(); } return first.raw_json_token(); } -simdjson_inline simdjson_result simdjson_result::at_pointer(std::string_view json_pointer) noexcept { +simdjson_inline simdjson_result simdjson_result::at_pointer(std::string_view json_pointer) noexcept { if (error()) { return error(); } return first.at_pointer(json_pointer); } -simdjson_inline simdjson_result simdjson_result::at_path(std::string_view json_path) noexcept { - if (error()) { - return error(); - } +simdjson_inline simdjson_result simdjson_result::at_path(std::string_view json_path) noexcept { + if (error()) { return error(); } return first.at_path(json_path); } } // namespace simdjson -#endif // SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H -/* end file simdjson/generic/ondemand/document-inl.h for arm64 */ -/* including simdjson/generic/ondemand/document_stream-inl.h for arm64: #include "simdjson/generic/ondemand/document_stream-inl.h" */ -/* begin file simdjson/generic/ondemand/document_stream-inl.h for arm64 */ -#ifndef SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H - -/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ -/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document_stream.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/implementation_simdjson_result_base-inl.h" */ -/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ - -#include -#include namespace simdjson { namespace arm64 { namespace ondemand { -#ifdef SIMDJSON_THREADS_ENABLED +simdjson_inline document_reference::document_reference() noexcept : doc{nullptr} {} +simdjson_inline document_reference::document_reference(document &d) noexcept : doc(&d) {} +simdjson_inline void document_reference::rewind() noexcept { doc->rewind(); } +simdjson_inline simdjson_result document_reference::get_array() & noexcept { return doc->get_array(); } +simdjson_inline simdjson_result document_reference::get_object() & noexcept { return doc->get_object(); } +/** + * The document_reference instances are used primarily/solely for streams of JSON + * documents. + * We decided that calling 'get_double()' on the JSON document '1.233 blabla' should + * give an error, so we check for trailing content. + * + * However, for streams of JSON documents, we want to be able to start from + * "321" "321" "321" + * and parse it successfully as a stream of JSON documents, calling get_uint64_in_string() + * successfully each time. + * + * To achieve this result, we pass a 'false' to a get_root_value_iterator() method: + * this indicates that we allow trailing content. + */ +simdjson_inline simdjson_result document_reference::get_uint64() noexcept { return doc->get_root_value_iterator().get_root_uint64(false); } +simdjson_inline simdjson_result document_reference::get_uint64_in_string() noexcept { return doc->get_root_value_iterator().get_root_uint64_in_string(false); } +simdjson_inline simdjson_result document_reference::get_int64() noexcept { return doc->get_root_value_iterator().get_root_int64(false); } +simdjson_inline simdjson_result document_reference::get_int64_in_string() noexcept { return doc->get_root_value_iterator().get_root_int64_in_string(false); } +simdjson_inline simdjson_result document_reference::get_double() noexcept { return doc->get_root_value_iterator().get_root_double(false); } +simdjson_inline simdjson_result document_reference::get_double_in_string() noexcept { return doc->get_root_value_iterator().get_root_double(false); } +simdjson_inline simdjson_result document_reference::get_string(bool allow_replacement) noexcept { return doc->get_root_value_iterator().get_root_string(false, allow_replacement); } +template +simdjson_inline error_code document_reference::get_string(string_type& receiver, bool allow_replacement) noexcept { return doc->get_root_value_iterator().get_root_string(receiver, false, allow_replacement); } +simdjson_inline simdjson_result document_reference::get_wobbly_string() noexcept { return doc->get_root_value_iterator().get_root_wobbly_string(false); } +simdjson_inline simdjson_result document_reference::get_raw_json_string() noexcept { return doc->get_root_value_iterator().get_root_raw_json_string(false); } +simdjson_inline simdjson_result document_reference::get_bool() noexcept { return doc->get_root_value_iterator().get_root_bool(false); } +simdjson_inline simdjson_result document_reference::get_value() noexcept { return doc->get_value(); } +simdjson_inline simdjson_result document_reference::is_null() noexcept { return doc->get_root_value_iterator().is_root_null(false); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_array(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_object(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_raw_json_string(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_string(false); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_double(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_uint64(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_int64(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_bool(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_value(); } +#if SIMDJSON_EXCEPTIONS +template +simdjson_inline document_reference::operator T() noexcept(false) { return get(); } +simdjson_inline document_reference::operator array() & noexcept(false) { return array(*doc); } +simdjson_inline document_reference::operator object() & noexcept(false) { return object(*doc); } +simdjson_inline document_reference::operator uint64_t() noexcept(false) { return get_uint64(); } +simdjson_inline document_reference::operator int64_t() noexcept(false) { return get_int64(); } +simdjson_inline document_reference::operator double() noexcept(false) { return get_double(); } +simdjson_inline document_reference::operator std::string_view() noexcept(false) { return std::string_view(*doc); } +simdjson_inline document_reference::operator raw_json_string() noexcept(false) { return get_raw_json_string(); } +simdjson_inline document_reference::operator bool() noexcept(false) { return get_bool(); } +simdjson_inline document_reference::operator value() noexcept(false) { return value(*doc); } +#endif +simdjson_inline simdjson_result document_reference::count_elements() & noexcept { return doc->count_elements(); } +simdjson_inline simdjson_result document_reference::count_fields() & noexcept { return doc->count_fields(); } +simdjson_inline simdjson_result document_reference::at(size_t index) & noexcept { return doc->at(index); } +simdjson_inline simdjson_result document_reference::begin() & noexcept { return doc->begin(); } +simdjson_inline simdjson_result document_reference::end() & noexcept { return doc->end(); } +simdjson_inline simdjson_result document_reference::find_field(std::string_view key) & noexcept { return doc->find_field(key); } +simdjson_inline simdjson_result document_reference::find_field(const char *key) & noexcept { return doc->find_field(key); } +simdjson_inline simdjson_result document_reference::operator[](std::string_view key) & noexcept { return (*doc)[key]; } +simdjson_inline simdjson_result document_reference::operator[](const char *key) & noexcept { return (*doc)[key]; } +simdjson_inline simdjson_result document_reference::find_field_unordered(std::string_view key) & noexcept { return doc->find_field_unordered(key); } +simdjson_inline simdjson_result document_reference::find_field_unordered(const char *key) & noexcept { return doc->find_field_unordered(key); } +simdjson_inline simdjson_result document_reference::type() noexcept { return doc->type(); } +simdjson_inline simdjson_result document_reference::is_scalar() noexcept { return doc->is_scalar(); } +simdjson_inline simdjson_result document_reference::is_string() noexcept { return doc->is_string(); } +simdjson_inline simdjson_result document_reference::current_location() noexcept { return doc->current_location(); } +simdjson_inline int32_t document_reference::current_depth() const noexcept { return doc->current_depth(); } +simdjson_inline bool document_reference::is_negative() noexcept { return doc->is_negative(); } +simdjson_inline simdjson_result document_reference::is_integer() noexcept { return doc->get_root_value_iterator().is_root_integer(false); } +simdjson_inline simdjson_result document_reference::get_number_type() noexcept { return doc->get_root_value_iterator().get_root_number_type(false); } +simdjson_inline simdjson_result document_reference::get_number() noexcept { return doc->get_root_value_iterator().get_root_number(false); } +simdjson_inline simdjson_result document_reference::raw_json_token() noexcept { return doc->raw_json_token(); } +simdjson_inline simdjson_result document_reference::at_pointer(std::string_view json_pointer) noexcept { return doc->at_pointer(json_pointer); } +simdjson_inline simdjson_result document_reference::at_path(std::string_view json_path) noexcept { return doc->at_path(json_path); } +simdjson_inline simdjson_result document_reference::raw_json() noexcept { return doc->raw_json();} +simdjson_inline document_reference::operator document&() const noexcept { return *doc; } -inline void stage1_worker::finish() { - // After calling "run" someone would call finish() to wait - // for the end of the processing. - // This function will wait until either the thread has done - // the processing or, else, the destructor has been called. - std::unique_lock lock(locking_mutex); - cond_var.wait(lock, [this]{return has_work == false;}); -} +} // namespace ondemand +} // namespace arm64 +} // namespace simdjson -inline stage1_worker::~stage1_worker() { + + +namespace simdjson { +simdjson_inline simdjson_result::simdjson_result(arm64::ondemand::document_reference value, error_code error) + noexcept : implementation_simdjson_result_base(std::forward(value), error) {} + + +simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { + if (error()) { return error(); } + return first.count_elements(); +} +simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { + if (error()) { return error(); } + return first.count_fields(); +} +simdjson_inline simdjson_result simdjson_result::at(size_t index) & noexcept { + if (error()) { return error(); } + return first.at(index); +} +simdjson_inline error_code simdjson_result::rewind() noexcept { + if (error()) { return error(); } + first.rewind(); + return SUCCESS; +} +simdjson_inline simdjson_result simdjson_result::begin() & noexcept { + if (error()) { return error(); } + return first.begin(); +} +simdjson_inline simdjson_result simdjson_result::end() & noexcept { + return {}; +} +simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) & noexcept { + if (error()) { return error(); } + return first.find_field_unordered(key); +} +simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) & noexcept { + if (error()) { return error(); } + return first.find_field_unordered(key); +} +simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) & noexcept { + if (error()) { return error(); } + return first[key]; +} +simdjson_inline simdjson_result simdjson_result::operator[](const char *key) & noexcept { + if (error()) { return error(); } + return first[key]; +} +simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) & noexcept { + if (error()) { return error(); } + return first.find_field(key); +} +simdjson_inline simdjson_result simdjson_result::find_field(const char *key) & noexcept { + if (error()) { return error(); } + return first.find_field(key); +} +simdjson_inline simdjson_result simdjson_result::get_array() & noexcept { + if (error()) { return error(); } + return first.get_array(); +} +simdjson_inline simdjson_result simdjson_result::get_object() & noexcept { + if (error()) { return error(); } + return first.get_object(); +} +simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { + if (error()) { return error(); } + return first.get_uint64(); +} +simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { + if (error()) { return error(); } + return first.get_uint64_in_string(); +} +simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { + if (error()) { return error(); } + return first.get_int64(); +} +simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { + if (error()) { return error(); } + return first.get_int64_in_string(); +} +simdjson_inline simdjson_result simdjson_result::get_double() noexcept { + if (error()) { return error(); } + return first.get_double(); +} +simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { + if (error()) { return error(); } + return first.get_double_in_string(); +} +simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { + if (error()) { return error(); } + return first.get_string(allow_replacement); +} +template +simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { + if (error()) { return error(); } + return first.get_string(receiver, allow_replacement); +} +simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { + if (error()) { return error(); } + return first.get_wobbly_string(); +} +simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { + if (error()) { return error(); } + return first.get_raw_json_string(); +} +simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { + if (error()) { return error(); } + return first.get_bool(); +} +simdjson_inline simdjson_result simdjson_result::get_value() noexcept { + if (error()) { return error(); } + return first.get_value(); +} +simdjson_inline simdjson_result simdjson_result::is_null() noexcept { + if (error()) { return error(); } + return first.is_null(); +} +template +simdjson_inline simdjson_result simdjson_result::get() & noexcept { + if (error()) { return error(); } + return first.get(); +} +template +simdjson_inline simdjson_result simdjson_result::get() && noexcept { + if (error()) { return error(); } + return std::forward(first).get(); +} +template +simdjson_inline error_code simdjson_result::get(T &out) & noexcept { + if (error()) { return error(); } + return first.get(out); +} +template +simdjson_inline error_code simdjson_result::get(T &out) && noexcept { + if (error()) { return error(); } + return std::forward(first).get(out); +} +simdjson_inline simdjson_result simdjson_result::type() noexcept { + if (error()) { return error(); } + return first.type(); +} +simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { + if (error()) { return error(); } + return first.is_scalar(); +} +simdjson_inline simdjson_result simdjson_result::is_string() noexcept { + if (error()) { return error(); } + return first.is_string(); +} +template <> +simdjson_inline error_code simdjson_result::get(arm64::ondemand::document_reference &out) & noexcept { + if (error()) { return error(); } + out = first; + return SUCCESS; +} +template <> +simdjson_inline error_code simdjson_result::get(arm64::ondemand::document_reference &out) && noexcept { + if (error()) { return error(); } + out = first; + return SUCCESS; +} +simdjson_inline simdjson_result simdjson_result::is_negative() noexcept { + if (error()) { return error(); } + return first.is_negative(); +} +simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { + if (error()) { return error(); } + return first.is_integer(); +} +simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { + if (error()) { return error(); } + return first.get_number_type(); +} +simdjson_inline simdjson_result simdjson_result::get_number() noexcept { + if (error()) { return error(); } + return first.get_number(); +} +#if SIMDJSON_EXCEPTIONS +template +simdjson_inline simdjson_result::operator T() noexcept(false) { + static_assert(std::is_same::value == false, "You should not call get when T is a document"); + static_assert(std::is_same::value == false, "You should not call get when T is a document"); + if (error()) { throw simdjson_error(error()); } + return first.get(); +} +simdjson_inline simdjson_result::operator arm64::ondemand::array() & noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator arm64::ondemand::object() & noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator int64_t() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator double() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator arm64::ondemand::raw_json_string() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator bool() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator arm64::ondemand::value() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +#endif + +simdjson_inline simdjson_result simdjson_result::current_location() noexcept { + if (error()) { return error(); } + return first.current_location(); +} + +simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { + if (error()) { return error(); } + return first.raw_json_token(); +} + +simdjson_inline simdjson_result simdjson_result::at_pointer(std::string_view json_pointer) noexcept { + if (error()) { return error(); } + return first.at_pointer(json_pointer); +} + +simdjson_inline simdjson_result simdjson_result::at_path(std::string_view json_path) noexcept { + if (error()) { + return error(); + } + return first.at_path(json_path); +} + +} // namespace simdjson + +#endif // SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H +/* end file simdjson/generic/ondemand/document-inl.h for arm64 */ +/* including simdjson/generic/ondemand/document_stream-inl.h for arm64: #include "simdjson/generic/ondemand/document_stream-inl.h" */ +/* begin file simdjson/generic/ondemand/document_stream-inl.h for arm64 */ +#ifndef SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H + +/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ +/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document_stream.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/implementation_simdjson_result_base-inl.h" */ +/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ + +#include +#include + +namespace simdjson { +namespace arm64 { +namespace ondemand { + +#ifdef SIMDJSON_THREADS_ENABLED + +inline void stage1_worker::finish() { + // After calling "run" someone would call finish() to wait + // for the end of the processing. + // This function will wait until either the thread has done + // the processing or, else, the destructor has been called. + std::unique_lock lock(locking_mutex); + cond_var.wait(lock, [this]{return has_work == false;}); +} + +inline stage1_worker::~stage1_worker() { // The thread may never outlive the stage1_worker instance // and will always be stopped/joined before the stage1_worker // instance is gone. @@ -37637,7 +39111,6 @@ simdjson_inline document_stream::iterator::iterator(document_stream* _stream, bo } simdjson_inline simdjson_result document_stream::iterator::operator*() noexcept { - //if(stream->error) { return stream->error; } return simdjson_result(stream->doc, stream->error); } @@ -39496,36 +40969,39 @@ simdjson_inline const char * raw_json_string::raw() const noexcept { return rein simdjson_inline bool raw_json_string::is_free_from_unescaped_quote(std::string_view target) noexcept { size_t pos{0}; - // if the content has no escape character, just scan through it quickly! - for(;pos < target.size() && target[pos] != '\\';pos++) {} - // slow path may begin. - bool escaping{false}; - for(;pos < target.size();pos++) { - if((target[pos] == '"') && !escaping) { - return false; - } else if(target[pos] == '\\') { - escaping = !escaping; - } else { - escaping = false; + while(pos < target.size()) { + pos = target.find('"', pos); + if(pos == std::string_view::npos) { return true; } + if(pos != 0 && target[pos-1] != '\\') { return false; } + if(pos > 1 && target[pos-2] == '\\') { + size_t backslash_count{2}; + for(size_t i = 3; i <= pos; i++) { + if(target[pos-i] == '\\') { backslash_count++; } + else { break; } + } + if(backslash_count % 2 == 0) { return false; } } + pos++; } return true; } simdjson_inline bool raw_json_string::is_free_from_unescaped_quote(const char* target) noexcept { size_t pos{0}; - // if the content has no escape character, just scan through it quickly! - for(;target[pos] && target[pos] != '\\';pos++) {} - // slow path may begin. - bool escaping{false}; - for(;target[pos];pos++) { - if((target[pos] == '"') && !escaping) { - return false; - } else if(target[pos] == '\\') { - escaping = !escaping; - } else { - escaping = false; + while(target[pos]) { + const char * result = strchr(target+pos, '"'); + if(result == nullptr) { return true; } + pos = result - target; + if(pos != 0 && target[pos-1] != '\\') { return false; } + if(pos > 1 && target[pos-2] == '\\') { + size_t backslash_count{2}; + for(size_t i = 3; i <= pos; i++) { + if(target[pos-i] == '\\') { backslash_count++; } + else { break; } + } + if(backslash_count % 2 == 0) { return false; } } + pos++; } return true; } @@ -39537,7 +41013,7 @@ simdjson_inline bool raw_json_string::unsafe_is_equal(size_t length, std::string } simdjson_inline bool raw_json_string::unsafe_is_equal(std::string_view target) const noexcept { - // Assumptions: does not contain unescaped quote characters, and + // Assumptions: does not contain unescaped quote characters("), and // the raw content is quote terminated within a valid JSON string. if(target.size() <= SIMDJSON_PADDING) { return (raw()[target.size()] == '"') && !memcmp(raw(), target.data(), target.size()); @@ -40011,775 +41487,230 @@ simdjson_inline simdjson_result::simdjson_resul #endif // SIMDJSON_GENERIC_ONDEMAND_TOKEN_ITERATOR_INL_H /* end file simdjson/generic/ondemand/token_iterator-inl.h for arm64 */ -/* including simdjson/generic/ondemand/value-inl.h for arm64: #include "simdjson/generic/ondemand/value-inl.h" */ -/* begin file simdjson/generic/ondemand/value-inl.h for arm64 */ -#ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H +/* including simdjson/generic/ondemand/value_iterator-inl.h for arm64: #include "simdjson/generic/ondemand/value_iterator-inl.h" */ +/* begin file simdjson/generic/ondemand/value_iterator-inl.h for arm64 */ +#ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H /* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ -/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H */ +/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/atomparsing.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/numberparsing.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string-inl.h" */ /* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ namespace simdjson { namespace arm64 { namespace ondemand { -simdjson_inline value::value(const value_iterator &_iter) noexcept - : iter{_iter} +simdjson_inline value_iterator::value_iterator( + json_iterator *json_iter, + depth_t depth, + token_position start_position +) noexcept : _json_iter{json_iter}, _depth{depth}, _start_position{start_position} { } -simdjson_inline value value::start(const value_iterator &iter) noexcept { - return iter; -} -simdjson_inline value value::resume(const value_iterator &iter) noexcept { - return iter; -} - -simdjson_inline simdjson_result value::get_array() noexcept { - return array::start(iter); -} -simdjson_inline simdjson_result value::get_object() noexcept { - return object::start(iter); -} -simdjson_inline simdjson_result value::start_or_resume_object() noexcept { - if (iter.at_start()) { - return get_object(); - } else { - return object::resume(iter); - } -} -simdjson_inline simdjson_result value::get_raw_json_string() noexcept { - return iter.get_raw_json_string(); -} -simdjson_inline simdjson_result value::get_string(bool allow_replacement) noexcept { - return iter.get_string(allow_replacement); -} -template -simdjson_inline error_code value::get_string(string_type& receiver, bool allow_replacement) noexcept { - return iter.get_string(receiver, allow_replacement); -} -simdjson_inline simdjson_result value::get_wobbly_string() noexcept { - return iter.get_wobbly_string(); -} -simdjson_inline simdjson_result value::get_double() noexcept { - return iter.get_double(); -} -simdjson_inline simdjson_result value::get_double_in_string() noexcept { - return iter.get_double_in_string(); -} -simdjson_inline simdjson_result value::get_uint64() noexcept { - return iter.get_uint64(); -} -simdjson_inline simdjson_result value::get_uint64_in_string() noexcept { - return iter.get_uint64_in_string(); -} -simdjson_inline simdjson_result value::get_int64() noexcept { - return iter.get_int64(); -} -simdjson_inline simdjson_result value::get_int64_in_string() noexcept { - return iter.get_int64_in_string(); -} -simdjson_inline simdjson_result value::get_bool() noexcept { - return iter.get_bool(); -} -simdjson_inline simdjson_result value::is_null() noexcept { - return iter.is_null(); +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::start_object() noexcept { + SIMDJSON_TRY( start_container('{', "Not an object", "object") ); + return started_object(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_array(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_object(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_raw_json_string(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_string(false); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_number(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_double(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_uint64(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_int64(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_bool(); } -template simdjson_inline error_code value::get(T &out) noexcept { - return get().get(out); +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::start_root_object() noexcept { + SIMDJSON_TRY( start_container('{', "Not an object", "object") ); + return started_root_object(); } -#if SIMDJSON_EXCEPTIONS -template -simdjson_inline value::operator T() noexcept(false) { - return get(); -} -simdjson_inline value::operator array() noexcept(false) { - return get_array(); -} -simdjson_inline value::operator object() noexcept(false) { - return get_object(); -} -simdjson_inline value::operator uint64_t() noexcept(false) { - return get_uint64(); -} -simdjson_inline value::operator int64_t() noexcept(false) { - return get_int64(); -} -simdjson_inline value::operator double() noexcept(false) { - return get_double(); -} -simdjson_inline value::operator std::string_view() noexcept(false) { - return get_string(false); -} -simdjson_inline value::operator raw_json_string() noexcept(false) { - return get_raw_json_string(); -} -simdjson_inline value::operator bool() noexcept(false) { - return get_bool(); -} +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::started_object() noexcept { + assert_at_container_start(); +#if SIMDJSON_DEVELOPMENT_CHECKS + _json_iter->set_start_position(_depth, start_position()); #endif - -simdjson_inline simdjson_result value::begin() & noexcept { - return get_array().begin(); -} -simdjson_inline simdjson_result value::end() & noexcept { - return {}; -} -simdjson_inline simdjson_result value::count_elements() & noexcept { - simdjson_result answer; - auto a = get_array(); - answer = a.count_elements(); - // count_elements leaves you pointing inside the array, at the first element. - // We need to move back so that the user can create a new array (which requires that - // we point at '['). - iter.move_at_start(); - return answer; -} -simdjson_inline simdjson_result value::count_fields() & noexcept { - simdjson_result answer; - auto a = get_object(); - answer = a.count_fields(); - iter.move_at_start(); - return answer; -} -simdjson_inline simdjson_result value::at(size_t index) noexcept { - auto a = get_array(); - return a.at(index); -} - -simdjson_inline simdjson_result value::find_field(std::string_view key) noexcept { - return start_or_resume_object().find_field(key); -} -simdjson_inline simdjson_result value::find_field(const char *key) noexcept { - return start_or_resume_object().find_field(key); -} - -simdjson_inline simdjson_result value::find_field_unordered(std::string_view key) noexcept { - return start_or_resume_object().find_field_unordered(key); -} -simdjson_inline simdjson_result value::find_field_unordered(const char *key) noexcept { - return start_or_resume_object().find_field_unordered(key); -} - -simdjson_inline simdjson_result value::operator[](std::string_view key) noexcept { - return start_or_resume_object()[key]; -} -simdjson_inline simdjson_result value::operator[](const char *key) noexcept { - return start_or_resume_object()[key]; -} - -simdjson_inline simdjson_result value::type() noexcept { - return iter.type(); + if (*_json_iter->peek() == '}') { + logger::log_value(*_json_iter, "empty object"); + _json_iter->return_current_and_advance(); + end_container(); + return false; + } + return true; } -simdjson_inline simdjson_result value::is_scalar() noexcept { - json_type this_type; - auto error = type().get(this_type); - if(error) { return error; } - return ! ((this_type == json_type::array) || (this_type == json_type::object)); +simdjson_warn_unused simdjson_inline error_code value_iterator::check_root_object() noexcept { + // When in streaming mode, we cannot expect peek_last() to be the last structural element of the + // current document. It only works in the normal mode where we have indexed a single document. + // Note that adding a check for 'streaming' is not expensive since we only have at most + // one root element. + if ( ! _json_iter->streaming() ) { + // The following lines do not fully protect against garbage content within the + // object: e.g., `{"a":2} foo }`. Users concerned with garbage content should + // call `at_end()` on the document instance at the end of the processing to + // ensure that the processing has finished at the end. + // + if (*_json_iter->peek_last() != '}') { + _json_iter->abandon(); + return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing } at end"); + } + // If the last character is } *and* the first gibberish character is also '}' + // then on-demand could accidentally go over. So we need additional checks. + // https://github.com/simdjson/simdjson/issues/1834 + // Checking that the document is balanced requires a full scan which is potentially + // expensive, but it only happens in edge cases where the first padding character is + // a closing bracket. + if ((*_json_iter->peek(_json_iter->end_position()) == '}') && (!_json_iter->balanced())) { + _json_iter->abandon(); + // The exact error would require more work. It will typically be an unclosed object. + return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "the document is unbalanced"); + } + } + return SUCCESS; } -simdjson_inline simdjson_result value::is_string() noexcept { - json_type this_type; - auto error = type().get(this_type); +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::started_root_object() noexcept { + auto error = check_root_object(); if(error) { return error; } - return (this_type == json_type::string); -} - - -simdjson_inline bool value::is_negative() noexcept { - return iter.is_negative(); + return started_object(); } -simdjson_inline simdjson_result value::is_integer() noexcept { - return iter.is_integer(); -} -simdjson_warn_unused simdjson_inline simdjson_result value::get_number_type() noexcept { - return iter.get_number_type(); -} -simdjson_warn_unused simdjson_inline simdjson_result value::get_number() noexcept { - return iter.get_number(); +simdjson_warn_unused simdjson_inline error_code value_iterator::end_container() noexcept { +#if SIMDJSON_CHECK_EOF + if (depth() > 1 && at_end()) { return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing parent ] or }"); } + // if (depth() <= 1 && !at_end()) { return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing [ or { at start"); } +#endif // SIMDJSON_CHECK_EOF + _json_iter->ascend_to(depth()-1); + return SUCCESS; } -simdjson_inline std::string_view value::raw_json_token() noexcept { - return std::string_view(reinterpret_cast(iter.peek_start()), iter.peek_start_length()); -} +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::has_next_field() noexcept { + assert_at_next(); -simdjson_inline simdjson_result value::raw_json() noexcept { - json_type t; - SIMDJSON_TRY(type().get(t)); - switch (t) - { - case json_type::array: { - ondemand::array array; - SIMDJSON_TRY(get_array().get(array)); - return array.raw_json(); - } - case json_type::object: { - ondemand::object object; - SIMDJSON_TRY(get_object().get(object)); - return object.raw_json(); - } + // It's illegal to call this unless there are more tokens: anything that ends in } or ] is + // obligated to verify there are more tokens if they are not the top level. + switch (*_json_iter->return_current_and_advance()) { + case '}': + logger::log_end_value(*_json_iter, "object"); + SIMDJSON_TRY( end_container() ); + return false; + case ',': + return true; default: - return raw_json_token(); + return report_error(TAPE_ERROR, "Missing comma between object fields"); } } -simdjson_inline simdjson_result value::current_location() noexcept { - return iter.json_iter().current_location(); -} - -simdjson_inline int32_t value::current_depth() const noexcept{ - return iter.json_iter().depth(); -} +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::find_field_raw(const std::string_view key) noexcept { + error_code error; + bool has_value; + // + // Initially, the object can be in one of a few different places: + // + // 1. The start of the object, at the first field: + // + // ``` + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 2, index 1) + // ``` + if (at_first_field()) { + has_value = true; -inline bool is_pointer_well_formed(std::string_view json_pointer) noexcept { - if (simdjson_unlikely(json_pointer.empty())) { // can't be - return false; - } - if (simdjson_unlikely(json_pointer[0] != '/')) { - return false; - } - size_t escape = json_pointer.find('~'); - if (escape == std::string_view::npos) { - return true; - } - if (escape == json_pointer.size() - 1) { - return false; - } - if (json_pointer[escape + 1] != '0' && json_pointer[escape + 1] != '1') { + // + // 2. When a previous search did not yield a value or the object is empty: + // + // ``` + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 0) + // { } + // ^ (depth 0, index 2) + // ``` + // + } else if (!is_open()) { +#if SIMDJSON_DEVELOPMENT_CHECKS + // If we're past the end of the object, we're being iterated out of order. + // Note: this is not perfect detection. It's possible the user is inside some other object; if so, + // this object iterator will blithely scan that object for fields. + if (_json_iter->depth() < depth() - 1) { return OUT_OF_ORDER_ITERATION; } +#endif return false; - } - return true; -} -simdjson_inline simdjson_result value::at_pointer(std::string_view json_pointer) noexcept { - json_type t; - SIMDJSON_TRY(type().get(t)); - switch (t) - { - case json_type::array: - return (*this).get_array().at_pointer(json_pointer); - case json_type::object: - return (*this).get_object().at_pointer(json_pointer); - default: - // a non-empty string can be invalid, or accessing a primitive (issue 2154) - if (is_pointer_well_formed(json_pointer)) { - return NO_SUCH_FIELD; - } - return INVALID_JSON_POINTER; + // 3. When a previous search found a field or an iterator yielded a value: + // + // ``` + // // When a field was not fully consumed (or not even touched at all) + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 2) + // // When a field was fully consumed + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 1) + // // When the last field was fully consumed + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 1) + // ``` + // + } else { + if ((error = skip_child() )) { abandon(); return error; } + if ((error = has_next_field().get(has_value) )) { abandon(); return error; } +#if SIMDJSON_DEVELOPMENT_CHECKS + if (_json_iter->start_position(_depth) != start_position()) { return OUT_OF_ORDER_ITERATION; } +#endif } -} + while (has_value) { + // Get the key and colon, stopping at the value. + raw_json_string actual_key; + // size_t max_key_length = _json_iter->peek_length() - 2; // -2 for the two quotes + // Note: _json_iter->peek_length() - 2 might overflow if _json_iter->peek_length() < 2. + // field_key() advances the pointer and checks that '"' is found (corresponding to a key). + // The depth is left unchanged by field_key(). + if ((error = field_key().get(actual_key) )) { abandon(); return error; }; + // field_value() will advance and check that we find a ':' separating the + // key and the value. It will also increment the depth by one. + if ((error = field_value() )) { abandon(); return error; } + // If it matches, stop and return + // We could do it this way if we wanted to allow arbitrary + // key content (including escaped quotes). + //if (actual_key.unsafe_is_equal(max_key_length, key)) { + // Instead we do the following which may trigger buffer overruns if the + // user provides an adversarial key (containing a well placed unescaped quote + // character and being longer than the number of bytes remaining in the JSON + // input). + if (actual_key.unsafe_is_equal(key)) { + logger::log_event(*this, "match", key, -2); + // If we return here, then we return while pointing at the ':' that we just checked. + return true; + } -simdjson_inline simdjson_result value::at_path(std::string_view json_path) noexcept { - json_type t; - SIMDJSON_TRY(type().get(t)); - switch (t) { - case json_type::array: - return (*this).get_array().at_path(json_path); - case json_type::object: - return (*this).get_object().at_path(json_path); - default: - return INVALID_JSON_POINTER; + // No match: skip the value and see if , or } is next + logger::log_event(*this, "no match", key, -2); + // The call to skip_child is meant to skip over the value corresponding to the key. + // After skip_child(), we are right before the next comma (',') or the final brace ('}'). + SIMDJSON_TRY( skip_child() ); // Skip the value entirely + // The has_next_field() advances the pointer and check that either ',' or '}' is found. + // It returns true if ',' is found, false otherwise. If anything other than ',' or '}' is found, + // then we are in error and we abort. + if ((error = has_next_field().get(has_value) )) { abandon(); return error; } } -} - -} // namespace ondemand -} // namespace arm64 -} // namespace simdjson - -namespace simdjson { -simdjson_inline simdjson_result::simdjson_result( - arm64::ondemand::value &&value -) noexcept : - implementation_simdjson_result_base( - std::forward(value) - ) -{ -} -simdjson_inline simdjson_result::simdjson_result( - error_code error -) noexcept : - implementation_simdjson_result_base(error) -{ -} -simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { - if (error()) { return error(); } - return first.count_elements(); -} -simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { - if (error()) { return error(); } - return first.count_fields(); -} -simdjson_inline simdjson_result simdjson_result::at(size_t index) noexcept { - if (error()) { return error(); } - return first.at(index); -} -simdjson_inline simdjson_result simdjson_result::begin() & noexcept { - if (error()) { return error(); } - return first.begin(); -} -simdjson_inline simdjson_result simdjson_result::end() & noexcept { - if (error()) { return error(); } - return {}; + // If the loop ended, we're out of fields to look at. + return false; } -simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) noexcept { - if (error()) { return error(); } - return first.find_field(key); -} -simdjson_inline simdjson_result simdjson_result::find_field(const char *key) noexcept { - if (error()) { return error(); } - return first.find_field(key); -} +SIMDJSON_PUSH_DISABLE_WARNINGS +SIMDJSON_DISABLE_STRICT_OVERFLOW_WARNING +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::find_field_unordered_raw(const std::string_view key) noexcept { + /** + * When find_field_unordered_raw is called, we can either be pointing at the + * first key, pointing outside (at the closing brace) or if a key was matched + * we can be either pointing right afterthe ':' right before the value (that we need skip), + * or we may have consumed the value and we might be at a comma or at the + * final brace (ready for a call to has_next_field()). + */ + error_code error; + bool has_value; -simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) noexcept { - if (error()) { return error(); } - return first.find_field_unordered(key); -} -simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) noexcept { - if (error()) { return error(); } - return first.find_field_unordered(key); -} - -simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) noexcept { - if (error()) { return error(); } - return first[key]; -} -simdjson_inline simdjson_result simdjson_result::operator[](const char *key) noexcept { - if (error()) { return error(); } - return first[key]; -} - -simdjson_inline simdjson_result simdjson_result::get_array() noexcept { - if (error()) { return error(); } - return first.get_array(); -} -simdjson_inline simdjson_result simdjson_result::get_object() noexcept { - if (error()) { return error(); } - return first.get_object(); -} -simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { - if (error()) { return error(); } - return first.get_uint64(); -} -simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { - if (error()) { return error(); } - return first.get_uint64_in_string(); -} -simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { - if (error()) { return error(); } - return first.get_int64(); -} -simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { - if (error()) { return error(); } - return first.get_int64_in_string(); -} -simdjson_inline simdjson_result simdjson_result::get_double() noexcept { - if (error()) { return error(); } - return first.get_double(); -} -simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { - if (error()) { return error(); } - return first.get_double_in_string(); -} -simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { - if (error()) { return error(); } - return first.get_string(allow_replacement); -} -template -simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { - if (error()) { return error(); } - return first.get_string(receiver, allow_replacement); -} -simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { - if (error()) { return error(); } - return first.get_wobbly_string(); -} -simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { - if (error()) { return error(); } - return first.get_raw_json_string(); -} -simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { - if (error()) { return error(); } - return first.get_bool(); -} -simdjson_inline simdjson_result simdjson_result::is_null() noexcept { - if (error()) { return error(); } - return first.is_null(); -} - -template simdjson_inline simdjson_result simdjson_result::get() noexcept { - if (error()) { return error(); } - return first.get(); -} -template simdjson_inline error_code simdjson_result::get(T &out) noexcept { - if (error()) { return error(); } - return first.get(out); -} - -template<> simdjson_inline simdjson_result simdjson_result::get() noexcept { - if (error()) { return error(); } - return std::move(first); -} -template<> simdjson_inline error_code simdjson_result::get(arm64::ondemand::value &out) noexcept { - if (error()) { return error(); } - out = first; - return SUCCESS; -} - -simdjson_inline simdjson_result simdjson_result::type() noexcept { - if (error()) { return error(); } - return first.type(); -} -simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { - if (error()) { return error(); } - return first.is_scalar(); -} -simdjson_inline simdjson_result simdjson_result::is_string() noexcept { - if (error()) { return error(); } - return first.is_string(); -} -simdjson_inline simdjson_result simdjson_result::is_negative() noexcept { - if (error()) { return error(); } - return first.is_negative(); -} -simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { - if (error()) { return error(); } - return first.is_integer(); -} -simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { - if (error()) { return error(); } - return first.get_number_type(); -} -simdjson_inline simdjson_result simdjson_result::get_number() noexcept { - if (error()) { return error(); } - return first.get_number(); -} -#if SIMDJSON_EXCEPTIONS -template -simdjson_inline simdjson_result::operator T() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return static_cast(first); -} -simdjson_inline simdjson_result::operator arm64::ondemand::array() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator arm64::ondemand::object() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator int64_t() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator double() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator arm64::ondemand::raw_json_string() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator bool() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -#endif - -simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { - if (error()) { return error(); } - return first.raw_json_token(); -} - -simdjson_inline simdjson_result simdjson_result::raw_json() noexcept { - if (error()) { return error(); } - return first.raw_json(); -} - -simdjson_inline simdjson_result simdjson_result::current_location() noexcept { - if (error()) { return error(); } - return first.current_location(); -} - -simdjson_inline simdjson_result simdjson_result::current_depth() const noexcept { - if (error()) { return error(); } - return first.current_depth(); -} - -simdjson_inline simdjson_result simdjson_result::at_pointer( - std::string_view json_pointer) noexcept { - if (error()) { - return error(); - } - return first.at_pointer(json_pointer); -} - -simdjson_inline simdjson_result simdjson_result::at_path( - std::string_view json_path) noexcept { - if (error()) { - return error(); - } - return first.at_path(json_path); -} - -} // namespace simdjson - -#endif // SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H -/* end file simdjson/generic/ondemand/value-inl.h for arm64 */ -/* including simdjson/generic/ondemand/value_iterator-inl.h for arm64: #include "simdjson/generic/ondemand/value_iterator-inl.h" */ -/* begin file simdjson/generic/ondemand/value_iterator-inl.h for arm64 */ -#ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H - -/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ -/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/atomparsing.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/numberparsing.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string-inl.h" */ -/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ - -namespace simdjson { -namespace arm64 { -namespace ondemand { - -simdjson_inline value_iterator::value_iterator( - json_iterator *json_iter, - depth_t depth, - token_position start_position -) noexcept : _json_iter{json_iter}, _depth{depth}, _start_position{start_position} -{ -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::start_object() noexcept { - SIMDJSON_TRY( start_container('{', "Not an object", "object") ); - return started_object(); -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::start_root_object() noexcept { - SIMDJSON_TRY( start_container('{', "Not an object", "object") ); - return started_root_object(); -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::started_object() noexcept { - assert_at_container_start(); -#if SIMDJSON_DEVELOPMENT_CHECKS - _json_iter->set_start_position(_depth, start_position()); -#endif - if (*_json_iter->peek() == '}') { - logger::log_value(*_json_iter, "empty object"); - _json_iter->return_current_and_advance(); - end_container(); - return false; - } - return true; -} - -simdjson_warn_unused simdjson_inline error_code value_iterator::check_root_object() noexcept { - // When in streaming mode, we cannot expect peek_last() to be the last structural element of the - // current document. It only works in the normal mode where we have indexed a single document. - // Note that adding a check for 'streaming' is not expensive since we only have at most - // one root element. - if ( ! _json_iter->streaming() ) { - // The following lines do not fully protect against garbage content within the - // object: e.g., `{"a":2} foo }`. Users concerned with garbage content should - // call `at_end()` on the document instance at the end of the processing to - // ensure that the processing has finished at the end. - // - if (*_json_iter->peek_last() != '}') { - _json_iter->abandon(); - return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing } at end"); - } - // If the last character is } *and* the first gibberish character is also '}' - // then on-demand could accidentally go over. So we need additional checks. - // https://github.com/simdjson/simdjson/issues/1834 - // Checking that the document is balanced requires a full scan which is potentially - // expensive, but it only happens in edge cases where the first padding character is - // a closing bracket. - if ((*_json_iter->peek(_json_iter->end_position()) == '}') && (!_json_iter->balanced())) { - _json_iter->abandon(); - // The exact error would require more work. It will typically be an unclosed object. - return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "the document is unbalanced"); - } - } - return SUCCESS; -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::started_root_object() noexcept { - auto error = check_root_object(); - if(error) { return error; } - return started_object(); -} - -simdjson_warn_unused simdjson_inline error_code value_iterator::end_container() noexcept { -#if SIMDJSON_CHECK_EOF - if (depth() > 1 && at_end()) { return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing parent ] or }"); } - // if (depth() <= 1 && !at_end()) { return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing [ or { at start"); } -#endif // SIMDJSON_CHECK_EOF - _json_iter->ascend_to(depth()-1); - return SUCCESS; -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::has_next_field() noexcept { - assert_at_next(); - - // It's illegal to call this unless there are more tokens: anything that ends in } or ] is - // obligated to verify there are more tokens if they are not the top level. - switch (*_json_iter->return_current_and_advance()) { - case '}': - logger::log_end_value(*_json_iter, "object"); - SIMDJSON_TRY( end_container() ); - return false; - case ',': - return true; - default: - return report_error(TAPE_ERROR, "Missing comma between object fields"); - } -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::find_field_raw(const std::string_view key) noexcept { - error_code error; - bool has_value; - // - // Initially, the object can be in one of a few different places: - // - // 1. The start of the object, at the first field: - // - // ``` - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 2, index 1) - // ``` - if (at_first_field()) { - has_value = true; - - // - // 2. When a previous search did not yield a value or the object is empty: - // - // ``` - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 0) - // { } - // ^ (depth 0, index 2) - // ``` - // - } else if (!is_open()) { -#if SIMDJSON_DEVELOPMENT_CHECKS - // If we're past the end of the object, we're being iterated out of order. - // Note: this is not perfect detection. It's possible the user is inside some other object; if so, - // this object iterator will blithely scan that object for fields. - if (_json_iter->depth() < depth() - 1) { return OUT_OF_ORDER_ITERATION; } -#endif - return false; - - // 3. When a previous search found a field or an iterator yielded a value: - // - // ``` - // // When a field was not fully consumed (or not even touched at all) - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 2) - // // When a field was fully consumed - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 1) - // // When the last field was fully consumed - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 1) - // ``` - // - } else { - if ((error = skip_child() )) { abandon(); return error; } - if ((error = has_next_field().get(has_value) )) { abandon(); return error; } -#if SIMDJSON_DEVELOPMENT_CHECKS - if (_json_iter->start_position(_depth) != start_position()) { return OUT_OF_ORDER_ITERATION; } -#endif - } - while (has_value) { - // Get the key and colon, stopping at the value. - raw_json_string actual_key; - // size_t max_key_length = _json_iter->peek_length() - 2; // -2 for the two quotes - // Note: _json_iter->peek_length() - 2 might overflow if _json_iter->peek_length() < 2. - // field_key() advances the pointer and checks that '"' is found (corresponding to a key). - // The depth is left unchanged by field_key(). - if ((error = field_key().get(actual_key) )) { abandon(); return error; }; - // field_value() will advance and check that we find a ':' separating the - // key and the value. It will also increment the depth by one. - if ((error = field_value() )) { abandon(); return error; } - // If it matches, stop and return - // We could do it this way if we wanted to allow arbitrary - // key content (including escaped quotes). - //if (actual_key.unsafe_is_equal(max_key_length, key)) { - // Instead we do the following which may trigger buffer overruns if the - // user provides an adversarial key (containing a well placed unescaped quote - // character and being longer than the number of bytes remaining in the JSON - // input). - if (actual_key.unsafe_is_equal(key)) { - logger::log_event(*this, "match", key, -2); - // If we return here, then we return while pointing at the ':' that we just checked. - return true; - } - - // No match: skip the value and see if , or } is next - logger::log_event(*this, "no match", key, -2); - // The call to skip_child is meant to skip over the value corresponding to the key. - // After skip_child(), we are right before the next comma (',') or the final brace ('}'). - SIMDJSON_TRY( skip_child() ); // Skip the value entirely - // The has_next_field() advances the pointer and check that either ',' or '}' is found. - // It returns true if ',' is found, false otherwise. If anything other than ',' or '}' is found, - // then we are in error and we abort. - if ((error = has_next_field().get(has_value) )) { abandon(); return error; } - } - - // If the loop ended, we're out of fields to look at. - return false; -} - -SIMDJSON_PUSH_DISABLE_WARNINGS -SIMDJSON_DISABLE_STRICT_OVERFLOW_WARNING -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::find_field_unordered_raw(const std::string_view key) noexcept { - /** - * When find_field_unordered_raw is called, we can either be pointing at the - * first key, pointing outside (at the closing brace) or if a key was matched - * we can be either pointing right afterthe ':' right before the value (that we need skip), - * or we may have consumed the value and we might be at a comma or at the - * final brace (ready for a call to has_next_field()). - */ - error_code error; - bool has_value; - - // First, we scan from that point to the end. - // If we don't find a match, we may loop back around, and scan from the beginning to that point. - token_position search_start = _json_iter->position(); + // First, we scan from that point to the end. + // If we don't find a match, we may loop back around, and scan from the beginning to that point. + token_position search_start = _json_iter->position(); // We want to know whether we need to go back to the beginning. bool at_first = at_first_field(); @@ -41359,6 +42290,8 @@ simdjson_inline simdjson_result value_iterator::is_root_null(bool check_tr if(result) { // we have something that looks like a null. if (check_trailing && !_json_iter->is_single_token()) { return TRAILING_CONTENT; } advance_root_scalar("null"); + } else if (json[0] == 'n') { + return incorrect_type_error("Not a null but starts with n"); } return result; } @@ -41650,6 +42583,8 @@ simdjson_inline simdjson_result::simdjson_resul #endif // SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H /* end file simdjson/generic/ondemand/value_iterator-inl.h for arm64 */ + + /* end file simdjson/generic/ondemand/amalgamated.h for arm64 */ /* including simdjson/arm64/end.h: #include "simdjson/arm64/end.h" */ /* begin file simdjson/arm64/end.h */ @@ -41865,7 +42800,13 @@ simdjson_inline internal::value128 full_multiplication(uint64_t value1, uint64_t } // namespace fallback } // namespace simdjson +#ifndef SIMDJSON_SWAR_NUMBER_PARSING +#if SIMDJSON_IS_BIG_ENDIAN +#define SIMDJSON_SWAR_NUMBER_PARSING 0 +#else #define SIMDJSON_SWAR_NUMBER_PARSING 1 +#endif +#endif #endif // SIMDJSON_FALLBACK_NUMBERPARSING_DEFS_H /* end file simdjson/fallback/numberparsing_defs.h */ @@ -41927,6 +42868,132 @@ class value_iterator; #endif // SIMDJSON_GENERIC_ONDEMAND_BASE_H /* end file simdjson/generic/ondemand/base.h for fallback */ +/* including simdjson/generic/ondemand/deserialize.h for fallback: #include "simdjson/generic/ondemand/deserialize.h" */ +/* begin file simdjson/generic/ondemand/deserialize.h for fallback */ +#if SIMDJSON_SUPPORTS_DESERIALIZATION + +#ifndef SIMDJSON_ONDEMAND_DESERIALIZE_H +/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ +/* amalgamation skipped (editor-only): #define SIMDJSON_ONDEMAND_DESERIALIZE_H */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array.h" */ +/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ + +#include +namespace simdjson { + +namespace tag_invoke_fn_ns { +void tag_invoke(); + +struct tag_invoke_fn { + template + requires requires(Tag tag, Args &&...args) { + tag_invoke(std::forward(tag), std::forward(args)...); + } + constexpr auto operator()(Tag tag, Args &&...args) const + noexcept(noexcept(tag_invoke(std::forward(tag), + std::forward(args)...))) + -> decltype(tag_invoke(std::forward(tag), + std::forward(args)...)) { + return tag_invoke(std::forward(tag), std::forward(args)...); + } +}; +} // namespace tag_invoke_fn_ns + +inline namespace tag_invoke_ns { +inline constexpr tag_invoke_fn_ns::tag_invoke_fn tag_invoke = {}; +} // namespace tag_invoke_ns + +template +concept tag_invocable = requires(Tag tag, Args... args) { + tag_invoke(std::forward(tag), std::forward(args)...); +}; + +template +concept nothrow_tag_invocable = + tag_invocable && requires(Tag tag, Args... args) { + { + tag_invoke(std::forward(tag), std::forward(args)...) + } noexcept; + }; + +template +using tag_invoke_result = + std::invoke_result; + +template +using tag_invoke_result_t = + std::invoke_result_t; + +template using tag_t = std::decay_t; + + +struct deserialize_tag; + +/// These types are deserializable in a built-in way +template struct is_builtin_deserializable : std::false_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; + +template +concept is_builtin_deserializable_v = is_builtin_deserializable::value; + +template +concept custom_deserializable = tag_invocable; + +template +concept deserializable = custom_deserializable || is_builtin_deserializable_v; + +template +concept nothrow_custom_deserializable = nothrow_tag_invocable; + +// built-in types are noexcept and if an error happens, the value simply gets ignored and the error is returned. +template +concept nothrow_deserializable = nothrow_custom_deserializable || is_builtin_deserializable_v; + +/// Deserialize Tag +inline constexpr struct deserialize_tag { + using value_type = fallback::ondemand::value; + using document_type = fallback::ondemand::document; + using document_reference_type = fallback::ondemand::document_reference; + + // Customization Point for value + template + requires custom_deserializable + [[nodiscard]] constexpr /* error_code */ auto operator()(value_type &object, T& output) const noexcept(nothrow_custom_deserializable) { + return tag_invoke(*this, object, output); + } + + // Customization Point for document + template + requires custom_deserializable + [[nodiscard]] constexpr /* error_code */ auto operator()(document_type &object, T& output) const noexcept(nothrow_custom_deserializable) { + return tag_invoke(*this, object, output); + } + + // Customization Point for document reference + template + requires custom_deserializable + [[nodiscard]] constexpr /* error_code */ auto operator()(document_reference_type &object, T& output) const noexcept(nothrow_custom_deserializable) { + return tag_invoke(*this, object, output); + } + + +} deserialize{}; + +} // namespace simdjson + +#endif // SIMDJSON_ONDEMAND_DESERIALIZE_H +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION + +/* end file simdjson/generic/ondemand/deserialize.h for fallback */ /* including simdjson/generic/ondemand/value_iterator.h for fallback: #include "simdjson/generic/ondemand/value_iterator.h" */ /* begin file simdjson/generic/ondemand/value_iterator.h for fallback */ #ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_H @@ -42431,12 +43498,15 @@ struct simdjson_result : public fallback::im /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/implementation_simdjson_result_base.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/deserialize.h" */ /* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ +#include + namespace simdjson { + namespace fallback { namespace ondemand { - /** * An ephemeral JSON value returned during iteration. It is only valid for as long as you do * not access more data in the JSON document. @@ -42461,16 +43531,21 @@ class value { * @returns A value of the given type, parsed from the JSON. * @returns INCORRECT_TYPE If the JSON value is not the given type. */ - template simdjson_inline simdjson_result get() noexcept { - // Unless the simdjson library or the user provides an inline implementation, calling this method should - // immediately fail. - static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " - "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " - "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " - " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." - " You may also add support for custom types, see our documentation."); + template + simdjson_inline simdjson_result get() +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(std::is_default_constructible::value, "The specified type is not default constructible."); + T out{}; + SIMDJSON_TRY(get(out)); + return out; } + /** * Get this value as the given type. * @@ -42480,7 +43555,32 @@ class value { * @returns INCORRECT_TYPE If the JSON value is not an object. * @returns SUCCESS If the parse succeeded and the out parameter was set to the value. */ - template simdjson_inline error_code get(T &out) noexcept; + template + simdjson_inline error_code get(T &out) +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { +#if SIMDJSON_SUPPORTS_DESERIALIZATION + if constexpr (custom_deserializable) { + return deserialize(*this, out); + } else { +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION + // Unless the simdjson library or the user provides an inline implementation, calling this method should + // immediately fail. + static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " + "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " + "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " + " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." + " You may also add support for custom types, see our documentation."); + static_cast(out); // to get rid of unused errors + return UNINITIALIZED; +#if SIMDJSON_SUPPORTS_DESERIALIZATION + } +#endif + } /** * Cast this JSON value to an array. @@ -42556,6 +43656,17 @@ class value { * Important: a value should be consumed once. Calling get_string() twice on the same value * is an error. * + * In some instances, you may want to allow replacement of invalid Unicode sequences. + * You may do so by passing the allow_replacement parameter as true. In the following + * example, the string "431924697b\udff0L\u0001Y" is not valid Unicode. By passing true + * to get_string, we allow the replacement of the invalid Unicode sequences with the Unicode + * replacement character (U+FFFD). + * + * simdjson::ondemand::parser parser; + * auto json = R"({"deviceId":"431924697b\udff0L\u0001Y"})"_padded; + * simdjson::ondemand::document doc = parser.iterate(json); + * auto view = doc["deviceId"].get_string(true); + * * @returns An UTF-8 string. The string is stored in the parser and will be invalidated the next * time it parses a document or when it is destroyed. * @returns INCORRECT_TYPE if the JSON value is not a string. @@ -42807,6 +43918,7 @@ class value { simdjson_inline simdjson_result operator[](std::string_view key) noexcept; /** @overload simdjson_inline simdjson_result find_field_unordered(std::string_view key) noexcept; */ simdjson_inline simdjson_result operator[](const char *key) noexcept; + simdjson_result operator[](int) noexcept = delete; /** * Get the type of this JSON value. It does not validate or consume the value. @@ -43174,6 +44286,7 @@ struct simdjson_result : public fallback::implementat simdjson_inline simdjson_result operator[](std::string_view key) noexcept; /** @overload simdjson_inline simdjson_result find_field_unordered(std::string_view key) noexcept; */ simdjson_inline simdjson_result operator[](const char *key) noexcept; + simdjson_result operator[](int) noexcept = delete; /** * Get the type of this JSON value. @@ -44229,6 +45342,22 @@ class parser { * using a sanitizer that verifies that no uninitialized byte is read, then you should initialize the * SIMDJSON_PADDING bytes to avoid runtime warnings. * + * ### std::string references + * + * If you pass a mutable std::string reference (std::string&), the parser will seek to extend + * its capacity to SIMDJSON_PADDING bytes beyond the end of the string. + * + * Whenever you pass an std::string reference, the parser will access the bytes beyond the end of + * the string but before the end of the allocated memory (std::string::capacity()). + * If you are using a sanitizer that checks for reading uninitialized bytes or std::string's + * container-overflow checks, you may encounter sanitizer warnings. + * You can safely ignore these warnings. Or you can call simdjson::pad(std::string&) to pad the + * string with SIMDJSON_PADDING spaces: this function returns a simdjson::padding_string_view + * which can be be passed to the parser's iterate function: + * + * std::string json = R"({ "foo": 1 } { "foo": 2 } { "foo": 3 } )"; + * document doc = parser.iterate(simdjson::pad(json)); + * * @param json The JSON to parse. * @param len The length of the JSON. * @param capacity The number of bytes allocated in the JSON (must be at least len+SIMDJSON_PADDING). @@ -44423,8 +45552,12 @@ class parser { * behavior of the parser for future operations. */ bool threaded{true}; + #else + /** + * When SIMDJSON_THREADS_ENABLED is not defined, the parser instance cannot use threads. + */ + bool threaded{false}; #endif - /** * Unescape this JSON string, replacing \\ with \, \n with newline, etc. to a user-provided buffer. * The result must be valid UTF-8. @@ -44566,7 +45699,8 @@ class array { * calling this function, if successful, the array is 'rewinded' at its * beginning as if it had never been accessed. If the JSON is malformed (e.g., * there is a missing comma), then an error is returned and it is no longer - * safe to continue. + * safe to continue. Note that count_elements() does not validate the JSON values, + * only the structure of the array. * * To check that an array is empty, it is more performant to use * the is_empty() method. @@ -44844,8 +45978,11 @@ struct simdjson_result : public fallback::im /* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_H */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/deserialize.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ /* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ + namespace simdjson { namespace fallback { namespace ondemand { @@ -45018,24 +46155,39 @@ class document { * @returns A value of the given type, parsed from the JSON. * @returns INCORRECT_TYPE If the JSON value is not the given type. */ - template simdjson_inline simdjson_result get() & noexcept { - // Unless the simdjson library or the user provides an inline implementation, calling this method should - // immediately fail. - static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " - "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " - "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " - " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." - " You may also add support for custom types, see our documentation."); - } - /** @overload template simdjson_result get() & noexcept */ - template simdjson_deprecated simdjson_inline simdjson_result get() && noexcept { - // Unless the simdjson library or the user provides an inline implementation, calling this method should - // immediately fail. - static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " - "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " - "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " - " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." - " You may also add support for custom types, see our documentation."); + template + simdjson_inline simdjson_result get() & +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(std::is_default_constructible::value, "Cannot initialize the specified type."); + T out{}; + SIMDJSON_TRY(get(out)); + return out; + } + /** + * @overload template simdjson_result get() & noexcept + * + * We disallow the use tag_invoke CPO on a moved document; it may create UB + * if user uses `ondemand::array` or `ondemand::object` in their custom type. + * + * The member function is still remains specialize-able for compatibility + * reasons, but we completely disallow its use when a tag_invoke customization + * is provided. + */ + template + simdjson_inline simdjson_result get() && +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(!std::is_same::value && !std::is_same::value, "You should never hold either an ondemand::array or ondemand::object without a corresponding ondemand::document being alive; that would be Undefined Behaviour."); + return static_cast(*this).get(); } /** @@ -45049,7 +46201,32 @@ class document { * @returns INCORRECT_TYPE If the JSON value is not an object. * @returns SUCCESS If the parse succeeded and the out parameter was set to the value. */ - template simdjson_inline error_code get(T &out) & noexcept; + template + simdjson_inline error_code get(T &out) & +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { +#if SIMDJSON_SUPPORTS_DESERIALIZATION + if constexpr (custom_deserializable) { + return deserialize(*this, out); + } else { +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION + // Unless the simdjson library or the user provides an inline implementation, calling this method should + // immediately fail. + static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " + "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " + "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " + " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." + " You may also add support for custom types, see our documentation."); + static_cast(out); // to get rid of unused errors + return UNINITIALIZED; +#if SIMDJSON_SUPPORTS_DESERIALIZATION + } +#endif + } /** @overload template error_code get(T &out) & noexcept */ template simdjson_deprecated simdjson_inline error_code get(T &out) && noexcept; @@ -45151,7 +46328,8 @@ class document { * calling this function, if successful, the array is 'rewinded' at its * beginning as if it had never been accessed. If the JSON is malformed (e.g., * there is a missing comma), then an error is returned and it is no longer - * safe to continue. + * safe to continue. Note that count_elements() does not validate the JSON values, + * only the structure of the array. */ simdjson_inline simdjson_result count_elements() & noexcept; /** @@ -45263,6 +46441,7 @@ class document { simdjson_inline simdjson_result operator[](std::string_view key) & noexcept; /** @overload simdjson_inline simdjson_result find_field_unordered(std::string_view key) & noexcept; */ simdjson_inline simdjson_result operator[](const char *key) & noexcept; + simdjson_result operator[](int) & noexcept = delete; /** * Get the type of this JSON value. It does not validate or consume the value. @@ -45531,6 +46710,11 @@ class document { /** * A document_reference is a thin wrapper around a document reference instance. + * The document_reference instances are used primarily/solely for streams of JSON + * documents. They differ from document instances when parsing a scalar value + * (a document that is not an array or an object). In the case of a document, + * we expect the document to be fully consumed. In the case of a document_reference, + * we allow trailing content. */ class document_reference { public: @@ -45556,7 +46740,70 @@ class document_reference { simdjson_inline simdjson_result get_value() noexcept; simdjson_inline simdjson_result is_null() noexcept; - template simdjson_inline simdjson_result get() & noexcept; + template + simdjson_inline simdjson_result get() & +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(std::is_default_constructible::value, "Cannot initialize the specified type."); + T out{}; + SIMDJSON_TRY(get(out)); + return out; + } + template + simdjson_inline simdjson_result get() && +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(!std::is_same::value && !std::is_same::value, "You should never hold either an ondemand::array or ondemand::object without a corresponding ondemand::document_reference being alive; that would be Undefined Behaviour."); + return static_cast(*this).get(); + } + + /** + * Get this value as the given type. + * + * Supported types: object, array, raw_json_string, string_view, uint64_t, int64_t, double, bool, value + * + * Be mindful that the document instance must remain in scope while you are accessing object, array and value instances. + * + * @param out This is set to a value of the given type, parsed from the JSON. If there is an error, this may not be initialized. + * @returns INCORRECT_TYPE If the JSON value is not an object. + * @returns SUCCESS If the parse succeeded and the out parameter was set to the value. + */ + template + simdjson_inline error_code get(T &out) & +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { +#if SIMDJSON_SUPPORTS_DESERIALIZATION + if constexpr (custom_deserializable) { + return deserialize(*this, out); + } else { +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION + // Unless the simdjson library or the user provides an inline implementation, calling this method should + // immediately fail. + static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " + "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " + "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " + " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." + " You may also add support for custom types, see our documentation."); + static_cast(out); // to get rid of unused errors + return UNINITIALIZED; +#if SIMDJSON_SUPPORTS_DESERIALIZATION + } +#endif + } + /** @overload template error_code get(T &out) & noexcept */ + template simdjson_inline error_code get(T &out) && noexcept; simdjson_inline simdjson_result raw_json() noexcept; simdjson_inline operator document&() const noexcept; #if SIMDJSON_EXCEPTIONS @@ -45581,6 +46828,7 @@ class document_reference { simdjson_inline simdjson_result find_field(const char *key) & noexcept; simdjson_inline simdjson_result operator[](std::string_view key) & noexcept; simdjson_inline simdjson_result operator[](const char *key) & noexcept; + simdjson_result operator[](int) & noexcept = delete; simdjson_inline simdjson_result find_field_unordered(std::string_view key) & noexcept; simdjson_inline simdjson_result find_field_unordered(const char *key) & noexcept; @@ -45659,6 +46907,7 @@ struct simdjson_result : public fallback::implemen simdjson_inline simdjson_result find_field(const char *key) & noexcept; simdjson_inline simdjson_result operator[](std::string_view key) & noexcept; simdjson_inline simdjson_result operator[](const char *key) & noexcept; + simdjson_result operator[](int) & noexcept = delete; simdjson_inline simdjson_result find_field_unordered(std::string_view key) & noexcept; simdjson_inline simdjson_result find_field_unordered(const char *key) & noexcept; simdjson_inline simdjson_result type() noexcept; @@ -45708,8 +46957,14 @@ struct simdjson_result : public fallback simdjson_inline simdjson_result get_bool() noexcept; simdjson_inline simdjson_result get_value() noexcept; simdjson_inline simdjson_result is_null() noexcept; + + template simdjson_inline simdjson_result get() & noexcept; + template simdjson_inline simdjson_result get() && noexcept; + + template simdjson_inline error_code get(T &out) & noexcept; + template simdjson_inline error_code get(T &out) && noexcept; #if SIMDJSON_EXCEPTIONS - template ::value == false>::type> + template explicit simdjson_inline operator T() noexcept(false); simdjson_inline operator fallback::ondemand::array() & noexcept(false); simdjson_inline operator fallback::ondemand::object() & noexcept(false); @@ -45730,6 +46985,7 @@ struct simdjson_result : public fallback simdjson_inline simdjson_result find_field(const char *key) & noexcept; simdjson_inline simdjson_result operator[](std::string_view key) & noexcept; simdjson_inline simdjson_result operator[](const char *key) & noexcept; + simdjson_result operator[](int) & noexcept = delete; simdjson_inline simdjson_result find_field_unordered(std::string_view key) & noexcept; simdjson_inline simdjson_result find_field_unordered(const char *key) & noexcept; simdjson_inline simdjson_result type() noexcept; @@ -46660,6 +47916,177 @@ inline std::ostream& operator<<(std::ostream& out, simdjson::simdjson_result +#include + +namespace simdjson { +template +constexpr bool require_custom_serialization = false; + +////////////////////////////// +// Number deserialization +////////////////////////////// + +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, auto &val, T &out) noexcept { + using limits = std::numeric_limits; + + uint64_t x; + SIMDJSON_TRY(val.get_uint64().get(x)); + if (x > (limits::max)()) { + return NUMBER_OUT_OF_RANGE; + } + out = static_cast(x); + return SUCCESS; +} + +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, auto &val, T &out) noexcept { + double x; + SIMDJSON_TRY(val.get_double().get(x)); + out = static_cast(x); + return SUCCESS; +} + +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, auto &val, T &out) noexcept { + using limits = std::numeric_limits; + + int64_t x; + SIMDJSON_TRY(val.get_int64().get(x)); + if (x > (limits::max)() || x < (limits::min)()) { + return NUMBER_OUT_OF_RANGE; + } + out = static_cast(x); + return SUCCESS; +} + +/** + * STL containers have several constructors including one that takes a single + * size argument. Thus, some compilers (Visual Studio) will not be able to + * disambiguate between the size and container constructor. Users should + * explicitly specify the type of the container as needed: e.g., + * doc.get>(). + */ +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, ValT &val, T &out) noexcept(false) { + using value_type = typename std::remove_cvref_t::value_type; + static_assert( + deserializable, + "The specified type inside the container must itself be deserializable"); + static_assert( + std::is_default_constructible_v, + "The specified type inside the container must default constructible."); + + fallback::ondemand::array arr; + SIMDJSON_TRY(val.get_array().get(arr)); + for (auto v : arr) { + if constexpr (concepts::returns_reference) { + if (auto const err = v.get().get(concepts::emplace_one(out)); + err) { + // If an error occurs, the empty element that we just inserted gets + // removed. We're not using a temp variable because if T is a heavy + // type, we want the valid path to be the fast path and the slow path be + // the path that has errors in it. + if constexpr (requires { out.pop_back(); }) { + static_cast(out.pop_back()); + } + return err; + } + } else { + value_type temp; + if (auto const err = v.get().get(temp); err) { + return err; + } + concepts::emplace_one(out, std::move(temp)); + } + } + return SUCCESS; +} + + + +/** + * This CPO (Customization Point Object) will help deserialize into + * smart pointers. + * + * If constructing T is nothrow, this conversion should be nothrow as well since + * we return MEMALLOC if we're not able to allocate memory instead of throwing + * the error message. + * + * @tparam T The type inside the smart pointer + * @tparam ValT document/value type + * @param val document/value + * @param out a reference to the smart pointer + * @return status of the conversion + */ +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, ValT &val, T &out) noexcept(nothrow_deserializable::element_type, ValT>) { + using element_type = typename std::remove_cvref_t::element_type; + + // For better error messages, don't use these as constraints on + // the tag_invoke CPO. + static_assert( + deserializable, + "The specified type inside the unique_ptr must itself be deserializable"); + static_assert( + std::is_default_constructible_v, + "The specified type inside the unique_ptr must default constructible."); + + auto ptr = new (std::nothrow) element_type(); + if (ptr == nullptr) { + return MEMALLOC; + } + SIMDJSON_TRY(val.template get(*ptr)); + out.reset(ptr); + return SUCCESS; +} + +/** + * This CPO (Customization Point Object) will help deserialize into optional types. + */ +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, ValT &val, T &out) noexcept(nothrow_deserializable::value_type, ValT>) { + using value_type = typename std::remove_cvref_t::value_type; + + static_assert( + deserializable, + "The specified type inside the unique_ptr must itself be deserializable"); + static_assert( + std::is_default_constructible_v, + "The specified type inside the unique_ptr must default constructible."); + + if (!out) { + out.emplace(); + } + SIMDJSON_TRY(val.template get(out.value())); + return SUCCESS; +} + +} // namespace simdjson + +#endif // SIMDJSON_ONDEMAND_DESERIALIZE_H +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION +/* end file simdjson/generic/ondemand/std_deserialize.h for fallback */ + // Inline definitions /* including simdjson/generic/ondemand/array-inl.h for fallback: #include "simdjson/generic/ondemand/array-inl.h" */ /* begin file simdjson/generic/ondemand/array-inl.h for fallback */ @@ -46667,6 +48094,7 @@ inline std::ostream& operator<<(std::ostream& out, simdjson::simdjson_result array::at_pointer(std::string_view json_pointer) n return child; } -inline std::string json_path_to_pointer_conversion(std::string_view json_path) { - if (json_path.empty() || (json_path.front() != '.' && - json_path.front() != '[')) { - return "-1"; // This is just a sentinel value, the caller should check for this and return an error. - } - - std::string result; - // Reserve space to reduce allocations, adjusting for potential increases due - // to escaping. - result.reserve(json_path.size() * 2); - - size_t i = 0; - - while (i < json_path.length()) { - if (json_path[i] == '.') { - result += '/'; - } else if (json_path[i] == '[') { - result += '/'; - ++i; // Move past the '[' - while (i < json_path.length() && json_path[i] != ']') { - if (json_path[i] == '~') { - result += "~0"; - } else if (json_path[i] == '/') { - result += "~1"; - } else { - result += json_path[i]; - } - ++i; - } - if (i == json_path.length() || json_path[i] != ']') { - return "-1"; // Using sentinel value that will be handled as an error by the caller. - } - } else { - if (json_path[i] == '~') { - result += "~0"; - } else if (json_path[i] == '/') { - result += "~1"; - } else { - result += json_path[i]; - } - } - ++i; - } - - return result; -} - inline simdjson_result array::at_path(std::string_view json_path) noexcept { auto json_pointer = json_path_to_pointer_conversion(json_path); if (json_pointer == "-1") { return INVALID_JSON_POINTER; } @@ -47028,313 +48409,276 @@ simdjson_inline simdjson_result &simdjson_re #endif // SIMDJSON_GENERIC_ONDEMAND_ARRAY_ITERATOR_INL_H /* end file simdjson/generic/ondemand/array_iterator-inl.h for fallback */ -/* including simdjson/generic/ondemand/document-inl.h for fallback: #include "simdjson/generic/ondemand/document-inl.h" */ -/* begin file simdjson/generic/ondemand/document-inl.h for fallback */ -#ifndef SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H +/* including simdjson/generic/ondemand/value-inl.h for fallback: #include "simdjson/generic/ondemand/value-inl.h" */ +/* begin file simdjson/generic/ondemand/value-inl.h for fallback */ +#ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H /* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ -/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H */ +/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array_iterator.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator-inl.h" */ /* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ namespace simdjson { namespace fallback { namespace ondemand { -simdjson_inline document::document(ondemand::json_iterator &&_iter) noexcept - : iter{std::forward(_iter)} +simdjson_inline value::value(const value_iterator &_iter) noexcept + : iter{_iter} { - logger::log_start_value(iter, "document"); } - -simdjson_inline document document::start(json_iterator &&iter) noexcept { - return document(std::forward(iter)); +simdjson_inline value value::start(const value_iterator &iter) noexcept { + return iter; } - -inline void document::rewind() noexcept { - iter.rewind(); +simdjson_inline value value::resume(const value_iterator &iter) noexcept { + return iter; } -inline std::string document::to_debug_string() noexcept { - return iter.to_string(); +simdjson_inline simdjson_result value::get_array() noexcept { + return array::start(iter); } - -inline simdjson_result document::current_location() const noexcept { - return iter.current_location(); +simdjson_inline simdjson_result value::get_object() noexcept { + return object::start(iter); } - -inline int32_t document::current_depth() const noexcept { - return iter.depth(); +simdjson_inline simdjson_result value::start_or_resume_object() noexcept { + if (iter.at_start()) { + return get_object(); + } else { + return object::resume(iter); + } } -inline bool document::at_end() const noexcept { - return iter.at_end(); +simdjson_inline simdjson_result value::get_raw_json_string() noexcept { + return iter.get_raw_json_string(); } - - -inline bool document::is_alive() noexcept { - return iter.is_alive(); +simdjson_inline simdjson_result value::get_string(bool allow_replacement) noexcept { + return iter.get_string(allow_replacement); } -simdjson_inline value_iterator document::resume_value_iterator() noexcept { - return value_iterator(&iter, 1, iter.root_position()); +template +simdjson_inline error_code value::get_string(string_type& receiver, bool allow_replacement) noexcept { + return iter.get_string(receiver, allow_replacement); } -simdjson_inline value_iterator document::get_root_value_iterator() noexcept { - return resume_value_iterator(); +simdjson_inline simdjson_result value::get_wobbly_string() noexcept { + return iter.get_wobbly_string(); } -simdjson_inline simdjson_result document::start_or_resume_object() noexcept { - if (iter.at_root()) { - return get_object(); - } else { - return object::resume(resume_value_iterator()); - } +simdjson_inline simdjson_result value::get_double() noexcept { + return iter.get_double(); } -simdjson_inline simdjson_result document::get_value() noexcept { - // Make sure we start any arrays or objects before returning, so that start_root_() - // gets called. - - // It is the convention throughout the code that the macro `SIMDJSON_DEVELOPMENT_CHECKS` determines whether - // we check for OUT_OF_ORDER_ITERATION. Proper on::demand code should never trigger this error. -#if SIMDJSON_DEVELOPMENT_CHECKS - if (!iter.at_root()) { return OUT_OF_ORDER_ITERATION; } -#endif - // assert_at_root() serves two purposes: in Debug mode, whether or not - // SIMDJSON_DEVELOPMENT_CHECKS is set or not, it checks that we are at the root of - // the document (this will typically be redundant). In release mode, it generates - // SIMDJSON_ASSUME statements to allow the compiler to make assumptions. - iter.assert_at_root(); - switch (*iter.peek()) { - case '[': { - // The following lines check that the document ends with ]. - auto value_iterator = get_root_value_iterator(); - auto error = value_iterator.check_root_array(); - if(error) { return error; } - return value(get_root_value_iterator()); - } - case '{': { - // The following lines would check that the document ends with }. - auto value_iterator = get_root_value_iterator(); - auto error = value_iterator.check_root_object(); - if(error) { return error; } - return value(get_root_value_iterator()); - } - default: - // Unfortunately, scalar documents are a special case in simdjson and they cannot - // be safely converted to value instances. - return SCALAR_DOCUMENT_AS_VALUE; - } +simdjson_inline simdjson_result value::get_double_in_string() noexcept { + return iter.get_double_in_string(); } -simdjson_inline simdjson_result document::get_array() & noexcept { - auto value = get_root_value_iterator(); - return array::start_root(value); +simdjson_inline simdjson_result value::get_uint64() noexcept { + return iter.get_uint64(); } -simdjson_inline simdjson_result document::get_object() & noexcept { - auto value = get_root_value_iterator(); - return object::start_root(value); +simdjson_inline simdjson_result value::get_uint64_in_string() noexcept { + return iter.get_uint64_in_string(); } - -/** - * We decided that calling 'get_double()' on the JSON document '1.233 blabla' should - * give an error, so we check for trailing content. We want to disallow trailing - * content. - * Thus, in several implementations below, we pass a 'true' parameter value to - * a get_root_value_iterator() method: this indicates that we disallow trailing content. - */ - -simdjson_inline simdjson_result document::get_uint64() noexcept { - return get_root_value_iterator().get_root_uint64(true); +simdjson_inline simdjson_result value::get_int64() noexcept { + return iter.get_int64(); } -simdjson_inline simdjson_result document::get_uint64_in_string() noexcept { - return get_root_value_iterator().get_root_uint64_in_string(true); +simdjson_inline simdjson_result value::get_int64_in_string() noexcept { + return iter.get_int64_in_string(); } -simdjson_inline simdjson_result document::get_int64() noexcept { - return get_root_value_iterator().get_root_int64(true); +simdjson_inline simdjson_result value::get_bool() noexcept { + return iter.get_bool(); } -simdjson_inline simdjson_result document::get_int64_in_string() noexcept { - return get_root_value_iterator().get_root_int64_in_string(true); +simdjson_inline simdjson_result value::is_null() noexcept { + return iter.is_null(); } -simdjson_inline simdjson_result document::get_double() noexcept { - return get_root_value_iterator().get_root_double(true); + +template<> simdjson_inline simdjson_result value::get() noexcept { return get_array(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_object(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_raw_json_string(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_string(false); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_number(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_double(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_uint64(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_int64(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_bool(); } + + +template<> simdjson_inline error_code value::get(array& out) noexcept { return get_array().get(out); } +template<> simdjson_inline error_code value::get(object& out) noexcept { return get_object().get(out); } +template<> simdjson_inline error_code value::get(raw_json_string& out) noexcept { return get_raw_json_string().get(out); } +template<> simdjson_inline error_code value::get(std::string_view& out) noexcept { return get_string(false).get(out); } +template<> simdjson_inline error_code value::get(number& out) noexcept { return get_number().get(out); } +template<> simdjson_inline error_code value::get(double& out) noexcept { return get_double().get(out); } +template<> simdjson_inline error_code value::get(uint64_t& out) noexcept { return get_uint64().get(out); } +template<> simdjson_inline error_code value::get(int64_t& out) noexcept { return get_int64().get(out); } +template<> simdjson_inline error_code value::get(bool& out) noexcept { return get_bool().get(out); } + +#if SIMDJSON_EXCEPTIONS +template +simdjson_inline value::operator T() noexcept(false) { + return get(); } -simdjson_inline simdjson_result document::get_double_in_string() noexcept { - return get_root_value_iterator().get_root_double_in_string(true); +simdjson_inline value::operator array() noexcept(false) { + return get_array(); } -simdjson_inline simdjson_result document::get_string(bool allow_replacement) noexcept { - return get_root_value_iterator().get_root_string(true, allow_replacement); +simdjson_inline value::operator object() noexcept(false) { + return get_object(); } -template -simdjson_inline error_code document::get_string(string_type& receiver, bool allow_replacement) noexcept { - return get_root_value_iterator().get_root_string(receiver, true, allow_replacement); +simdjson_inline value::operator uint64_t() noexcept(false) { + return get_uint64(); } -simdjson_inline simdjson_result document::get_wobbly_string() noexcept { - return get_root_value_iterator().get_root_wobbly_string(true); +simdjson_inline value::operator int64_t() noexcept(false) { + return get_int64(); } -simdjson_inline simdjson_result document::get_raw_json_string() noexcept { - return get_root_value_iterator().get_root_raw_json_string(true); +simdjson_inline value::operator double() noexcept(false) { + return get_double(); } -simdjson_inline simdjson_result document::get_bool() noexcept { - return get_root_value_iterator().get_root_bool(true); +simdjson_inline value::operator std::string_view() noexcept(false) { + return get_string(false); } -simdjson_inline simdjson_result document::is_null() noexcept { - return get_root_value_iterator().is_root_null(true); +simdjson_inline value::operator raw_json_string() noexcept(false) { + return get_raw_json_string(); } +simdjson_inline value::operator bool() noexcept(false) { + return get_bool(); +} +#endif -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_array(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_object(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_raw_json_string(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_string(false); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_double(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_uint64(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_int64(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_bool(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_value(); } - -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_raw_json_string(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_string(false); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_double(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_uint64(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_int64(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_bool(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_value(); } - -template simdjson_inline error_code document::get(T &out) & noexcept { - return get().get(out); +simdjson_inline simdjson_result value::begin() & noexcept { + return get_array().begin(); } -template simdjson_deprecated simdjson_inline error_code document::get(T &out) && noexcept { - return std::forward(*this).get().get(out); +simdjson_inline simdjson_result value::end() & noexcept { + return {}; } - -#if SIMDJSON_EXCEPTIONS -template -simdjson_deprecated simdjson_inline document::operator T() && noexcept(false) { return get(); } -template -simdjson_inline document::operator T() & noexcept(false) { return get(); } -simdjson_inline document::operator array() & noexcept(false) { return get_array(); } -simdjson_inline document::operator object() & noexcept(false) { return get_object(); } -simdjson_inline document::operator uint64_t() noexcept(false) { return get_uint64(); } -simdjson_inline document::operator int64_t() noexcept(false) { return get_int64(); } -simdjson_inline document::operator double() noexcept(false) { return get_double(); } -simdjson_inline document::operator std::string_view() noexcept(false) { return get_string(false); } -simdjson_inline document::operator raw_json_string() noexcept(false) { return get_raw_json_string(); } -simdjson_inline document::operator bool() noexcept(false) { return get_bool(); } -simdjson_inline document::operator value() noexcept(false) { return get_value(); } - -#endif -simdjson_inline simdjson_result document::count_elements() & noexcept { +simdjson_inline simdjson_result value::count_elements() & noexcept { + simdjson_result answer; auto a = get_array(); - simdjson_result answer = a.count_elements(); - /* If there was an array, we are now left pointing at its first element. */ - if(answer.error() == SUCCESS) { rewind(); } + answer = a.count_elements(); + // count_elements leaves you pointing inside the array, at the first element. + // We need to move back so that the user can create a new array (which requires that + // we point at '['). + iter.move_at_start(); return answer; } -simdjson_inline simdjson_result document::count_fields() & noexcept { +simdjson_inline simdjson_result value::count_fields() & noexcept { + simdjson_result answer; auto a = get_object(); - simdjson_result answer = a.count_fields(); - /* If there was an object, we are now left pointing at its first element. */ - if(answer.error() == SUCCESS) { rewind(); } + answer = a.count_fields(); + iter.move_at_start(); return answer; } -simdjson_inline simdjson_result document::at(size_t index) & noexcept { +simdjson_inline simdjson_result value::at(size_t index) noexcept { auto a = get_array(); return a.at(index); } -simdjson_inline simdjson_result document::begin() & noexcept { - return get_array().begin(); -} -simdjson_inline simdjson_result document::end() & noexcept { - return {}; -} -simdjson_inline simdjson_result document::find_field(std::string_view key) & noexcept { +simdjson_inline simdjson_result value::find_field(std::string_view key) noexcept { return start_or_resume_object().find_field(key); } -simdjson_inline simdjson_result document::find_field(const char *key) & noexcept { +simdjson_inline simdjson_result value::find_field(const char *key) noexcept { return start_or_resume_object().find_field(key); } -simdjson_inline simdjson_result document::find_field_unordered(std::string_view key) & noexcept { + +simdjson_inline simdjson_result value::find_field_unordered(std::string_view key) noexcept { return start_or_resume_object().find_field_unordered(key); } -simdjson_inline simdjson_result document::find_field_unordered(const char *key) & noexcept { +simdjson_inline simdjson_result value::find_field_unordered(const char *key) noexcept { return start_or_resume_object().find_field_unordered(key); } -simdjson_inline simdjson_result document::operator[](std::string_view key) & noexcept { + +simdjson_inline simdjson_result value::operator[](std::string_view key) noexcept { return start_or_resume_object()[key]; } -simdjson_inline simdjson_result document::operator[](const char *key) & noexcept { +simdjson_inline simdjson_result value::operator[](const char *key) noexcept { return start_or_resume_object()[key]; } -simdjson_inline error_code document::consume() noexcept { - auto error = iter.skip_child(0); - if(error) { iter.abandon(); } - return error; -} - -simdjson_inline simdjson_result document::raw_json() noexcept { - auto _iter = get_root_value_iterator(); - const uint8_t * starting_point{_iter.peek_start()}; - auto error = consume(); - if(error) { return error; } - // After 'consume()', we could be left pointing just beyond the document, but that - // is ok because we are not going to dereference the final pointer position, we just - // use it to compute the length in bytes. - const uint8_t * final_point{iter.unsafe_pointer()}; - return std::string_view(reinterpret_cast(starting_point), size_t(final_point - starting_point)); -} - -simdjson_inline simdjson_result document::type() noexcept { - return get_root_value_iterator().type(); +simdjson_inline simdjson_result value::type() noexcept { + return iter.type(); } -simdjson_inline simdjson_result document::is_scalar() noexcept { +simdjson_inline simdjson_result value::is_scalar() noexcept { json_type this_type; auto error = type().get(this_type); if(error) { return error; } return ! ((this_type == json_type::array) || (this_type == json_type::object)); } -simdjson_inline simdjson_result document::is_string() noexcept { +simdjson_inline simdjson_result value::is_string() noexcept { json_type this_type; auto error = type().get(this_type); if(error) { return error; } return (this_type == json_type::string); } -simdjson_inline bool document::is_negative() noexcept { - return get_root_value_iterator().is_root_negative(); + +simdjson_inline bool value::is_negative() noexcept { + return iter.is_negative(); } -simdjson_inline simdjson_result document::is_integer() noexcept { - return get_root_value_iterator().is_root_integer(true); +simdjson_inline simdjson_result value::is_integer() noexcept { + return iter.is_integer(); +} +simdjson_warn_unused simdjson_inline simdjson_result value::get_number_type() noexcept { + return iter.get_number_type(); +} +simdjson_warn_unused simdjson_inline simdjson_result value::get_number() noexcept { + return iter.get_number(); } -simdjson_inline simdjson_result document::get_number_type() noexcept { - return get_root_value_iterator().get_root_number_type(true); +simdjson_inline std::string_view value::raw_json_token() noexcept { + return std::string_view(reinterpret_cast(iter.peek_start()), iter.peek_start_length()); } -simdjson_inline simdjson_result document::get_number() noexcept { - return get_root_value_iterator().get_root_number(true); +simdjson_inline simdjson_result value::raw_json() noexcept { + json_type t; + SIMDJSON_TRY(type().get(t)); + switch (t) + { + case json_type::array: { + ondemand::array array; + SIMDJSON_TRY(get_array().get(array)); + return array.raw_json(); + } + case json_type::object: { + ondemand::object object; + SIMDJSON_TRY(get_object().get(object)); + return object.raw_json(); + } + default: + return raw_json_token(); + } } +simdjson_inline simdjson_result value::current_location() noexcept { + return iter.json_iter().current_location(); +} -simdjson_inline simdjson_result document::raw_json_token() noexcept { - auto _iter = get_root_value_iterator(); - return std::string_view(reinterpret_cast(_iter.peek_start()), _iter.peek_root_length()); +simdjson_inline int32_t value::current_depth() const noexcept{ + return iter.json_iter().depth(); } -simdjson_inline simdjson_result document::at_pointer(std::string_view json_pointer) noexcept { - rewind(); // Rewind the document each time at_pointer is called - if (json_pointer.empty()) { - return this->get_value(); +inline bool is_pointer_well_formed(std::string_view json_pointer) noexcept { + if (simdjson_unlikely(json_pointer.empty())) { // can't be + return false; + } + if (simdjson_unlikely(json_pointer[0] != '/')) { + return false; + } + size_t escape = json_pointer.find('~'); + if (escape == std::string_view::npos) { + return true; + } + if (escape == json_pointer.size() - 1) { + return false; } + if (json_pointer[escape + 1] != '0' && json_pointer[escape + 1] != '1') { + return false; + } + return true; +} + +simdjson_inline simdjson_result value::at_pointer(std::string_view json_pointer) noexcept { json_type t; SIMDJSON_TRY(type().get(t)); switch (t) @@ -47344,15 +48688,15 @@ simdjson_inline simdjson_result document::at_pointer(std::string_view jso case json_type::object: return (*this).get_object().at_pointer(json_pointer); default: + // a non-empty string can be invalid, or accessing a primitive (issue 2154) + if (is_pointer_well_formed(json_pointer)) { + return NO_SUCH_FIELD; + } return INVALID_JSON_POINTER; } } -simdjson_inline simdjson_result document::at_path(std::string_view json_path) noexcept { - rewind(); // Rewind the document each time at_pointer is called - if (json_path.empty()) { - return this->get_value(); - } +simdjson_inline simdjson_result value::at_path(std::string_view json_path) noexcept { json_type t; SIMDJSON_TRY(type().get(t)); switch (t) { @@ -47371,680 +48715,1319 @@ simdjson_inline simdjson_result document::at_path(std::string_view json_p namespace simdjson { -simdjson_inline simdjson_result::simdjson_result( - fallback::ondemand::document &&value +simdjson_inline simdjson_result::simdjson_result( + fallback::ondemand::value &&value ) noexcept : - implementation_simdjson_result_base( - std::forward(value) + implementation_simdjson_result_base( + std::forward(value) ) { } -simdjson_inline simdjson_result::simdjson_result( +simdjson_inline simdjson_result::simdjson_result( error_code error ) noexcept : - implementation_simdjson_result_base( - error - ) + implementation_simdjson_result_base(error) { } -simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { +simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { if (error()) { return error(); } return first.count_elements(); } -simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { +simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { if (error()) { return error(); } return first.count_fields(); } -simdjson_inline simdjson_result simdjson_result::at(size_t index) & noexcept { +simdjson_inline simdjson_result simdjson_result::at(size_t index) noexcept { if (error()) { return error(); } return first.at(index); } -simdjson_inline error_code simdjson_result::rewind() noexcept { - if (error()) { return error(); } - first.rewind(); - return SUCCESS; -} -simdjson_inline simdjson_result simdjson_result::begin() & noexcept { +simdjson_inline simdjson_result simdjson_result::begin() & noexcept { if (error()) { return error(); } return first.begin(); } -simdjson_inline simdjson_result simdjson_result::end() & noexcept { +simdjson_inline simdjson_result simdjson_result::end() & noexcept { + if (error()) { return error(); } return {}; } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) & noexcept { + +simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) noexcept { if (error()) { return error(); } - return first.find_field_unordered(key); + return first.find_field(key); } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field(const char *key) noexcept { if (error()) { return error(); } - return first.find_field_unordered(key); + return first.find_field(key); } -simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) & noexcept { + +simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) noexcept { if (error()) { return error(); } - return first[key]; + return first.find_field_unordered(key); } -simdjson_inline simdjson_result simdjson_result::operator[](const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) noexcept { if (error()) { return error(); } - return first[key]; + return first.find_field_unordered(key); } -simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) & noexcept { + +simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) noexcept { if (error()) { return error(); } - return first.find_field(key); + return first[key]; } -simdjson_inline simdjson_result simdjson_result::find_field(const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::operator[](const char *key) noexcept { if (error()) { return error(); } - return first.find_field(key); + return first[key]; } -simdjson_inline simdjson_result simdjson_result::get_array() & noexcept { + +simdjson_inline simdjson_result simdjson_result::get_array() noexcept { if (error()) { return error(); } return first.get_array(); } -simdjson_inline simdjson_result simdjson_result::get_object() & noexcept { +simdjson_inline simdjson_result simdjson_result::get_object() noexcept { if (error()) { return error(); } return first.get_object(); } -simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { +simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { if (error()) { return error(); } return first.get_uint64(); } -simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { if (error()) { return error(); } return first.get_uint64_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { +simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { if (error()) { return error(); } return first.get_int64(); } -simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { if (error()) { return error(); } return first.get_int64_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_double() noexcept { +simdjson_inline simdjson_result simdjson_result::get_double() noexcept { if (error()) { return error(); } return first.get_double(); } -simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { if (error()) { return error(); } return first.get_double_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { +simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { if (error()) { return error(); } return first.get_string(allow_replacement); } template -simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { +simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { if (error()) { return error(); } return first.get_string(receiver, allow_replacement); } -simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { if (error()) { return error(); } return first.get_wobbly_string(); } -simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { if (error()) { return error(); } return first.get_raw_json_string(); } -simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { +simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { if (error()) { return error(); } return first.get_bool(); } -simdjson_inline simdjson_result simdjson_result::get_value() noexcept { - if (error()) { return error(); } - return first.get_value(); -} -simdjson_inline simdjson_result simdjson_result::is_null() noexcept { +simdjson_inline simdjson_result simdjson_result::is_null() noexcept { if (error()) { return error(); } return first.is_null(); } -template -simdjson_inline simdjson_result simdjson_result::get() & noexcept { +template<> simdjson_inline error_code simdjson_result::get(fallback::ondemand::value &out) noexcept { if (error()) { return error(); } - return first.get(); + out = first; + return SUCCESS; } -template -simdjson_deprecated simdjson_inline simdjson_result simdjson_result::get() && noexcept { + +template simdjson_inline simdjson_result simdjson_result::get() noexcept { if (error()) { return error(); } - return std::forward(first).get(); + return first.get(); } -template -simdjson_inline error_code simdjson_result::get(T &out) & noexcept { +template simdjson_inline error_code simdjson_result::get(T &out) noexcept { if (error()) { return error(); } return first.get(out); } -template -simdjson_inline error_code simdjson_result::get(T &out) && noexcept { - if (error()) { return error(); } - return std::forward(first).get(out); -} -template<> simdjson_inline simdjson_result simdjson_result::get() & noexcept = delete; -template<> simdjson_deprecated simdjson_inline simdjson_result simdjson_result::get() && noexcept { - if (error()) { return error(); } - return std::forward(first); -} -template<> simdjson_inline error_code simdjson_result::get(fallback::ondemand::document &out) & noexcept = delete; -template<> simdjson_inline error_code simdjson_result::get(fallback::ondemand::document &out) && noexcept { +template<> simdjson_inline simdjson_result simdjson_result::get() noexcept { if (error()) { return error(); } - out = std::forward(first); - return SUCCESS; + return std::move(first); } -simdjson_inline simdjson_result simdjson_result::type() noexcept { +simdjson_inline simdjson_result simdjson_result::type() noexcept { if (error()) { return error(); } return first.type(); } - -simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { +simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { if (error()) { return error(); } return first.is_scalar(); } - -simdjson_inline simdjson_result simdjson_result::is_string() noexcept { +simdjson_inline simdjson_result simdjson_result::is_string() noexcept { if (error()) { return error(); } return first.is_string(); } - -simdjson_inline bool simdjson_result::is_negative() noexcept { +simdjson_inline simdjson_result simdjson_result::is_negative() noexcept { if (error()) { return error(); } return first.is_negative(); } - -simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { +simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { if (error()) { return error(); } return first.is_integer(); } - -simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { +simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { if (error()) { return error(); } return first.get_number_type(); } - -simdjson_inline simdjson_result simdjson_result::get_number() noexcept { +simdjson_inline simdjson_result simdjson_result::get_number() noexcept { if (error()) { return error(); } return first.get_number(); } - - #if SIMDJSON_EXCEPTIONS -template ::value == false>::type> -simdjson_inline simdjson_result::operator T() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator fallback::ondemand::array() & noexcept(false) { +template +simdjson_inline simdjson_result::operator T() noexcept(false) { if (error()) { throw simdjson_error(error()); } - return first; + return first.get(); } -simdjson_inline simdjson_result::operator fallback::ondemand::object() & noexcept(false) { +simdjson_inline simdjson_result::operator fallback::ondemand::array() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { +simdjson_inline simdjson_result::operator fallback::ondemand::object() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator int64_t() noexcept(false) { +simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator double() noexcept(false) { +simdjson_inline simdjson_result::operator int64_t() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { +simdjson_inline simdjson_result::operator double() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator fallback::ondemand::raw_json_string() noexcept(false) { +simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator bool() noexcept(false) { +simdjson_inline simdjson_result::operator fallback::ondemand::raw_json_string() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator fallback::ondemand::value() noexcept(false) { +simdjson_inline simdjson_result::operator bool() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } #endif - -simdjson_inline simdjson_result simdjson_result::current_location() noexcept { +simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { if (error()) { return error(); } - return first.current_location(); + return first.raw_json_token(); } -simdjson_inline bool simdjson_result::at_end() const noexcept { +simdjson_inline simdjson_result simdjson_result::raw_json() noexcept { if (error()) { return error(); } - return first.at_end(); + return first.raw_json(); } - -simdjson_inline int32_t simdjson_result::current_depth() const noexcept { +simdjson_inline simdjson_result simdjson_result::current_location() noexcept { if (error()) { return error(); } - return first.current_depth(); + return first.current_location(); } -simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { +simdjson_inline simdjson_result simdjson_result::current_depth() const noexcept { if (error()) { return error(); } - return first.raw_json_token(); + return first.current_depth(); } -simdjson_inline simdjson_result simdjson_result::at_pointer(std::string_view json_pointer) noexcept { - if (error()) { return error(); } +simdjson_inline simdjson_result simdjson_result::at_pointer( + std::string_view json_pointer) noexcept { + if (error()) { + return error(); + } return first.at_pointer(json_pointer); } -simdjson_inline simdjson_result simdjson_result::at_path(std::string_view json_path) noexcept { - if (error()) { return error(); } +simdjson_inline simdjson_result simdjson_result::at_path( + std::string_view json_path) noexcept { + if (error()) { + return error(); + } return first.at_path(json_path); } } // namespace simdjson +#endif // SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H +/* end file simdjson/generic/ondemand/value-inl.h for fallback */ +/* including simdjson/generic/ondemand/document-inl.h for fallback: #include "simdjson/generic/ondemand/document-inl.h" */ +/* begin file simdjson/generic/ondemand/document-inl.h for fallback */ +#ifndef SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H + +/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ +/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/deserialize.h" */ +/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ namespace simdjson { namespace fallback { namespace ondemand { -simdjson_inline document_reference::document_reference() noexcept : doc{nullptr} {} -simdjson_inline document_reference::document_reference(document &d) noexcept : doc(&d) {} -simdjson_inline void document_reference::rewind() noexcept { doc->rewind(); } -simdjson_inline simdjson_result document_reference::get_array() & noexcept { return doc->get_array(); } -simdjson_inline simdjson_result document_reference::get_object() & noexcept { return doc->get_object(); } -/** - * The document_reference instances are used primarily/solely for streams of JSON - * documents. - * We decided that calling 'get_double()' on the JSON document '1.233 blabla' should - * give an error, so we check for trailing content. - * - * However, for streams of JSON documents, we want to be able to start from - * "321" "321" "321" - * and parse it successfully as a stream of JSON documents, calling get_uint64_in_string() - * successfully each time. - * - * To achieve this result, we pass a 'false' to a get_root_value_iterator() method: - * this indicates that we allow trailing content. - */ -simdjson_inline simdjson_result document_reference::get_uint64() noexcept { return doc->get_root_value_iterator().get_root_uint64(false); } -simdjson_inline simdjson_result document_reference::get_uint64_in_string() noexcept { return doc->get_root_value_iterator().get_root_uint64_in_string(false); } -simdjson_inline simdjson_result document_reference::get_int64() noexcept { return doc->get_root_value_iterator().get_root_int64(false); } -simdjson_inline simdjson_result document_reference::get_int64_in_string() noexcept { return doc->get_root_value_iterator().get_root_int64_in_string(false); } -simdjson_inline simdjson_result document_reference::get_double() noexcept { return doc->get_root_value_iterator().get_root_double(false); } -simdjson_inline simdjson_result document_reference::get_double_in_string() noexcept { return doc->get_root_value_iterator().get_root_double(false); } -simdjson_inline simdjson_result document_reference::get_string(bool allow_replacement) noexcept { return doc->get_root_value_iterator().get_root_string(false, allow_replacement); } -template -simdjson_inline error_code document_reference::get_string(string_type& receiver, bool allow_replacement) noexcept { return doc->get_root_value_iterator().get_root_string(receiver, false, allow_replacement); } -simdjson_inline simdjson_result document_reference::get_wobbly_string() noexcept { return doc->get_root_value_iterator().get_root_wobbly_string(false); } -simdjson_inline simdjson_result document_reference::get_raw_json_string() noexcept { return doc->get_root_value_iterator().get_root_raw_json_string(false); } -simdjson_inline simdjson_result document_reference::get_bool() noexcept { return doc->get_root_value_iterator().get_root_bool(false); } -simdjson_inline simdjson_result document_reference::get_value() noexcept { return doc->get_value(); } -simdjson_inline simdjson_result document_reference::is_null() noexcept { return doc->get_root_value_iterator().is_root_null(false); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_array(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_object(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_raw_json_string(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_string(false); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_double(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_uint64(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_int64(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_bool(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_value(); } -#if SIMDJSON_EXCEPTIONS -template -simdjson_inline document_reference::operator T() noexcept(false) { return get(); } -simdjson_inline document_reference::operator array() & noexcept(false) { return array(*doc); } -simdjson_inline document_reference::operator object() & noexcept(false) { return object(*doc); } -simdjson_inline document_reference::operator uint64_t() noexcept(false) { return get_uint64(); } -simdjson_inline document_reference::operator int64_t() noexcept(false) { return get_int64(); } -simdjson_inline document_reference::operator double() noexcept(false) { return get_double(); } -simdjson_inline document_reference::operator std::string_view() noexcept(false) { return std::string_view(*doc); } -simdjson_inline document_reference::operator raw_json_string() noexcept(false) { return get_raw_json_string(); } -simdjson_inline document_reference::operator bool() noexcept(false) { return get_bool(); } -simdjson_inline document_reference::operator value() noexcept(false) { return value(*doc); } -#endif -simdjson_inline simdjson_result document_reference::count_elements() & noexcept { return doc->count_elements(); } -simdjson_inline simdjson_result document_reference::count_fields() & noexcept { return doc->count_fields(); } -simdjson_inline simdjson_result document_reference::at(size_t index) & noexcept { return doc->at(index); } -simdjson_inline simdjson_result document_reference::begin() & noexcept { return doc->begin(); } -simdjson_inline simdjson_result document_reference::end() & noexcept { return doc->end(); } -simdjson_inline simdjson_result document_reference::find_field(std::string_view key) & noexcept { return doc->find_field(key); } -simdjson_inline simdjson_result document_reference::find_field(const char *key) & noexcept { return doc->find_field(key); } -simdjson_inline simdjson_result document_reference::operator[](std::string_view key) & noexcept { return (*doc)[key]; } -simdjson_inline simdjson_result document_reference::operator[](const char *key) & noexcept { return (*doc)[key]; } -simdjson_inline simdjson_result document_reference::find_field_unordered(std::string_view key) & noexcept { return doc->find_field_unordered(key); } -simdjson_inline simdjson_result document_reference::find_field_unordered(const char *key) & noexcept { return doc->find_field_unordered(key); } -simdjson_inline simdjson_result document_reference::type() noexcept { return doc->type(); } -simdjson_inline simdjson_result document_reference::is_scalar() noexcept { return doc->is_scalar(); } -simdjson_inline simdjson_result document_reference::is_string() noexcept { return doc->is_string(); } -simdjson_inline simdjson_result document_reference::current_location() noexcept { return doc->current_location(); } -simdjson_inline int32_t document_reference::current_depth() const noexcept { return doc->current_depth(); } -simdjson_inline bool document_reference::is_negative() noexcept { return doc->is_negative(); } -simdjson_inline simdjson_result document_reference::is_integer() noexcept { return doc->get_root_value_iterator().is_root_integer(false); } -simdjson_inline simdjson_result document_reference::get_number_type() noexcept { return doc->get_root_value_iterator().get_root_number_type(false); } -simdjson_inline simdjson_result document_reference::get_number() noexcept { return doc->get_root_value_iterator().get_root_number(false); } -simdjson_inline simdjson_result document_reference::raw_json_token() noexcept { return doc->raw_json_token(); } -simdjson_inline simdjson_result document_reference::at_pointer(std::string_view json_pointer) noexcept { return doc->at_pointer(json_pointer); } -simdjson_inline simdjson_result document_reference::at_path(std::string_view json_path) noexcept { return doc->at_path(json_path); } -simdjson_inline simdjson_result document_reference::raw_json() noexcept { return doc->raw_json();} -simdjson_inline document_reference::operator document&() const noexcept { return *doc; } +simdjson_inline document::document(ondemand::json_iterator &&_iter) noexcept + : iter{std::forward(_iter)} +{ + logger::log_start_value(iter, "document"); +} -} // namespace ondemand -} // namespace fallback -} // namespace simdjson +simdjson_inline document document::start(json_iterator &&iter) noexcept { + return document(std::forward(iter)); +} +inline void document::rewind() noexcept { + iter.rewind(); +} +inline std::string document::to_debug_string() noexcept { + return iter.to_string(); +} -namespace simdjson { -simdjson_inline simdjson_result::simdjson_result(fallback::ondemand::document_reference value, error_code error) - noexcept : implementation_simdjson_result_base(std::forward(value), error) {} +inline simdjson_result document::current_location() const noexcept { + return iter.current_location(); +} +inline int32_t document::current_depth() const noexcept { + return iter.depth(); +} -simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { - if (error()) { return error(); } - return first.count_elements(); +inline bool document::at_end() const noexcept { + return iter.at_end(); } -simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { - if (error()) { return error(); } - return first.count_fields(); + + +inline bool document::is_alive() noexcept { + return iter.is_alive(); } -simdjson_inline simdjson_result simdjson_result::at(size_t index) & noexcept { - if (error()) { return error(); } - return first.at(index); +simdjson_inline value_iterator document::resume_value_iterator() noexcept { + return value_iterator(&iter, 1, iter.root_position()); } -simdjson_inline error_code simdjson_result::rewind() noexcept { - if (error()) { return error(); } - first.rewind(); - return SUCCESS; +simdjson_inline value_iterator document::get_root_value_iterator() noexcept { + return resume_value_iterator(); } -simdjson_inline simdjson_result simdjson_result::begin() & noexcept { - if (error()) { return error(); } - return first.begin(); +simdjson_inline simdjson_result document::start_or_resume_object() noexcept { + if (iter.at_root()) { + return get_object(); + } else { + return object::resume(resume_value_iterator()); + } } -simdjson_inline simdjson_result simdjson_result::end() & noexcept { - return {}; +simdjson_inline simdjson_result document::get_value() noexcept { + // Make sure we start any arrays or objects before returning, so that start_root_() + // gets called. + + // It is the convention throughout the code that the macro `SIMDJSON_DEVELOPMENT_CHECKS` determines whether + // we check for OUT_OF_ORDER_ITERATION. Proper on::demand code should never trigger this error. +#if SIMDJSON_DEVELOPMENT_CHECKS + if (!iter.at_root()) { return OUT_OF_ORDER_ITERATION; } +#endif + // assert_at_root() serves two purposes: in Debug mode, whether or not + // SIMDJSON_DEVELOPMENT_CHECKS is set or not, it checks that we are at the root of + // the document (this will typically be redundant). In release mode, it generates + // SIMDJSON_ASSUME statements to allow the compiler to make assumptions. + iter.assert_at_root(); + switch (*iter.peek()) { + case '[': { + // The following lines check that the document ends with ]. + auto value_iterator = get_root_value_iterator(); + auto error = value_iterator.check_root_array(); + if(error) { return error; } + return value(get_root_value_iterator()); + } + case '{': { + // The following lines would check that the document ends with }. + auto value_iterator = get_root_value_iterator(); + auto error = value_iterator.check_root_object(); + if(error) { return error; } + return value(get_root_value_iterator()); + } + default: + // Unfortunately, scalar documents are a special case in simdjson and they cannot + // be safely converted to value instances. + return SCALAR_DOCUMENT_AS_VALUE; + } } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) & noexcept { +simdjson_inline simdjson_result document::get_array() & noexcept { + auto value = get_root_value_iterator(); + return array::start_root(value); +} +simdjson_inline simdjson_result document::get_object() & noexcept { + auto value = get_root_value_iterator(); + return object::start_root(value); +} + +/** + * We decided that calling 'get_double()' on the JSON document '1.233 blabla' should + * give an error, so we check for trailing content. We want to disallow trailing + * content. + * Thus, in several implementations below, we pass a 'true' parameter value to + * a get_root_value_iterator() method: this indicates that we disallow trailing content. + */ + +simdjson_inline simdjson_result document::get_uint64() noexcept { + return get_root_value_iterator().get_root_uint64(true); +} +simdjson_inline simdjson_result document::get_uint64_in_string() noexcept { + return get_root_value_iterator().get_root_uint64_in_string(true); +} +simdjson_inline simdjson_result document::get_int64() noexcept { + return get_root_value_iterator().get_root_int64(true); +} +simdjson_inline simdjson_result document::get_int64_in_string() noexcept { + return get_root_value_iterator().get_root_int64_in_string(true); +} +simdjson_inline simdjson_result document::get_double() noexcept { + return get_root_value_iterator().get_root_double(true); +} +simdjson_inline simdjson_result document::get_double_in_string() noexcept { + return get_root_value_iterator().get_root_double_in_string(true); +} +simdjson_inline simdjson_result document::get_string(bool allow_replacement) noexcept { + return get_root_value_iterator().get_root_string(true, allow_replacement); +} +template +simdjson_inline error_code document::get_string(string_type& receiver, bool allow_replacement) noexcept { + return get_root_value_iterator().get_root_string(receiver, true, allow_replacement); +} +simdjson_inline simdjson_result document::get_wobbly_string() noexcept { + return get_root_value_iterator().get_root_wobbly_string(true); +} +simdjson_inline simdjson_result document::get_raw_json_string() noexcept { + return get_root_value_iterator().get_root_raw_json_string(true); +} +simdjson_inline simdjson_result document::get_bool() noexcept { + return get_root_value_iterator().get_root_bool(true); +} +simdjson_inline simdjson_result document::is_null() noexcept { + return get_root_value_iterator().is_root_null(true); +} + +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_array(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_object(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_raw_json_string(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_string(false); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_double(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_uint64(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_int64(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_bool(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_value(); } + +template<> simdjson_inline error_code document::get(array& out) & noexcept { return get_array().get(out); } +template<> simdjson_inline error_code document::get(object& out) & noexcept { return get_object().get(out); } +template<> simdjson_inline error_code document::get(raw_json_string& out) & noexcept { return get_raw_json_string().get(out); } +template<> simdjson_inline error_code document::get(std::string_view& out) & noexcept { return get_string(false).get(out); } +template<> simdjson_inline error_code document::get(double& out) & noexcept { return get_double().get(out); } +template<> simdjson_inline error_code document::get(uint64_t& out) & noexcept { return get_uint64().get(out); } +template<> simdjson_inline error_code document::get(int64_t& out) & noexcept { return get_int64().get(out); } +template<> simdjson_inline error_code document::get(bool& out) & noexcept { return get_bool().get(out); } +template<> simdjson_inline error_code document::get(value& out) & noexcept { return get_value().get(out); } + +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_raw_json_string(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_string(false); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_double(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_uint64(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_int64(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_bool(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_value(); } + +#if SIMDJSON_EXCEPTIONS +template +simdjson_deprecated simdjson_inline document::operator T() && noexcept(false) { return get(); } +template +simdjson_inline document::operator T() & noexcept(false) { return get(); } +simdjson_inline document::operator array() & noexcept(false) { return get_array(); } +simdjson_inline document::operator object() & noexcept(false) { return get_object(); } +simdjson_inline document::operator uint64_t() noexcept(false) { return get_uint64(); } +simdjson_inline document::operator int64_t() noexcept(false) { return get_int64(); } +simdjson_inline document::operator double() noexcept(false) { return get_double(); } +simdjson_inline document::operator std::string_view() noexcept(false) { return get_string(false); } +simdjson_inline document::operator raw_json_string() noexcept(false) { return get_raw_json_string(); } +simdjson_inline document::operator bool() noexcept(false) { return get_bool(); } +simdjson_inline document::operator value() noexcept(false) { return get_value(); } + +#endif +simdjson_inline simdjson_result document::count_elements() & noexcept { + auto a = get_array(); + simdjson_result answer = a.count_elements(); + /* If there was an array, we are now left pointing at its first element. */ + if(answer.error() == SUCCESS) { rewind(); } + return answer; +} +simdjson_inline simdjson_result document::count_fields() & noexcept { + auto a = get_object(); + simdjson_result answer = a.count_fields(); + /* If there was an object, we are now left pointing at its first element. */ + if(answer.error() == SUCCESS) { rewind(); } + return answer; +} +simdjson_inline simdjson_result document::at(size_t index) & noexcept { + auto a = get_array(); + return a.at(index); +} +simdjson_inline simdjson_result document::begin() & noexcept { + return get_array().begin(); +} +simdjson_inline simdjson_result document::end() & noexcept { + return {}; +} + +simdjson_inline simdjson_result document::find_field(std::string_view key) & noexcept { + return start_or_resume_object().find_field(key); +} +simdjson_inline simdjson_result document::find_field(const char *key) & noexcept { + return start_or_resume_object().find_field(key); +} +simdjson_inline simdjson_result document::find_field_unordered(std::string_view key) & noexcept { + return start_or_resume_object().find_field_unordered(key); +} +simdjson_inline simdjson_result document::find_field_unordered(const char *key) & noexcept { + return start_or_resume_object().find_field_unordered(key); +} +simdjson_inline simdjson_result document::operator[](std::string_view key) & noexcept { + return start_or_resume_object()[key]; +} +simdjson_inline simdjson_result document::operator[](const char *key) & noexcept { + return start_or_resume_object()[key]; +} + +simdjson_inline error_code document::consume() noexcept { + bool scalar = false; + auto error = is_scalar().get(scalar); + if(error) { return error; } + if(scalar) { + iter.return_current_and_advance(); + return SUCCESS; + } + error = iter.skip_child(0); + if(error) { iter.abandon(); } + return error; +} + +simdjson_inline simdjson_result document::raw_json() noexcept { + auto _iter = get_root_value_iterator(); + const uint8_t * starting_point{_iter.peek_start()}; + auto error = consume(); + if(error) { return error; } + // After 'consume()', we could be left pointing just beyond the document, but that + // is ok because we are not going to dereference the final pointer position, we just + // use it to compute the length in bytes. + const uint8_t * final_point{iter.unsafe_pointer()}; + return std::string_view(reinterpret_cast(starting_point), size_t(final_point - starting_point)); +} + +simdjson_inline simdjson_result document::type() noexcept { + return get_root_value_iterator().type(); +} + +simdjson_inline simdjson_result document::is_scalar() noexcept { + // For more speed, we could do: + // return iter.is_single_token(); + json_type this_type; + auto error = type().get(this_type); + if(error) { return error; } + return ! ((this_type == json_type::array) || (this_type == json_type::object)); +} + +simdjson_inline simdjson_result document::is_string() noexcept { + json_type this_type; + auto error = type().get(this_type); + if(error) { return error; } + return (this_type == json_type::string); +} + +simdjson_inline bool document::is_negative() noexcept { + return get_root_value_iterator().is_root_negative(); +} + +simdjson_inline simdjson_result document::is_integer() noexcept { + return get_root_value_iterator().is_root_integer(true); +} + +simdjson_inline simdjson_result document::get_number_type() noexcept { + return get_root_value_iterator().get_root_number_type(true); +} + +simdjson_inline simdjson_result document::get_number() noexcept { + return get_root_value_iterator().get_root_number(true); +} + + +simdjson_inline simdjson_result document::raw_json_token() noexcept { + auto _iter = get_root_value_iterator(); + return std::string_view(reinterpret_cast(_iter.peek_start()), _iter.peek_root_length()); +} + +simdjson_inline simdjson_result document::at_pointer(std::string_view json_pointer) noexcept { + rewind(); // Rewind the document each time at_pointer is called + if (json_pointer.empty()) { + return this->get_value(); + } + json_type t; + SIMDJSON_TRY(type().get(t)); + switch (t) + { + case json_type::array: + return (*this).get_array().at_pointer(json_pointer); + case json_type::object: + return (*this).get_object().at_pointer(json_pointer); + default: + return INVALID_JSON_POINTER; + } +} + +simdjson_inline simdjson_result document::at_path(std::string_view json_path) noexcept { + rewind(); // Rewind the document each time at_pointer is called + if (json_path.empty()) { + return this->get_value(); + } + json_type t; + SIMDJSON_TRY(type().get(t)); + switch (t) { + case json_type::array: + return (*this).get_array().at_path(json_path); + case json_type::object: + return (*this).get_object().at_path(json_path); + default: + return INVALID_JSON_POINTER; + } +} + +} // namespace ondemand +} // namespace fallback +} // namespace simdjson + +namespace simdjson { + +simdjson_inline simdjson_result::simdjson_result( + fallback::ondemand::document &&value +) noexcept : + implementation_simdjson_result_base( + std::forward(value) + ) +{ +} +simdjson_inline simdjson_result::simdjson_result( + error_code error +) noexcept : + implementation_simdjson_result_base( + error + ) +{ +} +simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { + if (error()) { return error(); } + return first.count_elements(); +} +simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { + if (error()) { return error(); } + return first.count_fields(); +} +simdjson_inline simdjson_result simdjson_result::at(size_t index) & noexcept { + if (error()) { return error(); } + return first.at(index); +} +simdjson_inline error_code simdjson_result::rewind() noexcept { + if (error()) { return error(); } + first.rewind(); + return SUCCESS; +} +simdjson_inline simdjson_result simdjson_result::begin() & noexcept { + if (error()) { return error(); } + return first.begin(); +} +simdjson_inline simdjson_result simdjson_result::end() & noexcept { + return {}; +} +simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) & noexcept { if (error()) { return error(); } return first.find_field_unordered(key); } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) & noexcept { if (error()) { return error(); } return first.find_field_unordered(key); } -simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) & noexcept { +simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) & noexcept { if (error()) { return error(); } return first[key]; } -simdjson_inline simdjson_result simdjson_result::operator[](const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::operator[](const char *key) & noexcept { if (error()) { return error(); } return first[key]; } -simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) & noexcept { if (error()) { return error(); } return first.find_field(key); } -simdjson_inline simdjson_result simdjson_result::find_field(const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field(const char *key) & noexcept { if (error()) { return error(); } return first.find_field(key); } -simdjson_inline simdjson_result simdjson_result::get_array() & noexcept { +simdjson_inline simdjson_result simdjson_result::get_array() & noexcept { if (error()) { return error(); } return first.get_array(); } -simdjson_inline simdjson_result simdjson_result::get_object() & noexcept { +simdjson_inline simdjson_result simdjson_result::get_object() & noexcept { if (error()) { return error(); } return first.get_object(); } -simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { +simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { if (error()) { return error(); } return first.get_uint64(); } -simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { if (error()) { return error(); } return first.get_uint64_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { +simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { if (error()) { return error(); } return first.get_int64(); } -simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { if (error()) { return error(); } return first.get_int64_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_double() noexcept { +simdjson_inline simdjson_result simdjson_result::get_double() noexcept { if (error()) { return error(); } return first.get_double(); } -simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { if (error()) { return error(); } return first.get_double_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { +simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { if (error()) { return error(); } return first.get_string(allow_replacement); } template -simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { +simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { if (error()) { return error(); } return first.get_string(receiver, allow_replacement); } -simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { if (error()) { return error(); } return first.get_wobbly_string(); } -simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { if (error()) { return error(); } return first.get_raw_json_string(); } -simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { +simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { if (error()) { return error(); } return first.get_bool(); } -simdjson_inline simdjson_result simdjson_result::get_value() noexcept { +simdjson_inline simdjson_result simdjson_result::get_value() noexcept { if (error()) { return error(); } return first.get_value(); } -simdjson_inline simdjson_result simdjson_result::is_null() noexcept { +simdjson_inline simdjson_result simdjson_result::is_null() noexcept { if (error()) { return error(); } return first.is_null(); } -simdjson_inline simdjson_result simdjson_result::type() noexcept { + +template +simdjson_inline simdjson_result simdjson_result::get() & noexcept { + if (error()) { return error(); } + return first.get(); +} +template +simdjson_deprecated simdjson_inline simdjson_result simdjson_result::get() && noexcept { + if (error()) { return error(); } + return std::forward(first).get(); +} +template +simdjson_inline error_code simdjson_result::get(T &out) & noexcept { + if (error()) { return error(); } + return first.get(out); +} +template +simdjson_inline error_code simdjson_result::get(T &out) && noexcept { + if (error()) { return error(); } + return std::forward(first).get(out); +} + +template<> simdjson_inline simdjson_result simdjson_result::get() & noexcept = delete; +template<> simdjson_deprecated simdjson_inline simdjson_result simdjson_result::get() && noexcept { + if (error()) { return error(); } + return std::forward(first); +} +template<> simdjson_inline error_code simdjson_result::get(fallback::ondemand::document &out) & noexcept = delete; +template<> simdjson_inline error_code simdjson_result::get(fallback::ondemand::document &out) && noexcept { + if (error()) { return error(); } + out = std::forward(first); + return SUCCESS; +} + +simdjson_inline simdjson_result simdjson_result::type() noexcept { if (error()) { return error(); } return first.type(); } -simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { + +simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { if (error()) { return error(); } return first.is_scalar(); } -simdjson_inline simdjson_result simdjson_result::is_string() noexcept { + +simdjson_inline simdjson_result simdjson_result::is_string() noexcept { if (error()) { return error(); } return first.is_string(); } -simdjson_inline simdjson_result simdjson_result::is_negative() noexcept { + +simdjson_inline bool simdjson_result::is_negative() noexcept { if (error()) { return error(); } return first.is_negative(); } -simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { + +simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { if (error()) { return error(); } return first.is_integer(); } -simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { + +simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { if (error()) { return error(); } return first.get_number_type(); } -simdjson_inline simdjson_result simdjson_result::get_number() noexcept { + +simdjson_inline simdjson_result simdjson_result::get_number() noexcept { if (error()) { return error(); } return first.get_number(); } + + #if SIMDJSON_EXCEPTIONS -template ::value == false>::type> -simdjson_inline simdjson_result::operator T() noexcept(false) { +template ::value == false>::type> +simdjson_inline simdjson_result::operator T() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator fallback::ondemand::array() & noexcept(false) { +simdjson_inline simdjson_result::operator fallback::ondemand::array() & noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator fallback::ondemand::object() & noexcept(false) { +simdjson_inline simdjson_result::operator fallback::ondemand::object() & noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { +simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator int64_t() noexcept(false) { +simdjson_inline simdjson_result::operator int64_t() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator double() noexcept(false) { +simdjson_inline simdjson_result::operator double() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { +simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator fallback::ondemand::raw_json_string() noexcept(false) { +simdjson_inline simdjson_result::operator fallback::ondemand::raw_json_string() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator bool() noexcept(false) { +simdjson_inline simdjson_result::operator bool() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator fallback::ondemand::value() noexcept(false) { +simdjson_inline simdjson_result::operator fallback::ondemand::value() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } #endif -simdjson_inline simdjson_result simdjson_result::current_location() noexcept { + +simdjson_inline simdjson_result simdjson_result::current_location() noexcept { if (error()) { return error(); } return first.current_location(); } -simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { +simdjson_inline bool simdjson_result::at_end() const noexcept { + if (error()) { return error(); } + return first.at_end(); +} + + +simdjson_inline int32_t simdjson_result::current_depth() const noexcept { + if (error()) { return error(); } + return first.current_depth(); +} + +simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { if (error()) { return error(); } return first.raw_json_token(); } -simdjson_inline simdjson_result simdjson_result::at_pointer(std::string_view json_pointer) noexcept { +simdjson_inline simdjson_result simdjson_result::at_pointer(std::string_view json_pointer) noexcept { if (error()) { return error(); } return first.at_pointer(json_pointer); } -simdjson_inline simdjson_result simdjson_result::at_path(std::string_view json_path) noexcept { - if (error()) { - return error(); - } +simdjson_inline simdjson_result simdjson_result::at_path(std::string_view json_path) noexcept { + if (error()) { return error(); } return first.at_path(json_path); } } // namespace simdjson -#endif // SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H -/* end file simdjson/generic/ondemand/document-inl.h for fallback */ -/* including simdjson/generic/ondemand/document_stream-inl.h for fallback: #include "simdjson/generic/ondemand/document_stream-inl.h" */ -/* begin file simdjson/generic/ondemand/document_stream-inl.h for fallback */ -#ifndef SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H - -/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ -/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document_stream.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/implementation_simdjson_result_base-inl.h" */ -/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ - -#include -#include namespace simdjson { namespace fallback { namespace ondemand { -#ifdef SIMDJSON_THREADS_ENABLED - -inline void stage1_worker::finish() { - // After calling "run" someone would call finish() to wait - // for the end of the processing. - // This function will wait until either the thread has done - // the processing or, else, the destructor has been called. - std::unique_lock lock(locking_mutex); - cond_var.wait(lock, [this]{return has_work == false;}); -} - -inline stage1_worker::~stage1_worker() { - // The thread may never outlive the stage1_worker instance - // and will always be stopped/joined before the stage1_worker - // instance is gone. - stop_thread(); -} - -inline void stage1_worker::start_thread() { - std::unique_lock lock(locking_mutex); - if(thread.joinable()) { - return; // This should never happen but we never want to create more than one thread. - } - thread = std::thread([this]{ - while(true) { - std::unique_lock thread_lock(locking_mutex); - // We wait for either "run" or "stop_thread" to be called. - cond_var.wait(thread_lock, [this]{return has_work || !can_work;}); - // If, for some reason, the stop_thread() method was called (i.e., the - // destructor of stage1_worker is called, then we want to immediately destroy - // the thread (and not do any more processing). - if(!can_work) { - break; - } - this->owner->stage1_thread_error = this->owner->run_stage1(*this->stage1_thread_parser, - this->_next_batch_start); - this->has_work = false; - // The condition variable call should be moved after thread_lock.unlock() for performance - // reasons but thread sanitizers may report it as a data race if we do. - // See https://stackoverflow.com/questions/35775501/c-should-condition-variable-be-notified-under-lock - cond_var.notify_one(); // will notify "finish" - thread_lock.unlock(); - } - } - ); -} - - -inline void stage1_worker::stop_thread() { - std::unique_lock lock(locking_mutex); - // We have to make sure that all locks can be released. - can_work = false; - has_work = false; - cond_var.notify_all(); - lock.unlock(); - if(thread.joinable()) { - thread.join(); - } -} - -inline void stage1_worker::run(document_stream * ds, parser * stage1, size_t next_batch_start) { - std::unique_lock lock(locking_mutex); - owner = ds; - _next_batch_start = next_batch_start; - stage1_thread_parser = stage1; - has_work = true; - // The condition variable call should be moved after thread_lock.unlock() for performance - // reasons but thread sanitizers may report it as a data race if we do. - // See https://stackoverflow.com/questions/35775501/c-should-condition-variable-be-notified-under-lock - cond_var.notify_one(); // will notify the thread lock that we have work - lock.unlock(); -} - -#endif // SIMDJSON_THREADS_ENABLED - -simdjson_inline document_stream::document_stream( - ondemand::parser &_parser, - const uint8_t *_buf, +simdjson_inline document_reference::document_reference() noexcept : doc{nullptr} {} +simdjson_inline document_reference::document_reference(document &d) noexcept : doc(&d) {} +simdjson_inline void document_reference::rewind() noexcept { doc->rewind(); } +simdjson_inline simdjson_result document_reference::get_array() & noexcept { return doc->get_array(); } +simdjson_inline simdjson_result document_reference::get_object() & noexcept { return doc->get_object(); } +/** + * The document_reference instances are used primarily/solely for streams of JSON + * documents. + * We decided that calling 'get_double()' on the JSON document '1.233 blabla' should + * give an error, so we check for trailing content. + * + * However, for streams of JSON documents, we want to be able to start from + * "321" "321" "321" + * and parse it successfully as a stream of JSON documents, calling get_uint64_in_string() + * successfully each time. + * + * To achieve this result, we pass a 'false' to a get_root_value_iterator() method: + * this indicates that we allow trailing content. + */ +simdjson_inline simdjson_result document_reference::get_uint64() noexcept { return doc->get_root_value_iterator().get_root_uint64(false); } +simdjson_inline simdjson_result document_reference::get_uint64_in_string() noexcept { return doc->get_root_value_iterator().get_root_uint64_in_string(false); } +simdjson_inline simdjson_result document_reference::get_int64() noexcept { return doc->get_root_value_iterator().get_root_int64(false); } +simdjson_inline simdjson_result document_reference::get_int64_in_string() noexcept { return doc->get_root_value_iterator().get_root_int64_in_string(false); } +simdjson_inline simdjson_result document_reference::get_double() noexcept { return doc->get_root_value_iterator().get_root_double(false); } +simdjson_inline simdjson_result document_reference::get_double_in_string() noexcept { return doc->get_root_value_iterator().get_root_double(false); } +simdjson_inline simdjson_result document_reference::get_string(bool allow_replacement) noexcept { return doc->get_root_value_iterator().get_root_string(false, allow_replacement); } +template +simdjson_inline error_code document_reference::get_string(string_type& receiver, bool allow_replacement) noexcept { return doc->get_root_value_iterator().get_root_string(receiver, false, allow_replacement); } +simdjson_inline simdjson_result document_reference::get_wobbly_string() noexcept { return doc->get_root_value_iterator().get_root_wobbly_string(false); } +simdjson_inline simdjson_result document_reference::get_raw_json_string() noexcept { return doc->get_root_value_iterator().get_root_raw_json_string(false); } +simdjson_inline simdjson_result document_reference::get_bool() noexcept { return doc->get_root_value_iterator().get_root_bool(false); } +simdjson_inline simdjson_result document_reference::get_value() noexcept { return doc->get_value(); } +simdjson_inline simdjson_result document_reference::is_null() noexcept { return doc->get_root_value_iterator().is_root_null(false); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_array(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_object(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_raw_json_string(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_string(false); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_double(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_uint64(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_int64(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_bool(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_value(); } +#if SIMDJSON_EXCEPTIONS +template +simdjson_inline document_reference::operator T() noexcept(false) { return get(); } +simdjson_inline document_reference::operator array() & noexcept(false) { return array(*doc); } +simdjson_inline document_reference::operator object() & noexcept(false) { return object(*doc); } +simdjson_inline document_reference::operator uint64_t() noexcept(false) { return get_uint64(); } +simdjson_inline document_reference::operator int64_t() noexcept(false) { return get_int64(); } +simdjson_inline document_reference::operator double() noexcept(false) { return get_double(); } +simdjson_inline document_reference::operator std::string_view() noexcept(false) { return std::string_view(*doc); } +simdjson_inline document_reference::operator raw_json_string() noexcept(false) { return get_raw_json_string(); } +simdjson_inline document_reference::operator bool() noexcept(false) { return get_bool(); } +simdjson_inline document_reference::operator value() noexcept(false) { return value(*doc); } +#endif +simdjson_inline simdjson_result document_reference::count_elements() & noexcept { return doc->count_elements(); } +simdjson_inline simdjson_result document_reference::count_fields() & noexcept { return doc->count_fields(); } +simdjson_inline simdjson_result document_reference::at(size_t index) & noexcept { return doc->at(index); } +simdjson_inline simdjson_result document_reference::begin() & noexcept { return doc->begin(); } +simdjson_inline simdjson_result document_reference::end() & noexcept { return doc->end(); } +simdjson_inline simdjson_result document_reference::find_field(std::string_view key) & noexcept { return doc->find_field(key); } +simdjson_inline simdjson_result document_reference::find_field(const char *key) & noexcept { return doc->find_field(key); } +simdjson_inline simdjson_result document_reference::operator[](std::string_view key) & noexcept { return (*doc)[key]; } +simdjson_inline simdjson_result document_reference::operator[](const char *key) & noexcept { return (*doc)[key]; } +simdjson_inline simdjson_result document_reference::find_field_unordered(std::string_view key) & noexcept { return doc->find_field_unordered(key); } +simdjson_inline simdjson_result document_reference::find_field_unordered(const char *key) & noexcept { return doc->find_field_unordered(key); } +simdjson_inline simdjson_result document_reference::type() noexcept { return doc->type(); } +simdjson_inline simdjson_result document_reference::is_scalar() noexcept { return doc->is_scalar(); } +simdjson_inline simdjson_result document_reference::is_string() noexcept { return doc->is_string(); } +simdjson_inline simdjson_result document_reference::current_location() noexcept { return doc->current_location(); } +simdjson_inline int32_t document_reference::current_depth() const noexcept { return doc->current_depth(); } +simdjson_inline bool document_reference::is_negative() noexcept { return doc->is_negative(); } +simdjson_inline simdjson_result document_reference::is_integer() noexcept { return doc->get_root_value_iterator().is_root_integer(false); } +simdjson_inline simdjson_result document_reference::get_number_type() noexcept { return doc->get_root_value_iterator().get_root_number_type(false); } +simdjson_inline simdjson_result document_reference::get_number() noexcept { return doc->get_root_value_iterator().get_root_number(false); } +simdjson_inline simdjson_result document_reference::raw_json_token() noexcept { return doc->raw_json_token(); } +simdjson_inline simdjson_result document_reference::at_pointer(std::string_view json_pointer) noexcept { return doc->at_pointer(json_pointer); } +simdjson_inline simdjson_result document_reference::at_path(std::string_view json_path) noexcept { return doc->at_path(json_path); } +simdjson_inline simdjson_result document_reference::raw_json() noexcept { return doc->raw_json();} +simdjson_inline document_reference::operator document&() const noexcept { return *doc; } + +} // namespace ondemand +} // namespace fallback +} // namespace simdjson + + + +namespace simdjson { +simdjson_inline simdjson_result::simdjson_result(fallback::ondemand::document_reference value, error_code error) + noexcept : implementation_simdjson_result_base(std::forward(value), error) {} + + +simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { + if (error()) { return error(); } + return first.count_elements(); +} +simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { + if (error()) { return error(); } + return first.count_fields(); +} +simdjson_inline simdjson_result simdjson_result::at(size_t index) & noexcept { + if (error()) { return error(); } + return first.at(index); +} +simdjson_inline error_code simdjson_result::rewind() noexcept { + if (error()) { return error(); } + first.rewind(); + return SUCCESS; +} +simdjson_inline simdjson_result simdjson_result::begin() & noexcept { + if (error()) { return error(); } + return first.begin(); +} +simdjson_inline simdjson_result simdjson_result::end() & noexcept { + return {}; +} +simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) & noexcept { + if (error()) { return error(); } + return first.find_field_unordered(key); +} +simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) & noexcept { + if (error()) { return error(); } + return first.find_field_unordered(key); +} +simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) & noexcept { + if (error()) { return error(); } + return first[key]; +} +simdjson_inline simdjson_result simdjson_result::operator[](const char *key) & noexcept { + if (error()) { return error(); } + return first[key]; +} +simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) & noexcept { + if (error()) { return error(); } + return first.find_field(key); +} +simdjson_inline simdjson_result simdjson_result::find_field(const char *key) & noexcept { + if (error()) { return error(); } + return first.find_field(key); +} +simdjson_inline simdjson_result simdjson_result::get_array() & noexcept { + if (error()) { return error(); } + return first.get_array(); +} +simdjson_inline simdjson_result simdjson_result::get_object() & noexcept { + if (error()) { return error(); } + return first.get_object(); +} +simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { + if (error()) { return error(); } + return first.get_uint64(); +} +simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { + if (error()) { return error(); } + return first.get_uint64_in_string(); +} +simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { + if (error()) { return error(); } + return first.get_int64(); +} +simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { + if (error()) { return error(); } + return first.get_int64_in_string(); +} +simdjson_inline simdjson_result simdjson_result::get_double() noexcept { + if (error()) { return error(); } + return first.get_double(); +} +simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { + if (error()) { return error(); } + return first.get_double_in_string(); +} +simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { + if (error()) { return error(); } + return first.get_string(allow_replacement); +} +template +simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { + if (error()) { return error(); } + return first.get_string(receiver, allow_replacement); +} +simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { + if (error()) { return error(); } + return first.get_wobbly_string(); +} +simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { + if (error()) { return error(); } + return first.get_raw_json_string(); +} +simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { + if (error()) { return error(); } + return first.get_bool(); +} +simdjson_inline simdjson_result simdjson_result::get_value() noexcept { + if (error()) { return error(); } + return first.get_value(); +} +simdjson_inline simdjson_result simdjson_result::is_null() noexcept { + if (error()) { return error(); } + return first.is_null(); +} +template +simdjson_inline simdjson_result simdjson_result::get() & noexcept { + if (error()) { return error(); } + return first.get(); +} +template +simdjson_inline simdjson_result simdjson_result::get() && noexcept { + if (error()) { return error(); } + return std::forward(first).get(); +} +template +simdjson_inline error_code simdjson_result::get(T &out) & noexcept { + if (error()) { return error(); } + return first.get(out); +} +template +simdjson_inline error_code simdjson_result::get(T &out) && noexcept { + if (error()) { return error(); } + return std::forward(first).get(out); +} +simdjson_inline simdjson_result simdjson_result::type() noexcept { + if (error()) { return error(); } + return first.type(); +} +simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { + if (error()) { return error(); } + return first.is_scalar(); +} +simdjson_inline simdjson_result simdjson_result::is_string() noexcept { + if (error()) { return error(); } + return first.is_string(); +} +template <> +simdjson_inline error_code simdjson_result::get(fallback::ondemand::document_reference &out) & noexcept { + if (error()) { return error(); } + out = first; + return SUCCESS; +} +template <> +simdjson_inline error_code simdjson_result::get(fallback::ondemand::document_reference &out) && noexcept { + if (error()) { return error(); } + out = first; + return SUCCESS; +} +simdjson_inline simdjson_result simdjson_result::is_negative() noexcept { + if (error()) { return error(); } + return first.is_negative(); +} +simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { + if (error()) { return error(); } + return first.is_integer(); +} +simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { + if (error()) { return error(); } + return first.get_number_type(); +} +simdjson_inline simdjson_result simdjson_result::get_number() noexcept { + if (error()) { return error(); } + return first.get_number(); +} +#if SIMDJSON_EXCEPTIONS +template +simdjson_inline simdjson_result::operator T() noexcept(false) { + static_assert(std::is_same::value == false, "You should not call get when T is a document"); + static_assert(std::is_same::value == false, "You should not call get when T is a document"); + if (error()) { throw simdjson_error(error()); } + return first.get(); +} +simdjson_inline simdjson_result::operator fallback::ondemand::array() & noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator fallback::ondemand::object() & noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator int64_t() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator double() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator fallback::ondemand::raw_json_string() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator bool() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator fallback::ondemand::value() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +#endif + +simdjson_inline simdjson_result simdjson_result::current_location() noexcept { + if (error()) { return error(); } + return first.current_location(); +} + +simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { + if (error()) { return error(); } + return first.raw_json_token(); +} + +simdjson_inline simdjson_result simdjson_result::at_pointer(std::string_view json_pointer) noexcept { + if (error()) { return error(); } + return first.at_pointer(json_pointer); +} + +simdjson_inline simdjson_result simdjson_result::at_path(std::string_view json_path) noexcept { + if (error()) { + return error(); + } + return first.at_path(json_path); +} + +} // namespace simdjson + +#endif // SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H +/* end file simdjson/generic/ondemand/document-inl.h for fallback */ +/* including simdjson/generic/ondemand/document_stream-inl.h for fallback: #include "simdjson/generic/ondemand/document_stream-inl.h" */ +/* begin file simdjson/generic/ondemand/document_stream-inl.h for fallback */ +#ifndef SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H + +/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ +/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document_stream.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/implementation_simdjson_result_base-inl.h" */ +/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ + +#include +#include + +namespace simdjson { +namespace fallback { +namespace ondemand { + +#ifdef SIMDJSON_THREADS_ENABLED + +inline void stage1_worker::finish() { + // After calling "run" someone would call finish() to wait + // for the end of the processing. + // This function will wait until either the thread has done + // the processing or, else, the destructor has been called. + std::unique_lock lock(locking_mutex); + cond_var.wait(lock, [this]{return has_work == false;}); +} + +inline stage1_worker::~stage1_worker() { + // The thread may never outlive the stage1_worker instance + // and will always be stopped/joined before the stage1_worker + // instance is gone. + stop_thread(); +} + +inline void stage1_worker::start_thread() { + std::unique_lock lock(locking_mutex); + if(thread.joinable()) { + return; // This should never happen but we never want to create more than one thread. + } + thread = std::thread([this]{ + while(true) { + std::unique_lock thread_lock(locking_mutex); + // We wait for either "run" or "stop_thread" to be called. + cond_var.wait(thread_lock, [this]{return has_work || !can_work;}); + // If, for some reason, the stop_thread() method was called (i.e., the + // destructor of stage1_worker is called, then we want to immediately destroy + // the thread (and not do any more processing). + if(!can_work) { + break; + } + this->owner->stage1_thread_error = this->owner->run_stage1(*this->stage1_thread_parser, + this->_next_batch_start); + this->has_work = false; + // The condition variable call should be moved after thread_lock.unlock() for performance + // reasons but thread sanitizers may report it as a data race if we do. + // See https://stackoverflow.com/questions/35775501/c-should-condition-variable-be-notified-under-lock + cond_var.notify_one(); // will notify "finish" + thread_lock.unlock(); + } + } + ); +} + + +inline void stage1_worker::stop_thread() { + std::unique_lock lock(locking_mutex); + // We have to make sure that all locks can be released. + can_work = false; + has_work = false; + cond_var.notify_all(); + lock.unlock(); + if(thread.joinable()) { + thread.join(); + } +} + +inline void stage1_worker::run(document_stream * ds, parser * stage1, size_t next_batch_start) { + std::unique_lock lock(locking_mutex); + owner = ds; + _next_batch_start = next_batch_start; + stage1_thread_parser = stage1; + has_work = true; + // The condition variable call should be moved after thread_lock.unlock() for performance + // reasons but thread sanitizers may report it as a data race if we do. + // See https://stackoverflow.com/questions/35775501/c-should-condition-variable-be-notified-under-lock + cond_var.notify_one(); // will notify the thread lock that we have work + lock.unlock(); +} + +#endif // SIMDJSON_THREADS_ENABLED + +simdjson_inline document_stream::document_stream( + ondemand::parser &_parser, + const uint8_t *_buf, size_t _len, size_t _batch_size, bool _allow_comma_separated @@ -48104,7 +50087,6 @@ simdjson_inline document_stream::iterator::iterator(document_stream* _stream, bo } simdjson_inline simdjson_result document_stream::iterator::operator*() noexcept { - //if(stream->error) { return stream->error; } return simdjson_result(stream->doc, stream->error); } @@ -49963,36 +51945,39 @@ simdjson_inline const char * raw_json_string::raw() const noexcept { return rein simdjson_inline bool raw_json_string::is_free_from_unescaped_quote(std::string_view target) noexcept { size_t pos{0}; - // if the content has no escape character, just scan through it quickly! - for(;pos < target.size() && target[pos] != '\\';pos++) {} - // slow path may begin. - bool escaping{false}; - for(;pos < target.size();pos++) { - if((target[pos] == '"') && !escaping) { - return false; - } else if(target[pos] == '\\') { - escaping = !escaping; - } else { - escaping = false; + while(pos < target.size()) { + pos = target.find('"', pos); + if(pos == std::string_view::npos) { return true; } + if(pos != 0 && target[pos-1] != '\\') { return false; } + if(pos > 1 && target[pos-2] == '\\') { + size_t backslash_count{2}; + for(size_t i = 3; i <= pos; i++) { + if(target[pos-i] == '\\') { backslash_count++; } + else { break; } + } + if(backslash_count % 2 == 0) { return false; } } + pos++; } return true; } simdjson_inline bool raw_json_string::is_free_from_unescaped_quote(const char* target) noexcept { size_t pos{0}; - // if the content has no escape character, just scan through it quickly! - for(;target[pos] && target[pos] != '\\';pos++) {} - // slow path may begin. - bool escaping{false}; - for(;target[pos];pos++) { - if((target[pos] == '"') && !escaping) { - return false; - } else if(target[pos] == '\\') { - escaping = !escaping; - } else { - escaping = false; + while(target[pos]) { + const char * result = strchr(target+pos, '"'); + if(result == nullptr) { return true; } + pos = result - target; + if(pos != 0 && target[pos-1] != '\\') { return false; } + if(pos > 1 && target[pos-2] == '\\') { + size_t backslash_count{2}; + for(size_t i = 3; i <= pos; i++) { + if(target[pos-i] == '\\') { backslash_count++; } + else { break; } + } + if(backslash_count % 2 == 0) { return false; } } + pos++; } return true; } @@ -50004,7 +51989,7 @@ simdjson_inline bool raw_json_string::unsafe_is_equal(size_t length, std::string } simdjson_inline bool raw_json_string::unsafe_is_equal(std::string_view target) const noexcept { - // Assumptions: does not contain unescaped quote characters, and + // Assumptions: does not contain unescaped quote characters("), and // the raw content is quote terminated within a valid JSON string. if(target.size() <= SIMDJSON_PADDING) { return (raw()[target.size()] == '"') && !memcmp(raw(), target.data(), target.size()); @@ -50478,775 +52463,230 @@ simdjson_inline simdjson_result::simdjson_re #endif // SIMDJSON_GENERIC_ONDEMAND_TOKEN_ITERATOR_INL_H /* end file simdjson/generic/ondemand/token_iterator-inl.h for fallback */ -/* including simdjson/generic/ondemand/value-inl.h for fallback: #include "simdjson/generic/ondemand/value-inl.h" */ -/* begin file simdjson/generic/ondemand/value-inl.h for fallback */ -#ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H +/* including simdjson/generic/ondemand/value_iterator-inl.h for fallback: #include "simdjson/generic/ondemand/value_iterator-inl.h" */ +/* begin file simdjson/generic/ondemand/value_iterator-inl.h for fallback */ +#ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H /* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ -/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H */ +/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/atomparsing.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/numberparsing.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string-inl.h" */ /* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ namespace simdjson { namespace fallback { namespace ondemand { -simdjson_inline value::value(const value_iterator &_iter) noexcept - : iter{_iter} +simdjson_inline value_iterator::value_iterator( + json_iterator *json_iter, + depth_t depth, + token_position start_position +) noexcept : _json_iter{json_iter}, _depth{depth}, _start_position{start_position} { } -simdjson_inline value value::start(const value_iterator &iter) noexcept { - return iter; -} -simdjson_inline value value::resume(const value_iterator &iter) noexcept { - return iter; -} - -simdjson_inline simdjson_result value::get_array() noexcept { - return array::start(iter); -} -simdjson_inline simdjson_result value::get_object() noexcept { - return object::start(iter); -} -simdjson_inline simdjson_result value::start_or_resume_object() noexcept { - if (iter.at_start()) { - return get_object(); - } else { - return object::resume(iter); - } -} -simdjson_inline simdjson_result value::get_raw_json_string() noexcept { - return iter.get_raw_json_string(); -} -simdjson_inline simdjson_result value::get_string(bool allow_replacement) noexcept { - return iter.get_string(allow_replacement); -} -template -simdjson_inline error_code value::get_string(string_type& receiver, bool allow_replacement) noexcept { - return iter.get_string(receiver, allow_replacement); -} -simdjson_inline simdjson_result value::get_wobbly_string() noexcept { - return iter.get_wobbly_string(); -} -simdjson_inline simdjson_result value::get_double() noexcept { - return iter.get_double(); -} -simdjson_inline simdjson_result value::get_double_in_string() noexcept { - return iter.get_double_in_string(); -} -simdjson_inline simdjson_result value::get_uint64() noexcept { - return iter.get_uint64(); -} -simdjson_inline simdjson_result value::get_uint64_in_string() noexcept { - return iter.get_uint64_in_string(); -} -simdjson_inline simdjson_result value::get_int64() noexcept { - return iter.get_int64(); -} -simdjson_inline simdjson_result value::get_int64_in_string() noexcept { - return iter.get_int64_in_string(); -} -simdjson_inline simdjson_result value::get_bool() noexcept { - return iter.get_bool(); -} -simdjson_inline simdjson_result value::is_null() noexcept { - return iter.is_null(); +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::start_object() noexcept { + SIMDJSON_TRY( start_container('{', "Not an object", "object") ); + return started_object(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_array(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_object(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_raw_json_string(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_string(false); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_number(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_double(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_uint64(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_int64(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_bool(); } -template simdjson_inline error_code value::get(T &out) noexcept { - return get().get(out); +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::start_root_object() noexcept { + SIMDJSON_TRY( start_container('{', "Not an object", "object") ); + return started_root_object(); } -#if SIMDJSON_EXCEPTIONS -template -simdjson_inline value::operator T() noexcept(false) { - return get(); -} -simdjson_inline value::operator array() noexcept(false) { - return get_array(); -} -simdjson_inline value::operator object() noexcept(false) { - return get_object(); -} -simdjson_inline value::operator uint64_t() noexcept(false) { - return get_uint64(); -} -simdjson_inline value::operator int64_t() noexcept(false) { - return get_int64(); -} -simdjson_inline value::operator double() noexcept(false) { - return get_double(); -} -simdjson_inline value::operator std::string_view() noexcept(false) { - return get_string(false); -} -simdjson_inline value::operator raw_json_string() noexcept(false) { - return get_raw_json_string(); -} -simdjson_inline value::operator bool() noexcept(false) { - return get_bool(); -} +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::started_object() noexcept { + assert_at_container_start(); +#if SIMDJSON_DEVELOPMENT_CHECKS + _json_iter->set_start_position(_depth, start_position()); #endif - -simdjson_inline simdjson_result value::begin() & noexcept { - return get_array().begin(); -} -simdjson_inline simdjson_result value::end() & noexcept { - return {}; -} -simdjson_inline simdjson_result value::count_elements() & noexcept { - simdjson_result answer; - auto a = get_array(); - answer = a.count_elements(); - // count_elements leaves you pointing inside the array, at the first element. - // We need to move back so that the user can create a new array (which requires that - // we point at '['). - iter.move_at_start(); - return answer; -} -simdjson_inline simdjson_result value::count_fields() & noexcept { - simdjson_result answer; - auto a = get_object(); - answer = a.count_fields(); - iter.move_at_start(); - return answer; -} -simdjson_inline simdjson_result value::at(size_t index) noexcept { - auto a = get_array(); - return a.at(index); -} - -simdjson_inline simdjson_result value::find_field(std::string_view key) noexcept { - return start_or_resume_object().find_field(key); -} -simdjson_inline simdjson_result value::find_field(const char *key) noexcept { - return start_or_resume_object().find_field(key); -} - -simdjson_inline simdjson_result value::find_field_unordered(std::string_view key) noexcept { - return start_or_resume_object().find_field_unordered(key); -} -simdjson_inline simdjson_result value::find_field_unordered(const char *key) noexcept { - return start_or_resume_object().find_field_unordered(key); -} - -simdjson_inline simdjson_result value::operator[](std::string_view key) noexcept { - return start_or_resume_object()[key]; -} -simdjson_inline simdjson_result value::operator[](const char *key) noexcept { - return start_or_resume_object()[key]; -} - -simdjson_inline simdjson_result value::type() noexcept { - return iter.type(); + if (*_json_iter->peek() == '}') { + logger::log_value(*_json_iter, "empty object"); + _json_iter->return_current_and_advance(); + end_container(); + return false; + } + return true; } -simdjson_inline simdjson_result value::is_scalar() noexcept { - json_type this_type; - auto error = type().get(this_type); - if(error) { return error; } - return ! ((this_type == json_type::array) || (this_type == json_type::object)); +simdjson_warn_unused simdjson_inline error_code value_iterator::check_root_object() noexcept { + // When in streaming mode, we cannot expect peek_last() to be the last structural element of the + // current document. It only works in the normal mode where we have indexed a single document. + // Note that adding a check for 'streaming' is not expensive since we only have at most + // one root element. + if ( ! _json_iter->streaming() ) { + // The following lines do not fully protect against garbage content within the + // object: e.g., `{"a":2} foo }`. Users concerned with garbage content should + // call `at_end()` on the document instance at the end of the processing to + // ensure that the processing has finished at the end. + // + if (*_json_iter->peek_last() != '}') { + _json_iter->abandon(); + return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing } at end"); + } + // If the last character is } *and* the first gibberish character is also '}' + // then on-demand could accidentally go over. So we need additional checks. + // https://github.com/simdjson/simdjson/issues/1834 + // Checking that the document is balanced requires a full scan which is potentially + // expensive, but it only happens in edge cases where the first padding character is + // a closing bracket. + if ((*_json_iter->peek(_json_iter->end_position()) == '}') && (!_json_iter->balanced())) { + _json_iter->abandon(); + // The exact error would require more work. It will typically be an unclosed object. + return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "the document is unbalanced"); + } + } + return SUCCESS; } -simdjson_inline simdjson_result value::is_string() noexcept { - json_type this_type; - auto error = type().get(this_type); +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::started_root_object() noexcept { + auto error = check_root_object(); if(error) { return error; } - return (this_type == json_type::string); -} - - -simdjson_inline bool value::is_negative() noexcept { - return iter.is_negative(); + return started_object(); } -simdjson_inline simdjson_result value::is_integer() noexcept { - return iter.is_integer(); -} -simdjson_warn_unused simdjson_inline simdjson_result value::get_number_type() noexcept { - return iter.get_number_type(); -} -simdjson_warn_unused simdjson_inline simdjson_result value::get_number() noexcept { - return iter.get_number(); +simdjson_warn_unused simdjson_inline error_code value_iterator::end_container() noexcept { +#if SIMDJSON_CHECK_EOF + if (depth() > 1 && at_end()) { return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing parent ] or }"); } + // if (depth() <= 1 && !at_end()) { return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing [ or { at start"); } +#endif // SIMDJSON_CHECK_EOF + _json_iter->ascend_to(depth()-1); + return SUCCESS; } -simdjson_inline std::string_view value::raw_json_token() noexcept { - return std::string_view(reinterpret_cast(iter.peek_start()), iter.peek_start_length()); -} +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::has_next_field() noexcept { + assert_at_next(); -simdjson_inline simdjson_result value::raw_json() noexcept { - json_type t; - SIMDJSON_TRY(type().get(t)); - switch (t) - { - case json_type::array: { - ondemand::array array; - SIMDJSON_TRY(get_array().get(array)); - return array.raw_json(); - } - case json_type::object: { - ondemand::object object; - SIMDJSON_TRY(get_object().get(object)); - return object.raw_json(); - } + // It's illegal to call this unless there are more tokens: anything that ends in } or ] is + // obligated to verify there are more tokens if they are not the top level. + switch (*_json_iter->return_current_and_advance()) { + case '}': + logger::log_end_value(*_json_iter, "object"); + SIMDJSON_TRY( end_container() ); + return false; + case ',': + return true; default: - return raw_json_token(); + return report_error(TAPE_ERROR, "Missing comma between object fields"); } } -simdjson_inline simdjson_result value::current_location() noexcept { - return iter.json_iter().current_location(); -} - -simdjson_inline int32_t value::current_depth() const noexcept{ - return iter.json_iter().depth(); -} +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::find_field_raw(const std::string_view key) noexcept { + error_code error; + bool has_value; + // + // Initially, the object can be in one of a few different places: + // + // 1. The start of the object, at the first field: + // + // ``` + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 2, index 1) + // ``` + if (at_first_field()) { + has_value = true; -inline bool is_pointer_well_formed(std::string_view json_pointer) noexcept { - if (simdjson_unlikely(json_pointer.empty())) { // can't be - return false; - } - if (simdjson_unlikely(json_pointer[0] != '/')) { - return false; - } - size_t escape = json_pointer.find('~'); - if (escape == std::string_view::npos) { - return true; - } - if (escape == json_pointer.size() - 1) { - return false; - } - if (json_pointer[escape + 1] != '0' && json_pointer[escape + 1] != '1') { + // + // 2. When a previous search did not yield a value or the object is empty: + // + // ``` + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 0) + // { } + // ^ (depth 0, index 2) + // ``` + // + } else if (!is_open()) { +#if SIMDJSON_DEVELOPMENT_CHECKS + // If we're past the end of the object, we're being iterated out of order. + // Note: this is not perfect detection. It's possible the user is inside some other object; if so, + // this object iterator will blithely scan that object for fields. + if (_json_iter->depth() < depth() - 1) { return OUT_OF_ORDER_ITERATION; } +#endif return false; - } - return true; -} -simdjson_inline simdjson_result value::at_pointer(std::string_view json_pointer) noexcept { - json_type t; - SIMDJSON_TRY(type().get(t)); - switch (t) - { - case json_type::array: - return (*this).get_array().at_pointer(json_pointer); - case json_type::object: - return (*this).get_object().at_pointer(json_pointer); - default: - // a non-empty string can be invalid, or accessing a primitive (issue 2154) - if (is_pointer_well_formed(json_pointer)) { - return NO_SUCH_FIELD; - } - return INVALID_JSON_POINTER; + // 3. When a previous search found a field or an iterator yielded a value: + // + // ``` + // // When a field was not fully consumed (or not even touched at all) + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 2) + // // When a field was fully consumed + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 1) + // // When the last field was fully consumed + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 1) + // ``` + // + } else { + if ((error = skip_child() )) { abandon(); return error; } + if ((error = has_next_field().get(has_value) )) { abandon(); return error; } +#if SIMDJSON_DEVELOPMENT_CHECKS + if (_json_iter->start_position(_depth) != start_position()) { return OUT_OF_ORDER_ITERATION; } +#endif } -} + while (has_value) { + // Get the key and colon, stopping at the value. + raw_json_string actual_key; + // size_t max_key_length = _json_iter->peek_length() - 2; // -2 for the two quotes + // Note: _json_iter->peek_length() - 2 might overflow if _json_iter->peek_length() < 2. + // field_key() advances the pointer and checks that '"' is found (corresponding to a key). + // The depth is left unchanged by field_key(). + if ((error = field_key().get(actual_key) )) { abandon(); return error; }; + // field_value() will advance and check that we find a ':' separating the + // key and the value. It will also increment the depth by one. + if ((error = field_value() )) { abandon(); return error; } + // If it matches, stop and return + // We could do it this way if we wanted to allow arbitrary + // key content (including escaped quotes). + //if (actual_key.unsafe_is_equal(max_key_length, key)) { + // Instead we do the following which may trigger buffer overruns if the + // user provides an adversarial key (containing a well placed unescaped quote + // character and being longer than the number of bytes remaining in the JSON + // input). + if (actual_key.unsafe_is_equal(key)) { + logger::log_event(*this, "match", key, -2); + // If we return here, then we return while pointing at the ':' that we just checked. + return true; + } -simdjson_inline simdjson_result value::at_path(std::string_view json_path) noexcept { - json_type t; - SIMDJSON_TRY(type().get(t)); - switch (t) { - case json_type::array: - return (*this).get_array().at_path(json_path); - case json_type::object: - return (*this).get_object().at_path(json_path); - default: - return INVALID_JSON_POINTER; + // No match: skip the value and see if , or } is next + logger::log_event(*this, "no match", key, -2); + // The call to skip_child is meant to skip over the value corresponding to the key. + // After skip_child(), we are right before the next comma (',') or the final brace ('}'). + SIMDJSON_TRY( skip_child() ); // Skip the value entirely + // The has_next_field() advances the pointer and check that either ',' or '}' is found. + // It returns true if ',' is found, false otherwise. If anything other than ',' or '}' is found, + // then we are in error and we abort. + if ((error = has_next_field().get(has_value) )) { abandon(); return error; } } -} - -} // namespace ondemand -} // namespace fallback -} // namespace simdjson - -namespace simdjson { -simdjson_inline simdjson_result::simdjson_result( - fallback::ondemand::value &&value -) noexcept : - implementation_simdjson_result_base( - std::forward(value) - ) -{ -} -simdjson_inline simdjson_result::simdjson_result( - error_code error -) noexcept : - implementation_simdjson_result_base(error) -{ -} -simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { - if (error()) { return error(); } - return first.count_elements(); -} -simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { - if (error()) { return error(); } - return first.count_fields(); -} -simdjson_inline simdjson_result simdjson_result::at(size_t index) noexcept { - if (error()) { return error(); } - return first.at(index); -} -simdjson_inline simdjson_result simdjson_result::begin() & noexcept { - if (error()) { return error(); } - return first.begin(); -} -simdjson_inline simdjson_result simdjson_result::end() & noexcept { - if (error()) { return error(); } - return {}; + // If the loop ended, we're out of fields to look at. + return false; } -simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) noexcept { - if (error()) { return error(); } - return first.find_field(key); -} -simdjson_inline simdjson_result simdjson_result::find_field(const char *key) noexcept { - if (error()) { return error(); } - return first.find_field(key); -} +SIMDJSON_PUSH_DISABLE_WARNINGS +SIMDJSON_DISABLE_STRICT_OVERFLOW_WARNING +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::find_field_unordered_raw(const std::string_view key) noexcept { + /** + * When find_field_unordered_raw is called, we can either be pointing at the + * first key, pointing outside (at the closing brace) or if a key was matched + * we can be either pointing right afterthe ':' right before the value (that we need skip), + * or we may have consumed the value and we might be at a comma or at the + * final brace (ready for a call to has_next_field()). + */ + error_code error; + bool has_value; -simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) noexcept { - if (error()) { return error(); } - return first.find_field_unordered(key); -} -simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) noexcept { - if (error()) { return error(); } - return first.find_field_unordered(key); -} - -simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) noexcept { - if (error()) { return error(); } - return first[key]; -} -simdjson_inline simdjson_result simdjson_result::operator[](const char *key) noexcept { - if (error()) { return error(); } - return first[key]; -} - -simdjson_inline simdjson_result simdjson_result::get_array() noexcept { - if (error()) { return error(); } - return first.get_array(); -} -simdjson_inline simdjson_result simdjson_result::get_object() noexcept { - if (error()) { return error(); } - return first.get_object(); -} -simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { - if (error()) { return error(); } - return first.get_uint64(); -} -simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { - if (error()) { return error(); } - return first.get_uint64_in_string(); -} -simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { - if (error()) { return error(); } - return first.get_int64(); -} -simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { - if (error()) { return error(); } - return first.get_int64_in_string(); -} -simdjson_inline simdjson_result simdjson_result::get_double() noexcept { - if (error()) { return error(); } - return first.get_double(); -} -simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { - if (error()) { return error(); } - return first.get_double_in_string(); -} -simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { - if (error()) { return error(); } - return first.get_string(allow_replacement); -} -template -simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { - if (error()) { return error(); } - return first.get_string(receiver, allow_replacement); -} -simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { - if (error()) { return error(); } - return first.get_wobbly_string(); -} -simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { - if (error()) { return error(); } - return first.get_raw_json_string(); -} -simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { - if (error()) { return error(); } - return first.get_bool(); -} -simdjson_inline simdjson_result simdjson_result::is_null() noexcept { - if (error()) { return error(); } - return first.is_null(); -} - -template simdjson_inline simdjson_result simdjson_result::get() noexcept { - if (error()) { return error(); } - return first.get(); -} -template simdjson_inline error_code simdjson_result::get(T &out) noexcept { - if (error()) { return error(); } - return first.get(out); -} - -template<> simdjson_inline simdjson_result simdjson_result::get() noexcept { - if (error()) { return error(); } - return std::move(first); -} -template<> simdjson_inline error_code simdjson_result::get(fallback::ondemand::value &out) noexcept { - if (error()) { return error(); } - out = first; - return SUCCESS; -} - -simdjson_inline simdjson_result simdjson_result::type() noexcept { - if (error()) { return error(); } - return first.type(); -} -simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { - if (error()) { return error(); } - return first.is_scalar(); -} -simdjson_inline simdjson_result simdjson_result::is_string() noexcept { - if (error()) { return error(); } - return first.is_string(); -} -simdjson_inline simdjson_result simdjson_result::is_negative() noexcept { - if (error()) { return error(); } - return first.is_negative(); -} -simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { - if (error()) { return error(); } - return first.is_integer(); -} -simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { - if (error()) { return error(); } - return first.get_number_type(); -} -simdjson_inline simdjson_result simdjson_result::get_number() noexcept { - if (error()) { return error(); } - return first.get_number(); -} -#if SIMDJSON_EXCEPTIONS -template -simdjson_inline simdjson_result::operator T() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return static_cast(first); -} -simdjson_inline simdjson_result::operator fallback::ondemand::array() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator fallback::ondemand::object() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator int64_t() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator double() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator fallback::ondemand::raw_json_string() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator bool() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -#endif - -simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { - if (error()) { return error(); } - return first.raw_json_token(); -} - -simdjson_inline simdjson_result simdjson_result::raw_json() noexcept { - if (error()) { return error(); } - return first.raw_json(); -} - -simdjson_inline simdjson_result simdjson_result::current_location() noexcept { - if (error()) { return error(); } - return first.current_location(); -} - -simdjson_inline simdjson_result simdjson_result::current_depth() const noexcept { - if (error()) { return error(); } - return first.current_depth(); -} - -simdjson_inline simdjson_result simdjson_result::at_pointer( - std::string_view json_pointer) noexcept { - if (error()) { - return error(); - } - return first.at_pointer(json_pointer); -} - -simdjson_inline simdjson_result simdjson_result::at_path( - std::string_view json_path) noexcept { - if (error()) { - return error(); - } - return first.at_path(json_path); -} - -} // namespace simdjson - -#endif // SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H -/* end file simdjson/generic/ondemand/value-inl.h for fallback */ -/* including simdjson/generic/ondemand/value_iterator-inl.h for fallback: #include "simdjson/generic/ondemand/value_iterator-inl.h" */ -/* begin file simdjson/generic/ondemand/value_iterator-inl.h for fallback */ -#ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H - -/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ -/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/atomparsing.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/numberparsing.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string-inl.h" */ -/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ - -namespace simdjson { -namespace fallback { -namespace ondemand { - -simdjson_inline value_iterator::value_iterator( - json_iterator *json_iter, - depth_t depth, - token_position start_position -) noexcept : _json_iter{json_iter}, _depth{depth}, _start_position{start_position} -{ -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::start_object() noexcept { - SIMDJSON_TRY( start_container('{', "Not an object", "object") ); - return started_object(); -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::start_root_object() noexcept { - SIMDJSON_TRY( start_container('{', "Not an object", "object") ); - return started_root_object(); -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::started_object() noexcept { - assert_at_container_start(); -#if SIMDJSON_DEVELOPMENT_CHECKS - _json_iter->set_start_position(_depth, start_position()); -#endif - if (*_json_iter->peek() == '}') { - logger::log_value(*_json_iter, "empty object"); - _json_iter->return_current_and_advance(); - end_container(); - return false; - } - return true; -} - -simdjson_warn_unused simdjson_inline error_code value_iterator::check_root_object() noexcept { - // When in streaming mode, we cannot expect peek_last() to be the last structural element of the - // current document. It only works in the normal mode where we have indexed a single document. - // Note that adding a check for 'streaming' is not expensive since we only have at most - // one root element. - if ( ! _json_iter->streaming() ) { - // The following lines do not fully protect against garbage content within the - // object: e.g., `{"a":2} foo }`. Users concerned with garbage content should - // call `at_end()` on the document instance at the end of the processing to - // ensure that the processing has finished at the end. - // - if (*_json_iter->peek_last() != '}') { - _json_iter->abandon(); - return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing } at end"); - } - // If the last character is } *and* the first gibberish character is also '}' - // then on-demand could accidentally go over. So we need additional checks. - // https://github.com/simdjson/simdjson/issues/1834 - // Checking that the document is balanced requires a full scan which is potentially - // expensive, but it only happens in edge cases where the first padding character is - // a closing bracket. - if ((*_json_iter->peek(_json_iter->end_position()) == '}') && (!_json_iter->balanced())) { - _json_iter->abandon(); - // The exact error would require more work. It will typically be an unclosed object. - return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "the document is unbalanced"); - } - } - return SUCCESS; -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::started_root_object() noexcept { - auto error = check_root_object(); - if(error) { return error; } - return started_object(); -} - -simdjson_warn_unused simdjson_inline error_code value_iterator::end_container() noexcept { -#if SIMDJSON_CHECK_EOF - if (depth() > 1 && at_end()) { return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing parent ] or }"); } - // if (depth() <= 1 && !at_end()) { return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing [ or { at start"); } -#endif // SIMDJSON_CHECK_EOF - _json_iter->ascend_to(depth()-1); - return SUCCESS; -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::has_next_field() noexcept { - assert_at_next(); - - // It's illegal to call this unless there are more tokens: anything that ends in } or ] is - // obligated to verify there are more tokens if they are not the top level. - switch (*_json_iter->return_current_and_advance()) { - case '}': - logger::log_end_value(*_json_iter, "object"); - SIMDJSON_TRY( end_container() ); - return false; - case ',': - return true; - default: - return report_error(TAPE_ERROR, "Missing comma between object fields"); - } -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::find_field_raw(const std::string_view key) noexcept { - error_code error; - bool has_value; - // - // Initially, the object can be in one of a few different places: - // - // 1. The start of the object, at the first field: - // - // ``` - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 2, index 1) - // ``` - if (at_first_field()) { - has_value = true; - - // - // 2. When a previous search did not yield a value or the object is empty: - // - // ``` - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 0) - // { } - // ^ (depth 0, index 2) - // ``` - // - } else if (!is_open()) { -#if SIMDJSON_DEVELOPMENT_CHECKS - // If we're past the end of the object, we're being iterated out of order. - // Note: this is not perfect detection. It's possible the user is inside some other object; if so, - // this object iterator will blithely scan that object for fields. - if (_json_iter->depth() < depth() - 1) { return OUT_OF_ORDER_ITERATION; } -#endif - return false; - - // 3. When a previous search found a field or an iterator yielded a value: - // - // ``` - // // When a field was not fully consumed (or not even touched at all) - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 2) - // // When a field was fully consumed - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 1) - // // When the last field was fully consumed - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 1) - // ``` - // - } else { - if ((error = skip_child() )) { abandon(); return error; } - if ((error = has_next_field().get(has_value) )) { abandon(); return error; } -#if SIMDJSON_DEVELOPMENT_CHECKS - if (_json_iter->start_position(_depth) != start_position()) { return OUT_OF_ORDER_ITERATION; } -#endif - } - while (has_value) { - // Get the key and colon, stopping at the value. - raw_json_string actual_key; - // size_t max_key_length = _json_iter->peek_length() - 2; // -2 for the two quotes - // Note: _json_iter->peek_length() - 2 might overflow if _json_iter->peek_length() < 2. - // field_key() advances the pointer and checks that '"' is found (corresponding to a key). - // The depth is left unchanged by field_key(). - if ((error = field_key().get(actual_key) )) { abandon(); return error; }; - // field_value() will advance and check that we find a ':' separating the - // key and the value. It will also increment the depth by one. - if ((error = field_value() )) { abandon(); return error; } - // If it matches, stop and return - // We could do it this way if we wanted to allow arbitrary - // key content (including escaped quotes). - //if (actual_key.unsafe_is_equal(max_key_length, key)) { - // Instead we do the following which may trigger buffer overruns if the - // user provides an adversarial key (containing a well placed unescaped quote - // character and being longer than the number of bytes remaining in the JSON - // input). - if (actual_key.unsafe_is_equal(key)) { - logger::log_event(*this, "match", key, -2); - // If we return here, then we return while pointing at the ':' that we just checked. - return true; - } - - // No match: skip the value and see if , or } is next - logger::log_event(*this, "no match", key, -2); - // The call to skip_child is meant to skip over the value corresponding to the key. - // After skip_child(), we are right before the next comma (',') or the final brace ('}'). - SIMDJSON_TRY( skip_child() ); // Skip the value entirely - // The has_next_field() advances the pointer and check that either ',' or '}' is found. - // It returns true if ',' is found, false otherwise. If anything other than ',' or '}' is found, - // then we are in error and we abort. - if ((error = has_next_field().get(has_value) )) { abandon(); return error; } - } - - // If the loop ended, we're out of fields to look at. - return false; -} - -SIMDJSON_PUSH_DISABLE_WARNINGS -SIMDJSON_DISABLE_STRICT_OVERFLOW_WARNING -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::find_field_unordered_raw(const std::string_view key) noexcept { - /** - * When find_field_unordered_raw is called, we can either be pointing at the - * first key, pointing outside (at the closing brace) or if a key was matched - * we can be either pointing right afterthe ':' right before the value (that we need skip), - * or we may have consumed the value and we might be at a comma or at the - * final brace (ready for a call to has_next_field()). - */ - error_code error; - bool has_value; - - // First, we scan from that point to the end. - // If we don't find a match, we may loop back around, and scan from the beginning to that point. - token_position search_start = _json_iter->position(); + // First, we scan from that point to the end. + // If we don't find a match, we may loop back around, and scan from the beginning to that point. + token_position search_start = _json_iter->position(); // We want to know whether we need to go back to the beginning. bool at_first = at_first_field(); @@ -51826,6 +53266,8 @@ simdjson_inline simdjson_result value_iterator::is_root_null(bool check_tr if(result) { // we have something that looks like a null. if (check_trailing && !_json_iter->is_single_token()) { return TRAILING_CONTENT; } advance_root_scalar("null"); + } else if (json[0] == 'n') { + return incorrect_type_error("Not a null but starts with n"); } return result; } @@ -52117,6 +53559,8 @@ simdjson_inline simdjson_result::simdjson_re #endif // SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H /* end file simdjson/generic/ondemand/value_iterator-inl.h for fallback */ + + /* end file simdjson/generic/ondemand/amalgamated.h for fallback */ /* including simdjson/fallback/end.h: #include "simdjson/fallback/end.h" */ /* begin file simdjson/fallback/end.h */ @@ -52228,8 +53672,14 @@ static_assert(sizeof(__m256i) <= simdjson::SIMDJSON_PADDING, "insufficient paddi /* end file simdjson/haswell/intrinsics.h */ #if !SIMDJSON_CAN_ALWAYS_RUN_HASWELL +// We enable bmi2 only if LLVM/clang is used, because GCC may not +// make good use of it. See https://github.com/simdjson/simdjson/pull/2243 +#if defined(__clang__) +SIMDJSON_TARGET_REGION("avx2,bmi,bmi2,pclmul,lzcnt,popcnt") +#else SIMDJSON_TARGET_REGION("avx2,bmi,pclmul,lzcnt,popcnt") #endif +#endif /* including simdjson/haswell/bitmanipulation.h: #include "simdjson/haswell/bitmanipulation.h" */ /* begin file simdjson/haswell/bitmanipulation.h */ @@ -52886,6 +54336,132 @@ class value_iterator; #endif // SIMDJSON_GENERIC_ONDEMAND_BASE_H /* end file simdjson/generic/ondemand/base.h for haswell */ +/* including simdjson/generic/ondemand/deserialize.h for haswell: #include "simdjson/generic/ondemand/deserialize.h" */ +/* begin file simdjson/generic/ondemand/deserialize.h for haswell */ +#if SIMDJSON_SUPPORTS_DESERIALIZATION + +#ifndef SIMDJSON_ONDEMAND_DESERIALIZE_H +/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ +/* amalgamation skipped (editor-only): #define SIMDJSON_ONDEMAND_DESERIALIZE_H */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array.h" */ +/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ + +#include +namespace simdjson { + +namespace tag_invoke_fn_ns { +void tag_invoke(); + +struct tag_invoke_fn { + template + requires requires(Tag tag, Args &&...args) { + tag_invoke(std::forward(tag), std::forward(args)...); + } + constexpr auto operator()(Tag tag, Args &&...args) const + noexcept(noexcept(tag_invoke(std::forward(tag), + std::forward(args)...))) + -> decltype(tag_invoke(std::forward(tag), + std::forward(args)...)) { + return tag_invoke(std::forward(tag), std::forward(args)...); + } +}; +} // namespace tag_invoke_fn_ns + +inline namespace tag_invoke_ns { +inline constexpr tag_invoke_fn_ns::tag_invoke_fn tag_invoke = {}; +} // namespace tag_invoke_ns + +template +concept tag_invocable = requires(Tag tag, Args... args) { + tag_invoke(std::forward(tag), std::forward(args)...); +}; + +template +concept nothrow_tag_invocable = + tag_invocable && requires(Tag tag, Args... args) { + { + tag_invoke(std::forward(tag), std::forward(args)...) + } noexcept; + }; + +template +using tag_invoke_result = + std::invoke_result; + +template +using tag_invoke_result_t = + std::invoke_result_t; + +template using tag_t = std::decay_t; + + +struct deserialize_tag; + +/// These types are deserializable in a built-in way +template struct is_builtin_deserializable : std::false_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; + +template +concept is_builtin_deserializable_v = is_builtin_deserializable::value; + +template +concept custom_deserializable = tag_invocable; + +template +concept deserializable = custom_deserializable || is_builtin_deserializable_v; + +template +concept nothrow_custom_deserializable = nothrow_tag_invocable; + +// built-in types are noexcept and if an error happens, the value simply gets ignored and the error is returned. +template +concept nothrow_deserializable = nothrow_custom_deserializable || is_builtin_deserializable_v; + +/// Deserialize Tag +inline constexpr struct deserialize_tag { + using value_type = haswell::ondemand::value; + using document_type = haswell::ondemand::document; + using document_reference_type = haswell::ondemand::document_reference; + + // Customization Point for value + template + requires custom_deserializable + [[nodiscard]] constexpr /* error_code */ auto operator()(value_type &object, T& output) const noexcept(nothrow_custom_deserializable) { + return tag_invoke(*this, object, output); + } + + // Customization Point for document + template + requires custom_deserializable + [[nodiscard]] constexpr /* error_code */ auto operator()(document_type &object, T& output) const noexcept(nothrow_custom_deserializable) { + return tag_invoke(*this, object, output); + } + + // Customization Point for document reference + template + requires custom_deserializable + [[nodiscard]] constexpr /* error_code */ auto operator()(document_reference_type &object, T& output) const noexcept(nothrow_custom_deserializable) { + return tag_invoke(*this, object, output); + } + + +} deserialize{}; + +} // namespace simdjson + +#endif // SIMDJSON_ONDEMAND_DESERIALIZE_H +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION + +/* end file simdjson/generic/ondemand/deserialize.h for haswell */ /* including simdjson/generic/ondemand/value_iterator.h for haswell: #include "simdjson/generic/ondemand/value_iterator.h" */ /* begin file simdjson/generic/ondemand/value_iterator.h for haswell */ #ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_H @@ -53390,12 +54966,15 @@ struct simdjson_result : public haswell::impl /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/implementation_simdjson_result_base.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/deserialize.h" */ /* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ +#include + namespace simdjson { + namespace haswell { namespace ondemand { - /** * An ephemeral JSON value returned during iteration. It is only valid for as long as you do * not access more data in the JSON document. @@ -53420,16 +54999,21 @@ class value { * @returns A value of the given type, parsed from the JSON. * @returns INCORRECT_TYPE If the JSON value is not the given type. */ - template simdjson_inline simdjson_result get() noexcept { - // Unless the simdjson library or the user provides an inline implementation, calling this method should - // immediately fail. - static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " - "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " - "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " - " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." - " You may also add support for custom types, see our documentation."); + template + simdjson_inline simdjson_result get() +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(std::is_default_constructible::value, "The specified type is not default constructible."); + T out{}; + SIMDJSON_TRY(get(out)); + return out; } + /** * Get this value as the given type. * @@ -53439,7 +55023,32 @@ class value { * @returns INCORRECT_TYPE If the JSON value is not an object. * @returns SUCCESS If the parse succeeded and the out parameter was set to the value. */ - template simdjson_inline error_code get(T &out) noexcept; + template + simdjson_inline error_code get(T &out) +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { +#if SIMDJSON_SUPPORTS_DESERIALIZATION + if constexpr (custom_deserializable) { + return deserialize(*this, out); + } else { +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION + // Unless the simdjson library or the user provides an inline implementation, calling this method should + // immediately fail. + static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " + "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " + "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " + " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." + " You may also add support for custom types, see our documentation."); + static_cast(out); // to get rid of unused errors + return UNINITIALIZED; +#if SIMDJSON_SUPPORTS_DESERIALIZATION + } +#endif + } /** * Cast this JSON value to an array. @@ -53515,6 +55124,17 @@ class value { * Important: a value should be consumed once. Calling get_string() twice on the same value * is an error. * + * In some instances, you may want to allow replacement of invalid Unicode sequences. + * You may do so by passing the allow_replacement parameter as true. In the following + * example, the string "431924697b\udff0L\u0001Y" is not valid Unicode. By passing true + * to get_string, we allow the replacement of the invalid Unicode sequences with the Unicode + * replacement character (U+FFFD). + * + * simdjson::ondemand::parser parser; + * auto json = R"({"deviceId":"431924697b\udff0L\u0001Y"})"_padded; + * simdjson::ondemand::document doc = parser.iterate(json); + * auto view = doc["deviceId"].get_string(true); + * * @returns An UTF-8 string. The string is stored in the parser and will be invalidated the next * time it parses a document or when it is destroyed. * @returns INCORRECT_TYPE if the JSON value is not a string. @@ -53766,6 +55386,7 @@ class value { simdjson_inline simdjson_result operator[](std::string_view key) noexcept; /** @overload simdjson_inline simdjson_result find_field_unordered(std::string_view key) noexcept; */ simdjson_inline simdjson_result operator[](const char *key) noexcept; + simdjson_result operator[](int) noexcept = delete; /** * Get the type of this JSON value. It does not validate or consume the value. @@ -54133,6 +55754,7 @@ struct simdjson_result : public haswell::implementatio simdjson_inline simdjson_result operator[](std::string_view key) noexcept; /** @overload simdjson_inline simdjson_result find_field_unordered(std::string_view key) noexcept; */ simdjson_inline simdjson_result operator[](const char *key) noexcept; + simdjson_result operator[](int) noexcept = delete; /** * Get the type of this JSON value. @@ -55188,6 +56810,22 @@ class parser { * using a sanitizer that verifies that no uninitialized byte is read, then you should initialize the * SIMDJSON_PADDING bytes to avoid runtime warnings. * + * ### std::string references + * + * If you pass a mutable std::string reference (std::string&), the parser will seek to extend + * its capacity to SIMDJSON_PADDING bytes beyond the end of the string. + * + * Whenever you pass an std::string reference, the parser will access the bytes beyond the end of + * the string but before the end of the allocated memory (std::string::capacity()). + * If you are using a sanitizer that checks for reading uninitialized bytes or std::string's + * container-overflow checks, you may encounter sanitizer warnings. + * You can safely ignore these warnings. Or you can call simdjson::pad(std::string&) to pad the + * string with SIMDJSON_PADDING spaces: this function returns a simdjson::padding_string_view + * which can be be passed to the parser's iterate function: + * + * std::string json = R"({ "foo": 1 } { "foo": 2 } { "foo": 3 } )"; + * document doc = parser.iterate(simdjson::pad(json)); + * * @param json The JSON to parse. * @param len The length of the JSON. * @param capacity The number of bytes allocated in the JSON (must be at least len+SIMDJSON_PADDING). @@ -55382,8 +57020,12 @@ class parser { * behavior of the parser for future operations. */ bool threaded{true}; + #else + /** + * When SIMDJSON_THREADS_ENABLED is not defined, the parser instance cannot use threads. + */ + bool threaded{false}; #endif - /** * Unescape this JSON string, replacing \\ with \, \n with newline, etc. to a user-provided buffer. * The result must be valid UTF-8. @@ -55525,7 +57167,8 @@ class array { * calling this function, if successful, the array is 'rewinded' at its * beginning as if it had never been accessed. If the JSON is malformed (e.g., * there is a missing comma), then an error is returned and it is no longer - * safe to continue. + * safe to continue. Note that count_elements() does not validate the JSON values, + * only the structure of the array. * * To check that an array is empty, it is more performant to use * the is_empty() method. @@ -55803,8 +57446,11 @@ struct simdjson_result : public haswell::impl /* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_H */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/deserialize.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ /* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ + namespace simdjson { namespace haswell { namespace ondemand { @@ -55977,24 +57623,39 @@ class document { * @returns A value of the given type, parsed from the JSON. * @returns INCORRECT_TYPE If the JSON value is not the given type. */ - template simdjson_inline simdjson_result get() & noexcept { - // Unless the simdjson library or the user provides an inline implementation, calling this method should - // immediately fail. - static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " - "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " - "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " - " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." - " You may also add support for custom types, see our documentation."); - } - /** @overload template simdjson_result get() & noexcept */ - template simdjson_deprecated simdjson_inline simdjson_result get() && noexcept { - // Unless the simdjson library or the user provides an inline implementation, calling this method should - // immediately fail. - static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " - "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " - "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " - " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." - " You may also add support for custom types, see our documentation."); + template + simdjson_inline simdjson_result get() & +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(std::is_default_constructible::value, "Cannot initialize the specified type."); + T out{}; + SIMDJSON_TRY(get(out)); + return out; + } + /** + * @overload template simdjson_result get() & noexcept + * + * We disallow the use tag_invoke CPO on a moved document; it may create UB + * if user uses `ondemand::array` or `ondemand::object` in their custom type. + * + * The member function is still remains specialize-able for compatibility + * reasons, but we completely disallow its use when a tag_invoke customization + * is provided. + */ + template + simdjson_inline simdjson_result get() && +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(!std::is_same::value && !std::is_same::value, "You should never hold either an ondemand::array or ondemand::object without a corresponding ondemand::document being alive; that would be Undefined Behaviour."); + return static_cast(*this).get(); } /** @@ -56008,7 +57669,32 @@ class document { * @returns INCORRECT_TYPE If the JSON value is not an object. * @returns SUCCESS If the parse succeeded and the out parameter was set to the value. */ - template simdjson_inline error_code get(T &out) & noexcept; + template + simdjson_inline error_code get(T &out) & +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { +#if SIMDJSON_SUPPORTS_DESERIALIZATION + if constexpr (custom_deserializable) { + return deserialize(*this, out); + } else { +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION + // Unless the simdjson library or the user provides an inline implementation, calling this method should + // immediately fail. + static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " + "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " + "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " + " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." + " You may also add support for custom types, see our documentation."); + static_cast(out); // to get rid of unused errors + return UNINITIALIZED; +#if SIMDJSON_SUPPORTS_DESERIALIZATION + } +#endif + } /** @overload template error_code get(T &out) & noexcept */ template simdjson_deprecated simdjson_inline error_code get(T &out) && noexcept; @@ -56110,7 +57796,8 @@ class document { * calling this function, if successful, the array is 'rewinded' at its * beginning as if it had never been accessed. If the JSON is malformed (e.g., * there is a missing comma), then an error is returned and it is no longer - * safe to continue. + * safe to continue. Note that count_elements() does not validate the JSON values, + * only the structure of the array. */ simdjson_inline simdjson_result count_elements() & noexcept; /** @@ -56222,6 +57909,7 @@ class document { simdjson_inline simdjson_result operator[](std::string_view key) & noexcept; /** @overload simdjson_inline simdjson_result find_field_unordered(std::string_view key) & noexcept; */ simdjson_inline simdjson_result operator[](const char *key) & noexcept; + simdjson_result operator[](int) & noexcept = delete; /** * Get the type of this JSON value. It does not validate or consume the value. @@ -56490,6 +58178,11 @@ class document { /** * A document_reference is a thin wrapper around a document reference instance. + * The document_reference instances are used primarily/solely for streams of JSON + * documents. They differ from document instances when parsing a scalar value + * (a document that is not an array or an object). In the case of a document, + * we expect the document to be fully consumed. In the case of a document_reference, + * we allow trailing content. */ class document_reference { public: @@ -56515,7 +58208,70 @@ class document_reference { simdjson_inline simdjson_result get_value() noexcept; simdjson_inline simdjson_result is_null() noexcept; - template simdjson_inline simdjson_result get() & noexcept; + template + simdjson_inline simdjson_result get() & +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(std::is_default_constructible::value, "Cannot initialize the specified type."); + T out{}; + SIMDJSON_TRY(get(out)); + return out; + } + template + simdjson_inline simdjson_result get() && +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(!std::is_same::value && !std::is_same::value, "You should never hold either an ondemand::array or ondemand::object without a corresponding ondemand::document_reference being alive; that would be Undefined Behaviour."); + return static_cast(*this).get(); + } + + /** + * Get this value as the given type. + * + * Supported types: object, array, raw_json_string, string_view, uint64_t, int64_t, double, bool, value + * + * Be mindful that the document instance must remain in scope while you are accessing object, array and value instances. + * + * @param out This is set to a value of the given type, parsed from the JSON. If there is an error, this may not be initialized. + * @returns INCORRECT_TYPE If the JSON value is not an object. + * @returns SUCCESS If the parse succeeded and the out parameter was set to the value. + */ + template + simdjson_inline error_code get(T &out) & +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { +#if SIMDJSON_SUPPORTS_DESERIALIZATION + if constexpr (custom_deserializable) { + return deserialize(*this, out); + } else { +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION + // Unless the simdjson library or the user provides an inline implementation, calling this method should + // immediately fail. + static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " + "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " + "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " + " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." + " You may also add support for custom types, see our documentation."); + static_cast(out); // to get rid of unused errors + return UNINITIALIZED; +#if SIMDJSON_SUPPORTS_DESERIALIZATION + } +#endif + } + /** @overload template error_code get(T &out) & noexcept */ + template simdjson_inline error_code get(T &out) && noexcept; simdjson_inline simdjson_result raw_json() noexcept; simdjson_inline operator document&() const noexcept; #if SIMDJSON_EXCEPTIONS @@ -56540,6 +58296,7 @@ class document_reference { simdjson_inline simdjson_result find_field(const char *key) & noexcept; simdjson_inline simdjson_result operator[](std::string_view key) & noexcept; simdjson_inline simdjson_result operator[](const char *key) & noexcept; + simdjson_result operator[](int) & noexcept = delete; simdjson_inline simdjson_result find_field_unordered(std::string_view key) & noexcept; simdjson_inline simdjson_result find_field_unordered(const char *key) & noexcept; @@ -56618,6 +58375,7 @@ struct simdjson_result : public haswell::implementa simdjson_inline simdjson_result find_field(const char *key) & noexcept; simdjson_inline simdjson_result operator[](std::string_view key) & noexcept; simdjson_inline simdjson_result operator[](const char *key) & noexcept; + simdjson_result operator[](int) & noexcept = delete; simdjson_inline simdjson_result find_field_unordered(std::string_view key) & noexcept; simdjson_inline simdjson_result find_field_unordered(const char *key) & noexcept; simdjson_inline simdjson_result type() noexcept; @@ -56667,8 +58425,14 @@ struct simdjson_result : public haswell:: simdjson_inline simdjson_result get_bool() noexcept; simdjson_inline simdjson_result get_value() noexcept; simdjson_inline simdjson_result is_null() noexcept; + + template simdjson_inline simdjson_result get() & noexcept; + template simdjson_inline simdjson_result get() && noexcept; + + template simdjson_inline error_code get(T &out) & noexcept; + template simdjson_inline error_code get(T &out) && noexcept; #if SIMDJSON_EXCEPTIONS - template ::value == false>::type> + template explicit simdjson_inline operator T() noexcept(false); simdjson_inline operator haswell::ondemand::array() & noexcept(false); simdjson_inline operator haswell::ondemand::object() & noexcept(false); @@ -56689,6 +58453,7 @@ struct simdjson_result : public haswell:: simdjson_inline simdjson_result find_field(const char *key) & noexcept; simdjson_inline simdjson_result operator[](std::string_view key) & noexcept; simdjson_inline simdjson_result operator[](const char *key) & noexcept; + simdjson_result operator[](int) & noexcept = delete; simdjson_inline simdjson_result find_field_unordered(std::string_view key) & noexcept; simdjson_inline simdjson_result find_field_unordered(const char *key) & noexcept; simdjson_inline simdjson_result type() noexcept; @@ -57619,6 +59384,177 @@ inline std::ostream& operator<<(std::ostream& out, simdjson::simdjson_result +#include + +namespace simdjson { +template +constexpr bool require_custom_serialization = false; + +////////////////////////////// +// Number deserialization +////////////////////////////// + +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, auto &val, T &out) noexcept { + using limits = std::numeric_limits; + + uint64_t x; + SIMDJSON_TRY(val.get_uint64().get(x)); + if (x > (limits::max)()) { + return NUMBER_OUT_OF_RANGE; + } + out = static_cast(x); + return SUCCESS; +} + +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, auto &val, T &out) noexcept { + double x; + SIMDJSON_TRY(val.get_double().get(x)); + out = static_cast(x); + return SUCCESS; +} + +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, auto &val, T &out) noexcept { + using limits = std::numeric_limits; + + int64_t x; + SIMDJSON_TRY(val.get_int64().get(x)); + if (x > (limits::max)() || x < (limits::min)()) { + return NUMBER_OUT_OF_RANGE; + } + out = static_cast(x); + return SUCCESS; +} + +/** + * STL containers have several constructors including one that takes a single + * size argument. Thus, some compilers (Visual Studio) will not be able to + * disambiguate between the size and container constructor. Users should + * explicitly specify the type of the container as needed: e.g., + * doc.get>(). + */ +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, ValT &val, T &out) noexcept(false) { + using value_type = typename std::remove_cvref_t::value_type; + static_assert( + deserializable, + "The specified type inside the container must itself be deserializable"); + static_assert( + std::is_default_constructible_v, + "The specified type inside the container must default constructible."); + + haswell::ondemand::array arr; + SIMDJSON_TRY(val.get_array().get(arr)); + for (auto v : arr) { + if constexpr (concepts::returns_reference) { + if (auto const err = v.get().get(concepts::emplace_one(out)); + err) { + // If an error occurs, the empty element that we just inserted gets + // removed. We're not using a temp variable because if T is a heavy + // type, we want the valid path to be the fast path and the slow path be + // the path that has errors in it. + if constexpr (requires { out.pop_back(); }) { + static_cast(out.pop_back()); + } + return err; + } + } else { + value_type temp; + if (auto const err = v.get().get(temp); err) { + return err; + } + concepts::emplace_one(out, std::move(temp)); + } + } + return SUCCESS; +} + + + +/** + * This CPO (Customization Point Object) will help deserialize into + * smart pointers. + * + * If constructing T is nothrow, this conversion should be nothrow as well since + * we return MEMALLOC if we're not able to allocate memory instead of throwing + * the error message. + * + * @tparam T The type inside the smart pointer + * @tparam ValT document/value type + * @param val document/value + * @param out a reference to the smart pointer + * @return status of the conversion + */ +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, ValT &val, T &out) noexcept(nothrow_deserializable::element_type, ValT>) { + using element_type = typename std::remove_cvref_t::element_type; + + // For better error messages, don't use these as constraints on + // the tag_invoke CPO. + static_assert( + deserializable, + "The specified type inside the unique_ptr must itself be deserializable"); + static_assert( + std::is_default_constructible_v, + "The specified type inside the unique_ptr must default constructible."); + + auto ptr = new (std::nothrow) element_type(); + if (ptr == nullptr) { + return MEMALLOC; + } + SIMDJSON_TRY(val.template get(*ptr)); + out.reset(ptr); + return SUCCESS; +} + +/** + * This CPO (Customization Point Object) will help deserialize into optional types. + */ +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, ValT &val, T &out) noexcept(nothrow_deserializable::value_type, ValT>) { + using value_type = typename std::remove_cvref_t::value_type; + + static_assert( + deserializable, + "The specified type inside the unique_ptr must itself be deserializable"); + static_assert( + std::is_default_constructible_v, + "The specified type inside the unique_ptr must default constructible."); + + if (!out) { + out.emplace(); + } + SIMDJSON_TRY(val.template get(out.value())); + return SUCCESS; +} + +} // namespace simdjson + +#endif // SIMDJSON_ONDEMAND_DESERIALIZE_H +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION +/* end file simdjson/generic/ondemand/std_deserialize.h for haswell */ + // Inline definitions /* including simdjson/generic/ondemand/array-inl.h for haswell: #include "simdjson/generic/ondemand/array-inl.h" */ /* begin file simdjson/generic/ondemand/array-inl.h for haswell */ @@ -57626,6 +59562,7 @@ inline std::ostream& operator<<(std::ostream& out, simdjson::simdjson_result array::at_pointer(std::string_view json_pointer) n return child; } -inline std::string json_path_to_pointer_conversion(std::string_view json_path) { - if (json_path.empty() || (json_path.front() != '.' && - json_path.front() != '[')) { - return "-1"; // This is just a sentinel value, the caller should check for this and return an error. - } - - std::string result; - // Reserve space to reduce allocations, adjusting for potential increases due - // to escaping. - result.reserve(json_path.size() * 2); - - size_t i = 0; - - while (i < json_path.length()) { - if (json_path[i] == '.') { - result += '/'; - } else if (json_path[i] == '[') { - result += '/'; - ++i; // Move past the '[' - while (i < json_path.length() && json_path[i] != ']') { - if (json_path[i] == '~') { - result += "~0"; - } else if (json_path[i] == '/') { - result += "~1"; - } else { - result += json_path[i]; - } - ++i; - } - if (i == json_path.length() || json_path[i] != ']') { - return "-1"; // Using sentinel value that will be handled as an error by the caller. - } - } else { - if (json_path[i] == '~') { - result += "~0"; - } else if (json_path[i] == '/') { - result += "~1"; - } else { - result += json_path[i]; - } - } - ++i; - } - - return result; -} - inline simdjson_result array::at_path(std::string_view json_path) noexcept { auto json_pointer = json_path_to_pointer_conversion(json_path); if (json_pointer == "-1") { return INVALID_JSON_POINTER; } @@ -57987,313 +59877,276 @@ simdjson_inline simdjson_result &simdjson_res #endif // SIMDJSON_GENERIC_ONDEMAND_ARRAY_ITERATOR_INL_H /* end file simdjson/generic/ondemand/array_iterator-inl.h for haswell */ -/* including simdjson/generic/ondemand/document-inl.h for haswell: #include "simdjson/generic/ondemand/document-inl.h" */ -/* begin file simdjson/generic/ondemand/document-inl.h for haswell */ -#ifndef SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H +/* including simdjson/generic/ondemand/value-inl.h for haswell: #include "simdjson/generic/ondemand/value-inl.h" */ +/* begin file simdjson/generic/ondemand/value-inl.h for haswell */ +#ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H /* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ -/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H */ +/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array_iterator.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator-inl.h" */ /* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ namespace simdjson { namespace haswell { namespace ondemand { -simdjson_inline document::document(ondemand::json_iterator &&_iter) noexcept - : iter{std::forward(_iter)} +simdjson_inline value::value(const value_iterator &_iter) noexcept + : iter{_iter} { - logger::log_start_value(iter, "document"); } - -simdjson_inline document document::start(json_iterator &&iter) noexcept { - return document(std::forward(iter)); +simdjson_inline value value::start(const value_iterator &iter) noexcept { + return iter; } - -inline void document::rewind() noexcept { - iter.rewind(); +simdjson_inline value value::resume(const value_iterator &iter) noexcept { + return iter; } -inline std::string document::to_debug_string() noexcept { - return iter.to_string(); +simdjson_inline simdjson_result value::get_array() noexcept { + return array::start(iter); } - -inline simdjson_result document::current_location() const noexcept { - return iter.current_location(); +simdjson_inline simdjson_result value::get_object() noexcept { + return object::start(iter); } - -inline int32_t document::current_depth() const noexcept { - return iter.depth(); +simdjson_inline simdjson_result value::start_or_resume_object() noexcept { + if (iter.at_start()) { + return get_object(); + } else { + return object::resume(iter); + } } -inline bool document::at_end() const noexcept { - return iter.at_end(); +simdjson_inline simdjson_result value::get_raw_json_string() noexcept { + return iter.get_raw_json_string(); } - - -inline bool document::is_alive() noexcept { - return iter.is_alive(); +simdjson_inline simdjson_result value::get_string(bool allow_replacement) noexcept { + return iter.get_string(allow_replacement); } -simdjson_inline value_iterator document::resume_value_iterator() noexcept { - return value_iterator(&iter, 1, iter.root_position()); +template +simdjson_inline error_code value::get_string(string_type& receiver, bool allow_replacement) noexcept { + return iter.get_string(receiver, allow_replacement); } -simdjson_inline value_iterator document::get_root_value_iterator() noexcept { - return resume_value_iterator(); +simdjson_inline simdjson_result value::get_wobbly_string() noexcept { + return iter.get_wobbly_string(); } -simdjson_inline simdjson_result document::start_or_resume_object() noexcept { - if (iter.at_root()) { - return get_object(); - } else { - return object::resume(resume_value_iterator()); - } +simdjson_inline simdjson_result value::get_double() noexcept { + return iter.get_double(); } -simdjson_inline simdjson_result document::get_value() noexcept { - // Make sure we start any arrays or objects before returning, so that start_root_() - // gets called. - - // It is the convention throughout the code that the macro `SIMDJSON_DEVELOPMENT_CHECKS` determines whether - // we check for OUT_OF_ORDER_ITERATION. Proper on::demand code should never trigger this error. -#if SIMDJSON_DEVELOPMENT_CHECKS - if (!iter.at_root()) { return OUT_OF_ORDER_ITERATION; } -#endif - // assert_at_root() serves two purposes: in Debug mode, whether or not - // SIMDJSON_DEVELOPMENT_CHECKS is set or not, it checks that we are at the root of - // the document (this will typically be redundant). In release mode, it generates - // SIMDJSON_ASSUME statements to allow the compiler to make assumptions. - iter.assert_at_root(); - switch (*iter.peek()) { - case '[': { - // The following lines check that the document ends with ]. - auto value_iterator = get_root_value_iterator(); - auto error = value_iterator.check_root_array(); - if(error) { return error; } - return value(get_root_value_iterator()); - } - case '{': { - // The following lines would check that the document ends with }. - auto value_iterator = get_root_value_iterator(); - auto error = value_iterator.check_root_object(); - if(error) { return error; } - return value(get_root_value_iterator()); - } - default: - // Unfortunately, scalar documents are a special case in simdjson and they cannot - // be safely converted to value instances. - return SCALAR_DOCUMENT_AS_VALUE; - } +simdjson_inline simdjson_result value::get_double_in_string() noexcept { + return iter.get_double_in_string(); } -simdjson_inline simdjson_result document::get_array() & noexcept { - auto value = get_root_value_iterator(); - return array::start_root(value); +simdjson_inline simdjson_result value::get_uint64() noexcept { + return iter.get_uint64(); } -simdjson_inline simdjson_result document::get_object() & noexcept { - auto value = get_root_value_iterator(); - return object::start_root(value); +simdjson_inline simdjson_result value::get_uint64_in_string() noexcept { + return iter.get_uint64_in_string(); } - -/** - * We decided that calling 'get_double()' on the JSON document '1.233 blabla' should - * give an error, so we check for trailing content. We want to disallow trailing - * content. - * Thus, in several implementations below, we pass a 'true' parameter value to - * a get_root_value_iterator() method: this indicates that we disallow trailing content. - */ - -simdjson_inline simdjson_result document::get_uint64() noexcept { - return get_root_value_iterator().get_root_uint64(true); +simdjson_inline simdjson_result value::get_int64() noexcept { + return iter.get_int64(); } -simdjson_inline simdjson_result document::get_uint64_in_string() noexcept { - return get_root_value_iterator().get_root_uint64_in_string(true); +simdjson_inline simdjson_result value::get_int64_in_string() noexcept { + return iter.get_int64_in_string(); } -simdjson_inline simdjson_result document::get_int64() noexcept { - return get_root_value_iterator().get_root_int64(true); +simdjson_inline simdjson_result value::get_bool() noexcept { + return iter.get_bool(); } -simdjson_inline simdjson_result document::get_int64_in_string() noexcept { - return get_root_value_iterator().get_root_int64_in_string(true); +simdjson_inline simdjson_result value::is_null() noexcept { + return iter.is_null(); } -simdjson_inline simdjson_result document::get_double() noexcept { - return get_root_value_iterator().get_root_double(true); + +template<> simdjson_inline simdjson_result value::get() noexcept { return get_array(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_object(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_raw_json_string(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_string(false); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_number(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_double(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_uint64(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_int64(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_bool(); } + + +template<> simdjson_inline error_code value::get(array& out) noexcept { return get_array().get(out); } +template<> simdjson_inline error_code value::get(object& out) noexcept { return get_object().get(out); } +template<> simdjson_inline error_code value::get(raw_json_string& out) noexcept { return get_raw_json_string().get(out); } +template<> simdjson_inline error_code value::get(std::string_view& out) noexcept { return get_string(false).get(out); } +template<> simdjson_inline error_code value::get(number& out) noexcept { return get_number().get(out); } +template<> simdjson_inline error_code value::get(double& out) noexcept { return get_double().get(out); } +template<> simdjson_inline error_code value::get(uint64_t& out) noexcept { return get_uint64().get(out); } +template<> simdjson_inline error_code value::get(int64_t& out) noexcept { return get_int64().get(out); } +template<> simdjson_inline error_code value::get(bool& out) noexcept { return get_bool().get(out); } + +#if SIMDJSON_EXCEPTIONS +template +simdjson_inline value::operator T() noexcept(false) { + return get(); } -simdjson_inline simdjson_result document::get_double_in_string() noexcept { - return get_root_value_iterator().get_root_double_in_string(true); +simdjson_inline value::operator array() noexcept(false) { + return get_array(); } -simdjson_inline simdjson_result document::get_string(bool allow_replacement) noexcept { - return get_root_value_iterator().get_root_string(true, allow_replacement); +simdjson_inline value::operator object() noexcept(false) { + return get_object(); } -template -simdjson_inline error_code document::get_string(string_type& receiver, bool allow_replacement) noexcept { - return get_root_value_iterator().get_root_string(receiver, true, allow_replacement); +simdjson_inline value::operator uint64_t() noexcept(false) { + return get_uint64(); } -simdjson_inline simdjson_result document::get_wobbly_string() noexcept { - return get_root_value_iterator().get_root_wobbly_string(true); +simdjson_inline value::operator int64_t() noexcept(false) { + return get_int64(); } -simdjson_inline simdjson_result document::get_raw_json_string() noexcept { - return get_root_value_iterator().get_root_raw_json_string(true); +simdjson_inline value::operator double() noexcept(false) { + return get_double(); } -simdjson_inline simdjson_result document::get_bool() noexcept { - return get_root_value_iterator().get_root_bool(true); +simdjson_inline value::operator std::string_view() noexcept(false) { + return get_string(false); } -simdjson_inline simdjson_result document::is_null() noexcept { - return get_root_value_iterator().is_root_null(true); +simdjson_inline value::operator raw_json_string() noexcept(false) { + return get_raw_json_string(); } +simdjson_inline value::operator bool() noexcept(false) { + return get_bool(); +} +#endif -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_array(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_object(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_raw_json_string(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_string(false); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_double(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_uint64(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_int64(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_bool(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_value(); } - -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_raw_json_string(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_string(false); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_double(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_uint64(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_int64(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_bool(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_value(); } - -template simdjson_inline error_code document::get(T &out) & noexcept { - return get().get(out); +simdjson_inline simdjson_result value::begin() & noexcept { + return get_array().begin(); } -template simdjson_deprecated simdjson_inline error_code document::get(T &out) && noexcept { - return std::forward(*this).get().get(out); +simdjson_inline simdjson_result value::end() & noexcept { + return {}; } - -#if SIMDJSON_EXCEPTIONS -template -simdjson_deprecated simdjson_inline document::operator T() && noexcept(false) { return get(); } -template -simdjson_inline document::operator T() & noexcept(false) { return get(); } -simdjson_inline document::operator array() & noexcept(false) { return get_array(); } -simdjson_inline document::operator object() & noexcept(false) { return get_object(); } -simdjson_inline document::operator uint64_t() noexcept(false) { return get_uint64(); } -simdjson_inline document::operator int64_t() noexcept(false) { return get_int64(); } -simdjson_inline document::operator double() noexcept(false) { return get_double(); } -simdjson_inline document::operator std::string_view() noexcept(false) { return get_string(false); } -simdjson_inline document::operator raw_json_string() noexcept(false) { return get_raw_json_string(); } -simdjson_inline document::operator bool() noexcept(false) { return get_bool(); } -simdjson_inline document::operator value() noexcept(false) { return get_value(); } - -#endif -simdjson_inline simdjson_result document::count_elements() & noexcept { +simdjson_inline simdjson_result value::count_elements() & noexcept { + simdjson_result answer; auto a = get_array(); - simdjson_result answer = a.count_elements(); - /* If there was an array, we are now left pointing at its first element. */ - if(answer.error() == SUCCESS) { rewind(); } + answer = a.count_elements(); + // count_elements leaves you pointing inside the array, at the first element. + // We need to move back so that the user can create a new array (which requires that + // we point at '['). + iter.move_at_start(); return answer; } -simdjson_inline simdjson_result document::count_fields() & noexcept { +simdjson_inline simdjson_result value::count_fields() & noexcept { + simdjson_result answer; auto a = get_object(); - simdjson_result answer = a.count_fields(); - /* If there was an object, we are now left pointing at its first element. */ - if(answer.error() == SUCCESS) { rewind(); } + answer = a.count_fields(); + iter.move_at_start(); return answer; } -simdjson_inline simdjson_result document::at(size_t index) & noexcept { +simdjson_inline simdjson_result value::at(size_t index) noexcept { auto a = get_array(); return a.at(index); } -simdjson_inline simdjson_result document::begin() & noexcept { - return get_array().begin(); -} -simdjson_inline simdjson_result document::end() & noexcept { - return {}; -} -simdjson_inline simdjson_result document::find_field(std::string_view key) & noexcept { +simdjson_inline simdjson_result value::find_field(std::string_view key) noexcept { return start_or_resume_object().find_field(key); } -simdjson_inline simdjson_result document::find_field(const char *key) & noexcept { +simdjson_inline simdjson_result value::find_field(const char *key) noexcept { return start_or_resume_object().find_field(key); } -simdjson_inline simdjson_result document::find_field_unordered(std::string_view key) & noexcept { + +simdjson_inline simdjson_result value::find_field_unordered(std::string_view key) noexcept { return start_or_resume_object().find_field_unordered(key); } -simdjson_inline simdjson_result document::find_field_unordered(const char *key) & noexcept { +simdjson_inline simdjson_result value::find_field_unordered(const char *key) noexcept { return start_or_resume_object().find_field_unordered(key); } -simdjson_inline simdjson_result document::operator[](std::string_view key) & noexcept { + +simdjson_inline simdjson_result value::operator[](std::string_view key) noexcept { return start_or_resume_object()[key]; } -simdjson_inline simdjson_result document::operator[](const char *key) & noexcept { +simdjson_inline simdjson_result value::operator[](const char *key) noexcept { return start_or_resume_object()[key]; } -simdjson_inline error_code document::consume() noexcept { - auto error = iter.skip_child(0); - if(error) { iter.abandon(); } - return error; -} - -simdjson_inline simdjson_result document::raw_json() noexcept { - auto _iter = get_root_value_iterator(); - const uint8_t * starting_point{_iter.peek_start()}; - auto error = consume(); - if(error) { return error; } - // After 'consume()', we could be left pointing just beyond the document, but that - // is ok because we are not going to dereference the final pointer position, we just - // use it to compute the length in bytes. - const uint8_t * final_point{iter.unsafe_pointer()}; - return std::string_view(reinterpret_cast(starting_point), size_t(final_point - starting_point)); -} - -simdjson_inline simdjson_result document::type() noexcept { - return get_root_value_iterator().type(); +simdjson_inline simdjson_result value::type() noexcept { + return iter.type(); } -simdjson_inline simdjson_result document::is_scalar() noexcept { +simdjson_inline simdjson_result value::is_scalar() noexcept { json_type this_type; auto error = type().get(this_type); if(error) { return error; } return ! ((this_type == json_type::array) || (this_type == json_type::object)); } -simdjson_inline simdjson_result document::is_string() noexcept { +simdjson_inline simdjson_result value::is_string() noexcept { json_type this_type; auto error = type().get(this_type); if(error) { return error; } return (this_type == json_type::string); } -simdjson_inline bool document::is_negative() noexcept { - return get_root_value_iterator().is_root_negative(); + +simdjson_inline bool value::is_negative() noexcept { + return iter.is_negative(); } -simdjson_inline simdjson_result document::is_integer() noexcept { - return get_root_value_iterator().is_root_integer(true); +simdjson_inline simdjson_result value::is_integer() noexcept { + return iter.is_integer(); +} +simdjson_warn_unused simdjson_inline simdjson_result value::get_number_type() noexcept { + return iter.get_number_type(); +} +simdjson_warn_unused simdjson_inline simdjson_result value::get_number() noexcept { + return iter.get_number(); } -simdjson_inline simdjson_result document::get_number_type() noexcept { - return get_root_value_iterator().get_root_number_type(true); +simdjson_inline std::string_view value::raw_json_token() noexcept { + return std::string_view(reinterpret_cast(iter.peek_start()), iter.peek_start_length()); } -simdjson_inline simdjson_result document::get_number() noexcept { - return get_root_value_iterator().get_root_number(true); +simdjson_inline simdjson_result value::raw_json() noexcept { + json_type t; + SIMDJSON_TRY(type().get(t)); + switch (t) + { + case json_type::array: { + ondemand::array array; + SIMDJSON_TRY(get_array().get(array)); + return array.raw_json(); + } + case json_type::object: { + ondemand::object object; + SIMDJSON_TRY(get_object().get(object)); + return object.raw_json(); + } + default: + return raw_json_token(); + } } +simdjson_inline simdjson_result value::current_location() noexcept { + return iter.json_iter().current_location(); +} -simdjson_inline simdjson_result document::raw_json_token() noexcept { - auto _iter = get_root_value_iterator(); - return std::string_view(reinterpret_cast(_iter.peek_start()), _iter.peek_root_length()); +simdjson_inline int32_t value::current_depth() const noexcept{ + return iter.json_iter().depth(); } -simdjson_inline simdjson_result document::at_pointer(std::string_view json_pointer) noexcept { - rewind(); // Rewind the document each time at_pointer is called - if (json_pointer.empty()) { - return this->get_value(); +inline bool is_pointer_well_formed(std::string_view json_pointer) noexcept { + if (simdjson_unlikely(json_pointer.empty())) { // can't be + return false; + } + if (simdjson_unlikely(json_pointer[0] != '/')) { + return false; + } + size_t escape = json_pointer.find('~'); + if (escape == std::string_view::npos) { + return true; + } + if (escape == json_pointer.size() - 1) { + return false; } + if (json_pointer[escape + 1] != '0' && json_pointer[escape + 1] != '1') { + return false; + } + return true; +} + +simdjson_inline simdjson_result value::at_pointer(std::string_view json_pointer) noexcept { json_type t; SIMDJSON_TRY(type().get(t)); switch (t) @@ -58303,15 +60156,15 @@ simdjson_inline simdjson_result document::at_pointer(std::string_view jso case json_type::object: return (*this).get_object().at_pointer(json_pointer); default: + // a non-empty string can be invalid, or accessing a primitive (issue 2154) + if (is_pointer_well_formed(json_pointer)) { + return NO_SUCH_FIELD; + } return INVALID_JSON_POINTER; } } -simdjson_inline simdjson_result document::at_path(std::string_view json_path) noexcept { - rewind(); // Rewind the document each time at_pointer is called - if (json_path.empty()) { - return this->get_value(); - } +simdjson_inline simdjson_result value::at_path(std::string_view json_path) noexcept { json_type t; SIMDJSON_TRY(type().get(t)); switch (t) { @@ -58330,680 +60183,1319 @@ simdjson_inline simdjson_result document::at_path(std::string_view json_p namespace simdjson { -simdjson_inline simdjson_result::simdjson_result( - haswell::ondemand::document &&value +simdjson_inline simdjson_result::simdjson_result( + haswell::ondemand::value &&value ) noexcept : - implementation_simdjson_result_base( - std::forward(value) + implementation_simdjson_result_base( + std::forward(value) ) { } -simdjson_inline simdjson_result::simdjson_result( +simdjson_inline simdjson_result::simdjson_result( error_code error ) noexcept : - implementation_simdjson_result_base( - error - ) + implementation_simdjson_result_base(error) { } -simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { +simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { if (error()) { return error(); } return first.count_elements(); } -simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { +simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { if (error()) { return error(); } return first.count_fields(); } -simdjson_inline simdjson_result simdjson_result::at(size_t index) & noexcept { +simdjson_inline simdjson_result simdjson_result::at(size_t index) noexcept { if (error()) { return error(); } return first.at(index); } -simdjson_inline error_code simdjson_result::rewind() noexcept { - if (error()) { return error(); } - first.rewind(); - return SUCCESS; -} -simdjson_inline simdjson_result simdjson_result::begin() & noexcept { +simdjson_inline simdjson_result simdjson_result::begin() & noexcept { if (error()) { return error(); } return first.begin(); } -simdjson_inline simdjson_result simdjson_result::end() & noexcept { +simdjson_inline simdjson_result simdjson_result::end() & noexcept { + if (error()) { return error(); } return {}; } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) & noexcept { + +simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) noexcept { if (error()) { return error(); } - return first.find_field_unordered(key); + return first.find_field(key); } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field(const char *key) noexcept { if (error()) { return error(); } - return first.find_field_unordered(key); + return first.find_field(key); } -simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) & noexcept { + +simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) noexcept { if (error()) { return error(); } - return first[key]; + return first.find_field_unordered(key); } -simdjson_inline simdjson_result simdjson_result::operator[](const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) noexcept { if (error()) { return error(); } - return first[key]; + return first.find_field_unordered(key); } -simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) & noexcept { + +simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) noexcept { if (error()) { return error(); } - return first.find_field(key); + return first[key]; } -simdjson_inline simdjson_result simdjson_result::find_field(const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::operator[](const char *key) noexcept { if (error()) { return error(); } - return first.find_field(key); + return first[key]; } -simdjson_inline simdjson_result simdjson_result::get_array() & noexcept { + +simdjson_inline simdjson_result simdjson_result::get_array() noexcept { if (error()) { return error(); } return first.get_array(); } -simdjson_inline simdjson_result simdjson_result::get_object() & noexcept { +simdjson_inline simdjson_result simdjson_result::get_object() noexcept { if (error()) { return error(); } return first.get_object(); } -simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { +simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { if (error()) { return error(); } return first.get_uint64(); } -simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { if (error()) { return error(); } return first.get_uint64_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { +simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { if (error()) { return error(); } return first.get_int64(); } -simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { if (error()) { return error(); } return first.get_int64_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_double() noexcept { +simdjson_inline simdjson_result simdjson_result::get_double() noexcept { if (error()) { return error(); } return first.get_double(); } -simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { if (error()) { return error(); } return first.get_double_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { +simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { if (error()) { return error(); } return first.get_string(allow_replacement); } template -simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { +simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { if (error()) { return error(); } return first.get_string(receiver, allow_replacement); } -simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { if (error()) { return error(); } return first.get_wobbly_string(); } -simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { if (error()) { return error(); } return first.get_raw_json_string(); } -simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { +simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { if (error()) { return error(); } return first.get_bool(); } -simdjson_inline simdjson_result simdjson_result::get_value() noexcept { - if (error()) { return error(); } - return first.get_value(); -} -simdjson_inline simdjson_result simdjson_result::is_null() noexcept { +simdjson_inline simdjson_result simdjson_result::is_null() noexcept { if (error()) { return error(); } return first.is_null(); } -template -simdjson_inline simdjson_result simdjson_result::get() & noexcept { +template<> simdjson_inline error_code simdjson_result::get(haswell::ondemand::value &out) noexcept { if (error()) { return error(); } - return first.get(); + out = first; + return SUCCESS; } -template -simdjson_deprecated simdjson_inline simdjson_result simdjson_result::get() && noexcept { + +template simdjson_inline simdjson_result simdjson_result::get() noexcept { if (error()) { return error(); } - return std::forward(first).get(); + return first.get(); } -template -simdjson_inline error_code simdjson_result::get(T &out) & noexcept { +template simdjson_inline error_code simdjson_result::get(T &out) noexcept { if (error()) { return error(); } return first.get(out); } -template -simdjson_inline error_code simdjson_result::get(T &out) && noexcept { - if (error()) { return error(); } - return std::forward(first).get(out); -} -template<> simdjson_inline simdjson_result simdjson_result::get() & noexcept = delete; -template<> simdjson_deprecated simdjson_inline simdjson_result simdjson_result::get() && noexcept { - if (error()) { return error(); } - return std::forward(first); -} -template<> simdjson_inline error_code simdjson_result::get(haswell::ondemand::document &out) & noexcept = delete; -template<> simdjson_inline error_code simdjson_result::get(haswell::ondemand::document &out) && noexcept { +template<> simdjson_inline simdjson_result simdjson_result::get() noexcept { if (error()) { return error(); } - out = std::forward(first); - return SUCCESS; + return std::move(first); } -simdjson_inline simdjson_result simdjson_result::type() noexcept { +simdjson_inline simdjson_result simdjson_result::type() noexcept { if (error()) { return error(); } return first.type(); } - -simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { +simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { if (error()) { return error(); } return first.is_scalar(); } - -simdjson_inline simdjson_result simdjson_result::is_string() noexcept { +simdjson_inline simdjson_result simdjson_result::is_string() noexcept { if (error()) { return error(); } return first.is_string(); } - -simdjson_inline bool simdjson_result::is_negative() noexcept { +simdjson_inline simdjson_result simdjson_result::is_negative() noexcept { if (error()) { return error(); } return first.is_negative(); } - -simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { +simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { if (error()) { return error(); } return first.is_integer(); } - -simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { +simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { if (error()) { return error(); } return first.get_number_type(); } - -simdjson_inline simdjson_result simdjson_result::get_number() noexcept { +simdjson_inline simdjson_result simdjson_result::get_number() noexcept { if (error()) { return error(); } return first.get_number(); } - - #if SIMDJSON_EXCEPTIONS -template ::value == false>::type> -simdjson_inline simdjson_result::operator T() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator haswell::ondemand::array() & noexcept(false) { +template +simdjson_inline simdjson_result::operator T() noexcept(false) { if (error()) { throw simdjson_error(error()); } - return first; + return first.get(); } -simdjson_inline simdjson_result::operator haswell::ondemand::object() & noexcept(false) { +simdjson_inline simdjson_result::operator haswell::ondemand::array() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { +simdjson_inline simdjson_result::operator haswell::ondemand::object() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator int64_t() noexcept(false) { +simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator double() noexcept(false) { +simdjson_inline simdjson_result::operator int64_t() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { +simdjson_inline simdjson_result::operator double() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator haswell::ondemand::raw_json_string() noexcept(false) { +simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator bool() noexcept(false) { +simdjson_inline simdjson_result::operator haswell::ondemand::raw_json_string() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator haswell::ondemand::value() noexcept(false) { +simdjson_inline simdjson_result::operator bool() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } #endif - -simdjson_inline simdjson_result simdjson_result::current_location() noexcept { +simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { if (error()) { return error(); } - return first.current_location(); + return first.raw_json_token(); } -simdjson_inline bool simdjson_result::at_end() const noexcept { +simdjson_inline simdjson_result simdjson_result::raw_json() noexcept { if (error()) { return error(); } - return first.at_end(); + return first.raw_json(); } - -simdjson_inline int32_t simdjson_result::current_depth() const noexcept { +simdjson_inline simdjson_result simdjson_result::current_location() noexcept { if (error()) { return error(); } - return first.current_depth(); + return first.current_location(); } -simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { +simdjson_inline simdjson_result simdjson_result::current_depth() const noexcept { if (error()) { return error(); } - return first.raw_json_token(); + return first.current_depth(); } -simdjson_inline simdjson_result simdjson_result::at_pointer(std::string_view json_pointer) noexcept { - if (error()) { return error(); } +simdjson_inline simdjson_result simdjson_result::at_pointer( + std::string_view json_pointer) noexcept { + if (error()) { + return error(); + } return first.at_pointer(json_pointer); } -simdjson_inline simdjson_result simdjson_result::at_path(std::string_view json_path) noexcept { - if (error()) { return error(); } +simdjson_inline simdjson_result simdjson_result::at_path( + std::string_view json_path) noexcept { + if (error()) { + return error(); + } return first.at_path(json_path); } } // namespace simdjson +#endif // SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H +/* end file simdjson/generic/ondemand/value-inl.h for haswell */ +/* including simdjson/generic/ondemand/document-inl.h for haswell: #include "simdjson/generic/ondemand/document-inl.h" */ +/* begin file simdjson/generic/ondemand/document-inl.h for haswell */ +#ifndef SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H + +/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ +/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/deserialize.h" */ +/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ namespace simdjson { namespace haswell { namespace ondemand { -simdjson_inline document_reference::document_reference() noexcept : doc{nullptr} {} -simdjson_inline document_reference::document_reference(document &d) noexcept : doc(&d) {} -simdjson_inline void document_reference::rewind() noexcept { doc->rewind(); } -simdjson_inline simdjson_result document_reference::get_array() & noexcept { return doc->get_array(); } -simdjson_inline simdjson_result document_reference::get_object() & noexcept { return doc->get_object(); } -/** - * The document_reference instances are used primarily/solely for streams of JSON - * documents. - * We decided that calling 'get_double()' on the JSON document '1.233 blabla' should - * give an error, so we check for trailing content. - * - * However, for streams of JSON documents, we want to be able to start from - * "321" "321" "321" - * and parse it successfully as a stream of JSON documents, calling get_uint64_in_string() - * successfully each time. - * - * To achieve this result, we pass a 'false' to a get_root_value_iterator() method: - * this indicates that we allow trailing content. - */ -simdjson_inline simdjson_result document_reference::get_uint64() noexcept { return doc->get_root_value_iterator().get_root_uint64(false); } -simdjson_inline simdjson_result document_reference::get_uint64_in_string() noexcept { return doc->get_root_value_iterator().get_root_uint64_in_string(false); } -simdjson_inline simdjson_result document_reference::get_int64() noexcept { return doc->get_root_value_iterator().get_root_int64(false); } -simdjson_inline simdjson_result document_reference::get_int64_in_string() noexcept { return doc->get_root_value_iterator().get_root_int64_in_string(false); } -simdjson_inline simdjson_result document_reference::get_double() noexcept { return doc->get_root_value_iterator().get_root_double(false); } -simdjson_inline simdjson_result document_reference::get_double_in_string() noexcept { return doc->get_root_value_iterator().get_root_double(false); } -simdjson_inline simdjson_result document_reference::get_string(bool allow_replacement) noexcept { return doc->get_root_value_iterator().get_root_string(false, allow_replacement); } -template -simdjson_inline error_code document_reference::get_string(string_type& receiver, bool allow_replacement) noexcept { return doc->get_root_value_iterator().get_root_string(receiver, false, allow_replacement); } -simdjson_inline simdjson_result document_reference::get_wobbly_string() noexcept { return doc->get_root_value_iterator().get_root_wobbly_string(false); } -simdjson_inline simdjson_result document_reference::get_raw_json_string() noexcept { return doc->get_root_value_iterator().get_root_raw_json_string(false); } -simdjson_inline simdjson_result document_reference::get_bool() noexcept { return doc->get_root_value_iterator().get_root_bool(false); } -simdjson_inline simdjson_result document_reference::get_value() noexcept { return doc->get_value(); } -simdjson_inline simdjson_result document_reference::is_null() noexcept { return doc->get_root_value_iterator().is_root_null(false); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_array(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_object(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_raw_json_string(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_string(false); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_double(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_uint64(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_int64(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_bool(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_value(); } -#if SIMDJSON_EXCEPTIONS -template -simdjson_inline document_reference::operator T() noexcept(false) { return get(); } -simdjson_inline document_reference::operator array() & noexcept(false) { return array(*doc); } -simdjson_inline document_reference::operator object() & noexcept(false) { return object(*doc); } -simdjson_inline document_reference::operator uint64_t() noexcept(false) { return get_uint64(); } -simdjson_inline document_reference::operator int64_t() noexcept(false) { return get_int64(); } -simdjson_inline document_reference::operator double() noexcept(false) { return get_double(); } -simdjson_inline document_reference::operator std::string_view() noexcept(false) { return std::string_view(*doc); } -simdjson_inline document_reference::operator raw_json_string() noexcept(false) { return get_raw_json_string(); } -simdjson_inline document_reference::operator bool() noexcept(false) { return get_bool(); } -simdjson_inline document_reference::operator value() noexcept(false) { return value(*doc); } -#endif -simdjson_inline simdjson_result document_reference::count_elements() & noexcept { return doc->count_elements(); } -simdjson_inline simdjson_result document_reference::count_fields() & noexcept { return doc->count_fields(); } -simdjson_inline simdjson_result document_reference::at(size_t index) & noexcept { return doc->at(index); } -simdjson_inline simdjson_result document_reference::begin() & noexcept { return doc->begin(); } -simdjson_inline simdjson_result document_reference::end() & noexcept { return doc->end(); } -simdjson_inline simdjson_result document_reference::find_field(std::string_view key) & noexcept { return doc->find_field(key); } -simdjson_inline simdjson_result document_reference::find_field(const char *key) & noexcept { return doc->find_field(key); } -simdjson_inline simdjson_result document_reference::operator[](std::string_view key) & noexcept { return (*doc)[key]; } -simdjson_inline simdjson_result document_reference::operator[](const char *key) & noexcept { return (*doc)[key]; } -simdjson_inline simdjson_result document_reference::find_field_unordered(std::string_view key) & noexcept { return doc->find_field_unordered(key); } -simdjson_inline simdjson_result document_reference::find_field_unordered(const char *key) & noexcept { return doc->find_field_unordered(key); } -simdjson_inline simdjson_result document_reference::type() noexcept { return doc->type(); } -simdjson_inline simdjson_result document_reference::is_scalar() noexcept { return doc->is_scalar(); } -simdjson_inline simdjson_result document_reference::is_string() noexcept { return doc->is_string(); } -simdjson_inline simdjson_result document_reference::current_location() noexcept { return doc->current_location(); } -simdjson_inline int32_t document_reference::current_depth() const noexcept { return doc->current_depth(); } -simdjson_inline bool document_reference::is_negative() noexcept { return doc->is_negative(); } -simdjson_inline simdjson_result document_reference::is_integer() noexcept { return doc->get_root_value_iterator().is_root_integer(false); } -simdjson_inline simdjson_result document_reference::get_number_type() noexcept { return doc->get_root_value_iterator().get_root_number_type(false); } -simdjson_inline simdjson_result document_reference::get_number() noexcept { return doc->get_root_value_iterator().get_root_number(false); } -simdjson_inline simdjson_result document_reference::raw_json_token() noexcept { return doc->raw_json_token(); } -simdjson_inline simdjson_result document_reference::at_pointer(std::string_view json_pointer) noexcept { return doc->at_pointer(json_pointer); } -simdjson_inline simdjson_result document_reference::at_path(std::string_view json_path) noexcept { return doc->at_path(json_path); } -simdjson_inline simdjson_result document_reference::raw_json() noexcept { return doc->raw_json();} -simdjson_inline document_reference::operator document&() const noexcept { return *doc; } +simdjson_inline document::document(ondemand::json_iterator &&_iter) noexcept + : iter{std::forward(_iter)} +{ + logger::log_start_value(iter, "document"); +} -} // namespace ondemand -} // namespace haswell -} // namespace simdjson +simdjson_inline document document::start(json_iterator &&iter) noexcept { + return document(std::forward(iter)); +} +inline void document::rewind() noexcept { + iter.rewind(); +} +inline std::string document::to_debug_string() noexcept { + return iter.to_string(); +} -namespace simdjson { -simdjson_inline simdjson_result::simdjson_result(haswell::ondemand::document_reference value, error_code error) - noexcept : implementation_simdjson_result_base(std::forward(value), error) {} +inline simdjson_result document::current_location() const noexcept { + return iter.current_location(); +} +inline int32_t document::current_depth() const noexcept { + return iter.depth(); +} -simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { - if (error()) { return error(); } - return first.count_elements(); +inline bool document::at_end() const noexcept { + return iter.at_end(); } -simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { - if (error()) { return error(); } - return first.count_fields(); + + +inline bool document::is_alive() noexcept { + return iter.is_alive(); } -simdjson_inline simdjson_result simdjson_result::at(size_t index) & noexcept { - if (error()) { return error(); } - return first.at(index); +simdjson_inline value_iterator document::resume_value_iterator() noexcept { + return value_iterator(&iter, 1, iter.root_position()); } -simdjson_inline error_code simdjson_result::rewind() noexcept { - if (error()) { return error(); } - first.rewind(); - return SUCCESS; +simdjson_inline value_iterator document::get_root_value_iterator() noexcept { + return resume_value_iterator(); } -simdjson_inline simdjson_result simdjson_result::begin() & noexcept { - if (error()) { return error(); } - return first.begin(); +simdjson_inline simdjson_result document::start_or_resume_object() noexcept { + if (iter.at_root()) { + return get_object(); + } else { + return object::resume(resume_value_iterator()); + } } -simdjson_inline simdjson_result simdjson_result::end() & noexcept { - return {}; +simdjson_inline simdjson_result document::get_value() noexcept { + // Make sure we start any arrays or objects before returning, so that start_root_() + // gets called. + + // It is the convention throughout the code that the macro `SIMDJSON_DEVELOPMENT_CHECKS` determines whether + // we check for OUT_OF_ORDER_ITERATION. Proper on::demand code should never trigger this error. +#if SIMDJSON_DEVELOPMENT_CHECKS + if (!iter.at_root()) { return OUT_OF_ORDER_ITERATION; } +#endif + // assert_at_root() serves two purposes: in Debug mode, whether or not + // SIMDJSON_DEVELOPMENT_CHECKS is set or not, it checks that we are at the root of + // the document (this will typically be redundant). In release mode, it generates + // SIMDJSON_ASSUME statements to allow the compiler to make assumptions. + iter.assert_at_root(); + switch (*iter.peek()) { + case '[': { + // The following lines check that the document ends with ]. + auto value_iterator = get_root_value_iterator(); + auto error = value_iterator.check_root_array(); + if(error) { return error; } + return value(get_root_value_iterator()); + } + case '{': { + // The following lines would check that the document ends with }. + auto value_iterator = get_root_value_iterator(); + auto error = value_iterator.check_root_object(); + if(error) { return error; } + return value(get_root_value_iterator()); + } + default: + // Unfortunately, scalar documents are a special case in simdjson and they cannot + // be safely converted to value instances. + return SCALAR_DOCUMENT_AS_VALUE; + } } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) & noexcept { +simdjson_inline simdjson_result document::get_array() & noexcept { + auto value = get_root_value_iterator(); + return array::start_root(value); +} +simdjson_inline simdjson_result document::get_object() & noexcept { + auto value = get_root_value_iterator(); + return object::start_root(value); +} + +/** + * We decided that calling 'get_double()' on the JSON document '1.233 blabla' should + * give an error, so we check for trailing content. We want to disallow trailing + * content. + * Thus, in several implementations below, we pass a 'true' parameter value to + * a get_root_value_iterator() method: this indicates that we disallow trailing content. + */ + +simdjson_inline simdjson_result document::get_uint64() noexcept { + return get_root_value_iterator().get_root_uint64(true); +} +simdjson_inline simdjson_result document::get_uint64_in_string() noexcept { + return get_root_value_iterator().get_root_uint64_in_string(true); +} +simdjson_inline simdjson_result document::get_int64() noexcept { + return get_root_value_iterator().get_root_int64(true); +} +simdjson_inline simdjson_result document::get_int64_in_string() noexcept { + return get_root_value_iterator().get_root_int64_in_string(true); +} +simdjson_inline simdjson_result document::get_double() noexcept { + return get_root_value_iterator().get_root_double(true); +} +simdjson_inline simdjson_result document::get_double_in_string() noexcept { + return get_root_value_iterator().get_root_double_in_string(true); +} +simdjson_inline simdjson_result document::get_string(bool allow_replacement) noexcept { + return get_root_value_iterator().get_root_string(true, allow_replacement); +} +template +simdjson_inline error_code document::get_string(string_type& receiver, bool allow_replacement) noexcept { + return get_root_value_iterator().get_root_string(receiver, true, allow_replacement); +} +simdjson_inline simdjson_result document::get_wobbly_string() noexcept { + return get_root_value_iterator().get_root_wobbly_string(true); +} +simdjson_inline simdjson_result document::get_raw_json_string() noexcept { + return get_root_value_iterator().get_root_raw_json_string(true); +} +simdjson_inline simdjson_result document::get_bool() noexcept { + return get_root_value_iterator().get_root_bool(true); +} +simdjson_inline simdjson_result document::is_null() noexcept { + return get_root_value_iterator().is_root_null(true); +} + +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_array(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_object(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_raw_json_string(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_string(false); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_double(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_uint64(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_int64(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_bool(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_value(); } + +template<> simdjson_inline error_code document::get(array& out) & noexcept { return get_array().get(out); } +template<> simdjson_inline error_code document::get(object& out) & noexcept { return get_object().get(out); } +template<> simdjson_inline error_code document::get(raw_json_string& out) & noexcept { return get_raw_json_string().get(out); } +template<> simdjson_inline error_code document::get(std::string_view& out) & noexcept { return get_string(false).get(out); } +template<> simdjson_inline error_code document::get(double& out) & noexcept { return get_double().get(out); } +template<> simdjson_inline error_code document::get(uint64_t& out) & noexcept { return get_uint64().get(out); } +template<> simdjson_inline error_code document::get(int64_t& out) & noexcept { return get_int64().get(out); } +template<> simdjson_inline error_code document::get(bool& out) & noexcept { return get_bool().get(out); } +template<> simdjson_inline error_code document::get(value& out) & noexcept { return get_value().get(out); } + +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_raw_json_string(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_string(false); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_double(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_uint64(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_int64(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_bool(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_value(); } + +#if SIMDJSON_EXCEPTIONS +template +simdjson_deprecated simdjson_inline document::operator T() && noexcept(false) { return get(); } +template +simdjson_inline document::operator T() & noexcept(false) { return get(); } +simdjson_inline document::operator array() & noexcept(false) { return get_array(); } +simdjson_inline document::operator object() & noexcept(false) { return get_object(); } +simdjson_inline document::operator uint64_t() noexcept(false) { return get_uint64(); } +simdjson_inline document::operator int64_t() noexcept(false) { return get_int64(); } +simdjson_inline document::operator double() noexcept(false) { return get_double(); } +simdjson_inline document::operator std::string_view() noexcept(false) { return get_string(false); } +simdjson_inline document::operator raw_json_string() noexcept(false) { return get_raw_json_string(); } +simdjson_inline document::operator bool() noexcept(false) { return get_bool(); } +simdjson_inline document::operator value() noexcept(false) { return get_value(); } + +#endif +simdjson_inline simdjson_result document::count_elements() & noexcept { + auto a = get_array(); + simdjson_result answer = a.count_elements(); + /* If there was an array, we are now left pointing at its first element. */ + if(answer.error() == SUCCESS) { rewind(); } + return answer; +} +simdjson_inline simdjson_result document::count_fields() & noexcept { + auto a = get_object(); + simdjson_result answer = a.count_fields(); + /* If there was an object, we are now left pointing at its first element. */ + if(answer.error() == SUCCESS) { rewind(); } + return answer; +} +simdjson_inline simdjson_result document::at(size_t index) & noexcept { + auto a = get_array(); + return a.at(index); +} +simdjson_inline simdjson_result document::begin() & noexcept { + return get_array().begin(); +} +simdjson_inline simdjson_result document::end() & noexcept { + return {}; +} + +simdjson_inline simdjson_result document::find_field(std::string_view key) & noexcept { + return start_or_resume_object().find_field(key); +} +simdjson_inline simdjson_result document::find_field(const char *key) & noexcept { + return start_or_resume_object().find_field(key); +} +simdjson_inline simdjson_result document::find_field_unordered(std::string_view key) & noexcept { + return start_or_resume_object().find_field_unordered(key); +} +simdjson_inline simdjson_result document::find_field_unordered(const char *key) & noexcept { + return start_or_resume_object().find_field_unordered(key); +} +simdjson_inline simdjson_result document::operator[](std::string_view key) & noexcept { + return start_or_resume_object()[key]; +} +simdjson_inline simdjson_result document::operator[](const char *key) & noexcept { + return start_or_resume_object()[key]; +} + +simdjson_inline error_code document::consume() noexcept { + bool scalar = false; + auto error = is_scalar().get(scalar); + if(error) { return error; } + if(scalar) { + iter.return_current_and_advance(); + return SUCCESS; + } + error = iter.skip_child(0); + if(error) { iter.abandon(); } + return error; +} + +simdjson_inline simdjson_result document::raw_json() noexcept { + auto _iter = get_root_value_iterator(); + const uint8_t * starting_point{_iter.peek_start()}; + auto error = consume(); + if(error) { return error; } + // After 'consume()', we could be left pointing just beyond the document, but that + // is ok because we are not going to dereference the final pointer position, we just + // use it to compute the length in bytes. + const uint8_t * final_point{iter.unsafe_pointer()}; + return std::string_view(reinterpret_cast(starting_point), size_t(final_point - starting_point)); +} + +simdjson_inline simdjson_result document::type() noexcept { + return get_root_value_iterator().type(); +} + +simdjson_inline simdjson_result document::is_scalar() noexcept { + // For more speed, we could do: + // return iter.is_single_token(); + json_type this_type; + auto error = type().get(this_type); + if(error) { return error; } + return ! ((this_type == json_type::array) || (this_type == json_type::object)); +} + +simdjson_inline simdjson_result document::is_string() noexcept { + json_type this_type; + auto error = type().get(this_type); + if(error) { return error; } + return (this_type == json_type::string); +} + +simdjson_inline bool document::is_negative() noexcept { + return get_root_value_iterator().is_root_negative(); +} + +simdjson_inline simdjson_result document::is_integer() noexcept { + return get_root_value_iterator().is_root_integer(true); +} + +simdjson_inline simdjson_result document::get_number_type() noexcept { + return get_root_value_iterator().get_root_number_type(true); +} + +simdjson_inline simdjson_result document::get_number() noexcept { + return get_root_value_iterator().get_root_number(true); +} + + +simdjson_inline simdjson_result document::raw_json_token() noexcept { + auto _iter = get_root_value_iterator(); + return std::string_view(reinterpret_cast(_iter.peek_start()), _iter.peek_root_length()); +} + +simdjson_inline simdjson_result document::at_pointer(std::string_view json_pointer) noexcept { + rewind(); // Rewind the document each time at_pointer is called + if (json_pointer.empty()) { + return this->get_value(); + } + json_type t; + SIMDJSON_TRY(type().get(t)); + switch (t) + { + case json_type::array: + return (*this).get_array().at_pointer(json_pointer); + case json_type::object: + return (*this).get_object().at_pointer(json_pointer); + default: + return INVALID_JSON_POINTER; + } +} + +simdjson_inline simdjson_result document::at_path(std::string_view json_path) noexcept { + rewind(); // Rewind the document each time at_pointer is called + if (json_path.empty()) { + return this->get_value(); + } + json_type t; + SIMDJSON_TRY(type().get(t)); + switch (t) { + case json_type::array: + return (*this).get_array().at_path(json_path); + case json_type::object: + return (*this).get_object().at_path(json_path); + default: + return INVALID_JSON_POINTER; + } +} + +} // namespace ondemand +} // namespace haswell +} // namespace simdjson + +namespace simdjson { + +simdjson_inline simdjson_result::simdjson_result( + haswell::ondemand::document &&value +) noexcept : + implementation_simdjson_result_base( + std::forward(value) + ) +{ +} +simdjson_inline simdjson_result::simdjson_result( + error_code error +) noexcept : + implementation_simdjson_result_base( + error + ) +{ +} +simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { + if (error()) { return error(); } + return first.count_elements(); +} +simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { + if (error()) { return error(); } + return first.count_fields(); +} +simdjson_inline simdjson_result simdjson_result::at(size_t index) & noexcept { + if (error()) { return error(); } + return first.at(index); +} +simdjson_inline error_code simdjson_result::rewind() noexcept { + if (error()) { return error(); } + first.rewind(); + return SUCCESS; +} +simdjson_inline simdjson_result simdjson_result::begin() & noexcept { + if (error()) { return error(); } + return first.begin(); +} +simdjson_inline simdjson_result simdjson_result::end() & noexcept { + return {}; +} +simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) & noexcept { if (error()) { return error(); } return first.find_field_unordered(key); } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) & noexcept { if (error()) { return error(); } return first.find_field_unordered(key); } -simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) & noexcept { +simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) & noexcept { if (error()) { return error(); } return first[key]; } -simdjson_inline simdjson_result simdjson_result::operator[](const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::operator[](const char *key) & noexcept { if (error()) { return error(); } return first[key]; } -simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) & noexcept { if (error()) { return error(); } return first.find_field(key); } -simdjson_inline simdjson_result simdjson_result::find_field(const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field(const char *key) & noexcept { if (error()) { return error(); } return first.find_field(key); } -simdjson_inline simdjson_result simdjson_result::get_array() & noexcept { +simdjson_inline simdjson_result simdjson_result::get_array() & noexcept { if (error()) { return error(); } return first.get_array(); } -simdjson_inline simdjson_result simdjson_result::get_object() & noexcept { +simdjson_inline simdjson_result simdjson_result::get_object() & noexcept { if (error()) { return error(); } return first.get_object(); } -simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { +simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { if (error()) { return error(); } return first.get_uint64(); } -simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { if (error()) { return error(); } return first.get_uint64_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { +simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { if (error()) { return error(); } return first.get_int64(); } -simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { if (error()) { return error(); } return first.get_int64_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_double() noexcept { +simdjson_inline simdjson_result simdjson_result::get_double() noexcept { if (error()) { return error(); } return first.get_double(); } -simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { if (error()) { return error(); } return first.get_double_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { +simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { if (error()) { return error(); } return first.get_string(allow_replacement); } template -simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { +simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { if (error()) { return error(); } return first.get_string(receiver, allow_replacement); } -simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { if (error()) { return error(); } return first.get_wobbly_string(); } -simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { if (error()) { return error(); } return first.get_raw_json_string(); } -simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { +simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { if (error()) { return error(); } return first.get_bool(); } -simdjson_inline simdjson_result simdjson_result::get_value() noexcept { +simdjson_inline simdjson_result simdjson_result::get_value() noexcept { if (error()) { return error(); } return first.get_value(); } -simdjson_inline simdjson_result simdjson_result::is_null() noexcept { +simdjson_inline simdjson_result simdjson_result::is_null() noexcept { if (error()) { return error(); } return first.is_null(); } -simdjson_inline simdjson_result simdjson_result::type() noexcept { + +template +simdjson_inline simdjson_result simdjson_result::get() & noexcept { + if (error()) { return error(); } + return first.get(); +} +template +simdjson_deprecated simdjson_inline simdjson_result simdjson_result::get() && noexcept { + if (error()) { return error(); } + return std::forward(first).get(); +} +template +simdjson_inline error_code simdjson_result::get(T &out) & noexcept { + if (error()) { return error(); } + return first.get(out); +} +template +simdjson_inline error_code simdjson_result::get(T &out) && noexcept { + if (error()) { return error(); } + return std::forward(first).get(out); +} + +template<> simdjson_inline simdjson_result simdjson_result::get() & noexcept = delete; +template<> simdjson_deprecated simdjson_inline simdjson_result simdjson_result::get() && noexcept { + if (error()) { return error(); } + return std::forward(first); +} +template<> simdjson_inline error_code simdjson_result::get(haswell::ondemand::document &out) & noexcept = delete; +template<> simdjson_inline error_code simdjson_result::get(haswell::ondemand::document &out) && noexcept { + if (error()) { return error(); } + out = std::forward(first); + return SUCCESS; +} + +simdjson_inline simdjson_result simdjson_result::type() noexcept { if (error()) { return error(); } return first.type(); } -simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { + +simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { if (error()) { return error(); } return first.is_scalar(); } -simdjson_inline simdjson_result simdjson_result::is_string() noexcept { + +simdjson_inline simdjson_result simdjson_result::is_string() noexcept { if (error()) { return error(); } return first.is_string(); } -simdjson_inline simdjson_result simdjson_result::is_negative() noexcept { + +simdjson_inline bool simdjson_result::is_negative() noexcept { if (error()) { return error(); } return first.is_negative(); } -simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { + +simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { if (error()) { return error(); } return first.is_integer(); } -simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { + +simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { if (error()) { return error(); } return first.get_number_type(); } -simdjson_inline simdjson_result simdjson_result::get_number() noexcept { + +simdjson_inline simdjson_result simdjson_result::get_number() noexcept { if (error()) { return error(); } return first.get_number(); } + + #if SIMDJSON_EXCEPTIONS -template ::value == false>::type> -simdjson_inline simdjson_result::operator T() noexcept(false) { +template ::value == false>::type> +simdjson_inline simdjson_result::operator T() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator haswell::ondemand::array() & noexcept(false) { +simdjson_inline simdjson_result::operator haswell::ondemand::array() & noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator haswell::ondemand::object() & noexcept(false) { +simdjson_inline simdjson_result::operator haswell::ondemand::object() & noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { +simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator int64_t() noexcept(false) { +simdjson_inline simdjson_result::operator int64_t() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator double() noexcept(false) { +simdjson_inline simdjson_result::operator double() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { +simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator haswell::ondemand::raw_json_string() noexcept(false) { +simdjson_inline simdjson_result::operator haswell::ondemand::raw_json_string() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator bool() noexcept(false) { +simdjson_inline simdjson_result::operator bool() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator haswell::ondemand::value() noexcept(false) { +simdjson_inline simdjson_result::operator haswell::ondemand::value() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } #endif -simdjson_inline simdjson_result simdjson_result::current_location() noexcept { + +simdjson_inline simdjson_result simdjson_result::current_location() noexcept { if (error()) { return error(); } return first.current_location(); } -simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { +simdjson_inline bool simdjson_result::at_end() const noexcept { + if (error()) { return error(); } + return first.at_end(); +} + + +simdjson_inline int32_t simdjson_result::current_depth() const noexcept { + if (error()) { return error(); } + return first.current_depth(); +} + +simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { if (error()) { return error(); } return first.raw_json_token(); } -simdjson_inline simdjson_result simdjson_result::at_pointer(std::string_view json_pointer) noexcept { +simdjson_inline simdjson_result simdjson_result::at_pointer(std::string_view json_pointer) noexcept { if (error()) { return error(); } return first.at_pointer(json_pointer); } -simdjson_inline simdjson_result simdjson_result::at_path(std::string_view json_path) noexcept { - if (error()) { - return error(); - } +simdjson_inline simdjson_result simdjson_result::at_path(std::string_view json_path) noexcept { + if (error()) { return error(); } return first.at_path(json_path); } } // namespace simdjson -#endif // SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H -/* end file simdjson/generic/ondemand/document-inl.h for haswell */ -/* including simdjson/generic/ondemand/document_stream-inl.h for haswell: #include "simdjson/generic/ondemand/document_stream-inl.h" */ -/* begin file simdjson/generic/ondemand/document_stream-inl.h for haswell */ -#ifndef SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H - -/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ -/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document_stream.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/implementation_simdjson_result_base-inl.h" */ -/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ - -#include -#include namespace simdjson { namespace haswell { namespace ondemand { -#ifdef SIMDJSON_THREADS_ENABLED - -inline void stage1_worker::finish() { - // After calling "run" someone would call finish() to wait - // for the end of the processing. - // This function will wait until either the thread has done - // the processing or, else, the destructor has been called. - std::unique_lock lock(locking_mutex); - cond_var.wait(lock, [this]{return has_work == false;}); -} - -inline stage1_worker::~stage1_worker() { - // The thread may never outlive the stage1_worker instance - // and will always be stopped/joined before the stage1_worker - // instance is gone. - stop_thread(); -} - -inline void stage1_worker::start_thread() { - std::unique_lock lock(locking_mutex); - if(thread.joinable()) { - return; // This should never happen but we never want to create more than one thread. - } - thread = std::thread([this]{ - while(true) { - std::unique_lock thread_lock(locking_mutex); - // We wait for either "run" or "stop_thread" to be called. - cond_var.wait(thread_lock, [this]{return has_work || !can_work;}); - // If, for some reason, the stop_thread() method was called (i.e., the - // destructor of stage1_worker is called, then we want to immediately destroy - // the thread (and not do any more processing). - if(!can_work) { - break; - } - this->owner->stage1_thread_error = this->owner->run_stage1(*this->stage1_thread_parser, - this->_next_batch_start); - this->has_work = false; - // The condition variable call should be moved after thread_lock.unlock() for performance - // reasons but thread sanitizers may report it as a data race if we do. - // See https://stackoverflow.com/questions/35775501/c-should-condition-variable-be-notified-under-lock - cond_var.notify_one(); // will notify "finish" - thread_lock.unlock(); - } - } - ); -} - - -inline void stage1_worker::stop_thread() { - std::unique_lock lock(locking_mutex); - // We have to make sure that all locks can be released. - can_work = false; - has_work = false; - cond_var.notify_all(); - lock.unlock(); - if(thread.joinable()) { - thread.join(); - } -} - -inline void stage1_worker::run(document_stream * ds, parser * stage1, size_t next_batch_start) { - std::unique_lock lock(locking_mutex); - owner = ds; - _next_batch_start = next_batch_start; - stage1_thread_parser = stage1; - has_work = true; - // The condition variable call should be moved after thread_lock.unlock() for performance - // reasons but thread sanitizers may report it as a data race if we do. - // See https://stackoverflow.com/questions/35775501/c-should-condition-variable-be-notified-under-lock - cond_var.notify_one(); // will notify the thread lock that we have work - lock.unlock(); -} - -#endif // SIMDJSON_THREADS_ENABLED - -simdjson_inline document_stream::document_stream( - ondemand::parser &_parser, - const uint8_t *_buf, +simdjson_inline document_reference::document_reference() noexcept : doc{nullptr} {} +simdjson_inline document_reference::document_reference(document &d) noexcept : doc(&d) {} +simdjson_inline void document_reference::rewind() noexcept { doc->rewind(); } +simdjson_inline simdjson_result document_reference::get_array() & noexcept { return doc->get_array(); } +simdjson_inline simdjson_result document_reference::get_object() & noexcept { return doc->get_object(); } +/** + * The document_reference instances are used primarily/solely for streams of JSON + * documents. + * We decided that calling 'get_double()' on the JSON document '1.233 blabla' should + * give an error, so we check for trailing content. + * + * However, for streams of JSON documents, we want to be able to start from + * "321" "321" "321" + * and parse it successfully as a stream of JSON documents, calling get_uint64_in_string() + * successfully each time. + * + * To achieve this result, we pass a 'false' to a get_root_value_iterator() method: + * this indicates that we allow trailing content. + */ +simdjson_inline simdjson_result document_reference::get_uint64() noexcept { return doc->get_root_value_iterator().get_root_uint64(false); } +simdjson_inline simdjson_result document_reference::get_uint64_in_string() noexcept { return doc->get_root_value_iterator().get_root_uint64_in_string(false); } +simdjson_inline simdjson_result document_reference::get_int64() noexcept { return doc->get_root_value_iterator().get_root_int64(false); } +simdjson_inline simdjson_result document_reference::get_int64_in_string() noexcept { return doc->get_root_value_iterator().get_root_int64_in_string(false); } +simdjson_inline simdjson_result document_reference::get_double() noexcept { return doc->get_root_value_iterator().get_root_double(false); } +simdjson_inline simdjson_result document_reference::get_double_in_string() noexcept { return doc->get_root_value_iterator().get_root_double(false); } +simdjson_inline simdjson_result document_reference::get_string(bool allow_replacement) noexcept { return doc->get_root_value_iterator().get_root_string(false, allow_replacement); } +template +simdjson_inline error_code document_reference::get_string(string_type& receiver, bool allow_replacement) noexcept { return doc->get_root_value_iterator().get_root_string(receiver, false, allow_replacement); } +simdjson_inline simdjson_result document_reference::get_wobbly_string() noexcept { return doc->get_root_value_iterator().get_root_wobbly_string(false); } +simdjson_inline simdjson_result document_reference::get_raw_json_string() noexcept { return doc->get_root_value_iterator().get_root_raw_json_string(false); } +simdjson_inline simdjson_result document_reference::get_bool() noexcept { return doc->get_root_value_iterator().get_root_bool(false); } +simdjson_inline simdjson_result document_reference::get_value() noexcept { return doc->get_value(); } +simdjson_inline simdjson_result document_reference::is_null() noexcept { return doc->get_root_value_iterator().is_root_null(false); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_array(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_object(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_raw_json_string(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_string(false); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_double(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_uint64(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_int64(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_bool(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_value(); } +#if SIMDJSON_EXCEPTIONS +template +simdjson_inline document_reference::operator T() noexcept(false) { return get(); } +simdjson_inline document_reference::operator array() & noexcept(false) { return array(*doc); } +simdjson_inline document_reference::operator object() & noexcept(false) { return object(*doc); } +simdjson_inline document_reference::operator uint64_t() noexcept(false) { return get_uint64(); } +simdjson_inline document_reference::operator int64_t() noexcept(false) { return get_int64(); } +simdjson_inline document_reference::operator double() noexcept(false) { return get_double(); } +simdjson_inline document_reference::operator std::string_view() noexcept(false) { return std::string_view(*doc); } +simdjson_inline document_reference::operator raw_json_string() noexcept(false) { return get_raw_json_string(); } +simdjson_inline document_reference::operator bool() noexcept(false) { return get_bool(); } +simdjson_inline document_reference::operator value() noexcept(false) { return value(*doc); } +#endif +simdjson_inline simdjson_result document_reference::count_elements() & noexcept { return doc->count_elements(); } +simdjson_inline simdjson_result document_reference::count_fields() & noexcept { return doc->count_fields(); } +simdjson_inline simdjson_result document_reference::at(size_t index) & noexcept { return doc->at(index); } +simdjson_inline simdjson_result document_reference::begin() & noexcept { return doc->begin(); } +simdjson_inline simdjson_result document_reference::end() & noexcept { return doc->end(); } +simdjson_inline simdjson_result document_reference::find_field(std::string_view key) & noexcept { return doc->find_field(key); } +simdjson_inline simdjson_result document_reference::find_field(const char *key) & noexcept { return doc->find_field(key); } +simdjson_inline simdjson_result document_reference::operator[](std::string_view key) & noexcept { return (*doc)[key]; } +simdjson_inline simdjson_result document_reference::operator[](const char *key) & noexcept { return (*doc)[key]; } +simdjson_inline simdjson_result document_reference::find_field_unordered(std::string_view key) & noexcept { return doc->find_field_unordered(key); } +simdjson_inline simdjson_result document_reference::find_field_unordered(const char *key) & noexcept { return doc->find_field_unordered(key); } +simdjson_inline simdjson_result document_reference::type() noexcept { return doc->type(); } +simdjson_inline simdjson_result document_reference::is_scalar() noexcept { return doc->is_scalar(); } +simdjson_inline simdjson_result document_reference::is_string() noexcept { return doc->is_string(); } +simdjson_inline simdjson_result document_reference::current_location() noexcept { return doc->current_location(); } +simdjson_inline int32_t document_reference::current_depth() const noexcept { return doc->current_depth(); } +simdjson_inline bool document_reference::is_negative() noexcept { return doc->is_negative(); } +simdjson_inline simdjson_result document_reference::is_integer() noexcept { return doc->get_root_value_iterator().is_root_integer(false); } +simdjson_inline simdjson_result document_reference::get_number_type() noexcept { return doc->get_root_value_iterator().get_root_number_type(false); } +simdjson_inline simdjson_result document_reference::get_number() noexcept { return doc->get_root_value_iterator().get_root_number(false); } +simdjson_inline simdjson_result document_reference::raw_json_token() noexcept { return doc->raw_json_token(); } +simdjson_inline simdjson_result document_reference::at_pointer(std::string_view json_pointer) noexcept { return doc->at_pointer(json_pointer); } +simdjson_inline simdjson_result document_reference::at_path(std::string_view json_path) noexcept { return doc->at_path(json_path); } +simdjson_inline simdjson_result document_reference::raw_json() noexcept { return doc->raw_json();} +simdjson_inline document_reference::operator document&() const noexcept { return *doc; } + +} // namespace ondemand +} // namespace haswell +} // namespace simdjson + + + +namespace simdjson { +simdjson_inline simdjson_result::simdjson_result(haswell::ondemand::document_reference value, error_code error) + noexcept : implementation_simdjson_result_base(std::forward(value), error) {} + + +simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { + if (error()) { return error(); } + return first.count_elements(); +} +simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { + if (error()) { return error(); } + return first.count_fields(); +} +simdjson_inline simdjson_result simdjson_result::at(size_t index) & noexcept { + if (error()) { return error(); } + return first.at(index); +} +simdjson_inline error_code simdjson_result::rewind() noexcept { + if (error()) { return error(); } + first.rewind(); + return SUCCESS; +} +simdjson_inline simdjson_result simdjson_result::begin() & noexcept { + if (error()) { return error(); } + return first.begin(); +} +simdjson_inline simdjson_result simdjson_result::end() & noexcept { + return {}; +} +simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) & noexcept { + if (error()) { return error(); } + return first.find_field_unordered(key); +} +simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) & noexcept { + if (error()) { return error(); } + return first.find_field_unordered(key); +} +simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) & noexcept { + if (error()) { return error(); } + return first[key]; +} +simdjson_inline simdjson_result simdjson_result::operator[](const char *key) & noexcept { + if (error()) { return error(); } + return first[key]; +} +simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) & noexcept { + if (error()) { return error(); } + return first.find_field(key); +} +simdjson_inline simdjson_result simdjson_result::find_field(const char *key) & noexcept { + if (error()) { return error(); } + return first.find_field(key); +} +simdjson_inline simdjson_result simdjson_result::get_array() & noexcept { + if (error()) { return error(); } + return first.get_array(); +} +simdjson_inline simdjson_result simdjson_result::get_object() & noexcept { + if (error()) { return error(); } + return first.get_object(); +} +simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { + if (error()) { return error(); } + return first.get_uint64(); +} +simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { + if (error()) { return error(); } + return first.get_uint64_in_string(); +} +simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { + if (error()) { return error(); } + return first.get_int64(); +} +simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { + if (error()) { return error(); } + return first.get_int64_in_string(); +} +simdjson_inline simdjson_result simdjson_result::get_double() noexcept { + if (error()) { return error(); } + return first.get_double(); +} +simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { + if (error()) { return error(); } + return first.get_double_in_string(); +} +simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { + if (error()) { return error(); } + return first.get_string(allow_replacement); +} +template +simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { + if (error()) { return error(); } + return first.get_string(receiver, allow_replacement); +} +simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { + if (error()) { return error(); } + return first.get_wobbly_string(); +} +simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { + if (error()) { return error(); } + return first.get_raw_json_string(); +} +simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { + if (error()) { return error(); } + return first.get_bool(); +} +simdjson_inline simdjson_result simdjson_result::get_value() noexcept { + if (error()) { return error(); } + return first.get_value(); +} +simdjson_inline simdjson_result simdjson_result::is_null() noexcept { + if (error()) { return error(); } + return first.is_null(); +} +template +simdjson_inline simdjson_result simdjson_result::get() & noexcept { + if (error()) { return error(); } + return first.get(); +} +template +simdjson_inline simdjson_result simdjson_result::get() && noexcept { + if (error()) { return error(); } + return std::forward(first).get(); +} +template +simdjson_inline error_code simdjson_result::get(T &out) & noexcept { + if (error()) { return error(); } + return first.get(out); +} +template +simdjson_inline error_code simdjson_result::get(T &out) && noexcept { + if (error()) { return error(); } + return std::forward(first).get(out); +} +simdjson_inline simdjson_result simdjson_result::type() noexcept { + if (error()) { return error(); } + return first.type(); +} +simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { + if (error()) { return error(); } + return first.is_scalar(); +} +simdjson_inline simdjson_result simdjson_result::is_string() noexcept { + if (error()) { return error(); } + return first.is_string(); +} +template <> +simdjson_inline error_code simdjson_result::get(haswell::ondemand::document_reference &out) & noexcept { + if (error()) { return error(); } + out = first; + return SUCCESS; +} +template <> +simdjson_inline error_code simdjson_result::get(haswell::ondemand::document_reference &out) && noexcept { + if (error()) { return error(); } + out = first; + return SUCCESS; +} +simdjson_inline simdjson_result simdjson_result::is_negative() noexcept { + if (error()) { return error(); } + return first.is_negative(); +} +simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { + if (error()) { return error(); } + return first.is_integer(); +} +simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { + if (error()) { return error(); } + return first.get_number_type(); +} +simdjson_inline simdjson_result simdjson_result::get_number() noexcept { + if (error()) { return error(); } + return first.get_number(); +} +#if SIMDJSON_EXCEPTIONS +template +simdjson_inline simdjson_result::operator T() noexcept(false) { + static_assert(std::is_same::value == false, "You should not call get when T is a document"); + static_assert(std::is_same::value == false, "You should not call get when T is a document"); + if (error()) { throw simdjson_error(error()); } + return first.get(); +} +simdjson_inline simdjson_result::operator haswell::ondemand::array() & noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator haswell::ondemand::object() & noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator int64_t() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator double() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator haswell::ondemand::raw_json_string() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator bool() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator haswell::ondemand::value() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +#endif + +simdjson_inline simdjson_result simdjson_result::current_location() noexcept { + if (error()) { return error(); } + return first.current_location(); +} + +simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { + if (error()) { return error(); } + return first.raw_json_token(); +} + +simdjson_inline simdjson_result simdjson_result::at_pointer(std::string_view json_pointer) noexcept { + if (error()) { return error(); } + return first.at_pointer(json_pointer); +} + +simdjson_inline simdjson_result simdjson_result::at_path(std::string_view json_path) noexcept { + if (error()) { + return error(); + } + return first.at_path(json_path); +} + +} // namespace simdjson + +#endif // SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H +/* end file simdjson/generic/ondemand/document-inl.h for haswell */ +/* including simdjson/generic/ondemand/document_stream-inl.h for haswell: #include "simdjson/generic/ondemand/document_stream-inl.h" */ +/* begin file simdjson/generic/ondemand/document_stream-inl.h for haswell */ +#ifndef SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H + +/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ +/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document_stream.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/implementation_simdjson_result_base-inl.h" */ +/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ + +#include +#include + +namespace simdjson { +namespace haswell { +namespace ondemand { + +#ifdef SIMDJSON_THREADS_ENABLED + +inline void stage1_worker::finish() { + // After calling "run" someone would call finish() to wait + // for the end of the processing. + // This function will wait until either the thread has done + // the processing or, else, the destructor has been called. + std::unique_lock lock(locking_mutex); + cond_var.wait(lock, [this]{return has_work == false;}); +} + +inline stage1_worker::~stage1_worker() { + // The thread may never outlive the stage1_worker instance + // and will always be stopped/joined before the stage1_worker + // instance is gone. + stop_thread(); +} + +inline void stage1_worker::start_thread() { + std::unique_lock lock(locking_mutex); + if(thread.joinable()) { + return; // This should never happen but we never want to create more than one thread. + } + thread = std::thread([this]{ + while(true) { + std::unique_lock thread_lock(locking_mutex); + // We wait for either "run" or "stop_thread" to be called. + cond_var.wait(thread_lock, [this]{return has_work || !can_work;}); + // If, for some reason, the stop_thread() method was called (i.e., the + // destructor of stage1_worker is called, then we want to immediately destroy + // the thread (and not do any more processing). + if(!can_work) { + break; + } + this->owner->stage1_thread_error = this->owner->run_stage1(*this->stage1_thread_parser, + this->_next_batch_start); + this->has_work = false; + // The condition variable call should be moved after thread_lock.unlock() for performance + // reasons but thread sanitizers may report it as a data race if we do. + // See https://stackoverflow.com/questions/35775501/c-should-condition-variable-be-notified-under-lock + cond_var.notify_one(); // will notify "finish" + thread_lock.unlock(); + } + } + ); +} + + +inline void stage1_worker::stop_thread() { + std::unique_lock lock(locking_mutex); + // We have to make sure that all locks can be released. + can_work = false; + has_work = false; + cond_var.notify_all(); + lock.unlock(); + if(thread.joinable()) { + thread.join(); + } +} + +inline void stage1_worker::run(document_stream * ds, parser * stage1, size_t next_batch_start) { + std::unique_lock lock(locking_mutex); + owner = ds; + _next_batch_start = next_batch_start; + stage1_thread_parser = stage1; + has_work = true; + // The condition variable call should be moved after thread_lock.unlock() for performance + // reasons but thread sanitizers may report it as a data race if we do. + // See https://stackoverflow.com/questions/35775501/c-should-condition-variable-be-notified-under-lock + cond_var.notify_one(); // will notify the thread lock that we have work + lock.unlock(); +} + +#endif // SIMDJSON_THREADS_ENABLED + +simdjson_inline document_stream::document_stream( + ondemand::parser &_parser, + const uint8_t *_buf, size_t _len, size_t _batch_size, bool _allow_comma_separated @@ -59063,7 +61555,6 @@ simdjson_inline document_stream::iterator::iterator(document_stream* _stream, bo } simdjson_inline simdjson_result document_stream::iterator::operator*() noexcept { - //if(stream->error) { return stream->error; } return simdjson_result(stream->doc, stream->error); } @@ -60922,36 +63413,39 @@ simdjson_inline const char * raw_json_string::raw() const noexcept { return rein simdjson_inline bool raw_json_string::is_free_from_unescaped_quote(std::string_view target) noexcept { size_t pos{0}; - // if the content has no escape character, just scan through it quickly! - for(;pos < target.size() && target[pos] != '\\';pos++) {} - // slow path may begin. - bool escaping{false}; - for(;pos < target.size();pos++) { - if((target[pos] == '"') && !escaping) { - return false; - } else if(target[pos] == '\\') { - escaping = !escaping; - } else { - escaping = false; + while(pos < target.size()) { + pos = target.find('"', pos); + if(pos == std::string_view::npos) { return true; } + if(pos != 0 && target[pos-1] != '\\') { return false; } + if(pos > 1 && target[pos-2] == '\\') { + size_t backslash_count{2}; + for(size_t i = 3; i <= pos; i++) { + if(target[pos-i] == '\\') { backslash_count++; } + else { break; } + } + if(backslash_count % 2 == 0) { return false; } } + pos++; } return true; } simdjson_inline bool raw_json_string::is_free_from_unescaped_quote(const char* target) noexcept { size_t pos{0}; - // if the content has no escape character, just scan through it quickly! - for(;target[pos] && target[pos] != '\\';pos++) {} - // slow path may begin. - bool escaping{false}; - for(;target[pos];pos++) { - if((target[pos] == '"') && !escaping) { - return false; - } else if(target[pos] == '\\') { - escaping = !escaping; - } else { - escaping = false; + while(target[pos]) { + const char * result = strchr(target+pos, '"'); + if(result == nullptr) { return true; } + pos = result - target; + if(pos != 0 && target[pos-1] != '\\') { return false; } + if(pos > 1 && target[pos-2] == '\\') { + size_t backslash_count{2}; + for(size_t i = 3; i <= pos; i++) { + if(target[pos-i] == '\\') { backslash_count++; } + else { break; } + } + if(backslash_count % 2 == 0) { return false; } } + pos++; } return true; } @@ -60963,7 +63457,7 @@ simdjson_inline bool raw_json_string::unsafe_is_equal(size_t length, std::string } simdjson_inline bool raw_json_string::unsafe_is_equal(std::string_view target) const noexcept { - // Assumptions: does not contain unescaped quote characters, and + // Assumptions: does not contain unescaped quote characters("), and // the raw content is quote terminated within a valid JSON string. if(target.size() <= SIMDJSON_PADDING) { return (raw()[target.size()] == '"') && !memcmp(raw(), target.data(), target.size()); @@ -61437,775 +63931,230 @@ simdjson_inline simdjson_result::simdjson_res #endif // SIMDJSON_GENERIC_ONDEMAND_TOKEN_ITERATOR_INL_H /* end file simdjson/generic/ondemand/token_iterator-inl.h for haswell */ -/* including simdjson/generic/ondemand/value-inl.h for haswell: #include "simdjson/generic/ondemand/value-inl.h" */ -/* begin file simdjson/generic/ondemand/value-inl.h for haswell */ -#ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H +/* including simdjson/generic/ondemand/value_iterator-inl.h for haswell: #include "simdjson/generic/ondemand/value_iterator-inl.h" */ +/* begin file simdjson/generic/ondemand/value_iterator-inl.h for haswell */ +#ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H /* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ -/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H */ +/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/atomparsing.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/numberparsing.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string-inl.h" */ /* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ namespace simdjson { namespace haswell { namespace ondemand { -simdjson_inline value::value(const value_iterator &_iter) noexcept - : iter{_iter} +simdjson_inline value_iterator::value_iterator( + json_iterator *json_iter, + depth_t depth, + token_position start_position +) noexcept : _json_iter{json_iter}, _depth{depth}, _start_position{start_position} { } -simdjson_inline value value::start(const value_iterator &iter) noexcept { - return iter; -} -simdjson_inline value value::resume(const value_iterator &iter) noexcept { - return iter; -} - -simdjson_inline simdjson_result value::get_array() noexcept { - return array::start(iter); -} -simdjson_inline simdjson_result value::get_object() noexcept { - return object::start(iter); -} -simdjson_inline simdjson_result value::start_or_resume_object() noexcept { - if (iter.at_start()) { - return get_object(); - } else { - return object::resume(iter); - } -} -simdjson_inline simdjson_result value::get_raw_json_string() noexcept { - return iter.get_raw_json_string(); -} -simdjson_inline simdjson_result value::get_string(bool allow_replacement) noexcept { - return iter.get_string(allow_replacement); -} -template -simdjson_inline error_code value::get_string(string_type& receiver, bool allow_replacement) noexcept { - return iter.get_string(receiver, allow_replacement); -} -simdjson_inline simdjson_result value::get_wobbly_string() noexcept { - return iter.get_wobbly_string(); -} -simdjson_inline simdjson_result value::get_double() noexcept { - return iter.get_double(); -} -simdjson_inline simdjson_result value::get_double_in_string() noexcept { - return iter.get_double_in_string(); -} -simdjson_inline simdjson_result value::get_uint64() noexcept { - return iter.get_uint64(); -} -simdjson_inline simdjson_result value::get_uint64_in_string() noexcept { - return iter.get_uint64_in_string(); -} -simdjson_inline simdjson_result value::get_int64() noexcept { - return iter.get_int64(); -} -simdjson_inline simdjson_result value::get_int64_in_string() noexcept { - return iter.get_int64_in_string(); -} -simdjson_inline simdjson_result value::get_bool() noexcept { - return iter.get_bool(); -} -simdjson_inline simdjson_result value::is_null() noexcept { - return iter.is_null(); +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::start_object() noexcept { + SIMDJSON_TRY( start_container('{', "Not an object", "object") ); + return started_object(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_array(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_object(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_raw_json_string(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_string(false); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_number(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_double(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_uint64(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_int64(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_bool(); } -template simdjson_inline error_code value::get(T &out) noexcept { - return get().get(out); +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::start_root_object() noexcept { + SIMDJSON_TRY( start_container('{', "Not an object", "object") ); + return started_root_object(); } -#if SIMDJSON_EXCEPTIONS -template -simdjson_inline value::operator T() noexcept(false) { - return get(); -} -simdjson_inline value::operator array() noexcept(false) { - return get_array(); -} -simdjson_inline value::operator object() noexcept(false) { - return get_object(); -} -simdjson_inline value::operator uint64_t() noexcept(false) { - return get_uint64(); -} -simdjson_inline value::operator int64_t() noexcept(false) { - return get_int64(); -} -simdjson_inline value::operator double() noexcept(false) { - return get_double(); -} -simdjson_inline value::operator std::string_view() noexcept(false) { - return get_string(false); -} -simdjson_inline value::operator raw_json_string() noexcept(false) { - return get_raw_json_string(); -} -simdjson_inline value::operator bool() noexcept(false) { - return get_bool(); -} +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::started_object() noexcept { + assert_at_container_start(); +#if SIMDJSON_DEVELOPMENT_CHECKS + _json_iter->set_start_position(_depth, start_position()); #endif - -simdjson_inline simdjson_result value::begin() & noexcept { - return get_array().begin(); -} -simdjson_inline simdjson_result value::end() & noexcept { - return {}; -} -simdjson_inline simdjson_result value::count_elements() & noexcept { - simdjson_result answer; - auto a = get_array(); - answer = a.count_elements(); - // count_elements leaves you pointing inside the array, at the first element. - // We need to move back so that the user can create a new array (which requires that - // we point at '['). - iter.move_at_start(); - return answer; -} -simdjson_inline simdjson_result value::count_fields() & noexcept { - simdjson_result answer; - auto a = get_object(); - answer = a.count_fields(); - iter.move_at_start(); - return answer; -} -simdjson_inline simdjson_result value::at(size_t index) noexcept { - auto a = get_array(); - return a.at(index); -} - -simdjson_inline simdjson_result value::find_field(std::string_view key) noexcept { - return start_or_resume_object().find_field(key); -} -simdjson_inline simdjson_result value::find_field(const char *key) noexcept { - return start_or_resume_object().find_field(key); -} - -simdjson_inline simdjson_result value::find_field_unordered(std::string_view key) noexcept { - return start_or_resume_object().find_field_unordered(key); -} -simdjson_inline simdjson_result value::find_field_unordered(const char *key) noexcept { - return start_or_resume_object().find_field_unordered(key); -} - -simdjson_inline simdjson_result value::operator[](std::string_view key) noexcept { - return start_or_resume_object()[key]; -} -simdjson_inline simdjson_result value::operator[](const char *key) noexcept { - return start_or_resume_object()[key]; -} - -simdjson_inline simdjson_result value::type() noexcept { - return iter.type(); + if (*_json_iter->peek() == '}') { + logger::log_value(*_json_iter, "empty object"); + _json_iter->return_current_and_advance(); + end_container(); + return false; + } + return true; } -simdjson_inline simdjson_result value::is_scalar() noexcept { - json_type this_type; - auto error = type().get(this_type); - if(error) { return error; } - return ! ((this_type == json_type::array) || (this_type == json_type::object)); +simdjson_warn_unused simdjson_inline error_code value_iterator::check_root_object() noexcept { + // When in streaming mode, we cannot expect peek_last() to be the last structural element of the + // current document. It only works in the normal mode where we have indexed a single document. + // Note that adding a check for 'streaming' is not expensive since we only have at most + // one root element. + if ( ! _json_iter->streaming() ) { + // The following lines do not fully protect against garbage content within the + // object: e.g., `{"a":2} foo }`. Users concerned with garbage content should + // call `at_end()` on the document instance at the end of the processing to + // ensure that the processing has finished at the end. + // + if (*_json_iter->peek_last() != '}') { + _json_iter->abandon(); + return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing } at end"); + } + // If the last character is } *and* the first gibberish character is also '}' + // then on-demand could accidentally go over. So we need additional checks. + // https://github.com/simdjson/simdjson/issues/1834 + // Checking that the document is balanced requires a full scan which is potentially + // expensive, but it only happens in edge cases where the first padding character is + // a closing bracket. + if ((*_json_iter->peek(_json_iter->end_position()) == '}') && (!_json_iter->balanced())) { + _json_iter->abandon(); + // The exact error would require more work. It will typically be an unclosed object. + return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "the document is unbalanced"); + } + } + return SUCCESS; } -simdjson_inline simdjson_result value::is_string() noexcept { - json_type this_type; - auto error = type().get(this_type); +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::started_root_object() noexcept { + auto error = check_root_object(); if(error) { return error; } - return (this_type == json_type::string); -} - - -simdjson_inline bool value::is_negative() noexcept { - return iter.is_negative(); + return started_object(); } -simdjson_inline simdjson_result value::is_integer() noexcept { - return iter.is_integer(); -} -simdjson_warn_unused simdjson_inline simdjson_result value::get_number_type() noexcept { - return iter.get_number_type(); -} -simdjson_warn_unused simdjson_inline simdjson_result value::get_number() noexcept { - return iter.get_number(); +simdjson_warn_unused simdjson_inline error_code value_iterator::end_container() noexcept { +#if SIMDJSON_CHECK_EOF + if (depth() > 1 && at_end()) { return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing parent ] or }"); } + // if (depth() <= 1 && !at_end()) { return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing [ or { at start"); } +#endif // SIMDJSON_CHECK_EOF + _json_iter->ascend_to(depth()-1); + return SUCCESS; } -simdjson_inline std::string_view value::raw_json_token() noexcept { - return std::string_view(reinterpret_cast(iter.peek_start()), iter.peek_start_length()); -} +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::has_next_field() noexcept { + assert_at_next(); -simdjson_inline simdjson_result value::raw_json() noexcept { - json_type t; - SIMDJSON_TRY(type().get(t)); - switch (t) - { - case json_type::array: { - ondemand::array array; - SIMDJSON_TRY(get_array().get(array)); - return array.raw_json(); - } - case json_type::object: { - ondemand::object object; - SIMDJSON_TRY(get_object().get(object)); - return object.raw_json(); - } + // It's illegal to call this unless there are more tokens: anything that ends in } or ] is + // obligated to verify there are more tokens if they are not the top level. + switch (*_json_iter->return_current_and_advance()) { + case '}': + logger::log_end_value(*_json_iter, "object"); + SIMDJSON_TRY( end_container() ); + return false; + case ',': + return true; default: - return raw_json_token(); + return report_error(TAPE_ERROR, "Missing comma between object fields"); } } -simdjson_inline simdjson_result value::current_location() noexcept { - return iter.json_iter().current_location(); -} - -simdjson_inline int32_t value::current_depth() const noexcept{ - return iter.json_iter().depth(); -} +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::find_field_raw(const std::string_view key) noexcept { + error_code error; + bool has_value; + // + // Initially, the object can be in one of a few different places: + // + // 1. The start of the object, at the first field: + // + // ``` + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 2, index 1) + // ``` + if (at_first_field()) { + has_value = true; -inline bool is_pointer_well_formed(std::string_view json_pointer) noexcept { - if (simdjson_unlikely(json_pointer.empty())) { // can't be - return false; - } - if (simdjson_unlikely(json_pointer[0] != '/')) { - return false; - } - size_t escape = json_pointer.find('~'); - if (escape == std::string_view::npos) { - return true; - } - if (escape == json_pointer.size() - 1) { - return false; - } - if (json_pointer[escape + 1] != '0' && json_pointer[escape + 1] != '1') { + // + // 2. When a previous search did not yield a value or the object is empty: + // + // ``` + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 0) + // { } + // ^ (depth 0, index 2) + // ``` + // + } else if (!is_open()) { +#if SIMDJSON_DEVELOPMENT_CHECKS + // If we're past the end of the object, we're being iterated out of order. + // Note: this is not perfect detection. It's possible the user is inside some other object; if so, + // this object iterator will blithely scan that object for fields. + if (_json_iter->depth() < depth() - 1) { return OUT_OF_ORDER_ITERATION; } +#endif return false; - } - return true; -} -simdjson_inline simdjson_result value::at_pointer(std::string_view json_pointer) noexcept { - json_type t; - SIMDJSON_TRY(type().get(t)); - switch (t) - { - case json_type::array: - return (*this).get_array().at_pointer(json_pointer); - case json_type::object: - return (*this).get_object().at_pointer(json_pointer); - default: - // a non-empty string can be invalid, or accessing a primitive (issue 2154) - if (is_pointer_well_formed(json_pointer)) { - return NO_SUCH_FIELD; - } - return INVALID_JSON_POINTER; + // 3. When a previous search found a field or an iterator yielded a value: + // + // ``` + // // When a field was not fully consumed (or not even touched at all) + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 2) + // // When a field was fully consumed + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 1) + // // When the last field was fully consumed + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 1) + // ``` + // + } else { + if ((error = skip_child() )) { abandon(); return error; } + if ((error = has_next_field().get(has_value) )) { abandon(); return error; } +#if SIMDJSON_DEVELOPMENT_CHECKS + if (_json_iter->start_position(_depth) != start_position()) { return OUT_OF_ORDER_ITERATION; } +#endif } -} + while (has_value) { + // Get the key and colon, stopping at the value. + raw_json_string actual_key; + // size_t max_key_length = _json_iter->peek_length() - 2; // -2 for the two quotes + // Note: _json_iter->peek_length() - 2 might overflow if _json_iter->peek_length() < 2. + // field_key() advances the pointer and checks that '"' is found (corresponding to a key). + // The depth is left unchanged by field_key(). + if ((error = field_key().get(actual_key) )) { abandon(); return error; }; + // field_value() will advance and check that we find a ':' separating the + // key and the value. It will also increment the depth by one. + if ((error = field_value() )) { abandon(); return error; } + // If it matches, stop and return + // We could do it this way if we wanted to allow arbitrary + // key content (including escaped quotes). + //if (actual_key.unsafe_is_equal(max_key_length, key)) { + // Instead we do the following which may trigger buffer overruns if the + // user provides an adversarial key (containing a well placed unescaped quote + // character and being longer than the number of bytes remaining in the JSON + // input). + if (actual_key.unsafe_is_equal(key)) { + logger::log_event(*this, "match", key, -2); + // If we return here, then we return while pointing at the ':' that we just checked. + return true; + } -simdjson_inline simdjson_result value::at_path(std::string_view json_path) noexcept { - json_type t; - SIMDJSON_TRY(type().get(t)); - switch (t) { - case json_type::array: - return (*this).get_array().at_path(json_path); - case json_type::object: - return (*this).get_object().at_path(json_path); - default: - return INVALID_JSON_POINTER; + // No match: skip the value and see if , or } is next + logger::log_event(*this, "no match", key, -2); + // The call to skip_child is meant to skip over the value corresponding to the key. + // After skip_child(), we are right before the next comma (',') or the final brace ('}'). + SIMDJSON_TRY( skip_child() ); // Skip the value entirely + // The has_next_field() advances the pointer and check that either ',' or '}' is found. + // It returns true if ',' is found, false otherwise. If anything other than ',' or '}' is found, + // then we are in error and we abort. + if ((error = has_next_field().get(has_value) )) { abandon(); return error; } } -} - -} // namespace ondemand -} // namespace haswell -} // namespace simdjson - -namespace simdjson { -simdjson_inline simdjson_result::simdjson_result( - haswell::ondemand::value &&value -) noexcept : - implementation_simdjson_result_base( - std::forward(value) - ) -{ -} -simdjson_inline simdjson_result::simdjson_result( - error_code error -) noexcept : - implementation_simdjson_result_base(error) -{ -} -simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { - if (error()) { return error(); } - return first.count_elements(); -} -simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { - if (error()) { return error(); } - return first.count_fields(); -} -simdjson_inline simdjson_result simdjson_result::at(size_t index) noexcept { - if (error()) { return error(); } - return first.at(index); -} -simdjson_inline simdjson_result simdjson_result::begin() & noexcept { - if (error()) { return error(); } - return first.begin(); -} -simdjson_inline simdjson_result simdjson_result::end() & noexcept { - if (error()) { return error(); } - return {}; + // If the loop ended, we're out of fields to look at. + return false; } -simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) noexcept { - if (error()) { return error(); } - return first.find_field(key); -} -simdjson_inline simdjson_result simdjson_result::find_field(const char *key) noexcept { - if (error()) { return error(); } - return first.find_field(key); -} +SIMDJSON_PUSH_DISABLE_WARNINGS +SIMDJSON_DISABLE_STRICT_OVERFLOW_WARNING +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::find_field_unordered_raw(const std::string_view key) noexcept { + /** + * When find_field_unordered_raw is called, we can either be pointing at the + * first key, pointing outside (at the closing brace) or if a key was matched + * we can be either pointing right afterthe ':' right before the value (that we need skip), + * or we may have consumed the value and we might be at a comma or at the + * final brace (ready for a call to has_next_field()). + */ + error_code error; + bool has_value; -simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) noexcept { - if (error()) { return error(); } - return first.find_field_unordered(key); -} -simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) noexcept { - if (error()) { return error(); } - return first.find_field_unordered(key); -} - -simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) noexcept { - if (error()) { return error(); } - return first[key]; -} -simdjson_inline simdjson_result simdjson_result::operator[](const char *key) noexcept { - if (error()) { return error(); } - return first[key]; -} - -simdjson_inline simdjson_result simdjson_result::get_array() noexcept { - if (error()) { return error(); } - return first.get_array(); -} -simdjson_inline simdjson_result simdjson_result::get_object() noexcept { - if (error()) { return error(); } - return first.get_object(); -} -simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { - if (error()) { return error(); } - return first.get_uint64(); -} -simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { - if (error()) { return error(); } - return first.get_uint64_in_string(); -} -simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { - if (error()) { return error(); } - return first.get_int64(); -} -simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { - if (error()) { return error(); } - return first.get_int64_in_string(); -} -simdjson_inline simdjson_result simdjson_result::get_double() noexcept { - if (error()) { return error(); } - return first.get_double(); -} -simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { - if (error()) { return error(); } - return first.get_double_in_string(); -} -simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { - if (error()) { return error(); } - return first.get_string(allow_replacement); -} -template -simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { - if (error()) { return error(); } - return first.get_string(receiver, allow_replacement); -} -simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { - if (error()) { return error(); } - return first.get_wobbly_string(); -} -simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { - if (error()) { return error(); } - return first.get_raw_json_string(); -} -simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { - if (error()) { return error(); } - return first.get_bool(); -} -simdjson_inline simdjson_result simdjson_result::is_null() noexcept { - if (error()) { return error(); } - return first.is_null(); -} - -template simdjson_inline simdjson_result simdjson_result::get() noexcept { - if (error()) { return error(); } - return first.get(); -} -template simdjson_inline error_code simdjson_result::get(T &out) noexcept { - if (error()) { return error(); } - return first.get(out); -} - -template<> simdjson_inline simdjson_result simdjson_result::get() noexcept { - if (error()) { return error(); } - return std::move(first); -} -template<> simdjson_inline error_code simdjson_result::get(haswell::ondemand::value &out) noexcept { - if (error()) { return error(); } - out = first; - return SUCCESS; -} - -simdjson_inline simdjson_result simdjson_result::type() noexcept { - if (error()) { return error(); } - return first.type(); -} -simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { - if (error()) { return error(); } - return first.is_scalar(); -} -simdjson_inline simdjson_result simdjson_result::is_string() noexcept { - if (error()) { return error(); } - return first.is_string(); -} -simdjson_inline simdjson_result simdjson_result::is_negative() noexcept { - if (error()) { return error(); } - return first.is_negative(); -} -simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { - if (error()) { return error(); } - return first.is_integer(); -} -simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { - if (error()) { return error(); } - return first.get_number_type(); -} -simdjson_inline simdjson_result simdjson_result::get_number() noexcept { - if (error()) { return error(); } - return first.get_number(); -} -#if SIMDJSON_EXCEPTIONS -template -simdjson_inline simdjson_result::operator T() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return static_cast(first); -} -simdjson_inline simdjson_result::operator haswell::ondemand::array() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator haswell::ondemand::object() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator int64_t() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator double() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator haswell::ondemand::raw_json_string() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator bool() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -#endif - -simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { - if (error()) { return error(); } - return first.raw_json_token(); -} - -simdjson_inline simdjson_result simdjson_result::raw_json() noexcept { - if (error()) { return error(); } - return first.raw_json(); -} - -simdjson_inline simdjson_result simdjson_result::current_location() noexcept { - if (error()) { return error(); } - return first.current_location(); -} - -simdjson_inline simdjson_result simdjson_result::current_depth() const noexcept { - if (error()) { return error(); } - return first.current_depth(); -} - -simdjson_inline simdjson_result simdjson_result::at_pointer( - std::string_view json_pointer) noexcept { - if (error()) { - return error(); - } - return first.at_pointer(json_pointer); -} - -simdjson_inline simdjson_result simdjson_result::at_path( - std::string_view json_path) noexcept { - if (error()) { - return error(); - } - return first.at_path(json_path); -} - -} // namespace simdjson - -#endif // SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H -/* end file simdjson/generic/ondemand/value-inl.h for haswell */ -/* including simdjson/generic/ondemand/value_iterator-inl.h for haswell: #include "simdjson/generic/ondemand/value_iterator-inl.h" */ -/* begin file simdjson/generic/ondemand/value_iterator-inl.h for haswell */ -#ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H - -/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ -/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/atomparsing.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/numberparsing.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string-inl.h" */ -/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ - -namespace simdjson { -namespace haswell { -namespace ondemand { - -simdjson_inline value_iterator::value_iterator( - json_iterator *json_iter, - depth_t depth, - token_position start_position -) noexcept : _json_iter{json_iter}, _depth{depth}, _start_position{start_position} -{ -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::start_object() noexcept { - SIMDJSON_TRY( start_container('{', "Not an object", "object") ); - return started_object(); -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::start_root_object() noexcept { - SIMDJSON_TRY( start_container('{', "Not an object", "object") ); - return started_root_object(); -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::started_object() noexcept { - assert_at_container_start(); -#if SIMDJSON_DEVELOPMENT_CHECKS - _json_iter->set_start_position(_depth, start_position()); -#endif - if (*_json_iter->peek() == '}') { - logger::log_value(*_json_iter, "empty object"); - _json_iter->return_current_and_advance(); - end_container(); - return false; - } - return true; -} - -simdjson_warn_unused simdjson_inline error_code value_iterator::check_root_object() noexcept { - // When in streaming mode, we cannot expect peek_last() to be the last structural element of the - // current document. It only works in the normal mode where we have indexed a single document. - // Note that adding a check for 'streaming' is not expensive since we only have at most - // one root element. - if ( ! _json_iter->streaming() ) { - // The following lines do not fully protect against garbage content within the - // object: e.g., `{"a":2} foo }`. Users concerned with garbage content should - // call `at_end()` on the document instance at the end of the processing to - // ensure that the processing has finished at the end. - // - if (*_json_iter->peek_last() != '}') { - _json_iter->abandon(); - return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing } at end"); - } - // If the last character is } *and* the first gibberish character is also '}' - // then on-demand could accidentally go over. So we need additional checks. - // https://github.com/simdjson/simdjson/issues/1834 - // Checking that the document is balanced requires a full scan which is potentially - // expensive, but it only happens in edge cases where the first padding character is - // a closing bracket. - if ((*_json_iter->peek(_json_iter->end_position()) == '}') && (!_json_iter->balanced())) { - _json_iter->abandon(); - // The exact error would require more work. It will typically be an unclosed object. - return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "the document is unbalanced"); - } - } - return SUCCESS; -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::started_root_object() noexcept { - auto error = check_root_object(); - if(error) { return error; } - return started_object(); -} - -simdjson_warn_unused simdjson_inline error_code value_iterator::end_container() noexcept { -#if SIMDJSON_CHECK_EOF - if (depth() > 1 && at_end()) { return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing parent ] or }"); } - // if (depth() <= 1 && !at_end()) { return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing [ or { at start"); } -#endif // SIMDJSON_CHECK_EOF - _json_iter->ascend_to(depth()-1); - return SUCCESS; -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::has_next_field() noexcept { - assert_at_next(); - - // It's illegal to call this unless there are more tokens: anything that ends in } or ] is - // obligated to verify there are more tokens if they are not the top level. - switch (*_json_iter->return_current_and_advance()) { - case '}': - logger::log_end_value(*_json_iter, "object"); - SIMDJSON_TRY( end_container() ); - return false; - case ',': - return true; - default: - return report_error(TAPE_ERROR, "Missing comma between object fields"); - } -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::find_field_raw(const std::string_view key) noexcept { - error_code error; - bool has_value; - // - // Initially, the object can be in one of a few different places: - // - // 1. The start of the object, at the first field: - // - // ``` - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 2, index 1) - // ``` - if (at_first_field()) { - has_value = true; - - // - // 2. When a previous search did not yield a value or the object is empty: - // - // ``` - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 0) - // { } - // ^ (depth 0, index 2) - // ``` - // - } else if (!is_open()) { -#if SIMDJSON_DEVELOPMENT_CHECKS - // If we're past the end of the object, we're being iterated out of order. - // Note: this is not perfect detection. It's possible the user is inside some other object; if so, - // this object iterator will blithely scan that object for fields. - if (_json_iter->depth() < depth() - 1) { return OUT_OF_ORDER_ITERATION; } -#endif - return false; - - // 3. When a previous search found a field or an iterator yielded a value: - // - // ``` - // // When a field was not fully consumed (or not even touched at all) - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 2) - // // When a field was fully consumed - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 1) - // // When the last field was fully consumed - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 1) - // ``` - // - } else { - if ((error = skip_child() )) { abandon(); return error; } - if ((error = has_next_field().get(has_value) )) { abandon(); return error; } -#if SIMDJSON_DEVELOPMENT_CHECKS - if (_json_iter->start_position(_depth) != start_position()) { return OUT_OF_ORDER_ITERATION; } -#endif - } - while (has_value) { - // Get the key and colon, stopping at the value. - raw_json_string actual_key; - // size_t max_key_length = _json_iter->peek_length() - 2; // -2 for the two quotes - // Note: _json_iter->peek_length() - 2 might overflow if _json_iter->peek_length() < 2. - // field_key() advances the pointer and checks that '"' is found (corresponding to a key). - // The depth is left unchanged by field_key(). - if ((error = field_key().get(actual_key) )) { abandon(); return error; }; - // field_value() will advance and check that we find a ':' separating the - // key and the value. It will also increment the depth by one. - if ((error = field_value() )) { abandon(); return error; } - // If it matches, stop and return - // We could do it this way if we wanted to allow arbitrary - // key content (including escaped quotes). - //if (actual_key.unsafe_is_equal(max_key_length, key)) { - // Instead we do the following which may trigger buffer overruns if the - // user provides an adversarial key (containing a well placed unescaped quote - // character and being longer than the number of bytes remaining in the JSON - // input). - if (actual_key.unsafe_is_equal(key)) { - logger::log_event(*this, "match", key, -2); - // If we return here, then we return while pointing at the ':' that we just checked. - return true; - } - - // No match: skip the value and see if , or } is next - logger::log_event(*this, "no match", key, -2); - // The call to skip_child is meant to skip over the value corresponding to the key. - // After skip_child(), we are right before the next comma (',') or the final brace ('}'). - SIMDJSON_TRY( skip_child() ); // Skip the value entirely - // The has_next_field() advances the pointer and check that either ',' or '}' is found. - // It returns true if ',' is found, false otherwise. If anything other than ',' or '}' is found, - // then we are in error and we abort. - if ((error = has_next_field().get(has_value) )) { abandon(); return error; } - } - - // If the loop ended, we're out of fields to look at. - return false; -} - -SIMDJSON_PUSH_DISABLE_WARNINGS -SIMDJSON_DISABLE_STRICT_OVERFLOW_WARNING -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::find_field_unordered_raw(const std::string_view key) noexcept { - /** - * When find_field_unordered_raw is called, we can either be pointing at the - * first key, pointing outside (at the closing brace) or if a key was matched - * we can be either pointing right afterthe ':' right before the value (that we need skip), - * or we may have consumed the value and we might be at a comma or at the - * final brace (ready for a call to has_next_field()). - */ - error_code error; - bool has_value; - - // First, we scan from that point to the end. - // If we don't find a match, we may loop back around, and scan from the beginning to that point. - token_position search_start = _json_iter->position(); + // First, we scan from that point to the end. + // If we don't find a match, we may loop back around, and scan from the beginning to that point. + token_position search_start = _json_iter->position(); // We want to know whether we need to go back to the beginning. bool at_first = at_first_field(); @@ -62785,6 +64734,8 @@ simdjson_inline simdjson_result value_iterator::is_root_null(bool check_tr if(result) { // we have something that looks like a null. if (check_trailing && !_json_iter->is_single_token()) { return TRAILING_CONTENT; } advance_root_scalar("null"); + } else if (json[0] == 'n') { + return incorrect_type_error("Not a null but starts with n"); } return result; } @@ -63076,6 +65027,8 @@ simdjson_inline simdjson_result::simdjson_res #endif // SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H /* end file simdjson/generic/ondemand/value_iterator-inl.h for haswell */ + + /* end file simdjson/generic/ondemand/amalgamated.h for haswell */ /* including simdjson/haswell/end.h: #include "simdjson/haswell/end.h" */ /* begin file simdjson/haswell/end.h */ @@ -63452,14 +65405,18 @@ namespace simd { // Copies to 'output" all bytes corresponding to a 0 in the mask (interpreted as a bitset). // Passing a 0 value for mask would be equivalent to writing out every byte to output. - // Only the first 32 - count_ones(mask) bytes of the result are significant but 32 bytes + // Only the first 64 - count_ones(mask) bytes of the result are significant but 64 bytes // get written. // Design consideration: it seems like a function with the // signature simd8 compress(uint32_t mask) would be // sensible, but the AVX ISA makes this kind of approach difficult. template simdjson_inline void compress(uint64_t mask, L * output) const { - _mm512_mask_compressstoreu_epi8 (output,~mask,*this); + // we deliberately avoid _mm512_mask_compressstoreu_epi8 for portability + // (AMD Zen4 has terrible performance with it, it is effectively broken) + // _mm512_mask_compressstoreu_epi8 (output,~mask,*this); + __m512i compressed = _mm512_maskz_compress_epi8(~mask, *this); + _mm512_storeu_si512(output, compressed); // could use a mask } template @@ -63844,6 +65801,132 @@ class value_iterator; #endif // SIMDJSON_GENERIC_ONDEMAND_BASE_H /* end file simdjson/generic/ondemand/base.h for icelake */ +/* including simdjson/generic/ondemand/deserialize.h for icelake: #include "simdjson/generic/ondemand/deserialize.h" */ +/* begin file simdjson/generic/ondemand/deserialize.h for icelake */ +#if SIMDJSON_SUPPORTS_DESERIALIZATION + +#ifndef SIMDJSON_ONDEMAND_DESERIALIZE_H +/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ +/* amalgamation skipped (editor-only): #define SIMDJSON_ONDEMAND_DESERIALIZE_H */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array.h" */ +/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ + +#include +namespace simdjson { + +namespace tag_invoke_fn_ns { +void tag_invoke(); + +struct tag_invoke_fn { + template + requires requires(Tag tag, Args &&...args) { + tag_invoke(std::forward(tag), std::forward(args)...); + } + constexpr auto operator()(Tag tag, Args &&...args) const + noexcept(noexcept(tag_invoke(std::forward(tag), + std::forward(args)...))) + -> decltype(tag_invoke(std::forward(tag), + std::forward(args)...)) { + return tag_invoke(std::forward(tag), std::forward(args)...); + } +}; +} // namespace tag_invoke_fn_ns + +inline namespace tag_invoke_ns { +inline constexpr tag_invoke_fn_ns::tag_invoke_fn tag_invoke = {}; +} // namespace tag_invoke_ns + +template +concept tag_invocable = requires(Tag tag, Args... args) { + tag_invoke(std::forward(tag), std::forward(args)...); +}; + +template +concept nothrow_tag_invocable = + tag_invocable && requires(Tag tag, Args... args) { + { + tag_invoke(std::forward(tag), std::forward(args)...) + } noexcept; + }; + +template +using tag_invoke_result = + std::invoke_result; + +template +using tag_invoke_result_t = + std::invoke_result_t; + +template using tag_t = std::decay_t; + + +struct deserialize_tag; + +/// These types are deserializable in a built-in way +template struct is_builtin_deserializable : std::false_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; + +template +concept is_builtin_deserializable_v = is_builtin_deserializable::value; + +template +concept custom_deserializable = tag_invocable; + +template +concept deserializable = custom_deserializable || is_builtin_deserializable_v; + +template +concept nothrow_custom_deserializable = nothrow_tag_invocable; + +// built-in types are noexcept and if an error happens, the value simply gets ignored and the error is returned. +template +concept nothrow_deserializable = nothrow_custom_deserializable || is_builtin_deserializable_v; + +/// Deserialize Tag +inline constexpr struct deserialize_tag { + using value_type = icelake::ondemand::value; + using document_type = icelake::ondemand::document; + using document_reference_type = icelake::ondemand::document_reference; + + // Customization Point for value + template + requires custom_deserializable + [[nodiscard]] constexpr /* error_code */ auto operator()(value_type &object, T& output) const noexcept(nothrow_custom_deserializable) { + return tag_invoke(*this, object, output); + } + + // Customization Point for document + template + requires custom_deserializable + [[nodiscard]] constexpr /* error_code */ auto operator()(document_type &object, T& output) const noexcept(nothrow_custom_deserializable) { + return tag_invoke(*this, object, output); + } + + // Customization Point for document reference + template + requires custom_deserializable + [[nodiscard]] constexpr /* error_code */ auto operator()(document_reference_type &object, T& output) const noexcept(nothrow_custom_deserializable) { + return tag_invoke(*this, object, output); + } + + +} deserialize{}; + +} // namespace simdjson + +#endif // SIMDJSON_ONDEMAND_DESERIALIZE_H +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION + +/* end file simdjson/generic/ondemand/deserialize.h for icelake */ /* including simdjson/generic/ondemand/value_iterator.h for icelake: #include "simdjson/generic/ondemand/value_iterator.h" */ /* begin file simdjson/generic/ondemand/value_iterator.h for icelake */ #ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_H @@ -64348,12 +66431,15 @@ struct simdjson_result : public icelake::impl /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/implementation_simdjson_result_base.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/deserialize.h" */ /* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ +#include + namespace simdjson { + namespace icelake { namespace ondemand { - /** * An ephemeral JSON value returned during iteration. It is only valid for as long as you do * not access more data in the JSON document. @@ -64378,16 +66464,21 @@ class value { * @returns A value of the given type, parsed from the JSON. * @returns INCORRECT_TYPE If the JSON value is not the given type. */ - template simdjson_inline simdjson_result get() noexcept { - // Unless the simdjson library or the user provides an inline implementation, calling this method should - // immediately fail. - static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " - "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " - "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " - " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." - " You may also add support for custom types, see our documentation."); + template + simdjson_inline simdjson_result get() +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(std::is_default_constructible::value, "The specified type is not default constructible."); + T out{}; + SIMDJSON_TRY(get(out)); + return out; } + /** * Get this value as the given type. * @@ -64397,7 +66488,32 @@ class value { * @returns INCORRECT_TYPE If the JSON value is not an object. * @returns SUCCESS If the parse succeeded and the out parameter was set to the value. */ - template simdjson_inline error_code get(T &out) noexcept; + template + simdjson_inline error_code get(T &out) +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { +#if SIMDJSON_SUPPORTS_DESERIALIZATION + if constexpr (custom_deserializable) { + return deserialize(*this, out); + } else { +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION + // Unless the simdjson library or the user provides an inline implementation, calling this method should + // immediately fail. + static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " + "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " + "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " + " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." + " You may also add support for custom types, see our documentation."); + static_cast(out); // to get rid of unused errors + return UNINITIALIZED; +#if SIMDJSON_SUPPORTS_DESERIALIZATION + } +#endif + } /** * Cast this JSON value to an array. @@ -64473,6 +66589,17 @@ class value { * Important: a value should be consumed once. Calling get_string() twice on the same value * is an error. * + * In some instances, you may want to allow replacement of invalid Unicode sequences. + * You may do so by passing the allow_replacement parameter as true. In the following + * example, the string "431924697b\udff0L\u0001Y" is not valid Unicode. By passing true + * to get_string, we allow the replacement of the invalid Unicode sequences with the Unicode + * replacement character (U+FFFD). + * + * simdjson::ondemand::parser parser; + * auto json = R"({"deviceId":"431924697b\udff0L\u0001Y"})"_padded; + * simdjson::ondemand::document doc = parser.iterate(json); + * auto view = doc["deviceId"].get_string(true); + * * @returns An UTF-8 string. The string is stored in the parser and will be invalidated the next * time it parses a document or when it is destroyed. * @returns INCORRECT_TYPE if the JSON value is not a string. @@ -64724,6 +66851,7 @@ class value { simdjson_inline simdjson_result operator[](std::string_view key) noexcept; /** @overload simdjson_inline simdjson_result find_field_unordered(std::string_view key) noexcept; */ simdjson_inline simdjson_result operator[](const char *key) noexcept; + simdjson_result operator[](int) noexcept = delete; /** * Get the type of this JSON value. It does not validate or consume the value. @@ -65091,6 +67219,7 @@ struct simdjson_result : public icelake::implementatio simdjson_inline simdjson_result operator[](std::string_view key) noexcept; /** @overload simdjson_inline simdjson_result find_field_unordered(std::string_view key) noexcept; */ simdjson_inline simdjson_result operator[](const char *key) noexcept; + simdjson_result operator[](int) noexcept = delete; /** * Get the type of this JSON value. @@ -66146,6 +68275,22 @@ class parser { * using a sanitizer that verifies that no uninitialized byte is read, then you should initialize the * SIMDJSON_PADDING bytes to avoid runtime warnings. * + * ### std::string references + * + * If you pass a mutable std::string reference (std::string&), the parser will seek to extend + * its capacity to SIMDJSON_PADDING bytes beyond the end of the string. + * + * Whenever you pass an std::string reference, the parser will access the bytes beyond the end of + * the string but before the end of the allocated memory (std::string::capacity()). + * If you are using a sanitizer that checks for reading uninitialized bytes or std::string's + * container-overflow checks, you may encounter sanitizer warnings. + * You can safely ignore these warnings. Or you can call simdjson::pad(std::string&) to pad the + * string with SIMDJSON_PADDING spaces: this function returns a simdjson::padding_string_view + * which can be be passed to the parser's iterate function: + * + * std::string json = R"({ "foo": 1 } { "foo": 2 } { "foo": 3 } )"; + * document doc = parser.iterate(simdjson::pad(json)); + * * @param json The JSON to parse. * @param len The length of the JSON. * @param capacity The number of bytes allocated in the JSON (must be at least len+SIMDJSON_PADDING). @@ -66340,8 +68485,12 @@ class parser { * behavior of the parser for future operations. */ bool threaded{true}; + #else + /** + * When SIMDJSON_THREADS_ENABLED is not defined, the parser instance cannot use threads. + */ + bool threaded{false}; #endif - /** * Unescape this JSON string, replacing \\ with \, \n with newline, etc. to a user-provided buffer. * The result must be valid UTF-8. @@ -66483,7 +68632,8 @@ class array { * calling this function, if successful, the array is 'rewinded' at its * beginning as if it had never been accessed. If the JSON is malformed (e.g., * there is a missing comma), then an error is returned and it is no longer - * safe to continue. + * safe to continue. Note that count_elements() does not validate the JSON values, + * only the structure of the array. * * To check that an array is empty, it is more performant to use * the is_empty() method. @@ -66761,8 +68911,11 @@ struct simdjson_result : public icelake::impl /* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_H */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/deserialize.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ /* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ + namespace simdjson { namespace icelake { namespace ondemand { @@ -66935,24 +69088,39 @@ class document { * @returns A value of the given type, parsed from the JSON. * @returns INCORRECT_TYPE If the JSON value is not the given type. */ - template simdjson_inline simdjson_result get() & noexcept { - // Unless the simdjson library or the user provides an inline implementation, calling this method should - // immediately fail. - static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " - "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " - "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " - " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." - " You may also add support for custom types, see our documentation."); - } - /** @overload template simdjson_result get() & noexcept */ - template simdjson_deprecated simdjson_inline simdjson_result get() && noexcept { - // Unless the simdjson library or the user provides an inline implementation, calling this method should - // immediately fail. - static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " - "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " - "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " - " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." - " You may also add support for custom types, see our documentation."); + template + simdjson_inline simdjson_result get() & +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(std::is_default_constructible::value, "Cannot initialize the specified type."); + T out{}; + SIMDJSON_TRY(get(out)); + return out; + } + /** + * @overload template simdjson_result get() & noexcept + * + * We disallow the use tag_invoke CPO on a moved document; it may create UB + * if user uses `ondemand::array` or `ondemand::object` in their custom type. + * + * The member function is still remains specialize-able for compatibility + * reasons, but we completely disallow its use when a tag_invoke customization + * is provided. + */ + template + simdjson_inline simdjson_result get() && +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(!std::is_same::value && !std::is_same::value, "You should never hold either an ondemand::array or ondemand::object without a corresponding ondemand::document being alive; that would be Undefined Behaviour."); + return static_cast(*this).get(); } /** @@ -66966,7 +69134,32 @@ class document { * @returns INCORRECT_TYPE If the JSON value is not an object. * @returns SUCCESS If the parse succeeded and the out parameter was set to the value. */ - template simdjson_inline error_code get(T &out) & noexcept; + template + simdjson_inline error_code get(T &out) & +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { +#if SIMDJSON_SUPPORTS_DESERIALIZATION + if constexpr (custom_deserializable) { + return deserialize(*this, out); + } else { +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION + // Unless the simdjson library or the user provides an inline implementation, calling this method should + // immediately fail. + static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " + "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " + "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " + " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." + " You may also add support for custom types, see our documentation."); + static_cast(out); // to get rid of unused errors + return UNINITIALIZED; +#if SIMDJSON_SUPPORTS_DESERIALIZATION + } +#endif + } /** @overload template error_code get(T &out) & noexcept */ template simdjson_deprecated simdjson_inline error_code get(T &out) && noexcept; @@ -67068,7 +69261,8 @@ class document { * calling this function, if successful, the array is 'rewinded' at its * beginning as if it had never been accessed. If the JSON is malformed (e.g., * there is a missing comma), then an error is returned and it is no longer - * safe to continue. + * safe to continue. Note that count_elements() does not validate the JSON values, + * only the structure of the array. */ simdjson_inline simdjson_result count_elements() & noexcept; /** @@ -67180,6 +69374,7 @@ class document { simdjson_inline simdjson_result operator[](std::string_view key) & noexcept; /** @overload simdjson_inline simdjson_result find_field_unordered(std::string_view key) & noexcept; */ simdjson_inline simdjson_result operator[](const char *key) & noexcept; + simdjson_result operator[](int) & noexcept = delete; /** * Get the type of this JSON value. It does not validate or consume the value. @@ -67448,6 +69643,11 @@ class document { /** * A document_reference is a thin wrapper around a document reference instance. + * The document_reference instances are used primarily/solely for streams of JSON + * documents. They differ from document instances when parsing a scalar value + * (a document that is not an array or an object). In the case of a document, + * we expect the document to be fully consumed. In the case of a document_reference, + * we allow trailing content. */ class document_reference { public: @@ -67473,7 +69673,70 @@ class document_reference { simdjson_inline simdjson_result get_value() noexcept; simdjson_inline simdjson_result is_null() noexcept; - template simdjson_inline simdjson_result get() & noexcept; + template + simdjson_inline simdjson_result get() & +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(std::is_default_constructible::value, "Cannot initialize the specified type."); + T out{}; + SIMDJSON_TRY(get(out)); + return out; + } + template + simdjson_inline simdjson_result get() && +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(!std::is_same::value && !std::is_same::value, "You should never hold either an ondemand::array or ondemand::object without a corresponding ondemand::document_reference being alive; that would be Undefined Behaviour."); + return static_cast(*this).get(); + } + + /** + * Get this value as the given type. + * + * Supported types: object, array, raw_json_string, string_view, uint64_t, int64_t, double, bool, value + * + * Be mindful that the document instance must remain in scope while you are accessing object, array and value instances. + * + * @param out This is set to a value of the given type, parsed from the JSON. If there is an error, this may not be initialized. + * @returns INCORRECT_TYPE If the JSON value is not an object. + * @returns SUCCESS If the parse succeeded and the out parameter was set to the value. + */ + template + simdjson_inline error_code get(T &out) & +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { +#if SIMDJSON_SUPPORTS_DESERIALIZATION + if constexpr (custom_deserializable) { + return deserialize(*this, out); + } else { +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION + // Unless the simdjson library or the user provides an inline implementation, calling this method should + // immediately fail. + static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " + "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " + "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " + " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." + " You may also add support for custom types, see our documentation."); + static_cast(out); // to get rid of unused errors + return UNINITIALIZED; +#if SIMDJSON_SUPPORTS_DESERIALIZATION + } +#endif + } + /** @overload template error_code get(T &out) & noexcept */ + template simdjson_inline error_code get(T &out) && noexcept; simdjson_inline simdjson_result raw_json() noexcept; simdjson_inline operator document&() const noexcept; #if SIMDJSON_EXCEPTIONS @@ -67498,6 +69761,7 @@ class document_reference { simdjson_inline simdjson_result find_field(const char *key) & noexcept; simdjson_inline simdjson_result operator[](std::string_view key) & noexcept; simdjson_inline simdjson_result operator[](const char *key) & noexcept; + simdjson_result operator[](int) & noexcept = delete; simdjson_inline simdjson_result find_field_unordered(std::string_view key) & noexcept; simdjson_inline simdjson_result find_field_unordered(const char *key) & noexcept; @@ -67576,6 +69840,7 @@ struct simdjson_result : public icelake::implementa simdjson_inline simdjson_result find_field(const char *key) & noexcept; simdjson_inline simdjson_result operator[](std::string_view key) & noexcept; simdjson_inline simdjson_result operator[](const char *key) & noexcept; + simdjson_result operator[](int) & noexcept = delete; simdjson_inline simdjson_result find_field_unordered(std::string_view key) & noexcept; simdjson_inline simdjson_result find_field_unordered(const char *key) & noexcept; simdjson_inline simdjson_result type() noexcept; @@ -67625,8 +69890,14 @@ struct simdjson_result : public icelake:: simdjson_inline simdjson_result get_bool() noexcept; simdjson_inline simdjson_result get_value() noexcept; simdjson_inline simdjson_result is_null() noexcept; + + template simdjson_inline simdjson_result get() & noexcept; + template simdjson_inline simdjson_result get() && noexcept; + + template simdjson_inline error_code get(T &out) & noexcept; + template simdjson_inline error_code get(T &out) && noexcept; #if SIMDJSON_EXCEPTIONS - template ::value == false>::type> + template explicit simdjson_inline operator T() noexcept(false); simdjson_inline operator icelake::ondemand::array() & noexcept(false); simdjson_inline operator icelake::ondemand::object() & noexcept(false); @@ -67647,6 +69918,7 @@ struct simdjson_result : public icelake:: simdjson_inline simdjson_result find_field(const char *key) & noexcept; simdjson_inline simdjson_result operator[](std::string_view key) & noexcept; simdjson_inline simdjson_result operator[](const char *key) & noexcept; + simdjson_result operator[](int) & noexcept = delete; simdjson_inline simdjson_result find_field_unordered(std::string_view key) & noexcept; simdjson_inline simdjson_result find_field_unordered(const char *key) & noexcept; simdjson_inline simdjson_result type() noexcept; @@ -68577,6 +70849,177 @@ inline std::ostream& operator<<(std::ostream& out, simdjson::simdjson_result +#include + +namespace simdjson { +template +constexpr bool require_custom_serialization = false; + +////////////////////////////// +// Number deserialization +////////////////////////////// + +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, auto &val, T &out) noexcept { + using limits = std::numeric_limits; + + uint64_t x; + SIMDJSON_TRY(val.get_uint64().get(x)); + if (x > (limits::max)()) { + return NUMBER_OUT_OF_RANGE; + } + out = static_cast(x); + return SUCCESS; +} + +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, auto &val, T &out) noexcept { + double x; + SIMDJSON_TRY(val.get_double().get(x)); + out = static_cast(x); + return SUCCESS; +} + +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, auto &val, T &out) noexcept { + using limits = std::numeric_limits; + + int64_t x; + SIMDJSON_TRY(val.get_int64().get(x)); + if (x > (limits::max)() || x < (limits::min)()) { + return NUMBER_OUT_OF_RANGE; + } + out = static_cast(x); + return SUCCESS; +} + +/** + * STL containers have several constructors including one that takes a single + * size argument. Thus, some compilers (Visual Studio) will not be able to + * disambiguate between the size and container constructor. Users should + * explicitly specify the type of the container as needed: e.g., + * doc.get>(). + */ +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, ValT &val, T &out) noexcept(false) { + using value_type = typename std::remove_cvref_t::value_type; + static_assert( + deserializable, + "The specified type inside the container must itself be deserializable"); + static_assert( + std::is_default_constructible_v, + "The specified type inside the container must default constructible."); + + icelake::ondemand::array arr; + SIMDJSON_TRY(val.get_array().get(arr)); + for (auto v : arr) { + if constexpr (concepts::returns_reference) { + if (auto const err = v.get().get(concepts::emplace_one(out)); + err) { + // If an error occurs, the empty element that we just inserted gets + // removed. We're not using a temp variable because if T is a heavy + // type, we want the valid path to be the fast path and the slow path be + // the path that has errors in it. + if constexpr (requires { out.pop_back(); }) { + static_cast(out.pop_back()); + } + return err; + } + } else { + value_type temp; + if (auto const err = v.get().get(temp); err) { + return err; + } + concepts::emplace_one(out, std::move(temp)); + } + } + return SUCCESS; +} + + + +/** + * This CPO (Customization Point Object) will help deserialize into + * smart pointers. + * + * If constructing T is nothrow, this conversion should be nothrow as well since + * we return MEMALLOC if we're not able to allocate memory instead of throwing + * the error message. + * + * @tparam T The type inside the smart pointer + * @tparam ValT document/value type + * @param val document/value + * @param out a reference to the smart pointer + * @return status of the conversion + */ +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, ValT &val, T &out) noexcept(nothrow_deserializable::element_type, ValT>) { + using element_type = typename std::remove_cvref_t::element_type; + + // For better error messages, don't use these as constraints on + // the tag_invoke CPO. + static_assert( + deserializable, + "The specified type inside the unique_ptr must itself be deserializable"); + static_assert( + std::is_default_constructible_v, + "The specified type inside the unique_ptr must default constructible."); + + auto ptr = new (std::nothrow) element_type(); + if (ptr == nullptr) { + return MEMALLOC; + } + SIMDJSON_TRY(val.template get(*ptr)); + out.reset(ptr); + return SUCCESS; +} + +/** + * This CPO (Customization Point Object) will help deserialize into optional types. + */ +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, ValT &val, T &out) noexcept(nothrow_deserializable::value_type, ValT>) { + using value_type = typename std::remove_cvref_t::value_type; + + static_assert( + deserializable, + "The specified type inside the unique_ptr must itself be deserializable"); + static_assert( + std::is_default_constructible_v, + "The specified type inside the unique_ptr must default constructible."); + + if (!out) { + out.emplace(); + } + SIMDJSON_TRY(val.template get(out.value())); + return SUCCESS; +} + +} // namespace simdjson + +#endif // SIMDJSON_ONDEMAND_DESERIALIZE_H +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION +/* end file simdjson/generic/ondemand/std_deserialize.h for icelake */ + // Inline definitions /* including simdjson/generic/ondemand/array-inl.h for icelake: #include "simdjson/generic/ondemand/array-inl.h" */ /* begin file simdjson/generic/ondemand/array-inl.h for icelake */ @@ -68584,6 +71027,7 @@ inline std::ostream& operator<<(std::ostream& out, simdjson::simdjson_result array::at_pointer(std::string_view json_pointer) n return child; } -inline std::string json_path_to_pointer_conversion(std::string_view json_path) { - if (json_path.empty() || (json_path.front() != '.' && - json_path.front() != '[')) { - return "-1"; // This is just a sentinel value, the caller should check for this and return an error. - } - - std::string result; - // Reserve space to reduce allocations, adjusting for potential increases due - // to escaping. - result.reserve(json_path.size() * 2); - - size_t i = 0; - - while (i < json_path.length()) { - if (json_path[i] == '.') { - result += '/'; - } else if (json_path[i] == '[') { - result += '/'; - ++i; // Move past the '[' - while (i < json_path.length() && json_path[i] != ']') { - if (json_path[i] == '~') { - result += "~0"; - } else if (json_path[i] == '/') { - result += "~1"; - } else { - result += json_path[i]; - } - ++i; - } - if (i == json_path.length() || json_path[i] != ']') { - return "-1"; // Using sentinel value that will be handled as an error by the caller. - } - } else { - if (json_path[i] == '~') { - result += "~0"; - } else if (json_path[i] == '/') { - result += "~1"; - } else { - result += json_path[i]; - } - } - ++i; - } - - return result; -} - inline simdjson_result array::at_path(std::string_view json_path) noexcept { auto json_pointer = json_path_to_pointer_conversion(json_path); if (json_pointer == "-1") { return INVALID_JSON_POINTER; } @@ -68945,313 +71342,276 @@ simdjson_inline simdjson_result &simdjson_res #endif // SIMDJSON_GENERIC_ONDEMAND_ARRAY_ITERATOR_INL_H /* end file simdjson/generic/ondemand/array_iterator-inl.h for icelake */ -/* including simdjson/generic/ondemand/document-inl.h for icelake: #include "simdjson/generic/ondemand/document-inl.h" */ -/* begin file simdjson/generic/ondemand/document-inl.h for icelake */ -#ifndef SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H +/* including simdjson/generic/ondemand/value-inl.h for icelake: #include "simdjson/generic/ondemand/value-inl.h" */ +/* begin file simdjson/generic/ondemand/value-inl.h for icelake */ +#ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H /* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ -/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H */ +/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array_iterator.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator-inl.h" */ /* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ namespace simdjson { namespace icelake { namespace ondemand { -simdjson_inline document::document(ondemand::json_iterator &&_iter) noexcept - : iter{std::forward(_iter)} +simdjson_inline value::value(const value_iterator &_iter) noexcept + : iter{_iter} { - logger::log_start_value(iter, "document"); } - -simdjson_inline document document::start(json_iterator &&iter) noexcept { - return document(std::forward(iter)); +simdjson_inline value value::start(const value_iterator &iter) noexcept { + return iter; } - -inline void document::rewind() noexcept { - iter.rewind(); +simdjson_inline value value::resume(const value_iterator &iter) noexcept { + return iter; } -inline std::string document::to_debug_string() noexcept { - return iter.to_string(); +simdjson_inline simdjson_result value::get_array() noexcept { + return array::start(iter); } - -inline simdjson_result document::current_location() const noexcept { - return iter.current_location(); +simdjson_inline simdjson_result value::get_object() noexcept { + return object::start(iter); } - -inline int32_t document::current_depth() const noexcept { - return iter.depth(); +simdjson_inline simdjson_result value::start_or_resume_object() noexcept { + if (iter.at_start()) { + return get_object(); + } else { + return object::resume(iter); + } } -inline bool document::at_end() const noexcept { - return iter.at_end(); +simdjson_inline simdjson_result value::get_raw_json_string() noexcept { + return iter.get_raw_json_string(); } - - -inline bool document::is_alive() noexcept { - return iter.is_alive(); +simdjson_inline simdjson_result value::get_string(bool allow_replacement) noexcept { + return iter.get_string(allow_replacement); } -simdjson_inline value_iterator document::resume_value_iterator() noexcept { - return value_iterator(&iter, 1, iter.root_position()); +template +simdjson_inline error_code value::get_string(string_type& receiver, bool allow_replacement) noexcept { + return iter.get_string(receiver, allow_replacement); } -simdjson_inline value_iterator document::get_root_value_iterator() noexcept { - return resume_value_iterator(); +simdjson_inline simdjson_result value::get_wobbly_string() noexcept { + return iter.get_wobbly_string(); } -simdjson_inline simdjson_result document::start_or_resume_object() noexcept { - if (iter.at_root()) { - return get_object(); - } else { - return object::resume(resume_value_iterator()); - } +simdjson_inline simdjson_result value::get_double() noexcept { + return iter.get_double(); } -simdjson_inline simdjson_result document::get_value() noexcept { - // Make sure we start any arrays or objects before returning, so that start_root_() - // gets called. - - // It is the convention throughout the code that the macro `SIMDJSON_DEVELOPMENT_CHECKS` determines whether - // we check for OUT_OF_ORDER_ITERATION. Proper on::demand code should never trigger this error. -#if SIMDJSON_DEVELOPMENT_CHECKS - if (!iter.at_root()) { return OUT_OF_ORDER_ITERATION; } -#endif - // assert_at_root() serves two purposes: in Debug mode, whether or not - // SIMDJSON_DEVELOPMENT_CHECKS is set or not, it checks that we are at the root of - // the document (this will typically be redundant). In release mode, it generates - // SIMDJSON_ASSUME statements to allow the compiler to make assumptions. - iter.assert_at_root(); - switch (*iter.peek()) { - case '[': { - // The following lines check that the document ends with ]. - auto value_iterator = get_root_value_iterator(); - auto error = value_iterator.check_root_array(); - if(error) { return error; } - return value(get_root_value_iterator()); - } - case '{': { - // The following lines would check that the document ends with }. - auto value_iterator = get_root_value_iterator(); - auto error = value_iterator.check_root_object(); - if(error) { return error; } - return value(get_root_value_iterator()); - } - default: - // Unfortunately, scalar documents are a special case in simdjson and they cannot - // be safely converted to value instances. - return SCALAR_DOCUMENT_AS_VALUE; - } +simdjson_inline simdjson_result value::get_double_in_string() noexcept { + return iter.get_double_in_string(); } -simdjson_inline simdjson_result document::get_array() & noexcept { - auto value = get_root_value_iterator(); - return array::start_root(value); +simdjson_inline simdjson_result value::get_uint64() noexcept { + return iter.get_uint64(); } -simdjson_inline simdjson_result document::get_object() & noexcept { - auto value = get_root_value_iterator(); - return object::start_root(value); +simdjson_inline simdjson_result value::get_uint64_in_string() noexcept { + return iter.get_uint64_in_string(); } - -/** - * We decided that calling 'get_double()' on the JSON document '1.233 blabla' should - * give an error, so we check for trailing content. We want to disallow trailing - * content. - * Thus, in several implementations below, we pass a 'true' parameter value to - * a get_root_value_iterator() method: this indicates that we disallow trailing content. - */ - -simdjson_inline simdjson_result document::get_uint64() noexcept { - return get_root_value_iterator().get_root_uint64(true); +simdjson_inline simdjson_result value::get_int64() noexcept { + return iter.get_int64(); } -simdjson_inline simdjson_result document::get_uint64_in_string() noexcept { - return get_root_value_iterator().get_root_uint64_in_string(true); +simdjson_inline simdjson_result value::get_int64_in_string() noexcept { + return iter.get_int64_in_string(); } -simdjson_inline simdjson_result document::get_int64() noexcept { - return get_root_value_iterator().get_root_int64(true); +simdjson_inline simdjson_result value::get_bool() noexcept { + return iter.get_bool(); } -simdjson_inline simdjson_result document::get_int64_in_string() noexcept { - return get_root_value_iterator().get_root_int64_in_string(true); +simdjson_inline simdjson_result value::is_null() noexcept { + return iter.is_null(); } -simdjson_inline simdjson_result document::get_double() noexcept { - return get_root_value_iterator().get_root_double(true); + +template<> simdjson_inline simdjson_result value::get() noexcept { return get_array(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_object(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_raw_json_string(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_string(false); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_number(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_double(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_uint64(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_int64(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_bool(); } + + +template<> simdjson_inline error_code value::get(array& out) noexcept { return get_array().get(out); } +template<> simdjson_inline error_code value::get(object& out) noexcept { return get_object().get(out); } +template<> simdjson_inline error_code value::get(raw_json_string& out) noexcept { return get_raw_json_string().get(out); } +template<> simdjson_inline error_code value::get(std::string_view& out) noexcept { return get_string(false).get(out); } +template<> simdjson_inline error_code value::get(number& out) noexcept { return get_number().get(out); } +template<> simdjson_inline error_code value::get(double& out) noexcept { return get_double().get(out); } +template<> simdjson_inline error_code value::get(uint64_t& out) noexcept { return get_uint64().get(out); } +template<> simdjson_inline error_code value::get(int64_t& out) noexcept { return get_int64().get(out); } +template<> simdjson_inline error_code value::get(bool& out) noexcept { return get_bool().get(out); } + +#if SIMDJSON_EXCEPTIONS +template +simdjson_inline value::operator T() noexcept(false) { + return get(); } -simdjson_inline simdjson_result document::get_double_in_string() noexcept { - return get_root_value_iterator().get_root_double_in_string(true); +simdjson_inline value::operator array() noexcept(false) { + return get_array(); } -simdjson_inline simdjson_result document::get_string(bool allow_replacement) noexcept { - return get_root_value_iterator().get_root_string(true, allow_replacement); +simdjson_inline value::operator object() noexcept(false) { + return get_object(); } -template -simdjson_inline error_code document::get_string(string_type& receiver, bool allow_replacement) noexcept { - return get_root_value_iterator().get_root_string(receiver, true, allow_replacement); +simdjson_inline value::operator uint64_t() noexcept(false) { + return get_uint64(); } -simdjson_inline simdjson_result document::get_wobbly_string() noexcept { - return get_root_value_iterator().get_root_wobbly_string(true); +simdjson_inline value::operator int64_t() noexcept(false) { + return get_int64(); } -simdjson_inline simdjson_result document::get_raw_json_string() noexcept { - return get_root_value_iterator().get_root_raw_json_string(true); +simdjson_inline value::operator double() noexcept(false) { + return get_double(); } -simdjson_inline simdjson_result document::get_bool() noexcept { - return get_root_value_iterator().get_root_bool(true); +simdjson_inline value::operator std::string_view() noexcept(false) { + return get_string(false); } -simdjson_inline simdjson_result document::is_null() noexcept { - return get_root_value_iterator().is_root_null(true); +simdjson_inline value::operator raw_json_string() noexcept(false) { + return get_raw_json_string(); } +simdjson_inline value::operator bool() noexcept(false) { + return get_bool(); +} +#endif -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_array(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_object(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_raw_json_string(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_string(false); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_double(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_uint64(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_int64(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_bool(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_value(); } - -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_raw_json_string(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_string(false); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_double(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_uint64(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_int64(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_bool(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_value(); } - -template simdjson_inline error_code document::get(T &out) & noexcept { - return get().get(out); +simdjson_inline simdjson_result value::begin() & noexcept { + return get_array().begin(); } -template simdjson_deprecated simdjson_inline error_code document::get(T &out) && noexcept { - return std::forward(*this).get().get(out); +simdjson_inline simdjson_result value::end() & noexcept { + return {}; } - -#if SIMDJSON_EXCEPTIONS -template -simdjson_deprecated simdjson_inline document::operator T() && noexcept(false) { return get(); } -template -simdjson_inline document::operator T() & noexcept(false) { return get(); } -simdjson_inline document::operator array() & noexcept(false) { return get_array(); } -simdjson_inline document::operator object() & noexcept(false) { return get_object(); } -simdjson_inline document::operator uint64_t() noexcept(false) { return get_uint64(); } -simdjson_inline document::operator int64_t() noexcept(false) { return get_int64(); } -simdjson_inline document::operator double() noexcept(false) { return get_double(); } -simdjson_inline document::operator std::string_view() noexcept(false) { return get_string(false); } -simdjson_inline document::operator raw_json_string() noexcept(false) { return get_raw_json_string(); } -simdjson_inline document::operator bool() noexcept(false) { return get_bool(); } -simdjson_inline document::operator value() noexcept(false) { return get_value(); } - -#endif -simdjson_inline simdjson_result document::count_elements() & noexcept { +simdjson_inline simdjson_result value::count_elements() & noexcept { + simdjson_result answer; auto a = get_array(); - simdjson_result answer = a.count_elements(); - /* If there was an array, we are now left pointing at its first element. */ - if(answer.error() == SUCCESS) { rewind(); } + answer = a.count_elements(); + // count_elements leaves you pointing inside the array, at the first element. + // We need to move back so that the user can create a new array (which requires that + // we point at '['). + iter.move_at_start(); return answer; } -simdjson_inline simdjson_result document::count_fields() & noexcept { +simdjson_inline simdjson_result value::count_fields() & noexcept { + simdjson_result answer; auto a = get_object(); - simdjson_result answer = a.count_fields(); - /* If there was an object, we are now left pointing at its first element. */ - if(answer.error() == SUCCESS) { rewind(); } + answer = a.count_fields(); + iter.move_at_start(); return answer; } -simdjson_inline simdjson_result document::at(size_t index) & noexcept { +simdjson_inline simdjson_result value::at(size_t index) noexcept { auto a = get_array(); return a.at(index); } -simdjson_inline simdjson_result document::begin() & noexcept { - return get_array().begin(); -} -simdjson_inline simdjson_result document::end() & noexcept { - return {}; -} -simdjson_inline simdjson_result document::find_field(std::string_view key) & noexcept { +simdjson_inline simdjson_result value::find_field(std::string_view key) noexcept { return start_or_resume_object().find_field(key); } -simdjson_inline simdjson_result document::find_field(const char *key) & noexcept { +simdjson_inline simdjson_result value::find_field(const char *key) noexcept { return start_or_resume_object().find_field(key); } -simdjson_inline simdjson_result document::find_field_unordered(std::string_view key) & noexcept { + +simdjson_inline simdjson_result value::find_field_unordered(std::string_view key) noexcept { return start_or_resume_object().find_field_unordered(key); } -simdjson_inline simdjson_result document::find_field_unordered(const char *key) & noexcept { +simdjson_inline simdjson_result value::find_field_unordered(const char *key) noexcept { return start_or_resume_object().find_field_unordered(key); } -simdjson_inline simdjson_result document::operator[](std::string_view key) & noexcept { + +simdjson_inline simdjson_result value::operator[](std::string_view key) noexcept { return start_or_resume_object()[key]; } -simdjson_inline simdjson_result document::operator[](const char *key) & noexcept { +simdjson_inline simdjson_result value::operator[](const char *key) noexcept { return start_or_resume_object()[key]; } -simdjson_inline error_code document::consume() noexcept { - auto error = iter.skip_child(0); - if(error) { iter.abandon(); } - return error; -} - -simdjson_inline simdjson_result document::raw_json() noexcept { - auto _iter = get_root_value_iterator(); - const uint8_t * starting_point{_iter.peek_start()}; - auto error = consume(); - if(error) { return error; } - // After 'consume()', we could be left pointing just beyond the document, but that - // is ok because we are not going to dereference the final pointer position, we just - // use it to compute the length in bytes. - const uint8_t * final_point{iter.unsafe_pointer()}; - return std::string_view(reinterpret_cast(starting_point), size_t(final_point - starting_point)); -} - -simdjson_inline simdjson_result document::type() noexcept { - return get_root_value_iterator().type(); +simdjson_inline simdjson_result value::type() noexcept { + return iter.type(); } -simdjson_inline simdjson_result document::is_scalar() noexcept { +simdjson_inline simdjson_result value::is_scalar() noexcept { json_type this_type; auto error = type().get(this_type); if(error) { return error; } return ! ((this_type == json_type::array) || (this_type == json_type::object)); } -simdjson_inline simdjson_result document::is_string() noexcept { +simdjson_inline simdjson_result value::is_string() noexcept { json_type this_type; auto error = type().get(this_type); if(error) { return error; } return (this_type == json_type::string); } -simdjson_inline bool document::is_negative() noexcept { - return get_root_value_iterator().is_root_negative(); + +simdjson_inline bool value::is_negative() noexcept { + return iter.is_negative(); } -simdjson_inline simdjson_result document::is_integer() noexcept { - return get_root_value_iterator().is_root_integer(true); +simdjson_inline simdjson_result value::is_integer() noexcept { + return iter.is_integer(); +} +simdjson_warn_unused simdjson_inline simdjson_result value::get_number_type() noexcept { + return iter.get_number_type(); +} +simdjson_warn_unused simdjson_inline simdjson_result value::get_number() noexcept { + return iter.get_number(); } -simdjson_inline simdjson_result document::get_number_type() noexcept { - return get_root_value_iterator().get_root_number_type(true); +simdjson_inline std::string_view value::raw_json_token() noexcept { + return std::string_view(reinterpret_cast(iter.peek_start()), iter.peek_start_length()); } -simdjson_inline simdjson_result document::get_number() noexcept { - return get_root_value_iterator().get_root_number(true); +simdjson_inline simdjson_result value::raw_json() noexcept { + json_type t; + SIMDJSON_TRY(type().get(t)); + switch (t) + { + case json_type::array: { + ondemand::array array; + SIMDJSON_TRY(get_array().get(array)); + return array.raw_json(); + } + case json_type::object: { + ondemand::object object; + SIMDJSON_TRY(get_object().get(object)); + return object.raw_json(); + } + default: + return raw_json_token(); + } } +simdjson_inline simdjson_result value::current_location() noexcept { + return iter.json_iter().current_location(); +} -simdjson_inline simdjson_result document::raw_json_token() noexcept { - auto _iter = get_root_value_iterator(); - return std::string_view(reinterpret_cast(_iter.peek_start()), _iter.peek_root_length()); +simdjson_inline int32_t value::current_depth() const noexcept{ + return iter.json_iter().depth(); } -simdjson_inline simdjson_result document::at_pointer(std::string_view json_pointer) noexcept { - rewind(); // Rewind the document each time at_pointer is called - if (json_pointer.empty()) { - return this->get_value(); +inline bool is_pointer_well_formed(std::string_view json_pointer) noexcept { + if (simdjson_unlikely(json_pointer.empty())) { // can't be + return false; + } + if (simdjson_unlikely(json_pointer[0] != '/')) { + return false; + } + size_t escape = json_pointer.find('~'); + if (escape == std::string_view::npos) { + return true; + } + if (escape == json_pointer.size() - 1) { + return false; + } + if (json_pointer[escape + 1] != '0' && json_pointer[escape + 1] != '1') { + return false; } + return true; +} + +simdjson_inline simdjson_result value::at_pointer(std::string_view json_pointer) noexcept { json_type t; SIMDJSON_TRY(type().get(t)); switch (t) @@ -69261,15 +71621,15 @@ simdjson_inline simdjson_result document::at_pointer(std::string_view jso case json_type::object: return (*this).get_object().at_pointer(json_pointer); default: + // a non-empty string can be invalid, or accessing a primitive (issue 2154) + if (is_pointer_well_formed(json_pointer)) { + return NO_SUCH_FIELD; + } return INVALID_JSON_POINTER; } } -simdjson_inline simdjson_result document::at_path(std::string_view json_path) noexcept { - rewind(); // Rewind the document each time at_pointer is called - if (json_path.empty()) { - return this->get_value(); - } +simdjson_inline simdjson_result value::at_path(std::string_view json_path) noexcept { json_type t; SIMDJSON_TRY(type().get(t)); switch (t) { @@ -69288,680 +71648,1319 @@ simdjson_inline simdjson_result document::at_path(std::string_view json_p namespace simdjson { -simdjson_inline simdjson_result::simdjson_result( - icelake::ondemand::document &&value +simdjson_inline simdjson_result::simdjson_result( + icelake::ondemand::value &&value ) noexcept : - implementation_simdjson_result_base( - std::forward(value) + implementation_simdjson_result_base( + std::forward(value) ) { } -simdjson_inline simdjson_result::simdjson_result( +simdjson_inline simdjson_result::simdjson_result( error_code error ) noexcept : - implementation_simdjson_result_base( - error - ) + implementation_simdjson_result_base(error) { } -simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { +simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { if (error()) { return error(); } return first.count_elements(); } -simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { +simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { if (error()) { return error(); } return first.count_fields(); } -simdjson_inline simdjson_result simdjson_result::at(size_t index) & noexcept { +simdjson_inline simdjson_result simdjson_result::at(size_t index) noexcept { if (error()) { return error(); } return first.at(index); } -simdjson_inline error_code simdjson_result::rewind() noexcept { - if (error()) { return error(); } - first.rewind(); - return SUCCESS; -} -simdjson_inline simdjson_result simdjson_result::begin() & noexcept { +simdjson_inline simdjson_result simdjson_result::begin() & noexcept { if (error()) { return error(); } return first.begin(); } -simdjson_inline simdjson_result simdjson_result::end() & noexcept { +simdjson_inline simdjson_result simdjson_result::end() & noexcept { + if (error()) { return error(); } return {}; } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) & noexcept { + +simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) noexcept { if (error()) { return error(); } - return first.find_field_unordered(key); + return first.find_field(key); } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field(const char *key) noexcept { if (error()) { return error(); } - return first.find_field_unordered(key); + return first.find_field(key); } -simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) & noexcept { + +simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) noexcept { if (error()) { return error(); } - return first[key]; + return first.find_field_unordered(key); } -simdjson_inline simdjson_result simdjson_result::operator[](const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) noexcept { if (error()) { return error(); } - return first[key]; + return first.find_field_unordered(key); } -simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) & noexcept { + +simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) noexcept { if (error()) { return error(); } - return first.find_field(key); + return first[key]; } -simdjson_inline simdjson_result simdjson_result::find_field(const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::operator[](const char *key) noexcept { if (error()) { return error(); } - return first.find_field(key); + return first[key]; } -simdjson_inline simdjson_result simdjson_result::get_array() & noexcept { + +simdjson_inline simdjson_result simdjson_result::get_array() noexcept { if (error()) { return error(); } return first.get_array(); } -simdjson_inline simdjson_result simdjson_result::get_object() & noexcept { +simdjson_inline simdjson_result simdjson_result::get_object() noexcept { if (error()) { return error(); } return first.get_object(); } -simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { +simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { if (error()) { return error(); } return first.get_uint64(); } -simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { if (error()) { return error(); } return first.get_uint64_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { +simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { if (error()) { return error(); } return first.get_int64(); } -simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { if (error()) { return error(); } return first.get_int64_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_double() noexcept { +simdjson_inline simdjson_result simdjson_result::get_double() noexcept { if (error()) { return error(); } return first.get_double(); } -simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { if (error()) { return error(); } return first.get_double_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { +simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { if (error()) { return error(); } return first.get_string(allow_replacement); } template -simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { +simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { if (error()) { return error(); } return first.get_string(receiver, allow_replacement); } -simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { if (error()) { return error(); } return first.get_wobbly_string(); } -simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { if (error()) { return error(); } return first.get_raw_json_string(); } -simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { +simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { if (error()) { return error(); } return first.get_bool(); } -simdjson_inline simdjson_result simdjson_result::get_value() noexcept { - if (error()) { return error(); } - return first.get_value(); -} -simdjson_inline simdjson_result simdjson_result::is_null() noexcept { +simdjson_inline simdjson_result simdjson_result::is_null() noexcept { if (error()) { return error(); } return first.is_null(); } -template -simdjson_inline simdjson_result simdjson_result::get() & noexcept { +template<> simdjson_inline error_code simdjson_result::get(icelake::ondemand::value &out) noexcept { if (error()) { return error(); } - return first.get(); + out = first; + return SUCCESS; } -template -simdjson_deprecated simdjson_inline simdjson_result simdjson_result::get() && noexcept { + +template simdjson_inline simdjson_result simdjson_result::get() noexcept { if (error()) { return error(); } - return std::forward(first).get(); + return first.get(); } -template -simdjson_inline error_code simdjson_result::get(T &out) & noexcept { +template simdjson_inline error_code simdjson_result::get(T &out) noexcept { if (error()) { return error(); } return first.get(out); } -template -simdjson_inline error_code simdjson_result::get(T &out) && noexcept { - if (error()) { return error(); } - return std::forward(first).get(out); -} -template<> simdjson_inline simdjson_result simdjson_result::get() & noexcept = delete; -template<> simdjson_deprecated simdjson_inline simdjson_result simdjson_result::get() && noexcept { - if (error()) { return error(); } - return std::forward(first); -} -template<> simdjson_inline error_code simdjson_result::get(icelake::ondemand::document &out) & noexcept = delete; -template<> simdjson_inline error_code simdjson_result::get(icelake::ondemand::document &out) && noexcept { +template<> simdjson_inline simdjson_result simdjson_result::get() noexcept { if (error()) { return error(); } - out = std::forward(first); - return SUCCESS; + return std::move(first); } -simdjson_inline simdjson_result simdjson_result::type() noexcept { +simdjson_inline simdjson_result simdjson_result::type() noexcept { if (error()) { return error(); } return first.type(); } - -simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { +simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { if (error()) { return error(); } return first.is_scalar(); } - -simdjson_inline simdjson_result simdjson_result::is_string() noexcept { +simdjson_inline simdjson_result simdjson_result::is_string() noexcept { if (error()) { return error(); } return first.is_string(); } - -simdjson_inline bool simdjson_result::is_negative() noexcept { +simdjson_inline simdjson_result simdjson_result::is_negative() noexcept { if (error()) { return error(); } return first.is_negative(); } - -simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { +simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { if (error()) { return error(); } return first.is_integer(); } - -simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { +simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { if (error()) { return error(); } return first.get_number_type(); } - -simdjson_inline simdjson_result simdjson_result::get_number() noexcept { +simdjson_inline simdjson_result simdjson_result::get_number() noexcept { if (error()) { return error(); } return first.get_number(); } - - #if SIMDJSON_EXCEPTIONS -template ::value == false>::type> -simdjson_inline simdjson_result::operator T() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator icelake::ondemand::array() & noexcept(false) { +template +simdjson_inline simdjson_result::operator T() noexcept(false) { if (error()) { throw simdjson_error(error()); } - return first; + return first.get(); } -simdjson_inline simdjson_result::operator icelake::ondemand::object() & noexcept(false) { +simdjson_inline simdjson_result::operator icelake::ondemand::array() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { +simdjson_inline simdjson_result::operator icelake::ondemand::object() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator int64_t() noexcept(false) { +simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator double() noexcept(false) { +simdjson_inline simdjson_result::operator int64_t() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { +simdjson_inline simdjson_result::operator double() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator icelake::ondemand::raw_json_string() noexcept(false) { +simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator bool() noexcept(false) { +simdjson_inline simdjson_result::operator icelake::ondemand::raw_json_string() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator icelake::ondemand::value() noexcept(false) { +simdjson_inline simdjson_result::operator bool() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } #endif - -simdjson_inline simdjson_result simdjson_result::current_location() noexcept { +simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { if (error()) { return error(); } - return first.current_location(); + return first.raw_json_token(); } -simdjson_inline bool simdjson_result::at_end() const noexcept { +simdjson_inline simdjson_result simdjson_result::raw_json() noexcept { if (error()) { return error(); } - return first.at_end(); + return first.raw_json(); } - -simdjson_inline int32_t simdjson_result::current_depth() const noexcept { +simdjson_inline simdjson_result simdjson_result::current_location() noexcept { if (error()) { return error(); } - return first.current_depth(); + return first.current_location(); } -simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { +simdjson_inline simdjson_result simdjson_result::current_depth() const noexcept { if (error()) { return error(); } - return first.raw_json_token(); + return first.current_depth(); } -simdjson_inline simdjson_result simdjson_result::at_pointer(std::string_view json_pointer) noexcept { - if (error()) { return error(); } +simdjson_inline simdjson_result simdjson_result::at_pointer( + std::string_view json_pointer) noexcept { + if (error()) { + return error(); + } return first.at_pointer(json_pointer); } -simdjson_inline simdjson_result simdjson_result::at_path(std::string_view json_path) noexcept { - if (error()) { return error(); } +simdjson_inline simdjson_result simdjson_result::at_path( + std::string_view json_path) noexcept { + if (error()) { + return error(); + } return first.at_path(json_path); } } // namespace simdjson +#endif // SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H +/* end file simdjson/generic/ondemand/value-inl.h for icelake */ +/* including simdjson/generic/ondemand/document-inl.h for icelake: #include "simdjson/generic/ondemand/document-inl.h" */ +/* begin file simdjson/generic/ondemand/document-inl.h for icelake */ +#ifndef SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H + +/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ +/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/deserialize.h" */ +/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ namespace simdjson { namespace icelake { namespace ondemand { -simdjson_inline document_reference::document_reference() noexcept : doc{nullptr} {} -simdjson_inline document_reference::document_reference(document &d) noexcept : doc(&d) {} -simdjson_inline void document_reference::rewind() noexcept { doc->rewind(); } -simdjson_inline simdjson_result document_reference::get_array() & noexcept { return doc->get_array(); } -simdjson_inline simdjson_result document_reference::get_object() & noexcept { return doc->get_object(); } -/** - * The document_reference instances are used primarily/solely for streams of JSON - * documents. - * We decided that calling 'get_double()' on the JSON document '1.233 blabla' should - * give an error, so we check for trailing content. - * - * However, for streams of JSON documents, we want to be able to start from - * "321" "321" "321" - * and parse it successfully as a stream of JSON documents, calling get_uint64_in_string() - * successfully each time. - * - * To achieve this result, we pass a 'false' to a get_root_value_iterator() method: - * this indicates that we allow trailing content. - */ -simdjson_inline simdjson_result document_reference::get_uint64() noexcept { return doc->get_root_value_iterator().get_root_uint64(false); } -simdjson_inline simdjson_result document_reference::get_uint64_in_string() noexcept { return doc->get_root_value_iterator().get_root_uint64_in_string(false); } -simdjson_inline simdjson_result document_reference::get_int64() noexcept { return doc->get_root_value_iterator().get_root_int64(false); } -simdjson_inline simdjson_result document_reference::get_int64_in_string() noexcept { return doc->get_root_value_iterator().get_root_int64_in_string(false); } -simdjson_inline simdjson_result document_reference::get_double() noexcept { return doc->get_root_value_iterator().get_root_double(false); } -simdjson_inline simdjson_result document_reference::get_double_in_string() noexcept { return doc->get_root_value_iterator().get_root_double(false); } -simdjson_inline simdjson_result document_reference::get_string(bool allow_replacement) noexcept { return doc->get_root_value_iterator().get_root_string(false, allow_replacement); } -template -simdjson_inline error_code document_reference::get_string(string_type& receiver, bool allow_replacement) noexcept { return doc->get_root_value_iterator().get_root_string(receiver, false, allow_replacement); } -simdjson_inline simdjson_result document_reference::get_wobbly_string() noexcept { return doc->get_root_value_iterator().get_root_wobbly_string(false); } -simdjson_inline simdjson_result document_reference::get_raw_json_string() noexcept { return doc->get_root_value_iterator().get_root_raw_json_string(false); } -simdjson_inline simdjson_result document_reference::get_bool() noexcept { return doc->get_root_value_iterator().get_root_bool(false); } -simdjson_inline simdjson_result document_reference::get_value() noexcept { return doc->get_value(); } -simdjson_inline simdjson_result document_reference::is_null() noexcept { return doc->get_root_value_iterator().is_root_null(false); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_array(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_object(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_raw_json_string(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_string(false); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_double(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_uint64(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_int64(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_bool(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_value(); } -#if SIMDJSON_EXCEPTIONS -template -simdjson_inline document_reference::operator T() noexcept(false) { return get(); } -simdjson_inline document_reference::operator array() & noexcept(false) { return array(*doc); } -simdjson_inline document_reference::operator object() & noexcept(false) { return object(*doc); } -simdjson_inline document_reference::operator uint64_t() noexcept(false) { return get_uint64(); } -simdjson_inline document_reference::operator int64_t() noexcept(false) { return get_int64(); } -simdjson_inline document_reference::operator double() noexcept(false) { return get_double(); } -simdjson_inline document_reference::operator std::string_view() noexcept(false) { return std::string_view(*doc); } -simdjson_inline document_reference::operator raw_json_string() noexcept(false) { return get_raw_json_string(); } -simdjson_inline document_reference::operator bool() noexcept(false) { return get_bool(); } -simdjson_inline document_reference::operator value() noexcept(false) { return value(*doc); } -#endif -simdjson_inline simdjson_result document_reference::count_elements() & noexcept { return doc->count_elements(); } -simdjson_inline simdjson_result document_reference::count_fields() & noexcept { return doc->count_fields(); } -simdjson_inline simdjson_result document_reference::at(size_t index) & noexcept { return doc->at(index); } -simdjson_inline simdjson_result document_reference::begin() & noexcept { return doc->begin(); } -simdjson_inline simdjson_result document_reference::end() & noexcept { return doc->end(); } -simdjson_inline simdjson_result document_reference::find_field(std::string_view key) & noexcept { return doc->find_field(key); } -simdjson_inline simdjson_result document_reference::find_field(const char *key) & noexcept { return doc->find_field(key); } -simdjson_inline simdjson_result document_reference::operator[](std::string_view key) & noexcept { return (*doc)[key]; } -simdjson_inline simdjson_result document_reference::operator[](const char *key) & noexcept { return (*doc)[key]; } -simdjson_inline simdjson_result document_reference::find_field_unordered(std::string_view key) & noexcept { return doc->find_field_unordered(key); } -simdjson_inline simdjson_result document_reference::find_field_unordered(const char *key) & noexcept { return doc->find_field_unordered(key); } -simdjson_inline simdjson_result document_reference::type() noexcept { return doc->type(); } -simdjson_inline simdjson_result document_reference::is_scalar() noexcept { return doc->is_scalar(); } -simdjson_inline simdjson_result document_reference::is_string() noexcept { return doc->is_string(); } -simdjson_inline simdjson_result document_reference::current_location() noexcept { return doc->current_location(); } -simdjson_inline int32_t document_reference::current_depth() const noexcept { return doc->current_depth(); } -simdjson_inline bool document_reference::is_negative() noexcept { return doc->is_negative(); } -simdjson_inline simdjson_result document_reference::is_integer() noexcept { return doc->get_root_value_iterator().is_root_integer(false); } -simdjson_inline simdjson_result document_reference::get_number_type() noexcept { return doc->get_root_value_iterator().get_root_number_type(false); } -simdjson_inline simdjson_result document_reference::get_number() noexcept { return doc->get_root_value_iterator().get_root_number(false); } -simdjson_inline simdjson_result document_reference::raw_json_token() noexcept { return doc->raw_json_token(); } -simdjson_inline simdjson_result document_reference::at_pointer(std::string_view json_pointer) noexcept { return doc->at_pointer(json_pointer); } -simdjson_inline simdjson_result document_reference::at_path(std::string_view json_path) noexcept { return doc->at_path(json_path); } -simdjson_inline simdjson_result document_reference::raw_json() noexcept { return doc->raw_json();} -simdjson_inline document_reference::operator document&() const noexcept { return *doc; } +simdjson_inline document::document(ondemand::json_iterator &&_iter) noexcept + : iter{std::forward(_iter)} +{ + logger::log_start_value(iter, "document"); +} -} // namespace ondemand -} // namespace icelake -} // namespace simdjson +simdjson_inline document document::start(json_iterator &&iter) noexcept { + return document(std::forward(iter)); +} +inline void document::rewind() noexcept { + iter.rewind(); +} +inline std::string document::to_debug_string() noexcept { + return iter.to_string(); +} -namespace simdjson { -simdjson_inline simdjson_result::simdjson_result(icelake::ondemand::document_reference value, error_code error) - noexcept : implementation_simdjson_result_base(std::forward(value), error) {} +inline simdjson_result document::current_location() const noexcept { + return iter.current_location(); +} +inline int32_t document::current_depth() const noexcept { + return iter.depth(); +} -simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { - if (error()) { return error(); } - return first.count_elements(); +inline bool document::at_end() const noexcept { + return iter.at_end(); } -simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { - if (error()) { return error(); } - return first.count_fields(); + + +inline bool document::is_alive() noexcept { + return iter.is_alive(); } -simdjson_inline simdjson_result simdjson_result::at(size_t index) & noexcept { - if (error()) { return error(); } - return first.at(index); +simdjson_inline value_iterator document::resume_value_iterator() noexcept { + return value_iterator(&iter, 1, iter.root_position()); } -simdjson_inline error_code simdjson_result::rewind() noexcept { - if (error()) { return error(); } - first.rewind(); - return SUCCESS; +simdjson_inline value_iterator document::get_root_value_iterator() noexcept { + return resume_value_iterator(); } -simdjson_inline simdjson_result simdjson_result::begin() & noexcept { - if (error()) { return error(); } - return first.begin(); +simdjson_inline simdjson_result document::start_or_resume_object() noexcept { + if (iter.at_root()) { + return get_object(); + } else { + return object::resume(resume_value_iterator()); + } } -simdjson_inline simdjson_result simdjson_result::end() & noexcept { - return {}; +simdjson_inline simdjson_result document::get_value() noexcept { + // Make sure we start any arrays or objects before returning, so that start_root_() + // gets called. + + // It is the convention throughout the code that the macro `SIMDJSON_DEVELOPMENT_CHECKS` determines whether + // we check for OUT_OF_ORDER_ITERATION. Proper on::demand code should never trigger this error. +#if SIMDJSON_DEVELOPMENT_CHECKS + if (!iter.at_root()) { return OUT_OF_ORDER_ITERATION; } +#endif + // assert_at_root() serves two purposes: in Debug mode, whether or not + // SIMDJSON_DEVELOPMENT_CHECKS is set or not, it checks that we are at the root of + // the document (this will typically be redundant). In release mode, it generates + // SIMDJSON_ASSUME statements to allow the compiler to make assumptions. + iter.assert_at_root(); + switch (*iter.peek()) { + case '[': { + // The following lines check that the document ends with ]. + auto value_iterator = get_root_value_iterator(); + auto error = value_iterator.check_root_array(); + if(error) { return error; } + return value(get_root_value_iterator()); + } + case '{': { + // The following lines would check that the document ends with }. + auto value_iterator = get_root_value_iterator(); + auto error = value_iterator.check_root_object(); + if(error) { return error; } + return value(get_root_value_iterator()); + } + default: + // Unfortunately, scalar documents are a special case in simdjson and they cannot + // be safely converted to value instances. + return SCALAR_DOCUMENT_AS_VALUE; + } } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) & noexcept { - if (error()) { return error(); } +simdjson_inline simdjson_result document::get_array() & noexcept { + auto value = get_root_value_iterator(); + return array::start_root(value); +} +simdjson_inline simdjson_result document::get_object() & noexcept { + auto value = get_root_value_iterator(); + return object::start_root(value); +} + +/** + * We decided that calling 'get_double()' on the JSON document '1.233 blabla' should + * give an error, so we check for trailing content. We want to disallow trailing + * content. + * Thus, in several implementations below, we pass a 'true' parameter value to + * a get_root_value_iterator() method: this indicates that we disallow trailing content. + */ + +simdjson_inline simdjson_result document::get_uint64() noexcept { + return get_root_value_iterator().get_root_uint64(true); +} +simdjson_inline simdjson_result document::get_uint64_in_string() noexcept { + return get_root_value_iterator().get_root_uint64_in_string(true); +} +simdjson_inline simdjson_result document::get_int64() noexcept { + return get_root_value_iterator().get_root_int64(true); +} +simdjson_inline simdjson_result document::get_int64_in_string() noexcept { + return get_root_value_iterator().get_root_int64_in_string(true); +} +simdjson_inline simdjson_result document::get_double() noexcept { + return get_root_value_iterator().get_root_double(true); +} +simdjson_inline simdjson_result document::get_double_in_string() noexcept { + return get_root_value_iterator().get_root_double_in_string(true); +} +simdjson_inline simdjson_result document::get_string(bool allow_replacement) noexcept { + return get_root_value_iterator().get_root_string(true, allow_replacement); +} +template +simdjson_inline error_code document::get_string(string_type& receiver, bool allow_replacement) noexcept { + return get_root_value_iterator().get_root_string(receiver, true, allow_replacement); +} +simdjson_inline simdjson_result document::get_wobbly_string() noexcept { + return get_root_value_iterator().get_root_wobbly_string(true); +} +simdjson_inline simdjson_result document::get_raw_json_string() noexcept { + return get_root_value_iterator().get_root_raw_json_string(true); +} +simdjson_inline simdjson_result document::get_bool() noexcept { + return get_root_value_iterator().get_root_bool(true); +} +simdjson_inline simdjson_result document::is_null() noexcept { + return get_root_value_iterator().is_root_null(true); +} + +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_array(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_object(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_raw_json_string(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_string(false); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_double(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_uint64(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_int64(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_bool(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_value(); } + +template<> simdjson_inline error_code document::get(array& out) & noexcept { return get_array().get(out); } +template<> simdjson_inline error_code document::get(object& out) & noexcept { return get_object().get(out); } +template<> simdjson_inline error_code document::get(raw_json_string& out) & noexcept { return get_raw_json_string().get(out); } +template<> simdjson_inline error_code document::get(std::string_view& out) & noexcept { return get_string(false).get(out); } +template<> simdjson_inline error_code document::get(double& out) & noexcept { return get_double().get(out); } +template<> simdjson_inline error_code document::get(uint64_t& out) & noexcept { return get_uint64().get(out); } +template<> simdjson_inline error_code document::get(int64_t& out) & noexcept { return get_int64().get(out); } +template<> simdjson_inline error_code document::get(bool& out) & noexcept { return get_bool().get(out); } +template<> simdjson_inline error_code document::get(value& out) & noexcept { return get_value().get(out); } + +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_raw_json_string(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_string(false); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_double(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_uint64(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_int64(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_bool(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_value(); } + +#if SIMDJSON_EXCEPTIONS +template +simdjson_deprecated simdjson_inline document::operator T() && noexcept(false) { return get(); } +template +simdjson_inline document::operator T() & noexcept(false) { return get(); } +simdjson_inline document::operator array() & noexcept(false) { return get_array(); } +simdjson_inline document::operator object() & noexcept(false) { return get_object(); } +simdjson_inline document::operator uint64_t() noexcept(false) { return get_uint64(); } +simdjson_inline document::operator int64_t() noexcept(false) { return get_int64(); } +simdjson_inline document::operator double() noexcept(false) { return get_double(); } +simdjson_inline document::operator std::string_view() noexcept(false) { return get_string(false); } +simdjson_inline document::operator raw_json_string() noexcept(false) { return get_raw_json_string(); } +simdjson_inline document::operator bool() noexcept(false) { return get_bool(); } +simdjson_inline document::operator value() noexcept(false) { return get_value(); } + +#endif +simdjson_inline simdjson_result document::count_elements() & noexcept { + auto a = get_array(); + simdjson_result answer = a.count_elements(); + /* If there was an array, we are now left pointing at its first element. */ + if(answer.error() == SUCCESS) { rewind(); } + return answer; +} +simdjson_inline simdjson_result document::count_fields() & noexcept { + auto a = get_object(); + simdjson_result answer = a.count_fields(); + /* If there was an object, we are now left pointing at its first element. */ + if(answer.error() == SUCCESS) { rewind(); } + return answer; +} +simdjson_inline simdjson_result document::at(size_t index) & noexcept { + auto a = get_array(); + return a.at(index); +} +simdjson_inline simdjson_result document::begin() & noexcept { + return get_array().begin(); +} +simdjson_inline simdjson_result document::end() & noexcept { + return {}; +} + +simdjson_inline simdjson_result document::find_field(std::string_view key) & noexcept { + return start_or_resume_object().find_field(key); +} +simdjson_inline simdjson_result document::find_field(const char *key) & noexcept { + return start_or_resume_object().find_field(key); +} +simdjson_inline simdjson_result document::find_field_unordered(std::string_view key) & noexcept { + return start_or_resume_object().find_field_unordered(key); +} +simdjson_inline simdjson_result document::find_field_unordered(const char *key) & noexcept { + return start_or_resume_object().find_field_unordered(key); +} +simdjson_inline simdjson_result document::operator[](std::string_view key) & noexcept { + return start_or_resume_object()[key]; +} +simdjson_inline simdjson_result document::operator[](const char *key) & noexcept { + return start_or_resume_object()[key]; +} + +simdjson_inline error_code document::consume() noexcept { + bool scalar = false; + auto error = is_scalar().get(scalar); + if(error) { return error; } + if(scalar) { + iter.return_current_and_advance(); + return SUCCESS; + } + error = iter.skip_child(0); + if(error) { iter.abandon(); } + return error; +} + +simdjson_inline simdjson_result document::raw_json() noexcept { + auto _iter = get_root_value_iterator(); + const uint8_t * starting_point{_iter.peek_start()}; + auto error = consume(); + if(error) { return error; } + // After 'consume()', we could be left pointing just beyond the document, but that + // is ok because we are not going to dereference the final pointer position, we just + // use it to compute the length in bytes. + const uint8_t * final_point{iter.unsafe_pointer()}; + return std::string_view(reinterpret_cast(starting_point), size_t(final_point - starting_point)); +} + +simdjson_inline simdjson_result document::type() noexcept { + return get_root_value_iterator().type(); +} + +simdjson_inline simdjson_result document::is_scalar() noexcept { + // For more speed, we could do: + // return iter.is_single_token(); + json_type this_type; + auto error = type().get(this_type); + if(error) { return error; } + return ! ((this_type == json_type::array) || (this_type == json_type::object)); +} + +simdjson_inline simdjson_result document::is_string() noexcept { + json_type this_type; + auto error = type().get(this_type); + if(error) { return error; } + return (this_type == json_type::string); +} + +simdjson_inline bool document::is_negative() noexcept { + return get_root_value_iterator().is_root_negative(); +} + +simdjson_inline simdjson_result document::is_integer() noexcept { + return get_root_value_iterator().is_root_integer(true); +} + +simdjson_inline simdjson_result document::get_number_type() noexcept { + return get_root_value_iterator().get_root_number_type(true); +} + +simdjson_inline simdjson_result document::get_number() noexcept { + return get_root_value_iterator().get_root_number(true); +} + + +simdjson_inline simdjson_result document::raw_json_token() noexcept { + auto _iter = get_root_value_iterator(); + return std::string_view(reinterpret_cast(_iter.peek_start()), _iter.peek_root_length()); +} + +simdjson_inline simdjson_result document::at_pointer(std::string_view json_pointer) noexcept { + rewind(); // Rewind the document each time at_pointer is called + if (json_pointer.empty()) { + return this->get_value(); + } + json_type t; + SIMDJSON_TRY(type().get(t)); + switch (t) + { + case json_type::array: + return (*this).get_array().at_pointer(json_pointer); + case json_type::object: + return (*this).get_object().at_pointer(json_pointer); + default: + return INVALID_JSON_POINTER; + } +} + +simdjson_inline simdjson_result document::at_path(std::string_view json_path) noexcept { + rewind(); // Rewind the document each time at_pointer is called + if (json_path.empty()) { + return this->get_value(); + } + json_type t; + SIMDJSON_TRY(type().get(t)); + switch (t) { + case json_type::array: + return (*this).get_array().at_path(json_path); + case json_type::object: + return (*this).get_object().at_path(json_path); + default: + return INVALID_JSON_POINTER; + } +} + +} // namespace ondemand +} // namespace icelake +} // namespace simdjson + +namespace simdjson { + +simdjson_inline simdjson_result::simdjson_result( + icelake::ondemand::document &&value +) noexcept : + implementation_simdjson_result_base( + std::forward(value) + ) +{ +} +simdjson_inline simdjson_result::simdjson_result( + error_code error +) noexcept : + implementation_simdjson_result_base( + error + ) +{ +} +simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { + if (error()) { return error(); } + return first.count_elements(); +} +simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { + if (error()) { return error(); } + return first.count_fields(); +} +simdjson_inline simdjson_result simdjson_result::at(size_t index) & noexcept { + if (error()) { return error(); } + return first.at(index); +} +simdjson_inline error_code simdjson_result::rewind() noexcept { + if (error()) { return error(); } + first.rewind(); + return SUCCESS; +} +simdjson_inline simdjson_result simdjson_result::begin() & noexcept { + if (error()) { return error(); } + return first.begin(); +} +simdjson_inline simdjson_result simdjson_result::end() & noexcept { + return {}; +} +simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) & noexcept { + if (error()) { return error(); } return first.find_field_unordered(key); } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) & noexcept { if (error()) { return error(); } return first.find_field_unordered(key); } -simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) & noexcept { +simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) & noexcept { if (error()) { return error(); } return first[key]; } -simdjson_inline simdjson_result simdjson_result::operator[](const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::operator[](const char *key) & noexcept { if (error()) { return error(); } return first[key]; } -simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) & noexcept { if (error()) { return error(); } return first.find_field(key); } -simdjson_inline simdjson_result simdjson_result::find_field(const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field(const char *key) & noexcept { if (error()) { return error(); } return first.find_field(key); } -simdjson_inline simdjson_result simdjson_result::get_array() & noexcept { +simdjson_inline simdjson_result simdjson_result::get_array() & noexcept { if (error()) { return error(); } return first.get_array(); } -simdjson_inline simdjson_result simdjson_result::get_object() & noexcept { +simdjson_inline simdjson_result simdjson_result::get_object() & noexcept { if (error()) { return error(); } return first.get_object(); } -simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { +simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { if (error()) { return error(); } return first.get_uint64(); } -simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { if (error()) { return error(); } return first.get_uint64_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { +simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { if (error()) { return error(); } return first.get_int64(); } -simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { if (error()) { return error(); } return first.get_int64_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_double() noexcept { +simdjson_inline simdjson_result simdjson_result::get_double() noexcept { if (error()) { return error(); } return first.get_double(); } -simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { if (error()) { return error(); } return first.get_double_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { +simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { if (error()) { return error(); } return first.get_string(allow_replacement); } template -simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { +simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { if (error()) { return error(); } return first.get_string(receiver, allow_replacement); } -simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { if (error()) { return error(); } return first.get_wobbly_string(); } -simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { if (error()) { return error(); } return first.get_raw_json_string(); } -simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { +simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { if (error()) { return error(); } return first.get_bool(); } -simdjson_inline simdjson_result simdjson_result::get_value() noexcept { +simdjson_inline simdjson_result simdjson_result::get_value() noexcept { if (error()) { return error(); } return first.get_value(); } -simdjson_inline simdjson_result simdjson_result::is_null() noexcept { +simdjson_inline simdjson_result simdjson_result::is_null() noexcept { if (error()) { return error(); } return first.is_null(); } -simdjson_inline simdjson_result simdjson_result::type() noexcept { + +template +simdjson_inline simdjson_result simdjson_result::get() & noexcept { + if (error()) { return error(); } + return first.get(); +} +template +simdjson_deprecated simdjson_inline simdjson_result simdjson_result::get() && noexcept { + if (error()) { return error(); } + return std::forward(first).get(); +} +template +simdjson_inline error_code simdjson_result::get(T &out) & noexcept { + if (error()) { return error(); } + return first.get(out); +} +template +simdjson_inline error_code simdjson_result::get(T &out) && noexcept { + if (error()) { return error(); } + return std::forward(first).get(out); +} + +template<> simdjson_inline simdjson_result simdjson_result::get() & noexcept = delete; +template<> simdjson_deprecated simdjson_inline simdjson_result simdjson_result::get() && noexcept { + if (error()) { return error(); } + return std::forward(first); +} +template<> simdjson_inline error_code simdjson_result::get(icelake::ondemand::document &out) & noexcept = delete; +template<> simdjson_inline error_code simdjson_result::get(icelake::ondemand::document &out) && noexcept { + if (error()) { return error(); } + out = std::forward(first); + return SUCCESS; +} + +simdjson_inline simdjson_result simdjson_result::type() noexcept { if (error()) { return error(); } return first.type(); } -simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { + +simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { if (error()) { return error(); } return first.is_scalar(); } -simdjson_inline simdjson_result simdjson_result::is_string() noexcept { + +simdjson_inline simdjson_result simdjson_result::is_string() noexcept { if (error()) { return error(); } return first.is_string(); } -simdjson_inline simdjson_result simdjson_result::is_negative() noexcept { + +simdjson_inline bool simdjson_result::is_negative() noexcept { if (error()) { return error(); } return first.is_negative(); } -simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { + +simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { if (error()) { return error(); } return first.is_integer(); } -simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { + +simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { if (error()) { return error(); } return first.get_number_type(); } -simdjson_inline simdjson_result simdjson_result::get_number() noexcept { + +simdjson_inline simdjson_result simdjson_result::get_number() noexcept { if (error()) { return error(); } return first.get_number(); } + + #if SIMDJSON_EXCEPTIONS -template ::value == false>::type> -simdjson_inline simdjson_result::operator T() noexcept(false) { +template ::value == false>::type> +simdjson_inline simdjson_result::operator T() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator icelake::ondemand::array() & noexcept(false) { +simdjson_inline simdjson_result::operator icelake::ondemand::array() & noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator icelake::ondemand::object() & noexcept(false) { +simdjson_inline simdjson_result::operator icelake::ondemand::object() & noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { +simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator int64_t() noexcept(false) { +simdjson_inline simdjson_result::operator int64_t() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator double() noexcept(false) { +simdjson_inline simdjson_result::operator double() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { +simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator icelake::ondemand::raw_json_string() noexcept(false) { +simdjson_inline simdjson_result::operator icelake::ondemand::raw_json_string() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator bool() noexcept(false) { +simdjson_inline simdjson_result::operator bool() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator icelake::ondemand::value() noexcept(false) { +simdjson_inline simdjson_result::operator icelake::ondemand::value() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } #endif -simdjson_inline simdjson_result simdjson_result::current_location() noexcept { + +simdjson_inline simdjson_result simdjson_result::current_location() noexcept { if (error()) { return error(); } return first.current_location(); } -simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { +simdjson_inline bool simdjson_result::at_end() const noexcept { + if (error()) { return error(); } + return first.at_end(); +} + + +simdjson_inline int32_t simdjson_result::current_depth() const noexcept { + if (error()) { return error(); } + return first.current_depth(); +} + +simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { if (error()) { return error(); } return first.raw_json_token(); } -simdjson_inline simdjson_result simdjson_result::at_pointer(std::string_view json_pointer) noexcept { +simdjson_inline simdjson_result simdjson_result::at_pointer(std::string_view json_pointer) noexcept { if (error()) { return error(); } return first.at_pointer(json_pointer); } -simdjson_inline simdjson_result simdjson_result::at_path(std::string_view json_path) noexcept { - if (error()) { - return error(); - } +simdjson_inline simdjson_result simdjson_result::at_path(std::string_view json_path) noexcept { + if (error()) { return error(); } return first.at_path(json_path); } } // namespace simdjson -#endif // SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H -/* end file simdjson/generic/ondemand/document-inl.h for icelake */ -/* including simdjson/generic/ondemand/document_stream-inl.h for icelake: #include "simdjson/generic/ondemand/document_stream-inl.h" */ -/* begin file simdjson/generic/ondemand/document_stream-inl.h for icelake */ -#ifndef SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H - -/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ -/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document_stream.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/implementation_simdjson_result_base-inl.h" */ -/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ - -#include -#include namespace simdjson { namespace icelake { namespace ondemand { -#ifdef SIMDJSON_THREADS_ENABLED - -inline void stage1_worker::finish() { - // After calling "run" someone would call finish() to wait - // for the end of the processing. - // This function will wait until either the thread has done - // the processing or, else, the destructor has been called. - std::unique_lock lock(locking_mutex); - cond_var.wait(lock, [this]{return has_work == false;}); -} - -inline stage1_worker::~stage1_worker() { - // The thread may never outlive the stage1_worker instance - // and will always be stopped/joined before the stage1_worker - // instance is gone. - stop_thread(); -} - -inline void stage1_worker::start_thread() { - std::unique_lock lock(locking_mutex); - if(thread.joinable()) { - return; // This should never happen but we never want to create more than one thread. - } - thread = std::thread([this]{ - while(true) { - std::unique_lock thread_lock(locking_mutex); - // We wait for either "run" or "stop_thread" to be called. - cond_var.wait(thread_lock, [this]{return has_work || !can_work;}); - // If, for some reason, the stop_thread() method was called (i.e., the - // destructor of stage1_worker is called, then we want to immediately destroy - // the thread (and not do any more processing). - if(!can_work) { - break; - } - this->owner->stage1_thread_error = this->owner->run_stage1(*this->stage1_thread_parser, - this->_next_batch_start); - this->has_work = false; - // The condition variable call should be moved after thread_lock.unlock() for performance - // reasons but thread sanitizers may report it as a data race if we do. - // See https://stackoverflow.com/questions/35775501/c-should-condition-variable-be-notified-under-lock - cond_var.notify_one(); // will notify "finish" - thread_lock.unlock(); - } - } - ); -} - - -inline void stage1_worker::stop_thread() { - std::unique_lock lock(locking_mutex); - // We have to make sure that all locks can be released. - can_work = false; - has_work = false; - cond_var.notify_all(); - lock.unlock(); - if(thread.joinable()) { - thread.join(); - } -} - -inline void stage1_worker::run(document_stream * ds, parser * stage1, size_t next_batch_start) { - std::unique_lock lock(locking_mutex); - owner = ds; - _next_batch_start = next_batch_start; - stage1_thread_parser = stage1; - has_work = true; - // The condition variable call should be moved after thread_lock.unlock() for performance - // reasons but thread sanitizers may report it as a data race if we do. - // See https://stackoverflow.com/questions/35775501/c-should-condition-variable-be-notified-under-lock - cond_var.notify_one(); // will notify the thread lock that we have work - lock.unlock(); -} - -#endif // SIMDJSON_THREADS_ENABLED - -simdjson_inline document_stream::document_stream( - ondemand::parser &_parser, - const uint8_t *_buf, +simdjson_inline document_reference::document_reference() noexcept : doc{nullptr} {} +simdjson_inline document_reference::document_reference(document &d) noexcept : doc(&d) {} +simdjson_inline void document_reference::rewind() noexcept { doc->rewind(); } +simdjson_inline simdjson_result document_reference::get_array() & noexcept { return doc->get_array(); } +simdjson_inline simdjson_result document_reference::get_object() & noexcept { return doc->get_object(); } +/** + * The document_reference instances are used primarily/solely for streams of JSON + * documents. + * We decided that calling 'get_double()' on the JSON document '1.233 blabla' should + * give an error, so we check for trailing content. + * + * However, for streams of JSON documents, we want to be able to start from + * "321" "321" "321" + * and parse it successfully as a stream of JSON documents, calling get_uint64_in_string() + * successfully each time. + * + * To achieve this result, we pass a 'false' to a get_root_value_iterator() method: + * this indicates that we allow trailing content. + */ +simdjson_inline simdjson_result document_reference::get_uint64() noexcept { return doc->get_root_value_iterator().get_root_uint64(false); } +simdjson_inline simdjson_result document_reference::get_uint64_in_string() noexcept { return doc->get_root_value_iterator().get_root_uint64_in_string(false); } +simdjson_inline simdjson_result document_reference::get_int64() noexcept { return doc->get_root_value_iterator().get_root_int64(false); } +simdjson_inline simdjson_result document_reference::get_int64_in_string() noexcept { return doc->get_root_value_iterator().get_root_int64_in_string(false); } +simdjson_inline simdjson_result document_reference::get_double() noexcept { return doc->get_root_value_iterator().get_root_double(false); } +simdjson_inline simdjson_result document_reference::get_double_in_string() noexcept { return doc->get_root_value_iterator().get_root_double(false); } +simdjson_inline simdjson_result document_reference::get_string(bool allow_replacement) noexcept { return doc->get_root_value_iterator().get_root_string(false, allow_replacement); } +template +simdjson_inline error_code document_reference::get_string(string_type& receiver, bool allow_replacement) noexcept { return doc->get_root_value_iterator().get_root_string(receiver, false, allow_replacement); } +simdjson_inline simdjson_result document_reference::get_wobbly_string() noexcept { return doc->get_root_value_iterator().get_root_wobbly_string(false); } +simdjson_inline simdjson_result document_reference::get_raw_json_string() noexcept { return doc->get_root_value_iterator().get_root_raw_json_string(false); } +simdjson_inline simdjson_result document_reference::get_bool() noexcept { return doc->get_root_value_iterator().get_root_bool(false); } +simdjson_inline simdjson_result document_reference::get_value() noexcept { return doc->get_value(); } +simdjson_inline simdjson_result document_reference::is_null() noexcept { return doc->get_root_value_iterator().is_root_null(false); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_array(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_object(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_raw_json_string(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_string(false); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_double(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_uint64(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_int64(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_bool(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_value(); } +#if SIMDJSON_EXCEPTIONS +template +simdjson_inline document_reference::operator T() noexcept(false) { return get(); } +simdjson_inline document_reference::operator array() & noexcept(false) { return array(*doc); } +simdjson_inline document_reference::operator object() & noexcept(false) { return object(*doc); } +simdjson_inline document_reference::operator uint64_t() noexcept(false) { return get_uint64(); } +simdjson_inline document_reference::operator int64_t() noexcept(false) { return get_int64(); } +simdjson_inline document_reference::operator double() noexcept(false) { return get_double(); } +simdjson_inline document_reference::operator std::string_view() noexcept(false) { return std::string_view(*doc); } +simdjson_inline document_reference::operator raw_json_string() noexcept(false) { return get_raw_json_string(); } +simdjson_inline document_reference::operator bool() noexcept(false) { return get_bool(); } +simdjson_inline document_reference::operator value() noexcept(false) { return value(*doc); } +#endif +simdjson_inline simdjson_result document_reference::count_elements() & noexcept { return doc->count_elements(); } +simdjson_inline simdjson_result document_reference::count_fields() & noexcept { return doc->count_fields(); } +simdjson_inline simdjson_result document_reference::at(size_t index) & noexcept { return doc->at(index); } +simdjson_inline simdjson_result document_reference::begin() & noexcept { return doc->begin(); } +simdjson_inline simdjson_result document_reference::end() & noexcept { return doc->end(); } +simdjson_inline simdjson_result document_reference::find_field(std::string_view key) & noexcept { return doc->find_field(key); } +simdjson_inline simdjson_result document_reference::find_field(const char *key) & noexcept { return doc->find_field(key); } +simdjson_inline simdjson_result document_reference::operator[](std::string_view key) & noexcept { return (*doc)[key]; } +simdjson_inline simdjson_result document_reference::operator[](const char *key) & noexcept { return (*doc)[key]; } +simdjson_inline simdjson_result document_reference::find_field_unordered(std::string_view key) & noexcept { return doc->find_field_unordered(key); } +simdjson_inline simdjson_result document_reference::find_field_unordered(const char *key) & noexcept { return doc->find_field_unordered(key); } +simdjson_inline simdjson_result document_reference::type() noexcept { return doc->type(); } +simdjson_inline simdjson_result document_reference::is_scalar() noexcept { return doc->is_scalar(); } +simdjson_inline simdjson_result document_reference::is_string() noexcept { return doc->is_string(); } +simdjson_inline simdjson_result document_reference::current_location() noexcept { return doc->current_location(); } +simdjson_inline int32_t document_reference::current_depth() const noexcept { return doc->current_depth(); } +simdjson_inline bool document_reference::is_negative() noexcept { return doc->is_negative(); } +simdjson_inline simdjson_result document_reference::is_integer() noexcept { return doc->get_root_value_iterator().is_root_integer(false); } +simdjson_inline simdjson_result document_reference::get_number_type() noexcept { return doc->get_root_value_iterator().get_root_number_type(false); } +simdjson_inline simdjson_result document_reference::get_number() noexcept { return doc->get_root_value_iterator().get_root_number(false); } +simdjson_inline simdjson_result document_reference::raw_json_token() noexcept { return doc->raw_json_token(); } +simdjson_inline simdjson_result document_reference::at_pointer(std::string_view json_pointer) noexcept { return doc->at_pointer(json_pointer); } +simdjson_inline simdjson_result document_reference::at_path(std::string_view json_path) noexcept { return doc->at_path(json_path); } +simdjson_inline simdjson_result document_reference::raw_json() noexcept { return doc->raw_json();} +simdjson_inline document_reference::operator document&() const noexcept { return *doc; } + +} // namespace ondemand +} // namespace icelake +} // namespace simdjson + + + +namespace simdjson { +simdjson_inline simdjson_result::simdjson_result(icelake::ondemand::document_reference value, error_code error) + noexcept : implementation_simdjson_result_base(std::forward(value), error) {} + + +simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { + if (error()) { return error(); } + return first.count_elements(); +} +simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { + if (error()) { return error(); } + return first.count_fields(); +} +simdjson_inline simdjson_result simdjson_result::at(size_t index) & noexcept { + if (error()) { return error(); } + return first.at(index); +} +simdjson_inline error_code simdjson_result::rewind() noexcept { + if (error()) { return error(); } + first.rewind(); + return SUCCESS; +} +simdjson_inline simdjson_result simdjson_result::begin() & noexcept { + if (error()) { return error(); } + return first.begin(); +} +simdjson_inline simdjson_result simdjson_result::end() & noexcept { + return {}; +} +simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) & noexcept { + if (error()) { return error(); } + return first.find_field_unordered(key); +} +simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) & noexcept { + if (error()) { return error(); } + return first.find_field_unordered(key); +} +simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) & noexcept { + if (error()) { return error(); } + return first[key]; +} +simdjson_inline simdjson_result simdjson_result::operator[](const char *key) & noexcept { + if (error()) { return error(); } + return first[key]; +} +simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) & noexcept { + if (error()) { return error(); } + return first.find_field(key); +} +simdjson_inline simdjson_result simdjson_result::find_field(const char *key) & noexcept { + if (error()) { return error(); } + return first.find_field(key); +} +simdjson_inline simdjson_result simdjson_result::get_array() & noexcept { + if (error()) { return error(); } + return first.get_array(); +} +simdjson_inline simdjson_result simdjson_result::get_object() & noexcept { + if (error()) { return error(); } + return first.get_object(); +} +simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { + if (error()) { return error(); } + return first.get_uint64(); +} +simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { + if (error()) { return error(); } + return first.get_uint64_in_string(); +} +simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { + if (error()) { return error(); } + return first.get_int64(); +} +simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { + if (error()) { return error(); } + return first.get_int64_in_string(); +} +simdjson_inline simdjson_result simdjson_result::get_double() noexcept { + if (error()) { return error(); } + return first.get_double(); +} +simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { + if (error()) { return error(); } + return first.get_double_in_string(); +} +simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { + if (error()) { return error(); } + return first.get_string(allow_replacement); +} +template +simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { + if (error()) { return error(); } + return first.get_string(receiver, allow_replacement); +} +simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { + if (error()) { return error(); } + return first.get_wobbly_string(); +} +simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { + if (error()) { return error(); } + return first.get_raw_json_string(); +} +simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { + if (error()) { return error(); } + return first.get_bool(); +} +simdjson_inline simdjson_result simdjson_result::get_value() noexcept { + if (error()) { return error(); } + return first.get_value(); +} +simdjson_inline simdjson_result simdjson_result::is_null() noexcept { + if (error()) { return error(); } + return first.is_null(); +} +template +simdjson_inline simdjson_result simdjson_result::get() & noexcept { + if (error()) { return error(); } + return first.get(); +} +template +simdjson_inline simdjson_result simdjson_result::get() && noexcept { + if (error()) { return error(); } + return std::forward(first).get(); +} +template +simdjson_inline error_code simdjson_result::get(T &out) & noexcept { + if (error()) { return error(); } + return first.get(out); +} +template +simdjson_inline error_code simdjson_result::get(T &out) && noexcept { + if (error()) { return error(); } + return std::forward(first).get(out); +} +simdjson_inline simdjson_result simdjson_result::type() noexcept { + if (error()) { return error(); } + return first.type(); +} +simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { + if (error()) { return error(); } + return first.is_scalar(); +} +simdjson_inline simdjson_result simdjson_result::is_string() noexcept { + if (error()) { return error(); } + return first.is_string(); +} +template <> +simdjson_inline error_code simdjson_result::get(icelake::ondemand::document_reference &out) & noexcept { + if (error()) { return error(); } + out = first; + return SUCCESS; +} +template <> +simdjson_inline error_code simdjson_result::get(icelake::ondemand::document_reference &out) && noexcept { + if (error()) { return error(); } + out = first; + return SUCCESS; +} +simdjson_inline simdjson_result simdjson_result::is_negative() noexcept { + if (error()) { return error(); } + return first.is_negative(); +} +simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { + if (error()) { return error(); } + return first.is_integer(); +} +simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { + if (error()) { return error(); } + return first.get_number_type(); +} +simdjson_inline simdjson_result simdjson_result::get_number() noexcept { + if (error()) { return error(); } + return first.get_number(); +} +#if SIMDJSON_EXCEPTIONS +template +simdjson_inline simdjson_result::operator T() noexcept(false) { + static_assert(std::is_same::value == false, "You should not call get when T is a document"); + static_assert(std::is_same::value == false, "You should not call get when T is a document"); + if (error()) { throw simdjson_error(error()); } + return first.get(); +} +simdjson_inline simdjson_result::operator icelake::ondemand::array() & noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator icelake::ondemand::object() & noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator int64_t() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator double() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator icelake::ondemand::raw_json_string() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator bool() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator icelake::ondemand::value() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +#endif + +simdjson_inline simdjson_result simdjson_result::current_location() noexcept { + if (error()) { return error(); } + return first.current_location(); +} + +simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { + if (error()) { return error(); } + return first.raw_json_token(); +} + +simdjson_inline simdjson_result simdjson_result::at_pointer(std::string_view json_pointer) noexcept { + if (error()) { return error(); } + return first.at_pointer(json_pointer); +} + +simdjson_inline simdjson_result simdjson_result::at_path(std::string_view json_path) noexcept { + if (error()) { + return error(); + } + return first.at_path(json_path); +} + +} // namespace simdjson + +#endif // SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H +/* end file simdjson/generic/ondemand/document-inl.h for icelake */ +/* including simdjson/generic/ondemand/document_stream-inl.h for icelake: #include "simdjson/generic/ondemand/document_stream-inl.h" */ +/* begin file simdjson/generic/ondemand/document_stream-inl.h for icelake */ +#ifndef SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H + +/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ +/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document_stream.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/implementation_simdjson_result_base-inl.h" */ +/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ + +#include +#include + +namespace simdjson { +namespace icelake { +namespace ondemand { + +#ifdef SIMDJSON_THREADS_ENABLED + +inline void stage1_worker::finish() { + // After calling "run" someone would call finish() to wait + // for the end of the processing. + // This function will wait until either the thread has done + // the processing or, else, the destructor has been called. + std::unique_lock lock(locking_mutex); + cond_var.wait(lock, [this]{return has_work == false;}); +} + +inline stage1_worker::~stage1_worker() { + // The thread may never outlive the stage1_worker instance + // and will always be stopped/joined before the stage1_worker + // instance is gone. + stop_thread(); +} + +inline void stage1_worker::start_thread() { + std::unique_lock lock(locking_mutex); + if(thread.joinable()) { + return; // This should never happen but we never want to create more than one thread. + } + thread = std::thread([this]{ + while(true) { + std::unique_lock thread_lock(locking_mutex); + // We wait for either "run" or "stop_thread" to be called. + cond_var.wait(thread_lock, [this]{return has_work || !can_work;}); + // If, for some reason, the stop_thread() method was called (i.e., the + // destructor of stage1_worker is called, then we want to immediately destroy + // the thread (and not do any more processing). + if(!can_work) { + break; + } + this->owner->stage1_thread_error = this->owner->run_stage1(*this->stage1_thread_parser, + this->_next_batch_start); + this->has_work = false; + // The condition variable call should be moved after thread_lock.unlock() for performance + // reasons but thread sanitizers may report it as a data race if we do. + // See https://stackoverflow.com/questions/35775501/c-should-condition-variable-be-notified-under-lock + cond_var.notify_one(); // will notify "finish" + thread_lock.unlock(); + } + } + ); +} + + +inline void stage1_worker::stop_thread() { + std::unique_lock lock(locking_mutex); + // We have to make sure that all locks can be released. + can_work = false; + has_work = false; + cond_var.notify_all(); + lock.unlock(); + if(thread.joinable()) { + thread.join(); + } +} + +inline void stage1_worker::run(document_stream * ds, parser * stage1, size_t next_batch_start) { + std::unique_lock lock(locking_mutex); + owner = ds; + _next_batch_start = next_batch_start; + stage1_thread_parser = stage1; + has_work = true; + // The condition variable call should be moved after thread_lock.unlock() for performance + // reasons but thread sanitizers may report it as a data race if we do. + // See https://stackoverflow.com/questions/35775501/c-should-condition-variable-be-notified-under-lock + cond_var.notify_one(); // will notify the thread lock that we have work + lock.unlock(); +} + +#endif // SIMDJSON_THREADS_ENABLED + +simdjson_inline document_stream::document_stream( + ondemand::parser &_parser, + const uint8_t *_buf, size_t _len, size_t _batch_size, bool _allow_comma_separated @@ -70021,7 +73020,6 @@ simdjson_inline document_stream::iterator::iterator(document_stream* _stream, bo } simdjson_inline simdjson_result document_stream::iterator::operator*() noexcept { - //if(stream->error) { return stream->error; } return simdjson_result(stream->doc, stream->error); } @@ -71880,36 +74878,39 @@ simdjson_inline const char * raw_json_string::raw() const noexcept { return rein simdjson_inline bool raw_json_string::is_free_from_unescaped_quote(std::string_view target) noexcept { size_t pos{0}; - // if the content has no escape character, just scan through it quickly! - for(;pos < target.size() && target[pos] != '\\';pos++) {} - // slow path may begin. - bool escaping{false}; - for(;pos < target.size();pos++) { - if((target[pos] == '"') && !escaping) { - return false; - } else if(target[pos] == '\\') { - escaping = !escaping; - } else { - escaping = false; + while(pos < target.size()) { + pos = target.find('"', pos); + if(pos == std::string_view::npos) { return true; } + if(pos != 0 && target[pos-1] != '\\') { return false; } + if(pos > 1 && target[pos-2] == '\\') { + size_t backslash_count{2}; + for(size_t i = 3; i <= pos; i++) { + if(target[pos-i] == '\\') { backslash_count++; } + else { break; } + } + if(backslash_count % 2 == 0) { return false; } } + pos++; } return true; } simdjson_inline bool raw_json_string::is_free_from_unescaped_quote(const char* target) noexcept { size_t pos{0}; - // if the content has no escape character, just scan through it quickly! - for(;target[pos] && target[pos] != '\\';pos++) {} - // slow path may begin. - bool escaping{false}; - for(;target[pos];pos++) { - if((target[pos] == '"') && !escaping) { - return false; - } else if(target[pos] == '\\') { - escaping = !escaping; - } else { - escaping = false; + while(target[pos]) { + const char * result = strchr(target+pos, '"'); + if(result == nullptr) { return true; } + pos = result - target; + if(pos != 0 && target[pos-1] != '\\') { return false; } + if(pos > 1 && target[pos-2] == '\\') { + size_t backslash_count{2}; + for(size_t i = 3; i <= pos; i++) { + if(target[pos-i] == '\\') { backslash_count++; } + else { break; } + } + if(backslash_count % 2 == 0) { return false; } } + pos++; } return true; } @@ -71921,7 +74922,7 @@ simdjson_inline bool raw_json_string::unsafe_is_equal(size_t length, std::string } simdjson_inline bool raw_json_string::unsafe_is_equal(std::string_view target) const noexcept { - // Assumptions: does not contain unescaped quote characters, and + // Assumptions: does not contain unescaped quote characters("), and // the raw content is quote terminated within a valid JSON string. if(target.size() <= SIMDJSON_PADDING) { return (raw()[target.size()] == '"') && !memcmp(raw(), target.data(), target.size()); @@ -72395,775 +75396,230 @@ simdjson_inline simdjson_result::simdjson_res #endif // SIMDJSON_GENERIC_ONDEMAND_TOKEN_ITERATOR_INL_H /* end file simdjson/generic/ondemand/token_iterator-inl.h for icelake */ -/* including simdjson/generic/ondemand/value-inl.h for icelake: #include "simdjson/generic/ondemand/value-inl.h" */ -/* begin file simdjson/generic/ondemand/value-inl.h for icelake */ -#ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H +/* including simdjson/generic/ondemand/value_iterator-inl.h for icelake: #include "simdjson/generic/ondemand/value_iterator-inl.h" */ +/* begin file simdjson/generic/ondemand/value_iterator-inl.h for icelake */ +#ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H /* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ -/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H */ +/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/atomparsing.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/numberparsing.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string-inl.h" */ /* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ namespace simdjson { namespace icelake { namespace ondemand { -simdjson_inline value::value(const value_iterator &_iter) noexcept - : iter{_iter} +simdjson_inline value_iterator::value_iterator( + json_iterator *json_iter, + depth_t depth, + token_position start_position +) noexcept : _json_iter{json_iter}, _depth{depth}, _start_position{start_position} { } -simdjson_inline value value::start(const value_iterator &iter) noexcept { - return iter; -} -simdjson_inline value value::resume(const value_iterator &iter) noexcept { - return iter; -} - -simdjson_inline simdjson_result value::get_array() noexcept { - return array::start(iter); -} -simdjson_inline simdjson_result value::get_object() noexcept { - return object::start(iter); -} -simdjson_inline simdjson_result value::start_or_resume_object() noexcept { - if (iter.at_start()) { - return get_object(); - } else { - return object::resume(iter); - } -} -simdjson_inline simdjson_result value::get_raw_json_string() noexcept { - return iter.get_raw_json_string(); -} -simdjson_inline simdjson_result value::get_string(bool allow_replacement) noexcept { - return iter.get_string(allow_replacement); -} -template -simdjson_inline error_code value::get_string(string_type& receiver, bool allow_replacement) noexcept { - return iter.get_string(receiver, allow_replacement); -} -simdjson_inline simdjson_result value::get_wobbly_string() noexcept { - return iter.get_wobbly_string(); -} -simdjson_inline simdjson_result value::get_double() noexcept { - return iter.get_double(); -} -simdjson_inline simdjson_result value::get_double_in_string() noexcept { - return iter.get_double_in_string(); -} -simdjson_inline simdjson_result value::get_uint64() noexcept { - return iter.get_uint64(); -} -simdjson_inline simdjson_result value::get_uint64_in_string() noexcept { - return iter.get_uint64_in_string(); -} -simdjson_inline simdjson_result value::get_int64() noexcept { - return iter.get_int64(); -} -simdjson_inline simdjson_result value::get_int64_in_string() noexcept { - return iter.get_int64_in_string(); -} -simdjson_inline simdjson_result value::get_bool() noexcept { - return iter.get_bool(); -} -simdjson_inline simdjson_result value::is_null() noexcept { - return iter.is_null(); +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::start_object() noexcept { + SIMDJSON_TRY( start_container('{', "Not an object", "object") ); + return started_object(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_array(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_object(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_raw_json_string(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_string(false); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_number(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_double(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_uint64(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_int64(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_bool(); } -template simdjson_inline error_code value::get(T &out) noexcept { - return get().get(out); +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::start_root_object() noexcept { + SIMDJSON_TRY( start_container('{', "Not an object", "object") ); + return started_root_object(); } -#if SIMDJSON_EXCEPTIONS -template -simdjson_inline value::operator T() noexcept(false) { - return get(); -} -simdjson_inline value::operator array() noexcept(false) { - return get_array(); -} -simdjson_inline value::operator object() noexcept(false) { - return get_object(); -} -simdjson_inline value::operator uint64_t() noexcept(false) { - return get_uint64(); -} -simdjson_inline value::operator int64_t() noexcept(false) { - return get_int64(); -} -simdjson_inline value::operator double() noexcept(false) { - return get_double(); -} -simdjson_inline value::operator std::string_view() noexcept(false) { - return get_string(false); -} -simdjson_inline value::operator raw_json_string() noexcept(false) { - return get_raw_json_string(); -} -simdjson_inline value::operator bool() noexcept(false) { - return get_bool(); -} +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::started_object() noexcept { + assert_at_container_start(); +#if SIMDJSON_DEVELOPMENT_CHECKS + _json_iter->set_start_position(_depth, start_position()); #endif - -simdjson_inline simdjson_result value::begin() & noexcept { - return get_array().begin(); -} -simdjson_inline simdjson_result value::end() & noexcept { - return {}; -} -simdjson_inline simdjson_result value::count_elements() & noexcept { - simdjson_result answer; - auto a = get_array(); - answer = a.count_elements(); - // count_elements leaves you pointing inside the array, at the first element. - // We need to move back so that the user can create a new array (which requires that - // we point at '['). - iter.move_at_start(); - return answer; -} -simdjson_inline simdjson_result value::count_fields() & noexcept { - simdjson_result answer; - auto a = get_object(); - answer = a.count_fields(); - iter.move_at_start(); - return answer; -} -simdjson_inline simdjson_result value::at(size_t index) noexcept { - auto a = get_array(); - return a.at(index); -} - -simdjson_inline simdjson_result value::find_field(std::string_view key) noexcept { - return start_or_resume_object().find_field(key); -} -simdjson_inline simdjson_result value::find_field(const char *key) noexcept { - return start_or_resume_object().find_field(key); -} - -simdjson_inline simdjson_result value::find_field_unordered(std::string_view key) noexcept { - return start_or_resume_object().find_field_unordered(key); -} -simdjson_inline simdjson_result value::find_field_unordered(const char *key) noexcept { - return start_or_resume_object().find_field_unordered(key); -} - -simdjson_inline simdjson_result value::operator[](std::string_view key) noexcept { - return start_or_resume_object()[key]; -} -simdjson_inline simdjson_result value::operator[](const char *key) noexcept { - return start_or_resume_object()[key]; -} - -simdjson_inline simdjson_result value::type() noexcept { - return iter.type(); + if (*_json_iter->peek() == '}') { + logger::log_value(*_json_iter, "empty object"); + _json_iter->return_current_and_advance(); + end_container(); + return false; + } + return true; } -simdjson_inline simdjson_result value::is_scalar() noexcept { - json_type this_type; - auto error = type().get(this_type); - if(error) { return error; } - return ! ((this_type == json_type::array) || (this_type == json_type::object)); +simdjson_warn_unused simdjson_inline error_code value_iterator::check_root_object() noexcept { + // When in streaming mode, we cannot expect peek_last() to be the last structural element of the + // current document. It only works in the normal mode where we have indexed a single document. + // Note that adding a check for 'streaming' is not expensive since we only have at most + // one root element. + if ( ! _json_iter->streaming() ) { + // The following lines do not fully protect against garbage content within the + // object: e.g., `{"a":2} foo }`. Users concerned with garbage content should + // call `at_end()` on the document instance at the end of the processing to + // ensure that the processing has finished at the end. + // + if (*_json_iter->peek_last() != '}') { + _json_iter->abandon(); + return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing } at end"); + } + // If the last character is } *and* the first gibberish character is also '}' + // then on-demand could accidentally go over. So we need additional checks. + // https://github.com/simdjson/simdjson/issues/1834 + // Checking that the document is balanced requires a full scan which is potentially + // expensive, but it only happens in edge cases where the first padding character is + // a closing bracket. + if ((*_json_iter->peek(_json_iter->end_position()) == '}') && (!_json_iter->balanced())) { + _json_iter->abandon(); + // The exact error would require more work. It will typically be an unclosed object. + return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "the document is unbalanced"); + } + } + return SUCCESS; } -simdjson_inline simdjson_result value::is_string() noexcept { - json_type this_type; - auto error = type().get(this_type); +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::started_root_object() noexcept { + auto error = check_root_object(); if(error) { return error; } - return (this_type == json_type::string); -} - - -simdjson_inline bool value::is_negative() noexcept { - return iter.is_negative(); + return started_object(); } -simdjson_inline simdjson_result value::is_integer() noexcept { - return iter.is_integer(); -} -simdjson_warn_unused simdjson_inline simdjson_result value::get_number_type() noexcept { - return iter.get_number_type(); -} -simdjson_warn_unused simdjson_inline simdjson_result value::get_number() noexcept { - return iter.get_number(); +simdjson_warn_unused simdjson_inline error_code value_iterator::end_container() noexcept { +#if SIMDJSON_CHECK_EOF + if (depth() > 1 && at_end()) { return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing parent ] or }"); } + // if (depth() <= 1 && !at_end()) { return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing [ or { at start"); } +#endif // SIMDJSON_CHECK_EOF + _json_iter->ascend_to(depth()-1); + return SUCCESS; } -simdjson_inline std::string_view value::raw_json_token() noexcept { - return std::string_view(reinterpret_cast(iter.peek_start()), iter.peek_start_length()); -} +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::has_next_field() noexcept { + assert_at_next(); -simdjson_inline simdjson_result value::raw_json() noexcept { - json_type t; - SIMDJSON_TRY(type().get(t)); - switch (t) - { - case json_type::array: { - ondemand::array array; - SIMDJSON_TRY(get_array().get(array)); - return array.raw_json(); - } - case json_type::object: { - ondemand::object object; - SIMDJSON_TRY(get_object().get(object)); - return object.raw_json(); - } + // It's illegal to call this unless there are more tokens: anything that ends in } or ] is + // obligated to verify there are more tokens if they are not the top level. + switch (*_json_iter->return_current_and_advance()) { + case '}': + logger::log_end_value(*_json_iter, "object"); + SIMDJSON_TRY( end_container() ); + return false; + case ',': + return true; default: - return raw_json_token(); + return report_error(TAPE_ERROR, "Missing comma between object fields"); } } -simdjson_inline simdjson_result value::current_location() noexcept { - return iter.json_iter().current_location(); -} - -simdjson_inline int32_t value::current_depth() const noexcept{ - return iter.json_iter().depth(); -} +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::find_field_raw(const std::string_view key) noexcept { + error_code error; + bool has_value; + // + // Initially, the object can be in one of a few different places: + // + // 1. The start of the object, at the first field: + // + // ``` + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 2, index 1) + // ``` + if (at_first_field()) { + has_value = true; -inline bool is_pointer_well_formed(std::string_view json_pointer) noexcept { - if (simdjson_unlikely(json_pointer.empty())) { // can't be - return false; - } - if (simdjson_unlikely(json_pointer[0] != '/')) { - return false; - } - size_t escape = json_pointer.find('~'); - if (escape == std::string_view::npos) { - return true; - } - if (escape == json_pointer.size() - 1) { - return false; - } - if (json_pointer[escape + 1] != '0' && json_pointer[escape + 1] != '1') { + // + // 2. When a previous search did not yield a value or the object is empty: + // + // ``` + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 0) + // { } + // ^ (depth 0, index 2) + // ``` + // + } else if (!is_open()) { +#if SIMDJSON_DEVELOPMENT_CHECKS + // If we're past the end of the object, we're being iterated out of order. + // Note: this is not perfect detection. It's possible the user is inside some other object; if so, + // this object iterator will blithely scan that object for fields. + if (_json_iter->depth() < depth() - 1) { return OUT_OF_ORDER_ITERATION; } +#endif return false; - } - return true; -} -simdjson_inline simdjson_result value::at_pointer(std::string_view json_pointer) noexcept { - json_type t; - SIMDJSON_TRY(type().get(t)); - switch (t) - { - case json_type::array: - return (*this).get_array().at_pointer(json_pointer); - case json_type::object: - return (*this).get_object().at_pointer(json_pointer); - default: - // a non-empty string can be invalid, or accessing a primitive (issue 2154) - if (is_pointer_well_formed(json_pointer)) { - return NO_SUCH_FIELD; - } - return INVALID_JSON_POINTER; + // 3. When a previous search found a field or an iterator yielded a value: + // + // ``` + // // When a field was not fully consumed (or not even touched at all) + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 2) + // // When a field was fully consumed + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 1) + // // When the last field was fully consumed + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 1) + // ``` + // + } else { + if ((error = skip_child() )) { abandon(); return error; } + if ((error = has_next_field().get(has_value) )) { abandon(); return error; } +#if SIMDJSON_DEVELOPMENT_CHECKS + if (_json_iter->start_position(_depth) != start_position()) { return OUT_OF_ORDER_ITERATION; } +#endif } -} + while (has_value) { + // Get the key and colon, stopping at the value. + raw_json_string actual_key; + // size_t max_key_length = _json_iter->peek_length() - 2; // -2 for the two quotes + // Note: _json_iter->peek_length() - 2 might overflow if _json_iter->peek_length() < 2. + // field_key() advances the pointer and checks that '"' is found (corresponding to a key). + // The depth is left unchanged by field_key(). + if ((error = field_key().get(actual_key) )) { abandon(); return error; }; + // field_value() will advance and check that we find a ':' separating the + // key and the value. It will also increment the depth by one. + if ((error = field_value() )) { abandon(); return error; } + // If it matches, stop and return + // We could do it this way if we wanted to allow arbitrary + // key content (including escaped quotes). + //if (actual_key.unsafe_is_equal(max_key_length, key)) { + // Instead we do the following which may trigger buffer overruns if the + // user provides an adversarial key (containing a well placed unescaped quote + // character and being longer than the number of bytes remaining in the JSON + // input). + if (actual_key.unsafe_is_equal(key)) { + logger::log_event(*this, "match", key, -2); + // If we return here, then we return while pointing at the ':' that we just checked. + return true; + } -simdjson_inline simdjson_result value::at_path(std::string_view json_path) noexcept { - json_type t; - SIMDJSON_TRY(type().get(t)); - switch (t) { - case json_type::array: - return (*this).get_array().at_path(json_path); - case json_type::object: - return (*this).get_object().at_path(json_path); - default: - return INVALID_JSON_POINTER; + // No match: skip the value and see if , or } is next + logger::log_event(*this, "no match", key, -2); + // The call to skip_child is meant to skip over the value corresponding to the key. + // After skip_child(), we are right before the next comma (',') or the final brace ('}'). + SIMDJSON_TRY( skip_child() ); // Skip the value entirely + // The has_next_field() advances the pointer and check that either ',' or '}' is found. + // It returns true if ',' is found, false otherwise. If anything other than ',' or '}' is found, + // then we are in error and we abort. + if ((error = has_next_field().get(has_value) )) { abandon(); return error; } } -} - -} // namespace ondemand -} // namespace icelake -} // namespace simdjson - -namespace simdjson { -simdjson_inline simdjson_result::simdjson_result( - icelake::ondemand::value &&value -) noexcept : - implementation_simdjson_result_base( - std::forward(value) - ) -{ -} -simdjson_inline simdjson_result::simdjson_result( - error_code error -) noexcept : - implementation_simdjson_result_base(error) -{ -} -simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { - if (error()) { return error(); } - return first.count_elements(); -} -simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { - if (error()) { return error(); } - return first.count_fields(); -} -simdjson_inline simdjson_result simdjson_result::at(size_t index) noexcept { - if (error()) { return error(); } - return first.at(index); -} -simdjson_inline simdjson_result simdjson_result::begin() & noexcept { - if (error()) { return error(); } - return first.begin(); -} -simdjson_inline simdjson_result simdjson_result::end() & noexcept { - if (error()) { return error(); } - return {}; + // If the loop ended, we're out of fields to look at. + return false; } -simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) noexcept { - if (error()) { return error(); } - return first.find_field(key); -} -simdjson_inline simdjson_result simdjson_result::find_field(const char *key) noexcept { - if (error()) { return error(); } - return first.find_field(key); -} +SIMDJSON_PUSH_DISABLE_WARNINGS +SIMDJSON_DISABLE_STRICT_OVERFLOW_WARNING +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::find_field_unordered_raw(const std::string_view key) noexcept { + /** + * When find_field_unordered_raw is called, we can either be pointing at the + * first key, pointing outside (at the closing brace) or if a key was matched + * we can be either pointing right afterthe ':' right before the value (that we need skip), + * or we may have consumed the value and we might be at a comma or at the + * final brace (ready for a call to has_next_field()). + */ + error_code error; + bool has_value; -simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) noexcept { - if (error()) { return error(); } - return first.find_field_unordered(key); -} -simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) noexcept { - if (error()) { return error(); } - return first.find_field_unordered(key); -} - -simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) noexcept { - if (error()) { return error(); } - return first[key]; -} -simdjson_inline simdjson_result simdjson_result::operator[](const char *key) noexcept { - if (error()) { return error(); } - return first[key]; -} - -simdjson_inline simdjson_result simdjson_result::get_array() noexcept { - if (error()) { return error(); } - return first.get_array(); -} -simdjson_inline simdjson_result simdjson_result::get_object() noexcept { - if (error()) { return error(); } - return first.get_object(); -} -simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { - if (error()) { return error(); } - return first.get_uint64(); -} -simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { - if (error()) { return error(); } - return first.get_uint64_in_string(); -} -simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { - if (error()) { return error(); } - return first.get_int64(); -} -simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { - if (error()) { return error(); } - return first.get_int64_in_string(); -} -simdjson_inline simdjson_result simdjson_result::get_double() noexcept { - if (error()) { return error(); } - return first.get_double(); -} -simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { - if (error()) { return error(); } - return first.get_double_in_string(); -} -simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { - if (error()) { return error(); } - return first.get_string(allow_replacement); -} -template -simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { - if (error()) { return error(); } - return first.get_string(receiver, allow_replacement); -} -simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { - if (error()) { return error(); } - return first.get_wobbly_string(); -} -simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { - if (error()) { return error(); } - return first.get_raw_json_string(); -} -simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { - if (error()) { return error(); } - return first.get_bool(); -} -simdjson_inline simdjson_result simdjson_result::is_null() noexcept { - if (error()) { return error(); } - return first.is_null(); -} - -template simdjson_inline simdjson_result simdjson_result::get() noexcept { - if (error()) { return error(); } - return first.get(); -} -template simdjson_inline error_code simdjson_result::get(T &out) noexcept { - if (error()) { return error(); } - return first.get(out); -} - -template<> simdjson_inline simdjson_result simdjson_result::get() noexcept { - if (error()) { return error(); } - return std::move(first); -} -template<> simdjson_inline error_code simdjson_result::get(icelake::ondemand::value &out) noexcept { - if (error()) { return error(); } - out = first; - return SUCCESS; -} - -simdjson_inline simdjson_result simdjson_result::type() noexcept { - if (error()) { return error(); } - return first.type(); -} -simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { - if (error()) { return error(); } - return first.is_scalar(); -} -simdjson_inline simdjson_result simdjson_result::is_string() noexcept { - if (error()) { return error(); } - return first.is_string(); -} -simdjson_inline simdjson_result simdjson_result::is_negative() noexcept { - if (error()) { return error(); } - return first.is_negative(); -} -simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { - if (error()) { return error(); } - return first.is_integer(); -} -simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { - if (error()) { return error(); } - return first.get_number_type(); -} -simdjson_inline simdjson_result simdjson_result::get_number() noexcept { - if (error()) { return error(); } - return first.get_number(); -} -#if SIMDJSON_EXCEPTIONS -template -simdjson_inline simdjson_result::operator T() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return static_cast(first); -} -simdjson_inline simdjson_result::operator icelake::ondemand::array() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator icelake::ondemand::object() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator int64_t() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator double() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator icelake::ondemand::raw_json_string() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator bool() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -#endif - -simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { - if (error()) { return error(); } - return first.raw_json_token(); -} - -simdjson_inline simdjson_result simdjson_result::raw_json() noexcept { - if (error()) { return error(); } - return first.raw_json(); -} - -simdjson_inline simdjson_result simdjson_result::current_location() noexcept { - if (error()) { return error(); } - return first.current_location(); -} - -simdjson_inline simdjson_result simdjson_result::current_depth() const noexcept { - if (error()) { return error(); } - return first.current_depth(); -} - -simdjson_inline simdjson_result simdjson_result::at_pointer( - std::string_view json_pointer) noexcept { - if (error()) { - return error(); - } - return first.at_pointer(json_pointer); -} - -simdjson_inline simdjson_result simdjson_result::at_path( - std::string_view json_path) noexcept { - if (error()) { - return error(); - } - return first.at_path(json_path); -} - -} // namespace simdjson - -#endif // SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H -/* end file simdjson/generic/ondemand/value-inl.h for icelake */ -/* including simdjson/generic/ondemand/value_iterator-inl.h for icelake: #include "simdjson/generic/ondemand/value_iterator-inl.h" */ -/* begin file simdjson/generic/ondemand/value_iterator-inl.h for icelake */ -#ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H - -/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ -/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/atomparsing.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/numberparsing.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string-inl.h" */ -/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ - -namespace simdjson { -namespace icelake { -namespace ondemand { - -simdjson_inline value_iterator::value_iterator( - json_iterator *json_iter, - depth_t depth, - token_position start_position -) noexcept : _json_iter{json_iter}, _depth{depth}, _start_position{start_position} -{ -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::start_object() noexcept { - SIMDJSON_TRY( start_container('{', "Not an object", "object") ); - return started_object(); -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::start_root_object() noexcept { - SIMDJSON_TRY( start_container('{', "Not an object", "object") ); - return started_root_object(); -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::started_object() noexcept { - assert_at_container_start(); -#if SIMDJSON_DEVELOPMENT_CHECKS - _json_iter->set_start_position(_depth, start_position()); -#endif - if (*_json_iter->peek() == '}') { - logger::log_value(*_json_iter, "empty object"); - _json_iter->return_current_and_advance(); - end_container(); - return false; - } - return true; -} - -simdjson_warn_unused simdjson_inline error_code value_iterator::check_root_object() noexcept { - // When in streaming mode, we cannot expect peek_last() to be the last structural element of the - // current document. It only works in the normal mode where we have indexed a single document. - // Note that adding a check for 'streaming' is not expensive since we only have at most - // one root element. - if ( ! _json_iter->streaming() ) { - // The following lines do not fully protect against garbage content within the - // object: e.g., `{"a":2} foo }`. Users concerned with garbage content should - // call `at_end()` on the document instance at the end of the processing to - // ensure that the processing has finished at the end. - // - if (*_json_iter->peek_last() != '}') { - _json_iter->abandon(); - return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing } at end"); - } - // If the last character is } *and* the first gibberish character is also '}' - // then on-demand could accidentally go over. So we need additional checks. - // https://github.com/simdjson/simdjson/issues/1834 - // Checking that the document is balanced requires a full scan which is potentially - // expensive, but it only happens in edge cases where the first padding character is - // a closing bracket. - if ((*_json_iter->peek(_json_iter->end_position()) == '}') && (!_json_iter->balanced())) { - _json_iter->abandon(); - // The exact error would require more work. It will typically be an unclosed object. - return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "the document is unbalanced"); - } - } - return SUCCESS; -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::started_root_object() noexcept { - auto error = check_root_object(); - if(error) { return error; } - return started_object(); -} - -simdjson_warn_unused simdjson_inline error_code value_iterator::end_container() noexcept { -#if SIMDJSON_CHECK_EOF - if (depth() > 1 && at_end()) { return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing parent ] or }"); } - // if (depth() <= 1 && !at_end()) { return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing [ or { at start"); } -#endif // SIMDJSON_CHECK_EOF - _json_iter->ascend_to(depth()-1); - return SUCCESS; -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::has_next_field() noexcept { - assert_at_next(); - - // It's illegal to call this unless there are more tokens: anything that ends in } or ] is - // obligated to verify there are more tokens if they are not the top level. - switch (*_json_iter->return_current_and_advance()) { - case '}': - logger::log_end_value(*_json_iter, "object"); - SIMDJSON_TRY( end_container() ); - return false; - case ',': - return true; - default: - return report_error(TAPE_ERROR, "Missing comma between object fields"); - } -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::find_field_raw(const std::string_view key) noexcept { - error_code error; - bool has_value; - // - // Initially, the object can be in one of a few different places: - // - // 1. The start of the object, at the first field: - // - // ``` - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 2, index 1) - // ``` - if (at_first_field()) { - has_value = true; - - // - // 2. When a previous search did not yield a value or the object is empty: - // - // ``` - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 0) - // { } - // ^ (depth 0, index 2) - // ``` - // - } else if (!is_open()) { -#if SIMDJSON_DEVELOPMENT_CHECKS - // If we're past the end of the object, we're being iterated out of order. - // Note: this is not perfect detection. It's possible the user is inside some other object; if so, - // this object iterator will blithely scan that object for fields. - if (_json_iter->depth() < depth() - 1) { return OUT_OF_ORDER_ITERATION; } -#endif - return false; - - // 3. When a previous search found a field or an iterator yielded a value: - // - // ``` - // // When a field was not fully consumed (or not even touched at all) - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 2) - // // When a field was fully consumed - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 1) - // // When the last field was fully consumed - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 1) - // ``` - // - } else { - if ((error = skip_child() )) { abandon(); return error; } - if ((error = has_next_field().get(has_value) )) { abandon(); return error; } -#if SIMDJSON_DEVELOPMENT_CHECKS - if (_json_iter->start_position(_depth) != start_position()) { return OUT_OF_ORDER_ITERATION; } -#endif - } - while (has_value) { - // Get the key and colon, stopping at the value. - raw_json_string actual_key; - // size_t max_key_length = _json_iter->peek_length() - 2; // -2 for the two quotes - // Note: _json_iter->peek_length() - 2 might overflow if _json_iter->peek_length() < 2. - // field_key() advances the pointer and checks that '"' is found (corresponding to a key). - // The depth is left unchanged by field_key(). - if ((error = field_key().get(actual_key) )) { abandon(); return error; }; - // field_value() will advance and check that we find a ':' separating the - // key and the value. It will also increment the depth by one. - if ((error = field_value() )) { abandon(); return error; } - // If it matches, stop and return - // We could do it this way if we wanted to allow arbitrary - // key content (including escaped quotes). - //if (actual_key.unsafe_is_equal(max_key_length, key)) { - // Instead we do the following which may trigger buffer overruns if the - // user provides an adversarial key (containing a well placed unescaped quote - // character and being longer than the number of bytes remaining in the JSON - // input). - if (actual_key.unsafe_is_equal(key)) { - logger::log_event(*this, "match", key, -2); - // If we return here, then we return while pointing at the ':' that we just checked. - return true; - } - - // No match: skip the value and see if , or } is next - logger::log_event(*this, "no match", key, -2); - // The call to skip_child is meant to skip over the value corresponding to the key. - // After skip_child(), we are right before the next comma (',') or the final brace ('}'). - SIMDJSON_TRY( skip_child() ); // Skip the value entirely - // The has_next_field() advances the pointer and check that either ',' or '}' is found. - // It returns true if ',' is found, false otherwise. If anything other than ',' or '}' is found, - // then we are in error and we abort. - if ((error = has_next_field().get(has_value) )) { abandon(); return error; } - } - - // If the loop ended, we're out of fields to look at. - return false; -} - -SIMDJSON_PUSH_DISABLE_WARNINGS -SIMDJSON_DISABLE_STRICT_OVERFLOW_WARNING -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::find_field_unordered_raw(const std::string_view key) noexcept { - /** - * When find_field_unordered_raw is called, we can either be pointing at the - * first key, pointing outside (at the closing brace) or if a key was matched - * we can be either pointing right afterthe ':' right before the value (that we need skip), - * or we may have consumed the value and we might be at a comma or at the - * final brace (ready for a call to has_next_field()). - */ - error_code error; - bool has_value; - - // First, we scan from that point to the end. - // If we don't find a match, we may loop back around, and scan from the beginning to that point. - token_position search_start = _json_iter->position(); + // First, we scan from that point to the end. + // If we don't find a match, we may loop back around, and scan from the beginning to that point. + token_position search_start = _json_iter->position(); // We want to know whether we need to go back to the beginning. bool at_first = at_first_field(); @@ -73743,6 +76199,8 @@ simdjson_inline simdjson_result value_iterator::is_root_null(bool check_tr if(result) { // we have something that looks like a null. if (check_trailing && !_json_iter->is_single_token()) { return TRAILING_CONTENT; } advance_root_scalar("null"); + } else if (json[0] == 'n') { + return incorrect_type_error("Not a null but starts with n"); } return result; } @@ -74034,6 +76492,8 @@ simdjson_inline simdjson_result::simdjson_res #endif // SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H /* end file simdjson/generic/ondemand/value_iterator-inl.h for icelake */ + + /* end file simdjson/generic/ondemand/amalgamated.h for icelake */ /* including simdjson/icelake/end.h: #include "simdjson/icelake/end.h" */ /* begin file simdjson/icelake/end.h */ @@ -74310,7 +76770,13 @@ simdjson_inline internal::value128 full_multiplication(uint64_t value1, uint64_t } // namespace ppc64 } // namespace simdjson +#ifndef SIMDJSON_SWAR_NUMBER_PARSING +#if SIMDJSON_IS_BIG_ENDIAN +#define SIMDJSON_SWAR_NUMBER_PARSING 0 +#else #define SIMDJSON_SWAR_NUMBER_PARSING 1 +#endif +#endif #endif // SIMDJSON_PPC64_NUMBERPARSING_DEFS_H /* end file simdjson/ppc64/numberparsing_defs.h */ @@ -74917,6 +77383,132 @@ class value_iterator; #endif // SIMDJSON_GENERIC_ONDEMAND_BASE_H /* end file simdjson/generic/ondemand/base.h for ppc64 */ +/* including simdjson/generic/ondemand/deserialize.h for ppc64: #include "simdjson/generic/ondemand/deserialize.h" */ +/* begin file simdjson/generic/ondemand/deserialize.h for ppc64 */ +#if SIMDJSON_SUPPORTS_DESERIALIZATION + +#ifndef SIMDJSON_ONDEMAND_DESERIALIZE_H +/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ +/* amalgamation skipped (editor-only): #define SIMDJSON_ONDEMAND_DESERIALIZE_H */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array.h" */ +/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ + +#include +namespace simdjson { + +namespace tag_invoke_fn_ns { +void tag_invoke(); + +struct tag_invoke_fn { + template + requires requires(Tag tag, Args &&...args) { + tag_invoke(std::forward(tag), std::forward(args)...); + } + constexpr auto operator()(Tag tag, Args &&...args) const + noexcept(noexcept(tag_invoke(std::forward(tag), + std::forward(args)...))) + -> decltype(tag_invoke(std::forward(tag), + std::forward(args)...)) { + return tag_invoke(std::forward(tag), std::forward(args)...); + } +}; +} // namespace tag_invoke_fn_ns + +inline namespace tag_invoke_ns { +inline constexpr tag_invoke_fn_ns::tag_invoke_fn tag_invoke = {}; +} // namespace tag_invoke_ns + +template +concept tag_invocable = requires(Tag tag, Args... args) { + tag_invoke(std::forward(tag), std::forward(args)...); +}; + +template +concept nothrow_tag_invocable = + tag_invocable && requires(Tag tag, Args... args) { + { + tag_invoke(std::forward(tag), std::forward(args)...) + } noexcept; + }; + +template +using tag_invoke_result = + std::invoke_result; + +template +using tag_invoke_result_t = + std::invoke_result_t; + +template using tag_t = std::decay_t; + + +struct deserialize_tag; + +/// These types are deserializable in a built-in way +template struct is_builtin_deserializable : std::false_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; + +template +concept is_builtin_deserializable_v = is_builtin_deserializable::value; + +template +concept custom_deserializable = tag_invocable; + +template +concept deserializable = custom_deserializable || is_builtin_deserializable_v; + +template +concept nothrow_custom_deserializable = nothrow_tag_invocable; + +// built-in types are noexcept and if an error happens, the value simply gets ignored and the error is returned. +template +concept nothrow_deserializable = nothrow_custom_deserializable || is_builtin_deserializable_v; + +/// Deserialize Tag +inline constexpr struct deserialize_tag { + using value_type = ppc64::ondemand::value; + using document_type = ppc64::ondemand::document; + using document_reference_type = ppc64::ondemand::document_reference; + + // Customization Point for value + template + requires custom_deserializable + [[nodiscard]] constexpr /* error_code */ auto operator()(value_type &object, T& output) const noexcept(nothrow_custom_deserializable) { + return tag_invoke(*this, object, output); + } + + // Customization Point for document + template + requires custom_deserializable + [[nodiscard]] constexpr /* error_code */ auto operator()(document_type &object, T& output) const noexcept(nothrow_custom_deserializable) { + return tag_invoke(*this, object, output); + } + + // Customization Point for document reference + template + requires custom_deserializable + [[nodiscard]] constexpr /* error_code */ auto operator()(document_reference_type &object, T& output) const noexcept(nothrow_custom_deserializable) { + return tag_invoke(*this, object, output); + } + + +} deserialize{}; + +} // namespace simdjson + +#endif // SIMDJSON_ONDEMAND_DESERIALIZE_H +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION + +/* end file simdjson/generic/ondemand/deserialize.h for ppc64 */ /* including simdjson/generic/ondemand/value_iterator.h for ppc64: #include "simdjson/generic/ondemand/value_iterator.h" */ /* begin file simdjson/generic/ondemand/value_iterator.h for ppc64 */ #ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_H @@ -75421,12 +78013,15 @@ struct simdjson_result : public ppc64::implemen /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/implementation_simdjson_result_base.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/deserialize.h" */ /* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ +#include + namespace simdjson { + namespace ppc64 { namespace ondemand { - /** * An ephemeral JSON value returned during iteration. It is only valid for as long as you do * not access more data in the JSON document. @@ -75451,16 +78046,21 @@ class value { * @returns A value of the given type, parsed from the JSON. * @returns INCORRECT_TYPE If the JSON value is not the given type. */ - template simdjson_inline simdjson_result get() noexcept { - // Unless the simdjson library or the user provides an inline implementation, calling this method should - // immediately fail. - static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " - "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " - "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " - " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." - " You may also add support for custom types, see our documentation."); + template + simdjson_inline simdjson_result get() +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(std::is_default_constructible::value, "The specified type is not default constructible."); + T out{}; + SIMDJSON_TRY(get(out)); + return out; } + /** * Get this value as the given type. * @@ -75470,7 +78070,32 @@ class value { * @returns INCORRECT_TYPE If the JSON value is not an object. * @returns SUCCESS If the parse succeeded and the out parameter was set to the value. */ - template simdjson_inline error_code get(T &out) noexcept; + template + simdjson_inline error_code get(T &out) +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { +#if SIMDJSON_SUPPORTS_DESERIALIZATION + if constexpr (custom_deserializable) { + return deserialize(*this, out); + } else { +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION + // Unless the simdjson library or the user provides an inline implementation, calling this method should + // immediately fail. + static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " + "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " + "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " + " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." + " You may also add support for custom types, see our documentation."); + static_cast(out); // to get rid of unused errors + return UNINITIALIZED; +#if SIMDJSON_SUPPORTS_DESERIALIZATION + } +#endif + } /** * Cast this JSON value to an array. @@ -75546,6 +78171,17 @@ class value { * Important: a value should be consumed once. Calling get_string() twice on the same value * is an error. * + * In some instances, you may want to allow replacement of invalid Unicode sequences. + * You may do so by passing the allow_replacement parameter as true. In the following + * example, the string "431924697b\udff0L\u0001Y" is not valid Unicode. By passing true + * to get_string, we allow the replacement of the invalid Unicode sequences with the Unicode + * replacement character (U+FFFD). + * + * simdjson::ondemand::parser parser; + * auto json = R"({"deviceId":"431924697b\udff0L\u0001Y"})"_padded; + * simdjson::ondemand::document doc = parser.iterate(json); + * auto view = doc["deviceId"].get_string(true); + * * @returns An UTF-8 string. The string is stored in the parser and will be invalidated the next * time it parses a document or when it is destroyed. * @returns INCORRECT_TYPE if the JSON value is not a string. @@ -75797,6 +78433,7 @@ class value { simdjson_inline simdjson_result operator[](std::string_view key) noexcept; /** @overload simdjson_inline simdjson_result find_field_unordered(std::string_view key) noexcept; */ simdjson_inline simdjson_result operator[](const char *key) noexcept; + simdjson_result operator[](int) noexcept = delete; /** * Get the type of this JSON value. It does not validate or consume the value. @@ -76164,6 +78801,7 @@ struct simdjson_result : public ppc64::implementation_si simdjson_inline simdjson_result operator[](std::string_view key) noexcept; /** @overload simdjson_inline simdjson_result find_field_unordered(std::string_view key) noexcept; */ simdjson_inline simdjson_result operator[](const char *key) noexcept; + simdjson_result operator[](int) noexcept = delete; /** * Get the type of this JSON value. @@ -77219,6 +79857,22 @@ class parser { * using a sanitizer that verifies that no uninitialized byte is read, then you should initialize the * SIMDJSON_PADDING bytes to avoid runtime warnings. * + * ### std::string references + * + * If you pass a mutable std::string reference (std::string&), the parser will seek to extend + * its capacity to SIMDJSON_PADDING bytes beyond the end of the string. + * + * Whenever you pass an std::string reference, the parser will access the bytes beyond the end of + * the string but before the end of the allocated memory (std::string::capacity()). + * If you are using a sanitizer that checks for reading uninitialized bytes or std::string's + * container-overflow checks, you may encounter sanitizer warnings. + * You can safely ignore these warnings. Or you can call simdjson::pad(std::string&) to pad the + * string with SIMDJSON_PADDING spaces: this function returns a simdjson::padding_string_view + * which can be be passed to the parser's iterate function: + * + * std::string json = R"({ "foo": 1 } { "foo": 2 } { "foo": 3 } )"; + * document doc = parser.iterate(simdjson::pad(json)); + * * @param json The JSON to parse. * @param len The length of the JSON. * @param capacity The number of bytes allocated in the JSON (must be at least len+SIMDJSON_PADDING). @@ -77413,8 +80067,12 @@ class parser { * behavior of the parser for future operations. */ bool threaded{true}; + #else + /** + * When SIMDJSON_THREADS_ENABLED is not defined, the parser instance cannot use threads. + */ + bool threaded{false}; #endif - /** * Unescape this JSON string, replacing \\ with \, \n with newline, etc. to a user-provided buffer. * The result must be valid UTF-8. @@ -77556,7 +80214,8 @@ class array { * calling this function, if successful, the array is 'rewinded' at its * beginning as if it had never been accessed. If the JSON is malformed (e.g., * there is a missing comma), then an error is returned and it is no longer - * safe to continue. + * safe to continue. Note that count_elements() does not validate the JSON values, + * only the structure of the array. * * To check that an array is empty, it is more performant to use * the is_empty() method. @@ -77834,8 +80493,11 @@ struct simdjson_result : public ppc64::implemen /* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_H */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/deserialize.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ /* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ + namespace simdjson { namespace ppc64 { namespace ondemand { @@ -78008,24 +80670,39 @@ class document { * @returns A value of the given type, parsed from the JSON. * @returns INCORRECT_TYPE If the JSON value is not the given type. */ - template simdjson_inline simdjson_result get() & noexcept { - // Unless the simdjson library or the user provides an inline implementation, calling this method should - // immediately fail. - static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " - "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " - "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " - " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." - " You may also add support for custom types, see our documentation."); - } - /** @overload template simdjson_result get() & noexcept */ - template simdjson_deprecated simdjson_inline simdjson_result get() && noexcept { - // Unless the simdjson library or the user provides an inline implementation, calling this method should - // immediately fail. - static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " - "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " - "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " - " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." - " You may also add support for custom types, see our documentation."); + template + simdjson_inline simdjson_result get() & +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(std::is_default_constructible::value, "Cannot initialize the specified type."); + T out{}; + SIMDJSON_TRY(get(out)); + return out; + } + /** + * @overload template simdjson_result get() & noexcept + * + * We disallow the use tag_invoke CPO on a moved document; it may create UB + * if user uses `ondemand::array` or `ondemand::object` in their custom type. + * + * The member function is still remains specialize-able for compatibility + * reasons, but we completely disallow its use when a tag_invoke customization + * is provided. + */ + template + simdjson_inline simdjson_result get() && +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(!std::is_same::value && !std::is_same::value, "You should never hold either an ondemand::array or ondemand::object without a corresponding ondemand::document being alive; that would be Undefined Behaviour."); + return static_cast(*this).get(); } /** @@ -78039,7 +80716,32 @@ class document { * @returns INCORRECT_TYPE If the JSON value is not an object. * @returns SUCCESS If the parse succeeded and the out parameter was set to the value. */ - template simdjson_inline error_code get(T &out) & noexcept; + template + simdjson_inline error_code get(T &out) & +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { +#if SIMDJSON_SUPPORTS_DESERIALIZATION + if constexpr (custom_deserializable) { + return deserialize(*this, out); + } else { +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION + // Unless the simdjson library or the user provides an inline implementation, calling this method should + // immediately fail. + static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " + "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " + "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " + " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." + " You may also add support for custom types, see our documentation."); + static_cast(out); // to get rid of unused errors + return UNINITIALIZED; +#if SIMDJSON_SUPPORTS_DESERIALIZATION + } +#endif + } /** @overload template error_code get(T &out) & noexcept */ template simdjson_deprecated simdjson_inline error_code get(T &out) && noexcept; @@ -78141,7 +80843,8 @@ class document { * calling this function, if successful, the array is 'rewinded' at its * beginning as if it had never been accessed. If the JSON is malformed (e.g., * there is a missing comma), then an error is returned and it is no longer - * safe to continue. + * safe to continue. Note that count_elements() does not validate the JSON values, + * only the structure of the array. */ simdjson_inline simdjson_result count_elements() & noexcept; /** @@ -78253,6 +80956,7 @@ class document { simdjson_inline simdjson_result operator[](std::string_view key) & noexcept; /** @overload simdjson_inline simdjson_result find_field_unordered(std::string_view key) & noexcept; */ simdjson_inline simdjson_result operator[](const char *key) & noexcept; + simdjson_result operator[](int) & noexcept = delete; /** * Get the type of this JSON value. It does not validate or consume the value. @@ -78521,6 +81225,11 @@ class document { /** * A document_reference is a thin wrapper around a document reference instance. + * The document_reference instances are used primarily/solely for streams of JSON + * documents. They differ from document instances when parsing a scalar value + * (a document that is not an array or an object). In the case of a document, + * we expect the document to be fully consumed. In the case of a document_reference, + * we allow trailing content. */ class document_reference { public: @@ -78546,7 +81255,70 @@ class document_reference { simdjson_inline simdjson_result get_value() noexcept; simdjson_inline simdjson_result is_null() noexcept; - template simdjson_inline simdjson_result get() & noexcept; + template + simdjson_inline simdjson_result get() & +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(std::is_default_constructible::value, "Cannot initialize the specified type."); + T out{}; + SIMDJSON_TRY(get(out)); + return out; + } + template + simdjson_inline simdjson_result get() && +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(!std::is_same::value && !std::is_same::value, "You should never hold either an ondemand::array or ondemand::object without a corresponding ondemand::document_reference being alive; that would be Undefined Behaviour."); + return static_cast(*this).get(); + } + + /** + * Get this value as the given type. + * + * Supported types: object, array, raw_json_string, string_view, uint64_t, int64_t, double, bool, value + * + * Be mindful that the document instance must remain in scope while you are accessing object, array and value instances. + * + * @param out This is set to a value of the given type, parsed from the JSON. If there is an error, this may not be initialized. + * @returns INCORRECT_TYPE If the JSON value is not an object. + * @returns SUCCESS If the parse succeeded and the out parameter was set to the value. + */ + template + simdjson_inline error_code get(T &out) & +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { +#if SIMDJSON_SUPPORTS_DESERIALIZATION + if constexpr (custom_deserializable) { + return deserialize(*this, out); + } else { +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION + // Unless the simdjson library or the user provides an inline implementation, calling this method should + // immediately fail. + static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " + "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " + "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " + " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." + " You may also add support for custom types, see our documentation."); + static_cast(out); // to get rid of unused errors + return UNINITIALIZED; +#if SIMDJSON_SUPPORTS_DESERIALIZATION + } +#endif + } + /** @overload template error_code get(T &out) & noexcept */ + template simdjson_inline error_code get(T &out) && noexcept; simdjson_inline simdjson_result raw_json() noexcept; simdjson_inline operator document&() const noexcept; #if SIMDJSON_EXCEPTIONS @@ -78571,6 +81343,7 @@ class document_reference { simdjson_inline simdjson_result find_field(const char *key) & noexcept; simdjson_inline simdjson_result operator[](std::string_view key) & noexcept; simdjson_inline simdjson_result operator[](const char *key) & noexcept; + simdjson_result operator[](int) & noexcept = delete; simdjson_inline simdjson_result find_field_unordered(std::string_view key) & noexcept; simdjson_inline simdjson_result find_field_unordered(const char *key) & noexcept; @@ -78649,6 +81422,7 @@ struct simdjson_result : public ppc64::implementation simdjson_inline simdjson_result find_field(const char *key) & noexcept; simdjson_inline simdjson_result operator[](std::string_view key) & noexcept; simdjson_inline simdjson_result operator[](const char *key) & noexcept; + simdjson_result operator[](int) & noexcept = delete; simdjson_inline simdjson_result find_field_unordered(std::string_view key) & noexcept; simdjson_inline simdjson_result find_field_unordered(const char *key) & noexcept; simdjson_inline simdjson_result type() noexcept; @@ -78698,8 +81472,14 @@ struct simdjson_result : public ppc64::impl simdjson_inline simdjson_result get_bool() noexcept; simdjson_inline simdjson_result get_value() noexcept; simdjson_inline simdjson_result is_null() noexcept; + + template simdjson_inline simdjson_result get() & noexcept; + template simdjson_inline simdjson_result get() && noexcept; + + template simdjson_inline error_code get(T &out) & noexcept; + template simdjson_inline error_code get(T &out) && noexcept; #if SIMDJSON_EXCEPTIONS - template ::value == false>::type> + template explicit simdjson_inline operator T() noexcept(false); simdjson_inline operator ppc64::ondemand::array() & noexcept(false); simdjson_inline operator ppc64::ondemand::object() & noexcept(false); @@ -78720,6 +81500,7 @@ struct simdjson_result : public ppc64::impl simdjson_inline simdjson_result find_field(const char *key) & noexcept; simdjson_inline simdjson_result operator[](std::string_view key) & noexcept; simdjson_inline simdjson_result operator[](const char *key) & noexcept; + simdjson_result operator[](int) & noexcept = delete; simdjson_inline simdjson_result find_field_unordered(std::string_view key) & noexcept; simdjson_inline simdjson_result find_field_unordered(const char *key) & noexcept; simdjson_inline simdjson_result type() noexcept; @@ -79650,6 +82431,177 @@ inline std::ostream& operator<<(std::ostream& out, simdjson::simdjson_result +#include + +namespace simdjson { +template +constexpr bool require_custom_serialization = false; + +////////////////////////////// +// Number deserialization +////////////////////////////// + +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, auto &val, T &out) noexcept { + using limits = std::numeric_limits; + + uint64_t x; + SIMDJSON_TRY(val.get_uint64().get(x)); + if (x > (limits::max)()) { + return NUMBER_OUT_OF_RANGE; + } + out = static_cast(x); + return SUCCESS; +} + +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, auto &val, T &out) noexcept { + double x; + SIMDJSON_TRY(val.get_double().get(x)); + out = static_cast(x); + return SUCCESS; +} + +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, auto &val, T &out) noexcept { + using limits = std::numeric_limits; + + int64_t x; + SIMDJSON_TRY(val.get_int64().get(x)); + if (x > (limits::max)() || x < (limits::min)()) { + return NUMBER_OUT_OF_RANGE; + } + out = static_cast(x); + return SUCCESS; +} + +/** + * STL containers have several constructors including one that takes a single + * size argument. Thus, some compilers (Visual Studio) will not be able to + * disambiguate between the size and container constructor. Users should + * explicitly specify the type of the container as needed: e.g., + * doc.get>(). + */ +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, ValT &val, T &out) noexcept(false) { + using value_type = typename std::remove_cvref_t::value_type; + static_assert( + deserializable, + "The specified type inside the container must itself be deserializable"); + static_assert( + std::is_default_constructible_v, + "The specified type inside the container must default constructible."); + + ppc64::ondemand::array arr; + SIMDJSON_TRY(val.get_array().get(arr)); + for (auto v : arr) { + if constexpr (concepts::returns_reference) { + if (auto const err = v.get().get(concepts::emplace_one(out)); + err) { + // If an error occurs, the empty element that we just inserted gets + // removed. We're not using a temp variable because if T is a heavy + // type, we want the valid path to be the fast path and the slow path be + // the path that has errors in it. + if constexpr (requires { out.pop_back(); }) { + static_cast(out.pop_back()); + } + return err; + } + } else { + value_type temp; + if (auto const err = v.get().get(temp); err) { + return err; + } + concepts::emplace_one(out, std::move(temp)); + } + } + return SUCCESS; +} + + + +/** + * This CPO (Customization Point Object) will help deserialize into + * smart pointers. + * + * If constructing T is nothrow, this conversion should be nothrow as well since + * we return MEMALLOC if we're not able to allocate memory instead of throwing + * the error message. + * + * @tparam T The type inside the smart pointer + * @tparam ValT document/value type + * @param val document/value + * @param out a reference to the smart pointer + * @return status of the conversion + */ +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, ValT &val, T &out) noexcept(nothrow_deserializable::element_type, ValT>) { + using element_type = typename std::remove_cvref_t::element_type; + + // For better error messages, don't use these as constraints on + // the tag_invoke CPO. + static_assert( + deserializable, + "The specified type inside the unique_ptr must itself be deserializable"); + static_assert( + std::is_default_constructible_v, + "The specified type inside the unique_ptr must default constructible."); + + auto ptr = new (std::nothrow) element_type(); + if (ptr == nullptr) { + return MEMALLOC; + } + SIMDJSON_TRY(val.template get(*ptr)); + out.reset(ptr); + return SUCCESS; +} + +/** + * This CPO (Customization Point Object) will help deserialize into optional types. + */ +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, ValT &val, T &out) noexcept(nothrow_deserializable::value_type, ValT>) { + using value_type = typename std::remove_cvref_t::value_type; + + static_assert( + deserializable, + "The specified type inside the unique_ptr must itself be deserializable"); + static_assert( + std::is_default_constructible_v, + "The specified type inside the unique_ptr must default constructible."); + + if (!out) { + out.emplace(); + } + SIMDJSON_TRY(val.template get(out.value())); + return SUCCESS; +} + +} // namespace simdjson + +#endif // SIMDJSON_ONDEMAND_DESERIALIZE_H +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION +/* end file simdjson/generic/ondemand/std_deserialize.h for ppc64 */ + // Inline definitions /* including simdjson/generic/ondemand/array-inl.h for ppc64: #include "simdjson/generic/ondemand/array-inl.h" */ /* begin file simdjson/generic/ondemand/array-inl.h for ppc64 */ @@ -79657,6 +82609,7 @@ inline std::ostream& operator<<(std::ostream& out, simdjson::simdjson_result array::at_pointer(std::string_view json_pointer) n return child; } -inline std::string json_path_to_pointer_conversion(std::string_view json_path) { - if (json_path.empty() || (json_path.front() != '.' && - json_path.front() != '[')) { - return "-1"; // This is just a sentinel value, the caller should check for this and return an error. - } - - std::string result; - // Reserve space to reduce allocations, adjusting for potential increases due - // to escaping. - result.reserve(json_path.size() * 2); - - size_t i = 0; - - while (i < json_path.length()) { - if (json_path[i] == '.') { - result += '/'; - } else if (json_path[i] == '[') { - result += '/'; - ++i; // Move past the '[' - while (i < json_path.length() && json_path[i] != ']') { - if (json_path[i] == '~') { - result += "~0"; - } else if (json_path[i] == '/') { - result += "~1"; - } else { - result += json_path[i]; - } - ++i; - } - if (i == json_path.length() || json_path[i] != ']') { - return "-1"; // Using sentinel value that will be handled as an error by the caller. - } - } else { - if (json_path[i] == '~') { - result += "~0"; - } else if (json_path[i] == '/') { - result += "~1"; - } else { - result += json_path[i]; - } - } - ++i; - } - - return result; -} - inline simdjson_result array::at_path(std::string_view json_path) noexcept { auto json_pointer = json_path_to_pointer_conversion(json_path); if (json_pointer == "-1") { return INVALID_JSON_POINTER; } @@ -80018,313 +82924,276 @@ simdjson_inline simdjson_result &simdjson_resul #endif // SIMDJSON_GENERIC_ONDEMAND_ARRAY_ITERATOR_INL_H /* end file simdjson/generic/ondemand/array_iterator-inl.h for ppc64 */ -/* including simdjson/generic/ondemand/document-inl.h for ppc64: #include "simdjson/generic/ondemand/document-inl.h" */ -/* begin file simdjson/generic/ondemand/document-inl.h for ppc64 */ -#ifndef SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H +/* including simdjson/generic/ondemand/value-inl.h for ppc64: #include "simdjson/generic/ondemand/value-inl.h" */ +/* begin file simdjson/generic/ondemand/value-inl.h for ppc64 */ +#ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H /* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ -/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H */ +/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array_iterator.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator-inl.h" */ /* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ namespace simdjson { namespace ppc64 { namespace ondemand { -simdjson_inline document::document(ondemand::json_iterator &&_iter) noexcept - : iter{std::forward(_iter)} +simdjson_inline value::value(const value_iterator &_iter) noexcept + : iter{_iter} { - logger::log_start_value(iter, "document"); } - -simdjson_inline document document::start(json_iterator &&iter) noexcept { - return document(std::forward(iter)); +simdjson_inline value value::start(const value_iterator &iter) noexcept { + return iter; } - -inline void document::rewind() noexcept { - iter.rewind(); +simdjson_inline value value::resume(const value_iterator &iter) noexcept { + return iter; } -inline std::string document::to_debug_string() noexcept { - return iter.to_string(); +simdjson_inline simdjson_result value::get_array() noexcept { + return array::start(iter); } - -inline simdjson_result document::current_location() const noexcept { - return iter.current_location(); +simdjson_inline simdjson_result value::get_object() noexcept { + return object::start(iter); } - -inline int32_t document::current_depth() const noexcept { - return iter.depth(); +simdjson_inline simdjson_result value::start_or_resume_object() noexcept { + if (iter.at_start()) { + return get_object(); + } else { + return object::resume(iter); + } } -inline bool document::at_end() const noexcept { - return iter.at_end(); +simdjson_inline simdjson_result value::get_raw_json_string() noexcept { + return iter.get_raw_json_string(); } - - -inline bool document::is_alive() noexcept { - return iter.is_alive(); +simdjson_inline simdjson_result value::get_string(bool allow_replacement) noexcept { + return iter.get_string(allow_replacement); } -simdjson_inline value_iterator document::resume_value_iterator() noexcept { - return value_iterator(&iter, 1, iter.root_position()); +template +simdjson_inline error_code value::get_string(string_type& receiver, bool allow_replacement) noexcept { + return iter.get_string(receiver, allow_replacement); } -simdjson_inline value_iterator document::get_root_value_iterator() noexcept { - return resume_value_iterator(); +simdjson_inline simdjson_result value::get_wobbly_string() noexcept { + return iter.get_wobbly_string(); } -simdjson_inline simdjson_result document::start_or_resume_object() noexcept { - if (iter.at_root()) { - return get_object(); - } else { - return object::resume(resume_value_iterator()); - } +simdjson_inline simdjson_result value::get_double() noexcept { + return iter.get_double(); } -simdjson_inline simdjson_result document::get_value() noexcept { - // Make sure we start any arrays or objects before returning, so that start_root_() - // gets called. - - // It is the convention throughout the code that the macro `SIMDJSON_DEVELOPMENT_CHECKS` determines whether - // we check for OUT_OF_ORDER_ITERATION. Proper on::demand code should never trigger this error. -#if SIMDJSON_DEVELOPMENT_CHECKS - if (!iter.at_root()) { return OUT_OF_ORDER_ITERATION; } -#endif - // assert_at_root() serves two purposes: in Debug mode, whether or not - // SIMDJSON_DEVELOPMENT_CHECKS is set or not, it checks that we are at the root of - // the document (this will typically be redundant). In release mode, it generates - // SIMDJSON_ASSUME statements to allow the compiler to make assumptions. - iter.assert_at_root(); - switch (*iter.peek()) { - case '[': { - // The following lines check that the document ends with ]. - auto value_iterator = get_root_value_iterator(); - auto error = value_iterator.check_root_array(); - if(error) { return error; } - return value(get_root_value_iterator()); - } - case '{': { - // The following lines would check that the document ends with }. - auto value_iterator = get_root_value_iterator(); - auto error = value_iterator.check_root_object(); - if(error) { return error; } - return value(get_root_value_iterator()); - } - default: - // Unfortunately, scalar documents are a special case in simdjson and they cannot - // be safely converted to value instances. - return SCALAR_DOCUMENT_AS_VALUE; - } +simdjson_inline simdjson_result value::get_double_in_string() noexcept { + return iter.get_double_in_string(); } -simdjson_inline simdjson_result document::get_array() & noexcept { - auto value = get_root_value_iterator(); - return array::start_root(value); +simdjson_inline simdjson_result value::get_uint64() noexcept { + return iter.get_uint64(); } -simdjson_inline simdjson_result document::get_object() & noexcept { - auto value = get_root_value_iterator(); - return object::start_root(value); +simdjson_inline simdjson_result value::get_uint64_in_string() noexcept { + return iter.get_uint64_in_string(); } - -/** - * We decided that calling 'get_double()' on the JSON document '1.233 blabla' should - * give an error, so we check for trailing content. We want to disallow trailing - * content. - * Thus, in several implementations below, we pass a 'true' parameter value to - * a get_root_value_iterator() method: this indicates that we disallow trailing content. - */ - -simdjson_inline simdjson_result document::get_uint64() noexcept { - return get_root_value_iterator().get_root_uint64(true); +simdjson_inline simdjson_result value::get_int64() noexcept { + return iter.get_int64(); } -simdjson_inline simdjson_result document::get_uint64_in_string() noexcept { - return get_root_value_iterator().get_root_uint64_in_string(true); +simdjson_inline simdjson_result value::get_int64_in_string() noexcept { + return iter.get_int64_in_string(); } -simdjson_inline simdjson_result document::get_int64() noexcept { - return get_root_value_iterator().get_root_int64(true); +simdjson_inline simdjson_result value::get_bool() noexcept { + return iter.get_bool(); } -simdjson_inline simdjson_result document::get_int64_in_string() noexcept { - return get_root_value_iterator().get_root_int64_in_string(true); +simdjson_inline simdjson_result value::is_null() noexcept { + return iter.is_null(); } -simdjson_inline simdjson_result document::get_double() noexcept { - return get_root_value_iterator().get_root_double(true); + +template<> simdjson_inline simdjson_result value::get() noexcept { return get_array(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_object(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_raw_json_string(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_string(false); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_number(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_double(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_uint64(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_int64(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_bool(); } + + +template<> simdjson_inline error_code value::get(array& out) noexcept { return get_array().get(out); } +template<> simdjson_inline error_code value::get(object& out) noexcept { return get_object().get(out); } +template<> simdjson_inline error_code value::get(raw_json_string& out) noexcept { return get_raw_json_string().get(out); } +template<> simdjson_inline error_code value::get(std::string_view& out) noexcept { return get_string(false).get(out); } +template<> simdjson_inline error_code value::get(number& out) noexcept { return get_number().get(out); } +template<> simdjson_inline error_code value::get(double& out) noexcept { return get_double().get(out); } +template<> simdjson_inline error_code value::get(uint64_t& out) noexcept { return get_uint64().get(out); } +template<> simdjson_inline error_code value::get(int64_t& out) noexcept { return get_int64().get(out); } +template<> simdjson_inline error_code value::get(bool& out) noexcept { return get_bool().get(out); } + +#if SIMDJSON_EXCEPTIONS +template +simdjson_inline value::operator T() noexcept(false) { + return get(); } -simdjson_inline simdjson_result document::get_double_in_string() noexcept { - return get_root_value_iterator().get_root_double_in_string(true); +simdjson_inline value::operator array() noexcept(false) { + return get_array(); } -simdjson_inline simdjson_result document::get_string(bool allow_replacement) noexcept { - return get_root_value_iterator().get_root_string(true, allow_replacement); +simdjson_inline value::operator object() noexcept(false) { + return get_object(); } -template -simdjson_inline error_code document::get_string(string_type& receiver, bool allow_replacement) noexcept { - return get_root_value_iterator().get_root_string(receiver, true, allow_replacement); +simdjson_inline value::operator uint64_t() noexcept(false) { + return get_uint64(); } -simdjson_inline simdjson_result document::get_wobbly_string() noexcept { - return get_root_value_iterator().get_root_wobbly_string(true); +simdjson_inline value::operator int64_t() noexcept(false) { + return get_int64(); } -simdjson_inline simdjson_result document::get_raw_json_string() noexcept { - return get_root_value_iterator().get_root_raw_json_string(true); +simdjson_inline value::operator double() noexcept(false) { + return get_double(); } -simdjson_inline simdjson_result document::get_bool() noexcept { - return get_root_value_iterator().get_root_bool(true); +simdjson_inline value::operator std::string_view() noexcept(false) { + return get_string(false); } -simdjson_inline simdjson_result document::is_null() noexcept { - return get_root_value_iterator().is_root_null(true); +simdjson_inline value::operator raw_json_string() noexcept(false) { + return get_raw_json_string(); } +simdjson_inline value::operator bool() noexcept(false) { + return get_bool(); +} +#endif -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_array(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_object(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_raw_json_string(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_string(false); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_double(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_uint64(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_int64(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_bool(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_value(); } - -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_raw_json_string(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_string(false); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_double(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_uint64(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_int64(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_bool(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_value(); } - -template simdjson_inline error_code document::get(T &out) & noexcept { - return get().get(out); +simdjson_inline simdjson_result value::begin() & noexcept { + return get_array().begin(); } -template simdjson_deprecated simdjson_inline error_code document::get(T &out) && noexcept { - return std::forward(*this).get().get(out); +simdjson_inline simdjson_result value::end() & noexcept { + return {}; } - -#if SIMDJSON_EXCEPTIONS -template -simdjson_deprecated simdjson_inline document::operator T() && noexcept(false) { return get(); } -template -simdjson_inline document::operator T() & noexcept(false) { return get(); } -simdjson_inline document::operator array() & noexcept(false) { return get_array(); } -simdjson_inline document::operator object() & noexcept(false) { return get_object(); } -simdjson_inline document::operator uint64_t() noexcept(false) { return get_uint64(); } -simdjson_inline document::operator int64_t() noexcept(false) { return get_int64(); } -simdjson_inline document::operator double() noexcept(false) { return get_double(); } -simdjson_inline document::operator std::string_view() noexcept(false) { return get_string(false); } -simdjson_inline document::operator raw_json_string() noexcept(false) { return get_raw_json_string(); } -simdjson_inline document::operator bool() noexcept(false) { return get_bool(); } -simdjson_inline document::operator value() noexcept(false) { return get_value(); } - -#endif -simdjson_inline simdjson_result document::count_elements() & noexcept { +simdjson_inline simdjson_result value::count_elements() & noexcept { + simdjson_result answer; auto a = get_array(); - simdjson_result answer = a.count_elements(); - /* If there was an array, we are now left pointing at its first element. */ - if(answer.error() == SUCCESS) { rewind(); } + answer = a.count_elements(); + // count_elements leaves you pointing inside the array, at the first element. + // We need to move back so that the user can create a new array (which requires that + // we point at '['). + iter.move_at_start(); return answer; } -simdjson_inline simdjson_result document::count_fields() & noexcept { +simdjson_inline simdjson_result value::count_fields() & noexcept { + simdjson_result answer; auto a = get_object(); - simdjson_result answer = a.count_fields(); - /* If there was an object, we are now left pointing at its first element. */ - if(answer.error() == SUCCESS) { rewind(); } + answer = a.count_fields(); + iter.move_at_start(); return answer; } -simdjson_inline simdjson_result document::at(size_t index) & noexcept { +simdjson_inline simdjson_result value::at(size_t index) noexcept { auto a = get_array(); return a.at(index); } -simdjson_inline simdjson_result document::begin() & noexcept { - return get_array().begin(); -} -simdjson_inline simdjson_result document::end() & noexcept { - return {}; -} -simdjson_inline simdjson_result document::find_field(std::string_view key) & noexcept { +simdjson_inline simdjson_result value::find_field(std::string_view key) noexcept { return start_or_resume_object().find_field(key); } -simdjson_inline simdjson_result document::find_field(const char *key) & noexcept { +simdjson_inline simdjson_result value::find_field(const char *key) noexcept { return start_or_resume_object().find_field(key); } -simdjson_inline simdjson_result document::find_field_unordered(std::string_view key) & noexcept { + +simdjson_inline simdjson_result value::find_field_unordered(std::string_view key) noexcept { return start_or_resume_object().find_field_unordered(key); } -simdjson_inline simdjson_result document::find_field_unordered(const char *key) & noexcept { +simdjson_inline simdjson_result value::find_field_unordered(const char *key) noexcept { return start_or_resume_object().find_field_unordered(key); } -simdjson_inline simdjson_result document::operator[](std::string_view key) & noexcept { + +simdjson_inline simdjson_result value::operator[](std::string_view key) noexcept { return start_or_resume_object()[key]; } -simdjson_inline simdjson_result document::operator[](const char *key) & noexcept { +simdjson_inline simdjson_result value::operator[](const char *key) noexcept { return start_or_resume_object()[key]; } -simdjson_inline error_code document::consume() noexcept { - auto error = iter.skip_child(0); - if(error) { iter.abandon(); } - return error; -} - -simdjson_inline simdjson_result document::raw_json() noexcept { - auto _iter = get_root_value_iterator(); - const uint8_t * starting_point{_iter.peek_start()}; - auto error = consume(); - if(error) { return error; } - // After 'consume()', we could be left pointing just beyond the document, but that - // is ok because we are not going to dereference the final pointer position, we just - // use it to compute the length in bytes. - const uint8_t * final_point{iter.unsafe_pointer()}; - return std::string_view(reinterpret_cast(starting_point), size_t(final_point - starting_point)); -} - -simdjson_inline simdjson_result document::type() noexcept { - return get_root_value_iterator().type(); +simdjson_inline simdjson_result value::type() noexcept { + return iter.type(); } -simdjson_inline simdjson_result document::is_scalar() noexcept { +simdjson_inline simdjson_result value::is_scalar() noexcept { json_type this_type; auto error = type().get(this_type); if(error) { return error; } return ! ((this_type == json_type::array) || (this_type == json_type::object)); } -simdjson_inline simdjson_result document::is_string() noexcept { +simdjson_inline simdjson_result value::is_string() noexcept { json_type this_type; auto error = type().get(this_type); if(error) { return error; } return (this_type == json_type::string); } -simdjson_inline bool document::is_negative() noexcept { - return get_root_value_iterator().is_root_negative(); + +simdjson_inline bool value::is_negative() noexcept { + return iter.is_negative(); } -simdjson_inline simdjson_result document::is_integer() noexcept { - return get_root_value_iterator().is_root_integer(true); +simdjson_inline simdjson_result value::is_integer() noexcept { + return iter.is_integer(); +} +simdjson_warn_unused simdjson_inline simdjson_result value::get_number_type() noexcept { + return iter.get_number_type(); +} +simdjson_warn_unused simdjson_inline simdjson_result value::get_number() noexcept { + return iter.get_number(); } -simdjson_inline simdjson_result document::get_number_type() noexcept { - return get_root_value_iterator().get_root_number_type(true); +simdjson_inline std::string_view value::raw_json_token() noexcept { + return std::string_view(reinterpret_cast(iter.peek_start()), iter.peek_start_length()); } -simdjson_inline simdjson_result document::get_number() noexcept { - return get_root_value_iterator().get_root_number(true); +simdjson_inline simdjson_result value::raw_json() noexcept { + json_type t; + SIMDJSON_TRY(type().get(t)); + switch (t) + { + case json_type::array: { + ondemand::array array; + SIMDJSON_TRY(get_array().get(array)); + return array.raw_json(); + } + case json_type::object: { + ondemand::object object; + SIMDJSON_TRY(get_object().get(object)); + return object.raw_json(); + } + default: + return raw_json_token(); + } } +simdjson_inline simdjson_result value::current_location() noexcept { + return iter.json_iter().current_location(); +} -simdjson_inline simdjson_result document::raw_json_token() noexcept { - auto _iter = get_root_value_iterator(); - return std::string_view(reinterpret_cast(_iter.peek_start()), _iter.peek_root_length()); +simdjson_inline int32_t value::current_depth() const noexcept{ + return iter.json_iter().depth(); } -simdjson_inline simdjson_result document::at_pointer(std::string_view json_pointer) noexcept { - rewind(); // Rewind the document each time at_pointer is called - if (json_pointer.empty()) { - return this->get_value(); +inline bool is_pointer_well_formed(std::string_view json_pointer) noexcept { + if (simdjson_unlikely(json_pointer.empty())) { // can't be + return false; + } + if (simdjson_unlikely(json_pointer[0] != '/')) { + return false; + } + size_t escape = json_pointer.find('~'); + if (escape == std::string_view::npos) { + return true; + } + if (escape == json_pointer.size() - 1) { + return false; } + if (json_pointer[escape + 1] != '0' && json_pointer[escape + 1] != '1') { + return false; + } + return true; +} + +simdjson_inline simdjson_result value::at_pointer(std::string_view json_pointer) noexcept { json_type t; SIMDJSON_TRY(type().get(t)); switch (t) @@ -80334,15 +83203,15 @@ simdjson_inline simdjson_result document::at_pointer(std::string_view jso case json_type::object: return (*this).get_object().at_pointer(json_pointer); default: + // a non-empty string can be invalid, or accessing a primitive (issue 2154) + if (is_pointer_well_formed(json_pointer)) { + return NO_SUCH_FIELD; + } return INVALID_JSON_POINTER; } } -simdjson_inline simdjson_result document::at_path(std::string_view json_path) noexcept { - rewind(); // Rewind the document each time at_pointer is called - if (json_path.empty()) { - return this->get_value(); - } +simdjson_inline simdjson_result value::at_path(std::string_view json_path) noexcept { json_type t; SIMDJSON_TRY(type().get(t)); switch (t) { @@ -80361,680 +83230,1319 @@ simdjson_inline simdjson_result document::at_path(std::string_view json_p namespace simdjson { -simdjson_inline simdjson_result::simdjson_result( - ppc64::ondemand::document &&value +simdjson_inline simdjson_result::simdjson_result( + ppc64::ondemand::value &&value ) noexcept : - implementation_simdjson_result_base( - std::forward(value) + implementation_simdjson_result_base( + std::forward(value) ) { } -simdjson_inline simdjson_result::simdjson_result( +simdjson_inline simdjson_result::simdjson_result( error_code error ) noexcept : - implementation_simdjson_result_base( - error - ) + implementation_simdjson_result_base(error) { } -simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { +simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { if (error()) { return error(); } return first.count_elements(); } -simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { +simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { if (error()) { return error(); } return first.count_fields(); } -simdjson_inline simdjson_result simdjson_result::at(size_t index) & noexcept { +simdjson_inline simdjson_result simdjson_result::at(size_t index) noexcept { if (error()) { return error(); } return first.at(index); } -simdjson_inline error_code simdjson_result::rewind() noexcept { - if (error()) { return error(); } - first.rewind(); - return SUCCESS; -} -simdjson_inline simdjson_result simdjson_result::begin() & noexcept { +simdjson_inline simdjson_result simdjson_result::begin() & noexcept { if (error()) { return error(); } return first.begin(); } -simdjson_inline simdjson_result simdjson_result::end() & noexcept { +simdjson_inline simdjson_result simdjson_result::end() & noexcept { + if (error()) { return error(); } return {}; } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) & noexcept { + +simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) noexcept { if (error()) { return error(); } - return first.find_field_unordered(key); + return first.find_field(key); } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field(const char *key) noexcept { if (error()) { return error(); } - return first.find_field_unordered(key); + return first.find_field(key); } -simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) & noexcept { + +simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) noexcept { if (error()) { return error(); } - return first[key]; + return first.find_field_unordered(key); } -simdjson_inline simdjson_result simdjson_result::operator[](const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) noexcept { if (error()) { return error(); } - return first[key]; + return first.find_field_unordered(key); } -simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) & noexcept { + +simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) noexcept { if (error()) { return error(); } - return first.find_field(key); + return first[key]; } -simdjson_inline simdjson_result simdjson_result::find_field(const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::operator[](const char *key) noexcept { if (error()) { return error(); } - return first.find_field(key); + return first[key]; } -simdjson_inline simdjson_result simdjson_result::get_array() & noexcept { + +simdjson_inline simdjson_result simdjson_result::get_array() noexcept { if (error()) { return error(); } return first.get_array(); } -simdjson_inline simdjson_result simdjson_result::get_object() & noexcept { +simdjson_inline simdjson_result simdjson_result::get_object() noexcept { if (error()) { return error(); } return first.get_object(); } -simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { +simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { if (error()) { return error(); } return first.get_uint64(); } -simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { if (error()) { return error(); } return first.get_uint64_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { +simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { if (error()) { return error(); } return first.get_int64(); } -simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { if (error()) { return error(); } return first.get_int64_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_double() noexcept { +simdjson_inline simdjson_result simdjson_result::get_double() noexcept { if (error()) { return error(); } return first.get_double(); } -simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { if (error()) { return error(); } return first.get_double_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { +simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { if (error()) { return error(); } return first.get_string(allow_replacement); } template -simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { +simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { if (error()) { return error(); } return first.get_string(receiver, allow_replacement); } -simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { if (error()) { return error(); } return first.get_wobbly_string(); } -simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { if (error()) { return error(); } return first.get_raw_json_string(); } -simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { +simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { if (error()) { return error(); } return first.get_bool(); } -simdjson_inline simdjson_result simdjson_result::get_value() noexcept { - if (error()) { return error(); } - return first.get_value(); -} -simdjson_inline simdjson_result simdjson_result::is_null() noexcept { +simdjson_inline simdjson_result simdjson_result::is_null() noexcept { if (error()) { return error(); } return first.is_null(); } -template -simdjson_inline simdjson_result simdjson_result::get() & noexcept { +template<> simdjson_inline error_code simdjson_result::get(ppc64::ondemand::value &out) noexcept { if (error()) { return error(); } - return first.get(); + out = first; + return SUCCESS; } -template -simdjson_deprecated simdjson_inline simdjson_result simdjson_result::get() && noexcept { + +template simdjson_inline simdjson_result simdjson_result::get() noexcept { if (error()) { return error(); } - return std::forward(first).get(); + return first.get(); } -template -simdjson_inline error_code simdjson_result::get(T &out) & noexcept { +template simdjson_inline error_code simdjson_result::get(T &out) noexcept { if (error()) { return error(); } return first.get(out); } -template -simdjson_inline error_code simdjson_result::get(T &out) && noexcept { - if (error()) { return error(); } - return std::forward(first).get(out); -} -template<> simdjson_inline simdjson_result simdjson_result::get() & noexcept = delete; -template<> simdjson_deprecated simdjson_inline simdjson_result simdjson_result::get() && noexcept { - if (error()) { return error(); } - return std::forward(first); -} -template<> simdjson_inline error_code simdjson_result::get(ppc64::ondemand::document &out) & noexcept = delete; -template<> simdjson_inline error_code simdjson_result::get(ppc64::ondemand::document &out) && noexcept { +template<> simdjson_inline simdjson_result simdjson_result::get() noexcept { if (error()) { return error(); } - out = std::forward(first); - return SUCCESS; + return std::move(first); } -simdjson_inline simdjson_result simdjson_result::type() noexcept { +simdjson_inline simdjson_result simdjson_result::type() noexcept { if (error()) { return error(); } return first.type(); } - -simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { +simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { if (error()) { return error(); } return first.is_scalar(); } - -simdjson_inline simdjson_result simdjson_result::is_string() noexcept { +simdjson_inline simdjson_result simdjson_result::is_string() noexcept { if (error()) { return error(); } return first.is_string(); } - -simdjson_inline bool simdjson_result::is_negative() noexcept { +simdjson_inline simdjson_result simdjson_result::is_negative() noexcept { if (error()) { return error(); } return first.is_negative(); } - -simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { +simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { if (error()) { return error(); } return first.is_integer(); } - -simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { +simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { if (error()) { return error(); } return first.get_number_type(); } - -simdjson_inline simdjson_result simdjson_result::get_number() noexcept { +simdjson_inline simdjson_result simdjson_result::get_number() noexcept { if (error()) { return error(); } return first.get_number(); } - - #if SIMDJSON_EXCEPTIONS -template ::value == false>::type> -simdjson_inline simdjson_result::operator T() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator ppc64::ondemand::array() & noexcept(false) { +template +simdjson_inline simdjson_result::operator T() noexcept(false) { if (error()) { throw simdjson_error(error()); } - return first; + return first.get(); } -simdjson_inline simdjson_result::operator ppc64::ondemand::object() & noexcept(false) { +simdjson_inline simdjson_result::operator ppc64::ondemand::array() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { +simdjson_inline simdjson_result::operator ppc64::ondemand::object() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator int64_t() noexcept(false) { +simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator double() noexcept(false) { +simdjson_inline simdjson_result::operator int64_t() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { +simdjson_inline simdjson_result::operator double() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator ppc64::ondemand::raw_json_string() noexcept(false) { +simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator bool() noexcept(false) { +simdjson_inline simdjson_result::operator ppc64::ondemand::raw_json_string() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator ppc64::ondemand::value() noexcept(false) { +simdjson_inline simdjson_result::operator bool() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } #endif - -simdjson_inline simdjson_result simdjson_result::current_location() noexcept { +simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { if (error()) { return error(); } - return first.current_location(); + return first.raw_json_token(); } -simdjson_inline bool simdjson_result::at_end() const noexcept { +simdjson_inline simdjson_result simdjson_result::raw_json() noexcept { if (error()) { return error(); } - return first.at_end(); + return first.raw_json(); } - -simdjson_inline int32_t simdjson_result::current_depth() const noexcept { +simdjson_inline simdjson_result simdjson_result::current_location() noexcept { if (error()) { return error(); } - return first.current_depth(); + return first.current_location(); } -simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { +simdjson_inline simdjson_result simdjson_result::current_depth() const noexcept { if (error()) { return error(); } - return first.raw_json_token(); + return first.current_depth(); } -simdjson_inline simdjson_result simdjson_result::at_pointer(std::string_view json_pointer) noexcept { - if (error()) { return error(); } +simdjson_inline simdjson_result simdjson_result::at_pointer( + std::string_view json_pointer) noexcept { + if (error()) { + return error(); + } return first.at_pointer(json_pointer); } -simdjson_inline simdjson_result simdjson_result::at_path(std::string_view json_path) noexcept { - if (error()) { return error(); } +simdjson_inline simdjson_result simdjson_result::at_path( + std::string_view json_path) noexcept { + if (error()) { + return error(); + } return first.at_path(json_path); } } // namespace simdjson +#endif // SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H +/* end file simdjson/generic/ondemand/value-inl.h for ppc64 */ +/* including simdjson/generic/ondemand/document-inl.h for ppc64: #include "simdjson/generic/ondemand/document-inl.h" */ +/* begin file simdjson/generic/ondemand/document-inl.h for ppc64 */ +#ifndef SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H + +/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ +/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/deserialize.h" */ +/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ namespace simdjson { namespace ppc64 { namespace ondemand { -simdjson_inline document_reference::document_reference() noexcept : doc{nullptr} {} -simdjson_inline document_reference::document_reference(document &d) noexcept : doc(&d) {} -simdjson_inline void document_reference::rewind() noexcept { doc->rewind(); } -simdjson_inline simdjson_result document_reference::get_array() & noexcept { return doc->get_array(); } -simdjson_inline simdjson_result document_reference::get_object() & noexcept { return doc->get_object(); } -/** - * The document_reference instances are used primarily/solely for streams of JSON - * documents. - * We decided that calling 'get_double()' on the JSON document '1.233 blabla' should - * give an error, so we check for trailing content. - * - * However, for streams of JSON documents, we want to be able to start from - * "321" "321" "321" - * and parse it successfully as a stream of JSON documents, calling get_uint64_in_string() - * successfully each time. - * - * To achieve this result, we pass a 'false' to a get_root_value_iterator() method: - * this indicates that we allow trailing content. - */ -simdjson_inline simdjson_result document_reference::get_uint64() noexcept { return doc->get_root_value_iterator().get_root_uint64(false); } -simdjson_inline simdjson_result document_reference::get_uint64_in_string() noexcept { return doc->get_root_value_iterator().get_root_uint64_in_string(false); } -simdjson_inline simdjson_result document_reference::get_int64() noexcept { return doc->get_root_value_iterator().get_root_int64(false); } -simdjson_inline simdjson_result document_reference::get_int64_in_string() noexcept { return doc->get_root_value_iterator().get_root_int64_in_string(false); } -simdjson_inline simdjson_result document_reference::get_double() noexcept { return doc->get_root_value_iterator().get_root_double(false); } -simdjson_inline simdjson_result document_reference::get_double_in_string() noexcept { return doc->get_root_value_iterator().get_root_double(false); } -simdjson_inline simdjson_result document_reference::get_string(bool allow_replacement) noexcept { return doc->get_root_value_iterator().get_root_string(false, allow_replacement); } -template -simdjson_inline error_code document_reference::get_string(string_type& receiver, bool allow_replacement) noexcept { return doc->get_root_value_iterator().get_root_string(receiver, false, allow_replacement); } -simdjson_inline simdjson_result document_reference::get_wobbly_string() noexcept { return doc->get_root_value_iterator().get_root_wobbly_string(false); } -simdjson_inline simdjson_result document_reference::get_raw_json_string() noexcept { return doc->get_root_value_iterator().get_root_raw_json_string(false); } -simdjson_inline simdjson_result document_reference::get_bool() noexcept { return doc->get_root_value_iterator().get_root_bool(false); } -simdjson_inline simdjson_result document_reference::get_value() noexcept { return doc->get_value(); } -simdjson_inline simdjson_result document_reference::is_null() noexcept { return doc->get_root_value_iterator().is_root_null(false); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_array(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_object(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_raw_json_string(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_string(false); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_double(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_uint64(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_int64(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_bool(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_value(); } -#if SIMDJSON_EXCEPTIONS -template -simdjson_inline document_reference::operator T() noexcept(false) { return get(); } -simdjson_inline document_reference::operator array() & noexcept(false) { return array(*doc); } -simdjson_inline document_reference::operator object() & noexcept(false) { return object(*doc); } -simdjson_inline document_reference::operator uint64_t() noexcept(false) { return get_uint64(); } -simdjson_inline document_reference::operator int64_t() noexcept(false) { return get_int64(); } -simdjson_inline document_reference::operator double() noexcept(false) { return get_double(); } -simdjson_inline document_reference::operator std::string_view() noexcept(false) { return std::string_view(*doc); } -simdjson_inline document_reference::operator raw_json_string() noexcept(false) { return get_raw_json_string(); } -simdjson_inline document_reference::operator bool() noexcept(false) { return get_bool(); } -simdjson_inline document_reference::operator value() noexcept(false) { return value(*doc); } -#endif -simdjson_inline simdjson_result document_reference::count_elements() & noexcept { return doc->count_elements(); } -simdjson_inline simdjson_result document_reference::count_fields() & noexcept { return doc->count_fields(); } -simdjson_inline simdjson_result document_reference::at(size_t index) & noexcept { return doc->at(index); } -simdjson_inline simdjson_result document_reference::begin() & noexcept { return doc->begin(); } -simdjson_inline simdjson_result document_reference::end() & noexcept { return doc->end(); } -simdjson_inline simdjson_result document_reference::find_field(std::string_view key) & noexcept { return doc->find_field(key); } -simdjson_inline simdjson_result document_reference::find_field(const char *key) & noexcept { return doc->find_field(key); } -simdjson_inline simdjson_result document_reference::operator[](std::string_view key) & noexcept { return (*doc)[key]; } -simdjson_inline simdjson_result document_reference::operator[](const char *key) & noexcept { return (*doc)[key]; } -simdjson_inline simdjson_result document_reference::find_field_unordered(std::string_view key) & noexcept { return doc->find_field_unordered(key); } -simdjson_inline simdjson_result document_reference::find_field_unordered(const char *key) & noexcept { return doc->find_field_unordered(key); } -simdjson_inline simdjson_result document_reference::type() noexcept { return doc->type(); } -simdjson_inline simdjson_result document_reference::is_scalar() noexcept { return doc->is_scalar(); } -simdjson_inline simdjson_result document_reference::is_string() noexcept { return doc->is_string(); } -simdjson_inline simdjson_result document_reference::current_location() noexcept { return doc->current_location(); } -simdjson_inline int32_t document_reference::current_depth() const noexcept { return doc->current_depth(); } -simdjson_inline bool document_reference::is_negative() noexcept { return doc->is_negative(); } -simdjson_inline simdjson_result document_reference::is_integer() noexcept { return doc->get_root_value_iterator().is_root_integer(false); } -simdjson_inline simdjson_result document_reference::get_number_type() noexcept { return doc->get_root_value_iterator().get_root_number_type(false); } -simdjson_inline simdjson_result document_reference::get_number() noexcept { return doc->get_root_value_iterator().get_root_number(false); } -simdjson_inline simdjson_result document_reference::raw_json_token() noexcept { return doc->raw_json_token(); } -simdjson_inline simdjson_result document_reference::at_pointer(std::string_view json_pointer) noexcept { return doc->at_pointer(json_pointer); } -simdjson_inline simdjson_result document_reference::at_path(std::string_view json_path) noexcept { return doc->at_path(json_path); } -simdjson_inline simdjson_result document_reference::raw_json() noexcept { return doc->raw_json();} -simdjson_inline document_reference::operator document&() const noexcept { return *doc; } +simdjson_inline document::document(ondemand::json_iterator &&_iter) noexcept + : iter{std::forward(_iter)} +{ + logger::log_start_value(iter, "document"); +} -} // namespace ondemand -} // namespace ppc64 -} // namespace simdjson +simdjson_inline document document::start(json_iterator &&iter) noexcept { + return document(std::forward(iter)); +} +inline void document::rewind() noexcept { + iter.rewind(); +} +inline std::string document::to_debug_string() noexcept { + return iter.to_string(); +} -namespace simdjson { -simdjson_inline simdjson_result::simdjson_result(ppc64::ondemand::document_reference value, error_code error) - noexcept : implementation_simdjson_result_base(std::forward(value), error) {} +inline simdjson_result document::current_location() const noexcept { + return iter.current_location(); +} +inline int32_t document::current_depth() const noexcept { + return iter.depth(); +} -simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { - if (error()) { return error(); } - return first.count_elements(); +inline bool document::at_end() const noexcept { + return iter.at_end(); } -simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { - if (error()) { return error(); } - return first.count_fields(); + + +inline bool document::is_alive() noexcept { + return iter.is_alive(); } -simdjson_inline simdjson_result simdjson_result::at(size_t index) & noexcept { - if (error()) { return error(); } - return first.at(index); +simdjson_inline value_iterator document::resume_value_iterator() noexcept { + return value_iterator(&iter, 1, iter.root_position()); } -simdjson_inline error_code simdjson_result::rewind() noexcept { - if (error()) { return error(); } - first.rewind(); - return SUCCESS; +simdjson_inline value_iterator document::get_root_value_iterator() noexcept { + return resume_value_iterator(); } -simdjson_inline simdjson_result simdjson_result::begin() & noexcept { - if (error()) { return error(); } - return first.begin(); +simdjson_inline simdjson_result document::start_or_resume_object() noexcept { + if (iter.at_root()) { + return get_object(); + } else { + return object::resume(resume_value_iterator()); + } } -simdjson_inline simdjson_result simdjson_result::end() & noexcept { - return {}; +simdjson_inline simdjson_result document::get_value() noexcept { + // Make sure we start any arrays or objects before returning, so that start_root_() + // gets called. + + // It is the convention throughout the code that the macro `SIMDJSON_DEVELOPMENT_CHECKS` determines whether + // we check for OUT_OF_ORDER_ITERATION. Proper on::demand code should never trigger this error. +#if SIMDJSON_DEVELOPMENT_CHECKS + if (!iter.at_root()) { return OUT_OF_ORDER_ITERATION; } +#endif + // assert_at_root() serves two purposes: in Debug mode, whether or not + // SIMDJSON_DEVELOPMENT_CHECKS is set or not, it checks that we are at the root of + // the document (this will typically be redundant). In release mode, it generates + // SIMDJSON_ASSUME statements to allow the compiler to make assumptions. + iter.assert_at_root(); + switch (*iter.peek()) { + case '[': { + // The following lines check that the document ends with ]. + auto value_iterator = get_root_value_iterator(); + auto error = value_iterator.check_root_array(); + if(error) { return error; } + return value(get_root_value_iterator()); + } + case '{': { + // The following lines would check that the document ends with }. + auto value_iterator = get_root_value_iterator(); + auto error = value_iterator.check_root_object(); + if(error) { return error; } + return value(get_root_value_iterator()); + } + default: + // Unfortunately, scalar documents are a special case in simdjson and they cannot + // be safely converted to value instances. + return SCALAR_DOCUMENT_AS_VALUE; + } } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) & noexcept { +simdjson_inline simdjson_result document::get_array() & noexcept { + auto value = get_root_value_iterator(); + return array::start_root(value); +} +simdjson_inline simdjson_result document::get_object() & noexcept { + auto value = get_root_value_iterator(); + return object::start_root(value); +} + +/** + * We decided that calling 'get_double()' on the JSON document '1.233 blabla' should + * give an error, so we check for trailing content. We want to disallow trailing + * content. + * Thus, in several implementations below, we pass a 'true' parameter value to + * a get_root_value_iterator() method: this indicates that we disallow trailing content. + */ + +simdjson_inline simdjson_result document::get_uint64() noexcept { + return get_root_value_iterator().get_root_uint64(true); +} +simdjson_inline simdjson_result document::get_uint64_in_string() noexcept { + return get_root_value_iterator().get_root_uint64_in_string(true); +} +simdjson_inline simdjson_result document::get_int64() noexcept { + return get_root_value_iterator().get_root_int64(true); +} +simdjson_inline simdjson_result document::get_int64_in_string() noexcept { + return get_root_value_iterator().get_root_int64_in_string(true); +} +simdjson_inline simdjson_result document::get_double() noexcept { + return get_root_value_iterator().get_root_double(true); +} +simdjson_inline simdjson_result document::get_double_in_string() noexcept { + return get_root_value_iterator().get_root_double_in_string(true); +} +simdjson_inline simdjson_result document::get_string(bool allow_replacement) noexcept { + return get_root_value_iterator().get_root_string(true, allow_replacement); +} +template +simdjson_inline error_code document::get_string(string_type& receiver, bool allow_replacement) noexcept { + return get_root_value_iterator().get_root_string(receiver, true, allow_replacement); +} +simdjson_inline simdjson_result document::get_wobbly_string() noexcept { + return get_root_value_iterator().get_root_wobbly_string(true); +} +simdjson_inline simdjson_result document::get_raw_json_string() noexcept { + return get_root_value_iterator().get_root_raw_json_string(true); +} +simdjson_inline simdjson_result document::get_bool() noexcept { + return get_root_value_iterator().get_root_bool(true); +} +simdjson_inline simdjson_result document::is_null() noexcept { + return get_root_value_iterator().is_root_null(true); +} + +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_array(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_object(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_raw_json_string(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_string(false); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_double(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_uint64(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_int64(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_bool(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_value(); } + +template<> simdjson_inline error_code document::get(array& out) & noexcept { return get_array().get(out); } +template<> simdjson_inline error_code document::get(object& out) & noexcept { return get_object().get(out); } +template<> simdjson_inline error_code document::get(raw_json_string& out) & noexcept { return get_raw_json_string().get(out); } +template<> simdjson_inline error_code document::get(std::string_view& out) & noexcept { return get_string(false).get(out); } +template<> simdjson_inline error_code document::get(double& out) & noexcept { return get_double().get(out); } +template<> simdjson_inline error_code document::get(uint64_t& out) & noexcept { return get_uint64().get(out); } +template<> simdjson_inline error_code document::get(int64_t& out) & noexcept { return get_int64().get(out); } +template<> simdjson_inline error_code document::get(bool& out) & noexcept { return get_bool().get(out); } +template<> simdjson_inline error_code document::get(value& out) & noexcept { return get_value().get(out); } + +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_raw_json_string(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_string(false); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_double(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_uint64(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_int64(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_bool(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_value(); } + +#if SIMDJSON_EXCEPTIONS +template +simdjson_deprecated simdjson_inline document::operator T() && noexcept(false) { return get(); } +template +simdjson_inline document::operator T() & noexcept(false) { return get(); } +simdjson_inline document::operator array() & noexcept(false) { return get_array(); } +simdjson_inline document::operator object() & noexcept(false) { return get_object(); } +simdjson_inline document::operator uint64_t() noexcept(false) { return get_uint64(); } +simdjson_inline document::operator int64_t() noexcept(false) { return get_int64(); } +simdjson_inline document::operator double() noexcept(false) { return get_double(); } +simdjson_inline document::operator std::string_view() noexcept(false) { return get_string(false); } +simdjson_inline document::operator raw_json_string() noexcept(false) { return get_raw_json_string(); } +simdjson_inline document::operator bool() noexcept(false) { return get_bool(); } +simdjson_inline document::operator value() noexcept(false) { return get_value(); } + +#endif +simdjson_inline simdjson_result document::count_elements() & noexcept { + auto a = get_array(); + simdjson_result answer = a.count_elements(); + /* If there was an array, we are now left pointing at its first element. */ + if(answer.error() == SUCCESS) { rewind(); } + return answer; +} +simdjson_inline simdjson_result document::count_fields() & noexcept { + auto a = get_object(); + simdjson_result answer = a.count_fields(); + /* If there was an object, we are now left pointing at its first element. */ + if(answer.error() == SUCCESS) { rewind(); } + return answer; +} +simdjson_inline simdjson_result document::at(size_t index) & noexcept { + auto a = get_array(); + return a.at(index); +} +simdjson_inline simdjson_result document::begin() & noexcept { + return get_array().begin(); +} +simdjson_inline simdjson_result document::end() & noexcept { + return {}; +} + +simdjson_inline simdjson_result document::find_field(std::string_view key) & noexcept { + return start_or_resume_object().find_field(key); +} +simdjson_inline simdjson_result document::find_field(const char *key) & noexcept { + return start_or_resume_object().find_field(key); +} +simdjson_inline simdjson_result document::find_field_unordered(std::string_view key) & noexcept { + return start_or_resume_object().find_field_unordered(key); +} +simdjson_inline simdjson_result document::find_field_unordered(const char *key) & noexcept { + return start_or_resume_object().find_field_unordered(key); +} +simdjson_inline simdjson_result document::operator[](std::string_view key) & noexcept { + return start_or_resume_object()[key]; +} +simdjson_inline simdjson_result document::operator[](const char *key) & noexcept { + return start_or_resume_object()[key]; +} + +simdjson_inline error_code document::consume() noexcept { + bool scalar = false; + auto error = is_scalar().get(scalar); + if(error) { return error; } + if(scalar) { + iter.return_current_and_advance(); + return SUCCESS; + } + error = iter.skip_child(0); + if(error) { iter.abandon(); } + return error; +} + +simdjson_inline simdjson_result document::raw_json() noexcept { + auto _iter = get_root_value_iterator(); + const uint8_t * starting_point{_iter.peek_start()}; + auto error = consume(); + if(error) { return error; } + // After 'consume()', we could be left pointing just beyond the document, but that + // is ok because we are not going to dereference the final pointer position, we just + // use it to compute the length in bytes. + const uint8_t * final_point{iter.unsafe_pointer()}; + return std::string_view(reinterpret_cast(starting_point), size_t(final_point - starting_point)); +} + +simdjson_inline simdjson_result document::type() noexcept { + return get_root_value_iterator().type(); +} + +simdjson_inline simdjson_result document::is_scalar() noexcept { + // For more speed, we could do: + // return iter.is_single_token(); + json_type this_type; + auto error = type().get(this_type); + if(error) { return error; } + return ! ((this_type == json_type::array) || (this_type == json_type::object)); +} + +simdjson_inline simdjson_result document::is_string() noexcept { + json_type this_type; + auto error = type().get(this_type); + if(error) { return error; } + return (this_type == json_type::string); +} + +simdjson_inline bool document::is_negative() noexcept { + return get_root_value_iterator().is_root_negative(); +} + +simdjson_inline simdjson_result document::is_integer() noexcept { + return get_root_value_iterator().is_root_integer(true); +} + +simdjson_inline simdjson_result document::get_number_type() noexcept { + return get_root_value_iterator().get_root_number_type(true); +} + +simdjson_inline simdjson_result document::get_number() noexcept { + return get_root_value_iterator().get_root_number(true); +} + + +simdjson_inline simdjson_result document::raw_json_token() noexcept { + auto _iter = get_root_value_iterator(); + return std::string_view(reinterpret_cast(_iter.peek_start()), _iter.peek_root_length()); +} + +simdjson_inline simdjson_result document::at_pointer(std::string_view json_pointer) noexcept { + rewind(); // Rewind the document each time at_pointer is called + if (json_pointer.empty()) { + return this->get_value(); + } + json_type t; + SIMDJSON_TRY(type().get(t)); + switch (t) + { + case json_type::array: + return (*this).get_array().at_pointer(json_pointer); + case json_type::object: + return (*this).get_object().at_pointer(json_pointer); + default: + return INVALID_JSON_POINTER; + } +} + +simdjson_inline simdjson_result document::at_path(std::string_view json_path) noexcept { + rewind(); // Rewind the document each time at_pointer is called + if (json_path.empty()) { + return this->get_value(); + } + json_type t; + SIMDJSON_TRY(type().get(t)); + switch (t) { + case json_type::array: + return (*this).get_array().at_path(json_path); + case json_type::object: + return (*this).get_object().at_path(json_path); + default: + return INVALID_JSON_POINTER; + } +} + +} // namespace ondemand +} // namespace ppc64 +} // namespace simdjson + +namespace simdjson { + +simdjson_inline simdjson_result::simdjson_result( + ppc64::ondemand::document &&value +) noexcept : + implementation_simdjson_result_base( + std::forward(value) + ) +{ +} +simdjson_inline simdjson_result::simdjson_result( + error_code error +) noexcept : + implementation_simdjson_result_base( + error + ) +{ +} +simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { + if (error()) { return error(); } + return first.count_elements(); +} +simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { + if (error()) { return error(); } + return first.count_fields(); +} +simdjson_inline simdjson_result simdjson_result::at(size_t index) & noexcept { + if (error()) { return error(); } + return first.at(index); +} +simdjson_inline error_code simdjson_result::rewind() noexcept { + if (error()) { return error(); } + first.rewind(); + return SUCCESS; +} +simdjson_inline simdjson_result simdjson_result::begin() & noexcept { + if (error()) { return error(); } + return first.begin(); +} +simdjson_inline simdjson_result simdjson_result::end() & noexcept { + return {}; +} +simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) & noexcept { if (error()) { return error(); } return first.find_field_unordered(key); } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) & noexcept { if (error()) { return error(); } return first.find_field_unordered(key); } -simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) & noexcept { +simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) & noexcept { if (error()) { return error(); } return first[key]; } -simdjson_inline simdjson_result simdjson_result::operator[](const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::operator[](const char *key) & noexcept { if (error()) { return error(); } return first[key]; } -simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) & noexcept { if (error()) { return error(); } return first.find_field(key); } -simdjson_inline simdjson_result simdjson_result::find_field(const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field(const char *key) & noexcept { if (error()) { return error(); } return first.find_field(key); } -simdjson_inline simdjson_result simdjson_result::get_array() & noexcept { +simdjson_inline simdjson_result simdjson_result::get_array() & noexcept { if (error()) { return error(); } return first.get_array(); } -simdjson_inline simdjson_result simdjson_result::get_object() & noexcept { +simdjson_inline simdjson_result simdjson_result::get_object() & noexcept { if (error()) { return error(); } return first.get_object(); } -simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { +simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { if (error()) { return error(); } return first.get_uint64(); } -simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { if (error()) { return error(); } return first.get_uint64_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { +simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { if (error()) { return error(); } return first.get_int64(); } -simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { if (error()) { return error(); } return first.get_int64_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_double() noexcept { +simdjson_inline simdjson_result simdjson_result::get_double() noexcept { if (error()) { return error(); } return first.get_double(); } -simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { if (error()) { return error(); } return first.get_double_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { +simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { if (error()) { return error(); } return first.get_string(allow_replacement); } template -simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { +simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { if (error()) { return error(); } return first.get_string(receiver, allow_replacement); } -simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { if (error()) { return error(); } return first.get_wobbly_string(); } -simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { if (error()) { return error(); } return first.get_raw_json_string(); } -simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { +simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { if (error()) { return error(); } return first.get_bool(); } -simdjson_inline simdjson_result simdjson_result::get_value() noexcept { +simdjson_inline simdjson_result simdjson_result::get_value() noexcept { if (error()) { return error(); } return first.get_value(); } -simdjson_inline simdjson_result simdjson_result::is_null() noexcept { +simdjson_inline simdjson_result simdjson_result::is_null() noexcept { if (error()) { return error(); } return first.is_null(); } -simdjson_inline simdjson_result simdjson_result::type() noexcept { + +template +simdjson_inline simdjson_result simdjson_result::get() & noexcept { + if (error()) { return error(); } + return first.get(); +} +template +simdjson_deprecated simdjson_inline simdjson_result simdjson_result::get() && noexcept { + if (error()) { return error(); } + return std::forward(first).get(); +} +template +simdjson_inline error_code simdjson_result::get(T &out) & noexcept { + if (error()) { return error(); } + return first.get(out); +} +template +simdjson_inline error_code simdjson_result::get(T &out) && noexcept { + if (error()) { return error(); } + return std::forward(first).get(out); +} + +template<> simdjson_inline simdjson_result simdjson_result::get() & noexcept = delete; +template<> simdjson_deprecated simdjson_inline simdjson_result simdjson_result::get() && noexcept { + if (error()) { return error(); } + return std::forward(first); +} +template<> simdjson_inline error_code simdjson_result::get(ppc64::ondemand::document &out) & noexcept = delete; +template<> simdjson_inline error_code simdjson_result::get(ppc64::ondemand::document &out) && noexcept { + if (error()) { return error(); } + out = std::forward(first); + return SUCCESS; +} + +simdjson_inline simdjson_result simdjson_result::type() noexcept { if (error()) { return error(); } return first.type(); } -simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { + +simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { if (error()) { return error(); } return first.is_scalar(); } -simdjson_inline simdjson_result simdjson_result::is_string() noexcept { + +simdjson_inline simdjson_result simdjson_result::is_string() noexcept { if (error()) { return error(); } return first.is_string(); } -simdjson_inline simdjson_result simdjson_result::is_negative() noexcept { + +simdjson_inline bool simdjson_result::is_negative() noexcept { if (error()) { return error(); } return first.is_negative(); } -simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { + +simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { if (error()) { return error(); } return first.is_integer(); } -simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { + +simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { if (error()) { return error(); } return first.get_number_type(); } -simdjson_inline simdjson_result simdjson_result::get_number() noexcept { + +simdjson_inline simdjson_result simdjson_result::get_number() noexcept { if (error()) { return error(); } return first.get_number(); } + + #if SIMDJSON_EXCEPTIONS -template ::value == false>::type> -simdjson_inline simdjson_result::operator T() noexcept(false) { +template ::value == false>::type> +simdjson_inline simdjson_result::operator T() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator ppc64::ondemand::array() & noexcept(false) { +simdjson_inline simdjson_result::operator ppc64::ondemand::array() & noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator ppc64::ondemand::object() & noexcept(false) { +simdjson_inline simdjson_result::operator ppc64::ondemand::object() & noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { +simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator int64_t() noexcept(false) { +simdjson_inline simdjson_result::operator int64_t() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator double() noexcept(false) { +simdjson_inline simdjson_result::operator double() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { +simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator ppc64::ondemand::raw_json_string() noexcept(false) { +simdjson_inline simdjson_result::operator ppc64::ondemand::raw_json_string() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator bool() noexcept(false) { +simdjson_inline simdjson_result::operator bool() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator ppc64::ondemand::value() noexcept(false) { +simdjson_inline simdjson_result::operator ppc64::ondemand::value() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } #endif -simdjson_inline simdjson_result simdjson_result::current_location() noexcept { + +simdjson_inline simdjson_result simdjson_result::current_location() noexcept { if (error()) { return error(); } return first.current_location(); } -simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { +simdjson_inline bool simdjson_result::at_end() const noexcept { + if (error()) { return error(); } + return first.at_end(); +} + + +simdjson_inline int32_t simdjson_result::current_depth() const noexcept { + if (error()) { return error(); } + return first.current_depth(); +} + +simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { if (error()) { return error(); } return first.raw_json_token(); } -simdjson_inline simdjson_result simdjson_result::at_pointer(std::string_view json_pointer) noexcept { +simdjson_inline simdjson_result simdjson_result::at_pointer(std::string_view json_pointer) noexcept { if (error()) { return error(); } return first.at_pointer(json_pointer); } -simdjson_inline simdjson_result simdjson_result::at_path(std::string_view json_path) noexcept { - if (error()) { - return error(); - } +simdjson_inline simdjson_result simdjson_result::at_path(std::string_view json_path) noexcept { + if (error()) { return error(); } return first.at_path(json_path); } } // namespace simdjson -#endif // SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H -/* end file simdjson/generic/ondemand/document-inl.h for ppc64 */ -/* including simdjson/generic/ondemand/document_stream-inl.h for ppc64: #include "simdjson/generic/ondemand/document_stream-inl.h" */ -/* begin file simdjson/generic/ondemand/document_stream-inl.h for ppc64 */ -#ifndef SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H - -/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ -/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document_stream.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/implementation_simdjson_result_base-inl.h" */ -/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ - -#include -#include namespace simdjson { namespace ppc64 { namespace ondemand { -#ifdef SIMDJSON_THREADS_ENABLED - -inline void stage1_worker::finish() { - // After calling "run" someone would call finish() to wait - // for the end of the processing. - // This function will wait until either the thread has done - // the processing or, else, the destructor has been called. - std::unique_lock lock(locking_mutex); - cond_var.wait(lock, [this]{return has_work == false;}); -} - -inline stage1_worker::~stage1_worker() { - // The thread may never outlive the stage1_worker instance - // and will always be stopped/joined before the stage1_worker - // instance is gone. - stop_thread(); -} - -inline void stage1_worker::start_thread() { - std::unique_lock lock(locking_mutex); - if(thread.joinable()) { - return; // This should never happen but we never want to create more than one thread. - } - thread = std::thread([this]{ - while(true) { - std::unique_lock thread_lock(locking_mutex); - // We wait for either "run" or "stop_thread" to be called. - cond_var.wait(thread_lock, [this]{return has_work || !can_work;}); - // If, for some reason, the stop_thread() method was called (i.e., the - // destructor of stage1_worker is called, then we want to immediately destroy - // the thread (and not do any more processing). - if(!can_work) { - break; - } - this->owner->stage1_thread_error = this->owner->run_stage1(*this->stage1_thread_parser, - this->_next_batch_start); - this->has_work = false; - // The condition variable call should be moved after thread_lock.unlock() for performance - // reasons but thread sanitizers may report it as a data race if we do. - // See https://stackoverflow.com/questions/35775501/c-should-condition-variable-be-notified-under-lock - cond_var.notify_one(); // will notify "finish" - thread_lock.unlock(); - } - } - ); -} - - -inline void stage1_worker::stop_thread() { - std::unique_lock lock(locking_mutex); - // We have to make sure that all locks can be released. - can_work = false; - has_work = false; - cond_var.notify_all(); - lock.unlock(); - if(thread.joinable()) { - thread.join(); - } -} - -inline void stage1_worker::run(document_stream * ds, parser * stage1, size_t next_batch_start) { - std::unique_lock lock(locking_mutex); - owner = ds; - _next_batch_start = next_batch_start; - stage1_thread_parser = stage1; - has_work = true; - // The condition variable call should be moved after thread_lock.unlock() for performance - // reasons but thread sanitizers may report it as a data race if we do. - // See https://stackoverflow.com/questions/35775501/c-should-condition-variable-be-notified-under-lock - cond_var.notify_one(); // will notify the thread lock that we have work - lock.unlock(); -} - -#endif // SIMDJSON_THREADS_ENABLED - -simdjson_inline document_stream::document_stream( - ondemand::parser &_parser, - const uint8_t *_buf, +simdjson_inline document_reference::document_reference() noexcept : doc{nullptr} {} +simdjson_inline document_reference::document_reference(document &d) noexcept : doc(&d) {} +simdjson_inline void document_reference::rewind() noexcept { doc->rewind(); } +simdjson_inline simdjson_result document_reference::get_array() & noexcept { return doc->get_array(); } +simdjson_inline simdjson_result document_reference::get_object() & noexcept { return doc->get_object(); } +/** + * The document_reference instances are used primarily/solely for streams of JSON + * documents. + * We decided that calling 'get_double()' on the JSON document '1.233 blabla' should + * give an error, so we check for trailing content. + * + * However, for streams of JSON documents, we want to be able to start from + * "321" "321" "321" + * and parse it successfully as a stream of JSON documents, calling get_uint64_in_string() + * successfully each time. + * + * To achieve this result, we pass a 'false' to a get_root_value_iterator() method: + * this indicates that we allow trailing content. + */ +simdjson_inline simdjson_result document_reference::get_uint64() noexcept { return doc->get_root_value_iterator().get_root_uint64(false); } +simdjson_inline simdjson_result document_reference::get_uint64_in_string() noexcept { return doc->get_root_value_iterator().get_root_uint64_in_string(false); } +simdjson_inline simdjson_result document_reference::get_int64() noexcept { return doc->get_root_value_iterator().get_root_int64(false); } +simdjson_inline simdjson_result document_reference::get_int64_in_string() noexcept { return doc->get_root_value_iterator().get_root_int64_in_string(false); } +simdjson_inline simdjson_result document_reference::get_double() noexcept { return doc->get_root_value_iterator().get_root_double(false); } +simdjson_inline simdjson_result document_reference::get_double_in_string() noexcept { return doc->get_root_value_iterator().get_root_double(false); } +simdjson_inline simdjson_result document_reference::get_string(bool allow_replacement) noexcept { return doc->get_root_value_iterator().get_root_string(false, allow_replacement); } +template +simdjson_inline error_code document_reference::get_string(string_type& receiver, bool allow_replacement) noexcept { return doc->get_root_value_iterator().get_root_string(receiver, false, allow_replacement); } +simdjson_inline simdjson_result document_reference::get_wobbly_string() noexcept { return doc->get_root_value_iterator().get_root_wobbly_string(false); } +simdjson_inline simdjson_result document_reference::get_raw_json_string() noexcept { return doc->get_root_value_iterator().get_root_raw_json_string(false); } +simdjson_inline simdjson_result document_reference::get_bool() noexcept { return doc->get_root_value_iterator().get_root_bool(false); } +simdjson_inline simdjson_result document_reference::get_value() noexcept { return doc->get_value(); } +simdjson_inline simdjson_result document_reference::is_null() noexcept { return doc->get_root_value_iterator().is_root_null(false); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_array(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_object(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_raw_json_string(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_string(false); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_double(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_uint64(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_int64(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_bool(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_value(); } +#if SIMDJSON_EXCEPTIONS +template +simdjson_inline document_reference::operator T() noexcept(false) { return get(); } +simdjson_inline document_reference::operator array() & noexcept(false) { return array(*doc); } +simdjson_inline document_reference::operator object() & noexcept(false) { return object(*doc); } +simdjson_inline document_reference::operator uint64_t() noexcept(false) { return get_uint64(); } +simdjson_inline document_reference::operator int64_t() noexcept(false) { return get_int64(); } +simdjson_inline document_reference::operator double() noexcept(false) { return get_double(); } +simdjson_inline document_reference::operator std::string_view() noexcept(false) { return std::string_view(*doc); } +simdjson_inline document_reference::operator raw_json_string() noexcept(false) { return get_raw_json_string(); } +simdjson_inline document_reference::operator bool() noexcept(false) { return get_bool(); } +simdjson_inline document_reference::operator value() noexcept(false) { return value(*doc); } +#endif +simdjson_inline simdjson_result document_reference::count_elements() & noexcept { return doc->count_elements(); } +simdjson_inline simdjson_result document_reference::count_fields() & noexcept { return doc->count_fields(); } +simdjson_inline simdjson_result document_reference::at(size_t index) & noexcept { return doc->at(index); } +simdjson_inline simdjson_result document_reference::begin() & noexcept { return doc->begin(); } +simdjson_inline simdjson_result document_reference::end() & noexcept { return doc->end(); } +simdjson_inline simdjson_result document_reference::find_field(std::string_view key) & noexcept { return doc->find_field(key); } +simdjson_inline simdjson_result document_reference::find_field(const char *key) & noexcept { return doc->find_field(key); } +simdjson_inline simdjson_result document_reference::operator[](std::string_view key) & noexcept { return (*doc)[key]; } +simdjson_inline simdjson_result document_reference::operator[](const char *key) & noexcept { return (*doc)[key]; } +simdjson_inline simdjson_result document_reference::find_field_unordered(std::string_view key) & noexcept { return doc->find_field_unordered(key); } +simdjson_inline simdjson_result document_reference::find_field_unordered(const char *key) & noexcept { return doc->find_field_unordered(key); } +simdjson_inline simdjson_result document_reference::type() noexcept { return doc->type(); } +simdjson_inline simdjson_result document_reference::is_scalar() noexcept { return doc->is_scalar(); } +simdjson_inline simdjson_result document_reference::is_string() noexcept { return doc->is_string(); } +simdjson_inline simdjson_result document_reference::current_location() noexcept { return doc->current_location(); } +simdjson_inline int32_t document_reference::current_depth() const noexcept { return doc->current_depth(); } +simdjson_inline bool document_reference::is_negative() noexcept { return doc->is_negative(); } +simdjson_inline simdjson_result document_reference::is_integer() noexcept { return doc->get_root_value_iterator().is_root_integer(false); } +simdjson_inline simdjson_result document_reference::get_number_type() noexcept { return doc->get_root_value_iterator().get_root_number_type(false); } +simdjson_inline simdjson_result document_reference::get_number() noexcept { return doc->get_root_value_iterator().get_root_number(false); } +simdjson_inline simdjson_result document_reference::raw_json_token() noexcept { return doc->raw_json_token(); } +simdjson_inline simdjson_result document_reference::at_pointer(std::string_view json_pointer) noexcept { return doc->at_pointer(json_pointer); } +simdjson_inline simdjson_result document_reference::at_path(std::string_view json_path) noexcept { return doc->at_path(json_path); } +simdjson_inline simdjson_result document_reference::raw_json() noexcept { return doc->raw_json();} +simdjson_inline document_reference::operator document&() const noexcept { return *doc; } + +} // namespace ondemand +} // namespace ppc64 +} // namespace simdjson + + + +namespace simdjson { +simdjson_inline simdjson_result::simdjson_result(ppc64::ondemand::document_reference value, error_code error) + noexcept : implementation_simdjson_result_base(std::forward(value), error) {} + + +simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { + if (error()) { return error(); } + return first.count_elements(); +} +simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { + if (error()) { return error(); } + return first.count_fields(); +} +simdjson_inline simdjson_result simdjson_result::at(size_t index) & noexcept { + if (error()) { return error(); } + return first.at(index); +} +simdjson_inline error_code simdjson_result::rewind() noexcept { + if (error()) { return error(); } + first.rewind(); + return SUCCESS; +} +simdjson_inline simdjson_result simdjson_result::begin() & noexcept { + if (error()) { return error(); } + return first.begin(); +} +simdjson_inline simdjson_result simdjson_result::end() & noexcept { + return {}; +} +simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) & noexcept { + if (error()) { return error(); } + return first.find_field_unordered(key); +} +simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) & noexcept { + if (error()) { return error(); } + return first.find_field_unordered(key); +} +simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) & noexcept { + if (error()) { return error(); } + return first[key]; +} +simdjson_inline simdjson_result simdjson_result::operator[](const char *key) & noexcept { + if (error()) { return error(); } + return first[key]; +} +simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) & noexcept { + if (error()) { return error(); } + return first.find_field(key); +} +simdjson_inline simdjson_result simdjson_result::find_field(const char *key) & noexcept { + if (error()) { return error(); } + return first.find_field(key); +} +simdjson_inline simdjson_result simdjson_result::get_array() & noexcept { + if (error()) { return error(); } + return first.get_array(); +} +simdjson_inline simdjson_result simdjson_result::get_object() & noexcept { + if (error()) { return error(); } + return first.get_object(); +} +simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { + if (error()) { return error(); } + return first.get_uint64(); +} +simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { + if (error()) { return error(); } + return first.get_uint64_in_string(); +} +simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { + if (error()) { return error(); } + return first.get_int64(); +} +simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { + if (error()) { return error(); } + return first.get_int64_in_string(); +} +simdjson_inline simdjson_result simdjson_result::get_double() noexcept { + if (error()) { return error(); } + return first.get_double(); +} +simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { + if (error()) { return error(); } + return first.get_double_in_string(); +} +simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { + if (error()) { return error(); } + return first.get_string(allow_replacement); +} +template +simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { + if (error()) { return error(); } + return first.get_string(receiver, allow_replacement); +} +simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { + if (error()) { return error(); } + return first.get_wobbly_string(); +} +simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { + if (error()) { return error(); } + return first.get_raw_json_string(); +} +simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { + if (error()) { return error(); } + return first.get_bool(); +} +simdjson_inline simdjson_result simdjson_result::get_value() noexcept { + if (error()) { return error(); } + return first.get_value(); +} +simdjson_inline simdjson_result simdjson_result::is_null() noexcept { + if (error()) { return error(); } + return first.is_null(); +} +template +simdjson_inline simdjson_result simdjson_result::get() & noexcept { + if (error()) { return error(); } + return first.get(); +} +template +simdjson_inline simdjson_result simdjson_result::get() && noexcept { + if (error()) { return error(); } + return std::forward(first).get(); +} +template +simdjson_inline error_code simdjson_result::get(T &out) & noexcept { + if (error()) { return error(); } + return first.get(out); +} +template +simdjson_inline error_code simdjson_result::get(T &out) && noexcept { + if (error()) { return error(); } + return std::forward(first).get(out); +} +simdjson_inline simdjson_result simdjson_result::type() noexcept { + if (error()) { return error(); } + return first.type(); +} +simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { + if (error()) { return error(); } + return first.is_scalar(); +} +simdjson_inline simdjson_result simdjson_result::is_string() noexcept { + if (error()) { return error(); } + return first.is_string(); +} +template <> +simdjson_inline error_code simdjson_result::get(ppc64::ondemand::document_reference &out) & noexcept { + if (error()) { return error(); } + out = first; + return SUCCESS; +} +template <> +simdjson_inline error_code simdjson_result::get(ppc64::ondemand::document_reference &out) && noexcept { + if (error()) { return error(); } + out = first; + return SUCCESS; +} +simdjson_inline simdjson_result simdjson_result::is_negative() noexcept { + if (error()) { return error(); } + return first.is_negative(); +} +simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { + if (error()) { return error(); } + return first.is_integer(); +} +simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { + if (error()) { return error(); } + return first.get_number_type(); +} +simdjson_inline simdjson_result simdjson_result::get_number() noexcept { + if (error()) { return error(); } + return first.get_number(); +} +#if SIMDJSON_EXCEPTIONS +template +simdjson_inline simdjson_result::operator T() noexcept(false) { + static_assert(std::is_same::value == false, "You should not call get when T is a document"); + static_assert(std::is_same::value == false, "You should not call get when T is a document"); + if (error()) { throw simdjson_error(error()); } + return first.get(); +} +simdjson_inline simdjson_result::operator ppc64::ondemand::array() & noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator ppc64::ondemand::object() & noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator int64_t() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator double() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator ppc64::ondemand::raw_json_string() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator bool() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator ppc64::ondemand::value() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +#endif + +simdjson_inline simdjson_result simdjson_result::current_location() noexcept { + if (error()) { return error(); } + return first.current_location(); +} + +simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { + if (error()) { return error(); } + return first.raw_json_token(); +} + +simdjson_inline simdjson_result simdjson_result::at_pointer(std::string_view json_pointer) noexcept { + if (error()) { return error(); } + return first.at_pointer(json_pointer); +} + +simdjson_inline simdjson_result simdjson_result::at_path(std::string_view json_path) noexcept { + if (error()) { + return error(); + } + return first.at_path(json_path); +} + +} // namespace simdjson + +#endif // SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H +/* end file simdjson/generic/ondemand/document-inl.h for ppc64 */ +/* including simdjson/generic/ondemand/document_stream-inl.h for ppc64: #include "simdjson/generic/ondemand/document_stream-inl.h" */ +/* begin file simdjson/generic/ondemand/document_stream-inl.h for ppc64 */ +#ifndef SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H + +/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ +/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document_stream.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/implementation_simdjson_result_base-inl.h" */ +/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ + +#include +#include + +namespace simdjson { +namespace ppc64 { +namespace ondemand { + +#ifdef SIMDJSON_THREADS_ENABLED + +inline void stage1_worker::finish() { + // After calling "run" someone would call finish() to wait + // for the end of the processing. + // This function will wait until either the thread has done + // the processing or, else, the destructor has been called. + std::unique_lock lock(locking_mutex); + cond_var.wait(lock, [this]{return has_work == false;}); +} + +inline stage1_worker::~stage1_worker() { + // The thread may never outlive the stage1_worker instance + // and will always be stopped/joined before the stage1_worker + // instance is gone. + stop_thread(); +} + +inline void stage1_worker::start_thread() { + std::unique_lock lock(locking_mutex); + if(thread.joinable()) { + return; // This should never happen but we never want to create more than one thread. + } + thread = std::thread([this]{ + while(true) { + std::unique_lock thread_lock(locking_mutex); + // We wait for either "run" or "stop_thread" to be called. + cond_var.wait(thread_lock, [this]{return has_work || !can_work;}); + // If, for some reason, the stop_thread() method was called (i.e., the + // destructor of stage1_worker is called, then we want to immediately destroy + // the thread (and not do any more processing). + if(!can_work) { + break; + } + this->owner->stage1_thread_error = this->owner->run_stage1(*this->stage1_thread_parser, + this->_next_batch_start); + this->has_work = false; + // The condition variable call should be moved after thread_lock.unlock() for performance + // reasons but thread sanitizers may report it as a data race if we do. + // See https://stackoverflow.com/questions/35775501/c-should-condition-variable-be-notified-under-lock + cond_var.notify_one(); // will notify "finish" + thread_lock.unlock(); + } + } + ); +} + + +inline void stage1_worker::stop_thread() { + std::unique_lock lock(locking_mutex); + // We have to make sure that all locks can be released. + can_work = false; + has_work = false; + cond_var.notify_all(); + lock.unlock(); + if(thread.joinable()) { + thread.join(); + } +} + +inline void stage1_worker::run(document_stream * ds, parser * stage1, size_t next_batch_start) { + std::unique_lock lock(locking_mutex); + owner = ds; + _next_batch_start = next_batch_start; + stage1_thread_parser = stage1; + has_work = true; + // The condition variable call should be moved after thread_lock.unlock() for performance + // reasons but thread sanitizers may report it as a data race if we do. + // See https://stackoverflow.com/questions/35775501/c-should-condition-variable-be-notified-under-lock + cond_var.notify_one(); // will notify the thread lock that we have work + lock.unlock(); +} + +#endif // SIMDJSON_THREADS_ENABLED + +simdjson_inline document_stream::document_stream( + ondemand::parser &_parser, + const uint8_t *_buf, size_t _len, size_t _batch_size, bool _allow_comma_separated @@ -81094,7 +84602,6 @@ simdjson_inline document_stream::iterator::iterator(document_stream* _stream, bo } simdjson_inline simdjson_result document_stream::iterator::operator*() noexcept { - //if(stream->error) { return stream->error; } return simdjson_result(stream->doc, stream->error); } @@ -82953,36 +86460,39 @@ simdjson_inline const char * raw_json_string::raw() const noexcept { return rein simdjson_inline bool raw_json_string::is_free_from_unescaped_quote(std::string_view target) noexcept { size_t pos{0}; - // if the content has no escape character, just scan through it quickly! - for(;pos < target.size() && target[pos] != '\\';pos++) {} - // slow path may begin. - bool escaping{false}; - for(;pos < target.size();pos++) { - if((target[pos] == '"') && !escaping) { - return false; - } else if(target[pos] == '\\') { - escaping = !escaping; - } else { - escaping = false; + while(pos < target.size()) { + pos = target.find('"', pos); + if(pos == std::string_view::npos) { return true; } + if(pos != 0 && target[pos-1] != '\\') { return false; } + if(pos > 1 && target[pos-2] == '\\') { + size_t backslash_count{2}; + for(size_t i = 3; i <= pos; i++) { + if(target[pos-i] == '\\') { backslash_count++; } + else { break; } + } + if(backslash_count % 2 == 0) { return false; } } + pos++; } return true; } simdjson_inline bool raw_json_string::is_free_from_unescaped_quote(const char* target) noexcept { size_t pos{0}; - // if the content has no escape character, just scan through it quickly! - for(;target[pos] && target[pos] != '\\';pos++) {} - // slow path may begin. - bool escaping{false}; - for(;target[pos];pos++) { - if((target[pos] == '"') && !escaping) { - return false; - } else if(target[pos] == '\\') { - escaping = !escaping; - } else { - escaping = false; + while(target[pos]) { + const char * result = strchr(target+pos, '"'); + if(result == nullptr) { return true; } + pos = result - target; + if(pos != 0 && target[pos-1] != '\\') { return false; } + if(pos > 1 && target[pos-2] == '\\') { + size_t backslash_count{2}; + for(size_t i = 3; i <= pos; i++) { + if(target[pos-i] == '\\') { backslash_count++; } + else { break; } + } + if(backslash_count % 2 == 0) { return false; } } + pos++; } return true; } @@ -82994,7 +86504,7 @@ simdjson_inline bool raw_json_string::unsafe_is_equal(size_t length, std::string } simdjson_inline bool raw_json_string::unsafe_is_equal(std::string_view target) const noexcept { - // Assumptions: does not contain unescaped quote characters, and + // Assumptions: does not contain unescaped quote characters("), and // the raw content is quote terminated within a valid JSON string. if(target.size() <= SIMDJSON_PADDING) { return (raw()[target.size()] == '"') && !memcmp(raw(), target.data(), target.size()); @@ -83468,775 +86978,230 @@ simdjson_inline simdjson_result::simdjson_resul #endif // SIMDJSON_GENERIC_ONDEMAND_TOKEN_ITERATOR_INL_H /* end file simdjson/generic/ondemand/token_iterator-inl.h for ppc64 */ -/* including simdjson/generic/ondemand/value-inl.h for ppc64: #include "simdjson/generic/ondemand/value-inl.h" */ -/* begin file simdjson/generic/ondemand/value-inl.h for ppc64 */ -#ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H +/* including simdjson/generic/ondemand/value_iterator-inl.h for ppc64: #include "simdjson/generic/ondemand/value_iterator-inl.h" */ +/* begin file simdjson/generic/ondemand/value_iterator-inl.h for ppc64 */ +#ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H /* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ -/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H */ +/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/atomparsing.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/numberparsing.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string-inl.h" */ /* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ namespace simdjson { namespace ppc64 { namespace ondemand { -simdjson_inline value::value(const value_iterator &_iter) noexcept - : iter{_iter} +simdjson_inline value_iterator::value_iterator( + json_iterator *json_iter, + depth_t depth, + token_position start_position +) noexcept : _json_iter{json_iter}, _depth{depth}, _start_position{start_position} { } -simdjson_inline value value::start(const value_iterator &iter) noexcept { - return iter; -} -simdjson_inline value value::resume(const value_iterator &iter) noexcept { - return iter; -} - -simdjson_inline simdjson_result value::get_array() noexcept { - return array::start(iter); -} -simdjson_inline simdjson_result value::get_object() noexcept { - return object::start(iter); -} -simdjson_inline simdjson_result value::start_or_resume_object() noexcept { - if (iter.at_start()) { - return get_object(); - } else { - return object::resume(iter); - } -} -simdjson_inline simdjson_result value::get_raw_json_string() noexcept { - return iter.get_raw_json_string(); -} -simdjson_inline simdjson_result value::get_string(bool allow_replacement) noexcept { - return iter.get_string(allow_replacement); -} -template -simdjson_inline error_code value::get_string(string_type& receiver, bool allow_replacement) noexcept { - return iter.get_string(receiver, allow_replacement); -} -simdjson_inline simdjson_result value::get_wobbly_string() noexcept { - return iter.get_wobbly_string(); -} -simdjson_inline simdjson_result value::get_double() noexcept { - return iter.get_double(); -} -simdjson_inline simdjson_result value::get_double_in_string() noexcept { - return iter.get_double_in_string(); -} -simdjson_inline simdjson_result value::get_uint64() noexcept { - return iter.get_uint64(); -} -simdjson_inline simdjson_result value::get_uint64_in_string() noexcept { - return iter.get_uint64_in_string(); -} -simdjson_inline simdjson_result value::get_int64() noexcept { - return iter.get_int64(); -} -simdjson_inline simdjson_result value::get_int64_in_string() noexcept { - return iter.get_int64_in_string(); -} -simdjson_inline simdjson_result value::get_bool() noexcept { - return iter.get_bool(); -} -simdjson_inline simdjson_result value::is_null() noexcept { - return iter.is_null(); +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::start_object() noexcept { + SIMDJSON_TRY( start_container('{', "Not an object", "object") ); + return started_object(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_array(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_object(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_raw_json_string(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_string(false); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_number(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_double(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_uint64(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_int64(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_bool(); } -template simdjson_inline error_code value::get(T &out) noexcept { - return get().get(out); +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::start_root_object() noexcept { + SIMDJSON_TRY( start_container('{', "Not an object", "object") ); + return started_root_object(); } -#if SIMDJSON_EXCEPTIONS -template -simdjson_inline value::operator T() noexcept(false) { - return get(); -} -simdjson_inline value::operator array() noexcept(false) { - return get_array(); -} -simdjson_inline value::operator object() noexcept(false) { - return get_object(); -} -simdjson_inline value::operator uint64_t() noexcept(false) { - return get_uint64(); -} -simdjson_inline value::operator int64_t() noexcept(false) { - return get_int64(); -} -simdjson_inline value::operator double() noexcept(false) { - return get_double(); -} -simdjson_inline value::operator std::string_view() noexcept(false) { - return get_string(false); -} -simdjson_inline value::operator raw_json_string() noexcept(false) { - return get_raw_json_string(); -} -simdjson_inline value::operator bool() noexcept(false) { - return get_bool(); -} +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::started_object() noexcept { + assert_at_container_start(); +#if SIMDJSON_DEVELOPMENT_CHECKS + _json_iter->set_start_position(_depth, start_position()); #endif - -simdjson_inline simdjson_result value::begin() & noexcept { - return get_array().begin(); -} -simdjson_inline simdjson_result value::end() & noexcept { - return {}; -} -simdjson_inline simdjson_result value::count_elements() & noexcept { - simdjson_result answer; - auto a = get_array(); - answer = a.count_elements(); - // count_elements leaves you pointing inside the array, at the first element. - // We need to move back so that the user can create a new array (which requires that - // we point at '['). - iter.move_at_start(); - return answer; -} -simdjson_inline simdjson_result value::count_fields() & noexcept { - simdjson_result answer; - auto a = get_object(); - answer = a.count_fields(); - iter.move_at_start(); - return answer; -} -simdjson_inline simdjson_result value::at(size_t index) noexcept { - auto a = get_array(); - return a.at(index); -} - -simdjson_inline simdjson_result value::find_field(std::string_view key) noexcept { - return start_or_resume_object().find_field(key); -} -simdjson_inline simdjson_result value::find_field(const char *key) noexcept { - return start_or_resume_object().find_field(key); -} - -simdjson_inline simdjson_result value::find_field_unordered(std::string_view key) noexcept { - return start_or_resume_object().find_field_unordered(key); -} -simdjson_inline simdjson_result value::find_field_unordered(const char *key) noexcept { - return start_or_resume_object().find_field_unordered(key); -} - -simdjson_inline simdjson_result value::operator[](std::string_view key) noexcept { - return start_or_resume_object()[key]; -} -simdjson_inline simdjson_result value::operator[](const char *key) noexcept { - return start_or_resume_object()[key]; -} - -simdjson_inline simdjson_result value::type() noexcept { - return iter.type(); + if (*_json_iter->peek() == '}') { + logger::log_value(*_json_iter, "empty object"); + _json_iter->return_current_and_advance(); + end_container(); + return false; + } + return true; } -simdjson_inline simdjson_result value::is_scalar() noexcept { - json_type this_type; - auto error = type().get(this_type); - if(error) { return error; } - return ! ((this_type == json_type::array) || (this_type == json_type::object)); +simdjson_warn_unused simdjson_inline error_code value_iterator::check_root_object() noexcept { + // When in streaming mode, we cannot expect peek_last() to be the last structural element of the + // current document. It only works in the normal mode where we have indexed a single document. + // Note that adding a check for 'streaming' is not expensive since we only have at most + // one root element. + if ( ! _json_iter->streaming() ) { + // The following lines do not fully protect against garbage content within the + // object: e.g., `{"a":2} foo }`. Users concerned with garbage content should + // call `at_end()` on the document instance at the end of the processing to + // ensure that the processing has finished at the end. + // + if (*_json_iter->peek_last() != '}') { + _json_iter->abandon(); + return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing } at end"); + } + // If the last character is } *and* the first gibberish character is also '}' + // then on-demand could accidentally go over. So we need additional checks. + // https://github.com/simdjson/simdjson/issues/1834 + // Checking that the document is balanced requires a full scan which is potentially + // expensive, but it only happens in edge cases where the first padding character is + // a closing bracket. + if ((*_json_iter->peek(_json_iter->end_position()) == '}') && (!_json_iter->balanced())) { + _json_iter->abandon(); + // The exact error would require more work. It will typically be an unclosed object. + return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "the document is unbalanced"); + } + } + return SUCCESS; } -simdjson_inline simdjson_result value::is_string() noexcept { - json_type this_type; - auto error = type().get(this_type); +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::started_root_object() noexcept { + auto error = check_root_object(); if(error) { return error; } - return (this_type == json_type::string); -} - - -simdjson_inline bool value::is_negative() noexcept { - return iter.is_negative(); + return started_object(); } -simdjson_inline simdjson_result value::is_integer() noexcept { - return iter.is_integer(); -} -simdjson_warn_unused simdjson_inline simdjson_result value::get_number_type() noexcept { - return iter.get_number_type(); -} -simdjson_warn_unused simdjson_inline simdjson_result value::get_number() noexcept { - return iter.get_number(); +simdjson_warn_unused simdjson_inline error_code value_iterator::end_container() noexcept { +#if SIMDJSON_CHECK_EOF + if (depth() > 1 && at_end()) { return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing parent ] or }"); } + // if (depth() <= 1 && !at_end()) { return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing [ or { at start"); } +#endif // SIMDJSON_CHECK_EOF + _json_iter->ascend_to(depth()-1); + return SUCCESS; } -simdjson_inline std::string_view value::raw_json_token() noexcept { - return std::string_view(reinterpret_cast(iter.peek_start()), iter.peek_start_length()); -} +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::has_next_field() noexcept { + assert_at_next(); -simdjson_inline simdjson_result value::raw_json() noexcept { - json_type t; - SIMDJSON_TRY(type().get(t)); - switch (t) - { - case json_type::array: { - ondemand::array array; - SIMDJSON_TRY(get_array().get(array)); - return array.raw_json(); - } - case json_type::object: { - ondemand::object object; - SIMDJSON_TRY(get_object().get(object)); - return object.raw_json(); - } + // It's illegal to call this unless there are more tokens: anything that ends in } or ] is + // obligated to verify there are more tokens if they are not the top level. + switch (*_json_iter->return_current_and_advance()) { + case '}': + logger::log_end_value(*_json_iter, "object"); + SIMDJSON_TRY( end_container() ); + return false; + case ',': + return true; default: - return raw_json_token(); + return report_error(TAPE_ERROR, "Missing comma between object fields"); } } -simdjson_inline simdjson_result value::current_location() noexcept { - return iter.json_iter().current_location(); -} - -simdjson_inline int32_t value::current_depth() const noexcept{ - return iter.json_iter().depth(); -} +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::find_field_raw(const std::string_view key) noexcept { + error_code error; + bool has_value; + // + // Initially, the object can be in one of a few different places: + // + // 1. The start of the object, at the first field: + // + // ``` + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 2, index 1) + // ``` + if (at_first_field()) { + has_value = true; -inline bool is_pointer_well_formed(std::string_view json_pointer) noexcept { - if (simdjson_unlikely(json_pointer.empty())) { // can't be - return false; - } - if (simdjson_unlikely(json_pointer[0] != '/')) { - return false; - } - size_t escape = json_pointer.find('~'); - if (escape == std::string_view::npos) { - return true; - } - if (escape == json_pointer.size() - 1) { - return false; - } - if (json_pointer[escape + 1] != '0' && json_pointer[escape + 1] != '1') { + // + // 2. When a previous search did not yield a value or the object is empty: + // + // ``` + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 0) + // { } + // ^ (depth 0, index 2) + // ``` + // + } else if (!is_open()) { +#if SIMDJSON_DEVELOPMENT_CHECKS + // If we're past the end of the object, we're being iterated out of order. + // Note: this is not perfect detection. It's possible the user is inside some other object; if so, + // this object iterator will blithely scan that object for fields. + if (_json_iter->depth() < depth() - 1) { return OUT_OF_ORDER_ITERATION; } +#endif return false; - } - return true; -} -simdjson_inline simdjson_result value::at_pointer(std::string_view json_pointer) noexcept { - json_type t; - SIMDJSON_TRY(type().get(t)); - switch (t) - { - case json_type::array: - return (*this).get_array().at_pointer(json_pointer); - case json_type::object: - return (*this).get_object().at_pointer(json_pointer); - default: - // a non-empty string can be invalid, or accessing a primitive (issue 2154) - if (is_pointer_well_formed(json_pointer)) { - return NO_SUCH_FIELD; - } - return INVALID_JSON_POINTER; + // 3. When a previous search found a field or an iterator yielded a value: + // + // ``` + // // When a field was not fully consumed (or not even touched at all) + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 2) + // // When a field was fully consumed + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 1) + // // When the last field was fully consumed + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 1) + // ``` + // + } else { + if ((error = skip_child() )) { abandon(); return error; } + if ((error = has_next_field().get(has_value) )) { abandon(); return error; } +#if SIMDJSON_DEVELOPMENT_CHECKS + if (_json_iter->start_position(_depth) != start_position()) { return OUT_OF_ORDER_ITERATION; } +#endif } -} + while (has_value) { + // Get the key and colon, stopping at the value. + raw_json_string actual_key; + // size_t max_key_length = _json_iter->peek_length() - 2; // -2 for the two quotes + // Note: _json_iter->peek_length() - 2 might overflow if _json_iter->peek_length() < 2. + // field_key() advances the pointer and checks that '"' is found (corresponding to a key). + // The depth is left unchanged by field_key(). + if ((error = field_key().get(actual_key) )) { abandon(); return error; }; + // field_value() will advance and check that we find a ':' separating the + // key and the value. It will also increment the depth by one. + if ((error = field_value() )) { abandon(); return error; } + // If it matches, stop and return + // We could do it this way if we wanted to allow arbitrary + // key content (including escaped quotes). + //if (actual_key.unsafe_is_equal(max_key_length, key)) { + // Instead we do the following which may trigger buffer overruns if the + // user provides an adversarial key (containing a well placed unescaped quote + // character and being longer than the number of bytes remaining in the JSON + // input). + if (actual_key.unsafe_is_equal(key)) { + logger::log_event(*this, "match", key, -2); + // If we return here, then we return while pointing at the ':' that we just checked. + return true; + } -simdjson_inline simdjson_result value::at_path(std::string_view json_path) noexcept { - json_type t; - SIMDJSON_TRY(type().get(t)); - switch (t) { - case json_type::array: - return (*this).get_array().at_path(json_path); - case json_type::object: - return (*this).get_object().at_path(json_path); - default: - return INVALID_JSON_POINTER; + // No match: skip the value and see if , or } is next + logger::log_event(*this, "no match", key, -2); + // The call to skip_child is meant to skip over the value corresponding to the key. + // After skip_child(), we are right before the next comma (',') or the final brace ('}'). + SIMDJSON_TRY( skip_child() ); // Skip the value entirely + // The has_next_field() advances the pointer and check that either ',' or '}' is found. + // It returns true if ',' is found, false otherwise. If anything other than ',' or '}' is found, + // then we are in error and we abort. + if ((error = has_next_field().get(has_value) )) { abandon(); return error; } } -} - -} // namespace ondemand -} // namespace ppc64 -} // namespace simdjson - -namespace simdjson { -simdjson_inline simdjson_result::simdjson_result( - ppc64::ondemand::value &&value -) noexcept : - implementation_simdjson_result_base( - std::forward(value) - ) -{ -} -simdjson_inline simdjson_result::simdjson_result( - error_code error -) noexcept : - implementation_simdjson_result_base(error) -{ -} -simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { - if (error()) { return error(); } - return first.count_elements(); -} -simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { - if (error()) { return error(); } - return first.count_fields(); -} -simdjson_inline simdjson_result simdjson_result::at(size_t index) noexcept { - if (error()) { return error(); } - return first.at(index); -} -simdjson_inline simdjson_result simdjson_result::begin() & noexcept { - if (error()) { return error(); } - return first.begin(); -} -simdjson_inline simdjson_result simdjson_result::end() & noexcept { - if (error()) { return error(); } - return {}; + // If the loop ended, we're out of fields to look at. + return false; } -simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) noexcept { - if (error()) { return error(); } - return first.find_field(key); -} -simdjson_inline simdjson_result simdjson_result::find_field(const char *key) noexcept { - if (error()) { return error(); } - return first.find_field(key); -} +SIMDJSON_PUSH_DISABLE_WARNINGS +SIMDJSON_DISABLE_STRICT_OVERFLOW_WARNING +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::find_field_unordered_raw(const std::string_view key) noexcept { + /** + * When find_field_unordered_raw is called, we can either be pointing at the + * first key, pointing outside (at the closing brace) or if a key was matched + * we can be either pointing right afterthe ':' right before the value (that we need skip), + * or we may have consumed the value and we might be at a comma or at the + * final brace (ready for a call to has_next_field()). + */ + error_code error; + bool has_value; -simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) noexcept { - if (error()) { return error(); } - return first.find_field_unordered(key); -} -simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) noexcept { - if (error()) { return error(); } - return first.find_field_unordered(key); -} - -simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) noexcept { - if (error()) { return error(); } - return first[key]; -} -simdjson_inline simdjson_result simdjson_result::operator[](const char *key) noexcept { - if (error()) { return error(); } - return first[key]; -} - -simdjson_inline simdjson_result simdjson_result::get_array() noexcept { - if (error()) { return error(); } - return first.get_array(); -} -simdjson_inline simdjson_result simdjson_result::get_object() noexcept { - if (error()) { return error(); } - return first.get_object(); -} -simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { - if (error()) { return error(); } - return first.get_uint64(); -} -simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { - if (error()) { return error(); } - return first.get_uint64_in_string(); -} -simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { - if (error()) { return error(); } - return first.get_int64(); -} -simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { - if (error()) { return error(); } - return first.get_int64_in_string(); -} -simdjson_inline simdjson_result simdjson_result::get_double() noexcept { - if (error()) { return error(); } - return first.get_double(); -} -simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { - if (error()) { return error(); } - return first.get_double_in_string(); -} -simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { - if (error()) { return error(); } - return first.get_string(allow_replacement); -} -template -simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { - if (error()) { return error(); } - return first.get_string(receiver, allow_replacement); -} -simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { - if (error()) { return error(); } - return first.get_wobbly_string(); -} -simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { - if (error()) { return error(); } - return first.get_raw_json_string(); -} -simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { - if (error()) { return error(); } - return first.get_bool(); -} -simdjson_inline simdjson_result simdjson_result::is_null() noexcept { - if (error()) { return error(); } - return first.is_null(); -} - -template simdjson_inline simdjson_result simdjson_result::get() noexcept { - if (error()) { return error(); } - return first.get(); -} -template simdjson_inline error_code simdjson_result::get(T &out) noexcept { - if (error()) { return error(); } - return first.get(out); -} - -template<> simdjson_inline simdjson_result simdjson_result::get() noexcept { - if (error()) { return error(); } - return std::move(first); -} -template<> simdjson_inline error_code simdjson_result::get(ppc64::ondemand::value &out) noexcept { - if (error()) { return error(); } - out = first; - return SUCCESS; -} - -simdjson_inline simdjson_result simdjson_result::type() noexcept { - if (error()) { return error(); } - return first.type(); -} -simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { - if (error()) { return error(); } - return first.is_scalar(); -} -simdjson_inline simdjson_result simdjson_result::is_string() noexcept { - if (error()) { return error(); } - return first.is_string(); -} -simdjson_inline simdjson_result simdjson_result::is_negative() noexcept { - if (error()) { return error(); } - return first.is_negative(); -} -simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { - if (error()) { return error(); } - return first.is_integer(); -} -simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { - if (error()) { return error(); } - return first.get_number_type(); -} -simdjson_inline simdjson_result simdjson_result::get_number() noexcept { - if (error()) { return error(); } - return first.get_number(); -} -#if SIMDJSON_EXCEPTIONS -template -simdjson_inline simdjson_result::operator T() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return static_cast(first); -} -simdjson_inline simdjson_result::operator ppc64::ondemand::array() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator ppc64::ondemand::object() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator int64_t() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator double() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator ppc64::ondemand::raw_json_string() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator bool() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -#endif - -simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { - if (error()) { return error(); } - return first.raw_json_token(); -} - -simdjson_inline simdjson_result simdjson_result::raw_json() noexcept { - if (error()) { return error(); } - return first.raw_json(); -} - -simdjson_inline simdjson_result simdjson_result::current_location() noexcept { - if (error()) { return error(); } - return first.current_location(); -} - -simdjson_inline simdjson_result simdjson_result::current_depth() const noexcept { - if (error()) { return error(); } - return first.current_depth(); -} - -simdjson_inline simdjson_result simdjson_result::at_pointer( - std::string_view json_pointer) noexcept { - if (error()) { - return error(); - } - return first.at_pointer(json_pointer); -} - -simdjson_inline simdjson_result simdjson_result::at_path( - std::string_view json_path) noexcept { - if (error()) { - return error(); - } - return first.at_path(json_path); -} - -} // namespace simdjson - -#endif // SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H -/* end file simdjson/generic/ondemand/value-inl.h for ppc64 */ -/* including simdjson/generic/ondemand/value_iterator-inl.h for ppc64: #include "simdjson/generic/ondemand/value_iterator-inl.h" */ -/* begin file simdjson/generic/ondemand/value_iterator-inl.h for ppc64 */ -#ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H - -/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ -/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/atomparsing.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/numberparsing.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string-inl.h" */ -/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ - -namespace simdjson { -namespace ppc64 { -namespace ondemand { - -simdjson_inline value_iterator::value_iterator( - json_iterator *json_iter, - depth_t depth, - token_position start_position -) noexcept : _json_iter{json_iter}, _depth{depth}, _start_position{start_position} -{ -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::start_object() noexcept { - SIMDJSON_TRY( start_container('{', "Not an object", "object") ); - return started_object(); -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::start_root_object() noexcept { - SIMDJSON_TRY( start_container('{', "Not an object", "object") ); - return started_root_object(); -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::started_object() noexcept { - assert_at_container_start(); -#if SIMDJSON_DEVELOPMENT_CHECKS - _json_iter->set_start_position(_depth, start_position()); -#endif - if (*_json_iter->peek() == '}') { - logger::log_value(*_json_iter, "empty object"); - _json_iter->return_current_and_advance(); - end_container(); - return false; - } - return true; -} - -simdjson_warn_unused simdjson_inline error_code value_iterator::check_root_object() noexcept { - // When in streaming mode, we cannot expect peek_last() to be the last structural element of the - // current document. It only works in the normal mode where we have indexed a single document. - // Note that adding a check for 'streaming' is not expensive since we only have at most - // one root element. - if ( ! _json_iter->streaming() ) { - // The following lines do not fully protect against garbage content within the - // object: e.g., `{"a":2} foo }`. Users concerned with garbage content should - // call `at_end()` on the document instance at the end of the processing to - // ensure that the processing has finished at the end. - // - if (*_json_iter->peek_last() != '}') { - _json_iter->abandon(); - return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing } at end"); - } - // If the last character is } *and* the first gibberish character is also '}' - // then on-demand could accidentally go over. So we need additional checks. - // https://github.com/simdjson/simdjson/issues/1834 - // Checking that the document is balanced requires a full scan which is potentially - // expensive, but it only happens in edge cases where the first padding character is - // a closing bracket. - if ((*_json_iter->peek(_json_iter->end_position()) == '}') && (!_json_iter->balanced())) { - _json_iter->abandon(); - // The exact error would require more work. It will typically be an unclosed object. - return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "the document is unbalanced"); - } - } - return SUCCESS; -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::started_root_object() noexcept { - auto error = check_root_object(); - if(error) { return error; } - return started_object(); -} - -simdjson_warn_unused simdjson_inline error_code value_iterator::end_container() noexcept { -#if SIMDJSON_CHECK_EOF - if (depth() > 1 && at_end()) { return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing parent ] or }"); } - // if (depth() <= 1 && !at_end()) { return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing [ or { at start"); } -#endif // SIMDJSON_CHECK_EOF - _json_iter->ascend_to(depth()-1); - return SUCCESS; -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::has_next_field() noexcept { - assert_at_next(); - - // It's illegal to call this unless there are more tokens: anything that ends in } or ] is - // obligated to verify there are more tokens if they are not the top level. - switch (*_json_iter->return_current_and_advance()) { - case '}': - logger::log_end_value(*_json_iter, "object"); - SIMDJSON_TRY( end_container() ); - return false; - case ',': - return true; - default: - return report_error(TAPE_ERROR, "Missing comma between object fields"); - } -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::find_field_raw(const std::string_view key) noexcept { - error_code error; - bool has_value; - // - // Initially, the object can be in one of a few different places: - // - // 1. The start of the object, at the first field: - // - // ``` - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 2, index 1) - // ``` - if (at_first_field()) { - has_value = true; - - // - // 2. When a previous search did not yield a value or the object is empty: - // - // ``` - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 0) - // { } - // ^ (depth 0, index 2) - // ``` - // - } else if (!is_open()) { -#if SIMDJSON_DEVELOPMENT_CHECKS - // If we're past the end of the object, we're being iterated out of order. - // Note: this is not perfect detection. It's possible the user is inside some other object; if so, - // this object iterator will blithely scan that object for fields. - if (_json_iter->depth() < depth() - 1) { return OUT_OF_ORDER_ITERATION; } -#endif - return false; - - // 3. When a previous search found a field or an iterator yielded a value: - // - // ``` - // // When a field was not fully consumed (or not even touched at all) - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 2) - // // When a field was fully consumed - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 1) - // // When the last field was fully consumed - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 1) - // ``` - // - } else { - if ((error = skip_child() )) { abandon(); return error; } - if ((error = has_next_field().get(has_value) )) { abandon(); return error; } -#if SIMDJSON_DEVELOPMENT_CHECKS - if (_json_iter->start_position(_depth) != start_position()) { return OUT_OF_ORDER_ITERATION; } -#endif - } - while (has_value) { - // Get the key and colon, stopping at the value. - raw_json_string actual_key; - // size_t max_key_length = _json_iter->peek_length() - 2; // -2 for the two quotes - // Note: _json_iter->peek_length() - 2 might overflow if _json_iter->peek_length() < 2. - // field_key() advances the pointer and checks that '"' is found (corresponding to a key). - // The depth is left unchanged by field_key(). - if ((error = field_key().get(actual_key) )) { abandon(); return error; }; - // field_value() will advance and check that we find a ':' separating the - // key and the value. It will also increment the depth by one. - if ((error = field_value() )) { abandon(); return error; } - // If it matches, stop and return - // We could do it this way if we wanted to allow arbitrary - // key content (including escaped quotes). - //if (actual_key.unsafe_is_equal(max_key_length, key)) { - // Instead we do the following which may trigger buffer overruns if the - // user provides an adversarial key (containing a well placed unescaped quote - // character and being longer than the number of bytes remaining in the JSON - // input). - if (actual_key.unsafe_is_equal(key)) { - logger::log_event(*this, "match", key, -2); - // If we return here, then we return while pointing at the ':' that we just checked. - return true; - } - - // No match: skip the value and see if , or } is next - logger::log_event(*this, "no match", key, -2); - // The call to skip_child is meant to skip over the value corresponding to the key. - // After skip_child(), we are right before the next comma (',') or the final brace ('}'). - SIMDJSON_TRY( skip_child() ); // Skip the value entirely - // The has_next_field() advances the pointer and check that either ',' or '}' is found. - // It returns true if ',' is found, false otherwise. If anything other than ',' or '}' is found, - // then we are in error and we abort. - if ((error = has_next_field().get(has_value) )) { abandon(); return error; } - } - - // If the loop ended, we're out of fields to look at. - return false; -} - -SIMDJSON_PUSH_DISABLE_WARNINGS -SIMDJSON_DISABLE_STRICT_OVERFLOW_WARNING -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::find_field_unordered_raw(const std::string_view key) noexcept { - /** - * When find_field_unordered_raw is called, we can either be pointing at the - * first key, pointing outside (at the closing brace) or if a key was matched - * we can be either pointing right afterthe ':' right before the value (that we need skip), - * or we may have consumed the value and we might be at a comma or at the - * final brace (ready for a call to has_next_field()). - */ - error_code error; - bool has_value; - - // First, we scan from that point to the end. - // If we don't find a match, we may loop back around, and scan from the beginning to that point. - token_position search_start = _json_iter->position(); + // First, we scan from that point to the end. + // If we don't find a match, we may loop back around, and scan from the beginning to that point. + token_position search_start = _json_iter->position(); // We want to know whether we need to go back to the beginning. bool at_first = at_first_field(); @@ -84816,6 +87781,8 @@ simdjson_inline simdjson_result value_iterator::is_root_null(bool check_tr if(result) { // we have something that looks like a null. if (check_trailing && !_json_iter->is_single_token()) { return TRAILING_CONTENT; } advance_root_scalar("null"); + } else if (json[0] == 'n') { + return incorrect_type_error("Not a null but starts with n"); } return result; } @@ -85107,6 +88074,8 @@ simdjson_inline simdjson_result::simdjson_resul #endif // SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H /* end file simdjson/generic/ondemand/value_iterator-inl.h for ppc64 */ + + /* end file simdjson/generic/ondemand/amalgamated.h for ppc64 */ /* including simdjson/ppc64/end.h: #include "simdjson/ppc64/end.h" */ /* begin file simdjson/ppc64/end.h */ @@ -86313,6 +89282,132 @@ class value_iterator; #endif // SIMDJSON_GENERIC_ONDEMAND_BASE_H /* end file simdjson/generic/ondemand/base.h for westmere */ +/* including simdjson/generic/ondemand/deserialize.h for westmere: #include "simdjson/generic/ondemand/deserialize.h" */ +/* begin file simdjson/generic/ondemand/deserialize.h for westmere */ +#if SIMDJSON_SUPPORTS_DESERIALIZATION + +#ifndef SIMDJSON_ONDEMAND_DESERIALIZE_H +/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ +/* amalgamation skipped (editor-only): #define SIMDJSON_ONDEMAND_DESERIALIZE_H */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array.h" */ +/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ + +#include +namespace simdjson { + +namespace tag_invoke_fn_ns { +void tag_invoke(); + +struct tag_invoke_fn { + template + requires requires(Tag tag, Args &&...args) { + tag_invoke(std::forward(tag), std::forward(args)...); + } + constexpr auto operator()(Tag tag, Args &&...args) const + noexcept(noexcept(tag_invoke(std::forward(tag), + std::forward(args)...))) + -> decltype(tag_invoke(std::forward(tag), + std::forward(args)...)) { + return tag_invoke(std::forward(tag), std::forward(args)...); + } +}; +} // namespace tag_invoke_fn_ns + +inline namespace tag_invoke_ns { +inline constexpr tag_invoke_fn_ns::tag_invoke_fn tag_invoke = {}; +} // namespace tag_invoke_ns + +template +concept tag_invocable = requires(Tag tag, Args... args) { + tag_invoke(std::forward(tag), std::forward(args)...); +}; + +template +concept nothrow_tag_invocable = + tag_invocable && requires(Tag tag, Args... args) { + { + tag_invoke(std::forward(tag), std::forward(args)...) + } noexcept; + }; + +template +using tag_invoke_result = + std::invoke_result; + +template +using tag_invoke_result_t = + std::invoke_result_t; + +template using tag_t = std::decay_t; + + +struct deserialize_tag; + +/// These types are deserializable in a built-in way +template struct is_builtin_deserializable : std::false_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; + +template +concept is_builtin_deserializable_v = is_builtin_deserializable::value; + +template +concept custom_deserializable = tag_invocable; + +template +concept deserializable = custom_deserializable || is_builtin_deserializable_v; + +template +concept nothrow_custom_deserializable = nothrow_tag_invocable; + +// built-in types are noexcept and if an error happens, the value simply gets ignored and the error is returned. +template +concept nothrow_deserializable = nothrow_custom_deserializable || is_builtin_deserializable_v; + +/// Deserialize Tag +inline constexpr struct deserialize_tag { + using value_type = westmere::ondemand::value; + using document_type = westmere::ondemand::document; + using document_reference_type = westmere::ondemand::document_reference; + + // Customization Point for value + template + requires custom_deserializable + [[nodiscard]] constexpr /* error_code */ auto operator()(value_type &object, T& output) const noexcept(nothrow_custom_deserializable) { + return tag_invoke(*this, object, output); + } + + // Customization Point for document + template + requires custom_deserializable + [[nodiscard]] constexpr /* error_code */ auto operator()(document_type &object, T& output) const noexcept(nothrow_custom_deserializable) { + return tag_invoke(*this, object, output); + } + + // Customization Point for document reference + template + requires custom_deserializable + [[nodiscard]] constexpr /* error_code */ auto operator()(document_reference_type &object, T& output) const noexcept(nothrow_custom_deserializable) { + return tag_invoke(*this, object, output); + } + + +} deserialize{}; + +} // namespace simdjson + +#endif // SIMDJSON_ONDEMAND_DESERIALIZE_H +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION + +/* end file simdjson/generic/ondemand/deserialize.h for westmere */ /* including simdjson/generic/ondemand/value_iterator.h for westmere: #include "simdjson/generic/ondemand/value_iterator.h" */ /* begin file simdjson/generic/ondemand/value_iterator.h for westmere */ #ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_H @@ -86817,12 +89912,15 @@ struct simdjson_result : public westmere::im /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/implementation_simdjson_result_base.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/deserialize.h" */ /* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ +#include + namespace simdjson { + namespace westmere { namespace ondemand { - /** * An ephemeral JSON value returned during iteration. It is only valid for as long as you do * not access more data in the JSON document. @@ -86847,16 +89945,21 @@ class value { * @returns A value of the given type, parsed from the JSON. * @returns INCORRECT_TYPE If the JSON value is not the given type. */ - template simdjson_inline simdjson_result get() noexcept { - // Unless the simdjson library or the user provides an inline implementation, calling this method should - // immediately fail. - static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " - "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " - "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " - " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." - " You may also add support for custom types, see our documentation."); + template + simdjson_inline simdjson_result get() +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(std::is_default_constructible::value, "The specified type is not default constructible."); + T out{}; + SIMDJSON_TRY(get(out)); + return out; } + /** * Get this value as the given type. * @@ -86866,7 +89969,32 @@ class value { * @returns INCORRECT_TYPE If the JSON value is not an object. * @returns SUCCESS If the parse succeeded and the out parameter was set to the value. */ - template simdjson_inline error_code get(T &out) noexcept; + template + simdjson_inline error_code get(T &out) +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { +#if SIMDJSON_SUPPORTS_DESERIALIZATION + if constexpr (custom_deserializable) { + return deserialize(*this, out); + } else { +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION + // Unless the simdjson library or the user provides an inline implementation, calling this method should + // immediately fail. + static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " + "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " + "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " + " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." + " You may also add support for custom types, see our documentation."); + static_cast(out); // to get rid of unused errors + return UNINITIALIZED; +#if SIMDJSON_SUPPORTS_DESERIALIZATION + } +#endif + } /** * Cast this JSON value to an array. @@ -86942,6 +90070,17 @@ class value { * Important: a value should be consumed once. Calling get_string() twice on the same value * is an error. * + * In some instances, you may want to allow replacement of invalid Unicode sequences. + * You may do so by passing the allow_replacement parameter as true. In the following + * example, the string "431924697b\udff0L\u0001Y" is not valid Unicode. By passing true + * to get_string, we allow the replacement of the invalid Unicode sequences with the Unicode + * replacement character (U+FFFD). + * + * simdjson::ondemand::parser parser; + * auto json = R"({"deviceId":"431924697b\udff0L\u0001Y"})"_padded; + * simdjson::ondemand::document doc = parser.iterate(json); + * auto view = doc["deviceId"].get_string(true); + * * @returns An UTF-8 string. The string is stored in the parser and will be invalidated the next * time it parses a document or when it is destroyed. * @returns INCORRECT_TYPE if the JSON value is not a string. @@ -87193,6 +90332,7 @@ class value { simdjson_inline simdjson_result operator[](std::string_view key) noexcept; /** @overload simdjson_inline simdjson_result find_field_unordered(std::string_view key) noexcept; */ simdjson_inline simdjson_result operator[](const char *key) noexcept; + simdjson_result operator[](int) noexcept = delete; /** * Get the type of this JSON value. It does not validate or consume the value. @@ -87560,6 +90700,7 @@ struct simdjson_result : public westmere::implementat simdjson_inline simdjson_result operator[](std::string_view key) noexcept; /** @overload simdjson_inline simdjson_result find_field_unordered(std::string_view key) noexcept; */ simdjson_inline simdjson_result operator[](const char *key) noexcept; + simdjson_result operator[](int) noexcept = delete; /** * Get the type of this JSON value. @@ -88615,6 +91756,22 @@ class parser { * using a sanitizer that verifies that no uninitialized byte is read, then you should initialize the * SIMDJSON_PADDING bytes to avoid runtime warnings. * + * ### std::string references + * + * If you pass a mutable std::string reference (std::string&), the parser will seek to extend + * its capacity to SIMDJSON_PADDING bytes beyond the end of the string. + * + * Whenever you pass an std::string reference, the parser will access the bytes beyond the end of + * the string but before the end of the allocated memory (std::string::capacity()). + * If you are using a sanitizer that checks for reading uninitialized bytes or std::string's + * container-overflow checks, you may encounter sanitizer warnings. + * You can safely ignore these warnings. Or you can call simdjson::pad(std::string&) to pad the + * string with SIMDJSON_PADDING spaces: this function returns a simdjson::padding_string_view + * which can be be passed to the parser's iterate function: + * + * std::string json = R"({ "foo": 1 } { "foo": 2 } { "foo": 3 } )"; + * document doc = parser.iterate(simdjson::pad(json)); + * * @param json The JSON to parse. * @param len The length of the JSON. * @param capacity The number of bytes allocated in the JSON (must be at least len+SIMDJSON_PADDING). @@ -88809,8 +91966,12 @@ class parser { * behavior of the parser for future operations. */ bool threaded{true}; + #else + /** + * When SIMDJSON_THREADS_ENABLED is not defined, the parser instance cannot use threads. + */ + bool threaded{false}; #endif - /** * Unescape this JSON string, replacing \\ with \, \n with newline, etc. to a user-provided buffer. * The result must be valid UTF-8. @@ -88952,7 +92113,8 @@ class array { * calling this function, if successful, the array is 'rewinded' at its * beginning as if it had never been accessed. If the JSON is malformed (e.g., * there is a missing comma), then an error is returned and it is no longer - * safe to continue. + * safe to continue. Note that count_elements() does not validate the JSON values, + * only the structure of the array. * * To check that an array is empty, it is more performant to use * the is_empty() method. @@ -89230,8 +92392,11 @@ struct simdjson_result : public westmere::im /* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_H */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/deserialize.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ /* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ + namespace simdjson { namespace westmere { namespace ondemand { @@ -89404,24 +92569,39 @@ class document { * @returns A value of the given type, parsed from the JSON. * @returns INCORRECT_TYPE If the JSON value is not the given type. */ - template simdjson_inline simdjson_result get() & noexcept { - // Unless the simdjson library or the user provides an inline implementation, calling this method should - // immediately fail. - static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " - "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " - "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " - " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." - " You may also add support for custom types, see our documentation."); - } - /** @overload template simdjson_result get() & noexcept */ - template simdjson_deprecated simdjson_inline simdjson_result get() && noexcept { - // Unless the simdjson library or the user provides an inline implementation, calling this method should - // immediately fail. - static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " - "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " - "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " - " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." - " You may also add support for custom types, see our documentation."); + template + simdjson_inline simdjson_result get() & +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(std::is_default_constructible::value, "Cannot initialize the specified type."); + T out{}; + SIMDJSON_TRY(get(out)); + return out; + } + /** + * @overload template simdjson_result get() & noexcept + * + * We disallow the use tag_invoke CPO on a moved document; it may create UB + * if user uses `ondemand::array` or `ondemand::object` in their custom type. + * + * The member function is still remains specialize-able for compatibility + * reasons, but we completely disallow its use when a tag_invoke customization + * is provided. + */ + template + simdjson_inline simdjson_result get() && +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(!std::is_same::value && !std::is_same::value, "You should never hold either an ondemand::array or ondemand::object without a corresponding ondemand::document being alive; that would be Undefined Behaviour."); + return static_cast(*this).get(); } /** @@ -89435,7 +92615,32 @@ class document { * @returns INCORRECT_TYPE If the JSON value is not an object. * @returns SUCCESS If the parse succeeded and the out parameter was set to the value. */ - template simdjson_inline error_code get(T &out) & noexcept; + template + simdjson_inline error_code get(T &out) & +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { +#if SIMDJSON_SUPPORTS_DESERIALIZATION + if constexpr (custom_deserializable) { + return deserialize(*this, out); + } else { +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION + // Unless the simdjson library or the user provides an inline implementation, calling this method should + // immediately fail. + static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " + "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " + "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " + " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." + " You may also add support for custom types, see our documentation."); + static_cast(out); // to get rid of unused errors + return UNINITIALIZED; +#if SIMDJSON_SUPPORTS_DESERIALIZATION + } +#endif + } /** @overload template error_code get(T &out) & noexcept */ template simdjson_deprecated simdjson_inline error_code get(T &out) && noexcept; @@ -89537,7 +92742,8 @@ class document { * calling this function, if successful, the array is 'rewinded' at its * beginning as if it had never been accessed. If the JSON is malformed (e.g., * there is a missing comma), then an error is returned and it is no longer - * safe to continue. + * safe to continue. Note that count_elements() does not validate the JSON values, + * only the structure of the array. */ simdjson_inline simdjson_result count_elements() & noexcept; /** @@ -89649,6 +92855,7 @@ class document { simdjson_inline simdjson_result operator[](std::string_view key) & noexcept; /** @overload simdjson_inline simdjson_result find_field_unordered(std::string_view key) & noexcept; */ simdjson_inline simdjson_result operator[](const char *key) & noexcept; + simdjson_result operator[](int) & noexcept = delete; /** * Get the type of this JSON value. It does not validate or consume the value. @@ -89917,6 +93124,11 @@ class document { /** * A document_reference is a thin wrapper around a document reference instance. + * The document_reference instances are used primarily/solely for streams of JSON + * documents. They differ from document instances when parsing a scalar value + * (a document that is not an array or an object). In the case of a document, + * we expect the document to be fully consumed. In the case of a document_reference, + * we allow trailing content. */ class document_reference { public: @@ -89942,7 +93154,70 @@ class document_reference { simdjson_inline simdjson_result get_value() noexcept; simdjson_inline simdjson_result is_null() noexcept; - template simdjson_inline simdjson_result get() & noexcept; + template + simdjson_inline simdjson_result get() & +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(std::is_default_constructible::value, "Cannot initialize the specified type."); + T out{}; + SIMDJSON_TRY(get(out)); + return out; + } + template + simdjson_inline simdjson_result get() && +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(!std::is_same::value && !std::is_same::value, "You should never hold either an ondemand::array or ondemand::object without a corresponding ondemand::document_reference being alive; that would be Undefined Behaviour."); + return static_cast(*this).get(); + } + + /** + * Get this value as the given type. + * + * Supported types: object, array, raw_json_string, string_view, uint64_t, int64_t, double, bool, value + * + * Be mindful that the document instance must remain in scope while you are accessing object, array and value instances. + * + * @param out This is set to a value of the given type, parsed from the JSON. If there is an error, this may not be initialized. + * @returns INCORRECT_TYPE If the JSON value is not an object. + * @returns SUCCESS If the parse succeeded and the out parameter was set to the value. + */ + template + simdjson_inline error_code get(T &out) & +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { +#if SIMDJSON_SUPPORTS_DESERIALIZATION + if constexpr (custom_deserializable) { + return deserialize(*this, out); + } else { +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION + // Unless the simdjson library or the user provides an inline implementation, calling this method should + // immediately fail. + static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " + "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " + "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " + " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." + " You may also add support for custom types, see our documentation."); + static_cast(out); // to get rid of unused errors + return UNINITIALIZED; +#if SIMDJSON_SUPPORTS_DESERIALIZATION + } +#endif + } + /** @overload template error_code get(T &out) & noexcept */ + template simdjson_inline error_code get(T &out) && noexcept; simdjson_inline simdjson_result raw_json() noexcept; simdjson_inline operator document&() const noexcept; #if SIMDJSON_EXCEPTIONS @@ -89967,6 +93242,7 @@ class document_reference { simdjson_inline simdjson_result find_field(const char *key) & noexcept; simdjson_inline simdjson_result operator[](std::string_view key) & noexcept; simdjson_inline simdjson_result operator[](const char *key) & noexcept; + simdjson_result operator[](int) & noexcept = delete; simdjson_inline simdjson_result find_field_unordered(std::string_view key) & noexcept; simdjson_inline simdjson_result find_field_unordered(const char *key) & noexcept; @@ -90045,6 +93321,7 @@ struct simdjson_result : public westmere::implemen simdjson_inline simdjson_result find_field(const char *key) & noexcept; simdjson_inline simdjson_result operator[](std::string_view key) & noexcept; simdjson_inline simdjson_result operator[](const char *key) & noexcept; + simdjson_result operator[](int) & noexcept = delete; simdjson_inline simdjson_result find_field_unordered(std::string_view key) & noexcept; simdjson_inline simdjson_result find_field_unordered(const char *key) & noexcept; simdjson_inline simdjson_result type() noexcept; @@ -90094,8 +93371,14 @@ struct simdjson_result : public westmere simdjson_inline simdjson_result get_bool() noexcept; simdjson_inline simdjson_result get_value() noexcept; simdjson_inline simdjson_result is_null() noexcept; + + template simdjson_inline simdjson_result get() & noexcept; + template simdjson_inline simdjson_result get() && noexcept; + + template simdjson_inline error_code get(T &out) & noexcept; + template simdjson_inline error_code get(T &out) && noexcept; #if SIMDJSON_EXCEPTIONS - template ::value == false>::type> + template explicit simdjson_inline operator T() noexcept(false); simdjson_inline operator westmere::ondemand::array() & noexcept(false); simdjson_inline operator westmere::ondemand::object() & noexcept(false); @@ -90116,6 +93399,7 @@ struct simdjson_result : public westmere simdjson_inline simdjson_result find_field(const char *key) & noexcept; simdjson_inline simdjson_result operator[](std::string_view key) & noexcept; simdjson_inline simdjson_result operator[](const char *key) & noexcept; + simdjson_result operator[](int) & noexcept = delete; simdjson_inline simdjson_result find_field_unordered(std::string_view key) & noexcept; simdjson_inline simdjson_result find_field_unordered(const char *key) & noexcept; simdjson_inline simdjson_result type() noexcept; @@ -91046,6 +94330,177 @@ inline std::ostream& operator<<(std::ostream& out, simdjson::simdjson_result +#include + +namespace simdjson { +template +constexpr bool require_custom_serialization = false; + +////////////////////////////// +// Number deserialization +////////////////////////////// + +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, auto &val, T &out) noexcept { + using limits = std::numeric_limits; + + uint64_t x; + SIMDJSON_TRY(val.get_uint64().get(x)); + if (x > (limits::max)()) { + return NUMBER_OUT_OF_RANGE; + } + out = static_cast(x); + return SUCCESS; +} + +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, auto &val, T &out) noexcept { + double x; + SIMDJSON_TRY(val.get_double().get(x)); + out = static_cast(x); + return SUCCESS; +} + +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, auto &val, T &out) noexcept { + using limits = std::numeric_limits; + + int64_t x; + SIMDJSON_TRY(val.get_int64().get(x)); + if (x > (limits::max)() || x < (limits::min)()) { + return NUMBER_OUT_OF_RANGE; + } + out = static_cast(x); + return SUCCESS; +} + +/** + * STL containers have several constructors including one that takes a single + * size argument. Thus, some compilers (Visual Studio) will not be able to + * disambiguate between the size and container constructor. Users should + * explicitly specify the type of the container as needed: e.g., + * doc.get>(). + */ +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, ValT &val, T &out) noexcept(false) { + using value_type = typename std::remove_cvref_t::value_type; + static_assert( + deserializable, + "The specified type inside the container must itself be deserializable"); + static_assert( + std::is_default_constructible_v, + "The specified type inside the container must default constructible."); + + westmere::ondemand::array arr; + SIMDJSON_TRY(val.get_array().get(arr)); + for (auto v : arr) { + if constexpr (concepts::returns_reference) { + if (auto const err = v.get().get(concepts::emplace_one(out)); + err) { + // If an error occurs, the empty element that we just inserted gets + // removed. We're not using a temp variable because if T is a heavy + // type, we want the valid path to be the fast path and the slow path be + // the path that has errors in it. + if constexpr (requires { out.pop_back(); }) { + static_cast(out.pop_back()); + } + return err; + } + } else { + value_type temp; + if (auto const err = v.get().get(temp); err) { + return err; + } + concepts::emplace_one(out, std::move(temp)); + } + } + return SUCCESS; +} + + + +/** + * This CPO (Customization Point Object) will help deserialize into + * smart pointers. + * + * If constructing T is nothrow, this conversion should be nothrow as well since + * we return MEMALLOC if we're not able to allocate memory instead of throwing + * the error message. + * + * @tparam T The type inside the smart pointer + * @tparam ValT document/value type + * @param val document/value + * @param out a reference to the smart pointer + * @return status of the conversion + */ +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, ValT &val, T &out) noexcept(nothrow_deserializable::element_type, ValT>) { + using element_type = typename std::remove_cvref_t::element_type; + + // For better error messages, don't use these as constraints on + // the tag_invoke CPO. + static_assert( + deserializable, + "The specified type inside the unique_ptr must itself be deserializable"); + static_assert( + std::is_default_constructible_v, + "The specified type inside the unique_ptr must default constructible."); + + auto ptr = new (std::nothrow) element_type(); + if (ptr == nullptr) { + return MEMALLOC; + } + SIMDJSON_TRY(val.template get(*ptr)); + out.reset(ptr); + return SUCCESS; +} + +/** + * This CPO (Customization Point Object) will help deserialize into optional types. + */ +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, ValT &val, T &out) noexcept(nothrow_deserializable::value_type, ValT>) { + using value_type = typename std::remove_cvref_t::value_type; + + static_assert( + deserializable, + "The specified type inside the unique_ptr must itself be deserializable"); + static_assert( + std::is_default_constructible_v, + "The specified type inside the unique_ptr must default constructible."); + + if (!out) { + out.emplace(); + } + SIMDJSON_TRY(val.template get(out.value())); + return SUCCESS; +} + +} // namespace simdjson + +#endif // SIMDJSON_ONDEMAND_DESERIALIZE_H +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION +/* end file simdjson/generic/ondemand/std_deserialize.h for westmere */ + // Inline definitions /* including simdjson/generic/ondemand/array-inl.h for westmere: #include "simdjson/generic/ondemand/array-inl.h" */ /* begin file simdjson/generic/ondemand/array-inl.h for westmere */ @@ -91053,6 +94508,7 @@ inline std::ostream& operator<<(std::ostream& out, simdjson::simdjson_result array::at_pointer(std::string_view json_pointer) n return child; } -inline std::string json_path_to_pointer_conversion(std::string_view json_path) { - if (json_path.empty() || (json_path.front() != '.' && - json_path.front() != '[')) { - return "-1"; // This is just a sentinel value, the caller should check for this and return an error. - } - - std::string result; - // Reserve space to reduce allocations, adjusting for potential increases due - // to escaping. - result.reserve(json_path.size() * 2); - - size_t i = 0; - - while (i < json_path.length()) { - if (json_path[i] == '.') { - result += '/'; - } else if (json_path[i] == '[') { - result += '/'; - ++i; // Move past the '[' - while (i < json_path.length() && json_path[i] != ']') { - if (json_path[i] == '~') { - result += "~0"; - } else if (json_path[i] == '/') { - result += "~1"; - } else { - result += json_path[i]; - } - ++i; - } - if (i == json_path.length() || json_path[i] != ']') { - return "-1"; // Using sentinel value that will be handled as an error by the caller. - } - } else { - if (json_path[i] == '~') { - result += "~0"; - } else if (json_path[i] == '/') { - result += "~1"; - } else { - result += json_path[i]; - } - } - ++i; - } - - return result; -} - inline simdjson_result array::at_path(std::string_view json_path) noexcept { auto json_pointer = json_path_to_pointer_conversion(json_path); if (json_pointer == "-1") { return INVALID_JSON_POINTER; } @@ -91414,313 +94823,276 @@ simdjson_inline simdjson_result &simdjson_re #endif // SIMDJSON_GENERIC_ONDEMAND_ARRAY_ITERATOR_INL_H /* end file simdjson/generic/ondemand/array_iterator-inl.h for westmere */ -/* including simdjson/generic/ondemand/document-inl.h for westmere: #include "simdjson/generic/ondemand/document-inl.h" */ -/* begin file simdjson/generic/ondemand/document-inl.h for westmere */ -#ifndef SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H +/* including simdjson/generic/ondemand/value-inl.h for westmere: #include "simdjson/generic/ondemand/value-inl.h" */ +/* begin file simdjson/generic/ondemand/value-inl.h for westmere */ +#ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H /* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ -/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H */ +/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array_iterator.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator-inl.h" */ /* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ namespace simdjson { namespace westmere { namespace ondemand { -simdjson_inline document::document(ondemand::json_iterator &&_iter) noexcept - : iter{std::forward(_iter)} +simdjson_inline value::value(const value_iterator &_iter) noexcept + : iter{_iter} { - logger::log_start_value(iter, "document"); } - -simdjson_inline document document::start(json_iterator &&iter) noexcept { - return document(std::forward(iter)); +simdjson_inline value value::start(const value_iterator &iter) noexcept { + return iter; } - -inline void document::rewind() noexcept { - iter.rewind(); +simdjson_inline value value::resume(const value_iterator &iter) noexcept { + return iter; } -inline std::string document::to_debug_string() noexcept { - return iter.to_string(); +simdjson_inline simdjson_result value::get_array() noexcept { + return array::start(iter); } - -inline simdjson_result document::current_location() const noexcept { - return iter.current_location(); +simdjson_inline simdjson_result value::get_object() noexcept { + return object::start(iter); } - -inline int32_t document::current_depth() const noexcept { - return iter.depth(); +simdjson_inline simdjson_result value::start_or_resume_object() noexcept { + if (iter.at_start()) { + return get_object(); + } else { + return object::resume(iter); + } } -inline bool document::at_end() const noexcept { - return iter.at_end(); +simdjson_inline simdjson_result value::get_raw_json_string() noexcept { + return iter.get_raw_json_string(); } - - -inline bool document::is_alive() noexcept { - return iter.is_alive(); +simdjson_inline simdjson_result value::get_string(bool allow_replacement) noexcept { + return iter.get_string(allow_replacement); } -simdjson_inline value_iterator document::resume_value_iterator() noexcept { - return value_iterator(&iter, 1, iter.root_position()); +template +simdjson_inline error_code value::get_string(string_type& receiver, bool allow_replacement) noexcept { + return iter.get_string(receiver, allow_replacement); } -simdjson_inline value_iterator document::get_root_value_iterator() noexcept { - return resume_value_iterator(); +simdjson_inline simdjson_result value::get_wobbly_string() noexcept { + return iter.get_wobbly_string(); } -simdjson_inline simdjson_result document::start_or_resume_object() noexcept { - if (iter.at_root()) { - return get_object(); - } else { - return object::resume(resume_value_iterator()); - } +simdjson_inline simdjson_result value::get_double() noexcept { + return iter.get_double(); } -simdjson_inline simdjson_result document::get_value() noexcept { - // Make sure we start any arrays or objects before returning, so that start_root_() - // gets called. - - // It is the convention throughout the code that the macro `SIMDJSON_DEVELOPMENT_CHECKS` determines whether - // we check for OUT_OF_ORDER_ITERATION. Proper on::demand code should never trigger this error. -#if SIMDJSON_DEVELOPMENT_CHECKS - if (!iter.at_root()) { return OUT_OF_ORDER_ITERATION; } -#endif - // assert_at_root() serves two purposes: in Debug mode, whether or not - // SIMDJSON_DEVELOPMENT_CHECKS is set or not, it checks that we are at the root of - // the document (this will typically be redundant). In release mode, it generates - // SIMDJSON_ASSUME statements to allow the compiler to make assumptions. - iter.assert_at_root(); - switch (*iter.peek()) { - case '[': { - // The following lines check that the document ends with ]. - auto value_iterator = get_root_value_iterator(); - auto error = value_iterator.check_root_array(); - if(error) { return error; } - return value(get_root_value_iterator()); - } - case '{': { - // The following lines would check that the document ends with }. - auto value_iterator = get_root_value_iterator(); - auto error = value_iterator.check_root_object(); - if(error) { return error; } - return value(get_root_value_iterator()); - } - default: - // Unfortunately, scalar documents are a special case in simdjson and they cannot - // be safely converted to value instances. - return SCALAR_DOCUMENT_AS_VALUE; - } +simdjson_inline simdjson_result value::get_double_in_string() noexcept { + return iter.get_double_in_string(); } -simdjson_inline simdjson_result document::get_array() & noexcept { - auto value = get_root_value_iterator(); - return array::start_root(value); +simdjson_inline simdjson_result value::get_uint64() noexcept { + return iter.get_uint64(); } -simdjson_inline simdjson_result document::get_object() & noexcept { - auto value = get_root_value_iterator(); - return object::start_root(value); +simdjson_inline simdjson_result value::get_uint64_in_string() noexcept { + return iter.get_uint64_in_string(); } - -/** - * We decided that calling 'get_double()' on the JSON document '1.233 blabla' should - * give an error, so we check for trailing content. We want to disallow trailing - * content. - * Thus, in several implementations below, we pass a 'true' parameter value to - * a get_root_value_iterator() method: this indicates that we disallow trailing content. - */ - -simdjson_inline simdjson_result document::get_uint64() noexcept { - return get_root_value_iterator().get_root_uint64(true); +simdjson_inline simdjson_result value::get_int64() noexcept { + return iter.get_int64(); } -simdjson_inline simdjson_result document::get_uint64_in_string() noexcept { - return get_root_value_iterator().get_root_uint64_in_string(true); +simdjson_inline simdjson_result value::get_int64_in_string() noexcept { + return iter.get_int64_in_string(); } -simdjson_inline simdjson_result document::get_int64() noexcept { - return get_root_value_iterator().get_root_int64(true); +simdjson_inline simdjson_result value::get_bool() noexcept { + return iter.get_bool(); } -simdjson_inline simdjson_result document::get_int64_in_string() noexcept { - return get_root_value_iterator().get_root_int64_in_string(true); +simdjson_inline simdjson_result value::is_null() noexcept { + return iter.is_null(); } -simdjson_inline simdjson_result document::get_double() noexcept { - return get_root_value_iterator().get_root_double(true); + +template<> simdjson_inline simdjson_result value::get() noexcept { return get_array(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_object(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_raw_json_string(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_string(false); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_number(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_double(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_uint64(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_int64(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_bool(); } + + +template<> simdjson_inline error_code value::get(array& out) noexcept { return get_array().get(out); } +template<> simdjson_inline error_code value::get(object& out) noexcept { return get_object().get(out); } +template<> simdjson_inline error_code value::get(raw_json_string& out) noexcept { return get_raw_json_string().get(out); } +template<> simdjson_inline error_code value::get(std::string_view& out) noexcept { return get_string(false).get(out); } +template<> simdjson_inline error_code value::get(number& out) noexcept { return get_number().get(out); } +template<> simdjson_inline error_code value::get(double& out) noexcept { return get_double().get(out); } +template<> simdjson_inline error_code value::get(uint64_t& out) noexcept { return get_uint64().get(out); } +template<> simdjson_inline error_code value::get(int64_t& out) noexcept { return get_int64().get(out); } +template<> simdjson_inline error_code value::get(bool& out) noexcept { return get_bool().get(out); } + +#if SIMDJSON_EXCEPTIONS +template +simdjson_inline value::operator T() noexcept(false) { + return get(); } -simdjson_inline simdjson_result document::get_double_in_string() noexcept { - return get_root_value_iterator().get_root_double_in_string(true); +simdjson_inline value::operator array() noexcept(false) { + return get_array(); } -simdjson_inline simdjson_result document::get_string(bool allow_replacement) noexcept { - return get_root_value_iterator().get_root_string(true, allow_replacement); +simdjson_inline value::operator object() noexcept(false) { + return get_object(); } -template -simdjson_inline error_code document::get_string(string_type& receiver, bool allow_replacement) noexcept { - return get_root_value_iterator().get_root_string(receiver, true, allow_replacement); +simdjson_inline value::operator uint64_t() noexcept(false) { + return get_uint64(); } -simdjson_inline simdjson_result document::get_wobbly_string() noexcept { - return get_root_value_iterator().get_root_wobbly_string(true); +simdjson_inline value::operator int64_t() noexcept(false) { + return get_int64(); } -simdjson_inline simdjson_result document::get_raw_json_string() noexcept { - return get_root_value_iterator().get_root_raw_json_string(true); +simdjson_inline value::operator double() noexcept(false) { + return get_double(); } -simdjson_inline simdjson_result document::get_bool() noexcept { - return get_root_value_iterator().get_root_bool(true); +simdjson_inline value::operator std::string_view() noexcept(false) { + return get_string(false); } -simdjson_inline simdjson_result document::is_null() noexcept { - return get_root_value_iterator().is_root_null(true); +simdjson_inline value::operator raw_json_string() noexcept(false) { + return get_raw_json_string(); } +simdjson_inline value::operator bool() noexcept(false) { + return get_bool(); +} +#endif -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_array(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_object(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_raw_json_string(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_string(false); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_double(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_uint64(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_int64(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_bool(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_value(); } - -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_raw_json_string(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_string(false); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_double(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_uint64(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_int64(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_bool(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_value(); } - -template simdjson_inline error_code document::get(T &out) & noexcept { - return get().get(out); +simdjson_inline simdjson_result value::begin() & noexcept { + return get_array().begin(); } -template simdjson_deprecated simdjson_inline error_code document::get(T &out) && noexcept { - return std::forward(*this).get().get(out); +simdjson_inline simdjson_result value::end() & noexcept { + return {}; } - -#if SIMDJSON_EXCEPTIONS -template -simdjson_deprecated simdjson_inline document::operator T() && noexcept(false) { return get(); } -template -simdjson_inline document::operator T() & noexcept(false) { return get(); } -simdjson_inline document::operator array() & noexcept(false) { return get_array(); } -simdjson_inline document::operator object() & noexcept(false) { return get_object(); } -simdjson_inline document::operator uint64_t() noexcept(false) { return get_uint64(); } -simdjson_inline document::operator int64_t() noexcept(false) { return get_int64(); } -simdjson_inline document::operator double() noexcept(false) { return get_double(); } -simdjson_inline document::operator std::string_view() noexcept(false) { return get_string(false); } -simdjson_inline document::operator raw_json_string() noexcept(false) { return get_raw_json_string(); } -simdjson_inline document::operator bool() noexcept(false) { return get_bool(); } -simdjson_inline document::operator value() noexcept(false) { return get_value(); } - -#endif -simdjson_inline simdjson_result document::count_elements() & noexcept { +simdjson_inline simdjson_result value::count_elements() & noexcept { + simdjson_result answer; auto a = get_array(); - simdjson_result answer = a.count_elements(); - /* If there was an array, we are now left pointing at its first element. */ - if(answer.error() == SUCCESS) { rewind(); } + answer = a.count_elements(); + // count_elements leaves you pointing inside the array, at the first element. + // We need to move back so that the user can create a new array (which requires that + // we point at '['). + iter.move_at_start(); return answer; } -simdjson_inline simdjson_result document::count_fields() & noexcept { +simdjson_inline simdjson_result value::count_fields() & noexcept { + simdjson_result answer; auto a = get_object(); - simdjson_result answer = a.count_fields(); - /* If there was an object, we are now left pointing at its first element. */ - if(answer.error() == SUCCESS) { rewind(); } + answer = a.count_fields(); + iter.move_at_start(); return answer; } -simdjson_inline simdjson_result document::at(size_t index) & noexcept { +simdjson_inline simdjson_result value::at(size_t index) noexcept { auto a = get_array(); return a.at(index); } -simdjson_inline simdjson_result document::begin() & noexcept { - return get_array().begin(); -} -simdjson_inline simdjson_result document::end() & noexcept { - return {}; -} -simdjson_inline simdjson_result document::find_field(std::string_view key) & noexcept { +simdjson_inline simdjson_result value::find_field(std::string_view key) noexcept { return start_or_resume_object().find_field(key); } -simdjson_inline simdjson_result document::find_field(const char *key) & noexcept { +simdjson_inline simdjson_result value::find_field(const char *key) noexcept { return start_or_resume_object().find_field(key); } -simdjson_inline simdjson_result document::find_field_unordered(std::string_view key) & noexcept { - return start_or_resume_object().find_field_unordered(key); + +simdjson_inline simdjson_result value::find_field_unordered(std::string_view key) noexcept { + return start_or_resume_object().find_field_unordered(key); } -simdjson_inline simdjson_result document::find_field_unordered(const char *key) & noexcept { +simdjson_inline simdjson_result value::find_field_unordered(const char *key) noexcept { return start_or_resume_object().find_field_unordered(key); } -simdjson_inline simdjson_result document::operator[](std::string_view key) & noexcept { + +simdjson_inline simdjson_result value::operator[](std::string_view key) noexcept { return start_or_resume_object()[key]; } -simdjson_inline simdjson_result document::operator[](const char *key) & noexcept { +simdjson_inline simdjson_result value::operator[](const char *key) noexcept { return start_or_resume_object()[key]; } -simdjson_inline error_code document::consume() noexcept { - auto error = iter.skip_child(0); - if(error) { iter.abandon(); } - return error; -} - -simdjson_inline simdjson_result document::raw_json() noexcept { - auto _iter = get_root_value_iterator(); - const uint8_t * starting_point{_iter.peek_start()}; - auto error = consume(); - if(error) { return error; } - // After 'consume()', we could be left pointing just beyond the document, but that - // is ok because we are not going to dereference the final pointer position, we just - // use it to compute the length in bytes. - const uint8_t * final_point{iter.unsafe_pointer()}; - return std::string_view(reinterpret_cast(starting_point), size_t(final_point - starting_point)); -} - -simdjson_inline simdjson_result document::type() noexcept { - return get_root_value_iterator().type(); +simdjson_inline simdjson_result value::type() noexcept { + return iter.type(); } -simdjson_inline simdjson_result document::is_scalar() noexcept { +simdjson_inline simdjson_result value::is_scalar() noexcept { json_type this_type; auto error = type().get(this_type); if(error) { return error; } return ! ((this_type == json_type::array) || (this_type == json_type::object)); } -simdjson_inline simdjson_result document::is_string() noexcept { +simdjson_inline simdjson_result value::is_string() noexcept { json_type this_type; auto error = type().get(this_type); if(error) { return error; } return (this_type == json_type::string); } -simdjson_inline bool document::is_negative() noexcept { - return get_root_value_iterator().is_root_negative(); + +simdjson_inline bool value::is_negative() noexcept { + return iter.is_negative(); } -simdjson_inline simdjson_result document::is_integer() noexcept { - return get_root_value_iterator().is_root_integer(true); +simdjson_inline simdjson_result value::is_integer() noexcept { + return iter.is_integer(); +} +simdjson_warn_unused simdjson_inline simdjson_result value::get_number_type() noexcept { + return iter.get_number_type(); +} +simdjson_warn_unused simdjson_inline simdjson_result value::get_number() noexcept { + return iter.get_number(); } -simdjson_inline simdjson_result document::get_number_type() noexcept { - return get_root_value_iterator().get_root_number_type(true); +simdjson_inline std::string_view value::raw_json_token() noexcept { + return std::string_view(reinterpret_cast(iter.peek_start()), iter.peek_start_length()); } -simdjson_inline simdjson_result document::get_number() noexcept { - return get_root_value_iterator().get_root_number(true); +simdjson_inline simdjson_result value::raw_json() noexcept { + json_type t; + SIMDJSON_TRY(type().get(t)); + switch (t) + { + case json_type::array: { + ondemand::array array; + SIMDJSON_TRY(get_array().get(array)); + return array.raw_json(); + } + case json_type::object: { + ondemand::object object; + SIMDJSON_TRY(get_object().get(object)); + return object.raw_json(); + } + default: + return raw_json_token(); + } } +simdjson_inline simdjson_result value::current_location() noexcept { + return iter.json_iter().current_location(); +} -simdjson_inline simdjson_result document::raw_json_token() noexcept { - auto _iter = get_root_value_iterator(); - return std::string_view(reinterpret_cast(_iter.peek_start()), _iter.peek_root_length()); +simdjson_inline int32_t value::current_depth() const noexcept{ + return iter.json_iter().depth(); } -simdjson_inline simdjson_result document::at_pointer(std::string_view json_pointer) noexcept { - rewind(); // Rewind the document each time at_pointer is called - if (json_pointer.empty()) { - return this->get_value(); +inline bool is_pointer_well_formed(std::string_view json_pointer) noexcept { + if (simdjson_unlikely(json_pointer.empty())) { // can't be + return false; + } + if (simdjson_unlikely(json_pointer[0] != '/')) { + return false; + } + size_t escape = json_pointer.find('~'); + if (escape == std::string_view::npos) { + return true; } + if (escape == json_pointer.size() - 1) { + return false; + } + if (json_pointer[escape + 1] != '0' && json_pointer[escape + 1] != '1') { + return false; + } + return true; +} + +simdjson_inline simdjson_result value::at_pointer(std::string_view json_pointer) noexcept { json_type t; SIMDJSON_TRY(type().get(t)); switch (t) @@ -91730,15 +95102,15 @@ simdjson_inline simdjson_result document::at_pointer(std::string_view jso case json_type::object: return (*this).get_object().at_pointer(json_pointer); default: + // a non-empty string can be invalid, or accessing a primitive (issue 2154) + if (is_pointer_well_formed(json_pointer)) { + return NO_SUCH_FIELD; + } return INVALID_JSON_POINTER; } } -simdjson_inline simdjson_result document::at_path(std::string_view json_path) noexcept { - rewind(); // Rewind the document each time at_pointer is called - if (json_path.empty()) { - return this->get_value(); - } +simdjson_inline simdjson_result value::at_path(std::string_view json_path) noexcept { json_type t; SIMDJSON_TRY(type().get(t)); switch (t) { @@ -91757,681 +95129,1320 @@ simdjson_inline simdjson_result document::at_path(std::string_view json_p namespace simdjson { -simdjson_inline simdjson_result::simdjson_result( - westmere::ondemand::document &&value +simdjson_inline simdjson_result::simdjson_result( + westmere::ondemand::value &&value ) noexcept : - implementation_simdjson_result_base( - std::forward(value) + implementation_simdjson_result_base( + std::forward(value) ) { } -simdjson_inline simdjson_result::simdjson_result( +simdjson_inline simdjson_result::simdjson_result( error_code error ) noexcept : - implementation_simdjson_result_base( - error - ) + implementation_simdjson_result_base(error) { } -simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { +simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { if (error()) { return error(); } return first.count_elements(); } -simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { +simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { if (error()) { return error(); } return first.count_fields(); } -simdjson_inline simdjson_result simdjson_result::at(size_t index) & noexcept { +simdjson_inline simdjson_result simdjson_result::at(size_t index) noexcept { if (error()) { return error(); } return first.at(index); } -simdjson_inline error_code simdjson_result::rewind() noexcept { - if (error()) { return error(); } - first.rewind(); - return SUCCESS; -} -simdjson_inline simdjson_result simdjson_result::begin() & noexcept { +simdjson_inline simdjson_result simdjson_result::begin() & noexcept { if (error()) { return error(); } return first.begin(); } -simdjson_inline simdjson_result simdjson_result::end() & noexcept { +simdjson_inline simdjson_result simdjson_result::end() & noexcept { + if (error()) { return error(); } return {}; } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) & noexcept { + +simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) noexcept { if (error()) { return error(); } - return first.find_field_unordered(key); + return first.find_field(key); } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field(const char *key) noexcept { if (error()) { return error(); } - return first.find_field_unordered(key); + return first.find_field(key); } -simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) & noexcept { + +simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) noexcept { if (error()) { return error(); } - return first[key]; + return first.find_field_unordered(key); } -simdjson_inline simdjson_result simdjson_result::operator[](const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) noexcept { if (error()) { return error(); } - return first[key]; + return first.find_field_unordered(key); } -simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) & noexcept { + +simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) noexcept { if (error()) { return error(); } - return first.find_field(key); + return first[key]; } -simdjson_inline simdjson_result simdjson_result::find_field(const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::operator[](const char *key) noexcept { if (error()) { return error(); } - return first.find_field(key); + return first[key]; } -simdjson_inline simdjson_result simdjson_result::get_array() & noexcept { + +simdjson_inline simdjson_result simdjson_result::get_array() noexcept { if (error()) { return error(); } return first.get_array(); } -simdjson_inline simdjson_result simdjson_result::get_object() & noexcept { +simdjson_inline simdjson_result simdjson_result::get_object() noexcept { if (error()) { return error(); } return first.get_object(); } -simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { +simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { if (error()) { return error(); } return first.get_uint64(); } -simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { if (error()) { return error(); } return first.get_uint64_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { +simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { if (error()) { return error(); } return first.get_int64(); } -simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { if (error()) { return error(); } return first.get_int64_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_double() noexcept { +simdjson_inline simdjson_result simdjson_result::get_double() noexcept { if (error()) { return error(); } return first.get_double(); } -simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { if (error()) { return error(); } return first.get_double_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { +simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { if (error()) { return error(); } return first.get_string(allow_replacement); } template -simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { +simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { if (error()) { return error(); } return first.get_string(receiver, allow_replacement); } -simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { if (error()) { return error(); } return first.get_wobbly_string(); } -simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { if (error()) { return error(); } return first.get_raw_json_string(); } -simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { +simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { if (error()) { return error(); } return first.get_bool(); } -simdjson_inline simdjson_result simdjson_result::get_value() noexcept { - if (error()) { return error(); } - return first.get_value(); -} -simdjson_inline simdjson_result simdjson_result::is_null() noexcept { +simdjson_inline simdjson_result simdjson_result::is_null() noexcept { if (error()) { return error(); } return first.is_null(); } -template -simdjson_inline simdjson_result simdjson_result::get() & noexcept { +template<> simdjson_inline error_code simdjson_result::get(westmere::ondemand::value &out) noexcept { if (error()) { return error(); } - return first.get(); + out = first; + return SUCCESS; } -template -simdjson_deprecated simdjson_inline simdjson_result simdjson_result::get() && noexcept { + +template simdjson_inline simdjson_result simdjson_result::get() noexcept { if (error()) { return error(); } - return std::forward(first).get(); + return first.get(); } -template -simdjson_inline error_code simdjson_result::get(T &out) & noexcept { +template simdjson_inline error_code simdjson_result::get(T &out) noexcept { if (error()) { return error(); } return first.get(out); } -template -simdjson_inline error_code simdjson_result::get(T &out) && noexcept { - if (error()) { return error(); } - return std::forward(first).get(out); -} -template<> simdjson_inline simdjson_result simdjson_result::get() & noexcept = delete; -template<> simdjson_deprecated simdjson_inline simdjson_result simdjson_result::get() && noexcept { - if (error()) { return error(); } - return std::forward(first); -} -template<> simdjson_inline error_code simdjson_result::get(westmere::ondemand::document &out) & noexcept = delete; -template<> simdjson_inline error_code simdjson_result::get(westmere::ondemand::document &out) && noexcept { +template<> simdjson_inline simdjson_result simdjson_result::get() noexcept { if (error()) { return error(); } - out = std::forward(first); - return SUCCESS; + return std::move(first); } -simdjson_inline simdjson_result simdjson_result::type() noexcept { +simdjson_inline simdjson_result simdjson_result::type() noexcept { if (error()) { return error(); } return first.type(); } - -simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { +simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { if (error()) { return error(); } return first.is_scalar(); } - -simdjson_inline simdjson_result simdjson_result::is_string() noexcept { +simdjson_inline simdjson_result simdjson_result::is_string() noexcept { if (error()) { return error(); } return first.is_string(); } - -simdjson_inline bool simdjson_result::is_negative() noexcept { +simdjson_inline simdjson_result simdjson_result::is_negative() noexcept { if (error()) { return error(); } return first.is_negative(); } - -simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { +simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { if (error()) { return error(); } return first.is_integer(); } - -simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { +simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { if (error()) { return error(); } return first.get_number_type(); } - -simdjson_inline simdjson_result simdjson_result::get_number() noexcept { +simdjson_inline simdjson_result simdjson_result::get_number() noexcept { if (error()) { return error(); } return first.get_number(); } - - #if SIMDJSON_EXCEPTIONS -template ::value == false>::type> -simdjson_inline simdjson_result::operator T() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator westmere::ondemand::array() & noexcept(false) { +template +simdjson_inline simdjson_result::operator T() noexcept(false) { if (error()) { throw simdjson_error(error()); } - return first; + return first.get(); } -simdjson_inline simdjson_result::operator westmere::ondemand::object() & noexcept(false) { +simdjson_inline simdjson_result::operator westmere::ondemand::array() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { +simdjson_inline simdjson_result::operator westmere::ondemand::object() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator int64_t() noexcept(false) { +simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator double() noexcept(false) { +simdjson_inline simdjson_result::operator int64_t() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { +simdjson_inline simdjson_result::operator double() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator westmere::ondemand::raw_json_string() noexcept(false) { +simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator bool() noexcept(false) { +simdjson_inline simdjson_result::operator westmere::ondemand::raw_json_string() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator westmere::ondemand::value() noexcept(false) { +simdjson_inline simdjson_result::operator bool() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } #endif - -simdjson_inline simdjson_result simdjson_result::current_location() noexcept { +simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { if (error()) { return error(); } - return first.current_location(); + return first.raw_json_token(); } -simdjson_inline bool simdjson_result::at_end() const noexcept { +simdjson_inline simdjson_result simdjson_result::raw_json() noexcept { if (error()) { return error(); } - return first.at_end(); + return first.raw_json(); } - -simdjson_inline int32_t simdjson_result::current_depth() const noexcept { +simdjson_inline simdjson_result simdjson_result::current_location() noexcept { if (error()) { return error(); } - return first.current_depth(); + return first.current_location(); } -simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { +simdjson_inline simdjson_result simdjson_result::current_depth() const noexcept { if (error()) { return error(); } - return first.raw_json_token(); + return first.current_depth(); } -simdjson_inline simdjson_result simdjson_result::at_pointer(std::string_view json_pointer) noexcept { - if (error()) { return error(); } +simdjson_inline simdjson_result simdjson_result::at_pointer( + std::string_view json_pointer) noexcept { + if (error()) { + return error(); + } return first.at_pointer(json_pointer); } -simdjson_inline simdjson_result simdjson_result::at_path(std::string_view json_path) noexcept { - if (error()) { return error(); } +simdjson_inline simdjson_result simdjson_result::at_path( + std::string_view json_path) noexcept { + if (error()) { + return error(); + } return first.at_path(json_path); } } // namespace simdjson +#endif // SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H +/* end file simdjson/generic/ondemand/value-inl.h for westmere */ +/* including simdjson/generic/ondemand/document-inl.h for westmere: #include "simdjson/generic/ondemand/document-inl.h" */ +/* begin file simdjson/generic/ondemand/document-inl.h for westmere */ +#ifndef SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H + +/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ +/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/deserialize.h" */ +/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ namespace simdjson { namespace westmere { namespace ondemand { -simdjson_inline document_reference::document_reference() noexcept : doc{nullptr} {} -simdjson_inline document_reference::document_reference(document &d) noexcept : doc(&d) {} -simdjson_inline void document_reference::rewind() noexcept { doc->rewind(); } -simdjson_inline simdjson_result document_reference::get_array() & noexcept { return doc->get_array(); } -simdjson_inline simdjson_result document_reference::get_object() & noexcept { return doc->get_object(); } -/** - * The document_reference instances are used primarily/solely for streams of JSON - * documents. - * We decided that calling 'get_double()' on the JSON document '1.233 blabla' should - * give an error, so we check for trailing content. - * - * However, for streams of JSON documents, we want to be able to start from - * "321" "321" "321" - * and parse it successfully as a stream of JSON documents, calling get_uint64_in_string() - * successfully each time. - * - * To achieve this result, we pass a 'false' to a get_root_value_iterator() method: - * this indicates that we allow trailing content. - */ -simdjson_inline simdjson_result document_reference::get_uint64() noexcept { return doc->get_root_value_iterator().get_root_uint64(false); } -simdjson_inline simdjson_result document_reference::get_uint64_in_string() noexcept { return doc->get_root_value_iterator().get_root_uint64_in_string(false); } -simdjson_inline simdjson_result document_reference::get_int64() noexcept { return doc->get_root_value_iterator().get_root_int64(false); } -simdjson_inline simdjson_result document_reference::get_int64_in_string() noexcept { return doc->get_root_value_iterator().get_root_int64_in_string(false); } -simdjson_inline simdjson_result document_reference::get_double() noexcept { return doc->get_root_value_iterator().get_root_double(false); } -simdjson_inline simdjson_result document_reference::get_double_in_string() noexcept { return doc->get_root_value_iterator().get_root_double(false); } -simdjson_inline simdjson_result document_reference::get_string(bool allow_replacement) noexcept { return doc->get_root_value_iterator().get_root_string(false, allow_replacement); } -template -simdjson_inline error_code document_reference::get_string(string_type& receiver, bool allow_replacement) noexcept { return doc->get_root_value_iterator().get_root_string(receiver, false, allow_replacement); } -simdjson_inline simdjson_result document_reference::get_wobbly_string() noexcept { return doc->get_root_value_iterator().get_root_wobbly_string(false); } -simdjson_inline simdjson_result document_reference::get_raw_json_string() noexcept { return doc->get_root_value_iterator().get_root_raw_json_string(false); } -simdjson_inline simdjson_result document_reference::get_bool() noexcept { return doc->get_root_value_iterator().get_root_bool(false); } -simdjson_inline simdjson_result document_reference::get_value() noexcept { return doc->get_value(); } -simdjson_inline simdjson_result document_reference::is_null() noexcept { return doc->get_root_value_iterator().is_root_null(false); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_array(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_object(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_raw_json_string(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_string(false); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_double(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_uint64(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_int64(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_bool(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_value(); } -#if SIMDJSON_EXCEPTIONS -template -simdjson_inline document_reference::operator T() noexcept(false) { return get(); } -simdjson_inline document_reference::operator array() & noexcept(false) { return array(*doc); } -simdjson_inline document_reference::operator object() & noexcept(false) { return object(*doc); } -simdjson_inline document_reference::operator uint64_t() noexcept(false) { return get_uint64(); } -simdjson_inline document_reference::operator int64_t() noexcept(false) { return get_int64(); } -simdjson_inline document_reference::operator double() noexcept(false) { return get_double(); } -simdjson_inline document_reference::operator std::string_view() noexcept(false) { return std::string_view(*doc); } -simdjson_inline document_reference::operator raw_json_string() noexcept(false) { return get_raw_json_string(); } -simdjson_inline document_reference::operator bool() noexcept(false) { return get_bool(); } -simdjson_inline document_reference::operator value() noexcept(false) { return value(*doc); } -#endif -simdjson_inline simdjson_result document_reference::count_elements() & noexcept { return doc->count_elements(); } -simdjson_inline simdjson_result document_reference::count_fields() & noexcept { return doc->count_fields(); } -simdjson_inline simdjson_result document_reference::at(size_t index) & noexcept { return doc->at(index); } -simdjson_inline simdjson_result document_reference::begin() & noexcept { return doc->begin(); } -simdjson_inline simdjson_result document_reference::end() & noexcept { return doc->end(); } -simdjson_inline simdjson_result document_reference::find_field(std::string_view key) & noexcept { return doc->find_field(key); } -simdjson_inline simdjson_result document_reference::find_field(const char *key) & noexcept { return doc->find_field(key); } -simdjson_inline simdjson_result document_reference::operator[](std::string_view key) & noexcept { return (*doc)[key]; } -simdjson_inline simdjson_result document_reference::operator[](const char *key) & noexcept { return (*doc)[key]; } -simdjson_inline simdjson_result document_reference::find_field_unordered(std::string_view key) & noexcept { return doc->find_field_unordered(key); } -simdjson_inline simdjson_result document_reference::find_field_unordered(const char *key) & noexcept { return doc->find_field_unordered(key); } -simdjson_inline simdjson_result document_reference::type() noexcept { return doc->type(); } -simdjson_inline simdjson_result document_reference::is_scalar() noexcept { return doc->is_scalar(); } -simdjson_inline simdjson_result document_reference::is_string() noexcept { return doc->is_string(); } -simdjson_inline simdjson_result document_reference::current_location() noexcept { return doc->current_location(); } -simdjson_inline int32_t document_reference::current_depth() const noexcept { return doc->current_depth(); } -simdjson_inline bool document_reference::is_negative() noexcept { return doc->is_negative(); } -simdjson_inline simdjson_result document_reference::is_integer() noexcept { return doc->get_root_value_iterator().is_root_integer(false); } -simdjson_inline simdjson_result document_reference::get_number_type() noexcept { return doc->get_root_value_iterator().get_root_number_type(false); } -simdjson_inline simdjson_result document_reference::get_number() noexcept { return doc->get_root_value_iterator().get_root_number(false); } -simdjson_inline simdjson_result document_reference::raw_json_token() noexcept { return doc->raw_json_token(); } -simdjson_inline simdjson_result document_reference::at_pointer(std::string_view json_pointer) noexcept { return doc->at_pointer(json_pointer); } -simdjson_inline simdjson_result document_reference::at_path(std::string_view json_path) noexcept { return doc->at_path(json_path); } -simdjson_inline simdjson_result document_reference::raw_json() noexcept { return doc->raw_json();} -simdjson_inline document_reference::operator document&() const noexcept { return *doc; } +simdjson_inline document::document(ondemand::json_iterator &&_iter) noexcept + : iter{std::forward(_iter)} +{ + logger::log_start_value(iter, "document"); +} -} // namespace ondemand -} // namespace westmere -} // namespace simdjson +simdjson_inline document document::start(json_iterator &&iter) noexcept { + return document(std::forward(iter)); +} +inline void document::rewind() noexcept { + iter.rewind(); +} +inline std::string document::to_debug_string() noexcept { + return iter.to_string(); +} -namespace simdjson { -simdjson_inline simdjson_result::simdjson_result(westmere::ondemand::document_reference value, error_code error) - noexcept : implementation_simdjson_result_base(std::forward(value), error) {} +inline simdjson_result document::current_location() const noexcept { + return iter.current_location(); +} +inline int32_t document::current_depth() const noexcept { + return iter.depth(); +} -simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { - if (error()) { return error(); } - return first.count_elements(); +inline bool document::at_end() const noexcept { + return iter.at_end(); } -simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { - if (error()) { return error(); } - return first.count_fields(); + + +inline bool document::is_alive() noexcept { + return iter.is_alive(); } -simdjson_inline simdjson_result simdjson_result::at(size_t index) & noexcept { - if (error()) { return error(); } - return first.at(index); +simdjson_inline value_iterator document::resume_value_iterator() noexcept { + return value_iterator(&iter, 1, iter.root_position()); } -simdjson_inline error_code simdjson_result::rewind() noexcept { - if (error()) { return error(); } - first.rewind(); - return SUCCESS; +simdjson_inline value_iterator document::get_root_value_iterator() noexcept { + return resume_value_iterator(); } -simdjson_inline simdjson_result simdjson_result::begin() & noexcept { - if (error()) { return error(); } - return first.begin(); +simdjson_inline simdjson_result document::start_or_resume_object() noexcept { + if (iter.at_root()) { + return get_object(); + } else { + return object::resume(resume_value_iterator()); + } } -simdjson_inline simdjson_result simdjson_result::end() & noexcept { - return {}; +simdjson_inline simdjson_result document::get_value() noexcept { + // Make sure we start any arrays or objects before returning, so that start_root_() + // gets called. + + // It is the convention throughout the code that the macro `SIMDJSON_DEVELOPMENT_CHECKS` determines whether + // we check for OUT_OF_ORDER_ITERATION. Proper on::demand code should never trigger this error. +#if SIMDJSON_DEVELOPMENT_CHECKS + if (!iter.at_root()) { return OUT_OF_ORDER_ITERATION; } +#endif + // assert_at_root() serves two purposes: in Debug mode, whether or not + // SIMDJSON_DEVELOPMENT_CHECKS is set or not, it checks that we are at the root of + // the document (this will typically be redundant). In release mode, it generates + // SIMDJSON_ASSUME statements to allow the compiler to make assumptions. + iter.assert_at_root(); + switch (*iter.peek()) { + case '[': { + // The following lines check that the document ends with ]. + auto value_iterator = get_root_value_iterator(); + auto error = value_iterator.check_root_array(); + if(error) { return error; } + return value(get_root_value_iterator()); + } + case '{': { + // The following lines would check that the document ends with }. + auto value_iterator = get_root_value_iterator(); + auto error = value_iterator.check_root_object(); + if(error) { return error; } + return value(get_root_value_iterator()); + } + default: + // Unfortunately, scalar documents are a special case in simdjson and they cannot + // be safely converted to value instances. + return SCALAR_DOCUMENT_AS_VALUE; + } } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) & noexcept { +simdjson_inline simdjson_result document::get_array() & noexcept { + auto value = get_root_value_iterator(); + return array::start_root(value); +} +simdjson_inline simdjson_result document::get_object() & noexcept { + auto value = get_root_value_iterator(); + return object::start_root(value); +} + +/** + * We decided that calling 'get_double()' on the JSON document '1.233 blabla' should + * give an error, so we check for trailing content. We want to disallow trailing + * content. + * Thus, in several implementations below, we pass a 'true' parameter value to + * a get_root_value_iterator() method: this indicates that we disallow trailing content. + */ + +simdjson_inline simdjson_result document::get_uint64() noexcept { + return get_root_value_iterator().get_root_uint64(true); +} +simdjson_inline simdjson_result document::get_uint64_in_string() noexcept { + return get_root_value_iterator().get_root_uint64_in_string(true); +} +simdjson_inline simdjson_result document::get_int64() noexcept { + return get_root_value_iterator().get_root_int64(true); +} +simdjson_inline simdjson_result document::get_int64_in_string() noexcept { + return get_root_value_iterator().get_root_int64_in_string(true); +} +simdjson_inline simdjson_result document::get_double() noexcept { + return get_root_value_iterator().get_root_double(true); +} +simdjson_inline simdjson_result document::get_double_in_string() noexcept { + return get_root_value_iterator().get_root_double_in_string(true); +} +simdjson_inline simdjson_result document::get_string(bool allow_replacement) noexcept { + return get_root_value_iterator().get_root_string(true, allow_replacement); +} +template +simdjson_inline error_code document::get_string(string_type& receiver, bool allow_replacement) noexcept { + return get_root_value_iterator().get_root_string(receiver, true, allow_replacement); +} +simdjson_inline simdjson_result document::get_wobbly_string() noexcept { + return get_root_value_iterator().get_root_wobbly_string(true); +} +simdjson_inline simdjson_result document::get_raw_json_string() noexcept { + return get_root_value_iterator().get_root_raw_json_string(true); +} +simdjson_inline simdjson_result document::get_bool() noexcept { + return get_root_value_iterator().get_root_bool(true); +} +simdjson_inline simdjson_result document::is_null() noexcept { + return get_root_value_iterator().is_root_null(true); +} + +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_array(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_object(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_raw_json_string(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_string(false); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_double(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_uint64(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_int64(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_bool(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_value(); } + +template<> simdjson_inline error_code document::get(array& out) & noexcept { return get_array().get(out); } +template<> simdjson_inline error_code document::get(object& out) & noexcept { return get_object().get(out); } +template<> simdjson_inline error_code document::get(raw_json_string& out) & noexcept { return get_raw_json_string().get(out); } +template<> simdjson_inline error_code document::get(std::string_view& out) & noexcept { return get_string(false).get(out); } +template<> simdjson_inline error_code document::get(double& out) & noexcept { return get_double().get(out); } +template<> simdjson_inline error_code document::get(uint64_t& out) & noexcept { return get_uint64().get(out); } +template<> simdjson_inline error_code document::get(int64_t& out) & noexcept { return get_int64().get(out); } +template<> simdjson_inline error_code document::get(bool& out) & noexcept { return get_bool().get(out); } +template<> simdjson_inline error_code document::get(value& out) & noexcept { return get_value().get(out); } + +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_raw_json_string(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_string(false); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_double(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_uint64(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_int64(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_bool(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_value(); } + +#if SIMDJSON_EXCEPTIONS +template +simdjson_deprecated simdjson_inline document::operator T() && noexcept(false) { return get(); } +template +simdjson_inline document::operator T() & noexcept(false) { return get(); } +simdjson_inline document::operator array() & noexcept(false) { return get_array(); } +simdjson_inline document::operator object() & noexcept(false) { return get_object(); } +simdjson_inline document::operator uint64_t() noexcept(false) { return get_uint64(); } +simdjson_inline document::operator int64_t() noexcept(false) { return get_int64(); } +simdjson_inline document::operator double() noexcept(false) { return get_double(); } +simdjson_inline document::operator std::string_view() noexcept(false) { return get_string(false); } +simdjson_inline document::operator raw_json_string() noexcept(false) { return get_raw_json_string(); } +simdjson_inline document::operator bool() noexcept(false) { return get_bool(); } +simdjson_inline document::operator value() noexcept(false) { return get_value(); } + +#endif +simdjson_inline simdjson_result document::count_elements() & noexcept { + auto a = get_array(); + simdjson_result answer = a.count_elements(); + /* If there was an array, we are now left pointing at its first element. */ + if(answer.error() == SUCCESS) { rewind(); } + return answer; +} +simdjson_inline simdjson_result document::count_fields() & noexcept { + auto a = get_object(); + simdjson_result answer = a.count_fields(); + /* If there was an object, we are now left pointing at its first element. */ + if(answer.error() == SUCCESS) { rewind(); } + return answer; +} +simdjson_inline simdjson_result document::at(size_t index) & noexcept { + auto a = get_array(); + return a.at(index); +} +simdjson_inline simdjson_result document::begin() & noexcept { + return get_array().begin(); +} +simdjson_inline simdjson_result document::end() & noexcept { + return {}; +} + +simdjson_inline simdjson_result document::find_field(std::string_view key) & noexcept { + return start_or_resume_object().find_field(key); +} +simdjson_inline simdjson_result document::find_field(const char *key) & noexcept { + return start_or_resume_object().find_field(key); +} +simdjson_inline simdjson_result document::find_field_unordered(std::string_view key) & noexcept { + return start_or_resume_object().find_field_unordered(key); +} +simdjson_inline simdjson_result document::find_field_unordered(const char *key) & noexcept { + return start_or_resume_object().find_field_unordered(key); +} +simdjson_inline simdjson_result document::operator[](std::string_view key) & noexcept { + return start_or_resume_object()[key]; +} +simdjson_inline simdjson_result document::operator[](const char *key) & noexcept { + return start_or_resume_object()[key]; +} + +simdjson_inline error_code document::consume() noexcept { + bool scalar = false; + auto error = is_scalar().get(scalar); + if(error) { return error; } + if(scalar) { + iter.return_current_and_advance(); + return SUCCESS; + } + error = iter.skip_child(0); + if(error) { iter.abandon(); } + return error; +} + +simdjson_inline simdjson_result document::raw_json() noexcept { + auto _iter = get_root_value_iterator(); + const uint8_t * starting_point{_iter.peek_start()}; + auto error = consume(); + if(error) { return error; } + // After 'consume()', we could be left pointing just beyond the document, but that + // is ok because we are not going to dereference the final pointer position, we just + // use it to compute the length in bytes. + const uint8_t * final_point{iter.unsafe_pointer()}; + return std::string_view(reinterpret_cast(starting_point), size_t(final_point - starting_point)); +} + +simdjson_inline simdjson_result document::type() noexcept { + return get_root_value_iterator().type(); +} + +simdjson_inline simdjson_result document::is_scalar() noexcept { + // For more speed, we could do: + // return iter.is_single_token(); + json_type this_type; + auto error = type().get(this_type); + if(error) { return error; } + return ! ((this_type == json_type::array) || (this_type == json_type::object)); +} + +simdjson_inline simdjson_result document::is_string() noexcept { + json_type this_type; + auto error = type().get(this_type); + if(error) { return error; } + return (this_type == json_type::string); +} + +simdjson_inline bool document::is_negative() noexcept { + return get_root_value_iterator().is_root_negative(); +} + +simdjson_inline simdjson_result document::is_integer() noexcept { + return get_root_value_iterator().is_root_integer(true); +} + +simdjson_inline simdjson_result document::get_number_type() noexcept { + return get_root_value_iterator().get_root_number_type(true); +} + +simdjson_inline simdjson_result document::get_number() noexcept { + return get_root_value_iterator().get_root_number(true); +} + + +simdjson_inline simdjson_result document::raw_json_token() noexcept { + auto _iter = get_root_value_iterator(); + return std::string_view(reinterpret_cast(_iter.peek_start()), _iter.peek_root_length()); +} + +simdjson_inline simdjson_result document::at_pointer(std::string_view json_pointer) noexcept { + rewind(); // Rewind the document each time at_pointer is called + if (json_pointer.empty()) { + return this->get_value(); + } + json_type t; + SIMDJSON_TRY(type().get(t)); + switch (t) + { + case json_type::array: + return (*this).get_array().at_pointer(json_pointer); + case json_type::object: + return (*this).get_object().at_pointer(json_pointer); + default: + return INVALID_JSON_POINTER; + } +} + +simdjson_inline simdjson_result document::at_path(std::string_view json_path) noexcept { + rewind(); // Rewind the document each time at_pointer is called + if (json_path.empty()) { + return this->get_value(); + } + json_type t; + SIMDJSON_TRY(type().get(t)); + switch (t) { + case json_type::array: + return (*this).get_array().at_path(json_path); + case json_type::object: + return (*this).get_object().at_path(json_path); + default: + return INVALID_JSON_POINTER; + } +} + +} // namespace ondemand +} // namespace westmere +} // namespace simdjson + +namespace simdjson { + +simdjson_inline simdjson_result::simdjson_result( + westmere::ondemand::document &&value +) noexcept : + implementation_simdjson_result_base( + std::forward(value) + ) +{ +} +simdjson_inline simdjson_result::simdjson_result( + error_code error +) noexcept : + implementation_simdjson_result_base( + error + ) +{ +} +simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { + if (error()) { return error(); } + return first.count_elements(); +} +simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { + if (error()) { return error(); } + return first.count_fields(); +} +simdjson_inline simdjson_result simdjson_result::at(size_t index) & noexcept { + if (error()) { return error(); } + return first.at(index); +} +simdjson_inline error_code simdjson_result::rewind() noexcept { + if (error()) { return error(); } + first.rewind(); + return SUCCESS; +} +simdjson_inline simdjson_result simdjson_result::begin() & noexcept { + if (error()) { return error(); } + return first.begin(); +} +simdjson_inline simdjson_result simdjson_result::end() & noexcept { + return {}; +} +simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) & noexcept { if (error()) { return error(); } return first.find_field_unordered(key); } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) & noexcept { if (error()) { return error(); } return first.find_field_unordered(key); } -simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) & noexcept { +simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) & noexcept { if (error()) { return error(); } return first[key]; } -simdjson_inline simdjson_result simdjson_result::operator[](const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::operator[](const char *key) & noexcept { if (error()) { return error(); } return first[key]; } -simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) & noexcept { if (error()) { return error(); } return first.find_field(key); } -simdjson_inline simdjson_result simdjson_result::find_field(const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field(const char *key) & noexcept { if (error()) { return error(); } return first.find_field(key); } -simdjson_inline simdjson_result simdjson_result::get_array() & noexcept { +simdjson_inline simdjson_result simdjson_result::get_array() & noexcept { if (error()) { return error(); } return first.get_array(); } -simdjson_inline simdjson_result simdjson_result::get_object() & noexcept { +simdjson_inline simdjson_result simdjson_result::get_object() & noexcept { if (error()) { return error(); } return first.get_object(); } -simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { +simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { if (error()) { return error(); } return first.get_uint64(); } -simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { if (error()) { return error(); } return first.get_uint64_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { +simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { if (error()) { return error(); } return first.get_int64(); } -simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { if (error()) { return error(); } return first.get_int64_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_double() noexcept { +simdjson_inline simdjson_result simdjson_result::get_double() noexcept { if (error()) { return error(); } return first.get_double(); } -simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { if (error()) { return error(); } return first.get_double_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { +simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { if (error()) { return error(); } return first.get_string(allow_replacement); } template -simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { +simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { if (error()) { return error(); } return first.get_string(receiver, allow_replacement); } -simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { if (error()) { return error(); } return first.get_wobbly_string(); } -simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { if (error()) { return error(); } return first.get_raw_json_string(); } -simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { +simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { if (error()) { return error(); } return first.get_bool(); } -simdjson_inline simdjson_result simdjson_result::get_value() noexcept { +simdjson_inline simdjson_result simdjson_result::get_value() noexcept { if (error()) { return error(); } return first.get_value(); } -simdjson_inline simdjson_result simdjson_result::is_null() noexcept { +simdjson_inline simdjson_result simdjson_result::is_null() noexcept { if (error()) { return error(); } return first.is_null(); } -simdjson_inline simdjson_result simdjson_result::type() noexcept { + +template +simdjson_inline simdjson_result simdjson_result::get() & noexcept { + if (error()) { return error(); } + return first.get(); +} +template +simdjson_deprecated simdjson_inline simdjson_result simdjson_result::get() && noexcept { + if (error()) { return error(); } + return std::forward(first).get(); +} +template +simdjson_inline error_code simdjson_result::get(T &out) & noexcept { + if (error()) { return error(); } + return first.get(out); +} +template +simdjson_inline error_code simdjson_result::get(T &out) && noexcept { + if (error()) { return error(); } + return std::forward(first).get(out); +} + +template<> simdjson_inline simdjson_result simdjson_result::get() & noexcept = delete; +template<> simdjson_deprecated simdjson_inline simdjson_result simdjson_result::get() && noexcept { + if (error()) { return error(); } + return std::forward(first); +} +template<> simdjson_inline error_code simdjson_result::get(westmere::ondemand::document &out) & noexcept = delete; +template<> simdjson_inline error_code simdjson_result::get(westmere::ondemand::document &out) && noexcept { + if (error()) { return error(); } + out = std::forward(first); + return SUCCESS; +} + +simdjson_inline simdjson_result simdjson_result::type() noexcept { if (error()) { return error(); } return first.type(); } -simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { + +simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { if (error()) { return error(); } return first.is_scalar(); } -simdjson_inline simdjson_result simdjson_result::is_string() noexcept { + +simdjson_inline simdjson_result simdjson_result::is_string() noexcept { if (error()) { return error(); } return first.is_string(); } -simdjson_inline simdjson_result simdjson_result::is_negative() noexcept { + +simdjson_inline bool simdjson_result::is_negative() noexcept { if (error()) { return error(); } return first.is_negative(); } -simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { + +simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { if (error()) { return error(); } return first.is_integer(); } -simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { + +simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { if (error()) { return error(); } return first.get_number_type(); } -simdjson_inline simdjson_result simdjson_result::get_number() noexcept { + +simdjson_inline simdjson_result simdjson_result::get_number() noexcept { if (error()) { return error(); } return first.get_number(); } + + #if SIMDJSON_EXCEPTIONS -template ::value == false>::type> -simdjson_inline simdjson_result::operator T() noexcept(false) { +template ::value == false>::type> +simdjson_inline simdjson_result::operator T() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator westmere::ondemand::array() & noexcept(false) { +simdjson_inline simdjson_result::operator westmere::ondemand::array() & noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator westmere::ondemand::object() & noexcept(false) { +simdjson_inline simdjson_result::operator westmere::ondemand::object() & noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { +simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator int64_t() noexcept(false) { +simdjson_inline simdjson_result::operator int64_t() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator double() noexcept(false) { +simdjson_inline simdjson_result::operator double() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { +simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator westmere::ondemand::raw_json_string() noexcept(false) { +simdjson_inline simdjson_result::operator westmere::ondemand::raw_json_string() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator bool() noexcept(false) { +simdjson_inline simdjson_result::operator bool() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator westmere::ondemand::value() noexcept(false) { +simdjson_inline simdjson_result::operator westmere::ondemand::value() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } #endif -simdjson_inline simdjson_result simdjson_result::current_location() noexcept { + +simdjson_inline simdjson_result simdjson_result::current_location() noexcept { if (error()) { return error(); } return first.current_location(); } -simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { +simdjson_inline bool simdjson_result::at_end() const noexcept { + if (error()) { return error(); } + return first.at_end(); +} + + +simdjson_inline int32_t simdjson_result::current_depth() const noexcept { + if (error()) { return error(); } + return first.current_depth(); +} + +simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { if (error()) { return error(); } return first.raw_json_token(); } -simdjson_inline simdjson_result simdjson_result::at_pointer(std::string_view json_pointer) noexcept { +simdjson_inline simdjson_result simdjson_result::at_pointer(std::string_view json_pointer) noexcept { if (error()) { return error(); } return first.at_pointer(json_pointer); } -simdjson_inline simdjson_result simdjson_result::at_path(std::string_view json_path) noexcept { - if (error()) { - return error(); - } +simdjson_inline simdjson_result simdjson_result::at_path(std::string_view json_path) noexcept { + if (error()) { return error(); } return first.at_path(json_path); } } // namespace simdjson -#endif // SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H -/* end file simdjson/generic/ondemand/document-inl.h for westmere */ -/* including simdjson/generic/ondemand/document_stream-inl.h for westmere: #include "simdjson/generic/ondemand/document_stream-inl.h" */ -/* begin file simdjson/generic/ondemand/document_stream-inl.h for westmere */ -#ifndef SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H - -/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ -/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document_stream.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/implementation_simdjson_result_base-inl.h" */ -/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ - -#include -#include namespace simdjson { namespace westmere { namespace ondemand { -#ifdef SIMDJSON_THREADS_ENABLED - -inline void stage1_worker::finish() { - // After calling "run" someone would call finish() to wait - // for the end of the processing. - // This function will wait until either the thread has done - // the processing or, else, the destructor has been called. - std::unique_lock lock(locking_mutex); - cond_var.wait(lock, [this]{return has_work == false;}); -} - -inline stage1_worker::~stage1_worker() { - // The thread may never outlive the stage1_worker instance - // and will always be stopped/joined before the stage1_worker - // instance is gone. - stop_thread(); -} - -inline void stage1_worker::start_thread() { - std::unique_lock lock(locking_mutex); - if(thread.joinable()) { - return; // This should never happen but we never want to create more than one thread. - } - thread = std::thread([this]{ - while(true) { - std::unique_lock thread_lock(locking_mutex); - // We wait for either "run" or "stop_thread" to be called. - cond_var.wait(thread_lock, [this]{return has_work || !can_work;}); - // If, for some reason, the stop_thread() method was called (i.e., the - // destructor of stage1_worker is called, then we want to immediately destroy - // the thread (and not do any more processing). - if(!can_work) { - break; - } - this->owner->stage1_thread_error = this->owner->run_stage1(*this->stage1_thread_parser, - this->_next_batch_start); - this->has_work = false; - // The condition variable call should be moved after thread_lock.unlock() for performance - // reasons but thread sanitizers may report it as a data race if we do. - // See https://stackoverflow.com/questions/35775501/c-should-condition-variable-be-notified-under-lock - cond_var.notify_one(); // will notify "finish" - thread_lock.unlock(); - } - } - ); -} - - -inline void stage1_worker::stop_thread() { - std::unique_lock lock(locking_mutex); - // We have to make sure that all locks can be released. - can_work = false; - has_work = false; - cond_var.notify_all(); - lock.unlock(); - if(thread.joinable()) { - thread.join(); - } -} - -inline void stage1_worker::run(document_stream * ds, parser * stage1, size_t next_batch_start) { - std::unique_lock lock(locking_mutex); - owner = ds; - _next_batch_start = next_batch_start; - stage1_thread_parser = stage1; - has_work = true; - // The condition variable call should be moved after thread_lock.unlock() for performance - // reasons but thread sanitizers may report it as a data race if we do. - // See https://stackoverflow.com/questions/35775501/c-should-condition-variable-be-notified-under-lock - cond_var.notify_one(); // will notify the thread lock that we have work - lock.unlock(); -} - -#endif // SIMDJSON_THREADS_ENABLED - -simdjson_inline document_stream::document_stream( - ondemand::parser &_parser, - const uint8_t *_buf, - size_t _len, +simdjson_inline document_reference::document_reference() noexcept : doc{nullptr} {} +simdjson_inline document_reference::document_reference(document &d) noexcept : doc(&d) {} +simdjson_inline void document_reference::rewind() noexcept { doc->rewind(); } +simdjson_inline simdjson_result document_reference::get_array() & noexcept { return doc->get_array(); } +simdjson_inline simdjson_result document_reference::get_object() & noexcept { return doc->get_object(); } +/** + * The document_reference instances are used primarily/solely for streams of JSON + * documents. + * We decided that calling 'get_double()' on the JSON document '1.233 blabla' should + * give an error, so we check for trailing content. + * + * However, for streams of JSON documents, we want to be able to start from + * "321" "321" "321" + * and parse it successfully as a stream of JSON documents, calling get_uint64_in_string() + * successfully each time. + * + * To achieve this result, we pass a 'false' to a get_root_value_iterator() method: + * this indicates that we allow trailing content. + */ +simdjson_inline simdjson_result document_reference::get_uint64() noexcept { return doc->get_root_value_iterator().get_root_uint64(false); } +simdjson_inline simdjson_result document_reference::get_uint64_in_string() noexcept { return doc->get_root_value_iterator().get_root_uint64_in_string(false); } +simdjson_inline simdjson_result document_reference::get_int64() noexcept { return doc->get_root_value_iterator().get_root_int64(false); } +simdjson_inline simdjson_result document_reference::get_int64_in_string() noexcept { return doc->get_root_value_iterator().get_root_int64_in_string(false); } +simdjson_inline simdjson_result document_reference::get_double() noexcept { return doc->get_root_value_iterator().get_root_double(false); } +simdjson_inline simdjson_result document_reference::get_double_in_string() noexcept { return doc->get_root_value_iterator().get_root_double(false); } +simdjson_inline simdjson_result document_reference::get_string(bool allow_replacement) noexcept { return doc->get_root_value_iterator().get_root_string(false, allow_replacement); } +template +simdjson_inline error_code document_reference::get_string(string_type& receiver, bool allow_replacement) noexcept { return doc->get_root_value_iterator().get_root_string(receiver, false, allow_replacement); } +simdjson_inline simdjson_result document_reference::get_wobbly_string() noexcept { return doc->get_root_value_iterator().get_root_wobbly_string(false); } +simdjson_inline simdjson_result document_reference::get_raw_json_string() noexcept { return doc->get_root_value_iterator().get_root_raw_json_string(false); } +simdjson_inline simdjson_result document_reference::get_bool() noexcept { return doc->get_root_value_iterator().get_root_bool(false); } +simdjson_inline simdjson_result document_reference::get_value() noexcept { return doc->get_value(); } +simdjson_inline simdjson_result document_reference::is_null() noexcept { return doc->get_root_value_iterator().is_root_null(false); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_array(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_object(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_raw_json_string(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_string(false); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_double(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_uint64(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_int64(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_bool(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_value(); } +#if SIMDJSON_EXCEPTIONS +template +simdjson_inline document_reference::operator T() noexcept(false) { return get(); } +simdjson_inline document_reference::operator array() & noexcept(false) { return array(*doc); } +simdjson_inline document_reference::operator object() & noexcept(false) { return object(*doc); } +simdjson_inline document_reference::operator uint64_t() noexcept(false) { return get_uint64(); } +simdjson_inline document_reference::operator int64_t() noexcept(false) { return get_int64(); } +simdjson_inline document_reference::operator double() noexcept(false) { return get_double(); } +simdjson_inline document_reference::operator std::string_view() noexcept(false) { return std::string_view(*doc); } +simdjson_inline document_reference::operator raw_json_string() noexcept(false) { return get_raw_json_string(); } +simdjson_inline document_reference::operator bool() noexcept(false) { return get_bool(); } +simdjson_inline document_reference::operator value() noexcept(false) { return value(*doc); } +#endif +simdjson_inline simdjson_result document_reference::count_elements() & noexcept { return doc->count_elements(); } +simdjson_inline simdjson_result document_reference::count_fields() & noexcept { return doc->count_fields(); } +simdjson_inline simdjson_result document_reference::at(size_t index) & noexcept { return doc->at(index); } +simdjson_inline simdjson_result document_reference::begin() & noexcept { return doc->begin(); } +simdjson_inline simdjson_result document_reference::end() & noexcept { return doc->end(); } +simdjson_inline simdjson_result document_reference::find_field(std::string_view key) & noexcept { return doc->find_field(key); } +simdjson_inline simdjson_result document_reference::find_field(const char *key) & noexcept { return doc->find_field(key); } +simdjson_inline simdjson_result document_reference::operator[](std::string_view key) & noexcept { return (*doc)[key]; } +simdjson_inline simdjson_result document_reference::operator[](const char *key) & noexcept { return (*doc)[key]; } +simdjson_inline simdjson_result document_reference::find_field_unordered(std::string_view key) & noexcept { return doc->find_field_unordered(key); } +simdjson_inline simdjson_result document_reference::find_field_unordered(const char *key) & noexcept { return doc->find_field_unordered(key); } +simdjson_inline simdjson_result document_reference::type() noexcept { return doc->type(); } +simdjson_inline simdjson_result document_reference::is_scalar() noexcept { return doc->is_scalar(); } +simdjson_inline simdjson_result document_reference::is_string() noexcept { return doc->is_string(); } +simdjson_inline simdjson_result document_reference::current_location() noexcept { return doc->current_location(); } +simdjson_inline int32_t document_reference::current_depth() const noexcept { return doc->current_depth(); } +simdjson_inline bool document_reference::is_negative() noexcept { return doc->is_negative(); } +simdjson_inline simdjson_result document_reference::is_integer() noexcept { return doc->get_root_value_iterator().is_root_integer(false); } +simdjson_inline simdjson_result document_reference::get_number_type() noexcept { return doc->get_root_value_iterator().get_root_number_type(false); } +simdjson_inline simdjson_result document_reference::get_number() noexcept { return doc->get_root_value_iterator().get_root_number(false); } +simdjson_inline simdjson_result document_reference::raw_json_token() noexcept { return doc->raw_json_token(); } +simdjson_inline simdjson_result document_reference::at_pointer(std::string_view json_pointer) noexcept { return doc->at_pointer(json_pointer); } +simdjson_inline simdjson_result document_reference::at_path(std::string_view json_path) noexcept { return doc->at_path(json_path); } +simdjson_inline simdjson_result document_reference::raw_json() noexcept { return doc->raw_json();} +simdjson_inline document_reference::operator document&() const noexcept { return *doc; } + +} // namespace ondemand +} // namespace westmere +} // namespace simdjson + + + +namespace simdjson { +simdjson_inline simdjson_result::simdjson_result(westmere::ondemand::document_reference value, error_code error) + noexcept : implementation_simdjson_result_base(std::forward(value), error) {} + + +simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { + if (error()) { return error(); } + return first.count_elements(); +} +simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { + if (error()) { return error(); } + return first.count_fields(); +} +simdjson_inline simdjson_result simdjson_result::at(size_t index) & noexcept { + if (error()) { return error(); } + return first.at(index); +} +simdjson_inline error_code simdjson_result::rewind() noexcept { + if (error()) { return error(); } + first.rewind(); + return SUCCESS; +} +simdjson_inline simdjson_result simdjson_result::begin() & noexcept { + if (error()) { return error(); } + return first.begin(); +} +simdjson_inline simdjson_result simdjson_result::end() & noexcept { + return {}; +} +simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) & noexcept { + if (error()) { return error(); } + return first.find_field_unordered(key); +} +simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) & noexcept { + if (error()) { return error(); } + return first.find_field_unordered(key); +} +simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) & noexcept { + if (error()) { return error(); } + return first[key]; +} +simdjson_inline simdjson_result simdjson_result::operator[](const char *key) & noexcept { + if (error()) { return error(); } + return first[key]; +} +simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) & noexcept { + if (error()) { return error(); } + return first.find_field(key); +} +simdjson_inline simdjson_result simdjson_result::find_field(const char *key) & noexcept { + if (error()) { return error(); } + return first.find_field(key); +} +simdjson_inline simdjson_result simdjson_result::get_array() & noexcept { + if (error()) { return error(); } + return first.get_array(); +} +simdjson_inline simdjson_result simdjson_result::get_object() & noexcept { + if (error()) { return error(); } + return first.get_object(); +} +simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { + if (error()) { return error(); } + return first.get_uint64(); +} +simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { + if (error()) { return error(); } + return first.get_uint64_in_string(); +} +simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { + if (error()) { return error(); } + return first.get_int64(); +} +simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { + if (error()) { return error(); } + return first.get_int64_in_string(); +} +simdjson_inline simdjson_result simdjson_result::get_double() noexcept { + if (error()) { return error(); } + return first.get_double(); +} +simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { + if (error()) { return error(); } + return first.get_double_in_string(); +} +simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { + if (error()) { return error(); } + return first.get_string(allow_replacement); +} +template +simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { + if (error()) { return error(); } + return first.get_string(receiver, allow_replacement); +} +simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { + if (error()) { return error(); } + return first.get_wobbly_string(); +} +simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { + if (error()) { return error(); } + return first.get_raw_json_string(); +} +simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { + if (error()) { return error(); } + return first.get_bool(); +} +simdjson_inline simdjson_result simdjson_result::get_value() noexcept { + if (error()) { return error(); } + return first.get_value(); +} +simdjson_inline simdjson_result simdjson_result::is_null() noexcept { + if (error()) { return error(); } + return first.is_null(); +} +template +simdjson_inline simdjson_result simdjson_result::get() & noexcept { + if (error()) { return error(); } + return first.get(); +} +template +simdjson_inline simdjson_result simdjson_result::get() && noexcept { + if (error()) { return error(); } + return std::forward(first).get(); +} +template +simdjson_inline error_code simdjson_result::get(T &out) & noexcept { + if (error()) { return error(); } + return first.get(out); +} +template +simdjson_inline error_code simdjson_result::get(T &out) && noexcept { + if (error()) { return error(); } + return std::forward(first).get(out); +} +simdjson_inline simdjson_result simdjson_result::type() noexcept { + if (error()) { return error(); } + return first.type(); +} +simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { + if (error()) { return error(); } + return first.is_scalar(); +} +simdjson_inline simdjson_result simdjson_result::is_string() noexcept { + if (error()) { return error(); } + return first.is_string(); +} +template <> +simdjson_inline error_code simdjson_result::get(westmere::ondemand::document_reference &out) & noexcept { + if (error()) { return error(); } + out = first; + return SUCCESS; +} +template <> +simdjson_inline error_code simdjson_result::get(westmere::ondemand::document_reference &out) && noexcept { + if (error()) { return error(); } + out = first; + return SUCCESS; +} +simdjson_inline simdjson_result simdjson_result::is_negative() noexcept { + if (error()) { return error(); } + return first.is_negative(); +} +simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { + if (error()) { return error(); } + return first.is_integer(); +} +simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { + if (error()) { return error(); } + return first.get_number_type(); +} +simdjson_inline simdjson_result simdjson_result::get_number() noexcept { + if (error()) { return error(); } + return first.get_number(); +} +#if SIMDJSON_EXCEPTIONS +template +simdjson_inline simdjson_result::operator T() noexcept(false) { + static_assert(std::is_same::value == false, "You should not call get when T is a document"); + static_assert(std::is_same::value == false, "You should not call get when T is a document"); + if (error()) { throw simdjson_error(error()); } + return first.get(); +} +simdjson_inline simdjson_result::operator westmere::ondemand::array() & noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator westmere::ondemand::object() & noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator int64_t() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator double() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator westmere::ondemand::raw_json_string() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator bool() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator westmere::ondemand::value() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +#endif + +simdjson_inline simdjson_result simdjson_result::current_location() noexcept { + if (error()) { return error(); } + return first.current_location(); +} + +simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { + if (error()) { return error(); } + return first.raw_json_token(); +} + +simdjson_inline simdjson_result simdjson_result::at_pointer(std::string_view json_pointer) noexcept { + if (error()) { return error(); } + return first.at_pointer(json_pointer); +} + +simdjson_inline simdjson_result simdjson_result::at_path(std::string_view json_path) noexcept { + if (error()) { + return error(); + } + return first.at_path(json_path); +} + +} // namespace simdjson + +#endif // SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H +/* end file simdjson/generic/ondemand/document-inl.h for westmere */ +/* including simdjson/generic/ondemand/document_stream-inl.h for westmere: #include "simdjson/generic/ondemand/document_stream-inl.h" */ +/* begin file simdjson/generic/ondemand/document_stream-inl.h for westmere */ +#ifndef SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H + +/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ +/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document_stream.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/implementation_simdjson_result_base-inl.h" */ +/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ + +#include +#include + +namespace simdjson { +namespace westmere { +namespace ondemand { + +#ifdef SIMDJSON_THREADS_ENABLED + +inline void stage1_worker::finish() { + // After calling "run" someone would call finish() to wait + // for the end of the processing. + // This function will wait until either the thread has done + // the processing or, else, the destructor has been called. + std::unique_lock lock(locking_mutex); + cond_var.wait(lock, [this]{return has_work == false;}); +} + +inline stage1_worker::~stage1_worker() { + // The thread may never outlive the stage1_worker instance + // and will always be stopped/joined before the stage1_worker + // instance is gone. + stop_thread(); +} + +inline void stage1_worker::start_thread() { + std::unique_lock lock(locking_mutex); + if(thread.joinable()) { + return; // This should never happen but we never want to create more than one thread. + } + thread = std::thread([this]{ + while(true) { + std::unique_lock thread_lock(locking_mutex); + // We wait for either "run" or "stop_thread" to be called. + cond_var.wait(thread_lock, [this]{return has_work || !can_work;}); + // If, for some reason, the stop_thread() method was called (i.e., the + // destructor of stage1_worker is called, then we want to immediately destroy + // the thread (and not do any more processing). + if(!can_work) { + break; + } + this->owner->stage1_thread_error = this->owner->run_stage1(*this->stage1_thread_parser, + this->_next_batch_start); + this->has_work = false; + // The condition variable call should be moved after thread_lock.unlock() for performance + // reasons but thread sanitizers may report it as a data race if we do. + // See https://stackoverflow.com/questions/35775501/c-should-condition-variable-be-notified-under-lock + cond_var.notify_one(); // will notify "finish" + thread_lock.unlock(); + } + } + ); +} + + +inline void stage1_worker::stop_thread() { + std::unique_lock lock(locking_mutex); + // We have to make sure that all locks can be released. + can_work = false; + has_work = false; + cond_var.notify_all(); + lock.unlock(); + if(thread.joinable()) { + thread.join(); + } +} + +inline void stage1_worker::run(document_stream * ds, parser * stage1, size_t next_batch_start) { + std::unique_lock lock(locking_mutex); + owner = ds; + _next_batch_start = next_batch_start; + stage1_thread_parser = stage1; + has_work = true; + // The condition variable call should be moved after thread_lock.unlock() for performance + // reasons but thread sanitizers may report it as a data race if we do. + // See https://stackoverflow.com/questions/35775501/c-should-condition-variable-be-notified-under-lock + cond_var.notify_one(); // will notify the thread lock that we have work + lock.unlock(); +} + +#endif // SIMDJSON_THREADS_ENABLED + +simdjson_inline document_stream::document_stream( + ondemand::parser &_parser, + const uint8_t *_buf, + size_t _len, size_t _batch_size, bool _allow_comma_separated ) noexcept @@ -92490,7 +96501,6 @@ simdjson_inline document_stream::iterator::iterator(document_stream* _stream, bo } simdjson_inline simdjson_result document_stream::iterator::operator*() noexcept { - //if(stream->error) { return stream->error; } return simdjson_result(stream->doc, stream->error); } @@ -94349,36 +98359,39 @@ simdjson_inline const char * raw_json_string::raw() const noexcept { return rein simdjson_inline bool raw_json_string::is_free_from_unescaped_quote(std::string_view target) noexcept { size_t pos{0}; - // if the content has no escape character, just scan through it quickly! - for(;pos < target.size() && target[pos] != '\\';pos++) {} - // slow path may begin. - bool escaping{false}; - for(;pos < target.size();pos++) { - if((target[pos] == '"') && !escaping) { - return false; - } else if(target[pos] == '\\') { - escaping = !escaping; - } else { - escaping = false; + while(pos < target.size()) { + pos = target.find('"', pos); + if(pos == std::string_view::npos) { return true; } + if(pos != 0 && target[pos-1] != '\\') { return false; } + if(pos > 1 && target[pos-2] == '\\') { + size_t backslash_count{2}; + for(size_t i = 3; i <= pos; i++) { + if(target[pos-i] == '\\') { backslash_count++; } + else { break; } + } + if(backslash_count % 2 == 0) { return false; } } + pos++; } return true; } simdjson_inline bool raw_json_string::is_free_from_unescaped_quote(const char* target) noexcept { size_t pos{0}; - // if the content has no escape character, just scan through it quickly! - for(;target[pos] && target[pos] != '\\';pos++) {} - // slow path may begin. - bool escaping{false}; - for(;target[pos];pos++) { - if((target[pos] == '"') && !escaping) { - return false; - } else if(target[pos] == '\\') { - escaping = !escaping; - } else { - escaping = false; + while(target[pos]) { + const char * result = strchr(target+pos, '"'); + if(result == nullptr) { return true; } + pos = result - target; + if(pos != 0 && target[pos-1] != '\\') { return false; } + if(pos > 1 && target[pos-2] == '\\') { + size_t backslash_count{2}; + for(size_t i = 3; i <= pos; i++) { + if(target[pos-i] == '\\') { backslash_count++; } + else { break; } + } + if(backslash_count % 2 == 0) { return false; } } + pos++; } return true; } @@ -94390,7 +98403,7 @@ simdjson_inline bool raw_json_string::unsafe_is_equal(size_t length, std::string } simdjson_inline bool raw_json_string::unsafe_is_equal(std::string_view target) const noexcept { - // Assumptions: does not contain unescaped quote characters, and + // Assumptions: does not contain unescaped quote characters("), and // the raw content is quote terminated within a valid JSON string. if(target.size() <= SIMDJSON_PADDING) { return (raw()[target.size()] == '"') && !memcmp(raw(), target.data(), target.size()); @@ -94864,775 +98877,230 @@ simdjson_inline simdjson_result::simdjson_re #endif // SIMDJSON_GENERIC_ONDEMAND_TOKEN_ITERATOR_INL_H /* end file simdjson/generic/ondemand/token_iterator-inl.h for westmere */ -/* including simdjson/generic/ondemand/value-inl.h for westmere: #include "simdjson/generic/ondemand/value-inl.h" */ -/* begin file simdjson/generic/ondemand/value-inl.h for westmere */ -#ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H +/* including simdjson/generic/ondemand/value_iterator-inl.h for westmere: #include "simdjson/generic/ondemand/value_iterator-inl.h" */ +/* begin file simdjson/generic/ondemand/value_iterator-inl.h for westmere */ +#ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H /* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ -/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H */ +/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/atomparsing.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/numberparsing.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string-inl.h" */ /* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ namespace simdjson { namespace westmere { namespace ondemand { -simdjson_inline value::value(const value_iterator &_iter) noexcept - : iter{_iter} +simdjson_inline value_iterator::value_iterator( + json_iterator *json_iter, + depth_t depth, + token_position start_position +) noexcept : _json_iter{json_iter}, _depth{depth}, _start_position{start_position} { } -simdjson_inline value value::start(const value_iterator &iter) noexcept { - return iter; -} -simdjson_inline value value::resume(const value_iterator &iter) noexcept { - return iter; -} - -simdjson_inline simdjson_result value::get_array() noexcept { - return array::start(iter); -} -simdjson_inline simdjson_result value::get_object() noexcept { - return object::start(iter); -} -simdjson_inline simdjson_result value::start_or_resume_object() noexcept { - if (iter.at_start()) { - return get_object(); - } else { - return object::resume(iter); - } -} -simdjson_inline simdjson_result value::get_raw_json_string() noexcept { - return iter.get_raw_json_string(); -} -simdjson_inline simdjson_result value::get_string(bool allow_replacement) noexcept { - return iter.get_string(allow_replacement); -} -template -simdjson_inline error_code value::get_string(string_type& receiver, bool allow_replacement) noexcept { - return iter.get_string(receiver, allow_replacement); -} -simdjson_inline simdjson_result value::get_wobbly_string() noexcept { - return iter.get_wobbly_string(); -} -simdjson_inline simdjson_result value::get_double() noexcept { - return iter.get_double(); -} -simdjson_inline simdjson_result value::get_double_in_string() noexcept { - return iter.get_double_in_string(); -} -simdjson_inline simdjson_result value::get_uint64() noexcept { - return iter.get_uint64(); -} -simdjson_inline simdjson_result value::get_uint64_in_string() noexcept { - return iter.get_uint64_in_string(); -} -simdjson_inline simdjson_result value::get_int64() noexcept { - return iter.get_int64(); -} -simdjson_inline simdjson_result value::get_int64_in_string() noexcept { - return iter.get_int64_in_string(); -} -simdjson_inline simdjson_result value::get_bool() noexcept { - return iter.get_bool(); -} -simdjson_inline simdjson_result value::is_null() noexcept { - return iter.is_null(); +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::start_object() noexcept { + SIMDJSON_TRY( start_container('{', "Not an object", "object") ); + return started_object(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_array(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_object(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_raw_json_string(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_string(false); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_number(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_double(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_uint64(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_int64(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_bool(); } -template simdjson_inline error_code value::get(T &out) noexcept { - return get().get(out); +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::start_root_object() noexcept { + SIMDJSON_TRY( start_container('{', "Not an object", "object") ); + return started_root_object(); } -#if SIMDJSON_EXCEPTIONS -template -simdjson_inline value::operator T() noexcept(false) { - return get(); -} -simdjson_inline value::operator array() noexcept(false) { - return get_array(); -} -simdjson_inline value::operator object() noexcept(false) { - return get_object(); -} -simdjson_inline value::operator uint64_t() noexcept(false) { - return get_uint64(); -} -simdjson_inline value::operator int64_t() noexcept(false) { - return get_int64(); -} -simdjson_inline value::operator double() noexcept(false) { - return get_double(); -} -simdjson_inline value::operator std::string_view() noexcept(false) { - return get_string(false); -} -simdjson_inline value::operator raw_json_string() noexcept(false) { - return get_raw_json_string(); -} -simdjson_inline value::operator bool() noexcept(false) { - return get_bool(); -} +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::started_object() noexcept { + assert_at_container_start(); +#if SIMDJSON_DEVELOPMENT_CHECKS + _json_iter->set_start_position(_depth, start_position()); #endif - -simdjson_inline simdjson_result value::begin() & noexcept { - return get_array().begin(); -} -simdjson_inline simdjson_result value::end() & noexcept { - return {}; -} -simdjson_inline simdjson_result value::count_elements() & noexcept { - simdjson_result answer; - auto a = get_array(); - answer = a.count_elements(); - // count_elements leaves you pointing inside the array, at the first element. - // We need to move back so that the user can create a new array (which requires that - // we point at '['). - iter.move_at_start(); - return answer; -} -simdjson_inline simdjson_result value::count_fields() & noexcept { - simdjson_result answer; - auto a = get_object(); - answer = a.count_fields(); - iter.move_at_start(); - return answer; -} -simdjson_inline simdjson_result value::at(size_t index) noexcept { - auto a = get_array(); - return a.at(index); -} - -simdjson_inline simdjson_result value::find_field(std::string_view key) noexcept { - return start_or_resume_object().find_field(key); -} -simdjson_inline simdjson_result value::find_field(const char *key) noexcept { - return start_or_resume_object().find_field(key); -} - -simdjson_inline simdjson_result value::find_field_unordered(std::string_view key) noexcept { - return start_or_resume_object().find_field_unordered(key); -} -simdjson_inline simdjson_result value::find_field_unordered(const char *key) noexcept { - return start_or_resume_object().find_field_unordered(key); -} - -simdjson_inline simdjson_result value::operator[](std::string_view key) noexcept { - return start_or_resume_object()[key]; -} -simdjson_inline simdjson_result value::operator[](const char *key) noexcept { - return start_or_resume_object()[key]; -} - -simdjson_inline simdjson_result value::type() noexcept { - return iter.type(); + if (*_json_iter->peek() == '}') { + logger::log_value(*_json_iter, "empty object"); + _json_iter->return_current_and_advance(); + end_container(); + return false; + } + return true; } -simdjson_inline simdjson_result value::is_scalar() noexcept { - json_type this_type; - auto error = type().get(this_type); - if(error) { return error; } - return ! ((this_type == json_type::array) || (this_type == json_type::object)); +simdjson_warn_unused simdjson_inline error_code value_iterator::check_root_object() noexcept { + // When in streaming mode, we cannot expect peek_last() to be the last structural element of the + // current document. It only works in the normal mode where we have indexed a single document. + // Note that adding a check for 'streaming' is not expensive since we only have at most + // one root element. + if ( ! _json_iter->streaming() ) { + // The following lines do not fully protect against garbage content within the + // object: e.g., `{"a":2} foo }`. Users concerned with garbage content should + // call `at_end()` on the document instance at the end of the processing to + // ensure that the processing has finished at the end. + // + if (*_json_iter->peek_last() != '}') { + _json_iter->abandon(); + return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing } at end"); + } + // If the last character is } *and* the first gibberish character is also '}' + // then on-demand could accidentally go over. So we need additional checks. + // https://github.com/simdjson/simdjson/issues/1834 + // Checking that the document is balanced requires a full scan which is potentially + // expensive, but it only happens in edge cases where the first padding character is + // a closing bracket. + if ((*_json_iter->peek(_json_iter->end_position()) == '}') && (!_json_iter->balanced())) { + _json_iter->abandon(); + // The exact error would require more work. It will typically be an unclosed object. + return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "the document is unbalanced"); + } + } + return SUCCESS; } -simdjson_inline simdjson_result value::is_string() noexcept { - json_type this_type; - auto error = type().get(this_type); +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::started_root_object() noexcept { + auto error = check_root_object(); if(error) { return error; } - return (this_type == json_type::string); -} - - -simdjson_inline bool value::is_negative() noexcept { - return iter.is_negative(); + return started_object(); } -simdjson_inline simdjson_result value::is_integer() noexcept { - return iter.is_integer(); -} -simdjson_warn_unused simdjson_inline simdjson_result value::get_number_type() noexcept { - return iter.get_number_type(); -} -simdjson_warn_unused simdjson_inline simdjson_result value::get_number() noexcept { - return iter.get_number(); +simdjson_warn_unused simdjson_inline error_code value_iterator::end_container() noexcept { +#if SIMDJSON_CHECK_EOF + if (depth() > 1 && at_end()) { return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing parent ] or }"); } + // if (depth() <= 1 && !at_end()) { return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing [ or { at start"); } +#endif // SIMDJSON_CHECK_EOF + _json_iter->ascend_to(depth()-1); + return SUCCESS; } -simdjson_inline std::string_view value::raw_json_token() noexcept { - return std::string_view(reinterpret_cast(iter.peek_start()), iter.peek_start_length()); -} +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::has_next_field() noexcept { + assert_at_next(); -simdjson_inline simdjson_result value::raw_json() noexcept { - json_type t; - SIMDJSON_TRY(type().get(t)); - switch (t) - { - case json_type::array: { - ondemand::array array; - SIMDJSON_TRY(get_array().get(array)); - return array.raw_json(); - } - case json_type::object: { - ondemand::object object; - SIMDJSON_TRY(get_object().get(object)); - return object.raw_json(); - } + // It's illegal to call this unless there are more tokens: anything that ends in } or ] is + // obligated to verify there are more tokens if they are not the top level. + switch (*_json_iter->return_current_and_advance()) { + case '}': + logger::log_end_value(*_json_iter, "object"); + SIMDJSON_TRY( end_container() ); + return false; + case ',': + return true; default: - return raw_json_token(); + return report_error(TAPE_ERROR, "Missing comma between object fields"); } } -simdjson_inline simdjson_result value::current_location() noexcept { - return iter.json_iter().current_location(); -} - -simdjson_inline int32_t value::current_depth() const noexcept{ - return iter.json_iter().depth(); -} +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::find_field_raw(const std::string_view key) noexcept { + error_code error; + bool has_value; + // + // Initially, the object can be in one of a few different places: + // + // 1. The start of the object, at the first field: + // + // ``` + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 2, index 1) + // ``` + if (at_first_field()) { + has_value = true; -inline bool is_pointer_well_formed(std::string_view json_pointer) noexcept { - if (simdjson_unlikely(json_pointer.empty())) { // can't be - return false; - } - if (simdjson_unlikely(json_pointer[0] != '/')) { - return false; - } - size_t escape = json_pointer.find('~'); - if (escape == std::string_view::npos) { - return true; - } - if (escape == json_pointer.size() - 1) { - return false; - } - if (json_pointer[escape + 1] != '0' && json_pointer[escape + 1] != '1') { + // + // 2. When a previous search did not yield a value or the object is empty: + // + // ``` + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 0) + // { } + // ^ (depth 0, index 2) + // ``` + // + } else if (!is_open()) { +#if SIMDJSON_DEVELOPMENT_CHECKS + // If we're past the end of the object, we're being iterated out of order. + // Note: this is not perfect detection. It's possible the user is inside some other object; if so, + // this object iterator will blithely scan that object for fields. + if (_json_iter->depth() < depth() - 1) { return OUT_OF_ORDER_ITERATION; } +#endif return false; - } - return true; -} -simdjson_inline simdjson_result value::at_pointer(std::string_view json_pointer) noexcept { - json_type t; - SIMDJSON_TRY(type().get(t)); - switch (t) - { - case json_type::array: - return (*this).get_array().at_pointer(json_pointer); - case json_type::object: - return (*this).get_object().at_pointer(json_pointer); - default: - // a non-empty string can be invalid, or accessing a primitive (issue 2154) - if (is_pointer_well_formed(json_pointer)) { - return NO_SUCH_FIELD; - } - return INVALID_JSON_POINTER; + // 3. When a previous search found a field or an iterator yielded a value: + // + // ``` + // // When a field was not fully consumed (or not even touched at all) + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 2) + // // When a field was fully consumed + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 1) + // // When the last field was fully consumed + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 1) + // ``` + // + } else { + if ((error = skip_child() )) { abandon(); return error; } + if ((error = has_next_field().get(has_value) )) { abandon(); return error; } +#if SIMDJSON_DEVELOPMENT_CHECKS + if (_json_iter->start_position(_depth) != start_position()) { return OUT_OF_ORDER_ITERATION; } +#endif } -} + while (has_value) { + // Get the key and colon, stopping at the value. + raw_json_string actual_key; + // size_t max_key_length = _json_iter->peek_length() - 2; // -2 for the two quotes + // Note: _json_iter->peek_length() - 2 might overflow if _json_iter->peek_length() < 2. + // field_key() advances the pointer and checks that '"' is found (corresponding to a key). + // The depth is left unchanged by field_key(). + if ((error = field_key().get(actual_key) )) { abandon(); return error; }; + // field_value() will advance and check that we find a ':' separating the + // key and the value. It will also increment the depth by one. + if ((error = field_value() )) { abandon(); return error; } + // If it matches, stop and return + // We could do it this way if we wanted to allow arbitrary + // key content (including escaped quotes). + //if (actual_key.unsafe_is_equal(max_key_length, key)) { + // Instead we do the following which may trigger buffer overruns if the + // user provides an adversarial key (containing a well placed unescaped quote + // character and being longer than the number of bytes remaining in the JSON + // input). + if (actual_key.unsafe_is_equal(key)) { + logger::log_event(*this, "match", key, -2); + // If we return here, then we return while pointing at the ':' that we just checked. + return true; + } -simdjson_inline simdjson_result value::at_path(std::string_view json_path) noexcept { - json_type t; - SIMDJSON_TRY(type().get(t)); - switch (t) { - case json_type::array: - return (*this).get_array().at_path(json_path); - case json_type::object: - return (*this).get_object().at_path(json_path); - default: - return INVALID_JSON_POINTER; + // No match: skip the value and see if , or } is next + logger::log_event(*this, "no match", key, -2); + // The call to skip_child is meant to skip over the value corresponding to the key. + // After skip_child(), we are right before the next comma (',') or the final brace ('}'). + SIMDJSON_TRY( skip_child() ); // Skip the value entirely + // The has_next_field() advances the pointer and check that either ',' or '}' is found. + // It returns true if ',' is found, false otherwise. If anything other than ',' or '}' is found, + // then we are in error and we abort. + if ((error = has_next_field().get(has_value) )) { abandon(); return error; } } -} - -} // namespace ondemand -} // namespace westmere -} // namespace simdjson - -namespace simdjson { -simdjson_inline simdjson_result::simdjson_result( - westmere::ondemand::value &&value -) noexcept : - implementation_simdjson_result_base( - std::forward(value) - ) -{ -} -simdjson_inline simdjson_result::simdjson_result( - error_code error -) noexcept : - implementation_simdjson_result_base(error) -{ -} -simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { - if (error()) { return error(); } - return first.count_elements(); -} -simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { - if (error()) { return error(); } - return first.count_fields(); -} -simdjson_inline simdjson_result simdjson_result::at(size_t index) noexcept { - if (error()) { return error(); } - return first.at(index); -} -simdjson_inline simdjson_result simdjson_result::begin() & noexcept { - if (error()) { return error(); } - return first.begin(); -} -simdjson_inline simdjson_result simdjson_result::end() & noexcept { - if (error()) { return error(); } - return {}; + // If the loop ended, we're out of fields to look at. + return false; } -simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) noexcept { - if (error()) { return error(); } - return first.find_field(key); -} -simdjson_inline simdjson_result simdjson_result::find_field(const char *key) noexcept { - if (error()) { return error(); } - return first.find_field(key); -} +SIMDJSON_PUSH_DISABLE_WARNINGS +SIMDJSON_DISABLE_STRICT_OVERFLOW_WARNING +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::find_field_unordered_raw(const std::string_view key) noexcept { + /** + * When find_field_unordered_raw is called, we can either be pointing at the + * first key, pointing outside (at the closing brace) or if a key was matched + * we can be either pointing right afterthe ':' right before the value (that we need skip), + * or we may have consumed the value and we might be at a comma or at the + * final brace (ready for a call to has_next_field()). + */ + error_code error; + bool has_value; -simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) noexcept { - if (error()) { return error(); } - return first.find_field_unordered(key); -} -simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) noexcept { - if (error()) { return error(); } - return first.find_field_unordered(key); -} - -simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) noexcept { - if (error()) { return error(); } - return first[key]; -} -simdjson_inline simdjson_result simdjson_result::operator[](const char *key) noexcept { - if (error()) { return error(); } - return first[key]; -} - -simdjson_inline simdjson_result simdjson_result::get_array() noexcept { - if (error()) { return error(); } - return first.get_array(); -} -simdjson_inline simdjson_result simdjson_result::get_object() noexcept { - if (error()) { return error(); } - return first.get_object(); -} -simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { - if (error()) { return error(); } - return first.get_uint64(); -} -simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { - if (error()) { return error(); } - return first.get_uint64_in_string(); -} -simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { - if (error()) { return error(); } - return first.get_int64(); -} -simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { - if (error()) { return error(); } - return first.get_int64_in_string(); -} -simdjson_inline simdjson_result simdjson_result::get_double() noexcept { - if (error()) { return error(); } - return first.get_double(); -} -simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { - if (error()) { return error(); } - return first.get_double_in_string(); -} -simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { - if (error()) { return error(); } - return first.get_string(allow_replacement); -} -template -simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { - if (error()) { return error(); } - return first.get_string(receiver, allow_replacement); -} -simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { - if (error()) { return error(); } - return first.get_wobbly_string(); -} -simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { - if (error()) { return error(); } - return first.get_raw_json_string(); -} -simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { - if (error()) { return error(); } - return first.get_bool(); -} -simdjson_inline simdjson_result simdjson_result::is_null() noexcept { - if (error()) { return error(); } - return first.is_null(); -} - -template simdjson_inline simdjson_result simdjson_result::get() noexcept { - if (error()) { return error(); } - return first.get(); -} -template simdjson_inline error_code simdjson_result::get(T &out) noexcept { - if (error()) { return error(); } - return first.get(out); -} - -template<> simdjson_inline simdjson_result simdjson_result::get() noexcept { - if (error()) { return error(); } - return std::move(first); -} -template<> simdjson_inline error_code simdjson_result::get(westmere::ondemand::value &out) noexcept { - if (error()) { return error(); } - out = first; - return SUCCESS; -} - -simdjson_inline simdjson_result simdjson_result::type() noexcept { - if (error()) { return error(); } - return first.type(); -} -simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { - if (error()) { return error(); } - return first.is_scalar(); -} -simdjson_inline simdjson_result simdjson_result::is_string() noexcept { - if (error()) { return error(); } - return first.is_string(); -} -simdjson_inline simdjson_result simdjson_result::is_negative() noexcept { - if (error()) { return error(); } - return first.is_negative(); -} -simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { - if (error()) { return error(); } - return first.is_integer(); -} -simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { - if (error()) { return error(); } - return first.get_number_type(); -} -simdjson_inline simdjson_result simdjson_result::get_number() noexcept { - if (error()) { return error(); } - return first.get_number(); -} -#if SIMDJSON_EXCEPTIONS -template -simdjson_inline simdjson_result::operator T() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return static_cast(first); -} -simdjson_inline simdjson_result::operator westmere::ondemand::array() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator westmere::ondemand::object() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator int64_t() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator double() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator westmere::ondemand::raw_json_string() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator bool() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -#endif - -simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { - if (error()) { return error(); } - return first.raw_json_token(); -} - -simdjson_inline simdjson_result simdjson_result::raw_json() noexcept { - if (error()) { return error(); } - return first.raw_json(); -} - -simdjson_inline simdjson_result simdjson_result::current_location() noexcept { - if (error()) { return error(); } - return first.current_location(); -} - -simdjson_inline simdjson_result simdjson_result::current_depth() const noexcept { - if (error()) { return error(); } - return first.current_depth(); -} - -simdjson_inline simdjson_result simdjson_result::at_pointer( - std::string_view json_pointer) noexcept { - if (error()) { - return error(); - } - return first.at_pointer(json_pointer); -} - -simdjson_inline simdjson_result simdjson_result::at_path( - std::string_view json_path) noexcept { - if (error()) { - return error(); - } - return first.at_path(json_path); -} - -} // namespace simdjson - -#endif // SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H -/* end file simdjson/generic/ondemand/value-inl.h for westmere */ -/* including simdjson/generic/ondemand/value_iterator-inl.h for westmere: #include "simdjson/generic/ondemand/value_iterator-inl.h" */ -/* begin file simdjson/generic/ondemand/value_iterator-inl.h for westmere */ -#ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H - -/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ -/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/atomparsing.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/numberparsing.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string-inl.h" */ -/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ - -namespace simdjson { -namespace westmere { -namespace ondemand { - -simdjson_inline value_iterator::value_iterator( - json_iterator *json_iter, - depth_t depth, - token_position start_position -) noexcept : _json_iter{json_iter}, _depth{depth}, _start_position{start_position} -{ -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::start_object() noexcept { - SIMDJSON_TRY( start_container('{', "Not an object", "object") ); - return started_object(); -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::start_root_object() noexcept { - SIMDJSON_TRY( start_container('{', "Not an object", "object") ); - return started_root_object(); -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::started_object() noexcept { - assert_at_container_start(); -#if SIMDJSON_DEVELOPMENT_CHECKS - _json_iter->set_start_position(_depth, start_position()); -#endif - if (*_json_iter->peek() == '}') { - logger::log_value(*_json_iter, "empty object"); - _json_iter->return_current_and_advance(); - end_container(); - return false; - } - return true; -} - -simdjson_warn_unused simdjson_inline error_code value_iterator::check_root_object() noexcept { - // When in streaming mode, we cannot expect peek_last() to be the last structural element of the - // current document. It only works in the normal mode where we have indexed a single document. - // Note that adding a check for 'streaming' is not expensive since we only have at most - // one root element. - if ( ! _json_iter->streaming() ) { - // The following lines do not fully protect against garbage content within the - // object: e.g., `{"a":2} foo }`. Users concerned with garbage content should - // call `at_end()` on the document instance at the end of the processing to - // ensure that the processing has finished at the end. - // - if (*_json_iter->peek_last() != '}') { - _json_iter->abandon(); - return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing } at end"); - } - // If the last character is } *and* the first gibberish character is also '}' - // then on-demand could accidentally go over. So we need additional checks. - // https://github.com/simdjson/simdjson/issues/1834 - // Checking that the document is balanced requires a full scan which is potentially - // expensive, but it only happens in edge cases where the first padding character is - // a closing bracket. - if ((*_json_iter->peek(_json_iter->end_position()) == '}') && (!_json_iter->balanced())) { - _json_iter->abandon(); - // The exact error would require more work. It will typically be an unclosed object. - return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "the document is unbalanced"); - } - } - return SUCCESS; -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::started_root_object() noexcept { - auto error = check_root_object(); - if(error) { return error; } - return started_object(); -} - -simdjson_warn_unused simdjson_inline error_code value_iterator::end_container() noexcept { -#if SIMDJSON_CHECK_EOF - if (depth() > 1 && at_end()) { return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing parent ] or }"); } - // if (depth() <= 1 && !at_end()) { return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing [ or { at start"); } -#endif // SIMDJSON_CHECK_EOF - _json_iter->ascend_to(depth()-1); - return SUCCESS; -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::has_next_field() noexcept { - assert_at_next(); - - // It's illegal to call this unless there are more tokens: anything that ends in } or ] is - // obligated to verify there are more tokens if they are not the top level. - switch (*_json_iter->return_current_and_advance()) { - case '}': - logger::log_end_value(*_json_iter, "object"); - SIMDJSON_TRY( end_container() ); - return false; - case ',': - return true; - default: - return report_error(TAPE_ERROR, "Missing comma between object fields"); - } -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::find_field_raw(const std::string_view key) noexcept { - error_code error; - bool has_value; - // - // Initially, the object can be in one of a few different places: - // - // 1. The start of the object, at the first field: - // - // ``` - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 2, index 1) - // ``` - if (at_first_field()) { - has_value = true; - - // - // 2. When a previous search did not yield a value or the object is empty: - // - // ``` - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 0) - // { } - // ^ (depth 0, index 2) - // ``` - // - } else if (!is_open()) { -#if SIMDJSON_DEVELOPMENT_CHECKS - // If we're past the end of the object, we're being iterated out of order. - // Note: this is not perfect detection. It's possible the user is inside some other object; if so, - // this object iterator will blithely scan that object for fields. - if (_json_iter->depth() < depth() - 1) { return OUT_OF_ORDER_ITERATION; } -#endif - return false; - - // 3. When a previous search found a field or an iterator yielded a value: - // - // ``` - // // When a field was not fully consumed (or not even touched at all) - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 2) - // // When a field was fully consumed - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 1) - // // When the last field was fully consumed - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 1) - // ``` - // - } else { - if ((error = skip_child() )) { abandon(); return error; } - if ((error = has_next_field().get(has_value) )) { abandon(); return error; } -#if SIMDJSON_DEVELOPMENT_CHECKS - if (_json_iter->start_position(_depth) != start_position()) { return OUT_OF_ORDER_ITERATION; } -#endif - } - while (has_value) { - // Get the key and colon, stopping at the value. - raw_json_string actual_key; - // size_t max_key_length = _json_iter->peek_length() - 2; // -2 for the two quotes - // Note: _json_iter->peek_length() - 2 might overflow if _json_iter->peek_length() < 2. - // field_key() advances the pointer and checks that '"' is found (corresponding to a key). - // The depth is left unchanged by field_key(). - if ((error = field_key().get(actual_key) )) { abandon(); return error; }; - // field_value() will advance and check that we find a ':' separating the - // key and the value. It will also increment the depth by one. - if ((error = field_value() )) { abandon(); return error; } - // If it matches, stop and return - // We could do it this way if we wanted to allow arbitrary - // key content (including escaped quotes). - //if (actual_key.unsafe_is_equal(max_key_length, key)) { - // Instead we do the following which may trigger buffer overruns if the - // user provides an adversarial key (containing a well placed unescaped quote - // character and being longer than the number of bytes remaining in the JSON - // input). - if (actual_key.unsafe_is_equal(key)) { - logger::log_event(*this, "match", key, -2); - // If we return here, then we return while pointing at the ':' that we just checked. - return true; - } - - // No match: skip the value and see if , or } is next - logger::log_event(*this, "no match", key, -2); - // The call to skip_child is meant to skip over the value corresponding to the key. - // After skip_child(), we are right before the next comma (',') or the final brace ('}'). - SIMDJSON_TRY( skip_child() ); // Skip the value entirely - // The has_next_field() advances the pointer and check that either ',' or '}' is found. - // It returns true if ',' is found, false otherwise. If anything other than ',' or '}' is found, - // then we are in error and we abort. - if ((error = has_next_field().get(has_value) )) { abandon(); return error; } - } - - // If the loop ended, we're out of fields to look at. - return false; -} - -SIMDJSON_PUSH_DISABLE_WARNINGS -SIMDJSON_DISABLE_STRICT_OVERFLOW_WARNING -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::find_field_unordered_raw(const std::string_view key) noexcept { - /** - * When find_field_unordered_raw is called, we can either be pointing at the - * first key, pointing outside (at the closing brace) or if a key was matched - * we can be either pointing right afterthe ':' right before the value (that we need skip), - * or we may have consumed the value and we might be at a comma or at the - * final brace (ready for a call to has_next_field()). - */ - error_code error; - bool has_value; - - // First, we scan from that point to the end. - // If we don't find a match, we may loop back around, and scan from the beginning to that point. - token_position search_start = _json_iter->position(); + // First, we scan from that point to the end. + // If we don't find a match, we may loop back around, and scan from the beginning to that point. + token_position search_start = _json_iter->position(); // We want to know whether we need to go back to the beginning. bool at_first = at_first_field(); @@ -96212,6 +99680,8 @@ simdjson_inline simdjson_result value_iterator::is_root_null(bool check_tr if(result) { // we have something that looks like a null. if (check_trailing && !_json_iter->is_single_token()) { return TRAILING_CONTENT; } advance_root_scalar("null"); + } else if (json[0] == 'n') { + return incorrect_type_error("Not a null but starts with n"); } return result; } @@ -96503,6 +99973,8 @@ simdjson_inline simdjson_result::simdjson_re #endif // SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H /* end file simdjson/generic/ondemand/value_iterator-inl.h for westmere */ + + /* end file simdjson/generic/ondemand/amalgamated.h for westmere */ /* including simdjson/westmere/end.h: #include "simdjson/westmere/end.h" */ /* begin file simdjson/westmere/end.h */ @@ -96703,7 +100175,13 @@ simdjson_inline internal::value128 full_multiplication(uint64_t value1, uint64_t } // namespace lsx } // namespace simdjson +#ifndef SIMDJSON_SWAR_NUMBER_PARSING +#if SIMDJSON_IS_BIG_ENDIAN +#define SIMDJSON_SWAR_NUMBER_PARSING 0 +#else #define SIMDJSON_SWAR_NUMBER_PARSING 1 +#endif +#endif #endif // SIMDJSON_LSX_NUMBERPARSING_DEFS_H /* end file simdjson/lsx/numberparsing_defs.h */ @@ -97180,6 +100658,132 @@ class value_iterator; #endif // SIMDJSON_GENERIC_ONDEMAND_BASE_H /* end file simdjson/generic/ondemand/base.h for lsx */ +/* including simdjson/generic/ondemand/deserialize.h for lsx: #include "simdjson/generic/ondemand/deserialize.h" */ +/* begin file simdjson/generic/ondemand/deserialize.h for lsx */ +#if SIMDJSON_SUPPORTS_DESERIALIZATION + +#ifndef SIMDJSON_ONDEMAND_DESERIALIZE_H +/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ +/* amalgamation skipped (editor-only): #define SIMDJSON_ONDEMAND_DESERIALIZE_H */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array.h" */ +/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ + +#include +namespace simdjson { + +namespace tag_invoke_fn_ns { +void tag_invoke(); + +struct tag_invoke_fn { + template + requires requires(Tag tag, Args &&...args) { + tag_invoke(std::forward(tag), std::forward(args)...); + } + constexpr auto operator()(Tag tag, Args &&...args) const + noexcept(noexcept(tag_invoke(std::forward(tag), + std::forward(args)...))) + -> decltype(tag_invoke(std::forward(tag), + std::forward(args)...)) { + return tag_invoke(std::forward(tag), std::forward(args)...); + } +}; +} // namespace tag_invoke_fn_ns + +inline namespace tag_invoke_ns { +inline constexpr tag_invoke_fn_ns::tag_invoke_fn tag_invoke = {}; +} // namespace tag_invoke_ns + +template +concept tag_invocable = requires(Tag tag, Args... args) { + tag_invoke(std::forward(tag), std::forward(args)...); +}; + +template +concept nothrow_tag_invocable = + tag_invocable && requires(Tag tag, Args... args) { + { + tag_invoke(std::forward(tag), std::forward(args)...) + } noexcept; + }; + +template +using tag_invoke_result = + std::invoke_result; + +template +using tag_invoke_result_t = + std::invoke_result_t; + +template using tag_t = std::decay_t; + + +struct deserialize_tag; + +/// These types are deserializable in a built-in way +template struct is_builtin_deserializable : std::false_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; + +template +concept is_builtin_deserializable_v = is_builtin_deserializable::value; + +template +concept custom_deserializable = tag_invocable; + +template +concept deserializable = custom_deserializable || is_builtin_deserializable_v; + +template +concept nothrow_custom_deserializable = nothrow_tag_invocable; + +// built-in types are noexcept and if an error happens, the value simply gets ignored and the error is returned. +template +concept nothrow_deserializable = nothrow_custom_deserializable || is_builtin_deserializable_v; + +/// Deserialize Tag +inline constexpr struct deserialize_tag { + using value_type = lsx::ondemand::value; + using document_type = lsx::ondemand::document; + using document_reference_type = lsx::ondemand::document_reference; + + // Customization Point for value + template + requires custom_deserializable + [[nodiscard]] constexpr /* error_code */ auto operator()(value_type &object, T& output) const noexcept(nothrow_custom_deserializable) { + return tag_invoke(*this, object, output); + } + + // Customization Point for document + template + requires custom_deserializable + [[nodiscard]] constexpr /* error_code */ auto operator()(document_type &object, T& output) const noexcept(nothrow_custom_deserializable) { + return tag_invoke(*this, object, output); + } + + // Customization Point for document reference + template + requires custom_deserializable + [[nodiscard]] constexpr /* error_code */ auto operator()(document_reference_type &object, T& output) const noexcept(nothrow_custom_deserializable) { + return tag_invoke(*this, object, output); + } + + +} deserialize{}; + +} // namespace simdjson + +#endif // SIMDJSON_ONDEMAND_DESERIALIZE_H +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION + +/* end file simdjson/generic/ondemand/deserialize.h for lsx */ /* including simdjson/generic/ondemand/value_iterator.h for lsx: #include "simdjson/generic/ondemand/value_iterator.h" */ /* begin file simdjson/generic/ondemand/value_iterator.h for lsx */ #ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_H @@ -97684,12 +101288,15 @@ struct simdjson_result : public lsx::implementati /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/implementation_simdjson_result_base.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/deserialize.h" */ /* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ +#include + namespace simdjson { + namespace lsx { namespace ondemand { - /** * An ephemeral JSON value returned during iteration. It is only valid for as long as you do * not access more data in the JSON document. @@ -97714,16 +101321,21 @@ class value { * @returns A value of the given type, parsed from the JSON. * @returns INCORRECT_TYPE If the JSON value is not the given type. */ - template simdjson_inline simdjson_result get() noexcept { - // Unless the simdjson library or the user provides an inline implementation, calling this method should - // immediately fail. - static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " - "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " - "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " - " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." - " You may also add support for custom types, see our documentation."); + template + simdjson_inline simdjson_result get() +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(std::is_default_constructible::value, "The specified type is not default constructible."); + T out{}; + SIMDJSON_TRY(get(out)); + return out; } + /** * Get this value as the given type. * @@ -97733,7 +101345,32 @@ class value { * @returns INCORRECT_TYPE If the JSON value is not an object. * @returns SUCCESS If the parse succeeded and the out parameter was set to the value. */ - template simdjson_inline error_code get(T &out) noexcept; + template + simdjson_inline error_code get(T &out) +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { +#if SIMDJSON_SUPPORTS_DESERIALIZATION + if constexpr (custom_deserializable) { + return deserialize(*this, out); + } else { +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION + // Unless the simdjson library or the user provides an inline implementation, calling this method should + // immediately fail. + static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " + "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " + "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " + " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." + " You may also add support for custom types, see our documentation."); + static_cast(out); // to get rid of unused errors + return UNINITIALIZED; +#if SIMDJSON_SUPPORTS_DESERIALIZATION + } +#endif + } /** * Cast this JSON value to an array. @@ -97809,6 +101446,17 @@ class value { * Important: a value should be consumed once. Calling get_string() twice on the same value * is an error. * + * In some instances, you may want to allow replacement of invalid Unicode sequences. + * You may do so by passing the allow_replacement parameter as true. In the following + * example, the string "431924697b\udff0L\u0001Y" is not valid Unicode. By passing true + * to get_string, we allow the replacement of the invalid Unicode sequences with the Unicode + * replacement character (U+FFFD). + * + * simdjson::ondemand::parser parser; + * auto json = R"({"deviceId":"431924697b\udff0L\u0001Y"})"_padded; + * simdjson::ondemand::document doc = parser.iterate(json); + * auto view = doc["deviceId"].get_string(true); + * * @returns An UTF-8 string. The string is stored in the parser and will be invalidated the next * time it parses a document or when it is destroyed. * @returns INCORRECT_TYPE if the JSON value is not a string. @@ -98060,6 +101708,7 @@ class value { simdjson_inline simdjson_result operator[](std::string_view key) noexcept; /** @overload simdjson_inline simdjson_result find_field_unordered(std::string_view key) noexcept; */ simdjson_inline simdjson_result operator[](const char *key) noexcept; + simdjson_result operator[](int) noexcept = delete; /** * Get the type of this JSON value. It does not validate or consume the value. @@ -98427,6 +102076,7 @@ struct simdjson_result : public lsx::implementation_simdjs simdjson_inline simdjson_result operator[](std::string_view key) noexcept; /** @overload simdjson_inline simdjson_result find_field_unordered(std::string_view key) noexcept; */ simdjson_inline simdjson_result operator[](const char *key) noexcept; + simdjson_result operator[](int) noexcept = delete; /** * Get the type of this JSON value. @@ -99482,6 +103132,22 @@ class parser { * using a sanitizer that verifies that no uninitialized byte is read, then you should initialize the * SIMDJSON_PADDING bytes to avoid runtime warnings. * + * ### std::string references + * + * If you pass a mutable std::string reference (std::string&), the parser will seek to extend + * its capacity to SIMDJSON_PADDING bytes beyond the end of the string. + * + * Whenever you pass an std::string reference, the parser will access the bytes beyond the end of + * the string but before the end of the allocated memory (std::string::capacity()). + * If you are using a sanitizer that checks for reading uninitialized bytes or std::string's + * container-overflow checks, you may encounter sanitizer warnings. + * You can safely ignore these warnings. Or you can call simdjson::pad(std::string&) to pad the + * string with SIMDJSON_PADDING spaces: this function returns a simdjson::padding_string_view + * which can be be passed to the parser's iterate function: + * + * std::string json = R"({ "foo": 1 } { "foo": 2 } { "foo": 3 } )"; + * document doc = parser.iterate(simdjson::pad(json)); + * * @param json The JSON to parse. * @param len The length of the JSON. * @param capacity The number of bytes allocated in the JSON (must be at least len+SIMDJSON_PADDING). @@ -99676,8 +103342,12 @@ class parser { * behavior of the parser for future operations. */ bool threaded{true}; + #else + /** + * When SIMDJSON_THREADS_ENABLED is not defined, the parser instance cannot use threads. + */ + bool threaded{false}; #endif - /** * Unescape this JSON string, replacing \\ with \, \n with newline, etc. to a user-provided buffer. * The result must be valid UTF-8. @@ -99819,7 +103489,8 @@ class array { * calling this function, if successful, the array is 'rewinded' at its * beginning as if it had never been accessed. If the JSON is malformed (e.g., * there is a missing comma), then an error is returned and it is no longer - * safe to continue. + * safe to continue. Note that count_elements() does not validate the JSON values, + * only the structure of the array. * * To check that an array is empty, it is more performant to use * the is_empty() method. @@ -100097,8 +103768,11 @@ struct simdjson_result : public lsx::implementati /* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_H */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/deserialize.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ /* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ + namespace simdjson { namespace lsx { namespace ondemand { @@ -100271,24 +103945,39 @@ class document { * @returns A value of the given type, parsed from the JSON. * @returns INCORRECT_TYPE If the JSON value is not the given type. */ - template simdjson_inline simdjson_result get() & noexcept { - // Unless the simdjson library or the user provides an inline implementation, calling this method should - // immediately fail. - static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " - "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " - "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " - " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." - " You may also add support for custom types, see our documentation."); - } - /** @overload template simdjson_result get() & noexcept */ - template simdjson_deprecated simdjson_inline simdjson_result get() && noexcept { - // Unless the simdjson library or the user provides an inline implementation, calling this method should - // immediately fail. - static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " - "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " - "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " - " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." - " You may also add support for custom types, see our documentation."); + template + simdjson_inline simdjson_result get() & +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(std::is_default_constructible::value, "Cannot initialize the specified type."); + T out{}; + SIMDJSON_TRY(get(out)); + return out; + } + /** + * @overload template simdjson_result get() & noexcept + * + * We disallow the use tag_invoke CPO on a moved document; it may create UB + * if user uses `ondemand::array` or `ondemand::object` in their custom type. + * + * The member function is still remains specialize-able for compatibility + * reasons, but we completely disallow its use when a tag_invoke customization + * is provided. + */ + template + simdjson_inline simdjson_result get() && +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(!std::is_same::value && !std::is_same::value, "You should never hold either an ondemand::array or ondemand::object without a corresponding ondemand::document being alive; that would be Undefined Behaviour."); + return static_cast(*this).get(); } /** @@ -100302,7 +103991,32 @@ class document { * @returns INCORRECT_TYPE If the JSON value is not an object. * @returns SUCCESS If the parse succeeded and the out parameter was set to the value. */ - template simdjson_inline error_code get(T &out) & noexcept; + template + simdjson_inline error_code get(T &out) & +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { +#if SIMDJSON_SUPPORTS_DESERIALIZATION + if constexpr (custom_deserializable) { + return deserialize(*this, out); + } else { +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION + // Unless the simdjson library or the user provides an inline implementation, calling this method should + // immediately fail. + static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " + "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " + "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " + " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." + " You may also add support for custom types, see our documentation."); + static_cast(out); // to get rid of unused errors + return UNINITIALIZED; +#if SIMDJSON_SUPPORTS_DESERIALIZATION + } +#endif + } /** @overload template error_code get(T &out) & noexcept */ template simdjson_deprecated simdjson_inline error_code get(T &out) && noexcept; @@ -100404,7 +104118,8 @@ class document { * calling this function, if successful, the array is 'rewinded' at its * beginning as if it had never been accessed. If the JSON is malformed (e.g., * there is a missing comma), then an error is returned and it is no longer - * safe to continue. + * safe to continue. Note that count_elements() does not validate the JSON values, + * only the structure of the array. */ simdjson_inline simdjson_result count_elements() & noexcept; /** @@ -100516,6 +104231,7 @@ class document { simdjson_inline simdjson_result operator[](std::string_view key) & noexcept; /** @overload simdjson_inline simdjson_result find_field_unordered(std::string_view key) & noexcept; */ simdjson_inline simdjson_result operator[](const char *key) & noexcept; + simdjson_result operator[](int) & noexcept = delete; /** * Get the type of this JSON value. It does not validate or consume the value. @@ -100784,6 +104500,11 @@ class document { /** * A document_reference is a thin wrapper around a document reference instance. + * The document_reference instances are used primarily/solely for streams of JSON + * documents. They differ from document instances when parsing a scalar value + * (a document that is not an array or an object). In the case of a document, + * we expect the document to be fully consumed. In the case of a document_reference, + * we allow trailing content. */ class document_reference { public: @@ -100809,7 +104530,70 @@ class document_reference { simdjson_inline simdjson_result get_value() noexcept; simdjson_inline simdjson_result is_null() noexcept; - template simdjson_inline simdjson_result get() & noexcept; + template + simdjson_inline simdjson_result get() & +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(std::is_default_constructible::value, "Cannot initialize the specified type."); + T out{}; + SIMDJSON_TRY(get(out)); + return out; + } + template + simdjson_inline simdjson_result get() && +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(!std::is_same::value && !std::is_same::value, "You should never hold either an ondemand::array or ondemand::object without a corresponding ondemand::document_reference being alive; that would be Undefined Behaviour."); + return static_cast(*this).get(); + } + + /** + * Get this value as the given type. + * + * Supported types: object, array, raw_json_string, string_view, uint64_t, int64_t, double, bool, value + * + * Be mindful that the document instance must remain in scope while you are accessing object, array and value instances. + * + * @param out This is set to a value of the given type, parsed from the JSON. If there is an error, this may not be initialized. + * @returns INCORRECT_TYPE If the JSON value is not an object. + * @returns SUCCESS If the parse succeeded and the out parameter was set to the value. + */ + template + simdjson_inline error_code get(T &out) & +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { +#if SIMDJSON_SUPPORTS_DESERIALIZATION + if constexpr (custom_deserializable) { + return deserialize(*this, out); + } else { +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION + // Unless the simdjson library or the user provides an inline implementation, calling this method should + // immediately fail. + static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " + "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " + "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " + " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." + " You may also add support for custom types, see our documentation."); + static_cast(out); // to get rid of unused errors + return UNINITIALIZED; +#if SIMDJSON_SUPPORTS_DESERIALIZATION + } +#endif + } + /** @overload template error_code get(T &out) & noexcept */ + template simdjson_inline error_code get(T &out) && noexcept; simdjson_inline simdjson_result raw_json() noexcept; simdjson_inline operator document&() const noexcept; #if SIMDJSON_EXCEPTIONS @@ -100834,6 +104618,7 @@ class document_reference { simdjson_inline simdjson_result find_field(const char *key) & noexcept; simdjson_inline simdjson_result operator[](std::string_view key) & noexcept; simdjson_inline simdjson_result operator[](const char *key) & noexcept; + simdjson_result operator[](int) & noexcept = delete; simdjson_inline simdjson_result find_field_unordered(std::string_view key) & noexcept; simdjson_inline simdjson_result find_field_unordered(const char *key) & noexcept; @@ -100912,6 +104697,7 @@ struct simdjson_result : public lsx::implementation_sim simdjson_inline simdjson_result find_field(const char *key) & noexcept; simdjson_inline simdjson_result operator[](std::string_view key) & noexcept; simdjson_inline simdjson_result operator[](const char *key) & noexcept; + simdjson_result operator[](int) & noexcept = delete; simdjson_inline simdjson_result find_field_unordered(std::string_view key) & noexcept; simdjson_inline simdjson_result find_field_unordered(const char *key) & noexcept; simdjson_inline simdjson_result type() noexcept; @@ -100961,8 +104747,14 @@ struct simdjson_result : public lsx::implemen simdjson_inline simdjson_result get_bool() noexcept; simdjson_inline simdjson_result get_value() noexcept; simdjson_inline simdjson_result is_null() noexcept; + + template simdjson_inline simdjson_result get() & noexcept; + template simdjson_inline simdjson_result get() && noexcept; + + template simdjson_inline error_code get(T &out) & noexcept; + template simdjson_inline error_code get(T &out) && noexcept; #if SIMDJSON_EXCEPTIONS - template ::value == false>::type> + template explicit simdjson_inline operator T() noexcept(false); simdjson_inline operator lsx::ondemand::array() & noexcept(false); simdjson_inline operator lsx::ondemand::object() & noexcept(false); @@ -100983,6 +104775,7 @@ struct simdjson_result : public lsx::implemen simdjson_inline simdjson_result find_field(const char *key) & noexcept; simdjson_inline simdjson_result operator[](std::string_view key) & noexcept; simdjson_inline simdjson_result operator[](const char *key) & noexcept; + simdjson_result operator[](int) & noexcept = delete; simdjson_inline simdjson_result find_field_unordered(std::string_view key) & noexcept; simdjson_inline simdjson_result find_field_unordered(const char *key) & noexcept; simdjson_inline simdjson_result type() noexcept; @@ -101913,6 +105706,177 @@ inline std::ostream& operator<<(std::ostream& out, simdjson::simdjson_result +#include + +namespace simdjson { +template +constexpr bool require_custom_serialization = false; + +////////////////////////////// +// Number deserialization +////////////////////////////// + +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, auto &val, T &out) noexcept { + using limits = std::numeric_limits; + + uint64_t x; + SIMDJSON_TRY(val.get_uint64().get(x)); + if (x > (limits::max)()) { + return NUMBER_OUT_OF_RANGE; + } + out = static_cast(x); + return SUCCESS; +} + +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, auto &val, T &out) noexcept { + double x; + SIMDJSON_TRY(val.get_double().get(x)); + out = static_cast(x); + return SUCCESS; +} + +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, auto &val, T &out) noexcept { + using limits = std::numeric_limits; + + int64_t x; + SIMDJSON_TRY(val.get_int64().get(x)); + if (x > (limits::max)() || x < (limits::min)()) { + return NUMBER_OUT_OF_RANGE; + } + out = static_cast(x); + return SUCCESS; +} + +/** + * STL containers have several constructors including one that takes a single + * size argument. Thus, some compilers (Visual Studio) will not be able to + * disambiguate between the size and container constructor. Users should + * explicitly specify the type of the container as needed: e.g., + * doc.get>(). + */ +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, ValT &val, T &out) noexcept(false) { + using value_type = typename std::remove_cvref_t::value_type; + static_assert( + deserializable, + "The specified type inside the container must itself be deserializable"); + static_assert( + std::is_default_constructible_v, + "The specified type inside the container must default constructible."); + + lsx::ondemand::array arr; + SIMDJSON_TRY(val.get_array().get(arr)); + for (auto v : arr) { + if constexpr (concepts::returns_reference) { + if (auto const err = v.get().get(concepts::emplace_one(out)); + err) { + // If an error occurs, the empty element that we just inserted gets + // removed. We're not using a temp variable because if T is a heavy + // type, we want the valid path to be the fast path and the slow path be + // the path that has errors in it. + if constexpr (requires { out.pop_back(); }) { + static_cast(out.pop_back()); + } + return err; + } + } else { + value_type temp; + if (auto const err = v.get().get(temp); err) { + return err; + } + concepts::emplace_one(out, std::move(temp)); + } + } + return SUCCESS; +} + + + +/** + * This CPO (Customization Point Object) will help deserialize into + * smart pointers. + * + * If constructing T is nothrow, this conversion should be nothrow as well since + * we return MEMALLOC if we're not able to allocate memory instead of throwing + * the error message. + * + * @tparam T The type inside the smart pointer + * @tparam ValT document/value type + * @param val document/value + * @param out a reference to the smart pointer + * @return status of the conversion + */ +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, ValT &val, T &out) noexcept(nothrow_deserializable::element_type, ValT>) { + using element_type = typename std::remove_cvref_t::element_type; + + // For better error messages, don't use these as constraints on + // the tag_invoke CPO. + static_assert( + deserializable, + "The specified type inside the unique_ptr must itself be deserializable"); + static_assert( + std::is_default_constructible_v, + "The specified type inside the unique_ptr must default constructible."); + + auto ptr = new (std::nothrow) element_type(); + if (ptr == nullptr) { + return MEMALLOC; + } + SIMDJSON_TRY(val.template get(*ptr)); + out.reset(ptr); + return SUCCESS; +} + +/** + * This CPO (Customization Point Object) will help deserialize into optional types. + */ +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, ValT &val, T &out) noexcept(nothrow_deserializable::value_type, ValT>) { + using value_type = typename std::remove_cvref_t::value_type; + + static_assert( + deserializable, + "The specified type inside the unique_ptr must itself be deserializable"); + static_assert( + std::is_default_constructible_v, + "The specified type inside the unique_ptr must default constructible."); + + if (!out) { + out.emplace(); + } + SIMDJSON_TRY(val.template get(out.value())); + return SUCCESS; +} + +} // namespace simdjson + +#endif // SIMDJSON_ONDEMAND_DESERIALIZE_H +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION +/* end file simdjson/generic/ondemand/std_deserialize.h for lsx */ + // Inline definitions /* including simdjson/generic/ondemand/array-inl.h for lsx: #include "simdjson/generic/ondemand/array-inl.h" */ /* begin file simdjson/generic/ondemand/array-inl.h for lsx */ @@ -101920,6 +105884,7 @@ inline std::ostream& operator<<(std::ostream& out, simdjson::simdjson_result array::at_pointer(std::string_view json_pointer) n return child; } -inline std::string json_path_to_pointer_conversion(std::string_view json_path) { - if (json_path.empty() || (json_path.front() != '.' && - json_path.front() != '[')) { - return "-1"; // This is just a sentinel value, the caller should check for this and return an error. - } - - std::string result; - // Reserve space to reduce allocations, adjusting for potential increases due - // to escaping. - result.reserve(json_path.size() * 2); - - size_t i = 0; - - while (i < json_path.length()) { - if (json_path[i] == '.') { - result += '/'; - } else if (json_path[i] == '[') { - result += '/'; - ++i; // Move past the '[' - while (i < json_path.length() && json_path[i] != ']') { - if (json_path[i] == '~') { - result += "~0"; - } else if (json_path[i] == '/') { - result += "~1"; - } else { - result += json_path[i]; - } - ++i; - } - if (i == json_path.length() || json_path[i] != ']') { - return "-1"; // Using sentinel value that will be handled as an error by the caller. - } - } else { - if (json_path[i] == '~') { - result += "~0"; - } else if (json_path[i] == '/') { - result += "~1"; - } else { - result += json_path[i]; - } - } - ++i; - } - - return result; -} - inline simdjson_result array::at_path(std::string_view json_path) noexcept { auto json_pointer = json_path_to_pointer_conversion(json_path); if (json_pointer == "-1") { return INVALID_JSON_POINTER; } @@ -102281,313 +106199,276 @@ simdjson_inline simdjson_result &simdjson_result< #endif // SIMDJSON_GENERIC_ONDEMAND_ARRAY_ITERATOR_INL_H /* end file simdjson/generic/ondemand/array_iterator-inl.h for lsx */ -/* including simdjson/generic/ondemand/document-inl.h for lsx: #include "simdjson/generic/ondemand/document-inl.h" */ -/* begin file simdjson/generic/ondemand/document-inl.h for lsx */ -#ifndef SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H +/* including simdjson/generic/ondemand/value-inl.h for lsx: #include "simdjson/generic/ondemand/value-inl.h" */ +/* begin file simdjson/generic/ondemand/value-inl.h for lsx */ +#ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H /* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ -/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H */ +/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array_iterator.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator-inl.h" */ /* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ namespace simdjson { namespace lsx { namespace ondemand { -simdjson_inline document::document(ondemand::json_iterator &&_iter) noexcept - : iter{std::forward(_iter)} +simdjson_inline value::value(const value_iterator &_iter) noexcept + : iter{_iter} { - logger::log_start_value(iter, "document"); } - -simdjson_inline document document::start(json_iterator &&iter) noexcept { - return document(std::forward(iter)); +simdjson_inline value value::start(const value_iterator &iter) noexcept { + return iter; } - -inline void document::rewind() noexcept { - iter.rewind(); +simdjson_inline value value::resume(const value_iterator &iter) noexcept { + return iter; } -inline std::string document::to_debug_string() noexcept { - return iter.to_string(); +simdjson_inline simdjson_result value::get_array() noexcept { + return array::start(iter); } - -inline simdjson_result document::current_location() const noexcept { - return iter.current_location(); +simdjson_inline simdjson_result value::get_object() noexcept { + return object::start(iter); } - -inline int32_t document::current_depth() const noexcept { - return iter.depth(); +simdjson_inline simdjson_result value::start_or_resume_object() noexcept { + if (iter.at_start()) { + return get_object(); + } else { + return object::resume(iter); + } } -inline bool document::at_end() const noexcept { - return iter.at_end(); +simdjson_inline simdjson_result value::get_raw_json_string() noexcept { + return iter.get_raw_json_string(); } - - -inline bool document::is_alive() noexcept { - return iter.is_alive(); +simdjson_inline simdjson_result value::get_string(bool allow_replacement) noexcept { + return iter.get_string(allow_replacement); } -simdjson_inline value_iterator document::resume_value_iterator() noexcept { - return value_iterator(&iter, 1, iter.root_position()); +template +simdjson_inline error_code value::get_string(string_type& receiver, bool allow_replacement) noexcept { + return iter.get_string(receiver, allow_replacement); } -simdjson_inline value_iterator document::get_root_value_iterator() noexcept { - return resume_value_iterator(); +simdjson_inline simdjson_result value::get_wobbly_string() noexcept { + return iter.get_wobbly_string(); } -simdjson_inline simdjson_result document::start_or_resume_object() noexcept { - if (iter.at_root()) { - return get_object(); - } else { - return object::resume(resume_value_iterator()); - } +simdjson_inline simdjson_result value::get_double() noexcept { + return iter.get_double(); } -simdjson_inline simdjson_result document::get_value() noexcept { - // Make sure we start any arrays or objects before returning, so that start_root_() - // gets called. - - // It is the convention throughout the code that the macro `SIMDJSON_DEVELOPMENT_CHECKS` determines whether - // we check for OUT_OF_ORDER_ITERATION. Proper on::demand code should never trigger this error. -#if SIMDJSON_DEVELOPMENT_CHECKS - if (!iter.at_root()) { return OUT_OF_ORDER_ITERATION; } -#endif - // assert_at_root() serves two purposes: in Debug mode, whether or not - // SIMDJSON_DEVELOPMENT_CHECKS is set or not, it checks that we are at the root of - // the document (this will typically be redundant). In release mode, it generates - // SIMDJSON_ASSUME statements to allow the compiler to make assumptions. - iter.assert_at_root(); - switch (*iter.peek()) { - case '[': { - // The following lines check that the document ends with ]. - auto value_iterator = get_root_value_iterator(); - auto error = value_iterator.check_root_array(); - if(error) { return error; } - return value(get_root_value_iterator()); - } - case '{': { - // The following lines would check that the document ends with }. - auto value_iterator = get_root_value_iterator(); - auto error = value_iterator.check_root_object(); - if(error) { return error; } - return value(get_root_value_iterator()); - } - default: - // Unfortunately, scalar documents are a special case in simdjson and they cannot - // be safely converted to value instances. - return SCALAR_DOCUMENT_AS_VALUE; - } +simdjson_inline simdjson_result value::get_double_in_string() noexcept { + return iter.get_double_in_string(); } -simdjson_inline simdjson_result document::get_array() & noexcept { - auto value = get_root_value_iterator(); - return array::start_root(value); +simdjson_inline simdjson_result value::get_uint64() noexcept { + return iter.get_uint64(); } -simdjson_inline simdjson_result document::get_object() & noexcept { - auto value = get_root_value_iterator(); - return object::start_root(value); +simdjson_inline simdjson_result value::get_uint64_in_string() noexcept { + return iter.get_uint64_in_string(); } - -/** - * We decided that calling 'get_double()' on the JSON document '1.233 blabla' should - * give an error, so we check for trailing content. We want to disallow trailing - * content. - * Thus, in several implementations below, we pass a 'true' parameter value to - * a get_root_value_iterator() method: this indicates that we disallow trailing content. - */ - -simdjson_inline simdjson_result document::get_uint64() noexcept { - return get_root_value_iterator().get_root_uint64(true); +simdjson_inline simdjson_result value::get_int64() noexcept { + return iter.get_int64(); } -simdjson_inline simdjson_result document::get_uint64_in_string() noexcept { - return get_root_value_iterator().get_root_uint64_in_string(true); +simdjson_inline simdjson_result value::get_int64_in_string() noexcept { + return iter.get_int64_in_string(); } -simdjson_inline simdjson_result document::get_int64() noexcept { - return get_root_value_iterator().get_root_int64(true); +simdjson_inline simdjson_result value::get_bool() noexcept { + return iter.get_bool(); } -simdjson_inline simdjson_result document::get_int64_in_string() noexcept { - return get_root_value_iterator().get_root_int64_in_string(true); +simdjson_inline simdjson_result value::is_null() noexcept { + return iter.is_null(); } -simdjson_inline simdjson_result document::get_double() noexcept { - return get_root_value_iterator().get_root_double(true); + +template<> simdjson_inline simdjson_result value::get() noexcept { return get_array(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_object(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_raw_json_string(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_string(false); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_number(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_double(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_uint64(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_int64(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_bool(); } + + +template<> simdjson_inline error_code value::get(array& out) noexcept { return get_array().get(out); } +template<> simdjson_inline error_code value::get(object& out) noexcept { return get_object().get(out); } +template<> simdjson_inline error_code value::get(raw_json_string& out) noexcept { return get_raw_json_string().get(out); } +template<> simdjson_inline error_code value::get(std::string_view& out) noexcept { return get_string(false).get(out); } +template<> simdjson_inline error_code value::get(number& out) noexcept { return get_number().get(out); } +template<> simdjson_inline error_code value::get(double& out) noexcept { return get_double().get(out); } +template<> simdjson_inline error_code value::get(uint64_t& out) noexcept { return get_uint64().get(out); } +template<> simdjson_inline error_code value::get(int64_t& out) noexcept { return get_int64().get(out); } +template<> simdjson_inline error_code value::get(bool& out) noexcept { return get_bool().get(out); } + +#if SIMDJSON_EXCEPTIONS +template +simdjson_inline value::operator T() noexcept(false) { + return get(); } -simdjson_inline simdjson_result document::get_double_in_string() noexcept { - return get_root_value_iterator().get_root_double_in_string(true); +simdjson_inline value::operator array() noexcept(false) { + return get_array(); } -simdjson_inline simdjson_result document::get_string(bool allow_replacement) noexcept { - return get_root_value_iterator().get_root_string(true, allow_replacement); +simdjson_inline value::operator object() noexcept(false) { + return get_object(); } -template -simdjson_inline error_code document::get_string(string_type& receiver, bool allow_replacement) noexcept { - return get_root_value_iterator().get_root_string(receiver, true, allow_replacement); +simdjson_inline value::operator uint64_t() noexcept(false) { + return get_uint64(); } -simdjson_inline simdjson_result document::get_wobbly_string() noexcept { - return get_root_value_iterator().get_root_wobbly_string(true); +simdjson_inline value::operator int64_t() noexcept(false) { + return get_int64(); } -simdjson_inline simdjson_result document::get_raw_json_string() noexcept { - return get_root_value_iterator().get_root_raw_json_string(true); +simdjson_inline value::operator double() noexcept(false) { + return get_double(); } -simdjson_inline simdjson_result document::get_bool() noexcept { - return get_root_value_iterator().get_root_bool(true); +simdjson_inline value::operator std::string_view() noexcept(false) { + return get_string(false); } -simdjson_inline simdjson_result document::is_null() noexcept { - return get_root_value_iterator().is_root_null(true); +simdjson_inline value::operator raw_json_string() noexcept(false) { + return get_raw_json_string(); } +simdjson_inline value::operator bool() noexcept(false) { + return get_bool(); +} +#endif -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_array(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_object(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_raw_json_string(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_string(false); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_double(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_uint64(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_int64(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_bool(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_value(); } - -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_raw_json_string(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_string(false); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_double(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_uint64(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_int64(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_bool(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_value(); } - -template simdjson_inline error_code document::get(T &out) & noexcept { - return get().get(out); +simdjson_inline simdjson_result value::begin() & noexcept { + return get_array().begin(); } -template simdjson_deprecated simdjson_inline error_code document::get(T &out) && noexcept { - return std::forward(*this).get().get(out); +simdjson_inline simdjson_result value::end() & noexcept { + return {}; } - -#if SIMDJSON_EXCEPTIONS -template -simdjson_deprecated simdjson_inline document::operator T() && noexcept(false) { return get(); } -template -simdjson_inline document::operator T() & noexcept(false) { return get(); } -simdjson_inline document::operator array() & noexcept(false) { return get_array(); } -simdjson_inline document::operator object() & noexcept(false) { return get_object(); } -simdjson_inline document::operator uint64_t() noexcept(false) { return get_uint64(); } -simdjson_inline document::operator int64_t() noexcept(false) { return get_int64(); } -simdjson_inline document::operator double() noexcept(false) { return get_double(); } -simdjson_inline document::operator std::string_view() noexcept(false) { return get_string(false); } -simdjson_inline document::operator raw_json_string() noexcept(false) { return get_raw_json_string(); } -simdjson_inline document::operator bool() noexcept(false) { return get_bool(); } -simdjson_inline document::operator value() noexcept(false) { return get_value(); } - -#endif -simdjson_inline simdjson_result document::count_elements() & noexcept { +simdjson_inline simdjson_result value::count_elements() & noexcept { + simdjson_result answer; auto a = get_array(); - simdjson_result answer = a.count_elements(); - /* If there was an array, we are now left pointing at its first element. */ - if(answer.error() == SUCCESS) { rewind(); } + answer = a.count_elements(); + // count_elements leaves you pointing inside the array, at the first element. + // We need to move back so that the user can create a new array (which requires that + // we point at '['). + iter.move_at_start(); return answer; } -simdjson_inline simdjson_result document::count_fields() & noexcept { +simdjson_inline simdjson_result value::count_fields() & noexcept { + simdjson_result answer; auto a = get_object(); - simdjson_result answer = a.count_fields(); - /* If there was an object, we are now left pointing at its first element. */ - if(answer.error() == SUCCESS) { rewind(); } + answer = a.count_fields(); + iter.move_at_start(); return answer; } -simdjson_inline simdjson_result document::at(size_t index) & noexcept { +simdjson_inline simdjson_result value::at(size_t index) noexcept { auto a = get_array(); return a.at(index); } -simdjson_inline simdjson_result document::begin() & noexcept { - return get_array().begin(); -} -simdjson_inline simdjson_result document::end() & noexcept { - return {}; -} -simdjson_inline simdjson_result document::find_field(std::string_view key) & noexcept { +simdjson_inline simdjson_result value::find_field(std::string_view key) noexcept { return start_or_resume_object().find_field(key); } -simdjson_inline simdjson_result document::find_field(const char *key) & noexcept { +simdjson_inline simdjson_result value::find_field(const char *key) noexcept { return start_or_resume_object().find_field(key); } -simdjson_inline simdjson_result document::find_field_unordered(std::string_view key) & noexcept { + +simdjson_inline simdjson_result value::find_field_unordered(std::string_view key) noexcept { return start_or_resume_object().find_field_unordered(key); } -simdjson_inline simdjson_result document::find_field_unordered(const char *key) & noexcept { +simdjson_inline simdjson_result value::find_field_unordered(const char *key) noexcept { return start_or_resume_object().find_field_unordered(key); } -simdjson_inline simdjson_result document::operator[](std::string_view key) & noexcept { + +simdjson_inline simdjson_result value::operator[](std::string_view key) noexcept { return start_or_resume_object()[key]; } -simdjson_inline simdjson_result document::operator[](const char *key) & noexcept { +simdjson_inline simdjson_result value::operator[](const char *key) noexcept { return start_or_resume_object()[key]; } -simdjson_inline error_code document::consume() noexcept { - auto error = iter.skip_child(0); - if(error) { iter.abandon(); } - return error; -} - -simdjson_inline simdjson_result document::raw_json() noexcept { - auto _iter = get_root_value_iterator(); - const uint8_t * starting_point{_iter.peek_start()}; - auto error = consume(); - if(error) { return error; } - // After 'consume()', we could be left pointing just beyond the document, but that - // is ok because we are not going to dereference the final pointer position, we just - // use it to compute the length in bytes. - const uint8_t * final_point{iter.unsafe_pointer()}; - return std::string_view(reinterpret_cast(starting_point), size_t(final_point - starting_point)); -} - -simdjson_inline simdjson_result document::type() noexcept { - return get_root_value_iterator().type(); +simdjson_inline simdjson_result value::type() noexcept { + return iter.type(); } -simdjson_inline simdjson_result document::is_scalar() noexcept { +simdjson_inline simdjson_result value::is_scalar() noexcept { json_type this_type; auto error = type().get(this_type); if(error) { return error; } return ! ((this_type == json_type::array) || (this_type == json_type::object)); } -simdjson_inline simdjson_result document::is_string() noexcept { +simdjson_inline simdjson_result value::is_string() noexcept { json_type this_type; auto error = type().get(this_type); if(error) { return error; } return (this_type == json_type::string); } -simdjson_inline bool document::is_negative() noexcept { - return get_root_value_iterator().is_root_negative(); + +simdjson_inline bool value::is_negative() noexcept { + return iter.is_negative(); } -simdjson_inline simdjson_result document::is_integer() noexcept { - return get_root_value_iterator().is_root_integer(true); +simdjson_inline simdjson_result value::is_integer() noexcept { + return iter.is_integer(); +} +simdjson_warn_unused simdjson_inline simdjson_result value::get_number_type() noexcept { + return iter.get_number_type(); +} +simdjson_warn_unused simdjson_inline simdjson_result value::get_number() noexcept { + return iter.get_number(); } -simdjson_inline simdjson_result document::get_number_type() noexcept { - return get_root_value_iterator().get_root_number_type(true); +simdjson_inline std::string_view value::raw_json_token() noexcept { + return std::string_view(reinterpret_cast(iter.peek_start()), iter.peek_start_length()); } -simdjson_inline simdjson_result document::get_number() noexcept { - return get_root_value_iterator().get_root_number(true); +simdjson_inline simdjson_result value::raw_json() noexcept { + json_type t; + SIMDJSON_TRY(type().get(t)); + switch (t) + { + case json_type::array: { + ondemand::array array; + SIMDJSON_TRY(get_array().get(array)); + return array.raw_json(); + } + case json_type::object: { + ondemand::object object; + SIMDJSON_TRY(get_object().get(object)); + return object.raw_json(); + } + default: + return raw_json_token(); + } } +simdjson_inline simdjson_result value::current_location() noexcept { + return iter.json_iter().current_location(); +} -simdjson_inline simdjson_result document::raw_json_token() noexcept { - auto _iter = get_root_value_iterator(); - return std::string_view(reinterpret_cast(_iter.peek_start()), _iter.peek_root_length()); +simdjson_inline int32_t value::current_depth() const noexcept{ + return iter.json_iter().depth(); } -simdjson_inline simdjson_result document::at_pointer(std::string_view json_pointer) noexcept { - rewind(); // Rewind the document each time at_pointer is called - if (json_pointer.empty()) { - return this->get_value(); +inline bool is_pointer_well_formed(std::string_view json_pointer) noexcept { + if (simdjson_unlikely(json_pointer.empty())) { // can't be + return false; + } + if (simdjson_unlikely(json_pointer[0] != '/')) { + return false; + } + size_t escape = json_pointer.find('~'); + if (escape == std::string_view::npos) { + return true; + } + if (escape == json_pointer.size() - 1) { + return false; } + if (json_pointer[escape + 1] != '0' && json_pointer[escape + 1] != '1') { + return false; + } + return true; +} + +simdjson_inline simdjson_result value::at_pointer(std::string_view json_pointer) noexcept { json_type t; SIMDJSON_TRY(type().get(t)); switch (t) @@ -102597,15 +106478,15 @@ simdjson_inline simdjson_result document::at_pointer(std::string_view jso case json_type::object: return (*this).get_object().at_pointer(json_pointer); default: + // a non-empty string can be invalid, or accessing a primitive (issue 2154) + if (is_pointer_well_formed(json_pointer)) { + return NO_SUCH_FIELD; + } return INVALID_JSON_POINTER; } } -simdjson_inline simdjson_result document::at_path(std::string_view json_path) noexcept { - rewind(); // Rewind the document each time at_pointer is called - if (json_path.empty()) { - return this->get_value(); - } +simdjson_inline simdjson_result value::at_path(std::string_view json_path) noexcept { json_type t; SIMDJSON_TRY(type().get(t)); switch (t) { @@ -102624,680 +106505,1319 @@ simdjson_inline simdjson_result document::at_path(std::string_view json_p namespace simdjson { -simdjson_inline simdjson_result::simdjson_result( - lsx::ondemand::document &&value +simdjson_inline simdjson_result::simdjson_result( + lsx::ondemand::value &&value ) noexcept : - implementation_simdjson_result_base( - std::forward(value) + implementation_simdjson_result_base( + std::forward(value) ) { } -simdjson_inline simdjson_result::simdjson_result( +simdjson_inline simdjson_result::simdjson_result( error_code error ) noexcept : - implementation_simdjson_result_base( - error - ) + implementation_simdjson_result_base(error) { } -simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { +simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { if (error()) { return error(); } return first.count_elements(); } -simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { +simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { if (error()) { return error(); } return first.count_fields(); } -simdjson_inline simdjson_result simdjson_result::at(size_t index) & noexcept { +simdjson_inline simdjson_result simdjson_result::at(size_t index) noexcept { if (error()) { return error(); } return first.at(index); } -simdjson_inline error_code simdjson_result::rewind() noexcept { - if (error()) { return error(); } - first.rewind(); - return SUCCESS; -} -simdjson_inline simdjson_result simdjson_result::begin() & noexcept { +simdjson_inline simdjson_result simdjson_result::begin() & noexcept { if (error()) { return error(); } return first.begin(); } -simdjson_inline simdjson_result simdjson_result::end() & noexcept { +simdjson_inline simdjson_result simdjson_result::end() & noexcept { + if (error()) { return error(); } return {}; } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) & noexcept { + +simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) noexcept { if (error()) { return error(); } - return first.find_field_unordered(key); + return first.find_field(key); } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field(const char *key) noexcept { if (error()) { return error(); } - return first.find_field_unordered(key); + return first.find_field(key); } -simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) & noexcept { + +simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) noexcept { if (error()) { return error(); } - return first[key]; + return first.find_field_unordered(key); } -simdjson_inline simdjson_result simdjson_result::operator[](const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) noexcept { if (error()) { return error(); } - return first[key]; + return first.find_field_unordered(key); } -simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) & noexcept { + +simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) noexcept { if (error()) { return error(); } - return first.find_field(key); + return first[key]; } -simdjson_inline simdjson_result simdjson_result::find_field(const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::operator[](const char *key) noexcept { if (error()) { return error(); } - return first.find_field(key); + return first[key]; } -simdjson_inline simdjson_result simdjson_result::get_array() & noexcept { + +simdjson_inline simdjson_result simdjson_result::get_array() noexcept { if (error()) { return error(); } return first.get_array(); } -simdjson_inline simdjson_result simdjson_result::get_object() & noexcept { +simdjson_inline simdjson_result simdjson_result::get_object() noexcept { if (error()) { return error(); } return first.get_object(); } -simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { +simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { if (error()) { return error(); } return first.get_uint64(); } -simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { if (error()) { return error(); } return first.get_uint64_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { +simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { if (error()) { return error(); } return first.get_int64(); } -simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { if (error()) { return error(); } return first.get_int64_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_double() noexcept { +simdjson_inline simdjson_result simdjson_result::get_double() noexcept { if (error()) { return error(); } return first.get_double(); } -simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { if (error()) { return error(); } return first.get_double_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { +simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { if (error()) { return error(); } return first.get_string(allow_replacement); } template -simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { +simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { if (error()) { return error(); } return first.get_string(receiver, allow_replacement); } -simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { if (error()) { return error(); } return first.get_wobbly_string(); } -simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { if (error()) { return error(); } return first.get_raw_json_string(); } -simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { +simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { if (error()) { return error(); } return first.get_bool(); } -simdjson_inline simdjson_result simdjson_result::get_value() noexcept { - if (error()) { return error(); } - return first.get_value(); -} -simdjson_inline simdjson_result simdjson_result::is_null() noexcept { +simdjson_inline simdjson_result simdjson_result::is_null() noexcept { if (error()) { return error(); } return first.is_null(); } -template -simdjson_inline simdjson_result simdjson_result::get() & noexcept { +template<> simdjson_inline error_code simdjson_result::get(lsx::ondemand::value &out) noexcept { if (error()) { return error(); } - return first.get(); + out = first; + return SUCCESS; } -template -simdjson_deprecated simdjson_inline simdjson_result simdjson_result::get() && noexcept { + +template simdjson_inline simdjson_result simdjson_result::get() noexcept { if (error()) { return error(); } - return std::forward(first).get(); + return first.get(); } -template -simdjson_inline error_code simdjson_result::get(T &out) & noexcept { +template simdjson_inline error_code simdjson_result::get(T &out) noexcept { if (error()) { return error(); } return first.get(out); } -template -simdjson_inline error_code simdjson_result::get(T &out) && noexcept { - if (error()) { return error(); } - return std::forward(first).get(out); -} -template<> simdjson_inline simdjson_result simdjson_result::get() & noexcept = delete; -template<> simdjson_deprecated simdjson_inline simdjson_result simdjson_result::get() && noexcept { - if (error()) { return error(); } - return std::forward(first); -} -template<> simdjson_inline error_code simdjson_result::get(lsx::ondemand::document &out) & noexcept = delete; -template<> simdjson_inline error_code simdjson_result::get(lsx::ondemand::document &out) && noexcept { +template<> simdjson_inline simdjson_result simdjson_result::get() noexcept { if (error()) { return error(); } - out = std::forward(first); - return SUCCESS; + return std::move(first); } -simdjson_inline simdjson_result simdjson_result::type() noexcept { +simdjson_inline simdjson_result simdjson_result::type() noexcept { if (error()) { return error(); } return first.type(); } - -simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { +simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { if (error()) { return error(); } return first.is_scalar(); } - -simdjson_inline simdjson_result simdjson_result::is_string() noexcept { +simdjson_inline simdjson_result simdjson_result::is_string() noexcept { if (error()) { return error(); } return first.is_string(); } - -simdjson_inline bool simdjson_result::is_negative() noexcept { +simdjson_inline simdjson_result simdjson_result::is_negative() noexcept { if (error()) { return error(); } return first.is_negative(); } - -simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { +simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { if (error()) { return error(); } return first.is_integer(); } - -simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { +simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { if (error()) { return error(); } return first.get_number_type(); } - -simdjson_inline simdjson_result simdjson_result::get_number() noexcept { +simdjson_inline simdjson_result simdjson_result::get_number() noexcept { if (error()) { return error(); } return first.get_number(); } - - #if SIMDJSON_EXCEPTIONS -template ::value == false>::type> -simdjson_inline simdjson_result::operator T() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator lsx::ondemand::array() & noexcept(false) { +template +simdjson_inline simdjson_result::operator T() noexcept(false) { if (error()) { throw simdjson_error(error()); } - return first; + return first.get(); } -simdjson_inline simdjson_result::operator lsx::ondemand::object() & noexcept(false) { +simdjson_inline simdjson_result::operator lsx::ondemand::array() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { +simdjson_inline simdjson_result::operator lsx::ondemand::object() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator int64_t() noexcept(false) { +simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator double() noexcept(false) { +simdjson_inline simdjson_result::operator int64_t() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { +simdjson_inline simdjson_result::operator double() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator lsx::ondemand::raw_json_string() noexcept(false) { +simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator bool() noexcept(false) { +simdjson_inline simdjson_result::operator lsx::ondemand::raw_json_string() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator lsx::ondemand::value() noexcept(false) { +simdjson_inline simdjson_result::operator bool() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } #endif - -simdjson_inline simdjson_result simdjson_result::current_location() noexcept { +simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { if (error()) { return error(); } - return first.current_location(); + return first.raw_json_token(); } -simdjson_inline bool simdjson_result::at_end() const noexcept { +simdjson_inline simdjson_result simdjson_result::raw_json() noexcept { if (error()) { return error(); } - return first.at_end(); + return first.raw_json(); } - -simdjson_inline int32_t simdjson_result::current_depth() const noexcept { +simdjson_inline simdjson_result simdjson_result::current_location() noexcept { if (error()) { return error(); } - return first.current_depth(); + return first.current_location(); } -simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { +simdjson_inline simdjson_result simdjson_result::current_depth() const noexcept { if (error()) { return error(); } - return first.raw_json_token(); + return first.current_depth(); } -simdjson_inline simdjson_result simdjson_result::at_pointer(std::string_view json_pointer) noexcept { - if (error()) { return error(); } +simdjson_inline simdjson_result simdjson_result::at_pointer( + std::string_view json_pointer) noexcept { + if (error()) { + return error(); + } return first.at_pointer(json_pointer); } -simdjson_inline simdjson_result simdjson_result::at_path(std::string_view json_path) noexcept { - if (error()) { return error(); } +simdjson_inline simdjson_result simdjson_result::at_path( + std::string_view json_path) noexcept { + if (error()) { + return error(); + } return first.at_path(json_path); } } // namespace simdjson +#endif // SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H +/* end file simdjson/generic/ondemand/value-inl.h for lsx */ +/* including simdjson/generic/ondemand/document-inl.h for lsx: #include "simdjson/generic/ondemand/document-inl.h" */ +/* begin file simdjson/generic/ondemand/document-inl.h for lsx */ +#ifndef SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H + +/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ +/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/deserialize.h" */ +/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ namespace simdjson { namespace lsx { namespace ondemand { -simdjson_inline document_reference::document_reference() noexcept : doc{nullptr} {} -simdjson_inline document_reference::document_reference(document &d) noexcept : doc(&d) {} -simdjson_inline void document_reference::rewind() noexcept { doc->rewind(); } -simdjson_inline simdjson_result document_reference::get_array() & noexcept { return doc->get_array(); } -simdjson_inline simdjson_result document_reference::get_object() & noexcept { return doc->get_object(); } -/** - * The document_reference instances are used primarily/solely for streams of JSON - * documents. - * We decided that calling 'get_double()' on the JSON document '1.233 blabla' should - * give an error, so we check for trailing content. - * - * However, for streams of JSON documents, we want to be able to start from - * "321" "321" "321" - * and parse it successfully as a stream of JSON documents, calling get_uint64_in_string() - * successfully each time. - * - * To achieve this result, we pass a 'false' to a get_root_value_iterator() method: - * this indicates that we allow trailing content. - */ -simdjson_inline simdjson_result document_reference::get_uint64() noexcept { return doc->get_root_value_iterator().get_root_uint64(false); } -simdjson_inline simdjson_result document_reference::get_uint64_in_string() noexcept { return doc->get_root_value_iterator().get_root_uint64_in_string(false); } -simdjson_inline simdjson_result document_reference::get_int64() noexcept { return doc->get_root_value_iterator().get_root_int64(false); } -simdjson_inline simdjson_result document_reference::get_int64_in_string() noexcept { return doc->get_root_value_iterator().get_root_int64_in_string(false); } -simdjson_inline simdjson_result document_reference::get_double() noexcept { return doc->get_root_value_iterator().get_root_double(false); } -simdjson_inline simdjson_result document_reference::get_double_in_string() noexcept { return doc->get_root_value_iterator().get_root_double(false); } -simdjson_inline simdjson_result document_reference::get_string(bool allow_replacement) noexcept { return doc->get_root_value_iterator().get_root_string(false, allow_replacement); } -template -simdjson_inline error_code document_reference::get_string(string_type& receiver, bool allow_replacement) noexcept { return doc->get_root_value_iterator().get_root_string(receiver, false, allow_replacement); } -simdjson_inline simdjson_result document_reference::get_wobbly_string() noexcept { return doc->get_root_value_iterator().get_root_wobbly_string(false); } -simdjson_inline simdjson_result document_reference::get_raw_json_string() noexcept { return doc->get_root_value_iterator().get_root_raw_json_string(false); } -simdjson_inline simdjson_result document_reference::get_bool() noexcept { return doc->get_root_value_iterator().get_root_bool(false); } -simdjson_inline simdjson_result document_reference::get_value() noexcept { return doc->get_value(); } -simdjson_inline simdjson_result document_reference::is_null() noexcept { return doc->get_root_value_iterator().is_root_null(false); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_array(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_object(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_raw_json_string(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_string(false); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_double(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_uint64(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_int64(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_bool(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_value(); } -#if SIMDJSON_EXCEPTIONS -template -simdjson_inline document_reference::operator T() noexcept(false) { return get(); } -simdjson_inline document_reference::operator array() & noexcept(false) { return array(*doc); } -simdjson_inline document_reference::operator object() & noexcept(false) { return object(*doc); } -simdjson_inline document_reference::operator uint64_t() noexcept(false) { return get_uint64(); } -simdjson_inline document_reference::operator int64_t() noexcept(false) { return get_int64(); } -simdjson_inline document_reference::operator double() noexcept(false) { return get_double(); } -simdjson_inline document_reference::operator std::string_view() noexcept(false) { return std::string_view(*doc); } -simdjson_inline document_reference::operator raw_json_string() noexcept(false) { return get_raw_json_string(); } -simdjson_inline document_reference::operator bool() noexcept(false) { return get_bool(); } -simdjson_inline document_reference::operator value() noexcept(false) { return value(*doc); } -#endif -simdjson_inline simdjson_result document_reference::count_elements() & noexcept { return doc->count_elements(); } -simdjson_inline simdjson_result document_reference::count_fields() & noexcept { return doc->count_fields(); } -simdjson_inline simdjson_result document_reference::at(size_t index) & noexcept { return doc->at(index); } -simdjson_inline simdjson_result document_reference::begin() & noexcept { return doc->begin(); } -simdjson_inline simdjson_result document_reference::end() & noexcept { return doc->end(); } -simdjson_inline simdjson_result document_reference::find_field(std::string_view key) & noexcept { return doc->find_field(key); } -simdjson_inline simdjson_result document_reference::find_field(const char *key) & noexcept { return doc->find_field(key); } -simdjson_inline simdjson_result document_reference::operator[](std::string_view key) & noexcept { return (*doc)[key]; } -simdjson_inline simdjson_result document_reference::operator[](const char *key) & noexcept { return (*doc)[key]; } -simdjson_inline simdjson_result document_reference::find_field_unordered(std::string_view key) & noexcept { return doc->find_field_unordered(key); } -simdjson_inline simdjson_result document_reference::find_field_unordered(const char *key) & noexcept { return doc->find_field_unordered(key); } -simdjson_inline simdjson_result document_reference::type() noexcept { return doc->type(); } -simdjson_inline simdjson_result document_reference::is_scalar() noexcept { return doc->is_scalar(); } -simdjson_inline simdjson_result document_reference::is_string() noexcept { return doc->is_string(); } -simdjson_inline simdjson_result document_reference::current_location() noexcept { return doc->current_location(); } -simdjson_inline int32_t document_reference::current_depth() const noexcept { return doc->current_depth(); } -simdjson_inline bool document_reference::is_negative() noexcept { return doc->is_negative(); } -simdjson_inline simdjson_result document_reference::is_integer() noexcept { return doc->get_root_value_iterator().is_root_integer(false); } -simdjson_inline simdjson_result document_reference::get_number_type() noexcept { return doc->get_root_value_iterator().get_root_number_type(false); } -simdjson_inline simdjson_result document_reference::get_number() noexcept { return doc->get_root_value_iterator().get_root_number(false); } -simdjson_inline simdjson_result document_reference::raw_json_token() noexcept { return doc->raw_json_token(); } -simdjson_inline simdjson_result document_reference::at_pointer(std::string_view json_pointer) noexcept { return doc->at_pointer(json_pointer); } -simdjson_inline simdjson_result document_reference::at_path(std::string_view json_path) noexcept { return doc->at_path(json_path); } -simdjson_inline simdjson_result document_reference::raw_json() noexcept { return doc->raw_json();} -simdjson_inline document_reference::operator document&() const noexcept { return *doc; } +simdjson_inline document::document(ondemand::json_iterator &&_iter) noexcept + : iter{std::forward(_iter)} +{ + logger::log_start_value(iter, "document"); +} -} // namespace ondemand -} // namespace lsx -} // namespace simdjson +simdjson_inline document document::start(json_iterator &&iter) noexcept { + return document(std::forward(iter)); +} +inline void document::rewind() noexcept { + iter.rewind(); +} +inline std::string document::to_debug_string() noexcept { + return iter.to_string(); +} -namespace simdjson { -simdjson_inline simdjson_result::simdjson_result(lsx::ondemand::document_reference value, error_code error) - noexcept : implementation_simdjson_result_base(std::forward(value), error) {} +inline simdjson_result document::current_location() const noexcept { + return iter.current_location(); +} +inline int32_t document::current_depth() const noexcept { + return iter.depth(); +} -simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { - if (error()) { return error(); } - return first.count_elements(); +inline bool document::at_end() const noexcept { + return iter.at_end(); } -simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { - if (error()) { return error(); } - return first.count_fields(); + + +inline bool document::is_alive() noexcept { + return iter.is_alive(); } -simdjson_inline simdjson_result simdjson_result::at(size_t index) & noexcept { - if (error()) { return error(); } - return first.at(index); +simdjson_inline value_iterator document::resume_value_iterator() noexcept { + return value_iterator(&iter, 1, iter.root_position()); } -simdjson_inline error_code simdjson_result::rewind() noexcept { - if (error()) { return error(); } - first.rewind(); - return SUCCESS; +simdjson_inline value_iterator document::get_root_value_iterator() noexcept { + return resume_value_iterator(); } -simdjson_inline simdjson_result simdjson_result::begin() & noexcept { - if (error()) { return error(); } - return first.begin(); +simdjson_inline simdjson_result document::start_or_resume_object() noexcept { + if (iter.at_root()) { + return get_object(); + } else { + return object::resume(resume_value_iterator()); + } } -simdjson_inline simdjson_result simdjson_result::end() & noexcept { - return {}; +simdjson_inline simdjson_result document::get_value() noexcept { + // Make sure we start any arrays or objects before returning, so that start_root_() + // gets called. + + // It is the convention throughout the code that the macro `SIMDJSON_DEVELOPMENT_CHECKS` determines whether + // we check for OUT_OF_ORDER_ITERATION. Proper on::demand code should never trigger this error. +#if SIMDJSON_DEVELOPMENT_CHECKS + if (!iter.at_root()) { return OUT_OF_ORDER_ITERATION; } +#endif + // assert_at_root() serves two purposes: in Debug mode, whether or not + // SIMDJSON_DEVELOPMENT_CHECKS is set or not, it checks that we are at the root of + // the document (this will typically be redundant). In release mode, it generates + // SIMDJSON_ASSUME statements to allow the compiler to make assumptions. + iter.assert_at_root(); + switch (*iter.peek()) { + case '[': { + // The following lines check that the document ends with ]. + auto value_iterator = get_root_value_iterator(); + auto error = value_iterator.check_root_array(); + if(error) { return error; } + return value(get_root_value_iterator()); + } + case '{': { + // The following lines would check that the document ends with }. + auto value_iterator = get_root_value_iterator(); + auto error = value_iterator.check_root_object(); + if(error) { return error; } + return value(get_root_value_iterator()); + } + default: + // Unfortunately, scalar documents are a special case in simdjson and they cannot + // be safely converted to value instances. + return SCALAR_DOCUMENT_AS_VALUE; + } } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) & noexcept { +simdjson_inline simdjson_result document::get_array() & noexcept { + auto value = get_root_value_iterator(); + return array::start_root(value); +} +simdjson_inline simdjson_result document::get_object() & noexcept { + auto value = get_root_value_iterator(); + return object::start_root(value); +} + +/** + * We decided that calling 'get_double()' on the JSON document '1.233 blabla' should + * give an error, so we check for trailing content. We want to disallow trailing + * content. + * Thus, in several implementations below, we pass a 'true' parameter value to + * a get_root_value_iterator() method: this indicates that we disallow trailing content. + */ + +simdjson_inline simdjson_result document::get_uint64() noexcept { + return get_root_value_iterator().get_root_uint64(true); +} +simdjson_inline simdjson_result document::get_uint64_in_string() noexcept { + return get_root_value_iterator().get_root_uint64_in_string(true); +} +simdjson_inline simdjson_result document::get_int64() noexcept { + return get_root_value_iterator().get_root_int64(true); +} +simdjson_inline simdjson_result document::get_int64_in_string() noexcept { + return get_root_value_iterator().get_root_int64_in_string(true); +} +simdjson_inline simdjson_result document::get_double() noexcept { + return get_root_value_iterator().get_root_double(true); +} +simdjson_inline simdjson_result document::get_double_in_string() noexcept { + return get_root_value_iterator().get_root_double_in_string(true); +} +simdjson_inline simdjson_result document::get_string(bool allow_replacement) noexcept { + return get_root_value_iterator().get_root_string(true, allow_replacement); +} +template +simdjson_inline error_code document::get_string(string_type& receiver, bool allow_replacement) noexcept { + return get_root_value_iterator().get_root_string(receiver, true, allow_replacement); +} +simdjson_inline simdjson_result document::get_wobbly_string() noexcept { + return get_root_value_iterator().get_root_wobbly_string(true); +} +simdjson_inline simdjson_result document::get_raw_json_string() noexcept { + return get_root_value_iterator().get_root_raw_json_string(true); +} +simdjson_inline simdjson_result document::get_bool() noexcept { + return get_root_value_iterator().get_root_bool(true); +} +simdjson_inline simdjson_result document::is_null() noexcept { + return get_root_value_iterator().is_root_null(true); +} + +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_array(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_object(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_raw_json_string(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_string(false); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_double(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_uint64(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_int64(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_bool(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_value(); } + +template<> simdjson_inline error_code document::get(array& out) & noexcept { return get_array().get(out); } +template<> simdjson_inline error_code document::get(object& out) & noexcept { return get_object().get(out); } +template<> simdjson_inline error_code document::get(raw_json_string& out) & noexcept { return get_raw_json_string().get(out); } +template<> simdjson_inline error_code document::get(std::string_view& out) & noexcept { return get_string(false).get(out); } +template<> simdjson_inline error_code document::get(double& out) & noexcept { return get_double().get(out); } +template<> simdjson_inline error_code document::get(uint64_t& out) & noexcept { return get_uint64().get(out); } +template<> simdjson_inline error_code document::get(int64_t& out) & noexcept { return get_int64().get(out); } +template<> simdjson_inline error_code document::get(bool& out) & noexcept { return get_bool().get(out); } +template<> simdjson_inline error_code document::get(value& out) & noexcept { return get_value().get(out); } + +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_raw_json_string(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_string(false); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_double(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_uint64(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_int64(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_bool(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_value(); } + +#if SIMDJSON_EXCEPTIONS +template +simdjson_deprecated simdjson_inline document::operator T() && noexcept(false) { return get(); } +template +simdjson_inline document::operator T() & noexcept(false) { return get(); } +simdjson_inline document::operator array() & noexcept(false) { return get_array(); } +simdjson_inline document::operator object() & noexcept(false) { return get_object(); } +simdjson_inline document::operator uint64_t() noexcept(false) { return get_uint64(); } +simdjson_inline document::operator int64_t() noexcept(false) { return get_int64(); } +simdjson_inline document::operator double() noexcept(false) { return get_double(); } +simdjson_inline document::operator std::string_view() noexcept(false) { return get_string(false); } +simdjson_inline document::operator raw_json_string() noexcept(false) { return get_raw_json_string(); } +simdjson_inline document::operator bool() noexcept(false) { return get_bool(); } +simdjson_inline document::operator value() noexcept(false) { return get_value(); } + +#endif +simdjson_inline simdjson_result document::count_elements() & noexcept { + auto a = get_array(); + simdjson_result answer = a.count_elements(); + /* If there was an array, we are now left pointing at its first element. */ + if(answer.error() == SUCCESS) { rewind(); } + return answer; +} +simdjson_inline simdjson_result document::count_fields() & noexcept { + auto a = get_object(); + simdjson_result answer = a.count_fields(); + /* If there was an object, we are now left pointing at its first element. */ + if(answer.error() == SUCCESS) { rewind(); } + return answer; +} +simdjson_inline simdjson_result document::at(size_t index) & noexcept { + auto a = get_array(); + return a.at(index); +} +simdjson_inline simdjson_result document::begin() & noexcept { + return get_array().begin(); +} +simdjson_inline simdjson_result document::end() & noexcept { + return {}; +} + +simdjson_inline simdjson_result document::find_field(std::string_view key) & noexcept { + return start_or_resume_object().find_field(key); +} +simdjson_inline simdjson_result document::find_field(const char *key) & noexcept { + return start_or_resume_object().find_field(key); +} +simdjson_inline simdjson_result document::find_field_unordered(std::string_view key) & noexcept { + return start_or_resume_object().find_field_unordered(key); +} +simdjson_inline simdjson_result document::find_field_unordered(const char *key) & noexcept { + return start_or_resume_object().find_field_unordered(key); +} +simdjson_inline simdjson_result document::operator[](std::string_view key) & noexcept { + return start_or_resume_object()[key]; +} +simdjson_inline simdjson_result document::operator[](const char *key) & noexcept { + return start_or_resume_object()[key]; +} + +simdjson_inline error_code document::consume() noexcept { + bool scalar = false; + auto error = is_scalar().get(scalar); + if(error) { return error; } + if(scalar) { + iter.return_current_and_advance(); + return SUCCESS; + } + error = iter.skip_child(0); + if(error) { iter.abandon(); } + return error; +} + +simdjson_inline simdjson_result document::raw_json() noexcept { + auto _iter = get_root_value_iterator(); + const uint8_t * starting_point{_iter.peek_start()}; + auto error = consume(); + if(error) { return error; } + // After 'consume()', we could be left pointing just beyond the document, but that + // is ok because we are not going to dereference the final pointer position, we just + // use it to compute the length in bytes. + const uint8_t * final_point{iter.unsafe_pointer()}; + return std::string_view(reinterpret_cast(starting_point), size_t(final_point - starting_point)); +} + +simdjson_inline simdjson_result document::type() noexcept { + return get_root_value_iterator().type(); +} + +simdjson_inline simdjson_result document::is_scalar() noexcept { + // For more speed, we could do: + // return iter.is_single_token(); + json_type this_type; + auto error = type().get(this_type); + if(error) { return error; } + return ! ((this_type == json_type::array) || (this_type == json_type::object)); +} + +simdjson_inline simdjson_result document::is_string() noexcept { + json_type this_type; + auto error = type().get(this_type); + if(error) { return error; } + return (this_type == json_type::string); +} + +simdjson_inline bool document::is_negative() noexcept { + return get_root_value_iterator().is_root_negative(); +} + +simdjson_inline simdjson_result document::is_integer() noexcept { + return get_root_value_iterator().is_root_integer(true); +} + +simdjson_inline simdjson_result document::get_number_type() noexcept { + return get_root_value_iterator().get_root_number_type(true); +} + +simdjson_inline simdjson_result document::get_number() noexcept { + return get_root_value_iterator().get_root_number(true); +} + + +simdjson_inline simdjson_result document::raw_json_token() noexcept { + auto _iter = get_root_value_iterator(); + return std::string_view(reinterpret_cast(_iter.peek_start()), _iter.peek_root_length()); +} + +simdjson_inline simdjson_result document::at_pointer(std::string_view json_pointer) noexcept { + rewind(); // Rewind the document each time at_pointer is called + if (json_pointer.empty()) { + return this->get_value(); + } + json_type t; + SIMDJSON_TRY(type().get(t)); + switch (t) + { + case json_type::array: + return (*this).get_array().at_pointer(json_pointer); + case json_type::object: + return (*this).get_object().at_pointer(json_pointer); + default: + return INVALID_JSON_POINTER; + } +} + +simdjson_inline simdjson_result document::at_path(std::string_view json_path) noexcept { + rewind(); // Rewind the document each time at_pointer is called + if (json_path.empty()) { + return this->get_value(); + } + json_type t; + SIMDJSON_TRY(type().get(t)); + switch (t) { + case json_type::array: + return (*this).get_array().at_path(json_path); + case json_type::object: + return (*this).get_object().at_path(json_path); + default: + return INVALID_JSON_POINTER; + } +} + +} // namespace ondemand +} // namespace lsx +} // namespace simdjson + +namespace simdjson { + +simdjson_inline simdjson_result::simdjson_result( + lsx::ondemand::document &&value +) noexcept : + implementation_simdjson_result_base( + std::forward(value) + ) +{ +} +simdjson_inline simdjson_result::simdjson_result( + error_code error +) noexcept : + implementation_simdjson_result_base( + error + ) +{ +} +simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { + if (error()) { return error(); } + return first.count_elements(); +} +simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { + if (error()) { return error(); } + return first.count_fields(); +} +simdjson_inline simdjson_result simdjson_result::at(size_t index) & noexcept { + if (error()) { return error(); } + return first.at(index); +} +simdjson_inline error_code simdjson_result::rewind() noexcept { + if (error()) { return error(); } + first.rewind(); + return SUCCESS; +} +simdjson_inline simdjson_result simdjson_result::begin() & noexcept { + if (error()) { return error(); } + return first.begin(); +} +simdjson_inline simdjson_result simdjson_result::end() & noexcept { + return {}; +} +simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) & noexcept { if (error()) { return error(); } return first.find_field_unordered(key); } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) & noexcept { if (error()) { return error(); } return first.find_field_unordered(key); } -simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) & noexcept { +simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) & noexcept { if (error()) { return error(); } return first[key]; } -simdjson_inline simdjson_result simdjson_result::operator[](const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::operator[](const char *key) & noexcept { if (error()) { return error(); } return first[key]; } -simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) & noexcept { if (error()) { return error(); } return first.find_field(key); } -simdjson_inline simdjson_result simdjson_result::find_field(const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field(const char *key) & noexcept { if (error()) { return error(); } return first.find_field(key); } -simdjson_inline simdjson_result simdjson_result::get_array() & noexcept { +simdjson_inline simdjson_result simdjson_result::get_array() & noexcept { if (error()) { return error(); } return first.get_array(); } -simdjson_inline simdjson_result simdjson_result::get_object() & noexcept { +simdjson_inline simdjson_result simdjson_result::get_object() & noexcept { if (error()) { return error(); } return first.get_object(); } -simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { +simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { if (error()) { return error(); } return first.get_uint64(); } -simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { if (error()) { return error(); } return first.get_uint64_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { +simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { if (error()) { return error(); } return first.get_int64(); } -simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { if (error()) { return error(); } return first.get_int64_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_double() noexcept { +simdjson_inline simdjson_result simdjson_result::get_double() noexcept { if (error()) { return error(); } return first.get_double(); } -simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { if (error()) { return error(); } return first.get_double_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { +simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { if (error()) { return error(); } return first.get_string(allow_replacement); } template -simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { +simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { if (error()) { return error(); } return first.get_string(receiver, allow_replacement); } -simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { if (error()) { return error(); } return first.get_wobbly_string(); } -simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { if (error()) { return error(); } return first.get_raw_json_string(); } -simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { +simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { if (error()) { return error(); } return first.get_bool(); } -simdjson_inline simdjson_result simdjson_result::get_value() noexcept { +simdjson_inline simdjson_result simdjson_result::get_value() noexcept { if (error()) { return error(); } return first.get_value(); } -simdjson_inline simdjson_result simdjson_result::is_null() noexcept { +simdjson_inline simdjson_result simdjson_result::is_null() noexcept { if (error()) { return error(); } return first.is_null(); } -simdjson_inline simdjson_result simdjson_result::type() noexcept { + +template +simdjson_inline simdjson_result simdjson_result::get() & noexcept { + if (error()) { return error(); } + return first.get(); +} +template +simdjson_deprecated simdjson_inline simdjson_result simdjson_result::get() && noexcept { + if (error()) { return error(); } + return std::forward(first).get(); +} +template +simdjson_inline error_code simdjson_result::get(T &out) & noexcept { + if (error()) { return error(); } + return first.get(out); +} +template +simdjson_inline error_code simdjson_result::get(T &out) && noexcept { + if (error()) { return error(); } + return std::forward(first).get(out); +} + +template<> simdjson_inline simdjson_result simdjson_result::get() & noexcept = delete; +template<> simdjson_deprecated simdjson_inline simdjson_result simdjson_result::get() && noexcept { + if (error()) { return error(); } + return std::forward(first); +} +template<> simdjson_inline error_code simdjson_result::get(lsx::ondemand::document &out) & noexcept = delete; +template<> simdjson_inline error_code simdjson_result::get(lsx::ondemand::document &out) && noexcept { + if (error()) { return error(); } + out = std::forward(first); + return SUCCESS; +} + +simdjson_inline simdjson_result simdjson_result::type() noexcept { if (error()) { return error(); } return first.type(); } -simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { + +simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { if (error()) { return error(); } return first.is_scalar(); } -simdjson_inline simdjson_result simdjson_result::is_string() noexcept { + +simdjson_inline simdjson_result simdjson_result::is_string() noexcept { if (error()) { return error(); } return first.is_string(); } -simdjson_inline simdjson_result simdjson_result::is_negative() noexcept { + +simdjson_inline bool simdjson_result::is_negative() noexcept { if (error()) { return error(); } return first.is_negative(); } -simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { + +simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { if (error()) { return error(); } return first.is_integer(); } -simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { + +simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { if (error()) { return error(); } return first.get_number_type(); } -simdjson_inline simdjson_result simdjson_result::get_number() noexcept { + +simdjson_inline simdjson_result simdjson_result::get_number() noexcept { if (error()) { return error(); } return first.get_number(); } + + #if SIMDJSON_EXCEPTIONS -template ::value == false>::type> -simdjson_inline simdjson_result::operator T() noexcept(false) { +template ::value == false>::type> +simdjson_inline simdjson_result::operator T() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator lsx::ondemand::array() & noexcept(false) { +simdjson_inline simdjson_result::operator lsx::ondemand::array() & noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator lsx::ondemand::object() & noexcept(false) { +simdjson_inline simdjson_result::operator lsx::ondemand::object() & noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { +simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator int64_t() noexcept(false) { +simdjson_inline simdjson_result::operator int64_t() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator double() noexcept(false) { +simdjson_inline simdjson_result::operator double() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { +simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator lsx::ondemand::raw_json_string() noexcept(false) { +simdjson_inline simdjson_result::operator lsx::ondemand::raw_json_string() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator bool() noexcept(false) { +simdjson_inline simdjson_result::operator bool() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator lsx::ondemand::value() noexcept(false) { +simdjson_inline simdjson_result::operator lsx::ondemand::value() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } #endif -simdjson_inline simdjson_result simdjson_result::current_location() noexcept { + +simdjson_inline simdjson_result simdjson_result::current_location() noexcept { if (error()) { return error(); } return first.current_location(); } -simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { +simdjson_inline bool simdjson_result::at_end() const noexcept { + if (error()) { return error(); } + return first.at_end(); +} + + +simdjson_inline int32_t simdjson_result::current_depth() const noexcept { + if (error()) { return error(); } + return first.current_depth(); +} + +simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { if (error()) { return error(); } return first.raw_json_token(); } -simdjson_inline simdjson_result simdjson_result::at_pointer(std::string_view json_pointer) noexcept { +simdjson_inline simdjson_result simdjson_result::at_pointer(std::string_view json_pointer) noexcept { if (error()) { return error(); } return first.at_pointer(json_pointer); } -simdjson_inline simdjson_result simdjson_result::at_path(std::string_view json_path) noexcept { - if (error()) { - return error(); - } +simdjson_inline simdjson_result simdjson_result::at_path(std::string_view json_path) noexcept { + if (error()) { return error(); } return first.at_path(json_path); } } // namespace simdjson -#endif // SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H -/* end file simdjson/generic/ondemand/document-inl.h for lsx */ -/* including simdjson/generic/ondemand/document_stream-inl.h for lsx: #include "simdjson/generic/ondemand/document_stream-inl.h" */ -/* begin file simdjson/generic/ondemand/document_stream-inl.h for lsx */ -#ifndef SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H - -/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ -/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document_stream.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/implementation_simdjson_result_base-inl.h" */ -/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ - -#include -#include namespace simdjson { namespace lsx { namespace ondemand { -#ifdef SIMDJSON_THREADS_ENABLED - -inline void stage1_worker::finish() { - // After calling "run" someone would call finish() to wait - // for the end of the processing. - // This function will wait until either the thread has done - // the processing or, else, the destructor has been called. - std::unique_lock lock(locking_mutex); - cond_var.wait(lock, [this]{return has_work == false;}); -} - -inline stage1_worker::~stage1_worker() { - // The thread may never outlive the stage1_worker instance - // and will always be stopped/joined before the stage1_worker - // instance is gone. - stop_thread(); -} - -inline void stage1_worker::start_thread() { - std::unique_lock lock(locking_mutex); - if(thread.joinable()) { - return; // This should never happen but we never want to create more than one thread. - } - thread = std::thread([this]{ - while(true) { - std::unique_lock thread_lock(locking_mutex); - // We wait for either "run" or "stop_thread" to be called. - cond_var.wait(thread_lock, [this]{return has_work || !can_work;}); - // If, for some reason, the stop_thread() method was called (i.e., the - // destructor of stage1_worker is called, then we want to immediately destroy - // the thread (and not do any more processing). - if(!can_work) { - break; - } - this->owner->stage1_thread_error = this->owner->run_stage1(*this->stage1_thread_parser, - this->_next_batch_start); - this->has_work = false; - // The condition variable call should be moved after thread_lock.unlock() for performance - // reasons but thread sanitizers may report it as a data race if we do. - // See https://stackoverflow.com/questions/35775501/c-should-condition-variable-be-notified-under-lock - cond_var.notify_one(); // will notify "finish" - thread_lock.unlock(); - } - } - ); -} - - -inline void stage1_worker::stop_thread() { - std::unique_lock lock(locking_mutex); - // We have to make sure that all locks can be released. - can_work = false; - has_work = false; - cond_var.notify_all(); - lock.unlock(); - if(thread.joinable()) { - thread.join(); - } -} - -inline void stage1_worker::run(document_stream * ds, parser * stage1, size_t next_batch_start) { - std::unique_lock lock(locking_mutex); - owner = ds; - _next_batch_start = next_batch_start; - stage1_thread_parser = stage1; - has_work = true; - // The condition variable call should be moved after thread_lock.unlock() for performance - // reasons but thread sanitizers may report it as a data race if we do. - // See https://stackoverflow.com/questions/35775501/c-should-condition-variable-be-notified-under-lock - cond_var.notify_one(); // will notify the thread lock that we have work - lock.unlock(); -} - -#endif // SIMDJSON_THREADS_ENABLED - -simdjson_inline document_stream::document_stream( - ondemand::parser &_parser, - const uint8_t *_buf, +simdjson_inline document_reference::document_reference() noexcept : doc{nullptr} {} +simdjson_inline document_reference::document_reference(document &d) noexcept : doc(&d) {} +simdjson_inline void document_reference::rewind() noexcept { doc->rewind(); } +simdjson_inline simdjson_result document_reference::get_array() & noexcept { return doc->get_array(); } +simdjson_inline simdjson_result document_reference::get_object() & noexcept { return doc->get_object(); } +/** + * The document_reference instances are used primarily/solely for streams of JSON + * documents. + * We decided that calling 'get_double()' on the JSON document '1.233 blabla' should + * give an error, so we check for trailing content. + * + * However, for streams of JSON documents, we want to be able to start from + * "321" "321" "321" + * and parse it successfully as a stream of JSON documents, calling get_uint64_in_string() + * successfully each time. + * + * To achieve this result, we pass a 'false' to a get_root_value_iterator() method: + * this indicates that we allow trailing content. + */ +simdjson_inline simdjson_result document_reference::get_uint64() noexcept { return doc->get_root_value_iterator().get_root_uint64(false); } +simdjson_inline simdjson_result document_reference::get_uint64_in_string() noexcept { return doc->get_root_value_iterator().get_root_uint64_in_string(false); } +simdjson_inline simdjson_result document_reference::get_int64() noexcept { return doc->get_root_value_iterator().get_root_int64(false); } +simdjson_inline simdjson_result document_reference::get_int64_in_string() noexcept { return doc->get_root_value_iterator().get_root_int64_in_string(false); } +simdjson_inline simdjson_result document_reference::get_double() noexcept { return doc->get_root_value_iterator().get_root_double(false); } +simdjson_inline simdjson_result document_reference::get_double_in_string() noexcept { return doc->get_root_value_iterator().get_root_double(false); } +simdjson_inline simdjson_result document_reference::get_string(bool allow_replacement) noexcept { return doc->get_root_value_iterator().get_root_string(false, allow_replacement); } +template +simdjson_inline error_code document_reference::get_string(string_type& receiver, bool allow_replacement) noexcept { return doc->get_root_value_iterator().get_root_string(receiver, false, allow_replacement); } +simdjson_inline simdjson_result document_reference::get_wobbly_string() noexcept { return doc->get_root_value_iterator().get_root_wobbly_string(false); } +simdjson_inline simdjson_result document_reference::get_raw_json_string() noexcept { return doc->get_root_value_iterator().get_root_raw_json_string(false); } +simdjson_inline simdjson_result document_reference::get_bool() noexcept { return doc->get_root_value_iterator().get_root_bool(false); } +simdjson_inline simdjson_result document_reference::get_value() noexcept { return doc->get_value(); } +simdjson_inline simdjson_result document_reference::is_null() noexcept { return doc->get_root_value_iterator().is_root_null(false); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_array(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_object(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_raw_json_string(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_string(false); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_double(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_uint64(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_int64(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_bool(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_value(); } +#if SIMDJSON_EXCEPTIONS +template +simdjson_inline document_reference::operator T() noexcept(false) { return get(); } +simdjson_inline document_reference::operator array() & noexcept(false) { return array(*doc); } +simdjson_inline document_reference::operator object() & noexcept(false) { return object(*doc); } +simdjson_inline document_reference::operator uint64_t() noexcept(false) { return get_uint64(); } +simdjson_inline document_reference::operator int64_t() noexcept(false) { return get_int64(); } +simdjson_inline document_reference::operator double() noexcept(false) { return get_double(); } +simdjson_inline document_reference::operator std::string_view() noexcept(false) { return std::string_view(*doc); } +simdjson_inline document_reference::operator raw_json_string() noexcept(false) { return get_raw_json_string(); } +simdjson_inline document_reference::operator bool() noexcept(false) { return get_bool(); } +simdjson_inline document_reference::operator value() noexcept(false) { return value(*doc); } +#endif +simdjson_inline simdjson_result document_reference::count_elements() & noexcept { return doc->count_elements(); } +simdjson_inline simdjson_result document_reference::count_fields() & noexcept { return doc->count_fields(); } +simdjson_inline simdjson_result document_reference::at(size_t index) & noexcept { return doc->at(index); } +simdjson_inline simdjson_result document_reference::begin() & noexcept { return doc->begin(); } +simdjson_inline simdjson_result document_reference::end() & noexcept { return doc->end(); } +simdjson_inline simdjson_result document_reference::find_field(std::string_view key) & noexcept { return doc->find_field(key); } +simdjson_inline simdjson_result document_reference::find_field(const char *key) & noexcept { return doc->find_field(key); } +simdjson_inline simdjson_result document_reference::operator[](std::string_view key) & noexcept { return (*doc)[key]; } +simdjson_inline simdjson_result document_reference::operator[](const char *key) & noexcept { return (*doc)[key]; } +simdjson_inline simdjson_result document_reference::find_field_unordered(std::string_view key) & noexcept { return doc->find_field_unordered(key); } +simdjson_inline simdjson_result document_reference::find_field_unordered(const char *key) & noexcept { return doc->find_field_unordered(key); } +simdjson_inline simdjson_result document_reference::type() noexcept { return doc->type(); } +simdjson_inline simdjson_result document_reference::is_scalar() noexcept { return doc->is_scalar(); } +simdjson_inline simdjson_result document_reference::is_string() noexcept { return doc->is_string(); } +simdjson_inline simdjson_result document_reference::current_location() noexcept { return doc->current_location(); } +simdjson_inline int32_t document_reference::current_depth() const noexcept { return doc->current_depth(); } +simdjson_inline bool document_reference::is_negative() noexcept { return doc->is_negative(); } +simdjson_inline simdjson_result document_reference::is_integer() noexcept { return doc->get_root_value_iterator().is_root_integer(false); } +simdjson_inline simdjson_result document_reference::get_number_type() noexcept { return doc->get_root_value_iterator().get_root_number_type(false); } +simdjson_inline simdjson_result document_reference::get_number() noexcept { return doc->get_root_value_iterator().get_root_number(false); } +simdjson_inline simdjson_result document_reference::raw_json_token() noexcept { return doc->raw_json_token(); } +simdjson_inline simdjson_result document_reference::at_pointer(std::string_view json_pointer) noexcept { return doc->at_pointer(json_pointer); } +simdjson_inline simdjson_result document_reference::at_path(std::string_view json_path) noexcept { return doc->at_path(json_path); } +simdjson_inline simdjson_result document_reference::raw_json() noexcept { return doc->raw_json();} +simdjson_inline document_reference::operator document&() const noexcept { return *doc; } + +} // namespace ondemand +} // namespace lsx +} // namespace simdjson + + + +namespace simdjson { +simdjson_inline simdjson_result::simdjson_result(lsx::ondemand::document_reference value, error_code error) + noexcept : implementation_simdjson_result_base(std::forward(value), error) {} + + +simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { + if (error()) { return error(); } + return first.count_elements(); +} +simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { + if (error()) { return error(); } + return first.count_fields(); +} +simdjson_inline simdjson_result simdjson_result::at(size_t index) & noexcept { + if (error()) { return error(); } + return first.at(index); +} +simdjson_inline error_code simdjson_result::rewind() noexcept { + if (error()) { return error(); } + first.rewind(); + return SUCCESS; +} +simdjson_inline simdjson_result simdjson_result::begin() & noexcept { + if (error()) { return error(); } + return first.begin(); +} +simdjson_inline simdjson_result simdjson_result::end() & noexcept { + return {}; +} +simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) & noexcept { + if (error()) { return error(); } + return first.find_field_unordered(key); +} +simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) & noexcept { + if (error()) { return error(); } + return first.find_field_unordered(key); +} +simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) & noexcept { + if (error()) { return error(); } + return first[key]; +} +simdjson_inline simdjson_result simdjson_result::operator[](const char *key) & noexcept { + if (error()) { return error(); } + return first[key]; +} +simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) & noexcept { + if (error()) { return error(); } + return first.find_field(key); +} +simdjson_inline simdjson_result simdjson_result::find_field(const char *key) & noexcept { + if (error()) { return error(); } + return first.find_field(key); +} +simdjson_inline simdjson_result simdjson_result::get_array() & noexcept { + if (error()) { return error(); } + return first.get_array(); +} +simdjson_inline simdjson_result simdjson_result::get_object() & noexcept { + if (error()) { return error(); } + return first.get_object(); +} +simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { + if (error()) { return error(); } + return first.get_uint64(); +} +simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { + if (error()) { return error(); } + return first.get_uint64_in_string(); +} +simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { + if (error()) { return error(); } + return first.get_int64(); +} +simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { + if (error()) { return error(); } + return first.get_int64_in_string(); +} +simdjson_inline simdjson_result simdjson_result::get_double() noexcept { + if (error()) { return error(); } + return first.get_double(); +} +simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { + if (error()) { return error(); } + return first.get_double_in_string(); +} +simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { + if (error()) { return error(); } + return first.get_string(allow_replacement); +} +template +simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { + if (error()) { return error(); } + return first.get_string(receiver, allow_replacement); +} +simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { + if (error()) { return error(); } + return first.get_wobbly_string(); +} +simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { + if (error()) { return error(); } + return first.get_raw_json_string(); +} +simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { + if (error()) { return error(); } + return first.get_bool(); +} +simdjson_inline simdjson_result simdjson_result::get_value() noexcept { + if (error()) { return error(); } + return first.get_value(); +} +simdjson_inline simdjson_result simdjson_result::is_null() noexcept { + if (error()) { return error(); } + return first.is_null(); +} +template +simdjson_inline simdjson_result simdjson_result::get() & noexcept { + if (error()) { return error(); } + return first.get(); +} +template +simdjson_inline simdjson_result simdjson_result::get() && noexcept { + if (error()) { return error(); } + return std::forward(first).get(); +} +template +simdjson_inline error_code simdjson_result::get(T &out) & noexcept { + if (error()) { return error(); } + return first.get(out); +} +template +simdjson_inline error_code simdjson_result::get(T &out) && noexcept { + if (error()) { return error(); } + return std::forward(first).get(out); +} +simdjson_inline simdjson_result simdjson_result::type() noexcept { + if (error()) { return error(); } + return first.type(); +} +simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { + if (error()) { return error(); } + return first.is_scalar(); +} +simdjson_inline simdjson_result simdjson_result::is_string() noexcept { + if (error()) { return error(); } + return first.is_string(); +} +template <> +simdjson_inline error_code simdjson_result::get(lsx::ondemand::document_reference &out) & noexcept { + if (error()) { return error(); } + out = first; + return SUCCESS; +} +template <> +simdjson_inline error_code simdjson_result::get(lsx::ondemand::document_reference &out) && noexcept { + if (error()) { return error(); } + out = first; + return SUCCESS; +} +simdjson_inline simdjson_result simdjson_result::is_negative() noexcept { + if (error()) { return error(); } + return first.is_negative(); +} +simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { + if (error()) { return error(); } + return first.is_integer(); +} +simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { + if (error()) { return error(); } + return first.get_number_type(); +} +simdjson_inline simdjson_result simdjson_result::get_number() noexcept { + if (error()) { return error(); } + return first.get_number(); +} +#if SIMDJSON_EXCEPTIONS +template +simdjson_inline simdjson_result::operator T() noexcept(false) { + static_assert(std::is_same::value == false, "You should not call get when T is a document"); + static_assert(std::is_same::value == false, "You should not call get when T is a document"); + if (error()) { throw simdjson_error(error()); } + return first.get(); +} +simdjson_inline simdjson_result::operator lsx::ondemand::array() & noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator lsx::ondemand::object() & noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator int64_t() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator double() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator lsx::ondemand::raw_json_string() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator bool() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator lsx::ondemand::value() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +#endif + +simdjson_inline simdjson_result simdjson_result::current_location() noexcept { + if (error()) { return error(); } + return first.current_location(); +} + +simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { + if (error()) { return error(); } + return first.raw_json_token(); +} + +simdjson_inline simdjson_result simdjson_result::at_pointer(std::string_view json_pointer) noexcept { + if (error()) { return error(); } + return first.at_pointer(json_pointer); +} + +simdjson_inline simdjson_result simdjson_result::at_path(std::string_view json_path) noexcept { + if (error()) { + return error(); + } + return first.at_path(json_path); +} + +} // namespace simdjson + +#endif // SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H +/* end file simdjson/generic/ondemand/document-inl.h for lsx */ +/* including simdjson/generic/ondemand/document_stream-inl.h for lsx: #include "simdjson/generic/ondemand/document_stream-inl.h" */ +/* begin file simdjson/generic/ondemand/document_stream-inl.h for lsx */ +#ifndef SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H + +/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ +/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document_stream.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/implementation_simdjson_result_base-inl.h" */ +/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ + +#include +#include + +namespace simdjson { +namespace lsx { +namespace ondemand { + +#ifdef SIMDJSON_THREADS_ENABLED + +inline void stage1_worker::finish() { + // After calling "run" someone would call finish() to wait + // for the end of the processing. + // This function will wait until either the thread has done + // the processing or, else, the destructor has been called. + std::unique_lock lock(locking_mutex); + cond_var.wait(lock, [this]{return has_work == false;}); +} + +inline stage1_worker::~stage1_worker() { + // The thread may never outlive the stage1_worker instance + // and will always be stopped/joined before the stage1_worker + // instance is gone. + stop_thread(); +} + +inline void stage1_worker::start_thread() { + std::unique_lock lock(locking_mutex); + if(thread.joinable()) { + return; // This should never happen but we never want to create more than one thread. + } + thread = std::thread([this]{ + while(true) { + std::unique_lock thread_lock(locking_mutex); + // We wait for either "run" or "stop_thread" to be called. + cond_var.wait(thread_lock, [this]{return has_work || !can_work;}); + // If, for some reason, the stop_thread() method was called (i.e., the + // destructor of stage1_worker is called, then we want to immediately destroy + // the thread (and not do any more processing). + if(!can_work) { + break; + } + this->owner->stage1_thread_error = this->owner->run_stage1(*this->stage1_thread_parser, + this->_next_batch_start); + this->has_work = false; + // The condition variable call should be moved after thread_lock.unlock() for performance + // reasons but thread sanitizers may report it as a data race if we do. + // See https://stackoverflow.com/questions/35775501/c-should-condition-variable-be-notified-under-lock + cond_var.notify_one(); // will notify "finish" + thread_lock.unlock(); + } + } + ); +} + + +inline void stage1_worker::stop_thread() { + std::unique_lock lock(locking_mutex); + // We have to make sure that all locks can be released. + can_work = false; + has_work = false; + cond_var.notify_all(); + lock.unlock(); + if(thread.joinable()) { + thread.join(); + } +} + +inline void stage1_worker::run(document_stream * ds, parser * stage1, size_t next_batch_start) { + std::unique_lock lock(locking_mutex); + owner = ds; + _next_batch_start = next_batch_start; + stage1_thread_parser = stage1; + has_work = true; + // The condition variable call should be moved after thread_lock.unlock() for performance + // reasons but thread sanitizers may report it as a data race if we do. + // See https://stackoverflow.com/questions/35775501/c-should-condition-variable-be-notified-under-lock + cond_var.notify_one(); // will notify the thread lock that we have work + lock.unlock(); +} + +#endif // SIMDJSON_THREADS_ENABLED + +simdjson_inline document_stream::document_stream( + ondemand::parser &_parser, + const uint8_t *_buf, size_t _len, size_t _batch_size, bool _allow_comma_separated @@ -103357,7 +107877,6 @@ simdjson_inline document_stream::iterator::iterator(document_stream* _stream, bo } simdjson_inline simdjson_result document_stream::iterator::operator*() noexcept { - //if(stream->error) { return stream->error; } return simdjson_result(stream->doc, stream->error); } @@ -105216,36 +109735,39 @@ simdjson_inline const char * raw_json_string::raw() const noexcept { return rein simdjson_inline bool raw_json_string::is_free_from_unescaped_quote(std::string_view target) noexcept { size_t pos{0}; - // if the content has no escape character, just scan through it quickly! - for(;pos < target.size() && target[pos] != '\\';pos++) {} - // slow path may begin. - bool escaping{false}; - for(;pos < target.size();pos++) { - if((target[pos] == '"') && !escaping) { - return false; - } else if(target[pos] == '\\') { - escaping = !escaping; - } else { - escaping = false; + while(pos < target.size()) { + pos = target.find('"', pos); + if(pos == std::string_view::npos) { return true; } + if(pos != 0 && target[pos-1] != '\\') { return false; } + if(pos > 1 && target[pos-2] == '\\') { + size_t backslash_count{2}; + for(size_t i = 3; i <= pos; i++) { + if(target[pos-i] == '\\') { backslash_count++; } + else { break; } + } + if(backslash_count % 2 == 0) { return false; } } + pos++; } return true; } simdjson_inline bool raw_json_string::is_free_from_unescaped_quote(const char* target) noexcept { size_t pos{0}; - // if the content has no escape character, just scan through it quickly! - for(;target[pos] && target[pos] != '\\';pos++) {} - // slow path may begin. - bool escaping{false}; - for(;target[pos];pos++) { - if((target[pos] == '"') && !escaping) { - return false; - } else if(target[pos] == '\\') { - escaping = !escaping; - } else { - escaping = false; + while(target[pos]) { + const char * result = strchr(target+pos, '"'); + if(result == nullptr) { return true; } + pos = result - target; + if(pos != 0 && target[pos-1] != '\\') { return false; } + if(pos > 1 && target[pos-2] == '\\') { + size_t backslash_count{2}; + for(size_t i = 3; i <= pos; i++) { + if(target[pos-i] == '\\') { backslash_count++; } + else { break; } + } + if(backslash_count % 2 == 0) { return false; } } + pos++; } return true; } @@ -105257,7 +109779,7 @@ simdjson_inline bool raw_json_string::unsafe_is_equal(size_t length, std::string } simdjson_inline bool raw_json_string::unsafe_is_equal(std::string_view target) const noexcept { - // Assumptions: does not contain unescaped quote characters, and + // Assumptions: does not contain unescaped quote characters("), and // the raw content is quote terminated within a valid JSON string. if(target.size() <= SIMDJSON_PADDING) { return (raw()[target.size()] == '"') && !memcmp(raw(), target.data(), target.size()); @@ -105731,775 +110253,230 @@ simdjson_inline simdjson_result::simdjson_result( #endif // SIMDJSON_GENERIC_ONDEMAND_TOKEN_ITERATOR_INL_H /* end file simdjson/generic/ondemand/token_iterator-inl.h for lsx */ -/* including simdjson/generic/ondemand/value-inl.h for lsx: #include "simdjson/generic/ondemand/value-inl.h" */ -/* begin file simdjson/generic/ondemand/value-inl.h for lsx */ -#ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H +/* including simdjson/generic/ondemand/value_iterator-inl.h for lsx: #include "simdjson/generic/ondemand/value_iterator-inl.h" */ +/* begin file simdjson/generic/ondemand/value_iterator-inl.h for lsx */ +#ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H /* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ -/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H */ +/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/atomparsing.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/numberparsing.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string-inl.h" */ /* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ namespace simdjson { namespace lsx { namespace ondemand { -simdjson_inline value::value(const value_iterator &_iter) noexcept - : iter{_iter} +simdjson_inline value_iterator::value_iterator( + json_iterator *json_iter, + depth_t depth, + token_position start_position +) noexcept : _json_iter{json_iter}, _depth{depth}, _start_position{start_position} { } -simdjson_inline value value::start(const value_iterator &iter) noexcept { - return iter; -} -simdjson_inline value value::resume(const value_iterator &iter) noexcept { - return iter; -} - -simdjson_inline simdjson_result value::get_array() noexcept { - return array::start(iter); -} -simdjson_inline simdjson_result value::get_object() noexcept { - return object::start(iter); -} -simdjson_inline simdjson_result value::start_or_resume_object() noexcept { - if (iter.at_start()) { - return get_object(); - } else { - return object::resume(iter); - } -} -simdjson_inline simdjson_result value::get_raw_json_string() noexcept { - return iter.get_raw_json_string(); -} -simdjson_inline simdjson_result value::get_string(bool allow_replacement) noexcept { - return iter.get_string(allow_replacement); -} -template -simdjson_inline error_code value::get_string(string_type& receiver, bool allow_replacement) noexcept { - return iter.get_string(receiver, allow_replacement); -} -simdjson_inline simdjson_result value::get_wobbly_string() noexcept { - return iter.get_wobbly_string(); -} -simdjson_inline simdjson_result value::get_double() noexcept { - return iter.get_double(); -} -simdjson_inline simdjson_result value::get_double_in_string() noexcept { - return iter.get_double_in_string(); -} -simdjson_inline simdjson_result value::get_uint64() noexcept { - return iter.get_uint64(); -} -simdjson_inline simdjson_result value::get_uint64_in_string() noexcept { - return iter.get_uint64_in_string(); -} -simdjson_inline simdjson_result value::get_int64() noexcept { - return iter.get_int64(); -} -simdjson_inline simdjson_result value::get_int64_in_string() noexcept { - return iter.get_int64_in_string(); -} -simdjson_inline simdjson_result value::get_bool() noexcept { - return iter.get_bool(); -} -simdjson_inline simdjson_result value::is_null() noexcept { - return iter.is_null(); +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::start_object() noexcept { + SIMDJSON_TRY( start_container('{', "Not an object", "object") ); + return started_object(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_array(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_object(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_raw_json_string(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_string(false); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_number(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_double(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_uint64(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_int64(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_bool(); } -template simdjson_inline error_code value::get(T &out) noexcept { - return get().get(out); +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::start_root_object() noexcept { + SIMDJSON_TRY( start_container('{', "Not an object", "object") ); + return started_root_object(); } -#if SIMDJSON_EXCEPTIONS -template -simdjson_inline value::operator T() noexcept(false) { - return get(); -} -simdjson_inline value::operator array() noexcept(false) { - return get_array(); -} -simdjson_inline value::operator object() noexcept(false) { - return get_object(); -} -simdjson_inline value::operator uint64_t() noexcept(false) { - return get_uint64(); -} -simdjson_inline value::operator int64_t() noexcept(false) { - return get_int64(); -} -simdjson_inline value::operator double() noexcept(false) { - return get_double(); -} -simdjson_inline value::operator std::string_view() noexcept(false) { - return get_string(false); -} -simdjson_inline value::operator raw_json_string() noexcept(false) { - return get_raw_json_string(); -} -simdjson_inline value::operator bool() noexcept(false) { - return get_bool(); -} +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::started_object() noexcept { + assert_at_container_start(); +#if SIMDJSON_DEVELOPMENT_CHECKS + _json_iter->set_start_position(_depth, start_position()); #endif - -simdjson_inline simdjson_result value::begin() & noexcept { - return get_array().begin(); -} -simdjson_inline simdjson_result value::end() & noexcept { - return {}; -} -simdjson_inline simdjson_result value::count_elements() & noexcept { - simdjson_result answer; - auto a = get_array(); - answer = a.count_elements(); - // count_elements leaves you pointing inside the array, at the first element. - // We need to move back so that the user can create a new array (which requires that - // we point at '['). - iter.move_at_start(); - return answer; -} -simdjson_inline simdjson_result value::count_fields() & noexcept { - simdjson_result answer; - auto a = get_object(); - answer = a.count_fields(); - iter.move_at_start(); - return answer; -} -simdjson_inline simdjson_result value::at(size_t index) noexcept { - auto a = get_array(); - return a.at(index); -} - -simdjson_inline simdjson_result value::find_field(std::string_view key) noexcept { - return start_or_resume_object().find_field(key); -} -simdjson_inline simdjson_result value::find_field(const char *key) noexcept { - return start_or_resume_object().find_field(key); -} - -simdjson_inline simdjson_result value::find_field_unordered(std::string_view key) noexcept { - return start_or_resume_object().find_field_unordered(key); -} -simdjson_inline simdjson_result value::find_field_unordered(const char *key) noexcept { - return start_or_resume_object().find_field_unordered(key); -} - -simdjson_inline simdjson_result value::operator[](std::string_view key) noexcept { - return start_or_resume_object()[key]; -} -simdjson_inline simdjson_result value::operator[](const char *key) noexcept { - return start_or_resume_object()[key]; -} - -simdjson_inline simdjson_result value::type() noexcept { - return iter.type(); + if (*_json_iter->peek() == '}') { + logger::log_value(*_json_iter, "empty object"); + _json_iter->return_current_and_advance(); + end_container(); + return false; + } + return true; } -simdjson_inline simdjson_result value::is_scalar() noexcept { - json_type this_type; - auto error = type().get(this_type); - if(error) { return error; } - return ! ((this_type == json_type::array) || (this_type == json_type::object)); +simdjson_warn_unused simdjson_inline error_code value_iterator::check_root_object() noexcept { + // When in streaming mode, we cannot expect peek_last() to be the last structural element of the + // current document. It only works in the normal mode where we have indexed a single document. + // Note that adding a check for 'streaming' is not expensive since we only have at most + // one root element. + if ( ! _json_iter->streaming() ) { + // The following lines do not fully protect against garbage content within the + // object: e.g., `{"a":2} foo }`. Users concerned with garbage content should + // call `at_end()` on the document instance at the end of the processing to + // ensure that the processing has finished at the end. + // + if (*_json_iter->peek_last() != '}') { + _json_iter->abandon(); + return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing } at end"); + } + // If the last character is } *and* the first gibberish character is also '}' + // then on-demand could accidentally go over. So we need additional checks. + // https://github.com/simdjson/simdjson/issues/1834 + // Checking that the document is balanced requires a full scan which is potentially + // expensive, but it only happens in edge cases where the first padding character is + // a closing bracket. + if ((*_json_iter->peek(_json_iter->end_position()) == '}') && (!_json_iter->balanced())) { + _json_iter->abandon(); + // The exact error would require more work. It will typically be an unclosed object. + return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "the document is unbalanced"); + } + } + return SUCCESS; } -simdjson_inline simdjson_result value::is_string() noexcept { - json_type this_type; - auto error = type().get(this_type); +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::started_root_object() noexcept { + auto error = check_root_object(); if(error) { return error; } - return (this_type == json_type::string); -} - - -simdjson_inline bool value::is_negative() noexcept { - return iter.is_negative(); + return started_object(); } -simdjson_inline simdjson_result value::is_integer() noexcept { - return iter.is_integer(); -} -simdjson_warn_unused simdjson_inline simdjson_result value::get_number_type() noexcept { - return iter.get_number_type(); -} -simdjson_warn_unused simdjson_inline simdjson_result value::get_number() noexcept { - return iter.get_number(); +simdjson_warn_unused simdjson_inline error_code value_iterator::end_container() noexcept { +#if SIMDJSON_CHECK_EOF + if (depth() > 1 && at_end()) { return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing parent ] or }"); } + // if (depth() <= 1 && !at_end()) { return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing [ or { at start"); } +#endif // SIMDJSON_CHECK_EOF + _json_iter->ascend_to(depth()-1); + return SUCCESS; } -simdjson_inline std::string_view value::raw_json_token() noexcept { - return std::string_view(reinterpret_cast(iter.peek_start()), iter.peek_start_length()); -} +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::has_next_field() noexcept { + assert_at_next(); -simdjson_inline simdjson_result value::raw_json() noexcept { - json_type t; - SIMDJSON_TRY(type().get(t)); - switch (t) - { - case json_type::array: { - ondemand::array array; - SIMDJSON_TRY(get_array().get(array)); - return array.raw_json(); - } - case json_type::object: { - ondemand::object object; - SIMDJSON_TRY(get_object().get(object)); - return object.raw_json(); - } + // It's illegal to call this unless there are more tokens: anything that ends in } or ] is + // obligated to verify there are more tokens if they are not the top level. + switch (*_json_iter->return_current_and_advance()) { + case '}': + logger::log_end_value(*_json_iter, "object"); + SIMDJSON_TRY( end_container() ); + return false; + case ',': + return true; default: - return raw_json_token(); + return report_error(TAPE_ERROR, "Missing comma between object fields"); } } -simdjson_inline simdjson_result value::current_location() noexcept { - return iter.json_iter().current_location(); -} - -simdjson_inline int32_t value::current_depth() const noexcept{ - return iter.json_iter().depth(); -} +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::find_field_raw(const std::string_view key) noexcept { + error_code error; + bool has_value; + // + // Initially, the object can be in one of a few different places: + // + // 1. The start of the object, at the first field: + // + // ``` + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 2, index 1) + // ``` + if (at_first_field()) { + has_value = true; -inline bool is_pointer_well_formed(std::string_view json_pointer) noexcept { - if (simdjson_unlikely(json_pointer.empty())) { // can't be - return false; - } - if (simdjson_unlikely(json_pointer[0] != '/')) { - return false; - } - size_t escape = json_pointer.find('~'); - if (escape == std::string_view::npos) { - return true; - } - if (escape == json_pointer.size() - 1) { - return false; - } - if (json_pointer[escape + 1] != '0' && json_pointer[escape + 1] != '1') { + // + // 2. When a previous search did not yield a value or the object is empty: + // + // ``` + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 0) + // { } + // ^ (depth 0, index 2) + // ``` + // + } else if (!is_open()) { +#if SIMDJSON_DEVELOPMENT_CHECKS + // If we're past the end of the object, we're being iterated out of order. + // Note: this is not perfect detection. It's possible the user is inside some other object; if so, + // this object iterator will blithely scan that object for fields. + if (_json_iter->depth() < depth() - 1) { return OUT_OF_ORDER_ITERATION; } +#endif return false; - } - return true; -} -simdjson_inline simdjson_result value::at_pointer(std::string_view json_pointer) noexcept { - json_type t; - SIMDJSON_TRY(type().get(t)); - switch (t) - { - case json_type::array: - return (*this).get_array().at_pointer(json_pointer); - case json_type::object: - return (*this).get_object().at_pointer(json_pointer); - default: - // a non-empty string can be invalid, or accessing a primitive (issue 2154) - if (is_pointer_well_formed(json_pointer)) { - return NO_SUCH_FIELD; - } - return INVALID_JSON_POINTER; + // 3. When a previous search found a field or an iterator yielded a value: + // + // ``` + // // When a field was not fully consumed (or not even touched at all) + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 2) + // // When a field was fully consumed + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 1) + // // When the last field was fully consumed + // { "a": [ 1, 2 ], "b": [ 3, 4 ] } + // ^ (depth 1) + // ``` + // + } else { + if ((error = skip_child() )) { abandon(); return error; } + if ((error = has_next_field().get(has_value) )) { abandon(); return error; } +#if SIMDJSON_DEVELOPMENT_CHECKS + if (_json_iter->start_position(_depth) != start_position()) { return OUT_OF_ORDER_ITERATION; } +#endif } -} + while (has_value) { + // Get the key and colon, stopping at the value. + raw_json_string actual_key; + // size_t max_key_length = _json_iter->peek_length() - 2; // -2 for the two quotes + // Note: _json_iter->peek_length() - 2 might overflow if _json_iter->peek_length() < 2. + // field_key() advances the pointer and checks that '"' is found (corresponding to a key). + // The depth is left unchanged by field_key(). + if ((error = field_key().get(actual_key) )) { abandon(); return error; }; + // field_value() will advance and check that we find a ':' separating the + // key and the value. It will also increment the depth by one. + if ((error = field_value() )) { abandon(); return error; } + // If it matches, stop and return + // We could do it this way if we wanted to allow arbitrary + // key content (including escaped quotes). + //if (actual_key.unsafe_is_equal(max_key_length, key)) { + // Instead we do the following which may trigger buffer overruns if the + // user provides an adversarial key (containing a well placed unescaped quote + // character and being longer than the number of bytes remaining in the JSON + // input). + if (actual_key.unsafe_is_equal(key)) { + logger::log_event(*this, "match", key, -2); + // If we return here, then we return while pointing at the ':' that we just checked. + return true; + } -simdjson_inline simdjson_result value::at_path(std::string_view json_path) noexcept { - json_type t; - SIMDJSON_TRY(type().get(t)); - switch (t) { - case json_type::array: - return (*this).get_array().at_path(json_path); - case json_type::object: - return (*this).get_object().at_path(json_path); - default: - return INVALID_JSON_POINTER; + // No match: skip the value and see if , or } is next + logger::log_event(*this, "no match", key, -2); + // The call to skip_child is meant to skip over the value corresponding to the key. + // After skip_child(), we are right before the next comma (',') or the final brace ('}'). + SIMDJSON_TRY( skip_child() ); // Skip the value entirely + // The has_next_field() advances the pointer and check that either ',' or '}' is found. + // It returns true if ',' is found, false otherwise. If anything other than ',' or '}' is found, + // then we are in error and we abort. + if ((error = has_next_field().get(has_value) )) { abandon(); return error; } } -} - -} // namespace ondemand -} // namespace lsx -} // namespace simdjson - -namespace simdjson { -simdjson_inline simdjson_result::simdjson_result( - lsx::ondemand::value &&value -) noexcept : - implementation_simdjson_result_base( - std::forward(value) - ) -{ -} -simdjson_inline simdjson_result::simdjson_result( - error_code error -) noexcept : - implementation_simdjson_result_base(error) -{ -} -simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { - if (error()) { return error(); } - return first.count_elements(); -} -simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { - if (error()) { return error(); } - return first.count_fields(); -} -simdjson_inline simdjson_result simdjson_result::at(size_t index) noexcept { - if (error()) { return error(); } - return first.at(index); -} -simdjson_inline simdjson_result simdjson_result::begin() & noexcept { - if (error()) { return error(); } - return first.begin(); -} -simdjson_inline simdjson_result simdjson_result::end() & noexcept { - if (error()) { return error(); } - return {}; + // If the loop ended, we're out of fields to look at. + return false; } -simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) noexcept { - if (error()) { return error(); } - return first.find_field(key); -} -simdjson_inline simdjson_result simdjson_result::find_field(const char *key) noexcept { - if (error()) { return error(); } - return first.find_field(key); -} +SIMDJSON_PUSH_DISABLE_WARNINGS +SIMDJSON_DISABLE_STRICT_OVERFLOW_WARNING +simdjson_warn_unused simdjson_inline simdjson_result value_iterator::find_field_unordered_raw(const std::string_view key) noexcept { + /** + * When find_field_unordered_raw is called, we can either be pointing at the + * first key, pointing outside (at the closing brace) or if a key was matched + * we can be either pointing right afterthe ':' right before the value (that we need skip), + * or we may have consumed the value and we might be at a comma or at the + * final brace (ready for a call to has_next_field()). + */ + error_code error; + bool has_value; -simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) noexcept { - if (error()) { return error(); } - return first.find_field_unordered(key); -} -simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) noexcept { - if (error()) { return error(); } - return first.find_field_unordered(key); -} - -simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) noexcept { - if (error()) { return error(); } - return first[key]; -} -simdjson_inline simdjson_result simdjson_result::operator[](const char *key) noexcept { - if (error()) { return error(); } - return first[key]; -} - -simdjson_inline simdjson_result simdjson_result::get_array() noexcept { - if (error()) { return error(); } - return first.get_array(); -} -simdjson_inline simdjson_result simdjson_result::get_object() noexcept { - if (error()) { return error(); } - return first.get_object(); -} -simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { - if (error()) { return error(); } - return first.get_uint64(); -} -simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { - if (error()) { return error(); } - return first.get_uint64_in_string(); -} -simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { - if (error()) { return error(); } - return first.get_int64(); -} -simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { - if (error()) { return error(); } - return first.get_int64_in_string(); -} -simdjson_inline simdjson_result simdjson_result::get_double() noexcept { - if (error()) { return error(); } - return first.get_double(); -} -simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { - if (error()) { return error(); } - return first.get_double_in_string(); -} -simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { - if (error()) { return error(); } - return first.get_string(allow_replacement); -} -template -simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { - if (error()) { return error(); } - return first.get_string(receiver, allow_replacement); -} -simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { - if (error()) { return error(); } - return first.get_wobbly_string(); -} -simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { - if (error()) { return error(); } - return first.get_raw_json_string(); -} -simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { - if (error()) { return error(); } - return first.get_bool(); -} -simdjson_inline simdjson_result simdjson_result::is_null() noexcept { - if (error()) { return error(); } - return first.is_null(); -} - -template simdjson_inline simdjson_result simdjson_result::get() noexcept { - if (error()) { return error(); } - return first.get(); -} -template simdjson_inline error_code simdjson_result::get(T &out) noexcept { - if (error()) { return error(); } - return first.get(out); -} - -template<> simdjson_inline simdjson_result simdjson_result::get() noexcept { - if (error()) { return error(); } - return std::move(first); -} -template<> simdjson_inline error_code simdjson_result::get(lsx::ondemand::value &out) noexcept { - if (error()) { return error(); } - out = first; - return SUCCESS; -} - -simdjson_inline simdjson_result simdjson_result::type() noexcept { - if (error()) { return error(); } - return first.type(); -} -simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { - if (error()) { return error(); } - return first.is_scalar(); -} -simdjson_inline simdjson_result simdjson_result::is_string() noexcept { - if (error()) { return error(); } - return first.is_string(); -} -simdjson_inline simdjson_result simdjson_result::is_negative() noexcept { - if (error()) { return error(); } - return first.is_negative(); -} -simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { - if (error()) { return error(); } - return first.is_integer(); -} -simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { - if (error()) { return error(); } - return first.get_number_type(); -} -simdjson_inline simdjson_result simdjson_result::get_number() noexcept { - if (error()) { return error(); } - return first.get_number(); -} -#if SIMDJSON_EXCEPTIONS -template -simdjson_inline simdjson_result::operator T() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return static_cast(first); -} -simdjson_inline simdjson_result::operator lsx::ondemand::array() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator lsx::ondemand::object() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator int64_t() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator double() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator lsx::ondemand::raw_json_string() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator bool() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -#endif - -simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { - if (error()) { return error(); } - return first.raw_json_token(); -} - -simdjson_inline simdjson_result simdjson_result::raw_json() noexcept { - if (error()) { return error(); } - return first.raw_json(); -} - -simdjson_inline simdjson_result simdjson_result::current_location() noexcept { - if (error()) { return error(); } - return first.current_location(); -} - -simdjson_inline simdjson_result simdjson_result::current_depth() const noexcept { - if (error()) { return error(); } - return first.current_depth(); -} - -simdjson_inline simdjson_result simdjson_result::at_pointer( - std::string_view json_pointer) noexcept { - if (error()) { - return error(); - } - return first.at_pointer(json_pointer); -} - -simdjson_inline simdjson_result simdjson_result::at_path( - std::string_view json_path) noexcept { - if (error()) { - return error(); - } - return first.at_path(json_path); -} - -} // namespace simdjson - -#endif // SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H -/* end file simdjson/generic/ondemand/value-inl.h for lsx */ -/* including simdjson/generic/ondemand/value_iterator-inl.h for lsx: #include "simdjson/generic/ondemand/value_iterator-inl.h" */ -/* begin file simdjson/generic/ondemand/value_iterator-inl.h for lsx */ -#ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H - -/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ -/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/atomparsing.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/numberparsing.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string-inl.h" */ -/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ - -namespace simdjson { -namespace lsx { -namespace ondemand { - -simdjson_inline value_iterator::value_iterator( - json_iterator *json_iter, - depth_t depth, - token_position start_position -) noexcept : _json_iter{json_iter}, _depth{depth}, _start_position{start_position} -{ -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::start_object() noexcept { - SIMDJSON_TRY( start_container('{', "Not an object", "object") ); - return started_object(); -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::start_root_object() noexcept { - SIMDJSON_TRY( start_container('{', "Not an object", "object") ); - return started_root_object(); -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::started_object() noexcept { - assert_at_container_start(); -#if SIMDJSON_DEVELOPMENT_CHECKS - _json_iter->set_start_position(_depth, start_position()); -#endif - if (*_json_iter->peek() == '}') { - logger::log_value(*_json_iter, "empty object"); - _json_iter->return_current_and_advance(); - end_container(); - return false; - } - return true; -} - -simdjson_warn_unused simdjson_inline error_code value_iterator::check_root_object() noexcept { - // When in streaming mode, we cannot expect peek_last() to be the last structural element of the - // current document. It only works in the normal mode where we have indexed a single document. - // Note that adding a check for 'streaming' is not expensive since we only have at most - // one root element. - if ( ! _json_iter->streaming() ) { - // The following lines do not fully protect against garbage content within the - // object: e.g., `{"a":2} foo }`. Users concerned with garbage content should - // call `at_end()` on the document instance at the end of the processing to - // ensure that the processing has finished at the end. - // - if (*_json_iter->peek_last() != '}') { - _json_iter->abandon(); - return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing } at end"); - } - // If the last character is } *and* the first gibberish character is also '}' - // then on-demand could accidentally go over. So we need additional checks. - // https://github.com/simdjson/simdjson/issues/1834 - // Checking that the document is balanced requires a full scan which is potentially - // expensive, but it only happens in edge cases where the first padding character is - // a closing bracket. - if ((*_json_iter->peek(_json_iter->end_position()) == '}') && (!_json_iter->balanced())) { - _json_iter->abandon(); - // The exact error would require more work. It will typically be an unclosed object. - return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "the document is unbalanced"); - } - } - return SUCCESS; -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::started_root_object() noexcept { - auto error = check_root_object(); - if(error) { return error; } - return started_object(); -} - -simdjson_warn_unused simdjson_inline error_code value_iterator::end_container() noexcept { -#if SIMDJSON_CHECK_EOF - if (depth() > 1 && at_end()) { return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing parent ] or }"); } - // if (depth() <= 1 && !at_end()) { return report_error(INCOMPLETE_ARRAY_OR_OBJECT, "missing [ or { at start"); } -#endif // SIMDJSON_CHECK_EOF - _json_iter->ascend_to(depth()-1); - return SUCCESS; -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::has_next_field() noexcept { - assert_at_next(); - - // It's illegal to call this unless there are more tokens: anything that ends in } or ] is - // obligated to verify there are more tokens if they are not the top level. - switch (*_json_iter->return_current_and_advance()) { - case '}': - logger::log_end_value(*_json_iter, "object"); - SIMDJSON_TRY( end_container() ); - return false; - case ',': - return true; - default: - return report_error(TAPE_ERROR, "Missing comma between object fields"); - } -} - -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::find_field_raw(const std::string_view key) noexcept { - error_code error; - bool has_value; - // - // Initially, the object can be in one of a few different places: - // - // 1. The start of the object, at the first field: - // - // ``` - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 2, index 1) - // ``` - if (at_first_field()) { - has_value = true; - - // - // 2. When a previous search did not yield a value or the object is empty: - // - // ``` - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 0) - // { } - // ^ (depth 0, index 2) - // ``` - // - } else if (!is_open()) { -#if SIMDJSON_DEVELOPMENT_CHECKS - // If we're past the end of the object, we're being iterated out of order. - // Note: this is not perfect detection. It's possible the user is inside some other object; if so, - // this object iterator will blithely scan that object for fields. - if (_json_iter->depth() < depth() - 1) { return OUT_OF_ORDER_ITERATION; } -#endif - return false; - - // 3. When a previous search found a field or an iterator yielded a value: - // - // ``` - // // When a field was not fully consumed (or not even touched at all) - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 2) - // // When a field was fully consumed - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 1) - // // When the last field was fully consumed - // { "a": [ 1, 2 ], "b": [ 3, 4 ] } - // ^ (depth 1) - // ``` - // - } else { - if ((error = skip_child() )) { abandon(); return error; } - if ((error = has_next_field().get(has_value) )) { abandon(); return error; } -#if SIMDJSON_DEVELOPMENT_CHECKS - if (_json_iter->start_position(_depth) != start_position()) { return OUT_OF_ORDER_ITERATION; } -#endif - } - while (has_value) { - // Get the key and colon, stopping at the value. - raw_json_string actual_key; - // size_t max_key_length = _json_iter->peek_length() - 2; // -2 for the two quotes - // Note: _json_iter->peek_length() - 2 might overflow if _json_iter->peek_length() < 2. - // field_key() advances the pointer and checks that '"' is found (corresponding to a key). - // The depth is left unchanged by field_key(). - if ((error = field_key().get(actual_key) )) { abandon(); return error; }; - // field_value() will advance and check that we find a ':' separating the - // key and the value. It will also increment the depth by one. - if ((error = field_value() )) { abandon(); return error; } - // If it matches, stop and return - // We could do it this way if we wanted to allow arbitrary - // key content (including escaped quotes). - //if (actual_key.unsafe_is_equal(max_key_length, key)) { - // Instead we do the following which may trigger buffer overruns if the - // user provides an adversarial key (containing a well placed unescaped quote - // character and being longer than the number of bytes remaining in the JSON - // input). - if (actual_key.unsafe_is_equal(key)) { - logger::log_event(*this, "match", key, -2); - // If we return here, then we return while pointing at the ':' that we just checked. - return true; - } - - // No match: skip the value and see if , or } is next - logger::log_event(*this, "no match", key, -2); - // The call to skip_child is meant to skip over the value corresponding to the key. - // After skip_child(), we are right before the next comma (',') or the final brace ('}'). - SIMDJSON_TRY( skip_child() ); // Skip the value entirely - // The has_next_field() advances the pointer and check that either ',' or '}' is found. - // It returns true if ',' is found, false otherwise. If anything other than ',' or '}' is found, - // then we are in error and we abort. - if ((error = has_next_field().get(has_value) )) { abandon(); return error; } - } - - // If the loop ended, we're out of fields to look at. - return false; -} - -SIMDJSON_PUSH_DISABLE_WARNINGS -SIMDJSON_DISABLE_STRICT_OVERFLOW_WARNING -simdjson_warn_unused simdjson_inline simdjson_result value_iterator::find_field_unordered_raw(const std::string_view key) noexcept { - /** - * When find_field_unordered_raw is called, we can either be pointing at the - * first key, pointing outside (at the closing brace) or if a key was matched - * we can be either pointing right afterthe ':' right before the value (that we need skip), - * or we may have consumed the value and we might be at a comma or at the - * final brace (ready for a call to has_next_field()). - */ - error_code error; - bool has_value; - - // First, we scan from that point to the end. - // If we don't find a match, we may loop back around, and scan from the beginning to that point. - token_position search_start = _json_iter->position(); + // First, we scan from that point to the end. + // If we don't find a match, we may loop back around, and scan from the beginning to that point. + token_position search_start = _json_iter->position(); // We want to know whether we need to go back to the beginning. bool at_first = at_first_field(); @@ -107079,6 +111056,8 @@ simdjson_inline simdjson_result value_iterator::is_root_null(bool check_tr if(result) { // we have something that looks like a null. if (check_trailing && !_json_iter->is_single_token()) { return TRAILING_CONTENT; } advance_root_scalar("null"); + } else if (json[0] == 'n') { + return incorrect_type_error("Not a null but starts with n"); } return result; } @@ -107370,6 +111349,8 @@ simdjson_inline simdjson_result::simdjson_result( #endif // SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H /* end file simdjson/generic/ondemand/value_iterator-inl.h for lsx */ + + /* end file simdjson/generic/ondemand/amalgamated.h for lsx */ /* including simdjson/lsx/end.h: #include "simdjson/lsx/end.h" */ /* begin file simdjson/lsx/end.h */ @@ -107567,7 +111548,13 @@ simdjson_inline internal::value128 full_multiplication(uint64_t value1, uint64_t } // namespace lasx } // namespace simdjson +#ifndef SIMDJSON_SWAR_NUMBER_PARSING +#if SIMDJSON_IS_BIG_ENDIAN +#define SIMDJSON_SWAR_NUMBER_PARSING 0 +#else #define SIMDJSON_SWAR_NUMBER_PARSING 1 +#endif +#endif #endif // SIMDJSON_LASX_NUMBERPARSING_DEFS_H /* end file simdjson/lasx/numberparsing_defs.h */ @@ -108060,6 +112047,132 @@ class value_iterator; #endif // SIMDJSON_GENERIC_ONDEMAND_BASE_H /* end file simdjson/generic/ondemand/base.h for lasx */ +/* including simdjson/generic/ondemand/deserialize.h for lasx: #include "simdjson/generic/ondemand/deserialize.h" */ +/* begin file simdjson/generic/ondemand/deserialize.h for lasx */ +#if SIMDJSON_SUPPORTS_DESERIALIZATION + +#ifndef SIMDJSON_ONDEMAND_DESERIALIZE_H +/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ +/* amalgamation skipped (editor-only): #define SIMDJSON_ONDEMAND_DESERIALIZE_H */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array.h" */ +/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ + +#include +namespace simdjson { + +namespace tag_invoke_fn_ns { +void tag_invoke(); + +struct tag_invoke_fn { + template + requires requires(Tag tag, Args &&...args) { + tag_invoke(std::forward(tag), std::forward(args)...); + } + constexpr auto operator()(Tag tag, Args &&...args) const + noexcept(noexcept(tag_invoke(std::forward(tag), + std::forward(args)...))) + -> decltype(tag_invoke(std::forward(tag), + std::forward(args)...)) { + return tag_invoke(std::forward(tag), std::forward(args)...); + } +}; +} // namespace tag_invoke_fn_ns + +inline namespace tag_invoke_ns { +inline constexpr tag_invoke_fn_ns::tag_invoke_fn tag_invoke = {}; +} // namespace tag_invoke_ns + +template +concept tag_invocable = requires(Tag tag, Args... args) { + tag_invoke(std::forward(tag), std::forward(args)...); +}; + +template +concept nothrow_tag_invocable = + tag_invocable && requires(Tag tag, Args... args) { + { + tag_invoke(std::forward(tag), std::forward(args)...) + } noexcept; + }; + +template +using tag_invoke_result = + std::invoke_result; + +template +using tag_invoke_result_t = + std::invoke_result_t; + +template using tag_t = std::decay_t; + + +struct deserialize_tag; + +/// These types are deserializable in a built-in way +template struct is_builtin_deserializable : std::false_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; +template <> struct is_builtin_deserializable : std::true_type {}; + +template +concept is_builtin_deserializable_v = is_builtin_deserializable::value; + +template +concept custom_deserializable = tag_invocable; + +template +concept deserializable = custom_deserializable || is_builtin_deserializable_v; + +template +concept nothrow_custom_deserializable = nothrow_tag_invocable; + +// built-in types are noexcept and if an error happens, the value simply gets ignored and the error is returned. +template +concept nothrow_deserializable = nothrow_custom_deserializable || is_builtin_deserializable_v; + +/// Deserialize Tag +inline constexpr struct deserialize_tag { + using value_type = lasx::ondemand::value; + using document_type = lasx::ondemand::document; + using document_reference_type = lasx::ondemand::document_reference; + + // Customization Point for value + template + requires custom_deserializable + [[nodiscard]] constexpr /* error_code */ auto operator()(value_type &object, T& output) const noexcept(nothrow_custom_deserializable) { + return tag_invoke(*this, object, output); + } + + // Customization Point for document + template + requires custom_deserializable + [[nodiscard]] constexpr /* error_code */ auto operator()(document_type &object, T& output) const noexcept(nothrow_custom_deserializable) { + return tag_invoke(*this, object, output); + } + + // Customization Point for document reference + template + requires custom_deserializable + [[nodiscard]] constexpr /* error_code */ auto operator()(document_reference_type &object, T& output) const noexcept(nothrow_custom_deserializable) { + return tag_invoke(*this, object, output); + } + + +} deserialize{}; + +} // namespace simdjson + +#endif // SIMDJSON_ONDEMAND_DESERIALIZE_H +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION + +/* end file simdjson/generic/ondemand/deserialize.h for lasx */ /* including simdjson/generic/ondemand/value_iterator.h for lasx: #include "simdjson/generic/ondemand/value_iterator.h" */ /* begin file simdjson/generic/ondemand/value_iterator.h for lasx */ #ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_H @@ -108564,12 +112677,15 @@ struct simdjson_result : public lasx::implementa /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/implementation_simdjson_result_base.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/deserialize.h" */ /* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ +#include + namespace simdjson { + namespace lasx { namespace ondemand { - /** * An ephemeral JSON value returned during iteration. It is only valid for as long as you do * not access more data in the JSON document. @@ -108594,16 +112710,21 @@ class value { * @returns A value of the given type, parsed from the JSON. * @returns INCORRECT_TYPE If the JSON value is not the given type. */ - template simdjson_inline simdjson_result get() noexcept { - // Unless the simdjson library or the user provides an inline implementation, calling this method should - // immediately fail. - static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " - "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " - "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " - " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." - " You may also add support for custom types, see our documentation."); + template + simdjson_inline simdjson_result get() +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(std::is_default_constructible::value, "The specified type is not default constructible."); + T out{}; + SIMDJSON_TRY(get(out)); + return out; } + /** * Get this value as the given type. * @@ -108613,7 +112734,32 @@ class value { * @returns INCORRECT_TYPE If the JSON value is not an object. * @returns SUCCESS If the parse succeeded and the out parameter was set to the value. */ - template simdjson_inline error_code get(T &out) noexcept; + template + simdjson_inline error_code get(T &out) +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { +#if SIMDJSON_SUPPORTS_DESERIALIZATION + if constexpr (custom_deserializable) { + return deserialize(*this, out); + } else { +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION + // Unless the simdjson library or the user provides an inline implementation, calling this method should + // immediately fail. + static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " + "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " + "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " + " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." + " You may also add support for custom types, see our documentation."); + static_cast(out); // to get rid of unused errors + return UNINITIALIZED; +#if SIMDJSON_SUPPORTS_DESERIALIZATION + } +#endif + } /** * Cast this JSON value to an array. @@ -108689,6 +112835,17 @@ class value { * Important: a value should be consumed once. Calling get_string() twice on the same value * is an error. * + * In some instances, you may want to allow replacement of invalid Unicode sequences. + * You may do so by passing the allow_replacement parameter as true. In the following + * example, the string "431924697b\udff0L\u0001Y" is not valid Unicode. By passing true + * to get_string, we allow the replacement of the invalid Unicode sequences with the Unicode + * replacement character (U+FFFD). + * + * simdjson::ondemand::parser parser; + * auto json = R"({"deviceId":"431924697b\udff0L\u0001Y"})"_padded; + * simdjson::ondemand::document doc = parser.iterate(json); + * auto view = doc["deviceId"].get_string(true); + * * @returns An UTF-8 string. The string is stored in the parser and will be invalidated the next * time it parses a document or when it is destroyed. * @returns INCORRECT_TYPE if the JSON value is not a string. @@ -108940,6 +113097,7 @@ class value { simdjson_inline simdjson_result operator[](std::string_view key) noexcept; /** @overload simdjson_inline simdjson_result find_field_unordered(std::string_view key) noexcept; */ simdjson_inline simdjson_result operator[](const char *key) noexcept; + simdjson_result operator[](int) noexcept = delete; /** * Get the type of this JSON value. It does not validate or consume the value. @@ -109307,6 +113465,7 @@ struct simdjson_result : public lasx::implementation_simd simdjson_inline simdjson_result operator[](std::string_view key) noexcept; /** @overload simdjson_inline simdjson_result find_field_unordered(std::string_view key) noexcept; */ simdjson_inline simdjson_result operator[](const char *key) noexcept; + simdjson_result operator[](int) noexcept = delete; /** * Get the type of this JSON value. @@ -110362,6 +114521,22 @@ class parser { * using a sanitizer that verifies that no uninitialized byte is read, then you should initialize the * SIMDJSON_PADDING bytes to avoid runtime warnings. * + * ### std::string references + * + * If you pass a mutable std::string reference (std::string&), the parser will seek to extend + * its capacity to SIMDJSON_PADDING bytes beyond the end of the string. + * + * Whenever you pass an std::string reference, the parser will access the bytes beyond the end of + * the string but before the end of the allocated memory (std::string::capacity()). + * If you are using a sanitizer that checks for reading uninitialized bytes or std::string's + * container-overflow checks, you may encounter sanitizer warnings. + * You can safely ignore these warnings. Or you can call simdjson::pad(std::string&) to pad the + * string with SIMDJSON_PADDING spaces: this function returns a simdjson::padding_string_view + * which can be be passed to the parser's iterate function: + * + * std::string json = R"({ "foo": 1 } { "foo": 2 } { "foo": 3 } )"; + * document doc = parser.iterate(simdjson::pad(json)); + * * @param json The JSON to parse. * @param len The length of the JSON. * @param capacity The number of bytes allocated in the JSON (must be at least len+SIMDJSON_PADDING). @@ -110556,8 +114731,12 @@ class parser { * behavior of the parser for future operations. */ bool threaded{true}; + #else + /** + * When SIMDJSON_THREADS_ENABLED is not defined, the parser instance cannot use threads. + */ + bool threaded{false}; #endif - /** * Unescape this JSON string, replacing \\ with \, \n with newline, etc. to a user-provided buffer. * The result must be valid UTF-8. @@ -110699,7 +114878,8 @@ class array { * calling this function, if successful, the array is 'rewinded' at its * beginning as if it had never been accessed. If the JSON is malformed (e.g., * there is a missing comma), then an error is returned and it is no longer - * safe to continue. + * safe to continue. Note that count_elements() does not validate the JSON values, + * only the structure of the array. * * To check that an array is empty, it is more performant to use * the is_empty() method. @@ -110977,8 +115157,11 @@ struct simdjson_result : public lasx::implementa /* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_H */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/deserialize.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ /* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ + namespace simdjson { namespace lasx { namespace ondemand { @@ -111151,24 +115334,39 @@ class document { * @returns A value of the given type, parsed from the JSON. * @returns INCORRECT_TYPE If the JSON value is not the given type. */ - template simdjson_inline simdjson_result get() & noexcept { - // Unless the simdjson library or the user provides an inline implementation, calling this method should - // immediately fail. - static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " - "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " - "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " - " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." - " You may also add support for custom types, see our documentation."); - } - /** @overload template simdjson_result get() & noexcept */ - template simdjson_deprecated simdjson_inline simdjson_result get() && noexcept { - // Unless the simdjson library or the user provides an inline implementation, calling this method should - // immediately fail. - static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " - "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " - "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " - " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." - " You may also add support for custom types, see our documentation."); + template + simdjson_inline simdjson_result get() & +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(std::is_default_constructible::value, "Cannot initialize the specified type."); + T out{}; + SIMDJSON_TRY(get(out)); + return out; + } + /** + * @overload template simdjson_result get() & noexcept + * + * We disallow the use tag_invoke CPO on a moved document; it may create UB + * if user uses `ondemand::array` or `ondemand::object` in their custom type. + * + * The member function is still remains specialize-able for compatibility + * reasons, but we completely disallow its use when a tag_invoke customization + * is provided. + */ + template + simdjson_inline simdjson_result get() && +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(!std::is_same::value && !std::is_same::value, "You should never hold either an ondemand::array or ondemand::object without a corresponding ondemand::document being alive; that would be Undefined Behaviour."); + return static_cast(*this).get(); } /** @@ -111182,7 +115380,32 @@ class document { * @returns INCORRECT_TYPE If the JSON value is not an object. * @returns SUCCESS If the parse succeeded and the out parameter was set to the value. */ - template simdjson_inline error_code get(T &out) & noexcept; + template + simdjson_inline error_code get(T &out) & +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { +#if SIMDJSON_SUPPORTS_DESERIALIZATION + if constexpr (custom_deserializable) { + return deserialize(*this, out); + } else { +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION + // Unless the simdjson library or the user provides an inline implementation, calling this method should + // immediately fail. + static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " + "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " + "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " + " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." + " You may also add support for custom types, see our documentation."); + static_cast(out); // to get rid of unused errors + return UNINITIALIZED; +#if SIMDJSON_SUPPORTS_DESERIALIZATION + } +#endif + } /** @overload template error_code get(T &out) & noexcept */ template simdjson_deprecated simdjson_inline error_code get(T &out) && noexcept; @@ -111284,7 +115507,8 @@ class document { * calling this function, if successful, the array is 'rewinded' at its * beginning as if it had never been accessed. If the JSON is malformed (e.g., * there is a missing comma), then an error is returned and it is no longer - * safe to continue. + * safe to continue. Note that count_elements() does not validate the JSON values, + * only the structure of the array. */ simdjson_inline simdjson_result count_elements() & noexcept; /** @@ -111396,6 +115620,7 @@ class document { simdjson_inline simdjson_result operator[](std::string_view key) & noexcept; /** @overload simdjson_inline simdjson_result find_field_unordered(std::string_view key) & noexcept; */ simdjson_inline simdjson_result operator[](const char *key) & noexcept; + simdjson_result operator[](int) & noexcept = delete; /** * Get the type of this JSON value. It does not validate or consume the value. @@ -111664,6 +115889,11 @@ class document { /** * A document_reference is a thin wrapper around a document reference instance. + * The document_reference instances are used primarily/solely for streams of JSON + * documents. They differ from document instances when parsing a scalar value + * (a document that is not an array or an object). In the case of a document, + * we expect the document to be fully consumed. In the case of a document_reference, + * we allow trailing content. */ class document_reference { public: @@ -111689,7 +115919,70 @@ class document_reference { simdjson_inline simdjson_result get_value() noexcept; simdjson_inline simdjson_result is_null() noexcept; - template simdjson_inline simdjson_result get() & noexcept; + template + simdjson_inline simdjson_result get() & +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(std::is_default_constructible::value, "Cannot initialize the specified type."); + T out{}; + SIMDJSON_TRY(get(out)); + return out; + } + template + simdjson_inline simdjson_result get() && +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { + static_assert(!std::is_same::value && !std::is_same::value, "You should never hold either an ondemand::array or ondemand::object without a corresponding ondemand::document_reference being alive; that would be Undefined Behaviour."); + return static_cast(*this).get(); + } + + /** + * Get this value as the given type. + * + * Supported types: object, array, raw_json_string, string_view, uint64_t, int64_t, double, bool, value + * + * Be mindful that the document instance must remain in scope while you are accessing object, array and value instances. + * + * @param out This is set to a value of the given type, parsed from the JSON. If there is an error, this may not be initialized. + * @returns INCORRECT_TYPE If the JSON value is not an object. + * @returns SUCCESS If the parse succeeded and the out parameter was set to the value. + */ + template + simdjson_inline error_code get(T &out) & +#if SIMDJSON_SUPPORTS_DESERIALIZATION + noexcept(custom_deserializable ? nothrow_custom_deserializable : true) +#else + noexcept +#endif + { +#if SIMDJSON_SUPPORTS_DESERIALIZATION + if constexpr (custom_deserializable) { + return deserialize(*this, out); + } else { +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION + // Unless the simdjson library or the user provides an inline implementation, calling this method should + // immediately fail. + static_assert(!sizeof(T), "The get method with given type is not implemented by the simdjson library. " + "The supported types are ondemand::object, ondemand::array, raw_json_string, std::string_view, uint64_t, " + "int64_t, double, and bool. We recommend you use get_double(), get_bool(), get_uint64(), get_int64(), " + " get_object(), get_array(), get_raw_json_string(), or get_string() instead of the get template." + " You may also add support for custom types, see our documentation."); + static_cast(out); // to get rid of unused errors + return UNINITIALIZED; +#if SIMDJSON_SUPPORTS_DESERIALIZATION + } +#endif + } + /** @overload template error_code get(T &out) & noexcept */ + template simdjson_inline error_code get(T &out) && noexcept; simdjson_inline simdjson_result raw_json() noexcept; simdjson_inline operator document&() const noexcept; #if SIMDJSON_EXCEPTIONS @@ -111714,6 +116007,7 @@ class document_reference { simdjson_inline simdjson_result find_field(const char *key) & noexcept; simdjson_inline simdjson_result operator[](std::string_view key) & noexcept; simdjson_inline simdjson_result operator[](const char *key) & noexcept; + simdjson_result operator[](int) & noexcept = delete; simdjson_inline simdjson_result find_field_unordered(std::string_view key) & noexcept; simdjson_inline simdjson_result find_field_unordered(const char *key) & noexcept; @@ -111792,6 +116086,7 @@ struct simdjson_result : public lasx::implementation_s simdjson_inline simdjson_result find_field(const char *key) & noexcept; simdjson_inline simdjson_result operator[](std::string_view key) & noexcept; simdjson_inline simdjson_result operator[](const char *key) & noexcept; + simdjson_result operator[](int) & noexcept = delete; simdjson_inline simdjson_result find_field_unordered(std::string_view key) & noexcept; simdjson_inline simdjson_result find_field_unordered(const char *key) & noexcept; simdjson_inline simdjson_result type() noexcept; @@ -111841,8 +116136,14 @@ struct simdjson_result : public lasx::implem simdjson_inline simdjson_result get_bool() noexcept; simdjson_inline simdjson_result get_value() noexcept; simdjson_inline simdjson_result is_null() noexcept; + + template simdjson_inline simdjson_result get() & noexcept; + template simdjson_inline simdjson_result get() && noexcept; + + template simdjson_inline error_code get(T &out) & noexcept; + template simdjson_inline error_code get(T &out) && noexcept; #if SIMDJSON_EXCEPTIONS - template ::value == false>::type> + template explicit simdjson_inline operator T() noexcept(false); simdjson_inline operator lasx::ondemand::array() & noexcept(false); simdjson_inline operator lasx::ondemand::object() & noexcept(false); @@ -111863,6 +116164,7 @@ struct simdjson_result : public lasx::implem simdjson_inline simdjson_result find_field(const char *key) & noexcept; simdjson_inline simdjson_result operator[](std::string_view key) & noexcept; simdjson_inline simdjson_result operator[](const char *key) & noexcept; + simdjson_result operator[](int) & noexcept = delete; simdjson_inline simdjson_result find_field_unordered(std::string_view key) & noexcept; simdjson_inline simdjson_result find_field_unordered(const char *key) & noexcept; simdjson_inline simdjson_result type() noexcept; @@ -112793,6 +117095,177 @@ inline std::ostream& operator<<(std::ostream& out, simdjson::simdjson_result +#include + +namespace simdjson { +template +constexpr bool require_custom_serialization = false; + +////////////////////////////// +// Number deserialization +////////////////////////////// + +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, auto &val, T &out) noexcept { + using limits = std::numeric_limits; + + uint64_t x; + SIMDJSON_TRY(val.get_uint64().get(x)); + if (x > (limits::max)()) { + return NUMBER_OUT_OF_RANGE; + } + out = static_cast(x); + return SUCCESS; +} + +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, auto &val, T &out) noexcept { + double x; + SIMDJSON_TRY(val.get_double().get(x)); + out = static_cast(x); + return SUCCESS; +} + +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, auto &val, T &out) noexcept { + using limits = std::numeric_limits; + + int64_t x; + SIMDJSON_TRY(val.get_int64().get(x)); + if (x > (limits::max)() || x < (limits::min)()) { + return NUMBER_OUT_OF_RANGE; + } + out = static_cast(x); + return SUCCESS; +} + +/** + * STL containers have several constructors including one that takes a single + * size argument. Thus, some compilers (Visual Studio) will not be able to + * disambiguate between the size and container constructor. Users should + * explicitly specify the type of the container as needed: e.g., + * doc.get>(). + */ +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, ValT &val, T &out) noexcept(false) { + using value_type = typename std::remove_cvref_t::value_type; + static_assert( + deserializable, + "The specified type inside the container must itself be deserializable"); + static_assert( + std::is_default_constructible_v, + "The specified type inside the container must default constructible."); + + lasx::ondemand::array arr; + SIMDJSON_TRY(val.get_array().get(arr)); + for (auto v : arr) { + if constexpr (concepts::returns_reference) { + if (auto const err = v.get().get(concepts::emplace_one(out)); + err) { + // If an error occurs, the empty element that we just inserted gets + // removed. We're not using a temp variable because if T is a heavy + // type, we want the valid path to be the fast path and the slow path be + // the path that has errors in it. + if constexpr (requires { out.pop_back(); }) { + static_cast(out.pop_back()); + } + return err; + } + } else { + value_type temp; + if (auto const err = v.get().get(temp); err) { + return err; + } + concepts::emplace_one(out, std::move(temp)); + } + } + return SUCCESS; +} + + + +/** + * This CPO (Customization Point Object) will help deserialize into + * smart pointers. + * + * If constructing T is nothrow, this conversion should be nothrow as well since + * we return MEMALLOC if we're not able to allocate memory instead of throwing + * the error message. + * + * @tparam T The type inside the smart pointer + * @tparam ValT document/value type + * @param val document/value + * @param out a reference to the smart pointer + * @return status of the conversion + */ +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, ValT &val, T &out) noexcept(nothrow_deserializable::element_type, ValT>) { + using element_type = typename std::remove_cvref_t::element_type; + + // For better error messages, don't use these as constraints on + // the tag_invoke CPO. + static_assert( + deserializable, + "The specified type inside the unique_ptr must itself be deserializable"); + static_assert( + std::is_default_constructible_v, + "The specified type inside the unique_ptr must default constructible."); + + auto ptr = new (std::nothrow) element_type(); + if (ptr == nullptr) { + return MEMALLOC; + } + SIMDJSON_TRY(val.template get(*ptr)); + out.reset(ptr); + return SUCCESS; +} + +/** + * This CPO (Customization Point Object) will help deserialize into optional types. + */ +template + requires(!require_custom_serialization) +error_code tag_invoke(deserialize_tag, ValT &val, T &out) noexcept(nothrow_deserializable::value_type, ValT>) { + using value_type = typename std::remove_cvref_t::value_type; + + static_assert( + deserializable, + "The specified type inside the unique_ptr must itself be deserializable"); + static_assert( + std::is_default_constructible_v, + "The specified type inside the unique_ptr must default constructible."); + + if (!out) { + out.emplace(); + } + SIMDJSON_TRY(val.template get(out.value())); + return SUCCESS; +} + +} // namespace simdjson + +#endif // SIMDJSON_ONDEMAND_DESERIALIZE_H +#endif // SIMDJSON_SUPPORTS_DESERIALIZATION +/* end file simdjson/generic/ondemand/std_deserialize.h for lasx */ + // Inline definitions /* including simdjson/generic/ondemand/array-inl.h for lasx: #include "simdjson/generic/ondemand/array-inl.h" */ /* begin file simdjson/generic/ondemand/array-inl.h for lasx */ @@ -112800,6 +117273,7 @@ inline std::ostream& operator<<(std::ostream& out, simdjson::simdjson_result array::at_pointer(std::string_view json_pointer) n return child; } -inline std::string json_path_to_pointer_conversion(std::string_view json_path) { - if (json_path.empty() || (json_path.front() != '.' && - json_path.front() != '[')) { - return "-1"; // This is just a sentinel value, the caller should check for this and return an error. - } - - std::string result; - // Reserve space to reduce allocations, adjusting for potential increases due - // to escaping. - result.reserve(json_path.size() * 2); - - size_t i = 0; - - while (i < json_path.length()) { - if (json_path[i] == '.') { - result += '/'; - } else if (json_path[i] == '[') { - result += '/'; - ++i; // Move past the '[' - while (i < json_path.length() && json_path[i] != ']') { - if (json_path[i] == '~') { - result += "~0"; - } else if (json_path[i] == '/') { - result += "~1"; - } else { - result += json_path[i]; - } - ++i; - } - if (i == json_path.length() || json_path[i] != ']') { - return "-1"; // Using sentinel value that will be handled as an error by the caller. - } - } else { - if (json_path[i] == '~') { - result += "~0"; - } else if (json_path[i] == '/') { - result += "~1"; - } else { - result += json_path[i]; - } - } - ++i; - } - - return result; -} - inline simdjson_result array::at_path(std::string_view json_path) noexcept { auto json_pointer = json_path_to_pointer_conversion(json_path); if (json_pointer == "-1") { return INVALID_JSON_POINTER; } @@ -113161,313 +117588,276 @@ simdjson_inline simdjson_result &simdjson_result #endif // SIMDJSON_GENERIC_ONDEMAND_ARRAY_ITERATOR_INL_H /* end file simdjson/generic/ondemand/array_iterator-inl.h for lasx */ -/* including simdjson/generic/ondemand/document-inl.h for lasx: #include "simdjson/generic/ondemand/document-inl.h" */ -/* begin file simdjson/generic/ondemand/document-inl.h for lasx */ -#ifndef SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H +/* including simdjson/generic/ondemand/value-inl.h for lasx: #include "simdjson/generic/ondemand/value-inl.h" */ +/* begin file simdjson/generic/ondemand/value-inl.h for lasx */ +#ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H /* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ -/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H */ +/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array_iterator.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string.h" */ /* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator-inl.h" */ /* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ namespace simdjson { namespace lasx { namespace ondemand { -simdjson_inline document::document(ondemand::json_iterator &&_iter) noexcept - : iter{std::forward(_iter)} +simdjson_inline value::value(const value_iterator &_iter) noexcept + : iter{_iter} { - logger::log_start_value(iter, "document"); } - -simdjson_inline document document::start(json_iterator &&iter) noexcept { - return document(std::forward(iter)); +simdjson_inline value value::start(const value_iterator &iter) noexcept { + return iter; } - -inline void document::rewind() noexcept { - iter.rewind(); +simdjson_inline value value::resume(const value_iterator &iter) noexcept { + return iter; } -inline std::string document::to_debug_string() noexcept { - return iter.to_string(); +simdjson_inline simdjson_result value::get_array() noexcept { + return array::start(iter); } - -inline simdjson_result document::current_location() const noexcept { - return iter.current_location(); +simdjson_inline simdjson_result value::get_object() noexcept { + return object::start(iter); } - -inline int32_t document::current_depth() const noexcept { - return iter.depth(); +simdjson_inline simdjson_result value::start_or_resume_object() noexcept { + if (iter.at_start()) { + return get_object(); + } else { + return object::resume(iter); + } } -inline bool document::at_end() const noexcept { - return iter.at_end(); +simdjson_inline simdjson_result value::get_raw_json_string() noexcept { + return iter.get_raw_json_string(); } - - -inline bool document::is_alive() noexcept { - return iter.is_alive(); +simdjson_inline simdjson_result value::get_string(bool allow_replacement) noexcept { + return iter.get_string(allow_replacement); } -simdjson_inline value_iterator document::resume_value_iterator() noexcept { - return value_iterator(&iter, 1, iter.root_position()); +template +simdjson_inline error_code value::get_string(string_type& receiver, bool allow_replacement) noexcept { + return iter.get_string(receiver, allow_replacement); } -simdjson_inline value_iterator document::get_root_value_iterator() noexcept { - return resume_value_iterator(); +simdjson_inline simdjson_result value::get_wobbly_string() noexcept { + return iter.get_wobbly_string(); } -simdjson_inline simdjson_result document::start_or_resume_object() noexcept { - if (iter.at_root()) { - return get_object(); - } else { - return object::resume(resume_value_iterator()); - } +simdjson_inline simdjson_result value::get_double() noexcept { + return iter.get_double(); } -simdjson_inline simdjson_result document::get_value() noexcept { - // Make sure we start any arrays or objects before returning, so that start_root_() - // gets called. - - // It is the convention throughout the code that the macro `SIMDJSON_DEVELOPMENT_CHECKS` determines whether - // we check for OUT_OF_ORDER_ITERATION. Proper on::demand code should never trigger this error. -#if SIMDJSON_DEVELOPMENT_CHECKS - if (!iter.at_root()) { return OUT_OF_ORDER_ITERATION; } -#endif - // assert_at_root() serves two purposes: in Debug mode, whether or not - // SIMDJSON_DEVELOPMENT_CHECKS is set or not, it checks that we are at the root of - // the document (this will typically be redundant). In release mode, it generates - // SIMDJSON_ASSUME statements to allow the compiler to make assumptions. - iter.assert_at_root(); - switch (*iter.peek()) { - case '[': { - // The following lines check that the document ends with ]. - auto value_iterator = get_root_value_iterator(); - auto error = value_iterator.check_root_array(); - if(error) { return error; } - return value(get_root_value_iterator()); - } - case '{': { - // The following lines would check that the document ends with }. - auto value_iterator = get_root_value_iterator(); - auto error = value_iterator.check_root_object(); - if(error) { return error; } - return value(get_root_value_iterator()); - } - default: - // Unfortunately, scalar documents are a special case in simdjson and they cannot - // be safely converted to value instances. - return SCALAR_DOCUMENT_AS_VALUE; - } +simdjson_inline simdjson_result value::get_double_in_string() noexcept { + return iter.get_double_in_string(); } -simdjson_inline simdjson_result document::get_array() & noexcept { - auto value = get_root_value_iterator(); - return array::start_root(value); +simdjson_inline simdjson_result value::get_uint64() noexcept { + return iter.get_uint64(); } -simdjson_inline simdjson_result document::get_object() & noexcept { - auto value = get_root_value_iterator(); - return object::start_root(value); +simdjson_inline simdjson_result value::get_uint64_in_string() noexcept { + return iter.get_uint64_in_string(); } - -/** - * We decided that calling 'get_double()' on the JSON document '1.233 blabla' should - * give an error, so we check for trailing content. We want to disallow trailing - * content. - * Thus, in several implementations below, we pass a 'true' parameter value to - * a get_root_value_iterator() method: this indicates that we disallow trailing content. - */ - -simdjson_inline simdjson_result document::get_uint64() noexcept { - return get_root_value_iterator().get_root_uint64(true); +simdjson_inline simdjson_result value::get_int64() noexcept { + return iter.get_int64(); } -simdjson_inline simdjson_result document::get_uint64_in_string() noexcept { - return get_root_value_iterator().get_root_uint64_in_string(true); +simdjson_inline simdjson_result value::get_int64_in_string() noexcept { + return iter.get_int64_in_string(); } -simdjson_inline simdjson_result document::get_int64() noexcept { - return get_root_value_iterator().get_root_int64(true); +simdjson_inline simdjson_result value::get_bool() noexcept { + return iter.get_bool(); } -simdjson_inline simdjson_result document::get_int64_in_string() noexcept { - return get_root_value_iterator().get_root_int64_in_string(true); +simdjson_inline simdjson_result value::is_null() noexcept { + return iter.is_null(); } -simdjson_inline simdjson_result document::get_double() noexcept { - return get_root_value_iterator().get_root_double(true); + +template<> simdjson_inline simdjson_result value::get() noexcept { return get_array(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_object(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_raw_json_string(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_string(false); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_number(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_double(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_uint64(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_int64(); } +template<> simdjson_inline simdjson_result value::get() noexcept { return get_bool(); } + + +template<> simdjson_inline error_code value::get(array& out) noexcept { return get_array().get(out); } +template<> simdjson_inline error_code value::get(object& out) noexcept { return get_object().get(out); } +template<> simdjson_inline error_code value::get(raw_json_string& out) noexcept { return get_raw_json_string().get(out); } +template<> simdjson_inline error_code value::get(std::string_view& out) noexcept { return get_string(false).get(out); } +template<> simdjson_inline error_code value::get(number& out) noexcept { return get_number().get(out); } +template<> simdjson_inline error_code value::get(double& out) noexcept { return get_double().get(out); } +template<> simdjson_inline error_code value::get(uint64_t& out) noexcept { return get_uint64().get(out); } +template<> simdjson_inline error_code value::get(int64_t& out) noexcept { return get_int64().get(out); } +template<> simdjson_inline error_code value::get(bool& out) noexcept { return get_bool().get(out); } + +#if SIMDJSON_EXCEPTIONS +template +simdjson_inline value::operator T() noexcept(false) { + return get(); } -simdjson_inline simdjson_result document::get_double_in_string() noexcept { - return get_root_value_iterator().get_root_double_in_string(true); +simdjson_inline value::operator array() noexcept(false) { + return get_array(); } -simdjson_inline simdjson_result document::get_string(bool allow_replacement) noexcept { - return get_root_value_iterator().get_root_string(true, allow_replacement); +simdjson_inline value::operator object() noexcept(false) { + return get_object(); } -template -simdjson_inline error_code document::get_string(string_type& receiver, bool allow_replacement) noexcept { - return get_root_value_iterator().get_root_string(receiver, true, allow_replacement); +simdjson_inline value::operator uint64_t() noexcept(false) { + return get_uint64(); } -simdjson_inline simdjson_result document::get_wobbly_string() noexcept { - return get_root_value_iterator().get_root_wobbly_string(true); +simdjson_inline value::operator int64_t() noexcept(false) { + return get_int64(); } -simdjson_inline simdjson_result document::get_raw_json_string() noexcept { - return get_root_value_iterator().get_root_raw_json_string(true); +simdjson_inline value::operator double() noexcept(false) { + return get_double(); } -simdjson_inline simdjson_result document::get_bool() noexcept { - return get_root_value_iterator().get_root_bool(true); +simdjson_inline value::operator std::string_view() noexcept(false) { + return get_string(false); } -simdjson_inline simdjson_result document::is_null() noexcept { - return get_root_value_iterator().is_root_null(true); +simdjson_inline value::operator raw_json_string() noexcept(false) { + return get_raw_json_string(); } +simdjson_inline value::operator bool() noexcept(false) { + return get_bool(); +} +#endif -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_array(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_object(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_raw_json_string(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_string(false); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_double(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_uint64(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_int64(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_bool(); } -template<> simdjson_inline simdjson_result document::get() & noexcept { return get_value(); } - -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_raw_json_string(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_string(false); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_double(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_uint64(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_int64(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_bool(); } -template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_value(); } - -template simdjson_inline error_code document::get(T &out) & noexcept { - return get().get(out); +simdjson_inline simdjson_result value::begin() & noexcept { + return get_array().begin(); } -template simdjson_deprecated simdjson_inline error_code document::get(T &out) && noexcept { - return std::forward(*this).get().get(out); +simdjson_inline simdjson_result value::end() & noexcept { + return {}; } - -#if SIMDJSON_EXCEPTIONS -template -simdjson_deprecated simdjson_inline document::operator T() && noexcept(false) { return get(); } -template -simdjson_inline document::operator T() & noexcept(false) { return get(); } -simdjson_inline document::operator array() & noexcept(false) { return get_array(); } -simdjson_inline document::operator object() & noexcept(false) { return get_object(); } -simdjson_inline document::operator uint64_t() noexcept(false) { return get_uint64(); } -simdjson_inline document::operator int64_t() noexcept(false) { return get_int64(); } -simdjson_inline document::operator double() noexcept(false) { return get_double(); } -simdjson_inline document::operator std::string_view() noexcept(false) { return get_string(false); } -simdjson_inline document::operator raw_json_string() noexcept(false) { return get_raw_json_string(); } -simdjson_inline document::operator bool() noexcept(false) { return get_bool(); } -simdjson_inline document::operator value() noexcept(false) { return get_value(); } - -#endif -simdjson_inline simdjson_result document::count_elements() & noexcept { +simdjson_inline simdjson_result value::count_elements() & noexcept { + simdjson_result answer; auto a = get_array(); - simdjson_result answer = a.count_elements(); - /* If there was an array, we are now left pointing at its first element. */ - if(answer.error() == SUCCESS) { rewind(); } + answer = a.count_elements(); + // count_elements leaves you pointing inside the array, at the first element. + // We need to move back so that the user can create a new array (which requires that + // we point at '['). + iter.move_at_start(); return answer; } -simdjson_inline simdjson_result document::count_fields() & noexcept { +simdjson_inline simdjson_result value::count_fields() & noexcept { + simdjson_result answer; auto a = get_object(); - simdjson_result answer = a.count_fields(); - /* If there was an object, we are now left pointing at its first element. */ - if(answer.error() == SUCCESS) { rewind(); } + answer = a.count_fields(); + iter.move_at_start(); return answer; } -simdjson_inline simdjson_result document::at(size_t index) & noexcept { +simdjson_inline simdjson_result value::at(size_t index) noexcept { auto a = get_array(); return a.at(index); } -simdjson_inline simdjson_result document::begin() & noexcept { - return get_array().begin(); -} -simdjson_inline simdjson_result document::end() & noexcept { - return {}; -} -simdjson_inline simdjson_result document::find_field(std::string_view key) & noexcept { +simdjson_inline simdjson_result value::find_field(std::string_view key) noexcept { return start_or_resume_object().find_field(key); } -simdjson_inline simdjson_result document::find_field(const char *key) & noexcept { +simdjson_inline simdjson_result value::find_field(const char *key) noexcept { return start_or_resume_object().find_field(key); } -simdjson_inline simdjson_result document::find_field_unordered(std::string_view key) & noexcept { + +simdjson_inline simdjson_result value::find_field_unordered(std::string_view key) noexcept { return start_or_resume_object().find_field_unordered(key); } -simdjson_inline simdjson_result document::find_field_unordered(const char *key) & noexcept { +simdjson_inline simdjson_result value::find_field_unordered(const char *key) noexcept { return start_or_resume_object().find_field_unordered(key); } -simdjson_inline simdjson_result document::operator[](std::string_view key) & noexcept { + +simdjson_inline simdjson_result value::operator[](std::string_view key) noexcept { return start_or_resume_object()[key]; } -simdjson_inline simdjson_result document::operator[](const char *key) & noexcept { +simdjson_inline simdjson_result value::operator[](const char *key) noexcept { return start_or_resume_object()[key]; } -simdjson_inline error_code document::consume() noexcept { - auto error = iter.skip_child(0); - if(error) { iter.abandon(); } - return error; -} - -simdjson_inline simdjson_result document::raw_json() noexcept { - auto _iter = get_root_value_iterator(); - const uint8_t * starting_point{_iter.peek_start()}; - auto error = consume(); - if(error) { return error; } - // After 'consume()', we could be left pointing just beyond the document, but that - // is ok because we are not going to dereference the final pointer position, we just - // use it to compute the length in bytes. - const uint8_t * final_point{iter.unsafe_pointer()}; - return std::string_view(reinterpret_cast(starting_point), size_t(final_point - starting_point)); -} - -simdjson_inline simdjson_result document::type() noexcept { - return get_root_value_iterator().type(); +simdjson_inline simdjson_result value::type() noexcept { + return iter.type(); } -simdjson_inline simdjson_result document::is_scalar() noexcept { +simdjson_inline simdjson_result value::is_scalar() noexcept { json_type this_type; auto error = type().get(this_type); if(error) { return error; } return ! ((this_type == json_type::array) || (this_type == json_type::object)); } -simdjson_inline simdjson_result document::is_string() noexcept { +simdjson_inline simdjson_result value::is_string() noexcept { json_type this_type; auto error = type().get(this_type); if(error) { return error; } return (this_type == json_type::string); } -simdjson_inline bool document::is_negative() noexcept { - return get_root_value_iterator().is_root_negative(); + +simdjson_inline bool value::is_negative() noexcept { + return iter.is_negative(); } -simdjson_inline simdjson_result document::is_integer() noexcept { - return get_root_value_iterator().is_root_integer(true); +simdjson_inline simdjson_result value::is_integer() noexcept { + return iter.is_integer(); +} +simdjson_warn_unused simdjson_inline simdjson_result value::get_number_type() noexcept { + return iter.get_number_type(); +} +simdjson_warn_unused simdjson_inline simdjson_result value::get_number() noexcept { + return iter.get_number(); } -simdjson_inline simdjson_result document::get_number_type() noexcept { - return get_root_value_iterator().get_root_number_type(true); +simdjson_inline std::string_view value::raw_json_token() noexcept { + return std::string_view(reinterpret_cast(iter.peek_start()), iter.peek_start_length()); } -simdjson_inline simdjson_result document::get_number() noexcept { - return get_root_value_iterator().get_root_number(true); +simdjson_inline simdjson_result value::raw_json() noexcept { + json_type t; + SIMDJSON_TRY(type().get(t)); + switch (t) + { + case json_type::array: { + ondemand::array array; + SIMDJSON_TRY(get_array().get(array)); + return array.raw_json(); + } + case json_type::object: { + ondemand::object object; + SIMDJSON_TRY(get_object().get(object)); + return object.raw_json(); + } + default: + return raw_json_token(); + } } +simdjson_inline simdjson_result value::current_location() noexcept { + return iter.json_iter().current_location(); +} -simdjson_inline simdjson_result document::raw_json_token() noexcept { - auto _iter = get_root_value_iterator(); - return std::string_view(reinterpret_cast(_iter.peek_start()), _iter.peek_root_length()); +simdjson_inline int32_t value::current_depth() const noexcept{ + return iter.json_iter().depth(); } -simdjson_inline simdjson_result document::at_pointer(std::string_view json_pointer) noexcept { - rewind(); // Rewind the document each time at_pointer is called - if (json_pointer.empty()) { - return this->get_value(); +inline bool is_pointer_well_formed(std::string_view json_pointer) noexcept { + if (simdjson_unlikely(json_pointer.empty())) { // can't be + return false; + } + if (simdjson_unlikely(json_pointer[0] != '/')) { + return false; + } + size_t escape = json_pointer.find('~'); + if (escape == std::string_view::npos) { + return true; + } + if (escape == json_pointer.size() - 1) { + return false; } + if (json_pointer[escape + 1] != '0' && json_pointer[escape + 1] != '1') { + return false; + } + return true; +} + +simdjson_inline simdjson_result value::at_pointer(std::string_view json_pointer) noexcept { json_type t; SIMDJSON_TRY(type().get(t)); switch (t) @@ -113477,15 +117867,15 @@ simdjson_inline simdjson_result document::at_pointer(std::string_view jso case json_type::object: return (*this).get_object().at_pointer(json_pointer); default: + // a non-empty string can be invalid, or accessing a primitive (issue 2154) + if (is_pointer_well_formed(json_pointer)) { + return NO_SUCH_FIELD; + } return INVALID_JSON_POINTER; } } -simdjson_inline simdjson_result document::at_path(std::string_view json_path) noexcept { - rewind(); // Rewind the document each time at_pointer is called - if (json_path.empty()) { - return this->get_value(); - } +simdjson_inline simdjson_result value::at_path(std::string_view json_path) noexcept { json_type t; SIMDJSON_TRY(type().get(t)); switch (t) { @@ -113504,680 +117894,1319 @@ simdjson_inline simdjson_result document::at_path(std::string_view json_p namespace simdjson { -simdjson_inline simdjson_result::simdjson_result( - lasx::ondemand::document &&value +simdjson_inline simdjson_result::simdjson_result( + lasx::ondemand::value &&value ) noexcept : - implementation_simdjson_result_base( - std::forward(value) + implementation_simdjson_result_base( + std::forward(value) ) { } -simdjson_inline simdjson_result::simdjson_result( +simdjson_inline simdjson_result::simdjson_result( error_code error ) noexcept : - implementation_simdjson_result_base( - error - ) + implementation_simdjson_result_base(error) { } -simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { +simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { if (error()) { return error(); } return first.count_elements(); } -simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { +simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { if (error()) { return error(); } return first.count_fields(); } -simdjson_inline simdjson_result simdjson_result::at(size_t index) & noexcept { +simdjson_inline simdjson_result simdjson_result::at(size_t index) noexcept { if (error()) { return error(); } return first.at(index); } -simdjson_inline error_code simdjson_result::rewind() noexcept { - if (error()) { return error(); } - first.rewind(); - return SUCCESS; -} -simdjson_inline simdjson_result simdjson_result::begin() & noexcept { +simdjson_inline simdjson_result simdjson_result::begin() & noexcept { if (error()) { return error(); } return first.begin(); } -simdjson_inline simdjson_result simdjson_result::end() & noexcept { +simdjson_inline simdjson_result simdjson_result::end() & noexcept { + if (error()) { return error(); } return {}; } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) & noexcept { + +simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) noexcept { if (error()) { return error(); } - return first.find_field_unordered(key); + return first.find_field(key); } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field(const char *key) noexcept { if (error()) { return error(); } - return first.find_field_unordered(key); + return first.find_field(key); } -simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) & noexcept { + +simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) noexcept { if (error()) { return error(); } - return first[key]; + return first.find_field_unordered(key); } -simdjson_inline simdjson_result simdjson_result::operator[](const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) noexcept { if (error()) { return error(); } - return first[key]; + return first.find_field_unordered(key); } -simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) & noexcept { + +simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) noexcept { if (error()) { return error(); } - return first.find_field(key); + return first[key]; } -simdjson_inline simdjson_result simdjson_result::find_field(const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::operator[](const char *key) noexcept { if (error()) { return error(); } - return first.find_field(key); + return first[key]; } -simdjson_inline simdjson_result simdjson_result::get_array() & noexcept { + +simdjson_inline simdjson_result simdjson_result::get_array() noexcept { if (error()) { return error(); } return first.get_array(); } -simdjson_inline simdjson_result simdjson_result::get_object() & noexcept { +simdjson_inline simdjson_result simdjson_result::get_object() noexcept { if (error()) { return error(); } return first.get_object(); } -simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { +simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { if (error()) { return error(); } return first.get_uint64(); } -simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { if (error()) { return error(); } return first.get_uint64_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { +simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { if (error()) { return error(); } return first.get_int64(); } -simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { if (error()) { return error(); } return first.get_int64_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_double() noexcept { +simdjson_inline simdjson_result simdjson_result::get_double() noexcept { if (error()) { return error(); } return first.get_double(); } -simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { if (error()) { return error(); } return first.get_double_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { +simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { if (error()) { return error(); } return first.get_string(allow_replacement); } template -simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { +simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { if (error()) { return error(); } return first.get_string(receiver, allow_replacement); } -simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { if (error()) { return error(); } return first.get_wobbly_string(); } -simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { if (error()) { return error(); } return first.get_raw_json_string(); } -simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { +simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { if (error()) { return error(); } return first.get_bool(); } -simdjson_inline simdjson_result simdjson_result::get_value() noexcept { - if (error()) { return error(); } - return first.get_value(); -} -simdjson_inline simdjson_result simdjson_result::is_null() noexcept { +simdjson_inline simdjson_result simdjson_result::is_null() noexcept { if (error()) { return error(); } return first.is_null(); } -template -simdjson_inline simdjson_result simdjson_result::get() & noexcept { +template<> simdjson_inline error_code simdjson_result::get(lasx::ondemand::value &out) noexcept { if (error()) { return error(); } - return first.get(); + out = first; + return SUCCESS; } -template -simdjson_deprecated simdjson_inline simdjson_result simdjson_result::get() && noexcept { + +template simdjson_inline simdjson_result simdjson_result::get() noexcept { if (error()) { return error(); } - return std::forward(first).get(); + return first.get(); } -template -simdjson_inline error_code simdjson_result::get(T &out) & noexcept { +template simdjson_inline error_code simdjson_result::get(T &out) noexcept { if (error()) { return error(); } return first.get(out); } -template -simdjson_inline error_code simdjson_result::get(T &out) && noexcept { - if (error()) { return error(); } - return std::forward(first).get(out); -} -template<> simdjson_inline simdjson_result simdjson_result::get() & noexcept = delete; -template<> simdjson_deprecated simdjson_inline simdjson_result simdjson_result::get() && noexcept { - if (error()) { return error(); } - return std::forward(first); -} -template<> simdjson_inline error_code simdjson_result::get(lasx::ondemand::document &out) & noexcept = delete; -template<> simdjson_inline error_code simdjson_result::get(lasx::ondemand::document &out) && noexcept { +template<> simdjson_inline simdjson_result simdjson_result::get() noexcept { if (error()) { return error(); } - out = std::forward(first); - return SUCCESS; + return std::move(first); } -simdjson_inline simdjson_result simdjson_result::type() noexcept { +simdjson_inline simdjson_result simdjson_result::type() noexcept { if (error()) { return error(); } return first.type(); } - -simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { +simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { if (error()) { return error(); } return first.is_scalar(); } - -simdjson_inline simdjson_result simdjson_result::is_string() noexcept { +simdjson_inline simdjson_result simdjson_result::is_string() noexcept { if (error()) { return error(); } return first.is_string(); } - -simdjson_inline bool simdjson_result::is_negative() noexcept { +simdjson_inline simdjson_result simdjson_result::is_negative() noexcept { if (error()) { return error(); } return first.is_negative(); } - -simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { +simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { if (error()) { return error(); } return first.is_integer(); } - -simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { +simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { if (error()) { return error(); } return first.get_number_type(); } - -simdjson_inline simdjson_result simdjson_result::get_number() noexcept { +simdjson_inline simdjson_result simdjson_result::get_number() noexcept { if (error()) { return error(); } return first.get_number(); } - - #if SIMDJSON_EXCEPTIONS -template ::value == false>::type> -simdjson_inline simdjson_result::operator T() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; -} -simdjson_inline simdjson_result::operator lasx::ondemand::array() & noexcept(false) { +template +simdjson_inline simdjson_result::operator T() noexcept(false) { if (error()) { throw simdjson_error(error()); } - return first; + return first.get(); } -simdjson_inline simdjson_result::operator lasx::ondemand::object() & noexcept(false) { +simdjson_inline simdjson_result::operator lasx::ondemand::array() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { +simdjson_inline simdjson_result::operator lasx::ondemand::object() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator int64_t() noexcept(false) { +simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator double() noexcept(false) { +simdjson_inline simdjson_result::operator int64_t() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { +simdjson_inline simdjson_result::operator double() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator lasx::ondemand::raw_json_string() noexcept(false) { +simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator bool() noexcept(false) { +simdjson_inline simdjson_result::operator lasx::ondemand::raw_json_string() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator lasx::ondemand::value() noexcept(false) { +simdjson_inline simdjson_result::operator bool() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } #endif - -simdjson_inline simdjson_result simdjson_result::current_location() noexcept { +simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { if (error()) { return error(); } - return first.current_location(); + return first.raw_json_token(); } -simdjson_inline bool simdjson_result::at_end() const noexcept { +simdjson_inline simdjson_result simdjson_result::raw_json() noexcept { if (error()) { return error(); } - return first.at_end(); + return first.raw_json(); } - -simdjson_inline int32_t simdjson_result::current_depth() const noexcept { +simdjson_inline simdjson_result simdjson_result::current_location() noexcept { if (error()) { return error(); } - return first.current_depth(); + return first.current_location(); } -simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { +simdjson_inline simdjson_result simdjson_result::current_depth() const noexcept { if (error()) { return error(); } - return first.raw_json_token(); + return first.current_depth(); } -simdjson_inline simdjson_result simdjson_result::at_pointer(std::string_view json_pointer) noexcept { - if (error()) { return error(); } +simdjson_inline simdjson_result simdjson_result::at_pointer( + std::string_view json_pointer) noexcept { + if (error()) { + return error(); + } return first.at_pointer(json_pointer); } -simdjson_inline simdjson_result simdjson_result::at_path(std::string_view json_path) noexcept { - if (error()) { return error(); } +simdjson_inline simdjson_result simdjson_result::at_path( + std::string_view json_path) noexcept { + if (error()) { + return error(); + } return first.at_path(json_path); } } // namespace simdjson +#endif // SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H +/* end file simdjson/generic/ondemand/value-inl.h for lasx */ +/* including simdjson/generic/ondemand/document-inl.h for lasx: #include "simdjson/generic/ondemand/document-inl.h" */ +/* begin file simdjson/generic/ondemand/document-inl.h for lasx */ +#ifndef SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H + +/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ +/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value_iterator-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/deserialize.h" */ +/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ namespace simdjson { namespace lasx { namespace ondemand { -simdjson_inline document_reference::document_reference() noexcept : doc{nullptr} {} -simdjson_inline document_reference::document_reference(document &d) noexcept : doc(&d) {} -simdjson_inline void document_reference::rewind() noexcept { doc->rewind(); } -simdjson_inline simdjson_result document_reference::get_array() & noexcept { return doc->get_array(); } -simdjson_inline simdjson_result document_reference::get_object() & noexcept { return doc->get_object(); } -/** - * The document_reference instances are used primarily/solely for streams of JSON - * documents. - * We decided that calling 'get_double()' on the JSON document '1.233 blabla' should - * give an error, so we check for trailing content. - * - * However, for streams of JSON documents, we want to be able to start from - * "321" "321" "321" - * and parse it successfully as a stream of JSON documents, calling get_uint64_in_string() - * successfully each time. - * - * To achieve this result, we pass a 'false' to a get_root_value_iterator() method: - * this indicates that we allow trailing content. - */ -simdjson_inline simdjson_result document_reference::get_uint64() noexcept { return doc->get_root_value_iterator().get_root_uint64(false); } -simdjson_inline simdjson_result document_reference::get_uint64_in_string() noexcept { return doc->get_root_value_iterator().get_root_uint64_in_string(false); } -simdjson_inline simdjson_result document_reference::get_int64() noexcept { return doc->get_root_value_iterator().get_root_int64(false); } -simdjson_inline simdjson_result document_reference::get_int64_in_string() noexcept { return doc->get_root_value_iterator().get_root_int64_in_string(false); } -simdjson_inline simdjson_result document_reference::get_double() noexcept { return doc->get_root_value_iterator().get_root_double(false); } -simdjson_inline simdjson_result document_reference::get_double_in_string() noexcept { return doc->get_root_value_iterator().get_root_double(false); } -simdjson_inline simdjson_result document_reference::get_string(bool allow_replacement) noexcept { return doc->get_root_value_iterator().get_root_string(false, allow_replacement); } -template -simdjson_inline error_code document_reference::get_string(string_type& receiver, bool allow_replacement) noexcept { return doc->get_root_value_iterator().get_root_string(receiver, false, allow_replacement); } -simdjson_inline simdjson_result document_reference::get_wobbly_string() noexcept { return doc->get_root_value_iterator().get_root_wobbly_string(false); } -simdjson_inline simdjson_result document_reference::get_raw_json_string() noexcept { return doc->get_root_value_iterator().get_root_raw_json_string(false); } -simdjson_inline simdjson_result document_reference::get_bool() noexcept { return doc->get_root_value_iterator().get_root_bool(false); } -simdjson_inline simdjson_result document_reference::get_value() noexcept { return doc->get_value(); } -simdjson_inline simdjson_result document_reference::is_null() noexcept { return doc->get_root_value_iterator().is_root_null(false); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_array(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_object(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_raw_json_string(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_string(false); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_double(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_uint64(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_int64(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_bool(); } -template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_value(); } -#if SIMDJSON_EXCEPTIONS -template -simdjson_inline document_reference::operator T() noexcept(false) { return get(); } -simdjson_inline document_reference::operator array() & noexcept(false) { return array(*doc); } -simdjson_inline document_reference::operator object() & noexcept(false) { return object(*doc); } -simdjson_inline document_reference::operator uint64_t() noexcept(false) { return get_uint64(); } -simdjson_inline document_reference::operator int64_t() noexcept(false) { return get_int64(); } -simdjson_inline document_reference::operator double() noexcept(false) { return get_double(); } -simdjson_inline document_reference::operator std::string_view() noexcept(false) { return std::string_view(*doc); } -simdjson_inline document_reference::operator raw_json_string() noexcept(false) { return get_raw_json_string(); } -simdjson_inline document_reference::operator bool() noexcept(false) { return get_bool(); } -simdjson_inline document_reference::operator value() noexcept(false) { return value(*doc); } -#endif -simdjson_inline simdjson_result document_reference::count_elements() & noexcept { return doc->count_elements(); } -simdjson_inline simdjson_result document_reference::count_fields() & noexcept { return doc->count_fields(); } -simdjson_inline simdjson_result document_reference::at(size_t index) & noexcept { return doc->at(index); } -simdjson_inline simdjson_result document_reference::begin() & noexcept { return doc->begin(); } -simdjson_inline simdjson_result document_reference::end() & noexcept { return doc->end(); } -simdjson_inline simdjson_result document_reference::find_field(std::string_view key) & noexcept { return doc->find_field(key); } -simdjson_inline simdjson_result document_reference::find_field(const char *key) & noexcept { return doc->find_field(key); } -simdjson_inline simdjson_result document_reference::operator[](std::string_view key) & noexcept { return (*doc)[key]; } -simdjson_inline simdjson_result document_reference::operator[](const char *key) & noexcept { return (*doc)[key]; } -simdjson_inline simdjson_result document_reference::find_field_unordered(std::string_view key) & noexcept { return doc->find_field_unordered(key); } -simdjson_inline simdjson_result document_reference::find_field_unordered(const char *key) & noexcept { return doc->find_field_unordered(key); } -simdjson_inline simdjson_result document_reference::type() noexcept { return doc->type(); } -simdjson_inline simdjson_result document_reference::is_scalar() noexcept { return doc->is_scalar(); } -simdjson_inline simdjson_result document_reference::is_string() noexcept { return doc->is_string(); } -simdjson_inline simdjson_result document_reference::current_location() noexcept { return doc->current_location(); } -simdjson_inline int32_t document_reference::current_depth() const noexcept { return doc->current_depth(); } -simdjson_inline bool document_reference::is_negative() noexcept { return doc->is_negative(); } -simdjson_inline simdjson_result document_reference::is_integer() noexcept { return doc->get_root_value_iterator().is_root_integer(false); } -simdjson_inline simdjson_result document_reference::get_number_type() noexcept { return doc->get_root_value_iterator().get_root_number_type(false); } -simdjson_inline simdjson_result document_reference::get_number() noexcept { return doc->get_root_value_iterator().get_root_number(false); } -simdjson_inline simdjson_result document_reference::raw_json_token() noexcept { return doc->raw_json_token(); } -simdjson_inline simdjson_result document_reference::at_pointer(std::string_view json_pointer) noexcept { return doc->at_pointer(json_pointer); } -simdjson_inline simdjson_result document_reference::at_path(std::string_view json_path) noexcept { return doc->at_path(json_path); } -simdjson_inline simdjson_result document_reference::raw_json() noexcept { return doc->raw_json();} -simdjson_inline document_reference::operator document&() const noexcept { return *doc; } +simdjson_inline document::document(ondemand::json_iterator &&_iter) noexcept + : iter{std::forward(_iter)} +{ + logger::log_start_value(iter, "document"); +} -} // namespace ondemand -} // namespace lasx -} // namespace simdjson +simdjson_inline document document::start(json_iterator &&iter) noexcept { + return document(std::forward(iter)); +} +inline void document::rewind() noexcept { + iter.rewind(); +} +inline std::string document::to_debug_string() noexcept { + return iter.to_string(); +} -namespace simdjson { -simdjson_inline simdjson_result::simdjson_result(lasx::ondemand::document_reference value, error_code error) - noexcept : implementation_simdjson_result_base(std::forward(value), error) {} +inline simdjson_result document::current_location() const noexcept { + return iter.current_location(); +} +inline int32_t document::current_depth() const noexcept { + return iter.depth(); +} -simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { - if (error()) { return error(); } - return first.count_elements(); +inline bool document::at_end() const noexcept { + return iter.at_end(); } -simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { - if (error()) { return error(); } - return first.count_fields(); + + +inline bool document::is_alive() noexcept { + return iter.is_alive(); } -simdjson_inline simdjson_result simdjson_result::at(size_t index) & noexcept { - if (error()) { return error(); } - return first.at(index); +simdjson_inline value_iterator document::resume_value_iterator() noexcept { + return value_iterator(&iter, 1, iter.root_position()); } -simdjson_inline error_code simdjson_result::rewind() noexcept { - if (error()) { return error(); } - first.rewind(); - return SUCCESS; +simdjson_inline value_iterator document::get_root_value_iterator() noexcept { + return resume_value_iterator(); } -simdjson_inline simdjson_result simdjson_result::begin() & noexcept { - if (error()) { return error(); } - return first.begin(); +simdjson_inline simdjson_result document::start_or_resume_object() noexcept { + if (iter.at_root()) { + return get_object(); + } else { + return object::resume(resume_value_iterator()); + } } -simdjson_inline simdjson_result simdjson_result::end() & noexcept { - return {}; +simdjson_inline simdjson_result document::get_value() noexcept { + // Make sure we start any arrays or objects before returning, so that start_root_() + // gets called. + + // It is the convention throughout the code that the macro `SIMDJSON_DEVELOPMENT_CHECKS` determines whether + // we check for OUT_OF_ORDER_ITERATION. Proper on::demand code should never trigger this error. +#if SIMDJSON_DEVELOPMENT_CHECKS + if (!iter.at_root()) { return OUT_OF_ORDER_ITERATION; } +#endif + // assert_at_root() serves two purposes: in Debug mode, whether or not + // SIMDJSON_DEVELOPMENT_CHECKS is set or not, it checks that we are at the root of + // the document (this will typically be redundant). In release mode, it generates + // SIMDJSON_ASSUME statements to allow the compiler to make assumptions. + iter.assert_at_root(); + switch (*iter.peek()) { + case '[': { + // The following lines check that the document ends with ]. + auto value_iterator = get_root_value_iterator(); + auto error = value_iterator.check_root_array(); + if(error) { return error; } + return value(get_root_value_iterator()); + } + case '{': { + // The following lines would check that the document ends with }. + auto value_iterator = get_root_value_iterator(); + auto error = value_iterator.check_root_object(); + if(error) { return error; } + return value(get_root_value_iterator()); + } + default: + // Unfortunately, scalar documents are a special case in simdjson and they cannot + // be safely converted to value instances. + return SCALAR_DOCUMENT_AS_VALUE; + } } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) & noexcept { +simdjson_inline simdjson_result document::get_array() & noexcept { + auto value = get_root_value_iterator(); + return array::start_root(value); +} +simdjson_inline simdjson_result document::get_object() & noexcept { + auto value = get_root_value_iterator(); + return object::start_root(value); +} + +/** + * We decided that calling 'get_double()' on the JSON document '1.233 blabla' should + * give an error, so we check for trailing content. We want to disallow trailing + * content. + * Thus, in several implementations below, we pass a 'true' parameter value to + * a get_root_value_iterator() method: this indicates that we disallow trailing content. + */ + +simdjson_inline simdjson_result document::get_uint64() noexcept { + return get_root_value_iterator().get_root_uint64(true); +} +simdjson_inline simdjson_result document::get_uint64_in_string() noexcept { + return get_root_value_iterator().get_root_uint64_in_string(true); +} +simdjson_inline simdjson_result document::get_int64() noexcept { + return get_root_value_iterator().get_root_int64(true); +} +simdjson_inline simdjson_result document::get_int64_in_string() noexcept { + return get_root_value_iterator().get_root_int64_in_string(true); +} +simdjson_inline simdjson_result document::get_double() noexcept { + return get_root_value_iterator().get_root_double(true); +} +simdjson_inline simdjson_result document::get_double_in_string() noexcept { + return get_root_value_iterator().get_root_double_in_string(true); +} +simdjson_inline simdjson_result document::get_string(bool allow_replacement) noexcept { + return get_root_value_iterator().get_root_string(true, allow_replacement); +} +template +simdjson_inline error_code document::get_string(string_type& receiver, bool allow_replacement) noexcept { + return get_root_value_iterator().get_root_string(receiver, true, allow_replacement); +} +simdjson_inline simdjson_result document::get_wobbly_string() noexcept { + return get_root_value_iterator().get_root_wobbly_string(true); +} +simdjson_inline simdjson_result document::get_raw_json_string() noexcept { + return get_root_value_iterator().get_root_raw_json_string(true); +} +simdjson_inline simdjson_result document::get_bool() noexcept { + return get_root_value_iterator().get_root_bool(true); +} +simdjson_inline simdjson_result document::is_null() noexcept { + return get_root_value_iterator().is_root_null(true); +} + +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_array(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_object(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_raw_json_string(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_string(false); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_double(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_uint64(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_int64(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_bool(); } +template<> simdjson_inline simdjson_result document::get() & noexcept { return get_value(); } + +template<> simdjson_inline error_code document::get(array& out) & noexcept { return get_array().get(out); } +template<> simdjson_inline error_code document::get(object& out) & noexcept { return get_object().get(out); } +template<> simdjson_inline error_code document::get(raw_json_string& out) & noexcept { return get_raw_json_string().get(out); } +template<> simdjson_inline error_code document::get(std::string_view& out) & noexcept { return get_string(false).get(out); } +template<> simdjson_inline error_code document::get(double& out) & noexcept { return get_double().get(out); } +template<> simdjson_inline error_code document::get(uint64_t& out) & noexcept { return get_uint64().get(out); } +template<> simdjson_inline error_code document::get(int64_t& out) & noexcept { return get_int64().get(out); } +template<> simdjson_inline error_code document::get(bool& out) & noexcept { return get_bool().get(out); } +template<> simdjson_inline error_code document::get(value& out) & noexcept { return get_value().get(out); } + +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_raw_json_string(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_string(false); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_double(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_uint64(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_int64(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return std::forward(*this).get_bool(); } +template<> simdjson_deprecated simdjson_inline simdjson_result document::get() && noexcept { return get_value(); } + +#if SIMDJSON_EXCEPTIONS +template +simdjson_deprecated simdjson_inline document::operator T() && noexcept(false) { return get(); } +template +simdjson_inline document::operator T() & noexcept(false) { return get(); } +simdjson_inline document::operator array() & noexcept(false) { return get_array(); } +simdjson_inline document::operator object() & noexcept(false) { return get_object(); } +simdjson_inline document::operator uint64_t() noexcept(false) { return get_uint64(); } +simdjson_inline document::operator int64_t() noexcept(false) { return get_int64(); } +simdjson_inline document::operator double() noexcept(false) { return get_double(); } +simdjson_inline document::operator std::string_view() noexcept(false) { return get_string(false); } +simdjson_inline document::operator raw_json_string() noexcept(false) { return get_raw_json_string(); } +simdjson_inline document::operator bool() noexcept(false) { return get_bool(); } +simdjson_inline document::operator value() noexcept(false) { return get_value(); } + +#endif +simdjson_inline simdjson_result document::count_elements() & noexcept { + auto a = get_array(); + simdjson_result answer = a.count_elements(); + /* If there was an array, we are now left pointing at its first element. */ + if(answer.error() == SUCCESS) { rewind(); } + return answer; +} +simdjson_inline simdjson_result document::count_fields() & noexcept { + auto a = get_object(); + simdjson_result answer = a.count_fields(); + /* If there was an object, we are now left pointing at its first element. */ + if(answer.error() == SUCCESS) { rewind(); } + return answer; +} +simdjson_inline simdjson_result document::at(size_t index) & noexcept { + auto a = get_array(); + return a.at(index); +} +simdjson_inline simdjson_result document::begin() & noexcept { + return get_array().begin(); +} +simdjson_inline simdjson_result document::end() & noexcept { + return {}; +} + +simdjson_inline simdjson_result document::find_field(std::string_view key) & noexcept { + return start_or_resume_object().find_field(key); +} +simdjson_inline simdjson_result document::find_field(const char *key) & noexcept { + return start_or_resume_object().find_field(key); +} +simdjson_inline simdjson_result document::find_field_unordered(std::string_view key) & noexcept { + return start_or_resume_object().find_field_unordered(key); +} +simdjson_inline simdjson_result document::find_field_unordered(const char *key) & noexcept { + return start_or_resume_object().find_field_unordered(key); +} +simdjson_inline simdjson_result document::operator[](std::string_view key) & noexcept { + return start_or_resume_object()[key]; +} +simdjson_inline simdjson_result document::operator[](const char *key) & noexcept { + return start_or_resume_object()[key]; +} + +simdjson_inline error_code document::consume() noexcept { + bool scalar = false; + auto error = is_scalar().get(scalar); + if(error) { return error; } + if(scalar) { + iter.return_current_and_advance(); + return SUCCESS; + } + error = iter.skip_child(0); + if(error) { iter.abandon(); } + return error; +} + +simdjson_inline simdjson_result document::raw_json() noexcept { + auto _iter = get_root_value_iterator(); + const uint8_t * starting_point{_iter.peek_start()}; + auto error = consume(); + if(error) { return error; } + // After 'consume()', we could be left pointing just beyond the document, but that + // is ok because we are not going to dereference the final pointer position, we just + // use it to compute the length in bytes. + const uint8_t * final_point{iter.unsafe_pointer()}; + return std::string_view(reinterpret_cast(starting_point), size_t(final_point - starting_point)); +} + +simdjson_inline simdjson_result document::type() noexcept { + return get_root_value_iterator().type(); +} + +simdjson_inline simdjson_result document::is_scalar() noexcept { + // For more speed, we could do: + // return iter.is_single_token(); + json_type this_type; + auto error = type().get(this_type); + if(error) { return error; } + return ! ((this_type == json_type::array) || (this_type == json_type::object)); +} + +simdjson_inline simdjson_result document::is_string() noexcept { + json_type this_type; + auto error = type().get(this_type); + if(error) { return error; } + return (this_type == json_type::string); +} + +simdjson_inline bool document::is_negative() noexcept { + return get_root_value_iterator().is_root_negative(); +} + +simdjson_inline simdjson_result document::is_integer() noexcept { + return get_root_value_iterator().is_root_integer(true); +} + +simdjson_inline simdjson_result document::get_number_type() noexcept { + return get_root_value_iterator().get_root_number_type(true); +} + +simdjson_inline simdjson_result document::get_number() noexcept { + return get_root_value_iterator().get_root_number(true); +} + + +simdjson_inline simdjson_result document::raw_json_token() noexcept { + auto _iter = get_root_value_iterator(); + return std::string_view(reinterpret_cast(_iter.peek_start()), _iter.peek_root_length()); +} + +simdjson_inline simdjson_result document::at_pointer(std::string_view json_pointer) noexcept { + rewind(); // Rewind the document each time at_pointer is called + if (json_pointer.empty()) { + return this->get_value(); + } + json_type t; + SIMDJSON_TRY(type().get(t)); + switch (t) + { + case json_type::array: + return (*this).get_array().at_pointer(json_pointer); + case json_type::object: + return (*this).get_object().at_pointer(json_pointer); + default: + return INVALID_JSON_POINTER; + } +} + +simdjson_inline simdjson_result document::at_path(std::string_view json_path) noexcept { + rewind(); // Rewind the document each time at_pointer is called + if (json_path.empty()) { + return this->get_value(); + } + json_type t; + SIMDJSON_TRY(type().get(t)); + switch (t) { + case json_type::array: + return (*this).get_array().at_path(json_path); + case json_type::object: + return (*this).get_object().at_path(json_path); + default: + return INVALID_JSON_POINTER; + } +} + +} // namespace ondemand +} // namespace lasx +} // namespace simdjson + +namespace simdjson { + +simdjson_inline simdjson_result::simdjson_result( + lasx::ondemand::document &&value +) noexcept : + implementation_simdjson_result_base( + std::forward(value) + ) +{ +} +simdjson_inline simdjson_result::simdjson_result( + error_code error +) noexcept : + implementation_simdjson_result_base( + error + ) +{ +} +simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { + if (error()) { return error(); } + return first.count_elements(); +} +simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { + if (error()) { return error(); } + return first.count_fields(); +} +simdjson_inline simdjson_result simdjson_result::at(size_t index) & noexcept { + if (error()) { return error(); } + return first.at(index); +} +simdjson_inline error_code simdjson_result::rewind() noexcept { + if (error()) { return error(); } + first.rewind(); + return SUCCESS; +} +simdjson_inline simdjson_result simdjson_result::begin() & noexcept { + if (error()) { return error(); } + return first.begin(); +} +simdjson_inline simdjson_result simdjson_result::end() & noexcept { + return {}; +} +simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) & noexcept { if (error()) { return error(); } return first.find_field_unordered(key); } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) & noexcept { if (error()) { return error(); } return first.find_field_unordered(key); } -simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) & noexcept { +simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) & noexcept { if (error()) { return error(); } return first[key]; } -simdjson_inline simdjson_result simdjson_result::operator[](const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::operator[](const char *key) & noexcept { if (error()) { return error(); } return first[key]; } -simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) & noexcept { if (error()) { return error(); } return first.find_field(key); } -simdjson_inline simdjson_result simdjson_result::find_field(const char *key) & noexcept { +simdjson_inline simdjson_result simdjson_result::find_field(const char *key) & noexcept { if (error()) { return error(); } return first.find_field(key); } -simdjson_inline simdjson_result simdjson_result::get_array() & noexcept { +simdjson_inline simdjson_result simdjson_result::get_array() & noexcept { if (error()) { return error(); } return first.get_array(); } -simdjson_inline simdjson_result simdjson_result::get_object() & noexcept { +simdjson_inline simdjson_result simdjson_result::get_object() & noexcept { if (error()) { return error(); } return first.get_object(); } -simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { +simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { if (error()) { return error(); } return first.get_uint64(); } -simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { if (error()) { return error(); } return first.get_uint64_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { +simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { if (error()) { return error(); } return first.get_int64(); } -simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { if (error()) { return error(); } return first.get_int64_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_double() noexcept { +simdjson_inline simdjson_result simdjson_result::get_double() noexcept { if (error()) { return error(); } return first.get_double(); } -simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { if (error()) { return error(); } return first.get_double_in_string(); } -simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { +simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { if (error()) { return error(); } return first.get_string(allow_replacement); } template -simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { +simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { if (error()) { return error(); } return first.get_string(receiver, allow_replacement); } -simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { if (error()) { return error(); } return first.get_wobbly_string(); } -simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { +simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { if (error()) { return error(); } return first.get_raw_json_string(); } -simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { +simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { if (error()) { return error(); } return first.get_bool(); } -simdjson_inline simdjson_result simdjson_result::get_value() noexcept { +simdjson_inline simdjson_result simdjson_result::get_value() noexcept { if (error()) { return error(); } return first.get_value(); } -simdjson_inline simdjson_result simdjson_result::is_null() noexcept { +simdjson_inline simdjson_result simdjson_result::is_null() noexcept { if (error()) { return error(); } return first.is_null(); } -simdjson_inline simdjson_result simdjson_result::type() noexcept { + +template +simdjson_inline simdjson_result simdjson_result::get() & noexcept { + if (error()) { return error(); } + return first.get(); +} +template +simdjson_deprecated simdjson_inline simdjson_result simdjson_result::get() && noexcept { + if (error()) { return error(); } + return std::forward(first).get(); +} +template +simdjson_inline error_code simdjson_result::get(T &out) & noexcept { + if (error()) { return error(); } + return first.get(out); +} +template +simdjson_inline error_code simdjson_result::get(T &out) && noexcept { + if (error()) { return error(); } + return std::forward(first).get(out); +} + +template<> simdjson_inline simdjson_result simdjson_result::get() & noexcept = delete; +template<> simdjson_deprecated simdjson_inline simdjson_result simdjson_result::get() && noexcept { + if (error()) { return error(); } + return std::forward(first); +} +template<> simdjson_inline error_code simdjson_result::get(lasx::ondemand::document &out) & noexcept = delete; +template<> simdjson_inline error_code simdjson_result::get(lasx::ondemand::document &out) && noexcept { + if (error()) { return error(); } + out = std::forward(first); + return SUCCESS; +} + +simdjson_inline simdjson_result simdjson_result::type() noexcept { if (error()) { return error(); } return first.type(); } -simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { + +simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { if (error()) { return error(); } return first.is_scalar(); } -simdjson_inline simdjson_result simdjson_result::is_string() noexcept { + +simdjson_inline simdjson_result simdjson_result::is_string() noexcept { if (error()) { return error(); } return first.is_string(); } -simdjson_inline simdjson_result simdjson_result::is_negative() noexcept { + +simdjson_inline bool simdjson_result::is_negative() noexcept { if (error()) { return error(); } return first.is_negative(); } -simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { + +simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { if (error()) { return error(); } return first.is_integer(); } -simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { + +simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { if (error()) { return error(); } return first.get_number_type(); } -simdjson_inline simdjson_result simdjson_result::get_number() noexcept { + +simdjson_inline simdjson_result simdjson_result::get_number() noexcept { if (error()) { return error(); } return first.get_number(); } + + #if SIMDJSON_EXCEPTIONS -template ::value == false>::type> -simdjson_inline simdjson_result::operator T() noexcept(false) { +template ::value == false>::type> +simdjson_inline simdjson_result::operator T() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator lasx::ondemand::array() & noexcept(false) { +simdjson_inline simdjson_result::operator lasx::ondemand::array() & noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator lasx::ondemand::object() & noexcept(false) { +simdjson_inline simdjson_result::operator lasx::ondemand::object() & noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { +simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator int64_t() noexcept(false) { +simdjson_inline simdjson_result::operator int64_t() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator double() noexcept(false) { +simdjson_inline simdjson_result::operator double() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { +simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator lasx::ondemand::raw_json_string() noexcept(false) { +simdjson_inline simdjson_result::operator lasx::ondemand::raw_json_string() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator bool() noexcept(false) { +simdjson_inline simdjson_result::operator bool() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } -simdjson_inline simdjson_result::operator lasx::ondemand::value() noexcept(false) { +simdjson_inline simdjson_result::operator lasx::ondemand::value() noexcept(false) { if (error()) { throw simdjson_error(error()); } return first; } #endif -simdjson_inline simdjson_result simdjson_result::current_location() noexcept { + +simdjson_inline simdjson_result simdjson_result::current_location() noexcept { if (error()) { return error(); } return first.current_location(); } -simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { +simdjson_inline bool simdjson_result::at_end() const noexcept { + if (error()) { return error(); } + return first.at_end(); +} + + +simdjson_inline int32_t simdjson_result::current_depth() const noexcept { + if (error()) { return error(); } + return first.current_depth(); +} + +simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { if (error()) { return error(); } return first.raw_json_token(); } -simdjson_inline simdjson_result simdjson_result::at_pointer(std::string_view json_pointer) noexcept { +simdjson_inline simdjson_result simdjson_result::at_pointer(std::string_view json_pointer) noexcept { if (error()) { return error(); } return first.at_pointer(json_pointer); } -simdjson_inline simdjson_result simdjson_result::at_path(std::string_view json_path) noexcept { - if (error()) { - return error(); - } +simdjson_inline simdjson_result simdjson_result::at_path(std::string_view json_path) noexcept { + if (error()) { return error(); } return first.at_path(json_path); } } // namespace simdjson -#endif // SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H -/* end file simdjson/generic/ondemand/document-inl.h for lasx */ -/* including simdjson/generic/ondemand/document_stream-inl.h for lasx: #include "simdjson/generic/ondemand/document_stream-inl.h" */ -/* begin file simdjson/generic/ondemand/document_stream-inl.h for lasx */ -#ifndef SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H - -/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ -/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document_stream.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/implementation_simdjson_result_base-inl.h" */ -/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ - -#include -#include namespace simdjson { namespace lasx { namespace ondemand { -#ifdef SIMDJSON_THREADS_ENABLED - -inline void stage1_worker::finish() { - // After calling "run" someone would call finish() to wait - // for the end of the processing. - // This function will wait until either the thread has done - // the processing or, else, the destructor has been called. - std::unique_lock lock(locking_mutex); - cond_var.wait(lock, [this]{return has_work == false;}); -} - -inline stage1_worker::~stage1_worker() { - // The thread may never outlive the stage1_worker instance - // and will always be stopped/joined before the stage1_worker - // instance is gone. - stop_thread(); -} - -inline void stage1_worker::start_thread() { - std::unique_lock lock(locking_mutex); - if(thread.joinable()) { - return; // This should never happen but we never want to create more than one thread. - } - thread = std::thread([this]{ - while(true) { - std::unique_lock thread_lock(locking_mutex); - // We wait for either "run" or "stop_thread" to be called. - cond_var.wait(thread_lock, [this]{return has_work || !can_work;}); - // If, for some reason, the stop_thread() method was called (i.e., the - // destructor of stage1_worker is called, then we want to immediately destroy - // the thread (and not do any more processing). - if(!can_work) { - break; - } - this->owner->stage1_thread_error = this->owner->run_stage1(*this->stage1_thread_parser, - this->_next_batch_start); - this->has_work = false; - // The condition variable call should be moved after thread_lock.unlock() for performance - // reasons but thread sanitizers may report it as a data race if we do. - // See https://stackoverflow.com/questions/35775501/c-should-condition-variable-be-notified-under-lock - cond_var.notify_one(); // will notify "finish" - thread_lock.unlock(); - } - } - ); -} - - -inline void stage1_worker::stop_thread() { - std::unique_lock lock(locking_mutex); - // We have to make sure that all locks can be released. - can_work = false; - has_work = false; - cond_var.notify_all(); - lock.unlock(); - if(thread.joinable()) { - thread.join(); - } -} - -inline void stage1_worker::run(document_stream * ds, parser * stage1, size_t next_batch_start) { - std::unique_lock lock(locking_mutex); - owner = ds; - _next_batch_start = next_batch_start; - stage1_thread_parser = stage1; - has_work = true; - // The condition variable call should be moved after thread_lock.unlock() for performance - // reasons but thread sanitizers may report it as a data race if we do. - // See https://stackoverflow.com/questions/35775501/c-should-condition-variable-be-notified-under-lock - cond_var.notify_one(); // will notify the thread lock that we have work - lock.unlock(); -} - -#endif // SIMDJSON_THREADS_ENABLED - -simdjson_inline document_stream::document_stream( - ondemand::parser &_parser, - const uint8_t *_buf, +simdjson_inline document_reference::document_reference() noexcept : doc{nullptr} {} +simdjson_inline document_reference::document_reference(document &d) noexcept : doc(&d) {} +simdjson_inline void document_reference::rewind() noexcept { doc->rewind(); } +simdjson_inline simdjson_result document_reference::get_array() & noexcept { return doc->get_array(); } +simdjson_inline simdjson_result document_reference::get_object() & noexcept { return doc->get_object(); } +/** + * The document_reference instances are used primarily/solely for streams of JSON + * documents. + * We decided that calling 'get_double()' on the JSON document '1.233 blabla' should + * give an error, so we check for trailing content. + * + * However, for streams of JSON documents, we want to be able to start from + * "321" "321" "321" + * and parse it successfully as a stream of JSON documents, calling get_uint64_in_string() + * successfully each time. + * + * To achieve this result, we pass a 'false' to a get_root_value_iterator() method: + * this indicates that we allow trailing content. + */ +simdjson_inline simdjson_result document_reference::get_uint64() noexcept { return doc->get_root_value_iterator().get_root_uint64(false); } +simdjson_inline simdjson_result document_reference::get_uint64_in_string() noexcept { return doc->get_root_value_iterator().get_root_uint64_in_string(false); } +simdjson_inline simdjson_result document_reference::get_int64() noexcept { return doc->get_root_value_iterator().get_root_int64(false); } +simdjson_inline simdjson_result document_reference::get_int64_in_string() noexcept { return doc->get_root_value_iterator().get_root_int64_in_string(false); } +simdjson_inline simdjson_result document_reference::get_double() noexcept { return doc->get_root_value_iterator().get_root_double(false); } +simdjson_inline simdjson_result document_reference::get_double_in_string() noexcept { return doc->get_root_value_iterator().get_root_double(false); } +simdjson_inline simdjson_result document_reference::get_string(bool allow_replacement) noexcept { return doc->get_root_value_iterator().get_root_string(false, allow_replacement); } +template +simdjson_inline error_code document_reference::get_string(string_type& receiver, bool allow_replacement) noexcept { return doc->get_root_value_iterator().get_root_string(receiver, false, allow_replacement); } +simdjson_inline simdjson_result document_reference::get_wobbly_string() noexcept { return doc->get_root_value_iterator().get_root_wobbly_string(false); } +simdjson_inline simdjson_result document_reference::get_raw_json_string() noexcept { return doc->get_root_value_iterator().get_root_raw_json_string(false); } +simdjson_inline simdjson_result document_reference::get_bool() noexcept { return doc->get_root_value_iterator().get_root_bool(false); } +simdjson_inline simdjson_result document_reference::get_value() noexcept { return doc->get_value(); } +simdjson_inline simdjson_result document_reference::is_null() noexcept { return doc->get_root_value_iterator().is_root_null(false); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_array(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_object(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_raw_json_string(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_string(false); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_double(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_uint64(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_int64(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_bool(); } +template<> simdjson_inline simdjson_result document_reference::get() & noexcept { return get_value(); } +#if SIMDJSON_EXCEPTIONS +template +simdjson_inline document_reference::operator T() noexcept(false) { return get(); } +simdjson_inline document_reference::operator array() & noexcept(false) { return array(*doc); } +simdjson_inline document_reference::operator object() & noexcept(false) { return object(*doc); } +simdjson_inline document_reference::operator uint64_t() noexcept(false) { return get_uint64(); } +simdjson_inline document_reference::operator int64_t() noexcept(false) { return get_int64(); } +simdjson_inline document_reference::operator double() noexcept(false) { return get_double(); } +simdjson_inline document_reference::operator std::string_view() noexcept(false) { return std::string_view(*doc); } +simdjson_inline document_reference::operator raw_json_string() noexcept(false) { return get_raw_json_string(); } +simdjson_inline document_reference::operator bool() noexcept(false) { return get_bool(); } +simdjson_inline document_reference::operator value() noexcept(false) { return value(*doc); } +#endif +simdjson_inline simdjson_result document_reference::count_elements() & noexcept { return doc->count_elements(); } +simdjson_inline simdjson_result document_reference::count_fields() & noexcept { return doc->count_fields(); } +simdjson_inline simdjson_result document_reference::at(size_t index) & noexcept { return doc->at(index); } +simdjson_inline simdjson_result document_reference::begin() & noexcept { return doc->begin(); } +simdjson_inline simdjson_result document_reference::end() & noexcept { return doc->end(); } +simdjson_inline simdjson_result document_reference::find_field(std::string_view key) & noexcept { return doc->find_field(key); } +simdjson_inline simdjson_result document_reference::find_field(const char *key) & noexcept { return doc->find_field(key); } +simdjson_inline simdjson_result document_reference::operator[](std::string_view key) & noexcept { return (*doc)[key]; } +simdjson_inline simdjson_result document_reference::operator[](const char *key) & noexcept { return (*doc)[key]; } +simdjson_inline simdjson_result document_reference::find_field_unordered(std::string_view key) & noexcept { return doc->find_field_unordered(key); } +simdjson_inline simdjson_result document_reference::find_field_unordered(const char *key) & noexcept { return doc->find_field_unordered(key); } +simdjson_inline simdjson_result document_reference::type() noexcept { return doc->type(); } +simdjson_inline simdjson_result document_reference::is_scalar() noexcept { return doc->is_scalar(); } +simdjson_inline simdjson_result document_reference::is_string() noexcept { return doc->is_string(); } +simdjson_inline simdjson_result document_reference::current_location() noexcept { return doc->current_location(); } +simdjson_inline int32_t document_reference::current_depth() const noexcept { return doc->current_depth(); } +simdjson_inline bool document_reference::is_negative() noexcept { return doc->is_negative(); } +simdjson_inline simdjson_result document_reference::is_integer() noexcept { return doc->get_root_value_iterator().is_root_integer(false); } +simdjson_inline simdjson_result document_reference::get_number_type() noexcept { return doc->get_root_value_iterator().get_root_number_type(false); } +simdjson_inline simdjson_result document_reference::get_number() noexcept { return doc->get_root_value_iterator().get_root_number(false); } +simdjson_inline simdjson_result document_reference::raw_json_token() noexcept { return doc->raw_json_token(); } +simdjson_inline simdjson_result document_reference::at_pointer(std::string_view json_pointer) noexcept { return doc->at_pointer(json_pointer); } +simdjson_inline simdjson_result document_reference::at_path(std::string_view json_path) noexcept { return doc->at_path(json_path); } +simdjson_inline simdjson_result document_reference::raw_json() noexcept { return doc->raw_json();} +simdjson_inline document_reference::operator document&() const noexcept { return *doc; } + +} // namespace ondemand +} // namespace lasx +} // namespace simdjson + + + +namespace simdjson { +simdjson_inline simdjson_result::simdjson_result(lasx::ondemand::document_reference value, error_code error) + noexcept : implementation_simdjson_result_base(std::forward(value), error) {} + + +simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { + if (error()) { return error(); } + return first.count_elements(); +} +simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { + if (error()) { return error(); } + return first.count_fields(); +} +simdjson_inline simdjson_result simdjson_result::at(size_t index) & noexcept { + if (error()) { return error(); } + return first.at(index); +} +simdjson_inline error_code simdjson_result::rewind() noexcept { + if (error()) { return error(); } + first.rewind(); + return SUCCESS; +} +simdjson_inline simdjson_result simdjson_result::begin() & noexcept { + if (error()) { return error(); } + return first.begin(); +} +simdjson_inline simdjson_result simdjson_result::end() & noexcept { + return {}; +} +simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) & noexcept { + if (error()) { return error(); } + return first.find_field_unordered(key); +} +simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) & noexcept { + if (error()) { return error(); } + return first.find_field_unordered(key); +} +simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) & noexcept { + if (error()) { return error(); } + return first[key]; +} +simdjson_inline simdjson_result simdjson_result::operator[](const char *key) & noexcept { + if (error()) { return error(); } + return first[key]; +} +simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) & noexcept { + if (error()) { return error(); } + return first.find_field(key); +} +simdjson_inline simdjson_result simdjson_result::find_field(const char *key) & noexcept { + if (error()) { return error(); } + return first.find_field(key); +} +simdjson_inline simdjson_result simdjson_result::get_array() & noexcept { + if (error()) { return error(); } + return first.get_array(); +} +simdjson_inline simdjson_result simdjson_result::get_object() & noexcept { + if (error()) { return error(); } + return first.get_object(); +} +simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { + if (error()) { return error(); } + return first.get_uint64(); +} +simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { + if (error()) { return error(); } + return first.get_uint64_in_string(); +} +simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { + if (error()) { return error(); } + return first.get_int64(); +} +simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { + if (error()) { return error(); } + return first.get_int64_in_string(); +} +simdjson_inline simdjson_result simdjson_result::get_double() noexcept { + if (error()) { return error(); } + return first.get_double(); +} +simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { + if (error()) { return error(); } + return first.get_double_in_string(); +} +simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { + if (error()) { return error(); } + return first.get_string(allow_replacement); +} +template +simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { + if (error()) { return error(); } + return first.get_string(receiver, allow_replacement); +} +simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { + if (error()) { return error(); } + return first.get_wobbly_string(); +} +simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { + if (error()) { return error(); } + return first.get_raw_json_string(); +} +simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { + if (error()) { return error(); } + return first.get_bool(); +} +simdjson_inline simdjson_result simdjson_result::get_value() noexcept { + if (error()) { return error(); } + return first.get_value(); +} +simdjson_inline simdjson_result simdjson_result::is_null() noexcept { + if (error()) { return error(); } + return first.is_null(); +} +template +simdjson_inline simdjson_result simdjson_result::get() & noexcept { + if (error()) { return error(); } + return first.get(); +} +template +simdjson_inline simdjson_result simdjson_result::get() && noexcept { + if (error()) { return error(); } + return std::forward(first).get(); +} +template +simdjson_inline error_code simdjson_result::get(T &out) & noexcept { + if (error()) { return error(); } + return first.get(out); +} +template +simdjson_inline error_code simdjson_result::get(T &out) && noexcept { + if (error()) { return error(); } + return std::forward(first).get(out); +} +simdjson_inline simdjson_result simdjson_result::type() noexcept { + if (error()) { return error(); } + return first.type(); +} +simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { + if (error()) { return error(); } + return first.is_scalar(); +} +simdjson_inline simdjson_result simdjson_result::is_string() noexcept { + if (error()) { return error(); } + return first.is_string(); +} +template <> +simdjson_inline error_code simdjson_result::get(lasx::ondemand::document_reference &out) & noexcept { + if (error()) { return error(); } + out = first; + return SUCCESS; +} +template <> +simdjson_inline error_code simdjson_result::get(lasx::ondemand::document_reference &out) && noexcept { + if (error()) { return error(); } + out = first; + return SUCCESS; +} +simdjson_inline simdjson_result simdjson_result::is_negative() noexcept { + if (error()) { return error(); } + return first.is_negative(); +} +simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { + if (error()) { return error(); } + return first.is_integer(); +} +simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { + if (error()) { return error(); } + return first.get_number_type(); +} +simdjson_inline simdjson_result simdjson_result::get_number() noexcept { + if (error()) { return error(); } + return first.get_number(); +} +#if SIMDJSON_EXCEPTIONS +template +simdjson_inline simdjson_result::operator T() noexcept(false) { + static_assert(std::is_same::value == false, "You should not call get when T is a document"); + static_assert(std::is_same::value == false, "You should not call get when T is a document"); + if (error()) { throw simdjson_error(error()); } + return first.get(); +} +simdjson_inline simdjson_result::operator lasx::ondemand::array() & noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator lasx::ondemand::object() & noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator int64_t() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator double() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator lasx::ondemand::raw_json_string() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator bool() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +simdjson_inline simdjson_result::operator lasx::ondemand::value() noexcept(false) { + if (error()) { throw simdjson_error(error()); } + return first; +} +#endif + +simdjson_inline simdjson_result simdjson_result::current_location() noexcept { + if (error()) { return error(); } + return first.current_location(); +} + +simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { + if (error()) { return error(); } + return first.raw_json_token(); +} + +simdjson_inline simdjson_result simdjson_result::at_pointer(std::string_view json_pointer) noexcept { + if (error()) { return error(); } + return first.at_pointer(json_pointer); +} + +simdjson_inline simdjson_result simdjson_result::at_path(std::string_view json_path) noexcept { + if (error()) { + return error(); + } + return first.at_path(json_path); +} + +} // namespace simdjson + +#endif // SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H +/* end file simdjson/generic/ondemand/document-inl.h for lasx */ +/* including simdjson/generic/ondemand/document_stream-inl.h for lasx: #include "simdjson/generic/ondemand/document_stream-inl.h" */ +/* begin file simdjson/generic/ondemand/document_stream-inl.h for lasx */ +#ifndef SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H + +/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ +/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document_stream.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/implementation_simdjson_result_base-inl.h" */ +/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ + +#include +#include + +namespace simdjson { +namespace lasx { +namespace ondemand { + +#ifdef SIMDJSON_THREADS_ENABLED + +inline void stage1_worker::finish() { + // After calling "run" someone would call finish() to wait + // for the end of the processing. + // This function will wait until either the thread has done + // the processing or, else, the destructor has been called. + std::unique_lock lock(locking_mutex); + cond_var.wait(lock, [this]{return has_work == false;}); +} + +inline stage1_worker::~stage1_worker() { + // The thread may never outlive the stage1_worker instance + // and will always be stopped/joined before the stage1_worker + // instance is gone. + stop_thread(); +} + +inline void stage1_worker::start_thread() { + std::unique_lock lock(locking_mutex); + if(thread.joinable()) { + return; // This should never happen but we never want to create more than one thread. + } + thread = std::thread([this]{ + while(true) { + std::unique_lock thread_lock(locking_mutex); + // We wait for either "run" or "stop_thread" to be called. + cond_var.wait(thread_lock, [this]{return has_work || !can_work;}); + // If, for some reason, the stop_thread() method was called (i.e., the + // destructor of stage1_worker is called, then we want to immediately destroy + // the thread (and not do any more processing). + if(!can_work) { + break; + } + this->owner->stage1_thread_error = this->owner->run_stage1(*this->stage1_thread_parser, + this->_next_batch_start); + this->has_work = false; + // The condition variable call should be moved after thread_lock.unlock() for performance + // reasons but thread sanitizers may report it as a data race if we do. + // See https://stackoverflow.com/questions/35775501/c-should-condition-variable-be-notified-under-lock + cond_var.notify_one(); // will notify "finish" + thread_lock.unlock(); + } + } + ); +} + + +inline void stage1_worker::stop_thread() { + std::unique_lock lock(locking_mutex); + // We have to make sure that all locks can be released. + can_work = false; + has_work = false; + cond_var.notify_all(); + lock.unlock(); + if(thread.joinable()) { + thread.join(); + } +} + +inline void stage1_worker::run(document_stream * ds, parser * stage1, size_t next_batch_start) { + std::unique_lock lock(locking_mutex); + owner = ds; + _next_batch_start = next_batch_start; + stage1_thread_parser = stage1; + has_work = true; + // The condition variable call should be moved after thread_lock.unlock() for performance + // reasons but thread sanitizers may report it as a data race if we do. + // See https://stackoverflow.com/questions/35775501/c-should-condition-variable-be-notified-under-lock + cond_var.notify_one(); // will notify the thread lock that we have work + lock.unlock(); +} + +#endif // SIMDJSON_THREADS_ENABLED + +simdjson_inline document_stream::document_stream( + ondemand::parser &_parser, + const uint8_t *_buf, size_t _len, size_t _batch_size, bool _allow_comma_separated @@ -114237,7 +119266,6 @@ simdjson_inline document_stream::iterator::iterator(document_stream* _stream, bo } simdjson_inline simdjson_result document_stream::iterator::operator*() noexcept { - //if(stream->error) { return stream->error; } return simdjson_result(stream->doc, stream->error); } @@ -116096,36 +121124,39 @@ simdjson_inline const char * raw_json_string::raw() const noexcept { return rein simdjson_inline bool raw_json_string::is_free_from_unescaped_quote(std::string_view target) noexcept { size_t pos{0}; - // if the content has no escape character, just scan through it quickly! - for(;pos < target.size() && target[pos] != '\\';pos++) {} - // slow path may begin. - bool escaping{false}; - for(;pos < target.size();pos++) { - if((target[pos] == '"') && !escaping) { - return false; - } else if(target[pos] == '\\') { - escaping = !escaping; - } else { - escaping = false; + while(pos < target.size()) { + pos = target.find('"', pos); + if(pos == std::string_view::npos) { return true; } + if(pos != 0 && target[pos-1] != '\\') { return false; } + if(pos > 1 && target[pos-2] == '\\') { + size_t backslash_count{2}; + for(size_t i = 3; i <= pos; i++) { + if(target[pos-i] == '\\') { backslash_count++; } + else { break; } + } + if(backslash_count % 2 == 0) { return false; } } + pos++; } return true; } simdjson_inline bool raw_json_string::is_free_from_unescaped_quote(const char* target) noexcept { size_t pos{0}; - // if the content has no escape character, just scan through it quickly! - for(;target[pos] && target[pos] != '\\';pos++) {} - // slow path may begin. - bool escaping{false}; - for(;target[pos];pos++) { - if((target[pos] == '"') && !escaping) { - return false; - } else if(target[pos] == '\\') { - escaping = !escaping; - } else { - escaping = false; + while(target[pos]) { + const char * result = strchr(target+pos, '"'); + if(result == nullptr) { return true; } + pos = result - target; + if(pos != 0 && target[pos-1] != '\\') { return false; } + if(pos > 1 && target[pos-2] == '\\') { + size_t backslash_count{2}; + for(size_t i = 3; i <= pos; i++) { + if(target[pos-i] == '\\') { backslash_count++; } + else { break; } + } + if(backslash_count % 2 == 0) { return false; } } + pos++; } return true; } @@ -116137,7 +121168,7 @@ simdjson_inline bool raw_json_string::unsafe_is_equal(size_t length, std::string } simdjson_inline bool raw_json_string::unsafe_is_equal(std::string_view target) const noexcept { - // Assumptions: does not contain unescaped quote characters, and + // Assumptions: does not contain unescaped quote characters("), and // the raw content is quote terminated within a valid JSON string. if(target.size() <= SIMDJSON_PADDING) { return (raw()[target.size()] == '"') && !memcmp(raw(), target.data(), target.size()); @@ -116225,681 +121256,29 @@ simdjson_unused simdjson_inline bool operator!=(const raw_json_string &a, std::s } simdjson_unused simdjson_inline bool operator!=(std::string_view c, const raw_json_string &a) noexcept { - return !(a == c); -} - - -simdjson_inline simdjson_warn_unused simdjson_result raw_json_string::unescape(json_iterator &iter, bool allow_replacement) const noexcept { - return iter.unescape(*this, allow_replacement); -} - -simdjson_inline simdjson_warn_unused simdjson_result raw_json_string::unescape_wobbly(json_iterator &iter) const noexcept { - return iter.unescape_wobbly(*this); -} - -simdjson_unused simdjson_inline std::ostream &operator<<(std::ostream &out, const raw_json_string &str) noexcept { - bool in_escape = false; - const char *s = str.raw(); - while (true) { - switch (*s) { - case '\\': in_escape = !in_escape; break; - case '"': if (in_escape) { in_escape = false; } else { return out; } break; - default: if (in_escape) { in_escape = false; } - } - out << *s; - s++; - } -} - -} // namespace ondemand -} // namespace lasx -} // namespace simdjson - -namespace simdjson { - -simdjson_inline simdjson_result::simdjson_result(lasx::ondemand::raw_json_string &&value) noexcept - : implementation_simdjson_result_base(std::forward(value)) {} -simdjson_inline simdjson_result::simdjson_result(error_code error) noexcept - : implementation_simdjson_result_base(error) {} - -simdjson_inline simdjson_result simdjson_result::raw() const noexcept { - if (error()) { return error(); } - return first.raw(); -} -simdjson_inline simdjson_warn_unused simdjson_result simdjson_result::unescape(lasx::ondemand::json_iterator &iter, bool allow_replacement) const noexcept { - if (error()) { return error(); } - return first.unescape(iter, allow_replacement); -} -simdjson_inline simdjson_warn_unused simdjson_result simdjson_result::unescape_wobbly(lasx::ondemand::json_iterator &iter) const noexcept { - if (error()) { return error(); } - return first.unescape_wobbly(iter); -} -} // namespace simdjson - -#endif // SIMDJSON_GENERIC_ONDEMAND_RAW_JSON_STRING_INL_H -/* end file simdjson/generic/ondemand/raw_json_string-inl.h for lasx */ -/* including simdjson/generic/ondemand/serialization-inl.h for lasx: #include "simdjson/generic/ondemand/serialization-inl.h" */ -/* begin file simdjson/generic/ondemand/serialization-inl.h for lasx */ -#ifndef SIMDJSON_GENERIC_ONDEMAND_SERIALIZATION_INL_H - -/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ -/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_SERIALIZATION_INL_H */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document-inl.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/serialization.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ -/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ - -namespace simdjson { - -inline std::string_view trim(const std::string_view str) noexcept { - // We can almost surely do better by rolling our own find_first_not_of function. - size_t first = str.find_first_not_of(" \t\n\r"); - // If we have the empty string (just white space), then no trimming is possible, and - // we return the empty string_view. - if (std::string_view::npos == first) { return std::string_view(); } - size_t last = str.find_last_not_of(" \t\n\r"); - return str.substr(first, (last - first + 1)); -} - - -inline simdjson_result to_json_string(lasx::ondemand::document& x) noexcept { - std::string_view v; - auto error = x.raw_json().get(v); - if(error) {return error; } - return trim(v); -} - -inline simdjson_result to_json_string(lasx::ondemand::document_reference& x) noexcept { - std::string_view v; - auto error = x.raw_json().get(v); - if(error) {return error; } - return trim(v); -} - -inline simdjson_result to_json_string(lasx::ondemand::value& x) noexcept { - /** - * If we somehow receive a value that has already been consumed, - * then the following code could be in trouble. E.g., we create - * an array as needed, but if an array was already created, then - * it could be bad. - */ - using namespace lasx::ondemand; - lasx::ondemand::json_type t; - auto error = x.type().get(t); - if(error != SUCCESS) { return error; } - switch (t) - { - case json_type::array: - { - lasx::ondemand::array array; - error = x.get_array().get(array); - if(error) { return error; } - return to_json_string(array); - } - case json_type::object: - { - lasx::ondemand::object object; - error = x.get_object().get(object); - if(error) { return error; } - return to_json_string(object); - } - default: - return trim(x.raw_json_token()); - } -} - -inline simdjson_result to_json_string(lasx::ondemand::object& x) noexcept { - std::string_view v; - auto error = x.raw_json().get(v); - if(error) {return error; } - return trim(v); -} - -inline simdjson_result to_json_string(lasx::ondemand::array& x) noexcept { - std::string_view v; - auto error = x.raw_json().get(v); - if(error) {return error; } - return trim(v); -} - -inline simdjson_result to_json_string(simdjson_result x) { - if (x.error()) { return x.error(); } - return to_json_string(x.value_unsafe()); -} - -inline simdjson_result to_json_string(simdjson_result x) { - if (x.error()) { return x.error(); } - return to_json_string(x.value_unsafe()); -} - -inline simdjson_result to_json_string(simdjson_result x) { - if (x.error()) { return x.error(); } - return to_json_string(x.value_unsafe()); -} - -inline simdjson_result to_json_string(simdjson_result x) { - if (x.error()) { return x.error(); } - return to_json_string(x.value_unsafe()); -} - -inline simdjson_result to_json_string(simdjson_result x) { - if (x.error()) { return x.error(); } - return to_json_string(x.value_unsafe()); -} -} // namespace simdjson - -namespace simdjson { namespace lasx { namespace ondemand { - -#if SIMDJSON_EXCEPTIONS -inline std::ostream& operator<<(std::ostream& out, simdjson::lasx::ondemand::value x) { - std::string_view v; - auto error = simdjson::to_json_string(x).get(v); - if(error == simdjson::SUCCESS) { - return (out << v); - } else { - throw simdjson::simdjson_error(error); - } -} -inline std::ostream& operator<<(std::ostream& out, simdjson::simdjson_result x) { - if (x.error()) { throw simdjson::simdjson_error(x.error()); } - return (out << x.value()); -} -#else -inline std::ostream& operator<<(std::ostream& out, simdjson::lasx::ondemand::value x) { - std::string_view v; - auto error = simdjson::to_json_string(x).get(v); - if(error == simdjson::SUCCESS) { - return (out << v); - } else { - return (out << error); - } -} -#endif - -#if SIMDJSON_EXCEPTIONS -inline std::ostream& operator<<(std::ostream& out, simdjson::lasx::ondemand::array value) { - std::string_view v; - auto error = simdjson::to_json_string(value).get(v); - if(error == simdjson::SUCCESS) { - return (out << v); - } else { - throw simdjson::simdjson_error(error); - } -} -inline std::ostream& operator<<(std::ostream& out, simdjson::simdjson_result x) { - if (x.error()) { throw simdjson::simdjson_error(x.error()); } - return (out << x.value()); -} -#else -inline std::ostream& operator<<(std::ostream& out, simdjson::lasx::ondemand::array value) { - std::string_view v; - auto error = simdjson::to_json_string(value).get(v); - if(error == simdjson::SUCCESS) { - return (out << v); - } else { - return (out << error); - } -} -#endif - -#if SIMDJSON_EXCEPTIONS -inline std::ostream& operator<<(std::ostream& out, simdjson::lasx::ondemand::document& value) { - std::string_view v; - auto error = simdjson::to_json_string(value).get(v); - if(error == simdjson::SUCCESS) { - return (out << v); - } else { - throw simdjson::simdjson_error(error); - } -} -inline std::ostream& operator<<(std::ostream& out, simdjson::lasx::ondemand::document_reference& value) { - std::string_view v; - auto error = simdjson::to_json_string(value).get(v); - if(error == simdjson::SUCCESS) { - return (out << v); - } else { - throw simdjson::simdjson_error(error); - } -} -inline std::ostream& operator<<(std::ostream& out, simdjson::simdjson_result&& x) { - if (x.error()) { throw simdjson::simdjson_error(x.error()); } - return (out << x.value()); -} -inline std::ostream& operator<<(std::ostream& out, simdjson::simdjson_result&& x) { - if (x.error()) { throw simdjson::simdjson_error(x.error()); } - return (out << x.value()); -} -#else -inline std::ostream& operator<<(std::ostream& out, simdjson::lasx::ondemand::document& value) { - std::string_view v; - auto error = simdjson::to_json_string(value).get(v); - if(error == simdjson::SUCCESS) { - return (out << v); - } else { - return (out << error); - } -} -#endif - -#if SIMDJSON_EXCEPTIONS -inline std::ostream& operator<<(std::ostream& out, simdjson::lasx::ondemand::object value) { - std::string_view v; - auto error = simdjson::to_json_string(value).get(v); - if(error == simdjson::SUCCESS) { - return (out << v); - } else { - throw simdjson::simdjson_error(error); - } -} -inline std::ostream& operator<<(std::ostream& out, simdjson::simdjson_result x) { - if (x.error()) { throw simdjson::simdjson_error(x.error()); } - return (out << x.value()); -} -#else -inline std::ostream& operator<<(std::ostream& out, simdjson::lasx::ondemand::object value) { - std::string_view v; - auto error = simdjson::to_json_string(value).get(v); - if(error == simdjson::SUCCESS) { - return (out << v); - } else { - return (out << error); - } -} -#endif -}}} // namespace simdjson::lasx::ondemand - -#endif // SIMDJSON_GENERIC_ONDEMAND_SERIALIZATION_INL_H -/* end file simdjson/generic/ondemand/serialization-inl.h for lasx */ -/* including simdjson/generic/ondemand/token_iterator-inl.h for lasx: #include "simdjson/generic/ondemand/token_iterator-inl.h" */ -/* begin file simdjson/generic/ondemand/token_iterator-inl.h for lasx */ -#ifndef SIMDJSON_GENERIC_ONDEMAND_TOKEN_ITERATOR_INL_H - -/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ -/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_TOKEN_ITERATOR_INL_H */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/token_iterator.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/implementation_simdjson_result_base-inl.h" */ -/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ - -namespace simdjson { -namespace lasx { -namespace ondemand { - -simdjson_inline token_iterator::token_iterator( - const uint8_t *_buf, - token_position position -) noexcept : buf{_buf}, _position{position} -{ -} - -simdjson_inline uint32_t token_iterator::current_offset() const noexcept { - return *(_position); -} - - -simdjson_inline const uint8_t *token_iterator::return_current_and_advance() noexcept { - return &buf[*(_position++)]; -} - -simdjson_inline const uint8_t *token_iterator::peek(token_position position) const noexcept { - return &buf[*position]; -} -simdjson_inline uint32_t token_iterator::peek_index(token_position position) const noexcept { - return *position; -} -simdjson_inline uint32_t token_iterator::peek_length(token_position position) const noexcept { - return *(position+1) - *position; -} - -simdjson_inline uint32_t token_iterator::peek_root_length(token_position position) const noexcept { - return *(position+2) - *(position) > *(position+1) - *(position) ? - *(position+1) - *(position) - : *(position+2) - *(position); -} -simdjson_inline const uint8_t *token_iterator::peek(int32_t delta) const noexcept { - return &buf[*(_position+delta)]; -} -simdjson_inline uint32_t token_iterator::peek_index(int32_t delta) const noexcept { - return *(_position+delta); -} -simdjson_inline uint32_t token_iterator::peek_length(int32_t delta) const noexcept { - return *(_position+delta+1) - *(_position+delta); -} - -simdjson_inline token_position token_iterator::position() const noexcept { - return _position; -} -simdjson_inline void token_iterator::set_position(token_position target_position) noexcept { - _position = target_position; -} - -simdjson_inline bool token_iterator::operator==(const token_iterator &other) const noexcept { - return _position == other._position; -} -simdjson_inline bool token_iterator::operator!=(const token_iterator &other) const noexcept { - return _position != other._position; -} -simdjson_inline bool token_iterator::operator>(const token_iterator &other) const noexcept { - return _position > other._position; -} -simdjson_inline bool token_iterator::operator>=(const token_iterator &other) const noexcept { - return _position >= other._position; -} -simdjson_inline bool token_iterator::operator<(const token_iterator &other) const noexcept { - return _position < other._position; -} -simdjson_inline bool token_iterator::operator<=(const token_iterator &other) const noexcept { - return _position <= other._position; -} - -} // namespace ondemand -} // namespace lasx -} // namespace simdjson - -namespace simdjson { - -simdjson_inline simdjson_result::simdjson_result(lasx::ondemand::token_iterator &&value) noexcept - : implementation_simdjson_result_base(std::forward(value)) {} -simdjson_inline simdjson_result::simdjson_result(error_code error) noexcept - : implementation_simdjson_result_base(error) {} - -} // namespace simdjson - -#endif // SIMDJSON_GENERIC_ONDEMAND_TOKEN_ITERATOR_INL_H -/* end file simdjson/generic/ondemand/token_iterator-inl.h for lasx */ -/* including simdjson/generic/ondemand/value-inl.h for lasx: #include "simdjson/generic/ondemand/value-inl.h" */ -/* begin file simdjson/generic/ondemand/value-inl.h for lasx */ -#ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H - -/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ -/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array_iterator.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_iterator.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/raw_json_string.h" */ -/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ -/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ - -namespace simdjson { -namespace lasx { -namespace ondemand { - -simdjson_inline value::value(const value_iterator &_iter) noexcept - : iter{_iter} -{ -} -simdjson_inline value value::start(const value_iterator &iter) noexcept { - return iter; -} -simdjson_inline value value::resume(const value_iterator &iter) noexcept { - return iter; -} - -simdjson_inline simdjson_result value::get_array() noexcept { - return array::start(iter); -} -simdjson_inline simdjson_result value::get_object() noexcept { - return object::start(iter); -} -simdjson_inline simdjson_result value::start_or_resume_object() noexcept { - if (iter.at_start()) { - return get_object(); - } else { - return object::resume(iter); - } -} - -simdjson_inline simdjson_result value::get_raw_json_string() noexcept { - return iter.get_raw_json_string(); -} -simdjson_inline simdjson_result value::get_string(bool allow_replacement) noexcept { - return iter.get_string(allow_replacement); -} -template -simdjson_inline error_code value::get_string(string_type& receiver, bool allow_replacement) noexcept { - return iter.get_string(receiver, allow_replacement); -} -simdjson_inline simdjson_result value::get_wobbly_string() noexcept { - return iter.get_wobbly_string(); -} -simdjson_inline simdjson_result value::get_double() noexcept { - return iter.get_double(); -} -simdjson_inline simdjson_result value::get_double_in_string() noexcept { - return iter.get_double_in_string(); -} -simdjson_inline simdjson_result value::get_uint64() noexcept { - return iter.get_uint64(); -} -simdjson_inline simdjson_result value::get_uint64_in_string() noexcept { - return iter.get_uint64_in_string(); -} -simdjson_inline simdjson_result value::get_int64() noexcept { - return iter.get_int64(); -} -simdjson_inline simdjson_result value::get_int64_in_string() noexcept { - return iter.get_int64_in_string(); -} -simdjson_inline simdjson_result value::get_bool() noexcept { - return iter.get_bool(); -} -simdjson_inline simdjson_result value::is_null() noexcept { - return iter.is_null(); -} -template<> simdjson_inline simdjson_result value::get() noexcept { return get_array(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_object(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_raw_json_string(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_string(false); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_number(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_double(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_uint64(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_int64(); } -template<> simdjson_inline simdjson_result value::get() noexcept { return get_bool(); } - -template simdjson_inline error_code value::get(T &out) noexcept { - return get().get(out); -} - -#if SIMDJSON_EXCEPTIONS -template -simdjson_inline value::operator T() noexcept(false) { - return get(); -} -simdjson_inline value::operator array() noexcept(false) { - return get_array(); -} -simdjson_inline value::operator object() noexcept(false) { - return get_object(); -} -simdjson_inline value::operator uint64_t() noexcept(false) { - return get_uint64(); -} -simdjson_inline value::operator int64_t() noexcept(false) { - return get_int64(); -} -simdjson_inline value::operator double() noexcept(false) { - return get_double(); -} -simdjson_inline value::operator std::string_view() noexcept(false) { - return get_string(false); -} -simdjson_inline value::operator raw_json_string() noexcept(false) { - return get_raw_json_string(); -} -simdjson_inline value::operator bool() noexcept(false) { - return get_bool(); -} -#endif - -simdjson_inline simdjson_result value::begin() & noexcept { - return get_array().begin(); -} -simdjson_inline simdjson_result value::end() & noexcept { - return {}; -} -simdjson_inline simdjson_result value::count_elements() & noexcept { - simdjson_result answer; - auto a = get_array(); - answer = a.count_elements(); - // count_elements leaves you pointing inside the array, at the first element. - // We need to move back so that the user can create a new array (which requires that - // we point at '['). - iter.move_at_start(); - return answer; -} -simdjson_inline simdjson_result value::count_fields() & noexcept { - simdjson_result answer; - auto a = get_object(); - answer = a.count_fields(); - iter.move_at_start(); - return answer; -} -simdjson_inline simdjson_result value::at(size_t index) noexcept { - auto a = get_array(); - return a.at(index); -} - -simdjson_inline simdjson_result value::find_field(std::string_view key) noexcept { - return start_or_resume_object().find_field(key); -} -simdjson_inline simdjson_result value::find_field(const char *key) noexcept { - return start_or_resume_object().find_field(key); -} - -simdjson_inline simdjson_result value::find_field_unordered(std::string_view key) noexcept { - return start_or_resume_object().find_field_unordered(key); -} -simdjson_inline simdjson_result value::find_field_unordered(const char *key) noexcept { - return start_or_resume_object().find_field_unordered(key); -} - -simdjson_inline simdjson_result value::operator[](std::string_view key) noexcept { - return start_or_resume_object()[key]; -} -simdjson_inline simdjson_result value::operator[](const char *key) noexcept { - return start_or_resume_object()[key]; -} - -simdjson_inline simdjson_result value::type() noexcept { - return iter.type(); -} - -simdjson_inline simdjson_result value::is_scalar() noexcept { - json_type this_type; - auto error = type().get(this_type); - if(error) { return error; } - return ! ((this_type == json_type::array) || (this_type == json_type::object)); -} - -simdjson_inline simdjson_result value::is_string() noexcept { - json_type this_type; - auto error = type().get(this_type); - if(error) { return error; } - return (this_type == json_type::string); -} - - -simdjson_inline bool value::is_negative() noexcept { - return iter.is_negative(); -} - -simdjson_inline simdjson_result value::is_integer() noexcept { - return iter.is_integer(); -} -simdjson_warn_unused simdjson_inline simdjson_result value::get_number_type() noexcept { - return iter.get_number_type(); -} -simdjson_warn_unused simdjson_inline simdjson_result value::get_number() noexcept { - return iter.get_number(); -} - -simdjson_inline std::string_view value::raw_json_token() noexcept { - return std::string_view(reinterpret_cast(iter.peek_start()), iter.peek_start_length()); -} - -simdjson_inline simdjson_result value::raw_json() noexcept { - json_type t; - SIMDJSON_TRY(type().get(t)); - switch (t) - { - case json_type::array: { - ondemand::array array; - SIMDJSON_TRY(get_array().get(array)); - return array.raw_json(); - } - case json_type::object: { - ondemand::object object; - SIMDJSON_TRY(get_object().get(object)); - return object.raw_json(); - } - default: - return raw_json_token(); - } -} - -simdjson_inline simdjson_result value::current_location() noexcept { - return iter.json_iter().current_location(); -} - -simdjson_inline int32_t value::current_depth() const noexcept{ - return iter.json_iter().depth(); -} - -inline bool is_pointer_well_formed(std::string_view json_pointer) noexcept { - if (simdjson_unlikely(json_pointer.empty())) { // can't be - return false; - } - if (simdjson_unlikely(json_pointer[0] != '/')) { - return false; - } - size_t escape = json_pointer.find('~'); - if (escape == std::string_view::npos) { - return true; - } - if (escape == json_pointer.size() - 1) { - return false; - } - if (json_pointer[escape + 1] != '0' && json_pointer[escape + 1] != '1') { - return false; - } - return true; -} - -simdjson_inline simdjson_result value::at_pointer(std::string_view json_pointer) noexcept { - json_type t; - SIMDJSON_TRY(type().get(t)); - switch (t) - { - case json_type::array: - return (*this).get_array().at_pointer(json_pointer); - case json_type::object: - return (*this).get_object().at_pointer(json_pointer); - default: - // a non-empty string can be invalid, or accessing a primitive (issue 2154) - if (is_pointer_well_formed(json_pointer)) { - return NO_SUCH_FIELD; - } - return INVALID_JSON_POINTER; - } + return !(a == c); } -simdjson_inline simdjson_result value::at_path(std::string_view json_path) noexcept { - json_type t; - SIMDJSON_TRY(type().get(t)); - switch (t) { - case json_type::array: - return (*this).get_array().at_path(json_path); - case json_type::object: - return (*this).get_object().at_path(json_path); - default: - return INVALID_JSON_POINTER; + +simdjson_inline simdjson_warn_unused simdjson_result raw_json_string::unescape(json_iterator &iter, bool allow_replacement) const noexcept { + return iter.unescape(*this, allow_replacement); +} + +simdjson_inline simdjson_warn_unused simdjson_result raw_json_string::unescape_wobbly(json_iterator &iter) const noexcept { + return iter.unescape_wobbly(*this); +} + +simdjson_unused simdjson_inline std::ostream &operator<<(std::ostream &out, const raw_json_string &str) noexcept { + bool in_escape = false; + const char *s = str.raw(); + while (true) { + switch (*s) { + case '\\': in_escape = !in_escape; break; + case '"': if (in_escape) { in_escape = false; } else { return out; } break; + default: if (in_escape) { in_escape = false; } + } + out << *s; + s++; } } @@ -116909,253 +121288,360 @@ simdjson_inline simdjson_result value::at_path(std::string_view json_path namespace simdjson { -simdjson_inline simdjson_result::simdjson_result( - lasx::ondemand::value &&value -) noexcept : - implementation_simdjson_result_base( - std::forward(value) - ) -{ -} -simdjson_inline simdjson_result::simdjson_result( - error_code error -) noexcept : - implementation_simdjson_result_base(error) -{ -} -simdjson_inline simdjson_result simdjson_result::count_elements() & noexcept { +simdjson_inline simdjson_result::simdjson_result(lasx::ondemand::raw_json_string &&value) noexcept + : implementation_simdjson_result_base(std::forward(value)) {} +simdjson_inline simdjson_result::simdjson_result(error_code error) noexcept + : implementation_simdjson_result_base(error) {} + +simdjson_inline simdjson_result simdjson_result::raw() const noexcept { if (error()) { return error(); } - return first.count_elements(); + return first.raw(); } -simdjson_inline simdjson_result simdjson_result::count_fields() & noexcept { +simdjson_inline simdjson_warn_unused simdjson_result simdjson_result::unescape(lasx::ondemand::json_iterator &iter, bool allow_replacement) const noexcept { if (error()) { return error(); } - return first.count_fields(); + return first.unescape(iter, allow_replacement); } -simdjson_inline simdjson_result simdjson_result::at(size_t index) noexcept { +simdjson_inline simdjson_warn_unused simdjson_result simdjson_result::unescape_wobbly(lasx::ondemand::json_iterator &iter) const noexcept { if (error()) { return error(); } - return first.at(index); + return first.unescape_wobbly(iter); } -simdjson_inline simdjson_result simdjson_result::begin() & noexcept { - if (error()) { return error(); } - return first.begin(); +} // namespace simdjson + +#endif // SIMDJSON_GENERIC_ONDEMAND_RAW_JSON_STRING_INL_H +/* end file simdjson/generic/ondemand/raw_json_string-inl.h for lasx */ +/* including simdjson/generic/ondemand/serialization-inl.h for lasx: #include "simdjson/generic/ondemand/serialization-inl.h" */ +/* begin file simdjson/generic/ondemand/serialization-inl.h for lasx */ +#ifndef SIMDJSON_GENERIC_ONDEMAND_SERIALIZATION_INL_H + +/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ +/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_SERIALIZATION_INL_H */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/array.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/document-inl.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/json_type.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/object.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/serialization.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/value.h" */ +/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ + +namespace simdjson { + +inline std::string_view trim(const std::string_view str) noexcept { + // We can almost surely do better by rolling our own find_first_not_of function. + size_t first = str.find_first_not_of(" \t\n\r"); + // If we have the empty string (just white space), then no trimming is possible, and + // we return the empty string_view. + if (std::string_view::npos == first) { return std::string_view(); } + size_t last = str.find_last_not_of(" \t\n\r"); + return str.substr(first, (last - first + 1)); } -simdjson_inline simdjson_result simdjson_result::end() & noexcept { - if (error()) { return error(); } - return {}; + + +inline simdjson_result to_json_string(lasx::ondemand::document& x) noexcept { + std::string_view v; + auto error = x.raw_json().get(v); + if(error) {return error; } + return trim(v); } -simdjson_inline simdjson_result simdjson_result::find_field(std::string_view key) noexcept { - if (error()) { return error(); } - return first.find_field(key); +inline simdjson_result to_json_string(lasx::ondemand::document_reference& x) noexcept { + std::string_view v; + auto error = x.raw_json().get(v); + if(error) {return error; } + return trim(v); } -simdjson_inline simdjson_result simdjson_result::find_field(const char *key) noexcept { - if (error()) { return error(); } - return first.find_field(key); + +inline simdjson_result to_json_string(lasx::ondemand::value& x) noexcept { + /** + * If we somehow receive a value that has already been consumed, + * then the following code could be in trouble. E.g., we create + * an array as needed, but if an array was already created, then + * it could be bad. + */ + using namespace lasx::ondemand; + lasx::ondemand::json_type t; + auto error = x.type().get(t); + if(error != SUCCESS) { return error; } + switch (t) + { + case json_type::array: + { + lasx::ondemand::array array; + error = x.get_array().get(array); + if(error) { return error; } + return to_json_string(array); + } + case json_type::object: + { + lasx::ondemand::object object; + error = x.get_object().get(object); + if(error) { return error; } + return to_json_string(object); + } + default: + return trim(x.raw_json_token()); + } } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(std::string_view key) noexcept { - if (error()) { return error(); } - return first.find_field_unordered(key); +inline simdjson_result to_json_string(lasx::ondemand::object& x) noexcept { + std::string_view v; + auto error = x.raw_json().get(v); + if(error) {return error; } + return trim(v); } -simdjson_inline simdjson_result simdjson_result::find_field_unordered(const char *key) noexcept { - if (error()) { return error(); } - return first.find_field_unordered(key); + +inline simdjson_result to_json_string(lasx::ondemand::array& x) noexcept { + std::string_view v; + auto error = x.raw_json().get(v); + if(error) {return error; } + return trim(v); } -simdjson_inline simdjson_result simdjson_result::operator[](std::string_view key) noexcept { - if (error()) { return error(); } - return first[key]; +inline simdjson_result to_json_string(simdjson_result x) { + if (x.error()) { return x.error(); } + return to_json_string(x.value_unsafe()); } -simdjson_inline simdjson_result simdjson_result::operator[](const char *key) noexcept { - if (error()) { return error(); } - return first[key]; + +inline simdjson_result to_json_string(simdjson_result x) { + if (x.error()) { return x.error(); } + return to_json_string(x.value_unsafe()); } -simdjson_inline simdjson_result simdjson_result::get_array() noexcept { - if (error()) { return error(); } - return first.get_array(); +inline simdjson_result to_json_string(simdjson_result x) { + if (x.error()) { return x.error(); } + return to_json_string(x.value_unsafe()); } -simdjson_inline simdjson_result simdjson_result::get_object() noexcept { - if (error()) { return error(); } - return first.get_object(); + +inline simdjson_result to_json_string(simdjson_result x) { + if (x.error()) { return x.error(); } + return to_json_string(x.value_unsafe()); } -simdjson_inline simdjson_result simdjson_result::get_uint64() noexcept { - if (error()) { return error(); } - return first.get_uint64(); + +inline simdjson_result to_json_string(simdjson_result x) { + if (x.error()) { return x.error(); } + return to_json_string(x.value_unsafe()); } -simdjson_inline simdjson_result simdjson_result::get_uint64_in_string() noexcept { - if (error()) { return error(); } - return first.get_uint64_in_string(); +} // namespace simdjson + +namespace simdjson { namespace lasx { namespace ondemand { + +#if SIMDJSON_EXCEPTIONS +inline std::ostream& operator<<(std::ostream& out, simdjson::lasx::ondemand::value x) { + std::string_view v; + auto error = simdjson::to_json_string(x).get(v); + if(error == simdjson::SUCCESS) { + return (out << v); + } else { + throw simdjson::simdjson_error(error); + } } -simdjson_inline simdjson_result simdjson_result::get_int64() noexcept { - if (error()) { return error(); } - return first.get_int64(); +inline std::ostream& operator<<(std::ostream& out, simdjson::simdjson_result x) { + if (x.error()) { throw simdjson::simdjson_error(x.error()); } + return (out << x.value()); } -simdjson_inline simdjson_result simdjson_result::get_int64_in_string() noexcept { - if (error()) { return error(); } - return first.get_int64_in_string(); +#else +inline std::ostream& operator<<(std::ostream& out, simdjson::lasx::ondemand::value x) { + std::string_view v; + auto error = simdjson::to_json_string(x).get(v); + if(error == simdjson::SUCCESS) { + return (out << v); + } else { + return (out << error); + } } -simdjson_inline simdjson_result simdjson_result::get_double() noexcept { - if (error()) { return error(); } - return first.get_double(); +#endif + +#if SIMDJSON_EXCEPTIONS +inline std::ostream& operator<<(std::ostream& out, simdjson::lasx::ondemand::array value) { + std::string_view v; + auto error = simdjson::to_json_string(value).get(v); + if(error == simdjson::SUCCESS) { + return (out << v); + } else { + throw simdjson::simdjson_error(error); + } } -simdjson_inline simdjson_result simdjson_result::get_double_in_string() noexcept { - if (error()) { return error(); } - return first.get_double_in_string(); +inline std::ostream& operator<<(std::ostream& out, simdjson::simdjson_result x) { + if (x.error()) { throw simdjson::simdjson_error(x.error()); } + return (out << x.value()); } -simdjson_inline simdjson_result simdjson_result::get_string(bool allow_replacement) noexcept { - if (error()) { return error(); } - return first.get_string(allow_replacement); +#else +inline std::ostream& operator<<(std::ostream& out, simdjson::lasx::ondemand::array value) { + std::string_view v; + auto error = simdjson::to_json_string(value).get(v); + if(error == simdjson::SUCCESS) { + return (out << v); + } else { + return (out << error); + } } -template -simdjson_inline error_code simdjson_result::get_string(string_type& receiver, bool allow_replacement) noexcept { - if (error()) { return error(); } - return first.get_string(receiver, allow_replacement); +#endif + +#if SIMDJSON_EXCEPTIONS +inline std::ostream& operator<<(std::ostream& out, simdjson::lasx::ondemand::document& value) { + std::string_view v; + auto error = simdjson::to_json_string(value).get(v); + if(error == simdjson::SUCCESS) { + return (out << v); + } else { + throw simdjson::simdjson_error(error); + } } -simdjson_inline simdjson_result simdjson_result::get_wobbly_string() noexcept { - if (error()) { return error(); } - return first.get_wobbly_string(); +inline std::ostream& operator<<(std::ostream& out, simdjson::lasx::ondemand::document_reference& value) { + std::string_view v; + auto error = simdjson::to_json_string(value).get(v); + if(error == simdjson::SUCCESS) { + return (out << v); + } else { + throw simdjson::simdjson_error(error); + } } -simdjson_inline simdjson_result simdjson_result::get_raw_json_string() noexcept { - if (error()) { return error(); } - return first.get_raw_json_string(); +inline std::ostream& operator<<(std::ostream& out, simdjson::simdjson_result&& x) { + if (x.error()) { throw simdjson::simdjson_error(x.error()); } + return (out << x.value()); } -simdjson_inline simdjson_result simdjson_result::get_bool() noexcept { - if (error()) { return error(); } - return first.get_bool(); +inline std::ostream& operator<<(std::ostream& out, simdjson::simdjson_result&& x) { + if (x.error()) { throw simdjson::simdjson_error(x.error()); } + return (out << x.value()); } -simdjson_inline simdjson_result simdjson_result::is_null() noexcept { - if (error()) { return error(); } - return first.is_null(); +#else +inline std::ostream& operator<<(std::ostream& out, simdjson::lasx::ondemand::document& value) { + std::string_view v; + auto error = simdjson::to_json_string(value).get(v); + if(error == simdjson::SUCCESS) { + return (out << v); + } else { + return (out << error); + } } +#endif -template simdjson_inline simdjson_result simdjson_result::get() noexcept { - if (error()) { return error(); } - return first.get(); -} -template simdjson_inline error_code simdjson_result::get(T &out) noexcept { - if (error()) { return error(); } - return first.get(out); +#if SIMDJSON_EXCEPTIONS +inline std::ostream& operator<<(std::ostream& out, simdjson::lasx::ondemand::object value) { + std::string_view v; + auto error = simdjson::to_json_string(value).get(v); + if(error == simdjson::SUCCESS) { + return (out << v); + } else { + throw simdjson::simdjson_error(error); + } } - -template<> simdjson_inline simdjson_result simdjson_result::get() noexcept { - if (error()) { return error(); } - return std::move(first); +inline std::ostream& operator<<(std::ostream& out, simdjson::simdjson_result x) { + if (x.error()) { throw simdjson::simdjson_error(x.error()); } + return (out << x.value()); } -template<> simdjson_inline error_code simdjson_result::get(lasx::ondemand::value &out) noexcept { - if (error()) { return error(); } - out = first; - return SUCCESS; +#else +inline std::ostream& operator<<(std::ostream& out, simdjson::lasx::ondemand::object value) { + std::string_view v; + auto error = simdjson::to_json_string(value).get(v); + if(error == simdjson::SUCCESS) { + return (out << v); + } else { + return (out << error); + } } +#endif +}}} // namespace simdjson::lasx::ondemand -simdjson_inline simdjson_result simdjson_result::type() noexcept { - if (error()) { return error(); } - return first.type(); -} -simdjson_inline simdjson_result simdjson_result::is_scalar() noexcept { - if (error()) { return error(); } - return first.is_scalar(); +#endif // SIMDJSON_GENERIC_ONDEMAND_SERIALIZATION_INL_H +/* end file simdjson/generic/ondemand/serialization-inl.h for lasx */ +/* including simdjson/generic/ondemand/token_iterator-inl.h for lasx: #include "simdjson/generic/ondemand/token_iterator-inl.h" */ +/* begin file simdjson/generic/ondemand/token_iterator-inl.h for lasx */ +#ifndef SIMDJSON_GENERIC_ONDEMAND_TOKEN_ITERATOR_INL_H + +/* amalgamation skipped (editor-only): #ifndef SIMDJSON_CONDITIONAL_INCLUDE */ +/* amalgamation skipped (editor-only): #define SIMDJSON_GENERIC_ONDEMAND_TOKEN_ITERATOR_INL_H */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/base.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/ondemand/token_iterator.h" */ +/* amalgamation skipped (editor-only): #include "simdjson/generic/implementation_simdjson_result_base-inl.h" */ +/* amalgamation skipped (editor-only): #endif // SIMDJSON_CONDITIONAL_INCLUDE */ + +namespace simdjson { +namespace lasx { +namespace ondemand { + +simdjson_inline token_iterator::token_iterator( + const uint8_t *_buf, + token_position position +) noexcept : buf{_buf}, _position{position} +{ } -simdjson_inline simdjson_result simdjson_result::is_string() noexcept { - if (error()) { return error(); } - return first.is_string(); + +simdjson_inline uint32_t token_iterator::current_offset() const noexcept { + return *(_position); } -simdjson_inline simdjson_result simdjson_result::is_negative() noexcept { - if (error()) { return error(); } - return first.is_negative(); + + +simdjson_inline const uint8_t *token_iterator::return_current_and_advance() noexcept { + return &buf[*(_position++)]; } -simdjson_inline simdjson_result simdjson_result::is_integer() noexcept { - if (error()) { return error(); } - return first.is_integer(); + +simdjson_inline const uint8_t *token_iterator::peek(token_position position) const noexcept { + return &buf[*position]; } -simdjson_inline simdjson_result simdjson_result::get_number_type() noexcept { - if (error()) { return error(); } - return first.get_number_type(); +simdjson_inline uint32_t token_iterator::peek_index(token_position position) const noexcept { + return *position; } -simdjson_inline simdjson_result simdjson_result::get_number() noexcept { - if (error()) { return error(); } - return first.get_number(); +simdjson_inline uint32_t token_iterator::peek_length(token_position position) const noexcept { + return *(position+1) - *position; } -#if SIMDJSON_EXCEPTIONS -template -simdjson_inline simdjson_result::operator T() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return static_cast(first); + +simdjson_inline uint32_t token_iterator::peek_root_length(token_position position) const noexcept { + return *(position+2) - *(position) > *(position+1) - *(position) ? + *(position+1) - *(position) + : *(position+2) - *(position); } -simdjson_inline simdjson_result::operator lasx::ondemand::array() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; +simdjson_inline const uint8_t *token_iterator::peek(int32_t delta) const noexcept { + return &buf[*(_position+delta)]; } -simdjson_inline simdjson_result::operator lasx::ondemand::object() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; +simdjson_inline uint32_t token_iterator::peek_index(int32_t delta) const noexcept { + return *(_position+delta); } -simdjson_inline simdjson_result::operator uint64_t() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; +simdjson_inline uint32_t token_iterator::peek_length(int32_t delta) const noexcept { + return *(_position+delta+1) - *(_position+delta); } -simdjson_inline simdjson_result::operator int64_t() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; + +simdjson_inline token_position token_iterator::position() const noexcept { + return _position; } -simdjson_inline simdjson_result::operator double() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; +simdjson_inline void token_iterator::set_position(token_position target_position) noexcept { + _position = target_position; } -simdjson_inline simdjson_result::operator std::string_view() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; + +simdjson_inline bool token_iterator::operator==(const token_iterator &other) const noexcept { + return _position == other._position; } -simdjson_inline simdjson_result::operator lasx::ondemand::raw_json_string() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; +simdjson_inline bool token_iterator::operator!=(const token_iterator &other) const noexcept { + return _position != other._position; } -simdjson_inline simdjson_result::operator bool() noexcept(false) { - if (error()) { throw simdjson_error(error()); } - return first; +simdjson_inline bool token_iterator::operator>(const token_iterator &other) const noexcept { + return _position > other._position; } -#endif - -simdjson_inline simdjson_result simdjson_result::raw_json_token() noexcept { - if (error()) { return error(); } - return first.raw_json_token(); +simdjson_inline bool token_iterator::operator>=(const token_iterator &other) const noexcept { + return _position >= other._position; } - -simdjson_inline simdjson_result simdjson_result::raw_json() noexcept { - if (error()) { return error(); } - return first.raw_json(); +simdjson_inline bool token_iterator::operator<(const token_iterator &other) const noexcept { + return _position < other._position; } - -simdjson_inline simdjson_result simdjson_result::current_location() noexcept { - if (error()) { return error(); } - return first.current_location(); +simdjson_inline bool token_iterator::operator<=(const token_iterator &other) const noexcept { + return _position <= other._position; } -simdjson_inline simdjson_result simdjson_result::current_depth() const noexcept { - if (error()) { return error(); } - return first.current_depth(); -} +} // namespace ondemand +} // namespace lasx +} // namespace simdjson -simdjson_inline simdjson_result simdjson_result::at_pointer( - std::string_view json_pointer) noexcept { - if (error()) { - return error(); - } - return first.at_pointer(json_pointer); -} +namespace simdjson { -simdjson_inline simdjson_result simdjson_result::at_path( - std::string_view json_path) noexcept { - if (error()) { - return error(); - } - return first.at_path(json_path); -} +simdjson_inline simdjson_result::simdjson_result(lasx::ondemand::token_iterator &&value) noexcept + : implementation_simdjson_result_base(std::forward(value)) {} +simdjson_inline simdjson_result::simdjson_result(error_code error) noexcept + : implementation_simdjson_result_base(error) {} } // namespace simdjson -#endif // SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H -/* end file simdjson/generic/ondemand/value-inl.h for lasx */ +#endif // SIMDJSON_GENERIC_ONDEMAND_TOKEN_ITERATOR_INL_H +/* end file simdjson/generic/ondemand/token_iterator-inl.h for lasx */ /* including simdjson/generic/ondemand/value_iterator-inl.h for lasx: #include "simdjson/generic/ondemand/value_iterator-inl.h" */ /* begin file simdjson/generic/ondemand/value_iterator-inl.h for lasx */ #ifndef SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H @@ -117959,6 +122445,8 @@ simdjson_inline simdjson_result value_iterator::is_root_null(bool check_tr if(result) { // we have something that looks like a null. if (check_trailing && !_json_iter->is_single_token()) { return TRAILING_CONTENT; } advance_root_scalar("null"); + } else if (json[0] == 'n') { + return incorrect_type_error("Not a null but starts with n"); } return result; } @@ -118250,6 +122738,8 @@ simdjson_inline simdjson_result::simdjson_result #endif // SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H /* end file simdjson/generic/ondemand/value_iterator-inl.h for lasx */ + + /* end file simdjson/generic/ondemand/amalgamated.h for lasx */ /* including simdjson/lasx/end.h: #include "simdjson/lasx/end.h" */ /* begin file simdjson/lasx/end.h */ @@ -118290,6 +122780,5 @@ namespace simdjson { #endif // SIMDJSON_ONDEMAND_H /* end file simdjson/ondemand.h */ - #endif // SIMDJSON_H /* end file simdjson.h */ diff --git a/deps/sqlite/sqlite3.c b/deps/sqlite/sqlite3.c index c748d033461fae..37b534afb2787c 100644 --- a/deps/sqlite/sqlite3.c +++ b/deps/sqlite/sqlite3.c @@ -1,6 +1,6 @@ /****************************************************************************** ** This file is an amalgamation of many separate C source files from SQLite -** version 3.47.2. By combining all the individual C code files into this +** version 3.49.1. By combining all the individual C code files into this ** single large file, the entire code can be compiled as a single translation ** unit. This allows many compilers to do optimizations that would not be ** possible if the files were compiled separately. Performance improvements @@ -18,8 +18,11 @@ ** separate file. This file contains only code for the core SQLite library. ** ** The content in this amalgamation comes from Fossil check-in -** 2aabe05e2e8cae4847a802ee2daddc1d7413. +** 873d4e274b4988d260ba8354a9718324a1c2 with changes in files: +** +** */ +#ifndef SQLITE_AMALGAMATION #define SQLITE_CORE 1 #define SQLITE_AMALGAMATION 1 #ifndef SQLITE_PRIVATE @@ -462,9 +465,9 @@ extern "C" { ** [sqlite3_libversion_number()], [sqlite3_sourceid()], ** [sqlite_version()] and [sqlite_source_id()]. */ -#define SQLITE_VERSION "3.47.2" -#define SQLITE_VERSION_NUMBER 3047002 -#define SQLITE_SOURCE_ID "2024-12-07 20:39:59 2aabe05e2e8cae4847a802ee2daddc1d7413d8fc560254d93ee3e72c14685b6c" +#define SQLITE_VERSION "3.49.1" +#define SQLITE_VERSION_NUMBER 3049001 +#define SQLITE_SOURCE_ID "2025-02-18 13:38:58 873d4e274b4988d260ba8354a9718324a1c26187a4ab4c1cc0227c03d0f10e70" /* ** CAPI3REF: Run-Time Library Version Numbers @@ -1416,6 +1419,11 @@ struct sqlite3_io_methods { ** pointed to by the pArg argument. This capability is used during testing ** and only needs to be supported when SQLITE_TEST is defined. ** +**
  • [[SQLITE_FCNTL_NULL_IO]] +** The [SQLITE_FCNTL_NULL_IO] opcode sets the low-level file descriptor +** or file handle for the [sqlite3_file] object such that it will no longer +** read or write to the database file. +** **
  • [[SQLITE_FCNTL_WAL_BLOCK]] ** The [SQLITE_FCNTL_WAL_BLOCK] is a signal to the VFS layer that it might ** be advantageous to block on the next WAL lock if the lock is not immediately @@ -1569,6 +1577,7 @@ struct sqlite3_io_methods { #define SQLITE_FCNTL_EXTERNAL_READER 40 #define SQLITE_FCNTL_CKSM_FILE 41 #define SQLITE_FCNTL_RESET_CACHE 42 +#define SQLITE_FCNTL_NULL_IO 43 /* deprecated names */ #define SQLITE_GET_LOCKPROXYFILE SQLITE_FCNTL_GET_LOCKPROXYFILE @@ -2521,7 +2530,15 @@ struct sqlite3_mem_methods { ** CAPI3REF: Database Connection Configuration Options ** ** These constants are the available integer configuration options that -** can be passed as the second argument to the [sqlite3_db_config()] interface. +** can be passed as the second parameter to the [sqlite3_db_config()] interface. +** +** The [sqlite3_db_config()] interface is a var-args functions. It takes a +** variable number of parameters, though always at least two. The number of +** parameters passed into sqlite3_db_config() depends on which of these +** constants is given as the second parameter. This documentation page +** refers to parameters beyond the second as "arguments". Thus, when this +** page says "the N-th argument" it means "the N-th parameter past the +** configuration option" or "the (N+2)-th parameter to sqlite3_db_config()". ** ** New configuration options may be added in future releases of SQLite. ** Existing configuration options might be discontinued. Applications @@ -2533,8 +2550,14 @@ struct sqlite3_mem_methods { **
    ** [[SQLITE_DBCONFIG_LOOKASIDE]] **
    SQLITE_DBCONFIG_LOOKASIDE
    -**
    ^This option takes three additional arguments that determine the -** [lookaside memory allocator] configuration for the [database connection]. +**
    The SQLITE_DBCONFIG_LOOKASIDE option is used to adjust the +** configuration of the lookaside memory allocator within a database +** connection. +** The arguments to the SQLITE_DBCONFIG_LOOKASIDE option are not +** in the [DBCONFIG arguments|usual format]. +** The SQLITE_DBCONFIG_LOOKASIDE option takes three arguments, not two, +** so that a call to [sqlite3_db_config()] that uses SQLITE_DBCONFIG_LOOKASIDE +** should have a total of five parameters. ** ^The first argument (the third parameter to [sqlite3_db_config()] is a ** pointer to a memory buffer to use for lookaside memory. ** ^The first argument after the SQLITE_DBCONFIG_LOOKASIDE verb @@ -2557,7 +2580,8 @@ struct sqlite3_mem_methods { ** [[SQLITE_DBCONFIG_ENABLE_FKEY]] **
    SQLITE_DBCONFIG_ENABLE_FKEY
    **
    ^This option is used to enable or disable the enforcement of -** [foreign key constraints]. There should be two additional arguments. +** [foreign key constraints]. This is the same setting that is +** enabled or disabled by the [PRAGMA foreign_keys] statement. ** The first argument is an integer which is 0 to disable FK enforcement, ** positive to enable FK enforcement or negative to leave FK enforcement ** unchanged. The second parameter is a pointer to an integer into which @@ -2579,13 +2603,13 @@ struct sqlite3_mem_methods { **

    Originally this option disabled all triggers. ^(However, since ** SQLite version 3.35.0, TEMP triggers are still allowed even if ** this option is off. So, in other words, this option now only disables -** triggers in the main database schema or in the schemas of ATTACH-ed +** triggers in the main database schema or in the schemas of [ATTACH]-ed ** databases.)^

    ** ** [[SQLITE_DBCONFIG_ENABLE_VIEW]] **
    SQLITE_DBCONFIG_ENABLE_VIEW
    **
    ^This option is used to enable or disable [CREATE VIEW | views]. -** There should be two additional arguments. +** There must be two additional arguments. ** The first argument is an integer which is 0 to disable views, ** positive to enable views or negative to leave the setting unchanged. ** The second parameter is a pointer to an integer into which @@ -2604,7 +2628,7 @@ struct sqlite3_mem_methods { **
    ^This option is used to enable or disable the ** [fts3_tokenizer()] function which is part of the ** [FTS3] full-text search engine extension. -** There should be two additional arguments. +** There must be two additional arguments. ** The first argument is an integer which is 0 to disable fts3_tokenizer() or ** positive to enable fts3_tokenizer() or negative to leave the setting ** unchanged. @@ -2619,7 +2643,7 @@ struct sqlite3_mem_methods { ** interface independently of the [load_extension()] SQL function. ** The [sqlite3_enable_load_extension()] API enables or disables both the ** C-API [sqlite3_load_extension()] and the SQL function [load_extension()]. -** There should be two additional arguments. +** There must be two additional arguments. ** When the first argument to this interface is 1, then only the C-API is ** enabled and the SQL function remains disabled. If the first argument to ** this interface is 0, then both the C-API and the SQL function are disabled. @@ -2633,23 +2657,30 @@ struct sqlite3_mem_methods { ** ** [[SQLITE_DBCONFIG_MAINDBNAME]]
    SQLITE_DBCONFIG_MAINDBNAME
    **
    ^This option is used to change the name of the "main" database -** schema. ^The sole argument is a pointer to a constant UTF8 string -** which will become the new schema name in place of "main". ^SQLite -** does not make a copy of the new main schema name string, so the application -** must ensure that the argument passed into this DBCONFIG option is unchanged -** until after the database connection closes. +** schema. This option does not follow the +** [DBCONFIG arguments|usual SQLITE_DBCONFIG argument format]. +** This option takes exactly one additional argument so that the +** [sqlite3_db_config()] call has a total of three parameters. The +** extra argument must be a pointer to a constant UTF8 string which +** will become the new schema name in place of "main". ^SQLite does +** not make a copy of the new main schema name string, so the application +** must ensure that the argument passed into SQLITE_DBCONFIG MAINDBNAME +** is unchanged until after the database connection closes. **
    ** ** [[SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE]] **
    SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE
    -**
    Usually, when a database in wal mode is closed or detached from a -** database handle, SQLite checks if this will mean that there are now no -** connections at all to the database. If so, it performs a checkpoint -** operation before closing the connection. This option may be used to -** override this behavior. The first parameter passed to this operation -** is an integer - positive to disable checkpoints-on-close, or zero (the -** default) to enable them, and negative to leave the setting unchanged. -** The second parameter is a pointer to an integer +**
    Usually, when a database in [WAL mode] is closed or detached from a +** database handle, SQLite checks if if there are other connections to the +** same database, and if there are no other database connection (if the +** connection being closed is the last open connection to the database), +** then SQLite performs a [checkpoint] before closing the connection and +** deletes the WAL file. The SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE option can +** be used to override that behavior. The first argument passed to this +** operation (the third parameter to [sqlite3_db_config()]) is an integer +** which is positive to disable checkpoints-on-close, or zero (the default) +** to enable them, and negative to leave the setting unchanged. +** The second argument (the fourth parameter) is a pointer to an integer ** into which is written 0 or 1 to indicate whether checkpoints-on-close ** have been disabled - 0 if they are not disabled, 1 if they are. **
    @@ -2810,7 +2841,7 @@ struct sqlite3_mem_methods { ** statistics. For statistics to be collected, the flag must be set on ** the database handle both when the SQL statement is prepared and when it ** is stepped. The flag is set (collection of statistics is enabled) -** by default. This option takes two arguments: an integer and a pointer to +** by default.

    This option takes two arguments: an integer and a pointer to ** an integer.. The first argument is 1, 0, or -1 to enable, disable, or ** leave unchanged the statement scanstatus option. If the second argument ** is not NULL, then the value of the statement scanstatus setting after @@ -2824,7 +2855,7 @@ struct sqlite3_mem_methods { ** in which tables and indexes are scanned so that the scans start at the end ** and work toward the beginning rather than starting at the beginning and ** working toward the end. Setting SQLITE_DBCONFIG_REVERSE_SCANORDER is the -** same as setting [PRAGMA reverse_unordered_selects]. This option takes +** same as setting [PRAGMA reverse_unordered_selects].

    This option takes ** two arguments which are an integer and a pointer to an integer. The first ** argument is 1, 0, or -1 to enable, disable, or leave unchanged the ** reverse scan order flag, respectively. If the second argument is not NULL, @@ -2833,7 +2864,76 @@ struct sqlite3_mem_methods { ** first argument. ** ** +** [[SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE]] +**

    SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE
    +**
    The SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE option enables or disables +** the ability of the [ATTACH DATABASE] SQL command to create a new database +** file if the database filed named in the ATTACH command does not already +** exist. This ability of ATTACH to create a new database is enabled by +** default. Applications can disable or reenable the ability for ATTACH to +** create new database files using this DBCONFIG option.

    +** This option takes two arguments which are an integer and a pointer +** to an integer. The first argument is 1, 0, or -1 to enable, disable, or +** leave unchanged the attach-create flag, respectively. If the second +** argument is not NULL, then 0 or 1 is written into the integer that the +** second argument points to depending on if the attach-create flag is set +** after processing the first argument. +**

    +** +** [[SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE]] +**
    SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE
    +**
    The SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE option enables or disables the +** ability of the [ATTACH DATABASE] SQL command to open a database for writing. +** This capability is enabled by default. Applications can disable or +** reenable this capability using the current DBCONFIG option. If the +** the this capability is disabled, the [ATTACH] command will still work, +** but the database will be opened read-only. If this option is disabled, +** then the ability to create a new database using [ATTACH] is also disabled, +** regardless of the value of the [SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE] +** option.

    +** This option takes two arguments which are an integer and a pointer +** to an integer. The first argument is 1, 0, or -1 to enable, disable, or +** leave unchanged the ability to ATTACH another database for writing, +** respectively. If the second argument is not NULL, then 0 or 1 is written +** into the integer to which the second argument points, depending on whether +** the ability to ATTACH a read/write database is enabled or disabled +** after processing the first argument. +**

    +** +** [[SQLITE_DBCONFIG_ENABLE_COMMENTS]] +**
    SQLITE_DBCONFIG_ENABLE_COMMENTS
    +**
    The SQLITE_DBCONFIG_ENABLE_COMMENTS option enables or disables the +** ability to include comments in SQL text. Comments are enabled by default. +** An application can disable or reenable comments in SQL text using this +** DBCONFIG option.

    +** This option takes two arguments which are an integer and a pointer +** to an integer. The first argument is 1, 0, or -1 to enable, disable, or +** leave unchanged the ability to use comments in SQL text, +** respectively. If the second argument is not NULL, then 0 or 1 is written +** into the integer that the second argument points to depending on if +** comments are allowed in SQL text after processing the first argument. +**

    +** **
    +** +** [[DBCONFIG arguments]]

    Arguments To SQLITE_DBCONFIG Options

    +** +**

    Most of the SQLITE_DBCONFIG options take two arguments, so that the +** overall call to [sqlite3_db_config()] has a total of four parameters. +** The first argument (the third parameter to sqlite3_db_config()) is a integer. +** The second argument is a pointer to an integer. If the first argument is 1, +** then the option becomes enabled. If the first integer argument is 0, then the +** option is disabled. If the first argument is -1, then the option setting +** is unchanged. The second argument, the pointer to an integer, may be NULL. +** If the second argument is not NULL, then a value of 0 or 1 is written into +** the integer to which the second argument points, depending on whether the +** setting is disabled or enabled after applying any changes specified by +** the first argument. +** +**

    While most SQLITE_DBCONFIG options use the argument format +** described in the previous paragraph, the [SQLITE_DBCONFIG_MAINDBNAME] +** and [SQLITE_DBCONFIG_LOOKASIDE] options are different. See the +** documentation of those exceptional options for details. */ #define SQLITE_DBCONFIG_MAINDBNAME 1000 /* const char* */ #define SQLITE_DBCONFIG_LOOKASIDE 1001 /* void* int int */ @@ -2855,7 +2955,10 @@ struct sqlite3_mem_methods { #define SQLITE_DBCONFIG_TRUSTED_SCHEMA 1017 /* int int* */ #define SQLITE_DBCONFIG_STMT_SCANSTATUS 1018 /* int int* */ #define SQLITE_DBCONFIG_REVERSE_SCANORDER 1019 /* int int* */ -#define SQLITE_DBCONFIG_MAX 1019 /* Largest DBCONFIG */ +#define SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE 1020 /* int int* */ +#define SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE 1021 /* int int* */ +#define SQLITE_DBCONFIG_ENABLE_COMMENTS 1022 /* int int* */ +#define SQLITE_DBCONFIG_MAX 1022 /* Largest DBCONFIG */ /* ** CAPI3REF: Enable Or Disable Extended Result Codes @@ -2947,10 +3050,14 @@ SQLITE_API void sqlite3_set_last_insert_rowid(sqlite3*,sqlite3_int64); ** deleted by the most recently completed INSERT, UPDATE or DELETE ** statement on the database connection specified by the only parameter. ** The two functions are identical except for the type of the return value -** and that if the number of rows modified by the most recent INSERT, UPDATE +** and that if the number of rows modified by the most recent INSERT, UPDATE, ** or DELETE is greater than the maximum value supported by type "int", then ** the return value of sqlite3_changes() is undefined. ^Executing any other ** type of SQL statement does not modify the value returned by these functions. +** For the purposes of this interface, a CREATE TABLE AS SELECT statement +** does not count as an INSERT, UPDATE or DELETE statement and hence the rows +** added to the new table by the CREATE TABLE AS SELECT statement are not +** counted. ** ** ^Only changes made directly by the INSERT, UPDATE or DELETE statement are ** considered - auxiliary changes caused by [CREATE TRIGGER | triggers], @@ -4510,11 +4617,22 @@ SQLITE_API int sqlite3_limit(sqlite3*, int id, int newVal); **

    The SQLITE_PREPARE_NO_VTAB flag causes the SQL compiler ** to return an error (error code SQLITE_ERROR) if the statement uses ** any virtual tables. +** +** [[SQLITE_PREPARE_DONT_LOG]]
    SQLITE_PREPARE_DONT_LOG
    +**
    The SQLITE_PREPARE_DONT_LOG flag prevents SQL compiler +** errors from being sent to the error log defined by +** [SQLITE_CONFIG_LOG]. This can be used, for example, to do test +** compiles to see if some SQL syntax is well-formed, without generating +** messages on the global error log when it is not. If the test compile +** fails, the sqlite3_prepare_v3() call returns the same error indications +** with or without this flag; it just omits the call to [sqlite3_log()] that +** logs the error. ** */ #define SQLITE_PREPARE_PERSISTENT 0x01 #define SQLITE_PREPARE_NORMALIZE 0x02 #define SQLITE_PREPARE_NO_VTAB 0x04 +#define SQLITE_PREPARE_DONT_LOG 0x10 /* ** CAPI3REF: Compiling An SQL Statement @@ -11043,8 +11161,9 @@ SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_snapshot_recover(sqlite3 *db, const c /* ** CAPI3REF: Serialize a database ** -** The sqlite3_serialize(D,S,P,F) interface returns a pointer to memory -** that is a serialization of the S database on [database connection] D. +** The sqlite3_serialize(D,S,P,F) interface returns a pointer to +** memory that is a serialization of the S database on +** [database connection] D. If S is a NULL pointer, the main database is used. ** If P is not a NULL pointer, then the size of the database in bytes ** is written into *P. ** @@ -11205,7 +11324,7 @@ SQLITE_API int sqlite3_deserialize( #if 0 } /* End of the 'extern "C"' block */ #endif -#endif /* SQLITE3_H */ +/* #endif for SQLITE3_H will be added by mksqlite3.tcl */ /******** Begin file sqlite3rtree.h *********/ /* @@ -13456,14 +13575,29 @@ struct Fts5PhraseIter { ** value returned by xInstCount(), SQLITE_RANGE is returned. Otherwise, ** output variable (*ppToken) is set to point to a buffer containing the ** matching document token, and (*pnToken) to the size of that buffer in -** bytes. This API is not available if the specified token matches a -** prefix query term. In that case both output variables are always set -** to 0. +** bytes. ** ** The output text is not a copy of the document text that was tokenized. ** It is the output of the tokenizer module. For tokendata=1 tables, this ** includes any embedded 0x00 and trailing data. ** +** This API may be slow in some cases if the token identified by parameters +** iIdx and iToken matched a prefix token in the query. In most cases, the +** first call to this API for each prefix token in the query is forced +** to scan the portion of the full-text index that matches the prefix +** token to collect the extra data required by this API. If the prefix +** token matches a large number of token instances in the document set, +** this may be a performance problem. +** +** If the user knows in advance that a query may use this API for a +** prefix token, FTS5 may be configured to collect all required data as part +** of the initial querying of the full-text index, avoiding the second scan +** entirely. This also causes prefix queries that do not use this API to +** run more slowly and use more memory. FTS5 may be configured in this way +** either on a per-table basis using the [FTS5 insttoken | 'insttoken'] +** option, or on a per-query basis using the +** [fts5_insttoken | fts5_insttoken()] user function. +** ** This API can be quite slow if used with an FTS5 table created with the ** "detail=none" or "detail=column" option. ** @@ -13897,6 +14031,7 @@ struct fts5_api { #endif /* _FTS5_H */ /******** End of fts5.h *********/ +#endif /* SQLITE3_H */ /************** End of sqlite3.h *********************************************/ /************** Continuing where we left off in sqliteInt.h ******************/ @@ -13942,6 +14077,7 @@ struct fts5_api { #ifndef SQLITE_MAX_LENGTH # define SQLITE_MAX_LENGTH 1000000000 #endif +#define SQLITE_MIN_LENGTH 30 /* Minimum value for the length limit */ /* ** This is the maximum number of @@ -14007,9 +14143,13 @@ struct fts5_api { /* ** The maximum number of arguments to an SQL function. +** +** This value has a hard upper limit of 32767 due to storage +** constraints (it needs to fit inside a i16). We keep it +** lower than that to prevent abuse. */ #ifndef SQLITE_MAX_FUNCTION_ARG -# define SQLITE_MAX_FUNCTION_ARG 127 +# define SQLITE_MAX_FUNCTION_ARG 1000 #endif /* @@ -14832,7 +14972,8 @@ SQLITE_PRIVATE void sqlite3HashClear(Hash*); #define TK_ERROR 182 #define TK_QNUMBER 183 #define TK_SPACE 184 -#define TK_ILLEGAL 185 +#define TK_COMMENT 185 +#define TK_ILLEGAL 186 /************** End of parse.h ***********************************************/ /************** Continuing where we left off in sqliteInt.h ******************/ @@ -15084,6 +15225,8 @@ typedef u64 tRowcnt; ** 0.5 -> -10 0.1 -> -33 0.0625 -> -40 */ typedef INT16_TYPE LogEst; +#define LOGEST_MIN (-32768) +#define LOGEST_MAX (32767) /* ** Set the SQLITE_PTRSIZE macro to the number of bytes in a pointer @@ -15354,7 +15497,7 @@ SQLITE_PRIVATE u32 sqlite3WhereTrace; ** 0xFFFF---- Low-level debug messages ** ** 0x00000001 Code generation -** 0x00000002 Solver +** 0x00000002 Solver (Use 0x40000 for less detail) ** 0x00000004 Solver costs ** 0x00000008 WhereLoop inserts ** @@ -15373,6 +15516,8 @@ SQLITE_PRIVATE u32 sqlite3WhereTrace; ** ** 0x00010000 Show more detail when printing WHERE terms ** 0x00020000 Show WHERE terms returned from whereScanNext() +** 0x00040000 Solver overview messages +** 0x00080000 Star-query heuristic */ @@ -16011,6 +16156,22 @@ typedef struct PgHdr DbPage; #define PAGER_JOURNALMODE_MEMORY 4 /* In-memory journal file */ #define PAGER_JOURNALMODE_WAL 5 /* Use write-ahead logging */ +#define isWalMode(x) ((x)==PAGER_JOURNALMODE_WAL) + +/* +** The argument to this macro is a file descriptor (type sqlite3_file*). +** Return 0 if it is not open, or non-zero (but not 1) if it is. +** +** This is so that expressions can be written as: +** +** if( isOpen(pPager->jfd) ){ ... +** +** instead of +** +** if( pPager->jfd->pMethods ){ ... +*/ +#define isOpen(pFd) ((pFd)->pMethods!=0) + /* ** Flags that make up the mask passed to sqlite3PagerGet(). */ @@ -16649,6 +16810,7 @@ typedef struct SubrtnSig SubrtnSig; */ struct SubrtnSig { int selId; /* SELECT-id for the SELECT statement on the RHS */ + u8 bComplete; /* True if fully coded and available for reusable */ char *zAff; /* Affinity of the overall IN expression */ int iTable; /* Ephemeral table generated by the subroutine */ int iAddr; /* Subroutine entry address */ @@ -17036,7 +17198,7 @@ typedef struct VdbeOpList VdbeOpList; ** Additional non-public SQLITE_PREPARE_* flags */ #define SQLITE_PREPARE_SAVESQL 0x80 /* Preserve SQL text */ -#define SQLITE_PREPARE_MASK 0x0f /* Mask of public flags */ +#define SQLITE_PREPARE_MASK 0x1f /* Mask of public flags */ /* ** Prototypes for the VDBE interface. See comments on the implementation @@ -17751,47 +17913,11 @@ struct FuncDefHash { }; #define SQLITE_FUNC_HASH(C,L) (((C)+(L))%SQLITE_FUNC_HASH_SZ) -#if defined(SQLITE_USER_AUTHENTICATION) -# warning "The SQLITE_USER_AUTHENTICATION extension is deprecated. \ - See ext/userauth/user-auth.txt for details." -#endif -#ifdef SQLITE_USER_AUTHENTICATION -/* -** Information held in the "sqlite3" database connection object and used -** to manage user authentication. -*/ -typedef struct sqlite3_userauth sqlite3_userauth; -struct sqlite3_userauth { - u8 authLevel; /* Current authentication level */ - int nAuthPW; /* Size of the zAuthPW in bytes */ - char *zAuthPW; /* Password used to authenticate */ - char *zAuthUser; /* User name used to authenticate */ -}; - -/* Allowed values for sqlite3_userauth.authLevel */ -#define UAUTH_Unknown 0 /* Authentication not yet checked */ -#define UAUTH_Fail 1 /* User authentication failed */ -#define UAUTH_User 2 /* Authenticated as a normal user */ -#define UAUTH_Admin 3 /* Authenticated as an administrator */ - -/* Functions used only by user authorization logic */ -SQLITE_PRIVATE int sqlite3UserAuthTable(const char*); -SQLITE_PRIVATE int sqlite3UserAuthCheckLogin(sqlite3*,const char*,u8*); -SQLITE_PRIVATE void sqlite3UserAuthInit(sqlite3*); -SQLITE_PRIVATE void sqlite3CryptFunc(sqlite3_context*,int,sqlite3_value**); - -#endif /* SQLITE_USER_AUTHENTICATION */ - /* ** typedef for the authorization callback function. */ -#ifdef SQLITE_USER_AUTHENTICATION - typedef int (*sqlite3_xauth)(void*,int,const char*,const char*,const char*, - const char*, const char*); -#else - typedef int (*sqlite3_xauth)(void*,int,const char*,const char*,const char*, - const char*); -#endif +typedef int (*sqlite3_xauth)(void*,int,const char*,const char*,const char*, + const char*); #ifndef SQLITE_OMIT_DEPRECATED /* This is an extra SQLITE_TRACE macro that indicates "legacy" tracing @@ -17952,9 +18078,6 @@ struct sqlite3 { void (*xUnlockNotify)(void **, int); /* Unlock notify callback */ sqlite3 *pNextBlocked; /* Next in list of all blocked connections */ #endif -#ifdef SQLITE_USER_AUTHENTICATION - sqlite3_userauth auth; /* User authentication information */ -#endif }; /* @@ -18018,6 +18141,9 @@ struct sqlite3 { #define SQLITE_CorruptRdOnly HI(0x00002) /* Prohibit writes due to error */ #define SQLITE_ReadUncommit HI(0x00004) /* READ UNCOMMITTED in shared-cache */ #define SQLITE_FkNoAction HI(0x00008) /* Treat all FK as NO ACTION */ +#define SQLITE_AttachCreate HI(0x00010) /* ATTACH allowed to create new dbs */ +#define SQLITE_AttachWrite HI(0x00020) /* ATTACH allowed to open for write */ +#define SQLITE_Comments HI(0x00040) /* Enable SQL comments */ /* Flags used only if debugging */ #ifdef SQLITE_DEBUG @@ -18077,6 +18203,7 @@ struct sqlite3 { #define SQLITE_NullUnusedCols 0x04000000 /* NULL unused columns in subqueries */ #define SQLITE_OnePass 0x08000000 /* Single-pass DELETE and UPDATE */ #define SQLITE_OrderBySubq 0x10000000 /* ORDER BY in subquery helps outer */ +#define SQLITE_StarQuery 0x20000000 /* Heurists for star queries */ #define SQLITE_AllOpts 0xffffffff /* All optimizations */ /* @@ -18113,7 +18240,7 @@ struct sqlite3 { ** field is used by per-connection app-def functions. */ struct FuncDef { - i8 nArg; /* Number of arguments. -1 means unlimited */ + i16 nArg; /* Number of arguments. -1 means unlimited */ u32 funcFlags; /* Some combination of SQLITE_FUNC_* */ void *pUserData; /* User data parameter */ FuncDef *pNext; /* Next function with same name */ @@ -19406,13 +19533,8 @@ struct ExprList { */ struct IdList { int nId; /* Number of identifiers on the list */ - u8 eU4; /* Which element of a.u4 is valid */ struct IdList_item { char *zName; /* Name of the identifier */ - union { - int idx; /* Index in some Table.aCol[] of a column named zName */ - Expr *pExpr; /* Expr to implement a USING variable -- NOT USED */ - } u4; } a[1]; }; @@ -20099,9 +20221,7 @@ struct Parse { int nVtabLock; /* Number of virtual tables to lock */ #endif int nHeight; /* Expression tree height of current sub-select */ -#ifndef SQLITE_OMIT_EXPLAIN int addrExplain; /* Address of current OP_Explain opcode */ -#endif VList *pVList; /* Mapping between variable names and numbers */ Vdbe *pReprepare; /* VM being reprepared (sqlite3Reprepare()) */ const char *zTail; /* All SQL text past the last semicolon parsed */ @@ -22861,9 +22981,6 @@ static const char * const sqlite3azCompileOpt[] = { #ifdef SQLITE_UNTESTABLE "UNTESTABLE", #endif -#ifdef SQLITE_USER_AUTHENTICATION - "USER_AUTHENTICATION", -#endif #ifdef SQLITE_USE_ALLOCA "USE_ALLOCA", #endif @@ -23562,6 +23679,7 @@ struct sqlite3_value { #ifdef SQLITE_DEBUG Mem *pScopyFrom; /* This Mem is a shallow copy of pScopyFrom */ u16 mScopyFlags; /* flags value immediately after the shallow copy */ + u8 bScopy; /* The pScopyFrom of some other Mem *might* point here */ #endif }; @@ -23711,7 +23829,7 @@ struct sqlite3_context { int isError; /* Error code returned by the function. */ u8 enc; /* Encoding to use for results */ u8 skipFlag; /* Skip accumulator loading if true */ - u8 argc; /* Number of arguments */ + u16 argc; /* Number of arguments */ sqlite3_value *argv[1]; /* Argument set */ }; @@ -23858,6 +23976,7 @@ struct PreUpdate { int iBlobWrite; /* Value returned by preupdate_blobwrite() */ i64 iKey1; /* First key value passed to hook */ i64 iKey2; /* Second key value passed to hook */ + Mem oldipk; /* Memory cell holding "old" IPK value */ Mem *aNew; /* Array of new.* values */ Table *pTab; /* Schema object being updated */ Index *pPk; /* PK index if pTab is WITHOUT ROWID */ @@ -24659,6 +24778,9 @@ static int parseHhMmSs(const char *zDate, DateTime *p){ zDate++; } ms /= rScale; + /* Truncate to avoid problems with sub-milliseconds + ** rounding. https://sqlite.org/forum/forumpost/766a2c9231 */ + if( ms>0.999 ) ms = 0.999; } }else{ s = 0; @@ -25866,7 +25988,7 @@ static void strftimeFunc( } case 'f': { /* Fractional seconds. (Non-standard) */ double s = x.s; - if( s>59.999 ) s = 59.999; + if( NEVER(s>59.999) ) s = 59.999; sqlite3_str_appendf(&sRes, "%06.3f", s); break; } @@ -33034,10 +33156,13 @@ SQLITE_PRIVATE void sqlite3TreeViewSrcList(TreeView *pView, const SrcList *pSrc) sqlite3_str_appendf(&x, " DDL"); } if( pItem->fg.isCte ){ - sqlite3_str_appendf(&x, " CteUse=0x%p", pItem->u2.pCteUse); + static const char *aMat[] = {",MAT", "", ",NO-MAT"}; + sqlite3_str_appendf(&x, " CteUse=%d%s", + pItem->u2.pCteUse->nUse, + aMat[pItem->u2.pCteUse->eM10d]); } if( pItem->fg.isOn || (pItem->fg.isUsing==0 && pItem->u3.pOn!=0) ){ - sqlite3_str_appendf(&x, " ON"); + sqlite3_str_appendf(&x, " isOn"); } if( pItem->fg.isTabFunc ) sqlite3_str_appendf(&x, " isTabFunc"); if( pItem->fg.isCorrelated ) sqlite3_str_appendf(&x, " isCorrelated"); @@ -33065,9 +33190,6 @@ SQLITE_PRIVATE void sqlite3TreeViewSrcList(TreeView *pView, const SrcList *pSrc) sqlite3TreeViewColumnList(pView, pTab->aCol, pTab->nCol, 1); } assert( (int)pItem->fg.isNestedFrom == IsNestedFrom(pItem) ); - sqlite3TreeViewPush(&pView, 0); - sqlite3TreeViewLine(pView, "SUBQUERY"); - sqlite3TreeViewPop(&pView); sqlite3TreeViewSelect(pView, pItem->u4.pSubq->pSelect, 0); } if( pItem->fg.isTabFunc ){ @@ -33797,21 +33919,7 @@ SQLITE_PRIVATE void sqlite3TreeViewBareIdList( if( zName==0 ) zName = "(null)"; sqlite3TreeViewPush(&pView, moreToFollow); sqlite3TreeViewLine(pView, 0); - if( pList->eU4==EU4_NONE ){ - fprintf(stdout, "%s\n", zName); - }else if( pList->eU4==EU4_IDX ){ - fprintf(stdout, "%s (%d)\n", zName, pList->a[i].u4.idx); - }else{ - assert( pList->eU4==EU4_EXPR ); - if( pList->a[i].u4.pExpr==0 ){ - fprintf(stdout, "%s (pExpr=NULL)\n", zName); - }else{ - fprintf(stdout, "%s\n", zName); - sqlite3TreeViewPush(&pView, inId-1); - sqlite3TreeViewExpr(pView, pList->a[i].u4.pExpr, 0); - sqlite3TreeViewPop(&pView); - } - } + fprintf(stdout, "%s\n", zName); sqlite3TreeViewPop(&pView); } } @@ -34121,6 +34229,10 @@ SQLITE_PRIVATE void sqlite3TreeViewTrigger( ** accessible to the debugging, and to avoid warnings about unused ** functions. But these routines only exist in debugging builds, so they ** do not contaminate the interface. +** +** See Also: +** +** sqlite3ShowWhereTerm() in where.c */ SQLITE_PRIVATE void sqlite3ShowExpr(const Expr *p){ sqlite3TreeViewExpr(0,p,0); } SQLITE_PRIVATE void sqlite3ShowExprList(const ExprList *p){ sqlite3TreeViewExprList(0,p,0,0);} @@ -35812,8 +35924,14 @@ SQLITE_PRIVATE int sqlite3AtoF(const char *z, double *pResult, int length, u8 en rr[0] = (double)s; assert( sizeof(s2)==sizeof(rr[0]) ); - memcpy(&s2, &rr[0], sizeof(s2)); - if( s2<=0x43efffffffffffffLL ){ +#ifdef SQLITE_DEBUG + rr[1] = 18446744073709549568.0; + memcpy(&s2, &rr[1], sizeof(s2)); + assert( s2==0x43efffffffffffffLL ); +#endif + /* Largest double that can be safely converted to u64 + ** vvvvvvvvvvvvvvvvvvvvvv */ + if( rr[0]<=18446744073709549568.0 ){ s2 = (u64)rr[0]; rr[1] = s>=s2 ? (double)(s - s2) : -(double)(s2 - s); }else{ @@ -38691,7 +38809,7 @@ SQLITE_PRIVATE int sqlite3KvvfsInit(void){ # endif #else /* !SQLITE_WASI */ # ifndef HAVE_FCHMOD -# define HAVE_FCHMOD +# define HAVE_FCHMOD 1 # endif #endif /* SQLITE_WASI */ @@ -40142,7 +40260,7 @@ static int unixFileLock(unixFile *pFile, struct flock *pLock){ if( (pFile->ctrlFlags & (UNIXFILE_EXCL|UNIXFILE_RDONLY))==UNIXFILE_EXCL ){ if( pInode->bProcessLock==0 ){ struct flock lock; - assert( pInode->nLock==0 ); + /* assert( pInode->nLock==0 ); <-- Not true if unix-excl READONLY used */ lock.l_whence = SEEK_SET; lock.l_start = SHARED_FIRST; lock.l_len = SHARED_SIZE; @@ -42465,6 +42583,11 @@ static int unixFileControl(sqlite3_file *id, int op, void *pArg){ } #endif /* __linux__ && SQLITE_ENABLE_BATCH_ATOMIC_WRITE */ + case SQLITE_FCNTL_NULL_IO: { + osClose(pFile->h); + pFile->h = -1; + return SQLITE_OK; + } case SQLITE_FCNTL_LOCKSTATE: { *(int*)pArg = pFile->eFileLock; return SQLITE_OK; @@ -50346,6 +50469,11 @@ static int winFileControl(sqlite3_file *id, int op, void *pArg){ return SQLITE_OK; } #endif + case SQLITE_FCNTL_NULL_IO: { + (void)osCloseHandle(pFile->h); + pFile->h = NULL; + return SQLITE_OK; + } case SQLITE_FCNTL_TEMPFILENAME: { char *zTFile = 0; int rc = winGetTempname(pFile->pVfs, &zTFile); @@ -57996,20 +58124,6 @@ static const unsigned char aJournalMagic[] = { # define USEFETCH(x) 0 #endif -/* -** The argument to this macro is a file descriptor (type sqlite3_file*). -** Return 0 if it is not open, or non-zero (but not 1) if it is. -** -** This is so that expressions can be written as: -** -** if( isOpen(pPager->jfd) ){ ... -** -** instead of -** -** if( pPager->jfd->pMethods ){ ... -*/ -#define isOpen(pFd) ((pFd)->pMethods!=0) - #ifdef SQLITE_DIRECT_OVERFLOW_READ /* ** Return true if page pgno can be read directly from the database file @@ -58024,19 +58138,19 @@ SQLITE_PRIVATE int sqlite3PagerDirectReadOk(Pager *pPager, Pgno pgno){ assert( pPager!=0 ); assert( pPager->fd!=0 ); if( pPager->fd->pMethods==0 ) return 0; /* Case (1) */ - assert( pPager->fd->pMethods->xDeviceCharacteristics!=0 ); - if( (pPager->fd->pMethods->xDeviceCharacteristics(pPager->fd) - & SQLITE_IOCAP_SUBPAGE_READ)==0 ){ - return 0; /* Case (2) */ - } if( sqlite3PCacheIsDirty(pPager->pPCache) ) return 0; /* Failed (3) */ #ifndef SQLITE_OMIT_WAL if( pPager->pWal ){ u32 iRead = 0; (void)sqlite3WalFindFrame(pPager->pWal, pgno, &iRead); - return iRead==0; /* Condition (4) */ + if( iRead ) return 0; /* Case (4) */ } #endif + assert( pPager->fd->pMethods->xDeviceCharacteristics!=0 ); + if( (pPager->fd->pMethods->xDeviceCharacteristics(pPager->fd) + & SQLITE_IOCAP_SUBPAGE_READ)==0 ){ + return 0; /* Case (2) */ + } return 1; } #endif @@ -59295,7 +59409,7 @@ static int pager_end_transaction(Pager *pPager, int hasSuper, int bCommit){ } pPager->journalOff = 0; }else if( pPager->journalMode==PAGER_JOURNALMODE_PERSIST - || (pPager->exclusiveMode && pPager->journalMode!=PAGER_JOURNALMODE_WAL) + || (pPager->exclusiveMode && pPager->journalModetempFile); pPager->journalOff = 0; @@ -68005,11 +68119,7 @@ static int walBeginShmUnreliable(Wal *pWal, int *pChanged){ */ static int walTryBeginRead(Wal *pWal, int *pChanged, int useWal, int *pCnt){ volatile WalCkptInfo *pInfo; /* Checkpoint information in wal-index */ - u32 mxReadMark; /* Largest aReadMark[] value */ - int mxI; /* Index of largest aReadMark[] value */ - int i; /* Loop counter */ int rc = SQLITE_OK; /* Return code */ - u32 mxFrame; /* Wal frame to lock to */ #ifdef SQLITE_ENABLE_SETLK_TIMEOUT int nBlockTmout = 0; #endif @@ -68115,141 +68225,147 @@ static int walTryBeginRead(Wal *pWal, int *pChanged, int useWal, int *pCnt){ assert( pWal->apWiData[0]!=0 ); pInfo = walCkptInfo(pWal); SEH_INJECT_FAULT; - if( !useWal && AtomicLoad(&pInfo->nBackfill)==pWal->hdr.mxFrame + { + u32 mxReadMark; /* Largest aReadMark[] value */ + int mxI; /* Index of largest aReadMark[] value */ + int i; /* Loop counter */ + u32 mxFrame; /* Wal frame to lock to */ + if( !useWal && AtomicLoad(&pInfo->nBackfill)==pWal->hdr.mxFrame #ifdef SQLITE_ENABLE_SNAPSHOT - && ((pWal->bGetSnapshot==0 && pWal->pSnapshot==0) || pWal->hdr.mxFrame==0) + && ((pWal->bGetSnapshot==0 && pWal->pSnapshot==0) || pWal->hdr.mxFrame==0) #endif - ){ - /* The WAL has been completely backfilled (or it is empty). - ** and can be safely ignored. - */ - rc = walLockShared(pWal, WAL_READ_LOCK(0)); - walShmBarrier(pWal); - if( rc==SQLITE_OK ){ - if( memcmp((void *)walIndexHdr(pWal), &pWal->hdr, sizeof(WalIndexHdr)) ){ - /* It is not safe to allow the reader to continue here if frames - ** may have been appended to the log before READ_LOCK(0) was obtained. - ** When holding READ_LOCK(0), the reader ignores the entire log file, - ** which implies that the database file contains a trustworthy - ** snapshot. Since holding READ_LOCK(0) prevents a checkpoint from - ** happening, this is usually correct. - ** - ** However, if frames have been appended to the log (or if the log - ** is wrapped and written for that matter) before the READ_LOCK(0) - ** is obtained, that is not necessarily true. A checkpointer may - ** have started to backfill the appended frames but crashed before - ** it finished. Leaving a corrupt image in the database file. - */ - walUnlockShared(pWal, WAL_READ_LOCK(0)); - return WAL_RETRY; + ){ + /* The WAL has been completely backfilled (or it is empty). + ** and can be safely ignored. + */ + rc = walLockShared(pWal, WAL_READ_LOCK(0)); + walShmBarrier(pWal); + if( rc==SQLITE_OK ){ + if( memcmp((void *)walIndexHdr(pWal), &pWal->hdr,sizeof(WalIndexHdr)) ){ + /* It is not safe to allow the reader to continue here if frames + ** may have been appended to the log before READ_LOCK(0) was obtained. + ** When holding READ_LOCK(0), the reader ignores the entire log file, + ** which implies that the database file contains a trustworthy + ** snapshot. Since holding READ_LOCK(0) prevents a checkpoint from + ** happening, this is usually correct. + ** + ** However, if frames have been appended to the log (or if the log + ** is wrapped and written for that matter) before the READ_LOCK(0) + ** is obtained, that is not necessarily true. A checkpointer may + ** have started to backfill the appended frames but crashed before + ** it finished. Leaving a corrupt image in the database file. + */ + walUnlockShared(pWal, WAL_READ_LOCK(0)); + return WAL_RETRY; + } + pWal->readLock = 0; + return SQLITE_OK; + }else if( rc!=SQLITE_BUSY ){ + return rc; } - pWal->readLock = 0; - return SQLITE_OK; - }else if( rc!=SQLITE_BUSY ){ - return rc; } - } - /* If we get this far, it means that the reader will want to use - ** the WAL to get at content from recent commits. The job now is - ** to select one of the aReadMark[] entries that is closest to - ** but not exceeding pWal->hdr.mxFrame and lock that entry. - */ - mxReadMark = 0; - mxI = 0; - mxFrame = pWal->hdr.mxFrame; + /* If we get this far, it means that the reader will want to use + ** the WAL to get at content from recent commits. The job now is + ** to select one of the aReadMark[] entries that is closest to + ** but not exceeding pWal->hdr.mxFrame and lock that entry. + */ + mxReadMark = 0; + mxI = 0; + mxFrame = pWal->hdr.mxFrame; #ifdef SQLITE_ENABLE_SNAPSHOT - if( pWal->pSnapshot && pWal->pSnapshot->mxFramepSnapshot->mxFrame; - } -#endif - for(i=1; iaReadMark+i); SEH_INJECT_FAULT; - if( mxReadMark<=thisMark && thisMark<=mxFrame ){ - assert( thisMark!=READMARK_NOT_USED ); - mxReadMark = thisMark; - mxI = i; + if( pWal->pSnapshot && pWal->pSnapshot->mxFramepSnapshot->mxFrame; } - } - if( (pWal->readOnly & WAL_SHM_RDONLY)==0 - && (mxReadMarkaReadMark+i,mxFrame); - mxReadMark = mxFrame; + u32 thisMark = AtomicLoad(pInfo->aReadMark+i); SEH_INJECT_FAULT; + if( mxReadMark<=thisMark && thisMark<=mxFrame ){ + assert( thisMark!=READMARK_NOT_USED ); + mxReadMark = thisMark; mxI = i; - walUnlockExclusive(pWal, WAL_READ_LOCK(i), 1); - break; - }else if( rc!=SQLITE_BUSY ){ - return rc; } } - } - if( mxI==0 ){ - assert( rc==SQLITE_BUSY || (pWal->readOnly & WAL_SHM_RDONLY)!=0 ); - return rc==SQLITE_BUSY ? WAL_RETRY : SQLITE_READONLY_CANTINIT; - } + if( (pWal->readOnly & WAL_SHM_RDONLY)==0 + && (mxReadMarkaReadMark+i,mxFrame); + mxReadMark = mxFrame; + mxI = i; + walUnlockExclusive(pWal, WAL_READ_LOCK(i), 1); + break; + }else if( rc!=SQLITE_BUSY ){ + return rc; + } + } + } + if( mxI==0 ){ + assert( rc==SQLITE_BUSY || (pWal->readOnly & WAL_SHM_RDONLY)!=0 ); + return rc==SQLITE_BUSY ? WAL_RETRY : SQLITE_READONLY_CANTINIT; + } - (void)walEnableBlockingMs(pWal, nBlockTmout); - rc = walLockShared(pWal, WAL_READ_LOCK(mxI)); - walDisableBlocking(pWal); - if( rc ){ + (void)walEnableBlockingMs(pWal, nBlockTmout); + rc = walLockShared(pWal, WAL_READ_LOCK(mxI)); + walDisableBlocking(pWal); + if( rc ){ #ifdef SQLITE_ENABLE_SETLK_TIMEOUT - if( rc==SQLITE_BUSY_TIMEOUT ){ - *pCnt |= WAL_RETRY_BLOCKED_MASK; - } + if( rc==SQLITE_BUSY_TIMEOUT ){ + *pCnt |= WAL_RETRY_BLOCKED_MASK; + } #else - assert( rc!=SQLITE_BUSY_TIMEOUT ); + assert( rc!=SQLITE_BUSY_TIMEOUT ); #endif - assert( (rc&0xFF)!=SQLITE_BUSY||rc==SQLITE_BUSY||rc==SQLITE_BUSY_TIMEOUT ); - return (rc&0xFF)==SQLITE_BUSY ? WAL_RETRY : rc; - } - /* Now that the read-lock has been obtained, check that neither the - ** value in the aReadMark[] array or the contents of the wal-index - ** header have changed. - ** - ** It is necessary to check that the wal-index header did not change - ** between the time it was read and when the shared-lock was obtained - ** on WAL_READ_LOCK(mxI) was obtained to account for the possibility - ** that the log file may have been wrapped by a writer, or that frames - ** that occur later in the log than pWal->hdr.mxFrame may have been - ** copied into the database by a checkpointer. If either of these things - ** happened, then reading the database with the current value of - ** pWal->hdr.mxFrame risks reading a corrupted snapshot. So, retry - ** instead. - ** - ** Before checking that the live wal-index header has not changed - ** since it was read, set Wal.minFrame to the first frame in the wal - ** file that has not yet been checkpointed. This client will not need - ** to read any frames earlier than minFrame from the wal file - they - ** can be safely read directly from the database file. - ** - ** Because a ShmBarrier() call is made between taking the copy of - ** nBackfill and checking that the wal-header in shared-memory still - ** matches the one cached in pWal->hdr, it is guaranteed that the - ** checkpointer that set nBackfill was not working with a wal-index - ** header newer than that cached in pWal->hdr. If it were, that could - ** cause a problem. The checkpointer could omit to checkpoint - ** a version of page X that lies before pWal->minFrame (call that version - ** A) on the basis that there is a newer version (version B) of the same - ** page later in the wal file. But if version B happens to like past - ** frame pWal->hdr.mxFrame - then the client would incorrectly assume - ** that it can read version A from the database file. However, since - ** we can guarantee that the checkpointer that set nBackfill could not - ** see any pages past pWal->hdr.mxFrame, this problem does not come up. - */ - pWal->minFrame = AtomicLoad(&pInfo->nBackfill)+1; SEH_INJECT_FAULT; - walShmBarrier(pWal); - if( AtomicLoad(pInfo->aReadMark+mxI)!=mxReadMark - || memcmp((void *)walIndexHdr(pWal), &pWal->hdr, sizeof(WalIndexHdr)) - ){ - walUnlockShared(pWal, WAL_READ_LOCK(mxI)); - return WAL_RETRY; - }else{ - assert( mxReadMark<=pWal->hdr.mxFrame ); - pWal->readLock = (i16)mxI; + assert((rc&0xFF)!=SQLITE_BUSY||rc==SQLITE_BUSY||rc==SQLITE_BUSY_TIMEOUT); + return (rc&0xFF)==SQLITE_BUSY ? WAL_RETRY : rc; + } + /* Now that the read-lock has been obtained, check that neither the + ** value in the aReadMark[] array or the contents of the wal-index + ** header have changed. + ** + ** It is necessary to check that the wal-index header did not change + ** between the time it was read and when the shared-lock was obtained + ** on WAL_READ_LOCK(mxI) was obtained to account for the possibility + ** that the log file may have been wrapped by a writer, or that frames + ** that occur later in the log than pWal->hdr.mxFrame may have been + ** copied into the database by a checkpointer. If either of these things + ** happened, then reading the database with the current value of + ** pWal->hdr.mxFrame risks reading a corrupted snapshot. So, retry + ** instead. + ** + ** Before checking that the live wal-index header has not changed + ** since it was read, set Wal.minFrame to the first frame in the wal + ** file that has not yet been checkpointed. This client will not need + ** to read any frames earlier than minFrame from the wal file - they + ** can be safely read directly from the database file. + ** + ** Because a ShmBarrier() call is made between taking the copy of + ** nBackfill and checking that the wal-header in shared-memory still + ** matches the one cached in pWal->hdr, it is guaranteed that the + ** checkpointer that set nBackfill was not working with a wal-index + ** header newer than that cached in pWal->hdr. If it were, that could + ** cause a problem. The checkpointer could omit to checkpoint + ** a version of page X that lies before pWal->minFrame (call that version + ** A) on the basis that there is a newer version (version B) of the same + ** page later in the wal file. But if version B happens to like past + ** frame pWal->hdr.mxFrame - then the client would incorrectly assume + ** that it can read version A from the database file. However, since + ** we can guarantee that the checkpointer that set nBackfill could not + ** see any pages past pWal->hdr.mxFrame, this problem does not come up. + */ + pWal->minFrame = AtomicLoad(&pInfo->nBackfill)+1; SEH_INJECT_FAULT; + walShmBarrier(pWal); + if( AtomicLoad(pInfo->aReadMark+mxI)!=mxReadMark + || memcmp((void *)walIndexHdr(pWal), &pWal->hdr, sizeof(WalIndexHdr)) + ){ + walUnlockShared(pWal, WAL_READ_LOCK(mxI)); + return WAL_RETRY; + }else{ + assert( mxReadMark<=pWal->hdr.mxFrame ); + pWal->readLock = (i16)mxI; + } } return rc; } @@ -83975,27 +84091,30 @@ SQLITE_PRIVATE int sqlite3VdbeMemTooBig(Mem *p){ SQLITE_PRIVATE void sqlite3VdbeMemAboutToChange(Vdbe *pVdbe, Mem *pMem){ int i; Mem *pX; - for(i=1, pX=pVdbe->aMem+1; inMem; i++, pX++){ - if( pX->pScopyFrom==pMem ){ - u16 mFlags; - if( pVdbe->db->flags & SQLITE_VdbeTrace ){ - sqlite3DebugPrintf("Invalidate R[%d] due to change in R[%d]\n", - (int)(pX - pVdbe->aMem), (int)(pMem - pVdbe->aMem)); - } - /* If pX is marked as a shallow copy of pMem, then try to verify that - ** no significant changes have been made to pX since the OP_SCopy. - ** A significant change would indicated a missed call to this - ** function for pX. Minor changes, such as adding or removing a - ** dual type, are allowed, as long as the underlying value is the - ** same. */ - mFlags = pMem->flags & pX->flags & pX->mScopyFlags; - assert( (mFlags&(MEM_Int|MEM_IntReal))==0 || pMem->u.i==pX->u.i ); - - /* pMem is the register that is changing. But also mark pX as - ** undefined so that we can quickly detect the shallow-copy error */ - pX->flags = MEM_Undefined; - pX->pScopyFrom = 0; - } + if( pMem->bScopy ){ + for(i=1, pX=pVdbe->aMem+1; inMem; i++, pX++){ + if( pX->pScopyFrom==pMem ){ + u16 mFlags; + if( pVdbe->db->flags & SQLITE_VdbeTrace ){ + sqlite3DebugPrintf("Invalidate R[%d] due to change in R[%d]\n", + (int)(pX - pVdbe->aMem), (int)(pMem - pVdbe->aMem)); + } + /* If pX is marked as a shallow copy of pMem, then try to verify that + ** no significant changes have been made to pX since the OP_SCopy. + ** A significant change would indicated a missed call to this + ** function for pX. Minor changes, such as adding or removing a + ** dual type, are allowed, as long as the underlying value is the + ** same. */ + mFlags = pMem->flags & pX->flags & pX->mScopyFlags; + assert( (mFlags&(MEM_Int|MEM_IntReal))==0 || pMem->u.i==pX->u.i ); + + /* pMem is the register that is changing. But also mark pX as + ** undefined so that we can quickly detect the shallow-copy error */ + pX->flags = MEM_Undefined; + pX->pScopyFrom = 0; + } + } + pMem->bScopy = 0; } pMem->pScopyFrom = 0; } @@ -87129,6 +87248,7 @@ SQLITE_PRIVATE void sqlite3VdbePrintOp(FILE *pOut, int pc, VdbeOp *pOp){ ** will be initialized before use. */ static void initMemArray(Mem *p, int N, sqlite3 *db, u16 flags){ + assert( db!=0 ); if( N>0 ){ do{ p->flags = flags; @@ -87136,6 +87256,7 @@ static void initMemArray(Mem *p, int N, sqlite3 *db, u16 flags){ p->szMalloc = 0; #ifdef SQLITE_DEBUG p->pScopyFrom = 0; + p->bScopy = 0; #endif p++; }while( (--N)>0 ); @@ -87154,6 +87275,7 @@ static void releaseMemArray(Mem *p, int N){ if( p && N ){ Mem *pEnd = &p[N]; sqlite3 *db = p->db; + assert( db!=0 ); if( db->pnBytesFreed ){ do{ if( p->szMalloc ) sqlite3DbFree(db, p->zMalloc); @@ -87634,6 +87756,7 @@ SQLITE_PRIVATE void sqlite3VdbeMakeReady( assert( pParse!=0 ); assert( p->eVdbeState==VDBE_INIT_STATE ); assert( pParse==p->pParse ); + assert( pParse->db==p->db ); p->pVList = pParse->pVList; pParse->pVList = 0; db = p->db; @@ -90514,6 +90637,7 @@ SQLITE_PRIVATE void sqlite3VdbePreUpdateHook( sqlite3DbFree(db, preupdate.aRecord); vdbeFreeUnpacked(db, preupdate.keyinfo.nKeyField+1, preupdate.pUnpacked); vdbeFreeUnpacked(db, preupdate.keyinfo.nKeyField+1, preupdate.pNewUnpacked); + sqlite3VdbeMemRelease(&preupdate.oldipk); if( preupdate.aNew ){ int i; for(i=0; inField; i++){ @@ -90598,7 +90722,6 @@ static SQLITE_NOINLINE void invokeProfileCallback(sqlite3 *db, Vdbe *p){ sqlite3_int64 iNow; sqlite3_int64 iElapse; assert( p->startTime>0 ); - assert( (db->mTrace & (SQLITE_TRACE_PROFILE|SQLITE_TRACE_XPROFILE))!=0 ); assert( db->init.busy==0 ); assert( p->zSql!=0 ); sqlite3OsCurrentTimeInt64(db->pVfs, &iNow); @@ -91318,7 +91441,7 @@ static int sqlite3Step(Vdbe *p){ } assert( db->nVdbeWrite>0 || db->autoCommit==0 - || (db->nDeferredCons==0 && db->nDeferredImmCons==0) + || ((db->nDeferredCons + db->nDeferredImmCons)==0) ); #ifndef SQLITE_OMIT_TRACE @@ -91829,6 +91952,7 @@ static const Mem *columnNullValue(void){ #ifdef SQLITE_DEBUG /* .pScopyFrom = */ (Mem*)0, /* .mScopyFlags= */ 0, + /* .bScopy = */ 0, #endif }; return &nullMem; @@ -91870,7 +91994,7 @@ static Mem *columnMem(sqlite3_stmt *pStmt, int i){ ** sqlite3_column_int64() ** sqlite3_column_text() ** sqlite3_column_text16() -** sqlite3_column_real() +** sqlite3_column_double() ** sqlite3_column_bytes() ** sqlite3_column_bytes16() ** sqlite3_column_blob() @@ -92711,6 +92835,7 @@ SQLITE_API int sqlite3_preupdate_old(sqlite3 *db, int iIdx, sqlite3_value **ppVa PreUpdate *p; Mem *pMem; int rc = SQLITE_OK; + int iStore = 0; #ifdef SQLITE_ENABLE_API_ARMOR if( db==0 || ppValue==0 ){ @@ -92725,67 +92850,73 @@ SQLITE_API int sqlite3_preupdate_old(sqlite3 *db, int iIdx, sqlite3_value **ppVa goto preupdate_old_out; } if( p->pPk ){ - iIdx = sqlite3TableColumnToIndex(p->pPk, iIdx); + iStore = sqlite3TableColumnToIndex(p->pPk, iIdx); + }else{ + iStore = sqlite3TableColumnToStorage(p->pTab, iIdx); } - if( iIdx>=p->pCsr->nField || iIdx<0 ){ + if( iStore>=p->pCsr->nField || iStore<0 ){ rc = SQLITE_RANGE; goto preupdate_old_out; } - /* If the old.* record has not yet been loaded into memory, do so now. */ - if( p->pUnpacked==0 ){ - u32 nRec; - u8 *aRec; + if( iIdx==p->pTab->iPKey ){ + *ppValue = pMem = &p->oldipk; + sqlite3VdbeMemSetInt64(pMem, p->iKey1); + }else{ - assert( p->pCsr->eCurType==CURTYPE_BTREE ); - nRec = sqlite3BtreePayloadSize(p->pCsr->uc.pCursor); - aRec = sqlite3DbMallocRaw(db, nRec); - if( !aRec ) goto preupdate_old_out; - rc = sqlite3BtreePayload(p->pCsr->uc.pCursor, 0, nRec, aRec); - if( rc==SQLITE_OK ){ - p->pUnpacked = vdbeUnpackRecord(&p->keyinfo, nRec, aRec); - if( !p->pUnpacked ) rc = SQLITE_NOMEM; - } - if( rc!=SQLITE_OK ){ - sqlite3DbFree(db, aRec); - goto preupdate_old_out; + /* If the old.* record has not yet been loaded into memory, do so now. */ + if( p->pUnpacked==0 ){ + u32 nRec; + u8 *aRec; + + assert( p->pCsr->eCurType==CURTYPE_BTREE ); + nRec = sqlite3BtreePayloadSize(p->pCsr->uc.pCursor); + aRec = sqlite3DbMallocRaw(db, nRec); + if( !aRec ) goto preupdate_old_out; + rc = sqlite3BtreePayload(p->pCsr->uc.pCursor, 0, nRec, aRec); + if( rc==SQLITE_OK ){ + p->pUnpacked = vdbeUnpackRecord(&p->keyinfo, nRec, aRec); + if( !p->pUnpacked ) rc = SQLITE_NOMEM; + } + if( rc!=SQLITE_OK ){ + sqlite3DbFree(db, aRec); + goto preupdate_old_out; + } + p->aRecord = aRec; } - p->aRecord = aRec; - } - pMem = *ppValue = &p->pUnpacked->aMem[iIdx]; - if( iIdx==p->pTab->iPKey ){ - sqlite3VdbeMemSetInt64(pMem, p->iKey1); - }else if( iIdx>=p->pUnpacked->nField ){ - /* This occurs when the table has been extended using ALTER TABLE - ** ADD COLUMN. The value to return is the default value of the column. */ - Column *pCol = &p->pTab->aCol[iIdx]; - if( pCol->iDflt>0 ){ - if( p->apDflt==0 ){ - int nByte = sizeof(sqlite3_value*)*p->pTab->nCol; - p->apDflt = (sqlite3_value**)sqlite3DbMallocZero(db, nByte); - if( p->apDflt==0 ) goto preupdate_old_out; - } - if( p->apDflt[iIdx]==0 ){ - sqlite3_value *pVal = 0; - Expr *pDflt; - assert( p->pTab!=0 && IsOrdinaryTable(p->pTab) ); - pDflt = p->pTab->u.tab.pDfltList->a[pCol->iDflt-1].pExpr; - rc = sqlite3ValueFromExpr(db, pDflt, ENC(db), pCol->affinity, &pVal); - if( rc==SQLITE_OK && pVal==0 ){ - rc = SQLITE_CORRUPT_BKPT; + pMem = *ppValue = &p->pUnpacked->aMem[iStore]; + if( iStore>=p->pUnpacked->nField ){ + /* This occurs when the table has been extended using ALTER TABLE + ** ADD COLUMN. The value to return is the default value of the column. */ + Column *pCol = &p->pTab->aCol[iIdx]; + if( pCol->iDflt>0 ){ + if( p->apDflt==0 ){ + int nByte = sizeof(sqlite3_value*)*p->pTab->nCol; + p->apDflt = (sqlite3_value**)sqlite3DbMallocZero(db, nByte); + if( p->apDflt==0 ) goto preupdate_old_out; + } + if( p->apDflt[iIdx]==0 ){ + sqlite3_value *pVal = 0; + Expr *pDflt; + assert( p->pTab!=0 && IsOrdinaryTable(p->pTab) ); + pDflt = p->pTab->u.tab.pDfltList->a[pCol->iDflt-1].pExpr; + rc = sqlite3ValueFromExpr(db, pDflt, ENC(db), pCol->affinity, &pVal); + if( rc==SQLITE_OK && pVal==0 ){ + rc = SQLITE_CORRUPT_BKPT; + } + p->apDflt[iIdx] = pVal; } - p->apDflt[iIdx] = pVal; + *ppValue = p->apDflt[iIdx]; + }else{ + *ppValue = (sqlite3_value *)columnNullValue(); + } + }else if( p->pTab->aCol[iIdx].affinity==SQLITE_AFF_REAL ){ + if( pMem->flags & (MEM_Int|MEM_IntReal) ){ + testcase( pMem->flags & MEM_Int ); + testcase( pMem->flags & MEM_IntReal ); + sqlite3VdbeMemRealify(pMem); } - *ppValue = p->apDflt[iIdx]; - }else{ - *ppValue = (sqlite3_value *)columnNullValue(); - } - }else if( p->pTab->aCol[iIdx].affinity==SQLITE_AFF_REAL ){ - if( pMem->flags & (MEM_Int|MEM_IntReal) ){ - testcase( pMem->flags & MEM_Int ); - testcase( pMem->flags & MEM_IntReal ); - sqlite3VdbeMemRealify(pMem); } } @@ -92859,6 +92990,7 @@ SQLITE_API int sqlite3_preupdate_new(sqlite3 *db, int iIdx, sqlite3_value **ppVa PreUpdate *p; int rc = SQLITE_OK; Mem *pMem; + int iStore = 0; #ifdef SQLITE_ENABLE_API_ARMOR if( db==0 || ppValue==0 ){ @@ -92871,9 +93003,12 @@ SQLITE_API int sqlite3_preupdate_new(sqlite3 *db, int iIdx, sqlite3_value **ppVa goto preupdate_new_out; } if( p->pPk && p->op!=SQLITE_UPDATE ){ - iIdx = sqlite3TableColumnToIndex(p->pPk, iIdx); + iStore = sqlite3TableColumnToIndex(p->pPk, iIdx); + }else{ + iStore = sqlite3TableColumnToStorage(p->pTab, iIdx); } - if( iIdx>=p->pCsr->nField || iIdx<0 ){ + + if( iStore>=p->pCsr->nField || iStore<0 ){ rc = SQLITE_RANGE; goto preupdate_new_out; } @@ -92893,14 +93028,14 @@ SQLITE_API int sqlite3_preupdate_new(sqlite3 *db, int iIdx, sqlite3_value **ppVa } p->pNewUnpacked = pUnpack; } - pMem = &pUnpack->aMem[iIdx]; + pMem = &pUnpack->aMem[iStore]; if( iIdx==p->pTab->iPKey ){ sqlite3VdbeMemSetInt64(pMem, p->iKey2); - }else if( iIdx>=pUnpack->nField ){ + }else if( iStore>=pUnpack->nField ){ pMem = (sqlite3_value *)columnNullValue(); } }else{ - /* For an UPDATE, memory cell (p->iNewReg+1+iIdx) contains the required + /* For an UPDATE, memory cell (p->iNewReg+1+iStore) contains the required ** value. Make a copy of the cell contents and return a pointer to it. ** It is not safe to return a pointer to the memory cell itself as the ** caller may modify the value text encoding. @@ -92913,13 +93048,13 @@ SQLITE_API int sqlite3_preupdate_new(sqlite3 *db, int iIdx, sqlite3_value **ppVa goto preupdate_new_out; } } - assert( iIdx>=0 && iIdxpCsr->nField ); - pMem = &p->aNew[iIdx]; + assert( iStore>=0 && iStorepCsr->nField ); + pMem = &p->aNew[iStore]; if( pMem->flags==0 ){ if( iIdx==p->pTab->iPKey ){ sqlite3VdbeMemSetInt64(pMem, p->iKey2); }else{ - rc = sqlite3VdbeMemCopy(pMem, &p->v->aMem[p->iNewReg+1+iIdx]); + rc = sqlite3VdbeMemCopy(pMem, &p->v->aMem[p->iNewReg+1+iStore]); if( rc!=SQLITE_OK ) goto preupdate_new_out; } } @@ -94008,6 +94143,7 @@ static void registerTrace(int iReg, Mem *p){ printf("R[%d] = ", iReg); memTracePrint(p); if( p->pScopyFrom ){ + assert( p->pScopyFrom->bScopy ); printf(" <== R[%d]", (int)(p->pScopyFrom - &p[-iReg])); } printf("\n"); @@ -94991,6 +95127,7 @@ case OP_Move: { { int i; for(i=1; inMem; i++){ if( aMem[i].pScopyFrom==pIn1 ){ + assert( aMem[i].bScopy ); aMem[i].pScopyFrom = pOut; } } @@ -95063,6 +95200,7 @@ case OP_SCopy: { /* out2 */ #ifdef SQLITE_DEBUG pOut->pScopyFrom = pIn1; pOut->mScopyFlags = pIn1->flags; + pIn1->bScopy = 1; #endif break; } @@ -97939,9 +98077,11 @@ case OP_OpenEphemeral: { /* ncycle */ } } pCx->isOrdered = (pOp->p5!=BTREE_UNORDERED); + assert( p->apCsr[pOp->p1]==pCx ); if( rc ){ assert( !sqlite3BtreeClosesWithCursor(pCx->ub.pBtx, pCx->uc.pCursor) ); sqlite3BtreeClose(pCx->ub.pBtx); + p->apCsr[pOp->p1] = 0; /* Not required; helps with static analysis */ }else{ assert( sqlite3BtreeClosesWithCursor(pCx->ub.pBtx, pCx->uc.pCursor) ); } @@ -109871,7 +110011,7 @@ static int codeCompare( p5 = binaryCompareP5(pLeft, pRight, jumpIfNull); addr = sqlite3VdbeAddOp4(pParse->pVdbe, opcode, in2, dest, in1, (void*)p4, P4_COLLSEQ); - sqlite3VdbeChangeP5(pParse->pVdbe, (u8)p5); + sqlite3VdbeChangeP5(pParse->pVdbe, (u16)p5); return addr; } @@ -111324,16 +111464,13 @@ SQLITE_PRIVATE IdList *sqlite3IdListDup(sqlite3 *db, const IdList *p){ int i; assert( db!=0 ); if( p==0 ) return 0; - assert( p->eU4!=EU4_EXPR ); pNew = sqlite3DbMallocRawNN(db, sizeof(*pNew)+(p->nId-1)*sizeof(p->a[0]) ); if( pNew==0 ) return 0; pNew->nId = p->nId; - pNew->eU4 = p->eU4; for(i=0; inId; i++){ struct IdList_item *pNewItem = &pNew->a[i]; const struct IdList_item *pOldItem = &p->a[i]; pNewItem->zName = sqlite3DbStrDup(db, pOldItem->zName); - pNewItem->u4 = pOldItem->u4; } return pNew; } @@ -112038,7 +112175,7 @@ static int sqlite3ExprIsTableConstant(Expr *p, int iCur, int bAllowSubq){ ** (4a) pExpr must come from an ON clause.. ** (4b) and specifically the ON clause associated with the LEFT JOIN. ** -** (5) If pSrc is not the right operand of a LEFT JOIN or the left +** (5) If pSrc is the right operand of a LEFT JOIN or the left ** operand of a RIGHT JOIN, then pExpr must be from the WHERE ** clause, not an ON clause. ** @@ -112677,6 +112814,7 @@ SQLITE_PRIVATE int sqlite3FindInIndex( if( aiMap ) aiMap[i] = j; } + assert( nExpr>0 && nExpropcode==OP_BeginSubrtn ); pSig = pOp->p4.pSubrtnSig; assert( pSig!=0 ); + if( !pSig->bComplete ) continue; if( pNewSig->selId!=pSig->selId ) continue; if( strcmp(pNewSig->zAff,pSig->zAff)!=0 ) continue; pExpr->y.sub.iAddr = pSig->iAddr; @@ -112902,6 +113041,7 @@ SQLITE_PRIVATE void sqlite3CodeRhsOfIN( KeyInfo *pKeyInfo = 0; /* Key information */ int nVal; /* Size of vector pLeft */ Vdbe *v; /* The prepared statement under construction */ + SubrtnSig *pSig = 0; /* Signature for this subroutine */ v = pParse->pVdbe; assert( v!=0 ); @@ -112922,7 +113062,6 @@ SQLITE_PRIVATE void sqlite3CodeRhsOfIN( ** Compute a signature for the RHS of the IN operator to facility ** finding and reusing prior instances of the same IN operator. */ - SubrtnSig *pSig = 0; assert( !ExprUseXSelect(pExpr) || pExpr->x.pSelect!=0 ); if( ExprUseXSelect(pExpr) && (pExpr->x.pSelect->selFlags & SF_All)==0 ){ pSig = sqlite3DbMallocRawNN(pParse->db, sizeof(pSig[0])); @@ -112965,6 +113104,7 @@ SQLITE_PRIVATE void sqlite3CodeRhsOfIN( pExpr->y.sub.iAddr = sqlite3VdbeAddOp2(v, OP_BeginSubrtn, 0, pExpr->y.sub.regReturn) + 1; if( pSig ){ + pSig->bComplete = 0; pSig->iAddr = pExpr->y.sub.iAddr; pSig->regReturn = pExpr->y.sub.regReturn; pSig->iTable = iTab; @@ -113100,6 +113240,7 @@ SQLITE_PRIVATE void sqlite3CodeRhsOfIN( sqlite3ReleaseTempReg(pParse, r1); sqlite3ReleaseTempReg(pParse, r2); } + if( pSig ) pSig->bComplete = 1; if( pKeyInfo ){ sqlite3VdbeChangeP4(v, addr, (void *)pKeyInfo, P4_KEYINFO); } @@ -115572,16 +115713,23 @@ SQLITE_PRIVATE void sqlite3ExprIfFalseDup(Parse *pParse, Expr *pExpr, int dest,i ** same as that currently bound to variable pVar, non-zero is returned. ** Otherwise, if the values are not the same or if pExpr is not a simple ** SQL value, zero is returned. +** +** If the SQLITE_EnableQPSG flag is set on the database connection, then +** this routine always returns false. */ -static int exprCompareVariable( +static SQLITE_NOINLINE int exprCompareVariable( const Parse *pParse, const Expr *pVar, const Expr *pExpr ){ - int res = 0; + int res = 2; int iVar; sqlite3_value *pL, *pR = 0; + if( pExpr->op==TK_VARIABLE && pVar->iColumn==pExpr->iColumn ){ + return 0; + } + if( (pParse->db->flags & SQLITE_EnableQPSG)!=0 ) return 2; sqlite3ValueFromExpr(pParse->db, pExpr, SQLITE_UTF8, SQLITE_AFF_BLOB, &pR); if( pR ){ iVar = pVar->iColumn; @@ -115591,12 +115739,11 @@ static int exprCompareVariable( if( sqlite3_value_type(pL)==SQLITE_TEXT ){ sqlite3_value_text(pL); /* Make sure the encoding is UTF-8 */ } - res = 0==sqlite3MemCompare(pL, pR, 0); + res = sqlite3MemCompare(pL, pR, 0) ? 2 : 0; } sqlite3ValueFree(pR); sqlite3ValueFree(pL); } - return res; } @@ -115622,12 +115769,10 @@ static int exprCompareVariable( ** just might result in some slightly slower code. But returning ** an incorrect 0 or 1 could lead to a malfunction. ** -** If pParse is not NULL then TK_VARIABLE terms in pA with bindings in -** pParse->pReprepare can be matched against literals in pB. The -** pParse->pVdbe->expmask bitmask is updated for each variable referenced. -** If pParse is NULL (the normal case) then any TK_VARIABLE term in -** Argument pParse should normally be NULL. If it is not NULL and pA or -** pB causes a return value of 2. +** If pParse is not NULL and SQLITE_EnableQPSG is off then TK_VARIABLE +** terms in pA with bindings in pParse->pReprepare can be matched against +** literals in pB. The pParse->pVdbe->expmask bitmask is updated for +** each variable referenced. */ SQLITE_PRIVATE int sqlite3ExprCompare( const Parse *pParse, @@ -115639,8 +115784,8 @@ SQLITE_PRIVATE int sqlite3ExprCompare( if( pA==0 || pB==0 ){ return pB==pA ? 0 : 2; } - if( pParse && pA->op==TK_VARIABLE && exprCompareVariable(pParse, pA, pB) ){ - return 0; + if( pParse && pA->op==TK_VARIABLE ){ + return exprCompareVariable(pParse, pA, pB); } combinedFlags = pA->flags | pB->flags; if( combinedFlags & EP_IntValue ){ @@ -115835,18 +115980,70 @@ static int exprImpliesNotNull( return 0; } +/* +** Return true if the boolean value of the expression is always either +** FALSE or NULL. +*/ +static int sqlite3ExprIsNotTrue(Expr *pExpr){ + int v; + if( pExpr->op==TK_NULL ) return 1; + if( pExpr->op==TK_TRUEFALSE && sqlite3ExprTruthValue(pExpr)==0 ) return 1; + v = 1; + if( sqlite3ExprIsInteger(pExpr, &v, 0) && v==0 ) return 1; + return 0; +} + +/* +** Return true if the expression is one of the following: +** +** CASE WHEN x THEN y END +** CASE WHEN x THEN y ELSE NULL END +** CASE WHEN x THEN y ELSE false END +** iif(x,y) +** iif(x,y,NULL) +** iif(x,y,false) +*/ +static int sqlite3ExprIsIIF(sqlite3 *db, const Expr *pExpr){ + ExprList *pList; + if( pExpr->op==TK_FUNCTION ){ + const char *z = pExpr->u.zToken; + FuncDef *pDef; + if( (z[0]!='i' && z[0]!='I') ) return 0; + if( pExpr->x.pList==0 ) return 0; + pDef = sqlite3FindFunction(db, z, pExpr->x.pList->nExpr, ENC(db), 0); +#ifdef SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION + if( pDef==0 ) return 0; +#else + if( NEVER(pDef==0) ) return 0; +#endif + if( (pDef->funcFlags & SQLITE_FUNC_INLINE)==0 ) return 0; + if( SQLITE_PTR_TO_INT(pDef->pUserData)!=INLINEFUNC_iif ) return 0; + }else if( pExpr->op==TK_CASE ){ + if( pExpr->pLeft!=0 ) return 0; + }else{ + return 0; + } + pList = pExpr->x.pList; + assert( pList!=0 ); + if( pList->nExpr==2 ) return 1; + if( pList->nExpr==3 && sqlite3ExprIsNotTrue(pList->a[2].pExpr) ) return 1; + return 0; +} + /* ** Return true if we can prove the pE2 will always be true if pE1 is ** true. Return false if we cannot complete the proof or if pE2 might ** be false. Examples: ** -** pE1: x==5 pE2: x==5 Result: true -** pE1: x>0 pE2: x==5 Result: false -** pE1: x=21 pE2: x=21 OR y=43 Result: true -** pE1: x!=123 pE2: x IS NOT NULL Result: true -** pE1: x!=?1 pE2: x IS NOT NULL Result: true -** pE1: x IS NULL pE2: x IS NOT NULL Result: false -** pE1: x IS ?2 pE2: x IS NOT NULL Result: false +** pE1: x==5 pE2: x==5 Result: true +** pE1: x>0 pE2: x==5 Result: false +** pE1: x=21 pE2: x=21 OR y=43 Result: true +** pE1: x!=123 pE2: x IS NOT NULL Result: true +** pE1: x!=?1 pE2: x IS NOT NULL Result: true +** pE1: x IS NULL pE2: x IS NOT NULL Result: false +** pE1: x IS ?2 pE2: x IS NOT NULL Result: false +** pE1: iif(x,y) pE2: x Result: true +** PE1: iif(x,y,0) pE2: x Result: true ** ** When comparing TK_COLUMN nodes between pE1 and pE2, if pE2 has ** Expr.iTable<0 then assume a table number given by iTab. @@ -115880,6 +116077,9 @@ SQLITE_PRIVATE int sqlite3ExprImpliesExpr( ){ return 1; } + if( sqlite3ExprIsIIF(pParse->db, pE1) ){ + return sqlite3ExprImpliesExpr(pParse,pE1->x.pList->a[0].pExpr,pE2,iTab); + } return 0; } @@ -121239,6 +121439,12 @@ static void attachFunc( sqlite3_free(zErr); return; } + if( (db->flags & SQLITE_AttachWrite)==0 ){ + flags &= ~(SQLITE_OPEN_CREATE|SQLITE_OPEN_READWRITE); + flags |= SQLITE_OPEN_READONLY; + }else if( (db->flags & SQLITE_AttachCreate)==0 ){ + flags &= ~SQLITE_OPEN_CREATE; + } assert( pVfs ); flags |= SQLITE_OPEN_MAIN_DB; rc = sqlite3BtreeOpen(pVfs, zPath, db, &pNew->pBt, 0, flags); @@ -121291,15 +121497,6 @@ static void attachFunc( sqlite3BtreeLeaveAll(db); assert( zErrDyn==0 || rc!=SQLITE_OK ); } -#ifdef SQLITE_USER_AUTHENTICATION - if( rc==SQLITE_OK && !REOPEN_AS_MEMDB(db) ){ - u8 newAuth = 0; - rc = sqlite3UserAuthCheckLogin(db, zName, &newAuth); - if( newAuthauth.authLevel ){ - rc = SQLITE_AUTH_USER; - } - } -#endif if( rc ){ if( ALWAYS(!REOPEN_AS_MEMDB(db)) ){ int iDb = db->nDb - 1; @@ -121797,11 +121994,7 @@ SQLITE_PRIVATE int sqlite3AuthReadCol( int rc; /* Auth callback return code */ if( db->init.busy ) return SQLITE_OK; - rc = db->xAuth(db->pAuthArg, SQLITE_READ, zTab,zCol,zDb,pParse->zAuthContext -#ifdef SQLITE_USER_AUTHENTICATION - ,db->auth.zAuthUser -#endif - ); + rc = db->xAuth(db->pAuthArg, SQLITE_READ, zTab,zCol,zDb,pParse->zAuthContext); if( rc==SQLITE_DENY ){ char *z = sqlite3_mprintf("%s.%s", zTab, zCol); if( db->nDb>2 || iDb!=0 ) z = sqlite3_mprintf("%s.%z", zDb, z); @@ -121908,11 +122101,7 @@ SQLITE_PRIVATE int sqlite3AuthCheck( testcase( zArg3==0 ); testcase( pParse->zAuthContext==0 ); - rc = db->xAuth(db->pAuthArg, code, zArg1, zArg2, zArg3, pParse->zAuthContext -#ifdef SQLITE_USER_AUTHENTICATION - ,db->auth.zAuthUser -#endif - ); + rc = db->xAuth(db->pAuthArg,code,zArg1,zArg2,zArg3,pParse->zAuthContext); if( rc==SQLITE_DENY ){ sqlite3ErrorMsg(pParse, "not authorized"); pParse->rc = SQLITE_AUTH; @@ -122145,17 +122334,6 @@ SQLITE_PRIVATE void sqlite3FinishCoding(Parse *pParse){ } sqlite3VdbeAddOp0(v, OP_Halt); -#if SQLITE_USER_AUTHENTICATION && !defined(SQLITE_OMIT_SHARED_CACHE) - if( pParse->nTableLock>0 && db->init.busy==0 ){ - sqlite3UserAuthInit(db); - if( db->auth.authLevelrc = SQLITE_AUTH_USER; - return; - } - } -#endif - /* The cookie mask contains one bit for each database file open. ** (Bit 0 is for main, bit 1 is for temp, and so forth.) Bits are ** set for each database that is used. Generate code to start a @@ -122284,16 +122462,6 @@ SQLITE_PRIVATE void sqlite3NestedParse(Parse *pParse, const char *zFormat, ...){ pParse->nested--; } -#if SQLITE_USER_AUTHENTICATION -/* -** Return TRUE if zTable is the name of the system table that stores the -** list of users and their access credentials. -*/ -SQLITE_PRIVATE int sqlite3UserAuthTable(const char *zTable){ - return sqlite3_stricmp(zTable, "sqlite_user")==0; -} -#endif - /* ** Locate the in-memory structure that describes a particular database ** table given the name of that table and (optionally) the name of the @@ -122312,13 +122480,6 @@ SQLITE_PRIVATE Table *sqlite3FindTable(sqlite3 *db, const char *zName, const cha /* All mutexes are required for schema access. Make sure we hold them. */ assert( zDatabase!=0 || sqlite3BtreeHoldsAllMutexes(db) ); -#if SQLITE_USER_AUTHENTICATION - /* Only the admin user is allowed to know that the sqlite_user table - ** exists */ - if( db->auth.authLevelnDb; i++){ if( sqlite3StrICmp(zDatabase, db->aDb[i].zDbSName)==0 ) break; @@ -125977,9 +126138,6 @@ SQLITE_PRIVATE void sqlite3CreateIndex( if( sqlite3StrNICmp(pTab->zName, "sqlite_", 7)==0 && db->init.busy==0 && pTblName!=0 -#if SQLITE_USER_AUTHENTICATION - && sqlite3UserAuthTable(pTab->zName)==0 -#endif ){ sqlite3ErrorMsg(pParse, "table %s may not be indexed", pTab->zName); goto exit_create_index; @@ -126678,7 +126836,6 @@ SQLITE_PRIVATE void sqlite3IdListDelete(sqlite3 *db, IdList *pList){ int i; assert( db!=0 ); if( pList==0 ) return; - assert( pList->eU4!=EU4_EXPR ); /* EU4_EXPR mode is not currently used */ for(i=0; inId; i++){ sqlite3DbFree(db, pList->a[i].zName); } @@ -128059,12 +128216,18 @@ static int matchQuality( u8 enc /* Desired text encoding */ ){ int match; - assert( p->nArg>=-1 ); + assert( p->nArg>=(-4) && p->nArg!=(-2) ); + assert( nArg>=(-2) ); /* Wrong number of arguments means "no match" */ if( p->nArg!=nArg ){ - if( nArg==(-2) ) return (p->xSFunc==0) ? 0 : FUNC_PERFECT_MATCH; + if( nArg==(-2) ) return p->xSFunc==0 ? 0 : FUNC_PERFECT_MATCH; if( p->nArg>=0 ) return 0; + /* Special p->nArg values available to built-in functions only: + ** -3 1 or more arguments required + ** -4 2 or more arguments required + */ + if( p->nArg<(-2) && nArg<(-2-p->nArg) ) return 0; } /* Give a better score to a function with a specific number of arguments @@ -129687,7 +129850,6 @@ static void substrFunc( int len; int p0type; i64 p1, p2; - int negP2 = 0; assert( argc==3 || argc==2 ); if( sqlite3_value_type(argv[1])==SQLITE_NULL @@ -129696,7 +129858,7 @@ static void substrFunc( return; } p0type = sqlite3_value_type(argv[0]); - p1 = sqlite3_value_int(argv[1]); + p1 = sqlite3_value_int64(argv[1]); if( p0type==SQLITE_BLOB ){ len = sqlite3_value_bytes(argv[0]); z = sqlite3_value_blob(argv[0]); @@ -129721,19 +129883,18 @@ static void substrFunc( if( p1==0 ) p1 = 1; /* */ #endif if( argc==3 ){ - p2 = sqlite3_value_int(argv[2]); - if( p2<0 ){ - p2 = -p2; - negP2 = 1; - } + p2 = sqlite3_value_int64(argv[2]); }else{ p2 = sqlite3_context_db_handle(context)->aLimit[SQLITE_LIMIT_LENGTH]; } if( p1<0 ){ p1 += len; if( p1<0 ){ - p2 += p1; - if( p2<0 ) p2 = 0; + if( p2<0 ){ + p2 = 0; + }else{ + p2 += p1; + } p1 = 0; } }else if( p1>0 ){ @@ -129741,12 +129902,13 @@ static void substrFunc( }else if( p2>0 ){ p2--; } - if( negP2 ){ - p1 -= p2; - if( p1<0 ){ - p2 += p1; - p1 = 0; + if( p2<0 ){ + if( p2<-p1 ){ + p2 = p1; + }else{ + p2 = -p2; } + p1 -= p2; } assert( p1>=0 && p2>=0 ); if( p0type!=SQLITE_BLOB ){ @@ -129760,9 +129922,11 @@ static void substrFunc( sqlite3_result_text64(context, (char*)z, z2-z, SQLITE_TRANSIENT, SQLITE_UTF8); }else{ - if( p1+p2>len ){ + if( p1>=len ){ + p1 = p2 = 0; + }else if( p2>len-p1 ){ p2 = len-p1; - if( p2<0 ) p2 = 0; + assert( p2>0 ); } sqlite3_result_blob64(context, (char*)&z[p1], (u64)p2, SQLITE_TRANSIENT); } @@ -129773,13 +129937,13 @@ static void substrFunc( */ #ifndef SQLITE_OMIT_FLOATING_POINT static void roundFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ - int n = 0; + i64 n = 0; double r; char *zBuf; assert( argc==1 || argc==2 ); if( argc==2 ){ if( SQLITE_NULL==sqlite3_value_type(argv[1]) ) return; - n = sqlite3_value_int(argv[1]); + n = sqlite3_value_int64(argv[1]); if( n>30 ) n = 30; if( n<0 ) n = 0; } @@ -129794,7 +129958,7 @@ static void roundFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ }else if( n==0 ){ r = (double)((sqlite_int64)(r+(r<0?-0.5:+0.5))); }else{ - zBuf = sqlite3_mprintf("%!.*f",n,r); + zBuf = sqlite3_mprintf("%!.*f",(int)n,r); if( zBuf==0 ){ sqlite3_result_error_nomem(context); return; @@ -130903,7 +131067,7 @@ static void concatFuncCore( for(i=0; icnt>0 ); p->cnt--; if( !p->approx ){ - p->iSum -= sqlite3_value_int64(argv[0]); + if( sqlite3SubInt64(&p->iSum, sqlite3_value_int64(argv[0])) ){ + p->ovrfl = 1; + p->approx = 1; + } }else if( type==SQLITE_INTEGER ){ i64 iVal = sqlite3_value_int64(argv[0]); if( iVal!=SMALLEST_INT64 ){ @@ -132011,9 +132178,6 @@ SQLITE_PRIVATE void sqlite3RegisterBuiltinFunctions(void){ SFUNCTION(load_extension, 1, 0, 0, loadExt ), SFUNCTION(load_extension, 2, 0, 0, loadExt ), #endif -#if SQLITE_USER_AUTHENTICATION - FUNCTION(sqlite_crypt, 2, 0, 0, sqlite3CryptFunc ), -#endif #ifndef SQLITE_OMIT_COMPILEOPTION_DIAGS DFUNCTION(sqlite_compileoption_used,1, 0, 0, compileoptionusedFunc ), DFUNCTION(sqlite_compileoption_get, 1, 0, 0, compileoptiongetFunc ), @@ -132030,12 +132194,10 @@ SQLITE_PRIVATE void sqlite3RegisterBuiltinFunctions(void){ FUNCTION(rtrim, 2, 2, 0, trimFunc ), FUNCTION(trim, 1, 3, 0, trimFunc ), FUNCTION(trim, 2, 3, 0, trimFunc ), - FUNCTION(min, -1, 0, 1, minmaxFunc ), - FUNCTION(min, 0, 0, 1, 0 ), + FUNCTION(min, -3, 0, 1, minmaxFunc ), WAGGREGATE(min, 1, 0, 1, minmaxStep, minMaxFinalize, minMaxValue, 0, SQLITE_FUNC_MINMAX|SQLITE_FUNC_ANYORDER ), - FUNCTION(max, -1, 1, 1, minmaxFunc ), - FUNCTION(max, 0, 1, 1, 0 ), + FUNCTION(max, -3, 1, 1, minmaxFunc ), WAGGREGATE(max, 1, 1, 1, minmaxStep, minMaxFinalize, minMaxValue, 0, SQLITE_FUNC_MINMAX|SQLITE_FUNC_ANYORDER ), FUNCTION2(typeof, 1, 0, 0, typeofFunc, SQLITE_FUNC_TYPEOF), @@ -132062,11 +132224,8 @@ SQLITE_PRIVATE void sqlite3RegisterBuiltinFunctions(void){ FUNCTION(hex, 1, 0, 0, hexFunc ), FUNCTION(unhex, 1, 0, 0, unhexFunc ), FUNCTION(unhex, 2, 0, 0, unhexFunc ), - FUNCTION(concat, -1, 0, 0, concatFunc ), - FUNCTION(concat, 0, 0, 0, 0 ), - FUNCTION(concat_ws, -1, 0, 0, concatwsFunc ), - FUNCTION(concat_ws, 0, 0, 0, 0 ), - FUNCTION(concat_ws, 1, 0, 0, 0 ), + FUNCTION(concat, -3, 0, 0, concatFunc ), + FUNCTION(concat_ws, -4, 0, 0, concatwsFunc ), INLINE_FUNC(ifnull, 2, INLINEFUNC_coalesce, 0 ), VFUNCTION(random, 0, 0, 0, randomFunc ), VFUNCTION(randomblob, 1, 0, 0, randomBlob ), @@ -132110,8 +132269,6 @@ SQLITE_PRIVATE void sqlite3RegisterBuiltinFunctions(void){ #ifdef SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION FUNCTION(unknown, -1, 0, 0, unknownFunc ), #endif - FUNCTION(coalesce, 1, 0, 0, 0 ), - FUNCTION(coalesce, 0, 0, 0, 0 ), #ifdef SQLITE_ENABLE_MATH_FUNCTIONS MFUNCTION(ceil, 1, xCeil, ceilingFunc ), MFUNCTION(ceiling, 1, xCeil, ceilingFunc ), @@ -132149,8 +132306,9 @@ SQLITE_PRIVATE void sqlite3RegisterBuiltinFunctions(void){ MFUNCTION(pi, 0, 0, piFunc ), #endif /* SQLITE_ENABLE_MATH_FUNCTIONS */ FUNCTION(sign, 1, 0, 0, signFunc ), - INLINE_FUNC(coalesce, -1, INLINEFUNC_coalesce, 0 ), - INLINE_FUNC(iif, 3, INLINEFUNC_iif, 0 ), + INLINE_FUNC(coalesce, -4, INLINEFUNC_coalesce, 0 ), + INLINE_FUNC(iif, -4, INLINEFUNC_iif, 0 ), + INLINE_FUNC(if, -4, INLINEFUNC_iif, 0 ), }; #ifndef SQLITE_OMIT_ALTERTABLE sqlite3AlterFunctions(); @@ -134596,6 +134754,7 @@ SQLITE_PRIVATE void sqlite3Insert( int regRowid; /* registers holding insert rowid */ int regData; /* register holding first column to insert */ int *aRegIdx = 0; /* One register allocated to each index */ + int *aTabColMap = 0; /* Mapping from pTab columns to pCol entries */ #ifndef SQLITE_OMIT_TRIGGER int isView; /* True if attempting to insert into a view */ @@ -134740,15 +134899,15 @@ SQLITE_PRIVATE void sqlite3Insert( */ bIdListInOrder = (pTab->tabFlags & (TF_OOOHidden|TF_HasStored))==0; if( pColumn ){ - assert( pColumn->eU4!=EU4_EXPR ); - pColumn->eU4 = EU4_IDX; - for(i=0; inId; i++){ - pColumn->a[i].u4.idx = -1; - } + aTabColMap = sqlite3DbMallocZero(db, pTab->nCol*sizeof(int)); + if( aTabColMap==0 ) goto insert_cleanup; for(i=0; inId; i++){ + const char *zCName = pColumn->a[i].zName; + u8 hName = sqlite3StrIHash(zCName); for(j=0; jnCol; j++){ - if( sqlite3StrICmp(pColumn->a[i].zName, pTab->aCol[j].zCnName)==0 ){ - pColumn->a[i].u4.idx = j; + if( pTab->aCol[j].hName!=hName ) continue; + if( sqlite3StrICmp(zCName, pTab->aCol[j].zCnName)==0 ){ + if( aTabColMap[j]==0 ) aTabColMap[j] = i+1; if( i!=j ) bIdListInOrder = 0; if( j==pTab->iPKey ){ ipkColumn = i; assert( !withoutRowid ); @@ -135070,9 +135229,9 @@ SQLITE_PRIVATE void sqlite3Insert( } } if( pColumn ){ - assert( pColumn->eU4==EU4_IDX ); - for(j=0; jnId && pColumn->a[j].u4.idx!=i; j++){} - if( j>=pColumn->nId ){ + j = aTabColMap[i]; + assert( j>=0 && j<=pColumn->nId ); + if( j==0 ){ /* A column not named in the insert column list gets its ** default value */ sqlite3ExprCodeFactorable(pParse, @@ -135080,7 +135239,7 @@ SQLITE_PRIVATE void sqlite3Insert( iRegStore); continue; } - k = j; + k = j - 1; }else if( nColumn==0 ){ /* This is INSERT INTO ... DEFAULT VALUES. Load the default value. */ sqlite3ExprCodeFactorable(pParse, @@ -135325,7 +135484,10 @@ SQLITE_PRIVATE void sqlite3Insert( sqlite3ExprListDelete(db, pList); sqlite3UpsertDelete(db, pUpsert); sqlite3SelectDelete(db, pSelect); - sqlite3IdListDelete(db, pColumn); + if( pColumn ){ + sqlite3IdListDelete(db, pColumn); + sqlite3DbFree(db, aTabColMap); + } if( aRegIdx ) sqlite3DbNNFreeNN(db, aRegIdx); } @@ -140663,12 +140825,6 @@ SQLITE_PRIVATE void sqlite3Pragma( ** in auto-commit mode. */ mask &= ~(SQLITE_ForeignKeys); } -#if SQLITE_USER_AUTHENTICATION - if( db->auth.authLevel==UAUTH_User ){ - /* Do not allow non-admin users to modify the schema arbitrarily */ - mask &= ~(SQLITE_WriteSchema); - } -#endif if( sqlite3GetBoolean(zRight, 0) ){ if( (mask & SQLITE_WriteSchema)==0 @@ -140804,7 +140960,8 @@ SQLITE_PRIVATE void sqlite3Pragma( char *zSql = sqlite3MPrintf(db, "SELECT*FROM\"%w\"", pTab->zName); if( zSql ){ sqlite3_stmt *pDummy = 0; - (void)sqlite3_prepare(db, zSql, -1, &pDummy, 0); + (void)sqlite3_prepare_v3(db, zSql, -1, SQLITE_PREPARE_DONT_LOG, + &pDummy, 0); (void)sqlite3_finalize(pDummy); sqlite3DbFree(db, zSql); } @@ -141285,7 +141442,7 @@ SQLITE_PRIVATE void sqlite3Pragma( /* Do the b-tree integrity checks */ sqlite3VdbeAddOp4(v, OP_IntegrityCk, 1, cnt, 8, (char*)aRoot,P4_INTARRAY); - sqlite3VdbeChangeP5(v, (u8)i); + sqlite3VdbeChangeP5(v, (u16)i); addr = sqlite3VdbeAddOp1(v, OP_IsNull, 2); VdbeCoverage(v); sqlite3VdbeAddOp4(v, OP_String8, 0, 3, 0, sqlite3MPrintf(db, "*** in database %s ***\n", db->aDb[i].zDbSName), @@ -142905,14 +143062,7 @@ SQLITE_PRIVATE int sqlite3InitOne(sqlite3 *db, int iDb, char **pzErrMsg, u32 mFl #else encoding = SQLITE_UTF8; #endif - if( db->nVdbeActive>0 && encoding!=ENC(db) - && (db->mDbFlags & DBFLAG_Vacuum)==0 - ){ - rc = SQLITE_LOCKED; - goto initone_error_out; - }else{ - sqlite3SetTextEncoding(db, encoding); - } + sqlite3SetTextEncoding(db, encoding); }else{ /* If opening an attached database, the encoding much match ENC(db) */ if( (meta[BTREE_TEXT_ENCODING-1] & 3)!=ENC(db) ){ @@ -148372,6 +148522,7 @@ static int flattenSubquery( /* Transfer the FROM clause terms from the subquery into the ** outer query. */ + iNewParent = pSubSrc->a[0].iCursor; for(i=0; ia[i+iFrom]; assert( pItem->fg.isTabFunc==0 ); @@ -148381,7 +148532,6 @@ static int flattenSubquery( if( pItem->fg.isUsing ) sqlite3IdListDelete(db, pItem->u3.pUsing); *pItem = pSubSrc->a[i]; pItem->fg.jointype |= ltorj; - iNewParent = pSubSrc->a[i].iCursor; memset(&pSubSrc->a[i], 0, sizeof(pSubSrc->a[i])); } pSrc->a[iFrom].fg.jointype &= JT_LTORJ; @@ -148421,6 +148571,7 @@ static int flattenSubquery( pWhere = pSub->pWhere; pSub->pWhere = 0; if( isOuterJoin>0 ){ + assert( pSubSrc->nSrc==1 ); sqlite3SetJoinExpr(pWhere, iNewParent, EP_OuterON); } if( pWhere ){ @@ -150524,7 +150675,7 @@ static void finalizeAggFunctions(Parse *pParse, AggInfo *pAggInfo){ } sqlite3VdbeAddOp3(v, OP_AggStep, 0, regAgg, AggInfoFuncReg(pAggInfo,i)); sqlite3VdbeAppendP4(v, pF->pFunc, P4_FUNCDEF); - sqlite3VdbeChangeP5(v, (u8)nArg); + sqlite3VdbeChangeP5(v, (u16)nArg); sqlite3VdbeAddOp2(v, OP_Next, pF->iOBTab, iTop+1); VdbeCoverage(v); sqlite3VdbeJumpHere(v, iTop); sqlite3ReleaseTempRange(pParse, regAgg, nArg); @@ -150687,7 +150838,7 @@ static void updateAccumulator( } sqlite3VdbeAddOp3(v, OP_AggStep, 0, regAgg, AggInfoFuncReg(pAggInfo,i)); sqlite3VdbeAppendP4(v, pF->pFunc, P4_FUNCDEF); - sqlite3VdbeChangeP5(v, (u8)nArg); + sqlite3VdbeChangeP5(v, (u16)nArg); sqlite3ReleaseTempRange(pParse, regAgg, nArg); } if( addrNext ){ @@ -151520,7 +151671,7 @@ SQLITE_PRIVATE int sqlite3Select( #endif assert( pSubq->pSelect && (pSub->selFlags & SF_PushDown)!=0 ); }else{ - TREETRACE(0x4000,pParse,p,("WHERE-lcause push-down not possible\n")); + TREETRACE(0x4000,pParse,p,("WHERE-clause push-down not possible\n")); } /* Convert unused result columns of the subquery into simple NULL @@ -154081,7 +154232,7 @@ SQLITE_PRIVATE void sqlite3CodeRowTriggerDirect( ** invocation is disallowed if (a) the sub-program is really a trigger, ** not a foreign key action, and (b) the flag to enable recursive triggers ** is clear. */ - sqlite3VdbeChangeP5(v, (u8)bRecursive); + sqlite3VdbeChangeP5(v, (u16)bRecursive); } } @@ -157192,7 +157343,9 @@ SQLITE_API int sqlite3_declare_vtab(sqlite3 *db, const char *zCreateTable){ z = (const unsigned char*)zCreateTable; for(i=0; aKeyword[i]; i++){ int tokenType = 0; - do{ z += sqlite3GetToken(z, &tokenType); }while( tokenType==TK_SPACE ); + do{ + z += sqlite3GetToken(z, &tokenType); + }while( tokenType==TK_SPACE || tokenType==TK_COMMENT ); if( tokenType!=aKeyword[i] ){ sqlite3ErrorWithMsg(db, SQLITE_ERROR, "syntax error"); return SQLITE_ERROR; @@ -157923,8 +158076,10 @@ struct WhereLoop { /**** whereLoopXfer() copies fields above ***********************/ # define WHERE_LOOP_XFER_SZ offsetof(WhereLoop,nLSlot) u16 nLSlot; /* Number of slots allocated for aLTerm[] */ +#ifdef WHERETRACE_ENABLED LogEst rStarDelta; /* Cost delta due to star-schema heuristic. Not - ** initialized unless pWInfo->nOutStarDelta>0 */ + ** initialized unless pWInfo->bStarUsed */ +#endif WhereTerm **aLTerm; /* WhereTerms used */ WhereLoop *pNextLoop; /* Next WhereLoop object in the WhereClause */ WhereTerm *aLTermSpace[3]; /* Initial aLTerm[] space */ @@ -157973,7 +158128,7 @@ struct WherePath { Bitmask revLoop; /* aLoop[]s that should be reversed for ORDER BY */ LogEst nRow; /* Estimated number of rows generated by this path */ LogEst rCost; /* Total cost of this path */ - LogEst rUnsorted; /* Total cost of this path ignoring sorting costs */ + LogEst rUnsort; /* Total cost of this path ignoring sorting costs */ i8 isOrdered; /* No. of ORDER BY terms satisfied. -1 for unknown */ WhereLoop **aLoop; /* Array of WhereLoop objects implementing this path */ }; @@ -158246,9 +158401,13 @@ struct WhereInfo { unsigned bDeferredSeek :1; /* Uses OP_DeferredSeek */ unsigned untestedTerms :1; /* Not all WHERE terms resolved by outer loop */ unsigned bOrderedInnerLoop:1;/* True if only the inner-most loop is ordered */ - unsigned sorted :1; /* True if really sorted (not just grouped) */ - LogEst nOutStarDelta; /* Artifical nOut reduction for star-query */ + unsigned sorted :1; /* True if really sorted (not just grouped) */ + unsigned bStarDone :1; /* True if check for star-query is complete */ + unsigned bStarUsed :1; /* True if star-query heuristic is used */ LogEst nRowOut; /* Estimated number of output rows */ +#ifdef WHERETRACE_ENABLED + LogEst rTotalCost; /* Total cost of the solution */ +#endif int iTop; /* The very beginning of the WHERE loop */ int iEndWhere; /* End of the WHERE clause itself */ WhereLoop *pLoops; /* List of all WhereLoop objects */ @@ -158294,9 +158453,17 @@ SQLITE_PRIVATE int sqlite3WhereExplainBloomFilter( const WhereInfo *pWInfo, /* WHERE clause */ const WhereLevel *pLevel /* Bloom filter on this level */ ); +SQLITE_PRIVATE void sqlite3WhereAddExplainText( + Parse *pParse, /* Parse context */ + int addr, + SrcList *pTabList, /* Table list this loop refers to */ + WhereLevel *pLevel, /* Scan to write OP_Explain opcode for */ + u16 wctrlFlags /* Flags passed to sqlite3WhereBegin() */ +); #else # define sqlite3WhereExplainOneScan(u,v,w,x) 0 # define sqlite3WhereExplainBloomFilter(u,v,w) 0 +# define sqlite3WhereAddExplainText(u,v,w,x,y) #endif /* SQLITE_OMIT_EXPLAIN */ #ifdef SQLITE_ENABLE_STMT_SCANSTATUS SQLITE_PRIVATE void sqlite3WhereAddScanStatus( @@ -158498,38 +158665,38 @@ static void explainIndexRange(StrAccum *pStr, WhereLoop *pLoop){ } /* -** This function is a no-op unless currently processing an EXPLAIN QUERY PLAN -** command, or if stmt_scanstatus_v2() stats are enabled, or if SQLITE_DEBUG -** was defined at compile-time. If it is not a no-op, a single OP_Explain -** opcode is added to the output to describe the table scan strategy in pLevel. -** -** If an OP_Explain opcode is added to the VM, its address is returned. -** Otherwise, if no OP_Explain is coded, zero is returned. +** This function sets the P4 value of an existing OP_Explain opcode to +** text describing the loop in pLevel. If the OP_Explain opcode already has +** a P4 value, it is freed before it is overwritten. */ -SQLITE_PRIVATE int sqlite3WhereExplainOneScan( +SQLITE_PRIVATE void sqlite3WhereAddExplainText( Parse *pParse, /* Parse context */ + int addr, /* Address of OP_Explain opcode */ SrcList *pTabList, /* Table list this loop refers to */ WhereLevel *pLevel, /* Scan to write OP_Explain opcode for */ u16 wctrlFlags /* Flags passed to sqlite3WhereBegin() */ ){ - int ret = 0; #if !defined(SQLITE_DEBUG) if( sqlite3ParseToplevel(pParse)->explain==2 || IS_STMT_SCANSTATUS(pParse->db) ) #endif { + VdbeOp *pOp = sqlite3VdbeGetOp(pParse->pVdbe, addr); + SrcItem *pItem = &pTabList->a[pLevel->iFrom]; - Vdbe *v = pParse->pVdbe; /* VM being constructed */ sqlite3 *db = pParse->db; /* Database handle */ int isSearch; /* True for a SEARCH. False for SCAN. */ WhereLoop *pLoop; /* The controlling WhereLoop object */ u32 flags; /* Flags that describe this loop */ +#if defined(SQLITE_DEBUG) && !defined(SQLITE_OMIT_EXPLAIN) char *zMsg; /* Text to add to EQP output */ +#endif StrAccum str; /* EQP output string */ char zBuf[100]; /* Initial space for EQP output string */ + if( db->mallocFailed ) return; + pLoop = pLevel->pWLoop; flags = pLoop->wsFlags; - if( (flags&WHERE_MULTI_OR) || (wctrlFlags&WHERE_OR_SUBCLAUSE) ) return 0; isSearch = (flags&(WHERE_BTM_LIMIT|WHERE_TOP_LIMIT))!=0 || ((flags&WHERE_VIRTUALTABLE)==0 && (pLoop->u.btree.nEq>0)) @@ -158553,7 +158720,7 @@ SQLITE_PRIVATE int sqlite3WhereExplainOneScan( zFmt = "AUTOMATIC PARTIAL COVERING INDEX"; }else if( flags & WHERE_AUTO_INDEX ){ zFmt = "AUTOMATIC COVERING INDEX"; - }else if( flags & WHERE_IDX_ONLY ){ + }else if( flags & (WHERE_IDX_ONLY|WHERE_EXPRIDX) ){ zFmt = "COVERING INDEX %s"; }else{ zFmt = "INDEX %s"; @@ -158605,11 +158772,50 @@ SQLITE_PRIVATE int sqlite3WhereExplainOneScan( sqlite3_str_append(&str, " (~1 row)", 9); } #endif +#if defined(SQLITE_DEBUG) && !defined(SQLITE_OMIT_EXPLAIN) zMsg = sqlite3StrAccumFinish(&str); sqlite3ExplainBreakpoint("",zMsg); - ret = sqlite3VdbeAddOp4(v, OP_Explain, sqlite3VdbeCurrentAddr(v), - pParse->addrExplain, pLoop->rRun, - zMsg, P4_DYNAMIC); +#endif + + assert( pOp->opcode==OP_Explain ); + assert( pOp->p4type==P4_DYNAMIC || pOp->p4.z==0 ); + sqlite3DbFree(db, pOp->p4.z); + pOp->p4type = P4_DYNAMIC; + pOp->p4.z = sqlite3StrAccumFinish(&str); + } +} + + +/* +** This function is a no-op unless currently processing an EXPLAIN QUERY PLAN +** command, or if stmt_scanstatus_v2() stats are enabled, or if SQLITE_DEBUG +** was defined at compile-time. If it is not a no-op, a single OP_Explain +** opcode is added to the output to describe the table scan strategy in pLevel. +** +** If an OP_Explain opcode is added to the VM, its address is returned. +** Otherwise, if no OP_Explain is coded, zero is returned. +*/ +SQLITE_PRIVATE int sqlite3WhereExplainOneScan( + Parse *pParse, /* Parse context */ + SrcList *pTabList, /* Table list this loop refers to */ + WhereLevel *pLevel, /* Scan to write OP_Explain opcode for */ + u16 wctrlFlags /* Flags passed to sqlite3WhereBegin() */ +){ + int ret = 0; +#if !defined(SQLITE_DEBUG) + if( sqlite3ParseToplevel(pParse)->explain==2 || IS_STMT_SCANSTATUS(pParse->db) ) +#endif + { + if( (pLevel->pWLoop->wsFlags & WHERE_MULTI_OR)==0 + && (wctrlFlags & WHERE_OR_SUBCLAUSE)==0 + ){ + Vdbe *v = pParse->pVdbe; + int addr = sqlite3VdbeCurrentAddr(v); + ret = sqlite3VdbeAddOp3( + v, OP_Explain, addr, pParse->addrExplain, pLevel->pWLoop->rRun + ); + sqlite3WhereAddExplainText(pParse, addr, pTabList, pLevel, wctrlFlags); + } } return ret; } @@ -158708,9 +158914,10 @@ SQLITE_PRIVATE void sqlite3WhereAddScanStatus( } }else{ int addr; + VdbeOp *pOp; assert( pSrclist->a[pLvl->iFrom].fg.isSubquery ); addr = pSrclist->a[pLvl->iFrom].u4.pSubq->addrFillSub; - VdbeOp *pOp = sqlite3VdbeGetOp(v, addr-1); + pOp = sqlite3VdbeGetOp(v, addr-1); assert( sqlite3VdbeDb(v)->mallocFailed || pOp->opcode==OP_InitCoroutine ); assert( sqlite3VdbeDb(v)->mallocFailed || pOp->p2>addr ); sqlite3VdbeScanStatusRange(v, addrExplain, addr, pOp->p2-1); @@ -161511,12 +161718,12 @@ static int isLikeOrGlob( z = (u8*)pRight->u.zToken; } if( z ){ - /* Count the number of prefix bytes prior to the first wildcard. - ** or U+fffd character. If the underlying database has a UTF16LE - ** encoding, then only consider ASCII characters. Note that the - ** encoding of z[] is UTF8 - we are dealing with only UTF8 here in - ** this code, but the database engine itself might be processing - ** content using a different encoding. */ + /* Count the number of prefix bytes prior to the first wildcard, + ** U+fffd character, or malformed utf-8. If the underlying database + ** has a UTF16LE encoding, then only consider ASCII characters. Note that + ** the encoding of z[] is UTF8 - we are dealing with only UTF8 here in this + ** code, but the database engine itself might be processing content using a + ** different encoding. */ cnt = 0; while( (c=z[cnt])!=0 && c!=wc[0] && c!=wc[1] && c!=wc[2] ){ cnt++; @@ -161524,7 +161731,9 @@ static int isLikeOrGlob( cnt++; }else if( c>=0x80 ){ const u8 *z2 = z+cnt-1; - if( sqlite3Utf8Read(&z2)==0xfffd || ENC(db)==SQLITE_UTF16LE ){ + if( c==0xff || sqlite3Utf8Read(&z2)==0xfffd /* bad utf-8 */ + || ENC(db)==SQLITE_UTF16LE + ){ cnt--; break; }else{ @@ -162676,9 +162885,8 @@ static void exprAnalyze( } if( !db->mallocFailed ){ - u8 c, *pC; /* Last character before the first wildcard */ + u8 *pC; /* Last character before the first wildcard */ pC = (u8*)&pStr2->u.zToken[sqlite3Strlen30(pStr2->u.zToken)-1]; - c = *pC; if( noCase ){ /* The point is to increment the last character before the first ** wildcard. But if we increment '@', that will push it into the @@ -162686,10 +162894,17 @@ static void exprAnalyze( ** inequality. To avoid this, make sure to also run the full ** LIKE on all candidate expressions by clearing the isComplete flag */ - if( c=='A'-1 ) isComplete = 0; - c = sqlite3UpperToLower[c]; + if( *pC=='A'-1 ) isComplete = 0; + *pC = sqlite3UpperToLower[*pC]; } - *pC = c + 1; + + /* Increment the value of the last utf8 character in the prefix. */ + while( *pC==0xBF && pC>(u8*)pStr2->u.zToken ){ + *pC = 0x80; + pC--; + } + assert( *pC!=0xFF ); /* isLikeOrGlob() guarantees this */ + (*pC)++; } zCollSeqName = noCase ? "NOCASE" : sqlite3StrBINARY; pNewExpr1 = sqlite3ExprDup(db, pLeft, 0); @@ -164036,7 +164251,7 @@ static int constraintCompatibleWithOuterJoin( return 0; } if( (pSrc->fg.jointype & (JT_LEFT|JT_RIGHT))!=0 - && ExprHasProperty(pTerm->pExpr, EP_InnerON) + && NEVER(ExprHasProperty(pTerm->pExpr, EP_InnerON)) ){ return 0; } @@ -164057,6 +164272,11 @@ static int constraintCompatibleWithOuterJoin( ** more than 20, then return false. ** ** 3. If no disqualifying conditions above are found, return true. +** +** 2025-01-03: I experimented with a new rule that returns false if the +** the datatype of the column is "BOOLEAN". This did not improve +** performance on any queries at hand, but it did burn CPU cycles, so the +** idea was not committed. */ static SQLITE_NOINLINE int columnIsGoodIndexCandidate( const Table *pTab, @@ -164141,7 +164361,7 @@ static void explainAutomaticIndex( sqlite3_str *pStr = sqlite3_str_new(pParse->db); sqlite3_str_appendf(pStr,"CREATE AUTOMATIC INDEX ON %s(", pTab->zName); assert( pIdx->nColumn>1 ); - assert( pIdx->aiColumn[pIdx->nColumn-1]==XN_ROWID ); + assert( pIdx->aiColumn[pIdx->nColumn-1]==XN_ROWID || !HasRowid(pTab) ); for(ii=0; ii<(pIdx->nColumn-1); ii++){ const char *zName = 0; int iCol = pIdx->aiColumn[ii]; @@ -164272,6 +164492,19 @@ static SQLITE_NOINLINE void constructAutomaticIndex( }else{ extraCols = pSrc->colUsed & (~idxCols | MASKBIT(BMS-1)); } + if( !HasRowid(pTable) ){ + /* For WITHOUT ROWID tables, ensure that all PRIMARY KEY columns are + ** either in the idxCols mask or in the extraCols mask */ + for(i=0; inCol; i++){ + if( (pTable->aCol[i].colFlags & COLFLAG_PRIMKEY)==0 ) continue; + if( i>=BMS-1 ){ + extraCols |= MASKBIT(BMS-1); + break; + } + if( idxCols & MASKBIT(i) ) continue; + extraCols |= MASKBIT(i); + } + } mxBitCol = MIN(BMS-1,pTable->nCol); testcase( pTable->nCol==BMS-1 ); testcase( pTable->nCol==BMS-2 ); @@ -164283,7 +164516,8 @@ static SQLITE_NOINLINE void constructAutomaticIndex( } /* Construct the Index object to describe this index */ - pIdx = sqlite3AllocateIndexObject(pParse->db, nKeyCol+1, 0, &zNotUsed); + pIdx = sqlite3AllocateIndexObject(pParse->db, nKeyCol+HasRowid(pTable), + 0, &zNotUsed); if( pIdx==0 ) goto end_auto_index_create; pLoop->u.btree.pIndex = pIdx; pIdx->zName = "auto-index"; @@ -164339,8 +164573,10 @@ static SQLITE_NOINLINE void constructAutomaticIndex( } } assert( n==nKeyCol ); - pIdx->aiColumn[n] = XN_ROWID; - pIdx->azColl[n] = sqlite3StrBINARY; + if( HasRowid(pTable) ){ + pIdx->aiColumn[n] = XN_ROWID; + pIdx->azColl[n] = sqlite3StrBINARY; + } /* Create the automatic index */ explainAutomaticIndex(pParse, pIdx, pPartial!=0, &addrExp); @@ -165529,7 +165765,7 @@ static int whereInScanEst( #endif /* SQLITE_ENABLE_STAT4 */ -#ifdef WHERETRACE_ENABLED +#if defined(WHERETRACE_ENABLED) || defined(SQLITE_DEBUG) /* ** Print the content of a WhereTerm object */ @@ -165573,6 +165809,9 @@ SQLITE_PRIVATE void sqlite3WhereTermPrint(WhereTerm *pTerm, int iTerm){ sqlite3TreeViewExpr(0, pTerm->pExpr, 0); } } +SQLITE_PRIVATE void sqlite3ShowWhereTerm(WhereTerm *pTerm){ + sqlite3WhereTermPrint(pTerm, 0); +} #endif #ifdef WHERETRACE_ENABLED @@ -165604,8 +165843,9 @@ SQLITE_PRIVATE void sqlite3WhereClausePrint(WhereClause *pWC){ ** 1.002.001 t2.t2xy 2 f 010241 N 2 cost 0,56,31 */ SQLITE_PRIVATE void sqlite3WhereLoopPrint(const WhereLoop *p, const WhereClause *pWC){ + WhereInfo *pWInfo; if( pWC ){ - WhereInfo *pWInfo = pWC->pWInfo; + pWInfo = pWC->pWInfo; int nb = 1+(pWInfo->pTabList->nSrc+3)/4; SrcItem *pItem = pWInfo->pTabList->a + p->iTab; Table *pTab = pItem->pSTab; @@ -165615,6 +165855,7 @@ SQLITE_PRIVATE void sqlite3WhereLoopPrint(const WhereLoop *p, const WhereClause sqlite3DebugPrintf(" %12s", pItem->zAlias ? pItem->zAlias : pTab->zName); }else{ + pWInfo = 0; sqlite3DebugPrintf("%c%2d.%03llx.%03llx %c%d", p->cId, p->iTab, p->maskSelf, p->prereq & 0xfff, p->cId, p->iTab); } @@ -165646,7 +165887,12 @@ SQLITE_PRIVATE void sqlite3WhereLoopPrint(const WhereLoop *p, const WhereClause }else{ sqlite3DebugPrintf(" f %06x N %d", p->wsFlags, p->nLTerm); } - sqlite3DebugPrintf(" cost %d,%d,%d\n", p->rSetup, p->rRun, p->nOut); + if( pWInfo && pWInfo->bStarUsed && p->rStarDelta!=0 ){ + sqlite3DebugPrintf(" cost %d,%d,%d delta=%d\n", + p->rSetup, p->rRun, p->nOut, p->rStarDelta); + }else{ + sqlite3DebugPrintf(" cost %d,%d,%d\n", p->rSetup, p->rRun, p->nOut); + } if( p->nLTerm && (sqlite3WhereTrace & 0x4000)!=0 ){ int i; for(i=0; inLTerm; i++){ @@ -166758,7 +167004,6 @@ static int whereUsablePartialIndex( if( !whereUsablePartialIndex(iTab,jointype,pWC,pWhere->pLeft) ) return 0; pWhere = pWhere->pRight; } - if( pParse->db->flags & SQLITE_EnableQPSG ) pParse = 0; for(i=0, pTerm=pWC->a; inTerm; i++, pTerm++){ Expr *pExpr; pExpr = pTerm->pExpr; @@ -167113,7 +167358,6 @@ static int whereLoopAddBtree( && (pWInfo->pParse->db->flags & SQLITE_AutoIndex)!=0 && !pSrc->fg.isIndexedBy /* Has no INDEXED BY clause */ && !pSrc->fg.notIndexed /* Has no NOT INDEXED clause */ - && HasRowid(pTab) /* Not WITHOUT ROWID table. (FIXME: Why not?) */ && !pSrc->fg.isCorrelated /* Not a correlated subquery */ && !pSrc->fg.isRecursive /* Not a recursive common table expression. */ && (pSrc->fg.jointype & JT_RIGHT)==0 /* Not the right tab of a RIGHT JOIN */ @@ -168616,68 +168860,201 @@ static LogEst whereSortingCost( ** 18 for star queries ** 12 otherwise ** -** For the purposes of SQLite, a star-query is defined as a query -** with a large central table that is joined against four or more -** smaller tables. The central table is called the "fact" table. -** The smaller tables that get joined are "dimension tables". +** For the purposes of this heuristic, a star-query is defined as a query +** with a large central table that is joined using an INNER JOIN, +** not CROSS or OUTER JOINs, against four or more smaller tables. +** The central table is called the "fact" table. The smaller tables +** that get joined are "dimension tables". Also, any table that is +** self-joined cannot be a dimension table; we assume that dimension +** tables may only be joined against fact tables. ** ** SIDE EFFECT: (and really the whole point of this subroutine) ** -** If pWInfo describes a star-query, then the cost on WhereLoops for the -** fact table is reduced. This heuristic helps keep fact tables in -** outer loops. Without this heuristic, paths with fact tables in outer -** loops tend to get pruned by the mxChoice limit on the number of paths, -** resulting in poor query plans. The total amount of heuristic cost -** adjustment is stored in pWInfo->nOutStarDelta and the cost adjustment -** for each WhereLoop is stored in its rStarDelta field. +** If pWInfo describes a star-query, then the cost for SCANs of dimension +** WhereLoops is increased to be slightly larger than the cost of a SCAN +** in the fact table. Only SCAN costs are increased. SEARCH costs are +** unchanged. This heuristic helps keep fact tables in outer loops. Without +** this heuristic, paths with fact tables in outer loops tend to get pruned +** by the mxChoice limit on the number of paths, resulting in poor query +** plans. See the starschema1.test test module for examples of queries +** that need this heuristic to find good query plans. +** +** This heuristic can be completely disabled, so that no query is +** considered a star-query, using SQLITE_TESTCTRL_OPTIMIZATION to +** disable the SQLITE_StarQuery optimization. In the CLI, the command +** to do that is: ".testctrl opt -starquery". +** +** HISTORICAL NOTES: +** +** This optimization was first added on 2024-05-09 by check-in 38db9b5c83d. +** The original optimization reduced the cost and output size estimate for +** fact tables to help them move to outer loops. But months later (as people +** started upgrading) performance regression reports started caming in, +** including: +** +** forum post b18ef983e68d06d1 (2024-12-21) +** forum post 0025389d0860af82 (2025-01-14) +** forum post d87570a145599033 (2025-01-17) +** +** To address these, the criteria for a star-query was tightened to exclude +** cases where the fact and dimensions are separated by an outer join, and +** the affect of star-schema detection was changed to increase the rRun cost +** on just full table scans of dimension tables, rather than reducing costs +** in the all access methods of the fact table. */ -static int computeMxChoice(WhereInfo *pWInfo, LogEst nRowEst){ +static int computeMxChoice(WhereInfo *pWInfo){ int nLoop = pWInfo->nLevel; /* Number of terms in the join */ - if( nRowEst==0 && nLoop>=5 ){ - /* Check to see if we are dealing with a star schema and if so, reduce - ** the cost of fact tables relative to dimension tables, as a heuristic - ** to help keep the fact tables in outer loops. + WhereLoop *pWLoop; /* For looping over WhereLoops */ + +#ifdef SQLITE_DEBUG + /* The star-query detection code below makes use of the following + ** properties of the WhereLoop list, so verify them before + ** continuing: + ** (1) .maskSelf is the bitmask corresponding to .iTab + ** (2) The WhereLoop list is in ascending .iTab order + */ + for(pWLoop=pWInfo->pLoops; pWLoop; pWLoop=pWLoop->pNextLoop){ + assert( pWLoop->maskSelf==MASKBIT(pWLoop->iTab) ); + assert( pWLoop->pNextLoop==0 || pWLoop->iTab<=pWLoop->pNextLoop->iTab ); + } +#endif /* SQLITE_DEBUG */ + + if( nLoop>=5 + && !pWInfo->bStarDone + && OptimizationEnabled(pWInfo->pParse->db, SQLITE_StarQuery) + ){ + SrcItem *aFromTabs; /* All terms of the FROM clause */ + int iFromIdx; /* Term of FROM clause is the candidate fact-table */ + Bitmask m; /* Bitmask for candidate fact-table */ + Bitmask mSelfJoin = 0; /* Tables that cannot be dimension tables */ + WhereLoop *pStart; /* Where to start searching for dimension-tables */ + + pWInfo->bStarDone = 1; /* Only do this computation once */ + + /* Look for fact tables with four or more dimensions where the + ** dimension tables are not separately from the fact tables by an outer + ** or cross join. Adjust cost weights if found. */ - int iLoop; /* Counter over join terms */ - Bitmask m; /* Bitmask for current loop */ - assert( pWInfo->nOutStarDelta==0 ); - for(iLoop=0, m=1; iLoopbStarUsed ); + aFromTabs = pWInfo->pTabList->a; + pStart = pWInfo->pLoops; + for(iFromIdx=0, m=1; iFromIdxpLoops; pWLoop; pWLoop=pWLoop->pNextLoop){ - if( (pWLoop->prereq & m)!=0 && (pWLoop->maskSelf & mSeen)==0 ){ - nDep++; - mSeen |= pWLoop->maskSelf; + SrcItem *pFactTab; /* The candidate fact table */ + + pFactTab = aFromTabs + iFromIdx; + if( (pFactTab->fg.jointype & (JT_OUTER|JT_CROSS))!=0 ){ + /* If the candidate fact-table is the right table of an outer join + ** restrict the search for dimension-tables to be tables to the right + ** of the fact-table. */ + if( iFromIdx+4 > nLoop ) break; /* Impossible to reach nDep>=4 */ + while( pStart && pStart->iTab<=iFromIdx ){ + pStart = pStart->pNextLoop; + } + } + for(pWLoop=pStart; pWLoop; pWLoop=pWLoop->pNextLoop){ + if( (aFromTabs[pWLoop->iTab].fg.jointype & (JT_OUTER|JT_CROSS))!=0 ){ + /* Fact-tables and dimension-tables cannot be separated by an + ** outer join (at least for the definition of fact- and dimension- + ** used by this heuristic). */ + break; + } + if( (pWLoop->prereq & m)!=0 /* pWInfo depends on iFromIdx */ + && (pWLoop->maskSelf & mSeen)==0 /* pWInfo not already a dependency */ + && (pWLoop->maskSelf & mSelfJoin)==0 /* Not a self-join */ + ){ + if( aFromTabs[pWLoop->iTab].pSTab==pFactTab->pSTab ){ + mSelfJoin |= m; + }else{ + nDep++; + mSeen |= pWLoop->maskSelf; + } } } if( nDep<=3 ) continue; - rDelta = 15*(nDep-3); -#ifdef WHERETRACE_ENABLED /* 0x4 */ - if( sqlite3WhereTrace&0x4 ){ - SrcItem *pItem = pWInfo->pTabList->a + iLoop; - sqlite3DebugPrintf("Fact-table %s: %d dimensions, cost reduced %d\n", - pItem->zAlias ? pItem->zAlias : pItem->pSTab->zName, - nDep, rDelta); - } -#endif - if( pWInfo->nOutStarDelta==0 ){ + + /* If we reach this point, it means that pFactTab is a fact table + ** with four or more dimensions connected by inner joins. Proceed + ** to make cost adjustments. */ + +#ifdef WHERETRACE_ENABLED + /* Make sure rStarDelta values are initialized */ + if( !pWInfo->bStarUsed ){ for(pWLoop=pWInfo->pLoops; pWLoop; pWLoop=pWLoop->pNextLoop){ pWLoop->rStarDelta = 0; } } - pWInfo->nOutStarDelta += rDelta; +#endif + pWInfo->bStarUsed = 1; + + /* Compute the maximum cost of any WhereLoop for the + ** fact table plus one epsilon */ + mxRun = LOGEST_MIN; + for(pWLoop=pStart; pWLoop; pWLoop=pWLoop->pNextLoop){ + if( pWLoop->iTabiTab>iFromIdx ) break; + if( pWLoop->rRun>mxRun ) mxRun = pWLoop->rRun; + } + if( ALWAYS(mxRunpNextLoop){ + if( (pWLoop->maskSelf & mSeen)==0 ) continue; + if( pWLoop->nLTerm ) continue; + if( pWLoop->rRuniTab; + sqlite3DebugPrintf( + "Increase SCAN cost of dimension %s(%d) of fact %s(%d) to %d\n", + pDim->zAlias ? pDim->zAlias: pDim->pSTab->zName, pWLoop->iTab, + pFactTab->zAlias ? pFactTab->zAlias : pFactTab->pSTab->zName, + iFromIdx, mxRun + ); + } + pWLoop->rStarDelta = mxRun - pWLoop->rRun; +#endif /* WHERETRACE_ENABLED */ + pWLoop->rRun = mxRun; + } + } + } +#ifdef WHERETRACE_ENABLED /* 0x80000 */ + if( (sqlite3WhereTrace & 0x80000)!=0 && pWInfo->bStarUsed ){ + sqlite3DebugPrintf("WhereLoops changed by star-query heuristic:\n"); for(pWLoop=pWInfo->pLoops; pWLoop; pWLoop=pWLoop->pNextLoop){ - if( pWLoop->maskSelf==m ){ - pWLoop->rRun -= rDelta; - pWLoop->nOut -= rDelta; - pWLoop->rStarDelta = rDelta; + if( pWLoop->rStarDelta ){ + sqlite3WhereLoopPrint(pWLoop, &pWInfo->sWC); } } } +#endif } - return pWInfo->nOutStarDelta>0 ? 18 : 12; + return pWInfo->bStarUsed ? 18 : 12; +} + +/* +** Two WhereLoop objects, pCandidate and pBaseline, are known to have the +** same cost. Look deep into each to see if pCandidate is even slightly +** better than pBaseline. Return false if it is, if pCandidate is is preferred. +** Return true if pBaseline is preferred or if we cannot tell the difference. +** +** Result Meaning +** -------- ---------------------------------------------------------- +** true We cannot tell the difference in pCandidate and pBaseline +** false pCandidate seems like a better choice than pBaseline +*/ +static SQLITE_NOINLINE int whereLoopIsNoBetter( + const WhereLoop *pCandidate, + const WhereLoop *pBaseline +){ + if( (pCandidate->wsFlags & WHERE_INDEXED)==0 ) return 1; + if( (pBaseline->wsFlags & WHERE_INDEXED)==0 ) return 1; + if( pCandidate->u.btree.pIndex->szIdxRow < + pBaseline->u.btree.pIndex->szIdxRow ) return 0; + return 1; } /* @@ -168701,7 +169078,7 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ int mxI = 0; /* Index of next entry to replace */ int nOrderBy; /* Number of ORDER BY clause terms */ LogEst mxCost = 0; /* Maximum cost of a set of paths */ - LogEst mxUnsorted = 0; /* Maximum unsorted cost of a set of path */ + LogEst mxUnsort = 0; /* Maximum unsorted cost of a set of path */ int nTo, nFrom; /* Number of valid entries in aTo[] and aFrom[] */ WherePath *aFrom; /* All nFrom paths at the previous level */ WherePath *aTo; /* The nTo best paths at the current level */ @@ -168730,8 +169107,10 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ mxChoice = 1; }else if( nLoop==2 ){ mxChoice = 5; + }else if( pParse->nErr ){ + mxChoice = 1; }else{ - mxChoice = computeMxChoice(pWInfo, nRowEst); + mxChoice = computeMxChoice(pWInfo); } assert( nLoop<=pWInfo->pTabList->nSrc ); @@ -168798,7 +169177,7 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ for(pWLoop=pWInfo->pLoops; pWLoop; pWLoop=pWLoop->pNextLoop){ LogEst nOut; /* Rows visited by (pFrom+pWLoop) */ LogEst rCost; /* Cost of path (pFrom+pWLoop) */ - LogEst rUnsorted; /* Unsorted cost of (pFrom+pWLoop) */ + LogEst rUnsort; /* Unsorted cost of (pFrom+pWLoop) */ i8 isOrdered; /* isOrdered for (pFrom+pWLoop) */ Bitmask maskNew; /* Mask of src visited by (..) */ Bitmask revMask; /* Mask of rev-order loops for (..) */ @@ -168816,11 +169195,11 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ /* At this point, pWLoop is a candidate to be the next loop. ** Compute its cost */ - rUnsorted = pWLoop->rRun + pFrom->nRow; + rUnsort = pWLoop->rRun + pFrom->nRow; if( pWLoop->rSetup ){ - rUnsorted = sqlite3LogEstAdd(pWLoop->rSetup, rUnsorted); + rUnsort = sqlite3LogEstAdd(pWLoop->rSetup, rUnsort); } - rUnsorted = sqlite3LogEstAdd(rUnsorted, pFrom->rUnsorted); + rUnsort = sqlite3LogEstAdd(rUnsort, pFrom->rUnsort); nOut = pFrom->nRow + pWLoop->nOut; maskNew = pFrom->maskLoop | pWLoop->maskSelf; isOrdered = pFrom->isOrdered; @@ -168842,15 +169221,15 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ ** extra encouragement to the query planner to select a plan ** where the rows emerge in the correct order without any sorting ** required. */ - rCost = sqlite3LogEstAdd(rUnsorted, aSortCost[isOrdered]) + 3; + rCost = sqlite3LogEstAdd(rUnsort, aSortCost[isOrdered]) + 3; WHERETRACE(0x002, ("---- sort cost=%-3d (%d/%d) increases cost %3d to %-3d\n", aSortCost[isOrdered], (nOrderBy-isOrdered), nOrderBy, - rUnsorted, rCost)); + rUnsort, rCost)); }else{ - rCost = rUnsorted; - rUnsorted -= 2; /* TUNING: Slight bias in favor of no-sort plans */ + rCost = rUnsort; + rUnsort -= 2; /* TUNING: Slight bias in favor of no-sort plans */ } /* Check to see if pWLoop should be added to the set of @@ -168876,7 +169255,7 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ if( jj>=nTo ){ /* None of the existing best-so-far paths match the candidate. */ if( nTo>=mxChoice - && (rCost>mxCost || (rCost==mxCost && rUnsorted>=mxUnsorted)) + && (rCost>mxCost || (rCost==mxCost && rUnsort>=mxUnsort)) ){ /* The current candidate is no better than any of the mxChoice ** paths currently in the best-so-far buffer. So discard @@ -168884,7 +169263,7 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ #ifdef WHERETRACE_ENABLED /* 0x4 */ if( sqlite3WhereTrace&0x4 ){ sqlite3DebugPrintf("Skip %s cost=%-3d,%3d,%3d order=%c\n", - wherePathName(pFrom, iLoop, pWLoop), rCost, nOut, rUnsorted, + wherePathName(pFrom, iLoop, pWLoop), rCost, nOut, rUnsort, isOrdered>=0 ? isOrdered+'0' : '?'); } #endif @@ -168903,7 +169282,7 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ #ifdef WHERETRACE_ENABLED /* 0x4 */ if( sqlite3WhereTrace&0x4 ){ sqlite3DebugPrintf("New %s cost=%-3d,%3d,%3d order=%c\n", - wherePathName(pFrom, iLoop, pWLoop), rCost, nOut, rUnsorted, + wherePathName(pFrom, iLoop, pWLoop), rCost, nOut, rUnsort, isOrdered>=0 ? isOrdered+'0' : '?'); } #endif @@ -168914,24 +169293,23 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ ** pTo or if the candidate should be skipped. ** ** The conditional is an expanded vector comparison equivalent to: - ** (pTo->rCost,pTo->nRow,pTo->rUnsorted) <= (rCost,nOut,rUnsorted) + ** (pTo->rCost,pTo->nRow,pTo->rUnsort) <= (rCost,nOut,rUnsort) */ - if( pTo->rCostrCost==rCost - && (pTo->nRownRow==nOut && pTo->rUnsorted<=rUnsorted) - ) - ) + if( (pTo->rCostrCost==rCost && pTo->nRowrCost==rCost && pTo->nRow==nOut && pTo->rUnsortrCost==rCost && pTo->nRow==nOut && pTo->rUnsort==rUnsort + && whereLoopIsNoBetter(pWLoop, pTo->aLoop[iLoop]) ) ){ #ifdef WHERETRACE_ENABLED /* 0x4 */ if( sqlite3WhereTrace&0x4 ){ sqlite3DebugPrintf( "Skip %s cost=%-3d,%3d,%3d order=%c", - wherePathName(pFrom, iLoop, pWLoop), rCost, nOut, rUnsorted, + wherePathName(pFrom, iLoop, pWLoop), rCost, nOut, rUnsort, isOrdered>=0 ? isOrdered+'0' : '?'); sqlite3DebugPrintf(" vs %s cost=%-3d,%3d,%3d order=%c\n", wherePathName(pTo, iLoop+1, 0), pTo->rCost, pTo->nRow, - pTo->rUnsorted, pTo->isOrdered>=0 ? pTo->isOrdered+'0' : '?'); + pTo->rUnsort, pTo->isOrdered>=0 ? pTo->isOrdered+'0' : '?'); } #endif /* Discard the candidate path from further consideration */ @@ -168945,11 +169323,11 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ if( sqlite3WhereTrace&0x4 ){ sqlite3DebugPrintf( "Update %s cost=%-3d,%3d,%3d order=%c", - wherePathName(pFrom, iLoop, pWLoop), rCost, nOut, rUnsorted, + wherePathName(pFrom, iLoop, pWLoop), rCost, nOut, rUnsort, isOrdered>=0 ? isOrdered+'0' : '?'); sqlite3DebugPrintf(" was %s cost=%-3d,%3d,%3d order=%c\n", wherePathName(pTo, iLoop+1, 0), pTo->rCost, pTo->nRow, - pTo->rUnsorted, pTo->isOrdered>=0 ? pTo->isOrdered+'0' : '?'); + pTo->rUnsort, pTo->isOrdered>=0 ? pTo->isOrdered+'0' : '?'); } #endif } @@ -168958,20 +169336,20 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ pTo->revLoop = revMask; pTo->nRow = nOut; pTo->rCost = rCost; - pTo->rUnsorted = rUnsorted; + pTo->rUnsort = rUnsort; pTo->isOrdered = isOrdered; memcpy(pTo->aLoop, pFrom->aLoop, sizeof(WhereLoop*)*iLoop); pTo->aLoop[iLoop] = pWLoop; if( nTo>=mxChoice ){ mxI = 0; mxCost = aTo[0].rCost; - mxUnsorted = aTo[0].nRow; + mxUnsort = aTo[0].nRow; for(jj=1, pTo=&aTo[1]; jjrCost>mxCost - || (pTo->rCost==mxCost && pTo->rUnsorted>mxUnsorted) + || (pTo->rCost==mxCost && pTo->rUnsort>mxUnsort) ){ mxCost = pTo->rCost; - mxUnsorted = pTo->rUnsorted; + mxUnsort = pTo->rUnsort; mxI = jj; } } @@ -168983,8 +169361,10 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ if( sqlite3WhereTrace & 0x02 ){ LogEst rMin, rFloor = 0; int nDone = 0; + int nProgress; sqlite3DebugPrintf("---- after round %d ----\n", iLoop); - while( nDonerCost>rFloor && pTo->rCostrCost; @@ -169000,10 +169380,11 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ sqlite3DebugPrintf("\n"); } nDone++; + nProgress++; } } rFloor = rMin; - } + }while( nDone0 ); } #endif @@ -169097,7 +169478,10 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ } } - pWInfo->nRowOut = pFrom->nRow + pWInfo->nOutStarDelta; + pWInfo->nRowOut = pFrom->nRow; +#ifdef WHERETRACE_ENABLED + pWInfo->rTotalCost = pFrom->rCost; +#endif /* Free temporary memory and return success */ sqlite3StackFreeNN(pParse->db, pSpace); @@ -169419,7 +169803,7 @@ static SQLITE_NOINLINE Bitmask whereOmitNoopJoin( } if( hasRightJoin && ExprHasProperty(pTerm->pExpr, EP_InnerON) - && pTerm->pExpr->w.iJoin==pItem->iCursor + && NEVER(pTerm->pExpr->w.iJoin==pItem->iCursor) ){ break; /* restriction (5) */ } @@ -169495,7 +169879,6 @@ static SQLITE_NOINLINE void whereCheckIfBloomFilterIsUseful( } } nSearch += pLoop->nOut; - if( pWInfo->nOutStarDelta ) nSearch += pLoop->rStarDelta; } } @@ -169978,7 +170361,8 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( assert( db->mallocFailed==0 ); #ifdef WHERETRACE_ENABLED if( sqlite3WhereTrace ){ - sqlite3DebugPrintf("---- Solution nRow=%d", pWInfo->nRowOut); + sqlite3DebugPrintf("---- Solution cost=%d, nRow=%d", + pWInfo->rTotalCost, pWInfo->nRowOut); if( pWInfo->nOBSat>0 ){ sqlite3DebugPrintf(" ORDERBY=%d,0x%llx", pWInfo->nOBSat, pWInfo->revMask); } @@ -170339,6 +170723,7 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( ){ if( (db->flags & SQLITE_VdbeAddopTrace)==0 ) return; sqlite3VdbePrintOp(0, pc, pOp); + sqlite3ShowWhereTerm(0); /* So compiler won't complain about unused func */ } #endif @@ -170638,14 +171023,28 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){ pOp->p2 = x; pOp->p1 = pLevel->iIdxCur; OpcodeRewriteTrace(db, k, pOp); - }else{ - /* Unable to translate the table reference into an index - ** reference. Verify that this is harmless - that the - ** table being referenced really is open. - */ + }else if( pLoop->wsFlags & (WHERE_IDX_ONLY|WHERE_EXPRIDX) ){ if( pLoop->wsFlags & WHERE_IDX_ONLY ){ + /* An error. pLoop is supposed to be a covering index loop, + ** and yet the VM code refers to a column of the table that + ** is not part of the index. */ sqlite3ErrorMsg(pParse, "internal query planner error"); pParse->rc = SQLITE_INTERNAL; + }else{ + /* The WHERE_EXPRIDX flag is set by the planner when it is likely + ** that pLoop is a covering index loop, but it is not possible + ** to be 100% sure. In this case, any OP_Explain opcode + ** corresponding to this loop describes the index as a "COVERING + ** INDEX". But, pOp proves that pLoop is not actually a covering + ** index loop. So clear the WHERE_EXPRIDX flag and rewrite the + ** text that accompanies the OP_Explain opcode, if any. */ + pLoop->wsFlags &= ~WHERE_EXPRIDX; + sqlite3WhereAddExplainText(pParse, + pLevel->addrBody-1, + pTabList, + pLevel, + pWInfo->wctrlFlags + ); } } }else if( pOp->opcode==OP_Rowid ){ @@ -172353,6 +172752,7 @@ static void windowAggStep( int regArg; int nArg = pWin->bExprArgs ? 0 : windowArgCount(pWin); int i; + int addrIf = 0; assert( bInverse==0 || pWin->eStart!=TK_UNBOUNDED ); @@ -172369,6 +172769,18 @@ static void windowAggStep( } regArg = reg; + if( pWin->pFilter ){ + int regTmp; + assert( ExprUseXList(pWin->pOwner) ); + assert( pWin->bExprArgs || !nArg ||nArg==pWin->pOwner->x.pList->nExpr ); + assert( pWin->bExprArgs || nArg ||pWin->pOwner->x.pList==0 ); + regTmp = sqlite3GetTempReg(pParse); + sqlite3VdbeAddOp3(v, OP_Column, csr, pWin->iArgCol+nArg,regTmp); + addrIf = sqlite3VdbeAddOp3(v, OP_IfNot, regTmp, 0, 1); + VdbeCoverage(v); + sqlite3ReleaseTempReg(pParse, regTmp); + } + if( pMWin->regStartRowid==0 && (pFunc->funcFlags & SQLITE_FUNC_MINMAX) && (pWin->eStart!=TK_UNBOUNDED) @@ -172388,25 +172800,13 @@ static void windowAggStep( } sqlite3VdbeJumpHere(v, addrIsNull); }else if( pWin->regApp ){ + assert( pWin->pFilter==0 ); assert( pFunc->zName==nth_valueName || pFunc->zName==first_valueName ); assert( bInverse==0 || bInverse==1 ); sqlite3VdbeAddOp2(v, OP_AddImm, pWin->regApp+1-bInverse, 1); }else if( pFunc->xSFunc!=noopStepFunc ){ - int addrIf = 0; - if( pWin->pFilter ){ - int regTmp; - assert( ExprUseXList(pWin->pOwner) ); - assert( pWin->bExprArgs || !nArg ||nArg==pWin->pOwner->x.pList->nExpr ); - assert( pWin->bExprArgs || nArg ||pWin->pOwner->x.pList==0 ); - regTmp = sqlite3GetTempReg(pParse); - sqlite3VdbeAddOp3(v, OP_Column, csr, pWin->iArgCol+nArg,regTmp); - addrIf = sqlite3VdbeAddOp3(v, OP_IfNot, regTmp, 0, 1); - VdbeCoverage(v); - sqlite3ReleaseTempReg(pParse, regTmp); - } - if( pWin->bExprArgs ){ int iOp = sqlite3VdbeCurrentAddr(v); int iEnd; @@ -172433,12 +172833,13 @@ static void windowAggStep( sqlite3VdbeAddOp3(v, bInverse? OP_AggInverse : OP_AggStep, bInverse, regArg, pWin->regAccum); sqlite3VdbeAppendP4(v, pFunc, P4_FUNCDEF); - sqlite3VdbeChangeP5(v, (u8)nArg); + sqlite3VdbeChangeP5(v, (u16)nArg); if( pWin->bExprArgs ){ sqlite3ReleaseTempRange(pParse, regArg, nArg); } - if( addrIf ) sqlite3VdbeJumpHere(v, addrIf); } + + if( addrIf ) sqlite3VdbeJumpHere(v, addrIf); } } @@ -173865,6 +174266,13 @@ struct TrigEvent { int a; IdList * b; }; struct FrameBound { int eType; Expr *pExpr; }; +/* +** Generate a syntax error +*/ +static void parserSyntaxError(Parse *pParse, Token *p){ + sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", p); +} + /* ** Disable lookaside memory allocation for objects that might be ** shared across database connections. @@ -174212,7 +174620,8 @@ static void updateDeleteLimitError( #define TK_ERROR 182 #define TK_QNUMBER 183 #define TK_SPACE 184 -#define TK_ILLEGAL 185 +#define TK_COMMENT 185 +#define TK_ILLEGAL 186 #endif /**************** End token definitions ***************************************/ @@ -174277,31 +174686,31 @@ static void updateDeleteLimitError( #endif /************* Begin control #defines *****************************************/ #define YYCODETYPE unsigned short int -#define YYNOCODE 322 +#define YYNOCODE 323 #define YYACTIONTYPE unsigned short int #define YYWILDCARD 102 #define sqlite3ParserTOKENTYPE Token typedef union { int yyinit; sqlite3ParserTOKENTYPE yy0; - ExprList* yy14; - With* yy59; - Cte* yy67; - Upsert* yy122; - IdList* yy132; - int yy144; - const char* yy168; - SrcList* yy203; - Window* yy211; - OnOrUsing yy269; - struct TrigEvent yy286; - struct {int value; int mask;} yy383; - u32 yy391; - TriggerStep* yy427; - Expr* yy454; - u8 yy462; - struct FrameBound yy509; - Select* yy555; + u32 yy9; + struct TrigEvent yy28; + With* yy125; + IdList* yy204; + struct FrameBound yy205; + TriggerStep* yy319; + const char* yy342; + Cte* yy361; + ExprList* yy402; + Upsert* yy403; + OnOrUsing yy421; + u8 yy444; + struct {int value; int mask;} yy481; + Window* yy483; + int yy502; + SrcList* yy563; + Expr* yy590; + Select* yy637; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 100 @@ -174323,7 +174732,7 @@ typedef union { #define YYNSTATE 583 #define YYNRULE 409 #define YYNRULE_WITH_ACTION 344 -#define YYNTOKEN 186 +#define YYNTOKEN 187 #define YY_MAX_SHIFT 582 #define YY_MIN_SHIFTREDUCE 845 #define YY_MAX_SHIFTREDUCE 1253 @@ -174332,8 +174741,8 @@ typedef union { #define YY_NO_ACTION 1256 #define YY_MIN_REDUCE 1257 #define YY_MAX_REDUCE 1665 -#define YY_MIN_DSTRCTR 205 -#define YY_MAX_DSTRCTR 319 +#define YY_MIN_DSTRCTR 206 +#define YY_MAX_DSTRCTR 320 /************* End control #defines *******************************************/ #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0]))) @@ -174429,211 +174838,211 @@ static const YYACTIONTYPE yy_action[] = { /* 80 */ 573, 421, 562, 137, 138, 91, 559, 1228, 1228, 1063, /* 90 */ 1066, 1053, 1053, 135, 135, 136, 136, 136, 136, 296, /* 100 */ 460, 398, 1249, 134, 134, 134, 134, 133, 133, 132, - /* 110 */ 132, 132, 131, 128, 451, 44, 1050, 1050, 1064, 1067, + /* 110 */ 132, 132, 131, 128, 451, 451, 1050, 1050, 1064, 1067, /* 120 */ 1255, 1, 1, 582, 2, 1259, 581, 1174, 1259, 1174, - /* 130 */ 321, 413, 155, 321, 1584, 155, 379, 112, 498, 1341, + /* 130 */ 321, 413, 155, 321, 1584, 155, 379, 112, 481, 1341, /* 140 */ 456, 299, 1341, 134, 134, 134, 134, 133, 133, 132, - /* 150 */ 132, 132, 131, 128, 451, 137, 138, 91, 1105, 1228, + /* 150 */ 132, 132, 131, 128, 451, 137, 138, 91, 498, 1228, /* 160 */ 1228, 1063, 1066, 1053, 1053, 135, 135, 136, 136, 136, - /* 170 */ 136, 1204, 320, 567, 288, 288, 283, 288, 288, 523, - /* 180 */ 523, 1250, 139, 1541, 7, 214, 503, 573, 1169, 562, - /* 190 */ 573, 1054, 562, 136, 136, 136, 136, 129, 401, 547, - /* 200 */ 487, 1169, 245, 1568, 1169, 245, 133, 133, 132, 132, - /* 210 */ 132, 131, 128, 451, 261, 134, 134, 134, 134, 133, - /* 220 */ 133, 132, 132, 132, 131, 128, 451, 451, 1204, 1205, - /* 230 */ 1204, 130, 127, 234, 455, 413, 182, 455, 130, 127, + /* 170 */ 136, 1204, 862, 1281, 288, 288, 283, 288, 288, 523, + /* 180 */ 523, 1250, 139, 578, 7, 578, 1345, 573, 1169, 562, + /* 190 */ 573, 1054, 562, 136, 136, 136, 136, 129, 573, 547, + /* 200 */ 562, 1169, 245, 1541, 1169, 245, 133, 133, 132, 132, + /* 210 */ 132, 131, 128, 451, 302, 134, 134, 134, 134, 133, + /* 220 */ 133, 132, 132, 132, 131, 128, 451, 1575, 1204, 1205, + /* 230 */ 1204, 7, 470, 550, 455, 413, 550, 455, 130, 127, /* 240 */ 234, 134, 134, 134, 134, 133, 133, 132, 132, 132, - /* 250 */ 131, 128, 451, 136, 136, 136, 136, 538, 576, 137, - /* 260 */ 138, 91, 261, 1228, 1228, 1063, 1066, 1053, 1053, 135, - /* 270 */ 135, 136, 136, 136, 136, 44, 472, 346, 1204, 472, - /* 280 */ 346, 51, 51, 418, 93, 157, 134, 134, 134, 134, - /* 290 */ 133, 133, 132, 132, 132, 131, 128, 451, 166, 363, - /* 300 */ 298, 134, 134, 134, 134, 133, 133, 132, 132, 132, - /* 310 */ 131, 128, 451, 1293, 461, 1570, 423, 377, 275, 134, + /* 250 */ 131, 128, 451, 136, 136, 136, 136, 538, 483, 137, + /* 260 */ 138, 91, 1019, 1228, 1228, 1063, 1066, 1053, 1053, 135, + /* 270 */ 135, 136, 136, 136, 136, 1085, 576, 1204, 132, 132, + /* 280 */ 132, 131, 128, 451, 93, 214, 134, 134, 134, 134, + /* 290 */ 133, 133, 132, 132, 132, 131, 128, 451, 401, 19, + /* 300 */ 19, 134, 134, 134, 134, 133, 133, 132, 132, 132, + /* 310 */ 131, 128, 451, 1498, 426, 267, 344, 467, 332, 134, /* 320 */ 134, 134, 134, 133, 133, 132, 132, 132, 131, 128, - /* 330 */ 451, 418, 320, 567, 1292, 1204, 1205, 1204, 257, 413, - /* 340 */ 483, 511, 508, 507, 94, 132, 132, 132, 131, 128, - /* 350 */ 451, 506, 1204, 548, 548, 388, 576, 384, 7, 413, - /* 360 */ 550, 229, 522, 137, 138, 91, 530, 1228, 1228, 1063, - /* 370 */ 1066, 1053, 1053, 135, 135, 136, 136, 136, 136, 51, - /* 380 */ 51, 1582, 380, 137, 138, 91, 331, 1228, 1228, 1063, - /* 390 */ 1066, 1053, 1053, 135, 135, 136, 136, 136, 136, 320, - /* 400 */ 567, 288, 288, 320, 567, 1602, 582, 2, 1259, 1204, - /* 410 */ 1205, 1204, 1628, 321, 573, 155, 562, 576, 1511, 264, - /* 420 */ 231, 520, 1341, 134, 134, 134, 134, 133, 133, 132, - /* 430 */ 132, 132, 131, 128, 451, 519, 1511, 1513, 1333, 1333, - /* 440 */ 82, 82, 498, 134, 134, 134, 134, 133, 133, 132, - /* 450 */ 132, 132, 131, 128, 451, 1435, 257, 288, 288, 511, - /* 460 */ 508, 507, 944, 1568, 413, 1019, 1204, 943, 360, 506, - /* 470 */ 573, 1598, 562, 44, 575, 551, 551, 557, 1107, 1582, - /* 480 */ 544, 576, 1107, 40, 417, 245, 531, 1505, 137, 138, + /* 330 */ 451, 1281, 576, 6, 1204, 1205, 1204, 257, 576, 413, + /* 340 */ 511, 508, 507, 1279, 94, 1019, 464, 1204, 551, 551, + /* 350 */ 506, 1224, 1571, 44, 38, 51, 51, 411, 576, 413, + /* 360 */ 45, 51, 51, 137, 138, 91, 530, 1228, 1228, 1063, + /* 370 */ 1066, 1053, 1053, 135, 135, 136, 136, 136, 136, 398, + /* 380 */ 1148, 82, 82, 137, 138, 91, 39, 1228, 1228, 1063, + /* 390 */ 1066, 1053, 1053, 135, 135, 136, 136, 136, 136, 344, + /* 400 */ 44, 288, 288, 375, 1204, 1205, 1204, 209, 1204, 1224, + /* 410 */ 320, 567, 471, 576, 573, 576, 562, 576, 316, 264, + /* 420 */ 231, 46, 160, 134, 134, 134, 134, 133, 133, 132, + /* 430 */ 132, 132, 131, 128, 451, 303, 82, 82, 82, 82, + /* 440 */ 82, 82, 442, 134, 134, 134, 134, 133, 133, 132, + /* 450 */ 132, 132, 131, 128, 451, 1582, 544, 320, 567, 1250, + /* 460 */ 874, 1582, 380, 382, 413, 1204, 1205, 1204, 360, 182, + /* 470 */ 288, 288, 1576, 557, 1339, 557, 7, 557, 1277, 472, + /* 480 */ 346, 526, 531, 573, 556, 562, 439, 1511, 137, 138, /* 490 */ 91, 219, 1228, 1228, 1063, 1066, 1053, 1053, 135, 135, - /* 500 */ 136, 136, 136, 136, 81, 81, 1281, 1204, 413, 553, - /* 510 */ 1511, 48, 512, 448, 447, 493, 578, 455, 578, 344, - /* 520 */ 45, 1204, 1233, 1204, 1205, 1204, 428, 1235, 158, 882, - /* 530 */ 320, 567, 137, 138, 91, 1234, 1228, 1228, 1063, 1066, + /* 500 */ 136, 136, 136, 136, 465, 1511, 1513, 532, 413, 288, + /* 510 */ 288, 423, 512, 288, 288, 411, 288, 288, 874, 130, + /* 520 */ 127, 234, 573, 1107, 562, 1204, 573, 1107, 562, 573, + /* 530 */ 560, 562, 137, 138, 91, 1293, 1228, 1228, 1063, 1066, /* 540 */ 1053, 1053, 135, 135, 136, 136, 136, 136, 134, 134, /* 550 */ 134, 134, 133, 133, 132, 132, 132, 131, 128, 451, - /* 560 */ 1236, 576, 1236, 329, 1204, 1205, 1204, 387, 492, 403, - /* 570 */ 1040, 382, 489, 123, 568, 1569, 4, 377, 1204, 1205, - /* 580 */ 1204, 570, 570, 570, 82, 82, 882, 1029, 1331, 1331, - /* 590 */ 571, 1028, 134, 134, 134, 134, 133, 133, 132, 132, - /* 600 */ 132, 131, 128, 451, 288, 288, 1281, 1204, 576, 423, - /* 610 */ 576, 1568, 413, 423, 452, 378, 886, 573, 1279, 562, - /* 620 */ 46, 557, 532, 1028, 1028, 1030, 565, 130, 127, 234, - /* 630 */ 556, 82, 82, 82, 82, 479, 137, 138, 91, 462, + /* 560 */ 493, 503, 1292, 1204, 257, 288, 288, 511, 508, 507, + /* 570 */ 1204, 1628, 1169, 123, 568, 275, 4, 506, 573, 1511, + /* 580 */ 562, 331, 1204, 1205, 1204, 1169, 548, 548, 1169, 261, + /* 590 */ 571, 7, 134, 134, 134, 134, 133, 133, 132, 132, + /* 600 */ 132, 131, 128, 451, 108, 533, 130, 127, 234, 1204, + /* 610 */ 448, 447, 413, 1451, 452, 983, 886, 96, 1598, 1233, + /* 620 */ 1204, 1205, 1204, 984, 1235, 1450, 565, 1204, 1205, 1204, + /* 630 */ 229, 522, 1234, 534, 1333, 1333, 137, 138, 91, 1449, /* 640 */ 1228, 1228, 1063, 1066, 1053, 1053, 135, 135, 136, 136, - /* 650 */ 136, 136, 1188, 487, 1506, 1040, 413, 6, 1204, 50, - /* 660 */ 879, 121, 121, 948, 1204, 1205, 1204, 358, 557, 122, - /* 670 */ 316, 452, 577, 452, 535, 1204, 1028, 439, 303, 212, - /* 680 */ 137, 138, 91, 213, 1228, 1228, 1063, 1066, 1053, 1053, + /* 650 */ 136, 136, 373, 1595, 971, 1040, 413, 1236, 418, 1236, + /* 660 */ 879, 121, 121, 948, 373, 1595, 1204, 1205, 1204, 122, + /* 670 */ 1204, 452, 577, 452, 363, 417, 1028, 882, 373, 1595, + /* 680 */ 137, 138, 91, 462, 1228, 1228, 1063, 1066, 1053, 1053, /* 690 */ 135, 135, 136, 136, 136, 136, 134, 134, 134, 134, /* 700 */ 133, 133, 132, 132, 132, 131, 128, 451, 1028, 1028, - /* 710 */ 1030, 1031, 35, 288, 288, 1204, 1205, 1204, 1040, 1339, - /* 720 */ 533, 123, 568, 1569, 4, 377, 573, 1019, 562, 353, - /* 730 */ 1277, 356, 1204, 1205, 1204, 1029, 488, 1188, 571, 1028, + /* 710 */ 1030, 1031, 35, 570, 570, 570, 197, 423, 1040, 198, + /* 720 */ 1204, 123, 568, 1204, 4, 320, 567, 1204, 1205, 1204, + /* 730 */ 40, 388, 576, 384, 882, 1029, 423, 1188, 571, 1028, /* 740 */ 134, 134, 134, 134, 133, 133, 132, 132, 132, 131, - /* 750 */ 128, 451, 576, 343, 288, 288, 449, 449, 449, 971, - /* 760 */ 413, 1627, 452, 911, 1187, 288, 288, 573, 464, 562, - /* 770 */ 238, 1028, 1028, 1030, 565, 82, 82, 498, 573, 411, - /* 780 */ 562, 344, 467, 332, 137, 138, 91, 197, 1228, 1228, + /* 750 */ 128, 451, 529, 1568, 1204, 19, 19, 1204, 575, 492, + /* 760 */ 413, 157, 452, 489, 1187, 1331, 1331, 5, 1204, 949, + /* 770 */ 431, 1028, 1028, 1030, 565, 22, 22, 1204, 1205, 1204, + /* 780 */ 1204, 1205, 1204, 477, 137, 138, 91, 212, 1228, 1228, /* 790 */ 1063, 1066, 1053, 1053, 135, 135, 136, 136, 136, 136, - /* 800 */ 1188, 528, 1169, 1040, 413, 1110, 1110, 495, 1041, 121, - /* 810 */ 121, 1204, 317, 540, 862, 1169, 1244, 122, 1169, 452, - /* 820 */ 577, 452, 1340, 198, 1028, 1204, 481, 526, 137, 138, - /* 830 */ 91, 560, 1228, 1228, 1063, 1066, 1053, 1053, 135, 135, + /* 800 */ 1188, 48, 111, 1040, 413, 1204, 213, 970, 1041, 121, + /* 810 */ 121, 1204, 1205, 1204, 1204, 1205, 1204, 122, 221, 452, + /* 820 */ 577, 452, 44, 487, 1028, 1204, 1205, 1204, 137, 138, + /* 830 */ 91, 378, 1228, 1228, 1063, 1066, 1053, 1053, 135, 135, /* 840 */ 136, 136, 136, 136, 134, 134, 134, 134, 133, 133, /* 850 */ 132, 132, 132, 131, 128, 451, 1028, 1028, 1030, 1031, - /* 860 */ 35, 1204, 288, 288, 1204, 477, 288, 288, 1204, 1205, - /* 870 */ 1204, 539, 481, 437, 470, 573, 1451, 562, 364, 573, - /* 880 */ 1153, 562, 1204, 1205, 1204, 1188, 5, 576, 134, 134, + /* 860 */ 35, 461, 1204, 1205, 1204, 1569, 1040, 377, 214, 1149, + /* 870 */ 1657, 535, 1657, 437, 902, 320, 567, 1568, 364, 320, + /* 880 */ 567, 412, 329, 1029, 519, 1188, 3, 1028, 134, 134, /* 890 */ 134, 134, 133, 133, 132, 132, 132, 131, 128, 451, - /* 900 */ 221, 214, 302, 96, 1149, 1657, 232, 1657, 413, 392, - /* 910 */ 19, 19, 1024, 949, 406, 373, 1595, 1085, 1204, 1205, - /* 920 */ 1204, 1204, 1205, 1204, 1204, 426, 1149, 1658, 413, 1658, - /* 930 */ 1659, 399, 137, 138, 91, 3, 1228, 1228, 1063, 1066, - /* 940 */ 1053, 1053, 135, 135, 136, 136, 136, 136, 304, 1311, - /* 950 */ 514, 1204, 137, 138, 91, 1498, 1228, 1228, 1063, 1066, - /* 960 */ 1053, 1053, 135, 135, 136, 136, 136, 136, 434, 131, - /* 970 */ 128, 451, 375, 1204, 274, 291, 372, 517, 367, 516, - /* 980 */ 262, 1204, 1205, 1204, 1147, 227, 363, 448, 447, 1435, - /* 990 */ 1568, 1310, 134, 134, 134, 134, 133, 133, 132, 132, - /* 1000 */ 132, 131, 128, 451, 1568, 576, 1147, 487, 1204, 1205, - /* 1010 */ 1204, 442, 134, 134, 134, 134, 133, 133, 132, 132, - /* 1020 */ 132, 131, 128, 451, 386, 576, 485, 576, 19, 19, - /* 1030 */ 1204, 1205, 1204, 1345, 1236, 970, 1236, 574, 47, 936, - /* 1040 */ 936, 473, 413, 431, 1552, 573, 1125, 562, 19, 19, - /* 1050 */ 19, 19, 49, 336, 850, 851, 852, 111, 1368, 315, - /* 1060 */ 429, 576, 413, 433, 341, 306, 137, 138, 91, 115, + /* 900 */ 1659, 399, 1169, 307, 893, 307, 515, 576, 413, 214, + /* 910 */ 498, 944, 1024, 540, 903, 1169, 943, 392, 1169, 1028, + /* 920 */ 1028, 1030, 406, 298, 1204, 50, 1149, 1658, 413, 1658, + /* 930 */ 145, 145, 137, 138, 91, 293, 1228, 1228, 1063, 1066, + /* 940 */ 1053, 1053, 135, 135, 136, 136, 136, 136, 1188, 1147, + /* 950 */ 514, 1568, 137, 138, 91, 1505, 1228, 1228, 1063, 1066, + /* 960 */ 1053, 1053, 135, 135, 136, 136, 136, 136, 434, 323, + /* 970 */ 435, 539, 111, 1506, 274, 291, 372, 517, 367, 516, + /* 980 */ 262, 1204, 1205, 1204, 1574, 481, 363, 576, 7, 1569, + /* 990 */ 1568, 377, 134, 134, 134, 134, 133, 133, 132, 132, + /* 1000 */ 132, 131, 128, 451, 1568, 576, 1147, 576, 232, 576, + /* 1010 */ 19, 19, 134, 134, 134, 134, 133, 133, 132, 132, + /* 1020 */ 132, 131, 128, 451, 1169, 433, 576, 1207, 19, 19, + /* 1030 */ 19, 19, 19, 19, 1627, 576, 911, 1169, 47, 120, + /* 1040 */ 1169, 117, 413, 306, 498, 438, 1125, 206, 336, 19, + /* 1050 */ 19, 1435, 49, 449, 449, 449, 1368, 315, 81, 81, + /* 1060 */ 576, 304, 413, 1570, 207, 377, 137, 138, 91, 115, /* 1070 */ 1228, 1228, 1063, 1066, 1053, 1053, 135, 135, 136, 136, - /* 1080 */ 136, 136, 576, 1309, 82, 82, 137, 138, 91, 529, + /* 1080 */ 136, 136, 576, 82, 82, 1207, 137, 138, 91, 1340, /* 1090 */ 1228, 1228, 1063, 1066, 1053, 1053, 135, 135, 136, 136, - /* 1100 */ 136, 136, 1569, 222, 377, 19, 19, 305, 1126, 1169, - /* 1110 */ 398, 1148, 22, 22, 498, 333, 1569, 335, 377, 576, - /* 1120 */ 438, 445, 1169, 1127, 486, 1169, 134, 134, 134, 134, + /* 1100 */ 136, 136, 1569, 386, 377, 82, 82, 463, 1126, 1552, + /* 1110 */ 333, 463, 335, 131, 128, 451, 1569, 161, 377, 16, + /* 1120 */ 317, 387, 428, 1127, 448, 447, 134, 134, 134, 134, /* 1130 */ 133, 133, 132, 132, 132, 131, 128, 451, 1128, 576, - /* 1140 */ 902, 576, 145, 145, 6, 576, 134, 134, 134, 134, - /* 1150 */ 133, 133, 132, 132, 132, 131, 128, 451, 214, 1336, - /* 1160 */ 922, 576, 19, 19, 19, 19, 1282, 419, 19, 19, - /* 1170 */ 923, 412, 515, 141, 576, 1169, 413, 206, 465, 207, - /* 1180 */ 903, 215, 1575, 552, 147, 147, 7, 227, 1169, 411, - /* 1190 */ 1250, 1169, 120, 307, 117, 307, 413, 66, 66, 334, + /* 1140 */ 1105, 10, 445, 267, 576, 1554, 134, 134, 134, 134, + /* 1150 */ 133, 133, 132, 132, 132, 131, 128, 451, 532, 576, + /* 1160 */ 922, 576, 19, 19, 576, 1573, 576, 147, 147, 7, + /* 1170 */ 923, 1236, 498, 1236, 576, 487, 413, 552, 285, 1224, + /* 1180 */ 969, 215, 82, 82, 66, 66, 1435, 67, 67, 21, + /* 1190 */ 21, 1110, 1110, 495, 334, 297, 413, 53, 53, 297, /* 1200 */ 137, 138, 91, 119, 1228, 1228, 1063, 1066, 1053, 1053, - /* 1210 */ 135, 135, 136, 136, 136, 136, 413, 285, 209, 969, - /* 1220 */ 137, 138, 91, 471, 1228, 1228, 1063, 1066, 1053, 1053, - /* 1230 */ 135, 135, 136, 136, 136, 136, 435, 10, 1450, 267, - /* 1240 */ 137, 126, 91, 1435, 1228, 1228, 1063, 1066, 1053, 1053, - /* 1250 */ 135, 135, 136, 136, 136, 136, 1435, 1435, 410, 409, + /* 1210 */ 135, 135, 136, 136, 136, 136, 413, 1336, 1311, 446, + /* 1220 */ 137, 138, 91, 227, 1228, 1228, 1063, 1066, 1053, 1053, + /* 1230 */ 135, 135, 136, 136, 136, 136, 574, 1224, 936, 936, + /* 1240 */ 137, 126, 91, 141, 1228, 1228, 1063, 1066, 1053, 1053, + /* 1250 */ 135, 135, 136, 136, 136, 136, 533, 429, 472, 346, /* 1260 */ 134, 134, 134, 134, 133, 133, 132, 132, 132, 131, - /* 1270 */ 128, 451, 576, 969, 576, 1224, 498, 373, 1595, 1554, + /* 1270 */ 128, 451, 576, 457, 233, 343, 1435, 403, 498, 1550, /* 1280 */ 134, 134, 134, 134, 133, 133, 132, 132, 132, 131, - /* 1290 */ 128, 451, 532, 457, 576, 82, 82, 82, 82, 111, + /* 1290 */ 128, 451, 576, 324, 576, 82, 82, 487, 576, 969, /* 1300 */ 134, 134, 134, 134, 133, 133, 132, 132, 132, 131, - /* 1310 */ 128, 451, 109, 233, 430, 1576, 546, 67, 67, 7, - /* 1320 */ 413, 351, 550, 1550, 260, 259, 258, 494, 443, 569, - /* 1330 */ 419, 983, 446, 1224, 450, 545, 1207, 576, 969, 984, - /* 1340 */ 413, 475, 1449, 1574, 1180, 138, 91, 7, 1228, 1228, + /* 1310 */ 128, 451, 288, 288, 546, 68, 68, 54, 54, 553, + /* 1320 */ 413, 69, 69, 351, 6, 573, 944, 562, 410, 409, + /* 1330 */ 1435, 943, 450, 545, 260, 259, 258, 576, 158, 576, + /* 1340 */ 413, 222, 1180, 479, 969, 138, 91, 430, 1228, 1228, /* 1350 */ 1063, 1066, 1053, 1053, 135, 135, 136, 136, 136, 136, - /* 1360 */ 21, 21, 267, 576, 300, 1126, 91, 233, 1228, 1228, + /* 1360 */ 70, 70, 71, 71, 576, 1126, 91, 576, 1228, 1228, /* 1370 */ 1063, 1066, 1053, 1053, 135, 135, 136, 136, 136, 136, - /* 1380 */ 1127, 373, 1595, 161, 1573, 16, 53, 53, 7, 108, - /* 1390 */ 533, 38, 969, 125, 1207, 1128, 1180, 576, 1224, 123, - /* 1400 */ 568, 893, 4, 324, 134, 134, 134, 134, 133, 133, - /* 1410 */ 132, 132, 132, 131, 128, 451, 571, 564, 534, 576, - /* 1420 */ 68, 68, 576, 39, 134, 134, 134, 134, 133, 133, - /* 1430 */ 132, 132, 132, 131, 128, 451, 576, 160, 1571, 1223, - /* 1440 */ 452, 576, 54, 54, 576, 69, 69, 576, 1366, 576, - /* 1450 */ 420, 184, 565, 463, 297, 576, 1224, 463, 297, 70, - /* 1460 */ 70, 576, 44, 474, 71, 71, 576, 72, 72, 576, - /* 1470 */ 73, 73, 55, 55, 411, 874, 242, 576, 56, 56, - /* 1480 */ 576, 1040, 576, 478, 57, 57, 576, 121, 121, 59, - /* 1490 */ 59, 23, 60, 60, 411, 122, 319, 452, 577, 452, - /* 1500 */ 74, 74, 1028, 75, 75, 76, 76, 411, 290, 20, - /* 1510 */ 20, 108, 287, 231, 553, 123, 568, 325, 4, 320, - /* 1520 */ 567, 97, 218, 944, 1144, 328, 400, 576, 943, 576, - /* 1530 */ 1380, 424, 571, 874, 1028, 1028, 1030, 1031, 35, 293, - /* 1540 */ 534, 576, 1104, 576, 1104, 9, 576, 342, 576, 111, - /* 1550 */ 77, 77, 143, 143, 576, 205, 452, 222, 1379, 889, - /* 1560 */ 576, 901, 900, 1188, 144, 144, 78, 78, 565, 62, - /* 1570 */ 62, 79, 79, 323, 1021, 576, 266, 63, 63, 908, - /* 1580 */ 909, 1589, 542, 80, 80, 576, 371, 541, 123, 568, - /* 1590 */ 480, 4, 266, 482, 244, 266, 370, 1040, 64, 64, - /* 1600 */ 576, 466, 576, 121, 121, 571, 1557, 576, 170, 170, - /* 1610 */ 576, 122, 576, 452, 577, 452, 576, 889, 1028, 576, - /* 1620 */ 165, 576, 111, 171, 171, 87, 87, 337, 1616, 452, - /* 1630 */ 65, 65, 1530, 83, 83, 146, 146, 986, 987, 84, - /* 1640 */ 84, 565, 168, 168, 148, 148, 1092, 347, 1032, 111, - /* 1650 */ 1028, 1028, 1030, 1031, 35, 542, 1103, 576, 1103, 576, - /* 1660 */ 543, 123, 568, 504, 4, 263, 576, 361, 1529, 111, - /* 1670 */ 1040, 1088, 576, 263, 576, 490, 121, 121, 571, 1188, - /* 1680 */ 142, 142, 169, 169, 122, 576, 452, 577, 452, 162, - /* 1690 */ 162, 1028, 576, 563, 576, 152, 152, 151, 151, 348, - /* 1700 */ 1376, 974, 452, 266, 1092, 942, 1032, 125, 149, 149, - /* 1710 */ 939, 576, 125, 576, 565, 150, 150, 86, 86, 872, - /* 1720 */ 352, 159, 576, 1028, 1028, 1030, 1031, 35, 542, 941, - /* 1730 */ 576, 125, 355, 541, 88, 88, 85, 85, 357, 359, - /* 1740 */ 1324, 1308, 366, 1040, 376, 52, 52, 499, 1389, 121, - /* 1750 */ 121, 1434, 1188, 58, 58, 1362, 1374, 122, 1439, 452, - /* 1760 */ 577, 452, 1289, 167, 1028, 1280, 280, 1268, 1267, 1269, - /* 1770 */ 1609, 1359, 312, 313, 12, 314, 397, 1421, 224, 1416, - /* 1780 */ 295, 237, 1409, 339, 340, 1426, 301, 345, 484, 228, - /* 1790 */ 1371, 1307, 1372, 1370, 1425, 404, 1028, 1028, 1030, 1031, - /* 1800 */ 35, 1601, 1192, 454, 509, 369, 292, 1502, 210, 1501, - /* 1810 */ 1369, 396, 396, 395, 277, 393, 211, 566, 859, 1612, - /* 1820 */ 1244, 123, 568, 391, 4, 1188, 223, 270, 1549, 1547, - /* 1830 */ 1241, 239, 186, 327, 422, 96, 195, 220, 571, 235, - /* 1840 */ 180, 326, 188, 468, 190, 1507, 191, 192, 92, 193, - /* 1850 */ 469, 95, 1422, 13, 502, 247, 1430, 109, 199, 402, - /* 1860 */ 476, 405, 452, 1496, 1428, 1427, 14, 491, 251, 102, - /* 1870 */ 497, 1518, 241, 281, 565, 253, 203, 354, 500, 254, - /* 1880 */ 175, 1270, 407, 43, 350, 518, 1327, 436, 255, 1326, - /* 1890 */ 1325, 1318, 104, 893, 1626, 229, 408, 440, 1625, 441, - /* 1900 */ 240, 310, 1296, 1040, 311, 1317, 527, 1594, 1297, 121, - /* 1910 */ 121, 368, 1295, 1624, 268, 269, 1580, 122, 1579, 452, - /* 1920 */ 577, 452, 374, 444, 1028, 1394, 1393, 140, 553, 90, - /* 1930 */ 568, 11, 4, 1483, 383, 414, 385, 110, 116, 216, - /* 1940 */ 320, 567, 1350, 555, 42, 318, 571, 537, 1349, 389, - /* 1950 */ 390, 579, 1198, 276, 279, 278, 1028, 1028, 1030, 1031, - /* 1960 */ 35, 580, 415, 1265, 458, 1260, 416, 185, 1534, 172, - /* 1970 */ 452, 1535, 173, 156, 308, 846, 1533, 1532, 453, 217, - /* 1980 */ 225, 89, 565, 174, 322, 1188, 226, 236, 1102, 154, - /* 1990 */ 1100, 330, 176, 187, 1223, 189, 925, 338, 243, 1116, - /* 2000 */ 246, 194, 177, 178, 425, 427, 98, 99, 196, 100, - /* 2010 */ 101, 1040, 179, 1119, 248, 1115, 249, 121, 121, 24, - /* 2020 */ 163, 250, 349, 1108, 266, 122, 1238, 452, 577, 452, - /* 2030 */ 1192, 454, 1028, 200, 292, 496, 252, 201, 861, 396, + /* 1380 */ 1127, 166, 850, 851, 852, 1282, 419, 72, 72, 108, + /* 1390 */ 73, 73, 1310, 358, 1180, 1128, 576, 305, 576, 123, + /* 1400 */ 568, 494, 4, 488, 134, 134, 134, 134, 133, 133, + /* 1410 */ 132, 132, 132, 131, 128, 451, 571, 564, 534, 55, + /* 1420 */ 55, 56, 56, 576, 134, 134, 134, 134, 133, 133, + /* 1430 */ 132, 132, 132, 131, 128, 451, 576, 1104, 233, 1104, + /* 1440 */ 452, 1602, 582, 2, 1259, 576, 57, 57, 576, 321, + /* 1450 */ 576, 155, 565, 1435, 485, 353, 576, 356, 1341, 59, + /* 1460 */ 59, 576, 44, 969, 569, 419, 576, 238, 60, 60, + /* 1470 */ 261, 74, 74, 75, 75, 287, 231, 576, 1366, 76, + /* 1480 */ 76, 1040, 420, 184, 20, 20, 576, 121, 121, 77, + /* 1490 */ 77, 97, 218, 288, 288, 122, 125, 452, 577, 452, + /* 1500 */ 143, 143, 1028, 576, 520, 576, 573, 576, 562, 144, + /* 1510 */ 144, 474, 227, 1244, 478, 123, 568, 576, 4, 320, + /* 1520 */ 567, 245, 411, 576, 443, 411, 78, 78, 62, 62, + /* 1530 */ 79, 79, 571, 319, 1028, 1028, 1030, 1031, 35, 418, + /* 1540 */ 63, 63, 576, 290, 411, 9, 80, 80, 1144, 576, + /* 1550 */ 400, 576, 486, 455, 576, 1223, 452, 576, 325, 342, + /* 1560 */ 576, 111, 576, 1188, 242, 64, 64, 473, 565, 576, + /* 1570 */ 23, 576, 170, 170, 171, 171, 576, 87, 87, 328, + /* 1580 */ 65, 65, 542, 83, 83, 146, 146, 541, 123, 568, + /* 1590 */ 341, 4, 84, 84, 168, 168, 576, 1040, 576, 148, + /* 1600 */ 148, 576, 1380, 121, 121, 571, 1021, 576, 266, 576, + /* 1610 */ 424, 122, 576, 452, 577, 452, 576, 553, 1028, 142, + /* 1620 */ 142, 169, 169, 576, 162, 162, 528, 889, 371, 452, + /* 1630 */ 152, 152, 151, 151, 1379, 149, 149, 109, 370, 150, + /* 1640 */ 150, 565, 576, 480, 576, 266, 86, 86, 576, 1092, + /* 1650 */ 1028, 1028, 1030, 1031, 35, 542, 482, 576, 266, 466, + /* 1660 */ 543, 123, 568, 1616, 4, 88, 88, 85, 85, 475, + /* 1670 */ 1040, 52, 52, 222, 901, 900, 121, 121, 571, 1188, + /* 1680 */ 58, 58, 244, 1032, 122, 889, 452, 577, 452, 908, + /* 1690 */ 909, 1028, 300, 347, 504, 111, 263, 361, 165, 111, + /* 1700 */ 111, 1088, 452, 263, 974, 1153, 266, 1092, 986, 987, + /* 1710 */ 942, 939, 125, 125, 565, 1103, 872, 1103, 159, 941, + /* 1720 */ 1309, 125, 1557, 1028, 1028, 1030, 1031, 35, 542, 337, + /* 1730 */ 1530, 205, 1529, 541, 499, 1589, 490, 348, 1376, 352, + /* 1740 */ 355, 1032, 357, 1040, 359, 1324, 1308, 366, 563, 121, + /* 1750 */ 121, 376, 1188, 1389, 1434, 1362, 280, 122, 1374, 452, + /* 1760 */ 577, 452, 167, 1439, 1028, 1289, 1280, 1268, 1267, 1269, + /* 1770 */ 1609, 1359, 312, 313, 314, 397, 12, 237, 224, 1421, + /* 1780 */ 295, 1416, 1409, 1426, 339, 484, 340, 509, 1371, 1612, + /* 1790 */ 1372, 1425, 1244, 404, 301, 228, 1028, 1028, 1030, 1031, + /* 1800 */ 35, 1601, 1192, 454, 345, 1307, 292, 369, 1502, 1501, + /* 1810 */ 270, 396, 396, 395, 277, 393, 1370, 1369, 859, 1549, + /* 1820 */ 186, 123, 568, 235, 4, 1188, 391, 210, 211, 223, + /* 1830 */ 1547, 239, 1241, 327, 422, 96, 220, 195, 571, 180, + /* 1840 */ 188, 326, 468, 469, 190, 191, 502, 192, 193, 566, + /* 1850 */ 247, 109, 1430, 491, 199, 251, 102, 281, 402, 476, + /* 1860 */ 405, 1496, 452, 497, 253, 1422, 13, 1428, 14, 1427, + /* 1870 */ 203, 1507, 241, 500, 565, 354, 407, 92, 95, 1270, + /* 1880 */ 175, 254, 518, 43, 1327, 255, 1326, 1325, 436, 1518, + /* 1890 */ 350, 1318, 104, 229, 893, 1626, 440, 441, 1625, 408, + /* 1900 */ 240, 1296, 268, 1040, 310, 269, 1297, 527, 444, 121, + /* 1910 */ 121, 368, 1295, 1594, 1624, 311, 1394, 122, 1317, 452, + /* 1920 */ 577, 452, 374, 1580, 1028, 1393, 140, 553, 11, 90, + /* 1930 */ 568, 385, 4, 116, 318, 414, 1579, 110, 1483, 537, + /* 1940 */ 320, 567, 1350, 555, 42, 579, 571, 1349, 1198, 383, + /* 1950 */ 276, 390, 216, 389, 278, 279, 1028, 1028, 1030, 1031, + /* 1960 */ 35, 172, 580, 1265, 458, 1260, 415, 416, 185, 156, + /* 1970 */ 452, 1534, 1535, 173, 1533, 1532, 89, 308, 225, 226, + /* 1980 */ 846, 174, 565, 453, 217, 1188, 322, 236, 1102, 154, + /* 1990 */ 1100, 330, 187, 176, 1223, 243, 189, 925, 338, 246, + /* 2000 */ 1116, 194, 177, 425, 178, 427, 98, 196, 99, 100, + /* 2010 */ 101, 1040, 179, 1119, 1115, 248, 249, 121, 121, 163, + /* 2020 */ 24, 250, 349, 1238, 496, 122, 1108, 452, 577, 452, + /* 2030 */ 1192, 454, 1028, 266, 292, 200, 252, 201, 861, 396, /* 2040 */ 396, 395, 277, 393, 15, 501, 859, 370, 292, 256, /* 2050 */ 202, 554, 505, 396, 396, 395, 277, 393, 103, 239, /* 2060 */ 859, 327, 25, 26, 1028, 1028, 1030, 1031, 35, 326, /* 2070 */ 362, 510, 891, 239, 365, 327, 513, 904, 105, 309, /* 2080 */ 164, 181, 27, 326, 106, 521, 107, 1185, 1069, 1155, - /* 2090 */ 17, 1154, 284, 1188, 286, 978, 265, 204, 125, 1171, - /* 2100 */ 241, 230, 972, 1175, 28, 1160, 29, 1179, 175, 1173, - /* 2110 */ 30, 43, 31, 1178, 241, 32, 41, 549, 8, 33, - /* 2120 */ 208, 111, 175, 1083, 1070, 43, 113, 1068, 240, 114, - /* 2130 */ 1072, 34, 1073, 561, 1124, 118, 271, 36, 18, 1194, - /* 2140 */ 1033, 873, 240, 935, 124, 37, 272, 273, 1617, 572, - /* 2150 */ 183, 153, 394, 1193, 1256, 1256, 1256, 1256, 1256, 1256, + /* 2090 */ 17, 1154, 230, 1188, 284, 286, 265, 204, 125, 1171, + /* 2100 */ 241, 28, 978, 972, 29, 41, 1175, 1179, 175, 1173, + /* 2110 */ 30, 43, 31, 8, 241, 1178, 32, 1160, 208, 549, + /* 2120 */ 33, 111, 175, 1083, 1070, 43, 1068, 1072, 240, 113, + /* 2130 */ 114, 34, 561, 118, 1124, 271, 1073, 36, 18, 572, + /* 2140 */ 1033, 873, 240, 124, 37, 935, 272, 273, 1617, 183, + /* 2150 */ 153, 394, 1194, 1193, 1256, 1256, 1256, 1256, 1256, 1256, /* 2160 */ 1256, 1256, 1256, 414, 1256, 1256, 1256, 1256, 320, 567, /* 2170 */ 1256, 1256, 1256, 1256, 1256, 1256, 1256, 414, 1256, 1256, /* 2180 */ 1256, 1256, 320, 567, 1256, 1256, 1256, 1256, 1256, 1256, @@ -174641,257 +175050,257 @@ static const YYACTIONTYPE yy_action[] = { /* 2200 */ 1256, 1256, 1256, 1256, 1256, 1256, 458, }; static const YYCODETYPE yy_lookahead[] = { - /* 0 */ 276, 277, 278, 240, 241, 224, 194, 226, 194, 240, - /* 10 */ 241, 194, 216, 220, 194, 234, 253, 194, 255, 19, - /* 20 */ 224, 297, 253, 194, 255, 205, 212, 213, 205, 217, - /* 30 */ 218, 31, 205, 194, 217, 218, 194, 217, 218, 39, - /* 40 */ 217, 218, 312, 43, 44, 45, 316, 47, 48, 49, + /* 0 */ 277, 278, 279, 241, 242, 225, 195, 227, 195, 241, + /* 10 */ 242, 195, 217, 221, 195, 235, 254, 195, 256, 19, + /* 20 */ 225, 298, 254, 195, 256, 206, 213, 214, 206, 218, + /* 30 */ 219, 31, 206, 195, 218, 219, 195, 218, 219, 39, + /* 40 */ 218, 219, 313, 43, 44, 45, 317, 47, 48, 49, /* 50 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 19, - /* 60 */ 240, 241, 194, 240, 241, 194, 254, 240, 241, 276, - /* 70 */ 277, 278, 233, 253, 254, 255, 253, 254, 255, 217, - /* 80 */ 253, 239, 255, 43, 44, 45, 263, 47, 48, 49, - /* 90 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 270, - /* 100 */ 286, 22, 23, 103, 104, 105, 106, 107, 108, 109, - /* 110 */ 110, 111, 112, 113, 114, 82, 47, 48, 49, 50, - /* 120 */ 186, 187, 188, 189, 190, 191, 189, 87, 191, 89, - /* 130 */ 196, 19, 198, 196, 317, 198, 319, 25, 194, 205, - /* 140 */ 298, 270, 205, 103, 104, 105, 106, 107, 108, 109, - /* 150 */ 110, 111, 112, 113, 114, 43, 44, 45, 11, 47, + /* 60 */ 241, 242, 195, 241, 242, 195, 255, 241, 242, 277, + /* 70 */ 278, 279, 234, 254, 255, 256, 254, 255, 256, 218, + /* 80 */ 254, 240, 256, 43, 44, 45, 264, 47, 48, 49, + /* 90 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 271, + /* 100 */ 287, 22, 23, 103, 104, 105, 106, 107, 108, 109, + /* 110 */ 110, 111, 112, 113, 114, 114, 47, 48, 49, 50, + /* 120 */ 187, 188, 189, 190, 191, 192, 190, 87, 192, 89, + /* 130 */ 197, 19, 199, 197, 318, 199, 320, 25, 195, 206, + /* 140 */ 299, 271, 206, 103, 104, 105, 106, 107, 108, 109, + /* 150 */ 110, 111, 112, 113, 114, 43, 44, 45, 195, 47, /* 160 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - /* 170 */ 58, 60, 139, 140, 240, 241, 214, 240, 241, 311, - /* 180 */ 312, 102, 70, 239, 316, 194, 19, 253, 77, 255, - /* 190 */ 253, 122, 255, 55, 56, 57, 58, 59, 207, 88, - /* 200 */ 194, 90, 268, 194, 93, 268, 107, 108, 109, 110, - /* 210 */ 111, 112, 113, 114, 47, 103, 104, 105, 106, 107, - /* 220 */ 108, 109, 110, 111, 112, 113, 114, 114, 117, 118, - /* 230 */ 119, 276, 277, 278, 300, 19, 194, 300, 276, 277, - /* 240 */ 278, 103, 104, 105, 106, 107, 108, 109, 110, 111, - /* 250 */ 112, 113, 114, 55, 56, 57, 58, 146, 194, 43, - /* 260 */ 44, 45, 47, 47, 48, 49, 50, 51, 52, 53, - /* 270 */ 54, 55, 56, 57, 58, 82, 129, 130, 60, 129, - /* 280 */ 130, 217, 218, 116, 68, 25, 103, 104, 105, 106, - /* 290 */ 107, 108, 109, 110, 111, 112, 113, 114, 23, 132, - /* 300 */ 294, 103, 104, 105, 106, 107, 108, 109, 110, 111, - /* 310 */ 112, 113, 114, 217, 121, 306, 194, 308, 26, 103, + /* 170 */ 58, 60, 21, 195, 241, 242, 215, 241, 242, 312, + /* 180 */ 313, 102, 70, 205, 317, 207, 242, 254, 77, 256, + /* 190 */ 254, 122, 256, 55, 56, 57, 58, 59, 254, 88, + /* 200 */ 256, 90, 269, 240, 93, 269, 107, 108, 109, 110, + /* 210 */ 111, 112, 113, 114, 271, 103, 104, 105, 106, 107, + /* 220 */ 108, 109, 110, 111, 112, 113, 114, 313, 117, 118, + /* 230 */ 119, 317, 81, 195, 301, 19, 195, 301, 277, 278, + /* 240 */ 279, 103, 104, 105, 106, 107, 108, 109, 110, 111, + /* 250 */ 112, 113, 114, 55, 56, 57, 58, 146, 195, 43, + /* 260 */ 44, 45, 74, 47, 48, 49, 50, 51, 52, 53, + /* 270 */ 54, 55, 56, 57, 58, 124, 195, 60, 109, 110, + /* 280 */ 111, 112, 113, 114, 68, 195, 103, 104, 105, 106, + /* 290 */ 107, 108, 109, 110, 111, 112, 113, 114, 208, 218, + /* 300 */ 219, 103, 104, 105, 106, 107, 108, 109, 110, 111, + /* 310 */ 112, 113, 114, 162, 233, 24, 128, 129, 130, 103, /* 320 */ 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - /* 330 */ 114, 116, 139, 140, 217, 117, 118, 119, 120, 19, - /* 340 */ 194, 123, 124, 125, 24, 109, 110, 111, 112, 113, - /* 350 */ 114, 133, 60, 311, 312, 250, 194, 252, 316, 19, - /* 360 */ 194, 166, 167, 43, 44, 45, 205, 47, 48, 49, - /* 370 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 217, - /* 380 */ 218, 317, 318, 43, 44, 45, 264, 47, 48, 49, - /* 390 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 139, - /* 400 */ 140, 240, 241, 139, 140, 188, 189, 190, 191, 117, - /* 410 */ 118, 119, 231, 196, 253, 198, 255, 194, 194, 258, - /* 420 */ 259, 146, 205, 103, 104, 105, 106, 107, 108, 109, - /* 430 */ 110, 111, 112, 113, 114, 109, 212, 213, 236, 237, - /* 440 */ 217, 218, 194, 103, 104, 105, 106, 107, 108, 109, - /* 450 */ 110, 111, 112, 113, 114, 194, 120, 240, 241, 123, - /* 460 */ 124, 125, 136, 194, 19, 74, 60, 141, 23, 133, - /* 470 */ 253, 194, 255, 82, 194, 309, 310, 254, 29, 317, - /* 480 */ 318, 194, 33, 22, 199, 268, 263, 239, 43, 44, + /* 330 */ 114, 195, 195, 215, 117, 118, 119, 120, 195, 19, + /* 340 */ 123, 124, 125, 207, 24, 74, 246, 60, 310, 311, + /* 350 */ 133, 60, 311, 82, 22, 218, 219, 257, 195, 19, + /* 360 */ 73, 218, 219, 43, 44, 45, 206, 47, 48, 49, + /* 370 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 22, + /* 380 */ 23, 218, 219, 43, 44, 45, 54, 47, 48, 49, + /* 390 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 128, + /* 400 */ 82, 241, 242, 195, 117, 118, 119, 289, 60, 118, + /* 410 */ 139, 140, 294, 195, 254, 195, 256, 195, 255, 259, + /* 420 */ 260, 73, 22, 103, 104, 105, 106, 107, 108, 109, + /* 430 */ 110, 111, 112, 113, 114, 206, 218, 219, 218, 219, + /* 440 */ 218, 219, 234, 103, 104, 105, 106, 107, 108, 109, + /* 450 */ 110, 111, 112, 113, 114, 318, 319, 139, 140, 102, + /* 460 */ 60, 318, 319, 221, 19, 117, 118, 119, 23, 195, + /* 470 */ 241, 242, 313, 255, 206, 255, 317, 255, 206, 129, + /* 480 */ 130, 206, 264, 254, 264, 256, 264, 195, 43, 44, /* 490 */ 45, 151, 47, 48, 49, 50, 51, 52, 53, 54, - /* 500 */ 55, 56, 57, 58, 217, 218, 194, 60, 19, 146, - /* 510 */ 286, 242, 23, 107, 108, 66, 204, 300, 206, 128, - /* 520 */ 73, 60, 116, 117, 118, 119, 265, 121, 165, 60, - /* 530 */ 139, 140, 43, 44, 45, 129, 47, 48, 49, 50, + /* 500 */ 55, 56, 57, 58, 246, 213, 214, 19, 19, 241, + /* 510 */ 242, 195, 23, 241, 242, 257, 241, 242, 118, 277, + /* 520 */ 278, 279, 254, 29, 256, 60, 254, 33, 256, 254, + /* 530 */ 206, 256, 43, 44, 45, 218, 47, 48, 49, 50, /* 540 */ 51, 52, 53, 54, 55, 56, 57, 58, 103, 104, /* 550 */ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - /* 560 */ 154, 194, 156, 194, 117, 118, 119, 280, 283, 205, - /* 570 */ 101, 220, 287, 19, 20, 306, 22, 308, 117, 118, - /* 580 */ 119, 211, 212, 213, 217, 218, 117, 118, 236, 237, - /* 590 */ 36, 122, 103, 104, 105, 106, 107, 108, 109, 110, - /* 600 */ 111, 112, 113, 114, 240, 241, 194, 60, 194, 194, - /* 610 */ 194, 194, 19, 194, 60, 194, 23, 253, 206, 255, - /* 620 */ 73, 254, 19, 154, 155, 156, 72, 276, 277, 278, - /* 630 */ 263, 217, 218, 217, 218, 271, 43, 44, 45, 271, + /* 560 */ 66, 19, 218, 60, 120, 241, 242, 123, 124, 125, + /* 570 */ 60, 232, 77, 19, 20, 26, 22, 133, 254, 287, + /* 580 */ 256, 265, 117, 118, 119, 90, 312, 313, 93, 47, + /* 590 */ 36, 317, 103, 104, 105, 106, 107, 108, 109, 110, + /* 600 */ 111, 112, 113, 114, 116, 117, 277, 278, 279, 60, + /* 610 */ 107, 108, 19, 276, 60, 31, 23, 152, 195, 116, + /* 620 */ 117, 118, 119, 39, 121, 276, 72, 117, 118, 119, + /* 630 */ 166, 167, 129, 145, 237, 238, 43, 44, 45, 276, /* 640 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - /* 650 */ 57, 58, 183, 194, 285, 101, 19, 214, 60, 242, - /* 660 */ 23, 107, 108, 109, 117, 118, 119, 16, 254, 115, - /* 670 */ 254, 117, 118, 119, 194, 60, 122, 263, 205, 264, - /* 680 */ 43, 44, 45, 264, 47, 48, 49, 50, 51, 52, + /* 650 */ 57, 58, 315, 316, 144, 101, 19, 154, 116, 156, + /* 660 */ 23, 107, 108, 109, 315, 316, 117, 118, 119, 115, + /* 670 */ 60, 117, 118, 119, 132, 200, 122, 60, 315, 316, + /* 680 */ 43, 44, 45, 272, 47, 48, 49, 50, 51, 52, /* 690 */ 53, 54, 55, 56, 57, 58, 103, 104, 105, 106, /* 700 */ 107, 108, 109, 110, 111, 112, 113, 114, 154, 155, - /* 710 */ 156, 157, 158, 240, 241, 117, 118, 119, 101, 205, - /* 720 */ 117, 19, 20, 306, 22, 308, 253, 74, 255, 78, - /* 730 */ 205, 80, 117, 118, 119, 118, 293, 183, 36, 122, + /* 710 */ 156, 157, 158, 212, 213, 214, 22, 195, 101, 22, + /* 720 */ 60, 19, 20, 60, 22, 139, 140, 117, 118, 119, + /* 730 */ 22, 251, 195, 253, 117, 118, 195, 183, 36, 122, /* 740 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - /* 750 */ 113, 114, 194, 294, 240, 241, 211, 212, 213, 144, - /* 760 */ 19, 23, 60, 25, 23, 240, 241, 253, 245, 255, - /* 770 */ 15, 154, 155, 156, 72, 217, 218, 194, 253, 256, - /* 780 */ 255, 128, 129, 130, 43, 44, 45, 22, 47, 48, + /* 750 */ 113, 114, 195, 195, 60, 218, 219, 60, 195, 284, + /* 760 */ 19, 25, 60, 288, 23, 237, 238, 22, 60, 109, + /* 770 */ 233, 154, 155, 156, 72, 218, 219, 117, 118, 119, + /* 780 */ 117, 118, 119, 116, 43, 44, 45, 265, 47, 48, /* 790 */ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - /* 800 */ 183, 19, 77, 101, 19, 128, 129, 130, 23, 107, - /* 810 */ 108, 60, 254, 88, 21, 90, 61, 115, 93, 117, - /* 820 */ 118, 119, 239, 22, 122, 60, 194, 205, 43, 44, - /* 830 */ 45, 205, 47, 48, 49, 50, 51, 52, 53, 54, + /* 800 */ 183, 243, 25, 101, 19, 60, 265, 144, 23, 107, + /* 810 */ 108, 117, 118, 119, 117, 118, 119, 115, 151, 117, + /* 820 */ 118, 119, 82, 195, 122, 117, 118, 119, 43, 44, + /* 830 */ 45, 195, 47, 48, 49, 50, 51, 52, 53, 54, /* 840 */ 55, 56, 57, 58, 103, 104, 105, 106, 107, 108, /* 850 */ 109, 110, 111, 112, 113, 114, 154, 155, 156, 157, - /* 860 */ 158, 60, 240, 241, 60, 116, 240, 241, 117, 118, - /* 870 */ 119, 146, 194, 19, 81, 253, 275, 255, 24, 253, - /* 880 */ 98, 255, 117, 118, 119, 183, 22, 194, 103, 104, + /* 860 */ 158, 121, 117, 118, 119, 307, 101, 309, 195, 22, + /* 870 */ 23, 195, 25, 19, 35, 139, 140, 195, 24, 139, + /* 880 */ 140, 208, 195, 118, 109, 183, 22, 122, 103, 104, /* 890 */ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - /* 900 */ 151, 194, 270, 152, 22, 23, 194, 25, 19, 202, - /* 910 */ 217, 218, 23, 109, 207, 314, 315, 124, 117, 118, - /* 920 */ 119, 117, 118, 119, 60, 232, 22, 23, 19, 25, - /* 930 */ 303, 304, 43, 44, 45, 22, 47, 48, 49, 50, - /* 940 */ 51, 52, 53, 54, 55, 56, 57, 58, 270, 227, - /* 950 */ 96, 60, 43, 44, 45, 162, 47, 48, 49, 50, - /* 960 */ 51, 52, 53, 54, 55, 56, 57, 58, 114, 112, - /* 970 */ 113, 114, 194, 60, 120, 121, 122, 123, 124, 125, - /* 980 */ 126, 117, 118, 119, 102, 25, 132, 107, 108, 194, - /* 990 */ 194, 227, 103, 104, 105, 106, 107, 108, 109, 110, - /* 1000 */ 111, 112, 113, 114, 194, 194, 102, 194, 117, 118, - /* 1010 */ 119, 233, 103, 104, 105, 106, 107, 108, 109, 110, - /* 1020 */ 111, 112, 113, 114, 194, 194, 19, 194, 217, 218, - /* 1030 */ 117, 118, 119, 241, 154, 144, 156, 135, 242, 137, - /* 1040 */ 138, 130, 19, 232, 194, 253, 23, 255, 217, 218, - /* 1050 */ 217, 218, 242, 16, 7, 8, 9, 25, 261, 262, - /* 1060 */ 265, 194, 19, 232, 153, 232, 43, 44, 45, 160, + /* 900 */ 304, 305, 77, 230, 127, 232, 67, 195, 19, 195, + /* 910 */ 195, 136, 23, 88, 75, 90, 141, 203, 93, 154, + /* 920 */ 155, 156, 208, 295, 60, 243, 22, 23, 19, 25, + /* 930 */ 218, 219, 43, 44, 45, 100, 47, 48, 49, 50, + /* 940 */ 51, 52, 53, 54, 55, 56, 57, 58, 183, 102, + /* 950 */ 96, 195, 43, 44, 45, 240, 47, 48, 49, 50, + /* 960 */ 51, 52, 53, 54, 55, 56, 57, 58, 114, 134, + /* 970 */ 131, 146, 25, 286, 120, 121, 122, 123, 124, 125, + /* 980 */ 126, 117, 118, 119, 313, 195, 132, 195, 317, 307, + /* 990 */ 195, 309, 103, 104, 105, 106, 107, 108, 109, 110, + /* 1000 */ 111, 112, 113, 114, 195, 195, 102, 195, 195, 195, + /* 1010 */ 218, 219, 103, 104, 105, 106, 107, 108, 109, 110, + /* 1020 */ 111, 112, 113, 114, 77, 233, 195, 60, 218, 219, + /* 1030 */ 218, 219, 218, 219, 23, 195, 25, 90, 243, 159, + /* 1040 */ 93, 161, 19, 233, 195, 233, 23, 233, 16, 218, + /* 1050 */ 219, 195, 243, 212, 213, 214, 262, 263, 218, 219, + /* 1060 */ 195, 271, 19, 307, 233, 309, 43, 44, 45, 160, /* 1070 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - /* 1080 */ 57, 58, 194, 227, 217, 218, 43, 44, 45, 194, + /* 1080 */ 57, 58, 195, 218, 219, 118, 43, 44, 45, 240, /* 1090 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - /* 1100 */ 57, 58, 306, 143, 308, 217, 218, 294, 12, 77, - /* 1110 */ 22, 23, 217, 218, 194, 78, 306, 80, 308, 194, - /* 1120 */ 232, 254, 90, 27, 117, 93, 103, 104, 105, 106, - /* 1130 */ 107, 108, 109, 110, 111, 112, 113, 114, 42, 194, - /* 1140 */ 35, 194, 217, 218, 214, 194, 103, 104, 105, 106, - /* 1150 */ 107, 108, 109, 110, 111, 112, 113, 114, 194, 239, - /* 1160 */ 64, 194, 217, 218, 217, 218, 209, 210, 217, 218, - /* 1170 */ 74, 207, 67, 22, 194, 77, 19, 232, 245, 232, - /* 1180 */ 75, 24, 312, 232, 217, 218, 316, 25, 90, 256, - /* 1190 */ 102, 93, 159, 229, 161, 231, 19, 217, 218, 162, + /* 1100 */ 57, 58, 307, 195, 309, 218, 219, 263, 12, 195, + /* 1110 */ 78, 267, 80, 112, 113, 114, 307, 22, 309, 24, + /* 1120 */ 255, 281, 266, 27, 107, 108, 103, 104, 105, 106, + /* 1130 */ 107, 108, 109, 110, 111, 112, 113, 114, 42, 195, + /* 1140 */ 11, 22, 255, 24, 195, 195, 103, 104, 105, 106, + /* 1150 */ 107, 108, 109, 110, 111, 112, 113, 114, 19, 195, + /* 1160 */ 64, 195, 218, 219, 195, 313, 195, 218, 219, 317, + /* 1170 */ 74, 154, 195, 156, 195, 195, 19, 233, 23, 60, + /* 1180 */ 25, 24, 218, 219, 218, 219, 195, 218, 219, 218, + /* 1190 */ 219, 128, 129, 130, 162, 263, 19, 218, 219, 267, /* 1200 */ 43, 44, 45, 160, 47, 48, 49, 50, 51, 52, - /* 1210 */ 53, 54, 55, 56, 57, 58, 19, 23, 288, 25, - /* 1220 */ 43, 44, 45, 293, 47, 48, 49, 50, 51, 52, - /* 1230 */ 53, 54, 55, 56, 57, 58, 131, 22, 275, 24, - /* 1240 */ 43, 44, 45, 194, 47, 48, 49, 50, 51, 52, - /* 1250 */ 53, 54, 55, 56, 57, 58, 194, 194, 107, 108, + /* 1210 */ 53, 54, 55, 56, 57, 58, 19, 240, 228, 255, + /* 1220 */ 43, 44, 45, 25, 47, 48, 49, 50, 51, 52, + /* 1230 */ 53, 54, 55, 56, 57, 58, 135, 118, 137, 138, + /* 1240 */ 43, 44, 45, 22, 47, 48, 49, 50, 51, 52, + /* 1250 */ 53, 54, 55, 56, 57, 58, 117, 266, 129, 130, /* 1260 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - /* 1270 */ 113, 114, 194, 25, 194, 60, 194, 314, 315, 194, + /* 1270 */ 113, 114, 195, 195, 119, 295, 195, 206, 195, 195, /* 1280 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - /* 1290 */ 113, 114, 19, 194, 194, 217, 218, 217, 218, 25, + /* 1290 */ 113, 114, 195, 195, 195, 218, 219, 195, 195, 144, /* 1300 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - /* 1310 */ 113, 114, 150, 119, 265, 312, 67, 217, 218, 316, - /* 1320 */ 19, 239, 194, 194, 128, 129, 130, 265, 265, 209, - /* 1330 */ 210, 31, 254, 118, 254, 86, 60, 194, 144, 39, - /* 1340 */ 19, 130, 275, 312, 95, 44, 45, 316, 47, 48, + /* 1310 */ 113, 114, 241, 242, 67, 218, 219, 218, 219, 146, + /* 1320 */ 19, 218, 219, 240, 215, 254, 136, 256, 107, 108, + /* 1330 */ 195, 141, 255, 86, 128, 129, 130, 195, 165, 195, + /* 1340 */ 19, 143, 95, 272, 25, 44, 45, 266, 47, 48, /* 1350 */ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - /* 1360 */ 217, 218, 24, 194, 153, 12, 45, 119, 47, 48, + /* 1360 */ 218, 219, 218, 219, 195, 12, 45, 195, 47, 48, /* 1370 */ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - /* 1380 */ 27, 314, 315, 22, 312, 24, 217, 218, 316, 116, - /* 1390 */ 117, 22, 144, 25, 118, 42, 147, 194, 60, 19, - /* 1400 */ 20, 127, 22, 194, 103, 104, 105, 106, 107, 108, - /* 1410 */ 109, 110, 111, 112, 113, 114, 36, 64, 145, 194, - /* 1420 */ 217, 218, 194, 54, 103, 104, 105, 106, 107, 108, - /* 1430 */ 109, 110, 111, 112, 113, 114, 194, 22, 310, 25, - /* 1440 */ 60, 194, 217, 218, 194, 217, 218, 194, 260, 194, - /* 1450 */ 301, 302, 72, 262, 262, 194, 118, 266, 266, 217, - /* 1460 */ 218, 194, 82, 245, 217, 218, 194, 217, 218, 194, - /* 1470 */ 217, 218, 217, 218, 256, 60, 24, 194, 217, 218, - /* 1480 */ 194, 101, 194, 245, 217, 218, 194, 107, 108, 217, - /* 1490 */ 218, 22, 217, 218, 256, 115, 245, 117, 118, 119, - /* 1500 */ 217, 218, 122, 217, 218, 217, 218, 256, 22, 217, - /* 1510 */ 218, 116, 258, 259, 146, 19, 20, 194, 22, 139, - /* 1520 */ 140, 150, 151, 136, 23, 194, 25, 194, 141, 194, - /* 1530 */ 194, 62, 36, 118, 154, 155, 156, 157, 158, 100, - /* 1540 */ 145, 194, 154, 194, 156, 49, 194, 23, 194, 25, - /* 1550 */ 217, 218, 217, 218, 194, 257, 60, 143, 194, 60, - /* 1560 */ 194, 121, 122, 183, 217, 218, 217, 218, 72, 217, - /* 1570 */ 218, 217, 218, 134, 23, 194, 25, 217, 218, 7, - /* 1580 */ 8, 321, 86, 217, 218, 194, 122, 91, 19, 20, - /* 1590 */ 23, 22, 25, 23, 142, 25, 132, 101, 217, 218, - /* 1600 */ 194, 194, 194, 107, 108, 36, 194, 194, 217, 218, - /* 1610 */ 194, 115, 194, 117, 118, 119, 194, 118, 122, 194, - /* 1620 */ 23, 194, 25, 217, 218, 217, 218, 194, 142, 60, - /* 1630 */ 217, 218, 194, 217, 218, 217, 218, 84, 85, 217, - /* 1640 */ 218, 72, 217, 218, 217, 218, 60, 23, 60, 25, - /* 1650 */ 154, 155, 156, 157, 158, 86, 154, 194, 156, 194, - /* 1660 */ 91, 19, 20, 23, 22, 25, 194, 23, 194, 25, - /* 1670 */ 101, 23, 194, 25, 194, 194, 107, 108, 36, 183, - /* 1680 */ 217, 218, 217, 218, 115, 194, 117, 118, 119, 217, - /* 1690 */ 218, 122, 194, 237, 194, 217, 218, 217, 218, 194, - /* 1700 */ 194, 23, 60, 25, 118, 23, 118, 25, 217, 218, - /* 1710 */ 23, 194, 25, 194, 72, 217, 218, 217, 218, 23, - /* 1720 */ 194, 25, 194, 154, 155, 156, 157, 158, 86, 23, - /* 1730 */ 194, 25, 194, 91, 217, 218, 217, 218, 194, 194, - /* 1740 */ 194, 194, 194, 101, 194, 217, 218, 290, 194, 107, - /* 1750 */ 108, 194, 183, 217, 218, 194, 194, 115, 194, 117, - /* 1760 */ 118, 119, 194, 243, 122, 194, 289, 194, 194, 194, - /* 1770 */ 194, 257, 257, 257, 244, 257, 192, 273, 215, 269, - /* 1780 */ 246, 299, 269, 295, 247, 273, 247, 246, 295, 230, - /* 1790 */ 261, 226, 261, 261, 273, 273, 154, 155, 156, 157, - /* 1800 */ 158, 0, 1, 2, 221, 220, 5, 220, 250, 220, - /* 1810 */ 261, 10, 11, 12, 13, 14, 250, 282, 17, 197, - /* 1820 */ 61, 19, 20, 246, 22, 183, 244, 142, 201, 201, - /* 1830 */ 38, 30, 299, 32, 201, 152, 22, 151, 36, 299, - /* 1840 */ 43, 40, 235, 18, 238, 285, 238, 238, 296, 238, - /* 1850 */ 201, 296, 274, 272, 18, 200, 235, 150, 235, 247, - /* 1860 */ 247, 247, 60, 247, 274, 274, 272, 201, 200, 159, - /* 1870 */ 63, 292, 71, 201, 72, 200, 22, 201, 222, 200, - /* 1880 */ 79, 201, 222, 82, 291, 116, 219, 65, 200, 219, - /* 1890 */ 219, 228, 22, 127, 225, 166, 222, 24, 225, 114, - /* 1900 */ 99, 284, 221, 101, 284, 228, 307, 315, 219, 107, - /* 1910 */ 108, 219, 219, 219, 201, 92, 320, 115, 320, 117, - /* 1920 */ 118, 119, 222, 83, 122, 267, 267, 149, 146, 19, - /* 1930 */ 20, 22, 22, 279, 250, 134, 201, 148, 159, 249, - /* 1940 */ 139, 140, 251, 141, 25, 281, 36, 147, 251, 248, - /* 1950 */ 247, 203, 13, 195, 6, 195, 154, 155, 156, 157, - /* 1960 */ 158, 193, 305, 193, 163, 193, 305, 302, 214, 208, - /* 1970 */ 60, 214, 208, 223, 223, 4, 214, 214, 3, 22, - /* 1980 */ 215, 214, 72, 208, 164, 183, 215, 15, 23, 16, - /* 1990 */ 23, 140, 131, 152, 25, 143, 20, 16, 24, 1, - /* 2000 */ 145, 143, 131, 131, 62, 37, 54, 54, 152, 54, - /* 2010 */ 54, 101, 131, 117, 34, 1, 142, 107, 108, 22, - /* 2020 */ 5, 116, 162, 69, 25, 115, 76, 117, 118, 119, - /* 2030 */ 1, 2, 122, 69, 5, 41, 142, 116, 20, 10, + /* 1380 */ 27, 23, 7, 8, 9, 210, 211, 218, 219, 116, + /* 1390 */ 218, 219, 228, 16, 147, 42, 195, 295, 195, 19, + /* 1400 */ 20, 266, 22, 294, 103, 104, 105, 106, 107, 108, + /* 1410 */ 109, 110, 111, 112, 113, 114, 36, 64, 145, 218, + /* 1420 */ 219, 218, 219, 195, 103, 104, 105, 106, 107, 108, + /* 1430 */ 109, 110, 111, 112, 113, 114, 195, 154, 119, 156, + /* 1440 */ 60, 189, 190, 191, 192, 195, 218, 219, 195, 197, + /* 1450 */ 195, 199, 72, 195, 19, 78, 195, 80, 206, 218, + /* 1460 */ 219, 195, 82, 144, 210, 211, 195, 15, 218, 219, + /* 1470 */ 47, 218, 219, 218, 219, 259, 260, 195, 261, 218, + /* 1480 */ 219, 101, 302, 303, 218, 219, 195, 107, 108, 218, + /* 1490 */ 219, 150, 151, 241, 242, 115, 25, 117, 118, 119, + /* 1500 */ 218, 219, 122, 195, 146, 195, 254, 195, 256, 218, + /* 1510 */ 219, 246, 25, 61, 246, 19, 20, 195, 22, 139, + /* 1520 */ 140, 269, 257, 195, 266, 257, 218, 219, 218, 219, + /* 1530 */ 218, 219, 36, 246, 154, 155, 156, 157, 158, 116, + /* 1540 */ 218, 219, 195, 22, 257, 49, 218, 219, 23, 195, + /* 1550 */ 25, 195, 117, 301, 195, 25, 60, 195, 195, 23, + /* 1560 */ 195, 25, 195, 183, 24, 218, 219, 130, 72, 195, + /* 1570 */ 22, 195, 218, 219, 218, 219, 195, 218, 219, 195, + /* 1580 */ 218, 219, 86, 218, 219, 218, 219, 91, 19, 20, + /* 1590 */ 153, 22, 218, 219, 218, 219, 195, 101, 195, 218, + /* 1600 */ 219, 195, 195, 107, 108, 36, 23, 195, 25, 195, + /* 1610 */ 62, 115, 195, 117, 118, 119, 195, 146, 122, 218, + /* 1620 */ 219, 218, 219, 195, 218, 219, 19, 60, 122, 60, + /* 1630 */ 218, 219, 218, 219, 195, 218, 219, 150, 132, 218, + /* 1640 */ 219, 72, 195, 23, 195, 25, 218, 219, 195, 60, + /* 1650 */ 154, 155, 156, 157, 158, 86, 23, 195, 25, 195, + /* 1660 */ 91, 19, 20, 142, 22, 218, 219, 218, 219, 130, + /* 1670 */ 101, 218, 219, 143, 121, 122, 107, 108, 36, 183, + /* 1680 */ 218, 219, 142, 60, 115, 118, 117, 118, 119, 7, + /* 1690 */ 8, 122, 153, 23, 23, 25, 25, 23, 23, 25, + /* 1700 */ 25, 23, 60, 25, 23, 98, 25, 118, 84, 85, + /* 1710 */ 23, 23, 25, 25, 72, 154, 23, 156, 25, 23, + /* 1720 */ 228, 25, 195, 154, 155, 156, 157, 158, 86, 195, + /* 1730 */ 195, 258, 195, 91, 291, 322, 195, 195, 195, 195, + /* 1740 */ 195, 118, 195, 101, 195, 195, 195, 195, 238, 107, + /* 1750 */ 108, 195, 183, 195, 195, 195, 290, 115, 195, 117, + /* 1760 */ 118, 119, 244, 195, 122, 195, 195, 195, 195, 195, + /* 1770 */ 195, 258, 258, 258, 258, 193, 245, 300, 216, 274, + /* 1780 */ 247, 270, 270, 274, 296, 296, 248, 222, 262, 198, + /* 1790 */ 262, 274, 61, 274, 248, 231, 154, 155, 156, 157, + /* 1800 */ 158, 0, 1, 2, 247, 227, 5, 221, 221, 221, + /* 1810 */ 142, 10, 11, 12, 13, 14, 262, 262, 17, 202, + /* 1820 */ 300, 19, 20, 300, 22, 183, 247, 251, 251, 245, + /* 1830 */ 202, 30, 38, 32, 202, 152, 151, 22, 36, 43, + /* 1840 */ 236, 40, 18, 202, 239, 239, 18, 239, 239, 283, + /* 1850 */ 201, 150, 236, 202, 236, 201, 159, 202, 248, 248, + /* 1860 */ 248, 248, 60, 63, 201, 275, 273, 275, 273, 275, + /* 1870 */ 22, 286, 71, 223, 72, 202, 223, 297, 297, 202, + /* 1880 */ 79, 201, 116, 82, 220, 201, 220, 220, 65, 293, + /* 1890 */ 292, 229, 22, 166, 127, 226, 24, 114, 226, 223, + /* 1900 */ 99, 222, 202, 101, 285, 92, 220, 308, 83, 107, + /* 1910 */ 108, 220, 220, 316, 220, 285, 268, 115, 229, 117, + /* 1920 */ 118, 119, 223, 321, 122, 268, 149, 146, 22, 19, + /* 1930 */ 20, 202, 22, 159, 282, 134, 321, 148, 280, 147, + /* 1940 */ 139, 140, 252, 141, 25, 204, 36, 252, 13, 251, + /* 1950 */ 196, 248, 250, 249, 196, 6, 154, 155, 156, 157, + /* 1960 */ 158, 209, 194, 194, 163, 194, 306, 306, 303, 224, + /* 1970 */ 60, 215, 215, 209, 215, 215, 215, 224, 216, 216, + /* 1980 */ 4, 209, 72, 3, 22, 183, 164, 15, 23, 16, + /* 1990 */ 23, 140, 152, 131, 25, 24, 143, 20, 16, 145, + /* 2000 */ 1, 143, 131, 62, 131, 37, 54, 152, 54, 54, + /* 2010 */ 54, 101, 131, 117, 1, 34, 142, 107, 108, 5, + /* 2020 */ 22, 116, 162, 76, 41, 115, 69, 117, 118, 119, + /* 2030 */ 1, 2, 122, 25, 5, 69, 142, 116, 20, 10, /* 2040 */ 11, 12, 13, 14, 24, 19, 17, 132, 5, 126, /* 2050 */ 22, 141, 68, 10, 11, 12, 13, 14, 22, 30, /* 2060 */ 17, 32, 22, 22, 154, 155, 156, 157, 158, 40, /* 2070 */ 23, 68, 60, 30, 24, 32, 97, 28, 22, 68, /* 2080 */ 23, 37, 34, 40, 150, 22, 25, 23, 23, 23, - /* 2090 */ 22, 98, 23, 183, 23, 117, 34, 22, 25, 89, - /* 2100 */ 71, 142, 144, 76, 34, 23, 34, 76, 79, 87, - /* 2110 */ 34, 82, 34, 94, 71, 34, 22, 24, 44, 34, - /* 2120 */ 25, 25, 79, 23, 23, 82, 143, 23, 99, 143, - /* 2130 */ 23, 22, 11, 25, 23, 25, 22, 22, 22, 1, - /* 2140 */ 23, 23, 99, 136, 22, 22, 142, 142, 142, 25, - /* 2150 */ 25, 23, 15, 1, 322, 322, 322, 322, 322, 322, - /* 2160 */ 322, 322, 322, 134, 322, 322, 322, 322, 139, 140, - /* 2170 */ 322, 322, 322, 322, 322, 322, 322, 134, 322, 322, - /* 2180 */ 322, 322, 139, 140, 322, 322, 322, 322, 322, 322, - /* 2190 */ 322, 322, 163, 322, 322, 322, 322, 322, 322, 322, - /* 2200 */ 322, 322, 322, 322, 322, 322, 163, 322, 322, 322, - /* 2210 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, - /* 2220 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, - /* 2230 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, - /* 2240 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, - /* 2250 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, - /* 2260 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, - /* 2270 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, - /* 2280 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, - /* 2290 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, - /* 2300 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, - /* 2310 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, - /* 2320 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, - /* 2330 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, - /* 2340 */ 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, - /* 2350 */ 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, - /* 2360 */ 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, - /* 2370 */ 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, - /* 2380 */ 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, - /* 2390 */ 186, 186, 186, + /* 2090 */ 22, 98, 142, 183, 23, 23, 34, 22, 25, 89, + /* 2100 */ 71, 34, 117, 144, 34, 22, 76, 76, 79, 87, + /* 2110 */ 34, 82, 34, 44, 71, 94, 34, 23, 25, 24, + /* 2120 */ 34, 25, 79, 23, 23, 82, 23, 23, 99, 143, + /* 2130 */ 143, 22, 25, 25, 23, 22, 11, 22, 22, 25, + /* 2140 */ 23, 23, 99, 22, 22, 136, 142, 142, 142, 25, + /* 2150 */ 23, 15, 1, 1, 323, 323, 323, 323, 323, 323, + /* 2160 */ 323, 323, 323, 134, 323, 323, 323, 323, 139, 140, + /* 2170 */ 323, 323, 323, 323, 323, 323, 323, 134, 323, 323, + /* 2180 */ 323, 323, 139, 140, 323, 323, 323, 323, 323, 323, + /* 2190 */ 323, 323, 163, 323, 323, 323, 323, 323, 323, 323, + /* 2200 */ 323, 323, 323, 323, 323, 323, 163, 323, 323, 323, + /* 2210 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, + /* 2220 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, + /* 2230 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, + /* 2240 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, + /* 2250 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, + /* 2260 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, + /* 2270 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, + /* 2280 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, + /* 2290 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, + /* 2300 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, + /* 2310 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, + /* 2320 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, + /* 2330 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, + /* 2340 */ 323, 187, 187, 187, 187, 187, 187, 187, 187, 187, + /* 2350 */ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + /* 2360 */ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + /* 2370 */ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + /* 2380 */ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + /* 2390 */ 187, 187, 187, 187, }; #define YY_SHIFT_COUNT (582) #define YY_SHIFT_MIN (0) #define YY_SHIFT_MAX (2152) static const unsigned short int yy_shift_ofst[] = { - /* 0 */ 2029, 1801, 2043, 1380, 1380, 33, 391, 1496, 1569, 1642, - /* 10 */ 702, 702, 702, 193, 33, 33, 33, 33, 33, 0, + /* 0 */ 2029, 1801, 2043, 1380, 1380, 318, 271, 1496, 1569, 1642, + /* 10 */ 702, 702, 702, 740, 318, 318, 318, 318, 318, 0, /* 20 */ 0, 216, 1177, 702, 702, 702, 702, 702, 702, 702, - /* 30 */ 702, 702, 702, 702, 702, 702, 702, 702, 406, 406, - /* 40 */ 111, 111, 218, 447, 547, 598, 598, 260, 260, 260, - /* 50 */ 260, 40, 112, 320, 340, 445, 489, 593, 637, 741, + /* 30 */ 702, 702, 702, 702, 702, 702, 702, 702, 503, 503, + /* 40 */ 111, 111, 217, 287, 348, 610, 610, 736, 736, 736, + /* 50 */ 736, 40, 112, 320, 340, 445, 489, 593, 637, 741, /* 60 */ 785, 889, 909, 1023, 1043, 1157, 1177, 1177, 1177, 1177, /* 70 */ 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, /* 80 */ 1177, 1177, 1177, 1177, 1197, 1177, 1301, 1321, 1321, 554, @@ -174901,97 +175310,97 @@ static const unsigned short int yy_shift_ofst[] = { /* 120 */ 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, /* 130 */ 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, /* 140 */ 702, 702, 138, 198, 198, 198, 198, 198, 198, 198, - /* 150 */ 183, 99, 236, 292, 598, 793, 167, 598, 598, 880, - /* 160 */ 880, 598, 857, 150, 195, 195, 195, 264, 113, 113, - /* 170 */ 2207, 2207, 854, 854, 854, 751, 765, 765, 765, 765, - /* 180 */ 1096, 1096, 725, 292, 882, 904, 598, 598, 598, 598, - /* 190 */ 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, - /* 200 */ 598, 598, 598, 598, 598, 1273, 1032, 1032, 598, 147, - /* 210 */ 1098, 1098, 603, 603, 1276, 1276, 363, 2207, 2207, 2207, - /* 220 */ 2207, 2207, 2207, 2207, 469, 617, 617, 801, 336, 461, - /* 230 */ 804, 864, 615, 891, 913, 598, 598, 598, 598, 598, - /* 240 */ 598, 598, 598, 598, 598, 653, 598, 598, 598, 598, - /* 250 */ 598, 598, 598, 598, 598, 598, 598, 598, 1105, 1105, - /* 260 */ 1105, 598, 598, 598, 1194, 598, 598, 598, 1215, 1249, - /* 270 */ 598, 1353, 598, 598, 598, 598, 598, 598, 598, 598, - /* 280 */ 677, 449, 902, 1338, 1338, 1338, 1338, 1248, 902, 902, - /* 290 */ 326, 1151, 1047, 755, 749, 1371, 960, 1371, 1007, 1162, - /* 300 */ 749, 749, 1162, 749, 960, 1007, 1274, 738, 215, 1300, - /* 310 */ 1300, 1300, 1395, 1395, 1395, 1395, 1368, 1368, 1033, 1414, - /* 320 */ 1387, 1361, 1759, 1759, 1685, 1685, 1792, 1792, 1685, 1683, - /* 330 */ 1686, 1814, 1797, 1825, 1825, 1825, 1825, 1685, 1836, 1707, - /* 340 */ 1686, 1686, 1707, 1814, 1797, 1707, 1797, 1707, 1685, 1836, - /* 350 */ 1710, 1807, 1685, 1836, 1854, 1685, 1836, 1685, 1836, 1854, - /* 360 */ 1769, 1769, 1769, 1822, 1870, 1870, 1854, 1769, 1766, 1769, - /* 370 */ 1822, 1769, 1769, 1729, 1873, 1785, 1785, 1854, 1685, 1823, - /* 380 */ 1823, 1840, 1840, 1778, 1782, 1909, 1685, 1779, 1778, 1789, - /* 390 */ 1800, 1707, 1919, 1939, 1939, 1948, 1948, 1948, 2207, 2207, + /* 150 */ 183, 99, 169, 549, 610, 151, 542, 610, 610, 1017, + /* 160 */ 1017, 610, 1001, 350, 464, 464, 464, 586, 1, 1, + /* 170 */ 2207, 2207, 854, 854, 854, 465, 694, 694, 694, 694, + /* 180 */ 1096, 1096, 825, 549, 847, 904, 610, 610, 610, 610, + /* 190 */ 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, + /* 200 */ 610, 610, 610, 610, 610, 488, 947, 947, 610, 1129, + /* 210 */ 495, 495, 1139, 1139, 967, 967, 1173, 2207, 2207, 2207, + /* 220 */ 2207, 2207, 2207, 2207, 617, 765, 765, 697, 444, 708, + /* 230 */ 660, 745, 510, 663, 864, 610, 610, 610, 610, 610, + /* 240 */ 610, 610, 610, 610, 610, 188, 610, 610, 610, 610, + /* 250 */ 610, 610, 610, 610, 610, 610, 610, 610, 839, 839, + /* 260 */ 839, 610, 610, 610, 1155, 610, 610, 610, 1119, 1247, + /* 270 */ 610, 1353, 610, 610, 610, 610, 610, 610, 610, 610, + /* 280 */ 1063, 494, 1101, 291, 291, 291, 291, 1319, 1101, 1101, + /* 290 */ 775, 1221, 1375, 1452, 667, 1341, 1198, 1341, 1435, 1487, + /* 300 */ 667, 667, 1487, 667, 1198, 1435, 777, 1011, 1423, 584, + /* 310 */ 584, 584, 1273, 1273, 1273, 1273, 1471, 1471, 880, 1530, + /* 320 */ 1190, 1095, 1731, 1731, 1668, 1668, 1794, 1794, 1668, 1683, + /* 330 */ 1685, 1815, 1796, 1824, 1824, 1824, 1824, 1668, 1828, 1701, + /* 340 */ 1685, 1685, 1701, 1815, 1796, 1701, 1796, 1701, 1668, 1828, + /* 350 */ 1697, 1800, 1668, 1828, 1848, 1668, 1828, 1668, 1828, 1848, + /* 360 */ 1766, 1766, 1766, 1823, 1870, 1870, 1848, 1766, 1767, 1766, + /* 370 */ 1823, 1766, 1766, 1727, 1872, 1783, 1783, 1848, 1668, 1813, + /* 380 */ 1813, 1825, 1825, 1777, 1781, 1906, 1668, 1774, 1777, 1789, + /* 390 */ 1792, 1701, 1919, 1935, 1935, 1949, 1949, 1949, 2207, 2207, /* 400 */ 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, - /* 410 */ 2207, 2207, 2207, 69, 1037, 79, 1088, 651, 1196, 1415, - /* 420 */ 1501, 1439, 1369, 1452, 911, 1211, 1524, 1469, 1551, 1567, - /* 430 */ 1570, 1624, 1640, 1644, 1499, 1440, 1572, 1464, 1597, 275, - /* 440 */ 782, 1586, 1648, 1678, 1553, 1682, 1687, 1388, 1502, 1696, - /* 450 */ 1706, 1588, 1486, 1971, 1975, 1957, 1820, 1972, 1973, 1965, - /* 460 */ 1967, 1851, 1841, 1861, 1969, 1969, 1974, 1852, 1976, 1855, - /* 470 */ 1981, 1998, 1858, 1871, 1969, 1872, 1942, 1968, 1969, 1856, - /* 480 */ 1952, 1953, 1955, 1956, 1881, 1896, 1980, 1874, 2014, 2015, - /* 490 */ 1997, 1905, 1860, 1954, 1999, 1964, 1950, 1994, 1894, 1921, + /* 410 */ 2207, 2207, 2207, 69, 1032, 79, 357, 1377, 1206, 400, + /* 420 */ 1525, 835, 332, 1540, 1437, 1539, 1536, 1548, 1583, 1620, + /* 430 */ 1633, 1670, 1671, 1674, 1567, 1553, 1682, 1506, 1675, 1358, + /* 440 */ 1607, 1589, 1678, 1681, 1624, 1687, 1688, 1283, 1561, 1693, + /* 450 */ 1696, 1623, 1521, 1976, 1980, 1962, 1822, 1972, 1973, 1965, + /* 460 */ 1967, 1851, 1840, 1862, 1969, 1969, 1971, 1853, 1977, 1854, + /* 470 */ 1982, 1999, 1858, 1871, 1969, 1873, 1941, 1968, 1969, 1855, + /* 480 */ 1952, 1954, 1955, 1956, 1881, 1896, 1981, 1874, 2013, 2014, + /* 490 */ 1998, 1905, 1860, 1957, 2008, 1966, 1947, 1983, 1894, 1921, /* 500 */ 2020, 2018, 2026, 1915, 1923, 2028, 1984, 2036, 2040, 2047, /* 510 */ 2041, 2003, 2012, 2050, 1979, 2049, 2056, 2011, 2044, 2057, - /* 520 */ 2048, 1934, 2063, 2064, 2065, 2061, 2066, 2068, 1993, 1959, - /* 530 */ 2069, 2071, 1978, 2062, 2075, 1958, 2073, 2070, 2072, 2076, - /* 540 */ 2078, 2010, 2027, 2022, 2074, 2031, 2019, 2081, 2082, 2094, - /* 550 */ 2093, 2095, 2096, 2085, 1983, 1986, 2100, 2073, 2101, 2104, - /* 560 */ 2107, 2109, 2108, 2110, 2111, 2114, 2121, 2115, 2116, 2117, - /* 570 */ 2118, 2122, 2123, 2124, 2007, 2004, 2005, 2006, 2125, 2128, - /* 580 */ 2137, 2138, 2152, + /* 520 */ 2048, 1934, 2063, 2064, 2065, 2061, 2066, 2068, 1993, 1950, + /* 530 */ 2071, 2072, 1985, 2062, 2075, 1959, 2073, 2067, 2070, 2076, + /* 540 */ 2078, 2010, 2030, 2022, 2069, 2031, 2021, 2082, 2094, 2083, + /* 550 */ 2095, 2093, 2096, 2086, 1986, 1987, 2100, 2073, 2101, 2103, + /* 560 */ 2104, 2109, 2107, 2108, 2111, 2113, 2125, 2115, 2116, 2117, + /* 570 */ 2118, 2121, 2122, 2114, 2009, 2004, 2005, 2006, 2124, 2127, + /* 580 */ 2136, 2151, 2152, }; #define YY_REDUCE_COUNT (412) -#define YY_REDUCE_MIN (-276) -#define YY_REDUCE_MAX (1775) +#define YY_REDUCE_MIN (-277) +#define YY_REDUCE_MAX (1772) static const short yy_reduce_ofst[] = { - /* 0 */ -66, 217, -63, -177, -180, 161, 364, 64, -183, 162, - /* 10 */ 223, 367, 414, -173, 473, 514, 525, 622, 626, -207, - /* 20 */ 351, -276, -38, 693, 811, 831, 833, 888, -188, 945, - /* 30 */ 947, 416, 558, 951, 867, 287, 1078, 1080, -186, 224, - /* 40 */ -132, 42, 964, 269, 417, 796, 810, -237, -231, -237, - /* 50 */ -231, -45, -45, -45, -45, -45, -45, -45, -45, -45, - /* 60 */ -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, - /* 70 */ -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, - /* 80 */ -45, -45, -45, -45, -45, -45, -45, -45, -45, 895, - /* 90 */ 925, 967, 980, 1100, 1143, 1169, 1203, 1225, 1228, 1242, - /* 100 */ 1247, 1250, 1253, 1255, 1261, 1267, 1272, 1275, 1283, 1286, - /* 110 */ 1288, 1292, 1333, 1335, 1347, 1349, 1352, 1354, 1360, 1366, - /* 120 */ 1381, 1391, 1406, 1408, 1413, 1416, 1418, 1422, 1425, 1427, - /* 130 */ 1463, 1465, 1472, 1478, 1480, 1491, 1498, 1500, 1517, 1519, - /* 140 */ 1528, 1536, -45, -45, -45, -45, -45, -45, -45, -45, - /* 150 */ -45, -45, -45, 312, -158, 285, -219, 9, 166, 370, - /* 160 */ 545, 707, -45, 930, 601, 963, 1067, 792, -45, -45, - /* 170 */ -45, -45, -204, -204, -204, 369, -171, -129, 632, 678, - /* 180 */ 202, 352, -270, 412, 627, 627, -9, 122, 415, 419, - /* 190 */ -56, 248, 583, 920, 6, 261, 459, 795, 1049, 813, - /* 200 */ 1062, 1082, -161, 778, 1063, 797, 870, 1003, 1128, 443, - /* 210 */ 1031, 1072, 1191, 1192, 957, 1120, 105, 1149, 523, 933, - /* 220 */ 1218, 1238, 1254, 1251, -138, 96, 117, 146, 181, 277, - /* 230 */ 280, 421, 480, 712, 830, 850, 1085, 1099, 1129, 1209, - /* 240 */ 1323, 1331, 1336, 1364, 1407, 368, 1412, 1433, 1438, 1474, - /* 250 */ 1481, 1505, 1506, 1526, 1538, 1544, 1545, 1546, 722, 764, - /* 260 */ 856, 1547, 1548, 1550, 1188, 1554, 1557, 1561, 1298, 1260, - /* 270 */ 1562, 1456, 1564, 280, 1568, 1571, 1573, 1574, 1575, 1576, - /* 280 */ 1457, 1477, 1520, 1514, 1515, 1516, 1518, 1188, 1520, 1520, - /* 290 */ 1530, 1563, 1584, 1482, 1504, 1510, 1534, 1513, 1488, 1537, - /* 300 */ 1512, 1521, 1539, 1522, 1541, 1493, 1583, 1559, 1565, 1585, - /* 310 */ 1587, 1589, 1529, 1531, 1532, 1549, 1558, 1566, 1535, 1577, - /* 320 */ 1582, 1622, 1533, 1540, 1627, 1628, 1552, 1555, 1633, 1560, - /* 330 */ 1578, 1581, 1607, 1606, 1608, 1609, 1611, 1649, 1655, 1612, - /* 340 */ 1590, 1591, 1613, 1594, 1621, 1614, 1623, 1616, 1666, 1668, - /* 350 */ 1579, 1593, 1672, 1675, 1656, 1676, 1679, 1680, 1688, 1660, - /* 360 */ 1667, 1670, 1671, 1663, 1669, 1673, 1674, 1689, 1681, 1692, - /* 370 */ 1677, 1693, 1694, 1592, 1599, 1617, 1620, 1700, 1713, 1596, - /* 380 */ 1598, 1658, 1659, 1691, 1684, 1654, 1735, 1664, 1697, 1690, - /* 390 */ 1701, 1703, 1748, 1758, 1760, 1768, 1770, 1772, 1657, 1661, - /* 400 */ 1665, 1761, 1754, 1757, 1762, 1763, 1764, 1750, 1751, 1765, - /* 410 */ 1771, 1767, 1775, + /* 0 */ -67, 1252, -64, -178, -181, 160, 1071, 143, -184, 137, + /* 10 */ 218, 220, 222, -174, 229, 268, 272, 275, 324, -208, + /* 20 */ 242, -277, -39, 81, 537, 792, 810, 812, -189, 814, + /* 30 */ 831, 163, 865, 944, 887, 840, 964, 1077, -187, 292, + /* 40 */ -133, 274, 673, 558, 682, 795, 809, -238, -232, -238, + /* 50 */ -232, 329, 329, 329, 329, 329, 329, 329, 329, 329, + /* 60 */ 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + /* 70 */ 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + /* 80 */ 329, 329, 329, 329, 329, 329, 329, 329, 329, 557, + /* 90 */ 712, 949, 966, 969, 971, 979, 1097, 1099, 1103, 1142, + /* 100 */ 1144, 1169, 1172, 1201, 1203, 1228, 1241, 1250, 1253, 1255, + /* 110 */ 1261, 1266, 1271, 1282, 1291, 1308, 1310, 1312, 1322, 1328, + /* 120 */ 1347, 1354, 1356, 1359, 1362, 1365, 1367, 1374, 1376, 1381, + /* 130 */ 1401, 1403, 1406, 1412, 1414, 1417, 1421, 1428, 1447, 1449, + /* 140 */ 1453, 1462, 329, 329, 329, 329, 329, 329, 329, 329, + /* 150 */ 329, 329, 329, -22, -159, 475, -220, 756, 38, 501, + /* 160 */ 841, 714, 329, 118, 337, 349, 363, -56, 329, 329, + /* 170 */ 329, 329, -205, -205, -205, 687, -172, -130, -57, 790, + /* 180 */ 397, 528, -271, 136, 596, 596, 90, 316, 522, 541, + /* 190 */ -37, 715, 849, 977, 628, 856, 980, 991, 1081, 1102, + /* 200 */ 1135, 1083, -162, 208, 1258, 794, -86, 159, 41, 1109, + /* 210 */ 671, 852, 844, 932, 1175, 1254, 480, 1180, 100, 258, + /* 220 */ 1265, 1268, 1216, 1287, -139, 317, 344, 63, 339, 423, + /* 230 */ 563, 636, 676, 813, 908, 914, 950, 1078, 1084, 1098, + /* 240 */ 1363, 1384, 1407, 1439, 1464, 411, 1527, 1534, 1535, 1537, + /* 250 */ 1541, 1542, 1543, 1544, 1545, 1547, 1549, 1550, 990, 1164, + /* 260 */ 1492, 1551, 1552, 1556, 1217, 1558, 1559, 1560, 1473, 1413, + /* 270 */ 1563, 1510, 1568, 563, 1570, 1571, 1572, 1573, 1574, 1575, + /* 280 */ 1443, 1466, 1518, 1513, 1514, 1515, 1516, 1217, 1518, 1518, + /* 290 */ 1531, 1562, 1582, 1477, 1505, 1511, 1533, 1512, 1488, 1538, + /* 300 */ 1509, 1517, 1546, 1519, 1557, 1489, 1565, 1564, 1578, 1586, + /* 310 */ 1587, 1588, 1526, 1528, 1554, 1555, 1576, 1577, 1566, 1579, + /* 320 */ 1584, 1591, 1520, 1523, 1617, 1628, 1580, 1581, 1632, 1585, + /* 330 */ 1590, 1593, 1604, 1605, 1606, 1608, 1609, 1641, 1649, 1610, + /* 340 */ 1592, 1594, 1611, 1595, 1616, 1612, 1618, 1613, 1651, 1654, + /* 350 */ 1596, 1598, 1655, 1663, 1650, 1673, 1680, 1677, 1684, 1653, + /* 360 */ 1664, 1666, 1667, 1662, 1669, 1672, 1676, 1686, 1679, 1691, + /* 370 */ 1689, 1692, 1694, 1597, 1599, 1619, 1630, 1699, 1700, 1602, + /* 380 */ 1615, 1648, 1657, 1690, 1698, 1658, 1729, 1652, 1695, 1702, + /* 390 */ 1704, 1703, 1741, 1754, 1758, 1768, 1769, 1771, 1660, 1661, + /* 400 */ 1665, 1752, 1756, 1757, 1759, 1760, 1764, 1745, 1753, 1762, + /* 410 */ 1763, 1761, 1772, }; static const YYACTIONTYPE yy_default[] = { /* 0 */ 1663, 1663, 1663, 1491, 1254, 1367, 1254, 1254, 1254, 1254, @@ -175257,6 +175666,7 @@ static const YYCODETYPE yyFallback[] = { 0, /* ERROR => nothing */ 0, /* QNUMBER => nothing */ 0, /* SPACE => nothing */ + 0, /* COMMENT => nothing */ 0, /* ILLEGAL => nothing */ }; #endif /* YYFALLBACK */ @@ -175526,143 +175936,144 @@ static const char *const yyTokenName[] = { /* 182 */ "ERROR", /* 183 */ "QNUMBER", /* 184 */ "SPACE", - /* 185 */ "ILLEGAL", - /* 186 */ "input", - /* 187 */ "cmdlist", - /* 188 */ "ecmd", - /* 189 */ "cmdx", - /* 190 */ "explain", - /* 191 */ "cmd", - /* 192 */ "transtype", - /* 193 */ "trans_opt", - /* 194 */ "nm", - /* 195 */ "savepoint_opt", - /* 196 */ "create_table", - /* 197 */ "create_table_args", - /* 198 */ "createkw", - /* 199 */ "temp", - /* 200 */ "ifnotexists", - /* 201 */ "dbnm", - /* 202 */ "columnlist", - /* 203 */ "conslist_opt", - /* 204 */ "table_option_set", - /* 205 */ "select", - /* 206 */ "table_option", - /* 207 */ "columnname", - /* 208 */ "carglist", - /* 209 */ "typetoken", - /* 210 */ "typename", - /* 211 */ "signed", - /* 212 */ "plus_num", - /* 213 */ "minus_num", - /* 214 */ "scanpt", - /* 215 */ "scantok", - /* 216 */ "ccons", - /* 217 */ "term", - /* 218 */ "expr", - /* 219 */ "onconf", - /* 220 */ "sortorder", - /* 221 */ "autoinc", - /* 222 */ "eidlist_opt", - /* 223 */ "refargs", - /* 224 */ "defer_subclause", - /* 225 */ "generated", - /* 226 */ "refarg", - /* 227 */ "refact", - /* 228 */ "init_deferred_pred_opt", - /* 229 */ "conslist", - /* 230 */ "tconscomma", - /* 231 */ "tcons", - /* 232 */ "sortlist", - /* 233 */ "eidlist", - /* 234 */ "defer_subclause_opt", - /* 235 */ "orconf", - /* 236 */ "resolvetype", - /* 237 */ "raisetype", - /* 238 */ "ifexists", - /* 239 */ "fullname", - /* 240 */ "selectnowith", - /* 241 */ "oneselect", - /* 242 */ "wqlist", - /* 243 */ "multiselect_op", - /* 244 */ "distinct", - /* 245 */ "selcollist", - /* 246 */ "from", - /* 247 */ "where_opt", - /* 248 */ "groupby_opt", - /* 249 */ "having_opt", - /* 250 */ "orderby_opt", - /* 251 */ "limit_opt", - /* 252 */ "window_clause", - /* 253 */ "values", - /* 254 */ "nexprlist", - /* 255 */ "mvalues", - /* 256 */ "sclp", - /* 257 */ "as", - /* 258 */ "seltablist", - /* 259 */ "stl_prefix", - /* 260 */ "joinop", - /* 261 */ "on_using", - /* 262 */ "indexed_by", - /* 263 */ "exprlist", - /* 264 */ "xfullname", - /* 265 */ "idlist", - /* 266 */ "indexed_opt", - /* 267 */ "nulls", - /* 268 */ "with", - /* 269 */ "where_opt_ret", - /* 270 */ "setlist", - /* 271 */ "insert_cmd", - /* 272 */ "idlist_opt", - /* 273 */ "upsert", - /* 274 */ "returning", - /* 275 */ "filter_over", - /* 276 */ "likeop", - /* 277 */ "between_op", - /* 278 */ "in_op", - /* 279 */ "paren_exprlist", - /* 280 */ "case_operand", - /* 281 */ "case_exprlist", - /* 282 */ "case_else", - /* 283 */ "uniqueflag", - /* 284 */ "collate", - /* 285 */ "vinto", - /* 286 */ "nmnum", - /* 287 */ "trigger_decl", - /* 288 */ "trigger_cmd_list", - /* 289 */ "trigger_time", - /* 290 */ "trigger_event", - /* 291 */ "foreach_clause", - /* 292 */ "when_clause", - /* 293 */ "trigger_cmd", - /* 294 */ "trnm", - /* 295 */ "tridxby", - /* 296 */ "database_kw_opt", - /* 297 */ "key_opt", - /* 298 */ "add_column_fullname", - /* 299 */ "kwcolumn_opt", - /* 300 */ "create_vtab", - /* 301 */ "vtabarglist", - /* 302 */ "vtabarg", - /* 303 */ "vtabargtoken", - /* 304 */ "lp", - /* 305 */ "anylist", - /* 306 */ "wqitem", - /* 307 */ "wqas", - /* 308 */ "withnm", - /* 309 */ "windowdefn_list", - /* 310 */ "windowdefn", - /* 311 */ "window", - /* 312 */ "frame_opt", - /* 313 */ "part_opt", - /* 314 */ "filter_clause", - /* 315 */ "over_clause", - /* 316 */ "range_or_rows", - /* 317 */ "frame_bound", - /* 318 */ "frame_bound_s", - /* 319 */ "frame_bound_e", - /* 320 */ "frame_exclude_opt", - /* 321 */ "frame_exclude", + /* 185 */ "COMMENT", + /* 186 */ "ILLEGAL", + /* 187 */ "input", + /* 188 */ "cmdlist", + /* 189 */ "ecmd", + /* 190 */ "cmdx", + /* 191 */ "explain", + /* 192 */ "cmd", + /* 193 */ "transtype", + /* 194 */ "trans_opt", + /* 195 */ "nm", + /* 196 */ "savepoint_opt", + /* 197 */ "create_table", + /* 198 */ "create_table_args", + /* 199 */ "createkw", + /* 200 */ "temp", + /* 201 */ "ifnotexists", + /* 202 */ "dbnm", + /* 203 */ "columnlist", + /* 204 */ "conslist_opt", + /* 205 */ "table_option_set", + /* 206 */ "select", + /* 207 */ "table_option", + /* 208 */ "columnname", + /* 209 */ "carglist", + /* 210 */ "typetoken", + /* 211 */ "typename", + /* 212 */ "signed", + /* 213 */ "plus_num", + /* 214 */ "minus_num", + /* 215 */ "scanpt", + /* 216 */ "scantok", + /* 217 */ "ccons", + /* 218 */ "term", + /* 219 */ "expr", + /* 220 */ "onconf", + /* 221 */ "sortorder", + /* 222 */ "autoinc", + /* 223 */ "eidlist_opt", + /* 224 */ "refargs", + /* 225 */ "defer_subclause", + /* 226 */ "generated", + /* 227 */ "refarg", + /* 228 */ "refact", + /* 229 */ "init_deferred_pred_opt", + /* 230 */ "conslist", + /* 231 */ "tconscomma", + /* 232 */ "tcons", + /* 233 */ "sortlist", + /* 234 */ "eidlist", + /* 235 */ "defer_subclause_opt", + /* 236 */ "orconf", + /* 237 */ "resolvetype", + /* 238 */ "raisetype", + /* 239 */ "ifexists", + /* 240 */ "fullname", + /* 241 */ "selectnowith", + /* 242 */ "oneselect", + /* 243 */ "wqlist", + /* 244 */ "multiselect_op", + /* 245 */ "distinct", + /* 246 */ "selcollist", + /* 247 */ "from", + /* 248 */ "where_opt", + /* 249 */ "groupby_opt", + /* 250 */ "having_opt", + /* 251 */ "orderby_opt", + /* 252 */ "limit_opt", + /* 253 */ "window_clause", + /* 254 */ "values", + /* 255 */ "nexprlist", + /* 256 */ "mvalues", + /* 257 */ "sclp", + /* 258 */ "as", + /* 259 */ "seltablist", + /* 260 */ "stl_prefix", + /* 261 */ "joinop", + /* 262 */ "on_using", + /* 263 */ "indexed_by", + /* 264 */ "exprlist", + /* 265 */ "xfullname", + /* 266 */ "idlist", + /* 267 */ "indexed_opt", + /* 268 */ "nulls", + /* 269 */ "with", + /* 270 */ "where_opt_ret", + /* 271 */ "setlist", + /* 272 */ "insert_cmd", + /* 273 */ "idlist_opt", + /* 274 */ "upsert", + /* 275 */ "returning", + /* 276 */ "filter_over", + /* 277 */ "likeop", + /* 278 */ "between_op", + /* 279 */ "in_op", + /* 280 */ "paren_exprlist", + /* 281 */ "case_operand", + /* 282 */ "case_exprlist", + /* 283 */ "case_else", + /* 284 */ "uniqueflag", + /* 285 */ "collate", + /* 286 */ "vinto", + /* 287 */ "nmnum", + /* 288 */ "trigger_decl", + /* 289 */ "trigger_cmd_list", + /* 290 */ "trigger_time", + /* 291 */ "trigger_event", + /* 292 */ "foreach_clause", + /* 293 */ "when_clause", + /* 294 */ "trigger_cmd", + /* 295 */ "trnm", + /* 296 */ "tridxby", + /* 297 */ "database_kw_opt", + /* 298 */ "key_opt", + /* 299 */ "add_column_fullname", + /* 300 */ "kwcolumn_opt", + /* 301 */ "create_vtab", + /* 302 */ "vtabarglist", + /* 303 */ "vtabarg", + /* 304 */ "vtabargtoken", + /* 305 */ "lp", + /* 306 */ "anylist", + /* 307 */ "wqitem", + /* 308 */ "wqas", + /* 309 */ "withnm", + /* 310 */ "windowdefn_list", + /* 311 */ "windowdefn", + /* 312 */ "window", + /* 313 */ "frame_opt", + /* 314 */ "part_opt", + /* 315 */ "filter_clause", + /* 316 */ "over_clause", + /* 317 */ "range_or_rows", + /* 318 */ "frame_bound", + /* 319 */ "frame_bound_s", + /* 320 */ "frame_bound_e", + /* 321 */ "frame_exclude_opt", + /* 322 */ "frame_exclude", }; #endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */ @@ -176202,98 +176613,98 @@ static void yy_destructor( ** inside the C code. */ /********* Begin destructor definitions ***************************************/ - case 205: /* select */ - case 240: /* selectnowith */ - case 241: /* oneselect */ - case 253: /* values */ - case 255: /* mvalues */ + case 206: /* select */ + case 241: /* selectnowith */ + case 242: /* oneselect */ + case 254: /* values */ + case 256: /* mvalues */ { -sqlite3SelectDelete(pParse->db, (yypminor->yy555)); -} - break; - case 217: /* term */ - case 218: /* expr */ - case 247: /* where_opt */ - case 249: /* having_opt */ - case 269: /* where_opt_ret */ - case 280: /* case_operand */ - case 282: /* case_else */ - case 285: /* vinto */ - case 292: /* when_clause */ - case 297: /* key_opt */ - case 314: /* filter_clause */ +sqlite3SelectDelete(pParse->db, (yypminor->yy637)); +} + break; + case 218: /* term */ + case 219: /* expr */ + case 248: /* where_opt */ + case 250: /* having_opt */ + case 270: /* where_opt_ret */ + case 281: /* case_operand */ + case 283: /* case_else */ + case 286: /* vinto */ + case 293: /* when_clause */ + case 298: /* key_opt */ + case 315: /* filter_clause */ { -sqlite3ExprDelete(pParse->db, (yypminor->yy454)); -} - break; - case 222: /* eidlist_opt */ - case 232: /* sortlist */ - case 233: /* eidlist */ - case 245: /* selcollist */ - case 248: /* groupby_opt */ - case 250: /* orderby_opt */ - case 254: /* nexprlist */ - case 256: /* sclp */ - case 263: /* exprlist */ - case 270: /* setlist */ - case 279: /* paren_exprlist */ - case 281: /* case_exprlist */ - case 313: /* part_opt */ +sqlite3ExprDelete(pParse->db, (yypminor->yy590)); +} + break; + case 223: /* eidlist_opt */ + case 233: /* sortlist */ + case 234: /* eidlist */ + case 246: /* selcollist */ + case 249: /* groupby_opt */ + case 251: /* orderby_opt */ + case 255: /* nexprlist */ + case 257: /* sclp */ + case 264: /* exprlist */ + case 271: /* setlist */ + case 280: /* paren_exprlist */ + case 282: /* case_exprlist */ + case 314: /* part_opt */ { -sqlite3ExprListDelete(pParse->db, (yypminor->yy14)); +sqlite3ExprListDelete(pParse->db, (yypminor->yy402)); } break; - case 239: /* fullname */ - case 246: /* from */ - case 258: /* seltablist */ - case 259: /* stl_prefix */ - case 264: /* xfullname */ + case 240: /* fullname */ + case 247: /* from */ + case 259: /* seltablist */ + case 260: /* stl_prefix */ + case 265: /* xfullname */ { -sqlite3SrcListDelete(pParse->db, (yypminor->yy203)); +sqlite3SrcListDelete(pParse->db, (yypminor->yy563)); } break; - case 242: /* wqlist */ + case 243: /* wqlist */ { -sqlite3WithDelete(pParse->db, (yypminor->yy59)); +sqlite3WithDelete(pParse->db, (yypminor->yy125)); } break; - case 252: /* window_clause */ - case 309: /* windowdefn_list */ + case 253: /* window_clause */ + case 310: /* windowdefn_list */ { -sqlite3WindowListDelete(pParse->db, (yypminor->yy211)); +sqlite3WindowListDelete(pParse->db, (yypminor->yy483)); } break; - case 265: /* idlist */ - case 272: /* idlist_opt */ + case 266: /* idlist */ + case 273: /* idlist_opt */ { -sqlite3IdListDelete(pParse->db, (yypminor->yy132)); +sqlite3IdListDelete(pParse->db, (yypminor->yy204)); } break; - case 275: /* filter_over */ - case 310: /* windowdefn */ - case 311: /* window */ - case 312: /* frame_opt */ - case 315: /* over_clause */ + case 276: /* filter_over */ + case 311: /* windowdefn */ + case 312: /* window */ + case 313: /* frame_opt */ + case 316: /* over_clause */ { -sqlite3WindowDelete(pParse->db, (yypminor->yy211)); +sqlite3WindowDelete(pParse->db, (yypminor->yy483)); } break; - case 288: /* trigger_cmd_list */ - case 293: /* trigger_cmd */ + case 289: /* trigger_cmd_list */ + case 294: /* trigger_cmd */ { -sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy427)); +sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy319)); } break; - case 290: /* trigger_event */ + case 291: /* trigger_event */ { -sqlite3IdListDelete(pParse->db, (yypminor->yy286).b); +sqlite3IdListDelete(pParse->db, (yypminor->yy28).b); } break; - case 317: /* frame_bound */ - case 318: /* frame_bound_s */ - case 319: /* frame_bound_e */ + case 318: /* frame_bound */ + case 319: /* frame_bound_s */ + case 320: /* frame_bound_e */ { -sqlite3ExprDelete(pParse->db, (yypminor->yy509).pExpr); +sqlite3ExprDelete(pParse->db, (yypminor->yy205).pExpr); } break; /********* End destructor definitions *****************************************/ @@ -176595,415 +177006,415 @@ static void yy_shift( /* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side ** of that rule */ static const YYCODETYPE yyRuleInfoLhs[] = { - 190, /* (0) explain ::= EXPLAIN */ - 190, /* (1) explain ::= EXPLAIN QUERY PLAN */ - 189, /* (2) cmdx ::= cmd */ - 191, /* (3) cmd ::= BEGIN transtype trans_opt */ - 192, /* (4) transtype ::= */ - 192, /* (5) transtype ::= DEFERRED */ - 192, /* (6) transtype ::= IMMEDIATE */ - 192, /* (7) transtype ::= EXCLUSIVE */ - 191, /* (8) cmd ::= COMMIT|END trans_opt */ - 191, /* (9) cmd ::= ROLLBACK trans_opt */ - 191, /* (10) cmd ::= SAVEPOINT nm */ - 191, /* (11) cmd ::= RELEASE savepoint_opt nm */ - 191, /* (12) cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */ - 196, /* (13) create_table ::= createkw temp TABLE ifnotexists nm dbnm */ - 198, /* (14) createkw ::= CREATE */ - 200, /* (15) ifnotexists ::= */ - 200, /* (16) ifnotexists ::= IF NOT EXISTS */ - 199, /* (17) temp ::= TEMP */ - 199, /* (18) temp ::= */ - 197, /* (19) create_table_args ::= LP columnlist conslist_opt RP table_option_set */ - 197, /* (20) create_table_args ::= AS select */ - 204, /* (21) table_option_set ::= */ - 204, /* (22) table_option_set ::= table_option_set COMMA table_option */ - 206, /* (23) table_option ::= WITHOUT nm */ - 206, /* (24) table_option ::= nm */ - 207, /* (25) columnname ::= nm typetoken */ - 209, /* (26) typetoken ::= */ - 209, /* (27) typetoken ::= typename LP signed RP */ - 209, /* (28) typetoken ::= typename LP signed COMMA signed RP */ - 210, /* (29) typename ::= typename ID|STRING */ - 214, /* (30) scanpt ::= */ - 215, /* (31) scantok ::= */ - 216, /* (32) ccons ::= CONSTRAINT nm */ - 216, /* (33) ccons ::= DEFAULT scantok term */ - 216, /* (34) ccons ::= DEFAULT LP expr RP */ - 216, /* (35) ccons ::= DEFAULT PLUS scantok term */ - 216, /* (36) ccons ::= DEFAULT MINUS scantok term */ - 216, /* (37) ccons ::= DEFAULT scantok ID|INDEXED */ - 216, /* (38) ccons ::= NOT NULL onconf */ - 216, /* (39) ccons ::= PRIMARY KEY sortorder onconf autoinc */ - 216, /* (40) ccons ::= UNIQUE onconf */ - 216, /* (41) ccons ::= CHECK LP expr RP */ - 216, /* (42) ccons ::= REFERENCES nm eidlist_opt refargs */ - 216, /* (43) ccons ::= defer_subclause */ - 216, /* (44) ccons ::= COLLATE ID|STRING */ - 225, /* (45) generated ::= LP expr RP */ - 225, /* (46) generated ::= LP expr RP ID */ - 221, /* (47) autoinc ::= */ - 221, /* (48) autoinc ::= AUTOINCR */ - 223, /* (49) refargs ::= */ - 223, /* (50) refargs ::= refargs refarg */ - 226, /* (51) refarg ::= MATCH nm */ - 226, /* (52) refarg ::= ON INSERT refact */ - 226, /* (53) refarg ::= ON DELETE refact */ - 226, /* (54) refarg ::= ON UPDATE refact */ - 227, /* (55) refact ::= SET NULL */ - 227, /* (56) refact ::= SET DEFAULT */ - 227, /* (57) refact ::= CASCADE */ - 227, /* (58) refact ::= RESTRICT */ - 227, /* (59) refact ::= NO ACTION */ - 224, /* (60) defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ - 224, /* (61) defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ - 228, /* (62) init_deferred_pred_opt ::= */ - 228, /* (63) init_deferred_pred_opt ::= INITIALLY DEFERRED */ - 228, /* (64) init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ - 203, /* (65) conslist_opt ::= */ - 230, /* (66) tconscomma ::= COMMA */ - 231, /* (67) tcons ::= CONSTRAINT nm */ - 231, /* (68) tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ - 231, /* (69) tcons ::= UNIQUE LP sortlist RP onconf */ - 231, /* (70) tcons ::= CHECK LP expr RP onconf */ - 231, /* (71) tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ - 234, /* (72) defer_subclause_opt ::= */ - 219, /* (73) onconf ::= */ - 219, /* (74) onconf ::= ON CONFLICT resolvetype */ - 235, /* (75) orconf ::= */ - 235, /* (76) orconf ::= OR resolvetype */ - 236, /* (77) resolvetype ::= IGNORE */ - 236, /* (78) resolvetype ::= REPLACE */ - 191, /* (79) cmd ::= DROP TABLE ifexists fullname */ - 238, /* (80) ifexists ::= IF EXISTS */ - 238, /* (81) ifexists ::= */ - 191, /* (82) cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ - 191, /* (83) cmd ::= DROP VIEW ifexists fullname */ - 191, /* (84) cmd ::= select */ - 205, /* (85) select ::= WITH wqlist selectnowith */ - 205, /* (86) select ::= WITH RECURSIVE wqlist selectnowith */ - 205, /* (87) select ::= selectnowith */ - 240, /* (88) selectnowith ::= selectnowith multiselect_op oneselect */ - 243, /* (89) multiselect_op ::= UNION */ - 243, /* (90) multiselect_op ::= UNION ALL */ - 243, /* (91) multiselect_op ::= EXCEPT|INTERSECT */ - 241, /* (92) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ - 241, /* (93) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ - 253, /* (94) values ::= VALUES LP nexprlist RP */ - 241, /* (95) oneselect ::= mvalues */ - 255, /* (96) mvalues ::= values COMMA LP nexprlist RP */ - 255, /* (97) mvalues ::= mvalues COMMA LP nexprlist RP */ - 244, /* (98) distinct ::= DISTINCT */ - 244, /* (99) distinct ::= ALL */ - 244, /* (100) distinct ::= */ - 256, /* (101) sclp ::= */ - 245, /* (102) selcollist ::= sclp scanpt expr scanpt as */ - 245, /* (103) selcollist ::= sclp scanpt STAR */ - 245, /* (104) selcollist ::= sclp scanpt nm DOT STAR */ - 257, /* (105) as ::= AS nm */ - 257, /* (106) as ::= */ - 246, /* (107) from ::= */ - 246, /* (108) from ::= FROM seltablist */ - 259, /* (109) stl_prefix ::= seltablist joinop */ - 259, /* (110) stl_prefix ::= */ - 258, /* (111) seltablist ::= stl_prefix nm dbnm as on_using */ - 258, /* (112) seltablist ::= stl_prefix nm dbnm as indexed_by on_using */ - 258, /* (113) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_using */ - 258, /* (114) seltablist ::= stl_prefix LP select RP as on_using */ - 258, /* (115) seltablist ::= stl_prefix LP seltablist RP as on_using */ - 201, /* (116) dbnm ::= */ - 201, /* (117) dbnm ::= DOT nm */ - 239, /* (118) fullname ::= nm */ - 239, /* (119) fullname ::= nm DOT nm */ - 264, /* (120) xfullname ::= nm */ - 264, /* (121) xfullname ::= nm DOT nm */ - 264, /* (122) xfullname ::= nm DOT nm AS nm */ - 264, /* (123) xfullname ::= nm AS nm */ - 260, /* (124) joinop ::= COMMA|JOIN */ - 260, /* (125) joinop ::= JOIN_KW JOIN */ - 260, /* (126) joinop ::= JOIN_KW nm JOIN */ - 260, /* (127) joinop ::= JOIN_KW nm nm JOIN */ - 261, /* (128) on_using ::= ON expr */ - 261, /* (129) on_using ::= USING LP idlist RP */ - 261, /* (130) on_using ::= */ - 266, /* (131) indexed_opt ::= */ - 262, /* (132) indexed_by ::= INDEXED BY nm */ - 262, /* (133) indexed_by ::= NOT INDEXED */ - 250, /* (134) orderby_opt ::= */ - 250, /* (135) orderby_opt ::= ORDER BY sortlist */ - 232, /* (136) sortlist ::= sortlist COMMA expr sortorder nulls */ - 232, /* (137) sortlist ::= expr sortorder nulls */ - 220, /* (138) sortorder ::= ASC */ - 220, /* (139) sortorder ::= DESC */ - 220, /* (140) sortorder ::= */ - 267, /* (141) nulls ::= NULLS FIRST */ - 267, /* (142) nulls ::= NULLS LAST */ - 267, /* (143) nulls ::= */ - 248, /* (144) groupby_opt ::= */ - 248, /* (145) groupby_opt ::= GROUP BY nexprlist */ - 249, /* (146) having_opt ::= */ - 249, /* (147) having_opt ::= HAVING expr */ - 251, /* (148) limit_opt ::= */ - 251, /* (149) limit_opt ::= LIMIT expr */ - 251, /* (150) limit_opt ::= LIMIT expr OFFSET expr */ - 251, /* (151) limit_opt ::= LIMIT expr COMMA expr */ - 191, /* (152) cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ - 247, /* (153) where_opt ::= */ - 247, /* (154) where_opt ::= WHERE expr */ - 269, /* (155) where_opt_ret ::= */ - 269, /* (156) where_opt_ret ::= WHERE expr */ - 269, /* (157) where_opt_ret ::= RETURNING selcollist */ - 269, /* (158) where_opt_ret ::= WHERE expr RETURNING selcollist */ - 191, /* (159) cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ - 270, /* (160) setlist ::= setlist COMMA nm EQ expr */ - 270, /* (161) setlist ::= setlist COMMA LP idlist RP EQ expr */ - 270, /* (162) setlist ::= nm EQ expr */ - 270, /* (163) setlist ::= LP idlist RP EQ expr */ - 191, /* (164) cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ - 191, /* (165) cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ - 273, /* (166) upsert ::= */ - 273, /* (167) upsert ::= RETURNING selcollist */ - 273, /* (168) upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ - 273, /* (169) upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ - 273, /* (170) upsert ::= ON CONFLICT DO NOTHING returning */ - 273, /* (171) upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ - 274, /* (172) returning ::= RETURNING selcollist */ - 271, /* (173) insert_cmd ::= INSERT orconf */ - 271, /* (174) insert_cmd ::= REPLACE */ - 272, /* (175) idlist_opt ::= */ - 272, /* (176) idlist_opt ::= LP idlist RP */ - 265, /* (177) idlist ::= idlist COMMA nm */ - 265, /* (178) idlist ::= nm */ - 218, /* (179) expr ::= LP expr RP */ - 218, /* (180) expr ::= ID|INDEXED|JOIN_KW */ - 218, /* (181) expr ::= nm DOT nm */ - 218, /* (182) expr ::= nm DOT nm DOT nm */ - 217, /* (183) term ::= NULL|FLOAT|BLOB */ - 217, /* (184) term ::= STRING */ - 217, /* (185) term ::= INTEGER */ - 218, /* (186) expr ::= VARIABLE */ - 218, /* (187) expr ::= expr COLLATE ID|STRING */ - 218, /* (188) expr ::= CAST LP expr AS typetoken RP */ - 218, /* (189) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */ - 218, /* (190) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP */ - 218, /* (191) expr ::= ID|INDEXED|JOIN_KW LP STAR RP */ - 218, /* (192) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */ - 218, /* (193) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over */ - 218, /* (194) expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */ - 217, /* (195) term ::= CTIME_KW */ - 218, /* (196) expr ::= LP nexprlist COMMA expr RP */ - 218, /* (197) expr ::= expr AND expr */ - 218, /* (198) expr ::= expr OR expr */ - 218, /* (199) expr ::= expr LT|GT|GE|LE expr */ - 218, /* (200) expr ::= expr EQ|NE expr */ - 218, /* (201) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ - 218, /* (202) expr ::= expr PLUS|MINUS expr */ - 218, /* (203) expr ::= expr STAR|SLASH|REM expr */ - 218, /* (204) expr ::= expr CONCAT expr */ - 276, /* (205) likeop ::= NOT LIKE_KW|MATCH */ - 218, /* (206) expr ::= expr likeop expr */ - 218, /* (207) expr ::= expr likeop expr ESCAPE expr */ - 218, /* (208) expr ::= expr ISNULL|NOTNULL */ - 218, /* (209) expr ::= expr NOT NULL */ - 218, /* (210) expr ::= expr IS expr */ - 218, /* (211) expr ::= expr IS NOT expr */ - 218, /* (212) expr ::= expr IS NOT DISTINCT FROM expr */ - 218, /* (213) expr ::= expr IS DISTINCT FROM expr */ - 218, /* (214) expr ::= NOT expr */ - 218, /* (215) expr ::= BITNOT expr */ - 218, /* (216) expr ::= PLUS|MINUS expr */ - 218, /* (217) expr ::= expr PTR expr */ - 277, /* (218) between_op ::= BETWEEN */ - 277, /* (219) between_op ::= NOT BETWEEN */ - 218, /* (220) expr ::= expr between_op expr AND expr */ - 278, /* (221) in_op ::= IN */ - 278, /* (222) in_op ::= NOT IN */ - 218, /* (223) expr ::= expr in_op LP exprlist RP */ - 218, /* (224) expr ::= LP select RP */ - 218, /* (225) expr ::= expr in_op LP select RP */ - 218, /* (226) expr ::= expr in_op nm dbnm paren_exprlist */ - 218, /* (227) expr ::= EXISTS LP select RP */ - 218, /* (228) expr ::= CASE case_operand case_exprlist case_else END */ - 281, /* (229) case_exprlist ::= case_exprlist WHEN expr THEN expr */ - 281, /* (230) case_exprlist ::= WHEN expr THEN expr */ - 282, /* (231) case_else ::= ELSE expr */ - 282, /* (232) case_else ::= */ - 280, /* (233) case_operand ::= */ - 263, /* (234) exprlist ::= */ - 254, /* (235) nexprlist ::= nexprlist COMMA expr */ - 254, /* (236) nexprlist ::= expr */ - 279, /* (237) paren_exprlist ::= */ - 279, /* (238) paren_exprlist ::= LP exprlist RP */ - 191, /* (239) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ - 283, /* (240) uniqueflag ::= UNIQUE */ - 283, /* (241) uniqueflag ::= */ - 222, /* (242) eidlist_opt ::= */ - 222, /* (243) eidlist_opt ::= LP eidlist RP */ - 233, /* (244) eidlist ::= eidlist COMMA nm collate sortorder */ - 233, /* (245) eidlist ::= nm collate sortorder */ - 284, /* (246) collate ::= */ - 284, /* (247) collate ::= COLLATE ID|STRING */ - 191, /* (248) cmd ::= DROP INDEX ifexists fullname */ - 191, /* (249) cmd ::= VACUUM vinto */ - 191, /* (250) cmd ::= VACUUM nm vinto */ - 285, /* (251) vinto ::= INTO expr */ - 285, /* (252) vinto ::= */ - 191, /* (253) cmd ::= PRAGMA nm dbnm */ - 191, /* (254) cmd ::= PRAGMA nm dbnm EQ nmnum */ - 191, /* (255) cmd ::= PRAGMA nm dbnm LP nmnum RP */ - 191, /* (256) cmd ::= PRAGMA nm dbnm EQ minus_num */ - 191, /* (257) cmd ::= PRAGMA nm dbnm LP minus_num RP */ - 212, /* (258) plus_num ::= PLUS INTEGER|FLOAT */ - 213, /* (259) minus_num ::= MINUS INTEGER|FLOAT */ - 191, /* (260) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ - 287, /* (261) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ - 289, /* (262) trigger_time ::= BEFORE|AFTER */ - 289, /* (263) trigger_time ::= INSTEAD OF */ - 289, /* (264) trigger_time ::= */ - 290, /* (265) trigger_event ::= DELETE|INSERT */ - 290, /* (266) trigger_event ::= UPDATE */ - 290, /* (267) trigger_event ::= UPDATE OF idlist */ - 292, /* (268) when_clause ::= */ - 292, /* (269) when_clause ::= WHEN expr */ - 288, /* (270) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ - 288, /* (271) trigger_cmd_list ::= trigger_cmd SEMI */ - 294, /* (272) trnm ::= nm DOT nm */ - 295, /* (273) tridxby ::= INDEXED BY nm */ - 295, /* (274) tridxby ::= NOT INDEXED */ - 293, /* (275) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ - 293, /* (276) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ - 293, /* (277) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ - 293, /* (278) trigger_cmd ::= scanpt select scanpt */ - 218, /* (279) expr ::= RAISE LP IGNORE RP */ - 218, /* (280) expr ::= RAISE LP raisetype COMMA expr RP */ - 237, /* (281) raisetype ::= ROLLBACK */ - 237, /* (282) raisetype ::= ABORT */ - 237, /* (283) raisetype ::= FAIL */ - 191, /* (284) cmd ::= DROP TRIGGER ifexists fullname */ - 191, /* (285) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ - 191, /* (286) cmd ::= DETACH database_kw_opt expr */ - 297, /* (287) key_opt ::= */ - 297, /* (288) key_opt ::= KEY expr */ - 191, /* (289) cmd ::= REINDEX */ - 191, /* (290) cmd ::= REINDEX nm dbnm */ - 191, /* (291) cmd ::= ANALYZE */ - 191, /* (292) cmd ::= ANALYZE nm dbnm */ - 191, /* (293) cmd ::= ALTER TABLE fullname RENAME TO nm */ - 191, /* (294) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ - 191, /* (295) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ - 298, /* (296) add_column_fullname ::= fullname */ - 191, /* (297) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ - 191, /* (298) cmd ::= create_vtab */ - 191, /* (299) cmd ::= create_vtab LP vtabarglist RP */ - 300, /* (300) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ - 302, /* (301) vtabarg ::= */ - 303, /* (302) vtabargtoken ::= ANY */ - 303, /* (303) vtabargtoken ::= lp anylist RP */ - 304, /* (304) lp ::= LP */ - 268, /* (305) with ::= WITH wqlist */ - 268, /* (306) with ::= WITH RECURSIVE wqlist */ - 307, /* (307) wqas ::= AS */ - 307, /* (308) wqas ::= AS MATERIALIZED */ - 307, /* (309) wqas ::= AS NOT MATERIALIZED */ - 306, /* (310) wqitem ::= withnm eidlist_opt wqas LP select RP */ - 308, /* (311) withnm ::= nm */ - 242, /* (312) wqlist ::= wqitem */ - 242, /* (313) wqlist ::= wqlist COMMA wqitem */ - 309, /* (314) windowdefn_list ::= windowdefn_list COMMA windowdefn */ - 310, /* (315) windowdefn ::= nm AS LP window RP */ - 311, /* (316) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ - 311, /* (317) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ - 311, /* (318) window ::= ORDER BY sortlist frame_opt */ - 311, /* (319) window ::= nm ORDER BY sortlist frame_opt */ - 311, /* (320) window ::= nm frame_opt */ - 312, /* (321) frame_opt ::= */ - 312, /* (322) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ - 312, /* (323) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ - 316, /* (324) range_or_rows ::= RANGE|ROWS|GROUPS */ - 318, /* (325) frame_bound_s ::= frame_bound */ - 318, /* (326) frame_bound_s ::= UNBOUNDED PRECEDING */ - 319, /* (327) frame_bound_e ::= frame_bound */ - 319, /* (328) frame_bound_e ::= UNBOUNDED FOLLOWING */ - 317, /* (329) frame_bound ::= expr PRECEDING|FOLLOWING */ - 317, /* (330) frame_bound ::= CURRENT ROW */ - 320, /* (331) frame_exclude_opt ::= */ - 320, /* (332) frame_exclude_opt ::= EXCLUDE frame_exclude */ - 321, /* (333) frame_exclude ::= NO OTHERS */ - 321, /* (334) frame_exclude ::= CURRENT ROW */ - 321, /* (335) frame_exclude ::= GROUP|TIES */ - 252, /* (336) window_clause ::= WINDOW windowdefn_list */ - 275, /* (337) filter_over ::= filter_clause over_clause */ - 275, /* (338) filter_over ::= over_clause */ - 275, /* (339) filter_over ::= filter_clause */ - 315, /* (340) over_clause ::= OVER LP window RP */ - 315, /* (341) over_clause ::= OVER nm */ - 314, /* (342) filter_clause ::= FILTER LP WHERE expr RP */ - 217, /* (343) term ::= QNUMBER */ - 186, /* (344) input ::= cmdlist */ - 187, /* (345) cmdlist ::= cmdlist ecmd */ - 187, /* (346) cmdlist ::= ecmd */ - 188, /* (347) ecmd ::= SEMI */ - 188, /* (348) ecmd ::= cmdx SEMI */ - 188, /* (349) ecmd ::= explain cmdx SEMI */ - 193, /* (350) trans_opt ::= */ - 193, /* (351) trans_opt ::= TRANSACTION */ - 193, /* (352) trans_opt ::= TRANSACTION nm */ - 195, /* (353) savepoint_opt ::= SAVEPOINT */ - 195, /* (354) savepoint_opt ::= */ - 191, /* (355) cmd ::= create_table create_table_args */ - 204, /* (356) table_option_set ::= table_option */ - 202, /* (357) columnlist ::= columnlist COMMA columnname carglist */ - 202, /* (358) columnlist ::= columnname carglist */ - 194, /* (359) nm ::= ID|INDEXED|JOIN_KW */ - 194, /* (360) nm ::= STRING */ - 209, /* (361) typetoken ::= typename */ - 210, /* (362) typename ::= ID|STRING */ - 211, /* (363) signed ::= plus_num */ - 211, /* (364) signed ::= minus_num */ - 208, /* (365) carglist ::= carglist ccons */ - 208, /* (366) carglist ::= */ - 216, /* (367) ccons ::= NULL onconf */ - 216, /* (368) ccons ::= GENERATED ALWAYS AS generated */ - 216, /* (369) ccons ::= AS generated */ - 203, /* (370) conslist_opt ::= COMMA conslist */ - 229, /* (371) conslist ::= conslist tconscomma tcons */ - 229, /* (372) conslist ::= tcons */ - 230, /* (373) tconscomma ::= */ - 234, /* (374) defer_subclause_opt ::= defer_subclause */ - 236, /* (375) resolvetype ::= raisetype */ - 240, /* (376) selectnowith ::= oneselect */ - 241, /* (377) oneselect ::= values */ - 256, /* (378) sclp ::= selcollist COMMA */ - 257, /* (379) as ::= ID|STRING */ - 266, /* (380) indexed_opt ::= indexed_by */ - 274, /* (381) returning ::= */ - 218, /* (382) expr ::= term */ - 276, /* (383) likeop ::= LIKE_KW|MATCH */ - 280, /* (384) case_operand ::= expr */ - 263, /* (385) exprlist ::= nexprlist */ - 286, /* (386) nmnum ::= plus_num */ - 286, /* (387) nmnum ::= nm */ - 286, /* (388) nmnum ::= ON */ - 286, /* (389) nmnum ::= DELETE */ - 286, /* (390) nmnum ::= DEFAULT */ - 212, /* (391) plus_num ::= INTEGER|FLOAT */ - 291, /* (392) foreach_clause ::= */ - 291, /* (393) foreach_clause ::= FOR EACH ROW */ - 294, /* (394) trnm ::= nm */ - 295, /* (395) tridxby ::= */ - 296, /* (396) database_kw_opt ::= DATABASE */ - 296, /* (397) database_kw_opt ::= */ - 299, /* (398) kwcolumn_opt ::= */ - 299, /* (399) kwcolumn_opt ::= COLUMNKW */ - 301, /* (400) vtabarglist ::= vtabarg */ - 301, /* (401) vtabarglist ::= vtabarglist COMMA vtabarg */ - 302, /* (402) vtabarg ::= vtabarg vtabargtoken */ - 305, /* (403) anylist ::= */ - 305, /* (404) anylist ::= anylist LP anylist RP */ - 305, /* (405) anylist ::= anylist ANY */ - 268, /* (406) with ::= */ - 309, /* (407) windowdefn_list ::= windowdefn */ - 311, /* (408) window ::= frame_opt */ + 191, /* (0) explain ::= EXPLAIN */ + 191, /* (1) explain ::= EXPLAIN QUERY PLAN */ + 190, /* (2) cmdx ::= cmd */ + 192, /* (3) cmd ::= BEGIN transtype trans_opt */ + 193, /* (4) transtype ::= */ + 193, /* (5) transtype ::= DEFERRED */ + 193, /* (6) transtype ::= IMMEDIATE */ + 193, /* (7) transtype ::= EXCLUSIVE */ + 192, /* (8) cmd ::= COMMIT|END trans_opt */ + 192, /* (9) cmd ::= ROLLBACK trans_opt */ + 192, /* (10) cmd ::= SAVEPOINT nm */ + 192, /* (11) cmd ::= RELEASE savepoint_opt nm */ + 192, /* (12) cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */ + 197, /* (13) create_table ::= createkw temp TABLE ifnotexists nm dbnm */ + 199, /* (14) createkw ::= CREATE */ + 201, /* (15) ifnotexists ::= */ + 201, /* (16) ifnotexists ::= IF NOT EXISTS */ + 200, /* (17) temp ::= TEMP */ + 200, /* (18) temp ::= */ + 198, /* (19) create_table_args ::= LP columnlist conslist_opt RP table_option_set */ + 198, /* (20) create_table_args ::= AS select */ + 205, /* (21) table_option_set ::= */ + 205, /* (22) table_option_set ::= table_option_set COMMA table_option */ + 207, /* (23) table_option ::= WITHOUT nm */ + 207, /* (24) table_option ::= nm */ + 208, /* (25) columnname ::= nm typetoken */ + 210, /* (26) typetoken ::= */ + 210, /* (27) typetoken ::= typename LP signed RP */ + 210, /* (28) typetoken ::= typename LP signed COMMA signed RP */ + 211, /* (29) typename ::= typename ID|STRING */ + 215, /* (30) scanpt ::= */ + 216, /* (31) scantok ::= */ + 217, /* (32) ccons ::= CONSTRAINT nm */ + 217, /* (33) ccons ::= DEFAULT scantok term */ + 217, /* (34) ccons ::= DEFAULT LP expr RP */ + 217, /* (35) ccons ::= DEFAULT PLUS scantok term */ + 217, /* (36) ccons ::= DEFAULT MINUS scantok term */ + 217, /* (37) ccons ::= DEFAULT scantok ID|INDEXED */ + 217, /* (38) ccons ::= NOT NULL onconf */ + 217, /* (39) ccons ::= PRIMARY KEY sortorder onconf autoinc */ + 217, /* (40) ccons ::= UNIQUE onconf */ + 217, /* (41) ccons ::= CHECK LP expr RP */ + 217, /* (42) ccons ::= REFERENCES nm eidlist_opt refargs */ + 217, /* (43) ccons ::= defer_subclause */ + 217, /* (44) ccons ::= COLLATE ID|STRING */ + 226, /* (45) generated ::= LP expr RP */ + 226, /* (46) generated ::= LP expr RP ID */ + 222, /* (47) autoinc ::= */ + 222, /* (48) autoinc ::= AUTOINCR */ + 224, /* (49) refargs ::= */ + 224, /* (50) refargs ::= refargs refarg */ + 227, /* (51) refarg ::= MATCH nm */ + 227, /* (52) refarg ::= ON INSERT refact */ + 227, /* (53) refarg ::= ON DELETE refact */ + 227, /* (54) refarg ::= ON UPDATE refact */ + 228, /* (55) refact ::= SET NULL */ + 228, /* (56) refact ::= SET DEFAULT */ + 228, /* (57) refact ::= CASCADE */ + 228, /* (58) refact ::= RESTRICT */ + 228, /* (59) refact ::= NO ACTION */ + 225, /* (60) defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ + 225, /* (61) defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ + 229, /* (62) init_deferred_pred_opt ::= */ + 229, /* (63) init_deferred_pred_opt ::= INITIALLY DEFERRED */ + 229, /* (64) init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ + 204, /* (65) conslist_opt ::= */ + 231, /* (66) tconscomma ::= COMMA */ + 232, /* (67) tcons ::= CONSTRAINT nm */ + 232, /* (68) tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ + 232, /* (69) tcons ::= UNIQUE LP sortlist RP onconf */ + 232, /* (70) tcons ::= CHECK LP expr RP onconf */ + 232, /* (71) tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ + 235, /* (72) defer_subclause_opt ::= */ + 220, /* (73) onconf ::= */ + 220, /* (74) onconf ::= ON CONFLICT resolvetype */ + 236, /* (75) orconf ::= */ + 236, /* (76) orconf ::= OR resolvetype */ + 237, /* (77) resolvetype ::= IGNORE */ + 237, /* (78) resolvetype ::= REPLACE */ + 192, /* (79) cmd ::= DROP TABLE ifexists fullname */ + 239, /* (80) ifexists ::= IF EXISTS */ + 239, /* (81) ifexists ::= */ + 192, /* (82) cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ + 192, /* (83) cmd ::= DROP VIEW ifexists fullname */ + 192, /* (84) cmd ::= select */ + 206, /* (85) select ::= WITH wqlist selectnowith */ + 206, /* (86) select ::= WITH RECURSIVE wqlist selectnowith */ + 206, /* (87) select ::= selectnowith */ + 241, /* (88) selectnowith ::= selectnowith multiselect_op oneselect */ + 244, /* (89) multiselect_op ::= UNION */ + 244, /* (90) multiselect_op ::= UNION ALL */ + 244, /* (91) multiselect_op ::= EXCEPT|INTERSECT */ + 242, /* (92) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ + 242, /* (93) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ + 254, /* (94) values ::= VALUES LP nexprlist RP */ + 242, /* (95) oneselect ::= mvalues */ + 256, /* (96) mvalues ::= values COMMA LP nexprlist RP */ + 256, /* (97) mvalues ::= mvalues COMMA LP nexprlist RP */ + 245, /* (98) distinct ::= DISTINCT */ + 245, /* (99) distinct ::= ALL */ + 245, /* (100) distinct ::= */ + 257, /* (101) sclp ::= */ + 246, /* (102) selcollist ::= sclp scanpt expr scanpt as */ + 246, /* (103) selcollist ::= sclp scanpt STAR */ + 246, /* (104) selcollist ::= sclp scanpt nm DOT STAR */ + 258, /* (105) as ::= AS nm */ + 258, /* (106) as ::= */ + 247, /* (107) from ::= */ + 247, /* (108) from ::= FROM seltablist */ + 260, /* (109) stl_prefix ::= seltablist joinop */ + 260, /* (110) stl_prefix ::= */ + 259, /* (111) seltablist ::= stl_prefix nm dbnm as on_using */ + 259, /* (112) seltablist ::= stl_prefix nm dbnm as indexed_by on_using */ + 259, /* (113) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_using */ + 259, /* (114) seltablist ::= stl_prefix LP select RP as on_using */ + 259, /* (115) seltablist ::= stl_prefix LP seltablist RP as on_using */ + 202, /* (116) dbnm ::= */ + 202, /* (117) dbnm ::= DOT nm */ + 240, /* (118) fullname ::= nm */ + 240, /* (119) fullname ::= nm DOT nm */ + 265, /* (120) xfullname ::= nm */ + 265, /* (121) xfullname ::= nm DOT nm */ + 265, /* (122) xfullname ::= nm DOT nm AS nm */ + 265, /* (123) xfullname ::= nm AS nm */ + 261, /* (124) joinop ::= COMMA|JOIN */ + 261, /* (125) joinop ::= JOIN_KW JOIN */ + 261, /* (126) joinop ::= JOIN_KW nm JOIN */ + 261, /* (127) joinop ::= JOIN_KW nm nm JOIN */ + 262, /* (128) on_using ::= ON expr */ + 262, /* (129) on_using ::= USING LP idlist RP */ + 262, /* (130) on_using ::= */ + 267, /* (131) indexed_opt ::= */ + 263, /* (132) indexed_by ::= INDEXED BY nm */ + 263, /* (133) indexed_by ::= NOT INDEXED */ + 251, /* (134) orderby_opt ::= */ + 251, /* (135) orderby_opt ::= ORDER BY sortlist */ + 233, /* (136) sortlist ::= sortlist COMMA expr sortorder nulls */ + 233, /* (137) sortlist ::= expr sortorder nulls */ + 221, /* (138) sortorder ::= ASC */ + 221, /* (139) sortorder ::= DESC */ + 221, /* (140) sortorder ::= */ + 268, /* (141) nulls ::= NULLS FIRST */ + 268, /* (142) nulls ::= NULLS LAST */ + 268, /* (143) nulls ::= */ + 249, /* (144) groupby_opt ::= */ + 249, /* (145) groupby_opt ::= GROUP BY nexprlist */ + 250, /* (146) having_opt ::= */ + 250, /* (147) having_opt ::= HAVING expr */ + 252, /* (148) limit_opt ::= */ + 252, /* (149) limit_opt ::= LIMIT expr */ + 252, /* (150) limit_opt ::= LIMIT expr OFFSET expr */ + 252, /* (151) limit_opt ::= LIMIT expr COMMA expr */ + 192, /* (152) cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ + 248, /* (153) where_opt ::= */ + 248, /* (154) where_opt ::= WHERE expr */ + 270, /* (155) where_opt_ret ::= */ + 270, /* (156) where_opt_ret ::= WHERE expr */ + 270, /* (157) where_opt_ret ::= RETURNING selcollist */ + 270, /* (158) where_opt_ret ::= WHERE expr RETURNING selcollist */ + 192, /* (159) cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ + 271, /* (160) setlist ::= setlist COMMA nm EQ expr */ + 271, /* (161) setlist ::= setlist COMMA LP idlist RP EQ expr */ + 271, /* (162) setlist ::= nm EQ expr */ + 271, /* (163) setlist ::= LP idlist RP EQ expr */ + 192, /* (164) cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ + 192, /* (165) cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ + 274, /* (166) upsert ::= */ + 274, /* (167) upsert ::= RETURNING selcollist */ + 274, /* (168) upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ + 274, /* (169) upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ + 274, /* (170) upsert ::= ON CONFLICT DO NOTHING returning */ + 274, /* (171) upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ + 275, /* (172) returning ::= RETURNING selcollist */ + 272, /* (173) insert_cmd ::= INSERT orconf */ + 272, /* (174) insert_cmd ::= REPLACE */ + 273, /* (175) idlist_opt ::= */ + 273, /* (176) idlist_opt ::= LP idlist RP */ + 266, /* (177) idlist ::= idlist COMMA nm */ + 266, /* (178) idlist ::= nm */ + 219, /* (179) expr ::= LP expr RP */ + 219, /* (180) expr ::= ID|INDEXED|JOIN_KW */ + 219, /* (181) expr ::= nm DOT nm */ + 219, /* (182) expr ::= nm DOT nm DOT nm */ + 218, /* (183) term ::= NULL|FLOAT|BLOB */ + 218, /* (184) term ::= STRING */ + 218, /* (185) term ::= INTEGER */ + 219, /* (186) expr ::= VARIABLE */ + 219, /* (187) expr ::= expr COLLATE ID|STRING */ + 219, /* (188) expr ::= CAST LP expr AS typetoken RP */ + 219, /* (189) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */ + 219, /* (190) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP */ + 219, /* (191) expr ::= ID|INDEXED|JOIN_KW LP STAR RP */ + 219, /* (192) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */ + 219, /* (193) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over */ + 219, /* (194) expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */ + 218, /* (195) term ::= CTIME_KW */ + 219, /* (196) expr ::= LP nexprlist COMMA expr RP */ + 219, /* (197) expr ::= expr AND expr */ + 219, /* (198) expr ::= expr OR expr */ + 219, /* (199) expr ::= expr LT|GT|GE|LE expr */ + 219, /* (200) expr ::= expr EQ|NE expr */ + 219, /* (201) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ + 219, /* (202) expr ::= expr PLUS|MINUS expr */ + 219, /* (203) expr ::= expr STAR|SLASH|REM expr */ + 219, /* (204) expr ::= expr CONCAT expr */ + 277, /* (205) likeop ::= NOT LIKE_KW|MATCH */ + 219, /* (206) expr ::= expr likeop expr */ + 219, /* (207) expr ::= expr likeop expr ESCAPE expr */ + 219, /* (208) expr ::= expr ISNULL|NOTNULL */ + 219, /* (209) expr ::= expr NOT NULL */ + 219, /* (210) expr ::= expr IS expr */ + 219, /* (211) expr ::= expr IS NOT expr */ + 219, /* (212) expr ::= expr IS NOT DISTINCT FROM expr */ + 219, /* (213) expr ::= expr IS DISTINCT FROM expr */ + 219, /* (214) expr ::= NOT expr */ + 219, /* (215) expr ::= BITNOT expr */ + 219, /* (216) expr ::= PLUS|MINUS expr */ + 219, /* (217) expr ::= expr PTR expr */ + 278, /* (218) between_op ::= BETWEEN */ + 278, /* (219) between_op ::= NOT BETWEEN */ + 219, /* (220) expr ::= expr between_op expr AND expr */ + 279, /* (221) in_op ::= IN */ + 279, /* (222) in_op ::= NOT IN */ + 219, /* (223) expr ::= expr in_op LP exprlist RP */ + 219, /* (224) expr ::= LP select RP */ + 219, /* (225) expr ::= expr in_op LP select RP */ + 219, /* (226) expr ::= expr in_op nm dbnm paren_exprlist */ + 219, /* (227) expr ::= EXISTS LP select RP */ + 219, /* (228) expr ::= CASE case_operand case_exprlist case_else END */ + 282, /* (229) case_exprlist ::= case_exprlist WHEN expr THEN expr */ + 282, /* (230) case_exprlist ::= WHEN expr THEN expr */ + 283, /* (231) case_else ::= ELSE expr */ + 283, /* (232) case_else ::= */ + 281, /* (233) case_operand ::= */ + 264, /* (234) exprlist ::= */ + 255, /* (235) nexprlist ::= nexprlist COMMA expr */ + 255, /* (236) nexprlist ::= expr */ + 280, /* (237) paren_exprlist ::= */ + 280, /* (238) paren_exprlist ::= LP exprlist RP */ + 192, /* (239) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ + 284, /* (240) uniqueflag ::= UNIQUE */ + 284, /* (241) uniqueflag ::= */ + 223, /* (242) eidlist_opt ::= */ + 223, /* (243) eidlist_opt ::= LP eidlist RP */ + 234, /* (244) eidlist ::= eidlist COMMA nm collate sortorder */ + 234, /* (245) eidlist ::= nm collate sortorder */ + 285, /* (246) collate ::= */ + 285, /* (247) collate ::= COLLATE ID|STRING */ + 192, /* (248) cmd ::= DROP INDEX ifexists fullname */ + 192, /* (249) cmd ::= VACUUM vinto */ + 192, /* (250) cmd ::= VACUUM nm vinto */ + 286, /* (251) vinto ::= INTO expr */ + 286, /* (252) vinto ::= */ + 192, /* (253) cmd ::= PRAGMA nm dbnm */ + 192, /* (254) cmd ::= PRAGMA nm dbnm EQ nmnum */ + 192, /* (255) cmd ::= PRAGMA nm dbnm LP nmnum RP */ + 192, /* (256) cmd ::= PRAGMA nm dbnm EQ minus_num */ + 192, /* (257) cmd ::= PRAGMA nm dbnm LP minus_num RP */ + 213, /* (258) plus_num ::= PLUS INTEGER|FLOAT */ + 214, /* (259) minus_num ::= MINUS INTEGER|FLOAT */ + 192, /* (260) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ + 288, /* (261) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ + 290, /* (262) trigger_time ::= BEFORE|AFTER */ + 290, /* (263) trigger_time ::= INSTEAD OF */ + 290, /* (264) trigger_time ::= */ + 291, /* (265) trigger_event ::= DELETE|INSERT */ + 291, /* (266) trigger_event ::= UPDATE */ + 291, /* (267) trigger_event ::= UPDATE OF idlist */ + 293, /* (268) when_clause ::= */ + 293, /* (269) when_clause ::= WHEN expr */ + 289, /* (270) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ + 289, /* (271) trigger_cmd_list ::= trigger_cmd SEMI */ + 295, /* (272) trnm ::= nm DOT nm */ + 296, /* (273) tridxby ::= INDEXED BY nm */ + 296, /* (274) tridxby ::= NOT INDEXED */ + 294, /* (275) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ + 294, /* (276) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ + 294, /* (277) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ + 294, /* (278) trigger_cmd ::= scanpt select scanpt */ + 219, /* (279) expr ::= RAISE LP IGNORE RP */ + 219, /* (280) expr ::= RAISE LP raisetype COMMA expr RP */ + 238, /* (281) raisetype ::= ROLLBACK */ + 238, /* (282) raisetype ::= ABORT */ + 238, /* (283) raisetype ::= FAIL */ + 192, /* (284) cmd ::= DROP TRIGGER ifexists fullname */ + 192, /* (285) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ + 192, /* (286) cmd ::= DETACH database_kw_opt expr */ + 298, /* (287) key_opt ::= */ + 298, /* (288) key_opt ::= KEY expr */ + 192, /* (289) cmd ::= REINDEX */ + 192, /* (290) cmd ::= REINDEX nm dbnm */ + 192, /* (291) cmd ::= ANALYZE */ + 192, /* (292) cmd ::= ANALYZE nm dbnm */ + 192, /* (293) cmd ::= ALTER TABLE fullname RENAME TO nm */ + 192, /* (294) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ + 192, /* (295) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ + 299, /* (296) add_column_fullname ::= fullname */ + 192, /* (297) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ + 192, /* (298) cmd ::= create_vtab */ + 192, /* (299) cmd ::= create_vtab LP vtabarglist RP */ + 301, /* (300) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ + 303, /* (301) vtabarg ::= */ + 304, /* (302) vtabargtoken ::= ANY */ + 304, /* (303) vtabargtoken ::= lp anylist RP */ + 305, /* (304) lp ::= LP */ + 269, /* (305) with ::= WITH wqlist */ + 269, /* (306) with ::= WITH RECURSIVE wqlist */ + 308, /* (307) wqas ::= AS */ + 308, /* (308) wqas ::= AS MATERIALIZED */ + 308, /* (309) wqas ::= AS NOT MATERIALIZED */ + 307, /* (310) wqitem ::= withnm eidlist_opt wqas LP select RP */ + 309, /* (311) withnm ::= nm */ + 243, /* (312) wqlist ::= wqitem */ + 243, /* (313) wqlist ::= wqlist COMMA wqitem */ + 310, /* (314) windowdefn_list ::= windowdefn_list COMMA windowdefn */ + 311, /* (315) windowdefn ::= nm AS LP window RP */ + 312, /* (316) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ + 312, /* (317) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ + 312, /* (318) window ::= ORDER BY sortlist frame_opt */ + 312, /* (319) window ::= nm ORDER BY sortlist frame_opt */ + 312, /* (320) window ::= nm frame_opt */ + 313, /* (321) frame_opt ::= */ + 313, /* (322) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ + 313, /* (323) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ + 317, /* (324) range_or_rows ::= RANGE|ROWS|GROUPS */ + 319, /* (325) frame_bound_s ::= frame_bound */ + 319, /* (326) frame_bound_s ::= UNBOUNDED PRECEDING */ + 320, /* (327) frame_bound_e ::= frame_bound */ + 320, /* (328) frame_bound_e ::= UNBOUNDED FOLLOWING */ + 318, /* (329) frame_bound ::= expr PRECEDING|FOLLOWING */ + 318, /* (330) frame_bound ::= CURRENT ROW */ + 321, /* (331) frame_exclude_opt ::= */ + 321, /* (332) frame_exclude_opt ::= EXCLUDE frame_exclude */ + 322, /* (333) frame_exclude ::= NO OTHERS */ + 322, /* (334) frame_exclude ::= CURRENT ROW */ + 322, /* (335) frame_exclude ::= GROUP|TIES */ + 253, /* (336) window_clause ::= WINDOW windowdefn_list */ + 276, /* (337) filter_over ::= filter_clause over_clause */ + 276, /* (338) filter_over ::= over_clause */ + 276, /* (339) filter_over ::= filter_clause */ + 316, /* (340) over_clause ::= OVER LP window RP */ + 316, /* (341) over_clause ::= OVER nm */ + 315, /* (342) filter_clause ::= FILTER LP WHERE expr RP */ + 218, /* (343) term ::= QNUMBER */ + 187, /* (344) input ::= cmdlist */ + 188, /* (345) cmdlist ::= cmdlist ecmd */ + 188, /* (346) cmdlist ::= ecmd */ + 189, /* (347) ecmd ::= SEMI */ + 189, /* (348) ecmd ::= cmdx SEMI */ + 189, /* (349) ecmd ::= explain cmdx SEMI */ + 194, /* (350) trans_opt ::= */ + 194, /* (351) trans_opt ::= TRANSACTION */ + 194, /* (352) trans_opt ::= TRANSACTION nm */ + 196, /* (353) savepoint_opt ::= SAVEPOINT */ + 196, /* (354) savepoint_opt ::= */ + 192, /* (355) cmd ::= create_table create_table_args */ + 205, /* (356) table_option_set ::= table_option */ + 203, /* (357) columnlist ::= columnlist COMMA columnname carglist */ + 203, /* (358) columnlist ::= columnname carglist */ + 195, /* (359) nm ::= ID|INDEXED|JOIN_KW */ + 195, /* (360) nm ::= STRING */ + 210, /* (361) typetoken ::= typename */ + 211, /* (362) typename ::= ID|STRING */ + 212, /* (363) signed ::= plus_num */ + 212, /* (364) signed ::= minus_num */ + 209, /* (365) carglist ::= carglist ccons */ + 209, /* (366) carglist ::= */ + 217, /* (367) ccons ::= NULL onconf */ + 217, /* (368) ccons ::= GENERATED ALWAYS AS generated */ + 217, /* (369) ccons ::= AS generated */ + 204, /* (370) conslist_opt ::= COMMA conslist */ + 230, /* (371) conslist ::= conslist tconscomma tcons */ + 230, /* (372) conslist ::= tcons */ + 231, /* (373) tconscomma ::= */ + 235, /* (374) defer_subclause_opt ::= defer_subclause */ + 237, /* (375) resolvetype ::= raisetype */ + 241, /* (376) selectnowith ::= oneselect */ + 242, /* (377) oneselect ::= values */ + 257, /* (378) sclp ::= selcollist COMMA */ + 258, /* (379) as ::= ID|STRING */ + 267, /* (380) indexed_opt ::= indexed_by */ + 275, /* (381) returning ::= */ + 219, /* (382) expr ::= term */ + 277, /* (383) likeop ::= LIKE_KW|MATCH */ + 281, /* (384) case_operand ::= expr */ + 264, /* (385) exprlist ::= nexprlist */ + 287, /* (386) nmnum ::= plus_num */ + 287, /* (387) nmnum ::= nm */ + 287, /* (388) nmnum ::= ON */ + 287, /* (389) nmnum ::= DELETE */ + 287, /* (390) nmnum ::= DEFAULT */ + 213, /* (391) plus_num ::= INTEGER|FLOAT */ + 292, /* (392) foreach_clause ::= */ + 292, /* (393) foreach_clause ::= FOR EACH ROW */ + 295, /* (394) trnm ::= nm */ + 296, /* (395) tridxby ::= */ + 297, /* (396) database_kw_opt ::= DATABASE */ + 297, /* (397) database_kw_opt ::= */ + 300, /* (398) kwcolumn_opt ::= */ + 300, /* (399) kwcolumn_opt ::= COLUMNKW */ + 302, /* (400) vtabarglist ::= vtabarg */ + 302, /* (401) vtabarglist ::= vtabarglist COMMA vtabarg */ + 303, /* (402) vtabarg ::= vtabarg vtabargtoken */ + 306, /* (403) anylist ::= */ + 306, /* (404) anylist ::= anylist LP anylist RP */ + 306, /* (405) anylist ::= anylist ANY */ + 269, /* (406) with ::= */ + 310, /* (407) windowdefn_list ::= windowdefn */ + 312, /* (408) window ::= frame_opt */ }; /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number @@ -177469,16 +177880,16 @@ static YYACTIONTYPE yy_reduce( { sqlite3FinishCoding(pParse); } break; case 3: /* cmd ::= BEGIN transtype trans_opt */ -{sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy144);} +{sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy502);} break; case 4: /* transtype ::= */ -{yymsp[1].minor.yy144 = TK_DEFERRED;} +{yymsp[1].minor.yy502 = TK_DEFERRED;} break; case 5: /* transtype ::= DEFERRED */ case 6: /* transtype ::= IMMEDIATE */ yytestcase(yyruleno==6); case 7: /* transtype ::= EXCLUSIVE */ yytestcase(yyruleno==7); case 324: /* range_or_rows ::= RANGE|ROWS|GROUPS */ yytestcase(yyruleno==324); -{yymsp[0].minor.yy144 = yymsp[0].major; /*A-overwrites-X*/} +{yymsp[0].minor.yy502 = yymsp[0].major; /*A-overwrites-X*/} break; case 8: /* cmd ::= COMMIT|END trans_opt */ case 9: /* cmd ::= ROLLBACK trans_opt */ yytestcase(yyruleno==9); @@ -177501,7 +177912,7 @@ static YYACTIONTYPE yy_reduce( break; case 13: /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */ { - sqlite3StartTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,yymsp[-4].minor.yy144,0,0,yymsp[-2].minor.yy144); + sqlite3StartTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,yymsp[-4].minor.yy502,0,0,yymsp[-2].minor.yy502); } break; case 14: /* createkw ::= CREATE */ @@ -177515,38 +177926,38 @@ static YYACTIONTYPE yy_reduce( case 81: /* ifexists ::= */ yytestcase(yyruleno==81); case 100: /* distinct ::= */ yytestcase(yyruleno==100); case 246: /* collate ::= */ yytestcase(yyruleno==246); -{yymsp[1].minor.yy144 = 0;} +{yymsp[1].minor.yy502 = 0;} break; case 16: /* ifnotexists ::= IF NOT EXISTS */ -{yymsp[-2].minor.yy144 = 1;} +{yymsp[-2].minor.yy502 = 1;} break; case 17: /* temp ::= TEMP */ -{yymsp[0].minor.yy144 = pParse->db->init.busy==0;} +{yymsp[0].minor.yy502 = pParse->db->init.busy==0;} break; case 19: /* create_table_args ::= LP columnlist conslist_opt RP table_option_set */ { - sqlite3EndTable(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,yymsp[0].minor.yy391,0); + sqlite3EndTable(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,yymsp[0].minor.yy9,0); } break; case 20: /* create_table_args ::= AS select */ { - sqlite3EndTable(pParse,0,0,0,yymsp[0].minor.yy555); - sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy555); + sqlite3EndTable(pParse,0,0,0,yymsp[0].minor.yy637); + sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy637); } break; case 21: /* table_option_set ::= */ -{yymsp[1].minor.yy391 = 0;} +{yymsp[1].minor.yy9 = 0;} break; case 22: /* table_option_set ::= table_option_set COMMA table_option */ -{yylhsminor.yy391 = yymsp[-2].minor.yy391|yymsp[0].minor.yy391;} - yymsp[-2].minor.yy391 = yylhsminor.yy391; +{yylhsminor.yy9 = yymsp[-2].minor.yy9|yymsp[0].minor.yy9;} + yymsp[-2].minor.yy9 = yylhsminor.yy9; break; case 23: /* table_option ::= WITHOUT nm */ { if( yymsp[0].minor.yy0.n==5 && sqlite3_strnicmp(yymsp[0].minor.yy0.z,"rowid",5)==0 ){ - yymsp[-1].minor.yy391 = TF_WithoutRowid | TF_NoVisibleRowid; + yymsp[-1].minor.yy9 = TF_WithoutRowid | TF_NoVisibleRowid; }else{ - yymsp[-1].minor.yy391 = 0; + yymsp[-1].minor.yy9 = 0; sqlite3ErrorMsg(pParse, "unknown table option: %.*s", yymsp[0].minor.yy0.n, yymsp[0].minor.yy0.z); } } @@ -177554,13 +177965,13 @@ static YYACTIONTYPE yy_reduce( case 24: /* table_option ::= nm */ { if( yymsp[0].minor.yy0.n==6 && sqlite3_strnicmp(yymsp[0].minor.yy0.z,"strict",6)==0 ){ - yylhsminor.yy391 = TF_Strict; + yylhsminor.yy9 = TF_Strict; }else{ - yylhsminor.yy391 = 0; + yylhsminor.yy9 = 0; sqlite3ErrorMsg(pParse, "unknown table option: %.*s", yymsp[0].minor.yy0.n, yymsp[0].minor.yy0.z); } } - yymsp[0].minor.yy391 = yylhsminor.yy391; + yymsp[0].minor.yy9 = yylhsminor.yy9; break; case 25: /* columnname ::= nm typetoken */ {sqlite3AddColumn(pParse,yymsp[-1].minor.yy0,yymsp[0].minor.yy0);} @@ -177586,7 +177997,7 @@ static YYACTIONTYPE yy_reduce( case 30: /* scanpt ::= */ { assert( yyLookahead!=YYNOCODE ); - yymsp[1].minor.yy168 = yyLookaheadToken.z; + yymsp[1].minor.yy342 = yyLookaheadToken.z; } break; case 31: /* scantok ::= */ @@ -177600,17 +178011,17 @@ static YYACTIONTYPE yy_reduce( {pParse->constraintName = yymsp[0].minor.yy0;} break; case 33: /* ccons ::= DEFAULT scantok term */ -{sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy454,yymsp[-1].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]);} +{sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy590,yymsp[-1].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]);} break; case 34: /* ccons ::= DEFAULT LP expr RP */ -{sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy454,yymsp[-2].minor.yy0.z+1,yymsp[0].minor.yy0.z);} +{sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy590,yymsp[-2].minor.yy0.z+1,yymsp[0].minor.yy0.z);} break; case 35: /* ccons ::= DEFAULT PLUS scantok term */ -{sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy454,yymsp[-2].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]);} +{sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy590,yymsp[-2].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]);} break; case 36: /* ccons ::= DEFAULT MINUS scantok term */ { - Expr *p = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy454, 0); + Expr *p = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy590, 0); sqlite3AddDefaultValue(pParse,p,yymsp[-2].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]); } break; @@ -177625,151 +178036,155 @@ static YYACTIONTYPE yy_reduce( } break; case 38: /* ccons ::= NOT NULL onconf */ -{sqlite3AddNotNull(pParse, yymsp[0].minor.yy144);} +{sqlite3AddNotNull(pParse, yymsp[0].minor.yy502);} break; case 39: /* ccons ::= PRIMARY KEY sortorder onconf autoinc */ -{sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy144,yymsp[0].minor.yy144,yymsp[-2].minor.yy144);} +{sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy502,yymsp[0].minor.yy502,yymsp[-2].minor.yy502);} break; case 40: /* ccons ::= UNIQUE onconf */ -{sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy144,0,0,0,0, +{sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy502,0,0,0,0, SQLITE_IDXTYPE_UNIQUE);} break; case 41: /* ccons ::= CHECK LP expr RP */ -{sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy454,yymsp[-2].minor.yy0.z,yymsp[0].minor.yy0.z);} +{sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy590,yymsp[-2].minor.yy0.z,yymsp[0].minor.yy0.z);} break; case 42: /* ccons ::= REFERENCES nm eidlist_opt refargs */ -{sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy14,yymsp[0].minor.yy144);} +{sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy402,yymsp[0].minor.yy502);} break; case 43: /* ccons ::= defer_subclause */ -{sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy144);} +{sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy502);} break; case 44: /* ccons ::= COLLATE ID|STRING */ {sqlite3AddCollateType(pParse, &yymsp[0].minor.yy0);} break; case 45: /* generated ::= LP expr RP */ -{sqlite3AddGenerated(pParse,yymsp[-1].minor.yy454,0);} +{sqlite3AddGenerated(pParse,yymsp[-1].minor.yy590,0);} break; case 46: /* generated ::= LP expr RP ID */ -{sqlite3AddGenerated(pParse,yymsp[-2].minor.yy454,&yymsp[0].minor.yy0);} +{sqlite3AddGenerated(pParse,yymsp[-2].minor.yy590,&yymsp[0].minor.yy0);} break; case 48: /* autoinc ::= AUTOINCR */ -{yymsp[0].minor.yy144 = 1;} +{yymsp[0].minor.yy502 = 1;} break; case 49: /* refargs ::= */ -{ yymsp[1].minor.yy144 = OE_None*0x0101; /* EV: R-19803-45884 */} +{ yymsp[1].minor.yy502 = OE_None*0x0101; /* EV: R-19803-45884 */} break; case 50: /* refargs ::= refargs refarg */ -{ yymsp[-1].minor.yy144 = (yymsp[-1].minor.yy144 & ~yymsp[0].minor.yy383.mask) | yymsp[0].minor.yy383.value; } +{ yymsp[-1].minor.yy502 = (yymsp[-1].minor.yy502 & ~yymsp[0].minor.yy481.mask) | yymsp[0].minor.yy481.value; } break; case 51: /* refarg ::= MATCH nm */ -{ yymsp[-1].minor.yy383.value = 0; yymsp[-1].minor.yy383.mask = 0x000000; } +{ yymsp[-1].minor.yy481.value = 0; yymsp[-1].minor.yy481.mask = 0x000000; } break; case 52: /* refarg ::= ON INSERT refact */ -{ yymsp[-2].minor.yy383.value = 0; yymsp[-2].minor.yy383.mask = 0x000000; } +{ yymsp[-2].minor.yy481.value = 0; yymsp[-2].minor.yy481.mask = 0x000000; } break; case 53: /* refarg ::= ON DELETE refact */ -{ yymsp[-2].minor.yy383.value = yymsp[0].minor.yy144; yymsp[-2].minor.yy383.mask = 0x0000ff; } +{ yymsp[-2].minor.yy481.value = yymsp[0].minor.yy502; yymsp[-2].minor.yy481.mask = 0x0000ff; } break; case 54: /* refarg ::= ON UPDATE refact */ -{ yymsp[-2].minor.yy383.value = yymsp[0].minor.yy144<<8; yymsp[-2].minor.yy383.mask = 0x00ff00; } +{ yymsp[-2].minor.yy481.value = yymsp[0].minor.yy502<<8; yymsp[-2].minor.yy481.mask = 0x00ff00; } break; case 55: /* refact ::= SET NULL */ -{ yymsp[-1].minor.yy144 = OE_SetNull; /* EV: R-33326-45252 */} +{ yymsp[-1].minor.yy502 = OE_SetNull; /* EV: R-33326-45252 */} break; case 56: /* refact ::= SET DEFAULT */ -{ yymsp[-1].minor.yy144 = OE_SetDflt; /* EV: R-33326-45252 */} +{ yymsp[-1].minor.yy502 = OE_SetDflt; /* EV: R-33326-45252 */} break; case 57: /* refact ::= CASCADE */ -{ yymsp[0].minor.yy144 = OE_Cascade; /* EV: R-33326-45252 */} +{ yymsp[0].minor.yy502 = OE_Cascade; /* EV: R-33326-45252 */} break; case 58: /* refact ::= RESTRICT */ -{ yymsp[0].minor.yy144 = OE_Restrict; /* EV: R-33326-45252 */} +{ yymsp[0].minor.yy502 = OE_Restrict; /* EV: R-33326-45252 */} break; case 59: /* refact ::= NO ACTION */ -{ yymsp[-1].minor.yy144 = OE_None; /* EV: R-33326-45252 */} +{ yymsp[-1].minor.yy502 = OE_None; /* EV: R-33326-45252 */} break; case 60: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ -{yymsp[-2].minor.yy144 = 0;} +{yymsp[-2].minor.yy502 = 0;} break; case 61: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ case 76: /* orconf ::= OR resolvetype */ yytestcase(yyruleno==76); case 173: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==173); -{yymsp[-1].minor.yy144 = yymsp[0].minor.yy144;} +{yymsp[-1].minor.yy502 = yymsp[0].minor.yy502;} break; case 63: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ case 80: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==80); case 219: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==219); case 222: /* in_op ::= NOT IN */ yytestcase(yyruleno==222); case 247: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==247); -{yymsp[-1].minor.yy144 = 1;} +{yymsp[-1].minor.yy502 = 1;} break; case 64: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ -{yymsp[-1].minor.yy144 = 0;} +{yymsp[-1].minor.yy502 = 0;} break; case 66: /* tconscomma ::= COMMA */ {pParse->constraintName.n = 0;} break; case 68: /* tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ -{sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy14,yymsp[0].minor.yy144,yymsp[-2].minor.yy144,0);} +{sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy402,yymsp[0].minor.yy502,yymsp[-2].minor.yy502,0);} break; case 69: /* tcons ::= UNIQUE LP sortlist RP onconf */ -{sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy14,yymsp[0].minor.yy144,0,0,0,0, +{sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy402,yymsp[0].minor.yy502,0,0,0,0, SQLITE_IDXTYPE_UNIQUE);} break; case 70: /* tcons ::= CHECK LP expr RP onconf */ -{sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy454,yymsp[-3].minor.yy0.z,yymsp[-1].minor.yy0.z);} +{sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy590,yymsp[-3].minor.yy0.z,yymsp[-1].minor.yy0.z);} break; case 71: /* tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ { - sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy14, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy14, yymsp[-1].minor.yy144); - sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy144); + sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy402, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy402, yymsp[-1].minor.yy502); + sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy502); } break; case 73: /* onconf ::= */ case 75: /* orconf ::= */ yytestcase(yyruleno==75); -{yymsp[1].minor.yy144 = OE_Default;} +{yymsp[1].minor.yy502 = OE_Default;} break; case 74: /* onconf ::= ON CONFLICT resolvetype */ -{yymsp[-2].minor.yy144 = yymsp[0].minor.yy144;} +{yymsp[-2].minor.yy502 = yymsp[0].minor.yy502;} break; case 77: /* resolvetype ::= IGNORE */ -{yymsp[0].minor.yy144 = OE_Ignore;} +{yymsp[0].minor.yy502 = OE_Ignore;} break; case 78: /* resolvetype ::= REPLACE */ case 174: /* insert_cmd ::= REPLACE */ yytestcase(yyruleno==174); -{yymsp[0].minor.yy144 = OE_Replace;} +{yymsp[0].minor.yy502 = OE_Replace;} break; case 79: /* cmd ::= DROP TABLE ifexists fullname */ { - sqlite3DropTable(pParse, yymsp[0].minor.yy203, 0, yymsp[-1].minor.yy144); + sqlite3DropTable(pParse, yymsp[0].minor.yy563, 0, yymsp[-1].minor.yy502); } break; case 82: /* cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ { - sqlite3CreateView(pParse, &yymsp[-8].minor.yy0, &yymsp[-4].minor.yy0, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy14, yymsp[0].minor.yy555, yymsp[-7].minor.yy144, yymsp[-5].minor.yy144); + sqlite3CreateView(pParse, &yymsp[-8].minor.yy0, &yymsp[-4].minor.yy0, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy402, yymsp[0].minor.yy637, yymsp[-7].minor.yy502, yymsp[-5].minor.yy502); } break; case 83: /* cmd ::= DROP VIEW ifexists fullname */ { - sqlite3DropTable(pParse, yymsp[0].minor.yy203, 1, yymsp[-1].minor.yy144); + sqlite3DropTable(pParse, yymsp[0].minor.yy563, 1, yymsp[-1].minor.yy502); } break; case 84: /* cmd ::= select */ { SelectDest dest = {SRT_Output, 0, 0, 0, 0, 0, 0}; - sqlite3Select(pParse, yymsp[0].minor.yy555, &dest); - sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy555); + if( (pParse->db->mDbFlags & DBFLAG_EncodingFixed)!=0 + || sqlite3ReadSchema(pParse)==SQLITE_OK + ){ + sqlite3Select(pParse, yymsp[0].minor.yy637, &dest); + } + sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy637); } break; case 85: /* select ::= WITH wqlist selectnowith */ -{yymsp[-2].minor.yy555 = attachWithToSelect(pParse,yymsp[0].minor.yy555,yymsp[-1].minor.yy59);} +{yymsp[-2].minor.yy637 = attachWithToSelect(pParse,yymsp[0].minor.yy637,yymsp[-1].minor.yy125);} break; case 86: /* select ::= WITH RECURSIVE wqlist selectnowith */ -{yymsp[-3].minor.yy555 = attachWithToSelect(pParse,yymsp[0].minor.yy555,yymsp[-1].minor.yy59);} +{yymsp[-3].minor.yy637 = attachWithToSelect(pParse,yymsp[0].minor.yy637,yymsp[-1].minor.yy125);} break; case 87: /* select ::= selectnowith */ { - Select *p = yymsp[0].minor.yy555; + Select *p = yymsp[0].minor.yy637; if( p ){ parserDoubleLinkSelect(pParse, p); } @@ -177777,8 +178192,8 @@ static YYACTIONTYPE yy_reduce( break; case 88: /* selectnowith ::= selectnowith multiselect_op oneselect */ { - Select *pRhs = yymsp[0].minor.yy555; - Select *pLhs = yymsp[-2].minor.yy555; + Select *pRhs = yymsp[0].minor.yy637; + Select *pLhs = yymsp[-2].minor.yy637; if( pRhs && pRhs->pPrior ){ SrcList *pFrom; Token x; @@ -177788,60 +178203,60 @@ static YYACTIONTYPE yy_reduce( pRhs = sqlite3SelectNew(pParse,0,pFrom,0,0,0,0,0,0); } if( pRhs ){ - pRhs->op = (u8)yymsp[-1].minor.yy144; + pRhs->op = (u8)yymsp[-1].minor.yy502; pRhs->pPrior = pLhs; if( ALWAYS(pLhs) ) pLhs->selFlags &= ~SF_MultiValue; pRhs->selFlags &= ~SF_MultiValue; - if( yymsp[-1].minor.yy144!=TK_ALL ) pParse->hasCompound = 1; + if( yymsp[-1].minor.yy502!=TK_ALL ) pParse->hasCompound = 1; }else{ sqlite3SelectDelete(pParse->db, pLhs); } - yymsp[-2].minor.yy555 = pRhs; + yymsp[-2].minor.yy637 = pRhs; } break; case 89: /* multiselect_op ::= UNION */ case 91: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==91); -{yymsp[0].minor.yy144 = yymsp[0].major; /*A-overwrites-OP*/} +{yymsp[0].minor.yy502 = yymsp[0].major; /*A-overwrites-OP*/} break; case 90: /* multiselect_op ::= UNION ALL */ -{yymsp[-1].minor.yy144 = TK_ALL;} +{yymsp[-1].minor.yy502 = TK_ALL;} break; case 92: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ { - yymsp[-8].minor.yy555 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy14,yymsp[-5].minor.yy203,yymsp[-4].minor.yy454,yymsp[-3].minor.yy14,yymsp[-2].minor.yy454,yymsp[-1].minor.yy14,yymsp[-7].minor.yy144,yymsp[0].minor.yy454); + yymsp[-8].minor.yy637 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy402,yymsp[-5].minor.yy563,yymsp[-4].minor.yy590,yymsp[-3].minor.yy402,yymsp[-2].minor.yy590,yymsp[-1].minor.yy402,yymsp[-7].minor.yy502,yymsp[0].minor.yy590); } break; case 93: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ { - yymsp[-9].minor.yy555 = sqlite3SelectNew(pParse,yymsp[-7].minor.yy14,yymsp[-6].minor.yy203,yymsp[-5].minor.yy454,yymsp[-4].minor.yy14,yymsp[-3].minor.yy454,yymsp[-1].minor.yy14,yymsp[-8].minor.yy144,yymsp[0].minor.yy454); - if( yymsp[-9].minor.yy555 ){ - yymsp[-9].minor.yy555->pWinDefn = yymsp[-2].minor.yy211; + yymsp[-9].minor.yy637 = sqlite3SelectNew(pParse,yymsp[-7].minor.yy402,yymsp[-6].minor.yy563,yymsp[-5].minor.yy590,yymsp[-4].minor.yy402,yymsp[-3].minor.yy590,yymsp[-1].minor.yy402,yymsp[-8].minor.yy502,yymsp[0].minor.yy590); + if( yymsp[-9].minor.yy637 ){ + yymsp[-9].minor.yy637->pWinDefn = yymsp[-2].minor.yy483; }else{ - sqlite3WindowListDelete(pParse->db, yymsp[-2].minor.yy211); + sqlite3WindowListDelete(pParse->db, yymsp[-2].minor.yy483); } } break; case 94: /* values ::= VALUES LP nexprlist RP */ { - yymsp[-3].minor.yy555 = sqlite3SelectNew(pParse,yymsp[-1].minor.yy14,0,0,0,0,0,SF_Values,0); + yymsp[-3].minor.yy637 = sqlite3SelectNew(pParse,yymsp[-1].minor.yy402,0,0,0,0,0,SF_Values,0); } break; case 95: /* oneselect ::= mvalues */ { - sqlite3MultiValuesEnd(pParse, yymsp[0].minor.yy555); + sqlite3MultiValuesEnd(pParse, yymsp[0].minor.yy637); } break; case 96: /* mvalues ::= values COMMA LP nexprlist RP */ case 97: /* mvalues ::= mvalues COMMA LP nexprlist RP */ yytestcase(yyruleno==97); { - yymsp[-4].minor.yy555 = sqlite3MultiValues(pParse, yymsp[-4].minor.yy555, yymsp[-1].minor.yy14); + yymsp[-4].minor.yy637 = sqlite3MultiValues(pParse, yymsp[-4].minor.yy637, yymsp[-1].minor.yy402); } break; case 98: /* distinct ::= DISTINCT */ -{yymsp[0].minor.yy144 = SF_Distinct;} +{yymsp[0].minor.yy502 = SF_Distinct;} break; case 99: /* distinct ::= ALL */ -{yymsp[0].minor.yy144 = SF_All;} +{yymsp[0].minor.yy502 = SF_All;} break; case 101: /* sclp ::= */ case 134: /* orderby_opt ::= */ yytestcase(yyruleno==134); @@ -177849,20 +178264,20 @@ static YYACTIONTYPE yy_reduce( case 234: /* exprlist ::= */ yytestcase(yyruleno==234); case 237: /* paren_exprlist ::= */ yytestcase(yyruleno==237); case 242: /* eidlist_opt ::= */ yytestcase(yyruleno==242); -{yymsp[1].minor.yy14 = 0;} +{yymsp[1].minor.yy402 = 0;} break; case 102: /* selcollist ::= sclp scanpt expr scanpt as */ { - yymsp[-4].minor.yy14 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy14, yymsp[-2].minor.yy454); - if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy14, &yymsp[0].minor.yy0, 1); - sqlite3ExprListSetSpan(pParse,yymsp[-4].minor.yy14,yymsp[-3].minor.yy168,yymsp[-1].minor.yy168); + yymsp[-4].minor.yy402 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy402, yymsp[-2].minor.yy590); + if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy402, &yymsp[0].minor.yy0, 1); + sqlite3ExprListSetSpan(pParse,yymsp[-4].minor.yy402,yymsp[-3].minor.yy342,yymsp[-1].minor.yy342); } break; case 103: /* selcollist ::= sclp scanpt STAR */ { Expr *p = sqlite3Expr(pParse->db, TK_ASTERISK, 0); sqlite3ExprSetErrorOffset(p, (int)(yymsp[0].minor.yy0.z - pParse->zTail)); - yymsp[-2].minor.yy14 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy14, p); + yymsp[-2].minor.yy402 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy402, p); } break; case 104: /* selcollist ::= sclp scanpt nm DOT STAR */ @@ -177872,7 +178287,7 @@ static YYACTIONTYPE yy_reduce( sqlite3ExprSetErrorOffset(pRight, (int)(yymsp[0].minor.yy0.z - pParse->zTail)); pLeft = tokenExpr(pParse, TK_ID, yymsp[-2].minor.yy0); pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight); - yymsp[-4].minor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy14, pDot); + yymsp[-4].minor.yy402 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy402, pDot); } break; case 105: /* as ::= AS nm */ @@ -177883,50 +178298,50 @@ static YYACTIONTYPE yy_reduce( break; case 107: /* from ::= */ case 110: /* stl_prefix ::= */ yytestcase(yyruleno==110); -{yymsp[1].minor.yy203 = 0;} +{yymsp[1].minor.yy563 = 0;} break; case 108: /* from ::= FROM seltablist */ { - yymsp[-1].minor.yy203 = yymsp[0].minor.yy203; - sqlite3SrcListShiftJoinType(pParse,yymsp[-1].minor.yy203); + yymsp[-1].minor.yy563 = yymsp[0].minor.yy563; + sqlite3SrcListShiftJoinType(pParse,yymsp[-1].minor.yy563); } break; case 109: /* stl_prefix ::= seltablist joinop */ { - if( ALWAYS(yymsp[-1].minor.yy203 && yymsp[-1].minor.yy203->nSrc>0) ) yymsp[-1].minor.yy203->a[yymsp[-1].minor.yy203->nSrc-1].fg.jointype = (u8)yymsp[0].minor.yy144; + if( ALWAYS(yymsp[-1].minor.yy563 && yymsp[-1].minor.yy563->nSrc>0) ) yymsp[-1].minor.yy563->a[yymsp[-1].minor.yy563->nSrc-1].fg.jointype = (u8)yymsp[0].minor.yy502; } break; case 111: /* seltablist ::= stl_prefix nm dbnm as on_using */ { - yymsp[-4].minor.yy203 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-4].minor.yy203,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0,&yymsp[0].minor.yy269); + yymsp[-4].minor.yy563 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-4].minor.yy563,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0,&yymsp[0].minor.yy421); } break; case 112: /* seltablist ::= stl_prefix nm dbnm as indexed_by on_using */ { - yymsp[-5].minor.yy203 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy203,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,0,&yymsp[0].minor.yy269); - sqlite3SrcListIndexedBy(pParse, yymsp[-5].minor.yy203, &yymsp[-1].minor.yy0); + yymsp[-5].minor.yy563 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy563,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,0,&yymsp[0].minor.yy421); + sqlite3SrcListIndexedBy(pParse, yymsp[-5].minor.yy563, &yymsp[-1].minor.yy0); } break; case 113: /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_using */ { - yymsp[-7].minor.yy203 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-7].minor.yy203,&yymsp[-6].minor.yy0,&yymsp[-5].minor.yy0,&yymsp[-1].minor.yy0,0,&yymsp[0].minor.yy269); - sqlite3SrcListFuncArgs(pParse, yymsp[-7].minor.yy203, yymsp[-3].minor.yy14); + yymsp[-7].minor.yy563 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-7].minor.yy563,&yymsp[-6].minor.yy0,&yymsp[-5].minor.yy0,&yymsp[-1].minor.yy0,0,&yymsp[0].minor.yy421); + sqlite3SrcListFuncArgs(pParse, yymsp[-7].minor.yy563, yymsp[-3].minor.yy402); } break; case 114: /* seltablist ::= stl_prefix LP select RP as on_using */ { - yymsp[-5].minor.yy203 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy203,0,0,&yymsp[-1].minor.yy0,yymsp[-3].minor.yy555,&yymsp[0].minor.yy269); + yymsp[-5].minor.yy563 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy563,0,0,&yymsp[-1].minor.yy0,yymsp[-3].minor.yy637,&yymsp[0].minor.yy421); } break; case 115: /* seltablist ::= stl_prefix LP seltablist RP as on_using */ { - if( yymsp[-5].minor.yy203==0 && yymsp[-1].minor.yy0.n==0 && yymsp[0].minor.yy269.pOn==0 && yymsp[0].minor.yy269.pUsing==0 ){ - yymsp[-5].minor.yy203 = yymsp[-3].minor.yy203; - }else if( ALWAYS(yymsp[-3].minor.yy203!=0) && yymsp[-3].minor.yy203->nSrc==1 ){ - yymsp[-5].minor.yy203 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy203,0,0,&yymsp[-1].minor.yy0,0,&yymsp[0].minor.yy269); - if( yymsp[-5].minor.yy203 ){ - SrcItem *pNew = &yymsp[-5].minor.yy203->a[yymsp[-5].minor.yy203->nSrc-1]; - SrcItem *pOld = yymsp[-3].minor.yy203->a; + if( yymsp[-5].minor.yy563==0 && yymsp[-1].minor.yy0.n==0 && yymsp[0].minor.yy421.pOn==0 && yymsp[0].minor.yy421.pUsing==0 ){ + yymsp[-5].minor.yy563 = yymsp[-3].minor.yy563; + }else if( ALWAYS(yymsp[-3].minor.yy563!=0) && yymsp[-3].minor.yy563->nSrc==1 ){ + yymsp[-5].minor.yy563 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy563,0,0,&yymsp[-1].minor.yy0,0,&yymsp[0].minor.yy421); + if( yymsp[-5].minor.yy563 ){ + SrcItem *pNew = &yymsp[-5].minor.yy563->a[yymsp[-5].minor.yy563->nSrc-1]; + SrcItem *pOld = yymsp[-3].minor.yy563->a; assert( pOld->fg.fixedSchema==0 ); pNew->zName = pOld->zName; assert( pOld->fg.fixedSchema==0 ); @@ -177951,12 +178366,12 @@ static YYACTIONTYPE yy_reduce( } pOld->zName = 0; } - sqlite3SrcListDelete(pParse->db, yymsp[-3].minor.yy203); + sqlite3SrcListDelete(pParse->db, yymsp[-3].minor.yy563); }else{ Select *pSubquery; - sqlite3SrcListShiftJoinType(pParse,yymsp[-3].minor.yy203); - pSubquery = sqlite3SelectNew(pParse,0,yymsp[-3].minor.yy203,0,0,0,0,SF_NestedFrom,0); - yymsp[-5].minor.yy203 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy203,0,0,&yymsp[-1].minor.yy0,pSubquery,&yymsp[0].minor.yy269); + sqlite3SrcListShiftJoinType(pParse,yymsp[-3].minor.yy563); + pSubquery = sqlite3SelectNew(pParse,0,yymsp[-3].minor.yy563,0,0,0,0,SF_NestedFrom,0); + yymsp[-5].minor.yy563 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy563,0,0,&yymsp[-1].minor.yy0,pSubquery,&yymsp[0].minor.yy421); } } break; @@ -177966,56 +178381,56 @@ static YYACTIONTYPE yy_reduce( break; case 118: /* fullname ::= nm */ { - yylhsminor.yy203 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0); - if( IN_RENAME_OBJECT && yylhsminor.yy203 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy203->a[0].zName, &yymsp[0].minor.yy0); + yylhsminor.yy563 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0); + if( IN_RENAME_OBJECT && yylhsminor.yy563 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy563->a[0].zName, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy203 = yylhsminor.yy203; + yymsp[0].minor.yy563 = yylhsminor.yy563; break; case 119: /* fullname ::= nm DOT nm */ { - yylhsminor.yy203 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); - if( IN_RENAME_OBJECT && yylhsminor.yy203 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy203->a[0].zName, &yymsp[0].minor.yy0); + yylhsminor.yy563 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); + if( IN_RENAME_OBJECT && yylhsminor.yy563 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy563->a[0].zName, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy203 = yylhsminor.yy203; + yymsp[-2].minor.yy563 = yylhsminor.yy563; break; case 120: /* xfullname ::= nm */ -{yymsp[0].minor.yy203 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0); /*A-overwrites-X*/} +{yymsp[0].minor.yy563 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0); /*A-overwrites-X*/} break; case 121: /* xfullname ::= nm DOT nm */ -{yymsp[-2].minor.yy203 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/} +{yymsp[-2].minor.yy563 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/} break; case 122: /* xfullname ::= nm DOT nm AS nm */ { - yymsp[-4].minor.yy203 = sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,&yymsp[-2].minor.yy0); /*A-overwrites-X*/ - if( yymsp[-4].minor.yy203 ) yymsp[-4].minor.yy203->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0); + yymsp[-4].minor.yy563 = sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,&yymsp[-2].minor.yy0); /*A-overwrites-X*/ + if( yymsp[-4].minor.yy563 ) yymsp[-4].minor.yy563->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0); } break; case 123: /* xfullname ::= nm AS nm */ { - yymsp[-2].minor.yy203 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,0); /*A-overwrites-X*/ - if( yymsp[-2].minor.yy203 ) yymsp[-2].minor.yy203->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0); + yymsp[-2].minor.yy563 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,0); /*A-overwrites-X*/ + if( yymsp[-2].minor.yy563 ) yymsp[-2].minor.yy563->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0); } break; case 124: /* joinop ::= COMMA|JOIN */ -{ yymsp[0].minor.yy144 = JT_INNER; } +{ yymsp[0].minor.yy502 = JT_INNER; } break; case 125: /* joinop ::= JOIN_KW JOIN */ -{yymsp[-1].minor.yy144 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); /*X-overwrites-A*/} +{yymsp[-1].minor.yy502 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); /*X-overwrites-A*/} break; case 126: /* joinop ::= JOIN_KW nm JOIN */ -{yymsp[-2].minor.yy144 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); /*X-overwrites-A*/} +{yymsp[-2].minor.yy502 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); /*X-overwrites-A*/} break; case 127: /* joinop ::= JOIN_KW nm nm JOIN */ -{yymsp[-3].minor.yy144 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/} +{yymsp[-3].minor.yy502 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/} break; case 128: /* on_using ::= ON expr */ -{yymsp[-1].minor.yy269.pOn = yymsp[0].minor.yy454; yymsp[-1].minor.yy269.pUsing = 0;} +{yymsp[-1].minor.yy421.pOn = yymsp[0].minor.yy590; yymsp[-1].minor.yy421.pUsing = 0;} break; case 129: /* on_using ::= USING LP idlist RP */ -{yymsp[-3].minor.yy269.pOn = 0; yymsp[-3].minor.yy269.pUsing = yymsp[-1].minor.yy132;} +{yymsp[-3].minor.yy421.pOn = 0; yymsp[-3].minor.yy421.pUsing = yymsp[-1].minor.yy204;} break; case 130: /* on_using ::= */ -{yymsp[1].minor.yy269.pOn = 0; yymsp[1].minor.yy269.pUsing = 0;} +{yymsp[1].minor.yy421.pOn = 0; yymsp[1].minor.yy421.pUsing = 0;} break; case 132: /* indexed_by ::= INDEXED BY nm */ {yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;} @@ -178025,35 +178440,35 @@ static YYACTIONTYPE yy_reduce( break; case 135: /* orderby_opt ::= ORDER BY sortlist */ case 145: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==145); -{yymsp[-2].minor.yy14 = yymsp[0].minor.yy14;} +{yymsp[-2].minor.yy402 = yymsp[0].minor.yy402;} break; case 136: /* sortlist ::= sortlist COMMA expr sortorder nulls */ { - yymsp[-4].minor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy14,yymsp[-2].minor.yy454); - sqlite3ExprListSetSortOrder(yymsp[-4].minor.yy14,yymsp[-1].minor.yy144,yymsp[0].minor.yy144); + yymsp[-4].minor.yy402 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy402,yymsp[-2].minor.yy590); + sqlite3ExprListSetSortOrder(yymsp[-4].minor.yy402,yymsp[-1].minor.yy502,yymsp[0].minor.yy502); } break; case 137: /* sortlist ::= expr sortorder nulls */ { - yymsp[-2].minor.yy14 = sqlite3ExprListAppend(pParse,0,yymsp[-2].minor.yy454); /*A-overwrites-Y*/ - sqlite3ExprListSetSortOrder(yymsp[-2].minor.yy14,yymsp[-1].minor.yy144,yymsp[0].minor.yy144); + yymsp[-2].minor.yy402 = sqlite3ExprListAppend(pParse,0,yymsp[-2].minor.yy590); /*A-overwrites-Y*/ + sqlite3ExprListSetSortOrder(yymsp[-2].minor.yy402,yymsp[-1].minor.yy502,yymsp[0].minor.yy502); } break; case 138: /* sortorder ::= ASC */ -{yymsp[0].minor.yy144 = SQLITE_SO_ASC;} +{yymsp[0].minor.yy502 = SQLITE_SO_ASC;} break; case 139: /* sortorder ::= DESC */ -{yymsp[0].minor.yy144 = SQLITE_SO_DESC;} +{yymsp[0].minor.yy502 = SQLITE_SO_DESC;} break; case 140: /* sortorder ::= */ case 143: /* nulls ::= */ yytestcase(yyruleno==143); -{yymsp[1].minor.yy144 = SQLITE_SO_UNDEFINED;} +{yymsp[1].minor.yy502 = SQLITE_SO_UNDEFINED;} break; case 141: /* nulls ::= NULLS FIRST */ -{yymsp[-1].minor.yy144 = SQLITE_SO_ASC;} +{yymsp[-1].minor.yy502 = SQLITE_SO_ASC;} break; case 142: /* nulls ::= NULLS LAST */ -{yymsp[-1].minor.yy144 = SQLITE_SO_DESC;} +{yymsp[-1].minor.yy502 = SQLITE_SO_DESC;} break; case 146: /* having_opt ::= */ case 148: /* limit_opt ::= */ yytestcase(yyruleno==148); @@ -178062,42 +178477,42 @@ static YYACTIONTYPE yy_reduce( case 232: /* case_else ::= */ yytestcase(yyruleno==232); case 233: /* case_operand ::= */ yytestcase(yyruleno==233); case 252: /* vinto ::= */ yytestcase(yyruleno==252); -{yymsp[1].minor.yy454 = 0;} +{yymsp[1].minor.yy590 = 0;} break; case 147: /* having_opt ::= HAVING expr */ case 154: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==154); case 156: /* where_opt_ret ::= WHERE expr */ yytestcase(yyruleno==156); case 231: /* case_else ::= ELSE expr */ yytestcase(yyruleno==231); case 251: /* vinto ::= INTO expr */ yytestcase(yyruleno==251); -{yymsp[-1].minor.yy454 = yymsp[0].minor.yy454;} +{yymsp[-1].minor.yy590 = yymsp[0].minor.yy590;} break; case 149: /* limit_opt ::= LIMIT expr */ -{yymsp[-1].minor.yy454 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy454,0);} +{yymsp[-1].minor.yy590 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy590,0);} break; case 150: /* limit_opt ::= LIMIT expr OFFSET expr */ -{yymsp[-3].minor.yy454 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[-2].minor.yy454,yymsp[0].minor.yy454);} +{yymsp[-3].minor.yy590 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[-2].minor.yy590,yymsp[0].minor.yy590);} break; case 151: /* limit_opt ::= LIMIT expr COMMA expr */ -{yymsp[-3].minor.yy454 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy454,yymsp[-2].minor.yy454);} +{yymsp[-3].minor.yy590 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy590,yymsp[-2].minor.yy590);} break; case 152: /* cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ { - sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy203, &yymsp[-1].minor.yy0); - sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy203,yymsp[0].minor.yy454,0,0); + sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy563, &yymsp[-1].minor.yy0); + sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy563,yymsp[0].minor.yy590,0,0); } break; case 157: /* where_opt_ret ::= RETURNING selcollist */ -{sqlite3AddReturning(pParse,yymsp[0].minor.yy14); yymsp[-1].minor.yy454 = 0;} +{sqlite3AddReturning(pParse,yymsp[0].minor.yy402); yymsp[-1].minor.yy590 = 0;} break; case 158: /* where_opt_ret ::= WHERE expr RETURNING selcollist */ -{sqlite3AddReturning(pParse,yymsp[0].minor.yy14); yymsp[-3].minor.yy454 = yymsp[-2].minor.yy454;} +{sqlite3AddReturning(pParse,yymsp[0].minor.yy402); yymsp[-3].minor.yy590 = yymsp[-2].minor.yy590;} break; case 159: /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ { - sqlite3SrcListIndexedBy(pParse, yymsp[-5].minor.yy203, &yymsp[-4].minor.yy0); - sqlite3ExprListCheckLength(pParse,yymsp[-2].minor.yy14,"set list"); - if( yymsp[-1].minor.yy203 ){ - SrcList *pFromClause = yymsp[-1].minor.yy203; + sqlite3SrcListIndexedBy(pParse, yymsp[-5].minor.yy563, &yymsp[-4].minor.yy0); + sqlite3ExprListCheckLength(pParse,yymsp[-2].minor.yy402,"set list"); + if( yymsp[-1].minor.yy563 ){ + SrcList *pFromClause = yymsp[-1].minor.yy563; if( pFromClause->nSrc>1 ){ Select *pSubquery; Token as; @@ -178106,90 +178521,90 @@ static YYACTIONTYPE yy_reduce( as.z = 0; pFromClause = sqlite3SrcListAppendFromTerm(pParse,0,0,0,&as,pSubquery,0); } - yymsp[-5].minor.yy203 = sqlite3SrcListAppendList(pParse, yymsp[-5].minor.yy203, pFromClause); + yymsp[-5].minor.yy563 = sqlite3SrcListAppendList(pParse, yymsp[-5].minor.yy563, pFromClause); } - sqlite3Update(pParse,yymsp[-5].minor.yy203,yymsp[-2].minor.yy14,yymsp[0].minor.yy454,yymsp[-6].minor.yy144,0,0,0); + sqlite3Update(pParse,yymsp[-5].minor.yy563,yymsp[-2].minor.yy402,yymsp[0].minor.yy590,yymsp[-6].minor.yy502,0,0,0); } break; case 160: /* setlist ::= setlist COMMA nm EQ expr */ { - yymsp[-4].minor.yy14 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy14, yymsp[0].minor.yy454); - sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy14, &yymsp[-2].minor.yy0, 1); + yymsp[-4].minor.yy402 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy402, yymsp[0].minor.yy590); + sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy402, &yymsp[-2].minor.yy0, 1); } break; case 161: /* setlist ::= setlist COMMA LP idlist RP EQ expr */ { - yymsp[-6].minor.yy14 = sqlite3ExprListAppendVector(pParse, yymsp[-6].minor.yy14, yymsp[-3].minor.yy132, yymsp[0].minor.yy454); + yymsp[-6].minor.yy402 = sqlite3ExprListAppendVector(pParse, yymsp[-6].minor.yy402, yymsp[-3].minor.yy204, yymsp[0].minor.yy590); } break; case 162: /* setlist ::= nm EQ expr */ { - yylhsminor.yy14 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy454); - sqlite3ExprListSetName(pParse, yylhsminor.yy14, &yymsp[-2].minor.yy0, 1); + yylhsminor.yy402 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy590); + sqlite3ExprListSetName(pParse, yylhsminor.yy402, &yymsp[-2].minor.yy0, 1); } - yymsp[-2].minor.yy14 = yylhsminor.yy14; + yymsp[-2].minor.yy402 = yylhsminor.yy402; break; case 163: /* setlist ::= LP idlist RP EQ expr */ { - yymsp[-4].minor.yy14 = sqlite3ExprListAppendVector(pParse, 0, yymsp[-3].minor.yy132, yymsp[0].minor.yy454); + yymsp[-4].minor.yy402 = sqlite3ExprListAppendVector(pParse, 0, yymsp[-3].minor.yy204, yymsp[0].minor.yy590); } break; case 164: /* cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ { - sqlite3Insert(pParse, yymsp[-3].minor.yy203, yymsp[-1].minor.yy555, yymsp[-2].minor.yy132, yymsp[-5].minor.yy144, yymsp[0].minor.yy122); + sqlite3Insert(pParse, yymsp[-3].minor.yy563, yymsp[-1].minor.yy637, yymsp[-2].minor.yy204, yymsp[-5].minor.yy502, yymsp[0].minor.yy403); } break; case 165: /* cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ { - sqlite3Insert(pParse, yymsp[-4].minor.yy203, 0, yymsp[-3].minor.yy132, yymsp[-6].minor.yy144, 0); + sqlite3Insert(pParse, yymsp[-4].minor.yy563, 0, yymsp[-3].minor.yy204, yymsp[-6].minor.yy502, 0); } break; case 166: /* upsert ::= */ -{ yymsp[1].minor.yy122 = 0; } +{ yymsp[1].minor.yy403 = 0; } break; case 167: /* upsert ::= RETURNING selcollist */ -{ yymsp[-1].minor.yy122 = 0; sqlite3AddReturning(pParse,yymsp[0].minor.yy14); } +{ yymsp[-1].minor.yy403 = 0; sqlite3AddReturning(pParse,yymsp[0].minor.yy402); } break; case 168: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ -{ yymsp[-11].minor.yy122 = sqlite3UpsertNew(pParse->db,yymsp[-8].minor.yy14,yymsp[-6].minor.yy454,yymsp[-2].minor.yy14,yymsp[-1].minor.yy454,yymsp[0].minor.yy122);} +{ yymsp[-11].minor.yy403 = sqlite3UpsertNew(pParse->db,yymsp[-8].minor.yy402,yymsp[-6].minor.yy590,yymsp[-2].minor.yy402,yymsp[-1].minor.yy590,yymsp[0].minor.yy403);} break; case 169: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ -{ yymsp[-8].minor.yy122 = sqlite3UpsertNew(pParse->db,yymsp[-5].minor.yy14,yymsp[-3].minor.yy454,0,0,yymsp[0].minor.yy122); } +{ yymsp[-8].minor.yy403 = sqlite3UpsertNew(pParse->db,yymsp[-5].minor.yy402,yymsp[-3].minor.yy590,0,0,yymsp[0].minor.yy403); } break; case 170: /* upsert ::= ON CONFLICT DO NOTHING returning */ -{ yymsp[-4].minor.yy122 = sqlite3UpsertNew(pParse->db,0,0,0,0,0); } +{ yymsp[-4].minor.yy403 = sqlite3UpsertNew(pParse->db,0,0,0,0,0); } break; case 171: /* upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ -{ yymsp[-7].minor.yy122 = sqlite3UpsertNew(pParse->db,0,0,yymsp[-2].minor.yy14,yymsp[-1].minor.yy454,0);} +{ yymsp[-7].minor.yy403 = sqlite3UpsertNew(pParse->db,0,0,yymsp[-2].minor.yy402,yymsp[-1].minor.yy590,0);} break; case 172: /* returning ::= RETURNING selcollist */ -{sqlite3AddReturning(pParse,yymsp[0].minor.yy14);} +{sqlite3AddReturning(pParse,yymsp[0].minor.yy402);} break; case 175: /* idlist_opt ::= */ -{yymsp[1].minor.yy132 = 0;} +{yymsp[1].minor.yy204 = 0;} break; case 176: /* idlist_opt ::= LP idlist RP */ -{yymsp[-2].minor.yy132 = yymsp[-1].minor.yy132;} +{yymsp[-2].minor.yy204 = yymsp[-1].minor.yy204;} break; case 177: /* idlist ::= idlist COMMA nm */ -{yymsp[-2].minor.yy132 = sqlite3IdListAppend(pParse,yymsp[-2].minor.yy132,&yymsp[0].minor.yy0);} +{yymsp[-2].minor.yy204 = sqlite3IdListAppend(pParse,yymsp[-2].minor.yy204,&yymsp[0].minor.yy0);} break; case 178: /* idlist ::= nm */ -{yymsp[0].minor.yy132 = sqlite3IdListAppend(pParse,0,&yymsp[0].minor.yy0); /*A-overwrites-Y*/} +{yymsp[0].minor.yy204 = sqlite3IdListAppend(pParse,0,&yymsp[0].minor.yy0); /*A-overwrites-Y*/} break; case 179: /* expr ::= LP expr RP */ -{yymsp[-2].minor.yy454 = yymsp[-1].minor.yy454;} +{yymsp[-2].minor.yy590 = yymsp[-1].minor.yy590;} break; case 180: /* expr ::= ID|INDEXED|JOIN_KW */ -{yymsp[0].minor.yy454=tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/} +{yymsp[0].minor.yy590=tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/} break; case 181: /* expr ::= nm DOT nm */ { Expr *temp1 = tokenExpr(pParse,TK_ID,yymsp[-2].minor.yy0); Expr *temp2 = tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); - yylhsminor.yy454 = sqlite3PExpr(pParse, TK_DOT, temp1, temp2); + yylhsminor.yy590 = sqlite3PExpr(pParse, TK_DOT, temp1, temp2); } - yymsp[-2].minor.yy454 = yylhsminor.yy454; + yymsp[-2].minor.yy590 = yylhsminor.yy590; break; case 182: /* expr ::= nm DOT nm DOT nm */ { @@ -178200,27 +178615,27 @@ static YYACTIONTYPE yy_reduce( if( IN_RENAME_OBJECT ){ sqlite3RenameTokenRemap(pParse, 0, temp1); } - yylhsminor.yy454 = sqlite3PExpr(pParse, TK_DOT, temp1, temp4); + yylhsminor.yy590 = sqlite3PExpr(pParse, TK_DOT, temp1, temp4); } - yymsp[-4].minor.yy454 = yylhsminor.yy454; + yymsp[-4].minor.yy590 = yylhsminor.yy590; break; case 183: /* term ::= NULL|FLOAT|BLOB */ case 184: /* term ::= STRING */ yytestcase(yyruleno==184); -{yymsp[0].minor.yy454=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); /*A-overwrites-X*/} +{yymsp[0].minor.yy590=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); /*A-overwrites-X*/} break; case 185: /* term ::= INTEGER */ { - yylhsminor.yy454 = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1); - if( yylhsminor.yy454 ) yylhsminor.yy454->w.iOfst = (int)(yymsp[0].minor.yy0.z - pParse->zTail); + yylhsminor.yy590 = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1); + if( yylhsminor.yy590 ) yylhsminor.yy590->w.iOfst = (int)(yymsp[0].minor.yy0.z - pParse->zTail); } - yymsp[0].minor.yy454 = yylhsminor.yy454; + yymsp[0].minor.yy590 = yylhsminor.yy590; break; case 186: /* expr ::= VARIABLE */ { if( !(yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){ u32 n = yymsp[0].minor.yy0.n; - yymsp[0].minor.yy454 = tokenExpr(pParse, TK_VARIABLE, yymsp[0].minor.yy0); - sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy454, n); + yymsp[0].minor.yy590 = tokenExpr(pParse, TK_VARIABLE, yymsp[0].minor.yy0); + sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy590, n); }else{ /* When doing a nested parse, one can include terms in an expression ** that look like this: #1 #2 ... These terms refer to registers @@ -178228,81 +178643,81 @@ static YYACTIONTYPE yy_reduce( Token t = yymsp[0].minor.yy0; /*A-overwrites-X*/ assert( t.n>=2 ); if( pParse->nested==0 ){ - sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", &t); - yymsp[0].minor.yy454 = 0; + parserSyntaxError(pParse, &t); + yymsp[0].minor.yy590 = 0; }else{ - yymsp[0].minor.yy454 = sqlite3PExpr(pParse, TK_REGISTER, 0, 0); - if( yymsp[0].minor.yy454 ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy454->iTable); + yymsp[0].minor.yy590 = sqlite3PExpr(pParse, TK_REGISTER, 0, 0); + if( yymsp[0].minor.yy590 ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy590->iTable); } } } break; case 187: /* expr ::= expr COLLATE ID|STRING */ { - yymsp[-2].minor.yy454 = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy454, &yymsp[0].minor.yy0, 1); + yymsp[-2].minor.yy590 = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy590, &yymsp[0].minor.yy0, 1); } break; case 188: /* expr ::= CAST LP expr AS typetoken RP */ { - yymsp[-5].minor.yy454 = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1); - sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy454, yymsp[-3].minor.yy454, 0); + yymsp[-5].minor.yy590 = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1); + sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy590, yymsp[-3].minor.yy590, 0); } break; case 189: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */ { - yylhsminor.yy454 = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy14, &yymsp[-4].minor.yy0, yymsp[-2].minor.yy144); + yylhsminor.yy590 = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy402, &yymsp[-4].minor.yy0, yymsp[-2].minor.yy502); } - yymsp[-4].minor.yy454 = yylhsminor.yy454; + yymsp[-4].minor.yy590 = yylhsminor.yy590; break; case 190: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP */ { - yylhsminor.yy454 = sqlite3ExprFunction(pParse, yymsp[-4].minor.yy14, &yymsp[-7].minor.yy0, yymsp[-5].minor.yy144); - sqlite3ExprAddFunctionOrderBy(pParse, yylhsminor.yy454, yymsp[-1].minor.yy14); + yylhsminor.yy590 = sqlite3ExprFunction(pParse, yymsp[-4].minor.yy402, &yymsp[-7].minor.yy0, yymsp[-5].minor.yy502); + sqlite3ExprAddFunctionOrderBy(pParse, yylhsminor.yy590, yymsp[-1].minor.yy402); } - yymsp[-7].minor.yy454 = yylhsminor.yy454; + yymsp[-7].minor.yy590 = yylhsminor.yy590; break; case 191: /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP */ { - yylhsminor.yy454 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0, 0); + yylhsminor.yy590 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0, 0); } - yymsp[-3].minor.yy454 = yylhsminor.yy454; + yymsp[-3].minor.yy590 = yylhsminor.yy590; break; case 192: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */ { - yylhsminor.yy454 = sqlite3ExprFunction(pParse, yymsp[-2].minor.yy14, &yymsp[-5].minor.yy0, yymsp[-3].minor.yy144); - sqlite3WindowAttach(pParse, yylhsminor.yy454, yymsp[0].minor.yy211); + yylhsminor.yy590 = sqlite3ExprFunction(pParse, yymsp[-2].minor.yy402, &yymsp[-5].minor.yy0, yymsp[-3].minor.yy502); + sqlite3WindowAttach(pParse, yylhsminor.yy590, yymsp[0].minor.yy483); } - yymsp[-5].minor.yy454 = yylhsminor.yy454; + yymsp[-5].minor.yy590 = yylhsminor.yy590; break; case 193: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over */ { - yylhsminor.yy454 = sqlite3ExprFunction(pParse, yymsp[-5].minor.yy14, &yymsp[-8].minor.yy0, yymsp[-6].minor.yy144); - sqlite3WindowAttach(pParse, yylhsminor.yy454, yymsp[0].minor.yy211); - sqlite3ExprAddFunctionOrderBy(pParse, yylhsminor.yy454, yymsp[-2].minor.yy14); + yylhsminor.yy590 = sqlite3ExprFunction(pParse, yymsp[-5].minor.yy402, &yymsp[-8].minor.yy0, yymsp[-6].minor.yy502); + sqlite3WindowAttach(pParse, yylhsminor.yy590, yymsp[0].minor.yy483); + sqlite3ExprAddFunctionOrderBy(pParse, yylhsminor.yy590, yymsp[-2].minor.yy402); } - yymsp[-8].minor.yy454 = yylhsminor.yy454; + yymsp[-8].minor.yy590 = yylhsminor.yy590; break; case 194: /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */ { - yylhsminor.yy454 = sqlite3ExprFunction(pParse, 0, &yymsp[-4].minor.yy0, 0); - sqlite3WindowAttach(pParse, yylhsminor.yy454, yymsp[0].minor.yy211); + yylhsminor.yy590 = sqlite3ExprFunction(pParse, 0, &yymsp[-4].minor.yy0, 0); + sqlite3WindowAttach(pParse, yylhsminor.yy590, yymsp[0].minor.yy483); } - yymsp[-4].minor.yy454 = yylhsminor.yy454; + yymsp[-4].minor.yy590 = yylhsminor.yy590; break; case 195: /* term ::= CTIME_KW */ { - yylhsminor.yy454 = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0, 0); + yylhsminor.yy590 = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0, 0); } - yymsp[0].minor.yy454 = yylhsminor.yy454; + yymsp[0].minor.yy590 = yylhsminor.yy590; break; case 196: /* expr ::= LP nexprlist COMMA expr RP */ { - ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy14, yymsp[-1].minor.yy454); - yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_VECTOR, 0, 0); - if( yymsp[-4].minor.yy454 ){ - yymsp[-4].minor.yy454->x.pList = pList; + ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy402, yymsp[-1].minor.yy590); + yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_VECTOR, 0, 0); + if( yymsp[-4].minor.yy590 ){ + yymsp[-4].minor.yy590->x.pList = pList; if( ALWAYS(pList->nExpr) ){ - yymsp[-4].minor.yy454->flags |= pList->a[0].pExpr->flags & EP_Propagate; + yymsp[-4].minor.yy590->flags |= pList->a[0].pExpr->flags & EP_Propagate; } }else{ sqlite3ExprListDelete(pParse->db, pList); @@ -178310,7 +178725,7 @@ static YYACTIONTYPE yy_reduce( } break; case 197: /* expr ::= expr AND expr */ -{yymsp[-2].minor.yy454=sqlite3ExprAnd(pParse,yymsp[-2].minor.yy454,yymsp[0].minor.yy454);} +{yymsp[-2].minor.yy590=sqlite3ExprAnd(pParse,yymsp[-2].minor.yy590,yymsp[0].minor.yy590);} break; case 198: /* expr ::= expr OR expr */ case 199: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==199); @@ -178319,7 +178734,7 @@ static YYACTIONTYPE yy_reduce( case 202: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==202); case 203: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==203); case 204: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==204); -{yymsp[-2].minor.yy454=sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy454,yymsp[0].minor.yy454);} +{yymsp[-2].minor.yy590=sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy590,yymsp[0].minor.yy590);} break; case 205: /* likeop ::= NOT LIKE_KW|MATCH */ {yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.n|=0x80000000; /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/} @@ -178329,11 +178744,11 @@ static YYACTIONTYPE yy_reduce( ExprList *pList; int bNot = yymsp[-1].minor.yy0.n & 0x80000000; yymsp[-1].minor.yy0.n &= 0x7fffffff; - pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy454); - pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy454); - yymsp[-2].minor.yy454 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0, 0); - if( bNot ) yymsp[-2].minor.yy454 = sqlite3PExpr(pParse, TK_NOT, yymsp[-2].minor.yy454, 0); - if( yymsp[-2].minor.yy454 ) yymsp[-2].minor.yy454->flags |= EP_InfixFunc; + pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy590); + pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy590); + yymsp[-2].minor.yy590 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0, 0); + if( bNot ) yymsp[-2].minor.yy590 = sqlite3PExpr(pParse, TK_NOT, yymsp[-2].minor.yy590, 0); + if( yymsp[-2].minor.yy590 ) yymsp[-2].minor.yy590->flags |= EP_InfixFunc; } break; case 207: /* expr ::= expr likeop expr ESCAPE expr */ @@ -178341,91 +178756,91 @@ static YYACTIONTYPE yy_reduce( ExprList *pList; int bNot = yymsp[-3].minor.yy0.n & 0x80000000; yymsp[-3].minor.yy0.n &= 0x7fffffff; - pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy454); - pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy454); - pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy454); - yymsp[-4].minor.yy454 = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy0, 0); - if( bNot ) yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy454, 0); - if( yymsp[-4].minor.yy454 ) yymsp[-4].minor.yy454->flags |= EP_InfixFunc; + pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy590); + pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy590); + pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy590); + yymsp[-4].minor.yy590 = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy0, 0); + if( bNot ) yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy590, 0); + if( yymsp[-4].minor.yy590 ) yymsp[-4].minor.yy590->flags |= EP_InfixFunc; } break; case 208: /* expr ::= expr ISNULL|NOTNULL */ -{yymsp[-1].minor.yy454 = sqlite3PExpr(pParse,yymsp[0].major,yymsp[-1].minor.yy454,0);} +{yymsp[-1].minor.yy590 = sqlite3PExpr(pParse,yymsp[0].major,yymsp[-1].minor.yy590,0);} break; case 209: /* expr ::= expr NOT NULL */ -{yymsp[-2].minor.yy454 = sqlite3PExpr(pParse,TK_NOTNULL,yymsp[-2].minor.yy454,0);} +{yymsp[-2].minor.yy590 = sqlite3PExpr(pParse,TK_NOTNULL,yymsp[-2].minor.yy590,0);} break; case 210: /* expr ::= expr IS expr */ { - yymsp[-2].minor.yy454 = sqlite3PExpr(pParse,TK_IS,yymsp[-2].minor.yy454,yymsp[0].minor.yy454); - binaryToUnaryIfNull(pParse, yymsp[0].minor.yy454, yymsp[-2].minor.yy454, TK_ISNULL); + yymsp[-2].minor.yy590 = sqlite3PExpr(pParse,TK_IS,yymsp[-2].minor.yy590,yymsp[0].minor.yy590); + binaryToUnaryIfNull(pParse, yymsp[0].minor.yy590, yymsp[-2].minor.yy590, TK_ISNULL); } break; case 211: /* expr ::= expr IS NOT expr */ { - yymsp[-3].minor.yy454 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-3].minor.yy454,yymsp[0].minor.yy454); - binaryToUnaryIfNull(pParse, yymsp[0].minor.yy454, yymsp[-3].minor.yy454, TK_NOTNULL); + yymsp[-3].minor.yy590 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-3].minor.yy590,yymsp[0].minor.yy590); + binaryToUnaryIfNull(pParse, yymsp[0].minor.yy590, yymsp[-3].minor.yy590, TK_NOTNULL); } break; case 212: /* expr ::= expr IS NOT DISTINCT FROM expr */ { - yymsp[-5].minor.yy454 = sqlite3PExpr(pParse,TK_IS,yymsp[-5].minor.yy454,yymsp[0].minor.yy454); - binaryToUnaryIfNull(pParse, yymsp[0].minor.yy454, yymsp[-5].minor.yy454, TK_ISNULL); + yymsp[-5].minor.yy590 = sqlite3PExpr(pParse,TK_IS,yymsp[-5].minor.yy590,yymsp[0].minor.yy590); + binaryToUnaryIfNull(pParse, yymsp[0].minor.yy590, yymsp[-5].minor.yy590, TK_ISNULL); } break; case 213: /* expr ::= expr IS DISTINCT FROM expr */ { - yymsp[-4].minor.yy454 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-4].minor.yy454,yymsp[0].minor.yy454); - binaryToUnaryIfNull(pParse, yymsp[0].minor.yy454, yymsp[-4].minor.yy454, TK_NOTNULL); + yymsp[-4].minor.yy590 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-4].minor.yy590,yymsp[0].minor.yy590); + binaryToUnaryIfNull(pParse, yymsp[0].minor.yy590, yymsp[-4].minor.yy590, TK_NOTNULL); } break; case 214: /* expr ::= NOT expr */ case 215: /* expr ::= BITNOT expr */ yytestcase(yyruleno==215); -{yymsp[-1].minor.yy454 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy454, 0);/*A-overwrites-B*/} +{yymsp[-1].minor.yy590 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy590, 0);/*A-overwrites-B*/} break; case 216: /* expr ::= PLUS|MINUS expr */ { - Expr *p = yymsp[0].minor.yy454; + Expr *p = yymsp[0].minor.yy590; u8 op = yymsp[-1].major + (TK_UPLUS-TK_PLUS); assert( TK_UPLUS>TK_PLUS ); assert( TK_UMINUS == TK_MINUS + (TK_UPLUS - TK_PLUS) ); if( p && p->op==TK_UPLUS ){ p->op = op; - yymsp[-1].minor.yy454 = p; + yymsp[-1].minor.yy590 = p; }else{ - yymsp[-1].minor.yy454 = sqlite3PExpr(pParse, op, p, 0); + yymsp[-1].minor.yy590 = sqlite3PExpr(pParse, op, p, 0); /*A-overwrites-B*/ } } break; case 217: /* expr ::= expr PTR expr */ { - ExprList *pList = sqlite3ExprListAppend(pParse, 0, yymsp[-2].minor.yy454); - pList = sqlite3ExprListAppend(pParse, pList, yymsp[0].minor.yy454); - yylhsminor.yy454 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0, 0); + ExprList *pList = sqlite3ExprListAppend(pParse, 0, yymsp[-2].minor.yy590); + pList = sqlite3ExprListAppend(pParse, pList, yymsp[0].minor.yy590); + yylhsminor.yy590 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0, 0); } - yymsp[-2].minor.yy454 = yylhsminor.yy454; + yymsp[-2].minor.yy590 = yylhsminor.yy590; break; case 218: /* between_op ::= BETWEEN */ case 221: /* in_op ::= IN */ yytestcase(yyruleno==221); -{yymsp[0].minor.yy144 = 0;} +{yymsp[0].minor.yy502 = 0;} break; case 220: /* expr ::= expr between_op expr AND expr */ { - ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy454); - pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy454); - yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy454, 0); - if( yymsp[-4].minor.yy454 ){ - yymsp[-4].minor.yy454->x.pList = pList; + ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy590); + pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy590); + yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy590, 0); + if( yymsp[-4].minor.yy590 ){ + yymsp[-4].minor.yy590->x.pList = pList; }else{ sqlite3ExprListDelete(pParse->db, pList); } - if( yymsp[-3].minor.yy144 ) yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy454, 0); + if( yymsp[-3].minor.yy502 ) yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy590, 0); } break; case 223: /* expr ::= expr in_op LP exprlist RP */ { - if( yymsp[-1].minor.yy14==0 ){ + if( yymsp[-1].minor.yy402==0 ){ /* Expressions of the form ** ** expr1 IN () @@ -178434,110 +178849,110 @@ static YYACTIONTYPE yy_reduce( ** simplify to constants 0 (false) and 1 (true), respectively, ** regardless of the value of expr1. */ - sqlite3ExprUnmapAndDelete(pParse, yymsp[-4].minor.yy454); - yymsp[-4].minor.yy454 = sqlite3Expr(pParse->db, TK_STRING, yymsp[-3].minor.yy144 ? "true" : "false"); - if( yymsp[-4].minor.yy454 ) sqlite3ExprIdToTrueFalse(yymsp[-4].minor.yy454); - }else{ - Expr *pRHS = yymsp[-1].minor.yy14->a[0].pExpr; - if( yymsp[-1].minor.yy14->nExpr==1 && sqlite3ExprIsConstant(pParse,pRHS) && yymsp[-4].minor.yy454->op!=TK_VECTOR ){ - yymsp[-1].minor.yy14->a[0].pExpr = 0; - sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy14); + sqlite3ExprUnmapAndDelete(pParse, yymsp[-4].minor.yy590); + yymsp[-4].minor.yy590 = sqlite3Expr(pParse->db, TK_STRING, yymsp[-3].minor.yy502 ? "true" : "false"); + if( yymsp[-4].minor.yy590 ) sqlite3ExprIdToTrueFalse(yymsp[-4].minor.yy590); + }else{ + Expr *pRHS = yymsp[-1].minor.yy402->a[0].pExpr; + if( yymsp[-1].minor.yy402->nExpr==1 && sqlite3ExprIsConstant(pParse,pRHS) && yymsp[-4].minor.yy590->op!=TK_VECTOR ){ + yymsp[-1].minor.yy402->a[0].pExpr = 0; + sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy402); pRHS = sqlite3PExpr(pParse, TK_UPLUS, pRHS, 0); - yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_EQ, yymsp[-4].minor.yy454, pRHS); - }else if( yymsp[-1].minor.yy14->nExpr==1 && pRHS->op==TK_SELECT ){ - yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy454, 0); - sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy454, pRHS->x.pSelect); + yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_EQ, yymsp[-4].minor.yy590, pRHS); + }else if( yymsp[-1].minor.yy402->nExpr==1 && pRHS->op==TK_SELECT ){ + yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy590, 0); + sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy590, pRHS->x.pSelect); pRHS->x.pSelect = 0; - sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy14); - }else{ - yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy454, 0); - if( yymsp[-4].minor.yy454==0 ){ - sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy14); - }else if( yymsp[-4].minor.yy454->pLeft->op==TK_VECTOR ){ - int nExpr = yymsp[-4].minor.yy454->pLeft->x.pList->nExpr; - Select *pSelectRHS = sqlite3ExprListToValues(pParse, nExpr, yymsp[-1].minor.yy14); + sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy402); + }else{ + yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy590, 0); + if( yymsp[-4].minor.yy590==0 ){ + sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy402); + }else if( yymsp[-4].minor.yy590->pLeft->op==TK_VECTOR ){ + int nExpr = yymsp[-4].minor.yy590->pLeft->x.pList->nExpr; + Select *pSelectRHS = sqlite3ExprListToValues(pParse, nExpr, yymsp[-1].minor.yy402); if( pSelectRHS ){ parserDoubleLinkSelect(pParse, pSelectRHS); - sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy454, pSelectRHS); + sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy590, pSelectRHS); } }else{ - yymsp[-4].minor.yy454->x.pList = yymsp[-1].minor.yy14; - sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy454); + yymsp[-4].minor.yy590->x.pList = yymsp[-1].minor.yy402; + sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy590); } } - if( yymsp[-3].minor.yy144 ) yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy454, 0); + if( yymsp[-3].minor.yy502 ) yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy590, 0); } } break; case 224: /* expr ::= LP select RP */ { - yymsp[-2].minor.yy454 = sqlite3PExpr(pParse, TK_SELECT, 0, 0); - sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy454, yymsp[-1].minor.yy555); + yymsp[-2].minor.yy590 = sqlite3PExpr(pParse, TK_SELECT, 0, 0); + sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy590, yymsp[-1].minor.yy637); } break; case 225: /* expr ::= expr in_op LP select RP */ { - yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy454, 0); - sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy454, yymsp[-1].minor.yy555); - if( yymsp[-3].minor.yy144 ) yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy454, 0); + yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy590, 0); + sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy590, yymsp[-1].minor.yy637); + if( yymsp[-3].minor.yy502 ) yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy590, 0); } break; case 226: /* expr ::= expr in_op nm dbnm paren_exprlist */ { SrcList *pSrc = sqlite3SrcListAppend(pParse, 0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0); Select *pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0); - if( yymsp[0].minor.yy14 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy14); - yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy454, 0); - sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy454, pSelect); - if( yymsp[-3].minor.yy144 ) yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy454, 0); + if( yymsp[0].minor.yy402 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy402); + yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy590, 0); + sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy590, pSelect); + if( yymsp[-3].minor.yy502 ) yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy590, 0); } break; case 227: /* expr ::= EXISTS LP select RP */ { Expr *p; - p = yymsp[-3].minor.yy454 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0); - sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy555); + p = yymsp[-3].minor.yy590 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0); + sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy637); } break; case 228: /* expr ::= CASE case_operand case_exprlist case_else END */ { - yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy454, 0); - if( yymsp[-4].minor.yy454 ){ - yymsp[-4].minor.yy454->x.pList = yymsp[-1].minor.yy454 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy14,yymsp[-1].minor.yy454) : yymsp[-2].minor.yy14; - sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy454); + yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy590, 0); + if( yymsp[-4].minor.yy590 ){ + yymsp[-4].minor.yy590->x.pList = yymsp[-1].minor.yy590 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy402,yymsp[-1].minor.yy590) : yymsp[-2].minor.yy402; + sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy590); }else{ - sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy14); - sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy454); + sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy402); + sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy590); } } break; case 229: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ { - yymsp[-4].minor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy14, yymsp[-2].minor.yy454); - yymsp[-4].minor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy14, yymsp[0].minor.yy454); + yymsp[-4].minor.yy402 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy402, yymsp[-2].minor.yy590); + yymsp[-4].minor.yy402 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy402, yymsp[0].minor.yy590); } break; case 230: /* case_exprlist ::= WHEN expr THEN expr */ { - yymsp[-3].minor.yy14 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy454); - yymsp[-3].minor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy14, yymsp[0].minor.yy454); + yymsp[-3].minor.yy402 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy590); + yymsp[-3].minor.yy402 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy402, yymsp[0].minor.yy590); } break; case 235: /* nexprlist ::= nexprlist COMMA expr */ -{yymsp[-2].minor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy14,yymsp[0].minor.yy454);} +{yymsp[-2].minor.yy402 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy402,yymsp[0].minor.yy590);} break; case 236: /* nexprlist ::= expr */ -{yymsp[0].minor.yy14 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy454); /*A-overwrites-Y*/} +{yymsp[0].minor.yy402 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy590); /*A-overwrites-Y*/} break; case 238: /* paren_exprlist ::= LP exprlist RP */ case 243: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==243); -{yymsp[-2].minor.yy14 = yymsp[-1].minor.yy14;} +{yymsp[-2].minor.yy402 = yymsp[-1].minor.yy402;} break; case 239: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ { sqlite3CreateIndex(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, - sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy14, yymsp[-10].minor.yy144, - &yymsp[-11].minor.yy0, yymsp[0].minor.yy454, SQLITE_SO_ASC, yymsp[-8].minor.yy144, SQLITE_IDXTYPE_APPDEF); + sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy402, yymsp[-10].minor.yy502, + &yymsp[-11].minor.yy0, yymsp[0].minor.yy590, SQLITE_SO_ASC, yymsp[-8].minor.yy502, SQLITE_IDXTYPE_APPDEF); if( IN_RENAME_OBJECT && pParse->pNewIndex ){ sqlite3RenameTokenMap(pParse, pParse->pNewIndex->zName, &yymsp[-4].minor.yy0); } @@ -178545,29 +178960,29 @@ static YYACTIONTYPE yy_reduce( break; case 240: /* uniqueflag ::= UNIQUE */ case 282: /* raisetype ::= ABORT */ yytestcase(yyruleno==282); -{yymsp[0].minor.yy144 = OE_Abort;} +{yymsp[0].minor.yy502 = OE_Abort;} break; case 241: /* uniqueflag ::= */ -{yymsp[1].minor.yy144 = OE_None;} +{yymsp[1].minor.yy502 = OE_None;} break; case 244: /* eidlist ::= eidlist COMMA nm collate sortorder */ { - yymsp[-4].minor.yy14 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy14, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy144, yymsp[0].minor.yy144); + yymsp[-4].minor.yy402 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy402, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy502, yymsp[0].minor.yy502); } break; case 245: /* eidlist ::= nm collate sortorder */ { - yymsp[-2].minor.yy14 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy144, yymsp[0].minor.yy144); /*A-overwrites-Y*/ + yymsp[-2].minor.yy402 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy502, yymsp[0].minor.yy502); /*A-overwrites-Y*/ } break; case 248: /* cmd ::= DROP INDEX ifexists fullname */ -{sqlite3DropIndex(pParse, yymsp[0].minor.yy203, yymsp[-1].minor.yy144);} +{sqlite3DropIndex(pParse, yymsp[0].minor.yy563, yymsp[-1].minor.yy502);} break; case 249: /* cmd ::= VACUUM vinto */ -{sqlite3Vacuum(pParse,0,yymsp[0].minor.yy454);} +{sqlite3Vacuum(pParse,0,yymsp[0].minor.yy590);} break; case 250: /* cmd ::= VACUUM nm vinto */ -{sqlite3Vacuum(pParse,&yymsp[-1].minor.yy0,yymsp[0].minor.yy454);} +{sqlite3Vacuum(pParse,&yymsp[-1].minor.yy0,yymsp[0].minor.yy590);} break; case 253: /* cmd ::= PRAGMA nm dbnm */ {sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);} @@ -178589,50 +179004,50 @@ static YYACTIONTYPE yy_reduce( Token all; all.z = yymsp[-3].minor.yy0.z; all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n; - sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy427, &all); + sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy319, &all); } break; case 261: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ { - sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy144, yymsp[-4].minor.yy286.a, yymsp[-4].minor.yy286.b, yymsp[-2].minor.yy203, yymsp[0].minor.yy454, yymsp[-10].minor.yy144, yymsp[-8].minor.yy144); + sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy502, yymsp[-4].minor.yy28.a, yymsp[-4].minor.yy28.b, yymsp[-2].minor.yy563, yymsp[0].minor.yy590, yymsp[-10].minor.yy502, yymsp[-8].minor.yy502); yymsp[-10].minor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); /*A-overwrites-T*/ } break; case 262: /* trigger_time ::= BEFORE|AFTER */ -{ yymsp[0].minor.yy144 = yymsp[0].major; /*A-overwrites-X*/ } +{ yymsp[0].minor.yy502 = yymsp[0].major; /*A-overwrites-X*/ } break; case 263: /* trigger_time ::= INSTEAD OF */ -{ yymsp[-1].minor.yy144 = TK_INSTEAD;} +{ yymsp[-1].minor.yy502 = TK_INSTEAD;} break; case 264: /* trigger_time ::= */ -{ yymsp[1].minor.yy144 = TK_BEFORE; } +{ yymsp[1].minor.yy502 = TK_BEFORE; } break; case 265: /* trigger_event ::= DELETE|INSERT */ case 266: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==266); -{yymsp[0].minor.yy286.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy286.b = 0;} +{yymsp[0].minor.yy28.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy28.b = 0;} break; case 267: /* trigger_event ::= UPDATE OF idlist */ -{yymsp[-2].minor.yy286.a = TK_UPDATE; yymsp[-2].minor.yy286.b = yymsp[0].minor.yy132;} +{yymsp[-2].minor.yy28.a = TK_UPDATE; yymsp[-2].minor.yy28.b = yymsp[0].minor.yy204;} break; case 268: /* when_clause ::= */ case 287: /* key_opt ::= */ yytestcase(yyruleno==287); -{ yymsp[1].minor.yy454 = 0; } +{ yymsp[1].minor.yy590 = 0; } break; case 269: /* when_clause ::= WHEN expr */ case 288: /* key_opt ::= KEY expr */ yytestcase(yyruleno==288); -{ yymsp[-1].minor.yy454 = yymsp[0].minor.yy454; } +{ yymsp[-1].minor.yy590 = yymsp[0].minor.yy590; } break; case 270: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ { - assert( yymsp[-2].minor.yy427!=0 ); - yymsp[-2].minor.yy427->pLast->pNext = yymsp[-1].minor.yy427; - yymsp[-2].minor.yy427->pLast = yymsp[-1].minor.yy427; + assert( yymsp[-2].minor.yy319!=0 ); + yymsp[-2].minor.yy319->pLast->pNext = yymsp[-1].minor.yy319; + yymsp[-2].minor.yy319->pLast = yymsp[-1].minor.yy319; } break; case 271: /* trigger_cmd_list ::= trigger_cmd SEMI */ { - assert( yymsp[-1].minor.yy427!=0 ); - yymsp[-1].minor.yy427->pLast = yymsp[-1].minor.yy427; + assert( yymsp[-1].minor.yy319!=0 ); + yymsp[-1].minor.yy319->pLast = yymsp[-1].minor.yy319; } break; case 272: /* trnm ::= nm DOT nm */ @@ -178658,58 +179073,58 @@ static YYACTIONTYPE yy_reduce( } break; case 275: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ -{yylhsminor.yy427 = sqlite3TriggerUpdateStep(pParse, &yymsp[-6].minor.yy0, yymsp[-2].minor.yy203, yymsp[-3].minor.yy14, yymsp[-1].minor.yy454, yymsp[-7].minor.yy144, yymsp[-8].minor.yy0.z, yymsp[0].minor.yy168);} - yymsp[-8].minor.yy427 = yylhsminor.yy427; +{yylhsminor.yy319 = sqlite3TriggerUpdateStep(pParse, &yymsp[-6].minor.yy0, yymsp[-2].minor.yy563, yymsp[-3].minor.yy402, yymsp[-1].minor.yy590, yymsp[-7].minor.yy502, yymsp[-8].minor.yy0.z, yymsp[0].minor.yy342);} + yymsp[-8].minor.yy319 = yylhsminor.yy319; break; case 276: /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ { - yylhsminor.yy427 = sqlite3TriggerInsertStep(pParse,&yymsp[-4].minor.yy0,yymsp[-3].minor.yy132,yymsp[-2].minor.yy555,yymsp[-6].minor.yy144,yymsp[-1].minor.yy122,yymsp[-7].minor.yy168,yymsp[0].minor.yy168);/*yylhsminor.yy427-overwrites-yymsp[-6].minor.yy144*/ + yylhsminor.yy319 = sqlite3TriggerInsertStep(pParse,&yymsp[-4].minor.yy0,yymsp[-3].minor.yy204,yymsp[-2].minor.yy637,yymsp[-6].minor.yy502,yymsp[-1].minor.yy403,yymsp[-7].minor.yy342,yymsp[0].minor.yy342);/*yylhsminor.yy319-overwrites-yymsp[-6].minor.yy502*/ } - yymsp[-7].minor.yy427 = yylhsminor.yy427; + yymsp[-7].minor.yy319 = yylhsminor.yy319; break; case 277: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ -{yylhsminor.yy427 = sqlite3TriggerDeleteStep(pParse, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy454, yymsp[-5].minor.yy0.z, yymsp[0].minor.yy168);} - yymsp[-5].minor.yy427 = yylhsminor.yy427; +{yylhsminor.yy319 = sqlite3TriggerDeleteStep(pParse, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy590, yymsp[-5].minor.yy0.z, yymsp[0].minor.yy342);} + yymsp[-5].minor.yy319 = yylhsminor.yy319; break; case 278: /* trigger_cmd ::= scanpt select scanpt */ -{yylhsminor.yy427 = sqlite3TriggerSelectStep(pParse->db, yymsp[-1].minor.yy555, yymsp[-2].minor.yy168, yymsp[0].minor.yy168); /*yylhsminor.yy427-overwrites-yymsp[-1].minor.yy555*/} - yymsp[-2].minor.yy427 = yylhsminor.yy427; +{yylhsminor.yy319 = sqlite3TriggerSelectStep(pParse->db, yymsp[-1].minor.yy637, yymsp[-2].minor.yy342, yymsp[0].minor.yy342); /*yylhsminor.yy319-overwrites-yymsp[-1].minor.yy637*/} + yymsp[-2].minor.yy319 = yylhsminor.yy319; break; case 279: /* expr ::= RAISE LP IGNORE RP */ { - yymsp[-3].minor.yy454 = sqlite3PExpr(pParse, TK_RAISE, 0, 0); - if( yymsp[-3].minor.yy454 ){ - yymsp[-3].minor.yy454->affExpr = OE_Ignore; + yymsp[-3].minor.yy590 = sqlite3PExpr(pParse, TK_RAISE, 0, 0); + if( yymsp[-3].minor.yy590 ){ + yymsp[-3].minor.yy590->affExpr = OE_Ignore; } } break; case 280: /* expr ::= RAISE LP raisetype COMMA expr RP */ { - yymsp[-5].minor.yy454 = sqlite3PExpr(pParse, TK_RAISE, yymsp[-1].minor.yy454, 0); - if( yymsp[-5].minor.yy454 ) { - yymsp[-5].minor.yy454->affExpr = (char)yymsp[-3].minor.yy144; + yymsp[-5].minor.yy590 = sqlite3PExpr(pParse, TK_RAISE, yymsp[-1].minor.yy590, 0); + if( yymsp[-5].minor.yy590 ) { + yymsp[-5].minor.yy590->affExpr = (char)yymsp[-3].minor.yy502; } } break; case 281: /* raisetype ::= ROLLBACK */ -{yymsp[0].minor.yy144 = OE_Rollback;} +{yymsp[0].minor.yy502 = OE_Rollback;} break; case 283: /* raisetype ::= FAIL */ -{yymsp[0].minor.yy144 = OE_Fail;} +{yymsp[0].minor.yy502 = OE_Fail;} break; case 284: /* cmd ::= DROP TRIGGER ifexists fullname */ { - sqlite3DropTrigger(pParse,yymsp[0].minor.yy203,yymsp[-1].minor.yy144); + sqlite3DropTrigger(pParse,yymsp[0].minor.yy563,yymsp[-1].minor.yy502); } break; case 285: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ { - sqlite3Attach(pParse, yymsp[-3].minor.yy454, yymsp[-1].minor.yy454, yymsp[0].minor.yy454); + sqlite3Attach(pParse, yymsp[-3].minor.yy590, yymsp[-1].minor.yy590, yymsp[0].minor.yy590); } break; case 286: /* cmd ::= DETACH database_kw_opt expr */ { - sqlite3Detach(pParse, yymsp[0].minor.yy454); + sqlite3Detach(pParse, yymsp[0].minor.yy590); } break; case 289: /* cmd ::= REINDEX */ @@ -178726,7 +179141,7 @@ static YYACTIONTYPE yy_reduce( break; case 293: /* cmd ::= ALTER TABLE fullname RENAME TO nm */ { - sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy203,&yymsp[0].minor.yy0); + sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy563,&yymsp[0].minor.yy0); } break; case 294: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ @@ -178737,18 +179152,18 @@ static YYACTIONTYPE yy_reduce( break; case 295: /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ { - sqlite3AlterDropColumn(pParse, yymsp[-3].minor.yy203, &yymsp[0].minor.yy0); + sqlite3AlterDropColumn(pParse, yymsp[-3].minor.yy563, &yymsp[0].minor.yy0); } break; case 296: /* add_column_fullname ::= fullname */ { disableLookaside(pParse); - sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy203); + sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy563); } break; case 297: /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ { - sqlite3AlterRenameColumn(pParse, yymsp[-5].minor.yy203, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); + sqlite3AlterRenameColumn(pParse, yymsp[-5].minor.yy563, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); } break; case 298: /* cmd ::= create_vtab */ @@ -178759,7 +179174,7 @@ static YYACTIONTYPE yy_reduce( break; case 300: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ { - sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy144); + sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy502); } break; case 301: /* vtabarg ::= */ @@ -178772,20 +179187,20 @@ static YYACTIONTYPE yy_reduce( break; case 305: /* with ::= WITH wqlist */ case 306: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==306); -{ sqlite3WithPush(pParse, yymsp[0].minor.yy59, 1); } +{ sqlite3WithPush(pParse, yymsp[0].minor.yy125, 1); } break; case 307: /* wqas ::= AS */ -{yymsp[0].minor.yy462 = M10d_Any;} +{yymsp[0].minor.yy444 = M10d_Any;} break; case 308: /* wqas ::= AS MATERIALIZED */ -{yymsp[-1].minor.yy462 = M10d_Yes;} +{yymsp[-1].minor.yy444 = M10d_Yes;} break; case 309: /* wqas ::= AS NOT MATERIALIZED */ -{yymsp[-2].minor.yy462 = M10d_No;} +{yymsp[-2].minor.yy444 = M10d_No;} break; case 310: /* wqitem ::= withnm eidlist_opt wqas LP select RP */ { - yymsp[-5].minor.yy67 = sqlite3CteNew(pParse, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy14, yymsp[-1].minor.yy555, yymsp[-3].minor.yy462); /*A-overwrites-X*/ + yymsp[-5].minor.yy361 = sqlite3CteNew(pParse, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy402, yymsp[-1].minor.yy637, yymsp[-3].minor.yy444); /*A-overwrites-X*/ } break; case 311: /* withnm ::= nm */ @@ -178793,160 +179208,160 @@ static YYACTIONTYPE yy_reduce( break; case 312: /* wqlist ::= wqitem */ { - yymsp[0].minor.yy59 = sqlite3WithAdd(pParse, 0, yymsp[0].minor.yy67); /*A-overwrites-X*/ + yymsp[0].minor.yy125 = sqlite3WithAdd(pParse, 0, yymsp[0].minor.yy361); /*A-overwrites-X*/ } break; case 313: /* wqlist ::= wqlist COMMA wqitem */ { - yymsp[-2].minor.yy59 = sqlite3WithAdd(pParse, yymsp[-2].minor.yy59, yymsp[0].minor.yy67); + yymsp[-2].minor.yy125 = sqlite3WithAdd(pParse, yymsp[-2].minor.yy125, yymsp[0].minor.yy361); } break; case 314: /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ { - assert( yymsp[0].minor.yy211!=0 ); - sqlite3WindowChain(pParse, yymsp[0].minor.yy211, yymsp[-2].minor.yy211); - yymsp[0].minor.yy211->pNextWin = yymsp[-2].minor.yy211; - yylhsminor.yy211 = yymsp[0].minor.yy211; + assert( yymsp[0].minor.yy483!=0 ); + sqlite3WindowChain(pParse, yymsp[0].minor.yy483, yymsp[-2].minor.yy483); + yymsp[0].minor.yy483->pNextWin = yymsp[-2].minor.yy483; + yylhsminor.yy483 = yymsp[0].minor.yy483; } - yymsp[-2].minor.yy211 = yylhsminor.yy211; + yymsp[-2].minor.yy483 = yylhsminor.yy483; break; case 315: /* windowdefn ::= nm AS LP window RP */ { - if( ALWAYS(yymsp[-1].minor.yy211) ){ - yymsp[-1].minor.yy211->zName = sqlite3DbStrNDup(pParse->db, yymsp[-4].minor.yy0.z, yymsp[-4].minor.yy0.n); + if( ALWAYS(yymsp[-1].minor.yy483) ){ + yymsp[-1].minor.yy483->zName = sqlite3DbStrNDup(pParse->db, yymsp[-4].minor.yy0.z, yymsp[-4].minor.yy0.n); } - yylhsminor.yy211 = yymsp[-1].minor.yy211; + yylhsminor.yy483 = yymsp[-1].minor.yy483; } - yymsp[-4].minor.yy211 = yylhsminor.yy211; + yymsp[-4].minor.yy483 = yylhsminor.yy483; break; case 316: /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ { - yymsp[-4].minor.yy211 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy211, yymsp[-2].minor.yy14, yymsp[-1].minor.yy14, 0); + yymsp[-4].minor.yy483 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy483, yymsp[-2].minor.yy402, yymsp[-1].minor.yy402, 0); } break; case 317: /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ { - yylhsminor.yy211 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy211, yymsp[-2].minor.yy14, yymsp[-1].minor.yy14, &yymsp[-5].minor.yy0); + yylhsminor.yy483 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy483, yymsp[-2].minor.yy402, yymsp[-1].minor.yy402, &yymsp[-5].minor.yy0); } - yymsp[-5].minor.yy211 = yylhsminor.yy211; + yymsp[-5].minor.yy483 = yylhsminor.yy483; break; case 318: /* window ::= ORDER BY sortlist frame_opt */ { - yymsp[-3].minor.yy211 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy211, 0, yymsp[-1].minor.yy14, 0); + yymsp[-3].minor.yy483 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy483, 0, yymsp[-1].minor.yy402, 0); } break; case 319: /* window ::= nm ORDER BY sortlist frame_opt */ { - yylhsminor.yy211 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy211, 0, yymsp[-1].minor.yy14, &yymsp[-4].minor.yy0); + yylhsminor.yy483 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy483, 0, yymsp[-1].minor.yy402, &yymsp[-4].minor.yy0); } - yymsp[-4].minor.yy211 = yylhsminor.yy211; + yymsp[-4].minor.yy483 = yylhsminor.yy483; break; case 320: /* window ::= nm frame_opt */ { - yylhsminor.yy211 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy211, 0, 0, &yymsp[-1].minor.yy0); + yylhsminor.yy483 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy483, 0, 0, &yymsp[-1].minor.yy0); } - yymsp[-1].minor.yy211 = yylhsminor.yy211; + yymsp[-1].minor.yy483 = yylhsminor.yy483; break; case 321: /* frame_opt ::= */ { - yymsp[1].minor.yy211 = sqlite3WindowAlloc(pParse, 0, TK_UNBOUNDED, 0, TK_CURRENT, 0, 0); + yymsp[1].minor.yy483 = sqlite3WindowAlloc(pParse, 0, TK_UNBOUNDED, 0, TK_CURRENT, 0, 0); } break; case 322: /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ { - yylhsminor.yy211 = sqlite3WindowAlloc(pParse, yymsp[-2].minor.yy144, yymsp[-1].minor.yy509.eType, yymsp[-1].minor.yy509.pExpr, TK_CURRENT, 0, yymsp[0].minor.yy462); + yylhsminor.yy483 = sqlite3WindowAlloc(pParse, yymsp[-2].minor.yy502, yymsp[-1].minor.yy205.eType, yymsp[-1].minor.yy205.pExpr, TK_CURRENT, 0, yymsp[0].minor.yy444); } - yymsp[-2].minor.yy211 = yylhsminor.yy211; + yymsp[-2].minor.yy483 = yylhsminor.yy483; break; case 323: /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ { - yylhsminor.yy211 = sqlite3WindowAlloc(pParse, yymsp[-5].minor.yy144, yymsp[-3].minor.yy509.eType, yymsp[-3].minor.yy509.pExpr, yymsp[-1].minor.yy509.eType, yymsp[-1].minor.yy509.pExpr, yymsp[0].minor.yy462); + yylhsminor.yy483 = sqlite3WindowAlloc(pParse, yymsp[-5].minor.yy502, yymsp[-3].minor.yy205.eType, yymsp[-3].minor.yy205.pExpr, yymsp[-1].minor.yy205.eType, yymsp[-1].minor.yy205.pExpr, yymsp[0].minor.yy444); } - yymsp[-5].minor.yy211 = yylhsminor.yy211; + yymsp[-5].minor.yy483 = yylhsminor.yy483; break; case 325: /* frame_bound_s ::= frame_bound */ case 327: /* frame_bound_e ::= frame_bound */ yytestcase(yyruleno==327); -{yylhsminor.yy509 = yymsp[0].minor.yy509;} - yymsp[0].minor.yy509 = yylhsminor.yy509; +{yylhsminor.yy205 = yymsp[0].minor.yy205;} + yymsp[0].minor.yy205 = yylhsminor.yy205; break; case 326: /* frame_bound_s ::= UNBOUNDED PRECEDING */ case 328: /* frame_bound_e ::= UNBOUNDED FOLLOWING */ yytestcase(yyruleno==328); case 330: /* frame_bound ::= CURRENT ROW */ yytestcase(yyruleno==330); -{yylhsminor.yy509.eType = yymsp[-1].major; yylhsminor.yy509.pExpr = 0;} - yymsp[-1].minor.yy509 = yylhsminor.yy509; +{yylhsminor.yy205.eType = yymsp[-1].major; yylhsminor.yy205.pExpr = 0;} + yymsp[-1].minor.yy205 = yylhsminor.yy205; break; case 329: /* frame_bound ::= expr PRECEDING|FOLLOWING */ -{yylhsminor.yy509.eType = yymsp[0].major; yylhsminor.yy509.pExpr = yymsp[-1].minor.yy454;} - yymsp[-1].minor.yy509 = yylhsminor.yy509; +{yylhsminor.yy205.eType = yymsp[0].major; yylhsminor.yy205.pExpr = yymsp[-1].minor.yy590;} + yymsp[-1].minor.yy205 = yylhsminor.yy205; break; case 331: /* frame_exclude_opt ::= */ -{yymsp[1].minor.yy462 = 0;} +{yymsp[1].minor.yy444 = 0;} break; case 332: /* frame_exclude_opt ::= EXCLUDE frame_exclude */ -{yymsp[-1].minor.yy462 = yymsp[0].minor.yy462;} +{yymsp[-1].minor.yy444 = yymsp[0].minor.yy444;} break; case 333: /* frame_exclude ::= NO OTHERS */ case 334: /* frame_exclude ::= CURRENT ROW */ yytestcase(yyruleno==334); -{yymsp[-1].minor.yy462 = yymsp[-1].major; /*A-overwrites-X*/} +{yymsp[-1].minor.yy444 = yymsp[-1].major; /*A-overwrites-X*/} break; case 335: /* frame_exclude ::= GROUP|TIES */ -{yymsp[0].minor.yy462 = yymsp[0].major; /*A-overwrites-X*/} +{yymsp[0].minor.yy444 = yymsp[0].major; /*A-overwrites-X*/} break; case 336: /* window_clause ::= WINDOW windowdefn_list */ -{ yymsp[-1].minor.yy211 = yymsp[0].minor.yy211; } +{ yymsp[-1].minor.yy483 = yymsp[0].minor.yy483; } break; case 337: /* filter_over ::= filter_clause over_clause */ { - if( yymsp[0].minor.yy211 ){ - yymsp[0].minor.yy211->pFilter = yymsp[-1].minor.yy454; + if( yymsp[0].minor.yy483 ){ + yymsp[0].minor.yy483->pFilter = yymsp[-1].minor.yy590; }else{ - sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy454); + sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy590); } - yylhsminor.yy211 = yymsp[0].minor.yy211; + yylhsminor.yy483 = yymsp[0].minor.yy483; } - yymsp[-1].minor.yy211 = yylhsminor.yy211; + yymsp[-1].minor.yy483 = yylhsminor.yy483; break; case 338: /* filter_over ::= over_clause */ { - yylhsminor.yy211 = yymsp[0].minor.yy211; + yylhsminor.yy483 = yymsp[0].minor.yy483; } - yymsp[0].minor.yy211 = yylhsminor.yy211; + yymsp[0].minor.yy483 = yylhsminor.yy483; break; case 339: /* filter_over ::= filter_clause */ { - yylhsminor.yy211 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); - if( yylhsminor.yy211 ){ - yylhsminor.yy211->eFrmType = TK_FILTER; - yylhsminor.yy211->pFilter = yymsp[0].minor.yy454; + yylhsminor.yy483 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); + if( yylhsminor.yy483 ){ + yylhsminor.yy483->eFrmType = TK_FILTER; + yylhsminor.yy483->pFilter = yymsp[0].minor.yy590; }else{ - sqlite3ExprDelete(pParse->db, yymsp[0].minor.yy454); + sqlite3ExprDelete(pParse->db, yymsp[0].minor.yy590); } } - yymsp[0].minor.yy211 = yylhsminor.yy211; + yymsp[0].minor.yy483 = yylhsminor.yy483; break; case 340: /* over_clause ::= OVER LP window RP */ { - yymsp[-3].minor.yy211 = yymsp[-1].minor.yy211; - assert( yymsp[-3].minor.yy211!=0 ); + yymsp[-3].minor.yy483 = yymsp[-1].minor.yy483; + assert( yymsp[-3].minor.yy483!=0 ); } break; case 341: /* over_clause ::= OVER nm */ { - yymsp[-1].minor.yy211 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); - if( yymsp[-1].minor.yy211 ){ - yymsp[-1].minor.yy211->zName = sqlite3DbStrNDup(pParse->db, yymsp[0].minor.yy0.z, yymsp[0].minor.yy0.n); + yymsp[-1].minor.yy483 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); + if( yymsp[-1].minor.yy483 ){ + yymsp[-1].minor.yy483->zName = sqlite3DbStrNDup(pParse->db, yymsp[0].minor.yy0.z, yymsp[0].minor.yy0.n); } } break; case 342: /* filter_clause ::= FILTER LP WHERE expr RP */ -{ yymsp[-4].minor.yy454 = yymsp[-1].minor.yy454; } +{ yymsp[-4].minor.yy590 = yymsp[-1].minor.yy590; } break; case 343: /* term ::= QNUMBER */ { - yylhsminor.yy454=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); - sqlite3DequoteNumber(pParse, yylhsminor.yy454); + yylhsminor.yy590=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); + sqlite3DequoteNumber(pParse, yylhsminor.yy590); } - yymsp[0].minor.yy454 = yylhsminor.yy454; + yymsp[0].minor.yy590 = yylhsminor.yy590; break; default: /* (344) input ::= cmdlist */ yytestcase(yyruleno==344); @@ -179076,7 +179491,7 @@ static void yy_syntax_error( UNUSED_PARAMETER(yymajor); /* Silence some compiler warnings */ if( TOKEN.z[0] ){ - sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", &TOKEN); + parserSyntaxError(pParse, &TOKEN); }else{ sqlite3ErrorMsg(pParse, "incomplete input"); } @@ -180127,7 +180542,7 @@ SQLITE_PRIVATE int sqlite3GetToken(const unsigned char *z, int *tokenType){ case CC_MINUS: { if( z[1]=='-' ){ for(i=2; (c=z[i])!=0 && c!='\n'; i++){} - *tokenType = TK_SPACE; /* IMP: R-22934-25134 */ + *tokenType = TK_COMMENT; return i; }else if( z[1]=='>' ){ *tokenType = TK_PTR; @@ -180163,7 +180578,7 @@ SQLITE_PRIVATE int sqlite3GetToken(const unsigned char *z, int *tokenType){ } for(i=3, c=z[2]; (c!='*' || z[i]!='/') && (c=z[i])!=0; i++){} if( c ) i++; - *tokenType = TK_SPACE; /* IMP: R-22934-25134 */ + *tokenType = TK_COMMENT; return i; } case CC_PERCENT: { @@ -180492,12 +180907,12 @@ SQLITE_PRIVATE int sqlite3RunParser(Parse *pParse, const char *zSql){ if( tokenType>=TK_WINDOW ){ assert( tokenType==TK_SPACE || tokenType==TK_OVER || tokenType==TK_FILTER || tokenType==TK_ILLEGAL || tokenType==TK_WINDOW - || tokenType==TK_QNUMBER + || tokenType==TK_QNUMBER || tokenType==TK_COMMENT ); #else if( tokenType>=TK_SPACE ){ assert( tokenType==TK_SPACE || tokenType==TK_ILLEGAL - || tokenType==TK_QNUMBER + || tokenType==TK_QNUMBER || tokenType==TK_COMMENT ); #endif /* SQLITE_OMIT_WINDOWFUNC */ if( AtomicLoad(&db->u1.isInterrupted) ){ @@ -180531,6 +180946,9 @@ SQLITE_PRIVATE int sqlite3RunParser(Parse *pParse, const char *zSql){ assert( n==6 ); tokenType = analyzeFilterKeyword((const u8*)&zSql[6], lastTokenParsed); #endif /* SQLITE_OMIT_WINDOWFUNC */ + }else if( tokenType==TK_COMMENT && (db->flags & SQLITE_Comments)!=0 ){ + zSql += n; + continue; }else if( tokenType!=TK_QNUMBER ){ Token x; x.z = zSql; @@ -180567,7 +180985,9 @@ SQLITE_PRIVATE int sqlite3RunParser(Parse *pParse, const char *zSql){ if( pParse->zErrMsg==0 ){ pParse->zErrMsg = sqlite3MPrintf(db, "%s", sqlite3ErrStr(pParse->rc)); } - sqlite3_log(pParse->rc, "%s in \"%s\"", pParse->zErrMsg, pParse->zTail); + if( (pParse->prepFlags & SQLITE_PREPARE_DONT_LOG)==0 ){ + sqlite3_log(pParse->rc, "%s in \"%s\"", pParse->zErrMsg, pParse->zTail); + } nErr++; } pParse->zTail = zSql; @@ -180635,6 +181055,7 @@ SQLITE_PRIVATE char *sqlite3Normalize( n = sqlite3GetToken((unsigned char*)zSql+i, &tokenType); if( NEVER(n<=0) ) break; switch( tokenType ){ + case TK_COMMENT: case TK_SPACE: { break; } @@ -181884,7 +182305,7 @@ SQLITE_API int sqlite3_config(int op, ...){ static int setupLookaside(sqlite3 *db, void *pBuf, int sz, int cnt){ #ifndef SQLITE_OMIT_LOOKASIDE void *pStart; - sqlite3_int64 szAlloc = sz*(sqlite3_int64)cnt; + sqlite3_int64 szAlloc; int nBig; /* Number of full-size slots */ int nSm; /* Number smaller LOOKASIDE_SMALL-byte slots */ @@ -181903,7 +182324,9 @@ static int setupLookaside(sqlite3 *db, void *pBuf, int sz, int cnt){ */ sz = ROUNDDOWN8(sz); /* IMP: R-33038-09382 */ if( sz<=(int)sizeof(LookasideSlot*) ) sz = 0; + if( sz>65528 ) sz = 65528; if( cnt<0 ) cnt = 0; + szAlloc = (i64)sz*(i64)cnt; if( sz==0 || cnt==0 ){ sz = 0; pStart = 0; @@ -181918,10 +182341,10 @@ static int setupLookaside(sqlite3 *db, void *pBuf, int sz, int cnt){ #ifndef SQLITE_OMIT_TWOSIZE_LOOKASIDE if( sz>=LOOKASIDE_SMALL*3 ){ nBig = szAlloc/(3*LOOKASIDE_SMALL+sz); - nSm = (szAlloc - sz*nBig)/LOOKASIDE_SMALL; + nSm = (szAlloc - (i64)sz*(i64)nBig)/LOOKASIDE_SMALL; }else if( sz>=LOOKASIDE_SMALL*2 ){ nBig = szAlloc/(LOOKASIDE_SMALL+sz); - nSm = (szAlloc - sz*nBig)/LOOKASIDE_SMALL; + nSm = (szAlloc - (i64)sz*(i64)nBig)/LOOKASIDE_SMALL; }else #endif /* SQLITE_OMIT_TWOSIZE_LOOKASIDE */ if( sz>0 ){ @@ -182076,7 +182499,7 @@ SQLITE_API int sqlite3_db_config(sqlite3 *db, int op, ...){ default: { static const struct { int op; /* The opcode */ - u32 mask; /* Mask of the bit in sqlite3.flags to set/clear */ + u64 mask; /* Mask of the bit in sqlite3.flags to set/clear */ } aFlagOp[] = { { SQLITE_DBCONFIG_ENABLE_FKEY, SQLITE_ForeignKeys }, { SQLITE_DBCONFIG_ENABLE_TRIGGER, SQLITE_EnableTrigger }, @@ -182097,6 +182520,9 @@ SQLITE_API int sqlite3_db_config(sqlite3 *db, int op, ...){ { SQLITE_DBCONFIG_TRUSTED_SCHEMA, SQLITE_TrustedSchema }, { SQLITE_DBCONFIG_STMT_SCANSTATUS, SQLITE_StmtScanStatus }, { SQLITE_DBCONFIG_REVERSE_SCANORDER, SQLITE_ReverseOrder }, + { SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE, SQLITE_AttachCreate }, + { SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE, SQLITE_AttachWrite }, + { SQLITE_DBCONFIG_ENABLE_COMMENTS, SQLITE_Comments }, }; unsigned int i; rc = SQLITE_ERROR; /* IMP: R-42790-23372 */ @@ -182540,10 +182966,6 @@ SQLITE_PRIVATE void sqlite3LeaveMutexAndCloseZombie(sqlite3 *db){ sqlite3Error(db, SQLITE_OK); /* Deallocates any cached error strings. */ sqlite3ValueFree(db->pErr); sqlite3CloseExtensions(db); -#if SQLITE_USER_AUTHENTICATION - sqlite3_free(db->auth.zAuthUser); - sqlite3_free(db->auth.zAuthPW); -#endif db->eOpenState = SQLITE_STATE_ERROR; @@ -183978,8 +184400,8 @@ static const int aHardLimit[] = { #if SQLITE_MAX_VDBE_OP<40 # error SQLITE_MAX_VDBE_OP must be at least 40 #endif -#if SQLITE_MAX_FUNCTION_ARG<0 || SQLITE_MAX_FUNCTION_ARG>127 -# error SQLITE_MAX_FUNCTION_ARG must be between 0 and 127 +#if SQLITE_MAX_FUNCTION_ARG<0 || SQLITE_MAX_FUNCTION_ARG>32767 +# error SQLITE_MAX_FUNCTION_ARG must be between 0 and 32767 #endif #if SQLITE_MAX_ATTACHED<0 || SQLITE_MAX_ATTACHED>125 # error SQLITE_MAX_ATTACHED must be between 0 and 125 @@ -184046,8 +184468,8 @@ SQLITE_API int sqlite3_limit(sqlite3 *db, int limitId, int newLimit){ if( newLimit>=0 ){ /* IMP: R-52476-28732 */ if( newLimit>aHardLimit[limitId] ){ newLimit = aHardLimit[limitId]; /* IMP: R-51463-25634 */ - }else if( newLimit<1 && limitId==SQLITE_LIMIT_LENGTH ){ - newLimit = 1; + }else if( newLimitaLimit[limitId] = newLimit; } @@ -184442,6 +184864,9 @@ static int openDatabase( | SQLITE_EnableTrigger | SQLITE_EnableView | SQLITE_CacheSpill + | SQLITE_AttachCreate + | SQLITE_AttachWrite + | SQLITE_Comments #if !defined(SQLITE_TRUSTED_SCHEMA) || SQLITE_TRUSTED_SCHEMA+0!=0 | SQLITE_TrustedSchema #endif @@ -185391,7 +185816,6 @@ SQLITE_API int sqlite3_test_control(int op, ...){ /* Invoke these debugging routines so that the compiler does not ** issue "defined but not used" warnings. */ if( x==9999 ){ - sqlite3ShowExpr(0); sqlite3ShowExpr(0); sqlite3ShowExprList(0); sqlite3ShowIdList(0); @@ -187748,6 +188172,7 @@ SQLITE_PRIVATE int sqlite3Fts3MsrIncrNext( SQLITE_PRIVATE int sqlite3Fts3EvalPhrasePoslist(Fts3Cursor *, Fts3Expr *, int iCol, char **); SQLITE_PRIVATE int sqlite3Fts3MsrOvfl(Fts3Cursor *, Fts3MultiSegReader *, int *); SQLITE_PRIVATE int sqlite3Fts3MsrIncrRestart(Fts3MultiSegReader *pCsr); +SQLITE_PRIVATE int sqlite3Fts3MsrCancel(Fts3Cursor*, Fts3Expr*); /* fts3_tokenize_vtab.c */ SQLITE_PRIVATE int sqlite3Fts3InitTok(sqlite3*, Fts3Hash *, void(*xDestroy)(void*)); @@ -193266,6 +193691,24 @@ static void fts3EvalRestart( } } +/* +** Expression node pExpr is an MSR phrase. This function restarts pExpr +** so that it is a regular phrase query, not an MSR. SQLITE_OK is returned +** if successful, or an SQLite error code otherwise. +*/ +SQLITE_PRIVATE int sqlite3Fts3MsrCancel(Fts3Cursor *pCsr, Fts3Expr *pExpr){ + int rc = SQLITE_OK; + if( pExpr->bEof==0 ){ + i64 iDocid = pExpr->iDocid; + fts3EvalRestart(pCsr, pExpr, &rc); + while( rc==SQLITE_OK && pExpr->iDocid!=iDocid ){ + fts3EvalNextRow(pCsr, pExpr, &rc); + if( pExpr->bEof ) rc = FTS_CORRUPT_VTAB; + } + } + return rc; +} + /* ** After allocating the Fts3Expr.aMI[] array for each phrase in the ** expression rooted at pExpr, the cursor iterates through all rows matched @@ -193653,7 +194096,7 @@ SQLITE_PRIVATE int sqlite3Fts3Corrupt(){ } #endif -#if !SQLITE_CORE +#if !defined(SQLITE_CORE) /* ** Initialize API pointer table, if required. */ @@ -205223,6 +205666,22 @@ static int fts3ExprTermOffsetInit(Fts3Expr *pExpr, int iPhrase, void *ctx){ return rc; } +/* +** If expression pExpr is a phrase expression that uses an MSR query, +** restart it as a regular, non-incremental query. Return SQLITE_OK +** if successful, or an SQLite error code otherwise. +*/ +static int fts3ExprRestartIfCb(Fts3Expr *pExpr, int iPhrase, void *ctx){ + TermOffsetCtx *p = (TermOffsetCtx*)ctx; + int rc = SQLITE_OK; + UNUSED_PARAMETER(iPhrase); + if( pExpr->pPhrase && pExpr->pPhrase->bIncr ){ + rc = sqlite3Fts3MsrCancel(p->pCsr, pExpr); + pExpr->pPhrase->bIncr = 0; + } + return rc; +} + /* ** Implementation of offsets() function. */ @@ -205259,6 +205718,12 @@ SQLITE_PRIVATE void sqlite3Fts3Offsets( sCtx.iDocid = pCsr->iPrevId; sCtx.pCsr = pCsr; + /* If a query restart will be required, do it here, rather than later of + ** after pointers to poslist buffers that may be invalidated by a restart + ** have been saved. */ + rc = sqlite3Fts3ExprIterate(pCsr->pExpr, fts3ExprRestartIfCb, (void*)&sCtx); + if( rc!=SQLITE_OK ) goto offsets_out; + /* Loop through the table columns, appending offset information to ** string-buffer res for each column. */ @@ -215426,8 +215891,8 @@ static void rtreenode(sqlite3_context *ctx, int nArg, sqlite3_value **apArg){ sqlite3_str_append(pOut, "}", 1); } errCode = sqlite3_str_errcode(pOut); - sqlite3_result_text(ctx, sqlite3_str_finish(pOut), -1, sqlite3_free); sqlite3_result_error_code(ctx, errCode); + sqlite3_result_text(ctx, sqlite3_str_finish(pOut), -1, sqlite3_free); } /* This routine implements an SQL function that returns the "depth" parameter @@ -217943,7 +218408,7 @@ SQLITE_API int sqlite3_rtree_query_callback( ); } -#if !SQLITE_CORE +#ifndef SQLITE_CORE #ifdef _WIN32 __declspec(dllexport) #endif @@ -218534,7 +218999,7 @@ SQLITE_PRIVATE int sqlite3IcuInit(sqlite3 *db){ return rc; } -#if !SQLITE_CORE +#ifndef SQLITE_CORE #ifdef _WIN32 __declspec(dllexport) #endif @@ -226132,6 +226597,24 @@ static int dbpageRowid(sqlite3_vtab_cursor *pCursor, sqlite_int64 *pRowid){ return SQLITE_OK; } +/* +** Open write transactions. Since we do not know in advance which database +** files will be written by the sqlite_dbpage virtual table, start a write +** transaction on them all. +** +** Return SQLITE_OK if successful, or an SQLite error code otherwise. +*/ +static int dbpageBeginTrans(DbpageTable *pTab){ + sqlite3 *db = pTab->db; + int rc = SQLITE_OK; + int i; + for(i=0; rc==SQLITE_OK && inDb; i++){ + Btree *pBt = db->aDb[i].pBt; + if( pBt ) rc = sqlite3BtreeBeginTrans(pBt, 1, 0); + } + return rc; +} + static int dbpageUpdate( sqlite3_vtab *pVtab, int argc, @@ -226199,6 +226682,12 @@ static int dbpageUpdate( goto update_fail; } } + + if( dbpageBeginTrans(pTab)!=SQLITE_OK ){ + zErr = "failed to open transaction"; + goto update_fail; + } + pPager = sqlite3BtreePager(pBt); rc = sqlite3PagerGet(pPager, pgno, (DbPage**)&pDbPage, 0); if( rc==SQLITE_OK ){ @@ -226208,28 +226697,21 @@ static int dbpageUpdate( memcpy(aPage, pData, szPage); pTab->pgnoTrunc = 0; } + }else{ + pTab->pgnoTrunc = 0; } sqlite3PagerUnref(pDbPage); return rc; update_fail: + pTab->pgnoTrunc = 0; sqlite3_free(pVtab->zErrMsg); pVtab->zErrMsg = sqlite3_mprintf("%s", zErr); return SQLITE_ERROR; } -/* Since we do not know in advance which database files will be -** written by the sqlite_dbpage virtual table, start a write transaction -** on them all. -*/ static int dbpageBegin(sqlite3_vtab *pVtab){ DbpageTable *pTab = (DbpageTable *)pVtab; - sqlite3 *db = pTab->db; - int i; - for(i=0; inDb; i++){ - Btree *pBt = db->aDb[i].pBt; - if( pBt ) (void)sqlite3BtreeBeginTrans(pBt, 1, 0); - } pTab->pgnoTrunc = 0; return SQLITE_OK; } @@ -226241,7 +226723,11 @@ static int dbpageSync(sqlite3_vtab *pVtab){ if( pTab->pgnoTrunc>0 ){ Btree *pBt = pTab->db->aDb[pTab->iDbTrunc].pBt; Pager *pPager = sqlite3BtreePager(pBt); - sqlite3PagerTruncateImage(pPager, pTab->pgnoTrunc); + sqlite3BtreeEnter(pBt); + if( pTab->pgnoTruncpgnoTrunc); + } + sqlite3BtreeLeave(pBt); } pTab->pgnoTrunc = 0; return SQLITE_OK; @@ -226261,7 +226747,7 @@ static int dbpageRollbackTo(sqlite3_vtab *pVtab, int notUsed1){ */ SQLITE_PRIVATE int sqlite3DbpageRegister(sqlite3 *db){ static sqlite3_module dbpage_module = { - 0, /* iVersion */ + 2, /* iVersion */ dbpageConnect, /* xCreate */ dbpageConnect, /* xConnect */ dbpageBestIndex, /* xBestIndex */ @@ -226436,11 +226922,13 @@ struct sqlite3_changeset_iter { struct SessionTable { SessionTable *pNext; char *zName; /* Local name of table */ - int nCol; /* Number of columns in table zName */ + int nCol; /* Number of non-hidden columns */ + int nTotalCol; /* Number of columns including hidden */ int bStat1; /* True if this is sqlite_stat1 */ int bRowid; /* True if this table uses rowid for PK */ const char **azCol; /* Column names */ const char **azDflt; /* Default value expressions */ + int *aiIdx; /* Index to pass to xNew/xOld */ u8 *abPK; /* Array of primary key flags */ int nEntry; /* Total number of entries in hash table */ int nChange; /* Size of apChange[] array */ @@ -226843,22 +227331,22 @@ static int sessionPreupdateHash( unsigned int h = 0; /* Hash value to return */ int i; /* Used to iterate through columns */ + assert( pTab->nTotalCol==pSession->hook.xCount(pSession->hook.pCtx) ); if( pTab->bRowid ){ - assert( pTab->nCol-1==pSession->hook.xCount(pSession->hook.pCtx) ); h = sessionHashAppendI64(h, iRowid); }else{ assert( *pbNullPK==0 ); - assert( pTab->nCol==pSession->hook.xCount(pSession->hook.pCtx) ); for(i=0; inCol; i++){ if( pTab->abPK[i] ){ int rc; int eType; sqlite3_value *pVal; + int iIdx = pTab->aiIdx[i]; if( bNew ){ - rc = pSession->hook.xNew(pSession->hook.pCtx, i, &pVal); + rc = pSession->hook.xNew(pSession->hook.pCtx, iIdx, &pVal); }else{ - rc = pSession->hook.xOld(pSession->hook.pCtx, i, &pVal); + rc = pSession->hook.xOld(pSession->hook.pCtx, iIdx, &pVal); } if( rc!=SQLITE_OK ) return rc; @@ -227195,6 +227683,7 @@ static int sessionPreupdateEqual( sqlite3_value *pVal; /* Value returned by preupdate_new/old */ int rc; /* Error code from preupdate_new/old */ int eType = *a++; /* Type of value from change record */ + int iIdx = pTab->aiIdx[iCol]; /* The following calls to preupdate_new() and preupdate_old() can not ** fail. This is because they cache their return values, and by the @@ -227203,10 +227692,10 @@ static int sessionPreupdateEqual( ** this (that the method has already been called). */ if( op==SQLITE_INSERT ){ /* assert( db->pPreUpdate->pNewUnpacked || db->pPreUpdate->aNew ); */ - rc = pSession->hook.xNew(pSession->hook.pCtx, iCol, &pVal); + rc = pSession->hook.xNew(pSession->hook.pCtx, iIdx, &pVal); }else{ /* assert( db->pPreUpdate->pUnpacked ); */ - rc = pSession->hook.xOld(pSession->hook.pCtx, iCol, &pVal); + rc = pSession->hook.xOld(pSession->hook.pCtx, iIdx, &pVal); } assert( rc==SQLITE_OK ); (void)rc; /* Suppress warning about unused variable */ @@ -227331,9 +227820,11 @@ static int sessionTableInfo( const char *zDb, /* Name of attached database (e.g. "main") */ const char *zThis, /* Table name */ int *pnCol, /* OUT: number of columns */ + int *pnTotalCol, /* OUT: number of hidden columns */ const char **pzTab, /* OUT: Copy of zThis */ const char ***pazCol, /* OUT: Array of column names for table */ const char ***pazDflt, /* OUT: Array of default value expressions */ + int **paiIdx, /* OUT: Array of xNew/xOld indexes */ u8 **pabPK, /* OUT: Array of booleans - true for PK col */ int *pbRowid /* OUT: True if only PK is a rowid */ ){ @@ -227348,6 +227839,7 @@ static int sessionTableInfo( char **azCol = 0; char **azDflt = 0; u8 *abPK = 0; + int *aiIdx = 0; int bRowid = 0; /* Set to true to use rowid as PK */ assert( pazCol && pabPK ); @@ -227355,6 +227847,8 @@ static int sessionTableInfo( *pazCol = 0; *pabPK = 0; *pnCol = 0; + if( pnTotalCol ) *pnTotalCol = 0; + if( paiIdx ) *paiIdx = 0; if( pzTab ) *pzTab = 0; if( pazDflt ) *pazDflt = 0; @@ -227364,9 +227858,9 @@ static int sessionTableInfo( if( rc==SQLITE_OK ){ /* For sqlite_stat1, pretend that (tbl,idx) is the PRIMARY KEY. */ zPragma = sqlite3_mprintf( - "SELECT 0, 'tbl', '', 0, '', 1 UNION ALL " - "SELECT 1, 'idx', '', 0, '', 2 UNION ALL " - "SELECT 2, 'stat', '', 0, '', 0" + "SELECT 0, 'tbl', '', 0, '', 1, 0 UNION ALL " + "SELECT 1, 'idx', '', 0, '', 2, 0 UNION ALL " + "SELECT 2, 'stat', '', 0, '', 0, 0" ); }else if( rc==SQLITE_ERROR ){ zPragma = sqlite3_mprintf(""); @@ -227374,7 +227868,7 @@ static int sessionTableInfo( return rc; } }else{ - zPragma = sqlite3_mprintf("PRAGMA '%q'.table_info('%q')", zDb, zThis); + zPragma = sqlite3_mprintf("PRAGMA '%q'.table_xinfo('%q')", zDb, zThis); } if( !zPragma ){ return SQLITE_NOMEM; @@ -227391,7 +227885,9 @@ static int sessionTableInfo( while( SQLITE_ROW==sqlite3_step(pStmt) ){ nByte += sqlite3_column_bytes(pStmt, 1); /* name */ nByte += sqlite3_column_bytes(pStmt, 4); /* dflt_value */ - nDbCol++; + if( sqlite3_column_int(pStmt, 6)==0 ){ /* !hidden */ + nDbCol++; + } if( sqlite3_column_int(pStmt, 5) ) bRowid = 0; /* pk */ } if( nDbCol==0 ) bRowid = 0; @@ -227400,7 +227896,7 @@ static int sessionTableInfo( rc = sqlite3_reset(pStmt); if( rc==SQLITE_OK ){ - nByte += nDbCol * (sizeof(const char *)*2 + sizeof(u8) + 1 + 1); + nByte += nDbCol * (sizeof(const char *)*2 +sizeof(int)+sizeof(u8) + 1 + 1); pAlloc = sessionMalloc64(pSession, nByte); if( pAlloc==0 ){ rc = SQLITE_NOMEM; @@ -227411,8 +227907,8 @@ static int sessionTableInfo( if( rc==SQLITE_OK ){ azCol = (char **)pAlloc; azDflt = (char**)&azCol[nDbCol]; - pAlloc = (u8 *)&azDflt[nDbCol]; - abPK = (u8 *)pAlloc; + aiIdx = (int*)&azDflt[nDbCol]; + abPK = (u8 *)&aiIdx[nDbCol]; pAlloc = &abPK[nDbCol]; if( pzTab ){ memcpy(pAlloc, zThis, nThis+1); @@ -227427,27 +227923,32 @@ static int sessionTableInfo( azCol[i] = (char*)pAlloc; pAlloc += nName+1; abPK[i] = 1; + aiIdx[i] = -1; i++; } while( SQLITE_ROW==sqlite3_step(pStmt) ){ - int nName = sqlite3_column_bytes(pStmt, 1); - int nDflt = sqlite3_column_bytes(pStmt, 4); - const unsigned char *zName = sqlite3_column_text(pStmt, 1); - const unsigned char *zDflt = sqlite3_column_text(pStmt, 4); - - if( zName==0 ) break; - memcpy(pAlloc, zName, nName+1); - azCol[i] = (char *)pAlloc; - pAlloc += nName+1; - if( zDflt ){ - memcpy(pAlloc, zDflt, nDflt+1); - azDflt[i] = (char *)pAlloc; - pAlloc += nDflt+1; - }else{ - azDflt[i] = 0; + if( sqlite3_column_int(pStmt, 6)==0 ){ /* !hidden */ + int nName = sqlite3_column_bytes(pStmt, 1); + int nDflt = sqlite3_column_bytes(pStmt, 4); + const unsigned char *zName = sqlite3_column_text(pStmt, 1); + const unsigned char *zDflt = sqlite3_column_text(pStmt, 4); + + if( zName==0 ) break; + memcpy(pAlloc, zName, nName+1); + azCol[i] = (char *)pAlloc; + pAlloc += nName+1; + if( zDflt ){ + memcpy(pAlloc, zDflt, nDflt+1); + azDflt[i] = (char *)pAlloc; + pAlloc += nDflt+1; + }else{ + azDflt[i] = 0; + } + abPK[i] = sqlite3_column_int(pStmt, 5); + aiIdx[i] = sqlite3_column_int(pStmt, 0); + i++; } - abPK[i] = sqlite3_column_int(pStmt, 5); - i++; + if( pnTotalCol ) (*pnTotalCol)++; } rc = sqlite3_reset(pStmt); } @@ -227460,6 +227961,7 @@ static int sessionTableInfo( if( pazDflt ) *pazDflt = (const char**)azDflt; *pabPK = abPK; *pnCol = nDbCol; + if( paiIdx ) *paiIdx = aiIdx; }else{ sessionFree(pSession, azCol); } @@ -227491,7 +227993,8 @@ static int sessionInitTable( u8 *abPK; assert( pTab->azCol==0 || pTab->abPK==0 ); rc = sessionTableInfo(pSession, db, zDb, - pTab->zName, &pTab->nCol, 0, &pTab->azCol, &pTab->azDflt, &abPK, + pTab->zName, &pTab->nCol, &pTab->nTotalCol, 0, &pTab->azCol, + &pTab->azDflt, &pTab->aiIdx, &abPK, ((pSession==0 || pSession->bImplicitPK) ? &pTab->bRowid : 0) ); if( rc==SQLITE_OK ){ @@ -227526,15 +228029,17 @@ static int sessionInitTable( */ static int sessionReinitTable(sqlite3_session *pSession, SessionTable *pTab){ int nCol = 0; + int nTotalCol = 0; const char **azCol = 0; const char **azDflt = 0; + int *aiIdx = 0; u8 *abPK = 0; int bRowid = 0; assert( pSession->rc==SQLITE_OK ); pSession->rc = sessionTableInfo(pSession, pSession->db, pSession->zDb, - pTab->zName, &nCol, 0, &azCol, &azDflt, &abPK, + pTab->zName, &nCol, &nTotalCol, 0, &azCol, &azDflt, &aiIdx, &abPK, (pSession->bImplicitPK ? &bRowid : 0) ); if( pSession->rc==SQLITE_OK ){ @@ -227557,8 +228062,10 @@ static int sessionReinitTable(sqlite3_session *pSession, SessionTable *pTab){ const char **a = pTab->azCol; pTab->azCol = azCol; pTab->nCol = nCol; + pTab->nTotalCol = nTotalCol; pTab->azDflt = azDflt; pTab->abPK = abPK; + pTab->aiIdx = aiIdx; azCol = a; } if( pSession->bEnableSize ){ @@ -227876,7 +228383,7 @@ static int sessionUpdateMaxSize( int ii; for(ii=0; iinCol; ii++){ sqlite3_value *p = 0; - pSession->hook.xNew(pSession->hook.pCtx, ii, &p); + pSession->hook.xNew(pSession->hook.pCtx, pTab->aiIdx[ii], &p); sessionSerializeValue(0, p, &nNew); } } @@ -227896,8 +228403,9 @@ static int sessionUpdateMaxSize( int bChanged = 1; int nOld = 0; int eType; + int iIdx = pTab->aiIdx[ii]; sqlite3_value *p = 0; - pSession->hook.xNew(pSession->hook.pCtx, ii-pTab->bRowid, &p); + pSession->hook.xNew(pSession->hook.pCtx, iIdx, &p); if( p==0 ){ return SQLITE_NOMEM; } @@ -227994,11 +228502,11 @@ static void sessionPreupdateOneChange( /* Check the number of columns in this xPreUpdate call matches the ** number of columns in the table. */ nExpect = pSession->hook.xCount(pSession->hook.pCtx); - if( (pTab->nCol-pTab->bRowid)nTotalColnCol-pTab->bRowid)!=nExpect ){ + if( pTab->nTotalCol!=nExpect ){ pSession->rc = SQLITE_SCHEMA; return; } @@ -228055,14 +228563,15 @@ static void sessionPreupdateOneChange( /* Figure out how large an allocation is required */ nByte = sizeof(SessionChange); - for(i=0; i<(pTab->nCol-pTab->bRowid); i++){ + for(i=pTab->bRowid; inCol; i++){ + int iIdx = pTab->aiIdx[i]; sqlite3_value *p = 0; if( op!=SQLITE_INSERT ){ /* This may fail if the column has a non-NULL default and was added ** using ALTER TABLE ADD COLUMN after this record was created. */ - rc = pSession->hook.xOld(pSession->hook.pCtx, i, &p); + rc = pSession->hook.xOld(pSession->hook.pCtx, iIdx, &p); }else if( pTab->abPK[i] ){ - TESTONLY(int trc = ) pSession->hook.xNew(pSession->hook.pCtx, i, &p); + TESTONLY(int trc = ) pSession->hook.xNew(pSession->hook.pCtx,iIdx,&p); assert( trc==SQLITE_OK ); } @@ -228097,12 +228606,13 @@ static void sessionPreupdateOneChange( sessionPutI64(&pC->aRecord[1], iRowid); nByte = 9; } - for(i=0; i<(pTab->nCol-pTab->bRowid); i++){ + for(i=pTab->bRowid; inCol; i++){ sqlite3_value *p = 0; + int iIdx = pTab->aiIdx[i]; if( op!=SQLITE_INSERT ){ - pSession->hook.xOld(pSession->hook.pCtx, i, &p); + pSession->hook.xOld(pSession->hook.pCtx, iIdx, &p); }else if( pTab->abPK[i] ){ - pSession->hook.xNew(pSession->hook.pCtx, i, &p); + pSession->hook.xNew(pSession->hook.pCtx, iIdx, &p); } sessionSerializeValue(&pC->aRecord[nByte], p, &nByte); } @@ -228504,7 +229014,8 @@ SQLITE_API int sqlite3session_diff( int bRowid = 0; u8 *abPK; const char **azCol = 0; - rc = sessionTableInfo(0, db, zFrom, zTbl, &nCol, 0, &azCol, 0, &abPK, + rc = sessionTableInfo(0, db, zFrom, zTbl, + &nCol, 0, 0, &azCol, 0, 0, &abPK, pSession->bImplicitPK ? &bRowid : 0 ); if( rc==SQLITE_OK ){ @@ -228828,9 +229339,11 @@ static void sessionAppendIdent( char *zOut = (char *)&p->aBuf[p->nBuf]; const char *zIn = zStr; *zOut++ = '"'; - while( *zIn ){ - if( *zIn=='"' ) *zOut++ = '"'; - *zOut++ = *(zIn++); + if( zIn!=0 ){ + while( *zIn ){ + if( *zIn=='"' ) *zOut++ = '"'; + *zOut++ = *(zIn++); + } } *zOut++ = '"'; p->nBuf = (int)((u8 *)zOut - p->aBuf); @@ -229081,10 +229594,10 @@ static int sessionSelectStmt( int rc = SQLITE_OK; char *zSql = 0; const char *zSep = ""; - const char *zCols = bRowid ? SESSIONS_ROWID ", *" : "*"; int nSql = -1; int i; + SessionBuffer cols = {0, 0, 0}; SessionBuffer nooptest = {0, 0, 0}; SessionBuffer pkfield = {0, 0, 0}; SessionBuffer pkvar = {0, 0, 0}; @@ -229097,9 +229610,16 @@ static int sessionSelectStmt( sessionAppendStr(&pkvar, "?1, (CASE WHEN ?2=X'' THEN NULL ELSE ?2 END)", &rc ); - zCols = "tbl, ?2, stat"; + sessionAppendStr(&cols, "tbl, ?2, stat", &rc); }else{ + #if 0 + if( bRowid ){ + sessionAppendStr(&cols, SESSIONS_ROWID, &rc); + } + #endif for(i=0; ibSecureDelete = (bVal ? 1 : 0); } + } + + else if( 0==sqlite3_stricmp(zKey, "insttoken") ){ + int bVal = -1; + if( SQLITE_INTEGER==sqlite3_value_numeric_type(pVal) ){ + bVal = sqlite3_value_int(pVal); + } + if( bVal<0 ){ + *pbBadkey = 1; + }else{ + pConfig->bPrefixInsttoken = (bVal ? 1 : 0); + } + }else{ *pbBadkey = 1; } @@ -241466,7 +242029,7 @@ static int fts5ExprPopulatePoslistsCb( int rc = sqlite3Fts5PoslistWriterAppend( &pExpr->apExprPhrase[i]->poslist, &p->aPopulator[i].writer, p->iOff ); - if( rc==SQLITE_OK && pExpr->pConfig->bTokendata && !pT->bPrefix ){ + if( rc==SQLITE_OK && (pExpr->pConfig->bTokendata || pT->bPrefix) ){ int iCol = p->iOff>>32; int iTokOff = p->iOff & 0x7FFFFFFF; rc = sqlite3Fts5IndexIterWriteTokendata( @@ -241659,15 +242222,14 @@ static int sqlite3Fts5ExprInstToken( return SQLITE_RANGE; } pTerm = &pPhrase->aTerm[iToken]; - if( pTerm->bPrefix==0 ){ - if( pExpr->pConfig->bTokendata ){ - rc = sqlite3Fts5IterToken( - pTerm->pIter, iRowid, iCol, iOff+iToken, ppOut, pnOut - ); - }else{ - *ppOut = pTerm->pTerm; - *pnOut = pTerm->nFullTerm; - } + if( pExpr->pConfig->bTokendata || pTerm->bPrefix ){ + rc = sqlite3Fts5IterToken( + pTerm->pIter, pTerm->pTerm, pTerm->nQueryTerm, + iRowid, iCol, iOff+iToken, ppOut, pnOut + ); + }else{ + *ppOut = pTerm->pTerm; + *pnOut = pTerm->nFullTerm; } return rc; } @@ -243057,11 +243619,13 @@ static int fts5LeafFirstTermOff(Fts5Data *pLeaf){ /* ** Close the read-only blob handle, if it is open. */ -static void sqlite3Fts5IndexCloseReader(Fts5Index *p){ +static void fts5IndexCloseReader(Fts5Index *p){ if( p->pReader ){ + int rc; sqlite3_blob *pReader = p->pReader; p->pReader = 0; - sqlite3_blob_close(pReader); + rc = sqlite3_blob_close(pReader); + if( p->rc==SQLITE_OK ) p->rc = rc; } } @@ -243086,7 +243650,7 @@ static Fts5Data *fts5DataRead(Fts5Index *p, i64 iRowid){ assert( p->pReader==0 ); p->pReader = pBlob; if( rc!=SQLITE_OK ){ - sqlite3Fts5IndexCloseReader(p); + fts5IndexCloseReader(p); } if( rc==SQLITE_ABORT ) rc = SQLITE_OK; } @@ -243170,9 +243734,13 @@ static int fts5IndexPrepareStmt( ){ if( p->rc==SQLITE_OK ){ if( zSql ){ - p->rc = sqlite3_prepare_v3(p->pConfig->db, zSql, -1, + int rc = sqlite3_prepare_v3(p->pConfig->db, zSql, -1, SQLITE_PREPARE_PERSISTENT|SQLITE_PREPARE_NO_VTAB, ppStmt, 0); + /* If this prepare() call fails with SQLITE_ERROR, then one of the + ** %_idx or %_data tables has been removed or modified. Call this + ** corruption. */ + p->rc = (rc==SQLITE_ERROR ? SQLITE_CORRUPT : rc); }else{ p->rc = SQLITE_NOMEM; } @@ -247284,6 +247852,14 @@ static int fts5IndexReturn(Fts5Index *p){ return rc; } +/* +** Close the read-only blob handle, if it is open. +*/ +static void sqlite3Fts5IndexCloseReader(Fts5Index *p){ + fts5IndexCloseReader(p); + fts5IndexReturn(p); +} + typedef struct Fts5FlushCtx Fts5FlushCtx; struct Fts5FlushCtx { Fts5Index *pIdx; @@ -247741,8 +248317,11 @@ static void fts5DoSecureDelete( ** This is called as part of flushing a delete to disk in 'secure-delete' ** mode. It edits the segments within the database described by argument ** pStruct to remove the entries for term zTerm, rowid iRowid. +** +** Return SQLITE_OK if successful, or an SQLite error code if an error +** has occurred. Any error code is also stored in the Fts5Index handle. */ -static void fts5FlushSecureDelete( +static int fts5FlushSecureDelete( Fts5Index *p, Fts5Structure *pStruct, const char *zTerm, @@ -247752,6 +248331,24 @@ static void fts5FlushSecureDelete( const int f = FTS5INDEX_QUERY_SKIPHASH; Fts5Iter *pIter = 0; /* Used to find term instance */ + /* If the version number has not been set to SECUREDELETE, do so now. */ + if( p->pConfig->iVersion!=FTS5_CURRENT_VERSION_SECUREDELETE ){ + Fts5Config *pConfig = p->pConfig; + sqlite3_stmt *pStmt = 0; + fts5IndexPrepareStmt(p, &pStmt, sqlite3_mprintf( + "REPLACE INTO %Q.'%q_config' VALUES ('version', %d)", + pConfig->zDb, pConfig->zName, FTS5_CURRENT_VERSION_SECUREDELETE + )); + if( p->rc==SQLITE_OK ){ + int rc; + sqlite3_step(pStmt); + rc = sqlite3_finalize(pStmt); + if( p->rc==SQLITE_OK ) p->rc = rc; + pConfig->iCookie++; + pConfig->iVersion = FTS5_CURRENT_VERSION_SECUREDELETE; + } + } + fts5MultiIterNew(p, pStruct, f, 0, (const u8*)zTerm, nTerm, -1, 0, &pIter); if( fts5MultiIterEof(p, pIter)==0 ){ i64 iThis = fts5MultiIterRowid(pIter); @@ -247769,6 +248366,7 @@ static void fts5FlushSecureDelete( } fts5MultiIterFree(pIter); + return p->rc; } @@ -247852,8 +248450,9 @@ static void fts5FlushOneHash(Fts5Index *p){ ** using fts5FlushSecureDelete(). */ if( bSecureDelete ){ if( eDetail==FTS5_DETAIL_NONE ){ - if( iOffrc!=SQLITE_OK || pDoclist[iOff]==0x01 ){ iOff++; continue; @@ -248482,6 +249082,383 @@ static void fts5MergePrefixLists( *p1 = out; } + +/* +** Iterate through a range of entries in the FTS index, invoking the xVisit +** callback for each of them. +** +** Parameter pToken points to an nToken buffer containing an FTS index term +** (i.e. a document term with the preceding 1 byte index identifier - +** FTS5_MAIN_PREFIX or similar). If bPrefix is true, then the call visits +** all entries for terms that have pToken/nToken as a prefix. If bPrefix +** is false, then only entries with pToken/nToken as the entire key are +** visited. +** +** If the current table is a tokendata=1 table, then if bPrefix is true then +** each index term is treated separately. However, if bPrefix is false, then +** all index terms corresponding to pToken/nToken are collapsed into a single +** term before the callback is invoked. +** +** The callback invoked for each entry visited is specified by paramter xVisit. +** Each time it is invoked, it is passed a pointer to the Fts5Index object, +** a copy of the 7th paramter to this function (pCtx) and a pointer to the +** iterator that indicates the current entry. If the current entry is the +** first with a new term (i.e. different from that of the previous entry, +** including the very first term), then the final two parameters are passed +** a pointer to the term and its size in bytes, respectively. If the current +** entry is not the first associated with its term, these two parameters +** are passed 0. +** +** If parameter pColset is not NULL, then it is used to filter entries before +** the callback is invoked. +*/ +static int fts5VisitEntries( + Fts5Index *p, /* Fts5 index object */ + Fts5Colset *pColset, /* Columns filter to apply, or NULL */ + u8 *pToken, /* Buffer containing token */ + int nToken, /* Size of buffer pToken in bytes */ + int bPrefix, /* True for a prefix scan */ + void (*xVisit)(Fts5Index*, void *pCtx, Fts5Iter *pIter, const u8*, int), + void *pCtx /* Passed as second argument to xVisit() */ +){ + const int flags = (bPrefix ? FTS5INDEX_QUERY_SCAN : 0) + | FTS5INDEX_QUERY_SKIPEMPTY + | FTS5INDEX_QUERY_NOOUTPUT; + Fts5Iter *p1 = 0; /* Iterator used to gather data from index */ + int bNewTerm = 1; + Fts5Structure *pStruct = fts5StructureRead(p); + + fts5MultiIterNew(p, pStruct, flags, pColset, pToken, nToken, -1, 0, &p1); + fts5IterSetOutputCb(&p->rc, p1); + for( /* no-op */ ; + fts5MultiIterEof(p, p1)==0; + fts5MultiIterNext2(p, p1, &bNewTerm) + ){ + Fts5SegIter *pSeg = &p1->aSeg[ p1->aFirst[1].iFirst ]; + int nNew = 0; + const u8 *pNew = 0; + + p1->xSetOutputs(p1, pSeg); + if( p->rc ) break; + + if( bNewTerm ){ + nNew = pSeg->term.n; + pNew = pSeg->term.p; + if( nNewrc; +} + + +/* +** Usually, a tokendata=1 iterator (struct Fts5TokenDataIter) accumulates an +** array of these for each row it visits (so all iRowid fields are the same). +** Or, for an iterator used by an "ORDER BY rank" query, it accumulates an +** array of these for the entire query (in which case iRowid fields may take +** a variety of values). +** +** Each instance in the array indicates the iterator (and therefore term) +** associated with position iPos of rowid iRowid. This is used by the +** xInstToken() API. +** +** iRowid: +** Rowid for the current entry. +** +** iPos: +** Position of current entry within row. In the usual ((iCol<<32)+iOff) +** format (e.g. see macros FTS5_POS2COLUMN() and FTS5_POS2OFFSET()). +** +** iIter: +** If the Fts5TokenDataIter iterator that the entry is part of is +** actually an iterator (i.e. with nIter>0, not just a container for +** Fts5TokenDataMap structures), then this variable is an index into +** the apIter[] array. The corresponding term is that which the iterator +** at apIter[iIter] currently points to. +** +** Or, if the Fts5TokenDataIter iterator is just a container object +** (nIter==0), then iIter is an index into the term.p[] buffer where +** the term is stored. +** +** nByte: +** In the case where iIter is an index into term.p[], this variable +** is the size of the term in bytes. If iIter is an index into apIter[], +** this variable is unused. +*/ +struct Fts5TokenDataMap { + i64 iRowid; /* Row this token is located in */ + i64 iPos; /* Position of token */ + int iIter; /* Iterator token was read from */ + int nByte; /* Length of token in bytes (or 0) */ +}; + +/* +** An object used to supplement Fts5Iter for tokendata=1 iterators. +** +** This object serves two purposes. The first is as a container for an array +** of Fts5TokenDataMap structures, which are used to find the token required +** when the xInstToken() API is used. This is done by the nMapAlloc, nMap and +** aMap[] variables. +*/ +struct Fts5TokenDataIter { + int nMapAlloc; /* Allocated size of aMap[] in entries */ + int nMap; /* Number of valid entries in aMap[] */ + Fts5TokenDataMap *aMap; /* Array of (rowid+pos -> token) mappings */ + + /* The following are used for prefix-queries only. */ + Fts5Buffer terms; + + /* The following are used for other full-token tokendata queries only. */ + int nIter; + int nIterAlloc; + Fts5PoslistReader *aPoslistReader; + int *aPoslistToIter; + Fts5Iter *apIter[1]; +}; + +/* +** The two input arrays - a1[] and a2[] - are in sorted order. This function +** merges the two arrays together and writes the result to output array +** aOut[]. aOut[] is guaranteed to be large enough to hold the result. +** +** Duplicate entries are copied into the output. So the size of the output +** array is always (n1+n2) entries. +*/ +static void fts5TokendataMerge( + Fts5TokenDataMap *a1, int n1, /* Input array 1 */ + Fts5TokenDataMap *a2, int n2, /* Input array 2 */ + Fts5TokenDataMap *aOut /* Output array */ +){ + int i1 = 0; + int i2 = 0; + + assert( n1>=0 && n2>=0 ); + while( i1=n2 || (i1rc==SQLITE_OK ){ + if( pT->nMap==pT->nMapAlloc ){ + int nNew = pT->nMapAlloc ? pT->nMapAlloc*2 : 64; + int nAlloc = nNew * sizeof(Fts5TokenDataMap); + Fts5TokenDataMap *aNew; + + aNew = (Fts5TokenDataMap*)sqlite3_realloc(pT->aMap, nAlloc); + if( aNew==0 ){ + p->rc = SQLITE_NOMEM; + return; + } + + pT->aMap = aNew; + pT->nMapAlloc = nNew; + } + + pT->aMap[pT->nMap].iRowid = iRowid; + pT->aMap[pT->nMap].iPos = iPos; + pT->aMap[pT->nMap].iIter = iIter; + pT->aMap[pT->nMap].nByte = nByte; + pT->nMap++; + } +} + +/* +** Sort the contents of the pT->aMap[] array. +** +** The sorting algorithm requries a malloc(). If this fails, an error code +** is left in Fts5Index.rc before returning. +*/ +static void fts5TokendataIterSortMap(Fts5Index *p, Fts5TokenDataIter *pT){ + Fts5TokenDataMap *aTmp = 0; + int nByte = pT->nMap * sizeof(Fts5TokenDataMap); + + aTmp = (Fts5TokenDataMap*)sqlite3Fts5MallocZero(&p->rc, nByte); + if( aTmp ){ + Fts5TokenDataMap *a1 = pT->aMap; + Fts5TokenDataMap *a2 = aTmp; + i64 nHalf; + + for(nHalf=1; nHalfnMap; nHalf=nHalf*2){ + int i1; + for(i1=0; i1nMap; i1+=(nHalf*2)){ + int n1 = MIN(nHalf, pT->nMap-i1); + int n2 = MIN(nHalf, pT->nMap-i1-n1); + fts5TokendataMerge(&a1[i1], n1, &a1[i1+n1], n2, &a2[i1]); + } + SWAPVAL(Fts5TokenDataMap*, a1, a2); + } + + if( a1!=pT->aMap ){ + memcpy(pT->aMap, a1, pT->nMap*sizeof(Fts5TokenDataMap)); + } + sqlite3_free(aTmp); + +#ifdef SQLITE_DEBUG + { + int ii; + for(ii=1; iinMap; ii++){ + Fts5TokenDataMap *p1 = &pT->aMap[ii-1]; + Fts5TokenDataMap *p2 = &pT->aMap[ii]; + assert( p1->iRowidiRowid + || (p1->iRowid==p2->iRowid && p1->iPos<=p2->iPos) + ); + } + } +#endif + } +} + +/* +** Delete an Fts5TokenDataIter structure and its contents. +*/ +static void fts5TokendataIterDelete(Fts5TokenDataIter *pSet){ + if( pSet ){ + int ii; + for(ii=0; iinIter; ii++){ + fts5MultiIterFree(pSet->apIter[ii]); + } + fts5BufferFree(&pSet->terms); + sqlite3_free(pSet->aPoslistReader); + sqlite3_free(pSet->aMap); + sqlite3_free(pSet); + } +} + + +/* +** fts5VisitEntries() context object used by fts5SetupPrefixIterTokendata() +** to pass data to prefixIterSetupTokendataCb(). +*/ +typedef struct TokendataSetupCtx TokendataSetupCtx; +struct TokendataSetupCtx { + Fts5TokenDataIter *pT; /* Object being populated with mappings */ + int iTermOff; /* Offset of current term in terms.p[] */ + int nTermByte; /* Size of current term in bytes */ +}; + +/* +** fts5VisitEntries() callback used by fts5SetupPrefixIterTokendata(). This +** callback adds an entry to the Fts5TokenDataIter.aMap[] array for each +** position in the current position-list. It doesn't matter that some of +** these may be out of order - they will be sorted later. +*/ +static void prefixIterSetupTokendataCb( + Fts5Index *p, + void *pCtx, + Fts5Iter *p1, + const u8 *pNew, + int nNew +){ + TokendataSetupCtx *pSetup = (TokendataSetupCtx*)pCtx; + int iPosOff = 0; + i64 iPos = 0; + + if( pNew ){ + pSetup->nTermByte = nNew-1; + pSetup->iTermOff = pSetup->pT->terms.n; + fts5BufferAppendBlob(&p->rc, &pSetup->pT->terms, nNew-1, pNew+1); + } + + while( 0==sqlite3Fts5PoslistNext64( + p1->base.pData, p1->base.nData, &iPosOff, &iPos + ) ){ + fts5TokendataIterAppendMap(p, + pSetup->pT, pSetup->iTermOff, pSetup->nTermByte, p1->base.iRowid, iPos + ); + } +} + + +/* +** Context object passed by fts5SetupPrefixIter() to fts5VisitEntries(). +*/ +typedef struct PrefixSetupCtx PrefixSetupCtx; +struct PrefixSetupCtx { + void (*xMerge)(Fts5Index*, Fts5Buffer*, int, Fts5Buffer*); + void (*xAppend)(Fts5Index*, u64, Fts5Iter*, Fts5Buffer*); + i64 iLastRowid; + int nMerge; + Fts5Buffer *aBuf; + int nBuf; + Fts5Buffer doclist; + TokendataSetupCtx *pTokendata; +}; + +/* +** fts5VisitEntries() callback used by fts5SetupPrefixIter() +*/ +static void prefixIterSetupCb( + Fts5Index *p, + void *pCtx, + Fts5Iter *p1, + const u8 *pNew, + int nNew +){ + PrefixSetupCtx *pSetup = (PrefixSetupCtx*)pCtx; + const int nMerge = pSetup->nMerge; + + if( p1->base.nData>0 ){ + if( p1->base.iRowid<=pSetup->iLastRowid && pSetup->doclist.n>0 ){ + int i; + for(i=0; p->rc==SQLITE_OK && pSetup->doclist.n; i++){ + int i1 = i*nMerge; + int iStore; + assert( i1+nMerge<=pSetup->nBuf ); + for(iStore=i1; iStoreaBuf[iStore].n==0 ){ + fts5BufferSwap(&pSetup->doclist, &pSetup->aBuf[iStore]); + fts5BufferZero(&pSetup->doclist); + break; + } + } + if( iStore==i1+nMerge ){ + pSetup->xMerge(p, &pSetup->doclist, nMerge, &pSetup->aBuf[i1]); + for(iStore=i1; iStoreaBuf[iStore]); + } + } + } + pSetup->iLastRowid = 0; + } + + pSetup->xAppend( + p, (u64)p1->base.iRowid-(u64)pSetup->iLastRowid, p1, &pSetup->doclist + ); + pSetup->iLastRowid = p1->base.iRowid; + } + + if( pSetup->pTokendata ){ + prefixIterSetupTokendataCb(p, (void*)pSetup->pTokendata, p1, pNew, nNew); + } +} + static void fts5SetupPrefixIter( Fts5Index *p, /* Index to read from */ int bDesc, /* True for "ORDER BY rowid DESC" */ @@ -248492,38 +249469,41 @@ static void fts5SetupPrefixIter( Fts5Iter **ppIter /* OUT: New iterator */ ){ Fts5Structure *pStruct; - Fts5Buffer *aBuf; - int nBuf = 32; - int nMerge = 1; + PrefixSetupCtx s; + TokendataSetupCtx s2; + + memset(&s, 0, sizeof(s)); + memset(&s2, 0, sizeof(s2)); + + s.nMerge = 1; + s.iLastRowid = 0; + s.nBuf = 32; + if( iIdx==0 + && p->pConfig->eDetail==FTS5_DETAIL_FULL + && p->pConfig->bPrefixInsttoken + ){ + s.pTokendata = &s2; + s2.pT = (Fts5TokenDataIter*)fts5IdxMalloc(p, sizeof(*s2.pT)); + } - void (*xMerge)(Fts5Index*, Fts5Buffer*, int, Fts5Buffer*); - void (*xAppend)(Fts5Index*, u64, Fts5Iter*, Fts5Buffer*); if( p->pConfig->eDetail==FTS5_DETAIL_NONE ){ - xMerge = fts5MergeRowidLists; - xAppend = fts5AppendRowid; + s.xMerge = fts5MergeRowidLists; + s.xAppend = fts5AppendRowid; }else{ - nMerge = FTS5_MERGE_NLIST-1; - nBuf = nMerge*8; /* Sufficient to merge (16^8)==(2^32) lists */ - xMerge = fts5MergePrefixLists; - xAppend = fts5AppendPoslist; + s.nMerge = FTS5_MERGE_NLIST-1; + s.nBuf = s.nMerge*8; /* Sufficient to merge (16^8)==(2^32) lists */ + s.xMerge = fts5MergePrefixLists; + s.xAppend = fts5AppendPoslist; } - aBuf = (Fts5Buffer*)fts5IdxMalloc(p, sizeof(Fts5Buffer)*nBuf); + s.aBuf = (Fts5Buffer*)fts5IdxMalloc(p, sizeof(Fts5Buffer)*s.nBuf); pStruct = fts5StructureRead(p); - assert( p->rc!=SQLITE_OK || (aBuf && pStruct) ); + assert( p->rc!=SQLITE_OK || (s.aBuf && pStruct) ); if( p->rc==SQLITE_OK ){ - const int flags = FTS5INDEX_QUERY_SCAN - | FTS5INDEX_QUERY_SKIPEMPTY - | FTS5INDEX_QUERY_NOOUTPUT; + void *pCtx = (void*)&s; int i; - i64 iLastRowid = 0; - Fts5Iter *p1 = 0; /* Iterator used to gather data from index */ Fts5Data *pData; - Fts5Buffer doclist; - int bNewTerm = 1; - - memset(&doclist, 0, sizeof(doclist)); /* If iIdx is non-zero, then it is the number of a prefix-index for ** prefixes 1 character longer than the prefix being queried for. That @@ -248531,94 +249511,45 @@ static void fts5SetupPrefixIter( ** corresponding to the prefix itself. That one is extracted from the ** main term index here. */ if( iIdx!=0 ){ - int dummy = 0; - const int f2 = FTS5INDEX_QUERY_SKIPEMPTY|FTS5INDEX_QUERY_NOOUTPUT; pToken[0] = FTS5_MAIN_PREFIX; - fts5MultiIterNew(p, pStruct, f2, pColset, pToken, nToken, -1, 0, &p1); - fts5IterSetOutputCb(&p->rc, p1); - for(; - fts5MultiIterEof(p, p1)==0; - fts5MultiIterNext2(p, p1, &dummy) - ){ - Fts5SegIter *pSeg = &p1->aSeg[ p1->aFirst[1].iFirst ]; - p1->xSetOutputs(p1, pSeg); - if( p1->base.nData ){ - xAppend(p, (u64)p1->base.iRowid-(u64)iLastRowid, p1, &doclist); - iLastRowid = p1->base.iRowid; - } - } - fts5MultiIterFree(p1); + fts5VisitEntries(p, pColset, pToken, nToken, 0, prefixIterSetupCb, pCtx); } pToken[0] = FTS5_MAIN_PREFIX + iIdx; - fts5MultiIterNew(p, pStruct, flags, pColset, pToken, nToken, -1, 0, &p1); - fts5IterSetOutputCb(&p->rc, p1); + fts5VisitEntries(p, pColset, pToken, nToken, 1, prefixIterSetupCb, pCtx); - for( /* no-op */ ; - fts5MultiIterEof(p, p1)==0; - fts5MultiIterNext2(p, p1, &bNewTerm) - ){ - Fts5SegIter *pSeg = &p1->aSeg[ p1->aFirst[1].iFirst ]; - int nTerm = pSeg->term.n; - const u8 *pTerm = pSeg->term.p; - p1->xSetOutputs(p1, pSeg); - - assert_nc( memcmp(pToken, pTerm, MIN(nToken, nTerm))<=0 ); - if( bNewTerm ){ - if( nTermbase.nData==0 ) continue; - if( p1->base.iRowid<=iLastRowid && doclist.n>0 ){ - for(i=0; p->rc==SQLITE_OK && doclist.n; i++){ - int i1 = i*nMerge; - int iStore; - assert( i1+nMerge<=nBuf ); - for(iStore=i1; iStorebase.iRowid-(u64)iLastRowid, p1, &doclist); - iLastRowid = p1->base.iRowid; - } - - assert( (nBuf%nMerge)==0 ); - for(i=0; irc==SQLITE_OK ){ - xMerge(p, &doclist, nMerge, &aBuf[i]); + s.xMerge(p, &s.doclist, s.nMerge, &s.aBuf[i]); } - for(iFree=i; iFreerc!=SQLITE_OK ); if( pData ){ pData->p = (u8*)&pData[1]; - pData->nn = pData->szLeaf = doclist.n; - if( doclist.n ) memcpy(pData->p, doclist.p, doclist.n); + pData->nn = pData->szLeaf = s.doclist.n; + if( s.doclist.n ) memcpy(pData->p, s.doclist.p, s.doclist.n); fts5MultiIterNew2(p, pData, bDesc, ppIter); } - fts5BufferFree(&doclist); + + assert( (*ppIter)!=0 || p->rc!=SQLITE_OK ); + if( p->rc==SQLITE_OK && s.pTokendata ){ + fts5TokendataIterSortMap(p, s2.pT); + (*ppIter)->pTokenDataIter = s2.pT; + s2.pT = 0; + } } + fts5TokendataIterDelete(s2.pT); + fts5BufferFree(&s.doclist); fts5StructureRelease(pStruct); - sqlite3_free(aBuf); + sqlite3_free(s.aBuf); } @@ -248656,7 +249587,7 @@ static int sqlite3Fts5IndexBeginWrite(Fts5Index *p, int bDelete, i64 iRowid){ static int sqlite3Fts5IndexSync(Fts5Index *p){ assert( p->rc==SQLITE_OK ); fts5IndexFlush(p); - sqlite3Fts5IndexCloseReader(p); + fts5IndexCloseReader(p); return fts5IndexReturn(p); } @@ -248667,11 +249598,10 @@ static int sqlite3Fts5IndexSync(Fts5Index *p){ ** records must be invalidated. */ static int sqlite3Fts5IndexRollback(Fts5Index *p){ - sqlite3Fts5IndexCloseReader(p); + fts5IndexCloseReader(p); fts5IndexDiscardData(p); fts5StructureInvalidate(p); - /* assert( p->rc==SQLITE_OK ); */ - return SQLITE_OK; + return fts5IndexReturn(p); } /* @@ -248872,37 +249802,15 @@ static void fts5SegIterSetEOF(Fts5SegIter *pSeg){ pSeg->pLeaf = 0; } -/* -** Usually, a tokendata=1 iterator (struct Fts5TokenDataIter) accumulates an -** array of these for each row it visits. Or, for an iterator used by an -** "ORDER BY rank" query, it accumulates an array of these for the entire -** query. -** -** Each instance in the array indicates the iterator (and therefore term) -** associated with position iPos of rowid iRowid. This is used by the -** xInstToken() API. -*/ -struct Fts5TokenDataMap { - i64 iRowid; /* Row this token is located in */ - i64 iPos; /* Position of token */ - int iIter; /* Iterator token was read from */ -}; - -/* -** An object used to supplement Fts5Iter for tokendata=1 iterators. -*/ -struct Fts5TokenDataIter { - int nIter; - int nIterAlloc; - - int nMap; - int nMapAlloc; - Fts5TokenDataMap *aMap; - - Fts5PoslistReader *aPoslistReader; - int *aPoslistToIter; - Fts5Iter *apIter[1]; -}; +static void fts5IterClose(Fts5IndexIter *pIndexIter){ + if( pIndexIter ){ + Fts5Iter *pIter = (Fts5Iter*)pIndexIter; + Fts5Index *pIndex = pIter->pIndex; + fts5TokendataIterDelete(pIter->pTokenDataIter); + fts5MultiIterFree(pIter); + fts5IndexCloseReader(pIndex); + } +} /* ** This function appends iterator pAppend to Fts5TokenDataIter pIn and @@ -248931,7 +249839,7 @@ static Fts5TokenDataIter *fts5AppendTokendataIter( } } if( p->rc ){ - sqlite3Fts5IterClose((Fts5IndexIter*)pAppend); + fts5IterClose((Fts5IndexIter*)pAppend); }else{ pRet->apIter[pRet->nIter++] = pAppend; } @@ -248940,54 +249848,6 @@ static Fts5TokenDataIter *fts5AppendTokendataIter( return pRet; } -/* -** Delete an Fts5TokenDataIter structure and its contents. -*/ -static void fts5TokendataIterDelete(Fts5TokenDataIter *pSet){ - if( pSet ){ - int ii; - for(ii=0; iinIter; ii++){ - fts5MultiIterFree(pSet->apIter[ii]); - } - sqlite3_free(pSet->aPoslistReader); - sqlite3_free(pSet->aMap); - sqlite3_free(pSet); - } -} - -/* -** Append a mapping to the token-map belonging to object pT. -*/ -static void fts5TokendataIterAppendMap( - Fts5Index *p, - Fts5TokenDataIter *pT, - int iIter, - i64 iRowid, - i64 iPos -){ - if( p->rc==SQLITE_OK ){ - if( pT->nMap==pT->nMapAlloc ){ - int nNew = pT->nMapAlloc ? pT->nMapAlloc*2 : 64; - int nByte = nNew * sizeof(Fts5TokenDataMap); - Fts5TokenDataMap *aNew; - - aNew = (Fts5TokenDataMap*)sqlite3_realloc(pT->aMap, nByte); - if( aNew==0 ){ - p->rc = SQLITE_NOMEM; - return; - } - - pT->aMap = aNew; - pT->nMapAlloc = nNew; - } - - pT->aMap[pT->nMap].iRowid = iRowid; - pT->aMap[pT->nMap].iPos = iPos; - pT->aMap[pT->nMap].iIter = iIter; - pT->nMap++; - } -} - /* ** The iterator passed as the only argument must be a tokendata=1 iterator ** (pIter->pTokenDataIter!=0). This function sets the iterator output @@ -249028,7 +249888,7 @@ static void fts5IterSetOutputsTokendata(Fts5Iter *pIter){ pIter->base.iRowid = iRowid; if( nHit==1 && eDetail==FTS5_DETAIL_FULL ){ - fts5TokendataIterAppendMap(pIter->pIndex, pT, iMin, iRowid, -1); + fts5TokendataIterAppendMap(pIter->pIndex, pT, iMin, 0, iRowid, -1); }else if( nHit>1 && eDetail!=FTS5_DETAIL_NONE ){ int nReader = 0; @@ -249192,7 +250052,7 @@ static Fts5Iter *fts5SetupTokendataIter( fts5BufferSet(&p->rc, &bSeek, nToken, pToken); } if( p->rc ){ - sqlite3Fts5IterClose((Fts5IndexIter*)pNew); + fts5IterClose((Fts5IndexIter*)pNew); break; } @@ -249257,7 +250117,7 @@ static Fts5Iter *fts5SetupTokendataIter( ** not point to any terms that match the query. So delete it and break ** out of the loop - all required iterators have been collected. */ if( pSmall==0 ){ - sqlite3Fts5IterClose((Fts5IndexIter*)pNew); + fts5IterClose((Fts5IndexIter*)pNew); break; } @@ -249281,6 +250141,7 @@ static Fts5Iter *fts5SetupTokendataIter( pRet = fts5MultiIterAlloc(p, 0); } if( pRet ){ + pRet->nSeg = 0; pRet->pTokenDataIter = pSet; if( pSet ){ fts5IterSetOutputsTokendata(pRet); @@ -249296,7 +250157,6 @@ static Fts5Iter *fts5SetupTokendataIter( return pRet; } - /* ** Open a new iterator to iterate though all rowid that match the ** specified token or token prefix. @@ -249319,8 +250179,14 @@ static int sqlite3Fts5IndexQuery( int iIdx = 0; /* Index to search */ int iPrefixIdx = 0; /* +1 prefix index */ int bTokendata = pConfig->bTokendata; + assert( buf.p!=0 ); if( nToken>0 ) memcpy(&buf.p[1], pToken, nToken); + /* The NOTOKENDATA flag is set when each token in a tokendata=1 table + ** should be treated individually, instead of merging all those with + ** a common prefix into a single entry. This is used, for example, by + ** queries performed as part of an integrity-check, or by the fts5vocab + ** module. */ if( flags & (FTS5INDEX_QUERY_NOTOKENDATA|FTS5INDEX_QUERY_SCAN) ){ bTokendata = 0; } @@ -249351,7 +250217,7 @@ static int sqlite3Fts5IndexQuery( } if( bTokendata && iIdx==0 ){ - buf.p[0] = '0'; + buf.p[0] = FTS5_MAIN_PREFIX; pRet = fts5SetupTokendataIter(p, buf.p, nToken+1, pColset); }else if( iIdx<=pConfig->nPrefix ){ /* Straight index lookup */ @@ -249364,7 +250230,7 @@ static int sqlite3Fts5IndexQuery( fts5StructureRelease(pStruct); } }else{ - /* Scan multiple terms in the main index */ + /* Scan multiple terms in the main index for a prefix query. */ int bDesc = (flags & FTS5INDEX_QUERY_DESC)!=0; fts5SetupPrefixIter(p, bDesc, iPrefixIdx, buf.p, nToken+1, pColset,&pRet); if( pRet==0 ){ @@ -249380,9 +250246,9 @@ static int sqlite3Fts5IndexQuery( } if( p->rc ){ - sqlite3Fts5IterClose((Fts5IndexIter*)pRet); + fts5IterClose((Fts5IndexIter*)pRet); pRet = 0; - sqlite3Fts5IndexCloseReader(p); + fts5IndexCloseReader(p); } *ppIter = (Fts5IndexIter*)pRet; @@ -249400,7 +250266,8 @@ static int sqlite3Fts5IndexQuery( static int sqlite3Fts5IterNext(Fts5IndexIter *pIndexIter){ Fts5Iter *pIter = (Fts5Iter*)pIndexIter; assert( pIter->pIndex->rc==SQLITE_OK ); - if( pIter->pTokenDataIter ){ + if( pIter->nSeg==0 ){ + assert( pIter->pTokenDataIter ); fts5TokendataIterNext(pIter, 0, 0); }else{ fts5MultiIterNext(pIter->pIndex, pIter, 0, 0); @@ -249437,7 +250304,8 @@ static int sqlite3Fts5IterNextScan(Fts5IndexIter *pIndexIter){ */ static int sqlite3Fts5IterNextFrom(Fts5IndexIter *pIndexIter, i64 iMatch){ Fts5Iter *pIter = (Fts5Iter*)pIndexIter; - if( pIter->pTokenDataIter ){ + if( pIter->nSeg==0 ){ + assert( pIter->pTokenDataIter ); fts5TokendataIterNext(pIter, 1, iMatch); }else{ fts5MultiIterNextFrom(pIter->pIndex, pIter, iMatch); @@ -249456,14 +250324,61 @@ static const char *sqlite3Fts5IterTerm(Fts5IndexIter *pIndexIter, int *pn){ return (z ? &z[1] : 0); } +/* +** pIter is a prefix query. This function populates pIter->pTokenDataIter +** with an Fts5TokenDataIter object containing mappings for all rows +** matched by the query. +*/ +static int fts5SetupPrefixIterTokendata( + Fts5Iter *pIter, + const char *pToken, /* Token prefix to search for */ + int nToken /* Size of pToken in bytes */ +){ + Fts5Index *p = pIter->pIndex; + Fts5Buffer token = {0, 0, 0}; + TokendataSetupCtx ctx; + + memset(&ctx, 0, sizeof(ctx)); + + fts5BufferGrow(&p->rc, &token, nToken+1); + assert( token.p!=0 || p->rc!=SQLITE_OK ); + ctx.pT = (Fts5TokenDataIter*)sqlite3Fts5MallocZero(&p->rc, sizeof(*ctx.pT)); + + if( p->rc==SQLITE_OK ){ + + /* Fill in the token prefix to search for */ + token.p[0] = FTS5_MAIN_PREFIX; + memcpy(&token.p[1], pToken, nToken); + token.n = nToken+1; + + fts5VisitEntries( + p, 0, token.p, token.n, 1, prefixIterSetupTokendataCb, (void*)&ctx + ); + + fts5TokendataIterSortMap(p, ctx.pT); + } + + if( p->rc==SQLITE_OK ){ + pIter->pTokenDataIter = ctx.pT; + }else{ + fts5TokendataIterDelete(ctx.pT); + } + fts5BufferFree(&token); + + return fts5IndexReturn(p); +} + /* ** This is used by xInstToken() to access the token at offset iOff, column ** iCol of row iRowid. The token is returned via output variables *ppOut ** and *pnOut. The iterator passed as the first argument must be a tokendata=1 ** iterator (pIter->pTokenDataIter!=0). +** +** pToken/nToken: */ static int sqlite3Fts5IterToken( Fts5IndexIter *pIndexIter, + const char *pToken, int nToken, i64 iRowid, int iCol, int iOff, @@ -249471,13 +250386,22 @@ static int sqlite3Fts5IterToken( ){ Fts5Iter *pIter = (Fts5Iter*)pIndexIter; Fts5TokenDataIter *pT = pIter->pTokenDataIter; - Fts5TokenDataMap *aMap = pT->aMap; i64 iPos = (((i64)iCol)<<32) + iOff; - + Fts5TokenDataMap *aMap = 0; int i1 = 0; - int i2 = pT->nMap; + int i2 = 0; int iTest = 0; + assert( pT || (pToken && pIter->nSeg>0) ); + if( pT==0 ){ + int rc = fts5SetupPrefixIterTokendata(pIter, pToken, nToken); + if( rc!=SQLITE_OK ) return rc; + pT = pIter->pTokenDataIter; + } + + i2 = pT->nMap; + aMap = pT->aMap; + while( i2>i1 ){ iTest = (i1 + i2) / 2; @@ -249500,9 +250424,15 @@ static int sqlite3Fts5IterToken( } if( i2>i1 ){ - Fts5Iter *pMap = pT->apIter[aMap[iTest].iIter]; - *ppOut = (const char*)pMap->aSeg[0].term.p+1; - *pnOut = pMap->aSeg[0].term.n-1; + if( pIter->nSeg==0 ){ + Fts5Iter *pMap = pT->apIter[aMap[iTest].iIter]; + *ppOut = (const char*)pMap->aSeg[0].term.p+1; + *pnOut = pMap->aSeg[0].term.n-1; + }else{ + Fts5TokenDataMap *p = &aMap[iTest]; + *ppOut = (const char*)&pT->terms.p[p->iIter]; + *pnOut = aMap[iTest].nByte; + } } return SQLITE_OK; @@ -249514,7 +250444,9 @@ static int sqlite3Fts5IterToken( */ static void sqlite3Fts5IndexIterClearTokendata(Fts5IndexIter *pIndexIter){ Fts5Iter *pIter = (Fts5Iter*)pIndexIter; - if( pIter && pIter->pTokenDataIter ){ + if( pIter && pIter->pTokenDataIter + && (pIter->nSeg==0 || pIter->pIndex->pConfig->eDetail!=FTS5_DETAIL_FULL) + ){ pIter->pTokenDataIter->nMap = 0; } } @@ -249534,17 +250466,29 @@ static int sqlite3Fts5IndexIterWriteTokendata( Fts5Iter *pIter = (Fts5Iter*)pIndexIter; Fts5TokenDataIter *pT = pIter->pTokenDataIter; Fts5Index *p = pIter->pIndex; - int ii; + i64 iPos = (((i64)iCol)<<32) + iOff; assert( p->pConfig->eDetail!=FTS5_DETAIL_FULL ); - assert( pIter->pTokenDataIter ); - - for(ii=0; iinIter; ii++){ - Fts5Buffer *pTerm = &pT->apIter[ii]->aSeg[0].term; - if( nToken==pTerm->n-1 && memcmp(pToken, pTerm->p+1, nToken)==0 ) break; - } - if( iinIter ){ - fts5TokendataIterAppendMap(p, pT, ii, iRowid, (((i64)iCol)<<32) + iOff); + assert( pIter->pTokenDataIter || pIter->nSeg>0 ); + if( pIter->nSeg>0 ){ + /* This is a prefix term iterator. */ + if( pT==0 ){ + pT = (Fts5TokenDataIter*)sqlite3Fts5MallocZero(&p->rc, sizeof(*pT)); + pIter->pTokenDataIter = pT; + } + if( pT ){ + fts5TokendataIterAppendMap(p, pT, pT->terms.n, nToken, iRowid, iPos); + fts5BufferAppendBlob(&p->rc, &pT->terms, nToken, (const u8*)pToken); + } + }else{ + int ii; + for(ii=0; iinIter; ii++){ + Fts5Buffer *pTerm = &pT->apIter[ii]->aSeg[0].term; + if( nToken==pTerm->n-1 && memcmp(pToken, pTerm->p+1, nToken)==0 ) break; + } + if( iinIter ){ + fts5TokendataIterAppendMap(p, pT, ii, 0, iRowid, iPos); + } } return fts5IndexReturn(p); } @@ -249554,11 +250498,9 @@ static int sqlite3Fts5IndexIterWriteTokendata( */ static void sqlite3Fts5IterClose(Fts5IndexIter *pIndexIter){ if( pIndexIter ){ - Fts5Iter *pIter = (Fts5Iter*)pIndexIter; - Fts5Index *pIndex = pIter->pIndex; - fts5TokendataIterDelete(pIter->pTokenDataIter); - fts5MultiIterFree(pIter); - sqlite3Fts5IndexCloseReader(pIndex); + Fts5Index *pIndex = ((Fts5Iter*)pIndexIter)->pIndex; + fts5IterClose(pIndexIter); + fts5IndexReturn(pIndex); } } @@ -250088,7 +251030,7 @@ static int fts5QueryCksum( rc = sqlite3Fts5IterNext(pIter); } } - sqlite3Fts5IterClose(pIter); + fts5IterClose(pIter); *pCksum = cksum; return rc; @@ -251449,6 +252391,7 @@ struct Fts5Global { #define FTS5_LOCALE_HDR_SIZE ((int)sizeof( ((Fts5Global*)0)->aLocaleHdr )) #define FTS5_LOCALE_HDR(pConfig) ((const u8*)(pConfig->pGlobal->aLocaleHdr)) +#define FTS5_INSTTOKEN_SUBTYPE 73 /* ** Each auxiliary function registered with the FTS5 module is represented @@ -251988,6 +252931,7 @@ static int fts5BestIndexMethod(sqlite3_vtab *pVTab, sqlite3_index_info *pInfo){ if( p->usable==0 || iCol<0 ){ /* As there exists an unusable MATCH constraint this is an ** unusable plan. Return SQLITE_CONSTRAINT. */ + idxStr[iIdxStr] = 0; return SQLITE_CONSTRAINT; }else{ if( iCol==nCol+1 ){ @@ -252773,6 +253717,7 @@ static int fts5FilterMethod( sqlite3_value *pRowidGe = 0; /* rowid >= ? expression (or NULL) */ int iCol; /* Column on LHS of MATCH operator */ char **pzErrmsg = pConfig->pzErrmsg; + int bPrefixInsttoken = pConfig->bPrefixInsttoken; int i; int iIdxStr = 0; Fts5Expr *pExpr = 0; @@ -252808,6 +253753,9 @@ static int fts5FilterMethod( rc = fts5ExtractExprText(pConfig, apVal[i], &zText, &bFreeAndReset); if( rc!=SQLITE_OK ) goto filter_out; if( zText==0 ) zText = ""; + if( sqlite3_value_subtype(apVal[i])==FTS5_INSTTOKEN_SUBTYPE ){ + pConfig->bPrefixInsttoken = 1; + } iCol = 0; do{ @@ -252948,6 +253896,7 @@ static int fts5FilterMethod( filter_out: sqlite3Fts5ExprFree(pExpr); pConfig->pzErrmsg = pzErrmsg; + pConfig->bPrefixInsttoken = bPrefixInsttoken; return rc; } @@ -253250,7 +254199,6 @@ static int fts5UpdateMethod( Fts5Config *pConfig = pTab->p.pConfig; int eType0; /* value_type() of apVal[0] */ int rc = SQLITE_OK; /* Return code */ - int bUpdateOrDelete = 0; /* A transaction must be open when this is called. */ assert( pTab->ts.eState==1 || pTab->ts.eState==2 ); @@ -253262,7 +254210,7 @@ static int fts5UpdateMethod( ); assert( pTab->p.pConfig->pzErrmsg==0 ); if( pConfig->pgsz==0 ){ - rc = sqlite3Fts5IndexLoadConfig(pTab->p.pIndex); + rc = sqlite3Fts5ConfigLoad(pTab->p.pConfig, pTab->p.pConfig->iCookie); if( rc!=SQLITE_OK ) return rc; } @@ -253287,7 +254235,6 @@ static int fts5UpdateMethod( rc = SQLITE_ERROR; }else{ rc = fts5SpecialDelete(pTab, apVal); - bUpdateOrDelete = 1; } }else{ rc = fts5SpecialInsert(pTab, z, apVal[2 + pConfig->nCol + 1]); @@ -253324,7 +254271,6 @@ static int fts5UpdateMethod( }else{ i64 iDel = sqlite3_value_int64(apVal[0]); /* Rowid to delete */ rc = sqlite3Fts5StorageDelete(pTab->pStorage, iDel, 0, 0); - bUpdateOrDelete = 1; } } @@ -253352,7 +254298,6 @@ static int fts5UpdateMethod( if( eConflict==SQLITE_REPLACE && eType1==SQLITE_INTEGER ){ i64 iNew = sqlite3_value_int64(apVal[1]); /* Rowid to delete */ rc = sqlite3Fts5StorageDelete(pTab->pStorage, iNew, 0, 0); - bUpdateOrDelete = 1; } fts5StorageInsert(&rc, pTab, apVal, pRowid); } @@ -253406,23 +254351,8 @@ static int fts5UpdateMethod( rc = sqlite3Fts5StorageDelete(pStorage, iOld, 0, 1); fts5StorageInsert(&rc, pTab, apVal, pRowid); } - bUpdateOrDelete = 1; sqlite3Fts5StorageReleaseDeleteRow(pStorage); } - - } - } - - if( rc==SQLITE_OK - && bUpdateOrDelete - && pConfig->bSecureDelete - && pConfig->iVersion==FTS5_CURRENT_VERSION - ){ - rc = sqlite3Fts5StorageConfigValue( - pTab->pStorage, "version", 0, FTS5_CURRENT_VERSION_SECUREDELETE - ); - if( rc==SQLITE_OK ){ - pConfig->iVersion = FTS5_CURRENT_VERSION_SECUREDELETE; } } @@ -253475,6 +254405,7 @@ static int fts5RollbackMethod(sqlite3_vtab *pVtab){ Fts5FullTable *pTab = (Fts5FullTable*)pVtab; fts5CheckTransactionState(pTab, FTS5_ROLLBACK, 0); rc = sqlite3Fts5StorageRollback(pTab->pStorage); + pTab->p.pConfig->pgsz = 0; return rc; } @@ -254943,7 +255874,7 @@ static void fts5SourceIdFunc( ){ assert( nArg==0 ); UNUSED_PARAM2(nArg, apUnused); - sqlite3_result_text(pCtx, "fts5: 2024-12-07 20:39:59 2aabe05e2e8cae4847a802ee2daddc1d7413d8fc560254d93ee3e72c14685b6c", -1, SQLITE_TRANSIENT); + sqlite3_result_text(pCtx, "fts5: 2025-02-18 13:38:58 873d4e274b4988d260ba8354a9718324a1c26187a4ab4c1cc0227c03d0f10e70", -1, SQLITE_TRANSIENT); } /* @@ -255007,6 +255938,20 @@ static void fts5LocaleFunc( } } +/* +** Implementation of fts5_insttoken() function. +*/ +static void fts5InsttokenFunc( + sqlite3_context *pCtx, /* Function call context */ + int nArg, /* Number of args */ + sqlite3_value **apArg /* Function arguments */ +){ + assert( nArg==1 ); + (void)nArg; + sqlite3_result_value(pCtx, apArg[0]); + sqlite3_result_subtype(pCtx, FTS5_INSTTOKEN_SUBTYPE); +} + /* ** Return true if zName is the extension on one of the shadow tables used ** by this module. @@ -255136,10 +256081,17 @@ static int fts5Init(sqlite3 *db){ if( rc==SQLITE_OK ){ rc = sqlite3_create_function( db, "fts5_locale", 2, - SQLITE_UTF8|SQLITE_INNOCUOUS|SQLITE_RESULT_SUBTYPE, + SQLITE_UTF8|SQLITE_INNOCUOUS|SQLITE_RESULT_SUBTYPE|SQLITE_SUBTYPE, p, fts5LocaleFunc, 0, 0 ); } + if( rc==SQLITE_OK ){ + rc = sqlite3_create_function( + db, "fts5_insttoken", 1, + SQLITE_UTF8|SQLITE_INNOCUOUS|SQLITE_RESULT_SUBTYPE, + p, fts5InsttokenFunc, 0, 0 + ); + } } /* If SQLITE_FTS5_ENABLE_TEST_MI is defined, assume that the file @@ -255403,6 +256355,11 @@ static int fts5StorageGetStmt( if( rc!=SQLITE_OK && pzErrMsg ){ *pzErrMsg = sqlite3_mprintf("%s", sqlite3_errmsg(pC->db)); } + if( rc==SQLITE_ERROR && eStmt>FTS5_STMT_LOOKUP2 && eStmt=zEof ) return SQLITE_OK; READ_UTF8(zIn, zEof, iCode); - if( iCode==0 ) return SQLITE_OK; if( p->bFold ) iCode = sqlite3Fts5UnicodeFold(iCode, p->iFoldParam); }while( iCode==0 ); WRITE_UTF8(zOut, iCode); @@ -258096,8 +259053,11 @@ static int fts5TriTokenize( /* Read characters from the input up until the first non-diacritic */ do { iNext = zIn - (const unsigned char*)pText; + if( zIn>=zEof ){ + iCode = 0; + break; + } READ_UTF8(zIn, zEof, iCode); - if( iCode==0 ) break; if( p->bFold ) iCode = sqlite3Fts5UnicodeFold(iCode, p->iFoldParam); }while( iCode==0 ); @@ -260490,4 +261450,5 @@ SQLITE_API int sqlite3_stmt_init( /************** End of stmt.c ************************************************/ /* Return the source-id for this library */ SQLITE_API const char *sqlite3_sourceid(void){ return SQLITE_SOURCE_ID; } +#endif /* SQLITE_AMALGAMATION */ /************************** End of sqlite3.c ******************************/ diff --git a/deps/sqlite/sqlite3.h b/deps/sqlite/sqlite3.h index d8ce1482a352af..082a9f9dc44e93 100644 --- a/deps/sqlite/sqlite3.h +++ b/deps/sqlite/sqlite3.h @@ -146,9 +146,9 @@ extern "C" { ** [sqlite3_libversion_number()], [sqlite3_sourceid()], ** [sqlite_version()] and [sqlite_source_id()]. */ -#define SQLITE_VERSION "3.47.2" -#define SQLITE_VERSION_NUMBER 3047002 -#define SQLITE_SOURCE_ID "2024-12-07 20:39:59 2aabe05e2e8cae4847a802ee2daddc1d7413d8fc560254d93ee3e72c14685b6c" +#define SQLITE_VERSION "3.49.1" +#define SQLITE_VERSION_NUMBER 3049001 +#define SQLITE_SOURCE_ID "2025-02-18 13:38:58 873d4e274b4988d260ba8354a9718324a1c26187a4ab4c1cc0227c03d0f10e70" /* ** CAPI3REF: Run-Time Library Version Numbers @@ -1100,6 +1100,11 @@ struct sqlite3_io_methods { ** pointed to by the pArg argument. This capability is used during testing ** and only needs to be supported when SQLITE_TEST is defined. ** +**
  • [[SQLITE_FCNTL_NULL_IO]] +** The [SQLITE_FCNTL_NULL_IO] opcode sets the low-level file descriptor +** or file handle for the [sqlite3_file] object such that it will no longer +** read or write to the database file. +** **
  • [[SQLITE_FCNTL_WAL_BLOCK]] ** The [SQLITE_FCNTL_WAL_BLOCK] is a signal to the VFS layer that it might ** be advantageous to block on the next WAL lock if the lock is not immediately @@ -1253,6 +1258,7 @@ struct sqlite3_io_methods { #define SQLITE_FCNTL_EXTERNAL_READER 40 #define SQLITE_FCNTL_CKSM_FILE 41 #define SQLITE_FCNTL_RESET_CACHE 42 +#define SQLITE_FCNTL_NULL_IO 43 /* deprecated names */ #define SQLITE_GET_LOCKPROXYFILE SQLITE_FCNTL_GET_LOCKPROXYFILE @@ -2205,7 +2211,15 @@ struct sqlite3_mem_methods { ** CAPI3REF: Database Connection Configuration Options ** ** These constants are the available integer configuration options that -** can be passed as the second argument to the [sqlite3_db_config()] interface. +** can be passed as the second parameter to the [sqlite3_db_config()] interface. +** +** The [sqlite3_db_config()] interface is a var-args functions. It takes a +** variable number of parameters, though always at least two. The number of +** parameters passed into sqlite3_db_config() depends on which of these +** constants is given as the second parameter. This documentation page +** refers to parameters beyond the second as "arguments". Thus, when this +** page says "the N-th argument" it means "the N-th parameter past the +** configuration option" or "the (N+2)-th parameter to sqlite3_db_config()". ** ** New configuration options may be added in future releases of SQLite. ** Existing configuration options might be discontinued. Applications @@ -2217,8 +2231,14 @@ struct sqlite3_mem_methods { **
    ** [[SQLITE_DBCONFIG_LOOKASIDE]] **
    SQLITE_DBCONFIG_LOOKASIDE
    -**
    ^This option takes three additional arguments that determine the -** [lookaside memory allocator] configuration for the [database connection]. +**
    The SQLITE_DBCONFIG_LOOKASIDE option is used to adjust the +** configuration of the lookaside memory allocator within a database +** connection. +** The arguments to the SQLITE_DBCONFIG_LOOKASIDE option are not +** in the [DBCONFIG arguments|usual format]. +** The SQLITE_DBCONFIG_LOOKASIDE option takes three arguments, not two, +** so that a call to [sqlite3_db_config()] that uses SQLITE_DBCONFIG_LOOKASIDE +** should have a total of five parameters. ** ^The first argument (the third parameter to [sqlite3_db_config()] is a ** pointer to a memory buffer to use for lookaside memory. ** ^The first argument after the SQLITE_DBCONFIG_LOOKASIDE verb @@ -2241,7 +2261,8 @@ struct sqlite3_mem_methods { ** [[SQLITE_DBCONFIG_ENABLE_FKEY]] **
    SQLITE_DBCONFIG_ENABLE_FKEY
    **
    ^This option is used to enable or disable the enforcement of -** [foreign key constraints]. There should be two additional arguments. +** [foreign key constraints]. This is the same setting that is +** enabled or disabled by the [PRAGMA foreign_keys] statement. ** The first argument is an integer which is 0 to disable FK enforcement, ** positive to enable FK enforcement or negative to leave FK enforcement ** unchanged. The second parameter is a pointer to an integer into which @@ -2263,13 +2284,13 @@ struct sqlite3_mem_methods { **

    Originally this option disabled all triggers. ^(However, since ** SQLite version 3.35.0, TEMP triggers are still allowed even if ** this option is off. So, in other words, this option now only disables -** triggers in the main database schema or in the schemas of ATTACH-ed +** triggers in the main database schema or in the schemas of [ATTACH]-ed ** databases.)^

    ** ** [[SQLITE_DBCONFIG_ENABLE_VIEW]] **
    SQLITE_DBCONFIG_ENABLE_VIEW
    **
    ^This option is used to enable or disable [CREATE VIEW | views]. -** There should be two additional arguments. +** There must be two additional arguments. ** The first argument is an integer which is 0 to disable views, ** positive to enable views or negative to leave the setting unchanged. ** The second parameter is a pointer to an integer into which @@ -2288,7 +2309,7 @@ struct sqlite3_mem_methods { **
    ^This option is used to enable or disable the ** [fts3_tokenizer()] function which is part of the ** [FTS3] full-text search engine extension. -** There should be two additional arguments. +** There must be two additional arguments. ** The first argument is an integer which is 0 to disable fts3_tokenizer() or ** positive to enable fts3_tokenizer() or negative to leave the setting ** unchanged. @@ -2303,7 +2324,7 @@ struct sqlite3_mem_methods { ** interface independently of the [load_extension()] SQL function. ** The [sqlite3_enable_load_extension()] API enables or disables both the ** C-API [sqlite3_load_extension()] and the SQL function [load_extension()]. -** There should be two additional arguments. +** There must be two additional arguments. ** When the first argument to this interface is 1, then only the C-API is ** enabled and the SQL function remains disabled. If the first argument to ** this interface is 0, then both the C-API and the SQL function are disabled. @@ -2317,23 +2338,30 @@ struct sqlite3_mem_methods { ** ** [[SQLITE_DBCONFIG_MAINDBNAME]]
    SQLITE_DBCONFIG_MAINDBNAME
    **
    ^This option is used to change the name of the "main" database -** schema. ^The sole argument is a pointer to a constant UTF8 string -** which will become the new schema name in place of "main". ^SQLite -** does not make a copy of the new main schema name string, so the application -** must ensure that the argument passed into this DBCONFIG option is unchanged -** until after the database connection closes. +** schema. This option does not follow the +** [DBCONFIG arguments|usual SQLITE_DBCONFIG argument format]. +** This option takes exactly one additional argument so that the +** [sqlite3_db_config()] call has a total of three parameters. The +** extra argument must be a pointer to a constant UTF8 string which +** will become the new schema name in place of "main". ^SQLite does +** not make a copy of the new main schema name string, so the application +** must ensure that the argument passed into SQLITE_DBCONFIG MAINDBNAME +** is unchanged until after the database connection closes. **
    ** ** [[SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE]] **
    SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE
    -**
    Usually, when a database in wal mode is closed or detached from a -** database handle, SQLite checks if this will mean that there are now no -** connections at all to the database. If so, it performs a checkpoint -** operation before closing the connection. This option may be used to -** override this behavior. The first parameter passed to this operation -** is an integer - positive to disable checkpoints-on-close, or zero (the -** default) to enable them, and negative to leave the setting unchanged. -** The second parameter is a pointer to an integer +**
    Usually, when a database in [WAL mode] is closed or detached from a +** database handle, SQLite checks if if there are other connections to the +** same database, and if there are no other database connection (if the +** connection being closed is the last open connection to the database), +** then SQLite performs a [checkpoint] before closing the connection and +** deletes the WAL file. The SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE option can +** be used to override that behavior. The first argument passed to this +** operation (the third parameter to [sqlite3_db_config()]) is an integer +** which is positive to disable checkpoints-on-close, or zero (the default) +** to enable them, and negative to leave the setting unchanged. +** The second argument (the fourth parameter) is a pointer to an integer ** into which is written 0 or 1 to indicate whether checkpoints-on-close ** have been disabled - 0 if they are not disabled, 1 if they are. **
    @@ -2494,7 +2522,7 @@ struct sqlite3_mem_methods { ** statistics. For statistics to be collected, the flag must be set on ** the database handle both when the SQL statement is prepared and when it ** is stepped. The flag is set (collection of statistics is enabled) -** by default. This option takes two arguments: an integer and a pointer to +** by default.

    This option takes two arguments: an integer and a pointer to ** an integer.. The first argument is 1, 0, or -1 to enable, disable, or ** leave unchanged the statement scanstatus option. If the second argument ** is not NULL, then the value of the statement scanstatus setting after @@ -2508,7 +2536,7 @@ struct sqlite3_mem_methods { ** in which tables and indexes are scanned so that the scans start at the end ** and work toward the beginning rather than starting at the beginning and ** working toward the end. Setting SQLITE_DBCONFIG_REVERSE_SCANORDER is the -** same as setting [PRAGMA reverse_unordered_selects]. This option takes +** same as setting [PRAGMA reverse_unordered_selects].

    This option takes ** two arguments which are an integer and a pointer to an integer. The first ** argument is 1, 0, or -1 to enable, disable, or leave unchanged the ** reverse scan order flag, respectively. If the second argument is not NULL, @@ -2517,7 +2545,76 @@ struct sqlite3_mem_methods { ** first argument. **

  • ** +** [[SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE]] +**
    SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE
    +**
    The SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE option enables or disables +** the ability of the [ATTACH DATABASE] SQL command to create a new database +** file if the database filed named in the ATTACH command does not already +** exist. This ability of ATTACH to create a new database is enabled by +** default. Applications can disable or reenable the ability for ATTACH to +** create new database files using this DBCONFIG option.

    +** This option takes two arguments which are an integer and a pointer +** to an integer. The first argument is 1, 0, or -1 to enable, disable, or +** leave unchanged the attach-create flag, respectively. If the second +** argument is not NULL, then 0 or 1 is written into the integer that the +** second argument points to depending on if the attach-create flag is set +** after processing the first argument. +**

    +** +** [[SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE]] +**
    SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE
    +**
    The SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE option enables or disables the +** ability of the [ATTACH DATABASE] SQL command to open a database for writing. +** This capability is enabled by default. Applications can disable or +** reenable this capability using the current DBCONFIG option. If the +** the this capability is disabled, the [ATTACH] command will still work, +** but the database will be opened read-only. If this option is disabled, +** then the ability to create a new database using [ATTACH] is also disabled, +** regardless of the value of the [SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE] +** option.

    +** This option takes two arguments which are an integer and a pointer +** to an integer. The first argument is 1, 0, or -1 to enable, disable, or +** leave unchanged the ability to ATTACH another database for writing, +** respectively. If the second argument is not NULL, then 0 or 1 is written +** into the integer to which the second argument points, depending on whether +** the ability to ATTACH a read/write database is enabled or disabled +** after processing the first argument. +**

    +** +** [[SQLITE_DBCONFIG_ENABLE_COMMENTS]] +**
    SQLITE_DBCONFIG_ENABLE_COMMENTS
    +**
    The SQLITE_DBCONFIG_ENABLE_COMMENTS option enables or disables the +** ability to include comments in SQL text. Comments are enabled by default. +** An application can disable or reenable comments in SQL text using this +** DBCONFIG option.

    +** This option takes two arguments which are an integer and a pointer +** to an integer. The first argument is 1, 0, or -1 to enable, disable, or +** leave unchanged the ability to use comments in SQL text, +** respectively. If the second argument is not NULL, then 0 or 1 is written +** into the integer that the second argument points to depending on if +** comments are allowed in SQL text after processing the first argument. +**

    +** ** +** +** [[DBCONFIG arguments]]

    Arguments To SQLITE_DBCONFIG Options

    +** +**

    Most of the SQLITE_DBCONFIG options take two arguments, so that the +** overall call to [sqlite3_db_config()] has a total of four parameters. +** The first argument (the third parameter to sqlite3_db_config()) is a integer. +** The second argument is a pointer to an integer. If the first argument is 1, +** then the option becomes enabled. If the first integer argument is 0, then the +** option is disabled. If the first argument is -1, then the option setting +** is unchanged. The second argument, the pointer to an integer, may be NULL. +** If the second argument is not NULL, then a value of 0 or 1 is written into +** the integer to which the second argument points, depending on whether the +** setting is disabled or enabled after applying any changes specified by +** the first argument. +** +**

    While most SQLITE_DBCONFIG options use the argument format +** described in the previous paragraph, the [SQLITE_DBCONFIG_MAINDBNAME] +** and [SQLITE_DBCONFIG_LOOKASIDE] options are different. See the +** documentation of those exceptional options for details. */ #define SQLITE_DBCONFIG_MAINDBNAME 1000 /* const char* */ #define SQLITE_DBCONFIG_LOOKASIDE 1001 /* void* int int */ @@ -2539,7 +2636,10 @@ struct sqlite3_mem_methods { #define SQLITE_DBCONFIG_TRUSTED_SCHEMA 1017 /* int int* */ #define SQLITE_DBCONFIG_STMT_SCANSTATUS 1018 /* int int* */ #define SQLITE_DBCONFIG_REVERSE_SCANORDER 1019 /* int int* */ -#define SQLITE_DBCONFIG_MAX 1019 /* Largest DBCONFIG */ +#define SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE 1020 /* int int* */ +#define SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE 1021 /* int int* */ +#define SQLITE_DBCONFIG_ENABLE_COMMENTS 1022 /* int int* */ +#define SQLITE_DBCONFIG_MAX 1022 /* Largest DBCONFIG */ /* ** CAPI3REF: Enable Or Disable Extended Result Codes @@ -2631,10 +2731,14 @@ SQLITE_API void sqlite3_set_last_insert_rowid(sqlite3*,sqlite3_int64); ** deleted by the most recently completed INSERT, UPDATE or DELETE ** statement on the database connection specified by the only parameter. ** The two functions are identical except for the type of the return value -** and that if the number of rows modified by the most recent INSERT, UPDATE +** and that if the number of rows modified by the most recent INSERT, UPDATE, ** or DELETE is greater than the maximum value supported by type "int", then ** the return value of sqlite3_changes() is undefined. ^Executing any other ** type of SQL statement does not modify the value returned by these functions. +** For the purposes of this interface, a CREATE TABLE AS SELECT statement +** does not count as an INSERT, UPDATE or DELETE statement and hence the rows +** added to the new table by the CREATE TABLE AS SELECT statement are not +** counted. ** ** ^Only changes made directly by the INSERT, UPDATE or DELETE statement are ** considered - auxiliary changes caused by [CREATE TRIGGER | triggers], @@ -4194,11 +4298,22 @@ SQLITE_API int sqlite3_limit(sqlite3*, int id, int newVal); **

    The SQLITE_PREPARE_NO_VTAB flag causes the SQL compiler ** to return an error (error code SQLITE_ERROR) if the statement uses ** any virtual tables. +** +** [[SQLITE_PREPARE_DONT_LOG]]
    SQLITE_PREPARE_DONT_LOG
    +**
    The SQLITE_PREPARE_DONT_LOG flag prevents SQL compiler +** errors from being sent to the error log defined by +** [SQLITE_CONFIG_LOG]. This can be used, for example, to do test +** compiles to see if some SQL syntax is well-formed, without generating +** messages on the global error log when it is not. If the test compile +** fails, the sqlite3_prepare_v3() call returns the same error indications +** with or without this flag; it just omits the call to [sqlite3_log()] that +** logs the error. ** */ #define SQLITE_PREPARE_PERSISTENT 0x01 #define SQLITE_PREPARE_NORMALIZE 0x02 #define SQLITE_PREPARE_NO_VTAB 0x04 +#define SQLITE_PREPARE_DONT_LOG 0x10 /* ** CAPI3REF: Compiling An SQL Statement @@ -10727,8 +10842,9 @@ SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_snapshot_recover(sqlite3 *db, const c /* ** CAPI3REF: Serialize a database ** -** The sqlite3_serialize(D,S,P,F) interface returns a pointer to memory -** that is a serialization of the S database on [database connection] D. +** The sqlite3_serialize(D,S,P,F) interface returns a pointer to +** memory that is a serialization of the S database on +** [database connection] D. If S is a NULL pointer, the main database is used. ** If P is not a NULL pointer, then the size of the database in bytes ** is written into *P. ** @@ -10889,7 +11005,7 @@ SQLITE_API int sqlite3_deserialize( #ifdef __cplusplus } /* End of the 'extern "C"' block */ #endif -#endif /* SQLITE3_H */ +/* #endif for SQLITE3_H will be added by mksqlite3.tcl */ /******** Begin file sqlite3rtree.h *********/ /* @@ -13140,14 +13256,29 @@ struct Fts5PhraseIter { ** value returned by xInstCount(), SQLITE_RANGE is returned. Otherwise, ** output variable (*ppToken) is set to point to a buffer containing the ** matching document token, and (*pnToken) to the size of that buffer in -** bytes. This API is not available if the specified token matches a -** prefix query term. In that case both output variables are always set -** to 0. +** bytes. ** ** The output text is not a copy of the document text that was tokenized. ** It is the output of the tokenizer module. For tokendata=1 tables, this ** includes any embedded 0x00 and trailing data. ** +** This API may be slow in some cases if the token identified by parameters +** iIdx and iToken matched a prefix token in the query. In most cases, the +** first call to this API for each prefix token in the query is forced +** to scan the portion of the full-text index that matches the prefix +** token to collect the extra data required by this API. If the prefix +** token matches a large number of token instances in the document set, +** this may be a performance problem. +** +** If the user knows in advance that a query may use this API for a +** prefix token, FTS5 may be configured to collect all required data as part +** of the initial querying of the full-text index, avoiding the second scan +** entirely. This also causes prefix queries that do not use this API to +** run more slowly and use more memory. FTS5 may be configured in this way +** either on a per-table basis using the [FTS5 insttoken | 'insttoken'] +** option, or on a per-query basis using the +** [fts5_insttoken | fts5_insttoken()] user function. +** ** This API can be quite slow if used with an FTS5 table created with the ** "detail=none" or "detail=column" option. ** @@ -13581,3 +13712,4 @@ struct fts5_api { #endif /* _FTS5_H */ /******** End of fts5.h *********/ +#endif /* SQLITE3_H */ diff --git a/deps/undici/src/lib/dispatcher/pool.js b/deps/undici/src/lib/dispatcher/pool.js index 2d84cd96488fd6..0b8a2da6da4966 100644 --- a/deps/undici/src/lib/dispatcher/pool.js +++ b/deps/undici/src/lib/dispatcher/pool.js @@ -73,6 +73,20 @@ class Pool extends PoolBase { ? { ...options.interceptors } : undefined this[kFactory] = factory + + this.on('connectionError', (origin, targets, error) => { + // If a connection error occurs, we remove the client from the pool, + // and emit a connectionError event. They will not be re-used. + // Fixes https://github.com/nodejs/undici/issues/3895 + for (const target of targets) { + // Do not use kRemoveClient here, as it will close the client, + // but the client cannot be closed in this state. + const idx = this[kClients].indexOf(target) + if (idx !== -1) { + this[kClients].splice(idx, 1) + } + } + }) } [kGetDispatcher] () { diff --git a/deps/undici/src/lib/llhttp/wasm_build_env.txt b/deps/undici/src/lib/llhttp/wasm_build_env.txt index c92b0aa26e0c48..5ce088f4338bde 100644 --- a/deps/undici/src/lib/llhttp/wasm_build_env.txt +++ b/deps/undici/src/lib/llhttp/wasm_build_env.txt @@ -1,15 +1,15 @@ -> undici@6.21.1 prebuild:wasm +> undici@6.21.2 prebuild:wasm > node build/wasm.js --prebuild -> docker build --platform=linux/aarch64 -t llhttp_wasm_builder -f /Users/matteo/repos/node-private/deps/undici/src/build/Dockerfile /Users/matteo/repos/node-private/deps/undici/src +> docker build --platform=linux/aarch64 -t llhttp_wasm_builder -f /Users/matteo/repos/node/deps/undici/src/build/Dockerfile /Users/matteo/repos/node/deps/undici/src -> undici@6.21.1 build:wasm +> undici@6.21.2 build:wasm > node build/wasm.js --docker -> docker run --rm -t --platform=linux/aarch64 --mount type=bind,source=/Users/matteo/repos/node-private/deps/undici/src/lib/llhttp,target=/home/node/undici/lib/llhttp llhttp_wasm_builder node build/wasm.js +> docker run --rm -t --platform=linux/aarch64 --mount type=bind,source=/Users/matteo/repos/node/deps/undici/src/lib/llhttp,target=/home/node/undici/lib/llhttp llhttp_wasm_builder node build/wasm.js alpine-baselayout-3.4.3-r2 diff --git a/deps/undici/src/package.json b/deps/undici/src/package.json index a465327b1bc7f5..d7fab14768ad0f 100644 --- a/deps/undici/src/package.json +++ b/deps/undici/src/package.json @@ -1,6 +1,6 @@ { "name": "undici", - "version": "6.21.1", + "version": "6.21.2", "description": "An HTTP/1.1 client, written from scratch for Node.js", "homepage": "https://undici.nodejs.org", "bugs": { diff --git a/deps/undici/src/types/interceptors.d.ts b/deps/undici/src/types/interceptors.d.ts index 65e9397554e9ab..9f6af128d5efc8 100644 --- a/deps/undici/src/types/interceptors.d.ts +++ b/deps/undici/src/types/interceptors.d.ts @@ -28,4 +28,5 @@ declare namespace Interceptors { export function retry(opts?: RetryInterceptorOpts): Dispatcher.DispatcherComposeInterceptor export function redirect(opts?: RedirectInterceptorOpts): Dispatcher.DispatcherComposeInterceptor export function responseError(opts?: ResponseErrorInterceptorOpts): Dispatcher.DispatcherComposeInterceptor + export function dns (opts?: DNSInterceptorOpts): Dispatcher.DispatcherComposeInterceptor } diff --git a/deps/undici/undici.js b/deps/undici/undici.js index 42387a0ea7e03c..d65ffba0ff6c1c 100644 --- a/deps/undici/undici.js +++ b/deps/undici/undici.js @@ -8123,6 +8123,14 @@ var require_pool = __commonJS({ this[kOptions] = { ...util.deepClone(options), connect, allowH2 }; this[kOptions].interceptors = options.interceptors ? { ...options.interceptors } : void 0; this[kFactory] = factory; + this.on("connectionError", (origin2, targets, error) => { + for (const target of targets) { + const idx = this[kClients].indexOf(target); + if (idx !== -1) { + this[kClients].splice(idx, 1); + } + } + }); } [kGetDispatcher]() { for (const client of this[kClients]) { diff --git a/deps/uv/unofficial.gni b/deps/uv/unofficial.gni index 348d2f0703e47c..0944d6ddd241b1 100644 --- a/deps/uv/unofficial.gni +++ b/deps/uv/unofficial.gni @@ -87,11 +87,11 @@ template("uv_gn_build") { ] } if (is_posix) { - libs = [ "m" ] ldflags = [ "-pthread" ] } if (is_linux) { - libs += [ + libs = [ + "m", "dl", "rt", ] diff --git a/deps/uv/uv.gyp b/deps/uv/uv.gyp index fea86b4af7826e..8c8d7d00fd2913 100644 --- a/deps/uv/uv.gyp +++ b/deps/uv/uv.gyp @@ -220,7 +220,6 @@ '<@(uv_sources_posix)', ], 'link_settings': { - 'libraries': [ '-lm' ], 'conditions': [ ['OS=="solaris"', { 'ldflags': [ '-pthreads' ], @@ -231,6 +230,11 @@ ['OS != "solaris" and OS != "android" and OS != "zos"', { 'ldflags': [ '-pthread' ], }], + ['OS!="mac"', { + 'libraries': [ + '-lm' + ], + }], ], }, 'conditions': [ diff --git a/deps/v8/src/codegen/riscv/cpu-riscv.cc b/deps/v8/src/codegen/riscv/cpu-riscv.cc index 613c54439a59fb..143602dfb663c7 100644 --- a/deps/v8/src/codegen/riscv/cpu-riscv.cc +++ b/deps/v8/src/codegen/riscv/cpu-riscv.cc @@ -15,16 +15,12 @@ namespace internal { void CpuFeatures::FlushICache(void* start, size_t size) { #if !defined(USE_SIMULATOR) char* end = reinterpret_cast(start) + size; - // The definition of this syscall is equal to - // SYSCALL_DEFINE3(riscv_flush_icache, uintptr_t, start, - // uintptr_t, end, uintptr_t, flags) - // The flag here is set to be SYS_RISCV_FLUSH_ICACHE_LOCAL, which is - // defined as 1 in the Linux kernel. // SYS_riscv_flush_icache is a symbolic constant used in user-space code to // identify the flush_icache system call, while __NR_riscv_flush_icache is the // corresponding system call number used in the kernel to dispatch the system // call. - syscall(__NR_riscv_flush_icache, start, end, 1); + // The flag set to zero will flush all cpu cores. + syscall(__NR_riscv_flush_icache, start, end, 0); #endif // !USE_SIMULATOR. } diff --git a/deps/v8/src/heap/heap.cc b/deps/v8/src/heap/heap.cc index f802c147357108..eb338f4b52b959 100644 --- a/deps/v8/src/heap/heap.cc +++ b/deps/v8/src/heap/heap.cc @@ -6252,12 +6252,13 @@ void Heap::AddRetainedMaps(Handle context, GlobalHandleVector maps) { Handle array(WeakArrayList::cast(context->retained_maps()), isolate()); - if (array->IsFull()) { + int new_maps_size = static_cast(maps.size()) * kRetainMapEntrySize; + if (array->length() + new_maps_size > array->capacity()) { CompactRetainedMaps(*array); } int cur_length = array->length(); - array = WeakArrayList::EnsureSpace( - isolate(), array, cur_length + static_cast(maps.size()) * 2); + array = + WeakArrayList::EnsureSpace(isolate(), array, cur_length + new_maps_size); if (*array != context->retained_maps()) { context->set_retained_maps(*array); } @@ -6275,7 +6276,7 @@ void Heap::AddRetainedMaps(Handle context, raw_array->Set(cur_length, MakeWeak(*map)); raw_array->Set(cur_length + 1, Smi::FromInt(v8_flags.retain_maps_for_n_gc)); - cur_length += 2; + cur_length += kRetainMapEntrySize; raw_array->set_length(cur_length); map->set_is_in_retained_map_list(true); @@ -6287,7 +6288,7 @@ void Heap::CompactRetainedMaps(Tagged retained_maps) { int length = retained_maps->length(); int new_length = 0; // This loop compacts the array by removing cleared weak cells. - for (int i = 0; i < length; i += 2) { + for (int i = 0; i < length; i += kRetainMapEntrySize) { Tagged maybe_object = retained_maps->Get(i); if (maybe_object.IsCleared()) { continue; @@ -6301,7 +6302,7 @@ void Heap::CompactRetainedMaps(Tagged retained_maps) { retained_maps->Set(new_length, maybe_object); retained_maps->Set(new_length + 1, age); } - new_length += 2; + new_length += kRetainMapEntrySize; } Tagged undefined = ReadOnlyRoots(this).undefined_value(); for (int i = new_length; i < length; i++) { diff --git a/deps/v8/src/heap/heap.h b/deps/v8/src/heap/heap.h index 614c331cc12731..955c9155dbdbbe 100644 --- a/deps/v8/src/heap/heap.h +++ b/deps/v8/src/heap/heap.h @@ -1807,6 +1807,8 @@ class Heap final { void AddToRingBuffer(const char* string); void GetFromRingBuffer(char* buffer); + static constexpr int kRetainMapEntrySize = 2; + void CompactRetainedMaps(Tagged retained_maps); void CollectGarbageOnMemoryPressure(); diff --git a/deps/zlib/CMakeLists.txt b/deps/zlib/CMakeLists.txt index 59d77c3a413628..ebf9cd41248655 100644 --- a/deps/zlib/CMakeLists.txt +++ b/deps/zlib/CMakeLists.txt @@ -386,6 +386,7 @@ if (BUILD_MINIZIP_BIN) add_executable(minizip_bin contrib/minizip/minizip.c contrib/minizip/ioapi.c contrib/minizip/ioapi.h contrib/minizip/unzip.c contrib/minizip/unzip.h contrib/minizip/zip.c contrib/minizip/zip.h + contrib/minizip/ints.h contrib/minizip/skipset.h ) target_link_libraries(minizip_bin zlib) endif() diff --git a/deps/zlib/GN-scraper.py b/deps/zlib/GN-scraper.py deleted file mode 100644 index f22e19a2a96cee..00000000000000 --- a/deps/zlib/GN-scraper.py +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright (c) 2019 Refael Ackeramnn. All rights reserved. -# Use of this source code is governed by an MIT-style license. -import re -import os -import sys - -PLAIN_SOURCE_RE = re.compile('\s*"([^/$].+)"\s*') -def DoMain(args): - gn_filename, pattern = args - src_root = os.path.dirname(gn_filename) - with open(gn_filename, 'rb') as gn_file: - gn_content = gn_file.read().decode('utf-8') - - scraper_re = re.compile(pattern + r'\[([^\]]+)', re.DOTALL) - matches = scraper_re.search(gn_content) - match = matches.group(1) - files = [] - for l in match.splitlines(): - m2 = PLAIN_SOURCE_RE.match(l) - if not m2: - continue - files.append(m2.group(1)) - # always use `/` since GYP will process paths further downstream - rel_files = ['"%s/%s"' % (src_root, f) for f in files] - return ' '.join(rel_files) - -if __name__ == '__main__': - print(DoMain(sys.argv[1:])) diff --git a/deps/zlib/contrib/bench/zlib_bench.cc b/deps/zlib/contrib/bench/zlib_bench.cc index 6df296c8721056..5d84b8c9cb6438 100644 --- a/deps/zlib/contrib/bench/zlib_bench.cc +++ b/deps/zlib/contrib/bench/zlib_bench.cc @@ -18,18 +18,19 @@ * g++|clang++ -O3 -Wall -std=c++11 zlib_bench.cc -lstdc++ -lz */ +#include +#include +#include +#include + #include #include #include #include +#include #include #include -#include -#include -#include -#include - #include "zlib.h" void error_exit(const char* error, int code) { diff --git a/deps/zlib/contrib/minizip/Makefile b/deps/zlib/contrib/minizip/Makefile index aac76e07f6b999..b3e050a0416c00 100644 --- a/deps/zlib/contrib/minizip/Makefile +++ b/deps/zlib/contrib/minizip/Makefile @@ -1,5 +1,5 @@ -CC=cc -CFLAGS := $(CFLAGS) -O -I../.. +CC?=cc +CFLAGS := -O $(CFLAGS) -I../.. UNZ_OBJS = miniunz.o unzip.o ioapi.o ../../libz.a ZIP_OBJS = minizip.o zip.o ioapi.o ../../libz.a @@ -9,13 +9,21 @@ ZIP_OBJS = minizip.o zip.o ioapi.o ../../libz.a all: miniunz minizip -miniunz: $(UNZ_OBJS) +miniunz.o: miniunz.c unzip.h iowin32.h +minizip.o: minizip.c zip.h iowin32.h ints.h +unzip.o: unzip.c unzip.h crypt.h +zip.o: zip.c zip.h crypt.h skipset.h ints.h +ioapi.o: ioapi.c ioapi.h ints.h +iowin32.o: iowin32.c iowin32.h ioapi.h +mztools.o: mztools.c unzip.h + +miniunz: $(UNZ_OBJS) $(CC) $(CFLAGS) -o $@ $(UNZ_OBJS) -minizip: $(ZIP_OBJS) +minizip: $(ZIP_OBJS) $(CC) $(CFLAGS) -o $@ $(ZIP_OBJS) -test: miniunz minizip +test: miniunz minizip @rm -f test.* @echo hello hello hello > test.txt ./minizip test test.txt diff --git a/deps/zlib/contrib/minizip/README.chromium b/deps/zlib/contrib/minizip/README.chromium index ceaff34f0f3fa6..6728765dd7580d 100644 --- a/deps/zlib/contrib/minizip/README.chromium +++ b/deps/zlib/contrib/minizip/README.chromium @@ -1,8 +1,8 @@ Name: ZIP file API for reading file entries in a ZIP archive Short Name: minizip URL: https://github.com/madler/zlib/tree/master/contrib/minizip -Version: 1.3.0.1 -Revision: 643e17b7498d12ab8d15565662880579692f769d +Version: 1.3.1.1 +Revision: ef24c4c7502169f016dcd2a26923dbaf3216748c License: Zlib License File: //third_party/zlib/LICENSE Shipped: yes @@ -14,6 +14,13 @@ Minizip provides API on top of zlib that can enumerate and extract ZIP archive files. See minizip.md for chromium build instructions. Local Modifications: +- OS macro tweaks for Android and Fuchsia + 0000-build.patch (the contrib/minizip/ parts) + 0008-minizip-zip-unzip-tools.patch (crrev.com/886990) + +- Fix build on UWP. (crrev.com/750639) + 0004-fix-uwp.patch + - Fixed uncompressing files with wrong uncompressed size set crrev.com/268940 0014-minizip-unzip-with-incorrect-size.patch diff --git a/deps/zlib/contrib/minizip/ints.h b/deps/zlib/contrib/minizip/ints.h new file mode 100644 index 00000000000000..4c84375b2138de --- /dev/null +++ b/deps/zlib/contrib/minizip/ints.h @@ -0,0 +1,57 @@ +/* ints.h -- create integer types for 8, 16, 32, and 64 bits + * Copyright (C) 2024 Mark Adler + * For conditions of distribution and use, see the copyright notice in zlib.h + * + * There exist compilers with limits.h, but not stdint.h or inttypes.h. + */ + +#ifndef INTS_H +#define INTS_H +#include +#if defined(UCHAR_MAX) && UCHAR_MAX == 0xff + typedef signed char i8_t; + typedef unsigned char ui8_t; +#else +# error "no 8-bit integer" +#endif +#if defined(USHRT_MAX) && USHRT_MAX == 0xffff + typedef short i16_t; + typedef unsigned short ui16_t; +#elif defined(UINT_MAX) && UINT_MAX == 0xffff + typedef int i16_t; + typedef unsigned ui16_t; +#else +# error "no 16-bit integer" +#endif +#if defined(UINT_MAX) && UINT_MAX == 0xffffffff + typedef int i32_t; + typedef unsigned ui32_t; +# define PI32 "d" +# define PUI32 "u" +#elif defined(ULONG_MAX) && ULONG_MAX == 0xffffffff + typedef long i32_t; + typedef unsigned long ui32_t; +# define PI32 "ld" +# define PUI32 "lu" +#else +# error "no 32-bit integer" +#endif +#if defined(ULONG_MAX) && ULONG_MAX == 0xffffffffffffffff + typedef long i64_t; + typedef unsigned long ui64_t; +# define PI64 "ld" +# define PUI64 "lu" +#elif defined(ULLONG_MAX) && ULLONG_MAX == 0xffffffffffffffff + typedef long long i64_t; + typedef unsigned long long ui64_t; +# define PI64 "lld" +# define PUI64 "llu" +#elif defined(ULONG_LONG_MAX) && ULONG_LONG_MAX == 0xffffffffffffffff + typedef long long i64_t; + typedef unsigned long long ui64_t; +# define PI64 "lld" +# define PUI64 "llu" +#else +# error "no 64-bit integer" +#endif +#endif diff --git a/deps/zlib/contrib/minizip/ioapi.h b/deps/zlib/contrib/minizip/ioapi.h index a2d2e6e60d9250..f3b193d8030575 100644 --- a/deps/zlib/contrib/minizip/ioapi.h +++ b/deps/zlib/contrib/minizip/ioapi.h @@ -18,8 +18,8 @@ */ -#ifndef _ZLIBIOAPI64_H -#define _ZLIBIOAPI64_H +#ifndef ZLIBIOAPI64_H +#define ZLIBIOAPI64_H #if (!defined(_WIN32)) && (!defined(WIN32)) && (!defined(__APPLE__)) @@ -67,39 +67,12 @@ #endif #endif -/* -#ifndef ZPOS64_T - #ifdef _WIN32 - #define ZPOS64_T fpos_t - #else - #include - #define ZPOS64_T uint64_t - #endif -#endif -*/ - #ifdef HAVE_MINIZIP64_CONF_H #include "mz64conf.h" #endif -/* a type chosen by DEFINE */ -#ifdef HAVE_64BIT_INT_CUSTOM -typedef 64BIT_INT_CUSTOM_TYPE ZPOS64_T; -#else -#ifdef HAS_STDINT_H -#include "stdint.h" -typedef uint64_t ZPOS64_T; -#else - - - -#if defined(_MSC_VER) || defined(__BORLANDC__) -typedef unsigned __int64 ZPOS64_T; -#else -typedef unsigned long long int ZPOS64_T; -#endif -#endif -#endif +#include "ints.h" +typedef ui64_t ZPOS64_T; /* Maximum unsigned 32-bit value used as placeholder for zip64 */ #ifndef MAXU32 diff --git a/deps/zlib/contrib/minizip/iowin32.c b/deps/zlib/contrib/minizip/iowin32.c index 3f6867fd7e40b5..393c98676f0eff 100644 --- a/deps/zlib/contrib/minizip/iowin32.c +++ b/deps/zlib/contrib/minizip/iowin32.c @@ -88,7 +88,7 @@ static voidpf win32_build_iowin(HANDLE hFile) { } voidpf ZCALLBACK win32_open64_file_func(voidpf opaque, const void* filename, int mode) { - const char* mode_fopen = NULL; + (void)opaque; DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes ; HANDLE hFile = NULL; @@ -116,7 +116,7 @@ voidpf ZCALLBACK win32_open64_file_func(voidpf opaque, const void* filename, int voidpf ZCALLBACK win32_open64_file_funcA(voidpf opaque, const void* filename, int mode) { - const char* mode_fopen = NULL; + (void)opaque; DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes ; HANDLE hFile = NULL; @@ -139,7 +139,7 @@ voidpf ZCALLBACK win32_open64_file_funcA(voidpf opaque, const void* filename, in voidpf ZCALLBACK win32_open64_file_funcW(voidpf opaque, const void* filename, int mode) { - const char* mode_fopen = NULL; + (void)opaque; DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes ; HANDLE hFile = NULL; @@ -158,7 +158,7 @@ voidpf ZCALLBACK win32_open64_file_funcW(voidpf opaque, const void* filename, in voidpf ZCALLBACK win32_open_file_func(voidpf opaque, const char* filename, int mode) { - const char* mode_fopen = NULL; + (void)opaque; DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes ; HANDLE hFile = NULL; @@ -186,6 +186,7 @@ voidpf ZCALLBACK win32_open_file_func(voidpf opaque, const char* filename, int m uLong ZCALLBACK win32_read_file_func(voidpf opaque, voidpf stream, void* buf,uLong size) { + (void)opaque; uLong ret=0; HANDLE hFile = NULL; if (stream!=NULL) @@ -207,6 +208,7 @@ uLong ZCALLBACK win32_read_file_func(voidpf opaque, voidpf stream, void* buf,uLo uLong ZCALLBACK win32_write_file_func(voidpf opaque, voidpf stream, const void* buf, uLong size) { + (void)opaque; uLong ret=0; HANDLE hFile = NULL; if (stream!=NULL) @@ -246,6 +248,7 @@ static BOOL MySetFilePointerEx(HANDLE hFile, LARGE_INTEGER pos, LARGE_INTEGER *n } long ZCALLBACK win32_tell_file_func(voidpf opaque, voidpf stream) { + (void)opaque; long ret=-1; HANDLE hFile = NULL; if (stream!=NULL) @@ -268,6 +271,7 @@ long ZCALLBACK win32_tell_file_func(voidpf opaque, voidpf stream) { } ZPOS64_T ZCALLBACK win32_tell64_file_func(voidpf opaque, voidpf stream) { + (void)opaque; ZPOS64_T ret= (ZPOS64_T)-1; HANDLE hFile = NULL; if (stream!=NULL) @@ -292,6 +296,7 @@ ZPOS64_T ZCALLBACK win32_tell64_file_func(voidpf opaque, voidpf stream) { long ZCALLBACK win32_seek_file_func(voidpf opaque, voidpf stream, uLong offset, int origin) { + (void)opaque; DWORD dwMoveMethod=0xFFFFFFFF; HANDLE hFile = NULL; @@ -329,6 +334,7 @@ long ZCALLBACK win32_seek_file_func(voidpf opaque, voidpf stream, uLong offset, } long ZCALLBACK win32_seek64_file_func(voidpf opaque, voidpf stream, ZPOS64_T offset, int origin) { + (void)opaque; DWORD dwMoveMethod=0xFFFFFFFF; HANDLE hFile = NULL; long ret=-1; @@ -367,6 +373,7 @@ long ZCALLBACK win32_seek64_file_func(voidpf opaque, voidpf stream, ZPOS64_T off } int ZCALLBACK win32_close_file_func(voidpf opaque, voidpf stream) { + (void)opaque; int ret=-1; if (stream!=NULL) @@ -384,6 +391,7 @@ int ZCALLBACK win32_close_file_func(voidpf opaque, voidpf stream) { } int ZCALLBACK win32_error_file_func(voidpf opaque, voidpf stream) { + (void)opaque; int ret=-1; if (stream!=NULL) { diff --git a/deps/zlib/contrib/minizip/miniunz.c b/deps/zlib/contrib/minizip/miniunz.c index 5b4312e5647cd2..f4ad16bdd377ba 100644 --- a/deps/zlib/contrib/minizip/miniunz.c +++ b/deps/zlib/contrib/minizip/miniunz.c @@ -39,6 +39,9 @@ #endif +#ifndef _CRT_SECURE_NO_WARNINGS +# define _CRT_SECURE_NO_WARNINGS +#endif #include #include #include @@ -79,10 +82,11 @@ /* change_file_date : change the date/time of a file filename : the filename of the file where date/time must be modified - dosdate : the new date at the MSDos format (4 bytes) + dosdate : the new date at the MSDOS format (4 bytes) tmu_date : the SAME new date at the tm_unz format */ static void change_file_date(const char *filename, uLong dosdate, tm_unz tmu_date) { #ifdef _WIN32 + (void)tmu_date; HANDLE hFile; FILETIME ftm,ftLocal,ftCreate,ftLastAcc,ftLastWrite; @@ -93,8 +97,7 @@ static void change_file_date(const char *filename, uLong dosdate, tm_unz tmu_dat LocalFileTimeToFileTime(&ftLocal,&ftm); SetFileTime(hFile,&ftm,&ftLastAcc,&ftm); CloseHandle(hFile); -#else -#if defined(unix) || defined(__APPLE__) || defined(__Fuchsia__) || defined(__ANDROID_API__) +#elif defined(__unix__) || defined(__unix) || defined(__APPLE__) || defined(__Fuchsia__) || defined(__ANDROID_API__) (void)dosdate; struct utimbuf ut; struct tm newdate; @@ -116,7 +119,6 @@ static void change_file_date(const char *filename, uLong dosdate, tm_unz tmu_dat (void)dosdate; (void)tmu_date; #endif -#endif } @@ -125,9 +127,9 @@ static void change_file_date(const char *filename, uLong dosdate, tm_unz tmu_dat static int mymkdir(const char* dirname) { int ret=0; -#if defined(_WIN32) +#ifdef _WIN32 ret = _mkdir(dirname); -#elif defined(unix) || defined(__APPLE__) || defined(__Fuchsia__) || defined(__ANDROID_API__) +#elif defined(__unix__) || defined(__unix) || defined(__APPLE__) || defined(__Fuchsia__) || defined(__ANDROID_API__) ret = mkdir (dirname,0775); #else (void)dirname; @@ -238,7 +240,7 @@ static int do_list(unzFile uf) { printf(" ------ ------ ---- ----- ---- ---- ------ ----\n"); for (i=0;i #include #include @@ -58,6 +61,7 @@ #endif #include "zip.h" +#include "ints.h" #ifdef _WIN32 #define USEWIN32IOAPI @@ -73,6 +77,7 @@ /* f: name of file to get info on, tmzip: return value: access, modification and creation times, dt: dostime */ static int filetime(const char *f, tm_zip *tmzip, uLong *dt) { + (void)tmzip; int ret = 0; { FILETIME ftLocal; @@ -90,8 +95,7 @@ static int filetime(const char *f, tm_zip *tmzip, uLong *dt) { } return ret; } -#else -#if defined(unix) || defined(__APPLE__) || defined(__Fuchsia__) || defined(__ANDROID_API__) +#elif defined(__unix__) || defined(__unix) || defined(__APPLE__) || defined(__Fuchsia__) || defined(__ANDROID_API__) /* f: name of file to get info on, tmzip: return value: access, modification and creation times, dt: dostime */ static int filetime(const char *f, tm_zip *tmzip, uLong *dt) { @@ -142,7 +146,6 @@ static int filetime(const char *f, tm_zip *tmzip, uLong *dt) { return 0; } #endif -#endif @@ -191,7 +194,7 @@ static int getFileCrc(const char* filenameinzip, void* buf, unsigned long size_b do { err = ZIP_OK; - size_read = fread(buf,1,size_buf,fin); + size_read = (unsigned long)fread(buf,1,size_buf,fin); if (size_read < size_buf) if (feof(fin)==0) { @@ -223,7 +226,7 @@ static int isLargeFile(const char* filename) { FSEEKO_FUNC(pFile, 0, SEEK_END); pos = (ZPOS64_T)FTELLO_FUNC(pFile); - printf("File : %s is %llu bytes\n", filename, pos); + printf("File : %s is %"PUI64" bytes\n", filename, pos); if(pos >= 0xffffffff) largeFile = 1; @@ -243,7 +246,7 @@ int main(int argc, char *argv[]) { char filename_try[MAXFILENAME+16]; int zipok; int err=0; - size_t size_buf=0; + unsigned long size_buf=0; void* buf=NULL; const char* password=NULL; @@ -305,7 +308,7 @@ int main(int argc, char *argv[]) { } else { - int i,len; + int len; int dot_found=0; zipok = 1 ; diff --git a/deps/zlib/contrib/minizip/mztools.c b/deps/zlib/contrib/minizip/mztools.c index c8d23756155731..f86c1e71b0954e 100644 --- a/deps/zlib/contrib/minizip/mztools.c +++ b/deps/zlib/contrib/minizip/mztools.c @@ -5,6 +5,9 @@ */ /* Code */ +#ifndef _CRT_SECURE_NO_WARNINGS +# define _CRT_SECURE_NO_WARNINGS +#endif #include #include #include @@ -140,28 +143,28 @@ extern int ZEXPORT unzRepair(const char* file, const char* fileOut, const char* /* Central directory entry */ { - char header[46]; + char central[46]; char* comment = ""; int comsize = (int) strlen(comment); - WRITE_32(header, 0x02014b50); - WRITE_16(header + 4, version); - WRITE_16(header + 6, version); - WRITE_16(header + 8, gpflag); - WRITE_16(header + 10, method); - WRITE_16(header + 12, filetime); - WRITE_16(header + 14, filedate); - WRITE_32(header + 16, crc); - WRITE_32(header + 20, cpsize); - WRITE_32(header + 24, uncpsize); - WRITE_16(header + 28, fnsize); - WRITE_16(header + 30, extsize); - WRITE_16(header + 32, comsize); - WRITE_16(header + 34, 0); /* disk # */ - WRITE_16(header + 36, 0); /* int attrb */ - WRITE_32(header + 38, 0); /* ext attrb */ - WRITE_32(header + 42, currentOffset); + WRITE_32(central, 0x02014b50); + WRITE_16(central + 4, version); + WRITE_16(central + 6, version); + WRITE_16(central + 8, gpflag); + WRITE_16(central + 10, method); + WRITE_16(central + 12, filetime); + WRITE_16(central + 14, filedate); + WRITE_32(central + 16, crc); + WRITE_32(central + 20, cpsize); + WRITE_32(central + 24, uncpsize); + WRITE_16(central + 28, fnsize); + WRITE_16(central + 30, extsize); + WRITE_16(central + 32, comsize); + WRITE_16(central + 34, 0); /* disk # */ + WRITE_16(central + 36, 0); /* int attrb */ + WRITE_32(central + 38, 0); /* ext attrb */ + WRITE_32(central + 42, currentOffset); /* Header */ - if (fwrite(header, 1, 46, fpOutCD) == 46) { + if (fwrite(central, 1, 46, fpOutCD) == 46) { offsetCD += 46; /* Filename */ @@ -215,23 +218,23 @@ extern int ZEXPORT unzRepair(const char* file, const char* fileOut, const char* /* Final central directory */ { int entriesZip = entries; - char header[22]; + char end[22]; char* comment = ""; // "ZIP File recovered by zlib/minizip/mztools"; int comsize = (int) strlen(comment); if (entriesZip > 0xffff) { entriesZip = 0xffff; } - WRITE_32(header, 0x06054b50); - WRITE_16(header + 4, 0); /* disk # */ - WRITE_16(header + 6, 0); /* disk # */ - WRITE_16(header + 8, entriesZip); /* hack */ - WRITE_16(header + 10, entriesZip); /* hack */ - WRITE_32(header + 12, offsetCD); /* size of CD */ - WRITE_32(header + 16, offset); /* offset to CD */ - WRITE_16(header + 20, comsize); /* comment */ + WRITE_32(end, 0x06054b50); + WRITE_16(end + 4, 0); /* disk # */ + WRITE_16(end + 6, 0); /* disk # */ + WRITE_16(end + 8, entriesZip); /* hack */ + WRITE_16(end + 10, entriesZip); /* hack */ + WRITE_32(end + 12, offsetCD); /* size of CD */ + WRITE_32(end + 16, offset); /* offset to CD */ + WRITE_16(end + 20, comsize); /* comment */ /* Header */ - if (fwrite(header, 1, 22, fpOutCD) == 22) { + if (fwrite(end, 1, 22, fpOutCD) == 22) { /* Comment field */ if (comsize > 0) { diff --git a/deps/zlib/contrib/minizip/skipset.h b/deps/zlib/contrib/minizip/skipset.h new file mode 100644 index 00000000000000..5e648b9d234899 --- /dev/null +++ b/deps/zlib/contrib/minizip/skipset.h @@ -0,0 +1,361 @@ +// skipset.h -- set operations using a skiplist +// Copyright (C) 2024 Mark Adler +// See MiniZip_info.txt for the license. + +// This implements a skiplist set, i.e. just keys, no data, with ~O(log n) time +// insert and search operations. The application defines the type of a key, and +// provides a function to compare two keys. + +// This header is not definitions of functions found in another source file -- +// it creates the set functions, with the application's key type, right where +// the #include is. Before this header is #included, these must be defined: +// +// 1. A macro or typedef for set_key_t, the type of a key. +// 2. A macro or function set_cmp(a, b) to compare two keys. The return values +// are < 0 for a < b, 0 for a == b, and > 0 for a > b. +// 3. A macro or function set_drop(s, k) to release the key k's resources, if +// any, when doing a set_end() or set_clear(). s is a pointer to the set +// that key is in, for use with set_free() if desired. +// +// Example usage: +// +// typedef int set_key_t; +// #define set_cmp(a, b) ((a) < (b) ? -1 : (a) == (b) ? 0 : 1) +// #define set_drop(s, k) +// #include "skipset.h" +// +// int test(void) { // return 0: good, 1: bad, -1: out of memory +// set_t set; +// if (setjmp(set.env)) +// return -1; +// set_start(&set); +// set_insert(&set, 2); +// set_insert(&set, 1); +// set_insert(&set, 7); +// int bad = !set_found(&set, 2); +// bad = bad || set_found(&set, 5); +// set_end(&set); +// return bad; +// } +// +// Interface summary (see more details below): +// - set_t is the type of the set being operated on (a set_t pointer is passed) +// - set_start() initializes a new, empty set (initialize set.env first) +// - set_insert() inserts a new key into the set, or not if it's already there +// - set_found() determines whether or not a key is in the set +// - set_end() ends the use of the set, freeing all memory +// - set_clear() empties the set, equivalent to set_end() and then set_start() +// - set_ok() checks if set appears to be usable, i.e. started and not ended +// +// Auxiliary functions available to the application: +// - set_alloc() allocates memory with optional tracking (#define SET_TRACK) +// - set_free() deallocates memory allocated by set_alloc() +// - set_rand() returns 32 random bits (seeded by set_start()) + +#ifndef SKIPSET_H +#define SKIPSET_H + +#include // realloc(), free(), NULL, size_t +#include // ptrdiff_t +#include // jmp_buf, longjmp() +#include // ENOMEM +#include // time(), clock() +#include // assert.h +#include "ints.h" // i16_t, ui32_t, ui64_t + +// Structures and functions below noted as "--private--" should not be used by +// the application. set_t is partially private and partially public -- see the +// comments there. + +// There is no POSIX random() in MSVC, and rand() is awful. For portability, we +// cannot rely on a library function for random numbers. Instead we use the +// fast and effective algorithm below, invented by Melissa O'Neill. + +// *Really* minimal PCG32 code / (c) 2014 M.E. O'Neill / www.pcg-random.org +// Licensed under Apache License 2.0 (NO WARRANTY, etc. see website) +// --private-- Random number generator state. +typedef struct { + ui64_t state; // 64-bit generator state + ui64_t inc; // 63-bit sequence id +} set_rand_t; +// --private-- Initialize the state *gen using seed and seq. seed seeds the +// advancing 64-bit state. seq is a sequence selection constant. +void set_seed(set_rand_t *gen, ui64_t seed, ui64_t seq) { + gen->inc = (seq << 1) | 1; + gen->state = (seed + gen->inc) * 6364136223846793005ULL + gen->inc; +} +// Return 32 random bits, advancing the state *gen. +ui32_t set_rand(set_rand_t *gen) { + ui64_t state = gen->state; + gen->state = state * 6364136223846793005ULL + gen->inc; + ui32_t mix = (ui32_t)(((state >> 18) ^ state) >> 27); + int rot = state >> 59; + return (mix >> rot) | (mix << ((-rot) & 31)); +} +// End of PCG32 code. + +// --private-- Linked-list node. +typedef struct set_node_s set_node_t; +struct set_node_s { + set_key_t key; // the key (not used for head or path) + i16_t size; // number of allocated pointers in right[] + i16_t fill; // number of pointers in right[] filled in + set_node_t **right; // pointer for each level, each to the right +}; + +// A set. The application sets env, may use gen with set_rand(), and may read +// allocs and memory. The remaining variables are --private-- . +typedef struct set_s { + set_node_t *head; // skiplist head -- no key, just links + set_node_t *path; // right[] is path to key from set_found() + set_node_t *node; // node under construction, in case of longjmp() + i16_t depth; // maximum depth of the skiplist + ui64_t ran; // a precious trove of random bits + set_rand_t gen; // random number generator state + jmp_buf env; // setjmp() environment for allocation errors +#ifdef SET_TRACK + size_t allocs; // number of allocations + size_t memory; // total amount of allocated memory (>= requests) +#endif +} set_t; + +// Memory allocation and deallocation. set_alloc(set, ptr, size) returns a +// pointer to an allocation of size bytes if ptr is NULL, or the previous +// allocation ptr resized to size bytes. set_alloc() will never return NULL. +// set_free(set, ptr) frees an allocation created by set_alloc(). These may be +// used by the application. e.g. if allocation tracking is desired. +#ifdef SET_TRACK +// Track the number of allocations and the total backing memory size. +# if defined(_WIN32) +# include +# define SET_ALLOC_SIZE(ptr) _msize(ptr) +# elif defined(__MACH__) +# include +# define SET_ALLOC_SIZE(ptr) malloc_size(ptr) +# elif defined(__linux__) +# include +# define SET_ALLOC_SIZE(ptr) malloc_usable_size(ptr) +# elif defined(__FreeBSD__) +# include +# define SET_ALLOC_SIZE(ptr) malloc_usable_size(ptr) +# elif defined(__NetBSD__) +# include +# define SET_ALLOC_SIZE(ptr) malloc_usable_size(ptr) +# else // e.g. OpenBSD +# define SET_ALLOC_SIZE(ptr) 0 +# endif +// With tracking. +void *set_alloc(set_t *set, void *ptr, size_t size) { + size_t had = ptr == NULL ? 0 : SET_ALLOC_SIZE(ptr); + void *mem = realloc(ptr, size); + if (mem == NULL) + longjmp(set->env, ENOMEM); + set->allocs += ptr == NULL; + set->memory += SET_ALLOC_SIZE(mem) - had; + return mem; +} +void set_free(set_t *set, void *ptr) { + if (ptr != NULL) { + set->allocs--; + set->memory -= SET_ALLOC_SIZE(ptr); + free(ptr); + } +} +#else +// Without tracking. +void *set_alloc(set_t *set, void *ptr, size_t size) { + void *mem = realloc(ptr, size); + if (mem == NULL) + longjmp(set->env, ENOMEM); + return mem; +} +void set_free(set_t *set, void *ptr) { + (void)set; + free(ptr); +} +#endif + +// --private-- Grow node's array right[] as needed to be able to hold at least +// want links. If fill is true, assure that the first want links are filled in, +// setting them to set->head if not previously filled in. Otherwise it is +// assumed that the first want links are about to be filled in. +void set_grow(set_t *set, set_node_t *node, int want, int fill) { + if (node->size < want) { + int more = node->size ? node->size : 1; + while (more < want) + more <<= 1; + node->right = set_alloc(set, node->right, more * sizeof(set_node_t *)); + node->size = (i16_t)more; + } + int i; + if (fill) + for (i = node->fill; i < want; i++) + node->right[i] = set->head; + node->fill = (i16_t)want; +} + +// --private-- Return a new node. key is left uninitialized. +set_node_t *set_node(set_t *set) { + set_node_t *node = set_alloc(set, NULL, sizeof(set_node_t)); + node->size = 0; + node->fill = 0; + node->right = NULL; + return node; +} + +// --private-- Free the list linked from head, along with the keys. +void set_sweep(set_t *set) { + set_node_t *step = set->head->right[0]; + while (step != set->head) { + set_node_t *next = step->right[0]; // save link to next node + set_drop(set, step->key); + set_free(set, step->right); + set_free(set, step); + step = next; + } +} + +// Initialize a new set. set->env must be initialized using setjmp() before +// set_start() is called. A longjmp(set->env, ENOMEM) will be used to handle a +// memory allocation failure during any of the operations. (See setjmp.h and +// errno.h.) The set can still be used if this happens, assuming that it didn't +// happen during set_start(). Whether set_start() completed or not, set_end() +// can be used to free the set's memory after a longjmp(). +void set_start(set_t *set) { +#ifdef SET_TRACK + set->allocs = 0; + set->memory = 0; +#endif + set->head = set->path = set->node = NULL; // in case set_node() fails + set->path = set_node(set); + set->head = set_node(set); + set_grow(set, set->head, 1, 1); // one link back to head for an empty set + *(unsigned char *)&set->head->key = 137; // set id + set->depth = 0; + set_seed(&set->gen, ((ui64_t)(ptrdiff_t)set << 32) ^ + ((ui64_t)time(NULL) << 12) ^ clock(), 0); + set->ran = 1; +} + +// Return true if *set appears to be in a usable state. If *set has been zeroed +// out, then set_ok(set) will be false and set_end(set) will be safe. +int set_ok(set_t *set) { + return set->head != NULL && + set->head->right != NULL && + *(unsigned char *)&set->head->key == 137; +} + +// Empty the set. This frees the memory used for the previous set contents. +// After set_clear(), *set is ready for use, as if after a set_start(). +void set_clear(set_t *set) { + assert(set_ok(set) && "improper use"); + + // Free all the keys and their nodes. + set_sweep(set); + + // Leave the head and path allocations as is. Clear their contents, with + // head pointing to itself and setting depth to zero, for an empty set. + set->head->right[0] = set->head; + set->head->fill = 1; + set->path->fill = 0; + set->depth = 0; +} + +// Done using the set -- free all allocations. The only operation on *set +// permitted after this is set_start(). Though another set_end() would do no +// harm. This can be done at any time after a set_start(), or after a longjmp() +// on any allocation failure, including during a set_start(). +void set_end(set_t *set) { + if (set->head != NULL) { + // Empty the set and free the head node. + if (set->head->right != NULL) { + set_sweep(set); + set_free(set, set->head->right); + } + set_free(set, set->head); + set->head = NULL; + } + if (set->path != NULL) { + // Free the path work area. + set_free(set, set->path->right); + set_free(set, set->path); + set->path = NULL; + } + if (set->node != NULL) { + // Free the node that was under construction when longjmp() hit. + set_drop(set, set->node->key); + set_free(set, set->node->right); + set_free(set, set->node); + set->node = NULL; + } +} + +// Look for key. Return 1 if found or 0 if not. This also puts the path to get +// there in set->path, for use by set_insert(). +int set_found(set_t *set, set_key_t key) { + assert(set_ok(set) && "improper use"); + + // Start at depth and work down and right as determined by key comparisons. + set_node_t *head = set->head, *here = head; + int i = set->depth; + set_grow(set, set->path, i + 1, 0); + do { + while (here->right[i] != head && + set_cmp(here->right[i]->key, key) < 0) + here = here->right[i]; + set->path->right[i] = here; + } while (i--); + + // See if the key matches. + here = here->right[0]; + return here != head && set_cmp(here->key, key) == 0; +} + +// Insert the key key. Return 0 on success, or 1 if key is already in the set. +int set_insert(set_t *set, set_key_t key) { + assert(set_ok(set) && "improper use"); + + if (set_found(set, key)) + // That key is already in the set. + return 1; + + // Randomly generate a new level-- level 0 with probability 1/2, 1 with + // probability 1/4, 2 with probability 1/8, etc. + int level = 0; + for (;;) { + if (set->ran == 1) + // Ran out. Get another 32 random bits. + set->ran = set_rand(&set->gen) | (1ULL << 32); + int bit = set->ran & 1; + set->ran >>= 1; + if (bit) + break; + assert(level < 32767 && + "Overhead, without any fuss, the stars were going out."); + level++; + } + if (level > set->depth) { + // The maximum depth is now deeper. Update the structures. + set_grow(set, set->path, level + 1, 1); + set_grow(set, set->head, level + 1, 1); + set->depth = (i16_t)level; + } + + // Make a new node for the provided key, and insert it in the lists up to + // and including level. + set->node = set_node(set); + set->node->key = key; + set_grow(set, set->node, level + 1, 0); + int i; + for (i = 0; i <= level; i++) { + set->node->right[i] = set->path->right[i]->right[i]; + set->path->right[i]->right[i] = set->node; + } + set->node = NULL; + return 0; +} + +#else +#error ** another skiplist set already created here +// Would need to implement a prefix in order to support multiple sets. +#endif diff --git a/deps/zlib/contrib/minizip/unzip.c b/deps/zlib/contrib/minizip/unzip.c index 3576a8504dde0c..a39e1752f6d2ed 100644 --- a/deps/zlib/contrib/minizip/unzip.c +++ b/deps/zlib/contrib/minizip/unzip.c @@ -88,7 +88,7 @@ #ifndef CASESENSITIVITYDEFAULT_NO -# if !defined(unix) && !defined(CASESENSITIVITYDEFAULT_YES) +# if (!defined(__unix__) && !defined(__unix) || defined(__CYGWIN__)) && !defined(CASESENSITIVITYDEFAULT_YES) # define CASESENSITIVITYDEFAULT_NO # endif #endif @@ -113,7 +113,7 @@ const char unz_copyright[] = " unzip 1.01 Copyright 1998-2004 Gilles Vollant - http://www.winimage.com/zLibDll"; -/* unz_file_info_interntal contain internal info about a file in zipfile*/ +/* unz_file_info64_internal contain internal info about a file in zipfile*/ typedef struct unz_file_info64_internal_s { ZPOS64_T offset_curfile;/* relative offset of local header 8 bytes */ @@ -336,7 +336,6 @@ extern int ZEXPORT unzStringFileNameCompare (const char* fileName1, #define CENTRALDIRINVALID ((ZPOS64_T)(-1)) #endif - /* Locate the Central directory of a zipfile (at the end, just before the global comment) @@ -467,7 +466,7 @@ local ZPOS64_T unz64local_SearchCentralDir64(const zlib_filefunc64_32_def* pzlib if (unz64local_getLong(pzlib_filefunc_def,filestream,&uL)!=UNZ_OK) return CENTRALDIRINVALID; - /* number of the disk with the start of the zip64 end of central directory */ + /* number of the disk with the start of the zip64 end of central directory */ if (unz64local_getLong(pzlib_filefunc_def,filestream,&uL)!=UNZ_OK) return CENTRALDIRINVALID; if (uL != 0) @@ -514,9 +513,9 @@ local unzFile unzOpenInternal(const void *path, ZPOS64_T central_pos; uLong uL; - uLong number_disk; /* number of the current dist, used for + uLong number_disk; /* number of the current disk, used for spanning ZIP, unsupported, always 0*/ - uLong number_disk_with_CD; /* number the the disk with central dir, used + uLong number_disk_with_CD; /* number the disk with central dir, used for spanning ZIP, unsupported, always 0*/ ZPOS64_T number_entry_CD; /* total number of entries in the central dir @@ -1682,7 +1681,7 @@ extern int ZEXPORT unzReadCurrentFile(unzFile file, voidp buf, unsigned len) { uInt i; for(i=0;iread_buffer[i] = - zdecode(s->keys,s->pcrc_32_tab, + (char)zdecode(s->keys,s->pcrc_32_tab, pfile_in_zip_read_info->read_buffer[i]); } # endif diff --git a/deps/zlib/contrib/minizip/unzip.h b/deps/zlib/contrib/minizip/unzip.h index 14105840f6d247..ceb614e7832b4d 100644 --- a/deps/zlib/contrib/minizip/unzip.h +++ b/deps/zlib/contrib/minizip/unzip.h @@ -306,13 +306,17 @@ extern int ZEXPORT unzGetCurrentFileInfo(unzFile file, Get Info about the current file if pfile_info!=NULL, the *pfile_info structure will contain some info about the current file - if szFileName!=NULL, the filemane string will be copied in szFileName + if szFileName!=NULL, the filename string will be copied in szFileName (fileNameBufferSize is the size of the buffer) if extraField!=NULL, the extra field information will be copied in extraField (extraFieldBufferSize is the size of the buffer). This is the Central-header version of the extra field if szComment!=NULL, the comment string of the file will be copied in szComment (commentBufferSize is the size of the buffer) + The file name and comment will be zero-terminated if there is room in the + provided buffer. Otherwise the buffer will contain as much as will fit. If at + least 65537 bytes of room is provided, then the result will always be + complete and zero-terminated. */ diff --git a/deps/zlib/contrib/minizip/zip.c b/deps/zlib/contrib/minizip/zip.c index e2e9da07c5f307..93d2612e29a030 100644 --- a/deps/zlib/contrib/minizip/zip.c +++ b/deps/zlib/contrib/minizip/zip.c @@ -25,8 +25,10 @@ #include #include #include -#include #include +#ifndef ZLIB_CONST +# define ZLIB_CONST +#endif #include "zlib.h" #include "zip.h" @@ -123,6 +125,19 @@ typedef struct linkedlist_data_s } linkedlist_data; +// zipAlreadyThere() set functions for a set of zero-terminated strings, and +// a block_t type for reading the central directory datablocks. +typedef char *set_key_t; +#define set_cmp(a, b) strcmp(a, b) +#define set_drop(s, k) set_free(s, k) +#include "skipset.h" +typedef struct { + unsigned char *next; // next byte in datablock data + size_t left; // number of bytes left in data (at least) + linkedlist_datablock_internal *node; // current datablock +} block_t; + + typedef struct { z_stream stream; /* zLib stream structure for inflate */ @@ -174,6 +189,10 @@ typedef struct char *globalcomment; #endif + // Support for zipAlreadyThere(). + set_t set; // set for detecting name collisions + block_t block; // block for reading the central directory + } zip64_internal; @@ -264,6 +283,228 @@ local int add_data_in_datablock(linkedlist_data* ll, const void* buf, uLong len) return ZIP_OK; } +// zipAlreadyThere() operations. "set" in the zip internal structure keeps the +// set of names that are in the under-construction central directory so far. A +// skipset provides ~O(log n) time insertion and searching. Central directory +// records, stored in a linked list of allocated memory datablocks, is read +// through "block" in the zip internal structure. + +// The block_*() functions support extracting the central directory file names +// from the datablocks. They are designed to support a growing directory by +// automatically continuing once more data has been appended to the linked +// datablocks. + +// Initialize *block to the head of list. This should only be called once the +// list has at least some data in it, i.e. list->first_block is not NULL. +local void block_init(block_t *block, linkedlist_data *list) { + block->node = list->first_block; + block->next = block->node->data; + block->left = block->node->filled_in_this_block; +} + +// Mark *block as bad, with all subsequent reads returning end, even if more +// data is added to the datablocks. This is invoked if the central directory is +// invalid, so there is no longer any point in attempting to interpret it. +local void block_stop(block_t *block) { + block->left = 0; + block->next = NULL; +} + +// Return true if *block has reached the end of the data in the datablocks. +local int block_end(block_t *block) { + linkedlist_datablock_internal *node = block->node; + if (node == NULL) + // This block was previously terminated with extreme prejudice. + return 1; + if (block->next < node->data + node->filled_in_this_block) + // There are more bytes to read in the current datablock. + return 0; + while (node->next_datablock != NULL) { + if (node->filled_in_this_block != 0) + // There are some bytes in a later datablock. + return 0; + node = node->next_datablock; + } + // Reached the end of the list of datablocks. There's nothing. + return 1; +} + +// Return one byte from *block, or -1 if the end is reached. +local int block_get(block_t *block) { + while (block->left == 0) { + if (block->node == NULL) + // We've been marked bad. Return end. + return -1; + // Update left in case more was filled in since we were last here. + block->left = block->node->filled_in_this_block - + (block->next - block->node->data); + if (block->left != 0) + // There was indeed more data appended in the current datablock. + break; + if (block->node->next_datablock == NULL) + // No more data here, and there is no next datablock. At the end. + return -1; + // Try the next datablock for more data. + block->node = block->node->next_datablock; + block->next = block->node->data; + block->left = block->node->filled_in_this_block; + } + // We have a byte to return. + block->left--; + return *block->next++; +} + +// Return a 16-bit unsigned little-endian value from block, or a negative value +// if the end is reached. +local long block_get2(block_t *block) { + long got = block_get(block); + return got | ((unsigned long)block_get(block) << 8); +} + +// Read up to len bytes from block into buf. Return the number of bytes read. +local size_t block_read(block_t *block, unsigned char *buf, size_t len) { + size_t need = len; + while (need) { + if (block->left == 0) { + // Get a byte to update and step through the linked list as needed. + int got = block_get(block); + if (got == -1) + // Reached the end. + break; + *buf++ = (unsigned char)got; + need--; + continue; + } + size_t take = need > block->left ? block->left : need; + memcpy(buf, block->next, take); + block->next += take; + block->left -= take; + buf += take; + need -= take; + } + return len - need; // return the number of bytes copied +} + +// Skip n bytes in block. Return 0 on success or -1 if there are less than n +// bytes to the end. +local int block_skip(block_t *block, size_t n) { + while (n > block->left) { + n -= block->left; + block->next += block->left; + block->left = 0; + if (block_get(block) == -1) + return -1; + n--; + } + block->next += n; + block->left -= n; + return 0; +} + +// Process the next central directory record at *block. Return the allocated, +// zero-terminated file name, or NULL for end of input or invalid data. If +// invalid, *block is marked bad. This uses *set for the allocation of memory. +local char *block_central_name(block_t *block, set_t *set) { + char *name = NULL; + for (;;) { + if (block_end(block)) + // At the end of the central directory (so far). + return NULL; + + // Check for a central directory record signature. + if (block_get2(block) != (CENTRALHEADERMAGIC & 0xffff) || + block_get2(block) != (CENTRALHEADERMAGIC >> 16)) + // Incorrect signature. + break; + + // Go through the remaining fixed-length portion of the record, + // extracting the lengths of the three variable-length fields. + block_skip(block, 24); + unsigned flen = block_get2(block); // file name length + unsigned xlen = block_get2(block); // extra field length + unsigned clen = block_get2(block); // comment field length + if (block_skip(block, 12) == -1) + // Premature end of the record. + break; + + // Extract the name and skip over the extra and comment fields. + name = set_alloc(set, NULL, flen + 1); + if (block_read(block, (unsigned char *)name, flen) < flen || + block_skip(block, xlen + clen) == -1) + // Premature end of the record. + break; + + // Check for embedded nuls in the name. + if (memchr(name, 0, flen) != NULL) { + // This name can never match the zero-terminated name provided to + // zipAlreadyThere(), so we discard it and go back to get another + // name. (Who the heck is putting nuls inside their zip file entry + // names anyway?) + set_free(set, name); + continue; + } + + // All good. Return the zero-terminated file name. + name[flen] = 0; + return name; + } + + // Invalid signature or premature end of the central directory record. + // Abandon trying to process the central directory. + set_free(set, name); + block_stop(block); + return NULL; +} + +// Return 0 if name is not in the central directory so far, 1 if it is, -1 if +// the central directory is invalid, -2 if out of memory, or ZIP_PARAMERROR if +// file is NULL. +extern int ZEXPORT zipAlreadyThere(zipFile file, char const *name) { + zip64_internal *zip = file; + if (zip == NULL) + return ZIP_PARAMERROR; + if (zip->central_dir.first_block == NULL) + // No central directory yet, so no, name isn't there. + return 0; + if (setjmp(zip->set.env)) { + // Memory allocation failure. + set_end(&zip->set); + return -2; + } + if (!set_ok(&zip->set)) { + // This is the first time here with some central directory content. We + // construct this set of names only on demand. Prepare set and block. + set_start(&zip->set); + block_init(&zip->block, &zip->central_dir); + } + + // Update the set of names from the current central directory contents. + // This reads any new central directory records since the last time we were + // here. + for (;;) { + char *there = block_central_name(&zip->block, &zip->set); + if (there == NULL) { + if (zip->block.next == NULL) + // The central directory is invalid. + return -1; + break; + } + + // Add there to the set. + if (set_insert(&zip->set, there)) + // There's already a duplicate in the central directory! We'll just + // let this be and carry on. + set_free(&zip->set, there); + } + + // Return true if name is in the central directory. + size_t len = strlen(name); + char *copy = set_alloc(&zip->set, NULL, len + 1); + strcpy(copy, name); + int found = set_found(&zip->set, copy); + set_free(&zip->set, copy); + return found; +} /****************************************************************************/ @@ -551,7 +792,7 @@ local ZPOS64_T zip64local_SearchCentralDir64(const zlib_filefunc64_32_def* pzlib for (i=(int)uReadSize-3; (i--)>0;) { - // Signature "0x07064b50" Zip64 end of central directory locater + // Signature "0x07064b50" Zip64 end of central directory locator if (((*(buf+i))==0x50) && ((*(buf+i+1))==0x4b) && ((*(buf+i+2))==0x06) && ((*(buf+i+3))==0x07)) { uPosFound = uReadPos+(unsigned)i; @@ -575,7 +816,7 @@ local ZPOS64_T zip64local_SearchCentralDir64(const zlib_filefunc64_32_def* pzlib if (zip64local_getLong(pzlib_filefunc_def,filestream,&uL)!=ZIP_OK) return 0; - /* number of the disk with the start of the zip64 end of central directory */ + /* number of the disk with the start of the zip64 end of central directory */ if (zip64local_getLong(pzlib_filefunc_def,filestream,&uL)!=ZIP_OK) return 0; if (uL != 0) @@ -843,6 +1084,7 @@ extern zipFile ZEXPORT zipOpen3(const void *pathname, int append, zipcharpc* glo ziinit.number_entry = 0; ziinit.add_position_when_writing_offset = 0; init_linkedlist(&(ziinit.central_dir)); + memset(&ziinit.set, 0, sizeof(set_t)); // make sure set appears dormant @@ -1027,7 +1269,6 @@ extern int ZEXPORT zipOpenNewFileInZip4_64(zipFile file, const char* filename, c int err = ZIP_OK; # ifdef NOCRYPT - (crcForCrypting); if (password != NULL) return ZIP_PARAMERROR; # endif @@ -1412,7 +1653,7 @@ extern int ZEXPORT zipWriteInFileInZip(zipFile file, const void* buf, unsigned i else #endif { - zi->ci.stream.next_in = (Bytef*)(uintptr_t)buf; + zi->ci.stream.next_in = buf; zi->ci.stream.avail_in = len; while ((err==ZIP_OK) && (zi->ci.stream.avail_in>0)) @@ -1608,7 +1849,7 @@ extern int ZEXPORT zipCloseFileInZipRaw64(zipFile file, ZPOS64_T uncompressed_si if((uLong)(datasize + 4) > zi->ci.size_centralExtraFree) { - // we can not write more data to the buffer that we have room for. + // we cannot write more data to the buffer that we have room for. return ZIP_BADZIPFILE; } @@ -1871,6 +2112,8 @@ extern int ZEXPORT zipClose(zipFile file, const char* global_comment) { } free_linkedlist(&(zi->central_dir)); + set_end(&zi->set); // set was zeroed, so this is safe + pos = centraldir_pos_inzip - zi->add_position_when_writing_offset; if(pos >= 0xffffffff || zi->number_entry >= 0xFFFF) { diff --git a/deps/zlib/contrib/minizip/zip.h b/deps/zlib/contrib/minizip/zip.h index 3e230d3405f603..1f7f0b263d4f9b 100644 --- a/deps/zlib/contrib/minizip/zip.h +++ b/deps/zlib/contrib/minizip/zip.h @@ -35,7 +35,7 @@ See header of zip.h -*/ + */ #ifndef _zip12_H #define _zip12_H @@ -127,12 +127,12 @@ extern zipFile ZEXPORT zipOpen64(const void *pathname, int append); If the zipfile cannot be opened, the return value is NULL. Else, the return value is a zipFile Handle, usable with other function of this zip package. -*/ + */ /* Note : there is no delete function into a zipfile. If you want delete file into a zipfile, you must open a zipfile, and create another Of course, you can use RAW reading and writing to copy the file you did not want delete -*/ + */ extern zipFile ZEXPORT zipOpen2(const char *pathname, int append, @@ -186,7 +186,7 @@ extern int ZEXPORT zipOpenNewFileInZip64(zipFile file, zip64 is set to 1 if a zip64 extended information block should be added to the local file header. this MUST be '1' if the uncompressed size is >= 0xffffffff. -*/ + */ extern int ZEXPORT zipOpenNewFileInZip2(zipFile file, @@ -311,12 +311,12 @@ extern int ZEXPORT zipWriteInFileInZip(zipFile file, unsigned len); /* Write data in the zipfile -*/ + */ extern int ZEXPORT zipCloseFileInZip(zipFile file); /* Close the current file in the zipfile -*/ + */ extern int ZEXPORT zipCloseFileInZipRaw(zipFile file, uLong uncompressed_size, @@ -326,17 +326,23 @@ extern int ZEXPORT zipCloseFileInZipRaw64(zipFile file, ZPOS64_T uncompressed_size, uLong crc32); +extern int ZEXPORT zipAlreadyThere(zipFile file, + char const* name); +/* + See if name is already in file's central directory. + */ + /* Close the current file in the zipfile, for file opened with parameter raw=1 in zipOpenNewFileInZip2 uncompressed_size and crc32 are value for the uncompressed size -*/ + */ extern int ZEXPORT zipClose(zipFile file, const char* global_comment); /* Close the zipfile -*/ + */ extern int ZEXPORT zipRemoveExtraInfoBlock(char* pData, int* dataLen, short sHeader); @@ -355,7 +361,7 @@ extern int ZEXPORT zipRemoveExtraInfoBlock(char* pData, int* dataLen, short sHea Remove ZIP64 Extra information from a Local File Header extra field data zipRemoveExtraInfoBlock(pLocalHeaderExtraFieldData, &nLocalHeaderExtraFieldDataLen, 0x0001); -*/ + */ #ifdef __cplusplus } diff --git a/deps/zlib/google/compression_utils.cc b/deps/zlib/google/compression_utils.cc index 0ba31101489fde..d50c969504bea7 100644 --- a/deps/zlib/google/compression_utils.cc +++ b/deps/zlib/google/compression_utils.cc @@ -89,19 +89,18 @@ bool GzipUncompress(const std::string& input, std::string* output) { return false; } -bool GzipUncompress(base::span input, - base::span output) { - return GzipUncompress(base::as_bytes(input), base::as_bytes(output)); +bool GzipUncompress(base::span input, base::span output) { + return GzipUncompress(base::as_bytes(input), base::as_writable_bytes(output)); } bool GzipUncompress(base::span input, - base::span output) { + base::span output) { uLongf uncompressed_size = GetUncompressedSize(input); if (uncompressed_size > output.size()) return false; return zlib_internal::GzipUncompressHelper( - reinterpret_cast(const_cast(output.data())), - &uncompressed_size, reinterpret_cast(input.data()), + reinterpret_cast(output.data()), &uncompressed_size, + reinterpret_cast(input.data()), static_cast(input.size())) == Z_OK; } diff --git a/deps/zlib/google/compression_utils.h b/deps/zlib/google/compression_utils.h index ea399816f60351..fd81153076dfbb 100644 --- a/deps/zlib/google/compression_utils.h +++ b/deps/zlib/google/compression_utils.h @@ -43,12 +43,11 @@ bool GzipUncompress(const std::string& input, std::string* output); // needed. |output|'s size must be at least as large as the return value from // GetUncompressedSize. // Returns true for success. -bool GzipUncompress(base::span input, - base::span output); +bool GzipUncompress(base::span input, base::span output); // Like the above method, but using uint8_t instead. bool GzipUncompress(base::span input, - base::span output); + base::span output); // Uncompresses the data in |input| using gzip, and writes the results to // |output|, which must NOT be the underlying string of |input|, and is resized diff --git a/deps/zlib/google/zip_internal.cc b/deps/zlib/google/zip_internal.cc index e6b5a4fc3bcb00..f33da592cf810a 100644 --- a/deps/zlib/google/zip_internal.cc +++ b/deps/zlib/google/zip_internal.cc @@ -397,14 +397,14 @@ Compression GetCompressionMethod(const base::FilePath& path) { // Skip the leading dot. - base::FilePath::StringPieceType ext_without_dot = ext; + base::FilePath::StringViewType ext_without_dot = ext; DCHECK_EQ(ext_without_dot.front(), FILE_PATH_LITERAL('.')); ext_without_dot.remove_prefix(1); // Well known filename extensions of files that a likely to be already // compressed. The extensions are in lower case without the leading dot. static constexpr auto kExts = - base::MakeFixedFlatSet({ + base::MakeFixedFlatSet({ FILE_PATH_LITERAL("3g2"), // FILE_PATH_LITERAL("3gp"), // FILE_PATH_LITERAL("7z"), // diff --git a/deps/zlib/patches/0008-minizip-zip-unzip-tools.patch b/deps/zlib/patches/0008-minizip-zip-unzip-tools.patch index 273a8c98011bed..a359e0f72b0f97 100644 --- a/deps/zlib/patches/0008-minizip-zip-unzip-tools.patch +++ b/deps/zlib/patches/0008-minizip-zip-unzip-tools.patch @@ -9,7 +9,7 @@ Subject: [PATCH] Build minizip zip and unzip tools 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/third_party/zlib/contrib/minizip/miniunz.c b/third_party/zlib/contrib/minizip/miniunz.c -index 8ada038dbd4e7..5b4312e5647cd 100644 +index 616c30325e07c..f4ad16bdd377b 100644 --- a/third_party/zlib/contrib/minizip/miniunz.c +++ b/third_party/zlib/contrib/minizip/miniunz.c @@ -12,7 +12,7 @@ @@ -30,31 +30,26 @@ index 8ada038dbd4e7..5b4312e5647cd 100644 // In darwin and perhaps other BSD variants off_t is a 64 bit value, hence no need for specific 64 bit functions #define FOPEN_FUNC(filename, mode) fopen(filename, mode) #define FTELLO_FUNC(stream) ftello(stream) -@@ -94,7 +94,7 @@ static void change_file_date(const char *filename, uLong dosdate, tm_unz tmu_dat +@@ -97,7 +97,7 @@ static void change_file_date(const char *filename, uLong dosdate, tm_unz tmu_dat + LocalFileTimeToFileTime(&ftLocal,&ftm); SetFileTime(hFile,&ftm,&ftLastAcc,&ftm); CloseHandle(hFile); - #else --#if defined(unix) || defined(__APPLE__) -+#if defined(unix) || defined(__APPLE__) || defined(__Fuchsia__) || defined(__ANDROID_API__) +-#elif defined(__unix__) || defined(__unix) || defined(__APPLE__) ++#elif defined(__unix__) || defined(__unix) || defined(__APPLE__) || defined(__Fuchsia__) || defined(__ANDROID_API__) (void)dosdate; struct utimbuf ut; struct tm newdate; -@@ -125,11 +125,9 @@ static void change_file_date(const char *filename, uLong dosdate, tm_unz tmu_dat - - static int mymkdir(const char* dirname) { +@@ -129,7 +129,7 @@ static int mymkdir(const char* dirname) { int ret=0; --#ifdef _WIN32 -+#if defined(_WIN32) + #ifdef _WIN32 ret = _mkdir(dirname); --#elif unix -- ret = mkdir (dirname,0775); --#elif __APPLE__ -+#elif defined(unix) || defined(__APPLE__) || defined(__Fuchsia__) || defined(__ANDROID_API__) +-#elif defined(__unix__) || defined(__unix) || defined(__APPLE__) ++#elif defined(__unix__) || defined(__unix) || defined(__APPLE__) || defined(__Fuchsia__) || defined(__ANDROID_API__) ret = mkdir (dirname,0775); #else (void)dirname; diff --git a/third_party/zlib/contrib/minizip/minizip.c b/third_party/zlib/contrib/minizip/minizip.c -index 26ee8d029efe6..9eb3956a55e00 100644 +index a44e36a01869d..53fdd363e6222 100644 --- a/third_party/zlib/contrib/minizip/minizip.c +++ b/third_party/zlib/contrib/minizip/minizip.c @@ -12,8 +12,7 @@ @@ -76,14 +71,12 @@ index 26ee8d029efe6..9eb3956a55e00 100644 // In darwin and perhaps other BSD variants off_t is a 64 bit value, hence no need for specific 64 bit functions #define FOPEN_FUNC(filename, mode) fopen(filename, mode) #define FTELLO_FUNC(stream) ftello(stream) -@@ -92,7 +91,7 @@ static int filetime(const char *f, tm_zip *tmzip, uLong *dt) { +@@ -96,7 +95,7 @@ static int filetime(const char *f, tm_zip *tmzip, uLong *dt) { + } return ret; } - #else --#if defined(unix) || defined(__APPLE__) -+#if defined(unix) || defined(__APPLE__) || defined(__Fuchsia__) || defined(__ANDROID_API__) +-#elif defined(__unix__) || defined(__unix) || defined(__APPLE__) ++#elif defined(__unix__) || defined(__unix) || defined(__APPLE__) || defined(__Fuchsia__) || defined(__ANDROID_API__) /* f: name of file to get info on, tmzip: return value: access, modification and creation times, dt: dostime */ static int filetime(const char *f, tm_zip *tmzip, uLong *dt) { --- -2.31.1.818.g46aad6cb9e-goog diff --git a/deps/zlib/patches/0015-minizip-unzip-enable-decryption.patch b/deps/zlib/patches/0015-minizip-unzip-enable-decryption.patch index 966e83c7dc5d76..feeeb1c400777d 100644 --- a/deps/zlib/patches/0015-minizip-unzip-enable-decryption.patch +++ b/deps/zlib/patches/0015-minizip-unzip-enable-decryption.patch @@ -18,17 +18,6 @@ diff --git a/third_party/zlib/contrib/minizip/unzip.c b/third_party/zlib/contrib index 82275d6c1775d..c8a01b23efd42 100644 --- a/third_party/zlib/contrib/minizip/unzip.c +++ b/third_party/zlib/contrib/minizip/unzip.c -@@ -68,10 +68,6 @@ - #include - #include - --#ifndef NOUNCRYPT -- #define NOUNCRYPT --#endif -- - #include "zlib.h" - #include "unzip.h" - @@ -1502,6 +1498,7 @@ extern int ZEXPORT unzOpenCurrentFile3(unzFile file, int* method, zdecode(s->keys,s->pcrc_32_tab,source[i]); diff --git a/deps/zstd/BUILD.gn b/deps/zstd/BUILD.gn new file mode 100644 index 00000000000000..498160127fca44 --- /dev/null +++ b/deps/zstd/BUILD.gn @@ -0,0 +1,14 @@ +############################################################################## +# # +# DO NOT EDIT THIS FILE! # +# # +############################################################################## + +# This file is used by GN for building, which is NOT the build system used for +# building official binaries. +# Please modify the gyp files if you are making changes to build system. + +import("unofficial.gni") + +zstd_gn_build("zstd") { +} diff --git a/deps/zstd/LICENSE b/deps/zstd/LICENSE new file mode 100644 index 00000000000000..75800288cc243f --- /dev/null +++ b/deps/zstd/LICENSE @@ -0,0 +1,30 @@ +BSD License + +For Zstandard software + +Copyright (c) Meta Platforms, Inc. and affiliates. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither the name Facebook, nor Meta, nor the names of its contributors may + be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/deps/zstd/lib/.gitignore b/deps/zstd/lib/.gitignore new file mode 100644 index 00000000000000..4cd50ac61e5244 --- /dev/null +++ b/deps/zstd/lib/.gitignore @@ -0,0 +1,3 @@ +# make install artefact +libzstd.pc +libzstd-nomt diff --git a/deps/zstd/lib/BUCK b/deps/zstd/lib/BUCK new file mode 100644 index 00000000000000..60c6bbb54d9129 --- /dev/null +++ b/deps/zstd/lib/BUCK @@ -0,0 +1,232 @@ +cxx_library( + name='zstd', + header_namespace='', + exported_headers=['zstd.h'], + visibility=['PUBLIC'], + deps=[ + ':common', + ':compress', + ':decompress', + ':deprecated', + ], +) + +cxx_library( + name='compress', + header_namespace='', + visibility=['PUBLIC'], + exported_headers=subdir_glob([ + ('compress', 'zstd*.h'), + ]), + srcs=glob(['compress/zstd*.c', 'compress/hist.c']), + deps=[':common'], +) + +cxx_library( + name='decompress', + header_namespace='', + visibility=['PUBLIC'], + headers=subdir_glob([ + ('decompress', '*_impl.h'), + ]), + srcs=glob(['decompress/zstd*.c']), + deps=[ + ':common', + ':legacy', + ], +) + +cxx_library( + name='deprecated', + header_namespace='', + visibility=['PUBLIC'], + exported_headers=subdir_glob([ + ('deprecated', '*.h'), + ]), + srcs=glob(['deprecated/*.c']), + deps=[':common'], +) + +cxx_library( + name='legacy', + header_namespace='', + visibility=['PUBLIC'], + exported_headers=subdir_glob([ + ('legacy', '*.h'), + ]), + srcs=glob(['legacy/*.c']), + deps=[':common'], + exported_preprocessor_flags=[ + '-DZSTD_LEGACY_SUPPORT=4', + ], +) + +cxx_library( + name='zdict', + header_namespace='', + visibility=['PUBLIC'], + exported_headers=['zdict.h'], + headers=subdir_glob([ + ('dictBuilder', 'divsufsort.h'), + ('dictBuilder', 'cover.h'), + ]), + srcs=glob(['dictBuilder/*.c']), + deps=[':common'], +) + +cxx_library( + name='compiler', + header_namespace='', + visibility=['PUBLIC'], + exported_headers=subdir_glob([ + ('common', 'compiler.h'), + ]), +) + +cxx_library( + name='cpu', + header_namespace='', + visibility=['PUBLIC'], + exported_headers=subdir_glob([ + ('common', 'cpu.h'), + ]), +) + +cxx_library( + name='bitstream', + header_namespace='', + visibility=['PUBLIC'], + exported_headers=subdir_glob([ + ('common', 'bitstream.h'), + ]), +) + +cxx_library( + name='entropy', + header_namespace='', + visibility=['PUBLIC'], + exported_headers=subdir_glob([ + ('common', 'fse.h'), + ('common', 'huf.h'), + ]), + srcs=[ + 'common/entropy_common.c', + 'common/fse_decompress.c', + 'compress/fse_compress.c', + 'compress/huf_compress.c', + 'decompress/huf_decompress.c', + ], + deps=[ + ':debug', + ':bitstream', + ':compiler', + ':errors', + ':mem', + ], +) + +cxx_library( + name='errors', + header_namespace='', + visibility=['PUBLIC'], + exported_headers=[ + 'zstd_errors.h', + 'common/error_private.h', + ] + srcs=['common/error_private.c'], +) + +cxx_library( + name='mem', + header_namespace='', + visibility=['PUBLIC'], + exported_headers=subdir_glob([ + ('common', 'mem.h'), + ]), +) + +cxx_library( + name='pool', + header_namespace='', + visibility=['PUBLIC'], + exported_headers=subdir_glob([ + ('common', 'pool.h'), + ]), + srcs=['common/pool.c'], + deps=[ + ':threading', + ':zstd_common', + ], +) + +cxx_library( + name='threading', + header_namespace='', + visibility=['PUBLIC'], + exported_headers=subdir_glob([ + ('common', 'threading.h'), + ]), + srcs=['common/threading.c'], + exported_preprocessor_flags=[ + '-DZSTD_MULTITHREAD', + ], + exported_linker_flags=[ + '-pthread', + ], +) + +cxx_library( + name='xxhash', + header_namespace='', + visibility=['PUBLIC'], + exported_headers=subdir_glob([ + ('common', 'xxhash.h'), + ]), + srcs=['common/xxhash.c'], + exported_preprocessor_flags=[ + '-DXXH_NAMESPACE=ZSTD_', + ], +) + +cxx_library( + name='zstd_common', + header_namespace='', + visibility=['PUBLIC'], + exported_headers=subdir_glob([ + ('', 'zstd.h'), + ('common', 'zstd_internal.h'), + ]), + srcs=['common/zstd_common.c'], + deps=[ + ':compiler', + ':errors', + ':mem', + ], +) + +cxx_library( + name='debug', + header_namespace='', + visibility=['PUBLIC'], + exported_headers=subdir_glob([ + ('common', 'debug.h'), + ]), + srcs=['common/debug.c'], +) + +cxx_library( + name='common', + deps=[ + ':debug', + ':bitstream', + ':compiler', + ':cpu', + ':entropy', + ':errors', + ':mem', + ':pool', + ':threading', + ':xxhash', + ':zstd_common', + ] +) diff --git a/deps/zstd/lib/Makefile b/deps/zstd/lib/Makefile new file mode 100644 index 00000000000000..8bfdade9f12b27 --- /dev/null +++ b/deps/zstd/lib/Makefile @@ -0,0 +1,369 @@ +# ################################################################ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# You may select, at your option, one of the above-listed licenses. +# ################################################################ + +# default target (when running `make` with no argument) +lib-release: + +# Modules +ZSTD_LIB_COMPRESSION ?= 1 +ZSTD_LIB_DECOMPRESSION ?= 1 +ZSTD_LIB_DICTBUILDER ?= 1 +ZSTD_LIB_DEPRECATED ?= 0 + +# Input variables for libzstd.mk +ifeq ($(ZSTD_LIB_COMPRESSION), 0) + ZSTD_LIB_DICTBUILDER = 0 + ZSTD_LIB_DEPRECATED = 0 +endif + +ifeq ($(ZSTD_LIB_DECOMPRESSION), 0) + ZSTD_LEGACY_SUPPORT = 0 + ZSTD_LIB_DEPRECATED = 0 +endif + +include libzstd.mk + +ZSTD_FILES := $(ZSTD_COMMON_FILES) $(ZSTD_LEGACY_FILES) + +ifneq ($(ZSTD_LIB_COMPRESSION), 0) + ZSTD_FILES += $(ZSTD_COMPRESS_FILES) +endif + +ifneq ($(ZSTD_LIB_DECOMPRESSION), 0) + ZSTD_FILES += $(ZSTD_DECOMPRESS_FILES) +endif + +ifneq ($(ZSTD_LIB_DEPRECATED), 0) + ZSTD_FILES += $(ZSTD_DEPRECATED_FILES) +endif + +ifneq ($(ZSTD_LIB_DICTBUILDER), 0) + ZSTD_FILES += $(ZSTD_DICTBUILDER_FILES) +endif + +ZSTD_LOCAL_SRC := $(notdir $(ZSTD_FILES)) +ZSTD_LOCAL_OBJ0 := $(ZSTD_LOCAL_SRC:.c=.o) +ZSTD_LOCAL_OBJ := $(ZSTD_LOCAL_OBJ0:.S=.o) + +VERSION := $(ZSTD_VERSION) + +# Note: by default, the static library is built single-threaded and dynamic library is built +# multi-threaded. It is possible to force multi or single threaded builds by appending +# -mt or -nomt to the build target (like lib-mt for multi-threaded, lib-nomt for single-threaded). + + +CPPFLAGS_DYNLIB += -DZSTD_MULTITHREAD # dynamic library build defaults to multi-threaded +LDFLAGS_DYNLIB += -pthread +CPPFLAGS_STATICLIB += # static library build defaults to single-threaded + + +ifeq ($(findstring GCC,$(CCVER)),GCC) +decompress/zstd_decompress_block.o : CFLAGS+=-fno-tree-vectorize +endif + + +# macOS linker doesn't support -soname, and use different extension +# see : https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/DynamicLibraryDesignGuidelines.html +ifeq ($(UNAME), Darwin) + SHARED_EXT = dylib + SHARED_EXT_MAJOR = $(LIBVER_MAJOR).$(SHARED_EXT) + SHARED_EXT_VER = $(LIBVER).$(SHARED_EXT) + SONAME_FLAGS = -install_name $(LIBDIR)/libzstd.$(SHARED_EXT_MAJOR) -compatibility_version $(LIBVER_MAJOR) -current_version $(LIBVER) +else + ifeq ($(UNAME), AIX) + SONAME_FLAGS = + else + SONAME_FLAGS = -Wl,-soname=libzstd.$(SHARED_EXT).$(LIBVER_MAJOR) + endif + SHARED_EXT = so + SHARED_EXT_MAJOR = $(SHARED_EXT).$(LIBVER_MAJOR) + SHARED_EXT_VER = $(SHARED_EXT).$(LIBVER) +endif + + +.PHONY: all +all: lib + + +.PHONY: libzstd.a # must be run every time +libzstd.a: CPPFLAGS += $(CPPFLAGS_STATICLIB) + +SET_CACHE_DIRECTORY = \ + +$(MAKE) --no-print-directory $@ \ + BUILD_DIR=obj/$(HASH_DIR) \ + CPPFLAGS="$(CPPFLAGS)" \ + CFLAGS="$(CFLAGS)" \ + LDFLAGS="$(LDFLAGS)" + +ifndef BUILD_DIR +# determine BUILD_DIR from compilation flags + +libzstd.a: + $(SET_CACHE_DIRECTORY) + +else +# BUILD_DIR is defined + +ZSTD_STATICLIB_DIR := $(BUILD_DIR)/static +ZSTD_STATICLIB := $(ZSTD_STATICLIB_DIR)/libzstd.a +ZSTD_STATICLIB_OBJ := $(addprefix $(ZSTD_STATICLIB_DIR)/,$(ZSTD_LOCAL_OBJ)) +$(ZSTD_STATICLIB): ARFLAGS = rcs +$(ZSTD_STATICLIB): | $(ZSTD_STATICLIB_DIR) +$(ZSTD_STATICLIB): $(ZSTD_STATICLIB_OBJ) + # Check for multithread flag at target execution time + $(if $(filter -DZSTD_MULTITHREAD,$(CPPFLAGS)),\ + @echo compiling multi-threaded static library $(LIBVER),\ + @echo compiling single-threaded static library $(LIBVER)) + $(AR) $(ARFLAGS) $@ $^ + +libzstd.a: $(ZSTD_STATICLIB) + cp -f $< $@ + +endif + +ifneq (,$(filter Windows%,$(TARGET_SYSTEM))) + +LIBZSTD = dll/libzstd.dll +$(LIBZSTD): $(ZSTD_FILES) + @echo compiling dynamic library $(LIBVER) + $(CC) $(FLAGS) -DZSTD_DLL_EXPORT=1 -Wl,--out-implib,dll/libzstd.dll.a -shared $^ -o $@ + +else # not Windows + +LIBZSTD = libzstd.$(SHARED_EXT_VER) +.PHONY: $(LIBZSTD) # must be run every time +$(LIBZSTD): CPPFLAGS += $(CPPFLAGS_DYNLIB) +$(LIBZSTD): CFLAGS += -fPIC -fvisibility=hidden +$(LIBZSTD): LDFLAGS += -shared $(LDFLAGS_DYNLIB) + +ifndef BUILD_DIR +# determine BUILD_DIR from compilation flags + +$(LIBZSTD): + $(SET_CACHE_DIRECTORY) + +else +# BUILD_DIR is defined + +ZSTD_DYNLIB_DIR := $(BUILD_DIR)/dynamic +ZSTD_DYNLIB := $(ZSTD_DYNLIB_DIR)/$(LIBZSTD) +ZSTD_DYNLIB_OBJ := $(addprefix $(ZSTD_DYNLIB_DIR)/,$(ZSTD_LOCAL_OBJ)) + +$(ZSTD_DYNLIB): | $(ZSTD_DYNLIB_DIR) +$(ZSTD_DYNLIB): $(ZSTD_DYNLIB_OBJ) +# Check for multithread flag at target execution time + $(if $(filter -DZSTD_MULTITHREAD,$(CPPFLAGS)),\ + @echo compiling multi-threaded dynamic library $(LIBVER),\ + @echo compiling single-threaded dynamic library $(LIBVER)) + $(CC) $(FLAGS) $^ $(LDFLAGS) $(SONAME_FLAGS) -o $@ + @echo creating versioned links + ln -sf $@ libzstd.$(SHARED_EXT_MAJOR) + ln -sf $@ libzstd.$(SHARED_EXT) + +$(LIBZSTD): $(ZSTD_DYNLIB) + cp -f $< $@ + +endif # ifndef BUILD_DIR +endif # if windows + +.PHONY: libzstd +libzstd : $(LIBZSTD) + +.PHONY: lib +lib : libzstd.a libzstd + + +# note : do not define lib-mt or lib-release as .PHONY +# make does not consider implicit pattern rule for .PHONY target + +%-mt : CPPFLAGS_DYNLIB := -DZSTD_MULTITHREAD +%-mt : CPPFLAGS_STATICLIB := -DZSTD_MULTITHREAD +%-mt : LDFLAGS_DYNLIB := -pthread +%-mt : % + @echo multi-threaded build completed + +%-nomt : CPPFLAGS_DYNLIB := +%-nomt : LDFLAGS_DYNLIB := +%-nomt : CPPFLAGS_STATICLIB := +%-nomt : % + @echo single-threaded build completed + +%-release : DEBUGFLAGS := +%-release : % + @echo release build completed + + +# Generate .h dependencies automatically + +# -MMD: compiler generates dependency information as a side-effect of compilation, without system headers +# -MP: adds phony target for each dependency other than main file. +DEPFLAGS = -MMD -MP + +# ensure that ZSTD_DYNLIB_DIR exists prior to generating %.o +$(ZSTD_DYNLIB_DIR)/%.o : %.c | $(ZSTD_DYNLIB_DIR) + @echo CC $@ + $(COMPILE.c) $(DEPFLAGS) $(OUTPUT_OPTION) $< + +$(ZSTD_STATICLIB_DIR)/%.o : %.c | $(ZSTD_STATICLIB_DIR) + @echo CC $@ + $(COMPILE.c) $(DEPFLAGS) $(OUTPUT_OPTION) $< + +$(ZSTD_DYNLIB_DIR)/%.o : %.S | $(ZSTD_DYNLIB_DIR) + @echo AS $@ + $(COMPILE.S) $(OUTPUT_OPTION) $< + +$(ZSTD_STATICLIB_DIR)/%.o : %.S | $(ZSTD_STATICLIB_DIR) + @echo AS $@ + $(COMPILE.S) $(OUTPUT_OPTION) $< + +MKDIR ?= mkdir -p +$(BUILD_DIR) $(ZSTD_DYNLIB_DIR) $(ZSTD_STATICLIB_DIR): + $(MKDIR) $@ + +DEPFILES := $(ZSTD_DYNLIB_OBJ:.o=.d) $(ZSTD_STATICLIB_OBJ:.o=.d) +$(DEPFILES): + +# The leading '-' means: do not fail is include fails (ex: directory does not exist yet) +-include $(wildcard $(DEPFILES)) + + +# Special case : build library in single-thread mode _and_ without zstdmt_compress.c +# Note : we still need threading.c and pool.c for the dictionary builder, +# but they will correctly behave single-threaded. +ZSTDMT_FILES = zstdmt_compress.c +ZSTD_NOMT_FILES = $(filter-out $(ZSTDMT_FILES),$(notdir $(ZSTD_FILES))) +libzstd-nomt: CFLAGS += -fPIC -fvisibility=hidden +libzstd-nomt: LDFLAGS += -shared +libzstd-nomt: $(ZSTD_NOMT_FILES) + @echo compiling single-thread dynamic library $(LIBVER) + @echo files : $(ZSTD_NOMT_FILES) + @if echo "$(ZSTD_NOMT_FILES)" | tr ' ' '\n' | $(GREP) -q zstdmt; then \ + echo "Error: Found zstdmt in list."; \ + exit 1; \ + fi + $(CC) $(FLAGS) $^ $(LDFLAGS) $(SONAME_FLAGS) -o $@ + +.PHONY: clean +clean: + $(RM) -r *.dSYM # macOS-specific + $(RM) core *.o *.a *.gcda *.$(SHARED_EXT) *.$(SHARED_EXT).* libzstd.pc + $(RM) dll/libzstd.dll dll/libzstd.lib libzstd-nomt* + $(RM) -r obj/* + @echo Cleaning library completed + +#----------------------------------------------------------------------------- +# make install is validated only for below listed environments +#----------------------------------------------------------------------------- +ifneq (,$(filter $(UNAME),Linux Darwin GNU/kFreeBSD GNU OpenBSD FreeBSD NetBSD DragonFly SunOS Haiku AIX MSYS_NT CYGWIN_NT)) + +lib: libzstd.pc + +HAS_EXPLICIT_EXEC_PREFIX := $(if $(or $(EXEC_PREFIX),$(exec_prefix)),1,) + +DESTDIR ?= +# directory variables : GNU conventions prefer lowercase +# see https://www.gnu.org/prep/standards/html_node/Makefile-Conventions.html +# support both lower and uppercase (BSD), use uppercase in script +prefix ?= /usr/local +PREFIX ?= $(prefix) +exec_prefix ?= $(PREFIX) +EXEC_PREFIX ?= $(exec_prefix) +libdir ?= $(EXEC_PREFIX)/lib +LIBDIR ?= $(libdir) +includedir ?= $(PREFIX)/include +INCLUDEDIR ?= $(includedir) + +PCINCDIR := $(patsubst $(PREFIX)%,%,$(INCLUDEDIR)) +PCLIBDIR := $(patsubst $(EXEC_PREFIX)%,%,$(LIBDIR)) + +# If we successfully stripped off a prefix, we'll add a reference to the +# relevant pc variable. +PCINCPREFIX := $(if $(findstring $(INCLUDEDIR),$(PCINCDIR)),,$${prefix}) +PCLIBPREFIX := $(if $(findstring $(LIBDIR),$(PCLIBDIR)),,$${exec_prefix}) + +# If no explicit EXEC_PREFIX was set by the caller, write it out as a reference +# to PREFIX, rather than as a resolved value. +PCEXEC_PREFIX := $(if $(HAS_EXPLICIT_EXEC_PREFIX),$(EXEC_PREFIX),$${prefix}) + +ifneq (,$(filter $(UNAME),FreeBSD NetBSD DragonFly)) + PKGCONFIGDIR ?= $(PREFIX)/libdata/pkgconfig +else + PKGCONFIGDIR ?= $(LIBDIR)/pkgconfig +endif + +ifneq (,$(filter $(UNAME),SunOS)) + INSTALL ?= ginstall +else + INSTALL ?= install +endif + +INSTALL_PROGRAM ?= $(INSTALL) +INSTALL_DATA ?= $(INSTALL) -m 644 + + +libzstd.pc: libzstd.pc.in + @echo creating pkgconfig + @sed \ + -e 's|@PREFIX@|$(PREFIX)|' \ + -e 's|@EXEC_PREFIX@|$(PCEXEC_PREFIX)|' \ + -e 's|@INCLUDEDIR@|$(PCINCPREFIX)$(PCINCDIR)|' \ + -e 's|@LIBDIR@|$(PCLIBPREFIX)$(PCLIBDIR)|' \ + -e 's|@VERSION@|$(VERSION)|' \ + -e 's|@LIBS_PRIVATE@|$(LDFLAGS_DYNLIB)|' \ + $< >$@ + +.PHONY: install +install: install-pc install-static install-shared install-includes + @echo zstd static and shared library installed + +.PHONY: install-pc +install-pc: libzstd.pc + [ -e $(DESTDIR)$(PKGCONFIGDIR) ] || $(INSTALL) -d -m 755 $(DESTDIR)$(PKGCONFIGDIR)/ + $(INSTALL_DATA) libzstd.pc $(DESTDIR)$(PKGCONFIGDIR)/ + +.PHONY: install-static +install-static: + # only generate libzstd.a if it's not already present + [ -e libzstd.a ] || $(MAKE) libzstd.a-release + [ -e $(DESTDIR)$(LIBDIR) ] || $(INSTALL) -d -m 755 $(DESTDIR)$(LIBDIR)/ + @echo Installing static library + $(INSTALL_DATA) libzstd.a $(DESTDIR)$(LIBDIR) + +.PHONY: install-shared +install-shared: + # only generate libzstd.so if it's not already present + [ -e $(LIBZSTD) ] || $(MAKE) libzstd-release + [ -e $(DESTDIR)$(LIBDIR) ] || $(INSTALL) -d -m 755 $(DESTDIR)$(LIBDIR)/ + @echo Installing shared library + $(INSTALL_PROGRAM) $(LIBZSTD) $(DESTDIR)$(LIBDIR) + ln -sf $(LIBZSTD) $(DESTDIR)$(LIBDIR)/libzstd.$(SHARED_EXT_MAJOR) + ln -sf $(LIBZSTD) $(DESTDIR)$(LIBDIR)/libzstd.$(SHARED_EXT) + +.PHONY: install-includes +install-includes: + [ -e $(DESTDIR)$(INCLUDEDIR) ] || $(INSTALL) -d -m 755 $(DESTDIR)$(INCLUDEDIR)/ + @echo Installing includes + $(INSTALL_DATA) zstd.h $(DESTDIR)$(INCLUDEDIR) + $(INSTALL_DATA) zstd_errors.h $(DESTDIR)$(INCLUDEDIR) + $(INSTALL_DATA) zdict.h $(DESTDIR)$(INCLUDEDIR) + +.PHONY: uninstall +uninstall: + $(RM) $(DESTDIR)$(LIBDIR)/libzstd.a + $(RM) $(DESTDIR)$(LIBDIR)/libzstd.$(SHARED_EXT) + $(RM) $(DESTDIR)$(LIBDIR)/libzstd.$(SHARED_EXT_MAJOR) + $(RM) $(DESTDIR)$(LIBDIR)/$(LIBZSTD) + $(RM) $(DESTDIR)$(PKGCONFIGDIR)/libzstd.pc + $(RM) $(DESTDIR)$(INCLUDEDIR)/zstd.h + $(RM) $(DESTDIR)$(INCLUDEDIR)/zstd_errors.h + $(RM) $(DESTDIR)$(INCLUDEDIR)/zdict.h + @echo zstd libraries successfully uninstalled + +endif diff --git a/deps/zstd/lib/README.md b/deps/zstd/lib/README.md new file mode 100644 index 00000000000000..a560f06cada1ca --- /dev/null +++ b/deps/zstd/lib/README.md @@ -0,0 +1,237 @@ +Zstandard library files +================================ + +The __lib__ directory is split into several sub-directories, +in order to make it easier to select or exclude features. + + +#### Building + +`Makefile` script is provided, supporting [Makefile conventions](https://www.gnu.org/prep/standards/html_node/Makefile-Conventions.html#Makefile-Conventions), +including commands variables, staged install, directory variables and standard targets. +- `make` : generates both static and dynamic libraries +- `make install` : install libraries and headers in target system directories + +`libzstd` default scope is pretty large, including compression, decompression, dictionary builder, +and support for decoding legacy formats >= v0.5.0. +The scope can be reduced on demand (see paragraph _modular build_). + + +#### Multithreading support + +When building with `make`, by default the dynamic library is multithreaded and static library is single-threaded (for compatibility reasons). + +Enabling multithreading requires 2 conditions : +- set build macro `ZSTD_MULTITHREAD` (`-DZSTD_MULTITHREAD` for `gcc`) +- for POSIX systems : compile with pthread (`-pthread` compilation flag for `gcc`) + +For convenience, we provide a build target to generate multi and single threaded libraries: +- Force enable multithreading on both dynamic and static libraries by appending `-mt` to the target, e.g. `make lib-mt`. +- Force disable multithreading on both dynamic and static libraries by appending `-nomt` to the target, e.g. `make lib-nomt`. +- By default, as mentioned before, dynamic library is multithreaded, and static library is single-threaded, e.g. `make lib`. + +When linking a POSIX program with a multithreaded version of `libzstd`, +note that it's necessary to invoke the `-pthread` flag during link stage. + +Multithreading capabilities are exposed +via the [advanced API defined in `lib/zstd.h`](https://github.com/facebook/zstd/blob/v1.4.3/lib/zstd.h#L351). + + +#### API + +Zstandard's stable API is exposed within [lib/zstd.h](zstd.h). + + +#### Advanced API + +Optional advanced features are exposed via : + +- `lib/zstd_errors.h` : translates `size_t` function results + into a `ZSTD_ErrorCode`, for accurate error handling. + +- `ZSTD_STATIC_LINKING_ONLY` : if this macro is defined _before_ including `zstd.h`, + it unlocks access to the experimental API, + exposed in the second part of `zstd.h`. + All definitions in the experimental APIs are unstable, + they may still change in the future, or even be removed. + As a consequence, experimental definitions shall ___never be used with dynamic library___ ! + Only static linking is allowed. + + +#### Modular build + +It's possible to compile only a limited set of features within `libzstd`. +The file structure is designed to make this selection manually achievable for any build system : + +- Directory `lib/common` is always required, for all variants. + +- Compression source code lies in `lib/compress` + +- Decompression source code lies in `lib/decompress` + +- It's possible to include only `compress` or only `decompress`, they don't depend on each other. + +- `lib/dictBuilder` : makes it possible to generate dictionaries from a set of samples. + The API is exposed in `lib/dictBuilder/zdict.h`. + This module depends on both `lib/common` and `lib/compress` . + +- `lib/legacy` : makes it possible to decompress legacy zstd formats, starting from `v0.1.0`. + This module depends on `lib/common` and `lib/decompress`. + To enable this feature, define `ZSTD_LEGACY_SUPPORT` during compilation. + Specifying a number limits versions supported to that version onward. + For example, `ZSTD_LEGACY_SUPPORT=2` means : "support legacy formats >= v0.2.0". + Conversely, `ZSTD_LEGACY_SUPPORT=0` means "do __not__ support legacy formats". + By default, this build macro is set as `ZSTD_LEGACY_SUPPORT=5`. + Decoding supported legacy format is a transparent capability triggered within decompression functions. + It's also allowed to invoke legacy API directly, exposed in `lib/legacy/zstd_legacy.h`. + Each version does also provide its own set of advanced API. + For example, advanced API for version `v0.4` is exposed in `lib/legacy/zstd_v04.h` . + +- While invoking `make libzstd`, it's possible to define build macros + `ZSTD_LIB_COMPRESSION`, `ZSTD_LIB_DECOMPRESSION`, `ZSTD_LIB_DICTBUILDER`, + and `ZSTD_LIB_DEPRECATED` as `0` to forgo compilation of the + corresponding features. This will also disable compilation of all + dependencies (e.g. `ZSTD_LIB_COMPRESSION=0` will also disable + dictBuilder). + +- There are a number of options that can help minimize the binary size of + `libzstd`. + + The first step is to select the components needed (using the above-described + `ZSTD_LIB_COMPRESSION` etc.). + + The next step is to set `ZSTD_LIB_MINIFY` to `1` when invoking `make`. This + disables various optional components and changes the compilation flags to + prioritize space-saving. + + Detailed options: Zstandard's code and build environment is set up by default + to optimize above all else for performance. In pursuit of this goal, Zstandard + makes significant trade-offs in code size. For example, Zstandard often has + more than one implementation of a particular component, with each + implementation optimized for different scenarios. For example, the Huffman + decoder has complementary implementations that decode the stream one symbol at + a time or two symbols at a time. Zstd normally includes both (and dispatches + between them at runtime), but by defining `HUF_FORCE_DECOMPRESS_X1` or + `HUF_FORCE_DECOMPRESS_X2`, you can force the use of one or the other, avoiding + compilation of the other. Similarly, `ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT` + and `ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG` force the compilation and use of + only one or the other of two decompression implementations. The smallest + binary is achieved by using `HUF_FORCE_DECOMPRESS_X1` and + `ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT` (implied by `ZSTD_LIB_MINIFY`). + + On the compressor side, Zstd's compression levels map to several internal + strategies. In environments where the higher compression levels aren't used, + it is possible to exclude all but the fastest strategy with + `ZSTD_LIB_EXCLUDE_COMPRESSORS_DFAST_AND_UP=1`. (Note that this will change + the behavior of the default compression level.) Or if you want to retain the + default compressor as well, you can set + `ZSTD_LIB_EXCLUDE_COMPRESSORS_GREEDY_AND_UP=1`, at the cost of an additional + ~20KB or so. + + For squeezing the last ounce of size out, you can also define + `ZSTD_NO_INLINE`, which disables inlining, and `ZSTD_STRIP_ERROR_STRINGS`, + which removes the error messages that are otherwise returned by + `ZSTD_getErrorName` (implied by `ZSTD_LIB_MINIFY`). + + Finally, when integrating into your application, make sure you're doing link- + time optimization and unused symbol garbage collection (via some combination of, + e.g., `-flto`, `-ffat-lto-objects`, `-fuse-linker-plugin`, + `-ffunction-sections`, `-fdata-sections`, `-fmerge-all-constants`, + `-Wl,--gc-sections`, `-Wl,-z,norelro`, and an archiver that understands + the compiler's intermediate representation, e.g., `AR=gcc-ar`). Consult your + compiler's documentation. + +- While invoking `make libzstd`, the build macro `ZSTD_LEGACY_MULTITHREADED_API=1` + will expose the deprecated `ZSTDMT` API exposed by `zstdmt_compress.h` in + the shared library, which is now hidden by default. + +- The build macro `DYNAMIC_BMI2` can be set to 1 or 0 in order to generate binaries + which can detect at runtime the presence of BMI2 instructions, and use them only if present. + These instructions contribute to better performance, notably on the decoder side. + By default, this feature is automatically enabled on detecting + the right instruction set (x64) and compiler (clang or gcc >= 5). + It's obviously disabled for different cpus, + or when BMI2 instruction set is _required_ by the compiler command line + (in this case, only the BMI2 code path is generated). + Setting this macro will either force to generate the BMI2 dispatcher (1) + or prevent it (0). It overrides automatic detection. + +- The build macro `ZSTD_NO_UNUSED_FUNCTIONS` can be defined to hide the definitions of functions + that zstd does not use. Not all unused functions are hidden, but they can be if needed. + Currently, this macro will hide function definitions in FSE and HUF that use an excessive + amount of stack space. + +- The build macro `ZSTD_NO_INTRINSICS` can be defined to disable all explicit intrinsics. + Compiler builtins are still used. + +- The build macro `ZSTD_DECODER_INTERNAL_BUFFER` can be set to control + the amount of extra memory used during decompression to store literals. + This defaults to 64kB. Reducing this value reduces the memory footprint of + `ZSTD_DCtx` decompression contexts, + but might also result in a small decompression speed cost. + +- The C compiler macros `ZSTDLIB_VISIBLE`, `ZSTDERRORLIB_VISIBLE` and `ZDICTLIB_VISIBLE` + can be overridden to control the visibility of zstd's API. Additionally, + `ZSTDLIB_STATIC_API` and `ZDICTLIB_STATIC_API` can be overridden to control the visibility + of zstd's static API. Specifically, it can be set to `ZSTDLIB_HIDDEN` to hide the symbols + from the shared library. These macros default to `ZSTDLIB_VISIBILITY`, + `ZSTDERRORLIB_VSIBILITY`, and `ZDICTLIB_VISIBILITY` if unset, for backwards compatibility + with the old macro names. + +- The C compiler macro `HUF_DISABLE_FAST_DECODE` disables the newer Huffman fast C + and assembly decoding loops. You may want to use this macro if these loops are + slower on your platform. + +#### Windows : using MinGW+MSYS to create DLL + +DLL can be created using MinGW+MSYS with the `make libzstd` command. +This command creates `dll\libzstd.dll` and the import library `dll\libzstd.lib`. +The import library is only required with Visual C++. +The header file `zstd.h` and the dynamic library `dll\libzstd.dll` are required to +compile a project using gcc/MinGW. +The dynamic library has to be added to linking options. +It means that if a project that uses ZSTD consists of a single `test-dll.c` +file it should be linked with `dll\libzstd.dll`. For example: +``` + gcc $(CFLAGS) -Iinclude/ test-dll.c -o test-dll dll\libzstd.dll +``` +The compiled executable will require ZSTD DLL which is available at `dll\libzstd.dll`. + + +#### Advanced Build options + +The build system requires a hash function in order to +separate object files created with different compilation flags. +By default, it tries to use `md5sum` or equivalent. +The hash function can be manually switched by setting the `HASH` variable. +For example : `make HASH=xxhsum` +The hash function needs to generate at least 64-bit using hexadecimal format. +When no hash function is found, +the Makefile just generates all object files into the same default directory, +irrespective of compilation flags. +This functionality only matters if `libzstd` is compiled multiple times +with different build flags. + +The build directory, where object files are stored +can also be manually controlled using variable `BUILD_DIR`, +for example `make BUILD_DIR=objectDir/v1`. +In which case, the hash function doesn't matter. + + +#### Deprecated API + +Obsolete API on their way out are stored in directory `lib/deprecated`. +At this stage, it contains older streaming prototypes, in `lib/deprecated/zbuff.h`. +These prototypes will be removed in some future version. +Consider migrating code towards supported streaming API exposed in `zstd.h`. + + +#### Miscellaneous + +The other files are not source code. There are : + + - `BUCK` : support for `buck` build system (https://buckbuild.com/) + - `Makefile` : `make` script to build and install zstd library (static and dynamic) + - `README.md` : this file + - `dll/` : resources directory for Windows compilation + - `libzstd.pc.in` : script for `pkg-config` (used in `make install`) diff --git a/deps/zstd/lib/common/allocations.h b/deps/zstd/lib/common/allocations.h new file mode 100644 index 00000000000000..5e8995501090fd --- /dev/null +++ b/deps/zstd/lib/common/allocations.h @@ -0,0 +1,55 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/* This file provides custom allocation primitives + */ + +#define ZSTD_DEPS_NEED_MALLOC +#include "zstd_deps.h" /* ZSTD_malloc, ZSTD_calloc, ZSTD_free, ZSTD_memset */ + +#include "compiler.h" /* MEM_STATIC */ +#define ZSTD_STATIC_LINKING_ONLY +#include "../zstd.h" /* ZSTD_customMem */ + +#ifndef ZSTD_ALLOCATIONS_H +#define ZSTD_ALLOCATIONS_H + +/* custom memory allocation functions */ + +MEM_STATIC void* ZSTD_customMalloc(size_t size, ZSTD_customMem customMem) +{ + if (customMem.customAlloc) + return customMem.customAlloc(customMem.opaque, size); + return ZSTD_malloc(size); +} + +MEM_STATIC void* ZSTD_customCalloc(size_t size, ZSTD_customMem customMem) +{ + if (customMem.customAlloc) { + /* calloc implemented as malloc+memset; + * not as efficient as calloc, but next best guess for custom malloc */ + void* const ptr = customMem.customAlloc(customMem.opaque, size); + ZSTD_memset(ptr, 0, size); + return ptr; + } + return ZSTD_calloc(1, size); +} + +MEM_STATIC void ZSTD_customFree(void* ptr, ZSTD_customMem customMem) +{ + if (ptr!=NULL) { + if (customMem.customFree) + customMem.customFree(customMem.opaque, ptr); + else + ZSTD_free(ptr); + } +} + +#endif /* ZSTD_ALLOCATIONS_H */ diff --git a/deps/zstd/lib/common/bits.h b/deps/zstd/lib/common/bits.h new file mode 100644 index 00000000000000..def56c474c380d --- /dev/null +++ b/deps/zstd/lib/common/bits.h @@ -0,0 +1,200 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_BITS_H +#define ZSTD_BITS_H + +#include "mem.h" + +MEM_STATIC unsigned ZSTD_countTrailingZeros32_fallback(U32 val) +{ + assert(val != 0); + { + static const U32 DeBruijnBytePos[32] = {0, 1, 28, 2, 29, 14, 24, 3, + 30, 22, 20, 15, 25, 17, 4, 8, + 31, 27, 13, 23, 21, 19, 16, 7, + 26, 12, 18, 6, 11, 5, 10, 9}; + return DeBruijnBytePos[((U32) ((val & -(S32) val) * 0x077CB531U)) >> 27]; + } +} + +MEM_STATIC unsigned ZSTD_countTrailingZeros32(U32 val) +{ + assert(val != 0); +# if defined(_MSC_VER) +# if STATIC_BMI2 == 1 + return (unsigned)_tzcnt_u32(val); +# else + if (val != 0) { + unsigned long r; + _BitScanForward(&r, val); + return (unsigned)r; + } else { + /* Should not reach this code path */ + __assume(0); + } +# endif +# elif defined(__GNUC__) && (__GNUC__ >= 4) + return (unsigned)__builtin_ctz(val); +# else + return ZSTD_countTrailingZeros32_fallback(val); +# endif +} + +MEM_STATIC unsigned ZSTD_countLeadingZeros32_fallback(U32 val) { + assert(val != 0); + { + static const U32 DeBruijnClz[32] = {0, 9, 1, 10, 13, 21, 2, 29, + 11, 14, 16, 18, 22, 25, 3, 30, + 8, 12, 20, 28, 15, 17, 24, 7, + 19, 27, 23, 6, 26, 5, 4, 31}; + val |= val >> 1; + val |= val >> 2; + val |= val >> 4; + val |= val >> 8; + val |= val >> 16; + return 31 - DeBruijnClz[(val * 0x07C4ACDDU) >> 27]; + } +} + +MEM_STATIC unsigned ZSTD_countLeadingZeros32(U32 val) +{ + assert(val != 0); +# if defined(_MSC_VER) +# if STATIC_BMI2 == 1 + return (unsigned)_lzcnt_u32(val); +# else + if (val != 0) { + unsigned long r; + _BitScanReverse(&r, val); + return (unsigned)(31 - r); + } else { + /* Should not reach this code path */ + __assume(0); + } +# endif +# elif defined(__GNUC__) && (__GNUC__ >= 4) + return (unsigned)__builtin_clz(val); +# else + return ZSTD_countLeadingZeros32_fallback(val); +# endif +} + +MEM_STATIC unsigned ZSTD_countTrailingZeros64(U64 val) +{ + assert(val != 0); +# if defined(_MSC_VER) && defined(_WIN64) +# if STATIC_BMI2 == 1 + return (unsigned)_tzcnt_u64(val); +# else + if (val != 0) { + unsigned long r; + _BitScanForward64(&r, val); + return (unsigned)r; + } else { + /* Should not reach this code path */ + __assume(0); + } +# endif +# elif defined(__GNUC__) && (__GNUC__ >= 4) && defined(__LP64__) + return (unsigned)__builtin_ctzll(val); +# else + { + U32 mostSignificantWord = (U32)(val >> 32); + U32 leastSignificantWord = (U32)val; + if (leastSignificantWord == 0) { + return 32 + ZSTD_countTrailingZeros32(mostSignificantWord); + } else { + return ZSTD_countTrailingZeros32(leastSignificantWord); + } + } +# endif +} + +MEM_STATIC unsigned ZSTD_countLeadingZeros64(U64 val) +{ + assert(val != 0); +# if defined(_MSC_VER) && defined(_WIN64) +# if STATIC_BMI2 == 1 + return (unsigned)_lzcnt_u64(val); +# else + if (val != 0) { + unsigned long r; + _BitScanReverse64(&r, val); + return (unsigned)(63 - r); + } else { + /* Should not reach this code path */ + __assume(0); + } +# endif +# elif defined(__GNUC__) && (__GNUC__ >= 4) + return (unsigned)(__builtin_clzll(val)); +# else + { + U32 mostSignificantWord = (U32)(val >> 32); + U32 leastSignificantWord = (U32)val; + if (mostSignificantWord == 0) { + return 32 + ZSTD_countLeadingZeros32(leastSignificantWord); + } else { + return ZSTD_countLeadingZeros32(mostSignificantWord); + } + } +# endif +} + +MEM_STATIC unsigned ZSTD_NbCommonBytes(size_t val) +{ + if (MEM_isLittleEndian()) { + if (MEM_64bits()) { + return ZSTD_countTrailingZeros64((U64)val) >> 3; + } else { + return ZSTD_countTrailingZeros32((U32)val) >> 3; + } + } else { /* Big Endian CPU */ + if (MEM_64bits()) { + return ZSTD_countLeadingZeros64((U64)val) >> 3; + } else { + return ZSTD_countLeadingZeros32((U32)val) >> 3; + } + } +} + +MEM_STATIC unsigned ZSTD_highbit32(U32 val) /* compress, dictBuilder, decodeCorpus */ +{ + assert(val != 0); + return 31 - ZSTD_countLeadingZeros32(val); +} + +/* ZSTD_rotateRight_*(): + * Rotates a bitfield to the right by "count" bits. + * https://en.wikipedia.org/w/index.php?title=Circular_shift&oldid=991635599#Implementing_circular_shifts + */ +MEM_STATIC +U64 ZSTD_rotateRight_U64(U64 const value, U32 count) { + assert(count < 64); + count &= 0x3F; /* for fickle pattern recognition */ + return (value >> count) | (U64)(value << ((0U - count) & 0x3F)); +} + +MEM_STATIC +U32 ZSTD_rotateRight_U32(U32 const value, U32 count) { + assert(count < 32); + count &= 0x1F; /* for fickle pattern recognition */ + return (value >> count) | (U32)(value << ((0U - count) & 0x1F)); +} + +MEM_STATIC +U16 ZSTD_rotateRight_U16(U16 const value, U32 count) { + assert(count < 16); + count &= 0x0F; /* for fickle pattern recognition */ + return (value >> count) | (U16)(value << ((0U - count) & 0x0F)); +} + +#endif /* ZSTD_BITS_H */ diff --git a/deps/zstd/lib/common/bitstream.h b/deps/zstd/lib/common/bitstream.h new file mode 100644 index 00000000000000..676044989c9f3d --- /dev/null +++ b/deps/zstd/lib/common/bitstream.h @@ -0,0 +1,457 @@ +/* ****************************************************************** + * bitstream + * Part of FSE library + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * You can contact the author at : + * - Source repository : https://github.com/Cyan4973/FiniteStateEntropy + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. +****************************************************************** */ +#ifndef BITSTREAM_H_MODULE +#define BITSTREAM_H_MODULE + +#if defined (__cplusplus) +extern "C" { +#endif +/* +* This API consists of small unitary functions, which must be inlined for best performance. +* Since link-time-optimization is not available for all compilers, +* these functions are defined into a .h to be included. +*/ + +/*-**************************************** +* Dependencies +******************************************/ +#include "mem.h" /* unaligned access routines */ +#include "compiler.h" /* UNLIKELY() */ +#include "debug.h" /* assert(), DEBUGLOG(), RAWLOG() */ +#include "error_private.h" /* error codes and messages */ +#include "bits.h" /* ZSTD_highbit32 */ + + +/*========================================= +* Target specific +=========================================*/ +#ifndef ZSTD_NO_INTRINSICS +# if (defined(__BMI__) || defined(__BMI2__)) && defined(__GNUC__) +# include /* support for bextr (experimental)/bzhi */ +# elif defined(__ICCARM__) +# include +# endif +#endif + +#define STREAM_ACCUMULATOR_MIN_32 25 +#define STREAM_ACCUMULATOR_MIN_64 57 +#define STREAM_ACCUMULATOR_MIN ((U32)(MEM_32bits() ? STREAM_ACCUMULATOR_MIN_32 : STREAM_ACCUMULATOR_MIN_64)) + + +/*-****************************************** +* bitStream encoding API (write forward) +********************************************/ +/* bitStream can mix input from multiple sources. + * A critical property of these streams is that they encode and decode in **reverse** direction. + * So the first bit sequence you add will be the last to be read, like a LIFO stack. + */ +typedef struct { + size_t bitContainer; + unsigned bitPos; + char* startPtr; + char* ptr; + char* endPtr; +} BIT_CStream_t; + +MEM_STATIC size_t BIT_initCStream(BIT_CStream_t* bitC, void* dstBuffer, size_t dstCapacity); +MEM_STATIC void BIT_addBits(BIT_CStream_t* bitC, size_t value, unsigned nbBits); +MEM_STATIC void BIT_flushBits(BIT_CStream_t* bitC); +MEM_STATIC size_t BIT_closeCStream(BIT_CStream_t* bitC); + +/* Start with initCStream, providing the size of buffer to write into. +* bitStream will never write outside of this buffer. +* `dstCapacity` must be >= sizeof(bitD->bitContainer), otherwise @return will be an error code. +* +* bits are first added to a local register. +* Local register is size_t, hence 64-bits on 64-bits systems, or 32-bits on 32-bits systems. +* Writing data into memory is an explicit operation, performed by the flushBits function. +* Hence keep track how many bits are potentially stored into local register to avoid register overflow. +* After a flushBits, a maximum of 7 bits might still be stored into local register. +* +* Avoid storing elements of more than 24 bits if you want compatibility with 32-bits bitstream readers. +* +* Last operation is to close the bitStream. +* The function returns the final size of CStream in bytes. +* If data couldn't fit into `dstBuffer`, it will return a 0 ( == not storable) +*/ + + +/*-******************************************** +* bitStream decoding API (read backward) +**********************************************/ +typedef size_t BitContainerType; +typedef struct { + BitContainerType bitContainer; + unsigned bitsConsumed; + const char* ptr; + const char* start; + const char* limitPtr; +} BIT_DStream_t; + +typedef enum { BIT_DStream_unfinished = 0, /* fully refilled */ + BIT_DStream_endOfBuffer = 1, /* still some bits left in bitstream */ + BIT_DStream_completed = 2, /* bitstream entirely consumed, bit-exact */ + BIT_DStream_overflow = 3 /* user requested more bits than present in bitstream */ + } BIT_DStream_status; /* result of BIT_reloadDStream() */ + +MEM_STATIC size_t BIT_initDStream(BIT_DStream_t* bitD, const void* srcBuffer, size_t srcSize); +MEM_STATIC size_t BIT_readBits(BIT_DStream_t* bitD, unsigned nbBits); +MEM_STATIC BIT_DStream_status BIT_reloadDStream(BIT_DStream_t* bitD); +MEM_STATIC unsigned BIT_endOfDStream(const BIT_DStream_t* bitD); + + +/* Start by invoking BIT_initDStream(). +* A chunk of the bitStream is then stored into a local register. +* Local register size is 64-bits on 64-bits systems, 32-bits on 32-bits systems (BitContainerType). +* You can then retrieve bitFields stored into the local register, **in reverse order**. +* Local register is explicitly reloaded from memory by the BIT_reloadDStream() method. +* A reload guarantee a minimum of ((8*sizeof(bitD->bitContainer))-7) bits when its result is BIT_DStream_unfinished. +* Otherwise, it can be less than that, so proceed accordingly. +* Checking if DStream has reached its end can be performed with BIT_endOfDStream(). +*/ + + +/*-**************************************** +* unsafe API +******************************************/ +MEM_STATIC void BIT_addBitsFast(BIT_CStream_t* bitC, size_t value, unsigned nbBits); +/* faster, but works only if value is "clean", meaning all high bits above nbBits are 0 */ + +MEM_STATIC void BIT_flushBitsFast(BIT_CStream_t* bitC); +/* unsafe version; does not check buffer overflow */ + +MEM_STATIC size_t BIT_readBitsFast(BIT_DStream_t* bitD, unsigned nbBits); +/* faster, but works only if nbBits >= 1 */ + +/*===== Local Constants =====*/ +static const unsigned BIT_mask[] = { + 0, 1, 3, 7, 0xF, 0x1F, + 0x3F, 0x7F, 0xFF, 0x1FF, 0x3FF, 0x7FF, + 0xFFF, 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF, 0x1FFFF, + 0x3FFFF, 0x7FFFF, 0xFFFFF, 0x1FFFFF, 0x3FFFFF, 0x7FFFFF, + 0xFFFFFF, 0x1FFFFFF, 0x3FFFFFF, 0x7FFFFFF, 0xFFFFFFF, 0x1FFFFFFF, + 0x3FFFFFFF, 0x7FFFFFFF}; /* up to 31 bits */ +#define BIT_MASK_SIZE (sizeof(BIT_mask) / sizeof(BIT_mask[0])) + +/*-************************************************************** +* bitStream encoding +****************************************************************/ +/*! BIT_initCStream() : + * `dstCapacity` must be > sizeof(size_t) + * @return : 0 if success, + * otherwise an error code (can be tested using ERR_isError()) */ +MEM_STATIC size_t BIT_initCStream(BIT_CStream_t* bitC, + void* startPtr, size_t dstCapacity) +{ + bitC->bitContainer = 0; + bitC->bitPos = 0; + bitC->startPtr = (char*)startPtr; + bitC->ptr = bitC->startPtr; + bitC->endPtr = bitC->startPtr + dstCapacity - sizeof(bitC->bitContainer); + if (dstCapacity <= sizeof(bitC->bitContainer)) return ERROR(dstSize_tooSmall); + return 0; +} + +FORCE_INLINE_TEMPLATE size_t BIT_getLowerBits(size_t bitContainer, U32 const nbBits) +{ +#if defined(STATIC_BMI2) && STATIC_BMI2 == 1 && !defined(ZSTD_NO_INTRINSICS) + return _bzhi_u64(bitContainer, nbBits); +#else + assert(nbBits < BIT_MASK_SIZE); + return bitContainer & BIT_mask[nbBits]; +#endif +} + +/*! BIT_addBits() : + * can add up to 31 bits into `bitC`. + * Note : does not check for register overflow ! */ +MEM_STATIC void BIT_addBits(BIT_CStream_t* bitC, + size_t value, unsigned nbBits) +{ + DEBUG_STATIC_ASSERT(BIT_MASK_SIZE == 32); + assert(nbBits < BIT_MASK_SIZE); + assert(nbBits + bitC->bitPos < sizeof(bitC->bitContainer) * 8); + bitC->bitContainer |= BIT_getLowerBits(value, nbBits) << bitC->bitPos; + bitC->bitPos += nbBits; +} + +/*! BIT_addBitsFast() : + * works only if `value` is _clean_, + * meaning all high bits above nbBits are 0 */ +MEM_STATIC void BIT_addBitsFast(BIT_CStream_t* bitC, + size_t value, unsigned nbBits) +{ + assert((value>>nbBits) == 0); + assert(nbBits + bitC->bitPos < sizeof(bitC->bitContainer) * 8); + bitC->bitContainer |= value << bitC->bitPos; + bitC->bitPos += nbBits; +} + +/*! BIT_flushBitsFast() : + * assumption : bitContainer has not overflowed + * unsafe version; does not check buffer overflow */ +MEM_STATIC void BIT_flushBitsFast(BIT_CStream_t* bitC) +{ + size_t const nbBytes = bitC->bitPos >> 3; + assert(bitC->bitPos < sizeof(bitC->bitContainer) * 8); + assert(bitC->ptr <= bitC->endPtr); + MEM_writeLEST(bitC->ptr, bitC->bitContainer); + bitC->ptr += nbBytes; + bitC->bitPos &= 7; + bitC->bitContainer >>= nbBytes*8; +} + +/*! BIT_flushBits() : + * assumption : bitContainer has not overflowed + * safe version; check for buffer overflow, and prevents it. + * note : does not signal buffer overflow. + * overflow will be revealed later on using BIT_closeCStream() */ +MEM_STATIC void BIT_flushBits(BIT_CStream_t* bitC) +{ + size_t const nbBytes = bitC->bitPos >> 3; + assert(bitC->bitPos < sizeof(bitC->bitContainer) * 8); + assert(bitC->ptr <= bitC->endPtr); + MEM_writeLEST(bitC->ptr, bitC->bitContainer); + bitC->ptr += nbBytes; + if (bitC->ptr > bitC->endPtr) bitC->ptr = bitC->endPtr; + bitC->bitPos &= 7; + bitC->bitContainer >>= nbBytes*8; +} + +/*! BIT_closeCStream() : + * @return : size of CStream, in bytes, + * or 0 if it could not fit into dstBuffer */ +MEM_STATIC size_t BIT_closeCStream(BIT_CStream_t* bitC) +{ + BIT_addBitsFast(bitC, 1, 1); /* endMark */ + BIT_flushBits(bitC); + if (bitC->ptr >= bitC->endPtr) return 0; /* overflow detected */ + return (bitC->ptr - bitC->startPtr) + (bitC->bitPos > 0); +} + + +/*-******************************************************** +* bitStream decoding +**********************************************************/ +/*! BIT_initDStream() : + * Initialize a BIT_DStream_t. + * `bitD` : a pointer to an already allocated BIT_DStream_t structure. + * `srcSize` must be the *exact* size of the bitStream, in bytes. + * @return : size of stream (== srcSize), or an errorCode if a problem is detected + */ +MEM_STATIC size_t BIT_initDStream(BIT_DStream_t* bitD, const void* srcBuffer, size_t srcSize) +{ + if (srcSize < 1) { ZSTD_memset(bitD, 0, sizeof(*bitD)); return ERROR(srcSize_wrong); } + + bitD->start = (const char*)srcBuffer; + bitD->limitPtr = bitD->start + sizeof(bitD->bitContainer); + + if (srcSize >= sizeof(bitD->bitContainer)) { /* normal case */ + bitD->ptr = (const char*)srcBuffer + srcSize - sizeof(bitD->bitContainer); + bitD->bitContainer = MEM_readLEST(bitD->ptr); + { BYTE const lastByte = ((const BYTE*)srcBuffer)[srcSize-1]; + bitD->bitsConsumed = lastByte ? 8 - ZSTD_highbit32(lastByte) : 0; /* ensures bitsConsumed is always set */ + if (lastByte == 0) return ERROR(GENERIC); /* endMark not present */ } + } else { + bitD->ptr = bitD->start; + bitD->bitContainer = *(const BYTE*)(bitD->start); + switch(srcSize) + { + case 7: bitD->bitContainer += (BitContainerType)(((const BYTE*)(srcBuffer))[6]) << (sizeof(bitD->bitContainer)*8 - 16); + ZSTD_FALLTHROUGH; + + case 6: bitD->bitContainer += (BitContainerType)(((const BYTE*)(srcBuffer))[5]) << (sizeof(bitD->bitContainer)*8 - 24); + ZSTD_FALLTHROUGH; + + case 5: bitD->bitContainer += (BitContainerType)(((const BYTE*)(srcBuffer))[4]) << (sizeof(bitD->bitContainer)*8 - 32); + ZSTD_FALLTHROUGH; + + case 4: bitD->bitContainer += (BitContainerType)(((const BYTE*)(srcBuffer))[3]) << 24; + ZSTD_FALLTHROUGH; + + case 3: bitD->bitContainer += (BitContainerType)(((const BYTE*)(srcBuffer))[2]) << 16; + ZSTD_FALLTHROUGH; + + case 2: bitD->bitContainer += (BitContainerType)(((const BYTE*)(srcBuffer))[1]) << 8; + ZSTD_FALLTHROUGH; + + default: break; + } + { BYTE const lastByte = ((const BYTE*)srcBuffer)[srcSize-1]; + bitD->bitsConsumed = lastByte ? 8 - ZSTD_highbit32(lastByte) : 0; + if (lastByte == 0) return ERROR(corruption_detected); /* endMark not present */ + } + bitD->bitsConsumed += (U32)(sizeof(bitD->bitContainer) - srcSize)*8; + } + + return srcSize; +} + +FORCE_INLINE_TEMPLATE size_t BIT_getUpperBits(BitContainerType bitContainer, U32 const start) +{ + return bitContainer >> start; +} + +FORCE_INLINE_TEMPLATE size_t BIT_getMiddleBits(BitContainerType bitContainer, U32 const start, U32 const nbBits) +{ + U32 const regMask = sizeof(bitContainer)*8 - 1; + /* if start > regMask, bitstream is corrupted, and result is undefined */ + assert(nbBits < BIT_MASK_SIZE); + /* x86 transform & ((1 << nbBits) - 1) to bzhi instruction, it is better + * than accessing memory. When bmi2 instruction is not present, we consider + * such cpus old (pre-Haswell, 2013) and their performance is not of that + * importance. + */ +#if defined(__x86_64__) || defined(_M_X86) + return (bitContainer >> (start & regMask)) & ((((U64)1) << nbBits) - 1); +#else + return (bitContainer >> (start & regMask)) & BIT_mask[nbBits]; +#endif +} + +/*! BIT_lookBits() : + * Provides next n bits from local register. + * local register is not modified. + * On 32-bits, maxNbBits==24. + * On 64-bits, maxNbBits==56. + * @return : value extracted */ +FORCE_INLINE_TEMPLATE size_t BIT_lookBits(const BIT_DStream_t* bitD, U32 nbBits) +{ + /* arbitrate between double-shift and shift+mask */ +#if 1 + /* if bitD->bitsConsumed + nbBits > sizeof(bitD->bitContainer)*8, + * bitstream is likely corrupted, and result is undefined */ + return BIT_getMiddleBits(bitD->bitContainer, (sizeof(bitD->bitContainer)*8) - bitD->bitsConsumed - nbBits, nbBits); +#else + /* this code path is slower on my os-x laptop */ + U32 const regMask = sizeof(bitD->bitContainer)*8 - 1; + return ((bitD->bitContainer << (bitD->bitsConsumed & regMask)) >> 1) >> ((regMask-nbBits) & regMask); +#endif +} + +/*! BIT_lookBitsFast() : + * unsafe version; only works if nbBits >= 1 */ +MEM_STATIC size_t BIT_lookBitsFast(const BIT_DStream_t* bitD, U32 nbBits) +{ + U32 const regMask = sizeof(bitD->bitContainer)*8 - 1; + assert(nbBits >= 1); + return (bitD->bitContainer << (bitD->bitsConsumed & regMask)) >> (((regMask+1)-nbBits) & regMask); +} + +FORCE_INLINE_TEMPLATE void BIT_skipBits(BIT_DStream_t* bitD, U32 nbBits) +{ + bitD->bitsConsumed += nbBits; +} + +/*! BIT_readBits() : + * Read (consume) next n bits from local register and update. + * Pay attention to not read more than nbBits contained into local register. + * @return : extracted value. */ +FORCE_INLINE_TEMPLATE size_t BIT_readBits(BIT_DStream_t* bitD, unsigned nbBits) +{ + size_t const value = BIT_lookBits(bitD, nbBits); + BIT_skipBits(bitD, nbBits); + return value; +} + +/*! BIT_readBitsFast() : + * unsafe version; only works if nbBits >= 1 */ +MEM_STATIC size_t BIT_readBitsFast(BIT_DStream_t* bitD, unsigned nbBits) +{ + size_t const value = BIT_lookBitsFast(bitD, nbBits); + assert(nbBits >= 1); + BIT_skipBits(bitD, nbBits); + return value; +} + +/*! BIT_reloadDStream_internal() : + * Simple variant of BIT_reloadDStream(), with two conditions: + * 1. bitstream is valid : bitsConsumed <= sizeof(bitD->bitContainer)*8 + * 2. look window is valid after shifted down : bitD->ptr >= bitD->start + */ +MEM_STATIC BIT_DStream_status BIT_reloadDStream_internal(BIT_DStream_t* bitD) +{ + assert(bitD->bitsConsumed <= sizeof(bitD->bitContainer)*8); + bitD->ptr -= bitD->bitsConsumed >> 3; + assert(bitD->ptr >= bitD->start); + bitD->bitsConsumed &= 7; + bitD->bitContainer = MEM_readLEST(bitD->ptr); + return BIT_DStream_unfinished; +} + +/*! BIT_reloadDStreamFast() : + * Similar to BIT_reloadDStream(), but with two differences: + * 1. bitsConsumed <= sizeof(bitD->bitContainer)*8 must hold! + * 2. Returns BIT_DStream_overflow when bitD->ptr < bitD->limitPtr, at this + * point you must use BIT_reloadDStream() to reload. + */ +MEM_STATIC BIT_DStream_status BIT_reloadDStreamFast(BIT_DStream_t* bitD) +{ + if (UNLIKELY(bitD->ptr < bitD->limitPtr)) + return BIT_DStream_overflow; + return BIT_reloadDStream_internal(bitD); +} + +/*! BIT_reloadDStream() : + * Refill `bitD` from buffer previously set in BIT_initDStream() . + * This function is safe, it guarantees it will not never beyond src buffer. + * @return : status of `BIT_DStream_t` internal register. + * when status == BIT_DStream_unfinished, internal register is filled with at least 25 or 57 bits */ +FORCE_INLINE_TEMPLATE BIT_DStream_status BIT_reloadDStream(BIT_DStream_t* bitD) +{ + /* note : once in overflow mode, a bitstream remains in this mode until it's reset */ + if (UNLIKELY(bitD->bitsConsumed > (sizeof(bitD->bitContainer)*8))) { + static const BitContainerType zeroFilled = 0; + bitD->ptr = (const char*)&zeroFilled; /* aliasing is allowed for char */ + /* overflow detected, erroneous scenario or end of stream: no update */ + return BIT_DStream_overflow; + } + + assert(bitD->ptr >= bitD->start); + + if (bitD->ptr >= bitD->limitPtr) { + return BIT_reloadDStream_internal(bitD); + } + if (bitD->ptr == bitD->start) { + /* reached end of bitStream => no update */ + if (bitD->bitsConsumed < sizeof(bitD->bitContainer)*8) return BIT_DStream_endOfBuffer; + return BIT_DStream_completed; + } + /* start < ptr < limitPtr => cautious update */ + { U32 nbBytes = bitD->bitsConsumed >> 3; + BIT_DStream_status result = BIT_DStream_unfinished; + if (bitD->ptr - nbBytes < bitD->start) { + nbBytes = (U32)(bitD->ptr - bitD->start); /* ptr > start */ + result = BIT_DStream_endOfBuffer; + } + bitD->ptr -= nbBytes; + bitD->bitsConsumed -= nbBytes*8; + bitD->bitContainer = MEM_readLEST(bitD->ptr); /* reminder : srcSize > sizeof(bitD->bitContainer), otherwise bitD->ptr == bitD->start */ + return result; + } +} + +/*! BIT_endOfDStream() : + * @return : 1 if DStream has _exactly_ reached its end (all bits consumed). + */ +MEM_STATIC unsigned BIT_endOfDStream(const BIT_DStream_t* DStream) +{ + return ((DStream->ptr == DStream->start) && (DStream->bitsConsumed == sizeof(DStream->bitContainer)*8)); +} + +#if defined (__cplusplus) +} +#endif + +#endif /* BITSTREAM_H_MODULE */ diff --git a/deps/zstd/lib/common/compiler.h b/deps/zstd/lib/common/compiler.h new file mode 100644 index 00000000000000..31880ecbe1612f --- /dev/null +++ b/deps/zstd/lib/common/compiler.h @@ -0,0 +1,450 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_COMPILER_H +#define ZSTD_COMPILER_H + +#include + +#include "portability_macros.h" + +/*-******************************************************* +* Compiler specifics +*********************************************************/ +/* force inlining */ + +#if !defined(ZSTD_NO_INLINE) +#if (defined(__GNUC__) && !defined(__STRICT_ANSI__)) || defined(__cplusplus) || defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 */ +# define INLINE_KEYWORD inline +#else +# define INLINE_KEYWORD +#endif + +#if defined(__GNUC__) || defined(__ICCARM__) +# define FORCE_INLINE_ATTR __attribute__((always_inline)) +#elif defined(_MSC_VER) +# define FORCE_INLINE_ATTR __forceinline +#else +# define FORCE_INLINE_ATTR +#endif + +#else + +#define INLINE_KEYWORD +#define FORCE_INLINE_ATTR + +#endif + +/** + On MSVC qsort requires that functions passed into it use the __cdecl calling conversion(CC). + This explicitly marks such functions as __cdecl so that the code will still compile + if a CC other than __cdecl has been made the default. +*/ +#if defined(_MSC_VER) +# define WIN_CDECL __cdecl +#else +# define WIN_CDECL +#endif + +/* UNUSED_ATTR tells the compiler it is okay if the function is unused. */ +#if defined(__GNUC__) +# define UNUSED_ATTR __attribute__((unused)) +#else +# define UNUSED_ATTR +#endif + +/** + * FORCE_INLINE_TEMPLATE is used to define C "templates", which take constant + * parameters. They must be inlined for the compiler to eliminate the constant + * branches. + */ +#define FORCE_INLINE_TEMPLATE static INLINE_KEYWORD FORCE_INLINE_ATTR UNUSED_ATTR +/** + * HINT_INLINE is used to help the compiler generate better code. It is *not* + * used for "templates", so it can be tweaked based on the compilers + * performance. + * + * gcc-4.8 and gcc-4.9 have been shown to benefit from leaving off the + * always_inline attribute. + * + * clang up to 5.0.0 (trunk) benefit tremendously from the always_inline + * attribute. + */ +#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ >= 4 && __GNUC_MINOR__ >= 8 && __GNUC__ < 5 +# define HINT_INLINE static INLINE_KEYWORD +#else +# define HINT_INLINE FORCE_INLINE_TEMPLATE +#endif + +/* "soft" inline : + * The compiler is free to select if it's a good idea to inline or not. + * The main objective is to silence compiler warnings + * when a defined function in included but not used. + * + * Note : this macro is prefixed `MEM_` because it used to be provided by `mem.h` unit. + * Updating the prefix is probably preferable, but requires a fairly large codemod, + * since this name is used everywhere. + */ +#ifndef MEM_STATIC /* already defined in Linux Kernel mem.h */ +#if defined(__GNUC__) +# define MEM_STATIC static __inline UNUSED_ATTR +#elif defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) +# define MEM_STATIC static inline +#elif defined(_MSC_VER) +# define MEM_STATIC static __inline +#else +# define MEM_STATIC static /* this version may generate warnings for unused static functions; disable the relevant warning */ +#endif +#endif + +/* force no inlining */ +#ifdef _MSC_VER +# define FORCE_NOINLINE static __declspec(noinline) +#else +# if defined(__GNUC__) || defined(__ICCARM__) +# define FORCE_NOINLINE static __attribute__((__noinline__)) +# else +# define FORCE_NOINLINE static +# endif +#endif + + +/* target attribute */ +#if defined(__GNUC__) || defined(__ICCARM__) +# define TARGET_ATTRIBUTE(target) __attribute__((__target__(target))) +#else +# define TARGET_ATTRIBUTE(target) +#endif + +/* Target attribute for BMI2 dynamic dispatch. + * Enable lzcnt, bmi, and bmi2. + * We test for bmi1 & bmi2. lzcnt is included in bmi1. + */ +#define BMI2_TARGET_ATTRIBUTE TARGET_ATTRIBUTE("lzcnt,bmi,bmi2") + +/* prefetch + * can be disabled, by declaring NO_PREFETCH build macro */ +#if defined(NO_PREFETCH) +# define PREFETCH_L1(ptr) do { (void)(ptr); } while (0) /* disabled */ +# define PREFETCH_L2(ptr) do { (void)(ptr); } while (0) /* disabled */ +#else +# if defined(_MSC_VER) && (defined(_M_X64) || defined(_M_I86)) && !defined(_M_ARM64EC) /* _mm_prefetch() is not defined outside of x86/x64 */ +# include /* https://msdn.microsoft.com/fr-fr/library/84szxsww(v=vs.90).aspx */ +# define PREFETCH_L1(ptr) _mm_prefetch((const char*)(ptr), _MM_HINT_T0) +# define PREFETCH_L2(ptr) _mm_prefetch((const char*)(ptr), _MM_HINT_T1) +# elif defined(__GNUC__) && ( (__GNUC__ >= 4) || ( (__GNUC__ == 3) && (__GNUC_MINOR__ >= 1) ) ) +# define PREFETCH_L1(ptr) __builtin_prefetch((ptr), 0 /* rw==read */, 3 /* locality */) +# define PREFETCH_L2(ptr) __builtin_prefetch((ptr), 0 /* rw==read */, 2 /* locality */) +# elif defined(__aarch64__) +# define PREFETCH_L1(ptr) do { __asm__ __volatile__("prfm pldl1keep, %0" ::"Q"(*(ptr))); } while (0) +# define PREFETCH_L2(ptr) do { __asm__ __volatile__("prfm pldl2keep, %0" ::"Q"(*(ptr))); } while (0) +# else +# define PREFETCH_L1(ptr) do { (void)(ptr); } while (0) /* disabled */ +# define PREFETCH_L2(ptr) do { (void)(ptr); } while (0) /* disabled */ +# endif +#endif /* NO_PREFETCH */ + +#define CACHELINE_SIZE 64 + +#define PREFETCH_AREA(p, s) \ + do { \ + const char* const _ptr = (const char*)(p); \ + size_t const _size = (size_t)(s); \ + size_t _pos; \ + for (_pos=0; _pos<_size; _pos+=CACHELINE_SIZE) { \ + PREFETCH_L2(_ptr + _pos); \ + } \ + } while (0) + +/* vectorization + * older GCC (pre gcc-4.3 picked as the cutoff) uses a different syntax, + * and some compilers, like Intel ICC and MCST LCC, do not support it at all. */ +#if !defined(__INTEL_COMPILER) && !defined(__clang__) && defined(__GNUC__) && !defined(__LCC__) +# if (__GNUC__ == 4 && __GNUC_MINOR__ > 3) || (__GNUC__ >= 5) +# define DONT_VECTORIZE __attribute__((optimize("no-tree-vectorize"))) +# else +# define DONT_VECTORIZE _Pragma("GCC optimize(\"no-tree-vectorize\")") +# endif +#else +# define DONT_VECTORIZE +#endif + +/* Tell the compiler that a branch is likely or unlikely. + * Only use these macros if it causes the compiler to generate better code. + * If you can remove a LIKELY/UNLIKELY annotation without speed changes in gcc + * and clang, please do. + */ +#if defined(__GNUC__) +#define LIKELY(x) (__builtin_expect((x), 1)) +#define UNLIKELY(x) (__builtin_expect((x), 0)) +#else +#define LIKELY(x) (x) +#define UNLIKELY(x) (x) +#endif + +#if __has_builtin(__builtin_unreachable) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5))) +# define ZSTD_UNREACHABLE do { assert(0), __builtin_unreachable(); } while (0) +#else +# define ZSTD_UNREACHABLE do { assert(0); } while (0) +#endif + +/* disable warnings */ +#ifdef _MSC_VER /* Visual Studio */ +# include /* For Visual 2005 */ +# pragma warning(disable : 4100) /* disable: C4100: unreferenced formal parameter */ +# pragma warning(disable : 4127) /* disable: C4127: conditional expression is constant */ +# pragma warning(disable : 4204) /* disable: C4204: non-constant aggregate initializer */ +# pragma warning(disable : 4214) /* disable: C4214: non-int bitfields */ +# pragma warning(disable : 4324) /* disable: C4324: padded structure */ +#endif + +/*Like DYNAMIC_BMI2 but for compile time determination of BMI2 support*/ +#ifndef STATIC_BMI2 +# if defined(_MSC_VER) && (defined(_M_X64) || defined(_M_I86)) +# ifdef __AVX2__ //MSVC does not have a BMI2 specific flag, but every CPU that supports AVX2 also supports BMI2 +# define STATIC_BMI2 1 +# endif +# elif defined(__BMI2__) && defined(__x86_64__) && defined(__GNUC__) +# define STATIC_BMI2 1 +# endif +#endif + +#ifndef STATIC_BMI2 + #define STATIC_BMI2 0 +#endif + +/* compile time determination of SIMD support */ +#if !defined(ZSTD_NO_INTRINSICS) +# if defined(__SSE2__) || defined(_M_AMD64) || (defined (_M_IX86) && defined(_M_IX86_FP) && (_M_IX86_FP >= 2)) +# define ZSTD_ARCH_X86_SSE2 +# endif +# if defined(__ARM_NEON) || defined(_M_ARM64) +# define ZSTD_ARCH_ARM_NEON +# endif +# +# if defined(ZSTD_ARCH_X86_SSE2) +# include +# elif defined(ZSTD_ARCH_ARM_NEON) +# include +# endif +#endif + +/* C-language Attributes are added in C23. */ +#if defined(__STDC_VERSION__) && (__STDC_VERSION__ > 201710L) && defined(__has_c_attribute) +# define ZSTD_HAS_C_ATTRIBUTE(x) __has_c_attribute(x) +#else +# define ZSTD_HAS_C_ATTRIBUTE(x) 0 +#endif + +/* Only use C++ attributes in C++. Some compilers report support for C++ + * attributes when compiling with C. + */ +#if defined(__cplusplus) && defined(__has_cpp_attribute) +# define ZSTD_HAS_CPP_ATTRIBUTE(x) __has_cpp_attribute(x) +#else +# define ZSTD_HAS_CPP_ATTRIBUTE(x) 0 +#endif + +/* Define ZSTD_FALLTHROUGH macro for annotating switch case with the 'fallthrough' attribute. + * - C23: https://en.cppreference.com/w/c/language/attributes/fallthrough + * - CPP17: https://en.cppreference.com/w/cpp/language/attributes/fallthrough + * - Else: __attribute__((__fallthrough__)) + */ +#ifndef ZSTD_FALLTHROUGH +# if ZSTD_HAS_C_ATTRIBUTE(fallthrough) +# define ZSTD_FALLTHROUGH [[fallthrough]] +# elif ZSTD_HAS_CPP_ATTRIBUTE(fallthrough) +# define ZSTD_FALLTHROUGH [[fallthrough]] +# elif __has_attribute(__fallthrough__) +/* Leading semicolon is to satisfy gcc-11 with -pedantic. Without the semicolon + * gcc complains about: a label can only be part of a statement and a declaration is not a statement. + */ +# define ZSTD_FALLTHROUGH ; __attribute__((__fallthrough__)) +# else +# define ZSTD_FALLTHROUGH +# endif +#endif + +/*-************************************************************** +* Alignment check +*****************************************************************/ + +/* this test was initially positioned in mem.h, + * but this file is removed (or replaced) for linux kernel + * so it's now hosted in compiler.h, + * which remains valid for both user & kernel spaces. + */ + +#ifndef ZSTD_ALIGNOF +# if defined(__GNUC__) || defined(_MSC_VER) +/* covers gcc, clang & MSVC */ +/* note : this section must come first, before C11, + * due to a limitation in the kernel source generator */ +# define ZSTD_ALIGNOF(T) __alignof(T) + +# elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) +/* C11 support */ +# include +# define ZSTD_ALIGNOF(T) alignof(T) + +# else +/* No known support for alignof() - imperfect backup */ +# define ZSTD_ALIGNOF(T) (sizeof(void*) < sizeof(T) ? sizeof(void*) : sizeof(T)) + +# endif +#endif /* ZSTD_ALIGNOF */ + +/*-************************************************************** +* Sanitizer +*****************************************************************/ + +/** + * Zstd relies on pointer overflow in its decompressor. + * We add this attribute to functions that rely on pointer overflow. + */ +#ifndef ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +# if __has_attribute(no_sanitize) +# if !defined(__clang__) && defined(__GNUC__) && __GNUC__ < 8 + /* gcc < 8 only has signed-integer-overlow which triggers on pointer overflow */ +# define ZSTD_ALLOW_POINTER_OVERFLOW_ATTR __attribute__((no_sanitize("signed-integer-overflow"))) +# else + /* older versions of clang [3.7, 5.0) will warn that pointer-overflow is ignored. */ +# define ZSTD_ALLOW_POINTER_OVERFLOW_ATTR __attribute__((no_sanitize("pointer-overflow"))) +# endif +# else +# define ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +# endif +#endif + +/** + * Helper function to perform a wrapped pointer difference without trigging + * UBSAN. + * + * @returns lhs - rhs with wrapping + */ +MEM_STATIC +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +ptrdiff_t ZSTD_wrappedPtrDiff(unsigned char const* lhs, unsigned char const* rhs) +{ + return lhs - rhs; +} + +/** + * Helper function to perform a wrapped pointer add without triggering UBSAN. + * + * @return ptr + add with wrapping + */ +MEM_STATIC +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +unsigned char const* ZSTD_wrappedPtrAdd(unsigned char const* ptr, ptrdiff_t add) +{ + return ptr + add; +} + +/** + * Helper function to perform a wrapped pointer subtraction without triggering + * UBSAN. + * + * @return ptr - sub with wrapping + */ +MEM_STATIC +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +unsigned char const* ZSTD_wrappedPtrSub(unsigned char const* ptr, ptrdiff_t sub) +{ + return ptr - sub; +} + +/** + * Helper function to add to a pointer that works around C's undefined behavior + * of adding 0 to NULL. + * + * @returns `ptr + add` except it defines `NULL + 0 == NULL`. + */ +MEM_STATIC +unsigned char* ZSTD_maybeNullPtrAdd(unsigned char* ptr, ptrdiff_t add) +{ + return add > 0 ? ptr + add : ptr; +} + +/* Issue #3240 reports an ASAN failure on an llvm-mingw build. Out of an + * abundance of caution, disable our custom poisoning on mingw. */ +#ifdef __MINGW32__ +#ifndef ZSTD_ASAN_DONT_POISON_WORKSPACE +#define ZSTD_ASAN_DONT_POISON_WORKSPACE 1 +#endif +#ifndef ZSTD_MSAN_DONT_POISON_WORKSPACE +#define ZSTD_MSAN_DONT_POISON_WORKSPACE 1 +#endif +#endif + +#if ZSTD_MEMORY_SANITIZER && !defined(ZSTD_MSAN_DONT_POISON_WORKSPACE) +/* Not all platforms that support msan provide sanitizers/msan_interface.h. + * We therefore declare the functions we need ourselves, rather than trying to + * include the header file... */ +#include /* size_t */ +#define ZSTD_DEPS_NEED_STDINT +#include "zstd_deps.h" /* intptr_t */ + +/* Make memory region fully initialized (without changing its contents). */ +void __msan_unpoison(const volatile void *a, size_t size); + +/* Make memory region fully uninitialized (without changing its contents). + This is a legacy interface that does not update origin information. Use + __msan_allocated_memory() instead. */ +void __msan_poison(const volatile void *a, size_t size); + +/* Returns the offset of the first (at least partially) poisoned byte in the + memory range, or -1 if the whole range is good. */ +intptr_t __msan_test_shadow(const volatile void *x, size_t size); + +/* Print shadow and origin for the memory range to stderr in a human-readable + format. */ +void __msan_print_shadow(const volatile void *x, size_t size); +#endif + +#if ZSTD_ADDRESS_SANITIZER && !defined(ZSTD_ASAN_DONT_POISON_WORKSPACE) +/* Not all platforms that support asan provide sanitizers/asan_interface.h. + * We therefore declare the functions we need ourselves, rather than trying to + * include the header file... */ +#include /* size_t */ + +/** + * Marks a memory region ([addr, addr+size)) as unaddressable. + * + * This memory must be previously allocated by your program. Instrumented + * code is forbidden from accessing addresses in this region until it is + * unpoisoned. This function is not guaranteed to poison the entire region - + * it could poison only a subregion of [addr, addr+size) due to ASan + * alignment restrictions. + * + * \note This function is not thread-safe because no two threads can poison or + * unpoison memory in the same memory region simultaneously. + * + * \param addr Start of memory region. + * \param size Size of memory region. */ +void __asan_poison_memory_region(void const volatile *addr, size_t size); + +/** + * Marks a memory region ([addr, addr+size)) as addressable. + * + * This memory must be previously allocated by your program. Accessing + * addresses in this region is allowed until this region is poisoned again. + * This function could unpoison a super-region of [addr, addr+size) due + * to ASan alignment restrictions. + * + * \note This function is not thread-safe because no two threads can + * poison or unpoison memory in the same memory region simultaneously. + * + * \param addr Start of memory region. + * \param size Size of memory region. */ +void __asan_unpoison_memory_region(void const volatile *addr, size_t size); +#endif + +#endif /* ZSTD_COMPILER_H */ diff --git a/deps/zstd/lib/common/cpu.h b/deps/zstd/lib/common/cpu.h new file mode 100644 index 00000000000000..0e684d9ad8ed02 --- /dev/null +++ b/deps/zstd/lib/common/cpu.h @@ -0,0 +1,249 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_COMMON_CPU_H +#define ZSTD_COMMON_CPU_H + +/** + * Implementation taken from folly/CpuId.h + * https://github.com/facebook/folly/blob/master/folly/CpuId.h + */ + +#include "mem.h" + +#ifdef _MSC_VER +#include +#endif + +typedef struct { + U32 f1c; + U32 f1d; + U32 f7b; + U32 f7c; +} ZSTD_cpuid_t; + +MEM_STATIC ZSTD_cpuid_t ZSTD_cpuid(void) { + U32 f1c = 0; + U32 f1d = 0; + U32 f7b = 0; + U32 f7c = 0; +#if defined(_MSC_VER) && (defined(_M_X64) || defined(_M_IX86)) +#if !defined(__clang__) + int reg[4]; + __cpuid((int*)reg, 0); + { + int const n = reg[0]; + if (n >= 1) { + __cpuid((int*)reg, 1); + f1c = (U32)reg[2]; + f1d = (U32)reg[3]; + } + if (n >= 7) { + __cpuidex((int*)reg, 7, 0); + f7b = (U32)reg[1]; + f7c = (U32)reg[2]; + } + } +#else + /* Clang compiler has a bug (fixed in https://reviews.llvm.org/D101338) in + * which the `__cpuid` intrinsic does not save and restore `rbx` as it needs + * to due to being a reserved register. So in that case, do the `cpuid` + * ourselves. Clang supports inline assembly anyway. + */ + U32 n; + __asm__( + "pushq %%rbx\n\t" + "cpuid\n\t" + "popq %%rbx\n\t" + : "=a"(n) + : "a"(0) + : "rcx", "rdx"); + if (n >= 1) { + U32 f1a; + __asm__( + "pushq %%rbx\n\t" + "cpuid\n\t" + "popq %%rbx\n\t" + : "=a"(f1a), "=c"(f1c), "=d"(f1d) + : "a"(1) + :); + } + if (n >= 7) { + __asm__( + "pushq %%rbx\n\t" + "cpuid\n\t" + "movq %%rbx, %%rax\n\t" + "popq %%rbx" + : "=a"(f7b), "=c"(f7c) + : "a"(7), "c"(0) + : "rdx"); + } +#endif +#elif defined(__i386__) && defined(__PIC__) && !defined(__clang__) && defined(__GNUC__) + /* The following block like the normal cpuid branch below, but gcc + * reserves ebx for use of its pic register so we must specially + * handle the save and restore to avoid clobbering the register + */ + U32 n; + __asm__( + "pushl %%ebx\n\t" + "cpuid\n\t" + "popl %%ebx\n\t" + : "=a"(n) + : "a"(0) + : "ecx", "edx"); + if (n >= 1) { + U32 f1a; + __asm__( + "pushl %%ebx\n\t" + "cpuid\n\t" + "popl %%ebx\n\t" + : "=a"(f1a), "=c"(f1c), "=d"(f1d) + : "a"(1)); + } + if (n >= 7) { + __asm__( + "pushl %%ebx\n\t" + "cpuid\n\t" + "movl %%ebx, %%eax\n\t" + "popl %%ebx" + : "=a"(f7b), "=c"(f7c) + : "a"(7), "c"(0) + : "edx"); + } +#elif defined(__x86_64__) || defined(_M_X64) || defined(__i386__) + U32 n; + __asm__("cpuid" : "=a"(n) : "a"(0) : "ebx", "ecx", "edx"); + if (n >= 1) { + U32 f1a; + __asm__("cpuid" : "=a"(f1a), "=c"(f1c), "=d"(f1d) : "a"(1) : "ebx"); + } + if (n >= 7) { + U32 f7a; + __asm__("cpuid" + : "=a"(f7a), "=b"(f7b), "=c"(f7c) + : "a"(7), "c"(0) + : "edx"); + } +#endif + { + ZSTD_cpuid_t cpuid; + cpuid.f1c = f1c; + cpuid.f1d = f1d; + cpuid.f7b = f7b; + cpuid.f7c = f7c; + return cpuid; + } +} + +#define X(name, r, bit) \ + MEM_STATIC int ZSTD_cpuid_##name(ZSTD_cpuid_t const cpuid) { \ + return ((cpuid.r) & (1U << bit)) != 0; \ + } + +/* cpuid(1): Processor Info and Feature Bits. */ +#define C(name, bit) X(name, f1c, bit) + C(sse3, 0) + C(pclmuldq, 1) + C(dtes64, 2) + C(monitor, 3) + C(dscpl, 4) + C(vmx, 5) + C(smx, 6) + C(eist, 7) + C(tm2, 8) + C(ssse3, 9) + C(cnxtid, 10) + C(fma, 12) + C(cx16, 13) + C(xtpr, 14) + C(pdcm, 15) + C(pcid, 17) + C(dca, 18) + C(sse41, 19) + C(sse42, 20) + C(x2apic, 21) + C(movbe, 22) + C(popcnt, 23) + C(tscdeadline, 24) + C(aes, 25) + C(xsave, 26) + C(osxsave, 27) + C(avx, 28) + C(f16c, 29) + C(rdrand, 30) +#undef C +#define D(name, bit) X(name, f1d, bit) + D(fpu, 0) + D(vme, 1) + D(de, 2) + D(pse, 3) + D(tsc, 4) + D(msr, 5) + D(pae, 6) + D(mce, 7) + D(cx8, 8) + D(apic, 9) + D(sep, 11) + D(mtrr, 12) + D(pge, 13) + D(mca, 14) + D(cmov, 15) + D(pat, 16) + D(pse36, 17) + D(psn, 18) + D(clfsh, 19) + D(ds, 21) + D(acpi, 22) + D(mmx, 23) + D(fxsr, 24) + D(sse, 25) + D(sse2, 26) + D(ss, 27) + D(htt, 28) + D(tm, 29) + D(pbe, 31) +#undef D + +/* cpuid(7): Extended Features. */ +#define B(name, bit) X(name, f7b, bit) + B(bmi1, 3) + B(hle, 4) + B(avx2, 5) + B(smep, 7) + B(bmi2, 8) + B(erms, 9) + B(invpcid, 10) + B(rtm, 11) + B(mpx, 14) + B(avx512f, 16) + B(avx512dq, 17) + B(rdseed, 18) + B(adx, 19) + B(smap, 20) + B(avx512ifma, 21) + B(pcommit, 22) + B(clflushopt, 23) + B(clwb, 24) + B(avx512pf, 26) + B(avx512er, 27) + B(avx512cd, 28) + B(sha, 29) + B(avx512bw, 30) + B(avx512vl, 31) +#undef B +#define C(name, bit) X(name, f7c, bit) + C(prefetchwt1, 0) + C(avx512vbmi, 1) +#undef C + +#undef X + +#endif /* ZSTD_COMMON_CPU_H */ diff --git a/deps/zstd/lib/common/debug.c b/deps/zstd/lib/common/debug.c new file mode 100644 index 00000000000000..9d0b7d229c14ca --- /dev/null +++ b/deps/zstd/lib/common/debug.c @@ -0,0 +1,30 @@ +/* ****************************************************************** + * debug + * Part of FSE library + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * You can contact the author at : + * - Source repository : https://github.com/Cyan4973/FiniteStateEntropy + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. +****************************************************************** */ + + +/* + * This module only hosts one global variable + * which can be used to dynamically influence the verbosity of traces, + * such as DEBUGLOG and RAWLOG + */ + +#include "debug.h" + +#if !defined(ZSTD_LINUX_KERNEL) || (DEBUGLEVEL>=2) +/* We only use this when DEBUGLEVEL>=2, but we get -Werror=pedantic errors if a + * translation unit is empty. So remove this from Linux kernel builds, but + * otherwise just leave it in. + */ +int g_debuglevel = DEBUGLEVEL; +#endif diff --git a/deps/zstd/lib/common/debug.h b/deps/zstd/lib/common/debug.h new file mode 100644 index 00000000000000..a16b69e5743938 --- /dev/null +++ b/deps/zstd/lib/common/debug.h @@ -0,0 +1,116 @@ +/* ****************************************************************** + * debug + * Part of FSE library + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * You can contact the author at : + * - Source repository : https://github.com/Cyan4973/FiniteStateEntropy + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. +****************************************************************** */ + + +/* + * The purpose of this header is to enable debug functions. + * They regroup assert(), DEBUGLOG() and RAWLOG() for run-time, + * and DEBUG_STATIC_ASSERT() for compile-time. + * + * By default, DEBUGLEVEL==0, which means run-time debug is disabled. + * + * Level 1 enables assert() only. + * Starting level 2, traces can be generated and pushed to stderr. + * The higher the level, the more verbose the traces. + * + * It's possible to dynamically adjust level using variable g_debug_level, + * which is only declared if DEBUGLEVEL>=2, + * and is a global variable, not multi-thread protected (use with care) + */ + +#ifndef DEBUG_H_12987983217 +#define DEBUG_H_12987983217 + +#if defined (__cplusplus) +extern "C" { +#endif + + +/* static assert is triggered at compile time, leaving no runtime artefact. + * static assert only works with compile-time constants. + * Also, this variant can only be used inside a function. */ +#define DEBUG_STATIC_ASSERT(c) (void)sizeof(char[(c) ? 1 : -1]) + + +/* DEBUGLEVEL is expected to be defined externally, + * typically through compiler command line. + * Value must be a number. */ +#ifndef DEBUGLEVEL +# define DEBUGLEVEL 0 +#endif + + +/* recommended values for DEBUGLEVEL : + * 0 : release mode, no debug, all run-time checks disabled + * 1 : enables assert() only, no display + * 2 : reserved, for currently active debug path + * 3 : events once per object lifetime (CCtx, CDict, etc.) + * 4 : events once per frame + * 5 : events once per block + * 6 : events once per sequence (verbose) + * 7+: events at every position (*very* verbose) + * + * It's generally inconvenient to output traces > 5. + * In which case, it's possible to selectively trigger high verbosity levels + * by modifying g_debug_level. + */ + +#if (DEBUGLEVEL>=1) +# define ZSTD_DEPS_NEED_ASSERT +# include "zstd_deps.h" +#else +# ifndef assert /* assert may be already defined, due to prior #include */ +# define assert(condition) ((void)0) /* disable assert (default) */ +# endif +#endif + +#if (DEBUGLEVEL>=2) +# define ZSTD_DEPS_NEED_IO +# include "zstd_deps.h" +extern int g_debuglevel; /* the variable is only declared, + it actually lives in debug.c, + and is shared by the whole process. + It's not thread-safe. + It's useful when enabling very verbose levels + on selective conditions (such as position in src) */ + +# define RAWLOG(l, ...) \ + do { \ + if (l<=g_debuglevel) { \ + ZSTD_DEBUG_PRINT(__VA_ARGS__); \ + } \ + } while (0) + +#define STRINGIFY(x) #x +#define TOSTRING(x) STRINGIFY(x) +#define LINE_AS_STRING TOSTRING(__LINE__) + +# define DEBUGLOG(l, ...) \ + do { \ + if (l<=g_debuglevel) { \ + ZSTD_DEBUG_PRINT(__FILE__ ":" LINE_AS_STRING ": " __VA_ARGS__); \ + ZSTD_DEBUG_PRINT(" \n"); \ + } \ + } while (0) +#else +# define RAWLOG(l, ...) do { } while (0) /* disabled */ +# define DEBUGLOG(l, ...) do { } while (0) /* disabled */ +#endif + + +#if defined (__cplusplus) +} +#endif + +#endif /* DEBUG_H_12987983217 */ diff --git a/deps/zstd/lib/common/entropy_common.c b/deps/zstd/lib/common/entropy_common.c new file mode 100644 index 00000000000000..e2173afb0a8b0c --- /dev/null +++ b/deps/zstd/lib/common/entropy_common.c @@ -0,0 +1,340 @@ +/* ****************************************************************** + * Common functions of New Generation Entropy library + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * You can contact the author at : + * - FSE+HUF source repository : https://github.com/Cyan4973/FiniteStateEntropy + * - Public forum : https://groups.google.com/forum/#!forum/lz4c + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. +****************************************************************** */ + +/* ************************************* +* Dependencies +***************************************/ +#include "mem.h" +#include "error_private.h" /* ERR_*, ERROR */ +#define FSE_STATIC_LINKING_ONLY /* FSE_MIN_TABLELOG */ +#include "fse.h" +#include "huf.h" +#include "bits.h" /* ZSDT_highbit32, ZSTD_countTrailingZeros32 */ + + +/*=== Version ===*/ +unsigned FSE_versionNumber(void) { return FSE_VERSION_NUMBER; } + + +/*=== Error Management ===*/ +unsigned FSE_isError(size_t code) { return ERR_isError(code); } +const char* FSE_getErrorName(size_t code) { return ERR_getErrorName(code); } + +unsigned HUF_isError(size_t code) { return ERR_isError(code); } +const char* HUF_getErrorName(size_t code) { return ERR_getErrorName(code); } + + +/*-************************************************************** +* FSE NCount encoding-decoding +****************************************************************/ +FORCE_INLINE_TEMPLATE +size_t FSE_readNCount_body(short* normalizedCounter, unsigned* maxSVPtr, unsigned* tableLogPtr, + const void* headerBuffer, size_t hbSize) +{ + const BYTE* const istart = (const BYTE*) headerBuffer; + const BYTE* const iend = istart + hbSize; + const BYTE* ip = istart; + int nbBits; + int remaining; + int threshold; + U32 bitStream; + int bitCount; + unsigned charnum = 0; + unsigned const maxSV1 = *maxSVPtr + 1; + int previous0 = 0; + + if (hbSize < 8) { + /* This function only works when hbSize >= 8 */ + char buffer[8] = {0}; + ZSTD_memcpy(buffer, headerBuffer, hbSize); + { size_t const countSize = FSE_readNCount(normalizedCounter, maxSVPtr, tableLogPtr, + buffer, sizeof(buffer)); + if (FSE_isError(countSize)) return countSize; + if (countSize > hbSize) return ERROR(corruption_detected); + return countSize; + } } + assert(hbSize >= 8); + + /* init */ + ZSTD_memset(normalizedCounter, 0, (*maxSVPtr+1) * sizeof(normalizedCounter[0])); /* all symbols not present in NCount have a frequency of 0 */ + bitStream = MEM_readLE32(ip); + nbBits = (bitStream & 0xF) + FSE_MIN_TABLELOG; /* extract tableLog */ + if (nbBits > FSE_TABLELOG_ABSOLUTE_MAX) return ERROR(tableLog_tooLarge); + bitStream >>= 4; + bitCount = 4; + *tableLogPtr = nbBits; + remaining = (1<> 1; + while (repeats >= 12) { + charnum += 3 * 12; + if (LIKELY(ip <= iend-7)) { + ip += 3; + } else { + bitCount -= (int)(8 * (iend - 7 - ip)); + bitCount &= 31; + ip = iend - 4; + } + bitStream = MEM_readLE32(ip) >> bitCount; + repeats = ZSTD_countTrailingZeros32(~bitStream | 0x80000000) >> 1; + } + charnum += 3 * repeats; + bitStream >>= 2 * repeats; + bitCount += 2 * repeats; + + /* Add the final repeat which isn't 0b11. */ + assert((bitStream & 3) < 3); + charnum += bitStream & 3; + bitCount += 2; + + /* This is an error, but break and return an error + * at the end, because returning out of a loop makes + * it harder for the compiler to optimize. + */ + if (charnum >= maxSV1) break; + + /* We don't need to set the normalized count to 0 + * because we already memset the whole buffer to 0. + */ + + if (LIKELY(ip <= iend-7) || (ip + (bitCount>>3) <= iend-4)) { + assert((bitCount >> 3) <= 3); /* For first condition to work */ + ip += bitCount>>3; + bitCount &= 7; + } else { + bitCount -= (int)(8 * (iend - 4 - ip)); + bitCount &= 31; + ip = iend - 4; + } + bitStream = MEM_readLE32(ip) >> bitCount; + } + { + int const max = (2*threshold-1) - remaining; + int count; + + if ((bitStream & (threshold-1)) < (U32)max) { + count = bitStream & (threshold-1); + bitCount += nbBits-1; + } else { + count = bitStream & (2*threshold-1); + if (count >= threshold) count -= max; + bitCount += nbBits; + } + + count--; /* extra accuracy */ + /* When it matters (small blocks), this is a + * predictable branch, because we don't use -1. + */ + if (count >= 0) { + remaining -= count; + } else { + assert(count == -1); + remaining += count; + } + normalizedCounter[charnum++] = (short)count; + previous0 = !count; + + assert(threshold > 1); + if (remaining < threshold) { + /* This branch can be folded into the + * threshold update condition because we + * know that threshold > 1. + */ + if (remaining <= 1) break; + nbBits = ZSTD_highbit32(remaining) + 1; + threshold = 1 << (nbBits - 1); + } + if (charnum >= maxSV1) break; + + if (LIKELY(ip <= iend-7) || (ip + (bitCount>>3) <= iend-4)) { + ip += bitCount>>3; + bitCount &= 7; + } else { + bitCount -= (int)(8 * (iend - 4 - ip)); + bitCount &= 31; + ip = iend - 4; + } + bitStream = MEM_readLE32(ip) >> bitCount; + } } + if (remaining != 1) return ERROR(corruption_detected); + /* Only possible when there are too many zeros. */ + if (charnum > maxSV1) return ERROR(maxSymbolValue_tooSmall); + if (bitCount > 32) return ERROR(corruption_detected); + *maxSVPtr = charnum-1; + + ip += (bitCount+7)>>3; + return ip-istart; +} + +/* Avoids the FORCE_INLINE of the _body() function. */ +static size_t FSE_readNCount_body_default( + short* normalizedCounter, unsigned* maxSVPtr, unsigned* tableLogPtr, + const void* headerBuffer, size_t hbSize) +{ + return FSE_readNCount_body(normalizedCounter, maxSVPtr, tableLogPtr, headerBuffer, hbSize); +} + +#if DYNAMIC_BMI2 +BMI2_TARGET_ATTRIBUTE static size_t FSE_readNCount_body_bmi2( + short* normalizedCounter, unsigned* maxSVPtr, unsigned* tableLogPtr, + const void* headerBuffer, size_t hbSize) +{ + return FSE_readNCount_body(normalizedCounter, maxSVPtr, tableLogPtr, headerBuffer, hbSize); +} +#endif + +size_t FSE_readNCount_bmi2( + short* normalizedCounter, unsigned* maxSVPtr, unsigned* tableLogPtr, + const void* headerBuffer, size_t hbSize, int bmi2) +{ +#if DYNAMIC_BMI2 + if (bmi2) { + return FSE_readNCount_body_bmi2(normalizedCounter, maxSVPtr, tableLogPtr, headerBuffer, hbSize); + } +#endif + (void)bmi2; + return FSE_readNCount_body_default(normalizedCounter, maxSVPtr, tableLogPtr, headerBuffer, hbSize); +} + +size_t FSE_readNCount( + short* normalizedCounter, unsigned* maxSVPtr, unsigned* tableLogPtr, + const void* headerBuffer, size_t hbSize) +{ + return FSE_readNCount_bmi2(normalizedCounter, maxSVPtr, tableLogPtr, headerBuffer, hbSize, /* bmi2 */ 0); +} + + +/*! HUF_readStats() : + Read compact Huffman tree, saved by HUF_writeCTable(). + `huffWeight` is destination buffer. + `rankStats` is assumed to be a table of at least HUF_TABLELOG_MAX U32. + @return : size read from `src` , or an error Code . + Note : Needed by HUF_readCTable() and HUF_readDTableX?() . +*/ +size_t HUF_readStats(BYTE* huffWeight, size_t hwSize, U32* rankStats, + U32* nbSymbolsPtr, U32* tableLogPtr, + const void* src, size_t srcSize) +{ + U32 wksp[HUF_READ_STATS_WORKSPACE_SIZE_U32]; + return HUF_readStats_wksp(huffWeight, hwSize, rankStats, nbSymbolsPtr, tableLogPtr, src, srcSize, wksp, sizeof(wksp), /* flags */ 0); +} + +FORCE_INLINE_TEMPLATE size_t +HUF_readStats_body(BYTE* huffWeight, size_t hwSize, U32* rankStats, + U32* nbSymbolsPtr, U32* tableLogPtr, + const void* src, size_t srcSize, + void* workSpace, size_t wkspSize, + int bmi2) +{ + U32 weightTotal; + const BYTE* ip = (const BYTE*) src; + size_t iSize; + size_t oSize; + + if (!srcSize) return ERROR(srcSize_wrong); + iSize = ip[0]; + /* ZSTD_memset(huffWeight, 0, hwSize); *//* is not necessary, even though some analyzer complain ... */ + + if (iSize >= 128) { /* special header */ + oSize = iSize - 127; + iSize = ((oSize+1)/2); + if (iSize+1 > srcSize) return ERROR(srcSize_wrong); + if (oSize >= hwSize) return ERROR(corruption_detected); + ip += 1; + { U32 n; + for (n=0; n> 4; + huffWeight[n+1] = ip[n/2] & 15; + } } } + else { /* header compressed with FSE (normal case) */ + if (iSize+1 > srcSize) return ERROR(srcSize_wrong); + /* max (hwSize-1) values decoded, as last one is implied */ + oSize = FSE_decompress_wksp_bmi2(huffWeight, hwSize-1, ip+1, iSize, 6, workSpace, wkspSize, bmi2); + if (FSE_isError(oSize)) return oSize; + } + + /* collect weight stats */ + ZSTD_memset(rankStats, 0, (HUF_TABLELOG_MAX + 1) * sizeof(U32)); + weightTotal = 0; + { U32 n; for (n=0; n HUF_TABLELOG_MAX) return ERROR(corruption_detected); + rankStats[huffWeight[n]]++; + weightTotal += (1 << huffWeight[n]) >> 1; + } } + if (weightTotal == 0) return ERROR(corruption_detected); + + /* get last non-null symbol weight (implied, total must be 2^n) */ + { U32 const tableLog = ZSTD_highbit32(weightTotal) + 1; + if (tableLog > HUF_TABLELOG_MAX) return ERROR(corruption_detected); + *tableLogPtr = tableLog; + /* determine last weight */ + { U32 const total = 1 << tableLog; + U32 const rest = total - weightTotal; + U32 const verif = 1 << ZSTD_highbit32(rest); + U32 const lastWeight = ZSTD_highbit32(rest) + 1; + if (verif != rest) return ERROR(corruption_detected); /* last value must be a clean power of 2 */ + huffWeight[oSize] = (BYTE)lastWeight; + rankStats[lastWeight]++; + } } + + /* check tree construction validity */ + if ((rankStats[1] < 2) || (rankStats[1] & 1)) return ERROR(corruption_detected); /* by construction : at least 2 elts of rank 1, must be even */ + + /* results */ + *nbSymbolsPtr = (U32)(oSize+1); + return iSize+1; +} + +/* Avoids the FORCE_INLINE of the _body() function. */ +static size_t HUF_readStats_body_default(BYTE* huffWeight, size_t hwSize, U32* rankStats, + U32* nbSymbolsPtr, U32* tableLogPtr, + const void* src, size_t srcSize, + void* workSpace, size_t wkspSize) +{ + return HUF_readStats_body(huffWeight, hwSize, rankStats, nbSymbolsPtr, tableLogPtr, src, srcSize, workSpace, wkspSize, 0); +} + +#if DYNAMIC_BMI2 +static BMI2_TARGET_ATTRIBUTE size_t HUF_readStats_body_bmi2(BYTE* huffWeight, size_t hwSize, U32* rankStats, + U32* nbSymbolsPtr, U32* tableLogPtr, + const void* src, size_t srcSize, + void* workSpace, size_t wkspSize) +{ + return HUF_readStats_body(huffWeight, hwSize, rankStats, nbSymbolsPtr, tableLogPtr, src, srcSize, workSpace, wkspSize, 1); +} +#endif + +size_t HUF_readStats_wksp(BYTE* huffWeight, size_t hwSize, U32* rankStats, + U32* nbSymbolsPtr, U32* tableLogPtr, + const void* src, size_t srcSize, + void* workSpace, size_t wkspSize, + int flags) +{ +#if DYNAMIC_BMI2 + if (flags & HUF_flags_bmi2) { + return HUF_readStats_body_bmi2(huffWeight, hwSize, rankStats, nbSymbolsPtr, tableLogPtr, src, srcSize, workSpace, wkspSize); + } +#endif + (void)flags; + return HUF_readStats_body_default(huffWeight, hwSize, rankStats, nbSymbolsPtr, tableLogPtr, src, srcSize, workSpace, wkspSize); +} diff --git a/deps/zstd/lib/common/error_private.c b/deps/zstd/lib/common/error_private.c new file mode 100644 index 00000000000000..075fc5ef42fab0 --- /dev/null +++ b/deps/zstd/lib/common/error_private.c @@ -0,0 +1,63 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/* The purpose of this file is to have a single list of error strings embedded in binary */ + +#include "error_private.h" + +const char* ERR_getErrorString(ERR_enum code) +{ +#ifdef ZSTD_STRIP_ERROR_STRINGS + (void)code; + return "Error strings stripped"; +#else + static const char* const notErrorCode = "Unspecified error code"; + switch( code ) + { + case PREFIX(no_error): return "No error detected"; + case PREFIX(GENERIC): return "Error (generic)"; + case PREFIX(prefix_unknown): return "Unknown frame descriptor"; + case PREFIX(version_unsupported): return "Version not supported"; + case PREFIX(frameParameter_unsupported): return "Unsupported frame parameter"; + case PREFIX(frameParameter_windowTooLarge): return "Frame requires too much memory for decoding"; + case PREFIX(corruption_detected): return "Data corruption detected"; + case PREFIX(checksum_wrong): return "Restored data doesn't match checksum"; + case PREFIX(literals_headerWrong): return "Header of Literals' block doesn't respect format specification"; + case PREFIX(parameter_unsupported): return "Unsupported parameter"; + case PREFIX(parameter_combination_unsupported): return "Unsupported combination of parameters"; + case PREFIX(parameter_outOfBound): return "Parameter is out of bound"; + case PREFIX(init_missing): return "Context should be init first"; + case PREFIX(memory_allocation): return "Allocation error : not enough memory"; + case PREFIX(workSpace_tooSmall): return "workSpace buffer is not large enough"; + case PREFIX(stage_wrong): return "Operation not authorized at current processing stage"; + case PREFIX(tableLog_tooLarge): return "tableLog requires too much memory : unsupported"; + case PREFIX(maxSymbolValue_tooLarge): return "Unsupported max Symbol Value : too large"; + case PREFIX(maxSymbolValue_tooSmall): return "Specified maxSymbolValue is too small"; + case PREFIX(stabilityCondition_notRespected): return "pledged buffer stability condition is not respected"; + case PREFIX(dictionary_corrupted): return "Dictionary is corrupted"; + case PREFIX(dictionary_wrong): return "Dictionary mismatch"; + case PREFIX(dictionaryCreation_failed): return "Cannot create Dictionary from provided samples"; + case PREFIX(dstSize_tooSmall): return "Destination buffer is too small"; + case PREFIX(srcSize_wrong): return "Src size is incorrect"; + case PREFIX(dstBuffer_null): return "Operation on NULL destination buffer"; + case PREFIX(noForwardProgress_destFull): return "Operation made no progress over multiple calls, due to output buffer being full"; + case PREFIX(noForwardProgress_inputEmpty): return "Operation made no progress over multiple calls, due to input being empty"; + /* following error codes are not stable and may be removed or changed in a future version */ + case PREFIX(frameIndex_tooLarge): return "Frame index is too large"; + case PREFIX(seekableIO): return "An I/O error occurred when reading/seeking"; + case PREFIX(dstBuffer_wrong): return "Destination buffer is wrong"; + case PREFIX(srcBuffer_wrong): return "Source buffer is wrong"; + case PREFIX(sequenceProducer_failed): return "Block-level external sequence producer returned an error code"; + case PREFIX(externalSequences_invalid): return "External sequences are not valid"; + case PREFIX(maxCode): + default: return notErrorCode; + } +#endif +} diff --git a/deps/zstd/lib/common/error_private.h b/deps/zstd/lib/common/error_private.h new file mode 100644 index 00000000000000..0156010c745931 --- /dev/null +++ b/deps/zstd/lib/common/error_private.h @@ -0,0 +1,168 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/* Note : this module is expected to remain private, do not expose it */ + +#ifndef ERROR_H_MODULE +#define ERROR_H_MODULE + +#if defined (__cplusplus) +extern "C" { +#endif + + +/* **************************************** +* Dependencies +******************************************/ +#include "../zstd_errors.h" /* enum list */ +#include "compiler.h" +#include "debug.h" +#include "zstd_deps.h" /* size_t */ + + +/* **************************************** +* Compiler-specific +******************************************/ +#if defined(__GNUC__) +# define ERR_STATIC static __attribute__((unused)) +#elif defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) +# define ERR_STATIC static inline +#elif defined(_MSC_VER) +# define ERR_STATIC static __inline +#else +# define ERR_STATIC static /* this version may generate warnings for unused static functions; disable the relevant warning */ +#endif + + +/*-**************************************** +* Customization (error_public.h) +******************************************/ +typedef ZSTD_ErrorCode ERR_enum; +#define PREFIX(name) ZSTD_error_##name + + +/*-**************************************** +* Error codes handling +******************************************/ +#undef ERROR /* already defined on Visual Studio */ +#define ERROR(name) ZSTD_ERROR(name) +#define ZSTD_ERROR(name) ((size_t)-PREFIX(name)) + +ERR_STATIC unsigned ERR_isError(size_t code) { return (code > ERROR(maxCode)); } + +ERR_STATIC ERR_enum ERR_getErrorCode(size_t code) { if (!ERR_isError(code)) return (ERR_enum)0; return (ERR_enum) (0-code); } + +/* check and forward error code */ +#define CHECK_V_F(e, f) \ + size_t const e = f; \ + do { \ + if (ERR_isError(e)) \ + return e; \ + } while (0) +#define CHECK_F(f) do { CHECK_V_F(_var_err__, f); } while (0) + + +/*-**************************************** +* Error Strings +******************************************/ + +const char* ERR_getErrorString(ERR_enum code); /* error_private.c */ + +ERR_STATIC const char* ERR_getErrorName(size_t code) +{ + return ERR_getErrorString(ERR_getErrorCode(code)); +} + +/** + * Ignore: this is an internal helper. + * + * This is a helper function to help force C99-correctness during compilation. + * Under strict compilation modes, variadic macro arguments can't be empty. + * However, variadic function arguments can be. Using a function therefore lets + * us statically check that at least one (string) argument was passed, + * independent of the compilation flags. + */ +static INLINE_KEYWORD UNUSED_ATTR +void _force_has_format_string(const char *format, ...) { + (void)format; +} + +/** + * Ignore: this is an internal helper. + * + * We want to force this function invocation to be syntactically correct, but + * we don't want to force runtime evaluation of its arguments. + */ +#define _FORCE_HAS_FORMAT_STRING(...) \ + do { \ + if (0) { \ + _force_has_format_string(__VA_ARGS__); \ + } \ + } while (0) + +#define ERR_QUOTE(str) #str + +/** + * Return the specified error if the condition evaluates to true. + * + * In debug modes, prints additional information. + * In order to do that (particularly, printing the conditional that failed), + * this can't just wrap RETURN_ERROR(). + */ +#define RETURN_ERROR_IF(cond, err, ...) \ + do { \ + if (cond) { \ + RAWLOG(3, "%s:%d: ERROR!: check %s failed, returning %s", \ + __FILE__, __LINE__, ERR_QUOTE(cond), ERR_QUOTE(ERROR(err))); \ + _FORCE_HAS_FORMAT_STRING(__VA_ARGS__); \ + RAWLOG(3, ": " __VA_ARGS__); \ + RAWLOG(3, "\n"); \ + return ERROR(err); \ + } \ + } while (0) + +/** + * Unconditionally return the specified error. + * + * In debug modes, prints additional information. + */ +#define RETURN_ERROR(err, ...) \ + do { \ + RAWLOG(3, "%s:%d: ERROR!: unconditional check failed, returning %s", \ + __FILE__, __LINE__, ERR_QUOTE(ERROR(err))); \ + _FORCE_HAS_FORMAT_STRING(__VA_ARGS__); \ + RAWLOG(3, ": " __VA_ARGS__); \ + RAWLOG(3, "\n"); \ + return ERROR(err); \ + } while(0) + +/** + * If the provided expression evaluates to an error code, returns that error code. + * + * In debug modes, prints additional information. + */ +#define FORWARD_IF_ERROR(err, ...) \ + do { \ + size_t const err_code = (err); \ + if (ERR_isError(err_code)) { \ + RAWLOG(3, "%s:%d: ERROR!: forwarding error in %s: %s", \ + __FILE__, __LINE__, ERR_QUOTE(err), ERR_getErrorName(err_code)); \ + _FORCE_HAS_FORMAT_STRING(__VA_ARGS__); \ + RAWLOG(3, ": " __VA_ARGS__); \ + RAWLOG(3, "\n"); \ + return err_code; \ + } \ + } while(0) + +#if defined (__cplusplus) +} +#endif + +#endif /* ERROR_H_MODULE */ diff --git a/deps/zstd/lib/common/fse.h b/deps/zstd/lib/common/fse.h new file mode 100644 index 00000000000000..2ae128e60db4c4 --- /dev/null +++ b/deps/zstd/lib/common/fse.h @@ -0,0 +1,640 @@ +/* ****************************************************************** + * FSE : Finite State Entropy codec + * Public Prototypes declaration + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * You can contact the author at : + * - Source repository : https://github.com/Cyan4973/FiniteStateEntropy + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. +****************************************************************** */ + +#if defined (__cplusplus) +extern "C" { +#endif + +#ifndef FSE_H +#define FSE_H + + +/*-***************************************** +* Dependencies +******************************************/ +#include "zstd_deps.h" /* size_t, ptrdiff_t */ + + +/*-***************************************** +* FSE_PUBLIC_API : control library symbols visibility +******************************************/ +#if defined(FSE_DLL_EXPORT) && (FSE_DLL_EXPORT==1) && defined(__GNUC__) && (__GNUC__ >= 4) +# define FSE_PUBLIC_API __attribute__ ((visibility ("default"))) +#elif defined(FSE_DLL_EXPORT) && (FSE_DLL_EXPORT==1) /* Visual expected */ +# define FSE_PUBLIC_API __declspec(dllexport) +#elif defined(FSE_DLL_IMPORT) && (FSE_DLL_IMPORT==1) +# define FSE_PUBLIC_API __declspec(dllimport) /* It isn't required but allows to generate better code, saving a function pointer load from the IAT and an indirect jump.*/ +#else +# define FSE_PUBLIC_API +#endif + +/*------ Version ------*/ +#define FSE_VERSION_MAJOR 0 +#define FSE_VERSION_MINOR 9 +#define FSE_VERSION_RELEASE 0 + +#define FSE_LIB_VERSION FSE_VERSION_MAJOR.FSE_VERSION_MINOR.FSE_VERSION_RELEASE +#define FSE_QUOTE(str) #str +#define FSE_EXPAND_AND_QUOTE(str) FSE_QUOTE(str) +#define FSE_VERSION_STRING FSE_EXPAND_AND_QUOTE(FSE_LIB_VERSION) + +#define FSE_VERSION_NUMBER (FSE_VERSION_MAJOR *100*100 + FSE_VERSION_MINOR *100 + FSE_VERSION_RELEASE) +FSE_PUBLIC_API unsigned FSE_versionNumber(void); /**< library version number; to be used when checking dll version */ + + +/*-***************************************** +* Tool functions +******************************************/ +FSE_PUBLIC_API size_t FSE_compressBound(size_t size); /* maximum compressed size */ + +/* Error Management */ +FSE_PUBLIC_API unsigned FSE_isError(size_t code); /* tells if a return value is an error code */ +FSE_PUBLIC_API const char* FSE_getErrorName(size_t code); /* provides error code string (useful for debugging) */ + + +/*-***************************************** +* FSE detailed API +******************************************/ +/*! +FSE_compress() does the following: +1. count symbol occurrence from source[] into table count[] (see hist.h) +2. normalize counters so that sum(count[]) == Power_of_2 (2^tableLog) +3. save normalized counters to memory buffer using writeNCount() +4. build encoding table 'CTable' from normalized counters +5. encode the data stream using encoding table 'CTable' + +FSE_decompress() does the following: +1. read normalized counters with readNCount() +2. build decoding table 'DTable' from normalized counters +3. decode the data stream using decoding table 'DTable' + +The following API allows targeting specific sub-functions for advanced tasks. +For example, it's possible to compress several blocks using the same 'CTable', +or to save and provide normalized distribution using external method. +*/ + +/* *** COMPRESSION *** */ + +/*! FSE_optimalTableLog(): + dynamically downsize 'tableLog' when conditions are met. + It saves CPU time, by using smaller tables, while preserving or even improving compression ratio. + @return : recommended tableLog (necessarily <= 'maxTableLog') */ +FSE_PUBLIC_API unsigned FSE_optimalTableLog(unsigned maxTableLog, size_t srcSize, unsigned maxSymbolValue); + +/*! FSE_normalizeCount(): + normalize counts so that sum(count[]) == Power_of_2 (2^tableLog) + 'normalizedCounter' is a table of short, of minimum size (maxSymbolValue+1). + useLowProbCount is a boolean parameter which trades off compressed size for + faster header decoding. When it is set to 1, the compressed data will be slightly + smaller. And when it is set to 0, FSE_readNCount() and FSE_buildDTable() will be + faster. If you are compressing a small amount of data (< 2 KB) then useLowProbCount=0 + is a good default, since header deserialization makes a big speed difference. + Otherwise, useLowProbCount=1 is a good default, since the speed difference is small. + @return : tableLog, + or an errorCode, which can be tested using FSE_isError() */ +FSE_PUBLIC_API size_t FSE_normalizeCount(short* normalizedCounter, unsigned tableLog, + const unsigned* count, size_t srcSize, unsigned maxSymbolValue, unsigned useLowProbCount); + +/*! FSE_NCountWriteBound(): + Provides the maximum possible size of an FSE normalized table, given 'maxSymbolValue' and 'tableLog'. + Typically useful for allocation purpose. */ +FSE_PUBLIC_API size_t FSE_NCountWriteBound(unsigned maxSymbolValue, unsigned tableLog); + +/*! FSE_writeNCount(): + Compactly save 'normalizedCounter' into 'buffer'. + @return : size of the compressed table, + or an errorCode, which can be tested using FSE_isError(). */ +FSE_PUBLIC_API size_t FSE_writeNCount (void* buffer, size_t bufferSize, + const short* normalizedCounter, + unsigned maxSymbolValue, unsigned tableLog); + +/*! Constructor and Destructor of FSE_CTable. + Note that FSE_CTable size depends on 'tableLog' and 'maxSymbolValue' */ +typedef unsigned FSE_CTable; /* don't allocate that. It's only meant to be more restrictive than void* */ + +/*! FSE_buildCTable(): + Builds `ct`, which must be already allocated, using FSE_createCTable(). + @return : 0, or an errorCode, which can be tested using FSE_isError() */ +FSE_PUBLIC_API size_t FSE_buildCTable(FSE_CTable* ct, const short* normalizedCounter, unsigned maxSymbolValue, unsigned tableLog); + +/*! FSE_compress_usingCTable(): + Compress `src` using `ct` into `dst` which must be already allocated. + @return : size of compressed data (<= `dstCapacity`), + or 0 if compressed data could not fit into `dst`, + or an errorCode, which can be tested using FSE_isError() */ +FSE_PUBLIC_API size_t FSE_compress_usingCTable (void* dst, size_t dstCapacity, const void* src, size_t srcSize, const FSE_CTable* ct); + +/*! +Tutorial : +---------- +The first step is to count all symbols. FSE_count() does this job very fast. +Result will be saved into 'count', a table of unsigned int, which must be already allocated, and have 'maxSymbolValuePtr[0]+1' cells. +'src' is a table of bytes of size 'srcSize'. All values within 'src' MUST be <= maxSymbolValuePtr[0] +maxSymbolValuePtr[0] will be updated, with its real value (necessarily <= original value) +FSE_count() will return the number of occurrence of the most frequent symbol. +This can be used to know if there is a single symbol within 'src', and to quickly evaluate its compressibility. +If there is an error, the function will return an ErrorCode (which can be tested using FSE_isError()). + +The next step is to normalize the frequencies. +FSE_normalizeCount() will ensure that sum of frequencies is == 2 ^'tableLog'. +It also guarantees a minimum of 1 to any Symbol with frequency >= 1. +You can use 'tableLog'==0 to mean "use default tableLog value". +If you are unsure of which tableLog value to use, you can ask FSE_optimalTableLog(), +which will provide the optimal valid tableLog given sourceSize, maxSymbolValue, and a user-defined maximum (0 means "default"). + +The result of FSE_normalizeCount() will be saved into a table, +called 'normalizedCounter', which is a table of signed short. +'normalizedCounter' must be already allocated, and have at least 'maxSymbolValue+1' cells. +The return value is tableLog if everything proceeded as expected. +It is 0 if there is a single symbol within distribution. +If there is an error (ex: invalid tableLog value), the function will return an ErrorCode (which can be tested using FSE_isError()). + +'normalizedCounter' can be saved in a compact manner to a memory area using FSE_writeNCount(). +'buffer' must be already allocated. +For guaranteed success, buffer size must be at least FSE_headerBound(). +The result of the function is the number of bytes written into 'buffer'. +If there is an error, the function will return an ErrorCode (which can be tested using FSE_isError(); ex : buffer size too small). + +'normalizedCounter' can then be used to create the compression table 'CTable'. +The space required by 'CTable' must be already allocated, using FSE_createCTable(). +You can then use FSE_buildCTable() to fill 'CTable'. +If there is an error, both functions will return an ErrorCode (which can be tested using FSE_isError()). + +'CTable' can then be used to compress 'src', with FSE_compress_usingCTable(). +Similar to FSE_count(), the convention is that 'src' is assumed to be a table of char of size 'srcSize' +The function returns the size of compressed data (without header), necessarily <= `dstCapacity`. +If it returns '0', compressed data could not fit into 'dst'. +If there is an error, the function will return an ErrorCode (which can be tested using FSE_isError()). +*/ + + +/* *** DECOMPRESSION *** */ + +/*! FSE_readNCount(): + Read compactly saved 'normalizedCounter' from 'rBuffer'. + @return : size read from 'rBuffer', + or an errorCode, which can be tested using FSE_isError(). + maxSymbolValuePtr[0] and tableLogPtr[0] will also be updated with their respective values */ +FSE_PUBLIC_API size_t FSE_readNCount (short* normalizedCounter, + unsigned* maxSymbolValuePtr, unsigned* tableLogPtr, + const void* rBuffer, size_t rBuffSize); + +/*! FSE_readNCount_bmi2(): + * Same as FSE_readNCount() but pass bmi2=1 when your CPU supports BMI2 and 0 otherwise. + */ +FSE_PUBLIC_API size_t FSE_readNCount_bmi2(short* normalizedCounter, + unsigned* maxSymbolValuePtr, unsigned* tableLogPtr, + const void* rBuffer, size_t rBuffSize, int bmi2); + +typedef unsigned FSE_DTable; /* don't allocate that. It's just a way to be more restrictive than void* */ + +/*! +Tutorial : +---------- +(Note : these functions only decompress FSE-compressed blocks. + If block is uncompressed, use memcpy() instead + If block is a single repeated byte, use memset() instead ) + +The first step is to obtain the normalized frequencies of symbols. +This can be performed by FSE_readNCount() if it was saved using FSE_writeNCount(). +'normalizedCounter' must be already allocated, and have at least 'maxSymbolValuePtr[0]+1' cells of signed short. +In practice, that means it's necessary to know 'maxSymbolValue' beforehand, +or size the table to handle worst case situations (typically 256). +FSE_readNCount() will provide 'tableLog' and 'maxSymbolValue'. +The result of FSE_readNCount() is the number of bytes read from 'rBuffer'. +Note that 'rBufferSize' must be at least 4 bytes, even if useful information is less than that. +If there is an error, the function will return an error code, which can be tested using FSE_isError(). + +The next step is to build the decompression tables 'FSE_DTable' from 'normalizedCounter'. +This is performed by the function FSE_buildDTable(). +The space required by 'FSE_DTable' must be already allocated using FSE_createDTable(). +If there is an error, the function will return an error code, which can be tested using FSE_isError(). + +`FSE_DTable` can then be used to decompress `cSrc`, with FSE_decompress_usingDTable(). +`cSrcSize` must be strictly correct, otherwise decompression will fail. +FSE_decompress_usingDTable() result will tell how many bytes were regenerated (<=`dstCapacity`). +If there is an error, the function will return an error code, which can be tested using FSE_isError(). (ex: dst buffer too small) +*/ + +#endif /* FSE_H */ + + +#if defined(FSE_STATIC_LINKING_ONLY) && !defined(FSE_H_FSE_STATIC_LINKING_ONLY) +#define FSE_H_FSE_STATIC_LINKING_ONLY + +/* *** Dependency *** */ +#include "bitstream.h" + + +/* ***************************************** +* Static allocation +*******************************************/ +/* FSE buffer bounds */ +#define FSE_NCOUNTBOUND 512 +#define FSE_BLOCKBOUND(size) ((size) + ((size)>>7) + 4 /* fse states */ + sizeof(size_t) /* bitContainer */) +#define FSE_COMPRESSBOUND(size) (FSE_NCOUNTBOUND + FSE_BLOCKBOUND(size)) /* Macro version, useful for static allocation */ + +/* It is possible to statically allocate FSE CTable/DTable as a table of FSE_CTable/FSE_DTable using below macros */ +#define FSE_CTABLE_SIZE_U32(maxTableLog, maxSymbolValue) (1 + (1<<((maxTableLog)-1)) + (((maxSymbolValue)+1)*2)) +#define FSE_DTABLE_SIZE_U32(maxTableLog) (1 + (1<<(maxTableLog))) + +/* or use the size to malloc() space directly. Pay attention to alignment restrictions though */ +#define FSE_CTABLE_SIZE(maxTableLog, maxSymbolValue) (FSE_CTABLE_SIZE_U32(maxTableLog, maxSymbolValue) * sizeof(FSE_CTable)) +#define FSE_DTABLE_SIZE(maxTableLog) (FSE_DTABLE_SIZE_U32(maxTableLog) * sizeof(FSE_DTable)) + + +/* ***************************************** + * FSE advanced API + ***************************************** */ + +unsigned FSE_optimalTableLog_internal(unsigned maxTableLog, size_t srcSize, unsigned maxSymbolValue, unsigned minus); +/**< same as FSE_optimalTableLog(), which used `minus==2` */ + +size_t FSE_buildCTable_rle (FSE_CTable* ct, unsigned char symbolValue); +/**< build a fake FSE_CTable, designed to compress always the same symbolValue */ + +/* FSE_buildCTable_wksp() : + * Same as FSE_buildCTable(), but using an externally allocated scratch buffer (`workSpace`). + * `wkspSize` must be >= `FSE_BUILD_CTABLE_WORKSPACE_SIZE_U32(maxSymbolValue, tableLog)` of `unsigned`. + * See FSE_buildCTable_wksp() for breakdown of workspace usage. + */ +#define FSE_BUILD_CTABLE_WORKSPACE_SIZE_U32(maxSymbolValue, tableLog) (((maxSymbolValue + 2) + (1ull << (tableLog)))/2 + sizeof(U64)/sizeof(U32) /* additional 8 bytes for potential table overwrite */) +#define FSE_BUILD_CTABLE_WORKSPACE_SIZE(maxSymbolValue, tableLog) (sizeof(unsigned) * FSE_BUILD_CTABLE_WORKSPACE_SIZE_U32(maxSymbolValue, tableLog)) +size_t FSE_buildCTable_wksp(FSE_CTable* ct, const short* normalizedCounter, unsigned maxSymbolValue, unsigned tableLog, void* workSpace, size_t wkspSize); + +#define FSE_BUILD_DTABLE_WKSP_SIZE(maxTableLog, maxSymbolValue) (sizeof(short) * (maxSymbolValue + 1) + (1ULL << maxTableLog) + 8) +#define FSE_BUILD_DTABLE_WKSP_SIZE_U32(maxTableLog, maxSymbolValue) ((FSE_BUILD_DTABLE_WKSP_SIZE(maxTableLog, maxSymbolValue) + sizeof(unsigned) - 1) / sizeof(unsigned)) +FSE_PUBLIC_API size_t FSE_buildDTable_wksp(FSE_DTable* dt, const short* normalizedCounter, unsigned maxSymbolValue, unsigned tableLog, void* workSpace, size_t wkspSize); +/**< Same as FSE_buildDTable(), using an externally allocated `workspace` produced with `FSE_BUILD_DTABLE_WKSP_SIZE_U32(maxSymbolValue)` */ + +#define FSE_DECOMPRESS_WKSP_SIZE_U32(maxTableLog, maxSymbolValue) (FSE_DTABLE_SIZE_U32(maxTableLog) + 1 + FSE_BUILD_DTABLE_WKSP_SIZE_U32(maxTableLog, maxSymbolValue) + (FSE_MAX_SYMBOL_VALUE + 1) / 2 + 1) +#define FSE_DECOMPRESS_WKSP_SIZE(maxTableLog, maxSymbolValue) (FSE_DECOMPRESS_WKSP_SIZE_U32(maxTableLog, maxSymbolValue) * sizeof(unsigned)) +size_t FSE_decompress_wksp_bmi2(void* dst, size_t dstCapacity, const void* cSrc, size_t cSrcSize, unsigned maxLog, void* workSpace, size_t wkspSize, int bmi2); +/**< same as FSE_decompress(), using an externally allocated `workSpace` produced with `FSE_DECOMPRESS_WKSP_SIZE_U32(maxLog, maxSymbolValue)`. + * Set bmi2 to 1 if your CPU supports BMI2 or 0 if it doesn't */ + +typedef enum { + FSE_repeat_none, /**< Cannot use the previous table */ + FSE_repeat_check, /**< Can use the previous table but it must be checked */ + FSE_repeat_valid /**< Can use the previous table and it is assumed to be valid */ + } FSE_repeat; + +/* ***************************************** +* FSE symbol compression API +*******************************************/ +/*! + This API consists of small unitary functions, which highly benefit from being inlined. + Hence their body are included in next section. +*/ +typedef struct { + ptrdiff_t value; + const void* stateTable; + const void* symbolTT; + unsigned stateLog; +} FSE_CState_t; + +static void FSE_initCState(FSE_CState_t* CStatePtr, const FSE_CTable* ct); + +static void FSE_encodeSymbol(BIT_CStream_t* bitC, FSE_CState_t* CStatePtr, unsigned symbol); + +static void FSE_flushCState(BIT_CStream_t* bitC, const FSE_CState_t* CStatePtr); + +/**< +These functions are inner components of FSE_compress_usingCTable(). +They allow the creation of custom streams, mixing multiple tables and bit sources. + +A key property to keep in mind is that encoding and decoding are done **in reverse direction**. +So the first symbol you will encode is the last you will decode, like a LIFO stack. + +You will need a few variables to track your CStream. They are : + +FSE_CTable ct; // Provided by FSE_buildCTable() +BIT_CStream_t bitStream; // bitStream tracking structure +FSE_CState_t state; // State tracking structure (can have several) + + +The first thing to do is to init bitStream and state. + size_t errorCode = BIT_initCStream(&bitStream, dstBuffer, maxDstSize); + FSE_initCState(&state, ct); + +Note that BIT_initCStream() can produce an error code, so its result should be tested, using FSE_isError(); +You can then encode your input data, byte after byte. +FSE_encodeSymbol() outputs a maximum of 'tableLog' bits at a time. +Remember decoding will be done in reverse direction. + FSE_encodeByte(&bitStream, &state, symbol); + +At any time, you can also add any bit sequence. +Note : maximum allowed nbBits is 25, for compatibility with 32-bits decoders + BIT_addBits(&bitStream, bitField, nbBits); + +The above methods don't commit data to memory, they just store it into local register, for speed. +Local register size is 64-bits on 64-bits systems, 32-bits on 32-bits systems (size_t). +Writing data to memory is a manual operation, performed by the flushBits function. + BIT_flushBits(&bitStream); + +Your last FSE encoding operation shall be to flush your last state value(s). + FSE_flushState(&bitStream, &state); + +Finally, you must close the bitStream. +The function returns the size of CStream in bytes. +If data couldn't fit into dstBuffer, it will return a 0 ( == not compressible) +If there is an error, it returns an errorCode (which can be tested using FSE_isError()). + size_t size = BIT_closeCStream(&bitStream); +*/ + + +/* ***************************************** +* FSE symbol decompression API +*******************************************/ +typedef struct { + size_t state; + const void* table; /* precise table may vary, depending on U16 */ +} FSE_DState_t; + + +static void FSE_initDState(FSE_DState_t* DStatePtr, BIT_DStream_t* bitD, const FSE_DTable* dt); + +static unsigned char FSE_decodeSymbol(FSE_DState_t* DStatePtr, BIT_DStream_t* bitD); + +static unsigned FSE_endOfDState(const FSE_DState_t* DStatePtr); + +/**< +Let's now decompose FSE_decompress_usingDTable() into its unitary components. +You will decode FSE-encoded symbols from the bitStream, +and also any other bitFields you put in, **in reverse order**. + +You will need a few variables to track your bitStream. They are : + +BIT_DStream_t DStream; // Stream context +FSE_DState_t DState; // State context. Multiple ones are possible +FSE_DTable* DTablePtr; // Decoding table, provided by FSE_buildDTable() + +The first thing to do is to init the bitStream. + errorCode = BIT_initDStream(&DStream, srcBuffer, srcSize); + +You should then retrieve your initial state(s) +(in reverse flushing order if you have several ones) : + errorCode = FSE_initDState(&DState, &DStream, DTablePtr); + +You can then decode your data, symbol after symbol. +For information the maximum number of bits read by FSE_decodeSymbol() is 'tableLog'. +Keep in mind that symbols are decoded in reverse order, like a LIFO stack (last in, first out). + unsigned char symbol = FSE_decodeSymbol(&DState, &DStream); + +You can retrieve any bitfield you eventually stored into the bitStream (in reverse order) +Note : maximum allowed nbBits is 25, for 32-bits compatibility + size_t bitField = BIT_readBits(&DStream, nbBits); + +All above operations only read from local register (which size depends on size_t). +Refueling the register from memory is manually performed by the reload method. + endSignal = FSE_reloadDStream(&DStream); + +BIT_reloadDStream() result tells if there is still some more data to read from DStream. +BIT_DStream_unfinished : there is still some data left into the DStream. +BIT_DStream_endOfBuffer : Dstream reached end of buffer. Its container may no longer be completely filled. +BIT_DStream_completed : Dstream reached its exact end, corresponding in general to decompression completed. +BIT_DStream_tooFar : Dstream went too far. Decompression result is corrupted. + +When reaching end of buffer (BIT_DStream_endOfBuffer), progress slowly, notably if you decode multiple symbols per loop, +to properly detect the exact end of stream. +After each decoded symbol, check if DStream is fully consumed using this simple test : + BIT_reloadDStream(&DStream) >= BIT_DStream_completed + +When it's done, verify decompression is fully completed, by checking both DStream and the relevant states. +Checking if DStream has reached its end is performed by : + BIT_endOfDStream(&DStream); +Check also the states. There might be some symbols left there, if some high probability ones (>50%) are possible. + FSE_endOfDState(&DState); +*/ + + +/* ***************************************** +* FSE unsafe API +*******************************************/ +static unsigned char FSE_decodeSymbolFast(FSE_DState_t* DStatePtr, BIT_DStream_t* bitD); +/* faster, but works only if nbBits is always >= 1 (otherwise, result will be corrupted) */ + + +/* ***************************************** +* Implementation of inlined functions +*******************************************/ +typedef struct { + int deltaFindState; + U32 deltaNbBits; +} FSE_symbolCompressionTransform; /* total 8 bytes */ + +MEM_STATIC void FSE_initCState(FSE_CState_t* statePtr, const FSE_CTable* ct) +{ + const void* ptr = ct; + const U16* u16ptr = (const U16*) ptr; + const U32 tableLog = MEM_read16(ptr); + statePtr->value = (ptrdiff_t)1<stateTable = u16ptr+2; + statePtr->symbolTT = ct + 1 + (tableLog ? (1<<(tableLog-1)) : 1); + statePtr->stateLog = tableLog; +} + + +/*! FSE_initCState2() : +* Same as FSE_initCState(), but the first symbol to include (which will be the last to be read) +* uses the smallest state value possible, saving the cost of this symbol */ +MEM_STATIC void FSE_initCState2(FSE_CState_t* statePtr, const FSE_CTable* ct, U32 symbol) +{ + FSE_initCState(statePtr, ct); + { const FSE_symbolCompressionTransform symbolTT = ((const FSE_symbolCompressionTransform*)(statePtr->symbolTT))[symbol]; + const U16* stateTable = (const U16*)(statePtr->stateTable); + U32 nbBitsOut = (U32)((symbolTT.deltaNbBits + (1<<15)) >> 16); + statePtr->value = (nbBitsOut << 16) - symbolTT.deltaNbBits; + statePtr->value = stateTable[(statePtr->value >> nbBitsOut) + symbolTT.deltaFindState]; + } +} + +MEM_STATIC void FSE_encodeSymbol(BIT_CStream_t* bitC, FSE_CState_t* statePtr, unsigned symbol) +{ + FSE_symbolCompressionTransform const symbolTT = ((const FSE_symbolCompressionTransform*)(statePtr->symbolTT))[symbol]; + const U16* const stateTable = (const U16*)(statePtr->stateTable); + U32 const nbBitsOut = (U32)((statePtr->value + symbolTT.deltaNbBits) >> 16); + BIT_addBits(bitC, (size_t)statePtr->value, nbBitsOut); + statePtr->value = stateTable[ (statePtr->value >> nbBitsOut) + symbolTT.deltaFindState]; +} + +MEM_STATIC void FSE_flushCState(BIT_CStream_t* bitC, const FSE_CState_t* statePtr) +{ + BIT_addBits(bitC, (size_t)statePtr->value, statePtr->stateLog); + BIT_flushBits(bitC); +} + + +/* FSE_getMaxNbBits() : + * Approximate maximum cost of a symbol, in bits. + * Fractional get rounded up (i.e. a symbol with a normalized frequency of 3 gives the same result as a frequency of 2) + * note 1 : assume symbolValue is valid (<= maxSymbolValue) + * note 2 : if freq[symbolValue]==0, @return a fake cost of tableLog+1 bits */ +MEM_STATIC U32 FSE_getMaxNbBits(const void* symbolTTPtr, U32 symbolValue) +{ + const FSE_symbolCompressionTransform* symbolTT = (const FSE_symbolCompressionTransform*) symbolTTPtr; + return (symbolTT[symbolValue].deltaNbBits + ((1<<16)-1)) >> 16; +} + +/* FSE_bitCost() : + * Approximate symbol cost, as fractional value, using fixed-point format (accuracyLog fractional bits) + * note 1 : assume symbolValue is valid (<= maxSymbolValue) + * note 2 : if freq[symbolValue]==0, @return a fake cost of tableLog+1 bits */ +MEM_STATIC U32 FSE_bitCost(const void* symbolTTPtr, U32 tableLog, U32 symbolValue, U32 accuracyLog) +{ + const FSE_symbolCompressionTransform* symbolTT = (const FSE_symbolCompressionTransform*) symbolTTPtr; + U32 const minNbBits = symbolTT[symbolValue].deltaNbBits >> 16; + U32 const threshold = (minNbBits+1) << 16; + assert(tableLog < 16); + assert(accuracyLog < 31-tableLog); /* ensure enough room for renormalization double shift */ + { U32 const tableSize = 1 << tableLog; + U32 const deltaFromThreshold = threshold - (symbolTT[symbolValue].deltaNbBits + tableSize); + U32 const normalizedDeltaFromThreshold = (deltaFromThreshold << accuracyLog) >> tableLog; /* linear interpolation (very approximate) */ + U32 const bitMultiplier = 1 << accuracyLog; + assert(symbolTT[symbolValue].deltaNbBits + tableSize <= threshold); + assert(normalizedDeltaFromThreshold <= bitMultiplier); + return (minNbBits+1)*bitMultiplier - normalizedDeltaFromThreshold; + } +} + + +/* ====== Decompression ====== */ + +typedef struct { + U16 tableLog; + U16 fastMode; +} FSE_DTableHeader; /* sizeof U32 */ + +typedef struct +{ + unsigned short newState; + unsigned char symbol; + unsigned char nbBits; +} FSE_decode_t; /* size == U32 */ + +MEM_STATIC void FSE_initDState(FSE_DState_t* DStatePtr, BIT_DStream_t* bitD, const FSE_DTable* dt) +{ + const void* ptr = dt; + const FSE_DTableHeader* const DTableH = (const FSE_DTableHeader*)ptr; + DStatePtr->state = BIT_readBits(bitD, DTableH->tableLog); + BIT_reloadDStream(bitD); + DStatePtr->table = dt + 1; +} + +MEM_STATIC BYTE FSE_peekSymbol(const FSE_DState_t* DStatePtr) +{ + FSE_decode_t const DInfo = ((const FSE_decode_t*)(DStatePtr->table))[DStatePtr->state]; + return DInfo.symbol; +} + +MEM_STATIC void FSE_updateState(FSE_DState_t* DStatePtr, BIT_DStream_t* bitD) +{ + FSE_decode_t const DInfo = ((const FSE_decode_t*)(DStatePtr->table))[DStatePtr->state]; + U32 const nbBits = DInfo.nbBits; + size_t const lowBits = BIT_readBits(bitD, nbBits); + DStatePtr->state = DInfo.newState + lowBits; +} + +MEM_STATIC BYTE FSE_decodeSymbol(FSE_DState_t* DStatePtr, BIT_DStream_t* bitD) +{ + FSE_decode_t const DInfo = ((const FSE_decode_t*)(DStatePtr->table))[DStatePtr->state]; + U32 const nbBits = DInfo.nbBits; + BYTE const symbol = DInfo.symbol; + size_t const lowBits = BIT_readBits(bitD, nbBits); + + DStatePtr->state = DInfo.newState + lowBits; + return symbol; +} + +/*! FSE_decodeSymbolFast() : + unsafe, only works if no symbol has a probability > 50% */ +MEM_STATIC BYTE FSE_decodeSymbolFast(FSE_DState_t* DStatePtr, BIT_DStream_t* bitD) +{ + FSE_decode_t const DInfo = ((const FSE_decode_t*)(DStatePtr->table))[DStatePtr->state]; + U32 const nbBits = DInfo.nbBits; + BYTE const symbol = DInfo.symbol; + size_t const lowBits = BIT_readBitsFast(bitD, nbBits); + + DStatePtr->state = DInfo.newState + lowBits; + return symbol; +} + +MEM_STATIC unsigned FSE_endOfDState(const FSE_DState_t* DStatePtr) +{ + return DStatePtr->state == 0; +} + + + +#ifndef FSE_COMMONDEFS_ONLY + +/* ************************************************************** +* Tuning parameters +****************************************************************/ +/*!MEMORY_USAGE : +* Memory usage formula : N->2^N Bytes (examples : 10 -> 1KB; 12 -> 4KB ; 16 -> 64KB; 20 -> 1MB; etc.) +* Increasing memory usage improves compression ratio +* Reduced memory usage can improve speed, due to cache effect +* Recommended max value is 14, for 16KB, which nicely fits into Intel x86 L1 cache */ +#ifndef FSE_MAX_MEMORY_USAGE +# define FSE_MAX_MEMORY_USAGE 14 +#endif +#ifndef FSE_DEFAULT_MEMORY_USAGE +# define FSE_DEFAULT_MEMORY_USAGE 13 +#endif +#if (FSE_DEFAULT_MEMORY_USAGE > FSE_MAX_MEMORY_USAGE) +# error "FSE_DEFAULT_MEMORY_USAGE must be <= FSE_MAX_MEMORY_USAGE" +#endif + +/*!FSE_MAX_SYMBOL_VALUE : +* Maximum symbol value authorized. +* Required for proper stack allocation */ +#ifndef FSE_MAX_SYMBOL_VALUE +# define FSE_MAX_SYMBOL_VALUE 255 +#endif + +/* ************************************************************** +* template functions type & suffix +****************************************************************/ +#define FSE_FUNCTION_TYPE BYTE +#define FSE_FUNCTION_EXTENSION +#define FSE_DECODE_TYPE FSE_decode_t + + +#endif /* !FSE_COMMONDEFS_ONLY */ + + +/* *************************************************************** +* Constants +*****************************************************************/ +#define FSE_MAX_TABLELOG (FSE_MAX_MEMORY_USAGE-2) +#define FSE_MAX_TABLESIZE (1U< FSE_TABLELOG_ABSOLUTE_MAX +# error "FSE_MAX_TABLELOG > FSE_TABLELOG_ABSOLUTE_MAX is not supported" +#endif + +#define FSE_TABLESTEP(tableSize) (((tableSize)>>1) + ((tableSize)>>3) + 3) + + +#endif /* FSE_STATIC_LINKING_ONLY */ + + +#if defined (__cplusplus) +} +#endif diff --git a/deps/zstd/lib/common/fse_decompress.c b/deps/zstd/lib/common/fse_decompress.c new file mode 100644 index 00000000000000..0dcc4640d09216 --- /dev/null +++ b/deps/zstd/lib/common/fse_decompress.c @@ -0,0 +1,313 @@ +/* ****************************************************************** + * FSE : Finite State Entropy decoder + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * You can contact the author at : + * - FSE source repository : https://github.com/Cyan4973/FiniteStateEntropy + * - Public forum : https://groups.google.com/forum/#!forum/lz4c + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. +****************************************************************** */ + + +/* ************************************************************** +* Includes +****************************************************************/ +#include "debug.h" /* assert */ +#include "bitstream.h" +#include "compiler.h" +#define FSE_STATIC_LINKING_ONLY +#include "fse.h" +#include "error_private.h" +#include "zstd_deps.h" /* ZSTD_memcpy */ +#include "bits.h" /* ZSTD_highbit32 */ + + +/* ************************************************************** +* Error Management +****************************************************************/ +#define FSE_isError ERR_isError +#define FSE_STATIC_ASSERT(c) DEBUG_STATIC_ASSERT(c) /* use only *after* variable declarations */ + + +/* ************************************************************** +* Templates +****************************************************************/ +/* + designed to be included + for type-specific functions (template emulation in C) + Objective is to write these functions only once, for improved maintenance +*/ + +/* safety checks */ +#ifndef FSE_FUNCTION_EXTENSION +# error "FSE_FUNCTION_EXTENSION must be defined" +#endif +#ifndef FSE_FUNCTION_TYPE +# error "FSE_FUNCTION_TYPE must be defined" +#endif + +/* Function names */ +#define FSE_CAT(X,Y) X##Y +#define FSE_FUNCTION_NAME(X,Y) FSE_CAT(X,Y) +#define FSE_TYPE_NAME(X,Y) FSE_CAT(X,Y) + +static size_t FSE_buildDTable_internal(FSE_DTable* dt, const short* normalizedCounter, unsigned maxSymbolValue, unsigned tableLog, void* workSpace, size_t wkspSize) +{ + void* const tdPtr = dt+1; /* because *dt is unsigned, 32-bits aligned on 32-bits */ + FSE_DECODE_TYPE* const tableDecode = (FSE_DECODE_TYPE*) (tdPtr); + U16* symbolNext = (U16*)workSpace; + BYTE* spread = (BYTE*)(symbolNext + maxSymbolValue + 1); + + U32 const maxSV1 = maxSymbolValue + 1; + U32 const tableSize = 1 << tableLog; + U32 highThreshold = tableSize-1; + + /* Sanity Checks */ + if (FSE_BUILD_DTABLE_WKSP_SIZE(tableLog, maxSymbolValue) > wkspSize) return ERROR(maxSymbolValue_tooLarge); + if (maxSymbolValue > FSE_MAX_SYMBOL_VALUE) return ERROR(maxSymbolValue_tooLarge); + if (tableLog > FSE_MAX_TABLELOG) return ERROR(tableLog_tooLarge); + + /* Init, lay down lowprob symbols */ + { FSE_DTableHeader DTableH; + DTableH.tableLog = (U16)tableLog; + DTableH.fastMode = 1; + { S16 const largeLimit= (S16)(1 << (tableLog-1)); + U32 s; + for (s=0; s= largeLimit) DTableH.fastMode=0; + symbolNext[s] = (U16)normalizedCounter[s]; + } } } + ZSTD_memcpy(dt, &DTableH, sizeof(DTableH)); + } + + /* Spread symbols */ + if (highThreshold == tableSize - 1) { + size_t const tableMask = tableSize-1; + size_t const step = FSE_TABLESTEP(tableSize); + /* First lay down the symbols in order. + * We use a uint64_t to lay down 8 bytes at a time. This reduces branch + * misses since small blocks generally have small table logs, so nearly + * all symbols have counts <= 8. We ensure we have 8 bytes at the end of + * our buffer to handle the over-write. + */ + { U64 const add = 0x0101010101010101ull; + size_t pos = 0; + U64 sv = 0; + U32 s; + for (s=0; s highThreshold) position = (position + step) & tableMask; /* lowprob area */ + } } + if (position!=0) return ERROR(GENERIC); /* position must reach all cells once, otherwise normalizedCounter is incorrect */ + } + + /* Build Decoding table */ + { U32 u; + for (u=0; u sizeof(bitD.bitContainer)*8) /* This test must be static */ + BIT_reloadDStream(&bitD); + + op[1] = FSE_GETSYMBOL(&state2); + + if (FSE_MAX_TABLELOG*4+7 > sizeof(bitD.bitContainer)*8) /* This test must be static */ + { if (BIT_reloadDStream(&bitD) > BIT_DStream_unfinished) { op+=2; break; } } + + op[2] = FSE_GETSYMBOL(&state1); + + if (FSE_MAX_TABLELOG*2+7 > sizeof(bitD.bitContainer)*8) /* This test must be static */ + BIT_reloadDStream(&bitD); + + op[3] = FSE_GETSYMBOL(&state2); + } + + /* tail */ + /* note : BIT_reloadDStream(&bitD) >= FSE_DStream_partiallyFilled; Ends at exactly BIT_DStream_completed */ + while (1) { + if (op>(omax-2)) return ERROR(dstSize_tooSmall); + *op++ = FSE_GETSYMBOL(&state1); + if (BIT_reloadDStream(&bitD)==BIT_DStream_overflow) { + *op++ = FSE_GETSYMBOL(&state2); + break; + } + + if (op>(omax-2)) return ERROR(dstSize_tooSmall); + *op++ = FSE_GETSYMBOL(&state2); + if (BIT_reloadDStream(&bitD)==BIT_DStream_overflow) { + *op++ = FSE_GETSYMBOL(&state1); + break; + } } + + assert(op >= ostart); + return (size_t)(op-ostart); +} + +typedef struct { + short ncount[FSE_MAX_SYMBOL_VALUE + 1]; +} FSE_DecompressWksp; + + +FORCE_INLINE_TEMPLATE size_t FSE_decompress_wksp_body( + void* dst, size_t dstCapacity, + const void* cSrc, size_t cSrcSize, + unsigned maxLog, void* workSpace, size_t wkspSize, + int bmi2) +{ + const BYTE* const istart = (const BYTE*)cSrc; + const BYTE* ip = istart; + unsigned tableLog; + unsigned maxSymbolValue = FSE_MAX_SYMBOL_VALUE; + FSE_DecompressWksp* const wksp = (FSE_DecompressWksp*)workSpace; + size_t const dtablePos = sizeof(FSE_DecompressWksp) / sizeof(FSE_DTable); + FSE_DTable* const dtable = (FSE_DTable*)workSpace + dtablePos; + + FSE_STATIC_ASSERT((FSE_MAX_SYMBOL_VALUE + 1) % 2 == 0); + if (wkspSize < sizeof(*wksp)) return ERROR(GENERIC); + + /* correct offset to dtable depends on this property */ + FSE_STATIC_ASSERT(sizeof(FSE_DecompressWksp) % sizeof(FSE_DTable) == 0); + + /* normal FSE decoding mode */ + { size_t const NCountLength = + FSE_readNCount_bmi2(wksp->ncount, &maxSymbolValue, &tableLog, istart, cSrcSize, bmi2); + if (FSE_isError(NCountLength)) return NCountLength; + if (tableLog > maxLog) return ERROR(tableLog_tooLarge); + assert(NCountLength <= cSrcSize); + ip += NCountLength; + cSrcSize -= NCountLength; + } + + if (FSE_DECOMPRESS_WKSP_SIZE(tableLog, maxSymbolValue) > wkspSize) return ERROR(tableLog_tooLarge); + assert(sizeof(*wksp) + FSE_DTABLE_SIZE(tableLog) <= wkspSize); + workSpace = (BYTE*)workSpace + sizeof(*wksp) + FSE_DTABLE_SIZE(tableLog); + wkspSize -= sizeof(*wksp) + FSE_DTABLE_SIZE(tableLog); + + CHECK_F( FSE_buildDTable_internal(dtable, wksp->ncount, maxSymbolValue, tableLog, workSpace, wkspSize) ); + + { + const void* ptr = dtable; + const FSE_DTableHeader* DTableH = (const FSE_DTableHeader*)ptr; + const U32 fastMode = DTableH->fastMode; + + /* select fast mode (static) */ + if (fastMode) return FSE_decompress_usingDTable_generic(dst, dstCapacity, ip, cSrcSize, dtable, 1); + return FSE_decompress_usingDTable_generic(dst, dstCapacity, ip, cSrcSize, dtable, 0); + } +} + +/* Avoids the FORCE_INLINE of the _body() function. */ +static size_t FSE_decompress_wksp_body_default(void* dst, size_t dstCapacity, const void* cSrc, size_t cSrcSize, unsigned maxLog, void* workSpace, size_t wkspSize) +{ + return FSE_decompress_wksp_body(dst, dstCapacity, cSrc, cSrcSize, maxLog, workSpace, wkspSize, 0); +} + +#if DYNAMIC_BMI2 +BMI2_TARGET_ATTRIBUTE static size_t FSE_decompress_wksp_body_bmi2(void* dst, size_t dstCapacity, const void* cSrc, size_t cSrcSize, unsigned maxLog, void* workSpace, size_t wkspSize) +{ + return FSE_decompress_wksp_body(dst, dstCapacity, cSrc, cSrcSize, maxLog, workSpace, wkspSize, 1); +} +#endif + +size_t FSE_decompress_wksp_bmi2(void* dst, size_t dstCapacity, const void* cSrc, size_t cSrcSize, unsigned maxLog, void* workSpace, size_t wkspSize, int bmi2) +{ +#if DYNAMIC_BMI2 + if (bmi2) { + return FSE_decompress_wksp_body_bmi2(dst, dstCapacity, cSrc, cSrcSize, maxLog, workSpace, wkspSize); + } +#endif + (void)bmi2; + return FSE_decompress_wksp_body_default(dst, dstCapacity, cSrc, cSrcSize, maxLog, workSpace, wkspSize); +} + +#endif /* FSE_COMMONDEFS_ONLY */ diff --git a/deps/zstd/lib/common/huf.h b/deps/zstd/lib/common/huf.h new file mode 100644 index 00000000000000..99bf85d6f4ed2a --- /dev/null +++ b/deps/zstd/lib/common/huf.h @@ -0,0 +1,286 @@ +/* ****************************************************************** + * huff0 huffman codec, + * part of Finite State Entropy library + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * You can contact the author at : + * - Source repository : https://github.com/Cyan4973/FiniteStateEntropy + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. +****************************************************************** */ + +#if defined (__cplusplus) +extern "C" { +#endif + +#ifndef HUF_H_298734234 +#define HUF_H_298734234 + +/* *** Dependencies *** */ +#include "zstd_deps.h" /* size_t */ +#include "mem.h" /* U32 */ +#define FSE_STATIC_LINKING_ONLY +#include "fse.h" + + +/* *** Tool functions *** */ +#define HUF_BLOCKSIZE_MAX (128 * 1024) /**< maximum input size for a single block compressed with HUF_compress */ +size_t HUF_compressBound(size_t size); /**< maximum compressed size (worst case) */ + +/* Error Management */ +unsigned HUF_isError(size_t code); /**< tells if a return value is an error code */ +const char* HUF_getErrorName(size_t code); /**< provides error code string (useful for debugging) */ + + +#define HUF_WORKSPACE_SIZE ((8 << 10) + 512 /* sorting scratch space */) +#define HUF_WORKSPACE_SIZE_U64 (HUF_WORKSPACE_SIZE / sizeof(U64)) + +/* *** Constants *** */ +#define HUF_TABLELOG_MAX 12 /* max runtime value of tableLog (due to static allocation); can be modified up to HUF_TABLELOG_ABSOLUTEMAX */ +#define HUF_TABLELOG_DEFAULT 11 /* default tableLog value when none specified */ +#define HUF_SYMBOLVALUE_MAX 255 + +#define HUF_TABLELOG_ABSOLUTEMAX 12 /* absolute limit of HUF_MAX_TABLELOG. Beyond that value, code does not work */ +#if (HUF_TABLELOG_MAX > HUF_TABLELOG_ABSOLUTEMAX) +# error "HUF_TABLELOG_MAX is too large !" +#endif + + +/* **************************************** +* Static allocation +******************************************/ +/* HUF buffer bounds */ +#define HUF_CTABLEBOUND 129 +#define HUF_BLOCKBOUND(size) (size + (size>>8) + 8) /* only true when incompressible is pre-filtered with fast heuristic */ +#define HUF_COMPRESSBOUND(size) (HUF_CTABLEBOUND + HUF_BLOCKBOUND(size)) /* Macro version, useful for static allocation */ + +/* static allocation of HUF's Compression Table */ +/* this is a private definition, just exposed for allocation and strict aliasing purpose. never EVER access its members directly */ +typedef size_t HUF_CElt; /* consider it an incomplete type */ +#define HUF_CTABLE_SIZE_ST(maxSymbolValue) ((maxSymbolValue)+2) /* Use tables of size_t, for proper alignment */ +#define HUF_CTABLE_SIZE(maxSymbolValue) (HUF_CTABLE_SIZE_ST(maxSymbolValue) * sizeof(size_t)) +#define HUF_CREATE_STATIC_CTABLE(name, maxSymbolValue) \ + HUF_CElt name[HUF_CTABLE_SIZE_ST(maxSymbolValue)] /* no final ; */ + +/* static allocation of HUF's DTable */ +typedef U32 HUF_DTable; +#define HUF_DTABLE_SIZE(maxTableLog) (1 + (1<<(maxTableLog))) +#define HUF_CREATE_STATIC_DTABLEX1(DTable, maxTableLog) \ + HUF_DTable DTable[HUF_DTABLE_SIZE((maxTableLog)-1)] = { ((U32)((maxTableLog)-1) * 0x01000001) } +#define HUF_CREATE_STATIC_DTABLEX2(DTable, maxTableLog) \ + HUF_DTable DTable[HUF_DTABLE_SIZE(maxTableLog)] = { ((U32)(maxTableLog) * 0x01000001) } + + +/* **************************************** +* Advanced decompression functions +******************************************/ + +/** + * Huffman flags bitset. + * For all flags, 0 is the default value. + */ +typedef enum { + /** + * If compiled with DYNAMIC_BMI2: Set flag only if the CPU supports BMI2 at runtime. + * Otherwise: Ignored. + */ + HUF_flags_bmi2 = (1 << 0), + /** + * If set: Test possible table depths to find the one that produces the smallest header + encoded size. + * If unset: Use heuristic to find the table depth. + */ + HUF_flags_optimalDepth = (1 << 1), + /** + * If set: If the previous table can encode the input, always reuse the previous table. + * If unset: If the previous table can encode the input, reuse the previous table if it results in a smaller output. + */ + HUF_flags_preferRepeat = (1 << 2), + /** + * If set: Sample the input and check if the sample is uncompressible, if it is then don't attempt to compress. + * If unset: Always histogram the entire input. + */ + HUF_flags_suspectUncompressible = (1 << 3), + /** + * If set: Don't use assembly implementations + * If unset: Allow using assembly implementations + */ + HUF_flags_disableAsm = (1 << 4), + /** + * If set: Don't use the fast decoding loop, always use the fallback decoding loop. + * If unset: Use the fast decoding loop when possible. + */ + HUF_flags_disableFast = (1 << 5) +} HUF_flags_e; + + +/* **************************************** + * HUF detailed API + * ****************************************/ +#define HUF_OPTIMAL_DEPTH_THRESHOLD ZSTD_btultra + +/*! HUF_compress() does the following: + * 1. count symbol occurrence from source[] into table count[] using FSE_count() (exposed within "fse.h") + * 2. (optional) refine tableLog using HUF_optimalTableLog() + * 3. build Huffman table from count using HUF_buildCTable() + * 4. save Huffman table to memory buffer using HUF_writeCTable() + * 5. encode the data stream using HUF_compress4X_usingCTable() + * + * The following API allows targeting specific sub-functions for advanced tasks. + * For example, it's possible to compress several blocks using the same 'CTable', + * or to save and regenerate 'CTable' using external methods. + */ +unsigned HUF_minTableLog(unsigned symbolCardinality); +unsigned HUF_cardinality(const unsigned* count, unsigned maxSymbolValue); +unsigned HUF_optimalTableLog(unsigned maxTableLog, size_t srcSize, unsigned maxSymbolValue, void* workSpace, + size_t wkspSize, HUF_CElt* table, const unsigned* count, int flags); /* table is used as scratch space for building and testing tables, not a return value */ +size_t HUF_writeCTable_wksp(void* dst, size_t maxDstSize, const HUF_CElt* CTable, unsigned maxSymbolValue, unsigned huffLog, void* workspace, size_t workspaceSize); +size_t HUF_compress4X_usingCTable(void* dst, size_t dstSize, const void* src, size_t srcSize, const HUF_CElt* CTable, int flags); +size_t HUF_estimateCompressedSize(const HUF_CElt* CTable, const unsigned* count, unsigned maxSymbolValue); +int HUF_validateCTable(const HUF_CElt* CTable, const unsigned* count, unsigned maxSymbolValue); + +typedef enum { + HUF_repeat_none, /**< Cannot use the previous table */ + HUF_repeat_check, /**< Can use the previous table but it must be checked. Note : The previous table must have been constructed by HUF_compress{1, 4}X_repeat */ + HUF_repeat_valid /**< Can use the previous table and it is assumed to be valid */ + } HUF_repeat; + +/** HUF_compress4X_repeat() : + * Same as HUF_compress4X_wksp(), but considers using hufTable if *repeat != HUF_repeat_none. + * If it uses hufTable it does not modify hufTable or repeat. + * If it doesn't, it sets *repeat = HUF_repeat_none, and it sets hufTable to the table used. + * If preferRepeat then the old table will always be used if valid. + * If suspectUncompressible then some sampling checks will be run to potentially skip huffman coding */ +size_t HUF_compress4X_repeat(void* dst, size_t dstSize, + const void* src, size_t srcSize, + unsigned maxSymbolValue, unsigned tableLog, + void* workSpace, size_t wkspSize, /**< `workSpace` must be aligned on 4-bytes boundaries, `wkspSize` must be >= HUF_WORKSPACE_SIZE */ + HUF_CElt* hufTable, HUF_repeat* repeat, int flags); + +/** HUF_buildCTable_wksp() : + * Same as HUF_buildCTable(), but using externally allocated scratch buffer. + * `workSpace` must be aligned on 4-bytes boundaries, and its size must be >= HUF_CTABLE_WORKSPACE_SIZE. + */ +#define HUF_CTABLE_WORKSPACE_SIZE_U32 ((4 * (HUF_SYMBOLVALUE_MAX + 1)) + 192) +#define HUF_CTABLE_WORKSPACE_SIZE (HUF_CTABLE_WORKSPACE_SIZE_U32 * sizeof(unsigned)) +size_t HUF_buildCTable_wksp (HUF_CElt* tree, + const unsigned* count, U32 maxSymbolValue, U32 maxNbBits, + void* workSpace, size_t wkspSize); + +/*! HUF_readStats() : + * Read compact Huffman tree, saved by HUF_writeCTable(). + * `huffWeight` is destination buffer. + * @return : size read from `src` , or an error Code . + * Note : Needed by HUF_readCTable() and HUF_readDTableXn() . */ +size_t HUF_readStats(BYTE* huffWeight, size_t hwSize, + U32* rankStats, U32* nbSymbolsPtr, U32* tableLogPtr, + const void* src, size_t srcSize); + +/*! HUF_readStats_wksp() : + * Same as HUF_readStats() but takes an external workspace which must be + * 4-byte aligned and its size must be >= HUF_READ_STATS_WORKSPACE_SIZE. + * If the CPU has BMI2 support, pass bmi2=1, otherwise pass bmi2=0. + */ +#define HUF_READ_STATS_WORKSPACE_SIZE_U32 FSE_DECOMPRESS_WKSP_SIZE_U32(6, HUF_TABLELOG_MAX-1) +#define HUF_READ_STATS_WORKSPACE_SIZE (HUF_READ_STATS_WORKSPACE_SIZE_U32 * sizeof(unsigned)) +size_t HUF_readStats_wksp(BYTE* huffWeight, size_t hwSize, + U32* rankStats, U32* nbSymbolsPtr, U32* tableLogPtr, + const void* src, size_t srcSize, + void* workspace, size_t wkspSize, + int flags); + +/** HUF_readCTable() : + * Loading a CTable saved with HUF_writeCTable() */ +size_t HUF_readCTable (HUF_CElt* CTable, unsigned* maxSymbolValuePtr, const void* src, size_t srcSize, unsigned *hasZeroWeights); + +/** HUF_getNbBitsFromCTable() : + * Read nbBits from CTable symbolTable, for symbol `symbolValue` presumed <= HUF_SYMBOLVALUE_MAX + * Note 1 : If symbolValue > HUF_readCTableHeader(symbolTable).maxSymbolValue, returns 0 + * Note 2 : is not inlined, as HUF_CElt definition is private + */ +U32 HUF_getNbBitsFromCTable(const HUF_CElt* symbolTable, U32 symbolValue); + +typedef struct { + BYTE tableLog; + BYTE maxSymbolValue; + BYTE unused[sizeof(size_t) - 2]; +} HUF_CTableHeader; + +/** HUF_readCTableHeader() : + * @returns The header from the CTable specifying the tableLog and the maxSymbolValue. + */ +HUF_CTableHeader HUF_readCTableHeader(HUF_CElt const* ctable); + +/* + * HUF_decompress() does the following: + * 1. select the decompression algorithm (X1, X2) based on pre-computed heuristics + * 2. build Huffman table from save, using HUF_readDTableX?() + * 3. decode 1 or 4 segments in parallel using HUF_decompress?X?_usingDTable() + */ + +/** HUF_selectDecoder() : + * Tells which decoder is likely to decode faster, + * based on a set of pre-computed metrics. + * @return : 0==HUF_decompress4X1, 1==HUF_decompress4X2 . + * Assumption : 0 < dstSize <= 128 KB */ +U32 HUF_selectDecoder (size_t dstSize, size_t cSrcSize); + +/** + * The minimum workspace size for the `workSpace` used in + * HUF_readDTableX1_wksp() and HUF_readDTableX2_wksp(). + * + * The space used depends on HUF_TABLELOG_MAX, ranging from ~1500 bytes when + * HUF_TABLE_LOG_MAX=12 to ~1850 bytes when HUF_TABLE_LOG_MAX=15. + * Buffer overflow errors may potentially occur if code modifications result in + * a required workspace size greater than that specified in the following + * macro. + */ +#define HUF_DECOMPRESS_WORKSPACE_SIZE ((2 << 10) + (1 << 9)) +#define HUF_DECOMPRESS_WORKSPACE_SIZE_U32 (HUF_DECOMPRESS_WORKSPACE_SIZE / sizeof(U32)) + + +/* ====================== */ +/* single stream variants */ +/* ====================== */ + +size_t HUF_compress1X_usingCTable(void* dst, size_t dstSize, const void* src, size_t srcSize, const HUF_CElt* CTable, int flags); +/** HUF_compress1X_repeat() : + * Same as HUF_compress1X_wksp(), but considers using hufTable if *repeat != HUF_repeat_none. + * If it uses hufTable it does not modify hufTable or repeat. + * If it doesn't, it sets *repeat = HUF_repeat_none, and it sets hufTable to the table used. + * If preferRepeat then the old table will always be used if valid. + * If suspectUncompressible then some sampling checks will be run to potentially skip huffman coding */ +size_t HUF_compress1X_repeat(void* dst, size_t dstSize, + const void* src, size_t srcSize, + unsigned maxSymbolValue, unsigned tableLog, + void* workSpace, size_t wkspSize, /**< `workSpace` must be aligned on 4-bytes boundaries, `wkspSize` must be >= HUF_WORKSPACE_SIZE */ + HUF_CElt* hufTable, HUF_repeat* repeat, int flags); + +size_t HUF_decompress1X_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize, int flags); +#ifndef HUF_FORCE_DECOMPRESS_X1 +size_t HUF_decompress1X2_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize, int flags); /**< double-symbols decoder */ +#endif + +/* BMI2 variants. + * If the CPU has BMI2 support, pass bmi2=1, otherwise pass bmi2=0. + */ +size_t HUF_decompress1X_usingDTable(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize, const HUF_DTable* DTable, int flags); +#ifndef HUF_FORCE_DECOMPRESS_X2 +size_t HUF_decompress1X1_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize, int flags); +#endif +size_t HUF_decompress4X_usingDTable(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize, const HUF_DTable* DTable, int flags); +size_t HUF_decompress4X_hufOnly_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize, int flags); +#ifndef HUF_FORCE_DECOMPRESS_X2 +size_t HUF_readDTableX1_wksp(HUF_DTable* DTable, const void* src, size_t srcSize, void* workSpace, size_t wkspSize, int flags); +#endif +#ifndef HUF_FORCE_DECOMPRESS_X1 +size_t HUF_readDTableX2_wksp(HUF_DTable* DTable, const void* src, size_t srcSize, void* workSpace, size_t wkspSize, int flags); +#endif + +#endif /* HUF_H_298734234 */ + +#if defined (__cplusplus) +} +#endif diff --git a/deps/zstd/lib/common/mem.h b/deps/zstd/lib/common/mem.h new file mode 100644 index 00000000000000..096f4be519d852 --- /dev/null +++ b/deps/zstd/lib/common/mem.h @@ -0,0 +1,426 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef MEM_H_MODULE +#define MEM_H_MODULE + +#if defined (__cplusplus) +extern "C" { +#endif + +/*-**************************************** +* Dependencies +******************************************/ +#include /* size_t, ptrdiff_t */ +#include "compiler.h" /* __has_builtin */ +#include "debug.h" /* DEBUG_STATIC_ASSERT */ +#include "zstd_deps.h" /* ZSTD_memcpy */ + + +/*-**************************************** +* Compiler specifics +******************************************/ +#if defined(_MSC_VER) /* Visual Studio */ +# include /* _byteswap_ulong */ +# include /* _byteswap_* */ +#endif + +/*-************************************************************** +* Basic Types +*****************************************************************/ +#if !defined (__VMS) && (defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) ) +# if defined(_AIX) +# include +# else +# include /* intptr_t */ +# endif + typedef uint8_t BYTE; + typedef uint8_t U8; + typedef int8_t S8; + typedef uint16_t U16; + typedef int16_t S16; + typedef uint32_t U32; + typedef int32_t S32; + typedef uint64_t U64; + typedef int64_t S64; +#else +# include +#if CHAR_BIT != 8 +# error "this implementation requires char to be exactly 8-bit type" +#endif + typedef unsigned char BYTE; + typedef unsigned char U8; + typedef signed char S8; +#if USHRT_MAX != 65535 +# error "this implementation requires short to be exactly 16-bit type" +#endif + typedef unsigned short U16; + typedef signed short S16; +#if UINT_MAX != 4294967295 +# error "this implementation requires int to be exactly 32-bit type" +#endif + typedef unsigned int U32; + typedef signed int S32; +/* note : there are no limits defined for long long type in C90. + * limits exist in C99, however, in such case, is preferred */ + typedef unsigned long long U64; + typedef signed long long S64; +#endif + + +/*-************************************************************** +* Memory I/O API +*****************************************************************/ +/*=== Static platform detection ===*/ +MEM_STATIC unsigned MEM_32bits(void); +MEM_STATIC unsigned MEM_64bits(void); +MEM_STATIC unsigned MEM_isLittleEndian(void); + +/*=== Native unaligned read/write ===*/ +MEM_STATIC U16 MEM_read16(const void* memPtr); +MEM_STATIC U32 MEM_read32(const void* memPtr); +MEM_STATIC U64 MEM_read64(const void* memPtr); +MEM_STATIC size_t MEM_readST(const void* memPtr); + +MEM_STATIC void MEM_write16(void* memPtr, U16 value); +MEM_STATIC void MEM_write32(void* memPtr, U32 value); +MEM_STATIC void MEM_write64(void* memPtr, U64 value); + +/*=== Little endian unaligned read/write ===*/ +MEM_STATIC U16 MEM_readLE16(const void* memPtr); +MEM_STATIC U32 MEM_readLE24(const void* memPtr); +MEM_STATIC U32 MEM_readLE32(const void* memPtr); +MEM_STATIC U64 MEM_readLE64(const void* memPtr); +MEM_STATIC size_t MEM_readLEST(const void* memPtr); + +MEM_STATIC void MEM_writeLE16(void* memPtr, U16 val); +MEM_STATIC void MEM_writeLE24(void* memPtr, U32 val); +MEM_STATIC void MEM_writeLE32(void* memPtr, U32 val32); +MEM_STATIC void MEM_writeLE64(void* memPtr, U64 val64); +MEM_STATIC void MEM_writeLEST(void* memPtr, size_t val); + +/*=== Big endian unaligned read/write ===*/ +MEM_STATIC U32 MEM_readBE32(const void* memPtr); +MEM_STATIC U64 MEM_readBE64(const void* memPtr); +MEM_STATIC size_t MEM_readBEST(const void* memPtr); + +MEM_STATIC void MEM_writeBE32(void* memPtr, U32 val32); +MEM_STATIC void MEM_writeBE64(void* memPtr, U64 val64); +MEM_STATIC void MEM_writeBEST(void* memPtr, size_t val); + +/*=== Byteswap ===*/ +MEM_STATIC U32 MEM_swap32(U32 in); +MEM_STATIC U64 MEM_swap64(U64 in); +MEM_STATIC size_t MEM_swapST(size_t in); + + +/*-************************************************************** +* Memory I/O Implementation +*****************************************************************/ +/* MEM_FORCE_MEMORY_ACCESS : For accessing unaligned memory: + * Method 0 : always use `memcpy()`. Safe and portable. + * Method 1 : Use compiler extension to set unaligned access. + * Method 2 : direct access. This method is portable but violate C standard. + * It can generate buggy code on targets depending on alignment. + * Default : method 1 if supported, else method 0 + */ +#ifndef MEM_FORCE_MEMORY_ACCESS /* can be defined externally, on command line for example */ +# ifdef __GNUC__ +# define MEM_FORCE_MEMORY_ACCESS 1 +# endif +#endif + +MEM_STATIC unsigned MEM_32bits(void) { return sizeof(size_t)==4; } +MEM_STATIC unsigned MEM_64bits(void) { return sizeof(size_t)==8; } + +MEM_STATIC unsigned MEM_isLittleEndian(void) +{ +#if defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) + return 1; +#elif defined(__BYTE_ORDER__) && defined(__ORDER_BIG_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) + return 0; +#elif defined(__clang__) && __LITTLE_ENDIAN__ + return 1; +#elif defined(__clang__) && __BIG_ENDIAN__ + return 0; +#elif defined(_MSC_VER) && (_M_AMD64 || _M_IX86) + return 1; +#elif defined(__DMC__) && defined(_M_IX86) + return 1; +#else + const union { U32 u; BYTE c[4]; } one = { 1 }; /* don't use static : performance detrimental */ + return one.c[0]; +#endif +} + +#if defined(MEM_FORCE_MEMORY_ACCESS) && (MEM_FORCE_MEMORY_ACCESS==2) + +/* violates C standard, by lying on structure alignment. +Only use if no other choice to achieve best performance on target platform */ +MEM_STATIC U16 MEM_read16(const void* memPtr) { return *(const U16*) memPtr; } +MEM_STATIC U32 MEM_read32(const void* memPtr) { return *(const U32*) memPtr; } +MEM_STATIC U64 MEM_read64(const void* memPtr) { return *(const U64*) memPtr; } +MEM_STATIC size_t MEM_readST(const void* memPtr) { return *(const size_t*) memPtr; } + +MEM_STATIC void MEM_write16(void* memPtr, U16 value) { *(U16*)memPtr = value; } +MEM_STATIC void MEM_write32(void* memPtr, U32 value) { *(U32*)memPtr = value; } +MEM_STATIC void MEM_write64(void* memPtr, U64 value) { *(U64*)memPtr = value; } + +#elif defined(MEM_FORCE_MEMORY_ACCESS) && (MEM_FORCE_MEMORY_ACCESS==1) + +typedef __attribute__((aligned(1))) U16 unalign16; +typedef __attribute__((aligned(1))) U32 unalign32; +typedef __attribute__((aligned(1))) U64 unalign64; +typedef __attribute__((aligned(1))) size_t unalignArch; + +MEM_STATIC U16 MEM_read16(const void* ptr) { return *(const unalign16*)ptr; } +MEM_STATIC U32 MEM_read32(const void* ptr) { return *(const unalign32*)ptr; } +MEM_STATIC U64 MEM_read64(const void* ptr) { return *(const unalign64*)ptr; } +MEM_STATIC size_t MEM_readST(const void* ptr) { return *(const unalignArch*)ptr; } + +MEM_STATIC void MEM_write16(void* memPtr, U16 value) { *(unalign16*)memPtr = value; } +MEM_STATIC void MEM_write32(void* memPtr, U32 value) { *(unalign32*)memPtr = value; } +MEM_STATIC void MEM_write64(void* memPtr, U64 value) { *(unalign64*)memPtr = value; } + +#else + +/* default method, safe and standard. + can sometimes prove slower */ + +MEM_STATIC U16 MEM_read16(const void* memPtr) +{ + U16 val; ZSTD_memcpy(&val, memPtr, sizeof(val)); return val; +} + +MEM_STATIC U32 MEM_read32(const void* memPtr) +{ + U32 val; ZSTD_memcpy(&val, memPtr, sizeof(val)); return val; +} + +MEM_STATIC U64 MEM_read64(const void* memPtr) +{ + U64 val; ZSTD_memcpy(&val, memPtr, sizeof(val)); return val; +} + +MEM_STATIC size_t MEM_readST(const void* memPtr) +{ + size_t val; ZSTD_memcpy(&val, memPtr, sizeof(val)); return val; +} + +MEM_STATIC void MEM_write16(void* memPtr, U16 value) +{ + ZSTD_memcpy(memPtr, &value, sizeof(value)); +} + +MEM_STATIC void MEM_write32(void* memPtr, U32 value) +{ + ZSTD_memcpy(memPtr, &value, sizeof(value)); +} + +MEM_STATIC void MEM_write64(void* memPtr, U64 value) +{ + ZSTD_memcpy(memPtr, &value, sizeof(value)); +} + +#endif /* MEM_FORCE_MEMORY_ACCESS */ + +MEM_STATIC U32 MEM_swap32_fallback(U32 in) +{ + return ((in << 24) & 0xff000000 ) | + ((in << 8) & 0x00ff0000 ) | + ((in >> 8) & 0x0000ff00 ) | + ((in >> 24) & 0x000000ff ); +} + +MEM_STATIC U32 MEM_swap32(U32 in) +{ +#if defined(_MSC_VER) /* Visual Studio */ + return _byteswap_ulong(in); +#elif (defined (__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 403)) \ + || (defined(__clang__) && __has_builtin(__builtin_bswap32)) + return __builtin_bswap32(in); +#else + return MEM_swap32_fallback(in); +#endif +} + +MEM_STATIC U64 MEM_swap64_fallback(U64 in) +{ + return ((in << 56) & 0xff00000000000000ULL) | + ((in << 40) & 0x00ff000000000000ULL) | + ((in << 24) & 0x0000ff0000000000ULL) | + ((in << 8) & 0x000000ff00000000ULL) | + ((in >> 8) & 0x00000000ff000000ULL) | + ((in >> 24) & 0x0000000000ff0000ULL) | + ((in >> 40) & 0x000000000000ff00ULL) | + ((in >> 56) & 0x00000000000000ffULL); +} + +MEM_STATIC U64 MEM_swap64(U64 in) +{ +#if defined(_MSC_VER) /* Visual Studio */ + return _byteswap_uint64(in); +#elif (defined (__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 403)) \ + || (defined(__clang__) && __has_builtin(__builtin_bswap64)) + return __builtin_bswap64(in); +#else + return MEM_swap64_fallback(in); +#endif +} + +MEM_STATIC size_t MEM_swapST(size_t in) +{ + if (MEM_32bits()) + return (size_t)MEM_swap32((U32)in); + else + return (size_t)MEM_swap64((U64)in); +} + +/*=== Little endian r/w ===*/ + +MEM_STATIC U16 MEM_readLE16(const void* memPtr) +{ + if (MEM_isLittleEndian()) + return MEM_read16(memPtr); + else { + const BYTE* p = (const BYTE*)memPtr; + return (U16)(p[0] + (p[1]<<8)); + } +} + +MEM_STATIC void MEM_writeLE16(void* memPtr, U16 val) +{ + if (MEM_isLittleEndian()) { + MEM_write16(memPtr, val); + } else { + BYTE* p = (BYTE*)memPtr; + p[0] = (BYTE)val; + p[1] = (BYTE)(val>>8); + } +} + +MEM_STATIC U32 MEM_readLE24(const void* memPtr) +{ + return (U32)MEM_readLE16(memPtr) + ((U32)(((const BYTE*)memPtr)[2]) << 16); +} + +MEM_STATIC void MEM_writeLE24(void* memPtr, U32 val) +{ + MEM_writeLE16(memPtr, (U16)val); + ((BYTE*)memPtr)[2] = (BYTE)(val>>16); +} + +MEM_STATIC U32 MEM_readLE32(const void* memPtr) +{ + if (MEM_isLittleEndian()) + return MEM_read32(memPtr); + else + return MEM_swap32(MEM_read32(memPtr)); +} + +MEM_STATIC void MEM_writeLE32(void* memPtr, U32 val32) +{ + if (MEM_isLittleEndian()) + MEM_write32(memPtr, val32); + else + MEM_write32(memPtr, MEM_swap32(val32)); +} + +MEM_STATIC U64 MEM_readLE64(const void* memPtr) +{ + if (MEM_isLittleEndian()) + return MEM_read64(memPtr); + else + return MEM_swap64(MEM_read64(memPtr)); +} + +MEM_STATIC void MEM_writeLE64(void* memPtr, U64 val64) +{ + if (MEM_isLittleEndian()) + MEM_write64(memPtr, val64); + else + MEM_write64(memPtr, MEM_swap64(val64)); +} + +MEM_STATIC size_t MEM_readLEST(const void* memPtr) +{ + if (MEM_32bits()) + return (size_t)MEM_readLE32(memPtr); + else + return (size_t)MEM_readLE64(memPtr); +} + +MEM_STATIC void MEM_writeLEST(void* memPtr, size_t val) +{ + if (MEM_32bits()) + MEM_writeLE32(memPtr, (U32)val); + else + MEM_writeLE64(memPtr, (U64)val); +} + +/*=== Big endian r/w ===*/ + +MEM_STATIC U32 MEM_readBE32(const void* memPtr) +{ + if (MEM_isLittleEndian()) + return MEM_swap32(MEM_read32(memPtr)); + else + return MEM_read32(memPtr); +} + +MEM_STATIC void MEM_writeBE32(void* memPtr, U32 val32) +{ + if (MEM_isLittleEndian()) + MEM_write32(memPtr, MEM_swap32(val32)); + else + MEM_write32(memPtr, val32); +} + +MEM_STATIC U64 MEM_readBE64(const void* memPtr) +{ + if (MEM_isLittleEndian()) + return MEM_swap64(MEM_read64(memPtr)); + else + return MEM_read64(memPtr); +} + +MEM_STATIC void MEM_writeBE64(void* memPtr, U64 val64) +{ + if (MEM_isLittleEndian()) + MEM_write64(memPtr, MEM_swap64(val64)); + else + MEM_write64(memPtr, val64); +} + +MEM_STATIC size_t MEM_readBEST(const void* memPtr) +{ + if (MEM_32bits()) + return (size_t)MEM_readBE32(memPtr); + else + return (size_t)MEM_readBE64(memPtr); +} + +MEM_STATIC void MEM_writeBEST(void* memPtr, size_t val) +{ + if (MEM_32bits()) + MEM_writeBE32(memPtr, (U32)val); + else + MEM_writeBE64(memPtr, (U64)val); +} + +/* code only tested on 32 and 64 bits systems */ +MEM_STATIC void MEM_check(void) { DEBUG_STATIC_ASSERT((sizeof(size_t)==4) || (sizeof(size_t)==8)); } + + +#if defined (__cplusplus) +} +#endif + +#endif /* MEM_H_MODULE */ diff --git a/deps/zstd/lib/common/pool.c b/deps/zstd/lib/common/pool.c new file mode 100644 index 00000000000000..3adcefc9a50aed --- /dev/null +++ b/deps/zstd/lib/common/pool.c @@ -0,0 +1,371 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + +/* ====== Dependencies ======= */ +#include "../common/allocations.h" /* ZSTD_customCalloc, ZSTD_customFree */ +#include "zstd_deps.h" /* size_t */ +#include "debug.h" /* assert */ +#include "pool.h" + +/* ====== Compiler specifics ====== */ +#if defined(_MSC_VER) +# pragma warning(disable : 4204) /* disable: C4204: non-constant aggregate initializer */ +#endif + + +#ifdef ZSTD_MULTITHREAD + +#include "threading.h" /* pthread adaptation */ + +/* A job is a function and an opaque argument */ +typedef struct POOL_job_s { + POOL_function function; + void *opaque; +} POOL_job; + +struct POOL_ctx_s { + ZSTD_customMem customMem; + /* Keep track of the threads */ + ZSTD_pthread_t* threads; + size_t threadCapacity; + size_t threadLimit; + + /* The queue is a circular buffer */ + POOL_job *queue; + size_t queueHead; + size_t queueTail; + size_t queueSize; + + /* The number of threads working on jobs */ + size_t numThreadsBusy; + /* Indicates if the queue is empty */ + int queueEmpty; + + /* The mutex protects the queue */ + ZSTD_pthread_mutex_t queueMutex; + /* Condition variable for pushers to wait on when the queue is full */ + ZSTD_pthread_cond_t queuePushCond; + /* Condition variables for poppers to wait on when the queue is empty */ + ZSTD_pthread_cond_t queuePopCond; + /* Indicates if the queue is shutting down */ + int shutdown; +}; + +/* POOL_thread() : + * Work thread for the thread pool. + * Waits for jobs and executes them. + * @returns : NULL on failure else non-null. + */ +static void* POOL_thread(void* opaque) { + POOL_ctx* const ctx = (POOL_ctx*)opaque; + if (!ctx) { return NULL; } + for (;;) { + /* Lock the mutex and wait for a non-empty queue or until shutdown */ + ZSTD_pthread_mutex_lock(&ctx->queueMutex); + + while ( ctx->queueEmpty + || (ctx->numThreadsBusy >= ctx->threadLimit) ) { + if (ctx->shutdown) { + /* even if !queueEmpty, (possible if numThreadsBusy >= threadLimit), + * a few threads will be shutdown while !queueEmpty, + * but enough threads will remain active to finish the queue */ + ZSTD_pthread_mutex_unlock(&ctx->queueMutex); + return opaque; + } + ZSTD_pthread_cond_wait(&ctx->queuePopCond, &ctx->queueMutex); + } + /* Pop a job off the queue */ + { POOL_job const job = ctx->queue[ctx->queueHead]; + ctx->queueHead = (ctx->queueHead + 1) % ctx->queueSize; + ctx->numThreadsBusy++; + ctx->queueEmpty = (ctx->queueHead == ctx->queueTail); + /* Unlock the mutex, signal a pusher, and run the job */ + ZSTD_pthread_cond_signal(&ctx->queuePushCond); + ZSTD_pthread_mutex_unlock(&ctx->queueMutex); + + job.function(job.opaque); + + /* If the intended queue size was 0, signal after finishing job */ + ZSTD_pthread_mutex_lock(&ctx->queueMutex); + ctx->numThreadsBusy--; + ZSTD_pthread_cond_signal(&ctx->queuePushCond); + ZSTD_pthread_mutex_unlock(&ctx->queueMutex); + } + } /* for (;;) */ + assert(0); /* Unreachable */ +} + +/* ZSTD_createThreadPool() : public access point */ +POOL_ctx* ZSTD_createThreadPool(size_t numThreads) { + return POOL_create (numThreads, 0); +} + +POOL_ctx* POOL_create(size_t numThreads, size_t queueSize) { + return POOL_create_advanced(numThreads, queueSize, ZSTD_defaultCMem); +} + +POOL_ctx* POOL_create_advanced(size_t numThreads, size_t queueSize, + ZSTD_customMem customMem) +{ + POOL_ctx* ctx; + /* Check parameters */ + if (!numThreads) { return NULL; } + /* Allocate the context and zero initialize */ + ctx = (POOL_ctx*)ZSTD_customCalloc(sizeof(POOL_ctx), customMem); + if (!ctx) { return NULL; } + /* Initialize the job queue. + * It needs one extra space since one space is wasted to differentiate + * empty and full queues. + */ + ctx->queueSize = queueSize + 1; + ctx->queue = (POOL_job*)ZSTD_customCalloc(ctx->queueSize * sizeof(POOL_job), customMem); + ctx->queueHead = 0; + ctx->queueTail = 0; + ctx->numThreadsBusy = 0; + ctx->queueEmpty = 1; + { + int error = 0; + error |= ZSTD_pthread_mutex_init(&ctx->queueMutex, NULL); + error |= ZSTD_pthread_cond_init(&ctx->queuePushCond, NULL); + error |= ZSTD_pthread_cond_init(&ctx->queuePopCond, NULL); + if (error) { POOL_free(ctx); return NULL; } + } + ctx->shutdown = 0; + /* Allocate space for the thread handles */ + ctx->threads = (ZSTD_pthread_t*)ZSTD_customCalloc(numThreads * sizeof(ZSTD_pthread_t), customMem); + ctx->threadCapacity = 0; + ctx->customMem = customMem; + /* Check for errors */ + if (!ctx->threads || !ctx->queue) { POOL_free(ctx); return NULL; } + /* Initialize the threads */ + { size_t i; + for (i = 0; i < numThreads; ++i) { + if (ZSTD_pthread_create(&ctx->threads[i], NULL, &POOL_thread, ctx)) { + ctx->threadCapacity = i; + POOL_free(ctx); + return NULL; + } } + ctx->threadCapacity = numThreads; + ctx->threadLimit = numThreads; + } + return ctx; +} + +/*! POOL_join() : + Shutdown the queue, wake any sleeping threads, and join all of the threads. +*/ +static void POOL_join(POOL_ctx* ctx) { + /* Shut down the queue */ + ZSTD_pthread_mutex_lock(&ctx->queueMutex); + ctx->shutdown = 1; + ZSTD_pthread_mutex_unlock(&ctx->queueMutex); + /* Wake up sleeping threads */ + ZSTD_pthread_cond_broadcast(&ctx->queuePushCond); + ZSTD_pthread_cond_broadcast(&ctx->queuePopCond); + /* Join all of the threads */ + { size_t i; + for (i = 0; i < ctx->threadCapacity; ++i) { + ZSTD_pthread_join(ctx->threads[i]); /* note : could fail */ + } } +} + +void POOL_free(POOL_ctx *ctx) { + if (!ctx) { return; } + POOL_join(ctx); + ZSTD_pthread_mutex_destroy(&ctx->queueMutex); + ZSTD_pthread_cond_destroy(&ctx->queuePushCond); + ZSTD_pthread_cond_destroy(&ctx->queuePopCond); + ZSTD_customFree(ctx->queue, ctx->customMem); + ZSTD_customFree(ctx->threads, ctx->customMem); + ZSTD_customFree(ctx, ctx->customMem); +} + +/*! POOL_joinJobs() : + * Waits for all queued jobs to finish executing. + */ +void POOL_joinJobs(POOL_ctx* ctx) { + ZSTD_pthread_mutex_lock(&ctx->queueMutex); + while(!ctx->queueEmpty || ctx->numThreadsBusy > 0) { + ZSTD_pthread_cond_wait(&ctx->queuePushCond, &ctx->queueMutex); + } + ZSTD_pthread_mutex_unlock(&ctx->queueMutex); +} + +void ZSTD_freeThreadPool (ZSTD_threadPool* pool) { + POOL_free (pool); +} + +size_t POOL_sizeof(const POOL_ctx* ctx) { + if (ctx==NULL) return 0; /* supports sizeof NULL */ + return sizeof(*ctx) + + ctx->queueSize * sizeof(POOL_job) + + ctx->threadCapacity * sizeof(ZSTD_pthread_t); +} + + +/* @return : 0 on success, 1 on error */ +static int POOL_resize_internal(POOL_ctx* ctx, size_t numThreads) +{ + if (numThreads <= ctx->threadCapacity) { + if (!numThreads) return 1; + ctx->threadLimit = numThreads; + return 0; + } + /* numThreads > threadCapacity */ + { ZSTD_pthread_t* const threadPool = (ZSTD_pthread_t*)ZSTD_customCalloc(numThreads * sizeof(ZSTD_pthread_t), ctx->customMem); + if (!threadPool) return 1; + /* replace existing thread pool */ + ZSTD_memcpy(threadPool, ctx->threads, ctx->threadCapacity * sizeof(ZSTD_pthread_t)); + ZSTD_customFree(ctx->threads, ctx->customMem); + ctx->threads = threadPool; + /* Initialize additional threads */ + { size_t threadId; + for (threadId = ctx->threadCapacity; threadId < numThreads; ++threadId) { + if (ZSTD_pthread_create(&threadPool[threadId], NULL, &POOL_thread, ctx)) { + ctx->threadCapacity = threadId; + return 1; + } } + } } + /* successfully expanded */ + ctx->threadCapacity = numThreads; + ctx->threadLimit = numThreads; + return 0; +} + +/* @return : 0 on success, 1 on error */ +int POOL_resize(POOL_ctx* ctx, size_t numThreads) +{ + int result; + if (ctx==NULL) return 1; + ZSTD_pthread_mutex_lock(&ctx->queueMutex); + result = POOL_resize_internal(ctx, numThreads); + ZSTD_pthread_cond_broadcast(&ctx->queuePopCond); + ZSTD_pthread_mutex_unlock(&ctx->queueMutex); + return result; +} + +/** + * Returns 1 if the queue is full and 0 otherwise. + * + * When queueSize is 1 (pool was created with an intended queueSize of 0), + * then a queue is empty if there is a thread free _and_ no job is waiting. + */ +static int isQueueFull(POOL_ctx const* ctx) { + if (ctx->queueSize > 1) { + return ctx->queueHead == ((ctx->queueTail + 1) % ctx->queueSize); + } else { + return (ctx->numThreadsBusy == ctx->threadLimit) || + !ctx->queueEmpty; + } +} + + +static void +POOL_add_internal(POOL_ctx* ctx, POOL_function function, void *opaque) +{ + POOL_job job; + job.function = function; + job.opaque = opaque; + assert(ctx != NULL); + if (ctx->shutdown) return; + + ctx->queueEmpty = 0; + ctx->queue[ctx->queueTail] = job; + ctx->queueTail = (ctx->queueTail + 1) % ctx->queueSize; + ZSTD_pthread_cond_signal(&ctx->queuePopCond); +} + +void POOL_add(POOL_ctx* ctx, POOL_function function, void* opaque) +{ + assert(ctx != NULL); + ZSTD_pthread_mutex_lock(&ctx->queueMutex); + /* Wait until there is space in the queue for the new job */ + while (isQueueFull(ctx) && (!ctx->shutdown)) { + ZSTD_pthread_cond_wait(&ctx->queuePushCond, &ctx->queueMutex); + } + POOL_add_internal(ctx, function, opaque); + ZSTD_pthread_mutex_unlock(&ctx->queueMutex); +} + + +int POOL_tryAdd(POOL_ctx* ctx, POOL_function function, void* opaque) +{ + assert(ctx != NULL); + ZSTD_pthread_mutex_lock(&ctx->queueMutex); + if (isQueueFull(ctx)) { + ZSTD_pthread_mutex_unlock(&ctx->queueMutex); + return 0; + } + POOL_add_internal(ctx, function, opaque); + ZSTD_pthread_mutex_unlock(&ctx->queueMutex); + return 1; +} + + +#else /* ZSTD_MULTITHREAD not defined */ + +/* ========================== */ +/* No multi-threading support */ +/* ========================== */ + + +/* We don't need any data, but if it is empty, malloc() might return NULL. */ +struct POOL_ctx_s { + int dummy; +}; +static POOL_ctx g_poolCtx; + +POOL_ctx* POOL_create(size_t numThreads, size_t queueSize) { + return POOL_create_advanced(numThreads, queueSize, ZSTD_defaultCMem); +} + +POOL_ctx* +POOL_create_advanced(size_t numThreads, size_t queueSize, ZSTD_customMem customMem) +{ + (void)numThreads; + (void)queueSize; + (void)customMem; + return &g_poolCtx; +} + +void POOL_free(POOL_ctx* ctx) { + assert(!ctx || ctx == &g_poolCtx); + (void)ctx; +} + +void POOL_joinJobs(POOL_ctx* ctx){ + assert(!ctx || ctx == &g_poolCtx); + (void)ctx; +} + +int POOL_resize(POOL_ctx* ctx, size_t numThreads) { + (void)ctx; (void)numThreads; + return 0; +} + +void POOL_add(POOL_ctx* ctx, POOL_function function, void* opaque) { + (void)ctx; + function(opaque); +} + +int POOL_tryAdd(POOL_ctx* ctx, POOL_function function, void* opaque) { + (void)ctx; + function(opaque); + return 1; +} + +size_t POOL_sizeof(const POOL_ctx* ctx) { + if (ctx==NULL) return 0; /* supports sizeof NULL */ + assert(ctx == &g_poolCtx); + return sizeof(*ctx); +} + +#endif /* ZSTD_MULTITHREAD */ diff --git a/deps/zstd/lib/common/pool.h b/deps/zstd/lib/common/pool.h new file mode 100644 index 00000000000000..cca4de73a830ad --- /dev/null +++ b/deps/zstd/lib/common/pool.h @@ -0,0 +1,90 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef POOL_H +#define POOL_H + +#if defined (__cplusplus) +extern "C" { +#endif + + +#include "zstd_deps.h" +#define ZSTD_STATIC_LINKING_ONLY /* ZSTD_customMem */ +#include "../zstd.h" + +typedef struct POOL_ctx_s POOL_ctx; + +/*! POOL_create() : + * Create a thread pool with at most `numThreads` threads. + * `numThreads` must be at least 1. + * The maximum number of queued jobs before blocking is `queueSize`. + * @return : POOL_ctx pointer on success, else NULL. +*/ +POOL_ctx* POOL_create(size_t numThreads, size_t queueSize); + +POOL_ctx* POOL_create_advanced(size_t numThreads, size_t queueSize, + ZSTD_customMem customMem); + +/*! POOL_free() : + * Free a thread pool returned by POOL_create(). + */ +void POOL_free(POOL_ctx* ctx); + + +/*! POOL_joinJobs() : + * Waits for all queued jobs to finish executing. + */ +void POOL_joinJobs(POOL_ctx* ctx); + +/*! POOL_resize() : + * Expands or shrinks pool's number of threads. + * This is more efficient than releasing + creating a new context, + * since it tries to preserve and reuse existing threads. + * `numThreads` must be at least 1. + * @return : 0 when resize was successful, + * !0 (typically 1) if there is an error. + * note : only numThreads can be resized, queueSize remains unchanged. + */ +int POOL_resize(POOL_ctx* ctx, size_t numThreads); + +/*! POOL_sizeof() : + * @return threadpool memory usage + * note : compatible with NULL (returns 0 in this case) + */ +size_t POOL_sizeof(const POOL_ctx* ctx); + +/*! POOL_function : + * The function type that can be added to a thread pool. + */ +typedef void (*POOL_function)(void*); + +/*! POOL_add() : + * Add the job `function(opaque)` to the thread pool. `ctx` must be valid. + * Possibly blocks until there is room in the queue. + * Note : The function may be executed asynchronously, + * therefore, `opaque` must live until function has been completed. + */ +void POOL_add(POOL_ctx* ctx, POOL_function function, void* opaque); + + +/*! POOL_tryAdd() : + * Add the job `function(opaque)` to thread pool _if_ a queue slot is available. + * Returns immediately even if not (does not block). + * @return : 1 if successful, 0 if not. + */ +int POOL_tryAdd(POOL_ctx* ctx, POOL_function function, void* opaque); + + +#if defined (__cplusplus) +} +#endif + +#endif diff --git a/deps/zstd/lib/common/portability_macros.h b/deps/zstd/lib/common/portability_macros.h new file mode 100644 index 00000000000000..e50314a78e4792 --- /dev/null +++ b/deps/zstd/lib/common/portability_macros.h @@ -0,0 +1,158 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_PORTABILITY_MACROS_H +#define ZSTD_PORTABILITY_MACROS_H + +/** + * This header file contains macro definitions to support portability. + * This header is shared between C and ASM code, so it MUST only + * contain macro definitions. It MUST not contain any C code. + * + * This header ONLY defines macros to detect platforms/feature support. + * + */ + + +/* compat. with non-clang compilers */ +#ifndef __has_attribute + #define __has_attribute(x) 0 +#endif + +/* compat. with non-clang compilers */ +#ifndef __has_builtin +# define __has_builtin(x) 0 +#endif + +/* compat. with non-clang compilers */ +#ifndef __has_feature +# define __has_feature(x) 0 +#endif + +/* detects whether we are being compiled under msan */ +#ifndef ZSTD_MEMORY_SANITIZER +# if __has_feature(memory_sanitizer) +# define ZSTD_MEMORY_SANITIZER 1 +# else +# define ZSTD_MEMORY_SANITIZER 0 +# endif +#endif + +/* detects whether we are being compiled under asan */ +#ifndef ZSTD_ADDRESS_SANITIZER +# if __has_feature(address_sanitizer) +# define ZSTD_ADDRESS_SANITIZER 1 +# elif defined(__SANITIZE_ADDRESS__) +# define ZSTD_ADDRESS_SANITIZER 1 +# else +# define ZSTD_ADDRESS_SANITIZER 0 +# endif +#endif + +/* detects whether we are being compiled under dfsan */ +#ifndef ZSTD_DATAFLOW_SANITIZER +# if __has_feature(dataflow_sanitizer) +# define ZSTD_DATAFLOW_SANITIZER 1 +# else +# define ZSTD_DATAFLOW_SANITIZER 0 +# endif +#endif + +/* Mark the internal assembly functions as hidden */ +#ifdef __ELF__ +# define ZSTD_HIDE_ASM_FUNCTION(func) .hidden func +#elif defined(__APPLE__) +# define ZSTD_HIDE_ASM_FUNCTION(func) .private_extern func +#else +# define ZSTD_HIDE_ASM_FUNCTION(func) +#endif + +/* Enable runtime BMI2 dispatch based on the CPU. + * Enabled for clang & gcc >=4.8 on x86 when BMI2 isn't enabled by default. + */ +#ifndef DYNAMIC_BMI2 + #if ((defined(__clang__) && __has_attribute(__target__)) \ + || (defined(__GNUC__) \ + && (__GNUC__ >= 5 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)))) \ + && (defined(__x86_64__) || defined(_M_X64)) \ + && !defined(__BMI2__) + # define DYNAMIC_BMI2 1 + #else + # define DYNAMIC_BMI2 0 + #endif +#endif + +/** + * Only enable assembly for GNUC compatible compilers, + * because other platforms may not support GAS assembly syntax. + * + * Only enable assembly for Linux / MacOS, other platforms may + * work, but they haven't been tested. This could likely be + * extended to BSD systems. + * + * Disable assembly when MSAN is enabled, because MSAN requires + * 100% of code to be instrumented to work. + */ +#if defined(__GNUC__) +# if defined(__linux__) || defined(__linux) || defined(__APPLE__) +# if ZSTD_MEMORY_SANITIZER +# define ZSTD_ASM_SUPPORTED 0 +# elif ZSTD_DATAFLOW_SANITIZER +# define ZSTD_ASM_SUPPORTED 0 +# else +# define ZSTD_ASM_SUPPORTED 1 +# endif +# else +# define ZSTD_ASM_SUPPORTED 0 +# endif +#else +# define ZSTD_ASM_SUPPORTED 0 +#endif + +/** + * Determines whether we should enable assembly for x86-64 + * with BMI2. + * + * Enable if all of the following conditions hold: + * - ASM hasn't been explicitly disabled by defining ZSTD_DISABLE_ASM + * - Assembly is supported + * - We are compiling for x86-64 and either: + * - DYNAMIC_BMI2 is enabled + * - BMI2 is supported at compile time + */ +#if !defined(ZSTD_DISABLE_ASM) && \ + ZSTD_ASM_SUPPORTED && \ + defined(__x86_64__) && \ + (DYNAMIC_BMI2 || defined(__BMI2__)) +# define ZSTD_ENABLE_ASM_X86_64_BMI2 1 +#else +# define ZSTD_ENABLE_ASM_X86_64_BMI2 0 +#endif + +/* + * For x86 ELF targets, add .note.gnu.property section for Intel CET in + * assembly sources when CET is enabled. + * + * Additionally, any function that may be called indirectly must begin + * with ZSTD_CET_ENDBRANCH. + */ +#if defined(__ELF__) && (defined(__x86_64__) || defined(__i386__)) \ + && defined(__has_include) +# if __has_include() +# include +# define ZSTD_CET_ENDBRANCH _CET_ENDBR +# endif +#endif + +#ifndef ZSTD_CET_ENDBRANCH +# define ZSTD_CET_ENDBRANCH +#endif + +#endif /* ZSTD_PORTABILITY_MACROS_H */ diff --git a/deps/zstd/lib/common/threading.c b/deps/zstd/lib/common/threading.c new file mode 100644 index 00000000000000..25bb8b981042d8 --- /dev/null +++ b/deps/zstd/lib/common/threading.c @@ -0,0 +1,182 @@ +/** + * Copyright (c) 2016 Tino Reichardt + * All rights reserved. + * + * You can contact the author at: + * - zstdmt source repository: https://github.com/mcmilk/zstdmt + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/** + * This file will hold wrapper for systems, which do not support pthreads + */ + +#include "threading.h" + +/* create fake symbol to avoid empty translation unit warning */ +int g_ZSTD_threading_useless_symbol; + +#if defined(ZSTD_MULTITHREAD) && defined(_WIN32) + +/** + * Windows minimalist Pthread Wrapper + */ + + +/* === Dependencies === */ +#include +#include + + +/* === Implementation === */ + +typedef struct { + void* (*start_routine)(void*); + void* arg; + int initialized; + ZSTD_pthread_cond_t initialized_cond; + ZSTD_pthread_mutex_t initialized_mutex; +} ZSTD_thread_params_t; + +static unsigned __stdcall worker(void *arg) +{ + void* (*start_routine)(void*); + void* thread_arg; + + /* Initialized thread_arg and start_routine and signal main thread that we don't need it + * to wait any longer. + */ + { + ZSTD_thread_params_t* thread_param = (ZSTD_thread_params_t*)arg; + thread_arg = thread_param->arg; + start_routine = thread_param->start_routine; + + /* Signal main thread that we are running and do not depend on its memory anymore */ + ZSTD_pthread_mutex_lock(&thread_param->initialized_mutex); + thread_param->initialized = 1; + ZSTD_pthread_cond_signal(&thread_param->initialized_cond); + ZSTD_pthread_mutex_unlock(&thread_param->initialized_mutex); + } + + start_routine(thread_arg); + + return 0; +} + +int ZSTD_pthread_create(ZSTD_pthread_t* thread, const void* unused, + void* (*start_routine) (void*), void* arg) +{ + ZSTD_thread_params_t thread_param; + (void)unused; + + if (thread==NULL) return -1; + *thread = NULL; + + thread_param.start_routine = start_routine; + thread_param.arg = arg; + thread_param.initialized = 0; + + /* Setup thread initialization synchronization */ + if(ZSTD_pthread_cond_init(&thread_param.initialized_cond, NULL)) { + /* Should never happen on Windows */ + return -1; + } + if(ZSTD_pthread_mutex_init(&thread_param.initialized_mutex, NULL)) { + /* Should never happen on Windows */ + ZSTD_pthread_cond_destroy(&thread_param.initialized_cond); + return -1; + } + + /* Spawn thread */ + *thread = (HANDLE)_beginthreadex(NULL, 0, worker, &thread_param, 0, NULL); + if (*thread==NULL) { + ZSTD_pthread_mutex_destroy(&thread_param.initialized_mutex); + ZSTD_pthread_cond_destroy(&thread_param.initialized_cond); + return errno; + } + + /* Wait for thread to be initialized */ + ZSTD_pthread_mutex_lock(&thread_param.initialized_mutex); + while(!thread_param.initialized) { + ZSTD_pthread_cond_wait(&thread_param.initialized_cond, &thread_param.initialized_mutex); + } + ZSTD_pthread_mutex_unlock(&thread_param.initialized_mutex); + ZSTD_pthread_mutex_destroy(&thread_param.initialized_mutex); + ZSTD_pthread_cond_destroy(&thread_param.initialized_cond); + + return 0; +} + +int ZSTD_pthread_join(ZSTD_pthread_t thread) +{ + DWORD result; + + if (!thread) return 0; + + result = WaitForSingleObject(thread, INFINITE); + CloseHandle(thread); + + switch (result) { + case WAIT_OBJECT_0: + return 0; + case WAIT_ABANDONED: + return EINVAL; + default: + return GetLastError(); + } +} + +#endif /* ZSTD_MULTITHREAD */ + +#if defined(ZSTD_MULTITHREAD) && DEBUGLEVEL >= 1 && !defined(_WIN32) + +#define ZSTD_DEPS_NEED_MALLOC +#include "zstd_deps.h" + +int ZSTD_pthread_mutex_init(ZSTD_pthread_mutex_t* mutex, pthread_mutexattr_t const* attr) +{ + assert(mutex != NULL); + *mutex = (pthread_mutex_t*)ZSTD_malloc(sizeof(pthread_mutex_t)); + if (!*mutex) + return 1; + return pthread_mutex_init(*mutex, attr); +} + +int ZSTD_pthread_mutex_destroy(ZSTD_pthread_mutex_t* mutex) +{ + assert(mutex != NULL); + if (!*mutex) + return 0; + { + int const ret = pthread_mutex_destroy(*mutex); + ZSTD_free(*mutex); + return ret; + } +} + +int ZSTD_pthread_cond_init(ZSTD_pthread_cond_t* cond, pthread_condattr_t const* attr) +{ + assert(cond != NULL); + *cond = (pthread_cond_t*)ZSTD_malloc(sizeof(pthread_cond_t)); + if (!*cond) + return 1; + return pthread_cond_init(*cond, attr); +} + +int ZSTD_pthread_cond_destroy(ZSTD_pthread_cond_t* cond) +{ + assert(cond != NULL); + if (!*cond) + return 0; + { + int const ret = pthread_cond_destroy(*cond); + ZSTD_free(*cond); + return ret; + } +} + +#endif diff --git a/deps/zstd/lib/common/threading.h b/deps/zstd/lib/common/threading.h new file mode 100644 index 00000000000000..fb5c1c8787343d --- /dev/null +++ b/deps/zstd/lib/common/threading.h @@ -0,0 +1,150 @@ +/** + * Copyright (c) 2016 Tino Reichardt + * All rights reserved. + * + * You can contact the author at: + * - zstdmt source repository: https://github.com/mcmilk/zstdmt + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef THREADING_H_938743 +#define THREADING_H_938743 + +#include "debug.h" + +#if defined (__cplusplus) +extern "C" { +#endif + +#if defined(ZSTD_MULTITHREAD) && defined(_WIN32) + +/** + * Windows minimalist Pthread Wrapper + */ +#ifdef WINVER +# undef WINVER +#endif +#define WINVER 0x0600 + +#ifdef _WIN32_WINNT +# undef _WIN32_WINNT +#endif +#define _WIN32_WINNT 0x0600 + +#ifndef WIN32_LEAN_AND_MEAN +# define WIN32_LEAN_AND_MEAN +#endif + +#undef ERROR /* reported already defined on VS 2015 (Rich Geldreich) */ +#include +#undef ERROR +#define ERROR(name) ZSTD_ERROR(name) + + +/* mutex */ +#define ZSTD_pthread_mutex_t CRITICAL_SECTION +#define ZSTD_pthread_mutex_init(a, b) ((void)(b), InitializeCriticalSection((a)), 0) +#define ZSTD_pthread_mutex_destroy(a) DeleteCriticalSection((a)) +#define ZSTD_pthread_mutex_lock(a) EnterCriticalSection((a)) +#define ZSTD_pthread_mutex_unlock(a) LeaveCriticalSection((a)) + +/* condition variable */ +#define ZSTD_pthread_cond_t CONDITION_VARIABLE +#define ZSTD_pthread_cond_init(a, b) ((void)(b), InitializeConditionVariable((a)), 0) +#define ZSTD_pthread_cond_destroy(a) ((void)(a)) +#define ZSTD_pthread_cond_wait(a, b) SleepConditionVariableCS((a), (b), INFINITE) +#define ZSTD_pthread_cond_signal(a) WakeConditionVariable((a)) +#define ZSTD_pthread_cond_broadcast(a) WakeAllConditionVariable((a)) + +/* ZSTD_pthread_create() and ZSTD_pthread_join() */ +typedef HANDLE ZSTD_pthread_t; + +int ZSTD_pthread_create(ZSTD_pthread_t* thread, const void* unused, + void* (*start_routine) (void*), void* arg); + +int ZSTD_pthread_join(ZSTD_pthread_t thread); + +/** + * add here more wrappers as required + */ + + +#elif defined(ZSTD_MULTITHREAD) /* posix assumed ; need a better detection method */ +/* === POSIX Systems === */ +# include + +#if DEBUGLEVEL < 1 + +#define ZSTD_pthread_mutex_t pthread_mutex_t +#define ZSTD_pthread_mutex_init(a, b) pthread_mutex_init((a), (b)) +#define ZSTD_pthread_mutex_destroy(a) pthread_mutex_destroy((a)) +#define ZSTD_pthread_mutex_lock(a) pthread_mutex_lock((a)) +#define ZSTD_pthread_mutex_unlock(a) pthread_mutex_unlock((a)) + +#define ZSTD_pthread_cond_t pthread_cond_t +#define ZSTD_pthread_cond_init(a, b) pthread_cond_init((a), (b)) +#define ZSTD_pthread_cond_destroy(a) pthread_cond_destroy((a)) +#define ZSTD_pthread_cond_wait(a, b) pthread_cond_wait((a), (b)) +#define ZSTD_pthread_cond_signal(a) pthread_cond_signal((a)) +#define ZSTD_pthread_cond_broadcast(a) pthread_cond_broadcast((a)) + +#define ZSTD_pthread_t pthread_t +#define ZSTD_pthread_create(a, b, c, d) pthread_create((a), (b), (c), (d)) +#define ZSTD_pthread_join(a) pthread_join((a),NULL) + +#else /* DEBUGLEVEL >= 1 */ + +/* Debug implementation of threading. + * In this implementation we use pointers for mutexes and condition variables. + * This way, if we forget to init/destroy them the program will crash or ASAN + * will report leaks. + */ + +#define ZSTD_pthread_mutex_t pthread_mutex_t* +int ZSTD_pthread_mutex_init(ZSTD_pthread_mutex_t* mutex, pthread_mutexattr_t const* attr); +int ZSTD_pthread_mutex_destroy(ZSTD_pthread_mutex_t* mutex); +#define ZSTD_pthread_mutex_lock(a) pthread_mutex_lock(*(a)) +#define ZSTD_pthread_mutex_unlock(a) pthread_mutex_unlock(*(a)) + +#define ZSTD_pthread_cond_t pthread_cond_t* +int ZSTD_pthread_cond_init(ZSTD_pthread_cond_t* cond, pthread_condattr_t const* attr); +int ZSTD_pthread_cond_destroy(ZSTD_pthread_cond_t* cond); +#define ZSTD_pthread_cond_wait(a, b) pthread_cond_wait(*(a), *(b)) +#define ZSTD_pthread_cond_signal(a) pthread_cond_signal(*(a)) +#define ZSTD_pthread_cond_broadcast(a) pthread_cond_broadcast(*(a)) + +#define ZSTD_pthread_t pthread_t +#define ZSTD_pthread_create(a, b, c, d) pthread_create((a), (b), (c), (d)) +#define ZSTD_pthread_join(a) pthread_join((a),NULL) + +#endif + +#else /* ZSTD_MULTITHREAD not defined */ +/* No multithreading support */ + +typedef int ZSTD_pthread_mutex_t; +#define ZSTD_pthread_mutex_init(a, b) ((void)(a), (void)(b), 0) +#define ZSTD_pthread_mutex_destroy(a) ((void)(a)) +#define ZSTD_pthread_mutex_lock(a) ((void)(a)) +#define ZSTD_pthread_mutex_unlock(a) ((void)(a)) + +typedef int ZSTD_pthread_cond_t; +#define ZSTD_pthread_cond_init(a, b) ((void)(a), (void)(b), 0) +#define ZSTD_pthread_cond_destroy(a) ((void)(a)) +#define ZSTD_pthread_cond_wait(a, b) ((void)(a), (void)(b)) +#define ZSTD_pthread_cond_signal(a) ((void)(a)) +#define ZSTD_pthread_cond_broadcast(a) ((void)(a)) + +/* do not use ZSTD_pthread_t */ + +#endif /* ZSTD_MULTITHREAD */ + +#if defined (__cplusplus) +} +#endif + +#endif /* THREADING_H_938743 */ diff --git a/deps/zstd/lib/common/xxhash.c b/deps/zstd/lib/common/xxhash.c new file mode 100644 index 00000000000000..052cd522824b1e --- /dev/null +++ b/deps/zstd/lib/common/xxhash.c @@ -0,0 +1,18 @@ +/* + * xxHash - Extremely Fast Hash algorithm + * Copyright (c) Yann Collet - Meta Platforms, Inc + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/* + * xxhash.c instantiates functions defined in xxhash.h + */ + +#define XXH_STATIC_LINKING_ONLY /* access advanced declarations */ +#define XXH_IMPLEMENTATION /* access definitions */ + +#include "xxhash.h" diff --git a/deps/zstd/lib/common/xxhash.h b/deps/zstd/lib/common/xxhash.h new file mode 100644 index 00000000000000..e59e44267c1a1e --- /dev/null +++ b/deps/zstd/lib/common/xxhash.h @@ -0,0 +1,7020 @@ +/* + * xxHash - Extremely Fast Hash algorithm + * Header File + * Copyright (c) Yann Collet - Meta Platforms, Inc + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/* Local adaptations for Zstandard */ + +#ifndef XXH_NO_XXH3 +# define XXH_NO_XXH3 +#endif + +#ifndef XXH_NAMESPACE +# define XXH_NAMESPACE ZSTD_ +#endif + +/*! + * @mainpage xxHash + * + * xxHash is an extremely fast non-cryptographic hash algorithm, working at RAM speed + * limits. + * + * It is proposed in four flavors, in three families: + * 1. @ref XXH32_family + * - Classic 32-bit hash function. Simple, compact, and runs on almost all + * 32-bit and 64-bit systems. + * 2. @ref XXH64_family + * - Classic 64-bit adaptation of XXH32. Just as simple, and runs well on most + * 64-bit systems (but _not_ 32-bit systems). + * 3. @ref XXH3_family + * - Modern 64-bit and 128-bit hash function family which features improved + * strength and performance across the board, especially on smaller data. + * It benefits greatly from SIMD and 64-bit without requiring it. + * + * Benchmarks + * --- + * The reference system uses an Intel i7-9700K CPU, and runs Ubuntu x64 20.04. + * The open source benchmark program is compiled with clang v10.0 using -O3 flag. + * + * | Hash Name | ISA ext | Width | Large Data Speed | Small Data Velocity | + * | -------------------- | ------- | ----: | ---------------: | ------------------: | + * | XXH3_64bits() | @b AVX2 | 64 | 59.4 GB/s | 133.1 | + * | MeowHash | AES-NI | 128 | 58.2 GB/s | 52.5 | + * | XXH3_128bits() | @b AVX2 | 128 | 57.9 GB/s | 118.1 | + * | CLHash | PCLMUL | 64 | 37.1 GB/s | 58.1 | + * | XXH3_64bits() | @b SSE2 | 64 | 31.5 GB/s | 133.1 | + * | XXH3_128bits() | @b SSE2 | 128 | 29.6 GB/s | 118.1 | + * | RAM sequential read | | N/A | 28.0 GB/s | N/A | + * | ahash | AES-NI | 64 | 22.5 GB/s | 107.2 | + * | City64 | | 64 | 22.0 GB/s | 76.6 | + * | T1ha2 | | 64 | 22.0 GB/s | 99.0 | + * | City128 | | 128 | 21.7 GB/s | 57.7 | + * | FarmHash | AES-NI | 64 | 21.3 GB/s | 71.9 | + * | XXH64() | | 64 | 19.4 GB/s | 71.0 | + * | SpookyHash | | 64 | 19.3 GB/s | 53.2 | + * | Mum | | 64 | 18.0 GB/s | 67.0 | + * | CRC32C | SSE4.2 | 32 | 13.0 GB/s | 57.9 | + * | XXH32() | | 32 | 9.7 GB/s | 71.9 | + * | City32 | | 32 | 9.1 GB/s | 66.0 | + * | Blake3* | @b AVX2 | 256 | 4.4 GB/s | 8.1 | + * | Murmur3 | | 32 | 3.9 GB/s | 56.1 | + * | SipHash* | | 64 | 3.0 GB/s | 43.2 | + * | Blake3* | @b SSE2 | 256 | 2.4 GB/s | 8.1 | + * | HighwayHash | | 64 | 1.4 GB/s | 6.0 | + * | FNV64 | | 64 | 1.2 GB/s | 62.7 | + * | Blake2* | | 256 | 1.1 GB/s | 5.1 | + * | SHA1* | | 160 | 0.8 GB/s | 5.6 | + * | MD5* | | 128 | 0.6 GB/s | 7.8 | + * @note + * - Hashes which require a specific ISA extension are noted. SSE2 is also noted, + * even though it is mandatory on x64. + * - Hashes with an asterisk are cryptographic. Note that MD5 is non-cryptographic + * by modern standards. + * - Small data velocity is a rough average of algorithm's efficiency for small + * data. For more accurate information, see the wiki. + * - More benchmarks and strength tests are found on the wiki: + * https://github.com/Cyan4973/xxHash/wiki + * + * Usage + * ------ + * All xxHash variants use a similar API. Changing the algorithm is a trivial + * substitution. + * + * @pre + * For functions which take an input and length parameter, the following + * requirements are assumed: + * - The range from [`input`, `input + length`) is valid, readable memory. + * - The only exception is if the `length` is `0`, `input` may be `NULL`. + * - For C++, the objects must have the *TriviallyCopyable* property, as the + * functions access bytes directly as if it was an array of `unsigned char`. + * + * @anchor single_shot_example + * **Single Shot** + * + * These functions are stateless functions which hash a contiguous block of memory, + * immediately returning the result. They are the easiest and usually the fastest + * option. + * + * XXH32(), XXH64(), XXH3_64bits(), XXH3_128bits() + * + * @code{.c} + * #include + * #include "xxhash.h" + * + * // Example for a function which hashes a null terminated string with XXH32(). + * XXH32_hash_t hash_string(const char* string, XXH32_hash_t seed) + * { + * // NULL pointers are only valid if the length is zero + * size_t length = (string == NULL) ? 0 : strlen(string); + * return XXH32(string, length, seed); + * } + * @endcode + * + * + * @anchor streaming_example + * **Streaming** + * + * These groups of functions allow incremental hashing of unknown size, even + * more than what would fit in a size_t. + * + * XXH32_reset(), XXH64_reset(), XXH3_64bits_reset(), XXH3_128bits_reset() + * + * @code{.c} + * #include + * #include + * #include "xxhash.h" + * // Example for a function which hashes a FILE incrementally with XXH3_64bits(). + * XXH64_hash_t hashFile(FILE* f) + * { + * // Allocate a state struct. Do not just use malloc() or new. + * XXH3_state_t* state = XXH3_createState(); + * assert(state != NULL && "Out of memory!"); + * // Reset the state to start a new hashing session. + * XXH3_64bits_reset(state); + * char buffer[4096]; + * size_t count; + * // Read the file in chunks + * while ((count = fread(buffer, 1, sizeof(buffer), f)) != 0) { + * // Run update() as many times as necessary to process the data + * XXH3_64bits_update(state, buffer, count); + * } + * // Retrieve the finalized hash. This will not change the state. + * XXH64_hash_t result = XXH3_64bits_digest(state); + * // Free the state. Do not use free(). + * XXH3_freeState(state); + * return result; + * } + * @endcode + * + * Streaming functions generate the xxHash value from an incremental input. + * This method is slower than single-call functions, due to state management. + * For small inputs, prefer `XXH32()` and `XXH64()`, which are better optimized. + * + * An XXH state must first be allocated using `XXH*_createState()`. + * + * Start a new hash by initializing the state with a seed using `XXH*_reset()`. + * + * Then, feed the hash state by calling `XXH*_update()` as many times as necessary. + * + * The function returns an error code, with 0 meaning OK, and any other value + * meaning there is an error. + * + * Finally, a hash value can be produced anytime, by using `XXH*_digest()`. + * This function returns the nn-bits hash as an int or long long. + * + * It's still possible to continue inserting input into the hash state after a + * digest, and generate new hash values later on by invoking `XXH*_digest()`. + * + * When done, release the state using `XXH*_freeState()`. + * + * + * @anchor canonical_representation_example + * **Canonical Representation** + * + * The default return values from XXH functions are unsigned 32, 64 and 128 bit + * integers. + * This the simplest and fastest format for further post-processing. + * + * However, this leaves open the question of what is the order on the byte level, + * since little and big endian conventions will store the same number differently. + * + * The canonical representation settles this issue by mandating big-endian + * convention, the same convention as human-readable numbers (large digits first). + * + * When writing hash values to storage, sending them over a network, or printing + * them, it's highly recommended to use the canonical representation to ensure + * portability across a wider range of systems, present and future. + * + * The following functions allow transformation of hash values to and from + * canonical format. + * + * XXH32_canonicalFromHash(), XXH32_hashFromCanonical(), + * XXH64_canonicalFromHash(), XXH64_hashFromCanonical(), + * XXH128_canonicalFromHash(), XXH128_hashFromCanonical(), + * + * @code{.c} + * #include + * #include "xxhash.h" + * + * // Example for a function which prints XXH32_hash_t in human readable format + * void printXxh32(XXH32_hash_t hash) + * { + * XXH32_canonical_t cano; + * XXH32_canonicalFromHash(&cano, hash); + * size_t i; + * for(i = 0; i < sizeof(cano.digest); ++i) { + * printf("%02x", cano.digest[i]); + * } + * printf("\n"); + * } + * + * // Example for a function which converts XXH32_canonical_t to XXH32_hash_t + * XXH32_hash_t convertCanonicalToXxh32(XXH32_canonical_t cano) + * { + * XXH32_hash_t hash = XXH32_hashFromCanonical(&cano); + * return hash; + * } + * @endcode + * + * + * @file xxhash.h + * xxHash prototypes and implementation + */ + +#if defined (__cplusplus) +extern "C" { +#endif + +/* **************************** + * INLINE mode + ******************************/ +/*! + * @defgroup public Public API + * Contains details on the public xxHash functions. + * @{ + */ +#ifdef XXH_DOXYGEN +/*! + * @brief Gives access to internal state declaration, required for static allocation. + * + * Incompatible with dynamic linking, due to risks of ABI changes. + * + * Usage: + * @code{.c} + * #define XXH_STATIC_LINKING_ONLY + * #include "xxhash.h" + * @endcode + */ +# define XXH_STATIC_LINKING_ONLY +/* Do not undef XXH_STATIC_LINKING_ONLY for Doxygen */ + +/*! + * @brief Gives access to internal definitions. + * + * Usage: + * @code{.c} + * #define XXH_STATIC_LINKING_ONLY + * #define XXH_IMPLEMENTATION + * #include "xxhash.h" + * @endcode + */ +# define XXH_IMPLEMENTATION +/* Do not undef XXH_IMPLEMENTATION for Doxygen */ + +/*! + * @brief Exposes the implementation and marks all functions as `inline`. + * + * Use these build macros to inline xxhash into the target unit. + * Inlining improves performance on small inputs, especially when the length is + * expressed as a compile-time constant: + * + * https://fastcompression.blogspot.com/2018/03/xxhash-for-small-keys-impressive-power.html + * + * It also keeps xxHash symbols private to the unit, so they are not exported. + * + * Usage: + * @code{.c} + * #define XXH_INLINE_ALL + * #include "xxhash.h" + * @endcode + * Do not compile and link xxhash.o as a separate object, as it is not useful. + */ +# define XXH_INLINE_ALL +# undef XXH_INLINE_ALL +/*! + * @brief Exposes the implementation without marking functions as inline. + */ +# define XXH_PRIVATE_API +# undef XXH_PRIVATE_API +/*! + * @brief Emulate a namespace by transparently prefixing all symbols. + * + * If you want to include _and expose_ xxHash functions from within your own + * library, but also want to avoid symbol collisions with other libraries which + * may also include xxHash, you can use @ref XXH_NAMESPACE to automatically prefix + * any public symbol from xxhash library with the value of @ref XXH_NAMESPACE + * (therefore, avoid empty or numeric values). + * + * Note that no change is required within the calling program as long as it + * includes `xxhash.h`: Regular symbol names will be automatically translated + * by this header. + */ +# define XXH_NAMESPACE /* YOUR NAME HERE */ +# undef XXH_NAMESPACE +#endif + +#if (defined(XXH_INLINE_ALL) || defined(XXH_PRIVATE_API)) \ + && !defined(XXH_INLINE_ALL_31684351384) + /* this section should be traversed only once */ +# define XXH_INLINE_ALL_31684351384 + /* give access to the advanced API, required to compile implementations */ +# undef XXH_STATIC_LINKING_ONLY /* avoid macro redef */ +# define XXH_STATIC_LINKING_ONLY + /* make all functions private */ +# undef XXH_PUBLIC_API +# if defined(__GNUC__) +# define XXH_PUBLIC_API static __inline __attribute__((unused)) +# elif defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) +# define XXH_PUBLIC_API static inline +# elif defined(_MSC_VER) +# define XXH_PUBLIC_API static __inline +# else + /* note: this version may generate warnings for unused static functions */ +# define XXH_PUBLIC_API static +# endif + + /* + * This part deals with the special case where a unit wants to inline xxHash, + * but "xxhash.h" has previously been included without XXH_INLINE_ALL, + * such as part of some previously included *.h header file. + * Without further action, the new include would just be ignored, + * and functions would effectively _not_ be inlined (silent failure). + * The following macros solve this situation by prefixing all inlined names, + * avoiding naming collision with previous inclusions. + */ + /* Before that, we unconditionally #undef all symbols, + * in case they were already defined with XXH_NAMESPACE. + * They will then be redefined for XXH_INLINE_ALL + */ +# undef XXH_versionNumber + /* XXH32 */ +# undef XXH32 +# undef XXH32_createState +# undef XXH32_freeState +# undef XXH32_reset +# undef XXH32_update +# undef XXH32_digest +# undef XXH32_copyState +# undef XXH32_canonicalFromHash +# undef XXH32_hashFromCanonical + /* XXH64 */ +# undef XXH64 +# undef XXH64_createState +# undef XXH64_freeState +# undef XXH64_reset +# undef XXH64_update +# undef XXH64_digest +# undef XXH64_copyState +# undef XXH64_canonicalFromHash +# undef XXH64_hashFromCanonical + /* XXH3_64bits */ +# undef XXH3_64bits +# undef XXH3_64bits_withSecret +# undef XXH3_64bits_withSeed +# undef XXH3_64bits_withSecretandSeed +# undef XXH3_createState +# undef XXH3_freeState +# undef XXH3_copyState +# undef XXH3_64bits_reset +# undef XXH3_64bits_reset_withSeed +# undef XXH3_64bits_reset_withSecret +# undef XXH3_64bits_update +# undef XXH3_64bits_digest +# undef XXH3_generateSecret + /* XXH3_128bits */ +# undef XXH128 +# undef XXH3_128bits +# undef XXH3_128bits_withSeed +# undef XXH3_128bits_withSecret +# undef XXH3_128bits_reset +# undef XXH3_128bits_reset_withSeed +# undef XXH3_128bits_reset_withSecret +# undef XXH3_128bits_reset_withSecretandSeed +# undef XXH3_128bits_update +# undef XXH3_128bits_digest +# undef XXH128_isEqual +# undef XXH128_cmp +# undef XXH128_canonicalFromHash +# undef XXH128_hashFromCanonical + /* Finally, free the namespace itself */ +# undef XXH_NAMESPACE + + /* employ the namespace for XXH_INLINE_ALL */ +# define XXH_NAMESPACE XXH_INLINE_ + /* + * Some identifiers (enums, type names) are not symbols, + * but they must nonetheless be renamed to avoid redeclaration. + * Alternative solution: do not redeclare them. + * However, this requires some #ifdefs, and has a more dispersed impact. + * Meanwhile, renaming can be achieved in a single place. + */ +# define XXH_IPREF(Id) XXH_NAMESPACE ## Id +# define XXH_OK XXH_IPREF(XXH_OK) +# define XXH_ERROR XXH_IPREF(XXH_ERROR) +# define XXH_errorcode XXH_IPREF(XXH_errorcode) +# define XXH32_canonical_t XXH_IPREF(XXH32_canonical_t) +# define XXH64_canonical_t XXH_IPREF(XXH64_canonical_t) +# define XXH128_canonical_t XXH_IPREF(XXH128_canonical_t) +# define XXH32_state_s XXH_IPREF(XXH32_state_s) +# define XXH32_state_t XXH_IPREF(XXH32_state_t) +# define XXH64_state_s XXH_IPREF(XXH64_state_s) +# define XXH64_state_t XXH_IPREF(XXH64_state_t) +# define XXH3_state_s XXH_IPREF(XXH3_state_s) +# define XXH3_state_t XXH_IPREF(XXH3_state_t) +# define XXH128_hash_t XXH_IPREF(XXH128_hash_t) + /* Ensure the header is parsed again, even if it was previously included */ +# undef XXHASH_H_5627135585666179 +# undef XXHASH_H_STATIC_13879238742 +#endif /* XXH_INLINE_ALL || XXH_PRIVATE_API */ + +/* **************************************************************** + * Stable API + *****************************************************************/ +#ifndef XXHASH_H_5627135585666179 +#define XXHASH_H_5627135585666179 1 + +/*! @brief Marks a global symbol. */ +#if !defined(XXH_INLINE_ALL) && !defined(XXH_PRIVATE_API) +# if defined(WIN32) && defined(_MSC_VER) && (defined(XXH_IMPORT) || defined(XXH_EXPORT)) +# ifdef XXH_EXPORT +# define XXH_PUBLIC_API __declspec(dllexport) +# elif XXH_IMPORT +# define XXH_PUBLIC_API __declspec(dllimport) +# endif +# else +# define XXH_PUBLIC_API /* do nothing */ +# endif +#endif + +#ifdef XXH_NAMESPACE +# define XXH_CAT(A,B) A##B +# define XXH_NAME2(A,B) XXH_CAT(A,B) +# define XXH_versionNumber XXH_NAME2(XXH_NAMESPACE, XXH_versionNumber) +/* XXH32 */ +# define XXH32 XXH_NAME2(XXH_NAMESPACE, XXH32) +# define XXH32_createState XXH_NAME2(XXH_NAMESPACE, XXH32_createState) +# define XXH32_freeState XXH_NAME2(XXH_NAMESPACE, XXH32_freeState) +# define XXH32_reset XXH_NAME2(XXH_NAMESPACE, XXH32_reset) +# define XXH32_update XXH_NAME2(XXH_NAMESPACE, XXH32_update) +# define XXH32_digest XXH_NAME2(XXH_NAMESPACE, XXH32_digest) +# define XXH32_copyState XXH_NAME2(XXH_NAMESPACE, XXH32_copyState) +# define XXH32_canonicalFromHash XXH_NAME2(XXH_NAMESPACE, XXH32_canonicalFromHash) +# define XXH32_hashFromCanonical XXH_NAME2(XXH_NAMESPACE, XXH32_hashFromCanonical) +/* XXH64 */ +# define XXH64 XXH_NAME2(XXH_NAMESPACE, XXH64) +# define XXH64_createState XXH_NAME2(XXH_NAMESPACE, XXH64_createState) +# define XXH64_freeState XXH_NAME2(XXH_NAMESPACE, XXH64_freeState) +# define XXH64_reset XXH_NAME2(XXH_NAMESPACE, XXH64_reset) +# define XXH64_update XXH_NAME2(XXH_NAMESPACE, XXH64_update) +# define XXH64_digest XXH_NAME2(XXH_NAMESPACE, XXH64_digest) +# define XXH64_copyState XXH_NAME2(XXH_NAMESPACE, XXH64_copyState) +# define XXH64_canonicalFromHash XXH_NAME2(XXH_NAMESPACE, XXH64_canonicalFromHash) +# define XXH64_hashFromCanonical XXH_NAME2(XXH_NAMESPACE, XXH64_hashFromCanonical) +/* XXH3_64bits */ +# define XXH3_64bits XXH_NAME2(XXH_NAMESPACE, XXH3_64bits) +# define XXH3_64bits_withSecret XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_withSecret) +# define XXH3_64bits_withSeed XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_withSeed) +# define XXH3_64bits_withSecretandSeed XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_withSecretandSeed) +# define XXH3_createState XXH_NAME2(XXH_NAMESPACE, XXH3_createState) +# define XXH3_freeState XXH_NAME2(XXH_NAMESPACE, XXH3_freeState) +# define XXH3_copyState XXH_NAME2(XXH_NAMESPACE, XXH3_copyState) +# define XXH3_64bits_reset XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_reset) +# define XXH3_64bits_reset_withSeed XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_reset_withSeed) +# define XXH3_64bits_reset_withSecret XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_reset_withSecret) +# define XXH3_64bits_reset_withSecretandSeed XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_reset_withSecretandSeed) +# define XXH3_64bits_update XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_update) +# define XXH3_64bits_digest XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_digest) +# define XXH3_generateSecret XXH_NAME2(XXH_NAMESPACE, XXH3_generateSecret) +# define XXH3_generateSecret_fromSeed XXH_NAME2(XXH_NAMESPACE, XXH3_generateSecret_fromSeed) +/* XXH3_128bits */ +# define XXH128 XXH_NAME2(XXH_NAMESPACE, XXH128) +# define XXH3_128bits XXH_NAME2(XXH_NAMESPACE, XXH3_128bits) +# define XXH3_128bits_withSeed XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_withSeed) +# define XXH3_128bits_withSecret XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_withSecret) +# define XXH3_128bits_withSecretandSeed XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_withSecretandSeed) +# define XXH3_128bits_reset XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_reset) +# define XXH3_128bits_reset_withSeed XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_reset_withSeed) +# define XXH3_128bits_reset_withSecret XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_reset_withSecret) +# define XXH3_128bits_reset_withSecretandSeed XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_reset_withSecretandSeed) +# define XXH3_128bits_update XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_update) +# define XXH3_128bits_digest XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_digest) +# define XXH128_isEqual XXH_NAME2(XXH_NAMESPACE, XXH128_isEqual) +# define XXH128_cmp XXH_NAME2(XXH_NAMESPACE, XXH128_cmp) +# define XXH128_canonicalFromHash XXH_NAME2(XXH_NAMESPACE, XXH128_canonicalFromHash) +# define XXH128_hashFromCanonical XXH_NAME2(XXH_NAMESPACE, XXH128_hashFromCanonical) +#endif + + +/* ************************************* +* Compiler specifics +***************************************/ + +/* specific declaration modes for Windows */ +#if !defined(XXH_INLINE_ALL) && !defined(XXH_PRIVATE_API) +# if defined(WIN32) && defined(_MSC_VER) && (defined(XXH_IMPORT) || defined(XXH_EXPORT)) +# ifdef XXH_EXPORT +# define XXH_PUBLIC_API __declspec(dllexport) +# elif XXH_IMPORT +# define XXH_PUBLIC_API __declspec(dllimport) +# endif +# else +# define XXH_PUBLIC_API /* do nothing */ +# endif +#endif + +#if defined (__GNUC__) +# define XXH_CONSTF __attribute__((const)) +# define XXH_PUREF __attribute__((pure)) +# define XXH_MALLOCF __attribute__((malloc)) +#else +# define XXH_CONSTF /* disable */ +# define XXH_PUREF +# define XXH_MALLOCF +#endif + +/* ************************************* +* Version +***************************************/ +#define XXH_VERSION_MAJOR 0 +#define XXH_VERSION_MINOR 8 +#define XXH_VERSION_RELEASE 2 +/*! @brief Version number, encoded as two digits each */ +#define XXH_VERSION_NUMBER (XXH_VERSION_MAJOR *100*100 + XXH_VERSION_MINOR *100 + XXH_VERSION_RELEASE) + +/*! + * @brief Obtains the xxHash version. + * + * This is mostly useful when xxHash is compiled as a shared library, + * since the returned value comes from the library, as opposed to header file. + * + * @return @ref XXH_VERSION_NUMBER of the invoked library. + */ +XXH_PUBLIC_API XXH_CONSTF unsigned XXH_versionNumber (void); + + +/* **************************** +* Common basic types +******************************/ +#include /* size_t */ +/*! + * @brief Exit code for the streaming API. + */ +typedef enum { + XXH_OK = 0, /*!< OK */ + XXH_ERROR /*!< Error */ +} XXH_errorcode; + + +/*-********************************************************************** +* 32-bit hash +************************************************************************/ +#if defined(XXH_DOXYGEN) /* Don't show include */ +/*! + * @brief An unsigned 32-bit integer. + * + * Not necessarily defined to `uint32_t` but functionally equivalent. + */ +typedef uint32_t XXH32_hash_t; + +#elif !defined (__VMS) \ + && (defined (__cplusplus) \ + || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) ) +# ifdef _AIX +# include +# else +# include +# endif + typedef uint32_t XXH32_hash_t; + +#else +# include +# if UINT_MAX == 0xFFFFFFFFUL + typedef unsigned int XXH32_hash_t; +# elif ULONG_MAX == 0xFFFFFFFFUL + typedef unsigned long XXH32_hash_t; +# else +# error "unsupported platform: need a 32-bit type" +# endif +#endif + +/*! + * @} + * + * @defgroup XXH32_family XXH32 family + * @ingroup public + * Contains functions used in the classic 32-bit xxHash algorithm. + * + * @note + * XXH32 is useful for older platforms, with no or poor 64-bit performance. + * Note that the @ref XXH3_family provides competitive speed for both 32-bit + * and 64-bit systems, and offers true 64/128 bit hash results. + * + * @see @ref XXH64_family, @ref XXH3_family : Other xxHash families + * @see @ref XXH32_impl for implementation details + * @{ + */ + +/*! + * @brief Calculates the 32-bit hash of @p input using xxHash32. + * + * @param input The block of data to be hashed, at least @p length bytes in size. + * @param length The length of @p input, in bytes. + * @param seed The 32-bit seed to alter the hash's output predictably. + * + * @pre + * The memory between @p input and @p input + @p length must be valid, + * readable, contiguous memory. However, if @p length is `0`, @p input may be + * `NULL`. In C++, this also must be *TriviallyCopyable*. + * + * @return The calculated 32-bit xxHash32 value. + * + * @see @ref single_shot_example "Single Shot Example" for an example. + */ +XXH_PUBLIC_API XXH_PUREF XXH32_hash_t XXH32 (const void* input, size_t length, XXH32_hash_t seed); + +#ifndef XXH_NO_STREAM +/*! + * @typedef struct XXH32_state_s XXH32_state_t + * @brief The opaque state struct for the XXH32 streaming API. + * + * @see XXH32_state_s for details. + */ +typedef struct XXH32_state_s XXH32_state_t; + +/*! + * @brief Allocates an @ref XXH32_state_t. + * + * @return An allocated pointer of @ref XXH32_state_t on success. + * @return `NULL` on failure. + * + * @note Must be freed with XXH32_freeState(). + */ +XXH_PUBLIC_API XXH_MALLOCF XXH32_state_t* XXH32_createState(void); +/*! + * @brief Frees an @ref XXH32_state_t. + * + * @param statePtr A pointer to an @ref XXH32_state_t allocated with @ref XXH32_createState(). + * + * @return @ref XXH_OK. + * + * @note @p statePtr must be allocated with XXH32_createState(). + * + */ +XXH_PUBLIC_API XXH_errorcode XXH32_freeState(XXH32_state_t* statePtr); +/*! + * @brief Copies one @ref XXH32_state_t to another. + * + * @param dst_state The state to copy to. + * @param src_state The state to copy from. + * @pre + * @p dst_state and @p src_state must not be `NULL` and must not overlap. + */ +XXH_PUBLIC_API void XXH32_copyState(XXH32_state_t* dst_state, const XXH32_state_t* src_state); + +/*! + * @brief Resets an @ref XXH32_state_t to begin a new hash. + * + * @param statePtr The state struct to reset. + * @param seed The 32-bit seed to alter the hash result predictably. + * + * @pre + * @p statePtr must not be `NULL`. + * + * @return @ref XXH_OK on success. + * @return @ref XXH_ERROR on failure. + * + * @note This function resets and seeds a state. Call it before @ref XXH32_update(). + */ +XXH_PUBLIC_API XXH_errorcode XXH32_reset (XXH32_state_t* statePtr, XXH32_hash_t seed); + +/*! + * @brief Consumes a block of @p input to an @ref XXH32_state_t. + * + * @param statePtr The state struct to update. + * @param input The block of data to be hashed, at least @p length bytes in size. + * @param length The length of @p input, in bytes. + * + * @pre + * @p statePtr must not be `NULL`. + * @pre + * The memory between @p input and @p input + @p length must be valid, + * readable, contiguous memory. However, if @p length is `0`, @p input may be + * `NULL`. In C++, this also must be *TriviallyCopyable*. + * + * @return @ref XXH_OK on success. + * @return @ref XXH_ERROR on failure. + * + * @note Call this to incrementally consume blocks of data. + */ +XXH_PUBLIC_API XXH_errorcode XXH32_update (XXH32_state_t* statePtr, const void* input, size_t length); + +/*! + * @brief Returns the calculated hash value from an @ref XXH32_state_t. + * + * @param statePtr The state struct to calculate the hash from. + * + * @pre + * @p statePtr must not be `NULL`. + * + * @return The calculated 32-bit xxHash32 value from that state. + * + * @note + * Calling XXH32_digest() will not affect @p statePtr, so you can update, + * digest, and update again. + */ +XXH_PUBLIC_API XXH_PUREF XXH32_hash_t XXH32_digest (const XXH32_state_t* statePtr); +#endif /* !XXH_NO_STREAM */ + +/******* Canonical representation *******/ + +/*! + * @brief Canonical (big endian) representation of @ref XXH32_hash_t. + */ +typedef struct { + unsigned char digest[4]; /*!< Hash bytes, big endian */ +} XXH32_canonical_t; + +/*! + * @brief Converts an @ref XXH32_hash_t to a big endian @ref XXH32_canonical_t. + * + * @param dst The @ref XXH32_canonical_t pointer to be stored to. + * @param hash The @ref XXH32_hash_t to be converted. + * + * @pre + * @p dst must not be `NULL`. + * + * @see @ref canonical_representation_example "Canonical Representation Example" + */ +XXH_PUBLIC_API void XXH32_canonicalFromHash(XXH32_canonical_t* dst, XXH32_hash_t hash); + +/*! + * @brief Converts an @ref XXH32_canonical_t to a native @ref XXH32_hash_t. + * + * @param src The @ref XXH32_canonical_t to convert. + * + * @pre + * @p src must not be `NULL`. + * + * @return The converted hash. + * + * @see @ref canonical_representation_example "Canonical Representation Example" + */ +XXH_PUBLIC_API XXH_PUREF XXH32_hash_t XXH32_hashFromCanonical(const XXH32_canonical_t* src); + + +/*! @cond Doxygen ignores this part */ +#ifdef __has_attribute +# define XXH_HAS_ATTRIBUTE(x) __has_attribute(x) +#else +# define XXH_HAS_ATTRIBUTE(x) 0 +#endif +/*! @endcond */ + +/*! @cond Doxygen ignores this part */ +/* + * C23 __STDC_VERSION__ number hasn't been specified yet. For now + * leave as `201711L` (C17 + 1). + * TODO: Update to correct value when its been specified. + */ +#define XXH_C23_VN 201711L +/*! @endcond */ + +/*! @cond Doxygen ignores this part */ +/* C-language Attributes are added in C23. */ +#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= XXH_C23_VN) && defined(__has_c_attribute) +# define XXH_HAS_C_ATTRIBUTE(x) __has_c_attribute(x) +#else +# define XXH_HAS_C_ATTRIBUTE(x) 0 +#endif +/*! @endcond */ + +/*! @cond Doxygen ignores this part */ +#if defined(__cplusplus) && defined(__has_cpp_attribute) +# define XXH_HAS_CPP_ATTRIBUTE(x) __has_cpp_attribute(x) +#else +# define XXH_HAS_CPP_ATTRIBUTE(x) 0 +#endif +/*! @endcond */ + +/*! @cond Doxygen ignores this part */ +/* + * Define XXH_FALLTHROUGH macro for annotating switch case with the 'fallthrough' attribute + * introduced in CPP17 and C23. + * CPP17 : https://en.cppreference.com/w/cpp/language/attributes/fallthrough + * C23 : https://en.cppreference.com/w/c/language/attributes/fallthrough + */ +#if XXH_HAS_C_ATTRIBUTE(fallthrough) || XXH_HAS_CPP_ATTRIBUTE(fallthrough) +# define XXH_FALLTHROUGH [[fallthrough]] +#elif XXH_HAS_ATTRIBUTE(__fallthrough__) +# define XXH_FALLTHROUGH __attribute__ ((__fallthrough__)) +#else +# define XXH_FALLTHROUGH /* fallthrough */ +#endif +/*! @endcond */ + +/*! @cond Doxygen ignores this part */ +/* + * Define XXH_NOESCAPE for annotated pointers in public API. + * https://clang.llvm.org/docs/AttributeReference.html#noescape + * As of writing this, only supported by clang. + */ +#if XXH_HAS_ATTRIBUTE(noescape) +# define XXH_NOESCAPE __attribute__((noescape)) +#else +# define XXH_NOESCAPE +#endif +/*! @endcond */ + + +/*! + * @} + * @ingroup public + * @{ + */ + +#ifndef XXH_NO_LONG_LONG +/*-********************************************************************** +* 64-bit hash +************************************************************************/ +#if defined(XXH_DOXYGEN) /* don't include */ +/*! + * @brief An unsigned 64-bit integer. + * + * Not necessarily defined to `uint64_t` but functionally equivalent. + */ +typedef uint64_t XXH64_hash_t; +#elif !defined (__VMS) \ + && (defined (__cplusplus) \ + || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) ) +# ifdef _AIX +# include +# else +# include +# endif + typedef uint64_t XXH64_hash_t; +#else +# include +# if defined(__LP64__) && ULONG_MAX == 0xFFFFFFFFFFFFFFFFULL + /* LP64 ABI says uint64_t is unsigned long */ + typedef unsigned long XXH64_hash_t; +# else + /* the following type must have a width of 64-bit */ + typedef unsigned long long XXH64_hash_t; +# endif +#endif + +/*! + * @} + * + * @defgroup XXH64_family XXH64 family + * @ingroup public + * @{ + * Contains functions used in the classic 64-bit xxHash algorithm. + * + * @note + * XXH3 provides competitive speed for both 32-bit and 64-bit systems, + * and offers true 64/128 bit hash results. + * It provides better speed for systems with vector processing capabilities. + */ + +/*! + * @brief Calculates the 64-bit hash of @p input using xxHash64. + * + * @param input The block of data to be hashed, at least @p length bytes in size. + * @param length The length of @p input, in bytes. + * @param seed The 64-bit seed to alter the hash's output predictably. + * + * @pre + * The memory between @p input and @p input + @p length must be valid, + * readable, contiguous memory. However, if @p length is `0`, @p input may be + * `NULL`. In C++, this also must be *TriviallyCopyable*. + * + * @return The calculated 64-bit xxHash64 value. + * + * @see @ref single_shot_example "Single Shot Example" for an example. + */ +XXH_PUBLIC_API XXH_PUREF XXH64_hash_t XXH64(XXH_NOESCAPE const void* input, size_t length, XXH64_hash_t seed); + +/******* Streaming *******/ +#ifndef XXH_NO_STREAM +/*! + * @brief The opaque state struct for the XXH64 streaming API. + * + * @see XXH64_state_s for details. + */ +typedef struct XXH64_state_s XXH64_state_t; /* incomplete type */ + +/*! + * @brief Allocates an @ref XXH64_state_t. + * + * @return An allocated pointer of @ref XXH64_state_t on success. + * @return `NULL` on failure. + * + * @note Must be freed with XXH64_freeState(). + */ +XXH_PUBLIC_API XXH_MALLOCF XXH64_state_t* XXH64_createState(void); + +/*! + * @brief Frees an @ref XXH64_state_t. + * + * @param statePtr A pointer to an @ref XXH64_state_t allocated with @ref XXH64_createState(). + * + * @return @ref XXH_OK. + * + * @note @p statePtr must be allocated with XXH64_createState(). + */ +XXH_PUBLIC_API XXH_errorcode XXH64_freeState(XXH64_state_t* statePtr); + +/*! + * @brief Copies one @ref XXH64_state_t to another. + * + * @param dst_state The state to copy to. + * @param src_state The state to copy from. + * @pre + * @p dst_state and @p src_state must not be `NULL` and must not overlap. + */ +XXH_PUBLIC_API void XXH64_copyState(XXH_NOESCAPE XXH64_state_t* dst_state, const XXH64_state_t* src_state); + +/*! + * @brief Resets an @ref XXH64_state_t to begin a new hash. + * + * @param statePtr The state struct to reset. + * @param seed The 64-bit seed to alter the hash result predictably. + * + * @pre + * @p statePtr must not be `NULL`. + * + * @return @ref XXH_OK on success. + * @return @ref XXH_ERROR on failure. + * + * @note This function resets and seeds a state. Call it before @ref XXH64_update(). + */ +XXH_PUBLIC_API XXH_errorcode XXH64_reset (XXH_NOESCAPE XXH64_state_t* statePtr, XXH64_hash_t seed); + +/*! + * @brief Consumes a block of @p input to an @ref XXH64_state_t. + * + * @param statePtr The state struct to update. + * @param input The block of data to be hashed, at least @p length bytes in size. + * @param length The length of @p input, in bytes. + * + * @pre + * @p statePtr must not be `NULL`. + * @pre + * The memory between @p input and @p input + @p length must be valid, + * readable, contiguous memory. However, if @p length is `0`, @p input may be + * `NULL`. In C++, this also must be *TriviallyCopyable*. + * + * @return @ref XXH_OK on success. + * @return @ref XXH_ERROR on failure. + * + * @note Call this to incrementally consume blocks of data. + */ +XXH_PUBLIC_API XXH_errorcode XXH64_update (XXH_NOESCAPE XXH64_state_t* statePtr, XXH_NOESCAPE const void* input, size_t length); + +/*! + * @brief Returns the calculated hash value from an @ref XXH64_state_t. + * + * @param statePtr The state struct to calculate the hash from. + * + * @pre + * @p statePtr must not be `NULL`. + * + * @return The calculated 64-bit xxHash64 value from that state. + * + * @note + * Calling XXH64_digest() will not affect @p statePtr, so you can update, + * digest, and update again. + */ +XXH_PUBLIC_API XXH_PUREF XXH64_hash_t XXH64_digest (XXH_NOESCAPE const XXH64_state_t* statePtr); +#endif /* !XXH_NO_STREAM */ +/******* Canonical representation *******/ + +/*! + * @brief Canonical (big endian) representation of @ref XXH64_hash_t. + */ +typedef struct { unsigned char digest[sizeof(XXH64_hash_t)]; } XXH64_canonical_t; + +/*! + * @brief Converts an @ref XXH64_hash_t to a big endian @ref XXH64_canonical_t. + * + * @param dst The @ref XXH64_canonical_t pointer to be stored to. + * @param hash The @ref XXH64_hash_t to be converted. + * + * @pre + * @p dst must not be `NULL`. + * + * @see @ref canonical_representation_example "Canonical Representation Example" + */ +XXH_PUBLIC_API void XXH64_canonicalFromHash(XXH_NOESCAPE XXH64_canonical_t* dst, XXH64_hash_t hash); + +/*! + * @brief Converts an @ref XXH64_canonical_t to a native @ref XXH64_hash_t. + * + * @param src The @ref XXH64_canonical_t to convert. + * + * @pre + * @p src must not be `NULL`. + * + * @return The converted hash. + * + * @see @ref canonical_representation_example "Canonical Representation Example" + */ +XXH_PUBLIC_API XXH_PUREF XXH64_hash_t XXH64_hashFromCanonical(XXH_NOESCAPE const XXH64_canonical_t* src); + +#ifndef XXH_NO_XXH3 + +/*! + * @} + * ************************************************************************ + * @defgroup XXH3_family XXH3 family + * @ingroup public + * @{ + * + * XXH3 is a more recent hash algorithm featuring: + * - Improved speed for both small and large inputs + * - True 64-bit and 128-bit outputs + * - SIMD acceleration + * - Improved 32-bit viability + * + * Speed analysis methodology is explained here: + * + * https://fastcompression.blogspot.com/2019/03/presenting-xxh3.html + * + * Compared to XXH64, expect XXH3 to run approximately + * ~2x faster on large inputs and >3x faster on small ones, + * exact differences vary depending on platform. + * + * XXH3's speed benefits greatly from SIMD and 64-bit arithmetic, + * but does not require it. + * Most 32-bit and 64-bit targets that can run XXH32 smoothly can run XXH3 + * at competitive speeds, even without vector support. Further details are + * explained in the implementation. + * + * XXH3 has a fast scalar implementation, but it also includes accelerated SIMD + * implementations for many common platforms: + * - AVX512 + * - AVX2 + * - SSE2 + * - ARM NEON + * - WebAssembly SIMD128 + * - POWER8 VSX + * - s390x ZVector + * This can be controlled via the @ref XXH_VECTOR macro, but it automatically + * selects the best version according to predefined macros. For the x86 family, an + * automatic runtime dispatcher is included separately in @ref xxh_x86dispatch.c. + * + * XXH3 implementation is portable: + * it has a generic C90 formulation that can be compiled on any platform, + * all implementations generate exactly the same hash value on all platforms. + * Starting from v0.8.0, it's also labelled "stable", meaning that + * any future version will also generate the same hash value. + * + * XXH3 offers 2 variants, _64bits and _128bits. + * + * When only 64 bits are needed, prefer invoking the _64bits variant, as it + * reduces the amount of mixing, resulting in faster speed on small inputs. + * It's also generally simpler to manipulate a scalar return type than a struct. + * + * The API supports one-shot hashing, streaming mode, and custom secrets. + */ +/*-********************************************************************** +* XXH3 64-bit variant +************************************************************************/ + +/*! + * @brief Calculates 64-bit unseeded variant of XXH3 hash of @p input. + * + * @param input The block of data to be hashed, at least @p length bytes in size. + * @param length The length of @p input, in bytes. + * + * @pre + * The memory between @p input and @p input + @p length must be valid, + * readable, contiguous memory. However, if @p length is `0`, @p input may be + * `NULL`. In C++, this also must be *TriviallyCopyable*. + * + * @return The calculated 64-bit XXH3 hash value. + * + * @note + * This is equivalent to @ref XXH3_64bits_withSeed() with a seed of `0`, however + * it may have slightly better performance due to constant propagation of the + * defaults. + * + * @see + * XXH3_64bits_withSeed(), XXH3_64bits_withSecret(): other seeding variants + * @see @ref single_shot_example "Single Shot Example" for an example. + */ +XXH_PUBLIC_API XXH_PUREF XXH64_hash_t XXH3_64bits(XXH_NOESCAPE const void* input, size_t length); + +/*! + * @brief Calculates 64-bit seeded variant of XXH3 hash of @p input. + * + * @param input The block of data to be hashed, at least @p length bytes in size. + * @param length The length of @p input, in bytes. + * @param seed The 64-bit seed to alter the hash result predictably. + * + * @pre + * The memory between @p input and @p input + @p length must be valid, + * readable, contiguous memory. However, if @p length is `0`, @p input may be + * `NULL`. In C++, this also must be *TriviallyCopyable*. + * + * @return The calculated 64-bit XXH3 hash value. + * + * @note + * seed == 0 produces the same results as @ref XXH3_64bits(). + * + * This variant generates a custom secret on the fly based on default secret + * altered using the @p seed value. + * + * While this operation is decently fast, note that it's not completely free. + * + * @see @ref single_shot_example "Single Shot Example" for an example. + */ +XXH_PUBLIC_API XXH_PUREF XXH64_hash_t XXH3_64bits_withSeed(XXH_NOESCAPE const void* input, size_t length, XXH64_hash_t seed); + +/*! + * The bare minimum size for a custom secret. + * + * @see + * XXH3_64bits_withSecret(), XXH3_64bits_reset_withSecret(), + * XXH3_128bits_withSecret(), XXH3_128bits_reset_withSecret(). + */ +#define XXH3_SECRET_SIZE_MIN 136 + +/*! + * @brief Calculates 64-bit variant of XXH3 with a custom "secret". + * + * @param data The block of data to be hashed, at least @p len bytes in size. + * @param len The length of @p data, in bytes. + * @param secret The secret data. + * @param secretSize The length of @p secret, in bytes. + * + * @return The calculated 64-bit XXH3 hash value. + * + * @pre + * The memory between @p data and @p data + @p len must be valid, + * readable, contiguous memory. However, if @p length is `0`, @p data may be + * `NULL`. In C++, this also must be *TriviallyCopyable*. + * + * It's possible to provide any blob of bytes as a "secret" to generate the hash. + * This makes it more difficult for an external actor to prepare an intentional collision. + * The main condition is that @p secretSize *must* be large enough (>= @ref XXH3_SECRET_SIZE_MIN). + * However, the quality of the secret impacts the dispersion of the hash algorithm. + * Therefore, the secret _must_ look like a bunch of random bytes. + * Avoid "trivial" or structured data such as repeated sequences or a text document. + * Whenever in doubt about the "randomness" of the blob of bytes, + * consider employing @ref XXH3_generateSecret() instead (see below). + * It will generate a proper high entropy secret derived from the blob of bytes. + * Another advantage of using XXH3_generateSecret() is that + * it guarantees that all bits within the initial blob of bytes + * will impact every bit of the output. + * This is not necessarily the case when using the blob of bytes directly + * because, when hashing _small_ inputs, only a portion of the secret is employed. + * + * @see @ref single_shot_example "Single Shot Example" for an example. + */ +XXH_PUBLIC_API XXH_PUREF XXH64_hash_t XXH3_64bits_withSecret(XXH_NOESCAPE const void* data, size_t len, XXH_NOESCAPE const void* secret, size_t secretSize); + + +/******* Streaming *******/ +#ifndef XXH_NO_STREAM +/* + * Streaming requires state maintenance. + * This operation costs memory and CPU. + * As a consequence, streaming is slower than one-shot hashing. + * For better performance, prefer one-shot functions whenever applicable. + */ + +/*! + * @brief The opaque state struct for the XXH3 streaming API. + * + * @see XXH3_state_s for details. + */ +typedef struct XXH3_state_s XXH3_state_t; +XXH_PUBLIC_API XXH_MALLOCF XXH3_state_t* XXH3_createState(void); +XXH_PUBLIC_API XXH_errorcode XXH3_freeState(XXH3_state_t* statePtr); + +/*! + * @brief Copies one @ref XXH3_state_t to another. + * + * @param dst_state The state to copy to. + * @param src_state The state to copy from. + * @pre + * @p dst_state and @p src_state must not be `NULL` and must not overlap. + */ +XXH_PUBLIC_API void XXH3_copyState(XXH_NOESCAPE XXH3_state_t* dst_state, XXH_NOESCAPE const XXH3_state_t* src_state); + +/*! + * @brief Resets an @ref XXH3_state_t to begin a new hash. + * + * @param statePtr The state struct to reset. + * + * @pre + * @p statePtr must not be `NULL`. + * + * @return @ref XXH_OK on success. + * @return @ref XXH_ERROR on failure. + * + * @note + * - This function resets `statePtr` and generate a secret with default parameters. + * - Call this function before @ref XXH3_64bits_update(). + * - Digest will be equivalent to `XXH3_64bits()`. + * + */ +XXH_PUBLIC_API XXH_errorcode XXH3_64bits_reset(XXH_NOESCAPE XXH3_state_t* statePtr); + +/*! + * @brief Resets an @ref XXH3_state_t with 64-bit seed to begin a new hash. + * + * @param statePtr The state struct to reset. + * @param seed The 64-bit seed to alter the hash result predictably. + * + * @pre + * @p statePtr must not be `NULL`. + * + * @return @ref XXH_OK on success. + * @return @ref XXH_ERROR on failure. + * + * @note + * - This function resets `statePtr` and generate a secret from `seed`. + * - Call this function before @ref XXH3_64bits_update(). + * - Digest will be equivalent to `XXH3_64bits_withSeed()`. + * + */ +XXH_PUBLIC_API XXH_errorcode XXH3_64bits_reset_withSeed(XXH_NOESCAPE XXH3_state_t* statePtr, XXH64_hash_t seed); + +/*! + * @brief Resets an @ref XXH3_state_t with secret data to begin a new hash. + * + * @param statePtr The state struct to reset. + * @param secret The secret data. + * @param secretSize The length of @p secret, in bytes. + * + * @pre + * @p statePtr must not be `NULL`. + * + * @return @ref XXH_OK on success. + * @return @ref XXH_ERROR on failure. + * + * @note + * `secret` is referenced, it _must outlive_ the hash streaming session. + * + * Similar to one-shot API, `secretSize` must be >= @ref XXH3_SECRET_SIZE_MIN, + * and the quality of produced hash values depends on secret's entropy + * (secret's content should look like a bunch of random bytes). + * When in doubt about the randomness of a candidate `secret`, + * consider employing `XXH3_generateSecret()` instead (see below). + */ +XXH_PUBLIC_API XXH_errorcode XXH3_64bits_reset_withSecret(XXH_NOESCAPE XXH3_state_t* statePtr, XXH_NOESCAPE const void* secret, size_t secretSize); + +/*! + * @brief Consumes a block of @p input to an @ref XXH3_state_t. + * + * @param statePtr The state struct to update. + * @param input The block of data to be hashed, at least @p length bytes in size. + * @param length The length of @p input, in bytes. + * + * @pre + * @p statePtr must not be `NULL`. + * @pre + * The memory between @p input and @p input + @p length must be valid, + * readable, contiguous memory. However, if @p length is `0`, @p input may be + * `NULL`. In C++, this also must be *TriviallyCopyable*. + * + * @return @ref XXH_OK on success. + * @return @ref XXH_ERROR on failure. + * + * @note Call this to incrementally consume blocks of data. + */ +XXH_PUBLIC_API XXH_errorcode XXH3_64bits_update (XXH_NOESCAPE XXH3_state_t* statePtr, XXH_NOESCAPE const void* input, size_t length); + +/*! + * @brief Returns the calculated XXH3 64-bit hash value from an @ref XXH3_state_t. + * + * @param statePtr The state struct to calculate the hash from. + * + * @pre + * @p statePtr must not be `NULL`. + * + * @return The calculated XXH3 64-bit hash value from that state. + * + * @note + * Calling XXH3_64bits_digest() will not affect @p statePtr, so you can update, + * digest, and update again. + */ +XXH_PUBLIC_API XXH_PUREF XXH64_hash_t XXH3_64bits_digest (XXH_NOESCAPE const XXH3_state_t* statePtr); +#endif /* !XXH_NO_STREAM */ + +/* note : canonical representation of XXH3 is the same as XXH64 + * since they both produce XXH64_hash_t values */ + + +/*-********************************************************************** +* XXH3 128-bit variant +************************************************************************/ + +/*! + * @brief The return value from 128-bit hashes. + * + * Stored in little endian order, although the fields themselves are in native + * endianness. + */ +typedef struct { + XXH64_hash_t low64; /*!< `value & 0xFFFFFFFFFFFFFFFF` */ + XXH64_hash_t high64; /*!< `value >> 64` */ +} XXH128_hash_t; + +/*! + * @brief Calculates 128-bit unseeded variant of XXH3 of @p data. + * + * @param data The block of data to be hashed, at least @p length bytes in size. + * @param len The length of @p data, in bytes. + * + * @return The calculated 128-bit variant of XXH3 value. + * + * The 128-bit variant of XXH3 has more strength, but it has a bit of overhead + * for shorter inputs. + * + * This is equivalent to @ref XXH3_128bits_withSeed() with a seed of `0`, however + * it may have slightly better performance due to constant propagation of the + * defaults. + * + * @see XXH3_128bits_withSeed(), XXH3_128bits_withSecret(): other seeding variants + * @see @ref single_shot_example "Single Shot Example" for an example. + */ +XXH_PUBLIC_API XXH_PUREF XXH128_hash_t XXH3_128bits(XXH_NOESCAPE const void* data, size_t len); +/*! @brief Calculates 128-bit seeded variant of XXH3 hash of @p data. + * + * @param data The block of data to be hashed, at least @p length bytes in size. + * @param len The length of @p data, in bytes. + * @param seed The 64-bit seed to alter the hash result predictably. + * + * @return The calculated 128-bit variant of XXH3 value. + * + * @note + * seed == 0 produces the same results as @ref XXH3_64bits(). + * + * This variant generates a custom secret on the fly based on default secret + * altered using the @p seed value. + * + * While this operation is decently fast, note that it's not completely free. + * + * @see XXH3_128bits(), XXH3_128bits_withSecret(): other seeding variants + * @see @ref single_shot_example "Single Shot Example" for an example. + */ +XXH_PUBLIC_API XXH_PUREF XXH128_hash_t XXH3_128bits_withSeed(XXH_NOESCAPE const void* data, size_t len, XXH64_hash_t seed); +/*! + * @brief Calculates 128-bit variant of XXH3 with a custom "secret". + * + * @param data The block of data to be hashed, at least @p len bytes in size. + * @param len The length of @p data, in bytes. + * @param secret The secret data. + * @param secretSize The length of @p secret, in bytes. + * + * @return The calculated 128-bit variant of XXH3 value. + * + * It's possible to provide any blob of bytes as a "secret" to generate the hash. + * This makes it more difficult for an external actor to prepare an intentional collision. + * The main condition is that @p secretSize *must* be large enough (>= @ref XXH3_SECRET_SIZE_MIN). + * However, the quality of the secret impacts the dispersion of the hash algorithm. + * Therefore, the secret _must_ look like a bunch of random bytes. + * Avoid "trivial" or structured data such as repeated sequences or a text document. + * Whenever in doubt about the "randomness" of the blob of bytes, + * consider employing @ref XXH3_generateSecret() instead (see below). + * It will generate a proper high entropy secret derived from the blob of bytes. + * Another advantage of using XXH3_generateSecret() is that + * it guarantees that all bits within the initial blob of bytes + * will impact every bit of the output. + * This is not necessarily the case when using the blob of bytes directly + * because, when hashing _small_ inputs, only a portion of the secret is employed. + * + * @see @ref single_shot_example "Single Shot Example" for an example. + */ +XXH_PUBLIC_API XXH_PUREF XXH128_hash_t XXH3_128bits_withSecret(XXH_NOESCAPE const void* data, size_t len, XXH_NOESCAPE const void* secret, size_t secretSize); + +/******* Streaming *******/ +#ifndef XXH_NO_STREAM +/* + * Streaming requires state maintenance. + * This operation costs memory and CPU. + * As a consequence, streaming is slower than one-shot hashing. + * For better performance, prefer one-shot functions whenever applicable. + * + * XXH3_128bits uses the same XXH3_state_t as XXH3_64bits(). + * Use already declared XXH3_createState() and XXH3_freeState(). + * + * All reset and streaming functions have same meaning as their 64-bit counterpart. + */ + +/*! + * @brief Resets an @ref XXH3_state_t to begin a new hash. + * + * @param statePtr The state struct to reset. + * + * @pre + * @p statePtr must not be `NULL`. + * + * @return @ref XXH_OK on success. + * @return @ref XXH_ERROR on failure. + * + * @note + * - This function resets `statePtr` and generate a secret with default parameters. + * - Call it before @ref XXH3_128bits_update(). + * - Digest will be equivalent to `XXH3_128bits()`. + */ +XXH_PUBLIC_API XXH_errorcode XXH3_128bits_reset(XXH_NOESCAPE XXH3_state_t* statePtr); + +/*! + * @brief Resets an @ref XXH3_state_t with 64-bit seed to begin a new hash. + * + * @param statePtr The state struct to reset. + * @param seed The 64-bit seed to alter the hash result predictably. + * + * @pre + * @p statePtr must not be `NULL`. + * + * @return @ref XXH_OK on success. + * @return @ref XXH_ERROR on failure. + * + * @note + * - This function resets `statePtr` and generate a secret from `seed`. + * - Call it before @ref XXH3_128bits_update(). + * - Digest will be equivalent to `XXH3_128bits_withSeed()`. + */ +XXH_PUBLIC_API XXH_errorcode XXH3_128bits_reset_withSeed(XXH_NOESCAPE XXH3_state_t* statePtr, XXH64_hash_t seed); +/*! + * @brief Resets an @ref XXH3_state_t with secret data to begin a new hash. + * + * @param statePtr The state struct to reset. + * @param secret The secret data. + * @param secretSize The length of @p secret, in bytes. + * + * @pre + * @p statePtr must not be `NULL`. + * + * @return @ref XXH_OK on success. + * @return @ref XXH_ERROR on failure. + * + * `secret` is referenced, it _must outlive_ the hash streaming session. + * Similar to one-shot API, `secretSize` must be >= @ref XXH3_SECRET_SIZE_MIN, + * and the quality of produced hash values depends on secret's entropy + * (secret's content should look like a bunch of random bytes). + * When in doubt about the randomness of a candidate `secret`, + * consider employing `XXH3_generateSecret()` instead (see below). + */ +XXH_PUBLIC_API XXH_errorcode XXH3_128bits_reset_withSecret(XXH_NOESCAPE XXH3_state_t* statePtr, XXH_NOESCAPE const void* secret, size_t secretSize); + +/*! + * @brief Consumes a block of @p input to an @ref XXH3_state_t. + * + * Call this to incrementally consume blocks of data. + * + * @param statePtr The state struct to update. + * @param input The block of data to be hashed, at least @p length bytes in size. + * @param length The length of @p input, in bytes. + * + * @pre + * @p statePtr must not be `NULL`. + * + * @return @ref XXH_OK on success. + * @return @ref XXH_ERROR on failure. + * + * @note + * The memory between @p input and @p input + @p length must be valid, + * readable, contiguous memory. However, if @p length is `0`, @p input may be + * `NULL`. In C++, this also must be *TriviallyCopyable*. + * + */ +XXH_PUBLIC_API XXH_errorcode XXH3_128bits_update (XXH_NOESCAPE XXH3_state_t* statePtr, XXH_NOESCAPE const void* input, size_t length); + +/*! + * @brief Returns the calculated XXH3 128-bit hash value from an @ref XXH3_state_t. + * + * @param statePtr The state struct to calculate the hash from. + * + * @pre + * @p statePtr must not be `NULL`. + * + * @return The calculated XXH3 128-bit hash value from that state. + * + * @note + * Calling XXH3_128bits_digest() will not affect @p statePtr, so you can update, + * digest, and update again. + * + */ +XXH_PUBLIC_API XXH_PUREF XXH128_hash_t XXH3_128bits_digest (XXH_NOESCAPE const XXH3_state_t* statePtr); +#endif /* !XXH_NO_STREAM */ + +/* Following helper functions make it possible to compare XXH128_hast_t values. + * Since XXH128_hash_t is a structure, this capability is not offered by the language. + * Note: For better performance, these functions can be inlined using XXH_INLINE_ALL */ + +/*! + * @brief Check equality of two XXH128_hash_t values + * + * @param h1 The 128-bit hash value. + * @param h2 Another 128-bit hash value. + * + * @return `1` if `h1` and `h2` are equal. + * @return `0` if they are not. + */ +XXH_PUBLIC_API XXH_PUREF int XXH128_isEqual(XXH128_hash_t h1, XXH128_hash_t h2); + +/*! + * @brief Compares two @ref XXH128_hash_t + * + * This comparator is compatible with stdlib's `qsort()`/`bsearch()`. + * + * @param h128_1 Left-hand side value + * @param h128_2 Right-hand side value + * + * @return >0 if @p h128_1 > @p h128_2 + * @return =0 if @p h128_1 == @p h128_2 + * @return <0 if @p h128_1 < @p h128_2 + */ +XXH_PUBLIC_API XXH_PUREF int XXH128_cmp(XXH_NOESCAPE const void* h128_1, XXH_NOESCAPE const void* h128_2); + + +/******* Canonical representation *******/ +typedef struct { unsigned char digest[sizeof(XXH128_hash_t)]; } XXH128_canonical_t; + + +/*! + * @brief Converts an @ref XXH128_hash_t to a big endian @ref XXH128_canonical_t. + * + * @param dst The @ref XXH128_canonical_t pointer to be stored to. + * @param hash The @ref XXH128_hash_t to be converted. + * + * @pre + * @p dst must not be `NULL`. + * @see @ref canonical_representation_example "Canonical Representation Example" + */ +XXH_PUBLIC_API void XXH128_canonicalFromHash(XXH_NOESCAPE XXH128_canonical_t* dst, XXH128_hash_t hash); + +/*! + * @brief Converts an @ref XXH128_canonical_t to a native @ref XXH128_hash_t. + * + * @param src The @ref XXH128_canonical_t to convert. + * + * @pre + * @p src must not be `NULL`. + * + * @return The converted hash. + * @see @ref canonical_representation_example "Canonical Representation Example" + */ +XXH_PUBLIC_API XXH_PUREF XXH128_hash_t XXH128_hashFromCanonical(XXH_NOESCAPE const XXH128_canonical_t* src); + + +#endif /* !XXH_NO_XXH3 */ +#endif /* XXH_NO_LONG_LONG */ + +/*! + * @} + */ +#endif /* XXHASH_H_5627135585666179 */ + + + +#if defined(XXH_STATIC_LINKING_ONLY) && !defined(XXHASH_H_STATIC_13879238742) +#define XXHASH_H_STATIC_13879238742 +/* **************************************************************************** + * This section contains declarations which are not guaranteed to remain stable. + * They may change in future versions, becoming incompatible with a different + * version of the library. + * These declarations should only be used with static linking. + * Never use them in association with dynamic linking! + ***************************************************************************** */ + +/* + * These definitions are only present to allow static allocation + * of XXH states, on stack or in a struct, for example. + * Never **ever** access their members directly. + */ + +/*! + * @internal + * @brief Structure for XXH32 streaming API. + * + * @note This is only defined when @ref XXH_STATIC_LINKING_ONLY, + * @ref XXH_INLINE_ALL, or @ref XXH_IMPLEMENTATION is defined. Otherwise it is + * an opaque type. This allows fields to safely be changed. + * + * Typedef'd to @ref XXH32_state_t. + * Do not access the members of this struct directly. + * @see XXH64_state_s, XXH3_state_s + */ +struct XXH32_state_s { + XXH32_hash_t total_len_32; /*!< Total length hashed, modulo 2^32 */ + XXH32_hash_t large_len; /*!< Whether the hash is >= 16 (handles @ref total_len_32 overflow) */ + XXH32_hash_t v[4]; /*!< Accumulator lanes */ + XXH32_hash_t mem32[4]; /*!< Internal buffer for partial reads. Treated as unsigned char[16]. */ + XXH32_hash_t memsize; /*!< Amount of data in @ref mem32 */ + XXH32_hash_t reserved; /*!< Reserved field. Do not read nor write to it. */ +}; /* typedef'd to XXH32_state_t */ + + +#ifndef XXH_NO_LONG_LONG /* defined when there is no 64-bit support */ + +/*! + * @internal + * @brief Structure for XXH64 streaming API. + * + * @note This is only defined when @ref XXH_STATIC_LINKING_ONLY, + * @ref XXH_INLINE_ALL, or @ref XXH_IMPLEMENTATION is defined. Otherwise it is + * an opaque type. This allows fields to safely be changed. + * + * Typedef'd to @ref XXH64_state_t. + * Do not access the members of this struct directly. + * @see XXH32_state_s, XXH3_state_s + */ +struct XXH64_state_s { + XXH64_hash_t total_len; /*!< Total length hashed. This is always 64-bit. */ + XXH64_hash_t v[4]; /*!< Accumulator lanes */ + XXH64_hash_t mem64[4]; /*!< Internal buffer for partial reads. Treated as unsigned char[32]. */ + XXH32_hash_t memsize; /*!< Amount of data in @ref mem64 */ + XXH32_hash_t reserved32; /*!< Reserved field, needed for padding anyways*/ + XXH64_hash_t reserved64; /*!< Reserved field. Do not read or write to it. */ +}; /* typedef'd to XXH64_state_t */ + +#ifndef XXH_NO_XXH3 + +#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) /* >= C11 */ +# include +# define XXH_ALIGN(n) alignas(n) +#elif defined(__cplusplus) && (__cplusplus >= 201103L) /* >= C++11 */ +/* In C++ alignas() is a keyword */ +# define XXH_ALIGN(n) alignas(n) +#elif defined(__GNUC__) +# define XXH_ALIGN(n) __attribute__ ((aligned(n))) +#elif defined(_MSC_VER) +# define XXH_ALIGN(n) __declspec(align(n)) +#else +# define XXH_ALIGN(n) /* disabled */ +#endif + +/* Old GCC versions only accept the attribute after the type in structures. */ +#if !(defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)) /* C11+ */ \ + && ! (defined(__cplusplus) && (__cplusplus >= 201103L)) /* >= C++11 */ \ + && defined(__GNUC__) +# define XXH_ALIGN_MEMBER(align, type) type XXH_ALIGN(align) +#else +# define XXH_ALIGN_MEMBER(align, type) XXH_ALIGN(align) type +#endif + +/*! + * @brief The size of the internal XXH3 buffer. + * + * This is the optimal update size for incremental hashing. + * + * @see XXH3_64b_update(), XXH3_128b_update(). + */ +#define XXH3_INTERNALBUFFER_SIZE 256 + +/*! + * @internal + * @brief Default size of the secret buffer (and @ref XXH3_kSecret). + * + * This is the size used in @ref XXH3_kSecret and the seeded functions. + * + * Not to be confused with @ref XXH3_SECRET_SIZE_MIN. + */ +#define XXH3_SECRET_DEFAULT_SIZE 192 + +/*! + * @internal + * @brief Structure for XXH3 streaming API. + * + * @note This is only defined when @ref XXH_STATIC_LINKING_ONLY, + * @ref XXH_INLINE_ALL, or @ref XXH_IMPLEMENTATION is defined. + * Otherwise it is an opaque type. + * Never use this definition in combination with dynamic library. + * This allows fields to safely be changed in the future. + * + * @note ** This structure has a strict alignment requirement of 64 bytes!! ** + * Do not allocate this with `malloc()` or `new`, + * it will not be sufficiently aligned. + * Use @ref XXH3_createState() and @ref XXH3_freeState(), or stack allocation. + * + * Typedef'd to @ref XXH3_state_t. + * Do never access the members of this struct directly. + * + * @see XXH3_INITSTATE() for stack initialization. + * @see XXH3_createState(), XXH3_freeState(). + * @see XXH32_state_s, XXH64_state_s + */ +struct XXH3_state_s { + XXH_ALIGN_MEMBER(64, XXH64_hash_t acc[8]); + /*!< The 8 accumulators. See @ref XXH32_state_s::v and @ref XXH64_state_s::v */ + XXH_ALIGN_MEMBER(64, unsigned char customSecret[XXH3_SECRET_DEFAULT_SIZE]); + /*!< Used to store a custom secret generated from a seed. */ + XXH_ALIGN_MEMBER(64, unsigned char buffer[XXH3_INTERNALBUFFER_SIZE]); + /*!< The internal buffer. @see XXH32_state_s::mem32 */ + XXH32_hash_t bufferedSize; + /*!< The amount of memory in @ref buffer, @see XXH32_state_s::memsize */ + XXH32_hash_t useSeed; + /*!< Reserved field. Needed for padding on 64-bit. */ + size_t nbStripesSoFar; + /*!< Number or stripes processed. */ + XXH64_hash_t totalLen; + /*!< Total length hashed. 64-bit even on 32-bit targets. */ + size_t nbStripesPerBlock; + /*!< Number of stripes per block. */ + size_t secretLimit; + /*!< Size of @ref customSecret or @ref extSecret */ + XXH64_hash_t seed; + /*!< Seed for _withSeed variants. Must be zero otherwise, @see XXH3_INITSTATE() */ + XXH64_hash_t reserved64; + /*!< Reserved field. */ + const unsigned char* extSecret; + /*!< Reference to an external secret for the _withSecret variants, NULL + * for other variants. */ + /* note: there may be some padding at the end due to alignment on 64 bytes */ +}; /* typedef'd to XXH3_state_t */ + +#undef XXH_ALIGN_MEMBER + +/*! + * @brief Initializes a stack-allocated `XXH3_state_s`. + * + * When the @ref XXH3_state_t structure is merely emplaced on stack, + * it should be initialized with XXH3_INITSTATE() or a memset() + * in case its first reset uses XXH3_NNbits_reset_withSeed(). + * This init can be omitted if the first reset uses default or _withSecret mode. + * This operation isn't necessary when the state is created with XXH3_createState(). + * Note that this doesn't prepare the state for a streaming operation, + * it's still necessary to use XXH3_NNbits_reset*() afterwards. + */ +#define XXH3_INITSTATE(XXH3_state_ptr) \ + do { \ + XXH3_state_t* tmp_xxh3_state_ptr = (XXH3_state_ptr); \ + tmp_xxh3_state_ptr->seed = 0; \ + tmp_xxh3_state_ptr->extSecret = NULL; \ + } while(0) + + +/*! + * @brief Calculates the 128-bit hash of @p data using XXH3. + * + * @param data The block of data to be hashed, at least @p len bytes in size. + * @param len The length of @p data, in bytes. + * @param seed The 64-bit seed to alter the hash's output predictably. + * + * @pre + * The memory between @p data and @p data + @p len must be valid, + * readable, contiguous memory. However, if @p len is `0`, @p data may be + * `NULL`. In C++, this also must be *TriviallyCopyable*. + * + * @return The calculated 128-bit XXH3 value. + * + * @see @ref single_shot_example "Single Shot Example" for an example. + */ +XXH_PUBLIC_API XXH_PUREF XXH128_hash_t XXH128(XXH_NOESCAPE const void* data, size_t len, XXH64_hash_t seed); + + +/* === Experimental API === */ +/* Symbols defined below must be considered tied to a specific library version. */ + +/*! + * @brief Derive a high-entropy secret from any user-defined content, named customSeed. + * + * @param secretBuffer A writable buffer for derived high-entropy secret data. + * @param secretSize Size of secretBuffer, in bytes. Must be >= XXH3_SECRET_DEFAULT_SIZE. + * @param customSeed A user-defined content. + * @param customSeedSize Size of customSeed, in bytes. + * + * @return @ref XXH_OK on success. + * @return @ref XXH_ERROR on failure. + * + * The generated secret can be used in combination with `*_withSecret()` functions. + * The `_withSecret()` variants are useful to provide a higher level of protection + * than 64-bit seed, as it becomes much more difficult for an external actor to + * guess how to impact the calculation logic. + * + * The function accepts as input a custom seed of any length and any content, + * and derives from it a high-entropy secret of length @p secretSize into an + * already allocated buffer @p secretBuffer. + * + * The generated secret can then be used with any `*_withSecret()` variant. + * The functions @ref XXH3_128bits_withSecret(), @ref XXH3_64bits_withSecret(), + * @ref XXH3_128bits_reset_withSecret() and @ref XXH3_64bits_reset_withSecret() + * are part of this list. They all accept a `secret` parameter + * which must be large enough for implementation reasons (>= @ref XXH3_SECRET_SIZE_MIN) + * _and_ feature very high entropy (consist of random-looking bytes). + * These conditions can be a high bar to meet, so @ref XXH3_generateSecret() can + * be employed to ensure proper quality. + * + * @p customSeed can be anything. It can have any size, even small ones, + * and its content can be anything, even "poor entropy" sources such as a bunch + * of zeroes. The resulting `secret` will nonetheless provide all required qualities. + * + * @pre + * - @p secretSize must be >= @ref XXH3_SECRET_SIZE_MIN + * - When @p customSeedSize > 0, supplying NULL as customSeed is undefined behavior. + * + * Example code: + * @code{.c} + * #include + * #include + * #include + * #define XXH_STATIC_LINKING_ONLY // expose unstable API + * #include "xxhash.h" + * // Hashes argv[2] using the entropy from argv[1]. + * int main(int argc, char* argv[]) + * { + * char secret[XXH3_SECRET_SIZE_MIN]; + * if (argv != 3) { return 1; } + * XXH3_generateSecret(secret, sizeof(secret), argv[1], strlen(argv[1])); + * XXH64_hash_t h = XXH3_64bits_withSecret( + * argv[2], strlen(argv[2]), + * secret, sizeof(secret) + * ); + * printf("%016llx\n", (unsigned long long) h); + * } + * @endcode + */ +XXH_PUBLIC_API XXH_errorcode XXH3_generateSecret(XXH_NOESCAPE void* secretBuffer, size_t secretSize, XXH_NOESCAPE const void* customSeed, size_t customSeedSize); + +/*! + * @brief Generate the same secret as the _withSeed() variants. + * + * @param secretBuffer A writable buffer of @ref XXH3_SECRET_SIZE_MIN bytes + * @param seed The 64-bit seed to alter the hash result predictably. + * + * The generated secret can be used in combination with + *`*_withSecret()` and `_withSecretandSeed()` variants. + * + * Example C++ `std::string` hash class: + * @code{.cpp} + * #include + * #define XXH_STATIC_LINKING_ONLY // expose unstable API + * #include "xxhash.h" + * // Slow, seeds each time + * class HashSlow { + * XXH64_hash_t seed; + * public: + * HashSlow(XXH64_hash_t s) : seed{s} {} + * size_t operator()(const std::string& x) const { + * return size_t{XXH3_64bits_withSeed(x.c_str(), x.length(), seed)}; + * } + * }; + * // Fast, caches the seeded secret for future uses. + * class HashFast { + * unsigned char secret[XXH3_SECRET_SIZE_MIN]; + * public: + * HashFast(XXH64_hash_t s) { + * XXH3_generateSecret_fromSeed(secret, seed); + * } + * size_t operator()(const std::string& x) const { + * return size_t{ + * XXH3_64bits_withSecret(x.c_str(), x.length(), secret, sizeof(secret)) + * }; + * } + * }; + * @endcode + */ +XXH_PUBLIC_API void XXH3_generateSecret_fromSeed(XXH_NOESCAPE void* secretBuffer, XXH64_hash_t seed); + +/*! + * @brief Calculates 64/128-bit seeded variant of XXH3 hash of @p data. + * + * @param data The block of data to be hashed, at least @p len bytes in size. + * @param len The length of @p data, in bytes. + * @param secret The secret data. + * @param secretSize The length of @p secret, in bytes. + * @param seed The 64-bit seed to alter the hash result predictably. + * + * These variants generate hash values using either + * @p seed for "short" keys (< @ref XXH3_MIDSIZE_MAX = 240 bytes) + * or @p secret for "large" keys (>= @ref XXH3_MIDSIZE_MAX). + * + * This generally benefits speed, compared to `_withSeed()` or `_withSecret()`. + * `_withSeed()` has to generate the secret on the fly for "large" keys. + * It's fast, but can be perceptible for "not so large" keys (< 1 KB). + * `_withSecret()` has to generate the masks on the fly for "small" keys, + * which requires more instructions than _withSeed() variants. + * Therefore, _withSecretandSeed variant combines the best of both worlds. + * + * When @p secret has been generated by XXH3_generateSecret_fromSeed(), + * this variant produces *exactly* the same results as `_withSeed()` variant, + * hence offering only a pure speed benefit on "large" input, + * by skipping the need to regenerate the secret for every large input. + * + * Another usage scenario is to hash the secret to a 64-bit hash value, + * for example with XXH3_64bits(), which then becomes the seed, + * and then employ both the seed and the secret in _withSecretandSeed(). + * On top of speed, an added benefit is that each bit in the secret + * has a 50% chance to swap each bit in the output, via its impact to the seed. + * + * This is not guaranteed when using the secret directly in "small data" scenarios, + * because only portions of the secret are employed for small data. + */ +XXH_PUBLIC_API XXH_PUREF XXH64_hash_t +XXH3_64bits_withSecretandSeed(XXH_NOESCAPE const void* data, size_t len, + XXH_NOESCAPE const void* secret, size_t secretSize, + XXH64_hash_t seed); +/*! + * @brief Calculates 128-bit seeded variant of XXH3 hash of @p data. + * + * @param input The block of data to be hashed, at least @p len bytes in size. + * @param length The length of @p data, in bytes. + * @param secret The secret data. + * @param secretSize The length of @p secret, in bytes. + * @param seed64 The 64-bit seed to alter the hash result predictably. + * + * @return @ref XXH_OK on success. + * @return @ref XXH_ERROR on failure. + * + * @see XXH3_64bits_withSecretandSeed() + */ +XXH_PUBLIC_API XXH_PUREF XXH128_hash_t +XXH3_128bits_withSecretandSeed(XXH_NOESCAPE const void* input, size_t length, + XXH_NOESCAPE const void* secret, size_t secretSize, + XXH64_hash_t seed64); +#ifndef XXH_NO_STREAM +/*! + * @brief Resets an @ref XXH3_state_t with secret data to begin a new hash. + * + * @param statePtr A pointer to an @ref XXH3_state_t allocated with @ref XXH3_createState(). + * @param secret The secret data. + * @param secretSize The length of @p secret, in bytes. + * @param seed64 The 64-bit seed to alter the hash result predictably. + * + * @return @ref XXH_OK on success. + * @return @ref XXH_ERROR on failure. + * + * @see XXH3_64bits_withSecretandSeed() + */ +XXH_PUBLIC_API XXH_errorcode +XXH3_64bits_reset_withSecretandSeed(XXH_NOESCAPE XXH3_state_t* statePtr, + XXH_NOESCAPE const void* secret, size_t secretSize, + XXH64_hash_t seed64); +/*! + * @brief Resets an @ref XXH3_state_t with secret data to begin a new hash. + * + * @param statePtr A pointer to an @ref XXH3_state_t allocated with @ref XXH3_createState(). + * @param secret The secret data. + * @param secretSize The length of @p secret, in bytes. + * @param seed64 The 64-bit seed to alter the hash result predictably. + * + * @return @ref XXH_OK on success. + * @return @ref XXH_ERROR on failure. + * + * @see XXH3_64bits_withSecretandSeed() + */ +XXH_PUBLIC_API XXH_errorcode +XXH3_128bits_reset_withSecretandSeed(XXH_NOESCAPE XXH3_state_t* statePtr, + XXH_NOESCAPE const void* secret, size_t secretSize, + XXH64_hash_t seed64); +#endif /* !XXH_NO_STREAM */ + +#endif /* !XXH_NO_XXH3 */ +#endif /* XXH_NO_LONG_LONG */ +#if defined(XXH_INLINE_ALL) || defined(XXH_PRIVATE_API) +# define XXH_IMPLEMENTATION +#endif + +#endif /* defined(XXH_STATIC_LINKING_ONLY) && !defined(XXHASH_H_STATIC_13879238742) */ + + +/* ======================================================================== */ +/* ======================================================================== */ +/* ======================================================================== */ + + +/*-********************************************************************** + * xxHash implementation + *-********************************************************************** + * xxHash's implementation used to be hosted inside xxhash.c. + * + * However, inlining requires implementation to be visible to the compiler, + * hence be included alongside the header. + * Previously, implementation was hosted inside xxhash.c, + * which was then #included when inlining was activated. + * This construction created issues with a few build and install systems, + * as it required xxhash.c to be stored in /include directory. + * + * xxHash implementation is now directly integrated within xxhash.h. + * As a consequence, xxhash.c is no longer needed in /include. + * + * xxhash.c is still available and is still useful. + * In a "normal" setup, when xxhash is not inlined, + * xxhash.h only exposes the prototypes and public symbols, + * while xxhash.c can be built into an object file xxhash.o + * which can then be linked into the final binary. + ************************************************************************/ + +#if ( defined(XXH_INLINE_ALL) || defined(XXH_PRIVATE_API) \ + || defined(XXH_IMPLEMENTATION) ) && !defined(XXH_IMPLEM_13a8737387) +# define XXH_IMPLEM_13a8737387 + +/* ************************************* +* Tuning parameters +***************************************/ + +/*! + * @defgroup tuning Tuning parameters + * @{ + * + * Various macros to control xxHash's behavior. + */ +#ifdef XXH_DOXYGEN +/*! + * @brief Define this to disable 64-bit code. + * + * Useful if only using the @ref XXH32_family and you have a strict C90 compiler. + */ +# define XXH_NO_LONG_LONG +# undef XXH_NO_LONG_LONG /* don't actually */ +/*! + * @brief Controls how unaligned memory is accessed. + * + * By default, access to unaligned memory is controlled by `memcpy()`, which is + * safe and portable. + * + * Unfortunately, on some target/compiler combinations, the generated assembly + * is sub-optimal. + * + * The below switch allow selection of a different access method + * in the search for improved performance. + * + * @par Possible options: + * + * - `XXH_FORCE_MEMORY_ACCESS=0` (default): `memcpy` + * @par + * Use `memcpy()`. Safe and portable. Note that most modern compilers will + * eliminate the function call and treat it as an unaligned access. + * + * - `XXH_FORCE_MEMORY_ACCESS=1`: `__attribute__((aligned(1)))` + * @par + * Depends on compiler extensions and is therefore not portable. + * This method is safe _if_ your compiler supports it, + * and *generally* as fast or faster than `memcpy`. + * + * - `XXH_FORCE_MEMORY_ACCESS=2`: Direct cast + * @par + * Casts directly and dereferences. This method doesn't depend on the + * compiler, but it violates the C standard as it directly dereferences an + * unaligned pointer. It can generate buggy code on targets which do not + * support unaligned memory accesses, but in some circumstances, it's the + * only known way to get the most performance. + * + * - `XXH_FORCE_MEMORY_ACCESS=3`: Byteshift + * @par + * Also portable. This can generate the best code on old compilers which don't + * inline small `memcpy()` calls, and it might also be faster on big-endian + * systems which lack a native byteswap instruction. However, some compilers + * will emit literal byteshifts even if the target supports unaligned access. + * + * + * @warning + * Methods 1 and 2 rely on implementation-defined behavior. Use these with + * care, as what works on one compiler/platform/optimization level may cause + * another to read garbage data or even crash. + * + * See https://fastcompression.blogspot.com/2015/08/accessing-unaligned-memory.html for details. + * + * Prefer these methods in priority order (0 > 3 > 1 > 2) + */ +# define XXH_FORCE_MEMORY_ACCESS 0 + +/*! + * @def XXH_SIZE_OPT + * @brief Controls how much xxHash optimizes for size. + * + * xxHash, when compiled, tends to result in a rather large binary size. This + * is mostly due to heavy usage to forced inlining and constant folding of the + * @ref XXH3_family to increase performance. + * + * However, some developers prefer size over speed. This option can + * significantly reduce the size of the generated code. When using the `-Os` + * or `-Oz` options on GCC or Clang, this is defined to 1 by default, + * otherwise it is defined to 0. + * + * Most of these size optimizations can be controlled manually. + * + * This is a number from 0-2. + * - `XXH_SIZE_OPT` == 0: Default. xxHash makes no size optimizations. Speed + * comes first. + * - `XXH_SIZE_OPT` == 1: Default for `-Os` and `-Oz`. xxHash is more + * conservative and disables hacks that increase code size. It implies the + * options @ref XXH_NO_INLINE_HINTS == 1, @ref XXH_FORCE_ALIGN_CHECK == 0, + * and @ref XXH3_NEON_LANES == 8 if they are not already defined. + * - `XXH_SIZE_OPT` == 2: xxHash tries to make itself as small as possible. + * Performance may cry. For example, the single shot functions just use the + * streaming API. + */ +# define XXH_SIZE_OPT 0 + +/*! + * @def XXH_FORCE_ALIGN_CHECK + * @brief If defined to non-zero, adds a special path for aligned inputs (XXH32() + * and XXH64() only). + * + * This is an important performance trick for architectures without decent + * unaligned memory access performance. + * + * It checks for input alignment, and when conditions are met, uses a "fast + * path" employing direct 32-bit/64-bit reads, resulting in _dramatically + * faster_ read speed. + * + * The check costs one initial branch per hash, which is generally negligible, + * but not zero. + * + * Moreover, it's not useful to generate an additional code path if memory + * access uses the same instruction for both aligned and unaligned + * addresses (e.g. x86 and aarch64). + * + * In these cases, the alignment check can be removed by setting this macro to 0. + * Then the code will always use unaligned memory access. + * Align check is automatically disabled on x86, x64, ARM64, and some ARM chips + * which are platforms known to offer good unaligned memory accesses performance. + * + * It is also disabled by default when @ref XXH_SIZE_OPT >= 1. + * + * This option does not affect XXH3 (only XXH32 and XXH64). + */ +# define XXH_FORCE_ALIGN_CHECK 0 + +/*! + * @def XXH_NO_INLINE_HINTS + * @brief When non-zero, sets all functions to `static`. + * + * By default, xxHash tries to force the compiler to inline almost all internal + * functions. + * + * This can usually improve performance due to reduced jumping and improved + * constant folding, but significantly increases the size of the binary which + * might not be favorable. + * + * Additionally, sometimes the forced inlining can be detrimental to performance, + * depending on the architecture. + * + * XXH_NO_INLINE_HINTS marks all internal functions as static, giving the + * compiler full control on whether to inline or not. + * + * When not optimizing (-O0), using `-fno-inline` with GCC or Clang, or if + * @ref XXH_SIZE_OPT >= 1, this will automatically be defined. + */ +# define XXH_NO_INLINE_HINTS 0 + +/*! + * @def XXH3_INLINE_SECRET + * @brief Determines whether to inline the XXH3 withSecret code. + * + * When the secret size is known, the compiler can improve the performance + * of XXH3_64bits_withSecret() and XXH3_128bits_withSecret(). + * + * However, if the secret size is not known, it doesn't have any benefit. This + * happens when xxHash is compiled into a global symbol. Therefore, if + * @ref XXH_INLINE_ALL is *not* defined, this will be defined to 0. + * + * Additionally, this defaults to 0 on GCC 12+, which has an issue with function pointers + * that are *sometimes* force inline on -Og, and it is impossible to automatically + * detect this optimization level. + */ +# define XXH3_INLINE_SECRET 0 + +/*! + * @def XXH32_ENDJMP + * @brief Whether to use a jump for `XXH32_finalize`. + * + * For performance, `XXH32_finalize` uses multiple branches in the finalizer. + * This is generally preferable for performance, + * but depending on exact architecture, a jmp may be preferable. + * + * This setting is only possibly making a difference for very small inputs. + */ +# define XXH32_ENDJMP 0 + +/*! + * @internal + * @brief Redefines old internal names. + * + * For compatibility with code that uses xxHash's internals before the names + * were changed to improve namespacing. There is no other reason to use this. + */ +# define XXH_OLD_NAMES +# undef XXH_OLD_NAMES /* don't actually use, it is ugly. */ + +/*! + * @def XXH_NO_STREAM + * @brief Disables the streaming API. + * + * When xxHash is not inlined and the streaming functions are not used, disabling + * the streaming functions can improve code size significantly, especially with + * the @ref XXH3_family which tends to make constant folded copies of itself. + */ +# define XXH_NO_STREAM +# undef XXH_NO_STREAM /* don't actually */ +#endif /* XXH_DOXYGEN */ +/*! + * @} + */ + +#ifndef XXH_FORCE_MEMORY_ACCESS /* can be defined externally, on command line for example */ + /* prefer __packed__ structures (method 1) for GCC + * < ARMv7 with unaligned access (e.g. Raspbian armhf) still uses byte shifting, so we use memcpy + * which for some reason does unaligned loads. */ +# if defined(__GNUC__) && !(defined(__ARM_ARCH) && __ARM_ARCH < 7 && defined(__ARM_FEATURE_UNALIGNED)) +# define XXH_FORCE_MEMORY_ACCESS 1 +# endif +#endif + +#ifndef XXH_SIZE_OPT + /* default to 1 for -Os or -Oz */ +# if (defined(__GNUC__) || defined(__clang__)) && defined(__OPTIMIZE_SIZE__) +# define XXH_SIZE_OPT 1 +# else +# define XXH_SIZE_OPT 0 +# endif +#endif + +#ifndef XXH_FORCE_ALIGN_CHECK /* can be defined externally */ + /* don't check on sizeopt, x86, aarch64, or arm when unaligned access is available */ +# if XXH_SIZE_OPT >= 1 || \ + defined(__i386) || defined(__x86_64__) || defined(__aarch64__) || defined(__ARM_FEATURE_UNALIGNED) \ + || defined(_M_IX86) || defined(_M_X64) || defined(_M_ARM64) || defined(_M_ARM) /* visual */ +# define XXH_FORCE_ALIGN_CHECK 0 +# else +# define XXH_FORCE_ALIGN_CHECK 1 +# endif +#endif + +#ifndef XXH_NO_INLINE_HINTS +# if XXH_SIZE_OPT >= 1 || defined(__NO_INLINE__) /* -O0, -fno-inline */ +# define XXH_NO_INLINE_HINTS 1 +# else +# define XXH_NO_INLINE_HINTS 0 +# endif +#endif + +#ifndef XXH3_INLINE_SECRET +# if (defined(__GNUC__) && !defined(__clang__) && __GNUC__ >= 12) \ + || !defined(XXH_INLINE_ALL) +# define XXH3_INLINE_SECRET 0 +# else +# define XXH3_INLINE_SECRET 1 +# endif +#endif + +#ifndef XXH32_ENDJMP +/* generally preferable for performance */ +# define XXH32_ENDJMP 0 +#endif + +/*! + * @defgroup impl Implementation + * @{ + */ + + +/* ************************************* +* Includes & Memory related functions +***************************************/ +#if defined(XXH_NO_STREAM) +/* nothing */ +#elif defined(XXH_NO_STDLIB) + +/* When requesting to disable any mention of stdlib, + * the library loses the ability to invoked malloc / free. + * In practice, it means that functions like `XXH*_createState()` + * will always fail, and return NULL. + * This flag is useful in situations where + * xxhash.h is integrated into some kernel, embedded or limited environment + * without access to dynamic allocation. + */ + +static XXH_CONSTF void* XXH_malloc(size_t s) { (void)s; return NULL; } +static void XXH_free(void* p) { (void)p; } + +#else + +/* + * Modify the local functions below should you wish to use + * different memory routines for malloc() and free() + */ +#include + +/*! + * @internal + * @brief Modify this function to use a different routine than malloc(). + */ +static XXH_MALLOCF void* XXH_malloc(size_t s) { return malloc(s); } + +/*! + * @internal + * @brief Modify this function to use a different routine than free(). + */ +static void XXH_free(void* p) { free(p); } + +#endif /* XXH_NO_STDLIB */ + +#include + +/*! + * @internal + * @brief Modify this function to use a different routine than memcpy(). + */ +static void* XXH_memcpy(void* dest, const void* src, size_t size) +{ + return memcpy(dest,src,size); +} + +#include /* ULLONG_MAX */ + + +/* ************************************* +* Compiler Specific Options +***************************************/ +#ifdef _MSC_VER /* Visual Studio warning fix */ +# pragma warning(disable : 4127) /* disable: C4127: conditional expression is constant */ +#endif + +#if XXH_NO_INLINE_HINTS /* disable inlining hints */ +# if defined(__GNUC__) || defined(__clang__) +# define XXH_FORCE_INLINE static __attribute__((unused)) +# else +# define XXH_FORCE_INLINE static +# endif +# define XXH_NO_INLINE static +/* enable inlining hints */ +#elif defined(__GNUC__) || defined(__clang__) +# define XXH_FORCE_INLINE static __inline__ __attribute__((always_inline, unused)) +# define XXH_NO_INLINE static __attribute__((noinline)) +#elif defined(_MSC_VER) /* Visual Studio */ +# define XXH_FORCE_INLINE static __forceinline +# define XXH_NO_INLINE static __declspec(noinline) +#elif defined (__cplusplus) \ + || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) /* C99 */ +# define XXH_FORCE_INLINE static inline +# define XXH_NO_INLINE static +#else +# define XXH_FORCE_INLINE static +# define XXH_NO_INLINE static +#endif + +#if XXH3_INLINE_SECRET +# define XXH3_WITH_SECRET_INLINE XXH_FORCE_INLINE +#else +# define XXH3_WITH_SECRET_INLINE XXH_NO_INLINE +#endif + + +/* ************************************* +* Debug +***************************************/ +/*! + * @ingroup tuning + * @def XXH_DEBUGLEVEL + * @brief Sets the debugging level. + * + * XXH_DEBUGLEVEL is expected to be defined externally, typically via the + * compiler's command line options. The value must be a number. + */ +#ifndef XXH_DEBUGLEVEL +# ifdef DEBUGLEVEL /* backwards compat */ +# define XXH_DEBUGLEVEL DEBUGLEVEL +# else +# define XXH_DEBUGLEVEL 0 +# endif +#endif + +#if (XXH_DEBUGLEVEL>=1) +# include /* note: can still be disabled with NDEBUG */ +# define XXH_ASSERT(c) assert(c) +#else +# if defined(__INTEL_COMPILER) +# define XXH_ASSERT(c) XXH_ASSUME((unsigned char) (c)) +# else +# define XXH_ASSERT(c) XXH_ASSUME(c) +# endif +#endif + +/* note: use after variable declarations */ +#ifndef XXH_STATIC_ASSERT +# if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) /* C11 */ +# define XXH_STATIC_ASSERT_WITH_MESSAGE(c,m) do { _Static_assert((c),m); } while(0) +# elif defined(__cplusplus) && (__cplusplus >= 201103L) /* C++11 */ +# define XXH_STATIC_ASSERT_WITH_MESSAGE(c,m) do { static_assert((c),m); } while(0) +# else +# define XXH_STATIC_ASSERT_WITH_MESSAGE(c,m) do { struct xxh_sa { char x[(c) ? 1 : -1]; }; } while(0) +# endif +# define XXH_STATIC_ASSERT(c) XXH_STATIC_ASSERT_WITH_MESSAGE((c),#c) +#endif + +/*! + * @internal + * @def XXH_COMPILER_GUARD(var) + * @brief Used to prevent unwanted optimizations for @p var. + * + * It uses an empty GCC inline assembly statement with a register constraint + * which forces @p var into a general purpose register (eg eax, ebx, ecx + * on x86) and marks it as modified. + * + * This is used in a few places to avoid unwanted autovectorization (e.g. + * XXH32_round()). All vectorization we want is explicit via intrinsics, + * and _usually_ isn't wanted elsewhere. + * + * We also use it to prevent unwanted constant folding for AArch64 in + * XXH3_initCustomSecret_scalar(). + */ +#if defined(__GNUC__) || defined(__clang__) +# define XXH_COMPILER_GUARD(var) __asm__("" : "+r" (var)) +#else +# define XXH_COMPILER_GUARD(var) ((void)0) +#endif + +/* Specifically for NEON vectors which use the "w" constraint, on + * Clang. */ +#if defined(__clang__) && defined(__ARM_ARCH) && !defined(__wasm__) +# define XXH_COMPILER_GUARD_CLANG_NEON(var) __asm__("" : "+w" (var)) +#else +# define XXH_COMPILER_GUARD_CLANG_NEON(var) ((void)0) +#endif + +/* ************************************* +* Basic Types +***************************************/ +#if !defined (__VMS) \ + && (defined (__cplusplus) \ + || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) ) +# ifdef _AIX +# include +# else +# include +# endif + typedef uint8_t xxh_u8; +#else + typedef unsigned char xxh_u8; +#endif +typedef XXH32_hash_t xxh_u32; + +#ifdef XXH_OLD_NAMES +# warning "XXH_OLD_NAMES is planned to be removed starting v0.9. If the program depends on it, consider moving away from it by employing newer type names directly" +# define BYTE xxh_u8 +# define U8 xxh_u8 +# define U32 xxh_u32 +#endif + +/* *** Memory access *** */ + +/*! + * @internal + * @fn xxh_u32 XXH_read32(const void* ptr) + * @brief Reads an unaligned 32-bit integer from @p ptr in native endianness. + * + * Affected by @ref XXH_FORCE_MEMORY_ACCESS. + * + * @param ptr The pointer to read from. + * @return The 32-bit native endian integer from the bytes at @p ptr. + */ + +/*! + * @internal + * @fn xxh_u32 XXH_readLE32(const void* ptr) + * @brief Reads an unaligned 32-bit little endian integer from @p ptr. + * + * Affected by @ref XXH_FORCE_MEMORY_ACCESS. + * + * @param ptr The pointer to read from. + * @return The 32-bit little endian integer from the bytes at @p ptr. + */ + +/*! + * @internal + * @fn xxh_u32 XXH_readBE32(const void* ptr) + * @brief Reads an unaligned 32-bit big endian integer from @p ptr. + * + * Affected by @ref XXH_FORCE_MEMORY_ACCESS. + * + * @param ptr The pointer to read from. + * @return The 32-bit big endian integer from the bytes at @p ptr. + */ + +/*! + * @internal + * @fn xxh_u32 XXH_readLE32_align(const void* ptr, XXH_alignment align) + * @brief Like @ref XXH_readLE32(), but has an option for aligned reads. + * + * Affected by @ref XXH_FORCE_MEMORY_ACCESS. + * Note that when @ref XXH_FORCE_ALIGN_CHECK == 0, the @p align parameter is + * always @ref XXH_alignment::XXH_unaligned. + * + * @param ptr The pointer to read from. + * @param align Whether @p ptr is aligned. + * @pre + * If @p align == @ref XXH_alignment::XXH_aligned, @p ptr must be 4 byte + * aligned. + * @return The 32-bit little endian integer from the bytes at @p ptr. + */ + +#if (defined(XXH_FORCE_MEMORY_ACCESS) && (XXH_FORCE_MEMORY_ACCESS==3)) +/* + * Manual byteshift. Best for old compilers which don't inline memcpy. + * We actually directly use XXH_readLE32 and XXH_readBE32. + */ +#elif (defined(XXH_FORCE_MEMORY_ACCESS) && (XXH_FORCE_MEMORY_ACCESS==2)) + +/* + * Force direct memory access. Only works on CPU which support unaligned memory + * access in hardware. + */ +static xxh_u32 XXH_read32(const void* memPtr) { return *(const xxh_u32*) memPtr; } + +#elif (defined(XXH_FORCE_MEMORY_ACCESS) && (XXH_FORCE_MEMORY_ACCESS==1)) + +/* + * __attribute__((aligned(1))) is supported by gcc and clang. Originally the + * documentation claimed that it only increased the alignment, but actually it + * can decrease it on gcc, clang, and icc: + * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69502, + * https://gcc.godbolt.org/z/xYez1j67Y. + */ +#ifdef XXH_OLD_NAMES +typedef union { xxh_u32 u32; } __attribute__((packed)) unalign; +#endif +static xxh_u32 XXH_read32(const void* ptr) +{ + typedef __attribute__((aligned(1))) xxh_u32 xxh_unalign32; + return *((const xxh_unalign32*)ptr); +} + +#else + +/* + * Portable and safe solution. Generally efficient. + * see: https://fastcompression.blogspot.com/2015/08/accessing-unaligned-memory.html + */ +static xxh_u32 XXH_read32(const void* memPtr) +{ + xxh_u32 val; + XXH_memcpy(&val, memPtr, sizeof(val)); + return val; +} + +#endif /* XXH_FORCE_DIRECT_MEMORY_ACCESS */ + + +/* *** Endianness *** */ + +/*! + * @ingroup tuning + * @def XXH_CPU_LITTLE_ENDIAN + * @brief Whether the target is little endian. + * + * Defined to 1 if the target is little endian, or 0 if it is big endian. + * It can be defined externally, for example on the compiler command line. + * + * If it is not defined, + * a runtime check (which is usually constant folded) is used instead. + * + * @note + * This is not necessarily defined to an integer constant. + * + * @see XXH_isLittleEndian() for the runtime check. + */ +#ifndef XXH_CPU_LITTLE_ENDIAN +/* + * Try to detect endianness automatically, to avoid the nonstandard behavior + * in `XXH_isLittleEndian()` + */ +# if defined(_WIN32) /* Windows is always little endian */ \ + || defined(__LITTLE_ENDIAN__) \ + || (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) +# define XXH_CPU_LITTLE_ENDIAN 1 +# elif defined(__BIG_ENDIAN__) \ + || (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) +# define XXH_CPU_LITTLE_ENDIAN 0 +# else +/*! + * @internal + * @brief Runtime check for @ref XXH_CPU_LITTLE_ENDIAN. + * + * Most compilers will constant fold this. + */ +static int XXH_isLittleEndian(void) +{ + /* + * Portable and well-defined behavior. + * Don't use static: it is detrimental to performance. + */ + const union { xxh_u32 u; xxh_u8 c[4]; } one = { 1 }; + return one.c[0]; +} +# define XXH_CPU_LITTLE_ENDIAN XXH_isLittleEndian() +# endif +#endif + + + + +/* **************************************** +* Compiler-specific Functions and Macros +******************************************/ +#define XXH_GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__) + +#ifdef __has_builtin +# define XXH_HAS_BUILTIN(x) __has_builtin(x) +#else +# define XXH_HAS_BUILTIN(x) 0 +#endif + + + +/* + * C23 and future versions have standard "unreachable()". + * Once it has been implemented reliably we can add it as an + * additional case: + * + * ``` + * #if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= XXH_C23_VN) + * # include + * # ifdef unreachable + * # define XXH_UNREACHABLE() unreachable() + * # endif + * #endif + * ``` + * + * Note C++23 also has std::unreachable() which can be detected + * as follows: + * ``` + * #if defined(__cpp_lib_unreachable) && (__cpp_lib_unreachable >= 202202L) + * # include + * # define XXH_UNREACHABLE() std::unreachable() + * #endif + * ``` + * NB: `__cpp_lib_unreachable` is defined in the `` header. + * We don't use that as including `` in `extern "C"` blocks + * doesn't work on GCC12 + */ + +#if XXH_HAS_BUILTIN(__builtin_unreachable) +# define XXH_UNREACHABLE() __builtin_unreachable() + +#elif defined(_MSC_VER) +# define XXH_UNREACHABLE() __assume(0) + +#else +# define XXH_UNREACHABLE() +#endif + +#if XXH_HAS_BUILTIN(__builtin_assume) +# define XXH_ASSUME(c) __builtin_assume(c) +#else +# define XXH_ASSUME(c) if (!(c)) { XXH_UNREACHABLE(); } +#endif + +/*! + * @internal + * @def XXH_rotl32(x,r) + * @brief 32-bit rotate left. + * + * @param x The 32-bit integer to be rotated. + * @param r The number of bits to rotate. + * @pre + * @p r > 0 && @p r < 32 + * @note + * @p x and @p r may be evaluated multiple times. + * @return The rotated result. + */ +#if !defined(NO_CLANG_BUILTIN) && XXH_HAS_BUILTIN(__builtin_rotateleft32) \ + && XXH_HAS_BUILTIN(__builtin_rotateleft64) +# define XXH_rotl32 __builtin_rotateleft32 +# define XXH_rotl64 __builtin_rotateleft64 +/* Note: although _rotl exists for minGW (GCC under windows), performance seems poor */ +#elif defined(_MSC_VER) +# define XXH_rotl32(x,r) _rotl(x,r) +# define XXH_rotl64(x,r) _rotl64(x,r) +#else +# define XXH_rotl32(x,r) (((x) << (r)) | ((x) >> (32 - (r)))) +# define XXH_rotl64(x,r) (((x) << (r)) | ((x) >> (64 - (r)))) +#endif + +/*! + * @internal + * @fn xxh_u32 XXH_swap32(xxh_u32 x) + * @brief A 32-bit byteswap. + * + * @param x The 32-bit integer to byteswap. + * @return @p x, byteswapped. + */ +#if defined(_MSC_VER) /* Visual Studio */ +# define XXH_swap32 _byteswap_ulong +#elif XXH_GCC_VERSION >= 403 +# define XXH_swap32 __builtin_bswap32 +#else +static xxh_u32 XXH_swap32 (xxh_u32 x) +{ + return ((x << 24) & 0xff000000 ) | + ((x << 8) & 0x00ff0000 ) | + ((x >> 8) & 0x0000ff00 ) | + ((x >> 24) & 0x000000ff ); +} +#endif + + +/* *************************** +* Memory reads +*****************************/ + +/*! + * @internal + * @brief Enum to indicate whether a pointer is aligned. + */ +typedef enum { + XXH_aligned, /*!< Aligned */ + XXH_unaligned /*!< Possibly unaligned */ +} XXH_alignment; + +/* + * XXH_FORCE_MEMORY_ACCESS==3 is an endian-independent byteshift load. + * + * This is ideal for older compilers which don't inline memcpy. + */ +#if (defined(XXH_FORCE_MEMORY_ACCESS) && (XXH_FORCE_MEMORY_ACCESS==3)) + +XXH_FORCE_INLINE xxh_u32 XXH_readLE32(const void* memPtr) +{ + const xxh_u8* bytePtr = (const xxh_u8 *)memPtr; + return bytePtr[0] + | ((xxh_u32)bytePtr[1] << 8) + | ((xxh_u32)bytePtr[2] << 16) + | ((xxh_u32)bytePtr[3] << 24); +} + +XXH_FORCE_INLINE xxh_u32 XXH_readBE32(const void* memPtr) +{ + const xxh_u8* bytePtr = (const xxh_u8 *)memPtr; + return bytePtr[3] + | ((xxh_u32)bytePtr[2] << 8) + | ((xxh_u32)bytePtr[1] << 16) + | ((xxh_u32)bytePtr[0] << 24); +} + +#else +XXH_FORCE_INLINE xxh_u32 XXH_readLE32(const void* ptr) +{ + return XXH_CPU_LITTLE_ENDIAN ? XXH_read32(ptr) : XXH_swap32(XXH_read32(ptr)); +} + +static xxh_u32 XXH_readBE32(const void* ptr) +{ + return XXH_CPU_LITTLE_ENDIAN ? XXH_swap32(XXH_read32(ptr)) : XXH_read32(ptr); +} +#endif + +XXH_FORCE_INLINE xxh_u32 +XXH_readLE32_align(const void* ptr, XXH_alignment align) +{ + if (align==XXH_unaligned) { + return XXH_readLE32(ptr); + } else { + return XXH_CPU_LITTLE_ENDIAN ? *(const xxh_u32*)ptr : XXH_swap32(*(const xxh_u32*)ptr); + } +} + + +/* ************************************* +* Misc +***************************************/ +/*! @ingroup public */ +XXH_PUBLIC_API unsigned XXH_versionNumber (void) { return XXH_VERSION_NUMBER; } + + +/* ******************************************************************* +* 32-bit hash functions +*********************************************************************/ +/*! + * @} + * @defgroup XXH32_impl XXH32 implementation + * @ingroup impl + * + * Details on the XXH32 implementation. + * @{ + */ + /* #define instead of static const, to be used as initializers */ +#define XXH_PRIME32_1 0x9E3779B1U /*!< 0b10011110001101110111100110110001 */ +#define XXH_PRIME32_2 0x85EBCA77U /*!< 0b10000101111010111100101001110111 */ +#define XXH_PRIME32_3 0xC2B2AE3DU /*!< 0b11000010101100101010111000111101 */ +#define XXH_PRIME32_4 0x27D4EB2FU /*!< 0b00100111110101001110101100101111 */ +#define XXH_PRIME32_5 0x165667B1U /*!< 0b00010110010101100110011110110001 */ + +#ifdef XXH_OLD_NAMES +# define PRIME32_1 XXH_PRIME32_1 +# define PRIME32_2 XXH_PRIME32_2 +# define PRIME32_3 XXH_PRIME32_3 +# define PRIME32_4 XXH_PRIME32_4 +# define PRIME32_5 XXH_PRIME32_5 +#endif + +/*! + * @internal + * @brief Normal stripe processing routine. + * + * This shuffles the bits so that any bit from @p input impacts several bits in + * @p acc. + * + * @param acc The accumulator lane. + * @param input The stripe of input to mix. + * @return The mixed accumulator lane. + */ +static xxh_u32 XXH32_round(xxh_u32 acc, xxh_u32 input) +{ + acc += input * XXH_PRIME32_2; + acc = XXH_rotl32(acc, 13); + acc *= XXH_PRIME32_1; +#if (defined(__SSE4_1__) || defined(__aarch64__) || defined(__wasm_simd128__)) && !defined(XXH_ENABLE_AUTOVECTORIZE) + /* + * UGLY HACK: + * A compiler fence is the only thing that prevents GCC and Clang from + * autovectorizing the XXH32 loop (pragmas and attributes don't work for some + * reason) without globally disabling SSE4.1. + * + * The reason we want to avoid vectorization is because despite working on + * 4 integers at a time, there are multiple factors slowing XXH32 down on + * SSE4: + * - There's a ridiculous amount of lag from pmulld (10 cycles of latency on + * newer chips!) making it slightly slower to multiply four integers at + * once compared to four integers independently. Even when pmulld was + * fastest, Sandy/Ivy Bridge, it is still not worth it to go into SSE + * just to multiply unless doing a long operation. + * + * - Four instructions are required to rotate, + * movqda tmp, v // not required with VEX encoding + * pslld tmp, 13 // tmp <<= 13 + * psrld v, 19 // x >>= 19 + * por v, tmp // x |= tmp + * compared to one for scalar: + * roll v, 13 // reliably fast across the board + * shldl v, v, 13 // Sandy Bridge and later prefer this for some reason + * + * - Instruction level parallelism is actually more beneficial here because + * the SIMD actually serializes this operation: While v1 is rotating, v2 + * can load data, while v3 can multiply. SSE forces them to operate + * together. + * + * This is also enabled on AArch64, as Clang is *very aggressive* in vectorizing + * the loop. NEON is only faster on the A53, and with the newer cores, it is less + * than half the speed. + * + * Additionally, this is used on WASM SIMD128 because it JITs to the same + * SIMD instructions and has the same issue. + */ + XXH_COMPILER_GUARD(acc); +#endif + return acc; +} + +/*! + * @internal + * @brief Mixes all bits to finalize the hash. + * + * The final mix ensures that all input bits have a chance to impact any bit in + * the output digest, resulting in an unbiased distribution. + * + * @param hash The hash to avalanche. + * @return The avalanched hash. + */ +static xxh_u32 XXH32_avalanche(xxh_u32 hash) +{ + hash ^= hash >> 15; + hash *= XXH_PRIME32_2; + hash ^= hash >> 13; + hash *= XXH_PRIME32_3; + hash ^= hash >> 16; + return hash; +} + +#define XXH_get32bits(p) XXH_readLE32_align(p, align) + +/*! + * @internal + * @brief Processes the last 0-15 bytes of @p ptr. + * + * There may be up to 15 bytes remaining to consume from the input. + * This final stage will digest them to ensure that all input bytes are present + * in the final mix. + * + * @param hash The hash to finalize. + * @param ptr The pointer to the remaining input. + * @param len The remaining length, modulo 16. + * @param align Whether @p ptr is aligned. + * @return The finalized hash. + * @see XXH64_finalize(). + */ +static XXH_PUREF xxh_u32 +XXH32_finalize(xxh_u32 hash, const xxh_u8* ptr, size_t len, XXH_alignment align) +{ +#define XXH_PROCESS1 do { \ + hash += (*ptr++) * XXH_PRIME32_5; \ + hash = XXH_rotl32(hash, 11) * XXH_PRIME32_1; \ +} while (0) + +#define XXH_PROCESS4 do { \ + hash += XXH_get32bits(ptr) * XXH_PRIME32_3; \ + ptr += 4; \ + hash = XXH_rotl32(hash, 17) * XXH_PRIME32_4; \ +} while (0) + + if (ptr==NULL) XXH_ASSERT(len == 0); + + /* Compact rerolled version; generally faster */ + if (!XXH32_ENDJMP) { + len &= 15; + while (len >= 4) { + XXH_PROCESS4; + len -= 4; + } + while (len > 0) { + XXH_PROCESS1; + --len; + } + return XXH32_avalanche(hash); + } else { + switch(len&15) /* or switch(bEnd - p) */ { + case 12: XXH_PROCESS4; + XXH_FALLTHROUGH; /* fallthrough */ + case 8: XXH_PROCESS4; + XXH_FALLTHROUGH; /* fallthrough */ + case 4: XXH_PROCESS4; + return XXH32_avalanche(hash); + + case 13: XXH_PROCESS4; + XXH_FALLTHROUGH; /* fallthrough */ + case 9: XXH_PROCESS4; + XXH_FALLTHROUGH; /* fallthrough */ + case 5: XXH_PROCESS4; + XXH_PROCESS1; + return XXH32_avalanche(hash); + + case 14: XXH_PROCESS4; + XXH_FALLTHROUGH; /* fallthrough */ + case 10: XXH_PROCESS4; + XXH_FALLTHROUGH; /* fallthrough */ + case 6: XXH_PROCESS4; + XXH_PROCESS1; + XXH_PROCESS1; + return XXH32_avalanche(hash); + + case 15: XXH_PROCESS4; + XXH_FALLTHROUGH; /* fallthrough */ + case 11: XXH_PROCESS4; + XXH_FALLTHROUGH; /* fallthrough */ + case 7: XXH_PROCESS4; + XXH_FALLTHROUGH; /* fallthrough */ + case 3: XXH_PROCESS1; + XXH_FALLTHROUGH; /* fallthrough */ + case 2: XXH_PROCESS1; + XXH_FALLTHROUGH; /* fallthrough */ + case 1: XXH_PROCESS1; + XXH_FALLTHROUGH; /* fallthrough */ + case 0: return XXH32_avalanche(hash); + } + XXH_ASSERT(0); + return hash; /* reaching this point is deemed impossible */ + } +} + +#ifdef XXH_OLD_NAMES +# define PROCESS1 XXH_PROCESS1 +# define PROCESS4 XXH_PROCESS4 +#else +# undef XXH_PROCESS1 +# undef XXH_PROCESS4 +#endif + +/*! + * @internal + * @brief The implementation for @ref XXH32(). + * + * @param input , len , seed Directly passed from @ref XXH32(). + * @param align Whether @p input is aligned. + * @return The calculated hash. + */ +XXH_FORCE_INLINE XXH_PUREF xxh_u32 +XXH32_endian_align(const xxh_u8* input, size_t len, xxh_u32 seed, XXH_alignment align) +{ + xxh_u32 h32; + + if (input==NULL) XXH_ASSERT(len == 0); + + if (len>=16) { + const xxh_u8* const bEnd = input + len; + const xxh_u8* const limit = bEnd - 15; + xxh_u32 v1 = seed + XXH_PRIME32_1 + XXH_PRIME32_2; + xxh_u32 v2 = seed + XXH_PRIME32_2; + xxh_u32 v3 = seed + 0; + xxh_u32 v4 = seed - XXH_PRIME32_1; + + do { + v1 = XXH32_round(v1, XXH_get32bits(input)); input += 4; + v2 = XXH32_round(v2, XXH_get32bits(input)); input += 4; + v3 = XXH32_round(v3, XXH_get32bits(input)); input += 4; + v4 = XXH32_round(v4, XXH_get32bits(input)); input += 4; + } while (input < limit); + + h32 = XXH_rotl32(v1, 1) + XXH_rotl32(v2, 7) + + XXH_rotl32(v3, 12) + XXH_rotl32(v4, 18); + } else { + h32 = seed + XXH_PRIME32_5; + } + + h32 += (xxh_u32)len; + + return XXH32_finalize(h32, input, len&15, align); +} + +/*! @ingroup XXH32_family */ +XXH_PUBLIC_API XXH32_hash_t XXH32 (const void* input, size_t len, XXH32_hash_t seed) +{ +#if !defined(XXH_NO_STREAM) && XXH_SIZE_OPT >= 2 + /* Simple version, good for code maintenance, but unfortunately slow for small inputs */ + XXH32_state_t state; + XXH32_reset(&state, seed); + XXH32_update(&state, (const xxh_u8*)input, len); + return XXH32_digest(&state); +#else + if (XXH_FORCE_ALIGN_CHECK) { + if ((((size_t)input) & 3) == 0) { /* Input is 4-bytes aligned, leverage the speed benefit */ + return XXH32_endian_align((const xxh_u8*)input, len, seed, XXH_aligned); + } } + + return XXH32_endian_align((const xxh_u8*)input, len, seed, XXH_unaligned); +#endif +} + + + +/******* Hash streaming *******/ +#ifndef XXH_NO_STREAM +/*! @ingroup XXH32_family */ +XXH_PUBLIC_API XXH32_state_t* XXH32_createState(void) +{ + return (XXH32_state_t*)XXH_malloc(sizeof(XXH32_state_t)); +} +/*! @ingroup XXH32_family */ +XXH_PUBLIC_API XXH_errorcode XXH32_freeState(XXH32_state_t* statePtr) +{ + XXH_free(statePtr); + return XXH_OK; +} + +/*! @ingroup XXH32_family */ +XXH_PUBLIC_API void XXH32_copyState(XXH32_state_t* dstState, const XXH32_state_t* srcState) +{ + XXH_memcpy(dstState, srcState, sizeof(*dstState)); +} + +/*! @ingroup XXH32_family */ +XXH_PUBLIC_API XXH_errorcode XXH32_reset(XXH32_state_t* statePtr, XXH32_hash_t seed) +{ + XXH_ASSERT(statePtr != NULL); + memset(statePtr, 0, sizeof(*statePtr)); + statePtr->v[0] = seed + XXH_PRIME32_1 + XXH_PRIME32_2; + statePtr->v[1] = seed + XXH_PRIME32_2; + statePtr->v[2] = seed + 0; + statePtr->v[3] = seed - XXH_PRIME32_1; + return XXH_OK; +} + + +/*! @ingroup XXH32_family */ +XXH_PUBLIC_API XXH_errorcode +XXH32_update(XXH32_state_t* state, const void* input, size_t len) +{ + if (input==NULL) { + XXH_ASSERT(len == 0); + return XXH_OK; + } + + { const xxh_u8* p = (const xxh_u8*)input; + const xxh_u8* const bEnd = p + len; + + state->total_len_32 += (XXH32_hash_t)len; + state->large_len |= (XXH32_hash_t)((len>=16) | (state->total_len_32>=16)); + + if (state->memsize + len < 16) { /* fill in tmp buffer */ + XXH_memcpy((xxh_u8*)(state->mem32) + state->memsize, input, len); + state->memsize += (XXH32_hash_t)len; + return XXH_OK; + } + + if (state->memsize) { /* some data left from previous update */ + XXH_memcpy((xxh_u8*)(state->mem32) + state->memsize, input, 16-state->memsize); + { const xxh_u32* p32 = state->mem32; + state->v[0] = XXH32_round(state->v[0], XXH_readLE32(p32)); p32++; + state->v[1] = XXH32_round(state->v[1], XXH_readLE32(p32)); p32++; + state->v[2] = XXH32_round(state->v[2], XXH_readLE32(p32)); p32++; + state->v[3] = XXH32_round(state->v[3], XXH_readLE32(p32)); + } + p += 16-state->memsize; + state->memsize = 0; + } + + if (p <= bEnd-16) { + const xxh_u8* const limit = bEnd - 16; + + do { + state->v[0] = XXH32_round(state->v[0], XXH_readLE32(p)); p+=4; + state->v[1] = XXH32_round(state->v[1], XXH_readLE32(p)); p+=4; + state->v[2] = XXH32_round(state->v[2], XXH_readLE32(p)); p+=4; + state->v[3] = XXH32_round(state->v[3], XXH_readLE32(p)); p+=4; + } while (p<=limit); + + } + + if (p < bEnd) { + XXH_memcpy(state->mem32, p, (size_t)(bEnd-p)); + state->memsize = (unsigned)(bEnd-p); + } + } + + return XXH_OK; +} + + +/*! @ingroup XXH32_family */ +XXH_PUBLIC_API XXH32_hash_t XXH32_digest(const XXH32_state_t* state) +{ + xxh_u32 h32; + + if (state->large_len) { + h32 = XXH_rotl32(state->v[0], 1) + + XXH_rotl32(state->v[1], 7) + + XXH_rotl32(state->v[2], 12) + + XXH_rotl32(state->v[3], 18); + } else { + h32 = state->v[2] /* == seed */ + XXH_PRIME32_5; + } + + h32 += state->total_len_32; + + return XXH32_finalize(h32, (const xxh_u8*)state->mem32, state->memsize, XXH_aligned); +} +#endif /* !XXH_NO_STREAM */ + +/******* Canonical representation *******/ + +/*! @ingroup XXH32_family */ +XXH_PUBLIC_API void XXH32_canonicalFromHash(XXH32_canonical_t* dst, XXH32_hash_t hash) +{ + XXH_STATIC_ASSERT(sizeof(XXH32_canonical_t) == sizeof(XXH32_hash_t)); + if (XXH_CPU_LITTLE_ENDIAN) hash = XXH_swap32(hash); + XXH_memcpy(dst, &hash, sizeof(*dst)); +} +/*! @ingroup XXH32_family */ +XXH_PUBLIC_API XXH32_hash_t XXH32_hashFromCanonical(const XXH32_canonical_t* src) +{ + return XXH_readBE32(src); +} + + +#ifndef XXH_NO_LONG_LONG + +/* ******************************************************************* +* 64-bit hash functions +*********************************************************************/ +/*! + * @} + * @ingroup impl + * @{ + */ +/******* Memory access *******/ + +typedef XXH64_hash_t xxh_u64; + +#ifdef XXH_OLD_NAMES +# define U64 xxh_u64 +#endif + +#if (defined(XXH_FORCE_MEMORY_ACCESS) && (XXH_FORCE_MEMORY_ACCESS==3)) +/* + * Manual byteshift. Best for old compilers which don't inline memcpy. + * We actually directly use XXH_readLE64 and XXH_readBE64. + */ +#elif (defined(XXH_FORCE_MEMORY_ACCESS) && (XXH_FORCE_MEMORY_ACCESS==2)) + +/* Force direct memory access. Only works on CPU which support unaligned memory access in hardware */ +static xxh_u64 XXH_read64(const void* memPtr) +{ + return *(const xxh_u64*) memPtr; +} + +#elif (defined(XXH_FORCE_MEMORY_ACCESS) && (XXH_FORCE_MEMORY_ACCESS==1)) + +/* + * __attribute__((aligned(1))) is supported by gcc and clang. Originally the + * documentation claimed that it only increased the alignment, but actually it + * can decrease it on gcc, clang, and icc: + * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69502, + * https://gcc.godbolt.org/z/xYez1j67Y. + */ +#ifdef XXH_OLD_NAMES +typedef union { xxh_u32 u32; xxh_u64 u64; } __attribute__((packed)) unalign64; +#endif +static xxh_u64 XXH_read64(const void* ptr) +{ + typedef __attribute__((aligned(1))) xxh_u64 xxh_unalign64; + return *((const xxh_unalign64*)ptr); +} + +#else + +/* + * Portable and safe solution. Generally efficient. + * see: https://fastcompression.blogspot.com/2015/08/accessing-unaligned-memory.html + */ +static xxh_u64 XXH_read64(const void* memPtr) +{ + xxh_u64 val; + XXH_memcpy(&val, memPtr, sizeof(val)); + return val; +} + +#endif /* XXH_FORCE_DIRECT_MEMORY_ACCESS */ + +#if defined(_MSC_VER) /* Visual Studio */ +# define XXH_swap64 _byteswap_uint64 +#elif XXH_GCC_VERSION >= 403 +# define XXH_swap64 __builtin_bswap64 +#else +static xxh_u64 XXH_swap64(xxh_u64 x) +{ + return ((x << 56) & 0xff00000000000000ULL) | + ((x << 40) & 0x00ff000000000000ULL) | + ((x << 24) & 0x0000ff0000000000ULL) | + ((x << 8) & 0x000000ff00000000ULL) | + ((x >> 8) & 0x00000000ff000000ULL) | + ((x >> 24) & 0x0000000000ff0000ULL) | + ((x >> 40) & 0x000000000000ff00ULL) | + ((x >> 56) & 0x00000000000000ffULL); +} +#endif + + +/* XXH_FORCE_MEMORY_ACCESS==3 is an endian-independent byteshift load. */ +#if (defined(XXH_FORCE_MEMORY_ACCESS) && (XXH_FORCE_MEMORY_ACCESS==3)) + +XXH_FORCE_INLINE xxh_u64 XXH_readLE64(const void* memPtr) +{ + const xxh_u8* bytePtr = (const xxh_u8 *)memPtr; + return bytePtr[0] + | ((xxh_u64)bytePtr[1] << 8) + | ((xxh_u64)bytePtr[2] << 16) + | ((xxh_u64)bytePtr[3] << 24) + | ((xxh_u64)bytePtr[4] << 32) + | ((xxh_u64)bytePtr[5] << 40) + | ((xxh_u64)bytePtr[6] << 48) + | ((xxh_u64)bytePtr[7] << 56); +} + +XXH_FORCE_INLINE xxh_u64 XXH_readBE64(const void* memPtr) +{ + const xxh_u8* bytePtr = (const xxh_u8 *)memPtr; + return bytePtr[7] + | ((xxh_u64)bytePtr[6] << 8) + | ((xxh_u64)bytePtr[5] << 16) + | ((xxh_u64)bytePtr[4] << 24) + | ((xxh_u64)bytePtr[3] << 32) + | ((xxh_u64)bytePtr[2] << 40) + | ((xxh_u64)bytePtr[1] << 48) + | ((xxh_u64)bytePtr[0] << 56); +} + +#else +XXH_FORCE_INLINE xxh_u64 XXH_readLE64(const void* ptr) +{ + return XXH_CPU_LITTLE_ENDIAN ? XXH_read64(ptr) : XXH_swap64(XXH_read64(ptr)); +} + +static xxh_u64 XXH_readBE64(const void* ptr) +{ + return XXH_CPU_LITTLE_ENDIAN ? XXH_swap64(XXH_read64(ptr)) : XXH_read64(ptr); +} +#endif + +XXH_FORCE_INLINE xxh_u64 +XXH_readLE64_align(const void* ptr, XXH_alignment align) +{ + if (align==XXH_unaligned) + return XXH_readLE64(ptr); + else + return XXH_CPU_LITTLE_ENDIAN ? *(const xxh_u64*)ptr : XXH_swap64(*(const xxh_u64*)ptr); +} + + +/******* xxh64 *******/ +/*! + * @} + * @defgroup XXH64_impl XXH64 implementation + * @ingroup impl + * + * Details on the XXH64 implementation. + * @{ + */ +/* #define rather that static const, to be used as initializers */ +#define XXH_PRIME64_1 0x9E3779B185EBCA87ULL /*!< 0b1001111000110111011110011011000110000101111010111100101010000111 */ +#define XXH_PRIME64_2 0xC2B2AE3D27D4EB4FULL /*!< 0b1100001010110010101011100011110100100111110101001110101101001111 */ +#define XXH_PRIME64_3 0x165667B19E3779F9ULL /*!< 0b0001011001010110011001111011000110011110001101110111100111111001 */ +#define XXH_PRIME64_4 0x85EBCA77C2B2AE63ULL /*!< 0b1000010111101011110010100111011111000010101100101010111001100011 */ +#define XXH_PRIME64_5 0x27D4EB2F165667C5ULL /*!< 0b0010011111010100111010110010111100010110010101100110011111000101 */ + +#ifdef XXH_OLD_NAMES +# define PRIME64_1 XXH_PRIME64_1 +# define PRIME64_2 XXH_PRIME64_2 +# define PRIME64_3 XXH_PRIME64_3 +# define PRIME64_4 XXH_PRIME64_4 +# define PRIME64_5 XXH_PRIME64_5 +#endif + +/*! @copydoc XXH32_round */ +static xxh_u64 XXH64_round(xxh_u64 acc, xxh_u64 input) +{ + acc += input * XXH_PRIME64_2; + acc = XXH_rotl64(acc, 31); + acc *= XXH_PRIME64_1; +#if (defined(__AVX512F__)) && !defined(XXH_ENABLE_AUTOVECTORIZE) + /* + * DISABLE AUTOVECTORIZATION: + * A compiler fence is used to prevent GCC and Clang from + * autovectorizing the XXH64 loop (pragmas and attributes don't work for some + * reason) without globally disabling AVX512. + * + * Autovectorization of XXH64 tends to be detrimental, + * though the exact outcome may change depending on exact cpu and compiler version. + * For information, it has been reported as detrimental for Skylake-X, + * but possibly beneficial for Zen4. + * + * The default is to disable auto-vectorization, + * but you can select to enable it instead using `XXH_ENABLE_AUTOVECTORIZE` build variable. + */ + XXH_COMPILER_GUARD(acc); +#endif + return acc; +} + +static xxh_u64 XXH64_mergeRound(xxh_u64 acc, xxh_u64 val) +{ + val = XXH64_round(0, val); + acc ^= val; + acc = acc * XXH_PRIME64_1 + XXH_PRIME64_4; + return acc; +} + +/*! @copydoc XXH32_avalanche */ +static xxh_u64 XXH64_avalanche(xxh_u64 hash) +{ + hash ^= hash >> 33; + hash *= XXH_PRIME64_2; + hash ^= hash >> 29; + hash *= XXH_PRIME64_3; + hash ^= hash >> 32; + return hash; +} + + +#define XXH_get64bits(p) XXH_readLE64_align(p, align) + +/*! + * @internal + * @brief Processes the last 0-31 bytes of @p ptr. + * + * There may be up to 31 bytes remaining to consume from the input. + * This final stage will digest them to ensure that all input bytes are present + * in the final mix. + * + * @param hash The hash to finalize. + * @param ptr The pointer to the remaining input. + * @param len The remaining length, modulo 32. + * @param align Whether @p ptr is aligned. + * @return The finalized hash + * @see XXH32_finalize(). + */ +static XXH_PUREF xxh_u64 +XXH64_finalize(xxh_u64 hash, const xxh_u8* ptr, size_t len, XXH_alignment align) +{ + if (ptr==NULL) XXH_ASSERT(len == 0); + len &= 31; + while (len >= 8) { + xxh_u64 const k1 = XXH64_round(0, XXH_get64bits(ptr)); + ptr += 8; + hash ^= k1; + hash = XXH_rotl64(hash,27) * XXH_PRIME64_1 + XXH_PRIME64_4; + len -= 8; + } + if (len >= 4) { + hash ^= (xxh_u64)(XXH_get32bits(ptr)) * XXH_PRIME64_1; + ptr += 4; + hash = XXH_rotl64(hash, 23) * XXH_PRIME64_2 + XXH_PRIME64_3; + len -= 4; + } + while (len > 0) { + hash ^= (*ptr++) * XXH_PRIME64_5; + hash = XXH_rotl64(hash, 11) * XXH_PRIME64_1; + --len; + } + return XXH64_avalanche(hash); +} + +#ifdef XXH_OLD_NAMES +# define PROCESS1_64 XXH_PROCESS1_64 +# define PROCESS4_64 XXH_PROCESS4_64 +# define PROCESS8_64 XXH_PROCESS8_64 +#else +# undef XXH_PROCESS1_64 +# undef XXH_PROCESS4_64 +# undef XXH_PROCESS8_64 +#endif + +/*! + * @internal + * @brief The implementation for @ref XXH64(). + * + * @param input , len , seed Directly passed from @ref XXH64(). + * @param align Whether @p input is aligned. + * @return The calculated hash. + */ +XXH_FORCE_INLINE XXH_PUREF xxh_u64 +XXH64_endian_align(const xxh_u8* input, size_t len, xxh_u64 seed, XXH_alignment align) +{ + xxh_u64 h64; + if (input==NULL) XXH_ASSERT(len == 0); + + if (len>=32) { + const xxh_u8* const bEnd = input + len; + const xxh_u8* const limit = bEnd - 31; + xxh_u64 v1 = seed + XXH_PRIME64_1 + XXH_PRIME64_2; + xxh_u64 v2 = seed + XXH_PRIME64_2; + xxh_u64 v3 = seed + 0; + xxh_u64 v4 = seed - XXH_PRIME64_1; + + do { + v1 = XXH64_round(v1, XXH_get64bits(input)); input+=8; + v2 = XXH64_round(v2, XXH_get64bits(input)); input+=8; + v3 = XXH64_round(v3, XXH_get64bits(input)); input+=8; + v4 = XXH64_round(v4, XXH_get64bits(input)); input+=8; + } while (input= 2 + /* Simple version, good for code maintenance, but unfortunately slow for small inputs */ + XXH64_state_t state; + XXH64_reset(&state, seed); + XXH64_update(&state, (const xxh_u8*)input, len); + return XXH64_digest(&state); +#else + if (XXH_FORCE_ALIGN_CHECK) { + if ((((size_t)input) & 7)==0) { /* Input is aligned, let's leverage the speed advantage */ + return XXH64_endian_align((const xxh_u8*)input, len, seed, XXH_aligned); + } } + + return XXH64_endian_align((const xxh_u8*)input, len, seed, XXH_unaligned); + +#endif +} + +/******* Hash Streaming *******/ +#ifndef XXH_NO_STREAM +/*! @ingroup XXH64_family*/ +XXH_PUBLIC_API XXH64_state_t* XXH64_createState(void) +{ + return (XXH64_state_t*)XXH_malloc(sizeof(XXH64_state_t)); +} +/*! @ingroup XXH64_family */ +XXH_PUBLIC_API XXH_errorcode XXH64_freeState(XXH64_state_t* statePtr) +{ + XXH_free(statePtr); + return XXH_OK; +} + +/*! @ingroup XXH64_family */ +XXH_PUBLIC_API void XXH64_copyState(XXH_NOESCAPE XXH64_state_t* dstState, const XXH64_state_t* srcState) +{ + XXH_memcpy(dstState, srcState, sizeof(*dstState)); +} + +/*! @ingroup XXH64_family */ +XXH_PUBLIC_API XXH_errorcode XXH64_reset(XXH_NOESCAPE XXH64_state_t* statePtr, XXH64_hash_t seed) +{ + XXH_ASSERT(statePtr != NULL); + memset(statePtr, 0, sizeof(*statePtr)); + statePtr->v[0] = seed + XXH_PRIME64_1 + XXH_PRIME64_2; + statePtr->v[1] = seed + XXH_PRIME64_2; + statePtr->v[2] = seed + 0; + statePtr->v[3] = seed - XXH_PRIME64_1; + return XXH_OK; +} + +/*! @ingroup XXH64_family */ +XXH_PUBLIC_API XXH_errorcode +XXH64_update (XXH_NOESCAPE XXH64_state_t* state, XXH_NOESCAPE const void* input, size_t len) +{ + if (input==NULL) { + XXH_ASSERT(len == 0); + return XXH_OK; + } + + { const xxh_u8* p = (const xxh_u8*)input; + const xxh_u8* const bEnd = p + len; + + state->total_len += len; + + if (state->memsize + len < 32) { /* fill in tmp buffer */ + XXH_memcpy(((xxh_u8*)state->mem64) + state->memsize, input, len); + state->memsize += (xxh_u32)len; + return XXH_OK; + } + + if (state->memsize) { /* tmp buffer is full */ + XXH_memcpy(((xxh_u8*)state->mem64) + state->memsize, input, 32-state->memsize); + state->v[0] = XXH64_round(state->v[0], XXH_readLE64(state->mem64+0)); + state->v[1] = XXH64_round(state->v[1], XXH_readLE64(state->mem64+1)); + state->v[2] = XXH64_round(state->v[2], XXH_readLE64(state->mem64+2)); + state->v[3] = XXH64_round(state->v[3], XXH_readLE64(state->mem64+3)); + p += 32 - state->memsize; + state->memsize = 0; + } + + if (p+32 <= bEnd) { + const xxh_u8* const limit = bEnd - 32; + + do { + state->v[0] = XXH64_round(state->v[0], XXH_readLE64(p)); p+=8; + state->v[1] = XXH64_round(state->v[1], XXH_readLE64(p)); p+=8; + state->v[2] = XXH64_round(state->v[2], XXH_readLE64(p)); p+=8; + state->v[3] = XXH64_round(state->v[3], XXH_readLE64(p)); p+=8; + } while (p<=limit); + + } + + if (p < bEnd) { + XXH_memcpy(state->mem64, p, (size_t)(bEnd-p)); + state->memsize = (unsigned)(bEnd-p); + } + } + + return XXH_OK; +} + + +/*! @ingroup XXH64_family */ +XXH_PUBLIC_API XXH64_hash_t XXH64_digest(XXH_NOESCAPE const XXH64_state_t* state) +{ + xxh_u64 h64; + + if (state->total_len >= 32) { + h64 = XXH_rotl64(state->v[0], 1) + XXH_rotl64(state->v[1], 7) + XXH_rotl64(state->v[2], 12) + XXH_rotl64(state->v[3], 18); + h64 = XXH64_mergeRound(h64, state->v[0]); + h64 = XXH64_mergeRound(h64, state->v[1]); + h64 = XXH64_mergeRound(h64, state->v[2]); + h64 = XXH64_mergeRound(h64, state->v[3]); + } else { + h64 = state->v[2] /*seed*/ + XXH_PRIME64_5; + } + + h64 += (xxh_u64) state->total_len; + + return XXH64_finalize(h64, (const xxh_u8*)state->mem64, (size_t)state->total_len, XXH_aligned); +} +#endif /* !XXH_NO_STREAM */ + +/******* Canonical representation *******/ + +/*! @ingroup XXH64_family */ +XXH_PUBLIC_API void XXH64_canonicalFromHash(XXH_NOESCAPE XXH64_canonical_t* dst, XXH64_hash_t hash) +{ + XXH_STATIC_ASSERT(sizeof(XXH64_canonical_t) == sizeof(XXH64_hash_t)); + if (XXH_CPU_LITTLE_ENDIAN) hash = XXH_swap64(hash); + XXH_memcpy(dst, &hash, sizeof(*dst)); +} + +/*! @ingroup XXH64_family */ +XXH_PUBLIC_API XXH64_hash_t XXH64_hashFromCanonical(XXH_NOESCAPE const XXH64_canonical_t* src) +{ + return XXH_readBE64(src); +} + +#ifndef XXH_NO_XXH3 + +/* ********************************************************************* +* XXH3 +* New generation hash designed for speed on small keys and vectorization +************************************************************************ */ +/*! + * @} + * @defgroup XXH3_impl XXH3 implementation + * @ingroup impl + * @{ + */ + +/* === Compiler specifics === */ + +#if ((defined(sun) || defined(__sun)) && __cplusplus) /* Solaris includes __STDC_VERSION__ with C++. Tested with GCC 5.5 */ +# define XXH_RESTRICT /* disable */ +#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* >= C99 */ +# define XXH_RESTRICT restrict +#elif (defined (__GNUC__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))) \ + || (defined (__clang__)) \ + || (defined (_MSC_VER) && (_MSC_VER >= 1400)) \ + || (defined (__INTEL_COMPILER) && (__INTEL_COMPILER >= 1300)) +/* + * There are a LOT more compilers that recognize __restrict but this + * covers the major ones. + */ +# define XXH_RESTRICT __restrict +#else +# define XXH_RESTRICT /* disable */ +#endif + +#if (defined(__GNUC__) && (__GNUC__ >= 3)) \ + || (defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 800)) \ + || defined(__clang__) +# define XXH_likely(x) __builtin_expect(x, 1) +# define XXH_unlikely(x) __builtin_expect(x, 0) +#else +# define XXH_likely(x) (x) +# define XXH_unlikely(x) (x) +#endif + +#ifndef XXH_HAS_INCLUDE +# ifdef __has_include +/* + * Not defined as XXH_HAS_INCLUDE(x) (function-like) because + * this causes segfaults in Apple Clang 4.2 (on Mac OS X 10.7 Lion) + */ +# define XXH_HAS_INCLUDE __has_include +# else +# define XXH_HAS_INCLUDE(x) 0 +# endif +#endif + +#if defined(__GNUC__) || defined(__clang__) +# if defined(__ARM_FEATURE_SVE) +# include +# endif +# if defined(__ARM_NEON__) || defined(__ARM_NEON) \ + || (defined(_M_ARM) && _M_ARM >= 7) \ + || defined(_M_ARM64) || defined(_M_ARM64EC) \ + || (defined(__wasm_simd128__) && XXH_HAS_INCLUDE()) /* WASM SIMD128 via SIMDe */ +# define inline __inline__ /* circumvent a clang bug */ +# include +# undef inline +# elif defined(__AVX2__) +# include +# elif defined(__SSE2__) +# include +# endif +#endif + +#if defined(_MSC_VER) +# include +#endif + +/* + * One goal of XXH3 is to make it fast on both 32-bit and 64-bit, while + * remaining a true 64-bit/128-bit hash function. + * + * This is done by prioritizing a subset of 64-bit operations that can be + * emulated without too many steps on the average 32-bit machine. + * + * For example, these two lines seem similar, and run equally fast on 64-bit: + * + * xxh_u64 x; + * x ^= (x >> 47); // good + * x ^= (x >> 13); // bad + * + * However, to a 32-bit machine, there is a major difference. + * + * x ^= (x >> 47) looks like this: + * + * x.lo ^= (x.hi >> (47 - 32)); + * + * while x ^= (x >> 13) looks like this: + * + * // note: funnel shifts are not usually cheap. + * x.lo ^= (x.lo >> 13) | (x.hi << (32 - 13)); + * x.hi ^= (x.hi >> 13); + * + * The first one is significantly faster than the second, simply because the + * shift is larger than 32. This means: + * - All the bits we need are in the upper 32 bits, so we can ignore the lower + * 32 bits in the shift. + * - The shift result will always fit in the lower 32 bits, and therefore, + * we can ignore the upper 32 bits in the xor. + * + * Thanks to this optimization, XXH3 only requires these features to be efficient: + * + * - Usable unaligned access + * - A 32-bit or 64-bit ALU + * - If 32-bit, a decent ADC instruction + * - A 32 or 64-bit multiply with a 64-bit result + * - For the 128-bit variant, a decent byteswap helps short inputs. + * + * The first two are already required by XXH32, and almost all 32-bit and 64-bit + * platforms which can run XXH32 can run XXH3 efficiently. + * + * Thumb-1, the classic 16-bit only subset of ARM's instruction set, is one + * notable exception. + * + * First of all, Thumb-1 lacks support for the UMULL instruction which + * performs the important long multiply. This means numerous __aeabi_lmul + * calls. + * + * Second of all, the 8 functional registers are just not enough. + * Setup for __aeabi_lmul, byteshift loads, pointers, and all arithmetic need + * Lo registers, and this shuffling results in thousands more MOVs than A32. + * + * A32 and T32 don't have this limitation. They can access all 14 registers, + * do a 32->64 multiply with UMULL, and the flexible operand allowing free + * shifts is helpful, too. + * + * Therefore, we do a quick sanity check. + * + * If compiling Thumb-1 for a target which supports ARM instructions, we will + * emit a warning, as it is not a "sane" platform to compile for. + * + * Usually, if this happens, it is because of an accident and you probably need + * to specify -march, as you likely meant to compile for a newer architecture. + * + * Credit: large sections of the vectorial and asm source code paths + * have been contributed by @easyaspi314 + */ +#if defined(__thumb__) && !defined(__thumb2__) && defined(__ARM_ARCH_ISA_ARM) +# warning "XXH3 is highly inefficient without ARM or Thumb-2." +#endif + +/* ========================================== + * Vectorization detection + * ========================================== */ + +#ifdef XXH_DOXYGEN +/*! + * @ingroup tuning + * @brief Overrides the vectorization implementation chosen for XXH3. + * + * Can be defined to 0 to disable SIMD or any of the values mentioned in + * @ref XXH_VECTOR_TYPE. + * + * If this is not defined, it uses predefined macros to determine the best + * implementation. + */ +# define XXH_VECTOR XXH_SCALAR +/*! + * @ingroup tuning + * @brief Possible values for @ref XXH_VECTOR. + * + * Note that these are actually implemented as macros. + * + * If this is not defined, it is detected automatically. + * internal macro XXH_X86DISPATCH overrides this. + */ +enum XXH_VECTOR_TYPE /* fake enum */ { + XXH_SCALAR = 0, /*!< Portable scalar version */ + XXH_SSE2 = 1, /*!< + * SSE2 for Pentium 4, Opteron, all x86_64. + * + * @note SSE2 is also guaranteed on Windows 10, macOS, and + * Android x86. + */ + XXH_AVX2 = 2, /*!< AVX2 for Haswell and Bulldozer */ + XXH_AVX512 = 3, /*!< AVX512 for Skylake and Icelake */ + XXH_NEON = 4, /*!< + * NEON for most ARMv7-A, all AArch64, and WASM SIMD128 + * via the SIMDeverywhere polyfill provided with the + * Emscripten SDK. + */ + XXH_VSX = 5, /*!< VSX and ZVector for POWER8/z13 (64-bit) */ + XXH_SVE = 6, /*!< SVE for some ARMv8-A and ARMv9-A */ +}; +/*! + * @ingroup tuning + * @brief Selects the minimum alignment for XXH3's accumulators. + * + * When using SIMD, this should match the alignment required for said vector + * type, so, for example, 32 for AVX2. + * + * Default: Auto detected. + */ +# define XXH_ACC_ALIGN 8 +#endif + +/* Actual definition */ +#ifndef XXH_DOXYGEN +# define XXH_SCALAR 0 +# define XXH_SSE2 1 +# define XXH_AVX2 2 +# define XXH_AVX512 3 +# define XXH_NEON 4 +# define XXH_VSX 5 +# define XXH_SVE 6 +#endif + +#ifndef XXH_VECTOR /* can be defined on command line */ +# if defined(__ARM_FEATURE_SVE) +# define XXH_VECTOR XXH_SVE +# elif ( \ + defined(__ARM_NEON__) || defined(__ARM_NEON) /* gcc */ \ + || defined(_M_ARM) || defined(_M_ARM64) || defined(_M_ARM64EC) /* msvc */ \ + || (defined(__wasm_simd128__) && XXH_HAS_INCLUDE()) /* wasm simd128 via SIMDe */ \ + ) && ( \ + defined(_WIN32) || defined(__LITTLE_ENDIAN__) /* little endian only */ \ + || (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) \ + ) +# define XXH_VECTOR XXH_NEON +# elif defined(__AVX512F__) +# define XXH_VECTOR XXH_AVX512 +# elif defined(__AVX2__) +# define XXH_VECTOR XXH_AVX2 +# elif defined(__SSE2__) || defined(_M_AMD64) || defined(_M_X64) || (defined(_M_IX86_FP) && (_M_IX86_FP == 2)) +# define XXH_VECTOR XXH_SSE2 +# elif (defined(__PPC64__) && defined(__POWER8_VECTOR__)) \ + || (defined(__s390x__) && defined(__VEC__)) \ + && defined(__GNUC__) /* TODO: IBM XL */ +# define XXH_VECTOR XXH_VSX +# else +# define XXH_VECTOR XXH_SCALAR +# endif +#endif + +/* __ARM_FEATURE_SVE is only supported by GCC & Clang. */ +#if (XXH_VECTOR == XXH_SVE) && !defined(__ARM_FEATURE_SVE) +# ifdef _MSC_VER +# pragma warning(once : 4606) +# else +# warning "__ARM_FEATURE_SVE isn't supported. Use SCALAR instead." +# endif +# undef XXH_VECTOR +# define XXH_VECTOR XXH_SCALAR +#endif + +/* + * Controls the alignment of the accumulator, + * for compatibility with aligned vector loads, which are usually faster. + */ +#ifndef XXH_ACC_ALIGN +# if defined(XXH_X86DISPATCH) +# define XXH_ACC_ALIGN 64 /* for compatibility with avx512 */ +# elif XXH_VECTOR == XXH_SCALAR /* scalar */ +# define XXH_ACC_ALIGN 8 +# elif XXH_VECTOR == XXH_SSE2 /* sse2 */ +# define XXH_ACC_ALIGN 16 +# elif XXH_VECTOR == XXH_AVX2 /* avx2 */ +# define XXH_ACC_ALIGN 32 +# elif XXH_VECTOR == XXH_NEON /* neon */ +# define XXH_ACC_ALIGN 16 +# elif XXH_VECTOR == XXH_VSX /* vsx */ +# define XXH_ACC_ALIGN 16 +# elif XXH_VECTOR == XXH_AVX512 /* avx512 */ +# define XXH_ACC_ALIGN 64 +# elif XXH_VECTOR == XXH_SVE /* sve */ +# define XXH_ACC_ALIGN 64 +# endif +#endif + +#if defined(XXH_X86DISPATCH) || XXH_VECTOR == XXH_SSE2 \ + || XXH_VECTOR == XXH_AVX2 || XXH_VECTOR == XXH_AVX512 +# define XXH_SEC_ALIGN XXH_ACC_ALIGN +#elif XXH_VECTOR == XXH_SVE +# define XXH_SEC_ALIGN XXH_ACC_ALIGN +#else +# define XXH_SEC_ALIGN 8 +#endif + +#if defined(__GNUC__) || defined(__clang__) +# define XXH_ALIASING __attribute__((may_alias)) +#else +# define XXH_ALIASING /* nothing */ +#endif + +/* + * UGLY HACK: + * GCC usually generates the best code with -O3 for xxHash. + * + * However, when targeting AVX2, it is overzealous in its unrolling resulting + * in code roughly 3/4 the speed of Clang. + * + * There are other issues, such as GCC splitting _mm256_loadu_si256 into + * _mm_loadu_si128 + _mm256_inserti128_si256. This is an optimization which + * only applies to Sandy and Ivy Bridge... which don't even support AVX2. + * + * That is why when compiling the AVX2 version, it is recommended to use either + * -O2 -mavx2 -march=haswell + * or + * -O2 -mavx2 -mno-avx256-split-unaligned-load + * for decent performance, or to use Clang instead. + * + * Fortunately, we can control the first one with a pragma that forces GCC into + * -O2, but the other one we can't control without "failed to inline always + * inline function due to target mismatch" warnings. + */ +#if XXH_VECTOR == XXH_AVX2 /* AVX2 */ \ + && defined(__GNUC__) && !defined(__clang__) /* GCC, not Clang */ \ + && defined(__OPTIMIZE__) && XXH_SIZE_OPT <= 0 /* respect -O0 and -Os */ +# pragma GCC push_options +# pragma GCC optimize("-O2") +#endif + +#if XXH_VECTOR == XXH_NEON + +/* + * UGLY HACK: While AArch64 GCC on Linux does not seem to care, on macOS, GCC -O3 + * optimizes out the entire hashLong loop because of the aliasing violation. + * + * However, GCC is also inefficient at load-store optimization with vld1q/vst1q, + * so the only option is to mark it as aliasing. + */ +typedef uint64x2_t xxh_aliasing_uint64x2_t XXH_ALIASING; + +/*! + * @internal + * @brief `vld1q_u64` but faster and alignment-safe. + * + * On AArch64, unaligned access is always safe, but on ARMv7-a, it is only + * *conditionally* safe (`vld1` has an alignment bit like `movdq[ua]` in x86). + * + * GCC for AArch64 sees `vld1q_u8` as an intrinsic instead of a load, so it + * prohibits load-store optimizations. Therefore, a direct dereference is used. + * + * Otherwise, `vld1q_u8` is used with `vreinterpretq_u8_u64` to do a safe + * unaligned load. + */ +#if defined(__aarch64__) && defined(__GNUC__) && !defined(__clang__) +XXH_FORCE_INLINE uint64x2_t XXH_vld1q_u64(void const* ptr) /* silence -Wcast-align */ +{ + return *(xxh_aliasing_uint64x2_t const *)ptr; +} +#else +XXH_FORCE_INLINE uint64x2_t XXH_vld1q_u64(void const* ptr) +{ + return vreinterpretq_u64_u8(vld1q_u8((uint8_t const*)ptr)); +} +#endif + +/*! + * @internal + * @brief `vmlal_u32` on low and high halves of a vector. + * + * This is a workaround for AArch64 GCC < 11 which implemented arm_neon.h with + * inline assembly and were therefore incapable of merging the `vget_{low, high}_u32` + * with `vmlal_u32`. + */ +#if defined(__aarch64__) && defined(__GNUC__) && !defined(__clang__) && __GNUC__ < 11 +XXH_FORCE_INLINE uint64x2_t +XXH_vmlal_low_u32(uint64x2_t acc, uint32x4_t lhs, uint32x4_t rhs) +{ + /* Inline assembly is the only way */ + __asm__("umlal %0.2d, %1.2s, %2.2s" : "+w" (acc) : "w" (lhs), "w" (rhs)); + return acc; +} +XXH_FORCE_INLINE uint64x2_t +XXH_vmlal_high_u32(uint64x2_t acc, uint32x4_t lhs, uint32x4_t rhs) +{ + /* This intrinsic works as expected */ + return vmlal_high_u32(acc, lhs, rhs); +} +#else +/* Portable intrinsic versions */ +XXH_FORCE_INLINE uint64x2_t +XXH_vmlal_low_u32(uint64x2_t acc, uint32x4_t lhs, uint32x4_t rhs) +{ + return vmlal_u32(acc, vget_low_u32(lhs), vget_low_u32(rhs)); +} +/*! @copydoc XXH_vmlal_low_u32 + * Assume the compiler converts this to vmlal_high_u32 on aarch64 */ +XXH_FORCE_INLINE uint64x2_t +XXH_vmlal_high_u32(uint64x2_t acc, uint32x4_t lhs, uint32x4_t rhs) +{ + return vmlal_u32(acc, vget_high_u32(lhs), vget_high_u32(rhs)); +} +#endif + +/*! + * @ingroup tuning + * @brief Controls the NEON to scalar ratio for XXH3 + * + * This can be set to 2, 4, 6, or 8. + * + * ARM Cortex CPUs are _very_ sensitive to how their pipelines are used. + * + * For example, the Cortex-A73 can dispatch 3 micro-ops per cycle, but only 2 of those + * can be NEON. If you are only using NEON instructions, you are only using 2/3 of the CPU + * bandwidth. + * + * This is even more noticeable on the more advanced cores like the Cortex-A76 which + * can dispatch 8 micro-ops per cycle, but still only 2 NEON micro-ops at once. + * + * Therefore, to make the most out of the pipeline, it is beneficial to run 6 NEON lanes + * and 2 scalar lanes, which is chosen by default. + * + * This does not apply to Apple processors or 32-bit processors, which run better with + * full NEON. These will default to 8. Additionally, size-optimized builds run 8 lanes. + * + * This change benefits CPUs with large micro-op buffers without negatively affecting + * most other CPUs: + * + * | Chipset | Dispatch type | NEON only | 6:2 hybrid | Diff. | + * |:----------------------|:--------------------|----------:|-----------:|------:| + * | Snapdragon 730 (A76) | 2 NEON/8 micro-ops | 8.8 GB/s | 10.1 GB/s | ~16% | + * | Snapdragon 835 (A73) | 2 NEON/3 micro-ops | 5.1 GB/s | 5.3 GB/s | ~5% | + * | Marvell PXA1928 (A53) | In-order dual-issue | 1.9 GB/s | 1.9 GB/s | 0% | + * | Apple M1 | 4 NEON/8 micro-ops | 37.3 GB/s | 36.1 GB/s | ~-3% | + * + * It also seems to fix some bad codegen on GCC, making it almost as fast as clang. + * + * When using WASM SIMD128, if this is 2 or 6, SIMDe will scalarize 2 of the lanes meaning + * it effectively becomes worse 4. + * + * @see XXH3_accumulate_512_neon() + */ +# ifndef XXH3_NEON_LANES +# if (defined(__aarch64__) || defined(__arm64__) || defined(_M_ARM64) || defined(_M_ARM64EC)) \ + && !defined(__APPLE__) && XXH_SIZE_OPT <= 0 +# define XXH3_NEON_LANES 6 +# else +# define XXH3_NEON_LANES XXH_ACC_NB +# endif +# endif +#endif /* XXH_VECTOR == XXH_NEON */ + +/* + * VSX and Z Vector helpers. + * + * This is very messy, and any pull requests to clean this up are welcome. + * + * There are a lot of problems with supporting VSX and s390x, due to + * inconsistent intrinsics, spotty coverage, and multiple endiannesses. + */ +#if XXH_VECTOR == XXH_VSX +/* Annoyingly, these headers _may_ define three macros: `bool`, `vector`, + * and `pixel`. This is a problem for obvious reasons. + * + * These keywords are unnecessary; the spec literally says they are + * equivalent to `__bool`, `__vector`, and `__pixel` and may be undef'd + * after including the header. + * + * We use pragma push_macro/pop_macro to keep the namespace clean. */ +# pragma push_macro("bool") +# pragma push_macro("vector") +# pragma push_macro("pixel") +/* silence potential macro redefined warnings */ +# undef bool +# undef vector +# undef pixel + +# if defined(__s390x__) +# include +# else +# include +# endif + +/* Restore the original macro values, if applicable. */ +# pragma pop_macro("pixel") +# pragma pop_macro("vector") +# pragma pop_macro("bool") + +typedef __vector unsigned long long xxh_u64x2; +typedef __vector unsigned char xxh_u8x16; +typedef __vector unsigned xxh_u32x4; + +/* + * UGLY HACK: Similar to aarch64 macOS GCC, s390x GCC has the same aliasing issue. + */ +typedef xxh_u64x2 xxh_aliasing_u64x2 XXH_ALIASING; + +# ifndef XXH_VSX_BE +# if defined(__BIG_ENDIAN__) \ + || (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) +# define XXH_VSX_BE 1 +# elif defined(__VEC_ELEMENT_REG_ORDER__) && __VEC_ELEMENT_REG_ORDER__ == __ORDER_BIG_ENDIAN__ +# warning "-maltivec=be is not recommended. Please use native endianness." +# define XXH_VSX_BE 1 +# else +# define XXH_VSX_BE 0 +# endif +# endif /* !defined(XXH_VSX_BE) */ + +# if XXH_VSX_BE +# if defined(__POWER9_VECTOR__) || (defined(__clang__) && defined(__s390x__)) +# define XXH_vec_revb vec_revb +# else +/*! + * A polyfill for POWER9's vec_revb(). + */ +XXH_FORCE_INLINE xxh_u64x2 XXH_vec_revb(xxh_u64x2 val) +{ + xxh_u8x16 const vByteSwap = { 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, + 0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08 }; + return vec_perm(val, val, vByteSwap); +} +# endif +# endif /* XXH_VSX_BE */ + +/*! + * Performs an unaligned vector load and byte swaps it on big endian. + */ +XXH_FORCE_INLINE xxh_u64x2 XXH_vec_loadu(const void *ptr) +{ + xxh_u64x2 ret; + XXH_memcpy(&ret, ptr, sizeof(xxh_u64x2)); +# if XXH_VSX_BE + ret = XXH_vec_revb(ret); +# endif + return ret; +} + +/* + * vec_mulo and vec_mule are very problematic intrinsics on PowerPC + * + * These intrinsics weren't added until GCC 8, despite existing for a while, + * and they are endian dependent. Also, their meaning swap depending on version. + * */ +# if defined(__s390x__) + /* s390x is always big endian, no issue on this platform */ +# define XXH_vec_mulo vec_mulo +# define XXH_vec_mule vec_mule +# elif defined(__clang__) && XXH_HAS_BUILTIN(__builtin_altivec_vmuleuw) && !defined(__ibmxl__) +/* Clang has a better way to control this, we can just use the builtin which doesn't swap. */ + /* The IBM XL Compiler (which defined __clang__) only implements the vec_* operations */ +# define XXH_vec_mulo __builtin_altivec_vmulouw +# define XXH_vec_mule __builtin_altivec_vmuleuw +# else +/* gcc needs inline assembly */ +/* Adapted from https://github.com/google/highwayhash/blob/master/highwayhash/hh_vsx.h. */ +XXH_FORCE_INLINE xxh_u64x2 XXH_vec_mulo(xxh_u32x4 a, xxh_u32x4 b) +{ + xxh_u64x2 result; + __asm__("vmulouw %0, %1, %2" : "=v" (result) : "v" (a), "v" (b)); + return result; +} +XXH_FORCE_INLINE xxh_u64x2 XXH_vec_mule(xxh_u32x4 a, xxh_u32x4 b) +{ + xxh_u64x2 result; + __asm__("vmuleuw %0, %1, %2" : "=v" (result) : "v" (a), "v" (b)); + return result; +} +# endif /* XXH_vec_mulo, XXH_vec_mule */ +#endif /* XXH_VECTOR == XXH_VSX */ + +#if XXH_VECTOR == XXH_SVE +#define ACCRND(acc, offset) \ +do { \ + svuint64_t input_vec = svld1_u64(mask, xinput + offset); \ + svuint64_t secret_vec = svld1_u64(mask, xsecret + offset); \ + svuint64_t mixed = sveor_u64_x(mask, secret_vec, input_vec); \ + svuint64_t swapped = svtbl_u64(input_vec, kSwap); \ + svuint64_t mixed_lo = svextw_u64_x(mask, mixed); \ + svuint64_t mixed_hi = svlsr_n_u64_x(mask, mixed, 32); \ + svuint64_t mul = svmad_u64_x(mask, mixed_lo, mixed_hi, swapped); \ + acc = svadd_u64_x(mask, acc, mul); \ +} while (0) +#endif /* XXH_VECTOR == XXH_SVE */ + +/* prefetch + * can be disabled, by declaring XXH_NO_PREFETCH build macro */ +#if defined(XXH_NO_PREFETCH) +# define XXH_PREFETCH(ptr) (void)(ptr) /* disabled */ +#else +# if XXH_SIZE_OPT >= 1 +# define XXH_PREFETCH(ptr) (void)(ptr) +# elif defined(_MSC_VER) && (defined(_M_X64) || defined(_M_IX86)) /* _mm_prefetch() not defined outside of x86/x64 */ +# include /* https://msdn.microsoft.com/fr-fr/library/84szxsww(v=vs.90).aspx */ +# define XXH_PREFETCH(ptr) _mm_prefetch((const char*)(ptr), _MM_HINT_T0) +# elif defined(__GNUC__) && ( (__GNUC__ >= 4) || ( (__GNUC__ == 3) && (__GNUC_MINOR__ >= 1) ) ) +# define XXH_PREFETCH(ptr) __builtin_prefetch((ptr), 0 /* rw==read */, 3 /* locality */) +# else +# define XXH_PREFETCH(ptr) (void)(ptr) /* disabled */ +# endif +#endif /* XXH_NO_PREFETCH */ + + +/* ========================================== + * XXH3 default settings + * ========================================== */ + +#define XXH_SECRET_DEFAULT_SIZE 192 /* minimum XXH3_SECRET_SIZE_MIN */ + +#if (XXH_SECRET_DEFAULT_SIZE < XXH3_SECRET_SIZE_MIN) +# error "default keyset is not large enough" +#endif + +/*! Pseudorandom secret taken directly from FARSH. */ +XXH_ALIGN(64) static const xxh_u8 XXH3_kSecret[XXH_SECRET_DEFAULT_SIZE] = { + 0xb8, 0xfe, 0x6c, 0x39, 0x23, 0xa4, 0x4b, 0xbe, 0x7c, 0x01, 0x81, 0x2c, 0xf7, 0x21, 0xad, 0x1c, + 0xde, 0xd4, 0x6d, 0xe9, 0x83, 0x90, 0x97, 0xdb, 0x72, 0x40, 0xa4, 0xa4, 0xb7, 0xb3, 0x67, 0x1f, + 0xcb, 0x79, 0xe6, 0x4e, 0xcc, 0xc0, 0xe5, 0x78, 0x82, 0x5a, 0xd0, 0x7d, 0xcc, 0xff, 0x72, 0x21, + 0xb8, 0x08, 0x46, 0x74, 0xf7, 0x43, 0x24, 0x8e, 0xe0, 0x35, 0x90, 0xe6, 0x81, 0x3a, 0x26, 0x4c, + 0x3c, 0x28, 0x52, 0xbb, 0x91, 0xc3, 0x00, 0xcb, 0x88, 0xd0, 0x65, 0x8b, 0x1b, 0x53, 0x2e, 0xa3, + 0x71, 0x64, 0x48, 0x97, 0xa2, 0x0d, 0xf9, 0x4e, 0x38, 0x19, 0xef, 0x46, 0xa9, 0xde, 0xac, 0xd8, + 0xa8, 0xfa, 0x76, 0x3f, 0xe3, 0x9c, 0x34, 0x3f, 0xf9, 0xdc, 0xbb, 0xc7, 0xc7, 0x0b, 0x4f, 0x1d, + 0x8a, 0x51, 0xe0, 0x4b, 0xcd, 0xb4, 0x59, 0x31, 0xc8, 0x9f, 0x7e, 0xc9, 0xd9, 0x78, 0x73, 0x64, + 0xea, 0xc5, 0xac, 0x83, 0x34, 0xd3, 0xeb, 0xc3, 0xc5, 0x81, 0xa0, 0xff, 0xfa, 0x13, 0x63, 0xeb, + 0x17, 0x0d, 0xdd, 0x51, 0xb7, 0xf0, 0xda, 0x49, 0xd3, 0x16, 0x55, 0x26, 0x29, 0xd4, 0x68, 0x9e, + 0x2b, 0x16, 0xbe, 0x58, 0x7d, 0x47, 0xa1, 0xfc, 0x8f, 0xf8, 0xb8, 0xd1, 0x7a, 0xd0, 0x31, 0xce, + 0x45, 0xcb, 0x3a, 0x8f, 0x95, 0x16, 0x04, 0x28, 0xaf, 0xd7, 0xfb, 0xca, 0xbb, 0x4b, 0x40, 0x7e, +}; + +static const xxh_u64 PRIME_MX1 = 0x165667919E3779F9ULL; /*!< 0b0001011001010110011001111001000110011110001101110111100111111001 */ +static const xxh_u64 PRIME_MX2 = 0x9FB21C651E98DF25ULL; /*!< 0b1001111110110010000111000110010100011110100110001101111100100101 */ + +#ifdef XXH_OLD_NAMES +# define kSecret XXH3_kSecret +#endif + +#ifdef XXH_DOXYGEN +/*! + * @brief Calculates a 32-bit to 64-bit long multiply. + * + * Implemented as a macro. + * + * Wraps `__emulu` on MSVC x86 because it tends to call `__allmul` when it doesn't + * need to (but it shouldn't need to anyways, it is about 7 instructions to do + * a 64x64 multiply...). Since we know that this will _always_ emit `MULL`, we + * use that instead of the normal method. + * + * If you are compiling for platforms like Thumb-1 and don't have a better option, + * you may also want to write your own long multiply routine here. + * + * @param x, y Numbers to be multiplied + * @return 64-bit product of the low 32 bits of @p x and @p y. + */ +XXH_FORCE_INLINE xxh_u64 +XXH_mult32to64(xxh_u64 x, xxh_u64 y) +{ + return (x & 0xFFFFFFFF) * (y & 0xFFFFFFFF); +} +#elif defined(_MSC_VER) && defined(_M_IX86) +# define XXH_mult32to64(x, y) __emulu((unsigned)(x), (unsigned)(y)) +#else +/* + * Downcast + upcast is usually better than masking on older compilers like + * GCC 4.2 (especially 32-bit ones), all without affecting newer compilers. + * + * The other method, (x & 0xFFFFFFFF) * (y & 0xFFFFFFFF), will AND both operands + * and perform a full 64x64 multiply -- entirely redundant on 32-bit. + */ +# define XXH_mult32to64(x, y) ((xxh_u64)(xxh_u32)(x) * (xxh_u64)(xxh_u32)(y)) +#endif + +/*! + * @brief Calculates a 64->128-bit long multiply. + * + * Uses `__uint128_t` and `_umul128` if available, otherwise uses a scalar + * version. + * + * @param lhs , rhs The 64-bit integers to be multiplied + * @return The 128-bit result represented in an @ref XXH128_hash_t. + */ +static XXH128_hash_t +XXH_mult64to128(xxh_u64 lhs, xxh_u64 rhs) +{ + /* + * GCC/Clang __uint128_t method. + * + * On most 64-bit targets, GCC and Clang define a __uint128_t type. + * This is usually the best way as it usually uses a native long 64-bit + * multiply, such as MULQ on x86_64 or MUL + UMULH on aarch64. + * + * Usually. + * + * Despite being a 32-bit platform, Clang (and emscripten) define this type + * despite not having the arithmetic for it. This results in a laggy + * compiler builtin call which calculates a full 128-bit multiply. + * In that case it is best to use the portable one. + * https://github.com/Cyan4973/xxHash/issues/211#issuecomment-515575677 + */ +#if (defined(__GNUC__) || defined(__clang__)) && !defined(__wasm__) \ + && defined(__SIZEOF_INT128__) \ + || (defined(_INTEGRAL_MAX_BITS) && _INTEGRAL_MAX_BITS >= 128) + + __uint128_t const product = (__uint128_t)lhs * (__uint128_t)rhs; + XXH128_hash_t r128; + r128.low64 = (xxh_u64)(product); + r128.high64 = (xxh_u64)(product >> 64); + return r128; + + /* + * MSVC for x64's _umul128 method. + * + * xxh_u64 _umul128(xxh_u64 Multiplier, xxh_u64 Multiplicand, xxh_u64 *HighProduct); + * + * This compiles to single operand MUL on x64. + */ +#elif (defined(_M_X64) || defined(_M_IA64)) && !defined(_M_ARM64EC) + +#ifndef _MSC_VER +# pragma intrinsic(_umul128) +#endif + xxh_u64 product_high; + xxh_u64 const product_low = _umul128(lhs, rhs, &product_high); + XXH128_hash_t r128; + r128.low64 = product_low; + r128.high64 = product_high; + return r128; + + /* + * MSVC for ARM64's __umulh method. + * + * This compiles to the same MUL + UMULH as GCC/Clang's __uint128_t method. + */ +#elif defined(_M_ARM64) || defined(_M_ARM64EC) + +#ifndef _MSC_VER +# pragma intrinsic(__umulh) +#endif + XXH128_hash_t r128; + r128.low64 = lhs * rhs; + r128.high64 = __umulh(lhs, rhs); + return r128; + +#else + /* + * Portable scalar method. Optimized for 32-bit and 64-bit ALUs. + * + * This is a fast and simple grade school multiply, which is shown below + * with base 10 arithmetic instead of base 0x100000000. + * + * 9 3 // D2 lhs = 93 + * x 7 5 // D2 rhs = 75 + * ---------- + * 1 5 // D2 lo_lo = (93 % 10) * (75 % 10) = 15 + * 4 5 | // D2 hi_lo = (93 / 10) * (75 % 10) = 45 + * 2 1 | // D2 lo_hi = (93 % 10) * (75 / 10) = 21 + * + 6 3 | | // D2 hi_hi = (93 / 10) * (75 / 10) = 63 + * --------- + * 2 7 | // D2 cross = (15 / 10) + (45 % 10) + 21 = 27 + * + 6 7 | | // D2 upper = (27 / 10) + (45 / 10) + 63 = 67 + * --------- + * 6 9 7 5 // D4 res = (27 * 10) + (15 % 10) + (67 * 100) = 6975 + * + * The reasons for adding the products like this are: + * 1. It avoids manual carry tracking. Just like how + * (9 * 9) + 9 + 9 = 99, the same applies with this for UINT64_MAX. + * This avoids a lot of complexity. + * + * 2. It hints for, and on Clang, compiles to, the powerful UMAAL + * instruction available in ARM's Digital Signal Processing extension + * in 32-bit ARMv6 and later, which is shown below: + * + * void UMAAL(xxh_u32 *RdLo, xxh_u32 *RdHi, xxh_u32 Rn, xxh_u32 Rm) + * { + * xxh_u64 product = (xxh_u64)*RdLo * (xxh_u64)*RdHi + Rn + Rm; + * *RdLo = (xxh_u32)(product & 0xFFFFFFFF); + * *RdHi = (xxh_u32)(product >> 32); + * } + * + * This instruction was designed for efficient long multiplication, and + * allows this to be calculated in only 4 instructions at speeds + * comparable to some 64-bit ALUs. + * + * 3. It isn't terrible on other platforms. Usually this will be a couple + * of 32-bit ADD/ADCs. + */ + + /* First calculate all of the cross products. */ + xxh_u64 const lo_lo = XXH_mult32to64(lhs & 0xFFFFFFFF, rhs & 0xFFFFFFFF); + xxh_u64 const hi_lo = XXH_mult32to64(lhs >> 32, rhs & 0xFFFFFFFF); + xxh_u64 const lo_hi = XXH_mult32to64(lhs & 0xFFFFFFFF, rhs >> 32); + xxh_u64 const hi_hi = XXH_mult32to64(lhs >> 32, rhs >> 32); + + /* Now add the products together. These will never overflow. */ + xxh_u64 const cross = (lo_lo >> 32) + (hi_lo & 0xFFFFFFFF) + lo_hi; + xxh_u64 const upper = (hi_lo >> 32) + (cross >> 32) + hi_hi; + xxh_u64 const lower = (cross << 32) | (lo_lo & 0xFFFFFFFF); + + XXH128_hash_t r128; + r128.low64 = lower; + r128.high64 = upper; + return r128; +#endif +} + +/*! + * @brief Calculates a 64-bit to 128-bit multiply, then XOR folds it. + * + * The reason for the separate function is to prevent passing too many structs + * around by value. This will hopefully inline the multiply, but we don't force it. + * + * @param lhs , rhs The 64-bit integers to multiply + * @return The low 64 bits of the product XOR'd by the high 64 bits. + * @see XXH_mult64to128() + */ +static xxh_u64 +XXH3_mul128_fold64(xxh_u64 lhs, xxh_u64 rhs) +{ + XXH128_hash_t product = XXH_mult64to128(lhs, rhs); + return product.low64 ^ product.high64; +} + +/*! Seems to produce slightly better code on GCC for some reason. */ +XXH_FORCE_INLINE XXH_CONSTF xxh_u64 XXH_xorshift64(xxh_u64 v64, int shift) +{ + XXH_ASSERT(0 <= shift && shift < 64); + return v64 ^ (v64 >> shift); +} + +/* + * This is a fast avalanche stage, + * suitable when input bits are already partially mixed + */ +static XXH64_hash_t XXH3_avalanche(xxh_u64 h64) +{ + h64 = XXH_xorshift64(h64, 37); + h64 *= PRIME_MX1; + h64 = XXH_xorshift64(h64, 32); + return h64; +} + +/* + * This is a stronger avalanche, + * inspired by Pelle Evensen's rrmxmx + * preferable when input has not been previously mixed + */ +static XXH64_hash_t XXH3_rrmxmx(xxh_u64 h64, xxh_u64 len) +{ + /* this mix is inspired by Pelle Evensen's rrmxmx */ + h64 ^= XXH_rotl64(h64, 49) ^ XXH_rotl64(h64, 24); + h64 *= PRIME_MX2; + h64 ^= (h64 >> 35) + len ; + h64 *= PRIME_MX2; + return XXH_xorshift64(h64, 28); +} + + +/* ========================================== + * Short keys + * ========================================== + * One of the shortcomings of XXH32 and XXH64 was that their performance was + * sub-optimal on short lengths. It used an iterative algorithm which strongly + * favored lengths that were a multiple of 4 or 8. + * + * Instead of iterating over individual inputs, we use a set of single shot + * functions which piece together a range of lengths and operate in constant time. + * + * Additionally, the number of multiplies has been significantly reduced. This + * reduces latency, especially when emulating 64-bit multiplies on 32-bit. + * + * Depending on the platform, this may or may not be faster than XXH32, but it + * is almost guaranteed to be faster than XXH64. + */ + +/* + * At very short lengths, there isn't enough input to fully hide secrets, or use + * the entire secret. + * + * There is also only a limited amount of mixing we can do before significantly + * impacting performance. + * + * Therefore, we use different sections of the secret and always mix two secret + * samples with an XOR. This should have no effect on performance on the + * seedless or withSeed variants because everything _should_ be constant folded + * by modern compilers. + * + * The XOR mixing hides individual parts of the secret and increases entropy. + * + * This adds an extra layer of strength for custom secrets. + */ +XXH_FORCE_INLINE XXH_PUREF XXH64_hash_t +XXH3_len_1to3_64b(const xxh_u8* input, size_t len, const xxh_u8* secret, XXH64_hash_t seed) +{ + XXH_ASSERT(input != NULL); + XXH_ASSERT(1 <= len && len <= 3); + XXH_ASSERT(secret != NULL); + /* + * len = 1: combined = { input[0], 0x01, input[0], input[0] } + * len = 2: combined = { input[1], 0x02, input[0], input[1] } + * len = 3: combined = { input[2], 0x03, input[0], input[1] } + */ + { xxh_u8 const c1 = input[0]; + xxh_u8 const c2 = input[len >> 1]; + xxh_u8 const c3 = input[len - 1]; + xxh_u32 const combined = ((xxh_u32)c1 << 16) | ((xxh_u32)c2 << 24) + | ((xxh_u32)c3 << 0) | ((xxh_u32)len << 8); + xxh_u64 const bitflip = (XXH_readLE32(secret) ^ XXH_readLE32(secret+4)) + seed; + xxh_u64 const keyed = (xxh_u64)combined ^ bitflip; + return XXH64_avalanche(keyed); + } +} + +XXH_FORCE_INLINE XXH_PUREF XXH64_hash_t +XXH3_len_4to8_64b(const xxh_u8* input, size_t len, const xxh_u8* secret, XXH64_hash_t seed) +{ + XXH_ASSERT(input != NULL); + XXH_ASSERT(secret != NULL); + XXH_ASSERT(4 <= len && len <= 8); + seed ^= (xxh_u64)XXH_swap32((xxh_u32)seed) << 32; + { xxh_u32 const input1 = XXH_readLE32(input); + xxh_u32 const input2 = XXH_readLE32(input + len - 4); + xxh_u64 const bitflip = (XXH_readLE64(secret+8) ^ XXH_readLE64(secret+16)) - seed; + xxh_u64 const input64 = input2 + (((xxh_u64)input1) << 32); + xxh_u64 const keyed = input64 ^ bitflip; + return XXH3_rrmxmx(keyed, len); + } +} + +XXH_FORCE_INLINE XXH_PUREF XXH64_hash_t +XXH3_len_9to16_64b(const xxh_u8* input, size_t len, const xxh_u8* secret, XXH64_hash_t seed) +{ + XXH_ASSERT(input != NULL); + XXH_ASSERT(secret != NULL); + XXH_ASSERT(9 <= len && len <= 16); + { xxh_u64 const bitflip1 = (XXH_readLE64(secret+24) ^ XXH_readLE64(secret+32)) + seed; + xxh_u64 const bitflip2 = (XXH_readLE64(secret+40) ^ XXH_readLE64(secret+48)) - seed; + xxh_u64 const input_lo = XXH_readLE64(input) ^ bitflip1; + xxh_u64 const input_hi = XXH_readLE64(input + len - 8) ^ bitflip2; + xxh_u64 const acc = len + + XXH_swap64(input_lo) + input_hi + + XXH3_mul128_fold64(input_lo, input_hi); + return XXH3_avalanche(acc); + } +} + +XXH_FORCE_INLINE XXH_PUREF XXH64_hash_t +XXH3_len_0to16_64b(const xxh_u8* input, size_t len, const xxh_u8* secret, XXH64_hash_t seed) +{ + XXH_ASSERT(len <= 16); + { if (XXH_likely(len > 8)) return XXH3_len_9to16_64b(input, len, secret, seed); + if (XXH_likely(len >= 4)) return XXH3_len_4to8_64b(input, len, secret, seed); + if (len) return XXH3_len_1to3_64b(input, len, secret, seed); + return XXH64_avalanche(seed ^ (XXH_readLE64(secret+56) ^ XXH_readLE64(secret+64))); + } +} + +/* + * DISCLAIMER: There are known *seed-dependent* multicollisions here due to + * multiplication by zero, affecting hashes of lengths 17 to 240. + * + * However, they are very unlikely. + * + * Keep this in mind when using the unseeded XXH3_64bits() variant: As with all + * unseeded non-cryptographic hashes, it does not attempt to defend itself + * against specially crafted inputs, only random inputs. + * + * Compared to classic UMAC where a 1 in 2^31 chance of 4 consecutive bytes + * cancelling out the secret is taken an arbitrary number of times (addressed + * in XXH3_accumulate_512), this collision is very unlikely with random inputs + * and/or proper seeding: + * + * This only has a 1 in 2^63 chance of 8 consecutive bytes cancelling out, in a + * function that is only called up to 16 times per hash with up to 240 bytes of + * input. + * + * This is not too bad for a non-cryptographic hash function, especially with + * only 64 bit outputs. + * + * The 128-bit variant (which trades some speed for strength) is NOT affected + * by this, although it is always a good idea to use a proper seed if you care + * about strength. + */ +XXH_FORCE_INLINE xxh_u64 XXH3_mix16B(const xxh_u8* XXH_RESTRICT input, + const xxh_u8* XXH_RESTRICT secret, xxh_u64 seed64) +{ +#if defined(__GNUC__) && !defined(__clang__) /* GCC, not Clang */ \ + && defined(__i386__) && defined(__SSE2__) /* x86 + SSE2 */ \ + && !defined(XXH_ENABLE_AUTOVECTORIZE) /* Define to disable like XXH32 hack */ + /* + * UGLY HACK: + * GCC for x86 tends to autovectorize the 128-bit multiply, resulting in + * slower code. + * + * By forcing seed64 into a register, we disrupt the cost model and + * cause it to scalarize. See `XXH32_round()` + * + * FIXME: Clang's output is still _much_ faster -- On an AMD Ryzen 3600, + * XXH3_64bits @ len=240 runs at 4.6 GB/s with Clang 9, but 3.3 GB/s on + * GCC 9.2, despite both emitting scalar code. + * + * GCC generates much better scalar code than Clang for the rest of XXH3, + * which is why finding a more optimal codepath is an interest. + */ + XXH_COMPILER_GUARD(seed64); +#endif + { xxh_u64 const input_lo = XXH_readLE64(input); + xxh_u64 const input_hi = XXH_readLE64(input+8); + return XXH3_mul128_fold64( + input_lo ^ (XXH_readLE64(secret) + seed64), + input_hi ^ (XXH_readLE64(secret+8) - seed64) + ); + } +} + +/* For mid range keys, XXH3 uses a Mum-hash variant. */ +XXH_FORCE_INLINE XXH_PUREF XXH64_hash_t +XXH3_len_17to128_64b(const xxh_u8* XXH_RESTRICT input, size_t len, + const xxh_u8* XXH_RESTRICT secret, size_t secretSize, + XXH64_hash_t seed) +{ + XXH_ASSERT(secretSize >= XXH3_SECRET_SIZE_MIN); (void)secretSize; + XXH_ASSERT(16 < len && len <= 128); + + { xxh_u64 acc = len * XXH_PRIME64_1; +#if XXH_SIZE_OPT >= 1 + /* Smaller and cleaner, but slightly slower. */ + unsigned int i = (unsigned int)(len - 1) / 32; + do { + acc += XXH3_mix16B(input+16 * i, secret+32*i, seed); + acc += XXH3_mix16B(input+len-16*(i+1), secret+32*i+16, seed); + } while (i-- != 0); +#else + if (len > 32) { + if (len > 64) { + if (len > 96) { + acc += XXH3_mix16B(input+48, secret+96, seed); + acc += XXH3_mix16B(input+len-64, secret+112, seed); + } + acc += XXH3_mix16B(input+32, secret+64, seed); + acc += XXH3_mix16B(input+len-48, secret+80, seed); + } + acc += XXH3_mix16B(input+16, secret+32, seed); + acc += XXH3_mix16B(input+len-32, secret+48, seed); + } + acc += XXH3_mix16B(input+0, secret+0, seed); + acc += XXH3_mix16B(input+len-16, secret+16, seed); +#endif + return XXH3_avalanche(acc); + } +} + +/*! + * @brief Maximum size of "short" key in bytes. + */ +#define XXH3_MIDSIZE_MAX 240 + +XXH_NO_INLINE XXH_PUREF XXH64_hash_t +XXH3_len_129to240_64b(const xxh_u8* XXH_RESTRICT input, size_t len, + const xxh_u8* XXH_RESTRICT secret, size_t secretSize, + XXH64_hash_t seed) +{ + XXH_ASSERT(secretSize >= XXH3_SECRET_SIZE_MIN); (void)secretSize; + XXH_ASSERT(128 < len && len <= XXH3_MIDSIZE_MAX); + + #define XXH3_MIDSIZE_STARTOFFSET 3 + #define XXH3_MIDSIZE_LASTOFFSET 17 + + { xxh_u64 acc = len * XXH_PRIME64_1; + xxh_u64 acc_end; + unsigned int const nbRounds = (unsigned int)len / 16; + unsigned int i; + XXH_ASSERT(128 < len && len <= XXH3_MIDSIZE_MAX); + for (i=0; i<8; i++) { + acc += XXH3_mix16B(input+(16*i), secret+(16*i), seed); + } + /* last bytes */ + acc_end = XXH3_mix16B(input + len - 16, secret + XXH3_SECRET_SIZE_MIN - XXH3_MIDSIZE_LASTOFFSET, seed); + XXH_ASSERT(nbRounds >= 8); + acc = XXH3_avalanche(acc); +#if defined(__clang__) /* Clang */ \ + && (defined(__ARM_NEON) || defined(__ARM_NEON__)) /* NEON */ \ + && !defined(XXH_ENABLE_AUTOVECTORIZE) /* Define to disable */ + /* + * UGLY HACK: + * Clang for ARMv7-A tries to vectorize this loop, similar to GCC x86. + * In everywhere else, it uses scalar code. + * + * For 64->128-bit multiplies, even if the NEON was 100% optimal, it + * would still be slower than UMAAL (see XXH_mult64to128). + * + * Unfortunately, Clang doesn't handle the long multiplies properly and + * converts them to the nonexistent "vmulq_u64" intrinsic, which is then + * scalarized into an ugly mess of VMOV.32 instructions. + * + * This mess is difficult to avoid without turning autovectorization + * off completely, but they are usually relatively minor and/or not + * worth it to fix. + * + * This loop is the easiest to fix, as unlike XXH32, this pragma + * _actually works_ because it is a loop vectorization instead of an + * SLP vectorization. + */ + #pragma clang loop vectorize(disable) +#endif + for (i=8 ; i < nbRounds; i++) { + /* + * Prevents clang for unrolling the acc loop and interleaving with this one. + */ + XXH_COMPILER_GUARD(acc); + acc_end += XXH3_mix16B(input+(16*i), secret+(16*(i-8)) + XXH3_MIDSIZE_STARTOFFSET, seed); + } + return XXH3_avalanche(acc + acc_end); + } +} + + +/* ======= Long Keys ======= */ + +#define XXH_STRIPE_LEN 64 +#define XXH_SECRET_CONSUME_RATE 8 /* nb of secret bytes consumed at each accumulation */ +#define XXH_ACC_NB (XXH_STRIPE_LEN / sizeof(xxh_u64)) + +#ifdef XXH_OLD_NAMES +# define STRIPE_LEN XXH_STRIPE_LEN +# define ACC_NB XXH_ACC_NB +#endif + +#ifndef XXH_PREFETCH_DIST +# ifdef __clang__ +# define XXH_PREFETCH_DIST 320 +# else +# if (XXH_VECTOR == XXH_AVX512) +# define XXH_PREFETCH_DIST 512 +# else +# define XXH_PREFETCH_DIST 384 +# endif +# endif /* __clang__ */ +#endif /* XXH_PREFETCH_DIST */ + +/* + * These macros are to generate an XXH3_accumulate() function. + * The two arguments select the name suffix and target attribute. + * + * The name of this symbol is XXH3_accumulate_() and it calls + * XXH3_accumulate_512_(). + * + * It may be useful to hand implement this function if the compiler fails to + * optimize the inline function. + */ +#define XXH3_ACCUMULATE_TEMPLATE(name) \ +void \ +XXH3_accumulate_##name(xxh_u64* XXH_RESTRICT acc, \ + const xxh_u8* XXH_RESTRICT input, \ + const xxh_u8* XXH_RESTRICT secret, \ + size_t nbStripes) \ +{ \ + size_t n; \ + for (n = 0; n < nbStripes; n++ ) { \ + const xxh_u8* const in = input + n*XXH_STRIPE_LEN; \ + XXH_PREFETCH(in + XXH_PREFETCH_DIST); \ + XXH3_accumulate_512_##name( \ + acc, \ + in, \ + secret + n*XXH_SECRET_CONSUME_RATE); \ + } \ +} + + +XXH_FORCE_INLINE void XXH_writeLE64(void* dst, xxh_u64 v64) +{ + if (!XXH_CPU_LITTLE_ENDIAN) v64 = XXH_swap64(v64); + XXH_memcpy(dst, &v64, sizeof(v64)); +} + +/* Several intrinsic functions below are supposed to accept __int64 as argument, + * as documented in https://software.intel.com/sites/landingpage/IntrinsicsGuide/ . + * However, several environments do not define __int64 type, + * requiring a workaround. + */ +#if !defined (__VMS) \ + && (defined (__cplusplus) \ + || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) ) + typedef int64_t xxh_i64; +#else + /* the following type must have a width of 64-bit */ + typedef long long xxh_i64; +#endif + + +/* + * XXH3_accumulate_512 is the tightest loop for long inputs, and it is the most optimized. + * + * It is a hardened version of UMAC, based off of FARSH's implementation. + * + * This was chosen because it adapts quite well to 32-bit, 64-bit, and SIMD + * implementations, and it is ridiculously fast. + * + * We harden it by mixing the original input to the accumulators as well as the product. + * + * This means that in the (relatively likely) case of a multiply by zero, the + * original input is preserved. + * + * On 128-bit inputs, we swap 64-bit pairs when we add the input to improve + * cross-pollination, as otherwise the upper and lower halves would be + * essentially independent. + * + * This doesn't matter on 64-bit hashes since they all get merged together in + * the end, so we skip the extra step. + * + * Both XXH3_64bits and XXH3_128bits use this subroutine. + */ + +#if (XXH_VECTOR == XXH_AVX512) \ + || (defined(XXH_DISPATCH_AVX512) && XXH_DISPATCH_AVX512 != 0) + +#ifndef XXH_TARGET_AVX512 +# define XXH_TARGET_AVX512 /* disable attribute target */ +#endif + +XXH_FORCE_INLINE XXH_TARGET_AVX512 void +XXH3_accumulate_512_avx512(void* XXH_RESTRICT acc, + const void* XXH_RESTRICT input, + const void* XXH_RESTRICT secret) +{ + __m512i* const xacc = (__m512i *) acc; + XXH_ASSERT((((size_t)acc) & 63) == 0); + XXH_STATIC_ASSERT(XXH_STRIPE_LEN == sizeof(__m512i)); + + { + /* data_vec = input[0]; */ + __m512i const data_vec = _mm512_loadu_si512 (input); + /* key_vec = secret[0]; */ + __m512i const key_vec = _mm512_loadu_si512 (secret); + /* data_key = data_vec ^ key_vec; */ + __m512i const data_key = _mm512_xor_si512 (data_vec, key_vec); + /* data_key_lo = data_key >> 32; */ + __m512i const data_key_lo = _mm512_srli_epi64 (data_key, 32); + /* product = (data_key & 0xffffffff) * (data_key_lo & 0xffffffff); */ + __m512i const product = _mm512_mul_epu32 (data_key, data_key_lo); + /* xacc[0] += swap(data_vec); */ + __m512i const data_swap = _mm512_shuffle_epi32(data_vec, (_MM_PERM_ENUM)_MM_SHUFFLE(1, 0, 3, 2)); + __m512i const sum = _mm512_add_epi64(*xacc, data_swap); + /* xacc[0] += product; */ + *xacc = _mm512_add_epi64(product, sum); + } +} +XXH_FORCE_INLINE XXH_TARGET_AVX512 XXH3_ACCUMULATE_TEMPLATE(avx512) + +/* + * XXH3_scrambleAcc: Scrambles the accumulators to improve mixing. + * + * Multiplication isn't perfect, as explained by Google in HighwayHash: + * + * // Multiplication mixes/scrambles bytes 0-7 of the 64-bit result to + * // varying degrees. In descending order of goodness, bytes + * // 3 4 2 5 1 6 0 7 have quality 228 224 164 160 100 96 36 32. + * // As expected, the upper and lower bytes are much worse. + * + * Source: https://github.com/google/highwayhash/blob/0aaf66b/highwayhash/hh_avx2.h#L291 + * + * Since our algorithm uses a pseudorandom secret to add some variance into the + * mix, we don't need to (or want to) mix as often or as much as HighwayHash does. + * + * This isn't as tight as XXH3_accumulate, but still written in SIMD to avoid + * extraction. + * + * Both XXH3_64bits and XXH3_128bits use this subroutine. + */ + +XXH_FORCE_INLINE XXH_TARGET_AVX512 void +XXH3_scrambleAcc_avx512(void* XXH_RESTRICT acc, const void* XXH_RESTRICT secret) +{ + XXH_ASSERT((((size_t)acc) & 63) == 0); + XXH_STATIC_ASSERT(XXH_STRIPE_LEN == sizeof(__m512i)); + { __m512i* const xacc = (__m512i*) acc; + const __m512i prime32 = _mm512_set1_epi32((int)XXH_PRIME32_1); + + /* xacc[0] ^= (xacc[0] >> 47) */ + __m512i const acc_vec = *xacc; + __m512i const shifted = _mm512_srli_epi64 (acc_vec, 47); + /* xacc[0] ^= secret; */ + __m512i const key_vec = _mm512_loadu_si512 (secret); + __m512i const data_key = _mm512_ternarylogic_epi32(key_vec, acc_vec, shifted, 0x96 /* key_vec ^ acc_vec ^ shifted */); + + /* xacc[0] *= XXH_PRIME32_1; */ + __m512i const data_key_hi = _mm512_srli_epi64 (data_key, 32); + __m512i const prod_lo = _mm512_mul_epu32 (data_key, prime32); + __m512i const prod_hi = _mm512_mul_epu32 (data_key_hi, prime32); + *xacc = _mm512_add_epi64(prod_lo, _mm512_slli_epi64(prod_hi, 32)); + } +} + +XXH_FORCE_INLINE XXH_TARGET_AVX512 void +XXH3_initCustomSecret_avx512(void* XXH_RESTRICT customSecret, xxh_u64 seed64) +{ + XXH_STATIC_ASSERT((XXH_SECRET_DEFAULT_SIZE & 63) == 0); + XXH_STATIC_ASSERT(XXH_SEC_ALIGN == 64); + XXH_ASSERT(((size_t)customSecret & 63) == 0); + (void)(&XXH_writeLE64); + { int const nbRounds = XXH_SECRET_DEFAULT_SIZE / sizeof(__m512i); + __m512i const seed_pos = _mm512_set1_epi64((xxh_i64)seed64); + __m512i const seed = _mm512_mask_sub_epi64(seed_pos, 0xAA, _mm512_set1_epi8(0), seed_pos); + + const __m512i* const src = (const __m512i*) ((const void*) XXH3_kSecret); + __m512i* const dest = ( __m512i*) customSecret; + int i; + XXH_ASSERT(((size_t)src & 63) == 0); /* control alignment */ + XXH_ASSERT(((size_t)dest & 63) == 0); + for (i=0; i < nbRounds; ++i) { + dest[i] = _mm512_add_epi64(_mm512_load_si512(src + i), seed); + } } +} + +#endif + +#if (XXH_VECTOR == XXH_AVX2) \ + || (defined(XXH_DISPATCH_AVX2) && XXH_DISPATCH_AVX2 != 0) + +#ifndef XXH_TARGET_AVX2 +# define XXH_TARGET_AVX2 /* disable attribute target */ +#endif + +XXH_FORCE_INLINE XXH_TARGET_AVX2 void +XXH3_accumulate_512_avx2( void* XXH_RESTRICT acc, + const void* XXH_RESTRICT input, + const void* XXH_RESTRICT secret) +{ + XXH_ASSERT((((size_t)acc) & 31) == 0); + { __m256i* const xacc = (__m256i *) acc; + /* Unaligned. This is mainly for pointer arithmetic, and because + * _mm256_loadu_si256 requires a const __m256i * pointer for some reason. */ + const __m256i* const xinput = (const __m256i *) input; + /* Unaligned. This is mainly for pointer arithmetic, and because + * _mm256_loadu_si256 requires a const __m256i * pointer for some reason. */ + const __m256i* const xsecret = (const __m256i *) secret; + + size_t i; + for (i=0; i < XXH_STRIPE_LEN/sizeof(__m256i); i++) { + /* data_vec = xinput[i]; */ + __m256i const data_vec = _mm256_loadu_si256 (xinput+i); + /* key_vec = xsecret[i]; */ + __m256i const key_vec = _mm256_loadu_si256 (xsecret+i); + /* data_key = data_vec ^ key_vec; */ + __m256i const data_key = _mm256_xor_si256 (data_vec, key_vec); + /* data_key_lo = data_key >> 32; */ + __m256i const data_key_lo = _mm256_srli_epi64 (data_key, 32); + /* product = (data_key & 0xffffffff) * (data_key_lo & 0xffffffff); */ + __m256i const product = _mm256_mul_epu32 (data_key, data_key_lo); + /* xacc[i] += swap(data_vec); */ + __m256i const data_swap = _mm256_shuffle_epi32(data_vec, _MM_SHUFFLE(1, 0, 3, 2)); + __m256i const sum = _mm256_add_epi64(xacc[i], data_swap); + /* xacc[i] += product; */ + xacc[i] = _mm256_add_epi64(product, sum); + } } +} +XXH_FORCE_INLINE XXH_TARGET_AVX2 XXH3_ACCUMULATE_TEMPLATE(avx2) + +XXH_FORCE_INLINE XXH_TARGET_AVX2 void +XXH3_scrambleAcc_avx2(void* XXH_RESTRICT acc, const void* XXH_RESTRICT secret) +{ + XXH_ASSERT((((size_t)acc) & 31) == 0); + { __m256i* const xacc = (__m256i*) acc; + /* Unaligned. This is mainly for pointer arithmetic, and because + * _mm256_loadu_si256 requires a const __m256i * pointer for some reason. */ + const __m256i* const xsecret = (const __m256i *) secret; + const __m256i prime32 = _mm256_set1_epi32((int)XXH_PRIME32_1); + + size_t i; + for (i=0; i < XXH_STRIPE_LEN/sizeof(__m256i); i++) { + /* xacc[i] ^= (xacc[i] >> 47) */ + __m256i const acc_vec = xacc[i]; + __m256i const shifted = _mm256_srli_epi64 (acc_vec, 47); + __m256i const data_vec = _mm256_xor_si256 (acc_vec, shifted); + /* xacc[i] ^= xsecret; */ + __m256i const key_vec = _mm256_loadu_si256 (xsecret+i); + __m256i const data_key = _mm256_xor_si256 (data_vec, key_vec); + + /* xacc[i] *= XXH_PRIME32_1; */ + __m256i const data_key_hi = _mm256_srli_epi64 (data_key, 32); + __m256i const prod_lo = _mm256_mul_epu32 (data_key, prime32); + __m256i const prod_hi = _mm256_mul_epu32 (data_key_hi, prime32); + xacc[i] = _mm256_add_epi64(prod_lo, _mm256_slli_epi64(prod_hi, 32)); + } + } +} + +XXH_FORCE_INLINE XXH_TARGET_AVX2 void XXH3_initCustomSecret_avx2(void* XXH_RESTRICT customSecret, xxh_u64 seed64) +{ + XXH_STATIC_ASSERT((XXH_SECRET_DEFAULT_SIZE & 31) == 0); + XXH_STATIC_ASSERT((XXH_SECRET_DEFAULT_SIZE / sizeof(__m256i)) == 6); + XXH_STATIC_ASSERT(XXH_SEC_ALIGN <= 64); + (void)(&XXH_writeLE64); + XXH_PREFETCH(customSecret); + { __m256i const seed = _mm256_set_epi64x((xxh_i64)(0U - seed64), (xxh_i64)seed64, (xxh_i64)(0U - seed64), (xxh_i64)seed64); + + const __m256i* const src = (const __m256i*) ((const void*) XXH3_kSecret); + __m256i* dest = ( __m256i*) customSecret; + +# if defined(__GNUC__) || defined(__clang__) + /* + * On GCC & Clang, marking 'dest' as modified will cause the compiler: + * - do not extract the secret from sse registers in the internal loop + * - use less common registers, and avoid pushing these reg into stack + */ + XXH_COMPILER_GUARD(dest); +# endif + XXH_ASSERT(((size_t)src & 31) == 0); /* control alignment */ + XXH_ASSERT(((size_t)dest & 31) == 0); + + /* GCC -O2 need unroll loop manually */ + dest[0] = _mm256_add_epi64(_mm256_load_si256(src+0), seed); + dest[1] = _mm256_add_epi64(_mm256_load_si256(src+1), seed); + dest[2] = _mm256_add_epi64(_mm256_load_si256(src+2), seed); + dest[3] = _mm256_add_epi64(_mm256_load_si256(src+3), seed); + dest[4] = _mm256_add_epi64(_mm256_load_si256(src+4), seed); + dest[5] = _mm256_add_epi64(_mm256_load_si256(src+5), seed); + } +} + +#endif + +/* x86dispatch always generates SSE2 */ +#if (XXH_VECTOR == XXH_SSE2) || defined(XXH_X86DISPATCH) + +#ifndef XXH_TARGET_SSE2 +# define XXH_TARGET_SSE2 /* disable attribute target */ +#endif + +XXH_FORCE_INLINE XXH_TARGET_SSE2 void +XXH3_accumulate_512_sse2( void* XXH_RESTRICT acc, + const void* XXH_RESTRICT input, + const void* XXH_RESTRICT secret) +{ + /* SSE2 is just a half-scale version of the AVX2 version. */ + XXH_ASSERT((((size_t)acc) & 15) == 0); + { __m128i* const xacc = (__m128i *) acc; + /* Unaligned. This is mainly for pointer arithmetic, and because + * _mm_loadu_si128 requires a const __m128i * pointer for some reason. */ + const __m128i* const xinput = (const __m128i *) input; + /* Unaligned. This is mainly for pointer arithmetic, and because + * _mm_loadu_si128 requires a const __m128i * pointer for some reason. */ + const __m128i* const xsecret = (const __m128i *) secret; + + size_t i; + for (i=0; i < XXH_STRIPE_LEN/sizeof(__m128i); i++) { + /* data_vec = xinput[i]; */ + __m128i const data_vec = _mm_loadu_si128 (xinput+i); + /* key_vec = xsecret[i]; */ + __m128i const key_vec = _mm_loadu_si128 (xsecret+i); + /* data_key = data_vec ^ key_vec; */ + __m128i const data_key = _mm_xor_si128 (data_vec, key_vec); + /* data_key_lo = data_key >> 32; */ + __m128i const data_key_lo = _mm_shuffle_epi32 (data_key, _MM_SHUFFLE(0, 3, 0, 1)); + /* product = (data_key & 0xffffffff) * (data_key_lo & 0xffffffff); */ + __m128i const product = _mm_mul_epu32 (data_key, data_key_lo); + /* xacc[i] += swap(data_vec); */ + __m128i const data_swap = _mm_shuffle_epi32(data_vec, _MM_SHUFFLE(1,0,3,2)); + __m128i const sum = _mm_add_epi64(xacc[i], data_swap); + /* xacc[i] += product; */ + xacc[i] = _mm_add_epi64(product, sum); + } } +} +XXH_FORCE_INLINE XXH_TARGET_SSE2 XXH3_ACCUMULATE_TEMPLATE(sse2) + +XXH_FORCE_INLINE XXH_TARGET_SSE2 void +XXH3_scrambleAcc_sse2(void* XXH_RESTRICT acc, const void* XXH_RESTRICT secret) +{ + XXH_ASSERT((((size_t)acc) & 15) == 0); + { __m128i* const xacc = (__m128i*) acc; + /* Unaligned. This is mainly for pointer arithmetic, and because + * _mm_loadu_si128 requires a const __m128i * pointer for some reason. */ + const __m128i* const xsecret = (const __m128i *) secret; + const __m128i prime32 = _mm_set1_epi32((int)XXH_PRIME32_1); + + size_t i; + for (i=0; i < XXH_STRIPE_LEN/sizeof(__m128i); i++) { + /* xacc[i] ^= (xacc[i] >> 47) */ + __m128i const acc_vec = xacc[i]; + __m128i const shifted = _mm_srli_epi64 (acc_vec, 47); + __m128i const data_vec = _mm_xor_si128 (acc_vec, shifted); + /* xacc[i] ^= xsecret[i]; */ + __m128i const key_vec = _mm_loadu_si128 (xsecret+i); + __m128i const data_key = _mm_xor_si128 (data_vec, key_vec); + + /* xacc[i] *= XXH_PRIME32_1; */ + __m128i const data_key_hi = _mm_shuffle_epi32 (data_key, _MM_SHUFFLE(0, 3, 0, 1)); + __m128i const prod_lo = _mm_mul_epu32 (data_key, prime32); + __m128i const prod_hi = _mm_mul_epu32 (data_key_hi, prime32); + xacc[i] = _mm_add_epi64(prod_lo, _mm_slli_epi64(prod_hi, 32)); + } + } +} + +XXH_FORCE_INLINE XXH_TARGET_SSE2 void XXH3_initCustomSecret_sse2(void* XXH_RESTRICT customSecret, xxh_u64 seed64) +{ + XXH_STATIC_ASSERT((XXH_SECRET_DEFAULT_SIZE & 15) == 0); + (void)(&XXH_writeLE64); + { int const nbRounds = XXH_SECRET_DEFAULT_SIZE / sizeof(__m128i); + +# if defined(_MSC_VER) && defined(_M_IX86) && _MSC_VER < 1900 + /* MSVC 32bit mode does not support _mm_set_epi64x before 2015 */ + XXH_ALIGN(16) const xxh_i64 seed64x2[2] = { (xxh_i64)seed64, (xxh_i64)(0U - seed64) }; + __m128i const seed = _mm_load_si128((__m128i const*)seed64x2); +# else + __m128i const seed = _mm_set_epi64x((xxh_i64)(0U - seed64), (xxh_i64)seed64); +# endif + int i; + + const void* const src16 = XXH3_kSecret; + __m128i* dst16 = (__m128i*) customSecret; +# if defined(__GNUC__) || defined(__clang__) + /* + * On GCC & Clang, marking 'dest' as modified will cause the compiler: + * - do not extract the secret from sse registers in the internal loop + * - use less common registers, and avoid pushing these reg into stack + */ + XXH_COMPILER_GUARD(dst16); +# endif + XXH_ASSERT(((size_t)src16 & 15) == 0); /* control alignment */ + XXH_ASSERT(((size_t)dst16 & 15) == 0); + + for (i=0; i < nbRounds; ++i) { + dst16[i] = _mm_add_epi64(_mm_load_si128((const __m128i *)src16+i), seed); + } } +} + +#endif + +#if (XXH_VECTOR == XXH_NEON) + +/* forward declarations for the scalar routines */ +XXH_FORCE_INLINE void +XXH3_scalarRound(void* XXH_RESTRICT acc, void const* XXH_RESTRICT input, + void const* XXH_RESTRICT secret, size_t lane); + +XXH_FORCE_INLINE void +XXH3_scalarScrambleRound(void* XXH_RESTRICT acc, + void const* XXH_RESTRICT secret, size_t lane); + +/*! + * @internal + * @brief The bulk processing loop for NEON and WASM SIMD128. + * + * The NEON code path is actually partially scalar when running on AArch64. This + * is to optimize the pipelining and can have up to 15% speedup depending on the + * CPU, and it also mitigates some GCC codegen issues. + * + * @see XXH3_NEON_LANES for configuring this and details about this optimization. + * + * NEON's 32-bit to 64-bit long multiply takes a half vector of 32-bit + * integers instead of the other platforms which mask full 64-bit vectors, + * so the setup is more complicated than just shifting right. + * + * Additionally, there is an optimization for 4 lanes at once noted below. + * + * Since, as stated, the most optimal amount of lanes for Cortexes is 6, + * there needs to be *three* versions of the accumulate operation used + * for the remaining 2 lanes. + * + * WASM's SIMD128 uses SIMDe's arm_neon.h polyfill because the intrinsics overlap + * nearly perfectly. + */ + +XXH_FORCE_INLINE void +XXH3_accumulate_512_neon( void* XXH_RESTRICT acc, + const void* XXH_RESTRICT input, + const void* XXH_RESTRICT secret) +{ + XXH_ASSERT((((size_t)acc) & 15) == 0); + XXH_STATIC_ASSERT(XXH3_NEON_LANES > 0 && XXH3_NEON_LANES <= XXH_ACC_NB && XXH3_NEON_LANES % 2 == 0); + { /* GCC for darwin arm64 does not like aliasing here */ + xxh_aliasing_uint64x2_t* const xacc = (xxh_aliasing_uint64x2_t*) acc; + /* We don't use a uint32x4_t pointer because it causes bus errors on ARMv7. */ + uint8_t const* xinput = (const uint8_t *) input; + uint8_t const* xsecret = (const uint8_t *) secret; + + size_t i; +#ifdef __wasm_simd128__ + /* + * On WASM SIMD128, Clang emits direct address loads when XXH3_kSecret + * is constant propagated, which results in it converting it to this + * inside the loop: + * + * a = v128.load(XXH3_kSecret + 0 + $secret_offset, offset = 0) + * b = v128.load(XXH3_kSecret + 16 + $secret_offset, offset = 0) + * ... + * + * This requires a full 32-bit address immediate (and therefore a 6 byte + * instruction) as well as an add for each offset. + * + * Putting an asm guard prevents it from folding (at the cost of losing + * the alignment hint), and uses the free offset in `v128.load` instead + * of adding secret_offset each time which overall reduces code size by + * about a kilobyte and improves performance. + */ + XXH_COMPILER_GUARD(xsecret); +#endif + /* Scalar lanes use the normal scalarRound routine */ + for (i = XXH3_NEON_LANES; i < XXH_ACC_NB; i++) { + XXH3_scalarRound(acc, input, secret, i); + } + i = 0; + /* 4 NEON lanes at a time. */ + for (; i+1 < XXH3_NEON_LANES / 2; i+=2) { + /* data_vec = xinput[i]; */ + uint64x2_t data_vec_1 = XXH_vld1q_u64(xinput + (i * 16)); + uint64x2_t data_vec_2 = XXH_vld1q_u64(xinput + ((i+1) * 16)); + /* key_vec = xsecret[i]; */ + uint64x2_t key_vec_1 = XXH_vld1q_u64(xsecret + (i * 16)); + uint64x2_t key_vec_2 = XXH_vld1q_u64(xsecret + ((i+1) * 16)); + /* data_swap = swap(data_vec) */ + uint64x2_t data_swap_1 = vextq_u64(data_vec_1, data_vec_1, 1); + uint64x2_t data_swap_2 = vextq_u64(data_vec_2, data_vec_2, 1); + /* data_key = data_vec ^ key_vec; */ + uint64x2_t data_key_1 = veorq_u64(data_vec_1, key_vec_1); + uint64x2_t data_key_2 = veorq_u64(data_vec_2, key_vec_2); + + /* + * If we reinterpret the 64x2 vectors as 32x4 vectors, we can use a + * de-interleave operation for 4 lanes in 1 step with `vuzpq_u32` to + * get one vector with the low 32 bits of each lane, and one vector + * with the high 32 bits of each lane. + * + * The intrinsic returns a double vector because the original ARMv7-a + * instruction modified both arguments in place. AArch64 and SIMD128 emit + * two instructions from this intrinsic. + * + * [ dk11L | dk11H | dk12L | dk12H ] -> [ dk11L | dk12L | dk21L | dk22L ] + * [ dk21L | dk21H | dk22L | dk22H ] -> [ dk11H | dk12H | dk21H | dk22H ] + */ + uint32x4x2_t unzipped = vuzpq_u32( + vreinterpretq_u32_u64(data_key_1), + vreinterpretq_u32_u64(data_key_2) + ); + /* data_key_lo = data_key & 0xFFFFFFFF */ + uint32x4_t data_key_lo = unzipped.val[0]; + /* data_key_hi = data_key >> 32 */ + uint32x4_t data_key_hi = unzipped.val[1]; + /* + * Then, we can split the vectors horizontally and multiply which, as for most + * widening intrinsics, have a variant that works on both high half vectors + * for free on AArch64. A similar instruction is available on SIMD128. + * + * sum = data_swap + (u64x2) data_key_lo * (u64x2) data_key_hi + */ + uint64x2_t sum_1 = XXH_vmlal_low_u32(data_swap_1, data_key_lo, data_key_hi); + uint64x2_t sum_2 = XXH_vmlal_high_u32(data_swap_2, data_key_lo, data_key_hi); + /* + * Clang reorders + * a += b * c; // umlal swap.2d, dkl.2s, dkh.2s + * c += a; // add acc.2d, acc.2d, swap.2d + * to + * c += a; // add acc.2d, acc.2d, swap.2d + * c += b * c; // umlal acc.2d, dkl.2s, dkh.2s + * + * While it would make sense in theory since the addition is faster, + * for reasons likely related to umlal being limited to certain NEON + * pipelines, this is worse. A compiler guard fixes this. + */ + XXH_COMPILER_GUARD_CLANG_NEON(sum_1); + XXH_COMPILER_GUARD_CLANG_NEON(sum_2); + /* xacc[i] = acc_vec + sum; */ + xacc[i] = vaddq_u64(xacc[i], sum_1); + xacc[i+1] = vaddq_u64(xacc[i+1], sum_2); + } + /* Operate on the remaining NEON lanes 2 at a time. */ + for (; i < XXH3_NEON_LANES / 2; i++) { + /* data_vec = xinput[i]; */ + uint64x2_t data_vec = XXH_vld1q_u64(xinput + (i * 16)); + /* key_vec = xsecret[i]; */ + uint64x2_t key_vec = XXH_vld1q_u64(xsecret + (i * 16)); + /* acc_vec_2 = swap(data_vec) */ + uint64x2_t data_swap = vextq_u64(data_vec, data_vec, 1); + /* data_key = data_vec ^ key_vec; */ + uint64x2_t data_key = veorq_u64(data_vec, key_vec); + /* For two lanes, just use VMOVN and VSHRN. */ + /* data_key_lo = data_key & 0xFFFFFFFF; */ + uint32x2_t data_key_lo = vmovn_u64(data_key); + /* data_key_hi = data_key >> 32; */ + uint32x2_t data_key_hi = vshrn_n_u64(data_key, 32); + /* sum = data_swap + (u64x2) data_key_lo * (u64x2) data_key_hi; */ + uint64x2_t sum = vmlal_u32(data_swap, data_key_lo, data_key_hi); + /* Same Clang workaround as before */ + XXH_COMPILER_GUARD_CLANG_NEON(sum); + /* xacc[i] = acc_vec + sum; */ + xacc[i] = vaddq_u64 (xacc[i], sum); + } + } +} +XXH_FORCE_INLINE XXH3_ACCUMULATE_TEMPLATE(neon) + +XXH_FORCE_INLINE void +XXH3_scrambleAcc_neon(void* XXH_RESTRICT acc, const void* XXH_RESTRICT secret) +{ + XXH_ASSERT((((size_t)acc) & 15) == 0); + + { xxh_aliasing_uint64x2_t* xacc = (xxh_aliasing_uint64x2_t*) acc; + uint8_t const* xsecret = (uint8_t const*) secret; + + size_t i; + /* WASM uses operator overloads and doesn't need these. */ +#ifndef __wasm_simd128__ + /* { prime32_1, prime32_1 } */ + uint32x2_t const kPrimeLo = vdup_n_u32(XXH_PRIME32_1); + /* { 0, prime32_1, 0, prime32_1 } */ + uint32x4_t const kPrimeHi = vreinterpretq_u32_u64(vdupq_n_u64((xxh_u64)XXH_PRIME32_1 << 32)); +#endif + + /* AArch64 uses both scalar and neon at the same time */ + for (i = XXH3_NEON_LANES; i < XXH_ACC_NB; i++) { + XXH3_scalarScrambleRound(acc, secret, i); + } + for (i=0; i < XXH3_NEON_LANES / 2; i++) { + /* xacc[i] ^= (xacc[i] >> 47); */ + uint64x2_t acc_vec = xacc[i]; + uint64x2_t shifted = vshrq_n_u64(acc_vec, 47); + uint64x2_t data_vec = veorq_u64(acc_vec, shifted); + + /* xacc[i] ^= xsecret[i]; */ + uint64x2_t key_vec = XXH_vld1q_u64(xsecret + (i * 16)); + uint64x2_t data_key = veorq_u64(data_vec, key_vec); + /* xacc[i] *= XXH_PRIME32_1 */ +#ifdef __wasm_simd128__ + /* SIMD128 has multiply by u64x2, use it instead of expanding and scalarizing */ + xacc[i] = data_key * XXH_PRIME32_1; +#else + /* + * Expanded version with portable NEON intrinsics + * + * lo(x) * lo(y) + (hi(x) * lo(y) << 32) + * + * prod_hi = hi(data_key) * lo(prime) << 32 + * + * Since we only need 32 bits of this multiply a trick can be used, reinterpreting the vector + * as a uint32x4_t and multiplying by { 0, prime, 0, prime } to cancel out the unwanted bits + * and avoid the shift. + */ + uint32x4_t prod_hi = vmulq_u32 (vreinterpretq_u32_u64(data_key), kPrimeHi); + /* Extract low bits for vmlal_u32 */ + uint32x2_t data_key_lo = vmovn_u64(data_key); + /* xacc[i] = prod_hi + lo(data_key) * XXH_PRIME32_1; */ + xacc[i] = vmlal_u32(vreinterpretq_u64_u32(prod_hi), data_key_lo, kPrimeLo); +#endif + } + } +} +#endif + +#if (XXH_VECTOR == XXH_VSX) + +XXH_FORCE_INLINE void +XXH3_accumulate_512_vsx( void* XXH_RESTRICT acc, + const void* XXH_RESTRICT input, + const void* XXH_RESTRICT secret) +{ + /* presumed aligned */ + xxh_aliasing_u64x2* const xacc = (xxh_aliasing_u64x2*) acc; + xxh_u8 const* const xinput = (xxh_u8 const*) input; /* no alignment restriction */ + xxh_u8 const* const xsecret = (xxh_u8 const*) secret; /* no alignment restriction */ + xxh_u64x2 const v32 = { 32, 32 }; + size_t i; + for (i = 0; i < XXH_STRIPE_LEN / sizeof(xxh_u64x2); i++) { + /* data_vec = xinput[i]; */ + xxh_u64x2 const data_vec = XXH_vec_loadu(xinput + 16*i); + /* key_vec = xsecret[i]; */ + xxh_u64x2 const key_vec = XXH_vec_loadu(xsecret + 16*i); + xxh_u64x2 const data_key = data_vec ^ key_vec; + /* shuffled = (data_key << 32) | (data_key >> 32); */ + xxh_u32x4 const shuffled = (xxh_u32x4)vec_rl(data_key, v32); + /* product = ((xxh_u64x2)data_key & 0xFFFFFFFF) * ((xxh_u64x2)shuffled & 0xFFFFFFFF); */ + xxh_u64x2 const product = XXH_vec_mulo((xxh_u32x4)data_key, shuffled); + /* acc_vec = xacc[i]; */ + xxh_u64x2 acc_vec = xacc[i]; + acc_vec += product; + + /* swap high and low halves */ +#ifdef __s390x__ + acc_vec += vec_permi(data_vec, data_vec, 2); +#else + acc_vec += vec_xxpermdi(data_vec, data_vec, 2); +#endif + xacc[i] = acc_vec; + } +} +XXH_FORCE_INLINE XXH3_ACCUMULATE_TEMPLATE(vsx) + +XXH_FORCE_INLINE void +XXH3_scrambleAcc_vsx(void* XXH_RESTRICT acc, const void* XXH_RESTRICT secret) +{ + XXH_ASSERT((((size_t)acc) & 15) == 0); + + { xxh_aliasing_u64x2* const xacc = (xxh_aliasing_u64x2*) acc; + const xxh_u8* const xsecret = (const xxh_u8*) secret; + /* constants */ + xxh_u64x2 const v32 = { 32, 32 }; + xxh_u64x2 const v47 = { 47, 47 }; + xxh_u32x4 const prime = { XXH_PRIME32_1, XXH_PRIME32_1, XXH_PRIME32_1, XXH_PRIME32_1 }; + size_t i; + for (i = 0; i < XXH_STRIPE_LEN / sizeof(xxh_u64x2); i++) { + /* xacc[i] ^= (xacc[i] >> 47); */ + xxh_u64x2 const acc_vec = xacc[i]; + xxh_u64x2 const data_vec = acc_vec ^ (acc_vec >> v47); + + /* xacc[i] ^= xsecret[i]; */ + xxh_u64x2 const key_vec = XXH_vec_loadu(xsecret + 16*i); + xxh_u64x2 const data_key = data_vec ^ key_vec; + + /* xacc[i] *= XXH_PRIME32_1 */ + /* prod_lo = ((xxh_u64x2)data_key & 0xFFFFFFFF) * ((xxh_u64x2)prime & 0xFFFFFFFF); */ + xxh_u64x2 const prod_even = XXH_vec_mule((xxh_u32x4)data_key, prime); + /* prod_hi = ((xxh_u64x2)data_key >> 32) * ((xxh_u64x2)prime >> 32); */ + xxh_u64x2 const prod_odd = XXH_vec_mulo((xxh_u32x4)data_key, prime); + xacc[i] = prod_odd + (prod_even << v32); + } } +} + +#endif + +#if (XXH_VECTOR == XXH_SVE) + +XXH_FORCE_INLINE void +XXH3_accumulate_512_sve( void* XXH_RESTRICT acc, + const void* XXH_RESTRICT input, + const void* XXH_RESTRICT secret) +{ + uint64_t *xacc = (uint64_t *)acc; + const uint64_t *xinput = (const uint64_t *)(const void *)input; + const uint64_t *xsecret = (const uint64_t *)(const void *)secret; + svuint64_t kSwap = sveor_n_u64_z(svptrue_b64(), svindex_u64(0, 1), 1); + uint64_t element_count = svcntd(); + if (element_count >= 8) { + svbool_t mask = svptrue_pat_b64(SV_VL8); + svuint64_t vacc = svld1_u64(mask, xacc); + ACCRND(vacc, 0); + svst1_u64(mask, xacc, vacc); + } else if (element_count == 2) { /* sve128 */ + svbool_t mask = svptrue_pat_b64(SV_VL2); + svuint64_t acc0 = svld1_u64(mask, xacc + 0); + svuint64_t acc1 = svld1_u64(mask, xacc + 2); + svuint64_t acc2 = svld1_u64(mask, xacc + 4); + svuint64_t acc3 = svld1_u64(mask, xacc + 6); + ACCRND(acc0, 0); + ACCRND(acc1, 2); + ACCRND(acc2, 4); + ACCRND(acc3, 6); + svst1_u64(mask, xacc + 0, acc0); + svst1_u64(mask, xacc + 2, acc1); + svst1_u64(mask, xacc + 4, acc2); + svst1_u64(mask, xacc + 6, acc3); + } else { + svbool_t mask = svptrue_pat_b64(SV_VL4); + svuint64_t acc0 = svld1_u64(mask, xacc + 0); + svuint64_t acc1 = svld1_u64(mask, xacc + 4); + ACCRND(acc0, 0); + ACCRND(acc1, 4); + svst1_u64(mask, xacc + 0, acc0); + svst1_u64(mask, xacc + 4, acc1); + } +} + +XXH_FORCE_INLINE void +XXH3_accumulate_sve(xxh_u64* XXH_RESTRICT acc, + const xxh_u8* XXH_RESTRICT input, + const xxh_u8* XXH_RESTRICT secret, + size_t nbStripes) +{ + if (nbStripes != 0) { + uint64_t *xacc = (uint64_t *)acc; + const uint64_t *xinput = (const uint64_t *)(const void *)input; + const uint64_t *xsecret = (const uint64_t *)(const void *)secret; + svuint64_t kSwap = sveor_n_u64_z(svptrue_b64(), svindex_u64(0, 1), 1); + uint64_t element_count = svcntd(); + if (element_count >= 8) { + svbool_t mask = svptrue_pat_b64(SV_VL8); + svuint64_t vacc = svld1_u64(mask, xacc + 0); + do { + /* svprfd(svbool_t, void *, enum svfprop); */ + svprfd(mask, xinput + 128, SV_PLDL1STRM); + ACCRND(vacc, 0); + xinput += 8; + xsecret += 1; + nbStripes--; + } while (nbStripes != 0); + + svst1_u64(mask, xacc + 0, vacc); + } else if (element_count == 2) { /* sve128 */ + svbool_t mask = svptrue_pat_b64(SV_VL2); + svuint64_t acc0 = svld1_u64(mask, xacc + 0); + svuint64_t acc1 = svld1_u64(mask, xacc + 2); + svuint64_t acc2 = svld1_u64(mask, xacc + 4); + svuint64_t acc3 = svld1_u64(mask, xacc + 6); + do { + svprfd(mask, xinput + 128, SV_PLDL1STRM); + ACCRND(acc0, 0); + ACCRND(acc1, 2); + ACCRND(acc2, 4); + ACCRND(acc3, 6); + xinput += 8; + xsecret += 1; + nbStripes--; + } while (nbStripes != 0); + + svst1_u64(mask, xacc + 0, acc0); + svst1_u64(mask, xacc + 2, acc1); + svst1_u64(mask, xacc + 4, acc2); + svst1_u64(mask, xacc + 6, acc3); + } else { + svbool_t mask = svptrue_pat_b64(SV_VL4); + svuint64_t acc0 = svld1_u64(mask, xacc + 0); + svuint64_t acc1 = svld1_u64(mask, xacc + 4); + do { + svprfd(mask, xinput + 128, SV_PLDL1STRM); + ACCRND(acc0, 0); + ACCRND(acc1, 4); + xinput += 8; + xsecret += 1; + nbStripes--; + } while (nbStripes != 0); + + svst1_u64(mask, xacc + 0, acc0); + svst1_u64(mask, xacc + 4, acc1); + } + } +} + +#endif + +/* scalar variants - universal */ + +#if defined(__aarch64__) && (defined(__GNUC__) || defined(__clang__)) +/* + * In XXH3_scalarRound(), GCC and Clang have a similar codegen issue, where they + * emit an excess mask and a full 64-bit multiply-add (MADD X-form). + * + * While this might not seem like much, as AArch64 is a 64-bit architecture, only + * big Cortex designs have a full 64-bit multiplier. + * + * On the little cores, the smaller 32-bit multiplier is used, and full 64-bit + * multiplies expand to 2-3 multiplies in microcode. This has a major penalty + * of up to 4 latency cycles and 2 stall cycles in the multiply pipeline. + * + * Thankfully, AArch64 still provides the 32-bit long multiply-add (UMADDL) which does + * not have this penalty and does the mask automatically. + */ +XXH_FORCE_INLINE xxh_u64 +XXH_mult32to64_add64(xxh_u64 lhs, xxh_u64 rhs, xxh_u64 acc) +{ + xxh_u64 ret; + /* note: %x = 64-bit register, %w = 32-bit register */ + __asm__("umaddl %x0, %w1, %w2, %x3" : "=r" (ret) : "r" (lhs), "r" (rhs), "r" (acc)); + return ret; +} +#else +XXH_FORCE_INLINE xxh_u64 +XXH_mult32to64_add64(xxh_u64 lhs, xxh_u64 rhs, xxh_u64 acc) +{ + return XXH_mult32to64((xxh_u32)lhs, (xxh_u32)rhs) + acc; +} +#endif + +/*! + * @internal + * @brief Scalar round for @ref XXH3_accumulate_512_scalar(). + * + * This is extracted to its own function because the NEON path uses a combination + * of NEON and scalar. + */ +XXH_FORCE_INLINE void +XXH3_scalarRound(void* XXH_RESTRICT acc, + void const* XXH_RESTRICT input, + void const* XXH_RESTRICT secret, + size_t lane) +{ + xxh_u64* xacc = (xxh_u64*) acc; + xxh_u8 const* xinput = (xxh_u8 const*) input; + xxh_u8 const* xsecret = (xxh_u8 const*) secret; + XXH_ASSERT(lane < XXH_ACC_NB); + XXH_ASSERT(((size_t)acc & (XXH_ACC_ALIGN-1)) == 0); + { + xxh_u64 const data_val = XXH_readLE64(xinput + lane * 8); + xxh_u64 const data_key = data_val ^ XXH_readLE64(xsecret + lane * 8); + xacc[lane ^ 1] += data_val; /* swap adjacent lanes */ + xacc[lane] = XXH_mult32to64_add64(data_key /* & 0xFFFFFFFF */, data_key >> 32, xacc[lane]); + } +} + +/*! + * @internal + * @brief Processes a 64 byte block of data using the scalar path. + */ +XXH_FORCE_INLINE void +XXH3_accumulate_512_scalar(void* XXH_RESTRICT acc, + const void* XXH_RESTRICT input, + const void* XXH_RESTRICT secret) +{ + size_t i; + /* ARM GCC refuses to unroll this loop, resulting in a 24% slowdown on ARMv6. */ +#if defined(__GNUC__) && !defined(__clang__) \ + && (defined(__arm__) || defined(__thumb2__)) \ + && defined(__ARM_FEATURE_UNALIGNED) /* no unaligned access just wastes bytes */ \ + && XXH_SIZE_OPT <= 0 +# pragma GCC unroll 8 +#endif + for (i=0; i < XXH_ACC_NB; i++) { + XXH3_scalarRound(acc, input, secret, i); + } +} +XXH_FORCE_INLINE XXH3_ACCUMULATE_TEMPLATE(scalar) + +/*! + * @internal + * @brief Scalar scramble step for @ref XXH3_scrambleAcc_scalar(). + * + * This is extracted to its own function because the NEON path uses a combination + * of NEON and scalar. + */ +XXH_FORCE_INLINE void +XXH3_scalarScrambleRound(void* XXH_RESTRICT acc, + void const* XXH_RESTRICT secret, + size_t lane) +{ + xxh_u64* const xacc = (xxh_u64*) acc; /* presumed aligned */ + const xxh_u8* const xsecret = (const xxh_u8*) secret; /* no alignment restriction */ + XXH_ASSERT((((size_t)acc) & (XXH_ACC_ALIGN-1)) == 0); + XXH_ASSERT(lane < XXH_ACC_NB); + { + xxh_u64 const key64 = XXH_readLE64(xsecret + lane * 8); + xxh_u64 acc64 = xacc[lane]; + acc64 = XXH_xorshift64(acc64, 47); + acc64 ^= key64; + acc64 *= XXH_PRIME32_1; + xacc[lane] = acc64; + } +} + +/*! + * @internal + * @brief Scrambles the accumulators after a large chunk has been read + */ +XXH_FORCE_INLINE void +XXH3_scrambleAcc_scalar(void* XXH_RESTRICT acc, const void* XXH_RESTRICT secret) +{ + size_t i; + for (i=0; i < XXH_ACC_NB; i++) { + XXH3_scalarScrambleRound(acc, secret, i); + } +} + +XXH_FORCE_INLINE void +XXH3_initCustomSecret_scalar(void* XXH_RESTRICT customSecret, xxh_u64 seed64) +{ + /* + * We need a separate pointer for the hack below, + * which requires a non-const pointer. + * Any decent compiler will optimize this out otherwise. + */ + const xxh_u8* kSecretPtr = XXH3_kSecret; + XXH_STATIC_ASSERT((XXH_SECRET_DEFAULT_SIZE & 15) == 0); + +#if defined(__GNUC__) && defined(__aarch64__) + /* + * UGLY HACK: + * GCC and Clang generate a bunch of MOV/MOVK pairs for aarch64, and they are + * placed sequentially, in order, at the top of the unrolled loop. + * + * While MOVK is great for generating constants (2 cycles for a 64-bit + * constant compared to 4 cycles for LDR), it fights for bandwidth with + * the arithmetic instructions. + * + * I L S + * MOVK + * MOVK + * MOVK + * MOVK + * ADD + * SUB STR + * STR + * By forcing loads from memory (as the asm line causes the compiler to assume + * that XXH3_kSecretPtr has been changed), the pipelines are used more + * efficiently: + * I L S + * LDR + * ADD LDR + * SUB STR + * STR + * + * See XXH3_NEON_LANES for details on the pipsline. + * + * XXH3_64bits_withSeed, len == 256, Snapdragon 835 + * without hack: 2654.4 MB/s + * with hack: 3202.9 MB/s + */ + XXH_COMPILER_GUARD(kSecretPtr); +#endif + { int const nbRounds = XXH_SECRET_DEFAULT_SIZE / 16; + int i; + for (i=0; i < nbRounds; i++) { + /* + * The asm hack causes the compiler to assume that kSecretPtr aliases with + * customSecret, and on aarch64, this prevented LDP from merging two + * loads together for free. Putting the loads together before the stores + * properly generates LDP. + */ + xxh_u64 lo = XXH_readLE64(kSecretPtr + 16*i) + seed64; + xxh_u64 hi = XXH_readLE64(kSecretPtr + 16*i + 8) - seed64; + XXH_writeLE64((xxh_u8*)customSecret + 16*i, lo); + XXH_writeLE64((xxh_u8*)customSecret + 16*i + 8, hi); + } } +} + + +typedef void (*XXH3_f_accumulate)(xxh_u64* XXH_RESTRICT, const xxh_u8* XXH_RESTRICT, const xxh_u8* XXH_RESTRICT, size_t); +typedef void (*XXH3_f_scrambleAcc)(void* XXH_RESTRICT, const void*); +typedef void (*XXH3_f_initCustomSecret)(void* XXH_RESTRICT, xxh_u64); + + +#if (XXH_VECTOR == XXH_AVX512) + +#define XXH3_accumulate_512 XXH3_accumulate_512_avx512 +#define XXH3_accumulate XXH3_accumulate_avx512 +#define XXH3_scrambleAcc XXH3_scrambleAcc_avx512 +#define XXH3_initCustomSecret XXH3_initCustomSecret_avx512 + +#elif (XXH_VECTOR == XXH_AVX2) + +#define XXH3_accumulate_512 XXH3_accumulate_512_avx2 +#define XXH3_accumulate XXH3_accumulate_avx2 +#define XXH3_scrambleAcc XXH3_scrambleAcc_avx2 +#define XXH3_initCustomSecret XXH3_initCustomSecret_avx2 + +#elif (XXH_VECTOR == XXH_SSE2) + +#define XXH3_accumulate_512 XXH3_accumulate_512_sse2 +#define XXH3_accumulate XXH3_accumulate_sse2 +#define XXH3_scrambleAcc XXH3_scrambleAcc_sse2 +#define XXH3_initCustomSecret XXH3_initCustomSecret_sse2 + +#elif (XXH_VECTOR == XXH_NEON) + +#define XXH3_accumulate_512 XXH3_accumulate_512_neon +#define XXH3_accumulate XXH3_accumulate_neon +#define XXH3_scrambleAcc XXH3_scrambleAcc_neon +#define XXH3_initCustomSecret XXH3_initCustomSecret_scalar + +#elif (XXH_VECTOR == XXH_VSX) + +#define XXH3_accumulate_512 XXH3_accumulate_512_vsx +#define XXH3_accumulate XXH3_accumulate_vsx +#define XXH3_scrambleAcc XXH3_scrambleAcc_vsx +#define XXH3_initCustomSecret XXH3_initCustomSecret_scalar + +#elif (XXH_VECTOR == XXH_SVE) +#define XXH3_accumulate_512 XXH3_accumulate_512_sve +#define XXH3_accumulate XXH3_accumulate_sve +#define XXH3_scrambleAcc XXH3_scrambleAcc_scalar +#define XXH3_initCustomSecret XXH3_initCustomSecret_scalar + +#else /* scalar */ + +#define XXH3_accumulate_512 XXH3_accumulate_512_scalar +#define XXH3_accumulate XXH3_accumulate_scalar +#define XXH3_scrambleAcc XXH3_scrambleAcc_scalar +#define XXH3_initCustomSecret XXH3_initCustomSecret_scalar + +#endif + +#if XXH_SIZE_OPT >= 1 /* don't do SIMD for initialization */ +# undef XXH3_initCustomSecret +# define XXH3_initCustomSecret XXH3_initCustomSecret_scalar +#endif + +XXH_FORCE_INLINE void +XXH3_hashLong_internal_loop(xxh_u64* XXH_RESTRICT acc, + const xxh_u8* XXH_RESTRICT input, size_t len, + const xxh_u8* XXH_RESTRICT secret, size_t secretSize, + XXH3_f_accumulate f_acc, + XXH3_f_scrambleAcc f_scramble) +{ + size_t const nbStripesPerBlock = (secretSize - XXH_STRIPE_LEN) / XXH_SECRET_CONSUME_RATE; + size_t const block_len = XXH_STRIPE_LEN * nbStripesPerBlock; + size_t const nb_blocks = (len - 1) / block_len; + + size_t n; + + XXH_ASSERT(secretSize >= XXH3_SECRET_SIZE_MIN); + + for (n = 0; n < nb_blocks; n++) { + f_acc(acc, input + n*block_len, secret, nbStripesPerBlock); + f_scramble(acc, secret + secretSize - XXH_STRIPE_LEN); + } + + /* last partial block */ + XXH_ASSERT(len > XXH_STRIPE_LEN); + { size_t const nbStripes = ((len - 1) - (block_len * nb_blocks)) / XXH_STRIPE_LEN; + XXH_ASSERT(nbStripes <= (secretSize / XXH_SECRET_CONSUME_RATE)); + f_acc(acc, input + nb_blocks*block_len, secret, nbStripes); + + /* last stripe */ + { const xxh_u8* const p = input + len - XXH_STRIPE_LEN; +#define XXH_SECRET_LASTACC_START 7 /* not aligned on 8, last secret is different from acc & scrambler */ + XXH3_accumulate_512(acc, p, secret + secretSize - XXH_STRIPE_LEN - XXH_SECRET_LASTACC_START); + } } +} + +XXH_FORCE_INLINE xxh_u64 +XXH3_mix2Accs(const xxh_u64* XXH_RESTRICT acc, const xxh_u8* XXH_RESTRICT secret) +{ + return XXH3_mul128_fold64( + acc[0] ^ XXH_readLE64(secret), + acc[1] ^ XXH_readLE64(secret+8) ); +} + +static XXH64_hash_t +XXH3_mergeAccs(const xxh_u64* XXH_RESTRICT acc, const xxh_u8* XXH_RESTRICT secret, xxh_u64 start) +{ + xxh_u64 result64 = start; + size_t i = 0; + + for (i = 0; i < 4; i++) { + result64 += XXH3_mix2Accs(acc+2*i, secret + 16*i); +#if defined(__clang__) /* Clang */ \ + && (defined(__arm__) || defined(__thumb__)) /* ARMv7 */ \ + && (defined(__ARM_NEON) || defined(__ARM_NEON__)) /* NEON */ \ + && !defined(XXH_ENABLE_AUTOVECTORIZE) /* Define to disable */ + /* + * UGLY HACK: + * Prevent autovectorization on Clang ARMv7-a. Exact same problem as + * the one in XXH3_len_129to240_64b. Speeds up shorter keys > 240b. + * XXH3_64bits, len == 256, Snapdragon 835: + * without hack: 2063.7 MB/s + * with hack: 2560.7 MB/s + */ + XXH_COMPILER_GUARD(result64); +#endif + } + + return XXH3_avalanche(result64); +} + +#define XXH3_INIT_ACC { XXH_PRIME32_3, XXH_PRIME64_1, XXH_PRIME64_2, XXH_PRIME64_3, \ + XXH_PRIME64_4, XXH_PRIME32_2, XXH_PRIME64_5, XXH_PRIME32_1 } + +XXH_FORCE_INLINE XXH64_hash_t +XXH3_hashLong_64b_internal(const void* XXH_RESTRICT input, size_t len, + const void* XXH_RESTRICT secret, size_t secretSize, + XXH3_f_accumulate f_acc, + XXH3_f_scrambleAcc f_scramble) +{ + XXH_ALIGN(XXH_ACC_ALIGN) xxh_u64 acc[XXH_ACC_NB] = XXH3_INIT_ACC; + + XXH3_hashLong_internal_loop(acc, (const xxh_u8*)input, len, (const xxh_u8*)secret, secretSize, f_acc, f_scramble); + + /* converge into final hash */ + XXH_STATIC_ASSERT(sizeof(acc) == 64); + /* do not align on 8, so that the secret is different from the accumulator */ +#define XXH_SECRET_MERGEACCS_START 11 + XXH_ASSERT(secretSize >= sizeof(acc) + XXH_SECRET_MERGEACCS_START); + return XXH3_mergeAccs(acc, (const xxh_u8*)secret + XXH_SECRET_MERGEACCS_START, (xxh_u64)len * XXH_PRIME64_1); +} + +/* + * It's important for performance to transmit secret's size (when it's static) + * so that the compiler can properly optimize the vectorized loop. + * This makes a big performance difference for "medium" keys (<1 KB) when using AVX instruction set. + * When the secret size is unknown, or on GCC 12 where the mix of NO_INLINE and FORCE_INLINE + * breaks -Og, this is XXH_NO_INLINE. + */ +XXH3_WITH_SECRET_INLINE XXH64_hash_t +XXH3_hashLong_64b_withSecret(const void* XXH_RESTRICT input, size_t len, + XXH64_hash_t seed64, const xxh_u8* XXH_RESTRICT secret, size_t secretLen) +{ + (void)seed64; + return XXH3_hashLong_64b_internal(input, len, secret, secretLen, XXH3_accumulate, XXH3_scrambleAcc); +} + +/* + * It's preferable for performance that XXH3_hashLong is not inlined, + * as it results in a smaller function for small data, easier to the instruction cache. + * Note that inside this no_inline function, we do inline the internal loop, + * and provide a statically defined secret size to allow optimization of vector loop. + */ +XXH_NO_INLINE XXH_PUREF XXH64_hash_t +XXH3_hashLong_64b_default(const void* XXH_RESTRICT input, size_t len, + XXH64_hash_t seed64, const xxh_u8* XXH_RESTRICT secret, size_t secretLen) +{ + (void)seed64; (void)secret; (void)secretLen; + return XXH3_hashLong_64b_internal(input, len, XXH3_kSecret, sizeof(XXH3_kSecret), XXH3_accumulate, XXH3_scrambleAcc); +} + +/* + * XXH3_hashLong_64b_withSeed(): + * Generate a custom key based on alteration of default XXH3_kSecret with the seed, + * and then use this key for long mode hashing. + * + * This operation is decently fast but nonetheless costs a little bit of time. + * Try to avoid it whenever possible (typically when seed==0). + * + * It's important for performance that XXH3_hashLong is not inlined. Not sure + * why (uop cache maybe?), but the difference is large and easily measurable. + */ +XXH_FORCE_INLINE XXH64_hash_t +XXH3_hashLong_64b_withSeed_internal(const void* input, size_t len, + XXH64_hash_t seed, + XXH3_f_accumulate f_acc, + XXH3_f_scrambleAcc f_scramble, + XXH3_f_initCustomSecret f_initSec) +{ +#if XXH_SIZE_OPT <= 0 + if (seed == 0) + return XXH3_hashLong_64b_internal(input, len, + XXH3_kSecret, sizeof(XXH3_kSecret), + f_acc, f_scramble); +#endif + { XXH_ALIGN(XXH_SEC_ALIGN) xxh_u8 secret[XXH_SECRET_DEFAULT_SIZE]; + f_initSec(secret, seed); + return XXH3_hashLong_64b_internal(input, len, secret, sizeof(secret), + f_acc, f_scramble); + } +} + +/* + * It's important for performance that XXH3_hashLong is not inlined. + */ +XXH_NO_INLINE XXH64_hash_t +XXH3_hashLong_64b_withSeed(const void* XXH_RESTRICT input, size_t len, + XXH64_hash_t seed, const xxh_u8* XXH_RESTRICT secret, size_t secretLen) +{ + (void)secret; (void)secretLen; + return XXH3_hashLong_64b_withSeed_internal(input, len, seed, + XXH3_accumulate, XXH3_scrambleAcc, XXH3_initCustomSecret); +} + + +typedef XXH64_hash_t (*XXH3_hashLong64_f)(const void* XXH_RESTRICT, size_t, + XXH64_hash_t, const xxh_u8* XXH_RESTRICT, size_t); + +XXH_FORCE_INLINE XXH64_hash_t +XXH3_64bits_internal(const void* XXH_RESTRICT input, size_t len, + XXH64_hash_t seed64, const void* XXH_RESTRICT secret, size_t secretLen, + XXH3_hashLong64_f f_hashLong) +{ + XXH_ASSERT(secretLen >= XXH3_SECRET_SIZE_MIN); + /* + * If an action is to be taken if `secretLen` condition is not respected, + * it should be done here. + * For now, it's a contract pre-condition. + * Adding a check and a branch here would cost performance at every hash. + * Also, note that function signature doesn't offer room to return an error. + */ + if (len <= 16) + return XXH3_len_0to16_64b((const xxh_u8*)input, len, (const xxh_u8*)secret, seed64); + if (len <= 128) + return XXH3_len_17to128_64b((const xxh_u8*)input, len, (const xxh_u8*)secret, secretLen, seed64); + if (len <= XXH3_MIDSIZE_MAX) + return XXH3_len_129to240_64b((const xxh_u8*)input, len, (const xxh_u8*)secret, secretLen, seed64); + return f_hashLong(input, len, seed64, (const xxh_u8*)secret, secretLen); +} + + +/* === Public entry point === */ + +/*! @ingroup XXH3_family */ +XXH_PUBLIC_API XXH64_hash_t XXH3_64bits(XXH_NOESCAPE const void* input, size_t length) +{ + return XXH3_64bits_internal(input, length, 0, XXH3_kSecret, sizeof(XXH3_kSecret), XXH3_hashLong_64b_default); +} + +/*! @ingroup XXH3_family */ +XXH_PUBLIC_API XXH64_hash_t +XXH3_64bits_withSecret(XXH_NOESCAPE const void* input, size_t length, XXH_NOESCAPE const void* secret, size_t secretSize) +{ + return XXH3_64bits_internal(input, length, 0, secret, secretSize, XXH3_hashLong_64b_withSecret); +} + +/*! @ingroup XXH3_family */ +XXH_PUBLIC_API XXH64_hash_t +XXH3_64bits_withSeed(XXH_NOESCAPE const void* input, size_t length, XXH64_hash_t seed) +{ + return XXH3_64bits_internal(input, length, seed, XXH3_kSecret, sizeof(XXH3_kSecret), XXH3_hashLong_64b_withSeed); +} + +XXH_PUBLIC_API XXH64_hash_t +XXH3_64bits_withSecretandSeed(XXH_NOESCAPE const void* input, size_t length, XXH_NOESCAPE const void* secret, size_t secretSize, XXH64_hash_t seed) +{ + if (length <= XXH3_MIDSIZE_MAX) + return XXH3_64bits_internal(input, length, seed, XXH3_kSecret, sizeof(XXH3_kSecret), NULL); + return XXH3_hashLong_64b_withSecret(input, length, seed, (const xxh_u8*)secret, secretSize); +} + + +/* === XXH3 streaming === */ +#ifndef XXH_NO_STREAM +/* + * Malloc's a pointer that is always aligned to align. + * + * This must be freed with `XXH_alignedFree()`. + * + * malloc typically guarantees 16 byte alignment on 64-bit systems and 8 byte + * alignment on 32-bit. This isn't enough for the 32 byte aligned loads in AVX2 + * or on 32-bit, the 16 byte aligned loads in SSE2 and NEON. + * + * This underalignment previously caused a rather obvious crash which went + * completely unnoticed due to XXH3_createState() not actually being tested. + * Credit to RedSpah for noticing this bug. + * + * The alignment is done manually: Functions like posix_memalign or _mm_malloc + * are avoided: To maintain portability, we would have to write a fallback + * like this anyways, and besides, testing for the existence of library + * functions without relying on external build tools is impossible. + * + * The method is simple: Overallocate, manually align, and store the offset + * to the original behind the returned pointer. + * + * Align must be a power of 2 and 8 <= align <= 128. + */ +static XXH_MALLOCF void* XXH_alignedMalloc(size_t s, size_t align) +{ + XXH_ASSERT(align <= 128 && align >= 8); /* range check */ + XXH_ASSERT((align & (align-1)) == 0); /* power of 2 */ + XXH_ASSERT(s != 0 && s < (s + align)); /* empty/overflow */ + { /* Overallocate to make room for manual realignment and an offset byte */ + xxh_u8* base = (xxh_u8*)XXH_malloc(s + align); + if (base != NULL) { + /* + * Get the offset needed to align this pointer. + * + * Even if the returned pointer is aligned, there will always be + * at least one byte to store the offset to the original pointer. + */ + size_t offset = align - ((size_t)base & (align - 1)); /* base % align */ + /* Add the offset for the now-aligned pointer */ + xxh_u8* ptr = base + offset; + + XXH_ASSERT((size_t)ptr % align == 0); + + /* Store the offset immediately before the returned pointer. */ + ptr[-1] = (xxh_u8)offset; + return ptr; + } + return NULL; + } +} +/* + * Frees an aligned pointer allocated by XXH_alignedMalloc(). Don't pass + * normal malloc'd pointers, XXH_alignedMalloc has a specific data layout. + */ +static void XXH_alignedFree(void* p) +{ + if (p != NULL) { + xxh_u8* ptr = (xxh_u8*)p; + /* Get the offset byte we added in XXH_malloc. */ + xxh_u8 offset = ptr[-1]; + /* Free the original malloc'd pointer */ + xxh_u8* base = ptr - offset; + XXH_free(base); + } +} +/*! @ingroup XXH3_family */ +/*! + * @brief Allocate an @ref XXH3_state_t. + * + * @return An allocated pointer of @ref XXH3_state_t on success. + * @return `NULL` on failure. + * + * @note Must be freed with XXH3_freeState(). + */ +XXH_PUBLIC_API XXH3_state_t* XXH3_createState(void) +{ + XXH3_state_t* const state = (XXH3_state_t*)XXH_alignedMalloc(sizeof(XXH3_state_t), 64); + if (state==NULL) return NULL; + XXH3_INITSTATE(state); + return state; +} + +/*! @ingroup XXH3_family */ +/*! + * @brief Frees an @ref XXH3_state_t. + * + * @param statePtr A pointer to an @ref XXH3_state_t allocated with @ref XXH3_createState(). + * + * @return @ref XXH_OK. + * + * @note Must be allocated with XXH3_createState(). + */ +XXH_PUBLIC_API XXH_errorcode XXH3_freeState(XXH3_state_t* statePtr) +{ + XXH_alignedFree(statePtr); + return XXH_OK; +} + +/*! @ingroup XXH3_family */ +XXH_PUBLIC_API void +XXH3_copyState(XXH_NOESCAPE XXH3_state_t* dst_state, XXH_NOESCAPE const XXH3_state_t* src_state) +{ + XXH_memcpy(dst_state, src_state, sizeof(*dst_state)); +} + +static void +XXH3_reset_internal(XXH3_state_t* statePtr, + XXH64_hash_t seed, + const void* secret, size_t secretSize) +{ + size_t const initStart = offsetof(XXH3_state_t, bufferedSize); + size_t const initLength = offsetof(XXH3_state_t, nbStripesPerBlock) - initStart; + XXH_ASSERT(offsetof(XXH3_state_t, nbStripesPerBlock) > initStart); + XXH_ASSERT(statePtr != NULL); + /* set members from bufferedSize to nbStripesPerBlock (excluded) to 0 */ + memset((char*)statePtr + initStart, 0, initLength); + statePtr->acc[0] = XXH_PRIME32_3; + statePtr->acc[1] = XXH_PRIME64_1; + statePtr->acc[2] = XXH_PRIME64_2; + statePtr->acc[3] = XXH_PRIME64_3; + statePtr->acc[4] = XXH_PRIME64_4; + statePtr->acc[5] = XXH_PRIME32_2; + statePtr->acc[6] = XXH_PRIME64_5; + statePtr->acc[7] = XXH_PRIME32_1; + statePtr->seed = seed; + statePtr->useSeed = (seed != 0); + statePtr->extSecret = (const unsigned char*)secret; + XXH_ASSERT(secretSize >= XXH3_SECRET_SIZE_MIN); + statePtr->secretLimit = secretSize - XXH_STRIPE_LEN; + statePtr->nbStripesPerBlock = statePtr->secretLimit / XXH_SECRET_CONSUME_RATE; +} + +/*! @ingroup XXH3_family */ +XXH_PUBLIC_API XXH_errorcode +XXH3_64bits_reset(XXH_NOESCAPE XXH3_state_t* statePtr) +{ + if (statePtr == NULL) return XXH_ERROR; + XXH3_reset_internal(statePtr, 0, XXH3_kSecret, XXH_SECRET_DEFAULT_SIZE); + return XXH_OK; +} + +/*! @ingroup XXH3_family */ +XXH_PUBLIC_API XXH_errorcode +XXH3_64bits_reset_withSecret(XXH_NOESCAPE XXH3_state_t* statePtr, XXH_NOESCAPE const void* secret, size_t secretSize) +{ + if (statePtr == NULL) return XXH_ERROR; + XXH3_reset_internal(statePtr, 0, secret, secretSize); + if (secret == NULL) return XXH_ERROR; + if (secretSize < XXH3_SECRET_SIZE_MIN) return XXH_ERROR; + return XXH_OK; +} + +/*! @ingroup XXH3_family */ +XXH_PUBLIC_API XXH_errorcode +XXH3_64bits_reset_withSeed(XXH_NOESCAPE XXH3_state_t* statePtr, XXH64_hash_t seed) +{ + if (statePtr == NULL) return XXH_ERROR; + if (seed==0) return XXH3_64bits_reset(statePtr); + if ((seed != statePtr->seed) || (statePtr->extSecret != NULL)) + XXH3_initCustomSecret(statePtr->customSecret, seed); + XXH3_reset_internal(statePtr, seed, NULL, XXH_SECRET_DEFAULT_SIZE); + return XXH_OK; +} + +/*! @ingroup XXH3_family */ +XXH_PUBLIC_API XXH_errorcode +XXH3_64bits_reset_withSecretandSeed(XXH_NOESCAPE XXH3_state_t* statePtr, XXH_NOESCAPE const void* secret, size_t secretSize, XXH64_hash_t seed64) +{ + if (statePtr == NULL) return XXH_ERROR; + if (secret == NULL) return XXH_ERROR; + if (secretSize < XXH3_SECRET_SIZE_MIN) return XXH_ERROR; + XXH3_reset_internal(statePtr, seed64, secret, secretSize); + statePtr->useSeed = 1; /* always, even if seed64==0 */ + return XXH_OK; +} + +/*! + * @internal + * @brief Processes a large input for XXH3_update() and XXH3_digest_long(). + * + * Unlike XXH3_hashLong_internal_loop(), this can process data that overlaps a block. + * + * @param acc Pointer to the 8 accumulator lanes + * @param nbStripesSoFarPtr In/out pointer to the number of leftover stripes in the block* + * @param nbStripesPerBlock Number of stripes in a block + * @param input Input pointer + * @param nbStripes Number of stripes to process + * @param secret Secret pointer + * @param secretLimit Offset of the last block in @p secret + * @param f_acc Pointer to an XXH3_accumulate implementation + * @param f_scramble Pointer to an XXH3_scrambleAcc implementation + * @return Pointer past the end of @p input after processing + */ +XXH_FORCE_INLINE const xxh_u8 * +XXH3_consumeStripes(xxh_u64* XXH_RESTRICT acc, + size_t* XXH_RESTRICT nbStripesSoFarPtr, size_t nbStripesPerBlock, + const xxh_u8* XXH_RESTRICT input, size_t nbStripes, + const xxh_u8* XXH_RESTRICT secret, size_t secretLimit, + XXH3_f_accumulate f_acc, + XXH3_f_scrambleAcc f_scramble) +{ + const xxh_u8* initialSecret = secret + *nbStripesSoFarPtr * XXH_SECRET_CONSUME_RATE; + /* Process full blocks */ + if (nbStripes >= (nbStripesPerBlock - *nbStripesSoFarPtr)) { + /* Process the initial partial block... */ + size_t nbStripesThisIter = nbStripesPerBlock - *nbStripesSoFarPtr; + + do { + /* Accumulate and scramble */ + f_acc(acc, input, initialSecret, nbStripesThisIter); + f_scramble(acc, secret + secretLimit); + input += nbStripesThisIter * XXH_STRIPE_LEN; + nbStripes -= nbStripesThisIter; + /* Then continue the loop with the full block size */ + nbStripesThisIter = nbStripesPerBlock; + initialSecret = secret; + } while (nbStripes >= nbStripesPerBlock); + *nbStripesSoFarPtr = 0; + } + /* Process a partial block */ + if (nbStripes > 0) { + f_acc(acc, input, initialSecret, nbStripes); + input += nbStripes * XXH_STRIPE_LEN; + *nbStripesSoFarPtr += nbStripes; + } + /* Return end pointer */ + return input; +} + +#ifndef XXH3_STREAM_USE_STACK +# if XXH_SIZE_OPT <= 0 && !defined(__clang__) /* clang doesn't need additional stack space */ +# define XXH3_STREAM_USE_STACK 1 +# endif +#endif +/* + * Both XXH3_64bits_update and XXH3_128bits_update use this routine. + */ +XXH_FORCE_INLINE XXH_errorcode +XXH3_update(XXH3_state_t* XXH_RESTRICT const state, + const xxh_u8* XXH_RESTRICT input, size_t len, + XXH3_f_accumulate f_acc, + XXH3_f_scrambleAcc f_scramble) +{ + if (input==NULL) { + XXH_ASSERT(len == 0); + return XXH_OK; + } + + XXH_ASSERT(state != NULL); + { const xxh_u8* const bEnd = input + len; + const unsigned char* const secret = (state->extSecret == NULL) ? state->customSecret : state->extSecret; +#if defined(XXH3_STREAM_USE_STACK) && XXH3_STREAM_USE_STACK >= 1 + /* For some reason, gcc and MSVC seem to suffer greatly + * when operating accumulators directly into state. + * Operating into stack space seems to enable proper optimization. + * clang, on the other hand, doesn't seem to need this trick */ + XXH_ALIGN(XXH_ACC_ALIGN) xxh_u64 acc[8]; + XXH_memcpy(acc, state->acc, sizeof(acc)); +#else + xxh_u64* XXH_RESTRICT const acc = state->acc; +#endif + state->totalLen += len; + XXH_ASSERT(state->bufferedSize <= XXH3_INTERNALBUFFER_SIZE); + + /* small input : just fill in tmp buffer */ + if (len <= XXH3_INTERNALBUFFER_SIZE - state->bufferedSize) { + XXH_memcpy(state->buffer + state->bufferedSize, input, len); + state->bufferedSize += (XXH32_hash_t)len; + return XXH_OK; + } + + /* total input is now > XXH3_INTERNALBUFFER_SIZE */ + #define XXH3_INTERNALBUFFER_STRIPES (XXH3_INTERNALBUFFER_SIZE / XXH_STRIPE_LEN) + XXH_STATIC_ASSERT(XXH3_INTERNALBUFFER_SIZE % XXH_STRIPE_LEN == 0); /* clean multiple */ + + /* + * Internal buffer is partially filled (always, except at beginning) + * Complete it, then consume it. + */ + if (state->bufferedSize) { + size_t const loadSize = XXH3_INTERNALBUFFER_SIZE - state->bufferedSize; + XXH_memcpy(state->buffer + state->bufferedSize, input, loadSize); + input += loadSize; + XXH3_consumeStripes(acc, + &state->nbStripesSoFar, state->nbStripesPerBlock, + state->buffer, XXH3_INTERNALBUFFER_STRIPES, + secret, state->secretLimit, + f_acc, f_scramble); + state->bufferedSize = 0; + } + XXH_ASSERT(input < bEnd); + if (bEnd - input > XXH3_INTERNALBUFFER_SIZE) { + size_t nbStripes = (size_t)(bEnd - 1 - input) / XXH_STRIPE_LEN; + input = XXH3_consumeStripes(acc, + &state->nbStripesSoFar, state->nbStripesPerBlock, + input, nbStripes, + secret, state->secretLimit, + f_acc, f_scramble); + XXH_memcpy(state->buffer + sizeof(state->buffer) - XXH_STRIPE_LEN, input - XXH_STRIPE_LEN, XXH_STRIPE_LEN); + + } + /* Some remaining input (always) : buffer it */ + XXH_ASSERT(input < bEnd); + XXH_ASSERT(bEnd - input <= XXH3_INTERNALBUFFER_SIZE); + XXH_ASSERT(state->bufferedSize == 0); + XXH_memcpy(state->buffer, input, (size_t)(bEnd-input)); + state->bufferedSize = (XXH32_hash_t)(bEnd-input); +#if defined(XXH3_STREAM_USE_STACK) && XXH3_STREAM_USE_STACK >= 1 + /* save stack accumulators into state */ + XXH_memcpy(state->acc, acc, sizeof(acc)); +#endif + } + + return XXH_OK; +} + +/*! @ingroup XXH3_family */ +XXH_PUBLIC_API XXH_errorcode +XXH3_64bits_update(XXH_NOESCAPE XXH3_state_t* state, XXH_NOESCAPE const void* input, size_t len) +{ + return XXH3_update(state, (const xxh_u8*)input, len, + XXH3_accumulate, XXH3_scrambleAcc); +} + + +XXH_FORCE_INLINE void +XXH3_digest_long (XXH64_hash_t* acc, + const XXH3_state_t* state, + const unsigned char* secret) +{ + xxh_u8 lastStripe[XXH_STRIPE_LEN]; + const xxh_u8* lastStripePtr; + + /* + * Digest on a local copy. This way, the state remains unaltered, and it can + * continue ingesting more input afterwards. + */ + XXH_memcpy(acc, state->acc, sizeof(state->acc)); + if (state->bufferedSize >= XXH_STRIPE_LEN) { + /* Consume remaining stripes then point to remaining data in buffer */ + size_t const nbStripes = (state->bufferedSize - 1) / XXH_STRIPE_LEN; + size_t nbStripesSoFar = state->nbStripesSoFar; + XXH3_consumeStripes(acc, + &nbStripesSoFar, state->nbStripesPerBlock, + state->buffer, nbStripes, + secret, state->secretLimit, + XXH3_accumulate, XXH3_scrambleAcc); + lastStripePtr = state->buffer + state->bufferedSize - XXH_STRIPE_LEN; + } else { /* bufferedSize < XXH_STRIPE_LEN */ + /* Copy to temp buffer */ + size_t const catchupSize = XXH_STRIPE_LEN - state->bufferedSize; + XXH_ASSERT(state->bufferedSize > 0); /* there is always some input buffered */ + XXH_memcpy(lastStripe, state->buffer + sizeof(state->buffer) - catchupSize, catchupSize); + XXH_memcpy(lastStripe + catchupSize, state->buffer, state->bufferedSize); + lastStripePtr = lastStripe; + } + /* Last stripe */ + XXH3_accumulate_512(acc, + lastStripePtr, + secret + state->secretLimit - XXH_SECRET_LASTACC_START); +} + +/*! @ingroup XXH3_family */ +XXH_PUBLIC_API XXH64_hash_t XXH3_64bits_digest (XXH_NOESCAPE const XXH3_state_t* state) +{ + const unsigned char* const secret = (state->extSecret == NULL) ? state->customSecret : state->extSecret; + if (state->totalLen > XXH3_MIDSIZE_MAX) { + XXH_ALIGN(XXH_ACC_ALIGN) XXH64_hash_t acc[XXH_ACC_NB]; + XXH3_digest_long(acc, state, secret); + return XXH3_mergeAccs(acc, + secret + XXH_SECRET_MERGEACCS_START, + (xxh_u64)state->totalLen * XXH_PRIME64_1); + } + /* totalLen <= XXH3_MIDSIZE_MAX: digesting a short input */ + if (state->useSeed) + return XXH3_64bits_withSeed(state->buffer, (size_t)state->totalLen, state->seed); + return XXH3_64bits_withSecret(state->buffer, (size_t)(state->totalLen), + secret, state->secretLimit + XXH_STRIPE_LEN); +} +#endif /* !XXH_NO_STREAM */ + + +/* ========================================== + * XXH3 128 bits (a.k.a XXH128) + * ========================================== + * XXH3's 128-bit variant has better mixing and strength than the 64-bit variant, + * even without counting the significantly larger output size. + * + * For example, extra steps are taken to avoid the seed-dependent collisions + * in 17-240 byte inputs (See XXH3_mix16B and XXH128_mix32B). + * + * This strength naturally comes at the cost of some speed, especially on short + * lengths. Note that longer hashes are about as fast as the 64-bit version + * due to it using only a slight modification of the 64-bit loop. + * + * XXH128 is also more oriented towards 64-bit machines. It is still extremely + * fast for a _128-bit_ hash on 32-bit (it usually clears XXH64). + */ + +XXH_FORCE_INLINE XXH_PUREF XXH128_hash_t +XXH3_len_1to3_128b(const xxh_u8* input, size_t len, const xxh_u8* secret, XXH64_hash_t seed) +{ + /* A doubled version of 1to3_64b with different constants. */ + XXH_ASSERT(input != NULL); + XXH_ASSERT(1 <= len && len <= 3); + XXH_ASSERT(secret != NULL); + /* + * len = 1: combinedl = { input[0], 0x01, input[0], input[0] } + * len = 2: combinedl = { input[1], 0x02, input[0], input[1] } + * len = 3: combinedl = { input[2], 0x03, input[0], input[1] } + */ + { xxh_u8 const c1 = input[0]; + xxh_u8 const c2 = input[len >> 1]; + xxh_u8 const c3 = input[len - 1]; + xxh_u32 const combinedl = ((xxh_u32)c1 <<16) | ((xxh_u32)c2 << 24) + | ((xxh_u32)c3 << 0) | ((xxh_u32)len << 8); + xxh_u32 const combinedh = XXH_rotl32(XXH_swap32(combinedl), 13); + xxh_u64 const bitflipl = (XXH_readLE32(secret) ^ XXH_readLE32(secret+4)) + seed; + xxh_u64 const bitfliph = (XXH_readLE32(secret+8) ^ XXH_readLE32(secret+12)) - seed; + xxh_u64 const keyed_lo = (xxh_u64)combinedl ^ bitflipl; + xxh_u64 const keyed_hi = (xxh_u64)combinedh ^ bitfliph; + XXH128_hash_t h128; + h128.low64 = XXH64_avalanche(keyed_lo); + h128.high64 = XXH64_avalanche(keyed_hi); + return h128; + } +} + +XXH_FORCE_INLINE XXH_PUREF XXH128_hash_t +XXH3_len_4to8_128b(const xxh_u8* input, size_t len, const xxh_u8* secret, XXH64_hash_t seed) +{ + XXH_ASSERT(input != NULL); + XXH_ASSERT(secret != NULL); + XXH_ASSERT(4 <= len && len <= 8); + seed ^= (xxh_u64)XXH_swap32((xxh_u32)seed) << 32; + { xxh_u32 const input_lo = XXH_readLE32(input); + xxh_u32 const input_hi = XXH_readLE32(input + len - 4); + xxh_u64 const input_64 = input_lo + ((xxh_u64)input_hi << 32); + xxh_u64 const bitflip = (XXH_readLE64(secret+16) ^ XXH_readLE64(secret+24)) + seed; + xxh_u64 const keyed = input_64 ^ bitflip; + + /* Shift len to the left to ensure it is even, this avoids even multiplies. */ + XXH128_hash_t m128 = XXH_mult64to128(keyed, XXH_PRIME64_1 + (len << 2)); + + m128.high64 += (m128.low64 << 1); + m128.low64 ^= (m128.high64 >> 3); + + m128.low64 = XXH_xorshift64(m128.low64, 35); + m128.low64 *= PRIME_MX2; + m128.low64 = XXH_xorshift64(m128.low64, 28); + m128.high64 = XXH3_avalanche(m128.high64); + return m128; + } +} + +XXH_FORCE_INLINE XXH_PUREF XXH128_hash_t +XXH3_len_9to16_128b(const xxh_u8* input, size_t len, const xxh_u8* secret, XXH64_hash_t seed) +{ + XXH_ASSERT(input != NULL); + XXH_ASSERT(secret != NULL); + XXH_ASSERT(9 <= len && len <= 16); + { xxh_u64 const bitflipl = (XXH_readLE64(secret+32) ^ XXH_readLE64(secret+40)) - seed; + xxh_u64 const bitfliph = (XXH_readLE64(secret+48) ^ XXH_readLE64(secret+56)) + seed; + xxh_u64 const input_lo = XXH_readLE64(input); + xxh_u64 input_hi = XXH_readLE64(input + len - 8); + XXH128_hash_t m128 = XXH_mult64to128(input_lo ^ input_hi ^ bitflipl, XXH_PRIME64_1); + /* + * Put len in the middle of m128 to ensure that the length gets mixed to + * both the low and high bits in the 128x64 multiply below. + */ + m128.low64 += (xxh_u64)(len - 1) << 54; + input_hi ^= bitfliph; + /* + * Add the high 32 bits of input_hi to the high 32 bits of m128, then + * add the long product of the low 32 bits of input_hi and XXH_PRIME32_2 to + * the high 64 bits of m128. + * + * The best approach to this operation is different on 32-bit and 64-bit. + */ + if (sizeof(void *) < sizeof(xxh_u64)) { /* 32-bit */ + /* + * 32-bit optimized version, which is more readable. + * + * On 32-bit, it removes an ADC and delays a dependency between the two + * halves of m128.high64, but it generates an extra mask on 64-bit. + */ + m128.high64 += (input_hi & 0xFFFFFFFF00000000ULL) + XXH_mult32to64((xxh_u32)input_hi, XXH_PRIME32_2); + } else { + /* + * 64-bit optimized (albeit more confusing) version. + * + * Uses some properties of addition and multiplication to remove the mask: + * + * Let: + * a = input_hi.lo = (input_hi & 0x00000000FFFFFFFF) + * b = input_hi.hi = (input_hi & 0xFFFFFFFF00000000) + * c = XXH_PRIME32_2 + * + * a + (b * c) + * Inverse Property: x + y - x == y + * a + (b * (1 + c - 1)) + * Distributive Property: x * (y + z) == (x * y) + (x * z) + * a + (b * 1) + (b * (c - 1)) + * Identity Property: x * 1 == x + * a + b + (b * (c - 1)) + * + * Substitute a, b, and c: + * input_hi.hi + input_hi.lo + ((xxh_u64)input_hi.lo * (XXH_PRIME32_2 - 1)) + * + * Since input_hi.hi + input_hi.lo == input_hi, we get this: + * input_hi + ((xxh_u64)input_hi.lo * (XXH_PRIME32_2 - 1)) + */ + m128.high64 += input_hi + XXH_mult32to64((xxh_u32)input_hi, XXH_PRIME32_2 - 1); + } + /* m128 ^= XXH_swap64(m128 >> 64); */ + m128.low64 ^= XXH_swap64(m128.high64); + + { /* 128x64 multiply: h128 = m128 * XXH_PRIME64_2; */ + XXH128_hash_t h128 = XXH_mult64to128(m128.low64, XXH_PRIME64_2); + h128.high64 += m128.high64 * XXH_PRIME64_2; + + h128.low64 = XXH3_avalanche(h128.low64); + h128.high64 = XXH3_avalanche(h128.high64); + return h128; + } } +} + +/* + * Assumption: `secret` size is >= XXH3_SECRET_SIZE_MIN + */ +XXH_FORCE_INLINE XXH_PUREF XXH128_hash_t +XXH3_len_0to16_128b(const xxh_u8* input, size_t len, const xxh_u8* secret, XXH64_hash_t seed) +{ + XXH_ASSERT(len <= 16); + { if (len > 8) return XXH3_len_9to16_128b(input, len, secret, seed); + if (len >= 4) return XXH3_len_4to8_128b(input, len, secret, seed); + if (len) return XXH3_len_1to3_128b(input, len, secret, seed); + { XXH128_hash_t h128; + xxh_u64 const bitflipl = XXH_readLE64(secret+64) ^ XXH_readLE64(secret+72); + xxh_u64 const bitfliph = XXH_readLE64(secret+80) ^ XXH_readLE64(secret+88); + h128.low64 = XXH64_avalanche(seed ^ bitflipl); + h128.high64 = XXH64_avalanche( seed ^ bitfliph); + return h128; + } } +} + +/* + * A bit slower than XXH3_mix16B, but handles multiply by zero better. + */ +XXH_FORCE_INLINE XXH128_hash_t +XXH128_mix32B(XXH128_hash_t acc, const xxh_u8* input_1, const xxh_u8* input_2, + const xxh_u8* secret, XXH64_hash_t seed) +{ + acc.low64 += XXH3_mix16B (input_1, secret+0, seed); + acc.low64 ^= XXH_readLE64(input_2) + XXH_readLE64(input_2 + 8); + acc.high64 += XXH3_mix16B (input_2, secret+16, seed); + acc.high64 ^= XXH_readLE64(input_1) + XXH_readLE64(input_1 + 8); + return acc; +} + + +XXH_FORCE_INLINE XXH_PUREF XXH128_hash_t +XXH3_len_17to128_128b(const xxh_u8* XXH_RESTRICT input, size_t len, + const xxh_u8* XXH_RESTRICT secret, size_t secretSize, + XXH64_hash_t seed) +{ + XXH_ASSERT(secretSize >= XXH3_SECRET_SIZE_MIN); (void)secretSize; + XXH_ASSERT(16 < len && len <= 128); + + { XXH128_hash_t acc; + acc.low64 = len * XXH_PRIME64_1; + acc.high64 = 0; + +#if XXH_SIZE_OPT >= 1 + { + /* Smaller, but slightly slower. */ + unsigned int i = (unsigned int)(len - 1) / 32; + do { + acc = XXH128_mix32B(acc, input+16*i, input+len-16*(i+1), secret+32*i, seed); + } while (i-- != 0); + } +#else + if (len > 32) { + if (len > 64) { + if (len > 96) { + acc = XXH128_mix32B(acc, input+48, input+len-64, secret+96, seed); + } + acc = XXH128_mix32B(acc, input+32, input+len-48, secret+64, seed); + } + acc = XXH128_mix32B(acc, input+16, input+len-32, secret+32, seed); + } + acc = XXH128_mix32B(acc, input, input+len-16, secret, seed); +#endif + { XXH128_hash_t h128; + h128.low64 = acc.low64 + acc.high64; + h128.high64 = (acc.low64 * XXH_PRIME64_1) + + (acc.high64 * XXH_PRIME64_4) + + ((len - seed) * XXH_PRIME64_2); + h128.low64 = XXH3_avalanche(h128.low64); + h128.high64 = (XXH64_hash_t)0 - XXH3_avalanche(h128.high64); + return h128; + } + } +} + +XXH_NO_INLINE XXH_PUREF XXH128_hash_t +XXH3_len_129to240_128b(const xxh_u8* XXH_RESTRICT input, size_t len, + const xxh_u8* XXH_RESTRICT secret, size_t secretSize, + XXH64_hash_t seed) +{ + XXH_ASSERT(secretSize >= XXH3_SECRET_SIZE_MIN); (void)secretSize; + XXH_ASSERT(128 < len && len <= XXH3_MIDSIZE_MAX); + + { XXH128_hash_t acc; + unsigned i; + acc.low64 = len * XXH_PRIME64_1; + acc.high64 = 0; + /* + * We set as `i` as offset + 32. We do this so that unchanged + * `len` can be used as upper bound. This reaches a sweet spot + * where both x86 and aarch64 get simple agen and good codegen + * for the loop. + */ + for (i = 32; i < 160; i += 32) { + acc = XXH128_mix32B(acc, + input + i - 32, + input + i - 16, + secret + i - 32, + seed); + } + acc.low64 = XXH3_avalanche(acc.low64); + acc.high64 = XXH3_avalanche(acc.high64); + /* + * NB: `i <= len` will duplicate the last 32-bytes if + * len % 32 was zero. This is an unfortunate necessity to keep + * the hash result stable. + */ + for (i=160; i <= len; i += 32) { + acc = XXH128_mix32B(acc, + input + i - 32, + input + i - 16, + secret + XXH3_MIDSIZE_STARTOFFSET + i - 160, + seed); + } + /* last bytes */ + acc = XXH128_mix32B(acc, + input + len - 16, + input + len - 32, + secret + XXH3_SECRET_SIZE_MIN - XXH3_MIDSIZE_LASTOFFSET - 16, + (XXH64_hash_t)0 - seed); + + { XXH128_hash_t h128; + h128.low64 = acc.low64 + acc.high64; + h128.high64 = (acc.low64 * XXH_PRIME64_1) + + (acc.high64 * XXH_PRIME64_4) + + ((len - seed) * XXH_PRIME64_2); + h128.low64 = XXH3_avalanche(h128.low64); + h128.high64 = (XXH64_hash_t)0 - XXH3_avalanche(h128.high64); + return h128; + } + } +} + +XXH_FORCE_INLINE XXH128_hash_t +XXH3_hashLong_128b_internal(const void* XXH_RESTRICT input, size_t len, + const xxh_u8* XXH_RESTRICT secret, size_t secretSize, + XXH3_f_accumulate f_acc, + XXH3_f_scrambleAcc f_scramble) +{ + XXH_ALIGN(XXH_ACC_ALIGN) xxh_u64 acc[XXH_ACC_NB] = XXH3_INIT_ACC; + + XXH3_hashLong_internal_loop(acc, (const xxh_u8*)input, len, secret, secretSize, f_acc, f_scramble); + + /* converge into final hash */ + XXH_STATIC_ASSERT(sizeof(acc) == 64); + XXH_ASSERT(secretSize >= sizeof(acc) + XXH_SECRET_MERGEACCS_START); + { XXH128_hash_t h128; + h128.low64 = XXH3_mergeAccs(acc, + secret + XXH_SECRET_MERGEACCS_START, + (xxh_u64)len * XXH_PRIME64_1); + h128.high64 = XXH3_mergeAccs(acc, + secret + secretSize + - sizeof(acc) - XXH_SECRET_MERGEACCS_START, + ~((xxh_u64)len * XXH_PRIME64_2)); + return h128; + } +} + +/* + * It's important for performance that XXH3_hashLong() is not inlined. + */ +XXH_NO_INLINE XXH_PUREF XXH128_hash_t +XXH3_hashLong_128b_default(const void* XXH_RESTRICT input, size_t len, + XXH64_hash_t seed64, + const void* XXH_RESTRICT secret, size_t secretLen) +{ + (void)seed64; (void)secret; (void)secretLen; + return XXH3_hashLong_128b_internal(input, len, XXH3_kSecret, sizeof(XXH3_kSecret), + XXH3_accumulate, XXH3_scrambleAcc); +} + +/* + * It's important for performance to pass @p secretLen (when it's static) + * to the compiler, so that it can properly optimize the vectorized loop. + * + * When the secret size is unknown, or on GCC 12 where the mix of NO_INLINE and FORCE_INLINE + * breaks -Og, this is XXH_NO_INLINE. + */ +XXH3_WITH_SECRET_INLINE XXH128_hash_t +XXH3_hashLong_128b_withSecret(const void* XXH_RESTRICT input, size_t len, + XXH64_hash_t seed64, + const void* XXH_RESTRICT secret, size_t secretLen) +{ + (void)seed64; + return XXH3_hashLong_128b_internal(input, len, (const xxh_u8*)secret, secretLen, + XXH3_accumulate, XXH3_scrambleAcc); +} + +XXH_FORCE_INLINE XXH128_hash_t +XXH3_hashLong_128b_withSeed_internal(const void* XXH_RESTRICT input, size_t len, + XXH64_hash_t seed64, + XXH3_f_accumulate f_acc, + XXH3_f_scrambleAcc f_scramble, + XXH3_f_initCustomSecret f_initSec) +{ + if (seed64 == 0) + return XXH3_hashLong_128b_internal(input, len, + XXH3_kSecret, sizeof(XXH3_kSecret), + f_acc, f_scramble); + { XXH_ALIGN(XXH_SEC_ALIGN) xxh_u8 secret[XXH_SECRET_DEFAULT_SIZE]; + f_initSec(secret, seed64); + return XXH3_hashLong_128b_internal(input, len, (const xxh_u8*)secret, sizeof(secret), + f_acc, f_scramble); + } +} + +/* + * It's important for performance that XXH3_hashLong is not inlined. + */ +XXH_NO_INLINE XXH128_hash_t +XXH3_hashLong_128b_withSeed(const void* input, size_t len, + XXH64_hash_t seed64, const void* XXH_RESTRICT secret, size_t secretLen) +{ + (void)secret; (void)secretLen; + return XXH3_hashLong_128b_withSeed_internal(input, len, seed64, + XXH3_accumulate, XXH3_scrambleAcc, XXH3_initCustomSecret); +} + +typedef XXH128_hash_t (*XXH3_hashLong128_f)(const void* XXH_RESTRICT, size_t, + XXH64_hash_t, const void* XXH_RESTRICT, size_t); + +XXH_FORCE_INLINE XXH128_hash_t +XXH3_128bits_internal(const void* input, size_t len, + XXH64_hash_t seed64, const void* XXH_RESTRICT secret, size_t secretLen, + XXH3_hashLong128_f f_hl128) +{ + XXH_ASSERT(secretLen >= XXH3_SECRET_SIZE_MIN); + /* + * If an action is to be taken if `secret` conditions are not respected, + * it should be done here. + * For now, it's a contract pre-condition. + * Adding a check and a branch here would cost performance at every hash. + */ + if (len <= 16) + return XXH3_len_0to16_128b((const xxh_u8*)input, len, (const xxh_u8*)secret, seed64); + if (len <= 128) + return XXH3_len_17to128_128b((const xxh_u8*)input, len, (const xxh_u8*)secret, secretLen, seed64); + if (len <= XXH3_MIDSIZE_MAX) + return XXH3_len_129to240_128b((const xxh_u8*)input, len, (const xxh_u8*)secret, secretLen, seed64); + return f_hl128(input, len, seed64, secret, secretLen); +} + + +/* === Public XXH128 API === */ + +/*! @ingroup XXH3_family */ +XXH_PUBLIC_API XXH128_hash_t XXH3_128bits(XXH_NOESCAPE const void* input, size_t len) +{ + return XXH3_128bits_internal(input, len, 0, + XXH3_kSecret, sizeof(XXH3_kSecret), + XXH3_hashLong_128b_default); +} + +/*! @ingroup XXH3_family */ +XXH_PUBLIC_API XXH128_hash_t +XXH3_128bits_withSecret(XXH_NOESCAPE const void* input, size_t len, XXH_NOESCAPE const void* secret, size_t secretSize) +{ + return XXH3_128bits_internal(input, len, 0, + (const xxh_u8*)secret, secretSize, + XXH3_hashLong_128b_withSecret); +} + +/*! @ingroup XXH3_family */ +XXH_PUBLIC_API XXH128_hash_t +XXH3_128bits_withSeed(XXH_NOESCAPE const void* input, size_t len, XXH64_hash_t seed) +{ + return XXH3_128bits_internal(input, len, seed, + XXH3_kSecret, sizeof(XXH3_kSecret), + XXH3_hashLong_128b_withSeed); +} + +/*! @ingroup XXH3_family */ +XXH_PUBLIC_API XXH128_hash_t +XXH3_128bits_withSecretandSeed(XXH_NOESCAPE const void* input, size_t len, XXH_NOESCAPE const void* secret, size_t secretSize, XXH64_hash_t seed) +{ + if (len <= XXH3_MIDSIZE_MAX) + return XXH3_128bits_internal(input, len, seed, XXH3_kSecret, sizeof(XXH3_kSecret), NULL); + return XXH3_hashLong_128b_withSecret(input, len, seed, secret, secretSize); +} + +/*! @ingroup XXH3_family */ +XXH_PUBLIC_API XXH128_hash_t +XXH128(XXH_NOESCAPE const void* input, size_t len, XXH64_hash_t seed) +{ + return XXH3_128bits_withSeed(input, len, seed); +} + + +/* === XXH3 128-bit streaming === */ +#ifndef XXH_NO_STREAM +/* + * All initialization and update functions are identical to 64-bit streaming variant. + * The only difference is the finalization routine. + */ + +/*! @ingroup XXH3_family */ +XXH_PUBLIC_API XXH_errorcode +XXH3_128bits_reset(XXH_NOESCAPE XXH3_state_t* statePtr) +{ + return XXH3_64bits_reset(statePtr); +} + +/*! @ingroup XXH3_family */ +XXH_PUBLIC_API XXH_errorcode +XXH3_128bits_reset_withSecret(XXH_NOESCAPE XXH3_state_t* statePtr, XXH_NOESCAPE const void* secret, size_t secretSize) +{ + return XXH3_64bits_reset_withSecret(statePtr, secret, secretSize); +} + +/*! @ingroup XXH3_family */ +XXH_PUBLIC_API XXH_errorcode +XXH3_128bits_reset_withSeed(XXH_NOESCAPE XXH3_state_t* statePtr, XXH64_hash_t seed) +{ + return XXH3_64bits_reset_withSeed(statePtr, seed); +} + +/*! @ingroup XXH3_family */ +XXH_PUBLIC_API XXH_errorcode +XXH3_128bits_reset_withSecretandSeed(XXH_NOESCAPE XXH3_state_t* statePtr, XXH_NOESCAPE const void* secret, size_t secretSize, XXH64_hash_t seed) +{ + return XXH3_64bits_reset_withSecretandSeed(statePtr, secret, secretSize, seed); +} + +/*! @ingroup XXH3_family */ +XXH_PUBLIC_API XXH_errorcode +XXH3_128bits_update(XXH_NOESCAPE XXH3_state_t* state, XXH_NOESCAPE const void* input, size_t len) +{ + return XXH3_64bits_update(state, input, len); +} + +/*! @ingroup XXH3_family */ +XXH_PUBLIC_API XXH128_hash_t XXH3_128bits_digest (XXH_NOESCAPE const XXH3_state_t* state) +{ + const unsigned char* const secret = (state->extSecret == NULL) ? state->customSecret : state->extSecret; + if (state->totalLen > XXH3_MIDSIZE_MAX) { + XXH_ALIGN(XXH_ACC_ALIGN) XXH64_hash_t acc[XXH_ACC_NB]; + XXH3_digest_long(acc, state, secret); + XXH_ASSERT(state->secretLimit + XXH_STRIPE_LEN >= sizeof(acc) + XXH_SECRET_MERGEACCS_START); + { XXH128_hash_t h128; + h128.low64 = XXH3_mergeAccs(acc, + secret + XXH_SECRET_MERGEACCS_START, + (xxh_u64)state->totalLen * XXH_PRIME64_1); + h128.high64 = XXH3_mergeAccs(acc, + secret + state->secretLimit + XXH_STRIPE_LEN + - sizeof(acc) - XXH_SECRET_MERGEACCS_START, + ~((xxh_u64)state->totalLen * XXH_PRIME64_2)); + return h128; + } + } + /* len <= XXH3_MIDSIZE_MAX : short code */ + if (state->seed) + return XXH3_128bits_withSeed(state->buffer, (size_t)state->totalLen, state->seed); + return XXH3_128bits_withSecret(state->buffer, (size_t)(state->totalLen), + secret, state->secretLimit + XXH_STRIPE_LEN); +} +#endif /* !XXH_NO_STREAM */ +/* 128-bit utility functions */ + +#include /* memcmp, memcpy */ + +/* return : 1 is equal, 0 if different */ +/*! @ingroup XXH3_family */ +XXH_PUBLIC_API int XXH128_isEqual(XXH128_hash_t h1, XXH128_hash_t h2) +{ + /* note : XXH128_hash_t is compact, it has no padding byte */ + return !(memcmp(&h1, &h2, sizeof(h1))); +} + +/* This prototype is compatible with stdlib's qsort(). + * @return : >0 if *h128_1 > *h128_2 + * <0 if *h128_1 < *h128_2 + * =0 if *h128_1 == *h128_2 */ +/*! @ingroup XXH3_family */ +XXH_PUBLIC_API int XXH128_cmp(XXH_NOESCAPE const void* h128_1, XXH_NOESCAPE const void* h128_2) +{ + XXH128_hash_t const h1 = *(const XXH128_hash_t*)h128_1; + XXH128_hash_t const h2 = *(const XXH128_hash_t*)h128_2; + int const hcmp = (h1.high64 > h2.high64) - (h2.high64 > h1.high64); + /* note : bets that, in most cases, hash values are different */ + if (hcmp) return hcmp; + return (h1.low64 > h2.low64) - (h2.low64 > h1.low64); +} + + +/*====== Canonical representation ======*/ +/*! @ingroup XXH3_family */ +XXH_PUBLIC_API void +XXH128_canonicalFromHash(XXH_NOESCAPE XXH128_canonical_t* dst, XXH128_hash_t hash) +{ + XXH_STATIC_ASSERT(sizeof(XXH128_canonical_t) == sizeof(XXH128_hash_t)); + if (XXH_CPU_LITTLE_ENDIAN) { + hash.high64 = XXH_swap64(hash.high64); + hash.low64 = XXH_swap64(hash.low64); + } + XXH_memcpy(dst, &hash.high64, sizeof(hash.high64)); + XXH_memcpy((char*)dst + sizeof(hash.high64), &hash.low64, sizeof(hash.low64)); +} + +/*! @ingroup XXH3_family */ +XXH_PUBLIC_API XXH128_hash_t +XXH128_hashFromCanonical(XXH_NOESCAPE const XXH128_canonical_t* src) +{ + XXH128_hash_t h; + h.high64 = XXH_readBE64(src); + h.low64 = XXH_readBE64(src->digest + 8); + return h; +} + + + +/* ========================================== + * Secret generators + * ========================================== + */ +#define XXH_MIN(x, y) (((x) > (y)) ? (y) : (x)) + +XXH_FORCE_INLINE void XXH3_combine16(void* dst, XXH128_hash_t h128) +{ + XXH_writeLE64( dst, XXH_readLE64(dst) ^ h128.low64 ); + XXH_writeLE64( (char*)dst+8, XXH_readLE64((char*)dst+8) ^ h128.high64 ); +} + +/*! @ingroup XXH3_family */ +XXH_PUBLIC_API XXH_errorcode +XXH3_generateSecret(XXH_NOESCAPE void* secretBuffer, size_t secretSize, XXH_NOESCAPE const void* customSeed, size_t customSeedSize) +{ +#if (XXH_DEBUGLEVEL >= 1) + XXH_ASSERT(secretBuffer != NULL); + XXH_ASSERT(secretSize >= XXH3_SECRET_SIZE_MIN); +#else + /* production mode, assert() are disabled */ + if (secretBuffer == NULL) return XXH_ERROR; + if (secretSize < XXH3_SECRET_SIZE_MIN) return XXH_ERROR; +#endif + + if (customSeedSize == 0) { + customSeed = XXH3_kSecret; + customSeedSize = XXH_SECRET_DEFAULT_SIZE; + } +#if (XXH_DEBUGLEVEL >= 1) + XXH_ASSERT(customSeed != NULL); +#else + if (customSeed == NULL) return XXH_ERROR; +#endif + + /* Fill secretBuffer with a copy of customSeed - repeat as needed */ + { size_t pos = 0; + while (pos < secretSize) { + size_t const toCopy = XXH_MIN((secretSize - pos), customSeedSize); + memcpy((char*)secretBuffer + pos, customSeed, toCopy); + pos += toCopy; + } } + + { size_t const nbSeg16 = secretSize / 16; + size_t n; + XXH128_canonical_t scrambler; + XXH128_canonicalFromHash(&scrambler, XXH128(customSeed, customSeedSize, 0)); + for (n=0; n +#include +#include + +#if defined(__GNUC__) && __GNUC__ >= 4 +# define ZSTD_memcpy(d,s,l) __builtin_memcpy((d),(s),(l)) +# define ZSTD_memmove(d,s,l) __builtin_memmove((d),(s),(l)) +# define ZSTD_memset(p,v,l) __builtin_memset((p),(v),(l)) +#else +# define ZSTD_memcpy(d,s,l) memcpy((d),(s),(l)) +# define ZSTD_memmove(d,s,l) memmove((d),(s),(l)) +# define ZSTD_memset(p,v,l) memset((p),(v),(l)) +#endif + +#endif /* ZSTD_DEPS_COMMON */ + +/* Need: + * ZSTD_malloc() + * ZSTD_free() + * ZSTD_calloc() + */ +#ifdef ZSTD_DEPS_NEED_MALLOC +#ifndef ZSTD_DEPS_MALLOC +#define ZSTD_DEPS_MALLOC + +#include + +#define ZSTD_malloc(s) malloc(s) +#define ZSTD_calloc(n,s) calloc((n), (s)) +#define ZSTD_free(p) free((p)) + +#endif /* ZSTD_DEPS_MALLOC */ +#endif /* ZSTD_DEPS_NEED_MALLOC */ + +/* + * Provides 64-bit math support. + * Need: + * U64 ZSTD_div64(U64 dividend, U32 divisor) + */ +#ifdef ZSTD_DEPS_NEED_MATH64 +#ifndef ZSTD_DEPS_MATH64 +#define ZSTD_DEPS_MATH64 + +#define ZSTD_div64(dividend, divisor) ((dividend) / (divisor)) + +#endif /* ZSTD_DEPS_MATH64 */ +#endif /* ZSTD_DEPS_NEED_MATH64 */ + +/* Need: + * assert() + */ +#ifdef ZSTD_DEPS_NEED_ASSERT +#ifndef ZSTD_DEPS_ASSERT +#define ZSTD_DEPS_ASSERT + +#include + +#endif /* ZSTD_DEPS_ASSERT */ +#endif /* ZSTD_DEPS_NEED_ASSERT */ + +/* Need: + * ZSTD_DEBUG_PRINT() + */ +#ifdef ZSTD_DEPS_NEED_IO +#ifndef ZSTD_DEPS_IO +#define ZSTD_DEPS_IO + +#include +#define ZSTD_DEBUG_PRINT(...) fprintf(stderr, __VA_ARGS__) + +#endif /* ZSTD_DEPS_IO */ +#endif /* ZSTD_DEPS_NEED_IO */ + +/* Only requested when is known to be present. + * Need: + * intptr_t + */ +#ifdef ZSTD_DEPS_NEED_STDINT +#ifndef ZSTD_DEPS_STDINT +#define ZSTD_DEPS_STDINT + +#include + +#endif /* ZSTD_DEPS_STDINT */ +#endif /* ZSTD_DEPS_NEED_STDINT */ diff --git a/deps/zstd/lib/common/zstd_internal.h b/deps/zstd/lib/common/zstd_internal.h new file mode 100644 index 00000000000000..ecb9cfba87ccfe --- /dev/null +++ b/deps/zstd/lib/common/zstd_internal.h @@ -0,0 +1,392 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_CCOMMON_H_MODULE +#define ZSTD_CCOMMON_H_MODULE + +/* this module contains definitions which must be identical + * across compression, decompression and dictBuilder. + * It also contains a few functions useful to at least 2 of them + * and which benefit from being inlined */ + +/*-************************************* +* Dependencies +***************************************/ +#include "compiler.h" +#include "cpu.h" +#include "mem.h" +#include "debug.h" /* assert, DEBUGLOG, RAWLOG, g_debuglevel */ +#include "error_private.h" +#define ZSTD_STATIC_LINKING_ONLY +#include "../zstd.h" +#define FSE_STATIC_LINKING_ONLY +#include "fse.h" +#include "huf.h" +#ifndef XXH_STATIC_LINKING_ONLY +# define XXH_STATIC_LINKING_ONLY /* XXH64_state_t */ +#endif +#include "xxhash.h" /* XXH_reset, update, digest */ +#ifndef ZSTD_NO_TRACE +# include "zstd_trace.h" +#else +# define ZSTD_TRACE 0 +#endif + +#if defined (__cplusplus) +extern "C" { +#endif + +/* ---- static assert (debug) --- */ +#define ZSTD_STATIC_ASSERT(c) DEBUG_STATIC_ASSERT(c) +#define ZSTD_isError ERR_isError /* for inlining */ +#define FSE_isError ERR_isError +#define HUF_isError ERR_isError + + +/*-************************************* +* shared macros +***************************************/ +#undef MIN +#undef MAX +#define MIN(a,b) ((a)<(b) ? (a) : (b)) +#define MAX(a,b) ((a)>(b) ? (a) : (b)) +#define BOUNDED(min,val,max) (MAX(min,MIN(val,max))) + + +/*-************************************* +* Common constants +***************************************/ +#define ZSTD_OPT_NUM (1<<12) + +#define ZSTD_REP_NUM 3 /* number of repcodes */ +static UNUSED_ATTR const U32 repStartValue[ZSTD_REP_NUM] = { 1, 4, 8 }; + +#define KB *(1 <<10) +#define MB *(1 <<20) +#define GB *(1U<<30) + +#define BIT7 128 +#define BIT6 64 +#define BIT5 32 +#define BIT4 16 +#define BIT1 2 +#define BIT0 1 + +#define ZSTD_WINDOWLOG_ABSOLUTEMIN 10 +static UNUSED_ATTR const size_t ZSTD_fcs_fieldSize[4] = { 0, 2, 4, 8 }; +static UNUSED_ATTR const size_t ZSTD_did_fieldSize[4] = { 0, 1, 2, 4 }; + +#define ZSTD_FRAMEIDSIZE 4 /* magic number size */ + +#define ZSTD_BLOCKHEADERSIZE 3 /* C standard doesn't allow `static const` variable to be init using another `static const` variable */ +static UNUSED_ATTR const size_t ZSTD_blockHeaderSize = ZSTD_BLOCKHEADERSIZE; +typedef enum { bt_raw, bt_rle, bt_compressed, bt_reserved } blockType_e; + +#define ZSTD_FRAMECHECKSUMSIZE 4 + +#define MIN_SEQUENCES_SIZE 1 /* nbSeq==0 */ +#define MIN_CBLOCK_SIZE (1 /*litCSize*/ + 1 /* RLE or RAW */) /* for a non-null block */ +#define MIN_LITERALS_FOR_4_STREAMS 6 + +typedef enum { set_basic, set_rle, set_compressed, set_repeat } symbolEncodingType_e; + +#define LONGNBSEQ 0x7F00 + +#define MINMATCH 3 + +#define Litbits 8 +#define LitHufLog 11 +#define MaxLit ((1<= WILDCOPY_VECLEN || diff <= -WILDCOPY_VECLEN); + /* Separate out the first COPY16() call because the copy length is + * almost certain to be short, so the branches have different + * probabilities. Since it is almost certain to be short, only do + * one COPY16() in the first call. Then, do two calls per loop since + * at that point it is more likely to have a high trip count. + */ + ZSTD_copy16(op, ip); + if (16 >= length) return; + op += 16; + ip += 16; + do { + COPY16(op, ip); + COPY16(op, ip); + } + while (op < oend); + } +} + +MEM_STATIC size_t ZSTD_limitCopy(void* dst, size_t dstCapacity, const void* src, size_t srcSize) +{ + size_t const length = MIN(dstCapacity, srcSize); + if (length > 0) { + ZSTD_memcpy(dst, src, length); + } + return length; +} + +/* define "workspace is too large" as this number of times larger than needed */ +#define ZSTD_WORKSPACETOOLARGE_FACTOR 3 + +/* when workspace is continuously too large + * during at least this number of times, + * context's memory usage is considered wasteful, + * because it's sized to handle a worst case scenario which rarely happens. + * In which case, resize it down to free some memory */ +#define ZSTD_WORKSPACETOOLARGE_MAXDURATION 128 + +/* Controls whether the input/output buffer is buffered or stable. */ +typedef enum { + ZSTD_bm_buffered = 0, /* Buffer the input/output */ + ZSTD_bm_stable = 1 /* ZSTD_inBuffer/ZSTD_outBuffer is stable */ +} ZSTD_bufferMode_e; + + +/*-******************************************* +* Private declarations +*********************************************/ +typedef struct seqDef_s { + U32 offBase; /* offBase == Offset + ZSTD_REP_NUM, or repcode 1,2,3 */ + U16 litLength; + U16 mlBase; /* mlBase == matchLength - MINMATCH */ +} seqDef; + +/* Controls whether seqStore has a single "long" litLength or matchLength. See seqStore_t. */ +typedef enum { + ZSTD_llt_none = 0, /* no longLengthType */ + ZSTD_llt_literalLength = 1, /* represents a long literal */ + ZSTD_llt_matchLength = 2 /* represents a long match */ +} ZSTD_longLengthType_e; + +typedef struct { + seqDef* sequencesStart; + seqDef* sequences; /* ptr to end of sequences */ + BYTE* litStart; + BYTE* lit; /* ptr to end of literals */ + BYTE* llCode; + BYTE* mlCode; + BYTE* ofCode; + size_t maxNbSeq; + size_t maxNbLit; + + /* longLengthPos and longLengthType to allow us to represent either a single litLength or matchLength + * in the seqStore that has a value larger than U16 (if it exists). To do so, we increment + * the existing value of the litLength or matchLength by 0x10000. + */ + ZSTD_longLengthType_e longLengthType; + U32 longLengthPos; /* Index of the sequence to apply long length modification to */ +} seqStore_t; + +typedef struct { + U32 litLength; + U32 matchLength; +} ZSTD_sequenceLength; + +/** + * Returns the ZSTD_sequenceLength for the given sequences. It handles the decoding of long sequences + * indicated by longLengthPos and longLengthType, and adds MINMATCH back to matchLength. + */ +MEM_STATIC ZSTD_sequenceLength ZSTD_getSequenceLength(seqStore_t const* seqStore, seqDef const* seq) +{ + ZSTD_sequenceLength seqLen; + seqLen.litLength = seq->litLength; + seqLen.matchLength = seq->mlBase + MINMATCH; + if (seqStore->longLengthPos == (U32)(seq - seqStore->sequencesStart)) { + if (seqStore->longLengthType == ZSTD_llt_literalLength) { + seqLen.litLength += 0x10000; + } + if (seqStore->longLengthType == ZSTD_llt_matchLength) { + seqLen.matchLength += 0x10000; + } + } + return seqLen; +} + +/** + * Contains the compressed frame size and an upper-bound for the decompressed frame size. + * Note: before using `compressedSize`, check for errors using ZSTD_isError(). + * similarly, before using `decompressedBound`, check for errors using: + * `decompressedBound != ZSTD_CONTENTSIZE_ERROR` + */ +typedef struct { + size_t nbBlocks; + size_t compressedSize; + unsigned long long decompressedBound; +} ZSTD_frameSizeInfo; /* decompress & legacy */ + +const seqStore_t* ZSTD_getSeqStore(const ZSTD_CCtx* ctx); /* compress & dictBuilder */ +int ZSTD_seqToCodes(const seqStore_t* seqStorePtr); /* compress, dictBuilder, decodeCorpus (shouldn't get its definition from here) */ + + +/* ZSTD_invalidateRepCodes() : + * ensures next compression will not use repcodes from previous block. + * Note : only works with regular variant; + * do not use with extDict variant ! */ +void ZSTD_invalidateRepCodes(ZSTD_CCtx* cctx); /* zstdmt, adaptive_compression (shouldn't get this definition from here) */ + + +typedef struct { + blockType_e blockType; + U32 lastBlock; + U32 origSize; +} blockProperties_t; /* declared here for decompress and fullbench */ + +/*! ZSTD_getcBlockSize() : + * Provides the size of compressed block from block header `src` */ +/* Used by: decompress, fullbench */ +size_t ZSTD_getcBlockSize(const void* src, size_t srcSize, + blockProperties_t* bpPtr); + +/*! ZSTD_decodeSeqHeaders() : + * decode sequence header from src */ +/* Used by: zstd_decompress_block, fullbench */ +size_t ZSTD_decodeSeqHeaders(ZSTD_DCtx* dctx, int* nbSeqPtr, + const void* src, size_t srcSize); + +/** + * @returns true iff the CPU supports dynamic BMI2 dispatch. + */ +MEM_STATIC int ZSTD_cpuSupportsBmi2(void) +{ + ZSTD_cpuid_t cpuid = ZSTD_cpuid(); + return ZSTD_cpuid_bmi1(cpuid) && ZSTD_cpuid_bmi2(cpuid); +} + +#if defined (__cplusplus) +} +#endif + +#endif /* ZSTD_CCOMMON_H_MODULE */ diff --git a/deps/zstd/lib/common/zstd_trace.h b/deps/zstd/lib/common/zstd_trace.h new file mode 100644 index 00000000000000..da20534ebd8e17 --- /dev/null +++ b/deps/zstd/lib/common/zstd_trace.h @@ -0,0 +1,163 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_TRACE_H +#define ZSTD_TRACE_H + +#if defined (__cplusplus) +extern "C" { +#endif + +#include + +/* weak symbol support + * For now, enable conservatively: + * - Only GNUC + * - Only ELF + * - Only x86-64, i386 and aarch64 + * Also, explicitly disable on platforms known not to work so they aren't + * forgotten in the future. + */ +#if !defined(ZSTD_HAVE_WEAK_SYMBOLS) && \ + defined(__GNUC__) && defined(__ELF__) && \ + (defined(__x86_64__) || defined(_M_X64) || defined(__i386__) || defined(_M_IX86) || defined(__aarch64__)) && \ + !defined(__APPLE__) && !defined(_WIN32) && !defined(__MINGW32__) && \ + !defined(__CYGWIN__) && !defined(_AIX) +# define ZSTD_HAVE_WEAK_SYMBOLS 1 +#else +# define ZSTD_HAVE_WEAK_SYMBOLS 0 +#endif +#if ZSTD_HAVE_WEAK_SYMBOLS +# define ZSTD_WEAK_ATTR __attribute__((__weak__)) +#else +# define ZSTD_WEAK_ATTR +#endif + +/* Only enable tracing when weak symbols are available. */ +#ifndef ZSTD_TRACE +# define ZSTD_TRACE ZSTD_HAVE_WEAK_SYMBOLS +#endif + +#if ZSTD_TRACE + +struct ZSTD_CCtx_s; +struct ZSTD_DCtx_s; +struct ZSTD_CCtx_params_s; + +typedef struct { + /** + * ZSTD_VERSION_NUMBER + * + * This is guaranteed to be the first member of ZSTD_trace. + * Otherwise, this struct is not stable between versions. If + * the version number does not match your expectation, you + * should not interpret the rest of the struct. + */ + unsigned version; + /** + * Non-zero if streaming (de)compression is used. + */ + unsigned streaming; + /** + * The dictionary ID. + */ + unsigned dictionaryID; + /** + * Is the dictionary cold? + * Only set on decompression. + */ + unsigned dictionaryIsCold; + /** + * The dictionary size or zero if no dictionary. + */ + size_t dictionarySize; + /** + * The uncompressed size of the data. + */ + size_t uncompressedSize; + /** + * The compressed size of the data. + */ + size_t compressedSize; + /** + * The fully resolved CCtx parameters (NULL on decompression). + */ + struct ZSTD_CCtx_params_s const* params; + /** + * The ZSTD_CCtx pointer (NULL on decompression). + */ + struct ZSTD_CCtx_s const* cctx; + /** + * The ZSTD_DCtx pointer (NULL on compression). + */ + struct ZSTD_DCtx_s const* dctx; +} ZSTD_Trace; + +/** + * A tracing context. It must be 0 when tracing is disabled. + * Otherwise, any non-zero value returned by a tracing begin() + * function is presented to any subsequent calls to end(). + * + * Any non-zero value is treated as tracing is enabled and not + * interpreted by the library. + * + * Two possible uses are: + * * A timestamp for when the begin() function was called. + * * A unique key identifying the (de)compression, like the + * address of the [dc]ctx pointer if you need to track + * more information than just a timestamp. + */ +typedef unsigned long long ZSTD_TraceCtx; + +/** + * Trace the beginning of a compression call. + * @param cctx The dctx pointer for the compression. + * It can be used as a key to map begin() to end(). + * @returns Non-zero if tracing is enabled. The return value is + * passed to ZSTD_trace_compress_end(). + */ +ZSTD_WEAK_ATTR ZSTD_TraceCtx ZSTD_trace_compress_begin( + struct ZSTD_CCtx_s const* cctx); + +/** + * Trace the end of a compression call. + * @param ctx The return value of ZSTD_trace_compress_begin(). + * @param trace The zstd tracing info. + */ +ZSTD_WEAK_ATTR void ZSTD_trace_compress_end( + ZSTD_TraceCtx ctx, + ZSTD_Trace const* trace); + +/** + * Trace the beginning of a decompression call. + * @param dctx The dctx pointer for the decompression. + * It can be used as a key to map begin() to end(). + * @returns Non-zero if tracing is enabled. The return value is + * passed to ZSTD_trace_compress_end(). + */ +ZSTD_WEAK_ATTR ZSTD_TraceCtx ZSTD_trace_decompress_begin( + struct ZSTD_DCtx_s const* dctx); + +/** + * Trace the end of a decompression call. + * @param ctx The return value of ZSTD_trace_decompress_begin(). + * @param trace The zstd tracing info. + */ +ZSTD_WEAK_ATTR void ZSTD_trace_decompress_end( + ZSTD_TraceCtx ctx, + ZSTD_Trace const* trace); + +#endif /* ZSTD_TRACE */ + +#if defined (__cplusplus) +} +#endif + +#endif /* ZSTD_TRACE_H */ diff --git a/deps/zstd/lib/compress/clevels.h b/deps/zstd/lib/compress/clevels.h new file mode 100644 index 00000000000000..c18da465f3211b --- /dev/null +++ b/deps/zstd/lib/compress/clevels.h @@ -0,0 +1,134 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_CLEVELS_H +#define ZSTD_CLEVELS_H + +#define ZSTD_STATIC_LINKING_ONLY /* ZSTD_compressionParameters */ +#include "../zstd.h" + +/*-===== Pre-defined compression levels =====-*/ + +#define ZSTD_MAX_CLEVEL 22 + +#ifdef __GNUC__ +__attribute__((__unused__)) +#endif + +static const ZSTD_compressionParameters ZSTD_defaultCParameters[4][ZSTD_MAX_CLEVEL+1] = { +{ /* "default" - for any srcSize > 256 KB */ + /* W, C, H, S, L, TL, strat */ + { 19, 12, 13, 1, 6, 1, ZSTD_fast }, /* base for negative levels */ + { 19, 13, 14, 1, 7, 0, ZSTD_fast }, /* level 1 */ + { 20, 15, 16, 1, 6, 0, ZSTD_fast }, /* level 2 */ + { 21, 16, 17, 1, 5, 0, ZSTD_dfast }, /* level 3 */ + { 21, 18, 18, 1, 5, 0, ZSTD_dfast }, /* level 4 */ + { 21, 18, 19, 3, 5, 2, ZSTD_greedy }, /* level 5 */ + { 21, 18, 19, 3, 5, 4, ZSTD_lazy }, /* level 6 */ + { 21, 19, 20, 4, 5, 8, ZSTD_lazy }, /* level 7 */ + { 21, 19, 20, 4, 5, 16, ZSTD_lazy2 }, /* level 8 */ + { 22, 20, 21, 4, 5, 16, ZSTD_lazy2 }, /* level 9 */ + { 22, 21, 22, 5, 5, 16, ZSTD_lazy2 }, /* level 10 */ + { 22, 21, 22, 6, 5, 16, ZSTD_lazy2 }, /* level 11 */ + { 22, 22, 23, 6, 5, 32, ZSTD_lazy2 }, /* level 12 */ + { 22, 22, 22, 4, 5, 32, ZSTD_btlazy2 }, /* level 13 */ + { 22, 22, 23, 5, 5, 32, ZSTD_btlazy2 }, /* level 14 */ + { 22, 23, 23, 6, 5, 32, ZSTD_btlazy2 }, /* level 15 */ + { 22, 22, 22, 5, 5, 48, ZSTD_btopt }, /* level 16 */ + { 23, 23, 22, 5, 4, 64, ZSTD_btopt }, /* level 17 */ + { 23, 23, 22, 6, 3, 64, ZSTD_btultra }, /* level 18 */ + { 23, 24, 22, 7, 3,256, ZSTD_btultra2}, /* level 19 */ + { 25, 25, 23, 7, 3,256, ZSTD_btultra2}, /* level 20 */ + { 26, 26, 24, 7, 3,512, ZSTD_btultra2}, /* level 21 */ + { 27, 27, 25, 9, 3,999, ZSTD_btultra2}, /* level 22 */ +}, +{ /* for srcSize <= 256 KB */ + /* W, C, H, S, L, T, strat */ + { 18, 12, 13, 1, 5, 1, ZSTD_fast }, /* base for negative levels */ + { 18, 13, 14, 1, 6, 0, ZSTD_fast }, /* level 1 */ + { 18, 14, 14, 1, 5, 0, ZSTD_dfast }, /* level 2 */ + { 18, 16, 16, 1, 4, 0, ZSTD_dfast }, /* level 3 */ + { 18, 16, 17, 3, 5, 2, ZSTD_greedy }, /* level 4.*/ + { 18, 17, 18, 5, 5, 2, ZSTD_greedy }, /* level 5.*/ + { 18, 18, 19, 3, 5, 4, ZSTD_lazy }, /* level 6.*/ + { 18, 18, 19, 4, 4, 4, ZSTD_lazy }, /* level 7 */ + { 18, 18, 19, 4, 4, 8, ZSTD_lazy2 }, /* level 8 */ + { 18, 18, 19, 5, 4, 8, ZSTD_lazy2 }, /* level 9 */ + { 18, 18, 19, 6, 4, 8, ZSTD_lazy2 }, /* level 10 */ + { 18, 18, 19, 5, 4, 12, ZSTD_btlazy2 }, /* level 11.*/ + { 18, 19, 19, 7, 4, 12, ZSTD_btlazy2 }, /* level 12.*/ + { 18, 18, 19, 4, 4, 16, ZSTD_btopt }, /* level 13 */ + { 18, 18, 19, 4, 3, 32, ZSTD_btopt }, /* level 14.*/ + { 18, 18, 19, 6, 3,128, ZSTD_btopt }, /* level 15.*/ + { 18, 19, 19, 6, 3,128, ZSTD_btultra }, /* level 16.*/ + { 18, 19, 19, 8, 3,256, ZSTD_btultra }, /* level 17.*/ + { 18, 19, 19, 6, 3,128, ZSTD_btultra2}, /* level 18.*/ + { 18, 19, 19, 8, 3,256, ZSTD_btultra2}, /* level 19.*/ + { 18, 19, 19, 10, 3,512, ZSTD_btultra2}, /* level 20.*/ + { 18, 19, 19, 12, 3,512, ZSTD_btultra2}, /* level 21.*/ + { 18, 19, 19, 13, 3,999, ZSTD_btultra2}, /* level 22.*/ +}, +{ /* for srcSize <= 128 KB */ + /* W, C, H, S, L, T, strat */ + { 17, 12, 12, 1, 5, 1, ZSTD_fast }, /* base for negative levels */ + { 17, 12, 13, 1, 6, 0, ZSTD_fast }, /* level 1 */ + { 17, 13, 15, 1, 5, 0, ZSTD_fast }, /* level 2 */ + { 17, 15, 16, 2, 5, 0, ZSTD_dfast }, /* level 3 */ + { 17, 17, 17, 2, 4, 0, ZSTD_dfast }, /* level 4 */ + { 17, 16, 17, 3, 4, 2, ZSTD_greedy }, /* level 5 */ + { 17, 16, 17, 3, 4, 4, ZSTD_lazy }, /* level 6 */ + { 17, 16, 17, 3, 4, 8, ZSTD_lazy2 }, /* level 7 */ + { 17, 16, 17, 4, 4, 8, ZSTD_lazy2 }, /* level 8 */ + { 17, 16, 17, 5, 4, 8, ZSTD_lazy2 }, /* level 9 */ + { 17, 16, 17, 6, 4, 8, ZSTD_lazy2 }, /* level 10 */ + { 17, 17, 17, 5, 4, 8, ZSTD_btlazy2 }, /* level 11 */ + { 17, 18, 17, 7, 4, 12, ZSTD_btlazy2 }, /* level 12 */ + { 17, 18, 17, 3, 4, 12, ZSTD_btopt }, /* level 13.*/ + { 17, 18, 17, 4, 3, 32, ZSTD_btopt }, /* level 14.*/ + { 17, 18, 17, 6, 3,256, ZSTD_btopt }, /* level 15.*/ + { 17, 18, 17, 6, 3,128, ZSTD_btultra }, /* level 16.*/ + { 17, 18, 17, 8, 3,256, ZSTD_btultra }, /* level 17.*/ + { 17, 18, 17, 10, 3,512, ZSTD_btultra }, /* level 18.*/ + { 17, 18, 17, 5, 3,256, ZSTD_btultra2}, /* level 19.*/ + { 17, 18, 17, 7, 3,512, ZSTD_btultra2}, /* level 20.*/ + { 17, 18, 17, 9, 3,512, ZSTD_btultra2}, /* level 21.*/ + { 17, 18, 17, 11, 3,999, ZSTD_btultra2}, /* level 22.*/ +}, +{ /* for srcSize <= 16 KB */ + /* W, C, H, S, L, T, strat */ + { 14, 12, 13, 1, 5, 1, ZSTD_fast }, /* base for negative levels */ + { 14, 14, 15, 1, 5, 0, ZSTD_fast }, /* level 1 */ + { 14, 14, 15, 1, 4, 0, ZSTD_fast }, /* level 2 */ + { 14, 14, 15, 2, 4, 0, ZSTD_dfast }, /* level 3 */ + { 14, 14, 14, 4, 4, 2, ZSTD_greedy }, /* level 4 */ + { 14, 14, 14, 3, 4, 4, ZSTD_lazy }, /* level 5.*/ + { 14, 14, 14, 4, 4, 8, ZSTD_lazy2 }, /* level 6 */ + { 14, 14, 14, 6, 4, 8, ZSTD_lazy2 }, /* level 7 */ + { 14, 14, 14, 8, 4, 8, ZSTD_lazy2 }, /* level 8.*/ + { 14, 15, 14, 5, 4, 8, ZSTD_btlazy2 }, /* level 9.*/ + { 14, 15, 14, 9, 4, 8, ZSTD_btlazy2 }, /* level 10.*/ + { 14, 15, 14, 3, 4, 12, ZSTD_btopt }, /* level 11.*/ + { 14, 15, 14, 4, 3, 24, ZSTD_btopt }, /* level 12.*/ + { 14, 15, 14, 5, 3, 32, ZSTD_btultra }, /* level 13.*/ + { 14, 15, 15, 6, 3, 64, ZSTD_btultra }, /* level 14.*/ + { 14, 15, 15, 7, 3,256, ZSTD_btultra }, /* level 15.*/ + { 14, 15, 15, 5, 3, 48, ZSTD_btultra2}, /* level 16.*/ + { 14, 15, 15, 6, 3,128, ZSTD_btultra2}, /* level 17.*/ + { 14, 15, 15, 7, 3,256, ZSTD_btultra2}, /* level 18.*/ + { 14, 15, 15, 8, 3,256, ZSTD_btultra2}, /* level 19.*/ + { 14, 15, 15, 8, 3,512, ZSTD_btultra2}, /* level 20.*/ + { 14, 15, 15, 9, 3,512, ZSTD_btultra2}, /* level 21.*/ + { 14, 15, 15, 10, 3,999, ZSTD_btultra2}, /* level 22.*/ +}, +}; + + + +#endif /* ZSTD_CLEVELS_H */ diff --git a/deps/zstd/lib/compress/fse_compress.c b/deps/zstd/lib/compress/fse_compress.c new file mode 100644 index 00000000000000..1ce3cf16ac10c0 --- /dev/null +++ b/deps/zstd/lib/compress/fse_compress.c @@ -0,0 +1,625 @@ +/* ****************************************************************** + * FSE : Finite State Entropy encoder + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * You can contact the author at : + * - FSE source repository : https://github.com/Cyan4973/FiniteStateEntropy + * - Public forum : https://groups.google.com/forum/#!forum/lz4c + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. +****************************************************************** */ + +/* ************************************************************** +* Includes +****************************************************************/ +#include "../common/compiler.h" +#include "../common/mem.h" /* U32, U16, etc. */ +#include "../common/debug.h" /* assert, DEBUGLOG */ +#include "hist.h" /* HIST_count_wksp */ +#include "../common/bitstream.h" +#define FSE_STATIC_LINKING_ONLY +#include "../common/fse.h" +#include "../common/error_private.h" +#define ZSTD_DEPS_NEED_MALLOC +#define ZSTD_DEPS_NEED_MATH64 +#include "../common/zstd_deps.h" /* ZSTD_memset */ +#include "../common/bits.h" /* ZSTD_highbit32 */ + + +/* ************************************************************** +* Error Management +****************************************************************/ +#define FSE_isError ERR_isError + + +/* ************************************************************** +* Templates +****************************************************************/ +/* + designed to be included + for type-specific functions (template emulation in C) + Objective is to write these functions only once, for improved maintenance +*/ + +/* safety checks */ +#ifndef FSE_FUNCTION_EXTENSION +# error "FSE_FUNCTION_EXTENSION must be defined" +#endif +#ifndef FSE_FUNCTION_TYPE +# error "FSE_FUNCTION_TYPE must be defined" +#endif + +/* Function names */ +#define FSE_CAT(X,Y) X##Y +#define FSE_FUNCTION_NAME(X,Y) FSE_CAT(X,Y) +#define FSE_TYPE_NAME(X,Y) FSE_CAT(X,Y) + + +/* Function templates */ + +/* FSE_buildCTable_wksp() : + * Same as FSE_buildCTable(), but using an externally allocated scratch buffer (`workSpace`). + * wkspSize should be sized to handle worst case situation, which is `1<>1 : 1) ; + FSE_symbolCompressionTransform* const symbolTT = (FSE_symbolCompressionTransform*) (FSCT); + U32 const step = FSE_TABLESTEP(tableSize); + U32 const maxSV1 = maxSymbolValue+1; + + U16* cumul = (U16*)workSpace; /* size = maxSV1 */ + FSE_FUNCTION_TYPE* const tableSymbol = (FSE_FUNCTION_TYPE*)(cumul + (maxSV1+1)); /* size = tableSize */ + + U32 highThreshold = tableSize-1; + + assert(((size_t)workSpace & 1) == 0); /* Must be 2 bytes-aligned */ + if (FSE_BUILD_CTABLE_WORKSPACE_SIZE(maxSymbolValue, tableLog) > wkspSize) return ERROR(tableLog_tooLarge); + /* CTable header */ + tableU16[-2] = (U16) tableLog; + tableU16[-1] = (U16) maxSymbolValue; + assert(tableLog < 16); /* required for threshold strategy to work */ + + /* For explanations on how to distribute symbol values over the table : + * https://fastcompression.blogspot.fr/2014/02/fse-distributing-symbol-values.html */ + + #ifdef __clang_analyzer__ + ZSTD_memset(tableSymbol, 0, sizeof(*tableSymbol) * tableSize); /* useless initialization, just to keep scan-build happy */ + #endif + + /* symbol start positions */ + { U32 u; + cumul[0] = 0; + for (u=1; u <= maxSV1; u++) { + if (normalizedCounter[u-1]==-1) { /* Low proba symbol */ + cumul[u] = cumul[u-1] + 1; + tableSymbol[highThreshold--] = (FSE_FUNCTION_TYPE)(u-1); + } else { + assert(normalizedCounter[u-1] >= 0); + cumul[u] = cumul[u-1] + (U16)normalizedCounter[u-1]; + assert(cumul[u] >= cumul[u-1]); /* no overflow */ + } } + cumul[maxSV1] = (U16)(tableSize+1); + } + + /* Spread symbols */ + if (highThreshold == tableSize - 1) { + /* Case for no low prob count symbols. Lay down 8 bytes at a time + * to reduce branch misses since we are operating on a small block + */ + BYTE* const spread = tableSymbol + tableSize; /* size = tableSize + 8 (may write beyond tableSize) */ + { U64 const add = 0x0101010101010101ull; + size_t pos = 0; + U64 sv = 0; + U32 s; + for (s=0; s=0); + pos += (size_t)n; + } + } + /* Spread symbols across the table. Lack of lowprob symbols means that + * we don't need variable sized inner loop, so we can unroll the loop and + * reduce branch misses. + */ + { size_t position = 0; + size_t s; + size_t const unroll = 2; /* Experimentally determined optimal unroll */ + assert(tableSize % unroll == 0); /* FSE_MIN_TABLELOG is 5 */ + for (s = 0; s < (size_t)tableSize; s += unroll) { + size_t u; + for (u = 0; u < unroll; ++u) { + size_t const uPosition = (position + (u * step)) & tableMask; + tableSymbol[uPosition] = spread[s + u]; + } + position = (position + (unroll * step)) & tableMask; + } + assert(position == 0); /* Must have initialized all positions */ + } + } else { + U32 position = 0; + U32 symbol; + for (symbol=0; symbol highThreshold) + position = (position + step) & tableMask; /* Low proba area */ + } } + assert(position==0); /* Must have initialized all positions */ + } + + /* Build table */ + { U32 u; for (u=0; u 1); + { U32 const maxBitsOut = tableLog - ZSTD_highbit32 ((U32)normalizedCounter[s]-1); + U32 const minStatePlus = (U32)normalizedCounter[s] << maxBitsOut; + symbolTT[s].deltaNbBits = (maxBitsOut << 16) - minStatePlus; + symbolTT[s].deltaFindState = (int)(total - (unsigned)normalizedCounter[s]); + total += (unsigned)normalizedCounter[s]; + } } } } + +#if 0 /* debug : symbol costs */ + DEBUGLOG(5, "\n --- table statistics : "); + { U32 symbol; + for (symbol=0; symbol<=maxSymbolValue; symbol++) { + DEBUGLOG(5, "%3u: w=%3i, maxBits=%u, fracBits=%.2f", + symbol, normalizedCounter[symbol], + FSE_getMaxNbBits(symbolTT, symbol), + (double)FSE_bitCost(symbolTT, tableLog, symbol, 8) / 256); + } } +#endif + + return 0; +} + + + +#ifndef FSE_COMMONDEFS_ONLY + +/*-************************************************************** +* FSE NCount encoding +****************************************************************/ +size_t FSE_NCountWriteBound(unsigned maxSymbolValue, unsigned tableLog) +{ + size_t const maxHeaderSize = (((maxSymbolValue+1) * tableLog + + 4 /* bitCount initialized at 4 */ + + 2 /* first two symbols may use one additional bit each */) / 8) + + 1 /* round up to whole nb bytes */ + + 2 /* additional two bytes for bitstream flush */; + return maxSymbolValue ? maxHeaderSize : FSE_NCOUNTBOUND; /* maxSymbolValue==0 ? use default */ +} + +static size_t +FSE_writeNCount_generic (void* header, size_t headerBufferSize, + const short* normalizedCounter, unsigned maxSymbolValue, unsigned tableLog, + unsigned writeIsSafe) +{ + BYTE* const ostart = (BYTE*) header; + BYTE* out = ostart; + BYTE* const oend = ostart + headerBufferSize; + int nbBits; + const int tableSize = 1 << tableLog; + int remaining; + int threshold; + U32 bitStream = 0; + int bitCount = 0; + unsigned symbol = 0; + unsigned const alphabetSize = maxSymbolValue + 1; + int previousIs0 = 0; + + /* Table Size */ + bitStream += (tableLog-FSE_MIN_TABLELOG) << bitCount; + bitCount += 4; + + /* Init */ + remaining = tableSize+1; /* +1 for extra accuracy */ + threshold = tableSize; + nbBits = (int)tableLog+1; + + while ((symbol < alphabetSize) && (remaining>1)) { /* stops at 1 */ + if (previousIs0) { + unsigned start = symbol; + while ((symbol < alphabetSize) && !normalizedCounter[symbol]) symbol++; + if (symbol == alphabetSize) break; /* incorrect distribution */ + while (symbol >= start+24) { + start+=24; + bitStream += 0xFFFFU << bitCount; + if ((!writeIsSafe) && (out > oend-2)) + return ERROR(dstSize_tooSmall); /* Buffer overflow */ + out[0] = (BYTE) bitStream; + out[1] = (BYTE)(bitStream>>8); + out+=2; + bitStream>>=16; + } + while (symbol >= start+3) { + start+=3; + bitStream += 3U << bitCount; + bitCount += 2; + } + bitStream += (symbol-start) << bitCount; + bitCount += 2; + if (bitCount>16) { + if ((!writeIsSafe) && (out > oend - 2)) + return ERROR(dstSize_tooSmall); /* Buffer overflow */ + out[0] = (BYTE)bitStream; + out[1] = (BYTE)(bitStream>>8); + out += 2; + bitStream >>= 16; + bitCount -= 16; + } } + { int count = normalizedCounter[symbol++]; + int const max = (2*threshold-1) - remaining; + remaining -= count < 0 ? -count : count; + count++; /* +1 for extra accuracy */ + if (count>=threshold) + count += max; /* [0..max[ [max..threshold[ (...) [threshold+max 2*threshold[ */ + bitStream += (U32)count << bitCount; + bitCount += nbBits; + bitCount -= (count>=1; } + } + if (bitCount>16) { + if ((!writeIsSafe) && (out > oend - 2)) + return ERROR(dstSize_tooSmall); /* Buffer overflow */ + out[0] = (BYTE)bitStream; + out[1] = (BYTE)(bitStream>>8); + out += 2; + bitStream >>= 16; + bitCount -= 16; + } } + + if (remaining != 1) + return ERROR(GENERIC); /* incorrect normalized distribution */ + assert(symbol <= alphabetSize); + + /* flush remaining bitStream */ + if ((!writeIsSafe) && (out > oend - 2)) + return ERROR(dstSize_tooSmall); /* Buffer overflow */ + out[0] = (BYTE)bitStream; + out[1] = (BYTE)(bitStream>>8); + out+= (bitCount+7) /8; + + assert(out >= ostart); + return (size_t)(out-ostart); +} + + +size_t FSE_writeNCount (void* buffer, size_t bufferSize, + const short* normalizedCounter, unsigned maxSymbolValue, unsigned tableLog) +{ + if (tableLog > FSE_MAX_TABLELOG) return ERROR(tableLog_tooLarge); /* Unsupported */ + if (tableLog < FSE_MIN_TABLELOG) return ERROR(GENERIC); /* Unsupported */ + + if (bufferSize < FSE_NCountWriteBound(maxSymbolValue, tableLog)) + return FSE_writeNCount_generic(buffer, bufferSize, normalizedCounter, maxSymbolValue, tableLog, 0); + + return FSE_writeNCount_generic(buffer, bufferSize, normalizedCounter, maxSymbolValue, tableLog, 1 /* write in buffer is safe */); +} + + +/*-************************************************************** +* FSE Compression Code +****************************************************************/ + +/* provides the minimum logSize to safely represent a distribution */ +static unsigned FSE_minTableLog(size_t srcSize, unsigned maxSymbolValue) +{ + U32 minBitsSrc = ZSTD_highbit32((U32)(srcSize)) + 1; + U32 minBitsSymbols = ZSTD_highbit32(maxSymbolValue) + 2; + U32 minBits = minBitsSrc < minBitsSymbols ? minBitsSrc : minBitsSymbols; + assert(srcSize > 1); /* Not supported, RLE should be used instead */ + return minBits; +} + +unsigned FSE_optimalTableLog_internal(unsigned maxTableLog, size_t srcSize, unsigned maxSymbolValue, unsigned minus) +{ + U32 maxBitsSrc = ZSTD_highbit32((U32)(srcSize - 1)) - minus; + U32 tableLog = maxTableLog; + U32 minBits = FSE_minTableLog(srcSize, maxSymbolValue); + assert(srcSize > 1); /* Not supported, RLE should be used instead */ + if (tableLog==0) tableLog = FSE_DEFAULT_TABLELOG; + if (maxBitsSrc < tableLog) tableLog = maxBitsSrc; /* Accuracy can be reduced */ + if (minBits > tableLog) tableLog = minBits; /* Need a minimum to safely represent all symbol values */ + if (tableLog < FSE_MIN_TABLELOG) tableLog = FSE_MIN_TABLELOG; + if (tableLog > FSE_MAX_TABLELOG) tableLog = FSE_MAX_TABLELOG; + return tableLog; +} + +unsigned FSE_optimalTableLog(unsigned maxTableLog, size_t srcSize, unsigned maxSymbolValue) +{ + return FSE_optimalTableLog_internal(maxTableLog, srcSize, maxSymbolValue, 2); +} + +/* Secondary normalization method. + To be used when primary method fails. */ + +static size_t FSE_normalizeM2(short* norm, U32 tableLog, const unsigned* count, size_t total, U32 maxSymbolValue, short lowProbCount) +{ + short const NOT_YET_ASSIGNED = -2; + U32 s; + U32 distributed = 0; + U32 ToDistribute; + + /* Init */ + U32 const lowThreshold = (U32)(total >> tableLog); + U32 lowOne = (U32)((total * 3) >> (tableLog + 1)); + + for (s=0; s<=maxSymbolValue; s++) { + if (count[s] == 0) { + norm[s]=0; + continue; + } + if (count[s] <= lowThreshold) { + norm[s] = lowProbCount; + distributed++; + total -= count[s]; + continue; + } + if (count[s] <= lowOne) { + norm[s] = 1; + distributed++; + total -= count[s]; + continue; + } + + norm[s]=NOT_YET_ASSIGNED; + } + ToDistribute = (1 << tableLog) - distributed; + + if (ToDistribute == 0) + return 0; + + if ((total / ToDistribute) > lowOne) { + /* risk of rounding to zero */ + lowOne = (U32)((total * 3) / (ToDistribute * 2)); + for (s=0; s<=maxSymbolValue; s++) { + if ((norm[s] == NOT_YET_ASSIGNED) && (count[s] <= lowOne)) { + norm[s] = 1; + distributed++; + total -= count[s]; + continue; + } } + ToDistribute = (1 << tableLog) - distributed; + } + + if (distributed == maxSymbolValue+1) { + /* all values are pretty poor; + probably incompressible data (should have already been detected); + find max, then give all remaining points to max */ + U32 maxV = 0, maxC = 0; + for (s=0; s<=maxSymbolValue; s++) + if (count[s] > maxC) { maxV=s; maxC=count[s]; } + norm[maxV] += (short)ToDistribute; + return 0; + } + + if (total == 0) { + /* all of the symbols were low enough for the lowOne or lowThreshold */ + for (s=0; ToDistribute > 0; s = (s+1)%(maxSymbolValue+1)) + if (norm[s] > 0) { ToDistribute--; norm[s]++; } + return 0; + } + + { U64 const vStepLog = 62 - tableLog; + U64 const mid = (1ULL << (vStepLog-1)) - 1; + U64 const rStep = ZSTD_div64((((U64)1<> vStepLog); + U32 const sEnd = (U32)(end >> vStepLog); + U32 const weight = sEnd - sStart; + if (weight < 1) + return ERROR(GENERIC); + norm[s] = (short)weight; + tmpTotal = end; + } } } + + return 0; +} + +size_t FSE_normalizeCount (short* normalizedCounter, unsigned tableLog, + const unsigned* count, size_t total, + unsigned maxSymbolValue, unsigned useLowProbCount) +{ + /* Sanity checks */ + if (tableLog==0) tableLog = FSE_DEFAULT_TABLELOG; + if (tableLog < FSE_MIN_TABLELOG) return ERROR(GENERIC); /* Unsupported size */ + if (tableLog > FSE_MAX_TABLELOG) return ERROR(tableLog_tooLarge); /* Unsupported size */ + if (tableLog < FSE_minTableLog(total, maxSymbolValue)) return ERROR(GENERIC); /* Too small tableLog, compression potentially impossible */ + + { static U32 const rtbTable[] = { 0, 473195, 504333, 520860, 550000, 700000, 750000, 830000 }; + short const lowProbCount = useLowProbCount ? -1 : 1; + U64 const scale = 62 - tableLog; + U64 const step = ZSTD_div64((U64)1<<62, (U32)total); /* <== here, one division ! */ + U64 const vStep = 1ULL<<(scale-20); + int stillToDistribute = 1<> tableLog); + + for (s=0; s<=maxSymbolValue; s++) { + if (count[s] == total) return 0; /* rle special case */ + if (count[s] == 0) { normalizedCounter[s]=0; continue; } + if (count[s] <= lowThreshold) { + normalizedCounter[s] = lowProbCount; + stillToDistribute--; + } else { + short proba = (short)((count[s]*step) >> scale); + if (proba<8) { + U64 restToBeat = vStep * rtbTable[proba]; + proba += (count[s]*step) - ((U64)proba< restToBeat; + } + if (proba > largestP) { largestP=proba; largest=s; } + normalizedCounter[s] = proba; + stillToDistribute -= proba; + } } + if (-stillToDistribute >= (normalizedCounter[largest] >> 1)) { + /* corner case, need another normalization method */ + size_t const errorCode = FSE_normalizeM2(normalizedCounter, tableLog, count, total, maxSymbolValue, lowProbCount); + if (FSE_isError(errorCode)) return errorCode; + } + else normalizedCounter[largest] += (short)stillToDistribute; + } + +#if 0 + { /* Print Table (debug) */ + U32 s; + U32 nTotal = 0; + for (s=0; s<=maxSymbolValue; s++) + RAWLOG(2, "%3i: %4i \n", s, normalizedCounter[s]); + for (s=0; s<=maxSymbolValue; s++) + nTotal += abs(normalizedCounter[s]); + if (nTotal != (1U< FSE_MAX_TABLELOG*4+7 ) && (srcSize & 2)) { /* test bit 2 */ + FSE_encodeSymbol(&bitC, &CState2, *--ip); + FSE_encodeSymbol(&bitC, &CState1, *--ip); + FSE_FLUSHBITS(&bitC); + } + + /* 2 or 4 encoding per loop */ + while ( ip>istart ) { + + FSE_encodeSymbol(&bitC, &CState2, *--ip); + + if (sizeof(bitC.bitContainer)*8 < FSE_MAX_TABLELOG*2+7 ) /* this test must be static */ + FSE_FLUSHBITS(&bitC); + + FSE_encodeSymbol(&bitC, &CState1, *--ip); + + if (sizeof(bitC.bitContainer)*8 > FSE_MAX_TABLELOG*4+7 ) { /* this test must be static */ + FSE_encodeSymbol(&bitC, &CState2, *--ip); + FSE_encodeSymbol(&bitC, &CState1, *--ip); + } + + FSE_FLUSHBITS(&bitC); + } + + FSE_flushCState(&bitC, &CState2); + FSE_flushCState(&bitC, &CState1); + return BIT_closeCStream(&bitC); +} + +size_t FSE_compress_usingCTable (void* dst, size_t dstSize, + const void* src, size_t srcSize, + const FSE_CTable* ct) +{ + unsigned const fast = (dstSize >= FSE_BLOCKBOUND(srcSize)); + + if (fast) + return FSE_compress_usingCTable_generic(dst, dstSize, src, srcSize, ct, 1); + else + return FSE_compress_usingCTable_generic(dst, dstSize, src, srcSize, ct, 0); +} + + +size_t FSE_compressBound(size_t size) { return FSE_COMPRESSBOUND(size); } + +#endif /* FSE_COMMONDEFS_ONLY */ diff --git a/deps/zstd/lib/compress/hist.c b/deps/zstd/lib/compress/hist.c new file mode 100644 index 00000000000000..e2fb431f03ab52 --- /dev/null +++ b/deps/zstd/lib/compress/hist.c @@ -0,0 +1,181 @@ +/* ****************************************************************** + * hist : Histogram functions + * part of Finite State Entropy project + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * You can contact the author at : + * - FSE source repository : https://github.com/Cyan4973/FiniteStateEntropy + * - Public forum : https://groups.google.com/forum/#!forum/lz4c + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. +****************************************************************** */ + +/* --- dependencies --- */ +#include "../common/mem.h" /* U32, BYTE, etc. */ +#include "../common/debug.h" /* assert, DEBUGLOG */ +#include "../common/error_private.h" /* ERROR */ +#include "hist.h" + + +/* --- Error management --- */ +unsigned HIST_isError(size_t code) { return ERR_isError(code); } + +/*-************************************************************** + * Histogram functions + ****************************************************************/ +unsigned HIST_count_simple(unsigned* count, unsigned* maxSymbolValuePtr, + const void* src, size_t srcSize) +{ + const BYTE* ip = (const BYTE*)src; + const BYTE* const end = ip + srcSize; + unsigned maxSymbolValue = *maxSymbolValuePtr; + unsigned largestCount=0; + + ZSTD_memset(count, 0, (maxSymbolValue+1) * sizeof(*count)); + if (srcSize==0) { *maxSymbolValuePtr = 0; return 0; } + + while (ip largestCount) largestCount = count[s]; + } + + return largestCount; +} + +typedef enum { trustInput, checkMaxSymbolValue } HIST_checkInput_e; + +/* HIST_count_parallel_wksp() : + * store histogram into 4 intermediate tables, recombined at the end. + * this design makes better use of OoO cpus, + * and is noticeably faster when some values are heavily repeated. + * But it needs some additional workspace for intermediate tables. + * `workSpace` must be a U32 table of size >= HIST_WKSP_SIZE_U32. + * @return : largest histogram frequency, + * or an error code (notably when histogram's alphabet is larger than *maxSymbolValuePtr) */ +static size_t HIST_count_parallel_wksp( + unsigned* count, unsigned* maxSymbolValuePtr, + const void* source, size_t sourceSize, + HIST_checkInput_e check, + U32* const workSpace) +{ + const BYTE* ip = (const BYTE*)source; + const BYTE* const iend = ip+sourceSize; + size_t const countSize = (*maxSymbolValuePtr + 1) * sizeof(*count); + unsigned max=0; + U32* const Counting1 = workSpace; + U32* const Counting2 = Counting1 + 256; + U32* const Counting3 = Counting2 + 256; + U32* const Counting4 = Counting3 + 256; + + /* safety checks */ + assert(*maxSymbolValuePtr <= 255); + if (!sourceSize) { + ZSTD_memset(count, 0, countSize); + *maxSymbolValuePtr = 0; + return 0; + } + ZSTD_memset(workSpace, 0, 4*256*sizeof(unsigned)); + + /* by stripes of 16 bytes */ + { U32 cached = MEM_read32(ip); ip += 4; + while (ip < iend-15) { + U32 c = cached; cached = MEM_read32(ip); ip += 4; + Counting1[(BYTE) c ]++; + Counting2[(BYTE)(c>>8) ]++; + Counting3[(BYTE)(c>>16)]++; + Counting4[ c>>24 ]++; + c = cached; cached = MEM_read32(ip); ip += 4; + Counting1[(BYTE) c ]++; + Counting2[(BYTE)(c>>8) ]++; + Counting3[(BYTE)(c>>16)]++; + Counting4[ c>>24 ]++; + c = cached; cached = MEM_read32(ip); ip += 4; + Counting1[(BYTE) c ]++; + Counting2[(BYTE)(c>>8) ]++; + Counting3[(BYTE)(c>>16)]++; + Counting4[ c>>24 ]++; + c = cached; cached = MEM_read32(ip); ip += 4; + Counting1[(BYTE) c ]++; + Counting2[(BYTE)(c>>8) ]++; + Counting3[(BYTE)(c>>16)]++; + Counting4[ c>>24 ]++; + } + ip-=4; + } + + /* finish last symbols */ + while (ip max) max = Counting1[s]; + } } + + { unsigned maxSymbolValue = 255; + while (!Counting1[maxSymbolValue]) maxSymbolValue--; + if (check && maxSymbolValue > *maxSymbolValuePtr) return ERROR(maxSymbolValue_tooSmall); + *maxSymbolValuePtr = maxSymbolValue; + ZSTD_memmove(count, Counting1, countSize); /* in case count & Counting1 are overlapping */ + } + return (size_t)max; +} + +/* HIST_countFast_wksp() : + * Same as HIST_countFast(), but using an externally provided scratch buffer. + * `workSpace` is a writable buffer which must be 4-bytes aligned, + * `workSpaceSize` must be >= HIST_WKSP_SIZE + */ +size_t HIST_countFast_wksp(unsigned* count, unsigned* maxSymbolValuePtr, + const void* source, size_t sourceSize, + void* workSpace, size_t workSpaceSize) +{ + if (sourceSize < 1500) /* heuristic threshold */ + return HIST_count_simple(count, maxSymbolValuePtr, source, sourceSize); + if ((size_t)workSpace & 3) return ERROR(GENERIC); /* must be aligned on 4-bytes boundaries */ + if (workSpaceSize < HIST_WKSP_SIZE) return ERROR(workSpace_tooSmall); + return HIST_count_parallel_wksp(count, maxSymbolValuePtr, source, sourceSize, trustInput, (U32*)workSpace); +} + +/* HIST_count_wksp() : + * Same as HIST_count(), but using an externally provided scratch buffer. + * `workSpace` size must be table of >= HIST_WKSP_SIZE_U32 unsigned */ +size_t HIST_count_wksp(unsigned* count, unsigned* maxSymbolValuePtr, + const void* source, size_t sourceSize, + void* workSpace, size_t workSpaceSize) +{ + if ((size_t)workSpace & 3) return ERROR(GENERIC); /* must be aligned on 4-bytes boundaries */ + if (workSpaceSize < HIST_WKSP_SIZE) return ERROR(workSpace_tooSmall); + if (*maxSymbolValuePtr < 255) + return HIST_count_parallel_wksp(count, maxSymbolValuePtr, source, sourceSize, checkMaxSymbolValue, (U32*)workSpace); + *maxSymbolValuePtr = 255; + return HIST_countFast_wksp(count, maxSymbolValuePtr, source, sourceSize, workSpace, workSpaceSize); +} + +#ifndef ZSTD_NO_UNUSED_FUNCTIONS +/* fast variant (unsafe : won't check if src contains values beyond count[] limit) */ +size_t HIST_countFast(unsigned* count, unsigned* maxSymbolValuePtr, + const void* source, size_t sourceSize) +{ + unsigned tmpCounters[HIST_WKSP_SIZE_U32]; + return HIST_countFast_wksp(count, maxSymbolValuePtr, source, sourceSize, tmpCounters, sizeof(tmpCounters)); +} + +size_t HIST_count(unsigned* count, unsigned* maxSymbolValuePtr, + const void* src, size_t srcSize) +{ + unsigned tmpCounters[HIST_WKSP_SIZE_U32]; + return HIST_count_wksp(count, maxSymbolValuePtr, src, srcSize, tmpCounters, sizeof(tmpCounters)); +} +#endif diff --git a/deps/zstd/lib/compress/hist.h b/deps/zstd/lib/compress/hist.h new file mode 100644 index 00000000000000..887896b813bc3b --- /dev/null +++ b/deps/zstd/lib/compress/hist.h @@ -0,0 +1,75 @@ +/* ****************************************************************** + * hist : Histogram functions + * part of Finite State Entropy project + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * You can contact the author at : + * - FSE source repository : https://github.com/Cyan4973/FiniteStateEntropy + * - Public forum : https://groups.google.com/forum/#!forum/lz4c + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. +****************************************************************** */ + +/* --- dependencies --- */ +#include "../common/zstd_deps.h" /* size_t */ + + +/* --- simple histogram functions --- */ + +/*! HIST_count(): + * Provides the precise count of each byte within a table 'count'. + * 'count' is a table of unsigned int, of minimum size (*maxSymbolValuePtr+1). + * Updates *maxSymbolValuePtr with actual largest symbol value detected. + * @return : count of the most frequent symbol (which isn't identified). + * or an error code, which can be tested using HIST_isError(). + * note : if return == srcSize, there is only one symbol. + */ +size_t HIST_count(unsigned* count, unsigned* maxSymbolValuePtr, + const void* src, size_t srcSize); + +unsigned HIST_isError(size_t code); /**< tells if a return value is an error code */ + + +/* --- advanced histogram functions --- */ + +#define HIST_WKSP_SIZE_U32 1024 +#define HIST_WKSP_SIZE (HIST_WKSP_SIZE_U32 * sizeof(unsigned)) +/** HIST_count_wksp() : + * Same as HIST_count(), but using an externally provided scratch buffer. + * Benefit is this function will use very little stack space. + * `workSpace` is a writable buffer which must be 4-bytes aligned, + * `workSpaceSize` must be >= HIST_WKSP_SIZE + */ +size_t HIST_count_wksp(unsigned* count, unsigned* maxSymbolValuePtr, + const void* src, size_t srcSize, + void* workSpace, size_t workSpaceSize); + +/** HIST_countFast() : + * same as HIST_count(), but blindly trusts that all byte values within src are <= *maxSymbolValuePtr. + * This function is unsafe, and will segfault if any value within `src` is `> *maxSymbolValuePtr` + */ +size_t HIST_countFast(unsigned* count, unsigned* maxSymbolValuePtr, + const void* src, size_t srcSize); + +/** HIST_countFast_wksp() : + * Same as HIST_countFast(), but using an externally provided scratch buffer. + * `workSpace` is a writable buffer which must be 4-bytes aligned, + * `workSpaceSize` must be >= HIST_WKSP_SIZE + */ +size_t HIST_countFast_wksp(unsigned* count, unsigned* maxSymbolValuePtr, + const void* src, size_t srcSize, + void* workSpace, size_t workSpaceSize); + +/*! HIST_count_simple() : + * Same as HIST_countFast(), this function is unsafe, + * and will segfault if any value within `src` is `> *maxSymbolValuePtr`. + * It is also a bit slower for large inputs. + * However, it does not need any additional memory (not even on stack). + * @return : count of the most frequent symbol. + * Note this function doesn't produce any error (i.e. it must succeed). + */ +unsigned HIST_count_simple(unsigned* count, unsigned* maxSymbolValuePtr, + const void* src, size_t srcSize); diff --git a/deps/zstd/lib/compress/huf_compress.c b/deps/zstd/lib/compress/huf_compress.c new file mode 100644 index 00000000000000..ea000723209f97 --- /dev/null +++ b/deps/zstd/lib/compress/huf_compress.c @@ -0,0 +1,1464 @@ +/* ****************************************************************** + * Huffman encoder, part of New Generation Entropy library + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * You can contact the author at : + * - FSE+HUF source repository : https://github.com/Cyan4973/FiniteStateEntropy + * - Public forum : https://groups.google.com/forum/#!forum/lz4c + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. +****************************************************************** */ + +/* ************************************************************** +* Compiler specifics +****************************************************************/ +#ifdef _MSC_VER /* Visual Studio */ +# pragma warning(disable : 4127) /* disable: C4127: conditional expression is constant */ +#endif + + +/* ************************************************************** +* Includes +****************************************************************/ +#include "../common/zstd_deps.h" /* ZSTD_memcpy, ZSTD_memset */ +#include "../common/compiler.h" +#include "../common/bitstream.h" +#include "hist.h" +#define FSE_STATIC_LINKING_ONLY /* FSE_optimalTableLog_internal */ +#include "../common/fse.h" /* header compression */ +#include "../common/huf.h" +#include "../common/error_private.h" +#include "../common/bits.h" /* ZSTD_highbit32 */ + + +/* ************************************************************** +* Error Management +****************************************************************/ +#define HUF_isError ERR_isError +#define HUF_STATIC_ASSERT(c) DEBUG_STATIC_ASSERT(c) /* use only *after* variable declarations */ + + +/* ************************************************************** +* Required declarations +****************************************************************/ +typedef struct nodeElt_s { + U32 count; + U16 parent; + BYTE byte; + BYTE nbBits; +} nodeElt; + + +/* ************************************************************** +* Debug Traces +****************************************************************/ + +#if DEBUGLEVEL >= 2 + +static size_t showU32(const U32* arr, size_t size) +{ + size_t u; + for (u=0; u= add) { + assert(add < align); + assert(((size_t)aligned & mask) == 0); + *workspaceSizePtr -= add; + return aligned; + } else { + *workspaceSizePtr = 0; + return NULL; + } +} + + +/* HUF_compressWeights() : + * Same as FSE_compress(), but dedicated to huff0's weights compression. + * The use case needs much less stack memory. + * Note : all elements within weightTable are supposed to be <= HUF_TABLELOG_MAX. + */ +#define MAX_FSE_TABLELOG_FOR_HUFF_HEADER 6 + +typedef struct { + FSE_CTable CTable[FSE_CTABLE_SIZE_U32(MAX_FSE_TABLELOG_FOR_HUFF_HEADER, HUF_TABLELOG_MAX)]; + U32 scratchBuffer[FSE_BUILD_CTABLE_WORKSPACE_SIZE_U32(HUF_TABLELOG_MAX, MAX_FSE_TABLELOG_FOR_HUFF_HEADER)]; + unsigned count[HUF_TABLELOG_MAX+1]; + S16 norm[HUF_TABLELOG_MAX+1]; +} HUF_CompressWeightsWksp; + +static size_t +HUF_compressWeights(void* dst, size_t dstSize, + const void* weightTable, size_t wtSize, + void* workspace, size_t workspaceSize) +{ + BYTE* const ostart = (BYTE*) dst; + BYTE* op = ostart; + BYTE* const oend = ostart + dstSize; + + unsigned maxSymbolValue = HUF_TABLELOG_MAX; + U32 tableLog = MAX_FSE_TABLELOG_FOR_HUFF_HEADER; + HUF_CompressWeightsWksp* wksp = (HUF_CompressWeightsWksp*)HUF_alignUpWorkspace(workspace, &workspaceSize, ZSTD_ALIGNOF(U32)); + + if (workspaceSize < sizeof(HUF_CompressWeightsWksp)) return ERROR(GENERIC); + + /* init conditions */ + if (wtSize <= 1) return 0; /* Not compressible */ + + /* Scan input and build symbol stats */ + { unsigned const maxCount = HIST_count_simple(wksp->count, &maxSymbolValue, weightTable, wtSize); /* never fails */ + if (maxCount == wtSize) return 1; /* only a single symbol in src : rle */ + if (maxCount == 1) return 0; /* each symbol present maximum once => not compressible */ + } + + tableLog = FSE_optimalTableLog(tableLog, wtSize, maxSymbolValue); + CHECK_F( FSE_normalizeCount(wksp->norm, tableLog, wksp->count, wtSize, maxSymbolValue, /* useLowProbCount */ 0) ); + + /* Write table description header */ + { CHECK_V_F(hSize, FSE_writeNCount(op, (size_t)(oend-op), wksp->norm, maxSymbolValue, tableLog) ); + op += hSize; + } + + /* Compress */ + CHECK_F( FSE_buildCTable_wksp(wksp->CTable, wksp->norm, maxSymbolValue, tableLog, wksp->scratchBuffer, sizeof(wksp->scratchBuffer)) ); + { CHECK_V_F(cSize, FSE_compress_usingCTable(op, (size_t)(oend - op), weightTable, wtSize, wksp->CTable) ); + if (cSize == 0) return 0; /* not enough space for compressed data */ + op += cSize; + } + + return (size_t)(op-ostart); +} + +static size_t HUF_getNbBits(HUF_CElt elt) +{ + return elt & 0xFF; +} + +static size_t HUF_getNbBitsFast(HUF_CElt elt) +{ + return elt; +} + +static size_t HUF_getValue(HUF_CElt elt) +{ + return elt & ~(size_t)0xFF; +} + +static size_t HUF_getValueFast(HUF_CElt elt) +{ + return elt; +} + +static void HUF_setNbBits(HUF_CElt* elt, size_t nbBits) +{ + assert(nbBits <= HUF_TABLELOG_ABSOLUTEMAX); + *elt = nbBits; +} + +static void HUF_setValue(HUF_CElt* elt, size_t value) +{ + size_t const nbBits = HUF_getNbBits(*elt); + if (nbBits > 0) { + assert((value >> nbBits) == 0); + *elt |= value << (sizeof(HUF_CElt) * 8 - nbBits); + } +} + +HUF_CTableHeader HUF_readCTableHeader(HUF_CElt const* ctable) +{ + HUF_CTableHeader header; + ZSTD_memcpy(&header, ctable, sizeof(header)); + return header; +} + +static void HUF_writeCTableHeader(HUF_CElt* ctable, U32 tableLog, U32 maxSymbolValue) +{ + HUF_CTableHeader header; + HUF_STATIC_ASSERT(sizeof(ctable[0]) == sizeof(header)); + ZSTD_memset(&header, 0, sizeof(header)); + assert(tableLog < 256); + header.tableLog = (BYTE)tableLog; + assert(maxSymbolValue < 256); + header.maxSymbolValue = (BYTE)maxSymbolValue; + ZSTD_memcpy(ctable, &header, sizeof(header)); +} + +typedef struct { + HUF_CompressWeightsWksp wksp; + BYTE bitsToWeight[HUF_TABLELOG_MAX + 1]; /* precomputed conversion table */ + BYTE huffWeight[HUF_SYMBOLVALUE_MAX]; +} HUF_WriteCTableWksp; + +size_t HUF_writeCTable_wksp(void* dst, size_t maxDstSize, + const HUF_CElt* CTable, unsigned maxSymbolValue, unsigned huffLog, + void* workspace, size_t workspaceSize) +{ + HUF_CElt const* const ct = CTable + 1; + BYTE* op = (BYTE*)dst; + U32 n; + HUF_WriteCTableWksp* wksp = (HUF_WriteCTableWksp*)HUF_alignUpWorkspace(workspace, &workspaceSize, ZSTD_ALIGNOF(U32)); + + HUF_STATIC_ASSERT(HUF_CTABLE_WORKSPACE_SIZE >= sizeof(HUF_WriteCTableWksp)); + + assert(HUF_readCTableHeader(CTable).maxSymbolValue == maxSymbolValue); + assert(HUF_readCTableHeader(CTable).tableLog == huffLog); + + /* check conditions */ + if (workspaceSize < sizeof(HUF_WriteCTableWksp)) return ERROR(GENERIC); + if (maxSymbolValue > HUF_SYMBOLVALUE_MAX) return ERROR(maxSymbolValue_tooLarge); + + /* convert to weight */ + wksp->bitsToWeight[0] = 0; + for (n=1; nbitsToWeight[n] = (BYTE)(huffLog + 1 - n); + for (n=0; nhuffWeight[n] = wksp->bitsToWeight[HUF_getNbBits(ct[n])]; + + /* attempt weights compression by FSE */ + if (maxDstSize < 1) return ERROR(dstSize_tooSmall); + { CHECK_V_F(hSize, HUF_compressWeights(op+1, maxDstSize-1, wksp->huffWeight, maxSymbolValue, &wksp->wksp, sizeof(wksp->wksp)) ); + if ((hSize>1) & (hSize < maxSymbolValue/2)) { /* FSE compressed */ + op[0] = (BYTE)hSize; + return hSize+1; + } } + + /* write raw values as 4-bits (max : 15) */ + if (maxSymbolValue > (256-128)) return ERROR(GENERIC); /* should not happen : likely means source cannot be compressed */ + if (((maxSymbolValue+1)/2) + 1 > maxDstSize) return ERROR(dstSize_tooSmall); /* not enough space within dst buffer */ + op[0] = (BYTE)(128 /*special case*/ + (maxSymbolValue-1)); + wksp->huffWeight[maxSymbolValue] = 0; /* to be sure it doesn't cause msan issue in final combination */ + for (n=0; nhuffWeight[n] << 4) + wksp->huffWeight[n+1]); + return ((maxSymbolValue+1)/2) + 1; +} + + +size_t HUF_readCTable (HUF_CElt* CTable, unsigned* maxSymbolValuePtr, const void* src, size_t srcSize, unsigned* hasZeroWeights) +{ + BYTE huffWeight[HUF_SYMBOLVALUE_MAX + 1]; /* init not required, even though some static analyzer may complain */ + U32 rankVal[HUF_TABLELOG_ABSOLUTEMAX + 1]; /* large enough for values from 0 to 16 */ + U32 tableLog = 0; + U32 nbSymbols = 0; + HUF_CElt* const ct = CTable + 1; + + /* get symbol weights */ + CHECK_V_F(readSize, HUF_readStats(huffWeight, HUF_SYMBOLVALUE_MAX+1, rankVal, &nbSymbols, &tableLog, src, srcSize)); + *hasZeroWeights = (rankVal[0] > 0); + + /* check result */ + if (tableLog > HUF_TABLELOG_MAX) return ERROR(tableLog_tooLarge); + if (nbSymbols > *maxSymbolValuePtr+1) return ERROR(maxSymbolValue_tooSmall); + + *maxSymbolValuePtr = nbSymbols - 1; + + HUF_writeCTableHeader(CTable, tableLog, *maxSymbolValuePtr); + + /* Prepare base value per rank */ + { U32 n, nextRankStart = 0; + for (n=1; n<=tableLog; n++) { + U32 curr = nextRankStart; + nextRankStart += (rankVal[n] << (n-1)); + rankVal[n] = curr; + } } + + /* fill nbBits */ + { U32 n; for (n=0; nn=tableLog+1 */ + U16 valPerRank[HUF_TABLELOG_MAX+2] = {0}; + { U32 n; for (n=0; n0; n--) { /* start at n=tablelog <-> w=1 */ + valPerRank[n] = min; /* get starting value within each rank */ + min += nbPerRank[n]; + min >>= 1; + } } + /* assign value within rank, symbol order */ + { U32 n; for (n=0; n HUF_readCTableHeader(CTable).maxSymbolValue) + return 0; + return (U32)HUF_getNbBits(ct[symbolValue]); +} + + +/** + * HUF_setMaxHeight(): + * Try to enforce @targetNbBits on the Huffman tree described in @huffNode. + * + * It attempts to convert all nodes with nbBits > @targetNbBits + * to employ @targetNbBits instead. Then it adjusts the tree + * so that it remains a valid canonical Huffman tree. + * + * @pre The sum of the ranks of each symbol == 2^largestBits, + * where largestBits == huffNode[lastNonNull].nbBits. + * @post The sum of the ranks of each symbol == 2^largestBits, + * where largestBits is the return value (expected <= targetNbBits). + * + * @param huffNode The Huffman tree modified in place to enforce targetNbBits. + * It's presumed sorted, from most frequent to rarest symbol. + * @param lastNonNull The symbol with the lowest count in the Huffman tree. + * @param targetNbBits The allowed number of bits, which the Huffman tree + * may not respect. After this function the Huffman tree will + * respect targetNbBits. + * @return The maximum number of bits of the Huffman tree after adjustment. + */ +static U32 HUF_setMaxHeight(nodeElt* huffNode, U32 lastNonNull, U32 targetNbBits) +{ + const U32 largestBits = huffNode[lastNonNull].nbBits; + /* early exit : no elt > targetNbBits, so the tree is already valid. */ + if (largestBits <= targetNbBits) return largestBits; + + DEBUGLOG(5, "HUF_setMaxHeight (targetNbBits = %u)", targetNbBits); + + /* there are several too large elements (at least >= 2) */ + { int totalCost = 0; + const U32 baseCost = 1 << (largestBits - targetNbBits); + int n = (int)lastNonNull; + + /* Adjust any ranks > targetNbBits to targetNbBits. + * Compute totalCost, which is how far the sum of the ranks is + * we are over 2^largestBits after adjust the offending ranks. + */ + while (huffNode[n].nbBits > targetNbBits) { + totalCost += baseCost - (1 << (largestBits - huffNode[n].nbBits)); + huffNode[n].nbBits = (BYTE)targetNbBits; + n--; + } + /* n stops at huffNode[n].nbBits <= targetNbBits */ + assert(huffNode[n].nbBits <= targetNbBits); + /* n end at index of smallest symbol using < targetNbBits */ + while (huffNode[n].nbBits == targetNbBits) --n; + + /* renorm totalCost from 2^largestBits to 2^targetNbBits + * note : totalCost is necessarily a multiple of baseCost */ + assert(((U32)totalCost & (baseCost - 1)) == 0); + totalCost >>= (largestBits - targetNbBits); + assert(totalCost > 0); + + /* repay normalized cost */ + { U32 const noSymbol = 0xF0F0F0F0; + U32 rankLast[HUF_TABLELOG_MAX+2]; + + /* Get pos of last (smallest = lowest cum. count) symbol per rank */ + ZSTD_memset(rankLast, 0xF0, sizeof(rankLast)); + { U32 currentNbBits = targetNbBits; + int pos; + for (pos=n ; pos >= 0; pos--) { + if (huffNode[pos].nbBits >= currentNbBits) continue; + currentNbBits = huffNode[pos].nbBits; /* < targetNbBits */ + rankLast[targetNbBits-currentNbBits] = (U32)pos; + } } + + while (totalCost > 0) { + /* Try to reduce the next power of 2 above totalCost because we + * gain back half the rank. + */ + U32 nBitsToDecrease = ZSTD_highbit32((U32)totalCost) + 1; + for ( ; nBitsToDecrease > 1; nBitsToDecrease--) { + U32 const highPos = rankLast[nBitsToDecrease]; + U32 const lowPos = rankLast[nBitsToDecrease-1]; + if (highPos == noSymbol) continue; + /* Decrease highPos if no symbols of lowPos or if it is + * not cheaper to remove 2 lowPos than highPos. + */ + if (lowPos == noSymbol) break; + { U32 const highTotal = huffNode[highPos].count; + U32 const lowTotal = 2 * huffNode[lowPos].count; + if (highTotal <= lowTotal) break; + } } + /* only triggered when no more rank 1 symbol left => find closest one (note : there is necessarily at least one !) */ + assert(rankLast[nBitsToDecrease] != noSymbol || nBitsToDecrease == 1); + /* HUF_MAX_TABLELOG test just to please gcc 5+; but it should not be necessary */ + while ((nBitsToDecrease<=HUF_TABLELOG_MAX) && (rankLast[nBitsToDecrease] == noSymbol)) + nBitsToDecrease++; + assert(rankLast[nBitsToDecrease] != noSymbol); + /* Increase the number of bits to gain back half the rank cost. */ + totalCost -= 1 << (nBitsToDecrease-1); + huffNode[rankLast[nBitsToDecrease]].nbBits++; + + /* Fix up the new rank. + * If the new rank was empty, this symbol is now its smallest. + * Otherwise, this symbol will be the largest in the new rank so no adjustment. + */ + if (rankLast[nBitsToDecrease-1] == noSymbol) + rankLast[nBitsToDecrease-1] = rankLast[nBitsToDecrease]; + /* Fix up the old rank. + * If the symbol was at position 0, meaning it was the highest weight symbol in the tree, + * it must be the only symbol in its rank, so the old rank now has no symbols. + * Otherwise, since the Huffman nodes are sorted by count, the previous position is now + * the smallest node in the rank. If the previous position belongs to a different rank, + * then the rank is now empty. + */ + if (rankLast[nBitsToDecrease] == 0) /* special case, reached largest symbol */ + rankLast[nBitsToDecrease] = noSymbol; + else { + rankLast[nBitsToDecrease]--; + if (huffNode[rankLast[nBitsToDecrease]].nbBits != targetNbBits-nBitsToDecrease) + rankLast[nBitsToDecrease] = noSymbol; /* this rank is now empty */ + } + } /* while (totalCost > 0) */ + + /* If we've removed too much weight, then we have to add it back. + * To avoid overshooting again, we only adjust the smallest rank. + * We take the largest nodes from the lowest rank 0 and move them + * to rank 1. There's guaranteed to be enough rank 0 symbols because + * TODO. + */ + while (totalCost < 0) { /* Sometimes, cost correction overshoot */ + /* special case : no rank 1 symbol (using targetNbBits-1); + * let's create one from largest rank 0 (using targetNbBits). + */ + if (rankLast[1] == noSymbol) { + while (huffNode[n].nbBits == targetNbBits) n--; + huffNode[n+1].nbBits--; + assert(n >= 0); + rankLast[1] = (U32)(n+1); + totalCost++; + continue; + } + huffNode[ rankLast[1] + 1 ].nbBits--; + rankLast[1]++; + totalCost ++; + } + } /* repay normalized cost */ + } /* there are several too large elements (at least >= 2) */ + + return targetNbBits; +} + +typedef struct { + U16 base; + U16 curr; +} rankPos; + +typedef nodeElt huffNodeTable[2 * (HUF_SYMBOLVALUE_MAX + 1)]; + +/* Number of buckets available for HUF_sort() */ +#define RANK_POSITION_TABLE_SIZE 192 + +typedef struct { + huffNodeTable huffNodeTbl; + rankPos rankPosition[RANK_POSITION_TABLE_SIZE]; +} HUF_buildCTable_wksp_tables; + +/* RANK_POSITION_DISTINCT_COUNT_CUTOFF == Cutoff point in HUF_sort() buckets for which we use log2 bucketing. + * Strategy is to use as many buckets as possible for representing distinct + * counts while using the remainder to represent all "large" counts. + * + * To satisfy this requirement for 192 buckets, we can do the following: + * Let buckets 0-166 represent distinct counts of [0, 166] + * Let buckets 166 to 192 represent all remaining counts up to RANK_POSITION_MAX_COUNT_LOG using log2 bucketing. + */ +#define RANK_POSITION_MAX_COUNT_LOG 32 +#define RANK_POSITION_LOG_BUCKETS_BEGIN ((RANK_POSITION_TABLE_SIZE - 1) - RANK_POSITION_MAX_COUNT_LOG - 1 /* == 158 */) +#define RANK_POSITION_DISTINCT_COUNT_CUTOFF (RANK_POSITION_LOG_BUCKETS_BEGIN + ZSTD_highbit32(RANK_POSITION_LOG_BUCKETS_BEGIN) /* == 166 */) + +/* Return the appropriate bucket index for a given count. See definition of + * RANK_POSITION_DISTINCT_COUNT_CUTOFF for explanation of bucketing strategy. + */ +static U32 HUF_getIndex(U32 const count) { + return (count < RANK_POSITION_DISTINCT_COUNT_CUTOFF) + ? count + : ZSTD_highbit32(count) + RANK_POSITION_LOG_BUCKETS_BEGIN; +} + +/* Helper swap function for HUF_quickSortPartition() */ +static void HUF_swapNodes(nodeElt* a, nodeElt* b) { + nodeElt tmp = *a; + *a = *b; + *b = tmp; +} + +/* Returns 0 if the huffNode array is not sorted by descending count */ +MEM_STATIC int HUF_isSorted(nodeElt huffNode[], U32 const maxSymbolValue1) { + U32 i; + for (i = 1; i < maxSymbolValue1; ++i) { + if (huffNode[i].count > huffNode[i-1].count) { + return 0; + } + } + return 1; +} + +/* Insertion sort by descending order */ +HINT_INLINE void HUF_insertionSort(nodeElt huffNode[], int const low, int const high) { + int i; + int const size = high-low+1; + huffNode += low; + for (i = 1; i < size; ++i) { + nodeElt const key = huffNode[i]; + int j = i - 1; + while (j >= 0 && huffNode[j].count < key.count) { + huffNode[j + 1] = huffNode[j]; + j--; + } + huffNode[j + 1] = key; + } +} + +/* Pivot helper function for quicksort. */ +static int HUF_quickSortPartition(nodeElt arr[], int const low, int const high) { + /* Simply select rightmost element as pivot. "Better" selectors like + * median-of-three don't experimentally appear to have any benefit. + */ + U32 const pivot = arr[high].count; + int i = low - 1; + int j = low; + for ( ; j < high; j++) { + if (arr[j].count > pivot) { + i++; + HUF_swapNodes(&arr[i], &arr[j]); + } + } + HUF_swapNodes(&arr[i + 1], &arr[high]); + return i + 1; +} + +/* Classic quicksort by descending with partially iterative calls + * to reduce worst case callstack size. + */ +static void HUF_simpleQuickSort(nodeElt arr[], int low, int high) { + int const kInsertionSortThreshold = 8; + if (high - low < kInsertionSortThreshold) { + HUF_insertionSort(arr, low, high); + return; + } + while (low < high) { + int const idx = HUF_quickSortPartition(arr, low, high); + if (idx - low < high - idx) { + HUF_simpleQuickSort(arr, low, idx - 1); + low = idx + 1; + } else { + HUF_simpleQuickSort(arr, idx + 1, high); + high = idx - 1; + } + } +} + +/** + * HUF_sort(): + * Sorts the symbols [0, maxSymbolValue] by count[symbol] in decreasing order. + * This is a typical bucket sorting strategy that uses either quicksort or insertion sort to sort each bucket. + * + * @param[out] huffNode Sorted symbols by decreasing count. Only members `.count` and `.byte` are filled. + * Must have (maxSymbolValue + 1) entries. + * @param[in] count Histogram of the symbols. + * @param[in] maxSymbolValue Maximum symbol value. + * @param rankPosition This is a scratch workspace. Must have RANK_POSITION_TABLE_SIZE entries. + */ +static void HUF_sort(nodeElt huffNode[], const unsigned count[], U32 const maxSymbolValue, rankPos rankPosition[]) { + U32 n; + U32 const maxSymbolValue1 = maxSymbolValue+1; + + /* Compute base and set curr to base. + * For symbol s let lowerRank = HUF_getIndex(count[n]) and rank = lowerRank + 1. + * See HUF_getIndex to see bucketing strategy. + * We attribute each symbol to lowerRank's base value, because we want to know where + * each rank begins in the output, so for rank R we want to count ranks R+1 and above. + */ + ZSTD_memset(rankPosition, 0, sizeof(*rankPosition) * RANK_POSITION_TABLE_SIZE); + for (n = 0; n < maxSymbolValue1; ++n) { + U32 lowerRank = HUF_getIndex(count[n]); + assert(lowerRank < RANK_POSITION_TABLE_SIZE - 1); + rankPosition[lowerRank].base++; + } + + assert(rankPosition[RANK_POSITION_TABLE_SIZE - 1].base == 0); + /* Set up the rankPosition table */ + for (n = RANK_POSITION_TABLE_SIZE - 1; n > 0; --n) { + rankPosition[n-1].base += rankPosition[n].base; + rankPosition[n-1].curr = rankPosition[n-1].base; + } + + /* Insert each symbol into their appropriate bucket, setting up rankPosition table. */ + for (n = 0; n < maxSymbolValue1; ++n) { + U32 const c = count[n]; + U32 const r = HUF_getIndex(c) + 1; + U32 const pos = rankPosition[r].curr++; + assert(pos < maxSymbolValue1); + huffNode[pos].count = c; + huffNode[pos].byte = (BYTE)n; + } + + /* Sort each bucket. */ + for (n = RANK_POSITION_DISTINCT_COUNT_CUTOFF; n < RANK_POSITION_TABLE_SIZE - 1; ++n) { + int const bucketSize = rankPosition[n].curr - rankPosition[n].base; + U32 const bucketStartIdx = rankPosition[n].base; + if (bucketSize > 1) { + assert(bucketStartIdx < maxSymbolValue1); + HUF_simpleQuickSort(huffNode + bucketStartIdx, 0, bucketSize-1); + } + } + + assert(HUF_isSorted(huffNode, maxSymbolValue1)); +} + + +/** HUF_buildCTable_wksp() : + * Same as HUF_buildCTable(), but using externally allocated scratch buffer. + * `workSpace` must be aligned on 4-bytes boundaries, and be at least as large as sizeof(HUF_buildCTable_wksp_tables). + */ +#define STARTNODE (HUF_SYMBOLVALUE_MAX+1) + +/* HUF_buildTree(): + * Takes the huffNode array sorted by HUF_sort() and builds an unlimited-depth Huffman tree. + * + * @param huffNode The array sorted by HUF_sort(). Builds the Huffman tree in this array. + * @param maxSymbolValue The maximum symbol value. + * @return The smallest node in the Huffman tree (by count). + */ +static int HUF_buildTree(nodeElt* huffNode, U32 maxSymbolValue) +{ + nodeElt* const huffNode0 = huffNode - 1; + int nonNullRank; + int lowS, lowN; + int nodeNb = STARTNODE; + int n, nodeRoot; + DEBUGLOG(5, "HUF_buildTree (alphabet size = %u)", maxSymbolValue + 1); + /* init for parents */ + nonNullRank = (int)maxSymbolValue; + while(huffNode[nonNullRank].count == 0) nonNullRank--; + lowS = nonNullRank; nodeRoot = nodeNb + lowS - 1; lowN = nodeNb; + huffNode[nodeNb].count = huffNode[lowS].count + huffNode[lowS-1].count; + huffNode[lowS].parent = huffNode[lowS-1].parent = (U16)nodeNb; + nodeNb++; lowS-=2; + for (n=nodeNb; n<=nodeRoot; n++) huffNode[n].count = (U32)(1U<<30); + huffNode0[0].count = (U32)(1U<<31); /* fake entry, strong barrier */ + + /* create parents */ + while (nodeNb <= nodeRoot) { + int const n1 = (huffNode[lowS].count < huffNode[lowN].count) ? lowS-- : lowN++; + int const n2 = (huffNode[lowS].count < huffNode[lowN].count) ? lowS-- : lowN++; + huffNode[nodeNb].count = huffNode[n1].count + huffNode[n2].count; + huffNode[n1].parent = huffNode[n2].parent = (U16)nodeNb; + nodeNb++; + } + + /* distribute weights (unlimited tree height) */ + huffNode[nodeRoot].nbBits = 0; + for (n=nodeRoot-1; n>=STARTNODE; n--) + huffNode[n].nbBits = huffNode[ huffNode[n].parent ].nbBits + 1; + for (n=0; n<=nonNullRank; n++) + huffNode[n].nbBits = huffNode[ huffNode[n].parent ].nbBits + 1; + + DEBUGLOG(6, "Initial distribution of bits completed (%zu sorted symbols)", showHNodeBits(huffNode, maxSymbolValue+1)); + + return nonNullRank; +} + +/** + * HUF_buildCTableFromTree(): + * Build the CTable given the Huffman tree in huffNode. + * + * @param[out] CTable The output Huffman CTable. + * @param huffNode The Huffman tree. + * @param nonNullRank The last and smallest node in the Huffman tree. + * @param maxSymbolValue The maximum symbol value. + * @param maxNbBits The exact maximum number of bits used in the Huffman tree. + */ +static void HUF_buildCTableFromTree(HUF_CElt* CTable, nodeElt const* huffNode, int nonNullRank, U32 maxSymbolValue, U32 maxNbBits) +{ + HUF_CElt* const ct = CTable + 1; + /* fill result into ctable (val, nbBits) */ + int n; + U16 nbPerRank[HUF_TABLELOG_MAX+1] = {0}; + U16 valPerRank[HUF_TABLELOG_MAX+1] = {0}; + int const alphabetSize = (int)(maxSymbolValue + 1); + for (n=0; n<=nonNullRank; n++) + nbPerRank[huffNode[n].nbBits]++; + /* determine starting value per rank */ + { U16 min = 0; + for (n=(int)maxNbBits; n>0; n--) { + valPerRank[n] = min; /* get starting value within each rank */ + min += nbPerRank[n]; + min >>= 1; + } } + for (n=0; nhuffNodeTbl; + nodeElt* const huffNode = huffNode0+1; + int nonNullRank; + + HUF_STATIC_ASSERT(HUF_CTABLE_WORKSPACE_SIZE == sizeof(HUF_buildCTable_wksp_tables)); + + DEBUGLOG(5, "HUF_buildCTable_wksp (alphabet size = %u)", maxSymbolValue+1); + + /* safety checks */ + if (wkspSize < sizeof(HUF_buildCTable_wksp_tables)) + return ERROR(workSpace_tooSmall); + if (maxNbBits == 0) maxNbBits = HUF_TABLELOG_DEFAULT; + if (maxSymbolValue > HUF_SYMBOLVALUE_MAX) + return ERROR(maxSymbolValue_tooLarge); + ZSTD_memset(huffNode0, 0, sizeof(huffNodeTable)); + + /* sort, decreasing order */ + HUF_sort(huffNode, count, maxSymbolValue, wksp_tables->rankPosition); + DEBUGLOG(6, "sorted symbols completed (%zu symbols)", showHNodeSymbols(huffNode, maxSymbolValue+1)); + + /* build tree */ + nonNullRank = HUF_buildTree(huffNode, maxSymbolValue); + + /* determine and enforce maxTableLog */ + maxNbBits = HUF_setMaxHeight(huffNode, (U32)nonNullRank, maxNbBits); + if (maxNbBits > HUF_TABLELOG_MAX) return ERROR(GENERIC); /* check fit into table */ + + HUF_buildCTableFromTree(CTable, huffNode, nonNullRank, maxSymbolValue, maxNbBits); + + return maxNbBits; +} + +size_t HUF_estimateCompressedSize(const HUF_CElt* CTable, const unsigned* count, unsigned maxSymbolValue) +{ + HUF_CElt const* ct = CTable + 1; + size_t nbBits = 0; + int s; + for (s = 0; s <= (int)maxSymbolValue; ++s) { + nbBits += HUF_getNbBits(ct[s]) * count[s]; + } + return nbBits >> 3; +} + +int HUF_validateCTable(const HUF_CElt* CTable, const unsigned* count, unsigned maxSymbolValue) { + HUF_CTableHeader header = HUF_readCTableHeader(CTable); + HUF_CElt const* ct = CTable + 1; + int bad = 0; + int s; + + assert(header.tableLog <= HUF_TABLELOG_ABSOLUTEMAX); + + if (header.maxSymbolValue < maxSymbolValue) + return 0; + + for (s = 0; s <= (int)maxSymbolValue; ++s) { + bad |= (count[s] != 0) & (HUF_getNbBits(ct[s]) == 0); + } + return !bad; +} + +size_t HUF_compressBound(size_t size) { return HUF_COMPRESSBOUND(size); } + +/** HUF_CStream_t: + * Huffman uses its own BIT_CStream_t implementation. + * There are three major differences from BIT_CStream_t: + * 1. HUF_addBits() takes a HUF_CElt (size_t) which is + * the pair (nbBits, value) in the format: + * format: + * - Bits [0, 4) = nbBits + * - Bits [4, 64 - nbBits) = 0 + * - Bits [64 - nbBits, 64) = value + * 2. The bitContainer is built from the upper bits and + * right shifted. E.g. to add a new value of N bits + * you right shift the bitContainer by N, then or in + * the new value into the N upper bits. + * 3. The bitstream has two bit containers. You can add + * bits to the second container and merge them into + * the first container. + */ + +#define HUF_BITS_IN_CONTAINER (sizeof(size_t) * 8) + +typedef struct { + size_t bitContainer[2]; + size_t bitPos[2]; + + BYTE* startPtr; + BYTE* ptr; + BYTE* endPtr; +} HUF_CStream_t; + +/**! HUF_initCStream(): + * Initializes the bitstream. + * @returns 0 or an error code. + */ +static size_t HUF_initCStream(HUF_CStream_t* bitC, + void* startPtr, size_t dstCapacity) +{ + ZSTD_memset(bitC, 0, sizeof(*bitC)); + bitC->startPtr = (BYTE*)startPtr; + bitC->ptr = bitC->startPtr; + bitC->endPtr = bitC->startPtr + dstCapacity - sizeof(bitC->bitContainer[0]); + if (dstCapacity <= sizeof(bitC->bitContainer[0])) return ERROR(dstSize_tooSmall); + return 0; +} + +/*! HUF_addBits(): + * Adds the symbol stored in HUF_CElt elt to the bitstream. + * + * @param elt The element we're adding. This is a (nbBits, value) pair. + * See the HUF_CStream_t docs for the format. + * @param idx Insert into the bitstream at this idx. + * @param kFast This is a template parameter. If the bitstream is guaranteed + * to have at least 4 unused bits after this call it may be 1, + * otherwise it must be 0. HUF_addBits() is faster when fast is set. + */ +FORCE_INLINE_TEMPLATE void HUF_addBits(HUF_CStream_t* bitC, HUF_CElt elt, int idx, int kFast) +{ + assert(idx <= 1); + assert(HUF_getNbBits(elt) <= HUF_TABLELOG_ABSOLUTEMAX); + /* This is efficient on x86-64 with BMI2 because shrx + * only reads the low 6 bits of the register. The compiler + * knows this and elides the mask. When fast is set, + * every operation can use the same value loaded from elt. + */ + bitC->bitContainer[idx] >>= HUF_getNbBits(elt); + bitC->bitContainer[idx] |= kFast ? HUF_getValueFast(elt) : HUF_getValue(elt); + /* We only read the low 8 bits of bitC->bitPos[idx] so it + * doesn't matter that the high bits have noise from the value. + */ + bitC->bitPos[idx] += HUF_getNbBitsFast(elt); + assert((bitC->bitPos[idx] & 0xFF) <= HUF_BITS_IN_CONTAINER); + /* The last 4-bits of elt are dirty if fast is set, + * so we must not be overwriting bits that have already been + * inserted into the bit container. + */ +#if DEBUGLEVEL >= 1 + { + size_t const nbBits = HUF_getNbBits(elt); + size_t const dirtyBits = nbBits == 0 ? 0 : ZSTD_highbit32((U32)nbBits) + 1; + (void)dirtyBits; + /* Middle bits are 0. */ + assert(((elt >> dirtyBits) << (dirtyBits + nbBits)) == 0); + /* We didn't overwrite any bits in the bit container. */ + assert(!kFast || (bitC->bitPos[idx] & 0xFF) <= HUF_BITS_IN_CONTAINER); + (void)dirtyBits; + } +#endif +} + +FORCE_INLINE_TEMPLATE void HUF_zeroIndex1(HUF_CStream_t* bitC) +{ + bitC->bitContainer[1] = 0; + bitC->bitPos[1] = 0; +} + +/*! HUF_mergeIndex1() : + * Merges the bit container @ index 1 into the bit container @ index 0 + * and zeros the bit container @ index 1. + */ +FORCE_INLINE_TEMPLATE void HUF_mergeIndex1(HUF_CStream_t* bitC) +{ + assert((bitC->bitPos[1] & 0xFF) < HUF_BITS_IN_CONTAINER); + bitC->bitContainer[0] >>= (bitC->bitPos[1] & 0xFF); + bitC->bitContainer[0] |= bitC->bitContainer[1]; + bitC->bitPos[0] += bitC->bitPos[1]; + assert((bitC->bitPos[0] & 0xFF) <= HUF_BITS_IN_CONTAINER); +} + +/*! HUF_flushBits() : +* Flushes the bits in the bit container @ index 0. +* +* @post bitPos will be < 8. +* @param kFast If kFast is set then we must know a-priori that +* the bit container will not overflow. +*/ +FORCE_INLINE_TEMPLATE void HUF_flushBits(HUF_CStream_t* bitC, int kFast) +{ + /* The upper bits of bitPos are noisy, so we must mask by 0xFF. */ + size_t const nbBits = bitC->bitPos[0] & 0xFF; + size_t const nbBytes = nbBits >> 3; + /* The top nbBits bits of bitContainer are the ones we need. */ + size_t const bitContainer = bitC->bitContainer[0] >> (HUF_BITS_IN_CONTAINER - nbBits); + /* Mask bitPos to account for the bytes we consumed. */ + bitC->bitPos[0] &= 7; + assert(nbBits > 0); + assert(nbBits <= sizeof(bitC->bitContainer[0]) * 8); + assert(bitC->ptr <= bitC->endPtr); + MEM_writeLEST(bitC->ptr, bitContainer); + bitC->ptr += nbBytes; + assert(!kFast || bitC->ptr <= bitC->endPtr); + if (!kFast && bitC->ptr > bitC->endPtr) bitC->ptr = bitC->endPtr; + /* bitContainer doesn't need to be modified because the leftover + * bits are already the top bitPos bits. And we don't care about + * noise in the lower values. + */ +} + +/*! HUF_endMark() + * @returns The Huffman stream end mark: A 1-bit value = 1. + */ +static HUF_CElt HUF_endMark(void) +{ + HUF_CElt endMark; + HUF_setNbBits(&endMark, 1); + HUF_setValue(&endMark, 1); + return endMark; +} + +/*! HUF_closeCStream() : + * @return Size of CStream, in bytes, + * or 0 if it could not fit into dstBuffer */ +static size_t HUF_closeCStream(HUF_CStream_t* bitC) +{ + HUF_addBits(bitC, HUF_endMark(), /* idx */ 0, /* kFast */ 0); + HUF_flushBits(bitC, /* kFast */ 0); + { + size_t const nbBits = bitC->bitPos[0] & 0xFF; + if (bitC->ptr >= bitC->endPtr) return 0; /* overflow detected */ + return (size_t)(bitC->ptr - bitC->startPtr) + (nbBits > 0); + } +} + +FORCE_INLINE_TEMPLATE void +HUF_encodeSymbol(HUF_CStream_t* bitCPtr, U32 symbol, const HUF_CElt* CTable, int idx, int fast) +{ + HUF_addBits(bitCPtr, CTable[symbol], idx, fast); +} + +FORCE_INLINE_TEMPLATE void +HUF_compress1X_usingCTable_internal_body_loop(HUF_CStream_t* bitC, + const BYTE* ip, size_t srcSize, + const HUF_CElt* ct, + int kUnroll, int kFastFlush, int kLastFast) +{ + /* Join to kUnroll */ + int n = (int)srcSize; + int rem = n % kUnroll; + if (rem > 0) { + for (; rem > 0; --rem) { + HUF_encodeSymbol(bitC, ip[--n], ct, 0, /* fast */ 0); + } + HUF_flushBits(bitC, kFastFlush); + } + assert(n % kUnroll == 0); + + /* Join to 2 * kUnroll */ + if (n % (2 * kUnroll)) { + int u; + for (u = 1; u < kUnroll; ++u) { + HUF_encodeSymbol(bitC, ip[n - u], ct, 0, 1); + } + HUF_encodeSymbol(bitC, ip[n - kUnroll], ct, 0, kLastFast); + HUF_flushBits(bitC, kFastFlush); + n -= kUnroll; + } + assert(n % (2 * kUnroll) == 0); + + for (; n>0; n-= 2 * kUnroll) { + /* Encode kUnroll symbols into the bitstream @ index 0. */ + int u; + for (u = 1; u < kUnroll; ++u) { + HUF_encodeSymbol(bitC, ip[n - u], ct, /* idx */ 0, /* fast */ 1); + } + HUF_encodeSymbol(bitC, ip[n - kUnroll], ct, /* idx */ 0, /* fast */ kLastFast); + HUF_flushBits(bitC, kFastFlush); + /* Encode kUnroll symbols into the bitstream @ index 1. + * This allows us to start filling the bit container + * without any data dependencies. + */ + HUF_zeroIndex1(bitC); + for (u = 1; u < kUnroll; ++u) { + HUF_encodeSymbol(bitC, ip[n - kUnroll - u], ct, /* idx */ 1, /* fast */ 1); + } + HUF_encodeSymbol(bitC, ip[n - kUnroll - kUnroll], ct, /* idx */ 1, /* fast */ kLastFast); + /* Merge bitstream @ index 1 into the bitstream @ index 0 */ + HUF_mergeIndex1(bitC); + HUF_flushBits(bitC, kFastFlush); + } + assert(n == 0); + +} + +/** + * Returns a tight upper bound on the output space needed by Huffman + * with 8 bytes buffer to handle over-writes. If the output is at least + * this large we don't need to do bounds checks during Huffman encoding. + */ +static size_t HUF_tightCompressBound(size_t srcSize, size_t tableLog) +{ + return ((srcSize * tableLog) >> 3) + 8; +} + + +FORCE_INLINE_TEMPLATE size_t +HUF_compress1X_usingCTable_internal_body(void* dst, size_t dstSize, + const void* src, size_t srcSize, + const HUF_CElt* CTable) +{ + U32 const tableLog = HUF_readCTableHeader(CTable).tableLog; + HUF_CElt const* ct = CTable + 1; + const BYTE* ip = (const BYTE*) src; + BYTE* const ostart = (BYTE*)dst; + BYTE* const oend = ostart + dstSize; + HUF_CStream_t bitC; + + /* init */ + if (dstSize < 8) return 0; /* not enough space to compress */ + { BYTE* op = ostart; + size_t const initErr = HUF_initCStream(&bitC, op, (size_t)(oend-op)); + if (HUF_isError(initErr)) return 0; } + + if (dstSize < HUF_tightCompressBound(srcSize, (size_t)tableLog) || tableLog > 11) + HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ MEM_32bits() ? 2 : 4, /* kFast */ 0, /* kLastFast */ 0); + else { + if (MEM_32bits()) { + switch (tableLog) { + case 11: + HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 2, /* kFastFlush */ 1, /* kLastFast */ 0); + break; + case 10: ZSTD_FALLTHROUGH; + case 9: ZSTD_FALLTHROUGH; + case 8: + HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 2, /* kFastFlush */ 1, /* kLastFast */ 1); + break; + case 7: ZSTD_FALLTHROUGH; + default: + HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 3, /* kFastFlush */ 1, /* kLastFast */ 1); + break; + } + } else { + switch (tableLog) { + case 11: + HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 5, /* kFastFlush */ 1, /* kLastFast */ 0); + break; + case 10: + HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 5, /* kFastFlush */ 1, /* kLastFast */ 1); + break; + case 9: + HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 6, /* kFastFlush */ 1, /* kLastFast */ 0); + break; + case 8: + HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 7, /* kFastFlush */ 1, /* kLastFast */ 0); + break; + case 7: + HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 8, /* kFastFlush */ 1, /* kLastFast */ 0); + break; + case 6: ZSTD_FALLTHROUGH; + default: + HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 9, /* kFastFlush */ 1, /* kLastFast */ 1); + break; + } + } + } + assert(bitC.ptr <= bitC.endPtr); + + return HUF_closeCStream(&bitC); +} + +#if DYNAMIC_BMI2 + +static BMI2_TARGET_ATTRIBUTE size_t +HUF_compress1X_usingCTable_internal_bmi2(void* dst, size_t dstSize, + const void* src, size_t srcSize, + const HUF_CElt* CTable) +{ + return HUF_compress1X_usingCTable_internal_body(dst, dstSize, src, srcSize, CTable); +} + +static size_t +HUF_compress1X_usingCTable_internal_default(void* dst, size_t dstSize, + const void* src, size_t srcSize, + const HUF_CElt* CTable) +{ + return HUF_compress1X_usingCTable_internal_body(dst, dstSize, src, srcSize, CTable); +} + +static size_t +HUF_compress1X_usingCTable_internal(void* dst, size_t dstSize, + const void* src, size_t srcSize, + const HUF_CElt* CTable, const int flags) +{ + if (flags & HUF_flags_bmi2) { + return HUF_compress1X_usingCTable_internal_bmi2(dst, dstSize, src, srcSize, CTable); + } + return HUF_compress1X_usingCTable_internal_default(dst, dstSize, src, srcSize, CTable); +} + +#else + +static size_t +HUF_compress1X_usingCTable_internal(void* dst, size_t dstSize, + const void* src, size_t srcSize, + const HUF_CElt* CTable, const int flags) +{ + (void)flags; + return HUF_compress1X_usingCTable_internal_body(dst, dstSize, src, srcSize, CTable); +} + +#endif + +size_t HUF_compress1X_usingCTable(void* dst, size_t dstSize, const void* src, size_t srcSize, const HUF_CElt* CTable, int flags) +{ + return HUF_compress1X_usingCTable_internal(dst, dstSize, src, srcSize, CTable, flags); +} + +static size_t +HUF_compress4X_usingCTable_internal(void* dst, size_t dstSize, + const void* src, size_t srcSize, + const HUF_CElt* CTable, int flags) +{ + size_t const segmentSize = (srcSize+3)/4; /* first 3 segments */ + const BYTE* ip = (const BYTE*) src; + const BYTE* const iend = ip + srcSize; + BYTE* const ostart = (BYTE*) dst; + BYTE* const oend = ostart + dstSize; + BYTE* op = ostart; + + if (dstSize < 6 + 1 + 1 + 1 + 8) return 0; /* minimum space to compress successfully */ + if (srcSize < 12) return 0; /* no saving possible : too small input */ + op += 6; /* jumpTable */ + + assert(op <= oend); + { CHECK_V_F(cSize, HUF_compress1X_usingCTable_internal(op, (size_t)(oend-op), ip, segmentSize, CTable, flags) ); + if (cSize == 0 || cSize > 65535) return 0; + MEM_writeLE16(ostart, (U16)cSize); + op += cSize; + } + + ip += segmentSize; + assert(op <= oend); + { CHECK_V_F(cSize, HUF_compress1X_usingCTable_internal(op, (size_t)(oend-op), ip, segmentSize, CTable, flags) ); + if (cSize == 0 || cSize > 65535) return 0; + MEM_writeLE16(ostart+2, (U16)cSize); + op += cSize; + } + + ip += segmentSize; + assert(op <= oend); + { CHECK_V_F(cSize, HUF_compress1X_usingCTable_internal(op, (size_t)(oend-op), ip, segmentSize, CTable, flags) ); + if (cSize == 0 || cSize > 65535) return 0; + MEM_writeLE16(ostart+4, (U16)cSize); + op += cSize; + } + + ip += segmentSize; + assert(op <= oend); + assert(ip <= iend); + { CHECK_V_F(cSize, HUF_compress1X_usingCTable_internal(op, (size_t)(oend-op), ip, (size_t)(iend-ip), CTable, flags) ); + if (cSize == 0 || cSize > 65535) return 0; + op += cSize; + } + + return (size_t)(op-ostart); +} + +size_t HUF_compress4X_usingCTable(void* dst, size_t dstSize, const void* src, size_t srcSize, const HUF_CElt* CTable, int flags) +{ + return HUF_compress4X_usingCTable_internal(dst, dstSize, src, srcSize, CTable, flags); +} + +typedef enum { HUF_singleStream, HUF_fourStreams } HUF_nbStreams_e; + +static size_t HUF_compressCTable_internal( + BYTE* const ostart, BYTE* op, BYTE* const oend, + const void* src, size_t srcSize, + HUF_nbStreams_e nbStreams, const HUF_CElt* CTable, const int flags) +{ + size_t const cSize = (nbStreams==HUF_singleStream) ? + HUF_compress1X_usingCTable_internal(op, (size_t)(oend - op), src, srcSize, CTable, flags) : + HUF_compress4X_usingCTable_internal(op, (size_t)(oend - op), src, srcSize, CTable, flags); + if (HUF_isError(cSize)) { return cSize; } + if (cSize==0) { return 0; } /* uncompressible */ + op += cSize; + /* check compressibility */ + assert(op >= ostart); + if ((size_t)(op-ostart) >= srcSize-1) { return 0; } + return (size_t)(op-ostart); +} + +typedef struct { + unsigned count[HUF_SYMBOLVALUE_MAX + 1]; + HUF_CElt CTable[HUF_CTABLE_SIZE_ST(HUF_SYMBOLVALUE_MAX)]; + union { + HUF_buildCTable_wksp_tables buildCTable_wksp; + HUF_WriteCTableWksp writeCTable_wksp; + U32 hist_wksp[HIST_WKSP_SIZE_U32]; + } wksps; +} HUF_compress_tables_t; + +#define SUSPECT_INCOMPRESSIBLE_SAMPLE_SIZE 4096 +#define SUSPECT_INCOMPRESSIBLE_SAMPLE_RATIO 10 /* Must be >= 2 */ + +unsigned HUF_cardinality(const unsigned* count, unsigned maxSymbolValue) +{ + unsigned cardinality = 0; + unsigned i; + + for (i = 0; i < maxSymbolValue + 1; i++) { + if (count[i] != 0) cardinality += 1; + } + + return cardinality; +} + +unsigned HUF_minTableLog(unsigned symbolCardinality) +{ + U32 minBitsSymbols = ZSTD_highbit32(symbolCardinality) + 1; + return minBitsSymbols; +} + +unsigned HUF_optimalTableLog( + unsigned maxTableLog, + size_t srcSize, + unsigned maxSymbolValue, + void* workSpace, size_t wkspSize, + HUF_CElt* table, + const unsigned* count, + int flags) +{ + assert(srcSize > 1); /* Not supported, RLE should be used instead */ + assert(wkspSize >= sizeof(HUF_buildCTable_wksp_tables)); + + if (!(flags & HUF_flags_optimalDepth)) { + /* cheap evaluation, based on FSE */ + return FSE_optimalTableLog_internal(maxTableLog, srcSize, maxSymbolValue, 1); + } + + { BYTE* dst = (BYTE*)workSpace + sizeof(HUF_WriteCTableWksp); + size_t dstSize = wkspSize - sizeof(HUF_WriteCTableWksp); + size_t hSize, newSize; + const unsigned symbolCardinality = HUF_cardinality(count, maxSymbolValue); + const unsigned minTableLog = HUF_minTableLog(symbolCardinality); + size_t optSize = ((size_t) ~0) - 1; + unsigned optLog = maxTableLog, optLogGuess; + + DEBUGLOG(6, "HUF_optimalTableLog: probing huf depth (srcSize=%zu)", srcSize); + + /* Search until size increases */ + for (optLogGuess = minTableLog; optLogGuess <= maxTableLog; optLogGuess++) { + DEBUGLOG(7, "checking for huffLog=%u", optLogGuess); + + { size_t maxBits = HUF_buildCTable_wksp(table, count, maxSymbolValue, optLogGuess, workSpace, wkspSize); + if (ERR_isError(maxBits)) continue; + + if (maxBits < optLogGuess && optLogGuess > minTableLog) break; + + hSize = HUF_writeCTable_wksp(dst, dstSize, table, maxSymbolValue, (U32)maxBits, workSpace, wkspSize); + } + + if (ERR_isError(hSize)) continue; + + newSize = HUF_estimateCompressedSize(table, count, maxSymbolValue) + hSize; + + if (newSize > optSize + 1) { + break; + } + + if (newSize < optSize) { + optSize = newSize; + optLog = optLogGuess; + } + } + assert(optLog <= HUF_TABLELOG_MAX); + return optLog; + } +} + +/* HUF_compress_internal() : + * `workSpace_align4` must be aligned on 4-bytes boundaries, + * and occupies the same space as a table of HUF_WORKSPACE_SIZE_U64 unsigned */ +static size_t +HUF_compress_internal (void* dst, size_t dstSize, + const void* src, size_t srcSize, + unsigned maxSymbolValue, unsigned huffLog, + HUF_nbStreams_e nbStreams, + void* workSpace, size_t wkspSize, + HUF_CElt* oldHufTable, HUF_repeat* repeat, int flags) +{ + HUF_compress_tables_t* const table = (HUF_compress_tables_t*)HUF_alignUpWorkspace(workSpace, &wkspSize, ZSTD_ALIGNOF(size_t)); + BYTE* const ostart = (BYTE*)dst; + BYTE* const oend = ostart + dstSize; + BYTE* op = ostart; + + DEBUGLOG(5, "HUF_compress_internal (srcSize=%zu)", srcSize); + HUF_STATIC_ASSERT(sizeof(*table) + HUF_WORKSPACE_MAX_ALIGNMENT <= HUF_WORKSPACE_SIZE); + + /* checks & inits */ + if (wkspSize < sizeof(*table)) return ERROR(workSpace_tooSmall); + if (!srcSize) return 0; /* Uncompressed */ + if (!dstSize) return 0; /* cannot fit anything within dst budget */ + if (srcSize > HUF_BLOCKSIZE_MAX) return ERROR(srcSize_wrong); /* current block size limit */ + if (huffLog > HUF_TABLELOG_MAX) return ERROR(tableLog_tooLarge); + if (maxSymbolValue > HUF_SYMBOLVALUE_MAX) return ERROR(maxSymbolValue_tooLarge); + if (!maxSymbolValue) maxSymbolValue = HUF_SYMBOLVALUE_MAX; + if (!huffLog) huffLog = HUF_TABLELOG_DEFAULT; + + /* Heuristic : If old table is valid, use it for small inputs */ + if ((flags & HUF_flags_preferRepeat) && repeat && *repeat == HUF_repeat_valid) { + return HUF_compressCTable_internal(ostart, op, oend, + src, srcSize, + nbStreams, oldHufTable, flags); + } + + /* If uncompressible data is suspected, do a smaller sampling first */ + DEBUG_STATIC_ASSERT(SUSPECT_INCOMPRESSIBLE_SAMPLE_RATIO >= 2); + if ((flags & HUF_flags_suspectUncompressible) && srcSize >= (SUSPECT_INCOMPRESSIBLE_SAMPLE_SIZE * SUSPECT_INCOMPRESSIBLE_SAMPLE_RATIO)) { + size_t largestTotal = 0; + DEBUGLOG(5, "input suspected incompressible : sampling to check"); + { unsigned maxSymbolValueBegin = maxSymbolValue; + CHECK_V_F(largestBegin, HIST_count_simple (table->count, &maxSymbolValueBegin, (const BYTE*)src, SUSPECT_INCOMPRESSIBLE_SAMPLE_SIZE) ); + largestTotal += largestBegin; + } + { unsigned maxSymbolValueEnd = maxSymbolValue; + CHECK_V_F(largestEnd, HIST_count_simple (table->count, &maxSymbolValueEnd, (const BYTE*)src + srcSize - SUSPECT_INCOMPRESSIBLE_SAMPLE_SIZE, SUSPECT_INCOMPRESSIBLE_SAMPLE_SIZE) ); + largestTotal += largestEnd; + } + if (largestTotal <= ((2 * SUSPECT_INCOMPRESSIBLE_SAMPLE_SIZE) >> 7)+4) return 0; /* heuristic : probably not compressible enough */ + } + + /* Scan input and build symbol stats */ + { CHECK_V_F(largest, HIST_count_wksp (table->count, &maxSymbolValue, (const BYTE*)src, srcSize, table->wksps.hist_wksp, sizeof(table->wksps.hist_wksp)) ); + if (largest == srcSize) { *ostart = ((const BYTE*)src)[0]; return 1; } /* single symbol, rle */ + if (largest <= (srcSize >> 7)+4) return 0; /* heuristic : probably not compressible enough */ + } + DEBUGLOG(6, "histogram detail completed (%zu symbols)", showU32(table->count, maxSymbolValue+1)); + + /* Check validity of previous table */ + if ( repeat + && *repeat == HUF_repeat_check + && !HUF_validateCTable(oldHufTable, table->count, maxSymbolValue)) { + *repeat = HUF_repeat_none; + } + /* Heuristic : use existing table for small inputs */ + if ((flags & HUF_flags_preferRepeat) && repeat && *repeat != HUF_repeat_none) { + return HUF_compressCTable_internal(ostart, op, oend, + src, srcSize, + nbStreams, oldHufTable, flags); + } + + /* Build Huffman Tree */ + huffLog = HUF_optimalTableLog(huffLog, srcSize, maxSymbolValue, &table->wksps, sizeof(table->wksps), table->CTable, table->count, flags); + { size_t const maxBits = HUF_buildCTable_wksp(table->CTable, table->count, + maxSymbolValue, huffLog, + &table->wksps.buildCTable_wksp, sizeof(table->wksps.buildCTable_wksp)); + CHECK_F(maxBits); + huffLog = (U32)maxBits; + DEBUGLOG(6, "bit distribution completed (%zu symbols)", showCTableBits(table->CTable + 1, maxSymbolValue+1)); + } + + /* Write table description header */ + { CHECK_V_F(hSize, HUF_writeCTable_wksp(op, dstSize, table->CTable, maxSymbolValue, huffLog, + &table->wksps.writeCTable_wksp, sizeof(table->wksps.writeCTable_wksp)) ); + /* Check if using previous huffman table is beneficial */ + if (repeat && *repeat != HUF_repeat_none) { + size_t const oldSize = HUF_estimateCompressedSize(oldHufTable, table->count, maxSymbolValue); + size_t const newSize = HUF_estimateCompressedSize(table->CTable, table->count, maxSymbolValue); + if (oldSize <= hSize + newSize || hSize + 12 >= srcSize) { + return HUF_compressCTable_internal(ostart, op, oend, + src, srcSize, + nbStreams, oldHufTable, flags); + } } + + /* Use the new huffman table */ + if (hSize + 12ul >= srcSize) { return 0; } + op += hSize; + if (repeat) { *repeat = HUF_repeat_none; } + if (oldHufTable) + ZSTD_memcpy(oldHufTable, table->CTable, sizeof(table->CTable)); /* Save new table */ + } + return HUF_compressCTable_internal(ostart, op, oend, + src, srcSize, + nbStreams, table->CTable, flags); +} + +size_t HUF_compress1X_repeat (void* dst, size_t dstSize, + const void* src, size_t srcSize, + unsigned maxSymbolValue, unsigned huffLog, + void* workSpace, size_t wkspSize, + HUF_CElt* hufTable, HUF_repeat* repeat, int flags) +{ + DEBUGLOG(5, "HUF_compress1X_repeat (srcSize = %zu)", srcSize); + return HUF_compress_internal(dst, dstSize, src, srcSize, + maxSymbolValue, huffLog, HUF_singleStream, + workSpace, wkspSize, hufTable, + repeat, flags); +} + +/* HUF_compress4X_repeat(): + * compress input using 4 streams. + * consider skipping quickly + * reuse an existing huffman compression table */ +size_t HUF_compress4X_repeat (void* dst, size_t dstSize, + const void* src, size_t srcSize, + unsigned maxSymbolValue, unsigned huffLog, + void* workSpace, size_t wkspSize, + HUF_CElt* hufTable, HUF_repeat* repeat, int flags) +{ + DEBUGLOG(5, "HUF_compress4X_repeat (srcSize = %zu)", srcSize); + return HUF_compress_internal(dst, dstSize, src, srcSize, + maxSymbolValue, huffLog, HUF_fourStreams, + workSpace, wkspSize, + hufTable, repeat, flags); +} diff --git a/deps/zstd/lib/compress/zstd_compress.c b/deps/zstd/lib/compress/zstd_compress.c new file mode 100644 index 00000000000000..9284e2a480aead --- /dev/null +++ b/deps/zstd/lib/compress/zstd_compress.c @@ -0,0 +1,7153 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/*-************************************* +* Dependencies +***************************************/ +#include "../common/allocations.h" /* ZSTD_customMalloc, ZSTD_customCalloc, ZSTD_customFree */ +#include "../common/zstd_deps.h" /* INT_MAX, ZSTD_memset, ZSTD_memcpy */ +#include "../common/mem.h" +#include "hist.h" /* HIST_countFast_wksp */ +#define FSE_STATIC_LINKING_ONLY /* FSE_encodeSymbol */ +#include "../common/fse.h" +#include "../common/huf.h" +#include "zstd_compress_internal.h" +#include "zstd_compress_sequences.h" +#include "zstd_compress_literals.h" +#include "zstd_fast.h" +#include "zstd_double_fast.h" +#include "zstd_lazy.h" +#include "zstd_opt.h" +#include "zstd_ldm.h" +#include "zstd_compress_superblock.h" +#include "../common/bits.h" /* ZSTD_highbit32, ZSTD_rotateRight_U64 */ + +/* *************************************************************** +* Tuning parameters +*****************************************************************/ +/*! + * COMPRESS_HEAPMODE : + * Select how default decompression function ZSTD_compress() allocates its context, + * on stack (0, default), or into heap (1). + * Note that functions with explicit context such as ZSTD_compressCCtx() are unaffected. + */ +#ifndef ZSTD_COMPRESS_HEAPMODE +# define ZSTD_COMPRESS_HEAPMODE 0 +#endif + +/*! + * ZSTD_HASHLOG3_MAX : + * Maximum size of the hash table dedicated to find 3-bytes matches, + * in log format, aka 17 => 1 << 17 == 128Ki positions. + * This structure is only used in zstd_opt. + * Since allocation is centralized for all strategies, it has to be known here. + * The actual (selected) size of the hash table is then stored in ZSTD_matchState_t.hashLog3, + * so that zstd_opt.c doesn't need to know about this constant. + */ +#ifndef ZSTD_HASHLOG3_MAX +# define ZSTD_HASHLOG3_MAX 17 +#endif + +/*-************************************* +* Helper functions +***************************************/ +/* ZSTD_compressBound() + * Note that the result from this function is only valid for + * the one-pass compression functions. + * When employing the streaming mode, + * if flushes are frequently altering the size of blocks, + * the overhead from block headers can make the compressed data larger + * than the return value of ZSTD_compressBound(). + */ +size_t ZSTD_compressBound(size_t srcSize) { + size_t const r = ZSTD_COMPRESSBOUND(srcSize); + if (r==0) return ERROR(srcSize_wrong); + return r; +} + + +/*-************************************* +* Context memory management +***************************************/ +struct ZSTD_CDict_s { + const void* dictContent; + size_t dictContentSize; + ZSTD_dictContentType_e dictContentType; /* The dictContentType the CDict was created with */ + U32* entropyWorkspace; /* entropy workspace of HUF_WORKSPACE_SIZE bytes */ + ZSTD_cwksp workspace; + ZSTD_matchState_t matchState; + ZSTD_compressedBlockState_t cBlockState; + ZSTD_customMem customMem; + U32 dictID; + int compressionLevel; /* 0 indicates that advanced API was used to select CDict params */ + ZSTD_paramSwitch_e useRowMatchFinder; /* Indicates whether the CDict was created with params that would use + * row-based matchfinder. Unless the cdict is reloaded, we will use + * the same greedy/lazy matchfinder at compression time. + */ +}; /* typedef'd to ZSTD_CDict within "zstd.h" */ + +ZSTD_CCtx* ZSTD_createCCtx(void) +{ + return ZSTD_createCCtx_advanced(ZSTD_defaultCMem); +} + +static void ZSTD_initCCtx(ZSTD_CCtx* cctx, ZSTD_customMem memManager) +{ + assert(cctx != NULL); + ZSTD_memset(cctx, 0, sizeof(*cctx)); + cctx->customMem = memManager; + cctx->bmi2 = ZSTD_cpuSupportsBmi2(); + { size_t const err = ZSTD_CCtx_reset(cctx, ZSTD_reset_parameters); + assert(!ZSTD_isError(err)); + (void)err; + } +} + +ZSTD_CCtx* ZSTD_createCCtx_advanced(ZSTD_customMem customMem) +{ + ZSTD_STATIC_ASSERT(zcss_init==0); + ZSTD_STATIC_ASSERT(ZSTD_CONTENTSIZE_UNKNOWN==(0ULL - 1)); + if ((!customMem.customAlloc) ^ (!customMem.customFree)) return NULL; + { ZSTD_CCtx* const cctx = (ZSTD_CCtx*)ZSTD_customMalloc(sizeof(ZSTD_CCtx), customMem); + if (!cctx) return NULL; + ZSTD_initCCtx(cctx, customMem); + return cctx; + } +} + +ZSTD_CCtx* ZSTD_initStaticCCtx(void* workspace, size_t workspaceSize) +{ + ZSTD_cwksp ws; + ZSTD_CCtx* cctx; + if (workspaceSize <= sizeof(ZSTD_CCtx)) return NULL; /* minimum size */ + if ((size_t)workspace & 7) return NULL; /* must be 8-aligned */ + ZSTD_cwksp_init(&ws, workspace, workspaceSize, ZSTD_cwksp_static_alloc); + + cctx = (ZSTD_CCtx*)ZSTD_cwksp_reserve_object(&ws, sizeof(ZSTD_CCtx)); + if (cctx == NULL) return NULL; + + ZSTD_memset(cctx, 0, sizeof(ZSTD_CCtx)); + ZSTD_cwksp_move(&cctx->workspace, &ws); + cctx->staticSize = workspaceSize; + + /* statically sized space. entropyWorkspace never moves (but prev/next block swap places) */ + if (!ZSTD_cwksp_check_available(&cctx->workspace, ENTROPY_WORKSPACE_SIZE + 2 * sizeof(ZSTD_compressedBlockState_t))) return NULL; + cctx->blockState.prevCBlock = (ZSTD_compressedBlockState_t*)ZSTD_cwksp_reserve_object(&cctx->workspace, sizeof(ZSTD_compressedBlockState_t)); + cctx->blockState.nextCBlock = (ZSTD_compressedBlockState_t*)ZSTD_cwksp_reserve_object(&cctx->workspace, sizeof(ZSTD_compressedBlockState_t)); + cctx->entropyWorkspace = (U32*)ZSTD_cwksp_reserve_object(&cctx->workspace, ENTROPY_WORKSPACE_SIZE); + cctx->bmi2 = ZSTD_cpuid_bmi2(ZSTD_cpuid()); + return cctx; +} + +/** + * Clears and frees all of the dictionaries in the CCtx. + */ +static void ZSTD_clearAllDicts(ZSTD_CCtx* cctx) +{ + ZSTD_customFree(cctx->localDict.dictBuffer, cctx->customMem); + ZSTD_freeCDict(cctx->localDict.cdict); + ZSTD_memset(&cctx->localDict, 0, sizeof(cctx->localDict)); + ZSTD_memset(&cctx->prefixDict, 0, sizeof(cctx->prefixDict)); + cctx->cdict = NULL; +} + +static size_t ZSTD_sizeof_localDict(ZSTD_localDict dict) +{ + size_t const bufferSize = dict.dictBuffer != NULL ? dict.dictSize : 0; + size_t const cdictSize = ZSTD_sizeof_CDict(dict.cdict); + return bufferSize + cdictSize; +} + +static void ZSTD_freeCCtxContent(ZSTD_CCtx* cctx) +{ + assert(cctx != NULL); + assert(cctx->staticSize == 0); + ZSTD_clearAllDicts(cctx); +#ifdef ZSTD_MULTITHREAD + ZSTDMT_freeCCtx(cctx->mtctx); cctx->mtctx = NULL; +#endif + ZSTD_cwksp_free(&cctx->workspace, cctx->customMem); +} + +size_t ZSTD_freeCCtx(ZSTD_CCtx* cctx) +{ + DEBUGLOG(3, "ZSTD_freeCCtx (address: %p)", (void*)cctx); + if (cctx==NULL) return 0; /* support free on NULL */ + RETURN_ERROR_IF(cctx->staticSize, memory_allocation, + "not compatible with static CCtx"); + { int cctxInWorkspace = ZSTD_cwksp_owns_buffer(&cctx->workspace, cctx); + ZSTD_freeCCtxContent(cctx); + if (!cctxInWorkspace) ZSTD_customFree(cctx, cctx->customMem); + } + return 0; +} + + +static size_t ZSTD_sizeof_mtctx(const ZSTD_CCtx* cctx) +{ +#ifdef ZSTD_MULTITHREAD + return ZSTDMT_sizeof_CCtx(cctx->mtctx); +#else + (void)cctx; + return 0; +#endif +} + + +size_t ZSTD_sizeof_CCtx(const ZSTD_CCtx* cctx) +{ + if (cctx==NULL) return 0; /* support sizeof on NULL */ + /* cctx may be in the workspace */ + return (cctx->workspace.workspace == cctx ? 0 : sizeof(*cctx)) + + ZSTD_cwksp_sizeof(&cctx->workspace) + + ZSTD_sizeof_localDict(cctx->localDict) + + ZSTD_sizeof_mtctx(cctx); +} + +size_t ZSTD_sizeof_CStream(const ZSTD_CStream* zcs) +{ + return ZSTD_sizeof_CCtx(zcs); /* same object */ +} + +/* private API call, for dictBuilder only */ +const seqStore_t* ZSTD_getSeqStore(const ZSTD_CCtx* ctx) { return &(ctx->seqStore); } + +/* Returns true if the strategy supports using a row based matchfinder */ +static int ZSTD_rowMatchFinderSupported(const ZSTD_strategy strategy) { + return (strategy >= ZSTD_greedy && strategy <= ZSTD_lazy2); +} + +/* Returns true if the strategy and useRowMatchFinder mode indicate that we will use the row based matchfinder + * for this compression. + */ +static int ZSTD_rowMatchFinderUsed(const ZSTD_strategy strategy, const ZSTD_paramSwitch_e mode) { + assert(mode != ZSTD_ps_auto); + return ZSTD_rowMatchFinderSupported(strategy) && (mode == ZSTD_ps_enable); +} + +/* Returns row matchfinder usage given an initial mode and cParams */ +static ZSTD_paramSwitch_e ZSTD_resolveRowMatchFinderMode(ZSTD_paramSwitch_e mode, + const ZSTD_compressionParameters* const cParams) { +#if defined(ZSTD_ARCH_X86_SSE2) || defined(ZSTD_ARCH_ARM_NEON) + int const kHasSIMD128 = 1; +#else + int const kHasSIMD128 = 0; +#endif + if (mode != ZSTD_ps_auto) return mode; /* if requested enabled, but no SIMD, we still will use row matchfinder */ + mode = ZSTD_ps_disable; + if (!ZSTD_rowMatchFinderSupported(cParams->strategy)) return mode; + if (kHasSIMD128) { + if (cParams->windowLog > 14) mode = ZSTD_ps_enable; + } else { + if (cParams->windowLog > 17) mode = ZSTD_ps_enable; + } + return mode; +} + +/* Returns block splitter usage (generally speaking, when using slower/stronger compression modes) */ +static ZSTD_paramSwitch_e ZSTD_resolveBlockSplitterMode(ZSTD_paramSwitch_e mode, + const ZSTD_compressionParameters* const cParams) { + if (mode != ZSTD_ps_auto) return mode; + return (cParams->strategy >= ZSTD_btopt && cParams->windowLog >= 17) ? ZSTD_ps_enable : ZSTD_ps_disable; +} + +/* Returns 1 if the arguments indicate that we should allocate a chainTable, 0 otherwise */ +static int ZSTD_allocateChainTable(const ZSTD_strategy strategy, + const ZSTD_paramSwitch_e useRowMatchFinder, + const U32 forDDSDict) { + assert(useRowMatchFinder != ZSTD_ps_auto); + /* We always should allocate a chaintable if we are allocating a matchstate for a DDS dictionary matchstate. + * We do not allocate a chaintable if we are using ZSTD_fast, or are using the row-based matchfinder. + */ + return forDDSDict || ((strategy != ZSTD_fast) && !ZSTD_rowMatchFinderUsed(strategy, useRowMatchFinder)); +} + +/* Returns ZSTD_ps_enable if compression parameters are such that we should + * enable long distance matching (wlog >= 27, strategy >= btopt). + * Returns ZSTD_ps_disable otherwise. + */ +static ZSTD_paramSwitch_e ZSTD_resolveEnableLdm(ZSTD_paramSwitch_e mode, + const ZSTD_compressionParameters* const cParams) { + if (mode != ZSTD_ps_auto) return mode; + return (cParams->strategy >= ZSTD_btopt && cParams->windowLog >= 27) ? ZSTD_ps_enable : ZSTD_ps_disable; +} + +static int ZSTD_resolveExternalSequenceValidation(int mode) { + return mode; +} + +/* Resolves maxBlockSize to the default if no value is present. */ +static size_t ZSTD_resolveMaxBlockSize(size_t maxBlockSize) { + if (maxBlockSize == 0) { + return ZSTD_BLOCKSIZE_MAX; + } else { + return maxBlockSize; + } +} + +static ZSTD_paramSwitch_e ZSTD_resolveExternalRepcodeSearch(ZSTD_paramSwitch_e value, int cLevel) { + if (value != ZSTD_ps_auto) return value; + if (cLevel < 10) { + return ZSTD_ps_disable; + } else { + return ZSTD_ps_enable; + } +} + +/* Returns 1 if compression parameters are such that CDict hashtable and chaintable indices are tagged. + * If so, the tags need to be removed in ZSTD_resetCCtx_byCopyingCDict. */ +static int ZSTD_CDictIndicesAreTagged(const ZSTD_compressionParameters* const cParams) { + return cParams->strategy == ZSTD_fast || cParams->strategy == ZSTD_dfast; +} + +static ZSTD_CCtx_params ZSTD_makeCCtxParamsFromCParams( + ZSTD_compressionParameters cParams) +{ + ZSTD_CCtx_params cctxParams; + /* should not matter, as all cParams are presumed properly defined */ + ZSTD_CCtxParams_init(&cctxParams, ZSTD_CLEVEL_DEFAULT); + cctxParams.cParams = cParams; + + /* Adjust advanced params according to cParams */ + cctxParams.ldmParams.enableLdm = ZSTD_resolveEnableLdm(cctxParams.ldmParams.enableLdm, &cParams); + if (cctxParams.ldmParams.enableLdm == ZSTD_ps_enable) { + ZSTD_ldm_adjustParameters(&cctxParams.ldmParams, &cParams); + assert(cctxParams.ldmParams.hashLog >= cctxParams.ldmParams.bucketSizeLog); + assert(cctxParams.ldmParams.hashRateLog < 32); + } + cctxParams.useBlockSplitter = ZSTD_resolveBlockSplitterMode(cctxParams.useBlockSplitter, &cParams); + cctxParams.useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(cctxParams.useRowMatchFinder, &cParams); + cctxParams.validateSequences = ZSTD_resolveExternalSequenceValidation(cctxParams.validateSequences); + cctxParams.maxBlockSize = ZSTD_resolveMaxBlockSize(cctxParams.maxBlockSize); + cctxParams.searchForExternalRepcodes = ZSTD_resolveExternalRepcodeSearch(cctxParams.searchForExternalRepcodes, + cctxParams.compressionLevel); + assert(!ZSTD_checkCParams(cParams)); + return cctxParams; +} + +static ZSTD_CCtx_params* ZSTD_createCCtxParams_advanced( + ZSTD_customMem customMem) +{ + ZSTD_CCtx_params* params; + if ((!customMem.customAlloc) ^ (!customMem.customFree)) return NULL; + params = (ZSTD_CCtx_params*)ZSTD_customCalloc( + sizeof(ZSTD_CCtx_params), customMem); + if (!params) { return NULL; } + ZSTD_CCtxParams_init(params, ZSTD_CLEVEL_DEFAULT); + params->customMem = customMem; + return params; +} + +ZSTD_CCtx_params* ZSTD_createCCtxParams(void) +{ + return ZSTD_createCCtxParams_advanced(ZSTD_defaultCMem); +} + +size_t ZSTD_freeCCtxParams(ZSTD_CCtx_params* params) +{ + if (params == NULL) { return 0; } + ZSTD_customFree(params, params->customMem); + return 0; +} + +size_t ZSTD_CCtxParams_reset(ZSTD_CCtx_params* params) +{ + return ZSTD_CCtxParams_init(params, ZSTD_CLEVEL_DEFAULT); +} + +size_t ZSTD_CCtxParams_init(ZSTD_CCtx_params* cctxParams, int compressionLevel) { + RETURN_ERROR_IF(!cctxParams, GENERIC, "NULL pointer!"); + ZSTD_memset(cctxParams, 0, sizeof(*cctxParams)); + cctxParams->compressionLevel = compressionLevel; + cctxParams->fParams.contentSizeFlag = 1; + return 0; +} + +#define ZSTD_NO_CLEVEL 0 + +/** + * Initializes `cctxParams` from `params` and `compressionLevel`. + * @param compressionLevel If params are derived from a compression level then that compression level, otherwise ZSTD_NO_CLEVEL. + */ +static void +ZSTD_CCtxParams_init_internal(ZSTD_CCtx_params* cctxParams, + const ZSTD_parameters* params, + int compressionLevel) +{ + assert(!ZSTD_checkCParams(params->cParams)); + ZSTD_memset(cctxParams, 0, sizeof(*cctxParams)); + cctxParams->cParams = params->cParams; + cctxParams->fParams = params->fParams; + /* Should not matter, as all cParams are presumed properly defined. + * But, set it for tracing anyway. + */ + cctxParams->compressionLevel = compressionLevel; + cctxParams->useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(cctxParams->useRowMatchFinder, ¶ms->cParams); + cctxParams->useBlockSplitter = ZSTD_resolveBlockSplitterMode(cctxParams->useBlockSplitter, ¶ms->cParams); + cctxParams->ldmParams.enableLdm = ZSTD_resolveEnableLdm(cctxParams->ldmParams.enableLdm, ¶ms->cParams); + cctxParams->validateSequences = ZSTD_resolveExternalSequenceValidation(cctxParams->validateSequences); + cctxParams->maxBlockSize = ZSTD_resolveMaxBlockSize(cctxParams->maxBlockSize); + cctxParams->searchForExternalRepcodes = ZSTD_resolveExternalRepcodeSearch(cctxParams->searchForExternalRepcodes, compressionLevel); + DEBUGLOG(4, "ZSTD_CCtxParams_init_internal: useRowMatchFinder=%d, useBlockSplitter=%d ldm=%d", + cctxParams->useRowMatchFinder, cctxParams->useBlockSplitter, cctxParams->ldmParams.enableLdm); +} + +size_t ZSTD_CCtxParams_init_advanced(ZSTD_CCtx_params* cctxParams, ZSTD_parameters params) +{ + RETURN_ERROR_IF(!cctxParams, GENERIC, "NULL pointer!"); + FORWARD_IF_ERROR( ZSTD_checkCParams(params.cParams) , ""); + ZSTD_CCtxParams_init_internal(cctxParams, ¶ms, ZSTD_NO_CLEVEL); + return 0; +} + +/** + * Sets cctxParams' cParams and fParams from params, but otherwise leaves them alone. + * @param params Validated zstd parameters. + */ +static void ZSTD_CCtxParams_setZstdParams( + ZSTD_CCtx_params* cctxParams, const ZSTD_parameters* params) +{ + assert(!ZSTD_checkCParams(params->cParams)); + cctxParams->cParams = params->cParams; + cctxParams->fParams = params->fParams; + /* Should not matter, as all cParams are presumed properly defined. + * But, set it for tracing anyway. + */ + cctxParams->compressionLevel = ZSTD_NO_CLEVEL; +} + +ZSTD_bounds ZSTD_cParam_getBounds(ZSTD_cParameter param) +{ + ZSTD_bounds bounds = { 0, 0, 0 }; + + switch(param) + { + case ZSTD_c_compressionLevel: + bounds.lowerBound = ZSTD_minCLevel(); + bounds.upperBound = ZSTD_maxCLevel(); + return bounds; + + case ZSTD_c_windowLog: + bounds.lowerBound = ZSTD_WINDOWLOG_MIN; + bounds.upperBound = ZSTD_WINDOWLOG_MAX; + return bounds; + + case ZSTD_c_hashLog: + bounds.lowerBound = ZSTD_HASHLOG_MIN; + bounds.upperBound = ZSTD_HASHLOG_MAX; + return bounds; + + case ZSTD_c_chainLog: + bounds.lowerBound = ZSTD_CHAINLOG_MIN; + bounds.upperBound = ZSTD_CHAINLOG_MAX; + return bounds; + + case ZSTD_c_searchLog: + bounds.lowerBound = ZSTD_SEARCHLOG_MIN; + bounds.upperBound = ZSTD_SEARCHLOG_MAX; + return bounds; + + case ZSTD_c_minMatch: + bounds.lowerBound = ZSTD_MINMATCH_MIN; + bounds.upperBound = ZSTD_MINMATCH_MAX; + return bounds; + + case ZSTD_c_targetLength: + bounds.lowerBound = ZSTD_TARGETLENGTH_MIN; + bounds.upperBound = ZSTD_TARGETLENGTH_MAX; + return bounds; + + case ZSTD_c_strategy: + bounds.lowerBound = ZSTD_STRATEGY_MIN; + bounds.upperBound = ZSTD_STRATEGY_MAX; + return bounds; + + case ZSTD_c_contentSizeFlag: + bounds.lowerBound = 0; + bounds.upperBound = 1; + return bounds; + + case ZSTD_c_checksumFlag: + bounds.lowerBound = 0; + bounds.upperBound = 1; + return bounds; + + case ZSTD_c_dictIDFlag: + bounds.lowerBound = 0; + bounds.upperBound = 1; + return bounds; + + case ZSTD_c_nbWorkers: + bounds.lowerBound = 0; +#ifdef ZSTD_MULTITHREAD + bounds.upperBound = ZSTDMT_NBWORKERS_MAX; +#else + bounds.upperBound = 0; +#endif + return bounds; + + case ZSTD_c_jobSize: + bounds.lowerBound = 0; +#ifdef ZSTD_MULTITHREAD + bounds.upperBound = ZSTDMT_JOBSIZE_MAX; +#else + bounds.upperBound = 0; +#endif + return bounds; + + case ZSTD_c_overlapLog: +#ifdef ZSTD_MULTITHREAD + bounds.lowerBound = ZSTD_OVERLAPLOG_MIN; + bounds.upperBound = ZSTD_OVERLAPLOG_MAX; +#else + bounds.lowerBound = 0; + bounds.upperBound = 0; +#endif + return bounds; + + case ZSTD_c_enableDedicatedDictSearch: + bounds.lowerBound = 0; + bounds.upperBound = 1; + return bounds; + + case ZSTD_c_enableLongDistanceMatching: + bounds.lowerBound = (int)ZSTD_ps_auto; + bounds.upperBound = (int)ZSTD_ps_disable; + return bounds; + + case ZSTD_c_ldmHashLog: + bounds.lowerBound = ZSTD_LDM_HASHLOG_MIN; + bounds.upperBound = ZSTD_LDM_HASHLOG_MAX; + return bounds; + + case ZSTD_c_ldmMinMatch: + bounds.lowerBound = ZSTD_LDM_MINMATCH_MIN; + bounds.upperBound = ZSTD_LDM_MINMATCH_MAX; + return bounds; + + case ZSTD_c_ldmBucketSizeLog: + bounds.lowerBound = ZSTD_LDM_BUCKETSIZELOG_MIN; + bounds.upperBound = ZSTD_LDM_BUCKETSIZELOG_MAX; + return bounds; + + case ZSTD_c_ldmHashRateLog: + bounds.lowerBound = ZSTD_LDM_HASHRATELOG_MIN; + bounds.upperBound = ZSTD_LDM_HASHRATELOG_MAX; + return bounds; + + /* experimental parameters */ + case ZSTD_c_rsyncable: + bounds.lowerBound = 0; + bounds.upperBound = 1; + return bounds; + + case ZSTD_c_forceMaxWindow : + bounds.lowerBound = 0; + bounds.upperBound = 1; + return bounds; + + case ZSTD_c_format: + ZSTD_STATIC_ASSERT(ZSTD_f_zstd1 < ZSTD_f_zstd1_magicless); + bounds.lowerBound = ZSTD_f_zstd1; + bounds.upperBound = ZSTD_f_zstd1_magicless; /* note : how to ensure at compile time that this is the highest value enum ? */ + return bounds; + + case ZSTD_c_forceAttachDict: + ZSTD_STATIC_ASSERT(ZSTD_dictDefaultAttach < ZSTD_dictForceLoad); + bounds.lowerBound = ZSTD_dictDefaultAttach; + bounds.upperBound = ZSTD_dictForceLoad; /* note : how to ensure at compile time that this is the highest value enum ? */ + return bounds; + + case ZSTD_c_literalCompressionMode: + ZSTD_STATIC_ASSERT(ZSTD_ps_auto < ZSTD_ps_enable && ZSTD_ps_enable < ZSTD_ps_disable); + bounds.lowerBound = (int)ZSTD_ps_auto; + bounds.upperBound = (int)ZSTD_ps_disable; + return bounds; + + case ZSTD_c_targetCBlockSize: + bounds.lowerBound = ZSTD_TARGETCBLOCKSIZE_MIN; + bounds.upperBound = ZSTD_TARGETCBLOCKSIZE_MAX; + return bounds; + + case ZSTD_c_srcSizeHint: + bounds.lowerBound = ZSTD_SRCSIZEHINT_MIN; + bounds.upperBound = ZSTD_SRCSIZEHINT_MAX; + return bounds; + + case ZSTD_c_stableInBuffer: + case ZSTD_c_stableOutBuffer: + bounds.lowerBound = (int)ZSTD_bm_buffered; + bounds.upperBound = (int)ZSTD_bm_stable; + return bounds; + + case ZSTD_c_blockDelimiters: + bounds.lowerBound = (int)ZSTD_sf_noBlockDelimiters; + bounds.upperBound = (int)ZSTD_sf_explicitBlockDelimiters; + return bounds; + + case ZSTD_c_validateSequences: + bounds.lowerBound = 0; + bounds.upperBound = 1; + return bounds; + + case ZSTD_c_useBlockSplitter: + bounds.lowerBound = (int)ZSTD_ps_auto; + bounds.upperBound = (int)ZSTD_ps_disable; + return bounds; + + case ZSTD_c_useRowMatchFinder: + bounds.lowerBound = (int)ZSTD_ps_auto; + bounds.upperBound = (int)ZSTD_ps_disable; + return bounds; + + case ZSTD_c_deterministicRefPrefix: + bounds.lowerBound = 0; + bounds.upperBound = 1; + return bounds; + + case ZSTD_c_prefetchCDictTables: + bounds.lowerBound = (int)ZSTD_ps_auto; + bounds.upperBound = (int)ZSTD_ps_disable; + return bounds; + + case ZSTD_c_enableSeqProducerFallback: + bounds.lowerBound = 0; + bounds.upperBound = 1; + return bounds; + + case ZSTD_c_maxBlockSize: + bounds.lowerBound = ZSTD_BLOCKSIZE_MAX_MIN; + bounds.upperBound = ZSTD_BLOCKSIZE_MAX; + return bounds; + + case ZSTD_c_searchForExternalRepcodes: + bounds.lowerBound = (int)ZSTD_ps_auto; + bounds.upperBound = (int)ZSTD_ps_disable; + return bounds; + + default: + bounds.error = ERROR(parameter_unsupported); + return bounds; + } +} + +/* ZSTD_cParam_clampBounds: + * Clamps the value into the bounded range. + */ +static size_t ZSTD_cParam_clampBounds(ZSTD_cParameter cParam, int* value) +{ + ZSTD_bounds const bounds = ZSTD_cParam_getBounds(cParam); + if (ZSTD_isError(bounds.error)) return bounds.error; + if (*value < bounds.lowerBound) *value = bounds.lowerBound; + if (*value > bounds.upperBound) *value = bounds.upperBound; + return 0; +} + +#define BOUNDCHECK(cParam, val) \ + do { \ + RETURN_ERROR_IF(!ZSTD_cParam_withinBounds(cParam,val), \ + parameter_outOfBound, "Param out of bounds"); \ + } while (0) + + +static int ZSTD_isUpdateAuthorized(ZSTD_cParameter param) +{ + switch(param) + { + case ZSTD_c_compressionLevel: + case ZSTD_c_hashLog: + case ZSTD_c_chainLog: + case ZSTD_c_searchLog: + case ZSTD_c_minMatch: + case ZSTD_c_targetLength: + case ZSTD_c_strategy: + return 1; + + case ZSTD_c_format: + case ZSTD_c_windowLog: + case ZSTD_c_contentSizeFlag: + case ZSTD_c_checksumFlag: + case ZSTD_c_dictIDFlag: + case ZSTD_c_forceMaxWindow : + case ZSTD_c_nbWorkers: + case ZSTD_c_jobSize: + case ZSTD_c_overlapLog: + case ZSTD_c_rsyncable: + case ZSTD_c_enableDedicatedDictSearch: + case ZSTD_c_enableLongDistanceMatching: + case ZSTD_c_ldmHashLog: + case ZSTD_c_ldmMinMatch: + case ZSTD_c_ldmBucketSizeLog: + case ZSTD_c_ldmHashRateLog: + case ZSTD_c_forceAttachDict: + case ZSTD_c_literalCompressionMode: + case ZSTD_c_targetCBlockSize: + case ZSTD_c_srcSizeHint: + case ZSTD_c_stableInBuffer: + case ZSTD_c_stableOutBuffer: + case ZSTD_c_blockDelimiters: + case ZSTD_c_validateSequences: + case ZSTD_c_useBlockSplitter: + case ZSTD_c_useRowMatchFinder: + case ZSTD_c_deterministicRefPrefix: + case ZSTD_c_prefetchCDictTables: + case ZSTD_c_enableSeqProducerFallback: + case ZSTD_c_maxBlockSize: + case ZSTD_c_searchForExternalRepcodes: + default: + return 0; + } +} + +size_t ZSTD_CCtx_setParameter(ZSTD_CCtx* cctx, ZSTD_cParameter param, int value) +{ + DEBUGLOG(4, "ZSTD_CCtx_setParameter (%i, %i)", (int)param, value); + if (cctx->streamStage != zcss_init) { + if (ZSTD_isUpdateAuthorized(param)) { + cctx->cParamsChanged = 1; + } else { + RETURN_ERROR(stage_wrong, "can only set params in cctx init stage"); + } } + + switch(param) + { + case ZSTD_c_nbWorkers: + RETURN_ERROR_IF((value!=0) && cctx->staticSize, parameter_unsupported, + "MT not compatible with static alloc"); + break; + + case ZSTD_c_compressionLevel: + case ZSTD_c_windowLog: + case ZSTD_c_hashLog: + case ZSTD_c_chainLog: + case ZSTD_c_searchLog: + case ZSTD_c_minMatch: + case ZSTD_c_targetLength: + case ZSTD_c_strategy: + case ZSTD_c_ldmHashRateLog: + case ZSTD_c_format: + case ZSTD_c_contentSizeFlag: + case ZSTD_c_checksumFlag: + case ZSTD_c_dictIDFlag: + case ZSTD_c_forceMaxWindow: + case ZSTD_c_forceAttachDict: + case ZSTD_c_literalCompressionMode: + case ZSTD_c_jobSize: + case ZSTD_c_overlapLog: + case ZSTD_c_rsyncable: + case ZSTD_c_enableDedicatedDictSearch: + case ZSTD_c_enableLongDistanceMatching: + case ZSTD_c_ldmHashLog: + case ZSTD_c_ldmMinMatch: + case ZSTD_c_ldmBucketSizeLog: + case ZSTD_c_targetCBlockSize: + case ZSTD_c_srcSizeHint: + case ZSTD_c_stableInBuffer: + case ZSTD_c_stableOutBuffer: + case ZSTD_c_blockDelimiters: + case ZSTD_c_validateSequences: + case ZSTD_c_useBlockSplitter: + case ZSTD_c_useRowMatchFinder: + case ZSTD_c_deterministicRefPrefix: + case ZSTD_c_prefetchCDictTables: + case ZSTD_c_enableSeqProducerFallback: + case ZSTD_c_maxBlockSize: + case ZSTD_c_searchForExternalRepcodes: + break; + + default: RETURN_ERROR(parameter_unsupported, "unknown parameter"); + } + return ZSTD_CCtxParams_setParameter(&cctx->requestedParams, param, value); +} + +size_t ZSTD_CCtxParams_setParameter(ZSTD_CCtx_params* CCtxParams, + ZSTD_cParameter param, int value) +{ + DEBUGLOG(4, "ZSTD_CCtxParams_setParameter (%i, %i)", (int)param, value); + switch(param) + { + case ZSTD_c_format : + BOUNDCHECK(ZSTD_c_format, value); + CCtxParams->format = (ZSTD_format_e)value; + return (size_t)CCtxParams->format; + + case ZSTD_c_compressionLevel : { + FORWARD_IF_ERROR(ZSTD_cParam_clampBounds(param, &value), ""); + if (value == 0) + CCtxParams->compressionLevel = ZSTD_CLEVEL_DEFAULT; /* 0 == default */ + else + CCtxParams->compressionLevel = value; + if (CCtxParams->compressionLevel >= 0) return (size_t)CCtxParams->compressionLevel; + return 0; /* return type (size_t) cannot represent negative values */ + } + + case ZSTD_c_windowLog : + if (value!=0) /* 0 => use default */ + BOUNDCHECK(ZSTD_c_windowLog, value); + CCtxParams->cParams.windowLog = (U32)value; + return CCtxParams->cParams.windowLog; + + case ZSTD_c_hashLog : + if (value!=0) /* 0 => use default */ + BOUNDCHECK(ZSTD_c_hashLog, value); + CCtxParams->cParams.hashLog = (U32)value; + return CCtxParams->cParams.hashLog; + + case ZSTD_c_chainLog : + if (value!=0) /* 0 => use default */ + BOUNDCHECK(ZSTD_c_chainLog, value); + CCtxParams->cParams.chainLog = (U32)value; + return CCtxParams->cParams.chainLog; + + case ZSTD_c_searchLog : + if (value!=0) /* 0 => use default */ + BOUNDCHECK(ZSTD_c_searchLog, value); + CCtxParams->cParams.searchLog = (U32)value; + return (size_t)value; + + case ZSTD_c_minMatch : + if (value!=0) /* 0 => use default */ + BOUNDCHECK(ZSTD_c_minMatch, value); + CCtxParams->cParams.minMatch = (U32)value; + return CCtxParams->cParams.minMatch; + + case ZSTD_c_targetLength : + BOUNDCHECK(ZSTD_c_targetLength, value); + CCtxParams->cParams.targetLength = (U32)value; + return CCtxParams->cParams.targetLength; + + case ZSTD_c_strategy : + if (value!=0) /* 0 => use default */ + BOUNDCHECK(ZSTD_c_strategy, value); + CCtxParams->cParams.strategy = (ZSTD_strategy)value; + return (size_t)CCtxParams->cParams.strategy; + + case ZSTD_c_contentSizeFlag : + /* Content size written in frame header _when known_ (default:1) */ + DEBUGLOG(4, "set content size flag = %u", (value!=0)); + CCtxParams->fParams.contentSizeFlag = value != 0; + return (size_t)CCtxParams->fParams.contentSizeFlag; + + case ZSTD_c_checksumFlag : + /* A 32-bits content checksum will be calculated and written at end of frame (default:0) */ + CCtxParams->fParams.checksumFlag = value != 0; + return (size_t)CCtxParams->fParams.checksumFlag; + + case ZSTD_c_dictIDFlag : /* When applicable, dictionary's dictID is provided in frame header (default:1) */ + DEBUGLOG(4, "set dictIDFlag = %u", (value!=0)); + CCtxParams->fParams.noDictIDFlag = !value; + return !CCtxParams->fParams.noDictIDFlag; + + case ZSTD_c_forceMaxWindow : + CCtxParams->forceWindow = (value != 0); + return (size_t)CCtxParams->forceWindow; + + case ZSTD_c_forceAttachDict : { + const ZSTD_dictAttachPref_e pref = (ZSTD_dictAttachPref_e)value; + BOUNDCHECK(ZSTD_c_forceAttachDict, (int)pref); + CCtxParams->attachDictPref = pref; + return CCtxParams->attachDictPref; + } + + case ZSTD_c_literalCompressionMode : { + const ZSTD_paramSwitch_e lcm = (ZSTD_paramSwitch_e)value; + BOUNDCHECK(ZSTD_c_literalCompressionMode, (int)lcm); + CCtxParams->literalCompressionMode = lcm; + return CCtxParams->literalCompressionMode; + } + + case ZSTD_c_nbWorkers : +#ifndef ZSTD_MULTITHREAD + RETURN_ERROR_IF(value!=0, parameter_unsupported, "not compiled with multithreading"); + return 0; +#else + FORWARD_IF_ERROR(ZSTD_cParam_clampBounds(param, &value), ""); + CCtxParams->nbWorkers = value; + return (size_t)(CCtxParams->nbWorkers); +#endif + + case ZSTD_c_jobSize : +#ifndef ZSTD_MULTITHREAD + RETURN_ERROR_IF(value!=0, parameter_unsupported, "not compiled with multithreading"); + return 0; +#else + /* Adjust to the minimum non-default value. */ + if (value != 0 && value < ZSTDMT_JOBSIZE_MIN) + value = ZSTDMT_JOBSIZE_MIN; + FORWARD_IF_ERROR(ZSTD_cParam_clampBounds(param, &value), ""); + assert(value >= 0); + CCtxParams->jobSize = value; + return CCtxParams->jobSize; +#endif + + case ZSTD_c_overlapLog : +#ifndef ZSTD_MULTITHREAD + RETURN_ERROR_IF(value!=0, parameter_unsupported, "not compiled with multithreading"); + return 0; +#else + FORWARD_IF_ERROR(ZSTD_cParam_clampBounds(ZSTD_c_overlapLog, &value), ""); + CCtxParams->overlapLog = value; + return (size_t)CCtxParams->overlapLog; +#endif + + case ZSTD_c_rsyncable : +#ifndef ZSTD_MULTITHREAD + RETURN_ERROR_IF(value!=0, parameter_unsupported, "not compiled with multithreading"); + return 0; +#else + FORWARD_IF_ERROR(ZSTD_cParam_clampBounds(ZSTD_c_overlapLog, &value), ""); + CCtxParams->rsyncable = value; + return (size_t)CCtxParams->rsyncable; +#endif + + case ZSTD_c_enableDedicatedDictSearch : + CCtxParams->enableDedicatedDictSearch = (value!=0); + return (size_t)CCtxParams->enableDedicatedDictSearch; + + case ZSTD_c_enableLongDistanceMatching : + BOUNDCHECK(ZSTD_c_enableLongDistanceMatching, value); + CCtxParams->ldmParams.enableLdm = (ZSTD_paramSwitch_e)value; + return CCtxParams->ldmParams.enableLdm; + + case ZSTD_c_ldmHashLog : + if (value!=0) /* 0 ==> auto */ + BOUNDCHECK(ZSTD_c_ldmHashLog, value); + CCtxParams->ldmParams.hashLog = (U32)value; + return CCtxParams->ldmParams.hashLog; + + case ZSTD_c_ldmMinMatch : + if (value!=0) /* 0 ==> default */ + BOUNDCHECK(ZSTD_c_ldmMinMatch, value); + CCtxParams->ldmParams.minMatchLength = (U32)value; + return CCtxParams->ldmParams.minMatchLength; + + case ZSTD_c_ldmBucketSizeLog : + if (value!=0) /* 0 ==> default */ + BOUNDCHECK(ZSTD_c_ldmBucketSizeLog, value); + CCtxParams->ldmParams.bucketSizeLog = (U32)value; + return CCtxParams->ldmParams.bucketSizeLog; + + case ZSTD_c_ldmHashRateLog : + if (value!=0) /* 0 ==> default */ + BOUNDCHECK(ZSTD_c_ldmHashRateLog, value); + CCtxParams->ldmParams.hashRateLog = (U32)value; + return CCtxParams->ldmParams.hashRateLog; + + case ZSTD_c_targetCBlockSize : + if (value!=0) { /* 0 ==> default */ + value = MAX(value, ZSTD_TARGETCBLOCKSIZE_MIN); + BOUNDCHECK(ZSTD_c_targetCBlockSize, value); + } + CCtxParams->targetCBlockSize = (U32)value; + return CCtxParams->targetCBlockSize; + + case ZSTD_c_srcSizeHint : + if (value!=0) /* 0 ==> default */ + BOUNDCHECK(ZSTD_c_srcSizeHint, value); + CCtxParams->srcSizeHint = value; + return (size_t)CCtxParams->srcSizeHint; + + case ZSTD_c_stableInBuffer: + BOUNDCHECK(ZSTD_c_stableInBuffer, value); + CCtxParams->inBufferMode = (ZSTD_bufferMode_e)value; + return CCtxParams->inBufferMode; + + case ZSTD_c_stableOutBuffer: + BOUNDCHECK(ZSTD_c_stableOutBuffer, value); + CCtxParams->outBufferMode = (ZSTD_bufferMode_e)value; + return CCtxParams->outBufferMode; + + case ZSTD_c_blockDelimiters: + BOUNDCHECK(ZSTD_c_blockDelimiters, value); + CCtxParams->blockDelimiters = (ZSTD_sequenceFormat_e)value; + return CCtxParams->blockDelimiters; + + case ZSTD_c_validateSequences: + BOUNDCHECK(ZSTD_c_validateSequences, value); + CCtxParams->validateSequences = value; + return (size_t)CCtxParams->validateSequences; + + case ZSTD_c_useBlockSplitter: + BOUNDCHECK(ZSTD_c_useBlockSplitter, value); + CCtxParams->useBlockSplitter = (ZSTD_paramSwitch_e)value; + return CCtxParams->useBlockSplitter; + + case ZSTD_c_useRowMatchFinder: + BOUNDCHECK(ZSTD_c_useRowMatchFinder, value); + CCtxParams->useRowMatchFinder = (ZSTD_paramSwitch_e)value; + return CCtxParams->useRowMatchFinder; + + case ZSTD_c_deterministicRefPrefix: + BOUNDCHECK(ZSTD_c_deterministicRefPrefix, value); + CCtxParams->deterministicRefPrefix = !!value; + return (size_t)CCtxParams->deterministicRefPrefix; + + case ZSTD_c_prefetchCDictTables: + BOUNDCHECK(ZSTD_c_prefetchCDictTables, value); + CCtxParams->prefetchCDictTables = (ZSTD_paramSwitch_e)value; + return CCtxParams->prefetchCDictTables; + + case ZSTD_c_enableSeqProducerFallback: + BOUNDCHECK(ZSTD_c_enableSeqProducerFallback, value); + CCtxParams->enableMatchFinderFallback = value; + return (size_t)CCtxParams->enableMatchFinderFallback; + + case ZSTD_c_maxBlockSize: + if (value!=0) /* 0 ==> default */ + BOUNDCHECK(ZSTD_c_maxBlockSize, value); + CCtxParams->maxBlockSize = value; + return CCtxParams->maxBlockSize; + + case ZSTD_c_searchForExternalRepcodes: + BOUNDCHECK(ZSTD_c_searchForExternalRepcodes, value); + CCtxParams->searchForExternalRepcodes = (ZSTD_paramSwitch_e)value; + return CCtxParams->searchForExternalRepcodes; + + default: RETURN_ERROR(parameter_unsupported, "unknown parameter"); + } +} + +size_t ZSTD_CCtx_getParameter(ZSTD_CCtx const* cctx, ZSTD_cParameter param, int* value) +{ + return ZSTD_CCtxParams_getParameter(&cctx->requestedParams, param, value); +} + +size_t ZSTD_CCtxParams_getParameter( + ZSTD_CCtx_params const* CCtxParams, ZSTD_cParameter param, int* value) +{ + switch(param) + { + case ZSTD_c_format : + *value = CCtxParams->format; + break; + case ZSTD_c_compressionLevel : + *value = CCtxParams->compressionLevel; + break; + case ZSTD_c_windowLog : + *value = (int)CCtxParams->cParams.windowLog; + break; + case ZSTD_c_hashLog : + *value = (int)CCtxParams->cParams.hashLog; + break; + case ZSTD_c_chainLog : + *value = (int)CCtxParams->cParams.chainLog; + break; + case ZSTD_c_searchLog : + *value = CCtxParams->cParams.searchLog; + break; + case ZSTD_c_minMatch : + *value = CCtxParams->cParams.minMatch; + break; + case ZSTD_c_targetLength : + *value = CCtxParams->cParams.targetLength; + break; + case ZSTD_c_strategy : + *value = (unsigned)CCtxParams->cParams.strategy; + break; + case ZSTD_c_contentSizeFlag : + *value = CCtxParams->fParams.contentSizeFlag; + break; + case ZSTD_c_checksumFlag : + *value = CCtxParams->fParams.checksumFlag; + break; + case ZSTD_c_dictIDFlag : + *value = !CCtxParams->fParams.noDictIDFlag; + break; + case ZSTD_c_forceMaxWindow : + *value = CCtxParams->forceWindow; + break; + case ZSTD_c_forceAttachDict : + *value = CCtxParams->attachDictPref; + break; + case ZSTD_c_literalCompressionMode : + *value = CCtxParams->literalCompressionMode; + break; + case ZSTD_c_nbWorkers : +#ifndef ZSTD_MULTITHREAD + assert(CCtxParams->nbWorkers == 0); +#endif + *value = CCtxParams->nbWorkers; + break; + case ZSTD_c_jobSize : +#ifndef ZSTD_MULTITHREAD + RETURN_ERROR(parameter_unsupported, "not compiled with multithreading"); +#else + assert(CCtxParams->jobSize <= INT_MAX); + *value = (int)CCtxParams->jobSize; + break; +#endif + case ZSTD_c_overlapLog : +#ifndef ZSTD_MULTITHREAD + RETURN_ERROR(parameter_unsupported, "not compiled with multithreading"); +#else + *value = CCtxParams->overlapLog; + break; +#endif + case ZSTD_c_rsyncable : +#ifndef ZSTD_MULTITHREAD + RETURN_ERROR(parameter_unsupported, "not compiled with multithreading"); +#else + *value = CCtxParams->rsyncable; + break; +#endif + case ZSTD_c_enableDedicatedDictSearch : + *value = CCtxParams->enableDedicatedDictSearch; + break; + case ZSTD_c_enableLongDistanceMatching : + *value = CCtxParams->ldmParams.enableLdm; + break; + case ZSTD_c_ldmHashLog : + *value = CCtxParams->ldmParams.hashLog; + break; + case ZSTD_c_ldmMinMatch : + *value = CCtxParams->ldmParams.minMatchLength; + break; + case ZSTD_c_ldmBucketSizeLog : + *value = CCtxParams->ldmParams.bucketSizeLog; + break; + case ZSTD_c_ldmHashRateLog : + *value = CCtxParams->ldmParams.hashRateLog; + break; + case ZSTD_c_targetCBlockSize : + *value = (int)CCtxParams->targetCBlockSize; + break; + case ZSTD_c_srcSizeHint : + *value = (int)CCtxParams->srcSizeHint; + break; + case ZSTD_c_stableInBuffer : + *value = (int)CCtxParams->inBufferMode; + break; + case ZSTD_c_stableOutBuffer : + *value = (int)CCtxParams->outBufferMode; + break; + case ZSTD_c_blockDelimiters : + *value = (int)CCtxParams->blockDelimiters; + break; + case ZSTD_c_validateSequences : + *value = (int)CCtxParams->validateSequences; + break; + case ZSTD_c_useBlockSplitter : + *value = (int)CCtxParams->useBlockSplitter; + break; + case ZSTD_c_useRowMatchFinder : + *value = (int)CCtxParams->useRowMatchFinder; + break; + case ZSTD_c_deterministicRefPrefix: + *value = (int)CCtxParams->deterministicRefPrefix; + break; + case ZSTD_c_prefetchCDictTables: + *value = (int)CCtxParams->prefetchCDictTables; + break; + case ZSTD_c_enableSeqProducerFallback: + *value = CCtxParams->enableMatchFinderFallback; + break; + case ZSTD_c_maxBlockSize: + *value = (int)CCtxParams->maxBlockSize; + break; + case ZSTD_c_searchForExternalRepcodes: + *value = (int)CCtxParams->searchForExternalRepcodes; + break; + default: RETURN_ERROR(parameter_unsupported, "unknown parameter"); + } + return 0; +} + +/** ZSTD_CCtx_setParametersUsingCCtxParams() : + * just applies `params` into `cctx` + * no action is performed, parameters are merely stored. + * If ZSTDMT is enabled, parameters are pushed to cctx->mtctx. + * This is possible even if a compression is ongoing. + * In which case, new parameters will be applied on the fly, starting with next compression job. + */ +size_t ZSTD_CCtx_setParametersUsingCCtxParams( + ZSTD_CCtx* cctx, const ZSTD_CCtx_params* params) +{ + DEBUGLOG(4, "ZSTD_CCtx_setParametersUsingCCtxParams"); + RETURN_ERROR_IF(cctx->streamStage != zcss_init, stage_wrong, + "The context is in the wrong stage!"); + RETURN_ERROR_IF(cctx->cdict, stage_wrong, + "Can't override parameters with cdict attached (some must " + "be inherited from the cdict)."); + + cctx->requestedParams = *params; + return 0; +} + +size_t ZSTD_CCtx_setCParams(ZSTD_CCtx* cctx, ZSTD_compressionParameters cparams) +{ + ZSTD_STATIC_ASSERT(sizeof(cparams) == 7 * 4 /* all params are listed below */); + DEBUGLOG(4, "ZSTD_CCtx_setCParams"); + /* only update if all parameters are valid */ + FORWARD_IF_ERROR(ZSTD_checkCParams(cparams), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(cctx, ZSTD_c_windowLog, cparams.windowLog), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(cctx, ZSTD_c_chainLog, cparams.chainLog), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(cctx, ZSTD_c_hashLog, cparams.hashLog), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(cctx, ZSTD_c_searchLog, cparams.searchLog), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(cctx, ZSTD_c_minMatch, cparams.minMatch), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(cctx, ZSTD_c_targetLength, cparams.targetLength), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(cctx, ZSTD_c_strategy, cparams.strategy), ""); + return 0; +} + +size_t ZSTD_CCtx_setFParams(ZSTD_CCtx* cctx, ZSTD_frameParameters fparams) +{ + ZSTD_STATIC_ASSERT(sizeof(fparams) == 3 * 4 /* all params are listed below */); + DEBUGLOG(4, "ZSTD_CCtx_setFParams"); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(cctx, ZSTD_c_contentSizeFlag, fparams.contentSizeFlag != 0), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(cctx, ZSTD_c_checksumFlag, fparams.checksumFlag != 0), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(cctx, ZSTD_c_dictIDFlag, fparams.noDictIDFlag == 0), ""); + return 0; +} + +size_t ZSTD_CCtx_setParams(ZSTD_CCtx* cctx, ZSTD_parameters params) +{ + DEBUGLOG(4, "ZSTD_CCtx_setParams"); + /* First check cParams, because we want to update all or none. */ + FORWARD_IF_ERROR(ZSTD_checkCParams(params.cParams), ""); + /* Next set fParams, because this could fail if the cctx isn't in init stage. */ + FORWARD_IF_ERROR(ZSTD_CCtx_setFParams(cctx, params.fParams), ""); + /* Finally set cParams, which should succeed. */ + FORWARD_IF_ERROR(ZSTD_CCtx_setCParams(cctx, params.cParams), ""); + return 0; +} + +size_t ZSTD_CCtx_setPledgedSrcSize(ZSTD_CCtx* cctx, unsigned long long pledgedSrcSize) +{ + DEBUGLOG(4, "ZSTD_CCtx_setPledgedSrcSize to %llu bytes", pledgedSrcSize); + RETURN_ERROR_IF(cctx->streamStage != zcss_init, stage_wrong, + "Can't set pledgedSrcSize when not in init stage."); + cctx->pledgedSrcSizePlusOne = pledgedSrcSize+1; + return 0; +} + +static ZSTD_compressionParameters ZSTD_dedicatedDictSearch_getCParams( + int const compressionLevel, + size_t const dictSize); +static int ZSTD_dedicatedDictSearch_isSupported( + const ZSTD_compressionParameters* cParams); +static void ZSTD_dedicatedDictSearch_revertCParams( + ZSTD_compressionParameters* cParams); + +/** + * Initializes the local dictionary using requested parameters. + * NOTE: Initialization does not employ the pledged src size, + * because the dictionary may be used for multiple compressions. + */ +static size_t ZSTD_initLocalDict(ZSTD_CCtx* cctx) +{ + ZSTD_localDict* const dl = &cctx->localDict; + if (dl->dict == NULL) { + /* No local dictionary. */ + assert(dl->dictBuffer == NULL); + assert(dl->cdict == NULL); + assert(dl->dictSize == 0); + return 0; + } + if (dl->cdict != NULL) { + /* Local dictionary already initialized. */ + assert(cctx->cdict == dl->cdict); + return 0; + } + assert(dl->dictSize > 0); + assert(cctx->cdict == NULL); + assert(cctx->prefixDict.dict == NULL); + + dl->cdict = ZSTD_createCDict_advanced2( + dl->dict, + dl->dictSize, + ZSTD_dlm_byRef, + dl->dictContentType, + &cctx->requestedParams, + cctx->customMem); + RETURN_ERROR_IF(!dl->cdict, memory_allocation, "ZSTD_createCDict_advanced failed"); + cctx->cdict = dl->cdict; + return 0; +} + +size_t ZSTD_CCtx_loadDictionary_advanced( + ZSTD_CCtx* cctx, + const void* dict, size_t dictSize, + ZSTD_dictLoadMethod_e dictLoadMethod, + ZSTD_dictContentType_e dictContentType) +{ + DEBUGLOG(4, "ZSTD_CCtx_loadDictionary_advanced (size: %u)", (U32)dictSize); + RETURN_ERROR_IF(cctx->streamStage != zcss_init, stage_wrong, + "Can't load a dictionary when cctx is not in init stage."); + ZSTD_clearAllDicts(cctx); /* erase any previously set dictionary */ + if (dict == NULL || dictSize == 0) /* no dictionary */ + return 0; + if (dictLoadMethod == ZSTD_dlm_byRef) { + cctx->localDict.dict = dict; + } else { + /* copy dictionary content inside CCtx to own its lifetime */ + void* dictBuffer; + RETURN_ERROR_IF(cctx->staticSize, memory_allocation, + "static CCtx can't allocate for an internal copy of dictionary"); + dictBuffer = ZSTD_customMalloc(dictSize, cctx->customMem); + RETURN_ERROR_IF(dictBuffer==NULL, memory_allocation, + "allocation failed for dictionary content"); + ZSTD_memcpy(dictBuffer, dict, dictSize); + cctx->localDict.dictBuffer = dictBuffer; /* owned ptr to free */ + cctx->localDict.dict = dictBuffer; /* read-only reference */ + } + cctx->localDict.dictSize = dictSize; + cctx->localDict.dictContentType = dictContentType; + return 0; +} + +size_t ZSTD_CCtx_loadDictionary_byReference( + ZSTD_CCtx* cctx, const void* dict, size_t dictSize) +{ + return ZSTD_CCtx_loadDictionary_advanced( + cctx, dict, dictSize, ZSTD_dlm_byRef, ZSTD_dct_auto); +} + +size_t ZSTD_CCtx_loadDictionary(ZSTD_CCtx* cctx, const void* dict, size_t dictSize) +{ + return ZSTD_CCtx_loadDictionary_advanced( + cctx, dict, dictSize, ZSTD_dlm_byCopy, ZSTD_dct_auto); +} + + +size_t ZSTD_CCtx_refCDict(ZSTD_CCtx* cctx, const ZSTD_CDict* cdict) +{ + RETURN_ERROR_IF(cctx->streamStage != zcss_init, stage_wrong, + "Can't ref a dict when ctx not in init stage."); + /* Free the existing local cdict (if any) to save memory. */ + ZSTD_clearAllDicts(cctx); + cctx->cdict = cdict; + return 0; +} + +size_t ZSTD_CCtx_refThreadPool(ZSTD_CCtx* cctx, ZSTD_threadPool* pool) +{ + RETURN_ERROR_IF(cctx->streamStage != zcss_init, stage_wrong, + "Can't ref a pool when ctx not in init stage."); + cctx->pool = pool; + return 0; +} + +size_t ZSTD_CCtx_refPrefix(ZSTD_CCtx* cctx, const void* prefix, size_t prefixSize) +{ + return ZSTD_CCtx_refPrefix_advanced(cctx, prefix, prefixSize, ZSTD_dct_rawContent); +} + +size_t ZSTD_CCtx_refPrefix_advanced( + ZSTD_CCtx* cctx, const void* prefix, size_t prefixSize, ZSTD_dictContentType_e dictContentType) +{ + RETURN_ERROR_IF(cctx->streamStage != zcss_init, stage_wrong, + "Can't ref a prefix when ctx not in init stage."); + ZSTD_clearAllDicts(cctx); + if (prefix != NULL && prefixSize > 0) { + cctx->prefixDict.dict = prefix; + cctx->prefixDict.dictSize = prefixSize; + cctx->prefixDict.dictContentType = dictContentType; + } + return 0; +} + +/*! ZSTD_CCtx_reset() : + * Also dumps dictionary */ +size_t ZSTD_CCtx_reset(ZSTD_CCtx* cctx, ZSTD_ResetDirective reset) +{ + if ( (reset == ZSTD_reset_session_only) + || (reset == ZSTD_reset_session_and_parameters) ) { + cctx->streamStage = zcss_init; + cctx->pledgedSrcSizePlusOne = 0; + } + if ( (reset == ZSTD_reset_parameters) + || (reset == ZSTD_reset_session_and_parameters) ) { + RETURN_ERROR_IF(cctx->streamStage != zcss_init, stage_wrong, + "Reset parameters is only possible during init stage."); + ZSTD_clearAllDicts(cctx); + return ZSTD_CCtxParams_reset(&cctx->requestedParams); + } + return 0; +} + + +/** ZSTD_checkCParams() : + control CParam values remain within authorized range. + @return : 0, or an error code if one value is beyond authorized range */ +size_t ZSTD_checkCParams(ZSTD_compressionParameters cParams) +{ + BOUNDCHECK(ZSTD_c_windowLog, (int)cParams.windowLog); + BOUNDCHECK(ZSTD_c_chainLog, (int)cParams.chainLog); + BOUNDCHECK(ZSTD_c_hashLog, (int)cParams.hashLog); + BOUNDCHECK(ZSTD_c_searchLog, (int)cParams.searchLog); + BOUNDCHECK(ZSTD_c_minMatch, (int)cParams.minMatch); + BOUNDCHECK(ZSTD_c_targetLength,(int)cParams.targetLength); + BOUNDCHECK(ZSTD_c_strategy, cParams.strategy); + return 0; +} + +/** ZSTD_clampCParams() : + * make CParam values within valid range. + * @return : valid CParams */ +static ZSTD_compressionParameters +ZSTD_clampCParams(ZSTD_compressionParameters cParams) +{ +# define CLAMP_TYPE(cParam, val, type) \ + do { \ + ZSTD_bounds const bounds = ZSTD_cParam_getBounds(cParam); \ + if ((int)valbounds.upperBound) val=(type)bounds.upperBound; \ + } while (0) +# define CLAMP(cParam, val) CLAMP_TYPE(cParam, val, unsigned) + CLAMP(ZSTD_c_windowLog, cParams.windowLog); + CLAMP(ZSTD_c_chainLog, cParams.chainLog); + CLAMP(ZSTD_c_hashLog, cParams.hashLog); + CLAMP(ZSTD_c_searchLog, cParams.searchLog); + CLAMP(ZSTD_c_minMatch, cParams.minMatch); + CLAMP(ZSTD_c_targetLength,cParams.targetLength); + CLAMP_TYPE(ZSTD_c_strategy,cParams.strategy, ZSTD_strategy); + return cParams; +} + +/** ZSTD_cycleLog() : + * condition for correct operation : hashLog > 1 */ +U32 ZSTD_cycleLog(U32 hashLog, ZSTD_strategy strat) +{ + U32 const btScale = ((U32)strat >= (U32)ZSTD_btlazy2); + return hashLog - btScale; +} + +/** ZSTD_dictAndWindowLog() : + * Returns an adjusted window log that is large enough to fit the source and the dictionary. + * The zstd format says that the entire dictionary is valid if one byte of the dictionary + * is within the window. So the hashLog and chainLog should be large enough to reference both + * the dictionary and the window. So we must use this adjusted dictAndWindowLog when downsizing + * the hashLog and windowLog. + * NOTE: srcSize must not be ZSTD_CONTENTSIZE_UNKNOWN. + */ +static U32 ZSTD_dictAndWindowLog(U32 windowLog, U64 srcSize, U64 dictSize) +{ + const U64 maxWindowSize = 1ULL << ZSTD_WINDOWLOG_MAX; + /* No dictionary ==> No change */ + if (dictSize == 0) { + return windowLog; + } + assert(windowLog <= ZSTD_WINDOWLOG_MAX); + assert(srcSize != ZSTD_CONTENTSIZE_UNKNOWN); /* Handled in ZSTD_adjustCParams_internal() */ + { + U64 const windowSize = 1ULL << windowLog; + U64 const dictAndWindowSize = dictSize + windowSize; + /* If the window size is already large enough to fit both the source and the dictionary + * then just use the window size. Otherwise adjust so that it fits the dictionary and + * the window. + */ + if (windowSize >= dictSize + srcSize) { + return windowLog; /* Window size large enough already */ + } else if (dictAndWindowSize >= maxWindowSize) { + return ZSTD_WINDOWLOG_MAX; /* Larger than max window log */ + } else { + return ZSTD_highbit32((U32)dictAndWindowSize - 1) + 1; + } + } +} + +/** ZSTD_adjustCParams_internal() : + * optimize `cPar` for a specified input (`srcSize` and `dictSize`). + * mostly downsize to reduce memory consumption and initialization latency. + * `srcSize` can be ZSTD_CONTENTSIZE_UNKNOWN when not known. + * `mode` is the mode for parameter adjustment. See docs for `ZSTD_cParamMode_e`. + * note : `srcSize==0` means 0! + * condition : cPar is presumed validated (can be checked using ZSTD_checkCParams()). */ +static ZSTD_compressionParameters +ZSTD_adjustCParams_internal(ZSTD_compressionParameters cPar, + unsigned long long srcSize, + size_t dictSize, + ZSTD_cParamMode_e mode, + ZSTD_paramSwitch_e useRowMatchFinder) +{ + const U64 minSrcSize = 513; /* (1<<9) + 1 */ + const U64 maxWindowResize = 1ULL << (ZSTD_WINDOWLOG_MAX-1); + assert(ZSTD_checkCParams(cPar)==0); + + /* Cascade the selected strategy down to the next-highest one built into + * this binary. */ +#ifdef ZSTD_EXCLUDE_BTULTRA_BLOCK_COMPRESSOR + if (cPar.strategy == ZSTD_btultra2) { + cPar.strategy = ZSTD_btultra; + } + if (cPar.strategy == ZSTD_btultra) { + cPar.strategy = ZSTD_btopt; + } +#endif +#ifdef ZSTD_EXCLUDE_BTOPT_BLOCK_COMPRESSOR + if (cPar.strategy == ZSTD_btopt) { + cPar.strategy = ZSTD_btlazy2; + } +#endif +#ifdef ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR + if (cPar.strategy == ZSTD_btlazy2) { + cPar.strategy = ZSTD_lazy2; + } +#endif +#ifdef ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR + if (cPar.strategy == ZSTD_lazy2) { + cPar.strategy = ZSTD_lazy; + } +#endif +#ifdef ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR + if (cPar.strategy == ZSTD_lazy) { + cPar.strategy = ZSTD_greedy; + } +#endif +#ifdef ZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR + if (cPar.strategy == ZSTD_greedy) { + cPar.strategy = ZSTD_dfast; + } +#endif +#ifdef ZSTD_EXCLUDE_DFAST_BLOCK_COMPRESSOR + if (cPar.strategy == ZSTD_dfast) { + cPar.strategy = ZSTD_fast; + cPar.targetLength = 0; + } +#endif + + switch (mode) { + case ZSTD_cpm_unknown: + case ZSTD_cpm_noAttachDict: + /* If we don't know the source size, don't make any + * assumptions about it. We will already have selected + * smaller parameters if a dictionary is in use. + */ + break; + case ZSTD_cpm_createCDict: + /* Assume a small source size when creating a dictionary + * with an unknown source size. + */ + if (dictSize && srcSize == ZSTD_CONTENTSIZE_UNKNOWN) + srcSize = minSrcSize; + break; + case ZSTD_cpm_attachDict: + /* Dictionary has its own dedicated parameters which have + * already been selected. We are selecting parameters + * for only the source. + */ + dictSize = 0; + break; + default: + assert(0); + break; + } + + /* resize windowLog if input is small enough, to use less memory */ + if ( (srcSize <= maxWindowResize) + && (dictSize <= maxWindowResize) ) { + U32 const tSize = (U32)(srcSize + dictSize); + static U32 const hashSizeMin = 1 << ZSTD_HASHLOG_MIN; + U32 const srcLog = (tSize < hashSizeMin) ? ZSTD_HASHLOG_MIN : + ZSTD_highbit32(tSize-1) + 1; + if (cPar.windowLog > srcLog) cPar.windowLog = srcLog; + } + if (srcSize != ZSTD_CONTENTSIZE_UNKNOWN) { + U32 const dictAndWindowLog = ZSTD_dictAndWindowLog(cPar.windowLog, (U64)srcSize, (U64)dictSize); + U32 const cycleLog = ZSTD_cycleLog(cPar.chainLog, cPar.strategy); + if (cPar.hashLog > dictAndWindowLog+1) cPar.hashLog = dictAndWindowLog+1; + if (cycleLog > dictAndWindowLog) + cPar.chainLog -= (cycleLog - dictAndWindowLog); + } + + if (cPar.windowLog < ZSTD_WINDOWLOG_ABSOLUTEMIN) + cPar.windowLog = ZSTD_WINDOWLOG_ABSOLUTEMIN; /* minimum wlog required for valid frame header */ + + /* We can't use more than 32 bits of hash in total, so that means that we require: + * (hashLog + 8) <= 32 && (chainLog + 8) <= 32 + */ + if (mode == ZSTD_cpm_createCDict && ZSTD_CDictIndicesAreTagged(&cPar)) { + U32 const maxShortCacheHashLog = 32 - ZSTD_SHORT_CACHE_TAG_BITS; + if (cPar.hashLog > maxShortCacheHashLog) { + cPar.hashLog = maxShortCacheHashLog; + } + if (cPar.chainLog > maxShortCacheHashLog) { + cPar.chainLog = maxShortCacheHashLog; + } + } + + + /* At this point, we aren't 100% sure if we are using the row match finder. + * Unless it is explicitly disabled, conservatively assume that it is enabled. + * In this case it will only be disabled for small sources, so shrinking the + * hash log a little bit shouldn't result in any ratio loss. + */ + if (useRowMatchFinder == ZSTD_ps_auto) + useRowMatchFinder = ZSTD_ps_enable; + + /* We can't hash more than 32-bits in total. So that means that we require: + * (hashLog - rowLog + 8) <= 32 + */ + if (ZSTD_rowMatchFinderUsed(cPar.strategy, useRowMatchFinder)) { + /* Switch to 32-entry rows if searchLog is 5 (or more) */ + U32 const rowLog = BOUNDED(4, cPar.searchLog, 6); + U32 const maxRowHashLog = 32 - ZSTD_ROW_HASH_TAG_BITS; + U32 const maxHashLog = maxRowHashLog + rowLog; + assert(cPar.hashLog >= rowLog); + if (cPar.hashLog > maxHashLog) { + cPar.hashLog = maxHashLog; + } + } + + return cPar; +} + +ZSTD_compressionParameters +ZSTD_adjustCParams(ZSTD_compressionParameters cPar, + unsigned long long srcSize, + size_t dictSize) +{ + cPar = ZSTD_clampCParams(cPar); /* resulting cPar is necessarily valid (all parameters within range) */ + if (srcSize == 0) srcSize = ZSTD_CONTENTSIZE_UNKNOWN; + return ZSTD_adjustCParams_internal(cPar, srcSize, dictSize, ZSTD_cpm_unknown, ZSTD_ps_auto); +} + +static ZSTD_compressionParameters ZSTD_getCParams_internal(int compressionLevel, unsigned long long srcSizeHint, size_t dictSize, ZSTD_cParamMode_e mode); +static ZSTD_parameters ZSTD_getParams_internal(int compressionLevel, unsigned long long srcSizeHint, size_t dictSize, ZSTD_cParamMode_e mode); + +static void ZSTD_overrideCParams( + ZSTD_compressionParameters* cParams, + const ZSTD_compressionParameters* overrides) +{ + if (overrides->windowLog) cParams->windowLog = overrides->windowLog; + if (overrides->hashLog) cParams->hashLog = overrides->hashLog; + if (overrides->chainLog) cParams->chainLog = overrides->chainLog; + if (overrides->searchLog) cParams->searchLog = overrides->searchLog; + if (overrides->minMatch) cParams->minMatch = overrides->minMatch; + if (overrides->targetLength) cParams->targetLength = overrides->targetLength; + if (overrides->strategy) cParams->strategy = overrides->strategy; +} + +ZSTD_compressionParameters ZSTD_getCParamsFromCCtxParams( + const ZSTD_CCtx_params* CCtxParams, U64 srcSizeHint, size_t dictSize, ZSTD_cParamMode_e mode) +{ + ZSTD_compressionParameters cParams; + if (srcSizeHint == ZSTD_CONTENTSIZE_UNKNOWN && CCtxParams->srcSizeHint > 0) { + srcSizeHint = CCtxParams->srcSizeHint; + } + cParams = ZSTD_getCParams_internal(CCtxParams->compressionLevel, srcSizeHint, dictSize, mode); + if (CCtxParams->ldmParams.enableLdm == ZSTD_ps_enable) cParams.windowLog = ZSTD_LDM_DEFAULT_WINDOW_LOG; + ZSTD_overrideCParams(&cParams, &CCtxParams->cParams); + assert(!ZSTD_checkCParams(cParams)); + /* srcSizeHint == 0 means 0 */ + return ZSTD_adjustCParams_internal(cParams, srcSizeHint, dictSize, mode, CCtxParams->useRowMatchFinder); +} + +static size_t +ZSTD_sizeof_matchState(const ZSTD_compressionParameters* const cParams, + const ZSTD_paramSwitch_e useRowMatchFinder, + const U32 enableDedicatedDictSearch, + const U32 forCCtx) +{ + /* chain table size should be 0 for fast or row-hash strategies */ + size_t const chainSize = ZSTD_allocateChainTable(cParams->strategy, useRowMatchFinder, enableDedicatedDictSearch && !forCCtx) + ? ((size_t)1 << cParams->chainLog) + : 0; + size_t const hSize = ((size_t)1) << cParams->hashLog; + U32 const hashLog3 = (forCCtx && cParams->minMatch==3) ? MIN(ZSTD_HASHLOG3_MAX, cParams->windowLog) : 0; + size_t const h3Size = hashLog3 ? ((size_t)1) << hashLog3 : 0; + /* We don't use ZSTD_cwksp_alloc_size() here because the tables aren't + * surrounded by redzones in ASAN. */ + size_t const tableSpace = chainSize * sizeof(U32) + + hSize * sizeof(U32) + + h3Size * sizeof(U32); + size_t const optPotentialSpace = + ZSTD_cwksp_aligned_alloc_size((MaxML+1) * sizeof(U32)) + + ZSTD_cwksp_aligned_alloc_size((MaxLL+1) * sizeof(U32)) + + ZSTD_cwksp_aligned_alloc_size((MaxOff+1) * sizeof(U32)) + + ZSTD_cwksp_aligned_alloc_size((1<strategy, useRowMatchFinder) + ? ZSTD_cwksp_aligned_alloc_size(hSize) + : 0; + size_t const optSpace = (forCCtx && (cParams->strategy >= ZSTD_btopt)) + ? optPotentialSpace + : 0; + size_t const slackSpace = ZSTD_cwksp_slack_space_required(); + + /* tables are guaranteed to be sized in multiples of 64 bytes (or 16 uint32_t) */ + ZSTD_STATIC_ASSERT(ZSTD_HASHLOG_MIN >= 4 && ZSTD_WINDOWLOG_MIN >= 4 && ZSTD_CHAINLOG_MIN >= 4); + assert(useRowMatchFinder != ZSTD_ps_auto); + + DEBUGLOG(4, "chainSize: %u - hSize: %u - h3Size: %u", + (U32)chainSize, (U32)hSize, (U32)h3Size); + return tableSpace + optSpace + slackSpace + lazyAdditionalSpace; +} + +/* Helper function for calculating memory requirements. + * Gives a tighter bound than ZSTD_sequenceBound() by taking minMatch into account. */ +static size_t ZSTD_maxNbSeq(size_t blockSize, unsigned minMatch, int useSequenceProducer) { + U32 const divider = (minMatch==3 || useSequenceProducer) ? 3 : 4; + return blockSize / divider; +} + +static size_t ZSTD_estimateCCtxSize_usingCCtxParams_internal( + const ZSTD_compressionParameters* cParams, + const ldmParams_t* ldmParams, + const int isStatic, + const ZSTD_paramSwitch_e useRowMatchFinder, + const size_t buffInSize, + const size_t buffOutSize, + const U64 pledgedSrcSize, + int useSequenceProducer, + size_t maxBlockSize) +{ + size_t const windowSize = (size_t) BOUNDED(1ULL, 1ULL << cParams->windowLog, pledgedSrcSize); + size_t const blockSize = MIN(ZSTD_resolveMaxBlockSize(maxBlockSize), windowSize); + size_t const maxNbSeq = ZSTD_maxNbSeq(blockSize, cParams->minMatch, useSequenceProducer); + size_t const tokenSpace = ZSTD_cwksp_alloc_size(WILDCOPY_OVERLENGTH + blockSize) + + ZSTD_cwksp_aligned_alloc_size(maxNbSeq * sizeof(seqDef)) + + 3 * ZSTD_cwksp_alloc_size(maxNbSeq * sizeof(BYTE)); + size_t const entropySpace = ZSTD_cwksp_alloc_size(ENTROPY_WORKSPACE_SIZE); + size_t const blockStateSpace = 2 * ZSTD_cwksp_alloc_size(sizeof(ZSTD_compressedBlockState_t)); + size_t const matchStateSize = ZSTD_sizeof_matchState(cParams, useRowMatchFinder, /* enableDedicatedDictSearch */ 0, /* forCCtx */ 1); + + size_t const ldmSpace = ZSTD_ldm_getTableSize(*ldmParams); + size_t const maxNbLdmSeq = ZSTD_ldm_getMaxNbSeq(*ldmParams, blockSize); + size_t const ldmSeqSpace = ldmParams->enableLdm == ZSTD_ps_enable ? + ZSTD_cwksp_aligned_alloc_size(maxNbLdmSeq * sizeof(rawSeq)) : 0; + + + size_t const bufferSpace = ZSTD_cwksp_alloc_size(buffInSize) + + ZSTD_cwksp_alloc_size(buffOutSize); + + size_t const cctxSpace = isStatic ? ZSTD_cwksp_alloc_size(sizeof(ZSTD_CCtx)) : 0; + + size_t const maxNbExternalSeq = ZSTD_sequenceBound(blockSize); + size_t const externalSeqSpace = useSequenceProducer + ? ZSTD_cwksp_aligned_alloc_size(maxNbExternalSeq * sizeof(ZSTD_Sequence)) + : 0; + + size_t const neededSpace = + cctxSpace + + entropySpace + + blockStateSpace + + ldmSpace + + ldmSeqSpace + + matchStateSize + + tokenSpace + + bufferSpace + + externalSeqSpace; + + DEBUGLOG(5, "estimate workspace : %u", (U32)neededSpace); + return neededSpace; +} + +size_t ZSTD_estimateCCtxSize_usingCCtxParams(const ZSTD_CCtx_params* params) +{ + ZSTD_compressionParameters const cParams = + ZSTD_getCParamsFromCCtxParams(params, ZSTD_CONTENTSIZE_UNKNOWN, 0, ZSTD_cpm_noAttachDict); + ZSTD_paramSwitch_e const useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(params->useRowMatchFinder, + &cParams); + + RETURN_ERROR_IF(params->nbWorkers > 0, GENERIC, "Estimate CCtx size is supported for single-threaded compression only."); + /* estimateCCtxSize is for one-shot compression. So no buffers should + * be needed. However, we still allocate two 0-sized buffers, which can + * take space under ASAN. */ + return ZSTD_estimateCCtxSize_usingCCtxParams_internal( + &cParams, ¶ms->ldmParams, 1, useRowMatchFinder, 0, 0, ZSTD_CONTENTSIZE_UNKNOWN, ZSTD_hasExtSeqProd(params), params->maxBlockSize); +} + +size_t ZSTD_estimateCCtxSize_usingCParams(ZSTD_compressionParameters cParams) +{ + ZSTD_CCtx_params initialParams = ZSTD_makeCCtxParamsFromCParams(cParams); + if (ZSTD_rowMatchFinderSupported(cParams.strategy)) { + /* Pick bigger of not using and using row-based matchfinder for greedy and lazy strategies */ + size_t noRowCCtxSize; + size_t rowCCtxSize; + initialParams.useRowMatchFinder = ZSTD_ps_disable; + noRowCCtxSize = ZSTD_estimateCCtxSize_usingCCtxParams(&initialParams); + initialParams.useRowMatchFinder = ZSTD_ps_enable; + rowCCtxSize = ZSTD_estimateCCtxSize_usingCCtxParams(&initialParams); + return MAX(noRowCCtxSize, rowCCtxSize); + } else { + return ZSTD_estimateCCtxSize_usingCCtxParams(&initialParams); + } +} + +static size_t ZSTD_estimateCCtxSize_internal(int compressionLevel) +{ + int tier = 0; + size_t largestSize = 0; + static const unsigned long long srcSizeTiers[4] = {16 KB, 128 KB, 256 KB, ZSTD_CONTENTSIZE_UNKNOWN}; + for (; tier < 4; ++tier) { + /* Choose the set of cParams for a given level across all srcSizes that give the largest cctxSize */ + ZSTD_compressionParameters const cParams = ZSTD_getCParams_internal(compressionLevel, srcSizeTiers[tier], 0, ZSTD_cpm_noAttachDict); + largestSize = MAX(ZSTD_estimateCCtxSize_usingCParams(cParams), largestSize); + } + return largestSize; +} + +size_t ZSTD_estimateCCtxSize(int compressionLevel) +{ + int level; + size_t memBudget = 0; + for (level=MIN(compressionLevel, 1); level<=compressionLevel; level++) { + /* Ensure monotonically increasing memory usage as compression level increases */ + size_t const newMB = ZSTD_estimateCCtxSize_internal(level); + if (newMB > memBudget) memBudget = newMB; + } + return memBudget; +} + +size_t ZSTD_estimateCStreamSize_usingCCtxParams(const ZSTD_CCtx_params* params) +{ + RETURN_ERROR_IF(params->nbWorkers > 0, GENERIC, "Estimate CCtx size is supported for single-threaded compression only."); + { ZSTD_compressionParameters const cParams = + ZSTD_getCParamsFromCCtxParams(params, ZSTD_CONTENTSIZE_UNKNOWN, 0, ZSTD_cpm_noAttachDict); + size_t const blockSize = MIN(ZSTD_resolveMaxBlockSize(params->maxBlockSize), (size_t)1 << cParams.windowLog); + size_t const inBuffSize = (params->inBufferMode == ZSTD_bm_buffered) + ? ((size_t)1 << cParams.windowLog) + blockSize + : 0; + size_t const outBuffSize = (params->outBufferMode == ZSTD_bm_buffered) + ? ZSTD_compressBound(blockSize) + 1 + : 0; + ZSTD_paramSwitch_e const useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(params->useRowMatchFinder, ¶ms->cParams); + + return ZSTD_estimateCCtxSize_usingCCtxParams_internal( + &cParams, ¶ms->ldmParams, 1, useRowMatchFinder, inBuffSize, outBuffSize, + ZSTD_CONTENTSIZE_UNKNOWN, ZSTD_hasExtSeqProd(params), params->maxBlockSize); + } +} + +size_t ZSTD_estimateCStreamSize_usingCParams(ZSTD_compressionParameters cParams) +{ + ZSTD_CCtx_params initialParams = ZSTD_makeCCtxParamsFromCParams(cParams); + if (ZSTD_rowMatchFinderSupported(cParams.strategy)) { + /* Pick bigger of not using and using row-based matchfinder for greedy and lazy strategies */ + size_t noRowCCtxSize; + size_t rowCCtxSize; + initialParams.useRowMatchFinder = ZSTD_ps_disable; + noRowCCtxSize = ZSTD_estimateCStreamSize_usingCCtxParams(&initialParams); + initialParams.useRowMatchFinder = ZSTD_ps_enable; + rowCCtxSize = ZSTD_estimateCStreamSize_usingCCtxParams(&initialParams); + return MAX(noRowCCtxSize, rowCCtxSize); + } else { + return ZSTD_estimateCStreamSize_usingCCtxParams(&initialParams); + } +} + +static size_t ZSTD_estimateCStreamSize_internal(int compressionLevel) +{ + ZSTD_compressionParameters const cParams = ZSTD_getCParams_internal(compressionLevel, ZSTD_CONTENTSIZE_UNKNOWN, 0, ZSTD_cpm_noAttachDict); + return ZSTD_estimateCStreamSize_usingCParams(cParams); +} + +size_t ZSTD_estimateCStreamSize(int compressionLevel) +{ + int level; + size_t memBudget = 0; + for (level=MIN(compressionLevel, 1); level<=compressionLevel; level++) { + size_t const newMB = ZSTD_estimateCStreamSize_internal(level); + if (newMB > memBudget) memBudget = newMB; + } + return memBudget; +} + +/* ZSTD_getFrameProgression(): + * tells how much data has been consumed (input) and produced (output) for current frame. + * able to count progression inside worker threads (non-blocking mode). + */ +ZSTD_frameProgression ZSTD_getFrameProgression(const ZSTD_CCtx* cctx) +{ +#ifdef ZSTD_MULTITHREAD + if (cctx->appliedParams.nbWorkers > 0) { + return ZSTDMT_getFrameProgression(cctx->mtctx); + } +#endif + { ZSTD_frameProgression fp; + size_t const buffered = (cctx->inBuff == NULL) ? 0 : + cctx->inBuffPos - cctx->inToCompress; + if (buffered) assert(cctx->inBuffPos >= cctx->inToCompress); + assert(buffered <= ZSTD_BLOCKSIZE_MAX); + fp.ingested = cctx->consumedSrcSize + buffered; + fp.consumed = cctx->consumedSrcSize; + fp.produced = cctx->producedCSize; + fp.flushed = cctx->producedCSize; /* simplified; some data might still be left within streaming output buffer */ + fp.currentJobID = 0; + fp.nbActiveWorkers = 0; + return fp; +} } + +/*! ZSTD_toFlushNow() + * Only useful for multithreading scenarios currently (nbWorkers >= 1). + */ +size_t ZSTD_toFlushNow(ZSTD_CCtx* cctx) +{ +#ifdef ZSTD_MULTITHREAD + if (cctx->appliedParams.nbWorkers > 0) { + return ZSTDMT_toFlushNow(cctx->mtctx); + } +#endif + (void)cctx; + return 0; /* over-simplification; could also check if context is currently running in streaming mode, and in which case, report how many bytes are left to be flushed within output buffer */ +} + +static void ZSTD_assertEqualCParams(ZSTD_compressionParameters cParams1, + ZSTD_compressionParameters cParams2) +{ + (void)cParams1; + (void)cParams2; + assert(cParams1.windowLog == cParams2.windowLog); + assert(cParams1.chainLog == cParams2.chainLog); + assert(cParams1.hashLog == cParams2.hashLog); + assert(cParams1.searchLog == cParams2.searchLog); + assert(cParams1.minMatch == cParams2.minMatch); + assert(cParams1.targetLength == cParams2.targetLength); + assert(cParams1.strategy == cParams2.strategy); +} + +void ZSTD_reset_compressedBlockState(ZSTD_compressedBlockState_t* bs) +{ + int i; + for (i = 0; i < ZSTD_REP_NUM; ++i) + bs->rep[i] = repStartValue[i]; + bs->entropy.huf.repeatMode = HUF_repeat_none; + bs->entropy.fse.offcode_repeatMode = FSE_repeat_none; + bs->entropy.fse.matchlength_repeatMode = FSE_repeat_none; + bs->entropy.fse.litlength_repeatMode = FSE_repeat_none; +} + +/*! ZSTD_invalidateMatchState() + * Invalidate all the matches in the match finder tables. + * Requires nextSrc and base to be set (can be NULL). + */ +static void ZSTD_invalidateMatchState(ZSTD_matchState_t* ms) +{ + ZSTD_window_clear(&ms->window); + + ms->nextToUpdate = ms->window.dictLimit; + ms->loadedDictEnd = 0; + ms->opt.litLengthSum = 0; /* force reset of btopt stats */ + ms->dictMatchState = NULL; +} + +/** + * Controls, for this matchState reset, whether the tables need to be cleared / + * prepared for the coming compression (ZSTDcrp_makeClean), or whether the + * tables can be left unclean (ZSTDcrp_leaveDirty), because we know that a + * subsequent operation will overwrite the table space anyways (e.g., copying + * the matchState contents in from a CDict). + */ +typedef enum { + ZSTDcrp_makeClean, + ZSTDcrp_leaveDirty +} ZSTD_compResetPolicy_e; + +/** + * Controls, for this matchState reset, whether indexing can continue where it + * left off (ZSTDirp_continue), or whether it needs to be restarted from zero + * (ZSTDirp_reset). + */ +typedef enum { + ZSTDirp_continue, + ZSTDirp_reset +} ZSTD_indexResetPolicy_e; + +typedef enum { + ZSTD_resetTarget_CDict, + ZSTD_resetTarget_CCtx +} ZSTD_resetTarget_e; + +/* Mixes bits in a 64 bits in a value, based on XXH3_rrmxmx */ +static U64 ZSTD_bitmix(U64 val, U64 len) { + val ^= ZSTD_rotateRight_U64(val, 49) ^ ZSTD_rotateRight_U64(val, 24); + val *= 0x9FB21C651E98DF25ULL; + val ^= (val >> 35) + len ; + val *= 0x9FB21C651E98DF25ULL; + return val ^ (val >> 28); +} + +/* Mixes in the hashSalt and hashSaltEntropy to create a new hashSalt */ +static void ZSTD_advanceHashSalt(ZSTD_matchState_t* ms) { + ms->hashSalt = ZSTD_bitmix(ms->hashSalt, 8) ^ ZSTD_bitmix((U64) ms->hashSaltEntropy, 4); +} + +static size_t +ZSTD_reset_matchState(ZSTD_matchState_t* ms, + ZSTD_cwksp* ws, + const ZSTD_compressionParameters* cParams, + const ZSTD_paramSwitch_e useRowMatchFinder, + const ZSTD_compResetPolicy_e crp, + const ZSTD_indexResetPolicy_e forceResetIndex, + const ZSTD_resetTarget_e forWho) +{ + /* disable chain table allocation for fast or row-based strategies */ + size_t const chainSize = ZSTD_allocateChainTable(cParams->strategy, useRowMatchFinder, + ms->dedicatedDictSearch && (forWho == ZSTD_resetTarget_CDict)) + ? ((size_t)1 << cParams->chainLog) + : 0; + size_t const hSize = ((size_t)1) << cParams->hashLog; + U32 const hashLog3 = ((forWho == ZSTD_resetTarget_CCtx) && cParams->minMatch==3) ? MIN(ZSTD_HASHLOG3_MAX, cParams->windowLog) : 0; + size_t const h3Size = hashLog3 ? ((size_t)1) << hashLog3 : 0; + + DEBUGLOG(4, "reset indices : %u", forceResetIndex == ZSTDirp_reset); + assert(useRowMatchFinder != ZSTD_ps_auto); + if (forceResetIndex == ZSTDirp_reset) { + ZSTD_window_init(&ms->window); + ZSTD_cwksp_mark_tables_dirty(ws); + } + + ms->hashLog3 = hashLog3; + ms->lazySkipping = 0; + + ZSTD_invalidateMatchState(ms); + + assert(!ZSTD_cwksp_reserve_failed(ws)); /* check that allocation hasn't already failed */ + + ZSTD_cwksp_clear_tables(ws); + + DEBUGLOG(5, "reserving table space"); + /* table Space */ + ms->hashTable = (U32*)ZSTD_cwksp_reserve_table(ws, hSize * sizeof(U32)); + ms->chainTable = (U32*)ZSTD_cwksp_reserve_table(ws, chainSize * sizeof(U32)); + ms->hashTable3 = (U32*)ZSTD_cwksp_reserve_table(ws, h3Size * sizeof(U32)); + RETURN_ERROR_IF(ZSTD_cwksp_reserve_failed(ws), memory_allocation, + "failed a workspace allocation in ZSTD_reset_matchState"); + + DEBUGLOG(4, "reset table : %u", crp!=ZSTDcrp_leaveDirty); + if (crp!=ZSTDcrp_leaveDirty) { + /* reset tables only */ + ZSTD_cwksp_clean_tables(ws); + } + + if (ZSTD_rowMatchFinderUsed(cParams->strategy, useRowMatchFinder)) { + /* Row match finder needs an additional table of hashes ("tags") */ + size_t const tagTableSize = hSize; + /* We want to generate a new salt in case we reset a Cctx, but we always want to use + * 0 when we reset a Cdict */ + if(forWho == ZSTD_resetTarget_CCtx) { + ms->tagTable = (BYTE*) ZSTD_cwksp_reserve_aligned_init_once(ws, tagTableSize); + ZSTD_advanceHashSalt(ms); + } else { + /* When we are not salting we want to always memset the memory */ + ms->tagTable = (BYTE*) ZSTD_cwksp_reserve_aligned(ws, tagTableSize); + ZSTD_memset(ms->tagTable, 0, tagTableSize); + ms->hashSalt = 0; + } + { /* Switch to 32-entry rows if searchLog is 5 (or more) */ + U32 const rowLog = BOUNDED(4, cParams->searchLog, 6); + assert(cParams->hashLog >= rowLog); + ms->rowHashLog = cParams->hashLog - rowLog; + } + } + + /* opt parser space */ + if ((forWho == ZSTD_resetTarget_CCtx) && (cParams->strategy >= ZSTD_btopt)) { + DEBUGLOG(4, "reserving optimal parser space"); + ms->opt.litFreq = (unsigned*)ZSTD_cwksp_reserve_aligned(ws, (1<opt.litLengthFreq = (unsigned*)ZSTD_cwksp_reserve_aligned(ws, (MaxLL+1) * sizeof(unsigned)); + ms->opt.matchLengthFreq = (unsigned*)ZSTD_cwksp_reserve_aligned(ws, (MaxML+1) * sizeof(unsigned)); + ms->opt.offCodeFreq = (unsigned*)ZSTD_cwksp_reserve_aligned(ws, (MaxOff+1) * sizeof(unsigned)); + ms->opt.matchTable = (ZSTD_match_t*)ZSTD_cwksp_reserve_aligned(ws, ZSTD_OPT_SIZE * sizeof(ZSTD_match_t)); + ms->opt.priceTable = (ZSTD_optimal_t*)ZSTD_cwksp_reserve_aligned(ws, ZSTD_OPT_SIZE * sizeof(ZSTD_optimal_t)); + } + + ms->cParams = *cParams; + + RETURN_ERROR_IF(ZSTD_cwksp_reserve_failed(ws), memory_allocation, + "failed a workspace allocation in ZSTD_reset_matchState"); + return 0; +} + +/* ZSTD_indexTooCloseToMax() : + * minor optimization : prefer memset() rather than reduceIndex() + * which is measurably slow in some circumstances (reported for Visual Studio). + * Works when re-using a context for a lot of smallish inputs : + * if all inputs are smaller than ZSTD_INDEXOVERFLOW_MARGIN, + * memset() will be triggered before reduceIndex(). + */ +#define ZSTD_INDEXOVERFLOW_MARGIN (16 MB) +static int ZSTD_indexTooCloseToMax(ZSTD_window_t w) +{ + return (size_t)(w.nextSrc - w.base) > (ZSTD_CURRENT_MAX - ZSTD_INDEXOVERFLOW_MARGIN); +} + +/** ZSTD_dictTooBig(): + * When dictionaries are larger than ZSTD_CHUNKSIZE_MAX they can't be loaded in + * one go generically. So we ensure that in that case we reset the tables to zero, + * so that we can load as much of the dictionary as possible. + */ +static int ZSTD_dictTooBig(size_t const loadedDictSize) +{ + return loadedDictSize > ZSTD_CHUNKSIZE_MAX; +} + +/*! ZSTD_resetCCtx_internal() : + * @param loadedDictSize The size of the dictionary to be loaded + * into the context, if any. If no dictionary is used, or the + * dictionary is being attached / copied, then pass 0. + * note : `params` are assumed fully validated at this stage. + */ +static size_t ZSTD_resetCCtx_internal(ZSTD_CCtx* zc, + ZSTD_CCtx_params const* params, + U64 const pledgedSrcSize, + size_t const loadedDictSize, + ZSTD_compResetPolicy_e const crp, + ZSTD_buffered_policy_e const zbuff) +{ + ZSTD_cwksp* const ws = &zc->workspace; + DEBUGLOG(4, "ZSTD_resetCCtx_internal: pledgedSrcSize=%u, wlog=%u, useRowMatchFinder=%d useBlockSplitter=%d", + (U32)pledgedSrcSize, params->cParams.windowLog, (int)params->useRowMatchFinder, (int)params->useBlockSplitter); + assert(!ZSTD_isError(ZSTD_checkCParams(params->cParams))); + + zc->isFirstBlock = 1; + + /* Set applied params early so we can modify them for LDM, + * and point params at the applied params. + */ + zc->appliedParams = *params; + params = &zc->appliedParams; + + assert(params->useRowMatchFinder != ZSTD_ps_auto); + assert(params->useBlockSplitter != ZSTD_ps_auto); + assert(params->ldmParams.enableLdm != ZSTD_ps_auto); + assert(params->maxBlockSize != 0); + if (params->ldmParams.enableLdm == ZSTD_ps_enable) { + /* Adjust long distance matching parameters */ + ZSTD_ldm_adjustParameters(&zc->appliedParams.ldmParams, ¶ms->cParams); + assert(params->ldmParams.hashLog >= params->ldmParams.bucketSizeLog); + assert(params->ldmParams.hashRateLog < 32); + } + + { size_t const windowSize = MAX(1, (size_t)MIN(((U64)1 << params->cParams.windowLog), pledgedSrcSize)); + size_t const blockSize = MIN(params->maxBlockSize, windowSize); + size_t const maxNbSeq = ZSTD_maxNbSeq(blockSize, params->cParams.minMatch, ZSTD_hasExtSeqProd(params)); + size_t const buffOutSize = (zbuff == ZSTDb_buffered && params->outBufferMode == ZSTD_bm_buffered) + ? ZSTD_compressBound(blockSize) + 1 + : 0; + size_t const buffInSize = (zbuff == ZSTDb_buffered && params->inBufferMode == ZSTD_bm_buffered) + ? windowSize + blockSize + : 0; + size_t const maxNbLdmSeq = ZSTD_ldm_getMaxNbSeq(params->ldmParams, blockSize); + + int const indexTooClose = ZSTD_indexTooCloseToMax(zc->blockState.matchState.window); + int const dictTooBig = ZSTD_dictTooBig(loadedDictSize); + ZSTD_indexResetPolicy_e needsIndexReset = + (indexTooClose || dictTooBig || !zc->initialized) ? ZSTDirp_reset : ZSTDirp_continue; + + size_t const neededSpace = + ZSTD_estimateCCtxSize_usingCCtxParams_internal( + ¶ms->cParams, ¶ms->ldmParams, zc->staticSize != 0, params->useRowMatchFinder, + buffInSize, buffOutSize, pledgedSrcSize, ZSTD_hasExtSeqProd(params), params->maxBlockSize); + + FORWARD_IF_ERROR(neededSpace, "cctx size estimate failed!"); + + if (!zc->staticSize) ZSTD_cwksp_bump_oversized_duration(ws, 0); + + { /* Check if workspace is large enough, alloc a new one if needed */ + int const workspaceTooSmall = ZSTD_cwksp_sizeof(ws) < neededSpace; + int const workspaceWasteful = ZSTD_cwksp_check_wasteful(ws, neededSpace); + int resizeWorkspace = workspaceTooSmall || workspaceWasteful; + DEBUGLOG(4, "Need %zu B workspace", neededSpace); + DEBUGLOG(4, "windowSize: %zu - blockSize: %zu", windowSize, blockSize); + + if (resizeWorkspace) { + DEBUGLOG(4, "Resize workspaceSize from %zuKB to %zuKB", + ZSTD_cwksp_sizeof(ws) >> 10, + neededSpace >> 10); + + RETURN_ERROR_IF(zc->staticSize, memory_allocation, "static cctx : no resize"); + + needsIndexReset = ZSTDirp_reset; + + ZSTD_cwksp_free(ws, zc->customMem); + FORWARD_IF_ERROR(ZSTD_cwksp_create(ws, neededSpace, zc->customMem), ""); + + DEBUGLOG(5, "reserving object space"); + /* Statically sized space. + * entropyWorkspace never moves, + * though prev/next block swap places */ + assert(ZSTD_cwksp_check_available(ws, 2 * sizeof(ZSTD_compressedBlockState_t))); + zc->blockState.prevCBlock = (ZSTD_compressedBlockState_t*) ZSTD_cwksp_reserve_object(ws, sizeof(ZSTD_compressedBlockState_t)); + RETURN_ERROR_IF(zc->blockState.prevCBlock == NULL, memory_allocation, "couldn't allocate prevCBlock"); + zc->blockState.nextCBlock = (ZSTD_compressedBlockState_t*) ZSTD_cwksp_reserve_object(ws, sizeof(ZSTD_compressedBlockState_t)); + RETURN_ERROR_IF(zc->blockState.nextCBlock == NULL, memory_allocation, "couldn't allocate nextCBlock"); + zc->entropyWorkspace = (U32*) ZSTD_cwksp_reserve_object(ws, ENTROPY_WORKSPACE_SIZE); + RETURN_ERROR_IF(zc->entropyWorkspace == NULL, memory_allocation, "couldn't allocate entropyWorkspace"); + } } + + ZSTD_cwksp_clear(ws); + + /* init params */ + zc->blockState.matchState.cParams = params->cParams; + zc->blockState.matchState.prefetchCDictTables = params->prefetchCDictTables == ZSTD_ps_enable; + zc->pledgedSrcSizePlusOne = pledgedSrcSize+1; + zc->consumedSrcSize = 0; + zc->producedCSize = 0; + if (pledgedSrcSize == ZSTD_CONTENTSIZE_UNKNOWN) + zc->appliedParams.fParams.contentSizeFlag = 0; + DEBUGLOG(4, "pledged content size : %u ; flag : %u", + (unsigned)pledgedSrcSize, zc->appliedParams.fParams.contentSizeFlag); + zc->blockSize = blockSize; + + XXH64_reset(&zc->xxhState, 0); + zc->stage = ZSTDcs_init; + zc->dictID = 0; + zc->dictContentSize = 0; + + ZSTD_reset_compressedBlockState(zc->blockState.prevCBlock); + + FORWARD_IF_ERROR(ZSTD_reset_matchState( + &zc->blockState.matchState, + ws, + ¶ms->cParams, + params->useRowMatchFinder, + crp, + needsIndexReset, + ZSTD_resetTarget_CCtx), ""); + + zc->seqStore.sequencesStart = (seqDef*)ZSTD_cwksp_reserve_aligned(ws, maxNbSeq * sizeof(seqDef)); + + /* ldm hash table */ + if (params->ldmParams.enableLdm == ZSTD_ps_enable) { + /* TODO: avoid memset? */ + size_t const ldmHSize = ((size_t)1) << params->ldmParams.hashLog; + zc->ldmState.hashTable = (ldmEntry_t*)ZSTD_cwksp_reserve_aligned(ws, ldmHSize * sizeof(ldmEntry_t)); + ZSTD_memset(zc->ldmState.hashTable, 0, ldmHSize * sizeof(ldmEntry_t)); + zc->ldmSequences = (rawSeq*)ZSTD_cwksp_reserve_aligned(ws, maxNbLdmSeq * sizeof(rawSeq)); + zc->maxNbLdmSequences = maxNbLdmSeq; + + ZSTD_window_init(&zc->ldmState.window); + zc->ldmState.loadedDictEnd = 0; + } + + /* reserve space for block-level external sequences */ + if (ZSTD_hasExtSeqProd(params)) { + size_t const maxNbExternalSeq = ZSTD_sequenceBound(blockSize); + zc->extSeqBufCapacity = maxNbExternalSeq; + zc->extSeqBuf = + (ZSTD_Sequence*)ZSTD_cwksp_reserve_aligned(ws, maxNbExternalSeq * sizeof(ZSTD_Sequence)); + } + + /* buffers */ + + /* ZSTD_wildcopy() is used to copy into the literals buffer, + * so we have to oversize the buffer by WILDCOPY_OVERLENGTH bytes. + */ + zc->seqStore.litStart = ZSTD_cwksp_reserve_buffer(ws, blockSize + WILDCOPY_OVERLENGTH); + zc->seqStore.maxNbLit = blockSize; + + zc->bufferedPolicy = zbuff; + zc->inBuffSize = buffInSize; + zc->inBuff = (char*)ZSTD_cwksp_reserve_buffer(ws, buffInSize); + zc->outBuffSize = buffOutSize; + zc->outBuff = (char*)ZSTD_cwksp_reserve_buffer(ws, buffOutSize); + + /* ldm bucketOffsets table */ + if (params->ldmParams.enableLdm == ZSTD_ps_enable) { + /* TODO: avoid memset? */ + size_t const numBuckets = + ((size_t)1) << (params->ldmParams.hashLog - + params->ldmParams.bucketSizeLog); + zc->ldmState.bucketOffsets = ZSTD_cwksp_reserve_buffer(ws, numBuckets); + ZSTD_memset(zc->ldmState.bucketOffsets, 0, numBuckets); + } + + /* sequences storage */ + ZSTD_referenceExternalSequences(zc, NULL, 0); + zc->seqStore.maxNbSeq = maxNbSeq; + zc->seqStore.llCode = ZSTD_cwksp_reserve_buffer(ws, maxNbSeq * sizeof(BYTE)); + zc->seqStore.mlCode = ZSTD_cwksp_reserve_buffer(ws, maxNbSeq * sizeof(BYTE)); + zc->seqStore.ofCode = ZSTD_cwksp_reserve_buffer(ws, maxNbSeq * sizeof(BYTE)); + + DEBUGLOG(3, "wksp: finished allocating, %zd bytes remain available", ZSTD_cwksp_available_space(ws)); + assert(ZSTD_cwksp_estimated_space_within_bounds(ws, neededSpace)); + + zc->initialized = 1; + + return 0; + } +} + +/* ZSTD_invalidateRepCodes() : + * ensures next compression will not use repcodes from previous block. + * Note : only works with regular variant; + * do not use with extDict variant ! */ +void ZSTD_invalidateRepCodes(ZSTD_CCtx* cctx) { + int i; + for (i=0; iblockState.prevCBlock->rep[i] = 0; + assert(!ZSTD_window_hasExtDict(cctx->blockState.matchState.window)); +} + +/* These are the approximate sizes for each strategy past which copying the + * dictionary tables into the working context is faster than using them + * in-place. + */ +static const size_t attachDictSizeCutoffs[ZSTD_STRATEGY_MAX+1] = { + 8 KB, /* unused */ + 8 KB, /* ZSTD_fast */ + 16 KB, /* ZSTD_dfast */ + 32 KB, /* ZSTD_greedy */ + 32 KB, /* ZSTD_lazy */ + 32 KB, /* ZSTD_lazy2 */ + 32 KB, /* ZSTD_btlazy2 */ + 32 KB, /* ZSTD_btopt */ + 8 KB, /* ZSTD_btultra */ + 8 KB /* ZSTD_btultra2 */ +}; + +static int ZSTD_shouldAttachDict(const ZSTD_CDict* cdict, + const ZSTD_CCtx_params* params, + U64 pledgedSrcSize) +{ + size_t cutoff = attachDictSizeCutoffs[cdict->matchState.cParams.strategy]; + int const dedicatedDictSearch = cdict->matchState.dedicatedDictSearch; + return dedicatedDictSearch + || ( ( pledgedSrcSize <= cutoff + || pledgedSrcSize == ZSTD_CONTENTSIZE_UNKNOWN + || params->attachDictPref == ZSTD_dictForceAttach ) + && params->attachDictPref != ZSTD_dictForceCopy + && !params->forceWindow ); /* dictMatchState isn't correctly + * handled in _enforceMaxDist */ +} + +static size_t +ZSTD_resetCCtx_byAttachingCDict(ZSTD_CCtx* cctx, + const ZSTD_CDict* cdict, + ZSTD_CCtx_params params, + U64 pledgedSrcSize, + ZSTD_buffered_policy_e zbuff) +{ + DEBUGLOG(4, "ZSTD_resetCCtx_byAttachingCDict() pledgedSrcSize=%llu", + (unsigned long long)pledgedSrcSize); + { + ZSTD_compressionParameters adjusted_cdict_cParams = cdict->matchState.cParams; + unsigned const windowLog = params.cParams.windowLog; + assert(windowLog != 0); + /* Resize working context table params for input only, since the dict + * has its own tables. */ + /* pledgedSrcSize == 0 means 0! */ + + if (cdict->matchState.dedicatedDictSearch) { + ZSTD_dedicatedDictSearch_revertCParams(&adjusted_cdict_cParams); + } + + params.cParams = ZSTD_adjustCParams_internal(adjusted_cdict_cParams, pledgedSrcSize, + cdict->dictContentSize, ZSTD_cpm_attachDict, + params.useRowMatchFinder); + params.cParams.windowLog = windowLog; + params.useRowMatchFinder = cdict->useRowMatchFinder; /* cdict overrides */ + FORWARD_IF_ERROR(ZSTD_resetCCtx_internal(cctx, ¶ms, pledgedSrcSize, + /* loadedDictSize */ 0, + ZSTDcrp_makeClean, zbuff), ""); + assert(cctx->appliedParams.cParams.strategy == adjusted_cdict_cParams.strategy); + } + + { const U32 cdictEnd = (U32)( cdict->matchState.window.nextSrc + - cdict->matchState.window.base); + const U32 cdictLen = cdictEnd - cdict->matchState.window.dictLimit; + if (cdictLen == 0) { + /* don't even attach dictionaries with no contents */ + DEBUGLOG(4, "skipping attaching empty dictionary"); + } else { + DEBUGLOG(4, "attaching dictionary into context"); + cctx->blockState.matchState.dictMatchState = &cdict->matchState; + + /* prep working match state so dict matches never have negative indices + * when they are translated to the working context's index space. */ + if (cctx->blockState.matchState.window.dictLimit < cdictEnd) { + cctx->blockState.matchState.window.nextSrc = + cctx->blockState.matchState.window.base + cdictEnd; + ZSTD_window_clear(&cctx->blockState.matchState.window); + } + /* loadedDictEnd is expressed within the referential of the active context */ + cctx->blockState.matchState.loadedDictEnd = cctx->blockState.matchState.window.dictLimit; + } } + + cctx->dictID = cdict->dictID; + cctx->dictContentSize = cdict->dictContentSize; + + /* copy block state */ + ZSTD_memcpy(cctx->blockState.prevCBlock, &cdict->cBlockState, sizeof(cdict->cBlockState)); + + return 0; +} + +static void ZSTD_copyCDictTableIntoCCtx(U32* dst, U32 const* src, size_t tableSize, + ZSTD_compressionParameters const* cParams) { + if (ZSTD_CDictIndicesAreTagged(cParams)){ + /* Remove tags from the CDict table if they are present. + * See docs on "short cache" in zstd_compress_internal.h for context. */ + size_t i; + for (i = 0; i < tableSize; i++) { + U32 const taggedIndex = src[i]; + U32 const index = taggedIndex >> ZSTD_SHORT_CACHE_TAG_BITS; + dst[i] = index; + } + } else { + ZSTD_memcpy(dst, src, tableSize * sizeof(U32)); + } +} + +static size_t ZSTD_resetCCtx_byCopyingCDict(ZSTD_CCtx* cctx, + const ZSTD_CDict* cdict, + ZSTD_CCtx_params params, + U64 pledgedSrcSize, + ZSTD_buffered_policy_e zbuff) +{ + const ZSTD_compressionParameters *cdict_cParams = &cdict->matchState.cParams; + + assert(!cdict->matchState.dedicatedDictSearch); + DEBUGLOG(4, "ZSTD_resetCCtx_byCopyingCDict() pledgedSrcSize=%llu", + (unsigned long long)pledgedSrcSize); + + { unsigned const windowLog = params.cParams.windowLog; + assert(windowLog != 0); + /* Copy only compression parameters related to tables. */ + params.cParams = *cdict_cParams; + params.cParams.windowLog = windowLog; + params.useRowMatchFinder = cdict->useRowMatchFinder; + FORWARD_IF_ERROR(ZSTD_resetCCtx_internal(cctx, ¶ms, pledgedSrcSize, + /* loadedDictSize */ 0, + ZSTDcrp_leaveDirty, zbuff), ""); + assert(cctx->appliedParams.cParams.strategy == cdict_cParams->strategy); + assert(cctx->appliedParams.cParams.hashLog == cdict_cParams->hashLog); + assert(cctx->appliedParams.cParams.chainLog == cdict_cParams->chainLog); + } + + ZSTD_cwksp_mark_tables_dirty(&cctx->workspace); + assert(params.useRowMatchFinder != ZSTD_ps_auto); + + /* copy tables */ + { size_t const chainSize = ZSTD_allocateChainTable(cdict_cParams->strategy, cdict->useRowMatchFinder, 0 /* DDS guaranteed disabled */) + ? ((size_t)1 << cdict_cParams->chainLog) + : 0; + size_t const hSize = (size_t)1 << cdict_cParams->hashLog; + + ZSTD_copyCDictTableIntoCCtx(cctx->blockState.matchState.hashTable, + cdict->matchState.hashTable, + hSize, cdict_cParams); + + /* Do not copy cdict's chainTable if cctx has parameters such that it would not use chainTable */ + if (ZSTD_allocateChainTable(cctx->appliedParams.cParams.strategy, cctx->appliedParams.useRowMatchFinder, 0 /* forDDSDict */)) { + ZSTD_copyCDictTableIntoCCtx(cctx->blockState.matchState.chainTable, + cdict->matchState.chainTable, + chainSize, cdict_cParams); + } + /* copy tag table */ + if (ZSTD_rowMatchFinderUsed(cdict_cParams->strategy, cdict->useRowMatchFinder)) { + size_t const tagTableSize = hSize; + ZSTD_memcpy(cctx->blockState.matchState.tagTable, + cdict->matchState.tagTable, + tagTableSize); + cctx->blockState.matchState.hashSalt = cdict->matchState.hashSalt; + } + } + + /* Zero the hashTable3, since the cdict never fills it */ + { int const h3log = cctx->blockState.matchState.hashLog3; + size_t const h3Size = h3log ? ((size_t)1 << h3log) : 0; + assert(cdict->matchState.hashLog3 == 0); + ZSTD_memset(cctx->blockState.matchState.hashTable3, 0, h3Size * sizeof(U32)); + } + + ZSTD_cwksp_mark_tables_clean(&cctx->workspace); + + /* copy dictionary offsets */ + { ZSTD_matchState_t const* srcMatchState = &cdict->matchState; + ZSTD_matchState_t* dstMatchState = &cctx->blockState.matchState; + dstMatchState->window = srcMatchState->window; + dstMatchState->nextToUpdate = srcMatchState->nextToUpdate; + dstMatchState->loadedDictEnd= srcMatchState->loadedDictEnd; + } + + cctx->dictID = cdict->dictID; + cctx->dictContentSize = cdict->dictContentSize; + + /* copy block state */ + ZSTD_memcpy(cctx->blockState.prevCBlock, &cdict->cBlockState, sizeof(cdict->cBlockState)); + + return 0; +} + +/* We have a choice between copying the dictionary context into the working + * context, or referencing the dictionary context from the working context + * in-place. We decide here which strategy to use. */ +static size_t ZSTD_resetCCtx_usingCDict(ZSTD_CCtx* cctx, + const ZSTD_CDict* cdict, + const ZSTD_CCtx_params* params, + U64 pledgedSrcSize, + ZSTD_buffered_policy_e zbuff) +{ + + DEBUGLOG(4, "ZSTD_resetCCtx_usingCDict (pledgedSrcSize=%u)", + (unsigned)pledgedSrcSize); + + if (ZSTD_shouldAttachDict(cdict, params, pledgedSrcSize)) { + return ZSTD_resetCCtx_byAttachingCDict( + cctx, cdict, *params, pledgedSrcSize, zbuff); + } else { + return ZSTD_resetCCtx_byCopyingCDict( + cctx, cdict, *params, pledgedSrcSize, zbuff); + } +} + +/*! ZSTD_copyCCtx_internal() : + * Duplicate an existing context `srcCCtx` into another one `dstCCtx`. + * Only works during stage ZSTDcs_init (i.e. after creation, but before first call to ZSTD_compressContinue()). + * The "context", in this case, refers to the hash and chain tables, + * entropy tables, and dictionary references. + * `windowLog` value is enforced if != 0, otherwise value is copied from srcCCtx. + * @return : 0, or an error code */ +static size_t ZSTD_copyCCtx_internal(ZSTD_CCtx* dstCCtx, + const ZSTD_CCtx* srcCCtx, + ZSTD_frameParameters fParams, + U64 pledgedSrcSize, + ZSTD_buffered_policy_e zbuff) +{ + RETURN_ERROR_IF(srcCCtx->stage!=ZSTDcs_init, stage_wrong, + "Can't copy a ctx that's not in init stage."); + DEBUGLOG(5, "ZSTD_copyCCtx_internal"); + ZSTD_memcpy(&dstCCtx->customMem, &srcCCtx->customMem, sizeof(ZSTD_customMem)); + { ZSTD_CCtx_params params = dstCCtx->requestedParams; + /* Copy only compression parameters related to tables. */ + params.cParams = srcCCtx->appliedParams.cParams; + assert(srcCCtx->appliedParams.useRowMatchFinder != ZSTD_ps_auto); + assert(srcCCtx->appliedParams.useBlockSplitter != ZSTD_ps_auto); + assert(srcCCtx->appliedParams.ldmParams.enableLdm != ZSTD_ps_auto); + params.useRowMatchFinder = srcCCtx->appliedParams.useRowMatchFinder; + params.useBlockSplitter = srcCCtx->appliedParams.useBlockSplitter; + params.ldmParams = srcCCtx->appliedParams.ldmParams; + params.fParams = fParams; + params.maxBlockSize = srcCCtx->appliedParams.maxBlockSize; + ZSTD_resetCCtx_internal(dstCCtx, ¶ms, pledgedSrcSize, + /* loadedDictSize */ 0, + ZSTDcrp_leaveDirty, zbuff); + assert(dstCCtx->appliedParams.cParams.windowLog == srcCCtx->appliedParams.cParams.windowLog); + assert(dstCCtx->appliedParams.cParams.strategy == srcCCtx->appliedParams.cParams.strategy); + assert(dstCCtx->appliedParams.cParams.hashLog == srcCCtx->appliedParams.cParams.hashLog); + assert(dstCCtx->appliedParams.cParams.chainLog == srcCCtx->appliedParams.cParams.chainLog); + assert(dstCCtx->blockState.matchState.hashLog3 == srcCCtx->blockState.matchState.hashLog3); + } + + ZSTD_cwksp_mark_tables_dirty(&dstCCtx->workspace); + + /* copy tables */ + { size_t const chainSize = ZSTD_allocateChainTable(srcCCtx->appliedParams.cParams.strategy, + srcCCtx->appliedParams.useRowMatchFinder, + 0 /* forDDSDict */) + ? ((size_t)1 << srcCCtx->appliedParams.cParams.chainLog) + : 0; + size_t const hSize = (size_t)1 << srcCCtx->appliedParams.cParams.hashLog; + int const h3log = srcCCtx->blockState.matchState.hashLog3; + size_t const h3Size = h3log ? ((size_t)1 << h3log) : 0; + + ZSTD_memcpy(dstCCtx->blockState.matchState.hashTable, + srcCCtx->blockState.matchState.hashTable, + hSize * sizeof(U32)); + ZSTD_memcpy(dstCCtx->blockState.matchState.chainTable, + srcCCtx->blockState.matchState.chainTable, + chainSize * sizeof(U32)); + ZSTD_memcpy(dstCCtx->blockState.matchState.hashTable3, + srcCCtx->blockState.matchState.hashTable3, + h3Size * sizeof(U32)); + } + + ZSTD_cwksp_mark_tables_clean(&dstCCtx->workspace); + + /* copy dictionary offsets */ + { + const ZSTD_matchState_t* srcMatchState = &srcCCtx->blockState.matchState; + ZSTD_matchState_t* dstMatchState = &dstCCtx->blockState.matchState; + dstMatchState->window = srcMatchState->window; + dstMatchState->nextToUpdate = srcMatchState->nextToUpdate; + dstMatchState->loadedDictEnd= srcMatchState->loadedDictEnd; + } + dstCCtx->dictID = srcCCtx->dictID; + dstCCtx->dictContentSize = srcCCtx->dictContentSize; + + /* copy block state */ + ZSTD_memcpy(dstCCtx->blockState.prevCBlock, srcCCtx->blockState.prevCBlock, sizeof(*srcCCtx->blockState.prevCBlock)); + + return 0; +} + +/*! ZSTD_copyCCtx() : + * Duplicate an existing context `srcCCtx` into another one `dstCCtx`. + * Only works during stage ZSTDcs_init (i.e. after creation, but before first call to ZSTD_compressContinue()). + * pledgedSrcSize==0 means "unknown". +* @return : 0, or an error code */ +size_t ZSTD_copyCCtx(ZSTD_CCtx* dstCCtx, const ZSTD_CCtx* srcCCtx, unsigned long long pledgedSrcSize) +{ + ZSTD_frameParameters fParams = { 1 /*content*/, 0 /*checksum*/, 0 /*noDictID*/ }; + ZSTD_buffered_policy_e const zbuff = srcCCtx->bufferedPolicy; + ZSTD_STATIC_ASSERT((U32)ZSTDb_buffered==1); + if (pledgedSrcSize==0) pledgedSrcSize = ZSTD_CONTENTSIZE_UNKNOWN; + fParams.contentSizeFlag = (pledgedSrcSize != ZSTD_CONTENTSIZE_UNKNOWN); + + return ZSTD_copyCCtx_internal(dstCCtx, srcCCtx, + fParams, pledgedSrcSize, + zbuff); +} + + +#define ZSTD_ROWSIZE 16 +/*! ZSTD_reduceTable() : + * reduce table indexes by `reducerValue`, or squash to zero. + * PreserveMark preserves "unsorted mark" for btlazy2 strategy. + * It must be set to a clear 0/1 value, to remove branch during inlining. + * Presume table size is a multiple of ZSTD_ROWSIZE + * to help auto-vectorization */ +FORCE_INLINE_TEMPLATE void +ZSTD_reduceTable_internal (U32* const table, U32 const size, U32 const reducerValue, int const preserveMark) +{ + int const nbRows = (int)size / ZSTD_ROWSIZE; + int cellNb = 0; + int rowNb; + /* Protect special index values < ZSTD_WINDOW_START_INDEX. */ + U32 const reducerThreshold = reducerValue + ZSTD_WINDOW_START_INDEX; + assert((size & (ZSTD_ROWSIZE-1)) == 0); /* multiple of ZSTD_ROWSIZE */ + assert(size < (1U<<31)); /* can be casted to int */ + +#if ZSTD_MEMORY_SANITIZER && !defined (ZSTD_MSAN_DONT_POISON_WORKSPACE) + /* To validate that the table reuse logic is sound, and that we don't + * access table space that we haven't cleaned, we re-"poison" the table + * space every time we mark it dirty. + * + * This function however is intended to operate on those dirty tables and + * re-clean them. So when this function is used correctly, we can unpoison + * the memory it operated on. This introduces a blind spot though, since + * if we now try to operate on __actually__ poisoned memory, we will not + * detect that. */ + __msan_unpoison(table, size * sizeof(U32)); +#endif + + for (rowNb=0 ; rowNb < nbRows ; rowNb++) { + int column; + for (column=0; columncParams.hashLog; + ZSTD_reduceTable(ms->hashTable, hSize, reducerValue); + } + + if (ZSTD_allocateChainTable(params->cParams.strategy, params->useRowMatchFinder, (U32)ms->dedicatedDictSearch)) { + U32 const chainSize = (U32)1 << params->cParams.chainLog; + if (params->cParams.strategy == ZSTD_btlazy2) + ZSTD_reduceTable_btlazy2(ms->chainTable, chainSize, reducerValue); + else + ZSTD_reduceTable(ms->chainTable, chainSize, reducerValue); + } + + if (ms->hashLog3) { + U32 const h3Size = (U32)1 << ms->hashLog3; + ZSTD_reduceTable(ms->hashTable3, h3Size, reducerValue); + } +} + + +/*-******************************************************* +* Block entropic compression +*********************************************************/ + +/* See doc/zstd_compression_format.md for detailed format description */ + +int ZSTD_seqToCodes(const seqStore_t* seqStorePtr) +{ + const seqDef* const sequences = seqStorePtr->sequencesStart; + BYTE* const llCodeTable = seqStorePtr->llCode; + BYTE* const ofCodeTable = seqStorePtr->ofCode; + BYTE* const mlCodeTable = seqStorePtr->mlCode; + U32 const nbSeq = (U32)(seqStorePtr->sequences - seqStorePtr->sequencesStart); + U32 u; + int longOffsets = 0; + assert(nbSeq <= seqStorePtr->maxNbSeq); + for (u=0; u= STREAM_ACCUMULATOR_MIN)); + if (MEM_32bits() && ofCode >= STREAM_ACCUMULATOR_MIN) + longOffsets = 1; + } + if (seqStorePtr->longLengthType==ZSTD_llt_literalLength) + llCodeTable[seqStorePtr->longLengthPos] = MaxLL; + if (seqStorePtr->longLengthType==ZSTD_llt_matchLength) + mlCodeTable[seqStorePtr->longLengthPos] = MaxML; + return longOffsets; +} + +/* ZSTD_useTargetCBlockSize(): + * Returns if target compressed block size param is being used. + * If used, compression will do best effort to make a compressed block size to be around targetCBlockSize. + * Returns 1 if true, 0 otherwise. */ +static int ZSTD_useTargetCBlockSize(const ZSTD_CCtx_params* cctxParams) +{ + DEBUGLOG(5, "ZSTD_useTargetCBlockSize (targetCBlockSize=%zu)", cctxParams->targetCBlockSize); + return (cctxParams->targetCBlockSize != 0); +} + +/* ZSTD_blockSplitterEnabled(): + * Returns if block splitting param is being used + * If used, compression will do best effort to split a block in order to improve compression ratio. + * At the time this function is called, the parameter must be finalized. + * Returns 1 if true, 0 otherwise. */ +static int ZSTD_blockSplitterEnabled(ZSTD_CCtx_params* cctxParams) +{ + DEBUGLOG(5, "ZSTD_blockSplitterEnabled (useBlockSplitter=%d)", cctxParams->useBlockSplitter); + assert(cctxParams->useBlockSplitter != ZSTD_ps_auto); + return (cctxParams->useBlockSplitter == ZSTD_ps_enable); +} + +/* Type returned by ZSTD_buildSequencesStatistics containing finalized symbol encoding types + * and size of the sequences statistics + */ +typedef struct { + U32 LLtype; + U32 Offtype; + U32 MLtype; + size_t size; + size_t lastCountSize; /* Accounts for bug in 1.3.4. More detail in ZSTD_entropyCompressSeqStore_internal() */ + int longOffsets; +} ZSTD_symbolEncodingTypeStats_t; + +/* ZSTD_buildSequencesStatistics(): + * Returns a ZSTD_symbolEncodingTypeStats_t, or a zstd error code in the `size` field. + * Modifies `nextEntropy` to have the appropriate values as a side effect. + * nbSeq must be greater than 0. + * + * entropyWkspSize must be of size at least ENTROPY_WORKSPACE_SIZE - (MaxSeq + 1)*sizeof(U32) + */ +static ZSTD_symbolEncodingTypeStats_t +ZSTD_buildSequencesStatistics( + const seqStore_t* seqStorePtr, size_t nbSeq, + const ZSTD_fseCTables_t* prevEntropy, ZSTD_fseCTables_t* nextEntropy, + BYTE* dst, const BYTE* const dstEnd, + ZSTD_strategy strategy, unsigned* countWorkspace, + void* entropyWorkspace, size_t entropyWkspSize) +{ + BYTE* const ostart = dst; + const BYTE* const oend = dstEnd; + BYTE* op = ostart; + FSE_CTable* CTable_LitLength = nextEntropy->litlengthCTable; + FSE_CTable* CTable_OffsetBits = nextEntropy->offcodeCTable; + FSE_CTable* CTable_MatchLength = nextEntropy->matchlengthCTable; + const BYTE* const ofCodeTable = seqStorePtr->ofCode; + const BYTE* const llCodeTable = seqStorePtr->llCode; + const BYTE* const mlCodeTable = seqStorePtr->mlCode; + ZSTD_symbolEncodingTypeStats_t stats; + + stats.lastCountSize = 0; + /* convert length/distances into codes */ + stats.longOffsets = ZSTD_seqToCodes(seqStorePtr); + assert(op <= oend); + assert(nbSeq != 0); /* ZSTD_selectEncodingType() divides by nbSeq */ + /* build CTable for Literal Lengths */ + { unsigned max = MaxLL; + size_t const mostFrequent = HIST_countFast_wksp(countWorkspace, &max, llCodeTable, nbSeq, entropyWorkspace, entropyWkspSize); /* can't fail */ + DEBUGLOG(5, "Building LL table"); + nextEntropy->litlength_repeatMode = prevEntropy->litlength_repeatMode; + stats.LLtype = ZSTD_selectEncodingType(&nextEntropy->litlength_repeatMode, + countWorkspace, max, mostFrequent, nbSeq, + LLFSELog, prevEntropy->litlengthCTable, + LL_defaultNorm, LL_defaultNormLog, + ZSTD_defaultAllowed, strategy); + assert(set_basic < set_compressed && set_rle < set_compressed); + assert(!(stats.LLtype < set_compressed && nextEntropy->litlength_repeatMode != FSE_repeat_none)); /* We don't copy tables */ + { size_t const countSize = ZSTD_buildCTable( + op, (size_t)(oend - op), + CTable_LitLength, LLFSELog, (symbolEncodingType_e)stats.LLtype, + countWorkspace, max, llCodeTable, nbSeq, + LL_defaultNorm, LL_defaultNormLog, MaxLL, + prevEntropy->litlengthCTable, + sizeof(prevEntropy->litlengthCTable), + entropyWorkspace, entropyWkspSize); + if (ZSTD_isError(countSize)) { + DEBUGLOG(3, "ZSTD_buildCTable for LitLens failed"); + stats.size = countSize; + return stats; + } + if (stats.LLtype == set_compressed) + stats.lastCountSize = countSize; + op += countSize; + assert(op <= oend); + } } + /* build CTable for Offsets */ + { unsigned max = MaxOff; + size_t const mostFrequent = HIST_countFast_wksp( + countWorkspace, &max, ofCodeTable, nbSeq, entropyWorkspace, entropyWkspSize); /* can't fail */ + /* We can only use the basic table if max <= DefaultMaxOff, otherwise the offsets are too large */ + ZSTD_defaultPolicy_e const defaultPolicy = (max <= DefaultMaxOff) ? ZSTD_defaultAllowed : ZSTD_defaultDisallowed; + DEBUGLOG(5, "Building OF table"); + nextEntropy->offcode_repeatMode = prevEntropy->offcode_repeatMode; + stats.Offtype = ZSTD_selectEncodingType(&nextEntropy->offcode_repeatMode, + countWorkspace, max, mostFrequent, nbSeq, + OffFSELog, prevEntropy->offcodeCTable, + OF_defaultNorm, OF_defaultNormLog, + defaultPolicy, strategy); + assert(!(stats.Offtype < set_compressed && nextEntropy->offcode_repeatMode != FSE_repeat_none)); /* We don't copy tables */ + { size_t const countSize = ZSTD_buildCTable( + op, (size_t)(oend - op), + CTable_OffsetBits, OffFSELog, (symbolEncodingType_e)stats.Offtype, + countWorkspace, max, ofCodeTable, nbSeq, + OF_defaultNorm, OF_defaultNormLog, DefaultMaxOff, + prevEntropy->offcodeCTable, + sizeof(prevEntropy->offcodeCTable), + entropyWorkspace, entropyWkspSize); + if (ZSTD_isError(countSize)) { + DEBUGLOG(3, "ZSTD_buildCTable for Offsets failed"); + stats.size = countSize; + return stats; + } + if (stats.Offtype == set_compressed) + stats.lastCountSize = countSize; + op += countSize; + assert(op <= oend); + } } + /* build CTable for MatchLengths */ + { unsigned max = MaxML; + size_t const mostFrequent = HIST_countFast_wksp( + countWorkspace, &max, mlCodeTable, nbSeq, entropyWorkspace, entropyWkspSize); /* can't fail */ + DEBUGLOG(5, "Building ML table (remaining space : %i)", (int)(oend-op)); + nextEntropy->matchlength_repeatMode = prevEntropy->matchlength_repeatMode; + stats.MLtype = ZSTD_selectEncodingType(&nextEntropy->matchlength_repeatMode, + countWorkspace, max, mostFrequent, nbSeq, + MLFSELog, prevEntropy->matchlengthCTable, + ML_defaultNorm, ML_defaultNormLog, + ZSTD_defaultAllowed, strategy); + assert(!(stats.MLtype < set_compressed && nextEntropy->matchlength_repeatMode != FSE_repeat_none)); /* We don't copy tables */ + { size_t const countSize = ZSTD_buildCTable( + op, (size_t)(oend - op), + CTable_MatchLength, MLFSELog, (symbolEncodingType_e)stats.MLtype, + countWorkspace, max, mlCodeTable, nbSeq, + ML_defaultNorm, ML_defaultNormLog, MaxML, + prevEntropy->matchlengthCTable, + sizeof(prevEntropy->matchlengthCTable), + entropyWorkspace, entropyWkspSize); + if (ZSTD_isError(countSize)) { + DEBUGLOG(3, "ZSTD_buildCTable for MatchLengths failed"); + stats.size = countSize; + return stats; + } + if (stats.MLtype == set_compressed) + stats.lastCountSize = countSize; + op += countSize; + assert(op <= oend); + } } + stats.size = (size_t)(op-ostart); + return stats; +} + +/* ZSTD_entropyCompressSeqStore_internal(): + * compresses both literals and sequences + * Returns compressed size of block, or a zstd error. + */ +#define SUSPECT_UNCOMPRESSIBLE_LITERAL_RATIO 20 +MEM_STATIC size_t +ZSTD_entropyCompressSeqStore_internal( + const seqStore_t* seqStorePtr, + const ZSTD_entropyCTables_t* prevEntropy, + ZSTD_entropyCTables_t* nextEntropy, + const ZSTD_CCtx_params* cctxParams, + void* dst, size_t dstCapacity, + void* entropyWorkspace, size_t entropyWkspSize, + const int bmi2) +{ + ZSTD_strategy const strategy = cctxParams->cParams.strategy; + unsigned* count = (unsigned*)entropyWorkspace; + FSE_CTable* CTable_LitLength = nextEntropy->fse.litlengthCTable; + FSE_CTable* CTable_OffsetBits = nextEntropy->fse.offcodeCTable; + FSE_CTable* CTable_MatchLength = nextEntropy->fse.matchlengthCTable; + const seqDef* const sequences = seqStorePtr->sequencesStart; + const size_t nbSeq = (size_t)(seqStorePtr->sequences - seqStorePtr->sequencesStart); + const BYTE* const ofCodeTable = seqStorePtr->ofCode; + const BYTE* const llCodeTable = seqStorePtr->llCode; + const BYTE* const mlCodeTable = seqStorePtr->mlCode; + BYTE* const ostart = (BYTE*)dst; + BYTE* const oend = ostart + dstCapacity; + BYTE* op = ostart; + size_t lastCountSize; + int longOffsets = 0; + + entropyWorkspace = count + (MaxSeq + 1); + entropyWkspSize -= (MaxSeq + 1) * sizeof(*count); + + DEBUGLOG(5, "ZSTD_entropyCompressSeqStore_internal (nbSeq=%zu, dstCapacity=%zu)", nbSeq, dstCapacity); + ZSTD_STATIC_ASSERT(HUF_WORKSPACE_SIZE >= (1<= HUF_WORKSPACE_SIZE); + + /* Compress literals */ + { const BYTE* const literals = seqStorePtr->litStart; + size_t const numSequences = (size_t)(seqStorePtr->sequences - seqStorePtr->sequencesStart); + size_t const numLiterals = (size_t)(seqStorePtr->lit - seqStorePtr->litStart); + /* Base suspicion of uncompressibility on ratio of literals to sequences */ + unsigned const suspectUncompressible = (numSequences == 0) || (numLiterals / numSequences >= SUSPECT_UNCOMPRESSIBLE_LITERAL_RATIO); + size_t const litSize = (size_t)(seqStorePtr->lit - literals); + + size_t const cSize = ZSTD_compressLiterals( + op, dstCapacity, + literals, litSize, + entropyWorkspace, entropyWkspSize, + &prevEntropy->huf, &nextEntropy->huf, + cctxParams->cParams.strategy, + ZSTD_literalsCompressionIsDisabled(cctxParams), + suspectUncompressible, bmi2); + FORWARD_IF_ERROR(cSize, "ZSTD_compressLiterals failed"); + assert(cSize <= dstCapacity); + op += cSize; + } + + /* Sequences Header */ + RETURN_ERROR_IF((oend-op) < 3 /*max nbSeq Size*/ + 1 /*seqHead*/, + dstSize_tooSmall, "Can't fit seq hdr in output buf!"); + if (nbSeq < 128) { + *op++ = (BYTE)nbSeq; + } else if (nbSeq < LONGNBSEQ) { + op[0] = (BYTE)((nbSeq>>8) + 0x80); + op[1] = (BYTE)nbSeq; + op+=2; + } else { + op[0]=0xFF; + MEM_writeLE16(op+1, (U16)(nbSeq - LONGNBSEQ)); + op+=3; + } + assert(op <= oend); + if (nbSeq==0) { + /* Copy the old tables over as if we repeated them */ + ZSTD_memcpy(&nextEntropy->fse, &prevEntropy->fse, sizeof(prevEntropy->fse)); + return (size_t)(op - ostart); + } + { BYTE* const seqHead = op++; + /* build stats for sequences */ + const ZSTD_symbolEncodingTypeStats_t stats = + ZSTD_buildSequencesStatistics(seqStorePtr, nbSeq, + &prevEntropy->fse, &nextEntropy->fse, + op, oend, + strategy, count, + entropyWorkspace, entropyWkspSize); + FORWARD_IF_ERROR(stats.size, "ZSTD_buildSequencesStatistics failed!"); + *seqHead = (BYTE)((stats.LLtype<<6) + (stats.Offtype<<4) + (stats.MLtype<<2)); + lastCountSize = stats.lastCountSize; + op += stats.size; + longOffsets = stats.longOffsets; + } + + { size_t const bitstreamSize = ZSTD_encodeSequences( + op, (size_t)(oend - op), + CTable_MatchLength, mlCodeTable, + CTable_OffsetBits, ofCodeTable, + CTable_LitLength, llCodeTable, + sequences, nbSeq, + longOffsets, bmi2); + FORWARD_IF_ERROR(bitstreamSize, "ZSTD_encodeSequences failed"); + op += bitstreamSize; + assert(op <= oend); + /* zstd versions <= 1.3.4 mistakenly report corruption when + * FSE_readNCount() receives a buffer < 4 bytes. + * Fixed by https://github.com/facebook/zstd/pull/1146. + * This can happen when the last set_compressed table present is 2 + * bytes and the bitstream is only one byte. + * In this exceedingly rare case, we will simply emit an uncompressed + * block, since it isn't worth optimizing. + */ + if (lastCountSize && (lastCountSize + bitstreamSize) < 4) { + /* lastCountSize >= 2 && bitstreamSize > 0 ==> lastCountSize == 3 */ + assert(lastCountSize + bitstreamSize == 3); + DEBUGLOG(5, "Avoiding bug in zstd decoder in versions <= 1.3.4 by " + "emitting an uncompressed block."); + return 0; + } + } + + DEBUGLOG(5, "compressed block size : %u", (unsigned)(op - ostart)); + return (size_t)(op - ostart); +} + +MEM_STATIC size_t +ZSTD_entropyCompressSeqStore( + const seqStore_t* seqStorePtr, + const ZSTD_entropyCTables_t* prevEntropy, + ZSTD_entropyCTables_t* nextEntropy, + const ZSTD_CCtx_params* cctxParams, + void* dst, size_t dstCapacity, + size_t srcSize, + void* entropyWorkspace, size_t entropyWkspSize, + int bmi2) +{ + size_t const cSize = ZSTD_entropyCompressSeqStore_internal( + seqStorePtr, prevEntropy, nextEntropy, cctxParams, + dst, dstCapacity, + entropyWorkspace, entropyWkspSize, bmi2); + if (cSize == 0) return 0; + /* When srcSize <= dstCapacity, there is enough space to write a raw uncompressed block. + * Since we ran out of space, block must be not compressible, so fall back to raw uncompressed block. + */ + if ((cSize == ERROR(dstSize_tooSmall)) & (srcSize <= dstCapacity)) { + DEBUGLOG(4, "not enough dstCapacity (%zu) for ZSTD_entropyCompressSeqStore_internal()=> do not compress block", dstCapacity); + return 0; /* block not compressed */ + } + FORWARD_IF_ERROR(cSize, "ZSTD_entropyCompressSeqStore_internal failed"); + + /* Check compressibility */ + { size_t const maxCSize = srcSize - ZSTD_minGain(srcSize, cctxParams->cParams.strategy); + if (cSize >= maxCSize) return 0; /* block not compressed */ + } + DEBUGLOG(5, "ZSTD_entropyCompressSeqStore() cSize: %zu", cSize); + /* libzstd decoder before > v1.5.4 is not compatible with compressed blocks of size ZSTD_BLOCKSIZE_MAX exactly. + * This restriction is indirectly already fulfilled by respecting ZSTD_minGain() condition above. + */ + assert(cSize < ZSTD_BLOCKSIZE_MAX); + return cSize; +} + +/* ZSTD_selectBlockCompressor() : + * Not static, but internal use only (used by long distance matcher) + * assumption : strat is a valid strategy */ +ZSTD_blockCompressor ZSTD_selectBlockCompressor(ZSTD_strategy strat, ZSTD_paramSwitch_e useRowMatchFinder, ZSTD_dictMode_e dictMode) +{ + static const ZSTD_blockCompressor blockCompressor[4][ZSTD_STRATEGY_MAX+1] = { + { ZSTD_compressBlock_fast /* default for 0 */, + ZSTD_compressBlock_fast, + ZSTD_COMPRESSBLOCK_DOUBLEFAST, + ZSTD_COMPRESSBLOCK_GREEDY, + ZSTD_COMPRESSBLOCK_LAZY, + ZSTD_COMPRESSBLOCK_LAZY2, + ZSTD_COMPRESSBLOCK_BTLAZY2, + ZSTD_COMPRESSBLOCK_BTOPT, + ZSTD_COMPRESSBLOCK_BTULTRA, + ZSTD_COMPRESSBLOCK_BTULTRA2 + }, + { ZSTD_compressBlock_fast_extDict /* default for 0 */, + ZSTD_compressBlock_fast_extDict, + ZSTD_COMPRESSBLOCK_DOUBLEFAST_EXTDICT, + ZSTD_COMPRESSBLOCK_GREEDY_EXTDICT, + ZSTD_COMPRESSBLOCK_LAZY_EXTDICT, + ZSTD_COMPRESSBLOCK_LAZY2_EXTDICT, + ZSTD_COMPRESSBLOCK_BTLAZY2_EXTDICT, + ZSTD_COMPRESSBLOCK_BTOPT_EXTDICT, + ZSTD_COMPRESSBLOCK_BTULTRA_EXTDICT, + ZSTD_COMPRESSBLOCK_BTULTRA_EXTDICT + }, + { ZSTD_compressBlock_fast_dictMatchState /* default for 0 */, + ZSTD_compressBlock_fast_dictMatchState, + ZSTD_COMPRESSBLOCK_DOUBLEFAST_DICTMATCHSTATE, + ZSTD_COMPRESSBLOCK_GREEDY_DICTMATCHSTATE, + ZSTD_COMPRESSBLOCK_LAZY_DICTMATCHSTATE, + ZSTD_COMPRESSBLOCK_LAZY2_DICTMATCHSTATE, + ZSTD_COMPRESSBLOCK_BTLAZY2_DICTMATCHSTATE, + ZSTD_COMPRESSBLOCK_BTOPT_DICTMATCHSTATE, + ZSTD_COMPRESSBLOCK_BTULTRA_DICTMATCHSTATE, + ZSTD_COMPRESSBLOCK_BTULTRA_DICTMATCHSTATE + }, + { NULL /* default for 0 */, + NULL, + NULL, + ZSTD_COMPRESSBLOCK_GREEDY_DEDICATEDDICTSEARCH, + ZSTD_COMPRESSBLOCK_LAZY_DEDICATEDDICTSEARCH, + ZSTD_COMPRESSBLOCK_LAZY2_DEDICATEDDICTSEARCH, + NULL, + NULL, + NULL, + NULL } + }; + ZSTD_blockCompressor selectedCompressor; + ZSTD_STATIC_ASSERT((unsigned)ZSTD_fast == 1); + + assert(ZSTD_cParam_withinBounds(ZSTD_c_strategy, strat)); + DEBUGLOG(4, "Selected block compressor: dictMode=%d strat=%d rowMatchfinder=%d", (int)dictMode, (int)strat, (int)useRowMatchFinder); + if (ZSTD_rowMatchFinderUsed(strat, useRowMatchFinder)) { + static const ZSTD_blockCompressor rowBasedBlockCompressors[4][3] = { + { + ZSTD_COMPRESSBLOCK_GREEDY_ROW, + ZSTD_COMPRESSBLOCK_LAZY_ROW, + ZSTD_COMPRESSBLOCK_LAZY2_ROW + }, + { + ZSTD_COMPRESSBLOCK_GREEDY_EXTDICT_ROW, + ZSTD_COMPRESSBLOCK_LAZY_EXTDICT_ROW, + ZSTD_COMPRESSBLOCK_LAZY2_EXTDICT_ROW + }, + { + ZSTD_COMPRESSBLOCK_GREEDY_DICTMATCHSTATE_ROW, + ZSTD_COMPRESSBLOCK_LAZY_DICTMATCHSTATE_ROW, + ZSTD_COMPRESSBLOCK_LAZY2_DICTMATCHSTATE_ROW + }, + { + ZSTD_COMPRESSBLOCK_GREEDY_DEDICATEDDICTSEARCH_ROW, + ZSTD_COMPRESSBLOCK_LAZY_DEDICATEDDICTSEARCH_ROW, + ZSTD_COMPRESSBLOCK_LAZY2_DEDICATEDDICTSEARCH_ROW + } + }; + DEBUGLOG(4, "Selecting a row-based matchfinder"); + assert(useRowMatchFinder != ZSTD_ps_auto); + selectedCompressor = rowBasedBlockCompressors[(int)dictMode][(int)strat - (int)ZSTD_greedy]; + } else { + selectedCompressor = blockCompressor[(int)dictMode][(int)strat]; + } + assert(selectedCompressor != NULL); + return selectedCompressor; +} + +static void ZSTD_storeLastLiterals(seqStore_t* seqStorePtr, + const BYTE* anchor, size_t lastLLSize) +{ + ZSTD_memcpy(seqStorePtr->lit, anchor, lastLLSize); + seqStorePtr->lit += lastLLSize; +} + +void ZSTD_resetSeqStore(seqStore_t* ssPtr) +{ + ssPtr->lit = ssPtr->litStart; + ssPtr->sequences = ssPtr->sequencesStart; + ssPtr->longLengthType = ZSTD_llt_none; +} + +/* ZSTD_postProcessSequenceProducerResult() : + * Validates and post-processes sequences obtained through the external matchfinder API: + * - Checks whether nbExternalSeqs represents an error condition. + * - Appends a block delimiter to outSeqs if one is not already present. + * See zstd.h for context regarding block delimiters. + * Returns the number of sequences after post-processing, or an error code. */ +static size_t ZSTD_postProcessSequenceProducerResult( + ZSTD_Sequence* outSeqs, size_t nbExternalSeqs, size_t outSeqsCapacity, size_t srcSize +) { + RETURN_ERROR_IF( + nbExternalSeqs > outSeqsCapacity, + sequenceProducer_failed, + "External sequence producer returned error code %lu", + (unsigned long)nbExternalSeqs + ); + + RETURN_ERROR_IF( + nbExternalSeqs == 0 && srcSize > 0, + sequenceProducer_failed, + "Got zero sequences from external sequence producer for a non-empty src buffer!" + ); + + if (srcSize == 0) { + ZSTD_memset(&outSeqs[0], 0, sizeof(ZSTD_Sequence)); + return 1; + } + + { + ZSTD_Sequence const lastSeq = outSeqs[nbExternalSeqs - 1]; + + /* We can return early if lastSeq is already a block delimiter. */ + if (lastSeq.offset == 0 && lastSeq.matchLength == 0) { + return nbExternalSeqs; + } + + /* This error condition is only possible if the external matchfinder + * produced an invalid parse, by definition of ZSTD_sequenceBound(). */ + RETURN_ERROR_IF( + nbExternalSeqs == outSeqsCapacity, + sequenceProducer_failed, + "nbExternalSeqs == outSeqsCapacity but lastSeq is not a block delimiter!" + ); + + /* lastSeq is not a block delimiter, so we need to append one. */ + ZSTD_memset(&outSeqs[nbExternalSeqs], 0, sizeof(ZSTD_Sequence)); + return nbExternalSeqs + 1; + } +} + +/* ZSTD_fastSequenceLengthSum() : + * Returns sum(litLen) + sum(matchLen) + lastLits for *seqBuf*. + * Similar to another function in zstd_compress.c (determine_blockSize), + * except it doesn't check for a block delimiter to end summation. + * Removing the early exit allows the compiler to auto-vectorize (https://godbolt.org/z/cY1cajz9P). + * This function can be deleted and replaced by determine_blockSize after we resolve issue #3456. */ +static size_t ZSTD_fastSequenceLengthSum(ZSTD_Sequence const* seqBuf, size_t seqBufSize) { + size_t matchLenSum, litLenSum, i; + matchLenSum = 0; + litLenSum = 0; + for (i = 0; i < seqBufSize; i++) { + litLenSum += seqBuf[i].litLength; + matchLenSum += seqBuf[i].matchLength; + } + return litLenSum + matchLenSum; +} + +typedef enum { ZSTDbss_compress, ZSTDbss_noCompress } ZSTD_buildSeqStore_e; + +static size_t ZSTD_buildSeqStore(ZSTD_CCtx* zc, const void* src, size_t srcSize) +{ + ZSTD_matchState_t* const ms = &zc->blockState.matchState; + DEBUGLOG(5, "ZSTD_buildSeqStore (srcSize=%zu)", srcSize); + assert(srcSize <= ZSTD_BLOCKSIZE_MAX); + /* Assert that we have correctly flushed the ctx params into the ms's copy */ + ZSTD_assertEqualCParams(zc->appliedParams.cParams, ms->cParams); + /* TODO: See 3090. We reduced MIN_CBLOCK_SIZE from 3 to 2 so to compensate we are adding + * additional 1. We need to revisit and change this logic to be more consistent */ + if (srcSize < MIN_CBLOCK_SIZE+ZSTD_blockHeaderSize+1+1) { + if (zc->appliedParams.cParams.strategy >= ZSTD_btopt) { + ZSTD_ldm_skipRawSeqStoreBytes(&zc->externSeqStore, srcSize); + } else { + ZSTD_ldm_skipSequences(&zc->externSeqStore, srcSize, zc->appliedParams.cParams.minMatch); + } + return ZSTDbss_noCompress; /* don't even attempt compression below a certain srcSize */ + } + ZSTD_resetSeqStore(&(zc->seqStore)); + /* required for optimal parser to read stats from dictionary */ + ms->opt.symbolCosts = &zc->blockState.prevCBlock->entropy; + /* tell the optimal parser how we expect to compress literals */ + ms->opt.literalCompressionMode = zc->appliedParams.literalCompressionMode; + /* a gap between an attached dict and the current window is not safe, + * they must remain adjacent, + * and when that stops being the case, the dict must be unset */ + assert(ms->dictMatchState == NULL || ms->loadedDictEnd == ms->window.dictLimit); + + /* limited update after a very long match */ + { const BYTE* const base = ms->window.base; + const BYTE* const istart = (const BYTE*)src; + const U32 curr = (U32)(istart-base); + if (sizeof(ptrdiff_t)==8) assert(istart - base < (ptrdiff_t)(U32)(-1)); /* ensure no overflow */ + if (curr > ms->nextToUpdate + 384) + ms->nextToUpdate = curr - MIN(192, (U32)(curr - ms->nextToUpdate - 384)); + } + + /* select and store sequences */ + { ZSTD_dictMode_e const dictMode = ZSTD_matchState_dictMode(ms); + size_t lastLLSize; + { int i; + for (i = 0; i < ZSTD_REP_NUM; ++i) + zc->blockState.nextCBlock->rep[i] = zc->blockState.prevCBlock->rep[i]; + } + if (zc->externSeqStore.pos < zc->externSeqStore.size) { + assert(zc->appliedParams.ldmParams.enableLdm == ZSTD_ps_disable); + + /* External matchfinder + LDM is technically possible, just not implemented yet. + * We need to revisit soon and implement it. */ + RETURN_ERROR_IF( + ZSTD_hasExtSeqProd(&zc->appliedParams), + parameter_combination_unsupported, + "Long-distance matching with external sequence producer enabled is not currently supported." + ); + + /* Updates ldmSeqStore.pos */ + lastLLSize = + ZSTD_ldm_blockCompress(&zc->externSeqStore, + ms, &zc->seqStore, + zc->blockState.nextCBlock->rep, + zc->appliedParams.useRowMatchFinder, + src, srcSize); + assert(zc->externSeqStore.pos <= zc->externSeqStore.size); + } else if (zc->appliedParams.ldmParams.enableLdm == ZSTD_ps_enable) { + rawSeqStore_t ldmSeqStore = kNullRawSeqStore; + + /* External matchfinder + LDM is technically possible, just not implemented yet. + * We need to revisit soon and implement it. */ + RETURN_ERROR_IF( + ZSTD_hasExtSeqProd(&zc->appliedParams), + parameter_combination_unsupported, + "Long-distance matching with external sequence producer enabled is not currently supported." + ); + + ldmSeqStore.seq = zc->ldmSequences; + ldmSeqStore.capacity = zc->maxNbLdmSequences; + /* Updates ldmSeqStore.size */ + FORWARD_IF_ERROR(ZSTD_ldm_generateSequences(&zc->ldmState, &ldmSeqStore, + &zc->appliedParams.ldmParams, + src, srcSize), ""); + /* Updates ldmSeqStore.pos */ + lastLLSize = + ZSTD_ldm_blockCompress(&ldmSeqStore, + ms, &zc->seqStore, + zc->blockState.nextCBlock->rep, + zc->appliedParams.useRowMatchFinder, + src, srcSize); + assert(ldmSeqStore.pos == ldmSeqStore.size); + } else if (ZSTD_hasExtSeqProd(&zc->appliedParams)) { + assert( + zc->extSeqBufCapacity >= ZSTD_sequenceBound(srcSize) + ); + assert(zc->appliedParams.extSeqProdFunc != NULL); + + { U32 const windowSize = (U32)1 << zc->appliedParams.cParams.windowLog; + + size_t const nbExternalSeqs = (zc->appliedParams.extSeqProdFunc)( + zc->appliedParams.extSeqProdState, + zc->extSeqBuf, + zc->extSeqBufCapacity, + src, srcSize, + NULL, 0, /* dict and dictSize, currently not supported */ + zc->appliedParams.compressionLevel, + windowSize + ); + + size_t const nbPostProcessedSeqs = ZSTD_postProcessSequenceProducerResult( + zc->extSeqBuf, + nbExternalSeqs, + zc->extSeqBufCapacity, + srcSize + ); + + /* Return early if there is no error, since we don't need to worry about last literals */ + if (!ZSTD_isError(nbPostProcessedSeqs)) { + ZSTD_sequencePosition seqPos = {0,0,0}; + size_t const seqLenSum = ZSTD_fastSequenceLengthSum(zc->extSeqBuf, nbPostProcessedSeqs); + RETURN_ERROR_IF(seqLenSum > srcSize, externalSequences_invalid, "External sequences imply too large a block!"); + FORWARD_IF_ERROR( + ZSTD_copySequencesToSeqStoreExplicitBlockDelim( + zc, &seqPos, + zc->extSeqBuf, nbPostProcessedSeqs, + src, srcSize, + zc->appliedParams.searchForExternalRepcodes + ), + "Failed to copy external sequences to seqStore!" + ); + ms->ldmSeqStore = NULL; + DEBUGLOG(5, "Copied %lu sequences from external sequence producer to internal seqStore.", (unsigned long)nbExternalSeqs); + return ZSTDbss_compress; + } + + /* Propagate the error if fallback is disabled */ + if (!zc->appliedParams.enableMatchFinderFallback) { + return nbPostProcessedSeqs; + } + + /* Fallback to software matchfinder */ + { ZSTD_blockCompressor const blockCompressor = + ZSTD_selectBlockCompressor( + zc->appliedParams.cParams.strategy, + zc->appliedParams.useRowMatchFinder, + dictMode); + ms->ldmSeqStore = NULL; + DEBUGLOG( + 5, + "External sequence producer returned error code %lu. Falling back to internal parser.", + (unsigned long)nbExternalSeqs + ); + lastLLSize = blockCompressor(ms, &zc->seqStore, zc->blockState.nextCBlock->rep, src, srcSize); + } } + } else { /* not long range mode and no external matchfinder */ + ZSTD_blockCompressor const blockCompressor = ZSTD_selectBlockCompressor( + zc->appliedParams.cParams.strategy, + zc->appliedParams.useRowMatchFinder, + dictMode); + ms->ldmSeqStore = NULL; + lastLLSize = blockCompressor(ms, &zc->seqStore, zc->blockState.nextCBlock->rep, src, srcSize); + } + { const BYTE* const lastLiterals = (const BYTE*)src + srcSize - lastLLSize; + ZSTD_storeLastLiterals(&zc->seqStore, lastLiterals, lastLLSize); + } } + return ZSTDbss_compress; +} + +static size_t ZSTD_copyBlockSequences(SeqCollector* seqCollector, const seqStore_t* seqStore, const U32 prevRepcodes[ZSTD_REP_NUM]) +{ + const seqDef* inSeqs = seqStore->sequencesStart; + const size_t nbInSequences = seqStore->sequences - inSeqs; + const size_t nbInLiterals = (size_t)(seqStore->lit - seqStore->litStart); + + ZSTD_Sequence* outSeqs = seqCollector->seqIndex == 0 ? seqCollector->seqStart : seqCollector->seqStart + seqCollector->seqIndex; + const size_t nbOutSequences = nbInSequences + 1; + size_t nbOutLiterals = 0; + repcodes_t repcodes; + size_t i; + + /* Bounds check that we have enough space for every input sequence + * and the block delimiter + */ + assert(seqCollector->seqIndex <= seqCollector->maxSequences); + RETURN_ERROR_IF( + nbOutSequences > (size_t)(seqCollector->maxSequences - seqCollector->seqIndex), + dstSize_tooSmall, + "Not enough space to copy sequences"); + + ZSTD_memcpy(&repcodes, prevRepcodes, sizeof(repcodes)); + for (i = 0; i < nbInSequences; ++i) { + U32 rawOffset; + outSeqs[i].litLength = inSeqs[i].litLength; + outSeqs[i].matchLength = inSeqs[i].mlBase + MINMATCH; + outSeqs[i].rep = 0; + + /* Handle the possible single length >= 64K + * There can only be one because we add MINMATCH to every match length, + * and blocks are at most 128K. + */ + if (i == seqStore->longLengthPos) { + if (seqStore->longLengthType == ZSTD_llt_literalLength) { + outSeqs[i].litLength += 0x10000; + } else if (seqStore->longLengthType == ZSTD_llt_matchLength) { + outSeqs[i].matchLength += 0x10000; + } + } + + /* Determine the raw offset given the offBase, which may be a repcode. */ + if (OFFBASE_IS_REPCODE(inSeqs[i].offBase)) { + const U32 repcode = OFFBASE_TO_REPCODE(inSeqs[i].offBase); + assert(repcode > 0); + outSeqs[i].rep = repcode; + if (outSeqs[i].litLength != 0) { + rawOffset = repcodes.rep[repcode - 1]; + } else { + if (repcode == 3) { + assert(repcodes.rep[0] > 1); + rawOffset = repcodes.rep[0] - 1; + } else { + rawOffset = repcodes.rep[repcode]; + } + } + } else { + rawOffset = OFFBASE_TO_OFFSET(inSeqs[i].offBase); + } + outSeqs[i].offset = rawOffset; + + /* Update repcode history for the sequence */ + ZSTD_updateRep(repcodes.rep, + inSeqs[i].offBase, + inSeqs[i].litLength == 0); + + nbOutLiterals += outSeqs[i].litLength; + } + /* Insert last literals (if any exist) in the block as a sequence with ml == off == 0. + * If there are no last literals, then we'll emit (of: 0, ml: 0, ll: 0), which is a marker + * for the block boundary, according to the API. + */ + assert(nbInLiterals >= nbOutLiterals); + { + const size_t lastLLSize = nbInLiterals - nbOutLiterals; + outSeqs[nbInSequences].litLength = (U32)lastLLSize; + outSeqs[nbInSequences].matchLength = 0; + outSeqs[nbInSequences].offset = 0; + assert(nbOutSequences == nbInSequences + 1); + } + seqCollector->seqIndex += nbOutSequences; + assert(seqCollector->seqIndex <= seqCollector->maxSequences); + + return 0; +} + +size_t ZSTD_sequenceBound(size_t srcSize) { + const size_t maxNbSeq = (srcSize / ZSTD_MINMATCH_MIN) + 1; + const size_t maxNbDelims = (srcSize / ZSTD_BLOCKSIZE_MAX_MIN) + 1; + return maxNbSeq + maxNbDelims; +} + +size_t ZSTD_generateSequences(ZSTD_CCtx* zc, ZSTD_Sequence* outSeqs, + size_t outSeqsSize, const void* src, size_t srcSize) +{ + const size_t dstCapacity = ZSTD_compressBound(srcSize); + void* dst = ZSTD_customMalloc(dstCapacity, ZSTD_defaultCMem); + SeqCollector seqCollector; + { + int targetCBlockSize; + FORWARD_IF_ERROR(ZSTD_CCtx_getParameter(zc, ZSTD_c_targetCBlockSize, &targetCBlockSize), ""); + RETURN_ERROR_IF(targetCBlockSize != 0, parameter_unsupported, "targetCBlockSize != 0"); + } + { + int nbWorkers; + FORWARD_IF_ERROR(ZSTD_CCtx_getParameter(zc, ZSTD_c_nbWorkers, &nbWorkers), ""); + RETURN_ERROR_IF(nbWorkers != 0, parameter_unsupported, "nbWorkers != 0"); + } + + RETURN_ERROR_IF(dst == NULL, memory_allocation, "NULL pointer!"); + + seqCollector.collectSequences = 1; + seqCollector.seqStart = outSeqs; + seqCollector.seqIndex = 0; + seqCollector.maxSequences = outSeqsSize; + zc->seqCollector = seqCollector; + + { + const size_t ret = ZSTD_compress2(zc, dst, dstCapacity, src, srcSize); + ZSTD_customFree(dst, ZSTD_defaultCMem); + FORWARD_IF_ERROR(ret, "ZSTD_compress2 failed"); + } + assert(zc->seqCollector.seqIndex <= ZSTD_sequenceBound(srcSize)); + return zc->seqCollector.seqIndex; +} + +size_t ZSTD_mergeBlockDelimiters(ZSTD_Sequence* sequences, size_t seqsSize) { + size_t in = 0; + size_t out = 0; + for (; in < seqsSize; ++in) { + if (sequences[in].offset == 0 && sequences[in].matchLength == 0) { + if (in != seqsSize - 1) { + sequences[in+1].litLength += sequences[in].litLength; + } + } else { + sequences[out] = sequences[in]; + ++out; + } + } + return out; +} + +/* Unrolled loop to read four size_ts of input at a time. Returns 1 if is RLE, 0 if not. */ +static int ZSTD_isRLE(const BYTE* src, size_t length) { + const BYTE* ip = src; + const BYTE value = ip[0]; + const size_t valueST = (size_t)((U64)value * 0x0101010101010101ULL); + const size_t unrollSize = sizeof(size_t) * 4; + const size_t unrollMask = unrollSize - 1; + const size_t prefixLength = length & unrollMask; + size_t i; + if (length == 1) return 1; + /* Check if prefix is RLE first before using unrolled loop */ + if (prefixLength && ZSTD_count(ip+1, ip, ip+prefixLength) != prefixLength-1) { + return 0; + } + for (i = prefixLength; i != length; i += unrollSize) { + size_t u; + for (u = 0; u < unrollSize; u += sizeof(size_t)) { + if (MEM_readST(ip + i + u) != valueST) { + return 0; + } } } + return 1; +} + +/* Returns true if the given block may be RLE. + * This is just a heuristic based on the compressibility. + * It may return both false positives and false negatives. + */ +static int ZSTD_maybeRLE(seqStore_t const* seqStore) +{ + size_t const nbSeqs = (size_t)(seqStore->sequences - seqStore->sequencesStart); + size_t const nbLits = (size_t)(seqStore->lit - seqStore->litStart); + + return nbSeqs < 4 && nbLits < 10; +} + +static void +ZSTD_blockState_confirmRepcodesAndEntropyTables(ZSTD_blockState_t* const bs) +{ + ZSTD_compressedBlockState_t* const tmp = bs->prevCBlock; + bs->prevCBlock = bs->nextCBlock; + bs->nextCBlock = tmp; +} + +/* Writes the block header */ +static void +writeBlockHeader(void* op, size_t cSize, size_t blockSize, U32 lastBlock) +{ + U32 const cBlockHeader = cSize == 1 ? + lastBlock + (((U32)bt_rle)<<1) + (U32)(blockSize << 3) : + lastBlock + (((U32)bt_compressed)<<1) + (U32)(cSize << 3); + MEM_writeLE24(op, cBlockHeader); + DEBUGLOG(3, "writeBlockHeader: cSize: %zu blockSize: %zu lastBlock: %u", cSize, blockSize, lastBlock); +} + +/** ZSTD_buildBlockEntropyStats_literals() : + * Builds entropy for the literals. + * Stores literals block type (raw, rle, compressed, repeat) and + * huffman description table to hufMetadata. + * Requires ENTROPY_WORKSPACE_SIZE workspace + * @return : size of huffman description table, or an error code + */ +static size_t +ZSTD_buildBlockEntropyStats_literals(void* const src, size_t srcSize, + const ZSTD_hufCTables_t* prevHuf, + ZSTD_hufCTables_t* nextHuf, + ZSTD_hufCTablesMetadata_t* hufMetadata, + const int literalsCompressionIsDisabled, + void* workspace, size_t wkspSize, + int hufFlags) +{ + BYTE* const wkspStart = (BYTE*)workspace; + BYTE* const wkspEnd = wkspStart + wkspSize; + BYTE* const countWkspStart = wkspStart; + unsigned* const countWksp = (unsigned*)workspace; + const size_t countWkspSize = (HUF_SYMBOLVALUE_MAX + 1) * sizeof(unsigned); + BYTE* const nodeWksp = countWkspStart + countWkspSize; + const size_t nodeWkspSize = (size_t)(wkspEnd - nodeWksp); + unsigned maxSymbolValue = HUF_SYMBOLVALUE_MAX; + unsigned huffLog = LitHufLog; + HUF_repeat repeat = prevHuf->repeatMode; + DEBUGLOG(5, "ZSTD_buildBlockEntropyStats_literals (srcSize=%zu)", srcSize); + + /* Prepare nextEntropy assuming reusing the existing table */ + ZSTD_memcpy(nextHuf, prevHuf, sizeof(*prevHuf)); + + if (literalsCompressionIsDisabled) { + DEBUGLOG(5, "set_basic - disabled"); + hufMetadata->hType = set_basic; + return 0; + } + + /* small ? don't even attempt compression (speed opt) */ +#ifndef COMPRESS_LITERALS_SIZE_MIN +# define COMPRESS_LITERALS_SIZE_MIN 63 /* heuristic */ +#endif + { size_t const minLitSize = (prevHuf->repeatMode == HUF_repeat_valid) ? 6 : COMPRESS_LITERALS_SIZE_MIN; + if (srcSize <= minLitSize) { + DEBUGLOG(5, "set_basic - too small"); + hufMetadata->hType = set_basic; + return 0; + } } + + /* Scan input and build symbol stats */ + { size_t const largest = + HIST_count_wksp (countWksp, &maxSymbolValue, + (const BYTE*)src, srcSize, + workspace, wkspSize); + FORWARD_IF_ERROR(largest, "HIST_count_wksp failed"); + if (largest == srcSize) { + /* only one literal symbol */ + DEBUGLOG(5, "set_rle"); + hufMetadata->hType = set_rle; + return 0; + } + if (largest <= (srcSize >> 7)+4) { + /* heuristic: likely not compressible */ + DEBUGLOG(5, "set_basic - no gain"); + hufMetadata->hType = set_basic; + return 0; + } } + + /* Validate the previous Huffman table */ + if (repeat == HUF_repeat_check + && !HUF_validateCTable((HUF_CElt const*)prevHuf->CTable, countWksp, maxSymbolValue)) { + repeat = HUF_repeat_none; + } + + /* Build Huffman Tree */ + ZSTD_memset(nextHuf->CTable, 0, sizeof(nextHuf->CTable)); + huffLog = HUF_optimalTableLog(huffLog, srcSize, maxSymbolValue, nodeWksp, nodeWkspSize, nextHuf->CTable, countWksp, hufFlags); + assert(huffLog <= LitHufLog); + { size_t const maxBits = HUF_buildCTable_wksp((HUF_CElt*)nextHuf->CTable, countWksp, + maxSymbolValue, huffLog, + nodeWksp, nodeWkspSize); + FORWARD_IF_ERROR(maxBits, "HUF_buildCTable_wksp"); + huffLog = (U32)maxBits; + } + { /* Build and write the CTable */ + size_t const newCSize = HUF_estimateCompressedSize( + (HUF_CElt*)nextHuf->CTable, countWksp, maxSymbolValue); + size_t const hSize = HUF_writeCTable_wksp( + hufMetadata->hufDesBuffer, sizeof(hufMetadata->hufDesBuffer), + (HUF_CElt*)nextHuf->CTable, maxSymbolValue, huffLog, + nodeWksp, nodeWkspSize); + /* Check against repeating the previous CTable */ + if (repeat != HUF_repeat_none) { + size_t const oldCSize = HUF_estimateCompressedSize( + (HUF_CElt const*)prevHuf->CTable, countWksp, maxSymbolValue); + if (oldCSize < srcSize && (oldCSize <= hSize + newCSize || hSize + 12 >= srcSize)) { + DEBUGLOG(5, "set_repeat - smaller"); + ZSTD_memcpy(nextHuf, prevHuf, sizeof(*prevHuf)); + hufMetadata->hType = set_repeat; + return 0; + } } + if (newCSize + hSize >= srcSize) { + DEBUGLOG(5, "set_basic - no gains"); + ZSTD_memcpy(nextHuf, prevHuf, sizeof(*prevHuf)); + hufMetadata->hType = set_basic; + return 0; + } + DEBUGLOG(5, "set_compressed (hSize=%u)", (U32)hSize); + hufMetadata->hType = set_compressed; + nextHuf->repeatMode = HUF_repeat_check; + return hSize; + } +} + + +/* ZSTD_buildDummySequencesStatistics(): + * Returns a ZSTD_symbolEncodingTypeStats_t with all encoding types as set_basic, + * and updates nextEntropy to the appropriate repeatMode. + */ +static ZSTD_symbolEncodingTypeStats_t +ZSTD_buildDummySequencesStatistics(ZSTD_fseCTables_t* nextEntropy) +{ + ZSTD_symbolEncodingTypeStats_t stats = {set_basic, set_basic, set_basic, 0, 0, 0}; + nextEntropy->litlength_repeatMode = FSE_repeat_none; + nextEntropy->offcode_repeatMode = FSE_repeat_none; + nextEntropy->matchlength_repeatMode = FSE_repeat_none; + return stats; +} + +/** ZSTD_buildBlockEntropyStats_sequences() : + * Builds entropy for the sequences. + * Stores symbol compression modes and fse table to fseMetadata. + * Requires ENTROPY_WORKSPACE_SIZE wksp. + * @return : size of fse tables or error code */ +static size_t +ZSTD_buildBlockEntropyStats_sequences( + const seqStore_t* seqStorePtr, + const ZSTD_fseCTables_t* prevEntropy, + ZSTD_fseCTables_t* nextEntropy, + const ZSTD_CCtx_params* cctxParams, + ZSTD_fseCTablesMetadata_t* fseMetadata, + void* workspace, size_t wkspSize) +{ + ZSTD_strategy const strategy = cctxParams->cParams.strategy; + size_t const nbSeq = (size_t)(seqStorePtr->sequences - seqStorePtr->sequencesStart); + BYTE* const ostart = fseMetadata->fseTablesBuffer; + BYTE* const oend = ostart + sizeof(fseMetadata->fseTablesBuffer); + BYTE* op = ostart; + unsigned* countWorkspace = (unsigned*)workspace; + unsigned* entropyWorkspace = countWorkspace + (MaxSeq + 1); + size_t entropyWorkspaceSize = wkspSize - (MaxSeq + 1) * sizeof(*countWorkspace); + ZSTD_symbolEncodingTypeStats_t stats; + + DEBUGLOG(5, "ZSTD_buildBlockEntropyStats_sequences (nbSeq=%zu)", nbSeq); + stats = nbSeq != 0 ? ZSTD_buildSequencesStatistics(seqStorePtr, nbSeq, + prevEntropy, nextEntropy, op, oend, + strategy, countWorkspace, + entropyWorkspace, entropyWorkspaceSize) + : ZSTD_buildDummySequencesStatistics(nextEntropy); + FORWARD_IF_ERROR(stats.size, "ZSTD_buildSequencesStatistics failed!"); + fseMetadata->llType = (symbolEncodingType_e) stats.LLtype; + fseMetadata->ofType = (symbolEncodingType_e) stats.Offtype; + fseMetadata->mlType = (symbolEncodingType_e) stats.MLtype; + fseMetadata->lastCountSize = stats.lastCountSize; + return stats.size; +} + + +/** ZSTD_buildBlockEntropyStats() : + * Builds entropy for the block. + * Requires workspace size ENTROPY_WORKSPACE_SIZE + * @return : 0 on success, or an error code + * Note : also employed in superblock + */ +size_t ZSTD_buildBlockEntropyStats( + const seqStore_t* seqStorePtr, + const ZSTD_entropyCTables_t* prevEntropy, + ZSTD_entropyCTables_t* nextEntropy, + const ZSTD_CCtx_params* cctxParams, + ZSTD_entropyCTablesMetadata_t* entropyMetadata, + void* workspace, size_t wkspSize) +{ + size_t const litSize = (size_t)(seqStorePtr->lit - seqStorePtr->litStart); + int const huf_useOptDepth = (cctxParams->cParams.strategy >= HUF_OPTIMAL_DEPTH_THRESHOLD); + int const hufFlags = huf_useOptDepth ? HUF_flags_optimalDepth : 0; + + entropyMetadata->hufMetadata.hufDesSize = + ZSTD_buildBlockEntropyStats_literals(seqStorePtr->litStart, litSize, + &prevEntropy->huf, &nextEntropy->huf, + &entropyMetadata->hufMetadata, + ZSTD_literalsCompressionIsDisabled(cctxParams), + workspace, wkspSize, hufFlags); + + FORWARD_IF_ERROR(entropyMetadata->hufMetadata.hufDesSize, "ZSTD_buildBlockEntropyStats_literals failed"); + entropyMetadata->fseMetadata.fseTablesSize = + ZSTD_buildBlockEntropyStats_sequences(seqStorePtr, + &prevEntropy->fse, &nextEntropy->fse, + cctxParams, + &entropyMetadata->fseMetadata, + workspace, wkspSize); + FORWARD_IF_ERROR(entropyMetadata->fseMetadata.fseTablesSize, "ZSTD_buildBlockEntropyStats_sequences failed"); + return 0; +} + +/* Returns the size estimate for the literals section (header + content) of a block */ +static size_t +ZSTD_estimateBlockSize_literal(const BYTE* literals, size_t litSize, + const ZSTD_hufCTables_t* huf, + const ZSTD_hufCTablesMetadata_t* hufMetadata, + void* workspace, size_t wkspSize, + int writeEntropy) +{ + unsigned* const countWksp = (unsigned*)workspace; + unsigned maxSymbolValue = HUF_SYMBOLVALUE_MAX; + size_t literalSectionHeaderSize = 3 + (litSize >= 1 KB) + (litSize >= 16 KB); + U32 singleStream = litSize < 256; + + if (hufMetadata->hType == set_basic) return litSize; + else if (hufMetadata->hType == set_rle) return 1; + else if (hufMetadata->hType == set_compressed || hufMetadata->hType == set_repeat) { + size_t const largest = HIST_count_wksp (countWksp, &maxSymbolValue, (const BYTE*)literals, litSize, workspace, wkspSize); + if (ZSTD_isError(largest)) return litSize; + { size_t cLitSizeEstimate = HUF_estimateCompressedSize((const HUF_CElt*)huf->CTable, countWksp, maxSymbolValue); + if (writeEntropy) cLitSizeEstimate += hufMetadata->hufDesSize; + if (!singleStream) cLitSizeEstimate += 6; /* multi-stream huffman uses 6-byte jump table */ + return cLitSizeEstimate + literalSectionHeaderSize; + } } + assert(0); /* impossible */ + return 0; +} + +/* Returns the size estimate for the FSE-compressed symbols (of, ml, ll) of a block */ +static size_t +ZSTD_estimateBlockSize_symbolType(symbolEncodingType_e type, + const BYTE* codeTable, size_t nbSeq, unsigned maxCode, + const FSE_CTable* fseCTable, + const U8* additionalBits, + short const* defaultNorm, U32 defaultNormLog, U32 defaultMax, + void* workspace, size_t wkspSize) +{ + unsigned* const countWksp = (unsigned*)workspace; + const BYTE* ctp = codeTable; + const BYTE* const ctStart = ctp; + const BYTE* const ctEnd = ctStart + nbSeq; + size_t cSymbolTypeSizeEstimateInBits = 0; + unsigned max = maxCode; + + HIST_countFast_wksp(countWksp, &max, codeTable, nbSeq, workspace, wkspSize); /* can't fail */ + if (type == set_basic) { + /* We selected this encoding type, so it must be valid. */ + assert(max <= defaultMax); + (void)defaultMax; + cSymbolTypeSizeEstimateInBits = ZSTD_crossEntropyCost(defaultNorm, defaultNormLog, countWksp, max); + } else if (type == set_rle) { + cSymbolTypeSizeEstimateInBits = 0; + } else if (type == set_compressed || type == set_repeat) { + cSymbolTypeSizeEstimateInBits = ZSTD_fseBitCost(fseCTable, countWksp, max); + } + if (ZSTD_isError(cSymbolTypeSizeEstimateInBits)) { + return nbSeq * 10; + } + while (ctp < ctEnd) { + if (additionalBits) cSymbolTypeSizeEstimateInBits += additionalBits[*ctp]; + else cSymbolTypeSizeEstimateInBits += *ctp; /* for offset, offset code is also the number of additional bits */ + ctp++; + } + return cSymbolTypeSizeEstimateInBits >> 3; +} + +/* Returns the size estimate for the sequences section (header + content) of a block */ +static size_t +ZSTD_estimateBlockSize_sequences(const BYTE* ofCodeTable, + const BYTE* llCodeTable, + const BYTE* mlCodeTable, + size_t nbSeq, + const ZSTD_fseCTables_t* fseTables, + const ZSTD_fseCTablesMetadata_t* fseMetadata, + void* workspace, size_t wkspSize, + int writeEntropy) +{ + size_t sequencesSectionHeaderSize = 1 /* seqHead */ + 1 /* min seqSize size */ + (nbSeq >= 128) + (nbSeq >= LONGNBSEQ); + size_t cSeqSizeEstimate = 0; + cSeqSizeEstimate += ZSTD_estimateBlockSize_symbolType(fseMetadata->ofType, ofCodeTable, nbSeq, MaxOff, + fseTables->offcodeCTable, NULL, + OF_defaultNorm, OF_defaultNormLog, DefaultMaxOff, + workspace, wkspSize); + cSeqSizeEstimate += ZSTD_estimateBlockSize_symbolType(fseMetadata->llType, llCodeTable, nbSeq, MaxLL, + fseTables->litlengthCTable, LL_bits, + LL_defaultNorm, LL_defaultNormLog, MaxLL, + workspace, wkspSize); + cSeqSizeEstimate += ZSTD_estimateBlockSize_symbolType(fseMetadata->mlType, mlCodeTable, nbSeq, MaxML, + fseTables->matchlengthCTable, ML_bits, + ML_defaultNorm, ML_defaultNormLog, MaxML, + workspace, wkspSize); + if (writeEntropy) cSeqSizeEstimate += fseMetadata->fseTablesSize; + return cSeqSizeEstimate + sequencesSectionHeaderSize; +} + +/* Returns the size estimate for a given stream of literals, of, ll, ml */ +static size_t +ZSTD_estimateBlockSize(const BYTE* literals, size_t litSize, + const BYTE* ofCodeTable, + const BYTE* llCodeTable, + const BYTE* mlCodeTable, + size_t nbSeq, + const ZSTD_entropyCTables_t* entropy, + const ZSTD_entropyCTablesMetadata_t* entropyMetadata, + void* workspace, size_t wkspSize, + int writeLitEntropy, int writeSeqEntropy) +{ + size_t const literalsSize = ZSTD_estimateBlockSize_literal(literals, litSize, + &entropy->huf, &entropyMetadata->hufMetadata, + workspace, wkspSize, writeLitEntropy); + size_t const seqSize = ZSTD_estimateBlockSize_sequences(ofCodeTable, llCodeTable, mlCodeTable, + nbSeq, &entropy->fse, &entropyMetadata->fseMetadata, + workspace, wkspSize, writeSeqEntropy); + return seqSize + literalsSize + ZSTD_blockHeaderSize; +} + +/* Builds entropy statistics and uses them for blocksize estimation. + * + * @return: estimated compressed size of the seqStore, or a zstd error. + */ +static size_t +ZSTD_buildEntropyStatisticsAndEstimateSubBlockSize(seqStore_t* seqStore, ZSTD_CCtx* zc) +{ + ZSTD_entropyCTablesMetadata_t* const entropyMetadata = &zc->blockSplitCtx.entropyMetadata; + DEBUGLOG(6, "ZSTD_buildEntropyStatisticsAndEstimateSubBlockSize()"); + FORWARD_IF_ERROR(ZSTD_buildBlockEntropyStats(seqStore, + &zc->blockState.prevCBlock->entropy, + &zc->blockState.nextCBlock->entropy, + &zc->appliedParams, + entropyMetadata, + zc->entropyWorkspace, ENTROPY_WORKSPACE_SIZE), ""); + return ZSTD_estimateBlockSize( + seqStore->litStart, (size_t)(seqStore->lit - seqStore->litStart), + seqStore->ofCode, seqStore->llCode, seqStore->mlCode, + (size_t)(seqStore->sequences - seqStore->sequencesStart), + &zc->blockState.nextCBlock->entropy, + entropyMetadata, + zc->entropyWorkspace, ENTROPY_WORKSPACE_SIZE, + (int)(entropyMetadata->hufMetadata.hType == set_compressed), 1); +} + +/* Returns literals bytes represented in a seqStore */ +static size_t ZSTD_countSeqStoreLiteralsBytes(const seqStore_t* const seqStore) +{ + size_t literalsBytes = 0; + size_t const nbSeqs = (size_t)(seqStore->sequences - seqStore->sequencesStart); + size_t i; + for (i = 0; i < nbSeqs; ++i) { + seqDef const seq = seqStore->sequencesStart[i]; + literalsBytes += seq.litLength; + if (i == seqStore->longLengthPos && seqStore->longLengthType == ZSTD_llt_literalLength) { + literalsBytes += 0x10000; + } } + return literalsBytes; +} + +/* Returns match bytes represented in a seqStore */ +static size_t ZSTD_countSeqStoreMatchBytes(const seqStore_t* const seqStore) +{ + size_t matchBytes = 0; + size_t const nbSeqs = (size_t)(seqStore->sequences - seqStore->sequencesStart); + size_t i; + for (i = 0; i < nbSeqs; ++i) { + seqDef seq = seqStore->sequencesStart[i]; + matchBytes += seq.mlBase + MINMATCH; + if (i == seqStore->longLengthPos && seqStore->longLengthType == ZSTD_llt_matchLength) { + matchBytes += 0x10000; + } } + return matchBytes; +} + +/* Derives the seqStore that is a chunk of the originalSeqStore from [startIdx, endIdx). + * Stores the result in resultSeqStore. + */ +static void ZSTD_deriveSeqStoreChunk(seqStore_t* resultSeqStore, + const seqStore_t* originalSeqStore, + size_t startIdx, size_t endIdx) +{ + *resultSeqStore = *originalSeqStore; + if (startIdx > 0) { + resultSeqStore->sequences = originalSeqStore->sequencesStart + startIdx; + resultSeqStore->litStart += ZSTD_countSeqStoreLiteralsBytes(resultSeqStore); + } + + /* Move longLengthPos into the correct position if necessary */ + if (originalSeqStore->longLengthType != ZSTD_llt_none) { + if (originalSeqStore->longLengthPos < startIdx || originalSeqStore->longLengthPos > endIdx) { + resultSeqStore->longLengthType = ZSTD_llt_none; + } else { + resultSeqStore->longLengthPos -= (U32)startIdx; + } + } + resultSeqStore->sequencesStart = originalSeqStore->sequencesStart + startIdx; + resultSeqStore->sequences = originalSeqStore->sequencesStart + endIdx; + if (endIdx == (size_t)(originalSeqStore->sequences - originalSeqStore->sequencesStart)) { + /* This accounts for possible last literals if the derived chunk reaches the end of the block */ + assert(resultSeqStore->lit == originalSeqStore->lit); + } else { + size_t const literalsBytes = ZSTD_countSeqStoreLiteralsBytes(resultSeqStore); + resultSeqStore->lit = resultSeqStore->litStart + literalsBytes; + } + resultSeqStore->llCode += startIdx; + resultSeqStore->mlCode += startIdx; + resultSeqStore->ofCode += startIdx; +} + +/** + * Returns the raw offset represented by the combination of offBase, ll0, and repcode history. + * offBase must represent a repcode in the numeric representation of ZSTD_storeSeq(). + */ +static U32 +ZSTD_resolveRepcodeToRawOffset(const U32 rep[ZSTD_REP_NUM], const U32 offBase, const U32 ll0) +{ + U32 const adjustedRepCode = OFFBASE_TO_REPCODE(offBase) - 1 + ll0; /* [ 0 - 3 ] */ + assert(OFFBASE_IS_REPCODE(offBase)); + if (adjustedRepCode == ZSTD_REP_NUM) { + assert(ll0); + /* litlength == 0 and offCode == 2 implies selection of first repcode - 1 + * This is only valid if it results in a valid offset value, aka > 0. + * Note : it may happen that `rep[0]==1` in exceptional circumstances. + * In which case this function will return 0, which is an invalid offset. + * It's not an issue though, since this value will be + * compared and discarded within ZSTD_seqStore_resolveOffCodes(). + */ + return rep[0] - 1; + } + return rep[adjustedRepCode]; +} + +/** + * ZSTD_seqStore_resolveOffCodes() reconciles any possible divergences in offset history that may arise + * due to emission of RLE/raw blocks that disturb the offset history, + * and replaces any repcodes within the seqStore that may be invalid. + * + * dRepcodes are updated as would be on the decompression side. + * cRepcodes are updated exactly in accordance with the seqStore. + * + * Note : this function assumes seq->offBase respects the following numbering scheme : + * 0 : invalid + * 1-3 : repcode 1-3 + * 4+ : real_offset+3 + */ +static void +ZSTD_seqStore_resolveOffCodes(repcodes_t* const dRepcodes, repcodes_t* const cRepcodes, + const seqStore_t* const seqStore, U32 const nbSeq) +{ + U32 idx = 0; + U32 const longLitLenIdx = seqStore->longLengthType == ZSTD_llt_literalLength ? seqStore->longLengthPos : nbSeq; + for (; idx < nbSeq; ++idx) { + seqDef* const seq = seqStore->sequencesStart + idx; + U32 const ll0 = (seq->litLength == 0) && (idx != longLitLenIdx); + U32 const offBase = seq->offBase; + assert(offBase > 0); + if (OFFBASE_IS_REPCODE(offBase)) { + U32 const dRawOffset = ZSTD_resolveRepcodeToRawOffset(dRepcodes->rep, offBase, ll0); + U32 const cRawOffset = ZSTD_resolveRepcodeToRawOffset(cRepcodes->rep, offBase, ll0); + /* Adjust simulated decompression repcode history if we come across a mismatch. Replace + * the repcode with the offset it actually references, determined by the compression + * repcode history. + */ + if (dRawOffset != cRawOffset) { + seq->offBase = OFFSET_TO_OFFBASE(cRawOffset); + } + } + /* Compression repcode history is always updated with values directly from the unmodified seqStore. + * Decompression repcode history may use modified seq->offset value taken from compression repcode history. + */ + ZSTD_updateRep(dRepcodes->rep, seq->offBase, ll0); + ZSTD_updateRep(cRepcodes->rep, offBase, ll0); + } +} + +/* ZSTD_compressSeqStore_singleBlock(): + * Compresses a seqStore into a block with a block header, into the buffer dst. + * + * Returns the total size of that block (including header) or a ZSTD error code. + */ +static size_t +ZSTD_compressSeqStore_singleBlock(ZSTD_CCtx* zc, + const seqStore_t* const seqStore, + repcodes_t* const dRep, repcodes_t* const cRep, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + U32 lastBlock, U32 isPartition) +{ + const U32 rleMaxLength = 25; + BYTE* op = (BYTE*)dst; + const BYTE* ip = (const BYTE*)src; + size_t cSize; + size_t cSeqsSize; + + /* In case of an RLE or raw block, the simulated decompression repcode history must be reset */ + repcodes_t const dRepOriginal = *dRep; + DEBUGLOG(5, "ZSTD_compressSeqStore_singleBlock"); + if (isPartition) + ZSTD_seqStore_resolveOffCodes(dRep, cRep, seqStore, (U32)(seqStore->sequences - seqStore->sequencesStart)); + + RETURN_ERROR_IF(dstCapacity < ZSTD_blockHeaderSize, dstSize_tooSmall, "Block header doesn't fit"); + cSeqsSize = ZSTD_entropyCompressSeqStore(seqStore, + &zc->blockState.prevCBlock->entropy, &zc->blockState.nextCBlock->entropy, + &zc->appliedParams, + op + ZSTD_blockHeaderSize, dstCapacity - ZSTD_blockHeaderSize, + srcSize, + zc->entropyWorkspace, ENTROPY_WORKSPACE_SIZE /* statically allocated in resetCCtx */, + zc->bmi2); + FORWARD_IF_ERROR(cSeqsSize, "ZSTD_entropyCompressSeqStore failed!"); + + if (!zc->isFirstBlock && + cSeqsSize < rleMaxLength && + ZSTD_isRLE((BYTE const*)src, srcSize)) { + /* We don't want to emit our first block as a RLE even if it qualifies because + * doing so will cause the decoder (cli only) to throw a "should consume all input error." + * This is only an issue for zstd <= v1.4.3 + */ + cSeqsSize = 1; + } + + /* Sequence collection not supported when block splitting */ + if (zc->seqCollector.collectSequences) { + FORWARD_IF_ERROR(ZSTD_copyBlockSequences(&zc->seqCollector, seqStore, dRepOriginal.rep), "copyBlockSequences failed"); + ZSTD_blockState_confirmRepcodesAndEntropyTables(&zc->blockState); + return 0; + } + + if (cSeqsSize == 0) { + cSize = ZSTD_noCompressBlock(op, dstCapacity, ip, srcSize, lastBlock); + FORWARD_IF_ERROR(cSize, "Nocompress block failed"); + DEBUGLOG(4, "Writing out nocompress block, size: %zu", cSize); + *dRep = dRepOriginal; /* reset simulated decompression repcode history */ + } else if (cSeqsSize == 1) { + cSize = ZSTD_rleCompressBlock(op, dstCapacity, *ip, srcSize, lastBlock); + FORWARD_IF_ERROR(cSize, "RLE compress block failed"); + DEBUGLOG(4, "Writing out RLE block, size: %zu", cSize); + *dRep = dRepOriginal; /* reset simulated decompression repcode history */ + } else { + ZSTD_blockState_confirmRepcodesAndEntropyTables(&zc->blockState); + writeBlockHeader(op, cSeqsSize, srcSize, lastBlock); + cSize = ZSTD_blockHeaderSize + cSeqsSize; + DEBUGLOG(4, "Writing out compressed block, size: %zu", cSize); + } + + if (zc->blockState.prevCBlock->entropy.fse.offcode_repeatMode == FSE_repeat_valid) + zc->blockState.prevCBlock->entropy.fse.offcode_repeatMode = FSE_repeat_check; + + return cSize; +} + +/* Struct to keep track of where we are in our recursive calls. */ +typedef struct { + U32* splitLocations; /* Array of split indices */ + size_t idx; /* The current index within splitLocations being worked on */ +} seqStoreSplits; + +#define MIN_SEQUENCES_BLOCK_SPLITTING 300 + +/* Helper function to perform the recursive search for block splits. + * Estimates the cost of seqStore prior to split, and estimates the cost of splitting the sequences in half. + * If advantageous to split, then we recurse down the two sub-blocks. + * If not, or if an error occurred in estimation, then we do not recurse. + * + * Note: The recursion depth is capped by a heuristic minimum number of sequences, + * defined by MIN_SEQUENCES_BLOCK_SPLITTING. + * In theory, this means the absolute largest recursion depth is 10 == log2(maxNbSeqInBlock/MIN_SEQUENCES_BLOCK_SPLITTING). + * In practice, recursion depth usually doesn't go beyond 4. + * + * Furthermore, the number of splits is capped by ZSTD_MAX_NB_BLOCK_SPLITS. + * At ZSTD_MAX_NB_BLOCK_SPLITS == 196 with the current existing blockSize + * maximum of 128 KB, this value is actually impossible to reach. + */ +static void +ZSTD_deriveBlockSplitsHelper(seqStoreSplits* splits, size_t startIdx, size_t endIdx, + ZSTD_CCtx* zc, const seqStore_t* origSeqStore) +{ + seqStore_t* const fullSeqStoreChunk = &zc->blockSplitCtx.fullSeqStoreChunk; + seqStore_t* const firstHalfSeqStore = &zc->blockSplitCtx.firstHalfSeqStore; + seqStore_t* const secondHalfSeqStore = &zc->blockSplitCtx.secondHalfSeqStore; + size_t estimatedOriginalSize; + size_t estimatedFirstHalfSize; + size_t estimatedSecondHalfSize; + size_t midIdx = (startIdx + endIdx)/2; + + DEBUGLOG(5, "ZSTD_deriveBlockSplitsHelper: startIdx=%zu endIdx=%zu", startIdx, endIdx); + assert(endIdx >= startIdx); + if (endIdx - startIdx < MIN_SEQUENCES_BLOCK_SPLITTING || splits->idx >= ZSTD_MAX_NB_BLOCK_SPLITS) { + DEBUGLOG(6, "ZSTD_deriveBlockSplitsHelper: Too few sequences (%zu)", endIdx - startIdx); + return; + } + ZSTD_deriveSeqStoreChunk(fullSeqStoreChunk, origSeqStore, startIdx, endIdx); + ZSTD_deriveSeqStoreChunk(firstHalfSeqStore, origSeqStore, startIdx, midIdx); + ZSTD_deriveSeqStoreChunk(secondHalfSeqStore, origSeqStore, midIdx, endIdx); + estimatedOriginalSize = ZSTD_buildEntropyStatisticsAndEstimateSubBlockSize(fullSeqStoreChunk, zc); + estimatedFirstHalfSize = ZSTD_buildEntropyStatisticsAndEstimateSubBlockSize(firstHalfSeqStore, zc); + estimatedSecondHalfSize = ZSTD_buildEntropyStatisticsAndEstimateSubBlockSize(secondHalfSeqStore, zc); + DEBUGLOG(5, "Estimated original block size: %zu -- First half split: %zu -- Second half split: %zu", + estimatedOriginalSize, estimatedFirstHalfSize, estimatedSecondHalfSize); + if (ZSTD_isError(estimatedOriginalSize) || ZSTD_isError(estimatedFirstHalfSize) || ZSTD_isError(estimatedSecondHalfSize)) { + return; + } + if (estimatedFirstHalfSize + estimatedSecondHalfSize < estimatedOriginalSize) { + DEBUGLOG(5, "split decided at seqNb:%zu", midIdx); + ZSTD_deriveBlockSplitsHelper(splits, startIdx, midIdx, zc, origSeqStore); + splits->splitLocations[splits->idx] = (U32)midIdx; + splits->idx++; + ZSTD_deriveBlockSplitsHelper(splits, midIdx, endIdx, zc, origSeqStore); + } +} + +/* Base recursive function. + * Populates a table with intra-block partition indices that can improve compression ratio. + * + * @return: number of splits made (which equals the size of the partition table - 1). + */ +static size_t ZSTD_deriveBlockSplits(ZSTD_CCtx* zc, U32 partitions[], U32 nbSeq) +{ + seqStoreSplits splits; + splits.splitLocations = partitions; + splits.idx = 0; + if (nbSeq <= 4) { + DEBUGLOG(5, "ZSTD_deriveBlockSplits: Too few sequences to split (%u <= 4)", nbSeq); + /* Refuse to try and split anything with less than 4 sequences */ + return 0; + } + ZSTD_deriveBlockSplitsHelper(&splits, 0, nbSeq, zc, &zc->seqStore); + splits.splitLocations[splits.idx] = nbSeq; + DEBUGLOG(5, "ZSTD_deriveBlockSplits: final nb partitions: %zu", splits.idx+1); + return splits.idx; +} + +/* ZSTD_compressBlock_splitBlock(): + * Attempts to split a given block into multiple blocks to improve compression ratio. + * + * Returns combined size of all blocks (which includes headers), or a ZSTD error code. + */ +static size_t +ZSTD_compressBlock_splitBlock_internal(ZSTD_CCtx* zc, + void* dst, size_t dstCapacity, + const void* src, size_t blockSize, + U32 lastBlock, U32 nbSeq) +{ + size_t cSize = 0; + const BYTE* ip = (const BYTE*)src; + BYTE* op = (BYTE*)dst; + size_t i = 0; + size_t srcBytesTotal = 0; + U32* const partitions = zc->blockSplitCtx.partitions; /* size == ZSTD_MAX_NB_BLOCK_SPLITS */ + seqStore_t* const nextSeqStore = &zc->blockSplitCtx.nextSeqStore; + seqStore_t* const currSeqStore = &zc->blockSplitCtx.currSeqStore; + size_t const numSplits = ZSTD_deriveBlockSplits(zc, partitions, nbSeq); + + /* If a block is split and some partitions are emitted as RLE/uncompressed, then repcode history + * may become invalid. In order to reconcile potentially invalid repcodes, we keep track of two + * separate repcode histories that simulate repcode history on compression and decompression side, + * and use the histories to determine whether we must replace a particular repcode with its raw offset. + * + * 1) cRep gets updated for each partition, regardless of whether the block was emitted as uncompressed + * or RLE. This allows us to retrieve the offset value that an invalid repcode references within + * a nocompress/RLE block. + * 2) dRep gets updated only for compressed partitions, and when a repcode gets replaced, will use + * the replacement offset value rather than the original repcode to update the repcode history. + * dRep also will be the final repcode history sent to the next block. + * + * See ZSTD_seqStore_resolveOffCodes() for more details. + */ + repcodes_t dRep; + repcodes_t cRep; + ZSTD_memcpy(dRep.rep, zc->blockState.prevCBlock->rep, sizeof(repcodes_t)); + ZSTD_memcpy(cRep.rep, zc->blockState.prevCBlock->rep, sizeof(repcodes_t)); + ZSTD_memset(nextSeqStore, 0, sizeof(seqStore_t)); + + DEBUGLOG(5, "ZSTD_compressBlock_splitBlock_internal (dstCapacity=%u, dictLimit=%u, nextToUpdate=%u)", + (unsigned)dstCapacity, (unsigned)zc->blockState.matchState.window.dictLimit, + (unsigned)zc->blockState.matchState.nextToUpdate); + + if (numSplits == 0) { + size_t cSizeSingleBlock = + ZSTD_compressSeqStore_singleBlock(zc, &zc->seqStore, + &dRep, &cRep, + op, dstCapacity, + ip, blockSize, + lastBlock, 0 /* isPartition */); + FORWARD_IF_ERROR(cSizeSingleBlock, "Compressing single block from splitBlock_internal() failed!"); + DEBUGLOG(5, "ZSTD_compressBlock_splitBlock_internal: No splits"); + assert(zc->blockSize <= ZSTD_BLOCKSIZE_MAX); + assert(cSizeSingleBlock <= zc->blockSize + ZSTD_blockHeaderSize); + return cSizeSingleBlock; + } + + ZSTD_deriveSeqStoreChunk(currSeqStore, &zc->seqStore, 0, partitions[0]); + for (i = 0; i <= numSplits; ++i) { + size_t cSizeChunk; + U32 const lastPartition = (i == numSplits); + U32 lastBlockEntireSrc = 0; + + size_t srcBytes = ZSTD_countSeqStoreLiteralsBytes(currSeqStore) + ZSTD_countSeqStoreMatchBytes(currSeqStore); + srcBytesTotal += srcBytes; + if (lastPartition) { + /* This is the final partition, need to account for possible last literals */ + srcBytes += blockSize - srcBytesTotal; + lastBlockEntireSrc = lastBlock; + } else { + ZSTD_deriveSeqStoreChunk(nextSeqStore, &zc->seqStore, partitions[i], partitions[i+1]); + } + + cSizeChunk = ZSTD_compressSeqStore_singleBlock(zc, currSeqStore, + &dRep, &cRep, + op, dstCapacity, + ip, srcBytes, + lastBlockEntireSrc, 1 /* isPartition */); + DEBUGLOG(5, "Estimated size: %zu vs %zu : actual size", + ZSTD_buildEntropyStatisticsAndEstimateSubBlockSize(currSeqStore, zc), cSizeChunk); + FORWARD_IF_ERROR(cSizeChunk, "Compressing chunk failed!"); + + ip += srcBytes; + op += cSizeChunk; + dstCapacity -= cSizeChunk; + cSize += cSizeChunk; + *currSeqStore = *nextSeqStore; + assert(cSizeChunk <= zc->blockSize + ZSTD_blockHeaderSize); + } + /* cRep and dRep may have diverged during the compression. + * If so, we use the dRep repcodes for the next block. + */ + ZSTD_memcpy(zc->blockState.prevCBlock->rep, dRep.rep, sizeof(repcodes_t)); + return cSize; +} + +static size_t +ZSTD_compressBlock_splitBlock(ZSTD_CCtx* zc, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, U32 lastBlock) +{ + U32 nbSeq; + size_t cSize; + DEBUGLOG(4, "ZSTD_compressBlock_splitBlock"); + assert(zc->appliedParams.useBlockSplitter == ZSTD_ps_enable); + + { const size_t bss = ZSTD_buildSeqStore(zc, src, srcSize); + FORWARD_IF_ERROR(bss, "ZSTD_buildSeqStore failed"); + if (bss == ZSTDbss_noCompress) { + if (zc->blockState.prevCBlock->entropy.fse.offcode_repeatMode == FSE_repeat_valid) + zc->blockState.prevCBlock->entropy.fse.offcode_repeatMode = FSE_repeat_check; + RETURN_ERROR_IF(zc->seqCollector.collectSequences, sequenceProducer_failed, "Uncompressible block"); + cSize = ZSTD_noCompressBlock(dst, dstCapacity, src, srcSize, lastBlock); + FORWARD_IF_ERROR(cSize, "ZSTD_noCompressBlock failed"); + DEBUGLOG(4, "ZSTD_compressBlock_splitBlock: Nocompress block"); + return cSize; + } + nbSeq = (U32)(zc->seqStore.sequences - zc->seqStore.sequencesStart); + } + + cSize = ZSTD_compressBlock_splitBlock_internal(zc, dst, dstCapacity, src, srcSize, lastBlock, nbSeq); + FORWARD_IF_ERROR(cSize, "Splitting blocks failed!"); + return cSize; +} + +static size_t +ZSTD_compressBlock_internal(ZSTD_CCtx* zc, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, U32 frame) +{ + /* This is an estimated upper bound for the length of an rle block. + * This isn't the actual upper bound. + * Finding the real threshold needs further investigation. + */ + const U32 rleMaxLength = 25; + size_t cSize; + const BYTE* ip = (const BYTE*)src; + BYTE* op = (BYTE*)dst; + DEBUGLOG(5, "ZSTD_compressBlock_internal (dstCapacity=%u, dictLimit=%u, nextToUpdate=%u)", + (unsigned)dstCapacity, (unsigned)zc->blockState.matchState.window.dictLimit, + (unsigned)zc->blockState.matchState.nextToUpdate); + + { const size_t bss = ZSTD_buildSeqStore(zc, src, srcSize); + FORWARD_IF_ERROR(bss, "ZSTD_buildSeqStore failed"); + if (bss == ZSTDbss_noCompress) { + RETURN_ERROR_IF(zc->seqCollector.collectSequences, sequenceProducer_failed, "Uncompressible block"); + cSize = 0; + goto out; + } + } + + if (zc->seqCollector.collectSequences) { + FORWARD_IF_ERROR(ZSTD_copyBlockSequences(&zc->seqCollector, ZSTD_getSeqStore(zc), zc->blockState.prevCBlock->rep), "copyBlockSequences failed"); + ZSTD_blockState_confirmRepcodesAndEntropyTables(&zc->blockState); + return 0; + } + + /* encode sequences and literals */ + cSize = ZSTD_entropyCompressSeqStore(&zc->seqStore, + &zc->blockState.prevCBlock->entropy, &zc->blockState.nextCBlock->entropy, + &zc->appliedParams, + dst, dstCapacity, + srcSize, + zc->entropyWorkspace, ENTROPY_WORKSPACE_SIZE /* statically allocated in resetCCtx */, + zc->bmi2); + + if (frame && + /* We don't want to emit our first block as a RLE even if it qualifies because + * doing so will cause the decoder (cli only) to throw a "should consume all input error." + * This is only an issue for zstd <= v1.4.3 + */ + !zc->isFirstBlock && + cSize < rleMaxLength && + ZSTD_isRLE(ip, srcSize)) + { + cSize = 1; + op[0] = ip[0]; + } + +out: + if (!ZSTD_isError(cSize) && cSize > 1) { + ZSTD_blockState_confirmRepcodesAndEntropyTables(&zc->blockState); + } + /* We check that dictionaries have offset codes available for the first + * block. After the first block, the offcode table might not have large + * enough codes to represent the offsets in the data. + */ + if (zc->blockState.prevCBlock->entropy.fse.offcode_repeatMode == FSE_repeat_valid) + zc->blockState.prevCBlock->entropy.fse.offcode_repeatMode = FSE_repeat_check; + + return cSize; +} + +static size_t ZSTD_compressBlock_targetCBlockSize_body(ZSTD_CCtx* zc, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + const size_t bss, U32 lastBlock) +{ + DEBUGLOG(6, "Attempting ZSTD_compressSuperBlock()"); + if (bss == ZSTDbss_compress) { + if (/* We don't want to emit our first block as a RLE even if it qualifies because + * doing so will cause the decoder (cli only) to throw a "should consume all input error." + * This is only an issue for zstd <= v1.4.3 + */ + !zc->isFirstBlock && + ZSTD_maybeRLE(&zc->seqStore) && + ZSTD_isRLE((BYTE const*)src, srcSize)) + { + return ZSTD_rleCompressBlock(dst, dstCapacity, *(BYTE const*)src, srcSize, lastBlock); + } + /* Attempt superblock compression. + * + * Note that compressed size of ZSTD_compressSuperBlock() is not bound by the + * standard ZSTD_compressBound(). This is a problem, because even if we have + * space now, taking an extra byte now could cause us to run out of space later + * and violate ZSTD_compressBound(). + * + * Define blockBound(blockSize) = blockSize + ZSTD_blockHeaderSize. + * + * In order to respect ZSTD_compressBound() we must attempt to emit a raw + * uncompressed block in these cases: + * * cSize == 0: Return code for an uncompressed block. + * * cSize == dstSize_tooSmall: We may have expanded beyond blockBound(srcSize). + * ZSTD_noCompressBlock() will return dstSize_tooSmall if we are really out of + * output space. + * * cSize >= blockBound(srcSize): We have expanded the block too much so + * emit an uncompressed block. + */ + { size_t const cSize = + ZSTD_compressSuperBlock(zc, dst, dstCapacity, src, srcSize, lastBlock); + if (cSize != ERROR(dstSize_tooSmall)) { + size_t const maxCSize = + srcSize - ZSTD_minGain(srcSize, zc->appliedParams.cParams.strategy); + FORWARD_IF_ERROR(cSize, "ZSTD_compressSuperBlock failed"); + if (cSize != 0 && cSize < maxCSize + ZSTD_blockHeaderSize) { + ZSTD_blockState_confirmRepcodesAndEntropyTables(&zc->blockState); + return cSize; + } + } + } + } /* if (bss == ZSTDbss_compress)*/ + + DEBUGLOG(6, "Resorting to ZSTD_noCompressBlock()"); + /* Superblock compression failed, attempt to emit a single no compress block. + * The decoder will be able to stream this block since it is uncompressed. + */ + return ZSTD_noCompressBlock(dst, dstCapacity, src, srcSize, lastBlock); +} + +static size_t ZSTD_compressBlock_targetCBlockSize(ZSTD_CCtx* zc, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + U32 lastBlock) +{ + size_t cSize = 0; + const size_t bss = ZSTD_buildSeqStore(zc, src, srcSize); + DEBUGLOG(5, "ZSTD_compressBlock_targetCBlockSize (dstCapacity=%u, dictLimit=%u, nextToUpdate=%u, srcSize=%zu)", + (unsigned)dstCapacity, (unsigned)zc->blockState.matchState.window.dictLimit, (unsigned)zc->blockState.matchState.nextToUpdate, srcSize); + FORWARD_IF_ERROR(bss, "ZSTD_buildSeqStore failed"); + + cSize = ZSTD_compressBlock_targetCBlockSize_body(zc, dst, dstCapacity, src, srcSize, bss, lastBlock); + FORWARD_IF_ERROR(cSize, "ZSTD_compressBlock_targetCBlockSize_body failed"); + + if (zc->blockState.prevCBlock->entropy.fse.offcode_repeatMode == FSE_repeat_valid) + zc->blockState.prevCBlock->entropy.fse.offcode_repeatMode = FSE_repeat_check; + + return cSize; +} + +static void ZSTD_overflowCorrectIfNeeded(ZSTD_matchState_t* ms, + ZSTD_cwksp* ws, + ZSTD_CCtx_params const* params, + void const* ip, + void const* iend) +{ + U32 const cycleLog = ZSTD_cycleLog(params->cParams.chainLog, params->cParams.strategy); + U32 const maxDist = (U32)1 << params->cParams.windowLog; + if (ZSTD_window_needOverflowCorrection(ms->window, cycleLog, maxDist, ms->loadedDictEnd, ip, iend)) { + U32 const correction = ZSTD_window_correctOverflow(&ms->window, cycleLog, maxDist, ip); + ZSTD_STATIC_ASSERT(ZSTD_CHAINLOG_MAX <= 30); + ZSTD_STATIC_ASSERT(ZSTD_WINDOWLOG_MAX_32 <= 30); + ZSTD_STATIC_ASSERT(ZSTD_WINDOWLOG_MAX <= 31); + ZSTD_cwksp_mark_tables_dirty(ws); + ZSTD_reduceIndex(ms, params, correction); + ZSTD_cwksp_mark_tables_clean(ws); + if (ms->nextToUpdate < correction) ms->nextToUpdate = 0; + else ms->nextToUpdate -= correction; + /* invalidate dictionaries on overflow correction */ + ms->loadedDictEnd = 0; + ms->dictMatchState = NULL; + } +} + +/*! ZSTD_compress_frameChunk() : +* Compress a chunk of data into one or multiple blocks. +* All blocks will be terminated, all input will be consumed. +* Function will issue an error if there is not enough `dstCapacity` to hold the compressed content. +* Frame is supposed already started (header already produced) +* @return : compressed size, or an error code +*/ +static size_t ZSTD_compress_frameChunk(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + U32 lastFrameChunk) +{ + size_t blockSize = cctx->blockSize; + size_t remaining = srcSize; + const BYTE* ip = (const BYTE*)src; + BYTE* const ostart = (BYTE*)dst; + BYTE* op = ostart; + U32 const maxDist = (U32)1 << cctx->appliedParams.cParams.windowLog; + + assert(cctx->appliedParams.cParams.windowLog <= ZSTD_WINDOWLOG_MAX); + + DEBUGLOG(4, "ZSTD_compress_frameChunk (blockSize=%u)", (unsigned)blockSize); + if (cctx->appliedParams.fParams.checksumFlag && srcSize) + XXH64_update(&cctx->xxhState, src, srcSize); + + while (remaining) { + ZSTD_matchState_t* const ms = &cctx->blockState.matchState; + U32 const lastBlock = lastFrameChunk & (blockSize >= remaining); + + /* TODO: See 3090. We reduced MIN_CBLOCK_SIZE from 3 to 2 so to compensate we are adding + * additional 1. We need to revisit and change this logic to be more consistent */ + RETURN_ERROR_IF(dstCapacity < ZSTD_blockHeaderSize + MIN_CBLOCK_SIZE + 1, + dstSize_tooSmall, + "not enough space to store compressed block"); + if (remaining < blockSize) blockSize = remaining; + + ZSTD_overflowCorrectIfNeeded( + ms, &cctx->workspace, &cctx->appliedParams, ip, ip + blockSize); + ZSTD_checkDictValidity(&ms->window, ip + blockSize, maxDist, &ms->loadedDictEnd, &ms->dictMatchState); + ZSTD_window_enforceMaxDist(&ms->window, ip, maxDist, &ms->loadedDictEnd, &ms->dictMatchState); + + /* Ensure hash/chain table insertion resumes no sooner than lowlimit */ + if (ms->nextToUpdate < ms->window.lowLimit) ms->nextToUpdate = ms->window.lowLimit; + + { size_t cSize; + if (ZSTD_useTargetCBlockSize(&cctx->appliedParams)) { + cSize = ZSTD_compressBlock_targetCBlockSize(cctx, op, dstCapacity, ip, blockSize, lastBlock); + FORWARD_IF_ERROR(cSize, "ZSTD_compressBlock_targetCBlockSize failed"); + assert(cSize > 0); + assert(cSize <= blockSize + ZSTD_blockHeaderSize); + } else if (ZSTD_blockSplitterEnabled(&cctx->appliedParams)) { + cSize = ZSTD_compressBlock_splitBlock(cctx, op, dstCapacity, ip, blockSize, lastBlock); + FORWARD_IF_ERROR(cSize, "ZSTD_compressBlock_splitBlock failed"); + assert(cSize > 0 || cctx->seqCollector.collectSequences == 1); + } else { + cSize = ZSTD_compressBlock_internal(cctx, + op+ZSTD_blockHeaderSize, dstCapacity-ZSTD_blockHeaderSize, + ip, blockSize, 1 /* frame */); + FORWARD_IF_ERROR(cSize, "ZSTD_compressBlock_internal failed"); + + if (cSize == 0) { /* block is not compressible */ + cSize = ZSTD_noCompressBlock(op, dstCapacity, ip, blockSize, lastBlock); + FORWARD_IF_ERROR(cSize, "ZSTD_noCompressBlock failed"); + } else { + U32 const cBlockHeader = cSize == 1 ? + lastBlock + (((U32)bt_rle)<<1) + (U32)(blockSize << 3) : + lastBlock + (((U32)bt_compressed)<<1) + (U32)(cSize << 3); + MEM_writeLE24(op, cBlockHeader); + cSize += ZSTD_blockHeaderSize; + } + } /* if (ZSTD_useTargetCBlockSize(&cctx->appliedParams))*/ + + + ip += blockSize; + assert(remaining >= blockSize); + remaining -= blockSize; + op += cSize; + assert(dstCapacity >= cSize); + dstCapacity -= cSize; + cctx->isFirstBlock = 0; + DEBUGLOG(5, "ZSTD_compress_frameChunk: adding a block of size %u", + (unsigned)cSize); + } } + + if (lastFrameChunk && (op>ostart)) cctx->stage = ZSTDcs_ending; + return (size_t)(op-ostart); +} + + +static size_t ZSTD_writeFrameHeader(void* dst, size_t dstCapacity, + const ZSTD_CCtx_params* params, U64 pledgedSrcSize, U32 dictID) +{ BYTE* const op = (BYTE*)dst; + U32 const dictIDSizeCodeLength = (dictID>0) + (dictID>=256) + (dictID>=65536); /* 0-3 */ + U32 const dictIDSizeCode = params->fParams.noDictIDFlag ? 0 : dictIDSizeCodeLength; /* 0-3 */ + U32 const checksumFlag = params->fParams.checksumFlag>0; + U32 const windowSize = (U32)1 << params->cParams.windowLog; + U32 const singleSegment = params->fParams.contentSizeFlag && (windowSize >= pledgedSrcSize); + BYTE const windowLogByte = (BYTE)((params->cParams.windowLog - ZSTD_WINDOWLOG_ABSOLUTEMIN) << 3); + U32 const fcsCode = params->fParams.contentSizeFlag ? + (pledgedSrcSize>=256) + (pledgedSrcSize>=65536+256) + (pledgedSrcSize>=0xFFFFFFFFU) : 0; /* 0-3 */ + BYTE const frameHeaderDescriptionByte = (BYTE)(dictIDSizeCode + (checksumFlag<<2) + (singleSegment<<5) + (fcsCode<<6) ); + size_t pos=0; + + assert(!(params->fParams.contentSizeFlag && pledgedSrcSize == ZSTD_CONTENTSIZE_UNKNOWN)); + RETURN_ERROR_IF(dstCapacity < ZSTD_FRAMEHEADERSIZE_MAX, dstSize_tooSmall, + "dst buf is too small to fit worst-case frame header size."); + DEBUGLOG(4, "ZSTD_writeFrameHeader : dictIDFlag : %u ; dictID : %u ; dictIDSizeCode : %u", + !params->fParams.noDictIDFlag, (unsigned)dictID, (unsigned)dictIDSizeCode); + if (params->format == ZSTD_f_zstd1) { + MEM_writeLE32(dst, ZSTD_MAGICNUMBER); + pos = 4; + } + op[pos++] = frameHeaderDescriptionByte; + if (!singleSegment) op[pos++] = windowLogByte; + switch(dictIDSizeCode) + { + default: + assert(0); /* impossible */ + ZSTD_FALLTHROUGH; + case 0 : break; + case 1 : op[pos] = (BYTE)(dictID); pos++; break; + case 2 : MEM_writeLE16(op+pos, (U16)dictID); pos+=2; break; + case 3 : MEM_writeLE32(op+pos, dictID); pos+=4; break; + } + switch(fcsCode) + { + default: + assert(0); /* impossible */ + ZSTD_FALLTHROUGH; + case 0 : if (singleSegment) op[pos++] = (BYTE)(pledgedSrcSize); break; + case 1 : MEM_writeLE16(op+pos, (U16)(pledgedSrcSize-256)); pos+=2; break; + case 2 : MEM_writeLE32(op+pos, (U32)(pledgedSrcSize)); pos+=4; break; + case 3 : MEM_writeLE64(op+pos, (U64)(pledgedSrcSize)); pos+=8; break; + } + return pos; +} + +/* ZSTD_writeSkippableFrame_advanced() : + * Writes out a skippable frame with the specified magic number variant (16 are supported), + * from ZSTD_MAGIC_SKIPPABLE_START to ZSTD_MAGIC_SKIPPABLE_START+15, and the desired source data. + * + * Returns the total number of bytes written, or a ZSTD error code. + */ +size_t ZSTD_writeSkippableFrame(void* dst, size_t dstCapacity, + const void* src, size_t srcSize, unsigned magicVariant) { + BYTE* op = (BYTE*)dst; + RETURN_ERROR_IF(dstCapacity < srcSize + ZSTD_SKIPPABLEHEADERSIZE /* Skippable frame overhead */, + dstSize_tooSmall, "Not enough room for skippable frame"); + RETURN_ERROR_IF(srcSize > (unsigned)0xFFFFFFFF, srcSize_wrong, "Src size too large for skippable frame"); + RETURN_ERROR_IF(magicVariant > 15, parameter_outOfBound, "Skippable frame magic number variant not supported"); + + MEM_writeLE32(op, (U32)(ZSTD_MAGIC_SKIPPABLE_START + magicVariant)); + MEM_writeLE32(op+4, (U32)srcSize); + ZSTD_memcpy(op+8, src, srcSize); + return srcSize + ZSTD_SKIPPABLEHEADERSIZE; +} + +/* ZSTD_writeLastEmptyBlock() : + * output an empty Block with end-of-frame mark to complete a frame + * @return : size of data written into `dst` (== ZSTD_blockHeaderSize (defined in zstd_internal.h)) + * or an error code if `dstCapacity` is too small (stage == ZSTDcs_init); + assert(nbSeq == 0 || cctx->appliedParams.ldmParams.enableLdm != ZSTD_ps_enable); + cctx->externSeqStore.seq = seq; + cctx->externSeqStore.size = nbSeq; + cctx->externSeqStore.capacity = nbSeq; + cctx->externSeqStore.pos = 0; + cctx->externSeqStore.posInSequence = 0; +} + + +static size_t ZSTD_compressContinue_internal (ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + U32 frame, U32 lastFrameChunk) +{ + ZSTD_matchState_t* const ms = &cctx->blockState.matchState; + size_t fhSize = 0; + + DEBUGLOG(5, "ZSTD_compressContinue_internal, stage: %u, srcSize: %u", + cctx->stage, (unsigned)srcSize); + RETURN_ERROR_IF(cctx->stage==ZSTDcs_created, stage_wrong, + "missing init (ZSTD_compressBegin)"); + + if (frame && (cctx->stage==ZSTDcs_init)) { + fhSize = ZSTD_writeFrameHeader(dst, dstCapacity, &cctx->appliedParams, + cctx->pledgedSrcSizePlusOne-1, cctx->dictID); + FORWARD_IF_ERROR(fhSize, "ZSTD_writeFrameHeader failed"); + assert(fhSize <= dstCapacity); + dstCapacity -= fhSize; + dst = (char*)dst + fhSize; + cctx->stage = ZSTDcs_ongoing; + } + + if (!srcSize) return fhSize; /* do not generate an empty block if no input */ + + if (!ZSTD_window_update(&ms->window, src, srcSize, ms->forceNonContiguous)) { + ms->forceNonContiguous = 0; + ms->nextToUpdate = ms->window.dictLimit; + } + if (cctx->appliedParams.ldmParams.enableLdm == ZSTD_ps_enable) { + ZSTD_window_update(&cctx->ldmState.window, src, srcSize, /* forceNonContiguous */ 0); + } + + if (!frame) { + /* overflow check and correction for block mode */ + ZSTD_overflowCorrectIfNeeded( + ms, &cctx->workspace, &cctx->appliedParams, + src, (BYTE const*)src + srcSize); + } + + DEBUGLOG(5, "ZSTD_compressContinue_internal (blockSize=%u)", (unsigned)cctx->blockSize); + { size_t const cSize = frame ? + ZSTD_compress_frameChunk (cctx, dst, dstCapacity, src, srcSize, lastFrameChunk) : + ZSTD_compressBlock_internal (cctx, dst, dstCapacity, src, srcSize, 0 /* frame */); + FORWARD_IF_ERROR(cSize, "%s", frame ? "ZSTD_compress_frameChunk failed" : "ZSTD_compressBlock_internal failed"); + cctx->consumedSrcSize += srcSize; + cctx->producedCSize += (cSize + fhSize); + assert(!(cctx->appliedParams.fParams.contentSizeFlag && cctx->pledgedSrcSizePlusOne == 0)); + if (cctx->pledgedSrcSizePlusOne != 0) { /* control src size */ + ZSTD_STATIC_ASSERT(ZSTD_CONTENTSIZE_UNKNOWN == (unsigned long long)-1); + RETURN_ERROR_IF( + cctx->consumedSrcSize+1 > cctx->pledgedSrcSizePlusOne, + srcSize_wrong, + "error : pledgedSrcSize = %u, while realSrcSize >= %u", + (unsigned)cctx->pledgedSrcSizePlusOne-1, + (unsigned)cctx->consumedSrcSize); + } + return cSize + fhSize; + } +} + +size_t ZSTD_compressContinue_public(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize) +{ + DEBUGLOG(5, "ZSTD_compressContinue (srcSize=%u)", (unsigned)srcSize); + return ZSTD_compressContinue_internal(cctx, dst, dstCapacity, src, srcSize, 1 /* frame mode */, 0 /* last chunk */); +} + +/* NOTE: Must just wrap ZSTD_compressContinue_public() */ +size_t ZSTD_compressContinue(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize) +{ + return ZSTD_compressContinue_public(cctx, dst, dstCapacity, src, srcSize); +} + +static size_t ZSTD_getBlockSize_deprecated(const ZSTD_CCtx* cctx) +{ + ZSTD_compressionParameters const cParams = cctx->appliedParams.cParams; + assert(!ZSTD_checkCParams(cParams)); + return MIN(cctx->appliedParams.maxBlockSize, (size_t)1 << cParams.windowLog); +} + +/* NOTE: Must just wrap ZSTD_getBlockSize_deprecated() */ +size_t ZSTD_getBlockSize(const ZSTD_CCtx* cctx) +{ + return ZSTD_getBlockSize_deprecated(cctx); +} + +/* NOTE: Must just wrap ZSTD_compressBlock_deprecated() */ +size_t ZSTD_compressBlock_deprecated(ZSTD_CCtx* cctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize) +{ + DEBUGLOG(5, "ZSTD_compressBlock: srcSize = %u", (unsigned)srcSize); + { size_t const blockSizeMax = ZSTD_getBlockSize_deprecated(cctx); + RETURN_ERROR_IF(srcSize > blockSizeMax, srcSize_wrong, "input is larger than a block"); } + + return ZSTD_compressContinue_internal(cctx, dst, dstCapacity, src, srcSize, 0 /* frame mode */, 0 /* last chunk */); +} + +/* NOTE: Must just wrap ZSTD_compressBlock_deprecated() */ +size_t ZSTD_compressBlock(ZSTD_CCtx* cctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize) +{ + return ZSTD_compressBlock_deprecated(cctx, dst, dstCapacity, src, srcSize); +} + +/*! ZSTD_loadDictionaryContent() : + * @return : 0, or an error code + */ +static size_t ZSTD_loadDictionaryContent(ZSTD_matchState_t* ms, + ldmState_t* ls, + ZSTD_cwksp* ws, + ZSTD_CCtx_params const* params, + const void* src, size_t srcSize, + ZSTD_dictTableLoadMethod_e dtlm, + ZSTD_tableFillPurpose_e tfp) +{ + const BYTE* ip = (const BYTE*) src; + const BYTE* const iend = ip + srcSize; + int const loadLdmDict = params->ldmParams.enableLdm == ZSTD_ps_enable && ls != NULL; + + /* Assert that the ms params match the params we're being given */ + ZSTD_assertEqualCParams(params->cParams, ms->cParams); + + { /* Ensure large dictionaries can't cause index overflow */ + + /* Allow the dictionary to set indices up to exactly ZSTD_CURRENT_MAX. + * Dictionaries right at the edge will immediately trigger overflow + * correction, but I don't want to insert extra constraints here. + */ + U32 maxDictSize = ZSTD_CURRENT_MAX - ZSTD_WINDOW_START_INDEX; + + int const CDictTaggedIndices = ZSTD_CDictIndicesAreTagged(¶ms->cParams); + if (CDictTaggedIndices && tfp == ZSTD_tfp_forCDict) { + /* Some dictionary matchfinders in zstd use "short cache", + * which treats the lower ZSTD_SHORT_CACHE_TAG_BITS of each + * CDict hashtable entry as a tag rather than as part of an index. + * When short cache is used, we need to truncate the dictionary + * so that its indices don't overlap with the tag. */ + U32 const shortCacheMaxDictSize = (1u << (32 - ZSTD_SHORT_CACHE_TAG_BITS)) - ZSTD_WINDOW_START_INDEX; + maxDictSize = MIN(maxDictSize, shortCacheMaxDictSize); + assert(!loadLdmDict); + } + + /* If the dictionary is too large, only load the suffix of the dictionary. */ + if (srcSize > maxDictSize) { + ip = iend - maxDictSize; + src = ip; + srcSize = maxDictSize; + } + } + + if (srcSize > ZSTD_CHUNKSIZE_MAX) { + /* We must have cleared our windows when our source is this large. */ + assert(ZSTD_window_isEmpty(ms->window)); + if (loadLdmDict) assert(ZSTD_window_isEmpty(ls->window)); + } + ZSTD_window_update(&ms->window, src, srcSize, /* forceNonContiguous */ 0); + + DEBUGLOG(4, "ZSTD_loadDictionaryContent(): useRowMatchFinder=%d", (int)params->useRowMatchFinder); + + if (loadLdmDict) { /* Load the entire dict into LDM matchfinders. */ + ZSTD_window_update(&ls->window, src, srcSize, /* forceNonContiguous */ 0); + ls->loadedDictEnd = params->forceWindow ? 0 : (U32)(iend - ls->window.base); + ZSTD_ldm_fillHashTable(ls, ip, iend, ¶ms->ldmParams); + } + + /* If the dict is larger than we can reasonably index in our tables, only load the suffix. */ + if (params->cParams.strategy < ZSTD_btultra) { + U32 maxDictSize = 8U << MIN(MAX(params->cParams.hashLog, params->cParams.chainLog), 28); + if (srcSize > maxDictSize) { + ip = iend - maxDictSize; + src = ip; + srcSize = maxDictSize; + } + } + + ms->nextToUpdate = (U32)(ip - ms->window.base); + ms->loadedDictEnd = params->forceWindow ? 0 : (U32)(iend - ms->window.base); + ms->forceNonContiguous = params->deterministicRefPrefix; + + if (srcSize <= HASH_READ_SIZE) return 0; + + ZSTD_overflowCorrectIfNeeded(ms, ws, params, ip, iend); + + switch(params->cParams.strategy) + { + case ZSTD_fast: + ZSTD_fillHashTable(ms, iend, dtlm, tfp); + break; + case ZSTD_dfast: +#ifndef ZSTD_EXCLUDE_DFAST_BLOCK_COMPRESSOR + ZSTD_fillDoubleHashTable(ms, iend, dtlm, tfp); +#else + assert(0); /* shouldn't be called: cparams should've been adjusted. */ +#endif + break; + + case ZSTD_greedy: + case ZSTD_lazy: + case ZSTD_lazy2: +#if !defined(ZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR) + assert(srcSize >= HASH_READ_SIZE); + if (ms->dedicatedDictSearch) { + assert(ms->chainTable != NULL); + ZSTD_dedicatedDictSearch_lazy_loadDictionary(ms, iend-HASH_READ_SIZE); + } else { + assert(params->useRowMatchFinder != ZSTD_ps_auto); + if (params->useRowMatchFinder == ZSTD_ps_enable) { + size_t const tagTableSize = ((size_t)1 << params->cParams.hashLog); + ZSTD_memset(ms->tagTable, 0, tagTableSize); + ZSTD_row_update(ms, iend-HASH_READ_SIZE); + DEBUGLOG(4, "Using row-based hash table for lazy dict"); + } else { + ZSTD_insertAndFindFirstIndex(ms, iend-HASH_READ_SIZE); + DEBUGLOG(4, "Using chain-based hash table for lazy dict"); + } + } +#else + assert(0); /* shouldn't be called: cparams should've been adjusted. */ +#endif + break; + + case ZSTD_btlazy2: /* we want the dictionary table fully sorted */ + case ZSTD_btopt: + case ZSTD_btultra: + case ZSTD_btultra2: +#if !defined(ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_BTOPT_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_BTULTRA_BLOCK_COMPRESSOR) + assert(srcSize >= HASH_READ_SIZE); + ZSTD_updateTree(ms, iend-HASH_READ_SIZE, iend); +#else + assert(0); /* shouldn't be called: cparams should've been adjusted. */ +#endif + break; + + default: + assert(0); /* not possible : not a valid strategy id */ + } + + ms->nextToUpdate = (U32)(iend - ms->window.base); + return 0; +} + + +/* Dictionaries that assign zero probability to symbols that show up causes problems + * when FSE encoding. Mark dictionaries with zero probability symbols as FSE_repeat_check + * and only dictionaries with 100% valid symbols can be assumed valid. + */ +static FSE_repeat ZSTD_dictNCountRepeat(short* normalizedCounter, unsigned dictMaxSymbolValue, unsigned maxSymbolValue) +{ + U32 s; + if (dictMaxSymbolValue < maxSymbolValue) { + return FSE_repeat_check; + } + for (s = 0; s <= maxSymbolValue; ++s) { + if (normalizedCounter[s] == 0) { + return FSE_repeat_check; + } + } + return FSE_repeat_valid; +} + +size_t ZSTD_loadCEntropy(ZSTD_compressedBlockState_t* bs, void* workspace, + const void* const dict, size_t dictSize) +{ + short offcodeNCount[MaxOff+1]; + unsigned offcodeMaxValue = MaxOff; + const BYTE* dictPtr = (const BYTE*)dict; /* skip magic num and dict ID */ + const BYTE* const dictEnd = dictPtr + dictSize; + dictPtr += 8; + bs->entropy.huf.repeatMode = HUF_repeat_check; + + { unsigned maxSymbolValue = 255; + unsigned hasZeroWeights = 1; + size_t const hufHeaderSize = HUF_readCTable((HUF_CElt*)bs->entropy.huf.CTable, &maxSymbolValue, dictPtr, + dictEnd-dictPtr, &hasZeroWeights); + + /* We only set the loaded table as valid if it contains all non-zero + * weights. Otherwise, we set it to check */ + if (!hasZeroWeights && maxSymbolValue == 255) + bs->entropy.huf.repeatMode = HUF_repeat_valid; + + RETURN_ERROR_IF(HUF_isError(hufHeaderSize), dictionary_corrupted, ""); + dictPtr += hufHeaderSize; + } + + { unsigned offcodeLog; + size_t const offcodeHeaderSize = FSE_readNCount(offcodeNCount, &offcodeMaxValue, &offcodeLog, dictPtr, dictEnd-dictPtr); + RETURN_ERROR_IF(FSE_isError(offcodeHeaderSize), dictionary_corrupted, ""); + RETURN_ERROR_IF(offcodeLog > OffFSELog, dictionary_corrupted, ""); + /* fill all offset symbols to avoid garbage at end of table */ + RETURN_ERROR_IF(FSE_isError(FSE_buildCTable_wksp( + bs->entropy.fse.offcodeCTable, + offcodeNCount, MaxOff, offcodeLog, + workspace, HUF_WORKSPACE_SIZE)), + dictionary_corrupted, ""); + /* Defer checking offcodeMaxValue because we need to know the size of the dictionary content */ + dictPtr += offcodeHeaderSize; + } + + { short matchlengthNCount[MaxML+1]; + unsigned matchlengthMaxValue = MaxML, matchlengthLog; + size_t const matchlengthHeaderSize = FSE_readNCount(matchlengthNCount, &matchlengthMaxValue, &matchlengthLog, dictPtr, dictEnd-dictPtr); + RETURN_ERROR_IF(FSE_isError(matchlengthHeaderSize), dictionary_corrupted, ""); + RETURN_ERROR_IF(matchlengthLog > MLFSELog, dictionary_corrupted, ""); + RETURN_ERROR_IF(FSE_isError(FSE_buildCTable_wksp( + bs->entropy.fse.matchlengthCTable, + matchlengthNCount, matchlengthMaxValue, matchlengthLog, + workspace, HUF_WORKSPACE_SIZE)), + dictionary_corrupted, ""); + bs->entropy.fse.matchlength_repeatMode = ZSTD_dictNCountRepeat(matchlengthNCount, matchlengthMaxValue, MaxML); + dictPtr += matchlengthHeaderSize; + } + + { short litlengthNCount[MaxLL+1]; + unsigned litlengthMaxValue = MaxLL, litlengthLog; + size_t const litlengthHeaderSize = FSE_readNCount(litlengthNCount, &litlengthMaxValue, &litlengthLog, dictPtr, dictEnd-dictPtr); + RETURN_ERROR_IF(FSE_isError(litlengthHeaderSize), dictionary_corrupted, ""); + RETURN_ERROR_IF(litlengthLog > LLFSELog, dictionary_corrupted, ""); + RETURN_ERROR_IF(FSE_isError(FSE_buildCTable_wksp( + bs->entropy.fse.litlengthCTable, + litlengthNCount, litlengthMaxValue, litlengthLog, + workspace, HUF_WORKSPACE_SIZE)), + dictionary_corrupted, ""); + bs->entropy.fse.litlength_repeatMode = ZSTD_dictNCountRepeat(litlengthNCount, litlengthMaxValue, MaxLL); + dictPtr += litlengthHeaderSize; + } + + RETURN_ERROR_IF(dictPtr+12 > dictEnd, dictionary_corrupted, ""); + bs->rep[0] = MEM_readLE32(dictPtr+0); + bs->rep[1] = MEM_readLE32(dictPtr+4); + bs->rep[2] = MEM_readLE32(dictPtr+8); + dictPtr += 12; + + { size_t const dictContentSize = (size_t)(dictEnd - dictPtr); + U32 offcodeMax = MaxOff; + if (dictContentSize <= ((U32)-1) - 128 KB) { + U32 const maxOffset = (U32)dictContentSize + 128 KB; /* The maximum offset that must be supported */ + offcodeMax = ZSTD_highbit32(maxOffset); /* Calculate minimum offset code required to represent maxOffset */ + } + /* All offset values <= dictContentSize + 128 KB must be representable for a valid table */ + bs->entropy.fse.offcode_repeatMode = ZSTD_dictNCountRepeat(offcodeNCount, offcodeMaxValue, MIN(offcodeMax, MaxOff)); + + /* All repCodes must be <= dictContentSize and != 0 */ + { U32 u; + for (u=0; u<3; u++) { + RETURN_ERROR_IF(bs->rep[u] == 0, dictionary_corrupted, ""); + RETURN_ERROR_IF(bs->rep[u] > dictContentSize, dictionary_corrupted, ""); + } } } + + return dictPtr - (const BYTE*)dict; +} + +/* Dictionary format : + * See : + * https://github.com/facebook/zstd/blob/release/doc/zstd_compression_format.md#dictionary-format + */ +/*! ZSTD_loadZstdDictionary() : + * @return : dictID, or an error code + * assumptions : magic number supposed already checked + * dictSize supposed >= 8 + */ +static size_t ZSTD_loadZstdDictionary(ZSTD_compressedBlockState_t* bs, + ZSTD_matchState_t* ms, + ZSTD_cwksp* ws, + ZSTD_CCtx_params const* params, + const void* dict, size_t dictSize, + ZSTD_dictTableLoadMethod_e dtlm, + ZSTD_tableFillPurpose_e tfp, + void* workspace) +{ + const BYTE* dictPtr = (const BYTE*)dict; + const BYTE* const dictEnd = dictPtr + dictSize; + size_t dictID; + size_t eSize; + ZSTD_STATIC_ASSERT(HUF_WORKSPACE_SIZE >= (1<= 8); + assert(MEM_readLE32(dictPtr) == ZSTD_MAGIC_DICTIONARY); + + dictID = params->fParams.noDictIDFlag ? 0 : MEM_readLE32(dictPtr + 4 /* skip magic number */ ); + eSize = ZSTD_loadCEntropy(bs, workspace, dict, dictSize); + FORWARD_IF_ERROR(eSize, "ZSTD_loadCEntropy failed"); + dictPtr += eSize; + + { + size_t const dictContentSize = (size_t)(dictEnd - dictPtr); + FORWARD_IF_ERROR(ZSTD_loadDictionaryContent( + ms, NULL, ws, params, dictPtr, dictContentSize, dtlm, tfp), ""); + } + return dictID; +} + +/** ZSTD_compress_insertDictionary() : +* @return : dictID, or an error code */ +static size_t +ZSTD_compress_insertDictionary(ZSTD_compressedBlockState_t* bs, + ZSTD_matchState_t* ms, + ldmState_t* ls, + ZSTD_cwksp* ws, + const ZSTD_CCtx_params* params, + const void* dict, size_t dictSize, + ZSTD_dictContentType_e dictContentType, + ZSTD_dictTableLoadMethod_e dtlm, + ZSTD_tableFillPurpose_e tfp, + void* workspace) +{ + DEBUGLOG(4, "ZSTD_compress_insertDictionary (dictSize=%u)", (U32)dictSize); + if ((dict==NULL) || (dictSize<8)) { + RETURN_ERROR_IF(dictContentType == ZSTD_dct_fullDict, dictionary_wrong, ""); + return 0; + } + + ZSTD_reset_compressedBlockState(bs); + + /* dict restricted modes */ + if (dictContentType == ZSTD_dct_rawContent) + return ZSTD_loadDictionaryContent(ms, ls, ws, params, dict, dictSize, dtlm, tfp); + + if (MEM_readLE32(dict) != ZSTD_MAGIC_DICTIONARY) { + if (dictContentType == ZSTD_dct_auto) { + DEBUGLOG(4, "raw content dictionary detected"); + return ZSTD_loadDictionaryContent( + ms, ls, ws, params, dict, dictSize, dtlm, tfp); + } + RETURN_ERROR_IF(dictContentType == ZSTD_dct_fullDict, dictionary_wrong, ""); + assert(0); /* impossible */ + } + + /* dict as full zstd dictionary */ + return ZSTD_loadZstdDictionary( + bs, ms, ws, params, dict, dictSize, dtlm, tfp, workspace); +} + +#define ZSTD_USE_CDICT_PARAMS_SRCSIZE_CUTOFF (128 KB) +#define ZSTD_USE_CDICT_PARAMS_DICTSIZE_MULTIPLIER (6ULL) + +/*! ZSTD_compressBegin_internal() : + * Assumption : either @dict OR @cdict (or none) is non-NULL, never both + * @return : 0, or an error code */ +static size_t ZSTD_compressBegin_internal(ZSTD_CCtx* cctx, + const void* dict, size_t dictSize, + ZSTD_dictContentType_e dictContentType, + ZSTD_dictTableLoadMethod_e dtlm, + const ZSTD_CDict* cdict, + const ZSTD_CCtx_params* params, U64 pledgedSrcSize, + ZSTD_buffered_policy_e zbuff) +{ + size_t const dictContentSize = cdict ? cdict->dictContentSize : dictSize; +#if ZSTD_TRACE + cctx->traceCtx = (ZSTD_trace_compress_begin != NULL) ? ZSTD_trace_compress_begin(cctx) : 0; +#endif + DEBUGLOG(4, "ZSTD_compressBegin_internal: wlog=%u", params->cParams.windowLog); + /* params are supposed to be fully validated at this point */ + assert(!ZSTD_isError(ZSTD_checkCParams(params->cParams))); + assert(!((dict) && (cdict))); /* either dict or cdict, not both */ + if ( (cdict) + && (cdict->dictContentSize > 0) + && ( pledgedSrcSize < ZSTD_USE_CDICT_PARAMS_SRCSIZE_CUTOFF + || pledgedSrcSize < cdict->dictContentSize * ZSTD_USE_CDICT_PARAMS_DICTSIZE_MULTIPLIER + || pledgedSrcSize == ZSTD_CONTENTSIZE_UNKNOWN + || cdict->compressionLevel == 0) + && (params->attachDictPref != ZSTD_dictForceLoad) ) { + return ZSTD_resetCCtx_usingCDict(cctx, cdict, params, pledgedSrcSize, zbuff); + } + + FORWARD_IF_ERROR( ZSTD_resetCCtx_internal(cctx, params, pledgedSrcSize, + dictContentSize, + ZSTDcrp_makeClean, zbuff) , ""); + { size_t const dictID = cdict ? + ZSTD_compress_insertDictionary( + cctx->blockState.prevCBlock, &cctx->blockState.matchState, + &cctx->ldmState, &cctx->workspace, &cctx->appliedParams, cdict->dictContent, + cdict->dictContentSize, cdict->dictContentType, dtlm, + ZSTD_tfp_forCCtx, cctx->entropyWorkspace) + : ZSTD_compress_insertDictionary( + cctx->blockState.prevCBlock, &cctx->blockState.matchState, + &cctx->ldmState, &cctx->workspace, &cctx->appliedParams, dict, dictSize, + dictContentType, dtlm, ZSTD_tfp_forCCtx, cctx->entropyWorkspace); + FORWARD_IF_ERROR(dictID, "ZSTD_compress_insertDictionary failed"); + assert(dictID <= UINT_MAX); + cctx->dictID = (U32)dictID; + cctx->dictContentSize = dictContentSize; + } + return 0; +} + +size_t ZSTD_compressBegin_advanced_internal(ZSTD_CCtx* cctx, + const void* dict, size_t dictSize, + ZSTD_dictContentType_e dictContentType, + ZSTD_dictTableLoadMethod_e dtlm, + const ZSTD_CDict* cdict, + const ZSTD_CCtx_params* params, + unsigned long long pledgedSrcSize) +{ + DEBUGLOG(4, "ZSTD_compressBegin_advanced_internal: wlog=%u", params->cParams.windowLog); + /* compression parameters verification and optimization */ + FORWARD_IF_ERROR( ZSTD_checkCParams(params->cParams) , ""); + return ZSTD_compressBegin_internal(cctx, + dict, dictSize, dictContentType, dtlm, + cdict, + params, pledgedSrcSize, + ZSTDb_not_buffered); +} + +/*! ZSTD_compressBegin_advanced() : +* @return : 0, or an error code */ +size_t ZSTD_compressBegin_advanced(ZSTD_CCtx* cctx, + const void* dict, size_t dictSize, + ZSTD_parameters params, unsigned long long pledgedSrcSize) +{ + ZSTD_CCtx_params cctxParams; + ZSTD_CCtxParams_init_internal(&cctxParams, ¶ms, ZSTD_NO_CLEVEL); + return ZSTD_compressBegin_advanced_internal(cctx, + dict, dictSize, ZSTD_dct_auto, ZSTD_dtlm_fast, + NULL /*cdict*/, + &cctxParams, pledgedSrcSize); +} + +static size_t +ZSTD_compressBegin_usingDict_deprecated(ZSTD_CCtx* cctx, const void* dict, size_t dictSize, int compressionLevel) +{ + ZSTD_CCtx_params cctxParams; + { ZSTD_parameters const params = ZSTD_getParams_internal(compressionLevel, ZSTD_CONTENTSIZE_UNKNOWN, dictSize, ZSTD_cpm_noAttachDict); + ZSTD_CCtxParams_init_internal(&cctxParams, ¶ms, (compressionLevel == 0) ? ZSTD_CLEVEL_DEFAULT : compressionLevel); + } + DEBUGLOG(4, "ZSTD_compressBegin_usingDict (dictSize=%u)", (unsigned)dictSize); + return ZSTD_compressBegin_internal(cctx, dict, dictSize, ZSTD_dct_auto, ZSTD_dtlm_fast, NULL, + &cctxParams, ZSTD_CONTENTSIZE_UNKNOWN, ZSTDb_not_buffered); +} + +size_t +ZSTD_compressBegin_usingDict(ZSTD_CCtx* cctx, const void* dict, size_t dictSize, int compressionLevel) +{ + return ZSTD_compressBegin_usingDict_deprecated(cctx, dict, dictSize, compressionLevel); +} + +size_t ZSTD_compressBegin(ZSTD_CCtx* cctx, int compressionLevel) +{ + return ZSTD_compressBegin_usingDict_deprecated(cctx, NULL, 0, compressionLevel); +} + + +/*! ZSTD_writeEpilogue() : +* Ends a frame. +* @return : nb of bytes written into dst (or an error code) */ +static size_t ZSTD_writeEpilogue(ZSTD_CCtx* cctx, void* dst, size_t dstCapacity) +{ + BYTE* const ostart = (BYTE*)dst; + BYTE* op = ostart; + + DEBUGLOG(4, "ZSTD_writeEpilogue"); + RETURN_ERROR_IF(cctx->stage == ZSTDcs_created, stage_wrong, "init missing"); + + /* special case : empty frame */ + if (cctx->stage == ZSTDcs_init) { + size_t fhSize = ZSTD_writeFrameHeader(dst, dstCapacity, &cctx->appliedParams, 0, 0); + FORWARD_IF_ERROR(fhSize, "ZSTD_writeFrameHeader failed"); + dstCapacity -= fhSize; + op += fhSize; + cctx->stage = ZSTDcs_ongoing; + } + + if (cctx->stage != ZSTDcs_ending) { + /* write one last empty block, make it the "last" block */ + U32 const cBlockHeader24 = 1 /* last block */ + (((U32)bt_raw)<<1) + 0; + ZSTD_STATIC_ASSERT(ZSTD_BLOCKHEADERSIZE == 3); + RETURN_ERROR_IF(dstCapacity<3, dstSize_tooSmall, "no room for epilogue"); + MEM_writeLE24(op, cBlockHeader24); + op += ZSTD_blockHeaderSize; + dstCapacity -= ZSTD_blockHeaderSize; + } + + if (cctx->appliedParams.fParams.checksumFlag) { + U32 const checksum = (U32) XXH64_digest(&cctx->xxhState); + RETURN_ERROR_IF(dstCapacity<4, dstSize_tooSmall, "no room for checksum"); + DEBUGLOG(4, "ZSTD_writeEpilogue: write checksum : %08X", (unsigned)checksum); + MEM_writeLE32(op, checksum); + op += 4; + } + + cctx->stage = ZSTDcs_created; /* return to "created but no init" status */ + return op-ostart; +} + +void ZSTD_CCtx_trace(ZSTD_CCtx* cctx, size_t extraCSize) +{ +#if ZSTD_TRACE + if (cctx->traceCtx && ZSTD_trace_compress_end != NULL) { + int const streaming = cctx->inBuffSize > 0 || cctx->outBuffSize > 0 || cctx->appliedParams.nbWorkers > 0; + ZSTD_Trace trace; + ZSTD_memset(&trace, 0, sizeof(trace)); + trace.version = ZSTD_VERSION_NUMBER; + trace.streaming = streaming; + trace.dictionaryID = cctx->dictID; + trace.dictionarySize = cctx->dictContentSize; + trace.uncompressedSize = cctx->consumedSrcSize; + trace.compressedSize = cctx->producedCSize + extraCSize; + trace.params = &cctx->appliedParams; + trace.cctx = cctx; + ZSTD_trace_compress_end(cctx->traceCtx, &trace); + } + cctx->traceCtx = 0; +#else + (void)cctx; + (void)extraCSize; +#endif +} + +size_t ZSTD_compressEnd_public(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize) +{ + size_t endResult; + size_t const cSize = ZSTD_compressContinue_internal(cctx, + dst, dstCapacity, src, srcSize, + 1 /* frame mode */, 1 /* last chunk */); + FORWARD_IF_ERROR(cSize, "ZSTD_compressContinue_internal failed"); + endResult = ZSTD_writeEpilogue(cctx, (char*)dst + cSize, dstCapacity-cSize); + FORWARD_IF_ERROR(endResult, "ZSTD_writeEpilogue failed"); + assert(!(cctx->appliedParams.fParams.contentSizeFlag && cctx->pledgedSrcSizePlusOne == 0)); + if (cctx->pledgedSrcSizePlusOne != 0) { /* control src size */ + ZSTD_STATIC_ASSERT(ZSTD_CONTENTSIZE_UNKNOWN == (unsigned long long)-1); + DEBUGLOG(4, "end of frame : controlling src size"); + RETURN_ERROR_IF( + cctx->pledgedSrcSizePlusOne != cctx->consumedSrcSize+1, + srcSize_wrong, + "error : pledgedSrcSize = %u, while realSrcSize = %u", + (unsigned)cctx->pledgedSrcSizePlusOne-1, + (unsigned)cctx->consumedSrcSize); + } + ZSTD_CCtx_trace(cctx, endResult); + return cSize + endResult; +} + +/* NOTE: Must just wrap ZSTD_compressEnd_public() */ +size_t ZSTD_compressEnd(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize) +{ + return ZSTD_compressEnd_public(cctx, dst, dstCapacity, src, srcSize); +} + +size_t ZSTD_compress_advanced (ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + const void* dict,size_t dictSize, + ZSTD_parameters params) +{ + DEBUGLOG(4, "ZSTD_compress_advanced"); + FORWARD_IF_ERROR(ZSTD_checkCParams(params.cParams), ""); + ZSTD_CCtxParams_init_internal(&cctx->simpleApiParams, ¶ms, ZSTD_NO_CLEVEL); + return ZSTD_compress_advanced_internal(cctx, + dst, dstCapacity, + src, srcSize, + dict, dictSize, + &cctx->simpleApiParams); +} + +/* Internal */ +size_t ZSTD_compress_advanced_internal( + ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + const void* dict,size_t dictSize, + const ZSTD_CCtx_params* params) +{ + DEBUGLOG(4, "ZSTD_compress_advanced_internal (srcSize:%u)", (unsigned)srcSize); + FORWARD_IF_ERROR( ZSTD_compressBegin_internal(cctx, + dict, dictSize, ZSTD_dct_auto, ZSTD_dtlm_fast, NULL, + params, srcSize, ZSTDb_not_buffered) , ""); + return ZSTD_compressEnd_public(cctx, dst, dstCapacity, src, srcSize); +} + +size_t ZSTD_compress_usingDict(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + const void* dict, size_t dictSize, + int compressionLevel) +{ + { + ZSTD_parameters const params = ZSTD_getParams_internal(compressionLevel, srcSize, dict ? dictSize : 0, ZSTD_cpm_noAttachDict); + assert(params.fParams.contentSizeFlag == 1); + ZSTD_CCtxParams_init_internal(&cctx->simpleApiParams, ¶ms, (compressionLevel == 0) ? ZSTD_CLEVEL_DEFAULT: compressionLevel); + } + DEBUGLOG(4, "ZSTD_compress_usingDict (srcSize=%u)", (unsigned)srcSize); + return ZSTD_compress_advanced_internal(cctx, dst, dstCapacity, src, srcSize, dict, dictSize, &cctx->simpleApiParams); +} + +size_t ZSTD_compressCCtx(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + int compressionLevel) +{ + DEBUGLOG(4, "ZSTD_compressCCtx (srcSize=%u)", (unsigned)srcSize); + assert(cctx != NULL); + return ZSTD_compress_usingDict(cctx, dst, dstCapacity, src, srcSize, NULL, 0, compressionLevel); +} + +size_t ZSTD_compress(void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + int compressionLevel) +{ + size_t result; +#if ZSTD_COMPRESS_HEAPMODE + ZSTD_CCtx* cctx = ZSTD_createCCtx(); + RETURN_ERROR_IF(!cctx, memory_allocation, "ZSTD_createCCtx failed"); + result = ZSTD_compressCCtx(cctx, dst, dstCapacity, src, srcSize, compressionLevel); + ZSTD_freeCCtx(cctx); +#else + ZSTD_CCtx ctxBody; + ZSTD_initCCtx(&ctxBody, ZSTD_defaultCMem); + result = ZSTD_compressCCtx(&ctxBody, dst, dstCapacity, src, srcSize, compressionLevel); + ZSTD_freeCCtxContent(&ctxBody); /* can't free ctxBody itself, as it's on stack; free only heap content */ +#endif + return result; +} + + +/* ===== Dictionary API ===== */ + +/*! ZSTD_estimateCDictSize_advanced() : + * Estimate amount of memory that will be needed to create a dictionary with following arguments */ +size_t ZSTD_estimateCDictSize_advanced( + size_t dictSize, ZSTD_compressionParameters cParams, + ZSTD_dictLoadMethod_e dictLoadMethod) +{ + DEBUGLOG(5, "sizeof(ZSTD_CDict) : %u", (unsigned)sizeof(ZSTD_CDict)); + return ZSTD_cwksp_alloc_size(sizeof(ZSTD_CDict)) + + ZSTD_cwksp_alloc_size(HUF_WORKSPACE_SIZE) + /* enableDedicatedDictSearch == 1 ensures that CDict estimation will not be too small + * in case we are using DDS with row-hash. */ + + ZSTD_sizeof_matchState(&cParams, ZSTD_resolveRowMatchFinderMode(ZSTD_ps_auto, &cParams), + /* enableDedicatedDictSearch */ 1, /* forCCtx */ 0) + + (dictLoadMethod == ZSTD_dlm_byRef ? 0 + : ZSTD_cwksp_alloc_size(ZSTD_cwksp_align(dictSize, sizeof(void *)))); +} + +size_t ZSTD_estimateCDictSize(size_t dictSize, int compressionLevel) +{ + ZSTD_compressionParameters const cParams = ZSTD_getCParams_internal(compressionLevel, ZSTD_CONTENTSIZE_UNKNOWN, dictSize, ZSTD_cpm_createCDict); + return ZSTD_estimateCDictSize_advanced(dictSize, cParams, ZSTD_dlm_byCopy); +} + +size_t ZSTD_sizeof_CDict(const ZSTD_CDict* cdict) +{ + if (cdict==NULL) return 0; /* support sizeof on NULL */ + DEBUGLOG(5, "sizeof(*cdict) : %u", (unsigned)sizeof(*cdict)); + /* cdict may be in the workspace */ + return (cdict->workspace.workspace == cdict ? 0 : sizeof(*cdict)) + + ZSTD_cwksp_sizeof(&cdict->workspace); +} + +static size_t ZSTD_initCDict_internal( + ZSTD_CDict* cdict, + const void* dictBuffer, size_t dictSize, + ZSTD_dictLoadMethod_e dictLoadMethod, + ZSTD_dictContentType_e dictContentType, + ZSTD_CCtx_params params) +{ + DEBUGLOG(3, "ZSTD_initCDict_internal (dictContentType:%u)", (unsigned)dictContentType); + assert(!ZSTD_checkCParams(params.cParams)); + cdict->matchState.cParams = params.cParams; + cdict->matchState.dedicatedDictSearch = params.enableDedicatedDictSearch; + if ((dictLoadMethod == ZSTD_dlm_byRef) || (!dictBuffer) || (!dictSize)) { + cdict->dictContent = dictBuffer; + } else { + void *internalBuffer = ZSTD_cwksp_reserve_object(&cdict->workspace, ZSTD_cwksp_align(dictSize, sizeof(void*))); + RETURN_ERROR_IF(!internalBuffer, memory_allocation, "NULL pointer!"); + cdict->dictContent = internalBuffer; + ZSTD_memcpy(internalBuffer, dictBuffer, dictSize); + } + cdict->dictContentSize = dictSize; + cdict->dictContentType = dictContentType; + + cdict->entropyWorkspace = (U32*)ZSTD_cwksp_reserve_object(&cdict->workspace, HUF_WORKSPACE_SIZE); + + + /* Reset the state to no dictionary */ + ZSTD_reset_compressedBlockState(&cdict->cBlockState); + FORWARD_IF_ERROR(ZSTD_reset_matchState( + &cdict->matchState, + &cdict->workspace, + ¶ms.cParams, + params.useRowMatchFinder, + ZSTDcrp_makeClean, + ZSTDirp_reset, + ZSTD_resetTarget_CDict), ""); + /* (Maybe) load the dictionary + * Skips loading the dictionary if it is < 8 bytes. + */ + { params.compressionLevel = ZSTD_CLEVEL_DEFAULT; + params.fParams.contentSizeFlag = 1; + { size_t const dictID = ZSTD_compress_insertDictionary( + &cdict->cBlockState, &cdict->matchState, NULL, &cdict->workspace, + ¶ms, cdict->dictContent, cdict->dictContentSize, + dictContentType, ZSTD_dtlm_full, ZSTD_tfp_forCDict, cdict->entropyWorkspace); + FORWARD_IF_ERROR(dictID, "ZSTD_compress_insertDictionary failed"); + assert(dictID <= (size_t)(U32)-1); + cdict->dictID = (U32)dictID; + } + } + + return 0; +} + +static ZSTD_CDict* ZSTD_createCDict_advanced_internal(size_t dictSize, + ZSTD_dictLoadMethod_e dictLoadMethod, + ZSTD_compressionParameters cParams, + ZSTD_paramSwitch_e useRowMatchFinder, + U32 enableDedicatedDictSearch, + ZSTD_customMem customMem) +{ + if ((!customMem.customAlloc) ^ (!customMem.customFree)) return NULL; + + { size_t const workspaceSize = + ZSTD_cwksp_alloc_size(sizeof(ZSTD_CDict)) + + ZSTD_cwksp_alloc_size(HUF_WORKSPACE_SIZE) + + ZSTD_sizeof_matchState(&cParams, useRowMatchFinder, enableDedicatedDictSearch, /* forCCtx */ 0) + + (dictLoadMethod == ZSTD_dlm_byRef ? 0 + : ZSTD_cwksp_alloc_size(ZSTD_cwksp_align(dictSize, sizeof(void*)))); + void* const workspace = ZSTD_customMalloc(workspaceSize, customMem); + ZSTD_cwksp ws; + ZSTD_CDict* cdict; + + if (!workspace) { + ZSTD_customFree(workspace, customMem); + return NULL; + } + + ZSTD_cwksp_init(&ws, workspace, workspaceSize, ZSTD_cwksp_dynamic_alloc); + + cdict = (ZSTD_CDict*)ZSTD_cwksp_reserve_object(&ws, sizeof(ZSTD_CDict)); + assert(cdict != NULL); + ZSTD_cwksp_move(&cdict->workspace, &ws); + cdict->customMem = customMem; + cdict->compressionLevel = ZSTD_NO_CLEVEL; /* signals advanced API usage */ + cdict->useRowMatchFinder = useRowMatchFinder; + return cdict; + } +} + +ZSTD_CDict* ZSTD_createCDict_advanced(const void* dictBuffer, size_t dictSize, + ZSTD_dictLoadMethod_e dictLoadMethod, + ZSTD_dictContentType_e dictContentType, + ZSTD_compressionParameters cParams, + ZSTD_customMem customMem) +{ + ZSTD_CCtx_params cctxParams; + ZSTD_memset(&cctxParams, 0, sizeof(cctxParams)); + ZSTD_CCtxParams_init(&cctxParams, 0); + cctxParams.cParams = cParams; + cctxParams.customMem = customMem; + return ZSTD_createCDict_advanced2( + dictBuffer, dictSize, + dictLoadMethod, dictContentType, + &cctxParams, customMem); +} + +ZSTD_CDict* ZSTD_createCDict_advanced2( + const void* dict, size_t dictSize, + ZSTD_dictLoadMethod_e dictLoadMethod, + ZSTD_dictContentType_e dictContentType, + const ZSTD_CCtx_params* originalCctxParams, + ZSTD_customMem customMem) +{ + ZSTD_CCtx_params cctxParams = *originalCctxParams; + ZSTD_compressionParameters cParams; + ZSTD_CDict* cdict; + + DEBUGLOG(3, "ZSTD_createCDict_advanced2, mode %u", (unsigned)dictContentType); + if (!customMem.customAlloc ^ !customMem.customFree) return NULL; + + if (cctxParams.enableDedicatedDictSearch) { + cParams = ZSTD_dedicatedDictSearch_getCParams( + cctxParams.compressionLevel, dictSize); + ZSTD_overrideCParams(&cParams, &cctxParams.cParams); + } else { + cParams = ZSTD_getCParamsFromCCtxParams( + &cctxParams, ZSTD_CONTENTSIZE_UNKNOWN, dictSize, ZSTD_cpm_createCDict); + } + + if (!ZSTD_dedicatedDictSearch_isSupported(&cParams)) { + /* Fall back to non-DDSS params */ + cctxParams.enableDedicatedDictSearch = 0; + cParams = ZSTD_getCParamsFromCCtxParams( + &cctxParams, ZSTD_CONTENTSIZE_UNKNOWN, dictSize, ZSTD_cpm_createCDict); + } + + DEBUGLOG(3, "ZSTD_createCDict_advanced2: DDS: %u", cctxParams.enableDedicatedDictSearch); + cctxParams.cParams = cParams; + cctxParams.useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(cctxParams.useRowMatchFinder, &cParams); + + cdict = ZSTD_createCDict_advanced_internal(dictSize, + dictLoadMethod, cctxParams.cParams, + cctxParams.useRowMatchFinder, cctxParams.enableDedicatedDictSearch, + customMem); + + if (!cdict || ZSTD_isError( ZSTD_initCDict_internal(cdict, + dict, dictSize, + dictLoadMethod, dictContentType, + cctxParams) )) { + ZSTD_freeCDict(cdict); + return NULL; + } + + return cdict; +} + +ZSTD_CDict* ZSTD_createCDict(const void* dict, size_t dictSize, int compressionLevel) +{ + ZSTD_compressionParameters cParams = ZSTD_getCParams_internal(compressionLevel, ZSTD_CONTENTSIZE_UNKNOWN, dictSize, ZSTD_cpm_createCDict); + ZSTD_CDict* const cdict = ZSTD_createCDict_advanced(dict, dictSize, + ZSTD_dlm_byCopy, ZSTD_dct_auto, + cParams, ZSTD_defaultCMem); + if (cdict) + cdict->compressionLevel = (compressionLevel == 0) ? ZSTD_CLEVEL_DEFAULT : compressionLevel; + return cdict; +} + +ZSTD_CDict* ZSTD_createCDict_byReference(const void* dict, size_t dictSize, int compressionLevel) +{ + ZSTD_compressionParameters cParams = ZSTD_getCParams_internal(compressionLevel, ZSTD_CONTENTSIZE_UNKNOWN, dictSize, ZSTD_cpm_createCDict); + ZSTD_CDict* const cdict = ZSTD_createCDict_advanced(dict, dictSize, + ZSTD_dlm_byRef, ZSTD_dct_auto, + cParams, ZSTD_defaultCMem); + if (cdict) + cdict->compressionLevel = (compressionLevel == 0) ? ZSTD_CLEVEL_DEFAULT : compressionLevel; + return cdict; +} + +size_t ZSTD_freeCDict(ZSTD_CDict* cdict) +{ + if (cdict==NULL) return 0; /* support free on NULL */ + { ZSTD_customMem const cMem = cdict->customMem; + int cdictInWorkspace = ZSTD_cwksp_owns_buffer(&cdict->workspace, cdict); + ZSTD_cwksp_free(&cdict->workspace, cMem); + if (!cdictInWorkspace) { + ZSTD_customFree(cdict, cMem); + } + return 0; + } +} + +/*! ZSTD_initStaticCDict_advanced() : + * Generate a digested dictionary in provided memory area. + * workspace: The memory area to emplace the dictionary into. + * Provided pointer must 8-bytes aligned. + * It must outlive dictionary usage. + * workspaceSize: Use ZSTD_estimateCDictSize() + * to determine how large workspace must be. + * cParams : use ZSTD_getCParams() to transform a compression level + * into its relevants cParams. + * @return : pointer to ZSTD_CDict*, or NULL if error (size too small) + * Note : there is no corresponding "free" function. + * Since workspace was allocated externally, it must be freed externally. + */ +const ZSTD_CDict* ZSTD_initStaticCDict( + void* workspace, size_t workspaceSize, + const void* dict, size_t dictSize, + ZSTD_dictLoadMethod_e dictLoadMethod, + ZSTD_dictContentType_e dictContentType, + ZSTD_compressionParameters cParams) +{ + ZSTD_paramSwitch_e const useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(ZSTD_ps_auto, &cParams); + /* enableDedicatedDictSearch == 1 ensures matchstate is not too small in case this CDict will be used for DDS + row hash */ + size_t const matchStateSize = ZSTD_sizeof_matchState(&cParams, useRowMatchFinder, /* enableDedicatedDictSearch */ 1, /* forCCtx */ 0); + size_t const neededSize = ZSTD_cwksp_alloc_size(sizeof(ZSTD_CDict)) + + (dictLoadMethod == ZSTD_dlm_byRef ? 0 + : ZSTD_cwksp_alloc_size(ZSTD_cwksp_align(dictSize, sizeof(void*)))) + + ZSTD_cwksp_alloc_size(HUF_WORKSPACE_SIZE) + + matchStateSize; + ZSTD_CDict* cdict; + ZSTD_CCtx_params params; + + if ((size_t)workspace & 7) return NULL; /* 8-aligned */ + + { + ZSTD_cwksp ws; + ZSTD_cwksp_init(&ws, workspace, workspaceSize, ZSTD_cwksp_static_alloc); + cdict = (ZSTD_CDict*)ZSTD_cwksp_reserve_object(&ws, sizeof(ZSTD_CDict)); + if (cdict == NULL) return NULL; + ZSTD_cwksp_move(&cdict->workspace, &ws); + } + + DEBUGLOG(4, "(workspaceSize < neededSize) : (%u < %u) => %u", + (unsigned)workspaceSize, (unsigned)neededSize, (unsigned)(workspaceSize < neededSize)); + if (workspaceSize < neededSize) return NULL; + + ZSTD_CCtxParams_init(¶ms, 0); + params.cParams = cParams; + params.useRowMatchFinder = useRowMatchFinder; + cdict->useRowMatchFinder = useRowMatchFinder; + cdict->compressionLevel = ZSTD_NO_CLEVEL; + + if (ZSTD_isError( ZSTD_initCDict_internal(cdict, + dict, dictSize, + dictLoadMethod, dictContentType, + params) )) + return NULL; + + return cdict; +} + +ZSTD_compressionParameters ZSTD_getCParamsFromCDict(const ZSTD_CDict* cdict) +{ + assert(cdict != NULL); + return cdict->matchState.cParams; +} + +/*! ZSTD_getDictID_fromCDict() : + * Provides the dictID of the dictionary loaded into `cdict`. + * If @return == 0, the dictionary is not conformant to Zstandard specification, or empty. + * Non-conformant dictionaries can still be loaded, but as content-only dictionaries. */ +unsigned ZSTD_getDictID_fromCDict(const ZSTD_CDict* cdict) +{ + if (cdict==NULL) return 0; + return cdict->dictID; +} + +/* ZSTD_compressBegin_usingCDict_internal() : + * Implementation of various ZSTD_compressBegin_usingCDict* functions. + */ +static size_t ZSTD_compressBegin_usingCDict_internal( + ZSTD_CCtx* const cctx, const ZSTD_CDict* const cdict, + ZSTD_frameParameters const fParams, unsigned long long const pledgedSrcSize) +{ + ZSTD_CCtx_params cctxParams; + DEBUGLOG(4, "ZSTD_compressBegin_usingCDict_internal"); + RETURN_ERROR_IF(cdict==NULL, dictionary_wrong, "NULL pointer!"); + /* Initialize the cctxParams from the cdict */ + { + ZSTD_parameters params; + params.fParams = fParams; + params.cParams = ( pledgedSrcSize < ZSTD_USE_CDICT_PARAMS_SRCSIZE_CUTOFF + || pledgedSrcSize < cdict->dictContentSize * ZSTD_USE_CDICT_PARAMS_DICTSIZE_MULTIPLIER + || pledgedSrcSize == ZSTD_CONTENTSIZE_UNKNOWN + || cdict->compressionLevel == 0 ) ? + ZSTD_getCParamsFromCDict(cdict) + : ZSTD_getCParams(cdict->compressionLevel, + pledgedSrcSize, + cdict->dictContentSize); + ZSTD_CCtxParams_init_internal(&cctxParams, ¶ms, cdict->compressionLevel); + } + /* Increase window log to fit the entire dictionary and source if the + * source size is known. Limit the increase to 19, which is the + * window log for compression level 1 with the largest source size. + */ + if (pledgedSrcSize != ZSTD_CONTENTSIZE_UNKNOWN) { + U32 const limitedSrcSize = (U32)MIN(pledgedSrcSize, 1U << 19); + U32 const limitedSrcLog = limitedSrcSize > 1 ? ZSTD_highbit32(limitedSrcSize - 1) + 1 : 1; + cctxParams.cParams.windowLog = MAX(cctxParams.cParams.windowLog, limitedSrcLog); + } + return ZSTD_compressBegin_internal(cctx, + NULL, 0, ZSTD_dct_auto, ZSTD_dtlm_fast, + cdict, + &cctxParams, pledgedSrcSize, + ZSTDb_not_buffered); +} + + +/* ZSTD_compressBegin_usingCDict_advanced() : + * This function is DEPRECATED. + * cdict must be != NULL */ +size_t ZSTD_compressBegin_usingCDict_advanced( + ZSTD_CCtx* const cctx, const ZSTD_CDict* const cdict, + ZSTD_frameParameters const fParams, unsigned long long const pledgedSrcSize) +{ + return ZSTD_compressBegin_usingCDict_internal(cctx, cdict, fParams, pledgedSrcSize); +} + +/* ZSTD_compressBegin_usingCDict() : + * cdict must be != NULL */ +size_t ZSTD_compressBegin_usingCDict_deprecated(ZSTD_CCtx* cctx, const ZSTD_CDict* cdict) +{ + ZSTD_frameParameters const fParams = { 0 /*content*/, 0 /*checksum*/, 0 /*noDictID*/ }; + return ZSTD_compressBegin_usingCDict_internal(cctx, cdict, fParams, ZSTD_CONTENTSIZE_UNKNOWN); +} + +size_t ZSTD_compressBegin_usingCDict(ZSTD_CCtx* cctx, const ZSTD_CDict* cdict) +{ + return ZSTD_compressBegin_usingCDict_deprecated(cctx, cdict); +} + +/*! ZSTD_compress_usingCDict_internal(): + * Implementation of various ZSTD_compress_usingCDict* functions. + */ +static size_t ZSTD_compress_usingCDict_internal(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + const ZSTD_CDict* cdict, ZSTD_frameParameters fParams) +{ + FORWARD_IF_ERROR(ZSTD_compressBegin_usingCDict_internal(cctx, cdict, fParams, srcSize), ""); /* will check if cdict != NULL */ + return ZSTD_compressEnd_public(cctx, dst, dstCapacity, src, srcSize); +} + +/*! ZSTD_compress_usingCDict_advanced(): + * This function is DEPRECATED. + */ +size_t ZSTD_compress_usingCDict_advanced(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + const ZSTD_CDict* cdict, ZSTD_frameParameters fParams) +{ + return ZSTD_compress_usingCDict_internal(cctx, dst, dstCapacity, src, srcSize, cdict, fParams); +} + +/*! ZSTD_compress_usingCDict() : + * Compression using a digested Dictionary. + * Faster startup than ZSTD_compress_usingDict(), recommended when same dictionary is used multiple times. + * Note that compression parameters are decided at CDict creation time + * while frame parameters are hardcoded */ +size_t ZSTD_compress_usingCDict(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + const ZSTD_CDict* cdict) +{ + ZSTD_frameParameters const fParams = { 1 /*content*/, 0 /*checksum*/, 0 /*noDictID*/ }; + return ZSTD_compress_usingCDict_internal(cctx, dst, dstCapacity, src, srcSize, cdict, fParams); +} + + + +/* ****************************************************************** +* Streaming +********************************************************************/ + +ZSTD_CStream* ZSTD_createCStream(void) +{ + DEBUGLOG(3, "ZSTD_createCStream"); + return ZSTD_createCStream_advanced(ZSTD_defaultCMem); +} + +ZSTD_CStream* ZSTD_initStaticCStream(void *workspace, size_t workspaceSize) +{ + return ZSTD_initStaticCCtx(workspace, workspaceSize); +} + +ZSTD_CStream* ZSTD_createCStream_advanced(ZSTD_customMem customMem) +{ /* CStream and CCtx are now same object */ + return ZSTD_createCCtx_advanced(customMem); +} + +size_t ZSTD_freeCStream(ZSTD_CStream* zcs) +{ + return ZSTD_freeCCtx(zcs); /* same object */ +} + + + +/*====== Initialization ======*/ + +size_t ZSTD_CStreamInSize(void) { return ZSTD_BLOCKSIZE_MAX; } + +size_t ZSTD_CStreamOutSize(void) +{ + return ZSTD_compressBound(ZSTD_BLOCKSIZE_MAX) + ZSTD_blockHeaderSize + 4 /* 32-bits hash */ ; +} + +static ZSTD_cParamMode_e ZSTD_getCParamMode(ZSTD_CDict const* cdict, ZSTD_CCtx_params const* params, U64 pledgedSrcSize) +{ + if (cdict != NULL && ZSTD_shouldAttachDict(cdict, params, pledgedSrcSize)) + return ZSTD_cpm_attachDict; + else + return ZSTD_cpm_noAttachDict; +} + +/* ZSTD_resetCStream(): + * pledgedSrcSize == 0 means "unknown" */ +size_t ZSTD_resetCStream(ZSTD_CStream* zcs, unsigned long long pss) +{ + /* temporary : 0 interpreted as "unknown" during transition period. + * Users willing to specify "unknown" **must** use ZSTD_CONTENTSIZE_UNKNOWN. + * 0 will be interpreted as "empty" in the future. + */ + U64 const pledgedSrcSize = (pss==0) ? ZSTD_CONTENTSIZE_UNKNOWN : pss; + DEBUGLOG(4, "ZSTD_resetCStream: pledgedSrcSize = %u", (unsigned)pledgedSrcSize); + FORWARD_IF_ERROR( ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only) , ""); + FORWARD_IF_ERROR( ZSTD_CCtx_setPledgedSrcSize(zcs, pledgedSrcSize) , ""); + return 0; +} + +/*! ZSTD_initCStream_internal() : + * Note : for lib/compress only. Used by zstdmt_compress.c. + * Assumption 1 : params are valid + * Assumption 2 : either dict, or cdict, is defined, not both */ +size_t ZSTD_initCStream_internal(ZSTD_CStream* zcs, + const void* dict, size_t dictSize, const ZSTD_CDict* cdict, + const ZSTD_CCtx_params* params, + unsigned long long pledgedSrcSize) +{ + DEBUGLOG(4, "ZSTD_initCStream_internal"); + FORWARD_IF_ERROR( ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only) , ""); + FORWARD_IF_ERROR( ZSTD_CCtx_setPledgedSrcSize(zcs, pledgedSrcSize) , ""); + assert(!ZSTD_isError(ZSTD_checkCParams(params->cParams))); + zcs->requestedParams = *params; + assert(!((dict) && (cdict))); /* either dict or cdict, not both */ + if (dict) { + FORWARD_IF_ERROR( ZSTD_CCtx_loadDictionary(zcs, dict, dictSize) , ""); + } else { + /* Dictionary is cleared if !cdict */ + FORWARD_IF_ERROR( ZSTD_CCtx_refCDict(zcs, cdict) , ""); + } + return 0; +} + +/* ZSTD_initCStream_usingCDict_advanced() : + * same as ZSTD_initCStream_usingCDict(), with control over frame parameters */ +size_t ZSTD_initCStream_usingCDict_advanced(ZSTD_CStream* zcs, + const ZSTD_CDict* cdict, + ZSTD_frameParameters fParams, + unsigned long long pledgedSrcSize) +{ + DEBUGLOG(4, "ZSTD_initCStream_usingCDict_advanced"); + FORWARD_IF_ERROR( ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only) , ""); + FORWARD_IF_ERROR( ZSTD_CCtx_setPledgedSrcSize(zcs, pledgedSrcSize) , ""); + zcs->requestedParams.fParams = fParams; + FORWARD_IF_ERROR( ZSTD_CCtx_refCDict(zcs, cdict) , ""); + return 0; +} + +/* note : cdict must outlive compression session */ +size_t ZSTD_initCStream_usingCDict(ZSTD_CStream* zcs, const ZSTD_CDict* cdict) +{ + DEBUGLOG(4, "ZSTD_initCStream_usingCDict"); + FORWARD_IF_ERROR( ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only) , ""); + FORWARD_IF_ERROR( ZSTD_CCtx_refCDict(zcs, cdict) , ""); + return 0; +} + + +/* ZSTD_initCStream_advanced() : + * pledgedSrcSize must be exact. + * if srcSize is not known at init time, use value ZSTD_CONTENTSIZE_UNKNOWN. + * dict is loaded with default parameters ZSTD_dct_auto and ZSTD_dlm_byCopy. */ +size_t ZSTD_initCStream_advanced(ZSTD_CStream* zcs, + const void* dict, size_t dictSize, + ZSTD_parameters params, unsigned long long pss) +{ + /* for compatibility with older programs relying on this behavior. + * Users should now specify ZSTD_CONTENTSIZE_UNKNOWN. + * This line will be removed in the future. + */ + U64 const pledgedSrcSize = (pss==0 && params.fParams.contentSizeFlag==0) ? ZSTD_CONTENTSIZE_UNKNOWN : pss; + DEBUGLOG(4, "ZSTD_initCStream_advanced"); + FORWARD_IF_ERROR( ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only) , ""); + FORWARD_IF_ERROR( ZSTD_CCtx_setPledgedSrcSize(zcs, pledgedSrcSize) , ""); + FORWARD_IF_ERROR( ZSTD_checkCParams(params.cParams) , ""); + ZSTD_CCtxParams_setZstdParams(&zcs->requestedParams, ¶ms); + FORWARD_IF_ERROR( ZSTD_CCtx_loadDictionary(zcs, dict, dictSize) , ""); + return 0; +} + +size_t ZSTD_initCStream_usingDict(ZSTD_CStream* zcs, const void* dict, size_t dictSize, int compressionLevel) +{ + DEBUGLOG(4, "ZSTD_initCStream_usingDict"); + FORWARD_IF_ERROR( ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only) , ""); + FORWARD_IF_ERROR( ZSTD_CCtx_setParameter(zcs, ZSTD_c_compressionLevel, compressionLevel) , ""); + FORWARD_IF_ERROR( ZSTD_CCtx_loadDictionary(zcs, dict, dictSize) , ""); + return 0; +} + +size_t ZSTD_initCStream_srcSize(ZSTD_CStream* zcs, int compressionLevel, unsigned long long pss) +{ + /* temporary : 0 interpreted as "unknown" during transition period. + * Users willing to specify "unknown" **must** use ZSTD_CONTENTSIZE_UNKNOWN. + * 0 will be interpreted as "empty" in the future. + */ + U64 const pledgedSrcSize = (pss==0) ? ZSTD_CONTENTSIZE_UNKNOWN : pss; + DEBUGLOG(4, "ZSTD_initCStream_srcSize"); + FORWARD_IF_ERROR( ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only) , ""); + FORWARD_IF_ERROR( ZSTD_CCtx_refCDict(zcs, NULL) , ""); + FORWARD_IF_ERROR( ZSTD_CCtx_setParameter(zcs, ZSTD_c_compressionLevel, compressionLevel) , ""); + FORWARD_IF_ERROR( ZSTD_CCtx_setPledgedSrcSize(zcs, pledgedSrcSize) , ""); + return 0; +} + +size_t ZSTD_initCStream(ZSTD_CStream* zcs, int compressionLevel) +{ + DEBUGLOG(4, "ZSTD_initCStream"); + FORWARD_IF_ERROR( ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only) , ""); + FORWARD_IF_ERROR( ZSTD_CCtx_refCDict(zcs, NULL) , ""); + FORWARD_IF_ERROR( ZSTD_CCtx_setParameter(zcs, ZSTD_c_compressionLevel, compressionLevel) , ""); + return 0; +} + +/*====== Compression ======*/ + +static size_t ZSTD_nextInputSizeHint(const ZSTD_CCtx* cctx) +{ + if (cctx->appliedParams.inBufferMode == ZSTD_bm_stable) { + return cctx->blockSize - cctx->stableIn_notConsumed; + } + assert(cctx->appliedParams.inBufferMode == ZSTD_bm_buffered); + { size_t hintInSize = cctx->inBuffTarget - cctx->inBuffPos; + if (hintInSize==0) hintInSize = cctx->blockSize; + return hintInSize; + } +} + +/** ZSTD_compressStream_generic(): + * internal function for all *compressStream*() variants + * @return : hint size for next input to complete ongoing block */ +static size_t ZSTD_compressStream_generic(ZSTD_CStream* zcs, + ZSTD_outBuffer* output, + ZSTD_inBuffer* input, + ZSTD_EndDirective const flushMode) +{ + const char* const istart = (assert(input != NULL), (const char*)input->src); + const char* const iend = (istart != NULL) ? istart + input->size : istart; + const char* ip = (istart != NULL) ? istart + input->pos : istart; + char* const ostart = (assert(output != NULL), (char*)output->dst); + char* const oend = (ostart != NULL) ? ostart + output->size : ostart; + char* op = (ostart != NULL) ? ostart + output->pos : ostart; + U32 someMoreWork = 1; + + /* check expectations */ + DEBUGLOG(5, "ZSTD_compressStream_generic, flush=%i, srcSize = %zu", (int)flushMode, input->size - input->pos); + assert(zcs != NULL); + if (zcs->appliedParams.inBufferMode == ZSTD_bm_stable) { + assert(input->pos >= zcs->stableIn_notConsumed); + input->pos -= zcs->stableIn_notConsumed; + if (ip) ip -= zcs->stableIn_notConsumed; + zcs->stableIn_notConsumed = 0; + } + if (zcs->appliedParams.inBufferMode == ZSTD_bm_buffered) { + assert(zcs->inBuff != NULL); + assert(zcs->inBuffSize > 0); + } + if (zcs->appliedParams.outBufferMode == ZSTD_bm_buffered) { + assert(zcs->outBuff != NULL); + assert(zcs->outBuffSize > 0); + } + if (input->src == NULL) assert(input->size == 0); + assert(input->pos <= input->size); + if (output->dst == NULL) assert(output->size == 0); + assert(output->pos <= output->size); + assert((U32)flushMode <= (U32)ZSTD_e_end); + + while (someMoreWork) { + switch(zcs->streamStage) + { + case zcss_init: + RETURN_ERROR(init_missing, "call ZSTD_initCStream() first!"); + + case zcss_load: + if ( (flushMode == ZSTD_e_end) + && ( (size_t)(oend-op) >= ZSTD_compressBound(iend-ip) /* Enough output space */ + || zcs->appliedParams.outBufferMode == ZSTD_bm_stable) /* OR we are allowed to return dstSizeTooSmall */ + && (zcs->inBuffPos == 0) ) { + /* shortcut to compression pass directly into output buffer */ + size_t const cSize = ZSTD_compressEnd_public(zcs, + op, oend-op, ip, iend-ip); + DEBUGLOG(4, "ZSTD_compressEnd : cSize=%u", (unsigned)cSize); + FORWARD_IF_ERROR(cSize, "ZSTD_compressEnd failed"); + ip = iend; + op += cSize; + zcs->frameEnded = 1; + ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only); + someMoreWork = 0; break; + } + /* complete loading into inBuffer in buffered mode */ + if (zcs->appliedParams.inBufferMode == ZSTD_bm_buffered) { + size_t const toLoad = zcs->inBuffTarget - zcs->inBuffPos; + size_t const loaded = ZSTD_limitCopy( + zcs->inBuff + zcs->inBuffPos, toLoad, + ip, iend-ip); + zcs->inBuffPos += loaded; + if (ip) ip += loaded; + if ( (flushMode == ZSTD_e_continue) + && (zcs->inBuffPos < zcs->inBuffTarget) ) { + /* not enough input to fill full block : stop here */ + someMoreWork = 0; break; + } + if ( (flushMode == ZSTD_e_flush) + && (zcs->inBuffPos == zcs->inToCompress) ) { + /* empty */ + someMoreWork = 0; break; + } + } else { + assert(zcs->appliedParams.inBufferMode == ZSTD_bm_stable); + if ( (flushMode == ZSTD_e_continue) + && ( (size_t)(iend - ip) < zcs->blockSize) ) { + /* can't compress a full block : stop here */ + zcs->stableIn_notConsumed = (size_t)(iend - ip); + ip = iend; /* pretend to have consumed input */ + someMoreWork = 0; break; + } + if ( (flushMode == ZSTD_e_flush) + && (ip == iend) ) { + /* empty */ + someMoreWork = 0; break; + } + } + /* compress current block (note : this stage cannot be stopped in the middle) */ + DEBUGLOG(5, "stream compression stage (flushMode==%u)", flushMode); + { int const inputBuffered = (zcs->appliedParams.inBufferMode == ZSTD_bm_buffered); + void* cDst; + size_t cSize; + size_t oSize = oend-op; + size_t const iSize = inputBuffered ? zcs->inBuffPos - zcs->inToCompress + : MIN((size_t)(iend - ip), zcs->blockSize); + if (oSize >= ZSTD_compressBound(iSize) || zcs->appliedParams.outBufferMode == ZSTD_bm_stable) + cDst = op; /* compress into output buffer, to skip flush stage */ + else + cDst = zcs->outBuff, oSize = zcs->outBuffSize; + if (inputBuffered) { + unsigned const lastBlock = (flushMode == ZSTD_e_end) && (ip==iend); + cSize = lastBlock ? + ZSTD_compressEnd_public(zcs, cDst, oSize, + zcs->inBuff + zcs->inToCompress, iSize) : + ZSTD_compressContinue_public(zcs, cDst, oSize, + zcs->inBuff + zcs->inToCompress, iSize); + FORWARD_IF_ERROR(cSize, "%s", lastBlock ? "ZSTD_compressEnd failed" : "ZSTD_compressContinue failed"); + zcs->frameEnded = lastBlock; + /* prepare next block */ + zcs->inBuffTarget = zcs->inBuffPos + zcs->blockSize; + if (zcs->inBuffTarget > zcs->inBuffSize) + zcs->inBuffPos = 0, zcs->inBuffTarget = zcs->blockSize; + DEBUGLOG(5, "inBuffTarget:%u / inBuffSize:%u", + (unsigned)zcs->inBuffTarget, (unsigned)zcs->inBuffSize); + if (!lastBlock) + assert(zcs->inBuffTarget <= zcs->inBuffSize); + zcs->inToCompress = zcs->inBuffPos; + } else { /* !inputBuffered, hence ZSTD_bm_stable */ + unsigned const lastBlock = (flushMode == ZSTD_e_end) && (ip + iSize == iend); + cSize = lastBlock ? + ZSTD_compressEnd_public(zcs, cDst, oSize, ip, iSize) : + ZSTD_compressContinue_public(zcs, cDst, oSize, ip, iSize); + /* Consume the input prior to error checking to mirror buffered mode. */ + if (ip) ip += iSize; + FORWARD_IF_ERROR(cSize, "%s", lastBlock ? "ZSTD_compressEnd failed" : "ZSTD_compressContinue failed"); + zcs->frameEnded = lastBlock; + if (lastBlock) assert(ip == iend); + } + if (cDst == op) { /* no need to flush */ + op += cSize; + if (zcs->frameEnded) { + DEBUGLOG(5, "Frame completed directly in outBuffer"); + someMoreWork = 0; + ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only); + } + break; + } + zcs->outBuffContentSize = cSize; + zcs->outBuffFlushedSize = 0; + zcs->streamStage = zcss_flush; /* pass-through to flush stage */ + } + ZSTD_FALLTHROUGH; + case zcss_flush: + DEBUGLOG(5, "flush stage"); + assert(zcs->appliedParams.outBufferMode == ZSTD_bm_buffered); + { size_t const toFlush = zcs->outBuffContentSize - zcs->outBuffFlushedSize; + size_t const flushed = ZSTD_limitCopy(op, (size_t)(oend-op), + zcs->outBuff + zcs->outBuffFlushedSize, toFlush); + DEBUGLOG(5, "toFlush: %u into %u ==> flushed: %u", + (unsigned)toFlush, (unsigned)(oend-op), (unsigned)flushed); + if (flushed) + op += flushed; + zcs->outBuffFlushedSize += flushed; + if (toFlush!=flushed) { + /* flush not fully completed, presumably because dst is too small */ + assert(op==oend); + someMoreWork = 0; + break; + } + zcs->outBuffContentSize = zcs->outBuffFlushedSize = 0; + if (zcs->frameEnded) { + DEBUGLOG(5, "Frame completed on flush"); + someMoreWork = 0; + ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only); + break; + } + zcs->streamStage = zcss_load; + break; + } + + default: /* impossible */ + assert(0); + } + } + + input->pos = ip - istart; + output->pos = op - ostart; + if (zcs->frameEnded) return 0; + return ZSTD_nextInputSizeHint(zcs); +} + +static size_t ZSTD_nextInputSizeHint_MTorST(const ZSTD_CCtx* cctx) +{ +#ifdef ZSTD_MULTITHREAD + if (cctx->appliedParams.nbWorkers >= 1) { + assert(cctx->mtctx != NULL); + return ZSTDMT_nextInputSizeHint(cctx->mtctx); + } +#endif + return ZSTD_nextInputSizeHint(cctx); + +} + +size_t ZSTD_compressStream(ZSTD_CStream* zcs, ZSTD_outBuffer* output, ZSTD_inBuffer* input) +{ + FORWARD_IF_ERROR( ZSTD_compressStream2(zcs, output, input, ZSTD_e_continue) , ""); + return ZSTD_nextInputSizeHint_MTorST(zcs); +} + +/* After a compression call set the expected input/output buffer. + * This is validated at the start of the next compression call. + */ +static void +ZSTD_setBufferExpectations(ZSTD_CCtx* cctx, const ZSTD_outBuffer* output, const ZSTD_inBuffer* input) +{ + DEBUGLOG(5, "ZSTD_setBufferExpectations (for advanced stable in/out modes)"); + if (cctx->appliedParams.inBufferMode == ZSTD_bm_stable) { + cctx->expectedInBuffer = *input; + } + if (cctx->appliedParams.outBufferMode == ZSTD_bm_stable) { + cctx->expectedOutBufferSize = output->size - output->pos; + } +} + +/* Validate that the input/output buffers match the expectations set by + * ZSTD_setBufferExpectations. + */ +static size_t ZSTD_checkBufferStability(ZSTD_CCtx const* cctx, + ZSTD_outBuffer const* output, + ZSTD_inBuffer const* input, + ZSTD_EndDirective endOp) +{ + if (cctx->appliedParams.inBufferMode == ZSTD_bm_stable) { + ZSTD_inBuffer const expect = cctx->expectedInBuffer; + if (expect.src != input->src || expect.pos != input->pos) + RETURN_ERROR(stabilityCondition_notRespected, "ZSTD_c_stableInBuffer enabled but input differs!"); + } + (void)endOp; + if (cctx->appliedParams.outBufferMode == ZSTD_bm_stable) { + size_t const outBufferSize = output->size - output->pos; + if (cctx->expectedOutBufferSize != outBufferSize) + RETURN_ERROR(stabilityCondition_notRespected, "ZSTD_c_stableOutBuffer enabled but output size differs!"); + } + return 0; +} + +static size_t ZSTD_CCtx_init_compressStream2(ZSTD_CCtx* cctx, + ZSTD_EndDirective endOp, + size_t inSize) +{ + ZSTD_CCtx_params params = cctx->requestedParams; + ZSTD_prefixDict const prefixDict = cctx->prefixDict; + FORWARD_IF_ERROR( ZSTD_initLocalDict(cctx) , ""); /* Init the local dict if present. */ + ZSTD_memset(&cctx->prefixDict, 0, sizeof(cctx->prefixDict)); /* single usage */ + assert(prefixDict.dict==NULL || cctx->cdict==NULL); /* only one can be set */ + if (cctx->cdict && !cctx->localDict.cdict) { + /* Let the cdict's compression level take priority over the requested params. + * But do not take the cdict's compression level if the "cdict" is actually a localDict + * generated from ZSTD_initLocalDict(). + */ + params.compressionLevel = cctx->cdict->compressionLevel; + } + DEBUGLOG(4, "ZSTD_compressStream2 : transparent init stage"); + if (endOp == ZSTD_e_end) cctx->pledgedSrcSizePlusOne = inSize + 1; /* auto-determine pledgedSrcSize */ + + { size_t const dictSize = prefixDict.dict + ? prefixDict.dictSize + : (cctx->cdict ? cctx->cdict->dictContentSize : 0); + ZSTD_cParamMode_e const mode = ZSTD_getCParamMode(cctx->cdict, ¶ms, cctx->pledgedSrcSizePlusOne - 1); + params.cParams = ZSTD_getCParamsFromCCtxParams( + ¶ms, cctx->pledgedSrcSizePlusOne-1, + dictSize, mode); + } + + params.useBlockSplitter = ZSTD_resolveBlockSplitterMode(params.useBlockSplitter, ¶ms.cParams); + params.ldmParams.enableLdm = ZSTD_resolveEnableLdm(params.ldmParams.enableLdm, ¶ms.cParams); + params.useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(params.useRowMatchFinder, ¶ms.cParams); + params.validateSequences = ZSTD_resolveExternalSequenceValidation(params.validateSequences); + params.maxBlockSize = ZSTD_resolveMaxBlockSize(params.maxBlockSize); + params.searchForExternalRepcodes = ZSTD_resolveExternalRepcodeSearch(params.searchForExternalRepcodes, params.compressionLevel); + +#ifdef ZSTD_MULTITHREAD + /* If external matchfinder is enabled, make sure to fail before checking job size (for consistency) */ + RETURN_ERROR_IF( + ZSTD_hasExtSeqProd(¶ms) && params.nbWorkers >= 1, + parameter_combination_unsupported, + "External sequence producer isn't supported with nbWorkers >= 1" + ); + + if ((cctx->pledgedSrcSizePlusOne-1) <= ZSTDMT_JOBSIZE_MIN) { + params.nbWorkers = 0; /* do not invoke multi-threading when src size is too small */ + } + if (params.nbWorkers > 0) { +#if ZSTD_TRACE + cctx->traceCtx = (ZSTD_trace_compress_begin != NULL) ? ZSTD_trace_compress_begin(cctx) : 0; +#endif + /* mt context creation */ + if (cctx->mtctx == NULL) { + DEBUGLOG(4, "ZSTD_compressStream2: creating new mtctx for nbWorkers=%u", + params.nbWorkers); + cctx->mtctx = ZSTDMT_createCCtx_advanced((U32)params.nbWorkers, cctx->customMem, cctx->pool); + RETURN_ERROR_IF(cctx->mtctx == NULL, memory_allocation, "NULL pointer!"); + } + /* mt compression */ + DEBUGLOG(4, "call ZSTDMT_initCStream_internal as nbWorkers=%u", params.nbWorkers); + FORWARD_IF_ERROR( ZSTDMT_initCStream_internal( + cctx->mtctx, + prefixDict.dict, prefixDict.dictSize, prefixDict.dictContentType, + cctx->cdict, params, cctx->pledgedSrcSizePlusOne-1) , ""); + cctx->dictID = cctx->cdict ? cctx->cdict->dictID : 0; + cctx->dictContentSize = cctx->cdict ? cctx->cdict->dictContentSize : prefixDict.dictSize; + cctx->consumedSrcSize = 0; + cctx->producedCSize = 0; + cctx->streamStage = zcss_load; + cctx->appliedParams = params; + } else +#endif /* ZSTD_MULTITHREAD */ + { U64 const pledgedSrcSize = cctx->pledgedSrcSizePlusOne - 1; + assert(!ZSTD_isError(ZSTD_checkCParams(params.cParams))); + FORWARD_IF_ERROR( ZSTD_compressBegin_internal(cctx, + prefixDict.dict, prefixDict.dictSize, prefixDict.dictContentType, ZSTD_dtlm_fast, + cctx->cdict, + ¶ms, pledgedSrcSize, + ZSTDb_buffered) , ""); + assert(cctx->appliedParams.nbWorkers == 0); + cctx->inToCompress = 0; + cctx->inBuffPos = 0; + if (cctx->appliedParams.inBufferMode == ZSTD_bm_buffered) { + /* for small input: avoid automatic flush on reaching end of block, since + * it would require to add a 3-bytes null block to end frame + */ + cctx->inBuffTarget = cctx->blockSize + (cctx->blockSize == pledgedSrcSize); + } else { + cctx->inBuffTarget = 0; + } + cctx->outBuffContentSize = cctx->outBuffFlushedSize = 0; + cctx->streamStage = zcss_load; + cctx->frameEnded = 0; + } + return 0; +} + +/* @return provides a minimum amount of data remaining to be flushed from internal buffers + */ +size_t ZSTD_compressStream2( ZSTD_CCtx* cctx, + ZSTD_outBuffer* output, + ZSTD_inBuffer* input, + ZSTD_EndDirective endOp) +{ + DEBUGLOG(5, "ZSTD_compressStream2, endOp=%u ", (unsigned)endOp); + /* check conditions */ + RETURN_ERROR_IF(output->pos > output->size, dstSize_tooSmall, "invalid output buffer"); + RETURN_ERROR_IF(input->pos > input->size, srcSize_wrong, "invalid input buffer"); + RETURN_ERROR_IF((U32)endOp > (U32)ZSTD_e_end, parameter_outOfBound, "invalid endDirective"); + assert(cctx != NULL); + + /* transparent initialization stage */ + if (cctx->streamStage == zcss_init) { + size_t const inputSize = input->size - input->pos; /* no obligation to start from pos==0 */ + size_t const totalInputSize = inputSize + cctx->stableIn_notConsumed; + if ( (cctx->requestedParams.inBufferMode == ZSTD_bm_stable) /* input is presumed stable, across invocations */ + && (endOp == ZSTD_e_continue) /* no flush requested, more input to come */ + && (totalInputSize < ZSTD_BLOCKSIZE_MAX) ) { /* not even reached one block yet */ + if (cctx->stableIn_notConsumed) { /* not the first time */ + /* check stable source guarantees */ + RETURN_ERROR_IF(input->src != cctx->expectedInBuffer.src, stabilityCondition_notRespected, "stableInBuffer condition not respected: wrong src pointer"); + RETURN_ERROR_IF(input->pos != cctx->expectedInBuffer.size, stabilityCondition_notRespected, "stableInBuffer condition not respected: externally modified pos"); + } + /* pretend input was consumed, to give a sense forward progress */ + input->pos = input->size; + /* save stable inBuffer, for later control, and flush/end */ + cctx->expectedInBuffer = *input; + /* but actually input wasn't consumed, so keep track of position from where compression shall resume */ + cctx->stableIn_notConsumed += inputSize; + /* don't initialize yet, wait for the first block of flush() order, for better parameters adaptation */ + return ZSTD_FRAMEHEADERSIZE_MIN(cctx->requestedParams.format); /* at least some header to produce */ + } + FORWARD_IF_ERROR(ZSTD_CCtx_init_compressStream2(cctx, endOp, totalInputSize), "compressStream2 initialization failed"); + ZSTD_setBufferExpectations(cctx, output, input); /* Set initial buffer expectations now that we've initialized */ + } + /* end of transparent initialization stage */ + + FORWARD_IF_ERROR(ZSTD_checkBufferStability(cctx, output, input, endOp), "invalid buffers"); + /* compression stage */ +#ifdef ZSTD_MULTITHREAD + if (cctx->appliedParams.nbWorkers > 0) { + size_t flushMin; + if (cctx->cParamsChanged) { + ZSTDMT_updateCParams_whileCompressing(cctx->mtctx, &cctx->requestedParams); + cctx->cParamsChanged = 0; + } + if (cctx->stableIn_notConsumed) { + assert(cctx->appliedParams.inBufferMode == ZSTD_bm_stable); + /* some early data was skipped - make it available for consumption */ + assert(input->pos >= cctx->stableIn_notConsumed); + input->pos -= cctx->stableIn_notConsumed; + cctx->stableIn_notConsumed = 0; + } + for (;;) { + size_t const ipos = input->pos; + size_t const opos = output->pos; + flushMin = ZSTDMT_compressStream_generic(cctx->mtctx, output, input, endOp); + cctx->consumedSrcSize += (U64)(input->pos - ipos); + cctx->producedCSize += (U64)(output->pos - opos); + if ( ZSTD_isError(flushMin) + || (endOp == ZSTD_e_end && flushMin == 0) ) { /* compression completed */ + if (flushMin == 0) + ZSTD_CCtx_trace(cctx, 0); + ZSTD_CCtx_reset(cctx, ZSTD_reset_session_only); + } + FORWARD_IF_ERROR(flushMin, "ZSTDMT_compressStream_generic failed"); + + if (endOp == ZSTD_e_continue) { + /* We only require some progress with ZSTD_e_continue, not maximal progress. + * We're done if we've consumed or produced any bytes, or either buffer is + * full. + */ + if (input->pos != ipos || output->pos != opos || input->pos == input->size || output->pos == output->size) + break; + } else { + assert(endOp == ZSTD_e_flush || endOp == ZSTD_e_end); + /* We require maximal progress. We're done when the flush is complete or the + * output buffer is full. + */ + if (flushMin == 0 || output->pos == output->size) + break; + } + } + DEBUGLOG(5, "completed ZSTD_compressStream2 delegating to ZSTDMT_compressStream_generic"); + /* Either we don't require maximum forward progress, we've finished the + * flush, or we are out of output space. + */ + assert(endOp == ZSTD_e_continue || flushMin == 0 || output->pos == output->size); + ZSTD_setBufferExpectations(cctx, output, input); + return flushMin; + } +#endif /* ZSTD_MULTITHREAD */ + FORWARD_IF_ERROR( ZSTD_compressStream_generic(cctx, output, input, endOp) , ""); + DEBUGLOG(5, "completed ZSTD_compressStream2"); + ZSTD_setBufferExpectations(cctx, output, input); + return cctx->outBuffContentSize - cctx->outBuffFlushedSize; /* remaining to flush */ +} + +size_t ZSTD_compressStream2_simpleArgs ( + ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, size_t* dstPos, + const void* src, size_t srcSize, size_t* srcPos, + ZSTD_EndDirective endOp) +{ + ZSTD_outBuffer output; + ZSTD_inBuffer input; + output.dst = dst; + output.size = dstCapacity; + output.pos = *dstPos; + input.src = src; + input.size = srcSize; + input.pos = *srcPos; + /* ZSTD_compressStream2() will check validity of dstPos and srcPos */ + { size_t const cErr = ZSTD_compressStream2(cctx, &output, &input, endOp); + *dstPos = output.pos; + *srcPos = input.pos; + return cErr; + } +} + +size_t ZSTD_compress2(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize) +{ + ZSTD_bufferMode_e const originalInBufferMode = cctx->requestedParams.inBufferMode; + ZSTD_bufferMode_e const originalOutBufferMode = cctx->requestedParams.outBufferMode; + DEBUGLOG(4, "ZSTD_compress2 (srcSize=%u)", (unsigned)srcSize); + ZSTD_CCtx_reset(cctx, ZSTD_reset_session_only); + /* Enable stable input/output buffers. */ + cctx->requestedParams.inBufferMode = ZSTD_bm_stable; + cctx->requestedParams.outBufferMode = ZSTD_bm_stable; + { size_t oPos = 0; + size_t iPos = 0; + size_t const result = ZSTD_compressStream2_simpleArgs(cctx, + dst, dstCapacity, &oPos, + src, srcSize, &iPos, + ZSTD_e_end); + /* Reset to the original values. */ + cctx->requestedParams.inBufferMode = originalInBufferMode; + cctx->requestedParams.outBufferMode = originalOutBufferMode; + + FORWARD_IF_ERROR(result, "ZSTD_compressStream2_simpleArgs failed"); + if (result != 0) { /* compression not completed, due to lack of output space */ + assert(oPos == dstCapacity); + RETURN_ERROR(dstSize_tooSmall, ""); + } + assert(iPos == srcSize); /* all input is expected consumed */ + return oPos; + } +} + +/* ZSTD_validateSequence() : + * @offCode : is presumed to follow format required by ZSTD_storeSeq() + * @returns a ZSTD error code if sequence is not valid + */ +static size_t +ZSTD_validateSequence(U32 offCode, U32 matchLength, U32 minMatch, + size_t posInSrc, U32 windowLog, size_t dictSize, int useSequenceProducer) +{ + U32 const windowSize = 1u << windowLog; + /* posInSrc represents the amount of data the decoder would decode up to this point. + * As long as the amount of data decoded is less than or equal to window size, offsets may be + * larger than the total length of output decoded in order to reference the dict, even larger than + * window size. After output surpasses windowSize, we're limited to windowSize offsets again. + */ + size_t const offsetBound = posInSrc > windowSize ? (size_t)windowSize : posInSrc + (size_t)dictSize; + size_t const matchLenLowerBound = (minMatch == 3 || useSequenceProducer) ? 3 : 4; + RETURN_ERROR_IF(offCode > OFFSET_TO_OFFBASE(offsetBound), externalSequences_invalid, "Offset too large!"); + /* Validate maxNbSeq is large enough for the given matchLength and minMatch */ + RETURN_ERROR_IF(matchLength < matchLenLowerBound, externalSequences_invalid, "Matchlength too small for the minMatch"); + return 0; +} + +/* Returns an offset code, given a sequence's raw offset, the ongoing repcode array, and whether litLength == 0 */ +static U32 ZSTD_finalizeOffBase(U32 rawOffset, const U32 rep[ZSTD_REP_NUM], U32 ll0) +{ + U32 offBase = OFFSET_TO_OFFBASE(rawOffset); + + if (!ll0 && rawOffset == rep[0]) { + offBase = REPCODE1_TO_OFFBASE; + } else if (rawOffset == rep[1]) { + offBase = REPCODE_TO_OFFBASE(2 - ll0); + } else if (rawOffset == rep[2]) { + offBase = REPCODE_TO_OFFBASE(3 - ll0); + } else if (ll0 && rawOffset == rep[0] - 1) { + offBase = REPCODE3_TO_OFFBASE; + } + return offBase; +} + +size_t +ZSTD_copySequencesToSeqStoreExplicitBlockDelim(ZSTD_CCtx* cctx, + ZSTD_sequencePosition* seqPos, + const ZSTD_Sequence* const inSeqs, size_t inSeqsSize, + const void* src, size_t blockSize, + ZSTD_paramSwitch_e externalRepSearch) +{ + U32 idx = seqPos->idx; + U32 const startIdx = idx; + BYTE const* ip = (BYTE const*)(src); + const BYTE* const iend = ip + blockSize; + repcodes_t updatedRepcodes; + U32 dictSize; + + DEBUGLOG(5, "ZSTD_copySequencesToSeqStoreExplicitBlockDelim (blockSize = %zu)", blockSize); + + if (cctx->cdict) { + dictSize = (U32)cctx->cdict->dictContentSize; + } else if (cctx->prefixDict.dict) { + dictSize = (U32)cctx->prefixDict.dictSize; + } else { + dictSize = 0; + } + ZSTD_memcpy(updatedRepcodes.rep, cctx->blockState.prevCBlock->rep, sizeof(repcodes_t)); + for (; idx < inSeqsSize && (inSeqs[idx].matchLength != 0 || inSeqs[idx].offset != 0); ++idx) { + U32 const litLength = inSeqs[idx].litLength; + U32 const matchLength = inSeqs[idx].matchLength; + U32 offBase; + + if (externalRepSearch == ZSTD_ps_disable) { + offBase = OFFSET_TO_OFFBASE(inSeqs[idx].offset); + } else { + U32 const ll0 = (litLength == 0); + offBase = ZSTD_finalizeOffBase(inSeqs[idx].offset, updatedRepcodes.rep, ll0); + ZSTD_updateRep(updatedRepcodes.rep, offBase, ll0); + } + + DEBUGLOG(6, "Storing sequence: (of: %u, ml: %u, ll: %u)", offBase, matchLength, litLength); + if (cctx->appliedParams.validateSequences) { + seqPos->posInSrc += litLength + matchLength; + FORWARD_IF_ERROR(ZSTD_validateSequence(offBase, matchLength, cctx->appliedParams.cParams.minMatch, seqPos->posInSrc, + cctx->appliedParams.cParams.windowLog, dictSize, ZSTD_hasExtSeqProd(&cctx->appliedParams)), + "Sequence validation failed"); + } + RETURN_ERROR_IF(idx - seqPos->idx >= cctx->seqStore.maxNbSeq, externalSequences_invalid, + "Not enough memory allocated. Try adjusting ZSTD_c_minMatch."); + ZSTD_storeSeq(&cctx->seqStore, litLength, ip, iend, offBase, matchLength); + ip += matchLength + litLength; + } + + /* If we skipped repcode search while parsing, we need to update repcodes now */ + assert(externalRepSearch != ZSTD_ps_auto); + assert(idx >= startIdx); + if (externalRepSearch == ZSTD_ps_disable && idx != startIdx) { + U32* const rep = updatedRepcodes.rep; + U32 lastSeqIdx = idx - 1; /* index of last non-block-delimiter sequence */ + + if (lastSeqIdx >= startIdx + 2) { + rep[2] = inSeqs[lastSeqIdx - 2].offset; + rep[1] = inSeqs[lastSeqIdx - 1].offset; + rep[0] = inSeqs[lastSeqIdx].offset; + } else if (lastSeqIdx == startIdx + 1) { + rep[2] = rep[0]; + rep[1] = inSeqs[lastSeqIdx - 1].offset; + rep[0] = inSeqs[lastSeqIdx].offset; + } else { + assert(lastSeqIdx == startIdx); + rep[2] = rep[1]; + rep[1] = rep[0]; + rep[0] = inSeqs[lastSeqIdx].offset; + } + } + + ZSTD_memcpy(cctx->blockState.nextCBlock->rep, updatedRepcodes.rep, sizeof(repcodes_t)); + + if (inSeqs[idx].litLength) { + DEBUGLOG(6, "Storing last literals of size: %u", inSeqs[idx].litLength); + ZSTD_storeLastLiterals(&cctx->seqStore, ip, inSeqs[idx].litLength); + ip += inSeqs[idx].litLength; + seqPos->posInSrc += inSeqs[idx].litLength; + } + RETURN_ERROR_IF(ip != iend, externalSequences_invalid, "Blocksize doesn't agree with block delimiter!"); + seqPos->idx = idx+1; + return 0; +} + +size_t +ZSTD_copySequencesToSeqStoreNoBlockDelim(ZSTD_CCtx* cctx, ZSTD_sequencePosition* seqPos, + const ZSTD_Sequence* const inSeqs, size_t inSeqsSize, + const void* src, size_t blockSize, ZSTD_paramSwitch_e externalRepSearch) +{ + U32 idx = seqPos->idx; + U32 startPosInSequence = seqPos->posInSequence; + U32 endPosInSequence = seqPos->posInSequence + (U32)blockSize; + size_t dictSize; + BYTE const* ip = (BYTE const*)(src); + BYTE const* iend = ip + blockSize; /* May be adjusted if we decide to process fewer than blockSize bytes */ + repcodes_t updatedRepcodes; + U32 bytesAdjustment = 0; + U32 finalMatchSplit = 0; + + /* TODO(embg) support fast parsing mode in noBlockDelim mode */ + (void)externalRepSearch; + + if (cctx->cdict) { + dictSize = cctx->cdict->dictContentSize; + } else if (cctx->prefixDict.dict) { + dictSize = cctx->prefixDict.dictSize; + } else { + dictSize = 0; + } + DEBUGLOG(5, "ZSTD_copySequencesToSeqStoreNoBlockDelim: idx: %u PIS: %u blockSize: %zu", idx, startPosInSequence, blockSize); + DEBUGLOG(5, "Start seq: idx: %u (of: %u ml: %u ll: %u)", idx, inSeqs[idx].offset, inSeqs[idx].matchLength, inSeqs[idx].litLength); + ZSTD_memcpy(updatedRepcodes.rep, cctx->blockState.prevCBlock->rep, sizeof(repcodes_t)); + while (endPosInSequence && idx < inSeqsSize && !finalMatchSplit) { + const ZSTD_Sequence currSeq = inSeqs[idx]; + U32 litLength = currSeq.litLength; + U32 matchLength = currSeq.matchLength; + U32 const rawOffset = currSeq.offset; + U32 offBase; + + /* Modify the sequence depending on where endPosInSequence lies */ + if (endPosInSequence >= currSeq.litLength + currSeq.matchLength) { + if (startPosInSequence >= litLength) { + startPosInSequence -= litLength; + litLength = 0; + matchLength -= startPosInSequence; + } else { + litLength -= startPosInSequence; + } + /* Move to the next sequence */ + endPosInSequence -= currSeq.litLength + currSeq.matchLength; + startPosInSequence = 0; + } else { + /* This is the final (partial) sequence we're adding from inSeqs, and endPosInSequence + does not reach the end of the match. So, we have to split the sequence */ + DEBUGLOG(6, "Require a split: diff: %u, idx: %u PIS: %u", + currSeq.litLength + currSeq.matchLength - endPosInSequence, idx, endPosInSequence); + if (endPosInSequence > litLength) { + U32 firstHalfMatchLength; + litLength = startPosInSequence >= litLength ? 0 : litLength - startPosInSequence; + firstHalfMatchLength = endPosInSequence - startPosInSequence - litLength; + if (matchLength > blockSize && firstHalfMatchLength >= cctx->appliedParams.cParams.minMatch) { + /* Only ever split the match if it is larger than the block size */ + U32 secondHalfMatchLength = currSeq.matchLength + currSeq.litLength - endPosInSequence; + if (secondHalfMatchLength < cctx->appliedParams.cParams.minMatch) { + /* Move the endPosInSequence backward so that it creates match of minMatch length */ + endPosInSequence -= cctx->appliedParams.cParams.minMatch - secondHalfMatchLength; + bytesAdjustment = cctx->appliedParams.cParams.minMatch - secondHalfMatchLength; + firstHalfMatchLength -= bytesAdjustment; + } + matchLength = firstHalfMatchLength; + /* Flag that we split the last match - after storing the sequence, exit the loop, + but keep the value of endPosInSequence */ + finalMatchSplit = 1; + } else { + /* Move the position in sequence backwards so that we don't split match, and break to store + * the last literals. We use the original currSeq.litLength as a marker for where endPosInSequence + * should go. We prefer to do this whenever it is not necessary to split the match, or if doing so + * would cause the first half of the match to be too small + */ + bytesAdjustment = endPosInSequence - currSeq.litLength; + endPosInSequence = currSeq.litLength; + break; + } + } else { + /* This sequence ends inside the literals, break to store the last literals */ + break; + } + } + /* Check if this offset can be represented with a repcode */ + { U32 const ll0 = (litLength == 0); + offBase = ZSTD_finalizeOffBase(rawOffset, updatedRepcodes.rep, ll0); + ZSTD_updateRep(updatedRepcodes.rep, offBase, ll0); + } + + if (cctx->appliedParams.validateSequences) { + seqPos->posInSrc += litLength + matchLength; + FORWARD_IF_ERROR(ZSTD_validateSequence(offBase, matchLength, cctx->appliedParams.cParams.minMatch, seqPos->posInSrc, + cctx->appliedParams.cParams.windowLog, dictSize, ZSTD_hasExtSeqProd(&cctx->appliedParams)), + "Sequence validation failed"); + } + DEBUGLOG(6, "Storing sequence: (of: %u, ml: %u, ll: %u)", offBase, matchLength, litLength); + RETURN_ERROR_IF(idx - seqPos->idx >= cctx->seqStore.maxNbSeq, externalSequences_invalid, + "Not enough memory allocated. Try adjusting ZSTD_c_minMatch."); + ZSTD_storeSeq(&cctx->seqStore, litLength, ip, iend, offBase, matchLength); + ip += matchLength + litLength; + if (!finalMatchSplit) + idx++; /* Next Sequence */ + } + DEBUGLOG(5, "Ending seq: idx: %u (of: %u ml: %u ll: %u)", idx, inSeqs[idx].offset, inSeqs[idx].matchLength, inSeqs[idx].litLength); + assert(idx == inSeqsSize || endPosInSequence <= inSeqs[idx].litLength + inSeqs[idx].matchLength); + seqPos->idx = idx; + seqPos->posInSequence = endPosInSequence; + ZSTD_memcpy(cctx->blockState.nextCBlock->rep, updatedRepcodes.rep, sizeof(repcodes_t)); + + iend -= bytesAdjustment; + if (ip != iend) { + /* Store any last literals */ + U32 lastLLSize = (U32)(iend - ip); + assert(ip <= iend); + DEBUGLOG(6, "Storing last literals of size: %u", lastLLSize); + ZSTD_storeLastLiterals(&cctx->seqStore, ip, lastLLSize); + seqPos->posInSrc += lastLLSize; + } + + return bytesAdjustment; +} + +typedef size_t (*ZSTD_sequenceCopier) (ZSTD_CCtx* cctx, ZSTD_sequencePosition* seqPos, + const ZSTD_Sequence* const inSeqs, size_t inSeqsSize, + const void* src, size_t blockSize, ZSTD_paramSwitch_e externalRepSearch); +static ZSTD_sequenceCopier ZSTD_selectSequenceCopier(ZSTD_sequenceFormat_e mode) +{ + ZSTD_sequenceCopier sequenceCopier = NULL; + assert(ZSTD_cParam_withinBounds(ZSTD_c_blockDelimiters, mode)); + if (mode == ZSTD_sf_explicitBlockDelimiters) { + return ZSTD_copySequencesToSeqStoreExplicitBlockDelim; + } else if (mode == ZSTD_sf_noBlockDelimiters) { + return ZSTD_copySequencesToSeqStoreNoBlockDelim; + } + assert(sequenceCopier != NULL); + return sequenceCopier; +} + +/* Discover the size of next block by searching for the delimiter. + * Note that a block delimiter **must** exist in this mode, + * otherwise it's an input error. + * The block size retrieved will be later compared to ensure it remains within bounds */ +static size_t +blockSize_explicitDelimiter(const ZSTD_Sequence* inSeqs, size_t inSeqsSize, ZSTD_sequencePosition seqPos) +{ + int end = 0; + size_t blockSize = 0; + size_t spos = seqPos.idx; + DEBUGLOG(6, "blockSize_explicitDelimiter : seq %zu / %zu", spos, inSeqsSize); + assert(spos <= inSeqsSize); + while (spos < inSeqsSize) { + end = (inSeqs[spos].offset == 0); + blockSize += inSeqs[spos].litLength + inSeqs[spos].matchLength; + if (end) { + if (inSeqs[spos].matchLength != 0) + RETURN_ERROR(externalSequences_invalid, "delimiter format error : both matchlength and offset must be == 0"); + break; + } + spos++; + } + if (!end) + RETURN_ERROR(externalSequences_invalid, "Reached end of sequences without finding a block delimiter"); + return blockSize; +} + +/* More a "target" block size */ +static size_t blockSize_noDelimiter(size_t blockSize, size_t remaining) +{ + int const lastBlock = (remaining <= blockSize); + return lastBlock ? remaining : blockSize; +} + +static size_t determine_blockSize(ZSTD_sequenceFormat_e mode, + size_t blockSize, size_t remaining, + const ZSTD_Sequence* inSeqs, size_t inSeqsSize, ZSTD_sequencePosition seqPos) +{ + DEBUGLOG(6, "determine_blockSize : remainingSize = %zu", remaining); + if (mode == ZSTD_sf_noBlockDelimiters) + return blockSize_noDelimiter(blockSize, remaining); + { size_t const explicitBlockSize = blockSize_explicitDelimiter(inSeqs, inSeqsSize, seqPos); + FORWARD_IF_ERROR(explicitBlockSize, "Error while determining block size with explicit delimiters"); + if (explicitBlockSize > blockSize) + RETURN_ERROR(externalSequences_invalid, "sequences incorrectly define a too large block"); + if (explicitBlockSize > remaining) + RETURN_ERROR(externalSequences_invalid, "sequences define a frame longer than source"); + return explicitBlockSize; + } +} + +/* Compress, block-by-block, all of the sequences given. + * + * Returns the cumulative size of all compressed blocks (including their headers), + * otherwise a ZSTD error. + */ +static size_t +ZSTD_compressSequences_internal(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const ZSTD_Sequence* inSeqs, size_t inSeqsSize, + const void* src, size_t srcSize) +{ + size_t cSize = 0; + size_t remaining = srcSize; + ZSTD_sequencePosition seqPos = {0, 0, 0}; + + BYTE const* ip = (BYTE const*)src; + BYTE* op = (BYTE*)dst; + ZSTD_sequenceCopier const sequenceCopier = ZSTD_selectSequenceCopier(cctx->appliedParams.blockDelimiters); + + DEBUGLOG(4, "ZSTD_compressSequences_internal srcSize: %zu, inSeqsSize: %zu", srcSize, inSeqsSize); + /* Special case: empty frame */ + if (remaining == 0) { + U32 const cBlockHeader24 = 1 /* last block */ + (((U32)bt_raw)<<1); + RETURN_ERROR_IF(dstCapacity<4, dstSize_tooSmall, "No room for empty frame block header"); + MEM_writeLE32(op, cBlockHeader24); + op += ZSTD_blockHeaderSize; + dstCapacity -= ZSTD_blockHeaderSize; + cSize += ZSTD_blockHeaderSize; + } + + while (remaining) { + size_t compressedSeqsSize; + size_t cBlockSize; + size_t additionalByteAdjustment; + size_t blockSize = determine_blockSize(cctx->appliedParams.blockDelimiters, + cctx->blockSize, remaining, + inSeqs, inSeqsSize, seqPos); + U32 const lastBlock = (blockSize == remaining); + FORWARD_IF_ERROR(blockSize, "Error while trying to determine block size"); + assert(blockSize <= remaining); + ZSTD_resetSeqStore(&cctx->seqStore); + DEBUGLOG(5, "Working on new block. Blocksize: %zu (total:%zu)", blockSize, (ip - (const BYTE*)src) + blockSize); + + additionalByteAdjustment = sequenceCopier(cctx, &seqPos, inSeqs, inSeqsSize, ip, blockSize, cctx->appliedParams.searchForExternalRepcodes); + FORWARD_IF_ERROR(additionalByteAdjustment, "Bad sequence copy"); + blockSize -= additionalByteAdjustment; + + /* If blocks are too small, emit as a nocompress block */ + /* TODO: See 3090. We reduced MIN_CBLOCK_SIZE from 3 to 2 so to compensate we are adding + * additional 1. We need to revisit and change this logic to be more consistent */ + if (blockSize < MIN_CBLOCK_SIZE+ZSTD_blockHeaderSize+1+1) { + cBlockSize = ZSTD_noCompressBlock(op, dstCapacity, ip, blockSize, lastBlock); + FORWARD_IF_ERROR(cBlockSize, "Nocompress block failed"); + DEBUGLOG(5, "Block too small, writing out nocompress block: cSize: %zu", cBlockSize); + cSize += cBlockSize; + ip += blockSize; + op += cBlockSize; + remaining -= blockSize; + dstCapacity -= cBlockSize; + continue; + } + + RETURN_ERROR_IF(dstCapacity < ZSTD_blockHeaderSize, dstSize_tooSmall, "not enough dstCapacity to write a new compressed block"); + compressedSeqsSize = ZSTD_entropyCompressSeqStore(&cctx->seqStore, + &cctx->blockState.prevCBlock->entropy, &cctx->blockState.nextCBlock->entropy, + &cctx->appliedParams, + op + ZSTD_blockHeaderSize /* Leave space for block header */, dstCapacity - ZSTD_blockHeaderSize, + blockSize, + cctx->entropyWorkspace, ENTROPY_WORKSPACE_SIZE /* statically allocated in resetCCtx */, + cctx->bmi2); + FORWARD_IF_ERROR(compressedSeqsSize, "Compressing sequences of block failed"); + DEBUGLOG(5, "Compressed sequences size: %zu", compressedSeqsSize); + + if (!cctx->isFirstBlock && + ZSTD_maybeRLE(&cctx->seqStore) && + ZSTD_isRLE(ip, blockSize)) { + /* We don't want to emit our first block as a RLE even if it qualifies because + * doing so will cause the decoder (cli only) to throw a "should consume all input error." + * This is only an issue for zstd <= v1.4.3 + */ + compressedSeqsSize = 1; + } + + if (compressedSeqsSize == 0) { + /* ZSTD_noCompressBlock writes the block header as well */ + cBlockSize = ZSTD_noCompressBlock(op, dstCapacity, ip, blockSize, lastBlock); + FORWARD_IF_ERROR(cBlockSize, "ZSTD_noCompressBlock failed"); + DEBUGLOG(5, "Writing out nocompress block, size: %zu", cBlockSize); + } else if (compressedSeqsSize == 1) { + cBlockSize = ZSTD_rleCompressBlock(op, dstCapacity, *ip, blockSize, lastBlock); + FORWARD_IF_ERROR(cBlockSize, "ZSTD_rleCompressBlock failed"); + DEBUGLOG(5, "Writing out RLE block, size: %zu", cBlockSize); + } else { + U32 cBlockHeader; + /* Error checking and repcodes update */ + ZSTD_blockState_confirmRepcodesAndEntropyTables(&cctx->blockState); + if (cctx->blockState.prevCBlock->entropy.fse.offcode_repeatMode == FSE_repeat_valid) + cctx->blockState.prevCBlock->entropy.fse.offcode_repeatMode = FSE_repeat_check; + + /* Write block header into beginning of block*/ + cBlockHeader = lastBlock + (((U32)bt_compressed)<<1) + (U32)(compressedSeqsSize << 3); + MEM_writeLE24(op, cBlockHeader); + cBlockSize = ZSTD_blockHeaderSize + compressedSeqsSize; + DEBUGLOG(5, "Writing out compressed block, size: %zu", cBlockSize); + } + + cSize += cBlockSize; + + if (lastBlock) { + break; + } else { + ip += blockSize; + op += cBlockSize; + remaining -= blockSize; + dstCapacity -= cBlockSize; + cctx->isFirstBlock = 0; + } + DEBUGLOG(5, "cSize running total: %zu (remaining dstCapacity=%zu)", cSize, dstCapacity); + } + + DEBUGLOG(4, "cSize final total: %zu", cSize); + return cSize; +} + +size_t ZSTD_compressSequences(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const ZSTD_Sequence* inSeqs, size_t inSeqsSize, + const void* src, size_t srcSize) +{ + BYTE* op = (BYTE*)dst; + size_t cSize = 0; + size_t compressedBlocksSize = 0; + size_t frameHeaderSize = 0; + + /* Transparent initialization stage, same as compressStream2() */ + DEBUGLOG(4, "ZSTD_compressSequences (dstCapacity=%zu)", dstCapacity); + assert(cctx != NULL); + FORWARD_IF_ERROR(ZSTD_CCtx_init_compressStream2(cctx, ZSTD_e_end, srcSize), "CCtx initialization failed"); + /* Begin writing output, starting with frame header */ + frameHeaderSize = ZSTD_writeFrameHeader(op, dstCapacity, &cctx->appliedParams, srcSize, cctx->dictID); + op += frameHeaderSize; + dstCapacity -= frameHeaderSize; + cSize += frameHeaderSize; + if (cctx->appliedParams.fParams.checksumFlag && srcSize) { + XXH64_update(&cctx->xxhState, src, srcSize); + } + /* cSize includes block header size and compressed sequences size */ + compressedBlocksSize = ZSTD_compressSequences_internal(cctx, + op, dstCapacity, + inSeqs, inSeqsSize, + src, srcSize); + FORWARD_IF_ERROR(compressedBlocksSize, "Compressing blocks failed!"); + cSize += compressedBlocksSize; + dstCapacity -= compressedBlocksSize; + + if (cctx->appliedParams.fParams.checksumFlag) { + U32 const checksum = (U32) XXH64_digest(&cctx->xxhState); + RETURN_ERROR_IF(dstCapacity<4, dstSize_tooSmall, "no room for checksum"); + DEBUGLOG(4, "Write checksum : %08X", (unsigned)checksum); + MEM_writeLE32((char*)dst + cSize, checksum); + cSize += 4; + } + + DEBUGLOG(4, "Final compressed size: %zu", cSize); + return cSize; +} + +/*====== Finalize ======*/ + +static ZSTD_inBuffer inBuffer_forEndFlush(const ZSTD_CStream* zcs) +{ + const ZSTD_inBuffer nullInput = { NULL, 0, 0 }; + const int stableInput = (zcs->appliedParams.inBufferMode == ZSTD_bm_stable); + return stableInput ? zcs->expectedInBuffer : nullInput; +} + +/*! ZSTD_flushStream() : + * @return : amount of data remaining to flush */ +size_t ZSTD_flushStream(ZSTD_CStream* zcs, ZSTD_outBuffer* output) +{ + ZSTD_inBuffer input = inBuffer_forEndFlush(zcs); + input.size = input.pos; /* do not ingest more input during flush */ + return ZSTD_compressStream2(zcs, output, &input, ZSTD_e_flush); +} + + +size_t ZSTD_endStream(ZSTD_CStream* zcs, ZSTD_outBuffer* output) +{ + ZSTD_inBuffer input = inBuffer_forEndFlush(zcs); + size_t const remainingToFlush = ZSTD_compressStream2(zcs, output, &input, ZSTD_e_end); + FORWARD_IF_ERROR(remainingToFlush , "ZSTD_compressStream2(,,ZSTD_e_end) failed"); + if (zcs->appliedParams.nbWorkers > 0) return remainingToFlush; /* minimal estimation */ + /* single thread mode : attempt to calculate remaining to flush more precisely */ + { size_t const lastBlockSize = zcs->frameEnded ? 0 : ZSTD_BLOCKHEADERSIZE; + size_t const checksumSize = (size_t)(zcs->frameEnded ? 0 : zcs->appliedParams.fParams.checksumFlag * 4); + size_t const toFlush = remainingToFlush + lastBlockSize + checksumSize; + DEBUGLOG(4, "ZSTD_endStream : remaining to flush : %u", (unsigned)toFlush); + return toFlush; + } +} + + +/*-===== Pre-defined compression levels =====-*/ +#include "clevels.h" + +int ZSTD_maxCLevel(void) { return ZSTD_MAX_CLEVEL; } +int ZSTD_minCLevel(void) { return (int)-ZSTD_TARGETLENGTH_MAX; } +int ZSTD_defaultCLevel(void) { return ZSTD_CLEVEL_DEFAULT; } + +static ZSTD_compressionParameters ZSTD_dedicatedDictSearch_getCParams(int const compressionLevel, size_t const dictSize) +{ + ZSTD_compressionParameters cParams = ZSTD_getCParams_internal(compressionLevel, 0, dictSize, ZSTD_cpm_createCDict); + switch (cParams.strategy) { + case ZSTD_fast: + case ZSTD_dfast: + break; + case ZSTD_greedy: + case ZSTD_lazy: + case ZSTD_lazy2: + cParams.hashLog += ZSTD_LAZY_DDSS_BUCKET_LOG; + break; + case ZSTD_btlazy2: + case ZSTD_btopt: + case ZSTD_btultra: + case ZSTD_btultra2: + break; + } + return cParams; +} + +static int ZSTD_dedicatedDictSearch_isSupported( + ZSTD_compressionParameters const* cParams) +{ + return (cParams->strategy >= ZSTD_greedy) + && (cParams->strategy <= ZSTD_lazy2) + && (cParams->hashLog > cParams->chainLog) + && (cParams->chainLog <= 24); +} + +/** + * Reverses the adjustment applied to cparams when enabling dedicated dict + * search. This is used to recover the params set to be used in the working + * context. (Otherwise, those tables would also grow.) + */ +static void ZSTD_dedicatedDictSearch_revertCParams( + ZSTD_compressionParameters* cParams) { + switch (cParams->strategy) { + case ZSTD_fast: + case ZSTD_dfast: + break; + case ZSTD_greedy: + case ZSTD_lazy: + case ZSTD_lazy2: + cParams->hashLog -= ZSTD_LAZY_DDSS_BUCKET_LOG; + if (cParams->hashLog < ZSTD_HASHLOG_MIN) { + cParams->hashLog = ZSTD_HASHLOG_MIN; + } + break; + case ZSTD_btlazy2: + case ZSTD_btopt: + case ZSTD_btultra: + case ZSTD_btultra2: + break; + } +} + +static U64 ZSTD_getCParamRowSize(U64 srcSizeHint, size_t dictSize, ZSTD_cParamMode_e mode) +{ + switch (mode) { + case ZSTD_cpm_unknown: + case ZSTD_cpm_noAttachDict: + case ZSTD_cpm_createCDict: + break; + case ZSTD_cpm_attachDict: + dictSize = 0; + break; + default: + assert(0); + break; + } + { int const unknown = srcSizeHint == ZSTD_CONTENTSIZE_UNKNOWN; + size_t const addedSize = unknown && dictSize > 0 ? 500 : 0; + return unknown && dictSize == 0 ? ZSTD_CONTENTSIZE_UNKNOWN : srcSizeHint+dictSize+addedSize; + } +} + +/*! ZSTD_getCParams_internal() : + * @return ZSTD_compressionParameters structure for a selected compression level, srcSize and dictSize. + * Note: srcSizeHint 0 means 0, use ZSTD_CONTENTSIZE_UNKNOWN for unknown. + * Use dictSize == 0 for unknown or unused. + * Note: `mode` controls how we treat the `dictSize`. See docs for `ZSTD_cParamMode_e`. */ +static ZSTD_compressionParameters ZSTD_getCParams_internal(int compressionLevel, unsigned long long srcSizeHint, size_t dictSize, ZSTD_cParamMode_e mode) +{ + U64 const rSize = ZSTD_getCParamRowSize(srcSizeHint, dictSize, mode); + U32 const tableID = (rSize <= 256 KB) + (rSize <= 128 KB) + (rSize <= 16 KB); + int row; + DEBUGLOG(5, "ZSTD_getCParams_internal (cLevel=%i)", compressionLevel); + + /* row */ + if (compressionLevel == 0) row = ZSTD_CLEVEL_DEFAULT; /* 0 == default */ + else if (compressionLevel < 0) row = 0; /* entry 0 is baseline for fast mode */ + else if (compressionLevel > ZSTD_MAX_CLEVEL) row = ZSTD_MAX_CLEVEL; + else row = compressionLevel; + + { ZSTD_compressionParameters cp = ZSTD_defaultCParameters[tableID][row]; + DEBUGLOG(5, "ZSTD_getCParams_internal selected tableID: %u row: %u strat: %u", tableID, row, (U32)cp.strategy); + /* acceleration factor */ + if (compressionLevel < 0) { + int const clampedCompressionLevel = MAX(ZSTD_minCLevel(), compressionLevel); + cp.targetLength = (unsigned)(-clampedCompressionLevel); + } + /* refine parameters based on srcSize & dictSize */ + return ZSTD_adjustCParams_internal(cp, srcSizeHint, dictSize, mode, ZSTD_ps_auto); + } +} + +/*! ZSTD_getCParams() : + * @return ZSTD_compressionParameters structure for a selected compression level, srcSize and dictSize. + * Size values are optional, provide 0 if not known or unused */ +ZSTD_compressionParameters ZSTD_getCParams(int compressionLevel, unsigned long long srcSizeHint, size_t dictSize) +{ + if (srcSizeHint == 0) srcSizeHint = ZSTD_CONTENTSIZE_UNKNOWN; + return ZSTD_getCParams_internal(compressionLevel, srcSizeHint, dictSize, ZSTD_cpm_unknown); +} + +/*! ZSTD_getParams() : + * same idea as ZSTD_getCParams() + * @return a `ZSTD_parameters` structure (instead of `ZSTD_compressionParameters`). + * Fields of `ZSTD_frameParameters` are set to default values */ +static ZSTD_parameters ZSTD_getParams_internal(int compressionLevel, unsigned long long srcSizeHint, size_t dictSize, ZSTD_cParamMode_e mode) { + ZSTD_parameters params; + ZSTD_compressionParameters const cParams = ZSTD_getCParams_internal(compressionLevel, srcSizeHint, dictSize, mode); + DEBUGLOG(5, "ZSTD_getParams (cLevel=%i)", compressionLevel); + ZSTD_memset(¶ms, 0, sizeof(params)); + params.cParams = cParams; + params.fParams.contentSizeFlag = 1; + return params; +} + +/*! ZSTD_getParams() : + * same idea as ZSTD_getCParams() + * @return a `ZSTD_parameters` structure (instead of `ZSTD_compressionParameters`). + * Fields of `ZSTD_frameParameters` are set to default values */ +ZSTD_parameters ZSTD_getParams(int compressionLevel, unsigned long long srcSizeHint, size_t dictSize) { + if (srcSizeHint == 0) srcSizeHint = ZSTD_CONTENTSIZE_UNKNOWN; + return ZSTD_getParams_internal(compressionLevel, srcSizeHint, dictSize, ZSTD_cpm_unknown); +} + +void ZSTD_registerSequenceProducer( + ZSTD_CCtx* zc, + void* extSeqProdState, + ZSTD_sequenceProducer_F extSeqProdFunc +) { + assert(zc != NULL); + ZSTD_CCtxParams_registerSequenceProducer( + &zc->requestedParams, extSeqProdState, extSeqProdFunc + ); +} + +void ZSTD_CCtxParams_registerSequenceProducer( + ZSTD_CCtx_params* params, + void* extSeqProdState, + ZSTD_sequenceProducer_F extSeqProdFunc +) { + assert(params != NULL); + if (extSeqProdFunc != NULL) { + params->extSeqProdFunc = extSeqProdFunc; + params->extSeqProdState = extSeqProdState; + } else { + params->extSeqProdFunc = NULL; + params->extSeqProdState = NULL; + } +} diff --git a/deps/zstd/lib/compress/zstd_compress_internal.h b/deps/zstd/lib/compress/zstd_compress_internal.h new file mode 100644 index 00000000000000..e41d7b78ec6aaa --- /dev/null +++ b/deps/zstd/lib/compress/zstd_compress_internal.h @@ -0,0 +1,1534 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/* This header contains definitions + * that shall **only** be used by modules within lib/compress. + */ + +#ifndef ZSTD_COMPRESS_H +#define ZSTD_COMPRESS_H + +/*-************************************* +* Dependencies +***************************************/ +#include "../common/zstd_internal.h" +#include "zstd_cwksp.h" +#ifdef ZSTD_MULTITHREAD +# include "zstdmt_compress.h" +#endif +#include "../common/bits.h" /* ZSTD_highbit32, ZSTD_NbCommonBytes */ + +#if defined (__cplusplus) +extern "C" { +#endif + +/*-************************************* +* Constants +***************************************/ +#define kSearchStrength 8 +#define HASH_READ_SIZE 8 +#define ZSTD_DUBT_UNSORTED_MARK 1 /* For btlazy2 strategy, index ZSTD_DUBT_UNSORTED_MARK==1 means "unsorted". + It could be confused for a real successor at index "1", if sorted as larger than its predecessor. + It's not a big deal though : candidate will just be sorted again. + Additionally, candidate position 1 will be lost. + But candidate 1 cannot hide a large tree of candidates, so it's a minimal loss. + The benefit is that ZSTD_DUBT_UNSORTED_MARK cannot be mishandled after table reuse with a different strategy. + This constant is required by ZSTD_compressBlock_btlazy2() and ZSTD_reduceTable_internal() */ + + +/*-************************************* +* Context memory management +***************************************/ +typedef enum { ZSTDcs_created=0, ZSTDcs_init, ZSTDcs_ongoing, ZSTDcs_ending } ZSTD_compressionStage_e; +typedef enum { zcss_init=0, zcss_load, zcss_flush } ZSTD_cStreamStage; + +typedef struct ZSTD_prefixDict_s { + const void* dict; + size_t dictSize; + ZSTD_dictContentType_e dictContentType; +} ZSTD_prefixDict; + +typedef struct { + void* dictBuffer; + void const* dict; + size_t dictSize; + ZSTD_dictContentType_e dictContentType; + ZSTD_CDict* cdict; +} ZSTD_localDict; + +typedef struct { + HUF_CElt CTable[HUF_CTABLE_SIZE_ST(255)]; + HUF_repeat repeatMode; +} ZSTD_hufCTables_t; + +typedef struct { + FSE_CTable offcodeCTable[FSE_CTABLE_SIZE_U32(OffFSELog, MaxOff)]; + FSE_CTable matchlengthCTable[FSE_CTABLE_SIZE_U32(MLFSELog, MaxML)]; + FSE_CTable litlengthCTable[FSE_CTABLE_SIZE_U32(LLFSELog, MaxLL)]; + FSE_repeat offcode_repeatMode; + FSE_repeat matchlength_repeatMode; + FSE_repeat litlength_repeatMode; +} ZSTD_fseCTables_t; + +typedef struct { + ZSTD_hufCTables_t huf; + ZSTD_fseCTables_t fse; +} ZSTD_entropyCTables_t; + +/*********************************************** +* Entropy buffer statistics structs and funcs * +***********************************************/ +/** ZSTD_hufCTablesMetadata_t : + * Stores Literals Block Type for a super-block in hType, and + * huffman tree description in hufDesBuffer. + * hufDesSize refers to the size of huffman tree description in bytes. + * This metadata is populated in ZSTD_buildBlockEntropyStats_literals() */ +typedef struct { + symbolEncodingType_e hType; + BYTE hufDesBuffer[ZSTD_MAX_HUF_HEADER_SIZE]; + size_t hufDesSize; +} ZSTD_hufCTablesMetadata_t; + +/** ZSTD_fseCTablesMetadata_t : + * Stores symbol compression modes for a super-block in {ll, ol, ml}Type, and + * fse tables in fseTablesBuffer. + * fseTablesSize refers to the size of fse tables in bytes. + * This metadata is populated in ZSTD_buildBlockEntropyStats_sequences() */ +typedef struct { + symbolEncodingType_e llType; + symbolEncodingType_e ofType; + symbolEncodingType_e mlType; + BYTE fseTablesBuffer[ZSTD_MAX_FSE_HEADERS_SIZE]; + size_t fseTablesSize; + size_t lastCountSize; /* This is to account for bug in 1.3.4. More detail in ZSTD_entropyCompressSeqStore_internal() */ +} ZSTD_fseCTablesMetadata_t; + +typedef struct { + ZSTD_hufCTablesMetadata_t hufMetadata; + ZSTD_fseCTablesMetadata_t fseMetadata; +} ZSTD_entropyCTablesMetadata_t; + +/** ZSTD_buildBlockEntropyStats() : + * Builds entropy for the block. + * @return : 0 on success or error code */ +size_t ZSTD_buildBlockEntropyStats( + const seqStore_t* seqStorePtr, + const ZSTD_entropyCTables_t* prevEntropy, + ZSTD_entropyCTables_t* nextEntropy, + const ZSTD_CCtx_params* cctxParams, + ZSTD_entropyCTablesMetadata_t* entropyMetadata, + void* workspace, size_t wkspSize); + +/********************************* +* Compression internals structs * +*********************************/ + +typedef struct { + U32 off; /* Offset sumtype code for the match, using ZSTD_storeSeq() format */ + U32 len; /* Raw length of match */ +} ZSTD_match_t; + +typedef struct { + U32 offset; /* Offset of sequence */ + U32 litLength; /* Length of literals prior to match */ + U32 matchLength; /* Raw length of match */ +} rawSeq; + +typedef struct { + rawSeq* seq; /* The start of the sequences */ + size_t pos; /* The index in seq where reading stopped. pos <= size. */ + size_t posInSequence; /* The position within the sequence at seq[pos] where reading + stopped. posInSequence <= seq[pos].litLength + seq[pos].matchLength */ + size_t size; /* The number of sequences. <= capacity. */ + size_t capacity; /* The capacity starting from `seq` pointer */ +} rawSeqStore_t; + +typedef struct { + U32 idx; /* Index in array of ZSTD_Sequence */ + U32 posInSequence; /* Position within sequence at idx */ + size_t posInSrc; /* Number of bytes given by sequences provided so far */ +} ZSTD_sequencePosition; + +UNUSED_ATTR static const rawSeqStore_t kNullRawSeqStore = {NULL, 0, 0, 0, 0}; + +typedef struct { + int price; /* price from beginning of segment to this position */ + U32 off; /* offset of previous match */ + U32 mlen; /* length of previous match */ + U32 litlen; /* nb of literals since previous match */ + U32 rep[ZSTD_REP_NUM]; /* offset history after previous match */ +} ZSTD_optimal_t; + +typedef enum { zop_dynamic=0, zop_predef } ZSTD_OptPrice_e; + +#define ZSTD_OPT_SIZE (ZSTD_OPT_NUM+3) +typedef struct { + /* All tables are allocated inside cctx->workspace by ZSTD_resetCCtx_internal() */ + unsigned* litFreq; /* table of literals statistics, of size 256 */ + unsigned* litLengthFreq; /* table of litLength statistics, of size (MaxLL+1) */ + unsigned* matchLengthFreq; /* table of matchLength statistics, of size (MaxML+1) */ + unsigned* offCodeFreq; /* table of offCode statistics, of size (MaxOff+1) */ + ZSTD_match_t* matchTable; /* list of found matches, of size ZSTD_OPT_SIZE */ + ZSTD_optimal_t* priceTable; /* All positions tracked by optimal parser, of size ZSTD_OPT_SIZE */ + + U32 litSum; /* nb of literals */ + U32 litLengthSum; /* nb of litLength codes */ + U32 matchLengthSum; /* nb of matchLength codes */ + U32 offCodeSum; /* nb of offset codes */ + U32 litSumBasePrice; /* to compare to log2(litfreq) */ + U32 litLengthSumBasePrice; /* to compare to log2(llfreq) */ + U32 matchLengthSumBasePrice;/* to compare to log2(mlfreq) */ + U32 offCodeSumBasePrice; /* to compare to log2(offreq) */ + ZSTD_OptPrice_e priceType; /* prices can be determined dynamically, or follow a pre-defined cost structure */ + const ZSTD_entropyCTables_t* symbolCosts; /* pre-calculated dictionary statistics */ + ZSTD_paramSwitch_e literalCompressionMode; +} optState_t; + +typedef struct { + ZSTD_entropyCTables_t entropy; + U32 rep[ZSTD_REP_NUM]; +} ZSTD_compressedBlockState_t; + +typedef struct { + BYTE const* nextSrc; /* next block here to continue on current prefix */ + BYTE const* base; /* All regular indexes relative to this position */ + BYTE const* dictBase; /* extDict indexes relative to this position */ + U32 dictLimit; /* below that point, need extDict */ + U32 lowLimit; /* below that point, no more valid data */ + U32 nbOverflowCorrections; /* Number of times overflow correction has run since + * ZSTD_window_init(). Useful for debugging coredumps + * and for ZSTD_WINDOW_OVERFLOW_CORRECT_FREQUENTLY. + */ +} ZSTD_window_t; + +#define ZSTD_WINDOW_START_INDEX 2 + +typedef struct ZSTD_matchState_t ZSTD_matchState_t; + +#define ZSTD_ROW_HASH_CACHE_SIZE 8 /* Size of prefetching hash cache for row-based matchfinder */ + +struct ZSTD_matchState_t { + ZSTD_window_t window; /* State for window round buffer management */ + U32 loadedDictEnd; /* index of end of dictionary, within context's referential. + * When loadedDictEnd != 0, a dictionary is in use, and still valid. + * This relies on a mechanism to set loadedDictEnd=0 when dictionary is no longer within distance. + * Such mechanism is provided within ZSTD_window_enforceMaxDist() and ZSTD_checkDictValidity(). + * When dict referential is copied into active context (i.e. not attached), + * loadedDictEnd == dictSize, since referential starts from zero. + */ + U32 nextToUpdate; /* index from which to continue table update */ + U32 hashLog3; /* dispatch table for matches of len==3 : larger == faster, more memory */ + + U32 rowHashLog; /* For row-based matchfinder: Hashlog based on nb of rows in the hashTable.*/ + BYTE* tagTable; /* For row-based matchFinder: A row-based table containing the hashes and head index. */ + U32 hashCache[ZSTD_ROW_HASH_CACHE_SIZE]; /* For row-based matchFinder: a cache of hashes to improve speed */ + U64 hashSalt; /* For row-based matchFinder: salts the hash for reuse of tag table */ + U32 hashSaltEntropy; /* For row-based matchFinder: collects entropy for salt generation */ + + U32* hashTable; + U32* hashTable3; + U32* chainTable; + + U32 forceNonContiguous; /* Non-zero if we should force non-contiguous load for the next window update. */ + + int dedicatedDictSearch; /* Indicates whether this matchState is using the + * dedicated dictionary search structure. + */ + optState_t opt; /* optimal parser state */ + const ZSTD_matchState_t* dictMatchState; + ZSTD_compressionParameters cParams; + const rawSeqStore_t* ldmSeqStore; + + /* Controls prefetching in some dictMatchState matchfinders. + * This behavior is controlled from the cctx ms. + * This parameter has no effect in the cdict ms. */ + int prefetchCDictTables; + + /* When == 0, lazy match finders insert every position. + * When != 0, lazy match finders only insert positions they search. + * This allows them to skip much faster over incompressible data, + * at a small cost to compression ratio. + */ + int lazySkipping; +}; + +typedef struct { + ZSTD_compressedBlockState_t* prevCBlock; + ZSTD_compressedBlockState_t* nextCBlock; + ZSTD_matchState_t matchState; +} ZSTD_blockState_t; + +typedef struct { + U32 offset; + U32 checksum; +} ldmEntry_t; + +typedef struct { + BYTE const* split; + U32 hash; + U32 checksum; + ldmEntry_t* bucket; +} ldmMatchCandidate_t; + +#define LDM_BATCH_SIZE 64 + +typedef struct { + ZSTD_window_t window; /* State for the window round buffer management */ + ldmEntry_t* hashTable; + U32 loadedDictEnd; + BYTE* bucketOffsets; /* Next position in bucket to insert entry */ + size_t splitIndices[LDM_BATCH_SIZE]; + ldmMatchCandidate_t matchCandidates[LDM_BATCH_SIZE]; +} ldmState_t; + +typedef struct { + ZSTD_paramSwitch_e enableLdm; /* ZSTD_ps_enable to enable LDM. ZSTD_ps_auto by default */ + U32 hashLog; /* Log size of hashTable */ + U32 bucketSizeLog; /* Log bucket size for collision resolution, at most 8 */ + U32 minMatchLength; /* Minimum match length */ + U32 hashRateLog; /* Log number of entries to skip */ + U32 windowLog; /* Window log for the LDM */ +} ldmParams_t; + +typedef struct { + int collectSequences; + ZSTD_Sequence* seqStart; + size_t seqIndex; + size_t maxSequences; +} SeqCollector; + +struct ZSTD_CCtx_params_s { + ZSTD_format_e format; + ZSTD_compressionParameters cParams; + ZSTD_frameParameters fParams; + + int compressionLevel; + int forceWindow; /* force back-references to respect limit of + * 1< 63) ? ZSTD_highbit32(litLength) + LL_deltaCode : LL_Code[litLength]; +} + +/* ZSTD_MLcode() : + * note : mlBase = matchLength - MINMATCH; + * because it's the format it's stored in seqStore->sequences */ +MEM_STATIC U32 ZSTD_MLcode(U32 mlBase) +{ + static const BYTE ML_Code[128] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 32, 33, 33, 34, 34, 35, 35, 36, 36, 36, 36, 37, 37, 37, 37, + 38, 38, 38, 38, 38, 38, 38, 38, 39, 39, 39, 39, 39, 39, 39, 39, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42 }; + static const U32 ML_deltaCode = 36; + return (mlBase > 127) ? ZSTD_highbit32(mlBase) + ML_deltaCode : ML_Code[mlBase]; +} + +/* ZSTD_cParam_withinBounds: + * @return 1 if value is within cParam bounds, + * 0 otherwise */ +MEM_STATIC int ZSTD_cParam_withinBounds(ZSTD_cParameter cParam, int value) +{ + ZSTD_bounds const bounds = ZSTD_cParam_getBounds(cParam); + if (ZSTD_isError(bounds.error)) return 0; + if (value < bounds.lowerBound) return 0; + if (value > bounds.upperBound) return 0; + return 1; +} + +/* ZSTD_noCompressBlock() : + * Writes uncompressed block to dst buffer from given src. + * Returns the size of the block */ +MEM_STATIC size_t +ZSTD_noCompressBlock(void* dst, size_t dstCapacity, const void* src, size_t srcSize, U32 lastBlock) +{ + U32 const cBlockHeader24 = lastBlock + (((U32)bt_raw)<<1) + (U32)(srcSize << 3); + DEBUGLOG(5, "ZSTD_noCompressBlock (srcSize=%zu, dstCapacity=%zu)", srcSize, dstCapacity); + RETURN_ERROR_IF(srcSize + ZSTD_blockHeaderSize > dstCapacity, + dstSize_tooSmall, "dst buf too small for uncompressed block"); + MEM_writeLE24(dst, cBlockHeader24); + ZSTD_memcpy((BYTE*)dst + ZSTD_blockHeaderSize, src, srcSize); + return ZSTD_blockHeaderSize + srcSize; +} + +MEM_STATIC size_t +ZSTD_rleCompressBlock(void* dst, size_t dstCapacity, BYTE src, size_t srcSize, U32 lastBlock) +{ + BYTE* const op = (BYTE*)dst; + U32 const cBlockHeader = lastBlock + (((U32)bt_rle)<<1) + (U32)(srcSize << 3); + RETURN_ERROR_IF(dstCapacity < 4, dstSize_tooSmall, ""); + MEM_writeLE24(op, cBlockHeader); + op[3] = src; + return 4; +} + + +/* ZSTD_minGain() : + * minimum compression required + * to generate a compress block or a compressed literals section. + * note : use same formula for both situations */ +MEM_STATIC size_t ZSTD_minGain(size_t srcSize, ZSTD_strategy strat) +{ + U32 const minlog = (strat>=ZSTD_btultra) ? (U32)(strat) - 1 : 6; + ZSTD_STATIC_ASSERT(ZSTD_btultra == 8); + assert(ZSTD_cParam_withinBounds(ZSTD_c_strategy, (int)strat)); + return (srcSize >> minlog) + 2; +} + +MEM_STATIC int ZSTD_literalsCompressionIsDisabled(const ZSTD_CCtx_params* cctxParams) +{ + switch (cctxParams->literalCompressionMode) { + case ZSTD_ps_enable: + return 0; + case ZSTD_ps_disable: + return 1; + default: + assert(0 /* impossible: pre-validated */); + ZSTD_FALLTHROUGH; + case ZSTD_ps_auto: + return (cctxParams->cParams.strategy == ZSTD_fast) && (cctxParams->cParams.targetLength > 0); + } +} + +/*! ZSTD_safecopyLiterals() : + * memcpy() function that won't read beyond more than WILDCOPY_OVERLENGTH bytes past ilimit_w. + * Only called when the sequence ends past ilimit_w, so it only needs to be optimized for single + * large copies. + */ +static void +ZSTD_safecopyLiterals(BYTE* op, BYTE const* ip, BYTE const* const iend, BYTE const* ilimit_w) +{ + assert(iend > ilimit_w); + if (ip <= ilimit_w) { + ZSTD_wildcopy(op, ip, ilimit_w - ip, ZSTD_no_overlap); + op += ilimit_w - ip; + ip = ilimit_w; + } + while (ip < iend) *op++ = *ip++; +} + + +#define REPCODE1_TO_OFFBASE REPCODE_TO_OFFBASE(1) +#define REPCODE2_TO_OFFBASE REPCODE_TO_OFFBASE(2) +#define REPCODE3_TO_OFFBASE REPCODE_TO_OFFBASE(3) +#define REPCODE_TO_OFFBASE(r) (assert((r)>=1), assert((r)<=ZSTD_REP_NUM), (r)) /* accepts IDs 1,2,3 */ +#define OFFSET_TO_OFFBASE(o) (assert((o)>0), o + ZSTD_REP_NUM) +#define OFFBASE_IS_OFFSET(o) ((o) > ZSTD_REP_NUM) +#define OFFBASE_IS_REPCODE(o) ( 1 <= (o) && (o) <= ZSTD_REP_NUM) +#define OFFBASE_TO_OFFSET(o) (assert(OFFBASE_IS_OFFSET(o)), (o) - ZSTD_REP_NUM) +#define OFFBASE_TO_REPCODE(o) (assert(OFFBASE_IS_REPCODE(o)), (o)) /* returns ID 1,2,3 */ + +/*! ZSTD_storeSeq() : + * Store a sequence (litlen, litPtr, offBase and matchLength) into seqStore_t. + * @offBase : Users should employ macros REPCODE_TO_OFFBASE() and OFFSET_TO_OFFBASE(). + * @matchLength : must be >= MINMATCH + * Allowed to over-read literals up to litLimit. +*/ +HINT_INLINE UNUSED_ATTR void +ZSTD_storeSeq(seqStore_t* seqStorePtr, + size_t litLength, const BYTE* literals, const BYTE* litLimit, + U32 offBase, + size_t matchLength) +{ + BYTE const* const litLimit_w = litLimit - WILDCOPY_OVERLENGTH; + BYTE const* const litEnd = literals + litLength; +#if defined(DEBUGLEVEL) && (DEBUGLEVEL >= 6) + static const BYTE* g_start = NULL; + if (g_start==NULL) g_start = (const BYTE*)literals; /* note : index only works for compression within a single segment */ + { U32 const pos = (U32)((const BYTE*)literals - g_start); + DEBUGLOG(6, "Cpos%7u :%3u literals, match%4u bytes at offBase%7u", + pos, (U32)litLength, (U32)matchLength, (U32)offBase); + } +#endif + assert((size_t)(seqStorePtr->sequences - seqStorePtr->sequencesStart) < seqStorePtr->maxNbSeq); + /* copy Literals */ + assert(seqStorePtr->maxNbLit <= 128 KB); + assert(seqStorePtr->lit + litLength <= seqStorePtr->litStart + seqStorePtr->maxNbLit); + assert(literals + litLength <= litLimit); + if (litEnd <= litLimit_w) { + /* Common case we can use wildcopy. + * First copy 16 bytes, because literals are likely short. + */ + ZSTD_STATIC_ASSERT(WILDCOPY_OVERLENGTH >= 16); + ZSTD_copy16(seqStorePtr->lit, literals); + if (litLength > 16) { + ZSTD_wildcopy(seqStorePtr->lit+16, literals+16, (ptrdiff_t)litLength-16, ZSTD_no_overlap); + } + } else { + ZSTD_safecopyLiterals(seqStorePtr->lit, literals, litEnd, litLimit_w); + } + seqStorePtr->lit += litLength; + + /* literal Length */ + if (litLength>0xFFFF) { + assert(seqStorePtr->longLengthType == ZSTD_llt_none); /* there can only be a single long length */ + seqStorePtr->longLengthType = ZSTD_llt_literalLength; + seqStorePtr->longLengthPos = (U32)(seqStorePtr->sequences - seqStorePtr->sequencesStart); + } + seqStorePtr->sequences[0].litLength = (U16)litLength; + + /* match offset */ + seqStorePtr->sequences[0].offBase = offBase; + + /* match Length */ + assert(matchLength >= MINMATCH); + { size_t const mlBase = matchLength - MINMATCH; + if (mlBase>0xFFFF) { + assert(seqStorePtr->longLengthType == ZSTD_llt_none); /* there can only be a single long length */ + seqStorePtr->longLengthType = ZSTD_llt_matchLength; + seqStorePtr->longLengthPos = (U32)(seqStorePtr->sequences - seqStorePtr->sequencesStart); + } + seqStorePtr->sequences[0].mlBase = (U16)mlBase; + } + + seqStorePtr->sequences++; +} + +/* ZSTD_updateRep() : + * updates in-place @rep (array of repeat offsets) + * @offBase : sum-type, using numeric representation of ZSTD_storeSeq() + */ +MEM_STATIC void +ZSTD_updateRep(U32 rep[ZSTD_REP_NUM], U32 const offBase, U32 const ll0) +{ + if (OFFBASE_IS_OFFSET(offBase)) { /* full offset */ + rep[2] = rep[1]; + rep[1] = rep[0]; + rep[0] = OFFBASE_TO_OFFSET(offBase); + } else { /* repcode */ + U32 const repCode = OFFBASE_TO_REPCODE(offBase) - 1 + ll0; + if (repCode > 0) { /* note : if repCode==0, no change */ + U32 const currentOffset = (repCode==ZSTD_REP_NUM) ? (rep[0] - 1) : rep[repCode]; + rep[2] = (repCode >= 2) ? rep[1] : rep[2]; + rep[1] = rep[0]; + rep[0] = currentOffset; + } else { /* repCode == 0 */ + /* nothing to do */ + } + } +} + +typedef struct repcodes_s { + U32 rep[3]; +} repcodes_t; + +MEM_STATIC repcodes_t +ZSTD_newRep(U32 const rep[ZSTD_REP_NUM], U32 const offBase, U32 const ll0) +{ + repcodes_t newReps; + ZSTD_memcpy(&newReps, rep, sizeof(newReps)); + ZSTD_updateRep(newReps.rep, offBase, ll0); + return newReps; +} + + +/*-************************************* +* Match length counter +***************************************/ +MEM_STATIC size_t ZSTD_count(const BYTE* pIn, const BYTE* pMatch, const BYTE* const pInLimit) +{ + const BYTE* const pStart = pIn; + const BYTE* const pInLoopLimit = pInLimit - (sizeof(size_t)-1); + + if (pIn < pInLoopLimit) { + { size_t const diff = MEM_readST(pMatch) ^ MEM_readST(pIn); + if (diff) return ZSTD_NbCommonBytes(diff); } + pIn+=sizeof(size_t); pMatch+=sizeof(size_t); + while (pIn < pInLoopLimit) { + size_t const diff = MEM_readST(pMatch) ^ MEM_readST(pIn); + if (!diff) { pIn+=sizeof(size_t); pMatch+=sizeof(size_t); continue; } + pIn += ZSTD_NbCommonBytes(diff); + return (size_t)(pIn - pStart); + } } + if (MEM_64bits() && (pIn<(pInLimit-3)) && (MEM_read32(pMatch) == MEM_read32(pIn))) { pIn+=4; pMatch+=4; } + if ((pIn<(pInLimit-1)) && (MEM_read16(pMatch) == MEM_read16(pIn))) { pIn+=2; pMatch+=2; } + if ((pIn> (32-h) ; } +MEM_STATIC size_t ZSTD_hash3Ptr(const void* ptr, U32 h) { return ZSTD_hash3(MEM_readLE32(ptr), h, 0); } /* only in zstd_opt.h */ +MEM_STATIC size_t ZSTD_hash3PtrS(const void* ptr, U32 h, U32 s) { return ZSTD_hash3(MEM_readLE32(ptr), h, s); } + +static const U32 prime4bytes = 2654435761U; +static U32 ZSTD_hash4(U32 u, U32 h, U32 s) { assert(h <= 32); return ((u * prime4bytes) ^ s) >> (32-h) ; } +static size_t ZSTD_hash4Ptr(const void* ptr, U32 h) { return ZSTD_hash4(MEM_readLE32(ptr), h, 0); } +static size_t ZSTD_hash4PtrS(const void* ptr, U32 h, U32 s) { return ZSTD_hash4(MEM_readLE32(ptr), h, s); } + +static const U64 prime5bytes = 889523592379ULL; +static size_t ZSTD_hash5(U64 u, U32 h, U64 s) { assert(h <= 64); return (size_t)((((u << (64-40)) * prime5bytes) ^ s) >> (64-h)) ; } +static size_t ZSTD_hash5Ptr(const void* p, U32 h) { return ZSTD_hash5(MEM_readLE64(p), h, 0); } +static size_t ZSTD_hash5PtrS(const void* p, U32 h, U64 s) { return ZSTD_hash5(MEM_readLE64(p), h, s); } + +static const U64 prime6bytes = 227718039650203ULL; +static size_t ZSTD_hash6(U64 u, U32 h, U64 s) { assert(h <= 64); return (size_t)((((u << (64-48)) * prime6bytes) ^ s) >> (64-h)) ; } +static size_t ZSTD_hash6Ptr(const void* p, U32 h) { return ZSTD_hash6(MEM_readLE64(p), h, 0); } +static size_t ZSTD_hash6PtrS(const void* p, U32 h, U64 s) { return ZSTD_hash6(MEM_readLE64(p), h, s); } + +static const U64 prime7bytes = 58295818150454627ULL; +static size_t ZSTD_hash7(U64 u, U32 h, U64 s) { assert(h <= 64); return (size_t)((((u << (64-56)) * prime7bytes) ^ s) >> (64-h)) ; } +static size_t ZSTD_hash7Ptr(const void* p, U32 h) { return ZSTD_hash7(MEM_readLE64(p), h, 0); } +static size_t ZSTD_hash7PtrS(const void* p, U32 h, U64 s) { return ZSTD_hash7(MEM_readLE64(p), h, s); } + +static const U64 prime8bytes = 0xCF1BBCDCB7A56463ULL; +static size_t ZSTD_hash8(U64 u, U32 h, U64 s) { assert(h <= 64); return (size_t)((((u) * prime8bytes) ^ s) >> (64-h)) ; } +static size_t ZSTD_hash8Ptr(const void* p, U32 h) { return ZSTD_hash8(MEM_readLE64(p), h, 0); } +static size_t ZSTD_hash8PtrS(const void* p, U32 h, U64 s) { return ZSTD_hash8(MEM_readLE64(p), h, s); } + + +MEM_STATIC FORCE_INLINE_ATTR +size_t ZSTD_hashPtr(const void* p, U32 hBits, U32 mls) +{ + /* Although some of these hashes do support hBits up to 64, some do not. + * To be on the safe side, always avoid hBits > 32. */ + assert(hBits <= 32); + + switch(mls) + { + default: + case 4: return ZSTD_hash4Ptr(p, hBits); + case 5: return ZSTD_hash5Ptr(p, hBits); + case 6: return ZSTD_hash6Ptr(p, hBits); + case 7: return ZSTD_hash7Ptr(p, hBits); + case 8: return ZSTD_hash8Ptr(p, hBits); + } +} + +MEM_STATIC FORCE_INLINE_ATTR +size_t ZSTD_hashPtrSalted(const void* p, U32 hBits, U32 mls, const U64 hashSalt) { + /* Although some of these hashes do support hBits up to 64, some do not. + * To be on the safe side, always avoid hBits > 32. */ + assert(hBits <= 32); + + switch(mls) + { + default: + case 4: return ZSTD_hash4PtrS(p, hBits, (U32)hashSalt); + case 5: return ZSTD_hash5PtrS(p, hBits, hashSalt); + case 6: return ZSTD_hash6PtrS(p, hBits, hashSalt); + case 7: return ZSTD_hash7PtrS(p, hBits, hashSalt); + case 8: return ZSTD_hash8PtrS(p, hBits, hashSalt); + } +} + + +/** ZSTD_ipow() : + * Return base^exponent. + */ +static U64 ZSTD_ipow(U64 base, U64 exponent) +{ + U64 power = 1; + while (exponent) { + if (exponent & 1) power *= base; + exponent >>= 1; + base *= base; + } + return power; +} + +#define ZSTD_ROLL_HASH_CHAR_OFFSET 10 + +/** ZSTD_rollingHash_append() : + * Add the buffer to the hash value. + */ +static U64 ZSTD_rollingHash_append(U64 hash, void const* buf, size_t size) +{ + BYTE const* istart = (BYTE const*)buf; + size_t pos; + for (pos = 0; pos < size; ++pos) { + hash *= prime8bytes; + hash += istart[pos] + ZSTD_ROLL_HASH_CHAR_OFFSET; + } + return hash; +} + +/** ZSTD_rollingHash_compute() : + * Compute the rolling hash value of the buffer. + */ +MEM_STATIC U64 ZSTD_rollingHash_compute(void const* buf, size_t size) +{ + return ZSTD_rollingHash_append(0, buf, size); +} + +/** ZSTD_rollingHash_primePower() : + * Compute the primePower to be passed to ZSTD_rollingHash_rotate() for a hash + * over a window of length bytes. + */ +MEM_STATIC U64 ZSTD_rollingHash_primePower(U32 length) +{ + return ZSTD_ipow(prime8bytes, length - 1); +} + +/** ZSTD_rollingHash_rotate() : + * Rotate the rolling hash by one byte. + */ +MEM_STATIC U64 ZSTD_rollingHash_rotate(U64 hash, BYTE toRemove, BYTE toAdd, U64 primePower) +{ + hash -= (toRemove + ZSTD_ROLL_HASH_CHAR_OFFSET) * primePower; + hash *= prime8bytes; + hash += toAdd + ZSTD_ROLL_HASH_CHAR_OFFSET; + return hash; +} + +/*-************************************* +* Round buffer management +***************************************/ +#if (ZSTD_WINDOWLOG_MAX_64 > 31) +# error "ZSTD_WINDOWLOG_MAX is too large : would overflow ZSTD_CURRENT_MAX" +#endif +/* Max current allowed */ +#define ZSTD_CURRENT_MAX ((3U << 29) + (1U << ZSTD_WINDOWLOG_MAX)) +/* Maximum chunk size before overflow correction needs to be called again */ +#define ZSTD_CHUNKSIZE_MAX \ + ( ((U32)-1) /* Maximum ending current index */ \ + - ZSTD_CURRENT_MAX) /* Maximum beginning lowLimit */ + +/** + * ZSTD_window_clear(): + * Clears the window containing the history by simply setting it to empty. + */ +MEM_STATIC void ZSTD_window_clear(ZSTD_window_t* window) +{ + size_t const endT = (size_t)(window->nextSrc - window->base); + U32 const end = (U32)endT; + + window->lowLimit = end; + window->dictLimit = end; +} + +MEM_STATIC U32 ZSTD_window_isEmpty(ZSTD_window_t const window) +{ + return window.dictLimit == ZSTD_WINDOW_START_INDEX && + window.lowLimit == ZSTD_WINDOW_START_INDEX && + (window.nextSrc - window.base) == ZSTD_WINDOW_START_INDEX; +} + +/** + * ZSTD_window_hasExtDict(): + * Returns non-zero if the window has a non-empty extDict. + */ +MEM_STATIC U32 ZSTD_window_hasExtDict(ZSTD_window_t const window) +{ + return window.lowLimit < window.dictLimit; +} + +/** + * ZSTD_matchState_dictMode(): + * Inspects the provided matchState and figures out what dictMode should be + * passed to the compressor. + */ +MEM_STATIC ZSTD_dictMode_e ZSTD_matchState_dictMode(const ZSTD_matchState_t *ms) +{ + return ZSTD_window_hasExtDict(ms->window) ? + ZSTD_extDict : + ms->dictMatchState != NULL ? + (ms->dictMatchState->dedicatedDictSearch ? ZSTD_dedicatedDictSearch : ZSTD_dictMatchState) : + ZSTD_noDict; +} + +/* Defining this macro to non-zero tells zstd to run the overflow correction + * code much more frequently. This is very inefficient, and should only be + * used for tests and fuzzers. + */ +#ifndef ZSTD_WINDOW_OVERFLOW_CORRECT_FREQUENTLY +# ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION +# define ZSTD_WINDOW_OVERFLOW_CORRECT_FREQUENTLY 1 +# else +# define ZSTD_WINDOW_OVERFLOW_CORRECT_FREQUENTLY 0 +# endif +#endif + +/** + * ZSTD_window_canOverflowCorrect(): + * Returns non-zero if the indices are large enough for overflow correction + * to work correctly without impacting compression ratio. + */ +MEM_STATIC U32 ZSTD_window_canOverflowCorrect(ZSTD_window_t const window, + U32 cycleLog, + U32 maxDist, + U32 loadedDictEnd, + void const* src) +{ + U32 const cycleSize = 1u << cycleLog; + U32 const curr = (U32)((BYTE const*)src - window.base); + U32 const minIndexToOverflowCorrect = cycleSize + + MAX(maxDist, cycleSize) + + ZSTD_WINDOW_START_INDEX; + + /* Adjust the min index to backoff the overflow correction frequency, + * so we don't waste too much CPU in overflow correction. If this + * computation overflows we don't really care, we just need to make + * sure it is at least minIndexToOverflowCorrect. + */ + U32 const adjustment = window.nbOverflowCorrections + 1; + U32 const adjustedIndex = MAX(minIndexToOverflowCorrect * adjustment, + minIndexToOverflowCorrect); + U32 const indexLargeEnough = curr > adjustedIndex; + + /* Only overflow correct early if the dictionary is invalidated already, + * so we don't hurt compression ratio. + */ + U32 const dictionaryInvalidated = curr > maxDist + loadedDictEnd; + + return indexLargeEnough && dictionaryInvalidated; +} + +/** + * ZSTD_window_needOverflowCorrection(): + * Returns non-zero if the indices are getting too large and need overflow + * protection. + */ +MEM_STATIC U32 ZSTD_window_needOverflowCorrection(ZSTD_window_t const window, + U32 cycleLog, + U32 maxDist, + U32 loadedDictEnd, + void const* src, + void const* srcEnd) +{ + U32 const curr = (U32)((BYTE const*)srcEnd - window.base); + if (ZSTD_WINDOW_OVERFLOW_CORRECT_FREQUENTLY) { + if (ZSTD_window_canOverflowCorrect(window, cycleLog, maxDist, loadedDictEnd, src)) { + return 1; + } + } + return curr > ZSTD_CURRENT_MAX; +} + +/** + * ZSTD_window_correctOverflow(): + * Reduces the indices to protect from index overflow. + * Returns the correction made to the indices, which must be applied to every + * stored index. + * + * The least significant cycleLog bits of the indices must remain the same, + * which may be 0. Every index up to maxDist in the past must be valid. + */ +MEM_STATIC +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +U32 ZSTD_window_correctOverflow(ZSTD_window_t* window, U32 cycleLog, + U32 maxDist, void const* src) +{ + /* preemptive overflow correction: + * 1. correction is large enough: + * lowLimit > (3<<29) ==> current > 3<<29 + 1< (3<<29 + 1< (3<<29) - (1< (3<<29) - (1<<30) (NOTE: chainLog <= 30) + * > 1<<29 + * + * 2. (ip+ZSTD_CHUNKSIZE_MAX - cctx->base) doesn't overflow: + * After correction, current is less than (1<base < 1<<32. + * 3. (cctx->lowLimit + 1< 3<<29 + 1<base); + U32 const currentCycle = curr & cycleMask; + /* Ensure newCurrent - maxDist >= ZSTD_WINDOW_START_INDEX. */ + U32 const currentCycleCorrection = currentCycle < ZSTD_WINDOW_START_INDEX + ? MAX(cycleSize, ZSTD_WINDOW_START_INDEX) + : 0; + U32 const newCurrent = currentCycle + + currentCycleCorrection + + MAX(maxDist, cycleSize); + U32 const correction = curr - newCurrent; + /* maxDist must be a power of two so that: + * (newCurrent & cycleMask) == (curr & cycleMask) + * This is required to not corrupt the chains / binary tree. + */ + assert((maxDist & (maxDist - 1)) == 0); + assert((curr & cycleMask) == (newCurrent & cycleMask)); + assert(curr > newCurrent); + if (!ZSTD_WINDOW_OVERFLOW_CORRECT_FREQUENTLY) { + /* Loose bound, should be around 1<<29 (see above) */ + assert(correction > 1<<28); + } + + window->base += correction; + window->dictBase += correction; + if (window->lowLimit < correction + ZSTD_WINDOW_START_INDEX) { + window->lowLimit = ZSTD_WINDOW_START_INDEX; + } else { + window->lowLimit -= correction; + } + if (window->dictLimit < correction + ZSTD_WINDOW_START_INDEX) { + window->dictLimit = ZSTD_WINDOW_START_INDEX; + } else { + window->dictLimit -= correction; + } + + /* Ensure we can still reference the full window. */ + assert(newCurrent >= maxDist); + assert(newCurrent - maxDist >= ZSTD_WINDOW_START_INDEX); + /* Ensure that lowLimit and dictLimit didn't underflow. */ + assert(window->lowLimit <= newCurrent); + assert(window->dictLimit <= newCurrent); + + ++window->nbOverflowCorrections; + + DEBUGLOG(4, "Correction of 0x%x bytes to lowLimit=0x%x", correction, + window->lowLimit); + return correction; +} + +/** + * ZSTD_window_enforceMaxDist(): + * Updates lowLimit so that: + * (srcEnd - base) - lowLimit == maxDist + loadedDictEnd + * + * It ensures index is valid as long as index >= lowLimit. + * This must be called before a block compression call. + * + * loadedDictEnd is only defined if a dictionary is in use for current compression. + * As the name implies, loadedDictEnd represents the index at end of dictionary. + * The value lies within context's referential, it can be directly compared to blockEndIdx. + * + * If loadedDictEndPtr is NULL, no dictionary is in use, and we use loadedDictEnd == 0. + * If loadedDictEndPtr is not NULL, we set it to zero after updating lowLimit. + * This is because dictionaries are allowed to be referenced fully + * as long as the last byte of the dictionary is in the window. + * Once input has progressed beyond window size, dictionary cannot be referenced anymore. + * + * In normal dict mode, the dictionary lies between lowLimit and dictLimit. + * In dictMatchState mode, lowLimit and dictLimit are the same, + * and the dictionary is below them. + * forceWindow and dictMatchState are therefore incompatible. + */ +MEM_STATIC void +ZSTD_window_enforceMaxDist(ZSTD_window_t* window, + const void* blockEnd, + U32 maxDist, + U32* loadedDictEndPtr, + const ZSTD_matchState_t** dictMatchStatePtr) +{ + U32 const blockEndIdx = (U32)((BYTE const*)blockEnd - window->base); + U32 const loadedDictEnd = (loadedDictEndPtr != NULL) ? *loadedDictEndPtr : 0; + DEBUGLOG(5, "ZSTD_window_enforceMaxDist: blockEndIdx=%u, maxDist=%u, loadedDictEnd=%u", + (unsigned)blockEndIdx, (unsigned)maxDist, (unsigned)loadedDictEnd); + + /* - When there is no dictionary : loadedDictEnd == 0. + In which case, the test (blockEndIdx > maxDist) is merely to avoid + overflowing next operation `newLowLimit = blockEndIdx - maxDist`. + - When there is a standard dictionary : + Index referential is copied from the dictionary, + which means it starts from 0. + In which case, loadedDictEnd == dictSize, + and it makes sense to compare `blockEndIdx > maxDist + dictSize` + since `blockEndIdx` also starts from zero. + - When there is an attached dictionary : + loadedDictEnd is expressed within the referential of the context, + so it can be directly compared against blockEndIdx. + */ + if (blockEndIdx > maxDist + loadedDictEnd) { + U32 const newLowLimit = blockEndIdx - maxDist; + if (window->lowLimit < newLowLimit) window->lowLimit = newLowLimit; + if (window->dictLimit < window->lowLimit) { + DEBUGLOG(5, "Update dictLimit to match lowLimit, from %u to %u", + (unsigned)window->dictLimit, (unsigned)window->lowLimit); + window->dictLimit = window->lowLimit; + } + /* On reaching window size, dictionaries are invalidated */ + if (loadedDictEndPtr) *loadedDictEndPtr = 0; + if (dictMatchStatePtr) *dictMatchStatePtr = NULL; + } +} + +/* Similar to ZSTD_window_enforceMaxDist(), + * but only invalidates dictionary + * when input progresses beyond window size. + * assumption : loadedDictEndPtr and dictMatchStatePtr are valid (non NULL) + * loadedDictEnd uses same referential as window->base + * maxDist is the window size */ +MEM_STATIC void +ZSTD_checkDictValidity(const ZSTD_window_t* window, + const void* blockEnd, + U32 maxDist, + U32* loadedDictEndPtr, + const ZSTD_matchState_t** dictMatchStatePtr) +{ + assert(loadedDictEndPtr != NULL); + assert(dictMatchStatePtr != NULL); + { U32 const blockEndIdx = (U32)((BYTE const*)blockEnd - window->base); + U32 const loadedDictEnd = *loadedDictEndPtr; + DEBUGLOG(5, "ZSTD_checkDictValidity: blockEndIdx=%u, maxDist=%u, loadedDictEnd=%u", + (unsigned)blockEndIdx, (unsigned)maxDist, (unsigned)loadedDictEnd); + assert(blockEndIdx >= loadedDictEnd); + + if (blockEndIdx > loadedDictEnd + maxDist || loadedDictEnd != window->dictLimit) { + /* On reaching window size, dictionaries are invalidated. + * For simplification, if window size is reached anywhere within next block, + * the dictionary is invalidated for the full block. + * + * We also have to invalidate the dictionary if ZSTD_window_update() has detected + * non-contiguous segments, which means that loadedDictEnd != window->dictLimit. + * loadedDictEnd may be 0, if forceWindow is true, but in that case we never use + * dictMatchState, so setting it to NULL is not a problem. + */ + DEBUGLOG(6, "invalidating dictionary for current block (distance > windowSize)"); + *loadedDictEndPtr = 0; + *dictMatchStatePtr = NULL; + } else { + if (*loadedDictEndPtr != 0) { + DEBUGLOG(6, "dictionary considered valid for current block"); + } } } +} + +MEM_STATIC void ZSTD_window_init(ZSTD_window_t* window) { + ZSTD_memset(window, 0, sizeof(*window)); + window->base = (BYTE const*)" "; + window->dictBase = (BYTE const*)" "; + ZSTD_STATIC_ASSERT(ZSTD_DUBT_UNSORTED_MARK < ZSTD_WINDOW_START_INDEX); /* Start above ZSTD_DUBT_UNSORTED_MARK */ + window->dictLimit = ZSTD_WINDOW_START_INDEX; /* start from >0, so that 1st position is valid */ + window->lowLimit = ZSTD_WINDOW_START_INDEX; /* it ensures first and later CCtx usages compress the same */ + window->nextSrc = window->base + ZSTD_WINDOW_START_INDEX; /* see issue #1241 */ + window->nbOverflowCorrections = 0; +} + +/** + * ZSTD_window_update(): + * Updates the window by appending [src, src + srcSize) to the window. + * If it is not contiguous, the current prefix becomes the extDict, and we + * forget about the extDict. Handles overlap of the prefix and extDict. + * Returns non-zero if the segment is contiguous. + */ +MEM_STATIC +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +U32 ZSTD_window_update(ZSTD_window_t* window, + void const* src, size_t srcSize, + int forceNonContiguous) +{ + BYTE const* const ip = (BYTE const*)src; + U32 contiguous = 1; + DEBUGLOG(5, "ZSTD_window_update"); + if (srcSize == 0) + return contiguous; + assert(window->base != NULL); + assert(window->dictBase != NULL); + /* Check if blocks follow each other */ + if (src != window->nextSrc || forceNonContiguous) { + /* not contiguous */ + size_t const distanceFromBase = (size_t)(window->nextSrc - window->base); + DEBUGLOG(5, "Non contiguous blocks, new segment starts at %u", window->dictLimit); + window->lowLimit = window->dictLimit; + assert(distanceFromBase == (size_t)(U32)distanceFromBase); /* should never overflow */ + window->dictLimit = (U32)distanceFromBase; + window->dictBase = window->base; + window->base = ip - distanceFromBase; + /* ms->nextToUpdate = window->dictLimit; */ + if (window->dictLimit - window->lowLimit < HASH_READ_SIZE) window->lowLimit = window->dictLimit; /* too small extDict */ + contiguous = 0; + } + window->nextSrc = ip + srcSize; + /* if input and dictionary overlap : reduce dictionary (area presumed modified by input) */ + if ( (ip+srcSize > window->dictBase + window->lowLimit) + & (ip < window->dictBase + window->dictLimit)) { + ptrdiff_t const highInputIdx = (ip + srcSize) - window->dictBase; + U32 const lowLimitMax = (highInputIdx > (ptrdiff_t)window->dictLimit) ? window->dictLimit : (U32)highInputIdx; + window->lowLimit = lowLimitMax; + DEBUGLOG(5, "Overlapping extDict and input : new lowLimit = %u", window->lowLimit); + } + return contiguous; +} + +/** + * Returns the lowest allowed match index. It may either be in the ext-dict or the prefix. + */ +MEM_STATIC U32 ZSTD_getLowestMatchIndex(const ZSTD_matchState_t* ms, U32 curr, unsigned windowLog) +{ + U32 const maxDistance = 1U << windowLog; + U32 const lowestValid = ms->window.lowLimit; + U32 const withinWindow = (curr - lowestValid > maxDistance) ? curr - maxDistance : lowestValid; + U32 const isDictionary = (ms->loadedDictEnd != 0); + /* When using a dictionary the entire dictionary is valid if a single byte of the dictionary + * is within the window. We invalidate the dictionary (and set loadedDictEnd to 0) when it isn't + * valid for the entire block. So this check is sufficient to find the lowest valid match index. + */ + U32 const matchLowest = isDictionary ? lowestValid : withinWindow; + return matchLowest; +} + +/** + * Returns the lowest allowed match index in the prefix. + */ +MEM_STATIC U32 ZSTD_getLowestPrefixIndex(const ZSTD_matchState_t* ms, U32 curr, unsigned windowLog) +{ + U32 const maxDistance = 1U << windowLog; + U32 const lowestValid = ms->window.dictLimit; + U32 const withinWindow = (curr - lowestValid > maxDistance) ? curr - maxDistance : lowestValid; + U32 const isDictionary = (ms->loadedDictEnd != 0); + /* When computing the lowest prefix index we need to take the dictionary into account to handle + * the edge case where the dictionary and the source are contiguous in memory. + */ + U32 const matchLowest = isDictionary ? lowestValid : withinWindow; + return matchLowest; +} + + + +/* debug functions */ +#if (DEBUGLEVEL>=2) + +MEM_STATIC double ZSTD_fWeight(U32 rawStat) +{ + U32 const fp_accuracy = 8; + U32 const fp_multiplier = (1 << fp_accuracy); + U32 const newStat = rawStat + 1; + U32 const hb = ZSTD_highbit32(newStat); + U32 const BWeight = hb * fp_multiplier; + U32 const FWeight = (newStat << fp_accuracy) >> hb; + U32 const weight = BWeight + FWeight; + assert(hb + fp_accuracy < 31); + return (double)weight / fp_multiplier; +} + +/* display a table content, + * listing each element, its frequency, and its predicted bit cost */ +MEM_STATIC void ZSTD_debugTable(const U32* table, U32 max) +{ + unsigned u, sum; + for (u=0, sum=0; u<=max; u++) sum += table[u]; + DEBUGLOG(2, "total nb elts: %u", sum); + for (u=0; u<=max; u++) { + DEBUGLOG(2, "%2u: %5u (%.2f)", + u, table[u], ZSTD_fWeight(sum) - ZSTD_fWeight(table[u]) ); + } +} + +#endif + +/* Short Cache */ + +/* Normally, zstd matchfinders follow this flow: + * 1. Compute hash at ip + * 2. Load index from hashTable[hash] + * 3. Check if *ip == *(base + index) + * In dictionary compression, loading *(base + index) is often an L2 or even L3 miss. + * + * Short cache is an optimization which allows us to avoid step 3 most of the time + * when the data doesn't actually match. With short cache, the flow becomes: + * 1. Compute (hash, currentTag) at ip. currentTag is an 8-bit independent hash at ip. + * 2. Load (index, matchTag) from hashTable[hash]. See ZSTD_writeTaggedIndex to understand how this works. + * 3. Only if currentTag == matchTag, check *ip == *(base + index). Otherwise, continue. + * + * Currently, short cache is only implemented in CDict hashtables. Thus, its use is limited to + * dictMatchState matchfinders. + */ +#define ZSTD_SHORT_CACHE_TAG_BITS 8 +#define ZSTD_SHORT_CACHE_TAG_MASK ((1u << ZSTD_SHORT_CACHE_TAG_BITS) - 1) + +/* Helper function for ZSTD_fillHashTable and ZSTD_fillDoubleHashTable. + * Unpacks hashAndTag into (hash, tag), then packs (index, tag) into hashTable[hash]. */ +MEM_STATIC void ZSTD_writeTaggedIndex(U32* const hashTable, size_t hashAndTag, U32 index) { + size_t const hash = hashAndTag >> ZSTD_SHORT_CACHE_TAG_BITS; + U32 const tag = (U32)(hashAndTag & ZSTD_SHORT_CACHE_TAG_MASK); + assert(index >> (32 - ZSTD_SHORT_CACHE_TAG_BITS) == 0); + hashTable[hash] = (index << ZSTD_SHORT_CACHE_TAG_BITS) | tag; +} + +/* Helper function for short cache matchfinders. + * Unpacks tag1 and tag2 from lower bits of packedTag1 and packedTag2, then checks if the tags match. */ +MEM_STATIC int ZSTD_comparePackedTags(size_t packedTag1, size_t packedTag2) { + U32 const tag1 = packedTag1 & ZSTD_SHORT_CACHE_TAG_MASK; + U32 const tag2 = packedTag2 & ZSTD_SHORT_CACHE_TAG_MASK; + return tag1 == tag2; +} + +#if defined (__cplusplus) +} +#endif + +/* =============================================================== + * Shared internal declarations + * These prototypes may be called from sources not in lib/compress + * =============================================================== */ + +/* ZSTD_loadCEntropy() : + * dict : must point at beginning of a valid zstd dictionary. + * return : size of dictionary header (size of magic number + dict ID + entropy tables) + * assumptions : magic number supposed already checked + * and dictSize >= 8 */ +size_t ZSTD_loadCEntropy(ZSTD_compressedBlockState_t* bs, void* workspace, + const void* const dict, size_t dictSize); + +void ZSTD_reset_compressedBlockState(ZSTD_compressedBlockState_t* bs); + +/* ============================================================== + * Private declarations + * These prototypes shall only be called from within lib/compress + * ============================================================== */ + +/* ZSTD_getCParamsFromCCtxParams() : + * cParams are built depending on compressionLevel, src size hints, + * LDM and manually set compression parameters. + * Note: srcSizeHint == 0 means 0! + */ +ZSTD_compressionParameters ZSTD_getCParamsFromCCtxParams( + const ZSTD_CCtx_params* CCtxParams, U64 srcSizeHint, size_t dictSize, ZSTD_cParamMode_e mode); + +/*! ZSTD_initCStream_internal() : + * Private use only. Init streaming operation. + * expects params to be valid. + * must receive dict, or cdict, or none, but not both. + * @return : 0, or an error code */ +size_t ZSTD_initCStream_internal(ZSTD_CStream* zcs, + const void* dict, size_t dictSize, + const ZSTD_CDict* cdict, + const ZSTD_CCtx_params* params, unsigned long long pledgedSrcSize); + +void ZSTD_resetSeqStore(seqStore_t* ssPtr); + +/*! ZSTD_getCParamsFromCDict() : + * as the name implies */ +ZSTD_compressionParameters ZSTD_getCParamsFromCDict(const ZSTD_CDict* cdict); + +/* ZSTD_compressBegin_advanced_internal() : + * Private use only. To be called from zstdmt_compress.c. */ +size_t ZSTD_compressBegin_advanced_internal(ZSTD_CCtx* cctx, + const void* dict, size_t dictSize, + ZSTD_dictContentType_e dictContentType, + ZSTD_dictTableLoadMethod_e dtlm, + const ZSTD_CDict* cdict, + const ZSTD_CCtx_params* params, + unsigned long long pledgedSrcSize); + +/* ZSTD_compress_advanced_internal() : + * Private use only. To be called from zstdmt_compress.c. */ +size_t ZSTD_compress_advanced_internal(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + const void* dict,size_t dictSize, + const ZSTD_CCtx_params* params); + + +/* ZSTD_writeLastEmptyBlock() : + * output an empty Block with end-of-frame mark to complete a frame + * @return : size of data written into `dst` (== ZSTD_blockHeaderSize (defined in zstd_internal.h)) + * or an error code if `dstCapacity` is too small ( 1 */ +U32 ZSTD_cycleLog(U32 hashLog, ZSTD_strategy strat); + +/** ZSTD_CCtx_trace() : + * Trace the end of a compression call. + */ +void ZSTD_CCtx_trace(ZSTD_CCtx* cctx, size_t extraCSize); + +/* Returns 0 on success, and a ZSTD_error otherwise. This function scans through an array of + * ZSTD_Sequence, storing the sequences it finds, until it reaches a block delimiter. + * Note that the block delimiter must include the last literals of the block. + */ +size_t +ZSTD_copySequencesToSeqStoreExplicitBlockDelim(ZSTD_CCtx* cctx, + ZSTD_sequencePosition* seqPos, + const ZSTD_Sequence* const inSeqs, size_t inSeqsSize, + const void* src, size_t blockSize, ZSTD_paramSwitch_e externalRepSearch); + +/* Returns the number of bytes to move the current read position back by. + * Only non-zero if we ended up splitting a sequence. + * Otherwise, it may return a ZSTD error if something went wrong. + * + * This function will attempt to scan through blockSize bytes + * represented by the sequences in @inSeqs, + * storing any (partial) sequences. + * + * Occasionally, we may want to change the actual number of bytes we consumed from inSeqs to + * avoid splitting a match, or to avoid splitting a match such that it would produce a match + * smaller than MINMATCH. In this case, we return the number of bytes that we didn't read from this block. + */ +size_t +ZSTD_copySequencesToSeqStoreNoBlockDelim(ZSTD_CCtx* cctx, ZSTD_sequencePosition* seqPos, + const ZSTD_Sequence* const inSeqs, size_t inSeqsSize, + const void* src, size_t blockSize, ZSTD_paramSwitch_e externalRepSearch); + +/* Returns 1 if an external sequence producer is registered, otherwise returns 0. */ +MEM_STATIC int ZSTD_hasExtSeqProd(const ZSTD_CCtx_params* params) { + return params->extSeqProdFunc != NULL; +} + +/* =============================================================== + * Deprecated definitions that are still used internally to avoid + * deprecation warnings. These functions are exactly equivalent to + * their public variants, but avoid the deprecation warnings. + * =============================================================== */ + +size_t ZSTD_compressBegin_usingCDict_deprecated(ZSTD_CCtx* cctx, const ZSTD_CDict* cdict); + +size_t ZSTD_compressContinue_public(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize); + +size_t ZSTD_compressEnd_public(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize); + +size_t ZSTD_compressBlock_deprecated(ZSTD_CCtx* cctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize); + + +#endif /* ZSTD_COMPRESS_H */ diff --git a/deps/zstd/lib/compress/zstd_compress_literals.c b/deps/zstd/lib/compress/zstd_compress_literals.c new file mode 100644 index 00000000000000..bfd4f11abe421d --- /dev/null +++ b/deps/zstd/lib/compress/zstd_compress_literals.c @@ -0,0 +1,235 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + /*-************************************* + * Dependencies + ***************************************/ +#include "zstd_compress_literals.h" + + +/* ************************************************************** +* Debug Traces +****************************************************************/ +#if DEBUGLEVEL >= 2 + +static size_t showHexa(const void* src, size_t srcSize) +{ + const BYTE* const ip = (const BYTE*)src; + size_t u; + for (u=0; u31) + (srcSize>4095); + + DEBUGLOG(5, "ZSTD_noCompressLiterals: srcSize=%zu, dstCapacity=%zu", srcSize, dstCapacity); + + RETURN_ERROR_IF(srcSize + flSize > dstCapacity, dstSize_tooSmall, ""); + + switch(flSize) + { + case 1: /* 2 - 1 - 5 */ + ostart[0] = (BYTE)((U32)set_basic + (srcSize<<3)); + break; + case 2: /* 2 - 2 - 12 */ + MEM_writeLE16(ostart, (U16)((U32)set_basic + (1<<2) + (srcSize<<4))); + break; + case 3: /* 2 - 2 - 20 */ + MEM_writeLE32(ostart, (U32)((U32)set_basic + (3<<2) + (srcSize<<4))); + break; + default: /* not necessary : flSize is {1,2,3} */ + assert(0); + } + + ZSTD_memcpy(ostart + flSize, src, srcSize); + DEBUGLOG(5, "Raw (uncompressed) literals: %u -> %u", (U32)srcSize, (U32)(srcSize + flSize)); + return srcSize + flSize; +} + +static int allBytesIdentical(const void* src, size_t srcSize) +{ + assert(srcSize >= 1); + assert(src != NULL); + { const BYTE b = ((const BYTE*)src)[0]; + size_t p; + for (p=1; p31) + (srcSize>4095); + + assert(dstCapacity >= 4); (void)dstCapacity; + assert(allBytesIdentical(src, srcSize)); + + switch(flSize) + { + case 1: /* 2 - 1 - 5 */ + ostart[0] = (BYTE)((U32)set_rle + (srcSize<<3)); + break; + case 2: /* 2 - 2 - 12 */ + MEM_writeLE16(ostart, (U16)((U32)set_rle + (1<<2) + (srcSize<<4))); + break; + case 3: /* 2 - 2 - 20 */ + MEM_writeLE32(ostart, (U32)((U32)set_rle + (3<<2) + (srcSize<<4))); + break; + default: /* not necessary : flSize is {1,2,3} */ + assert(0); + } + + ostart[flSize] = *(const BYTE*)src; + DEBUGLOG(5, "RLE : Repeated Literal (%02X: %u times) -> %u bytes encoded", ((const BYTE*)src)[0], (U32)srcSize, (U32)flSize + 1); + return flSize+1; +} + +/* ZSTD_minLiteralsToCompress() : + * returns minimal amount of literals + * for literal compression to even be attempted. + * Minimum is made tighter as compression strategy increases. + */ +static size_t +ZSTD_minLiteralsToCompress(ZSTD_strategy strategy, HUF_repeat huf_repeat) +{ + assert((int)strategy >= 0); + assert((int)strategy <= 9); + /* btultra2 : min 8 bytes; + * then 2x larger for each successive compression strategy + * max threshold 64 bytes */ + { int const shift = MIN(9-(int)strategy, 3); + size_t const mintc = (huf_repeat == HUF_repeat_valid) ? 6 : (size_t)8 << shift; + DEBUGLOG(7, "minLiteralsToCompress = %zu", mintc); + return mintc; + } +} + +size_t ZSTD_compressLiterals ( + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + void* entropyWorkspace, size_t entropyWorkspaceSize, + const ZSTD_hufCTables_t* prevHuf, + ZSTD_hufCTables_t* nextHuf, + ZSTD_strategy strategy, + int disableLiteralCompression, + int suspectUncompressible, + int bmi2) +{ + size_t const lhSize = 3 + (srcSize >= 1 KB) + (srcSize >= 16 KB); + BYTE* const ostart = (BYTE*)dst; + U32 singleStream = srcSize < 256; + symbolEncodingType_e hType = set_compressed; + size_t cLitSize; + + DEBUGLOG(5,"ZSTD_compressLiterals (disableLiteralCompression=%i, srcSize=%u, dstCapacity=%zu)", + disableLiteralCompression, (U32)srcSize, dstCapacity); + + DEBUGLOG(6, "Completed literals listing (%zu bytes)", showHexa(src, srcSize)); + + /* Prepare nextEntropy assuming reusing the existing table */ + ZSTD_memcpy(nextHuf, prevHuf, sizeof(*prevHuf)); + + if (disableLiteralCompression) + return ZSTD_noCompressLiterals(dst, dstCapacity, src, srcSize); + + /* if too small, don't even attempt compression (speed opt) */ + if (srcSize < ZSTD_minLiteralsToCompress(strategy, prevHuf->repeatMode)) + return ZSTD_noCompressLiterals(dst, dstCapacity, src, srcSize); + + RETURN_ERROR_IF(dstCapacity < lhSize+1, dstSize_tooSmall, "not enough space for compression"); + { HUF_repeat repeat = prevHuf->repeatMode; + int const flags = 0 + | (bmi2 ? HUF_flags_bmi2 : 0) + | (strategy < ZSTD_lazy && srcSize <= 1024 ? HUF_flags_preferRepeat : 0) + | (strategy >= HUF_OPTIMAL_DEPTH_THRESHOLD ? HUF_flags_optimalDepth : 0) + | (suspectUncompressible ? HUF_flags_suspectUncompressible : 0); + + typedef size_t (*huf_compress_f)(void*, size_t, const void*, size_t, unsigned, unsigned, void*, size_t, HUF_CElt*, HUF_repeat*, int); + huf_compress_f huf_compress; + if (repeat == HUF_repeat_valid && lhSize == 3) singleStream = 1; + huf_compress = singleStream ? HUF_compress1X_repeat : HUF_compress4X_repeat; + cLitSize = huf_compress(ostart+lhSize, dstCapacity-lhSize, + src, srcSize, + HUF_SYMBOLVALUE_MAX, LitHufLog, + entropyWorkspace, entropyWorkspaceSize, + (HUF_CElt*)nextHuf->CTable, + &repeat, flags); + DEBUGLOG(5, "%zu literals compressed into %zu bytes (before header)", srcSize, cLitSize); + if (repeat != HUF_repeat_none) { + /* reused the existing table */ + DEBUGLOG(5, "reusing statistics from previous huffman block"); + hType = set_repeat; + } + } + + { size_t const minGain = ZSTD_minGain(srcSize, strategy); + if ((cLitSize==0) || (cLitSize >= srcSize - minGain) || ERR_isError(cLitSize)) { + ZSTD_memcpy(nextHuf, prevHuf, sizeof(*prevHuf)); + return ZSTD_noCompressLiterals(dst, dstCapacity, src, srcSize); + } } + if (cLitSize==1) { + /* A return value of 1 signals that the alphabet consists of a single symbol. + * However, in some rare circumstances, it could be the compressed size (a single byte). + * For that outcome to have a chance to happen, it's necessary that `srcSize < 8`. + * (it's also necessary to not generate statistics). + * Therefore, in such a case, actively check that all bytes are identical. */ + if ((srcSize >= 8) || allBytesIdentical(src, srcSize)) { + ZSTD_memcpy(nextHuf, prevHuf, sizeof(*prevHuf)); + return ZSTD_compressRleLiteralsBlock(dst, dstCapacity, src, srcSize); + } } + + if (hType == set_compressed) { + /* using a newly constructed table */ + nextHuf->repeatMode = HUF_repeat_check; + } + + /* Build header */ + switch(lhSize) + { + case 3: /* 2 - 2 - 10 - 10 */ + if (!singleStream) assert(srcSize >= MIN_LITERALS_FOR_4_STREAMS); + { U32 const lhc = hType + ((U32)(!singleStream) << 2) + ((U32)srcSize<<4) + ((U32)cLitSize<<14); + MEM_writeLE24(ostart, lhc); + break; + } + case 4: /* 2 - 2 - 14 - 14 */ + assert(srcSize >= MIN_LITERALS_FOR_4_STREAMS); + { U32 const lhc = hType + (2 << 2) + ((U32)srcSize<<4) + ((U32)cLitSize<<18); + MEM_writeLE32(ostart, lhc); + break; + } + case 5: /* 2 - 2 - 18 - 18 */ + assert(srcSize >= MIN_LITERALS_FOR_4_STREAMS); + { U32 const lhc = hType + (3 << 2) + ((U32)srcSize<<4) + ((U32)cLitSize<<22); + MEM_writeLE32(ostart, lhc); + ostart[4] = (BYTE)(cLitSize >> 10); + break; + } + default: /* not possible : lhSize is {3,4,5} */ + assert(0); + } + DEBUGLOG(5, "Compressed literals: %u -> %u", (U32)srcSize, (U32)(lhSize+cLitSize)); + return lhSize+cLitSize; +} diff --git a/deps/zstd/lib/compress/zstd_compress_literals.h b/deps/zstd/lib/compress/zstd_compress_literals.h new file mode 100644 index 00000000000000..b060c8ad21875a --- /dev/null +++ b/deps/zstd/lib/compress/zstd_compress_literals.h @@ -0,0 +1,39 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_COMPRESS_LITERALS_H +#define ZSTD_COMPRESS_LITERALS_H + +#include "zstd_compress_internal.h" /* ZSTD_hufCTables_t, ZSTD_minGain() */ + + +size_t ZSTD_noCompressLiterals (void* dst, size_t dstCapacity, const void* src, size_t srcSize); + +/* ZSTD_compressRleLiteralsBlock() : + * Conditions : + * - All bytes in @src are identical + * - dstCapacity >= 4 */ +size_t ZSTD_compressRleLiteralsBlock (void* dst, size_t dstCapacity, const void* src, size_t srcSize); + +/* ZSTD_compressLiterals(): + * @entropyWorkspace: must be aligned on 4-bytes boundaries + * @entropyWorkspaceSize : must be >= HUF_WORKSPACE_SIZE + * @suspectUncompressible: sampling checks, to potentially skip huffman coding + */ +size_t ZSTD_compressLiterals (void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + void* entropyWorkspace, size_t entropyWorkspaceSize, + const ZSTD_hufCTables_t* prevHuf, + ZSTD_hufCTables_t* nextHuf, + ZSTD_strategy strategy, int disableLiteralCompression, + int suspectUncompressible, + int bmi2); + +#endif /* ZSTD_COMPRESS_LITERALS_H */ diff --git a/deps/zstd/lib/compress/zstd_compress_sequences.c b/deps/zstd/lib/compress/zstd_compress_sequences.c new file mode 100644 index 00000000000000..8872d4d354a00b --- /dev/null +++ b/deps/zstd/lib/compress/zstd_compress_sequences.c @@ -0,0 +1,442 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + /*-************************************* + * Dependencies + ***************************************/ +#include "zstd_compress_sequences.h" + +/** + * -log2(x / 256) lookup table for x in [0, 256). + * If x == 0: Return 0 + * Else: Return floor(-log2(x / 256) * 256) + */ +static unsigned const kInverseProbabilityLog256[256] = { + 0, 2048, 1792, 1642, 1536, 1453, 1386, 1329, 1280, 1236, 1197, 1162, + 1130, 1100, 1073, 1047, 1024, 1001, 980, 960, 941, 923, 906, 889, + 874, 859, 844, 830, 817, 804, 791, 779, 768, 756, 745, 734, + 724, 714, 704, 694, 685, 676, 667, 658, 650, 642, 633, 626, + 618, 610, 603, 595, 588, 581, 574, 567, 561, 554, 548, 542, + 535, 529, 523, 517, 512, 506, 500, 495, 489, 484, 478, 473, + 468, 463, 458, 453, 448, 443, 438, 434, 429, 424, 420, 415, + 411, 407, 402, 398, 394, 390, 386, 382, 377, 373, 370, 366, + 362, 358, 354, 350, 347, 343, 339, 336, 332, 329, 325, 322, + 318, 315, 311, 308, 305, 302, 298, 295, 292, 289, 286, 282, + 279, 276, 273, 270, 267, 264, 261, 258, 256, 253, 250, 247, + 244, 241, 239, 236, 233, 230, 228, 225, 222, 220, 217, 215, + 212, 209, 207, 204, 202, 199, 197, 194, 192, 190, 187, 185, + 182, 180, 178, 175, 173, 171, 168, 166, 164, 162, 159, 157, + 155, 153, 151, 149, 146, 144, 142, 140, 138, 136, 134, 132, + 130, 128, 126, 123, 121, 119, 117, 115, 114, 112, 110, 108, + 106, 104, 102, 100, 98, 96, 94, 93, 91, 89, 87, 85, + 83, 82, 80, 78, 76, 74, 73, 71, 69, 67, 66, 64, + 62, 61, 59, 57, 55, 54, 52, 50, 49, 47, 46, 44, + 42, 41, 39, 37, 36, 34, 33, 31, 30, 28, 26, 25, + 23, 22, 20, 19, 17, 16, 14, 13, 11, 10, 8, 7, + 5, 4, 2, 1, +}; + +static unsigned ZSTD_getFSEMaxSymbolValue(FSE_CTable const* ctable) { + void const* ptr = ctable; + U16 const* u16ptr = (U16 const*)ptr; + U32 const maxSymbolValue = MEM_read16(u16ptr + 1); + return maxSymbolValue; +} + +/** + * Returns true if we should use ncount=-1 else we should + * use ncount=1 for low probability symbols instead. + */ +static unsigned ZSTD_useLowProbCount(size_t const nbSeq) +{ + /* Heuristic: This should cover most blocks <= 16K and + * start to fade out after 16K to about 32K depending on + * compressibility. + */ + return nbSeq >= 2048; +} + +/** + * Returns the cost in bytes of encoding the normalized count header. + * Returns an error if any of the helper functions return an error. + */ +static size_t ZSTD_NCountCost(unsigned const* count, unsigned const max, + size_t const nbSeq, unsigned const FSELog) +{ + BYTE wksp[FSE_NCOUNTBOUND]; + S16 norm[MaxSeq + 1]; + const U32 tableLog = FSE_optimalTableLog(FSELog, nbSeq, max); + FORWARD_IF_ERROR(FSE_normalizeCount(norm, tableLog, count, nbSeq, max, ZSTD_useLowProbCount(nbSeq)), ""); + return FSE_writeNCount(wksp, sizeof(wksp), norm, max, tableLog); +} + +/** + * Returns the cost in bits of encoding the distribution described by count + * using the entropy bound. + */ +static size_t ZSTD_entropyCost(unsigned const* count, unsigned const max, size_t const total) +{ + unsigned cost = 0; + unsigned s; + + assert(total > 0); + for (s = 0; s <= max; ++s) { + unsigned norm = (unsigned)((256 * count[s]) / total); + if (count[s] != 0 && norm == 0) + norm = 1; + assert(count[s] < total); + cost += count[s] * kInverseProbabilityLog256[norm]; + } + return cost >> 8; +} + +/** + * Returns the cost in bits of encoding the distribution in count using ctable. + * Returns an error if ctable cannot represent all the symbols in count. + */ +size_t ZSTD_fseBitCost( + FSE_CTable const* ctable, + unsigned const* count, + unsigned const max) +{ + unsigned const kAccuracyLog = 8; + size_t cost = 0; + unsigned s; + FSE_CState_t cstate; + FSE_initCState(&cstate, ctable); + if (ZSTD_getFSEMaxSymbolValue(ctable) < max) { + DEBUGLOG(5, "Repeat FSE_CTable has maxSymbolValue %u < %u", + ZSTD_getFSEMaxSymbolValue(ctable), max); + return ERROR(GENERIC); + } + for (s = 0; s <= max; ++s) { + unsigned const tableLog = cstate.stateLog; + unsigned const badCost = (tableLog + 1) << kAccuracyLog; + unsigned const bitCost = FSE_bitCost(cstate.symbolTT, tableLog, s, kAccuracyLog); + if (count[s] == 0) + continue; + if (bitCost >= badCost) { + DEBUGLOG(5, "Repeat FSE_CTable has Prob[%u] == 0", s); + return ERROR(GENERIC); + } + cost += (size_t)count[s] * bitCost; + } + return cost >> kAccuracyLog; +} + +/** + * Returns the cost in bits of encoding the distribution in count using the + * table described by norm. The max symbol support by norm is assumed >= max. + * norm must be valid for every symbol with non-zero probability in count. + */ +size_t ZSTD_crossEntropyCost(short const* norm, unsigned accuracyLog, + unsigned const* count, unsigned const max) +{ + unsigned const shift = 8 - accuracyLog; + size_t cost = 0; + unsigned s; + assert(accuracyLog <= 8); + for (s = 0; s <= max; ++s) { + unsigned const normAcc = (norm[s] != -1) ? (unsigned)norm[s] : 1; + unsigned const norm256 = normAcc << shift; + assert(norm256 > 0); + assert(norm256 < 256); + cost += count[s] * kInverseProbabilityLog256[norm256]; + } + return cost >> 8; +} + +symbolEncodingType_e +ZSTD_selectEncodingType( + FSE_repeat* repeatMode, unsigned const* count, unsigned const max, + size_t const mostFrequent, size_t nbSeq, unsigned const FSELog, + FSE_CTable const* prevCTable, + short const* defaultNorm, U32 defaultNormLog, + ZSTD_defaultPolicy_e const isDefaultAllowed, + ZSTD_strategy const strategy) +{ + ZSTD_STATIC_ASSERT(ZSTD_defaultDisallowed == 0 && ZSTD_defaultAllowed != 0); + if (mostFrequent == nbSeq) { + *repeatMode = FSE_repeat_none; + if (isDefaultAllowed && nbSeq <= 2) { + /* Prefer set_basic over set_rle when there are 2 or fewer symbols, + * since RLE uses 1 byte, but set_basic uses 5-6 bits per symbol. + * If basic encoding isn't possible, always choose RLE. + */ + DEBUGLOG(5, "Selected set_basic"); + return set_basic; + } + DEBUGLOG(5, "Selected set_rle"); + return set_rle; + } + if (strategy < ZSTD_lazy) { + if (isDefaultAllowed) { + size_t const staticFse_nbSeq_max = 1000; + size_t const mult = 10 - strategy; + size_t const baseLog = 3; + size_t const dynamicFse_nbSeq_min = (((size_t)1 << defaultNormLog) * mult) >> baseLog; /* 28-36 for offset, 56-72 for lengths */ + assert(defaultNormLog >= 5 && defaultNormLog <= 6); /* xx_DEFAULTNORMLOG */ + assert(mult <= 9 && mult >= 7); + if ( (*repeatMode == FSE_repeat_valid) + && (nbSeq < staticFse_nbSeq_max) ) { + DEBUGLOG(5, "Selected set_repeat"); + return set_repeat; + } + if ( (nbSeq < dynamicFse_nbSeq_min) + || (mostFrequent < (nbSeq >> (defaultNormLog-1))) ) { + DEBUGLOG(5, "Selected set_basic"); + /* The format allows default tables to be repeated, but it isn't useful. + * When using simple heuristics to select encoding type, we don't want + * to confuse these tables with dictionaries. When running more careful + * analysis, we don't need to waste time checking both repeating tables + * and default tables. + */ + *repeatMode = FSE_repeat_none; + return set_basic; + } + } + } else { + size_t const basicCost = isDefaultAllowed ? ZSTD_crossEntropyCost(defaultNorm, defaultNormLog, count, max) : ERROR(GENERIC); + size_t const repeatCost = *repeatMode != FSE_repeat_none ? ZSTD_fseBitCost(prevCTable, count, max) : ERROR(GENERIC); + size_t const NCountCost = ZSTD_NCountCost(count, max, nbSeq, FSELog); + size_t const compressedCost = (NCountCost << 3) + ZSTD_entropyCost(count, max, nbSeq); + + if (isDefaultAllowed) { + assert(!ZSTD_isError(basicCost)); + assert(!(*repeatMode == FSE_repeat_valid && ZSTD_isError(repeatCost))); + } + assert(!ZSTD_isError(NCountCost)); + assert(compressedCost < ERROR(maxCode)); + DEBUGLOG(5, "Estimated bit costs: basic=%u\trepeat=%u\tcompressed=%u", + (unsigned)basicCost, (unsigned)repeatCost, (unsigned)compressedCost); + if (basicCost <= repeatCost && basicCost <= compressedCost) { + DEBUGLOG(5, "Selected set_basic"); + assert(isDefaultAllowed); + *repeatMode = FSE_repeat_none; + return set_basic; + } + if (repeatCost <= compressedCost) { + DEBUGLOG(5, "Selected set_repeat"); + assert(!ZSTD_isError(repeatCost)); + return set_repeat; + } + assert(compressedCost < basicCost && compressedCost < repeatCost); + } + DEBUGLOG(5, "Selected set_compressed"); + *repeatMode = FSE_repeat_check; + return set_compressed; +} + +typedef struct { + S16 norm[MaxSeq + 1]; + U32 wksp[FSE_BUILD_CTABLE_WORKSPACE_SIZE_U32(MaxSeq, MaxFSELog)]; +} ZSTD_BuildCTableWksp; + +size_t +ZSTD_buildCTable(void* dst, size_t dstCapacity, + FSE_CTable* nextCTable, U32 FSELog, symbolEncodingType_e type, + unsigned* count, U32 max, + const BYTE* codeTable, size_t nbSeq, + const S16* defaultNorm, U32 defaultNormLog, U32 defaultMax, + const FSE_CTable* prevCTable, size_t prevCTableSize, + void* entropyWorkspace, size_t entropyWorkspaceSize) +{ + BYTE* op = (BYTE*)dst; + const BYTE* const oend = op + dstCapacity; + DEBUGLOG(6, "ZSTD_buildCTable (dstCapacity=%u)", (unsigned)dstCapacity); + + switch (type) { + case set_rle: + FORWARD_IF_ERROR(FSE_buildCTable_rle(nextCTable, (BYTE)max), ""); + RETURN_ERROR_IF(dstCapacity==0, dstSize_tooSmall, "not enough space"); + *op = codeTable[0]; + return 1; + case set_repeat: + ZSTD_memcpy(nextCTable, prevCTable, prevCTableSize); + return 0; + case set_basic: + FORWARD_IF_ERROR(FSE_buildCTable_wksp(nextCTable, defaultNorm, defaultMax, defaultNormLog, entropyWorkspace, entropyWorkspaceSize), ""); /* note : could be pre-calculated */ + return 0; + case set_compressed: { + ZSTD_BuildCTableWksp* wksp = (ZSTD_BuildCTableWksp*)entropyWorkspace; + size_t nbSeq_1 = nbSeq; + const U32 tableLog = FSE_optimalTableLog(FSELog, nbSeq, max); + if (count[codeTable[nbSeq-1]] > 1) { + count[codeTable[nbSeq-1]]--; + nbSeq_1--; + } + assert(nbSeq_1 > 1); + assert(entropyWorkspaceSize >= sizeof(ZSTD_BuildCTableWksp)); + (void)entropyWorkspaceSize; + FORWARD_IF_ERROR(FSE_normalizeCount(wksp->norm, tableLog, count, nbSeq_1, max, ZSTD_useLowProbCount(nbSeq_1)), "FSE_normalizeCount failed"); + assert(oend >= op); + { size_t const NCountSize = FSE_writeNCount(op, (size_t)(oend - op), wksp->norm, max, tableLog); /* overflow protected */ + FORWARD_IF_ERROR(NCountSize, "FSE_writeNCount failed"); + FORWARD_IF_ERROR(FSE_buildCTable_wksp(nextCTable, wksp->norm, max, tableLog, wksp->wksp, sizeof(wksp->wksp)), "FSE_buildCTable_wksp failed"); + return NCountSize; + } + } + default: assert(0); RETURN_ERROR(GENERIC, "impossible to reach"); + } +} + +FORCE_INLINE_TEMPLATE size_t +ZSTD_encodeSequences_body( + void* dst, size_t dstCapacity, + FSE_CTable const* CTable_MatchLength, BYTE const* mlCodeTable, + FSE_CTable const* CTable_OffsetBits, BYTE const* ofCodeTable, + FSE_CTable const* CTable_LitLength, BYTE const* llCodeTable, + seqDef const* sequences, size_t nbSeq, int longOffsets) +{ + BIT_CStream_t blockStream; + FSE_CState_t stateMatchLength; + FSE_CState_t stateOffsetBits; + FSE_CState_t stateLitLength; + + RETURN_ERROR_IF( + ERR_isError(BIT_initCStream(&blockStream, dst, dstCapacity)), + dstSize_tooSmall, "not enough space remaining"); + DEBUGLOG(6, "available space for bitstream : %i (dstCapacity=%u)", + (int)(blockStream.endPtr - blockStream.startPtr), + (unsigned)dstCapacity); + + /* first symbols */ + FSE_initCState2(&stateMatchLength, CTable_MatchLength, mlCodeTable[nbSeq-1]); + FSE_initCState2(&stateOffsetBits, CTable_OffsetBits, ofCodeTable[nbSeq-1]); + FSE_initCState2(&stateLitLength, CTable_LitLength, llCodeTable[nbSeq-1]); + BIT_addBits(&blockStream, sequences[nbSeq-1].litLength, LL_bits[llCodeTable[nbSeq-1]]); + if (MEM_32bits()) BIT_flushBits(&blockStream); + BIT_addBits(&blockStream, sequences[nbSeq-1].mlBase, ML_bits[mlCodeTable[nbSeq-1]]); + if (MEM_32bits()) BIT_flushBits(&blockStream); + if (longOffsets) { + U32 const ofBits = ofCodeTable[nbSeq-1]; + unsigned const extraBits = ofBits - MIN(ofBits, STREAM_ACCUMULATOR_MIN-1); + if (extraBits) { + BIT_addBits(&blockStream, sequences[nbSeq-1].offBase, extraBits); + BIT_flushBits(&blockStream); + } + BIT_addBits(&blockStream, sequences[nbSeq-1].offBase >> extraBits, + ofBits - extraBits); + } else { + BIT_addBits(&blockStream, sequences[nbSeq-1].offBase, ofCodeTable[nbSeq-1]); + } + BIT_flushBits(&blockStream); + + { size_t n; + for (n=nbSeq-2 ; n= 64-7-(LLFSELog+MLFSELog+OffFSELog))) + BIT_flushBits(&blockStream); /* (7)*/ + BIT_addBits(&blockStream, sequences[n].litLength, llBits); + if (MEM_32bits() && ((llBits+mlBits)>24)) BIT_flushBits(&blockStream); + BIT_addBits(&blockStream, sequences[n].mlBase, mlBits); + if (MEM_32bits() || (ofBits+mlBits+llBits > 56)) BIT_flushBits(&blockStream); + if (longOffsets) { + unsigned const extraBits = ofBits - MIN(ofBits, STREAM_ACCUMULATOR_MIN-1); + if (extraBits) { + BIT_addBits(&blockStream, sequences[n].offBase, extraBits); + BIT_flushBits(&blockStream); /* (7)*/ + } + BIT_addBits(&blockStream, sequences[n].offBase >> extraBits, + ofBits - extraBits); /* 31 */ + } else { + BIT_addBits(&blockStream, sequences[n].offBase, ofBits); /* 31 */ + } + BIT_flushBits(&blockStream); /* (7)*/ + DEBUGLOG(7, "remaining space : %i", (int)(blockStream.endPtr - blockStream.ptr)); + } } + + DEBUGLOG(6, "ZSTD_encodeSequences: flushing ML state with %u bits", stateMatchLength.stateLog); + FSE_flushCState(&blockStream, &stateMatchLength); + DEBUGLOG(6, "ZSTD_encodeSequences: flushing Off state with %u bits", stateOffsetBits.stateLog); + FSE_flushCState(&blockStream, &stateOffsetBits); + DEBUGLOG(6, "ZSTD_encodeSequences: flushing LL state with %u bits", stateLitLength.stateLog); + FSE_flushCState(&blockStream, &stateLitLength); + + { size_t const streamSize = BIT_closeCStream(&blockStream); + RETURN_ERROR_IF(streamSize==0, dstSize_tooSmall, "not enough space"); + return streamSize; + } +} + +static size_t +ZSTD_encodeSequences_default( + void* dst, size_t dstCapacity, + FSE_CTable const* CTable_MatchLength, BYTE const* mlCodeTable, + FSE_CTable const* CTable_OffsetBits, BYTE const* ofCodeTable, + FSE_CTable const* CTable_LitLength, BYTE const* llCodeTable, + seqDef const* sequences, size_t nbSeq, int longOffsets) +{ + return ZSTD_encodeSequences_body(dst, dstCapacity, + CTable_MatchLength, mlCodeTable, + CTable_OffsetBits, ofCodeTable, + CTable_LitLength, llCodeTable, + sequences, nbSeq, longOffsets); +} + + +#if DYNAMIC_BMI2 + +static BMI2_TARGET_ATTRIBUTE size_t +ZSTD_encodeSequences_bmi2( + void* dst, size_t dstCapacity, + FSE_CTable const* CTable_MatchLength, BYTE const* mlCodeTable, + FSE_CTable const* CTable_OffsetBits, BYTE const* ofCodeTable, + FSE_CTable const* CTable_LitLength, BYTE const* llCodeTable, + seqDef const* sequences, size_t nbSeq, int longOffsets) +{ + return ZSTD_encodeSequences_body(dst, dstCapacity, + CTable_MatchLength, mlCodeTable, + CTable_OffsetBits, ofCodeTable, + CTable_LitLength, llCodeTable, + sequences, nbSeq, longOffsets); +} + +#endif + +size_t ZSTD_encodeSequences( + void* dst, size_t dstCapacity, + FSE_CTable const* CTable_MatchLength, BYTE const* mlCodeTable, + FSE_CTable const* CTable_OffsetBits, BYTE const* ofCodeTable, + FSE_CTable const* CTable_LitLength, BYTE const* llCodeTable, + seqDef const* sequences, size_t nbSeq, int longOffsets, int bmi2) +{ + DEBUGLOG(5, "ZSTD_encodeSequences: dstCapacity = %u", (unsigned)dstCapacity); +#if DYNAMIC_BMI2 + if (bmi2) { + return ZSTD_encodeSequences_bmi2(dst, dstCapacity, + CTable_MatchLength, mlCodeTable, + CTable_OffsetBits, ofCodeTable, + CTable_LitLength, llCodeTable, + sequences, nbSeq, longOffsets); + } +#endif + (void)bmi2; + return ZSTD_encodeSequences_default(dst, dstCapacity, + CTable_MatchLength, mlCodeTable, + CTable_OffsetBits, ofCodeTable, + CTable_LitLength, llCodeTable, + sequences, nbSeq, longOffsets); +} diff --git a/deps/zstd/lib/compress/zstd_compress_sequences.h b/deps/zstd/lib/compress/zstd_compress_sequences.h new file mode 100644 index 00000000000000..4a3a05da948442 --- /dev/null +++ b/deps/zstd/lib/compress/zstd_compress_sequences.h @@ -0,0 +1,54 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_COMPRESS_SEQUENCES_H +#define ZSTD_COMPRESS_SEQUENCES_H + +#include "../common/fse.h" /* FSE_repeat, FSE_CTable */ +#include "../common/zstd_internal.h" /* symbolEncodingType_e, ZSTD_strategy */ + +typedef enum { + ZSTD_defaultDisallowed = 0, + ZSTD_defaultAllowed = 1 +} ZSTD_defaultPolicy_e; + +symbolEncodingType_e +ZSTD_selectEncodingType( + FSE_repeat* repeatMode, unsigned const* count, unsigned const max, + size_t const mostFrequent, size_t nbSeq, unsigned const FSELog, + FSE_CTable const* prevCTable, + short const* defaultNorm, U32 defaultNormLog, + ZSTD_defaultPolicy_e const isDefaultAllowed, + ZSTD_strategy const strategy); + +size_t +ZSTD_buildCTable(void* dst, size_t dstCapacity, + FSE_CTable* nextCTable, U32 FSELog, symbolEncodingType_e type, + unsigned* count, U32 max, + const BYTE* codeTable, size_t nbSeq, + const S16* defaultNorm, U32 defaultNormLog, U32 defaultMax, + const FSE_CTable* prevCTable, size_t prevCTableSize, + void* entropyWorkspace, size_t entropyWorkspaceSize); + +size_t ZSTD_encodeSequences( + void* dst, size_t dstCapacity, + FSE_CTable const* CTable_MatchLength, BYTE const* mlCodeTable, + FSE_CTable const* CTable_OffsetBits, BYTE const* ofCodeTable, + FSE_CTable const* CTable_LitLength, BYTE const* llCodeTable, + seqDef const* sequences, size_t nbSeq, int longOffsets, int bmi2); + +size_t ZSTD_fseBitCost( + FSE_CTable const* ctable, + unsigned const* count, + unsigned const max); + +size_t ZSTD_crossEntropyCost(short const* norm, unsigned accuracyLog, + unsigned const* count, unsigned const max); +#endif /* ZSTD_COMPRESS_SEQUENCES_H */ diff --git a/deps/zstd/lib/compress/zstd_compress_superblock.c b/deps/zstd/lib/compress/zstd_compress_superblock.c new file mode 100644 index 00000000000000..628a2dccd090d0 --- /dev/null +++ b/deps/zstd/lib/compress/zstd_compress_superblock.c @@ -0,0 +1,688 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + /*-************************************* + * Dependencies + ***************************************/ +#include "zstd_compress_superblock.h" + +#include "../common/zstd_internal.h" /* ZSTD_getSequenceLength */ +#include "hist.h" /* HIST_countFast_wksp */ +#include "zstd_compress_internal.h" /* ZSTD_[huf|fse|entropy]CTablesMetadata_t */ +#include "zstd_compress_sequences.h" +#include "zstd_compress_literals.h" + +/** ZSTD_compressSubBlock_literal() : + * Compresses literals section for a sub-block. + * When we have to write the Huffman table we will sometimes choose a header + * size larger than necessary. This is because we have to pick the header size + * before we know the table size + compressed size, so we have a bound on the + * table size. If we guessed incorrectly, we fall back to uncompressed literals. + * + * We write the header when writeEntropy=1 and set entropyWritten=1 when we succeeded + * in writing the header, otherwise it is set to 0. + * + * hufMetadata->hType has literals block type info. + * If it is set_basic, all sub-blocks literals section will be Raw_Literals_Block. + * If it is set_rle, all sub-blocks literals section will be RLE_Literals_Block. + * If it is set_compressed, first sub-block's literals section will be Compressed_Literals_Block + * If it is set_compressed, first sub-block's literals section will be Treeless_Literals_Block + * and the following sub-blocks' literals sections will be Treeless_Literals_Block. + * @return : compressed size of literals section of a sub-block + * Or 0 if unable to compress. + * Or error code */ +static size_t +ZSTD_compressSubBlock_literal(const HUF_CElt* hufTable, + const ZSTD_hufCTablesMetadata_t* hufMetadata, + const BYTE* literals, size_t litSize, + void* dst, size_t dstSize, + const int bmi2, int writeEntropy, int* entropyWritten) +{ + size_t const header = writeEntropy ? 200 : 0; + size_t const lhSize = 3 + (litSize >= (1 KB - header)) + (litSize >= (16 KB - header)); + BYTE* const ostart = (BYTE*)dst; + BYTE* const oend = ostart + dstSize; + BYTE* op = ostart + lhSize; + U32 const singleStream = lhSize == 3; + symbolEncodingType_e hType = writeEntropy ? hufMetadata->hType : set_repeat; + size_t cLitSize = 0; + + DEBUGLOG(5, "ZSTD_compressSubBlock_literal (litSize=%zu, lhSize=%zu, writeEntropy=%d)", litSize, lhSize, writeEntropy); + + *entropyWritten = 0; + if (litSize == 0 || hufMetadata->hType == set_basic) { + DEBUGLOG(5, "ZSTD_compressSubBlock_literal using raw literal"); + return ZSTD_noCompressLiterals(dst, dstSize, literals, litSize); + } else if (hufMetadata->hType == set_rle) { + DEBUGLOG(5, "ZSTD_compressSubBlock_literal using rle literal"); + return ZSTD_compressRleLiteralsBlock(dst, dstSize, literals, litSize); + } + + assert(litSize > 0); + assert(hufMetadata->hType == set_compressed || hufMetadata->hType == set_repeat); + + if (writeEntropy && hufMetadata->hType == set_compressed) { + ZSTD_memcpy(op, hufMetadata->hufDesBuffer, hufMetadata->hufDesSize); + op += hufMetadata->hufDesSize; + cLitSize += hufMetadata->hufDesSize; + DEBUGLOG(5, "ZSTD_compressSubBlock_literal (hSize=%zu)", hufMetadata->hufDesSize); + } + + { int const flags = bmi2 ? HUF_flags_bmi2 : 0; + const size_t cSize = singleStream ? HUF_compress1X_usingCTable(op, (size_t)(oend-op), literals, litSize, hufTable, flags) + : HUF_compress4X_usingCTable(op, (size_t)(oend-op), literals, litSize, hufTable, flags); + op += cSize; + cLitSize += cSize; + if (cSize == 0 || ERR_isError(cSize)) { + DEBUGLOG(5, "Failed to write entropy tables %s", ZSTD_getErrorName(cSize)); + return 0; + } + /* If we expand and we aren't writing a header then emit uncompressed */ + if (!writeEntropy && cLitSize >= litSize) { + DEBUGLOG(5, "ZSTD_compressSubBlock_literal using raw literal because uncompressible"); + return ZSTD_noCompressLiterals(dst, dstSize, literals, litSize); + } + /* If we are writing headers then allow expansion that doesn't change our header size. */ + if (lhSize < (size_t)(3 + (cLitSize >= 1 KB) + (cLitSize >= 16 KB))) { + assert(cLitSize > litSize); + DEBUGLOG(5, "Literals expanded beyond allowed header size"); + return ZSTD_noCompressLiterals(dst, dstSize, literals, litSize); + } + DEBUGLOG(5, "ZSTD_compressSubBlock_literal (cSize=%zu)", cSize); + } + + /* Build header */ + switch(lhSize) + { + case 3: /* 2 - 2 - 10 - 10 */ + { U32 const lhc = hType + ((U32)(!singleStream) << 2) + ((U32)litSize<<4) + ((U32)cLitSize<<14); + MEM_writeLE24(ostart, lhc); + break; + } + case 4: /* 2 - 2 - 14 - 14 */ + { U32 const lhc = hType + (2 << 2) + ((U32)litSize<<4) + ((U32)cLitSize<<18); + MEM_writeLE32(ostart, lhc); + break; + } + case 5: /* 2 - 2 - 18 - 18 */ + { U32 const lhc = hType + (3 << 2) + ((U32)litSize<<4) + ((U32)cLitSize<<22); + MEM_writeLE32(ostart, lhc); + ostart[4] = (BYTE)(cLitSize >> 10); + break; + } + default: /* not possible : lhSize is {3,4,5} */ + assert(0); + } + *entropyWritten = 1; + DEBUGLOG(5, "Compressed literals: %u -> %u", (U32)litSize, (U32)(op-ostart)); + return (size_t)(op-ostart); +} + +static size_t +ZSTD_seqDecompressedSize(seqStore_t const* seqStore, + const seqDef* sequences, size_t nbSeqs, + size_t litSize, int lastSubBlock) +{ + size_t matchLengthSum = 0; + size_t litLengthSum = 0; + size_t n; + for (n=0; nllType, fseMetadata->ofType, and fseMetadata->mlType have + * symbol compression modes for the super-block. + * The first successfully compressed block will have these in its header. + * We set entropyWritten=1 when we succeed in compressing the sequences. + * The following sub-blocks will always have repeat mode. + * @return : compressed size of sequences section of a sub-block + * Or 0 if it is unable to compress + * Or error code. */ +static size_t +ZSTD_compressSubBlock_sequences(const ZSTD_fseCTables_t* fseTables, + const ZSTD_fseCTablesMetadata_t* fseMetadata, + const seqDef* sequences, size_t nbSeq, + const BYTE* llCode, const BYTE* mlCode, const BYTE* ofCode, + const ZSTD_CCtx_params* cctxParams, + void* dst, size_t dstCapacity, + const int bmi2, int writeEntropy, int* entropyWritten) +{ + const int longOffsets = cctxParams->cParams.windowLog > STREAM_ACCUMULATOR_MIN; + BYTE* const ostart = (BYTE*)dst; + BYTE* const oend = ostart + dstCapacity; + BYTE* op = ostart; + BYTE* seqHead; + + DEBUGLOG(5, "ZSTD_compressSubBlock_sequences (nbSeq=%zu, writeEntropy=%d, longOffsets=%d)", nbSeq, writeEntropy, longOffsets); + + *entropyWritten = 0; + /* Sequences Header */ + RETURN_ERROR_IF((oend-op) < 3 /*max nbSeq Size*/ + 1 /*seqHead*/, + dstSize_tooSmall, ""); + if (nbSeq < 128) + *op++ = (BYTE)nbSeq; + else if (nbSeq < LONGNBSEQ) + op[0] = (BYTE)((nbSeq>>8) + 0x80), op[1] = (BYTE)nbSeq, op+=2; + else + op[0]=0xFF, MEM_writeLE16(op+1, (U16)(nbSeq - LONGNBSEQ)), op+=3; + if (nbSeq==0) { + return (size_t)(op - ostart); + } + + /* seqHead : flags for FSE encoding type */ + seqHead = op++; + + DEBUGLOG(5, "ZSTD_compressSubBlock_sequences (seqHeadSize=%u)", (unsigned)(op-ostart)); + + if (writeEntropy) { + const U32 LLtype = fseMetadata->llType; + const U32 Offtype = fseMetadata->ofType; + const U32 MLtype = fseMetadata->mlType; + DEBUGLOG(5, "ZSTD_compressSubBlock_sequences (fseTablesSize=%zu)", fseMetadata->fseTablesSize); + *seqHead = (BYTE)((LLtype<<6) + (Offtype<<4) + (MLtype<<2)); + ZSTD_memcpy(op, fseMetadata->fseTablesBuffer, fseMetadata->fseTablesSize); + op += fseMetadata->fseTablesSize; + } else { + const U32 repeat = set_repeat; + *seqHead = (BYTE)((repeat<<6) + (repeat<<4) + (repeat<<2)); + } + + { size_t const bitstreamSize = ZSTD_encodeSequences( + op, (size_t)(oend - op), + fseTables->matchlengthCTable, mlCode, + fseTables->offcodeCTable, ofCode, + fseTables->litlengthCTable, llCode, + sequences, nbSeq, + longOffsets, bmi2); + FORWARD_IF_ERROR(bitstreamSize, "ZSTD_encodeSequences failed"); + op += bitstreamSize; + /* zstd versions <= 1.3.4 mistakenly report corruption when + * FSE_readNCount() receives a buffer < 4 bytes. + * Fixed by https://github.com/facebook/zstd/pull/1146. + * This can happen when the last set_compressed table present is 2 + * bytes and the bitstream is only one byte. + * In this exceedingly rare case, we will simply emit an uncompressed + * block, since it isn't worth optimizing. + */ +#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION + if (writeEntropy && fseMetadata->lastCountSize && fseMetadata->lastCountSize + bitstreamSize < 4) { + /* NCountSize >= 2 && bitstreamSize > 0 ==> lastCountSize == 3 */ + assert(fseMetadata->lastCountSize + bitstreamSize == 3); + DEBUGLOG(5, "Avoiding bug in zstd decoder in versions <= 1.3.4 by " + "emitting an uncompressed block."); + return 0; + } +#endif + DEBUGLOG(5, "ZSTD_compressSubBlock_sequences (bitstreamSize=%zu)", bitstreamSize); + } + + /* zstd versions <= 1.4.0 mistakenly report error when + * sequences section body size is less than 3 bytes. + * Fixed by https://github.com/facebook/zstd/pull/1664. + * This can happen when the previous sequences section block is compressed + * with rle mode and the current block's sequences section is compressed + * with repeat mode where sequences section body size can be 1 byte. + */ +#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION + if (op-seqHead < 4) { + DEBUGLOG(5, "Avoiding bug in zstd decoder in versions <= 1.4.0 by emitting " + "an uncompressed block when sequences are < 4 bytes"); + return 0; + } +#endif + + *entropyWritten = 1; + return (size_t)(op - ostart); +} + +/** ZSTD_compressSubBlock() : + * Compresses a single sub-block. + * @return : compressed size of the sub-block + * Or 0 if it failed to compress. */ +static size_t ZSTD_compressSubBlock(const ZSTD_entropyCTables_t* entropy, + const ZSTD_entropyCTablesMetadata_t* entropyMetadata, + const seqDef* sequences, size_t nbSeq, + const BYTE* literals, size_t litSize, + const BYTE* llCode, const BYTE* mlCode, const BYTE* ofCode, + const ZSTD_CCtx_params* cctxParams, + void* dst, size_t dstCapacity, + const int bmi2, + int writeLitEntropy, int writeSeqEntropy, + int* litEntropyWritten, int* seqEntropyWritten, + U32 lastBlock) +{ + BYTE* const ostart = (BYTE*)dst; + BYTE* const oend = ostart + dstCapacity; + BYTE* op = ostart + ZSTD_blockHeaderSize; + DEBUGLOG(5, "ZSTD_compressSubBlock (litSize=%zu, nbSeq=%zu, writeLitEntropy=%d, writeSeqEntropy=%d, lastBlock=%d)", + litSize, nbSeq, writeLitEntropy, writeSeqEntropy, lastBlock); + { size_t cLitSize = ZSTD_compressSubBlock_literal((const HUF_CElt*)entropy->huf.CTable, + &entropyMetadata->hufMetadata, literals, litSize, + op, (size_t)(oend-op), + bmi2, writeLitEntropy, litEntropyWritten); + FORWARD_IF_ERROR(cLitSize, "ZSTD_compressSubBlock_literal failed"); + if (cLitSize == 0) return 0; + op += cLitSize; + } + { size_t cSeqSize = ZSTD_compressSubBlock_sequences(&entropy->fse, + &entropyMetadata->fseMetadata, + sequences, nbSeq, + llCode, mlCode, ofCode, + cctxParams, + op, (size_t)(oend-op), + bmi2, writeSeqEntropy, seqEntropyWritten); + FORWARD_IF_ERROR(cSeqSize, "ZSTD_compressSubBlock_sequences failed"); + if (cSeqSize == 0) return 0; + op += cSeqSize; + } + /* Write block header */ + { size_t cSize = (size_t)(op-ostart) - ZSTD_blockHeaderSize; + U32 const cBlockHeader24 = lastBlock + (((U32)bt_compressed)<<1) + (U32)(cSize << 3); + MEM_writeLE24(ostart, cBlockHeader24); + } + return (size_t)(op-ostart); +} + +static size_t ZSTD_estimateSubBlockSize_literal(const BYTE* literals, size_t litSize, + const ZSTD_hufCTables_t* huf, + const ZSTD_hufCTablesMetadata_t* hufMetadata, + void* workspace, size_t wkspSize, + int writeEntropy) +{ + unsigned* const countWksp = (unsigned*)workspace; + unsigned maxSymbolValue = 255; + size_t literalSectionHeaderSize = 3; /* Use hard coded size of 3 bytes */ + + if (hufMetadata->hType == set_basic) return litSize; + else if (hufMetadata->hType == set_rle) return 1; + else if (hufMetadata->hType == set_compressed || hufMetadata->hType == set_repeat) { + size_t const largest = HIST_count_wksp (countWksp, &maxSymbolValue, (const BYTE*)literals, litSize, workspace, wkspSize); + if (ZSTD_isError(largest)) return litSize; + { size_t cLitSizeEstimate = HUF_estimateCompressedSize((const HUF_CElt*)huf->CTable, countWksp, maxSymbolValue); + if (writeEntropy) cLitSizeEstimate += hufMetadata->hufDesSize; + return cLitSizeEstimate + literalSectionHeaderSize; + } } + assert(0); /* impossible */ + return 0; +} + +static size_t ZSTD_estimateSubBlockSize_symbolType(symbolEncodingType_e type, + const BYTE* codeTable, unsigned maxCode, + size_t nbSeq, const FSE_CTable* fseCTable, + const U8* additionalBits, + short const* defaultNorm, U32 defaultNormLog, U32 defaultMax, + void* workspace, size_t wkspSize) +{ + unsigned* const countWksp = (unsigned*)workspace; + const BYTE* ctp = codeTable; + const BYTE* const ctStart = ctp; + const BYTE* const ctEnd = ctStart + nbSeq; + size_t cSymbolTypeSizeEstimateInBits = 0; + unsigned max = maxCode; + + HIST_countFast_wksp(countWksp, &max, codeTable, nbSeq, workspace, wkspSize); /* can't fail */ + if (type == set_basic) { + /* We selected this encoding type, so it must be valid. */ + assert(max <= defaultMax); + cSymbolTypeSizeEstimateInBits = max <= defaultMax + ? ZSTD_crossEntropyCost(defaultNorm, defaultNormLog, countWksp, max) + : ERROR(GENERIC); + } else if (type == set_rle) { + cSymbolTypeSizeEstimateInBits = 0; + } else if (type == set_compressed || type == set_repeat) { + cSymbolTypeSizeEstimateInBits = ZSTD_fseBitCost(fseCTable, countWksp, max); + } + if (ZSTD_isError(cSymbolTypeSizeEstimateInBits)) return nbSeq * 10; + while (ctp < ctEnd) { + if (additionalBits) cSymbolTypeSizeEstimateInBits += additionalBits[*ctp]; + else cSymbolTypeSizeEstimateInBits += *ctp; /* for offset, offset code is also the number of additional bits */ + ctp++; + } + return cSymbolTypeSizeEstimateInBits / 8; +} + +static size_t ZSTD_estimateSubBlockSize_sequences(const BYTE* ofCodeTable, + const BYTE* llCodeTable, + const BYTE* mlCodeTable, + size_t nbSeq, + const ZSTD_fseCTables_t* fseTables, + const ZSTD_fseCTablesMetadata_t* fseMetadata, + void* workspace, size_t wkspSize, + int writeEntropy) +{ + size_t const sequencesSectionHeaderSize = 3; /* Use hard coded size of 3 bytes */ + size_t cSeqSizeEstimate = 0; + if (nbSeq == 0) return sequencesSectionHeaderSize; + cSeqSizeEstimate += ZSTD_estimateSubBlockSize_symbolType(fseMetadata->ofType, ofCodeTable, MaxOff, + nbSeq, fseTables->offcodeCTable, NULL, + OF_defaultNorm, OF_defaultNormLog, DefaultMaxOff, + workspace, wkspSize); + cSeqSizeEstimate += ZSTD_estimateSubBlockSize_symbolType(fseMetadata->llType, llCodeTable, MaxLL, + nbSeq, fseTables->litlengthCTable, LL_bits, + LL_defaultNorm, LL_defaultNormLog, MaxLL, + workspace, wkspSize); + cSeqSizeEstimate += ZSTD_estimateSubBlockSize_symbolType(fseMetadata->mlType, mlCodeTable, MaxML, + nbSeq, fseTables->matchlengthCTable, ML_bits, + ML_defaultNorm, ML_defaultNormLog, MaxML, + workspace, wkspSize); + if (writeEntropy) cSeqSizeEstimate += fseMetadata->fseTablesSize; + return cSeqSizeEstimate + sequencesSectionHeaderSize; +} + +typedef struct { + size_t estLitSize; + size_t estBlockSize; +} EstimatedBlockSize; +static EstimatedBlockSize ZSTD_estimateSubBlockSize(const BYTE* literals, size_t litSize, + const BYTE* ofCodeTable, + const BYTE* llCodeTable, + const BYTE* mlCodeTable, + size_t nbSeq, + const ZSTD_entropyCTables_t* entropy, + const ZSTD_entropyCTablesMetadata_t* entropyMetadata, + void* workspace, size_t wkspSize, + int writeLitEntropy, int writeSeqEntropy) +{ + EstimatedBlockSize ebs; + ebs.estLitSize = ZSTD_estimateSubBlockSize_literal(literals, litSize, + &entropy->huf, &entropyMetadata->hufMetadata, + workspace, wkspSize, writeLitEntropy); + ebs.estBlockSize = ZSTD_estimateSubBlockSize_sequences(ofCodeTable, llCodeTable, mlCodeTable, + nbSeq, &entropy->fse, &entropyMetadata->fseMetadata, + workspace, wkspSize, writeSeqEntropy); + ebs.estBlockSize += ebs.estLitSize + ZSTD_blockHeaderSize; + return ebs; +} + +static int ZSTD_needSequenceEntropyTables(ZSTD_fseCTablesMetadata_t const* fseMetadata) +{ + if (fseMetadata->llType == set_compressed || fseMetadata->llType == set_rle) + return 1; + if (fseMetadata->mlType == set_compressed || fseMetadata->mlType == set_rle) + return 1; + if (fseMetadata->ofType == set_compressed || fseMetadata->ofType == set_rle) + return 1; + return 0; +} + +static size_t countLiterals(seqStore_t const* seqStore, const seqDef* sp, size_t seqCount) +{ + size_t n, total = 0; + assert(sp != NULL); + for (n=0; n %zu bytes", seqCount, (const void*)sp, total); + return total; +} + +#define BYTESCALE 256 + +static size_t sizeBlockSequences(const seqDef* sp, size_t nbSeqs, + size_t targetBudget, size_t avgLitCost, size_t avgSeqCost, + int firstSubBlock) +{ + size_t n, budget = 0, inSize=0; + /* entropy headers */ + size_t const headerSize = (size_t)firstSubBlock * 120 * BYTESCALE; /* generous estimate */ + assert(firstSubBlock==0 || firstSubBlock==1); + budget += headerSize; + + /* first sequence => at least one sequence*/ + budget += sp[0].litLength * avgLitCost + avgSeqCost; + if (budget > targetBudget) return 1; + inSize = sp[0].litLength + (sp[0].mlBase+MINMATCH); + + /* loop over sequences */ + for (n=1; n targetBudget) + /* though continue to expand until the sub-block is deemed compressible */ + && (budget < inSize * BYTESCALE) ) + break; + } + + return n; +} + +/** ZSTD_compressSubBlock_multi() : + * Breaks super-block into multiple sub-blocks and compresses them. + * Entropy will be written into the first block. + * The following blocks use repeat_mode to compress. + * Sub-blocks are all compressed, except the last one when beneficial. + * @return : compressed size of the super block (which features multiple ZSTD blocks) + * or 0 if it failed to compress. */ +static size_t ZSTD_compressSubBlock_multi(const seqStore_t* seqStorePtr, + const ZSTD_compressedBlockState_t* prevCBlock, + ZSTD_compressedBlockState_t* nextCBlock, + const ZSTD_entropyCTablesMetadata_t* entropyMetadata, + const ZSTD_CCtx_params* cctxParams, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + const int bmi2, U32 lastBlock, + void* workspace, size_t wkspSize) +{ + const seqDef* const sstart = seqStorePtr->sequencesStart; + const seqDef* const send = seqStorePtr->sequences; + const seqDef* sp = sstart; /* tracks progresses within seqStorePtr->sequences */ + size_t const nbSeqs = (size_t)(send - sstart); + const BYTE* const lstart = seqStorePtr->litStart; + const BYTE* const lend = seqStorePtr->lit; + const BYTE* lp = lstart; + size_t const nbLiterals = (size_t)(lend - lstart); + BYTE const* ip = (BYTE const*)src; + BYTE const* const iend = ip + srcSize; + BYTE* const ostart = (BYTE*)dst; + BYTE* const oend = ostart + dstCapacity; + BYTE* op = ostart; + const BYTE* llCodePtr = seqStorePtr->llCode; + const BYTE* mlCodePtr = seqStorePtr->mlCode; + const BYTE* ofCodePtr = seqStorePtr->ofCode; + size_t const minTarget = ZSTD_TARGETCBLOCKSIZE_MIN; /* enforce minimum size, to reduce undesirable side effects */ + size_t const targetCBlockSize = MAX(minTarget, cctxParams->targetCBlockSize); + int writeLitEntropy = (entropyMetadata->hufMetadata.hType == set_compressed); + int writeSeqEntropy = 1; + + DEBUGLOG(5, "ZSTD_compressSubBlock_multi (srcSize=%u, litSize=%u, nbSeq=%u)", + (unsigned)srcSize, (unsigned)(lend-lstart), (unsigned)(send-sstart)); + + /* let's start by a general estimation for the full block */ + if (nbSeqs > 0) { + EstimatedBlockSize const ebs = + ZSTD_estimateSubBlockSize(lp, nbLiterals, + ofCodePtr, llCodePtr, mlCodePtr, nbSeqs, + &nextCBlock->entropy, entropyMetadata, + workspace, wkspSize, + writeLitEntropy, writeSeqEntropy); + /* quick estimation */ + size_t const avgLitCost = nbLiterals ? (ebs.estLitSize * BYTESCALE) / nbLiterals : BYTESCALE; + size_t const avgSeqCost = ((ebs.estBlockSize - ebs.estLitSize) * BYTESCALE) / nbSeqs; + const size_t nbSubBlocks = MAX((ebs.estBlockSize + (targetCBlockSize/2)) / targetCBlockSize, 1); + size_t n, avgBlockBudget, blockBudgetSupp=0; + avgBlockBudget = (ebs.estBlockSize * BYTESCALE) / nbSubBlocks; + DEBUGLOG(5, "estimated fullblock size=%u bytes ; avgLitCost=%.2f ; avgSeqCost=%.2f ; targetCBlockSize=%u, nbSubBlocks=%u ; avgBlockBudget=%.0f bytes", + (unsigned)ebs.estBlockSize, (double)avgLitCost/BYTESCALE, (double)avgSeqCost/BYTESCALE, + (unsigned)targetCBlockSize, (unsigned)nbSubBlocks, (double)avgBlockBudget/BYTESCALE); + /* simplification: if estimates states that the full superblock doesn't compress, just bail out immediately + * this will result in the production of a single uncompressed block covering @srcSize.*/ + if (ebs.estBlockSize > srcSize) return 0; + + /* compress and write sub-blocks */ + assert(nbSubBlocks>0); + for (n=0; n < nbSubBlocks-1; n++) { + /* determine nb of sequences for current sub-block + nbLiterals from next sequence */ + size_t const seqCount = sizeBlockSequences(sp, (size_t)(send-sp), + avgBlockBudget + blockBudgetSupp, avgLitCost, avgSeqCost, n==0); + /* if reached last sequence : break to last sub-block (simplification) */ + assert(seqCount <= (size_t)(send-sp)); + if (sp + seqCount == send) break; + assert(seqCount > 0); + /* compress sub-block */ + { int litEntropyWritten = 0; + int seqEntropyWritten = 0; + size_t litSize = countLiterals(seqStorePtr, sp, seqCount); + const size_t decompressedSize = + ZSTD_seqDecompressedSize(seqStorePtr, sp, seqCount, litSize, 0); + size_t const cSize = ZSTD_compressSubBlock(&nextCBlock->entropy, entropyMetadata, + sp, seqCount, + lp, litSize, + llCodePtr, mlCodePtr, ofCodePtr, + cctxParams, + op, (size_t)(oend-op), + bmi2, writeLitEntropy, writeSeqEntropy, + &litEntropyWritten, &seqEntropyWritten, + 0); + FORWARD_IF_ERROR(cSize, "ZSTD_compressSubBlock failed"); + + /* check compressibility, update state components */ + if (cSize > 0 && cSize < decompressedSize) { + DEBUGLOG(5, "Committed sub-block compressing %u bytes => %u bytes", + (unsigned)decompressedSize, (unsigned)cSize); + assert(ip + decompressedSize <= iend); + ip += decompressedSize; + lp += litSize; + op += cSize; + llCodePtr += seqCount; + mlCodePtr += seqCount; + ofCodePtr += seqCount; + /* Entropy only needs to be written once */ + if (litEntropyWritten) { + writeLitEntropy = 0; + } + if (seqEntropyWritten) { + writeSeqEntropy = 0; + } + sp += seqCount; + blockBudgetSupp = 0; + } } + /* otherwise : do not compress yet, coalesce current sub-block with following one */ + } + } /* if (nbSeqs > 0) */ + + /* write last block */ + DEBUGLOG(5, "Generate last sub-block: %u sequences remaining", (unsigned)(send - sp)); + { int litEntropyWritten = 0; + int seqEntropyWritten = 0; + size_t litSize = (size_t)(lend - lp); + size_t seqCount = (size_t)(send - sp); + const size_t decompressedSize = + ZSTD_seqDecompressedSize(seqStorePtr, sp, seqCount, litSize, 1); + size_t const cSize = ZSTD_compressSubBlock(&nextCBlock->entropy, entropyMetadata, + sp, seqCount, + lp, litSize, + llCodePtr, mlCodePtr, ofCodePtr, + cctxParams, + op, (size_t)(oend-op), + bmi2, writeLitEntropy, writeSeqEntropy, + &litEntropyWritten, &seqEntropyWritten, + lastBlock); + FORWARD_IF_ERROR(cSize, "ZSTD_compressSubBlock failed"); + + /* update pointers, the nb of literals borrowed from next sequence must be preserved */ + if (cSize > 0 && cSize < decompressedSize) { + DEBUGLOG(5, "Last sub-block compressed %u bytes => %u bytes", + (unsigned)decompressedSize, (unsigned)cSize); + assert(ip + decompressedSize <= iend); + ip += decompressedSize; + lp += litSize; + op += cSize; + llCodePtr += seqCount; + mlCodePtr += seqCount; + ofCodePtr += seqCount; + /* Entropy only needs to be written once */ + if (litEntropyWritten) { + writeLitEntropy = 0; + } + if (seqEntropyWritten) { + writeSeqEntropy = 0; + } + sp += seqCount; + } + } + + + if (writeLitEntropy) { + DEBUGLOG(5, "Literal entropy tables were never written"); + ZSTD_memcpy(&nextCBlock->entropy.huf, &prevCBlock->entropy.huf, sizeof(prevCBlock->entropy.huf)); + } + if (writeSeqEntropy && ZSTD_needSequenceEntropyTables(&entropyMetadata->fseMetadata)) { + /* If we haven't written our entropy tables, then we've violated our contract and + * must emit an uncompressed block. + */ + DEBUGLOG(5, "Sequence entropy tables were never written => cancel, emit an uncompressed block"); + return 0; + } + + if (ip < iend) { + /* some data left : last part of the block sent uncompressed */ + size_t const rSize = (size_t)((iend - ip)); + size_t const cSize = ZSTD_noCompressBlock(op, (size_t)(oend - op), ip, rSize, lastBlock); + DEBUGLOG(5, "Generate last uncompressed sub-block of %u bytes", (unsigned)(rSize)); + FORWARD_IF_ERROR(cSize, "ZSTD_noCompressBlock failed"); + assert(cSize != 0); + op += cSize; + /* We have to regenerate the repcodes because we've skipped some sequences */ + if (sp < send) { + const seqDef* seq; + repcodes_t rep; + ZSTD_memcpy(&rep, prevCBlock->rep, sizeof(rep)); + for (seq = sstart; seq < sp; ++seq) { + ZSTD_updateRep(rep.rep, seq->offBase, ZSTD_getSequenceLength(seqStorePtr, seq).litLength == 0); + } + ZSTD_memcpy(nextCBlock->rep, &rep, sizeof(rep)); + } + } + + DEBUGLOG(5, "ZSTD_compressSubBlock_multi compressed all subBlocks: total compressed size = %u", + (unsigned)(op-ostart)); + return (size_t)(op-ostart); +} + +size_t ZSTD_compressSuperBlock(ZSTD_CCtx* zc, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + unsigned lastBlock) +{ + ZSTD_entropyCTablesMetadata_t entropyMetadata; + + FORWARD_IF_ERROR(ZSTD_buildBlockEntropyStats(&zc->seqStore, + &zc->blockState.prevCBlock->entropy, + &zc->blockState.nextCBlock->entropy, + &zc->appliedParams, + &entropyMetadata, + zc->entropyWorkspace, ENTROPY_WORKSPACE_SIZE /* statically allocated in resetCCtx */), ""); + + return ZSTD_compressSubBlock_multi(&zc->seqStore, + zc->blockState.prevCBlock, + zc->blockState.nextCBlock, + &entropyMetadata, + &zc->appliedParams, + dst, dstCapacity, + src, srcSize, + zc->bmi2, lastBlock, + zc->entropyWorkspace, ENTROPY_WORKSPACE_SIZE /* statically allocated in resetCCtx */); +} diff --git a/deps/zstd/lib/compress/zstd_compress_superblock.h b/deps/zstd/lib/compress/zstd_compress_superblock.h new file mode 100644 index 00000000000000..8e494f0d5e6477 --- /dev/null +++ b/deps/zstd/lib/compress/zstd_compress_superblock.h @@ -0,0 +1,32 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_COMPRESS_ADVANCED_H +#define ZSTD_COMPRESS_ADVANCED_H + +/*-************************************* +* Dependencies +***************************************/ + +#include "../zstd.h" /* ZSTD_CCtx */ + +/*-************************************* +* Target Compressed Block Size +***************************************/ + +/* ZSTD_compressSuperBlock() : + * Used to compress a super block when targetCBlockSize is being used. + * The given block will be compressed into multiple sub blocks that are around targetCBlockSize. */ +size_t ZSTD_compressSuperBlock(ZSTD_CCtx* zc, + void* dst, size_t dstCapacity, + void const* src, size_t srcSize, + unsigned lastBlock); + +#endif /* ZSTD_COMPRESS_ADVANCED_H */ diff --git a/deps/zstd/lib/compress/zstd_cwksp.h b/deps/zstd/lib/compress/zstd_cwksp.h new file mode 100644 index 00000000000000..3eddbd334e8c00 --- /dev/null +++ b/deps/zstd/lib/compress/zstd_cwksp.h @@ -0,0 +1,748 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_CWKSP_H +#define ZSTD_CWKSP_H + +/*-************************************* +* Dependencies +***************************************/ +#include "../common/allocations.h" /* ZSTD_customMalloc, ZSTD_customFree */ +#include "../common/zstd_internal.h" +#include "../common/portability_macros.h" + +#if defined (__cplusplus) +extern "C" { +#endif + +/*-************************************* +* Constants +***************************************/ + +/* Since the workspace is effectively its own little malloc implementation / + * arena, when we run under ASAN, we should similarly insert redzones between + * each internal element of the workspace, so ASAN will catch overruns that + * reach outside an object but that stay inside the workspace. + * + * This defines the size of that redzone. + */ +#ifndef ZSTD_CWKSP_ASAN_REDZONE_SIZE +#define ZSTD_CWKSP_ASAN_REDZONE_SIZE 128 +#endif + + +/* Set our tables and aligneds to align by 64 bytes */ +#define ZSTD_CWKSP_ALIGNMENT_BYTES 64 + +/*-************************************* +* Structures +***************************************/ +typedef enum { + ZSTD_cwksp_alloc_objects, + ZSTD_cwksp_alloc_aligned_init_once, + ZSTD_cwksp_alloc_aligned, + ZSTD_cwksp_alloc_buffers +} ZSTD_cwksp_alloc_phase_e; + +/** + * Used to describe whether the workspace is statically allocated (and will not + * necessarily ever be freed), or if it's dynamically allocated and we can + * expect a well-formed caller to free this. + */ +typedef enum { + ZSTD_cwksp_dynamic_alloc, + ZSTD_cwksp_static_alloc +} ZSTD_cwksp_static_alloc_e; + +/** + * Zstd fits all its internal datastructures into a single continuous buffer, + * so that it only needs to perform a single OS allocation (or so that a buffer + * can be provided to it and it can perform no allocations at all). This buffer + * is called the workspace. + * + * Several optimizations complicate that process of allocating memory ranges + * from this workspace for each internal datastructure: + * + * - These different internal datastructures have different setup requirements: + * + * - The static objects need to be cleared once and can then be trivially + * reused for each compression. + * + * - Various buffers don't need to be initialized at all--they are always + * written into before they're read. + * + * - The matchstate tables have a unique requirement that they don't need + * their memory to be totally cleared, but they do need the memory to have + * some bound, i.e., a guarantee that all values in the memory they've been + * allocated is less than some maximum value (which is the starting value + * for the indices that they will then use for compression). When this + * guarantee is provided to them, they can use the memory without any setup + * work. When it can't, they have to clear the area. + * + * - These buffers also have different alignment requirements. + * + * - We would like to reuse the objects in the workspace for multiple + * compressions without having to perform any expensive reallocation or + * reinitialization work. + * + * - We would like to be able to efficiently reuse the workspace across + * multiple compressions **even when the compression parameters change** and + * we need to resize some of the objects (where possible). + * + * To attempt to manage this buffer, given these constraints, the ZSTD_cwksp + * abstraction was created. It works as follows: + * + * Workspace Layout: + * + * [ ... workspace ... ] + * [objects][tables ->] free space [<- buffers][<- aligned][<- init once] + * + * The various objects that live in the workspace are divided into the + * following categories, and are allocated separately: + * + * - Static objects: this is optionally the enclosing ZSTD_CCtx or ZSTD_CDict, + * so that literally everything fits in a single buffer. Note: if present, + * this must be the first object in the workspace, since ZSTD_customFree{CCtx, + * CDict}() rely on a pointer comparison to see whether one or two frees are + * required. + * + * - Fixed size objects: these are fixed-size, fixed-count objects that are + * nonetheless "dynamically" allocated in the workspace so that we can + * control how they're initialized separately from the broader ZSTD_CCtx. + * Examples: + * - Entropy Workspace + * - 2 x ZSTD_compressedBlockState_t + * - CDict dictionary contents + * + * - Tables: these are any of several different datastructures (hash tables, + * chain tables, binary trees) that all respect a common format: they are + * uint32_t arrays, all of whose values are between 0 and (nextSrc - base). + * Their sizes depend on the cparams. These tables are 64-byte aligned. + * + * - Init once: these buffers require to be initialized at least once before + * use. They should be used when we want to skip memory initialization + * while not triggering memory checkers (like Valgrind) when reading from + * from this memory without writing to it first. + * These buffers should be used carefully as they might contain data + * from previous compressions. + * Buffers are aligned to 64 bytes. + * + * - Aligned: these buffers don't require any initialization before they're + * used. The user of the buffer should make sure they write into a buffer + * location before reading from it. + * Buffers are aligned to 64 bytes. + * + * - Buffers: these buffers are used for various purposes that don't require + * any alignment or initialization before they're used. This means they can + * be moved around at no cost for a new compression. + * + * Allocating Memory: + * + * The various types of objects must be allocated in order, so they can be + * correctly packed into the workspace buffer. That order is: + * + * 1. Objects + * 2. Init once / Tables + * 3. Aligned / Tables + * 4. Buffers / Tables + * + * Attempts to reserve objects of different types out of order will fail. + */ +typedef struct { + void* workspace; + void* workspaceEnd; + + void* objectEnd; + void* tableEnd; + void* tableValidEnd; + void* allocStart; + void* initOnceStart; + + BYTE allocFailed; + int workspaceOversizedDuration; + ZSTD_cwksp_alloc_phase_e phase; + ZSTD_cwksp_static_alloc_e isStatic; +} ZSTD_cwksp; + +/*-************************************* +* Functions +***************************************/ + +MEM_STATIC size_t ZSTD_cwksp_available_space(ZSTD_cwksp* ws); +MEM_STATIC void* ZSTD_cwksp_initialAllocStart(ZSTD_cwksp* ws); + +MEM_STATIC void ZSTD_cwksp_assert_internal_consistency(ZSTD_cwksp* ws) { + (void)ws; + assert(ws->workspace <= ws->objectEnd); + assert(ws->objectEnd <= ws->tableEnd); + assert(ws->objectEnd <= ws->tableValidEnd); + assert(ws->tableEnd <= ws->allocStart); + assert(ws->tableValidEnd <= ws->allocStart); + assert(ws->allocStart <= ws->workspaceEnd); + assert(ws->initOnceStart <= ZSTD_cwksp_initialAllocStart(ws)); + assert(ws->workspace <= ws->initOnceStart); +#if ZSTD_MEMORY_SANITIZER + { + intptr_t const offset = __msan_test_shadow(ws->initOnceStart, + (U8*)ZSTD_cwksp_initialAllocStart(ws) - (U8*)ws->initOnceStart); + (void)offset; +#if defined(ZSTD_MSAN_PRINT) + if(offset!=-1) { + __msan_print_shadow((U8*)ws->initOnceStart + offset - 8, 32); + } +#endif + assert(offset==-1); + }; +#endif +} + +/** + * Align must be a power of 2. + */ +MEM_STATIC size_t ZSTD_cwksp_align(size_t size, size_t const align) { + size_t const mask = align - 1; + assert((align & mask) == 0); + return (size + mask) & ~mask; +} + +/** + * Use this to determine how much space in the workspace we will consume to + * allocate this object. (Normally it should be exactly the size of the object, + * but under special conditions, like ASAN, where we pad each object, it might + * be larger.) + * + * Since tables aren't currently redzoned, you don't need to call through this + * to figure out how much space you need for the matchState tables. Everything + * else is though. + * + * Do not use for sizing aligned buffers. Instead, use ZSTD_cwksp_aligned_alloc_size(). + */ +MEM_STATIC size_t ZSTD_cwksp_alloc_size(size_t size) { + if (size == 0) + return 0; +#if ZSTD_ADDRESS_SANITIZER && !defined (ZSTD_ASAN_DONT_POISON_WORKSPACE) + return size + 2 * ZSTD_CWKSP_ASAN_REDZONE_SIZE; +#else + return size; +#endif +} + +/** + * Returns an adjusted alloc size that is the nearest larger multiple of 64 bytes. + * Used to determine the number of bytes required for a given "aligned". + */ +MEM_STATIC size_t ZSTD_cwksp_aligned_alloc_size(size_t size) { + return ZSTD_cwksp_alloc_size(ZSTD_cwksp_align(size, ZSTD_CWKSP_ALIGNMENT_BYTES)); +} + +/** + * Returns the amount of additional space the cwksp must allocate + * for internal purposes (currently only alignment). + */ +MEM_STATIC size_t ZSTD_cwksp_slack_space_required(void) { + /* For alignment, the wksp will always allocate an additional 2*ZSTD_CWKSP_ALIGNMENT_BYTES + * bytes to align the beginning of tables section and end of buffers; + */ + size_t const slackSpace = ZSTD_CWKSP_ALIGNMENT_BYTES * 2; + return slackSpace; +} + + +/** + * Return the number of additional bytes required to align a pointer to the given number of bytes. + * alignBytes must be a power of two. + */ +MEM_STATIC size_t ZSTD_cwksp_bytes_to_align_ptr(void* ptr, const size_t alignBytes) { + size_t const alignBytesMask = alignBytes - 1; + size_t const bytes = (alignBytes - ((size_t)ptr & (alignBytesMask))) & alignBytesMask; + assert((alignBytes & alignBytesMask) == 0); + assert(bytes < alignBytes); + return bytes; +} + +/** + * Returns the initial value for allocStart which is used to determine the position from + * which we can allocate from the end of the workspace. + */ +MEM_STATIC void* ZSTD_cwksp_initialAllocStart(ZSTD_cwksp* ws) { + return (void*)((size_t)ws->workspaceEnd & ~(ZSTD_CWKSP_ALIGNMENT_BYTES-1)); +} + +/** + * Internal function. Do not use directly. + * Reserves the given number of bytes within the aligned/buffer segment of the wksp, + * which counts from the end of the wksp (as opposed to the object/table segment). + * + * Returns a pointer to the beginning of that space. + */ +MEM_STATIC void* +ZSTD_cwksp_reserve_internal_buffer_space(ZSTD_cwksp* ws, size_t const bytes) +{ + void* const alloc = (BYTE*)ws->allocStart - bytes; + void* const bottom = ws->tableEnd; + DEBUGLOG(5, "cwksp: reserving %p %zd bytes, %zd bytes remaining", + alloc, bytes, ZSTD_cwksp_available_space(ws) - bytes); + ZSTD_cwksp_assert_internal_consistency(ws); + assert(alloc >= bottom); + if (alloc < bottom) { + DEBUGLOG(4, "cwksp: alloc failed!"); + ws->allocFailed = 1; + return NULL; + } + /* the area is reserved from the end of wksp. + * If it overlaps with tableValidEnd, it voids guarantees on values' range */ + if (alloc < ws->tableValidEnd) { + ws->tableValidEnd = alloc; + } + ws->allocStart = alloc; + return alloc; +} + +/** + * Moves the cwksp to the next phase, and does any necessary allocations. + * cwksp initialization must necessarily go through each phase in order. + * Returns a 0 on success, or zstd error + */ +MEM_STATIC size_t +ZSTD_cwksp_internal_advance_phase(ZSTD_cwksp* ws, ZSTD_cwksp_alloc_phase_e phase) +{ + assert(phase >= ws->phase); + if (phase > ws->phase) { + /* Going from allocating objects to allocating initOnce / tables */ + if (ws->phase < ZSTD_cwksp_alloc_aligned_init_once && + phase >= ZSTD_cwksp_alloc_aligned_init_once) { + ws->tableValidEnd = ws->objectEnd; + ws->initOnceStart = ZSTD_cwksp_initialAllocStart(ws); + + { /* Align the start of the tables to 64 bytes. Use [0, 63] bytes */ + void *const alloc = ws->objectEnd; + size_t const bytesToAlign = ZSTD_cwksp_bytes_to_align_ptr(alloc, ZSTD_CWKSP_ALIGNMENT_BYTES); + void *const objectEnd = (BYTE *) alloc + bytesToAlign; + DEBUGLOG(5, "reserving table alignment addtl space: %zu", bytesToAlign); + RETURN_ERROR_IF(objectEnd > ws->workspaceEnd, memory_allocation, + "table phase - alignment initial allocation failed!"); + ws->objectEnd = objectEnd; + ws->tableEnd = objectEnd; /* table area starts being empty */ + if (ws->tableValidEnd < ws->tableEnd) { + ws->tableValidEnd = ws->tableEnd; + } + } + } + ws->phase = phase; + ZSTD_cwksp_assert_internal_consistency(ws); + } + return 0; +} + +/** + * Returns whether this object/buffer/etc was allocated in this workspace. + */ +MEM_STATIC int ZSTD_cwksp_owns_buffer(const ZSTD_cwksp* ws, const void* ptr) +{ + return (ptr != NULL) && (ws->workspace <= ptr) && (ptr < ws->workspaceEnd); +} + +/** + * Internal function. Do not use directly. + */ +MEM_STATIC void* +ZSTD_cwksp_reserve_internal(ZSTD_cwksp* ws, size_t bytes, ZSTD_cwksp_alloc_phase_e phase) +{ + void* alloc; + if (ZSTD_isError(ZSTD_cwksp_internal_advance_phase(ws, phase)) || bytes == 0) { + return NULL; + } + +#if ZSTD_ADDRESS_SANITIZER && !defined (ZSTD_ASAN_DONT_POISON_WORKSPACE) + /* over-reserve space */ + bytes += 2 * ZSTD_CWKSP_ASAN_REDZONE_SIZE; +#endif + + alloc = ZSTD_cwksp_reserve_internal_buffer_space(ws, bytes); + +#if ZSTD_ADDRESS_SANITIZER && !defined (ZSTD_ASAN_DONT_POISON_WORKSPACE) + /* Move alloc so there's ZSTD_CWKSP_ASAN_REDZONE_SIZE unused space on + * either size. */ + if (alloc) { + alloc = (BYTE *)alloc + ZSTD_CWKSP_ASAN_REDZONE_SIZE; + if (ws->isStatic == ZSTD_cwksp_dynamic_alloc) { + /* We need to keep the redzone poisoned while unpoisoning the bytes that + * are actually allocated. */ + __asan_unpoison_memory_region(alloc, bytes - 2 * ZSTD_CWKSP_ASAN_REDZONE_SIZE); + } + } +#endif + + return alloc; +} + +/** + * Reserves and returns unaligned memory. + */ +MEM_STATIC BYTE* ZSTD_cwksp_reserve_buffer(ZSTD_cwksp* ws, size_t bytes) +{ + return (BYTE*)ZSTD_cwksp_reserve_internal(ws, bytes, ZSTD_cwksp_alloc_buffers); +} + +/** + * Reserves and returns memory sized on and aligned on ZSTD_CWKSP_ALIGNMENT_BYTES (64 bytes). + * This memory has been initialized at least once in the past. + * This doesn't mean it has been initialized this time, and it might contain data from previous + * operations. + * The main usage is for algorithms that might need read access into uninitialized memory. + * The algorithm must maintain safety under these conditions and must make sure it doesn't + * leak any of the past data (directly or in side channels). + */ +MEM_STATIC void* ZSTD_cwksp_reserve_aligned_init_once(ZSTD_cwksp* ws, size_t bytes) +{ + size_t const alignedBytes = ZSTD_cwksp_align(bytes, ZSTD_CWKSP_ALIGNMENT_BYTES); + void* ptr = ZSTD_cwksp_reserve_internal(ws, alignedBytes, ZSTD_cwksp_alloc_aligned_init_once); + assert(((size_t)ptr & (ZSTD_CWKSP_ALIGNMENT_BYTES-1))== 0); + if(ptr && ptr < ws->initOnceStart) { + /* We assume the memory following the current allocation is either: + * 1. Not usable as initOnce memory (end of workspace) + * 2. Another initOnce buffer that has been allocated before (and so was previously memset) + * 3. An ASAN redzone, in which case we don't want to write on it + * For these reasons it should be fine to not explicitly zero every byte up to ws->initOnceStart. + * Note that we assume here that MSAN and ASAN cannot run in the same time. */ + ZSTD_memset(ptr, 0, MIN((size_t)((U8*)ws->initOnceStart - (U8*)ptr), alignedBytes)); + ws->initOnceStart = ptr; + } +#if ZSTD_MEMORY_SANITIZER + assert(__msan_test_shadow(ptr, bytes) == -1); +#endif + return ptr; +} + +/** + * Reserves and returns memory sized on and aligned on ZSTD_CWKSP_ALIGNMENT_BYTES (64 bytes). + */ +MEM_STATIC void* ZSTD_cwksp_reserve_aligned(ZSTD_cwksp* ws, size_t bytes) +{ + void* ptr = ZSTD_cwksp_reserve_internal(ws, ZSTD_cwksp_align(bytes, ZSTD_CWKSP_ALIGNMENT_BYTES), + ZSTD_cwksp_alloc_aligned); + assert(((size_t)ptr & (ZSTD_CWKSP_ALIGNMENT_BYTES-1))== 0); + return ptr; +} + +/** + * Aligned on 64 bytes. These buffers have the special property that + * their values remain constrained, allowing us to reuse them without + * memset()-ing them. + */ +MEM_STATIC void* ZSTD_cwksp_reserve_table(ZSTD_cwksp* ws, size_t bytes) +{ + const ZSTD_cwksp_alloc_phase_e phase = ZSTD_cwksp_alloc_aligned_init_once; + void* alloc; + void* end; + void* top; + + /* We can only start allocating tables after we are done reserving space for objects at the + * start of the workspace */ + if(ws->phase < phase) { + if (ZSTD_isError(ZSTD_cwksp_internal_advance_phase(ws, phase))) { + return NULL; + } + } + alloc = ws->tableEnd; + end = (BYTE *)alloc + bytes; + top = ws->allocStart; + + DEBUGLOG(5, "cwksp: reserving %p table %zd bytes, %zd bytes remaining", + alloc, bytes, ZSTD_cwksp_available_space(ws) - bytes); + assert((bytes & (sizeof(U32)-1)) == 0); + ZSTD_cwksp_assert_internal_consistency(ws); + assert(end <= top); + if (end > top) { + DEBUGLOG(4, "cwksp: table alloc failed!"); + ws->allocFailed = 1; + return NULL; + } + ws->tableEnd = end; + +#if ZSTD_ADDRESS_SANITIZER && !defined (ZSTD_ASAN_DONT_POISON_WORKSPACE) + if (ws->isStatic == ZSTD_cwksp_dynamic_alloc) { + __asan_unpoison_memory_region(alloc, bytes); + } +#endif + + assert((bytes & (ZSTD_CWKSP_ALIGNMENT_BYTES-1)) == 0); + assert(((size_t)alloc & (ZSTD_CWKSP_ALIGNMENT_BYTES-1))== 0); + return alloc; +} + +/** + * Aligned on sizeof(void*). + * Note : should happen only once, at workspace first initialization + */ +MEM_STATIC void* ZSTD_cwksp_reserve_object(ZSTD_cwksp* ws, size_t bytes) +{ + size_t const roundedBytes = ZSTD_cwksp_align(bytes, sizeof(void*)); + void* alloc = ws->objectEnd; + void* end = (BYTE*)alloc + roundedBytes; + +#if ZSTD_ADDRESS_SANITIZER && !defined (ZSTD_ASAN_DONT_POISON_WORKSPACE) + /* over-reserve space */ + end = (BYTE *)end + 2 * ZSTD_CWKSP_ASAN_REDZONE_SIZE; +#endif + + DEBUGLOG(4, + "cwksp: reserving %p object %zd bytes (rounded to %zd), %zd bytes remaining", + alloc, bytes, roundedBytes, ZSTD_cwksp_available_space(ws) - roundedBytes); + assert((size_t)alloc % ZSTD_ALIGNOF(void*) == 0); + assert(bytes % ZSTD_ALIGNOF(void*) == 0); + ZSTD_cwksp_assert_internal_consistency(ws); + /* we must be in the first phase, no advance is possible */ + if (ws->phase != ZSTD_cwksp_alloc_objects || end > ws->workspaceEnd) { + DEBUGLOG(3, "cwksp: object alloc failed!"); + ws->allocFailed = 1; + return NULL; + } + ws->objectEnd = end; + ws->tableEnd = end; + ws->tableValidEnd = end; + +#if ZSTD_ADDRESS_SANITIZER && !defined (ZSTD_ASAN_DONT_POISON_WORKSPACE) + /* Move alloc so there's ZSTD_CWKSP_ASAN_REDZONE_SIZE unused space on + * either size. */ + alloc = (BYTE*)alloc + ZSTD_CWKSP_ASAN_REDZONE_SIZE; + if (ws->isStatic == ZSTD_cwksp_dynamic_alloc) { + __asan_unpoison_memory_region(alloc, bytes); + } +#endif + + return alloc; +} + +MEM_STATIC void ZSTD_cwksp_mark_tables_dirty(ZSTD_cwksp* ws) +{ + DEBUGLOG(4, "cwksp: ZSTD_cwksp_mark_tables_dirty"); + +#if ZSTD_MEMORY_SANITIZER && !defined (ZSTD_MSAN_DONT_POISON_WORKSPACE) + /* To validate that the table reuse logic is sound, and that we don't + * access table space that we haven't cleaned, we re-"poison" the table + * space every time we mark it dirty. + * Since tableValidEnd space and initOnce space may overlap we don't poison + * the initOnce portion as it break its promise. This means that this poisoning + * check isn't always applied fully. */ + { + size_t size = (BYTE*)ws->tableValidEnd - (BYTE*)ws->objectEnd; + assert(__msan_test_shadow(ws->objectEnd, size) == -1); + if((BYTE*)ws->tableValidEnd < (BYTE*)ws->initOnceStart) { + __msan_poison(ws->objectEnd, size); + } else { + assert(ws->initOnceStart >= ws->objectEnd); + __msan_poison(ws->objectEnd, (BYTE*)ws->initOnceStart - (BYTE*)ws->objectEnd); + } + } +#endif + + assert(ws->tableValidEnd >= ws->objectEnd); + assert(ws->tableValidEnd <= ws->allocStart); + ws->tableValidEnd = ws->objectEnd; + ZSTD_cwksp_assert_internal_consistency(ws); +} + +MEM_STATIC void ZSTD_cwksp_mark_tables_clean(ZSTD_cwksp* ws) { + DEBUGLOG(4, "cwksp: ZSTD_cwksp_mark_tables_clean"); + assert(ws->tableValidEnd >= ws->objectEnd); + assert(ws->tableValidEnd <= ws->allocStart); + if (ws->tableValidEnd < ws->tableEnd) { + ws->tableValidEnd = ws->tableEnd; + } + ZSTD_cwksp_assert_internal_consistency(ws); +} + +/** + * Zero the part of the allocated tables not already marked clean. + */ +MEM_STATIC void ZSTD_cwksp_clean_tables(ZSTD_cwksp* ws) { + DEBUGLOG(4, "cwksp: ZSTD_cwksp_clean_tables"); + assert(ws->tableValidEnd >= ws->objectEnd); + assert(ws->tableValidEnd <= ws->allocStart); + if (ws->tableValidEnd < ws->tableEnd) { + ZSTD_memset(ws->tableValidEnd, 0, (size_t)((BYTE*)ws->tableEnd - (BYTE*)ws->tableValidEnd)); + } + ZSTD_cwksp_mark_tables_clean(ws); +} + +/** + * Invalidates table allocations. + * All other allocations remain valid. + */ +MEM_STATIC void ZSTD_cwksp_clear_tables(ZSTD_cwksp* ws) { + DEBUGLOG(4, "cwksp: clearing tables!"); + +#if ZSTD_ADDRESS_SANITIZER && !defined (ZSTD_ASAN_DONT_POISON_WORKSPACE) + /* We don't do this when the workspace is statically allocated, because + * when that is the case, we have no capability to hook into the end of the + * workspace's lifecycle to unpoison the memory. + */ + if (ws->isStatic == ZSTD_cwksp_dynamic_alloc) { + size_t size = (BYTE*)ws->tableValidEnd - (BYTE*)ws->objectEnd; + __asan_poison_memory_region(ws->objectEnd, size); + } +#endif + + ws->tableEnd = ws->objectEnd; + ZSTD_cwksp_assert_internal_consistency(ws); +} + +/** + * Invalidates all buffer, aligned, and table allocations. + * Object allocations remain valid. + */ +MEM_STATIC void ZSTD_cwksp_clear(ZSTD_cwksp* ws) { + DEBUGLOG(4, "cwksp: clearing!"); + +#if ZSTD_MEMORY_SANITIZER && !defined (ZSTD_MSAN_DONT_POISON_WORKSPACE) + /* To validate that the context reuse logic is sound, and that we don't + * access stuff that this compression hasn't initialized, we re-"poison" + * the workspace except for the areas in which we expect memory reuse + * without initialization (objects, valid tables area and init once + * memory). */ + { + if((BYTE*)ws->tableValidEnd < (BYTE*)ws->initOnceStart) { + size_t size = (BYTE*)ws->initOnceStart - (BYTE*)ws->tableValidEnd; + __msan_poison(ws->tableValidEnd, size); + } + } +#endif + +#if ZSTD_ADDRESS_SANITIZER && !defined (ZSTD_ASAN_DONT_POISON_WORKSPACE) + /* We don't do this when the workspace is statically allocated, because + * when that is the case, we have no capability to hook into the end of the + * workspace's lifecycle to unpoison the memory. + */ + if (ws->isStatic == ZSTD_cwksp_dynamic_alloc) { + size_t size = (BYTE*)ws->workspaceEnd - (BYTE*)ws->objectEnd; + __asan_poison_memory_region(ws->objectEnd, size); + } +#endif + + ws->tableEnd = ws->objectEnd; + ws->allocStart = ZSTD_cwksp_initialAllocStart(ws); + ws->allocFailed = 0; + if (ws->phase > ZSTD_cwksp_alloc_aligned_init_once) { + ws->phase = ZSTD_cwksp_alloc_aligned_init_once; + } + ZSTD_cwksp_assert_internal_consistency(ws); +} + +MEM_STATIC size_t ZSTD_cwksp_sizeof(const ZSTD_cwksp* ws) { + return (size_t)((BYTE*)ws->workspaceEnd - (BYTE*)ws->workspace); +} + +MEM_STATIC size_t ZSTD_cwksp_used(const ZSTD_cwksp* ws) { + return (size_t)((BYTE*)ws->tableEnd - (BYTE*)ws->workspace) + + (size_t)((BYTE*)ws->workspaceEnd - (BYTE*)ws->allocStart); +} + +/** + * The provided workspace takes ownership of the buffer [start, start+size). + * Any existing values in the workspace are ignored (the previously managed + * buffer, if present, must be separately freed). + */ +MEM_STATIC void ZSTD_cwksp_init(ZSTD_cwksp* ws, void* start, size_t size, ZSTD_cwksp_static_alloc_e isStatic) { + DEBUGLOG(4, "cwksp: init'ing workspace with %zd bytes", size); + assert(((size_t)start & (sizeof(void*)-1)) == 0); /* ensure correct alignment */ + ws->workspace = start; + ws->workspaceEnd = (BYTE*)start + size; + ws->objectEnd = ws->workspace; + ws->tableValidEnd = ws->objectEnd; + ws->initOnceStart = ZSTD_cwksp_initialAllocStart(ws); + ws->phase = ZSTD_cwksp_alloc_objects; + ws->isStatic = isStatic; + ZSTD_cwksp_clear(ws); + ws->workspaceOversizedDuration = 0; + ZSTD_cwksp_assert_internal_consistency(ws); +} + +MEM_STATIC size_t ZSTD_cwksp_create(ZSTD_cwksp* ws, size_t size, ZSTD_customMem customMem) { + void* workspace = ZSTD_customMalloc(size, customMem); + DEBUGLOG(4, "cwksp: creating new workspace with %zd bytes", size); + RETURN_ERROR_IF(workspace == NULL, memory_allocation, "NULL pointer!"); + ZSTD_cwksp_init(ws, workspace, size, ZSTD_cwksp_dynamic_alloc); + return 0; +} + +MEM_STATIC void ZSTD_cwksp_free(ZSTD_cwksp* ws, ZSTD_customMem customMem) { + void *ptr = ws->workspace; + DEBUGLOG(4, "cwksp: freeing workspace"); +#if ZSTD_MEMORY_SANITIZER && !defined(ZSTD_MSAN_DONT_POISON_WORKSPACE) + if (ptr != NULL && customMem.customFree != NULL) { + __msan_unpoison(ptr, ZSTD_cwksp_sizeof(ws)); + } +#endif + ZSTD_memset(ws, 0, sizeof(ZSTD_cwksp)); + ZSTD_customFree(ptr, customMem); +} + +/** + * Moves the management of a workspace from one cwksp to another. The src cwksp + * is left in an invalid state (src must be re-init()'ed before it's used again). + */ +MEM_STATIC void ZSTD_cwksp_move(ZSTD_cwksp* dst, ZSTD_cwksp* src) { + *dst = *src; + ZSTD_memset(src, 0, sizeof(ZSTD_cwksp)); +} + +MEM_STATIC int ZSTD_cwksp_reserve_failed(const ZSTD_cwksp* ws) { + return ws->allocFailed; +} + +/*-************************************* +* Functions Checking Free Space +***************************************/ + +/* ZSTD_alignmentSpaceWithinBounds() : + * Returns if the estimated space needed for a wksp is within an acceptable limit of the + * actual amount of space used. + */ +MEM_STATIC int ZSTD_cwksp_estimated_space_within_bounds(const ZSTD_cwksp *const ws, size_t const estimatedSpace) { + /* We have an alignment space between objects and tables between tables and buffers, so we can have up to twice + * the alignment bytes difference between estimation and actual usage */ + return (estimatedSpace - ZSTD_cwksp_slack_space_required()) <= ZSTD_cwksp_used(ws) && + ZSTD_cwksp_used(ws) <= estimatedSpace; +} + + +MEM_STATIC size_t ZSTD_cwksp_available_space(ZSTD_cwksp* ws) { + return (size_t)((BYTE*)ws->allocStart - (BYTE*)ws->tableEnd); +} + +MEM_STATIC int ZSTD_cwksp_check_available(ZSTD_cwksp* ws, size_t additionalNeededSpace) { + return ZSTD_cwksp_available_space(ws) >= additionalNeededSpace; +} + +MEM_STATIC int ZSTD_cwksp_check_too_large(ZSTD_cwksp* ws, size_t additionalNeededSpace) { + return ZSTD_cwksp_check_available( + ws, additionalNeededSpace * ZSTD_WORKSPACETOOLARGE_FACTOR); +} + +MEM_STATIC int ZSTD_cwksp_check_wasteful(ZSTD_cwksp* ws, size_t additionalNeededSpace) { + return ZSTD_cwksp_check_too_large(ws, additionalNeededSpace) + && ws->workspaceOversizedDuration > ZSTD_WORKSPACETOOLARGE_MAXDURATION; +} + +MEM_STATIC void ZSTD_cwksp_bump_oversized_duration( + ZSTD_cwksp* ws, size_t additionalNeededSpace) { + if (ZSTD_cwksp_check_too_large(ws, additionalNeededSpace)) { + ws->workspaceOversizedDuration++; + } else { + ws->workspaceOversizedDuration = 0; + } +} + +#if defined (__cplusplus) +} +#endif + +#endif /* ZSTD_CWKSP_H */ diff --git a/deps/zstd/lib/compress/zstd_double_fast.c b/deps/zstd/lib/compress/zstd_double_fast.c new file mode 100644 index 00000000000000..a4e9c50d3bfeaf --- /dev/null +++ b/deps/zstd/lib/compress/zstd_double_fast.c @@ -0,0 +1,770 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#include "zstd_compress_internal.h" +#include "zstd_double_fast.h" + +#ifndef ZSTD_EXCLUDE_DFAST_BLOCK_COMPRESSOR + +static +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +void ZSTD_fillDoubleHashTableForCDict(ZSTD_matchState_t* ms, + void const* end, ZSTD_dictTableLoadMethod_e dtlm) +{ + const ZSTD_compressionParameters* const cParams = &ms->cParams; + U32* const hashLarge = ms->hashTable; + U32 const hBitsL = cParams->hashLog + ZSTD_SHORT_CACHE_TAG_BITS; + U32 const mls = cParams->minMatch; + U32* const hashSmall = ms->chainTable; + U32 const hBitsS = cParams->chainLog + ZSTD_SHORT_CACHE_TAG_BITS; + const BYTE* const base = ms->window.base; + const BYTE* ip = base + ms->nextToUpdate; + const BYTE* const iend = ((const BYTE*)end) - HASH_READ_SIZE; + const U32 fastHashFillStep = 3; + + /* Always insert every fastHashFillStep position into the hash tables. + * Insert the other positions into the large hash table if their entry + * is empty. + */ + for (; ip + fastHashFillStep - 1 <= iend; ip += fastHashFillStep) { + U32 const curr = (U32)(ip - base); + U32 i; + for (i = 0; i < fastHashFillStep; ++i) { + size_t const smHashAndTag = ZSTD_hashPtr(ip + i, hBitsS, mls); + size_t const lgHashAndTag = ZSTD_hashPtr(ip + i, hBitsL, 8); + if (i == 0) { + ZSTD_writeTaggedIndex(hashSmall, smHashAndTag, curr + i); + } + if (i == 0 || hashLarge[lgHashAndTag >> ZSTD_SHORT_CACHE_TAG_BITS] == 0) { + ZSTD_writeTaggedIndex(hashLarge, lgHashAndTag, curr + i); + } + /* Only load extra positions for ZSTD_dtlm_full */ + if (dtlm == ZSTD_dtlm_fast) + break; + } } +} + +static +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +void ZSTD_fillDoubleHashTableForCCtx(ZSTD_matchState_t* ms, + void const* end, ZSTD_dictTableLoadMethod_e dtlm) +{ + const ZSTD_compressionParameters* const cParams = &ms->cParams; + U32* const hashLarge = ms->hashTable; + U32 const hBitsL = cParams->hashLog; + U32 const mls = cParams->minMatch; + U32* const hashSmall = ms->chainTable; + U32 const hBitsS = cParams->chainLog; + const BYTE* const base = ms->window.base; + const BYTE* ip = base + ms->nextToUpdate; + const BYTE* const iend = ((const BYTE*)end) - HASH_READ_SIZE; + const U32 fastHashFillStep = 3; + + /* Always insert every fastHashFillStep position into the hash tables. + * Insert the other positions into the large hash table if their entry + * is empty. + */ + for (; ip + fastHashFillStep - 1 <= iend; ip += fastHashFillStep) { + U32 const curr = (U32)(ip - base); + U32 i; + for (i = 0; i < fastHashFillStep; ++i) { + size_t const smHash = ZSTD_hashPtr(ip + i, hBitsS, mls); + size_t const lgHash = ZSTD_hashPtr(ip + i, hBitsL, 8); + if (i == 0) + hashSmall[smHash] = curr + i; + if (i == 0 || hashLarge[lgHash] == 0) + hashLarge[lgHash] = curr + i; + /* Only load extra positions for ZSTD_dtlm_full */ + if (dtlm == ZSTD_dtlm_fast) + break; + } } +} + +void ZSTD_fillDoubleHashTable(ZSTD_matchState_t* ms, + const void* const end, + ZSTD_dictTableLoadMethod_e dtlm, + ZSTD_tableFillPurpose_e tfp) +{ + if (tfp == ZSTD_tfp_forCDict) { + ZSTD_fillDoubleHashTableForCDict(ms, end, dtlm); + } else { + ZSTD_fillDoubleHashTableForCCtx(ms, end, dtlm); + } +} + + +FORCE_INLINE_TEMPLATE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_compressBlock_doubleFast_noDict_generic( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize, U32 const mls /* template */) +{ + ZSTD_compressionParameters const* cParams = &ms->cParams; + U32* const hashLong = ms->hashTable; + const U32 hBitsL = cParams->hashLog; + U32* const hashSmall = ms->chainTable; + const U32 hBitsS = cParams->chainLog; + const BYTE* const base = ms->window.base; + const BYTE* const istart = (const BYTE*)src; + const BYTE* anchor = istart; + const U32 endIndex = (U32)((size_t)(istart - base) + srcSize); + /* presumes that, if there is a dictionary, it must be using Attach mode */ + const U32 prefixLowestIndex = ZSTD_getLowestPrefixIndex(ms, endIndex, cParams->windowLog); + const BYTE* const prefixLowest = base + prefixLowestIndex; + const BYTE* const iend = istart + srcSize; + const BYTE* const ilimit = iend - HASH_READ_SIZE; + U32 offset_1=rep[0], offset_2=rep[1]; + U32 offsetSaved1 = 0, offsetSaved2 = 0; + + size_t mLength; + U32 offset; + U32 curr; + + /* how many positions to search before increasing step size */ + const size_t kStepIncr = 1 << kSearchStrength; + /* the position at which to increment the step size if no match is found */ + const BYTE* nextStep; + size_t step; /* the current step size */ + + size_t hl0; /* the long hash at ip */ + size_t hl1; /* the long hash at ip1 */ + + U32 idxl0; /* the long match index for ip */ + U32 idxl1; /* the long match index for ip1 */ + + const BYTE* matchl0; /* the long match for ip */ + const BYTE* matchs0; /* the short match for ip */ + const BYTE* matchl1; /* the long match for ip1 */ + + const BYTE* ip = istart; /* the current position */ + const BYTE* ip1; /* the next position */ + + DEBUGLOG(5, "ZSTD_compressBlock_doubleFast_noDict_generic"); + + /* init */ + ip += ((ip - prefixLowest) == 0); + { + U32 const current = (U32)(ip - base); + U32 const windowLow = ZSTD_getLowestPrefixIndex(ms, current, cParams->windowLog); + U32 const maxRep = current - windowLow; + if (offset_2 > maxRep) offsetSaved2 = offset_2, offset_2 = 0; + if (offset_1 > maxRep) offsetSaved1 = offset_1, offset_1 = 0; + } + + /* Outer Loop: one iteration per match found and stored */ + while (1) { + step = 1; + nextStep = ip + kStepIncr; + ip1 = ip + step; + + if (ip1 > ilimit) { + goto _cleanup; + } + + hl0 = ZSTD_hashPtr(ip, hBitsL, 8); + idxl0 = hashLong[hl0]; + matchl0 = base + idxl0; + + /* Inner Loop: one iteration per search / position */ + do { + const size_t hs0 = ZSTD_hashPtr(ip, hBitsS, mls); + const U32 idxs0 = hashSmall[hs0]; + curr = (U32)(ip-base); + matchs0 = base + idxs0; + + hashLong[hl0] = hashSmall[hs0] = curr; /* update hash tables */ + + /* check noDict repcode */ + if ((offset_1 > 0) & (MEM_read32(ip+1-offset_1) == MEM_read32(ip+1))) { + mLength = ZSTD_count(ip+1+4, ip+1+4-offset_1, iend) + 4; + ip++; + ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, REPCODE1_TO_OFFBASE, mLength); + goto _match_stored; + } + + hl1 = ZSTD_hashPtr(ip1, hBitsL, 8); + + if (idxl0 > prefixLowestIndex) { + /* check prefix long match */ + if (MEM_read64(matchl0) == MEM_read64(ip)) { + mLength = ZSTD_count(ip+8, matchl0+8, iend) + 8; + offset = (U32)(ip-matchl0); + while (((ip>anchor) & (matchl0>prefixLowest)) && (ip[-1] == matchl0[-1])) { ip--; matchl0--; mLength++; } /* catch up */ + goto _match_found; + } + } + + idxl1 = hashLong[hl1]; + matchl1 = base + idxl1; + + if (idxs0 > prefixLowestIndex) { + /* check prefix short match */ + if (MEM_read32(matchs0) == MEM_read32(ip)) { + goto _search_next_long; + } + } + + if (ip1 >= nextStep) { + PREFETCH_L1(ip1 + 64); + PREFETCH_L1(ip1 + 128); + step++; + nextStep += kStepIncr; + } + ip = ip1; + ip1 += step; + + hl0 = hl1; + idxl0 = idxl1; + matchl0 = matchl1; + #if defined(__aarch64__) + PREFETCH_L1(ip+256); + #endif + } while (ip1 <= ilimit); + +_cleanup: + /* If offset_1 started invalid (offsetSaved1 != 0) and became valid (offset_1 != 0), + * rotate saved offsets. See comment in ZSTD_compressBlock_fast_noDict for more context. */ + offsetSaved2 = ((offsetSaved1 != 0) && (offset_1 != 0)) ? offsetSaved1 : offsetSaved2; + + /* save reps for next block */ + rep[0] = offset_1 ? offset_1 : offsetSaved1; + rep[1] = offset_2 ? offset_2 : offsetSaved2; + + /* Return the last literals size */ + return (size_t)(iend - anchor); + +_search_next_long: + + /* check prefix long +1 match */ + if (idxl1 > prefixLowestIndex) { + if (MEM_read64(matchl1) == MEM_read64(ip1)) { + ip = ip1; + mLength = ZSTD_count(ip+8, matchl1+8, iend) + 8; + offset = (U32)(ip-matchl1); + while (((ip>anchor) & (matchl1>prefixLowest)) && (ip[-1] == matchl1[-1])) { ip--; matchl1--; mLength++; } /* catch up */ + goto _match_found; + } + } + + /* if no long +1 match, explore the short match we found */ + mLength = ZSTD_count(ip+4, matchs0+4, iend) + 4; + offset = (U32)(ip - matchs0); + while (((ip>anchor) & (matchs0>prefixLowest)) && (ip[-1] == matchs0[-1])) { ip--; matchs0--; mLength++; } /* catch up */ + + /* fall-through */ + +_match_found: /* requires ip, offset, mLength */ + offset_2 = offset_1; + offset_1 = offset; + + if (step < 4) { + /* It is unsafe to write this value back to the hashtable when ip1 is + * greater than or equal to the new ip we will have after we're done + * processing this match. Rather than perform that test directly + * (ip1 >= ip + mLength), which costs speed in practice, we do a simpler + * more predictable test. The minmatch even if we take a short match is + * 4 bytes, so as long as step, the distance between ip and ip1 + * (initially) is less than 4, we know ip1 < new ip. */ + hashLong[hl1] = (U32)(ip1 - base); + } + + ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, OFFSET_TO_OFFBASE(offset), mLength); + +_match_stored: + /* match found */ + ip += mLength; + anchor = ip; + + if (ip <= ilimit) { + /* Complementary insertion */ + /* done after iLimit test, as candidates could be > iend-8 */ + { U32 const indexToInsert = curr+2; + hashLong[ZSTD_hashPtr(base+indexToInsert, hBitsL, 8)] = indexToInsert; + hashLong[ZSTD_hashPtr(ip-2, hBitsL, 8)] = (U32)(ip-2-base); + hashSmall[ZSTD_hashPtr(base+indexToInsert, hBitsS, mls)] = indexToInsert; + hashSmall[ZSTD_hashPtr(ip-1, hBitsS, mls)] = (U32)(ip-1-base); + } + + /* check immediate repcode */ + while ( (ip <= ilimit) + && ( (offset_2>0) + & (MEM_read32(ip) == MEM_read32(ip - offset_2)) )) { + /* store sequence */ + size_t const rLength = ZSTD_count(ip+4, ip+4-offset_2, iend) + 4; + U32 const tmpOff = offset_2; offset_2 = offset_1; offset_1 = tmpOff; /* swap offset_2 <=> offset_1 */ + hashSmall[ZSTD_hashPtr(ip, hBitsS, mls)] = (U32)(ip-base); + hashLong[ZSTD_hashPtr(ip, hBitsL, 8)] = (U32)(ip-base); + ZSTD_storeSeq(seqStore, 0, anchor, iend, REPCODE1_TO_OFFBASE, rLength); + ip += rLength; + anchor = ip; + continue; /* faster when present ... (?) */ + } + } + } +} + + +FORCE_INLINE_TEMPLATE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_compressBlock_doubleFast_dictMatchState_generic( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize, + U32 const mls /* template */) +{ + ZSTD_compressionParameters const* cParams = &ms->cParams; + U32* const hashLong = ms->hashTable; + const U32 hBitsL = cParams->hashLog; + U32* const hashSmall = ms->chainTable; + const U32 hBitsS = cParams->chainLog; + const BYTE* const base = ms->window.base; + const BYTE* const istart = (const BYTE*)src; + const BYTE* ip = istart; + const BYTE* anchor = istart; + const U32 endIndex = (U32)((size_t)(istart - base) + srcSize); + /* presumes that, if there is a dictionary, it must be using Attach mode */ + const U32 prefixLowestIndex = ZSTD_getLowestPrefixIndex(ms, endIndex, cParams->windowLog); + const BYTE* const prefixLowest = base + prefixLowestIndex; + const BYTE* const iend = istart + srcSize; + const BYTE* const ilimit = iend - HASH_READ_SIZE; + U32 offset_1=rep[0], offset_2=rep[1]; + + const ZSTD_matchState_t* const dms = ms->dictMatchState; + const ZSTD_compressionParameters* const dictCParams = &dms->cParams; + const U32* const dictHashLong = dms->hashTable; + const U32* const dictHashSmall = dms->chainTable; + const U32 dictStartIndex = dms->window.dictLimit; + const BYTE* const dictBase = dms->window.base; + const BYTE* const dictStart = dictBase + dictStartIndex; + const BYTE* const dictEnd = dms->window.nextSrc; + const U32 dictIndexDelta = prefixLowestIndex - (U32)(dictEnd - dictBase); + const U32 dictHBitsL = dictCParams->hashLog + ZSTD_SHORT_CACHE_TAG_BITS; + const U32 dictHBitsS = dictCParams->chainLog + ZSTD_SHORT_CACHE_TAG_BITS; + const U32 dictAndPrefixLength = (U32)((ip - prefixLowest) + (dictEnd - dictStart)); + + DEBUGLOG(5, "ZSTD_compressBlock_doubleFast_dictMatchState_generic"); + + /* if a dictionary is attached, it must be within window range */ + assert(ms->window.dictLimit + (1U << cParams->windowLog) >= endIndex); + + if (ms->prefetchCDictTables) { + size_t const hashTableBytes = (((size_t)1) << dictCParams->hashLog) * sizeof(U32); + size_t const chainTableBytes = (((size_t)1) << dictCParams->chainLog) * sizeof(U32); + PREFETCH_AREA(dictHashLong, hashTableBytes); + PREFETCH_AREA(dictHashSmall, chainTableBytes); + } + + /* init */ + ip += (dictAndPrefixLength == 0); + + /* dictMatchState repCode checks don't currently handle repCode == 0 + * disabling. */ + assert(offset_1 <= dictAndPrefixLength); + assert(offset_2 <= dictAndPrefixLength); + + /* Main Search Loop */ + while (ip < ilimit) { /* < instead of <=, because repcode check at (ip+1) */ + size_t mLength; + U32 offset; + size_t const h2 = ZSTD_hashPtr(ip, hBitsL, 8); + size_t const h = ZSTD_hashPtr(ip, hBitsS, mls); + size_t const dictHashAndTagL = ZSTD_hashPtr(ip, dictHBitsL, 8); + size_t const dictHashAndTagS = ZSTD_hashPtr(ip, dictHBitsS, mls); + U32 const dictMatchIndexAndTagL = dictHashLong[dictHashAndTagL >> ZSTD_SHORT_CACHE_TAG_BITS]; + U32 const dictMatchIndexAndTagS = dictHashSmall[dictHashAndTagS >> ZSTD_SHORT_CACHE_TAG_BITS]; + int const dictTagsMatchL = ZSTD_comparePackedTags(dictMatchIndexAndTagL, dictHashAndTagL); + int const dictTagsMatchS = ZSTD_comparePackedTags(dictMatchIndexAndTagS, dictHashAndTagS); + U32 const curr = (U32)(ip-base); + U32 const matchIndexL = hashLong[h2]; + U32 matchIndexS = hashSmall[h]; + const BYTE* matchLong = base + matchIndexL; + const BYTE* match = base + matchIndexS; + const U32 repIndex = curr + 1 - offset_1; + const BYTE* repMatch = (repIndex < prefixLowestIndex) ? + dictBase + (repIndex - dictIndexDelta) : + base + repIndex; + hashLong[h2] = hashSmall[h] = curr; /* update hash tables */ + + /* check repcode */ + if (((U32)((prefixLowestIndex-1) - repIndex) >= 3 /* intentional underflow */) + && (MEM_read32(repMatch) == MEM_read32(ip+1)) ) { + const BYTE* repMatchEnd = repIndex < prefixLowestIndex ? dictEnd : iend; + mLength = ZSTD_count_2segments(ip+1+4, repMatch+4, iend, repMatchEnd, prefixLowest) + 4; + ip++; + ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, REPCODE1_TO_OFFBASE, mLength); + goto _match_stored; + } + + if (matchIndexL > prefixLowestIndex) { + /* check prefix long match */ + if (MEM_read64(matchLong) == MEM_read64(ip)) { + mLength = ZSTD_count(ip+8, matchLong+8, iend) + 8; + offset = (U32)(ip-matchLong); + while (((ip>anchor) & (matchLong>prefixLowest)) && (ip[-1] == matchLong[-1])) { ip--; matchLong--; mLength++; } /* catch up */ + goto _match_found; + } + } else if (dictTagsMatchL) { + /* check dictMatchState long match */ + U32 const dictMatchIndexL = dictMatchIndexAndTagL >> ZSTD_SHORT_CACHE_TAG_BITS; + const BYTE* dictMatchL = dictBase + dictMatchIndexL; + assert(dictMatchL < dictEnd); + + if (dictMatchL > dictStart && MEM_read64(dictMatchL) == MEM_read64(ip)) { + mLength = ZSTD_count_2segments(ip+8, dictMatchL+8, iend, dictEnd, prefixLowest) + 8; + offset = (U32)(curr - dictMatchIndexL - dictIndexDelta); + while (((ip>anchor) & (dictMatchL>dictStart)) && (ip[-1] == dictMatchL[-1])) { ip--; dictMatchL--; mLength++; } /* catch up */ + goto _match_found; + } } + + if (matchIndexS > prefixLowestIndex) { + /* check prefix short match */ + if (MEM_read32(match) == MEM_read32(ip)) { + goto _search_next_long; + } + } else if (dictTagsMatchS) { + /* check dictMatchState short match */ + U32 const dictMatchIndexS = dictMatchIndexAndTagS >> ZSTD_SHORT_CACHE_TAG_BITS; + match = dictBase + dictMatchIndexS; + matchIndexS = dictMatchIndexS + dictIndexDelta; + + if (match > dictStart && MEM_read32(match) == MEM_read32(ip)) { + goto _search_next_long; + } } + + ip += ((ip-anchor) >> kSearchStrength) + 1; +#if defined(__aarch64__) + PREFETCH_L1(ip+256); +#endif + continue; + +_search_next_long: + { size_t const hl3 = ZSTD_hashPtr(ip+1, hBitsL, 8); + size_t const dictHashAndTagL3 = ZSTD_hashPtr(ip+1, dictHBitsL, 8); + U32 const matchIndexL3 = hashLong[hl3]; + U32 const dictMatchIndexAndTagL3 = dictHashLong[dictHashAndTagL3 >> ZSTD_SHORT_CACHE_TAG_BITS]; + int const dictTagsMatchL3 = ZSTD_comparePackedTags(dictMatchIndexAndTagL3, dictHashAndTagL3); + const BYTE* matchL3 = base + matchIndexL3; + hashLong[hl3] = curr + 1; + + /* check prefix long +1 match */ + if (matchIndexL3 > prefixLowestIndex) { + if (MEM_read64(matchL3) == MEM_read64(ip+1)) { + mLength = ZSTD_count(ip+9, matchL3+8, iend) + 8; + ip++; + offset = (U32)(ip-matchL3); + while (((ip>anchor) & (matchL3>prefixLowest)) && (ip[-1] == matchL3[-1])) { ip--; matchL3--; mLength++; } /* catch up */ + goto _match_found; + } + } else if (dictTagsMatchL3) { + /* check dict long +1 match */ + U32 const dictMatchIndexL3 = dictMatchIndexAndTagL3 >> ZSTD_SHORT_CACHE_TAG_BITS; + const BYTE* dictMatchL3 = dictBase + dictMatchIndexL3; + assert(dictMatchL3 < dictEnd); + if (dictMatchL3 > dictStart && MEM_read64(dictMatchL3) == MEM_read64(ip+1)) { + mLength = ZSTD_count_2segments(ip+1+8, dictMatchL3+8, iend, dictEnd, prefixLowest) + 8; + ip++; + offset = (U32)(curr + 1 - dictMatchIndexL3 - dictIndexDelta); + while (((ip>anchor) & (dictMatchL3>dictStart)) && (ip[-1] == dictMatchL3[-1])) { ip--; dictMatchL3--; mLength++; } /* catch up */ + goto _match_found; + } } } + + /* if no long +1 match, explore the short match we found */ + if (matchIndexS < prefixLowestIndex) { + mLength = ZSTD_count_2segments(ip+4, match+4, iend, dictEnd, prefixLowest) + 4; + offset = (U32)(curr - matchIndexS); + while (((ip>anchor) & (match>dictStart)) && (ip[-1] == match[-1])) { ip--; match--; mLength++; } /* catch up */ + } else { + mLength = ZSTD_count(ip+4, match+4, iend) + 4; + offset = (U32)(ip - match); + while (((ip>anchor) & (match>prefixLowest)) && (ip[-1] == match[-1])) { ip--; match--; mLength++; } /* catch up */ + } + +_match_found: + offset_2 = offset_1; + offset_1 = offset; + + ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, OFFSET_TO_OFFBASE(offset), mLength); + +_match_stored: + /* match found */ + ip += mLength; + anchor = ip; + + if (ip <= ilimit) { + /* Complementary insertion */ + /* done after iLimit test, as candidates could be > iend-8 */ + { U32 const indexToInsert = curr+2; + hashLong[ZSTD_hashPtr(base+indexToInsert, hBitsL, 8)] = indexToInsert; + hashLong[ZSTD_hashPtr(ip-2, hBitsL, 8)] = (U32)(ip-2-base); + hashSmall[ZSTD_hashPtr(base+indexToInsert, hBitsS, mls)] = indexToInsert; + hashSmall[ZSTD_hashPtr(ip-1, hBitsS, mls)] = (U32)(ip-1-base); + } + + /* check immediate repcode */ + while (ip <= ilimit) { + U32 const current2 = (U32)(ip-base); + U32 const repIndex2 = current2 - offset_2; + const BYTE* repMatch2 = repIndex2 < prefixLowestIndex ? + dictBase + repIndex2 - dictIndexDelta : + base + repIndex2; + if ( ((U32)((prefixLowestIndex-1) - (U32)repIndex2) >= 3 /* intentional overflow */) + && (MEM_read32(repMatch2) == MEM_read32(ip)) ) { + const BYTE* const repEnd2 = repIndex2 < prefixLowestIndex ? dictEnd : iend; + size_t const repLength2 = ZSTD_count_2segments(ip+4, repMatch2+4, iend, repEnd2, prefixLowest) + 4; + U32 tmpOffset = offset_2; offset_2 = offset_1; offset_1 = tmpOffset; /* swap offset_2 <=> offset_1 */ + ZSTD_storeSeq(seqStore, 0, anchor, iend, REPCODE1_TO_OFFBASE, repLength2); + hashSmall[ZSTD_hashPtr(ip, hBitsS, mls)] = current2; + hashLong[ZSTD_hashPtr(ip, hBitsL, 8)] = current2; + ip += repLength2; + anchor = ip; + continue; + } + break; + } + } + } /* while (ip < ilimit) */ + + /* save reps for next block */ + rep[0] = offset_1; + rep[1] = offset_2; + + /* Return the last literals size */ + return (size_t)(iend - anchor); +} + +#define ZSTD_GEN_DFAST_FN(dictMode, mls) \ + static size_t ZSTD_compressBlock_doubleFast_##dictMode##_##mls( \ + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], \ + void const* src, size_t srcSize) \ + { \ + return ZSTD_compressBlock_doubleFast_##dictMode##_generic(ms, seqStore, rep, src, srcSize, mls); \ + } + +ZSTD_GEN_DFAST_FN(noDict, 4) +ZSTD_GEN_DFAST_FN(noDict, 5) +ZSTD_GEN_DFAST_FN(noDict, 6) +ZSTD_GEN_DFAST_FN(noDict, 7) + +ZSTD_GEN_DFAST_FN(dictMatchState, 4) +ZSTD_GEN_DFAST_FN(dictMatchState, 5) +ZSTD_GEN_DFAST_FN(dictMatchState, 6) +ZSTD_GEN_DFAST_FN(dictMatchState, 7) + + +size_t ZSTD_compressBlock_doubleFast( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + const U32 mls = ms->cParams.minMatch; + switch(mls) + { + default: /* includes case 3 */ + case 4 : + return ZSTD_compressBlock_doubleFast_noDict_4(ms, seqStore, rep, src, srcSize); + case 5 : + return ZSTD_compressBlock_doubleFast_noDict_5(ms, seqStore, rep, src, srcSize); + case 6 : + return ZSTD_compressBlock_doubleFast_noDict_6(ms, seqStore, rep, src, srcSize); + case 7 : + return ZSTD_compressBlock_doubleFast_noDict_7(ms, seqStore, rep, src, srcSize); + } +} + + +size_t ZSTD_compressBlock_doubleFast_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + const U32 mls = ms->cParams.minMatch; + switch(mls) + { + default: /* includes case 3 */ + case 4 : + return ZSTD_compressBlock_doubleFast_dictMatchState_4(ms, seqStore, rep, src, srcSize); + case 5 : + return ZSTD_compressBlock_doubleFast_dictMatchState_5(ms, seqStore, rep, src, srcSize); + case 6 : + return ZSTD_compressBlock_doubleFast_dictMatchState_6(ms, seqStore, rep, src, srcSize); + case 7 : + return ZSTD_compressBlock_doubleFast_dictMatchState_7(ms, seqStore, rep, src, srcSize); + } +} + + +static +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_compressBlock_doubleFast_extDict_generic( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize, + U32 const mls /* template */) +{ + ZSTD_compressionParameters const* cParams = &ms->cParams; + U32* const hashLong = ms->hashTable; + U32 const hBitsL = cParams->hashLog; + U32* const hashSmall = ms->chainTable; + U32 const hBitsS = cParams->chainLog; + const BYTE* const istart = (const BYTE*)src; + const BYTE* ip = istart; + const BYTE* anchor = istart; + const BYTE* const iend = istart + srcSize; + const BYTE* const ilimit = iend - 8; + const BYTE* const base = ms->window.base; + const U32 endIndex = (U32)((size_t)(istart - base) + srcSize); + const U32 lowLimit = ZSTD_getLowestMatchIndex(ms, endIndex, cParams->windowLog); + const U32 dictStartIndex = lowLimit; + const U32 dictLimit = ms->window.dictLimit; + const U32 prefixStartIndex = (dictLimit > lowLimit) ? dictLimit : lowLimit; + const BYTE* const prefixStart = base + prefixStartIndex; + const BYTE* const dictBase = ms->window.dictBase; + const BYTE* const dictStart = dictBase + dictStartIndex; + const BYTE* const dictEnd = dictBase + prefixStartIndex; + U32 offset_1=rep[0], offset_2=rep[1]; + + DEBUGLOG(5, "ZSTD_compressBlock_doubleFast_extDict_generic (srcSize=%zu)", srcSize); + + /* if extDict is invalidated due to maxDistance, switch to "regular" variant */ + if (prefixStartIndex == dictStartIndex) + return ZSTD_compressBlock_doubleFast(ms, seqStore, rep, src, srcSize); + + /* Search Loop */ + while (ip < ilimit) { /* < instead of <=, because (ip+1) */ + const size_t hSmall = ZSTD_hashPtr(ip, hBitsS, mls); + const U32 matchIndex = hashSmall[hSmall]; + const BYTE* const matchBase = matchIndex < prefixStartIndex ? dictBase : base; + const BYTE* match = matchBase + matchIndex; + + const size_t hLong = ZSTD_hashPtr(ip, hBitsL, 8); + const U32 matchLongIndex = hashLong[hLong]; + const BYTE* const matchLongBase = matchLongIndex < prefixStartIndex ? dictBase : base; + const BYTE* matchLong = matchLongBase + matchLongIndex; + + const U32 curr = (U32)(ip-base); + const U32 repIndex = curr + 1 - offset_1; /* offset_1 expected <= curr +1 */ + const BYTE* const repBase = repIndex < prefixStartIndex ? dictBase : base; + const BYTE* const repMatch = repBase + repIndex; + size_t mLength; + hashSmall[hSmall] = hashLong[hLong] = curr; /* update hash table */ + + if ((((U32)((prefixStartIndex-1) - repIndex) >= 3) /* intentional underflow : ensure repIndex doesn't overlap dict + prefix */ + & (offset_1 <= curr+1 - dictStartIndex)) /* note: we are searching at curr+1 */ + && (MEM_read32(repMatch) == MEM_read32(ip+1)) ) { + const BYTE* repMatchEnd = repIndex < prefixStartIndex ? dictEnd : iend; + mLength = ZSTD_count_2segments(ip+1+4, repMatch+4, iend, repMatchEnd, prefixStart) + 4; + ip++; + ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, REPCODE1_TO_OFFBASE, mLength); + } else { + if ((matchLongIndex > dictStartIndex) && (MEM_read64(matchLong) == MEM_read64(ip))) { + const BYTE* const matchEnd = matchLongIndex < prefixStartIndex ? dictEnd : iend; + const BYTE* const lowMatchPtr = matchLongIndex < prefixStartIndex ? dictStart : prefixStart; + U32 offset; + mLength = ZSTD_count_2segments(ip+8, matchLong+8, iend, matchEnd, prefixStart) + 8; + offset = curr - matchLongIndex; + while (((ip>anchor) & (matchLong>lowMatchPtr)) && (ip[-1] == matchLong[-1])) { ip--; matchLong--; mLength++; } /* catch up */ + offset_2 = offset_1; + offset_1 = offset; + ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, OFFSET_TO_OFFBASE(offset), mLength); + + } else if ((matchIndex > dictStartIndex) && (MEM_read32(match) == MEM_read32(ip))) { + size_t const h3 = ZSTD_hashPtr(ip+1, hBitsL, 8); + U32 const matchIndex3 = hashLong[h3]; + const BYTE* const match3Base = matchIndex3 < prefixStartIndex ? dictBase : base; + const BYTE* match3 = match3Base + matchIndex3; + U32 offset; + hashLong[h3] = curr + 1; + if ( (matchIndex3 > dictStartIndex) && (MEM_read64(match3) == MEM_read64(ip+1)) ) { + const BYTE* const matchEnd = matchIndex3 < prefixStartIndex ? dictEnd : iend; + const BYTE* const lowMatchPtr = matchIndex3 < prefixStartIndex ? dictStart : prefixStart; + mLength = ZSTD_count_2segments(ip+9, match3+8, iend, matchEnd, prefixStart) + 8; + ip++; + offset = curr+1 - matchIndex3; + while (((ip>anchor) & (match3>lowMatchPtr)) && (ip[-1] == match3[-1])) { ip--; match3--; mLength++; } /* catch up */ + } else { + const BYTE* const matchEnd = matchIndex < prefixStartIndex ? dictEnd : iend; + const BYTE* const lowMatchPtr = matchIndex < prefixStartIndex ? dictStart : prefixStart; + mLength = ZSTD_count_2segments(ip+4, match+4, iend, matchEnd, prefixStart) + 4; + offset = curr - matchIndex; + while (((ip>anchor) & (match>lowMatchPtr)) && (ip[-1] == match[-1])) { ip--; match--; mLength++; } /* catch up */ + } + offset_2 = offset_1; + offset_1 = offset; + ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, OFFSET_TO_OFFBASE(offset), mLength); + + } else { + ip += ((ip-anchor) >> kSearchStrength) + 1; + continue; + } } + + /* move to next sequence start */ + ip += mLength; + anchor = ip; + + if (ip <= ilimit) { + /* Complementary insertion */ + /* done after iLimit test, as candidates could be > iend-8 */ + { U32 const indexToInsert = curr+2; + hashLong[ZSTD_hashPtr(base+indexToInsert, hBitsL, 8)] = indexToInsert; + hashLong[ZSTD_hashPtr(ip-2, hBitsL, 8)] = (U32)(ip-2-base); + hashSmall[ZSTD_hashPtr(base+indexToInsert, hBitsS, mls)] = indexToInsert; + hashSmall[ZSTD_hashPtr(ip-1, hBitsS, mls)] = (U32)(ip-1-base); + } + + /* check immediate repcode */ + while (ip <= ilimit) { + U32 const current2 = (U32)(ip-base); + U32 const repIndex2 = current2 - offset_2; + const BYTE* repMatch2 = repIndex2 < prefixStartIndex ? dictBase + repIndex2 : base + repIndex2; + if ( (((U32)((prefixStartIndex-1) - repIndex2) >= 3) /* intentional overflow : ensure repIndex2 doesn't overlap dict + prefix */ + & (offset_2 <= current2 - dictStartIndex)) + && (MEM_read32(repMatch2) == MEM_read32(ip)) ) { + const BYTE* const repEnd2 = repIndex2 < prefixStartIndex ? dictEnd : iend; + size_t const repLength2 = ZSTD_count_2segments(ip+4, repMatch2+4, iend, repEnd2, prefixStart) + 4; + U32 const tmpOffset = offset_2; offset_2 = offset_1; offset_1 = tmpOffset; /* swap offset_2 <=> offset_1 */ + ZSTD_storeSeq(seqStore, 0, anchor, iend, REPCODE1_TO_OFFBASE, repLength2); + hashSmall[ZSTD_hashPtr(ip, hBitsS, mls)] = current2; + hashLong[ZSTD_hashPtr(ip, hBitsL, 8)] = current2; + ip += repLength2; + anchor = ip; + continue; + } + break; + } } } + + /* save reps for next block */ + rep[0] = offset_1; + rep[1] = offset_2; + + /* Return the last literals size */ + return (size_t)(iend - anchor); +} + +ZSTD_GEN_DFAST_FN(extDict, 4) +ZSTD_GEN_DFAST_FN(extDict, 5) +ZSTD_GEN_DFAST_FN(extDict, 6) +ZSTD_GEN_DFAST_FN(extDict, 7) + +size_t ZSTD_compressBlock_doubleFast_extDict( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + U32 const mls = ms->cParams.minMatch; + switch(mls) + { + default: /* includes case 3 */ + case 4 : + return ZSTD_compressBlock_doubleFast_extDict_4(ms, seqStore, rep, src, srcSize); + case 5 : + return ZSTD_compressBlock_doubleFast_extDict_5(ms, seqStore, rep, src, srcSize); + case 6 : + return ZSTD_compressBlock_doubleFast_extDict_6(ms, seqStore, rep, src, srcSize); + case 7 : + return ZSTD_compressBlock_doubleFast_extDict_7(ms, seqStore, rep, src, srcSize); + } +} + +#endif /* ZSTD_EXCLUDE_DFAST_BLOCK_COMPRESSOR */ diff --git a/deps/zstd/lib/compress/zstd_double_fast.h b/deps/zstd/lib/compress/zstd_double_fast.h new file mode 100644 index 00000000000000..ce6ed8c97fd791 --- /dev/null +++ b/deps/zstd/lib/compress/zstd_double_fast.h @@ -0,0 +1,50 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_DOUBLE_FAST_H +#define ZSTD_DOUBLE_FAST_H + +#if defined (__cplusplus) +extern "C" { +#endif + +#include "../common/mem.h" /* U32 */ +#include "zstd_compress_internal.h" /* ZSTD_CCtx, size_t */ + +#ifndef ZSTD_EXCLUDE_DFAST_BLOCK_COMPRESSOR + +void ZSTD_fillDoubleHashTable(ZSTD_matchState_t* ms, + void const* end, ZSTD_dictTableLoadMethod_e dtlm, + ZSTD_tableFillPurpose_e tfp); + +size_t ZSTD_compressBlock_doubleFast( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_doubleFast_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_doubleFast_extDict( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); + +#define ZSTD_COMPRESSBLOCK_DOUBLEFAST ZSTD_compressBlock_doubleFast +#define ZSTD_COMPRESSBLOCK_DOUBLEFAST_DICTMATCHSTATE ZSTD_compressBlock_doubleFast_dictMatchState +#define ZSTD_COMPRESSBLOCK_DOUBLEFAST_EXTDICT ZSTD_compressBlock_doubleFast_extDict +#else +#define ZSTD_COMPRESSBLOCK_DOUBLEFAST NULL +#define ZSTD_COMPRESSBLOCK_DOUBLEFAST_DICTMATCHSTATE NULL +#define ZSTD_COMPRESSBLOCK_DOUBLEFAST_EXTDICT NULL +#endif /* ZSTD_EXCLUDE_DFAST_BLOCK_COMPRESSOR */ + +#if defined (__cplusplus) +} +#endif + +#endif /* ZSTD_DOUBLE_FAST_H */ diff --git a/deps/zstd/lib/compress/zstd_fast.c b/deps/zstd/lib/compress/zstd_fast.c new file mode 100644 index 00000000000000..6c4554cfca71fc --- /dev/null +++ b/deps/zstd/lib/compress/zstd_fast.c @@ -0,0 +1,968 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#include "zstd_compress_internal.h" /* ZSTD_hashPtr, ZSTD_count, ZSTD_storeSeq */ +#include "zstd_fast.h" + +static +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +void ZSTD_fillHashTableForCDict(ZSTD_matchState_t* ms, + const void* const end, + ZSTD_dictTableLoadMethod_e dtlm) +{ + const ZSTD_compressionParameters* const cParams = &ms->cParams; + U32* const hashTable = ms->hashTable; + U32 const hBits = cParams->hashLog + ZSTD_SHORT_CACHE_TAG_BITS; + U32 const mls = cParams->minMatch; + const BYTE* const base = ms->window.base; + const BYTE* ip = base + ms->nextToUpdate; + const BYTE* const iend = ((const BYTE*)end) - HASH_READ_SIZE; + const U32 fastHashFillStep = 3; + + /* Currently, we always use ZSTD_dtlm_full for filling CDict tables. + * Feel free to remove this assert if there's a good reason! */ + assert(dtlm == ZSTD_dtlm_full); + + /* Always insert every fastHashFillStep position into the hash table. + * Insert the other positions if their hash entry is empty. + */ + for ( ; ip + fastHashFillStep < iend + 2; ip += fastHashFillStep) { + U32 const curr = (U32)(ip - base); + { size_t const hashAndTag = ZSTD_hashPtr(ip, hBits, mls); + ZSTD_writeTaggedIndex(hashTable, hashAndTag, curr); } + + if (dtlm == ZSTD_dtlm_fast) continue; + /* Only load extra positions for ZSTD_dtlm_full */ + { U32 p; + for (p = 1; p < fastHashFillStep; ++p) { + size_t const hashAndTag = ZSTD_hashPtr(ip + p, hBits, mls); + if (hashTable[hashAndTag >> ZSTD_SHORT_CACHE_TAG_BITS] == 0) { /* not yet filled */ + ZSTD_writeTaggedIndex(hashTable, hashAndTag, curr + p); + } } } } +} + +static +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +void ZSTD_fillHashTableForCCtx(ZSTD_matchState_t* ms, + const void* const end, + ZSTD_dictTableLoadMethod_e dtlm) +{ + const ZSTD_compressionParameters* const cParams = &ms->cParams; + U32* const hashTable = ms->hashTable; + U32 const hBits = cParams->hashLog; + U32 const mls = cParams->minMatch; + const BYTE* const base = ms->window.base; + const BYTE* ip = base + ms->nextToUpdate; + const BYTE* const iend = ((const BYTE*)end) - HASH_READ_SIZE; + const U32 fastHashFillStep = 3; + + /* Currently, we always use ZSTD_dtlm_fast for filling CCtx tables. + * Feel free to remove this assert if there's a good reason! */ + assert(dtlm == ZSTD_dtlm_fast); + + /* Always insert every fastHashFillStep position into the hash table. + * Insert the other positions if their hash entry is empty. + */ + for ( ; ip + fastHashFillStep < iend + 2; ip += fastHashFillStep) { + U32 const curr = (U32)(ip - base); + size_t const hash0 = ZSTD_hashPtr(ip, hBits, mls); + hashTable[hash0] = curr; + if (dtlm == ZSTD_dtlm_fast) continue; + /* Only load extra positions for ZSTD_dtlm_full */ + { U32 p; + for (p = 1; p < fastHashFillStep; ++p) { + size_t const hash = ZSTD_hashPtr(ip + p, hBits, mls); + if (hashTable[hash] == 0) { /* not yet filled */ + hashTable[hash] = curr + p; + } } } } +} + +void ZSTD_fillHashTable(ZSTD_matchState_t* ms, + const void* const end, + ZSTD_dictTableLoadMethod_e dtlm, + ZSTD_tableFillPurpose_e tfp) +{ + if (tfp == ZSTD_tfp_forCDict) { + ZSTD_fillHashTableForCDict(ms, end, dtlm); + } else { + ZSTD_fillHashTableForCCtx(ms, end, dtlm); + } +} + + +/** + * If you squint hard enough (and ignore repcodes), the search operation at any + * given position is broken into 4 stages: + * + * 1. Hash (map position to hash value via input read) + * 2. Lookup (map hash val to index via hashtable read) + * 3. Load (map index to value at that position via input read) + * 4. Compare + * + * Each of these steps involves a memory read at an address which is computed + * from the previous step. This means these steps must be sequenced and their + * latencies are cumulative. + * + * Rather than do 1->2->3->4 sequentially for a single position before moving + * onto the next, this implementation interleaves these operations across the + * next few positions: + * + * R = Repcode Read & Compare + * H = Hash + * T = Table Lookup + * M = Match Read & Compare + * + * Pos | Time --> + * ----+------------------- + * N | ... M + * N+1 | ... TM + * N+2 | R H T M + * N+3 | H TM + * N+4 | R H T M + * N+5 | H ... + * N+6 | R ... + * + * This is very much analogous to the pipelining of execution in a CPU. And just + * like a CPU, we have to dump the pipeline when we find a match (i.e., take a + * branch). + * + * When this happens, we throw away our current state, and do the following prep + * to re-enter the loop: + * + * Pos | Time --> + * ----+------------------- + * N | H T + * N+1 | H + * + * This is also the work we do at the beginning to enter the loop initially. + */ +FORCE_INLINE_TEMPLATE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_compressBlock_fast_noDict_generic( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize, + U32 const mls, U32 const hasStep) +{ + const ZSTD_compressionParameters* const cParams = &ms->cParams; + U32* const hashTable = ms->hashTable; + U32 const hlog = cParams->hashLog; + /* support stepSize of 0 */ + size_t const stepSize = hasStep ? (cParams->targetLength + !(cParams->targetLength) + 1) : 2; + const BYTE* const base = ms->window.base; + const BYTE* const istart = (const BYTE*)src; + const U32 endIndex = (U32)((size_t)(istart - base) + srcSize); + const U32 prefixStartIndex = ZSTD_getLowestPrefixIndex(ms, endIndex, cParams->windowLog); + const BYTE* const prefixStart = base + prefixStartIndex; + const BYTE* const iend = istart + srcSize; + const BYTE* const ilimit = iend - HASH_READ_SIZE; + + const BYTE* anchor = istart; + const BYTE* ip0 = istart; + const BYTE* ip1; + const BYTE* ip2; + const BYTE* ip3; + U32 current0; + + U32 rep_offset1 = rep[0]; + U32 rep_offset2 = rep[1]; + U32 offsetSaved1 = 0, offsetSaved2 = 0; + + size_t hash0; /* hash for ip0 */ + size_t hash1; /* hash for ip1 */ + U32 idx; /* match idx for ip0 */ + U32 mval; /* src value at match idx */ + + U32 offcode; + const BYTE* match0; + size_t mLength; + + /* ip0 and ip1 are always adjacent. The targetLength skipping and + * uncompressibility acceleration is applied to every other position, + * matching the behavior of #1562. step therefore represents the gap + * between pairs of positions, from ip0 to ip2 or ip1 to ip3. */ + size_t step; + const BYTE* nextStep; + const size_t kStepIncr = (1 << (kSearchStrength - 1)); + + DEBUGLOG(5, "ZSTD_compressBlock_fast_generic"); + ip0 += (ip0 == prefixStart); + { U32 const curr = (U32)(ip0 - base); + U32 const windowLow = ZSTD_getLowestPrefixIndex(ms, curr, cParams->windowLog); + U32 const maxRep = curr - windowLow; + if (rep_offset2 > maxRep) offsetSaved2 = rep_offset2, rep_offset2 = 0; + if (rep_offset1 > maxRep) offsetSaved1 = rep_offset1, rep_offset1 = 0; + } + + /* start each op */ +_start: /* Requires: ip0 */ + + step = stepSize; + nextStep = ip0 + kStepIncr; + + /* calculate positions, ip0 - anchor == 0, so we skip step calc */ + ip1 = ip0 + 1; + ip2 = ip0 + step; + ip3 = ip2 + 1; + + if (ip3 >= ilimit) { + goto _cleanup; + } + + hash0 = ZSTD_hashPtr(ip0, hlog, mls); + hash1 = ZSTD_hashPtr(ip1, hlog, mls); + + idx = hashTable[hash0]; + + do { + /* load repcode match for ip[2]*/ + const U32 rval = MEM_read32(ip2 - rep_offset1); + + /* write back hash table entry */ + current0 = (U32)(ip0 - base); + hashTable[hash0] = current0; + + /* check repcode at ip[2] */ + if ((MEM_read32(ip2) == rval) & (rep_offset1 > 0)) { + ip0 = ip2; + match0 = ip0 - rep_offset1; + mLength = ip0[-1] == match0[-1]; + ip0 -= mLength; + match0 -= mLength; + offcode = REPCODE1_TO_OFFBASE; + mLength += 4; + + /* First write next hash table entry; we've already calculated it. + * This write is known to be safe because the ip1 is before the + * repcode (ip2). */ + hashTable[hash1] = (U32)(ip1 - base); + + goto _match; + } + + /* load match for ip[0] */ + if (idx >= prefixStartIndex) { + mval = MEM_read32(base + idx); + } else { + mval = MEM_read32(ip0) ^ 1; /* guaranteed to not match. */ + } + + /* check match at ip[0] */ + if (MEM_read32(ip0) == mval) { + /* found a match! */ + + /* First write next hash table entry; we've already calculated it. + * This write is known to be safe because the ip1 == ip0 + 1, so + * we know we will resume searching after ip1 */ + hashTable[hash1] = (U32)(ip1 - base); + + goto _offset; + } + + /* lookup ip[1] */ + idx = hashTable[hash1]; + + /* hash ip[2] */ + hash0 = hash1; + hash1 = ZSTD_hashPtr(ip2, hlog, mls); + + /* advance to next positions */ + ip0 = ip1; + ip1 = ip2; + ip2 = ip3; + + /* write back hash table entry */ + current0 = (U32)(ip0 - base); + hashTable[hash0] = current0; + + /* load match for ip[0] */ + if (idx >= prefixStartIndex) { + mval = MEM_read32(base + idx); + } else { + mval = MEM_read32(ip0) ^ 1; /* guaranteed to not match. */ + } + + /* check match at ip[0] */ + if (MEM_read32(ip0) == mval) { + /* found a match! */ + + /* first write next hash table entry; we've already calculated it */ + if (step <= 4) { + /* We need to avoid writing an index into the hash table >= the + * position at which we will pick up our searching after we've + * taken this match. + * + * The minimum possible match has length 4, so the earliest ip0 + * can be after we take this match will be the current ip0 + 4. + * ip1 is ip0 + step - 1. If ip1 is >= ip0 + 4, we can't safely + * write this position. + */ + hashTable[hash1] = (U32)(ip1 - base); + } + + goto _offset; + } + + /* lookup ip[1] */ + idx = hashTable[hash1]; + + /* hash ip[2] */ + hash0 = hash1; + hash1 = ZSTD_hashPtr(ip2, hlog, mls); + + /* advance to next positions */ + ip0 = ip1; + ip1 = ip2; + ip2 = ip0 + step; + ip3 = ip1 + step; + + /* calculate step */ + if (ip2 >= nextStep) { + step++; + PREFETCH_L1(ip1 + 64); + PREFETCH_L1(ip1 + 128); + nextStep += kStepIncr; + } + } while (ip3 < ilimit); + +_cleanup: + /* Note that there are probably still a couple positions we could search. + * However, it seems to be a meaningful performance hit to try to search + * them. So let's not. */ + + /* When the repcodes are outside of the prefix, we set them to zero before the loop. + * When the offsets are still zero, we need to restore them after the block to have a correct + * repcode history. If only one offset was invalid, it is easy. The tricky case is when both + * offsets were invalid. We need to figure out which offset to refill with. + * - If both offsets are zero they are in the same order. + * - If both offsets are non-zero, we won't restore the offsets from `offsetSaved[12]`. + * - If only one is zero, we need to decide which offset to restore. + * - If rep_offset1 is non-zero, then rep_offset2 must be offsetSaved1. + * - It is impossible for rep_offset2 to be non-zero. + * + * So if rep_offset1 started invalid (offsetSaved1 != 0) and became valid (rep_offset1 != 0), then + * set rep[0] = rep_offset1 and rep[1] = offsetSaved1. + */ + offsetSaved2 = ((offsetSaved1 != 0) && (rep_offset1 != 0)) ? offsetSaved1 : offsetSaved2; + + /* save reps for next block */ + rep[0] = rep_offset1 ? rep_offset1 : offsetSaved1; + rep[1] = rep_offset2 ? rep_offset2 : offsetSaved2; + + /* Return the last literals size */ + return (size_t)(iend - anchor); + +_offset: /* Requires: ip0, idx */ + + /* Compute the offset code. */ + match0 = base + idx; + rep_offset2 = rep_offset1; + rep_offset1 = (U32)(ip0-match0); + offcode = OFFSET_TO_OFFBASE(rep_offset1); + mLength = 4; + + /* Count the backwards match length. */ + while (((ip0>anchor) & (match0>prefixStart)) && (ip0[-1] == match0[-1])) { + ip0--; + match0--; + mLength++; + } + +_match: /* Requires: ip0, match0, offcode */ + + /* Count the forward length. */ + mLength += ZSTD_count(ip0 + mLength, match0 + mLength, iend); + + ZSTD_storeSeq(seqStore, (size_t)(ip0 - anchor), anchor, iend, offcode, mLength); + + ip0 += mLength; + anchor = ip0; + + /* Fill table and check for immediate repcode. */ + if (ip0 <= ilimit) { + /* Fill Table */ + assert(base+current0+2 > istart); /* check base overflow */ + hashTable[ZSTD_hashPtr(base+current0+2, hlog, mls)] = current0+2; /* here because current+2 could be > iend-8 */ + hashTable[ZSTD_hashPtr(ip0-2, hlog, mls)] = (U32)(ip0-2-base); + + if (rep_offset2 > 0) { /* rep_offset2==0 means rep_offset2 is invalidated */ + while ( (ip0 <= ilimit) && (MEM_read32(ip0) == MEM_read32(ip0 - rep_offset2)) ) { + /* store sequence */ + size_t const rLength = ZSTD_count(ip0+4, ip0+4-rep_offset2, iend) + 4; + { U32 const tmpOff = rep_offset2; rep_offset2 = rep_offset1; rep_offset1 = tmpOff; } /* swap rep_offset2 <=> rep_offset1 */ + hashTable[ZSTD_hashPtr(ip0, hlog, mls)] = (U32)(ip0-base); + ip0 += rLength; + ZSTD_storeSeq(seqStore, 0 /*litLen*/, anchor, iend, REPCODE1_TO_OFFBASE, rLength); + anchor = ip0; + continue; /* faster when present (confirmed on gcc-8) ... (?) */ + } } } + + goto _start; +} + +#define ZSTD_GEN_FAST_FN(dictMode, mls, step) \ + static size_t ZSTD_compressBlock_fast_##dictMode##_##mls##_##step( \ + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], \ + void const* src, size_t srcSize) \ + { \ + return ZSTD_compressBlock_fast_##dictMode##_generic(ms, seqStore, rep, src, srcSize, mls, step); \ + } + +ZSTD_GEN_FAST_FN(noDict, 4, 1) +ZSTD_GEN_FAST_FN(noDict, 5, 1) +ZSTD_GEN_FAST_FN(noDict, 6, 1) +ZSTD_GEN_FAST_FN(noDict, 7, 1) + +ZSTD_GEN_FAST_FN(noDict, 4, 0) +ZSTD_GEN_FAST_FN(noDict, 5, 0) +ZSTD_GEN_FAST_FN(noDict, 6, 0) +ZSTD_GEN_FAST_FN(noDict, 7, 0) + +size_t ZSTD_compressBlock_fast( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + U32 const mls = ms->cParams.minMatch; + assert(ms->dictMatchState == NULL); + if (ms->cParams.targetLength > 1) { + switch(mls) + { + default: /* includes case 3 */ + case 4 : + return ZSTD_compressBlock_fast_noDict_4_1(ms, seqStore, rep, src, srcSize); + case 5 : + return ZSTD_compressBlock_fast_noDict_5_1(ms, seqStore, rep, src, srcSize); + case 6 : + return ZSTD_compressBlock_fast_noDict_6_1(ms, seqStore, rep, src, srcSize); + case 7 : + return ZSTD_compressBlock_fast_noDict_7_1(ms, seqStore, rep, src, srcSize); + } + } else { + switch(mls) + { + default: /* includes case 3 */ + case 4 : + return ZSTD_compressBlock_fast_noDict_4_0(ms, seqStore, rep, src, srcSize); + case 5 : + return ZSTD_compressBlock_fast_noDict_5_0(ms, seqStore, rep, src, srcSize); + case 6 : + return ZSTD_compressBlock_fast_noDict_6_0(ms, seqStore, rep, src, srcSize); + case 7 : + return ZSTD_compressBlock_fast_noDict_7_0(ms, seqStore, rep, src, srcSize); + } + + } +} + +FORCE_INLINE_TEMPLATE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_compressBlock_fast_dictMatchState_generic( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize, U32 const mls, U32 const hasStep) +{ + const ZSTD_compressionParameters* const cParams = &ms->cParams; + U32* const hashTable = ms->hashTable; + U32 const hlog = cParams->hashLog; + /* support stepSize of 0 */ + U32 const stepSize = cParams->targetLength + !(cParams->targetLength); + const BYTE* const base = ms->window.base; + const BYTE* const istart = (const BYTE*)src; + const BYTE* ip0 = istart; + const BYTE* ip1 = ip0 + stepSize; /* we assert below that stepSize >= 1 */ + const BYTE* anchor = istart; + const U32 prefixStartIndex = ms->window.dictLimit; + const BYTE* const prefixStart = base + prefixStartIndex; + const BYTE* const iend = istart + srcSize; + const BYTE* const ilimit = iend - HASH_READ_SIZE; + U32 offset_1=rep[0], offset_2=rep[1]; + + const ZSTD_matchState_t* const dms = ms->dictMatchState; + const ZSTD_compressionParameters* const dictCParams = &dms->cParams ; + const U32* const dictHashTable = dms->hashTable; + const U32 dictStartIndex = dms->window.dictLimit; + const BYTE* const dictBase = dms->window.base; + const BYTE* const dictStart = dictBase + dictStartIndex; + const BYTE* const dictEnd = dms->window.nextSrc; + const U32 dictIndexDelta = prefixStartIndex - (U32)(dictEnd - dictBase); + const U32 dictAndPrefixLength = (U32)(istart - prefixStart + dictEnd - dictStart); + const U32 dictHBits = dictCParams->hashLog + ZSTD_SHORT_CACHE_TAG_BITS; + + /* if a dictionary is still attached, it necessarily means that + * it is within window size. So we just check it. */ + const U32 maxDistance = 1U << cParams->windowLog; + const U32 endIndex = (U32)((size_t)(istart - base) + srcSize); + assert(endIndex - prefixStartIndex <= maxDistance); + (void)maxDistance; (void)endIndex; /* these variables are not used when assert() is disabled */ + + (void)hasStep; /* not currently specialized on whether it's accelerated */ + + /* ensure there will be no underflow + * when translating a dict index into a local index */ + assert(prefixStartIndex >= (U32)(dictEnd - dictBase)); + + if (ms->prefetchCDictTables) { + size_t const hashTableBytes = (((size_t)1) << dictCParams->hashLog) * sizeof(U32); + PREFETCH_AREA(dictHashTable, hashTableBytes); + } + + /* init */ + DEBUGLOG(5, "ZSTD_compressBlock_fast_dictMatchState_generic"); + ip0 += (dictAndPrefixLength == 0); + /* dictMatchState repCode checks don't currently handle repCode == 0 + * disabling. */ + assert(offset_1 <= dictAndPrefixLength); + assert(offset_2 <= dictAndPrefixLength); + + /* Outer search loop */ + assert(stepSize >= 1); + while (ip1 <= ilimit) { /* repcode check at (ip0 + 1) is safe because ip0 < ip1 */ + size_t mLength; + size_t hash0 = ZSTD_hashPtr(ip0, hlog, mls); + + size_t const dictHashAndTag0 = ZSTD_hashPtr(ip0, dictHBits, mls); + U32 dictMatchIndexAndTag = dictHashTable[dictHashAndTag0 >> ZSTD_SHORT_CACHE_TAG_BITS]; + int dictTagsMatch = ZSTD_comparePackedTags(dictMatchIndexAndTag, dictHashAndTag0); + + U32 matchIndex = hashTable[hash0]; + U32 curr = (U32)(ip0 - base); + size_t step = stepSize; + const size_t kStepIncr = 1 << kSearchStrength; + const BYTE* nextStep = ip0 + kStepIncr; + + /* Inner search loop */ + while (1) { + const BYTE* match = base + matchIndex; + const U32 repIndex = curr + 1 - offset_1; + const BYTE* repMatch = (repIndex < prefixStartIndex) ? + dictBase + (repIndex - dictIndexDelta) : + base + repIndex; + const size_t hash1 = ZSTD_hashPtr(ip1, hlog, mls); + size_t const dictHashAndTag1 = ZSTD_hashPtr(ip1, dictHBits, mls); + hashTable[hash0] = curr; /* update hash table */ + + if (((U32) ((prefixStartIndex - 1) - repIndex) >= + 3) /* intentional underflow : ensure repIndex isn't overlapping dict + prefix */ + && (MEM_read32(repMatch) == MEM_read32(ip0 + 1))) { + const BYTE* const repMatchEnd = repIndex < prefixStartIndex ? dictEnd : iend; + mLength = ZSTD_count_2segments(ip0 + 1 + 4, repMatch + 4, iend, repMatchEnd, prefixStart) + 4; + ip0++; + ZSTD_storeSeq(seqStore, (size_t) (ip0 - anchor), anchor, iend, REPCODE1_TO_OFFBASE, mLength); + break; + } + + if (dictTagsMatch) { + /* Found a possible dict match */ + const U32 dictMatchIndex = dictMatchIndexAndTag >> ZSTD_SHORT_CACHE_TAG_BITS; + const BYTE* dictMatch = dictBase + dictMatchIndex; + if (dictMatchIndex > dictStartIndex && + MEM_read32(dictMatch) == MEM_read32(ip0)) { + /* To replicate extDict parse behavior, we only use dict matches when the normal matchIndex is invalid */ + if (matchIndex <= prefixStartIndex) { + U32 const offset = (U32) (curr - dictMatchIndex - dictIndexDelta); + mLength = ZSTD_count_2segments(ip0 + 4, dictMatch + 4, iend, dictEnd, prefixStart) + 4; + while (((ip0 > anchor) & (dictMatch > dictStart)) + && (ip0[-1] == dictMatch[-1])) { + ip0--; + dictMatch--; + mLength++; + } /* catch up */ + offset_2 = offset_1; + offset_1 = offset; + ZSTD_storeSeq(seqStore, (size_t) (ip0 - anchor), anchor, iend, OFFSET_TO_OFFBASE(offset), mLength); + break; + } + } + } + + if (matchIndex > prefixStartIndex && MEM_read32(match) == MEM_read32(ip0)) { + /* found a regular match */ + U32 const offset = (U32) (ip0 - match); + mLength = ZSTD_count(ip0 + 4, match + 4, iend) + 4; + while (((ip0 > anchor) & (match > prefixStart)) + && (ip0[-1] == match[-1])) { + ip0--; + match--; + mLength++; + } /* catch up */ + offset_2 = offset_1; + offset_1 = offset; + ZSTD_storeSeq(seqStore, (size_t) (ip0 - anchor), anchor, iend, OFFSET_TO_OFFBASE(offset), mLength); + break; + } + + /* Prepare for next iteration */ + dictMatchIndexAndTag = dictHashTable[dictHashAndTag1 >> ZSTD_SHORT_CACHE_TAG_BITS]; + dictTagsMatch = ZSTD_comparePackedTags(dictMatchIndexAndTag, dictHashAndTag1); + matchIndex = hashTable[hash1]; + + if (ip1 >= nextStep) { + step++; + nextStep += kStepIncr; + } + ip0 = ip1; + ip1 = ip1 + step; + if (ip1 > ilimit) goto _cleanup; + + curr = (U32)(ip0 - base); + hash0 = hash1; + } /* end inner search loop */ + + /* match found */ + assert(mLength); + ip0 += mLength; + anchor = ip0; + + if (ip0 <= ilimit) { + /* Fill Table */ + assert(base+curr+2 > istart); /* check base overflow */ + hashTable[ZSTD_hashPtr(base+curr+2, hlog, mls)] = curr+2; /* here because curr+2 could be > iend-8 */ + hashTable[ZSTD_hashPtr(ip0-2, hlog, mls)] = (U32)(ip0-2-base); + + /* check immediate repcode */ + while (ip0 <= ilimit) { + U32 const current2 = (U32)(ip0-base); + U32 const repIndex2 = current2 - offset_2; + const BYTE* repMatch2 = repIndex2 < prefixStartIndex ? + dictBase - dictIndexDelta + repIndex2 : + base + repIndex2; + if ( ((U32)((prefixStartIndex-1) - (U32)repIndex2) >= 3 /* intentional overflow */) + && (MEM_read32(repMatch2) == MEM_read32(ip0))) { + const BYTE* const repEnd2 = repIndex2 < prefixStartIndex ? dictEnd : iend; + size_t const repLength2 = ZSTD_count_2segments(ip0+4, repMatch2+4, iend, repEnd2, prefixStart) + 4; + U32 tmpOffset = offset_2; offset_2 = offset_1; offset_1 = tmpOffset; /* swap offset_2 <=> offset_1 */ + ZSTD_storeSeq(seqStore, 0, anchor, iend, REPCODE1_TO_OFFBASE, repLength2); + hashTable[ZSTD_hashPtr(ip0, hlog, mls)] = current2; + ip0 += repLength2; + anchor = ip0; + continue; + } + break; + } + } + + /* Prepare for next iteration */ + assert(ip0 == anchor); + ip1 = ip0 + stepSize; + } + +_cleanup: + /* save reps for next block */ + rep[0] = offset_1; + rep[1] = offset_2; + + /* Return the last literals size */ + return (size_t)(iend - anchor); +} + + +ZSTD_GEN_FAST_FN(dictMatchState, 4, 0) +ZSTD_GEN_FAST_FN(dictMatchState, 5, 0) +ZSTD_GEN_FAST_FN(dictMatchState, 6, 0) +ZSTD_GEN_FAST_FN(dictMatchState, 7, 0) + +size_t ZSTD_compressBlock_fast_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + U32 const mls = ms->cParams.minMatch; + assert(ms->dictMatchState != NULL); + switch(mls) + { + default: /* includes case 3 */ + case 4 : + return ZSTD_compressBlock_fast_dictMatchState_4_0(ms, seqStore, rep, src, srcSize); + case 5 : + return ZSTD_compressBlock_fast_dictMatchState_5_0(ms, seqStore, rep, src, srcSize); + case 6 : + return ZSTD_compressBlock_fast_dictMatchState_6_0(ms, seqStore, rep, src, srcSize); + case 7 : + return ZSTD_compressBlock_fast_dictMatchState_7_0(ms, seqStore, rep, src, srcSize); + } +} + + +static +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_compressBlock_fast_extDict_generic( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize, U32 const mls, U32 const hasStep) +{ + const ZSTD_compressionParameters* const cParams = &ms->cParams; + U32* const hashTable = ms->hashTable; + U32 const hlog = cParams->hashLog; + /* support stepSize of 0 */ + size_t const stepSize = cParams->targetLength + !(cParams->targetLength) + 1; + const BYTE* const base = ms->window.base; + const BYTE* const dictBase = ms->window.dictBase; + const BYTE* const istart = (const BYTE*)src; + const BYTE* anchor = istart; + const U32 endIndex = (U32)((size_t)(istart - base) + srcSize); + const U32 lowLimit = ZSTD_getLowestMatchIndex(ms, endIndex, cParams->windowLog); + const U32 dictStartIndex = lowLimit; + const BYTE* const dictStart = dictBase + dictStartIndex; + const U32 dictLimit = ms->window.dictLimit; + const U32 prefixStartIndex = dictLimit < lowLimit ? lowLimit : dictLimit; + const BYTE* const prefixStart = base + prefixStartIndex; + const BYTE* const dictEnd = dictBase + prefixStartIndex; + const BYTE* const iend = istart + srcSize; + const BYTE* const ilimit = iend - 8; + U32 offset_1=rep[0], offset_2=rep[1]; + U32 offsetSaved1 = 0, offsetSaved2 = 0; + + const BYTE* ip0 = istart; + const BYTE* ip1; + const BYTE* ip2; + const BYTE* ip3; + U32 current0; + + + size_t hash0; /* hash for ip0 */ + size_t hash1; /* hash for ip1 */ + U32 idx; /* match idx for ip0 */ + const BYTE* idxBase; /* base pointer for idx */ + + U32 offcode; + const BYTE* match0; + size_t mLength; + const BYTE* matchEnd = 0; /* initialize to avoid warning, assert != 0 later */ + + size_t step; + const BYTE* nextStep; + const size_t kStepIncr = (1 << (kSearchStrength - 1)); + + (void)hasStep; /* not currently specialized on whether it's accelerated */ + + DEBUGLOG(5, "ZSTD_compressBlock_fast_extDict_generic (offset_1=%u)", offset_1); + + /* switch to "regular" variant if extDict is invalidated due to maxDistance */ + if (prefixStartIndex == dictStartIndex) + return ZSTD_compressBlock_fast(ms, seqStore, rep, src, srcSize); + + { U32 const curr = (U32)(ip0 - base); + U32 const maxRep = curr - dictStartIndex; + if (offset_2 >= maxRep) offsetSaved2 = offset_2, offset_2 = 0; + if (offset_1 >= maxRep) offsetSaved1 = offset_1, offset_1 = 0; + } + + /* start each op */ +_start: /* Requires: ip0 */ + + step = stepSize; + nextStep = ip0 + kStepIncr; + + /* calculate positions, ip0 - anchor == 0, so we skip step calc */ + ip1 = ip0 + 1; + ip2 = ip0 + step; + ip3 = ip2 + 1; + + if (ip3 >= ilimit) { + goto _cleanup; + } + + hash0 = ZSTD_hashPtr(ip0, hlog, mls); + hash1 = ZSTD_hashPtr(ip1, hlog, mls); + + idx = hashTable[hash0]; + idxBase = idx < prefixStartIndex ? dictBase : base; + + do { + { /* load repcode match for ip[2] */ + U32 const current2 = (U32)(ip2 - base); + U32 const repIndex = current2 - offset_1; + const BYTE* const repBase = repIndex < prefixStartIndex ? dictBase : base; + U32 rval; + if ( ((U32)(prefixStartIndex - repIndex) >= 4) /* intentional underflow */ + & (offset_1 > 0) ) { + rval = MEM_read32(repBase + repIndex); + } else { + rval = MEM_read32(ip2) ^ 1; /* guaranteed to not match. */ + } + + /* write back hash table entry */ + current0 = (U32)(ip0 - base); + hashTable[hash0] = current0; + + /* check repcode at ip[2] */ + if (MEM_read32(ip2) == rval) { + ip0 = ip2; + match0 = repBase + repIndex; + matchEnd = repIndex < prefixStartIndex ? dictEnd : iend; + assert((match0 != prefixStart) & (match0 != dictStart)); + mLength = ip0[-1] == match0[-1]; + ip0 -= mLength; + match0 -= mLength; + offcode = REPCODE1_TO_OFFBASE; + mLength += 4; + goto _match; + } } + + { /* load match for ip[0] */ + U32 const mval = idx >= dictStartIndex ? + MEM_read32(idxBase + idx) : + MEM_read32(ip0) ^ 1; /* guaranteed not to match */ + + /* check match at ip[0] */ + if (MEM_read32(ip0) == mval) { + /* found a match! */ + goto _offset; + } } + + /* lookup ip[1] */ + idx = hashTable[hash1]; + idxBase = idx < prefixStartIndex ? dictBase : base; + + /* hash ip[2] */ + hash0 = hash1; + hash1 = ZSTD_hashPtr(ip2, hlog, mls); + + /* advance to next positions */ + ip0 = ip1; + ip1 = ip2; + ip2 = ip3; + + /* write back hash table entry */ + current0 = (U32)(ip0 - base); + hashTable[hash0] = current0; + + { /* load match for ip[0] */ + U32 const mval = idx >= dictStartIndex ? + MEM_read32(idxBase + idx) : + MEM_read32(ip0) ^ 1; /* guaranteed not to match */ + + /* check match at ip[0] */ + if (MEM_read32(ip0) == mval) { + /* found a match! */ + goto _offset; + } } + + /* lookup ip[1] */ + idx = hashTable[hash1]; + idxBase = idx < prefixStartIndex ? dictBase : base; + + /* hash ip[2] */ + hash0 = hash1; + hash1 = ZSTD_hashPtr(ip2, hlog, mls); + + /* advance to next positions */ + ip0 = ip1; + ip1 = ip2; + ip2 = ip0 + step; + ip3 = ip1 + step; + + /* calculate step */ + if (ip2 >= nextStep) { + step++; + PREFETCH_L1(ip1 + 64); + PREFETCH_L1(ip1 + 128); + nextStep += kStepIncr; + } + } while (ip3 < ilimit); + +_cleanup: + /* Note that there are probably still a couple positions we could search. + * However, it seems to be a meaningful performance hit to try to search + * them. So let's not. */ + + /* If offset_1 started invalid (offsetSaved1 != 0) and became valid (offset_1 != 0), + * rotate saved offsets. See comment in ZSTD_compressBlock_fast_noDict for more context. */ + offsetSaved2 = ((offsetSaved1 != 0) && (offset_1 != 0)) ? offsetSaved1 : offsetSaved2; + + /* save reps for next block */ + rep[0] = offset_1 ? offset_1 : offsetSaved1; + rep[1] = offset_2 ? offset_2 : offsetSaved2; + + /* Return the last literals size */ + return (size_t)(iend - anchor); + +_offset: /* Requires: ip0, idx, idxBase */ + + /* Compute the offset code. */ + { U32 const offset = current0 - idx; + const BYTE* const lowMatchPtr = idx < prefixStartIndex ? dictStart : prefixStart; + matchEnd = idx < prefixStartIndex ? dictEnd : iend; + match0 = idxBase + idx; + offset_2 = offset_1; + offset_1 = offset; + offcode = OFFSET_TO_OFFBASE(offset); + mLength = 4; + + /* Count the backwards match length. */ + while (((ip0>anchor) & (match0>lowMatchPtr)) && (ip0[-1] == match0[-1])) { + ip0--; + match0--; + mLength++; + } } + +_match: /* Requires: ip0, match0, offcode, matchEnd */ + + /* Count the forward length. */ + assert(matchEnd != 0); + mLength += ZSTD_count_2segments(ip0 + mLength, match0 + mLength, iend, matchEnd, prefixStart); + + ZSTD_storeSeq(seqStore, (size_t)(ip0 - anchor), anchor, iend, offcode, mLength); + + ip0 += mLength; + anchor = ip0; + + /* write next hash table entry */ + if (ip1 < ip0) { + hashTable[hash1] = (U32)(ip1 - base); + } + + /* Fill table and check for immediate repcode. */ + if (ip0 <= ilimit) { + /* Fill Table */ + assert(base+current0+2 > istart); /* check base overflow */ + hashTable[ZSTD_hashPtr(base+current0+2, hlog, mls)] = current0+2; /* here because current+2 could be > iend-8 */ + hashTable[ZSTD_hashPtr(ip0-2, hlog, mls)] = (U32)(ip0-2-base); + + while (ip0 <= ilimit) { + U32 const repIndex2 = (U32)(ip0-base) - offset_2; + const BYTE* const repMatch2 = repIndex2 < prefixStartIndex ? dictBase + repIndex2 : base + repIndex2; + if ( (((U32)((prefixStartIndex-1) - repIndex2) >= 3) & (offset_2 > 0)) /* intentional underflow */ + && (MEM_read32(repMatch2) == MEM_read32(ip0)) ) { + const BYTE* const repEnd2 = repIndex2 < prefixStartIndex ? dictEnd : iend; + size_t const repLength2 = ZSTD_count_2segments(ip0+4, repMatch2+4, iend, repEnd2, prefixStart) + 4; + { U32 const tmpOffset = offset_2; offset_2 = offset_1; offset_1 = tmpOffset; } /* swap offset_2 <=> offset_1 */ + ZSTD_storeSeq(seqStore, 0 /*litlen*/, anchor, iend, REPCODE1_TO_OFFBASE, repLength2); + hashTable[ZSTD_hashPtr(ip0, hlog, mls)] = (U32)(ip0-base); + ip0 += repLength2; + anchor = ip0; + continue; + } + break; + } } + + goto _start; +} + +ZSTD_GEN_FAST_FN(extDict, 4, 0) +ZSTD_GEN_FAST_FN(extDict, 5, 0) +ZSTD_GEN_FAST_FN(extDict, 6, 0) +ZSTD_GEN_FAST_FN(extDict, 7, 0) + +size_t ZSTD_compressBlock_fast_extDict( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + U32 const mls = ms->cParams.minMatch; + assert(ms->dictMatchState == NULL); + switch(mls) + { + default: /* includes case 3 */ + case 4 : + return ZSTD_compressBlock_fast_extDict_4_0(ms, seqStore, rep, src, srcSize); + case 5 : + return ZSTD_compressBlock_fast_extDict_5_0(ms, seqStore, rep, src, srcSize); + case 6 : + return ZSTD_compressBlock_fast_extDict_6_0(ms, seqStore, rep, src, srcSize); + case 7 : + return ZSTD_compressBlock_fast_extDict_7_0(ms, seqStore, rep, src, srcSize); + } +} diff --git a/deps/zstd/lib/compress/zstd_fast.h b/deps/zstd/lib/compress/zstd_fast.h new file mode 100644 index 00000000000000..9e4236b47280ee --- /dev/null +++ b/deps/zstd/lib/compress/zstd_fast.h @@ -0,0 +1,38 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_FAST_H +#define ZSTD_FAST_H + +#if defined (__cplusplus) +extern "C" { +#endif + +#include "../common/mem.h" /* U32 */ +#include "zstd_compress_internal.h" + +void ZSTD_fillHashTable(ZSTD_matchState_t* ms, + void const* end, ZSTD_dictTableLoadMethod_e dtlm, + ZSTD_tableFillPurpose_e tfp); +size_t ZSTD_compressBlock_fast( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_fast_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_fast_extDict( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); + +#if defined (__cplusplus) +} +#endif + +#endif /* ZSTD_FAST_H */ diff --git a/deps/zstd/lib/compress/zstd_lazy.c b/deps/zstd/lib/compress/zstd_lazy.c new file mode 100644 index 00000000000000..67dd55fdb80603 --- /dev/null +++ b/deps/zstd/lib/compress/zstd_lazy.c @@ -0,0 +1,2199 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#include "zstd_compress_internal.h" +#include "zstd_lazy.h" +#include "../common/bits.h" /* ZSTD_countTrailingZeros64 */ + +#if !defined(ZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR) + +#define kLazySkippingStep 8 + + +/*-************************************* +* Binary Tree search +***************************************/ + +static +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +void ZSTD_updateDUBT(ZSTD_matchState_t* ms, + const BYTE* ip, const BYTE* iend, + U32 mls) +{ + const ZSTD_compressionParameters* const cParams = &ms->cParams; + U32* const hashTable = ms->hashTable; + U32 const hashLog = cParams->hashLog; + + U32* const bt = ms->chainTable; + U32 const btLog = cParams->chainLog - 1; + U32 const btMask = (1 << btLog) - 1; + + const BYTE* const base = ms->window.base; + U32 const target = (U32)(ip - base); + U32 idx = ms->nextToUpdate; + + if (idx != target) + DEBUGLOG(7, "ZSTD_updateDUBT, from %u to %u (dictLimit:%u)", + idx, target, ms->window.dictLimit); + assert(ip + 8 <= iend); /* condition for ZSTD_hashPtr */ + (void)iend; + + assert(idx >= ms->window.dictLimit); /* condition for valid base+idx */ + for ( ; idx < target ; idx++) { + size_t const h = ZSTD_hashPtr(base + idx, hashLog, mls); /* assumption : ip + 8 <= iend */ + U32 const matchIndex = hashTable[h]; + + U32* const nextCandidatePtr = bt + 2*(idx&btMask); + U32* const sortMarkPtr = nextCandidatePtr + 1; + + DEBUGLOG(8, "ZSTD_updateDUBT: insert %u", idx); + hashTable[h] = idx; /* Update Hash Table */ + *nextCandidatePtr = matchIndex; /* update BT like a chain */ + *sortMarkPtr = ZSTD_DUBT_UNSORTED_MARK; + } + ms->nextToUpdate = target; +} + + +/** ZSTD_insertDUBT1() : + * sort one already inserted but unsorted position + * assumption : curr >= btlow == (curr - btmask) + * doesn't fail */ +static +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +void ZSTD_insertDUBT1(const ZSTD_matchState_t* ms, + U32 curr, const BYTE* inputEnd, + U32 nbCompares, U32 btLow, + const ZSTD_dictMode_e dictMode) +{ + const ZSTD_compressionParameters* const cParams = &ms->cParams; + U32* const bt = ms->chainTable; + U32 const btLog = cParams->chainLog - 1; + U32 const btMask = (1 << btLog) - 1; + size_t commonLengthSmaller=0, commonLengthLarger=0; + const BYTE* const base = ms->window.base; + const BYTE* const dictBase = ms->window.dictBase; + const U32 dictLimit = ms->window.dictLimit; + const BYTE* const ip = (curr>=dictLimit) ? base + curr : dictBase + curr; + const BYTE* const iend = (curr>=dictLimit) ? inputEnd : dictBase + dictLimit; + const BYTE* const dictEnd = dictBase + dictLimit; + const BYTE* const prefixStart = base + dictLimit; + const BYTE* match; + U32* smallerPtr = bt + 2*(curr&btMask); + U32* largerPtr = smallerPtr + 1; + U32 matchIndex = *smallerPtr; /* this candidate is unsorted : next sorted candidate is reached through *smallerPtr, while *largerPtr contains previous unsorted candidate (which is already saved and can be overwritten) */ + U32 dummy32; /* to be nullified at the end */ + U32 const windowValid = ms->window.lowLimit; + U32 const maxDistance = 1U << cParams->windowLog; + U32 const windowLow = (curr - windowValid > maxDistance) ? curr - maxDistance : windowValid; + + + DEBUGLOG(8, "ZSTD_insertDUBT1(%u) (dictLimit=%u, lowLimit=%u)", + curr, dictLimit, windowLow); + assert(curr >= btLow); + assert(ip < iend); /* condition for ZSTD_count */ + + for (; nbCompares && (matchIndex > windowLow); --nbCompares) { + U32* const nextPtr = bt + 2*(matchIndex & btMask); + size_t matchLength = MIN(commonLengthSmaller, commonLengthLarger); /* guaranteed minimum nb of common bytes */ + assert(matchIndex < curr); + /* note : all candidates are now supposed sorted, + * but it's still possible to have nextPtr[1] == ZSTD_DUBT_UNSORTED_MARK + * when a real index has the same value as ZSTD_DUBT_UNSORTED_MARK */ + + if ( (dictMode != ZSTD_extDict) + || (matchIndex+matchLength >= dictLimit) /* both in current segment*/ + || (curr < dictLimit) /* both in extDict */) { + const BYTE* const mBase = ( (dictMode != ZSTD_extDict) + || (matchIndex+matchLength >= dictLimit)) ? + base : dictBase; + assert( (matchIndex+matchLength >= dictLimit) /* might be wrong if extDict is incorrectly set to 0 */ + || (curr < dictLimit) ); + match = mBase + matchIndex; + matchLength += ZSTD_count(ip+matchLength, match+matchLength, iend); + } else { + match = dictBase + matchIndex; + matchLength += ZSTD_count_2segments(ip+matchLength, match+matchLength, iend, dictEnd, prefixStart); + if (matchIndex+matchLength >= dictLimit) + match = base + matchIndex; /* preparation for next read of match[matchLength] */ + } + + DEBUGLOG(8, "ZSTD_insertDUBT1: comparing %u with %u : found %u common bytes ", + curr, matchIndex, (U32)matchLength); + + if (ip+matchLength == iend) { /* equal : no way to know if inf or sup */ + break; /* drop , to guarantee consistency ; miss a bit of compression, but other solutions can corrupt tree */ + } + + if (match[matchLength] < ip[matchLength]) { /* necessarily within buffer */ + /* match is smaller than current */ + *smallerPtr = matchIndex; /* update smaller idx */ + commonLengthSmaller = matchLength; /* all smaller will now have at least this guaranteed common length */ + if (matchIndex <= btLow) { smallerPtr=&dummy32; break; } /* beyond tree size, stop searching */ + DEBUGLOG(8, "ZSTD_insertDUBT1: %u (>btLow=%u) is smaller : next => %u", + matchIndex, btLow, nextPtr[1]); + smallerPtr = nextPtr+1; /* new "candidate" => larger than match, which was smaller than target */ + matchIndex = nextPtr[1]; /* new matchIndex, larger than previous and closer to current */ + } else { + /* match is larger than current */ + *largerPtr = matchIndex; + commonLengthLarger = matchLength; + if (matchIndex <= btLow) { largerPtr=&dummy32; break; } /* beyond tree size, stop searching */ + DEBUGLOG(8, "ZSTD_insertDUBT1: %u (>btLow=%u) is larger => %u", + matchIndex, btLow, nextPtr[0]); + largerPtr = nextPtr; + matchIndex = nextPtr[0]; + } } + + *smallerPtr = *largerPtr = 0; +} + + +static +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_DUBT_findBetterDictMatch ( + const ZSTD_matchState_t* ms, + const BYTE* const ip, const BYTE* const iend, + size_t* offsetPtr, + size_t bestLength, + U32 nbCompares, + U32 const mls, + const ZSTD_dictMode_e dictMode) +{ + const ZSTD_matchState_t * const dms = ms->dictMatchState; + const ZSTD_compressionParameters* const dmsCParams = &dms->cParams; + const U32 * const dictHashTable = dms->hashTable; + U32 const hashLog = dmsCParams->hashLog; + size_t const h = ZSTD_hashPtr(ip, hashLog, mls); + U32 dictMatchIndex = dictHashTable[h]; + + const BYTE* const base = ms->window.base; + const BYTE* const prefixStart = base + ms->window.dictLimit; + U32 const curr = (U32)(ip-base); + const BYTE* const dictBase = dms->window.base; + const BYTE* const dictEnd = dms->window.nextSrc; + U32 const dictHighLimit = (U32)(dms->window.nextSrc - dms->window.base); + U32 const dictLowLimit = dms->window.lowLimit; + U32 const dictIndexDelta = ms->window.lowLimit - dictHighLimit; + + U32* const dictBt = dms->chainTable; + U32 const btLog = dmsCParams->chainLog - 1; + U32 const btMask = (1 << btLog) - 1; + U32 const btLow = (btMask >= dictHighLimit - dictLowLimit) ? dictLowLimit : dictHighLimit - btMask; + + size_t commonLengthSmaller=0, commonLengthLarger=0; + + (void)dictMode; + assert(dictMode == ZSTD_dictMatchState); + + for (; nbCompares && (dictMatchIndex > dictLowLimit); --nbCompares) { + U32* const nextPtr = dictBt + 2*(dictMatchIndex & btMask); + size_t matchLength = MIN(commonLengthSmaller, commonLengthLarger); /* guaranteed minimum nb of common bytes */ + const BYTE* match = dictBase + dictMatchIndex; + matchLength += ZSTD_count_2segments(ip+matchLength, match+matchLength, iend, dictEnd, prefixStart); + if (dictMatchIndex+matchLength >= dictHighLimit) + match = base + dictMatchIndex + dictIndexDelta; /* to prepare for next usage of match[matchLength] */ + + if (matchLength > bestLength) { + U32 matchIndex = dictMatchIndex + dictIndexDelta; + if ( (4*(int)(matchLength-bestLength)) > (int)(ZSTD_highbit32(curr-matchIndex+1) - ZSTD_highbit32((U32)offsetPtr[0]+1)) ) { + DEBUGLOG(9, "ZSTD_DUBT_findBetterDictMatch(%u) : found better match length %u -> %u and offsetCode %u -> %u (dictMatchIndex %u, matchIndex %u)", + curr, (U32)bestLength, (U32)matchLength, (U32)*offsetPtr, OFFSET_TO_OFFBASE(curr - matchIndex), dictMatchIndex, matchIndex); + bestLength = matchLength, *offsetPtr = OFFSET_TO_OFFBASE(curr - matchIndex); + } + if (ip+matchLength == iend) { /* reached end of input : ip[matchLength] is not valid, no way to know if it's larger or smaller than match */ + break; /* drop, to guarantee consistency (miss a little bit of compression) */ + } + } + + if (match[matchLength] < ip[matchLength]) { + if (dictMatchIndex <= btLow) { break; } /* beyond tree size, stop the search */ + commonLengthSmaller = matchLength; /* all smaller will now have at least this guaranteed common length */ + dictMatchIndex = nextPtr[1]; /* new matchIndex larger than previous (closer to current) */ + } else { + /* match is larger than current */ + if (dictMatchIndex <= btLow) { break; } /* beyond tree size, stop the search */ + commonLengthLarger = matchLength; + dictMatchIndex = nextPtr[0]; + } + } + + if (bestLength >= MINMATCH) { + U32 const mIndex = curr - (U32)OFFBASE_TO_OFFSET(*offsetPtr); (void)mIndex; + DEBUGLOG(8, "ZSTD_DUBT_findBetterDictMatch(%u) : found match of length %u and offsetCode %u (pos %u)", + curr, (U32)bestLength, (U32)*offsetPtr, mIndex); + } + return bestLength; + +} + + +static +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_DUBT_findBestMatch(ZSTD_matchState_t* ms, + const BYTE* const ip, const BYTE* const iend, + size_t* offBasePtr, + U32 const mls, + const ZSTD_dictMode_e dictMode) +{ + const ZSTD_compressionParameters* const cParams = &ms->cParams; + U32* const hashTable = ms->hashTable; + U32 const hashLog = cParams->hashLog; + size_t const h = ZSTD_hashPtr(ip, hashLog, mls); + U32 matchIndex = hashTable[h]; + + const BYTE* const base = ms->window.base; + U32 const curr = (U32)(ip-base); + U32 const windowLow = ZSTD_getLowestMatchIndex(ms, curr, cParams->windowLog); + + U32* const bt = ms->chainTable; + U32 const btLog = cParams->chainLog - 1; + U32 const btMask = (1 << btLog) - 1; + U32 const btLow = (btMask >= curr) ? 0 : curr - btMask; + U32 const unsortLimit = MAX(btLow, windowLow); + + U32* nextCandidate = bt + 2*(matchIndex&btMask); + U32* unsortedMark = bt + 2*(matchIndex&btMask) + 1; + U32 nbCompares = 1U << cParams->searchLog; + U32 nbCandidates = nbCompares; + U32 previousCandidate = 0; + + DEBUGLOG(7, "ZSTD_DUBT_findBestMatch (%u) ", curr); + assert(ip <= iend-8); /* required for h calculation */ + assert(dictMode != ZSTD_dedicatedDictSearch); + + /* reach end of unsorted candidates list */ + while ( (matchIndex > unsortLimit) + && (*unsortedMark == ZSTD_DUBT_UNSORTED_MARK) + && (nbCandidates > 1) ) { + DEBUGLOG(8, "ZSTD_DUBT_findBestMatch: candidate %u is unsorted", + matchIndex); + *unsortedMark = previousCandidate; /* the unsortedMark becomes a reversed chain, to move up back to original position */ + previousCandidate = matchIndex; + matchIndex = *nextCandidate; + nextCandidate = bt + 2*(matchIndex&btMask); + unsortedMark = bt + 2*(matchIndex&btMask) + 1; + nbCandidates --; + } + + /* nullify last candidate if it's still unsorted + * simplification, detrimental to compression ratio, beneficial for speed */ + if ( (matchIndex > unsortLimit) + && (*unsortedMark==ZSTD_DUBT_UNSORTED_MARK) ) { + DEBUGLOG(7, "ZSTD_DUBT_findBestMatch: nullify last unsorted candidate %u", + matchIndex); + *nextCandidate = *unsortedMark = 0; + } + + /* batch sort stacked candidates */ + matchIndex = previousCandidate; + while (matchIndex) { /* will end on matchIndex == 0 */ + U32* const nextCandidateIdxPtr = bt + 2*(matchIndex&btMask) + 1; + U32 const nextCandidateIdx = *nextCandidateIdxPtr; + ZSTD_insertDUBT1(ms, matchIndex, iend, + nbCandidates, unsortLimit, dictMode); + matchIndex = nextCandidateIdx; + nbCandidates++; + } + + /* find longest match */ + { size_t commonLengthSmaller = 0, commonLengthLarger = 0; + const BYTE* const dictBase = ms->window.dictBase; + const U32 dictLimit = ms->window.dictLimit; + const BYTE* const dictEnd = dictBase + dictLimit; + const BYTE* const prefixStart = base + dictLimit; + U32* smallerPtr = bt + 2*(curr&btMask); + U32* largerPtr = bt + 2*(curr&btMask) + 1; + U32 matchEndIdx = curr + 8 + 1; + U32 dummy32; /* to be nullified at the end */ + size_t bestLength = 0; + + matchIndex = hashTable[h]; + hashTable[h] = curr; /* Update Hash Table */ + + for (; nbCompares && (matchIndex > windowLow); --nbCompares) { + U32* const nextPtr = bt + 2*(matchIndex & btMask); + size_t matchLength = MIN(commonLengthSmaller, commonLengthLarger); /* guaranteed minimum nb of common bytes */ + const BYTE* match; + + if ((dictMode != ZSTD_extDict) || (matchIndex+matchLength >= dictLimit)) { + match = base + matchIndex; + matchLength += ZSTD_count(ip+matchLength, match+matchLength, iend); + } else { + match = dictBase + matchIndex; + matchLength += ZSTD_count_2segments(ip+matchLength, match+matchLength, iend, dictEnd, prefixStart); + if (matchIndex+matchLength >= dictLimit) + match = base + matchIndex; /* to prepare for next usage of match[matchLength] */ + } + + if (matchLength > bestLength) { + if (matchLength > matchEndIdx - matchIndex) + matchEndIdx = matchIndex + (U32)matchLength; + if ( (4*(int)(matchLength-bestLength)) > (int)(ZSTD_highbit32(curr - matchIndex + 1) - ZSTD_highbit32((U32)*offBasePtr)) ) + bestLength = matchLength, *offBasePtr = OFFSET_TO_OFFBASE(curr - matchIndex); + if (ip+matchLength == iend) { /* equal : no way to know if inf or sup */ + if (dictMode == ZSTD_dictMatchState) { + nbCompares = 0; /* in addition to avoiding checking any + * further in this loop, make sure we + * skip checking in the dictionary. */ + } + break; /* drop, to guarantee consistency (miss a little bit of compression) */ + } + } + + if (match[matchLength] < ip[matchLength]) { + /* match is smaller than current */ + *smallerPtr = matchIndex; /* update smaller idx */ + commonLengthSmaller = matchLength; /* all smaller will now have at least this guaranteed common length */ + if (matchIndex <= btLow) { smallerPtr=&dummy32; break; } /* beyond tree size, stop the search */ + smallerPtr = nextPtr+1; /* new "smaller" => larger of match */ + matchIndex = nextPtr[1]; /* new matchIndex larger than previous (closer to current) */ + } else { + /* match is larger than current */ + *largerPtr = matchIndex; + commonLengthLarger = matchLength; + if (matchIndex <= btLow) { largerPtr=&dummy32; break; } /* beyond tree size, stop the search */ + largerPtr = nextPtr; + matchIndex = nextPtr[0]; + } } + + *smallerPtr = *largerPtr = 0; + + assert(nbCompares <= (1U << ZSTD_SEARCHLOG_MAX)); /* Check we haven't underflowed. */ + if (dictMode == ZSTD_dictMatchState && nbCompares) { + bestLength = ZSTD_DUBT_findBetterDictMatch( + ms, ip, iend, + offBasePtr, bestLength, nbCompares, + mls, dictMode); + } + + assert(matchEndIdx > curr+8); /* ensure nextToUpdate is increased */ + ms->nextToUpdate = matchEndIdx - 8; /* skip repetitive patterns */ + if (bestLength >= MINMATCH) { + U32 const mIndex = curr - (U32)OFFBASE_TO_OFFSET(*offBasePtr); (void)mIndex; + DEBUGLOG(8, "ZSTD_DUBT_findBestMatch(%u) : found match of length %u and offsetCode %u (pos %u)", + curr, (U32)bestLength, (U32)*offBasePtr, mIndex); + } + return bestLength; + } +} + + +/** ZSTD_BtFindBestMatch() : Tree updater, providing best match */ +FORCE_INLINE_TEMPLATE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_BtFindBestMatch( ZSTD_matchState_t* ms, + const BYTE* const ip, const BYTE* const iLimit, + size_t* offBasePtr, + const U32 mls /* template */, + const ZSTD_dictMode_e dictMode) +{ + DEBUGLOG(7, "ZSTD_BtFindBestMatch"); + if (ip < ms->window.base + ms->nextToUpdate) return 0; /* skipped area */ + ZSTD_updateDUBT(ms, ip, iLimit, mls); + return ZSTD_DUBT_findBestMatch(ms, ip, iLimit, offBasePtr, mls, dictMode); +} + +/*********************************** +* Dedicated dict search +***********************************/ + +void ZSTD_dedicatedDictSearch_lazy_loadDictionary(ZSTD_matchState_t* ms, const BYTE* const ip) +{ + const BYTE* const base = ms->window.base; + U32 const target = (U32)(ip - base); + U32* const hashTable = ms->hashTable; + U32* const chainTable = ms->chainTable; + U32 const chainSize = 1 << ms->cParams.chainLog; + U32 idx = ms->nextToUpdate; + U32 const minChain = chainSize < target - idx ? target - chainSize : idx; + U32 const bucketSize = 1 << ZSTD_LAZY_DDSS_BUCKET_LOG; + U32 const cacheSize = bucketSize - 1; + U32 const chainAttempts = (1 << ms->cParams.searchLog) - cacheSize; + U32 const chainLimit = chainAttempts > 255 ? 255 : chainAttempts; + + /* We know the hashtable is oversized by a factor of `bucketSize`. + * We are going to temporarily pretend `bucketSize == 1`, keeping only a + * single entry. We will use the rest of the space to construct a temporary + * chaintable. + */ + U32 const hashLog = ms->cParams.hashLog - ZSTD_LAZY_DDSS_BUCKET_LOG; + U32* const tmpHashTable = hashTable; + U32* const tmpChainTable = hashTable + ((size_t)1 << hashLog); + U32 const tmpChainSize = (U32)((1 << ZSTD_LAZY_DDSS_BUCKET_LOG) - 1) << hashLog; + U32 const tmpMinChain = tmpChainSize < target ? target - tmpChainSize : idx; + U32 hashIdx; + + assert(ms->cParams.chainLog <= 24); + assert(ms->cParams.hashLog > ms->cParams.chainLog); + assert(idx != 0); + assert(tmpMinChain <= minChain); + + /* fill conventional hash table and conventional chain table */ + for ( ; idx < target; idx++) { + U32 const h = (U32)ZSTD_hashPtr(base + idx, hashLog, ms->cParams.minMatch); + if (idx >= tmpMinChain) { + tmpChainTable[idx - tmpMinChain] = hashTable[h]; + } + tmpHashTable[h] = idx; + } + + /* sort chains into ddss chain table */ + { + U32 chainPos = 0; + for (hashIdx = 0; hashIdx < (1U << hashLog); hashIdx++) { + U32 count; + U32 countBeyondMinChain = 0; + U32 i = tmpHashTable[hashIdx]; + for (count = 0; i >= tmpMinChain && count < cacheSize; count++) { + /* skip through the chain to the first position that won't be + * in the hash cache bucket */ + if (i < minChain) { + countBeyondMinChain++; + } + i = tmpChainTable[i - tmpMinChain]; + } + if (count == cacheSize) { + for (count = 0; count < chainLimit;) { + if (i < minChain) { + if (!i || ++countBeyondMinChain > cacheSize) { + /* only allow pulling `cacheSize` number of entries + * into the cache or chainTable beyond `minChain`, + * to replace the entries pulled out of the + * chainTable into the cache. This lets us reach + * back further without increasing the total number + * of entries in the chainTable, guaranteeing the + * DDSS chain table will fit into the space + * allocated for the regular one. */ + break; + } + } + chainTable[chainPos++] = i; + count++; + if (i < tmpMinChain) { + break; + } + i = tmpChainTable[i - tmpMinChain]; + } + } else { + count = 0; + } + if (count) { + tmpHashTable[hashIdx] = ((chainPos - count) << 8) + count; + } else { + tmpHashTable[hashIdx] = 0; + } + } + assert(chainPos <= chainSize); /* I believe this is guaranteed... */ + } + + /* move chain pointers into the last entry of each hash bucket */ + for (hashIdx = (1 << hashLog); hashIdx; ) { + U32 const bucketIdx = --hashIdx << ZSTD_LAZY_DDSS_BUCKET_LOG; + U32 const chainPackedPointer = tmpHashTable[hashIdx]; + U32 i; + for (i = 0; i < cacheSize; i++) { + hashTable[bucketIdx + i] = 0; + } + hashTable[bucketIdx + bucketSize - 1] = chainPackedPointer; + } + + /* fill the buckets of the hash table */ + for (idx = ms->nextToUpdate; idx < target; idx++) { + U32 const h = (U32)ZSTD_hashPtr(base + idx, hashLog, ms->cParams.minMatch) + << ZSTD_LAZY_DDSS_BUCKET_LOG; + U32 i; + /* Shift hash cache down 1. */ + for (i = cacheSize - 1; i; i--) + hashTable[h + i] = hashTable[h + i - 1]; + hashTable[h] = idx; + } + + ms->nextToUpdate = target; +} + +/* Returns the longest match length found in the dedicated dict search structure. + * If none are longer than the argument ml, then ml will be returned. + */ +FORCE_INLINE_TEMPLATE +size_t ZSTD_dedicatedDictSearch_lazy_search(size_t* offsetPtr, size_t ml, U32 nbAttempts, + const ZSTD_matchState_t* const dms, + const BYTE* const ip, const BYTE* const iLimit, + const BYTE* const prefixStart, const U32 curr, + const U32 dictLimit, const size_t ddsIdx) { + const U32 ddsLowestIndex = dms->window.dictLimit; + const BYTE* const ddsBase = dms->window.base; + const BYTE* const ddsEnd = dms->window.nextSrc; + const U32 ddsSize = (U32)(ddsEnd - ddsBase); + const U32 ddsIndexDelta = dictLimit - ddsSize; + const U32 bucketSize = (1 << ZSTD_LAZY_DDSS_BUCKET_LOG); + const U32 bucketLimit = nbAttempts < bucketSize - 1 ? nbAttempts : bucketSize - 1; + U32 ddsAttempt; + U32 matchIndex; + + for (ddsAttempt = 0; ddsAttempt < bucketSize - 1; ddsAttempt++) { + PREFETCH_L1(ddsBase + dms->hashTable[ddsIdx + ddsAttempt]); + } + + { + U32 const chainPackedPointer = dms->hashTable[ddsIdx + bucketSize - 1]; + U32 const chainIndex = chainPackedPointer >> 8; + + PREFETCH_L1(&dms->chainTable[chainIndex]); + } + + for (ddsAttempt = 0; ddsAttempt < bucketLimit; ddsAttempt++) { + size_t currentMl=0; + const BYTE* match; + matchIndex = dms->hashTable[ddsIdx + ddsAttempt]; + match = ddsBase + matchIndex; + + if (!matchIndex) { + return ml; + } + + /* guaranteed by table construction */ + (void)ddsLowestIndex; + assert(matchIndex >= ddsLowestIndex); + assert(match+4 <= ddsEnd); + if (MEM_read32(match) == MEM_read32(ip)) { + /* assumption : matchIndex <= dictLimit-4 (by table construction) */ + currentMl = ZSTD_count_2segments(ip+4, match+4, iLimit, ddsEnd, prefixStart) + 4; + } + + /* save best solution */ + if (currentMl > ml) { + ml = currentMl; + *offsetPtr = OFFSET_TO_OFFBASE(curr - (matchIndex + ddsIndexDelta)); + if (ip+currentMl == iLimit) { + /* best possible, avoids read overflow on next attempt */ + return ml; + } + } + } + + { + U32 const chainPackedPointer = dms->hashTable[ddsIdx + bucketSize - 1]; + U32 chainIndex = chainPackedPointer >> 8; + U32 const chainLength = chainPackedPointer & 0xFF; + U32 const chainAttempts = nbAttempts - ddsAttempt; + U32 const chainLimit = chainAttempts > chainLength ? chainLength : chainAttempts; + U32 chainAttempt; + + for (chainAttempt = 0 ; chainAttempt < chainLimit; chainAttempt++) { + PREFETCH_L1(ddsBase + dms->chainTable[chainIndex + chainAttempt]); + } + + for (chainAttempt = 0 ; chainAttempt < chainLimit; chainAttempt++, chainIndex++) { + size_t currentMl=0; + const BYTE* match; + matchIndex = dms->chainTable[chainIndex]; + match = ddsBase + matchIndex; + + /* guaranteed by table construction */ + assert(matchIndex >= ddsLowestIndex); + assert(match+4 <= ddsEnd); + if (MEM_read32(match) == MEM_read32(ip)) { + /* assumption : matchIndex <= dictLimit-4 (by table construction) */ + currentMl = ZSTD_count_2segments(ip+4, match+4, iLimit, ddsEnd, prefixStart) + 4; + } + + /* save best solution */ + if (currentMl > ml) { + ml = currentMl; + *offsetPtr = OFFSET_TO_OFFBASE(curr - (matchIndex + ddsIndexDelta)); + if (ip+currentMl == iLimit) break; /* best possible, avoids read overflow on next attempt */ + } + } + } + return ml; +} + + +/* ********************************* +* Hash Chain +***********************************/ +#define NEXT_IN_CHAIN(d, mask) chainTable[(d) & (mask)] + +/* Update chains up to ip (excluded) + Assumption : always within prefix (i.e. not within extDict) */ +FORCE_INLINE_TEMPLATE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +U32 ZSTD_insertAndFindFirstIndex_internal( + ZSTD_matchState_t* ms, + const ZSTD_compressionParameters* const cParams, + const BYTE* ip, U32 const mls, U32 const lazySkipping) +{ + U32* const hashTable = ms->hashTable; + const U32 hashLog = cParams->hashLog; + U32* const chainTable = ms->chainTable; + const U32 chainMask = (1 << cParams->chainLog) - 1; + const BYTE* const base = ms->window.base; + const U32 target = (U32)(ip - base); + U32 idx = ms->nextToUpdate; + + while(idx < target) { /* catch up */ + size_t const h = ZSTD_hashPtr(base+idx, hashLog, mls); + NEXT_IN_CHAIN(idx, chainMask) = hashTable[h]; + hashTable[h] = idx; + idx++; + /* Stop inserting every position when in the lazy skipping mode. */ + if (lazySkipping) + break; + } + + ms->nextToUpdate = target; + return hashTable[ZSTD_hashPtr(ip, hashLog, mls)]; +} + +U32 ZSTD_insertAndFindFirstIndex(ZSTD_matchState_t* ms, const BYTE* ip) { + const ZSTD_compressionParameters* const cParams = &ms->cParams; + return ZSTD_insertAndFindFirstIndex_internal(ms, cParams, ip, ms->cParams.minMatch, /* lazySkipping*/ 0); +} + +/* inlining is important to hardwire a hot branch (template emulation) */ +FORCE_INLINE_TEMPLATE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_HcFindBestMatch( + ZSTD_matchState_t* ms, + const BYTE* const ip, const BYTE* const iLimit, + size_t* offsetPtr, + const U32 mls, const ZSTD_dictMode_e dictMode) +{ + const ZSTD_compressionParameters* const cParams = &ms->cParams; + U32* const chainTable = ms->chainTable; + const U32 chainSize = (1 << cParams->chainLog); + const U32 chainMask = chainSize-1; + const BYTE* const base = ms->window.base; + const BYTE* const dictBase = ms->window.dictBase; + const U32 dictLimit = ms->window.dictLimit; + const BYTE* const prefixStart = base + dictLimit; + const BYTE* const dictEnd = dictBase + dictLimit; + const U32 curr = (U32)(ip-base); + const U32 maxDistance = 1U << cParams->windowLog; + const U32 lowestValid = ms->window.lowLimit; + const U32 withinMaxDistance = (curr - lowestValid > maxDistance) ? curr - maxDistance : lowestValid; + const U32 isDictionary = (ms->loadedDictEnd != 0); + const U32 lowLimit = isDictionary ? lowestValid : withinMaxDistance; + const U32 minChain = curr > chainSize ? curr - chainSize : 0; + U32 nbAttempts = 1U << cParams->searchLog; + size_t ml=4-1; + + const ZSTD_matchState_t* const dms = ms->dictMatchState; + const U32 ddsHashLog = dictMode == ZSTD_dedicatedDictSearch + ? dms->cParams.hashLog - ZSTD_LAZY_DDSS_BUCKET_LOG : 0; + const size_t ddsIdx = dictMode == ZSTD_dedicatedDictSearch + ? ZSTD_hashPtr(ip, ddsHashLog, mls) << ZSTD_LAZY_DDSS_BUCKET_LOG : 0; + + U32 matchIndex; + + if (dictMode == ZSTD_dedicatedDictSearch) { + const U32* entry = &dms->hashTable[ddsIdx]; + PREFETCH_L1(entry); + } + + /* HC4 match finder */ + matchIndex = ZSTD_insertAndFindFirstIndex_internal(ms, cParams, ip, mls, ms->lazySkipping); + + for ( ; (matchIndex>=lowLimit) & (nbAttempts>0) ; nbAttempts--) { + size_t currentMl=0; + if ((dictMode != ZSTD_extDict) || matchIndex >= dictLimit) { + const BYTE* const match = base + matchIndex; + assert(matchIndex >= dictLimit); /* ensures this is true if dictMode != ZSTD_extDict */ + /* read 4B starting from (match + ml + 1 - sizeof(U32)) */ + if (MEM_read32(match + ml - 3) == MEM_read32(ip + ml - 3)) /* potentially better */ + currentMl = ZSTD_count(ip, match, iLimit); + } else { + const BYTE* const match = dictBase + matchIndex; + assert(match+4 <= dictEnd); + if (MEM_read32(match) == MEM_read32(ip)) /* assumption : matchIndex <= dictLimit-4 (by table construction) */ + currentMl = ZSTD_count_2segments(ip+4, match+4, iLimit, dictEnd, prefixStart) + 4; + } + + /* save best solution */ + if (currentMl > ml) { + ml = currentMl; + *offsetPtr = OFFSET_TO_OFFBASE(curr - matchIndex); + if (ip+currentMl == iLimit) break; /* best possible, avoids read overflow on next attempt */ + } + + if (matchIndex <= minChain) break; + matchIndex = NEXT_IN_CHAIN(matchIndex, chainMask); + } + + assert(nbAttempts <= (1U << ZSTD_SEARCHLOG_MAX)); /* Check we haven't underflowed. */ + if (dictMode == ZSTD_dedicatedDictSearch) { + ml = ZSTD_dedicatedDictSearch_lazy_search(offsetPtr, ml, nbAttempts, dms, + ip, iLimit, prefixStart, curr, dictLimit, ddsIdx); + } else if (dictMode == ZSTD_dictMatchState) { + const U32* const dmsChainTable = dms->chainTable; + const U32 dmsChainSize = (1 << dms->cParams.chainLog); + const U32 dmsChainMask = dmsChainSize - 1; + const U32 dmsLowestIndex = dms->window.dictLimit; + const BYTE* const dmsBase = dms->window.base; + const BYTE* const dmsEnd = dms->window.nextSrc; + const U32 dmsSize = (U32)(dmsEnd - dmsBase); + const U32 dmsIndexDelta = dictLimit - dmsSize; + const U32 dmsMinChain = dmsSize > dmsChainSize ? dmsSize - dmsChainSize : 0; + + matchIndex = dms->hashTable[ZSTD_hashPtr(ip, dms->cParams.hashLog, mls)]; + + for ( ; (matchIndex>=dmsLowestIndex) & (nbAttempts>0) ; nbAttempts--) { + size_t currentMl=0; + const BYTE* const match = dmsBase + matchIndex; + assert(match+4 <= dmsEnd); + if (MEM_read32(match) == MEM_read32(ip)) /* assumption : matchIndex <= dictLimit-4 (by table construction) */ + currentMl = ZSTD_count_2segments(ip+4, match+4, iLimit, dmsEnd, prefixStart) + 4; + + /* save best solution */ + if (currentMl > ml) { + ml = currentMl; + assert(curr > matchIndex + dmsIndexDelta); + *offsetPtr = OFFSET_TO_OFFBASE(curr - (matchIndex + dmsIndexDelta)); + if (ip+currentMl == iLimit) break; /* best possible, avoids read overflow on next attempt */ + } + + if (matchIndex <= dmsMinChain) break; + + matchIndex = dmsChainTable[matchIndex & dmsChainMask]; + } + } + + return ml; +} + +/* ********************************* +* (SIMD) Row-based matchfinder +***********************************/ +/* Constants for row-based hash */ +#define ZSTD_ROW_HASH_TAG_MASK ((1u << ZSTD_ROW_HASH_TAG_BITS) - 1) +#define ZSTD_ROW_HASH_MAX_ENTRIES 64 /* absolute maximum number of entries per row, for all configurations */ + +#define ZSTD_ROW_HASH_CACHE_MASK (ZSTD_ROW_HASH_CACHE_SIZE - 1) + +typedef U64 ZSTD_VecMask; /* Clarifies when we are interacting with a U64 representing a mask of matches */ + +/* ZSTD_VecMask_next(): + * Starting from the LSB, returns the idx of the next non-zero bit. + * Basically counting the nb of trailing zeroes. + */ +MEM_STATIC U32 ZSTD_VecMask_next(ZSTD_VecMask val) { + return ZSTD_countTrailingZeros64(val); +} + +/* ZSTD_row_nextIndex(): + * Returns the next index to insert at within a tagTable row, and updates the "head" + * value to reflect the update. Essentially cycles backwards from [1, {entries per row}) + */ +FORCE_INLINE_TEMPLATE U32 ZSTD_row_nextIndex(BYTE* const tagRow, U32 const rowMask) { + U32 next = (*tagRow-1) & rowMask; + next += (next == 0) ? rowMask : 0; /* skip first position */ + *tagRow = (BYTE)next; + return next; +} + +/* ZSTD_isAligned(): + * Checks that a pointer is aligned to "align" bytes which must be a power of 2. + */ +MEM_STATIC int ZSTD_isAligned(void const* ptr, size_t align) { + assert((align & (align - 1)) == 0); + return (((size_t)ptr) & (align - 1)) == 0; +} + +/* ZSTD_row_prefetch(): + * Performs prefetching for the hashTable and tagTable at a given row. + */ +FORCE_INLINE_TEMPLATE void ZSTD_row_prefetch(U32 const* hashTable, BYTE const* tagTable, U32 const relRow, U32 const rowLog) { + PREFETCH_L1(hashTable + relRow); + if (rowLog >= 5) { + PREFETCH_L1(hashTable + relRow + 16); + /* Note: prefetching more of the hash table does not appear to be beneficial for 128-entry rows */ + } + PREFETCH_L1(tagTable + relRow); + if (rowLog == 6) { + PREFETCH_L1(tagTable + relRow + 32); + } + assert(rowLog == 4 || rowLog == 5 || rowLog == 6); + assert(ZSTD_isAligned(hashTable + relRow, 64)); /* prefetched hash row always 64-byte aligned */ + assert(ZSTD_isAligned(tagTable + relRow, (size_t)1 << rowLog)); /* prefetched tagRow sits on correct multiple of bytes (32,64,128) */ +} + +/* ZSTD_row_fillHashCache(): + * Fill up the hash cache starting at idx, prefetching up to ZSTD_ROW_HASH_CACHE_SIZE entries, + * but not beyond iLimit. + */ +FORCE_INLINE_TEMPLATE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +void ZSTD_row_fillHashCache(ZSTD_matchState_t* ms, const BYTE* base, + U32 const rowLog, U32 const mls, + U32 idx, const BYTE* const iLimit) +{ + U32 const* const hashTable = ms->hashTable; + BYTE const* const tagTable = ms->tagTable; + U32 const hashLog = ms->rowHashLog; + U32 const maxElemsToPrefetch = (base + idx) > iLimit ? 0 : (U32)(iLimit - (base + idx) + 1); + U32 const lim = idx + MIN(ZSTD_ROW_HASH_CACHE_SIZE, maxElemsToPrefetch); + + for (; idx < lim; ++idx) { + U32 const hash = (U32)ZSTD_hashPtrSalted(base + idx, hashLog + ZSTD_ROW_HASH_TAG_BITS, mls, ms->hashSalt); + U32 const row = (hash >> ZSTD_ROW_HASH_TAG_BITS) << rowLog; + ZSTD_row_prefetch(hashTable, tagTable, row, rowLog); + ms->hashCache[idx & ZSTD_ROW_HASH_CACHE_MASK] = hash; + } + + DEBUGLOG(6, "ZSTD_row_fillHashCache(): [%u %u %u %u %u %u %u %u]", ms->hashCache[0], ms->hashCache[1], + ms->hashCache[2], ms->hashCache[3], ms->hashCache[4], + ms->hashCache[5], ms->hashCache[6], ms->hashCache[7]); +} + +/* ZSTD_row_nextCachedHash(): + * Returns the hash of base + idx, and replaces the hash in the hash cache with the byte at + * base + idx + ZSTD_ROW_HASH_CACHE_SIZE. Also prefetches the appropriate rows from hashTable and tagTable. + */ +FORCE_INLINE_TEMPLATE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +U32 ZSTD_row_nextCachedHash(U32* cache, U32 const* hashTable, + BYTE const* tagTable, BYTE const* base, + U32 idx, U32 const hashLog, + U32 const rowLog, U32 const mls, + U64 const hashSalt) +{ + U32 const newHash = (U32)ZSTD_hashPtrSalted(base+idx+ZSTD_ROW_HASH_CACHE_SIZE, hashLog + ZSTD_ROW_HASH_TAG_BITS, mls, hashSalt); + U32 const row = (newHash >> ZSTD_ROW_HASH_TAG_BITS) << rowLog; + ZSTD_row_prefetch(hashTable, tagTable, row, rowLog); + { U32 const hash = cache[idx & ZSTD_ROW_HASH_CACHE_MASK]; + cache[idx & ZSTD_ROW_HASH_CACHE_MASK] = newHash; + return hash; + } +} + +/* ZSTD_row_update_internalImpl(): + * Updates the hash table with positions starting from updateStartIdx until updateEndIdx. + */ +FORCE_INLINE_TEMPLATE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +void ZSTD_row_update_internalImpl(ZSTD_matchState_t* ms, + U32 updateStartIdx, U32 const updateEndIdx, + U32 const mls, U32 const rowLog, + U32 const rowMask, U32 const useCache) +{ + U32* const hashTable = ms->hashTable; + BYTE* const tagTable = ms->tagTable; + U32 const hashLog = ms->rowHashLog; + const BYTE* const base = ms->window.base; + + DEBUGLOG(6, "ZSTD_row_update_internalImpl(): updateStartIdx=%u, updateEndIdx=%u", updateStartIdx, updateEndIdx); + for (; updateStartIdx < updateEndIdx; ++updateStartIdx) { + U32 const hash = useCache ? ZSTD_row_nextCachedHash(ms->hashCache, hashTable, tagTable, base, updateStartIdx, hashLog, rowLog, mls, ms->hashSalt) + : (U32)ZSTD_hashPtrSalted(base + updateStartIdx, hashLog + ZSTD_ROW_HASH_TAG_BITS, mls, ms->hashSalt); + U32 const relRow = (hash >> ZSTD_ROW_HASH_TAG_BITS) << rowLog; + U32* const row = hashTable + relRow; + BYTE* tagRow = tagTable + relRow; + U32 const pos = ZSTD_row_nextIndex(tagRow, rowMask); + + assert(hash == ZSTD_hashPtrSalted(base + updateStartIdx, hashLog + ZSTD_ROW_HASH_TAG_BITS, mls, ms->hashSalt)); + tagRow[pos] = hash & ZSTD_ROW_HASH_TAG_MASK; + row[pos] = updateStartIdx; + } +} + +/* ZSTD_row_update_internal(): + * Inserts the byte at ip into the appropriate position in the hash table, and updates ms->nextToUpdate. + * Skips sections of long matches as is necessary. + */ +FORCE_INLINE_TEMPLATE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +void ZSTD_row_update_internal(ZSTD_matchState_t* ms, const BYTE* ip, + U32 const mls, U32 const rowLog, + U32 const rowMask, U32 const useCache) +{ + U32 idx = ms->nextToUpdate; + const BYTE* const base = ms->window.base; + const U32 target = (U32)(ip - base); + const U32 kSkipThreshold = 384; + const U32 kMaxMatchStartPositionsToUpdate = 96; + const U32 kMaxMatchEndPositionsToUpdate = 32; + + if (useCache) { + /* Only skip positions when using hash cache, i.e. + * if we are loading a dict, don't skip anything. + * If we decide to skip, then we only update a set number + * of positions at the beginning and end of the match. + */ + if (UNLIKELY(target - idx > kSkipThreshold)) { + U32 const bound = idx + kMaxMatchStartPositionsToUpdate; + ZSTD_row_update_internalImpl(ms, idx, bound, mls, rowLog, rowMask, useCache); + idx = target - kMaxMatchEndPositionsToUpdate; + ZSTD_row_fillHashCache(ms, base, rowLog, mls, idx, ip+1); + } + } + assert(target >= idx); + ZSTD_row_update_internalImpl(ms, idx, target, mls, rowLog, rowMask, useCache); + ms->nextToUpdate = target; +} + +/* ZSTD_row_update(): + * External wrapper for ZSTD_row_update_internal(). Used for filling the hashtable during dictionary + * processing. + */ +void ZSTD_row_update(ZSTD_matchState_t* const ms, const BYTE* ip) { + const U32 rowLog = BOUNDED(4, ms->cParams.searchLog, 6); + const U32 rowMask = (1u << rowLog) - 1; + const U32 mls = MIN(ms->cParams.minMatch, 6 /* mls caps out at 6 */); + + DEBUGLOG(5, "ZSTD_row_update(), rowLog=%u", rowLog); + ZSTD_row_update_internal(ms, ip, mls, rowLog, rowMask, 0 /* don't use cache */); +} + +/* Returns the mask width of bits group of which will be set to 1. Given not all + * architectures have easy movemask instruction, this helps to iterate over + * groups of bits easier and faster. + */ +FORCE_INLINE_TEMPLATE U32 +ZSTD_row_matchMaskGroupWidth(const U32 rowEntries) +{ + assert((rowEntries == 16) || (rowEntries == 32) || rowEntries == 64); + assert(rowEntries <= ZSTD_ROW_HASH_MAX_ENTRIES); + (void)rowEntries; +#if defined(ZSTD_ARCH_ARM_NEON) + /* NEON path only works for little endian */ + if (!MEM_isLittleEndian()) { + return 1; + } + if (rowEntries == 16) { + return 4; + } + if (rowEntries == 32) { + return 2; + } + if (rowEntries == 64) { + return 1; + } +#endif + return 1; +} + +#if defined(ZSTD_ARCH_X86_SSE2) +FORCE_INLINE_TEMPLATE ZSTD_VecMask +ZSTD_row_getSSEMask(int nbChunks, const BYTE* const src, const BYTE tag, const U32 head) +{ + const __m128i comparisonMask = _mm_set1_epi8((char)tag); + int matches[4] = {0}; + int i; + assert(nbChunks == 1 || nbChunks == 2 || nbChunks == 4); + for (i=0; i> chunkSize; + do { + size_t chunk = MEM_readST(&src[i]); + chunk ^= splatChar; + chunk = (((chunk | x80) - x01) | chunk) & x80; + matches <<= chunkSize; + matches |= (chunk * extractMagic) >> shiftAmount; + i -= chunkSize; + } while (i >= 0); + } else { /* big endian: reverse bits during extraction */ + const size_t msb = xFF ^ (xFF >> 1); + const size_t extractMagic = (msb / 0x1FF) | msb; + do { + size_t chunk = MEM_readST(&src[i]); + chunk ^= splatChar; + chunk = (((chunk | x80) - x01) | chunk) & x80; + matches <<= chunkSize; + matches |= ((chunk >> 7) * extractMagic) >> shiftAmount; + i -= chunkSize; + } while (i >= 0); + } + matches = ~matches; + if (rowEntries == 16) { + return ZSTD_rotateRight_U16((U16)matches, headGrouped); + } else if (rowEntries == 32) { + return ZSTD_rotateRight_U32((U32)matches, headGrouped); + } else { + return ZSTD_rotateRight_U64((U64)matches, headGrouped); + } + } +#endif +} + +/* The high-level approach of the SIMD row based match finder is as follows: + * - Figure out where to insert the new entry: + * - Generate a hash for current input posistion and split it into a one byte of tag and `rowHashLog` bits of index. + * - The hash is salted by a value that changes on every contex reset, so when the same table is used + * we will avoid collisions that would otherwise slow us down by intorducing phantom matches. + * - The hashTable is effectively split into groups or "rows" of 15 or 31 entries of U32, and the index determines + * which row to insert into. + * - Determine the correct position within the row to insert the entry into. Each row of 15 or 31 can + * be considered as a circular buffer with a "head" index that resides in the tagTable (overall 16 or 32 bytes + * per row). + * - Use SIMD to efficiently compare the tags in the tagTable to the 1-byte tag calculated for the position and + * generate a bitfield that we can cycle through to check the collisions in the hash table. + * - Pick the longest match. + * - Insert the tag into the equivalent row and position in the tagTable. + */ +FORCE_INLINE_TEMPLATE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_RowFindBestMatch( + ZSTD_matchState_t* ms, + const BYTE* const ip, const BYTE* const iLimit, + size_t* offsetPtr, + const U32 mls, const ZSTD_dictMode_e dictMode, + const U32 rowLog) +{ + U32* const hashTable = ms->hashTable; + BYTE* const tagTable = ms->tagTable; + U32* const hashCache = ms->hashCache; + const U32 hashLog = ms->rowHashLog; + const ZSTD_compressionParameters* const cParams = &ms->cParams; + const BYTE* const base = ms->window.base; + const BYTE* const dictBase = ms->window.dictBase; + const U32 dictLimit = ms->window.dictLimit; + const BYTE* const prefixStart = base + dictLimit; + const BYTE* const dictEnd = dictBase + dictLimit; + const U32 curr = (U32)(ip-base); + const U32 maxDistance = 1U << cParams->windowLog; + const U32 lowestValid = ms->window.lowLimit; + const U32 withinMaxDistance = (curr - lowestValid > maxDistance) ? curr - maxDistance : lowestValid; + const U32 isDictionary = (ms->loadedDictEnd != 0); + const U32 lowLimit = isDictionary ? lowestValid : withinMaxDistance; + const U32 rowEntries = (1U << rowLog); + const U32 rowMask = rowEntries - 1; + const U32 cappedSearchLog = MIN(cParams->searchLog, rowLog); /* nb of searches is capped at nb entries per row */ + const U32 groupWidth = ZSTD_row_matchMaskGroupWidth(rowEntries); + const U64 hashSalt = ms->hashSalt; + U32 nbAttempts = 1U << cappedSearchLog; + size_t ml=4-1; + U32 hash; + + /* DMS/DDS variables that may be referenced laster */ + const ZSTD_matchState_t* const dms = ms->dictMatchState; + + /* Initialize the following variables to satisfy static analyzer */ + size_t ddsIdx = 0; + U32 ddsExtraAttempts = 0; /* cctx hash tables are limited in searches, but allow extra searches into DDS */ + U32 dmsTag = 0; + U32* dmsRow = NULL; + BYTE* dmsTagRow = NULL; + + if (dictMode == ZSTD_dedicatedDictSearch) { + const U32 ddsHashLog = dms->cParams.hashLog - ZSTD_LAZY_DDSS_BUCKET_LOG; + { /* Prefetch DDS hashtable entry */ + ddsIdx = ZSTD_hashPtr(ip, ddsHashLog, mls) << ZSTD_LAZY_DDSS_BUCKET_LOG; + PREFETCH_L1(&dms->hashTable[ddsIdx]); + } + ddsExtraAttempts = cParams->searchLog > rowLog ? 1U << (cParams->searchLog - rowLog) : 0; + } + + if (dictMode == ZSTD_dictMatchState) { + /* Prefetch DMS rows */ + U32* const dmsHashTable = dms->hashTable; + BYTE* const dmsTagTable = dms->tagTable; + U32 const dmsHash = (U32)ZSTD_hashPtr(ip, dms->rowHashLog + ZSTD_ROW_HASH_TAG_BITS, mls); + U32 const dmsRelRow = (dmsHash >> ZSTD_ROW_HASH_TAG_BITS) << rowLog; + dmsTag = dmsHash & ZSTD_ROW_HASH_TAG_MASK; + dmsTagRow = (BYTE*)(dmsTagTable + dmsRelRow); + dmsRow = dmsHashTable + dmsRelRow; + ZSTD_row_prefetch(dmsHashTable, dmsTagTable, dmsRelRow, rowLog); + } + + /* Update the hashTable and tagTable up to (but not including) ip */ + if (!ms->lazySkipping) { + ZSTD_row_update_internal(ms, ip, mls, rowLog, rowMask, 1 /* useCache */); + hash = ZSTD_row_nextCachedHash(hashCache, hashTable, tagTable, base, curr, hashLog, rowLog, mls, hashSalt); + } else { + /* Stop inserting every position when in the lazy skipping mode. + * The hash cache is also not kept up to date in this mode. + */ + hash = (U32)ZSTD_hashPtrSalted(ip, hashLog + ZSTD_ROW_HASH_TAG_BITS, mls, hashSalt); + ms->nextToUpdate = curr; + } + ms->hashSaltEntropy += hash; /* collect salt entropy */ + + { /* Get the hash for ip, compute the appropriate row */ + U32 const relRow = (hash >> ZSTD_ROW_HASH_TAG_BITS) << rowLog; + U32 const tag = hash & ZSTD_ROW_HASH_TAG_MASK; + U32* const row = hashTable + relRow; + BYTE* tagRow = (BYTE*)(tagTable + relRow); + U32 const headGrouped = (*tagRow & rowMask) * groupWidth; + U32 matchBuffer[ZSTD_ROW_HASH_MAX_ENTRIES]; + size_t numMatches = 0; + size_t currMatch = 0; + ZSTD_VecMask matches = ZSTD_row_getMatchMask(tagRow, (BYTE)tag, headGrouped, rowEntries); + + /* Cycle through the matches and prefetch */ + for (; (matches > 0) && (nbAttempts > 0); matches &= (matches - 1)) { + U32 const matchPos = ((headGrouped + ZSTD_VecMask_next(matches)) / groupWidth) & rowMask; + U32 const matchIndex = row[matchPos]; + if(matchPos == 0) continue; + assert(numMatches < rowEntries); + if (matchIndex < lowLimit) + break; + if ((dictMode != ZSTD_extDict) || matchIndex >= dictLimit) { + PREFETCH_L1(base + matchIndex); + } else { + PREFETCH_L1(dictBase + matchIndex); + } + matchBuffer[numMatches++] = matchIndex; + --nbAttempts; + } + + /* Speed opt: insert current byte into hashtable too. This allows us to avoid one iteration of the loop + in ZSTD_row_update_internal() at the next search. */ + { + U32 const pos = ZSTD_row_nextIndex(tagRow, rowMask); + tagRow[pos] = (BYTE)tag; + row[pos] = ms->nextToUpdate++; + } + + /* Return the longest match */ + for (; currMatch < numMatches; ++currMatch) { + U32 const matchIndex = matchBuffer[currMatch]; + size_t currentMl=0; + assert(matchIndex < curr); + assert(matchIndex >= lowLimit); + + if ((dictMode != ZSTD_extDict) || matchIndex >= dictLimit) { + const BYTE* const match = base + matchIndex; + assert(matchIndex >= dictLimit); /* ensures this is true if dictMode != ZSTD_extDict */ + /* read 4B starting from (match + ml + 1 - sizeof(U32)) */ + if (MEM_read32(match + ml - 3) == MEM_read32(ip + ml - 3)) /* potentially better */ + currentMl = ZSTD_count(ip, match, iLimit); + } else { + const BYTE* const match = dictBase + matchIndex; + assert(match+4 <= dictEnd); + if (MEM_read32(match) == MEM_read32(ip)) /* assumption : matchIndex <= dictLimit-4 (by table construction) */ + currentMl = ZSTD_count_2segments(ip+4, match+4, iLimit, dictEnd, prefixStart) + 4; + } + + /* Save best solution */ + if (currentMl > ml) { + ml = currentMl; + *offsetPtr = OFFSET_TO_OFFBASE(curr - matchIndex); + if (ip+currentMl == iLimit) break; /* best possible, avoids read overflow on next attempt */ + } + } + } + + assert(nbAttempts <= (1U << ZSTD_SEARCHLOG_MAX)); /* Check we haven't underflowed. */ + if (dictMode == ZSTD_dedicatedDictSearch) { + ml = ZSTD_dedicatedDictSearch_lazy_search(offsetPtr, ml, nbAttempts + ddsExtraAttempts, dms, + ip, iLimit, prefixStart, curr, dictLimit, ddsIdx); + } else if (dictMode == ZSTD_dictMatchState) { + /* TODO: Measure and potentially add prefetching to DMS */ + const U32 dmsLowestIndex = dms->window.dictLimit; + const BYTE* const dmsBase = dms->window.base; + const BYTE* const dmsEnd = dms->window.nextSrc; + const U32 dmsSize = (U32)(dmsEnd - dmsBase); + const U32 dmsIndexDelta = dictLimit - dmsSize; + + { U32 const headGrouped = (*dmsTagRow & rowMask) * groupWidth; + U32 matchBuffer[ZSTD_ROW_HASH_MAX_ENTRIES]; + size_t numMatches = 0; + size_t currMatch = 0; + ZSTD_VecMask matches = ZSTD_row_getMatchMask(dmsTagRow, (BYTE)dmsTag, headGrouped, rowEntries); + + for (; (matches > 0) && (nbAttempts > 0); matches &= (matches - 1)) { + U32 const matchPos = ((headGrouped + ZSTD_VecMask_next(matches)) / groupWidth) & rowMask; + U32 const matchIndex = dmsRow[matchPos]; + if(matchPos == 0) continue; + if (matchIndex < dmsLowestIndex) + break; + PREFETCH_L1(dmsBase + matchIndex); + matchBuffer[numMatches++] = matchIndex; + --nbAttempts; + } + + /* Return the longest match */ + for (; currMatch < numMatches; ++currMatch) { + U32 const matchIndex = matchBuffer[currMatch]; + size_t currentMl=0; + assert(matchIndex >= dmsLowestIndex); + assert(matchIndex < curr); + + { const BYTE* const match = dmsBase + matchIndex; + assert(match+4 <= dmsEnd); + if (MEM_read32(match) == MEM_read32(ip)) + currentMl = ZSTD_count_2segments(ip+4, match+4, iLimit, dmsEnd, prefixStart) + 4; + } + + if (currentMl > ml) { + ml = currentMl; + assert(curr > matchIndex + dmsIndexDelta); + *offsetPtr = OFFSET_TO_OFFBASE(curr - (matchIndex + dmsIndexDelta)); + if (ip+currentMl == iLimit) break; + } + } + } + } + return ml; +} + + +/** + * Generate search functions templated on (dictMode, mls, rowLog). + * These functions are outlined for code size & compilation time. + * ZSTD_searchMax() dispatches to the correct implementation function. + * + * TODO: The start of the search function involves loading and calculating a + * bunch of constants from the ZSTD_matchState_t. These computations could be + * done in an initialization function, and saved somewhere in the match state. + * Then we could pass a pointer to the saved state instead of the match state, + * and avoid duplicate computations. + * + * TODO: Move the match re-winding into searchMax. This improves compression + * ratio, and unlocks further simplifications with the next TODO. + * + * TODO: Try moving the repcode search into searchMax. After the re-winding + * and repcode search are in searchMax, there is no more logic in the match + * finder loop that requires knowledge about the dictMode. So we should be + * able to avoid force inlining it, and we can join the extDict loop with + * the single segment loop. It should go in searchMax instead of its own + * function to avoid having multiple virtual function calls per search. + */ + +#define ZSTD_BT_SEARCH_FN(dictMode, mls) ZSTD_BtFindBestMatch_##dictMode##_##mls +#define ZSTD_HC_SEARCH_FN(dictMode, mls) ZSTD_HcFindBestMatch_##dictMode##_##mls +#define ZSTD_ROW_SEARCH_FN(dictMode, mls, rowLog) ZSTD_RowFindBestMatch_##dictMode##_##mls##_##rowLog + +#define ZSTD_SEARCH_FN_ATTRS FORCE_NOINLINE + +#define GEN_ZSTD_BT_SEARCH_FN(dictMode, mls) \ + ZSTD_SEARCH_FN_ATTRS size_t ZSTD_BT_SEARCH_FN(dictMode, mls)( \ + ZSTD_matchState_t* ms, \ + const BYTE* ip, const BYTE* const iLimit, \ + size_t* offBasePtr) \ + { \ + assert(MAX(4, MIN(6, ms->cParams.minMatch)) == mls); \ + return ZSTD_BtFindBestMatch(ms, ip, iLimit, offBasePtr, mls, ZSTD_##dictMode); \ + } \ + +#define GEN_ZSTD_HC_SEARCH_FN(dictMode, mls) \ + ZSTD_SEARCH_FN_ATTRS size_t ZSTD_HC_SEARCH_FN(dictMode, mls)( \ + ZSTD_matchState_t* ms, \ + const BYTE* ip, const BYTE* const iLimit, \ + size_t* offsetPtr) \ + { \ + assert(MAX(4, MIN(6, ms->cParams.minMatch)) == mls); \ + return ZSTD_HcFindBestMatch(ms, ip, iLimit, offsetPtr, mls, ZSTD_##dictMode); \ + } \ + +#define GEN_ZSTD_ROW_SEARCH_FN(dictMode, mls, rowLog) \ + ZSTD_SEARCH_FN_ATTRS size_t ZSTD_ROW_SEARCH_FN(dictMode, mls, rowLog)( \ + ZSTD_matchState_t* ms, \ + const BYTE* ip, const BYTE* const iLimit, \ + size_t* offsetPtr) \ + { \ + assert(MAX(4, MIN(6, ms->cParams.minMatch)) == mls); \ + assert(MAX(4, MIN(6, ms->cParams.searchLog)) == rowLog); \ + return ZSTD_RowFindBestMatch(ms, ip, iLimit, offsetPtr, mls, ZSTD_##dictMode, rowLog); \ + } \ + +#define ZSTD_FOR_EACH_ROWLOG(X, dictMode, mls) \ + X(dictMode, mls, 4) \ + X(dictMode, mls, 5) \ + X(dictMode, mls, 6) + +#define ZSTD_FOR_EACH_MLS_ROWLOG(X, dictMode) \ + ZSTD_FOR_EACH_ROWLOG(X, dictMode, 4) \ + ZSTD_FOR_EACH_ROWLOG(X, dictMode, 5) \ + ZSTD_FOR_EACH_ROWLOG(X, dictMode, 6) + +#define ZSTD_FOR_EACH_MLS(X, dictMode) \ + X(dictMode, 4) \ + X(dictMode, 5) \ + X(dictMode, 6) + +#define ZSTD_FOR_EACH_DICT_MODE(X, ...) \ + X(__VA_ARGS__, noDict) \ + X(__VA_ARGS__, extDict) \ + X(__VA_ARGS__, dictMatchState) \ + X(__VA_ARGS__, dedicatedDictSearch) + +/* Generate row search fns for each combination of (dictMode, mls, rowLog) */ +ZSTD_FOR_EACH_DICT_MODE(ZSTD_FOR_EACH_MLS_ROWLOG, GEN_ZSTD_ROW_SEARCH_FN) +/* Generate binary Tree search fns for each combination of (dictMode, mls) */ +ZSTD_FOR_EACH_DICT_MODE(ZSTD_FOR_EACH_MLS, GEN_ZSTD_BT_SEARCH_FN) +/* Generate hash chain search fns for each combination of (dictMode, mls) */ +ZSTD_FOR_EACH_DICT_MODE(ZSTD_FOR_EACH_MLS, GEN_ZSTD_HC_SEARCH_FN) + +typedef enum { search_hashChain=0, search_binaryTree=1, search_rowHash=2 } searchMethod_e; + +#define GEN_ZSTD_CALL_BT_SEARCH_FN(dictMode, mls) \ + case mls: \ + return ZSTD_BT_SEARCH_FN(dictMode, mls)(ms, ip, iend, offsetPtr); +#define GEN_ZSTD_CALL_HC_SEARCH_FN(dictMode, mls) \ + case mls: \ + return ZSTD_HC_SEARCH_FN(dictMode, mls)(ms, ip, iend, offsetPtr); +#define GEN_ZSTD_CALL_ROW_SEARCH_FN(dictMode, mls, rowLog) \ + case rowLog: \ + return ZSTD_ROW_SEARCH_FN(dictMode, mls, rowLog)(ms, ip, iend, offsetPtr); + +#define ZSTD_SWITCH_MLS(X, dictMode) \ + switch (mls) { \ + ZSTD_FOR_EACH_MLS(X, dictMode) \ + } + +#define ZSTD_SWITCH_ROWLOG(dictMode, mls) \ + case mls: \ + switch (rowLog) { \ + ZSTD_FOR_EACH_ROWLOG(GEN_ZSTD_CALL_ROW_SEARCH_FN, dictMode, mls) \ + } \ + ZSTD_UNREACHABLE; \ + break; + +#define ZSTD_SWITCH_SEARCH_METHOD(dictMode) \ + switch (searchMethod) { \ + case search_hashChain: \ + ZSTD_SWITCH_MLS(GEN_ZSTD_CALL_HC_SEARCH_FN, dictMode) \ + break; \ + case search_binaryTree: \ + ZSTD_SWITCH_MLS(GEN_ZSTD_CALL_BT_SEARCH_FN, dictMode) \ + break; \ + case search_rowHash: \ + ZSTD_SWITCH_MLS(ZSTD_SWITCH_ROWLOG, dictMode) \ + break; \ + } \ + ZSTD_UNREACHABLE; + +/** + * Searches for the longest match at @p ip. + * Dispatches to the correct implementation function based on the + * (searchMethod, dictMode, mls, rowLog). We use switch statements + * here instead of using an indirect function call through a function + * pointer because after Spectre and Meltdown mitigations, indirect + * function calls can be very costly, especially in the kernel. + * + * NOTE: dictMode and searchMethod should be templated, so those switch + * statements should be optimized out. Only the mls & rowLog switches + * should be left. + * + * @param ms The match state. + * @param ip The position to search at. + * @param iend The end of the input data. + * @param[out] offsetPtr Stores the match offset into this pointer. + * @param mls The minimum search length, in the range [4, 6]. + * @param rowLog The row log (if applicable), in the range [4, 6]. + * @param searchMethod The search method to use (templated). + * @param dictMode The dictMode (templated). + * + * @returns The length of the longest match found, or < mls if no match is found. + * If a match is found its offset is stored in @p offsetPtr. + */ +FORCE_INLINE_TEMPLATE size_t ZSTD_searchMax( + ZSTD_matchState_t* ms, + const BYTE* ip, + const BYTE* iend, + size_t* offsetPtr, + U32 const mls, + U32 const rowLog, + searchMethod_e const searchMethod, + ZSTD_dictMode_e const dictMode) +{ + if (dictMode == ZSTD_noDict) { + ZSTD_SWITCH_SEARCH_METHOD(noDict) + } else if (dictMode == ZSTD_extDict) { + ZSTD_SWITCH_SEARCH_METHOD(extDict) + } else if (dictMode == ZSTD_dictMatchState) { + ZSTD_SWITCH_SEARCH_METHOD(dictMatchState) + } else if (dictMode == ZSTD_dedicatedDictSearch) { + ZSTD_SWITCH_SEARCH_METHOD(dedicatedDictSearch) + } + ZSTD_UNREACHABLE; + return 0; +} + +/* ******************************* +* Common parser - lazy strategy +*********************************/ + +FORCE_INLINE_TEMPLATE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_compressBlock_lazy_generic( + ZSTD_matchState_t* ms, seqStore_t* seqStore, + U32 rep[ZSTD_REP_NUM], + const void* src, size_t srcSize, + const searchMethod_e searchMethod, const U32 depth, + ZSTD_dictMode_e const dictMode) +{ + const BYTE* const istart = (const BYTE*)src; + const BYTE* ip = istart; + const BYTE* anchor = istart; + const BYTE* const iend = istart + srcSize; + const BYTE* const ilimit = (searchMethod == search_rowHash) ? iend - 8 - ZSTD_ROW_HASH_CACHE_SIZE : iend - 8; + const BYTE* const base = ms->window.base; + const U32 prefixLowestIndex = ms->window.dictLimit; + const BYTE* const prefixLowest = base + prefixLowestIndex; + const U32 mls = BOUNDED(4, ms->cParams.minMatch, 6); + const U32 rowLog = BOUNDED(4, ms->cParams.searchLog, 6); + + U32 offset_1 = rep[0], offset_2 = rep[1]; + U32 offsetSaved1 = 0, offsetSaved2 = 0; + + const int isDMS = dictMode == ZSTD_dictMatchState; + const int isDDS = dictMode == ZSTD_dedicatedDictSearch; + const int isDxS = isDMS || isDDS; + const ZSTD_matchState_t* const dms = ms->dictMatchState; + const U32 dictLowestIndex = isDxS ? dms->window.dictLimit : 0; + const BYTE* const dictBase = isDxS ? dms->window.base : NULL; + const BYTE* const dictLowest = isDxS ? dictBase + dictLowestIndex : NULL; + const BYTE* const dictEnd = isDxS ? dms->window.nextSrc : NULL; + const U32 dictIndexDelta = isDxS ? + prefixLowestIndex - (U32)(dictEnd - dictBase) : + 0; + const U32 dictAndPrefixLength = (U32)((ip - prefixLowest) + (dictEnd - dictLowest)); + + DEBUGLOG(5, "ZSTD_compressBlock_lazy_generic (dictMode=%u) (searchFunc=%u)", (U32)dictMode, (U32)searchMethod); + ip += (dictAndPrefixLength == 0); + if (dictMode == ZSTD_noDict) { + U32 const curr = (U32)(ip - base); + U32 const windowLow = ZSTD_getLowestPrefixIndex(ms, curr, ms->cParams.windowLog); + U32 const maxRep = curr - windowLow; + if (offset_2 > maxRep) offsetSaved2 = offset_2, offset_2 = 0; + if (offset_1 > maxRep) offsetSaved1 = offset_1, offset_1 = 0; + } + if (isDxS) { + /* dictMatchState repCode checks don't currently handle repCode == 0 + * disabling. */ + assert(offset_1 <= dictAndPrefixLength); + assert(offset_2 <= dictAndPrefixLength); + } + + /* Reset the lazy skipping state */ + ms->lazySkipping = 0; + + if (searchMethod == search_rowHash) { + ZSTD_row_fillHashCache(ms, base, rowLog, mls, ms->nextToUpdate, ilimit); + } + + /* Match Loop */ +#if defined(__GNUC__) && defined(__x86_64__) + /* I've measured random a 5% speed loss on levels 5 & 6 (greedy) when the + * code alignment is perturbed. To fix the instability align the loop on 32-bytes. + */ + __asm__(".p2align 5"); +#endif + while (ip < ilimit) { + size_t matchLength=0; + size_t offBase = REPCODE1_TO_OFFBASE; + const BYTE* start=ip+1; + DEBUGLOG(7, "search baseline (depth 0)"); + + /* check repCode */ + if (isDxS) { + const U32 repIndex = (U32)(ip - base) + 1 - offset_1; + const BYTE* repMatch = ((dictMode == ZSTD_dictMatchState || dictMode == ZSTD_dedicatedDictSearch) + && repIndex < prefixLowestIndex) ? + dictBase + (repIndex - dictIndexDelta) : + base + repIndex; + if (((U32)((prefixLowestIndex-1) - repIndex) >= 3 /* intentional underflow */) + && (MEM_read32(repMatch) == MEM_read32(ip+1)) ) { + const BYTE* repMatchEnd = repIndex < prefixLowestIndex ? dictEnd : iend; + matchLength = ZSTD_count_2segments(ip+1+4, repMatch+4, iend, repMatchEnd, prefixLowest) + 4; + if (depth==0) goto _storeSequence; + } + } + if ( dictMode == ZSTD_noDict + && ((offset_1 > 0) & (MEM_read32(ip+1-offset_1) == MEM_read32(ip+1)))) { + matchLength = ZSTD_count(ip+1+4, ip+1+4-offset_1, iend) + 4; + if (depth==0) goto _storeSequence; + } + + /* first search (depth 0) */ + { size_t offbaseFound = 999999999; + size_t const ml2 = ZSTD_searchMax(ms, ip, iend, &offbaseFound, mls, rowLog, searchMethod, dictMode); + if (ml2 > matchLength) + matchLength = ml2, start = ip, offBase = offbaseFound; + } + + if (matchLength < 4) { + size_t const step = ((size_t)(ip-anchor) >> kSearchStrength) + 1; /* jump faster over incompressible sections */; + ip += step; + /* Enter the lazy skipping mode once we are skipping more than 8 bytes at a time. + * In this mode we stop inserting every position into our tables, and only insert + * positions that we search, which is one in step positions. + * The exact cutoff is flexible, I've just chosen a number that is reasonably high, + * so we minimize the compression ratio loss in "normal" scenarios. This mode gets + * triggered once we've gone 2KB without finding any matches. + */ + ms->lazySkipping = step > kLazySkippingStep; + continue; + } + + /* let's try to find a better solution */ + if (depth>=1) + while (ip0) & (MEM_read32(ip) == MEM_read32(ip - offset_1)))) { + size_t const mlRep = ZSTD_count(ip+4, ip+4-offset_1, iend) + 4; + int const gain2 = (int)(mlRep * 3); + int const gain1 = (int)(matchLength*3 - ZSTD_highbit32((U32)offBase) + 1); + if ((mlRep >= 4) && (gain2 > gain1)) + matchLength = mlRep, offBase = REPCODE1_TO_OFFBASE, start = ip; + } + if (isDxS) { + const U32 repIndex = (U32)(ip - base) - offset_1; + const BYTE* repMatch = repIndex < prefixLowestIndex ? + dictBase + (repIndex - dictIndexDelta) : + base + repIndex; + if (((U32)((prefixLowestIndex-1) - repIndex) >= 3 /* intentional underflow */) + && (MEM_read32(repMatch) == MEM_read32(ip)) ) { + const BYTE* repMatchEnd = repIndex < prefixLowestIndex ? dictEnd : iend; + size_t const mlRep = ZSTD_count_2segments(ip+4, repMatch+4, iend, repMatchEnd, prefixLowest) + 4; + int const gain2 = (int)(mlRep * 3); + int const gain1 = (int)(matchLength*3 - ZSTD_highbit32((U32)offBase) + 1); + if ((mlRep >= 4) && (gain2 > gain1)) + matchLength = mlRep, offBase = REPCODE1_TO_OFFBASE, start = ip; + } + } + { size_t ofbCandidate=999999999; + size_t const ml2 = ZSTD_searchMax(ms, ip, iend, &ofbCandidate, mls, rowLog, searchMethod, dictMode); + int const gain2 = (int)(ml2*4 - ZSTD_highbit32((U32)ofbCandidate)); /* raw approx */ + int const gain1 = (int)(matchLength*4 - ZSTD_highbit32((U32)offBase) + 4); + if ((ml2 >= 4) && (gain2 > gain1)) { + matchLength = ml2, offBase = ofbCandidate, start = ip; + continue; /* search a better one */ + } } + + /* let's find an even better one */ + if ((depth==2) && (ip0) & (MEM_read32(ip) == MEM_read32(ip - offset_1)))) { + size_t const mlRep = ZSTD_count(ip+4, ip+4-offset_1, iend) + 4; + int const gain2 = (int)(mlRep * 4); + int const gain1 = (int)(matchLength*4 - ZSTD_highbit32((U32)offBase) + 1); + if ((mlRep >= 4) && (gain2 > gain1)) + matchLength = mlRep, offBase = REPCODE1_TO_OFFBASE, start = ip; + } + if (isDxS) { + const U32 repIndex = (U32)(ip - base) - offset_1; + const BYTE* repMatch = repIndex < prefixLowestIndex ? + dictBase + (repIndex - dictIndexDelta) : + base + repIndex; + if (((U32)((prefixLowestIndex-1) - repIndex) >= 3 /* intentional underflow */) + && (MEM_read32(repMatch) == MEM_read32(ip)) ) { + const BYTE* repMatchEnd = repIndex < prefixLowestIndex ? dictEnd : iend; + size_t const mlRep = ZSTD_count_2segments(ip+4, repMatch+4, iend, repMatchEnd, prefixLowest) + 4; + int const gain2 = (int)(mlRep * 4); + int const gain1 = (int)(matchLength*4 - ZSTD_highbit32((U32)offBase) + 1); + if ((mlRep >= 4) && (gain2 > gain1)) + matchLength = mlRep, offBase = REPCODE1_TO_OFFBASE, start = ip; + } + } + { size_t ofbCandidate=999999999; + size_t const ml2 = ZSTD_searchMax(ms, ip, iend, &ofbCandidate, mls, rowLog, searchMethod, dictMode); + int const gain2 = (int)(ml2*4 - ZSTD_highbit32((U32)ofbCandidate)); /* raw approx */ + int const gain1 = (int)(matchLength*4 - ZSTD_highbit32((U32)offBase) + 7); + if ((ml2 >= 4) && (gain2 > gain1)) { + matchLength = ml2, offBase = ofbCandidate, start = ip; + continue; + } } } + break; /* nothing found : store previous solution */ + } + + /* NOTE: + * Pay attention that `start[-value]` can lead to strange undefined behavior + * notably if `value` is unsigned, resulting in a large positive `-value`. + */ + /* catch up */ + if (OFFBASE_IS_OFFSET(offBase)) { + if (dictMode == ZSTD_noDict) { + while ( ((start > anchor) & (start - OFFBASE_TO_OFFSET(offBase) > prefixLowest)) + && (start[-1] == (start-OFFBASE_TO_OFFSET(offBase))[-1]) ) /* only search for offset within prefix */ + { start--; matchLength++; } + } + if (isDxS) { + U32 const matchIndex = (U32)((size_t)(start-base) - OFFBASE_TO_OFFSET(offBase)); + const BYTE* match = (matchIndex < prefixLowestIndex) ? dictBase + matchIndex - dictIndexDelta : base + matchIndex; + const BYTE* const mStart = (matchIndex < prefixLowestIndex) ? dictLowest : prefixLowest; + while ((start>anchor) && (match>mStart) && (start[-1] == match[-1])) { start--; match--; matchLength++; } /* catch up */ + } + offset_2 = offset_1; offset_1 = (U32)OFFBASE_TO_OFFSET(offBase); + } + /* store sequence */ +_storeSequence: + { size_t const litLength = (size_t)(start - anchor); + ZSTD_storeSeq(seqStore, litLength, anchor, iend, (U32)offBase, matchLength); + anchor = ip = start + matchLength; + } + if (ms->lazySkipping) { + /* We've found a match, disable lazy skipping mode, and refill the hash cache. */ + if (searchMethod == search_rowHash) { + ZSTD_row_fillHashCache(ms, base, rowLog, mls, ms->nextToUpdate, ilimit); + } + ms->lazySkipping = 0; + } + + /* check immediate repcode */ + if (isDxS) { + while (ip <= ilimit) { + U32 const current2 = (U32)(ip-base); + U32 const repIndex = current2 - offset_2; + const BYTE* repMatch = repIndex < prefixLowestIndex ? + dictBase - dictIndexDelta + repIndex : + base + repIndex; + if ( ((U32)((prefixLowestIndex-1) - (U32)repIndex) >= 3 /* intentional overflow */) + && (MEM_read32(repMatch) == MEM_read32(ip)) ) { + const BYTE* const repEnd2 = repIndex < prefixLowestIndex ? dictEnd : iend; + matchLength = ZSTD_count_2segments(ip+4, repMatch+4, iend, repEnd2, prefixLowest) + 4; + offBase = offset_2; offset_2 = offset_1; offset_1 = (U32)offBase; /* swap offset_2 <=> offset_1 */ + ZSTD_storeSeq(seqStore, 0, anchor, iend, REPCODE1_TO_OFFBASE, matchLength); + ip += matchLength; + anchor = ip; + continue; + } + break; + } + } + + if (dictMode == ZSTD_noDict) { + while ( ((ip <= ilimit) & (offset_2>0)) + && (MEM_read32(ip) == MEM_read32(ip - offset_2)) ) { + /* store sequence */ + matchLength = ZSTD_count(ip+4, ip+4-offset_2, iend) + 4; + offBase = offset_2; offset_2 = offset_1; offset_1 = (U32)offBase; /* swap repcodes */ + ZSTD_storeSeq(seqStore, 0, anchor, iend, REPCODE1_TO_OFFBASE, matchLength); + ip += matchLength; + anchor = ip; + continue; /* faster when present ... (?) */ + } } } + + /* If offset_1 started invalid (offsetSaved1 != 0) and became valid (offset_1 != 0), + * rotate saved offsets. See comment in ZSTD_compressBlock_fast_noDict for more context. */ + offsetSaved2 = ((offsetSaved1 != 0) && (offset_1 != 0)) ? offsetSaved1 : offsetSaved2; + + /* save reps for next block */ + rep[0] = offset_1 ? offset_1 : offsetSaved1; + rep[1] = offset_2 ? offset_2 : offsetSaved2; + + /* Return the last literals size */ + return (size_t)(iend - anchor); +} +#endif /* build exclusions */ + + +#ifndef ZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR +size_t ZSTD_compressBlock_greedy( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 0, ZSTD_noDict); +} + +size_t ZSTD_compressBlock_greedy_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 0, ZSTD_dictMatchState); +} + +size_t ZSTD_compressBlock_greedy_dedicatedDictSearch( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 0, ZSTD_dedicatedDictSearch); +} + +size_t ZSTD_compressBlock_greedy_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 0, ZSTD_noDict); +} + +size_t ZSTD_compressBlock_greedy_dictMatchState_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 0, ZSTD_dictMatchState); +} + +size_t ZSTD_compressBlock_greedy_dedicatedDictSearch_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 0, ZSTD_dedicatedDictSearch); +} +#endif + +#ifndef ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR +size_t ZSTD_compressBlock_lazy( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 1, ZSTD_noDict); +} + +size_t ZSTD_compressBlock_lazy_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 1, ZSTD_dictMatchState); +} + +size_t ZSTD_compressBlock_lazy_dedicatedDictSearch( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 1, ZSTD_dedicatedDictSearch); +} + +size_t ZSTD_compressBlock_lazy_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 1, ZSTD_noDict); +} + +size_t ZSTD_compressBlock_lazy_dictMatchState_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 1, ZSTD_dictMatchState); +} + +size_t ZSTD_compressBlock_lazy_dedicatedDictSearch_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 1, ZSTD_dedicatedDictSearch); +} +#endif + +#ifndef ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR +size_t ZSTD_compressBlock_lazy2( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 2, ZSTD_noDict); +} + +size_t ZSTD_compressBlock_lazy2_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 2, ZSTD_dictMatchState); +} + +size_t ZSTD_compressBlock_lazy2_dedicatedDictSearch( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 2, ZSTD_dedicatedDictSearch); +} + +size_t ZSTD_compressBlock_lazy2_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 2, ZSTD_noDict); +} + +size_t ZSTD_compressBlock_lazy2_dictMatchState_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 2, ZSTD_dictMatchState); +} + +size_t ZSTD_compressBlock_lazy2_dedicatedDictSearch_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 2, ZSTD_dedicatedDictSearch); +} +#endif + +#ifndef ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR +size_t ZSTD_compressBlock_btlazy2( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_binaryTree, 2, ZSTD_noDict); +} + +size_t ZSTD_compressBlock_btlazy2_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_binaryTree, 2, ZSTD_dictMatchState); +} +#endif + +#if !defined(ZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR) +FORCE_INLINE_TEMPLATE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_compressBlock_lazy_extDict_generic( + ZSTD_matchState_t* ms, seqStore_t* seqStore, + U32 rep[ZSTD_REP_NUM], + const void* src, size_t srcSize, + const searchMethod_e searchMethod, const U32 depth) +{ + const BYTE* const istart = (const BYTE*)src; + const BYTE* ip = istart; + const BYTE* anchor = istart; + const BYTE* const iend = istart + srcSize; + const BYTE* const ilimit = searchMethod == search_rowHash ? iend - 8 - ZSTD_ROW_HASH_CACHE_SIZE : iend - 8; + const BYTE* const base = ms->window.base; + const U32 dictLimit = ms->window.dictLimit; + const BYTE* const prefixStart = base + dictLimit; + const BYTE* const dictBase = ms->window.dictBase; + const BYTE* const dictEnd = dictBase + dictLimit; + const BYTE* const dictStart = dictBase + ms->window.lowLimit; + const U32 windowLog = ms->cParams.windowLog; + const U32 mls = BOUNDED(4, ms->cParams.minMatch, 6); + const U32 rowLog = BOUNDED(4, ms->cParams.searchLog, 6); + + U32 offset_1 = rep[0], offset_2 = rep[1]; + + DEBUGLOG(5, "ZSTD_compressBlock_lazy_extDict_generic (searchFunc=%u)", (U32)searchMethod); + + /* Reset the lazy skipping state */ + ms->lazySkipping = 0; + + /* init */ + ip += (ip == prefixStart); + if (searchMethod == search_rowHash) { + ZSTD_row_fillHashCache(ms, base, rowLog, mls, ms->nextToUpdate, ilimit); + } + + /* Match Loop */ +#if defined(__GNUC__) && defined(__x86_64__) + /* I've measured random a 5% speed loss on levels 5 & 6 (greedy) when the + * code alignment is perturbed. To fix the instability align the loop on 32-bytes. + */ + __asm__(".p2align 5"); +#endif + while (ip < ilimit) { + size_t matchLength=0; + size_t offBase = REPCODE1_TO_OFFBASE; + const BYTE* start=ip+1; + U32 curr = (U32)(ip-base); + + /* check repCode */ + { const U32 windowLow = ZSTD_getLowestMatchIndex(ms, curr+1, windowLog); + const U32 repIndex = (U32)(curr+1 - offset_1); + const BYTE* const repBase = repIndex < dictLimit ? dictBase : base; + const BYTE* const repMatch = repBase + repIndex; + if ( ((U32)((dictLimit-1) - repIndex) >= 3) /* intentional overflow */ + & (offset_1 <= curr+1 - windowLow) ) /* note: we are searching at curr+1 */ + if (MEM_read32(ip+1) == MEM_read32(repMatch)) { + /* repcode detected we should take it */ + const BYTE* const repEnd = repIndex < dictLimit ? dictEnd : iend; + matchLength = ZSTD_count_2segments(ip+1+4, repMatch+4, iend, repEnd, prefixStart) + 4; + if (depth==0) goto _storeSequence; + } } + + /* first search (depth 0) */ + { size_t ofbCandidate = 999999999; + size_t const ml2 = ZSTD_searchMax(ms, ip, iend, &ofbCandidate, mls, rowLog, searchMethod, ZSTD_extDict); + if (ml2 > matchLength) + matchLength = ml2, start = ip, offBase = ofbCandidate; + } + + if (matchLength < 4) { + size_t const step = ((size_t)(ip-anchor) >> kSearchStrength); + ip += step + 1; /* jump faster over incompressible sections */ + /* Enter the lazy skipping mode once we are skipping more than 8 bytes at a time. + * In this mode we stop inserting every position into our tables, and only insert + * positions that we search, which is one in step positions. + * The exact cutoff is flexible, I've just chosen a number that is reasonably high, + * so we minimize the compression ratio loss in "normal" scenarios. This mode gets + * triggered once we've gone 2KB without finding any matches. + */ + ms->lazySkipping = step > kLazySkippingStep; + continue; + } + + /* let's try to find a better solution */ + if (depth>=1) + while (ip= 3) /* intentional overflow : do not test positions overlapping 2 memory segments */ + & (offset_1 <= curr - windowLow) ) /* equivalent to `curr > repIndex >= windowLow` */ + if (MEM_read32(ip) == MEM_read32(repMatch)) { + /* repcode detected */ + const BYTE* const repEnd = repIndex < dictLimit ? dictEnd : iend; + size_t const repLength = ZSTD_count_2segments(ip+4, repMatch+4, iend, repEnd, prefixStart) + 4; + int const gain2 = (int)(repLength * 3); + int const gain1 = (int)(matchLength*3 - ZSTD_highbit32((U32)offBase) + 1); + if ((repLength >= 4) && (gain2 > gain1)) + matchLength = repLength, offBase = REPCODE1_TO_OFFBASE, start = ip; + } } + + /* search match, depth 1 */ + { size_t ofbCandidate = 999999999; + size_t const ml2 = ZSTD_searchMax(ms, ip, iend, &ofbCandidate, mls, rowLog, searchMethod, ZSTD_extDict); + int const gain2 = (int)(ml2*4 - ZSTD_highbit32((U32)ofbCandidate)); /* raw approx */ + int const gain1 = (int)(matchLength*4 - ZSTD_highbit32((U32)offBase) + 4); + if ((ml2 >= 4) && (gain2 > gain1)) { + matchLength = ml2, offBase = ofbCandidate, start = ip; + continue; /* search a better one */ + } } + + /* let's find an even better one */ + if ((depth==2) && (ip= 3) /* intentional overflow : do not test positions overlapping 2 memory segments */ + & (offset_1 <= curr - windowLow) ) /* equivalent to `curr > repIndex >= windowLow` */ + if (MEM_read32(ip) == MEM_read32(repMatch)) { + /* repcode detected */ + const BYTE* const repEnd = repIndex < dictLimit ? dictEnd : iend; + size_t const repLength = ZSTD_count_2segments(ip+4, repMatch+4, iend, repEnd, prefixStart) + 4; + int const gain2 = (int)(repLength * 4); + int const gain1 = (int)(matchLength*4 - ZSTD_highbit32((U32)offBase) + 1); + if ((repLength >= 4) && (gain2 > gain1)) + matchLength = repLength, offBase = REPCODE1_TO_OFFBASE, start = ip; + } } + + /* search match, depth 2 */ + { size_t ofbCandidate = 999999999; + size_t const ml2 = ZSTD_searchMax(ms, ip, iend, &ofbCandidate, mls, rowLog, searchMethod, ZSTD_extDict); + int const gain2 = (int)(ml2*4 - ZSTD_highbit32((U32)ofbCandidate)); /* raw approx */ + int const gain1 = (int)(matchLength*4 - ZSTD_highbit32((U32)offBase) + 7); + if ((ml2 >= 4) && (gain2 > gain1)) { + matchLength = ml2, offBase = ofbCandidate, start = ip; + continue; + } } } + break; /* nothing found : store previous solution */ + } + + /* catch up */ + if (OFFBASE_IS_OFFSET(offBase)) { + U32 const matchIndex = (U32)((size_t)(start-base) - OFFBASE_TO_OFFSET(offBase)); + const BYTE* match = (matchIndex < dictLimit) ? dictBase + matchIndex : base + matchIndex; + const BYTE* const mStart = (matchIndex < dictLimit) ? dictStart : prefixStart; + while ((start>anchor) && (match>mStart) && (start[-1] == match[-1])) { start--; match--; matchLength++; } /* catch up */ + offset_2 = offset_1; offset_1 = (U32)OFFBASE_TO_OFFSET(offBase); + } + + /* store sequence */ +_storeSequence: + { size_t const litLength = (size_t)(start - anchor); + ZSTD_storeSeq(seqStore, litLength, anchor, iend, (U32)offBase, matchLength); + anchor = ip = start + matchLength; + } + if (ms->lazySkipping) { + /* We've found a match, disable lazy skipping mode, and refill the hash cache. */ + if (searchMethod == search_rowHash) { + ZSTD_row_fillHashCache(ms, base, rowLog, mls, ms->nextToUpdate, ilimit); + } + ms->lazySkipping = 0; + } + + /* check immediate repcode */ + while (ip <= ilimit) { + const U32 repCurrent = (U32)(ip-base); + const U32 windowLow = ZSTD_getLowestMatchIndex(ms, repCurrent, windowLog); + const U32 repIndex = repCurrent - offset_2; + const BYTE* const repBase = repIndex < dictLimit ? dictBase : base; + const BYTE* const repMatch = repBase + repIndex; + if ( ((U32)((dictLimit-1) - repIndex) >= 3) /* intentional overflow : do not test positions overlapping 2 memory segments */ + & (offset_2 <= repCurrent - windowLow) ) /* equivalent to `curr > repIndex >= windowLow` */ + if (MEM_read32(ip) == MEM_read32(repMatch)) { + /* repcode detected we should take it */ + const BYTE* const repEnd = repIndex < dictLimit ? dictEnd : iend; + matchLength = ZSTD_count_2segments(ip+4, repMatch+4, iend, repEnd, prefixStart) + 4; + offBase = offset_2; offset_2 = offset_1; offset_1 = (U32)offBase; /* swap offset history */ + ZSTD_storeSeq(seqStore, 0, anchor, iend, REPCODE1_TO_OFFBASE, matchLength); + ip += matchLength; + anchor = ip; + continue; /* faster when present ... (?) */ + } + break; + } } + + /* Save reps for next block */ + rep[0] = offset_1; + rep[1] = offset_2; + + /* Return the last literals size */ + return (size_t)(iend - anchor); +} +#endif /* build exclusions */ + +#ifndef ZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR +size_t ZSTD_compressBlock_greedy_extDict( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_extDict_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 0); +} + +size_t ZSTD_compressBlock_greedy_extDict_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_extDict_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 0); +} +#endif + +#ifndef ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR +size_t ZSTD_compressBlock_lazy_extDict( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) + +{ + return ZSTD_compressBlock_lazy_extDict_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 1); +} + +size_t ZSTD_compressBlock_lazy_extDict_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) + +{ + return ZSTD_compressBlock_lazy_extDict_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 1); +} +#endif + +#ifndef ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR +size_t ZSTD_compressBlock_lazy2_extDict( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) + +{ + return ZSTD_compressBlock_lazy_extDict_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 2); +} + +size_t ZSTD_compressBlock_lazy2_extDict_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_extDict_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 2); +} +#endif + +#ifndef ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR +size_t ZSTD_compressBlock_btlazy2_extDict( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) + +{ + return ZSTD_compressBlock_lazy_extDict_generic(ms, seqStore, rep, src, srcSize, search_binaryTree, 2); +} +#endif diff --git a/deps/zstd/lib/compress/zstd_lazy.h b/deps/zstd/lib/compress/zstd_lazy.h new file mode 100644 index 00000000000000..3635813bddf80a --- /dev/null +++ b/deps/zstd/lib/compress/zstd_lazy.h @@ -0,0 +1,202 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_LAZY_H +#define ZSTD_LAZY_H + +#if defined (__cplusplus) +extern "C" { +#endif + +#include "zstd_compress_internal.h" + +/** + * Dedicated Dictionary Search Structure bucket log. In the + * ZSTD_dedicatedDictSearch mode, the hashTable has + * 2 ** ZSTD_LAZY_DDSS_BUCKET_LOG entries in each bucket, rather than just + * one. + */ +#define ZSTD_LAZY_DDSS_BUCKET_LOG 2 + +#define ZSTD_ROW_HASH_TAG_BITS 8 /* nb bits to use for the tag */ + +#if !defined(ZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR) +U32 ZSTD_insertAndFindFirstIndex(ZSTD_matchState_t* ms, const BYTE* ip); +void ZSTD_row_update(ZSTD_matchState_t* const ms, const BYTE* ip); + +void ZSTD_dedicatedDictSearch_lazy_loadDictionary(ZSTD_matchState_t* ms, const BYTE* const ip); + +void ZSTD_preserveUnsortedMark (U32* const table, U32 const size, U32 const reducerValue); /*! used in ZSTD_reduceIndex(). preemptively increase value of ZSTD_DUBT_UNSORTED_MARK */ +#endif + +#ifndef ZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR +size_t ZSTD_compressBlock_greedy( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_greedy_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_greedy_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_greedy_dictMatchState_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_greedy_dedicatedDictSearch( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_greedy_dedicatedDictSearch_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_greedy_extDict( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_greedy_extDict_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); + +#define ZSTD_COMPRESSBLOCK_GREEDY ZSTD_compressBlock_greedy +#define ZSTD_COMPRESSBLOCK_GREEDY_ROW ZSTD_compressBlock_greedy_row +#define ZSTD_COMPRESSBLOCK_GREEDY_DICTMATCHSTATE ZSTD_compressBlock_greedy_dictMatchState +#define ZSTD_COMPRESSBLOCK_GREEDY_DICTMATCHSTATE_ROW ZSTD_compressBlock_greedy_dictMatchState_row +#define ZSTD_COMPRESSBLOCK_GREEDY_DEDICATEDDICTSEARCH ZSTD_compressBlock_greedy_dedicatedDictSearch +#define ZSTD_COMPRESSBLOCK_GREEDY_DEDICATEDDICTSEARCH_ROW ZSTD_compressBlock_greedy_dedicatedDictSearch_row +#define ZSTD_COMPRESSBLOCK_GREEDY_EXTDICT ZSTD_compressBlock_greedy_extDict +#define ZSTD_COMPRESSBLOCK_GREEDY_EXTDICT_ROW ZSTD_compressBlock_greedy_extDict_row +#else +#define ZSTD_COMPRESSBLOCK_GREEDY NULL +#define ZSTD_COMPRESSBLOCK_GREEDY_ROW NULL +#define ZSTD_COMPRESSBLOCK_GREEDY_DICTMATCHSTATE NULL +#define ZSTD_COMPRESSBLOCK_GREEDY_DICTMATCHSTATE_ROW NULL +#define ZSTD_COMPRESSBLOCK_GREEDY_DEDICATEDDICTSEARCH NULL +#define ZSTD_COMPRESSBLOCK_GREEDY_DEDICATEDDICTSEARCH_ROW NULL +#define ZSTD_COMPRESSBLOCK_GREEDY_EXTDICT NULL +#define ZSTD_COMPRESSBLOCK_GREEDY_EXTDICT_ROW NULL +#endif + +#ifndef ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR +size_t ZSTD_compressBlock_lazy( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy_dictMatchState_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy_dedicatedDictSearch( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy_dedicatedDictSearch_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy_extDict( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy_extDict_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); + +#define ZSTD_COMPRESSBLOCK_LAZY ZSTD_compressBlock_lazy +#define ZSTD_COMPRESSBLOCK_LAZY_ROW ZSTD_compressBlock_lazy_row +#define ZSTD_COMPRESSBLOCK_LAZY_DICTMATCHSTATE ZSTD_compressBlock_lazy_dictMatchState +#define ZSTD_COMPRESSBLOCK_LAZY_DICTMATCHSTATE_ROW ZSTD_compressBlock_lazy_dictMatchState_row +#define ZSTD_COMPRESSBLOCK_LAZY_DEDICATEDDICTSEARCH ZSTD_compressBlock_lazy_dedicatedDictSearch +#define ZSTD_COMPRESSBLOCK_LAZY_DEDICATEDDICTSEARCH_ROW ZSTD_compressBlock_lazy_dedicatedDictSearch_row +#define ZSTD_COMPRESSBLOCK_LAZY_EXTDICT ZSTD_compressBlock_lazy_extDict +#define ZSTD_COMPRESSBLOCK_LAZY_EXTDICT_ROW ZSTD_compressBlock_lazy_extDict_row +#else +#define ZSTD_COMPRESSBLOCK_LAZY NULL +#define ZSTD_COMPRESSBLOCK_LAZY_ROW NULL +#define ZSTD_COMPRESSBLOCK_LAZY_DICTMATCHSTATE NULL +#define ZSTD_COMPRESSBLOCK_LAZY_DICTMATCHSTATE_ROW NULL +#define ZSTD_COMPRESSBLOCK_LAZY_DEDICATEDDICTSEARCH NULL +#define ZSTD_COMPRESSBLOCK_LAZY_DEDICATEDDICTSEARCH_ROW NULL +#define ZSTD_COMPRESSBLOCK_LAZY_EXTDICT NULL +#define ZSTD_COMPRESSBLOCK_LAZY_EXTDICT_ROW NULL +#endif + +#ifndef ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR +size_t ZSTD_compressBlock_lazy2( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy2_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy2_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy2_dictMatchState_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy2_dedicatedDictSearch( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy2_dedicatedDictSearch_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy2_extDict( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy2_extDict_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); + +#define ZSTD_COMPRESSBLOCK_LAZY2 ZSTD_compressBlock_lazy2 +#define ZSTD_COMPRESSBLOCK_LAZY2_ROW ZSTD_compressBlock_lazy2_row +#define ZSTD_COMPRESSBLOCK_LAZY2_DICTMATCHSTATE ZSTD_compressBlock_lazy2_dictMatchState +#define ZSTD_COMPRESSBLOCK_LAZY2_DICTMATCHSTATE_ROW ZSTD_compressBlock_lazy2_dictMatchState_row +#define ZSTD_COMPRESSBLOCK_LAZY2_DEDICATEDDICTSEARCH ZSTD_compressBlock_lazy2_dedicatedDictSearch +#define ZSTD_COMPRESSBLOCK_LAZY2_DEDICATEDDICTSEARCH_ROW ZSTD_compressBlock_lazy2_dedicatedDictSearch_row +#define ZSTD_COMPRESSBLOCK_LAZY2_EXTDICT ZSTD_compressBlock_lazy2_extDict +#define ZSTD_COMPRESSBLOCK_LAZY2_EXTDICT_ROW ZSTD_compressBlock_lazy2_extDict_row +#else +#define ZSTD_COMPRESSBLOCK_LAZY2 NULL +#define ZSTD_COMPRESSBLOCK_LAZY2_ROW NULL +#define ZSTD_COMPRESSBLOCK_LAZY2_DICTMATCHSTATE NULL +#define ZSTD_COMPRESSBLOCK_LAZY2_DICTMATCHSTATE_ROW NULL +#define ZSTD_COMPRESSBLOCK_LAZY2_DEDICATEDDICTSEARCH NULL +#define ZSTD_COMPRESSBLOCK_LAZY2_DEDICATEDDICTSEARCH_ROW NULL +#define ZSTD_COMPRESSBLOCK_LAZY2_EXTDICT NULL +#define ZSTD_COMPRESSBLOCK_LAZY2_EXTDICT_ROW NULL +#endif + +#ifndef ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR +size_t ZSTD_compressBlock_btlazy2( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_btlazy2_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_btlazy2_extDict( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); + +#define ZSTD_COMPRESSBLOCK_BTLAZY2 ZSTD_compressBlock_btlazy2 +#define ZSTD_COMPRESSBLOCK_BTLAZY2_DICTMATCHSTATE ZSTD_compressBlock_btlazy2_dictMatchState +#define ZSTD_COMPRESSBLOCK_BTLAZY2_EXTDICT ZSTD_compressBlock_btlazy2_extDict +#else +#define ZSTD_COMPRESSBLOCK_BTLAZY2 NULL +#define ZSTD_COMPRESSBLOCK_BTLAZY2_DICTMATCHSTATE NULL +#define ZSTD_COMPRESSBLOCK_BTLAZY2_EXTDICT NULL +#endif + + +#if defined (__cplusplus) +} +#endif + +#endif /* ZSTD_LAZY_H */ diff --git a/deps/zstd/lib/compress/zstd_ldm.c b/deps/zstd/lib/compress/zstd_ldm.c new file mode 100644 index 00000000000000..17c069fe1d706c --- /dev/null +++ b/deps/zstd/lib/compress/zstd_ldm.c @@ -0,0 +1,730 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#include "zstd_ldm.h" + +#include "../common/debug.h" +#include "../common/xxhash.h" +#include "zstd_fast.h" /* ZSTD_fillHashTable() */ +#include "zstd_double_fast.h" /* ZSTD_fillDoubleHashTable() */ +#include "zstd_ldm_geartab.h" + +#define LDM_BUCKET_SIZE_LOG 3 +#define LDM_MIN_MATCH_LENGTH 64 +#define LDM_HASH_RLOG 7 + +typedef struct { + U64 rolling; + U64 stopMask; +} ldmRollingHashState_t; + +/** ZSTD_ldm_gear_init(): + * + * Initializes the rolling hash state such that it will honor the + * settings in params. */ +static void ZSTD_ldm_gear_init(ldmRollingHashState_t* state, ldmParams_t const* params) +{ + unsigned maxBitsInMask = MIN(params->minMatchLength, 64); + unsigned hashRateLog = params->hashRateLog; + + state->rolling = ~(U32)0; + + /* The choice of the splitting criterion is subject to two conditions: + * 1. it has to trigger on average every 2^(hashRateLog) bytes; + * 2. ideally, it has to depend on a window of minMatchLength bytes. + * + * In the gear hash algorithm, bit n depends on the last n bytes; + * so in order to obtain a good quality splitting criterion it is + * preferable to use bits with high weight. + * + * To match condition 1 we use a mask with hashRateLog bits set + * and, because of the previous remark, we make sure these bits + * have the highest possible weight while still respecting + * condition 2. + */ + if (hashRateLog > 0 && hashRateLog <= maxBitsInMask) { + state->stopMask = (((U64)1 << hashRateLog) - 1) << (maxBitsInMask - hashRateLog); + } else { + /* In this degenerate case we simply honor the hash rate. */ + state->stopMask = ((U64)1 << hashRateLog) - 1; + } +} + +/** ZSTD_ldm_gear_reset() + * Feeds [data, data + minMatchLength) into the hash without registering any + * splits. This effectively resets the hash state. This is used when skipping + * over data, either at the beginning of a block, or skipping sections. + */ +static void ZSTD_ldm_gear_reset(ldmRollingHashState_t* state, + BYTE const* data, size_t minMatchLength) +{ + U64 hash = state->rolling; + size_t n = 0; + +#define GEAR_ITER_ONCE() do { \ + hash = (hash << 1) + ZSTD_ldm_gearTab[data[n] & 0xff]; \ + n += 1; \ + } while (0) + while (n + 3 < minMatchLength) { + GEAR_ITER_ONCE(); + GEAR_ITER_ONCE(); + GEAR_ITER_ONCE(); + GEAR_ITER_ONCE(); + } + while (n < minMatchLength) { + GEAR_ITER_ONCE(); + } +#undef GEAR_ITER_ONCE +} + +/** ZSTD_ldm_gear_feed(): + * + * Registers in the splits array all the split points found in the first + * size bytes following the data pointer. This function terminates when + * either all the data has been processed or LDM_BATCH_SIZE splits are + * present in the splits array. + * + * Precondition: The splits array must not be full. + * Returns: The number of bytes processed. */ +static size_t ZSTD_ldm_gear_feed(ldmRollingHashState_t* state, + BYTE const* data, size_t size, + size_t* splits, unsigned* numSplits) +{ + size_t n; + U64 hash, mask; + + hash = state->rolling; + mask = state->stopMask; + n = 0; + +#define GEAR_ITER_ONCE() do { \ + hash = (hash << 1) + ZSTD_ldm_gearTab[data[n] & 0xff]; \ + n += 1; \ + if (UNLIKELY((hash & mask) == 0)) { \ + splits[*numSplits] = n; \ + *numSplits += 1; \ + if (*numSplits == LDM_BATCH_SIZE) \ + goto done; \ + } \ + } while (0) + + while (n + 3 < size) { + GEAR_ITER_ONCE(); + GEAR_ITER_ONCE(); + GEAR_ITER_ONCE(); + GEAR_ITER_ONCE(); + } + while (n < size) { + GEAR_ITER_ONCE(); + } + +#undef GEAR_ITER_ONCE + +done: + state->rolling = hash; + return n; +} + +void ZSTD_ldm_adjustParameters(ldmParams_t* params, + ZSTD_compressionParameters const* cParams) +{ + params->windowLog = cParams->windowLog; + ZSTD_STATIC_ASSERT(LDM_BUCKET_SIZE_LOG <= ZSTD_LDM_BUCKETSIZELOG_MAX); + DEBUGLOG(4, "ZSTD_ldm_adjustParameters"); + if (!params->bucketSizeLog) params->bucketSizeLog = LDM_BUCKET_SIZE_LOG; + if (!params->minMatchLength) params->minMatchLength = LDM_MIN_MATCH_LENGTH; + if (params->hashLog == 0) { + params->hashLog = MAX(ZSTD_HASHLOG_MIN, params->windowLog - LDM_HASH_RLOG); + assert(params->hashLog <= ZSTD_HASHLOG_MAX); + } + if (params->hashRateLog == 0) { + params->hashRateLog = params->windowLog < params->hashLog + ? 0 + : params->windowLog - params->hashLog; + } + params->bucketSizeLog = MIN(params->bucketSizeLog, params->hashLog); +} + +size_t ZSTD_ldm_getTableSize(ldmParams_t params) +{ + size_t const ldmHSize = ((size_t)1) << params.hashLog; + size_t const ldmBucketSizeLog = MIN(params.bucketSizeLog, params.hashLog); + size_t const ldmBucketSize = ((size_t)1) << (params.hashLog - ldmBucketSizeLog); + size_t const totalSize = ZSTD_cwksp_alloc_size(ldmBucketSize) + + ZSTD_cwksp_alloc_size(ldmHSize * sizeof(ldmEntry_t)); + return params.enableLdm == ZSTD_ps_enable ? totalSize : 0; +} + +size_t ZSTD_ldm_getMaxNbSeq(ldmParams_t params, size_t maxChunkSize) +{ + return params.enableLdm == ZSTD_ps_enable ? (maxChunkSize / params.minMatchLength) : 0; +} + +/** ZSTD_ldm_getBucket() : + * Returns a pointer to the start of the bucket associated with hash. */ +static ldmEntry_t* ZSTD_ldm_getBucket( + ldmState_t* ldmState, size_t hash, ldmParams_t const ldmParams) +{ + return ldmState->hashTable + (hash << ldmParams.bucketSizeLog); +} + +/** ZSTD_ldm_insertEntry() : + * Insert the entry with corresponding hash into the hash table */ +static void ZSTD_ldm_insertEntry(ldmState_t* ldmState, + size_t const hash, const ldmEntry_t entry, + ldmParams_t const ldmParams) +{ + BYTE* const pOffset = ldmState->bucketOffsets + hash; + unsigned const offset = *pOffset; + + *(ZSTD_ldm_getBucket(ldmState, hash, ldmParams) + offset) = entry; + *pOffset = (BYTE)((offset + 1) & ((1u << ldmParams.bucketSizeLog) - 1)); + +} + +/** ZSTD_ldm_countBackwardsMatch() : + * Returns the number of bytes that match backwards before pIn and pMatch. + * + * We count only bytes where pMatch >= pBase and pIn >= pAnchor. */ +static size_t ZSTD_ldm_countBackwardsMatch( + const BYTE* pIn, const BYTE* pAnchor, + const BYTE* pMatch, const BYTE* pMatchBase) +{ + size_t matchLength = 0; + while (pIn > pAnchor && pMatch > pMatchBase && pIn[-1] == pMatch[-1]) { + pIn--; + pMatch--; + matchLength++; + } + return matchLength; +} + +/** ZSTD_ldm_countBackwardsMatch_2segments() : + * Returns the number of bytes that match backwards from pMatch, + * even with the backwards match spanning 2 different segments. + * + * On reaching `pMatchBase`, start counting from mEnd */ +static size_t ZSTD_ldm_countBackwardsMatch_2segments( + const BYTE* pIn, const BYTE* pAnchor, + const BYTE* pMatch, const BYTE* pMatchBase, + const BYTE* pExtDictStart, const BYTE* pExtDictEnd) +{ + size_t matchLength = ZSTD_ldm_countBackwardsMatch(pIn, pAnchor, pMatch, pMatchBase); + if (pMatch - matchLength != pMatchBase || pMatchBase == pExtDictStart) { + /* If backwards match is entirely in the extDict or prefix, immediately return */ + return matchLength; + } + DEBUGLOG(7, "ZSTD_ldm_countBackwardsMatch_2segments: found 2-parts backwards match (length in prefix==%zu)", matchLength); + matchLength += ZSTD_ldm_countBackwardsMatch(pIn - matchLength, pAnchor, pExtDictEnd, pExtDictStart); + DEBUGLOG(7, "final backwards match length = %zu", matchLength); + return matchLength; +} + +/** ZSTD_ldm_fillFastTables() : + * + * Fills the relevant tables for the ZSTD_fast and ZSTD_dfast strategies. + * This is similar to ZSTD_loadDictionaryContent. + * + * The tables for the other strategies are filled within their + * block compressors. */ +static size_t ZSTD_ldm_fillFastTables(ZSTD_matchState_t* ms, + void const* end) +{ + const BYTE* const iend = (const BYTE*)end; + + switch(ms->cParams.strategy) + { + case ZSTD_fast: + ZSTD_fillHashTable(ms, iend, ZSTD_dtlm_fast, ZSTD_tfp_forCCtx); + break; + + case ZSTD_dfast: +#ifndef ZSTD_EXCLUDE_DFAST_BLOCK_COMPRESSOR + ZSTD_fillDoubleHashTable(ms, iend, ZSTD_dtlm_fast, ZSTD_tfp_forCCtx); +#else + assert(0); /* shouldn't be called: cparams should've been adjusted. */ +#endif + break; + + case ZSTD_greedy: + case ZSTD_lazy: + case ZSTD_lazy2: + case ZSTD_btlazy2: + case ZSTD_btopt: + case ZSTD_btultra: + case ZSTD_btultra2: + break; + default: + assert(0); /* not possible : not a valid strategy id */ + } + + return 0; +} + +void ZSTD_ldm_fillHashTable( + ldmState_t* ldmState, const BYTE* ip, + const BYTE* iend, ldmParams_t const* params) +{ + U32 const minMatchLength = params->minMatchLength; + U32 const hBits = params->hashLog - params->bucketSizeLog; + BYTE const* const base = ldmState->window.base; + BYTE const* const istart = ip; + ldmRollingHashState_t hashState; + size_t* const splits = ldmState->splitIndices; + unsigned numSplits; + + DEBUGLOG(5, "ZSTD_ldm_fillHashTable"); + + ZSTD_ldm_gear_init(&hashState, params); + while (ip < iend) { + size_t hashed; + unsigned n; + + numSplits = 0; + hashed = ZSTD_ldm_gear_feed(&hashState, ip, iend - ip, splits, &numSplits); + + for (n = 0; n < numSplits; n++) { + if (ip + splits[n] >= istart + minMatchLength) { + BYTE const* const split = ip + splits[n] - minMatchLength; + U64 const xxhash = XXH64(split, minMatchLength, 0); + U32 const hash = (U32)(xxhash & (((U32)1 << hBits) - 1)); + ldmEntry_t entry; + + entry.offset = (U32)(split - base); + entry.checksum = (U32)(xxhash >> 32); + ZSTD_ldm_insertEntry(ldmState, hash, entry, *params); + } + } + + ip += hashed; + } +} + + +/** ZSTD_ldm_limitTableUpdate() : + * + * Sets cctx->nextToUpdate to a position corresponding closer to anchor + * if it is far way + * (after a long match, only update tables a limited amount). */ +static void ZSTD_ldm_limitTableUpdate(ZSTD_matchState_t* ms, const BYTE* anchor) +{ + U32 const curr = (U32)(anchor - ms->window.base); + if (curr > ms->nextToUpdate + 1024) { + ms->nextToUpdate = + curr - MIN(512, curr - ms->nextToUpdate - 1024); + } +} + +static +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_ldm_generateSequences_internal( + ldmState_t* ldmState, rawSeqStore_t* rawSeqStore, + ldmParams_t const* params, void const* src, size_t srcSize) +{ + /* LDM parameters */ + int const extDict = ZSTD_window_hasExtDict(ldmState->window); + U32 const minMatchLength = params->minMatchLength; + U32 const entsPerBucket = 1U << params->bucketSizeLog; + U32 const hBits = params->hashLog - params->bucketSizeLog; + /* Prefix and extDict parameters */ + U32 const dictLimit = ldmState->window.dictLimit; + U32 const lowestIndex = extDict ? ldmState->window.lowLimit : dictLimit; + BYTE const* const base = ldmState->window.base; + BYTE const* const dictBase = extDict ? ldmState->window.dictBase : NULL; + BYTE const* const dictStart = extDict ? dictBase + lowestIndex : NULL; + BYTE const* const dictEnd = extDict ? dictBase + dictLimit : NULL; + BYTE const* const lowPrefixPtr = base + dictLimit; + /* Input bounds */ + BYTE const* const istart = (BYTE const*)src; + BYTE const* const iend = istart + srcSize; + BYTE const* const ilimit = iend - HASH_READ_SIZE; + /* Input positions */ + BYTE const* anchor = istart; + BYTE const* ip = istart; + /* Rolling hash state */ + ldmRollingHashState_t hashState; + /* Arrays for staged-processing */ + size_t* const splits = ldmState->splitIndices; + ldmMatchCandidate_t* const candidates = ldmState->matchCandidates; + unsigned numSplits; + + if (srcSize < minMatchLength) + return iend - anchor; + + /* Initialize the rolling hash state with the first minMatchLength bytes */ + ZSTD_ldm_gear_init(&hashState, params); + ZSTD_ldm_gear_reset(&hashState, ip, minMatchLength); + ip += minMatchLength; + + while (ip < ilimit) { + size_t hashed; + unsigned n; + + numSplits = 0; + hashed = ZSTD_ldm_gear_feed(&hashState, ip, ilimit - ip, + splits, &numSplits); + + for (n = 0; n < numSplits; n++) { + BYTE const* const split = ip + splits[n] - minMatchLength; + U64 const xxhash = XXH64(split, minMatchLength, 0); + U32 const hash = (U32)(xxhash & (((U32)1 << hBits) - 1)); + + candidates[n].split = split; + candidates[n].hash = hash; + candidates[n].checksum = (U32)(xxhash >> 32); + candidates[n].bucket = ZSTD_ldm_getBucket(ldmState, hash, *params); + PREFETCH_L1(candidates[n].bucket); + } + + for (n = 0; n < numSplits; n++) { + size_t forwardMatchLength = 0, backwardMatchLength = 0, + bestMatchLength = 0, mLength; + U32 offset; + BYTE const* const split = candidates[n].split; + U32 const checksum = candidates[n].checksum; + U32 const hash = candidates[n].hash; + ldmEntry_t* const bucket = candidates[n].bucket; + ldmEntry_t const* cur; + ldmEntry_t const* bestEntry = NULL; + ldmEntry_t newEntry; + + newEntry.offset = (U32)(split - base); + newEntry.checksum = checksum; + + /* If a split point would generate a sequence overlapping with + * the previous one, we merely register it in the hash table and + * move on */ + if (split < anchor) { + ZSTD_ldm_insertEntry(ldmState, hash, newEntry, *params); + continue; + } + + for (cur = bucket; cur < bucket + entsPerBucket; cur++) { + size_t curForwardMatchLength, curBackwardMatchLength, + curTotalMatchLength; + if (cur->checksum != checksum || cur->offset <= lowestIndex) { + continue; + } + if (extDict) { + BYTE const* const curMatchBase = + cur->offset < dictLimit ? dictBase : base; + BYTE const* const pMatch = curMatchBase + cur->offset; + BYTE const* const matchEnd = + cur->offset < dictLimit ? dictEnd : iend; + BYTE const* const lowMatchPtr = + cur->offset < dictLimit ? dictStart : lowPrefixPtr; + curForwardMatchLength = + ZSTD_count_2segments(split, pMatch, iend, matchEnd, lowPrefixPtr); + if (curForwardMatchLength < minMatchLength) { + continue; + } + curBackwardMatchLength = ZSTD_ldm_countBackwardsMatch_2segments( + split, anchor, pMatch, lowMatchPtr, dictStart, dictEnd); + } else { /* !extDict */ + BYTE const* const pMatch = base + cur->offset; + curForwardMatchLength = ZSTD_count(split, pMatch, iend); + if (curForwardMatchLength < minMatchLength) { + continue; + } + curBackwardMatchLength = + ZSTD_ldm_countBackwardsMatch(split, anchor, pMatch, lowPrefixPtr); + } + curTotalMatchLength = curForwardMatchLength + curBackwardMatchLength; + + if (curTotalMatchLength > bestMatchLength) { + bestMatchLength = curTotalMatchLength; + forwardMatchLength = curForwardMatchLength; + backwardMatchLength = curBackwardMatchLength; + bestEntry = cur; + } + } + + /* No match found -- insert an entry into the hash table + * and process the next candidate match */ + if (bestEntry == NULL) { + ZSTD_ldm_insertEntry(ldmState, hash, newEntry, *params); + continue; + } + + /* Match found */ + offset = (U32)(split - base) - bestEntry->offset; + mLength = forwardMatchLength + backwardMatchLength; + { + rawSeq* const seq = rawSeqStore->seq + rawSeqStore->size; + + /* Out of sequence storage */ + if (rawSeqStore->size == rawSeqStore->capacity) + return ERROR(dstSize_tooSmall); + seq->litLength = (U32)(split - backwardMatchLength - anchor); + seq->matchLength = (U32)mLength; + seq->offset = offset; + rawSeqStore->size++; + } + + /* Insert the current entry into the hash table --- it must be + * done after the previous block to avoid clobbering bestEntry */ + ZSTD_ldm_insertEntry(ldmState, hash, newEntry, *params); + + anchor = split + forwardMatchLength; + + /* If we find a match that ends after the data that we've hashed + * then we have a repeating, overlapping, pattern. E.g. all zeros. + * If one repetition of the pattern matches our `stopMask` then all + * repetitions will. We don't need to insert them all into out table, + * only the first one. So skip over overlapping matches. + * This is a major speed boost (20x) for compressing a single byte + * repeated, when that byte ends up in the table. + */ + if (anchor > ip + hashed) { + ZSTD_ldm_gear_reset(&hashState, anchor - minMatchLength, minMatchLength); + /* Continue the outer loop at anchor (ip + hashed == anchor). */ + ip = anchor - hashed; + break; + } + } + + ip += hashed; + } + + return iend - anchor; +} + +/*! ZSTD_ldm_reduceTable() : + * reduce table indexes by `reducerValue` */ +static void ZSTD_ldm_reduceTable(ldmEntry_t* const table, U32 const size, + U32 const reducerValue) +{ + U32 u; + for (u = 0; u < size; u++) { + if (table[u].offset < reducerValue) table[u].offset = 0; + else table[u].offset -= reducerValue; + } +} + +size_t ZSTD_ldm_generateSequences( + ldmState_t* ldmState, rawSeqStore_t* sequences, + ldmParams_t const* params, void const* src, size_t srcSize) +{ + U32 const maxDist = 1U << params->windowLog; + BYTE const* const istart = (BYTE const*)src; + BYTE const* const iend = istart + srcSize; + size_t const kMaxChunkSize = 1 << 20; + size_t const nbChunks = (srcSize / kMaxChunkSize) + ((srcSize % kMaxChunkSize) != 0); + size_t chunk; + size_t leftoverSize = 0; + + assert(ZSTD_CHUNKSIZE_MAX >= kMaxChunkSize); + /* Check that ZSTD_window_update() has been called for this chunk prior + * to passing it to this function. + */ + assert(ldmState->window.nextSrc >= (BYTE const*)src + srcSize); + /* The input could be very large (in zstdmt), so it must be broken up into + * chunks to enforce the maximum distance and handle overflow correction. + */ + assert(sequences->pos <= sequences->size); + assert(sequences->size <= sequences->capacity); + for (chunk = 0; chunk < nbChunks && sequences->size < sequences->capacity; ++chunk) { + BYTE const* const chunkStart = istart + chunk * kMaxChunkSize; + size_t const remaining = (size_t)(iend - chunkStart); + BYTE const *const chunkEnd = + (remaining < kMaxChunkSize) ? iend : chunkStart + kMaxChunkSize; + size_t const chunkSize = chunkEnd - chunkStart; + size_t newLeftoverSize; + size_t const prevSize = sequences->size; + + assert(chunkStart < iend); + /* 1. Perform overflow correction if necessary. */ + if (ZSTD_window_needOverflowCorrection(ldmState->window, 0, maxDist, ldmState->loadedDictEnd, chunkStart, chunkEnd)) { + U32 const ldmHSize = 1U << params->hashLog; + U32 const correction = ZSTD_window_correctOverflow( + &ldmState->window, /* cycleLog */ 0, maxDist, chunkStart); + ZSTD_ldm_reduceTable(ldmState->hashTable, ldmHSize, correction); + /* invalidate dictionaries on overflow correction */ + ldmState->loadedDictEnd = 0; + } + /* 2. We enforce the maximum offset allowed. + * + * kMaxChunkSize should be small enough that we don't lose too much of + * the window through early invalidation. + * TODO: * Test the chunk size. + * * Try invalidation after the sequence generation and test the + * offset against maxDist directly. + * + * NOTE: Because of dictionaries + sequence splitting we MUST make sure + * that any offset used is valid at the END of the sequence, since it may + * be split into two sequences. This condition holds when using + * ZSTD_window_enforceMaxDist(), but if we move to checking offsets + * against maxDist directly, we'll have to carefully handle that case. + */ + ZSTD_window_enforceMaxDist(&ldmState->window, chunkEnd, maxDist, &ldmState->loadedDictEnd, NULL); + /* 3. Generate the sequences for the chunk, and get newLeftoverSize. */ + newLeftoverSize = ZSTD_ldm_generateSequences_internal( + ldmState, sequences, params, chunkStart, chunkSize); + if (ZSTD_isError(newLeftoverSize)) + return newLeftoverSize; + /* 4. We add the leftover literals from previous iterations to the first + * newly generated sequence, or add the `newLeftoverSize` if none are + * generated. + */ + /* Prepend the leftover literals from the last call */ + if (prevSize < sequences->size) { + sequences->seq[prevSize].litLength += (U32)leftoverSize; + leftoverSize = newLeftoverSize; + } else { + assert(newLeftoverSize == chunkSize); + leftoverSize += chunkSize; + } + } + return 0; +} + +void +ZSTD_ldm_skipSequences(rawSeqStore_t* rawSeqStore, size_t srcSize, U32 const minMatch) +{ + while (srcSize > 0 && rawSeqStore->pos < rawSeqStore->size) { + rawSeq* seq = rawSeqStore->seq + rawSeqStore->pos; + if (srcSize <= seq->litLength) { + /* Skip past srcSize literals */ + seq->litLength -= (U32)srcSize; + return; + } + srcSize -= seq->litLength; + seq->litLength = 0; + if (srcSize < seq->matchLength) { + /* Skip past the first srcSize of the match */ + seq->matchLength -= (U32)srcSize; + if (seq->matchLength < minMatch) { + /* The match is too short, omit it */ + if (rawSeqStore->pos + 1 < rawSeqStore->size) { + seq[1].litLength += seq[0].matchLength; + } + rawSeqStore->pos++; + } + return; + } + srcSize -= seq->matchLength; + seq->matchLength = 0; + rawSeqStore->pos++; + } +} + +/** + * If the sequence length is longer than remaining then the sequence is split + * between this block and the next. + * + * Returns the current sequence to handle, or if the rest of the block should + * be literals, it returns a sequence with offset == 0. + */ +static rawSeq maybeSplitSequence(rawSeqStore_t* rawSeqStore, + U32 const remaining, U32 const minMatch) +{ + rawSeq sequence = rawSeqStore->seq[rawSeqStore->pos]; + assert(sequence.offset > 0); + /* Likely: No partial sequence */ + if (remaining >= sequence.litLength + sequence.matchLength) { + rawSeqStore->pos++; + return sequence; + } + /* Cut the sequence short (offset == 0 ==> rest is literals). */ + if (remaining <= sequence.litLength) { + sequence.offset = 0; + } else if (remaining < sequence.litLength + sequence.matchLength) { + sequence.matchLength = remaining - sequence.litLength; + if (sequence.matchLength < minMatch) { + sequence.offset = 0; + } + } + /* Skip past `remaining` bytes for the future sequences. */ + ZSTD_ldm_skipSequences(rawSeqStore, remaining, minMatch); + return sequence; +} + +void ZSTD_ldm_skipRawSeqStoreBytes(rawSeqStore_t* rawSeqStore, size_t nbBytes) { + U32 currPos = (U32)(rawSeqStore->posInSequence + nbBytes); + while (currPos && rawSeqStore->pos < rawSeqStore->size) { + rawSeq currSeq = rawSeqStore->seq[rawSeqStore->pos]; + if (currPos >= currSeq.litLength + currSeq.matchLength) { + currPos -= currSeq.litLength + currSeq.matchLength; + rawSeqStore->pos++; + } else { + rawSeqStore->posInSequence = currPos; + break; + } + } + if (currPos == 0 || rawSeqStore->pos == rawSeqStore->size) { + rawSeqStore->posInSequence = 0; + } +} + +size_t ZSTD_ldm_blockCompress(rawSeqStore_t* rawSeqStore, + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + ZSTD_paramSwitch_e useRowMatchFinder, + void const* src, size_t srcSize) +{ + const ZSTD_compressionParameters* const cParams = &ms->cParams; + unsigned const minMatch = cParams->minMatch; + ZSTD_blockCompressor const blockCompressor = + ZSTD_selectBlockCompressor(cParams->strategy, useRowMatchFinder, ZSTD_matchState_dictMode(ms)); + /* Input bounds */ + BYTE const* const istart = (BYTE const*)src; + BYTE const* const iend = istart + srcSize; + /* Input positions */ + BYTE const* ip = istart; + + DEBUGLOG(5, "ZSTD_ldm_blockCompress: srcSize=%zu", srcSize); + /* If using opt parser, use LDMs only as candidates rather than always accepting them */ + if (cParams->strategy >= ZSTD_btopt) { + size_t lastLLSize; + ms->ldmSeqStore = rawSeqStore; + lastLLSize = blockCompressor(ms, seqStore, rep, src, srcSize); + ZSTD_ldm_skipRawSeqStoreBytes(rawSeqStore, srcSize); + return lastLLSize; + } + + assert(rawSeqStore->pos <= rawSeqStore->size); + assert(rawSeqStore->size <= rawSeqStore->capacity); + /* Loop through each sequence and apply the block compressor to the literals */ + while (rawSeqStore->pos < rawSeqStore->size && ip < iend) { + /* maybeSplitSequence updates rawSeqStore->pos */ + rawSeq const sequence = maybeSplitSequence(rawSeqStore, + (U32)(iend - ip), minMatch); + /* End signal */ + if (sequence.offset == 0) + break; + + assert(ip + sequence.litLength + sequence.matchLength <= iend); + + /* Fill tables for block compressor */ + ZSTD_ldm_limitTableUpdate(ms, ip); + ZSTD_ldm_fillFastTables(ms, ip); + /* Run the block compressor */ + DEBUGLOG(5, "pos %u : calling block compressor on segment of size %u", (unsigned)(ip-istart), sequence.litLength); + { + int i; + size_t const newLitLength = + blockCompressor(ms, seqStore, rep, ip, sequence.litLength); + ip += sequence.litLength; + /* Update the repcodes */ + for (i = ZSTD_REP_NUM - 1; i > 0; i--) + rep[i] = rep[i-1]; + rep[0] = sequence.offset; + /* Store the sequence */ + ZSTD_storeSeq(seqStore, newLitLength, ip - newLitLength, iend, + OFFSET_TO_OFFBASE(sequence.offset), + sequence.matchLength); + ip += sequence.matchLength; + } + } + /* Fill the tables for the block compressor */ + ZSTD_ldm_limitTableUpdate(ms, ip); + ZSTD_ldm_fillFastTables(ms, ip); + /* Compress the last literals */ + return blockCompressor(ms, seqStore, rep, ip, iend - ip); +} diff --git a/deps/zstd/lib/compress/zstd_ldm.h b/deps/zstd/lib/compress/zstd_ldm.h new file mode 100644 index 00000000000000..f147021d2969ae --- /dev/null +++ b/deps/zstd/lib/compress/zstd_ldm.h @@ -0,0 +1,117 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_LDM_H +#define ZSTD_LDM_H + +#if defined (__cplusplus) +extern "C" { +#endif + +#include "zstd_compress_internal.h" /* ldmParams_t, U32 */ +#include "../zstd.h" /* ZSTD_CCtx, size_t */ + +/*-************************************* +* Long distance matching +***************************************/ + +#define ZSTD_LDM_DEFAULT_WINDOW_LOG ZSTD_WINDOWLOG_LIMIT_DEFAULT + +void ZSTD_ldm_fillHashTable( + ldmState_t* state, const BYTE* ip, + const BYTE* iend, ldmParams_t const* params); + +/** + * ZSTD_ldm_generateSequences(): + * + * Generates the sequences using the long distance match finder. + * Generates long range matching sequences in `sequences`, which parse a prefix + * of the source. `sequences` must be large enough to store every sequence, + * which can be checked with `ZSTD_ldm_getMaxNbSeq()`. + * @returns 0 or an error code. + * + * NOTE: The user must have called ZSTD_window_update() for all of the input + * they have, even if they pass it to ZSTD_ldm_generateSequences() in chunks. + * NOTE: This function returns an error if it runs out of space to store + * sequences. + */ +size_t ZSTD_ldm_generateSequences( + ldmState_t* ldms, rawSeqStore_t* sequences, + ldmParams_t const* params, void const* src, size_t srcSize); + +/** + * ZSTD_ldm_blockCompress(): + * + * Compresses a block using the predefined sequences, along with a secondary + * block compressor. The literals section of every sequence is passed to the + * secondary block compressor, and those sequences are interspersed with the + * predefined sequences. Returns the length of the last literals. + * Updates `rawSeqStore.pos` to indicate how many sequences have been consumed. + * `rawSeqStore.seq` may also be updated to split the last sequence between two + * blocks. + * @return The length of the last literals. + * + * NOTE: The source must be at most the maximum block size, but the predefined + * sequences can be any size, and may be longer than the block. In the case that + * they are longer than the block, the last sequences may need to be split into + * two. We handle that case correctly, and update `rawSeqStore` appropriately. + * NOTE: This function does not return any errors. + */ +size_t ZSTD_ldm_blockCompress(rawSeqStore_t* rawSeqStore, + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + ZSTD_paramSwitch_e useRowMatchFinder, + void const* src, size_t srcSize); + +/** + * ZSTD_ldm_skipSequences(): + * + * Skip past `srcSize` bytes worth of sequences in `rawSeqStore`. + * Avoids emitting matches less than `minMatch` bytes. + * Must be called for data that is not passed to ZSTD_ldm_blockCompress(). + */ +void ZSTD_ldm_skipSequences(rawSeqStore_t* rawSeqStore, size_t srcSize, + U32 const minMatch); + +/* ZSTD_ldm_skipRawSeqStoreBytes(): + * Moves forward in rawSeqStore by nbBytes, updating fields 'pos' and 'posInSequence'. + * Not to be used in conjunction with ZSTD_ldm_skipSequences(). + * Must be called for data with is not passed to ZSTD_ldm_blockCompress(). + */ +void ZSTD_ldm_skipRawSeqStoreBytes(rawSeqStore_t* rawSeqStore, size_t nbBytes); + +/** ZSTD_ldm_getTableSize() : + * Estimate the space needed for long distance matching tables or 0 if LDM is + * disabled. + */ +size_t ZSTD_ldm_getTableSize(ldmParams_t params); + +/** ZSTD_ldm_getSeqSpace() : + * Return an upper bound on the number of sequences that can be produced by + * the long distance matcher, or 0 if LDM is disabled. + */ +size_t ZSTD_ldm_getMaxNbSeq(ldmParams_t params, size_t maxChunkSize); + +/** ZSTD_ldm_adjustParameters() : + * If the params->hashRateLog is not set, set it to its default value based on + * windowLog and params->hashLog. + * + * Ensures that params->bucketSizeLog is <= params->hashLog (setting it to + * params->hashLog if it is not). + * + * Ensures that the minMatchLength >= targetLength during optimal parsing. + */ +void ZSTD_ldm_adjustParameters(ldmParams_t* params, + ZSTD_compressionParameters const* cParams); + +#if defined (__cplusplus) +} +#endif + +#endif /* ZSTD_FAST_H */ diff --git a/deps/zstd/lib/compress/zstd_ldm_geartab.h b/deps/zstd/lib/compress/zstd_ldm_geartab.h new file mode 100644 index 00000000000000..ef34bc5c92314c --- /dev/null +++ b/deps/zstd/lib/compress/zstd_ldm_geartab.h @@ -0,0 +1,106 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_LDM_GEARTAB_H +#define ZSTD_LDM_GEARTAB_H + +#include "../common/compiler.h" /* UNUSED_ATTR */ +#include "../common/mem.h" /* U64 */ + +static UNUSED_ATTR const U64 ZSTD_ldm_gearTab[256] = { + 0xf5b8f72c5f77775c, 0x84935f266b7ac412, 0xb647ada9ca730ccc, + 0xb065bb4b114fb1de, 0x34584e7e8c3a9fd0, 0x4e97e17c6ae26b05, + 0x3a03d743bc99a604, 0xcecd042422c4044f, 0x76de76c58524259e, + 0x9c8528f65badeaca, 0x86563706e2097529, 0x2902475fa375d889, + 0xafb32a9739a5ebe6, 0xce2714da3883e639, 0x21eaf821722e69e, + 0x37b628620b628, 0x49a8d455d88caf5, 0x8556d711e6958140, + 0x4f7ae74fc605c1f, 0x829f0c3468bd3a20, 0x4ffdc885c625179e, + 0x8473de048a3daf1b, 0x51008822b05646b2, 0x69d75d12b2d1cc5f, + 0x8c9d4a19159154bc, 0xc3cc10f4abbd4003, 0xd06ddc1cecb97391, + 0xbe48e6e7ed80302e, 0x3481db31cee03547, 0xacc3f67cdaa1d210, + 0x65cb771d8c7f96cc, 0x8eb27177055723dd, 0xc789950d44cd94be, + 0x934feadc3700b12b, 0x5e485f11edbdf182, 0x1e2e2a46fd64767a, + 0x2969ca71d82efa7c, 0x9d46e9935ebbba2e, 0xe056b67e05e6822b, + 0x94d73f55739d03a0, 0xcd7010bdb69b5a03, 0x455ef9fcd79b82f4, + 0x869cb54a8749c161, 0x38d1a4fa6185d225, 0xb475166f94bbe9bb, + 0xa4143548720959f1, 0x7aed4780ba6b26ba, 0xd0ce264439e02312, + 0x84366d746078d508, 0xa8ce973c72ed17be, 0x21c323a29a430b01, + 0x9962d617e3af80ee, 0xab0ce91d9c8cf75b, 0x530e8ee6d19a4dbc, + 0x2ef68c0cf53f5d72, 0xc03a681640a85506, 0x496e4e9f9c310967, + 0x78580472b59b14a0, 0x273824c23b388577, 0x66bf923ad45cb553, + 0x47ae1a5a2492ba86, 0x35e304569e229659, 0x4765182a46870b6f, + 0x6cbab625e9099412, 0xddac9a2e598522c1, 0x7172086e666624f2, + 0xdf5003ca503b7837, 0x88c0c1db78563d09, 0x58d51865acfc289d, + 0x177671aec65224f1, 0xfb79d8a241e967d7, 0x2be1e101cad9a49a, + 0x6625682f6e29186b, 0x399553457ac06e50, 0x35dffb4c23abb74, + 0x429db2591f54aade, 0xc52802a8037d1009, 0x6acb27381f0b25f3, + 0xf45e2551ee4f823b, 0x8b0ea2d99580c2f7, 0x3bed519cbcb4e1e1, + 0xff452823dbb010a, 0x9d42ed614f3dd267, 0x5b9313c06257c57b, + 0xa114b8008b5e1442, 0xc1fe311c11c13d4b, 0x66e8763ea34c5568, + 0x8b982af1c262f05d, 0xee8876faaa75fbb7, 0x8a62a4d0d172bb2a, + 0xc13d94a3b7449a97, 0x6dbbba9dc15d037c, 0xc786101f1d92e0f1, + 0xd78681a907a0b79b, 0xf61aaf2962c9abb9, 0x2cfd16fcd3cb7ad9, + 0x868c5b6744624d21, 0x25e650899c74ddd7, 0xba042af4a7c37463, + 0x4eb1a539465a3eca, 0xbe09dbf03b05d5ca, 0x774e5a362b5472ba, + 0x47a1221229d183cd, 0x504b0ca18ef5a2df, 0xdffbdfbde2456eb9, + 0x46cd2b2fbee34634, 0xf2aef8fe819d98c3, 0x357f5276d4599d61, + 0x24a5483879c453e3, 0x88026889192b4b9, 0x28da96671782dbec, + 0x4ef37c40588e9aaa, 0x8837b90651bc9fb3, 0xc164f741d3f0e5d6, + 0xbc135a0a704b70ba, 0x69cd868f7622ada, 0xbc37ba89e0b9c0ab, + 0x47c14a01323552f6, 0x4f00794bacee98bb, 0x7107de7d637a69d5, + 0x88af793bb6f2255e, 0xf3c6466b8799b598, 0xc288c616aa7f3b59, + 0x81ca63cf42fca3fd, 0x88d85ace36a2674b, 0xd056bd3792389e7, + 0xe55c396c4e9dd32d, 0xbefb504571e6c0a6, 0x96ab32115e91e8cc, + 0xbf8acb18de8f38d1, 0x66dae58801672606, 0x833b6017872317fb, + 0xb87c16f2d1c92864, 0xdb766a74e58b669c, 0x89659f85c61417be, + 0xc8daad856011ea0c, 0x76a4b565b6fe7eae, 0xa469d085f6237312, + 0xaaf0365683a3e96c, 0x4dbb746f8424f7b8, 0x638755af4e4acc1, + 0x3d7807f5bde64486, 0x17be6d8f5bbb7639, 0x903f0cd44dc35dc, + 0x67b672eafdf1196c, 0xa676ff93ed4c82f1, 0x521d1004c5053d9d, + 0x37ba9ad09ccc9202, 0x84e54d297aacfb51, 0xa0b4b776a143445, + 0x820d471e20b348e, 0x1874383cb83d46dc, 0x97edeec7a1efe11c, + 0xb330e50b1bdc42aa, 0x1dd91955ce70e032, 0xa514cdb88f2939d5, + 0x2791233fd90db9d3, 0x7b670a4cc50f7a9b, 0x77c07d2a05c6dfa5, + 0xe3778b6646d0a6fa, 0xb39c8eda47b56749, 0x933ed448addbef28, + 0xaf846af6ab7d0bf4, 0xe5af208eb666e49, 0x5e6622f73534cd6a, + 0x297daeca42ef5b6e, 0x862daef3d35539a6, 0xe68722498f8e1ea9, + 0x981c53093dc0d572, 0xfa09b0bfbf86fbf5, 0x30b1e96166219f15, + 0x70e7d466bdc4fb83, 0x5a66736e35f2a8e9, 0xcddb59d2b7c1baef, + 0xd6c7d247d26d8996, 0xea4e39eac8de1ba3, 0x539c8bb19fa3aff2, + 0x9f90e4c5fd508d8, 0xa34e5956fbaf3385, 0x2e2f8e151d3ef375, + 0x173691e9b83faec1, 0xb85a8d56bf016379, 0x8382381267408ae3, + 0xb90f901bbdc0096d, 0x7c6ad32933bcec65, 0x76bb5e2f2c8ad595, + 0x390f851a6cf46d28, 0xc3e6064da1c2da72, 0xc52a0c101cfa5389, + 0xd78eaf84a3fbc530, 0x3781b9e2288b997e, 0x73c2f6dea83d05c4, + 0x4228e364c5b5ed7, 0x9d7a3edf0da43911, 0x8edcfeda24686756, + 0x5e7667a7b7a9b3a1, 0x4c4f389fa143791d, 0xb08bc1023da7cddc, + 0x7ab4be3ae529b1cc, 0x754e6132dbe74ff9, 0x71635442a839df45, + 0x2f6fb1643fbe52de, 0x961e0a42cf7a8177, 0xf3b45d83d89ef2ea, + 0xee3de4cf4a6e3e9b, 0xcd6848542c3295e7, 0xe4cee1664c78662f, + 0x9947548b474c68c4, 0x25d73777a5ed8b0b, 0xc915b1d636b7fc, + 0x21c2ba75d9b0d2da, 0x5f6b5dcf608a64a1, 0xdcf333255ff9570c, + 0x633b922418ced4ee, 0xc136dde0b004b34a, 0x58cc83b05d4b2f5a, + 0x5eb424dda28e42d2, 0x62df47369739cd98, 0xb4e0b42485e4ce17, + 0x16e1f0c1f9a8d1e7, 0x8ec3916707560ebf, 0x62ba6e2df2cc9db3, + 0xcbf9f4ff77d83a16, 0x78d9d7d07d2bbcc4, 0xef554ce1e02c41f4, + 0x8d7581127eccf94d, 0xa9b53336cb3c8a05, 0x38c42c0bf45c4f91, + 0x640893cdf4488863, 0x80ec34bc575ea568, 0x39f324f5b48eaa40, + 0xe9d9ed1f8eff527f, 0x9224fc058cc5a214, 0xbaba00b04cfe7741, + 0x309a9f120fcf52af, 0xa558f3ec65626212, 0x424bec8b7adabe2f, + 0x41622513a6aea433, 0xb88da2d5324ca798, 0xd287733b245528a4, + 0x9a44697e6d68aec3, 0x7b1093be2f49bb28, 0x50bbec632e3d8aad, + 0x6cd90723e1ea8283, 0x897b9e7431b02bf3, 0x219efdcb338a7047, + 0x3b0311f0a27c0656, 0xdb17bf91c0db96e7, 0x8cd4fd6b4e85a5b2, + 0xfab071054ba6409d, 0x40d6fe831fa9dfd9, 0xaf358debad7d791e, + 0xeb8d0e25a65e3e58, 0xbbcbd3df14e08580, 0xcf751f27ecdab2b, + 0x2b4da14f2613d8f4 +}; + +#endif /* ZSTD_LDM_GEARTAB_H */ diff --git a/deps/zstd/lib/compress/zstd_opt.c b/deps/zstd/lib/compress/zstd_opt.c new file mode 100644 index 00000000000000..e63073e5a4f3e4 --- /dev/null +++ b/deps/zstd/lib/compress/zstd_opt.c @@ -0,0 +1,1576 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#include "zstd_compress_internal.h" +#include "hist.h" +#include "zstd_opt.h" + +#if !defined(ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_BTOPT_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_BTULTRA_BLOCK_COMPRESSOR) + +#define ZSTD_LITFREQ_ADD 2 /* scaling factor for litFreq, so that frequencies adapt faster to new stats */ +#define ZSTD_MAX_PRICE (1<<30) + +#define ZSTD_PREDEF_THRESHOLD 8 /* if srcSize < ZSTD_PREDEF_THRESHOLD, symbols' cost is assumed static, directly determined by pre-defined distributions */ + + +/*-************************************* +* Price functions for optimal parser +***************************************/ + +#if 0 /* approximation at bit level (for tests) */ +# define BITCOST_ACCURACY 0 +# define BITCOST_MULTIPLIER (1 << BITCOST_ACCURACY) +# define WEIGHT(stat, opt) ((void)(opt), ZSTD_bitWeight(stat)) +#elif 0 /* fractional bit accuracy (for tests) */ +# define BITCOST_ACCURACY 8 +# define BITCOST_MULTIPLIER (1 << BITCOST_ACCURACY) +# define WEIGHT(stat,opt) ((void)(opt), ZSTD_fracWeight(stat)) +#else /* opt==approx, ultra==accurate */ +# define BITCOST_ACCURACY 8 +# define BITCOST_MULTIPLIER (1 << BITCOST_ACCURACY) +# define WEIGHT(stat,opt) ((opt) ? ZSTD_fracWeight(stat) : ZSTD_bitWeight(stat)) +#endif + +/* ZSTD_bitWeight() : + * provide estimated "cost" of a stat in full bits only */ +MEM_STATIC U32 ZSTD_bitWeight(U32 stat) +{ + return (ZSTD_highbit32(stat+1) * BITCOST_MULTIPLIER); +} + +/* ZSTD_fracWeight() : + * provide fractional-bit "cost" of a stat, + * using linear interpolation approximation */ +MEM_STATIC U32 ZSTD_fracWeight(U32 rawStat) +{ + U32 const stat = rawStat + 1; + U32 const hb = ZSTD_highbit32(stat); + U32 const BWeight = hb * BITCOST_MULTIPLIER; + /* Fweight was meant for "Fractional weight" + * but it's effectively a value between 1 and 2 + * using fixed point arithmetic */ + U32 const FWeight = (stat << BITCOST_ACCURACY) >> hb; + U32 const weight = BWeight + FWeight; + assert(hb + BITCOST_ACCURACY < 31); + return weight; +} + +#if (DEBUGLEVEL>=2) +/* debugging function, + * @return price in bytes as fractional value + * for debug messages only */ +MEM_STATIC double ZSTD_fCost(int price) +{ + return (double)price / (BITCOST_MULTIPLIER*8); +} +#endif + +static int ZSTD_compressedLiterals(optState_t const* const optPtr) +{ + return optPtr->literalCompressionMode != ZSTD_ps_disable; +} + +static void ZSTD_setBasePrices(optState_t* optPtr, int optLevel) +{ + if (ZSTD_compressedLiterals(optPtr)) + optPtr->litSumBasePrice = WEIGHT(optPtr->litSum, optLevel); + optPtr->litLengthSumBasePrice = WEIGHT(optPtr->litLengthSum, optLevel); + optPtr->matchLengthSumBasePrice = WEIGHT(optPtr->matchLengthSum, optLevel); + optPtr->offCodeSumBasePrice = WEIGHT(optPtr->offCodeSum, optLevel); +} + + +static U32 sum_u32(const unsigned table[], size_t nbElts) +{ + size_t n; + U32 total = 0; + for (n=0; n0); + unsigned const newStat = base + (table[s] >> shift); + sum += newStat; + table[s] = newStat; + } + return sum; +} + +/* ZSTD_scaleStats() : + * reduce all elt frequencies in table if sum too large + * return the resulting sum of elements */ +static U32 ZSTD_scaleStats(unsigned* table, U32 lastEltIndex, U32 logTarget) +{ + U32 const prevsum = sum_u32(table, lastEltIndex+1); + U32 const factor = prevsum >> logTarget; + DEBUGLOG(5, "ZSTD_scaleStats (nbElts=%u, target=%u)", (unsigned)lastEltIndex+1, (unsigned)logTarget); + assert(logTarget < 30); + if (factor <= 1) return prevsum; + return ZSTD_downscaleStats(table, lastEltIndex, ZSTD_highbit32(factor), base_1guaranteed); +} + +/* ZSTD_rescaleFreqs() : + * if first block (detected by optPtr->litLengthSum == 0) : init statistics + * take hints from dictionary if there is one + * and init from zero if there is none, + * using src for literals stats, and baseline stats for sequence symbols + * otherwise downscale existing stats, to be used as seed for next block. + */ +static void +ZSTD_rescaleFreqs(optState_t* const optPtr, + const BYTE* const src, size_t const srcSize, + int const optLevel) +{ + int const compressedLiterals = ZSTD_compressedLiterals(optPtr); + DEBUGLOG(5, "ZSTD_rescaleFreqs (srcSize=%u)", (unsigned)srcSize); + optPtr->priceType = zop_dynamic; + + if (optPtr->litLengthSum == 0) { /* no literals stats collected -> first block assumed -> init */ + + /* heuristic: use pre-defined stats for too small inputs */ + if (srcSize <= ZSTD_PREDEF_THRESHOLD) { + DEBUGLOG(5, "srcSize <= %i : use predefined stats", ZSTD_PREDEF_THRESHOLD); + optPtr->priceType = zop_predef; + } + + assert(optPtr->symbolCosts != NULL); + if (optPtr->symbolCosts->huf.repeatMode == HUF_repeat_valid) { + + /* huffman stats covering the full value set : table presumed generated by dictionary */ + optPtr->priceType = zop_dynamic; + + if (compressedLiterals) { + /* generate literals statistics from huffman table */ + unsigned lit; + assert(optPtr->litFreq != NULL); + optPtr->litSum = 0; + for (lit=0; lit<=MaxLit; lit++) { + U32 const scaleLog = 11; /* scale to 2K */ + U32 const bitCost = HUF_getNbBitsFromCTable(optPtr->symbolCosts->huf.CTable, lit); + assert(bitCost <= scaleLog); + optPtr->litFreq[lit] = bitCost ? 1 << (scaleLog-bitCost) : 1 /*minimum to calculate cost*/; + optPtr->litSum += optPtr->litFreq[lit]; + } } + + { unsigned ll; + FSE_CState_t llstate; + FSE_initCState(&llstate, optPtr->symbolCosts->fse.litlengthCTable); + optPtr->litLengthSum = 0; + for (ll=0; ll<=MaxLL; ll++) { + U32 const scaleLog = 10; /* scale to 1K */ + U32 const bitCost = FSE_getMaxNbBits(llstate.symbolTT, ll); + assert(bitCost < scaleLog); + optPtr->litLengthFreq[ll] = bitCost ? 1 << (scaleLog-bitCost) : 1 /*minimum to calculate cost*/; + optPtr->litLengthSum += optPtr->litLengthFreq[ll]; + } } + + { unsigned ml; + FSE_CState_t mlstate; + FSE_initCState(&mlstate, optPtr->symbolCosts->fse.matchlengthCTable); + optPtr->matchLengthSum = 0; + for (ml=0; ml<=MaxML; ml++) { + U32 const scaleLog = 10; + U32 const bitCost = FSE_getMaxNbBits(mlstate.symbolTT, ml); + assert(bitCost < scaleLog); + optPtr->matchLengthFreq[ml] = bitCost ? 1 << (scaleLog-bitCost) : 1 /*minimum to calculate cost*/; + optPtr->matchLengthSum += optPtr->matchLengthFreq[ml]; + } } + + { unsigned of; + FSE_CState_t ofstate; + FSE_initCState(&ofstate, optPtr->symbolCosts->fse.offcodeCTable); + optPtr->offCodeSum = 0; + for (of=0; of<=MaxOff; of++) { + U32 const scaleLog = 10; + U32 const bitCost = FSE_getMaxNbBits(ofstate.symbolTT, of); + assert(bitCost < scaleLog); + optPtr->offCodeFreq[of] = bitCost ? 1 << (scaleLog-bitCost) : 1 /*minimum to calculate cost*/; + optPtr->offCodeSum += optPtr->offCodeFreq[of]; + } } + + } else { /* first block, no dictionary */ + + assert(optPtr->litFreq != NULL); + if (compressedLiterals) { + /* base initial cost of literals on direct frequency within src */ + unsigned lit = MaxLit; + HIST_count_simple(optPtr->litFreq, &lit, src, srcSize); /* use raw first block to init statistics */ + optPtr->litSum = ZSTD_downscaleStats(optPtr->litFreq, MaxLit, 8, base_0possible); + } + + { unsigned const baseLLfreqs[MaxLL+1] = { + 4, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1 + }; + ZSTD_memcpy(optPtr->litLengthFreq, baseLLfreqs, sizeof(baseLLfreqs)); + optPtr->litLengthSum = sum_u32(baseLLfreqs, MaxLL+1); + } + + { unsigned ml; + for (ml=0; ml<=MaxML; ml++) + optPtr->matchLengthFreq[ml] = 1; + } + optPtr->matchLengthSum = MaxML+1; + + { unsigned const baseOFCfreqs[MaxOff+1] = { + 6, 2, 1, 1, 2, 3, 4, 4, + 4, 3, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1 + }; + ZSTD_memcpy(optPtr->offCodeFreq, baseOFCfreqs, sizeof(baseOFCfreqs)); + optPtr->offCodeSum = sum_u32(baseOFCfreqs, MaxOff+1); + } + + } + + } else { /* new block : scale down accumulated statistics */ + + if (compressedLiterals) + optPtr->litSum = ZSTD_scaleStats(optPtr->litFreq, MaxLit, 12); + optPtr->litLengthSum = ZSTD_scaleStats(optPtr->litLengthFreq, MaxLL, 11); + optPtr->matchLengthSum = ZSTD_scaleStats(optPtr->matchLengthFreq, MaxML, 11); + optPtr->offCodeSum = ZSTD_scaleStats(optPtr->offCodeFreq, MaxOff, 11); + } + + ZSTD_setBasePrices(optPtr, optLevel); +} + +/* ZSTD_rawLiteralsCost() : + * price of literals (only) in specified segment (which length can be 0). + * does not include price of literalLength symbol */ +static U32 ZSTD_rawLiteralsCost(const BYTE* const literals, U32 const litLength, + const optState_t* const optPtr, + int optLevel) +{ + DEBUGLOG(8, "ZSTD_rawLiteralsCost (%u literals)", litLength); + if (litLength == 0) return 0; + + if (!ZSTD_compressedLiterals(optPtr)) + return (litLength << 3) * BITCOST_MULTIPLIER; /* Uncompressed - 8 bytes per literal. */ + + if (optPtr->priceType == zop_predef) + return (litLength*6) * BITCOST_MULTIPLIER; /* 6 bit per literal - no statistic used */ + + /* dynamic statistics */ + { U32 price = optPtr->litSumBasePrice * litLength; + U32 const litPriceMax = optPtr->litSumBasePrice - BITCOST_MULTIPLIER; + U32 u; + assert(optPtr->litSumBasePrice >= BITCOST_MULTIPLIER); + for (u=0; u < litLength; u++) { + U32 litPrice = WEIGHT(optPtr->litFreq[literals[u]], optLevel); + if (UNLIKELY(litPrice > litPriceMax)) litPrice = litPriceMax; + price -= litPrice; + } + return price; + } +} + +/* ZSTD_litLengthPrice() : + * cost of literalLength symbol */ +static U32 ZSTD_litLengthPrice(U32 const litLength, const optState_t* const optPtr, int optLevel) +{ + assert(litLength <= ZSTD_BLOCKSIZE_MAX); + if (optPtr->priceType == zop_predef) + return WEIGHT(litLength, optLevel); + + /* ZSTD_LLcode() can't compute litLength price for sizes >= ZSTD_BLOCKSIZE_MAX + * because it isn't representable in the zstd format. + * So instead just pretend it would cost 1 bit more than ZSTD_BLOCKSIZE_MAX - 1. + * In such a case, the block would be all literals. + */ + if (litLength == ZSTD_BLOCKSIZE_MAX) + return BITCOST_MULTIPLIER + ZSTD_litLengthPrice(ZSTD_BLOCKSIZE_MAX - 1, optPtr, optLevel); + + /* dynamic statistics */ + { U32 const llCode = ZSTD_LLcode(litLength); + return (LL_bits[llCode] * BITCOST_MULTIPLIER) + + optPtr->litLengthSumBasePrice + - WEIGHT(optPtr->litLengthFreq[llCode], optLevel); + } +} + +/* ZSTD_getMatchPrice() : + * Provides the cost of the match part (offset + matchLength) of a sequence. + * Must be combined with ZSTD_fullLiteralsCost() to get the full cost of a sequence. + * @offBase : sumtype, representing an offset or a repcode, and using numeric representation of ZSTD_storeSeq() + * @optLevel: when <2, favors small offset for decompression speed (improved cache efficiency) + */ +FORCE_INLINE_TEMPLATE U32 +ZSTD_getMatchPrice(U32 const offBase, + U32 const matchLength, + const optState_t* const optPtr, + int const optLevel) +{ + U32 price; + U32 const offCode = ZSTD_highbit32(offBase); + U32 const mlBase = matchLength - MINMATCH; + assert(matchLength >= MINMATCH); + + if (optPtr->priceType == zop_predef) /* fixed scheme, does not use statistics */ + return WEIGHT(mlBase, optLevel) + + ((16 + offCode) * BITCOST_MULTIPLIER); /* emulated offset cost */ + + /* dynamic statistics */ + price = (offCode * BITCOST_MULTIPLIER) + (optPtr->offCodeSumBasePrice - WEIGHT(optPtr->offCodeFreq[offCode], optLevel)); + if ((optLevel<2) /*static*/ && offCode >= 20) + price += (offCode-19)*2 * BITCOST_MULTIPLIER; /* handicap for long distance offsets, favor decompression speed */ + + /* match Length */ + { U32 const mlCode = ZSTD_MLcode(mlBase); + price += (ML_bits[mlCode] * BITCOST_MULTIPLIER) + (optPtr->matchLengthSumBasePrice - WEIGHT(optPtr->matchLengthFreq[mlCode], optLevel)); + } + + price += BITCOST_MULTIPLIER / 5; /* heuristic : make matches a bit more costly to favor less sequences -> faster decompression speed */ + + DEBUGLOG(8, "ZSTD_getMatchPrice(ml:%u) = %u", matchLength, price); + return price; +} + +/* ZSTD_updateStats() : + * assumption : literals + litLength <= iend */ +static void ZSTD_updateStats(optState_t* const optPtr, + U32 litLength, const BYTE* literals, + U32 offBase, U32 matchLength) +{ + /* literals */ + if (ZSTD_compressedLiterals(optPtr)) { + U32 u; + for (u=0; u < litLength; u++) + optPtr->litFreq[literals[u]] += ZSTD_LITFREQ_ADD; + optPtr->litSum += litLength*ZSTD_LITFREQ_ADD; + } + + /* literal Length */ + { U32 const llCode = ZSTD_LLcode(litLength); + optPtr->litLengthFreq[llCode]++; + optPtr->litLengthSum++; + } + + /* offset code : follows storeSeq() numeric representation */ + { U32 const offCode = ZSTD_highbit32(offBase); + assert(offCode <= MaxOff); + optPtr->offCodeFreq[offCode]++; + optPtr->offCodeSum++; + } + + /* match Length */ + { U32 const mlBase = matchLength - MINMATCH; + U32 const mlCode = ZSTD_MLcode(mlBase); + optPtr->matchLengthFreq[mlCode]++; + optPtr->matchLengthSum++; + } +} + + +/* ZSTD_readMINMATCH() : + * function safe only for comparisons + * assumption : memPtr must be at least 4 bytes before end of buffer */ +MEM_STATIC U32 ZSTD_readMINMATCH(const void* memPtr, U32 length) +{ + switch (length) + { + default : + case 4 : return MEM_read32(memPtr); + case 3 : if (MEM_isLittleEndian()) + return MEM_read32(memPtr)<<8; + else + return MEM_read32(memPtr)>>8; + } +} + + +/* Update hashTable3 up to ip (excluded) + Assumption : always within prefix (i.e. not within extDict) */ +static +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +U32 ZSTD_insertAndFindFirstIndexHash3 (const ZSTD_matchState_t* ms, + U32* nextToUpdate3, + const BYTE* const ip) +{ + U32* const hashTable3 = ms->hashTable3; + U32 const hashLog3 = ms->hashLog3; + const BYTE* const base = ms->window.base; + U32 idx = *nextToUpdate3; + U32 const target = (U32)(ip - base); + size_t const hash3 = ZSTD_hash3Ptr(ip, hashLog3); + assert(hashLog3 > 0); + + while(idx < target) { + hashTable3[ZSTD_hash3Ptr(base+idx, hashLog3)] = idx; + idx++; + } + + *nextToUpdate3 = target; + return hashTable3[hash3]; +} + + +/*-************************************* +* Binary Tree search +***************************************/ +/** ZSTD_insertBt1() : add one or multiple positions to tree. + * @param ip assumed <= iend-8 . + * @param target The target of ZSTD_updateTree_internal() - we are filling to this position + * @return : nb of positions added */ +static +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +U32 ZSTD_insertBt1( + const ZSTD_matchState_t* ms, + const BYTE* const ip, const BYTE* const iend, + U32 const target, + U32 const mls, const int extDict) +{ + const ZSTD_compressionParameters* const cParams = &ms->cParams; + U32* const hashTable = ms->hashTable; + U32 const hashLog = cParams->hashLog; + size_t const h = ZSTD_hashPtr(ip, hashLog, mls); + U32* const bt = ms->chainTable; + U32 const btLog = cParams->chainLog - 1; + U32 const btMask = (1 << btLog) - 1; + U32 matchIndex = hashTable[h]; + size_t commonLengthSmaller=0, commonLengthLarger=0; + const BYTE* const base = ms->window.base; + const BYTE* const dictBase = ms->window.dictBase; + const U32 dictLimit = ms->window.dictLimit; + const BYTE* const dictEnd = dictBase + dictLimit; + const BYTE* const prefixStart = base + dictLimit; + const BYTE* match; + const U32 curr = (U32)(ip-base); + const U32 btLow = btMask >= curr ? 0 : curr - btMask; + U32* smallerPtr = bt + 2*(curr&btMask); + U32* largerPtr = smallerPtr + 1; + U32 dummy32; /* to be nullified at the end */ + /* windowLow is based on target because + * we only need positions that will be in the window at the end of the tree update. + */ + U32 const windowLow = ZSTD_getLowestMatchIndex(ms, target, cParams->windowLog); + U32 matchEndIdx = curr+8+1; + size_t bestLength = 8; + U32 nbCompares = 1U << cParams->searchLog; +#ifdef ZSTD_C_PREDICT + U32 predictedSmall = *(bt + 2*((curr-1)&btMask) + 0); + U32 predictedLarge = *(bt + 2*((curr-1)&btMask) + 1); + predictedSmall += (predictedSmall>0); + predictedLarge += (predictedLarge>0); +#endif /* ZSTD_C_PREDICT */ + + DEBUGLOG(8, "ZSTD_insertBt1 (%u)", curr); + + assert(curr <= target); + assert(ip <= iend-8); /* required for h calculation */ + hashTable[h] = curr; /* Update Hash Table */ + + assert(windowLow > 0); + for (; nbCompares && (matchIndex >= windowLow); --nbCompares) { + U32* const nextPtr = bt + 2*(matchIndex & btMask); + size_t matchLength = MIN(commonLengthSmaller, commonLengthLarger); /* guaranteed minimum nb of common bytes */ + assert(matchIndex < curr); + +#ifdef ZSTD_C_PREDICT /* note : can create issues when hlog small <= 11 */ + const U32* predictPtr = bt + 2*((matchIndex-1) & btMask); /* written this way, as bt is a roll buffer */ + if (matchIndex == predictedSmall) { + /* no need to check length, result known */ + *smallerPtr = matchIndex; + if (matchIndex <= btLow) { smallerPtr=&dummy32; break; } /* beyond tree size, stop the search */ + smallerPtr = nextPtr+1; /* new "smaller" => larger of match */ + matchIndex = nextPtr[1]; /* new matchIndex larger than previous (closer to current) */ + predictedSmall = predictPtr[1] + (predictPtr[1]>0); + continue; + } + if (matchIndex == predictedLarge) { + *largerPtr = matchIndex; + if (matchIndex <= btLow) { largerPtr=&dummy32; break; } /* beyond tree size, stop the search */ + largerPtr = nextPtr; + matchIndex = nextPtr[0]; + predictedLarge = predictPtr[0] + (predictPtr[0]>0); + continue; + } +#endif + + if (!extDict || (matchIndex+matchLength >= dictLimit)) { + assert(matchIndex+matchLength >= dictLimit); /* might be wrong if actually extDict */ + match = base + matchIndex; + matchLength += ZSTD_count(ip+matchLength, match+matchLength, iend); + } else { + match = dictBase + matchIndex; + matchLength += ZSTD_count_2segments(ip+matchLength, match+matchLength, iend, dictEnd, prefixStart); + if (matchIndex+matchLength >= dictLimit) + match = base + matchIndex; /* to prepare for next usage of match[matchLength] */ + } + + if (matchLength > bestLength) { + bestLength = matchLength; + if (matchLength > matchEndIdx - matchIndex) + matchEndIdx = matchIndex + (U32)matchLength; + } + + if (ip+matchLength == iend) { /* equal : no way to know if inf or sup */ + break; /* drop , to guarantee consistency ; miss a bit of compression, but other solutions can corrupt tree */ + } + + if (match[matchLength] < ip[matchLength]) { /* necessarily within buffer */ + /* match is smaller than current */ + *smallerPtr = matchIndex; /* update smaller idx */ + commonLengthSmaller = matchLength; /* all smaller will now have at least this guaranteed common length */ + if (matchIndex <= btLow) { smallerPtr=&dummy32; break; } /* beyond tree size, stop searching */ + smallerPtr = nextPtr+1; /* new "candidate" => larger than match, which was smaller than target */ + matchIndex = nextPtr[1]; /* new matchIndex, larger than previous and closer to current */ + } else { + /* match is larger than current */ + *largerPtr = matchIndex; + commonLengthLarger = matchLength; + if (matchIndex <= btLow) { largerPtr=&dummy32; break; } /* beyond tree size, stop searching */ + largerPtr = nextPtr; + matchIndex = nextPtr[0]; + } } + + *smallerPtr = *largerPtr = 0; + { U32 positions = 0; + if (bestLength > 384) positions = MIN(192, (U32)(bestLength - 384)); /* speed optimization */ + assert(matchEndIdx > curr + 8); + return MAX(positions, matchEndIdx - (curr + 8)); + } +} + +FORCE_INLINE_TEMPLATE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +void ZSTD_updateTree_internal( + ZSTD_matchState_t* ms, + const BYTE* const ip, const BYTE* const iend, + const U32 mls, const ZSTD_dictMode_e dictMode) +{ + const BYTE* const base = ms->window.base; + U32 const target = (U32)(ip - base); + U32 idx = ms->nextToUpdate; + DEBUGLOG(7, "ZSTD_updateTree_internal, from %u to %u (dictMode:%u)", + idx, target, dictMode); + + while(idx < target) { + U32 const forward = ZSTD_insertBt1(ms, base+idx, iend, target, mls, dictMode == ZSTD_extDict); + assert(idx < (U32)(idx + forward)); + idx += forward; + } + assert((size_t)(ip - base) <= (size_t)(U32)(-1)); + assert((size_t)(iend - base) <= (size_t)(U32)(-1)); + ms->nextToUpdate = target; +} + +void ZSTD_updateTree(ZSTD_matchState_t* ms, const BYTE* ip, const BYTE* iend) { + ZSTD_updateTree_internal(ms, ip, iend, ms->cParams.minMatch, ZSTD_noDict); +} + +FORCE_INLINE_TEMPLATE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +U32 +ZSTD_insertBtAndGetAllMatches ( + ZSTD_match_t* matches, /* store result (found matches) in this table (presumed large enough) */ + ZSTD_matchState_t* ms, + U32* nextToUpdate3, + const BYTE* const ip, const BYTE* const iLimit, + const ZSTD_dictMode_e dictMode, + const U32 rep[ZSTD_REP_NUM], + const U32 ll0, /* tells if associated literal length is 0 or not. This value must be 0 or 1 */ + const U32 lengthToBeat, + const U32 mls /* template */) +{ + const ZSTD_compressionParameters* const cParams = &ms->cParams; + U32 const sufficient_len = MIN(cParams->targetLength, ZSTD_OPT_NUM -1); + const BYTE* const base = ms->window.base; + U32 const curr = (U32)(ip-base); + U32 const hashLog = cParams->hashLog; + U32 const minMatch = (mls==3) ? 3 : 4; + U32* const hashTable = ms->hashTable; + size_t const h = ZSTD_hashPtr(ip, hashLog, mls); + U32 matchIndex = hashTable[h]; + U32* const bt = ms->chainTable; + U32 const btLog = cParams->chainLog - 1; + U32 const btMask= (1U << btLog) - 1; + size_t commonLengthSmaller=0, commonLengthLarger=0; + const BYTE* const dictBase = ms->window.dictBase; + U32 const dictLimit = ms->window.dictLimit; + const BYTE* const dictEnd = dictBase + dictLimit; + const BYTE* const prefixStart = base + dictLimit; + U32 const btLow = (btMask >= curr) ? 0 : curr - btMask; + U32 const windowLow = ZSTD_getLowestMatchIndex(ms, curr, cParams->windowLog); + U32 const matchLow = windowLow ? windowLow : 1; + U32* smallerPtr = bt + 2*(curr&btMask); + U32* largerPtr = bt + 2*(curr&btMask) + 1; + U32 matchEndIdx = curr+8+1; /* farthest referenced position of any match => detects repetitive patterns */ + U32 dummy32; /* to be nullified at the end */ + U32 mnum = 0; + U32 nbCompares = 1U << cParams->searchLog; + + const ZSTD_matchState_t* dms = dictMode == ZSTD_dictMatchState ? ms->dictMatchState : NULL; + const ZSTD_compressionParameters* const dmsCParams = + dictMode == ZSTD_dictMatchState ? &dms->cParams : NULL; + const BYTE* const dmsBase = dictMode == ZSTD_dictMatchState ? dms->window.base : NULL; + const BYTE* const dmsEnd = dictMode == ZSTD_dictMatchState ? dms->window.nextSrc : NULL; + U32 const dmsHighLimit = dictMode == ZSTD_dictMatchState ? (U32)(dmsEnd - dmsBase) : 0; + U32 const dmsLowLimit = dictMode == ZSTD_dictMatchState ? dms->window.lowLimit : 0; + U32 const dmsIndexDelta = dictMode == ZSTD_dictMatchState ? windowLow - dmsHighLimit : 0; + U32 const dmsHashLog = dictMode == ZSTD_dictMatchState ? dmsCParams->hashLog : hashLog; + U32 const dmsBtLog = dictMode == ZSTD_dictMatchState ? dmsCParams->chainLog - 1 : btLog; + U32 const dmsBtMask = dictMode == ZSTD_dictMatchState ? (1U << dmsBtLog) - 1 : 0; + U32 const dmsBtLow = dictMode == ZSTD_dictMatchState && dmsBtMask < dmsHighLimit - dmsLowLimit ? dmsHighLimit - dmsBtMask : dmsLowLimit; + + size_t bestLength = lengthToBeat-1; + DEBUGLOG(8, "ZSTD_insertBtAndGetAllMatches: current=%u", curr); + + /* check repCode */ + assert(ll0 <= 1); /* necessarily 1 or 0 */ + { U32 const lastR = ZSTD_REP_NUM + ll0; + U32 repCode; + for (repCode = ll0; repCode < lastR; repCode++) { + U32 const repOffset = (repCode==ZSTD_REP_NUM) ? (rep[0] - 1) : rep[repCode]; + U32 const repIndex = curr - repOffset; + U32 repLen = 0; + assert(curr >= dictLimit); + if (repOffset-1 /* intentional overflow, discards 0 and -1 */ < curr-dictLimit) { /* equivalent to `curr > repIndex >= dictLimit` */ + /* We must validate the repcode offset because when we're using a dictionary the + * valid offset range shrinks when the dictionary goes out of bounds. + */ + if ((repIndex >= windowLow) & (ZSTD_readMINMATCH(ip, minMatch) == ZSTD_readMINMATCH(ip - repOffset, minMatch))) { + repLen = (U32)ZSTD_count(ip+minMatch, ip+minMatch-repOffset, iLimit) + minMatch; + } + } else { /* repIndex < dictLimit || repIndex >= curr */ + const BYTE* const repMatch = dictMode == ZSTD_dictMatchState ? + dmsBase + repIndex - dmsIndexDelta : + dictBase + repIndex; + assert(curr >= windowLow); + if ( dictMode == ZSTD_extDict + && ( ((repOffset-1) /*intentional overflow*/ < curr - windowLow) /* equivalent to `curr > repIndex >= windowLow` */ + & (((U32)((dictLimit-1) - repIndex) >= 3) ) /* intentional overflow : do not test positions overlapping 2 memory segments */) + && (ZSTD_readMINMATCH(ip, minMatch) == ZSTD_readMINMATCH(repMatch, minMatch)) ) { + repLen = (U32)ZSTD_count_2segments(ip+minMatch, repMatch+minMatch, iLimit, dictEnd, prefixStart) + minMatch; + } + if (dictMode == ZSTD_dictMatchState + && ( ((repOffset-1) /*intentional overflow*/ < curr - (dmsLowLimit + dmsIndexDelta)) /* equivalent to `curr > repIndex >= dmsLowLimit` */ + & ((U32)((dictLimit-1) - repIndex) >= 3) ) /* intentional overflow : do not test positions overlapping 2 memory segments */ + && (ZSTD_readMINMATCH(ip, minMatch) == ZSTD_readMINMATCH(repMatch, minMatch)) ) { + repLen = (U32)ZSTD_count_2segments(ip+minMatch, repMatch+minMatch, iLimit, dmsEnd, prefixStart) + minMatch; + } } + /* save longer solution */ + if (repLen > bestLength) { + DEBUGLOG(8, "found repCode %u (ll0:%u, offset:%u) of length %u", + repCode, ll0, repOffset, repLen); + bestLength = repLen; + matches[mnum].off = REPCODE_TO_OFFBASE(repCode - ll0 + 1); /* expect value between 1 and 3 */ + matches[mnum].len = (U32)repLen; + mnum++; + if ( (repLen > sufficient_len) + | (ip+repLen == iLimit) ) { /* best possible */ + return mnum; + } } } } + + /* HC3 match finder */ + if ((mls == 3) /*static*/ && (bestLength < mls)) { + U32 const matchIndex3 = ZSTD_insertAndFindFirstIndexHash3(ms, nextToUpdate3, ip); + if ((matchIndex3 >= matchLow) + & (curr - matchIndex3 < (1<<18)) /*heuristic : longer distance likely too expensive*/ ) { + size_t mlen; + if ((dictMode == ZSTD_noDict) /*static*/ || (dictMode == ZSTD_dictMatchState) /*static*/ || (matchIndex3 >= dictLimit)) { + const BYTE* const match = base + matchIndex3; + mlen = ZSTD_count(ip, match, iLimit); + } else { + const BYTE* const match = dictBase + matchIndex3; + mlen = ZSTD_count_2segments(ip, match, iLimit, dictEnd, prefixStart); + } + + /* save best solution */ + if (mlen >= mls /* == 3 > bestLength */) { + DEBUGLOG(8, "found small match with hlog3, of length %u", + (U32)mlen); + bestLength = mlen; + assert(curr > matchIndex3); + assert(mnum==0); /* no prior solution */ + matches[0].off = OFFSET_TO_OFFBASE(curr - matchIndex3); + matches[0].len = (U32)mlen; + mnum = 1; + if ( (mlen > sufficient_len) | + (ip+mlen == iLimit) ) { /* best possible length */ + ms->nextToUpdate = curr+1; /* skip insertion */ + return 1; + } } } + /* no dictMatchState lookup: dicts don't have a populated HC3 table */ + } /* if (mls == 3) */ + + hashTable[h] = curr; /* Update Hash Table */ + + for (; nbCompares && (matchIndex >= matchLow); --nbCompares) { + U32* const nextPtr = bt + 2*(matchIndex & btMask); + const BYTE* match; + size_t matchLength = MIN(commonLengthSmaller, commonLengthLarger); /* guaranteed minimum nb of common bytes */ + assert(curr > matchIndex); + + if ((dictMode == ZSTD_noDict) || (dictMode == ZSTD_dictMatchState) || (matchIndex+matchLength >= dictLimit)) { + assert(matchIndex+matchLength >= dictLimit); /* ensure the condition is correct when !extDict */ + match = base + matchIndex; + if (matchIndex >= dictLimit) assert(memcmp(match, ip, matchLength) == 0); /* ensure early section of match is equal as expected */ + matchLength += ZSTD_count(ip+matchLength, match+matchLength, iLimit); + } else { + match = dictBase + matchIndex; + assert(memcmp(match, ip, matchLength) == 0); /* ensure early section of match is equal as expected */ + matchLength += ZSTD_count_2segments(ip+matchLength, match+matchLength, iLimit, dictEnd, prefixStart); + if (matchIndex+matchLength >= dictLimit) + match = base + matchIndex; /* prepare for match[matchLength] read */ + } + + if (matchLength > bestLength) { + DEBUGLOG(8, "found match of length %u at distance %u (offBase=%u)", + (U32)matchLength, curr - matchIndex, OFFSET_TO_OFFBASE(curr - matchIndex)); + assert(matchEndIdx > matchIndex); + if (matchLength > matchEndIdx - matchIndex) + matchEndIdx = matchIndex + (U32)matchLength; + bestLength = matchLength; + matches[mnum].off = OFFSET_TO_OFFBASE(curr - matchIndex); + matches[mnum].len = (U32)matchLength; + mnum++; + if ( (matchLength > ZSTD_OPT_NUM) + | (ip+matchLength == iLimit) /* equal : no way to know if inf or sup */) { + if (dictMode == ZSTD_dictMatchState) nbCompares = 0; /* break should also skip searching dms */ + break; /* drop, to preserve bt consistency (miss a little bit of compression) */ + } } + + if (match[matchLength] < ip[matchLength]) { + /* match smaller than current */ + *smallerPtr = matchIndex; /* update smaller idx */ + commonLengthSmaller = matchLength; /* all smaller will now have at least this guaranteed common length */ + if (matchIndex <= btLow) { smallerPtr=&dummy32; break; } /* beyond tree size, stop the search */ + smallerPtr = nextPtr+1; /* new candidate => larger than match, which was smaller than current */ + matchIndex = nextPtr[1]; /* new matchIndex, larger than previous, closer to current */ + } else { + *largerPtr = matchIndex; + commonLengthLarger = matchLength; + if (matchIndex <= btLow) { largerPtr=&dummy32; break; } /* beyond tree size, stop the search */ + largerPtr = nextPtr; + matchIndex = nextPtr[0]; + } } + + *smallerPtr = *largerPtr = 0; + + assert(nbCompares <= (1U << ZSTD_SEARCHLOG_MAX)); /* Check we haven't underflowed. */ + if (dictMode == ZSTD_dictMatchState && nbCompares) { + size_t const dmsH = ZSTD_hashPtr(ip, dmsHashLog, mls); + U32 dictMatchIndex = dms->hashTable[dmsH]; + const U32* const dmsBt = dms->chainTable; + commonLengthSmaller = commonLengthLarger = 0; + for (; nbCompares && (dictMatchIndex > dmsLowLimit); --nbCompares) { + const U32* const nextPtr = dmsBt + 2*(dictMatchIndex & dmsBtMask); + size_t matchLength = MIN(commonLengthSmaller, commonLengthLarger); /* guaranteed minimum nb of common bytes */ + const BYTE* match = dmsBase + dictMatchIndex; + matchLength += ZSTD_count_2segments(ip+matchLength, match+matchLength, iLimit, dmsEnd, prefixStart); + if (dictMatchIndex+matchLength >= dmsHighLimit) + match = base + dictMatchIndex + dmsIndexDelta; /* to prepare for next usage of match[matchLength] */ + + if (matchLength > bestLength) { + matchIndex = dictMatchIndex + dmsIndexDelta; + DEBUGLOG(8, "found dms match of length %u at distance %u (offBase=%u)", + (U32)matchLength, curr - matchIndex, OFFSET_TO_OFFBASE(curr - matchIndex)); + if (matchLength > matchEndIdx - matchIndex) + matchEndIdx = matchIndex + (U32)matchLength; + bestLength = matchLength; + matches[mnum].off = OFFSET_TO_OFFBASE(curr - matchIndex); + matches[mnum].len = (U32)matchLength; + mnum++; + if ( (matchLength > ZSTD_OPT_NUM) + | (ip+matchLength == iLimit) /* equal : no way to know if inf or sup */) { + break; /* drop, to guarantee consistency (miss a little bit of compression) */ + } } + + if (dictMatchIndex <= dmsBtLow) { break; } /* beyond tree size, stop the search */ + if (match[matchLength] < ip[matchLength]) { + commonLengthSmaller = matchLength; /* all smaller will now have at least this guaranteed common length */ + dictMatchIndex = nextPtr[1]; /* new matchIndex larger than previous (closer to current) */ + } else { + /* match is larger than current */ + commonLengthLarger = matchLength; + dictMatchIndex = nextPtr[0]; + } } } /* if (dictMode == ZSTD_dictMatchState) */ + + assert(matchEndIdx > curr+8); + ms->nextToUpdate = matchEndIdx - 8; /* skip repetitive patterns */ + return mnum; +} + +typedef U32 (*ZSTD_getAllMatchesFn)( + ZSTD_match_t*, + ZSTD_matchState_t*, + U32*, + const BYTE*, + const BYTE*, + const U32 rep[ZSTD_REP_NUM], + U32 const ll0, + U32 const lengthToBeat); + +FORCE_INLINE_TEMPLATE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +U32 ZSTD_btGetAllMatches_internal( + ZSTD_match_t* matches, + ZSTD_matchState_t* ms, + U32* nextToUpdate3, + const BYTE* ip, + const BYTE* const iHighLimit, + const U32 rep[ZSTD_REP_NUM], + U32 const ll0, + U32 const lengthToBeat, + const ZSTD_dictMode_e dictMode, + const U32 mls) +{ + assert(BOUNDED(3, ms->cParams.minMatch, 6) == mls); + DEBUGLOG(8, "ZSTD_BtGetAllMatches(dictMode=%d, mls=%u)", (int)dictMode, mls); + if (ip < ms->window.base + ms->nextToUpdate) + return 0; /* skipped area */ + ZSTD_updateTree_internal(ms, ip, iHighLimit, mls, dictMode); + return ZSTD_insertBtAndGetAllMatches(matches, ms, nextToUpdate3, ip, iHighLimit, dictMode, rep, ll0, lengthToBeat, mls); +} + +#define ZSTD_BT_GET_ALL_MATCHES_FN(dictMode, mls) ZSTD_btGetAllMatches_##dictMode##_##mls + +#define GEN_ZSTD_BT_GET_ALL_MATCHES_(dictMode, mls) \ + static U32 ZSTD_BT_GET_ALL_MATCHES_FN(dictMode, mls)( \ + ZSTD_match_t* matches, \ + ZSTD_matchState_t* ms, \ + U32* nextToUpdate3, \ + const BYTE* ip, \ + const BYTE* const iHighLimit, \ + const U32 rep[ZSTD_REP_NUM], \ + U32 const ll0, \ + U32 const lengthToBeat) \ + { \ + return ZSTD_btGetAllMatches_internal( \ + matches, ms, nextToUpdate3, ip, iHighLimit, \ + rep, ll0, lengthToBeat, ZSTD_##dictMode, mls); \ + } + +#define GEN_ZSTD_BT_GET_ALL_MATCHES(dictMode) \ + GEN_ZSTD_BT_GET_ALL_MATCHES_(dictMode, 3) \ + GEN_ZSTD_BT_GET_ALL_MATCHES_(dictMode, 4) \ + GEN_ZSTD_BT_GET_ALL_MATCHES_(dictMode, 5) \ + GEN_ZSTD_BT_GET_ALL_MATCHES_(dictMode, 6) + +GEN_ZSTD_BT_GET_ALL_MATCHES(noDict) +GEN_ZSTD_BT_GET_ALL_MATCHES(extDict) +GEN_ZSTD_BT_GET_ALL_MATCHES(dictMatchState) + +#define ZSTD_BT_GET_ALL_MATCHES_ARRAY(dictMode) \ + { \ + ZSTD_BT_GET_ALL_MATCHES_FN(dictMode, 3), \ + ZSTD_BT_GET_ALL_MATCHES_FN(dictMode, 4), \ + ZSTD_BT_GET_ALL_MATCHES_FN(dictMode, 5), \ + ZSTD_BT_GET_ALL_MATCHES_FN(dictMode, 6) \ + } + +static ZSTD_getAllMatchesFn +ZSTD_selectBtGetAllMatches(ZSTD_matchState_t const* ms, ZSTD_dictMode_e const dictMode) +{ + ZSTD_getAllMatchesFn const getAllMatchesFns[3][4] = { + ZSTD_BT_GET_ALL_MATCHES_ARRAY(noDict), + ZSTD_BT_GET_ALL_MATCHES_ARRAY(extDict), + ZSTD_BT_GET_ALL_MATCHES_ARRAY(dictMatchState) + }; + U32 const mls = BOUNDED(3, ms->cParams.minMatch, 6); + assert((U32)dictMode < 3); + assert(mls - 3 < 4); + return getAllMatchesFns[(int)dictMode][mls - 3]; +} + +/************************* +* LDM helper functions * +*************************/ + +/* Struct containing info needed to make decision about ldm inclusion */ +typedef struct { + rawSeqStore_t seqStore; /* External match candidates store for this block */ + U32 startPosInBlock; /* Start position of the current match candidate */ + U32 endPosInBlock; /* End position of the current match candidate */ + U32 offset; /* Offset of the match candidate */ +} ZSTD_optLdm_t; + +/* ZSTD_optLdm_skipRawSeqStoreBytes(): + * Moves forward in @rawSeqStore by @nbBytes, + * which will update the fields 'pos' and 'posInSequence'. + */ +static void ZSTD_optLdm_skipRawSeqStoreBytes(rawSeqStore_t* rawSeqStore, size_t nbBytes) +{ + U32 currPos = (U32)(rawSeqStore->posInSequence + nbBytes); + while (currPos && rawSeqStore->pos < rawSeqStore->size) { + rawSeq currSeq = rawSeqStore->seq[rawSeqStore->pos]; + if (currPos >= currSeq.litLength + currSeq.matchLength) { + currPos -= currSeq.litLength + currSeq.matchLength; + rawSeqStore->pos++; + } else { + rawSeqStore->posInSequence = currPos; + break; + } + } + if (currPos == 0 || rawSeqStore->pos == rawSeqStore->size) { + rawSeqStore->posInSequence = 0; + } +} + +/* ZSTD_opt_getNextMatchAndUpdateSeqStore(): + * Calculates the beginning and end of the next match in the current block. + * Updates 'pos' and 'posInSequence' of the ldmSeqStore. + */ +static void +ZSTD_opt_getNextMatchAndUpdateSeqStore(ZSTD_optLdm_t* optLdm, U32 currPosInBlock, + U32 blockBytesRemaining) +{ + rawSeq currSeq; + U32 currBlockEndPos; + U32 literalsBytesRemaining; + U32 matchBytesRemaining; + + /* Setting match end position to MAX to ensure we never use an LDM during this block */ + if (optLdm->seqStore.size == 0 || optLdm->seqStore.pos >= optLdm->seqStore.size) { + optLdm->startPosInBlock = UINT_MAX; + optLdm->endPosInBlock = UINT_MAX; + return; + } + /* Calculate appropriate bytes left in matchLength and litLength + * after adjusting based on ldmSeqStore->posInSequence */ + currSeq = optLdm->seqStore.seq[optLdm->seqStore.pos]; + assert(optLdm->seqStore.posInSequence <= currSeq.litLength + currSeq.matchLength); + currBlockEndPos = currPosInBlock + blockBytesRemaining; + literalsBytesRemaining = (optLdm->seqStore.posInSequence < currSeq.litLength) ? + currSeq.litLength - (U32)optLdm->seqStore.posInSequence : + 0; + matchBytesRemaining = (literalsBytesRemaining == 0) ? + currSeq.matchLength - ((U32)optLdm->seqStore.posInSequence - currSeq.litLength) : + currSeq.matchLength; + + /* If there are more literal bytes than bytes remaining in block, no ldm is possible */ + if (literalsBytesRemaining >= blockBytesRemaining) { + optLdm->startPosInBlock = UINT_MAX; + optLdm->endPosInBlock = UINT_MAX; + ZSTD_optLdm_skipRawSeqStoreBytes(&optLdm->seqStore, blockBytesRemaining); + return; + } + + /* Matches may be < MINMATCH by this process. In that case, we will reject them + when we are deciding whether or not to add the ldm */ + optLdm->startPosInBlock = currPosInBlock + literalsBytesRemaining; + optLdm->endPosInBlock = optLdm->startPosInBlock + matchBytesRemaining; + optLdm->offset = currSeq.offset; + + if (optLdm->endPosInBlock > currBlockEndPos) { + /* Match ends after the block ends, we can't use the whole match */ + optLdm->endPosInBlock = currBlockEndPos; + ZSTD_optLdm_skipRawSeqStoreBytes(&optLdm->seqStore, currBlockEndPos - currPosInBlock); + } else { + /* Consume nb of bytes equal to size of sequence left */ + ZSTD_optLdm_skipRawSeqStoreBytes(&optLdm->seqStore, literalsBytesRemaining + matchBytesRemaining); + } +} + +/* ZSTD_optLdm_maybeAddMatch(): + * Adds a match if it's long enough, + * based on it's 'matchStartPosInBlock' and 'matchEndPosInBlock', + * into 'matches'. Maintains the correct ordering of 'matches'. + */ +static void ZSTD_optLdm_maybeAddMatch(ZSTD_match_t* matches, U32* nbMatches, + const ZSTD_optLdm_t* optLdm, U32 currPosInBlock) +{ + U32 const posDiff = currPosInBlock - optLdm->startPosInBlock; + /* Note: ZSTD_match_t actually contains offBase and matchLength (before subtracting MINMATCH) */ + U32 const candidateMatchLength = optLdm->endPosInBlock - optLdm->startPosInBlock - posDiff; + + /* Ensure that current block position is not outside of the match */ + if (currPosInBlock < optLdm->startPosInBlock + || currPosInBlock >= optLdm->endPosInBlock + || candidateMatchLength < MINMATCH) { + return; + } + + if (*nbMatches == 0 || ((candidateMatchLength > matches[*nbMatches-1].len) && *nbMatches < ZSTD_OPT_NUM)) { + U32 const candidateOffBase = OFFSET_TO_OFFBASE(optLdm->offset); + DEBUGLOG(6, "ZSTD_optLdm_maybeAddMatch(): Adding ldm candidate match (offBase: %u matchLength %u) at block position=%u", + candidateOffBase, candidateMatchLength, currPosInBlock); + matches[*nbMatches].len = candidateMatchLength; + matches[*nbMatches].off = candidateOffBase; + (*nbMatches)++; + } +} + +/* ZSTD_optLdm_processMatchCandidate(): + * Wrapper function to update ldm seq store and call ldm functions as necessary. + */ +static void +ZSTD_optLdm_processMatchCandidate(ZSTD_optLdm_t* optLdm, + ZSTD_match_t* matches, U32* nbMatches, + U32 currPosInBlock, U32 remainingBytes) +{ + if (optLdm->seqStore.size == 0 || optLdm->seqStore.pos >= optLdm->seqStore.size) { + return; + } + + if (currPosInBlock >= optLdm->endPosInBlock) { + if (currPosInBlock > optLdm->endPosInBlock) { + /* The position at which ZSTD_optLdm_processMatchCandidate() is called is not necessarily + * at the end of a match from the ldm seq store, and will often be some bytes + * over beyond matchEndPosInBlock. As such, we need to correct for these "overshoots" + */ + U32 const posOvershoot = currPosInBlock - optLdm->endPosInBlock; + ZSTD_optLdm_skipRawSeqStoreBytes(&optLdm->seqStore, posOvershoot); + } + ZSTD_opt_getNextMatchAndUpdateSeqStore(optLdm, currPosInBlock, remainingBytes); + } + ZSTD_optLdm_maybeAddMatch(matches, nbMatches, optLdm, currPosInBlock); +} + + +/*-******************************* +* Optimal parser +*********************************/ + +#if 0 /* debug */ + +static void +listStats(const U32* table, int lastEltID) +{ + int const nbElts = lastEltID + 1; + int enb; + for (enb=0; enb < nbElts; enb++) { + (void)table; + /* RAWLOG(2, "%3i:%3i, ", enb, table[enb]); */ + RAWLOG(2, "%4i,", table[enb]); + } + RAWLOG(2, " \n"); +} + +#endif + +#define LIT_PRICE(_p) (int)ZSTD_rawLiteralsCost(_p, 1, optStatePtr, optLevel) +#define LL_PRICE(_l) (int)ZSTD_litLengthPrice(_l, optStatePtr, optLevel) +#define LL_INCPRICE(_l) (LL_PRICE(_l) - LL_PRICE(_l-1)) + +FORCE_INLINE_TEMPLATE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t +ZSTD_compressBlock_opt_generic(ZSTD_matchState_t* ms, + seqStore_t* seqStore, + U32 rep[ZSTD_REP_NUM], + const void* src, size_t srcSize, + const int optLevel, + const ZSTD_dictMode_e dictMode) +{ + optState_t* const optStatePtr = &ms->opt; + const BYTE* const istart = (const BYTE*)src; + const BYTE* ip = istart; + const BYTE* anchor = istart; + const BYTE* const iend = istart + srcSize; + const BYTE* const ilimit = iend - 8; + const BYTE* const base = ms->window.base; + const BYTE* const prefixStart = base + ms->window.dictLimit; + const ZSTD_compressionParameters* const cParams = &ms->cParams; + + ZSTD_getAllMatchesFn getAllMatches = ZSTD_selectBtGetAllMatches(ms, dictMode); + + U32 const sufficient_len = MIN(cParams->targetLength, ZSTD_OPT_NUM -1); + U32 const minMatch = (cParams->minMatch == 3) ? 3 : 4; + U32 nextToUpdate3 = ms->nextToUpdate; + + ZSTD_optimal_t* const opt = optStatePtr->priceTable; + ZSTD_match_t* const matches = optStatePtr->matchTable; + ZSTD_optimal_t lastStretch; + ZSTD_optLdm_t optLdm; + + ZSTD_memset(&lastStretch, 0, sizeof(ZSTD_optimal_t)); + + optLdm.seqStore = ms->ldmSeqStore ? *ms->ldmSeqStore : kNullRawSeqStore; + optLdm.endPosInBlock = optLdm.startPosInBlock = optLdm.offset = 0; + ZSTD_opt_getNextMatchAndUpdateSeqStore(&optLdm, (U32)(ip-istart), (U32)(iend-ip)); + + /* init */ + DEBUGLOG(5, "ZSTD_compressBlock_opt_generic: current=%u, prefix=%u, nextToUpdate=%u", + (U32)(ip - base), ms->window.dictLimit, ms->nextToUpdate); + assert(optLevel <= 2); + ZSTD_rescaleFreqs(optStatePtr, (const BYTE*)src, srcSize, optLevel); + ip += (ip==prefixStart); + + /* Match Loop */ + while (ip < ilimit) { + U32 cur, last_pos = 0; + + /* find first match */ + { U32 const litlen = (U32)(ip - anchor); + U32 const ll0 = !litlen; + U32 nbMatches = getAllMatches(matches, ms, &nextToUpdate3, ip, iend, rep, ll0, minMatch); + ZSTD_optLdm_processMatchCandidate(&optLdm, matches, &nbMatches, + (U32)(ip-istart), (U32)(iend-ip)); + if (!nbMatches) { + DEBUGLOG(8, "no match found at cPos %u", (unsigned)(ip-istart)); + ip++; + continue; + } + + /* Match found: let's store this solution, and eventually find more candidates. + * During this forward pass, @opt is used to store stretches, + * defined as "a match followed by N literals". + * Note how this is different from a Sequence, which is "N literals followed by a match". + * Storing stretches allows us to store different match predecessors + * for each literal position part of a literals run. */ + + /* initialize opt[0] */ + opt[0].mlen = 0; /* there are only literals so far */ + opt[0].litlen = litlen; + /* No need to include the actual price of the literals before the first match + * because it is static for the duration of the forward pass, and is included + * in every subsequent price. But, we include the literal length because + * the cost variation of litlen depends on the value of litlen. + */ + opt[0].price = LL_PRICE(litlen); + ZSTD_STATIC_ASSERT(sizeof(opt[0].rep[0]) == sizeof(rep[0])); + ZSTD_memcpy(&opt[0].rep, rep, sizeof(opt[0].rep)); + + /* large match -> immediate encoding */ + { U32 const maxML = matches[nbMatches-1].len; + U32 const maxOffBase = matches[nbMatches-1].off; + DEBUGLOG(6, "found %u matches of maxLength=%u and maxOffBase=%u at cPos=%u => start new series", + nbMatches, maxML, maxOffBase, (U32)(ip-prefixStart)); + + if (maxML > sufficient_len) { + lastStretch.litlen = 0; + lastStretch.mlen = maxML; + lastStretch.off = maxOffBase; + DEBUGLOG(6, "large match (%u>%u) => immediate encoding", + maxML, sufficient_len); + cur = 0; + last_pos = maxML; + goto _shortestPath; + } } + + /* set prices for first matches starting position == 0 */ + assert(opt[0].price >= 0); + { U32 pos; + U32 matchNb; + for (pos = 1; pos < minMatch; pos++) { + opt[pos].price = ZSTD_MAX_PRICE; + opt[pos].mlen = 0; + opt[pos].litlen = litlen + pos; + } + for (matchNb = 0; matchNb < nbMatches; matchNb++) { + U32 const offBase = matches[matchNb].off; + U32 const end = matches[matchNb].len; + for ( ; pos <= end ; pos++ ) { + int const matchPrice = (int)ZSTD_getMatchPrice(offBase, pos, optStatePtr, optLevel); + int const sequencePrice = opt[0].price + matchPrice; + DEBUGLOG(7, "rPos:%u => set initial price : %.2f", + pos, ZSTD_fCost(sequencePrice)); + opt[pos].mlen = pos; + opt[pos].off = offBase; + opt[pos].litlen = 0; /* end of match */ + opt[pos].price = sequencePrice + LL_PRICE(0); + } + } + last_pos = pos-1; + opt[pos].price = ZSTD_MAX_PRICE; + } + } + + /* check further positions */ + for (cur = 1; cur <= last_pos; cur++) { + const BYTE* const inr = ip + cur; + assert(cur <= ZSTD_OPT_NUM); + DEBUGLOG(7, "cPos:%zi==rPos:%u", inr-istart, cur); + + /* Fix current position with one literal if cheaper */ + { U32 const litlen = opt[cur-1].litlen + 1; + int const price = opt[cur-1].price + + LIT_PRICE(ip+cur-1) + + LL_INCPRICE(litlen); + assert(price < 1000000000); /* overflow check */ + if (price <= opt[cur].price) { + ZSTD_optimal_t const prevMatch = opt[cur]; + DEBUGLOG(7, "cPos:%zi==rPos:%u : better price (%.2f<=%.2f) using literal (ll==%u) (hist:%u,%u,%u)", + inr-istart, cur, ZSTD_fCost(price), ZSTD_fCost(opt[cur].price), litlen, + opt[cur-1].rep[0], opt[cur-1].rep[1], opt[cur-1].rep[2]); + opt[cur] = opt[cur-1]; + opt[cur].litlen = litlen; + opt[cur].price = price; + if ( (optLevel >= 1) /* additional check only for higher modes */ + && (prevMatch.litlen == 0) /* replace a match */ + && (LL_INCPRICE(1) < 0) /* ll1 is cheaper than ll0 */ + && LIKELY(ip + cur < iend) + ) { + /* check next position, in case it would be cheaper */ + int with1literal = prevMatch.price + LIT_PRICE(ip+cur) + LL_INCPRICE(1); + int withMoreLiterals = price + LIT_PRICE(ip+cur) + LL_INCPRICE(litlen+1); + DEBUGLOG(7, "then at next rPos %u : match+1lit %.2f vs %ulits %.2f", + cur+1, ZSTD_fCost(with1literal), litlen+1, ZSTD_fCost(withMoreLiterals)); + if ( (with1literal < withMoreLiterals) + && (with1literal < opt[cur+1].price) ) { + /* update offset history - before it disappears */ + U32 const prev = cur - prevMatch.mlen; + repcodes_t const newReps = ZSTD_newRep(opt[prev].rep, prevMatch.off, opt[prev].litlen==0); + assert(cur >= prevMatch.mlen); + DEBUGLOG(7, "==> match+1lit is cheaper (%.2f < %.2f) (hist:%u,%u,%u) !", + ZSTD_fCost(with1literal), ZSTD_fCost(withMoreLiterals), + newReps.rep[0], newReps.rep[1], newReps.rep[2] ); + opt[cur+1] = prevMatch; /* mlen & offbase */ + ZSTD_memcpy(opt[cur+1].rep, &newReps, sizeof(repcodes_t)); + opt[cur+1].litlen = 1; + opt[cur+1].price = with1literal; + if (last_pos < cur+1) last_pos = cur+1; + } + } + } else { + DEBUGLOG(7, "cPos:%zi==rPos:%u : literal would cost more (%.2f>%.2f)", + inr-istart, cur, ZSTD_fCost(price), ZSTD_fCost(opt[cur].price)); + } + } + + /* Offset history is not updated during match comparison. + * Do it here, now that the match is selected and confirmed. + */ + ZSTD_STATIC_ASSERT(sizeof(opt[cur].rep) == sizeof(repcodes_t)); + assert(cur >= opt[cur].mlen); + if (opt[cur].litlen == 0) { + /* just finished a match => alter offset history */ + U32 const prev = cur - opt[cur].mlen; + repcodes_t const newReps = ZSTD_newRep(opt[prev].rep, opt[cur].off, opt[prev].litlen==0); + ZSTD_memcpy(opt[cur].rep, &newReps, sizeof(repcodes_t)); + } + + /* last match must start at a minimum distance of 8 from oend */ + if (inr > ilimit) continue; + + if (cur == last_pos) break; + + if ( (optLevel==0) /*static_test*/ + && (opt[cur+1].price <= opt[cur].price + (BITCOST_MULTIPLIER/2)) ) { + DEBUGLOG(7, "skip current position : next rPos(%u) price is cheaper", cur+1); + continue; /* skip unpromising positions; about ~+6% speed, -0.01 ratio */ + } + + assert(opt[cur].price >= 0); + { U32 const ll0 = (opt[cur].litlen == 0); + int const previousPrice = opt[cur].price; + int const basePrice = previousPrice + LL_PRICE(0); + U32 nbMatches = getAllMatches(matches, ms, &nextToUpdate3, inr, iend, opt[cur].rep, ll0, minMatch); + U32 matchNb; + + ZSTD_optLdm_processMatchCandidate(&optLdm, matches, &nbMatches, + (U32)(inr-istart), (U32)(iend-inr)); + + if (!nbMatches) { + DEBUGLOG(7, "rPos:%u : no match found", cur); + continue; + } + + { U32 const longestML = matches[nbMatches-1].len; + DEBUGLOG(7, "cPos:%zi==rPos:%u, found %u matches, of longest ML=%u", + inr-istart, cur, nbMatches, longestML); + + if ( (longestML > sufficient_len) + || (cur + longestML >= ZSTD_OPT_NUM) + || (ip + cur + longestML >= iend) ) { + lastStretch.mlen = longestML; + lastStretch.off = matches[nbMatches-1].off; + lastStretch.litlen = 0; + last_pos = cur + longestML; + goto _shortestPath; + } } + + /* set prices using matches found at position == cur */ + for (matchNb = 0; matchNb < nbMatches; matchNb++) { + U32 const offset = matches[matchNb].off; + U32 const lastML = matches[matchNb].len; + U32 const startML = (matchNb>0) ? matches[matchNb-1].len+1 : minMatch; + U32 mlen; + + DEBUGLOG(7, "testing match %u => offBase=%4u, mlen=%2u, llen=%2u", + matchNb, matches[matchNb].off, lastML, opt[cur].litlen); + + for (mlen = lastML; mlen >= startML; mlen--) { /* scan downward */ + U32 const pos = cur + mlen; + int const price = basePrice + (int)ZSTD_getMatchPrice(offset, mlen, optStatePtr, optLevel); + + if ((pos > last_pos) || (price < opt[pos].price)) { + DEBUGLOG(7, "rPos:%u (ml=%2u) => new better price (%.2f<%.2f)", + pos, mlen, ZSTD_fCost(price), ZSTD_fCost(opt[pos].price)); + while (last_pos < pos) { + /* fill empty positions, for future comparisons */ + last_pos++; + opt[last_pos].price = ZSTD_MAX_PRICE; + opt[last_pos].litlen = !0; /* just needs to be != 0, to mean "not an end of match" */ + } + opt[pos].mlen = mlen; + opt[pos].off = offset; + opt[pos].litlen = 0; + opt[pos].price = price; + } else { + DEBUGLOG(7, "rPos:%u (ml=%2u) => new price is worse (%.2f>=%.2f)", + pos, mlen, ZSTD_fCost(price), ZSTD_fCost(opt[pos].price)); + if (optLevel==0) break; /* early update abort; gets ~+10% speed for about -0.01 ratio loss */ + } + } } } + opt[last_pos+1].price = ZSTD_MAX_PRICE; + } /* for (cur = 1; cur <= last_pos; cur++) */ + + lastStretch = opt[last_pos]; + assert(cur >= lastStretch.mlen); + cur = last_pos - lastStretch.mlen; + +_shortestPath: /* cur, last_pos, best_mlen, best_off have to be set */ + assert(opt[0].mlen == 0); + assert(last_pos >= lastStretch.mlen); + assert(cur == last_pos - lastStretch.mlen); + + if (lastStretch.mlen==0) { + /* no solution : all matches have been converted into literals */ + assert(lastStretch.litlen == (ip - anchor) + last_pos); + ip += last_pos; + continue; + } + assert(lastStretch.off > 0); + + /* Update offset history */ + if (lastStretch.litlen == 0) { + /* finishing on a match : update offset history */ + repcodes_t const reps = ZSTD_newRep(opt[cur].rep, lastStretch.off, opt[cur].litlen==0); + ZSTD_memcpy(rep, &reps, sizeof(repcodes_t)); + } else { + ZSTD_memcpy(rep, lastStretch.rep, sizeof(repcodes_t)); + assert(cur >= lastStretch.litlen); + cur -= lastStretch.litlen; + } + + /* Let's write the shortest path solution. + * It is stored in @opt in reverse order, + * starting from @storeEnd (==cur+2), + * effectively partially @opt overwriting. + * Content is changed too: + * - So far, @opt stored stretches, aka a match followed by literals + * - Now, it will store sequences, aka literals followed by a match + */ + { U32 const storeEnd = cur + 2; + U32 storeStart = storeEnd; + U32 stretchPos = cur; + + DEBUGLOG(6, "start reverse traversal (last_pos:%u, cur:%u)", + last_pos, cur); (void)last_pos; + assert(storeEnd < ZSTD_OPT_SIZE); + DEBUGLOG(6, "last stretch copied into pos=%u (llen=%u,mlen=%u,ofc=%u)", + storeEnd, lastStretch.litlen, lastStretch.mlen, lastStretch.off); + if (lastStretch.litlen > 0) { + /* last "sequence" is unfinished: just a bunch of literals */ + opt[storeEnd].litlen = lastStretch.litlen; + opt[storeEnd].mlen = 0; + storeStart = storeEnd-1; + opt[storeStart] = lastStretch; + } { + opt[storeEnd] = lastStretch; /* note: litlen will be fixed */ + storeStart = storeEnd; + } + while (1) { + ZSTD_optimal_t nextStretch = opt[stretchPos]; + opt[storeStart].litlen = nextStretch.litlen; + DEBUGLOG(6, "selected sequence (llen=%u,mlen=%u,ofc=%u)", + opt[storeStart].litlen, opt[storeStart].mlen, opt[storeStart].off); + if (nextStretch.mlen == 0) { + /* reaching beginning of segment */ + break; + } + storeStart--; + opt[storeStart] = nextStretch; /* note: litlen will be fixed */ + assert(nextStretch.litlen + nextStretch.mlen <= stretchPos); + stretchPos -= nextStretch.litlen + nextStretch.mlen; + } + + /* save sequences */ + DEBUGLOG(6, "sending selected sequences into seqStore"); + { U32 storePos; + for (storePos=storeStart; storePos <= storeEnd; storePos++) { + U32 const llen = opt[storePos].litlen; + U32 const mlen = opt[storePos].mlen; + U32 const offBase = opt[storePos].off; + U32 const advance = llen + mlen; + DEBUGLOG(6, "considering seq starting at %zi, llen=%u, mlen=%u", + anchor - istart, (unsigned)llen, (unsigned)mlen); + + if (mlen==0) { /* only literals => must be last "sequence", actually starting a new stream of sequences */ + assert(storePos == storeEnd); /* must be last sequence */ + ip = anchor + llen; /* last "sequence" is a bunch of literals => don't progress anchor */ + continue; /* will finish */ + } + + assert(anchor + llen <= iend); + ZSTD_updateStats(optStatePtr, llen, anchor, offBase, mlen); + ZSTD_storeSeq(seqStore, llen, anchor, iend, offBase, mlen); + anchor += advance; + ip = anchor; + } } + DEBUGLOG(7, "new offset history : %u, %u, %u", rep[0], rep[1], rep[2]); + + /* update all costs */ + ZSTD_setBasePrices(optStatePtr, optLevel); + } + } /* while (ip < ilimit) */ + + /* Return the last literals size */ + return (size_t)(iend - anchor); +} +#endif /* build exclusions */ + +#ifndef ZSTD_EXCLUDE_BTOPT_BLOCK_COMPRESSOR +static size_t ZSTD_compressBlock_opt0( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + const void* src, size_t srcSize, const ZSTD_dictMode_e dictMode) +{ + return ZSTD_compressBlock_opt_generic(ms, seqStore, rep, src, srcSize, 0 /* optLevel */, dictMode); +} +#endif + +#ifndef ZSTD_EXCLUDE_BTULTRA_BLOCK_COMPRESSOR +static size_t ZSTD_compressBlock_opt2( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + const void* src, size_t srcSize, const ZSTD_dictMode_e dictMode) +{ + return ZSTD_compressBlock_opt_generic(ms, seqStore, rep, src, srcSize, 2 /* optLevel */, dictMode); +} +#endif + +#ifndef ZSTD_EXCLUDE_BTOPT_BLOCK_COMPRESSOR +size_t ZSTD_compressBlock_btopt( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + const void* src, size_t srcSize) +{ + DEBUGLOG(5, "ZSTD_compressBlock_btopt"); + return ZSTD_compressBlock_opt0(ms, seqStore, rep, src, srcSize, ZSTD_noDict); +} +#endif + + + + +#ifndef ZSTD_EXCLUDE_BTULTRA_BLOCK_COMPRESSOR +/* ZSTD_initStats_ultra(): + * make a first compression pass, just to seed stats with more accurate starting values. + * only works on first block, with no dictionary and no ldm. + * this function cannot error out, its narrow contract must be respected. + */ +static +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +void ZSTD_initStats_ultra(ZSTD_matchState_t* ms, + seqStore_t* seqStore, + U32 rep[ZSTD_REP_NUM], + const void* src, size_t srcSize) +{ + U32 tmpRep[ZSTD_REP_NUM]; /* updated rep codes will sink here */ + ZSTD_memcpy(tmpRep, rep, sizeof(tmpRep)); + + DEBUGLOG(4, "ZSTD_initStats_ultra (srcSize=%zu)", srcSize); + assert(ms->opt.litLengthSum == 0); /* first block */ + assert(seqStore->sequences == seqStore->sequencesStart); /* no ldm */ + assert(ms->window.dictLimit == ms->window.lowLimit); /* no dictionary */ + assert(ms->window.dictLimit - ms->nextToUpdate <= 1); /* no prefix (note: intentional overflow, defined as 2-complement) */ + + ZSTD_compressBlock_opt2(ms, seqStore, tmpRep, src, srcSize, ZSTD_noDict); /* generate stats into ms->opt*/ + + /* invalidate first scan from history, only keep entropy stats */ + ZSTD_resetSeqStore(seqStore); + ms->window.base -= srcSize; + ms->window.dictLimit += (U32)srcSize; + ms->window.lowLimit = ms->window.dictLimit; + ms->nextToUpdate = ms->window.dictLimit; + +} + +size_t ZSTD_compressBlock_btultra( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + const void* src, size_t srcSize) +{ + DEBUGLOG(5, "ZSTD_compressBlock_btultra (srcSize=%zu)", srcSize); + return ZSTD_compressBlock_opt2(ms, seqStore, rep, src, srcSize, ZSTD_noDict); +} + +size_t ZSTD_compressBlock_btultra2( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + const void* src, size_t srcSize) +{ + U32 const curr = (U32)((const BYTE*)src - ms->window.base); + DEBUGLOG(5, "ZSTD_compressBlock_btultra2 (srcSize=%zu)", srcSize); + + /* 2-passes strategy: + * this strategy makes a first pass over first block to collect statistics + * in order to seed next round's statistics with it. + * After 1st pass, function forgets history, and starts a new block. + * Consequently, this can only work if no data has been previously loaded in tables, + * aka, no dictionary, no prefix, no ldm preprocessing. + * The compression ratio gain is generally small (~0.5% on first block), + * the cost is 2x cpu time on first block. */ + assert(srcSize <= ZSTD_BLOCKSIZE_MAX); + if ( (ms->opt.litLengthSum==0) /* first block */ + && (seqStore->sequences == seqStore->sequencesStart) /* no ldm */ + && (ms->window.dictLimit == ms->window.lowLimit) /* no dictionary */ + && (curr == ms->window.dictLimit) /* start of frame, nothing already loaded nor skipped */ + && (srcSize > ZSTD_PREDEF_THRESHOLD) /* input large enough to not employ default stats */ + ) { + ZSTD_initStats_ultra(ms, seqStore, rep, src, srcSize); + } + + return ZSTD_compressBlock_opt2(ms, seqStore, rep, src, srcSize, ZSTD_noDict); +} +#endif + +#ifndef ZSTD_EXCLUDE_BTOPT_BLOCK_COMPRESSOR +size_t ZSTD_compressBlock_btopt_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + const void* src, size_t srcSize) +{ + return ZSTD_compressBlock_opt0(ms, seqStore, rep, src, srcSize, ZSTD_dictMatchState); +} + +size_t ZSTD_compressBlock_btopt_extDict( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + const void* src, size_t srcSize) +{ + return ZSTD_compressBlock_opt0(ms, seqStore, rep, src, srcSize, ZSTD_extDict); +} +#endif + +#ifndef ZSTD_EXCLUDE_BTULTRA_BLOCK_COMPRESSOR +size_t ZSTD_compressBlock_btultra_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + const void* src, size_t srcSize) +{ + return ZSTD_compressBlock_opt2(ms, seqStore, rep, src, srcSize, ZSTD_dictMatchState); +} + +size_t ZSTD_compressBlock_btultra_extDict( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + const void* src, size_t srcSize) +{ + return ZSTD_compressBlock_opt2(ms, seqStore, rep, src, srcSize, ZSTD_extDict); +} +#endif + +/* note : no btultra2 variant for extDict nor dictMatchState, + * because btultra2 is not meant to work with dictionaries + * and is only specific for the first block (no prefix) */ diff --git a/deps/zstd/lib/compress/zstd_opt.h b/deps/zstd/lib/compress/zstd_opt.h new file mode 100644 index 00000000000000..d4e7113157256b --- /dev/null +++ b/deps/zstd/lib/compress/zstd_opt.h @@ -0,0 +1,80 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_OPT_H +#define ZSTD_OPT_H + +#if defined (__cplusplus) +extern "C" { +#endif + +#include "zstd_compress_internal.h" + +#if !defined(ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_BTOPT_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_BTULTRA_BLOCK_COMPRESSOR) +/* used in ZSTD_loadDictionaryContent() */ +void ZSTD_updateTree(ZSTD_matchState_t* ms, const BYTE* ip, const BYTE* iend); +#endif + +#ifndef ZSTD_EXCLUDE_BTOPT_BLOCK_COMPRESSOR +size_t ZSTD_compressBlock_btopt( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_btopt_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_btopt_extDict( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); + +#define ZSTD_COMPRESSBLOCK_BTOPT ZSTD_compressBlock_btopt +#define ZSTD_COMPRESSBLOCK_BTOPT_DICTMATCHSTATE ZSTD_compressBlock_btopt_dictMatchState +#define ZSTD_COMPRESSBLOCK_BTOPT_EXTDICT ZSTD_compressBlock_btopt_extDict +#else +#define ZSTD_COMPRESSBLOCK_BTOPT NULL +#define ZSTD_COMPRESSBLOCK_BTOPT_DICTMATCHSTATE NULL +#define ZSTD_COMPRESSBLOCK_BTOPT_EXTDICT NULL +#endif + +#ifndef ZSTD_EXCLUDE_BTULTRA_BLOCK_COMPRESSOR +size_t ZSTD_compressBlock_btultra( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_btultra_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_btultra_extDict( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); + + /* note : no btultra2 variant for extDict nor dictMatchState, + * because btultra2 is not meant to work with dictionaries + * and is only specific for the first block (no prefix) */ +size_t ZSTD_compressBlock_btultra2( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); + +#define ZSTD_COMPRESSBLOCK_BTULTRA ZSTD_compressBlock_btultra +#define ZSTD_COMPRESSBLOCK_BTULTRA_DICTMATCHSTATE ZSTD_compressBlock_btultra_dictMatchState +#define ZSTD_COMPRESSBLOCK_BTULTRA_EXTDICT ZSTD_compressBlock_btultra_extDict +#define ZSTD_COMPRESSBLOCK_BTULTRA2 ZSTD_compressBlock_btultra2 +#else +#define ZSTD_COMPRESSBLOCK_BTULTRA NULL +#define ZSTD_COMPRESSBLOCK_BTULTRA_DICTMATCHSTATE NULL +#define ZSTD_COMPRESSBLOCK_BTULTRA_EXTDICT NULL +#define ZSTD_COMPRESSBLOCK_BTULTRA2 NULL +#endif + +#if defined (__cplusplus) +} +#endif + +#endif /* ZSTD_OPT_H */ diff --git a/deps/zstd/lib/compress/zstdmt_compress.c b/deps/zstd/lib/compress/zstdmt_compress.c new file mode 100644 index 00000000000000..86ccce31849699 --- /dev/null +++ b/deps/zstd/lib/compress/zstdmt_compress.c @@ -0,0 +1,1882 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + +/* ====== Compiler specifics ====== */ +#if defined(_MSC_VER) +# pragma warning(disable : 4204) /* disable: C4204: non-constant aggregate initializer */ +#endif + + +/* ====== Dependencies ====== */ +#include "../common/allocations.h" /* ZSTD_customMalloc, ZSTD_customCalloc, ZSTD_customFree */ +#include "../common/zstd_deps.h" /* ZSTD_memcpy, ZSTD_memset, INT_MAX, UINT_MAX */ +#include "../common/mem.h" /* MEM_STATIC */ +#include "../common/pool.h" /* threadpool */ +#include "../common/threading.h" /* mutex */ +#include "zstd_compress_internal.h" /* MIN, ERROR, ZSTD_*, ZSTD_highbit32 */ +#include "zstd_ldm.h" +#include "zstdmt_compress.h" + +/* Guards code to support resizing the SeqPool. + * We will want to resize the SeqPool to save memory in the future. + * Until then, comment the code out since it is unused. + */ +#define ZSTD_RESIZE_SEQPOOL 0 + +/* ====== Debug ====== */ +#if defined(DEBUGLEVEL) && (DEBUGLEVEL>=2) \ + && !defined(_MSC_VER) \ + && !defined(__MINGW32__) + +# include +# include +# include + +# define DEBUG_PRINTHEX(l,p,n) \ + do { \ + unsigned debug_u; \ + for (debug_u=0; debug_u<(n); debug_u++) \ + RAWLOG(l, "%02X ", ((const unsigned char*)(p))[debug_u]); \ + RAWLOG(l, " \n"); \ + } while (0) + +static unsigned long long GetCurrentClockTimeMicroseconds(void) +{ + static clock_t _ticksPerSecond = 0; + if (_ticksPerSecond <= 0) _ticksPerSecond = sysconf(_SC_CLK_TCK); + + { struct tms junk; clock_t newTicks = (clock_t) times(&junk); + return ((((unsigned long long)newTicks)*(1000000))/_ticksPerSecond); +} } + +#define MUTEX_WAIT_TIME_DLEVEL 6 +#define ZSTD_PTHREAD_MUTEX_LOCK(mutex) \ + do { \ + if (DEBUGLEVEL >= MUTEX_WAIT_TIME_DLEVEL) { \ + unsigned long long const beforeTime = GetCurrentClockTimeMicroseconds(); \ + ZSTD_pthread_mutex_lock(mutex); \ + { unsigned long long const afterTime = GetCurrentClockTimeMicroseconds(); \ + unsigned long long const elapsedTime = (afterTime-beforeTime); \ + if (elapsedTime > 1000) { \ + /* or whatever threshold you like; I'm using 1 millisecond here */ \ + DEBUGLOG(MUTEX_WAIT_TIME_DLEVEL, \ + "Thread took %llu microseconds to acquire mutex %s \n", \ + elapsedTime, #mutex); \ + } } \ + } else { \ + ZSTD_pthread_mutex_lock(mutex); \ + } \ + } while (0) + +#else + +# define ZSTD_PTHREAD_MUTEX_LOCK(m) ZSTD_pthread_mutex_lock(m) +# define DEBUG_PRINTHEX(l,p,n) do { } while (0) + +#endif + + +/* ===== Buffer Pool ===== */ +/* a single Buffer Pool can be invoked from multiple threads in parallel */ + +typedef struct buffer_s { + void* start; + size_t capacity; +} buffer_t; + +static const buffer_t g_nullBuffer = { NULL, 0 }; + +typedef struct ZSTDMT_bufferPool_s { + ZSTD_pthread_mutex_t poolMutex; + size_t bufferSize; + unsigned totalBuffers; + unsigned nbBuffers; + ZSTD_customMem cMem; + buffer_t* buffers; +} ZSTDMT_bufferPool; + +static void ZSTDMT_freeBufferPool(ZSTDMT_bufferPool* bufPool) +{ + DEBUGLOG(3, "ZSTDMT_freeBufferPool (address:%08X)", (U32)(size_t)bufPool); + if (!bufPool) return; /* compatibility with free on NULL */ + if (bufPool->buffers) { + unsigned u; + for (u=0; utotalBuffers; u++) { + DEBUGLOG(4, "free buffer %2u (address:%08X)", u, (U32)(size_t)bufPool->buffers[u].start); + ZSTD_customFree(bufPool->buffers[u].start, bufPool->cMem); + } + ZSTD_customFree(bufPool->buffers, bufPool->cMem); + } + ZSTD_pthread_mutex_destroy(&bufPool->poolMutex); + ZSTD_customFree(bufPool, bufPool->cMem); +} + +static ZSTDMT_bufferPool* ZSTDMT_createBufferPool(unsigned maxNbBuffers, ZSTD_customMem cMem) +{ + ZSTDMT_bufferPool* const bufPool = + (ZSTDMT_bufferPool*)ZSTD_customCalloc(sizeof(ZSTDMT_bufferPool), cMem); + if (bufPool==NULL) return NULL; + if (ZSTD_pthread_mutex_init(&bufPool->poolMutex, NULL)) { + ZSTD_customFree(bufPool, cMem); + return NULL; + } + bufPool->buffers = (buffer_t*)ZSTD_customCalloc(maxNbBuffers * sizeof(buffer_t), cMem); + if (bufPool->buffers==NULL) { + ZSTDMT_freeBufferPool(bufPool); + return NULL; + } + bufPool->bufferSize = 64 KB; + bufPool->totalBuffers = maxNbBuffers; + bufPool->nbBuffers = 0; + bufPool->cMem = cMem; + return bufPool; +} + +/* only works at initialization, not during compression */ +static size_t ZSTDMT_sizeof_bufferPool(ZSTDMT_bufferPool* bufPool) +{ + size_t const poolSize = sizeof(*bufPool); + size_t const arraySize = bufPool->totalBuffers * sizeof(buffer_t); + unsigned u; + size_t totalBufferSize = 0; + ZSTD_pthread_mutex_lock(&bufPool->poolMutex); + for (u=0; utotalBuffers; u++) + totalBufferSize += bufPool->buffers[u].capacity; + ZSTD_pthread_mutex_unlock(&bufPool->poolMutex); + + return poolSize + arraySize + totalBufferSize; +} + +/* ZSTDMT_setBufferSize() : + * all future buffers provided by this buffer pool will have _at least_ this size + * note : it's better for all buffers to have same size, + * as they become freely interchangeable, reducing malloc/free usages and memory fragmentation */ +static void ZSTDMT_setBufferSize(ZSTDMT_bufferPool* const bufPool, size_t const bSize) +{ + ZSTD_pthread_mutex_lock(&bufPool->poolMutex); + DEBUGLOG(4, "ZSTDMT_setBufferSize: bSize = %u", (U32)bSize); + bufPool->bufferSize = bSize; + ZSTD_pthread_mutex_unlock(&bufPool->poolMutex); +} + + +static ZSTDMT_bufferPool* ZSTDMT_expandBufferPool(ZSTDMT_bufferPool* srcBufPool, unsigned maxNbBuffers) +{ + if (srcBufPool==NULL) return NULL; + if (srcBufPool->totalBuffers >= maxNbBuffers) /* good enough */ + return srcBufPool; + /* need a larger buffer pool */ + { ZSTD_customMem const cMem = srcBufPool->cMem; + size_t const bSize = srcBufPool->bufferSize; /* forward parameters */ + ZSTDMT_bufferPool* newBufPool; + ZSTDMT_freeBufferPool(srcBufPool); + newBufPool = ZSTDMT_createBufferPool(maxNbBuffers, cMem); + if (newBufPool==NULL) return newBufPool; + ZSTDMT_setBufferSize(newBufPool, bSize); + return newBufPool; + } +} + +/** ZSTDMT_getBuffer() : + * assumption : bufPool must be valid + * @return : a buffer, with start pointer and size + * note: allocation may fail, in this case, start==NULL and size==0 */ +static buffer_t ZSTDMT_getBuffer(ZSTDMT_bufferPool* bufPool) +{ + size_t const bSize = bufPool->bufferSize; + DEBUGLOG(5, "ZSTDMT_getBuffer: bSize = %u", (U32)bufPool->bufferSize); + ZSTD_pthread_mutex_lock(&bufPool->poolMutex); + if (bufPool->nbBuffers) { /* try to use an existing buffer */ + buffer_t const buf = bufPool->buffers[--(bufPool->nbBuffers)]; + size_t const availBufferSize = buf.capacity; + bufPool->buffers[bufPool->nbBuffers] = g_nullBuffer; + if ((availBufferSize >= bSize) & ((availBufferSize>>3) <= bSize)) { + /* large enough, but not too much */ + DEBUGLOG(5, "ZSTDMT_getBuffer: provide buffer %u of size %u", + bufPool->nbBuffers, (U32)buf.capacity); + ZSTD_pthread_mutex_unlock(&bufPool->poolMutex); + return buf; + } + /* size conditions not respected : scratch this buffer, create new one */ + DEBUGLOG(5, "ZSTDMT_getBuffer: existing buffer does not meet size conditions => freeing"); + ZSTD_customFree(buf.start, bufPool->cMem); + } + ZSTD_pthread_mutex_unlock(&bufPool->poolMutex); + /* create new buffer */ + DEBUGLOG(5, "ZSTDMT_getBuffer: create a new buffer"); + { buffer_t buffer; + void* const start = ZSTD_customMalloc(bSize, bufPool->cMem); + buffer.start = start; /* note : start can be NULL if malloc fails ! */ + buffer.capacity = (start==NULL) ? 0 : bSize; + if (start==NULL) { + DEBUGLOG(5, "ZSTDMT_getBuffer: buffer allocation failure !!"); + } else { + DEBUGLOG(5, "ZSTDMT_getBuffer: created buffer of size %u", (U32)bSize); + } + return buffer; + } +} + +#if ZSTD_RESIZE_SEQPOOL +/** ZSTDMT_resizeBuffer() : + * assumption : bufPool must be valid + * @return : a buffer that is at least the buffer pool buffer size. + * If a reallocation happens, the data in the input buffer is copied. + */ +static buffer_t ZSTDMT_resizeBuffer(ZSTDMT_bufferPool* bufPool, buffer_t buffer) +{ + size_t const bSize = bufPool->bufferSize; + if (buffer.capacity < bSize) { + void* const start = ZSTD_customMalloc(bSize, bufPool->cMem); + buffer_t newBuffer; + newBuffer.start = start; + newBuffer.capacity = start == NULL ? 0 : bSize; + if (start != NULL) { + assert(newBuffer.capacity >= buffer.capacity); + ZSTD_memcpy(newBuffer.start, buffer.start, buffer.capacity); + DEBUGLOG(5, "ZSTDMT_resizeBuffer: created buffer of size %u", (U32)bSize); + return newBuffer; + } + DEBUGLOG(5, "ZSTDMT_resizeBuffer: buffer allocation failure !!"); + } + return buffer; +} +#endif + +/* store buffer for later re-use, up to pool capacity */ +static void ZSTDMT_releaseBuffer(ZSTDMT_bufferPool* bufPool, buffer_t buf) +{ + DEBUGLOG(5, "ZSTDMT_releaseBuffer"); + if (buf.start == NULL) return; /* compatible with release on NULL */ + ZSTD_pthread_mutex_lock(&bufPool->poolMutex); + if (bufPool->nbBuffers < bufPool->totalBuffers) { + bufPool->buffers[bufPool->nbBuffers++] = buf; /* stored for later use */ + DEBUGLOG(5, "ZSTDMT_releaseBuffer: stored buffer of size %u in slot %u", + (U32)buf.capacity, (U32)(bufPool->nbBuffers-1)); + ZSTD_pthread_mutex_unlock(&bufPool->poolMutex); + return; + } + ZSTD_pthread_mutex_unlock(&bufPool->poolMutex); + /* Reached bufferPool capacity (note: should not happen) */ + DEBUGLOG(5, "ZSTDMT_releaseBuffer: pool capacity reached => freeing "); + ZSTD_customFree(buf.start, bufPool->cMem); +} + +/* We need 2 output buffers per worker since each dstBuff must be flushed after it is released. + * The 3 additional buffers are as follows: + * 1 buffer for input loading + * 1 buffer for "next input" when submitting current one + * 1 buffer stuck in queue */ +#define BUF_POOL_MAX_NB_BUFFERS(nbWorkers) (2*(nbWorkers) + 3) + +/* After a worker releases its rawSeqStore, it is immediately ready for reuse. + * So we only need one seq buffer per worker. */ +#define SEQ_POOL_MAX_NB_BUFFERS(nbWorkers) (nbWorkers) + +/* ===== Seq Pool Wrapper ====== */ + +typedef ZSTDMT_bufferPool ZSTDMT_seqPool; + +static size_t ZSTDMT_sizeof_seqPool(ZSTDMT_seqPool* seqPool) +{ + return ZSTDMT_sizeof_bufferPool(seqPool); +} + +static rawSeqStore_t bufferToSeq(buffer_t buffer) +{ + rawSeqStore_t seq = kNullRawSeqStore; + seq.seq = (rawSeq*)buffer.start; + seq.capacity = buffer.capacity / sizeof(rawSeq); + return seq; +} + +static buffer_t seqToBuffer(rawSeqStore_t seq) +{ + buffer_t buffer; + buffer.start = seq.seq; + buffer.capacity = seq.capacity * sizeof(rawSeq); + return buffer; +} + +static rawSeqStore_t ZSTDMT_getSeq(ZSTDMT_seqPool* seqPool) +{ + if (seqPool->bufferSize == 0) { + return kNullRawSeqStore; + } + return bufferToSeq(ZSTDMT_getBuffer(seqPool)); +} + +#if ZSTD_RESIZE_SEQPOOL +static rawSeqStore_t ZSTDMT_resizeSeq(ZSTDMT_seqPool* seqPool, rawSeqStore_t seq) +{ + return bufferToSeq(ZSTDMT_resizeBuffer(seqPool, seqToBuffer(seq))); +} +#endif + +static void ZSTDMT_releaseSeq(ZSTDMT_seqPool* seqPool, rawSeqStore_t seq) +{ + ZSTDMT_releaseBuffer(seqPool, seqToBuffer(seq)); +} + +static void ZSTDMT_setNbSeq(ZSTDMT_seqPool* const seqPool, size_t const nbSeq) +{ + ZSTDMT_setBufferSize(seqPool, nbSeq * sizeof(rawSeq)); +} + +static ZSTDMT_seqPool* ZSTDMT_createSeqPool(unsigned nbWorkers, ZSTD_customMem cMem) +{ + ZSTDMT_seqPool* const seqPool = ZSTDMT_createBufferPool(SEQ_POOL_MAX_NB_BUFFERS(nbWorkers), cMem); + if (seqPool == NULL) return NULL; + ZSTDMT_setNbSeq(seqPool, 0); + return seqPool; +} + +static void ZSTDMT_freeSeqPool(ZSTDMT_seqPool* seqPool) +{ + ZSTDMT_freeBufferPool(seqPool); +} + +static ZSTDMT_seqPool* ZSTDMT_expandSeqPool(ZSTDMT_seqPool* pool, U32 nbWorkers) +{ + return ZSTDMT_expandBufferPool(pool, SEQ_POOL_MAX_NB_BUFFERS(nbWorkers)); +} + + +/* ===== CCtx Pool ===== */ +/* a single CCtx Pool can be invoked from multiple threads in parallel */ + +typedef struct { + ZSTD_pthread_mutex_t poolMutex; + int totalCCtx; + int availCCtx; + ZSTD_customMem cMem; + ZSTD_CCtx** cctxs; +} ZSTDMT_CCtxPool; + +/* note : all CCtx borrowed from the pool must be reverted back to the pool _before_ freeing the pool */ +static void ZSTDMT_freeCCtxPool(ZSTDMT_CCtxPool* pool) +{ + if (!pool) return; + ZSTD_pthread_mutex_destroy(&pool->poolMutex); + if (pool->cctxs) { + int cid; + for (cid=0; cidtotalCCtx; cid++) + ZSTD_freeCCtx(pool->cctxs[cid]); /* free compatible with NULL */ + ZSTD_customFree(pool->cctxs, pool->cMem); + } + ZSTD_customFree(pool, pool->cMem); +} + +/* ZSTDMT_createCCtxPool() : + * implies nbWorkers >= 1 , checked by caller ZSTDMT_createCCtx() */ +static ZSTDMT_CCtxPool* ZSTDMT_createCCtxPool(int nbWorkers, + ZSTD_customMem cMem) +{ + ZSTDMT_CCtxPool* const cctxPool = + (ZSTDMT_CCtxPool*) ZSTD_customCalloc(sizeof(ZSTDMT_CCtxPool), cMem); + assert(nbWorkers > 0); + if (!cctxPool) return NULL; + if (ZSTD_pthread_mutex_init(&cctxPool->poolMutex, NULL)) { + ZSTD_customFree(cctxPool, cMem); + return NULL; + } + cctxPool->totalCCtx = nbWorkers; + cctxPool->cctxs = (ZSTD_CCtx**)ZSTD_customCalloc(nbWorkers * sizeof(ZSTD_CCtx*), cMem); + if (!cctxPool->cctxs) { + ZSTDMT_freeCCtxPool(cctxPool); + return NULL; + } + cctxPool->cMem = cMem; + cctxPool->cctxs[0] = ZSTD_createCCtx_advanced(cMem); + if (!cctxPool->cctxs[0]) { ZSTDMT_freeCCtxPool(cctxPool); return NULL; } + cctxPool->availCCtx = 1; /* at least one cctx for single-thread mode */ + DEBUGLOG(3, "cctxPool created, with %u workers", nbWorkers); + return cctxPool; +} + +static ZSTDMT_CCtxPool* ZSTDMT_expandCCtxPool(ZSTDMT_CCtxPool* srcPool, + int nbWorkers) +{ + if (srcPool==NULL) return NULL; + if (nbWorkers <= srcPool->totalCCtx) return srcPool; /* good enough */ + /* need a larger cctx pool */ + { ZSTD_customMem const cMem = srcPool->cMem; + ZSTDMT_freeCCtxPool(srcPool); + return ZSTDMT_createCCtxPool(nbWorkers, cMem); + } +} + +/* only works during initialization phase, not during compression */ +static size_t ZSTDMT_sizeof_CCtxPool(ZSTDMT_CCtxPool* cctxPool) +{ + ZSTD_pthread_mutex_lock(&cctxPool->poolMutex); + { unsigned const nbWorkers = cctxPool->totalCCtx; + size_t const poolSize = sizeof(*cctxPool); + size_t const arraySize = cctxPool->totalCCtx * sizeof(ZSTD_CCtx*); + size_t totalCCtxSize = 0; + unsigned u; + for (u=0; ucctxs[u]); + } + ZSTD_pthread_mutex_unlock(&cctxPool->poolMutex); + assert(nbWorkers > 0); + return poolSize + arraySize + totalCCtxSize; + } +} + +static ZSTD_CCtx* ZSTDMT_getCCtx(ZSTDMT_CCtxPool* cctxPool) +{ + DEBUGLOG(5, "ZSTDMT_getCCtx"); + ZSTD_pthread_mutex_lock(&cctxPool->poolMutex); + if (cctxPool->availCCtx) { + cctxPool->availCCtx--; + { ZSTD_CCtx* const cctx = cctxPool->cctxs[cctxPool->availCCtx]; + ZSTD_pthread_mutex_unlock(&cctxPool->poolMutex); + return cctx; + } } + ZSTD_pthread_mutex_unlock(&cctxPool->poolMutex); + DEBUGLOG(5, "create one more CCtx"); + return ZSTD_createCCtx_advanced(cctxPool->cMem); /* note : can be NULL, when creation fails ! */ +} + +static void ZSTDMT_releaseCCtx(ZSTDMT_CCtxPool* pool, ZSTD_CCtx* cctx) +{ + if (cctx==NULL) return; /* compatibility with release on NULL */ + ZSTD_pthread_mutex_lock(&pool->poolMutex); + if (pool->availCCtx < pool->totalCCtx) + pool->cctxs[pool->availCCtx++] = cctx; + else { + /* pool overflow : should not happen, since totalCCtx==nbWorkers */ + DEBUGLOG(4, "CCtx pool overflow : free cctx"); + ZSTD_freeCCtx(cctx); + } + ZSTD_pthread_mutex_unlock(&pool->poolMutex); +} + +/* ==== Serial State ==== */ + +typedef struct { + void const* start; + size_t size; +} range_t; + +typedef struct { + /* All variables in the struct are protected by mutex. */ + ZSTD_pthread_mutex_t mutex; + ZSTD_pthread_cond_t cond; + ZSTD_CCtx_params params; + ldmState_t ldmState; + XXH64_state_t xxhState; + unsigned nextJobID; + /* Protects ldmWindow. + * Must be acquired after the main mutex when acquiring both. + */ + ZSTD_pthread_mutex_t ldmWindowMutex; + ZSTD_pthread_cond_t ldmWindowCond; /* Signaled when ldmWindow is updated */ + ZSTD_window_t ldmWindow; /* A thread-safe copy of ldmState.window */ +} serialState_t; + +static int +ZSTDMT_serialState_reset(serialState_t* serialState, + ZSTDMT_seqPool* seqPool, + ZSTD_CCtx_params params, + size_t jobSize, + const void* dict, size_t const dictSize, + ZSTD_dictContentType_e dictContentType) +{ + /* Adjust parameters */ + if (params.ldmParams.enableLdm == ZSTD_ps_enable) { + DEBUGLOG(4, "LDM window size = %u KB", (1U << params.cParams.windowLog) >> 10); + ZSTD_ldm_adjustParameters(¶ms.ldmParams, ¶ms.cParams); + assert(params.ldmParams.hashLog >= params.ldmParams.bucketSizeLog); + assert(params.ldmParams.hashRateLog < 32); + } else { + ZSTD_memset(¶ms.ldmParams, 0, sizeof(params.ldmParams)); + } + serialState->nextJobID = 0; + if (params.fParams.checksumFlag) + XXH64_reset(&serialState->xxhState, 0); + if (params.ldmParams.enableLdm == ZSTD_ps_enable) { + ZSTD_customMem cMem = params.customMem; + unsigned const hashLog = params.ldmParams.hashLog; + size_t const hashSize = ((size_t)1 << hashLog) * sizeof(ldmEntry_t); + unsigned const bucketLog = + params.ldmParams.hashLog - params.ldmParams.bucketSizeLog; + unsigned const prevBucketLog = + serialState->params.ldmParams.hashLog - + serialState->params.ldmParams.bucketSizeLog; + size_t const numBuckets = (size_t)1 << bucketLog; + /* Size the seq pool tables */ + ZSTDMT_setNbSeq(seqPool, ZSTD_ldm_getMaxNbSeq(params.ldmParams, jobSize)); + /* Reset the window */ + ZSTD_window_init(&serialState->ldmState.window); + /* Resize tables and output space if necessary. */ + if (serialState->ldmState.hashTable == NULL || serialState->params.ldmParams.hashLog < hashLog) { + ZSTD_customFree(serialState->ldmState.hashTable, cMem); + serialState->ldmState.hashTable = (ldmEntry_t*)ZSTD_customMalloc(hashSize, cMem); + } + if (serialState->ldmState.bucketOffsets == NULL || prevBucketLog < bucketLog) { + ZSTD_customFree(serialState->ldmState.bucketOffsets, cMem); + serialState->ldmState.bucketOffsets = (BYTE*)ZSTD_customMalloc(numBuckets, cMem); + } + if (!serialState->ldmState.hashTable || !serialState->ldmState.bucketOffsets) + return 1; + /* Zero the tables */ + ZSTD_memset(serialState->ldmState.hashTable, 0, hashSize); + ZSTD_memset(serialState->ldmState.bucketOffsets, 0, numBuckets); + + /* Update window state and fill hash table with dict */ + serialState->ldmState.loadedDictEnd = 0; + if (dictSize > 0) { + if (dictContentType == ZSTD_dct_rawContent) { + BYTE const* const dictEnd = (const BYTE*)dict + dictSize; + ZSTD_window_update(&serialState->ldmState.window, dict, dictSize, /* forceNonContiguous */ 0); + ZSTD_ldm_fillHashTable(&serialState->ldmState, (const BYTE*)dict, dictEnd, ¶ms.ldmParams); + serialState->ldmState.loadedDictEnd = params.forceWindow ? 0 : (U32)(dictEnd - serialState->ldmState.window.base); + } else { + /* don't even load anything */ + } + } + + /* Initialize serialState's copy of ldmWindow. */ + serialState->ldmWindow = serialState->ldmState.window; + } + + serialState->params = params; + serialState->params.jobSize = (U32)jobSize; + return 0; +} + +static int ZSTDMT_serialState_init(serialState_t* serialState) +{ + int initError = 0; + ZSTD_memset(serialState, 0, sizeof(*serialState)); + initError |= ZSTD_pthread_mutex_init(&serialState->mutex, NULL); + initError |= ZSTD_pthread_cond_init(&serialState->cond, NULL); + initError |= ZSTD_pthread_mutex_init(&serialState->ldmWindowMutex, NULL); + initError |= ZSTD_pthread_cond_init(&serialState->ldmWindowCond, NULL); + return initError; +} + +static void ZSTDMT_serialState_free(serialState_t* serialState) +{ + ZSTD_customMem cMem = serialState->params.customMem; + ZSTD_pthread_mutex_destroy(&serialState->mutex); + ZSTD_pthread_cond_destroy(&serialState->cond); + ZSTD_pthread_mutex_destroy(&serialState->ldmWindowMutex); + ZSTD_pthread_cond_destroy(&serialState->ldmWindowCond); + ZSTD_customFree(serialState->ldmState.hashTable, cMem); + ZSTD_customFree(serialState->ldmState.bucketOffsets, cMem); +} + +static void ZSTDMT_serialState_update(serialState_t* serialState, + ZSTD_CCtx* jobCCtx, rawSeqStore_t seqStore, + range_t src, unsigned jobID) +{ + /* Wait for our turn */ + ZSTD_PTHREAD_MUTEX_LOCK(&serialState->mutex); + while (serialState->nextJobID < jobID) { + DEBUGLOG(5, "wait for serialState->cond"); + ZSTD_pthread_cond_wait(&serialState->cond, &serialState->mutex); + } + /* A future job may error and skip our job */ + if (serialState->nextJobID == jobID) { + /* It is now our turn, do any processing necessary */ + if (serialState->params.ldmParams.enableLdm == ZSTD_ps_enable) { + size_t error; + assert(seqStore.seq != NULL && seqStore.pos == 0 && + seqStore.size == 0 && seqStore.capacity > 0); + assert(src.size <= serialState->params.jobSize); + ZSTD_window_update(&serialState->ldmState.window, src.start, src.size, /* forceNonContiguous */ 0); + error = ZSTD_ldm_generateSequences( + &serialState->ldmState, &seqStore, + &serialState->params.ldmParams, src.start, src.size); + /* We provide a large enough buffer to never fail. */ + assert(!ZSTD_isError(error)); (void)error; + /* Update ldmWindow to match the ldmState.window and signal the main + * thread if it is waiting for a buffer. + */ + ZSTD_PTHREAD_MUTEX_LOCK(&serialState->ldmWindowMutex); + serialState->ldmWindow = serialState->ldmState.window; + ZSTD_pthread_cond_signal(&serialState->ldmWindowCond); + ZSTD_pthread_mutex_unlock(&serialState->ldmWindowMutex); + } + if (serialState->params.fParams.checksumFlag && src.size > 0) + XXH64_update(&serialState->xxhState, src.start, src.size); + } + /* Now it is the next jobs turn */ + serialState->nextJobID++; + ZSTD_pthread_cond_broadcast(&serialState->cond); + ZSTD_pthread_mutex_unlock(&serialState->mutex); + + if (seqStore.size > 0) { + ZSTD_referenceExternalSequences(jobCCtx, seqStore.seq, seqStore.size); + assert(serialState->params.ldmParams.enableLdm == ZSTD_ps_enable); + } +} + +static void ZSTDMT_serialState_ensureFinished(serialState_t* serialState, + unsigned jobID, size_t cSize) +{ + ZSTD_PTHREAD_MUTEX_LOCK(&serialState->mutex); + if (serialState->nextJobID <= jobID) { + assert(ZSTD_isError(cSize)); (void)cSize; + DEBUGLOG(5, "Skipping past job %u because of error", jobID); + serialState->nextJobID = jobID + 1; + ZSTD_pthread_cond_broadcast(&serialState->cond); + + ZSTD_PTHREAD_MUTEX_LOCK(&serialState->ldmWindowMutex); + ZSTD_window_clear(&serialState->ldmWindow); + ZSTD_pthread_cond_signal(&serialState->ldmWindowCond); + ZSTD_pthread_mutex_unlock(&serialState->ldmWindowMutex); + } + ZSTD_pthread_mutex_unlock(&serialState->mutex); + +} + + +/* ------------------------------------------ */ +/* ===== Worker thread ===== */ +/* ------------------------------------------ */ + +static const range_t kNullRange = { NULL, 0 }; + +typedef struct { + size_t consumed; /* SHARED - set0 by mtctx, then modified by worker AND read by mtctx */ + size_t cSize; /* SHARED - set0 by mtctx, then modified by worker AND read by mtctx, then set0 by mtctx */ + ZSTD_pthread_mutex_t job_mutex; /* Thread-safe - used by mtctx and worker */ + ZSTD_pthread_cond_t job_cond; /* Thread-safe - used by mtctx and worker */ + ZSTDMT_CCtxPool* cctxPool; /* Thread-safe - used by mtctx and (all) workers */ + ZSTDMT_bufferPool* bufPool; /* Thread-safe - used by mtctx and (all) workers */ + ZSTDMT_seqPool* seqPool; /* Thread-safe - used by mtctx and (all) workers */ + serialState_t* serial; /* Thread-safe - used by mtctx and (all) workers */ + buffer_t dstBuff; /* set by worker (or mtctx), then read by worker & mtctx, then modified by mtctx => no barrier */ + range_t prefix; /* set by mtctx, then read by worker & mtctx => no barrier */ + range_t src; /* set by mtctx, then read by worker & mtctx => no barrier */ + unsigned jobID; /* set by mtctx, then read by worker => no barrier */ + unsigned firstJob; /* set by mtctx, then read by worker => no barrier */ + unsigned lastJob; /* set by mtctx, then read by worker => no barrier */ + ZSTD_CCtx_params params; /* set by mtctx, then read by worker => no barrier */ + const ZSTD_CDict* cdict; /* set by mtctx, then read by worker => no barrier */ + unsigned long long fullFrameSize; /* set by mtctx, then read by worker => no barrier */ + size_t dstFlushed; /* used only by mtctx */ + unsigned frameChecksumNeeded; /* used only by mtctx */ +} ZSTDMT_jobDescription; + +#define JOB_ERROR(e) \ + do { \ + ZSTD_PTHREAD_MUTEX_LOCK(&job->job_mutex); \ + job->cSize = e; \ + ZSTD_pthread_mutex_unlock(&job->job_mutex); \ + goto _endJob; \ + } while (0) + +/* ZSTDMT_compressionJob() is a POOL_function type */ +static void ZSTDMT_compressionJob(void* jobDescription) +{ + ZSTDMT_jobDescription* const job = (ZSTDMT_jobDescription*)jobDescription; + ZSTD_CCtx_params jobParams = job->params; /* do not modify job->params ! copy it, modify the copy */ + ZSTD_CCtx* const cctx = ZSTDMT_getCCtx(job->cctxPool); + rawSeqStore_t rawSeqStore = ZSTDMT_getSeq(job->seqPool); + buffer_t dstBuff = job->dstBuff; + size_t lastCBlockSize = 0; + + /* resources */ + if (cctx==NULL) JOB_ERROR(ERROR(memory_allocation)); + if (dstBuff.start == NULL) { /* streaming job : doesn't provide a dstBuffer */ + dstBuff = ZSTDMT_getBuffer(job->bufPool); + if (dstBuff.start==NULL) JOB_ERROR(ERROR(memory_allocation)); + job->dstBuff = dstBuff; /* this value can be read in ZSTDMT_flush, when it copies the whole job */ + } + if (jobParams.ldmParams.enableLdm == ZSTD_ps_enable && rawSeqStore.seq == NULL) + JOB_ERROR(ERROR(memory_allocation)); + + /* Don't compute the checksum for chunks, since we compute it externally, + * but write it in the header. + */ + if (job->jobID != 0) jobParams.fParams.checksumFlag = 0; + /* Don't run LDM for the chunks, since we handle it externally */ + jobParams.ldmParams.enableLdm = ZSTD_ps_disable; + /* Correct nbWorkers to 0. */ + jobParams.nbWorkers = 0; + + + /* init */ + if (job->cdict) { + size_t const initError = ZSTD_compressBegin_advanced_internal(cctx, NULL, 0, ZSTD_dct_auto, ZSTD_dtlm_fast, job->cdict, &jobParams, job->fullFrameSize); + assert(job->firstJob); /* only allowed for first job */ + if (ZSTD_isError(initError)) JOB_ERROR(initError); + } else { /* srcStart points at reloaded section */ + U64 const pledgedSrcSize = job->firstJob ? job->fullFrameSize : job->src.size; + { size_t const forceWindowError = ZSTD_CCtxParams_setParameter(&jobParams, ZSTD_c_forceMaxWindow, !job->firstJob); + if (ZSTD_isError(forceWindowError)) JOB_ERROR(forceWindowError); + } + if (!job->firstJob) { + size_t const err = ZSTD_CCtxParams_setParameter(&jobParams, ZSTD_c_deterministicRefPrefix, 0); + if (ZSTD_isError(err)) JOB_ERROR(err); + } + { size_t const initError = ZSTD_compressBegin_advanced_internal(cctx, + job->prefix.start, job->prefix.size, ZSTD_dct_rawContent, /* load dictionary in "content-only" mode (no header analysis) */ + ZSTD_dtlm_fast, + NULL, /*cdict*/ + &jobParams, pledgedSrcSize); + if (ZSTD_isError(initError)) JOB_ERROR(initError); + } } + + /* Perform serial step as early as possible, but after CCtx initialization */ + ZSTDMT_serialState_update(job->serial, cctx, rawSeqStore, job->src, job->jobID); + + if (!job->firstJob) { /* flush and overwrite frame header when it's not first job */ + size_t const hSize = ZSTD_compressContinue_public(cctx, dstBuff.start, dstBuff.capacity, job->src.start, 0); + if (ZSTD_isError(hSize)) JOB_ERROR(hSize); + DEBUGLOG(5, "ZSTDMT_compressionJob: flush and overwrite %u bytes of frame header (not first job)", (U32)hSize); + ZSTD_invalidateRepCodes(cctx); + } + + /* compress */ + { size_t const chunkSize = 4*ZSTD_BLOCKSIZE_MAX; + int const nbChunks = (int)((job->src.size + (chunkSize-1)) / chunkSize); + const BYTE* ip = (const BYTE*) job->src.start; + BYTE* const ostart = (BYTE*)dstBuff.start; + BYTE* op = ostart; + BYTE* oend = op + dstBuff.capacity; + int chunkNb; + if (sizeof(size_t) > sizeof(int)) assert(job->src.size < ((size_t)INT_MAX) * chunkSize); /* check overflow */ + DEBUGLOG(5, "ZSTDMT_compressionJob: compress %u bytes in %i blocks", (U32)job->src.size, nbChunks); + assert(job->cSize == 0); + for (chunkNb = 1; chunkNb < nbChunks; chunkNb++) { + size_t const cSize = ZSTD_compressContinue_public(cctx, op, oend-op, ip, chunkSize); + if (ZSTD_isError(cSize)) JOB_ERROR(cSize); + ip += chunkSize; + op += cSize; assert(op < oend); + /* stats */ + ZSTD_PTHREAD_MUTEX_LOCK(&job->job_mutex); + job->cSize += cSize; + job->consumed = chunkSize * chunkNb; + DEBUGLOG(5, "ZSTDMT_compressionJob: compress new block : cSize==%u bytes (total: %u)", + (U32)cSize, (U32)job->cSize); + ZSTD_pthread_cond_signal(&job->job_cond); /* warns some more data is ready to be flushed */ + ZSTD_pthread_mutex_unlock(&job->job_mutex); + } + /* last block */ + assert(chunkSize > 0); + assert((chunkSize & (chunkSize - 1)) == 0); /* chunkSize must be power of 2 for mask==(chunkSize-1) to work */ + if ((nbChunks > 0) | job->lastJob /*must output a "last block" flag*/ ) { + size_t const lastBlockSize1 = job->src.size & (chunkSize-1); + size_t const lastBlockSize = ((lastBlockSize1==0) & (job->src.size>=chunkSize)) ? chunkSize : lastBlockSize1; + size_t const cSize = (job->lastJob) ? + ZSTD_compressEnd_public(cctx, op, oend-op, ip, lastBlockSize) : + ZSTD_compressContinue_public(cctx, op, oend-op, ip, lastBlockSize); + if (ZSTD_isError(cSize)) JOB_ERROR(cSize); + lastCBlockSize = cSize; + } } + if (!job->firstJob) { + /* Double check that we don't have an ext-dict, because then our + * repcode invalidation doesn't work. + */ + assert(!ZSTD_window_hasExtDict(cctx->blockState.matchState.window)); + } + ZSTD_CCtx_trace(cctx, 0); + +_endJob: + ZSTDMT_serialState_ensureFinished(job->serial, job->jobID, job->cSize); + if (job->prefix.size > 0) + DEBUGLOG(5, "Finished with prefix: %zx", (size_t)job->prefix.start); + DEBUGLOG(5, "Finished with source: %zx", (size_t)job->src.start); + /* release resources */ + ZSTDMT_releaseSeq(job->seqPool, rawSeqStore); + ZSTDMT_releaseCCtx(job->cctxPool, cctx); + /* report */ + ZSTD_PTHREAD_MUTEX_LOCK(&job->job_mutex); + if (ZSTD_isError(job->cSize)) assert(lastCBlockSize == 0); + job->cSize += lastCBlockSize; + job->consumed = job->src.size; /* when job->consumed == job->src.size , compression job is presumed completed */ + ZSTD_pthread_cond_signal(&job->job_cond); + ZSTD_pthread_mutex_unlock(&job->job_mutex); +} + + +/* ------------------------------------------ */ +/* ===== Multi-threaded compression ===== */ +/* ------------------------------------------ */ + +typedef struct { + range_t prefix; /* read-only non-owned prefix buffer */ + buffer_t buffer; + size_t filled; +} inBuff_t; + +typedef struct { + BYTE* buffer; /* The round input buffer. All jobs get references + * to pieces of the buffer. ZSTDMT_tryGetInputRange() + * handles handing out job input buffers, and makes + * sure it doesn't overlap with any pieces still in use. + */ + size_t capacity; /* The capacity of buffer. */ + size_t pos; /* The position of the current inBuff in the round + * buffer. Updated past the end if the inBuff once + * the inBuff is sent to the worker thread. + * pos <= capacity. + */ +} roundBuff_t; + +static const roundBuff_t kNullRoundBuff = {NULL, 0, 0}; + +#define RSYNC_LENGTH 32 +/* Don't create chunks smaller than the zstd block size. + * This stops us from regressing compression ratio too much, + * and ensures our output fits in ZSTD_compressBound(). + * + * If this is shrunk < ZSTD_BLOCKSIZELOG_MIN then + * ZSTD_COMPRESSBOUND() will need to be updated. + */ +#define RSYNC_MIN_BLOCK_LOG ZSTD_BLOCKSIZELOG_MAX +#define RSYNC_MIN_BLOCK_SIZE (1< one job is already prepared, but pool has shortage of workers. Don't create a new job. */ + inBuff_t inBuff; + roundBuff_t roundBuff; + serialState_t serial; + rsyncState_t rsync; + unsigned jobIDMask; + unsigned doneJobID; + unsigned nextJobID; + unsigned frameEnded; + unsigned allJobsCompleted; + unsigned long long frameContentSize; + unsigned long long consumed; + unsigned long long produced; + ZSTD_customMem cMem; + ZSTD_CDict* cdictLocal; + const ZSTD_CDict* cdict; + unsigned providedFactory: 1; +}; + +static void ZSTDMT_freeJobsTable(ZSTDMT_jobDescription* jobTable, U32 nbJobs, ZSTD_customMem cMem) +{ + U32 jobNb; + if (jobTable == NULL) return; + for (jobNb=0; jobNb mtctx->jobIDMask+1) { /* need more job capacity */ + ZSTDMT_freeJobsTable(mtctx->jobs, mtctx->jobIDMask+1, mtctx->cMem); + mtctx->jobIDMask = 0; + mtctx->jobs = ZSTDMT_createJobsTable(&nbJobs, mtctx->cMem); + if (mtctx->jobs==NULL) return ERROR(memory_allocation); + assert((nbJobs != 0) && ((nbJobs & (nbJobs - 1)) == 0)); /* ensure nbJobs is a power of 2 */ + mtctx->jobIDMask = nbJobs - 1; + } + return 0; +} + + +/* ZSTDMT_CCtxParam_setNbWorkers(): + * Internal use only */ +static size_t ZSTDMT_CCtxParam_setNbWorkers(ZSTD_CCtx_params* params, unsigned nbWorkers) +{ + return ZSTD_CCtxParams_setParameter(params, ZSTD_c_nbWorkers, (int)nbWorkers); +} + +MEM_STATIC ZSTDMT_CCtx* ZSTDMT_createCCtx_advanced_internal(unsigned nbWorkers, ZSTD_customMem cMem, ZSTD_threadPool* pool) +{ + ZSTDMT_CCtx* mtctx; + U32 nbJobs = nbWorkers + 2; + int initError; + DEBUGLOG(3, "ZSTDMT_createCCtx_advanced (nbWorkers = %u)", nbWorkers); + + if (nbWorkers < 1) return NULL; + nbWorkers = MIN(nbWorkers , ZSTDMT_NBWORKERS_MAX); + if ((cMem.customAlloc!=NULL) ^ (cMem.customFree!=NULL)) + /* invalid custom allocator */ + return NULL; + + mtctx = (ZSTDMT_CCtx*) ZSTD_customCalloc(sizeof(ZSTDMT_CCtx), cMem); + if (!mtctx) return NULL; + ZSTDMT_CCtxParam_setNbWorkers(&mtctx->params, nbWorkers); + mtctx->cMem = cMem; + mtctx->allJobsCompleted = 1; + if (pool != NULL) { + mtctx->factory = pool; + mtctx->providedFactory = 1; + } + else { + mtctx->factory = POOL_create_advanced(nbWorkers, 0, cMem); + mtctx->providedFactory = 0; + } + mtctx->jobs = ZSTDMT_createJobsTable(&nbJobs, cMem); + assert(nbJobs > 0); assert((nbJobs & (nbJobs - 1)) == 0); /* ensure nbJobs is a power of 2 */ + mtctx->jobIDMask = nbJobs - 1; + mtctx->bufPool = ZSTDMT_createBufferPool(BUF_POOL_MAX_NB_BUFFERS(nbWorkers), cMem); + mtctx->cctxPool = ZSTDMT_createCCtxPool(nbWorkers, cMem); + mtctx->seqPool = ZSTDMT_createSeqPool(nbWorkers, cMem); + initError = ZSTDMT_serialState_init(&mtctx->serial); + mtctx->roundBuff = kNullRoundBuff; + if (!mtctx->factory | !mtctx->jobs | !mtctx->bufPool | !mtctx->cctxPool | !mtctx->seqPool | initError) { + ZSTDMT_freeCCtx(mtctx); + return NULL; + } + DEBUGLOG(3, "mt_cctx created, for %u threads", nbWorkers); + return mtctx; +} + +ZSTDMT_CCtx* ZSTDMT_createCCtx_advanced(unsigned nbWorkers, ZSTD_customMem cMem, ZSTD_threadPool* pool) +{ +#ifdef ZSTD_MULTITHREAD + return ZSTDMT_createCCtx_advanced_internal(nbWorkers, cMem, pool); +#else + (void)nbWorkers; + (void)cMem; + (void)pool; + return NULL; +#endif +} + + +/* ZSTDMT_releaseAllJobResources() : + * note : ensure all workers are killed first ! */ +static void ZSTDMT_releaseAllJobResources(ZSTDMT_CCtx* mtctx) +{ + unsigned jobID; + DEBUGLOG(3, "ZSTDMT_releaseAllJobResources"); + for (jobID=0; jobID <= mtctx->jobIDMask; jobID++) { + /* Copy the mutex/cond out */ + ZSTD_pthread_mutex_t const mutex = mtctx->jobs[jobID].job_mutex; + ZSTD_pthread_cond_t const cond = mtctx->jobs[jobID].job_cond; + + DEBUGLOG(4, "job%02u: release dst address %08X", jobID, (U32)(size_t)mtctx->jobs[jobID].dstBuff.start); + ZSTDMT_releaseBuffer(mtctx->bufPool, mtctx->jobs[jobID].dstBuff); + + /* Clear the job description, but keep the mutex/cond */ + ZSTD_memset(&mtctx->jobs[jobID], 0, sizeof(mtctx->jobs[jobID])); + mtctx->jobs[jobID].job_mutex = mutex; + mtctx->jobs[jobID].job_cond = cond; + } + mtctx->inBuff.buffer = g_nullBuffer; + mtctx->inBuff.filled = 0; + mtctx->allJobsCompleted = 1; +} + +static void ZSTDMT_waitForAllJobsCompleted(ZSTDMT_CCtx* mtctx) +{ + DEBUGLOG(4, "ZSTDMT_waitForAllJobsCompleted"); + while (mtctx->doneJobID < mtctx->nextJobID) { + unsigned const jobID = mtctx->doneJobID & mtctx->jobIDMask; + ZSTD_PTHREAD_MUTEX_LOCK(&mtctx->jobs[jobID].job_mutex); + while (mtctx->jobs[jobID].consumed < mtctx->jobs[jobID].src.size) { + DEBUGLOG(4, "waiting for jobCompleted signal from job %u", mtctx->doneJobID); /* we want to block when waiting for data to flush */ + ZSTD_pthread_cond_wait(&mtctx->jobs[jobID].job_cond, &mtctx->jobs[jobID].job_mutex); + } + ZSTD_pthread_mutex_unlock(&mtctx->jobs[jobID].job_mutex); + mtctx->doneJobID++; + } +} + +size_t ZSTDMT_freeCCtx(ZSTDMT_CCtx* mtctx) +{ + if (mtctx==NULL) return 0; /* compatible with free on NULL */ + if (!mtctx->providedFactory) + POOL_free(mtctx->factory); /* stop and free worker threads */ + ZSTDMT_releaseAllJobResources(mtctx); /* release job resources into pools first */ + ZSTDMT_freeJobsTable(mtctx->jobs, mtctx->jobIDMask+1, mtctx->cMem); + ZSTDMT_freeBufferPool(mtctx->bufPool); + ZSTDMT_freeCCtxPool(mtctx->cctxPool); + ZSTDMT_freeSeqPool(mtctx->seqPool); + ZSTDMT_serialState_free(&mtctx->serial); + ZSTD_freeCDict(mtctx->cdictLocal); + if (mtctx->roundBuff.buffer) + ZSTD_customFree(mtctx->roundBuff.buffer, mtctx->cMem); + ZSTD_customFree(mtctx, mtctx->cMem); + return 0; +} + +size_t ZSTDMT_sizeof_CCtx(ZSTDMT_CCtx* mtctx) +{ + if (mtctx == NULL) return 0; /* supports sizeof NULL */ + return sizeof(*mtctx) + + POOL_sizeof(mtctx->factory) + + ZSTDMT_sizeof_bufferPool(mtctx->bufPool) + + (mtctx->jobIDMask+1) * sizeof(ZSTDMT_jobDescription) + + ZSTDMT_sizeof_CCtxPool(mtctx->cctxPool) + + ZSTDMT_sizeof_seqPool(mtctx->seqPool) + + ZSTD_sizeof_CDict(mtctx->cdictLocal) + + mtctx->roundBuff.capacity; +} + + +/* ZSTDMT_resize() : + * @return : error code if fails, 0 on success */ +static size_t ZSTDMT_resize(ZSTDMT_CCtx* mtctx, unsigned nbWorkers) +{ + if (POOL_resize(mtctx->factory, nbWorkers)) return ERROR(memory_allocation); + FORWARD_IF_ERROR( ZSTDMT_expandJobsTable(mtctx, nbWorkers) , ""); + mtctx->bufPool = ZSTDMT_expandBufferPool(mtctx->bufPool, BUF_POOL_MAX_NB_BUFFERS(nbWorkers)); + if (mtctx->bufPool == NULL) return ERROR(memory_allocation); + mtctx->cctxPool = ZSTDMT_expandCCtxPool(mtctx->cctxPool, nbWorkers); + if (mtctx->cctxPool == NULL) return ERROR(memory_allocation); + mtctx->seqPool = ZSTDMT_expandSeqPool(mtctx->seqPool, nbWorkers); + if (mtctx->seqPool == NULL) return ERROR(memory_allocation); + ZSTDMT_CCtxParam_setNbWorkers(&mtctx->params, nbWorkers); + return 0; +} + + +/*! ZSTDMT_updateCParams_whileCompressing() : + * Updates a selected set of compression parameters, remaining compatible with currently active frame. + * New parameters will be applied to next compression job. */ +void ZSTDMT_updateCParams_whileCompressing(ZSTDMT_CCtx* mtctx, const ZSTD_CCtx_params* cctxParams) +{ + U32 const saved_wlog = mtctx->params.cParams.windowLog; /* Do not modify windowLog while compressing */ + int const compressionLevel = cctxParams->compressionLevel; + DEBUGLOG(5, "ZSTDMT_updateCParams_whileCompressing (level:%i)", + compressionLevel); + mtctx->params.compressionLevel = compressionLevel; + { ZSTD_compressionParameters cParams = ZSTD_getCParamsFromCCtxParams(cctxParams, ZSTD_CONTENTSIZE_UNKNOWN, 0, ZSTD_cpm_noAttachDict); + cParams.windowLog = saved_wlog; + mtctx->params.cParams = cParams; + } +} + +/* ZSTDMT_getFrameProgression(): + * tells how much data has been consumed (input) and produced (output) for current frame. + * able to count progression inside worker threads. + * Note : mutex will be acquired during statistics collection inside workers. */ +ZSTD_frameProgression ZSTDMT_getFrameProgression(ZSTDMT_CCtx* mtctx) +{ + ZSTD_frameProgression fps; + DEBUGLOG(5, "ZSTDMT_getFrameProgression"); + fps.ingested = mtctx->consumed + mtctx->inBuff.filled; + fps.consumed = mtctx->consumed; + fps.produced = fps.flushed = mtctx->produced; + fps.currentJobID = mtctx->nextJobID; + fps.nbActiveWorkers = 0; + { unsigned jobNb; + unsigned lastJobNb = mtctx->nextJobID + mtctx->jobReady; assert(mtctx->jobReady <= 1); + DEBUGLOG(6, "ZSTDMT_getFrameProgression: jobs: from %u to <%u (jobReady:%u)", + mtctx->doneJobID, lastJobNb, mtctx->jobReady); + for (jobNb = mtctx->doneJobID ; jobNb < lastJobNb ; jobNb++) { + unsigned const wJobID = jobNb & mtctx->jobIDMask; + ZSTDMT_jobDescription* jobPtr = &mtctx->jobs[wJobID]; + ZSTD_pthread_mutex_lock(&jobPtr->job_mutex); + { size_t const cResult = jobPtr->cSize; + size_t const produced = ZSTD_isError(cResult) ? 0 : cResult; + size_t const flushed = ZSTD_isError(cResult) ? 0 : jobPtr->dstFlushed; + assert(flushed <= produced); + fps.ingested += jobPtr->src.size; + fps.consumed += jobPtr->consumed; + fps.produced += produced; + fps.flushed += flushed; + fps.nbActiveWorkers += (jobPtr->consumed < jobPtr->src.size); + } + ZSTD_pthread_mutex_unlock(&mtctx->jobs[wJobID].job_mutex); + } + } + return fps; +} + + +size_t ZSTDMT_toFlushNow(ZSTDMT_CCtx* mtctx) +{ + size_t toFlush; + unsigned const jobID = mtctx->doneJobID; + assert(jobID <= mtctx->nextJobID); + if (jobID == mtctx->nextJobID) return 0; /* no active job => nothing to flush */ + + /* look into oldest non-fully-flushed job */ + { unsigned const wJobID = jobID & mtctx->jobIDMask; + ZSTDMT_jobDescription* const jobPtr = &mtctx->jobs[wJobID]; + ZSTD_pthread_mutex_lock(&jobPtr->job_mutex); + { size_t const cResult = jobPtr->cSize; + size_t const produced = ZSTD_isError(cResult) ? 0 : cResult; + size_t const flushed = ZSTD_isError(cResult) ? 0 : jobPtr->dstFlushed; + assert(flushed <= produced); + assert(jobPtr->consumed <= jobPtr->src.size); + toFlush = produced - flushed; + /* if toFlush==0, nothing is available to flush. + * However, jobID is expected to still be active: + * if jobID was already completed and fully flushed, + * ZSTDMT_flushProduced() should have already moved onto next job. + * Therefore, some input has not yet been consumed. */ + if (toFlush==0) { + assert(jobPtr->consumed < jobPtr->src.size); + } + } + ZSTD_pthread_mutex_unlock(&mtctx->jobs[wJobID].job_mutex); + } + + return toFlush; +} + + +/* ------------------------------------------ */ +/* ===== Multi-threaded compression ===== */ +/* ------------------------------------------ */ + +static unsigned ZSTDMT_computeTargetJobLog(const ZSTD_CCtx_params* params) +{ + unsigned jobLog; + if (params->ldmParams.enableLdm == ZSTD_ps_enable) { + /* In Long Range Mode, the windowLog is typically oversized. + * In which case, it's preferable to determine the jobSize + * based on cycleLog instead. */ + jobLog = MAX(21, ZSTD_cycleLog(params->cParams.chainLog, params->cParams.strategy) + 3); + } else { + jobLog = MAX(20, params->cParams.windowLog + 2); + } + return MIN(jobLog, (unsigned)ZSTDMT_JOBLOG_MAX); +} + +static int ZSTDMT_overlapLog_default(ZSTD_strategy strat) +{ + switch(strat) + { + case ZSTD_btultra2: + return 9; + case ZSTD_btultra: + case ZSTD_btopt: + return 8; + case ZSTD_btlazy2: + case ZSTD_lazy2: + return 7; + case ZSTD_lazy: + case ZSTD_greedy: + case ZSTD_dfast: + case ZSTD_fast: + default:; + } + return 6; +} + +static int ZSTDMT_overlapLog(int ovlog, ZSTD_strategy strat) +{ + assert(0 <= ovlog && ovlog <= 9); + if (ovlog == 0) return ZSTDMT_overlapLog_default(strat); + return ovlog; +} + +static size_t ZSTDMT_computeOverlapSize(const ZSTD_CCtx_params* params) +{ + int const overlapRLog = 9 - ZSTDMT_overlapLog(params->overlapLog, params->cParams.strategy); + int ovLog = (overlapRLog >= 8) ? 0 : (params->cParams.windowLog - overlapRLog); + assert(0 <= overlapRLog && overlapRLog <= 8); + if (params->ldmParams.enableLdm == ZSTD_ps_enable) { + /* In Long Range Mode, the windowLog is typically oversized. + * In which case, it's preferable to determine the jobSize + * based on chainLog instead. + * Then, ovLog becomes a fraction of the jobSize, rather than windowSize */ + ovLog = MIN(params->cParams.windowLog, ZSTDMT_computeTargetJobLog(params) - 2) + - overlapRLog; + } + assert(0 <= ovLog && ovLog <= ZSTD_WINDOWLOG_MAX); + DEBUGLOG(4, "overlapLog : %i", params->overlapLog); + DEBUGLOG(4, "overlap size : %i", 1 << ovLog); + return (ovLog==0) ? 0 : (size_t)1 << ovLog; +} + +/* ====================================== */ +/* ======= Streaming API ======= */ +/* ====================================== */ + +size_t ZSTDMT_initCStream_internal( + ZSTDMT_CCtx* mtctx, + const void* dict, size_t dictSize, ZSTD_dictContentType_e dictContentType, + const ZSTD_CDict* cdict, ZSTD_CCtx_params params, + unsigned long long pledgedSrcSize) +{ + DEBUGLOG(4, "ZSTDMT_initCStream_internal (pledgedSrcSize=%u, nbWorkers=%u, cctxPool=%u)", + (U32)pledgedSrcSize, params.nbWorkers, mtctx->cctxPool->totalCCtx); + + /* params supposed partially fully validated at this point */ + assert(!ZSTD_isError(ZSTD_checkCParams(params.cParams))); + assert(!((dict) && (cdict))); /* either dict or cdict, not both */ + + /* init */ + if (params.nbWorkers != mtctx->params.nbWorkers) + FORWARD_IF_ERROR( ZSTDMT_resize(mtctx, params.nbWorkers) , ""); + + if (params.jobSize != 0 && params.jobSize < ZSTDMT_JOBSIZE_MIN) params.jobSize = ZSTDMT_JOBSIZE_MIN; + if (params.jobSize > (size_t)ZSTDMT_JOBSIZE_MAX) params.jobSize = (size_t)ZSTDMT_JOBSIZE_MAX; + + DEBUGLOG(4, "ZSTDMT_initCStream_internal: %u workers", params.nbWorkers); + + if (mtctx->allJobsCompleted == 0) { /* previous compression not correctly finished */ + ZSTDMT_waitForAllJobsCompleted(mtctx); + ZSTDMT_releaseAllJobResources(mtctx); + mtctx->allJobsCompleted = 1; + } + + mtctx->params = params; + mtctx->frameContentSize = pledgedSrcSize; + if (dict) { + ZSTD_freeCDict(mtctx->cdictLocal); + mtctx->cdictLocal = ZSTD_createCDict_advanced(dict, dictSize, + ZSTD_dlm_byCopy, dictContentType, /* note : a loadPrefix becomes an internal CDict */ + params.cParams, mtctx->cMem); + mtctx->cdict = mtctx->cdictLocal; + if (mtctx->cdictLocal == NULL) return ERROR(memory_allocation); + } else { + ZSTD_freeCDict(mtctx->cdictLocal); + mtctx->cdictLocal = NULL; + mtctx->cdict = cdict; + } + + mtctx->targetPrefixSize = ZSTDMT_computeOverlapSize(¶ms); + DEBUGLOG(4, "overlapLog=%i => %u KB", params.overlapLog, (U32)(mtctx->targetPrefixSize>>10)); + mtctx->targetSectionSize = params.jobSize; + if (mtctx->targetSectionSize == 0) { + mtctx->targetSectionSize = 1ULL << ZSTDMT_computeTargetJobLog(¶ms); + } + assert(mtctx->targetSectionSize <= (size_t)ZSTDMT_JOBSIZE_MAX); + + if (params.rsyncable) { + /* Aim for the targetsectionSize as the average job size. */ + U32 const jobSizeKB = (U32)(mtctx->targetSectionSize >> 10); + U32 const rsyncBits = (assert(jobSizeKB >= 1), ZSTD_highbit32(jobSizeKB) + 10); + /* We refuse to create jobs < RSYNC_MIN_BLOCK_SIZE bytes, so make sure our + * expected job size is at least 4x larger. */ + assert(rsyncBits >= RSYNC_MIN_BLOCK_LOG + 2); + DEBUGLOG(4, "rsyncLog = %u", rsyncBits); + mtctx->rsync.hash = 0; + mtctx->rsync.hitMask = (1ULL << rsyncBits) - 1; + mtctx->rsync.primePower = ZSTD_rollingHash_primePower(RSYNC_LENGTH); + } + if (mtctx->targetSectionSize < mtctx->targetPrefixSize) mtctx->targetSectionSize = mtctx->targetPrefixSize; /* job size must be >= overlap size */ + DEBUGLOG(4, "Job Size : %u KB (note : set to %u)", (U32)(mtctx->targetSectionSize>>10), (U32)params.jobSize); + DEBUGLOG(4, "inBuff Size : %u KB", (U32)(mtctx->targetSectionSize>>10)); + ZSTDMT_setBufferSize(mtctx->bufPool, ZSTD_compressBound(mtctx->targetSectionSize)); + { + /* If ldm is enabled we need windowSize space. */ + size_t const windowSize = mtctx->params.ldmParams.enableLdm == ZSTD_ps_enable ? (1U << mtctx->params.cParams.windowLog) : 0; + /* Two buffers of slack, plus extra space for the overlap + * This is the minimum slack that LDM works with. One extra because + * flush might waste up to targetSectionSize-1 bytes. Another extra + * for the overlap (if > 0), then one to fill which doesn't overlap + * with the LDM window. + */ + size_t const nbSlackBuffers = 2 + (mtctx->targetPrefixSize > 0); + size_t const slackSize = mtctx->targetSectionSize * nbSlackBuffers; + /* Compute the total size, and always have enough slack */ + size_t const nbWorkers = MAX(mtctx->params.nbWorkers, 1); + size_t const sectionsSize = mtctx->targetSectionSize * nbWorkers; + size_t const capacity = MAX(windowSize, sectionsSize) + slackSize; + if (mtctx->roundBuff.capacity < capacity) { + if (mtctx->roundBuff.buffer) + ZSTD_customFree(mtctx->roundBuff.buffer, mtctx->cMem); + mtctx->roundBuff.buffer = (BYTE*)ZSTD_customMalloc(capacity, mtctx->cMem); + if (mtctx->roundBuff.buffer == NULL) { + mtctx->roundBuff.capacity = 0; + return ERROR(memory_allocation); + } + mtctx->roundBuff.capacity = capacity; + } + } + DEBUGLOG(4, "roundBuff capacity : %u KB", (U32)(mtctx->roundBuff.capacity>>10)); + mtctx->roundBuff.pos = 0; + mtctx->inBuff.buffer = g_nullBuffer; + mtctx->inBuff.filled = 0; + mtctx->inBuff.prefix = kNullRange; + mtctx->doneJobID = 0; + mtctx->nextJobID = 0; + mtctx->frameEnded = 0; + mtctx->allJobsCompleted = 0; + mtctx->consumed = 0; + mtctx->produced = 0; + if (ZSTDMT_serialState_reset(&mtctx->serial, mtctx->seqPool, params, mtctx->targetSectionSize, + dict, dictSize, dictContentType)) + return ERROR(memory_allocation); + return 0; +} + + +/* ZSTDMT_writeLastEmptyBlock() + * Write a single empty block with an end-of-frame to finish a frame. + * Job must be created from streaming variant. + * This function is always successful if expected conditions are fulfilled. + */ +static void ZSTDMT_writeLastEmptyBlock(ZSTDMT_jobDescription* job) +{ + assert(job->lastJob == 1); + assert(job->src.size == 0); /* last job is empty -> will be simplified into a last empty block */ + assert(job->firstJob == 0); /* cannot be first job, as it also needs to create frame header */ + assert(job->dstBuff.start == NULL); /* invoked from streaming variant only (otherwise, dstBuff might be user's output) */ + job->dstBuff = ZSTDMT_getBuffer(job->bufPool); + if (job->dstBuff.start == NULL) { + job->cSize = ERROR(memory_allocation); + return; + } + assert(job->dstBuff.capacity >= ZSTD_blockHeaderSize); /* no buffer should ever be that small */ + job->src = kNullRange; + job->cSize = ZSTD_writeLastEmptyBlock(job->dstBuff.start, job->dstBuff.capacity); + assert(!ZSTD_isError(job->cSize)); + assert(job->consumed == 0); +} + +static size_t ZSTDMT_createCompressionJob(ZSTDMT_CCtx* mtctx, size_t srcSize, ZSTD_EndDirective endOp) +{ + unsigned const jobID = mtctx->nextJobID & mtctx->jobIDMask; + int const endFrame = (endOp == ZSTD_e_end); + + if (mtctx->nextJobID > mtctx->doneJobID + mtctx->jobIDMask) { + DEBUGLOG(5, "ZSTDMT_createCompressionJob: will not create new job : table is full"); + assert((mtctx->nextJobID & mtctx->jobIDMask) == (mtctx->doneJobID & mtctx->jobIDMask)); + return 0; + } + + if (!mtctx->jobReady) { + BYTE const* src = (BYTE const*)mtctx->inBuff.buffer.start; + DEBUGLOG(5, "ZSTDMT_createCompressionJob: preparing job %u to compress %u bytes with %u preload ", + mtctx->nextJobID, (U32)srcSize, (U32)mtctx->inBuff.prefix.size); + mtctx->jobs[jobID].src.start = src; + mtctx->jobs[jobID].src.size = srcSize; + assert(mtctx->inBuff.filled >= srcSize); + mtctx->jobs[jobID].prefix = mtctx->inBuff.prefix; + mtctx->jobs[jobID].consumed = 0; + mtctx->jobs[jobID].cSize = 0; + mtctx->jobs[jobID].params = mtctx->params; + mtctx->jobs[jobID].cdict = mtctx->nextJobID==0 ? mtctx->cdict : NULL; + mtctx->jobs[jobID].fullFrameSize = mtctx->frameContentSize; + mtctx->jobs[jobID].dstBuff = g_nullBuffer; + mtctx->jobs[jobID].cctxPool = mtctx->cctxPool; + mtctx->jobs[jobID].bufPool = mtctx->bufPool; + mtctx->jobs[jobID].seqPool = mtctx->seqPool; + mtctx->jobs[jobID].serial = &mtctx->serial; + mtctx->jobs[jobID].jobID = mtctx->nextJobID; + mtctx->jobs[jobID].firstJob = (mtctx->nextJobID==0); + mtctx->jobs[jobID].lastJob = endFrame; + mtctx->jobs[jobID].frameChecksumNeeded = mtctx->params.fParams.checksumFlag && endFrame && (mtctx->nextJobID>0); + mtctx->jobs[jobID].dstFlushed = 0; + + /* Update the round buffer pos and clear the input buffer to be reset */ + mtctx->roundBuff.pos += srcSize; + mtctx->inBuff.buffer = g_nullBuffer; + mtctx->inBuff.filled = 0; + /* Set the prefix */ + if (!endFrame) { + size_t const newPrefixSize = MIN(srcSize, mtctx->targetPrefixSize); + mtctx->inBuff.prefix.start = src + srcSize - newPrefixSize; + mtctx->inBuff.prefix.size = newPrefixSize; + } else { /* endFrame==1 => no need for another input buffer */ + mtctx->inBuff.prefix = kNullRange; + mtctx->frameEnded = endFrame; + if (mtctx->nextJobID == 0) { + /* single job exception : checksum is already calculated directly within worker thread */ + mtctx->params.fParams.checksumFlag = 0; + } } + + if ( (srcSize == 0) + && (mtctx->nextJobID>0)/*single job must also write frame header*/ ) { + DEBUGLOG(5, "ZSTDMT_createCompressionJob: creating a last empty block to end frame"); + assert(endOp == ZSTD_e_end); /* only possible case : need to end the frame with an empty last block */ + ZSTDMT_writeLastEmptyBlock(mtctx->jobs + jobID); + mtctx->nextJobID++; + return 0; + } + } + + DEBUGLOG(5, "ZSTDMT_createCompressionJob: posting job %u : %u bytes (end:%u, jobNb == %u (mod:%u))", + mtctx->nextJobID, + (U32)mtctx->jobs[jobID].src.size, + mtctx->jobs[jobID].lastJob, + mtctx->nextJobID, + jobID); + if (POOL_tryAdd(mtctx->factory, ZSTDMT_compressionJob, &mtctx->jobs[jobID])) { + mtctx->nextJobID++; + mtctx->jobReady = 0; + } else { + DEBUGLOG(5, "ZSTDMT_createCompressionJob: no worker available for job %u", mtctx->nextJobID); + mtctx->jobReady = 1; + } + return 0; +} + + +/*! ZSTDMT_flushProduced() : + * flush whatever data has been produced but not yet flushed in current job. + * move to next job if current one is fully flushed. + * `output` : `pos` will be updated with amount of data flushed . + * `blockToFlush` : if >0, the function will block and wait if there is no data available to flush . + * @return : amount of data remaining within internal buffer, 0 if no more, 1 if unknown but > 0, or an error code */ +static size_t ZSTDMT_flushProduced(ZSTDMT_CCtx* mtctx, ZSTD_outBuffer* output, unsigned blockToFlush, ZSTD_EndDirective end) +{ + unsigned const wJobID = mtctx->doneJobID & mtctx->jobIDMask; + DEBUGLOG(5, "ZSTDMT_flushProduced (blocking:%u , job %u <= %u)", + blockToFlush, mtctx->doneJobID, mtctx->nextJobID); + assert(output->size >= output->pos); + + ZSTD_PTHREAD_MUTEX_LOCK(&mtctx->jobs[wJobID].job_mutex); + if ( blockToFlush + && (mtctx->doneJobID < mtctx->nextJobID) ) { + assert(mtctx->jobs[wJobID].dstFlushed <= mtctx->jobs[wJobID].cSize); + while (mtctx->jobs[wJobID].dstFlushed == mtctx->jobs[wJobID].cSize) { /* nothing to flush */ + if (mtctx->jobs[wJobID].consumed == mtctx->jobs[wJobID].src.size) { + DEBUGLOG(5, "job %u is completely consumed (%u == %u) => don't wait for cond, there will be none", + mtctx->doneJobID, (U32)mtctx->jobs[wJobID].consumed, (U32)mtctx->jobs[wJobID].src.size); + break; + } + DEBUGLOG(5, "waiting for something to flush from job %u (currently flushed: %u bytes)", + mtctx->doneJobID, (U32)mtctx->jobs[wJobID].dstFlushed); + ZSTD_pthread_cond_wait(&mtctx->jobs[wJobID].job_cond, &mtctx->jobs[wJobID].job_mutex); /* block when nothing to flush but some to come */ + } } + + /* try to flush something */ + { size_t cSize = mtctx->jobs[wJobID].cSize; /* shared */ + size_t const srcConsumed = mtctx->jobs[wJobID].consumed; /* shared */ + size_t const srcSize = mtctx->jobs[wJobID].src.size; /* read-only, could be done after mutex lock, but no-declaration-after-statement */ + ZSTD_pthread_mutex_unlock(&mtctx->jobs[wJobID].job_mutex); + if (ZSTD_isError(cSize)) { + DEBUGLOG(5, "ZSTDMT_flushProduced: job %u : compression error detected : %s", + mtctx->doneJobID, ZSTD_getErrorName(cSize)); + ZSTDMT_waitForAllJobsCompleted(mtctx); + ZSTDMT_releaseAllJobResources(mtctx); + return cSize; + } + /* add frame checksum if necessary (can only happen once) */ + assert(srcConsumed <= srcSize); + if ( (srcConsumed == srcSize) /* job completed -> worker no longer active */ + && mtctx->jobs[wJobID].frameChecksumNeeded ) { + U32 const checksum = (U32)XXH64_digest(&mtctx->serial.xxhState); + DEBUGLOG(4, "ZSTDMT_flushProduced: writing checksum : %08X \n", checksum); + MEM_writeLE32((char*)mtctx->jobs[wJobID].dstBuff.start + mtctx->jobs[wJobID].cSize, checksum); + cSize += 4; + mtctx->jobs[wJobID].cSize += 4; /* can write this shared value, as worker is no longer active */ + mtctx->jobs[wJobID].frameChecksumNeeded = 0; + } + + if (cSize > 0) { /* compression is ongoing or completed */ + size_t const toFlush = MIN(cSize - mtctx->jobs[wJobID].dstFlushed, output->size - output->pos); + DEBUGLOG(5, "ZSTDMT_flushProduced: Flushing %u bytes from job %u (completion:%u/%u, generated:%u)", + (U32)toFlush, mtctx->doneJobID, (U32)srcConsumed, (U32)srcSize, (U32)cSize); + assert(mtctx->doneJobID < mtctx->nextJobID); + assert(cSize >= mtctx->jobs[wJobID].dstFlushed); + assert(mtctx->jobs[wJobID].dstBuff.start != NULL); + if (toFlush > 0) { + ZSTD_memcpy((char*)output->dst + output->pos, + (const char*)mtctx->jobs[wJobID].dstBuff.start + mtctx->jobs[wJobID].dstFlushed, + toFlush); + } + output->pos += toFlush; + mtctx->jobs[wJobID].dstFlushed += toFlush; /* can write : this value is only used by mtctx */ + + if ( (srcConsumed == srcSize) /* job is completed */ + && (mtctx->jobs[wJobID].dstFlushed == cSize) ) { /* output buffer fully flushed => free this job position */ + DEBUGLOG(5, "Job %u completed (%u bytes), moving to next one", + mtctx->doneJobID, (U32)mtctx->jobs[wJobID].dstFlushed); + ZSTDMT_releaseBuffer(mtctx->bufPool, mtctx->jobs[wJobID].dstBuff); + DEBUGLOG(5, "dstBuffer released"); + mtctx->jobs[wJobID].dstBuff = g_nullBuffer; + mtctx->jobs[wJobID].cSize = 0; /* ensure this job slot is considered "not started" in future check */ + mtctx->consumed += srcSize; + mtctx->produced += cSize; + mtctx->doneJobID++; + } } + + /* return value : how many bytes left in buffer ; fake it to 1 when unknown but >0 */ + if (cSize > mtctx->jobs[wJobID].dstFlushed) return (cSize - mtctx->jobs[wJobID].dstFlushed); + if (srcSize > srcConsumed) return 1; /* current job not completely compressed */ + } + if (mtctx->doneJobID < mtctx->nextJobID) return 1; /* some more jobs ongoing */ + if (mtctx->jobReady) return 1; /* one job is ready to push, just not yet in the list */ + if (mtctx->inBuff.filled > 0) return 1; /* input is not empty, and still needs to be converted into a job */ + mtctx->allJobsCompleted = mtctx->frameEnded; /* all jobs are entirely flushed => if this one is last one, frame is completed */ + if (end == ZSTD_e_end) return !mtctx->frameEnded; /* for ZSTD_e_end, question becomes : is frame completed ? instead of : are internal buffers fully flushed ? */ + return 0; /* internal buffers fully flushed */ +} + +/** + * Returns the range of data used by the earliest job that is not yet complete. + * If the data of the first job is broken up into two segments, we cover both + * sections. + */ +static range_t ZSTDMT_getInputDataInUse(ZSTDMT_CCtx* mtctx) +{ + unsigned const firstJobID = mtctx->doneJobID; + unsigned const lastJobID = mtctx->nextJobID; + unsigned jobID; + + for (jobID = firstJobID; jobID < lastJobID; ++jobID) { + unsigned const wJobID = jobID & mtctx->jobIDMask; + size_t consumed; + + ZSTD_PTHREAD_MUTEX_LOCK(&mtctx->jobs[wJobID].job_mutex); + consumed = mtctx->jobs[wJobID].consumed; + ZSTD_pthread_mutex_unlock(&mtctx->jobs[wJobID].job_mutex); + + if (consumed < mtctx->jobs[wJobID].src.size) { + range_t range = mtctx->jobs[wJobID].prefix; + if (range.size == 0) { + /* Empty prefix */ + range = mtctx->jobs[wJobID].src; + } + /* Job source in multiple segments not supported yet */ + assert(range.start <= mtctx->jobs[wJobID].src.start); + return range; + } + } + return kNullRange; +} + +/** + * Returns non-zero iff buffer and range overlap. + */ +static int ZSTDMT_isOverlapped(buffer_t buffer, range_t range) +{ + BYTE const* const bufferStart = (BYTE const*)buffer.start; + BYTE const* const rangeStart = (BYTE const*)range.start; + + if (rangeStart == NULL || bufferStart == NULL) + return 0; + + { + BYTE const* const bufferEnd = bufferStart + buffer.capacity; + BYTE const* const rangeEnd = rangeStart + range.size; + + /* Empty ranges cannot overlap */ + if (bufferStart == bufferEnd || rangeStart == rangeEnd) + return 0; + + return bufferStart < rangeEnd && rangeStart < bufferEnd; + } +} + +static int ZSTDMT_doesOverlapWindow(buffer_t buffer, ZSTD_window_t window) +{ + range_t extDict; + range_t prefix; + + DEBUGLOG(5, "ZSTDMT_doesOverlapWindow"); + extDict.start = window.dictBase + window.lowLimit; + extDict.size = window.dictLimit - window.lowLimit; + + prefix.start = window.base + window.dictLimit; + prefix.size = window.nextSrc - (window.base + window.dictLimit); + DEBUGLOG(5, "extDict [0x%zx, 0x%zx)", + (size_t)extDict.start, + (size_t)extDict.start + extDict.size); + DEBUGLOG(5, "prefix [0x%zx, 0x%zx)", + (size_t)prefix.start, + (size_t)prefix.start + prefix.size); + + return ZSTDMT_isOverlapped(buffer, extDict) + || ZSTDMT_isOverlapped(buffer, prefix); +} + +static void ZSTDMT_waitForLdmComplete(ZSTDMT_CCtx* mtctx, buffer_t buffer) +{ + if (mtctx->params.ldmParams.enableLdm == ZSTD_ps_enable) { + ZSTD_pthread_mutex_t* mutex = &mtctx->serial.ldmWindowMutex; + DEBUGLOG(5, "ZSTDMT_waitForLdmComplete"); + DEBUGLOG(5, "source [0x%zx, 0x%zx)", + (size_t)buffer.start, + (size_t)buffer.start + buffer.capacity); + ZSTD_PTHREAD_MUTEX_LOCK(mutex); + while (ZSTDMT_doesOverlapWindow(buffer, mtctx->serial.ldmWindow)) { + DEBUGLOG(5, "Waiting for LDM to finish..."); + ZSTD_pthread_cond_wait(&mtctx->serial.ldmWindowCond, mutex); + } + DEBUGLOG(6, "Done waiting for LDM to finish"); + ZSTD_pthread_mutex_unlock(mutex); + } +} + +/** + * Attempts to set the inBuff to the next section to fill. + * If any part of the new section is still in use we give up. + * Returns non-zero if the buffer is filled. + */ +static int ZSTDMT_tryGetInputRange(ZSTDMT_CCtx* mtctx) +{ + range_t const inUse = ZSTDMT_getInputDataInUse(mtctx); + size_t const spaceLeft = mtctx->roundBuff.capacity - mtctx->roundBuff.pos; + size_t const target = mtctx->targetSectionSize; + buffer_t buffer; + + DEBUGLOG(5, "ZSTDMT_tryGetInputRange"); + assert(mtctx->inBuff.buffer.start == NULL); + assert(mtctx->roundBuff.capacity >= target); + + if (spaceLeft < target) { + /* ZSTD_invalidateRepCodes() doesn't work for extDict variants. + * Simply copy the prefix to the beginning in that case. + */ + BYTE* const start = (BYTE*)mtctx->roundBuff.buffer; + size_t const prefixSize = mtctx->inBuff.prefix.size; + + buffer.start = start; + buffer.capacity = prefixSize; + if (ZSTDMT_isOverlapped(buffer, inUse)) { + DEBUGLOG(5, "Waiting for buffer..."); + return 0; + } + ZSTDMT_waitForLdmComplete(mtctx, buffer); + ZSTD_memmove(start, mtctx->inBuff.prefix.start, prefixSize); + mtctx->inBuff.prefix.start = start; + mtctx->roundBuff.pos = prefixSize; + } + buffer.start = mtctx->roundBuff.buffer + mtctx->roundBuff.pos; + buffer.capacity = target; + + if (ZSTDMT_isOverlapped(buffer, inUse)) { + DEBUGLOG(5, "Waiting for buffer..."); + return 0; + } + assert(!ZSTDMT_isOverlapped(buffer, mtctx->inBuff.prefix)); + + ZSTDMT_waitForLdmComplete(mtctx, buffer); + + DEBUGLOG(5, "Using prefix range [%zx, %zx)", + (size_t)mtctx->inBuff.prefix.start, + (size_t)mtctx->inBuff.prefix.start + mtctx->inBuff.prefix.size); + DEBUGLOG(5, "Using source range [%zx, %zx)", + (size_t)buffer.start, + (size_t)buffer.start + buffer.capacity); + + + mtctx->inBuff.buffer = buffer; + mtctx->inBuff.filled = 0; + assert(mtctx->roundBuff.pos + buffer.capacity <= mtctx->roundBuff.capacity); + return 1; +} + +typedef struct { + size_t toLoad; /* The number of bytes to load from the input. */ + int flush; /* Boolean declaring if we must flush because we found a synchronization point. */ +} syncPoint_t; + +/** + * Searches through the input for a synchronization point. If one is found, we + * will instruct the caller to flush, and return the number of bytes to load. + * Otherwise, we will load as many bytes as possible and instruct the caller + * to continue as normal. + */ +static syncPoint_t +findSynchronizationPoint(ZSTDMT_CCtx const* mtctx, ZSTD_inBuffer const input) +{ + BYTE const* const istart = (BYTE const*)input.src + input.pos; + U64 const primePower = mtctx->rsync.primePower; + U64 const hitMask = mtctx->rsync.hitMask; + + syncPoint_t syncPoint; + U64 hash; + BYTE const* prev; + size_t pos; + + syncPoint.toLoad = MIN(input.size - input.pos, mtctx->targetSectionSize - mtctx->inBuff.filled); + syncPoint.flush = 0; + if (!mtctx->params.rsyncable) + /* Rsync is disabled. */ + return syncPoint; + if (mtctx->inBuff.filled + input.size - input.pos < RSYNC_MIN_BLOCK_SIZE) + /* We don't emit synchronization points if it would produce too small blocks. + * We don't have enough input to find a synchronization point, so don't look. + */ + return syncPoint; + if (mtctx->inBuff.filled + syncPoint.toLoad < RSYNC_LENGTH) + /* Not enough to compute the hash. + * We will miss any synchronization points in this RSYNC_LENGTH byte + * window. However, since it depends only in the internal buffers, if the + * state is already synchronized, we will remain synchronized. + * Additionally, the probability that we miss a synchronization point is + * low: RSYNC_LENGTH / targetSectionSize. + */ + return syncPoint; + /* Initialize the loop variables. */ + if (mtctx->inBuff.filled < RSYNC_MIN_BLOCK_SIZE) { + /* We don't need to scan the first RSYNC_MIN_BLOCK_SIZE positions + * because they can't possibly be a sync point. So we can start + * part way through the input buffer. + */ + pos = RSYNC_MIN_BLOCK_SIZE - mtctx->inBuff.filled; + if (pos >= RSYNC_LENGTH) { + prev = istart + pos - RSYNC_LENGTH; + hash = ZSTD_rollingHash_compute(prev, RSYNC_LENGTH); + } else { + assert(mtctx->inBuff.filled >= RSYNC_LENGTH); + prev = (BYTE const*)mtctx->inBuff.buffer.start + mtctx->inBuff.filled - RSYNC_LENGTH; + hash = ZSTD_rollingHash_compute(prev + pos, (RSYNC_LENGTH - pos)); + hash = ZSTD_rollingHash_append(hash, istart, pos); + } + } else { + /* We have enough bytes buffered to initialize the hash, + * and have processed enough bytes to find a sync point. + * Start scanning at the beginning of the input. + */ + assert(mtctx->inBuff.filled >= RSYNC_MIN_BLOCK_SIZE); + assert(RSYNC_MIN_BLOCK_SIZE >= RSYNC_LENGTH); + pos = 0; + prev = (BYTE const*)mtctx->inBuff.buffer.start + mtctx->inBuff.filled - RSYNC_LENGTH; + hash = ZSTD_rollingHash_compute(prev, RSYNC_LENGTH); + if ((hash & hitMask) == hitMask) { + /* We're already at a sync point so don't load any more until + * we're able to flush this sync point. + * This likely happened because the job table was full so we + * couldn't add our job. + */ + syncPoint.toLoad = 0; + syncPoint.flush = 1; + return syncPoint; + } + } + /* Starting with the hash of the previous RSYNC_LENGTH bytes, roll + * through the input. If we hit a synchronization point, then cut the + * job off, and tell the compressor to flush the job. Otherwise, load + * all the bytes and continue as normal. + * If we go too long without a synchronization point (targetSectionSize) + * then a block will be emitted anyways, but this is okay, since if we + * are already synchronized we will remain synchronized. + */ + assert(pos < RSYNC_LENGTH || ZSTD_rollingHash_compute(istart + pos - RSYNC_LENGTH, RSYNC_LENGTH) == hash); + for (; pos < syncPoint.toLoad; ++pos) { + BYTE const toRemove = pos < RSYNC_LENGTH ? prev[pos] : istart[pos - RSYNC_LENGTH]; + /* This assert is very expensive, and Debian compiles with asserts enabled. + * So disable it for now. We can get similar coverage by checking it at the + * beginning & end of the loop. + * assert(pos < RSYNC_LENGTH || ZSTD_rollingHash_compute(istart + pos - RSYNC_LENGTH, RSYNC_LENGTH) == hash); + */ + hash = ZSTD_rollingHash_rotate(hash, toRemove, istart[pos], primePower); + assert(mtctx->inBuff.filled + pos >= RSYNC_MIN_BLOCK_SIZE); + if ((hash & hitMask) == hitMask) { + syncPoint.toLoad = pos + 1; + syncPoint.flush = 1; + ++pos; /* for assert */ + break; + } + } + assert(pos < RSYNC_LENGTH || ZSTD_rollingHash_compute(istart + pos - RSYNC_LENGTH, RSYNC_LENGTH) == hash); + return syncPoint; +} + +size_t ZSTDMT_nextInputSizeHint(const ZSTDMT_CCtx* mtctx) +{ + size_t hintInSize = mtctx->targetSectionSize - mtctx->inBuff.filled; + if (hintInSize==0) hintInSize = mtctx->targetSectionSize; + return hintInSize; +} + +/** ZSTDMT_compressStream_generic() : + * internal use only - exposed to be invoked from zstd_compress.c + * assumption : output and input are valid (pos <= size) + * @return : minimum amount of data remaining to flush, 0 if none */ +size_t ZSTDMT_compressStream_generic(ZSTDMT_CCtx* mtctx, + ZSTD_outBuffer* output, + ZSTD_inBuffer* input, + ZSTD_EndDirective endOp) +{ + unsigned forwardInputProgress = 0; + DEBUGLOG(5, "ZSTDMT_compressStream_generic (endOp=%u, srcSize=%u)", + (U32)endOp, (U32)(input->size - input->pos)); + assert(output->pos <= output->size); + assert(input->pos <= input->size); + + if ((mtctx->frameEnded) && (endOp==ZSTD_e_continue)) { + /* current frame being ended. Only flush/end are allowed */ + return ERROR(stage_wrong); + } + + /* fill input buffer */ + if ( (!mtctx->jobReady) + && (input->size > input->pos) ) { /* support NULL input */ + if (mtctx->inBuff.buffer.start == NULL) { + assert(mtctx->inBuff.filled == 0); /* Can't fill an empty buffer */ + if (!ZSTDMT_tryGetInputRange(mtctx)) { + /* It is only possible for this operation to fail if there are + * still compression jobs ongoing. + */ + DEBUGLOG(5, "ZSTDMT_tryGetInputRange failed"); + assert(mtctx->doneJobID != mtctx->nextJobID); + } else + DEBUGLOG(5, "ZSTDMT_tryGetInputRange completed successfully : mtctx->inBuff.buffer.start = %p", mtctx->inBuff.buffer.start); + } + if (mtctx->inBuff.buffer.start != NULL) { + syncPoint_t const syncPoint = findSynchronizationPoint(mtctx, *input); + if (syncPoint.flush && endOp == ZSTD_e_continue) { + endOp = ZSTD_e_flush; + } + assert(mtctx->inBuff.buffer.capacity >= mtctx->targetSectionSize); + DEBUGLOG(5, "ZSTDMT_compressStream_generic: adding %u bytes on top of %u to buffer of size %u", + (U32)syncPoint.toLoad, (U32)mtctx->inBuff.filled, (U32)mtctx->targetSectionSize); + ZSTD_memcpy((char*)mtctx->inBuff.buffer.start + mtctx->inBuff.filled, (const char*)input->src + input->pos, syncPoint.toLoad); + input->pos += syncPoint.toLoad; + mtctx->inBuff.filled += syncPoint.toLoad; + forwardInputProgress = syncPoint.toLoad>0; + } + } + if ((input->pos < input->size) && (endOp == ZSTD_e_end)) { + /* Can't end yet because the input is not fully consumed. + * We are in one of these cases: + * - mtctx->inBuff is NULL & empty: we couldn't get an input buffer so don't create a new job. + * - We filled the input buffer: flush this job but don't end the frame. + * - We hit a synchronization point: flush this job but don't end the frame. + */ + assert(mtctx->inBuff.filled == 0 || mtctx->inBuff.filled == mtctx->targetSectionSize || mtctx->params.rsyncable); + endOp = ZSTD_e_flush; + } + + if ( (mtctx->jobReady) + || (mtctx->inBuff.filled >= mtctx->targetSectionSize) /* filled enough : let's compress */ + || ((endOp != ZSTD_e_continue) && (mtctx->inBuff.filled > 0)) /* something to flush : let's go */ + || ((endOp == ZSTD_e_end) && (!mtctx->frameEnded)) ) { /* must finish the frame with a zero-size block */ + size_t const jobSize = mtctx->inBuff.filled; + assert(mtctx->inBuff.filled <= mtctx->targetSectionSize); + FORWARD_IF_ERROR( ZSTDMT_createCompressionJob(mtctx, jobSize, endOp) , ""); + } + + /* check for potential compressed data ready to be flushed */ + { size_t const remainingToFlush = ZSTDMT_flushProduced(mtctx, output, !forwardInputProgress, endOp); /* block if there was no forward input progress */ + if (input->pos < input->size) return MAX(remainingToFlush, 1); /* input not consumed : do not end flush yet */ + DEBUGLOG(5, "end of ZSTDMT_compressStream_generic: remainingToFlush = %u", (U32)remainingToFlush); + return remainingToFlush; + } +} diff --git a/deps/zstd/lib/compress/zstdmt_compress.h b/deps/zstd/lib/compress/zstdmt_compress.h new file mode 100644 index 00000000000000..ed4dc0e99df3a7 --- /dev/null +++ b/deps/zstd/lib/compress/zstdmt_compress.h @@ -0,0 +1,113 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + #ifndef ZSTDMT_COMPRESS_H + #define ZSTDMT_COMPRESS_H + + #if defined (__cplusplus) + extern "C" { + #endif + + +/* Note : This is an internal API. + * These APIs used to be exposed with ZSTDLIB_API, + * because it used to be the only way to invoke MT compression. + * Now, you must use ZSTD_compress2 and ZSTD_compressStream2() instead. + * + * This API requires ZSTD_MULTITHREAD to be defined during compilation, + * otherwise ZSTDMT_createCCtx*() will fail. + */ + +/* === Dependencies === */ +#include "../common/zstd_deps.h" /* size_t */ +#define ZSTD_STATIC_LINKING_ONLY /* ZSTD_parameters */ +#include "../zstd.h" /* ZSTD_inBuffer, ZSTD_outBuffer, ZSTDLIB_API */ + + +/* === Constants === */ +#ifndef ZSTDMT_NBWORKERS_MAX /* a different value can be selected at compile time */ +# define ZSTDMT_NBWORKERS_MAX ((sizeof(void*)==4) /*32-bit*/ ? 64 : 256) +#endif +#ifndef ZSTDMT_JOBSIZE_MIN /* a different value can be selected at compile time */ +# define ZSTDMT_JOBSIZE_MIN (512 KB) +#endif +#define ZSTDMT_JOBLOG_MAX (MEM_32bits() ? 29 : 30) +#define ZSTDMT_JOBSIZE_MAX (MEM_32bits() ? (512 MB) : (1024 MB)) + + +/* ======================================================== + * === Private interface, for use by ZSTD_compress.c === + * === Not exposed in libzstd. Never invoke directly === + * ======================================================== */ + +/* === Memory management === */ +typedef struct ZSTDMT_CCtx_s ZSTDMT_CCtx; +/* Requires ZSTD_MULTITHREAD to be defined during compilation, otherwise it will return NULL. */ +ZSTDMT_CCtx* ZSTDMT_createCCtx_advanced(unsigned nbWorkers, + ZSTD_customMem cMem, + ZSTD_threadPool *pool); +size_t ZSTDMT_freeCCtx(ZSTDMT_CCtx* mtctx); + +size_t ZSTDMT_sizeof_CCtx(ZSTDMT_CCtx* mtctx); + +/* === Streaming functions === */ + +size_t ZSTDMT_nextInputSizeHint(const ZSTDMT_CCtx* mtctx); + +/*! ZSTDMT_initCStream_internal() : + * Private use only. Init streaming operation. + * expects params to be valid. + * must receive dict, or cdict, or none, but not both. + * mtctx can be freshly constructed or reused from a prior compression. + * If mtctx is reused, memory allocations from the prior compression may not be freed, + * even if they are not needed for the current compression. + * @return : 0, or an error code */ +size_t ZSTDMT_initCStream_internal(ZSTDMT_CCtx* mtctx, + const void* dict, size_t dictSize, ZSTD_dictContentType_e dictContentType, + const ZSTD_CDict* cdict, + ZSTD_CCtx_params params, unsigned long long pledgedSrcSize); + +/*! ZSTDMT_compressStream_generic() : + * Combines ZSTDMT_compressStream() with optional ZSTDMT_flushStream() or ZSTDMT_endStream() + * depending on flush directive. + * @return : minimum amount of data still to be flushed + * 0 if fully flushed + * or an error code + * note : needs to be init using any ZSTD_initCStream*() variant */ +size_t ZSTDMT_compressStream_generic(ZSTDMT_CCtx* mtctx, + ZSTD_outBuffer* output, + ZSTD_inBuffer* input, + ZSTD_EndDirective endOp); + + /*! ZSTDMT_toFlushNow() + * Tell how many bytes are ready to be flushed immediately. + * Probe the oldest active job (not yet entirely flushed) and check its output buffer. + * If return 0, it means there is no active job, + * or, it means oldest job is still active, but everything produced has been flushed so far, + * therefore flushing is limited by speed of oldest job. */ +size_t ZSTDMT_toFlushNow(ZSTDMT_CCtx* mtctx); + +/*! ZSTDMT_updateCParams_whileCompressing() : + * Updates only a selected set of compression parameters, to remain compatible with current frame. + * New parameters will be applied to next compression job. */ +void ZSTDMT_updateCParams_whileCompressing(ZSTDMT_CCtx* mtctx, const ZSTD_CCtx_params* cctxParams); + +/*! ZSTDMT_getFrameProgression(): + * tells how much data has been consumed (input) and produced (output) for current frame. + * able to count progression inside worker threads. + */ +ZSTD_frameProgression ZSTDMT_getFrameProgression(ZSTDMT_CCtx* mtctx); + + +#if defined (__cplusplus) +} +#endif + +#endif /* ZSTDMT_COMPRESS_H */ diff --git a/deps/zstd/lib/decompress/huf_decompress.c b/deps/zstd/lib/decompress/huf_decompress.c new file mode 100644 index 00000000000000..f85dd0beea060e --- /dev/null +++ b/deps/zstd/lib/decompress/huf_decompress.c @@ -0,0 +1,1944 @@ +/* ****************************************************************** + * huff0 huffman decoder, + * part of Finite State Entropy library + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * You can contact the author at : + * - FSE+HUF source repository : https://github.com/Cyan4973/FiniteStateEntropy + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. +****************************************************************** */ + +/* ************************************************************** +* Dependencies +****************************************************************/ +#include "../common/zstd_deps.h" /* ZSTD_memcpy, ZSTD_memset */ +#include "../common/compiler.h" +#include "../common/bitstream.h" /* BIT_* */ +#include "../common/fse.h" /* to compress headers */ +#include "../common/huf.h" +#include "../common/error_private.h" +#include "../common/zstd_internal.h" +#include "../common/bits.h" /* ZSTD_highbit32, ZSTD_countTrailingZeros64 */ + +/* ************************************************************** +* Constants +****************************************************************/ + +#define HUF_DECODER_FAST_TABLELOG 11 + +/* ************************************************************** +* Macros +****************************************************************/ + +#ifdef HUF_DISABLE_FAST_DECODE +# define HUF_ENABLE_FAST_DECODE 0 +#else +# define HUF_ENABLE_FAST_DECODE 1 +#endif + +/* These two optional macros force the use one way or another of the two + * Huffman decompression implementations. You can't force in both directions + * at the same time. + */ +#if defined(HUF_FORCE_DECOMPRESS_X1) && \ + defined(HUF_FORCE_DECOMPRESS_X2) +#error "Cannot force the use of the X1 and X2 decoders at the same time!" +#endif + +/* When DYNAMIC_BMI2 is enabled, fast decoders are only called when bmi2 is + * supported at runtime, so we can add the BMI2 target attribute. + * When it is disabled, we will still get BMI2 if it is enabled statically. + */ +#if DYNAMIC_BMI2 +# define HUF_FAST_BMI2_ATTRS BMI2_TARGET_ATTRIBUTE +#else +# define HUF_FAST_BMI2_ATTRS +#endif + +#ifdef __cplusplus +# define HUF_EXTERN_C extern "C" +#else +# define HUF_EXTERN_C +#endif +#define HUF_ASM_DECL HUF_EXTERN_C + +#if DYNAMIC_BMI2 +# define HUF_NEED_BMI2_FUNCTION 1 +#else +# define HUF_NEED_BMI2_FUNCTION 0 +#endif + +/* ************************************************************** +* Error Management +****************************************************************/ +#define HUF_isError ERR_isError + + +/* ************************************************************** +* Byte alignment for workSpace management +****************************************************************/ +#define HUF_ALIGN(x, a) HUF_ALIGN_MASK((x), (a) - 1) +#define HUF_ALIGN_MASK(x, mask) (((x) + (mask)) & ~(mask)) + + +/* ************************************************************** +* BMI2 Variant Wrappers +****************************************************************/ +typedef size_t (*HUF_DecompressUsingDTableFn)(void *dst, size_t dstSize, + const void *cSrc, + size_t cSrcSize, + const HUF_DTable *DTable); + +#if DYNAMIC_BMI2 + +#define HUF_DGEN(fn) \ + \ + static size_t fn##_default( \ + void* dst, size_t dstSize, \ + const void* cSrc, size_t cSrcSize, \ + const HUF_DTable* DTable) \ + { \ + return fn##_body(dst, dstSize, cSrc, cSrcSize, DTable); \ + } \ + \ + static BMI2_TARGET_ATTRIBUTE size_t fn##_bmi2( \ + void* dst, size_t dstSize, \ + const void* cSrc, size_t cSrcSize, \ + const HUF_DTable* DTable) \ + { \ + return fn##_body(dst, dstSize, cSrc, cSrcSize, DTable); \ + } \ + \ + static size_t fn(void* dst, size_t dstSize, void const* cSrc, \ + size_t cSrcSize, HUF_DTable const* DTable, int flags) \ + { \ + if (flags & HUF_flags_bmi2) { \ + return fn##_bmi2(dst, dstSize, cSrc, cSrcSize, DTable); \ + } \ + return fn##_default(dst, dstSize, cSrc, cSrcSize, DTable); \ + } + +#else + +#define HUF_DGEN(fn) \ + static size_t fn(void* dst, size_t dstSize, void const* cSrc, \ + size_t cSrcSize, HUF_DTable const* DTable, int flags) \ + { \ + (void)flags; \ + return fn##_body(dst, dstSize, cSrc, cSrcSize, DTable); \ + } + +#endif + + +/*-***************************/ +/* generic DTableDesc */ +/*-***************************/ +typedef struct { BYTE maxTableLog; BYTE tableType; BYTE tableLog; BYTE reserved; } DTableDesc; + +static DTableDesc HUF_getDTableDesc(const HUF_DTable* table) +{ + DTableDesc dtd; + ZSTD_memcpy(&dtd, table, sizeof(dtd)); + return dtd; +} + +static size_t HUF_initFastDStream(BYTE const* ip) { + BYTE const lastByte = ip[7]; + size_t const bitsConsumed = lastByte ? 8 - ZSTD_highbit32(lastByte) : 0; + size_t const value = MEM_readLEST(ip) | 1; + assert(bitsConsumed <= 8); + assert(sizeof(size_t) == 8); + return value << bitsConsumed; +} + + +/** + * The input/output arguments to the Huffman fast decoding loop: + * + * ip [in/out] - The input pointers, must be updated to reflect what is consumed. + * op [in/out] - The output pointers, must be updated to reflect what is written. + * bits [in/out] - The bitstream containers, must be updated to reflect the current state. + * dt [in] - The decoding table. + * ilowest [in] - The beginning of the valid range of the input. Decoders may read + * down to this pointer. It may be below iend[0]. + * oend [in] - The end of the output stream. op[3] must not cross oend. + * iend [in] - The end of each input stream. ip[i] may cross iend[i], + * as long as it is above ilowest, but that indicates corruption. + */ +typedef struct { + BYTE const* ip[4]; + BYTE* op[4]; + U64 bits[4]; + void const* dt; + BYTE const* ilowest; + BYTE* oend; + BYTE const* iend[4]; +} HUF_DecompressFastArgs; + +typedef void (*HUF_DecompressFastLoopFn)(HUF_DecompressFastArgs*); + +/** + * Initializes args for the fast decoding loop. + * @returns 1 on success + * 0 if the fallback implementation should be used. + * Or an error code on failure. + */ +static size_t HUF_DecompressFastArgs_init(HUF_DecompressFastArgs* args, void* dst, size_t dstSize, void const* src, size_t srcSize, const HUF_DTable* DTable) +{ + void const* dt = DTable + 1; + U32 const dtLog = HUF_getDTableDesc(DTable).tableLog; + + const BYTE* const istart = (const BYTE*)src; + + BYTE* const oend = ZSTD_maybeNullPtrAdd((BYTE*)dst, dstSize); + + /* The fast decoding loop assumes 64-bit little-endian. + * This condition is false on x32. + */ + if (!MEM_isLittleEndian() || MEM_32bits()) + return 0; + + /* Avoid nullptr addition */ + if (dstSize == 0) + return 0; + assert(dst != NULL); + + /* strict minimum : jump table + 1 byte per stream */ + if (srcSize < 10) + return ERROR(corruption_detected); + + /* Must have at least 8 bytes per stream because we don't handle initializing smaller bit containers. + * If table log is not correct at this point, fallback to the old decoder. + * On small inputs we don't have enough data to trigger the fast loop, so use the old decoder. + */ + if (dtLog != HUF_DECODER_FAST_TABLELOG) + return 0; + + /* Read the jump table. */ + { + size_t const length1 = MEM_readLE16(istart); + size_t const length2 = MEM_readLE16(istart+2); + size_t const length3 = MEM_readLE16(istart+4); + size_t const length4 = srcSize - (length1 + length2 + length3 + 6); + args->iend[0] = istart + 6; /* jumpTable */ + args->iend[1] = args->iend[0] + length1; + args->iend[2] = args->iend[1] + length2; + args->iend[3] = args->iend[2] + length3; + + /* HUF_initFastDStream() requires this, and this small of an input + * won't benefit from the ASM loop anyways. + */ + if (length1 < 8 || length2 < 8 || length3 < 8 || length4 < 8) + return 0; + if (length4 > srcSize) return ERROR(corruption_detected); /* overflow */ + } + /* ip[] contains the position that is currently loaded into bits[]. */ + args->ip[0] = args->iend[1] - sizeof(U64); + args->ip[1] = args->iend[2] - sizeof(U64); + args->ip[2] = args->iend[3] - sizeof(U64); + args->ip[3] = (BYTE const*)src + srcSize - sizeof(U64); + + /* op[] contains the output pointers. */ + args->op[0] = (BYTE*)dst; + args->op[1] = args->op[0] + (dstSize+3)/4; + args->op[2] = args->op[1] + (dstSize+3)/4; + args->op[3] = args->op[2] + (dstSize+3)/4; + + /* No point to call the ASM loop for tiny outputs. */ + if (args->op[3] >= oend) + return 0; + + /* bits[] is the bit container. + * It is read from the MSB down to the LSB. + * It is shifted left as it is read, and zeros are + * shifted in. After the lowest valid bit a 1 is + * set, so that CountTrailingZeros(bits[]) can be used + * to count how many bits we've consumed. + */ + args->bits[0] = HUF_initFastDStream(args->ip[0]); + args->bits[1] = HUF_initFastDStream(args->ip[1]); + args->bits[2] = HUF_initFastDStream(args->ip[2]); + args->bits[3] = HUF_initFastDStream(args->ip[3]); + + /* The decoders must be sure to never read beyond ilowest. + * This is lower than iend[0], but allowing decoders to read + * down to ilowest can allow an extra iteration or two in the + * fast loop. + */ + args->ilowest = istart; + + args->oend = oend; + args->dt = dt; + + return 1; +} + +static size_t HUF_initRemainingDStream(BIT_DStream_t* bit, HUF_DecompressFastArgs const* args, int stream, BYTE* segmentEnd) +{ + /* Validate that we haven't overwritten. */ + if (args->op[stream] > segmentEnd) + return ERROR(corruption_detected); + /* Validate that we haven't read beyond iend[]. + * Note that ip[] may be < iend[] because the MSB is + * the next bit to read, and we may have consumed 100% + * of the stream, so down to iend[i] - 8 is valid. + */ + if (args->ip[stream] < args->iend[stream] - 8) + return ERROR(corruption_detected); + + /* Construct the BIT_DStream_t. */ + assert(sizeof(size_t) == 8); + bit->bitContainer = MEM_readLEST(args->ip[stream]); + bit->bitsConsumed = ZSTD_countTrailingZeros64(args->bits[stream]); + bit->start = (const char*)args->ilowest; + bit->limitPtr = bit->start + sizeof(size_t); + bit->ptr = (const char*)args->ip[stream]; + + return 0; +} + +/* Calls X(N) for each stream 0, 1, 2, 3. */ +#define HUF_4X_FOR_EACH_STREAM(X) \ + do { \ + X(0); \ + X(1); \ + X(2); \ + X(3); \ + } while (0) + +/* Calls X(N, var) for each stream 0, 1, 2, 3. */ +#define HUF_4X_FOR_EACH_STREAM_WITH_VAR(X, var) \ + do { \ + X(0, (var)); \ + X(1, (var)); \ + X(2, (var)); \ + X(3, (var)); \ + } while (0) + + +#ifndef HUF_FORCE_DECOMPRESS_X2 + +/*-***************************/ +/* single-symbol decoding */ +/*-***************************/ +typedef struct { BYTE nbBits; BYTE byte; } HUF_DEltX1; /* single-symbol decoding */ + +/** + * Packs 4 HUF_DEltX1 structs into a U64. This is used to lay down 4 entries at + * a time. + */ +static U64 HUF_DEltX1_set4(BYTE symbol, BYTE nbBits) { + U64 D4; + if (MEM_isLittleEndian()) { + D4 = (U64)((symbol << 8) + nbBits); + } else { + D4 = (U64)(symbol + (nbBits << 8)); + } + assert(D4 < (1U << 16)); + D4 *= 0x0001000100010001ULL; + return D4; +} + +/** + * Increase the tableLog to targetTableLog and rescales the stats. + * If tableLog > targetTableLog this is a no-op. + * @returns New tableLog + */ +static U32 HUF_rescaleStats(BYTE* huffWeight, U32* rankVal, U32 nbSymbols, U32 tableLog, U32 targetTableLog) +{ + if (tableLog > targetTableLog) + return tableLog; + if (tableLog < targetTableLog) { + U32 const scale = targetTableLog - tableLog; + U32 s; + /* Increase the weight for all non-zero probability symbols by scale. */ + for (s = 0; s < nbSymbols; ++s) { + huffWeight[s] += (BYTE)((huffWeight[s] == 0) ? 0 : scale); + } + /* Update rankVal to reflect the new weights. + * All weights except 0 get moved to weight + scale. + * Weights [1, scale] are empty. + */ + for (s = targetTableLog; s > scale; --s) { + rankVal[s] = rankVal[s - scale]; + } + for (s = scale; s > 0; --s) { + rankVal[s] = 0; + } + } + return targetTableLog; +} + +typedef struct { + U32 rankVal[HUF_TABLELOG_ABSOLUTEMAX + 1]; + U32 rankStart[HUF_TABLELOG_ABSOLUTEMAX + 1]; + U32 statsWksp[HUF_READ_STATS_WORKSPACE_SIZE_U32]; + BYTE symbols[HUF_SYMBOLVALUE_MAX + 1]; + BYTE huffWeight[HUF_SYMBOLVALUE_MAX + 1]; +} HUF_ReadDTableX1_Workspace; + +size_t HUF_readDTableX1_wksp(HUF_DTable* DTable, const void* src, size_t srcSize, void* workSpace, size_t wkspSize, int flags) +{ + U32 tableLog = 0; + U32 nbSymbols = 0; + size_t iSize; + void* const dtPtr = DTable + 1; + HUF_DEltX1* const dt = (HUF_DEltX1*)dtPtr; + HUF_ReadDTableX1_Workspace* wksp = (HUF_ReadDTableX1_Workspace*)workSpace; + + DEBUG_STATIC_ASSERT(HUF_DECOMPRESS_WORKSPACE_SIZE >= sizeof(*wksp)); + if (sizeof(*wksp) > wkspSize) return ERROR(tableLog_tooLarge); + + DEBUG_STATIC_ASSERT(sizeof(DTableDesc) == sizeof(HUF_DTable)); + /* ZSTD_memset(huffWeight, 0, sizeof(huffWeight)); */ /* is not necessary, even though some analyzer complain ... */ + + iSize = HUF_readStats_wksp(wksp->huffWeight, HUF_SYMBOLVALUE_MAX + 1, wksp->rankVal, &nbSymbols, &tableLog, src, srcSize, wksp->statsWksp, sizeof(wksp->statsWksp), flags); + if (HUF_isError(iSize)) return iSize; + + + /* Table header */ + { DTableDesc dtd = HUF_getDTableDesc(DTable); + U32 const maxTableLog = dtd.maxTableLog + 1; + U32 const targetTableLog = MIN(maxTableLog, HUF_DECODER_FAST_TABLELOG); + tableLog = HUF_rescaleStats(wksp->huffWeight, wksp->rankVal, nbSymbols, tableLog, targetTableLog); + if (tableLog > (U32)(dtd.maxTableLog+1)) return ERROR(tableLog_tooLarge); /* DTable too small, Huffman tree cannot fit in */ + dtd.tableType = 0; + dtd.tableLog = (BYTE)tableLog; + ZSTD_memcpy(DTable, &dtd, sizeof(dtd)); + } + + /* Compute symbols and rankStart given rankVal: + * + * rankVal already contains the number of values of each weight. + * + * symbols contains the symbols ordered by weight. First are the rankVal[0] + * weight 0 symbols, followed by the rankVal[1] weight 1 symbols, and so on. + * symbols[0] is filled (but unused) to avoid a branch. + * + * rankStart contains the offset where each rank belongs in the DTable. + * rankStart[0] is not filled because there are no entries in the table for + * weight 0. + */ + { int n; + U32 nextRankStart = 0; + int const unroll = 4; + int const nLimit = (int)nbSymbols - unroll + 1; + for (n=0; n<(int)tableLog+1; n++) { + U32 const curr = nextRankStart; + nextRankStart += wksp->rankVal[n]; + wksp->rankStart[n] = curr; + } + for (n=0; n < nLimit; n += unroll) { + int u; + for (u=0; u < unroll; ++u) { + size_t const w = wksp->huffWeight[n+u]; + wksp->symbols[wksp->rankStart[w]++] = (BYTE)(n+u); + } + } + for (; n < (int)nbSymbols; ++n) { + size_t const w = wksp->huffWeight[n]; + wksp->symbols[wksp->rankStart[w]++] = (BYTE)n; + } + } + + /* fill DTable + * We fill all entries of each weight in order. + * That way length is a constant for each iteration of the outer loop. + * We can switch based on the length to a different inner loop which is + * optimized for that particular case. + */ + { U32 w; + int symbol = wksp->rankVal[0]; + int rankStart = 0; + for (w=1; wrankVal[w]; + int const length = (1 << w) >> 1; + int uStart = rankStart; + BYTE const nbBits = (BYTE)(tableLog + 1 - w); + int s; + int u; + switch (length) { + case 1: + for (s=0; ssymbols[symbol + s]; + D.nbBits = nbBits; + dt[uStart] = D; + uStart += 1; + } + break; + case 2: + for (s=0; ssymbols[symbol + s]; + D.nbBits = nbBits; + dt[uStart+0] = D; + dt[uStart+1] = D; + uStart += 2; + } + break; + case 4: + for (s=0; ssymbols[symbol + s], nbBits); + MEM_write64(dt + uStart, D4); + uStart += 4; + } + break; + case 8: + for (s=0; ssymbols[symbol + s], nbBits); + MEM_write64(dt + uStart, D4); + MEM_write64(dt + uStart + 4, D4); + uStart += 8; + } + break; + default: + for (s=0; ssymbols[symbol + s], nbBits); + for (u=0; u < length; u += 16) { + MEM_write64(dt + uStart + u + 0, D4); + MEM_write64(dt + uStart + u + 4, D4); + MEM_write64(dt + uStart + u + 8, D4); + MEM_write64(dt + uStart + u + 12, D4); + } + assert(u == length); + uStart += length; + } + break; + } + symbol += symbolCount; + rankStart += symbolCount * length; + } + } + return iSize; +} + +FORCE_INLINE_TEMPLATE BYTE +HUF_decodeSymbolX1(BIT_DStream_t* Dstream, const HUF_DEltX1* dt, const U32 dtLog) +{ + size_t const val = BIT_lookBitsFast(Dstream, dtLog); /* note : dtLog >= 1 */ + BYTE const c = dt[val].byte; + BIT_skipBits(Dstream, dt[val].nbBits); + return c; +} + +#define HUF_DECODE_SYMBOLX1_0(ptr, DStreamPtr) \ + do { *ptr++ = HUF_decodeSymbolX1(DStreamPtr, dt, dtLog); } while (0) + +#define HUF_DECODE_SYMBOLX1_1(ptr, DStreamPtr) \ + do { \ + if (MEM_64bits() || (HUF_TABLELOG_MAX<=12)) \ + HUF_DECODE_SYMBOLX1_0(ptr, DStreamPtr); \ + } while (0) + +#define HUF_DECODE_SYMBOLX1_2(ptr, DStreamPtr) \ + do { \ + if (MEM_64bits()) \ + HUF_DECODE_SYMBOLX1_0(ptr, DStreamPtr); \ + } while (0) + +HINT_INLINE size_t +HUF_decodeStreamX1(BYTE* p, BIT_DStream_t* const bitDPtr, BYTE* const pEnd, const HUF_DEltX1* const dt, const U32 dtLog) +{ + BYTE* const pStart = p; + + /* up to 4 symbols at a time */ + if ((pEnd - p) > 3) { + while ((BIT_reloadDStream(bitDPtr) == BIT_DStream_unfinished) & (p < pEnd-3)) { + HUF_DECODE_SYMBOLX1_2(p, bitDPtr); + HUF_DECODE_SYMBOLX1_1(p, bitDPtr); + HUF_DECODE_SYMBOLX1_2(p, bitDPtr); + HUF_DECODE_SYMBOLX1_0(p, bitDPtr); + } + } else { + BIT_reloadDStream(bitDPtr); + } + + /* [0-3] symbols remaining */ + if (MEM_32bits()) + while ((BIT_reloadDStream(bitDPtr) == BIT_DStream_unfinished) & (p < pEnd)) + HUF_DECODE_SYMBOLX1_0(p, bitDPtr); + + /* no more data to retrieve from bitstream, no need to reload */ + while (p < pEnd) + HUF_DECODE_SYMBOLX1_0(p, bitDPtr); + + return (size_t)(pEnd-pStart); +} + +FORCE_INLINE_TEMPLATE size_t +HUF_decompress1X1_usingDTable_internal_body( + void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize, + const HUF_DTable* DTable) +{ + BYTE* op = (BYTE*)dst; + BYTE* const oend = ZSTD_maybeNullPtrAdd(op, dstSize); + const void* dtPtr = DTable + 1; + const HUF_DEltX1* const dt = (const HUF_DEltX1*)dtPtr; + BIT_DStream_t bitD; + DTableDesc const dtd = HUF_getDTableDesc(DTable); + U32 const dtLog = dtd.tableLog; + + CHECK_F( BIT_initDStream(&bitD, cSrc, cSrcSize) ); + + HUF_decodeStreamX1(op, &bitD, oend, dt, dtLog); + + if (!BIT_endOfDStream(&bitD)) return ERROR(corruption_detected); + + return dstSize; +} + +/* HUF_decompress4X1_usingDTable_internal_body(): + * Conditions : + * @dstSize >= 6 + */ +FORCE_INLINE_TEMPLATE size_t +HUF_decompress4X1_usingDTable_internal_body( + void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize, + const HUF_DTable* DTable) +{ + /* Check */ + if (cSrcSize < 10) return ERROR(corruption_detected); /* strict minimum : jump table + 1 byte per stream */ + if (dstSize < 6) return ERROR(corruption_detected); /* stream 4-split doesn't work */ + + { const BYTE* const istart = (const BYTE*) cSrc; + BYTE* const ostart = (BYTE*) dst; + BYTE* const oend = ostart + dstSize; + BYTE* const olimit = oend - 3; + const void* const dtPtr = DTable + 1; + const HUF_DEltX1* const dt = (const HUF_DEltX1*)dtPtr; + + /* Init */ + BIT_DStream_t bitD1; + BIT_DStream_t bitD2; + BIT_DStream_t bitD3; + BIT_DStream_t bitD4; + size_t const length1 = MEM_readLE16(istart); + size_t const length2 = MEM_readLE16(istart+2); + size_t const length3 = MEM_readLE16(istart+4); + size_t const length4 = cSrcSize - (length1 + length2 + length3 + 6); + const BYTE* const istart1 = istart + 6; /* jumpTable */ + const BYTE* const istart2 = istart1 + length1; + const BYTE* const istart3 = istart2 + length2; + const BYTE* const istart4 = istart3 + length3; + const size_t segmentSize = (dstSize+3) / 4; + BYTE* const opStart2 = ostart + segmentSize; + BYTE* const opStart3 = opStart2 + segmentSize; + BYTE* const opStart4 = opStart3 + segmentSize; + BYTE* op1 = ostart; + BYTE* op2 = opStart2; + BYTE* op3 = opStart3; + BYTE* op4 = opStart4; + DTableDesc const dtd = HUF_getDTableDesc(DTable); + U32 const dtLog = dtd.tableLog; + U32 endSignal = 1; + + if (length4 > cSrcSize) return ERROR(corruption_detected); /* overflow */ + if (opStart4 > oend) return ERROR(corruption_detected); /* overflow */ + assert(dstSize >= 6); /* validated above */ + CHECK_F( BIT_initDStream(&bitD1, istart1, length1) ); + CHECK_F( BIT_initDStream(&bitD2, istart2, length2) ); + CHECK_F( BIT_initDStream(&bitD3, istart3, length3) ); + CHECK_F( BIT_initDStream(&bitD4, istart4, length4) ); + + /* up to 16 symbols per loop (4 symbols per stream) in 64-bit mode */ + if ((size_t)(oend - op4) >= sizeof(size_t)) { + for ( ; (endSignal) & (op4 < olimit) ; ) { + HUF_DECODE_SYMBOLX1_2(op1, &bitD1); + HUF_DECODE_SYMBOLX1_2(op2, &bitD2); + HUF_DECODE_SYMBOLX1_2(op3, &bitD3); + HUF_DECODE_SYMBOLX1_2(op4, &bitD4); + HUF_DECODE_SYMBOLX1_1(op1, &bitD1); + HUF_DECODE_SYMBOLX1_1(op2, &bitD2); + HUF_DECODE_SYMBOLX1_1(op3, &bitD3); + HUF_DECODE_SYMBOLX1_1(op4, &bitD4); + HUF_DECODE_SYMBOLX1_2(op1, &bitD1); + HUF_DECODE_SYMBOLX1_2(op2, &bitD2); + HUF_DECODE_SYMBOLX1_2(op3, &bitD3); + HUF_DECODE_SYMBOLX1_2(op4, &bitD4); + HUF_DECODE_SYMBOLX1_0(op1, &bitD1); + HUF_DECODE_SYMBOLX1_0(op2, &bitD2); + HUF_DECODE_SYMBOLX1_0(op3, &bitD3); + HUF_DECODE_SYMBOLX1_0(op4, &bitD4); + endSignal &= BIT_reloadDStreamFast(&bitD1) == BIT_DStream_unfinished; + endSignal &= BIT_reloadDStreamFast(&bitD2) == BIT_DStream_unfinished; + endSignal &= BIT_reloadDStreamFast(&bitD3) == BIT_DStream_unfinished; + endSignal &= BIT_reloadDStreamFast(&bitD4) == BIT_DStream_unfinished; + } + } + + /* check corruption */ + /* note : should not be necessary : op# advance in lock step, and we control op4. + * but curiously, binary generated by gcc 7.2 & 7.3 with -mbmi2 runs faster when >=1 test is present */ + if (op1 > opStart2) return ERROR(corruption_detected); + if (op2 > opStart3) return ERROR(corruption_detected); + if (op3 > opStart4) return ERROR(corruption_detected); + /* note : op4 supposed already verified within main loop */ + + /* finish bitStreams one by one */ + HUF_decodeStreamX1(op1, &bitD1, opStart2, dt, dtLog); + HUF_decodeStreamX1(op2, &bitD2, opStart3, dt, dtLog); + HUF_decodeStreamX1(op3, &bitD3, opStart4, dt, dtLog); + HUF_decodeStreamX1(op4, &bitD4, oend, dt, dtLog); + + /* check */ + { U32 const endCheck = BIT_endOfDStream(&bitD1) & BIT_endOfDStream(&bitD2) & BIT_endOfDStream(&bitD3) & BIT_endOfDStream(&bitD4); + if (!endCheck) return ERROR(corruption_detected); } + + /* decoded size */ + return dstSize; + } +} + +#if HUF_NEED_BMI2_FUNCTION +static BMI2_TARGET_ATTRIBUTE +size_t HUF_decompress4X1_usingDTable_internal_bmi2(void* dst, size_t dstSize, void const* cSrc, + size_t cSrcSize, HUF_DTable const* DTable) { + return HUF_decompress4X1_usingDTable_internal_body(dst, dstSize, cSrc, cSrcSize, DTable); +} +#endif + +static +size_t HUF_decompress4X1_usingDTable_internal_default(void* dst, size_t dstSize, void const* cSrc, + size_t cSrcSize, HUF_DTable const* DTable) { + return HUF_decompress4X1_usingDTable_internal_body(dst, dstSize, cSrc, cSrcSize, DTable); +} + +#if ZSTD_ENABLE_ASM_X86_64_BMI2 + +HUF_ASM_DECL void HUF_decompress4X1_usingDTable_internal_fast_asm_loop(HUF_DecompressFastArgs* args) ZSTDLIB_HIDDEN; + +#endif + +static HUF_FAST_BMI2_ATTRS +void HUF_decompress4X1_usingDTable_internal_fast_c_loop(HUF_DecompressFastArgs* args) +{ + U64 bits[4]; + BYTE const* ip[4]; + BYTE* op[4]; + U16 const* const dtable = (U16 const*)args->dt; + BYTE* const oend = args->oend; + BYTE const* const ilowest = args->ilowest; + + /* Copy the arguments to local variables */ + ZSTD_memcpy(&bits, &args->bits, sizeof(bits)); + ZSTD_memcpy((void*)(&ip), &args->ip, sizeof(ip)); + ZSTD_memcpy(&op, &args->op, sizeof(op)); + + assert(MEM_isLittleEndian()); + assert(!MEM_32bits()); + + for (;;) { + BYTE* olimit; + int stream; + + /* Assert loop preconditions */ +#ifndef NDEBUG + for (stream = 0; stream < 4; ++stream) { + assert(op[stream] <= (stream == 3 ? oend : op[stream + 1])); + assert(ip[stream] >= ilowest); + } +#endif + /* Compute olimit */ + { + /* Each iteration produces 5 output symbols per stream */ + size_t const oiters = (size_t)(oend - op[3]) / 5; + /* Each iteration consumes up to 11 bits * 5 = 55 bits < 7 bytes + * per stream. + */ + size_t const iiters = (size_t)(ip[0] - ilowest) / 7; + /* We can safely run iters iterations before running bounds checks */ + size_t const iters = MIN(oiters, iiters); + size_t const symbols = iters * 5; + + /* We can simply check that op[3] < olimit, instead of checking all + * of our bounds, since we can't hit the other bounds until we've run + * iters iterations, which only happens when op[3] == olimit. + */ + olimit = op[3] + symbols; + + /* Exit fast decoding loop once we reach the end. */ + if (op[3] == olimit) + break; + + /* Exit the decoding loop if any input pointer has crossed the + * previous one. This indicates corruption, and a precondition + * to our loop is that ip[i] >= ip[0]. + */ + for (stream = 1; stream < 4; ++stream) { + if (ip[stream] < ip[stream - 1]) + goto _out; + } + } + +#ifndef NDEBUG + for (stream = 1; stream < 4; ++stream) { + assert(ip[stream] >= ip[stream - 1]); + } +#endif + +#define HUF_4X1_DECODE_SYMBOL(_stream, _symbol) \ + do { \ + int const index = (int)(bits[(_stream)] >> 53); \ + int const entry = (int)dtable[index]; \ + bits[(_stream)] <<= (entry & 0x3F); \ + op[(_stream)][(_symbol)] = (BYTE)((entry >> 8) & 0xFF); \ + } while (0) + +#define HUF_4X1_RELOAD_STREAM(_stream) \ + do { \ + int const ctz = ZSTD_countTrailingZeros64(bits[(_stream)]); \ + int const nbBits = ctz & 7; \ + int const nbBytes = ctz >> 3; \ + op[(_stream)] += 5; \ + ip[(_stream)] -= nbBytes; \ + bits[(_stream)] = MEM_read64(ip[(_stream)]) | 1; \ + bits[(_stream)] <<= nbBits; \ + } while (0) + + /* Manually unroll the loop because compilers don't consistently + * unroll the inner loops, which destroys performance. + */ + do { + /* Decode 5 symbols in each of the 4 streams */ + HUF_4X_FOR_EACH_STREAM_WITH_VAR(HUF_4X1_DECODE_SYMBOL, 0); + HUF_4X_FOR_EACH_STREAM_WITH_VAR(HUF_4X1_DECODE_SYMBOL, 1); + HUF_4X_FOR_EACH_STREAM_WITH_VAR(HUF_4X1_DECODE_SYMBOL, 2); + HUF_4X_FOR_EACH_STREAM_WITH_VAR(HUF_4X1_DECODE_SYMBOL, 3); + HUF_4X_FOR_EACH_STREAM_WITH_VAR(HUF_4X1_DECODE_SYMBOL, 4); + + /* Reload each of the 4 the bitstreams */ + HUF_4X_FOR_EACH_STREAM(HUF_4X1_RELOAD_STREAM); + } while (op[3] < olimit); + +#undef HUF_4X1_DECODE_SYMBOL +#undef HUF_4X1_RELOAD_STREAM + } + +_out: + + /* Save the final values of each of the state variables back to args. */ + ZSTD_memcpy(&args->bits, &bits, sizeof(bits)); + ZSTD_memcpy((void*)(&args->ip), &ip, sizeof(ip)); + ZSTD_memcpy(&args->op, &op, sizeof(op)); +} + +/** + * @returns @p dstSize on success (>= 6) + * 0 if the fallback implementation should be used + * An error if an error occurred + */ +static HUF_FAST_BMI2_ATTRS +size_t +HUF_decompress4X1_usingDTable_internal_fast( + void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize, + const HUF_DTable* DTable, + HUF_DecompressFastLoopFn loopFn) +{ + void const* dt = DTable + 1; + BYTE const* const ilowest = (BYTE const*)cSrc; + BYTE* const oend = ZSTD_maybeNullPtrAdd((BYTE*)dst, dstSize); + HUF_DecompressFastArgs args; + { size_t const ret = HUF_DecompressFastArgs_init(&args, dst, dstSize, cSrc, cSrcSize, DTable); + FORWARD_IF_ERROR(ret, "Failed to init fast loop args"); + if (ret == 0) + return 0; + } + + assert(args.ip[0] >= args.ilowest); + loopFn(&args); + + /* Our loop guarantees that ip[] >= ilowest and that we haven't + * overwritten any op[]. + */ + assert(args.ip[0] >= ilowest); + assert(args.ip[0] >= ilowest); + assert(args.ip[1] >= ilowest); + assert(args.ip[2] >= ilowest); + assert(args.ip[3] >= ilowest); + assert(args.op[3] <= oend); + + assert(ilowest == args.ilowest); + assert(ilowest + 6 == args.iend[0]); + (void)ilowest; + + /* finish bit streams one by one. */ + { size_t const segmentSize = (dstSize+3) / 4; + BYTE* segmentEnd = (BYTE*)dst; + int i; + for (i = 0; i < 4; ++i) { + BIT_DStream_t bit; + if (segmentSize <= (size_t)(oend - segmentEnd)) + segmentEnd += segmentSize; + else + segmentEnd = oend; + FORWARD_IF_ERROR(HUF_initRemainingDStream(&bit, &args, i, segmentEnd), "corruption"); + /* Decompress and validate that we've produced exactly the expected length. */ + args.op[i] += HUF_decodeStreamX1(args.op[i], &bit, segmentEnd, (HUF_DEltX1 const*)dt, HUF_DECODER_FAST_TABLELOG); + if (args.op[i] != segmentEnd) return ERROR(corruption_detected); + } + } + + /* decoded size */ + assert(dstSize != 0); + return dstSize; +} + +HUF_DGEN(HUF_decompress1X1_usingDTable_internal) + +static size_t HUF_decompress4X1_usingDTable_internal(void* dst, size_t dstSize, void const* cSrc, + size_t cSrcSize, HUF_DTable const* DTable, int flags) +{ + HUF_DecompressUsingDTableFn fallbackFn = HUF_decompress4X1_usingDTable_internal_default; + HUF_DecompressFastLoopFn loopFn = HUF_decompress4X1_usingDTable_internal_fast_c_loop; + +#if DYNAMIC_BMI2 + if (flags & HUF_flags_bmi2) { + fallbackFn = HUF_decompress4X1_usingDTable_internal_bmi2; +# if ZSTD_ENABLE_ASM_X86_64_BMI2 + if (!(flags & HUF_flags_disableAsm)) { + loopFn = HUF_decompress4X1_usingDTable_internal_fast_asm_loop; + } +# endif + } else { + return fallbackFn(dst, dstSize, cSrc, cSrcSize, DTable); + } +#endif + +#if ZSTD_ENABLE_ASM_X86_64_BMI2 && defined(__BMI2__) + if (!(flags & HUF_flags_disableAsm)) { + loopFn = HUF_decompress4X1_usingDTable_internal_fast_asm_loop; + } +#endif + + if (HUF_ENABLE_FAST_DECODE && !(flags & HUF_flags_disableFast)) { + size_t const ret = HUF_decompress4X1_usingDTable_internal_fast(dst, dstSize, cSrc, cSrcSize, DTable, loopFn); + if (ret != 0) + return ret; + } + return fallbackFn(dst, dstSize, cSrc, cSrcSize, DTable); +} + +static size_t HUF_decompress4X1_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize, + void* workSpace, size_t wkspSize, int flags) +{ + const BYTE* ip = (const BYTE*) cSrc; + + size_t const hSize = HUF_readDTableX1_wksp(dctx, cSrc, cSrcSize, workSpace, wkspSize, flags); + if (HUF_isError(hSize)) return hSize; + if (hSize >= cSrcSize) return ERROR(srcSize_wrong); + ip += hSize; cSrcSize -= hSize; + + return HUF_decompress4X1_usingDTable_internal(dst, dstSize, ip, cSrcSize, dctx, flags); +} + +#endif /* HUF_FORCE_DECOMPRESS_X2 */ + + +#ifndef HUF_FORCE_DECOMPRESS_X1 + +/* *************************/ +/* double-symbols decoding */ +/* *************************/ + +typedef struct { U16 sequence; BYTE nbBits; BYTE length; } HUF_DEltX2; /* double-symbols decoding */ +typedef struct { BYTE symbol; } sortedSymbol_t; +typedef U32 rankValCol_t[HUF_TABLELOG_MAX + 1]; +typedef rankValCol_t rankVal_t[HUF_TABLELOG_MAX]; + +/** + * Constructs a HUF_DEltX2 in a U32. + */ +static U32 HUF_buildDEltX2U32(U32 symbol, U32 nbBits, U32 baseSeq, int level) +{ + U32 seq; + DEBUG_STATIC_ASSERT(offsetof(HUF_DEltX2, sequence) == 0); + DEBUG_STATIC_ASSERT(offsetof(HUF_DEltX2, nbBits) == 2); + DEBUG_STATIC_ASSERT(offsetof(HUF_DEltX2, length) == 3); + DEBUG_STATIC_ASSERT(sizeof(HUF_DEltX2) == sizeof(U32)); + if (MEM_isLittleEndian()) { + seq = level == 1 ? symbol : (baseSeq + (symbol << 8)); + return seq + (nbBits << 16) + ((U32)level << 24); + } else { + seq = level == 1 ? (symbol << 8) : ((baseSeq << 8) + symbol); + return (seq << 16) + (nbBits << 8) + (U32)level; + } +} + +/** + * Constructs a HUF_DEltX2. + */ +static HUF_DEltX2 HUF_buildDEltX2(U32 symbol, U32 nbBits, U32 baseSeq, int level) +{ + HUF_DEltX2 DElt; + U32 const val = HUF_buildDEltX2U32(symbol, nbBits, baseSeq, level); + DEBUG_STATIC_ASSERT(sizeof(DElt) == sizeof(val)); + ZSTD_memcpy(&DElt, &val, sizeof(val)); + return DElt; +} + +/** + * Constructs 2 HUF_DEltX2s and packs them into a U64. + */ +static U64 HUF_buildDEltX2U64(U32 symbol, U32 nbBits, U16 baseSeq, int level) +{ + U32 DElt = HUF_buildDEltX2U32(symbol, nbBits, baseSeq, level); + return (U64)DElt + ((U64)DElt << 32); +} + +/** + * Fills the DTable rank with all the symbols from [begin, end) that are each + * nbBits long. + * + * @param DTableRank The start of the rank in the DTable. + * @param begin The first symbol to fill (inclusive). + * @param end The last symbol to fill (exclusive). + * @param nbBits Each symbol is nbBits long. + * @param tableLog The table log. + * @param baseSeq If level == 1 { 0 } else { the first level symbol } + * @param level The level in the table. Must be 1 or 2. + */ +static void HUF_fillDTableX2ForWeight( + HUF_DEltX2* DTableRank, + sortedSymbol_t const* begin, sortedSymbol_t const* end, + U32 nbBits, U32 tableLog, + U16 baseSeq, int const level) +{ + U32 const length = 1U << ((tableLog - nbBits) & 0x1F /* quiet static-analyzer */); + const sortedSymbol_t* ptr; + assert(level >= 1 && level <= 2); + switch (length) { + case 1: + for (ptr = begin; ptr != end; ++ptr) { + HUF_DEltX2 const DElt = HUF_buildDEltX2(ptr->symbol, nbBits, baseSeq, level); + *DTableRank++ = DElt; + } + break; + case 2: + for (ptr = begin; ptr != end; ++ptr) { + HUF_DEltX2 const DElt = HUF_buildDEltX2(ptr->symbol, nbBits, baseSeq, level); + DTableRank[0] = DElt; + DTableRank[1] = DElt; + DTableRank += 2; + } + break; + case 4: + for (ptr = begin; ptr != end; ++ptr) { + U64 const DEltX2 = HUF_buildDEltX2U64(ptr->symbol, nbBits, baseSeq, level); + ZSTD_memcpy(DTableRank + 0, &DEltX2, sizeof(DEltX2)); + ZSTD_memcpy(DTableRank + 2, &DEltX2, sizeof(DEltX2)); + DTableRank += 4; + } + break; + case 8: + for (ptr = begin; ptr != end; ++ptr) { + U64 const DEltX2 = HUF_buildDEltX2U64(ptr->symbol, nbBits, baseSeq, level); + ZSTD_memcpy(DTableRank + 0, &DEltX2, sizeof(DEltX2)); + ZSTD_memcpy(DTableRank + 2, &DEltX2, sizeof(DEltX2)); + ZSTD_memcpy(DTableRank + 4, &DEltX2, sizeof(DEltX2)); + ZSTD_memcpy(DTableRank + 6, &DEltX2, sizeof(DEltX2)); + DTableRank += 8; + } + break; + default: + for (ptr = begin; ptr != end; ++ptr) { + U64 const DEltX2 = HUF_buildDEltX2U64(ptr->symbol, nbBits, baseSeq, level); + HUF_DEltX2* const DTableRankEnd = DTableRank + length; + for (; DTableRank != DTableRankEnd; DTableRank += 8) { + ZSTD_memcpy(DTableRank + 0, &DEltX2, sizeof(DEltX2)); + ZSTD_memcpy(DTableRank + 2, &DEltX2, sizeof(DEltX2)); + ZSTD_memcpy(DTableRank + 4, &DEltX2, sizeof(DEltX2)); + ZSTD_memcpy(DTableRank + 6, &DEltX2, sizeof(DEltX2)); + } + } + break; + } +} + +/* HUF_fillDTableX2Level2() : + * `rankValOrigin` must be a table of at least (HUF_TABLELOG_MAX + 1) U32 */ +static void HUF_fillDTableX2Level2(HUF_DEltX2* DTable, U32 targetLog, const U32 consumedBits, + const U32* rankVal, const int minWeight, const int maxWeight1, + const sortedSymbol_t* sortedSymbols, U32 const* rankStart, + U32 nbBitsBaseline, U16 baseSeq) +{ + /* Fill skipped values (all positions up to rankVal[minWeight]). + * These are positions only get a single symbol because the combined weight + * is too large. + */ + if (minWeight>1) { + U32 const length = 1U << ((targetLog - consumedBits) & 0x1F /* quiet static-analyzer */); + U64 const DEltX2 = HUF_buildDEltX2U64(baseSeq, consumedBits, /* baseSeq */ 0, /* level */ 1); + int const skipSize = rankVal[minWeight]; + assert(length > 1); + assert((U32)skipSize < length); + switch (length) { + case 2: + assert(skipSize == 1); + ZSTD_memcpy(DTable, &DEltX2, sizeof(DEltX2)); + break; + case 4: + assert(skipSize <= 4); + ZSTD_memcpy(DTable + 0, &DEltX2, sizeof(DEltX2)); + ZSTD_memcpy(DTable + 2, &DEltX2, sizeof(DEltX2)); + break; + default: + { + int i; + for (i = 0; i < skipSize; i += 8) { + ZSTD_memcpy(DTable + i + 0, &DEltX2, sizeof(DEltX2)); + ZSTD_memcpy(DTable + i + 2, &DEltX2, sizeof(DEltX2)); + ZSTD_memcpy(DTable + i + 4, &DEltX2, sizeof(DEltX2)); + ZSTD_memcpy(DTable + i + 6, &DEltX2, sizeof(DEltX2)); + } + } + } + } + + /* Fill each of the second level symbols by weight. */ + { + int w; + for (w = minWeight; w < maxWeight1; ++w) { + int const begin = rankStart[w]; + int const end = rankStart[w+1]; + U32 const nbBits = nbBitsBaseline - w; + U32 const totalBits = nbBits + consumedBits; + HUF_fillDTableX2ForWeight( + DTable + rankVal[w], + sortedSymbols + begin, sortedSymbols + end, + totalBits, targetLog, + baseSeq, /* level */ 2); + } + } +} + +static void HUF_fillDTableX2(HUF_DEltX2* DTable, const U32 targetLog, + const sortedSymbol_t* sortedList, + const U32* rankStart, rankValCol_t* rankValOrigin, const U32 maxWeight, + const U32 nbBitsBaseline) +{ + U32* const rankVal = rankValOrigin[0]; + const int scaleLog = nbBitsBaseline - targetLog; /* note : targetLog >= srcLog, hence scaleLog <= 1 */ + const U32 minBits = nbBitsBaseline - maxWeight; + int w; + int const wEnd = (int)maxWeight + 1; + + /* Fill DTable in order of weight. */ + for (w = 1; w < wEnd; ++w) { + int const begin = (int)rankStart[w]; + int const end = (int)rankStart[w+1]; + U32 const nbBits = nbBitsBaseline - w; + + if (targetLog-nbBits >= minBits) { + /* Enough room for a second symbol. */ + int start = rankVal[w]; + U32 const length = 1U << ((targetLog - nbBits) & 0x1F /* quiet static-analyzer */); + int minWeight = nbBits + scaleLog; + int s; + if (minWeight < 1) minWeight = 1; + /* Fill the DTable for every symbol of weight w. + * These symbols get at least 1 second symbol. + */ + for (s = begin; s != end; ++s) { + HUF_fillDTableX2Level2( + DTable + start, targetLog, nbBits, + rankValOrigin[nbBits], minWeight, wEnd, + sortedList, rankStart, + nbBitsBaseline, sortedList[s].symbol); + start += length; + } + } else { + /* Only a single symbol. */ + HUF_fillDTableX2ForWeight( + DTable + rankVal[w], + sortedList + begin, sortedList + end, + nbBits, targetLog, + /* baseSeq */ 0, /* level */ 1); + } + } +} + +typedef struct { + rankValCol_t rankVal[HUF_TABLELOG_MAX]; + U32 rankStats[HUF_TABLELOG_MAX + 1]; + U32 rankStart0[HUF_TABLELOG_MAX + 3]; + sortedSymbol_t sortedSymbol[HUF_SYMBOLVALUE_MAX + 1]; + BYTE weightList[HUF_SYMBOLVALUE_MAX + 1]; + U32 calleeWksp[HUF_READ_STATS_WORKSPACE_SIZE_U32]; +} HUF_ReadDTableX2_Workspace; + +size_t HUF_readDTableX2_wksp(HUF_DTable* DTable, + const void* src, size_t srcSize, + void* workSpace, size_t wkspSize, int flags) +{ + U32 tableLog, maxW, nbSymbols; + DTableDesc dtd = HUF_getDTableDesc(DTable); + U32 maxTableLog = dtd.maxTableLog; + size_t iSize; + void* dtPtr = DTable+1; /* force compiler to avoid strict-aliasing */ + HUF_DEltX2* const dt = (HUF_DEltX2*)dtPtr; + U32 *rankStart; + + HUF_ReadDTableX2_Workspace* const wksp = (HUF_ReadDTableX2_Workspace*)workSpace; + + if (sizeof(*wksp) > wkspSize) return ERROR(GENERIC); + + rankStart = wksp->rankStart0 + 1; + ZSTD_memset(wksp->rankStats, 0, sizeof(wksp->rankStats)); + ZSTD_memset(wksp->rankStart0, 0, sizeof(wksp->rankStart0)); + + DEBUG_STATIC_ASSERT(sizeof(HUF_DEltX2) == sizeof(HUF_DTable)); /* if compiler fails here, assertion is wrong */ + if (maxTableLog > HUF_TABLELOG_MAX) return ERROR(tableLog_tooLarge); + /* ZSTD_memset(weightList, 0, sizeof(weightList)); */ /* is not necessary, even though some analyzer complain ... */ + + iSize = HUF_readStats_wksp(wksp->weightList, HUF_SYMBOLVALUE_MAX + 1, wksp->rankStats, &nbSymbols, &tableLog, src, srcSize, wksp->calleeWksp, sizeof(wksp->calleeWksp), flags); + if (HUF_isError(iSize)) return iSize; + + /* check result */ + if (tableLog > maxTableLog) return ERROR(tableLog_tooLarge); /* DTable can't fit code depth */ + if (tableLog <= HUF_DECODER_FAST_TABLELOG && maxTableLog > HUF_DECODER_FAST_TABLELOG) maxTableLog = HUF_DECODER_FAST_TABLELOG; + + /* find maxWeight */ + for (maxW = tableLog; wksp->rankStats[maxW]==0; maxW--) {} /* necessarily finds a solution before 0 */ + + /* Get start index of each weight */ + { U32 w, nextRankStart = 0; + for (w=1; wrankStats[w]; + rankStart[w] = curr; + } + rankStart[0] = nextRankStart; /* put all 0w symbols at the end of sorted list*/ + rankStart[maxW+1] = nextRankStart; + } + + /* sort symbols by weight */ + { U32 s; + for (s=0; sweightList[s]; + U32 const r = rankStart[w]++; + wksp->sortedSymbol[r].symbol = (BYTE)s; + } + rankStart[0] = 0; /* forget 0w symbols; this is beginning of weight(1) */ + } + + /* Build rankVal */ + { U32* const rankVal0 = wksp->rankVal[0]; + { int const rescale = (maxTableLog-tableLog) - 1; /* tableLog <= maxTableLog */ + U32 nextRankVal = 0; + U32 w; + for (w=1; wrankStats[w] << (w+rescale); + rankVal0[w] = curr; + } } + { U32 const minBits = tableLog+1 - maxW; + U32 consumed; + for (consumed = minBits; consumed < maxTableLog - minBits + 1; consumed++) { + U32* const rankValPtr = wksp->rankVal[consumed]; + U32 w; + for (w = 1; w < maxW+1; w++) { + rankValPtr[w] = rankVal0[w] >> consumed; + } } } } + + HUF_fillDTableX2(dt, maxTableLog, + wksp->sortedSymbol, + wksp->rankStart0, wksp->rankVal, maxW, + tableLog+1); + + dtd.tableLog = (BYTE)maxTableLog; + dtd.tableType = 1; + ZSTD_memcpy(DTable, &dtd, sizeof(dtd)); + return iSize; +} + + +FORCE_INLINE_TEMPLATE U32 +HUF_decodeSymbolX2(void* op, BIT_DStream_t* DStream, const HUF_DEltX2* dt, const U32 dtLog) +{ + size_t const val = BIT_lookBitsFast(DStream, dtLog); /* note : dtLog >= 1 */ + ZSTD_memcpy(op, &dt[val].sequence, 2); + BIT_skipBits(DStream, dt[val].nbBits); + return dt[val].length; +} + +FORCE_INLINE_TEMPLATE U32 +HUF_decodeLastSymbolX2(void* op, BIT_DStream_t* DStream, const HUF_DEltX2* dt, const U32 dtLog) +{ + size_t const val = BIT_lookBitsFast(DStream, dtLog); /* note : dtLog >= 1 */ + ZSTD_memcpy(op, &dt[val].sequence, 1); + if (dt[val].length==1) { + BIT_skipBits(DStream, dt[val].nbBits); + } else { + if (DStream->bitsConsumed < (sizeof(DStream->bitContainer)*8)) { + BIT_skipBits(DStream, dt[val].nbBits); + if (DStream->bitsConsumed > (sizeof(DStream->bitContainer)*8)) + /* ugly hack; works only because it's the last symbol. Note : can't easily extract nbBits from just this symbol */ + DStream->bitsConsumed = (sizeof(DStream->bitContainer)*8); + } + } + return 1; +} + +#define HUF_DECODE_SYMBOLX2_0(ptr, DStreamPtr) \ + do { ptr += HUF_decodeSymbolX2(ptr, DStreamPtr, dt, dtLog); } while (0) + +#define HUF_DECODE_SYMBOLX2_1(ptr, DStreamPtr) \ + do { \ + if (MEM_64bits() || (HUF_TABLELOG_MAX<=12)) \ + ptr += HUF_decodeSymbolX2(ptr, DStreamPtr, dt, dtLog); \ + } while (0) + +#define HUF_DECODE_SYMBOLX2_2(ptr, DStreamPtr) \ + do { \ + if (MEM_64bits()) \ + ptr += HUF_decodeSymbolX2(ptr, DStreamPtr, dt, dtLog); \ + } while (0) + +HINT_INLINE size_t +HUF_decodeStreamX2(BYTE* p, BIT_DStream_t* bitDPtr, BYTE* const pEnd, + const HUF_DEltX2* const dt, const U32 dtLog) +{ + BYTE* const pStart = p; + + /* up to 8 symbols at a time */ + if ((size_t)(pEnd - p) >= sizeof(bitDPtr->bitContainer)) { + if (dtLog <= 11 && MEM_64bits()) { + /* up to 10 symbols at a time */ + while ((BIT_reloadDStream(bitDPtr) == BIT_DStream_unfinished) & (p < pEnd-9)) { + HUF_DECODE_SYMBOLX2_0(p, bitDPtr); + HUF_DECODE_SYMBOLX2_0(p, bitDPtr); + HUF_DECODE_SYMBOLX2_0(p, bitDPtr); + HUF_DECODE_SYMBOLX2_0(p, bitDPtr); + HUF_DECODE_SYMBOLX2_0(p, bitDPtr); + } + } else { + /* up to 8 symbols at a time */ + while ((BIT_reloadDStream(bitDPtr) == BIT_DStream_unfinished) & (p < pEnd-(sizeof(bitDPtr->bitContainer)-1))) { + HUF_DECODE_SYMBOLX2_2(p, bitDPtr); + HUF_DECODE_SYMBOLX2_1(p, bitDPtr); + HUF_DECODE_SYMBOLX2_2(p, bitDPtr); + HUF_DECODE_SYMBOLX2_0(p, bitDPtr); + } + } + } else { + BIT_reloadDStream(bitDPtr); + } + + /* closer to end : up to 2 symbols at a time */ + if ((size_t)(pEnd - p) >= 2) { + while ((BIT_reloadDStream(bitDPtr) == BIT_DStream_unfinished) & (p <= pEnd-2)) + HUF_DECODE_SYMBOLX2_0(p, bitDPtr); + + while (p <= pEnd-2) + HUF_DECODE_SYMBOLX2_0(p, bitDPtr); /* no need to reload : reached the end of DStream */ + } + + if (p < pEnd) + p += HUF_decodeLastSymbolX2(p, bitDPtr, dt, dtLog); + + return p-pStart; +} + +FORCE_INLINE_TEMPLATE size_t +HUF_decompress1X2_usingDTable_internal_body( + void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize, + const HUF_DTable* DTable) +{ + BIT_DStream_t bitD; + + /* Init */ + CHECK_F( BIT_initDStream(&bitD, cSrc, cSrcSize) ); + + /* decode */ + { BYTE* const ostart = (BYTE*) dst; + BYTE* const oend = ZSTD_maybeNullPtrAdd(ostart, dstSize); + const void* const dtPtr = DTable+1; /* force compiler to not use strict-aliasing */ + const HUF_DEltX2* const dt = (const HUF_DEltX2*)dtPtr; + DTableDesc const dtd = HUF_getDTableDesc(DTable); + HUF_decodeStreamX2(ostart, &bitD, oend, dt, dtd.tableLog); + } + + /* check */ + if (!BIT_endOfDStream(&bitD)) return ERROR(corruption_detected); + + /* decoded size */ + return dstSize; +} + +/* HUF_decompress4X2_usingDTable_internal_body(): + * Conditions: + * @dstSize >= 6 + */ +FORCE_INLINE_TEMPLATE size_t +HUF_decompress4X2_usingDTable_internal_body( + void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize, + const HUF_DTable* DTable) +{ + if (cSrcSize < 10) return ERROR(corruption_detected); /* strict minimum : jump table + 1 byte per stream */ + if (dstSize < 6) return ERROR(corruption_detected); /* stream 4-split doesn't work */ + + { const BYTE* const istart = (const BYTE*) cSrc; + BYTE* const ostart = (BYTE*) dst; + BYTE* const oend = ostart + dstSize; + BYTE* const olimit = oend - (sizeof(size_t)-1); + const void* const dtPtr = DTable+1; + const HUF_DEltX2* const dt = (const HUF_DEltX2*)dtPtr; + + /* Init */ + BIT_DStream_t bitD1; + BIT_DStream_t bitD2; + BIT_DStream_t bitD3; + BIT_DStream_t bitD4; + size_t const length1 = MEM_readLE16(istart); + size_t const length2 = MEM_readLE16(istart+2); + size_t const length3 = MEM_readLE16(istart+4); + size_t const length4 = cSrcSize - (length1 + length2 + length3 + 6); + const BYTE* const istart1 = istart + 6; /* jumpTable */ + const BYTE* const istart2 = istart1 + length1; + const BYTE* const istart3 = istart2 + length2; + const BYTE* const istart4 = istart3 + length3; + size_t const segmentSize = (dstSize+3) / 4; + BYTE* const opStart2 = ostart + segmentSize; + BYTE* const opStart3 = opStart2 + segmentSize; + BYTE* const opStart4 = opStart3 + segmentSize; + BYTE* op1 = ostart; + BYTE* op2 = opStart2; + BYTE* op3 = opStart3; + BYTE* op4 = opStart4; + U32 endSignal = 1; + DTableDesc const dtd = HUF_getDTableDesc(DTable); + U32 const dtLog = dtd.tableLog; + + if (length4 > cSrcSize) return ERROR(corruption_detected); /* overflow */ + if (opStart4 > oend) return ERROR(corruption_detected); /* overflow */ + assert(dstSize >= 6 /* validated above */); + CHECK_F( BIT_initDStream(&bitD1, istart1, length1) ); + CHECK_F( BIT_initDStream(&bitD2, istart2, length2) ); + CHECK_F( BIT_initDStream(&bitD3, istart3, length3) ); + CHECK_F( BIT_initDStream(&bitD4, istart4, length4) ); + + /* 16-32 symbols per loop (4-8 symbols per stream) */ + if ((size_t)(oend - op4) >= sizeof(size_t)) { + for ( ; (endSignal) & (op4 < olimit); ) { +#if defined(__clang__) && (defined(__x86_64__) || defined(__i386__)) + HUF_DECODE_SYMBOLX2_2(op1, &bitD1); + HUF_DECODE_SYMBOLX2_1(op1, &bitD1); + HUF_DECODE_SYMBOLX2_2(op1, &bitD1); + HUF_DECODE_SYMBOLX2_0(op1, &bitD1); + HUF_DECODE_SYMBOLX2_2(op2, &bitD2); + HUF_DECODE_SYMBOLX2_1(op2, &bitD2); + HUF_DECODE_SYMBOLX2_2(op2, &bitD2); + HUF_DECODE_SYMBOLX2_0(op2, &bitD2); + endSignal &= BIT_reloadDStreamFast(&bitD1) == BIT_DStream_unfinished; + endSignal &= BIT_reloadDStreamFast(&bitD2) == BIT_DStream_unfinished; + HUF_DECODE_SYMBOLX2_2(op3, &bitD3); + HUF_DECODE_SYMBOLX2_1(op3, &bitD3); + HUF_DECODE_SYMBOLX2_2(op3, &bitD3); + HUF_DECODE_SYMBOLX2_0(op3, &bitD3); + HUF_DECODE_SYMBOLX2_2(op4, &bitD4); + HUF_DECODE_SYMBOLX2_1(op4, &bitD4); + HUF_DECODE_SYMBOLX2_2(op4, &bitD4); + HUF_DECODE_SYMBOLX2_0(op4, &bitD4); + endSignal &= BIT_reloadDStreamFast(&bitD3) == BIT_DStream_unfinished; + endSignal &= BIT_reloadDStreamFast(&bitD4) == BIT_DStream_unfinished; +#else + HUF_DECODE_SYMBOLX2_2(op1, &bitD1); + HUF_DECODE_SYMBOLX2_2(op2, &bitD2); + HUF_DECODE_SYMBOLX2_2(op3, &bitD3); + HUF_DECODE_SYMBOLX2_2(op4, &bitD4); + HUF_DECODE_SYMBOLX2_1(op1, &bitD1); + HUF_DECODE_SYMBOLX2_1(op2, &bitD2); + HUF_DECODE_SYMBOLX2_1(op3, &bitD3); + HUF_DECODE_SYMBOLX2_1(op4, &bitD4); + HUF_DECODE_SYMBOLX2_2(op1, &bitD1); + HUF_DECODE_SYMBOLX2_2(op2, &bitD2); + HUF_DECODE_SYMBOLX2_2(op3, &bitD3); + HUF_DECODE_SYMBOLX2_2(op4, &bitD4); + HUF_DECODE_SYMBOLX2_0(op1, &bitD1); + HUF_DECODE_SYMBOLX2_0(op2, &bitD2); + HUF_DECODE_SYMBOLX2_0(op3, &bitD3); + HUF_DECODE_SYMBOLX2_0(op4, &bitD4); + endSignal = (U32)LIKELY((U32) + (BIT_reloadDStreamFast(&bitD1) == BIT_DStream_unfinished) + & (BIT_reloadDStreamFast(&bitD2) == BIT_DStream_unfinished) + & (BIT_reloadDStreamFast(&bitD3) == BIT_DStream_unfinished) + & (BIT_reloadDStreamFast(&bitD4) == BIT_DStream_unfinished)); +#endif + } + } + + /* check corruption */ + if (op1 > opStart2) return ERROR(corruption_detected); + if (op2 > opStart3) return ERROR(corruption_detected); + if (op3 > opStart4) return ERROR(corruption_detected); + /* note : op4 already verified within main loop */ + + /* finish bitStreams one by one */ + HUF_decodeStreamX2(op1, &bitD1, opStart2, dt, dtLog); + HUF_decodeStreamX2(op2, &bitD2, opStart3, dt, dtLog); + HUF_decodeStreamX2(op3, &bitD3, opStart4, dt, dtLog); + HUF_decodeStreamX2(op4, &bitD4, oend, dt, dtLog); + + /* check */ + { U32 const endCheck = BIT_endOfDStream(&bitD1) & BIT_endOfDStream(&bitD2) & BIT_endOfDStream(&bitD3) & BIT_endOfDStream(&bitD4); + if (!endCheck) return ERROR(corruption_detected); } + + /* decoded size */ + return dstSize; + } +} + +#if HUF_NEED_BMI2_FUNCTION +static BMI2_TARGET_ATTRIBUTE +size_t HUF_decompress4X2_usingDTable_internal_bmi2(void* dst, size_t dstSize, void const* cSrc, + size_t cSrcSize, HUF_DTable const* DTable) { + return HUF_decompress4X2_usingDTable_internal_body(dst, dstSize, cSrc, cSrcSize, DTable); +} +#endif + +static +size_t HUF_decompress4X2_usingDTable_internal_default(void* dst, size_t dstSize, void const* cSrc, + size_t cSrcSize, HUF_DTable const* DTable) { + return HUF_decompress4X2_usingDTable_internal_body(dst, dstSize, cSrc, cSrcSize, DTable); +} + +#if ZSTD_ENABLE_ASM_X86_64_BMI2 + +HUF_ASM_DECL void HUF_decompress4X2_usingDTable_internal_fast_asm_loop(HUF_DecompressFastArgs* args) ZSTDLIB_HIDDEN; + +#endif + +static HUF_FAST_BMI2_ATTRS +void HUF_decompress4X2_usingDTable_internal_fast_c_loop(HUF_DecompressFastArgs* args) +{ + U64 bits[4]; + BYTE const* ip[4]; + BYTE* op[4]; + BYTE* oend[4]; + HUF_DEltX2 const* const dtable = (HUF_DEltX2 const*)args->dt; + BYTE const* const ilowest = args->ilowest; + + /* Copy the arguments to local registers. */ + ZSTD_memcpy(&bits, &args->bits, sizeof(bits)); + ZSTD_memcpy((void*)(&ip), &args->ip, sizeof(ip)); + ZSTD_memcpy(&op, &args->op, sizeof(op)); + + oend[0] = op[1]; + oend[1] = op[2]; + oend[2] = op[3]; + oend[3] = args->oend; + + assert(MEM_isLittleEndian()); + assert(!MEM_32bits()); + + for (;;) { + BYTE* olimit; + int stream; + + /* Assert loop preconditions */ +#ifndef NDEBUG + for (stream = 0; stream < 4; ++stream) { + assert(op[stream] <= oend[stream]); + assert(ip[stream] >= ilowest); + } +#endif + /* Compute olimit */ + { + /* Each loop does 5 table lookups for each of the 4 streams. + * Each table lookup consumes up to 11 bits of input, and produces + * up to 2 bytes of output. + */ + /* We can consume up to 7 bytes of input per iteration per stream. + * We also know that each input pointer is >= ip[0]. So we can run + * iters loops before running out of input. + */ + size_t iters = (size_t)(ip[0] - ilowest) / 7; + /* Each iteration can produce up to 10 bytes of output per stream. + * Each output stream my advance at different rates. So take the + * minimum number of safe iterations among all the output streams. + */ + for (stream = 0; stream < 4; ++stream) { + size_t const oiters = (size_t)(oend[stream] - op[stream]) / 10; + iters = MIN(iters, oiters); + } + + /* Each iteration produces at least 5 output symbols. So until + * op[3] crosses olimit, we know we haven't executed iters + * iterations yet. This saves us maintaining an iters counter, + * at the expense of computing the remaining # of iterations + * more frequently. + */ + olimit = op[3] + (iters * 5); + + /* Exit the fast decoding loop once we reach the end. */ + if (op[3] == olimit) + break; + + /* Exit the decoding loop if any input pointer has crossed the + * previous one. This indicates corruption, and a precondition + * to our loop is that ip[i] >= ip[0]. + */ + for (stream = 1; stream < 4; ++stream) { + if (ip[stream] < ip[stream - 1]) + goto _out; + } + } + +#ifndef NDEBUG + for (stream = 1; stream < 4; ++stream) { + assert(ip[stream] >= ip[stream - 1]); + } +#endif + +#define HUF_4X2_DECODE_SYMBOL(_stream, _decode3) \ + do { \ + if ((_decode3) || (_stream) != 3) { \ + int const index = (int)(bits[(_stream)] >> 53); \ + HUF_DEltX2 const entry = dtable[index]; \ + MEM_write16(op[(_stream)], entry.sequence); \ + bits[(_stream)] <<= (entry.nbBits) & 0x3F; \ + op[(_stream)] += (entry.length); \ + } \ + } while (0) + +#define HUF_4X2_RELOAD_STREAM(_stream) \ + do { \ + HUF_4X2_DECODE_SYMBOL(3, 1); \ + { \ + int const ctz = ZSTD_countTrailingZeros64(bits[(_stream)]); \ + int const nbBits = ctz & 7; \ + int const nbBytes = ctz >> 3; \ + ip[(_stream)] -= nbBytes; \ + bits[(_stream)] = MEM_read64(ip[(_stream)]) | 1; \ + bits[(_stream)] <<= nbBits; \ + } \ + } while (0) + + /* Manually unroll the loop because compilers don't consistently + * unroll the inner loops, which destroys performance. + */ + do { + /* Decode 5 symbols from each of the first 3 streams. + * The final stream will be decoded during the reload phase + * to reduce register pressure. + */ + HUF_4X_FOR_EACH_STREAM_WITH_VAR(HUF_4X2_DECODE_SYMBOL, 0); + HUF_4X_FOR_EACH_STREAM_WITH_VAR(HUF_4X2_DECODE_SYMBOL, 0); + HUF_4X_FOR_EACH_STREAM_WITH_VAR(HUF_4X2_DECODE_SYMBOL, 0); + HUF_4X_FOR_EACH_STREAM_WITH_VAR(HUF_4X2_DECODE_SYMBOL, 0); + HUF_4X_FOR_EACH_STREAM_WITH_VAR(HUF_4X2_DECODE_SYMBOL, 0); + + /* Decode one symbol from the final stream */ + HUF_4X2_DECODE_SYMBOL(3, 1); + + /* Decode 4 symbols from the final stream & reload bitstreams. + * The final stream is reloaded last, meaning that all 5 symbols + * are decoded from the final stream before it is reloaded. + */ + HUF_4X_FOR_EACH_STREAM(HUF_4X2_RELOAD_STREAM); + } while (op[3] < olimit); + } + +#undef HUF_4X2_DECODE_SYMBOL +#undef HUF_4X2_RELOAD_STREAM + +_out: + + /* Save the final values of each of the state variables back to args. */ + ZSTD_memcpy(&args->bits, &bits, sizeof(bits)); + ZSTD_memcpy((void*)(&args->ip), &ip, sizeof(ip)); + ZSTD_memcpy(&args->op, &op, sizeof(op)); +} + + +static HUF_FAST_BMI2_ATTRS size_t +HUF_decompress4X2_usingDTable_internal_fast( + void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize, + const HUF_DTable* DTable, + HUF_DecompressFastLoopFn loopFn) { + void const* dt = DTable + 1; + const BYTE* const ilowest = (const BYTE*)cSrc; + BYTE* const oend = ZSTD_maybeNullPtrAdd((BYTE*)dst, dstSize); + HUF_DecompressFastArgs args; + { + size_t const ret = HUF_DecompressFastArgs_init(&args, dst, dstSize, cSrc, cSrcSize, DTable); + FORWARD_IF_ERROR(ret, "Failed to init asm args"); + if (ret == 0) + return 0; + } + + assert(args.ip[0] >= args.ilowest); + loopFn(&args); + + /* note : op4 already verified within main loop */ + assert(args.ip[0] >= ilowest); + assert(args.ip[1] >= ilowest); + assert(args.ip[2] >= ilowest); + assert(args.ip[3] >= ilowest); + assert(args.op[3] <= oend); + + assert(ilowest == args.ilowest); + assert(ilowest + 6 == args.iend[0]); + (void)ilowest; + + /* finish bitStreams one by one */ + { + size_t const segmentSize = (dstSize+3) / 4; + BYTE* segmentEnd = (BYTE*)dst; + int i; + for (i = 0; i < 4; ++i) { + BIT_DStream_t bit; + if (segmentSize <= (size_t)(oend - segmentEnd)) + segmentEnd += segmentSize; + else + segmentEnd = oend; + FORWARD_IF_ERROR(HUF_initRemainingDStream(&bit, &args, i, segmentEnd), "corruption"); + args.op[i] += HUF_decodeStreamX2(args.op[i], &bit, segmentEnd, (HUF_DEltX2 const*)dt, HUF_DECODER_FAST_TABLELOG); + if (args.op[i] != segmentEnd) + return ERROR(corruption_detected); + } + } + + /* decoded size */ + return dstSize; +} + +static size_t HUF_decompress4X2_usingDTable_internal(void* dst, size_t dstSize, void const* cSrc, + size_t cSrcSize, HUF_DTable const* DTable, int flags) +{ + HUF_DecompressUsingDTableFn fallbackFn = HUF_decompress4X2_usingDTable_internal_default; + HUF_DecompressFastLoopFn loopFn = HUF_decompress4X2_usingDTable_internal_fast_c_loop; + +#if DYNAMIC_BMI2 + if (flags & HUF_flags_bmi2) { + fallbackFn = HUF_decompress4X2_usingDTable_internal_bmi2; +# if ZSTD_ENABLE_ASM_X86_64_BMI2 + if (!(flags & HUF_flags_disableAsm)) { + loopFn = HUF_decompress4X2_usingDTable_internal_fast_asm_loop; + } +# endif + } else { + return fallbackFn(dst, dstSize, cSrc, cSrcSize, DTable); + } +#endif + +#if ZSTD_ENABLE_ASM_X86_64_BMI2 && defined(__BMI2__) + if (!(flags & HUF_flags_disableAsm)) { + loopFn = HUF_decompress4X2_usingDTable_internal_fast_asm_loop; + } +#endif + + if (HUF_ENABLE_FAST_DECODE && !(flags & HUF_flags_disableFast)) { + size_t const ret = HUF_decompress4X2_usingDTable_internal_fast(dst, dstSize, cSrc, cSrcSize, DTable, loopFn); + if (ret != 0) + return ret; + } + return fallbackFn(dst, dstSize, cSrc, cSrcSize, DTable); +} + +HUF_DGEN(HUF_decompress1X2_usingDTable_internal) + +size_t HUF_decompress1X2_DCtx_wksp(HUF_DTable* DCtx, void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize, + void* workSpace, size_t wkspSize, int flags) +{ + const BYTE* ip = (const BYTE*) cSrc; + + size_t const hSize = HUF_readDTableX2_wksp(DCtx, cSrc, cSrcSize, + workSpace, wkspSize, flags); + if (HUF_isError(hSize)) return hSize; + if (hSize >= cSrcSize) return ERROR(srcSize_wrong); + ip += hSize; cSrcSize -= hSize; + + return HUF_decompress1X2_usingDTable_internal(dst, dstSize, ip, cSrcSize, DCtx, flags); +} + +static size_t HUF_decompress4X2_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize, + void* workSpace, size_t wkspSize, int flags) +{ + const BYTE* ip = (const BYTE*) cSrc; + + size_t hSize = HUF_readDTableX2_wksp(dctx, cSrc, cSrcSize, + workSpace, wkspSize, flags); + if (HUF_isError(hSize)) return hSize; + if (hSize >= cSrcSize) return ERROR(srcSize_wrong); + ip += hSize; cSrcSize -= hSize; + + return HUF_decompress4X2_usingDTable_internal(dst, dstSize, ip, cSrcSize, dctx, flags); +} + +#endif /* HUF_FORCE_DECOMPRESS_X1 */ + + +/* ***********************************/ +/* Universal decompression selectors */ +/* ***********************************/ + + +#if !defined(HUF_FORCE_DECOMPRESS_X1) && !defined(HUF_FORCE_DECOMPRESS_X2) +typedef struct { U32 tableTime; U32 decode256Time; } algo_time_t; +static const algo_time_t algoTime[16 /* Quantization */][2 /* single, double */] = +{ + /* single, double, quad */ + {{0,0}, {1,1}}, /* Q==0 : impossible */ + {{0,0}, {1,1}}, /* Q==1 : impossible */ + {{ 150,216}, { 381,119}}, /* Q == 2 : 12-18% */ + {{ 170,205}, { 514,112}}, /* Q == 3 : 18-25% */ + {{ 177,199}, { 539,110}}, /* Q == 4 : 25-32% */ + {{ 197,194}, { 644,107}}, /* Q == 5 : 32-38% */ + {{ 221,192}, { 735,107}}, /* Q == 6 : 38-44% */ + {{ 256,189}, { 881,106}}, /* Q == 7 : 44-50% */ + {{ 359,188}, {1167,109}}, /* Q == 8 : 50-56% */ + {{ 582,187}, {1570,114}}, /* Q == 9 : 56-62% */ + {{ 688,187}, {1712,122}}, /* Q ==10 : 62-69% */ + {{ 825,186}, {1965,136}}, /* Q ==11 : 69-75% */ + {{ 976,185}, {2131,150}}, /* Q ==12 : 75-81% */ + {{1180,186}, {2070,175}}, /* Q ==13 : 81-87% */ + {{1377,185}, {1731,202}}, /* Q ==14 : 87-93% */ + {{1412,185}, {1695,202}}, /* Q ==15 : 93-99% */ +}; +#endif + +/** HUF_selectDecoder() : + * Tells which decoder is likely to decode faster, + * based on a set of pre-computed metrics. + * @return : 0==HUF_decompress4X1, 1==HUF_decompress4X2 . + * Assumption : 0 < dstSize <= 128 KB */ +U32 HUF_selectDecoder (size_t dstSize, size_t cSrcSize) +{ + assert(dstSize > 0); + assert(dstSize <= 128*1024); +#if defined(HUF_FORCE_DECOMPRESS_X1) + (void)dstSize; + (void)cSrcSize; + return 0; +#elif defined(HUF_FORCE_DECOMPRESS_X2) + (void)dstSize; + (void)cSrcSize; + return 1; +#else + /* decoder timing evaluation */ + { U32 const Q = (cSrcSize >= dstSize) ? 15 : (U32)(cSrcSize * 16 / dstSize); /* Q < 16 */ + U32 const D256 = (U32)(dstSize >> 8); + U32 const DTime0 = algoTime[Q][0].tableTime + (algoTime[Q][0].decode256Time * D256); + U32 DTime1 = algoTime[Q][1].tableTime + (algoTime[Q][1].decode256Time * D256); + DTime1 += DTime1 >> 5; /* small advantage to algorithm using less memory, to reduce cache eviction */ + return DTime1 < DTime0; + } +#endif +} + +size_t HUF_decompress1X_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize, + void* workSpace, size_t wkspSize, int flags) +{ + /* validation checks */ + if (dstSize == 0) return ERROR(dstSize_tooSmall); + if (cSrcSize > dstSize) return ERROR(corruption_detected); /* invalid */ + if (cSrcSize == dstSize) { ZSTD_memcpy(dst, cSrc, dstSize); return dstSize; } /* not compressed */ + if (cSrcSize == 1) { ZSTD_memset(dst, *(const BYTE*)cSrc, dstSize); return dstSize; } /* RLE */ + + { U32 const algoNb = HUF_selectDecoder(dstSize, cSrcSize); +#if defined(HUF_FORCE_DECOMPRESS_X1) + (void)algoNb; + assert(algoNb == 0); + return HUF_decompress1X1_DCtx_wksp(dctx, dst, dstSize, cSrc, + cSrcSize, workSpace, wkspSize, flags); +#elif defined(HUF_FORCE_DECOMPRESS_X2) + (void)algoNb; + assert(algoNb == 1); + return HUF_decompress1X2_DCtx_wksp(dctx, dst, dstSize, cSrc, + cSrcSize, workSpace, wkspSize, flags); +#else + return algoNb ? HUF_decompress1X2_DCtx_wksp(dctx, dst, dstSize, cSrc, + cSrcSize, workSpace, wkspSize, flags): + HUF_decompress1X1_DCtx_wksp(dctx, dst, dstSize, cSrc, + cSrcSize, workSpace, wkspSize, flags); +#endif + } +} + + +size_t HUF_decompress1X_usingDTable(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize, const HUF_DTable* DTable, int flags) +{ + DTableDesc const dtd = HUF_getDTableDesc(DTable); +#if defined(HUF_FORCE_DECOMPRESS_X1) + (void)dtd; + assert(dtd.tableType == 0); + return HUF_decompress1X1_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, flags); +#elif defined(HUF_FORCE_DECOMPRESS_X2) + (void)dtd; + assert(dtd.tableType == 1); + return HUF_decompress1X2_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, flags); +#else + return dtd.tableType ? HUF_decompress1X2_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, flags) : + HUF_decompress1X1_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, flags); +#endif +} + +#ifndef HUF_FORCE_DECOMPRESS_X2 +size_t HUF_decompress1X1_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize, int flags) +{ + const BYTE* ip = (const BYTE*) cSrc; + + size_t const hSize = HUF_readDTableX1_wksp(dctx, cSrc, cSrcSize, workSpace, wkspSize, flags); + if (HUF_isError(hSize)) return hSize; + if (hSize >= cSrcSize) return ERROR(srcSize_wrong); + ip += hSize; cSrcSize -= hSize; + + return HUF_decompress1X1_usingDTable_internal(dst, dstSize, ip, cSrcSize, dctx, flags); +} +#endif + +size_t HUF_decompress4X_usingDTable(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize, const HUF_DTable* DTable, int flags) +{ + DTableDesc const dtd = HUF_getDTableDesc(DTable); +#if defined(HUF_FORCE_DECOMPRESS_X1) + (void)dtd; + assert(dtd.tableType == 0); + return HUF_decompress4X1_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, flags); +#elif defined(HUF_FORCE_DECOMPRESS_X2) + (void)dtd; + assert(dtd.tableType == 1); + return HUF_decompress4X2_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, flags); +#else + return dtd.tableType ? HUF_decompress4X2_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, flags) : + HUF_decompress4X1_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, flags); +#endif +} + +size_t HUF_decompress4X_hufOnly_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize, int flags) +{ + /* validation checks */ + if (dstSize == 0) return ERROR(dstSize_tooSmall); + if (cSrcSize == 0) return ERROR(corruption_detected); + + { U32 const algoNb = HUF_selectDecoder(dstSize, cSrcSize); +#if defined(HUF_FORCE_DECOMPRESS_X1) + (void)algoNb; + assert(algoNb == 0); + return HUF_decompress4X1_DCtx_wksp(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize, flags); +#elif defined(HUF_FORCE_DECOMPRESS_X2) + (void)algoNb; + assert(algoNb == 1); + return HUF_decompress4X2_DCtx_wksp(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize, flags); +#else + return algoNb ? HUF_decompress4X2_DCtx_wksp(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize, flags) : + HUF_decompress4X1_DCtx_wksp(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize, flags); +#endif + } +} diff --git a/deps/zstd/lib/decompress/huf_decompress_amd64.S b/deps/zstd/lib/decompress/huf_decompress_amd64.S new file mode 100644 index 00000000000000..78da291ee3c0d1 --- /dev/null +++ b/deps/zstd/lib/decompress/huf_decompress_amd64.S @@ -0,0 +1,595 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#include "../common/portability_macros.h" + +#if defined(__ELF__) && defined(__GNUC__) +/* Stack marking + * ref: https://wiki.gentoo.org/wiki/Hardened/GNU_stack_quickstart + */ +.section .note.GNU-stack,"",%progbits + +#if defined(__aarch64__) +/* Mark that this assembly supports BTI & PAC, because it is empty for aarch64. + * See: https://github.com/facebook/zstd/issues/3841 + * See: https://gcc.godbolt.org/z/sqr5T4ffK + * See: https://lore.kernel.org/linux-arm-kernel/20200429211641.9279-8-broonie@kernel.org/ + * See: https://reviews.llvm.org/D62609 + */ +.pushsection .note.gnu.property, "a" +.p2align 3 +.long 4 /* size of the name - "GNU\0" */ +.long 0x10 /* size of descriptor */ +.long 0x5 /* NT_GNU_PROPERTY_TYPE_0 */ +.asciz "GNU" +.long 0xc0000000 /* pr_type - GNU_PROPERTY_AARCH64_FEATURE_1_AND */ +.long 4 /* pr_datasz - 4 bytes */ +.long 3 /* pr_data - GNU_PROPERTY_AARCH64_FEATURE_1_BTI | GNU_PROPERTY_AARCH64_FEATURE_1_PAC */ +.p2align 3 /* pr_padding - bring everything to 8 byte alignment */ +.popsection +#endif + +#endif + +#if ZSTD_ENABLE_ASM_X86_64_BMI2 + +/* Calling convention: + * + * %rdi contains the first argument: HUF_DecompressAsmArgs*. + * %rbp isn't maintained (no frame pointer). + * %rsp contains the stack pointer that grows down. + * No red-zone is assumed, only addresses >= %rsp are used. + * All register contents are preserved. + * + * TODO: Support Windows calling convention. + */ + +ZSTD_HIDE_ASM_FUNCTION(HUF_decompress4X1_usingDTable_internal_fast_asm_loop) +ZSTD_HIDE_ASM_FUNCTION(HUF_decompress4X2_usingDTable_internal_fast_asm_loop) +ZSTD_HIDE_ASM_FUNCTION(_HUF_decompress4X2_usingDTable_internal_fast_asm_loop) +ZSTD_HIDE_ASM_FUNCTION(_HUF_decompress4X1_usingDTable_internal_fast_asm_loop) +.global HUF_decompress4X1_usingDTable_internal_fast_asm_loop +.global HUF_decompress4X2_usingDTable_internal_fast_asm_loop +.global _HUF_decompress4X1_usingDTable_internal_fast_asm_loop +.global _HUF_decompress4X2_usingDTable_internal_fast_asm_loop +.text + +/* Sets up register mappings for clarity. + * op[], bits[], dtable & ip[0] each get their own register. + * ip[1,2,3] & olimit alias var[]. + * %rax is a scratch register. + */ + +#define op0 rsi +#define op1 rbx +#define op2 rcx +#define op3 rdi + +#define ip0 r8 +#define ip1 r9 +#define ip2 r10 +#define ip3 r11 + +#define bits0 rbp +#define bits1 rdx +#define bits2 r12 +#define bits3 r13 +#define dtable r14 +#define olimit r15 + +/* var[] aliases ip[1,2,3] & olimit + * ip[1,2,3] are saved every iteration. + * olimit is only used in compute_olimit. + */ +#define var0 r15 +#define var1 r9 +#define var2 r10 +#define var3 r11 + +/* 32-bit var registers */ +#define vard0 r15d +#define vard1 r9d +#define vard2 r10d +#define vard3 r11d + +/* Calls X(N) for each stream 0, 1, 2, 3. */ +#define FOR_EACH_STREAM(X) \ + X(0); \ + X(1); \ + X(2); \ + X(3) + +/* Calls X(N, idx) for each stream 0, 1, 2, 3. */ +#define FOR_EACH_STREAM_WITH_INDEX(X, idx) \ + X(0, idx); \ + X(1, idx); \ + X(2, idx); \ + X(3, idx) + +/* Define both _HUF_* & HUF_* symbols because MacOS + * C symbols are prefixed with '_' & Linux symbols aren't. + */ +_HUF_decompress4X1_usingDTable_internal_fast_asm_loop: +HUF_decompress4X1_usingDTable_internal_fast_asm_loop: + ZSTD_CET_ENDBRANCH + /* Save all registers - even if they are callee saved for simplicity. */ + push %rax + push %rbx + push %rcx + push %rdx + push %rbp + push %rsi + push %rdi + push %r8 + push %r9 + push %r10 + push %r11 + push %r12 + push %r13 + push %r14 + push %r15 + + /* Read HUF_DecompressAsmArgs* args from %rax */ + movq %rdi, %rax + movq 0(%rax), %ip0 + movq 8(%rax), %ip1 + movq 16(%rax), %ip2 + movq 24(%rax), %ip3 + movq 32(%rax), %op0 + movq 40(%rax), %op1 + movq 48(%rax), %op2 + movq 56(%rax), %op3 + movq 64(%rax), %bits0 + movq 72(%rax), %bits1 + movq 80(%rax), %bits2 + movq 88(%rax), %bits3 + movq 96(%rax), %dtable + push %rax /* argument */ + push 104(%rax) /* ilowest */ + push 112(%rax) /* oend */ + push %olimit /* olimit space */ + + subq $24, %rsp + +.L_4X1_compute_olimit: + /* Computes how many iterations we can do safely + * %r15, %rax may be clobbered + * rbx, rdx must be saved + * op3 & ip0 mustn't be clobbered + */ + movq %rbx, 0(%rsp) + movq %rdx, 8(%rsp) + + movq 32(%rsp), %rax /* rax = oend */ + subq %op3, %rax /* rax = oend - op3 */ + + /* r15 = (oend - op3) / 5 */ + movabsq $-3689348814741910323, %rdx + mulq %rdx + movq %rdx, %r15 + shrq $2, %r15 + + movq %ip0, %rax /* rax = ip0 */ + movq 40(%rsp), %rdx /* rdx = ilowest */ + subq %rdx, %rax /* rax = ip0 - ilowest */ + movq %rax, %rbx /* rbx = ip0 - ilowest */ + + /* rdx = (ip0 - ilowest) / 7 */ + movabsq $2635249153387078803, %rdx + mulq %rdx + subq %rdx, %rbx + shrq %rbx + addq %rbx, %rdx + shrq $2, %rdx + + /* r15 = min(%rdx, %r15) */ + cmpq %rdx, %r15 + cmova %rdx, %r15 + + /* r15 = r15 * 5 */ + leaq (%r15, %r15, 4), %r15 + + /* olimit = op3 + r15 */ + addq %op3, %olimit + + movq 8(%rsp), %rdx + movq 0(%rsp), %rbx + + /* If (op3 + 20 > olimit) */ + movq %op3, %rax /* rax = op3 */ + cmpq %rax, %olimit /* op3 == olimit */ + je .L_4X1_exit + + /* If (ip1 < ip0) go to exit */ + cmpq %ip0, %ip1 + jb .L_4X1_exit + + /* If (ip2 < ip1) go to exit */ + cmpq %ip1, %ip2 + jb .L_4X1_exit + + /* If (ip3 < ip2) go to exit */ + cmpq %ip2, %ip3 + jb .L_4X1_exit + +/* Reads top 11 bits from bits[n] + * Loads dt[bits[n]] into var[n] + */ +#define GET_NEXT_DELT(n) \ + movq $53, %var##n; \ + shrxq %var##n, %bits##n, %var##n; \ + movzwl (%dtable,%var##n,2),%vard##n + +/* var[n] must contain the DTable entry computed with GET_NEXT_DELT + * Moves var[n] to %rax + * bits[n] <<= var[n] & 63 + * op[n][idx] = %rax >> 8 + * %ah is a way to access bits [8, 16) of %rax + */ +#define DECODE_FROM_DELT(n, idx) \ + movq %var##n, %rax; \ + shlxq %var##n, %bits##n, %bits##n; \ + movb %ah, idx(%op##n) + +/* Assumes GET_NEXT_DELT has been called. + * Calls DECODE_FROM_DELT then GET_NEXT_DELT + */ +#define DECODE_AND_GET_NEXT(n, idx) \ + DECODE_FROM_DELT(n, idx); \ + GET_NEXT_DELT(n) \ + +/* // ctz & nbBytes is stored in bits[n] + * // nbBits is stored in %rax + * ctz = CTZ[bits[n]] + * nbBits = ctz & 7 + * nbBytes = ctz >> 3 + * op[n] += 5 + * ip[n] -= nbBytes + * // Note: x86-64 is little-endian ==> no bswap + * bits[n] = MEM_readST(ip[n]) | 1 + * bits[n] <<= nbBits + */ +#define RELOAD_BITS(n) \ + bsfq %bits##n, %bits##n; \ + movq %bits##n, %rax; \ + andq $7, %rax; \ + shrq $3, %bits##n; \ + leaq 5(%op##n), %op##n; \ + subq %bits##n, %ip##n; \ + movq (%ip##n), %bits##n; \ + orq $1, %bits##n; \ + shlx %rax, %bits##n, %bits##n + + /* Store clobbered variables on the stack */ + movq %olimit, 24(%rsp) + movq %ip1, 0(%rsp) + movq %ip2, 8(%rsp) + movq %ip3, 16(%rsp) + + /* Call GET_NEXT_DELT for each stream */ + FOR_EACH_STREAM(GET_NEXT_DELT) + + .p2align 6 + +.L_4X1_loop_body: + /* Decode 5 symbols in each of the 4 streams (20 total) + * Must have called GET_NEXT_DELT for each stream + */ + FOR_EACH_STREAM_WITH_INDEX(DECODE_AND_GET_NEXT, 0) + FOR_EACH_STREAM_WITH_INDEX(DECODE_AND_GET_NEXT, 1) + FOR_EACH_STREAM_WITH_INDEX(DECODE_AND_GET_NEXT, 2) + FOR_EACH_STREAM_WITH_INDEX(DECODE_AND_GET_NEXT, 3) + FOR_EACH_STREAM_WITH_INDEX(DECODE_FROM_DELT, 4) + + /* Load ip[1,2,3] from stack (var[] aliases them) + * ip[] is needed for RELOAD_BITS + * Each will be stored back to the stack after RELOAD + */ + movq 0(%rsp), %ip1 + movq 8(%rsp), %ip2 + movq 16(%rsp), %ip3 + + /* Reload each stream & fetch the next table entry + * to prepare for the next iteration + */ + RELOAD_BITS(0) + GET_NEXT_DELT(0) + + RELOAD_BITS(1) + movq %ip1, 0(%rsp) + GET_NEXT_DELT(1) + + RELOAD_BITS(2) + movq %ip2, 8(%rsp) + GET_NEXT_DELT(2) + + RELOAD_BITS(3) + movq %ip3, 16(%rsp) + GET_NEXT_DELT(3) + + /* If op3 < olimit: continue the loop */ + cmp %op3, 24(%rsp) + ja .L_4X1_loop_body + + /* Reload ip[1,2,3] from stack */ + movq 0(%rsp), %ip1 + movq 8(%rsp), %ip2 + movq 16(%rsp), %ip3 + + /* Re-compute olimit */ + jmp .L_4X1_compute_olimit + +#undef GET_NEXT_DELT +#undef DECODE_FROM_DELT +#undef DECODE +#undef RELOAD_BITS +.L_4X1_exit: + addq $24, %rsp + + /* Restore stack (oend & olimit) */ + pop %rax /* olimit */ + pop %rax /* oend */ + pop %rax /* ilowest */ + pop %rax /* arg */ + + /* Save ip / op / bits */ + movq %ip0, 0(%rax) + movq %ip1, 8(%rax) + movq %ip2, 16(%rax) + movq %ip3, 24(%rax) + movq %op0, 32(%rax) + movq %op1, 40(%rax) + movq %op2, 48(%rax) + movq %op3, 56(%rax) + movq %bits0, 64(%rax) + movq %bits1, 72(%rax) + movq %bits2, 80(%rax) + movq %bits3, 88(%rax) + + /* Restore registers */ + pop %r15 + pop %r14 + pop %r13 + pop %r12 + pop %r11 + pop %r10 + pop %r9 + pop %r8 + pop %rdi + pop %rsi + pop %rbp + pop %rdx + pop %rcx + pop %rbx + pop %rax + ret + +_HUF_decompress4X2_usingDTable_internal_fast_asm_loop: +HUF_decompress4X2_usingDTable_internal_fast_asm_loop: + ZSTD_CET_ENDBRANCH + /* Save all registers - even if they are callee saved for simplicity. */ + push %rax + push %rbx + push %rcx + push %rdx + push %rbp + push %rsi + push %rdi + push %r8 + push %r9 + push %r10 + push %r11 + push %r12 + push %r13 + push %r14 + push %r15 + + movq %rdi, %rax + movq 0(%rax), %ip0 + movq 8(%rax), %ip1 + movq 16(%rax), %ip2 + movq 24(%rax), %ip3 + movq 32(%rax), %op0 + movq 40(%rax), %op1 + movq 48(%rax), %op2 + movq 56(%rax), %op3 + movq 64(%rax), %bits0 + movq 72(%rax), %bits1 + movq 80(%rax), %bits2 + movq 88(%rax), %bits3 + movq 96(%rax), %dtable + push %rax /* argument */ + push %rax /* olimit */ + push 104(%rax) /* ilowest */ + + movq 112(%rax), %rax + push %rax /* oend3 */ + + movq %op3, %rax + push %rax /* oend2 */ + + movq %op2, %rax + push %rax /* oend1 */ + + movq %op1, %rax + push %rax /* oend0 */ + + /* Scratch space */ + subq $8, %rsp + +.L_4X2_compute_olimit: + /* Computes how many iterations we can do safely + * %r15, %rax may be clobbered + * rdx must be saved + * op[1,2,3,4] & ip0 mustn't be clobbered + */ + movq %rdx, 0(%rsp) + + /* We can consume up to 7 input bytes each iteration. */ + movq %ip0, %rax /* rax = ip0 */ + movq 40(%rsp), %rdx /* rdx = ilowest */ + subq %rdx, %rax /* rax = ip0 - ilowest */ + movq %rax, %r15 /* r15 = ip0 - ilowest */ + + /* rdx = rax / 7 */ + movabsq $2635249153387078803, %rdx + mulq %rdx + subq %rdx, %r15 + shrq %r15 + addq %r15, %rdx + shrq $2, %rdx + + /* r15 = (ip0 - ilowest) / 7 */ + movq %rdx, %r15 + + /* r15 = min(r15, min(oend0 - op0, oend1 - op1, oend2 - op2, oend3 - op3) / 10) */ + movq 8(%rsp), %rax /* rax = oend0 */ + subq %op0, %rax /* rax = oend0 - op0 */ + movq 16(%rsp), %rdx /* rdx = oend1 */ + subq %op1, %rdx /* rdx = oend1 - op1 */ + + cmpq %rax, %rdx + cmova %rax, %rdx /* rdx = min(%rdx, %rax) */ + + movq 24(%rsp), %rax /* rax = oend2 */ + subq %op2, %rax /* rax = oend2 - op2 */ + + cmpq %rax, %rdx + cmova %rax, %rdx /* rdx = min(%rdx, %rax) */ + + movq 32(%rsp), %rax /* rax = oend3 */ + subq %op3, %rax /* rax = oend3 - op3 */ + + cmpq %rax, %rdx + cmova %rax, %rdx /* rdx = min(%rdx, %rax) */ + + movabsq $-3689348814741910323, %rax + mulq %rdx + shrq $3, %rdx /* rdx = rdx / 10 */ + + /* r15 = min(%rdx, %r15) */ + cmpq %rdx, %r15 + cmova %rdx, %r15 + + /* olimit = op3 + 5 * r15 */ + movq %r15, %rax + leaq (%op3, %rax, 4), %olimit + addq %rax, %olimit + + movq 0(%rsp), %rdx + + /* If (op3 + 10 > olimit) */ + movq %op3, %rax /* rax = op3 */ + cmpq %rax, %olimit /* op3 == olimit */ + je .L_4X2_exit + + /* If (ip1 < ip0) go to exit */ + cmpq %ip0, %ip1 + jb .L_4X2_exit + + /* If (ip2 < ip1) go to exit */ + cmpq %ip1, %ip2 + jb .L_4X2_exit + + /* If (ip3 < ip2) go to exit */ + cmpq %ip2, %ip3 + jb .L_4X2_exit + +#define DECODE(n, idx) \ + movq %bits##n, %rax; \ + shrq $53, %rax; \ + movzwl 0(%dtable,%rax,4),%r8d; \ + movzbl 2(%dtable,%rax,4),%r15d; \ + movzbl 3(%dtable,%rax,4),%eax; \ + movw %r8w, (%op##n); \ + shlxq %r15, %bits##n, %bits##n; \ + addq %rax, %op##n + +#define RELOAD_BITS(n) \ + bsfq %bits##n, %bits##n; \ + movq %bits##n, %rax; \ + shrq $3, %bits##n; \ + andq $7, %rax; \ + subq %bits##n, %ip##n; \ + movq (%ip##n), %bits##n; \ + orq $1, %bits##n; \ + shlxq %rax, %bits##n, %bits##n + + + movq %olimit, 48(%rsp) + + .p2align 6 + +.L_4X2_loop_body: + /* We clobber r8, so store it on the stack */ + movq %r8, 0(%rsp) + + /* Decode 5 symbols from each of the 4 streams (20 symbols total). */ + FOR_EACH_STREAM_WITH_INDEX(DECODE, 0) + FOR_EACH_STREAM_WITH_INDEX(DECODE, 1) + FOR_EACH_STREAM_WITH_INDEX(DECODE, 2) + FOR_EACH_STREAM_WITH_INDEX(DECODE, 3) + FOR_EACH_STREAM_WITH_INDEX(DECODE, 4) + + /* Reload r8 */ + movq 0(%rsp), %r8 + + FOR_EACH_STREAM(RELOAD_BITS) + + cmp %op3, 48(%rsp) + ja .L_4X2_loop_body + jmp .L_4X2_compute_olimit + +#undef DECODE +#undef RELOAD_BITS +.L_4X2_exit: + addq $8, %rsp + /* Restore stack (oend & olimit) */ + pop %rax /* oend0 */ + pop %rax /* oend1 */ + pop %rax /* oend2 */ + pop %rax /* oend3 */ + pop %rax /* ilowest */ + pop %rax /* olimit */ + pop %rax /* arg */ + + /* Save ip / op / bits */ + movq %ip0, 0(%rax) + movq %ip1, 8(%rax) + movq %ip2, 16(%rax) + movq %ip3, 24(%rax) + movq %op0, 32(%rax) + movq %op1, 40(%rax) + movq %op2, 48(%rax) + movq %op3, 56(%rax) + movq %bits0, 64(%rax) + movq %bits1, 72(%rax) + movq %bits2, 80(%rax) + movq %bits3, 88(%rax) + + /* Restore registers */ + pop %r15 + pop %r14 + pop %r13 + pop %r12 + pop %r11 + pop %r10 + pop %r9 + pop %r8 + pop %rdi + pop %rsi + pop %rbp + pop %rdx + pop %rcx + pop %rbx + pop %rax + ret + +#endif diff --git a/deps/zstd/lib/decompress/zstd_ddict.c b/deps/zstd/lib/decompress/zstd_ddict.c new file mode 100644 index 00000000000000..309ec0d03642a1 --- /dev/null +++ b/deps/zstd/lib/decompress/zstd_ddict.c @@ -0,0 +1,244 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/* zstd_ddict.c : + * concentrates all logic that needs to know the internals of ZSTD_DDict object */ + +/*-******************************************************* +* Dependencies +*********************************************************/ +#include "../common/allocations.h" /* ZSTD_customMalloc, ZSTD_customFree */ +#include "../common/zstd_deps.h" /* ZSTD_memcpy, ZSTD_memmove, ZSTD_memset */ +#include "../common/cpu.h" /* bmi2 */ +#include "../common/mem.h" /* low level memory routines */ +#define FSE_STATIC_LINKING_ONLY +#include "../common/fse.h" +#include "../common/huf.h" +#include "zstd_decompress_internal.h" +#include "zstd_ddict.h" + +#if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT>=1) +# include "../legacy/zstd_legacy.h" +#endif + + + +/*-******************************************************* +* Types +*********************************************************/ +struct ZSTD_DDict_s { + void* dictBuffer; + const void* dictContent; + size_t dictSize; + ZSTD_entropyDTables_t entropy; + U32 dictID; + U32 entropyPresent; + ZSTD_customMem cMem; +}; /* typedef'd to ZSTD_DDict within "zstd.h" */ + +const void* ZSTD_DDict_dictContent(const ZSTD_DDict* ddict) +{ + assert(ddict != NULL); + return ddict->dictContent; +} + +size_t ZSTD_DDict_dictSize(const ZSTD_DDict* ddict) +{ + assert(ddict != NULL); + return ddict->dictSize; +} + +void ZSTD_copyDDictParameters(ZSTD_DCtx* dctx, const ZSTD_DDict* ddict) +{ + DEBUGLOG(4, "ZSTD_copyDDictParameters"); + assert(dctx != NULL); + assert(ddict != NULL); + dctx->dictID = ddict->dictID; + dctx->prefixStart = ddict->dictContent; + dctx->virtualStart = ddict->dictContent; + dctx->dictEnd = (const BYTE*)ddict->dictContent + ddict->dictSize; + dctx->previousDstEnd = dctx->dictEnd; +#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION + dctx->dictContentBeginForFuzzing = dctx->prefixStart; + dctx->dictContentEndForFuzzing = dctx->previousDstEnd; +#endif + if (ddict->entropyPresent) { + dctx->litEntropy = 1; + dctx->fseEntropy = 1; + dctx->LLTptr = ddict->entropy.LLTable; + dctx->MLTptr = ddict->entropy.MLTable; + dctx->OFTptr = ddict->entropy.OFTable; + dctx->HUFptr = ddict->entropy.hufTable; + dctx->entropy.rep[0] = ddict->entropy.rep[0]; + dctx->entropy.rep[1] = ddict->entropy.rep[1]; + dctx->entropy.rep[2] = ddict->entropy.rep[2]; + } else { + dctx->litEntropy = 0; + dctx->fseEntropy = 0; + } +} + + +static size_t +ZSTD_loadEntropy_intoDDict(ZSTD_DDict* ddict, + ZSTD_dictContentType_e dictContentType) +{ + ddict->dictID = 0; + ddict->entropyPresent = 0; + if (dictContentType == ZSTD_dct_rawContent) return 0; + + if (ddict->dictSize < 8) { + if (dictContentType == ZSTD_dct_fullDict) + return ERROR(dictionary_corrupted); /* only accept specified dictionaries */ + return 0; /* pure content mode */ + } + { U32 const magic = MEM_readLE32(ddict->dictContent); + if (magic != ZSTD_MAGIC_DICTIONARY) { + if (dictContentType == ZSTD_dct_fullDict) + return ERROR(dictionary_corrupted); /* only accept specified dictionaries */ + return 0; /* pure content mode */ + } + } + ddict->dictID = MEM_readLE32((const char*)ddict->dictContent + ZSTD_FRAMEIDSIZE); + + /* load entropy tables */ + RETURN_ERROR_IF(ZSTD_isError(ZSTD_loadDEntropy( + &ddict->entropy, ddict->dictContent, ddict->dictSize)), + dictionary_corrupted, ""); + ddict->entropyPresent = 1; + return 0; +} + + +static size_t ZSTD_initDDict_internal(ZSTD_DDict* ddict, + const void* dict, size_t dictSize, + ZSTD_dictLoadMethod_e dictLoadMethod, + ZSTD_dictContentType_e dictContentType) +{ + if ((dictLoadMethod == ZSTD_dlm_byRef) || (!dict) || (!dictSize)) { + ddict->dictBuffer = NULL; + ddict->dictContent = dict; + if (!dict) dictSize = 0; + } else { + void* const internalBuffer = ZSTD_customMalloc(dictSize, ddict->cMem); + ddict->dictBuffer = internalBuffer; + ddict->dictContent = internalBuffer; + if (!internalBuffer) return ERROR(memory_allocation); + ZSTD_memcpy(internalBuffer, dict, dictSize); + } + ddict->dictSize = dictSize; + ddict->entropy.hufTable[0] = (HUF_DTable)((ZSTD_HUFFDTABLE_CAPACITY_LOG)*0x1000001); /* cover both little and big endian */ + + /* parse dictionary content */ + FORWARD_IF_ERROR( ZSTD_loadEntropy_intoDDict(ddict, dictContentType) , ""); + + return 0; +} + +ZSTD_DDict* ZSTD_createDDict_advanced(const void* dict, size_t dictSize, + ZSTD_dictLoadMethod_e dictLoadMethod, + ZSTD_dictContentType_e dictContentType, + ZSTD_customMem customMem) +{ + if ((!customMem.customAlloc) ^ (!customMem.customFree)) return NULL; + + { ZSTD_DDict* const ddict = (ZSTD_DDict*) ZSTD_customMalloc(sizeof(ZSTD_DDict), customMem); + if (ddict == NULL) return NULL; + ddict->cMem = customMem; + { size_t const initResult = ZSTD_initDDict_internal(ddict, + dict, dictSize, + dictLoadMethod, dictContentType); + if (ZSTD_isError(initResult)) { + ZSTD_freeDDict(ddict); + return NULL; + } } + return ddict; + } +} + +/*! ZSTD_createDDict() : +* Create a digested dictionary, to start decompression without startup delay. +* `dict` content is copied inside DDict. +* Consequently, `dict` can be released after `ZSTD_DDict` creation */ +ZSTD_DDict* ZSTD_createDDict(const void* dict, size_t dictSize) +{ + ZSTD_customMem const allocator = { NULL, NULL, NULL }; + return ZSTD_createDDict_advanced(dict, dictSize, ZSTD_dlm_byCopy, ZSTD_dct_auto, allocator); +} + +/*! ZSTD_createDDict_byReference() : + * Create a digested dictionary, to start decompression without startup delay. + * Dictionary content is simply referenced, it will be accessed during decompression. + * Warning : dictBuffer must outlive DDict (DDict must be freed before dictBuffer) */ +ZSTD_DDict* ZSTD_createDDict_byReference(const void* dictBuffer, size_t dictSize) +{ + ZSTD_customMem const allocator = { NULL, NULL, NULL }; + return ZSTD_createDDict_advanced(dictBuffer, dictSize, ZSTD_dlm_byRef, ZSTD_dct_auto, allocator); +} + + +const ZSTD_DDict* ZSTD_initStaticDDict( + void* sBuffer, size_t sBufferSize, + const void* dict, size_t dictSize, + ZSTD_dictLoadMethod_e dictLoadMethod, + ZSTD_dictContentType_e dictContentType) +{ + size_t const neededSpace = sizeof(ZSTD_DDict) + + (dictLoadMethod == ZSTD_dlm_byRef ? 0 : dictSize); + ZSTD_DDict* const ddict = (ZSTD_DDict*)sBuffer; + assert(sBuffer != NULL); + assert(dict != NULL); + if ((size_t)sBuffer & 7) return NULL; /* 8-aligned */ + if (sBufferSize < neededSpace) return NULL; + if (dictLoadMethod == ZSTD_dlm_byCopy) { + ZSTD_memcpy(ddict+1, dict, dictSize); /* local copy */ + dict = ddict+1; + } + if (ZSTD_isError( ZSTD_initDDict_internal(ddict, + dict, dictSize, + ZSTD_dlm_byRef, dictContentType) )) + return NULL; + return ddict; +} + + +size_t ZSTD_freeDDict(ZSTD_DDict* ddict) +{ + if (ddict==NULL) return 0; /* support free on NULL */ + { ZSTD_customMem const cMem = ddict->cMem; + ZSTD_customFree(ddict->dictBuffer, cMem); + ZSTD_customFree(ddict, cMem); + return 0; + } +} + +/*! ZSTD_estimateDDictSize() : + * Estimate amount of memory that will be needed to create a dictionary for decompression. + * Note : dictionary created by reference using ZSTD_dlm_byRef are smaller */ +size_t ZSTD_estimateDDictSize(size_t dictSize, ZSTD_dictLoadMethod_e dictLoadMethod) +{ + return sizeof(ZSTD_DDict) + (dictLoadMethod == ZSTD_dlm_byRef ? 0 : dictSize); +} + +size_t ZSTD_sizeof_DDict(const ZSTD_DDict* ddict) +{ + if (ddict==NULL) return 0; /* support sizeof on NULL */ + return sizeof(*ddict) + (ddict->dictBuffer ? ddict->dictSize : 0) ; +} + +/*! ZSTD_getDictID_fromDDict() : + * Provides the dictID of the dictionary loaded into `ddict`. + * If @return == 0, the dictionary is not conformant to Zstandard specification, or empty. + * Non-conformant dictionaries can still be loaded, but as content-only dictionaries. */ +unsigned ZSTD_getDictID_fromDDict(const ZSTD_DDict* ddict) +{ + if (ddict==NULL) return 0; + return ddict->dictID; +} diff --git a/deps/zstd/lib/decompress/zstd_ddict.h b/deps/zstd/lib/decompress/zstd_ddict.h new file mode 100644 index 00000000000000..c4ca8877a077c8 --- /dev/null +++ b/deps/zstd/lib/decompress/zstd_ddict.h @@ -0,0 +1,44 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + +#ifndef ZSTD_DDICT_H +#define ZSTD_DDICT_H + +/*-******************************************************* + * Dependencies + *********************************************************/ +#include "../common/zstd_deps.h" /* size_t */ +#include "../zstd.h" /* ZSTD_DDict, and several public functions */ + + +/*-******************************************************* + * Interface + *********************************************************/ + +/* note: several prototypes are already published in `zstd.h` : + * ZSTD_createDDict() + * ZSTD_createDDict_byReference() + * ZSTD_createDDict_advanced() + * ZSTD_freeDDict() + * ZSTD_initStaticDDict() + * ZSTD_sizeof_DDict() + * ZSTD_estimateDDictSize() + * ZSTD_getDictID_fromDict() + */ + +const void* ZSTD_DDict_dictContent(const ZSTD_DDict* ddict); +size_t ZSTD_DDict_dictSize(const ZSTD_DDict* ddict); + +void ZSTD_copyDDictParameters(ZSTD_DCtx* dctx, const ZSTD_DDict* ddict); + + + +#endif /* ZSTD_DDICT_H */ diff --git a/deps/zstd/lib/decompress/zstd_decompress.c b/deps/zstd/lib/decompress/zstd_decompress.c new file mode 100644 index 00000000000000..2f03cf7b0c77b0 --- /dev/null +++ b/deps/zstd/lib/decompress/zstd_decompress.c @@ -0,0 +1,2407 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + +/* *************************************************************** +* Tuning parameters +*****************************************************************/ +/*! + * HEAPMODE : + * Select how default decompression function ZSTD_decompress() allocates its context, + * on stack (0), or into heap (1, default; requires malloc()). + * Note that functions with explicit context such as ZSTD_decompressDCtx() are unaffected. + */ +#ifndef ZSTD_HEAPMODE +# define ZSTD_HEAPMODE 1 +#endif + +/*! +* LEGACY_SUPPORT : +* if set to 1+, ZSTD_decompress() can decode older formats (v0.1+) +*/ +#ifndef ZSTD_LEGACY_SUPPORT +# define ZSTD_LEGACY_SUPPORT 0 +#endif + +/*! + * MAXWINDOWSIZE_DEFAULT : + * maximum window size accepted by DStream __by default__. + * Frames requiring more memory will be rejected. + * It's possible to set a different limit using ZSTD_DCtx_setMaxWindowSize(). + */ +#ifndef ZSTD_MAXWINDOWSIZE_DEFAULT +# define ZSTD_MAXWINDOWSIZE_DEFAULT (((U32)1 << ZSTD_WINDOWLOG_LIMIT_DEFAULT) + 1) +#endif + +/*! + * NO_FORWARD_PROGRESS_MAX : + * maximum allowed nb of calls to ZSTD_decompressStream() + * without any forward progress + * (defined as: no byte read from input, and no byte flushed to output) + * before triggering an error. + */ +#ifndef ZSTD_NO_FORWARD_PROGRESS_MAX +# define ZSTD_NO_FORWARD_PROGRESS_MAX 16 +#endif + + +/*-******************************************************* +* Dependencies +*********************************************************/ +#include "../common/zstd_deps.h" /* ZSTD_memcpy, ZSTD_memmove, ZSTD_memset */ +#include "../common/allocations.h" /* ZSTD_customMalloc, ZSTD_customCalloc, ZSTD_customFree */ +#include "../common/error_private.h" +#include "../common/zstd_internal.h" /* blockProperties_t */ +#include "../common/mem.h" /* low level memory routines */ +#include "../common/bits.h" /* ZSTD_highbit32 */ +#define FSE_STATIC_LINKING_ONLY +#include "../common/fse.h" +#include "../common/huf.h" +#include "../common/xxhash.h" /* XXH64_reset, XXH64_update, XXH64_digest, XXH64 */ +#include "zstd_decompress_internal.h" /* ZSTD_DCtx */ +#include "zstd_ddict.h" /* ZSTD_DDictDictContent */ +#include "zstd_decompress_block.h" /* ZSTD_decompressBlock_internal */ + +#if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT>=1) +# include "../legacy/zstd_legacy.h" +#endif + + + +/************************************* + * Multiple DDicts Hashset internals * + *************************************/ + +#define DDICT_HASHSET_MAX_LOAD_FACTOR_COUNT_MULT 4 +#define DDICT_HASHSET_MAX_LOAD_FACTOR_SIZE_MULT 3 /* These two constants represent SIZE_MULT/COUNT_MULT load factor without using a float. + * Currently, that means a 0.75 load factor. + * So, if count * COUNT_MULT / size * SIZE_MULT != 0, then we've exceeded + * the load factor of the ddict hash set. + */ + +#define DDICT_HASHSET_TABLE_BASE_SIZE 64 +#define DDICT_HASHSET_RESIZE_FACTOR 2 + +/* Hash function to determine starting position of dict insertion within the table + * Returns an index between [0, hashSet->ddictPtrTableSize] + */ +static size_t ZSTD_DDictHashSet_getIndex(const ZSTD_DDictHashSet* hashSet, U32 dictID) { + const U64 hash = XXH64(&dictID, sizeof(U32), 0); + /* DDict ptr table size is a multiple of 2, use size - 1 as mask to get index within [0, hashSet->ddictPtrTableSize) */ + return hash & (hashSet->ddictPtrTableSize - 1); +} + +/* Adds DDict to a hashset without resizing it. + * If inserting a DDict with a dictID that already exists in the set, replaces the one in the set. + * Returns 0 if successful, or a zstd error code if something went wrong. + */ +static size_t ZSTD_DDictHashSet_emplaceDDict(ZSTD_DDictHashSet* hashSet, const ZSTD_DDict* ddict) { + const U32 dictID = ZSTD_getDictID_fromDDict(ddict); + size_t idx = ZSTD_DDictHashSet_getIndex(hashSet, dictID); + const size_t idxRangeMask = hashSet->ddictPtrTableSize - 1; + RETURN_ERROR_IF(hashSet->ddictPtrCount == hashSet->ddictPtrTableSize, GENERIC, "Hash set is full!"); + DEBUGLOG(4, "Hashed index: for dictID: %u is %zu", dictID, idx); + while (hashSet->ddictPtrTable[idx] != NULL) { + /* Replace existing ddict if inserting ddict with same dictID */ + if (ZSTD_getDictID_fromDDict(hashSet->ddictPtrTable[idx]) == dictID) { + DEBUGLOG(4, "DictID already exists, replacing rather than adding"); + hashSet->ddictPtrTable[idx] = ddict; + return 0; + } + idx &= idxRangeMask; + idx++; + } + DEBUGLOG(4, "Final idx after probing for dictID %u is: %zu", dictID, idx); + hashSet->ddictPtrTable[idx] = ddict; + hashSet->ddictPtrCount++; + return 0; +} + +/* Expands hash table by factor of DDICT_HASHSET_RESIZE_FACTOR and + * rehashes all values, allocates new table, frees old table. + * Returns 0 on success, otherwise a zstd error code. + */ +static size_t ZSTD_DDictHashSet_expand(ZSTD_DDictHashSet* hashSet, ZSTD_customMem customMem) { + size_t newTableSize = hashSet->ddictPtrTableSize * DDICT_HASHSET_RESIZE_FACTOR; + const ZSTD_DDict** newTable = (const ZSTD_DDict**)ZSTD_customCalloc(sizeof(ZSTD_DDict*) * newTableSize, customMem); + const ZSTD_DDict** oldTable = hashSet->ddictPtrTable; + size_t oldTableSize = hashSet->ddictPtrTableSize; + size_t i; + + DEBUGLOG(4, "Expanding DDict hash table! Old size: %zu new size: %zu", oldTableSize, newTableSize); + RETURN_ERROR_IF(!newTable, memory_allocation, "Expanded hashset allocation failed!"); + hashSet->ddictPtrTable = newTable; + hashSet->ddictPtrTableSize = newTableSize; + hashSet->ddictPtrCount = 0; + for (i = 0; i < oldTableSize; ++i) { + if (oldTable[i] != NULL) { + FORWARD_IF_ERROR(ZSTD_DDictHashSet_emplaceDDict(hashSet, oldTable[i]), ""); + } + } + ZSTD_customFree((void*)oldTable, customMem); + DEBUGLOG(4, "Finished re-hash"); + return 0; +} + +/* Fetches a DDict with the given dictID + * Returns the ZSTD_DDict* with the requested dictID. If it doesn't exist, then returns NULL. + */ +static const ZSTD_DDict* ZSTD_DDictHashSet_getDDict(ZSTD_DDictHashSet* hashSet, U32 dictID) { + size_t idx = ZSTD_DDictHashSet_getIndex(hashSet, dictID); + const size_t idxRangeMask = hashSet->ddictPtrTableSize - 1; + DEBUGLOG(4, "Hashed index: for dictID: %u is %zu", dictID, idx); + for (;;) { + size_t currDictID = ZSTD_getDictID_fromDDict(hashSet->ddictPtrTable[idx]); + if (currDictID == dictID || currDictID == 0) { + /* currDictID == 0 implies a NULL ddict entry */ + break; + } else { + idx &= idxRangeMask; /* Goes to start of table when we reach the end */ + idx++; + } + } + DEBUGLOG(4, "Final idx after probing for dictID %u is: %zu", dictID, idx); + return hashSet->ddictPtrTable[idx]; +} + +/* Allocates space for and returns a ddict hash set + * The hash set's ZSTD_DDict* table has all values automatically set to NULL to begin with. + * Returns NULL if allocation failed. + */ +static ZSTD_DDictHashSet* ZSTD_createDDictHashSet(ZSTD_customMem customMem) { + ZSTD_DDictHashSet* ret = (ZSTD_DDictHashSet*)ZSTD_customMalloc(sizeof(ZSTD_DDictHashSet), customMem); + DEBUGLOG(4, "Allocating new hash set"); + if (!ret) + return NULL; + ret->ddictPtrTable = (const ZSTD_DDict**)ZSTD_customCalloc(DDICT_HASHSET_TABLE_BASE_SIZE * sizeof(ZSTD_DDict*), customMem); + if (!ret->ddictPtrTable) { + ZSTD_customFree(ret, customMem); + return NULL; + } + ret->ddictPtrTableSize = DDICT_HASHSET_TABLE_BASE_SIZE; + ret->ddictPtrCount = 0; + return ret; +} + +/* Frees the table of ZSTD_DDict* within a hashset, then frees the hashset itself. + * Note: The ZSTD_DDict* within the table are NOT freed. + */ +static void ZSTD_freeDDictHashSet(ZSTD_DDictHashSet* hashSet, ZSTD_customMem customMem) { + DEBUGLOG(4, "Freeing ddict hash set"); + if (hashSet && hashSet->ddictPtrTable) { + ZSTD_customFree((void*)hashSet->ddictPtrTable, customMem); + } + if (hashSet) { + ZSTD_customFree(hashSet, customMem); + } +} + +/* Public function: Adds a DDict into the ZSTD_DDictHashSet, possibly triggering a resize of the hash set. + * Returns 0 on success, or a ZSTD error. + */ +static size_t ZSTD_DDictHashSet_addDDict(ZSTD_DDictHashSet* hashSet, const ZSTD_DDict* ddict, ZSTD_customMem customMem) { + DEBUGLOG(4, "Adding dict ID: %u to hashset with - Count: %zu Tablesize: %zu", ZSTD_getDictID_fromDDict(ddict), hashSet->ddictPtrCount, hashSet->ddictPtrTableSize); + if (hashSet->ddictPtrCount * DDICT_HASHSET_MAX_LOAD_FACTOR_COUNT_MULT / hashSet->ddictPtrTableSize * DDICT_HASHSET_MAX_LOAD_FACTOR_SIZE_MULT != 0) { + FORWARD_IF_ERROR(ZSTD_DDictHashSet_expand(hashSet, customMem), ""); + } + FORWARD_IF_ERROR(ZSTD_DDictHashSet_emplaceDDict(hashSet, ddict), ""); + return 0; +} + +/*-************************************************************* +* Context management +***************************************************************/ +size_t ZSTD_sizeof_DCtx (const ZSTD_DCtx* dctx) +{ + if (dctx==NULL) return 0; /* support sizeof NULL */ + return sizeof(*dctx) + + ZSTD_sizeof_DDict(dctx->ddictLocal) + + dctx->inBuffSize + dctx->outBuffSize; +} + +size_t ZSTD_estimateDCtxSize(void) { return sizeof(ZSTD_DCtx); } + + +static size_t ZSTD_startingInputLength(ZSTD_format_e format) +{ + size_t const startingInputLength = ZSTD_FRAMEHEADERSIZE_PREFIX(format); + /* only supports formats ZSTD_f_zstd1 and ZSTD_f_zstd1_magicless */ + assert( (format == ZSTD_f_zstd1) || (format == ZSTD_f_zstd1_magicless) ); + return startingInputLength; +} + +static void ZSTD_DCtx_resetParameters(ZSTD_DCtx* dctx) +{ + assert(dctx->streamStage == zdss_init); + dctx->format = ZSTD_f_zstd1; + dctx->maxWindowSize = ZSTD_MAXWINDOWSIZE_DEFAULT; + dctx->outBufferMode = ZSTD_bm_buffered; + dctx->forceIgnoreChecksum = ZSTD_d_validateChecksum; + dctx->refMultipleDDicts = ZSTD_rmd_refSingleDDict; + dctx->disableHufAsm = 0; + dctx->maxBlockSizeParam = 0; +} + +static void ZSTD_initDCtx_internal(ZSTD_DCtx* dctx) +{ + dctx->staticSize = 0; + dctx->ddict = NULL; + dctx->ddictLocal = NULL; + dctx->dictEnd = NULL; + dctx->ddictIsCold = 0; + dctx->dictUses = ZSTD_dont_use; + dctx->inBuff = NULL; + dctx->inBuffSize = 0; + dctx->outBuffSize = 0; + dctx->streamStage = zdss_init; +#if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT>=1) + dctx->legacyContext = NULL; + dctx->previousLegacyVersion = 0; +#endif + dctx->noForwardProgress = 0; + dctx->oversizedDuration = 0; + dctx->isFrameDecompression = 1; +#if DYNAMIC_BMI2 + dctx->bmi2 = ZSTD_cpuSupportsBmi2(); +#endif + dctx->ddictSet = NULL; + ZSTD_DCtx_resetParameters(dctx); +#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION + dctx->dictContentEndForFuzzing = NULL; +#endif +} + +ZSTD_DCtx* ZSTD_initStaticDCtx(void *workspace, size_t workspaceSize) +{ + ZSTD_DCtx* const dctx = (ZSTD_DCtx*) workspace; + + if ((size_t)workspace & 7) return NULL; /* 8-aligned */ + if (workspaceSize < sizeof(ZSTD_DCtx)) return NULL; /* minimum size */ + + ZSTD_initDCtx_internal(dctx); + dctx->staticSize = workspaceSize; + dctx->inBuff = (char*)(dctx+1); + return dctx; +} + +static ZSTD_DCtx* ZSTD_createDCtx_internal(ZSTD_customMem customMem) { + if ((!customMem.customAlloc) ^ (!customMem.customFree)) return NULL; + + { ZSTD_DCtx* const dctx = (ZSTD_DCtx*)ZSTD_customMalloc(sizeof(*dctx), customMem); + if (!dctx) return NULL; + dctx->customMem = customMem; + ZSTD_initDCtx_internal(dctx); + return dctx; + } +} + +ZSTD_DCtx* ZSTD_createDCtx_advanced(ZSTD_customMem customMem) +{ + return ZSTD_createDCtx_internal(customMem); +} + +ZSTD_DCtx* ZSTD_createDCtx(void) +{ + DEBUGLOG(3, "ZSTD_createDCtx"); + return ZSTD_createDCtx_internal(ZSTD_defaultCMem); +} + +static void ZSTD_clearDict(ZSTD_DCtx* dctx) +{ + ZSTD_freeDDict(dctx->ddictLocal); + dctx->ddictLocal = NULL; + dctx->ddict = NULL; + dctx->dictUses = ZSTD_dont_use; +} + +size_t ZSTD_freeDCtx(ZSTD_DCtx* dctx) +{ + if (dctx==NULL) return 0; /* support free on NULL */ + RETURN_ERROR_IF(dctx->staticSize, memory_allocation, "not compatible with static DCtx"); + { ZSTD_customMem const cMem = dctx->customMem; + ZSTD_clearDict(dctx); + ZSTD_customFree(dctx->inBuff, cMem); + dctx->inBuff = NULL; +#if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT >= 1) + if (dctx->legacyContext) + ZSTD_freeLegacyStreamContext(dctx->legacyContext, dctx->previousLegacyVersion); +#endif + if (dctx->ddictSet) { + ZSTD_freeDDictHashSet(dctx->ddictSet, cMem); + dctx->ddictSet = NULL; + } + ZSTD_customFree(dctx, cMem); + return 0; + } +} + +/* no longer useful */ +void ZSTD_copyDCtx(ZSTD_DCtx* dstDCtx, const ZSTD_DCtx* srcDCtx) +{ + size_t const toCopy = (size_t)((char*)(&dstDCtx->inBuff) - (char*)dstDCtx); + ZSTD_memcpy(dstDCtx, srcDCtx, toCopy); /* no need to copy workspace */ +} + +/* Given a dctx with a digested frame params, re-selects the correct ZSTD_DDict based on + * the requested dict ID from the frame. If there exists a reference to the correct ZSTD_DDict, then + * accordingly sets the ddict to be used to decompress the frame. + * + * If no DDict is found, then no action is taken, and the ZSTD_DCtx::ddict remains as-is. + * + * ZSTD_d_refMultipleDDicts must be enabled for this function to be called. + */ +static void ZSTD_DCtx_selectFrameDDict(ZSTD_DCtx* dctx) { + assert(dctx->refMultipleDDicts && dctx->ddictSet); + DEBUGLOG(4, "Adjusting DDict based on requested dict ID from frame"); + if (dctx->ddict) { + const ZSTD_DDict* frameDDict = ZSTD_DDictHashSet_getDDict(dctx->ddictSet, dctx->fParams.dictID); + if (frameDDict) { + DEBUGLOG(4, "DDict found!"); + ZSTD_clearDict(dctx); + dctx->dictID = dctx->fParams.dictID; + dctx->ddict = frameDDict; + dctx->dictUses = ZSTD_use_indefinitely; + } + } +} + + +/*-************************************************************* + * Frame header decoding + ***************************************************************/ + +/*! ZSTD_isFrame() : + * Tells if the content of `buffer` starts with a valid Frame Identifier. + * Note : Frame Identifier is 4 bytes. If `size < 4`, @return will always be 0. + * Note 2 : Legacy Frame Identifiers are considered valid only if Legacy Support is enabled. + * Note 3 : Skippable Frame Identifiers are considered valid. */ +unsigned ZSTD_isFrame(const void* buffer, size_t size) +{ + if (size < ZSTD_FRAMEIDSIZE) return 0; + { U32 const magic = MEM_readLE32(buffer); + if (magic == ZSTD_MAGICNUMBER) return 1; + if ((magic & ZSTD_MAGIC_SKIPPABLE_MASK) == ZSTD_MAGIC_SKIPPABLE_START) return 1; + } +#if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT >= 1) + if (ZSTD_isLegacy(buffer, size)) return 1; +#endif + return 0; +} + +/*! ZSTD_isSkippableFrame() : + * Tells if the content of `buffer` starts with a valid Frame Identifier for a skippable frame. + * Note : Frame Identifier is 4 bytes. If `size < 4`, @return will always be 0. + */ +unsigned ZSTD_isSkippableFrame(const void* buffer, size_t size) +{ + if (size < ZSTD_FRAMEIDSIZE) return 0; + { U32 const magic = MEM_readLE32(buffer); + if ((magic & ZSTD_MAGIC_SKIPPABLE_MASK) == ZSTD_MAGIC_SKIPPABLE_START) return 1; + } + return 0; +} + +/** ZSTD_frameHeaderSize_internal() : + * srcSize must be large enough to reach header size fields. + * note : only works for formats ZSTD_f_zstd1 and ZSTD_f_zstd1_magicless. + * @return : size of the Frame Header + * or an error code, which can be tested with ZSTD_isError() */ +static size_t ZSTD_frameHeaderSize_internal(const void* src, size_t srcSize, ZSTD_format_e format) +{ + size_t const minInputSize = ZSTD_startingInputLength(format); + RETURN_ERROR_IF(srcSize < minInputSize, srcSize_wrong, ""); + + { BYTE const fhd = ((const BYTE*)src)[minInputSize-1]; + U32 const dictID= fhd & 3; + U32 const singleSegment = (fhd >> 5) & 1; + U32 const fcsId = fhd >> 6; + return minInputSize + !singleSegment + + ZSTD_did_fieldSize[dictID] + ZSTD_fcs_fieldSize[fcsId] + + (singleSegment && !fcsId); + } +} + +/** ZSTD_frameHeaderSize() : + * srcSize must be >= ZSTD_frameHeaderSize_prefix. + * @return : size of the Frame Header, + * or an error code (if srcSize is too small) */ +size_t ZSTD_frameHeaderSize(const void* src, size_t srcSize) +{ + return ZSTD_frameHeaderSize_internal(src, srcSize, ZSTD_f_zstd1); +} + + +/** ZSTD_getFrameHeader_advanced() : + * decode Frame Header, or require larger `srcSize`. + * note : only works for formats ZSTD_f_zstd1 and ZSTD_f_zstd1_magicless + * @return : 0, `zfhPtr` is correctly filled, + * >0, `srcSize` is too small, value is wanted `srcSize` amount, +** or an error code, which can be tested using ZSTD_isError() */ +size_t ZSTD_getFrameHeader_advanced(ZSTD_frameHeader* zfhPtr, const void* src, size_t srcSize, ZSTD_format_e format) +{ + const BYTE* ip = (const BYTE*)src; + size_t const minInputSize = ZSTD_startingInputLength(format); + + DEBUGLOG(5, "ZSTD_getFrameHeader_advanced: minInputSize = %zu, srcSize = %zu", minInputSize, srcSize); + + if (srcSize > 0) { + /* note : technically could be considered an assert(), since it's an invalid entry */ + RETURN_ERROR_IF(src==NULL, GENERIC, "invalid parameter : src==NULL, but srcSize>0"); + } + if (srcSize < minInputSize) { + if (srcSize > 0 && format != ZSTD_f_zstd1_magicless) { + /* when receiving less than @minInputSize bytes, + * control these bytes at least correspond to a supported magic number + * in order to error out early if they don't. + **/ + size_t const toCopy = MIN(4, srcSize); + unsigned char hbuf[4]; MEM_writeLE32(hbuf, ZSTD_MAGICNUMBER); + assert(src != NULL); + ZSTD_memcpy(hbuf, src, toCopy); + if ( MEM_readLE32(hbuf) != ZSTD_MAGICNUMBER ) { + /* not a zstd frame : let's check if it's a skippable frame */ + MEM_writeLE32(hbuf, ZSTD_MAGIC_SKIPPABLE_START); + ZSTD_memcpy(hbuf, src, toCopy); + if ((MEM_readLE32(hbuf) & ZSTD_MAGIC_SKIPPABLE_MASK) != ZSTD_MAGIC_SKIPPABLE_START) { + RETURN_ERROR(prefix_unknown, + "first bytes don't correspond to any supported magic number"); + } } } + return minInputSize; + } + + ZSTD_memset(zfhPtr, 0, sizeof(*zfhPtr)); /* not strictly necessary, but static analyzers may not understand that zfhPtr will be read only if return value is zero, since they are 2 different signals */ + if ( (format != ZSTD_f_zstd1_magicless) + && (MEM_readLE32(src) != ZSTD_MAGICNUMBER) ) { + if ((MEM_readLE32(src) & ZSTD_MAGIC_SKIPPABLE_MASK) == ZSTD_MAGIC_SKIPPABLE_START) { + /* skippable frame */ + if (srcSize < ZSTD_SKIPPABLEHEADERSIZE) + return ZSTD_SKIPPABLEHEADERSIZE; /* magic number + frame length */ + ZSTD_memset(zfhPtr, 0, sizeof(*zfhPtr)); + zfhPtr->frameContentSize = MEM_readLE32((const char *)src + ZSTD_FRAMEIDSIZE); + zfhPtr->frameType = ZSTD_skippableFrame; + return 0; + } + RETURN_ERROR(prefix_unknown, ""); + } + + /* ensure there is enough `srcSize` to fully read/decode frame header */ + { size_t const fhsize = ZSTD_frameHeaderSize_internal(src, srcSize, format); + if (srcSize < fhsize) return fhsize; + zfhPtr->headerSize = (U32)fhsize; + } + + { BYTE const fhdByte = ip[minInputSize-1]; + size_t pos = minInputSize; + U32 const dictIDSizeCode = fhdByte&3; + U32 const checksumFlag = (fhdByte>>2)&1; + U32 const singleSegment = (fhdByte>>5)&1; + U32 const fcsID = fhdByte>>6; + U64 windowSize = 0; + U32 dictID = 0; + U64 frameContentSize = ZSTD_CONTENTSIZE_UNKNOWN; + RETURN_ERROR_IF((fhdByte & 0x08) != 0, frameParameter_unsupported, + "reserved bits, must be zero"); + + if (!singleSegment) { + BYTE const wlByte = ip[pos++]; + U32 const windowLog = (wlByte >> 3) + ZSTD_WINDOWLOG_ABSOLUTEMIN; + RETURN_ERROR_IF(windowLog > ZSTD_WINDOWLOG_MAX, frameParameter_windowTooLarge, ""); + windowSize = (1ULL << windowLog); + windowSize += (windowSize >> 3) * (wlByte&7); + } + switch(dictIDSizeCode) + { + default: + assert(0); /* impossible */ + ZSTD_FALLTHROUGH; + case 0 : break; + case 1 : dictID = ip[pos]; pos++; break; + case 2 : dictID = MEM_readLE16(ip+pos); pos+=2; break; + case 3 : dictID = MEM_readLE32(ip+pos); pos+=4; break; + } + switch(fcsID) + { + default: + assert(0); /* impossible */ + ZSTD_FALLTHROUGH; + case 0 : if (singleSegment) frameContentSize = ip[pos]; break; + case 1 : frameContentSize = MEM_readLE16(ip+pos)+256; break; + case 2 : frameContentSize = MEM_readLE32(ip+pos); break; + case 3 : frameContentSize = MEM_readLE64(ip+pos); break; + } + if (singleSegment) windowSize = frameContentSize; + + zfhPtr->frameType = ZSTD_frame; + zfhPtr->frameContentSize = frameContentSize; + zfhPtr->windowSize = windowSize; + zfhPtr->blockSizeMax = (unsigned) MIN(windowSize, ZSTD_BLOCKSIZE_MAX); + zfhPtr->dictID = dictID; + zfhPtr->checksumFlag = checksumFlag; + } + return 0; +} + +/** ZSTD_getFrameHeader() : + * decode Frame Header, or require larger `srcSize`. + * note : this function does not consume input, it only reads it. + * @return : 0, `zfhPtr` is correctly filled, + * >0, `srcSize` is too small, value is wanted `srcSize` amount, + * or an error code, which can be tested using ZSTD_isError() */ +size_t ZSTD_getFrameHeader(ZSTD_frameHeader* zfhPtr, const void* src, size_t srcSize) +{ + return ZSTD_getFrameHeader_advanced(zfhPtr, src, srcSize, ZSTD_f_zstd1); +} + +/** ZSTD_getFrameContentSize() : + * compatible with legacy mode + * @return : decompressed size of the single frame pointed to be `src` if known, otherwise + * - ZSTD_CONTENTSIZE_UNKNOWN if the size cannot be determined + * - ZSTD_CONTENTSIZE_ERROR if an error occurred (e.g. invalid magic number, srcSize too small) */ +unsigned long long ZSTD_getFrameContentSize(const void *src, size_t srcSize) +{ +#if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT >= 1) + if (ZSTD_isLegacy(src, srcSize)) { + unsigned long long const ret = ZSTD_getDecompressedSize_legacy(src, srcSize); + return ret == 0 ? ZSTD_CONTENTSIZE_UNKNOWN : ret; + } +#endif + { ZSTD_frameHeader zfh; + if (ZSTD_getFrameHeader(&zfh, src, srcSize) != 0) + return ZSTD_CONTENTSIZE_ERROR; + if (zfh.frameType == ZSTD_skippableFrame) { + return 0; + } else { + return zfh.frameContentSize; + } } +} + +static size_t readSkippableFrameSize(void const* src, size_t srcSize) +{ + size_t const skippableHeaderSize = ZSTD_SKIPPABLEHEADERSIZE; + U32 sizeU32; + + RETURN_ERROR_IF(srcSize < ZSTD_SKIPPABLEHEADERSIZE, srcSize_wrong, ""); + + sizeU32 = MEM_readLE32((BYTE const*)src + ZSTD_FRAMEIDSIZE); + RETURN_ERROR_IF((U32)(sizeU32 + ZSTD_SKIPPABLEHEADERSIZE) < sizeU32, + frameParameter_unsupported, ""); + { size_t const skippableSize = skippableHeaderSize + sizeU32; + RETURN_ERROR_IF(skippableSize > srcSize, srcSize_wrong, ""); + return skippableSize; + } +} + +/*! ZSTD_readSkippableFrame() : + * Retrieves content of a skippable frame, and writes it to dst buffer. + * + * The parameter magicVariant will receive the magicVariant that was supplied when the frame was written, + * i.e. magicNumber - ZSTD_MAGIC_SKIPPABLE_START. This can be NULL if the caller is not interested + * in the magicVariant. + * + * Returns an error if destination buffer is not large enough, or if this is not a valid skippable frame. + * + * @return : number of bytes written or a ZSTD error. + */ +size_t ZSTD_readSkippableFrame(void* dst, size_t dstCapacity, + unsigned* magicVariant, /* optional, can be NULL */ + const void* src, size_t srcSize) +{ + RETURN_ERROR_IF(srcSize < ZSTD_SKIPPABLEHEADERSIZE, srcSize_wrong, ""); + + { U32 const magicNumber = MEM_readLE32(src); + size_t skippableFrameSize = readSkippableFrameSize(src, srcSize); + size_t skippableContentSize = skippableFrameSize - ZSTD_SKIPPABLEHEADERSIZE; + + /* check input validity */ + RETURN_ERROR_IF(!ZSTD_isSkippableFrame(src, srcSize), frameParameter_unsupported, ""); + RETURN_ERROR_IF(skippableFrameSize < ZSTD_SKIPPABLEHEADERSIZE || skippableFrameSize > srcSize, srcSize_wrong, ""); + RETURN_ERROR_IF(skippableContentSize > dstCapacity, dstSize_tooSmall, ""); + + /* deliver payload */ + if (skippableContentSize > 0 && dst != NULL) + ZSTD_memcpy(dst, (const BYTE *)src + ZSTD_SKIPPABLEHEADERSIZE, skippableContentSize); + if (magicVariant != NULL) + *magicVariant = magicNumber - ZSTD_MAGIC_SKIPPABLE_START; + return skippableContentSize; + } +} + +/** ZSTD_findDecompressedSize() : + * `srcSize` must be the exact length of some number of ZSTD compressed and/or + * skippable frames + * note: compatible with legacy mode + * @return : decompressed size of the frames contained */ +unsigned long long ZSTD_findDecompressedSize(const void* src, size_t srcSize) +{ + unsigned long long totalDstSize = 0; + + while (srcSize >= ZSTD_startingInputLength(ZSTD_f_zstd1)) { + U32 const magicNumber = MEM_readLE32(src); + + if ((magicNumber & ZSTD_MAGIC_SKIPPABLE_MASK) == ZSTD_MAGIC_SKIPPABLE_START) { + size_t const skippableSize = readSkippableFrameSize(src, srcSize); + if (ZSTD_isError(skippableSize)) return ZSTD_CONTENTSIZE_ERROR; + assert(skippableSize <= srcSize); + + src = (const BYTE *)src + skippableSize; + srcSize -= skippableSize; + continue; + } + + { unsigned long long const fcs = ZSTD_getFrameContentSize(src, srcSize); + if (fcs >= ZSTD_CONTENTSIZE_ERROR) return fcs; + + if (totalDstSize + fcs < totalDstSize) + return ZSTD_CONTENTSIZE_ERROR; /* check for overflow */ + totalDstSize += fcs; + } + /* skip to next frame */ + { size_t const frameSrcSize = ZSTD_findFrameCompressedSize(src, srcSize); + if (ZSTD_isError(frameSrcSize)) return ZSTD_CONTENTSIZE_ERROR; + assert(frameSrcSize <= srcSize); + + src = (const BYTE *)src + frameSrcSize; + srcSize -= frameSrcSize; + } + } /* while (srcSize >= ZSTD_frameHeaderSize_prefix) */ + + if (srcSize) return ZSTD_CONTENTSIZE_ERROR; + + return totalDstSize; +} + +/** ZSTD_getDecompressedSize() : + * compatible with legacy mode + * @return : decompressed size if known, 0 otherwise + note : 0 can mean any of the following : + - frame content is empty + - decompressed size field is not present in frame header + - frame header unknown / not supported + - frame header not complete (`srcSize` too small) */ +unsigned long long ZSTD_getDecompressedSize(const void* src, size_t srcSize) +{ + unsigned long long const ret = ZSTD_getFrameContentSize(src, srcSize); + ZSTD_STATIC_ASSERT(ZSTD_CONTENTSIZE_ERROR < ZSTD_CONTENTSIZE_UNKNOWN); + return (ret >= ZSTD_CONTENTSIZE_ERROR) ? 0 : ret; +} + + +/** ZSTD_decodeFrameHeader() : + * `headerSize` must be the size provided by ZSTD_frameHeaderSize(). + * If multiple DDict references are enabled, also will choose the correct DDict to use. + * @return : 0 if success, or an error code, which can be tested using ZSTD_isError() */ +static size_t ZSTD_decodeFrameHeader(ZSTD_DCtx* dctx, const void* src, size_t headerSize) +{ + size_t const result = ZSTD_getFrameHeader_advanced(&(dctx->fParams), src, headerSize, dctx->format); + if (ZSTD_isError(result)) return result; /* invalid header */ + RETURN_ERROR_IF(result>0, srcSize_wrong, "headerSize too small"); + + /* Reference DDict requested by frame if dctx references multiple ddicts */ + if (dctx->refMultipleDDicts == ZSTD_rmd_refMultipleDDicts && dctx->ddictSet) { + ZSTD_DCtx_selectFrameDDict(dctx); + } + +#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION + /* Skip the dictID check in fuzzing mode, because it makes the search + * harder. + */ + RETURN_ERROR_IF(dctx->fParams.dictID && (dctx->dictID != dctx->fParams.dictID), + dictionary_wrong, ""); +#endif + dctx->validateChecksum = (dctx->fParams.checksumFlag && !dctx->forceIgnoreChecksum) ? 1 : 0; + if (dctx->validateChecksum) XXH64_reset(&dctx->xxhState, 0); + dctx->processedCSize += headerSize; + return 0; +} + +static ZSTD_frameSizeInfo ZSTD_errorFrameSizeInfo(size_t ret) +{ + ZSTD_frameSizeInfo frameSizeInfo; + frameSizeInfo.compressedSize = ret; + frameSizeInfo.decompressedBound = ZSTD_CONTENTSIZE_ERROR; + return frameSizeInfo; +} + +static ZSTD_frameSizeInfo ZSTD_findFrameSizeInfo(const void* src, size_t srcSize, ZSTD_format_e format) +{ + ZSTD_frameSizeInfo frameSizeInfo; + ZSTD_memset(&frameSizeInfo, 0, sizeof(ZSTD_frameSizeInfo)); + +#if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT >= 1) + if (format == ZSTD_f_zstd1 && ZSTD_isLegacy(src, srcSize)) + return ZSTD_findFrameSizeInfoLegacy(src, srcSize); +#endif + + if (format == ZSTD_f_zstd1 && (srcSize >= ZSTD_SKIPPABLEHEADERSIZE) + && (MEM_readLE32(src) & ZSTD_MAGIC_SKIPPABLE_MASK) == ZSTD_MAGIC_SKIPPABLE_START) { + frameSizeInfo.compressedSize = readSkippableFrameSize(src, srcSize); + assert(ZSTD_isError(frameSizeInfo.compressedSize) || + frameSizeInfo.compressedSize <= srcSize); + return frameSizeInfo; + } else { + const BYTE* ip = (const BYTE*)src; + const BYTE* const ipstart = ip; + size_t remainingSize = srcSize; + size_t nbBlocks = 0; + ZSTD_frameHeader zfh; + + /* Extract Frame Header */ + { size_t const ret = ZSTD_getFrameHeader_advanced(&zfh, src, srcSize, format); + if (ZSTD_isError(ret)) + return ZSTD_errorFrameSizeInfo(ret); + if (ret > 0) + return ZSTD_errorFrameSizeInfo(ERROR(srcSize_wrong)); + } + + ip += zfh.headerSize; + remainingSize -= zfh.headerSize; + + /* Iterate over each block */ + while (1) { + blockProperties_t blockProperties; + size_t const cBlockSize = ZSTD_getcBlockSize(ip, remainingSize, &blockProperties); + if (ZSTD_isError(cBlockSize)) + return ZSTD_errorFrameSizeInfo(cBlockSize); + + if (ZSTD_blockHeaderSize + cBlockSize > remainingSize) + return ZSTD_errorFrameSizeInfo(ERROR(srcSize_wrong)); + + ip += ZSTD_blockHeaderSize + cBlockSize; + remainingSize -= ZSTD_blockHeaderSize + cBlockSize; + nbBlocks++; + + if (blockProperties.lastBlock) break; + } + + /* Final frame content checksum */ + if (zfh.checksumFlag) { + if (remainingSize < 4) + return ZSTD_errorFrameSizeInfo(ERROR(srcSize_wrong)); + ip += 4; + } + + frameSizeInfo.nbBlocks = nbBlocks; + frameSizeInfo.compressedSize = (size_t)(ip - ipstart); + frameSizeInfo.decompressedBound = (zfh.frameContentSize != ZSTD_CONTENTSIZE_UNKNOWN) + ? zfh.frameContentSize + : (unsigned long long)nbBlocks * zfh.blockSizeMax; + return frameSizeInfo; + } +} + +static size_t ZSTD_findFrameCompressedSize_advanced(const void *src, size_t srcSize, ZSTD_format_e format) { + ZSTD_frameSizeInfo const frameSizeInfo = ZSTD_findFrameSizeInfo(src, srcSize, format); + return frameSizeInfo.compressedSize; +} + +/** ZSTD_findFrameCompressedSize() : + * See docs in zstd.h + * Note: compatible with legacy mode */ +size_t ZSTD_findFrameCompressedSize(const void *src, size_t srcSize) +{ + return ZSTD_findFrameCompressedSize_advanced(src, srcSize, ZSTD_f_zstd1); +} + +/** ZSTD_decompressBound() : + * compatible with legacy mode + * `src` must point to the start of a ZSTD frame or a skippeable frame + * `srcSize` must be at least as large as the frame contained + * @return : the maximum decompressed size of the compressed source + */ +unsigned long long ZSTD_decompressBound(const void* src, size_t srcSize) +{ + unsigned long long bound = 0; + /* Iterate over each frame */ + while (srcSize > 0) { + ZSTD_frameSizeInfo const frameSizeInfo = ZSTD_findFrameSizeInfo(src, srcSize, ZSTD_f_zstd1); + size_t const compressedSize = frameSizeInfo.compressedSize; + unsigned long long const decompressedBound = frameSizeInfo.decompressedBound; + if (ZSTD_isError(compressedSize) || decompressedBound == ZSTD_CONTENTSIZE_ERROR) + return ZSTD_CONTENTSIZE_ERROR; + assert(srcSize >= compressedSize); + src = (const BYTE*)src + compressedSize; + srcSize -= compressedSize; + bound += decompressedBound; + } + return bound; +} + +size_t ZSTD_decompressionMargin(void const* src, size_t srcSize) +{ + size_t margin = 0; + unsigned maxBlockSize = 0; + + /* Iterate over each frame */ + while (srcSize > 0) { + ZSTD_frameSizeInfo const frameSizeInfo = ZSTD_findFrameSizeInfo(src, srcSize, ZSTD_f_zstd1); + size_t const compressedSize = frameSizeInfo.compressedSize; + unsigned long long const decompressedBound = frameSizeInfo.decompressedBound; + ZSTD_frameHeader zfh; + + FORWARD_IF_ERROR(ZSTD_getFrameHeader(&zfh, src, srcSize), ""); + if (ZSTD_isError(compressedSize) || decompressedBound == ZSTD_CONTENTSIZE_ERROR) + return ERROR(corruption_detected); + + if (zfh.frameType == ZSTD_frame) { + /* Add the frame header to our margin */ + margin += zfh.headerSize; + /* Add the checksum to our margin */ + margin += zfh.checksumFlag ? 4 : 0; + /* Add 3 bytes per block */ + margin += 3 * frameSizeInfo.nbBlocks; + + /* Compute the max block size */ + maxBlockSize = MAX(maxBlockSize, zfh.blockSizeMax); + } else { + assert(zfh.frameType == ZSTD_skippableFrame); + /* Add the entire skippable frame size to our margin. */ + margin += compressedSize; + } + + assert(srcSize >= compressedSize); + src = (const BYTE*)src + compressedSize; + srcSize -= compressedSize; + } + + /* Add the max block size back to the margin. */ + margin += maxBlockSize; + + return margin; +} + +/*-************************************************************* + * Frame decoding + ***************************************************************/ + +/** ZSTD_insertBlock() : + * insert `src` block into `dctx` history. Useful to track uncompressed blocks. */ +size_t ZSTD_insertBlock(ZSTD_DCtx* dctx, const void* blockStart, size_t blockSize) +{ + DEBUGLOG(5, "ZSTD_insertBlock: %u bytes", (unsigned)blockSize); + ZSTD_checkContinuity(dctx, blockStart, blockSize); + dctx->previousDstEnd = (const char*)blockStart + blockSize; + return blockSize; +} + + +static size_t ZSTD_copyRawBlock(void* dst, size_t dstCapacity, + const void* src, size_t srcSize) +{ + DEBUGLOG(5, "ZSTD_copyRawBlock"); + RETURN_ERROR_IF(srcSize > dstCapacity, dstSize_tooSmall, ""); + if (dst == NULL) { + if (srcSize == 0) return 0; + RETURN_ERROR(dstBuffer_null, ""); + } + ZSTD_memmove(dst, src, srcSize); + return srcSize; +} + +static size_t ZSTD_setRleBlock(void* dst, size_t dstCapacity, + BYTE b, + size_t regenSize) +{ + RETURN_ERROR_IF(regenSize > dstCapacity, dstSize_tooSmall, ""); + if (dst == NULL) { + if (regenSize == 0) return 0; + RETURN_ERROR(dstBuffer_null, ""); + } + ZSTD_memset(dst, b, regenSize); + return regenSize; +} + +static void ZSTD_DCtx_trace_end(ZSTD_DCtx const* dctx, U64 uncompressedSize, U64 compressedSize, unsigned streaming) +{ +#if ZSTD_TRACE + if (dctx->traceCtx && ZSTD_trace_decompress_end != NULL) { + ZSTD_Trace trace; + ZSTD_memset(&trace, 0, sizeof(trace)); + trace.version = ZSTD_VERSION_NUMBER; + trace.streaming = streaming; + if (dctx->ddict) { + trace.dictionaryID = ZSTD_getDictID_fromDDict(dctx->ddict); + trace.dictionarySize = ZSTD_DDict_dictSize(dctx->ddict); + trace.dictionaryIsCold = dctx->ddictIsCold; + } + trace.uncompressedSize = (size_t)uncompressedSize; + trace.compressedSize = (size_t)compressedSize; + trace.dctx = dctx; + ZSTD_trace_decompress_end(dctx->traceCtx, &trace); + } +#else + (void)dctx; + (void)uncompressedSize; + (void)compressedSize; + (void)streaming; +#endif +} + + +/*! ZSTD_decompressFrame() : + * @dctx must be properly initialized + * will update *srcPtr and *srcSizePtr, + * to make *srcPtr progress by one frame. */ +static size_t ZSTD_decompressFrame(ZSTD_DCtx* dctx, + void* dst, size_t dstCapacity, + const void** srcPtr, size_t *srcSizePtr) +{ + const BYTE* const istart = (const BYTE*)(*srcPtr); + const BYTE* ip = istart; + BYTE* const ostart = (BYTE*)dst; + BYTE* const oend = dstCapacity != 0 ? ostart + dstCapacity : ostart; + BYTE* op = ostart; + size_t remainingSrcSize = *srcSizePtr; + + DEBUGLOG(4, "ZSTD_decompressFrame (srcSize:%i)", (int)*srcSizePtr); + + /* check */ + RETURN_ERROR_IF( + remainingSrcSize < ZSTD_FRAMEHEADERSIZE_MIN(dctx->format)+ZSTD_blockHeaderSize, + srcSize_wrong, ""); + + /* Frame Header */ + { size_t const frameHeaderSize = ZSTD_frameHeaderSize_internal( + ip, ZSTD_FRAMEHEADERSIZE_PREFIX(dctx->format), dctx->format); + if (ZSTD_isError(frameHeaderSize)) return frameHeaderSize; + RETURN_ERROR_IF(remainingSrcSize < frameHeaderSize+ZSTD_blockHeaderSize, + srcSize_wrong, ""); + FORWARD_IF_ERROR( ZSTD_decodeFrameHeader(dctx, ip, frameHeaderSize) , ""); + ip += frameHeaderSize; remainingSrcSize -= frameHeaderSize; + } + + /* Shrink the blockSizeMax if enabled */ + if (dctx->maxBlockSizeParam != 0) + dctx->fParams.blockSizeMax = MIN(dctx->fParams.blockSizeMax, (unsigned)dctx->maxBlockSizeParam); + + /* Loop on each block */ + while (1) { + BYTE* oBlockEnd = oend; + size_t decodedSize; + blockProperties_t blockProperties; + size_t const cBlockSize = ZSTD_getcBlockSize(ip, remainingSrcSize, &blockProperties); + if (ZSTD_isError(cBlockSize)) return cBlockSize; + + ip += ZSTD_blockHeaderSize; + remainingSrcSize -= ZSTD_blockHeaderSize; + RETURN_ERROR_IF(cBlockSize > remainingSrcSize, srcSize_wrong, ""); + + if (ip >= op && ip < oBlockEnd) { + /* We are decompressing in-place. Limit the output pointer so that we + * don't overwrite the block that we are currently reading. This will + * fail decompression if the input & output pointers aren't spaced + * far enough apart. + * + * This is important to set, even when the pointers are far enough + * apart, because ZSTD_decompressBlock_internal() can decide to store + * literals in the output buffer, after the block it is decompressing. + * Since we don't want anything to overwrite our input, we have to tell + * ZSTD_decompressBlock_internal to never write past ip. + * + * See ZSTD_allocateLiteralsBuffer() for reference. + */ + oBlockEnd = op + (ip - op); + } + + switch(blockProperties.blockType) + { + case bt_compressed: + assert(dctx->isFrameDecompression == 1); + decodedSize = ZSTD_decompressBlock_internal(dctx, op, (size_t)(oBlockEnd-op), ip, cBlockSize, not_streaming); + break; + case bt_raw : + /* Use oend instead of oBlockEnd because this function is safe to overlap. It uses memmove. */ + decodedSize = ZSTD_copyRawBlock(op, (size_t)(oend-op), ip, cBlockSize); + break; + case bt_rle : + decodedSize = ZSTD_setRleBlock(op, (size_t)(oBlockEnd-op), *ip, blockProperties.origSize); + break; + case bt_reserved : + default: + RETURN_ERROR(corruption_detected, "invalid block type"); + } + FORWARD_IF_ERROR(decodedSize, "Block decompression failure"); + DEBUGLOG(5, "Decompressed block of dSize = %u", (unsigned)decodedSize); + if (dctx->validateChecksum) { + XXH64_update(&dctx->xxhState, op, decodedSize); + } + if (decodedSize) /* support dst = NULL,0 */ { + op += decodedSize; + } + assert(ip != NULL); + ip += cBlockSize; + remainingSrcSize -= cBlockSize; + if (blockProperties.lastBlock) break; + } + + if (dctx->fParams.frameContentSize != ZSTD_CONTENTSIZE_UNKNOWN) { + RETURN_ERROR_IF((U64)(op-ostart) != dctx->fParams.frameContentSize, + corruption_detected, ""); + } + if (dctx->fParams.checksumFlag) { /* Frame content checksum verification */ + RETURN_ERROR_IF(remainingSrcSize<4, checksum_wrong, ""); + if (!dctx->forceIgnoreChecksum) { + U32 const checkCalc = (U32)XXH64_digest(&dctx->xxhState); + U32 checkRead; + checkRead = MEM_readLE32(ip); + RETURN_ERROR_IF(checkRead != checkCalc, checksum_wrong, ""); + } + ip += 4; + remainingSrcSize -= 4; + } + ZSTD_DCtx_trace_end(dctx, (U64)(op-ostart), (U64)(ip-istart), /* streaming */ 0); + /* Allow caller to get size read */ + DEBUGLOG(4, "ZSTD_decompressFrame: decompressed frame of size %zi, consuming %zi bytes of input", op-ostart, ip - (const BYTE*)*srcPtr); + *srcPtr = ip; + *srcSizePtr = remainingSrcSize; + return (size_t)(op-ostart); +} + +static +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_decompressMultiFrame(ZSTD_DCtx* dctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + const void* dict, size_t dictSize, + const ZSTD_DDict* ddict) +{ + void* const dststart = dst; + int moreThan1Frame = 0; + + DEBUGLOG(5, "ZSTD_decompressMultiFrame"); + assert(dict==NULL || ddict==NULL); /* either dict or ddict set, not both */ + + if (ddict) { + dict = ZSTD_DDict_dictContent(ddict); + dictSize = ZSTD_DDict_dictSize(ddict); + } + + while (srcSize >= ZSTD_startingInputLength(dctx->format)) { + +#if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT >= 1) + if (dctx->format == ZSTD_f_zstd1 && ZSTD_isLegacy(src, srcSize)) { + size_t decodedSize; + size_t const frameSize = ZSTD_findFrameCompressedSizeLegacy(src, srcSize); + if (ZSTD_isError(frameSize)) return frameSize; + RETURN_ERROR_IF(dctx->staticSize, memory_allocation, + "legacy support is not compatible with static dctx"); + + decodedSize = ZSTD_decompressLegacy(dst, dstCapacity, src, frameSize, dict, dictSize); + if (ZSTD_isError(decodedSize)) return decodedSize; + + { + unsigned long long const expectedSize = ZSTD_getFrameContentSize(src, srcSize); + RETURN_ERROR_IF(expectedSize == ZSTD_CONTENTSIZE_ERROR, corruption_detected, "Corrupted frame header!"); + if (expectedSize != ZSTD_CONTENTSIZE_UNKNOWN) { + RETURN_ERROR_IF(expectedSize != decodedSize, corruption_detected, + "Frame header size does not match decoded size!"); + } + } + + assert(decodedSize <= dstCapacity); + dst = (BYTE*)dst + decodedSize; + dstCapacity -= decodedSize; + + src = (const BYTE*)src + frameSize; + srcSize -= frameSize; + + continue; + } +#endif + + if (dctx->format == ZSTD_f_zstd1 && srcSize >= 4) { + U32 const magicNumber = MEM_readLE32(src); + DEBUGLOG(5, "reading magic number %08X", (unsigned)magicNumber); + if ((magicNumber & ZSTD_MAGIC_SKIPPABLE_MASK) == ZSTD_MAGIC_SKIPPABLE_START) { + /* skippable frame detected : skip it */ + size_t const skippableSize = readSkippableFrameSize(src, srcSize); + FORWARD_IF_ERROR(skippableSize, "invalid skippable frame"); + assert(skippableSize <= srcSize); + + src = (const BYTE *)src + skippableSize; + srcSize -= skippableSize; + continue; /* check next frame */ + } } + + if (ddict) { + /* we were called from ZSTD_decompress_usingDDict */ + FORWARD_IF_ERROR(ZSTD_decompressBegin_usingDDict(dctx, ddict), ""); + } else { + /* this will initialize correctly with no dict if dict == NULL, so + * use this in all cases but ddict */ + FORWARD_IF_ERROR(ZSTD_decompressBegin_usingDict(dctx, dict, dictSize), ""); + } + ZSTD_checkContinuity(dctx, dst, dstCapacity); + + { const size_t res = ZSTD_decompressFrame(dctx, dst, dstCapacity, + &src, &srcSize); + RETURN_ERROR_IF( + (ZSTD_getErrorCode(res) == ZSTD_error_prefix_unknown) + && (moreThan1Frame==1), + srcSize_wrong, + "At least one frame successfully completed, " + "but following bytes are garbage: " + "it's more likely to be a srcSize error, " + "specifying more input bytes than size of frame(s). " + "Note: one could be unlucky, it might be a corruption error instead, " + "happening right at the place where we expect zstd magic bytes. " + "But this is _much_ less likely than a srcSize field error."); + if (ZSTD_isError(res)) return res; + assert(res <= dstCapacity); + if (res != 0) + dst = (BYTE*)dst + res; + dstCapacity -= res; + } + moreThan1Frame = 1; + } /* while (srcSize >= ZSTD_frameHeaderSize_prefix) */ + + RETURN_ERROR_IF(srcSize, srcSize_wrong, "input not entirely consumed"); + + return (size_t)((BYTE*)dst - (BYTE*)dststart); +} + +size_t ZSTD_decompress_usingDict(ZSTD_DCtx* dctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + const void* dict, size_t dictSize) +{ + return ZSTD_decompressMultiFrame(dctx, dst, dstCapacity, src, srcSize, dict, dictSize, NULL); +} + + +static ZSTD_DDict const* ZSTD_getDDict(ZSTD_DCtx* dctx) +{ + switch (dctx->dictUses) { + default: + assert(0 /* Impossible */); + ZSTD_FALLTHROUGH; + case ZSTD_dont_use: + ZSTD_clearDict(dctx); + return NULL; + case ZSTD_use_indefinitely: + return dctx->ddict; + case ZSTD_use_once: + dctx->dictUses = ZSTD_dont_use; + return dctx->ddict; + } +} + +size_t ZSTD_decompressDCtx(ZSTD_DCtx* dctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize) +{ + return ZSTD_decompress_usingDDict(dctx, dst, dstCapacity, src, srcSize, ZSTD_getDDict(dctx)); +} + + +size_t ZSTD_decompress(void* dst, size_t dstCapacity, const void* src, size_t srcSize) +{ +#if defined(ZSTD_HEAPMODE) && (ZSTD_HEAPMODE>=1) + size_t regenSize; + ZSTD_DCtx* const dctx = ZSTD_createDCtx_internal(ZSTD_defaultCMem); + RETURN_ERROR_IF(dctx==NULL, memory_allocation, "NULL pointer!"); + regenSize = ZSTD_decompressDCtx(dctx, dst, dstCapacity, src, srcSize); + ZSTD_freeDCtx(dctx); + return regenSize; +#else /* stack mode */ + ZSTD_DCtx dctx; + ZSTD_initDCtx_internal(&dctx); + return ZSTD_decompressDCtx(&dctx, dst, dstCapacity, src, srcSize); +#endif +} + + +/*-************************************** +* Advanced Streaming Decompression API +* Bufferless and synchronous +****************************************/ +size_t ZSTD_nextSrcSizeToDecompress(ZSTD_DCtx* dctx) { return dctx->expected; } + +/** + * Similar to ZSTD_nextSrcSizeToDecompress(), but when a block input can be streamed, we + * allow taking a partial block as the input. Currently only raw uncompressed blocks can + * be streamed. + * + * For blocks that can be streamed, this allows us to reduce the latency until we produce + * output, and avoid copying the input. + * + * @param inputSize - The total amount of input that the caller currently has. + */ +static size_t ZSTD_nextSrcSizeToDecompressWithInputSize(ZSTD_DCtx* dctx, size_t inputSize) { + if (!(dctx->stage == ZSTDds_decompressBlock || dctx->stage == ZSTDds_decompressLastBlock)) + return dctx->expected; + if (dctx->bType != bt_raw) + return dctx->expected; + return BOUNDED(1, inputSize, dctx->expected); +} + +ZSTD_nextInputType_e ZSTD_nextInputType(ZSTD_DCtx* dctx) { + switch(dctx->stage) + { + default: /* should not happen */ + assert(0); + ZSTD_FALLTHROUGH; + case ZSTDds_getFrameHeaderSize: + ZSTD_FALLTHROUGH; + case ZSTDds_decodeFrameHeader: + return ZSTDnit_frameHeader; + case ZSTDds_decodeBlockHeader: + return ZSTDnit_blockHeader; + case ZSTDds_decompressBlock: + return ZSTDnit_block; + case ZSTDds_decompressLastBlock: + return ZSTDnit_lastBlock; + case ZSTDds_checkChecksum: + return ZSTDnit_checksum; + case ZSTDds_decodeSkippableHeader: + ZSTD_FALLTHROUGH; + case ZSTDds_skipFrame: + return ZSTDnit_skippableFrame; + } +} + +static int ZSTD_isSkipFrame(ZSTD_DCtx* dctx) { return dctx->stage == ZSTDds_skipFrame; } + +/** ZSTD_decompressContinue() : + * srcSize : must be the exact nb of bytes expected (see ZSTD_nextSrcSizeToDecompress()) + * @return : nb of bytes generated into `dst` (necessarily <= `dstCapacity) + * or an error code, which can be tested using ZSTD_isError() */ +size_t ZSTD_decompressContinue(ZSTD_DCtx* dctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize) +{ + DEBUGLOG(5, "ZSTD_decompressContinue (srcSize:%u)", (unsigned)srcSize); + /* Sanity check */ + RETURN_ERROR_IF(srcSize != ZSTD_nextSrcSizeToDecompressWithInputSize(dctx, srcSize), srcSize_wrong, "not allowed"); + ZSTD_checkContinuity(dctx, dst, dstCapacity); + + dctx->processedCSize += srcSize; + + switch (dctx->stage) + { + case ZSTDds_getFrameHeaderSize : + assert(src != NULL); + if (dctx->format == ZSTD_f_zstd1) { /* allows header */ + assert(srcSize >= ZSTD_FRAMEIDSIZE); /* to read skippable magic number */ + if ((MEM_readLE32(src) & ZSTD_MAGIC_SKIPPABLE_MASK) == ZSTD_MAGIC_SKIPPABLE_START) { /* skippable frame */ + ZSTD_memcpy(dctx->headerBuffer, src, srcSize); + dctx->expected = ZSTD_SKIPPABLEHEADERSIZE - srcSize; /* remaining to load to get full skippable frame header */ + dctx->stage = ZSTDds_decodeSkippableHeader; + return 0; + } } + dctx->headerSize = ZSTD_frameHeaderSize_internal(src, srcSize, dctx->format); + if (ZSTD_isError(dctx->headerSize)) return dctx->headerSize; + ZSTD_memcpy(dctx->headerBuffer, src, srcSize); + dctx->expected = dctx->headerSize - srcSize; + dctx->stage = ZSTDds_decodeFrameHeader; + return 0; + + case ZSTDds_decodeFrameHeader: + assert(src != NULL); + ZSTD_memcpy(dctx->headerBuffer + (dctx->headerSize - srcSize), src, srcSize); + FORWARD_IF_ERROR(ZSTD_decodeFrameHeader(dctx, dctx->headerBuffer, dctx->headerSize), ""); + dctx->expected = ZSTD_blockHeaderSize; + dctx->stage = ZSTDds_decodeBlockHeader; + return 0; + + case ZSTDds_decodeBlockHeader: + { blockProperties_t bp; + size_t const cBlockSize = ZSTD_getcBlockSize(src, ZSTD_blockHeaderSize, &bp); + if (ZSTD_isError(cBlockSize)) return cBlockSize; + RETURN_ERROR_IF(cBlockSize > dctx->fParams.blockSizeMax, corruption_detected, "Block Size Exceeds Maximum"); + dctx->expected = cBlockSize; + dctx->bType = bp.blockType; + dctx->rleSize = bp.origSize; + if (cBlockSize) { + dctx->stage = bp.lastBlock ? ZSTDds_decompressLastBlock : ZSTDds_decompressBlock; + return 0; + } + /* empty block */ + if (bp.lastBlock) { + if (dctx->fParams.checksumFlag) { + dctx->expected = 4; + dctx->stage = ZSTDds_checkChecksum; + } else { + dctx->expected = 0; /* end of frame */ + dctx->stage = ZSTDds_getFrameHeaderSize; + } + } else { + dctx->expected = ZSTD_blockHeaderSize; /* jump to next header */ + dctx->stage = ZSTDds_decodeBlockHeader; + } + return 0; + } + + case ZSTDds_decompressLastBlock: + case ZSTDds_decompressBlock: + DEBUGLOG(5, "ZSTD_decompressContinue: case ZSTDds_decompressBlock"); + { size_t rSize; + switch(dctx->bType) + { + case bt_compressed: + DEBUGLOG(5, "ZSTD_decompressContinue: case bt_compressed"); + assert(dctx->isFrameDecompression == 1); + rSize = ZSTD_decompressBlock_internal(dctx, dst, dstCapacity, src, srcSize, is_streaming); + dctx->expected = 0; /* Streaming not supported */ + break; + case bt_raw : + assert(srcSize <= dctx->expected); + rSize = ZSTD_copyRawBlock(dst, dstCapacity, src, srcSize); + FORWARD_IF_ERROR(rSize, "ZSTD_copyRawBlock failed"); + assert(rSize == srcSize); + dctx->expected -= rSize; + break; + case bt_rle : + rSize = ZSTD_setRleBlock(dst, dstCapacity, *(const BYTE*)src, dctx->rleSize); + dctx->expected = 0; /* Streaming not supported */ + break; + case bt_reserved : /* should never happen */ + default: + RETURN_ERROR(corruption_detected, "invalid block type"); + } + FORWARD_IF_ERROR(rSize, ""); + RETURN_ERROR_IF(rSize > dctx->fParams.blockSizeMax, corruption_detected, "Decompressed Block Size Exceeds Maximum"); + DEBUGLOG(5, "ZSTD_decompressContinue: decoded size from block : %u", (unsigned)rSize); + dctx->decodedSize += rSize; + if (dctx->validateChecksum) XXH64_update(&dctx->xxhState, dst, rSize); + dctx->previousDstEnd = (char*)dst + rSize; + + /* Stay on the same stage until we are finished streaming the block. */ + if (dctx->expected > 0) { + return rSize; + } + + if (dctx->stage == ZSTDds_decompressLastBlock) { /* end of frame */ + DEBUGLOG(4, "ZSTD_decompressContinue: decoded size from frame : %u", (unsigned)dctx->decodedSize); + RETURN_ERROR_IF( + dctx->fParams.frameContentSize != ZSTD_CONTENTSIZE_UNKNOWN + && dctx->decodedSize != dctx->fParams.frameContentSize, + corruption_detected, ""); + if (dctx->fParams.checksumFlag) { /* another round for frame checksum */ + dctx->expected = 4; + dctx->stage = ZSTDds_checkChecksum; + } else { + ZSTD_DCtx_trace_end(dctx, dctx->decodedSize, dctx->processedCSize, /* streaming */ 1); + dctx->expected = 0; /* ends here */ + dctx->stage = ZSTDds_getFrameHeaderSize; + } + } else { + dctx->stage = ZSTDds_decodeBlockHeader; + dctx->expected = ZSTD_blockHeaderSize; + } + return rSize; + } + + case ZSTDds_checkChecksum: + assert(srcSize == 4); /* guaranteed by dctx->expected */ + { + if (dctx->validateChecksum) { + U32 const h32 = (U32)XXH64_digest(&dctx->xxhState); + U32 const check32 = MEM_readLE32(src); + DEBUGLOG(4, "ZSTD_decompressContinue: checksum : calculated %08X :: %08X read", (unsigned)h32, (unsigned)check32); + RETURN_ERROR_IF(check32 != h32, checksum_wrong, ""); + } + ZSTD_DCtx_trace_end(dctx, dctx->decodedSize, dctx->processedCSize, /* streaming */ 1); + dctx->expected = 0; + dctx->stage = ZSTDds_getFrameHeaderSize; + return 0; + } + + case ZSTDds_decodeSkippableHeader: + assert(src != NULL); + assert(srcSize <= ZSTD_SKIPPABLEHEADERSIZE); + assert(dctx->format != ZSTD_f_zstd1_magicless); + ZSTD_memcpy(dctx->headerBuffer + (ZSTD_SKIPPABLEHEADERSIZE - srcSize), src, srcSize); /* complete skippable header */ + dctx->expected = MEM_readLE32(dctx->headerBuffer + ZSTD_FRAMEIDSIZE); /* note : dctx->expected can grow seriously large, beyond local buffer size */ + dctx->stage = ZSTDds_skipFrame; + return 0; + + case ZSTDds_skipFrame: + dctx->expected = 0; + dctx->stage = ZSTDds_getFrameHeaderSize; + return 0; + + default: + assert(0); /* impossible */ + RETURN_ERROR(GENERIC, "impossible to reach"); /* some compilers require default to do something */ + } +} + + +static size_t ZSTD_refDictContent(ZSTD_DCtx* dctx, const void* dict, size_t dictSize) +{ + dctx->dictEnd = dctx->previousDstEnd; + dctx->virtualStart = (const char*)dict - ((const char*)(dctx->previousDstEnd) - (const char*)(dctx->prefixStart)); + dctx->prefixStart = dict; + dctx->previousDstEnd = (const char*)dict + dictSize; +#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION + dctx->dictContentBeginForFuzzing = dctx->prefixStart; + dctx->dictContentEndForFuzzing = dctx->previousDstEnd; +#endif + return 0; +} + +/*! ZSTD_loadDEntropy() : + * dict : must point at beginning of a valid zstd dictionary. + * @return : size of entropy tables read */ +size_t +ZSTD_loadDEntropy(ZSTD_entropyDTables_t* entropy, + const void* const dict, size_t const dictSize) +{ + const BYTE* dictPtr = (const BYTE*)dict; + const BYTE* const dictEnd = dictPtr + dictSize; + + RETURN_ERROR_IF(dictSize <= 8, dictionary_corrupted, "dict is too small"); + assert(MEM_readLE32(dict) == ZSTD_MAGIC_DICTIONARY); /* dict must be valid */ + dictPtr += 8; /* skip header = magic + dictID */ + + ZSTD_STATIC_ASSERT(offsetof(ZSTD_entropyDTables_t, OFTable) == offsetof(ZSTD_entropyDTables_t, LLTable) + sizeof(entropy->LLTable)); + ZSTD_STATIC_ASSERT(offsetof(ZSTD_entropyDTables_t, MLTable) == offsetof(ZSTD_entropyDTables_t, OFTable) + sizeof(entropy->OFTable)); + ZSTD_STATIC_ASSERT(sizeof(entropy->LLTable) + sizeof(entropy->OFTable) + sizeof(entropy->MLTable) >= HUF_DECOMPRESS_WORKSPACE_SIZE); + { void* const workspace = &entropy->LLTable; /* use fse tables as temporary workspace; implies fse tables are grouped together */ + size_t const workspaceSize = sizeof(entropy->LLTable) + sizeof(entropy->OFTable) + sizeof(entropy->MLTable); +#ifdef HUF_FORCE_DECOMPRESS_X1 + /* in minimal huffman, we always use X1 variants */ + size_t const hSize = HUF_readDTableX1_wksp(entropy->hufTable, + dictPtr, dictEnd - dictPtr, + workspace, workspaceSize, /* flags */ 0); +#else + size_t const hSize = HUF_readDTableX2_wksp(entropy->hufTable, + dictPtr, (size_t)(dictEnd - dictPtr), + workspace, workspaceSize, /* flags */ 0); +#endif + RETURN_ERROR_IF(HUF_isError(hSize), dictionary_corrupted, ""); + dictPtr += hSize; + } + + { short offcodeNCount[MaxOff+1]; + unsigned offcodeMaxValue = MaxOff, offcodeLog; + size_t const offcodeHeaderSize = FSE_readNCount(offcodeNCount, &offcodeMaxValue, &offcodeLog, dictPtr, (size_t)(dictEnd-dictPtr)); + RETURN_ERROR_IF(FSE_isError(offcodeHeaderSize), dictionary_corrupted, ""); + RETURN_ERROR_IF(offcodeMaxValue > MaxOff, dictionary_corrupted, ""); + RETURN_ERROR_IF(offcodeLog > OffFSELog, dictionary_corrupted, ""); + ZSTD_buildFSETable( entropy->OFTable, + offcodeNCount, offcodeMaxValue, + OF_base, OF_bits, + offcodeLog, + entropy->workspace, sizeof(entropy->workspace), + /* bmi2 */0); + dictPtr += offcodeHeaderSize; + } + + { short matchlengthNCount[MaxML+1]; + unsigned matchlengthMaxValue = MaxML, matchlengthLog; + size_t const matchlengthHeaderSize = FSE_readNCount(matchlengthNCount, &matchlengthMaxValue, &matchlengthLog, dictPtr, (size_t)(dictEnd-dictPtr)); + RETURN_ERROR_IF(FSE_isError(matchlengthHeaderSize), dictionary_corrupted, ""); + RETURN_ERROR_IF(matchlengthMaxValue > MaxML, dictionary_corrupted, ""); + RETURN_ERROR_IF(matchlengthLog > MLFSELog, dictionary_corrupted, ""); + ZSTD_buildFSETable( entropy->MLTable, + matchlengthNCount, matchlengthMaxValue, + ML_base, ML_bits, + matchlengthLog, + entropy->workspace, sizeof(entropy->workspace), + /* bmi2 */ 0); + dictPtr += matchlengthHeaderSize; + } + + { short litlengthNCount[MaxLL+1]; + unsigned litlengthMaxValue = MaxLL, litlengthLog; + size_t const litlengthHeaderSize = FSE_readNCount(litlengthNCount, &litlengthMaxValue, &litlengthLog, dictPtr, (size_t)(dictEnd-dictPtr)); + RETURN_ERROR_IF(FSE_isError(litlengthHeaderSize), dictionary_corrupted, ""); + RETURN_ERROR_IF(litlengthMaxValue > MaxLL, dictionary_corrupted, ""); + RETURN_ERROR_IF(litlengthLog > LLFSELog, dictionary_corrupted, ""); + ZSTD_buildFSETable( entropy->LLTable, + litlengthNCount, litlengthMaxValue, + LL_base, LL_bits, + litlengthLog, + entropy->workspace, sizeof(entropy->workspace), + /* bmi2 */ 0); + dictPtr += litlengthHeaderSize; + } + + RETURN_ERROR_IF(dictPtr+12 > dictEnd, dictionary_corrupted, ""); + { int i; + size_t const dictContentSize = (size_t)(dictEnd - (dictPtr+12)); + for (i=0; i<3; i++) { + U32 const rep = MEM_readLE32(dictPtr); dictPtr += 4; + RETURN_ERROR_IF(rep==0 || rep > dictContentSize, + dictionary_corrupted, ""); + entropy->rep[i] = rep; + } } + + return (size_t)(dictPtr - (const BYTE*)dict); +} + +static size_t ZSTD_decompress_insertDictionary(ZSTD_DCtx* dctx, const void* dict, size_t dictSize) +{ + if (dictSize < 8) return ZSTD_refDictContent(dctx, dict, dictSize); + { U32 const magic = MEM_readLE32(dict); + if (magic != ZSTD_MAGIC_DICTIONARY) { + return ZSTD_refDictContent(dctx, dict, dictSize); /* pure content mode */ + } } + dctx->dictID = MEM_readLE32((const char*)dict + ZSTD_FRAMEIDSIZE); + + /* load entropy tables */ + { size_t const eSize = ZSTD_loadDEntropy(&dctx->entropy, dict, dictSize); + RETURN_ERROR_IF(ZSTD_isError(eSize), dictionary_corrupted, ""); + dict = (const char*)dict + eSize; + dictSize -= eSize; + } + dctx->litEntropy = dctx->fseEntropy = 1; + + /* reference dictionary content */ + return ZSTD_refDictContent(dctx, dict, dictSize); +} + +size_t ZSTD_decompressBegin(ZSTD_DCtx* dctx) +{ + assert(dctx != NULL); +#if ZSTD_TRACE + dctx->traceCtx = (ZSTD_trace_decompress_begin != NULL) ? ZSTD_trace_decompress_begin(dctx) : 0; +#endif + dctx->expected = ZSTD_startingInputLength(dctx->format); /* dctx->format must be properly set */ + dctx->stage = ZSTDds_getFrameHeaderSize; + dctx->processedCSize = 0; + dctx->decodedSize = 0; + dctx->previousDstEnd = NULL; + dctx->prefixStart = NULL; + dctx->virtualStart = NULL; + dctx->dictEnd = NULL; + dctx->entropy.hufTable[0] = (HUF_DTable)((ZSTD_HUFFDTABLE_CAPACITY_LOG)*0x1000001); /* cover both little and big endian */ + dctx->litEntropy = dctx->fseEntropy = 0; + dctx->dictID = 0; + dctx->bType = bt_reserved; + dctx->isFrameDecompression = 1; + ZSTD_STATIC_ASSERT(sizeof(dctx->entropy.rep) == sizeof(repStartValue)); + ZSTD_memcpy(dctx->entropy.rep, repStartValue, sizeof(repStartValue)); /* initial repcodes */ + dctx->LLTptr = dctx->entropy.LLTable; + dctx->MLTptr = dctx->entropy.MLTable; + dctx->OFTptr = dctx->entropy.OFTable; + dctx->HUFptr = dctx->entropy.hufTable; + return 0; +} + +size_t ZSTD_decompressBegin_usingDict(ZSTD_DCtx* dctx, const void* dict, size_t dictSize) +{ + FORWARD_IF_ERROR( ZSTD_decompressBegin(dctx) , ""); + if (dict && dictSize) + RETURN_ERROR_IF( + ZSTD_isError(ZSTD_decompress_insertDictionary(dctx, dict, dictSize)), + dictionary_corrupted, ""); + return 0; +} + + +/* ====== ZSTD_DDict ====== */ + +size_t ZSTD_decompressBegin_usingDDict(ZSTD_DCtx* dctx, const ZSTD_DDict* ddict) +{ + DEBUGLOG(4, "ZSTD_decompressBegin_usingDDict"); + assert(dctx != NULL); + if (ddict) { + const char* const dictStart = (const char*)ZSTD_DDict_dictContent(ddict); + size_t const dictSize = ZSTD_DDict_dictSize(ddict); + const void* const dictEnd = dictStart + dictSize; + dctx->ddictIsCold = (dctx->dictEnd != dictEnd); + DEBUGLOG(4, "DDict is %s", + dctx->ddictIsCold ? "~cold~" : "hot!"); + } + FORWARD_IF_ERROR( ZSTD_decompressBegin(dctx) , ""); + if (ddict) { /* NULL ddict is equivalent to no dictionary */ + ZSTD_copyDDictParameters(dctx, ddict); + } + return 0; +} + +/*! ZSTD_getDictID_fromDict() : + * Provides the dictID stored within dictionary. + * if @return == 0, the dictionary is not conformant with Zstandard specification. + * It can still be loaded, but as a content-only dictionary. */ +unsigned ZSTD_getDictID_fromDict(const void* dict, size_t dictSize) +{ + if (dictSize < 8) return 0; + if (MEM_readLE32(dict) != ZSTD_MAGIC_DICTIONARY) return 0; + return MEM_readLE32((const char*)dict + ZSTD_FRAMEIDSIZE); +} + +/*! ZSTD_getDictID_fromFrame() : + * Provides the dictID required to decompress frame stored within `src`. + * If @return == 0, the dictID could not be decoded. + * This could for one of the following reasons : + * - The frame does not require a dictionary (most common case). + * - The frame was built with dictID intentionally removed. + * Needed dictionary is a hidden piece of information. + * Note : this use case also happens when using a non-conformant dictionary. + * - `srcSize` is too small, and as a result, frame header could not be decoded. + * Note : possible if `srcSize < ZSTD_FRAMEHEADERSIZE_MAX`. + * - This is not a Zstandard frame. + * When identifying the exact failure cause, it's possible to use + * ZSTD_getFrameHeader(), which will provide a more precise error code. */ +unsigned ZSTD_getDictID_fromFrame(const void* src, size_t srcSize) +{ + ZSTD_frameHeader zfp = { 0, 0, 0, ZSTD_frame, 0, 0, 0, 0, 0 }; + size_t const hError = ZSTD_getFrameHeader(&zfp, src, srcSize); + if (ZSTD_isError(hError)) return 0; + return zfp.dictID; +} + + +/*! ZSTD_decompress_usingDDict() : +* Decompression using a pre-digested Dictionary +* Use dictionary without significant overhead. */ +size_t ZSTD_decompress_usingDDict(ZSTD_DCtx* dctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + const ZSTD_DDict* ddict) +{ + /* pass content and size in case legacy frames are encountered */ + return ZSTD_decompressMultiFrame(dctx, dst, dstCapacity, src, srcSize, + NULL, 0, + ddict); +} + + +/*===================================== +* Streaming decompression +*====================================*/ + +ZSTD_DStream* ZSTD_createDStream(void) +{ + DEBUGLOG(3, "ZSTD_createDStream"); + return ZSTD_createDCtx_internal(ZSTD_defaultCMem); +} + +ZSTD_DStream* ZSTD_initStaticDStream(void *workspace, size_t workspaceSize) +{ + return ZSTD_initStaticDCtx(workspace, workspaceSize); +} + +ZSTD_DStream* ZSTD_createDStream_advanced(ZSTD_customMem customMem) +{ + return ZSTD_createDCtx_internal(customMem); +} + +size_t ZSTD_freeDStream(ZSTD_DStream* zds) +{ + return ZSTD_freeDCtx(zds); +} + + +/* *** Initialization *** */ + +size_t ZSTD_DStreamInSize(void) { return ZSTD_BLOCKSIZE_MAX + ZSTD_blockHeaderSize; } +size_t ZSTD_DStreamOutSize(void) { return ZSTD_BLOCKSIZE_MAX; } + +size_t ZSTD_DCtx_loadDictionary_advanced(ZSTD_DCtx* dctx, + const void* dict, size_t dictSize, + ZSTD_dictLoadMethod_e dictLoadMethod, + ZSTD_dictContentType_e dictContentType) +{ + RETURN_ERROR_IF(dctx->streamStage != zdss_init, stage_wrong, ""); + ZSTD_clearDict(dctx); + if (dict && dictSize != 0) { + dctx->ddictLocal = ZSTD_createDDict_advanced(dict, dictSize, dictLoadMethod, dictContentType, dctx->customMem); + RETURN_ERROR_IF(dctx->ddictLocal == NULL, memory_allocation, "NULL pointer!"); + dctx->ddict = dctx->ddictLocal; + dctx->dictUses = ZSTD_use_indefinitely; + } + return 0; +} + +size_t ZSTD_DCtx_loadDictionary_byReference(ZSTD_DCtx* dctx, const void* dict, size_t dictSize) +{ + return ZSTD_DCtx_loadDictionary_advanced(dctx, dict, dictSize, ZSTD_dlm_byRef, ZSTD_dct_auto); +} + +size_t ZSTD_DCtx_loadDictionary(ZSTD_DCtx* dctx, const void* dict, size_t dictSize) +{ + return ZSTD_DCtx_loadDictionary_advanced(dctx, dict, dictSize, ZSTD_dlm_byCopy, ZSTD_dct_auto); +} + +size_t ZSTD_DCtx_refPrefix_advanced(ZSTD_DCtx* dctx, const void* prefix, size_t prefixSize, ZSTD_dictContentType_e dictContentType) +{ + FORWARD_IF_ERROR(ZSTD_DCtx_loadDictionary_advanced(dctx, prefix, prefixSize, ZSTD_dlm_byRef, dictContentType), ""); + dctx->dictUses = ZSTD_use_once; + return 0; +} + +size_t ZSTD_DCtx_refPrefix(ZSTD_DCtx* dctx, const void* prefix, size_t prefixSize) +{ + return ZSTD_DCtx_refPrefix_advanced(dctx, prefix, prefixSize, ZSTD_dct_rawContent); +} + + +/* ZSTD_initDStream_usingDict() : + * return : expected size, aka ZSTD_startingInputLength(). + * this function cannot fail */ +size_t ZSTD_initDStream_usingDict(ZSTD_DStream* zds, const void* dict, size_t dictSize) +{ + DEBUGLOG(4, "ZSTD_initDStream_usingDict"); + FORWARD_IF_ERROR( ZSTD_DCtx_reset(zds, ZSTD_reset_session_only) , ""); + FORWARD_IF_ERROR( ZSTD_DCtx_loadDictionary(zds, dict, dictSize) , ""); + return ZSTD_startingInputLength(zds->format); +} + +/* note : this variant can't fail */ +size_t ZSTD_initDStream(ZSTD_DStream* zds) +{ + DEBUGLOG(4, "ZSTD_initDStream"); + FORWARD_IF_ERROR(ZSTD_DCtx_reset(zds, ZSTD_reset_session_only), ""); + FORWARD_IF_ERROR(ZSTD_DCtx_refDDict(zds, NULL), ""); + return ZSTD_startingInputLength(zds->format); +} + +/* ZSTD_initDStream_usingDDict() : + * ddict will just be referenced, and must outlive decompression session + * this function cannot fail */ +size_t ZSTD_initDStream_usingDDict(ZSTD_DStream* dctx, const ZSTD_DDict* ddict) +{ + DEBUGLOG(4, "ZSTD_initDStream_usingDDict"); + FORWARD_IF_ERROR( ZSTD_DCtx_reset(dctx, ZSTD_reset_session_only) , ""); + FORWARD_IF_ERROR( ZSTD_DCtx_refDDict(dctx, ddict) , ""); + return ZSTD_startingInputLength(dctx->format); +} + +/* ZSTD_resetDStream() : + * return : expected size, aka ZSTD_startingInputLength(). + * this function cannot fail */ +size_t ZSTD_resetDStream(ZSTD_DStream* dctx) +{ + DEBUGLOG(4, "ZSTD_resetDStream"); + FORWARD_IF_ERROR(ZSTD_DCtx_reset(dctx, ZSTD_reset_session_only), ""); + return ZSTD_startingInputLength(dctx->format); +} + + +size_t ZSTD_DCtx_refDDict(ZSTD_DCtx* dctx, const ZSTD_DDict* ddict) +{ + RETURN_ERROR_IF(dctx->streamStage != zdss_init, stage_wrong, ""); + ZSTD_clearDict(dctx); + if (ddict) { + dctx->ddict = ddict; + dctx->dictUses = ZSTD_use_indefinitely; + if (dctx->refMultipleDDicts == ZSTD_rmd_refMultipleDDicts) { + if (dctx->ddictSet == NULL) { + dctx->ddictSet = ZSTD_createDDictHashSet(dctx->customMem); + if (!dctx->ddictSet) { + RETURN_ERROR(memory_allocation, "Failed to allocate memory for hash set!"); + } + } + assert(!dctx->staticSize); /* Impossible: ddictSet cannot have been allocated if static dctx */ + FORWARD_IF_ERROR(ZSTD_DDictHashSet_addDDict(dctx->ddictSet, ddict, dctx->customMem), ""); + } + } + return 0; +} + +/* ZSTD_DCtx_setMaxWindowSize() : + * note : no direct equivalence in ZSTD_DCtx_setParameter, + * since this version sets windowSize, and the other sets windowLog */ +size_t ZSTD_DCtx_setMaxWindowSize(ZSTD_DCtx* dctx, size_t maxWindowSize) +{ + ZSTD_bounds const bounds = ZSTD_dParam_getBounds(ZSTD_d_windowLogMax); + size_t const min = (size_t)1 << bounds.lowerBound; + size_t const max = (size_t)1 << bounds.upperBound; + RETURN_ERROR_IF(dctx->streamStage != zdss_init, stage_wrong, ""); + RETURN_ERROR_IF(maxWindowSize < min, parameter_outOfBound, ""); + RETURN_ERROR_IF(maxWindowSize > max, parameter_outOfBound, ""); + dctx->maxWindowSize = maxWindowSize; + return 0; +} + +size_t ZSTD_DCtx_setFormat(ZSTD_DCtx* dctx, ZSTD_format_e format) +{ + return ZSTD_DCtx_setParameter(dctx, ZSTD_d_format, (int)format); +} + +ZSTD_bounds ZSTD_dParam_getBounds(ZSTD_dParameter dParam) +{ + ZSTD_bounds bounds = { 0, 0, 0 }; + switch(dParam) { + case ZSTD_d_windowLogMax: + bounds.lowerBound = ZSTD_WINDOWLOG_ABSOLUTEMIN; + bounds.upperBound = ZSTD_WINDOWLOG_MAX; + return bounds; + case ZSTD_d_format: + bounds.lowerBound = (int)ZSTD_f_zstd1; + bounds.upperBound = (int)ZSTD_f_zstd1_magicless; + ZSTD_STATIC_ASSERT(ZSTD_f_zstd1 < ZSTD_f_zstd1_magicless); + return bounds; + case ZSTD_d_stableOutBuffer: + bounds.lowerBound = (int)ZSTD_bm_buffered; + bounds.upperBound = (int)ZSTD_bm_stable; + return bounds; + case ZSTD_d_forceIgnoreChecksum: + bounds.lowerBound = (int)ZSTD_d_validateChecksum; + bounds.upperBound = (int)ZSTD_d_ignoreChecksum; + return bounds; + case ZSTD_d_refMultipleDDicts: + bounds.lowerBound = (int)ZSTD_rmd_refSingleDDict; + bounds.upperBound = (int)ZSTD_rmd_refMultipleDDicts; + return bounds; + case ZSTD_d_disableHuffmanAssembly: + bounds.lowerBound = 0; + bounds.upperBound = 1; + return bounds; + case ZSTD_d_maxBlockSize: + bounds.lowerBound = ZSTD_BLOCKSIZE_MAX_MIN; + bounds.upperBound = ZSTD_BLOCKSIZE_MAX; + return bounds; + + default:; + } + bounds.error = ERROR(parameter_unsupported); + return bounds; +} + +/* ZSTD_dParam_withinBounds: + * @return 1 if value is within dParam bounds, + * 0 otherwise */ +static int ZSTD_dParam_withinBounds(ZSTD_dParameter dParam, int value) +{ + ZSTD_bounds const bounds = ZSTD_dParam_getBounds(dParam); + if (ZSTD_isError(bounds.error)) return 0; + if (value < bounds.lowerBound) return 0; + if (value > bounds.upperBound) return 0; + return 1; +} + +#define CHECK_DBOUNDS(p,v) { \ + RETURN_ERROR_IF(!ZSTD_dParam_withinBounds(p, v), parameter_outOfBound, ""); \ +} + +size_t ZSTD_DCtx_getParameter(ZSTD_DCtx* dctx, ZSTD_dParameter param, int* value) +{ + switch (param) { + case ZSTD_d_windowLogMax: + *value = (int)ZSTD_highbit32((U32)dctx->maxWindowSize); + return 0; + case ZSTD_d_format: + *value = (int)dctx->format; + return 0; + case ZSTD_d_stableOutBuffer: + *value = (int)dctx->outBufferMode; + return 0; + case ZSTD_d_forceIgnoreChecksum: + *value = (int)dctx->forceIgnoreChecksum; + return 0; + case ZSTD_d_refMultipleDDicts: + *value = (int)dctx->refMultipleDDicts; + return 0; + case ZSTD_d_disableHuffmanAssembly: + *value = (int)dctx->disableHufAsm; + return 0; + case ZSTD_d_maxBlockSize: + *value = dctx->maxBlockSizeParam; + return 0; + default:; + } + RETURN_ERROR(parameter_unsupported, ""); +} + +size_t ZSTD_DCtx_setParameter(ZSTD_DCtx* dctx, ZSTD_dParameter dParam, int value) +{ + RETURN_ERROR_IF(dctx->streamStage != zdss_init, stage_wrong, ""); + switch(dParam) { + case ZSTD_d_windowLogMax: + if (value == 0) value = ZSTD_WINDOWLOG_LIMIT_DEFAULT; + CHECK_DBOUNDS(ZSTD_d_windowLogMax, value); + dctx->maxWindowSize = ((size_t)1) << value; + return 0; + case ZSTD_d_format: + CHECK_DBOUNDS(ZSTD_d_format, value); + dctx->format = (ZSTD_format_e)value; + return 0; + case ZSTD_d_stableOutBuffer: + CHECK_DBOUNDS(ZSTD_d_stableOutBuffer, value); + dctx->outBufferMode = (ZSTD_bufferMode_e)value; + return 0; + case ZSTD_d_forceIgnoreChecksum: + CHECK_DBOUNDS(ZSTD_d_forceIgnoreChecksum, value); + dctx->forceIgnoreChecksum = (ZSTD_forceIgnoreChecksum_e)value; + return 0; + case ZSTD_d_refMultipleDDicts: + CHECK_DBOUNDS(ZSTD_d_refMultipleDDicts, value); + if (dctx->staticSize != 0) { + RETURN_ERROR(parameter_unsupported, "Static dctx does not support multiple DDicts!"); + } + dctx->refMultipleDDicts = (ZSTD_refMultipleDDicts_e)value; + return 0; + case ZSTD_d_disableHuffmanAssembly: + CHECK_DBOUNDS(ZSTD_d_disableHuffmanAssembly, value); + dctx->disableHufAsm = value != 0; + return 0; + case ZSTD_d_maxBlockSize: + if (value != 0) CHECK_DBOUNDS(ZSTD_d_maxBlockSize, value); + dctx->maxBlockSizeParam = value; + return 0; + default:; + } + RETURN_ERROR(parameter_unsupported, ""); +} + +size_t ZSTD_DCtx_reset(ZSTD_DCtx* dctx, ZSTD_ResetDirective reset) +{ + if ( (reset == ZSTD_reset_session_only) + || (reset == ZSTD_reset_session_and_parameters) ) { + dctx->streamStage = zdss_init; + dctx->noForwardProgress = 0; + dctx->isFrameDecompression = 1; + } + if ( (reset == ZSTD_reset_parameters) + || (reset == ZSTD_reset_session_and_parameters) ) { + RETURN_ERROR_IF(dctx->streamStage != zdss_init, stage_wrong, ""); + ZSTD_clearDict(dctx); + ZSTD_DCtx_resetParameters(dctx); + } + return 0; +} + + +size_t ZSTD_sizeof_DStream(const ZSTD_DStream* dctx) +{ + return ZSTD_sizeof_DCtx(dctx); +} + +static size_t ZSTD_decodingBufferSize_internal(unsigned long long windowSize, unsigned long long frameContentSize, size_t blockSizeMax) +{ + size_t const blockSize = MIN((size_t)MIN(windowSize, ZSTD_BLOCKSIZE_MAX), blockSizeMax); + /* We need blockSize + WILDCOPY_OVERLENGTH worth of buffer so that if a block + * ends at windowSize + WILDCOPY_OVERLENGTH + 1 bytes, we can start writing + * the block at the beginning of the output buffer, and maintain a full window. + * + * We need another blockSize worth of buffer so that we can store split + * literals at the end of the block without overwriting the extDict window. + */ + unsigned long long const neededRBSize = windowSize + (blockSize * 2) + (WILDCOPY_OVERLENGTH * 2); + unsigned long long const neededSize = MIN(frameContentSize, neededRBSize); + size_t const minRBSize = (size_t) neededSize; + RETURN_ERROR_IF((unsigned long long)minRBSize != neededSize, + frameParameter_windowTooLarge, ""); + return minRBSize; +} + +size_t ZSTD_decodingBufferSize_min(unsigned long long windowSize, unsigned long long frameContentSize) +{ + return ZSTD_decodingBufferSize_internal(windowSize, frameContentSize, ZSTD_BLOCKSIZE_MAX); +} + +size_t ZSTD_estimateDStreamSize(size_t windowSize) +{ + size_t const blockSize = MIN(windowSize, ZSTD_BLOCKSIZE_MAX); + size_t const inBuffSize = blockSize; /* no block can be larger */ + size_t const outBuffSize = ZSTD_decodingBufferSize_min(windowSize, ZSTD_CONTENTSIZE_UNKNOWN); + return ZSTD_estimateDCtxSize() + inBuffSize + outBuffSize; +} + +size_t ZSTD_estimateDStreamSize_fromFrame(const void* src, size_t srcSize) +{ + U32 const windowSizeMax = 1U << ZSTD_WINDOWLOG_MAX; /* note : should be user-selectable, but requires an additional parameter (or a dctx) */ + ZSTD_frameHeader zfh; + size_t const err = ZSTD_getFrameHeader(&zfh, src, srcSize); + if (ZSTD_isError(err)) return err; + RETURN_ERROR_IF(err>0, srcSize_wrong, ""); + RETURN_ERROR_IF(zfh.windowSize > windowSizeMax, + frameParameter_windowTooLarge, ""); + return ZSTD_estimateDStreamSize((size_t)zfh.windowSize); +} + + +/* ***** Decompression ***** */ + +static int ZSTD_DCtx_isOverflow(ZSTD_DStream* zds, size_t const neededInBuffSize, size_t const neededOutBuffSize) +{ + return (zds->inBuffSize + zds->outBuffSize) >= (neededInBuffSize + neededOutBuffSize) * ZSTD_WORKSPACETOOLARGE_FACTOR; +} + +static void ZSTD_DCtx_updateOversizedDuration(ZSTD_DStream* zds, size_t const neededInBuffSize, size_t const neededOutBuffSize) +{ + if (ZSTD_DCtx_isOverflow(zds, neededInBuffSize, neededOutBuffSize)) + zds->oversizedDuration++; + else + zds->oversizedDuration = 0; +} + +static int ZSTD_DCtx_isOversizedTooLong(ZSTD_DStream* zds) +{ + return zds->oversizedDuration >= ZSTD_WORKSPACETOOLARGE_MAXDURATION; +} + +/* Checks that the output buffer hasn't changed if ZSTD_obm_stable is used. */ +static size_t ZSTD_checkOutBuffer(ZSTD_DStream const* zds, ZSTD_outBuffer const* output) +{ + ZSTD_outBuffer const expect = zds->expectedOutBuffer; + /* No requirement when ZSTD_obm_stable is not enabled. */ + if (zds->outBufferMode != ZSTD_bm_stable) + return 0; + /* Any buffer is allowed in zdss_init, this must be the same for every other call until + * the context is reset. + */ + if (zds->streamStage == zdss_init) + return 0; + /* The buffer must match our expectation exactly. */ + if (expect.dst == output->dst && expect.pos == output->pos && expect.size == output->size) + return 0; + RETURN_ERROR(dstBuffer_wrong, "ZSTD_d_stableOutBuffer enabled but output differs!"); +} + +/* Calls ZSTD_decompressContinue() with the right parameters for ZSTD_decompressStream() + * and updates the stage and the output buffer state. This call is extracted so it can be + * used both when reading directly from the ZSTD_inBuffer, and in buffered input mode. + * NOTE: You must break after calling this function since the streamStage is modified. + */ +static size_t ZSTD_decompressContinueStream( + ZSTD_DStream* zds, char** op, char* oend, + void const* src, size_t srcSize) { + int const isSkipFrame = ZSTD_isSkipFrame(zds); + if (zds->outBufferMode == ZSTD_bm_buffered) { + size_t const dstSize = isSkipFrame ? 0 : zds->outBuffSize - zds->outStart; + size_t const decodedSize = ZSTD_decompressContinue(zds, + zds->outBuff + zds->outStart, dstSize, src, srcSize); + FORWARD_IF_ERROR(decodedSize, ""); + if (!decodedSize && !isSkipFrame) { + zds->streamStage = zdss_read; + } else { + zds->outEnd = zds->outStart + decodedSize; + zds->streamStage = zdss_flush; + } + } else { + /* Write directly into the output buffer */ + size_t const dstSize = isSkipFrame ? 0 : (size_t)(oend - *op); + size_t const decodedSize = ZSTD_decompressContinue(zds, *op, dstSize, src, srcSize); + FORWARD_IF_ERROR(decodedSize, ""); + *op += decodedSize; + /* Flushing is not needed. */ + zds->streamStage = zdss_read; + assert(*op <= oend); + assert(zds->outBufferMode == ZSTD_bm_stable); + } + return 0; +} + +size_t ZSTD_decompressStream(ZSTD_DStream* zds, ZSTD_outBuffer* output, ZSTD_inBuffer* input) +{ + const char* const src = (const char*)input->src; + const char* const istart = input->pos != 0 ? src + input->pos : src; + const char* const iend = input->size != 0 ? src + input->size : src; + const char* ip = istart; + char* const dst = (char*)output->dst; + char* const ostart = output->pos != 0 ? dst + output->pos : dst; + char* const oend = output->size != 0 ? dst + output->size : dst; + char* op = ostart; + U32 someMoreWork = 1; + + DEBUGLOG(5, "ZSTD_decompressStream"); + RETURN_ERROR_IF( + input->pos > input->size, + srcSize_wrong, + "forbidden. in: pos: %u vs size: %u", + (U32)input->pos, (U32)input->size); + RETURN_ERROR_IF( + output->pos > output->size, + dstSize_tooSmall, + "forbidden. out: pos: %u vs size: %u", + (U32)output->pos, (U32)output->size); + DEBUGLOG(5, "input size : %u", (U32)(input->size - input->pos)); + FORWARD_IF_ERROR(ZSTD_checkOutBuffer(zds, output), ""); + + while (someMoreWork) { + switch(zds->streamStage) + { + case zdss_init : + DEBUGLOG(5, "stage zdss_init => transparent reset "); + zds->streamStage = zdss_loadHeader; + zds->lhSize = zds->inPos = zds->outStart = zds->outEnd = 0; +#if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT>=1) + zds->legacyVersion = 0; +#endif + zds->hostageByte = 0; + zds->expectedOutBuffer = *output; + ZSTD_FALLTHROUGH; + + case zdss_loadHeader : + DEBUGLOG(5, "stage zdss_loadHeader (srcSize : %u)", (U32)(iend - ip)); +#if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT>=1) + if (zds->legacyVersion) { + RETURN_ERROR_IF(zds->staticSize, memory_allocation, + "legacy support is incompatible with static dctx"); + { size_t const hint = ZSTD_decompressLegacyStream(zds->legacyContext, zds->legacyVersion, output, input); + if (hint==0) zds->streamStage = zdss_init; + return hint; + } } +#endif + { size_t const hSize = ZSTD_getFrameHeader_advanced(&zds->fParams, zds->headerBuffer, zds->lhSize, zds->format); + if (zds->refMultipleDDicts && zds->ddictSet) { + ZSTD_DCtx_selectFrameDDict(zds); + } + if (ZSTD_isError(hSize)) { +#if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT>=1) + U32 const legacyVersion = ZSTD_isLegacy(istart, iend-istart); + if (legacyVersion) { + ZSTD_DDict const* const ddict = ZSTD_getDDict(zds); + const void* const dict = ddict ? ZSTD_DDict_dictContent(ddict) : NULL; + size_t const dictSize = ddict ? ZSTD_DDict_dictSize(ddict) : 0; + DEBUGLOG(5, "ZSTD_decompressStream: detected legacy version v0.%u", legacyVersion); + RETURN_ERROR_IF(zds->staticSize, memory_allocation, + "legacy support is incompatible with static dctx"); + FORWARD_IF_ERROR(ZSTD_initLegacyStream(&zds->legacyContext, + zds->previousLegacyVersion, legacyVersion, + dict, dictSize), ""); + zds->legacyVersion = zds->previousLegacyVersion = legacyVersion; + { size_t const hint = ZSTD_decompressLegacyStream(zds->legacyContext, legacyVersion, output, input); + if (hint==0) zds->streamStage = zdss_init; /* or stay in stage zdss_loadHeader */ + return hint; + } } +#endif + return hSize; /* error */ + } + if (hSize != 0) { /* need more input */ + size_t const toLoad = hSize - zds->lhSize; /* if hSize!=0, hSize > zds->lhSize */ + size_t const remainingInput = (size_t)(iend-ip); + assert(iend >= ip); + if (toLoad > remainingInput) { /* not enough input to load full header */ + if (remainingInput > 0) { + ZSTD_memcpy(zds->headerBuffer + zds->lhSize, ip, remainingInput); + zds->lhSize += remainingInput; + } + input->pos = input->size; + /* check first few bytes */ + FORWARD_IF_ERROR( + ZSTD_getFrameHeader_advanced(&zds->fParams, zds->headerBuffer, zds->lhSize, zds->format), + "First few bytes detected incorrect" ); + /* return hint input size */ + return (MAX((size_t)ZSTD_FRAMEHEADERSIZE_MIN(zds->format), hSize) - zds->lhSize) + ZSTD_blockHeaderSize; /* remaining header bytes + next block header */ + } + assert(ip != NULL); + ZSTD_memcpy(zds->headerBuffer + zds->lhSize, ip, toLoad); zds->lhSize = hSize; ip += toLoad; + break; + } } + + /* check for single-pass mode opportunity */ + if (zds->fParams.frameContentSize != ZSTD_CONTENTSIZE_UNKNOWN + && zds->fParams.frameType != ZSTD_skippableFrame + && (U64)(size_t)(oend-op) >= zds->fParams.frameContentSize) { + size_t const cSize = ZSTD_findFrameCompressedSize_advanced(istart, (size_t)(iend-istart), zds->format); + if (cSize <= (size_t)(iend-istart)) { + /* shortcut : using single-pass mode */ + size_t const decompressedSize = ZSTD_decompress_usingDDict(zds, op, (size_t)(oend-op), istart, cSize, ZSTD_getDDict(zds)); + if (ZSTD_isError(decompressedSize)) return decompressedSize; + DEBUGLOG(4, "shortcut to single-pass ZSTD_decompress_usingDDict()"); + assert(istart != NULL); + ip = istart + cSize; + op = op ? op + decompressedSize : op; /* can occur if frameContentSize = 0 (empty frame) */ + zds->expected = 0; + zds->streamStage = zdss_init; + someMoreWork = 0; + break; + } } + + /* Check output buffer is large enough for ZSTD_odm_stable. */ + if (zds->outBufferMode == ZSTD_bm_stable + && zds->fParams.frameType != ZSTD_skippableFrame + && zds->fParams.frameContentSize != ZSTD_CONTENTSIZE_UNKNOWN + && (U64)(size_t)(oend-op) < zds->fParams.frameContentSize) { + RETURN_ERROR(dstSize_tooSmall, "ZSTD_obm_stable passed but ZSTD_outBuffer is too small"); + } + + /* Consume header (see ZSTDds_decodeFrameHeader) */ + DEBUGLOG(4, "Consume header"); + FORWARD_IF_ERROR(ZSTD_decompressBegin_usingDDict(zds, ZSTD_getDDict(zds)), ""); + + if (zds->format == ZSTD_f_zstd1 + && (MEM_readLE32(zds->headerBuffer) & ZSTD_MAGIC_SKIPPABLE_MASK) == ZSTD_MAGIC_SKIPPABLE_START) { /* skippable frame */ + zds->expected = MEM_readLE32(zds->headerBuffer + ZSTD_FRAMEIDSIZE); + zds->stage = ZSTDds_skipFrame; + } else { + FORWARD_IF_ERROR(ZSTD_decodeFrameHeader(zds, zds->headerBuffer, zds->lhSize), ""); + zds->expected = ZSTD_blockHeaderSize; + zds->stage = ZSTDds_decodeBlockHeader; + } + + /* control buffer memory usage */ + DEBUGLOG(4, "Control max memory usage (%u KB <= max %u KB)", + (U32)(zds->fParams.windowSize >>10), + (U32)(zds->maxWindowSize >> 10) ); + zds->fParams.windowSize = MAX(zds->fParams.windowSize, 1U << ZSTD_WINDOWLOG_ABSOLUTEMIN); + RETURN_ERROR_IF(zds->fParams.windowSize > zds->maxWindowSize, + frameParameter_windowTooLarge, ""); + if (zds->maxBlockSizeParam != 0) + zds->fParams.blockSizeMax = MIN(zds->fParams.blockSizeMax, (unsigned)zds->maxBlockSizeParam); + + /* Adapt buffer sizes to frame header instructions */ + { size_t const neededInBuffSize = MAX(zds->fParams.blockSizeMax, 4 /* frame checksum */); + size_t const neededOutBuffSize = zds->outBufferMode == ZSTD_bm_buffered + ? ZSTD_decodingBufferSize_internal(zds->fParams.windowSize, zds->fParams.frameContentSize, zds->fParams.blockSizeMax) + : 0; + + ZSTD_DCtx_updateOversizedDuration(zds, neededInBuffSize, neededOutBuffSize); + + { int const tooSmall = (zds->inBuffSize < neededInBuffSize) || (zds->outBuffSize < neededOutBuffSize); + int const tooLarge = ZSTD_DCtx_isOversizedTooLong(zds); + + if (tooSmall || tooLarge) { + size_t const bufferSize = neededInBuffSize + neededOutBuffSize; + DEBUGLOG(4, "inBuff : from %u to %u", + (U32)zds->inBuffSize, (U32)neededInBuffSize); + DEBUGLOG(4, "outBuff : from %u to %u", + (U32)zds->outBuffSize, (U32)neededOutBuffSize); + if (zds->staticSize) { /* static DCtx */ + DEBUGLOG(4, "staticSize : %u", (U32)zds->staticSize); + assert(zds->staticSize >= sizeof(ZSTD_DCtx)); /* controlled at init */ + RETURN_ERROR_IF( + bufferSize > zds->staticSize - sizeof(ZSTD_DCtx), + memory_allocation, ""); + } else { + ZSTD_customFree(zds->inBuff, zds->customMem); + zds->inBuffSize = 0; + zds->outBuffSize = 0; + zds->inBuff = (char*)ZSTD_customMalloc(bufferSize, zds->customMem); + RETURN_ERROR_IF(zds->inBuff == NULL, memory_allocation, ""); + } + zds->inBuffSize = neededInBuffSize; + zds->outBuff = zds->inBuff + zds->inBuffSize; + zds->outBuffSize = neededOutBuffSize; + } } } + zds->streamStage = zdss_read; + ZSTD_FALLTHROUGH; + + case zdss_read: + DEBUGLOG(5, "stage zdss_read"); + { size_t const neededInSize = ZSTD_nextSrcSizeToDecompressWithInputSize(zds, (size_t)(iend - ip)); + DEBUGLOG(5, "neededInSize = %u", (U32)neededInSize); + if (neededInSize==0) { /* end of frame */ + zds->streamStage = zdss_init; + someMoreWork = 0; + break; + } + if ((size_t)(iend-ip) >= neededInSize) { /* decode directly from src */ + FORWARD_IF_ERROR(ZSTD_decompressContinueStream(zds, &op, oend, ip, neededInSize), ""); + assert(ip != NULL); + ip += neededInSize; + /* Function modifies the stage so we must break */ + break; + } } + if (ip==iend) { someMoreWork = 0; break; } /* no more input */ + zds->streamStage = zdss_load; + ZSTD_FALLTHROUGH; + + case zdss_load: + { size_t const neededInSize = ZSTD_nextSrcSizeToDecompress(zds); + size_t const toLoad = neededInSize - zds->inPos; + int const isSkipFrame = ZSTD_isSkipFrame(zds); + size_t loadedSize; + /* At this point we shouldn't be decompressing a block that we can stream. */ + assert(neededInSize == ZSTD_nextSrcSizeToDecompressWithInputSize(zds, (size_t)(iend - ip))); + if (isSkipFrame) { + loadedSize = MIN(toLoad, (size_t)(iend-ip)); + } else { + RETURN_ERROR_IF(toLoad > zds->inBuffSize - zds->inPos, + corruption_detected, + "should never happen"); + loadedSize = ZSTD_limitCopy(zds->inBuff + zds->inPos, toLoad, ip, (size_t)(iend-ip)); + } + if (loadedSize != 0) { + /* ip may be NULL */ + ip += loadedSize; + zds->inPos += loadedSize; + } + if (loadedSize < toLoad) { someMoreWork = 0; break; } /* not enough input, wait for more */ + + /* decode loaded input */ + zds->inPos = 0; /* input is consumed */ + FORWARD_IF_ERROR(ZSTD_decompressContinueStream(zds, &op, oend, zds->inBuff, neededInSize), ""); + /* Function modifies the stage so we must break */ + break; + } + case zdss_flush: + { + size_t const toFlushSize = zds->outEnd - zds->outStart; + size_t const flushedSize = ZSTD_limitCopy(op, (size_t)(oend-op), zds->outBuff + zds->outStart, toFlushSize); + + op = op ? op + flushedSize : op; + + zds->outStart += flushedSize; + if (flushedSize == toFlushSize) { /* flush completed */ + zds->streamStage = zdss_read; + if ( (zds->outBuffSize < zds->fParams.frameContentSize) + && (zds->outStart + zds->fParams.blockSizeMax > zds->outBuffSize) ) { + DEBUGLOG(5, "restart filling outBuff from beginning (left:%i, needed:%u)", + (int)(zds->outBuffSize - zds->outStart), + (U32)zds->fParams.blockSizeMax); + zds->outStart = zds->outEnd = 0; + } + break; + } } + /* cannot complete flush */ + someMoreWork = 0; + break; + + default: + assert(0); /* impossible */ + RETURN_ERROR(GENERIC, "impossible to reach"); /* some compilers require default to do something */ + } } + + /* result */ + input->pos = (size_t)(ip - (const char*)(input->src)); + output->pos = (size_t)(op - (char*)(output->dst)); + + /* Update the expected output buffer for ZSTD_obm_stable. */ + zds->expectedOutBuffer = *output; + + if ((ip==istart) && (op==ostart)) { /* no forward progress */ + zds->noForwardProgress ++; + if (zds->noForwardProgress >= ZSTD_NO_FORWARD_PROGRESS_MAX) { + RETURN_ERROR_IF(op==oend, noForwardProgress_destFull, ""); + RETURN_ERROR_IF(ip==iend, noForwardProgress_inputEmpty, ""); + assert(0); + } + } else { + zds->noForwardProgress = 0; + } + { size_t nextSrcSizeHint = ZSTD_nextSrcSizeToDecompress(zds); + if (!nextSrcSizeHint) { /* frame fully decoded */ + if (zds->outEnd == zds->outStart) { /* output fully flushed */ + if (zds->hostageByte) { + if (input->pos >= input->size) { + /* can't release hostage (not present) */ + zds->streamStage = zdss_read; + return 1; + } + input->pos++; /* release hostage */ + } /* zds->hostageByte */ + return 0; + } /* zds->outEnd == zds->outStart */ + if (!zds->hostageByte) { /* output not fully flushed; keep last byte as hostage; will be released when all output is flushed */ + input->pos--; /* note : pos > 0, otherwise, impossible to finish reading last block */ + zds->hostageByte=1; + } + return 1; + } /* nextSrcSizeHint==0 */ + nextSrcSizeHint += ZSTD_blockHeaderSize * (ZSTD_nextInputType(zds) == ZSTDnit_block); /* preload header of next block */ + assert(zds->inPos <= nextSrcSizeHint); + nextSrcSizeHint -= zds->inPos; /* part already loaded*/ + return nextSrcSizeHint; + } +} + +size_t ZSTD_decompressStream_simpleArgs ( + ZSTD_DCtx* dctx, + void* dst, size_t dstCapacity, size_t* dstPos, + const void* src, size_t srcSize, size_t* srcPos) +{ + ZSTD_outBuffer output; + ZSTD_inBuffer input; + output.dst = dst; + output.size = dstCapacity; + output.pos = *dstPos; + input.src = src; + input.size = srcSize; + input.pos = *srcPos; + { size_t const cErr = ZSTD_decompressStream(dctx, &output, &input); + *dstPos = output.pos; + *srcPos = input.pos; + return cErr; + } +} diff --git a/deps/zstd/lib/decompress/zstd_decompress_block.c b/deps/zstd/lib/decompress/zstd_decompress_block.c new file mode 100644 index 00000000000000..76d7332e888f8e --- /dev/null +++ b/deps/zstd/lib/decompress/zstd_decompress_block.c @@ -0,0 +1,2215 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/* zstd_decompress_block : + * this module takes care of decompressing _compressed_ block */ + +/*-******************************************************* +* Dependencies +*********************************************************/ +#include "../common/zstd_deps.h" /* ZSTD_memcpy, ZSTD_memmove, ZSTD_memset */ +#include "../common/compiler.h" /* prefetch */ +#include "../common/cpu.h" /* bmi2 */ +#include "../common/mem.h" /* low level memory routines */ +#define FSE_STATIC_LINKING_ONLY +#include "../common/fse.h" +#include "../common/huf.h" +#include "../common/zstd_internal.h" +#include "zstd_decompress_internal.h" /* ZSTD_DCtx */ +#include "zstd_ddict.h" /* ZSTD_DDictDictContent */ +#include "zstd_decompress_block.h" +#include "../common/bits.h" /* ZSTD_highbit32 */ + +/*_******************************************************* +* Macros +**********************************************************/ + +/* These two optional macros force the use one way or another of the two + * ZSTD_decompressSequences implementations. You can't force in both directions + * at the same time. + */ +#if defined(ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT) && \ + defined(ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG) +#error "Cannot force the use of the short and the long ZSTD_decompressSequences variants!" +#endif + + +/*_******************************************************* +* Memory operations +**********************************************************/ +static void ZSTD_copy4(void* dst, const void* src) { ZSTD_memcpy(dst, src, 4); } + + +/*-************************************************************* + * Block decoding + ***************************************************************/ + +static size_t ZSTD_blockSizeMax(ZSTD_DCtx const* dctx) +{ + size_t const blockSizeMax = dctx->isFrameDecompression ? dctx->fParams.blockSizeMax : ZSTD_BLOCKSIZE_MAX; + assert(blockSizeMax <= ZSTD_BLOCKSIZE_MAX); + return blockSizeMax; +} + +/*! ZSTD_getcBlockSize() : + * Provides the size of compressed block from block header `src` */ +size_t ZSTD_getcBlockSize(const void* src, size_t srcSize, + blockProperties_t* bpPtr) +{ + RETURN_ERROR_IF(srcSize < ZSTD_blockHeaderSize, srcSize_wrong, ""); + + { U32 const cBlockHeader = MEM_readLE24(src); + U32 const cSize = cBlockHeader >> 3; + bpPtr->lastBlock = cBlockHeader & 1; + bpPtr->blockType = (blockType_e)((cBlockHeader >> 1) & 3); + bpPtr->origSize = cSize; /* only useful for RLE */ + if (bpPtr->blockType == bt_rle) return 1; + RETURN_ERROR_IF(bpPtr->blockType == bt_reserved, corruption_detected, ""); + return cSize; + } +} + +/* Allocate buffer for literals, either overlapping current dst, or split between dst and litExtraBuffer, or stored entirely within litExtraBuffer */ +static void ZSTD_allocateLiteralsBuffer(ZSTD_DCtx* dctx, void* const dst, const size_t dstCapacity, const size_t litSize, + const streaming_operation streaming, const size_t expectedWriteSize, const unsigned splitImmediately) +{ + size_t const blockSizeMax = ZSTD_blockSizeMax(dctx); + assert(litSize <= blockSizeMax); + assert(dctx->isFrameDecompression || streaming == not_streaming); + assert(expectedWriteSize <= blockSizeMax); + if (streaming == not_streaming && dstCapacity > blockSizeMax + WILDCOPY_OVERLENGTH + litSize + WILDCOPY_OVERLENGTH) { + /* If we aren't streaming, we can just put the literals after the output + * of the current block. We don't need to worry about overwriting the + * extDict of our window, because it doesn't exist. + * So if we have space after the end of the block, just put it there. + */ + dctx->litBuffer = (BYTE*)dst + blockSizeMax + WILDCOPY_OVERLENGTH; + dctx->litBufferEnd = dctx->litBuffer + litSize; + dctx->litBufferLocation = ZSTD_in_dst; + } else if (litSize <= ZSTD_LITBUFFEREXTRASIZE) { + /* Literals fit entirely within the extra buffer, put them there to avoid + * having to split the literals. + */ + dctx->litBuffer = dctx->litExtraBuffer; + dctx->litBufferEnd = dctx->litBuffer + litSize; + dctx->litBufferLocation = ZSTD_not_in_dst; + } else { + assert(blockSizeMax > ZSTD_LITBUFFEREXTRASIZE); + /* Literals must be split between the output block and the extra lit + * buffer. We fill the extra lit buffer with the tail of the literals, + * and put the rest of the literals at the end of the block, with + * WILDCOPY_OVERLENGTH of buffer room to allow for overreads. + * This MUST not write more than our maxBlockSize beyond dst, because in + * streaming mode, that could overwrite part of our extDict window. + */ + if (splitImmediately) { + /* won't fit in litExtraBuffer, so it will be split between end of dst and extra buffer */ + dctx->litBuffer = (BYTE*)dst + expectedWriteSize - litSize + ZSTD_LITBUFFEREXTRASIZE - WILDCOPY_OVERLENGTH; + dctx->litBufferEnd = dctx->litBuffer + litSize - ZSTD_LITBUFFEREXTRASIZE; + } else { + /* initially this will be stored entirely in dst during huffman decoding, it will partially be shifted to litExtraBuffer after */ + dctx->litBuffer = (BYTE*)dst + expectedWriteSize - litSize; + dctx->litBufferEnd = (BYTE*)dst + expectedWriteSize; + } + dctx->litBufferLocation = ZSTD_split; + assert(dctx->litBufferEnd <= (BYTE*)dst + expectedWriteSize); + } +} + +/*! ZSTD_decodeLiteralsBlock() : + * Where it is possible to do so without being stomped by the output during decompression, the literals block will be stored + * in the dstBuffer. If there is room to do so, it will be stored in full in the excess dst space after where the current + * block will be output. Otherwise it will be stored at the end of the current dst blockspace, with a small portion being + * stored in dctx->litExtraBuffer to help keep it "ahead" of the current output write. + * + * @return : nb of bytes read from src (< srcSize ) + * note : symbol not declared but exposed for fullbench */ +static size_t ZSTD_decodeLiteralsBlock(ZSTD_DCtx* dctx, + const void* src, size_t srcSize, /* note : srcSize < BLOCKSIZE */ + void* dst, size_t dstCapacity, const streaming_operation streaming) +{ + DEBUGLOG(5, "ZSTD_decodeLiteralsBlock"); + RETURN_ERROR_IF(srcSize < MIN_CBLOCK_SIZE, corruption_detected, ""); + + { const BYTE* const istart = (const BYTE*) src; + symbolEncodingType_e const litEncType = (symbolEncodingType_e)(istart[0] & 3); + size_t const blockSizeMax = ZSTD_blockSizeMax(dctx); + + switch(litEncType) + { + case set_repeat: + DEBUGLOG(5, "set_repeat flag : re-using stats from previous compressed literals block"); + RETURN_ERROR_IF(dctx->litEntropy==0, dictionary_corrupted, ""); + ZSTD_FALLTHROUGH; + + case set_compressed: + RETURN_ERROR_IF(srcSize < 5, corruption_detected, "srcSize >= MIN_CBLOCK_SIZE == 2; here we need up to 5 for case 3"); + { size_t lhSize, litSize, litCSize; + U32 singleStream=0; + U32 const lhlCode = (istart[0] >> 2) & 3; + U32 const lhc = MEM_readLE32(istart); + size_t hufSuccess; + size_t expectedWriteSize = MIN(blockSizeMax, dstCapacity); + int const flags = 0 + | (ZSTD_DCtx_get_bmi2(dctx) ? HUF_flags_bmi2 : 0) + | (dctx->disableHufAsm ? HUF_flags_disableAsm : 0); + switch(lhlCode) + { + case 0: case 1: default: /* note : default is impossible, since lhlCode into [0..3] */ + /* 2 - 2 - 10 - 10 */ + singleStream = !lhlCode; + lhSize = 3; + litSize = (lhc >> 4) & 0x3FF; + litCSize = (lhc >> 14) & 0x3FF; + break; + case 2: + /* 2 - 2 - 14 - 14 */ + lhSize = 4; + litSize = (lhc >> 4) & 0x3FFF; + litCSize = lhc >> 18; + break; + case 3: + /* 2 - 2 - 18 - 18 */ + lhSize = 5; + litSize = (lhc >> 4) & 0x3FFFF; + litCSize = (lhc >> 22) + ((size_t)istart[4] << 10); + break; + } + RETURN_ERROR_IF(litSize > 0 && dst == NULL, dstSize_tooSmall, "NULL not handled"); + RETURN_ERROR_IF(litSize > blockSizeMax, corruption_detected, ""); + if (!singleStream) + RETURN_ERROR_IF(litSize < MIN_LITERALS_FOR_4_STREAMS, literals_headerWrong, + "Not enough literals (%zu) for the 4-streams mode (min %u)", + litSize, MIN_LITERALS_FOR_4_STREAMS); + RETURN_ERROR_IF(litCSize + lhSize > srcSize, corruption_detected, ""); + RETURN_ERROR_IF(expectedWriteSize < litSize , dstSize_tooSmall, ""); + ZSTD_allocateLiteralsBuffer(dctx, dst, dstCapacity, litSize, streaming, expectedWriteSize, 0); + + /* prefetch huffman table if cold */ + if (dctx->ddictIsCold && (litSize > 768 /* heuristic */)) { + PREFETCH_AREA(dctx->HUFptr, sizeof(dctx->entropy.hufTable)); + } + + if (litEncType==set_repeat) { + if (singleStream) { + hufSuccess = HUF_decompress1X_usingDTable( + dctx->litBuffer, litSize, istart+lhSize, litCSize, + dctx->HUFptr, flags); + } else { + assert(litSize >= MIN_LITERALS_FOR_4_STREAMS); + hufSuccess = HUF_decompress4X_usingDTable( + dctx->litBuffer, litSize, istart+lhSize, litCSize, + dctx->HUFptr, flags); + } + } else { + if (singleStream) { +#if defined(HUF_FORCE_DECOMPRESS_X2) + hufSuccess = HUF_decompress1X_DCtx_wksp( + dctx->entropy.hufTable, dctx->litBuffer, litSize, + istart+lhSize, litCSize, dctx->workspace, + sizeof(dctx->workspace), flags); +#else + hufSuccess = HUF_decompress1X1_DCtx_wksp( + dctx->entropy.hufTable, dctx->litBuffer, litSize, + istart+lhSize, litCSize, dctx->workspace, + sizeof(dctx->workspace), flags); +#endif + } else { + hufSuccess = HUF_decompress4X_hufOnly_wksp( + dctx->entropy.hufTable, dctx->litBuffer, litSize, + istart+lhSize, litCSize, dctx->workspace, + sizeof(dctx->workspace), flags); + } + } + if (dctx->litBufferLocation == ZSTD_split) + { + assert(litSize > ZSTD_LITBUFFEREXTRASIZE); + ZSTD_memcpy(dctx->litExtraBuffer, dctx->litBufferEnd - ZSTD_LITBUFFEREXTRASIZE, ZSTD_LITBUFFEREXTRASIZE); + ZSTD_memmove(dctx->litBuffer + ZSTD_LITBUFFEREXTRASIZE - WILDCOPY_OVERLENGTH, dctx->litBuffer, litSize - ZSTD_LITBUFFEREXTRASIZE); + dctx->litBuffer += ZSTD_LITBUFFEREXTRASIZE - WILDCOPY_OVERLENGTH; + dctx->litBufferEnd -= WILDCOPY_OVERLENGTH; + assert(dctx->litBufferEnd <= (BYTE*)dst + blockSizeMax); + } + + RETURN_ERROR_IF(HUF_isError(hufSuccess), corruption_detected, ""); + + dctx->litPtr = dctx->litBuffer; + dctx->litSize = litSize; + dctx->litEntropy = 1; + if (litEncType==set_compressed) dctx->HUFptr = dctx->entropy.hufTable; + return litCSize + lhSize; + } + + case set_basic: + { size_t litSize, lhSize; + U32 const lhlCode = ((istart[0]) >> 2) & 3; + size_t expectedWriteSize = MIN(blockSizeMax, dstCapacity); + switch(lhlCode) + { + case 0: case 2: default: /* note : default is impossible, since lhlCode into [0..3] */ + lhSize = 1; + litSize = istart[0] >> 3; + break; + case 1: + lhSize = 2; + litSize = MEM_readLE16(istart) >> 4; + break; + case 3: + lhSize = 3; + RETURN_ERROR_IF(srcSize<3, corruption_detected, "srcSize >= MIN_CBLOCK_SIZE == 2; here we need lhSize = 3"); + litSize = MEM_readLE24(istart) >> 4; + break; + } + + RETURN_ERROR_IF(litSize > 0 && dst == NULL, dstSize_tooSmall, "NULL not handled"); + RETURN_ERROR_IF(litSize > blockSizeMax, corruption_detected, ""); + RETURN_ERROR_IF(expectedWriteSize < litSize, dstSize_tooSmall, ""); + ZSTD_allocateLiteralsBuffer(dctx, dst, dstCapacity, litSize, streaming, expectedWriteSize, 1); + if (lhSize+litSize+WILDCOPY_OVERLENGTH > srcSize) { /* risk reading beyond src buffer with wildcopy */ + RETURN_ERROR_IF(litSize+lhSize > srcSize, corruption_detected, ""); + if (dctx->litBufferLocation == ZSTD_split) + { + ZSTD_memcpy(dctx->litBuffer, istart + lhSize, litSize - ZSTD_LITBUFFEREXTRASIZE); + ZSTD_memcpy(dctx->litExtraBuffer, istart + lhSize + litSize - ZSTD_LITBUFFEREXTRASIZE, ZSTD_LITBUFFEREXTRASIZE); + } + else + { + ZSTD_memcpy(dctx->litBuffer, istart + lhSize, litSize); + } + dctx->litPtr = dctx->litBuffer; + dctx->litSize = litSize; + return lhSize+litSize; + } + /* direct reference into compressed stream */ + dctx->litPtr = istart+lhSize; + dctx->litSize = litSize; + dctx->litBufferEnd = dctx->litPtr + litSize; + dctx->litBufferLocation = ZSTD_not_in_dst; + return lhSize+litSize; + } + + case set_rle: + { U32 const lhlCode = ((istart[0]) >> 2) & 3; + size_t litSize, lhSize; + size_t expectedWriteSize = MIN(blockSizeMax, dstCapacity); + switch(lhlCode) + { + case 0: case 2: default: /* note : default is impossible, since lhlCode into [0..3] */ + lhSize = 1; + litSize = istart[0] >> 3; + break; + case 1: + lhSize = 2; + RETURN_ERROR_IF(srcSize<3, corruption_detected, "srcSize >= MIN_CBLOCK_SIZE == 2; here we need lhSize+1 = 3"); + litSize = MEM_readLE16(istart) >> 4; + break; + case 3: + lhSize = 3; + RETURN_ERROR_IF(srcSize<4, corruption_detected, "srcSize >= MIN_CBLOCK_SIZE == 2; here we need lhSize+1 = 4"); + litSize = MEM_readLE24(istart) >> 4; + break; + } + RETURN_ERROR_IF(litSize > 0 && dst == NULL, dstSize_tooSmall, "NULL not handled"); + RETURN_ERROR_IF(litSize > blockSizeMax, corruption_detected, ""); + RETURN_ERROR_IF(expectedWriteSize < litSize, dstSize_tooSmall, ""); + ZSTD_allocateLiteralsBuffer(dctx, dst, dstCapacity, litSize, streaming, expectedWriteSize, 1); + if (dctx->litBufferLocation == ZSTD_split) + { + ZSTD_memset(dctx->litBuffer, istart[lhSize], litSize - ZSTD_LITBUFFEREXTRASIZE); + ZSTD_memset(dctx->litExtraBuffer, istart[lhSize], ZSTD_LITBUFFEREXTRASIZE); + } + else + { + ZSTD_memset(dctx->litBuffer, istart[lhSize], litSize); + } + dctx->litPtr = dctx->litBuffer; + dctx->litSize = litSize; + return lhSize+1; + } + default: + RETURN_ERROR(corruption_detected, "impossible"); + } + } +} + +/* Hidden declaration for fullbench */ +size_t ZSTD_decodeLiteralsBlock_wrapper(ZSTD_DCtx* dctx, + const void* src, size_t srcSize, + void* dst, size_t dstCapacity); +size_t ZSTD_decodeLiteralsBlock_wrapper(ZSTD_DCtx* dctx, + const void* src, size_t srcSize, + void* dst, size_t dstCapacity) +{ + dctx->isFrameDecompression = 0; + return ZSTD_decodeLiteralsBlock(dctx, src, srcSize, dst, dstCapacity, not_streaming); +} + +/* Default FSE distribution tables. + * These are pre-calculated FSE decoding tables using default distributions as defined in specification : + * https://github.com/facebook/zstd/blob/release/doc/zstd_compression_format.md#default-distributions + * They were generated programmatically with following method : + * - start from default distributions, present in /lib/common/zstd_internal.h + * - generate tables normally, using ZSTD_buildFSETable() + * - printout the content of tables + * - pretify output, report below, test with fuzzer to ensure it's correct */ + +/* Default FSE distribution table for Literal Lengths */ +static const ZSTD_seqSymbol LL_defaultDTable[(1<tableLog = 0; + DTableH->fastMode = 0; + + cell->nbBits = 0; + cell->nextState = 0; + assert(nbAddBits < 255); + cell->nbAdditionalBits = nbAddBits; + cell->baseValue = baseValue; +} + + +/* ZSTD_buildFSETable() : + * generate FSE decoding table for one symbol (ll, ml or off) + * cannot fail if input is valid => + * all inputs are presumed validated at this stage */ +FORCE_INLINE_TEMPLATE +void ZSTD_buildFSETable_body(ZSTD_seqSymbol* dt, + const short* normalizedCounter, unsigned maxSymbolValue, + const U32* baseValue, const U8* nbAdditionalBits, + unsigned tableLog, void* wksp, size_t wkspSize) +{ + ZSTD_seqSymbol* const tableDecode = dt+1; + U32 const maxSV1 = maxSymbolValue + 1; + U32 const tableSize = 1 << tableLog; + + U16* symbolNext = (U16*)wksp; + BYTE* spread = (BYTE*)(symbolNext + MaxSeq + 1); + U32 highThreshold = tableSize - 1; + + + /* Sanity Checks */ + assert(maxSymbolValue <= MaxSeq); + assert(tableLog <= MaxFSELog); + assert(wkspSize >= ZSTD_BUILD_FSE_TABLE_WKSP_SIZE); + (void)wkspSize; + /* Init, lay down lowprob symbols */ + { ZSTD_seqSymbol_header DTableH; + DTableH.tableLog = tableLog; + DTableH.fastMode = 1; + { S16 const largeLimit= (S16)(1 << (tableLog-1)); + U32 s; + for (s=0; s= largeLimit) DTableH.fastMode=0; + assert(normalizedCounter[s]>=0); + symbolNext[s] = (U16)normalizedCounter[s]; + } } } + ZSTD_memcpy(dt, &DTableH, sizeof(DTableH)); + } + + /* Spread symbols */ + assert(tableSize <= 512); + /* Specialized symbol spreading for the case when there are + * no low probability (-1 count) symbols. When compressing + * small blocks we avoid low probability symbols to hit this + * case, since header decoding speed matters more. + */ + if (highThreshold == tableSize - 1) { + size_t const tableMask = tableSize-1; + size_t const step = FSE_TABLESTEP(tableSize); + /* First lay down the symbols in order. + * We use a uint64_t to lay down 8 bytes at a time. This reduces branch + * misses since small blocks generally have small table logs, so nearly + * all symbols have counts <= 8. We ensure we have 8 bytes at the end of + * our buffer to handle the over-write. + */ + { + U64 const add = 0x0101010101010101ull; + size_t pos = 0; + U64 sv = 0; + U32 s; + for (s=0; s=0); + pos += (size_t)n; + } + } + /* Now we spread those positions across the table. + * The benefit of doing it in two stages is that we avoid the + * variable size inner loop, which caused lots of branch misses. + * Now we can run through all the positions without any branch misses. + * We unroll the loop twice, since that is what empirically worked best. + */ + { + size_t position = 0; + size_t s; + size_t const unroll = 2; + assert(tableSize % unroll == 0); /* FSE_MIN_TABLELOG is 5 */ + for (s = 0; s < (size_t)tableSize; s += unroll) { + size_t u; + for (u = 0; u < unroll; ++u) { + size_t const uPosition = (position + (u * step)) & tableMask; + tableDecode[uPosition].baseValue = spread[s + u]; + } + position = (position + (unroll * step)) & tableMask; + } + assert(position == 0); + } + } else { + U32 const tableMask = tableSize-1; + U32 const step = FSE_TABLESTEP(tableSize); + U32 s, position = 0; + for (s=0; s highThreshold)) position = (position + step) & tableMask; /* lowprob area */ + } } + assert(position == 0); /* position must reach all cells once, otherwise normalizedCounter is incorrect */ + } + + /* Build Decoding table */ + { + U32 u; + for (u=0; u max, corruption_detected, ""); + { U32 const symbol = *(const BYTE*)src; + U32 const baseline = baseValue[symbol]; + U8 const nbBits = nbAdditionalBits[symbol]; + ZSTD_buildSeqTable_rle(DTableSpace, baseline, nbBits); + } + *DTablePtr = DTableSpace; + return 1; + case set_basic : + *DTablePtr = defaultTable; + return 0; + case set_repeat: + RETURN_ERROR_IF(!flagRepeatTable, corruption_detected, ""); + /* prefetch FSE table if used */ + if (ddictIsCold && (nbSeq > 24 /* heuristic */)) { + const void* const pStart = *DTablePtr; + size_t const pSize = sizeof(ZSTD_seqSymbol) * (SEQSYMBOL_TABLE_SIZE(maxLog)); + PREFETCH_AREA(pStart, pSize); + } + return 0; + case set_compressed : + { unsigned tableLog; + S16 norm[MaxSeq+1]; + size_t const headerSize = FSE_readNCount(norm, &max, &tableLog, src, srcSize); + RETURN_ERROR_IF(FSE_isError(headerSize), corruption_detected, ""); + RETURN_ERROR_IF(tableLog > maxLog, corruption_detected, ""); + ZSTD_buildFSETable(DTableSpace, norm, max, baseValue, nbAdditionalBits, tableLog, wksp, wkspSize, bmi2); + *DTablePtr = DTableSpace; + return headerSize; + } + default : + assert(0); + RETURN_ERROR(GENERIC, "impossible"); + } +} + +size_t ZSTD_decodeSeqHeaders(ZSTD_DCtx* dctx, int* nbSeqPtr, + const void* src, size_t srcSize) +{ + const BYTE* const istart = (const BYTE*)src; + const BYTE* const iend = istart + srcSize; + const BYTE* ip = istart; + int nbSeq; + DEBUGLOG(5, "ZSTD_decodeSeqHeaders"); + + /* check */ + RETURN_ERROR_IF(srcSize < MIN_SEQUENCES_SIZE, srcSize_wrong, ""); + + /* SeqHead */ + nbSeq = *ip++; + if (nbSeq > 0x7F) { + if (nbSeq == 0xFF) { + RETURN_ERROR_IF(ip+2 > iend, srcSize_wrong, ""); + nbSeq = MEM_readLE16(ip) + LONGNBSEQ; + ip+=2; + } else { + RETURN_ERROR_IF(ip >= iend, srcSize_wrong, ""); + nbSeq = ((nbSeq-0x80)<<8) + *ip++; + } + } + *nbSeqPtr = nbSeq; + + if (nbSeq == 0) { + /* No sequence : section ends immediately */ + RETURN_ERROR_IF(ip != iend, corruption_detected, + "extraneous data present in the Sequences section"); + return (size_t)(ip - istart); + } + + /* FSE table descriptors */ + RETURN_ERROR_IF(ip+1 > iend, srcSize_wrong, ""); /* minimum possible size: 1 byte for symbol encoding types */ + RETURN_ERROR_IF(*ip & 3, corruption_detected, ""); /* The last field, Reserved, must be all-zeroes. */ + { symbolEncodingType_e const LLtype = (symbolEncodingType_e)(*ip >> 6); + symbolEncodingType_e const OFtype = (symbolEncodingType_e)((*ip >> 4) & 3); + symbolEncodingType_e const MLtype = (symbolEncodingType_e)((*ip >> 2) & 3); + ip++; + + /* Build DTables */ + { size_t const llhSize = ZSTD_buildSeqTable(dctx->entropy.LLTable, &dctx->LLTptr, + LLtype, MaxLL, LLFSELog, + ip, iend-ip, + LL_base, LL_bits, + LL_defaultDTable, dctx->fseEntropy, + dctx->ddictIsCold, nbSeq, + dctx->workspace, sizeof(dctx->workspace), + ZSTD_DCtx_get_bmi2(dctx)); + RETURN_ERROR_IF(ZSTD_isError(llhSize), corruption_detected, "ZSTD_buildSeqTable failed"); + ip += llhSize; + } + + { size_t const ofhSize = ZSTD_buildSeqTable(dctx->entropy.OFTable, &dctx->OFTptr, + OFtype, MaxOff, OffFSELog, + ip, iend-ip, + OF_base, OF_bits, + OF_defaultDTable, dctx->fseEntropy, + dctx->ddictIsCold, nbSeq, + dctx->workspace, sizeof(dctx->workspace), + ZSTD_DCtx_get_bmi2(dctx)); + RETURN_ERROR_IF(ZSTD_isError(ofhSize), corruption_detected, "ZSTD_buildSeqTable failed"); + ip += ofhSize; + } + + { size_t const mlhSize = ZSTD_buildSeqTable(dctx->entropy.MLTable, &dctx->MLTptr, + MLtype, MaxML, MLFSELog, + ip, iend-ip, + ML_base, ML_bits, + ML_defaultDTable, dctx->fseEntropy, + dctx->ddictIsCold, nbSeq, + dctx->workspace, sizeof(dctx->workspace), + ZSTD_DCtx_get_bmi2(dctx)); + RETURN_ERROR_IF(ZSTD_isError(mlhSize), corruption_detected, "ZSTD_buildSeqTable failed"); + ip += mlhSize; + } + } + + return ip-istart; +} + + +typedef struct { + size_t litLength; + size_t matchLength; + size_t offset; +} seq_t; + +typedef struct { + size_t state; + const ZSTD_seqSymbol* table; +} ZSTD_fseState; + +typedef struct { + BIT_DStream_t DStream; + ZSTD_fseState stateLL; + ZSTD_fseState stateOffb; + ZSTD_fseState stateML; + size_t prevOffset[ZSTD_REP_NUM]; +} seqState_t; + +/*! ZSTD_overlapCopy8() : + * Copies 8 bytes from ip to op and updates op and ip where ip <= op. + * If the offset is < 8 then the offset is spread to at least 8 bytes. + * + * Precondition: *ip <= *op + * Postcondition: *op - *op >= 8 + */ +HINT_INLINE void ZSTD_overlapCopy8(BYTE** op, BYTE const** ip, size_t offset) { + assert(*ip <= *op); + if (offset < 8) { + /* close range match, overlap */ + static const U32 dec32table[] = { 0, 1, 2, 1, 4, 4, 4, 4 }; /* added */ + static const int dec64table[] = { 8, 8, 8, 7, 8, 9,10,11 }; /* subtracted */ + int const sub2 = dec64table[offset]; + (*op)[0] = (*ip)[0]; + (*op)[1] = (*ip)[1]; + (*op)[2] = (*ip)[2]; + (*op)[3] = (*ip)[3]; + *ip += dec32table[offset]; + ZSTD_copy4(*op+4, *ip); + *ip -= sub2; + } else { + ZSTD_copy8(*op, *ip); + } + *ip += 8; + *op += 8; + assert(*op - *ip >= 8); +} + +/*! ZSTD_safecopy() : + * Specialized version of memcpy() that is allowed to READ up to WILDCOPY_OVERLENGTH past the input buffer + * and write up to 16 bytes past oend_w (op >= oend_w is allowed). + * This function is only called in the uncommon case where the sequence is near the end of the block. It + * should be fast for a single long sequence, but can be slow for several short sequences. + * + * @param ovtype controls the overlap detection + * - ZSTD_no_overlap: The source and destination are guaranteed to be at least WILDCOPY_VECLEN bytes apart. + * - ZSTD_overlap_src_before_dst: The src and dst may overlap and may be any distance apart. + * The src buffer must be before the dst buffer. + */ +static void ZSTD_safecopy(BYTE* op, const BYTE* const oend_w, BYTE const* ip, ptrdiff_t length, ZSTD_overlap_e ovtype) { + ptrdiff_t const diff = op - ip; + BYTE* const oend = op + length; + + assert((ovtype == ZSTD_no_overlap && (diff <= -8 || diff >= 8 || op >= oend_w)) || + (ovtype == ZSTD_overlap_src_before_dst && diff >= 0)); + + if (length < 8) { + /* Handle short lengths. */ + while (op < oend) *op++ = *ip++; + return; + } + if (ovtype == ZSTD_overlap_src_before_dst) { + /* Copy 8 bytes and ensure the offset >= 8 when there can be overlap. */ + assert(length >= 8); + ZSTD_overlapCopy8(&op, &ip, diff); + length -= 8; + assert(op - ip >= 8); + assert(op <= oend); + } + + if (oend <= oend_w) { + /* No risk of overwrite. */ + ZSTD_wildcopy(op, ip, length, ovtype); + return; + } + if (op <= oend_w) { + /* Wildcopy until we get close to the end. */ + assert(oend > oend_w); + ZSTD_wildcopy(op, ip, oend_w - op, ovtype); + ip += oend_w - op; + op += oend_w - op; + } + /* Handle the leftovers. */ + while (op < oend) *op++ = *ip++; +} + +/* ZSTD_safecopyDstBeforeSrc(): + * This version allows overlap with dst before src, or handles the non-overlap case with dst after src + * Kept separate from more common ZSTD_safecopy case to avoid performance impact to the safecopy common case */ +static void ZSTD_safecopyDstBeforeSrc(BYTE* op, const BYTE* ip, ptrdiff_t length) { + ptrdiff_t const diff = op - ip; + BYTE* const oend = op + length; + + if (length < 8 || diff > -8) { + /* Handle short lengths, close overlaps, and dst not before src. */ + while (op < oend) *op++ = *ip++; + return; + } + + if (op <= oend - WILDCOPY_OVERLENGTH && diff < -WILDCOPY_VECLEN) { + ZSTD_wildcopy(op, ip, oend - WILDCOPY_OVERLENGTH - op, ZSTD_no_overlap); + ip += oend - WILDCOPY_OVERLENGTH - op; + op += oend - WILDCOPY_OVERLENGTH - op; + } + + /* Handle the leftovers. */ + while (op < oend) *op++ = *ip++; +} + +/* ZSTD_execSequenceEnd(): + * This version handles cases that are near the end of the output buffer. It requires + * more careful checks to make sure there is no overflow. By separating out these hard + * and unlikely cases, we can speed up the common cases. + * + * NOTE: This function needs to be fast for a single long sequence, but doesn't need + * to be optimized for many small sequences, since those fall into ZSTD_execSequence(). + */ +FORCE_NOINLINE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_execSequenceEnd(BYTE* op, + BYTE* const oend, seq_t sequence, + const BYTE** litPtr, const BYTE* const litLimit, + const BYTE* const prefixStart, const BYTE* const virtualStart, const BYTE* const dictEnd) +{ + BYTE* const oLitEnd = op + sequence.litLength; + size_t const sequenceLength = sequence.litLength + sequence.matchLength; + const BYTE* const iLitEnd = *litPtr + sequence.litLength; + const BYTE* match = oLitEnd - sequence.offset; + BYTE* const oend_w = oend - WILDCOPY_OVERLENGTH; + + /* bounds checks : careful of address space overflow in 32-bit mode */ + RETURN_ERROR_IF(sequenceLength > (size_t)(oend - op), dstSize_tooSmall, "last match must fit within dstBuffer"); + RETURN_ERROR_IF(sequence.litLength > (size_t)(litLimit - *litPtr), corruption_detected, "try to read beyond literal buffer"); + assert(op < op + sequenceLength); + assert(oLitEnd < op + sequenceLength); + + /* copy literals */ + ZSTD_safecopy(op, oend_w, *litPtr, sequence.litLength, ZSTD_no_overlap); + op = oLitEnd; + *litPtr = iLitEnd; + + /* copy Match */ + if (sequence.offset > (size_t)(oLitEnd - prefixStart)) { + /* offset beyond prefix */ + RETURN_ERROR_IF(sequence.offset > (size_t)(oLitEnd - virtualStart), corruption_detected, ""); + match = dictEnd - (prefixStart - match); + if (match + sequence.matchLength <= dictEnd) { + ZSTD_memmove(oLitEnd, match, sequence.matchLength); + return sequenceLength; + } + /* span extDict & currentPrefixSegment */ + { size_t const length1 = dictEnd - match; + ZSTD_memmove(oLitEnd, match, length1); + op = oLitEnd + length1; + sequence.matchLength -= length1; + match = prefixStart; + } + } + ZSTD_safecopy(op, oend_w, match, sequence.matchLength, ZSTD_overlap_src_before_dst); + return sequenceLength; +} + +/* ZSTD_execSequenceEndSplitLitBuffer(): + * This version is intended to be used during instances where the litBuffer is still split. It is kept separate to avoid performance impact for the good case. + */ +FORCE_NOINLINE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_execSequenceEndSplitLitBuffer(BYTE* op, + BYTE* const oend, const BYTE* const oend_w, seq_t sequence, + const BYTE** litPtr, const BYTE* const litLimit, + const BYTE* const prefixStart, const BYTE* const virtualStart, const BYTE* const dictEnd) +{ + BYTE* const oLitEnd = op + sequence.litLength; + size_t const sequenceLength = sequence.litLength + sequence.matchLength; + const BYTE* const iLitEnd = *litPtr + sequence.litLength; + const BYTE* match = oLitEnd - sequence.offset; + + + /* bounds checks : careful of address space overflow in 32-bit mode */ + RETURN_ERROR_IF(sequenceLength > (size_t)(oend - op), dstSize_tooSmall, "last match must fit within dstBuffer"); + RETURN_ERROR_IF(sequence.litLength > (size_t)(litLimit - *litPtr), corruption_detected, "try to read beyond literal buffer"); + assert(op < op + sequenceLength); + assert(oLitEnd < op + sequenceLength); + + /* copy literals */ + RETURN_ERROR_IF(op > *litPtr && op < *litPtr + sequence.litLength, dstSize_tooSmall, "output should not catch up to and overwrite literal buffer"); + ZSTD_safecopyDstBeforeSrc(op, *litPtr, sequence.litLength); + op = oLitEnd; + *litPtr = iLitEnd; + + /* copy Match */ + if (sequence.offset > (size_t)(oLitEnd - prefixStart)) { + /* offset beyond prefix */ + RETURN_ERROR_IF(sequence.offset > (size_t)(oLitEnd - virtualStart), corruption_detected, ""); + match = dictEnd - (prefixStart - match); + if (match + sequence.matchLength <= dictEnd) { + ZSTD_memmove(oLitEnd, match, sequence.matchLength); + return sequenceLength; + } + /* span extDict & currentPrefixSegment */ + { size_t const length1 = dictEnd - match; + ZSTD_memmove(oLitEnd, match, length1); + op = oLitEnd + length1; + sequence.matchLength -= length1; + match = prefixStart; + } + } + ZSTD_safecopy(op, oend_w, match, sequence.matchLength, ZSTD_overlap_src_before_dst); + return sequenceLength; +} + +HINT_INLINE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_execSequence(BYTE* op, + BYTE* const oend, seq_t sequence, + const BYTE** litPtr, const BYTE* const litLimit, + const BYTE* const prefixStart, const BYTE* const virtualStart, const BYTE* const dictEnd) +{ + BYTE* const oLitEnd = op + sequence.litLength; + size_t const sequenceLength = sequence.litLength + sequence.matchLength; + BYTE* const oMatchEnd = op + sequenceLength; /* risk : address space overflow (32-bits) */ + BYTE* const oend_w = oend - WILDCOPY_OVERLENGTH; /* risk : address space underflow on oend=NULL */ + const BYTE* const iLitEnd = *litPtr + sequence.litLength; + const BYTE* match = oLitEnd - sequence.offset; + + assert(op != NULL /* Precondition */); + assert(oend_w < oend /* No underflow */); + +#if defined(__aarch64__) + /* prefetch sequence starting from match that will be used for copy later */ + PREFETCH_L1(match); +#endif + /* Handle edge cases in a slow path: + * - Read beyond end of literals + * - Match end is within WILDCOPY_OVERLIMIT of oend + * - 32-bit mode and the match length overflows + */ + if (UNLIKELY( + iLitEnd > litLimit || + oMatchEnd > oend_w || + (MEM_32bits() && (size_t)(oend - op) < sequenceLength + WILDCOPY_OVERLENGTH))) + return ZSTD_execSequenceEnd(op, oend, sequence, litPtr, litLimit, prefixStart, virtualStart, dictEnd); + + /* Assumptions (everything else goes into ZSTD_execSequenceEnd()) */ + assert(op <= oLitEnd /* No overflow */); + assert(oLitEnd < oMatchEnd /* Non-zero match & no overflow */); + assert(oMatchEnd <= oend /* No underflow */); + assert(iLitEnd <= litLimit /* Literal length is in bounds */); + assert(oLitEnd <= oend_w /* Can wildcopy literals */); + assert(oMatchEnd <= oend_w /* Can wildcopy matches */); + + /* Copy Literals: + * Split out litLength <= 16 since it is nearly always true. +1.6% on gcc-9. + * We likely don't need the full 32-byte wildcopy. + */ + assert(WILDCOPY_OVERLENGTH >= 16); + ZSTD_copy16(op, (*litPtr)); + if (UNLIKELY(sequence.litLength > 16)) { + ZSTD_wildcopy(op + 16, (*litPtr) + 16, sequence.litLength - 16, ZSTD_no_overlap); + } + op = oLitEnd; + *litPtr = iLitEnd; /* update for next sequence */ + + /* Copy Match */ + if (sequence.offset > (size_t)(oLitEnd - prefixStart)) { + /* offset beyond prefix -> go into extDict */ + RETURN_ERROR_IF(UNLIKELY(sequence.offset > (size_t)(oLitEnd - virtualStart)), corruption_detected, ""); + match = dictEnd + (match - prefixStart); + if (match + sequence.matchLength <= dictEnd) { + ZSTD_memmove(oLitEnd, match, sequence.matchLength); + return sequenceLength; + } + /* span extDict & currentPrefixSegment */ + { size_t const length1 = dictEnd - match; + ZSTD_memmove(oLitEnd, match, length1); + op = oLitEnd + length1; + sequence.matchLength -= length1; + match = prefixStart; + } + } + /* Match within prefix of 1 or more bytes */ + assert(op <= oMatchEnd); + assert(oMatchEnd <= oend_w); + assert(match >= prefixStart); + assert(sequence.matchLength >= 1); + + /* Nearly all offsets are >= WILDCOPY_VECLEN bytes, which means we can use wildcopy + * without overlap checking. + */ + if (LIKELY(sequence.offset >= WILDCOPY_VECLEN)) { + /* We bet on a full wildcopy for matches, since we expect matches to be + * longer than literals (in general). In silesia, ~10% of matches are longer + * than 16 bytes. + */ + ZSTD_wildcopy(op, match, (ptrdiff_t)sequence.matchLength, ZSTD_no_overlap); + return sequenceLength; + } + assert(sequence.offset < WILDCOPY_VECLEN); + + /* Copy 8 bytes and spread the offset to be >= 8. */ + ZSTD_overlapCopy8(&op, &match, sequence.offset); + + /* If the match length is > 8 bytes, then continue with the wildcopy. */ + if (sequence.matchLength > 8) { + assert(op < oMatchEnd); + ZSTD_wildcopy(op, match, (ptrdiff_t)sequence.matchLength - 8, ZSTD_overlap_src_before_dst); + } + return sequenceLength; +} + +HINT_INLINE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_execSequenceSplitLitBuffer(BYTE* op, + BYTE* const oend, const BYTE* const oend_w, seq_t sequence, + const BYTE** litPtr, const BYTE* const litLimit, + const BYTE* const prefixStart, const BYTE* const virtualStart, const BYTE* const dictEnd) +{ + BYTE* const oLitEnd = op + sequence.litLength; + size_t const sequenceLength = sequence.litLength + sequence.matchLength; + BYTE* const oMatchEnd = op + sequenceLength; /* risk : address space overflow (32-bits) */ + const BYTE* const iLitEnd = *litPtr + sequence.litLength; + const BYTE* match = oLitEnd - sequence.offset; + + assert(op != NULL /* Precondition */); + assert(oend_w < oend /* No underflow */); + /* Handle edge cases in a slow path: + * - Read beyond end of literals + * - Match end is within WILDCOPY_OVERLIMIT of oend + * - 32-bit mode and the match length overflows + */ + if (UNLIKELY( + iLitEnd > litLimit || + oMatchEnd > oend_w || + (MEM_32bits() && (size_t)(oend - op) < sequenceLength + WILDCOPY_OVERLENGTH))) + return ZSTD_execSequenceEndSplitLitBuffer(op, oend, oend_w, sequence, litPtr, litLimit, prefixStart, virtualStart, dictEnd); + + /* Assumptions (everything else goes into ZSTD_execSequenceEnd()) */ + assert(op <= oLitEnd /* No overflow */); + assert(oLitEnd < oMatchEnd /* Non-zero match & no overflow */); + assert(oMatchEnd <= oend /* No underflow */); + assert(iLitEnd <= litLimit /* Literal length is in bounds */); + assert(oLitEnd <= oend_w /* Can wildcopy literals */); + assert(oMatchEnd <= oend_w /* Can wildcopy matches */); + + /* Copy Literals: + * Split out litLength <= 16 since it is nearly always true. +1.6% on gcc-9. + * We likely don't need the full 32-byte wildcopy. + */ + assert(WILDCOPY_OVERLENGTH >= 16); + ZSTD_copy16(op, (*litPtr)); + if (UNLIKELY(sequence.litLength > 16)) { + ZSTD_wildcopy(op+16, (*litPtr)+16, sequence.litLength-16, ZSTD_no_overlap); + } + op = oLitEnd; + *litPtr = iLitEnd; /* update for next sequence */ + + /* Copy Match */ + if (sequence.offset > (size_t)(oLitEnd - prefixStart)) { + /* offset beyond prefix -> go into extDict */ + RETURN_ERROR_IF(UNLIKELY(sequence.offset > (size_t)(oLitEnd - virtualStart)), corruption_detected, ""); + match = dictEnd + (match - prefixStart); + if (match + sequence.matchLength <= dictEnd) { + ZSTD_memmove(oLitEnd, match, sequence.matchLength); + return sequenceLength; + } + /* span extDict & currentPrefixSegment */ + { size_t const length1 = dictEnd - match; + ZSTD_memmove(oLitEnd, match, length1); + op = oLitEnd + length1; + sequence.matchLength -= length1; + match = prefixStart; + } } + /* Match within prefix of 1 or more bytes */ + assert(op <= oMatchEnd); + assert(oMatchEnd <= oend_w); + assert(match >= prefixStart); + assert(sequence.matchLength >= 1); + + /* Nearly all offsets are >= WILDCOPY_VECLEN bytes, which means we can use wildcopy + * without overlap checking. + */ + if (LIKELY(sequence.offset >= WILDCOPY_VECLEN)) { + /* We bet on a full wildcopy for matches, since we expect matches to be + * longer than literals (in general). In silesia, ~10% of matches are longer + * than 16 bytes. + */ + ZSTD_wildcopy(op, match, (ptrdiff_t)sequence.matchLength, ZSTD_no_overlap); + return sequenceLength; + } + assert(sequence.offset < WILDCOPY_VECLEN); + + /* Copy 8 bytes and spread the offset to be >= 8. */ + ZSTD_overlapCopy8(&op, &match, sequence.offset); + + /* If the match length is > 8 bytes, then continue with the wildcopy. */ + if (sequence.matchLength > 8) { + assert(op < oMatchEnd); + ZSTD_wildcopy(op, match, (ptrdiff_t)sequence.matchLength-8, ZSTD_overlap_src_before_dst); + } + return sequenceLength; +} + + +static void +ZSTD_initFseState(ZSTD_fseState* DStatePtr, BIT_DStream_t* bitD, const ZSTD_seqSymbol* dt) +{ + const void* ptr = dt; + const ZSTD_seqSymbol_header* const DTableH = (const ZSTD_seqSymbol_header*)ptr; + DStatePtr->state = BIT_readBits(bitD, DTableH->tableLog); + DEBUGLOG(6, "ZSTD_initFseState : val=%u using %u bits", + (U32)DStatePtr->state, DTableH->tableLog); + BIT_reloadDStream(bitD); + DStatePtr->table = dt + 1; +} + +FORCE_INLINE_TEMPLATE void +ZSTD_updateFseStateWithDInfo(ZSTD_fseState* DStatePtr, BIT_DStream_t* bitD, U16 nextState, U32 nbBits) +{ + size_t const lowBits = BIT_readBits(bitD, nbBits); + DStatePtr->state = nextState + lowBits; +} + +/* We need to add at most (ZSTD_WINDOWLOG_MAX_32 - 1) bits to read the maximum + * offset bits. But we can only read at most STREAM_ACCUMULATOR_MIN_32 + * bits before reloading. This value is the maximum number of bytes we read + * after reloading when we are decoding long offsets. + */ +#define LONG_OFFSETS_MAX_EXTRA_BITS_32 \ + (ZSTD_WINDOWLOG_MAX_32 > STREAM_ACCUMULATOR_MIN_32 \ + ? ZSTD_WINDOWLOG_MAX_32 - STREAM_ACCUMULATOR_MIN_32 \ + : 0) + +typedef enum { ZSTD_lo_isRegularOffset, ZSTD_lo_isLongOffset=1 } ZSTD_longOffset_e; + +/** + * ZSTD_decodeSequence(): + * @p longOffsets : tells the decoder to reload more bit while decoding large offsets + * only used in 32-bit mode + * @return : Sequence (litL + matchL + offset) + */ +FORCE_INLINE_TEMPLATE seq_t +ZSTD_decodeSequence(seqState_t* seqState, const ZSTD_longOffset_e longOffsets, const int isLastSeq) +{ + seq_t seq; + /* + * ZSTD_seqSymbol is a 64 bits wide structure. + * It can be loaded in one operation + * and its fields extracted by simply shifting or bit-extracting on aarch64. + * GCC doesn't recognize this and generates more unnecessary ldr/ldrb/ldrh + * operations that cause performance drop. This can be avoided by using this + * ZSTD_memcpy hack. + */ +#if defined(__aarch64__) && (defined(__GNUC__) && !defined(__clang__)) + ZSTD_seqSymbol llDInfoS, mlDInfoS, ofDInfoS; + ZSTD_seqSymbol* const llDInfo = &llDInfoS; + ZSTD_seqSymbol* const mlDInfo = &mlDInfoS; + ZSTD_seqSymbol* const ofDInfo = &ofDInfoS; + ZSTD_memcpy(llDInfo, seqState->stateLL.table + seqState->stateLL.state, sizeof(ZSTD_seqSymbol)); + ZSTD_memcpy(mlDInfo, seqState->stateML.table + seqState->stateML.state, sizeof(ZSTD_seqSymbol)); + ZSTD_memcpy(ofDInfo, seqState->stateOffb.table + seqState->stateOffb.state, sizeof(ZSTD_seqSymbol)); +#else + const ZSTD_seqSymbol* const llDInfo = seqState->stateLL.table + seqState->stateLL.state; + const ZSTD_seqSymbol* const mlDInfo = seqState->stateML.table + seqState->stateML.state; + const ZSTD_seqSymbol* const ofDInfo = seqState->stateOffb.table + seqState->stateOffb.state; +#endif + seq.matchLength = mlDInfo->baseValue; + seq.litLength = llDInfo->baseValue; + { U32 const ofBase = ofDInfo->baseValue; + BYTE const llBits = llDInfo->nbAdditionalBits; + BYTE const mlBits = mlDInfo->nbAdditionalBits; + BYTE const ofBits = ofDInfo->nbAdditionalBits; + BYTE const totalBits = llBits+mlBits+ofBits; + + U16 const llNext = llDInfo->nextState; + U16 const mlNext = mlDInfo->nextState; + U16 const ofNext = ofDInfo->nextState; + U32 const llnbBits = llDInfo->nbBits; + U32 const mlnbBits = mlDInfo->nbBits; + U32 const ofnbBits = ofDInfo->nbBits; + + assert(llBits <= MaxLLBits); + assert(mlBits <= MaxMLBits); + assert(ofBits <= MaxOff); + /* + * As gcc has better branch and block analyzers, sometimes it is only + * valuable to mark likeliness for clang, it gives around 3-4% of + * performance. + */ + + /* sequence */ + { size_t offset; + if (ofBits > 1) { + ZSTD_STATIC_ASSERT(ZSTD_lo_isLongOffset == 1); + ZSTD_STATIC_ASSERT(LONG_OFFSETS_MAX_EXTRA_BITS_32 == 5); + ZSTD_STATIC_ASSERT(STREAM_ACCUMULATOR_MIN_32 > LONG_OFFSETS_MAX_EXTRA_BITS_32); + ZSTD_STATIC_ASSERT(STREAM_ACCUMULATOR_MIN_32 - LONG_OFFSETS_MAX_EXTRA_BITS_32 >= MaxMLBits); + if (MEM_32bits() && longOffsets && (ofBits >= STREAM_ACCUMULATOR_MIN_32)) { + /* Always read extra bits, this keeps the logic simple, + * avoids branches, and avoids accidentally reading 0 bits. + */ + U32 const extraBits = LONG_OFFSETS_MAX_EXTRA_BITS_32; + offset = ofBase + (BIT_readBitsFast(&seqState->DStream, ofBits - extraBits) << extraBits); + BIT_reloadDStream(&seqState->DStream); + offset += BIT_readBitsFast(&seqState->DStream, extraBits); + } else { + offset = ofBase + BIT_readBitsFast(&seqState->DStream, ofBits/*>0*/); /* <= (ZSTD_WINDOWLOG_MAX-1) bits */ + if (MEM_32bits()) BIT_reloadDStream(&seqState->DStream); + } + seqState->prevOffset[2] = seqState->prevOffset[1]; + seqState->prevOffset[1] = seqState->prevOffset[0]; + seqState->prevOffset[0] = offset; + } else { + U32 const ll0 = (llDInfo->baseValue == 0); + if (LIKELY((ofBits == 0))) { + offset = seqState->prevOffset[ll0]; + seqState->prevOffset[1] = seqState->prevOffset[!ll0]; + seqState->prevOffset[0] = offset; + } else { + offset = ofBase + ll0 + BIT_readBitsFast(&seqState->DStream, 1); + { size_t temp = (offset==3) ? seqState->prevOffset[0] - 1 : seqState->prevOffset[offset]; + temp -= !temp; /* 0 is not valid: input corrupted => force offset to -1 => corruption detected at execSequence */ + if (offset != 1) seqState->prevOffset[2] = seqState->prevOffset[1]; + seqState->prevOffset[1] = seqState->prevOffset[0]; + seqState->prevOffset[0] = offset = temp; + } } } + seq.offset = offset; + } + + if (mlBits > 0) + seq.matchLength += BIT_readBitsFast(&seqState->DStream, mlBits/*>0*/); + + if (MEM_32bits() && (mlBits+llBits >= STREAM_ACCUMULATOR_MIN_32-LONG_OFFSETS_MAX_EXTRA_BITS_32)) + BIT_reloadDStream(&seqState->DStream); + if (MEM_64bits() && UNLIKELY(totalBits >= STREAM_ACCUMULATOR_MIN_64-(LLFSELog+MLFSELog+OffFSELog))) + BIT_reloadDStream(&seqState->DStream); + /* Ensure there are enough bits to read the rest of data in 64-bit mode. */ + ZSTD_STATIC_ASSERT(16+LLFSELog+MLFSELog+OffFSELog < STREAM_ACCUMULATOR_MIN_64); + + if (llBits > 0) + seq.litLength += BIT_readBitsFast(&seqState->DStream, llBits/*>0*/); + + if (MEM_32bits()) + BIT_reloadDStream(&seqState->DStream); + + DEBUGLOG(6, "seq: litL=%u, matchL=%u, offset=%u", + (U32)seq.litLength, (U32)seq.matchLength, (U32)seq.offset); + + if (!isLastSeq) { + /* don't update FSE state for last Sequence */ + ZSTD_updateFseStateWithDInfo(&seqState->stateLL, &seqState->DStream, llNext, llnbBits); /* <= 9 bits */ + ZSTD_updateFseStateWithDInfo(&seqState->stateML, &seqState->DStream, mlNext, mlnbBits); /* <= 9 bits */ + if (MEM_32bits()) BIT_reloadDStream(&seqState->DStream); /* <= 18 bits */ + ZSTD_updateFseStateWithDInfo(&seqState->stateOffb, &seqState->DStream, ofNext, ofnbBits); /* <= 8 bits */ + BIT_reloadDStream(&seqState->DStream); + } + } + + return seq; +} + +#if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) && defined(FUZZING_ASSERT_VALID_SEQUENCE) +#if DEBUGLEVEL >= 1 +static int ZSTD_dictionaryIsActive(ZSTD_DCtx const* dctx, BYTE const* prefixStart, BYTE const* oLitEnd) +{ + size_t const windowSize = dctx->fParams.windowSize; + /* No dictionary used. */ + if (dctx->dictContentEndForFuzzing == NULL) return 0; + /* Dictionary is our prefix. */ + if (prefixStart == dctx->dictContentBeginForFuzzing) return 1; + /* Dictionary is not our ext-dict. */ + if (dctx->dictEnd != dctx->dictContentEndForFuzzing) return 0; + /* Dictionary is not within our window size. */ + if ((size_t)(oLitEnd - prefixStart) >= windowSize) return 0; + /* Dictionary is active. */ + return 1; +} +#endif + +static void ZSTD_assertValidSequence( + ZSTD_DCtx const* dctx, + BYTE const* op, BYTE const* oend, + seq_t const seq, + BYTE const* prefixStart, BYTE const* virtualStart) +{ +#if DEBUGLEVEL >= 1 + if (dctx->isFrameDecompression) { + size_t const windowSize = dctx->fParams.windowSize; + size_t const sequenceSize = seq.litLength + seq.matchLength; + BYTE const* const oLitEnd = op + seq.litLength; + DEBUGLOG(6, "Checking sequence: litL=%u matchL=%u offset=%u", + (U32)seq.litLength, (U32)seq.matchLength, (U32)seq.offset); + assert(op <= oend); + assert((size_t)(oend - op) >= sequenceSize); + assert(sequenceSize <= ZSTD_blockSizeMax(dctx)); + if (ZSTD_dictionaryIsActive(dctx, prefixStart, oLitEnd)) { + size_t const dictSize = (size_t)((char const*)dctx->dictContentEndForFuzzing - (char const*)dctx->dictContentBeginForFuzzing); + /* Offset must be within the dictionary. */ + assert(seq.offset <= (size_t)(oLitEnd - virtualStart)); + assert(seq.offset <= windowSize + dictSize); + } else { + /* Offset must be within our window. */ + assert(seq.offset <= windowSize); + } + } +#else + (void)dctx, (void)op, (void)oend, (void)seq, (void)prefixStart, (void)virtualStart; +#endif +} +#endif + +#ifndef ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG + + +FORCE_INLINE_TEMPLATE size_t +DONT_VECTORIZE +ZSTD_decompressSequences_bodySplitLitBuffer( ZSTD_DCtx* dctx, + void* dst, size_t maxDstSize, + const void* seqStart, size_t seqSize, int nbSeq, + const ZSTD_longOffset_e isLongOffset) +{ + const BYTE* ip = (const BYTE*)seqStart; + const BYTE* const iend = ip + seqSize; + BYTE* const ostart = (BYTE*)dst; + BYTE* const oend = ZSTD_maybeNullPtrAdd(ostart, maxDstSize); + BYTE* op = ostart; + const BYTE* litPtr = dctx->litPtr; + const BYTE* litBufferEnd = dctx->litBufferEnd; + const BYTE* const prefixStart = (const BYTE*) (dctx->prefixStart); + const BYTE* const vBase = (const BYTE*) (dctx->virtualStart); + const BYTE* const dictEnd = (const BYTE*) (dctx->dictEnd); + DEBUGLOG(5, "ZSTD_decompressSequences_bodySplitLitBuffer (%i seqs)", nbSeq); + + /* Literals are split between internal buffer & output buffer */ + if (nbSeq) { + seqState_t seqState; + dctx->fseEntropy = 1; + { U32 i; for (i=0; ientropy.rep[i]; } + RETURN_ERROR_IF( + ERR_isError(BIT_initDStream(&seqState.DStream, ip, iend-ip)), + corruption_detected, ""); + ZSTD_initFseState(&seqState.stateLL, &seqState.DStream, dctx->LLTptr); + ZSTD_initFseState(&seqState.stateOffb, &seqState.DStream, dctx->OFTptr); + ZSTD_initFseState(&seqState.stateML, &seqState.DStream, dctx->MLTptr); + assert(dst != NULL); + + ZSTD_STATIC_ASSERT( + BIT_DStream_unfinished < BIT_DStream_completed && + BIT_DStream_endOfBuffer < BIT_DStream_completed && + BIT_DStream_completed < BIT_DStream_overflow); + + /* decompress without overrunning litPtr begins */ + { seq_t sequence = {0,0,0}; /* some static analyzer believe that @sequence is not initialized (it necessarily is, since for(;;) loop as at least one iteration) */ + /* Align the decompression loop to 32 + 16 bytes. + * + * zstd compiled with gcc-9 on an Intel i9-9900k shows 10% decompression + * speed swings based on the alignment of the decompression loop. This + * performance swing is caused by parts of the decompression loop falling + * out of the DSB. The entire decompression loop should fit in the DSB, + * when it can't we get much worse performance. You can measure if you've + * hit the good case or the bad case with this perf command for some + * compressed file test.zst: + * + * perf stat -e cycles -e instructions -e idq.all_dsb_cycles_any_uops \ + * -e idq.all_mite_cycles_any_uops -- ./zstd -tq test.zst + * + * If you see most cycles served out of the MITE you've hit the bad case. + * If you see most cycles served out of the DSB you've hit the good case. + * If it is pretty even then you may be in an okay case. + * + * This issue has been reproduced on the following CPUs: + * - Kabylake: Macbook Pro (15-inch, 2019) 2.4 GHz Intel Core i9 + * Use Instruments->Counters to get DSB/MITE cycles. + * I never got performance swings, but I was able to + * go from the good case of mostly DSB to half of the + * cycles served from MITE. + * - Coffeelake: Intel i9-9900k + * - Coffeelake: Intel i7-9700k + * + * I haven't been able to reproduce the instability or DSB misses on any + * of the following CPUS: + * - Haswell + * - Broadwell: Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GH + * - Skylake + * + * Alignment is done for each of the three major decompression loops: + * - ZSTD_decompressSequences_bodySplitLitBuffer - presplit section of the literal buffer + * - ZSTD_decompressSequences_bodySplitLitBuffer - postsplit section of the literal buffer + * - ZSTD_decompressSequences_body + * Alignment choices are made to minimize large swings on bad cases and influence on performance + * from changes external to this code, rather than to overoptimize on the current commit. + * + * If you are seeing performance stability this script can help test. + * It tests on 4 commits in zstd where I saw performance change. + * + * https://gist.github.com/terrelln/9889fc06a423fd5ca6e99351564473f4 + */ +#if defined(__GNUC__) && defined(__x86_64__) + __asm__(".p2align 6"); +# if __GNUC__ >= 7 + /* good for gcc-7, gcc-9, and gcc-11 */ + __asm__("nop"); + __asm__(".p2align 5"); + __asm__("nop"); + __asm__(".p2align 4"); +# if __GNUC__ == 8 || __GNUC__ == 10 + /* good for gcc-8 and gcc-10 */ + __asm__("nop"); + __asm__(".p2align 3"); +# endif +# endif +#endif + + /* Handle the initial state where litBuffer is currently split between dst and litExtraBuffer */ + for ( ; nbSeq; nbSeq--) { + sequence = ZSTD_decodeSequence(&seqState, isLongOffset, nbSeq==1); + if (litPtr + sequence.litLength > dctx->litBufferEnd) break; + { size_t const oneSeqSize = ZSTD_execSequenceSplitLitBuffer(op, oend, litPtr + sequence.litLength - WILDCOPY_OVERLENGTH, sequence, &litPtr, litBufferEnd, prefixStart, vBase, dictEnd); +#if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) && defined(FUZZING_ASSERT_VALID_SEQUENCE) + assert(!ZSTD_isError(oneSeqSize)); + ZSTD_assertValidSequence(dctx, op, oend, sequence, prefixStart, vBase); +#endif + if (UNLIKELY(ZSTD_isError(oneSeqSize))) + return oneSeqSize; + DEBUGLOG(6, "regenerated sequence size : %u", (U32)oneSeqSize); + op += oneSeqSize; + } } + DEBUGLOG(6, "reached: (litPtr + sequence.litLength > dctx->litBufferEnd)"); + + /* If there are more sequences, they will need to read literals from litExtraBuffer; copy over the remainder from dst and update litPtr and litEnd */ + if (nbSeq > 0) { + const size_t leftoverLit = dctx->litBufferEnd - litPtr; + DEBUGLOG(6, "There are %i sequences left, and %zu/%zu literals left in buffer", nbSeq, leftoverLit, sequence.litLength); + if (leftoverLit) { + RETURN_ERROR_IF(leftoverLit > (size_t)(oend - op), dstSize_tooSmall, "remaining lit must fit within dstBuffer"); + ZSTD_safecopyDstBeforeSrc(op, litPtr, leftoverLit); + sequence.litLength -= leftoverLit; + op += leftoverLit; + } + litPtr = dctx->litExtraBuffer; + litBufferEnd = dctx->litExtraBuffer + ZSTD_LITBUFFEREXTRASIZE; + dctx->litBufferLocation = ZSTD_not_in_dst; + { size_t const oneSeqSize = ZSTD_execSequence(op, oend, sequence, &litPtr, litBufferEnd, prefixStart, vBase, dictEnd); +#if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) && defined(FUZZING_ASSERT_VALID_SEQUENCE) + assert(!ZSTD_isError(oneSeqSize)); + ZSTD_assertValidSequence(dctx, op, oend, sequence, prefixStart, vBase); +#endif + if (UNLIKELY(ZSTD_isError(oneSeqSize))) + return oneSeqSize; + DEBUGLOG(6, "regenerated sequence size : %u", (U32)oneSeqSize); + op += oneSeqSize; + } + nbSeq--; + } + } + + if (nbSeq > 0) { + /* there is remaining lit from extra buffer */ + +#if defined(__GNUC__) && defined(__x86_64__) + __asm__(".p2align 6"); + __asm__("nop"); +# if __GNUC__ != 7 + /* worse for gcc-7 better for gcc-8, gcc-9, and gcc-10 and clang */ + __asm__(".p2align 4"); + __asm__("nop"); + __asm__(".p2align 3"); +# elif __GNUC__ >= 11 + __asm__(".p2align 3"); +# else + __asm__(".p2align 5"); + __asm__("nop"); + __asm__(".p2align 3"); +# endif +#endif + + for ( ; nbSeq ; nbSeq--) { + seq_t const sequence = ZSTD_decodeSequence(&seqState, isLongOffset, nbSeq==1); + size_t const oneSeqSize = ZSTD_execSequence(op, oend, sequence, &litPtr, litBufferEnd, prefixStart, vBase, dictEnd); +#if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) && defined(FUZZING_ASSERT_VALID_SEQUENCE) + assert(!ZSTD_isError(oneSeqSize)); + ZSTD_assertValidSequence(dctx, op, oend, sequence, prefixStart, vBase); +#endif + if (UNLIKELY(ZSTD_isError(oneSeqSize))) + return oneSeqSize; + DEBUGLOG(6, "regenerated sequence size : %u", (U32)oneSeqSize); + op += oneSeqSize; + } + } + + /* check if reached exact end */ + DEBUGLOG(5, "ZSTD_decompressSequences_bodySplitLitBuffer: after decode loop, remaining nbSeq : %i", nbSeq); + RETURN_ERROR_IF(nbSeq, corruption_detected, ""); + DEBUGLOG(5, "bitStream : start=%p, ptr=%p, bitsConsumed=%u", seqState.DStream.start, seqState.DStream.ptr, seqState.DStream.bitsConsumed); + RETURN_ERROR_IF(!BIT_endOfDStream(&seqState.DStream), corruption_detected, ""); + /* save reps for next block */ + { U32 i; for (i=0; ientropy.rep[i] = (U32)(seqState.prevOffset[i]); } + } + + /* last literal segment */ + if (dctx->litBufferLocation == ZSTD_split) { + /* split hasn't been reached yet, first get dst then copy litExtraBuffer */ + size_t const lastLLSize = (size_t)(litBufferEnd - litPtr); + DEBUGLOG(6, "copy last literals from segment : %u", (U32)lastLLSize); + RETURN_ERROR_IF(lastLLSize > (size_t)(oend - op), dstSize_tooSmall, ""); + if (op != NULL) { + ZSTD_memmove(op, litPtr, lastLLSize); + op += lastLLSize; + } + litPtr = dctx->litExtraBuffer; + litBufferEnd = dctx->litExtraBuffer + ZSTD_LITBUFFEREXTRASIZE; + dctx->litBufferLocation = ZSTD_not_in_dst; + } + /* copy last literals from internal buffer */ + { size_t const lastLLSize = (size_t)(litBufferEnd - litPtr); + DEBUGLOG(6, "copy last literals from internal buffer : %u", (U32)lastLLSize); + RETURN_ERROR_IF(lastLLSize > (size_t)(oend-op), dstSize_tooSmall, ""); + if (op != NULL) { + ZSTD_memcpy(op, litPtr, lastLLSize); + op += lastLLSize; + } } + + DEBUGLOG(6, "decoded block of size %u bytes", (U32)(op - ostart)); + return (size_t)(op - ostart); +} + +FORCE_INLINE_TEMPLATE size_t +DONT_VECTORIZE +ZSTD_decompressSequences_body(ZSTD_DCtx* dctx, + void* dst, size_t maxDstSize, + const void* seqStart, size_t seqSize, int nbSeq, + const ZSTD_longOffset_e isLongOffset) +{ + const BYTE* ip = (const BYTE*)seqStart; + const BYTE* const iend = ip + seqSize; + BYTE* const ostart = (BYTE*)dst; + BYTE* const oend = dctx->litBufferLocation == ZSTD_not_in_dst ? ZSTD_maybeNullPtrAdd(ostart, maxDstSize) : dctx->litBuffer; + BYTE* op = ostart; + const BYTE* litPtr = dctx->litPtr; + const BYTE* const litEnd = litPtr + dctx->litSize; + const BYTE* const prefixStart = (const BYTE*)(dctx->prefixStart); + const BYTE* const vBase = (const BYTE*)(dctx->virtualStart); + const BYTE* const dictEnd = (const BYTE*)(dctx->dictEnd); + DEBUGLOG(5, "ZSTD_decompressSequences_body: nbSeq = %d", nbSeq); + + /* Regen sequences */ + if (nbSeq) { + seqState_t seqState; + dctx->fseEntropy = 1; + { U32 i; for (i = 0; i < ZSTD_REP_NUM; i++) seqState.prevOffset[i] = dctx->entropy.rep[i]; } + RETURN_ERROR_IF( + ERR_isError(BIT_initDStream(&seqState.DStream, ip, iend - ip)), + corruption_detected, ""); + ZSTD_initFseState(&seqState.stateLL, &seqState.DStream, dctx->LLTptr); + ZSTD_initFseState(&seqState.stateOffb, &seqState.DStream, dctx->OFTptr); + ZSTD_initFseState(&seqState.stateML, &seqState.DStream, dctx->MLTptr); + assert(dst != NULL); + +#if defined(__GNUC__) && defined(__x86_64__) + __asm__(".p2align 6"); + __asm__("nop"); +# if __GNUC__ >= 7 + __asm__(".p2align 5"); + __asm__("nop"); + __asm__(".p2align 3"); +# else + __asm__(".p2align 4"); + __asm__("nop"); + __asm__(".p2align 3"); +# endif +#endif + + for ( ; nbSeq ; nbSeq--) { + seq_t const sequence = ZSTD_decodeSequence(&seqState, isLongOffset, nbSeq==1); + size_t const oneSeqSize = ZSTD_execSequence(op, oend, sequence, &litPtr, litEnd, prefixStart, vBase, dictEnd); +#if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) && defined(FUZZING_ASSERT_VALID_SEQUENCE) + assert(!ZSTD_isError(oneSeqSize)); + ZSTD_assertValidSequence(dctx, op, oend, sequence, prefixStart, vBase); +#endif + if (UNLIKELY(ZSTD_isError(oneSeqSize))) + return oneSeqSize; + DEBUGLOG(6, "regenerated sequence size : %u", (U32)oneSeqSize); + op += oneSeqSize; + } + + /* check if reached exact end */ + assert(nbSeq == 0); + RETURN_ERROR_IF(!BIT_endOfDStream(&seqState.DStream), corruption_detected, ""); + /* save reps for next block */ + { U32 i; for (i=0; ientropy.rep[i] = (U32)(seqState.prevOffset[i]); } + } + + /* last literal segment */ + { size_t const lastLLSize = (size_t)(litEnd - litPtr); + DEBUGLOG(6, "copy last literals : %u", (U32)lastLLSize); + RETURN_ERROR_IF(lastLLSize > (size_t)(oend-op), dstSize_tooSmall, ""); + if (op != NULL) { + ZSTD_memcpy(op, litPtr, lastLLSize); + op += lastLLSize; + } } + + DEBUGLOG(6, "decoded block of size %u bytes", (U32)(op - ostart)); + return (size_t)(op - ostart); +} + +static size_t +ZSTD_decompressSequences_default(ZSTD_DCtx* dctx, + void* dst, size_t maxDstSize, + const void* seqStart, size_t seqSize, int nbSeq, + const ZSTD_longOffset_e isLongOffset) +{ + return ZSTD_decompressSequences_body(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset); +} + +static size_t +ZSTD_decompressSequencesSplitLitBuffer_default(ZSTD_DCtx* dctx, + void* dst, size_t maxDstSize, + const void* seqStart, size_t seqSize, int nbSeq, + const ZSTD_longOffset_e isLongOffset) +{ + return ZSTD_decompressSequences_bodySplitLitBuffer(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset); +} +#endif /* ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG */ + +#ifndef ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT + +FORCE_INLINE_TEMPLATE + +size_t ZSTD_prefetchMatch(size_t prefetchPos, seq_t const sequence, + const BYTE* const prefixStart, const BYTE* const dictEnd) +{ + prefetchPos += sequence.litLength; + { const BYTE* const matchBase = (sequence.offset > prefetchPos) ? dictEnd : prefixStart; + /* note : this operation can overflow when seq.offset is really too large, which can only happen when input is corrupted. + * No consequence though : memory address is only used for prefetching, not for dereferencing */ + const BYTE* const match = ZSTD_wrappedPtrSub(ZSTD_wrappedPtrAdd(matchBase, prefetchPos), sequence.offset); + PREFETCH_L1(match); PREFETCH_L1(match+CACHELINE_SIZE); /* note : it's safe to invoke PREFETCH() on any memory address, including invalid ones */ + } + return prefetchPos + sequence.matchLength; +} + +/* This decoding function employs prefetching + * to reduce latency impact of cache misses. + * It's generally employed when block contains a significant portion of long-distance matches + * or when coupled with a "cold" dictionary */ +FORCE_INLINE_TEMPLATE size_t +ZSTD_decompressSequencesLong_body( + ZSTD_DCtx* dctx, + void* dst, size_t maxDstSize, + const void* seqStart, size_t seqSize, int nbSeq, + const ZSTD_longOffset_e isLongOffset) +{ + const BYTE* ip = (const BYTE*)seqStart; + const BYTE* const iend = ip + seqSize; + BYTE* const ostart = (BYTE*)dst; + BYTE* const oend = dctx->litBufferLocation == ZSTD_in_dst ? dctx->litBuffer : ZSTD_maybeNullPtrAdd(ostart, maxDstSize); + BYTE* op = ostart; + const BYTE* litPtr = dctx->litPtr; + const BYTE* litBufferEnd = dctx->litBufferEnd; + const BYTE* const prefixStart = (const BYTE*) (dctx->prefixStart); + const BYTE* const dictStart = (const BYTE*) (dctx->virtualStart); + const BYTE* const dictEnd = (const BYTE*) (dctx->dictEnd); + + /* Regen sequences */ + if (nbSeq) { +#define STORED_SEQS 8 +#define STORED_SEQS_MASK (STORED_SEQS-1) +#define ADVANCED_SEQS STORED_SEQS + seq_t sequences[STORED_SEQS]; + int const seqAdvance = MIN(nbSeq, ADVANCED_SEQS); + seqState_t seqState; + int seqNb; + size_t prefetchPos = (size_t)(op-prefixStart); /* track position relative to prefixStart */ + + dctx->fseEntropy = 1; + { int i; for (i=0; ientropy.rep[i]; } + assert(dst != NULL); + assert(iend >= ip); + RETURN_ERROR_IF( + ERR_isError(BIT_initDStream(&seqState.DStream, ip, iend-ip)), + corruption_detected, ""); + ZSTD_initFseState(&seqState.stateLL, &seqState.DStream, dctx->LLTptr); + ZSTD_initFseState(&seqState.stateOffb, &seqState.DStream, dctx->OFTptr); + ZSTD_initFseState(&seqState.stateML, &seqState.DStream, dctx->MLTptr); + + /* prepare in advance */ + for (seqNb=0; seqNblitBufferLocation == ZSTD_split && litPtr + sequences[(seqNb - ADVANCED_SEQS) & STORED_SEQS_MASK].litLength > dctx->litBufferEnd) { + /* lit buffer is reaching split point, empty out the first buffer and transition to litExtraBuffer */ + const size_t leftoverLit = dctx->litBufferEnd - litPtr; + if (leftoverLit) + { + RETURN_ERROR_IF(leftoverLit > (size_t)(oend - op), dstSize_tooSmall, "remaining lit must fit within dstBuffer"); + ZSTD_safecopyDstBeforeSrc(op, litPtr, leftoverLit); + sequences[(seqNb - ADVANCED_SEQS) & STORED_SEQS_MASK].litLength -= leftoverLit; + op += leftoverLit; + } + litPtr = dctx->litExtraBuffer; + litBufferEnd = dctx->litExtraBuffer + ZSTD_LITBUFFEREXTRASIZE; + dctx->litBufferLocation = ZSTD_not_in_dst; + { size_t const oneSeqSize = ZSTD_execSequence(op, oend, sequences[(seqNb - ADVANCED_SEQS) & STORED_SEQS_MASK], &litPtr, litBufferEnd, prefixStart, dictStart, dictEnd); +#if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) && defined(FUZZING_ASSERT_VALID_SEQUENCE) + assert(!ZSTD_isError(oneSeqSize)); + ZSTD_assertValidSequence(dctx, op, oend, sequences[(seqNb - ADVANCED_SEQS) & STORED_SEQS_MASK], prefixStart, dictStart); +#endif + if (ZSTD_isError(oneSeqSize)) return oneSeqSize; + + prefetchPos = ZSTD_prefetchMatch(prefetchPos, sequence, prefixStart, dictEnd); + sequences[seqNb & STORED_SEQS_MASK] = sequence; + op += oneSeqSize; + } } + else + { + /* lit buffer is either wholly contained in first or second split, or not split at all*/ + size_t const oneSeqSize = dctx->litBufferLocation == ZSTD_split ? + ZSTD_execSequenceSplitLitBuffer(op, oend, litPtr + sequences[(seqNb - ADVANCED_SEQS) & STORED_SEQS_MASK].litLength - WILDCOPY_OVERLENGTH, sequences[(seqNb - ADVANCED_SEQS) & STORED_SEQS_MASK], &litPtr, litBufferEnd, prefixStart, dictStart, dictEnd) : + ZSTD_execSequence(op, oend, sequences[(seqNb - ADVANCED_SEQS) & STORED_SEQS_MASK], &litPtr, litBufferEnd, prefixStart, dictStart, dictEnd); +#if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) && defined(FUZZING_ASSERT_VALID_SEQUENCE) + assert(!ZSTD_isError(oneSeqSize)); + ZSTD_assertValidSequence(dctx, op, oend, sequences[(seqNb - ADVANCED_SEQS) & STORED_SEQS_MASK], prefixStart, dictStart); +#endif + if (ZSTD_isError(oneSeqSize)) return oneSeqSize; + + prefetchPos = ZSTD_prefetchMatch(prefetchPos, sequence, prefixStart, dictEnd); + sequences[seqNb & STORED_SEQS_MASK] = sequence; + op += oneSeqSize; + } + } + RETURN_ERROR_IF(!BIT_endOfDStream(&seqState.DStream), corruption_detected, ""); + + /* finish queue */ + seqNb -= seqAdvance; + for ( ; seqNblitBufferLocation == ZSTD_split && litPtr + sequence->litLength > dctx->litBufferEnd) { + const size_t leftoverLit = dctx->litBufferEnd - litPtr; + if (leftoverLit) { + RETURN_ERROR_IF(leftoverLit > (size_t)(oend - op), dstSize_tooSmall, "remaining lit must fit within dstBuffer"); + ZSTD_safecopyDstBeforeSrc(op, litPtr, leftoverLit); + sequence->litLength -= leftoverLit; + op += leftoverLit; + } + litPtr = dctx->litExtraBuffer; + litBufferEnd = dctx->litExtraBuffer + ZSTD_LITBUFFEREXTRASIZE; + dctx->litBufferLocation = ZSTD_not_in_dst; + { size_t const oneSeqSize = ZSTD_execSequence(op, oend, *sequence, &litPtr, litBufferEnd, prefixStart, dictStart, dictEnd); +#if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) && defined(FUZZING_ASSERT_VALID_SEQUENCE) + assert(!ZSTD_isError(oneSeqSize)); + ZSTD_assertValidSequence(dctx, op, oend, sequences[seqNb&STORED_SEQS_MASK], prefixStart, dictStart); +#endif + if (ZSTD_isError(oneSeqSize)) return oneSeqSize; + op += oneSeqSize; + } + } + else + { + size_t const oneSeqSize = dctx->litBufferLocation == ZSTD_split ? + ZSTD_execSequenceSplitLitBuffer(op, oend, litPtr + sequence->litLength - WILDCOPY_OVERLENGTH, *sequence, &litPtr, litBufferEnd, prefixStart, dictStart, dictEnd) : + ZSTD_execSequence(op, oend, *sequence, &litPtr, litBufferEnd, prefixStart, dictStart, dictEnd); +#if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) && defined(FUZZING_ASSERT_VALID_SEQUENCE) + assert(!ZSTD_isError(oneSeqSize)); + ZSTD_assertValidSequence(dctx, op, oend, sequences[seqNb&STORED_SEQS_MASK], prefixStart, dictStart); +#endif + if (ZSTD_isError(oneSeqSize)) return oneSeqSize; + op += oneSeqSize; + } + } + + /* save reps for next block */ + { U32 i; for (i=0; ientropy.rep[i] = (U32)(seqState.prevOffset[i]); } + } + + /* last literal segment */ + if (dctx->litBufferLocation == ZSTD_split) { /* first deplete literal buffer in dst, then copy litExtraBuffer */ + size_t const lastLLSize = litBufferEnd - litPtr; + RETURN_ERROR_IF(lastLLSize > (size_t)(oend - op), dstSize_tooSmall, ""); + if (op != NULL) { + ZSTD_memmove(op, litPtr, lastLLSize); + op += lastLLSize; + } + litPtr = dctx->litExtraBuffer; + litBufferEnd = dctx->litExtraBuffer + ZSTD_LITBUFFEREXTRASIZE; + } + { size_t const lastLLSize = litBufferEnd - litPtr; + RETURN_ERROR_IF(lastLLSize > (size_t)(oend-op), dstSize_tooSmall, ""); + if (op != NULL) { + ZSTD_memmove(op, litPtr, lastLLSize); + op += lastLLSize; + } + } + + return (size_t)(op - ostart); +} + +static size_t +ZSTD_decompressSequencesLong_default(ZSTD_DCtx* dctx, + void* dst, size_t maxDstSize, + const void* seqStart, size_t seqSize, int nbSeq, + const ZSTD_longOffset_e isLongOffset) +{ + return ZSTD_decompressSequencesLong_body(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset); +} +#endif /* ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT */ + + + +#if DYNAMIC_BMI2 + +#ifndef ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG +static BMI2_TARGET_ATTRIBUTE size_t +DONT_VECTORIZE +ZSTD_decompressSequences_bmi2(ZSTD_DCtx* dctx, + void* dst, size_t maxDstSize, + const void* seqStart, size_t seqSize, int nbSeq, + const ZSTD_longOffset_e isLongOffset) +{ + return ZSTD_decompressSequences_body(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset); +} +static BMI2_TARGET_ATTRIBUTE size_t +DONT_VECTORIZE +ZSTD_decompressSequencesSplitLitBuffer_bmi2(ZSTD_DCtx* dctx, + void* dst, size_t maxDstSize, + const void* seqStart, size_t seqSize, int nbSeq, + const ZSTD_longOffset_e isLongOffset) +{ + return ZSTD_decompressSequences_bodySplitLitBuffer(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset); +} +#endif /* ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG */ + +#ifndef ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT +static BMI2_TARGET_ATTRIBUTE size_t +ZSTD_decompressSequencesLong_bmi2(ZSTD_DCtx* dctx, + void* dst, size_t maxDstSize, + const void* seqStart, size_t seqSize, int nbSeq, + const ZSTD_longOffset_e isLongOffset) +{ + return ZSTD_decompressSequencesLong_body(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset); +} +#endif /* ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT */ + +#endif /* DYNAMIC_BMI2 */ + +typedef size_t (*ZSTD_decompressSequences_t)( + ZSTD_DCtx* dctx, + void* dst, size_t maxDstSize, + const void* seqStart, size_t seqSize, int nbSeq, + const ZSTD_longOffset_e isLongOffset); + +#ifndef ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG +static size_t +ZSTD_decompressSequences(ZSTD_DCtx* dctx, void* dst, size_t maxDstSize, + const void* seqStart, size_t seqSize, int nbSeq, + const ZSTD_longOffset_e isLongOffset) +{ + DEBUGLOG(5, "ZSTD_decompressSequences"); +#if DYNAMIC_BMI2 + if (ZSTD_DCtx_get_bmi2(dctx)) { + return ZSTD_decompressSequences_bmi2(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset); + } +#endif + return ZSTD_decompressSequences_default(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset); +} +static size_t +ZSTD_decompressSequencesSplitLitBuffer(ZSTD_DCtx* dctx, void* dst, size_t maxDstSize, + const void* seqStart, size_t seqSize, int nbSeq, + const ZSTD_longOffset_e isLongOffset) +{ + DEBUGLOG(5, "ZSTD_decompressSequencesSplitLitBuffer"); +#if DYNAMIC_BMI2 + if (ZSTD_DCtx_get_bmi2(dctx)) { + return ZSTD_decompressSequencesSplitLitBuffer_bmi2(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset); + } +#endif + return ZSTD_decompressSequencesSplitLitBuffer_default(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset); +} +#endif /* ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG */ + + +#ifndef ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT +/* ZSTD_decompressSequencesLong() : + * decompression function triggered when a minimum share of offsets is considered "long", + * aka out of cache. + * note : "long" definition seems overloaded here, sometimes meaning "wider than bitstream register", and sometimes meaning "farther than memory cache distance". + * This function will try to mitigate main memory latency through the use of prefetching */ +static size_t +ZSTD_decompressSequencesLong(ZSTD_DCtx* dctx, + void* dst, size_t maxDstSize, + const void* seqStart, size_t seqSize, int nbSeq, + const ZSTD_longOffset_e isLongOffset) +{ + DEBUGLOG(5, "ZSTD_decompressSequencesLong"); +#if DYNAMIC_BMI2 + if (ZSTD_DCtx_get_bmi2(dctx)) { + return ZSTD_decompressSequencesLong_bmi2(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset); + } +#endif + return ZSTD_decompressSequencesLong_default(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset); +} +#endif /* ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT */ + + +/** + * @returns The total size of the history referenceable by zstd, including + * both the prefix and the extDict. At @p op any offset larger than this + * is invalid. + */ +static size_t ZSTD_totalHistorySize(BYTE* op, BYTE const* virtualStart) +{ + return (size_t)(op - virtualStart); +} + +typedef struct { + unsigned longOffsetShare; + unsigned maxNbAdditionalBits; +} ZSTD_OffsetInfo; + +/* ZSTD_getOffsetInfo() : + * condition : offTable must be valid + * @return : "share" of long offsets (arbitrarily defined as > (1<<23)) + * compared to maximum possible of (1< 22) info.longOffsetShare += 1; + } + + assert(tableLog <= OffFSELog); + info.longOffsetShare <<= (OffFSELog - tableLog); /* scale to OffFSELog */ + } + + return info; +} + +/** + * @returns The maximum offset we can decode in one read of our bitstream, without + * reloading more bits in the middle of the offset bits read. Any offsets larger + * than this must use the long offset decoder. + */ +static size_t ZSTD_maxShortOffset(void) +{ + if (MEM_64bits()) { + /* We can decode any offset without reloading bits. + * This might change if the max window size grows. + */ + ZSTD_STATIC_ASSERT(ZSTD_WINDOWLOG_MAX <= 31); + return (size_t)-1; + } else { + /* The maximum offBase is (1 << (STREAM_ACCUMULATOR_MIN + 1)) - 1. + * This offBase would require STREAM_ACCUMULATOR_MIN extra bits. + * Then we have to subtract ZSTD_REP_NUM to get the maximum possible offset. + */ + size_t const maxOffbase = ((size_t)1 << (STREAM_ACCUMULATOR_MIN + 1)) - 1; + size_t const maxOffset = maxOffbase - ZSTD_REP_NUM; + assert(ZSTD_highbit32((U32)maxOffbase) == STREAM_ACCUMULATOR_MIN); + return maxOffset; + } +} + +size_t +ZSTD_decompressBlock_internal(ZSTD_DCtx* dctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, const streaming_operation streaming) +{ /* blockType == blockCompressed */ + const BYTE* ip = (const BYTE*)src; + DEBUGLOG(5, "ZSTD_decompressBlock_internal (cSize : %u)", (unsigned)srcSize); + + /* Note : the wording of the specification + * allows compressed block to be sized exactly ZSTD_blockSizeMax(dctx). + * This generally does not happen, as it makes little sense, + * since an uncompressed block would feature same size and have no decompression cost. + * Also, note that decoder from reference libzstd before < v1.5.4 + * would consider this edge case as an error. + * As a consequence, avoid generating compressed blocks of size ZSTD_blockSizeMax(dctx) + * for broader compatibility with the deployed ecosystem of zstd decoders */ + RETURN_ERROR_IF(srcSize > ZSTD_blockSizeMax(dctx), srcSize_wrong, ""); + + /* Decode literals section */ + { size_t const litCSize = ZSTD_decodeLiteralsBlock(dctx, src, srcSize, dst, dstCapacity, streaming); + DEBUGLOG(5, "ZSTD_decodeLiteralsBlock : cSize=%u, nbLiterals=%zu", (U32)litCSize, dctx->litSize); + if (ZSTD_isError(litCSize)) return litCSize; + ip += litCSize; + srcSize -= litCSize; + } + + /* Build Decoding Tables */ + { + /* Compute the maximum block size, which must also work when !frame and fParams are unset. + * Additionally, take the min with dstCapacity to ensure that the totalHistorySize fits in a size_t. + */ + size_t const blockSizeMax = MIN(dstCapacity, ZSTD_blockSizeMax(dctx)); + size_t const totalHistorySize = ZSTD_totalHistorySize(ZSTD_maybeNullPtrAdd((BYTE*)dst, blockSizeMax), (BYTE const*)dctx->virtualStart); + /* isLongOffset must be true if there are long offsets. + * Offsets are long if they are larger than ZSTD_maxShortOffset(). + * We don't expect that to be the case in 64-bit mode. + * + * We check here to see if our history is large enough to allow long offsets. + * If it isn't, then we can't possible have (valid) long offsets. If the offset + * is invalid, then it is okay to read it incorrectly. + * + * If isLongOffsets is true, then we will later check our decoding table to see + * if it is even possible to generate long offsets. + */ + ZSTD_longOffset_e isLongOffset = (ZSTD_longOffset_e)(MEM_32bits() && (totalHistorySize > ZSTD_maxShortOffset())); + /* These macros control at build-time which decompressor implementation + * we use. If neither is defined, we do some inspection and dispatch at + * runtime. + */ +#if !defined(ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT) && \ + !defined(ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG) + int usePrefetchDecoder = dctx->ddictIsCold; +#else + /* Set to 1 to avoid computing offset info if we don't need to. + * Otherwise this value is ignored. + */ + int usePrefetchDecoder = 1; +#endif + int nbSeq; + size_t const seqHSize = ZSTD_decodeSeqHeaders(dctx, &nbSeq, ip, srcSize); + if (ZSTD_isError(seqHSize)) return seqHSize; + ip += seqHSize; + srcSize -= seqHSize; + + RETURN_ERROR_IF((dst == NULL || dstCapacity == 0) && nbSeq > 0, dstSize_tooSmall, "NULL not handled"); + RETURN_ERROR_IF(MEM_64bits() && sizeof(size_t) == sizeof(void*) && (size_t)(-1) - (size_t)dst < (size_t)(1 << 20), dstSize_tooSmall, + "invalid dst"); + + /* If we could potentially have long offsets, or we might want to use the prefetch decoder, + * compute information about the share of long offsets, and the maximum nbAdditionalBits. + * NOTE: could probably use a larger nbSeq limit + */ + if (isLongOffset || (!usePrefetchDecoder && (totalHistorySize > (1u << 24)) && (nbSeq > 8))) { + ZSTD_OffsetInfo const info = ZSTD_getOffsetInfo(dctx->OFTptr, nbSeq); + if (isLongOffset && info.maxNbAdditionalBits <= STREAM_ACCUMULATOR_MIN) { + /* If isLongOffset, but the maximum number of additional bits that we see in our table is small + * enough, then we know it is impossible to have too long an offset in this block, so we can + * use the regular offset decoder. + */ + isLongOffset = ZSTD_lo_isRegularOffset; + } + if (!usePrefetchDecoder) { + U32 const minShare = MEM_64bits() ? 7 : 20; /* heuristic values, correspond to 2.73% and 7.81% */ + usePrefetchDecoder = (info.longOffsetShare >= minShare); + } + } + + dctx->ddictIsCold = 0; + +#if !defined(ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT) && \ + !defined(ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG) + if (usePrefetchDecoder) { +#else + (void)usePrefetchDecoder; + { +#endif +#ifndef ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT + return ZSTD_decompressSequencesLong(dctx, dst, dstCapacity, ip, srcSize, nbSeq, isLongOffset); +#endif + } + +#ifndef ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG + /* else */ + if (dctx->litBufferLocation == ZSTD_split) + return ZSTD_decompressSequencesSplitLitBuffer(dctx, dst, dstCapacity, ip, srcSize, nbSeq, isLongOffset); + else + return ZSTD_decompressSequences(dctx, dst, dstCapacity, ip, srcSize, nbSeq, isLongOffset); +#endif + } +} + + +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +void ZSTD_checkContinuity(ZSTD_DCtx* dctx, const void* dst, size_t dstSize) +{ + if (dst != dctx->previousDstEnd && dstSize > 0) { /* not contiguous */ + dctx->dictEnd = dctx->previousDstEnd; + dctx->virtualStart = (const char*)dst - ((const char*)(dctx->previousDstEnd) - (const char*)(dctx->prefixStart)); + dctx->prefixStart = dst; + dctx->previousDstEnd = dst; + } +} + + +size_t ZSTD_decompressBlock_deprecated(ZSTD_DCtx* dctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize) +{ + size_t dSize; + dctx->isFrameDecompression = 0; + ZSTD_checkContinuity(dctx, dst, dstCapacity); + dSize = ZSTD_decompressBlock_internal(dctx, dst, dstCapacity, src, srcSize, not_streaming); + FORWARD_IF_ERROR(dSize, ""); + dctx->previousDstEnd = (char*)dst + dSize; + return dSize; +} + + +/* NOTE: Must just wrap ZSTD_decompressBlock_deprecated() */ +size_t ZSTD_decompressBlock(ZSTD_DCtx* dctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize) +{ + return ZSTD_decompressBlock_deprecated(dctx, dst, dstCapacity, src, srcSize); +} diff --git a/deps/zstd/lib/decompress/zstd_decompress_block.h b/deps/zstd/lib/decompress/zstd_decompress_block.h new file mode 100644 index 00000000000000..ab152404ba057a --- /dev/null +++ b/deps/zstd/lib/decompress/zstd_decompress_block.h @@ -0,0 +1,73 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + +#ifndef ZSTD_DEC_BLOCK_H +#define ZSTD_DEC_BLOCK_H + +/*-******************************************************* + * Dependencies + *********************************************************/ +#include "../common/zstd_deps.h" /* size_t */ +#include "../zstd.h" /* DCtx, and some public functions */ +#include "../common/zstd_internal.h" /* blockProperties_t, and some public functions */ +#include "zstd_decompress_internal.h" /* ZSTD_seqSymbol */ + + +/* === Prototypes === */ + +/* note: prototypes already published within `zstd.h` : + * ZSTD_decompressBlock() + */ + +/* note: prototypes already published within `zstd_internal.h` : + * ZSTD_getcBlockSize() + * ZSTD_decodeSeqHeaders() + */ + + + /* Streaming state is used to inform allocation of the literal buffer */ +typedef enum { + not_streaming = 0, + is_streaming = 1 +} streaming_operation; + +/* ZSTD_decompressBlock_internal() : + * decompress block, starting at `src`, + * into destination buffer `dst`. + * @return : decompressed block size, + * or an error code (which can be tested using ZSTD_isError()) + */ +size_t ZSTD_decompressBlock_internal(ZSTD_DCtx* dctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, const streaming_operation streaming); + +/* ZSTD_buildFSETable() : + * generate FSE decoding table for one symbol (ll, ml or off) + * this function must be called with valid parameters only + * (dt is large enough, normalizedCounter distribution total is a power of 2, max is within range, etc.) + * in which case it cannot fail. + * The workspace must be 4-byte aligned and at least ZSTD_BUILD_FSE_TABLE_WKSP_SIZE bytes, which is + * defined in zstd_decompress_internal.h. + * Internal use only. + */ +void ZSTD_buildFSETable(ZSTD_seqSymbol* dt, + const short* normalizedCounter, unsigned maxSymbolValue, + const U32* baseValue, const U8* nbAdditionalBits, + unsigned tableLog, void* wksp, size_t wkspSize, + int bmi2); + +/* Internal definition of ZSTD_decompressBlock() to avoid deprecation warnings. */ +size_t ZSTD_decompressBlock_deprecated(ZSTD_DCtx* dctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize); + + +#endif /* ZSTD_DEC_BLOCK_H */ diff --git a/deps/zstd/lib/decompress/zstd_decompress_internal.h b/deps/zstd/lib/decompress/zstd_decompress_internal.h new file mode 100644 index 00000000000000..83a7a0115fdba0 --- /dev/null +++ b/deps/zstd/lib/decompress/zstd_decompress_internal.h @@ -0,0 +1,240 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + +/* zstd_decompress_internal: + * objects and definitions shared within lib/decompress modules */ + + #ifndef ZSTD_DECOMPRESS_INTERNAL_H + #define ZSTD_DECOMPRESS_INTERNAL_H + + +/*-******************************************************* + * Dependencies + *********************************************************/ +#include "../common/mem.h" /* BYTE, U16, U32 */ +#include "../common/zstd_internal.h" /* constants : MaxLL, MaxML, MaxOff, LLFSELog, etc. */ + + + +/*-******************************************************* + * Constants + *********************************************************/ +static UNUSED_ATTR const U32 LL_base[MaxLL+1] = { + 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, + 16, 18, 20, 22, 24, 28, 32, 40, + 48, 64, 0x80, 0x100, 0x200, 0x400, 0x800, 0x1000, + 0x2000, 0x4000, 0x8000, 0x10000 }; + +static UNUSED_ATTR const U32 OF_base[MaxOff+1] = { + 0, 1, 1, 5, 0xD, 0x1D, 0x3D, 0x7D, + 0xFD, 0x1FD, 0x3FD, 0x7FD, 0xFFD, 0x1FFD, 0x3FFD, 0x7FFD, + 0xFFFD, 0x1FFFD, 0x3FFFD, 0x7FFFD, 0xFFFFD, 0x1FFFFD, 0x3FFFFD, 0x7FFFFD, + 0xFFFFFD, 0x1FFFFFD, 0x3FFFFFD, 0x7FFFFFD, 0xFFFFFFD, 0x1FFFFFFD, 0x3FFFFFFD, 0x7FFFFFFD }; + +static UNUSED_ATTR const U8 OF_bits[MaxOff+1] = { + 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31 }; + +static UNUSED_ATTR const U32 ML_base[MaxML+1] = { + 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, + 35, 37, 39, 41, 43, 47, 51, 59, + 67, 83, 99, 0x83, 0x103, 0x203, 0x403, 0x803, + 0x1003, 0x2003, 0x4003, 0x8003, 0x10003 }; + + +/*-******************************************************* + * Decompression types + *********************************************************/ + typedef struct { + U32 fastMode; + U32 tableLog; + } ZSTD_seqSymbol_header; + + typedef struct { + U16 nextState; + BYTE nbAdditionalBits; + BYTE nbBits; + U32 baseValue; + } ZSTD_seqSymbol; + + #define SEQSYMBOL_TABLE_SIZE(log) (1 + (1 << (log))) + +#define ZSTD_BUILD_FSE_TABLE_WKSP_SIZE (sizeof(S16) * (MaxSeq + 1) + (1u << MaxFSELog) + sizeof(U64)) +#define ZSTD_BUILD_FSE_TABLE_WKSP_SIZE_U32 ((ZSTD_BUILD_FSE_TABLE_WKSP_SIZE + sizeof(U32) - 1) / sizeof(U32)) +#define ZSTD_HUFFDTABLE_CAPACITY_LOG 12 + +typedef struct { + ZSTD_seqSymbol LLTable[SEQSYMBOL_TABLE_SIZE(LLFSELog)]; /* Note : Space reserved for FSE Tables */ + ZSTD_seqSymbol OFTable[SEQSYMBOL_TABLE_SIZE(OffFSELog)]; /* is also used as temporary workspace while building hufTable during DDict creation */ + ZSTD_seqSymbol MLTable[SEQSYMBOL_TABLE_SIZE(MLFSELog)]; /* and therefore must be at least HUF_DECOMPRESS_WORKSPACE_SIZE large */ + HUF_DTable hufTable[HUF_DTABLE_SIZE(ZSTD_HUFFDTABLE_CAPACITY_LOG)]; /* can accommodate HUF_decompress4X */ + U32 rep[ZSTD_REP_NUM]; + U32 workspace[ZSTD_BUILD_FSE_TABLE_WKSP_SIZE_U32]; +} ZSTD_entropyDTables_t; + +typedef enum { ZSTDds_getFrameHeaderSize, ZSTDds_decodeFrameHeader, + ZSTDds_decodeBlockHeader, ZSTDds_decompressBlock, + ZSTDds_decompressLastBlock, ZSTDds_checkChecksum, + ZSTDds_decodeSkippableHeader, ZSTDds_skipFrame } ZSTD_dStage; + +typedef enum { zdss_init=0, zdss_loadHeader, + zdss_read, zdss_load, zdss_flush } ZSTD_dStreamStage; + +typedef enum { + ZSTD_use_indefinitely = -1, /* Use the dictionary indefinitely */ + ZSTD_dont_use = 0, /* Do not use the dictionary (if one exists free it) */ + ZSTD_use_once = 1 /* Use the dictionary once and set to ZSTD_dont_use */ +} ZSTD_dictUses_e; + +/* Hashset for storing references to multiple ZSTD_DDict within ZSTD_DCtx */ +typedef struct { + const ZSTD_DDict** ddictPtrTable; + size_t ddictPtrTableSize; + size_t ddictPtrCount; +} ZSTD_DDictHashSet; + +#ifndef ZSTD_DECODER_INTERNAL_BUFFER +# define ZSTD_DECODER_INTERNAL_BUFFER (1 << 16) +#endif + +#define ZSTD_LBMIN 64 +#define ZSTD_LBMAX (128 << 10) + +/* extra buffer, compensates when dst is not large enough to store litBuffer */ +#define ZSTD_LITBUFFEREXTRASIZE BOUNDED(ZSTD_LBMIN, ZSTD_DECODER_INTERNAL_BUFFER, ZSTD_LBMAX) + +typedef enum { + ZSTD_not_in_dst = 0, /* Stored entirely within litExtraBuffer */ + ZSTD_in_dst = 1, /* Stored entirely within dst (in memory after current output write) */ + ZSTD_split = 2 /* Split between litExtraBuffer and dst */ +} ZSTD_litLocation_e; + +struct ZSTD_DCtx_s +{ + const ZSTD_seqSymbol* LLTptr; + const ZSTD_seqSymbol* MLTptr; + const ZSTD_seqSymbol* OFTptr; + const HUF_DTable* HUFptr; + ZSTD_entropyDTables_t entropy; + U32 workspace[HUF_DECOMPRESS_WORKSPACE_SIZE_U32]; /* space needed when building huffman tables */ + const void* previousDstEnd; /* detect continuity */ + const void* prefixStart; /* start of current segment */ + const void* virtualStart; /* virtual start of previous segment if it was just before current one */ + const void* dictEnd; /* end of previous segment */ + size_t expected; + ZSTD_frameHeader fParams; + U64 processedCSize; + U64 decodedSize; + blockType_e bType; /* used in ZSTD_decompressContinue(), store blockType between block header decoding and block decompression stages */ + ZSTD_dStage stage; + U32 litEntropy; + U32 fseEntropy; + XXH64_state_t xxhState; + size_t headerSize; + ZSTD_format_e format; + ZSTD_forceIgnoreChecksum_e forceIgnoreChecksum; /* User specified: if == 1, will ignore checksums in compressed frame. Default == 0 */ + U32 validateChecksum; /* if == 1, will validate checksum. Is == 1 if (fParams.checksumFlag == 1) and (forceIgnoreChecksum == 0). */ + const BYTE* litPtr; + ZSTD_customMem customMem; + size_t litSize; + size_t rleSize; + size_t staticSize; + int isFrameDecompression; +#if DYNAMIC_BMI2 != 0 + int bmi2; /* == 1 if the CPU supports BMI2 and 0 otherwise. CPU support is determined dynamically once per context lifetime. */ +#endif + + /* dictionary */ + ZSTD_DDict* ddictLocal; + const ZSTD_DDict* ddict; /* set by ZSTD_initDStream_usingDDict(), or ZSTD_DCtx_refDDict() */ + U32 dictID; + int ddictIsCold; /* if == 1 : dictionary is "new" for working context, and presumed "cold" (not in cpu cache) */ + ZSTD_dictUses_e dictUses; + ZSTD_DDictHashSet* ddictSet; /* Hash set for multiple ddicts */ + ZSTD_refMultipleDDicts_e refMultipleDDicts; /* User specified: if == 1, will allow references to multiple DDicts. Default == 0 (disabled) */ + int disableHufAsm; + int maxBlockSizeParam; + + /* streaming */ + ZSTD_dStreamStage streamStage; + char* inBuff; + size_t inBuffSize; + size_t inPos; + size_t maxWindowSize; + char* outBuff; + size_t outBuffSize; + size_t outStart; + size_t outEnd; + size_t lhSize; +#if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT>=1) + void* legacyContext; + U32 previousLegacyVersion; + U32 legacyVersion; +#endif + U32 hostageByte; + int noForwardProgress; + ZSTD_bufferMode_e outBufferMode; + ZSTD_outBuffer expectedOutBuffer; + + /* workspace */ + BYTE* litBuffer; + const BYTE* litBufferEnd; + ZSTD_litLocation_e litBufferLocation; + BYTE litExtraBuffer[ZSTD_LITBUFFEREXTRASIZE + WILDCOPY_OVERLENGTH]; /* literal buffer can be split between storage within dst and within this scratch buffer */ + BYTE headerBuffer[ZSTD_FRAMEHEADERSIZE_MAX]; + + size_t oversizedDuration; + +#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION + void const* dictContentBeginForFuzzing; + void const* dictContentEndForFuzzing; +#endif + + /* Tracing */ +#if ZSTD_TRACE + ZSTD_TraceCtx traceCtx; +#endif +}; /* typedef'd to ZSTD_DCtx within "zstd.h" */ + +MEM_STATIC int ZSTD_DCtx_get_bmi2(const struct ZSTD_DCtx_s *dctx) { +#if DYNAMIC_BMI2 != 0 + return dctx->bmi2; +#else + (void)dctx; + return 0; +#endif +} + +/*-******************************************************* + * Shared internal functions + *********************************************************/ + +/*! ZSTD_loadDEntropy() : + * dict : must point at beginning of a valid zstd dictionary. + * @return : size of dictionary header (size of magic number + dict ID + entropy tables) */ +size_t ZSTD_loadDEntropy(ZSTD_entropyDTables_t* entropy, + const void* const dict, size_t const dictSize); + +/*! ZSTD_checkContinuity() : + * check if next `dst` follows previous position, where decompression ended. + * If yes, do nothing (continue on current segment). + * If not, classify previous segment as "external dictionary", and start a new segment. + * This function cannot fail. */ +void ZSTD_checkContinuity(ZSTD_DCtx* dctx, const void* dst, size_t dstSize); + + +#endif /* ZSTD_DECOMPRESS_INTERNAL_H */ diff --git a/deps/zstd/lib/deprecated/zbuff.h b/deps/zstd/lib/deprecated/zbuff.h new file mode 100644 index 00000000000000..a968245b36aca0 --- /dev/null +++ b/deps/zstd/lib/deprecated/zbuff.h @@ -0,0 +1,214 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/* *************************************************************** +* NOTES/WARNINGS +******************************************************************/ +/* The streaming API defined here is deprecated. + * Consider migrating towards ZSTD_compressStream() API in `zstd.h` + * See 'lib/README.md'. + *****************************************************************/ + + +#if defined (__cplusplus) +extern "C" { +#endif + +#ifndef ZSTD_BUFFERED_H_23987 +#define ZSTD_BUFFERED_H_23987 + +/* ************************************* +* Dependencies +***************************************/ +#include /* size_t */ +#include "../zstd.h" /* ZSTD_CStream, ZSTD_DStream, ZSTDLIB_API */ + + +/* *************************************************************** +* Compiler specifics +*****************************************************************/ +/* Deprecation warnings */ +/* Should these warnings be a problem, + * it is generally possible to disable them, + * typically with -Wno-deprecated-declarations for gcc + * or _CRT_SECURE_NO_WARNINGS in Visual. + * Otherwise, it's also possible to define ZBUFF_DISABLE_DEPRECATE_WARNINGS + */ +#ifdef ZBUFF_DISABLE_DEPRECATE_WARNINGS +# define ZBUFF_DEPRECATED(message) ZSTDLIB_API /* disable deprecation warnings */ +#else +# if defined (__cplusplus) && (__cplusplus >= 201402) /* C++14 or greater */ +# define ZBUFF_DEPRECATED(message) [[deprecated(message)]] ZSTDLIB_API +# elif (defined(GNUC) && (GNUC > 4 || (GNUC == 4 && GNUC_MINOR >= 5))) || defined(__clang__) +# define ZBUFF_DEPRECATED(message) ZSTDLIB_API __attribute__((deprecated(message))) +# elif defined(__GNUC__) && (__GNUC__ >= 3) +# define ZBUFF_DEPRECATED(message) ZSTDLIB_API __attribute__((deprecated)) +# elif defined(_MSC_VER) +# define ZBUFF_DEPRECATED(message) ZSTDLIB_API __declspec(deprecated(message)) +# else +# pragma message("WARNING: You need to implement ZBUFF_DEPRECATED for this compiler") +# define ZBUFF_DEPRECATED(message) ZSTDLIB_API +# endif +#endif /* ZBUFF_DISABLE_DEPRECATE_WARNINGS */ + + +/* ************************************* +* Streaming functions +***************************************/ +/* This is the easier "buffered" streaming API, +* using an internal buffer to lift all restrictions on user-provided buffers +* which can be any size, any place, for both input and output. +* ZBUFF and ZSTD are 100% interoperable, +* frames created by one can be decoded by the other one */ + +typedef ZSTD_CStream ZBUFF_CCtx; +ZBUFF_DEPRECATED("use ZSTD_createCStream") ZBUFF_CCtx* ZBUFF_createCCtx(void); +ZBUFF_DEPRECATED("use ZSTD_freeCStream") size_t ZBUFF_freeCCtx(ZBUFF_CCtx* cctx); + +ZBUFF_DEPRECATED("use ZSTD_initCStream") size_t ZBUFF_compressInit(ZBUFF_CCtx* cctx, int compressionLevel); +ZBUFF_DEPRECATED("use ZSTD_initCStream_usingDict") size_t ZBUFF_compressInitDictionary(ZBUFF_CCtx* cctx, const void* dict, size_t dictSize, int compressionLevel); + +ZBUFF_DEPRECATED("use ZSTD_compressStream") size_t ZBUFF_compressContinue(ZBUFF_CCtx* cctx, void* dst, size_t* dstCapacityPtr, const void* src, size_t* srcSizePtr); +ZBUFF_DEPRECATED("use ZSTD_flushStream") size_t ZBUFF_compressFlush(ZBUFF_CCtx* cctx, void* dst, size_t* dstCapacityPtr); +ZBUFF_DEPRECATED("use ZSTD_endStream") size_t ZBUFF_compressEnd(ZBUFF_CCtx* cctx, void* dst, size_t* dstCapacityPtr); + +/*-************************************************* +* Streaming compression - howto +* +* A ZBUFF_CCtx object is required to track streaming operation. +* Use ZBUFF_createCCtx() and ZBUFF_freeCCtx() to create/release resources. +* ZBUFF_CCtx objects can be reused multiple times. +* +* Start by initializing ZBUF_CCtx. +* Use ZBUFF_compressInit() to start a new compression operation. +* Use ZBUFF_compressInitDictionary() for a compression which requires a dictionary. +* +* Use ZBUFF_compressContinue() repetitively to consume input stream. +* *srcSizePtr and *dstCapacityPtr can be any size. +* The function will report how many bytes were read or written within *srcSizePtr and *dstCapacityPtr. +* Note that it may not consume the entire input, in which case it's up to the caller to present again remaining data. +* The content of `dst` will be overwritten (up to *dstCapacityPtr) at each call, so save its content if it matters or change @dst . +* @return : a hint to preferred nb of bytes to use as input for next function call (it's just a hint, to improve latency) +* or an error code, which can be tested using ZBUFF_isError(). +* +* At any moment, it's possible to flush whatever data remains within buffer, using ZBUFF_compressFlush(). +* The nb of bytes written into `dst` will be reported into *dstCapacityPtr. +* Note that the function cannot output more than *dstCapacityPtr, +* therefore, some content might still be left into internal buffer if *dstCapacityPtr is too small. +* @return : nb of bytes still present into internal buffer (0 if it's empty) +* or an error code, which can be tested using ZBUFF_isError(). +* +* ZBUFF_compressEnd() instructs to finish a frame. +* It will perform a flush and write frame epilogue. +* The epilogue is required for decoders to consider a frame completed. +* Similar to ZBUFF_compressFlush(), it may not be able to output the entire internal buffer content if *dstCapacityPtr is too small. +* In which case, call again ZBUFF_compressFlush() to complete the flush. +* @return : nb of bytes still present into internal buffer (0 if it's empty) +* or an error code, which can be tested using ZBUFF_isError(). +* +* Hint : _recommended buffer_ sizes (not compulsory) : ZBUFF_recommendedCInSize() / ZBUFF_recommendedCOutSize() +* input : ZBUFF_recommendedCInSize==128 KB block size is the internal unit, use this value to reduce intermediate stages (better latency) +* output : ZBUFF_recommendedCOutSize==ZSTD_compressBound(128 KB) + 3 + 3 : ensures it's always possible to write/flush/end a full block. Skip some buffering. +* By using both, it ensures that input will be entirely consumed, and output will always contain the result, reducing intermediate buffering. +* **************************************************/ + + +typedef ZSTD_DStream ZBUFF_DCtx; +ZBUFF_DEPRECATED("use ZSTD_createDStream") ZBUFF_DCtx* ZBUFF_createDCtx(void); +ZBUFF_DEPRECATED("use ZSTD_freeDStream") size_t ZBUFF_freeDCtx(ZBUFF_DCtx* dctx); + +ZBUFF_DEPRECATED("use ZSTD_initDStream") size_t ZBUFF_decompressInit(ZBUFF_DCtx* dctx); +ZBUFF_DEPRECATED("use ZSTD_initDStream_usingDict") size_t ZBUFF_decompressInitDictionary(ZBUFF_DCtx* dctx, const void* dict, size_t dictSize); + +ZBUFF_DEPRECATED("use ZSTD_decompressStream") size_t ZBUFF_decompressContinue(ZBUFF_DCtx* dctx, + void* dst, size_t* dstCapacityPtr, + const void* src, size_t* srcSizePtr); + +/*-*************************************************************************** +* Streaming decompression howto +* +* A ZBUFF_DCtx object is required to track streaming operations. +* Use ZBUFF_createDCtx() and ZBUFF_freeDCtx() to create/release resources. +* Use ZBUFF_decompressInit() to start a new decompression operation, +* or ZBUFF_decompressInitDictionary() if decompression requires a dictionary. +* Note that ZBUFF_DCtx objects can be re-init multiple times. +* +* Use ZBUFF_decompressContinue() repetitively to consume your input. +* *srcSizePtr and *dstCapacityPtr can be any size. +* The function will report how many bytes were read or written by modifying *srcSizePtr and *dstCapacityPtr. +* Note that it may not consume the entire input, in which case it's up to the caller to present remaining input again. +* The content of `dst` will be overwritten (up to *dstCapacityPtr) at each function call, so save its content if it matters, or change `dst`. +* @return : 0 when a frame is completely decoded and fully flushed, +* 1 when there is still some data left within internal buffer to flush, +* >1 when more data is expected, with value being a suggested next input size (it's just a hint, which helps latency), +* or an error code, which can be tested using ZBUFF_isError(). +* +* Hint : recommended buffer sizes (not compulsory) : ZBUFF_recommendedDInSize() and ZBUFF_recommendedDOutSize() +* output : ZBUFF_recommendedDOutSize== 128 KB block size is the internal unit, it ensures it's always possible to write a full block when decoded. +* input : ZBUFF_recommendedDInSize == 128KB + 3; +* just follow indications from ZBUFF_decompressContinue() to minimize latency. It should always be <= 128 KB + 3 . +* *******************************************************************************/ + + +/* ************************************* +* Tool functions +***************************************/ +ZBUFF_DEPRECATED("use ZSTD_isError") unsigned ZBUFF_isError(size_t errorCode); +ZBUFF_DEPRECATED("use ZSTD_getErrorName") const char* ZBUFF_getErrorName(size_t errorCode); + +/** Functions below provide recommended buffer sizes for Compression or Decompression operations. +* These sizes are just hints, they tend to offer better latency */ +ZBUFF_DEPRECATED("use ZSTD_CStreamInSize") size_t ZBUFF_recommendedCInSize(void); +ZBUFF_DEPRECATED("use ZSTD_CStreamOutSize") size_t ZBUFF_recommendedCOutSize(void); +ZBUFF_DEPRECATED("use ZSTD_DStreamInSize") size_t ZBUFF_recommendedDInSize(void); +ZBUFF_DEPRECATED("use ZSTD_DStreamOutSize") size_t ZBUFF_recommendedDOutSize(void); + +#endif /* ZSTD_BUFFERED_H_23987 */ + + +#ifdef ZBUFF_STATIC_LINKING_ONLY +#ifndef ZBUFF_STATIC_H_30298098432 +#define ZBUFF_STATIC_H_30298098432 + +/* ==================================================================================== + * The definitions in this section are considered experimental. + * They should never be used in association with a dynamic library, as they may change in the future. + * They are provided for advanced usages. + * Use them only in association with static linking. + * ==================================================================================== */ + +/*--- Dependency ---*/ +#define ZSTD_STATIC_LINKING_ONLY /* ZSTD_parameters, ZSTD_customMem */ +#include "../zstd.h" + + +/*--- Custom memory allocator ---*/ +/*! ZBUFF_createCCtx_advanced() : + * Create a ZBUFF compression context using external alloc and free functions */ +ZBUFF_DEPRECATED("use ZSTD_createCStream_advanced") ZBUFF_CCtx* ZBUFF_createCCtx_advanced(ZSTD_customMem customMem); + +/*! ZBUFF_createDCtx_advanced() : + * Create a ZBUFF decompression context using external alloc and free functions */ +ZBUFF_DEPRECATED("use ZSTD_createDStream_advanced") ZBUFF_DCtx* ZBUFF_createDCtx_advanced(ZSTD_customMem customMem); + + +/*--- Advanced Streaming Initialization ---*/ +ZBUFF_DEPRECATED("use ZSTD_initDStream_usingDict") size_t ZBUFF_compressInit_advanced(ZBUFF_CCtx* zbc, + const void* dict, size_t dictSize, + ZSTD_parameters params, unsigned long long pledgedSrcSize); + + +#endif /* ZBUFF_STATIC_H_30298098432 */ +#endif /* ZBUFF_STATIC_LINKING_ONLY */ + + +#if defined (__cplusplus) +} +#endif diff --git a/deps/zstd/lib/deprecated/zbuff_common.c b/deps/zstd/lib/deprecated/zbuff_common.c new file mode 100644 index 00000000000000..5a2f2db354f98e --- /dev/null +++ b/deps/zstd/lib/deprecated/zbuff_common.c @@ -0,0 +1,26 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/*-************************************* +* Dependencies +***************************************/ +#include "../common/error_private.h" +#include "zbuff.h" + +/*-**************************************** +* ZBUFF Error Management (deprecated) +******************************************/ + +/*! ZBUFF_isError() : +* tells if a return value is an error code */ +unsigned ZBUFF_isError(size_t errorCode) { return ERR_isError(errorCode); } +/*! ZBUFF_getErrorName() : +* provides error code string from function result (useful for debugging) */ +const char* ZBUFF_getErrorName(size_t errorCode) { return ERR_getErrorName(errorCode); } diff --git a/deps/zstd/lib/deprecated/zbuff_compress.c b/deps/zstd/lib/deprecated/zbuff_compress.c new file mode 100644 index 00000000000000..1d8682150b237d --- /dev/null +++ b/deps/zstd/lib/deprecated/zbuff_compress.c @@ -0,0 +1,167 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + + +/* ************************************* +* Dependencies +***************************************/ +#define ZBUFF_STATIC_LINKING_ONLY +#include "zbuff.h" +#include "../common/error_private.h" + + +/*-*********************************************************** +* Streaming compression +* +* A ZBUFF_CCtx object is required to track streaming operation. +* Use ZBUFF_createCCtx() and ZBUFF_freeCCtx() to create/release resources. +* Use ZBUFF_compressInit() to start a new compression operation. +* ZBUFF_CCtx objects can be reused multiple times. +* +* Use ZBUFF_compressContinue() repetitively to consume your input. +* *srcSizePtr and *dstCapacityPtr can be any size. +* The function will report how many bytes were read or written by modifying *srcSizePtr and *dstCapacityPtr. +* Note that it may not consume the entire input, in which case it's up to the caller to call again the function with remaining input. +* The content of dst will be overwritten (up to *dstCapacityPtr) at each function call, so save its content if it matters or change dst . +* @return : a hint to preferred nb of bytes to use as input for next function call (it's only a hint, to improve latency) +* or an error code, which can be tested using ZBUFF_isError(). +* +* ZBUFF_compressFlush() can be used to instruct ZBUFF to compress and output whatever remains within its buffer. +* Note that it will not output more than *dstCapacityPtr. +* Therefore, some content might still be left into its internal buffer if dst buffer is too small. +* @return : nb of bytes still present into internal buffer (0 if it's empty) +* or an error code, which can be tested using ZBUFF_isError(). +* +* ZBUFF_compressEnd() instructs to finish a frame. +* It will perform a flush and write frame epilogue. +* Similar to ZBUFF_compressFlush(), it may not be able to output the entire internal buffer content if *dstCapacityPtr is too small. +* @return : nb of bytes still present into internal buffer (0 if it's empty) +* or an error code, which can be tested using ZBUFF_isError(). +* +* Hint : recommended buffer sizes (not compulsory) +* input : ZSTD_BLOCKSIZE_MAX (128 KB), internal unit size, it improves latency to use this value. +* output : ZSTD_compressBound(ZSTD_BLOCKSIZE_MAX) + ZSTD_blockHeaderSize + ZBUFF_endFrameSize : ensures it's always possible to write/flush/end a full block at best speed. +* ***********************************************************/ + +ZBUFF_CCtx* ZBUFF_createCCtx(void) +{ + return ZSTD_createCStream(); +} + +ZBUFF_CCtx* ZBUFF_createCCtx_advanced(ZSTD_customMem customMem) +{ + return ZSTD_createCStream_advanced(customMem); +} + +size_t ZBUFF_freeCCtx(ZBUFF_CCtx* zbc) +{ + return ZSTD_freeCStream(zbc); +} + + +/* ====== Initialization ====== */ + +size_t ZBUFF_compressInit_advanced(ZBUFF_CCtx* zbc, + const void* dict, size_t dictSize, + ZSTD_parameters params, unsigned long long pledgedSrcSize) +{ + if (pledgedSrcSize==0) pledgedSrcSize = ZSTD_CONTENTSIZE_UNKNOWN; /* preserve "0 == unknown" behavior */ + FORWARD_IF_ERROR(ZSTD_CCtx_reset(zbc, ZSTD_reset_session_only), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setPledgedSrcSize(zbc, pledgedSrcSize), ""); + + FORWARD_IF_ERROR(ZSTD_checkCParams(params.cParams), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(zbc, ZSTD_c_windowLog, params.cParams.windowLog), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(zbc, ZSTD_c_hashLog, params.cParams.hashLog), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(zbc, ZSTD_c_chainLog, params.cParams.chainLog), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(zbc, ZSTD_c_searchLog, params.cParams.searchLog), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(zbc, ZSTD_c_minMatch, params.cParams.minMatch), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(zbc, ZSTD_c_targetLength, params.cParams.targetLength), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(zbc, ZSTD_c_strategy, params.cParams.strategy), ""); + + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(zbc, ZSTD_c_contentSizeFlag, params.fParams.contentSizeFlag), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(zbc, ZSTD_c_checksumFlag, params.fParams.checksumFlag), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(zbc, ZSTD_c_dictIDFlag, params.fParams.noDictIDFlag), ""); + + FORWARD_IF_ERROR(ZSTD_CCtx_loadDictionary(zbc, dict, dictSize), ""); + return 0; +} + +size_t ZBUFF_compressInitDictionary(ZBUFF_CCtx* zbc, const void* dict, size_t dictSize, int compressionLevel) +{ + FORWARD_IF_ERROR(ZSTD_CCtx_reset(zbc, ZSTD_reset_session_only), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(zbc, ZSTD_c_compressionLevel, compressionLevel), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_loadDictionary(zbc, dict, dictSize), ""); + return 0; +} + +size_t ZBUFF_compressInit(ZBUFF_CCtx* zbc, int compressionLevel) +{ + return ZSTD_initCStream(zbc, compressionLevel); +} + +/* ====== Compression ====== */ + + +size_t ZBUFF_compressContinue(ZBUFF_CCtx* zbc, + void* dst, size_t* dstCapacityPtr, + const void* src, size_t* srcSizePtr) +{ + size_t result; + ZSTD_outBuffer outBuff; + ZSTD_inBuffer inBuff; + outBuff.dst = dst; + outBuff.pos = 0; + outBuff.size = *dstCapacityPtr; + inBuff.src = src; + inBuff.pos = 0; + inBuff.size = *srcSizePtr; + result = ZSTD_compressStream(zbc, &outBuff, &inBuff); + *dstCapacityPtr = outBuff.pos; + *srcSizePtr = inBuff.pos; + return result; +} + + + +/* ====== Finalize ====== */ + +size_t ZBUFF_compressFlush(ZBUFF_CCtx* zbc, void* dst, size_t* dstCapacityPtr) +{ + size_t result; + ZSTD_outBuffer outBuff; + outBuff.dst = dst; + outBuff.pos = 0; + outBuff.size = *dstCapacityPtr; + result = ZSTD_flushStream(zbc, &outBuff); + *dstCapacityPtr = outBuff.pos; + return result; +} + + +size_t ZBUFF_compressEnd(ZBUFF_CCtx* zbc, void* dst, size_t* dstCapacityPtr) +{ + size_t result; + ZSTD_outBuffer outBuff; + outBuff.dst = dst; + outBuff.pos = 0; + outBuff.size = *dstCapacityPtr; + result = ZSTD_endStream(zbc, &outBuff); + *dstCapacityPtr = outBuff.pos; + return result; +} + + + +/* ************************************* +* Tool functions +***************************************/ +size_t ZBUFF_recommendedCInSize(void) { return ZSTD_CStreamInSize(); } +size_t ZBUFF_recommendedCOutSize(void) { return ZSTD_CStreamOutSize(); } diff --git a/deps/zstd/lib/deprecated/zbuff_decompress.c b/deps/zstd/lib/deprecated/zbuff_decompress.c new file mode 100644 index 00000000000000..12a66af7412ddb --- /dev/null +++ b/deps/zstd/lib/deprecated/zbuff_decompress.c @@ -0,0 +1,77 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + + +/* ************************************* +* Dependencies +***************************************/ +#define ZSTD_DISABLE_DEPRECATE_WARNINGS /* suppress warning on ZSTD_initDStream_usingDict */ +#include "../zstd.h" /* ZSTD_CStream, ZSTD_DStream, ZSTDLIB_API */ +#define ZBUFF_STATIC_LINKING_ONLY +#include "zbuff.h" + + +ZBUFF_DCtx* ZBUFF_createDCtx(void) +{ + return ZSTD_createDStream(); +} + +ZBUFF_DCtx* ZBUFF_createDCtx_advanced(ZSTD_customMem customMem) +{ + return ZSTD_createDStream_advanced(customMem); +} + +size_t ZBUFF_freeDCtx(ZBUFF_DCtx* zbd) +{ + return ZSTD_freeDStream(zbd); +} + + +/* *** Initialization *** */ + +size_t ZBUFF_decompressInitDictionary(ZBUFF_DCtx* zbd, const void* dict, size_t dictSize) +{ + return ZSTD_initDStream_usingDict(zbd, dict, dictSize); +} + +size_t ZBUFF_decompressInit(ZBUFF_DCtx* zbd) +{ + return ZSTD_initDStream(zbd); +} + + +/* *** Decompression *** */ + +size_t ZBUFF_decompressContinue(ZBUFF_DCtx* zbd, + void* dst, size_t* dstCapacityPtr, + const void* src, size_t* srcSizePtr) +{ + ZSTD_outBuffer outBuff; + ZSTD_inBuffer inBuff; + size_t result; + outBuff.dst = dst; + outBuff.pos = 0; + outBuff.size = *dstCapacityPtr; + inBuff.src = src; + inBuff.pos = 0; + inBuff.size = *srcSizePtr; + result = ZSTD_decompressStream(zbd, &outBuff, &inBuff); + *dstCapacityPtr = outBuff.pos; + *srcSizePtr = inBuff.pos; + return result; +} + + +/* ************************************* +* Tool functions +***************************************/ +size_t ZBUFF_recommendedDInSize(void) { return ZSTD_DStreamInSize(); } +size_t ZBUFF_recommendedDOutSize(void) { return ZSTD_DStreamOutSize(); } diff --git a/deps/zstd/lib/dictBuilder/cover.c b/deps/zstd/lib/dictBuilder/cover.c new file mode 100644 index 00000000000000..44f9029acd9a7b --- /dev/null +++ b/deps/zstd/lib/dictBuilder/cover.c @@ -0,0 +1,1261 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/* ***************************************************************************** + * Constructs a dictionary using a heuristic based on the following paper: + * + * Liao, Petri, Moffat, Wirth + * Effective Construction of Relative Lempel-Ziv Dictionaries + * Published in WWW 2016. + * + * Adapted from code originally written by @ot (Giuseppe Ottaviano). + ******************************************************************************/ + +/*-************************************* +* Dependencies +***************************************/ +#include /* fprintf */ +#include /* malloc, free, qsort */ +#include /* memset */ +#include /* clock */ + +#ifndef ZDICT_STATIC_LINKING_ONLY +# define ZDICT_STATIC_LINKING_ONLY +#endif + +#include "../common/mem.h" /* read */ +#include "../common/pool.h" /* POOL_ctx */ +#include "../common/threading.h" /* ZSTD_pthread_mutex_t */ +#include "../common/zstd_internal.h" /* includes zstd.h */ +#include "../common/bits.h" /* ZSTD_highbit32 */ +#include "../zdict.h" +#include "cover.h" + +/*-************************************* +* Constants +***************************************/ +/** +* There are 32bit indexes used to ref samples, so limit samples size to 4GB +* on 64bit builds. +* For 32bit builds we choose 1 GB. +* Most 32bit platforms have 2GB user-mode addressable space and we allocate a large +* contiguous buffer, so 1GB is already a high limit. +*/ +#define COVER_MAX_SAMPLES_SIZE (sizeof(size_t) == 8 ? ((unsigned)-1) : ((unsigned)1 GB)) +#define COVER_DEFAULT_SPLITPOINT 1.0 + +/*-************************************* +* Console display +***************************************/ +#ifndef LOCALDISPLAYLEVEL +static int g_displayLevel = 0; +#endif +#undef DISPLAY +#define DISPLAY(...) \ + { \ + fprintf(stderr, __VA_ARGS__); \ + fflush(stderr); \ + } +#undef LOCALDISPLAYLEVEL +#define LOCALDISPLAYLEVEL(displayLevel, l, ...) \ + if (displayLevel >= l) { \ + DISPLAY(__VA_ARGS__); \ + } /* 0 : no display; 1: errors; 2: default; 3: details; 4: debug */ +#undef DISPLAYLEVEL +#define DISPLAYLEVEL(l, ...) LOCALDISPLAYLEVEL(g_displayLevel, l, __VA_ARGS__) + +#ifndef LOCALDISPLAYUPDATE +static const clock_t g_refreshRate = CLOCKS_PER_SEC * 15 / 100; +static clock_t g_time = 0; +#endif +#undef LOCALDISPLAYUPDATE +#define LOCALDISPLAYUPDATE(displayLevel, l, ...) \ + if (displayLevel >= l) { \ + if ((clock() - g_time > g_refreshRate) || (displayLevel >= 4)) { \ + g_time = clock(); \ + DISPLAY(__VA_ARGS__); \ + } \ + } +#undef DISPLAYUPDATE +#define DISPLAYUPDATE(l, ...) LOCALDISPLAYUPDATE(g_displayLevel, l, __VA_ARGS__) + +/*-************************************* +* Hash table +*************************************** +* A small specialized hash map for storing activeDmers. +* The map does not resize, so if it becomes full it will loop forever. +* Thus, the map must be large enough to store every value. +* The map implements linear probing and keeps its load less than 0.5. +*/ + +#define MAP_EMPTY_VALUE ((U32)-1) +typedef struct COVER_map_pair_t_s { + U32 key; + U32 value; +} COVER_map_pair_t; + +typedef struct COVER_map_s { + COVER_map_pair_t *data; + U32 sizeLog; + U32 size; + U32 sizeMask; +} COVER_map_t; + +/** + * Clear the map. + */ +static void COVER_map_clear(COVER_map_t *map) { + memset(map->data, MAP_EMPTY_VALUE, map->size * sizeof(COVER_map_pair_t)); +} + +/** + * Initializes a map of the given size. + * Returns 1 on success and 0 on failure. + * The map must be destroyed with COVER_map_destroy(). + * The map is only guaranteed to be large enough to hold size elements. + */ +static int COVER_map_init(COVER_map_t *map, U32 size) { + map->sizeLog = ZSTD_highbit32(size) + 2; + map->size = (U32)1 << map->sizeLog; + map->sizeMask = map->size - 1; + map->data = (COVER_map_pair_t *)malloc(map->size * sizeof(COVER_map_pair_t)); + if (!map->data) { + map->sizeLog = 0; + map->size = 0; + return 0; + } + COVER_map_clear(map); + return 1; +} + +/** + * Internal hash function + */ +static const U32 COVER_prime4bytes = 2654435761U; +static U32 COVER_map_hash(COVER_map_t *map, U32 key) { + return (key * COVER_prime4bytes) >> (32 - map->sizeLog); +} + +/** + * Helper function that returns the index that a key should be placed into. + */ +static U32 COVER_map_index(COVER_map_t *map, U32 key) { + const U32 hash = COVER_map_hash(map, key); + U32 i; + for (i = hash;; i = (i + 1) & map->sizeMask) { + COVER_map_pair_t *pos = &map->data[i]; + if (pos->value == MAP_EMPTY_VALUE) { + return i; + } + if (pos->key == key) { + return i; + } + } +} + +/** + * Returns the pointer to the value for key. + * If key is not in the map, it is inserted and the value is set to 0. + * The map must not be full. + */ +static U32 *COVER_map_at(COVER_map_t *map, U32 key) { + COVER_map_pair_t *pos = &map->data[COVER_map_index(map, key)]; + if (pos->value == MAP_EMPTY_VALUE) { + pos->key = key; + pos->value = 0; + } + return &pos->value; +} + +/** + * Deletes key from the map if present. + */ +static void COVER_map_remove(COVER_map_t *map, U32 key) { + U32 i = COVER_map_index(map, key); + COVER_map_pair_t *del = &map->data[i]; + U32 shift = 1; + if (del->value == MAP_EMPTY_VALUE) { + return; + } + for (i = (i + 1) & map->sizeMask;; i = (i + 1) & map->sizeMask) { + COVER_map_pair_t *const pos = &map->data[i]; + /* If the position is empty we are done */ + if (pos->value == MAP_EMPTY_VALUE) { + del->value = MAP_EMPTY_VALUE; + return; + } + /* If pos can be moved to del do so */ + if (((i - COVER_map_hash(map, pos->key)) & map->sizeMask) >= shift) { + del->key = pos->key; + del->value = pos->value; + del = pos; + shift = 1; + } else { + ++shift; + } + } +} + +/** + * Destroys a map that is inited with COVER_map_init(). + */ +static void COVER_map_destroy(COVER_map_t *map) { + if (map->data) { + free(map->data); + } + map->data = NULL; + map->size = 0; +} + +/*-************************************* +* Context +***************************************/ + +typedef struct { + const BYTE *samples; + size_t *offsets; + const size_t *samplesSizes; + size_t nbSamples; + size_t nbTrainSamples; + size_t nbTestSamples; + U32 *suffix; + size_t suffixSize; + U32 *freqs; + U32 *dmerAt; + unsigned d; +} COVER_ctx_t; + +/* We need a global context for qsort... */ +static COVER_ctx_t *g_coverCtx = NULL; + +/*-************************************* +* Helper functions +***************************************/ + +/** + * Returns the sum of the sample sizes. + */ +size_t COVER_sum(const size_t *samplesSizes, unsigned nbSamples) { + size_t sum = 0; + unsigned i; + for (i = 0; i < nbSamples; ++i) { + sum += samplesSizes[i]; + } + return sum; +} + +/** + * Returns -1 if the dmer at lp is less than the dmer at rp. + * Return 0 if the dmers at lp and rp are equal. + * Returns 1 if the dmer at lp is greater than the dmer at rp. + */ +static int COVER_cmp(COVER_ctx_t *ctx, const void *lp, const void *rp) { + U32 const lhs = *(U32 const *)lp; + U32 const rhs = *(U32 const *)rp; + return memcmp(ctx->samples + lhs, ctx->samples + rhs, ctx->d); +} +/** + * Faster version for d <= 8. + */ +static int COVER_cmp8(COVER_ctx_t *ctx, const void *lp, const void *rp) { + U64 const mask = (ctx->d == 8) ? (U64)-1 : (((U64)1 << (8 * ctx->d)) - 1); + U64 const lhs = MEM_readLE64(ctx->samples + *(U32 const *)lp) & mask; + U64 const rhs = MEM_readLE64(ctx->samples + *(U32 const *)rp) & mask; + if (lhs < rhs) { + return -1; + } + return (lhs > rhs); +} + +/** + * Same as COVER_cmp() except ties are broken by pointer value + * NOTE: g_coverCtx must be set to call this function. A global is required because + * qsort doesn't take an opaque pointer. + */ +static int WIN_CDECL COVER_strict_cmp(const void *lp, const void *rp) { + int result = COVER_cmp(g_coverCtx, lp, rp); + if (result == 0) { + result = lp < rp ? -1 : 1; + } + return result; +} +/** + * Faster version for d <= 8. + */ +static int WIN_CDECL COVER_strict_cmp8(const void *lp, const void *rp) { + int result = COVER_cmp8(g_coverCtx, lp, rp); + if (result == 0) { + result = lp < rp ? -1 : 1; + } + return result; +} + +/** + * Returns the first pointer in [first, last) whose element does not compare + * less than value. If no such element exists it returns last. + */ +static const size_t *COVER_lower_bound(const size_t* first, const size_t* last, + size_t value) { + size_t count = (size_t)(last - first); + assert(last >= first); + while (count != 0) { + size_t step = count / 2; + const size_t *ptr = first; + ptr += step; + if (*ptr < value) { + first = ++ptr; + count -= step + 1; + } else { + count = step; + } + } + return first; +} + +/** + * Generic groupBy function. + * Groups an array sorted by cmp into groups with equivalent values. + * Calls grp for each group. + */ +static void +COVER_groupBy(const void *data, size_t count, size_t size, COVER_ctx_t *ctx, + int (*cmp)(COVER_ctx_t *, const void *, const void *), + void (*grp)(COVER_ctx_t *, const void *, const void *)) { + const BYTE *ptr = (const BYTE *)data; + size_t num = 0; + while (num < count) { + const BYTE *grpEnd = ptr + size; + ++num; + while (num < count && cmp(ctx, ptr, grpEnd) == 0) { + grpEnd += size; + ++num; + } + grp(ctx, ptr, grpEnd); + ptr = grpEnd; + } +} + +/*-************************************* +* Cover functions +***************************************/ + +/** + * Called on each group of positions with the same dmer. + * Counts the frequency of each dmer and saves it in the suffix array. + * Fills `ctx->dmerAt`. + */ +static void COVER_group(COVER_ctx_t *ctx, const void *group, + const void *groupEnd) { + /* The group consists of all the positions with the same first d bytes. */ + const U32 *grpPtr = (const U32 *)group; + const U32 *grpEnd = (const U32 *)groupEnd; + /* The dmerId is how we will reference this dmer. + * This allows us to map the whole dmer space to a much smaller space, the + * size of the suffix array. + */ + const U32 dmerId = (U32)(grpPtr - ctx->suffix); + /* Count the number of samples this dmer shows up in */ + U32 freq = 0; + /* Details */ + const size_t *curOffsetPtr = ctx->offsets; + const size_t *offsetsEnd = ctx->offsets + ctx->nbSamples; + /* Once *grpPtr >= curSampleEnd this occurrence of the dmer is in a + * different sample than the last. + */ + size_t curSampleEnd = ctx->offsets[0]; + for (; grpPtr != grpEnd; ++grpPtr) { + /* Save the dmerId for this position so we can get back to it. */ + ctx->dmerAt[*grpPtr] = dmerId; + /* Dictionaries only help for the first reference to the dmer. + * After that zstd can reference the match from the previous reference. + * So only count each dmer once for each sample it is in. + */ + if (*grpPtr < curSampleEnd) { + continue; + } + freq += 1; + /* Binary search to find the end of the sample *grpPtr is in. + * In the common case that grpPtr + 1 == grpEnd we can skip the binary + * search because the loop is over. + */ + if (grpPtr + 1 != grpEnd) { + const size_t *sampleEndPtr = + COVER_lower_bound(curOffsetPtr, offsetsEnd, *grpPtr); + curSampleEnd = *sampleEndPtr; + curOffsetPtr = sampleEndPtr + 1; + } + } + /* At this point we are never going to look at this segment of the suffix + * array again. We take advantage of this fact to save memory. + * We store the frequency of the dmer in the first position of the group, + * which is dmerId. + */ + ctx->suffix[dmerId] = freq; +} + + +/** + * Selects the best segment in an epoch. + * Segments of are scored according to the function: + * + * Let F(d) be the frequency of dmer d. + * Let S_i be the dmer at position i of segment S which has length k. + * + * Score(S) = F(S_1) + F(S_2) + ... + F(S_{k-d+1}) + * + * Once the dmer d is in the dictionary we set F(d) = 0. + */ +static COVER_segment_t COVER_selectSegment(const COVER_ctx_t *ctx, U32 *freqs, + COVER_map_t *activeDmers, U32 begin, + U32 end, + ZDICT_cover_params_t parameters) { + /* Constants */ + const U32 k = parameters.k; + const U32 d = parameters.d; + const U32 dmersInK = k - d + 1; + /* Try each segment (activeSegment) and save the best (bestSegment) */ + COVER_segment_t bestSegment = {0, 0, 0}; + COVER_segment_t activeSegment; + /* Reset the activeDmers in the segment */ + COVER_map_clear(activeDmers); + /* The activeSegment starts at the beginning of the epoch. */ + activeSegment.begin = begin; + activeSegment.end = begin; + activeSegment.score = 0; + /* Slide the activeSegment through the whole epoch. + * Save the best segment in bestSegment. + */ + while (activeSegment.end < end) { + /* The dmerId for the dmer at the next position */ + U32 newDmer = ctx->dmerAt[activeSegment.end]; + /* The entry in activeDmers for this dmerId */ + U32 *newDmerOcc = COVER_map_at(activeDmers, newDmer); + /* If the dmer isn't already present in the segment add its score. */ + if (*newDmerOcc == 0) { + /* The paper suggest using the L-0.5 norm, but experiments show that it + * doesn't help. + */ + activeSegment.score += freqs[newDmer]; + } + /* Add the dmer to the segment */ + activeSegment.end += 1; + *newDmerOcc += 1; + + /* If the window is now too large, drop the first position */ + if (activeSegment.end - activeSegment.begin == dmersInK + 1) { + U32 delDmer = ctx->dmerAt[activeSegment.begin]; + U32 *delDmerOcc = COVER_map_at(activeDmers, delDmer); + activeSegment.begin += 1; + *delDmerOcc -= 1; + /* If this is the last occurrence of the dmer, subtract its score */ + if (*delDmerOcc == 0) { + COVER_map_remove(activeDmers, delDmer); + activeSegment.score -= freqs[delDmer]; + } + } + + /* If this segment is the best so far save it */ + if (activeSegment.score > bestSegment.score) { + bestSegment = activeSegment; + } + } + { + /* Trim off the zero frequency head and tail from the segment. */ + U32 newBegin = bestSegment.end; + U32 newEnd = bestSegment.begin; + U32 pos; + for (pos = bestSegment.begin; pos != bestSegment.end; ++pos) { + U32 freq = freqs[ctx->dmerAt[pos]]; + if (freq != 0) { + newBegin = MIN(newBegin, pos); + newEnd = pos + 1; + } + } + bestSegment.begin = newBegin; + bestSegment.end = newEnd; + } + { + /* Zero out the frequency of each dmer covered by the chosen segment. */ + U32 pos; + for (pos = bestSegment.begin; pos != bestSegment.end; ++pos) { + freqs[ctx->dmerAt[pos]] = 0; + } + } + return bestSegment; +} + +/** + * Check the validity of the parameters. + * Returns non-zero if the parameters are valid and 0 otherwise. + */ +static int COVER_checkParameters(ZDICT_cover_params_t parameters, + size_t maxDictSize) { + /* k and d are required parameters */ + if (parameters.d == 0 || parameters.k == 0) { + return 0; + } + /* k <= maxDictSize */ + if (parameters.k > maxDictSize) { + return 0; + } + /* d <= k */ + if (parameters.d > parameters.k) { + return 0; + } + /* 0 < splitPoint <= 1 */ + if (parameters.splitPoint <= 0 || parameters.splitPoint > 1){ + return 0; + } + return 1; +} + +/** + * Clean up a context initialized with `COVER_ctx_init()`. + */ +static void COVER_ctx_destroy(COVER_ctx_t *ctx) { + if (!ctx) { + return; + } + if (ctx->suffix) { + free(ctx->suffix); + ctx->suffix = NULL; + } + if (ctx->freqs) { + free(ctx->freqs); + ctx->freqs = NULL; + } + if (ctx->dmerAt) { + free(ctx->dmerAt); + ctx->dmerAt = NULL; + } + if (ctx->offsets) { + free(ctx->offsets); + ctx->offsets = NULL; + } +} + +/** + * Prepare a context for dictionary building. + * The context is only dependent on the parameter `d` and can be used multiple + * times. + * Returns 0 on success or error code on error. + * The context must be destroyed with `COVER_ctx_destroy()`. + */ +static size_t COVER_ctx_init(COVER_ctx_t *ctx, const void *samplesBuffer, + const size_t *samplesSizes, unsigned nbSamples, + unsigned d, double splitPoint) +{ + const BYTE *const samples = (const BYTE *)samplesBuffer; + const size_t totalSamplesSize = COVER_sum(samplesSizes, nbSamples); + /* Split samples into testing and training sets */ + const unsigned nbTrainSamples = splitPoint < 1.0 ? (unsigned)((double)nbSamples * splitPoint) : nbSamples; + const unsigned nbTestSamples = splitPoint < 1.0 ? nbSamples - nbTrainSamples : nbSamples; + const size_t trainingSamplesSize = splitPoint < 1.0 ? COVER_sum(samplesSizes, nbTrainSamples) : totalSamplesSize; + const size_t testSamplesSize = splitPoint < 1.0 ? COVER_sum(samplesSizes + nbTrainSamples, nbTestSamples) : totalSamplesSize; + /* Checks */ + if (totalSamplesSize < MAX(d, sizeof(U64)) || + totalSamplesSize >= (size_t)COVER_MAX_SAMPLES_SIZE) { + DISPLAYLEVEL(1, "Total samples size is too large (%u MB), maximum size is %u MB\n", + (unsigned)(totalSamplesSize>>20), (COVER_MAX_SAMPLES_SIZE >> 20)); + return ERROR(srcSize_wrong); + } + /* Check if there are at least 5 training samples */ + if (nbTrainSamples < 5) { + DISPLAYLEVEL(1, "Total number of training samples is %u and is invalid.", nbTrainSamples); + return ERROR(srcSize_wrong); + } + /* Check if there's testing sample */ + if (nbTestSamples < 1) { + DISPLAYLEVEL(1, "Total number of testing samples is %u and is invalid.", nbTestSamples); + return ERROR(srcSize_wrong); + } + /* Zero the context */ + memset(ctx, 0, sizeof(*ctx)); + DISPLAYLEVEL(2, "Training on %u samples of total size %u\n", nbTrainSamples, + (unsigned)trainingSamplesSize); + DISPLAYLEVEL(2, "Testing on %u samples of total size %u\n", nbTestSamples, + (unsigned)testSamplesSize); + ctx->samples = samples; + ctx->samplesSizes = samplesSizes; + ctx->nbSamples = nbSamples; + ctx->nbTrainSamples = nbTrainSamples; + ctx->nbTestSamples = nbTestSamples; + /* Partial suffix array */ + ctx->suffixSize = trainingSamplesSize - MAX(d, sizeof(U64)) + 1; + ctx->suffix = (U32 *)malloc(ctx->suffixSize * sizeof(U32)); + /* Maps index to the dmerID */ + ctx->dmerAt = (U32 *)malloc(ctx->suffixSize * sizeof(U32)); + /* The offsets of each file */ + ctx->offsets = (size_t *)malloc((nbSamples + 1) * sizeof(size_t)); + if (!ctx->suffix || !ctx->dmerAt || !ctx->offsets) { + DISPLAYLEVEL(1, "Failed to allocate scratch buffers\n"); + COVER_ctx_destroy(ctx); + return ERROR(memory_allocation); + } + ctx->freqs = NULL; + ctx->d = d; + + /* Fill offsets from the samplesSizes */ + { + U32 i; + ctx->offsets[0] = 0; + for (i = 1; i <= nbSamples; ++i) { + ctx->offsets[i] = ctx->offsets[i - 1] + samplesSizes[i - 1]; + } + } + DISPLAYLEVEL(2, "Constructing partial suffix array\n"); + { + /* suffix is a partial suffix array. + * It only sorts suffixes by their first parameters.d bytes. + * The sort is stable, so each dmer group is sorted by position in input. + */ + U32 i; + for (i = 0; i < ctx->suffixSize; ++i) { + ctx->suffix[i] = i; + } + /* qsort doesn't take an opaque pointer, so pass as a global. + * On OpenBSD qsort() is not guaranteed to be stable, their mergesort() is. + */ + g_coverCtx = ctx; +#if defined(__OpenBSD__) + mergesort(ctx->suffix, ctx->suffixSize, sizeof(U32), + (ctx->d <= 8 ? &COVER_strict_cmp8 : &COVER_strict_cmp)); +#else + qsort(ctx->suffix, ctx->suffixSize, sizeof(U32), + (ctx->d <= 8 ? &COVER_strict_cmp8 : &COVER_strict_cmp)); +#endif + } + DISPLAYLEVEL(2, "Computing frequencies\n"); + /* For each dmer group (group of positions with the same first d bytes): + * 1. For each position we set dmerAt[position] = dmerID. The dmerID is + * (groupBeginPtr - suffix). This allows us to go from position to + * dmerID so we can look up values in freq. + * 2. We calculate how many samples the dmer occurs in and save it in + * freqs[dmerId]. + */ + COVER_groupBy(ctx->suffix, ctx->suffixSize, sizeof(U32), ctx, + (ctx->d <= 8 ? &COVER_cmp8 : &COVER_cmp), &COVER_group); + ctx->freqs = ctx->suffix; + ctx->suffix = NULL; + return 0; +} + +void COVER_warnOnSmallCorpus(size_t maxDictSize, size_t nbDmers, int displayLevel) +{ + const double ratio = (double)nbDmers / (double)maxDictSize; + if (ratio >= 10) { + return; + } + LOCALDISPLAYLEVEL(displayLevel, 1, + "WARNING: The maximum dictionary size %u is too large " + "compared to the source size %u! " + "size(source)/size(dictionary) = %f, but it should be >= " + "10! This may lead to a subpar dictionary! We recommend " + "training on sources at least 10x, and preferably 100x " + "the size of the dictionary! \n", (U32)maxDictSize, + (U32)nbDmers, ratio); +} + +COVER_epoch_info_t COVER_computeEpochs(U32 maxDictSize, + U32 nbDmers, U32 k, U32 passes) +{ + const U32 minEpochSize = k * 10; + COVER_epoch_info_t epochs; + epochs.num = MAX(1, maxDictSize / k / passes); + epochs.size = nbDmers / epochs.num; + if (epochs.size >= minEpochSize) { + assert(epochs.size * epochs.num <= nbDmers); + return epochs; + } + epochs.size = MIN(minEpochSize, nbDmers); + epochs.num = nbDmers / epochs.size; + assert(epochs.size * epochs.num <= nbDmers); + return epochs; +} + +/** + * Given the prepared context build the dictionary. + */ +static size_t COVER_buildDictionary(const COVER_ctx_t *ctx, U32 *freqs, + COVER_map_t *activeDmers, void *dictBuffer, + size_t dictBufferCapacity, + ZDICT_cover_params_t parameters) { + BYTE *const dict = (BYTE *)dictBuffer; + size_t tail = dictBufferCapacity; + /* Divide the data into epochs. We will select one segment from each epoch. */ + const COVER_epoch_info_t epochs = COVER_computeEpochs( + (U32)dictBufferCapacity, (U32)ctx->suffixSize, parameters.k, 4); + const size_t maxZeroScoreRun = MAX(10, MIN(100, epochs.num >> 3)); + size_t zeroScoreRun = 0; + size_t epoch; + DISPLAYLEVEL(2, "Breaking content into %u epochs of size %u\n", + (U32)epochs.num, (U32)epochs.size); + /* Loop through the epochs until there are no more segments or the dictionary + * is full. + */ + for (epoch = 0; tail > 0; epoch = (epoch + 1) % epochs.num) { + const U32 epochBegin = (U32)(epoch * epochs.size); + const U32 epochEnd = epochBegin + epochs.size; + size_t segmentSize; + /* Select a segment */ + COVER_segment_t segment = COVER_selectSegment( + ctx, freqs, activeDmers, epochBegin, epochEnd, parameters); + /* If the segment covers no dmers, then we are out of content. + * There may be new content in other epochs, for continue for some time. + */ + if (segment.score == 0) { + if (++zeroScoreRun >= maxZeroScoreRun) { + break; + } + continue; + } + zeroScoreRun = 0; + /* Trim the segment if necessary and if it is too small then we are done */ + segmentSize = MIN(segment.end - segment.begin + parameters.d - 1, tail); + if (segmentSize < parameters.d) { + break; + } + /* We fill the dictionary from the back to allow the best segments to be + * referenced with the smallest offsets. + */ + tail -= segmentSize; + memcpy(dict + tail, ctx->samples + segment.begin, segmentSize); + DISPLAYUPDATE( + 2, "\r%u%% ", + (unsigned)(((dictBufferCapacity - tail) * 100) / dictBufferCapacity)); + } + DISPLAYLEVEL(2, "\r%79s\r", ""); + return tail; +} + +ZDICTLIB_STATIC_API size_t ZDICT_trainFromBuffer_cover( + void *dictBuffer, size_t dictBufferCapacity, + const void *samplesBuffer, const size_t *samplesSizes, unsigned nbSamples, + ZDICT_cover_params_t parameters) +{ + BYTE* const dict = (BYTE*)dictBuffer; + COVER_ctx_t ctx; + COVER_map_t activeDmers; + parameters.splitPoint = 1.0; + /* Initialize global data */ + g_displayLevel = (int)parameters.zParams.notificationLevel; + /* Checks */ + if (!COVER_checkParameters(parameters, dictBufferCapacity)) { + DISPLAYLEVEL(1, "Cover parameters incorrect\n"); + return ERROR(parameter_outOfBound); + } + if (nbSamples == 0) { + DISPLAYLEVEL(1, "Cover must have at least one input file\n"); + return ERROR(srcSize_wrong); + } + if (dictBufferCapacity < ZDICT_DICTSIZE_MIN) { + DISPLAYLEVEL(1, "dictBufferCapacity must be at least %u\n", + ZDICT_DICTSIZE_MIN); + return ERROR(dstSize_tooSmall); + } + /* Initialize context and activeDmers */ + { + size_t const initVal = COVER_ctx_init(&ctx, samplesBuffer, samplesSizes, nbSamples, + parameters.d, parameters.splitPoint); + if (ZSTD_isError(initVal)) { + return initVal; + } + } + COVER_warnOnSmallCorpus(dictBufferCapacity, ctx.suffixSize, g_displayLevel); + if (!COVER_map_init(&activeDmers, parameters.k - parameters.d + 1)) { + DISPLAYLEVEL(1, "Failed to allocate dmer map: out of memory\n"); + COVER_ctx_destroy(&ctx); + return ERROR(memory_allocation); + } + + DISPLAYLEVEL(2, "Building dictionary\n"); + { + const size_t tail = + COVER_buildDictionary(&ctx, ctx.freqs, &activeDmers, dictBuffer, + dictBufferCapacity, parameters); + const size_t dictionarySize = ZDICT_finalizeDictionary( + dict, dictBufferCapacity, dict + tail, dictBufferCapacity - tail, + samplesBuffer, samplesSizes, nbSamples, parameters.zParams); + if (!ZSTD_isError(dictionarySize)) { + DISPLAYLEVEL(2, "Constructed dictionary of size %u\n", + (unsigned)dictionarySize); + } + COVER_ctx_destroy(&ctx); + COVER_map_destroy(&activeDmers); + return dictionarySize; + } +} + + + +size_t COVER_checkTotalCompressedSize(const ZDICT_cover_params_t parameters, + const size_t *samplesSizes, const BYTE *samples, + size_t *offsets, + size_t nbTrainSamples, size_t nbSamples, + BYTE *const dict, size_t dictBufferCapacity) { + size_t totalCompressedSize = ERROR(GENERIC); + /* Pointers */ + ZSTD_CCtx *cctx; + ZSTD_CDict *cdict; + void *dst; + /* Local variables */ + size_t dstCapacity; + size_t i; + /* Allocate dst with enough space to compress the maximum sized sample */ + { + size_t maxSampleSize = 0; + i = parameters.splitPoint < 1.0 ? nbTrainSamples : 0; + for (; i < nbSamples; ++i) { + maxSampleSize = MAX(samplesSizes[i], maxSampleSize); + } + dstCapacity = ZSTD_compressBound(maxSampleSize); + dst = malloc(dstCapacity); + } + /* Create the cctx and cdict */ + cctx = ZSTD_createCCtx(); + cdict = ZSTD_createCDict(dict, dictBufferCapacity, + parameters.zParams.compressionLevel); + if (!dst || !cctx || !cdict) { + goto _compressCleanup; + } + /* Compress each sample and sum their sizes (or error) */ + totalCompressedSize = dictBufferCapacity; + i = parameters.splitPoint < 1.0 ? nbTrainSamples : 0; + for (; i < nbSamples; ++i) { + const size_t size = ZSTD_compress_usingCDict( + cctx, dst, dstCapacity, samples + offsets[i], + samplesSizes[i], cdict); + if (ZSTD_isError(size)) { + totalCompressedSize = size; + goto _compressCleanup; + } + totalCompressedSize += size; + } +_compressCleanup: + ZSTD_freeCCtx(cctx); + ZSTD_freeCDict(cdict); + if (dst) { + free(dst); + } + return totalCompressedSize; +} + + +/** + * Initialize the `COVER_best_t`. + */ +void COVER_best_init(COVER_best_t *best) { + if (best==NULL) return; /* compatible with init on NULL */ + (void)ZSTD_pthread_mutex_init(&best->mutex, NULL); + (void)ZSTD_pthread_cond_init(&best->cond, NULL); + best->liveJobs = 0; + best->dict = NULL; + best->dictSize = 0; + best->compressedSize = (size_t)-1; + memset(&best->parameters, 0, sizeof(best->parameters)); +} + +/** + * Wait until liveJobs == 0. + */ +void COVER_best_wait(COVER_best_t *best) { + if (!best) { + return; + } + ZSTD_pthread_mutex_lock(&best->mutex); + while (best->liveJobs != 0) { + ZSTD_pthread_cond_wait(&best->cond, &best->mutex); + } + ZSTD_pthread_mutex_unlock(&best->mutex); +} + +/** + * Call COVER_best_wait() and then destroy the COVER_best_t. + */ +void COVER_best_destroy(COVER_best_t *best) { + if (!best) { + return; + } + COVER_best_wait(best); + if (best->dict) { + free(best->dict); + } + ZSTD_pthread_mutex_destroy(&best->mutex); + ZSTD_pthread_cond_destroy(&best->cond); +} + +/** + * Called when a thread is about to be launched. + * Increments liveJobs. + */ +void COVER_best_start(COVER_best_t *best) { + if (!best) { + return; + } + ZSTD_pthread_mutex_lock(&best->mutex); + ++best->liveJobs; + ZSTD_pthread_mutex_unlock(&best->mutex); +} + +/** + * Called when a thread finishes executing, both on error or success. + * Decrements liveJobs and signals any waiting threads if liveJobs == 0. + * If this dictionary is the best so far save it and its parameters. + */ +void COVER_best_finish(COVER_best_t* best, + ZDICT_cover_params_t parameters, + COVER_dictSelection_t selection) +{ + void* dict = selection.dictContent; + size_t compressedSize = selection.totalCompressedSize; + size_t dictSize = selection.dictSize; + if (!best) { + return; + } + { + size_t liveJobs; + ZSTD_pthread_mutex_lock(&best->mutex); + --best->liveJobs; + liveJobs = best->liveJobs; + /* If the new dictionary is better */ + if (compressedSize < best->compressedSize) { + /* Allocate space if necessary */ + if (!best->dict || best->dictSize < dictSize) { + if (best->dict) { + free(best->dict); + } + best->dict = malloc(dictSize); + if (!best->dict) { + best->compressedSize = ERROR(GENERIC); + best->dictSize = 0; + ZSTD_pthread_cond_signal(&best->cond); + ZSTD_pthread_mutex_unlock(&best->mutex); + return; + } + } + /* Save the dictionary, parameters, and size */ + if (dict) { + memcpy(best->dict, dict, dictSize); + best->dictSize = dictSize; + best->parameters = parameters; + best->compressedSize = compressedSize; + } + } + if (liveJobs == 0) { + ZSTD_pthread_cond_broadcast(&best->cond); + } + ZSTD_pthread_mutex_unlock(&best->mutex); + } +} + +static COVER_dictSelection_t setDictSelection(BYTE* buf, size_t s, size_t csz) +{ + COVER_dictSelection_t ds; + ds.dictContent = buf; + ds.dictSize = s; + ds.totalCompressedSize = csz; + return ds; +} + +COVER_dictSelection_t COVER_dictSelectionError(size_t error) { + return setDictSelection(NULL, 0, error); +} + +unsigned COVER_dictSelectionIsError(COVER_dictSelection_t selection) { + return (ZSTD_isError(selection.totalCompressedSize) || !selection.dictContent); +} + +void COVER_dictSelectionFree(COVER_dictSelection_t selection){ + free(selection.dictContent); +} + +COVER_dictSelection_t COVER_selectDict(BYTE* customDictContent, size_t dictBufferCapacity, + size_t dictContentSize, const BYTE* samplesBuffer, const size_t* samplesSizes, unsigned nbFinalizeSamples, + size_t nbCheckSamples, size_t nbSamples, ZDICT_cover_params_t params, size_t* offsets, size_t totalCompressedSize) { + + size_t largestDict = 0; + size_t largestCompressed = 0; + BYTE* customDictContentEnd = customDictContent + dictContentSize; + + BYTE* largestDictbuffer = (BYTE*)malloc(dictBufferCapacity); + BYTE* candidateDictBuffer = (BYTE*)malloc(dictBufferCapacity); + double regressionTolerance = ((double)params.shrinkDictMaxRegression / 100.0) + 1.00; + + if (!largestDictbuffer || !candidateDictBuffer) { + free(largestDictbuffer); + free(candidateDictBuffer); + return COVER_dictSelectionError(dictContentSize); + } + + /* Initial dictionary size and compressed size */ + memcpy(largestDictbuffer, customDictContent, dictContentSize); + dictContentSize = ZDICT_finalizeDictionary( + largestDictbuffer, dictBufferCapacity, customDictContent, dictContentSize, + samplesBuffer, samplesSizes, nbFinalizeSamples, params.zParams); + + if (ZDICT_isError(dictContentSize)) { + free(largestDictbuffer); + free(candidateDictBuffer); + return COVER_dictSelectionError(dictContentSize); + } + + totalCompressedSize = COVER_checkTotalCompressedSize(params, samplesSizes, + samplesBuffer, offsets, + nbCheckSamples, nbSamples, + largestDictbuffer, dictContentSize); + + if (ZSTD_isError(totalCompressedSize)) { + free(largestDictbuffer); + free(candidateDictBuffer); + return COVER_dictSelectionError(totalCompressedSize); + } + + if (params.shrinkDict == 0) { + free(candidateDictBuffer); + return setDictSelection(largestDictbuffer, dictContentSize, totalCompressedSize); + } + + largestDict = dictContentSize; + largestCompressed = totalCompressedSize; + dictContentSize = ZDICT_DICTSIZE_MIN; + + /* Largest dict is initially at least ZDICT_DICTSIZE_MIN */ + while (dictContentSize < largestDict) { + memcpy(candidateDictBuffer, largestDictbuffer, largestDict); + dictContentSize = ZDICT_finalizeDictionary( + candidateDictBuffer, dictBufferCapacity, customDictContentEnd - dictContentSize, dictContentSize, + samplesBuffer, samplesSizes, nbFinalizeSamples, params.zParams); + + if (ZDICT_isError(dictContentSize)) { + free(largestDictbuffer); + free(candidateDictBuffer); + return COVER_dictSelectionError(dictContentSize); + + } + + totalCompressedSize = COVER_checkTotalCompressedSize(params, samplesSizes, + samplesBuffer, offsets, + nbCheckSamples, nbSamples, + candidateDictBuffer, dictContentSize); + + if (ZSTD_isError(totalCompressedSize)) { + free(largestDictbuffer); + free(candidateDictBuffer); + return COVER_dictSelectionError(totalCompressedSize); + } + + if ((double)totalCompressedSize <= (double)largestCompressed * regressionTolerance) { + free(largestDictbuffer); + return setDictSelection( candidateDictBuffer, dictContentSize, totalCompressedSize ); + } + dictContentSize *= 2; + } + dictContentSize = largestDict; + totalCompressedSize = largestCompressed; + free(candidateDictBuffer); + return setDictSelection( largestDictbuffer, dictContentSize, totalCompressedSize ); +} + +/** + * Parameters for COVER_tryParameters(). + */ +typedef struct COVER_tryParameters_data_s { + const COVER_ctx_t *ctx; + COVER_best_t *best; + size_t dictBufferCapacity; + ZDICT_cover_params_t parameters; +} COVER_tryParameters_data_t; + +/** + * Tries a set of parameters and updates the COVER_best_t with the results. + * This function is thread safe if zstd is compiled with multithreaded support. + * It takes its parameters as an *OWNING* opaque pointer to support threading. + */ +static void COVER_tryParameters(void *opaque) +{ + /* Save parameters as local variables */ + COVER_tryParameters_data_t *const data = (COVER_tryParameters_data_t*)opaque; + const COVER_ctx_t *const ctx = data->ctx; + const ZDICT_cover_params_t parameters = data->parameters; + size_t dictBufferCapacity = data->dictBufferCapacity; + size_t totalCompressedSize = ERROR(GENERIC); + /* Allocate space for hash table, dict, and freqs */ + COVER_map_t activeDmers; + BYTE* const dict = (BYTE*)malloc(dictBufferCapacity); + COVER_dictSelection_t selection = COVER_dictSelectionError(ERROR(GENERIC)); + U32* const freqs = (U32*)malloc(ctx->suffixSize * sizeof(U32)); + if (!COVER_map_init(&activeDmers, parameters.k - parameters.d + 1)) { + DISPLAYLEVEL(1, "Failed to allocate dmer map: out of memory\n"); + goto _cleanup; + } + if (!dict || !freqs) { + DISPLAYLEVEL(1, "Failed to allocate buffers: out of memory\n"); + goto _cleanup; + } + /* Copy the frequencies because we need to modify them */ + memcpy(freqs, ctx->freqs, ctx->suffixSize * sizeof(U32)); + /* Build the dictionary */ + { + const size_t tail = COVER_buildDictionary(ctx, freqs, &activeDmers, dict, + dictBufferCapacity, parameters); + selection = COVER_selectDict(dict + tail, dictBufferCapacity, dictBufferCapacity - tail, + ctx->samples, ctx->samplesSizes, (unsigned)ctx->nbTrainSamples, ctx->nbTrainSamples, ctx->nbSamples, parameters, ctx->offsets, + totalCompressedSize); + + if (COVER_dictSelectionIsError(selection)) { + DISPLAYLEVEL(1, "Failed to select dictionary\n"); + goto _cleanup; + } + } +_cleanup: + free(dict); + COVER_best_finish(data->best, parameters, selection); + free(data); + COVER_map_destroy(&activeDmers); + COVER_dictSelectionFree(selection); + free(freqs); +} + +ZDICTLIB_STATIC_API size_t ZDICT_optimizeTrainFromBuffer_cover( + void* dictBuffer, size_t dictBufferCapacity, const void* samplesBuffer, + const size_t* samplesSizes, unsigned nbSamples, + ZDICT_cover_params_t* parameters) +{ + /* constants */ + const unsigned nbThreads = parameters->nbThreads; + const double splitPoint = + parameters->splitPoint <= 0.0 ? COVER_DEFAULT_SPLITPOINT : parameters->splitPoint; + const unsigned kMinD = parameters->d == 0 ? 6 : parameters->d; + const unsigned kMaxD = parameters->d == 0 ? 8 : parameters->d; + const unsigned kMinK = parameters->k == 0 ? 50 : parameters->k; + const unsigned kMaxK = parameters->k == 0 ? 2000 : parameters->k; + const unsigned kSteps = parameters->steps == 0 ? 40 : parameters->steps; + const unsigned kStepSize = MAX((kMaxK - kMinK) / kSteps, 1); + const unsigned kIterations = + (1 + (kMaxD - kMinD) / 2) * (1 + (kMaxK - kMinK) / kStepSize); + const unsigned shrinkDict = 0; + /* Local variables */ + const int displayLevel = parameters->zParams.notificationLevel; + unsigned iteration = 1; + unsigned d; + unsigned k; + COVER_best_t best; + POOL_ctx *pool = NULL; + int warned = 0; + + /* Checks */ + if (splitPoint <= 0 || splitPoint > 1) { + LOCALDISPLAYLEVEL(displayLevel, 1, "Incorrect parameters\n"); + return ERROR(parameter_outOfBound); + } + if (kMinK < kMaxD || kMaxK < kMinK) { + LOCALDISPLAYLEVEL(displayLevel, 1, "Incorrect parameters\n"); + return ERROR(parameter_outOfBound); + } + if (nbSamples == 0) { + DISPLAYLEVEL(1, "Cover must have at least one input file\n"); + return ERROR(srcSize_wrong); + } + if (dictBufferCapacity < ZDICT_DICTSIZE_MIN) { + DISPLAYLEVEL(1, "dictBufferCapacity must be at least %u\n", + ZDICT_DICTSIZE_MIN); + return ERROR(dstSize_tooSmall); + } + if (nbThreads > 1) { + pool = POOL_create(nbThreads, 1); + if (!pool) { + return ERROR(memory_allocation); + } + } + /* Initialization */ + COVER_best_init(&best); + /* Turn down global display level to clean up display at level 2 and below */ + g_displayLevel = displayLevel == 0 ? 0 : displayLevel - 1; + /* Loop through d first because each new value needs a new context */ + LOCALDISPLAYLEVEL(displayLevel, 2, "Trying %u different sets of parameters\n", + kIterations); + for (d = kMinD; d <= kMaxD; d += 2) { + /* Initialize the context for this value of d */ + COVER_ctx_t ctx; + LOCALDISPLAYLEVEL(displayLevel, 3, "d=%u\n", d); + { + const size_t initVal = COVER_ctx_init(&ctx, samplesBuffer, samplesSizes, nbSamples, d, splitPoint); + if (ZSTD_isError(initVal)) { + LOCALDISPLAYLEVEL(displayLevel, 1, "Failed to initialize context\n"); + COVER_best_destroy(&best); + POOL_free(pool); + return initVal; + } + } + if (!warned) { + COVER_warnOnSmallCorpus(dictBufferCapacity, ctx.suffixSize, displayLevel); + warned = 1; + } + /* Loop through k reusing the same context */ + for (k = kMinK; k <= kMaxK; k += kStepSize) { + /* Prepare the arguments */ + COVER_tryParameters_data_t *data = (COVER_tryParameters_data_t *)malloc( + sizeof(COVER_tryParameters_data_t)); + LOCALDISPLAYLEVEL(displayLevel, 3, "k=%u\n", k); + if (!data) { + LOCALDISPLAYLEVEL(displayLevel, 1, "Failed to allocate parameters\n"); + COVER_best_destroy(&best); + COVER_ctx_destroy(&ctx); + POOL_free(pool); + return ERROR(memory_allocation); + } + data->ctx = &ctx; + data->best = &best; + data->dictBufferCapacity = dictBufferCapacity; + data->parameters = *parameters; + data->parameters.k = k; + data->parameters.d = d; + data->parameters.splitPoint = splitPoint; + data->parameters.steps = kSteps; + data->parameters.shrinkDict = shrinkDict; + data->parameters.zParams.notificationLevel = g_displayLevel; + /* Check the parameters */ + if (!COVER_checkParameters(data->parameters, dictBufferCapacity)) { + DISPLAYLEVEL(1, "Cover parameters incorrect\n"); + free(data); + continue; + } + /* Call the function and pass ownership of data to it */ + COVER_best_start(&best); + if (pool) { + POOL_add(pool, &COVER_tryParameters, data); + } else { + COVER_tryParameters(data); + } + /* Print status */ + LOCALDISPLAYUPDATE(displayLevel, 2, "\r%u%% ", + (unsigned)((iteration * 100) / kIterations)); + ++iteration; + } + COVER_best_wait(&best); + COVER_ctx_destroy(&ctx); + } + LOCALDISPLAYLEVEL(displayLevel, 2, "\r%79s\r", ""); + /* Fill the output buffer and parameters with output of the best parameters */ + { + const size_t dictSize = best.dictSize; + if (ZSTD_isError(best.compressedSize)) { + const size_t compressedSize = best.compressedSize; + COVER_best_destroy(&best); + POOL_free(pool); + return compressedSize; + } + *parameters = best.parameters; + memcpy(dictBuffer, best.dict, dictSize); + COVER_best_destroy(&best); + POOL_free(pool); + return dictSize; + } +} diff --git a/deps/zstd/lib/dictBuilder/cover.h b/deps/zstd/lib/dictBuilder/cover.h new file mode 100644 index 00000000000000..a5d7506ef6df34 --- /dev/null +++ b/deps/zstd/lib/dictBuilder/cover.h @@ -0,0 +1,152 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZDICT_STATIC_LINKING_ONLY +# define ZDICT_STATIC_LINKING_ONLY +#endif + +#include "../common/threading.h" /* ZSTD_pthread_mutex_t */ +#include "../common/mem.h" /* U32, BYTE */ +#include "../zdict.h" + +/** + * COVER_best_t is used for two purposes: + * 1. Synchronizing threads. + * 2. Saving the best parameters and dictionary. + * + * All of the methods except COVER_best_init() are thread safe if zstd is + * compiled with multithreaded support. + */ +typedef struct COVER_best_s { + ZSTD_pthread_mutex_t mutex; + ZSTD_pthread_cond_t cond; + size_t liveJobs; + void *dict; + size_t dictSize; + ZDICT_cover_params_t parameters; + size_t compressedSize; +} COVER_best_t; + +/** + * A segment is a range in the source as well as the score of the segment. + */ +typedef struct { + U32 begin; + U32 end; + U32 score; +} COVER_segment_t; + +/** + *Number of epochs and size of each epoch. + */ +typedef struct { + U32 num; + U32 size; +} COVER_epoch_info_t; + +/** + * Struct used for the dictionary selection function. + */ +typedef struct COVER_dictSelection { + BYTE* dictContent; + size_t dictSize; + size_t totalCompressedSize; +} COVER_dictSelection_t; + +/** + * Computes the number of epochs and the size of each epoch. + * We will make sure that each epoch gets at least 10 * k bytes. + * + * The COVER algorithms divide the data up into epochs of equal size and + * select one segment from each epoch. + * + * @param maxDictSize The maximum allowed dictionary size. + * @param nbDmers The number of dmers we are training on. + * @param k The parameter k (segment size). + * @param passes The target number of passes over the dmer corpus. + * More passes means a better dictionary. + */ +COVER_epoch_info_t COVER_computeEpochs(U32 maxDictSize, U32 nbDmers, + U32 k, U32 passes); + +/** + * Warns the user when their corpus is too small. + */ +void COVER_warnOnSmallCorpus(size_t maxDictSize, size_t nbDmers, int displayLevel); + +/** + * Checks total compressed size of a dictionary + */ +size_t COVER_checkTotalCompressedSize(const ZDICT_cover_params_t parameters, + const size_t *samplesSizes, const BYTE *samples, + size_t *offsets, + size_t nbTrainSamples, size_t nbSamples, + BYTE *const dict, size_t dictBufferCapacity); + +/** + * Returns the sum of the sample sizes. + */ +size_t COVER_sum(const size_t *samplesSizes, unsigned nbSamples) ; + +/** + * Initialize the `COVER_best_t`. + */ +void COVER_best_init(COVER_best_t *best); + +/** + * Wait until liveJobs == 0. + */ +void COVER_best_wait(COVER_best_t *best); + +/** + * Call COVER_best_wait() and then destroy the COVER_best_t. + */ +void COVER_best_destroy(COVER_best_t *best); + +/** + * Called when a thread is about to be launched. + * Increments liveJobs. + */ +void COVER_best_start(COVER_best_t *best); + +/** + * Called when a thread finishes executing, both on error or success. + * Decrements liveJobs and signals any waiting threads if liveJobs == 0. + * If this dictionary is the best so far save it and its parameters. + */ +void COVER_best_finish(COVER_best_t *best, ZDICT_cover_params_t parameters, + COVER_dictSelection_t selection); +/** + * Error function for COVER_selectDict function. Checks if the return + * value is an error. + */ +unsigned COVER_dictSelectionIsError(COVER_dictSelection_t selection); + + /** + * Error function for COVER_selectDict function. Returns a struct where + * return.totalCompressedSize is a ZSTD error. + */ +COVER_dictSelection_t COVER_dictSelectionError(size_t error); + +/** + * Always call after selectDict is called to free up used memory from + * newly created dictionary. + */ +void COVER_dictSelectionFree(COVER_dictSelection_t selection); + +/** + * Called to finalize the dictionary and select one based on whether or not + * the shrink-dict flag was enabled. If enabled the dictionary used is the + * smallest dictionary within a specified regression of the compressed size + * from the largest dictionary. + */ + COVER_dictSelection_t COVER_selectDict(BYTE* customDictContent, size_t dictBufferCapacity, + size_t dictContentSize, const BYTE* samplesBuffer, const size_t* samplesSizes, unsigned nbFinalizeSamples, + size_t nbCheckSamples, size_t nbSamples, ZDICT_cover_params_t params, size_t* offsets, size_t totalCompressedSize); diff --git a/deps/zstd/lib/dictBuilder/divsufsort.c b/deps/zstd/lib/dictBuilder/divsufsort.c new file mode 100644 index 00000000000000..a2870fb3ba3342 --- /dev/null +++ b/deps/zstd/lib/dictBuilder/divsufsort.c @@ -0,0 +1,1913 @@ +/* + * divsufsort.c for libdivsufsort-lite + * Copyright (c) 2003-2008 Yuta Mori All Rights Reserved. + * + * 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. + */ + +/*- Compiler specifics -*/ +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wshorten-64-to-32" +#endif + +#if defined(_MSC_VER) +# pragma warning(disable : 4244) +# pragma warning(disable : 4127) /* C4127 : Condition expression is constant */ +#endif + + +/*- Dependencies -*/ +#include +#include +#include + +#include "divsufsort.h" + +/*- Constants -*/ +#if defined(INLINE) +# undef INLINE +#endif +#if !defined(INLINE) +# define INLINE __inline +#endif +#if defined(ALPHABET_SIZE) && (ALPHABET_SIZE < 1) +# undef ALPHABET_SIZE +#endif +#if !defined(ALPHABET_SIZE) +# define ALPHABET_SIZE (256) +#endif +#define BUCKET_A_SIZE (ALPHABET_SIZE) +#define BUCKET_B_SIZE (ALPHABET_SIZE * ALPHABET_SIZE) +#if defined(SS_INSERTIONSORT_THRESHOLD) +# if SS_INSERTIONSORT_THRESHOLD < 1 +# undef SS_INSERTIONSORT_THRESHOLD +# define SS_INSERTIONSORT_THRESHOLD (1) +# endif +#else +# define SS_INSERTIONSORT_THRESHOLD (8) +#endif +#if defined(SS_BLOCKSIZE) +# if SS_BLOCKSIZE < 0 +# undef SS_BLOCKSIZE +# define SS_BLOCKSIZE (0) +# elif 32768 <= SS_BLOCKSIZE +# undef SS_BLOCKSIZE +# define SS_BLOCKSIZE (32767) +# endif +#else +# define SS_BLOCKSIZE (1024) +#endif +/* minstacksize = log(SS_BLOCKSIZE) / log(3) * 2 */ +#if SS_BLOCKSIZE == 0 +# define SS_MISORT_STACKSIZE (96) +#elif SS_BLOCKSIZE <= 4096 +# define SS_MISORT_STACKSIZE (16) +#else +# define SS_MISORT_STACKSIZE (24) +#endif +#define SS_SMERGE_STACKSIZE (32) +#define TR_INSERTIONSORT_THRESHOLD (8) +#define TR_STACKSIZE (64) + + +/*- Macros -*/ +#ifndef SWAP +# define SWAP(_a, _b) do { t = (_a); (_a) = (_b); (_b) = t; } while(0) +#endif /* SWAP */ +#ifndef MIN +# define MIN(_a, _b) (((_a) < (_b)) ? (_a) : (_b)) +#endif /* MIN */ +#ifndef MAX +# define MAX(_a, _b) (((_a) > (_b)) ? (_a) : (_b)) +#endif /* MAX */ +#define STACK_PUSH(_a, _b, _c, _d)\ + do {\ + assert(ssize < STACK_SIZE);\ + stack[ssize].a = (_a), stack[ssize].b = (_b),\ + stack[ssize].c = (_c), stack[ssize++].d = (_d);\ + } while(0) +#define STACK_PUSH5(_a, _b, _c, _d, _e)\ + do {\ + assert(ssize < STACK_SIZE);\ + stack[ssize].a = (_a), stack[ssize].b = (_b),\ + stack[ssize].c = (_c), stack[ssize].d = (_d), stack[ssize++].e = (_e);\ + } while(0) +#define STACK_POP(_a, _b, _c, _d)\ + do {\ + assert(0 <= ssize);\ + if(ssize == 0) { return; }\ + (_a) = stack[--ssize].a, (_b) = stack[ssize].b,\ + (_c) = stack[ssize].c, (_d) = stack[ssize].d;\ + } while(0) +#define STACK_POP5(_a, _b, _c, _d, _e)\ + do {\ + assert(0 <= ssize);\ + if(ssize == 0) { return; }\ + (_a) = stack[--ssize].a, (_b) = stack[ssize].b,\ + (_c) = stack[ssize].c, (_d) = stack[ssize].d, (_e) = stack[ssize].e;\ + } while(0) +#define BUCKET_A(_c0) bucket_A[(_c0)] +#if ALPHABET_SIZE == 256 +#define BUCKET_B(_c0, _c1) (bucket_B[((_c1) << 8) | (_c0)]) +#define BUCKET_BSTAR(_c0, _c1) (bucket_B[((_c0) << 8) | (_c1)]) +#else +#define BUCKET_B(_c0, _c1) (bucket_B[(_c1) * ALPHABET_SIZE + (_c0)]) +#define BUCKET_BSTAR(_c0, _c1) (bucket_B[(_c0) * ALPHABET_SIZE + (_c1)]) +#endif + + +/*- Private Functions -*/ + +static const int lg_table[256]= { + -1,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, + 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, + 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 +}; + +#if (SS_BLOCKSIZE == 0) || (SS_INSERTIONSORT_THRESHOLD < SS_BLOCKSIZE) + +static INLINE +int +ss_ilg(int n) { +#if SS_BLOCKSIZE == 0 + return (n & 0xffff0000) ? + ((n & 0xff000000) ? + 24 + lg_table[(n >> 24) & 0xff] : + 16 + lg_table[(n >> 16) & 0xff]) : + ((n & 0x0000ff00) ? + 8 + lg_table[(n >> 8) & 0xff] : + 0 + lg_table[(n >> 0) & 0xff]); +#elif SS_BLOCKSIZE < 256 + return lg_table[n]; +#else + return (n & 0xff00) ? + 8 + lg_table[(n >> 8) & 0xff] : + 0 + lg_table[(n >> 0) & 0xff]; +#endif +} + +#endif /* (SS_BLOCKSIZE == 0) || (SS_INSERTIONSORT_THRESHOLD < SS_BLOCKSIZE) */ + +#if SS_BLOCKSIZE != 0 + +static const int sqq_table[256] = { + 0, 16, 22, 27, 32, 35, 39, 42, 45, 48, 50, 53, 55, 57, 59, 61, + 64, 65, 67, 69, 71, 73, 75, 76, 78, 80, 81, 83, 84, 86, 87, 89, + 90, 91, 93, 94, 96, 97, 98, 99, 101, 102, 103, 104, 106, 107, 108, 109, +110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, +128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, +143, 144, 144, 145, 146, 147, 148, 149, 150, 150, 151, 152, 153, 154, 155, 155, +156, 157, 158, 159, 160, 160, 161, 162, 163, 163, 164, 165, 166, 167, 167, 168, +169, 170, 170, 171, 172, 173, 173, 174, 175, 176, 176, 177, 178, 178, 179, 180, +181, 181, 182, 183, 183, 184, 185, 185, 186, 187, 187, 188, 189, 189, 190, 191, +192, 192, 193, 193, 194, 195, 195, 196, 197, 197, 198, 199, 199, 200, 201, 201, +202, 203, 203, 204, 204, 205, 206, 206, 207, 208, 208, 209, 209, 210, 211, 211, +212, 212, 213, 214, 214, 215, 215, 216, 217, 217, 218, 218, 219, 219, 220, 221, +221, 222, 222, 223, 224, 224, 225, 225, 226, 226, 227, 227, 228, 229, 229, 230, +230, 231, 231, 232, 232, 233, 234, 234, 235, 235, 236, 236, 237, 237, 238, 238, +239, 240, 240, 241, 241, 242, 242, 243, 243, 244, 244, 245, 245, 246, 246, 247, +247, 248, 248, 249, 249, 250, 250, 251, 251, 252, 252, 253, 253, 254, 254, 255 +}; + +static INLINE +int +ss_isqrt(int x) { + int y, e; + + if(x >= (SS_BLOCKSIZE * SS_BLOCKSIZE)) { return SS_BLOCKSIZE; } + e = (x & 0xffff0000) ? + ((x & 0xff000000) ? + 24 + lg_table[(x >> 24) & 0xff] : + 16 + lg_table[(x >> 16) & 0xff]) : + ((x & 0x0000ff00) ? + 8 + lg_table[(x >> 8) & 0xff] : + 0 + lg_table[(x >> 0) & 0xff]); + + if(e >= 16) { + y = sqq_table[x >> ((e - 6) - (e & 1))] << ((e >> 1) - 7); + if(e >= 24) { y = (y + 1 + x / y) >> 1; } + y = (y + 1 + x / y) >> 1; + } else if(e >= 8) { + y = (sqq_table[x >> ((e - 6) - (e & 1))] >> (7 - (e >> 1))) + 1; + } else { + return sqq_table[x] >> 4; + } + + return (x < (y * y)) ? y - 1 : y; +} + +#endif /* SS_BLOCKSIZE != 0 */ + + +/*---------------------------------------------------------------------------*/ + +/* Compares two suffixes. */ +static INLINE +int +ss_compare(const unsigned char *T, + const int *p1, const int *p2, + int depth) { + const unsigned char *U1, *U2, *U1n, *U2n; + + for(U1 = T + depth + *p1, + U2 = T + depth + *p2, + U1n = T + *(p1 + 1) + 2, + U2n = T + *(p2 + 1) + 2; + (U1 < U1n) && (U2 < U2n) && (*U1 == *U2); + ++U1, ++U2) { + } + + return U1 < U1n ? + (U2 < U2n ? *U1 - *U2 : 1) : + (U2 < U2n ? -1 : 0); +} + + +/*---------------------------------------------------------------------------*/ + +#if (SS_BLOCKSIZE != 1) && (SS_INSERTIONSORT_THRESHOLD != 1) + +/* Insertionsort for small size groups */ +static +void +ss_insertionsort(const unsigned char *T, const int *PA, + int *first, int *last, int depth) { + int *i, *j; + int t; + int r; + + for(i = last - 2; first <= i; --i) { + for(t = *i, j = i + 1; 0 < (r = ss_compare(T, PA + t, PA + *j, depth));) { + do { *(j - 1) = *j; } while((++j < last) && (*j < 0)); + if(last <= j) { break; } + } + if(r == 0) { *j = ~*j; } + *(j - 1) = t; + } +} + +#endif /* (SS_BLOCKSIZE != 1) && (SS_INSERTIONSORT_THRESHOLD != 1) */ + + +/*---------------------------------------------------------------------------*/ + +#if (SS_BLOCKSIZE == 0) || (SS_INSERTIONSORT_THRESHOLD < SS_BLOCKSIZE) + +static INLINE +void +ss_fixdown(const unsigned char *Td, const int *PA, + int *SA, int i, int size) { + int j, k; + int v; + int c, d, e; + + for(v = SA[i], c = Td[PA[v]]; (j = 2 * i + 1) < size; SA[i] = SA[k], i = k) { + d = Td[PA[SA[k = j++]]]; + if(d < (e = Td[PA[SA[j]]])) { k = j; d = e; } + if(d <= c) { break; } + } + SA[i] = v; +} + +/* Simple top-down heapsort. */ +static +void +ss_heapsort(const unsigned char *Td, const int *PA, int *SA, int size) { + int i, m; + int t; + + m = size; + if((size % 2) == 0) { + m--; + if(Td[PA[SA[m / 2]]] < Td[PA[SA[m]]]) { SWAP(SA[m], SA[m / 2]); } + } + + for(i = m / 2 - 1; 0 <= i; --i) { ss_fixdown(Td, PA, SA, i, m); } + if((size % 2) == 0) { SWAP(SA[0], SA[m]); ss_fixdown(Td, PA, SA, 0, m); } + for(i = m - 1; 0 < i; --i) { + t = SA[0], SA[0] = SA[i]; + ss_fixdown(Td, PA, SA, 0, i); + SA[i] = t; + } +} + + +/*---------------------------------------------------------------------------*/ + +/* Returns the median of three elements. */ +static INLINE +int * +ss_median3(const unsigned char *Td, const int *PA, + int *v1, int *v2, int *v3) { + int *t; + if(Td[PA[*v1]] > Td[PA[*v2]]) { SWAP(v1, v2); } + if(Td[PA[*v2]] > Td[PA[*v3]]) { + if(Td[PA[*v1]] > Td[PA[*v3]]) { return v1; } + else { return v3; } + } + return v2; +} + +/* Returns the median of five elements. */ +static INLINE +int * +ss_median5(const unsigned char *Td, const int *PA, + int *v1, int *v2, int *v3, int *v4, int *v5) { + int *t; + if(Td[PA[*v2]] > Td[PA[*v3]]) { SWAP(v2, v3); } + if(Td[PA[*v4]] > Td[PA[*v5]]) { SWAP(v4, v5); } + if(Td[PA[*v2]] > Td[PA[*v4]]) { SWAP(v2, v4); SWAP(v3, v5); } + if(Td[PA[*v1]] > Td[PA[*v3]]) { SWAP(v1, v3); } + if(Td[PA[*v1]] > Td[PA[*v4]]) { SWAP(v1, v4); SWAP(v3, v5); } + if(Td[PA[*v3]] > Td[PA[*v4]]) { return v4; } + return v3; +} + +/* Returns the pivot element. */ +static INLINE +int * +ss_pivot(const unsigned char *Td, const int *PA, int *first, int *last) { + int *middle; + int t; + + t = last - first; + middle = first + t / 2; + + if(t <= 512) { + if(t <= 32) { + return ss_median3(Td, PA, first, middle, last - 1); + } else { + t >>= 2; + return ss_median5(Td, PA, first, first + t, middle, last - 1 - t, last - 1); + } + } + t >>= 3; + first = ss_median3(Td, PA, first, first + t, first + (t << 1)); + middle = ss_median3(Td, PA, middle - t, middle, middle + t); + last = ss_median3(Td, PA, last - 1 - (t << 1), last - 1 - t, last - 1); + return ss_median3(Td, PA, first, middle, last); +} + + +/*---------------------------------------------------------------------------*/ + +/* Binary partition for substrings. */ +static INLINE +int * +ss_partition(const int *PA, + int *first, int *last, int depth) { + int *a, *b; + int t; + for(a = first - 1, b = last;;) { + for(; (++a < b) && ((PA[*a] + depth) >= (PA[*a + 1] + 1));) { *a = ~*a; } + for(; (a < --b) && ((PA[*b] + depth) < (PA[*b + 1] + 1));) { } + if(b <= a) { break; } + t = ~*b; + *b = *a; + *a = t; + } + if(first < a) { *first = ~*first; } + return a; +} + +/* Multikey introsort for medium size groups. */ +static +void +ss_mintrosort(const unsigned char *T, const int *PA, + int *first, int *last, + int depth) { +#define STACK_SIZE SS_MISORT_STACKSIZE + struct { int *a, *b, c; int d; } stack[STACK_SIZE]; + const unsigned char *Td; + int *a, *b, *c, *d, *e, *f; + int s, t; + int ssize; + int limit; + int v, x = 0; + + for(ssize = 0, limit = ss_ilg(last - first);;) { + + if((last - first) <= SS_INSERTIONSORT_THRESHOLD) { +#if 1 < SS_INSERTIONSORT_THRESHOLD + if(1 < (last - first)) { ss_insertionsort(T, PA, first, last, depth); } +#endif + STACK_POP(first, last, depth, limit); + continue; + } + + Td = T + depth; + if(limit-- == 0) { ss_heapsort(Td, PA, first, last - first); } + if(limit < 0) { + for(a = first + 1, v = Td[PA[*first]]; a < last; ++a) { + if((x = Td[PA[*a]]) != v) { + if(1 < (a - first)) { break; } + v = x; + first = a; + } + } + if(Td[PA[*first] - 1] < v) { + first = ss_partition(PA, first, a, depth); + } + if((a - first) <= (last - a)) { + if(1 < (a - first)) { + STACK_PUSH(a, last, depth, -1); + last = a, depth += 1, limit = ss_ilg(a - first); + } else { + first = a, limit = -1; + } + } else { + if(1 < (last - a)) { + STACK_PUSH(first, a, depth + 1, ss_ilg(a - first)); + first = a, limit = -1; + } else { + last = a, depth += 1, limit = ss_ilg(a - first); + } + } + continue; + } + + /* choose pivot */ + a = ss_pivot(Td, PA, first, last); + v = Td[PA[*a]]; + SWAP(*first, *a); + + /* partition */ + for(b = first; (++b < last) && ((x = Td[PA[*b]]) == v);) { } + if(((a = b) < last) && (x < v)) { + for(; (++b < last) && ((x = Td[PA[*b]]) <= v);) { + if(x == v) { SWAP(*b, *a); ++a; } + } + } + for(c = last; (b < --c) && ((x = Td[PA[*c]]) == v);) { } + if((b < (d = c)) && (x > v)) { + for(; (b < --c) && ((x = Td[PA[*c]]) >= v);) { + if(x == v) { SWAP(*c, *d); --d; } + } + } + for(; b < c;) { + SWAP(*b, *c); + for(; (++b < c) && ((x = Td[PA[*b]]) <= v);) { + if(x == v) { SWAP(*b, *a); ++a; } + } + for(; (b < --c) && ((x = Td[PA[*c]]) >= v);) { + if(x == v) { SWAP(*c, *d); --d; } + } + } + + if(a <= d) { + c = b - 1; + + if((s = a - first) > (t = b - a)) { s = t; } + for(e = first, f = b - s; 0 < s; --s, ++e, ++f) { SWAP(*e, *f); } + if((s = d - c) > (t = last - d - 1)) { s = t; } + for(e = b, f = last - s; 0 < s; --s, ++e, ++f) { SWAP(*e, *f); } + + a = first + (b - a), c = last - (d - c); + b = (v <= Td[PA[*a] - 1]) ? a : ss_partition(PA, a, c, depth); + + if((a - first) <= (last - c)) { + if((last - c) <= (c - b)) { + STACK_PUSH(b, c, depth + 1, ss_ilg(c - b)); + STACK_PUSH(c, last, depth, limit); + last = a; + } else if((a - first) <= (c - b)) { + STACK_PUSH(c, last, depth, limit); + STACK_PUSH(b, c, depth + 1, ss_ilg(c - b)); + last = a; + } else { + STACK_PUSH(c, last, depth, limit); + STACK_PUSH(first, a, depth, limit); + first = b, last = c, depth += 1, limit = ss_ilg(c - b); + } + } else { + if((a - first) <= (c - b)) { + STACK_PUSH(b, c, depth + 1, ss_ilg(c - b)); + STACK_PUSH(first, a, depth, limit); + first = c; + } else if((last - c) <= (c - b)) { + STACK_PUSH(first, a, depth, limit); + STACK_PUSH(b, c, depth + 1, ss_ilg(c - b)); + first = c; + } else { + STACK_PUSH(first, a, depth, limit); + STACK_PUSH(c, last, depth, limit); + first = b, last = c, depth += 1, limit = ss_ilg(c - b); + } + } + } else { + limit += 1; + if(Td[PA[*first] - 1] < v) { + first = ss_partition(PA, first, last, depth); + limit = ss_ilg(last - first); + } + depth += 1; + } + } +#undef STACK_SIZE +} + +#endif /* (SS_BLOCKSIZE == 0) || (SS_INSERTIONSORT_THRESHOLD < SS_BLOCKSIZE) */ + + +/*---------------------------------------------------------------------------*/ + +#if SS_BLOCKSIZE != 0 + +static INLINE +void +ss_blockswap(int *a, int *b, int n) { + int t; + for(; 0 < n; --n, ++a, ++b) { + t = *a, *a = *b, *b = t; + } +} + +static INLINE +void +ss_rotate(int *first, int *middle, int *last) { + int *a, *b, t; + int l, r; + l = middle - first, r = last - middle; + for(; (0 < l) && (0 < r);) { + if(l == r) { ss_blockswap(first, middle, l); break; } + if(l < r) { + a = last - 1, b = middle - 1; + t = *a; + do { + *a-- = *b, *b-- = *a; + if(b < first) { + *a = t; + last = a; + if((r -= l + 1) <= l) { break; } + a -= 1, b = middle - 1; + t = *a; + } + } while(1); + } else { + a = first, b = middle; + t = *a; + do { + *a++ = *b, *b++ = *a; + if(last <= b) { + *a = t; + first = a + 1; + if((l -= r + 1) <= r) { break; } + a += 1, b = middle; + t = *a; + } + } while(1); + } + } +} + + +/*---------------------------------------------------------------------------*/ + +static +void +ss_inplacemerge(const unsigned char *T, const int *PA, + int *first, int *middle, int *last, + int depth) { + const int *p; + int *a, *b; + int len, half; + int q, r; + int x; + + for(;;) { + if(*(last - 1) < 0) { x = 1; p = PA + ~*(last - 1); } + else { x = 0; p = PA + *(last - 1); } + for(a = first, len = middle - first, half = len >> 1, r = -1; + 0 < len; + len = half, half >>= 1) { + b = a + half; + q = ss_compare(T, PA + ((0 <= *b) ? *b : ~*b), p, depth); + if(q < 0) { + a = b + 1; + half -= (len & 1) ^ 1; + } else { + r = q; + } + } + if(a < middle) { + if(r == 0) { *a = ~*a; } + ss_rotate(a, middle, last); + last -= middle - a; + middle = a; + if(first == middle) { break; } + } + --last; + if(x != 0) { while(*--last < 0) { } } + if(middle == last) { break; } + } +} + + +/*---------------------------------------------------------------------------*/ + +/* Merge-forward with internal buffer. */ +static +void +ss_mergeforward(const unsigned char *T, const int *PA, + int *first, int *middle, int *last, + int *buf, int depth) { + int *a, *b, *c, *bufend; + int t; + int r; + + bufend = buf + (middle - first) - 1; + ss_blockswap(buf, first, middle - first); + + for(t = *(a = first), b = buf, c = middle;;) { + r = ss_compare(T, PA + *b, PA + *c, depth); + if(r < 0) { + do { + *a++ = *b; + if(bufend <= b) { *bufend = t; return; } + *b++ = *a; + } while(*b < 0); + } else if(r > 0) { + do { + *a++ = *c, *c++ = *a; + if(last <= c) { + while(b < bufend) { *a++ = *b, *b++ = *a; } + *a = *b, *b = t; + return; + } + } while(*c < 0); + } else { + *c = ~*c; + do { + *a++ = *b; + if(bufend <= b) { *bufend = t; return; } + *b++ = *a; + } while(*b < 0); + + do { + *a++ = *c, *c++ = *a; + if(last <= c) { + while(b < bufend) { *a++ = *b, *b++ = *a; } + *a = *b, *b = t; + return; + } + } while(*c < 0); + } + } +} + +/* Merge-backward with internal buffer. */ +static +void +ss_mergebackward(const unsigned char *T, const int *PA, + int *first, int *middle, int *last, + int *buf, int depth) { + const int *p1, *p2; + int *a, *b, *c, *bufend; + int t; + int r; + int x; + + bufend = buf + (last - middle) - 1; + ss_blockswap(buf, middle, last - middle); + + x = 0; + if(*bufend < 0) { p1 = PA + ~*bufend; x |= 1; } + else { p1 = PA + *bufend; } + if(*(middle - 1) < 0) { p2 = PA + ~*(middle - 1); x |= 2; } + else { p2 = PA + *(middle - 1); } + for(t = *(a = last - 1), b = bufend, c = middle - 1;;) { + r = ss_compare(T, p1, p2, depth); + if(0 < r) { + if(x & 1) { do { *a-- = *b, *b-- = *a; } while(*b < 0); x ^= 1; } + *a-- = *b; + if(b <= buf) { *buf = t; break; } + *b-- = *a; + if(*b < 0) { p1 = PA + ~*b; x |= 1; } + else { p1 = PA + *b; } + } else if(r < 0) { + if(x & 2) { do { *a-- = *c, *c-- = *a; } while(*c < 0); x ^= 2; } + *a-- = *c, *c-- = *a; + if(c < first) { + while(buf < b) { *a-- = *b, *b-- = *a; } + *a = *b, *b = t; + break; + } + if(*c < 0) { p2 = PA + ~*c; x |= 2; } + else { p2 = PA + *c; } + } else { + if(x & 1) { do { *a-- = *b, *b-- = *a; } while(*b < 0); x ^= 1; } + *a-- = ~*b; + if(b <= buf) { *buf = t; break; } + *b-- = *a; + if(x & 2) { do { *a-- = *c, *c-- = *a; } while(*c < 0); x ^= 2; } + *a-- = *c, *c-- = *a; + if(c < first) { + while(buf < b) { *a-- = *b, *b-- = *a; } + *a = *b, *b = t; + break; + } + if(*b < 0) { p1 = PA + ~*b; x |= 1; } + else { p1 = PA + *b; } + if(*c < 0) { p2 = PA + ~*c; x |= 2; } + else { p2 = PA + *c; } + } + } +} + +/* D&C based merge. */ +static +void +ss_swapmerge(const unsigned char *T, const int *PA, + int *first, int *middle, int *last, + int *buf, int bufsize, int depth) { +#define STACK_SIZE SS_SMERGE_STACKSIZE +#define GETIDX(a) ((0 <= (a)) ? (a) : (~(a))) +#define MERGE_CHECK(a, b, c)\ + do {\ + if(((c) & 1) ||\ + (((c) & 2) && (ss_compare(T, PA + GETIDX(*((a) - 1)), PA + *(a), depth) == 0))) {\ + *(a) = ~*(a);\ + }\ + if(((c) & 4) && ((ss_compare(T, PA + GETIDX(*((b) - 1)), PA + *(b), depth) == 0))) {\ + *(b) = ~*(b);\ + }\ + } while(0) + struct { int *a, *b, *c; int d; } stack[STACK_SIZE]; + int *l, *r, *lm, *rm; + int m, len, half; + int ssize; + int check, next; + + for(check = 0, ssize = 0;;) { + if((last - middle) <= bufsize) { + if((first < middle) && (middle < last)) { + ss_mergebackward(T, PA, first, middle, last, buf, depth); + } + MERGE_CHECK(first, last, check); + STACK_POP(first, middle, last, check); + continue; + } + + if((middle - first) <= bufsize) { + if(first < middle) { + ss_mergeforward(T, PA, first, middle, last, buf, depth); + } + MERGE_CHECK(first, last, check); + STACK_POP(first, middle, last, check); + continue; + } + + for(m = 0, len = MIN(middle - first, last - middle), half = len >> 1; + 0 < len; + len = half, half >>= 1) { + if(ss_compare(T, PA + GETIDX(*(middle + m + half)), + PA + GETIDX(*(middle - m - half - 1)), depth) < 0) { + m += half + 1; + half -= (len & 1) ^ 1; + } + } + + if(0 < m) { + lm = middle - m, rm = middle + m; + ss_blockswap(lm, middle, m); + l = r = middle, next = 0; + if(rm < last) { + if(*rm < 0) { + *rm = ~*rm; + if(first < lm) { for(; *--l < 0;) { } next |= 4; } + next |= 1; + } else if(first < lm) { + for(; *r < 0; ++r) { } + next |= 2; + } + } + + if((l - first) <= (last - r)) { + STACK_PUSH(r, rm, last, (next & 3) | (check & 4)); + middle = lm, last = l, check = (check & 3) | (next & 4); + } else { + if((next & 2) && (r == middle)) { next ^= 6; } + STACK_PUSH(first, lm, l, (check & 3) | (next & 4)); + first = r, middle = rm, check = (next & 3) | (check & 4); + } + } else { + if(ss_compare(T, PA + GETIDX(*(middle - 1)), PA + *middle, depth) == 0) { + *middle = ~*middle; + } + MERGE_CHECK(first, last, check); + STACK_POP(first, middle, last, check); + } + } +#undef STACK_SIZE +} + +#endif /* SS_BLOCKSIZE != 0 */ + + +/*---------------------------------------------------------------------------*/ + +/* Substring sort */ +static +void +sssort(const unsigned char *T, const int *PA, + int *first, int *last, + int *buf, int bufsize, + int depth, int n, int lastsuffix) { + int *a; +#if SS_BLOCKSIZE != 0 + int *b, *middle, *curbuf; + int j, k, curbufsize, limit; +#endif + int i; + + if(lastsuffix != 0) { ++first; } + +#if SS_BLOCKSIZE == 0 + ss_mintrosort(T, PA, first, last, depth); +#else + if((bufsize < SS_BLOCKSIZE) && + (bufsize < (last - first)) && + (bufsize < (limit = ss_isqrt(last - first)))) { + if(SS_BLOCKSIZE < limit) { limit = SS_BLOCKSIZE; } + buf = middle = last - limit, bufsize = limit; + } else { + middle = last, limit = 0; + } + for(a = first, i = 0; SS_BLOCKSIZE < (middle - a); a += SS_BLOCKSIZE, ++i) { +#if SS_INSERTIONSORT_THRESHOLD < SS_BLOCKSIZE + ss_mintrosort(T, PA, a, a + SS_BLOCKSIZE, depth); +#elif 1 < SS_BLOCKSIZE + ss_insertionsort(T, PA, a, a + SS_BLOCKSIZE, depth); +#endif + curbufsize = last - (a + SS_BLOCKSIZE); + curbuf = a + SS_BLOCKSIZE; + if(curbufsize <= bufsize) { curbufsize = bufsize, curbuf = buf; } + for(b = a, k = SS_BLOCKSIZE, j = i; j & 1; b -= k, k <<= 1, j >>= 1) { + ss_swapmerge(T, PA, b - k, b, b + k, curbuf, curbufsize, depth); + } + } +#if SS_INSERTIONSORT_THRESHOLD < SS_BLOCKSIZE + ss_mintrosort(T, PA, a, middle, depth); +#elif 1 < SS_BLOCKSIZE + ss_insertionsort(T, PA, a, middle, depth); +#endif + for(k = SS_BLOCKSIZE; i != 0; k <<= 1, i >>= 1) { + if(i & 1) { + ss_swapmerge(T, PA, a - k, a, middle, buf, bufsize, depth); + a -= k; + } + } + if(limit != 0) { +#if SS_INSERTIONSORT_THRESHOLD < SS_BLOCKSIZE + ss_mintrosort(T, PA, middle, last, depth); +#elif 1 < SS_BLOCKSIZE + ss_insertionsort(T, PA, middle, last, depth); +#endif + ss_inplacemerge(T, PA, first, middle, last, depth); + } +#endif + + if(lastsuffix != 0) { + /* Insert last type B* suffix. */ + int PAi[2]; PAi[0] = PA[*(first - 1)], PAi[1] = n - 2; + for(a = first, i = *(first - 1); + (a < last) && ((*a < 0) || (0 < ss_compare(T, &(PAi[0]), PA + *a, depth))); + ++a) { + *(a - 1) = *a; + } + *(a - 1) = i; + } +} + + +/*---------------------------------------------------------------------------*/ + +static INLINE +int +tr_ilg(int n) { + return (n & 0xffff0000) ? + ((n & 0xff000000) ? + 24 + lg_table[(n >> 24) & 0xff] : + 16 + lg_table[(n >> 16) & 0xff]) : + ((n & 0x0000ff00) ? + 8 + lg_table[(n >> 8) & 0xff] : + 0 + lg_table[(n >> 0) & 0xff]); +} + + +/*---------------------------------------------------------------------------*/ + +/* Simple insertionsort for small size groups. */ +static +void +tr_insertionsort(const int *ISAd, int *first, int *last) { + int *a, *b; + int t, r; + + for(a = first + 1; a < last; ++a) { + for(t = *a, b = a - 1; 0 > (r = ISAd[t] - ISAd[*b]);) { + do { *(b + 1) = *b; } while((first <= --b) && (*b < 0)); + if(b < first) { break; } + } + if(r == 0) { *b = ~*b; } + *(b + 1) = t; + } +} + + +/*---------------------------------------------------------------------------*/ + +static INLINE +void +tr_fixdown(const int *ISAd, int *SA, int i, int size) { + int j, k; + int v; + int c, d, e; + + for(v = SA[i], c = ISAd[v]; (j = 2 * i + 1) < size; SA[i] = SA[k], i = k) { + d = ISAd[SA[k = j++]]; + if(d < (e = ISAd[SA[j]])) { k = j; d = e; } + if(d <= c) { break; } + } + SA[i] = v; +} + +/* Simple top-down heapsort. */ +static +void +tr_heapsort(const int *ISAd, int *SA, int size) { + int i, m; + int t; + + m = size; + if((size % 2) == 0) { + m--; + if(ISAd[SA[m / 2]] < ISAd[SA[m]]) { SWAP(SA[m], SA[m / 2]); } + } + + for(i = m / 2 - 1; 0 <= i; --i) { tr_fixdown(ISAd, SA, i, m); } + if((size % 2) == 0) { SWAP(SA[0], SA[m]); tr_fixdown(ISAd, SA, 0, m); } + for(i = m - 1; 0 < i; --i) { + t = SA[0], SA[0] = SA[i]; + tr_fixdown(ISAd, SA, 0, i); + SA[i] = t; + } +} + + +/*---------------------------------------------------------------------------*/ + +/* Returns the median of three elements. */ +static INLINE +int * +tr_median3(const int *ISAd, int *v1, int *v2, int *v3) { + int *t; + if(ISAd[*v1] > ISAd[*v2]) { SWAP(v1, v2); } + if(ISAd[*v2] > ISAd[*v3]) { + if(ISAd[*v1] > ISAd[*v3]) { return v1; } + else { return v3; } + } + return v2; +} + +/* Returns the median of five elements. */ +static INLINE +int * +tr_median5(const int *ISAd, + int *v1, int *v2, int *v3, int *v4, int *v5) { + int *t; + if(ISAd[*v2] > ISAd[*v3]) { SWAP(v2, v3); } + if(ISAd[*v4] > ISAd[*v5]) { SWAP(v4, v5); } + if(ISAd[*v2] > ISAd[*v4]) { SWAP(v2, v4); SWAP(v3, v5); } + if(ISAd[*v1] > ISAd[*v3]) { SWAP(v1, v3); } + if(ISAd[*v1] > ISAd[*v4]) { SWAP(v1, v4); SWAP(v3, v5); } + if(ISAd[*v3] > ISAd[*v4]) { return v4; } + return v3; +} + +/* Returns the pivot element. */ +static INLINE +int * +tr_pivot(const int *ISAd, int *first, int *last) { + int *middle; + int t; + + t = last - first; + middle = first + t / 2; + + if(t <= 512) { + if(t <= 32) { + return tr_median3(ISAd, first, middle, last - 1); + } else { + t >>= 2; + return tr_median5(ISAd, first, first + t, middle, last - 1 - t, last - 1); + } + } + t >>= 3; + first = tr_median3(ISAd, first, first + t, first + (t << 1)); + middle = tr_median3(ISAd, middle - t, middle, middle + t); + last = tr_median3(ISAd, last - 1 - (t << 1), last - 1 - t, last - 1); + return tr_median3(ISAd, first, middle, last); +} + + +/*---------------------------------------------------------------------------*/ + +typedef struct _trbudget_t trbudget_t; +struct _trbudget_t { + int chance; + int remain; + int incval; + int count; +}; + +static INLINE +void +trbudget_init(trbudget_t *budget, int chance, int incval) { + budget->chance = chance; + budget->remain = budget->incval = incval; +} + +static INLINE +int +trbudget_check(trbudget_t *budget, int size) { + if(size <= budget->remain) { budget->remain -= size; return 1; } + if(budget->chance == 0) { budget->count += size; return 0; } + budget->remain += budget->incval - size; + budget->chance -= 1; + return 1; +} + + +/*---------------------------------------------------------------------------*/ + +static INLINE +void +tr_partition(const int *ISAd, + int *first, int *middle, int *last, + int **pa, int **pb, int v) { + int *a, *b, *c, *d, *e, *f; + int t, s; + int x = 0; + + for(b = middle - 1; (++b < last) && ((x = ISAd[*b]) == v);) { } + if(((a = b) < last) && (x < v)) { + for(; (++b < last) && ((x = ISAd[*b]) <= v);) { + if(x == v) { SWAP(*b, *a); ++a; } + } + } + for(c = last; (b < --c) && ((x = ISAd[*c]) == v);) { } + if((b < (d = c)) && (x > v)) { + for(; (b < --c) && ((x = ISAd[*c]) >= v);) { + if(x == v) { SWAP(*c, *d); --d; } + } + } + for(; b < c;) { + SWAP(*b, *c); + for(; (++b < c) && ((x = ISAd[*b]) <= v);) { + if(x == v) { SWAP(*b, *a); ++a; } + } + for(; (b < --c) && ((x = ISAd[*c]) >= v);) { + if(x == v) { SWAP(*c, *d); --d; } + } + } + + if(a <= d) { + c = b - 1; + if((s = a - first) > (t = b - a)) { s = t; } + for(e = first, f = b - s; 0 < s; --s, ++e, ++f) { SWAP(*e, *f); } + if((s = d - c) > (t = last - d - 1)) { s = t; } + for(e = b, f = last - s; 0 < s; --s, ++e, ++f) { SWAP(*e, *f); } + first += (b - a), last -= (d - c); + } + *pa = first, *pb = last; +} + +static +void +tr_copy(int *ISA, const int *SA, + int *first, int *a, int *b, int *last, + int depth) { + /* sort suffixes of middle partition + by using sorted order of suffixes of left and right partition. */ + int *c, *d, *e; + int s, v; + + v = b - SA - 1; + for(c = first, d = a - 1; c <= d; ++c) { + if((0 <= (s = *c - depth)) && (ISA[s] == v)) { + *++d = s; + ISA[s] = d - SA; + } + } + for(c = last - 1, e = d + 1, d = b; e < d; --c) { + if((0 <= (s = *c - depth)) && (ISA[s] == v)) { + *--d = s; + ISA[s] = d - SA; + } + } +} + +static +void +tr_partialcopy(int *ISA, const int *SA, + int *first, int *a, int *b, int *last, + int depth) { + int *c, *d, *e; + int s, v; + int rank, lastrank, newrank = -1; + + v = b - SA - 1; + lastrank = -1; + for(c = first, d = a - 1; c <= d; ++c) { + if((0 <= (s = *c - depth)) && (ISA[s] == v)) { + *++d = s; + rank = ISA[s + depth]; + if(lastrank != rank) { lastrank = rank; newrank = d - SA; } + ISA[s] = newrank; + } + } + + lastrank = -1; + for(e = d; first <= e; --e) { + rank = ISA[*e]; + if(lastrank != rank) { lastrank = rank; newrank = e - SA; } + if(newrank != rank) { ISA[*e] = newrank; } + } + + lastrank = -1; + for(c = last - 1, e = d + 1, d = b; e < d; --c) { + if((0 <= (s = *c - depth)) && (ISA[s] == v)) { + *--d = s; + rank = ISA[s + depth]; + if(lastrank != rank) { lastrank = rank; newrank = d - SA; } + ISA[s] = newrank; + } + } +} + +static +void +tr_introsort(int *ISA, const int *ISAd, + int *SA, int *first, int *last, + trbudget_t *budget) { +#define STACK_SIZE TR_STACKSIZE + struct { const int *a; int *b, *c; int d, e; }stack[STACK_SIZE]; + int *a, *b, *c; + int t; + int v, x = 0; + int incr = ISAd - ISA; + int limit, next; + int ssize, trlink = -1; + + for(ssize = 0, limit = tr_ilg(last - first);;) { + + if(limit < 0) { + if(limit == -1) { + /* tandem repeat partition */ + tr_partition(ISAd - incr, first, first, last, &a, &b, last - SA - 1); + + /* update ranks */ + if(a < last) { + for(c = first, v = a - SA - 1; c < a; ++c) { ISA[*c] = v; } + } + if(b < last) { + for(c = a, v = b - SA - 1; c < b; ++c) { ISA[*c] = v; } + } + + /* push */ + if(1 < (b - a)) { + STACK_PUSH5(NULL, a, b, 0, 0); + STACK_PUSH5(ISAd - incr, first, last, -2, trlink); + trlink = ssize - 2; + } + if((a - first) <= (last - b)) { + if(1 < (a - first)) { + STACK_PUSH5(ISAd, b, last, tr_ilg(last - b), trlink); + last = a, limit = tr_ilg(a - first); + } else if(1 < (last - b)) { + first = b, limit = tr_ilg(last - b); + } else { + STACK_POP5(ISAd, first, last, limit, trlink); + } + } else { + if(1 < (last - b)) { + STACK_PUSH5(ISAd, first, a, tr_ilg(a - first), trlink); + first = b, limit = tr_ilg(last - b); + } else if(1 < (a - first)) { + last = a, limit = tr_ilg(a - first); + } else { + STACK_POP5(ISAd, first, last, limit, trlink); + } + } + } else if(limit == -2) { + /* tandem repeat copy */ + a = stack[--ssize].b, b = stack[ssize].c; + if(stack[ssize].d == 0) { + tr_copy(ISA, SA, first, a, b, last, ISAd - ISA); + } else { + if(0 <= trlink) { stack[trlink].d = -1; } + tr_partialcopy(ISA, SA, first, a, b, last, ISAd - ISA); + } + STACK_POP5(ISAd, first, last, limit, trlink); + } else { + /* sorted partition */ + if(0 <= *first) { + a = first; + do { ISA[*a] = a - SA; } while((++a < last) && (0 <= *a)); + first = a; + } + if(first < last) { + a = first; do { *a = ~*a; } while(*++a < 0); + next = (ISA[*a] != ISAd[*a]) ? tr_ilg(a - first + 1) : -1; + if(++a < last) { for(b = first, v = a - SA - 1; b < a; ++b) { ISA[*b] = v; } } + + /* push */ + if(trbudget_check(budget, a - first)) { + if((a - first) <= (last - a)) { + STACK_PUSH5(ISAd, a, last, -3, trlink); + ISAd += incr, last = a, limit = next; + } else { + if(1 < (last - a)) { + STACK_PUSH5(ISAd + incr, first, a, next, trlink); + first = a, limit = -3; + } else { + ISAd += incr, last = a, limit = next; + } + } + } else { + if(0 <= trlink) { stack[trlink].d = -1; } + if(1 < (last - a)) { + first = a, limit = -3; + } else { + STACK_POP5(ISAd, first, last, limit, trlink); + } + } + } else { + STACK_POP5(ISAd, first, last, limit, trlink); + } + } + continue; + } + + if((last - first) <= TR_INSERTIONSORT_THRESHOLD) { + tr_insertionsort(ISAd, first, last); + limit = -3; + continue; + } + + if(limit-- == 0) { + tr_heapsort(ISAd, first, last - first); + for(a = last - 1; first < a; a = b) { + for(x = ISAd[*a], b = a - 1; (first <= b) && (ISAd[*b] == x); --b) { *b = ~*b; } + } + limit = -3; + continue; + } + + /* choose pivot */ + a = tr_pivot(ISAd, first, last); + SWAP(*first, *a); + v = ISAd[*first]; + + /* partition */ + tr_partition(ISAd, first, first + 1, last, &a, &b, v); + if((last - first) != (b - a)) { + next = (ISA[*a] != v) ? tr_ilg(b - a) : -1; + + /* update ranks */ + for(c = first, v = a - SA - 1; c < a; ++c) { ISA[*c] = v; } + if(b < last) { for(c = a, v = b - SA - 1; c < b; ++c) { ISA[*c] = v; } } + + /* push */ + if((1 < (b - a)) && (trbudget_check(budget, b - a))) { + if((a - first) <= (last - b)) { + if((last - b) <= (b - a)) { + if(1 < (a - first)) { + STACK_PUSH5(ISAd + incr, a, b, next, trlink); + STACK_PUSH5(ISAd, b, last, limit, trlink); + last = a; + } else if(1 < (last - b)) { + STACK_PUSH5(ISAd + incr, a, b, next, trlink); + first = b; + } else { + ISAd += incr, first = a, last = b, limit = next; + } + } else if((a - first) <= (b - a)) { + if(1 < (a - first)) { + STACK_PUSH5(ISAd, b, last, limit, trlink); + STACK_PUSH5(ISAd + incr, a, b, next, trlink); + last = a; + } else { + STACK_PUSH5(ISAd, b, last, limit, trlink); + ISAd += incr, first = a, last = b, limit = next; + } + } else { + STACK_PUSH5(ISAd, b, last, limit, trlink); + STACK_PUSH5(ISAd, first, a, limit, trlink); + ISAd += incr, first = a, last = b, limit = next; + } + } else { + if((a - first) <= (b - a)) { + if(1 < (last - b)) { + STACK_PUSH5(ISAd + incr, a, b, next, trlink); + STACK_PUSH5(ISAd, first, a, limit, trlink); + first = b; + } else if(1 < (a - first)) { + STACK_PUSH5(ISAd + incr, a, b, next, trlink); + last = a; + } else { + ISAd += incr, first = a, last = b, limit = next; + } + } else if((last - b) <= (b - a)) { + if(1 < (last - b)) { + STACK_PUSH5(ISAd, first, a, limit, trlink); + STACK_PUSH5(ISAd + incr, a, b, next, trlink); + first = b; + } else { + STACK_PUSH5(ISAd, first, a, limit, trlink); + ISAd += incr, first = a, last = b, limit = next; + } + } else { + STACK_PUSH5(ISAd, first, a, limit, trlink); + STACK_PUSH5(ISAd, b, last, limit, trlink); + ISAd += incr, first = a, last = b, limit = next; + } + } + } else { + if((1 < (b - a)) && (0 <= trlink)) { stack[trlink].d = -1; } + if((a - first) <= (last - b)) { + if(1 < (a - first)) { + STACK_PUSH5(ISAd, b, last, limit, trlink); + last = a; + } else if(1 < (last - b)) { + first = b; + } else { + STACK_POP5(ISAd, first, last, limit, trlink); + } + } else { + if(1 < (last - b)) { + STACK_PUSH5(ISAd, first, a, limit, trlink); + first = b; + } else if(1 < (a - first)) { + last = a; + } else { + STACK_POP5(ISAd, first, last, limit, trlink); + } + } + } + } else { + if(trbudget_check(budget, last - first)) { + limit = tr_ilg(last - first), ISAd += incr; + } else { + if(0 <= trlink) { stack[trlink].d = -1; } + STACK_POP5(ISAd, first, last, limit, trlink); + } + } + } +#undef STACK_SIZE +} + + + +/*---------------------------------------------------------------------------*/ + +/* Tandem repeat sort */ +static +void +trsort(int *ISA, int *SA, int n, int depth) { + int *ISAd; + int *first, *last; + trbudget_t budget; + int t, skip, unsorted; + + trbudget_init(&budget, tr_ilg(n) * 2 / 3, n); +/* trbudget_init(&budget, tr_ilg(n) * 3 / 4, n); */ + for(ISAd = ISA + depth; -n < *SA; ISAd += ISAd - ISA) { + first = SA; + skip = 0; + unsorted = 0; + do { + if((t = *first) < 0) { first -= t; skip += t; } + else { + if(skip != 0) { *(first + skip) = skip; skip = 0; } + last = SA + ISA[t] + 1; + if(1 < (last - first)) { + budget.count = 0; + tr_introsort(ISA, ISAd, SA, first, last, &budget); + if(budget.count != 0) { unsorted += budget.count; } + else { skip = first - last; } + } else if((last - first) == 1) { + skip = -1; + } + first = last; + } + } while(first < (SA + n)); + if(skip != 0) { *(first + skip) = skip; } + if(unsorted == 0) { break; } + } +} + + +/*---------------------------------------------------------------------------*/ + +/* Sorts suffixes of type B*. */ +static +int +sort_typeBstar(const unsigned char *T, int *SA, + int *bucket_A, int *bucket_B, + int n, int openMP) { + int *PAb, *ISAb, *buf; +#ifdef LIBBSC_OPENMP + int *curbuf; + int l; +#endif + int i, j, k, t, m, bufsize; + int c0, c1; +#ifdef LIBBSC_OPENMP + int d0, d1; +#endif + (void)openMP; + + /* Initialize bucket arrays. */ + for(i = 0; i < BUCKET_A_SIZE; ++i) { bucket_A[i] = 0; } + for(i = 0; i < BUCKET_B_SIZE; ++i) { bucket_B[i] = 0; } + + /* Count the number of occurrences of the first one or two characters of each + type A, B and B* suffix. Moreover, store the beginning position of all + type B* suffixes into the array SA. */ + for(i = n - 1, m = n, c0 = T[n - 1]; 0 <= i;) { + /* type A suffix. */ + do { ++BUCKET_A(c1 = c0); } while((0 <= --i) && ((c0 = T[i]) >= c1)); + if(0 <= i) { + /* type B* suffix. */ + ++BUCKET_BSTAR(c0, c1); + SA[--m] = i; + /* type B suffix. */ + for(--i, c1 = c0; (0 <= i) && ((c0 = T[i]) <= c1); --i, c1 = c0) { + ++BUCKET_B(c0, c1); + } + } + } + m = n - m; +/* +note: + A type B* suffix is lexicographically smaller than a type B suffix that + begins with the same first two characters. +*/ + + /* Calculate the index of start/end point of each bucket. */ + for(c0 = 0, i = 0, j = 0; c0 < ALPHABET_SIZE; ++c0) { + t = i + BUCKET_A(c0); + BUCKET_A(c0) = i + j; /* start point */ + i = t + BUCKET_B(c0, c0); + for(c1 = c0 + 1; c1 < ALPHABET_SIZE; ++c1) { + j += BUCKET_BSTAR(c0, c1); + BUCKET_BSTAR(c0, c1) = j; /* end point */ + i += BUCKET_B(c0, c1); + } + } + + if(0 < m) { + /* Sort the type B* suffixes by their first two characters. */ + PAb = SA + n - m; ISAb = SA + m; + for(i = m - 2; 0 <= i; --i) { + t = PAb[i], c0 = T[t], c1 = T[t + 1]; + SA[--BUCKET_BSTAR(c0, c1)] = i; + } + t = PAb[m - 1], c0 = T[t], c1 = T[t + 1]; + SA[--BUCKET_BSTAR(c0, c1)] = m - 1; + + /* Sort the type B* substrings using sssort. */ +#ifdef LIBBSC_OPENMP + if (openMP) + { + buf = SA + m; + c0 = ALPHABET_SIZE - 2, c1 = ALPHABET_SIZE - 1, j = m; +#pragma omp parallel default(shared) private(bufsize, curbuf, k, l, d0, d1) + { + bufsize = (n - (2 * m)) / omp_get_num_threads(); + curbuf = buf + omp_get_thread_num() * bufsize; + k = 0; + for(;;) { + #pragma omp critical(sssort_lock) + { + if(0 < (l = j)) { + d0 = c0, d1 = c1; + do { + k = BUCKET_BSTAR(d0, d1); + if(--d1 <= d0) { + d1 = ALPHABET_SIZE - 1; + if(--d0 < 0) { break; } + } + } while(((l - k) <= 1) && (0 < (l = k))); + c0 = d0, c1 = d1, j = k; + } + } + if(l == 0) { break; } + sssort(T, PAb, SA + k, SA + l, + curbuf, bufsize, 2, n, *(SA + k) == (m - 1)); + } + } + } + else + { + buf = SA + m, bufsize = n - (2 * m); + for(c0 = ALPHABET_SIZE - 2, j = m; 0 < j; --c0) { + for(c1 = ALPHABET_SIZE - 1; c0 < c1; j = i, --c1) { + i = BUCKET_BSTAR(c0, c1); + if(1 < (j - i)) { + sssort(T, PAb, SA + i, SA + j, + buf, bufsize, 2, n, *(SA + i) == (m - 1)); + } + } + } + } +#else + buf = SA + m, bufsize = n - (2 * m); + for(c0 = ALPHABET_SIZE - 2, j = m; 0 < j; --c0) { + for(c1 = ALPHABET_SIZE - 1; c0 < c1; j = i, --c1) { + i = BUCKET_BSTAR(c0, c1); + if(1 < (j - i)) { + sssort(T, PAb, SA + i, SA + j, + buf, bufsize, 2, n, *(SA + i) == (m - 1)); + } + } + } +#endif + + /* Compute ranks of type B* substrings. */ + for(i = m - 1; 0 <= i; --i) { + if(0 <= SA[i]) { + j = i; + do { ISAb[SA[i]] = i; } while((0 <= --i) && (0 <= SA[i])); + SA[i + 1] = i - j; + if(i <= 0) { break; } + } + j = i; + do { ISAb[SA[i] = ~SA[i]] = j; } while(SA[--i] < 0); + ISAb[SA[i]] = j; + } + + /* Construct the inverse suffix array of type B* suffixes using trsort. */ + trsort(ISAb, SA, m, 1); + + /* Set the sorted order of type B* suffixes. */ + for(i = n - 1, j = m, c0 = T[n - 1]; 0 <= i;) { + for(--i, c1 = c0; (0 <= i) && ((c0 = T[i]) >= c1); --i, c1 = c0) { } + if(0 <= i) { + t = i; + for(--i, c1 = c0; (0 <= i) && ((c0 = T[i]) <= c1); --i, c1 = c0) { } + SA[ISAb[--j]] = ((t == 0) || (1 < (t - i))) ? t : ~t; + } + } + + /* Calculate the index of start/end point of each bucket. */ + BUCKET_B(ALPHABET_SIZE - 1, ALPHABET_SIZE - 1) = n; /* end point */ + for(c0 = ALPHABET_SIZE - 2, k = m - 1; 0 <= c0; --c0) { + i = BUCKET_A(c0 + 1) - 1; + for(c1 = ALPHABET_SIZE - 1; c0 < c1; --c1) { + t = i - BUCKET_B(c0, c1); + BUCKET_B(c0, c1) = i; /* end point */ + + /* Move all type B* suffixes to the correct position. */ + for(i = t, j = BUCKET_BSTAR(c0, c1); + j <= k; + --i, --k) { SA[i] = SA[k]; } + } + BUCKET_BSTAR(c0, c0 + 1) = i - BUCKET_B(c0, c0) + 1; /* start point */ + BUCKET_B(c0, c0) = i; /* end point */ + } + } + + return m; +} + +/* Constructs the suffix array by using the sorted order of type B* suffixes. */ +static +void +construct_SA(const unsigned char *T, int *SA, + int *bucket_A, int *bucket_B, + int n, int m) { + int *i, *j, *k; + int s; + int c0, c1, c2; + + if(0 < m) { + /* Construct the sorted order of type B suffixes by using + the sorted order of type B* suffixes. */ + for(c1 = ALPHABET_SIZE - 2; 0 <= c1; --c1) { + /* Scan the suffix array from right to left. */ + for(i = SA + BUCKET_BSTAR(c1, c1 + 1), + j = SA + BUCKET_A(c1 + 1) - 1, k = NULL, c2 = -1; + i <= j; + --j) { + if(0 < (s = *j)) { + assert(T[s] == c1); + assert(((s + 1) < n) && (T[s] <= T[s + 1])); + assert(T[s - 1] <= T[s]); + *j = ~s; + c0 = T[--s]; + if((0 < s) && (T[s - 1] > c0)) { s = ~s; } + if(c0 != c2) { + if(0 <= c2) { BUCKET_B(c2, c1) = k - SA; } + k = SA + BUCKET_B(c2 = c0, c1); + } + assert(k < j); assert(k != NULL); + *k-- = s; + } else { + assert(((s == 0) && (T[s] == c1)) || (s < 0)); + *j = ~s; + } + } + } + } + + /* Construct the suffix array by using + the sorted order of type B suffixes. */ + k = SA + BUCKET_A(c2 = T[n - 1]); + *k++ = (T[n - 2] < c2) ? ~(n - 1) : (n - 1); + /* Scan the suffix array from left to right. */ + for(i = SA, j = SA + n; i < j; ++i) { + if(0 < (s = *i)) { + assert(T[s - 1] >= T[s]); + c0 = T[--s]; + if((s == 0) || (T[s - 1] < c0)) { s = ~s; } + if(c0 != c2) { + BUCKET_A(c2) = k - SA; + k = SA + BUCKET_A(c2 = c0); + } + assert(i < k); + *k++ = s; + } else { + assert(s < 0); + *i = ~s; + } + } +} + +/* Constructs the burrows-wheeler transformed string directly + by using the sorted order of type B* suffixes. */ +static +int +construct_BWT(const unsigned char *T, int *SA, + int *bucket_A, int *bucket_B, + int n, int m) { + int *i, *j, *k, *orig; + int s; + int c0, c1, c2; + + if(0 < m) { + /* Construct the sorted order of type B suffixes by using + the sorted order of type B* suffixes. */ + for(c1 = ALPHABET_SIZE - 2; 0 <= c1; --c1) { + /* Scan the suffix array from right to left. */ + for(i = SA + BUCKET_BSTAR(c1, c1 + 1), + j = SA + BUCKET_A(c1 + 1) - 1, k = NULL, c2 = -1; + i <= j; + --j) { + if(0 < (s = *j)) { + assert(T[s] == c1); + assert(((s + 1) < n) && (T[s] <= T[s + 1])); + assert(T[s - 1] <= T[s]); + c0 = T[--s]; + *j = ~((int)c0); + if((0 < s) && (T[s - 1] > c0)) { s = ~s; } + if(c0 != c2) { + if(0 <= c2) { BUCKET_B(c2, c1) = k - SA; } + k = SA + BUCKET_B(c2 = c0, c1); + } + assert(k < j); assert(k != NULL); + *k-- = s; + } else if(s != 0) { + *j = ~s; +#ifndef NDEBUG + } else { + assert(T[s] == c1); +#endif + } + } + } + } + + /* Construct the BWTed string by using + the sorted order of type B suffixes. */ + k = SA + BUCKET_A(c2 = T[n - 1]); + *k++ = (T[n - 2] < c2) ? ~((int)T[n - 2]) : (n - 1); + /* Scan the suffix array from left to right. */ + for(i = SA, j = SA + n, orig = SA; i < j; ++i) { + if(0 < (s = *i)) { + assert(T[s - 1] >= T[s]); + c0 = T[--s]; + *i = c0; + if((0 < s) && (T[s - 1] < c0)) { s = ~((int)T[s - 1]); } + if(c0 != c2) { + BUCKET_A(c2) = k - SA; + k = SA + BUCKET_A(c2 = c0); + } + assert(i < k); + *k++ = s; + } else if(s != 0) { + *i = ~s; + } else { + orig = i; + } + } + + return orig - SA; +} + +/* Constructs the burrows-wheeler transformed string directly + by using the sorted order of type B* suffixes. */ +static +int +construct_BWT_indexes(const unsigned char *T, int *SA, + int *bucket_A, int *bucket_B, + int n, int m, + unsigned char * num_indexes, int * indexes) { + int *i, *j, *k, *orig; + int s; + int c0, c1, c2; + + int mod = n / 8; + { + mod |= mod >> 1; mod |= mod >> 2; + mod |= mod >> 4; mod |= mod >> 8; + mod |= mod >> 16; mod >>= 1; + + *num_indexes = (unsigned char)((n - 1) / (mod + 1)); + } + + if(0 < m) { + /* Construct the sorted order of type B suffixes by using + the sorted order of type B* suffixes. */ + for(c1 = ALPHABET_SIZE - 2; 0 <= c1; --c1) { + /* Scan the suffix array from right to left. */ + for(i = SA + BUCKET_BSTAR(c1, c1 + 1), + j = SA + BUCKET_A(c1 + 1) - 1, k = NULL, c2 = -1; + i <= j; + --j) { + if(0 < (s = *j)) { + assert(T[s] == c1); + assert(((s + 1) < n) && (T[s] <= T[s + 1])); + assert(T[s - 1] <= T[s]); + + if ((s & mod) == 0) indexes[s / (mod + 1) - 1] = j - SA; + + c0 = T[--s]; + *j = ~((int)c0); + if((0 < s) && (T[s - 1] > c0)) { s = ~s; } + if(c0 != c2) { + if(0 <= c2) { BUCKET_B(c2, c1) = k - SA; } + k = SA + BUCKET_B(c2 = c0, c1); + } + assert(k < j); assert(k != NULL); + *k-- = s; + } else if(s != 0) { + *j = ~s; +#ifndef NDEBUG + } else { + assert(T[s] == c1); +#endif + } + } + } + } + + /* Construct the BWTed string by using + the sorted order of type B suffixes. */ + k = SA + BUCKET_A(c2 = T[n - 1]); + if (T[n - 2] < c2) { + if (((n - 1) & mod) == 0) indexes[(n - 1) / (mod + 1) - 1] = k - SA; + *k++ = ~((int)T[n - 2]); + } + else { + *k++ = n - 1; + } + + /* Scan the suffix array from left to right. */ + for(i = SA, j = SA + n, orig = SA; i < j; ++i) { + if(0 < (s = *i)) { + assert(T[s - 1] >= T[s]); + + if ((s & mod) == 0) indexes[s / (mod + 1) - 1] = i - SA; + + c0 = T[--s]; + *i = c0; + if(c0 != c2) { + BUCKET_A(c2) = k - SA; + k = SA + BUCKET_A(c2 = c0); + } + assert(i < k); + if((0 < s) && (T[s - 1] < c0)) { + if ((s & mod) == 0) indexes[s / (mod + 1) - 1] = k - SA; + *k++ = ~((int)T[s - 1]); + } else + *k++ = s; + } else if(s != 0) { + *i = ~s; + } else { + orig = i; + } + } + + return orig - SA; +} + + +/*---------------------------------------------------------------------------*/ + +/*- Function -*/ + +int +divsufsort(const unsigned char *T, int *SA, int n, int openMP) { + int *bucket_A, *bucket_B; + int m; + int err = 0; + + /* Check arguments. */ + if((T == NULL) || (SA == NULL) || (n < 0)) { return -1; } + else if(n == 0) { return 0; } + else if(n == 1) { SA[0] = 0; return 0; } + else if(n == 2) { m = (T[0] < T[1]); SA[m ^ 1] = 0, SA[m] = 1; return 0; } + + bucket_A = (int *)malloc(BUCKET_A_SIZE * sizeof(int)); + bucket_B = (int *)malloc(BUCKET_B_SIZE * sizeof(int)); + + /* Suffixsort. */ + if((bucket_A != NULL) && (bucket_B != NULL)) { + m = sort_typeBstar(T, SA, bucket_A, bucket_B, n, openMP); + construct_SA(T, SA, bucket_A, bucket_B, n, m); + } else { + err = -2; + } + + free(bucket_B); + free(bucket_A); + + return err; +} + +int +divbwt(const unsigned char *T, unsigned char *U, int *A, int n, unsigned char * num_indexes, int * indexes, int openMP) { + int *B; + int *bucket_A, *bucket_B; + int m, pidx, i; + + /* Check arguments. */ + if((T == NULL) || (U == NULL) || (n < 0)) { return -1; } + else if(n <= 1) { if(n == 1) { U[0] = T[0]; } return n; } + + if((B = A) == NULL) { B = (int *)malloc((size_t)(n + 1) * sizeof(int)); } + bucket_A = (int *)malloc(BUCKET_A_SIZE * sizeof(int)); + bucket_B = (int *)malloc(BUCKET_B_SIZE * sizeof(int)); + + /* Burrows-Wheeler Transform. */ + if((B != NULL) && (bucket_A != NULL) && (bucket_B != NULL)) { + m = sort_typeBstar(T, B, bucket_A, bucket_B, n, openMP); + + if (num_indexes == NULL || indexes == NULL) { + pidx = construct_BWT(T, B, bucket_A, bucket_B, n, m); + } else { + pidx = construct_BWT_indexes(T, B, bucket_A, bucket_B, n, m, num_indexes, indexes); + } + + /* Copy to output string. */ + U[0] = T[n - 1]; + for(i = 0; i < pidx; ++i) { U[i + 1] = (unsigned char)B[i]; } + for(i += 1; i < n; ++i) { U[i] = (unsigned char)B[i]; } + pidx += 1; + } else { + pidx = -2; + } + + free(bucket_B); + free(bucket_A); + if(A == NULL) { free(B); } + + return pidx; +} diff --git a/deps/zstd/lib/dictBuilder/divsufsort.h b/deps/zstd/lib/dictBuilder/divsufsort.h new file mode 100644 index 00000000000000..5440994af15c1b --- /dev/null +++ b/deps/zstd/lib/dictBuilder/divsufsort.h @@ -0,0 +1,67 @@ +/* + * divsufsort.h for libdivsufsort-lite + * Copyright (c) 2003-2008 Yuta Mori All Rights Reserved. + * + * 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. + */ + +#ifndef _DIVSUFSORT_H +#define _DIVSUFSORT_H 1 + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + + +/*- Prototypes -*/ + +/** + * Constructs the suffix array of a given string. + * @param T [0..n-1] The input string. + * @param SA [0..n-1] The output array of suffixes. + * @param n The length of the given string. + * @param openMP enables OpenMP optimization. + * @return 0 if no error occurred, -1 or -2 otherwise. + */ +int +divsufsort(const unsigned char *T, int *SA, int n, int openMP); + +/** + * Constructs the burrows-wheeler transformed string of a given string. + * @param T [0..n-1] The input string. + * @param U [0..n-1] The output string. (can be T) + * @param A [0..n-1] The temporary array. (can be NULL) + * @param n The length of the given string. + * @param num_indexes The length of secondary indexes array. (can be NULL) + * @param indexes The secondary indexes array. (can be NULL) + * @param openMP enables OpenMP optimization. + * @return The primary index if no error occurred, -1 or -2 otherwise. + */ +int +divbwt(const unsigned char *T, unsigned char *U, int *A, int n, unsigned char * num_indexes, int * indexes, int openMP); + + +#ifdef __cplusplus +} /* extern "C" */ +#endif /* __cplusplus */ + +#endif /* _DIVSUFSORT_H */ diff --git a/deps/zstd/lib/dictBuilder/fastcover.c b/deps/zstd/lib/dictBuilder/fastcover.c new file mode 100644 index 00000000000000..a958eb337f10d8 --- /dev/null +++ b/deps/zstd/lib/dictBuilder/fastcover.c @@ -0,0 +1,766 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/*-************************************* +* Dependencies +***************************************/ +#include /* fprintf */ +#include /* malloc, free, qsort */ +#include /* memset */ +#include /* clock */ + +#ifndef ZDICT_STATIC_LINKING_ONLY +# define ZDICT_STATIC_LINKING_ONLY +#endif + +#include "../common/mem.h" /* read */ +#include "../common/pool.h" +#include "../common/threading.h" +#include "../common/zstd_internal.h" /* includes zstd.h */ +#include "../compress/zstd_compress_internal.h" /* ZSTD_hash*() */ +#include "../zdict.h" +#include "cover.h" + + +/*-************************************* +* Constants +***************************************/ +/** +* There are 32bit indexes used to ref samples, so limit samples size to 4GB +* on 64bit builds. +* For 32bit builds we choose 1 GB. +* Most 32bit platforms have 2GB user-mode addressable space and we allocate a large +* contiguous buffer, so 1GB is already a high limit. +*/ +#define FASTCOVER_MAX_SAMPLES_SIZE (sizeof(size_t) == 8 ? ((unsigned)-1) : ((unsigned)1 GB)) +#define FASTCOVER_MAX_F 31 +#define FASTCOVER_MAX_ACCEL 10 +#define FASTCOVER_DEFAULT_SPLITPOINT 0.75 +#define DEFAULT_F 20 +#define DEFAULT_ACCEL 1 + + +/*-************************************* +* Console display +***************************************/ +#ifndef LOCALDISPLAYLEVEL +static int g_displayLevel = 0; +#endif +#undef DISPLAY +#define DISPLAY(...) \ + { \ + fprintf(stderr, __VA_ARGS__); \ + fflush(stderr); \ + } +#undef LOCALDISPLAYLEVEL +#define LOCALDISPLAYLEVEL(displayLevel, l, ...) \ + if (displayLevel >= l) { \ + DISPLAY(__VA_ARGS__); \ + } /* 0 : no display; 1: errors; 2: default; 3: details; 4: debug */ +#undef DISPLAYLEVEL +#define DISPLAYLEVEL(l, ...) LOCALDISPLAYLEVEL(g_displayLevel, l, __VA_ARGS__) + +#ifndef LOCALDISPLAYUPDATE +static const clock_t g_refreshRate = CLOCKS_PER_SEC * 15 / 100; +static clock_t g_time = 0; +#endif +#undef LOCALDISPLAYUPDATE +#define LOCALDISPLAYUPDATE(displayLevel, l, ...) \ + if (displayLevel >= l) { \ + if ((clock() - g_time > g_refreshRate) || (displayLevel >= 4)) { \ + g_time = clock(); \ + DISPLAY(__VA_ARGS__); \ + } \ + } +#undef DISPLAYUPDATE +#define DISPLAYUPDATE(l, ...) LOCALDISPLAYUPDATE(g_displayLevel, l, __VA_ARGS__) + + +/*-************************************* +* Hash Functions +***************************************/ +/** + * Hash the d-byte value pointed to by p and mod 2^f into the frequency vector + */ +static size_t FASTCOVER_hashPtrToIndex(const void* p, U32 f, unsigned d) { + if (d == 6) { + return ZSTD_hash6Ptr(p, f); + } + return ZSTD_hash8Ptr(p, f); +} + + +/*-************************************* +* Acceleration +***************************************/ +typedef struct { + unsigned finalize; /* Percentage of training samples used for ZDICT_finalizeDictionary */ + unsigned skip; /* Number of dmer skipped between each dmer counted in computeFrequency */ +} FASTCOVER_accel_t; + + +static const FASTCOVER_accel_t FASTCOVER_defaultAccelParameters[FASTCOVER_MAX_ACCEL+1] = { + { 100, 0 }, /* accel = 0, should not happen because accel = 0 defaults to accel = 1 */ + { 100, 0 }, /* accel = 1 */ + { 50, 1 }, /* accel = 2 */ + { 34, 2 }, /* accel = 3 */ + { 25, 3 }, /* accel = 4 */ + { 20, 4 }, /* accel = 5 */ + { 17, 5 }, /* accel = 6 */ + { 14, 6 }, /* accel = 7 */ + { 13, 7 }, /* accel = 8 */ + { 11, 8 }, /* accel = 9 */ + { 10, 9 }, /* accel = 10 */ +}; + + +/*-************************************* +* Context +***************************************/ +typedef struct { + const BYTE *samples; + size_t *offsets; + const size_t *samplesSizes; + size_t nbSamples; + size_t nbTrainSamples; + size_t nbTestSamples; + size_t nbDmers; + U32 *freqs; + unsigned d; + unsigned f; + FASTCOVER_accel_t accelParams; +} FASTCOVER_ctx_t; + + +/*-************************************* +* Helper functions +***************************************/ +/** + * Selects the best segment in an epoch. + * Segments of are scored according to the function: + * + * Let F(d) be the frequency of all dmers with hash value d. + * Let S_i be hash value of the dmer at position i of segment S which has length k. + * + * Score(S) = F(S_1) + F(S_2) + ... + F(S_{k-d+1}) + * + * Once the dmer with hash value d is in the dictionary we set F(d) = 0. + */ +static COVER_segment_t FASTCOVER_selectSegment(const FASTCOVER_ctx_t *ctx, + U32 *freqs, U32 begin, U32 end, + ZDICT_cover_params_t parameters, + U16* segmentFreqs) { + /* Constants */ + const U32 k = parameters.k; + const U32 d = parameters.d; + const U32 f = ctx->f; + const U32 dmersInK = k - d + 1; + + /* Try each segment (activeSegment) and save the best (bestSegment) */ + COVER_segment_t bestSegment = {0, 0, 0}; + COVER_segment_t activeSegment; + + /* Reset the activeDmers in the segment */ + /* The activeSegment starts at the beginning of the epoch. */ + activeSegment.begin = begin; + activeSegment.end = begin; + activeSegment.score = 0; + + /* Slide the activeSegment through the whole epoch. + * Save the best segment in bestSegment. + */ + while (activeSegment.end < end) { + /* Get hash value of current dmer */ + const size_t idx = FASTCOVER_hashPtrToIndex(ctx->samples + activeSegment.end, f, d); + + /* Add frequency of this index to score if this is the first occurrence of index in active segment */ + if (segmentFreqs[idx] == 0) { + activeSegment.score += freqs[idx]; + } + /* Increment end of segment and segmentFreqs*/ + activeSegment.end += 1; + segmentFreqs[idx] += 1; + /* If the window is now too large, drop the first position */ + if (activeSegment.end - activeSegment.begin == dmersInK + 1) { + /* Get hash value of the dmer to be eliminated from active segment */ + const size_t delIndex = FASTCOVER_hashPtrToIndex(ctx->samples + activeSegment.begin, f, d); + segmentFreqs[delIndex] -= 1; + /* Subtract frequency of this index from score if this is the last occurrence of this index in active segment */ + if (segmentFreqs[delIndex] == 0) { + activeSegment.score -= freqs[delIndex]; + } + /* Increment start of segment */ + activeSegment.begin += 1; + } + + /* If this segment is the best so far save it */ + if (activeSegment.score > bestSegment.score) { + bestSegment = activeSegment; + } + } + + /* Zero out rest of segmentFreqs array */ + while (activeSegment.begin < end) { + const size_t delIndex = FASTCOVER_hashPtrToIndex(ctx->samples + activeSegment.begin, f, d); + segmentFreqs[delIndex] -= 1; + activeSegment.begin += 1; + } + + { + /* Zero the frequency of hash value of each dmer covered by the chosen segment. */ + U32 pos; + for (pos = bestSegment.begin; pos != bestSegment.end; ++pos) { + const size_t i = FASTCOVER_hashPtrToIndex(ctx->samples + pos, f, d); + freqs[i] = 0; + } + } + + return bestSegment; +} + + +static int FASTCOVER_checkParameters(ZDICT_cover_params_t parameters, + size_t maxDictSize, unsigned f, + unsigned accel) { + /* k, d, and f are required parameters */ + if (parameters.d == 0 || parameters.k == 0) { + return 0; + } + /* d has to be 6 or 8 */ + if (parameters.d != 6 && parameters.d != 8) { + return 0; + } + /* k <= maxDictSize */ + if (parameters.k > maxDictSize) { + return 0; + } + /* d <= k */ + if (parameters.d > parameters.k) { + return 0; + } + /* 0 < f <= FASTCOVER_MAX_F*/ + if (f > FASTCOVER_MAX_F || f == 0) { + return 0; + } + /* 0 < splitPoint <= 1 */ + if (parameters.splitPoint <= 0 || parameters.splitPoint > 1) { + return 0; + } + /* 0 < accel <= 10 */ + if (accel > 10 || accel == 0) { + return 0; + } + return 1; +} + + +/** + * Clean up a context initialized with `FASTCOVER_ctx_init()`. + */ +static void +FASTCOVER_ctx_destroy(FASTCOVER_ctx_t* ctx) +{ + if (!ctx) return; + + free(ctx->freqs); + ctx->freqs = NULL; + + free(ctx->offsets); + ctx->offsets = NULL; +} + + +/** + * Calculate for frequency of hash value of each dmer in ctx->samples + */ +static void +FASTCOVER_computeFrequency(U32* freqs, const FASTCOVER_ctx_t* ctx) +{ + const unsigned f = ctx->f; + const unsigned d = ctx->d; + const unsigned skip = ctx->accelParams.skip; + const unsigned readLength = MAX(d, 8); + size_t i; + assert(ctx->nbTrainSamples >= 5); + assert(ctx->nbTrainSamples <= ctx->nbSamples); + for (i = 0; i < ctx->nbTrainSamples; i++) { + size_t start = ctx->offsets[i]; /* start of current dmer */ + size_t const currSampleEnd = ctx->offsets[i+1]; + while (start + readLength <= currSampleEnd) { + const size_t dmerIndex = FASTCOVER_hashPtrToIndex(ctx->samples + start, f, d); + freqs[dmerIndex]++; + start = start + skip + 1; + } + } +} + + +/** + * Prepare a context for dictionary building. + * The context is only dependent on the parameter `d` and can be used multiple + * times. + * Returns 0 on success or error code on error. + * The context must be destroyed with `FASTCOVER_ctx_destroy()`. + */ +static size_t +FASTCOVER_ctx_init(FASTCOVER_ctx_t* ctx, + const void* samplesBuffer, + const size_t* samplesSizes, unsigned nbSamples, + unsigned d, double splitPoint, unsigned f, + FASTCOVER_accel_t accelParams) +{ + const BYTE* const samples = (const BYTE*)samplesBuffer; + const size_t totalSamplesSize = COVER_sum(samplesSizes, nbSamples); + /* Split samples into testing and training sets */ + const unsigned nbTrainSamples = splitPoint < 1.0 ? (unsigned)((double)nbSamples * splitPoint) : nbSamples; + const unsigned nbTestSamples = splitPoint < 1.0 ? nbSamples - nbTrainSamples : nbSamples; + const size_t trainingSamplesSize = splitPoint < 1.0 ? COVER_sum(samplesSizes, nbTrainSamples) : totalSamplesSize; + const size_t testSamplesSize = splitPoint < 1.0 ? COVER_sum(samplesSizes + nbTrainSamples, nbTestSamples) : totalSamplesSize; + + /* Checks */ + if (totalSamplesSize < MAX(d, sizeof(U64)) || + totalSamplesSize >= (size_t)FASTCOVER_MAX_SAMPLES_SIZE) { + DISPLAYLEVEL(1, "Total samples size is too large (%u MB), maximum size is %u MB\n", + (unsigned)(totalSamplesSize >> 20), (FASTCOVER_MAX_SAMPLES_SIZE >> 20)); + return ERROR(srcSize_wrong); + } + + /* Check if there are at least 5 training samples */ + if (nbTrainSamples < 5) { + DISPLAYLEVEL(1, "Total number of training samples is %u and is invalid\n", nbTrainSamples); + return ERROR(srcSize_wrong); + } + + /* Check if there's testing sample */ + if (nbTestSamples < 1) { + DISPLAYLEVEL(1, "Total number of testing samples is %u and is invalid.\n", nbTestSamples); + return ERROR(srcSize_wrong); + } + + /* Zero the context */ + memset(ctx, 0, sizeof(*ctx)); + DISPLAYLEVEL(2, "Training on %u samples of total size %u\n", nbTrainSamples, + (unsigned)trainingSamplesSize); + DISPLAYLEVEL(2, "Testing on %u samples of total size %u\n", nbTestSamples, + (unsigned)testSamplesSize); + + ctx->samples = samples; + ctx->samplesSizes = samplesSizes; + ctx->nbSamples = nbSamples; + ctx->nbTrainSamples = nbTrainSamples; + ctx->nbTestSamples = nbTestSamples; + ctx->nbDmers = trainingSamplesSize - MAX(d, sizeof(U64)) + 1; + ctx->d = d; + ctx->f = f; + ctx->accelParams = accelParams; + + /* The offsets of each file */ + ctx->offsets = (size_t*)calloc((nbSamples + 1), sizeof(size_t)); + if (ctx->offsets == NULL) { + DISPLAYLEVEL(1, "Failed to allocate scratch buffers \n"); + FASTCOVER_ctx_destroy(ctx); + return ERROR(memory_allocation); + } + + /* Fill offsets from the samplesSizes */ + { U32 i; + ctx->offsets[0] = 0; + assert(nbSamples >= 5); + for (i = 1; i <= nbSamples; ++i) { + ctx->offsets[i] = ctx->offsets[i - 1] + samplesSizes[i - 1]; + } + } + + /* Initialize frequency array of size 2^f */ + ctx->freqs = (U32*)calloc(((U64)1 << f), sizeof(U32)); + if (ctx->freqs == NULL) { + DISPLAYLEVEL(1, "Failed to allocate frequency table \n"); + FASTCOVER_ctx_destroy(ctx); + return ERROR(memory_allocation); + } + + DISPLAYLEVEL(2, "Computing frequencies\n"); + FASTCOVER_computeFrequency(ctx->freqs, ctx); + + return 0; +} + + +/** + * Given the prepared context build the dictionary. + */ +static size_t +FASTCOVER_buildDictionary(const FASTCOVER_ctx_t* ctx, + U32* freqs, + void* dictBuffer, size_t dictBufferCapacity, + ZDICT_cover_params_t parameters, + U16* segmentFreqs) +{ + BYTE *const dict = (BYTE *)dictBuffer; + size_t tail = dictBufferCapacity; + /* Divide the data into epochs. We will select one segment from each epoch. */ + const COVER_epoch_info_t epochs = COVER_computeEpochs( + (U32)dictBufferCapacity, (U32)ctx->nbDmers, parameters.k, 1); + const size_t maxZeroScoreRun = 10; + size_t zeroScoreRun = 0; + size_t epoch; + DISPLAYLEVEL(2, "Breaking content into %u epochs of size %u\n", + (U32)epochs.num, (U32)epochs.size); + /* Loop through the epochs until there are no more segments or the dictionary + * is full. + */ + for (epoch = 0; tail > 0; epoch = (epoch + 1) % epochs.num) { + const U32 epochBegin = (U32)(epoch * epochs.size); + const U32 epochEnd = epochBegin + epochs.size; + size_t segmentSize; + /* Select a segment */ + COVER_segment_t segment = FASTCOVER_selectSegment( + ctx, freqs, epochBegin, epochEnd, parameters, segmentFreqs); + + /* If the segment covers no dmers, then we are out of content. + * There may be new content in other epochs, for continue for some time. + */ + if (segment.score == 0) { + if (++zeroScoreRun >= maxZeroScoreRun) { + break; + } + continue; + } + zeroScoreRun = 0; + + /* Trim the segment if necessary and if it is too small then we are done */ + segmentSize = MIN(segment.end - segment.begin + parameters.d - 1, tail); + if (segmentSize < parameters.d) { + break; + } + + /* We fill the dictionary from the back to allow the best segments to be + * referenced with the smallest offsets. + */ + tail -= segmentSize; + memcpy(dict + tail, ctx->samples + segment.begin, segmentSize); + DISPLAYUPDATE( + 2, "\r%u%% ", + (unsigned)(((dictBufferCapacity - tail) * 100) / dictBufferCapacity)); + } + DISPLAYLEVEL(2, "\r%79s\r", ""); + return tail; +} + +/** + * Parameters for FASTCOVER_tryParameters(). + */ +typedef struct FASTCOVER_tryParameters_data_s { + const FASTCOVER_ctx_t* ctx; + COVER_best_t* best; + size_t dictBufferCapacity; + ZDICT_cover_params_t parameters; +} FASTCOVER_tryParameters_data_t; + + +/** + * Tries a set of parameters and updates the COVER_best_t with the results. + * This function is thread safe if zstd is compiled with multithreaded support. + * It takes its parameters as an *OWNING* opaque pointer to support threading. + */ +static void FASTCOVER_tryParameters(void* opaque) +{ + /* Save parameters as local variables */ + FASTCOVER_tryParameters_data_t *const data = (FASTCOVER_tryParameters_data_t*)opaque; + const FASTCOVER_ctx_t *const ctx = data->ctx; + const ZDICT_cover_params_t parameters = data->parameters; + size_t dictBufferCapacity = data->dictBufferCapacity; + size_t totalCompressedSize = ERROR(GENERIC); + /* Initialize array to keep track of frequency of dmer within activeSegment */ + U16* segmentFreqs = (U16*)calloc(((U64)1 << ctx->f), sizeof(U16)); + /* Allocate space for hash table, dict, and freqs */ + BYTE *const dict = (BYTE*)malloc(dictBufferCapacity); + COVER_dictSelection_t selection = COVER_dictSelectionError(ERROR(GENERIC)); + U32* freqs = (U32*) malloc(((U64)1 << ctx->f) * sizeof(U32)); + if (!segmentFreqs || !dict || !freqs) { + DISPLAYLEVEL(1, "Failed to allocate buffers: out of memory\n"); + goto _cleanup; + } + /* Copy the frequencies because we need to modify them */ + memcpy(freqs, ctx->freqs, ((U64)1 << ctx->f) * sizeof(U32)); + /* Build the dictionary */ + { const size_t tail = FASTCOVER_buildDictionary(ctx, freqs, dict, dictBufferCapacity, + parameters, segmentFreqs); + + const unsigned nbFinalizeSamples = (unsigned)(ctx->nbTrainSamples * ctx->accelParams.finalize / 100); + selection = COVER_selectDict(dict + tail, dictBufferCapacity, dictBufferCapacity - tail, + ctx->samples, ctx->samplesSizes, nbFinalizeSamples, ctx->nbTrainSamples, ctx->nbSamples, parameters, ctx->offsets, + totalCompressedSize); + + if (COVER_dictSelectionIsError(selection)) { + DISPLAYLEVEL(1, "Failed to select dictionary\n"); + goto _cleanup; + } + } +_cleanup: + free(dict); + COVER_best_finish(data->best, parameters, selection); + free(data); + free(segmentFreqs); + COVER_dictSelectionFree(selection); + free(freqs); +} + + +static void +FASTCOVER_convertToCoverParams(ZDICT_fastCover_params_t fastCoverParams, + ZDICT_cover_params_t* coverParams) +{ + coverParams->k = fastCoverParams.k; + coverParams->d = fastCoverParams.d; + coverParams->steps = fastCoverParams.steps; + coverParams->nbThreads = fastCoverParams.nbThreads; + coverParams->splitPoint = fastCoverParams.splitPoint; + coverParams->zParams = fastCoverParams.zParams; + coverParams->shrinkDict = fastCoverParams.shrinkDict; +} + + +static void +FASTCOVER_convertToFastCoverParams(ZDICT_cover_params_t coverParams, + ZDICT_fastCover_params_t* fastCoverParams, + unsigned f, unsigned accel) +{ + fastCoverParams->k = coverParams.k; + fastCoverParams->d = coverParams.d; + fastCoverParams->steps = coverParams.steps; + fastCoverParams->nbThreads = coverParams.nbThreads; + fastCoverParams->splitPoint = coverParams.splitPoint; + fastCoverParams->f = f; + fastCoverParams->accel = accel; + fastCoverParams->zParams = coverParams.zParams; + fastCoverParams->shrinkDict = coverParams.shrinkDict; +} + + +ZDICTLIB_STATIC_API size_t +ZDICT_trainFromBuffer_fastCover(void* dictBuffer, size_t dictBufferCapacity, + const void* samplesBuffer, + const size_t* samplesSizes, unsigned nbSamples, + ZDICT_fastCover_params_t parameters) +{ + BYTE* const dict = (BYTE*)dictBuffer; + FASTCOVER_ctx_t ctx; + ZDICT_cover_params_t coverParams; + FASTCOVER_accel_t accelParams; + /* Initialize global data */ + g_displayLevel = (int)parameters.zParams.notificationLevel; + /* Assign splitPoint and f if not provided */ + parameters.splitPoint = 1.0; + parameters.f = parameters.f == 0 ? DEFAULT_F : parameters.f; + parameters.accel = parameters.accel == 0 ? DEFAULT_ACCEL : parameters.accel; + /* Convert to cover parameter */ + memset(&coverParams, 0 , sizeof(coverParams)); + FASTCOVER_convertToCoverParams(parameters, &coverParams); + /* Checks */ + if (!FASTCOVER_checkParameters(coverParams, dictBufferCapacity, parameters.f, + parameters.accel)) { + DISPLAYLEVEL(1, "FASTCOVER parameters incorrect\n"); + return ERROR(parameter_outOfBound); + } + if (nbSamples == 0) { + DISPLAYLEVEL(1, "FASTCOVER must have at least one input file\n"); + return ERROR(srcSize_wrong); + } + if (dictBufferCapacity < ZDICT_DICTSIZE_MIN) { + DISPLAYLEVEL(1, "dictBufferCapacity must be at least %u\n", + ZDICT_DICTSIZE_MIN); + return ERROR(dstSize_tooSmall); + } + /* Assign corresponding FASTCOVER_accel_t to accelParams*/ + accelParams = FASTCOVER_defaultAccelParameters[parameters.accel]; + /* Initialize context */ + { + size_t const initVal = FASTCOVER_ctx_init(&ctx, samplesBuffer, samplesSizes, nbSamples, + coverParams.d, parameters.splitPoint, parameters.f, + accelParams); + if (ZSTD_isError(initVal)) { + DISPLAYLEVEL(1, "Failed to initialize context\n"); + return initVal; + } + } + COVER_warnOnSmallCorpus(dictBufferCapacity, ctx.nbDmers, g_displayLevel); + /* Build the dictionary */ + DISPLAYLEVEL(2, "Building dictionary\n"); + { + /* Initialize array to keep track of frequency of dmer within activeSegment */ + U16* segmentFreqs = (U16 *)calloc(((U64)1 << parameters.f), sizeof(U16)); + const size_t tail = FASTCOVER_buildDictionary(&ctx, ctx.freqs, dictBuffer, + dictBufferCapacity, coverParams, segmentFreqs); + const unsigned nbFinalizeSamples = (unsigned)(ctx.nbTrainSamples * ctx.accelParams.finalize / 100); + const size_t dictionarySize = ZDICT_finalizeDictionary( + dict, dictBufferCapacity, dict + tail, dictBufferCapacity - tail, + samplesBuffer, samplesSizes, nbFinalizeSamples, coverParams.zParams); + if (!ZSTD_isError(dictionarySize)) { + DISPLAYLEVEL(2, "Constructed dictionary of size %u\n", + (unsigned)dictionarySize); + } + FASTCOVER_ctx_destroy(&ctx); + free(segmentFreqs); + return dictionarySize; + } +} + + +ZDICTLIB_STATIC_API size_t +ZDICT_optimizeTrainFromBuffer_fastCover( + void* dictBuffer, size_t dictBufferCapacity, + const void* samplesBuffer, + const size_t* samplesSizes, unsigned nbSamples, + ZDICT_fastCover_params_t* parameters) +{ + ZDICT_cover_params_t coverParams; + FASTCOVER_accel_t accelParams; + /* constants */ + const unsigned nbThreads = parameters->nbThreads; + const double splitPoint = + parameters->splitPoint <= 0.0 ? FASTCOVER_DEFAULT_SPLITPOINT : parameters->splitPoint; + const unsigned kMinD = parameters->d == 0 ? 6 : parameters->d; + const unsigned kMaxD = parameters->d == 0 ? 8 : parameters->d; + const unsigned kMinK = parameters->k == 0 ? 50 : parameters->k; + const unsigned kMaxK = parameters->k == 0 ? 2000 : parameters->k; + const unsigned kSteps = parameters->steps == 0 ? 40 : parameters->steps; + const unsigned kStepSize = MAX((kMaxK - kMinK) / kSteps, 1); + const unsigned kIterations = + (1 + (kMaxD - kMinD) / 2) * (1 + (kMaxK - kMinK) / kStepSize); + const unsigned f = parameters->f == 0 ? DEFAULT_F : parameters->f; + const unsigned accel = parameters->accel == 0 ? DEFAULT_ACCEL : parameters->accel; + const unsigned shrinkDict = 0; + /* Local variables */ + const int displayLevel = (int)parameters->zParams.notificationLevel; + unsigned iteration = 1; + unsigned d; + unsigned k; + COVER_best_t best; + POOL_ctx *pool = NULL; + int warned = 0; + /* Checks */ + if (splitPoint <= 0 || splitPoint > 1) { + LOCALDISPLAYLEVEL(displayLevel, 1, "Incorrect splitPoint\n"); + return ERROR(parameter_outOfBound); + } + if (accel == 0 || accel > FASTCOVER_MAX_ACCEL) { + LOCALDISPLAYLEVEL(displayLevel, 1, "Incorrect accel\n"); + return ERROR(parameter_outOfBound); + } + if (kMinK < kMaxD || kMaxK < kMinK) { + LOCALDISPLAYLEVEL(displayLevel, 1, "Incorrect k\n"); + return ERROR(parameter_outOfBound); + } + if (nbSamples == 0) { + LOCALDISPLAYLEVEL(displayLevel, 1, "FASTCOVER must have at least one input file\n"); + return ERROR(srcSize_wrong); + } + if (dictBufferCapacity < ZDICT_DICTSIZE_MIN) { + LOCALDISPLAYLEVEL(displayLevel, 1, "dictBufferCapacity must be at least %u\n", + ZDICT_DICTSIZE_MIN); + return ERROR(dstSize_tooSmall); + } + if (nbThreads > 1) { + pool = POOL_create(nbThreads, 1); + if (!pool) { + return ERROR(memory_allocation); + } + } + /* Initialization */ + COVER_best_init(&best); + memset(&coverParams, 0 , sizeof(coverParams)); + FASTCOVER_convertToCoverParams(*parameters, &coverParams); + accelParams = FASTCOVER_defaultAccelParameters[accel]; + /* Turn down global display level to clean up display at level 2 and below */ + g_displayLevel = displayLevel == 0 ? 0 : displayLevel - 1; + /* Loop through d first because each new value needs a new context */ + LOCALDISPLAYLEVEL(displayLevel, 2, "Trying %u different sets of parameters\n", + kIterations); + for (d = kMinD; d <= kMaxD; d += 2) { + /* Initialize the context for this value of d */ + FASTCOVER_ctx_t ctx; + LOCALDISPLAYLEVEL(displayLevel, 3, "d=%u\n", d); + { + size_t const initVal = FASTCOVER_ctx_init(&ctx, samplesBuffer, samplesSizes, nbSamples, d, splitPoint, f, accelParams); + if (ZSTD_isError(initVal)) { + LOCALDISPLAYLEVEL(displayLevel, 1, "Failed to initialize context\n"); + COVER_best_destroy(&best); + POOL_free(pool); + return initVal; + } + } + if (!warned) { + COVER_warnOnSmallCorpus(dictBufferCapacity, ctx.nbDmers, displayLevel); + warned = 1; + } + /* Loop through k reusing the same context */ + for (k = kMinK; k <= kMaxK; k += kStepSize) { + /* Prepare the arguments */ + FASTCOVER_tryParameters_data_t *data = (FASTCOVER_tryParameters_data_t *)malloc( + sizeof(FASTCOVER_tryParameters_data_t)); + LOCALDISPLAYLEVEL(displayLevel, 3, "k=%u\n", k); + if (!data) { + LOCALDISPLAYLEVEL(displayLevel, 1, "Failed to allocate parameters\n"); + COVER_best_destroy(&best); + FASTCOVER_ctx_destroy(&ctx); + POOL_free(pool); + return ERROR(memory_allocation); + } + data->ctx = &ctx; + data->best = &best; + data->dictBufferCapacity = dictBufferCapacity; + data->parameters = coverParams; + data->parameters.k = k; + data->parameters.d = d; + data->parameters.splitPoint = splitPoint; + data->parameters.steps = kSteps; + data->parameters.shrinkDict = shrinkDict; + data->parameters.zParams.notificationLevel = (unsigned)g_displayLevel; + /* Check the parameters */ + if (!FASTCOVER_checkParameters(data->parameters, dictBufferCapacity, + data->ctx->f, accel)) { + DISPLAYLEVEL(1, "FASTCOVER parameters incorrect\n"); + free(data); + continue; + } + /* Call the function and pass ownership of data to it */ + COVER_best_start(&best); + if (pool) { + POOL_add(pool, &FASTCOVER_tryParameters, data); + } else { + FASTCOVER_tryParameters(data); + } + /* Print status */ + LOCALDISPLAYUPDATE(displayLevel, 2, "\r%u%% ", + (unsigned)((iteration * 100) / kIterations)); + ++iteration; + } + COVER_best_wait(&best); + FASTCOVER_ctx_destroy(&ctx); + } + LOCALDISPLAYLEVEL(displayLevel, 2, "\r%79s\r", ""); + /* Fill the output buffer and parameters with output of the best parameters */ + { + const size_t dictSize = best.dictSize; + if (ZSTD_isError(best.compressedSize)) { + const size_t compressedSize = best.compressedSize; + COVER_best_destroy(&best); + POOL_free(pool); + return compressedSize; + } + FASTCOVER_convertToFastCoverParams(best.parameters, parameters, f, accel); + memcpy(dictBuffer, best.dict, dictSize); + COVER_best_destroy(&best); + POOL_free(pool); + return dictSize; + } + +} diff --git a/deps/zstd/lib/dictBuilder/zdict.c b/deps/zstd/lib/dictBuilder/zdict.c new file mode 100644 index 00000000000000..82e999e80e3764 --- /dev/null +++ b/deps/zstd/lib/dictBuilder/zdict.c @@ -0,0 +1,1133 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + +/*-************************************** +* Tuning parameters +****************************************/ +#define MINRATIO 4 /* minimum nb of apparition to be selected in dictionary */ +#define ZDICT_MAX_SAMPLES_SIZE (2000U << 20) +#define ZDICT_MIN_SAMPLES_SIZE (ZDICT_CONTENTSIZE_MIN * MINRATIO) + + +/*-************************************** +* Compiler Options +****************************************/ +/* Unix Large Files support (>4GB) */ +#define _FILE_OFFSET_BITS 64 +#if (defined(__sun__) && (!defined(__LP64__))) /* Sun Solaris 32-bits requires specific definitions */ +# ifndef _LARGEFILE_SOURCE +# define _LARGEFILE_SOURCE +# endif +#elif ! defined(__LP64__) /* No point defining Large file for 64 bit */ +# ifndef _LARGEFILE64_SOURCE +# define _LARGEFILE64_SOURCE +# endif +#endif + + +/*-************************************* +* Dependencies +***************************************/ +#include /* malloc, free */ +#include /* memset */ +#include /* fprintf, fopen, ftello64 */ +#include /* clock */ + +#ifndef ZDICT_STATIC_LINKING_ONLY +# define ZDICT_STATIC_LINKING_ONLY +#endif + +#include "../common/mem.h" /* read */ +#include "../common/fse.h" /* FSE_normalizeCount, FSE_writeNCount */ +#include "../common/huf.h" /* HUF_buildCTable, HUF_writeCTable */ +#include "../common/zstd_internal.h" /* includes zstd.h */ +#include "../common/xxhash.h" /* XXH64 */ +#include "../compress/zstd_compress_internal.h" /* ZSTD_loadCEntropy() */ +#include "../zdict.h" +#include "divsufsort.h" +#include "../common/bits.h" /* ZSTD_NbCommonBytes */ + + +/*-************************************* +* Constants +***************************************/ +#define KB *(1 <<10) +#define MB *(1 <<20) +#define GB *(1U<<30) + +#define DICTLISTSIZE_DEFAULT 10000 + +#define NOISELENGTH 32 + +static const U32 g_selectivity_default = 9; + + +/*-************************************* +* Console display +***************************************/ +#undef DISPLAY +#define DISPLAY(...) do { fprintf(stderr, __VA_ARGS__); fflush( stderr ); } while (0) +#undef DISPLAYLEVEL +#define DISPLAYLEVEL(l, ...) do { if (notificationLevel>=l) { DISPLAY(__VA_ARGS__); } } while (0) /* 0 : no display; 1: errors; 2: default; 3: details; 4: debug */ + +static clock_t ZDICT_clockSpan(clock_t nPrevious) { return clock() - nPrevious; } + +static void ZDICT_printHex(const void* ptr, size_t length) +{ + const BYTE* const b = (const BYTE*)ptr; + size_t u; + for (u=0; u126) c = '.'; /* non-printable char */ + DISPLAY("%c", c); + } +} + + +/*-******************************************************** +* Helper functions +**********************************************************/ +unsigned ZDICT_isError(size_t errorCode) { return ERR_isError(errorCode); } + +const char* ZDICT_getErrorName(size_t errorCode) { return ERR_getErrorName(errorCode); } + +unsigned ZDICT_getDictID(const void* dictBuffer, size_t dictSize) +{ + if (dictSize < 8) return 0; + if (MEM_readLE32(dictBuffer) != ZSTD_MAGIC_DICTIONARY) return 0; + return MEM_readLE32((const char*)dictBuffer + 4); +} + +size_t ZDICT_getDictHeaderSize(const void* dictBuffer, size_t dictSize) +{ + size_t headerSize; + if (dictSize <= 8 || MEM_readLE32(dictBuffer) != ZSTD_MAGIC_DICTIONARY) return ERROR(dictionary_corrupted); + + { ZSTD_compressedBlockState_t* bs = (ZSTD_compressedBlockState_t*)malloc(sizeof(ZSTD_compressedBlockState_t)); + U32* wksp = (U32*)malloc(HUF_WORKSPACE_SIZE); + if (!bs || !wksp) { + headerSize = ERROR(memory_allocation); + } else { + ZSTD_reset_compressedBlockState(bs); + headerSize = ZSTD_loadCEntropy(bs, wksp, dictBuffer, dictSize); + } + + free(bs); + free(wksp); + } + + return headerSize; +} + +/*-******************************************************** +* Dictionary training functions +**********************************************************/ +/*! ZDICT_count() : + Count the nb of common bytes between 2 pointers. + Note : this function presumes end of buffer followed by noisy guard band. +*/ +static size_t ZDICT_count(const void* pIn, const void* pMatch) +{ + const char* const pStart = (const char*)pIn; + for (;;) { + size_t const diff = MEM_readST(pMatch) ^ MEM_readST(pIn); + if (!diff) { + pIn = (const char*)pIn+sizeof(size_t); + pMatch = (const char*)pMatch+sizeof(size_t); + continue; + } + pIn = (const char*)pIn+ZSTD_NbCommonBytes(diff); + return (size_t)((const char*)pIn - pStart); + } +} + + +typedef struct { + U32 pos; + U32 length; + U32 savings; +} dictItem; + +static void ZDICT_initDictItem(dictItem* d) +{ + d->pos = 1; + d->length = 0; + d->savings = (U32)(-1); +} + + +#define LLIMIT 64 /* heuristic determined experimentally */ +#define MINMATCHLENGTH 7 /* heuristic determined experimentally */ +static dictItem ZDICT_analyzePos( + BYTE* doneMarks, + const int* suffix, U32 start, + const void* buffer, U32 minRatio, U32 notificationLevel) +{ + U32 lengthList[LLIMIT] = {0}; + U32 cumulLength[LLIMIT] = {0}; + U32 savings[LLIMIT] = {0}; + const BYTE* b = (const BYTE*)buffer; + size_t maxLength = LLIMIT; + size_t pos = (size_t)suffix[start]; + U32 end = start; + dictItem solution; + + /* init */ + memset(&solution, 0, sizeof(solution)); + doneMarks[pos] = 1; + + /* trivial repetition cases */ + if ( (MEM_read16(b+pos+0) == MEM_read16(b+pos+2)) + ||(MEM_read16(b+pos+1) == MEM_read16(b+pos+3)) + ||(MEM_read16(b+pos+2) == MEM_read16(b+pos+4)) ) { + /* skip and mark segment */ + U16 const pattern16 = MEM_read16(b+pos+4); + U32 u, patternEnd = 6; + while (MEM_read16(b+pos+patternEnd) == pattern16) patternEnd+=2 ; + if (b[pos+patternEnd] == b[pos+patternEnd-1]) patternEnd++; + for (u=1; u= MINMATCHLENGTH); + } + + /* look backward */ + { size_t length; + do { + length = ZDICT_count(b + pos, b + *(suffix+start-1)); + if (length >=MINMATCHLENGTH) start--; + } while(length >= MINMATCHLENGTH); + } + + /* exit if not found a minimum nb of repetitions */ + if (end-start < minRatio) { + U32 idx; + for(idx=start; idx= %i at pos %7u ", (unsigned)(end-start), MINMATCHLENGTH, (unsigned)pos); + DISPLAYLEVEL(4, "\n"); + + for (mml = MINMATCHLENGTH ; ; mml++) { + BYTE currentChar = 0; + U32 currentCount = 0; + U32 currentID = refinedStart; + U32 id; + U32 selectedCount = 0; + U32 selectedID = currentID; + for (id =refinedStart; id < refinedEnd; id++) { + if (b[suffix[id] + mml] != currentChar) { + if (currentCount > selectedCount) { + selectedCount = currentCount; + selectedID = currentID; + } + currentID = id; + currentChar = b[ suffix[id] + mml]; + currentCount = 0; + } + currentCount ++; + } + if (currentCount > selectedCount) { /* for last */ + selectedCount = currentCount; + selectedID = currentID; + } + + if (selectedCount < minRatio) + break; + refinedStart = selectedID; + refinedEnd = refinedStart + selectedCount; + } + + /* evaluate gain based on new dict */ + start = refinedStart; + pos = suffix[refinedStart]; + end = start; + memset(lengthList, 0, sizeof(lengthList)); + + /* look forward */ + { size_t length; + do { + end++; + length = ZDICT_count(b + pos, b + suffix[end]); + if (length >= LLIMIT) length = LLIMIT-1; + lengthList[length]++; + } while (length >=MINMATCHLENGTH); + } + + /* look backward */ + { size_t length = MINMATCHLENGTH; + while ((length >= MINMATCHLENGTH) & (start > 0)) { + length = ZDICT_count(b + pos, b + suffix[start - 1]); + if (length >= LLIMIT) length = LLIMIT - 1; + lengthList[length]++; + if (length >= MINMATCHLENGTH) start--; + } + } + + /* largest useful length */ + memset(cumulLength, 0, sizeof(cumulLength)); + cumulLength[maxLength-1] = lengthList[maxLength-1]; + for (i=(int)(maxLength-2); i>=0; i--) + cumulLength[i] = cumulLength[i+1] + lengthList[i]; + + for (i=LLIMIT-1; i>=MINMATCHLENGTH; i--) if (cumulLength[i]>=minRatio) break; + maxLength = i; + + /* reduce maxLength in case of final into repetitive data */ + { U32 l = (U32)maxLength; + BYTE const c = b[pos + maxLength-1]; + while (b[pos+l-2]==c) l--; + maxLength = l; + } + if (maxLength < MINMATCHLENGTH) return solution; /* skip : no long-enough solution */ + + /* calculate savings */ + savings[5] = 0; + for (i=MINMATCHLENGTH; i<=(int)maxLength; i++) + savings[i] = savings[i-1] + (lengthList[i] * (i-3)); + + DISPLAYLEVEL(4, "Selected dict at position %u, of length %u : saves %u (ratio: %.2f) \n", + (unsigned)pos, (unsigned)maxLength, (unsigned)savings[maxLength], (double)savings[maxLength] / (double)maxLength); + + solution.pos = (U32)pos; + solution.length = (U32)maxLength; + solution.savings = savings[maxLength]; + + /* mark positions done */ + { U32 id; + for (id=start; id solution.length) length = solution.length; + } + pEnd = (U32)(testedPos + length); + for (p=testedPos; ppos; + const U32 eltEnd = elt.pos + elt.length; + const char* const buf = (const char*) buffer; + + /* tail overlap */ + U32 u; for (u=1; u elt.pos) && (table[u].pos <= eltEnd)) { /* overlap, existing > new */ + /* append */ + U32 const addedLength = table[u].pos - elt.pos; + table[u].length += addedLength; + table[u].pos = elt.pos; + table[u].savings += elt.savings * addedLength / elt.length; /* rough approx */ + table[u].savings += elt.length / 8; /* rough approx bonus */ + elt = table[u]; + /* sort : improve rank */ + while ((u>1) && (table[u-1].savings < elt.savings)) + table[u] = table[u-1], u--; + table[u] = elt; + return u; + } } + + /* front overlap */ + for (u=1; u= elt.pos) && (table[u].pos < elt.pos)) { /* overlap, existing < new */ + /* append */ + int const addedLength = (int)eltEnd - (int)(table[u].pos + table[u].length); + table[u].savings += elt.length / 8; /* rough approx bonus */ + if (addedLength > 0) { /* otherwise, elt fully included into existing */ + table[u].length += addedLength; + table[u].savings += elt.savings * addedLength / elt.length; /* rough approx */ + } + /* sort : improve rank */ + elt = table[u]; + while ((u>1) && (table[u-1].savings < elt.savings)) + table[u] = table[u-1], u--; + table[u] = elt; + return u; + } + + if (MEM_read64(buf + table[u].pos) == MEM_read64(buf + elt.pos + 1)) { + if (isIncluded(buf + table[u].pos, buf + elt.pos + 1, table[u].length)) { + size_t const addedLength = MAX( (int)elt.length - (int)table[u].length , 1 ); + table[u].pos = elt.pos; + table[u].savings += (U32)(elt.savings * addedLength / elt.length); + table[u].length = MIN(elt.length, table[u].length + 1); + return u; + } + } + } + + return 0; +} + + +static void ZDICT_removeDictItem(dictItem* table, U32 id) +{ + /* convention : table[0].pos stores nb of elts */ + U32 const max = table[0].pos; + U32 u; + if (!id) return; /* protection, should never happen */ + for (u=id; upos--; +} + + +static void ZDICT_insertDictItem(dictItem* table, U32 maxSize, dictItem elt, const void* buffer) +{ + /* merge if possible */ + U32 mergeId = ZDICT_tryMerge(table, elt, 0, buffer); + if (mergeId) { + U32 newMerge = 1; + while (newMerge) { + newMerge = ZDICT_tryMerge(table, table[mergeId], mergeId, buffer); + if (newMerge) ZDICT_removeDictItem(table, mergeId); + mergeId = newMerge; + } + return; + } + + /* insert */ + { U32 current; + U32 nextElt = table->pos; + if (nextElt >= maxSize) nextElt = maxSize-1; + current = nextElt-1; + while (table[current].savings < elt.savings) { + table[current+1] = table[current]; + current--; + } + table[current+1] = elt; + table->pos = nextElt+1; + } +} + + +static U32 ZDICT_dictSize(const dictItem* dictList) +{ + U32 u, dictSize = 0; + for (u=1; u=l) { \ + if (ZDICT_clockSpan(displayClock) > refreshRate) { \ + displayClock = clock(); \ + DISPLAY(__VA_ARGS__); \ + } \ + if (notificationLevel>=4) fflush(stderr); \ + } \ + } while (0) + + /* init */ + DISPLAYLEVEL(2, "\r%70s\r", ""); /* clean display line */ + if (!suffix0 || !reverseSuffix || !doneMarks || !filePos) { + result = ERROR(memory_allocation); + goto _cleanup; + } + if (minRatio < MINRATIO) minRatio = MINRATIO; + memset(doneMarks, 0, bufferSize+16); + + /* limit sample set size (divsufsort limitation)*/ + if (bufferSize > ZDICT_MAX_SAMPLES_SIZE) DISPLAYLEVEL(3, "sample set too large : reduced to %u MB ...\n", (unsigned)(ZDICT_MAX_SAMPLES_SIZE>>20)); + while (bufferSize > ZDICT_MAX_SAMPLES_SIZE) bufferSize -= fileSizes[--nbFiles]; + + /* sort */ + DISPLAYLEVEL(2, "sorting %u files of total size %u MB ...\n", nbFiles, (unsigned)(bufferSize>>20)); + { int const divSuftSortResult = divsufsort((const unsigned char*)buffer, suffix, (int)bufferSize, 0); + if (divSuftSortResult != 0) { result = ERROR(GENERIC); goto _cleanup; } + } + suffix[bufferSize] = (int)bufferSize; /* leads into noise */ + suffix0[0] = (int)bufferSize; /* leads into noise */ + /* build reverse suffix sort */ + { size_t pos; + for (pos=0; pos < bufferSize; pos++) + reverseSuffix[suffix[pos]] = (U32)pos; + /* note filePos tracks borders between samples. + It's not used at this stage, but planned to become useful in a later update */ + filePos[0] = 0; + for (pos=1; pos> 21); + } +} + + +typedef struct +{ + ZSTD_CDict* dict; /* dictionary */ + ZSTD_CCtx* zc; /* working context */ + void* workPlace; /* must be ZSTD_BLOCKSIZE_MAX allocated */ +} EStats_ress_t; + +#define MAXREPOFFSET 1024 + +static void ZDICT_countEStats(EStats_ress_t esr, const ZSTD_parameters* params, + unsigned* countLit, unsigned* offsetcodeCount, unsigned* matchlengthCount, unsigned* litlengthCount, U32* repOffsets, + const void* src, size_t srcSize, + U32 notificationLevel) +{ + size_t const blockSizeMax = MIN (ZSTD_BLOCKSIZE_MAX, 1 << params->cParams.windowLog); + size_t cSize; + + if (srcSize > blockSizeMax) srcSize = blockSizeMax; /* protection vs large samples */ + { size_t const errorCode = ZSTD_compressBegin_usingCDict_deprecated(esr.zc, esr.dict); + if (ZSTD_isError(errorCode)) { DISPLAYLEVEL(1, "warning : ZSTD_compressBegin_usingCDict failed \n"); return; } + + } + cSize = ZSTD_compressBlock_deprecated(esr.zc, esr.workPlace, ZSTD_BLOCKSIZE_MAX, src, srcSize); + if (ZSTD_isError(cSize)) { DISPLAYLEVEL(3, "warning : could not compress sample size %u \n", (unsigned)srcSize); return; } + + if (cSize) { /* if == 0; block is not compressible */ + const seqStore_t* const seqStorePtr = ZSTD_getSeqStore(esr.zc); + + /* literals stats */ + { const BYTE* bytePtr; + for(bytePtr = seqStorePtr->litStart; bytePtr < seqStorePtr->lit; bytePtr++) + countLit[*bytePtr]++; + } + + /* seqStats */ + { U32 const nbSeq = (U32)(seqStorePtr->sequences - seqStorePtr->sequencesStart); + ZSTD_seqToCodes(seqStorePtr); + + { const BYTE* codePtr = seqStorePtr->ofCode; + U32 u; + for (u=0; umlCode; + U32 u; + for (u=0; ullCode; + U32 u; + for (u=0; u= 2) { /* rep offsets */ + const seqDef* const seq = seqStorePtr->sequencesStart; + U32 offset1 = seq[0].offBase - ZSTD_REP_NUM; + U32 offset2 = seq[1].offBase - ZSTD_REP_NUM; + if (offset1 >= MAXREPOFFSET) offset1 = 0; + if (offset2 >= MAXREPOFFSET) offset2 = 0; + repOffsets[offset1] += 3; + repOffsets[offset2] += 1; + } } } +} + +static size_t ZDICT_totalSampleSize(const size_t* fileSizes, unsigned nbFiles) +{ + size_t total=0; + unsigned u; + for (u=0; u0; u--) { + offsetCount_t tmp; + if (table[u-1].count >= table[u].count) break; + tmp = table[u-1]; + table[u-1] = table[u]; + table[u] = tmp; + } +} + +/* ZDICT_flatLit() : + * rewrite `countLit` to contain a mostly flat but still compressible distribution of literals. + * necessary to avoid generating a non-compressible distribution that HUF_writeCTable() cannot encode. + */ +static void ZDICT_flatLit(unsigned* countLit) +{ + int u; + for (u=1; u<256; u++) countLit[u] = 2; + countLit[0] = 4; + countLit[253] = 1; + countLit[254] = 1; +} + +#define OFFCODE_MAX 30 /* only applicable to first block */ +static size_t ZDICT_analyzeEntropy(void* dstBuffer, size_t maxDstSize, + int compressionLevel, + const void* srcBuffer, const size_t* fileSizes, unsigned nbFiles, + const void* dictBuffer, size_t dictBufferSize, + unsigned notificationLevel) +{ + unsigned countLit[256]; + HUF_CREATE_STATIC_CTABLE(hufTable, 255); + unsigned offcodeCount[OFFCODE_MAX+1]; + short offcodeNCount[OFFCODE_MAX+1]; + U32 offcodeMax = ZSTD_highbit32((U32)(dictBufferSize + 128 KB)); + unsigned matchLengthCount[MaxML+1]; + short matchLengthNCount[MaxML+1]; + unsigned litLengthCount[MaxLL+1]; + short litLengthNCount[MaxLL+1]; + U32 repOffset[MAXREPOFFSET]; + offsetCount_t bestRepOffset[ZSTD_REP_NUM+1]; + EStats_ress_t esr = { NULL, NULL, NULL }; + ZSTD_parameters params; + U32 u, huffLog = 11, Offlog = OffFSELog, mlLog = MLFSELog, llLog = LLFSELog, total; + size_t pos = 0, errorCode; + size_t eSize = 0; + size_t const totalSrcSize = ZDICT_totalSampleSize(fileSizes, nbFiles); + size_t const averageSampleSize = totalSrcSize / (nbFiles + !nbFiles); + BYTE* dstPtr = (BYTE*)dstBuffer; + U32 wksp[HUF_CTABLE_WORKSPACE_SIZE_U32]; + + /* init */ + DEBUGLOG(4, "ZDICT_analyzeEntropy"); + if (offcodeMax>OFFCODE_MAX) { eSize = ERROR(dictionaryCreation_failed); goto _cleanup; } /* too large dictionary */ + for (u=0; u<256; u++) countLit[u] = 1; /* any character must be described */ + for (u=0; u<=offcodeMax; u++) offcodeCount[u] = 1; + for (u=0; u<=MaxML; u++) matchLengthCount[u] = 1; + for (u=0; u<=MaxLL; u++) litLengthCount[u] = 1; + memset(repOffset, 0, sizeof(repOffset)); + repOffset[1] = repOffset[4] = repOffset[8] = 1; + memset(bestRepOffset, 0, sizeof(bestRepOffset)); + if (compressionLevel==0) compressionLevel = ZSTD_CLEVEL_DEFAULT; + params = ZSTD_getParams(compressionLevel, averageSampleSize, dictBufferSize); + + esr.dict = ZSTD_createCDict_advanced(dictBuffer, dictBufferSize, ZSTD_dlm_byRef, ZSTD_dct_rawContent, params.cParams, ZSTD_defaultCMem); + esr.zc = ZSTD_createCCtx(); + esr.workPlace = malloc(ZSTD_BLOCKSIZE_MAX); + if (!esr.dict || !esr.zc || !esr.workPlace) { + eSize = ERROR(memory_allocation); + DISPLAYLEVEL(1, "Not enough memory \n"); + goto _cleanup; + } + + /* collect stats on all samples */ + for (u=0; u= 4) { + /* writeStats */ + DISPLAYLEVEL(4, "Offset Code Frequencies : \n"); + for (u=0; u<=offcodeMax; u++) { + DISPLAYLEVEL(4, "%2u :%7u \n", u, offcodeCount[u]); + } } + + /* analyze, build stats, starting with literals */ + { size_t maxNbBits = HUF_buildCTable_wksp(hufTable, countLit, 255, huffLog, wksp, sizeof(wksp)); + if (HUF_isError(maxNbBits)) { + eSize = maxNbBits; + DISPLAYLEVEL(1, " HUF_buildCTable error \n"); + goto _cleanup; + } + if (maxNbBits==8) { /* not compressible : will fail on HUF_writeCTable() */ + DISPLAYLEVEL(2, "warning : pathological dataset : literals are not compressible : samples are noisy or too regular \n"); + ZDICT_flatLit(countLit); /* replace distribution by a fake "mostly flat but still compressible" distribution, that HUF_writeCTable() can encode */ + maxNbBits = HUF_buildCTable_wksp(hufTable, countLit, 255, huffLog, wksp, sizeof(wksp)); + assert(maxNbBits==9); + } + huffLog = (U32)maxNbBits; + } + + /* looking for most common first offsets */ + { U32 offset; + for (offset=1; offset dictBufferCapacity) { + dictContentSize = dictBufferCapacity - hSize; + } + + /* Pad the dictionary content with zeros if it is too small */ + if (dictContentSize < minContentSize) { + RETURN_ERROR_IF(hSize + minContentSize > dictBufferCapacity, dstSize_tooSmall, + "dictBufferCapacity too small to fit max repcode"); + paddingSize = minContentSize - dictContentSize; + } else { + paddingSize = 0; + } + + { + size_t const dictSize = hSize + paddingSize + dictContentSize; + + /* The dictionary consists of the header, optional padding, and the content. + * The padding comes before the content because the "best" position in the + * dictionary is the last byte. + */ + BYTE* const outDictHeader = (BYTE*)dictBuffer; + BYTE* const outDictPadding = outDictHeader + hSize; + BYTE* const outDictContent = outDictPadding + paddingSize; + + assert(dictSize <= dictBufferCapacity); + assert(outDictContent + dictContentSize == (BYTE*)dictBuffer + dictSize); + + /* First copy the customDictContent into its final location. + * `customDictContent` and `dictBuffer` may overlap, so we must + * do this before any other writes into the output buffer. + * Then copy the header & padding into the output buffer. + */ + memmove(outDictContent, customDictContent, dictContentSize); + memcpy(outDictHeader, header, hSize); + memset(outDictPadding, 0, paddingSize); + + return dictSize; + } +} + + +static size_t ZDICT_addEntropyTablesFromBuffer_advanced( + void* dictBuffer, size_t dictContentSize, size_t dictBufferCapacity, + const void* samplesBuffer, const size_t* samplesSizes, unsigned nbSamples, + ZDICT_params_t params) +{ + int const compressionLevel = (params.compressionLevel == 0) ? ZSTD_CLEVEL_DEFAULT : params.compressionLevel; + U32 const notificationLevel = params.notificationLevel; + size_t hSize = 8; + + /* calculate entropy tables */ + DISPLAYLEVEL(2, "\r%70s\r", ""); /* clean display line */ + DISPLAYLEVEL(2, "statistics ... \n"); + { size_t const eSize = ZDICT_analyzeEntropy((char*)dictBuffer+hSize, dictBufferCapacity-hSize, + compressionLevel, + samplesBuffer, samplesSizes, nbSamples, + (char*)dictBuffer + dictBufferCapacity - dictContentSize, dictContentSize, + notificationLevel); + if (ZDICT_isError(eSize)) return eSize; + hSize += eSize; + } + + /* add dictionary header (after entropy tables) */ + MEM_writeLE32(dictBuffer, ZSTD_MAGIC_DICTIONARY); + { U64 const randomID = XXH64((char*)dictBuffer + dictBufferCapacity - dictContentSize, dictContentSize, 0); + U32 const compliantID = (randomID % ((1U<<31)-32768)) + 32768; + U32 const dictID = params.dictID ? params.dictID : compliantID; + MEM_writeLE32((char*)dictBuffer+4, dictID); + } + + if (hSize + dictContentSize < dictBufferCapacity) + memmove((char*)dictBuffer + hSize, (char*)dictBuffer + dictBufferCapacity - dictContentSize, dictContentSize); + return MIN(dictBufferCapacity, hSize+dictContentSize); +} + +/*! ZDICT_trainFromBuffer_unsafe_legacy() : +* Warning : `samplesBuffer` must be followed by noisy guard band !!! +* @return : size of dictionary, or an error code which can be tested with ZDICT_isError() +*/ +static size_t ZDICT_trainFromBuffer_unsafe_legacy( + void* dictBuffer, size_t maxDictSize, + const void* samplesBuffer, const size_t* samplesSizes, unsigned nbSamples, + ZDICT_legacy_params_t params) +{ + U32 const dictListSize = MAX(MAX(DICTLISTSIZE_DEFAULT, nbSamples), (U32)(maxDictSize/16)); + dictItem* const dictList = (dictItem*)malloc(dictListSize * sizeof(*dictList)); + unsigned const selectivity = params.selectivityLevel == 0 ? g_selectivity_default : params.selectivityLevel; + unsigned const minRep = (selectivity > 30) ? MINRATIO : nbSamples >> selectivity; + size_t const targetDictSize = maxDictSize; + size_t const samplesBuffSize = ZDICT_totalSampleSize(samplesSizes, nbSamples); + size_t dictSize = 0; + U32 const notificationLevel = params.zParams.notificationLevel; + + /* checks */ + if (!dictList) return ERROR(memory_allocation); + if (maxDictSize < ZDICT_DICTSIZE_MIN) { free(dictList); return ERROR(dstSize_tooSmall); } /* requested dictionary size is too small */ + if (samplesBuffSize < ZDICT_MIN_SAMPLES_SIZE) { free(dictList); return ERROR(dictionaryCreation_failed); } /* not enough source to create dictionary */ + + /* init */ + ZDICT_initDictItem(dictList); + + /* build dictionary */ + ZDICT_trainBuffer_legacy(dictList, dictListSize, + samplesBuffer, samplesBuffSize, + samplesSizes, nbSamples, + minRep, notificationLevel); + + /* display best matches */ + if (params.zParams.notificationLevel>= 3) { + unsigned const nb = MIN(25, dictList[0].pos); + unsigned const dictContentSize = ZDICT_dictSize(dictList); + unsigned u; + DISPLAYLEVEL(3, "\n %u segments found, of total size %u \n", (unsigned)dictList[0].pos-1, dictContentSize); + DISPLAYLEVEL(3, "list %u best segments \n", nb-1); + for (u=1; u samplesBuffSize) || ((pos + length) > samplesBuffSize)) { + free(dictList); + return ERROR(GENERIC); /* should never happen */ + } + DISPLAYLEVEL(3, "%3u:%3u bytes at pos %8u, savings %7u bytes |", + u, length, pos, (unsigned)dictList[u].savings); + ZDICT_printHex((const char*)samplesBuffer+pos, printedLength); + DISPLAYLEVEL(3, "| \n"); + } } + + + /* create dictionary */ + { unsigned dictContentSize = ZDICT_dictSize(dictList); + if (dictContentSize < ZDICT_CONTENTSIZE_MIN) { free(dictList); return ERROR(dictionaryCreation_failed); } /* dictionary content too small */ + if (dictContentSize < targetDictSize/4) { + DISPLAYLEVEL(2, "! warning : selected content significantly smaller than requested (%u < %u) \n", dictContentSize, (unsigned)maxDictSize); + if (samplesBuffSize < 10 * targetDictSize) + DISPLAYLEVEL(2, "! consider increasing the number of samples (total size : %u MB)\n", (unsigned)(samplesBuffSize>>20)); + if (minRep > MINRATIO) { + DISPLAYLEVEL(2, "! consider increasing selectivity to produce larger dictionary (-s%u) \n", selectivity+1); + DISPLAYLEVEL(2, "! note : larger dictionaries are not necessarily better, test its efficiency on samples \n"); + } + } + + if ((dictContentSize > targetDictSize*3) && (nbSamples > 2*MINRATIO) && (selectivity>1)) { + unsigned proposedSelectivity = selectivity-1; + while ((nbSamples >> proposedSelectivity) <= MINRATIO) { proposedSelectivity--; } + DISPLAYLEVEL(2, "! note : calculated dictionary significantly larger than requested (%u > %u) \n", dictContentSize, (unsigned)maxDictSize); + DISPLAYLEVEL(2, "! consider increasing dictionary size, or produce denser dictionary (-s%u) \n", proposedSelectivity); + DISPLAYLEVEL(2, "! always test dictionary efficiency on real samples \n"); + } + + /* limit dictionary size */ + { U32 const max = dictList->pos; /* convention : nb of useful elts within dictList */ + U32 currentSize = 0; + U32 n; for (n=1; n targetDictSize) { currentSize -= dictList[n].length; break; } + } + dictList->pos = n; + dictContentSize = currentSize; + } + + /* build dict content */ + { U32 u; + BYTE* ptr = (BYTE*)dictBuffer + maxDictSize; + for (u=1; upos; u++) { + U32 l = dictList[u].length; + ptr -= l; + if (ptr<(BYTE*)dictBuffer) { free(dictList); return ERROR(GENERIC); } /* should not happen */ + memcpy(ptr, (const char*)samplesBuffer+dictList[u].pos, l); + } } + + dictSize = ZDICT_addEntropyTablesFromBuffer_advanced(dictBuffer, dictContentSize, maxDictSize, + samplesBuffer, samplesSizes, nbSamples, + params.zParams); + } + + /* clean up */ + free(dictList); + return dictSize; +} + + +/* ZDICT_trainFromBuffer_legacy() : + * issue : samplesBuffer need to be followed by a noisy guard band. + * work around : duplicate the buffer, and add the noise */ +size_t ZDICT_trainFromBuffer_legacy(void* dictBuffer, size_t dictBufferCapacity, + const void* samplesBuffer, const size_t* samplesSizes, unsigned nbSamples, + ZDICT_legacy_params_t params) +{ + size_t result; + void* newBuff; + size_t const sBuffSize = ZDICT_totalSampleSize(samplesSizes, nbSamples); + if (sBuffSize < ZDICT_MIN_SAMPLES_SIZE) return 0; /* not enough content => no dictionary */ + + newBuff = malloc(sBuffSize + NOISELENGTH); + if (!newBuff) return ERROR(memory_allocation); + + memcpy(newBuff, samplesBuffer, sBuffSize); + ZDICT_fillNoise((char*)newBuff + sBuffSize, NOISELENGTH); /* guard band, for end of buffer condition */ + + result = + ZDICT_trainFromBuffer_unsafe_legacy(dictBuffer, dictBufferCapacity, newBuff, + samplesSizes, nbSamples, params); + free(newBuff); + return result; +} + + +size_t ZDICT_trainFromBuffer(void* dictBuffer, size_t dictBufferCapacity, + const void* samplesBuffer, const size_t* samplesSizes, unsigned nbSamples) +{ + ZDICT_fastCover_params_t params; + DEBUGLOG(3, "ZDICT_trainFromBuffer"); + memset(¶ms, 0, sizeof(params)); + params.d = 8; + params.steps = 4; + /* Use default level since no compression level information is available */ + params.zParams.compressionLevel = ZSTD_CLEVEL_DEFAULT; +#if defined(DEBUGLEVEL) && (DEBUGLEVEL>=1) + params.zParams.notificationLevel = DEBUGLEVEL; +#endif + return ZDICT_optimizeTrainFromBuffer_fastCover(dictBuffer, dictBufferCapacity, + samplesBuffer, samplesSizes, nbSamples, + ¶ms); +} + +size_t ZDICT_addEntropyTablesFromBuffer(void* dictBuffer, size_t dictContentSize, size_t dictBufferCapacity, + const void* samplesBuffer, const size_t* samplesSizes, unsigned nbSamples) +{ + ZDICT_params_t params; + memset(¶ms, 0, sizeof(params)); + return ZDICT_addEntropyTablesFromBuffer_advanced(dictBuffer, dictContentSize, dictBufferCapacity, + samplesBuffer, samplesSizes, nbSamples, + params); +} diff --git a/deps/zstd/lib/dll/example/Makefile b/deps/zstd/lib/dll/example/Makefile new file mode 100644 index 00000000000000..86cf6906e5c62a --- /dev/null +++ b/deps/zstd/lib/dll/example/Makefile @@ -0,0 +1,48 @@ +# ################################################################ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# You may select, at your option, one of the above-listed licenses. +# ################################################################ + +VOID := /dev/null +ZSTDDIR := ../include +LIBDIR := ../static +DLLDIR := ../dll + +CFLAGS ?= -O3 # can select custom flags. For example : CFLAGS="-O2 -g" make +CFLAGS += -Wall -Wextra -Wundef -Wcast-qual -Wcast-align -Wshadow -Wswitch-enum \ + -Wdeclaration-after-statement -Wstrict-prototypes \ + -Wpointer-arith -Wstrict-aliasing=1 +CFLAGS += $(MOREFLAGS) +CPPFLAGS:= -I$(ZSTDDIR) -DXXH_NAMESPACE=ZSTD_ +FLAGS := $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) + + +# Define *.exe as extension for Windows systems +ifneq (,$(filter Windows%,$(OS))) +EXT =.exe +else +EXT = +endif + +.PHONY: default fullbench-dll fullbench-lib + + +default: all + +all: fullbench-dll fullbench-lib + + +fullbench-lib: fullbench.c datagen.c + $(CC) $(FLAGS) $^ -o $@$(EXT) $(LIBDIR)/libzstd_static.lib + +fullbench-dll: fullbench.c datagen.c + $(CC) $(FLAGS) $^ -o $@$(EXT) -DZSTD_DLL_IMPORT=1 $(DLLDIR)/libzstd.dll + +clean: + @$(RM) fullbench-dll$(EXT) fullbench-lib$(EXT) \ + @echo Cleaning completed diff --git a/deps/zstd/lib/dll/example/README.md b/deps/zstd/lib/dll/example/README.md new file mode 100644 index 00000000000000..46aec798005745 --- /dev/null +++ b/deps/zstd/lib/dll/example/README.md @@ -0,0 +1,63 @@ +# ZSTD Windows binary package + +## The package contents + +- `zstd.exe` : Command Line Utility, supporting gzip-like arguments +- `dll\libzstd.dll` : The ZSTD dynamic library (DLL) +- `dll\libzstd.lib` : The import library of the ZSTD dynamic library (DLL) for Visual C++ +- `example\` : The example of usage of the ZSTD library +- `include\` : Header files required by the ZSTD library +- `static\libzstd_static.lib` : The static ZSTD library (LIB) + +## Usage of Command Line Interface + +Command Line Interface (CLI) supports gzip-like arguments. +By default CLI takes an input file and compresses it to an output file: + + Usage: zstd [arg] [input] [output] + +The full list of commands for CLI can be obtained with `-h` or `-H`. The ratio can +be improved with commands from `-3` to `-16` but higher levels also have slower +compression. CLI includes in-memory compression benchmark module with compression +levels starting from `-b` and ending with `-e` with iteration time of `-i` seconds. +CLI supports aggregation of parameters i.e. `-b1`, `-e18`, and `-i1` can be joined +into `-b1e18i1`. + +## The example of usage of static and dynamic ZSTD libraries with gcc/MinGW + +Use `cd example` and `make` to build `fullbench-dll` and `fullbench-lib`. +`fullbench-dll` uses a dynamic ZSTD library from the `dll` directory. +`fullbench-lib` uses a static ZSTD library from the `lib` directory. + +## Using ZSTD DLL with gcc/MinGW + +The header files from `include\` and the dynamic library `dll\libzstd.dll` +are required to compile a project using gcc/MinGW. +The dynamic library has to be added to linking options. +It means that if a project that uses ZSTD consists of a single `test-dll.c` +file it should be linked with `dll\libzstd.dll`. For example: + + gcc $(CFLAGS) -Iinclude\ test-dll.c -o test-dll dll\libzstd.dll + +The compiled executable will require ZSTD DLL which is available at `dll\libzstd.dll`. + +## The example of usage of static and dynamic ZSTD libraries with Visual C++ + +Open `example\fullbench-dll.sln` to compile `fullbench-dll` that uses a +dynamic ZSTD library from the `dll` directory. The solution works with Visual C++ +2010 or newer. When one will open the solution with Visual C++ newer than 2010 +then the solution will be upgraded to the current version. + +## Using ZSTD DLL with Visual C++ + +The header files from `include\` and the import library `dll\libzstd.lib` +are required to compile a project using Visual C++. + +1. The path to header files should be added to `Additional Include Directories` that can + be found in project properties `C/C++` then `General`. +2. The import library has to be added to `Additional Dependencies` that can + be found in project properties `Linker` then `Input`. + If one will provide only the name `libzstd.lib` without a full path to the library + the directory has to be added to `Linker\General\Additional Library Directories`. + +The compiled executable will require ZSTD DLL which is available at `dll\libzstd.dll`. diff --git a/deps/zstd/lib/dll/example/build_package.bat b/deps/zstd/lib/dll/example/build_package.bat new file mode 100644 index 00000000000000..e410c63b289dc5 --- /dev/null +++ b/deps/zstd/lib/dll/example/build_package.bat @@ -0,0 +1,20 @@ +@ECHO OFF +MKDIR bin\dll bin\static bin\example bin\include +COPY tests\fullbench.c bin\example\ +COPY programs\datagen.c bin\example\ +COPY programs\datagen.h bin\example\ +COPY programs\util.h bin\example\ +COPY programs\platform.h bin\example\ +COPY lib\common\mem.h bin\example\ +COPY lib\common\zstd_internal.h bin\example\ +COPY lib\common\error_private.h bin\example\ +COPY lib\common\xxhash.h bin\example\ +COPY lib\libzstd.a bin\static\libzstd_static.lib +COPY lib\dll\libzstd.* bin\dll\ +COPY lib\dll\example\Makefile bin\example\ +COPY lib\dll\example\fullbench-dll.* bin\example\ +COPY lib\dll\example\README.md bin\ +COPY lib\zstd.h bin\include\ +COPY lib\common\zstd_errors.h bin\include\ +COPY lib\dictBuilder\zdict.h bin\include\ +COPY programs\zstd.exe bin\zstd.exe diff --git a/deps/zstd/lib/legacy/zstd_legacy.h b/deps/zstd/lib/legacy/zstd_legacy.h new file mode 100644 index 00000000000000..7a8a04e593c23a --- /dev/null +++ b/deps/zstd/lib/legacy/zstd_legacy.h @@ -0,0 +1,452 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_LEGACY_H +#define ZSTD_LEGACY_H + +#if defined (__cplusplus) +extern "C" { +#endif + +/* ************************************* +* Includes +***************************************/ +#include "../common/mem.h" /* MEM_STATIC */ +#include "../common/error_private.h" /* ERROR */ +#include "../common/zstd_internal.h" /* ZSTD_inBuffer, ZSTD_outBuffer, ZSTD_frameSizeInfo */ + +#if !defined (ZSTD_LEGACY_SUPPORT) || (ZSTD_LEGACY_SUPPORT == 0) +# undef ZSTD_LEGACY_SUPPORT +# define ZSTD_LEGACY_SUPPORT 8 +#endif + +#if (ZSTD_LEGACY_SUPPORT <= 1) +# include "zstd_v01.h" +#endif +#if (ZSTD_LEGACY_SUPPORT <= 2) +# include "zstd_v02.h" +#endif +#if (ZSTD_LEGACY_SUPPORT <= 3) +# include "zstd_v03.h" +#endif +#if (ZSTD_LEGACY_SUPPORT <= 4) +# include "zstd_v04.h" +#endif +#if (ZSTD_LEGACY_SUPPORT <= 5) +# include "zstd_v05.h" +#endif +#if (ZSTD_LEGACY_SUPPORT <= 6) +# include "zstd_v06.h" +#endif +#if (ZSTD_LEGACY_SUPPORT <= 7) +# include "zstd_v07.h" +#endif + +/** ZSTD_isLegacy() : + @return : > 0 if supported by legacy decoder. 0 otherwise. + return value is the version. +*/ +MEM_STATIC unsigned ZSTD_isLegacy(const void* src, size_t srcSize) +{ + U32 magicNumberLE; + if (srcSize<4) return 0; + magicNumberLE = MEM_readLE32(src); + switch(magicNumberLE) + { +#if (ZSTD_LEGACY_SUPPORT <= 1) + case ZSTDv01_magicNumberLE:return 1; +#endif +#if (ZSTD_LEGACY_SUPPORT <= 2) + case ZSTDv02_magicNumber : return 2; +#endif +#if (ZSTD_LEGACY_SUPPORT <= 3) + case ZSTDv03_magicNumber : return 3; +#endif +#if (ZSTD_LEGACY_SUPPORT <= 4) + case ZSTDv04_magicNumber : return 4; +#endif +#if (ZSTD_LEGACY_SUPPORT <= 5) + case ZSTDv05_MAGICNUMBER : return 5; +#endif +#if (ZSTD_LEGACY_SUPPORT <= 6) + case ZSTDv06_MAGICNUMBER : return 6; +#endif +#if (ZSTD_LEGACY_SUPPORT <= 7) + case ZSTDv07_MAGICNUMBER : return 7; +#endif + default : return 0; + } +} + + +MEM_STATIC unsigned long long ZSTD_getDecompressedSize_legacy(const void* src, size_t srcSize) +{ + U32 const version = ZSTD_isLegacy(src, srcSize); + if (version < 5) return 0; /* no decompressed size in frame header, or not a legacy format */ +#if (ZSTD_LEGACY_SUPPORT <= 5) + if (version==5) { + ZSTDv05_parameters fParams; + size_t const frResult = ZSTDv05_getFrameParams(&fParams, src, srcSize); + if (frResult != 0) return 0; + return fParams.srcSize; + } +#endif +#if (ZSTD_LEGACY_SUPPORT <= 6) + if (version==6) { + ZSTDv06_frameParams fParams; + size_t const frResult = ZSTDv06_getFrameParams(&fParams, src, srcSize); + if (frResult != 0) return 0; + return fParams.frameContentSize; + } +#endif +#if (ZSTD_LEGACY_SUPPORT <= 7) + if (version==7) { + ZSTDv07_frameParams fParams; + size_t const frResult = ZSTDv07_getFrameParams(&fParams, src, srcSize); + if (frResult != 0) return 0; + return fParams.frameContentSize; + } +#endif + return 0; /* should not be possible */ +} + + +MEM_STATIC size_t ZSTD_decompressLegacy( + void* dst, size_t dstCapacity, + const void* src, size_t compressedSize, + const void* dict,size_t dictSize) +{ + U32 const version = ZSTD_isLegacy(src, compressedSize); + char x; + /* Avoid passing NULL to legacy decoding. */ + if (dst == NULL) { + assert(dstCapacity == 0); + dst = &x; + } + if (src == NULL) { + assert(compressedSize == 0); + src = &x; + } + if (dict == NULL) { + assert(dictSize == 0); + dict = &x; + } + (void)dst; (void)dstCapacity; (void)dict; (void)dictSize; /* unused when ZSTD_LEGACY_SUPPORT >= 8 */ + switch(version) + { +#if (ZSTD_LEGACY_SUPPORT <= 1) + case 1 : + return ZSTDv01_decompress(dst, dstCapacity, src, compressedSize); +#endif +#if (ZSTD_LEGACY_SUPPORT <= 2) + case 2 : + return ZSTDv02_decompress(dst, dstCapacity, src, compressedSize); +#endif +#if (ZSTD_LEGACY_SUPPORT <= 3) + case 3 : + return ZSTDv03_decompress(dst, dstCapacity, src, compressedSize); +#endif +#if (ZSTD_LEGACY_SUPPORT <= 4) + case 4 : + return ZSTDv04_decompress(dst, dstCapacity, src, compressedSize); +#endif +#if (ZSTD_LEGACY_SUPPORT <= 5) + case 5 : + { size_t result; + ZSTDv05_DCtx* const zd = ZSTDv05_createDCtx(); + if (zd==NULL) return ERROR(memory_allocation); + result = ZSTDv05_decompress_usingDict(zd, dst, dstCapacity, src, compressedSize, dict, dictSize); + ZSTDv05_freeDCtx(zd); + return result; + } +#endif +#if (ZSTD_LEGACY_SUPPORT <= 6) + case 6 : + { size_t result; + ZSTDv06_DCtx* const zd = ZSTDv06_createDCtx(); + if (zd==NULL) return ERROR(memory_allocation); + result = ZSTDv06_decompress_usingDict(zd, dst, dstCapacity, src, compressedSize, dict, dictSize); + ZSTDv06_freeDCtx(zd); + return result; + } +#endif +#if (ZSTD_LEGACY_SUPPORT <= 7) + case 7 : + { size_t result; + ZSTDv07_DCtx* const zd = ZSTDv07_createDCtx(); + if (zd==NULL) return ERROR(memory_allocation); + result = ZSTDv07_decompress_usingDict(zd, dst, dstCapacity, src, compressedSize, dict, dictSize); + ZSTDv07_freeDCtx(zd); + return result; + } +#endif + default : + return ERROR(prefix_unknown); + } +} + +MEM_STATIC ZSTD_frameSizeInfo ZSTD_findFrameSizeInfoLegacy(const void *src, size_t srcSize) +{ + ZSTD_frameSizeInfo frameSizeInfo; + U32 const version = ZSTD_isLegacy(src, srcSize); + switch(version) + { +#if (ZSTD_LEGACY_SUPPORT <= 1) + case 1 : + ZSTDv01_findFrameSizeInfoLegacy(src, srcSize, + &frameSizeInfo.compressedSize, + &frameSizeInfo.decompressedBound); + break; +#endif +#if (ZSTD_LEGACY_SUPPORT <= 2) + case 2 : + ZSTDv02_findFrameSizeInfoLegacy(src, srcSize, + &frameSizeInfo.compressedSize, + &frameSizeInfo.decompressedBound); + break; +#endif +#if (ZSTD_LEGACY_SUPPORT <= 3) + case 3 : + ZSTDv03_findFrameSizeInfoLegacy(src, srcSize, + &frameSizeInfo.compressedSize, + &frameSizeInfo.decompressedBound); + break; +#endif +#if (ZSTD_LEGACY_SUPPORT <= 4) + case 4 : + ZSTDv04_findFrameSizeInfoLegacy(src, srcSize, + &frameSizeInfo.compressedSize, + &frameSizeInfo.decompressedBound); + break; +#endif +#if (ZSTD_LEGACY_SUPPORT <= 5) + case 5 : + ZSTDv05_findFrameSizeInfoLegacy(src, srcSize, + &frameSizeInfo.compressedSize, + &frameSizeInfo.decompressedBound); + break; +#endif +#if (ZSTD_LEGACY_SUPPORT <= 6) + case 6 : + ZSTDv06_findFrameSizeInfoLegacy(src, srcSize, + &frameSizeInfo.compressedSize, + &frameSizeInfo.decompressedBound); + break; +#endif +#if (ZSTD_LEGACY_SUPPORT <= 7) + case 7 : + ZSTDv07_findFrameSizeInfoLegacy(src, srcSize, + &frameSizeInfo.compressedSize, + &frameSizeInfo.decompressedBound); + break; +#endif + default : + frameSizeInfo.compressedSize = ERROR(prefix_unknown); + frameSizeInfo.decompressedBound = ZSTD_CONTENTSIZE_ERROR; + break; + } + if (!ZSTD_isError(frameSizeInfo.compressedSize) && frameSizeInfo.compressedSize > srcSize) { + frameSizeInfo.compressedSize = ERROR(srcSize_wrong); + frameSizeInfo.decompressedBound = ZSTD_CONTENTSIZE_ERROR; + } + /* In all cases, decompressedBound == nbBlocks * ZSTD_BLOCKSIZE_MAX. + * So we can compute nbBlocks without having to change every function. + */ + if (frameSizeInfo.decompressedBound != ZSTD_CONTENTSIZE_ERROR) { + assert((frameSizeInfo.decompressedBound & (ZSTD_BLOCKSIZE_MAX - 1)) == 0); + frameSizeInfo.nbBlocks = (size_t)(frameSizeInfo.decompressedBound / ZSTD_BLOCKSIZE_MAX); + } + return frameSizeInfo; +} + +MEM_STATIC size_t ZSTD_findFrameCompressedSizeLegacy(const void *src, size_t srcSize) +{ + ZSTD_frameSizeInfo frameSizeInfo = ZSTD_findFrameSizeInfoLegacy(src, srcSize); + return frameSizeInfo.compressedSize; +} + +MEM_STATIC size_t ZSTD_freeLegacyStreamContext(void* legacyContext, U32 version) +{ + switch(version) + { + default : + case 1 : + case 2 : + case 3 : + (void)legacyContext; + return ERROR(version_unsupported); +#if (ZSTD_LEGACY_SUPPORT <= 4) + case 4 : return ZBUFFv04_freeDCtx((ZBUFFv04_DCtx*)legacyContext); +#endif +#if (ZSTD_LEGACY_SUPPORT <= 5) + case 5 : return ZBUFFv05_freeDCtx((ZBUFFv05_DCtx*)legacyContext); +#endif +#if (ZSTD_LEGACY_SUPPORT <= 6) + case 6 : return ZBUFFv06_freeDCtx((ZBUFFv06_DCtx*)legacyContext); +#endif +#if (ZSTD_LEGACY_SUPPORT <= 7) + case 7 : return ZBUFFv07_freeDCtx((ZBUFFv07_DCtx*)legacyContext); +#endif + } +} + + +MEM_STATIC size_t ZSTD_initLegacyStream(void** legacyContext, U32 prevVersion, U32 newVersion, + const void* dict, size_t dictSize) +{ + char x; + /* Avoid passing NULL to legacy decoding. */ + if (dict == NULL) { + assert(dictSize == 0); + dict = &x; + } + DEBUGLOG(5, "ZSTD_initLegacyStream for v0.%u", newVersion); + if (prevVersion != newVersion) ZSTD_freeLegacyStreamContext(*legacyContext, prevVersion); + switch(newVersion) + { + default : + case 1 : + case 2 : + case 3 : + (void)dict; (void)dictSize; + return 0; +#if (ZSTD_LEGACY_SUPPORT <= 4) + case 4 : + { + ZBUFFv04_DCtx* dctx = (prevVersion != newVersion) ? ZBUFFv04_createDCtx() : (ZBUFFv04_DCtx*)*legacyContext; + if (dctx==NULL) return ERROR(memory_allocation); + ZBUFFv04_decompressInit(dctx); + ZBUFFv04_decompressWithDictionary(dctx, dict, dictSize); + *legacyContext = dctx; + return 0; + } +#endif +#if (ZSTD_LEGACY_SUPPORT <= 5) + case 5 : + { + ZBUFFv05_DCtx* dctx = (prevVersion != newVersion) ? ZBUFFv05_createDCtx() : (ZBUFFv05_DCtx*)*legacyContext; + if (dctx==NULL) return ERROR(memory_allocation); + ZBUFFv05_decompressInitDictionary(dctx, dict, dictSize); + *legacyContext = dctx; + return 0; + } +#endif +#if (ZSTD_LEGACY_SUPPORT <= 6) + case 6 : + { + ZBUFFv06_DCtx* dctx = (prevVersion != newVersion) ? ZBUFFv06_createDCtx() : (ZBUFFv06_DCtx*)*legacyContext; + if (dctx==NULL) return ERROR(memory_allocation); + ZBUFFv06_decompressInitDictionary(dctx, dict, dictSize); + *legacyContext = dctx; + return 0; + } +#endif +#if (ZSTD_LEGACY_SUPPORT <= 7) + case 7 : + { + ZBUFFv07_DCtx* dctx = (prevVersion != newVersion) ? ZBUFFv07_createDCtx() : (ZBUFFv07_DCtx*)*legacyContext; + if (dctx==NULL) return ERROR(memory_allocation); + ZBUFFv07_decompressInitDictionary(dctx, dict, dictSize); + *legacyContext = dctx; + return 0; + } +#endif + } +} + + + +MEM_STATIC size_t ZSTD_decompressLegacyStream(void* legacyContext, U32 version, + ZSTD_outBuffer* output, ZSTD_inBuffer* input) +{ + static char x; + /* Avoid passing NULL to legacy decoding. */ + if (output->dst == NULL) { + assert(output->size == 0); + output->dst = &x; + } + if (input->src == NULL) { + assert(input->size == 0); + input->src = &x; + } + DEBUGLOG(5, "ZSTD_decompressLegacyStream for v0.%u", version); + switch(version) + { + default : + case 1 : + case 2 : + case 3 : + (void)legacyContext; (void)output; (void)input; + return ERROR(version_unsupported); +#if (ZSTD_LEGACY_SUPPORT <= 4) + case 4 : + { + ZBUFFv04_DCtx* dctx = (ZBUFFv04_DCtx*) legacyContext; + const void* src = (const char*)input->src + input->pos; + size_t readSize = input->size - input->pos; + void* dst = (char*)output->dst + output->pos; + size_t decodedSize = output->size - output->pos; + size_t const hintSize = ZBUFFv04_decompressContinue(dctx, dst, &decodedSize, src, &readSize); + output->pos += decodedSize; + input->pos += readSize; + return hintSize; + } +#endif +#if (ZSTD_LEGACY_SUPPORT <= 5) + case 5 : + { + ZBUFFv05_DCtx* dctx = (ZBUFFv05_DCtx*) legacyContext; + const void* src = (const char*)input->src + input->pos; + size_t readSize = input->size - input->pos; + void* dst = (char*)output->dst + output->pos; + size_t decodedSize = output->size - output->pos; + size_t const hintSize = ZBUFFv05_decompressContinue(dctx, dst, &decodedSize, src, &readSize); + output->pos += decodedSize; + input->pos += readSize; + return hintSize; + } +#endif +#if (ZSTD_LEGACY_SUPPORT <= 6) + case 6 : + { + ZBUFFv06_DCtx* dctx = (ZBUFFv06_DCtx*) legacyContext; + const void* src = (const char*)input->src + input->pos; + size_t readSize = input->size - input->pos; + void* dst = (char*)output->dst + output->pos; + size_t decodedSize = output->size - output->pos; + size_t const hintSize = ZBUFFv06_decompressContinue(dctx, dst, &decodedSize, src, &readSize); + output->pos += decodedSize; + input->pos += readSize; + return hintSize; + } +#endif +#if (ZSTD_LEGACY_SUPPORT <= 7) + case 7 : + { + ZBUFFv07_DCtx* dctx = (ZBUFFv07_DCtx*) legacyContext; + const void* src = (const char*)input->src + input->pos; + size_t readSize = input->size - input->pos; + void* dst = (char*)output->dst + output->pos; + size_t decodedSize = output->size - output->pos; + size_t const hintSize = ZBUFFv07_decompressContinue(dctx, dst, &decodedSize, src, &readSize); + output->pos += decodedSize; + input->pos += readSize; + return hintSize; + } +#endif + } +} + + +#if defined (__cplusplus) +} +#endif + +#endif /* ZSTD_LEGACY_H */ diff --git a/deps/zstd/lib/legacy/zstd_v01.c b/deps/zstd/lib/legacy/zstd_v01.c new file mode 100644 index 00000000000000..6cf51234a2414d --- /dev/null +++ b/deps/zstd/lib/legacy/zstd_v01.c @@ -0,0 +1,2127 @@ +/* + * Copyright (c) Yann Collet, Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + +/****************************************** +* Includes +******************************************/ +#include /* size_t, ptrdiff_t */ +#include "zstd_v01.h" +#include "../common/compiler.h" +#include "../common/error_private.h" + + +/****************************************** +* Static allocation +******************************************/ +/* You can statically allocate FSE CTable/DTable as a table of unsigned using below macro */ +#define FSE_DTABLE_SIZE_U32(maxTableLog) (1 + (1<2^N Bytes (examples : 10 -> 1KB; 12 -> 4KB ; 16 -> 64KB; 20 -> 1MB; etc.) +* Increasing memory usage improves compression ratio +* Reduced memory usage can improve speed, due to cache effect +* Recommended max value is 14, for 16KB, which nicely fits into Intel x86 L1 cache */ +#define FSE_MAX_MEMORY_USAGE 14 +#define FSE_DEFAULT_MEMORY_USAGE 13 + +/* FSE_MAX_SYMBOL_VALUE : +* Maximum symbol value authorized. +* Required for proper stack allocation */ +#define FSE_MAX_SYMBOL_VALUE 255 + + +/**************************************************************** +* template functions type & suffix +****************************************************************/ +#define FSE_FUNCTION_TYPE BYTE +#define FSE_FUNCTION_EXTENSION + + +/**************************************************************** +* Byte symbol type +****************************************************************/ +typedef struct +{ + unsigned short newState; + unsigned char symbol; + unsigned char nbBits; +} FSE_decode_t; /* size == U32 */ + + + +/**************************************************************** +* Compiler specifics +****************************************************************/ +#ifdef _MSC_VER /* Visual Studio */ +# define FORCE_INLINE static __forceinline +# include /* For Visual 2005 */ +# pragma warning(disable : 4127) /* disable: C4127: conditional expression is constant */ +# pragma warning(disable : 4214) /* disable: C4214: non-int bitfields */ +#else +# define GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__) +# if defined (__cplusplus) || defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 */ +# ifdef __GNUC__ +# define FORCE_INLINE static inline __attribute__((always_inline)) +# else +# define FORCE_INLINE static inline +# endif +# else +# define FORCE_INLINE static +# endif /* __STDC_VERSION__ */ +#endif + + +/**************************************************************** +* Includes +****************************************************************/ +#include /* malloc, free, qsort */ +#include /* memcpy, memset */ +#include /* printf (debug) */ + + +#ifndef MEM_ACCESS_MODULE +#define MEM_ACCESS_MODULE +/**************************************************************** +* Basic Types +*****************************************************************/ +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 */ +# include +typedef uint8_t BYTE; +typedef uint16_t U16; +typedef int16_t S16; +typedef uint32_t U32; +typedef int32_t S32; +typedef uint64_t U64; +typedef int64_t S64; +#else +typedef unsigned char BYTE; +typedef unsigned short U16; +typedef signed short S16; +typedef unsigned int U32; +typedef signed int S32; +typedef unsigned long long U64; +typedef signed long long S64; +#endif + +#endif /* MEM_ACCESS_MODULE */ + +/**************************************************************** +* Memory I/O +*****************************************************************/ + +static unsigned FSE_32bits(void) +{ + return sizeof(void*)==4; +} + +static unsigned FSE_isLittleEndian(void) +{ + const union { U32 i; BYTE c[4]; } one = { 1 }; /* don't use static : performance detrimental */ + return one.c[0]; +} + +static U16 FSE_read16(const void* memPtr) +{ + U16 val; memcpy(&val, memPtr, sizeof(val)); return val; +} + +static U32 FSE_read32(const void* memPtr) +{ + U32 val; memcpy(&val, memPtr, sizeof(val)); return val; +} + +static U64 FSE_read64(const void* memPtr) +{ + U64 val; memcpy(&val, memPtr, sizeof(val)); return val; +} + +static U16 FSE_readLE16(const void* memPtr) +{ + if (FSE_isLittleEndian()) + return FSE_read16(memPtr); + else + { + const BYTE* p = (const BYTE*)memPtr; + return (U16)(p[0] + (p[1]<<8)); + } +} + +static U32 FSE_readLE32(const void* memPtr) +{ + if (FSE_isLittleEndian()) + return FSE_read32(memPtr); + else + { + const BYTE* p = (const BYTE*)memPtr; + return (U32)((U32)p[0] + ((U32)p[1]<<8) + ((U32)p[2]<<16) + ((U32)p[3]<<24)); + } +} + + +static U64 FSE_readLE64(const void* memPtr) +{ + if (FSE_isLittleEndian()) + return FSE_read64(memPtr); + else + { + const BYTE* p = (const BYTE*)memPtr; + return (U64)((U64)p[0] + ((U64)p[1]<<8) + ((U64)p[2]<<16) + ((U64)p[3]<<24) + + ((U64)p[4]<<32) + ((U64)p[5]<<40) + ((U64)p[6]<<48) + ((U64)p[7]<<56)); + } +} + +static size_t FSE_readLEST(const void* memPtr) +{ + if (FSE_32bits()) + return (size_t)FSE_readLE32(memPtr); + else + return (size_t)FSE_readLE64(memPtr); +} + + + +/**************************************************************** +* Constants +*****************************************************************/ +#define FSE_MAX_TABLELOG (FSE_MAX_MEMORY_USAGE-2) +#define FSE_MAX_TABLESIZE (1U< FSE_TABLELOG_ABSOLUTE_MAX +#error "FSE_MAX_TABLELOG > FSE_TABLELOG_ABSOLUTE_MAX is not supported" +#endif + + +/**************************************************************** +* Error Management +****************************************************************/ +#define FSE_STATIC_ASSERT(c) { enum { FSE_static_assert = 1/(int)(!!(c)) }; } /* use only *after* variable declarations */ + + +/**************************************************************** +* Complex types +****************************************************************/ +typedef struct +{ + int deltaFindState; + U32 deltaNbBits; +} FSE_symbolCompressionTransform; /* total 8 bytes */ + +typedef U32 DTable_max_t[FSE_DTABLE_SIZE_U32(FSE_MAX_TABLELOG)]; + +/**************************************************************** +* Internal functions +****************************************************************/ +FORCE_INLINE unsigned FSE_highbit32 (U32 val) +{ +# if defined(_MSC_VER) /* Visual */ + unsigned long r; + return _BitScanReverse(&r, val) ? (unsigned)r : 0; +# elif defined(__GNUC__) && (GCC_VERSION >= 304) /* GCC Intrinsic */ + return __builtin_clz (val) ^ 31; +# else /* Software version */ + static const unsigned DeBruijnClz[32] = { 0, 9, 1, 10, 13, 21, 2, 29, 11, 14, 16, 18, 22, 25, 3, 30, 8, 12, 20, 28, 15, 17, 24, 7, 19, 27, 23, 6, 26, 5, 4, 31 }; + U32 v = val; + unsigned r; + v |= v >> 1; + v |= v >> 2; + v |= v >> 4; + v |= v >> 8; + v |= v >> 16; + r = DeBruijnClz[ (U32) (v * 0x07C4ACDDU) >> 27]; + return r; +# endif +} + + +/**************************************************************** +* Templates +****************************************************************/ +/* + designed to be included + for type-specific functions (template emulation in C) + Objective is to write these functions only once, for improved maintenance +*/ + +/* safety checks */ +#ifndef FSE_FUNCTION_EXTENSION +# error "FSE_FUNCTION_EXTENSION must be defined" +#endif +#ifndef FSE_FUNCTION_TYPE +# error "FSE_FUNCTION_TYPE must be defined" +#endif + +/* Function names */ +#define FSE_CAT(X,Y) X##Y +#define FSE_FUNCTION_NAME(X,Y) FSE_CAT(X,Y) +#define FSE_TYPE_NAME(X,Y) FSE_CAT(X,Y) + + + +static U32 FSE_tableStep(U32 tableSize) { return (tableSize>>1) + (tableSize>>3) + 3; } + +#define FSE_DECODE_TYPE FSE_decode_t + + +typedef struct { + U16 tableLog; + U16 fastMode; +} FSE_DTableHeader; /* sizeof U32 */ + +static size_t FSE_buildDTable +(FSE_DTable* dt, const short* normalizedCounter, unsigned maxSymbolValue, unsigned tableLog) +{ + void* ptr = dt; + FSE_DTableHeader* const DTableH = (FSE_DTableHeader*)ptr; + FSE_DECODE_TYPE* const tableDecode = (FSE_DECODE_TYPE*)(ptr) + 1; /* because dt is unsigned, 32-bits aligned on 32-bits */ + const U32 tableSize = 1 << tableLog; + const U32 tableMask = tableSize-1; + const U32 step = FSE_tableStep(tableSize); + U16 symbolNext[FSE_MAX_SYMBOL_VALUE+1]; + U32 position = 0; + U32 highThreshold = tableSize-1; + const S16 largeLimit= (S16)(1 << (tableLog-1)); + U32 noLarge = 1; + U32 s; + + /* Sanity Checks */ + if (maxSymbolValue > FSE_MAX_SYMBOL_VALUE) return (size_t)-FSE_ERROR_maxSymbolValue_tooLarge; + if (tableLog > FSE_MAX_TABLELOG) return (size_t)-FSE_ERROR_tableLog_tooLarge; + + /* Init, lay down lowprob symbols */ + DTableH[0].tableLog = (U16)tableLog; + for (s=0; s<=maxSymbolValue; s++) + { + if (normalizedCounter[s]==-1) + { + tableDecode[highThreshold--].symbol = (FSE_FUNCTION_TYPE)s; + symbolNext[s] = 1; + } + else + { + if (normalizedCounter[s] >= largeLimit) noLarge=0; + symbolNext[s] = normalizedCounter[s]; + } + } + + /* Spread symbols */ + for (s=0; s<=maxSymbolValue; s++) + { + int i; + for (i=0; i highThreshold) position = (position + step) & tableMask; /* lowprob area */ + } + } + + if (position!=0) return (size_t)-FSE_ERROR_GENERIC; /* position must reach all cells once, otherwise normalizedCounter is incorrect */ + + /* Build Decoding table */ + { + U32 i; + for (i=0; ifastMode = (U16)noLarge; + return 0; +} + + +/****************************************** +* FSE byte symbol +******************************************/ +#ifndef FSE_COMMONDEFS_ONLY + +static unsigned FSE_isError(size_t code) { return (code > (size_t)(-FSE_ERROR_maxCode)); } + +static short FSE_abs(short a) +{ + return a<0? -a : a; +} + + +/**************************************************************** +* Header bitstream management +****************************************************************/ +static size_t FSE_readNCount (short* normalizedCounter, unsigned* maxSVPtr, unsigned* tableLogPtr, + const void* headerBuffer, size_t hbSize) +{ + const BYTE* const istart = (const BYTE*) headerBuffer; + const BYTE* const iend = istart + hbSize; + const BYTE* ip = istart; + int nbBits; + int remaining; + int threshold; + U32 bitStream; + int bitCount; + unsigned charnum = 0; + int previous0 = 0; + + if (hbSize < 4) return (size_t)-FSE_ERROR_srcSize_wrong; + bitStream = FSE_readLE32(ip); + nbBits = (bitStream & 0xF) + FSE_MIN_TABLELOG; /* extract tableLog */ + if (nbBits > FSE_TABLELOG_ABSOLUTE_MAX) return (size_t)-FSE_ERROR_tableLog_tooLarge; + bitStream >>= 4; + bitCount = 4; + *tableLogPtr = nbBits; + remaining = (1<1) && (charnum<=*maxSVPtr)) + { + if (previous0) + { + unsigned n0 = charnum; + while ((bitStream & 0xFFFF) == 0xFFFF) + { + n0+=24; + if (ip < iend-5) + { + ip+=2; + bitStream = FSE_readLE32(ip) >> bitCount; + } + else + { + bitStream >>= 16; + bitCount+=16; + } + } + while ((bitStream & 3) == 3) + { + n0+=3; + bitStream>>=2; + bitCount+=2; + } + n0 += bitStream & 3; + bitCount += 2; + if (n0 > *maxSVPtr) return (size_t)-FSE_ERROR_maxSymbolValue_tooSmall; + while (charnum < n0) normalizedCounter[charnum++] = 0; + if ((ip <= iend-7) || (ip + (bitCount>>3) <= iend-4)) + { + ip += bitCount>>3; + bitCount &= 7; + bitStream = FSE_readLE32(ip) >> bitCount; + } + else + bitStream >>= 2; + } + { + const short max = (short)((2*threshold-1)-remaining); + short count; + + if ((bitStream & (threshold-1)) < (U32)max) + { + count = (short)(bitStream & (threshold-1)); + bitCount += nbBits-1; + } + else + { + count = (short)(bitStream & (2*threshold-1)); + if (count >= threshold) count -= max; + bitCount += nbBits; + } + + count--; /* extra accuracy */ + remaining -= FSE_abs(count); + normalizedCounter[charnum++] = count; + previous0 = !count; + while (remaining < threshold) + { + nbBits--; + threshold >>= 1; + } + + { + if ((ip <= iend-7) || (ip + (bitCount>>3) <= iend-4)) + { + ip += bitCount>>3; + bitCount &= 7; + } + else + { + bitCount -= (int)(8 * (iend - 4 - ip)); + ip = iend - 4; + } + bitStream = FSE_readLE32(ip) >> (bitCount & 31); + } + } + } + if (remaining != 1) return (size_t)-FSE_ERROR_GENERIC; + *maxSVPtr = charnum-1; + + ip += (bitCount+7)>>3; + if ((size_t)(ip-istart) > hbSize) return (size_t)-FSE_ERROR_srcSize_wrong; + return ip-istart; +} + + +/********************************************************* +* Decompression (Byte symbols) +*********************************************************/ +static size_t FSE_buildDTable_rle (FSE_DTable* dt, BYTE symbolValue) +{ + void* ptr = dt; + FSE_DTableHeader* const DTableH = (FSE_DTableHeader*)ptr; + FSE_decode_t* const cell = (FSE_decode_t*)(ptr) + 1; /* because dt is unsigned */ + + DTableH->tableLog = 0; + DTableH->fastMode = 0; + + cell->newState = 0; + cell->symbol = symbolValue; + cell->nbBits = 0; + + return 0; +} + + +static size_t FSE_buildDTable_raw (FSE_DTable* dt, unsigned nbBits) +{ + void* ptr = dt; + FSE_DTableHeader* const DTableH = (FSE_DTableHeader*)ptr; + FSE_decode_t* const dinfo = (FSE_decode_t*)(ptr) + 1; /* because dt is unsigned */ + const unsigned tableSize = 1 << nbBits; + const unsigned tableMask = tableSize - 1; + const unsigned maxSymbolValue = tableMask; + unsigned s; + + /* Sanity checks */ + if (nbBits < 1) return (size_t)-FSE_ERROR_GENERIC; /* min size */ + + /* Build Decoding Table */ + DTableH->tableLog = (U16)nbBits; + DTableH->fastMode = 1; + for (s=0; s<=maxSymbolValue; s++) + { + dinfo[s].newState = 0; + dinfo[s].symbol = (BYTE)s; + dinfo[s].nbBits = (BYTE)nbBits; + } + + return 0; +} + + +/* FSE_initDStream + * Initialize a FSE_DStream_t. + * srcBuffer must point at the beginning of an FSE block. + * The function result is the size of the FSE_block (== srcSize). + * If srcSize is too small, the function will return an errorCode; + */ +static size_t FSE_initDStream(FSE_DStream_t* bitD, const void* srcBuffer, size_t srcSize) +{ + if (srcSize < 1) return (size_t)-FSE_ERROR_srcSize_wrong; + + if (srcSize >= sizeof(size_t)) + { + U32 contain32; + bitD->start = (const char*)srcBuffer; + bitD->ptr = (const char*)srcBuffer + srcSize - sizeof(size_t); + bitD->bitContainer = FSE_readLEST(bitD->ptr); + contain32 = ((const BYTE*)srcBuffer)[srcSize-1]; + if (contain32 == 0) return (size_t)-FSE_ERROR_GENERIC; /* stop bit not present */ + bitD->bitsConsumed = 8 - FSE_highbit32(contain32); + } + else + { + U32 contain32; + bitD->start = (const char*)srcBuffer; + bitD->ptr = bitD->start; + bitD->bitContainer = *(const BYTE*)(bitD->start); + switch(srcSize) + { + case 7: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[6]) << (sizeof(size_t)*8 - 16); + /* fallthrough */ + case 6: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[5]) << (sizeof(size_t)*8 - 24); + /* fallthrough */ + case 5: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[4]) << (sizeof(size_t)*8 - 32); + /* fallthrough */ + case 4: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[3]) << 24; + /* fallthrough */ + case 3: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[2]) << 16; + /* fallthrough */ + case 2: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[1]) << 8; + /* fallthrough */ + default:; + } + contain32 = ((const BYTE*)srcBuffer)[srcSize-1]; + if (contain32 == 0) return (size_t)-FSE_ERROR_GENERIC; /* stop bit not present */ + bitD->bitsConsumed = 8 - FSE_highbit32(contain32); + bitD->bitsConsumed += (U32)(sizeof(size_t) - srcSize)*8; + } + + return srcSize; +} + + +/*!FSE_lookBits + * Provides next n bits from the bitContainer. + * bitContainer is not modified (bits are still present for next read/look) + * On 32-bits, maxNbBits==25 + * On 64-bits, maxNbBits==57 + * return : value extracted. + */ +static size_t FSE_lookBits(FSE_DStream_t* bitD, U32 nbBits) +{ + const U32 bitMask = sizeof(bitD->bitContainer)*8 - 1; + return ((bitD->bitContainer << (bitD->bitsConsumed & bitMask)) >> 1) >> ((bitMask-nbBits) & bitMask); +} + +static size_t FSE_lookBitsFast(FSE_DStream_t* bitD, U32 nbBits) /* only if nbBits >= 1 !! */ +{ + const U32 bitMask = sizeof(bitD->bitContainer)*8 - 1; + return (bitD->bitContainer << (bitD->bitsConsumed & bitMask)) >> (((bitMask+1)-nbBits) & bitMask); +} + +static void FSE_skipBits(FSE_DStream_t* bitD, U32 nbBits) +{ + bitD->bitsConsumed += nbBits; +} + + +/*!FSE_readBits + * Read next n bits from the bitContainer. + * On 32-bits, don't read more than maxNbBits==25 + * On 64-bits, don't read more than maxNbBits==57 + * Use the fast variant *only* if n >= 1. + * return : value extracted. + */ +static size_t FSE_readBits(FSE_DStream_t* bitD, U32 nbBits) +{ + size_t value = FSE_lookBits(bitD, nbBits); + FSE_skipBits(bitD, nbBits); + return value; +} + +static size_t FSE_readBitsFast(FSE_DStream_t* bitD, U32 nbBits) /* only if nbBits >= 1 !! */ +{ + size_t value = FSE_lookBitsFast(bitD, nbBits); + FSE_skipBits(bitD, nbBits); + return value; +} + +static unsigned FSE_reloadDStream(FSE_DStream_t* bitD) +{ + if (bitD->bitsConsumed > (sizeof(bitD->bitContainer)*8)) /* should never happen */ + return FSE_DStream_tooFar; + + if (bitD->ptr >= bitD->start + sizeof(bitD->bitContainer)) + { + bitD->ptr -= bitD->bitsConsumed >> 3; + bitD->bitsConsumed &= 7; + bitD->bitContainer = FSE_readLEST(bitD->ptr); + return FSE_DStream_unfinished; + } + if (bitD->ptr == bitD->start) + { + if (bitD->bitsConsumed < sizeof(bitD->bitContainer)*8) return FSE_DStream_endOfBuffer; + return FSE_DStream_completed; + } + { + U32 nbBytes = bitD->bitsConsumed >> 3; + U32 result = FSE_DStream_unfinished; + if (bitD->ptr - nbBytes < bitD->start) + { + nbBytes = (U32)(bitD->ptr - bitD->start); /* ptr > start */ + result = FSE_DStream_endOfBuffer; + } + bitD->ptr -= nbBytes; + bitD->bitsConsumed -= nbBytes*8; + bitD->bitContainer = FSE_readLEST(bitD->ptr); /* reminder : srcSize > sizeof(bitD) */ + return result; + } +} + + +static void FSE_initDState(FSE_DState_t* DStatePtr, FSE_DStream_t* bitD, const FSE_DTable* dt) +{ + const void* ptr = dt; + const FSE_DTableHeader* const DTableH = (const FSE_DTableHeader*)ptr; + DStatePtr->state = FSE_readBits(bitD, DTableH->tableLog); + FSE_reloadDStream(bitD); + DStatePtr->table = dt + 1; +} + +static BYTE FSE_decodeSymbol(FSE_DState_t* DStatePtr, FSE_DStream_t* bitD) +{ + const FSE_decode_t DInfo = ((const FSE_decode_t*)(DStatePtr->table))[DStatePtr->state]; + const U32 nbBits = DInfo.nbBits; + BYTE symbol = DInfo.symbol; + size_t lowBits = FSE_readBits(bitD, nbBits); + + DStatePtr->state = DInfo.newState + lowBits; + return symbol; +} + +static BYTE FSE_decodeSymbolFast(FSE_DState_t* DStatePtr, FSE_DStream_t* bitD) +{ + const FSE_decode_t DInfo = ((const FSE_decode_t*)(DStatePtr->table))[DStatePtr->state]; + const U32 nbBits = DInfo.nbBits; + BYTE symbol = DInfo.symbol; + size_t lowBits = FSE_readBitsFast(bitD, nbBits); + + DStatePtr->state = DInfo.newState + lowBits; + return symbol; +} + +/* FSE_endOfDStream + Tells if bitD has reached end of bitStream or not */ + +static unsigned FSE_endOfDStream(const FSE_DStream_t* bitD) +{ + return ((bitD->ptr == bitD->start) && (bitD->bitsConsumed == sizeof(bitD->bitContainer)*8)); +} + +static unsigned FSE_endOfDState(const FSE_DState_t* DStatePtr) +{ + return DStatePtr->state == 0; +} + + +FORCE_INLINE size_t FSE_decompress_usingDTable_generic( + void* dst, size_t maxDstSize, + const void* cSrc, size_t cSrcSize, + const FSE_DTable* dt, const unsigned fast) +{ + BYTE* const ostart = (BYTE*) dst; + BYTE* op = ostart; + BYTE* const omax = op + maxDstSize; + BYTE* const olimit = omax-3; + + FSE_DStream_t bitD; + FSE_DState_t state1; + FSE_DState_t state2; + size_t errorCode; + + /* Init */ + errorCode = FSE_initDStream(&bitD, cSrc, cSrcSize); /* replaced last arg by maxCompressed Size */ + if (FSE_isError(errorCode)) return errorCode; + + FSE_initDState(&state1, &bitD, dt); + FSE_initDState(&state2, &bitD, dt); + +#define FSE_GETSYMBOL(statePtr) fast ? FSE_decodeSymbolFast(statePtr, &bitD) : FSE_decodeSymbol(statePtr, &bitD) + + /* 4 symbols per loop */ + for ( ; (FSE_reloadDStream(&bitD)==FSE_DStream_unfinished) && (op sizeof(bitD.bitContainer)*8) /* This test must be static */ + FSE_reloadDStream(&bitD); + + op[1] = FSE_GETSYMBOL(&state2); + + if (FSE_MAX_TABLELOG*4+7 > sizeof(bitD.bitContainer)*8) /* This test must be static */ + { if (FSE_reloadDStream(&bitD) > FSE_DStream_unfinished) { op+=2; break; } } + + op[2] = FSE_GETSYMBOL(&state1); + + if (FSE_MAX_TABLELOG*2+7 > sizeof(bitD.bitContainer)*8) /* This test must be static */ + FSE_reloadDStream(&bitD); + + op[3] = FSE_GETSYMBOL(&state2); + } + + /* tail */ + /* note : FSE_reloadDStream(&bitD) >= FSE_DStream_partiallyFilled; Ends at exactly FSE_DStream_completed */ + while (1) + { + if ( (FSE_reloadDStream(&bitD)>FSE_DStream_completed) || (op==omax) || (FSE_endOfDStream(&bitD) && (fast || FSE_endOfDState(&state1))) ) + break; + + *op++ = FSE_GETSYMBOL(&state1); + + if ( (FSE_reloadDStream(&bitD)>FSE_DStream_completed) || (op==omax) || (FSE_endOfDStream(&bitD) && (fast || FSE_endOfDState(&state2))) ) + break; + + *op++ = FSE_GETSYMBOL(&state2); + } + + /* end ? */ + if (FSE_endOfDStream(&bitD) && FSE_endOfDState(&state1) && FSE_endOfDState(&state2)) + return op-ostart; + + if (op==omax) return (size_t)-FSE_ERROR_dstSize_tooSmall; /* dst buffer is full, but cSrc unfinished */ + + return (size_t)-FSE_ERROR_corruptionDetected; +} + + +static size_t FSE_decompress_usingDTable(void* dst, size_t originalSize, + const void* cSrc, size_t cSrcSize, + const FSE_DTable* dt) +{ + FSE_DTableHeader DTableH; + memcpy(&DTableH, dt, sizeof(DTableH)); /* memcpy() into local variable, to avoid strict aliasing warning */ + + /* select fast mode (static) */ + if (DTableH.fastMode) return FSE_decompress_usingDTable_generic(dst, originalSize, cSrc, cSrcSize, dt, 1); + return FSE_decompress_usingDTable_generic(dst, originalSize, cSrc, cSrcSize, dt, 0); +} + + +static size_t FSE_decompress(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize) +{ + const BYTE* const istart = (const BYTE*)cSrc; + const BYTE* ip = istart; + short counting[FSE_MAX_SYMBOL_VALUE+1]; + DTable_max_t dt; /* Static analyzer seems unable to understand this table will be properly initialized later */ + unsigned tableLog; + unsigned maxSymbolValue = FSE_MAX_SYMBOL_VALUE; + size_t errorCode; + + if (cSrcSize<2) return (size_t)-FSE_ERROR_srcSize_wrong; /* too small input size */ + + /* normal FSE decoding mode */ + errorCode = FSE_readNCount (counting, &maxSymbolValue, &tableLog, istart, cSrcSize); + if (FSE_isError(errorCode)) return errorCode; + if (errorCode >= cSrcSize) return (size_t)-FSE_ERROR_srcSize_wrong; /* too small input size */ + ip += errorCode; + cSrcSize -= errorCode; + + errorCode = FSE_buildDTable (dt, counting, maxSymbolValue, tableLog); + if (FSE_isError(errorCode)) return errorCode; + + /* always return, even if it is an error code */ + return FSE_decompress_usingDTable (dst, maxDstSize, ip, cSrcSize, dt); +} + + + +/* ******************************************************* +* Huff0 : Huffman block compression +*********************************************************/ +#define HUF_MAX_SYMBOL_VALUE 255 +#define HUF_DEFAULT_TABLELOG 12 /* used by default, when not specified */ +#define HUF_MAX_TABLELOG 12 /* max possible tableLog; for allocation purpose; can be modified */ +#define HUF_ABSOLUTEMAX_TABLELOG 16 /* absolute limit of HUF_MAX_TABLELOG. Beyond that value, code does not work */ +#if (HUF_MAX_TABLELOG > HUF_ABSOLUTEMAX_TABLELOG) +# error "HUF_MAX_TABLELOG is too large !" +#endif + +typedef struct HUF_CElt_s { + U16 val; + BYTE nbBits; +} HUF_CElt ; + +typedef struct nodeElt_s { + U32 count; + U16 parent; + BYTE byte; + BYTE nbBits; +} nodeElt; + + +/* ******************************************************* +* Huff0 : Huffman block decompression +*********************************************************/ +typedef struct { + BYTE byte; + BYTE nbBits; +} HUF_DElt; + +static size_t HUF_readDTable (U16* DTable, const void* src, size_t srcSize) +{ + BYTE huffWeight[HUF_MAX_SYMBOL_VALUE + 1]; + U32 rankVal[HUF_ABSOLUTEMAX_TABLELOG + 1]; /* large enough for values from 0 to 16 */ + U32 weightTotal; + U32 maxBits; + const BYTE* ip = (const BYTE*) src; + size_t iSize; + size_t oSize; + U32 n; + U32 nextRankStart; + void* ptr = DTable+1; + HUF_DElt* const dt = (HUF_DElt*)ptr; + + if (!srcSize) return (size_t)-FSE_ERROR_srcSize_wrong; + iSize = ip[0]; + + FSE_STATIC_ASSERT(sizeof(HUF_DElt) == sizeof(U16)); /* if compilation fails here, assertion is false */ + //memset(huffWeight, 0, sizeof(huffWeight)); /* should not be necessary, but some analyzer complain ... */ + if (iSize >= 128) /* special header */ + { + if (iSize >= (242)) /* RLE */ + { + static int l[14] = { 1, 2, 3, 4, 7, 8, 15, 16, 31, 32, 63, 64, 127, 128 }; + oSize = l[iSize-242]; + memset(huffWeight, 1, sizeof(huffWeight)); + iSize = 0; + } + else /* Incompressible */ + { + oSize = iSize - 127; + iSize = ((oSize+1)/2); + if (iSize+1 > srcSize) return (size_t)-FSE_ERROR_srcSize_wrong; + ip += 1; + for (n=0; n> 4; + huffWeight[n+1] = ip[n/2] & 15; + } + } + } + else /* header compressed with FSE (normal case) */ + { + if (iSize+1 > srcSize) return (size_t)-FSE_ERROR_srcSize_wrong; + oSize = FSE_decompress(huffWeight, HUF_MAX_SYMBOL_VALUE, ip+1, iSize); /* max 255 values decoded, last one is implied */ + if (FSE_isError(oSize)) return oSize; + } + + /* collect weight stats */ + memset(rankVal, 0, sizeof(rankVal)); + weightTotal = 0; + for (n=0; n= HUF_ABSOLUTEMAX_TABLELOG) return (size_t)-FSE_ERROR_corruptionDetected; + rankVal[huffWeight[n]]++; + weightTotal += (1 << huffWeight[n]) >> 1; + } + if (weightTotal == 0) return (size_t)-FSE_ERROR_corruptionDetected; + + /* get last non-null symbol weight (implied, total must be 2^n) */ + maxBits = FSE_highbit32(weightTotal) + 1; + if (maxBits > DTable[0]) return (size_t)-FSE_ERROR_tableLog_tooLarge; /* DTable is too small */ + DTable[0] = (U16)maxBits; + { + U32 total = 1 << maxBits; + U32 rest = total - weightTotal; + U32 verif = 1 << FSE_highbit32(rest); + U32 lastWeight = FSE_highbit32(rest) + 1; + if (verif != rest) return (size_t)-FSE_ERROR_corruptionDetected; /* last value must be a clean power of 2 */ + huffWeight[oSize] = (BYTE)lastWeight; + rankVal[lastWeight]++; + } + + /* check tree construction validity */ + if ((rankVal[1] < 2) || (rankVal[1] & 1)) return (size_t)-FSE_ERROR_corruptionDetected; /* by construction : at least 2 elts of rank 1, must be even */ + + /* Prepare ranks */ + nextRankStart = 0; + for (n=1; n<=maxBits; n++) + { + U32 current = nextRankStart; + nextRankStart += (rankVal[n] << (n-1)); + rankVal[n] = current; + } + + /* fill DTable */ + for (n=0; n<=oSize; n++) + { + const U32 w = huffWeight[n]; + const U32 length = (1 << w) >> 1; + U32 i; + HUF_DElt D; + D.byte = (BYTE)n; D.nbBits = (BYTE)(maxBits + 1 - w); + for (i = rankVal[w]; i < rankVal[w] + length; i++) + dt[i] = D; + rankVal[w] += length; + } + + return iSize+1; +} + + +static BYTE HUF_decodeSymbol(FSE_DStream_t* Dstream, const HUF_DElt* dt, const U32 dtLog) +{ + const size_t val = FSE_lookBitsFast(Dstream, dtLog); /* note : dtLog >= 1 */ + const BYTE c = dt[val].byte; + FSE_skipBits(Dstream, dt[val].nbBits); + return c; +} + +static size_t HUF_decompress_usingDTable( /* -3% slower when non static */ + void* dst, size_t maxDstSize, + const void* cSrc, size_t cSrcSize, + const U16* DTable) +{ + if (cSrcSize < 6) return (size_t)-FSE_ERROR_srcSize_wrong; + { + BYTE* const ostart = (BYTE*) dst; + BYTE* op = ostart; + BYTE* const omax = op + maxDstSize; + BYTE* const olimit = maxDstSize < 15 ? op : omax-15; + + const void* ptr = DTable; + const HUF_DElt* const dt = (const HUF_DElt*)(ptr)+1; + const U32 dtLog = DTable[0]; + size_t errorCode; + U32 reloadStatus; + + /* Init */ + + const U16* jumpTable = (const U16*)cSrc; + const size_t length1 = FSE_readLE16(jumpTable); + const size_t length2 = FSE_readLE16(jumpTable+1); + const size_t length3 = FSE_readLE16(jumpTable+2); + const size_t length4 = cSrcSize - 6 - length1 - length2 - length3; /* check coherency !! */ + const char* const start1 = (const char*)(cSrc) + 6; + const char* const start2 = start1 + length1; + const char* const start3 = start2 + length2; + const char* const start4 = start3 + length3; + FSE_DStream_t bitD1, bitD2, bitD3, bitD4; + + if (length1+length2+length3+6 >= cSrcSize) return (size_t)-FSE_ERROR_srcSize_wrong; + + errorCode = FSE_initDStream(&bitD1, start1, length1); + if (FSE_isError(errorCode)) return errorCode; + errorCode = FSE_initDStream(&bitD2, start2, length2); + if (FSE_isError(errorCode)) return errorCode; + errorCode = FSE_initDStream(&bitD3, start3, length3); + if (FSE_isError(errorCode)) return errorCode; + errorCode = FSE_initDStream(&bitD4, start4, length4); + if (FSE_isError(errorCode)) return errorCode; + + reloadStatus=FSE_reloadDStream(&bitD2); + + /* 16 symbols per loop */ + for ( ; (reloadStatus12)) FSE_reloadDStream(&Dstream) + + #define HUF_DECODE_SYMBOL_2(n, Dstream) \ + op[n] = HUF_decodeSymbol(&Dstream, dt, dtLog); \ + if (FSE_32bits()) FSE_reloadDStream(&Dstream) + + HUF_DECODE_SYMBOL_1( 0, bitD1); + HUF_DECODE_SYMBOL_1( 1, bitD2); + HUF_DECODE_SYMBOL_1( 2, bitD3); + HUF_DECODE_SYMBOL_1( 3, bitD4); + HUF_DECODE_SYMBOL_2( 4, bitD1); + HUF_DECODE_SYMBOL_2( 5, bitD2); + HUF_DECODE_SYMBOL_2( 6, bitD3); + HUF_DECODE_SYMBOL_2( 7, bitD4); + HUF_DECODE_SYMBOL_1( 8, bitD1); + HUF_DECODE_SYMBOL_1( 9, bitD2); + HUF_DECODE_SYMBOL_1(10, bitD3); + HUF_DECODE_SYMBOL_1(11, bitD4); + HUF_DECODE_SYMBOL_0(12, bitD1); + HUF_DECODE_SYMBOL_0(13, bitD2); + HUF_DECODE_SYMBOL_0(14, bitD3); + HUF_DECODE_SYMBOL_0(15, bitD4); + } + + if (reloadStatus!=FSE_DStream_completed) /* not complete : some bitStream might be FSE_DStream_unfinished */ + return (size_t)-FSE_ERROR_corruptionDetected; + + /* tail */ + { + /* bitTail = bitD1; */ /* *much* slower : -20% !??! */ + FSE_DStream_t bitTail; + bitTail.ptr = bitD1.ptr; + bitTail.bitsConsumed = bitD1.bitsConsumed; + bitTail.bitContainer = bitD1.bitContainer; /* required in case of FSE_DStream_endOfBuffer */ + bitTail.start = start1; + for ( ; (FSE_reloadDStream(&bitTail) < FSE_DStream_completed) && (op= cSrcSize) return (size_t)-FSE_ERROR_srcSize_wrong; + ip += errorCode; + cSrcSize -= errorCode; + + return HUF_decompress_usingDTable (dst, maxDstSize, ip, cSrcSize, DTable); +} + + +#endif /* FSE_COMMONDEFS_ONLY */ + +/* + zstd - standard compression library + Copyright (C) 2014-2015, Yann Collet. + + BSD 2-Clause License (https://opensource.org/licenses/bsd-license.php) + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + You can contact the author at : + - zstd source repository : https://github.com/Cyan4973/zstd + - ztsd public forum : https://groups.google.com/forum/#!forum/lz4c +*/ + +/**************************************************************** +* Tuning parameters +*****************************************************************/ +/* MEMORY_USAGE : +* Memory usage formula : N->2^N Bytes (examples : 10 -> 1KB; 12 -> 4KB ; 16 -> 64KB; 20 -> 1MB; etc.) +* Increasing memory usage improves compression ratio +* Reduced memory usage can improve speed, due to cache effect */ +#define ZSTD_MEMORY_USAGE 17 + + +/************************************** + CPU Feature Detection +**************************************/ +/* + * Automated efficient unaligned memory access detection + * Based on known hardware architectures + * This list will be updated thanks to feedbacks + */ +#if defined(CPU_HAS_EFFICIENT_UNALIGNED_MEMORY_ACCESS) \ + || defined(__ARM_FEATURE_UNALIGNED) \ + || defined(__i386__) || defined(__x86_64__) \ + || defined(_M_IX86) || defined(_M_X64) \ + || defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_8__) \ + || (defined(_M_ARM) && (_M_ARM >= 7)) +# define ZSTD_UNALIGNED_ACCESS 1 +#else +# define ZSTD_UNALIGNED_ACCESS 0 +#endif + + +/******************************************************** +* Includes +*********************************************************/ +#include /* calloc */ +#include /* memcpy, memmove */ +#include /* debug : printf */ + + +/******************************************************** +* Compiler specifics +*********************************************************/ +#ifdef __AVX2__ +# include /* AVX2 intrinsics */ +#endif + +#ifdef _MSC_VER /* Visual Studio */ +# include /* For Visual 2005 */ +# pragma warning(disable : 4127) /* disable: C4127: conditional expression is constant */ +# pragma warning(disable : 4324) /* disable: C4324: padded structure */ +#endif + + +#ifndef MEM_ACCESS_MODULE +#define MEM_ACCESS_MODULE +/******************************************************** +* Basic Types +*********************************************************/ +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 */ +# if defined(_AIX) +# include +# else +# include /* intptr_t */ +# endif +typedef uint8_t BYTE; +typedef uint16_t U16; +typedef int16_t S16; +typedef uint32_t U32; +typedef int32_t S32; +typedef uint64_t U64; +#else +typedef unsigned char BYTE; +typedef unsigned short U16; +typedef signed short S16; +typedef unsigned int U32; +typedef signed int S32; +typedef unsigned long long U64; +#endif + +#endif /* MEM_ACCESS_MODULE */ + + +/******************************************************** +* Constants +*********************************************************/ +static const U32 ZSTD_magicNumber = 0xFD2FB51E; /* 3rd version : seqNb header */ + +#define HASH_LOG (ZSTD_MEMORY_USAGE - 2) +#define HASH_TABLESIZE (1 << HASH_LOG) +#define HASH_MASK (HASH_TABLESIZE - 1) + +#define KNUTH 2654435761 + +#define BIT7 128 +#define BIT6 64 +#define BIT5 32 +#define BIT4 16 + +#define KB *(1 <<10) +#define MB *(1 <<20) +#define GB *(1U<<30) + +#define BLOCKSIZE (128 KB) /* define, for static allocation */ + +#define WORKPLACESIZE (BLOCKSIZE*3) +#define MINMATCH 4 +#define MLbits 7 +#define LLbits 6 +#define Offbits 5 +#define MaxML ((1<>3]; +#else + U32 hashTable[HASH_TABLESIZE]; +#endif + BYTE buffer[WORKPLACESIZE]; +} cctxi_t; + + + + +/************************************** +* Error Management +**************************************/ +/* published entry point */ +unsigned ZSTDv01_isError(size_t code) { return ERR_isError(code); } + + +/************************************** +* Tool functions +**************************************/ +#define ZSTD_VERSION_MAJOR 0 /* for breaking interface changes */ +#define ZSTD_VERSION_MINOR 1 /* for new (non-breaking) interface capabilities */ +#define ZSTD_VERSION_RELEASE 3 /* for tweaks, bug-fixes, or development */ +#define ZSTD_VERSION_NUMBER (ZSTD_VERSION_MAJOR *100*100 + ZSTD_VERSION_MINOR *100 + ZSTD_VERSION_RELEASE) + +/************************************************************** +* Decompression code +**************************************************************/ + +static size_t ZSTDv01_getcBlockSize(const void* src, size_t srcSize, blockProperties_t* bpPtr) +{ + const BYTE* const in = (const BYTE* const)src; + BYTE headerFlags; + U32 cSize; + + if (srcSize < 3) return ERROR(srcSize_wrong); + + headerFlags = *in; + cSize = in[2] + (in[1]<<8) + ((in[0] & 7)<<16); + + bpPtr->blockType = (blockType_t)(headerFlags >> 6); + bpPtr->origSize = (bpPtr->blockType == bt_rle) ? cSize : 0; + + if (bpPtr->blockType == bt_end) return 0; + if (bpPtr->blockType == bt_rle) return 1; + return cSize; +} + + +static size_t ZSTD_copyUncompressedBlock(void* dst, size_t maxDstSize, const void* src, size_t srcSize) +{ + if (srcSize > maxDstSize) return ERROR(dstSize_tooSmall); + if (srcSize > 0) { + memcpy(dst, src, srcSize); + } + return srcSize; +} + + +static size_t ZSTD_decompressLiterals(void* ctx, + void* dst, size_t maxDstSize, + const void* src, size_t srcSize) +{ + BYTE* op = (BYTE*)dst; + BYTE* const oend = op + maxDstSize; + const BYTE* ip = (const BYTE*)src; + size_t errorCode; + size_t litSize; + + /* check : minimum 2, for litSize, +1, for content */ + if (srcSize <= 3) return ERROR(corruption_detected); + + litSize = ip[1] + (ip[0]<<8); + litSize += ((ip[-3] >> 3) & 7) << 16; /* mmmmh.... */ + op = oend - litSize; + + (void)ctx; + if (litSize > maxDstSize) return ERROR(dstSize_tooSmall); + errorCode = HUF_decompress(op, litSize, ip+2, srcSize-2); + if (FSE_isError(errorCode)) return ERROR(GENERIC); + return litSize; +} + + +static size_t ZSTDv01_decodeLiteralsBlock(void* ctx, + void* dst, size_t maxDstSize, + const BYTE** litStart, size_t* litSize, + const void* src, size_t srcSize) +{ + const BYTE* const istart = (const BYTE* const)src; + const BYTE* ip = istart; + BYTE* const ostart = (BYTE* const)dst; + BYTE* const oend = ostart + maxDstSize; + blockProperties_t litbp; + + size_t litcSize = ZSTDv01_getcBlockSize(src, srcSize, &litbp); + if (ZSTDv01_isError(litcSize)) return litcSize; + if (litcSize > srcSize - ZSTD_blockHeaderSize) return ERROR(srcSize_wrong); + ip += ZSTD_blockHeaderSize; + + switch(litbp.blockType) + { + case bt_raw: + *litStart = ip; + ip += litcSize; + *litSize = litcSize; + break; + case bt_rle: + { + size_t rleSize = litbp.origSize; + if (rleSize>maxDstSize) return ERROR(dstSize_tooSmall); + if (!srcSize) return ERROR(srcSize_wrong); + if (rleSize > 0) { + memset(oend - rleSize, *ip, rleSize); + } + *litStart = oend - rleSize; + *litSize = rleSize; + ip++; + break; + } + case bt_compressed: + { + size_t decodedLitSize = ZSTD_decompressLiterals(ctx, dst, maxDstSize, ip, litcSize); + if (ZSTDv01_isError(decodedLitSize)) return decodedLitSize; + *litStart = oend - decodedLitSize; + *litSize = decodedLitSize; + ip += litcSize; + break; + } + case bt_end: + default: + return ERROR(GENERIC); + } + + return ip-istart; +} + + +static size_t ZSTDv01_decodeSeqHeaders(int* nbSeq, const BYTE** dumpsPtr, size_t* dumpsLengthPtr, + FSE_DTable* DTableLL, FSE_DTable* DTableML, FSE_DTable* DTableOffb, + const void* src, size_t srcSize) +{ + const BYTE* const istart = (const BYTE* const)src; + const BYTE* ip = istart; + const BYTE* const iend = istart + srcSize; + U32 LLtype, Offtype, MLtype; + U32 LLlog, Offlog, MLlog; + size_t dumpsLength; + + /* check */ + if (srcSize < 5) return ERROR(srcSize_wrong); + + /* SeqHead */ + *nbSeq = ZSTD_readLE16(ip); ip+=2; + LLtype = *ip >> 6; + Offtype = (*ip >> 4) & 3; + MLtype = (*ip >> 2) & 3; + if (*ip & 2) + { + dumpsLength = ip[2]; + dumpsLength += ip[1] << 8; + ip += 3; + } + else + { + dumpsLength = ip[1]; + dumpsLength += (ip[0] & 1) << 8; + ip += 2; + } + *dumpsPtr = ip; + ip += dumpsLength; + *dumpsLengthPtr = dumpsLength; + + /* check */ + if (ip > iend-3) return ERROR(srcSize_wrong); /* min : all 3 are "raw", hence no header, but at least xxLog bits per type */ + + /* sequences */ + { + S16 norm[MaxML+1]; /* assumption : MaxML >= MaxLL and MaxOff */ + size_t headerSize; + + /* Build DTables */ + switch(LLtype) + { + case bt_rle : + LLlog = 0; + FSE_buildDTable_rle(DTableLL, *ip++); break; + case bt_raw : + LLlog = LLbits; + FSE_buildDTable_raw(DTableLL, LLbits); break; + default : + { U32 max = MaxLL; + headerSize = FSE_readNCount(norm, &max, &LLlog, ip, iend-ip); + if (FSE_isError(headerSize)) return ERROR(GENERIC); + if (LLlog > LLFSELog) return ERROR(corruption_detected); + ip += headerSize; + FSE_buildDTable(DTableLL, norm, max, LLlog); + } } + + switch(Offtype) + { + case bt_rle : + Offlog = 0; + if (ip > iend-2) return ERROR(srcSize_wrong); /* min : "raw", hence no header, but at least xxLog bits */ + FSE_buildDTable_rle(DTableOffb, *ip++); break; + case bt_raw : + Offlog = Offbits; + FSE_buildDTable_raw(DTableOffb, Offbits); break; + default : + { U32 max = MaxOff; + headerSize = FSE_readNCount(norm, &max, &Offlog, ip, iend-ip); + if (FSE_isError(headerSize)) return ERROR(GENERIC); + if (Offlog > OffFSELog) return ERROR(corruption_detected); + ip += headerSize; + FSE_buildDTable(DTableOffb, norm, max, Offlog); + } } + + switch(MLtype) + { + case bt_rle : + MLlog = 0; + if (ip > iend-2) return ERROR(srcSize_wrong); /* min : "raw", hence no header, but at least xxLog bits */ + FSE_buildDTable_rle(DTableML, *ip++); break; + case bt_raw : + MLlog = MLbits; + FSE_buildDTable_raw(DTableML, MLbits); break; + default : + { U32 max = MaxML; + headerSize = FSE_readNCount(norm, &max, &MLlog, ip, iend-ip); + if (FSE_isError(headerSize)) return ERROR(GENERIC); + if (MLlog > MLFSELog) return ERROR(corruption_detected); + ip += headerSize; + FSE_buildDTable(DTableML, norm, max, MLlog); + } } } + + return ip-istart; +} + + +typedef struct { + size_t litLength; + size_t offset; + size_t matchLength; +} seq_t; + +typedef struct { + FSE_DStream_t DStream; + FSE_DState_t stateLL; + FSE_DState_t stateOffb; + FSE_DState_t stateML; + size_t prevOffset; + const BYTE* dumps; + const BYTE* dumpsEnd; +} seqState_t; + + +static void ZSTD_decodeSequence(seq_t* seq, seqState_t* seqState) +{ + size_t litLength; + size_t prevOffset; + size_t offset; + size_t matchLength; + const BYTE* dumps = seqState->dumps; + const BYTE* const de = seqState->dumpsEnd; + + /* Literal length */ + litLength = FSE_decodeSymbol(&(seqState->stateLL), &(seqState->DStream)); + prevOffset = litLength ? seq->offset : seqState->prevOffset; + seqState->prevOffset = seq->offset; + if (litLength == MaxLL) + { + const U32 add = dumpsstateOffb), &(seqState->DStream)); + if (ZSTD_32bits()) FSE_reloadDStream(&(seqState->DStream)); + nbBits = offsetCode - 1; + if (offsetCode==0) nbBits = 0; /* cmove */ + offset = ((size_t)1 << (nbBits & ((sizeof(offset)*8)-1))) + FSE_readBits(&(seqState->DStream), nbBits); + if (ZSTD_32bits()) FSE_reloadDStream(&(seqState->DStream)); + if (offsetCode==0) offset = prevOffset; + } + + /* MatchLength */ + matchLength = FSE_decodeSymbol(&(seqState->stateML), &(seqState->DStream)); + if (matchLength == MaxML) + { + const U32 add = dumpslitLength = litLength; + seq->offset = offset; + seq->matchLength = matchLength; + seqState->dumps = dumps; +} + + +static size_t ZSTD_execSequence(BYTE* op, + seq_t sequence, + const BYTE** litPtr, const BYTE* const litLimit, + BYTE* const base, BYTE* const oend) +{ + static const int dec32table[] = {0, 1, 2, 1, 4, 4, 4, 4}; /* added */ + static const int dec64table[] = {8, 8, 8, 7, 8, 9,10,11}; /* subtracted */ + const BYTE* const ostart = op; + BYTE* const oLitEnd = op + sequence.litLength; + const size_t litLength = sequence.litLength; + BYTE* const endMatch = op + litLength + sequence.matchLength; /* risk : address space overflow (32-bits) */ + const BYTE* const litEnd = *litPtr + litLength; + + /* checks */ + size_t const seqLength = sequence.litLength + sequence.matchLength; + + if (seqLength > (size_t)(oend - op)) return ERROR(dstSize_tooSmall); + if (sequence.litLength > (size_t)(litLimit - *litPtr)) return ERROR(corruption_detected); + /* Now we know there are no overflow in literal nor match lengths, can use pointer checks */ + if (sequence.offset > (U32)(oLitEnd - base)) return ERROR(corruption_detected); + + if (endMatch > oend) return ERROR(dstSize_tooSmall); /* overwrite beyond dst buffer */ + if (litEnd > litLimit) return ERROR(corruption_detected); /* overRead beyond lit buffer */ + if (sequence.matchLength > (size_t)(*litPtr-op)) return ERROR(dstSize_tooSmall); /* overwrite literal segment */ + + /* copy Literals */ + ZSTD_memmove(op, *litPtr, sequence.litLength); /* note : v0.1 seems to allow scenarios where output or input are close to end of buffer */ + + op += litLength; + *litPtr = litEnd; /* update for next sequence */ + + /* check : last match must be at a minimum distance of 8 from end of dest buffer */ + if (oend-op < 8) return ERROR(dstSize_tooSmall); + + /* copy Match */ + { + const U32 overlapRisk = (((size_t)(litEnd - endMatch)) < 12); + const BYTE* match = op - sequence.offset; /* possible underflow at op - offset ? */ + size_t qutt = 12; + U64 saved[2]; + + /* check */ + if (match < base) return ERROR(corruption_detected); + if (sequence.offset > (size_t)base) return ERROR(corruption_detected); + + /* save beginning of literal sequence, in case of write overlap */ + if (overlapRisk) + { + if ((endMatch + qutt) > oend) qutt = oend-endMatch; + memcpy(saved, endMatch, qutt); + } + + if (sequence.offset < 8) + { + const int dec64 = dec64table[sequence.offset]; + op[0] = match[0]; + op[1] = match[1]; + op[2] = match[2]; + op[3] = match[3]; + match += dec32table[sequence.offset]; + ZSTD_copy4(op+4, match); + match -= dec64; + } else { ZSTD_copy8(op, match); } + op += 8; match += 8; + + if (endMatch > oend-(16-MINMATCH)) + { + if (op < oend-8) + { + ZSTD_wildcopy(op, match, (oend-8) - op); + match += (oend-8) - op; + op = oend-8; + } + while (opLLTable; + U32* DTableML = dctx->MLTable; + U32* DTableOffb = dctx->OffTable; + BYTE* const base = (BYTE*) (dctx->base); + + /* Build Decoding Tables */ + errorCode = ZSTDv01_decodeSeqHeaders(&nbSeq, &dumps, &dumpsLength, + DTableLL, DTableML, DTableOffb, + ip, iend-ip); + if (ZSTDv01_isError(errorCode)) return errorCode; + ip += errorCode; + + /* Regen sequences */ + { + seq_t sequence; + seqState_t seqState; + + memset(&sequence, 0, sizeof(sequence)); + seqState.dumps = dumps; + seqState.dumpsEnd = dumps + dumpsLength; + seqState.prevOffset = 1; + errorCode = FSE_initDStream(&(seqState.DStream), ip, iend-ip); + if (FSE_isError(errorCode)) return ERROR(corruption_detected); + FSE_initDState(&(seqState.stateLL), &(seqState.DStream), DTableLL); + FSE_initDState(&(seqState.stateOffb), &(seqState.DStream), DTableOffb); + FSE_initDState(&(seqState.stateML), &(seqState.DStream), DTableML); + + for ( ; (FSE_reloadDStream(&(seqState.DStream)) <= FSE_DStream_completed) && (nbSeq>0) ; ) + { + size_t oneSeqSize; + nbSeq--; + ZSTD_decodeSequence(&sequence, &seqState); + oneSeqSize = ZSTD_execSequence(op, sequence, &litPtr, litEnd, base, oend); + if (ZSTDv01_isError(oneSeqSize)) return oneSeqSize; + op += oneSeqSize; + } + + /* check if reached exact end */ + if ( !FSE_endOfDStream(&(seqState.DStream)) ) return ERROR(corruption_detected); /* requested too much : data is corrupted */ + if (nbSeq<0) return ERROR(corruption_detected); /* requested too many sequences : data is corrupted */ + + /* last literal segment */ + { + size_t lastLLSize = litEnd - litPtr; + if (op+lastLLSize > oend) return ERROR(dstSize_tooSmall); + if (lastLLSize > 0) { + if (op != litPtr) memmove(op, litPtr, lastLLSize); + op += lastLLSize; + } + } + } + + return op-ostart; +} + + +static size_t ZSTD_decompressBlock( + void* ctx, + void* dst, size_t maxDstSize, + const void* src, size_t srcSize) +{ + /* blockType == blockCompressed, srcSize is trusted */ + const BYTE* ip = (const BYTE*)src; + const BYTE* litPtr = NULL; + size_t litSize = 0; + size_t errorCode; + + /* Decode literals sub-block */ + errorCode = ZSTDv01_decodeLiteralsBlock(ctx, dst, maxDstSize, &litPtr, &litSize, src, srcSize); + if (ZSTDv01_isError(errorCode)) return errorCode; + ip += errorCode; + srcSize -= errorCode; + + return ZSTD_decompressSequences(ctx, dst, maxDstSize, ip, srcSize, litPtr, litSize); +} + + +size_t ZSTDv01_decompressDCtx(void* ctx, void* dst, size_t maxDstSize, const void* src, size_t srcSize) +{ + const BYTE* ip = (const BYTE*)src; + const BYTE* iend = ip + srcSize; + BYTE* const ostart = (BYTE* const)dst; + BYTE* op = ostart; + BYTE* const oend = ostart + maxDstSize; + size_t remainingSize = srcSize; + U32 magicNumber; + size_t errorCode=0; + blockProperties_t blockProperties; + + /* Frame Header */ + if (srcSize < ZSTD_frameHeaderSize+ZSTD_blockHeaderSize) return ERROR(srcSize_wrong); + magicNumber = ZSTD_readBE32(src); + if (magicNumber != ZSTD_magicNumber) return ERROR(prefix_unknown); + ip += ZSTD_frameHeaderSize; remainingSize -= ZSTD_frameHeaderSize; + + /* Loop on each block */ + while (1) + { + size_t blockSize = ZSTDv01_getcBlockSize(ip, iend-ip, &blockProperties); + if (ZSTDv01_isError(blockSize)) return blockSize; + + ip += ZSTD_blockHeaderSize; + remainingSize -= ZSTD_blockHeaderSize; + if (blockSize > remainingSize) return ERROR(srcSize_wrong); + + switch(blockProperties.blockType) + { + case bt_compressed: + errorCode = ZSTD_decompressBlock(ctx, op, oend-op, ip, blockSize); + break; + case bt_raw : + errorCode = ZSTD_copyUncompressedBlock(op, oend-op, ip, blockSize); + break; + case bt_rle : + return ERROR(GENERIC); /* not yet supported */ + break; + case bt_end : + /* end of frame */ + if (remainingSize) return ERROR(srcSize_wrong); + break; + default: + return ERROR(GENERIC); + } + if (blockSize == 0) break; /* bt_end */ + + if (ZSTDv01_isError(errorCode)) return errorCode; + op += errorCode; + ip += blockSize; + remainingSize -= blockSize; + } + + return op-ostart; +} + +size_t ZSTDv01_decompress(void* dst, size_t maxDstSize, const void* src, size_t srcSize) +{ + dctx_t ctx; + ctx.base = dst; + return ZSTDv01_decompressDCtx(&ctx, dst, maxDstSize, src, srcSize); +} + +/* ZSTD_errorFrameSizeInfoLegacy() : + assumes `cSize` and `dBound` are _not_ NULL */ +static void ZSTD_errorFrameSizeInfoLegacy(size_t* cSize, unsigned long long* dBound, size_t ret) +{ + *cSize = ret; + *dBound = ZSTD_CONTENTSIZE_ERROR; +} + +void ZSTDv01_findFrameSizeInfoLegacy(const void *src, size_t srcSize, size_t* cSize, unsigned long long* dBound) +{ + const BYTE* ip = (const BYTE*)src; + size_t remainingSize = srcSize; + size_t nbBlocks = 0; + U32 magicNumber; + blockProperties_t blockProperties; + + /* Frame Header */ + if (srcSize < ZSTD_frameHeaderSize+ZSTD_blockHeaderSize) { + ZSTD_errorFrameSizeInfoLegacy(cSize, dBound, ERROR(srcSize_wrong)); + return; + } + magicNumber = ZSTD_readBE32(src); + if (magicNumber != ZSTD_magicNumber) { + ZSTD_errorFrameSizeInfoLegacy(cSize, dBound, ERROR(prefix_unknown)); + return; + } + ip += ZSTD_frameHeaderSize; remainingSize -= ZSTD_frameHeaderSize; + + /* Loop on each block */ + while (1) + { + size_t blockSize = ZSTDv01_getcBlockSize(ip, remainingSize, &blockProperties); + if (ZSTDv01_isError(blockSize)) { + ZSTD_errorFrameSizeInfoLegacy(cSize, dBound, blockSize); + return; + } + + ip += ZSTD_blockHeaderSize; + remainingSize -= ZSTD_blockHeaderSize; + if (blockSize > remainingSize) { + ZSTD_errorFrameSizeInfoLegacy(cSize, dBound, ERROR(srcSize_wrong)); + return; + } + + if (blockSize == 0) break; /* bt_end */ + + ip += blockSize; + remainingSize -= blockSize; + nbBlocks++; + } + + *cSize = ip - (const BYTE*)src; + *dBound = nbBlocks * BLOCKSIZE; +} + +/******************************* +* Streaming Decompression API +*******************************/ + +size_t ZSTDv01_resetDCtx(ZSTDv01_Dctx* dctx) +{ + dctx->expected = ZSTD_frameHeaderSize; + dctx->phase = 0; + dctx->previousDstEnd = NULL; + dctx->base = NULL; + return 0; +} + +ZSTDv01_Dctx* ZSTDv01_createDCtx(void) +{ + ZSTDv01_Dctx* dctx = (ZSTDv01_Dctx*)malloc(sizeof(ZSTDv01_Dctx)); + if (dctx==NULL) return NULL; + ZSTDv01_resetDCtx(dctx); + return dctx; +} + +size_t ZSTDv01_freeDCtx(ZSTDv01_Dctx* dctx) +{ + free(dctx); + return 0; +} + +size_t ZSTDv01_nextSrcSizeToDecompress(ZSTDv01_Dctx* dctx) +{ + return ((dctx_t*)dctx)->expected; +} + +size_t ZSTDv01_decompressContinue(ZSTDv01_Dctx* dctx, void* dst, size_t maxDstSize, const void* src, size_t srcSize) +{ + dctx_t* ctx = (dctx_t*)dctx; + + /* Sanity check */ + if (srcSize != ctx->expected) return ERROR(srcSize_wrong); + if (dst != ctx->previousDstEnd) /* not contiguous */ + ctx->base = dst; + + /* Decompress : frame header */ + if (ctx->phase == 0) + { + /* Check frame magic header */ + U32 magicNumber = ZSTD_readBE32(src); + if (magicNumber != ZSTD_magicNumber) return ERROR(prefix_unknown); + ctx->phase = 1; + ctx->expected = ZSTD_blockHeaderSize; + return 0; + } + + /* Decompress : block header */ + if (ctx->phase == 1) + { + blockProperties_t bp; + size_t blockSize = ZSTDv01_getcBlockSize(src, ZSTD_blockHeaderSize, &bp); + if (ZSTDv01_isError(blockSize)) return blockSize; + if (bp.blockType == bt_end) + { + ctx->expected = 0; + ctx->phase = 0; + } + else + { + ctx->expected = blockSize; + ctx->bType = bp.blockType; + ctx->phase = 2; + } + + return 0; + } + + /* Decompress : block content */ + { + size_t rSize; + switch(ctx->bType) + { + case bt_compressed: + rSize = ZSTD_decompressBlock(ctx, dst, maxDstSize, src, srcSize); + break; + case bt_raw : + rSize = ZSTD_copyUncompressedBlock(dst, maxDstSize, src, srcSize); + break; + case bt_rle : + return ERROR(GENERIC); /* not yet handled */ + break; + case bt_end : /* should never happen (filtered at phase 1) */ + rSize = 0; + break; + default: + return ERROR(GENERIC); + } + ctx->phase = 1; + ctx->expected = ZSTD_blockHeaderSize; + if (ZSTDv01_isError(rSize)) return rSize; + ctx->previousDstEnd = (void*)( ((char*)dst) + rSize); + return rSize; + } + +} diff --git a/deps/zstd/lib/legacy/zstd_v01.h b/deps/zstd/lib/legacy/zstd_v01.h new file mode 100644 index 00000000000000..6ac876954d14ec --- /dev/null +++ b/deps/zstd/lib/legacy/zstd_v01.h @@ -0,0 +1,94 @@ +/* + * Copyright (c) Yann Collet, Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_V01_H_28739879432 +#define ZSTD_V01_H_28739879432 + +#if defined (__cplusplus) +extern "C" { +#endif + +/* ************************************* +* Includes +***************************************/ +#include /* size_t */ + + +/* ************************************* +* Simple one-step function +***************************************/ +/** +ZSTDv01_decompress() : decompress ZSTD frames compliant with v0.1.x format + compressedSize : is the exact source size + maxOriginalSize : is the size of the 'dst' buffer, which must be already allocated. + It must be equal or larger than originalSize, otherwise decompression will fail. + return : the number of bytes decompressed into destination buffer (originalSize) + or an errorCode if it fails (which can be tested using ZSTDv01_isError()) +*/ +size_t ZSTDv01_decompress( void* dst, size_t maxOriginalSize, + const void* src, size_t compressedSize); + + /** + ZSTDv01_findFrameSizeInfoLegacy() : get the source length and decompressed bound of a ZSTD frame compliant with v0.1.x format + srcSize : The size of the 'src' buffer, at least as large as the frame pointed to by 'src' + cSize (output parameter) : the number of bytes that would be read to decompress this frame + or an error code if it fails (which can be tested using ZSTDv01_isError()) + dBound (output parameter) : an upper-bound for the decompressed size of the data in the frame + or ZSTD_CONTENTSIZE_ERROR if an error occurs + + note : assumes `cSize` and `dBound` are _not_ NULL. + */ +void ZSTDv01_findFrameSizeInfoLegacy(const void *src, size_t srcSize, + size_t* cSize, unsigned long long* dBound); + +/** +ZSTDv01_isError() : tells if the result of ZSTDv01_decompress() is an error +*/ +unsigned ZSTDv01_isError(size_t code); + + +/* ************************************* +* Advanced functions +***************************************/ +typedef struct ZSTDv01_Dctx_s ZSTDv01_Dctx; +ZSTDv01_Dctx* ZSTDv01_createDCtx(void); +size_t ZSTDv01_freeDCtx(ZSTDv01_Dctx* dctx); + +size_t ZSTDv01_decompressDCtx(void* ctx, + void* dst, size_t maxOriginalSize, + const void* src, size_t compressedSize); + +/* ************************************* +* Streaming functions +***************************************/ +size_t ZSTDv01_resetDCtx(ZSTDv01_Dctx* dctx); + +size_t ZSTDv01_nextSrcSizeToDecompress(ZSTDv01_Dctx* dctx); +size_t ZSTDv01_decompressContinue(ZSTDv01_Dctx* dctx, void* dst, size_t maxDstSize, const void* src, size_t srcSize); +/** + Use above functions alternatively. + ZSTD_nextSrcSizeToDecompress() tells how much bytes to provide as 'srcSize' to ZSTD_decompressContinue(). + ZSTD_decompressContinue() will use previous data blocks to improve compression if they are located prior to current block. + Result is the number of bytes regenerated within 'dst'. + It can be zero, which is not an error; it just means ZSTD_decompressContinue() has decoded some header. +*/ + +/* ************************************* +* Prefix - version detection +***************************************/ +#define ZSTDv01_magicNumber 0xFD2FB51E /* Big Endian version */ +#define ZSTDv01_magicNumberLE 0x1EB52FFD /* Little Endian version */ + + +#if defined (__cplusplus) +} +#endif + +#endif /* ZSTD_V01_H_28739879432 */ diff --git a/deps/zstd/lib/legacy/zstd_v02.c b/deps/zstd/lib/legacy/zstd_v02.c new file mode 100644 index 00000000000000..6d39b6e5b2da19 --- /dev/null +++ b/deps/zstd/lib/legacy/zstd_v02.c @@ -0,0 +1,3465 @@ +/* + * Copyright (c) Yann Collet, Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + +#include /* size_t, ptrdiff_t */ +#include "zstd_v02.h" +#include "../common/compiler.h" +#include "../common/error_private.h" + + +/****************************************** +* Compiler-specific +******************************************/ +#if defined(_MSC_VER) /* Visual Studio */ +# include /* _byteswap_ulong */ +# include /* _byteswap_* */ +#endif + + +/* ****************************************************************** + mem.h + low-level memory access routines + Copyright (C) 2013-2015, Yann Collet. + + BSD 2-Clause License (https://opensource.org/licenses/bsd-license.php) + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + You can contact the author at : + - FSE source repository : https://github.com/Cyan4973/FiniteStateEntropy + - Public forum : https://groups.google.com/forum/#!forum/lz4c +****************************************************************** */ +#ifndef MEM_H_MODULE +#define MEM_H_MODULE + +#if defined (__cplusplus) +extern "C" { +#endif + +/****************************************** +* Includes +******************************************/ +#include /* size_t, ptrdiff_t */ +#include /* memcpy */ + + +/**************************************************************** +* Basic Types +*****************************************************************/ +#if defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) +# if defined(_AIX) +# include +# else +# include /* intptr_t */ +# endif + typedef uint8_t BYTE; + typedef uint16_t U16; + typedef int16_t S16; + typedef uint32_t U32; + typedef int32_t S32; + typedef uint64_t U64; + typedef int64_t S64; +#else + typedef unsigned char BYTE; + typedef unsigned short U16; + typedef signed short S16; + typedef unsigned int U32; + typedef signed int S32; + typedef unsigned long long U64; + typedef signed long long S64; +#endif + + +/**************************************************************** +* Memory I/O +*****************************************************************/ + +MEM_STATIC unsigned MEM_32bits(void) { return sizeof(void*)==4; } +MEM_STATIC unsigned MEM_64bits(void) { return sizeof(void*)==8; } + +MEM_STATIC unsigned MEM_isLittleEndian(void) +{ + const union { U32 u; BYTE c[4]; } one = { 1 }; /* don't use static : performance detrimental */ + return one.c[0]; +} + +MEM_STATIC U16 MEM_read16(const void* memPtr) +{ + U16 val; memcpy(&val, memPtr, sizeof(val)); return val; +} + +MEM_STATIC U32 MEM_read32(const void* memPtr) +{ + U32 val; memcpy(&val, memPtr, sizeof(val)); return val; +} + +MEM_STATIC U64 MEM_read64(const void* memPtr) +{ + U64 val; memcpy(&val, memPtr, sizeof(val)); return val; +} + +MEM_STATIC void MEM_write16(void* memPtr, U16 value) +{ + memcpy(memPtr, &value, sizeof(value)); +} + +MEM_STATIC U16 MEM_readLE16(const void* memPtr) +{ + if (MEM_isLittleEndian()) + return MEM_read16(memPtr); + else + { + const BYTE* p = (const BYTE*)memPtr; + return (U16)(p[0] + (p[1]<<8)); + } +} + +MEM_STATIC void MEM_writeLE16(void* memPtr, U16 val) +{ + if (MEM_isLittleEndian()) + { + MEM_write16(memPtr, val); + } + else + { + BYTE* p = (BYTE*)memPtr; + p[0] = (BYTE)val; + p[1] = (BYTE)(val>>8); + } +} + +MEM_STATIC U32 MEM_readLE24(const void* memPtr) +{ + return MEM_readLE16(memPtr) + (((const BYTE*)memPtr)[2] << 16); +} + +MEM_STATIC U32 MEM_readLE32(const void* memPtr) +{ + if (MEM_isLittleEndian()) + return MEM_read32(memPtr); + else + { + const BYTE* p = (const BYTE*)memPtr; + return (U32)((U32)p[0] + ((U32)p[1]<<8) + ((U32)p[2]<<16) + ((U32)p[3]<<24)); + } +} + + +MEM_STATIC U64 MEM_readLE64(const void* memPtr) +{ + if (MEM_isLittleEndian()) + return MEM_read64(memPtr); + else + { + const BYTE* p = (const BYTE*)memPtr; + return (U64)((U64)p[0] + ((U64)p[1]<<8) + ((U64)p[2]<<16) + ((U64)p[3]<<24) + + ((U64)p[4]<<32) + ((U64)p[5]<<40) + ((U64)p[6]<<48) + ((U64)p[7]<<56)); + } +} + + +MEM_STATIC size_t MEM_readLEST(const void* memPtr) +{ + if (MEM_32bits()) + return (size_t)MEM_readLE32(memPtr); + else + return (size_t)MEM_readLE64(memPtr); +} + +#if defined (__cplusplus) +} +#endif + +#endif /* MEM_H_MODULE */ + + +/* ****************************************************************** + bitstream + Part of NewGen Entropy library + header file (to include) + Copyright (C) 2013-2015, Yann Collet. + + BSD 2-Clause License (https://opensource.org/licenses/bsd-license.php) + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + You can contact the author at : + - Source repository : https://github.com/Cyan4973/FiniteStateEntropy + - Public forum : https://groups.google.com/forum/#!forum/lz4c +****************************************************************** */ +#ifndef BITSTREAM_H_MODULE +#define BITSTREAM_H_MODULE + +#if defined (__cplusplus) +extern "C" { +#endif + + +/* +* This API consists of small unitary functions, which highly benefit from being inlined. +* Since link-time-optimization is not available for all compilers, +* these functions are defined into a .h to be included. +*/ + + +/********************************************** +* bitStream decompression API (read backward) +**********************************************/ +typedef struct +{ + size_t bitContainer; + unsigned bitsConsumed; + const char* ptr; + const char* start; +} BIT_DStream_t; + +typedef enum { BIT_DStream_unfinished = 0, + BIT_DStream_endOfBuffer = 1, + BIT_DStream_completed = 2, + BIT_DStream_overflow = 3 } BIT_DStream_status; /* result of BIT_reloadDStream() */ + /* 1,2,4,8 would be better for bitmap combinations, but slows down performance a bit ... :( */ + +MEM_STATIC size_t BIT_initDStream(BIT_DStream_t* bitD, const void* srcBuffer, size_t srcSize); +MEM_STATIC size_t BIT_readBits(BIT_DStream_t* bitD, unsigned nbBits); +MEM_STATIC BIT_DStream_status BIT_reloadDStream(BIT_DStream_t* bitD); +MEM_STATIC unsigned BIT_endOfDStream(const BIT_DStream_t* bitD); + + +/****************************************** +* unsafe API +******************************************/ +MEM_STATIC size_t BIT_readBitsFast(BIT_DStream_t* bitD, unsigned nbBits); +/* faster, but works only if nbBits >= 1 */ + + + +/**************************************************************** +* Helper functions +****************************************************************/ +MEM_STATIC unsigned BIT_highbit32 (U32 val) +{ +# if defined(_MSC_VER) /* Visual */ + unsigned long r; + return _BitScanReverse(&r, val) ? (unsigned)r : 0; +# elif defined(__GNUC__) && (__GNUC__ >= 3) /* Use GCC Intrinsic */ + return __builtin_clz (val) ^ 31; +# else /* Software version */ + static const unsigned DeBruijnClz[32] = { 0, 9, 1, 10, 13, 21, 2, 29, 11, 14, 16, 18, 22, 25, 3, 30, 8, 12, 20, 28, 15, 17, 24, 7, 19, 27, 23, 6, 26, 5, 4, 31 }; + U32 v = val; + unsigned r; + v |= v >> 1; + v |= v >> 2; + v |= v >> 4; + v |= v >> 8; + v |= v >> 16; + r = DeBruijnClz[ (U32) (v * 0x07C4ACDDU) >> 27]; + return r; +# endif +} + + + +/********************************************************** +* bitStream decoding +**********************************************************/ + +/*!BIT_initDStream +* Initialize a BIT_DStream_t. +* @bitD : a pointer to an already allocated BIT_DStream_t structure +* @srcBuffer must point at the beginning of a bitStream +* @srcSize must be the exact size of the bitStream +* @result : size of stream (== srcSize) or an errorCode if a problem is detected +*/ +MEM_STATIC size_t BIT_initDStream(BIT_DStream_t* bitD, const void* srcBuffer, size_t srcSize) +{ + if (srcSize < 1) { memset(bitD, 0, sizeof(*bitD)); return ERROR(srcSize_wrong); } + + if (srcSize >= sizeof(size_t)) /* normal case */ + { + U32 contain32; + bitD->start = (const char*)srcBuffer; + bitD->ptr = (const char*)srcBuffer + srcSize - sizeof(size_t); + bitD->bitContainer = MEM_readLEST(bitD->ptr); + contain32 = ((const BYTE*)srcBuffer)[srcSize-1]; + if (contain32 == 0) return ERROR(GENERIC); /* endMark not present */ + bitD->bitsConsumed = 8 - BIT_highbit32(contain32); + } + else + { + U32 contain32; + bitD->start = (const char*)srcBuffer; + bitD->ptr = bitD->start; + bitD->bitContainer = *(const BYTE*)(bitD->start); + switch(srcSize) + { + case 7: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[6]) << (sizeof(size_t)*8 - 16); + /* fallthrough */ + case 6: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[5]) << (sizeof(size_t)*8 - 24); + /* fallthrough */ + case 5: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[4]) << (sizeof(size_t)*8 - 32); + /* fallthrough */ + case 4: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[3]) << 24; + /* fallthrough */ + case 3: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[2]) << 16; + /* fallthrough */ + case 2: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[1]) << 8; + /* fallthrough */ + default:; + } + contain32 = ((const BYTE*)srcBuffer)[srcSize-1]; + if (contain32 == 0) return ERROR(GENERIC); /* endMark not present */ + bitD->bitsConsumed = 8 - BIT_highbit32(contain32); + bitD->bitsConsumed += (U32)(sizeof(size_t) - srcSize)*8; + } + + return srcSize; +} + +MEM_STATIC size_t BIT_lookBits(BIT_DStream_t* bitD, U32 nbBits) +{ + const U32 bitMask = sizeof(bitD->bitContainer)*8 - 1; + return ((bitD->bitContainer << (bitD->bitsConsumed & bitMask)) >> 1) >> ((bitMask-nbBits) & bitMask); +} + +/*! BIT_lookBitsFast : +* unsafe version; only works if nbBits >= 1 */ +MEM_STATIC size_t BIT_lookBitsFast(BIT_DStream_t* bitD, U32 nbBits) +{ + const U32 bitMask = sizeof(bitD->bitContainer)*8 - 1; + return (bitD->bitContainer << (bitD->bitsConsumed & bitMask)) >> (((bitMask+1)-nbBits) & bitMask); +} + +MEM_STATIC void BIT_skipBits(BIT_DStream_t* bitD, U32 nbBits) +{ + bitD->bitsConsumed += nbBits; +} + +MEM_STATIC size_t BIT_readBits(BIT_DStream_t* bitD, U32 nbBits) +{ + size_t value = BIT_lookBits(bitD, nbBits); + BIT_skipBits(bitD, nbBits); + return value; +} + +/*!BIT_readBitsFast : +* unsafe version; only works if nbBits >= 1 */ +MEM_STATIC size_t BIT_readBitsFast(BIT_DStream_t* bitD, U32 nbBits) +{ + size_t value = BIT_lookBitsFast(bitD, nbBits); + BIT_skipBits(bitD, nbBits); + return value; +} + +MEM_STATIC BIT_DStream_status BIT_reloadDStream(BIT_DStream_t* bitD) +{ + if (bitD->bitsConsumed > (sizeof(bitD->bitContainer)*8)) /* should never happen */ + return BIT_DStream_overflow; + + if (bitD->ptr >= bitD->start + sizeof(bitD->bitContainer)) + { + bitD->ptr -= bitD->bitsConsumed >> 3; + bitD->bitsConsumed &= 7; + bitD->bitContainer = MEM_readLEST(bitD->ptr); + return BIT_DStream_unfinished; + } + if (bitD->ptr == bitD->start) + { + if (bitD->bitsConsumed < sizeof(bitD->bitContainer)*8) return BIT_DStream_endOfBuffer; + return BIT_DStream_completed; + } + { + U32 nbBytes = bitD->bitsConsumed >> 3; + BIT_DStream_status result = BIT_DStream_unfinished; + if (bitD->ptr - nbBytes < bitD->start) + { + nbBytes = (U32)(bitD->ptr - bitD->start); /* ptr > start */ + result = BIT_DStream_endOfBuffer; + } + bitD->ptr -= nbBytes; + bitD->bitsConsumed -= nbBytes*8; + bitD->bitContainer = MEM_readLEST(bitD->ptr); /* reminder : srcSize > sizeof(bitD) */ + return result; + } +} + +/*! BIT_endOfDStream +* @return Tells if DStream has reached its exact end +*/ +MEM_STATIC unsigned BIT_endOfDStream(const BIT_DStream_t* DStream) +{ + return ((DStream->ptr == DStream->start) && (DStream->bitsConsumed == sizeof(DStream->bitContainer)*8)); +} + +#if defined (__cplusplus) +} +#endif + +#endif /* BITSTREAM_H_MODULE */ +/* ****************************************************************** + Error codes and messages + Copyright (C) 2013-2015, Yann Collet + + BSD 2-Clause License (https://opensource.org/licenses/bsd-license.php) + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + You can contact the author at : + - Source repository : https://github.com/Cyan4973/FiniteStateEntropy + - Public forum : https://groups.google.com/forum/#!forum/lz4c +****************************************************************** */ +#ifndef ERROR_H_MODULE +#define ERROR_H_MODULE + +#if defined (__cplusplus) +extern "C" { +#endif + + +/****************************************** +* Compiler-specific +******************************************/ +#if defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) +# define ERR_STATIC static inline +#elif defined(_MSC_VER) +# define ERR_STATIC static __inline +#elif defined(__GNUC__) +# define ERR_STATIC static __attribute__((unused)) +#else +# define ERR_STATIC static /* this version may generate warnings for unused static functions; disable the relevant warning */ +#endif + + +/****************************************** +* Error Management +******************************************/ +#define PREFIX(name) ZSTD_error_##name + +#define ERROR(name) (size_t)-PREFIX(name) + +#define ERROR_LIST(ITEM) \ + ITEM(PREFIX(No_Error)) ITEM(PREFIX(GENERIC)) \ + ITEM(PREFIX(dstSize_tooSmall)) ITEM(PREFIX(srcSize_wrong)) \ + ITEM(PREFIX(prefix_unknown)) ITEM(PREFIX(corruption_detected)) \ + ITEM(PREFIX(tableLog_tooLarge)) ITEM(PREFIX(maxSymbolValue_tooLarge)) ITEM(PREFIX(maxSymbolValue_tooSmall)) \ + ITEM(PREFIX(maxCode)) + +#define ERROR_GENERATE_ENUM(ENUM) ENUM, +typedef enum { ERROR_LIST(ERROR_GENERATE_ENUM) } ERR_codes; /* enum is exposed, to detect & handle specific errors; compare function result to -enum value */ + +#define ERROR_CONVERTTOSTRING(STRING) #STRING, +#define ERROR_GENERATE_STRING(EXPR) ERROR_CONVERTTOSTRING(EXPR) +static const char* ERR_strings[] = { ERROR_LIST(ERROR_GENERATE_STRING) }; + +ERR_STATIC unsigned ERR_isError(size_t code) { return (code > ERROR(maxCode)); } + +ERR_STATIC const char* ERR_getErrorName(size_t code) +{ + static const char* codeError = "Unspecified error code"; + if (ERR_isError(code)) return ERR_strings[-(int)(code)]; + return codeError; +} + + +#if defined (__cplusplus) +} +#endif + +#endif /* ERROR_H_MODULE */ +/* +Constructor and Destructor of type FSE_CTable + Note that its size depends on 'tableLog' and 'maxSymbolValue' */ +typedef unsigned FSE_CTable; /* don't allocate that. It's just a way to be more restrictive than void* */ +typedef unsigned FSE_DTable; /* don't allocate that. It's just a way to be more restrictive than void* */ + + +/* ****************************************************************** + FSE : Finite State Entropy coder + header file for static linking (only) + Copyright (C) 2013-2015, Yann Collet + + BSD 2-Clause License (https://opensource.org/licenses/bsd-license.php) + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + You can contact the author at : + - Source repository : https://github.com/Cyan4973/FiniteStateEntropy + - Public forum : https://groups.google.com/forum/#!forum/lz4c +****************************************************************** */ +#if defined (__cplusplus) +extern "C" { +#endif + + +/****************************************** +* Static allocation +******************************************/ +/* FSE buffer bounds */ +#define FSE_NCOUNTBOUND 512 +#define FSE_BLOCKBOUND(size) (size + (size>>7)) +#define FSE_COMPRESSBOUND(size) (FSE_NCOUNTBOUND + FSE_BLOCKBOUND(size)) /* Macro version, useful for static allocation */ + +/* You can statically allocate FSE CTable/DTable as a table of unsigned using below macro */ +#define FSE_CTABLE_SIZE_U32(maxTableLog, maxSymbolValue) (1 + (1<<(maxTableLog-1)) + ((maxSymbolValue+1)*2)) +#define FSE_DTABLE_SIZE_U32(maxTableLog) (1 + (1<= 1 (otherwise, result will be corrupted) */ + + +/****************************************** +* Implementation of inline functions +******************************************/ + +/* decompression */ + +typedef struct { + U16 tableLog; + U16 fastMode; +} FSE_DTableHeader; /* sizeof U32 */ + +typedef struct +{ + unsigned short newState; + unsigned char symbol; + unsigned char nbBits; +} FSE_decode_t; /* size == U32 */ + +MEM_STATIC void FSE_initDState(FSE_DState_t* DStatePtr, BIT_DStream_t* bitD, const FSE_DTable* dt) +{ + FSE_DTableHeader DTableH; + memcpy(&DTableH, dt, sizeof(DTableH)); + DStatePtr->state = BIT_readBits(bitD, DTableH.tableLog); + BIT_reloadDStream(bitD); + DStatePtr->table = dt + 1; +} + +MEM_STATIC BYTE FSE_decodeSymbol(FSE_DState_t* DStatePtr, BIT_DStream_t* bitD) +{ + const FSE_decode_t DInfo = ((const FSE_decode_t*)(DStatePtr->table))[DStatePtr->state]; + const U32 nbBits = DInfo.nbBits; + BYTE symbol = DInfo.symbol; + size_t lowBits = BIT_readBits(bitD, nbBits); + + DStatePtr->state = DInfo.newState + lowBits; + return symbol; +} + +MEM_STATIC BYTE FSE_decodeSymbolFast(FSE_DState_t* DStatePtr, BIT_DStream_t* bitD) +{ + const FSE_decode_t DInfo = ((const FSE_decode_t*)(DStatePtr->table))[DStatePtr->state]; + const U32 nbBits = DInfo.nbBits; + BYTE symbol = DInfo.symbol; + size_t lowBits = BIT_readBitsFast(bitD, nbBits); + + DStatePtr->state = DInfo.newState + lowBits; + return symbol; +} + +MEM_STATIC unsigned FSE_endOfDState(const FSE_DState_t* DStatePtr) +{ + return DStatePtr->state == 0; +} + + +#if defined (__cplusplus) +} +#endif +/* ****************************************************************** + Huff0 : Huffman coder, part of New Generation Entropy library + header file for static linking (only) + Copyright (C) 2013-2015, Yann Collet + + BSD 2-Clause License (https://opensource.org/licenses/bsd-license.php) + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + You can contact the author at : + - Source repository : https://github.com/Cyan4973/FiniteStateEntropy + - Public forum : https://groups.google.com/forum/#!forum/lz4c +****************************************************************** */ + +#if defined (__cplusplus) +extern "C" { +#endif + +/****************************************** +* Static allocation macros +******************************************/ +/* Huff0 buffer bounds */ +#define HUF_CTABLEBOUND 129 +#define HUF_BLOCKBOUND(size) (size + (size>>8) + 8) /* only true if incompressible pre-filtered with fast heuristic */ +#define HUF_COMPRESSBOUND(size) (HUF_CTABLEBOUND + HUF_BLOCKBOUND(size)) /* Macro version, useful for static allocation */ + +/* static allocation of Huff0's DTable */ +#define HUF_DTABLE_SIZE(maxTableLog) (1 + (1< /* size_t */ + + +/* ************************************* +* Version +***************************************/ +#define ZSTD_VERSION_MAJOR 0 /* for breaking interface changes */ +#define ZSTD_VERSION_MINOR 2 /* for new (non-breaking) interface capabilities */ +#define ZSTD_VERSION_RELEASE 2 /* for tweaks, bug-fixes, or development */ +#define ZSTD_VERSION_NUMBER (ZSTD_VERSION_MAJOR *100*100 + ZSTD_VERSION_MINOR *100 + ZSTD_VERSION_RELEASE) + + +/* ************************************* +* Advanced functions +***************************************/ +typedef struct ZSTD_CCtx_s ZSTD_CCtx; /* incomplete type */ + +#if defined (__cplusplus) +} +#endif +/* + zstd - standard compression library + Header File for static linking only + Copyright (C) 2014-2015, Yann Collet. + + BSD 2-Clause License (https://opensource.org/licenses/bsd-license.php) + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + You can contact the author at : + - zstd source repository : https://github.com/Cyan4973/zstd + - ztsd public forum : https://groups.google.com/forum/#!forum/lz4c +*/ + +/* The objects defined into this file should be considered experimental. + * They are not labelled stable, as their prototype may change in the future. + * You can use them for tests, provide feedback, or if you can endure risk of future changes. + */ + +#if defined (__cplusplus) +extern "C" { +#endif + +/* ************************************* +* Streaming functions +***************************************/ + +typedef struct ZSTDv02_Dctx_s ZSTD_DCtx; + +/* + Use above functions alternatively. + ZSTD_nextSrcSizeToDecompress() tells how much bytes to provide as 'srcSize' to ZSTD_decompressContinue(). + ZSTD_decompressContinue() will use previous data blocks to improve compression if they are located prior to current block. + Result is the number of bytes regenerated within 'dst'. + It can be zero, which is not an error; it just means ZSTD_decompressContinue() has decoded some header. +*/ + +/* ************************************* +* Prefix - version detection +***************************************/ +#define ZSTD_magicNumber 0xFD2FB522 /* v0.2 (current)*/ + + +#if defined (__cplusplus) +} +#endif +/* ****************************************************************** + FSE : Finite State Entropy coder + Copyright (C) 2013-2015, Yann Collet. + + BSD 2-Clause License (https://opensource.org/licenses/bsd-license.php) + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + You can contact the author at : + - FSE source repository : https://github.com/Cyan4973/FiniteStateEntropy + - Public forum : https://groups.google.com/forum/#!forum/lz4c +****************************************************************** */ + +#ifndef FSE_COMMONDEFS_ONLY + +/**************************************************************** +* Tuning parameters +****************************************************************/ +/* MEMORY_USAGE : +* Memory usage formula : N->2^N Bytes (examples : 10 -> 1KB; 12 -> 4KB ; 16 -> 64KB; 20 -> 1MB; etc.) +* Increasing memory usage improves compression ratio +* Reduced memory usage can improve speed, due to cache effect +* Recommended max value is 14, for 16KB, which nicely fits into Intel x86 L1 cache */ +#define FSE_MAX_MEMORY_USAGE 14 +#define FSE_DEFAULT_MEMORY_USAGE 13 + +/* FSE_MAX_SYMBOL_VALUE : +* Maximum symbol value authorized. +* Required for proper stack allocation */ +#define FSE_MAX_SYMBOL_VALUE 255 + + +/**************************************************************** +* template functions type & suffix +****************************************************************/ +#define FSE_FUNCTION_TYPE BYTE +#define FSE_FUNCTION_EXTENSION + + +/**************************************************************** +* Byte symbol type +****************************************************************/ +#endif /* !FSE_COMMONDEFS_ONLY */ + + +/**************************************************************** +* Compiler specifics +****************************************************************/ +#ifdef _MSC_VER /* Visual Studio */ +# define FORCE_INLINE static __forceinline +# include /* For Visual 2005 */ +# pragma warning(disable : 4127) /* disable: C4127: conditional expression is constant */ +# pragma warning(disable : 4214) /* disable: C4214: non-int bitfields */ +#else +# if defined (__cplusplus) || defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 */ +# ifdef __GNUC__ +# define FORCE_INLINE static inline __attribute__((always_inline)) +# else +# define FORCE_INLINE static inline +# endif +# else +# define FORCE_INLINE static +# endif /* __STDC_VERSION__ */ +#endif + + +/**************************************************************** +* Includes +****************************************************************/ +#include /* malloc, free, qsort */ +#include /* memcpy, memset */ +#include /* printf (debug) */ + +/**************************************************************** +* Constants +*****************************************************************/ +#define FSE_MAX_TABLELOG (FSE_MAX_MEMORY_USAGE-2) +#define FSE_MAX_TABLESIZE (1U< FSE_TABLELOG_ABSOLUTE_MAX +#error "FSE_MAX_TABLELOG > FSE_TABLELOG_ABSOLUTE_MAX is not supported" +#endif + + +/**************************************************************** +* Error Management +****************************************************************/ +#define FSE_STATIC_ASSERT(c) { enum { FSE_static_assert = 1/(int)(!!(c)) }; } /* use only *after* variable declarations */ + + +/**************************************************************** +* Complex types +****************************************************************/ +typedef U32 DTable_max_t[FSE_DTABLE_SIZE_U32(FSE_MAX_TABLELOG)]; + + +/**************************************************************** +* Templates +****************************************************************/ +/* + designed to be included + for type-specific functions (template emulation in C) + Objective is to write these functions only once, for improved maintenance +*/ + +/* safety checks */ +#ifndef FSE_FUNCTION_EXTENSION +# error "FSE_FUNCTION_EXTENSION must be defined" +#endif +#ifndef FSE_FUNCTION_TYPE +# error "FSE_FUNCTION_TYPE must be defined" +#endif + +/* Function names */ +#define FSE_CAT(X,Y) X##Y +#define FSE_FUNCTION_NAME(X,Y) FSE_CAT(X,Y) +#define FSE_TYPE_NAME(X,Y) FSE_CAT(X,Y) + + +/* Function templates */ + +#define FSE_DECODE_TYPE FSE_decode_t + +static U32 FSE_tableStep(U32 tableSize) { return (tableSize>>1) + (tableSize>>3) + 3; } + +static size_t FSE_buildDTable +(FSE_DTable* dt, const short* normalizedCounter, unsigned maxSymbolValue, unsigned tableLog) +{ + void* ptr = dt+1; + FSE_DECODE_TYPE* const tableDecode = (FSE_DECODE_TYPE*)ptr; + FSE_DTableHeader DTableH; + const U32 tableSize = 1 << tableLog; + const U32 tableMask = tableSize-1; + const U32 step = FSE_tableStep(tableSize); + U16 symbolNext[FSE_MAX_SYMBOL_VALUE+1]; + U32 position = 0; + U32 highThreshold = tableSize-1; + const S16 largeLimit= (S16)(1 << (tableLog-1)); + U32 noLarge = 1; + U32 s; + + /* Sanity Checks */ + if (maxSymbolValue > FSE_MAX_SYMBOL_VALUE) return ERROR(maxSymbolValue_tooLarge); + if (tableLog > FSE_MAX_TABLELOG) return ERROR(tableLog_tooLarge); + + /* Init, lay down lowprob symbols */ + DTableH.tableLog = (U16)tableLog; + for (s=0; s<=maxSymbolValue; s++) + { + if (normalizedCounter[s]==-1) + { + tableDecode[highThreshold--].symbol = (FSE_FUNCTION_TYPE)s; + symbolNext[s] = 1; + } + else + { + if (normalizedCounter[s] >= largeLimit) noLarge=0; + symbolNext[s] = normalizedCounter[s]; + } + } + + /* Spread symbols */ + for (s=0; s<=maxSymbolValue; s++) + { + int i; + for (i=0; i highThreshold) position = (position + step) & tableMask; /* lowprob area */ + } + } + + if (position!=0) return ERROR(GENERIC); /* position must reach all cells once, otherwise normalizedCounter is incorrect */ + + /* Build Decoding table */ + { + U32 i; + for (i=0; i FSE_TABLELOG_ABSOLUTE_MAX) return ERROR(tableLog_tooLarge); + bitStream >>= 4; + bitCount = 4; + *tableLogPtr = nbBits; + remaining = (1<1) && (charnum<=*maxSVPtr)) + { + if (previous0) + { + unsigned n0 = charnum; + while ((bitStream & 0xFFFF) == 0xFFFF) + { + n0+=24; + if (ip < iend-5) + { + ip+=2; + bitStream = MEM_readLE32(ip) >> bitCount; + } + else + { + bitStream >>= 16; + bitCount+=16; + } + } + while ((bitStream & 3) == 3) + { + n0+=3; + bitStream>>=2; + bitCount+=2; + } + n0 += bitStream & 3; + bitCount += 2; + if (n0 > *maxSVPtr) return ERROR(maxSymbolValue_tooSmall); + while (charnum < n0) normalizedCounter[charnum++] = 0; + if ((ip <= iend-7) || (ip + (bitCount>>3) <= iend-4)) + { + ip += bitCount>>3; + bitCount &= 7; + bitStream = MEM_readLE32(ip) >> bitCount; + } + else + bitStream >>= 2; + } + { + const short max = (short)((2*threshold-1)-remaining); + short count; + + if ((bitStream & (threshold-1)) < (U32)max) + { + count = (short)(bitStream & (threshold-1)); + bitCount += nbBits-1; + } + else + { + count = (short)(bitStream & (2*threshold-1)); + if (count >= threshold) count -= max; + bitCount += nbBits; + } + + count--; /* extra accuracy */ + remaining -= FSE_abs(count); + normalizedCounter[charnum++] = count; + previous0 = !count; + while (remaining < threshold) + { + nbBits--; + threshold >>= 1; + } + + { + if ((ip <= iend-7) || (ip + (bitCount>>3) <= iend-4)) + { + ip += bitCount>>3; + bitCount &= 7; + } + else + { + bitCount -= (int)(8 * (iend - 4 - ip)); + ip = iend - 4; + } + bitStream = MEM_readLE32(ip) >> (bitCount & 31); + } + } + } + if (remaining != 1) return ERROR(GENERIC); + *maxSVPtr = charnum-1; + + ip += (bitCount+7)>>3; + if ((size_t)(ip-istart) > hbSize) return ERROR(srcSize_wrong); + return ip-istart; +} + + +/********************************************************* +* Decompression (Byte symbols) +*********************************************************/ +static size_t FSE_buildDTable_rle (FSE_DTable* dt, BYTE symbolValue) +{ + void* ptr = dt; + FSE_DTableHeader* const DTableH = (FSE_DTableHeader*)ptr; + FSE_decode_t* const cell = (FSE_decode_t*)(ptr) + 1; /* because dt is unsigned */ + + DTableH->tableLog = 0; + DTableH->fastMode = 0; + + cell->newState = 0; + cell->symbol = symbolValue; + cell->nbBits = 0; + + return 0; +} + + +static size_t FSE_buildDTable_raw (FSE_DTable* dt, unsigned nbBits) +{ + void* ptr = dt; + FSE_DTableHeader* const DTableH = (FSE_DTableHeader*)ptr; + FSE_decode_t* const dinfo = (FSE_decode_t*)(ptr) + 1; /* because dt is unsigned */ + const unsigned tableSize = 1 << nbBits; + const unsigned tableMask = tableSize - 1; + const unsigned maxSymbolValue = tableMask; + unsigned s; + + /* Sanity checks */ + if (nbBits < 1) return ERROR(GENERIC); /* min size */ + + /* Build Decoding Table */ + DTableH->tableLog = (U16)nbBits; + DTableH->fastMode = 1; + for (s=0; s<=maxSymbolValue; s++) + { + dinfo[s].newState = 0; + dinfo[s].symbol = (BYTE)s; + dinfo[s].nbBits = (BYTE)nbBits; + } + + return 0; +} + +FORCE_INLINE size_t FSE_decompress_usingDTable_generic( + void* dst, size_t maxDstSize, + const void* cSrc, size_t cSrcSize, + const FSE_DTable* dt, const unsigned fast) +{ + BYTE* const ostart = (BYTE*) dst; + BYTE* op = ostart; + BYTE* const omax = op + maxDstSize; + BYTE* const olimit = omax-3; + + BIT_DStream_t bitD; + FSE_DState_t state1; + FSE_DState_t state2; + size_t errorCode; + + /* Init */ + errorCode = BIT_initDStream(&bitD, cSrc, cSrcSize); /* replaced last arg by maxCompressed Size */ + if (FSE_isError(errorCode)) return errorCode; + + FSE_initDState(&state1, &bitD, dt); + FSE_initDState(&state2, &bitD, dt); + +#define FSE_GETSYMBOL(statePtr) fast ? FSE_decodeSymbolFast(statePtr, &bitD) : FSE_decodeSymbol(statePtr, &bitD) + + /* 4 symbols per loop */ + for ( ; (BIT_reloadDStream(&bitD)==BIT_DStream_unfinished) && (op sizeof(bitD.bitContainer)*8) /* This test must be static */ + BIT_reloadDStream(&bitD); + + op[1] = FSE_GETSYMBOL(&state2); + + if (FSE_MAX_TABLELOG*4+7 > sizeof(bitD.bitContainer)*8) /* This test must be static */ + { if (BIT_reloadDStream(&bitD) > BIT_DStream_unfinished) { op+=2; break; } } + + op[2] = FSE_GETSYMBOL(&state1); + + if (FSE_MAX_TABLELOG*2+7 > sizeof(bitD.bitContainer)*8) /* This test must be static */ + BIT_reloadDStream(&bitD); + + op[3] = FSE_GETSYMBOL(&state2); + } + + /* tail */ + /* note : BIT_reloadDStream(&bitD) >= FSE_DStream_partiallyFilled; Ends at exactly BIT_DStream_completed */ + while (1) + { + if ( (BIT_reloadDStream(&bitD)>BIT_DStream_completed) || (op==omax) || (BIT_endOfDStream(&bitD) && (fast || FSE_endOfDState(&state1))) ) + break; + + *op++ = FSE_GETSYMBOL(&state1); + + if ( (BIT_reloadDStream(&bitD)>BIT_DStream_completed) || (op==omax) || (BIT_endOfDStream(&bitD) && (fast || FSE_endOfDState(&state2))) ) + break; + + *op++ = FSE_GETSYMBOL(&state2); + } + + /* end ? */ + if (BIT_endOfDStream(&bitD) && FSE_endOfDState(&state1) && FSE_endOfDState(&state2)) + return op-ostart; + + if (op==omax) return ERROR(dstSize_tooSmall); /* dst buffer is full, but cSrc unfinished */ + + return ERROR(corruption_detected); +} + + +static size_t FSE_decompress_usingDTable(void* dst, size_t originalSize, + const void* cSrc, size_t cSrcSize, + const FSE_DTable* dt) +{ + FSE_DTableHeader DTableH; + memcpy(&DTableH, dt, sizeof(DTableH)); + + /* select fast mode (static) */ + if (DTableH.fastMode) return FSE_decompress_usingDTable_generic(dst, originalSize, cSrc, cSrcSize, dt, 1); + return FSE_decompress_usingDTable_generic(dst, originalSize, cSrc, cSrcSize, dt, 0); +} + + +static size_t FSE_decompress(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize) +{ + const BYTE* const istart = (const BYTE*)cSrc; + const BYTE* ip = istart; + short counting[FSE_MAX_SYMBOL_VALUE+1]; + DTable_max_t dt; /* Static analyzer seems unable to understand this table will be properly initialized later */ + unsigned tableLog; + unsigned maxSymbolValue = FSE_MAX_SYMBOL_VALUE; + size_t errorCode; + + if (cSrcSize<2) return ERROR(srcSize_wrong); /* too small input size */ + + /* normal FSE decoding mode */ + errorCode = FSE_readNCount (counting, &maxSymbolValue, &tableLog, istart, cSrcSize); + if (FSE_isError(errorCode)) return errorCode; + if (errorCode >= cSrcSize) return ERROR(srcSize_wrong); /* too small input size */ + ip += errorCode; + cSrcSize -= errorCode; + + errorCode = FSE_buildDTable (dt, counting, maxSymbolValue, tableLog); + if (FSE_isError(errorCode)) return errorCode; + + /* always return, even if it is an error code */ + return FSE_decompress_usingDTable (dst, maxDstSize, ip, cSrcSize, dt); +} + + + +#endif /* FSE_COMMONDEFS_ONLY */ +/* ****************************************************************** + Huff0 : Huffman coder, part of New Generation Entropy library + Copyright (C) 2013-2015, Yann Collet. + + BSD 2-Clause License (https://opensource.org/licenses/bsd-license.php) + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + You can contact the author at : + - FSE+Huff0 source repository : https://github.com/Cyan4973/FiniteStateEntropy + - Public forum : https://groups.google.com/forum/#!forum/lz4c +****************************************************************** */ + +/**************************************************************** +* Compiler specifics +****************************************************************/ +#if defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) +/* inline is defined */ +#elif defined(_MSC_VER) +# define inline __inline +#else +# define inline /* disable inline */ +#endif + + +#ifdef _MSC_VER /* Visual Studio */ +# pragma warning(disable : 4127) /* disable: C4127: conditional expression is constant */ +#endif + + +/**************************************************************** +* Includes +****************************************************************/ +#include /* malloc, free, qsort */ +#include /* memcpy, memset */ +#include /* printf (debug) */ + +/**************************************************************** +* Error Management +****************************************************************/ +#define HUF_STATIC_ASSERT(c) { enum { HUF_static_assert = 1/(int)(!!(c)) }; } /* use only *after* variable declarations */ + + +/****************************************** +* Helper functions +******************************************/ +static unsigned HUF_isError(size_t code) { return ERR_isError(code); } + +#define HUF_ABSOLUTEMAX_TABLELOG 16 /* absolute limit of HUF_MAX_TABLELOG. Beyond that value, code does not work */ +#define HUF_MAX_TABLELOG 12 /* max configured tableLog (for static allocation); can be modified up to HUF_ABSOLUTEMAX_TABLELOG */ +#define HUF_DEFAULT_TABLELOG HUF_MAX_TABLELOG /* tableLog by default, when not specified */ +#define HUF_MAX_SYMBOL_VALUE 255 +#if (HUF_MAX_TABLELOG > HUF_ABSOLUTEMAX_TABLELOG) +# error "HUF_MAX_TABLELOG is too large !" +#endif + + + +/********************************************************* +* Huff0 : Huffman block decompression +*********************************************************/ +typedef struct { BYTE byte; BYTE nbBits; } HUF_DEltX2; /* single-symbol decoding */ + +typedef struct { U16 sequence; BYTE nbBits; BYTE length; } HUF_DEltX4; /* double-symbols decoding */ + +typedef struct { BYTE symbol; BYTE weight; } sortedSymbol_t; + +/*! HUF_readStats + Read compact Huffman tree, saved by HUF_writeCTable + @huffWeight : destination buffer + @return : size read from `src` +*/ +static size_t HUF_readStats(BYTE* huffWeight, size_t hwSize, U32* rankStats, + U32* nbSymbolsPtr, U32* tableLogPtr, + const void* src, size_t srcSize) +{ + U32 weightTotal; + U32 tableLog; + const BYTE* ip = (const BYTE*) src; + size_t iSize; + size_t oSize; + U32 n; + + if (!srcSize) return ERROR(srcSize_wrong); + iSize = ip[0]; + //memset(huffWeight, 0, hwSize); /* is not necessary, even though some analyzer complain ... */ + + if (iSize >= 128) /* special header */ + { + if (iSize >= (242)) /* RLE */ + { + static int l[14] = { 1, 2, 3, 4, 7, 8, 15, 16, 31, 32, 63, 64, 127, 128 }; + oSize = l[iSize-242]; + memset(huffWeight, 1, hwSize); + iSize = 0; + } + else /* Incompressible */ + { + oSize = iSize - 127; + iSize = ((oSize+1)/2); + if (iSize+1 > srcSize) return ERROR(srcSize_wrong); + if (oSize >= hwSize) return ERROR(corruption_detected); + ip += 1; + for (n=0; n> 4; + huffWeight[n+1] = ip[n/2] & 15; + } + } + } + else /* header compressed with FSE (normal case) */ + { + if (iSize+1 > srcSize) return ERROR(srcSize_wrong); + oSize = FSE_decompress(huffWeight, hwSize-1, ip+1, iSize); /* max (hwSize-1) values decoded, as last one is implied */ + if (FSE_isError(oSize)) return oSize; + } + + /* collect weight stats */ + memset(rankStats, 0, (HUF_ABSOLUTEMAX_TABLELOG + 1) * sizeof(U32)); + weightTotal = 0; + for (n=0; n= HUF_ABSOLUTEMAX_TABLELOG) return ERROR(corruption_detected); + rankStats[huffWeight[n]]++; + weightTotal += (1 << huffWeight[n]) >> 1; + } + if (weightTotal == 0) return ERROR(corruption_detected); + + /* get last non-null symbol weight (implied, total must be 2^n) */ + tableLog = BIT_highbit32(weightTotal) + 1; + if (tableLog > HUF_ABSOLUTEMAX_TABLELOG) return ERROR(corruption_detected); + { + U32 total = 1 << tableLog; + U32 rest = total - weightTotal; + U32 verif = 1 << BIT_highbit32(rest); + U32 lastWeight = BIT_highbit32(rest) + 1; + if (verif != rest) return ERROR(corruption_detected); /* last value must be a clean power of 2 */ + huffWeight[oSize] = (BYTE)lastWeight; + rankStats[lastWeight]++; + } + + /* check tree construction validity */ + if ((rankStats[1] < 2) || (rankStats[1] & 1)) return ERROR(corruption_detected); /* by construction : at least 2 elts of rank 1, must be even */ + + /* results */ + *nbSymbolsPtr = (U32)(oSize+1); + *tableLogPtr = tableLog; + return iSize+1; +} + + +/**************************/ +/* single-symbol decoding */ +/**************************/ + +static size_t HUF_readDTableX2 (U16* DTable, const void* src, size_t srcSize) +{ + BYTE huffWeight[HUF_MAX_SYMBOL_VALUE + 1]; + U32 rankVal[HUF_ABSOLUTEMAX_TABLELOG + 1]; /* large enough for values from 0 to 16 */ + U32 tableLog = 0; + const BYTE* ip = (const BYTE*) src; + size_t iSize = ip[0]; + U32 nbSymbols = 0; + U32 n; + U32 nextRankStart; + void* ptr = DTable+1; + HUF_DEltX2* const dt = (HUF_DEltX2*)ptr; + + HUF_STATIC_ASSERT(sizeof(HUF_DEltX2) == sizeof(U16)); /* if compilation fails here, assertion is false */ + //memset(huffWeight, 0, sizeof(huffWeight)); /* is not necessary, even though some analyzer complain ... */ + + iSize = HUF_readStats(huffWeight, HUF_MAX_SYMBOL_VALUE + 1, rankVal, &nbSymbols, &tableLog, src, srcSize); + if (HUF_isError(iSize)) return iSize; + + /* check result */ + if (tableLog > DTable[0]) return ERROR(tableLog_tooLarge); /* DTable is too small */ + DTable[0] = (U16)tableLog; /* maybe should separate sizeof DTable, as allocated, from used size of DTable, in case of DTable re-use */ + + /* Prepare ranks */ + nextRankStart = 0; + for (n=1; n<=tableLog; n++) + { + U32 current = nextRankStart; + nextRankStart += (rankVal[n] << (n-1)); + rankVal[n] = current; + } + + /* fill DTable */ + for (n=0; n> 1; + U32 i; + HUF_DEltX2 D; + D.byte = (BYTE)n; D.nbBits = (BYTE)(tableLog + 1 - w); + for (i = rankVal[w]; i < rankVal[w] + length; i++) + dt[i] = D; + rankVal[w] += length; + } + + return iSize; +} + +static BYTE HUF_decodeSymbolX2(BIT_DStream_t* Dstream, const HUF_DEltX2* dt, const U32 dtLog) +{ + const size_t val = BIT_lookBitsFast(Dstream, dtLog); /* note : dtLog >= 1 */ + const BYTE c = dt[val].byte; + BIT_skipBits(Dstream, dt[val].nbBits); + return c; +} + +#define HUF_DECODE_SYMBOLX2_0(ptr, DStreamPtr) \ + *ptr++ = HUF_decodeSymbolX2(DStreamPtr, dt, dtLog) + +#define HUF_DECODE_SYMBOLX2_1(ptr, DStreamPtr) \ + if (MEM_64bits() || (HUF_MAX_TABLELOG<=12)) \ + HUF_DECODE_SYMBOLX2_0(ptr, DStreamPtr) + +#define HUF_DECODE_SYMBOLX2_2(ptr, DStreamPtr) \ + if (MEM_64bits()) \ + HUF_DECODE_SYMBOLX2_0(ptr, DStreamPtr) + +static inline size_t HUF_decodeStreamX2(BYTE* p, BIT_DStream_t* const bitDPtr, BYTE* const pEnd, const HUF_DEltX2* const dt, const U32 dtLog) +{ + BYTE* const pStart = p; + + /* up to 4 symbols at a time */ + while ((BIT_reloadDStream(bitDPtr) == BIT_DStream_unfinished) && (p <= pEnd-4)) + { + HUF_DECODE_SYMBOLX2_2(p, bitDPtr); + HUF_DECODE_SYMBOLX2_1(p, bitDPtr); + HUF_DECODE_SYMBOLX2_2(p, bitDPtr); + HUF_DECODE_SYMBOLX2_0(p, bitDPtr); + } + + /* closer to the end */ + while ((BIT_reloadDStream(bitDPtr) == BIT_DStream_unfinished) && (p < pEnd)) + HUF_DECODE_SYMBOLX2_0(p, bitDPtr); + + /* no more data to retrieve from bitstream, hence no need to reload */ + while (p < pEnd) + HUF_DECODE_SYMBOLX2_0(p, bitDPtr); + + return pEnd-pStart; +} + + +static size_t HUF_decompress4X2_usingDTable( + void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize, + const U16* DTable) +{ + if (cSrcSize < 10) return ERROR(corruption_detected); /* strict minimum : jump table + 1 byte per stream */ + + { + const BYTE* const istart = (const BYTE*) cSrc; + BYTE* const ostart = (BYTE*) dst; + BYTE* const oend = ostart + dstSize; + + const void* ptr = DTable; + const HUF_DEltX2* const dt = ((const HUF_DEltX2*)ptr) +1; + const U32 dtLog = DTable[0]; + size_t errorCode; + + /* Init */ + BIT_DStream_t bitD1; + BIT_DStream_t bitD2; + BIT_DStream_t bitD3; + BIT_DStream_t bitD4; + const size_t length1 = MEM_readLE16(istart); + const size_t length2 = MEM_readLE16(istart+2); + const size_t length3 = MEM_readLE16(istart+4); + size_t length4; + const BYTE* const istart1 = istart + 6; /* jumpTable */ + const BYTE* const istart2 = istart1 + length1; + const BYTE* const istart3 = istart2 + length2; + const BYTE* const istart4 = istart3 + length3; + const size_t segmentSize = (dstSize+3) / 4; + BYTE* const opStart2 = ostart + segmentSize; + BYTE* const opStart3 = opStart2 + segmentSize; + BYTE* const opStart4 = opStart3 + segmentSize; + BYTE* op1 = ostart; + BYTE* op2 = opStart2; + BYTE* op3 = opStart3; + BYTE* op4 = opStart4; + U32 endSignal; + + length4 = cSrcSize - (length1 + length2 + length3 + 6); + if (length4 > cSrcSize) return ERROR(corruption_detected); /* overflow */ + errorCode = BIT_initDStream(&bitD1, istart1, length1); + if (HUF_isError(errorCode)) return errorCode; + errorCode = BIT_initDStream(&bitD2, istart2, length2); + if (HUF_isError(errorCode)) return errorCode; + errorCode = BIT_initDStream(&bitD3, istart3, length3); + if (HUF_isError(errorCode)) return errorCode; + errorCode = BIT_initDStream(&bitD4, istart4, length4); + if (HUF_isError(errorCode)) return errorCode; + + /* 16-32 symbols per loop (4-8 symbols per stream) */ + endSignal = BIT_reloadDStream(&bitD1) | BIT_reloadDStream(&bitD2) | BIT_reloadDStream(&bitD3) | BIT_reloadDStream(&bitD4); + for ( ; (endSignal==BIT_DStream_unfinished) && (op4<(oend-7)) ; ) + { + HUF_DECODE_SYMBOLX2_2(op1, &bitD1); + HUF_DECODE_SYMBOLX2_2(op2, &bitD2); + HUF_DECODE_SYMBOLX2_2(op3, &bitD3); + HUF_DECODE_SYMBOLX2_2(op4, &bitD4); + HUF_DECODE_SYMBOLX2_1(op1, &bitD1); + HUF_DECODE_SYMBOLX2_1(op2, &bitD2); + HUF_DECODE_SYMBOLX2_1(op3, &bitD3); + HUF_DECODE_SYMBOLX2_1(op4, &bitD4); + HUF_DECODE_SYMBOLX2_2(op1, &bitD1); + HUF_DECODE_SYMBOLX2_2(op2, &bitD2); + HUF_DECODE_SYMBOLX2_2(op3, &bitD3); + HUF_DECODE_SYMBOLX2_2(op4, &bitD4); + HUF_DECODE_SYMBOLX2_0(op1, &bitD1); + HUF_DECODE_SYMBOLX2_0(op2, &bitD2); + HUF_DECODE_SYMBOLX2_0(op3, &bitD3); + HUF_DECODE_SYMBOLX2_0(op4, &bitD4); + + endSignal = BIT_reloadDStream(&bitD1) | BIT_reloadDStream(&bitD2) | BIT_reloadDStream(&bitD3) | BIT_reloadDStream(&bitD4); + } + + /* check corruption */ + if (op1 > opStart2) return ERROR(corruption_detected); + if (op2 > opStart3) return ERROR(corruption_detected); + if (op3 > opStart4) return ERROR(corruption_detected); + /* note : op4 supposed already verified within main loop */ + + /* finish bitStreams one by one */ + HUF_decodeStreamX2(op1, &bitD1, opStart2, dt, dtLog); + HUF_decodeStreamX2(op2, &bitD2, opStart3, dt, dtLog); + HUF_decodeStreamX2(op3, &bitD3, opStart4, dt, dtLog); + HUF_decodeStreamX2(op4, &bitD4, oend, dt, dtLog); + + /* check */ + endSignal = BIT_endOfDStream(&bitD1) & BIT_endOfDStream(&bitD2) & BIT_endOfDStream(&bitD3) & BIT_endOfDStream(&bitD4); + if (!endSignal) return ERROR(corruption_detected); + + /* decoded size */ + return dstSize; + } +} + + +static size_t HUF_decompress4X2 (void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize) +{ + HUF_CREATE_STATIC_DTABLEX2(DTable, HUF_MAX_TABLELOG); + const BYTE* ip = (const BYTE*) cSrc; + size_t errorCode; + + errorCode = HUF_readDTableX2 (DTable, cSrc, cSrcSize); + if (HUF_isError(errorCode)) return errorCode; + if (errorCode >= cSrcSize) return ERROR(srcSize_wrong); + ip += errorCode; + cSrcSize -= errorCode; + + return HUF_decompress4X2_usingDTable (dst, dstSize, ip, cSrcSize, DTable); +} + + +/***************************/ +/* double-symbols decoding */ +/***************************/ + +static void HUF_fillDTableX4Level2(HUF_DEltX4* DTable, U32 sizeLog, const U32 consumed, + const U32* rankValOrigin, const int minWeight, + const sortedSymbol_t* sortedSymbols, const U32 sortedListSize, + U32 nbBitsBaseline, U16 baseSeq) +{ + HUF_DEltX4 DElt; + U32 rankVal[HUF_ABSOLUTEMAX_TABLELOG + 1]; + U32 s; + + /* get pre-calculated rankVal */ + memcpy(rankVal, rankValOrigin, sizeof(rankVal)); + + /* fill skipped values */ + if (minWeight>1) + { + U32 i, skipSize = rankVal[minWeight]; + MEM_writeLE16(&(DElt.sequence), baseSeq); + DElt.nbBits = (BYTE)(consumed); + DElt.length = 1; + for (i = 0; i < skipSize; i++) + DTable[i] = DElt; + } + + /* fill DTable */ + for (s=0; s= 1 */ + + rankVal[weight] += length; + } +} + +typedef U32 rankVal_t[HUF_ABSOLUTEMAX_TABLELOG][HUF_ABSOLUTEMAX_TABLELOG + 1]; + +static void HUF_fillDTableX4(HUF_DEltX4* DTable, const U32 targetLog, + const sortedSymbol_t* sortedList, const U32 sortedListSize, + const U32* rankStart, rankVal_t rankValOrigin, const U32 maxWeight, + const U32 nbBitsBaseline) +{ + U32 rankVal[HUF_ABSOLUTEMAX_TABLELOG + 1]; + const int scaleLog = nbBitsBaseline - targetLog; /* note : targetLog >= srcLog, hence scaleLog <= 1 */ + const U32 minBits = nbBitsBaseline - maxWeight; + U32 s; + + memcpy(rankVal, rankValOrigin, sizeof(rankVal)); + + /* fill DTable */ + for (s=0; s= minBits) /* enough room for a second symbol */ + { + U32 sortedRank; + int minWeight = nbBits + scaleLog; + if (minWeight < 1) minWeight = 1; + sortedRank = rankStart[minWeight]; + HUF_fillDTableX4Level2(DTable+start, targetLog-nbBits, nbBits, + rankValOrigin[nbBits], minWeight, + sortedList+sortedRank, sortedListSize-sortedRank, + nbBitsBaseline, symbol); + } + else + { + U32 i; + const U32 end = start + length; + HUF_DEltX4 DElt; + + MEM_writeLE16(&(DElt.sequence), symbol); + DElt.nbBits = (BYTE)(nbBits); + DElt.length = 1; + for (i = start; i < end; i++) + DTable[i] = DElt; + } + rankVal[weight] += length; + } +} + +static size_t HUF_readDTableX4 (U32* DTable, const void* src, size_t srcSize) +{ + BYTE weightList[HUF_MAX_SYMBOL_VALUE + 1]; + sortedSymbol_t sortedSymbol[HUF_MAX_SYMBOL_VALUE + 1]; + U32 rankStats[HUF_ABSOLUTEMAX_TABLELOG + 1] = { 0 }; + U32 rankStart0[HUF_ABSOLUTEMAX_TABLELOG + 2] = { 0 }; + U32* const rankStart = rankStart0+1; + rankVal_t rankVal; + U32 tableLog, maxW, sizeOfSort, nbSymbols; + const U32 memLog = DTable[0]; + const BYTE* ip = (const BYTE*) src; + size_t iSize = ip[0]; + void* ptr = DTable; + HUF_DEltX4* const dt = ((HUF_DEltX4*)ptr) + 1; + + HUF_STATIC_ASSERT(sizeof(HUF_DEltX4) == sizeof(U32)); /* if compilation fails here, assertion is false */ + if (memLog > HUF_ABSOLUTEMAX_TABLELOG) return ERROR(tableLog_tooLarge); + //memset(weightList, 0, sizeof(weightList)); /* is not necessary, even though some analyzer complain ... */ + + iSize = HUF_readStats(weightList, HUF_MAX_SYMBOL_VALUE + 1, rankStats, &nbSymbols, &tableLog, src, srcSize); + if (HUF_isError(iSize)) return iSize; + + /* check result */ + if (tableLog > memLog) return ERROR(tableLog_tooLarge); /* DTable can't fit code depth */ + + /* find maxWeight */ + for (maxW = tableLog; rankStats[maxW]==0; maxW--) + {if (!maxW) return ERROR(GENERIC); } /* necessarily finds a solution before maxW==0 */ + + /* Get start index of each weight */ + { + U32 w, nextRankStart = 0; + for (w=1; w<=maxW; w++) + { + U32 current = nextRankStart; + nextRankStart += rankStats[w]; + rankStart[w] = current; + } + rankStart[0] = nextRankStart; /* put all 0w symbols at the end of sorted list*/ + sizeOfSort = nextRankStart; + } + + /* sort symbols by weight */ + { + U32 s; + for (s=0; s> consumed; + } + } + } + + HUF_fillDTableX4(dt, memLog, + sortedSymbol, sizeOfSort, + rankStart0, rankVal, maxW, + tableLog+1); + + return iSize; +} + + +static U32 HUF_decodeSymbolX4(void* op, BIT_DStream_t* DStream, const HUF_DEltX4* dt, const U32 dtLog) +{ + const size_t val = BIT_lookBitsFast(DStream, dtLog); /* note : dtLog >= 1 */ + memcpy(op, dt+val, 2); + BIT_skipBits(DStream, dt[val].nbBits); + return dt[val].length; +} + +static U32 HUF_decodeLastSymbolX4(void* op, BIT_DStream_t* DStream, const HUF_DEltX4* dt, const U32 dtLog) +{ + const size_t val = BIT_lookBitsFast(DStream, dtLog); /* note : dtLog >= 1 */ + memcpy(op, dt+val, 1); + if (dt[val].length==1) BIT_skipBits(DStream, dt[val].nbBits); + else + { + if (DStream->bitsConsumed < (sizeof(DStream->bitContainer)*8)) + { + BIT_skipBits(DStream, dt[val].nbBits); + if (DStream->bitsConsumed > (sizeof(DStream->bitContainer)*8)) + DStream->bitsConsumed = (sizeof(DStream->bitContainer)*8); /* ugly hack; works only because it's the last symbol. Note : can't easily extract nbBits from just this symbol */ + } + } + return 1; +} + + +#define HUF_DECODE_SYMBOLX4_0(ptr, DStreamPtr) \ + ptr += HUF_decodeSymbolX4(ptr, DStreamPtr, dt, dtLog) + +#define HUF_DECODE_SYMBOLX4_1(ptr, DStreamPtr) \ + if (MEM_64bits() || (HUF_MAX_TABLELOG<=12)) \ + ptr += HUF_decodeSymbolX4(ptr, DStreamPtr, dt, dtLog) + +#define HUF_DECODE_SYMBOLX4_2(ptr, DStreamPtr) \ + if (MEM_64bits()) \ + ptr += HUF_decodeSymbolX4(ptr, DStreamPtr, dt, dtLog) + +static inline size_t HUF_decodeStreamX4(BYTE* p, BIT_DStream_t* bitDPtr, BYTE* const pEnd, const HUF_DEltX4* const dt, const U32 dtLog) +{ + BYTE* const pStart = p; + + /* up to 8 symbols at a time */ + while ((BIT_reloadDStream(bitDPtr) == BIT_DStream_unfinished) && (p < pEnd-7)) + { + HUF_DECODE_SYMBOLX4_2(p, bitDPtr); + HUF_DECODE_SYMBOLX4_1(p, bitDPtr); + HUF_DECODE_SYMBOLX4_2(p, bitDPtr); + HUF_DECODE_SYMBOLX4_0(p, bitDPtr); + } + + /* closer to the end */ + while ((BIT_reloadDStream(bitDPtr) == BIT_DStream_unfinished) && (p <= pEnd-2)) + HUF_DECODE_SYMBOLX4_0(p, bitDPtr); + + while (p <= pEnd-2) + HUF_DECODE_SYMBOLX4_0(p, bitDPtr); /* no need to reload : reached the end of DStream */ + + if (p < pEnd) + p += HUF_decodeLastSymbolX4(p, bitDPtr, dt, dtLog); + + return p-pStart; +} + + + +static size_t HUF_decompress4X4_usingDTable( + void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize, + const U32* DTable) +{ + if (cSrcSize < 10) return ERROR(corruption_detected); /* strict minimum : jump table + 1 byte per stream */ + + { + const BYTE* const istart = (const BYTE*) cSrc; + BYTE* const ostart = (BYTE*) dst; + BYTE* const oend = ostart + dstSize; + + const void* ptr = DTable; + const HUF_DEltX4* const dt = ((const HUF_DEltX4*)ptr) +1; + const U32 dtLog = DTable[0]; + size_t errorCode; + + /* Init */ + BIT_DStream_t bitD1; + BIT_DStream_t bitD2; + BIT_DStream_t bitD3; + BIT_DStream_t bitD4; + const size_t length1 = MEM_readLE16(istart); + const size_t length2 = MEM_readLE16(istart+2); + const size_t length3 = MEM_readLE16(istart+4); + size_t length4; + const BYTE* const istart1 = istart + 6; /* jumpTable */ + const BYTE* const istart2 = istart1 + length1; + const BYTE* const istart3 = istart2 + length2; + const BYTE* const istart4 = istart3 + length3; + const size_t segmentSize = (dstSize+3) / 4; + BYTE* const opStart2 = ostart + segmentSize; + BYTE* const opStart3 = opStart2 + segmentSize; + BYTE* const opStart4 = opStart3 + segmentSize; + BYTE* op1 = ostart; + BYTE* op2 = opStart2; + BYTE* op3 = opStart3; + BYTE* op4 = opStart4; + U32 endSignal; + + length4 = cSrcSize - (length1 + length2 + length3 + 6); + if (length4 > cSrcSize) return ERROR(corruption_detected); /* overflow */ + errorCode = BIT_initDStream(&bitD1, istart1, length1); + if (HUF_isError(errorCode)) return errorCode; + errorCode = BIT_initDStream(&bitD2, istart2, length2); + if (HUF_isError(errorCode)) return errorCode; + errorCode = BIT_initDStream(&bitD3, istart3, length3); + if (HUF_isError(errorCode)) return errorCode; + errorCode = BIT_initDStream(&bitD4, istart4, length4); + if (HUF_isError(errorCode)) return errorCode; + + /* 16-32 symbols per loop (4-8 symbols per stream) */ + endSignal = BIT_reloadDStream(&bitD1) | BIT_reloadDStream(&bitD2) | BIT_reloadDStream(&bitD3) | BIT_reloadDStream(&bitD4); + for ( ; (endSignal==BIT_DStream_unfinished) && (op4<(oend-7)) ; ) + { + HUF_DECODE_SYMBOLX4_2(op1, &bitD1); + HUF_DECODE_SYMBOLX4_2(op2, &bitD2); + HUF_DECODE_SYMBOLX4_2(op3, &bitD3); + HUF_DECODE_SYMBOLX4_2(op4, &bitD4); + HUF_DECODE_SYMBOLX4_1(op1, &bitD1); + HUF_DECODE_SYMBOLX4_1(op2, &bitD2); + HUF_DECODE_SYMBOLX4_1(op3, &bitD3); + HUF_DECODE_SYMBOLX4_1(op4, &bitD4); + HUF_DECODE_SYMBOLX4_2(op1, &bitD1); + HUF_DECODE_SYMBOLX4_2(op2, &bitD2); + HUF_DECODE_SYMBOLX4_2(op3, &bitD3); + HUF_DECODE_SYMBOLX4_2(op4, &bitD4); + HUF_DECODE_SYMBOLX4_0(op1, &bitD1); + HUF_DECODE_SYMBOLX4_0(op2, &bitD2); + HUF_DECODE_SYMBOLX4_0(op3, &bitD3); + HUF_DECODE_SYMBOLX4_0(op4, &bitD4); + + endSignal = BIT_reloadDStream(&bitD1) | BIT_reloadDStream(&bitD2) | BIT_reloadDStream(&bitD3) | BIT_reloadDStream(&bitD4); + } + + /* check corruption */ + if (op1 > opStart2) return ERROR(corruption_detected); + if (op2 > opStart3) return ERROR(corruption_detected); + if (op3 > opStart4) return ERROR(corruption_detected); + /* note : op4 supposed already verified within main loop */ + + /* finish bitStreams one by one */ + HUF_decodeStreamX4(op1, &bitD1, opStart2, dt, dtLog); + HUF_decodeStreamX4(op2, &bitD2, opStart3, dt, dtLog); + HUF_decodeStreamX4(op3, &bitD3, opStart4, dt, dtLog); + HUF_decodeStreamX4(op4, &bitD4, oend, dt, dtLog); + + /* check */ + endSignal = BIT_endOfDStream(&bitD1) & BIT_endOfDStream(&bitD2) & BIT_endOfDStream(&bitD3) & BIT_endOfDStream(&bitD4); + if (!endSignal) return ERROR(corruption_detected); + + /* decoded size */ + return dstSize; + } +} + + +static size_t HUF_decompress4X4 (void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize) +{ + HUF_CREATE_STATIC_DTABLEX4(DTable, HUF_MAX_TABLELOG); + const BYTE* ip = (const BYTE*) cSrc; + + size_t hSize = HUF_readDTableX4 (DTable, cSrc, cSrcSize); + if (HUF_isError(hSize)) return hSize; + if (hSize >= cSrcSize) return ERROR(srcSize_wrong); + ip += hSize; + cSrcSize -= hSize; + + return HUF_decompress4X4_usingDTable (dst, dstSize, ip, cSrcSize, DTable); +} + + +/**********************************/ +/* quad-symbol decoding */ +/**********************************/ +typedef struct { BYTE nbBits; BYTE nbBytes; } HUF_DDescX6; +typedef union { BYTE byte[4]; U32 sequence; } HUF_DSeqX6; + +/* recursive, up to level 3; may benefit from